密码学基础
参考
文献
文献 | 作者 | ISDN |
---|---|---|
应用密码学(第二版) | 胡向东 | 9787121132902 |
密码学与信息安全简明教程 | 丁勇 | 9787121246968 |
博客
博主 | 网站 | 网址 |
---|---|---|
crypto_cxf | CSDN | https://blog.csdn.net/A33280000f/article/details/118304531 |
站点
名称 | 网址 |
---|---|
百度百科 | https://baike.baidu.com/ |
信息安全
著名的控制论专家维纳曾经说过:‘信息既不是物质,也不是能量,信息就是信息“。信息与物质及能量被认为是任何系统的三大组成要素。
美国著名未来学家阿尔温托尔勒说过:”谁掌握了信息,控制了网络,谁将拥有整个世界。
信息安全指的是保证信息在传输、存储和变换的过程中信息的机密性(Confidentiality)、完整性(Integrity)、不可否认性(Non-Repudiation)以及可用性(Availability)等基本安全属性,即保证信息系统在运行过程中不受偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠地正常运行,信息服务不中断。
信息安全首先是一个政治问题。随着因特网(Internet)的普及,因特网已经成为了一个新的思想文化斗争和思想斗争的阵地。
信息安全更是一个军事问题。信息安全与战争军事是密不可分的,如何保密己方军事机密以及如何窃取到对方的军事机密是人类战争史上一个永恒的话题。而在现代,各国都在军队里面设立了信息战部队,可以说现代战争就是信息战,也是信息安全的直接对抗。
密码学
密码学是信息安全一个重要基础和分支,是一门古老而新兴的学科。在 1949 年香农(Shannon)发表了《保密系统的信息理论》后,密码学才有了理论基础指导从而上升为学科。
不过遗憾的是,这篇具有划时代意义的论文在发表之后的很长时间里都没有引起足够的重视。密码学在“歪道”上又走了差不多30年,才终于步入正途,密码也由此有了古典密码和现代密码之分。
密码学基础概念
明文
明文是作为加密输入的原始信息,即消息的原始形式,通常用 m (Message) 或p (Plaintext) 表示。所有可能明文的有限集称为明文空间,通常用 M 或 P 表示。
密文
密文是明文加密变换后的结果,即消息被加密处理后的形式,通常用 c (Ciphertext) 表示。所有可能密文的有限集称为密文空间,通常用 c 表示。
密钥
密钥是参与密码变换的参数,通常用 k (Key) 表示。一切可能密钥构成的有限集称为密钥空间,通常用 k 表示。
加密算法
加密算法是将明文变换为密文的变换函数,相应的变换过程称为加密,即编码过程,通常用 E (Encryption) 表示,即
解密算法
解密算法是将密文恢复为明文的变换函数,相应的变化过程称为解密(也称为破译),即解码的过程,通常用 D (Deccryption) 表示,即
五种密码攻击方式
唯密文攻击(Ciphertext Only Attack,COA)
对于这种形式的密码分析,密码分析者已知的内容只有密文,即假设密码分析者已知算法并能截取到一个或多个使用同一密钥加密的密文,通过对这些密文进行分析尽可能地分析出明文或密钥。在实施唯密文攻击时,只有充分掌握和利用明文信息如文字、图像、语音、计算机程序等的内在规律,才有可能根据截获的密文成功破译密码。唯密文攻击已知条件最少。经不起唯密文攻击的密码被认为是不安全的。
已知明文攻击(Know Plaintext Attack,KPA)
在已知明文攻击中,密码分析者已知的内容包括一个或多个明文-密文对以及截获的待解密密文。
选择明文攻击(Chosen Plaintext Attack,CPA)
在密码学或密码分析中,选择明文攻击指的是一种攻击模式。攻击者拥有加密机的访问权限,可构造任意明文所对应的密文。
通过选择对攻击有利的特定明文及其对应的密文,求解密钥或从截获的密文求解相应明文的密码分析方法。密码分析的方式之一。在选择明文攻击时,密码分析者对明文有选择或控制的能力,可选择他认为有利于攻击的任何明文及其对应的密文,是一种比已知明文攻击更强的攻击方式。 如果一个密码系统能够抵抗选择明文攻击,那么必然能够抵抗唯密文攻击和已知明文攻击。选择明文攻击较难实现。一种情形是假设密码分析者临时获得加密机器的访问权,但加密密钥被安全嵌入在设备中,分析者得不到密钥,此时可通过加密大量选择的明文,然后利用产生的密文来推测密钥。典型的选择明文攻击方法有碰撞攻击和差分攻击等。
选择密文攻击(Chosen Ciphertext Attack,CCA)
选择密文攻击与选择明文攻击类似。不同的是,选择明文攻击者拥有加密机的访问权限,可构造任意明文所对应的密文。而选择密文攻击者攻击者拥有加密机的访问权限,可构造任意密文所对应的明文。
选择文本攻击(Chosen Text Attack,CTA)
选择文本攻击是选择明文攻击与选择密文攻击的组合。密码分析者可以构造任意明文(或密文)所对应的密文(或明文)。
密码系统
在密码学中,有这么一个五元组:(M,C,K,E,D)。
简单翻译一下就是:(明文,密文,密钥,加密算法,解密算法),其中的加密算法及解密算法称为密码体制,五个元素共同组成密码系统。
柯克霍夫原则(Kerckhoff`s Principle)
即使密码系统中的算法为密码分析者所知,也难以从截获的密文推导出明文或密钥。
也就是说,密码体制的安全性仅应依赖于对密钥的保密,而不应依赖于对算法的保密。
只有在假设攻击者对密码算法有充分的研究,并且拥有足够的计算资源的情况下仍然安全的密码才是安全的密码系统。
必须要指出的是,密码设计的公开原则并不等于所有的密码在应用时都一定要公开密码算法。例如世界各国的军政核心密码就都不公开其加密算法。
公开算法的优点
1. 将算法公开有助于算法的改进。
2. 算法一旦被敌方获悉,就需要提供另一种算法,但算法的设计是十分困难的。而密钥若被敌方获悉,可以更改密钥继续使用该算法进行加密。
3. 防止算法设计者在算法中隐藏后门。
4. 算法得到更有效的利用。
5. 算法公开有利于对算法的安全性进行评估。
破译算法的级别(依次递减)
1. 全部破译(Total Break)
找出密钥。
2. 全部推导(Global Deduction)
找出替代算法。
3. 实例推导(Instance Deduction)
找出明文。
4. 信息推导(Information Deduction)
获得一些有关密钥或明文的信息。
攻击方法复杂性的衡量
1. 数据复杂性(Data Complexity)
攻击所需要输入的数据量。
2. 存储需求(Storage Requirement)
进行攻击所需要的数据存储空间大小。
3. 处理复杂性(Processing Complexity)
用于处理输入数据或存储数据所需的操作量,通常用完成攻击所需要的时间来度量。
评价密码体制安全性的三个途径
1. 无条件安全性
这种判断方法考虑的是对攻击者的计算资源没有限制时的安全性。即使提供了无穷的计算资源,依然无法被攻破,则称这种密码体制是无条件安全的。
无条件安全的算法是不存在的(One Time Pad,一次一密方案除外)。
2. 计算安全性
计算安全性表征了攻破密码体制所做的计算上的努力。若运用目前最好的办法攻破它所需的计算远远超出攻击者能够利用的计算资源水平,则能够定义这个密码体系是安全的。
一般地,如果一个密码体系能够满意以下两条原则之一,就能够认为是能通过计算安全性的。
– 破译密文的代价超越被加密信息自身的价值。
– 破译密文所花的时间超过了被加密信息的有价期。
由于现实中的任何密码系统都还无法真正做到无条件安全性。因此,在实际应用中,相比无条件安全性来说,人们更关注计算上安全的密码算法。对于我们来说,计算上的安全性是密码系统常见的和可实现的、实用的安全要求。
3. 可证明安全性
由于算法的安全性一般都是基于特定的数学难题的,因此,这种方法是将密码系统的安全性归结为某个经过深入研究也无法解决的数学难题(如大整数素因子分解、计算离散对数等被证明求解困难的数学难题)。如果破译一种密码算法能够等价于解决一个经过深入研究也无法解决的数学难题,那么,人们自然也有理由相信,该密码系统至少在目前是安全的。这种评估方法存在的问题是它只说明了这个密码方法的安全性与某个困难问题相关,没有完全证明问题本身的安全性,并给出它们的等价性证明。
密码系统是实际可用的所需具备的条件
- 每一个加密函数和每一个解密函数都能有效地计算。
- 破译者取得密文后将不能在有效的时间或成本范围内破解出密钥或明文,即密码系统需要能抗住唯密文攻击。
- 一个密码系统安全的必要条件:
穷举密钥搜索将是不可行的,即密钥空间非常大。
密码系统的分类
1. 明文变换到密文的操作类型
所有加密算法基于以下两个基本操作:
代替(Substitution)
代替即明文中的每一个字符被映射为另一个字符以便形成密文。
换位(Transposition)
换位即明文中字符的位置被重新排序来产生密文,组成明文与密文的字符种类与数量保持一致。
2. 所用的密钥数量
单密钥密码(Single Key Cipher)
单密钥密码即发送者与接收者双方使用相同的密钥,该系统也称为对称密码,秘密密钥密码或常规密码。
双密钥密码(Dual Key Cipher)
双密钥密码即发送者和接收者各自使用一个不同的密钥,这两个密钥形成一个密钥对,其中一个可以公开,称之为公钥;另一个必须为密钥持有人秘密保管,称之为私钥。该系统也称为非对称密码或公钥密码。
3. 明文被处理的方式
分组密码(Block Cipher)
一次处理一个分组,对每个输入分组产生一个输出分组。即明文被分成具有一定大小的若干个分组,一个分组被当成一个整体来解密处理并产生一个密文分组输出,通常使用的是 64 位或 128 位的分组大小。
流密码(Stream Cipher)
流密码也称序列密码,即连续地处理输入元素,并随着该过程的进行,一次产生一个元素的输出。即一次加密一个比特或一个字符。
对称密码体制与非对称密码体制(暂无)
对称密码体制
对称密码体制的优缺点
优点
缺点
非对称密码体制
非对称密码体制的优缺点
优点
缺点
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84054.html