(十一)密码体制的安全性(p51):
- 无条件安全:无论有多少可使用的密文,都不足以唯一地确定密文所对应的明文。(只有一次一密one time pad无条件安全)
- 计算上安全:破译密码的代价超出密文信息的价值;或者是时间超出密文信息的有效生命期。
另外:
- MD5是128比特,SHA-1是160比特
- 理论上,哈希函数一定会发生碰撞,那么对MD5的生日攻击,则需要2(128/2)=264条消息进行散列,找到碰撞的概率就有1/2,如果用每秒运算达10亿次的计算机需要58年寻找碰撞;
- 对 SHA-1 的生日攻击,则需要2(160/2)=280条消息进行散列,但王小云老师团队仅用 2^69 次即可实现(2005年)。
(十二)密钥算法的分类(按照密钥的特点分类):
- 对称密码算法,又叫传统密码算法、单密钥算法,如果n个用户要做保密通信都得是两两share一把钥匙,整个通信网络中总共有n*(n-1)÷2把钥匙。举例:①Caesar密码;**②Playfair密码;**③Hill密码。
- 非对称密钥算法,又叫公开密钥算法、双密钥算法,n个用户则是2n把钥匙。举例:①RSA算法;②DH算法。
(十三)对称密码按照对明文的处理方法分为:
- 分组密码算法(每次处理一组元素,相应地输出一组元素),比如DES。
- 流密码算法(又叫序列密码算法,每次加密数据流的一位或一个字节),比如RC4。
**流密码和分组密码的区别?**答:流密码每次加密数据流的一位或者一个字节,而分组密码是将一个明文分组作为整体加密并且通常得到的是与明文等长的密文分组。
第七章
(十四)3DES加密-EDE两个公式:
- C=EK1(DK2(EK1§))
- P=DK1(EK2( DK1©))
为什么3DES的中间部分采用了解密而不是加密?
- **答:主要是为了功能更加强大,兼容单密钥加密。**按常识,如果是EEE/DDD模式的话,解密:DK1(DK1( DK1©)),其中c=EK1§,不能还原出p。而如果是EDE/DED模式的话,解密:DK1(EK1( DK1©)),其中c=EK1§,则能还原出p。
(十五)分组密码要把消息分成块加密,消息的每一块的加密方式有什么?(分组密码的工作模式)
- ECB:电码本模式,每个块并行加密,独立互不影响。
- CBC:密文分组链接模式,前一个加密密文输出作为下一次输入作为链接。