TLS(安全传输层协议):由两部分组成。第一部分为握手协议(Handshake),Alice与Bob互相交谈,在握手的最后,双方分享一个密钥,Alice与Bob都知道这个密钥,但攻击者不知道会话密钥K,运用了公钥密码技术。第二部分为记录协议(Record),双方共享密钥时,如何使用密钥加以保护通信数据。
对称加密:以分组的形式保护流量的技术。在对称加密系统中,只有通信双方知道密钥K,他们使用加密算法 E 和解密算法 D 进行通信加密。加密算法以原信息和密钥为输入,产生密文;解密算法以密文和密钥为输入,输出原信息。算法是公开的,密钥是保密的。很多私有的算法一旦被逆向工程很容易破解。
一次密钥(one time key)每个密钥只加密一个信息。
WEP用来加密WiFi流量。
密码学的核心是安全通信,含有两个部分:安全的密钥建立、安全的通信。
现代密码学描述的每一个概念都依照非常严格的三步:
- 当引入新的原型时,如数字签名,要准确描述模型的威胁是什么,如攻击者如何攻击数字签名、伪造签名的目的。
- 提出架构,证明攻击者在这个威胁模型下可以攻击这个架构。
- 攻击者可以用来解决根本性难题,如果问题很难,则证明攻击者无法在威胁模型下破解这个架构。
eg:对于数字签名,我们定义数字签名不可伪造的意义,然后给出一个架构,假如有人能够破解这个架构,他也可以用他破解的方法来解决因子分解问题。
凯撒密码:并不是密码,因为没有密钥,是一个固定替换的替换式密码,利用字母移位,可轻易破解。
简单的替换式密码:密钥是一张字母映射替换表,替换表是随机选择的。假设有26个字母,密钥空间是 26!个,约为 2^88 ,意味着描述一个替换密钥需要88位,每个密钥以88位表示,但依然不安全,可以通过唯密文攻击仅凭密文就能还原密钥以及明文,首先可以使用字母的频率 e>t>a 分析,其次,通过字母配对的频率 he、an、in、th 等。所以,替换式密码可轻易破解。
Vigener加密:密钥是一个单词,将密钥字母不断重复以覆盖整个明文信息,将密钥字母和信息字母相加,模 26 得到密文。解密时,将密文信息(不够则 +26 )减去密钥。通过唯密文攻击破解,破解时,首先假设密钥长度已知为 6 ,将密文按照密钥长度分组,然后看每组的第一个字母,它们都被同一个字母加密,eg:假设第一个密钥字母为 C ,则密文分组第一个字母是明文移动 3 位。收集所有字母,最常见的字母很可能是 E 的加密结果,设想每隔 5 个字母最常见的是 M ,我们知道 E 加上第一个密钥字母等于 M ,则 M-E=H,得出 H 为第一个密钥字母。同理,看每个密文分组的第二个字母,重复操作,找出最常见字母,它很可能是 E 的加密结果,减去 E 就是密钥的第二个字母,可以还原整个密钥。密钥长度未知的情况下,先假定密钥长度是 1 ,然后假定长度是 2 、是 3 等等,再运行解密过程,知道了密钥长度和密钥信息,直到得到一个说得通的明文信息。
单个轴轮机:密钥在碟片里,每按一次打字机,碟片转一个刻痕,实际上是一个替换表的编码,如图所示,连续按下 C 三次,三次输出均不同,依次为 T、S、K。通过唯密文攻击破解,分析字母频率、配对频率、三合字母频率。
Enigma机:是一种复杂的轴轮机,使用了3、4或5个轴轮。密钥是轴轮的初始设定,打字时,轴轮以不同速率旋转输出密文,4 个轴有 26^4 个不同的密钥,约 2^18,密钥空间较小。可通过唯密文攻击破解。
DES:一种将 64 比特的明文加密成 64 比特的密文的对称密码算法,密钥长度为 56 比特,每隔 7 比特会设置一个用于错误检查比特,密钥空间为 2^56 ,一次加密 64 位(8个字母),密钥空间很小,可以使用暴力破解,新项目中不能继续使用。
AES:分组长度固定,使用 128 位密钥,密钥长度 128、192、256 比特。