Prodesse Quam Conspici

Attack models in cryptography


现代密码学的一个重要原则被称为Kerckhoff's principle,要求密码系统的安全性不能依赖于算法的保密性,而只能依赖于密钥的保密性。由此,密码学算法对攻击者总是已知的。

在此之上,根据攻击者能够获取的不同明密文信息将其攻击能力分为几个模型。能力由弱到强有唯密文攻击,已知明文攻击,选择明文攻击,选择密文攻击等模型。以下结合具体实例介绍这样几个攻击模型。

另一方面,攻击者的目标其实也可以分为两种,一是破解密钥;二是获取某一特定密文的明文。显然后者的难度不会高于前者。

1 唯密文攻击

唯密文攻击(Ciphertext-only Attack-COA),即攻击者只获得了若干密文,而没有任何的明文信息。这是最强的一种假设,即攻击者能力最弱,当然也是最低安全性要求。要实施这种攻击也很简单,只要监听信道就可以抓取密文信息了。

2 已知明文攻击

已知明文攻击(Known-Plaintext Attack-KPA),指攻击者有若干明密文对,在此基础上进行密钥破解或者明文推测。现实中如何获取明密文对呢,很多协议开头有magic number或者类似的标识信息,这些协议的内容加密后显然就是这些magic number或者标识信息对应的密文。

3 选择明文攻击

选择明文攻击(Chosen-Plaintext Attack-CPA),指攻击者占据加密机(encryption oracle),从而可以构造任意明文并用加密机得到其密文,据此进行密钥破解或者明文推测。此处加密机应当理解为内含加密密钥和加密算法的一个黑盒,攻击者不能从中取出密钥,但是可以输入任意明文由该黑盒吐出用密钥加密后的密文。

选择明文攻击的经典例子来自二战。日军在珊瑚海战后即将中途岛确定为下一个攻击目标,美海军情报局由于破译了日军部分密码,了解到了这一计划,但是具体攻击目标未能成功破译(日军密电中称为'AF'),综合其他因素推断也不能明确,一部分人认为是中途岛,另一部分人则认为是阿留申群岛。后来,美军想到一个绝妙的主意,他们通过无线电向珍珠港报告,说中途岛上的海水净化装置故障导致岛上缺水,不久从日军截获的密电中即出现了'AF'缺水的内容,从而明确了日军目标即中途岛。

4 选择密文攻击

选择密文攻击(Chosen-Ciphertext Attack-CCA),指攻击者能实施选择明文攻击,即能够得到任意明文对应的密文的情况下,还占据解密机(decryption oracle)从而可以构造任意密文并使用解密机解密得到其明文,据此进行密钥破解或者明文推测,当然这里要排除攻击者期望攻击的密文。与选择明文攻击类似,这里所谓占据解密机,也是指攻击者能够在不知道密钥的情况下构造任意的密文获得其明文。

根据攻击者能够构造密文的阶段不同,CCA又可进一步分为CCA1(Non-adaptive CCA),CCA2(Adaptive CCA)两个模型。二者的差别在于,在CCA1中,攻击者一次性将构造好的一组密文输入解密机得到它们对应的明文;而在CCA2中,攻击者可以在前一个密文解密得到的明文基础上构造后续要解密的密文。

一个实际的CCA2攻击的例子是针对PKCS#1 random padding的Bleichenbacher攻击。

Tags: cryptography.