证据加密
经典的加密方案总体来说包括两类,一类是公钥加密,一类是对称加密。在公钥加密中,所有人都可以对一个明文加密,而只有具有私钥的人才能对密钥进行解密。也就是说,解密者相对于其他人来说,具有额外的“知识”,这样才能对敌手进行解密。如果我们并不关系接收者是否具有某个额外的“知识”。而关注于接收者是否具有额外的某项能力,即:他是否能说明某个断言是否满足一个NP关系。
在证据加密中,加密者使用一个某个NP问题x实例去加密一个明文信息。只有x属于NP问题实例,并且接收者知道一个证据w能证明x属于NP实例。
需要注意的是:加密者可能并不知道x是否属于NP问题的实例。
这里需要解释一下某个NP问题实例的含义:
某个NP问题
例如:是否存在x使得 x 2 = 4 x^2 = 4 x2=4
NP问题实例
当x = 1的时候,满足
x
2
=
4
x^2=4
x2=4;
其实我们可以判断出来上面的断言是错误的,也就是不属于该NP问题,因此如果加密者使用这个实例去加密某个消息的时候,任何人都是无法正确进行解密的。
当x=2的时候,满足
x
2
=
4
x^2 = 4
x2=4;
上面断言是正确的,也就是属于该NP问题。
因此,如果接收者能够提供一个证据w来证明上面式子成立,接收者就能解密这个消息。
(在这里我们提供的例子比较简单,可能会疑惑这个问题不是谁都知道吗,还怎么去提供证据w呢? 在一些难度更大的问题中,并不是所有人都知道这个问题是不是输入问题实例,也就需要提供相应的证据w证明了)。