1. Perfectly-Secret Encryption
另一种“极端”,绝对完美的密码
In this chapter, we look at the other extreme and study encryption schemes that are provably secure even against an adversary who has unbounded computational power.Such schemes are called perfectly secret.
定义:
: 密钥空间
: 明文空间
: 密文空间
:三个算法
: 生成的密钥为 的概率
: 需要发送的明文为 的概率
: 密文为 的概率
假设: 和 的分布是相互独立的
那么,什么叫做perfectly secret呢?想象这样的场景,如果有一个窃密者知道了所发送的明文的分布情况,但是他只能窃听到明文加密后的密文,那么他是否有可能根据密文的分布来推断明文呢?
所谓的perfectly secret就是要保证窃密者对于所获取的密文中分析不出明文的任何信息,即使他有无穷大的算力。
This means that a ciphertext reveals nothing about the underlying plaintext, and thus an adversary who intercepts a ciphertext learns absolutely nothing about the plaintext that was encrypted.
用数学公式来表达的话,就是:
对于任何一个明文,任何一个密文,在 时,有:
这等价于:
2. Perfect indistinguishability
由perfect secret引申而来
We refer to this formulation as perfect indistinguishability because it implies that it is impossible to distinguish an encryption of from an encryption of .
用数学公式表示如下:
Adversarial indistinguishability
换另外一种角度,假如我们做这样一个实验,在定义了 算法和给定了 的前提下,窃听者知道我们需要发送的密文不是 就是 ,,对于我们发送方,先随机生成密钥,然后随机选择一个 ,生成密文 .
窃听者看到这个密文,尝试解密得到 ,如果 的话,说明 攻击成功,记这次实验的输出为1,否则设置为0。
方便起见,记 为实验结果,则有在 Perfectly indistinguishable 情况下,
3. One-Time pad
1917年,Vernam 提出了一种叫做一次一密One-Time Pad的加密法,大约25年之后,Shannon证明了One-Time Pad是perfectly-secret。
对于一次一密,其加密机制如下:
Fix an ineger . The message space , key space , and cipertext space are all euqal to .
- : the key-generation algorithm chooses a key from according to the uniform distribution.
- : given a key and a message , the encryption algorithm outputs the ciphertext
- : given a key and a ciphertext , the decryption alogrithm outpus the message
构造非常简单,证明过程暂且不表。
单就这个加密机制而言是有很大问题的。首先是密钥只能用一次,如果使用同一个密钥来加密两个不同的明文,攻击者通过两个密文是可以获取两个明文之间的信息的。如
其次,密钥的长度是至少大于等于明文的长度的,也就是说密钥都能秘密进行传输了,还要加密什么消息…
所以在实践中是不可行的。因此,我们需要建立一种密钥长度小于明文长度的机制,那么这就要建立一种全新的关于安全的定义了,即在现实中可行的Computational Security.