对称加密

对称加密,就是对同一个文件进行加密和解密用的都是同一个密钥。


CA如何保证合法性

非对称加密在网络信息传播中主要有两方面应用:信息加密和数字签名。
信息加密的过程主要是:

  • A生成公私钥对,将公钥公开。
  • B将要发送给A的信息用公钥加密。
  • A收到密文,用私钥进行解密。
    这过程中,因为只有A拥有对应的私钥,所以用A的公钥加密的信息,只有A能解密。

数字签名的过程可看成信息加密的逆过程,简单抽象如下:

  • A生成自己的公私钥对,将公钥公开。
  • A要发送消息时,对消息进行哈希,用私钥对哈希加密,生成签名,将信息和签名一起发出。
  • 收到A发送的信息和签名的接收方,用A的公钥对签名解密,验证信息的哈希和解密出来的哈希,即证明消息的发送方是否是A。

这里存在的问题是,如何保证收到者得到的A的公钥就是A发出来的。
解决方法是通过CA(认证机构)来保证。

  • 消息的发送方A将公钥交给CA。
  • CA生成自己的公私钥,用CA的私钥对A的公钥进行签名,将A的公钥和签名打包成证书。
  • 消息接收方B如果要接受A的消息,就从CA获取A的证书,并用CA的公钥对证书验签,获得A的公钥。
  • A用私钥进行签名,B用CA证书中的公钥验签。
    这个过程又存在一个问题,怎么保证CA的公钥就是可信的。这里基于的假设就是CA一定是可信的,不然这会是一个无限递归的问题。

参考:http://www.cnblogs.com/songwenlong/p/6517165.html。文章中简明的概述了加密算法、哈希、数字签名、公钥证书在
消息传输中的作用和解决的问题。

DES对称加密算法

参考:https://www.cnblogs.com/songwenlong/p/5944139.html。比较详细的介绍。
DES是分块加密的,每块数据大小64位,密码也是64位。

  • IP置换。将64位数据按照设计好的规则换位,再分位左右32位的两部分L0,R0.
  • 密钥置换。密钥每字节取前7位,最后一位作为校验位,总共56位,这56位也按照设定的规则换位,再分成28位的两部分,
    按照设定的规则向左移位,之后再从这里选择48位。
  • R0做成4X8的矩阵,分别在两侧补相邻的8位,形成48位。
  • S盒替代。48位分别通过8个S盒进行坐标映射替换,得到32位。
  • P盒置换。对S盒输出的32位进行置换,按照预先设定的规则。
  • IP-1末置换。左右两部分合成,进行置换。

移位、置换、扩展、压缩、异或、迭代