当前位置:文档之家› 分组密码 4.3 穷举攻击

分组密码 4.3 穷举攻击

最大计算复杂性为 2256 计算复杂性平均为 2255
存储复杂性
存储复杂性为200个明密对。
四、穷举攻击实例
利用算法2进行穷举攻击
Step1:对每个可能的密钥 k (k 0,1,, 2256 1) , 攻击者计算 E (k , m1 ) c1, E (k , m2 ) c2 , , E (k , m200 ) c200 判断下列等式是否全成立 c1 c1 , c2 c2 , ,c200 c200 当有不成立时,返回试验下一个可能密钥;当全成 立时,将 k 作为候选密钥; Step2:试验下一个可能密钥,当所有可能密 钥都检验完毕时,算法终止。
已知条件:
加密算法E,明文 m 及其对应的密文c,并已知 其它检验条件。
二、穷举攻击的基本方案
算法 1:
Step1:对每个可能的密钥 k,攻击者计算
E (k , m) c 并判断 c' c 是否成立。当它不成
立时,返回试验下一个可能密钥;当它成立时, 将 k 作为候选密钥,并执行 Step2 。
及对应的密文分组 c1 , c2 ,, c200 。 目的:求解加密密钥 kT 。
四、穷举攻击实例
利用算法1进行穷举攻击
Step1:对每个可能的密钥 k (k 0,1,, 2256 1) , 攻击者计算 E (k , m1 ) c1 ,并判断 c1 c1 是否成立。 当它不成立时,返回试验下一个可能密钥;当它 成立时,将 k 作为候选密钥,并执行Step2 ;
三、不带校验的穷举攻击
候选密钥的个数
(1) K N
1 2K N 1
(2) K N
1 2K N 1
三、不带校验的穷举攻击
例如,对具有256比特密钥,128比特明文 分组的AES算法。
当利用1个已知的明文分组进行穷举攻击 时,由于密文比特数为128比特,候选密钥的 数量近似为 2256128 1 2128 。 当利用2个已知的明文分组进行穷举攻击 时,由于密文比特数为256比特,候选密钥的 数量近似为 2256256 1 2 。
成功率
计算复杂性
1 2
256 25600
1
1
平均计算复杂性为2255
Step2:利用其余的明密文对 k 作译报测试, 测试通过时输出k ,算法终止。否则返回Step1试 验下一个可能密钥。
四、穷举攻击实例
指标分析:
成功率
错误密钥通过的概率
( 1 200 ) 0 , 128 2
因此通过检验的一定是正确密钥 。 算法
的成功率为1。
四、穷举攻击实例
计算复杂性
最小计算复杂性为1
四、穷举攻击实例
指标分析:
计算复杂性
计算复杂性为2256
候选密钥的个数
当利用200个已知的明文分组进行穷举攻 击时,由于密文比特数为25600比特,候选密 钥的数量近似为 225625600 1 1 。
四、穷举攻击实例
利用算法3进行穷举攻击
Step1:对每个可能的密钥 k (k 0,1,, 2256 1) , 攻击者计算 E (k , m1 ) c1, E (k , m2 ) c2 , , E (k , m200 ) c200 判断下列等式是否全成立 c1 c1 , c2 c2 , ,c200 c200 当有不成立时,返回试验下一个可能密钥;当全成 立时,将 k 作为候选密钥,算法终止。
• 算法的存储复杂性
• 算法的数据复杂性
• 算法的计算复杂性
二、穷举攻击的基本方案
算法1的分析:
成功率
由于算法1一定能找到正确密钥, 故其成功率为1。
二、穷举攻击的基本方案
存储复杂性
算法1只需存储一个明文和一个密文,因而
存储复杂性可以忽略不计。
数据复杂性
算法1只需一个明文和一个密文,因而数据 复杂性为一对已知明密文。
(1) K N (2) K N
成功率为: 2 K N 1
1
成功率为: 2 K N 1 11来自三、不带校验的穷举攻击
计算复杂性
算法在检测完第 i 个试验密钥终止等价于 E(ki , m) c 且 t i ,都有 E(kt , m) c
(1) K N
p{(k , m) : E(k , m) c} 2 N , 因而此时上述事件 有
一、穷举攻击基本思想
穷举攻击的基本思想:
分析者利用假设的密钥 k 对明文进行加密: k 为正确密钥 k 为错误密钥 E(k, m) = c E(k, m) = c 以概率p成立
判决方法:
E(k, m) ≠ c E(k, m) = c k 一定不是正确密钥 k 可能是正确密钥
二、穷举攻击的基本方案
算法2:
Step1:对每个可能的密钥k ,攻击者计算
E (k , m) c 并判断 c' c 是否成立。当它不成
立时,返回试验下一个可能密钥;当它成立时, 将 k 作为候选密钥。
三、不带校验的穷举攻击
算法2:
Step2:返回Step1检验下个可能密钥。当所
有可能密钥都检验完毕时,算法终止。 注:该算法穷举了密钥空间中所有元素,找到一 个候选密钥存储一个,算法最后输出的是一个候 选密钥集,且正确密钥必在其中。
二、穷举攻击的基本方案
算法 1:
Step2:利用其它条件对 k 作进一步检验,
检验通过时输出k,算法终止。否则返回 Step1
试验下一个可能密钥。 注:该算法是找到一个候选密钥就进行检验,只 要检验通过算法就中止。因此算法一定输出一个 正确密钥,但未必将密钥空间穷举。
二、穷举攻击的基本方案
评价一个攻击算法的优劣主要有 四个密不可分的指标: • 算法的成功率
比特,且
p{E(k , m) c} 2 N

三、不带校验的穷举攻击
正确密钥一定是候选密钥,错误密
钥通过检验的概率为 2 N.由于共有 2K 1 个
错误密钥,因而通过检验的错误密钥的期
望个数为 (2K 1) 2 N .这说明通过检验的
候选密钥的个数近似为
1 (2K 1) 2 N 1 2K N
发生的概率为 p( i) 2 N (1 2 N )i 1 ,其期望值为 2 N 。 平均计算复杂性为 2 N 。
(2) K N
算法3的平均计算复杂性就近似为算法1
的平均计算复杂性 2K 1。
四、穷举攻击实例
以密钥规模为256比特,分组规模为128比特
的AES算法为例,介绍穷举攻击的实现方案。 条件:已知200个明文分组 m1, m2 ,, m200
1 p ( i ) K 2 • 平均计算复杂性:
1 E ( ) i p( i ) K 2 i 1
2K
i
i 1
2K
2K 1 2 K 1 2
三、不带校验的穷举攻击
已知条件:
加密算法E,明文 m 及其对应的密文c,并已知
其它检验条件。
三、不带校验的穷举攻击
三、不带校验的穷举攻击
算法2的分析:
成功率
由于上述攻击方案对所有可能的密钥都进行 了测试,且不会漏掉正确密钥,因而成功率为1。
计算复杂性
由于攻击方案对所有2K个可能的密钥都进行测 试,因而计算复杂性为2K。
三、不带校验的穷举攻击
存储复杂性
存储复杂性是候选密钥的数量。
候选密钥的个数
设密钥的规模为K比特,明文分组规模为N
密码学
第四章
分组密码
4.3
穷举攻击
一、穷举攻击基本思想
穷举攻击是最基本的密码分析方法,它是 其它攻击方法的基础,其它的密码分析方法 都是穷举攻击的变形、推广和简化。
穷举攻击是攻击者依次试用密钥空间中的 密钥逐个对截获的密文进行脱密测试,从而找 出正确密钥的一种攻击方法。
一、穷举攻击基本思想
密码分析者的已知条件 (1)所需密文 (2)明文统计特性
当利用3个已知的明文分组进行穷举攻击 时,由于密文比特数为384比特,候选密钥的 数量近似为 2256384 1 2128 1 1 。
三、不带校验的穷举攻击
算法 3:
Step1: 对每个可能的密钥 k ,攻击者计算
E (k , m) c ,并判断 c' c 是否成立。不成立时,
二、穷举攻击的基本方案
计算复杂性
以所需要检验的密钥个数来衡量计算复杂性。
设密钥的规模为K 比特,明文分组规模为N比特。
• 最小计算复杂性为 1 • 最大计算复杂性为 2 K
二、穷举攻击的基本方案 设需依次穷举的密钥为 k1 , k2 , , k K 2 并假设正确密钥 k 的出现是随机的,即
(3)密码算法
(4)密钥空间及其统计特性
对密码分析者来说,只有密钥是保密的。
一、穷举攻击基本思想
穷举攻击的基本思想:
分析者利用假设的密钥 k 对密文进行脱密: k 为正确密钥 k 为错误密钥 D(c, k) = m D(c, k) = m 以很小的概率成立
判决方法:
D(c, k) ≠ m D(c, k) = m k 一定不是正确密钥 k 可能是正确密钥
返回Step1试验下一个可能密钥,否则将k 作为候选 密钥 ,算法终止。 注:该算法只要有一个密钥通过检验,就输出该 密钥并中止算法。
三、不带校验的穷举攻击
算法3的分析:
设密钥的规模为K比特,明文分组规模为N
比特。
成功率:算法3输出的候选密钥必然属于算法2 输出的候选密钥集合,因此,算法3的成功率就 是输出的候选密钥恰是正确密钥的概率。
相关主题