密码学原理学习笔记

攻击的类型:

唯密文攻击(COA):攻击者只知道密文

已知明文攻击(KPA):攻击者知道同一密钥下密文对应的明文。

选择明文攻击(CPA):攻击者可以事先任意选择一定数量的明文,让被攻击的加密算法加密,并得到相应的密文。

选择密文攻击(CCA):攻击者事先知道任意一定数量的密文,让被攻击的解密算法解密,并得到对应的明文。

被动攻击:COA、KPA

主动攻击:CPA、CCA

补充(来源:https://www.zhihu.com/question/34624915):

古典密码学

凯撒密码:使用移位处理

维吉尼亚密码:确定密钥后,多次使用凯撒密码

破解维吉尼亚密码:关键在于确定密钥的长度t

 方法一  Kasiski方法:

在密文中出现相同的子串之间的距离可能是t的倍数,找出所有的相同的子串的距离,尤其出现次数较多的(避免巧合),t是这些距离的最大公约数。

方法二 Friedman试验:

以下内容推荐博客:https://blog.csdn.net/white_idiot/article/details/61201864

重合因子Index of Coincidence(IC):任意取两个字母(取后放回),使之结果相同的概率

英语中的重合因子定义如下:

,由每个字母出现的概率,可算得其结果为0.065

破解维吉尼亚密码的两个步骤:

1、确定密钥长度。

遍历密钥长度,使得某一个密钥长度下的分组算得的重合因子其结果接近0.065,可用以下公式:

,其中,i为英文字母顺序表中的第i个字母,ni为其在密文分组中出现的频数,N为该分组的长度。如果该密钥长度下的各个分组算得的平均重合因子的结果接近0.065,则找到正确的密钥长度。否则,换下一个密钥长度测试。

2、进行频率分析。

密文确定密钥长度后,可将密文划分成相应的分组。在划分出来的任一分组中,明文和密文都是通过同一个字母实现移位加密的,此时,只需将密文相对于明文进行移位测试,找出具有重合因子接近0.065的位移,即可确定该分组的偏移量,其他分组同理。可用以下公式:

(j的取值为[0,25],即我们需要求的偏移量)。可理解成:明文中出现的第i个字母可能映射成了密文中的第i+j个字母(两个"字母"都已经按顺序排好,但出现的频数不一定相同)

单字母替换(Mono-Alphabetic Substitution):将明文中的字母进行随机替换,密钥空间为26!

Kerckhoffs’s principle :

The cipher method must not be required to be secret, and it must be able to fall into the hands of the enemy without inconvenience.


Sufficient Key Space Principle:

Any secure encryption scheme must have a key space that is not vulnerable to exhaustive search

Arbitrary Adversary Principle :

Security must be guaranteed for any adversary within the class of adversaries having the specified power

现代密码学的三个主要规则

Principle 1: Formulation of Exact Definitions
No adversary can derive any meaningful information about the plaintext from the ciphertext.

Principle 2 – Reliance on Precise Assumptions


Principle 3 – Rigorous Proofs of Security


原文地址:https://www.cnblogs.com/cellphone7/p/9595373.html