【密码学篇】(商密)密码算法分析理论知识
密码算法分析理论—【蘇小沐】
文章目录
- 【密码学篇】(商密)密码算法分析理论知识
- (一)密码系统安全性
- 1.实际安全性
- 2.无条件安全性
- (二)密码算法攻击类型
- (三)密码算法分析
- 1.古典密码分析
- 2.对称密码分析
- 3.公钥密码分析
- 4.杂凑算法分析
- 5.抗量子攻击
- (四)攻击类型
- 1.主动攻击(影响系统)
- 2.被动攻击(不影响系统)
- 3.侧信道分析
- (五)针对"密码功能"的攻击
- 总结
(一)密码系统安全性
密码系统安全性分为"实际安全性" 和 “无条件安全性”;实际安全性又分为"计算安全性、可证明安全性"。
1.实际安全性
实际安全性 | 备注 |
---|---|
计算安全 | (1)破译密文的代价超过被加密信息的价值;(2)破译密文所花的时间超过信息的有用期。 |
可证明安全 | 将密码系统的安全性归结为某个经过深入研究的"数学难题(如大整数素因子分解、计算离散对数等)",数学难题被证明求解困难。这种评估方法存在的问题是它只说明了这个密码方法的安全性与某个困难问题相关,没有完全证明问题本身的安全性,并给出它们的等价性证明。 |
2.无条件安全性
假定攻击者拥有"无限的计算资源",但仍然无法破译该密码系统。
无论有多少可以使用的密文,都不足以唯一的确定密文所对应的明文。(破译所需要的信息不在密文里面)
(二)密码算法攻击类型
攻击难度:“唯密文攻击>已知明文攻击>选择明文攻击>选择密文攻击”。
如果一个密码系统能够抵抗选择密文攻击,那么它当然能够抵抗唯密文攻击和已知明文攻击。
攻击类型 | 说明 | 攻击者掌握的内容 | 攻击方法 |
---|---|---|---|
唯密文攻击 | 攻击者仅靠密文推算可能的密钥 | ◆加密算法;◆截获的部分密文 | |
已知明文攻击 | 攻击者不仅掌握了一定数量的密文,还有一些明文(密文对) | ◆加密算法;◆截获的部分密文;◆一个或多个明文密文对。 | 时间-存储权衡 |
选择明文攻击 | 攻击者能选择任意明文并获得相应密文 | ◆加密算法;◆截获的部分密文;◆自己选择的明文消息,及由密钥产生的相应密文(攻击者有接加密机器的机会,不能打开机器找到密钥,但可以加密大量经过精心挑选的明文,然后利用所得的密文推断密钥的信息或试图对其他密文进行解密)。 | 线性密码分析;最佳仿射逼近分析 |
选择密文攻 | 在选择明文攻击基础上,攻击者还能选择任意密文并得到对应明文。 | ◆加密算法;◆截获的部分密文;◆自己选择的密文消息,及相应的被解密的明文(攻击者有接触解密机器的机会,对选择的密文进行解密操作,然后试着用所得结果推断密钥或试图对其他密文进行解密)。 |
(三)密码算法分析
“柯克霍夫原则(Kerckhoffs,柯克霍夫假说/公理/定律)”,由奥古斯特-柯克霍夫在19世纪提出:即使密码系统的任何细节已为人悉知,只要密匙(key,又称密钥或秘钥)未泄漏,它也应是安全的。【基于密钥的保密,而不是算法的隐蔽性】
“一切秘密寓于密钥之中”,基于香农提出的理想密码模型"一次一密"理论,最安全的密码是1比特密钥保护1比特明文,然而现实中真正的无限长随机密钥难以找到。
Shannon (香农)指出,仅当密钥至少和明文一样长时,才能达到无条件安全,也就是说,“除了一次一密外,再无其他的加密方案是无条件安全的”。
1.古典密码分析
古典密码分析方法 | 说明 |
---|---|
统计 | |
明文-密文 | |
穷举 | |
重合指数法 | 重合指数法(index of coincidence,又称一致检索法)是Wolfe Friendman于1920年提出的方法,它可以进一步地检验多表代换密码的密钥长度。当计算某个密文的重合指数时,即相当于求在某个密文中随机无放回地抽取其中的两位,这两位的字母相同的概率。 |
卡西斯基试验 |
2.对称密码分析
密码算法分析的目的是通过各种攻击方式,找到"密码算法的弱点或者不完美的地方"。
希尔密码算法抵御频率分析攻击能力最强,而对已知明文攻击最弱。
对称密码分析 | 说明 |
---|---|
差分类攻击 | 截断差分攻击、统计饱和攻击、不可能差分攻击、高阶差分攻击、飞去来器攻击、多差分分析等。 |
线性类攻击 | 线性差分分析、多线性分析和线性区分攻击等。 |
单表代换 | "字母频率分析法"对单表代换密码算法分析最有效。 |
多表代换 | "重合指数法"对多表代换密码算法的分析最有效。 |
3.公钥密码分析
公钥密码分析类型 |
---|
对底层困难问题的分析以及上层方案实际安全性的分析 |
LLL算法攻击(格基约化算法) |
4.杂凑算法分析
杂凑算法分析类型 |
---|
差分攻击 |
生日攻击 |
模差分攻击 |
中间相遇攻击 |
5.抗量子攻击
基于格、多变量、编码、杂凑函数的密码,可以抵抗量子攻击。
(四)攻击类型
1.主动攻击(影响系统)
主动攻击:试图改变系统资源或"影响系统运行"。
主动攻击类型 |
---|
篡改 |
伪造 |
重放 |
消息修改 |
拒绝服务 |
2.被动攻击(不影响系统)
被动攻击:试图获取系统资源或利用系统的信息,但"不影响系统资源"。
被动攻击类型 |
---|
截获 |
窃听 |
流量分析 |
信息内容的泄露 |
3.侧信道分析
侧信道攻击(Side Channel Attack),上述对密码算法的分析都是基于"数学理论"的分析方法,其特点是假定密码算法在一个封闭、可信的计算环境里运行,攻击者既不能观察运算过程中的内部状态也不能修改或干扰它。除此之外,有针对"密码的实现方式和应用方式"提出的侧信道分析,这种分析是基于"物理实现"的分析方法。
在实际应用中,密码系统会通过物理装置泄露一些信息,如"能量消耗、电磁辐射、运行时间等",无须实施入侵或破解密码算法就可以分析获得密钥等敏感数据。
攻击方式 | 说明 |
---|---|
逻辑侧信道攻击(side channel attack) | 利用"密码算法软件"实现过程的一些额外泄露信息进行攻击。计时攻击(timing attack):1)密码代码实现中,不同秘密信息对应的代码执行时间不等;2)通过测量运行的时间,推断出秘密信息。 |
物理侧信道攻击(硬件) | 功耗分析:1)密码芯片上运行时,不同秘密信息对应不同的"功耗";2)攻击者通过分析测量功耗推断密钥。电磁辐射分析:1)密码芯片上运行时,不同秘密信息对应不同的"电磁辐射";2)攻击者通过分析测量电磁辐射推断密钥 |
(五)针对"密码功能"的攻击
密码四大功能:机密性(保密性)、完整性、真实性、不可否认性。
密码功能 | 安全威胁 | 密码技术 |
---|---|---|
机密性(保密性) | 截获、窃听、通信量分析 | 加密、访问控制 |
完整性 | 篡改 | 消息鉴别码(对称,杂凑密码)、数字签名(公钥) |
真实性 | 伪造 | 在线/离线认证服务器、静态/动态口令、生物特征 |
不可否认性(抗抵赖性) | 否认 | 数字签名、认证交换、公证 |
总结
由于本人能力有限,纯粹做个记录,文中如有不妥和错漏之处欢迎批评指正。如果觉得本文档对您有帮助,可以点赞收藏关注!
【著作所有权归作者 蘇小沐所有,转载请注明文章出处】
名称 | 时间 |
---|---|
开始编辑日期 | 2022 年 11 月 21 日 |
最后编辑日期 | 2022 年 11 月 23 日 |