首页 > 其他 > 详细

对称密码

时间:2021-06-13 00:57:41      阅读:21      评论:0      收藏:0      [点我收藏+]

1. 编码

  计算机的操作对象不是文字,而是比特序列。现实世界中的东西映射为比特序列,叫做编码。

 

2. XOR(异或运算)

  XOR是一种基础的比特序列运算,广泛的用在密码算法的设计中。

  比特位异或:

  0 ⊕ 0 = 0

  0 ⊕ 1 = 1

  1 ⊕ 0 = 1

  1 ⊕ 1 = 0

  一个比特序列A,对比特序列B,进行两次XOR后,就会回到最初的状态。

  即:A⊕B = C  C⊕B = A  A是代加密的比特序列,B是密钥序列。

  使用这个原理可以实现一个高强度的密码。

 

3. 一次性密码本

  使用XOR进行加密的方式。

  一次性密码本的特点是不会被破译,原因是在尝试秘钥的过程中无法判断哪次破译的结果是正确的明文。

  一次性密码本没有被广泛采用的原因主要有:密钥的配送,密钥的保存,密钥的重用,密钥的同步和密钥的生成。

  一次性密码本的思想诞生了流密码。

 

4. DES

  概念

    64bit的分组密码,即64比特的明文加密成64比特的密文的对称密码算法,密钥长度是56比特。

    规格上讲,密钥长度是64比特,每隔7比特有一个错误检查位,实际上是56比特。

  特点

    DES是1977年美国的一种对称密码。

    DES强度不高,DES已经能被暴力破解了,所以不建议使用DES,除非历史文件的解密等。

 

  DES结构(Feistel网络)

    不仅用于DES,在其他密码算法中也有应用。

    技术分享图片

 

  以上是Feistel网络的一轮,DES是一种16轮循环的Feistel网络。每进行轮运算后,左右两侧需要对调。

  加密和解密完全使用相同的结构来实现。

 

5. 三重DES

  三重DES增加了DES的强度,将DES重复3次得到的一种密码算法。也称作TDEA,通常缩写为3DES。

  技术分享图片

 

  三重DES的加密机制,密钥长度56x3=168比特。

  三重DES兼容DES加密,具备向下兼容性,区别是把三重DES使用的DES-EDE3密钥换成DES密钥。

  如果密钥1和密钥3使用相同的密钥,这种三重DES就称为DES-EDE2。

  三重DES解密:过程与加密相反,以密钥3 密钥2 密钥1 的顺序执行 解密->加密->解密的操作。

  三重DES的现状

    目前还被银行等机构使用,但是处理速度不高,除了重视向下兼容性外,很少被用于新的用途。

 

6. AES

  AES是取代DES成为新标准的一种对称密码算法。Advanced Encryption Standard

  AES是比利时密码学家Daemen和Rigmen设计的密码算法,确定为AES之前叫做Rijndael。

  AES规格中分组长度是128比特,密钥长度是128比特,192和256比特三种长度。

  加密和解密:

    Rijndael由多个轮组成,每个轮分别是SubButes,ShiftRows,MixColumns和AddRoundKey 4个步骤,需要进行10~14轮的计算。

    SubBuyes:分组输入是128bit,16字节。以每一个字节为索引,从替换表中替换。

    ShiftRows:以4字节为单位的行,按照一定的规则,向左平移。

    MixColumns:一个4字节的值进行比特运算。

    AddRoundKey:与轮密钥进行XOR运算。

    加密:SubBuyes -> ShiftRows -> MixColumns -> AddRoundKey

    解密:AddRoundKey -> InvMixColumns -> InvShiftRows -> InvSubBuyes

  破译:

    Rijndael背后的数学逻辑严谨,明文到密文可以全部用公式表达,也说明Rijndael可以用数学公式进行逆运算,目前未找到有效的攻击手段。

    

对称密码

原文:https://www.cnblogs.com/yangdadahome/p/14878483.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!