最美的时光|暗藏在QQ邮箱、百度网盘的国密算法到底是如何实现的?( 二 )
? 常用的散列算法
MD(Messge Digest)4:
由Rivest于1990年设计的单向散列函数 , 能够产生128比特的散列值 。 现在它已经不安全了 。
MD(Messge Digest)5: 由Rivest于1991年设计的单向散列函数 , 能够产生128比特的散列值 。 MD5的强抗碰撞性已经被攻破 。 也就是说 , 现在已经能够产生具备相同散列值的两条不同的消息 , 因此它也不安全了 。
SHA-1、SHA-256、SHA-384、SHA512
SHA-1是由NIST(美国国家标准技术研究所)设计的一种能够产生160比特的散列值的单向散列函数 。 现在已不推荐使用 。 SHA-256、SHA-384、SHA512都是由NIST设计的单向散列函数 , 它们的散列值长度分别为256比特、384比特、和512比特 。 这些单向散列函数合起来统称SHA-2 。 目前SHA-1已经被攻破 , 2还是安全的 。
【 双向加密】
双向加密是加密算法中最常用的 , 一方将明文数据进行加密 , 另外一方可以使用一定的手段如算法和密钥 , 将密文还原为明文数据 , 所以称之为双向的 。
双向加密里又分为对称加密和非对称加密 。
1、 对称加密(Symmetric Key Encryption)
对称加密使用一个密钥 , 给定一个明文和一个密钥 , 加密产生密文 , 其长度和明文大致相同 。 解密时 , 使用的密钥与加密密钥相同 。
在对称加密中 , 分为分组加密和序列密码 。
▲序列密码
流加密(stream cyphers) , 一次加密明文中的一个位 。 是指利用少量的密钥(制乱元素)通过某种复杂的运算(密码算法)产生大量的伪随机位流 , 用于对明文位流的加密 。 解密是指用同样的密钥和密码算法及与加密相同的伪随机位流 , 用以还原明文位流 。
▲ 分组加密
块加密(block cyphers) , 一次加密明文中的一个块 。 是将明文按一定的位长分组 , 明文组经过加密运算得到密文组 , 密文组经过解密运算(加密运算的逆运算) , 还原成明文组 。
TODO 这两者的比较补充一下 , 流加密讲的太少了 , 这个东西材料也不多 。
分组加密又有四种不同的模式 , 分别如下:
? 电子密码本模式 Electronic Code Book(ECB)
这个是最简单的模式 , 就是将原来的明文给按照固定的长度(也就是密钥的长度)给拆开来 , 然后用相同的密钥进行加密 。
缺点是只适合加密小消息 , 如果明文块重复的多 , 密文里也会有很多的重复 , 它的明文和密文的对应关系是一致的 。
? 加密块链模式 Cipher Block Chaining(CBC)
前面一个加密块输出的密文与下一个要加密的明文块进行异或操作 , 将计算结果再用密钥进行加密得到密文 。 这是一个迭代的过程 , 所以会在开头需要一个初始的向量 。 这个的优势就是密文和明文不再是一一对应的关系 , 每个相同的明文都掺杂了不同的向量 。
? 加密反馈模式 Cipher Feedback Mode(CFB)
首先就是你自己有一个iv初始向量 , 对整个iv进行加密 , 然后取前面的高n位 , 与明文块的前n位进行异或操作 , 得到了n位的密文块0 。 然后这个被传入到下一个加密的操作中 , 首先将原来的iv左移n位 , 右边空出来的位置 , 就放密文块0 , 如此反复 。
? 输出反馈模式 Output Feedback Mode(OFB)
这个和CFB很类似 , 唯一的区别就是填入的是K的高n位 , 而不是前一个密文块的内容 。
- 美食工坊|而有一个很唯美的名字,日本仍保留使用,古代的苹果不叫“苹果”
- 财经锐眼|背后有何玄机?,美的董事长大笔套现近14亿
- 穿搭:文雅甜美的穿搭,显瘦有气质
- 中国经济周刊|美的方洪波减持,格力董明珠增持,空调价格战一触即发?
- 今年8月|【聚焦增减持】中期业绩失守 小家电反攻 美的集团突遭股东减持31亿!
- 爱库存与美的达成战略合作,共建新电商生态
- 最美的时光|重点项目建设巡礼 | 顺丰水果仓落地杨凌 一起感受速度与“寄”情
- 美的集团|美的集团成立新公司 经营范围包括建筑楼宇智慧化及控制系统等
- 最佳健康|藏在我朋友圈的34D蜜桃臀女神,这样的人间尤物竟然真实存在!
- 美的|?套现13亿!美的董事长首次减持:不改外资青睐度 三季度收入或强势增长