购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 安全模型假设

在研读密码学论文时,我们经常会看到“IND”这个词,那“IND”究竟是什么呢?实际上“IND”是单词“Indistinguishability”的缩写,翻译成中文的意思是“不可区分性”。“不可区分性”是密码学安全性分析中的一个非常有用的性质,它指的是通过密码算法加密后的密文与随机数是不可分辨的 [41] 。为了使读者更清晰地理解“不可区分性”,下面我们使用一个由两人参与的游戏对“不可区分性”进行更形象化的描述。

假设两个参与方分别是Alice和Bob。Alice构造了一个新的加密算法Enc(·),但她不确定Enc(·)的安全性如何。如图2-2所示,为了验证Enc(·)的安全性,Alice尝试与Bob一起玩一个“不可区分”游戏。

步骤1: Alice使用加密算法Enc(·)对明文数据 m 加密,得到密文 c

步骤2: Alice选取随机数生成器Rand(·),并采样随机数 r

步骤3: Alice将密文 c 和随机数 r 一同发送至Bob,并约定游戏的有效时间。

步骤4: Bob观察 c r ,并判断这两个值的来源,即判断这两个值中的哪一个值是使用加密算法得到的。若在游戏的有限时间内,Bob无法做出判断,则证明 c r 在有限的时间内是不可区分的,即Enc(·)是安全的。

图2-2 “不可区分”游戏

在实际的密码安全性分析场景中,不可区分性通常产生于不同的安全模型,即随着安全模型的变化,“不可区分性”的强度会随之改变。下面分别介绍几种场景的安全模型,包括唯密文攻击(Ciphertext Only Attack,简写为COA)、已知明文攻击(Known Plaintext Attack,简写为KPA)、选择明文攻击(Chosen Plaintext Attack,简写为CPA)、选择密文攻击(Chosen Ciphertext Attack,简写为CCA)等,并观察不可区分性在其模型中的作用。

2.1.1 两种较弱的攻击方式

唯密文攻击: 指的是敌手(攻击者)能够掌握的只有密文。例如,密文 c 1 c 2 ,···, c n ,此时敌手能做的只有对 c 1 c 2 ,···, c n 进行分析 [42-43]

已知明文攻击: 指的是比唯密文攻击稍强一些的攻击方式。例如,敌手掌握了 c 1 c 2 ,···, c n 对应的明文,即敌手能够掌握的信息为〈 m 1 c 1 〉,〈 m 2 c 2 〉,…, m n c n 。此时敌手可以根据对 〈m 1 c 1 〉,〈 m 2 c 2 〉,…,〈 m n c n 〉的分析,猜测加/解密密钥 k [44-45]

2.1.2 选择明文攻击

选择明文攻击指的是敌手除了具备以上能力,还能够使用虚假身份进入加密系统,向系统提供明文并得到密文 [46-48] 。如图2-3所示,敌手具备自己选择任意待加密明文数据的能力,即加密系统会开放给敌手。整个攻击过程如下。

步骤1: 敌手发送待加密明文 m i 至密码系统。

步骤2: 密码系统选择随机数 k 做密钥,并通过加密算法,将 m i 加密为 c i ,并将其回发至敌手(步骤1和步骤2会执行多次)。

步骤3: 敌手再次发送待加密明文 m 0 m 1

步骤4: 密码系统随机选择0或1,将其设置为 b ,并加密 m b 得到密文 c b ,随后将 c b 回发至敌手。

步骤5: 敌手通过 c b ,猜测 b 的值是0还是1。

在以上过程中,若敌手无法猜测 b 的值是0还是1,则证明敌手无法推测 c b 是由哪个明文加密得到的。这证明密文具有足够的随机性,即密文和随机数是无法区分的。符合选择明文攻击的不可区分性被称为“Indistinguishability Chosen Plaintext Attack”,即IND-CPA。

图2-3 选择明文攻击

2.1.3 选择密文攻击

选择密文攻击指的是敌手除了具有选择明文攻击的能力,还能够选择或任意生成密文 c i ,并能够通过解密算法对 c i 解密得到 m i [49-51] 。如图2-4所示,具体攻击过程如下。

步骤1: 敌手发送待加密明文 m i 至密码系统。

步骤2: 密码系统选择随机数 k 做密钥,并通过加密算法,将 m i 加密为 c i ,并将其回发至敌手(步骤1和步骤2会执行多次)。

步骤3: 敌手发送待解密密文 c i '至密码系统。

步骤4: 密码系统使用 k 做密钥,并通过解密算法,将 c i '解密为 m i ',并将其回发至敌手(步骤3和步骤4会执行多次)。

步骤5: 敌手再次发送待加密明文 m 0 m 1

步骤6: 密码系统随机选择0或1,将其设置为 b ,并加密 m b 得到密文 c b ,随后将 c b 回发至敌手。

在以上过程中,若敌手无法猜测 b 的值是0还是1,则证明敌手无法推测 c b 由哪个明文加密得到。这证明密文 c b 具有足够的随机性,即密文 c b 和随机数是无法区分的。符合选择密文攻击的不可区分性被称为“Indistinguishability Chosen Ciphertext Attack”,即IND-CCA。

图2-4 选择密文攻击 +B8tcKx6Yu7gbtLBwnYK84DcG0YqOFS4yRNADccT2ZUmw99GT9YZXpZV4kmvnPu6

点击中间区域
呼出菜单
上一章
目录
下一章
×