Perfectly Secret Encryption

2. Perfectly Secret Encryption

主要介绍了perfect secrecy(perfect secrecy是一种能够抵御有无穷算力的敌手攻击的可证明安全)。
简要介绍一下如何生成随机数。

现代的随机数生成过程分为两步——第一步,先收集高熵数据(这里的熵是不可预测性的测度,高熵即高不可预测性);第二步,平滑处理高熵数据输出一个近似独立无偏的随机序列。

为了“平滑”高熵数据以获得(几乎)独立和均匀的位元所需要的处理不是容易的的,假设我们的高熵池包含一个有偏的位序列,其中1出现的概率为p,0出现的概率为1−p。我们可以通过成对地取原始位得到一个统一的位序列:如果我们看到1后跟0,那么我们输出0,如果我们看到0后跟1,那么我们输出1。(如果我们连续看到两个0或两个1,我们什么也不输出,然后继续到下一对。)任何一对得到0的概率是p·(1−p),这完全等于任何一对得到1的概率。(请注意,我们甚至不需要知道p的值!)因此,我们从我们初始的高熵池中获得了一个均匀分布的输出

所以,密码学中使用的随机数生成器必须是密码级别的,不能直接调用诸如c语言stdlib.h之类的普通库函数。

2.1 Definitions

消息的概率分布不是由加密方案本身决定的,而是反映了使用该方案的各方发送不同消息的可能性,以及对手对所发送内容的不确定性。

因为K的分布是由加密方案本身决定的(因为它是由Gen定义的),而M上的分布取决于使用加密方案的上下文。

定义1
定义二
定义三
perfect secret的中心思想就是:敌手窃听的密文对了解明文没有任何帮助;换句话说,窃听到密文后推测出明文的后验概率与窃听前推测出明文的先验概率一致。

以上三个关于perfect secret的定义是等价的的。只不过角度不一样罢了。
定义1是从后验概率和先验概率相等的中心思想出发定义的;

定义2的含义是密文的分布概率不依赖于明文(即就算知道了密文,也无法区分该密文是从何种分布的明文加密而来);

定义3是从perfectly indistinguishable出发,认为敌手在experiment中胜出的概率恰好为1/2,等于乱猜的概率。

三个定义的证明过程就此略过,证明主要是用贝叶斯公式进行证明。

P(A|B)*P(B)=P(B|A)*P(A)

2.2 The One-Time Pad

文章用了很长的篇章证明了the one time pad是完美加密。证明也略过,跟2.1的的证明类似。

The One-Time Pad主要是用Xor(异或)来进行加密,异或就是二进制下每一位比较,相同为0,不同为1。异或的性质在加密中就显得很完美。
A ⊕ A = 0 A\oplus A=0 AA=0
A ⊕ 0 = A A\oplus 0=A A0=A
加密时 c = k ⊕ m c =k \oplus m c=km
解密时 m = k ⊕ c = k ⊕ k ⊕ m m=k \oplus c=k \oplus k \oplus m m=kc=kkm

结论:The one-time pad encryption scheme is perfectly secret.
但是one-time pad有以下缺点:第一,密钥长度必须和明文长度一样长;第二,只有单次使用才能保证安全性。

2.3 Limitations of Perfect Secrecy

2.2中one-time pad的缺陷并不是个例,而是完美加密存在的普遍缺陷。

If (Gen, Enc, Dec) is a perfectly secret encryption scheme with message space M and key space K, then |K| ≥ |M|.

Perfect secrecy的致命缺陷——密钥长度大于等于明文长度,导致perfect secrecy无法实际应用。证明略。

2.4 *Shannon’s Theorem .

Let (Gen, Enc, Dec) be an encryption scheme with message space M, for which |M| = |K| = |C|. The scheme is perfectly secret if and only if:

  1. Every key k ∈ K is chosen with (equal) probability 1/|K| by algorithm Gen.
  2. For every m ∈ M and every c ∈ C, there exists a unique key k ∈ K such that EncK(m) outputs c.

香农理论能够简单有效地判断加密方案是否为perfectly secert。但注意该理论只在 |M| = |K| = |C| 时成立!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值