互联网飞速发展的今天,我们的生活越来越离不开互联网,但是,随之而来的互联网安全问题也着实让我们感到头疼。

为了增强互联网的安全性,因此出现了加密解密机制。

 

【密码算法和协议】

   对称加密:双方使用同一密码

   公钥加密:双方使用不同密码

   单向加密:抽取特征码,二次验证数据完整性

   认证协议:验证通信双方身份可靠性

 

对称加密常用的算法DESDES3AES(商用BlowfishTwofishIDEACAST5等)

对称加密特性:加密解密使用同一口令

              将明文分割成固定大小的块,逐个加密

对称加密缺点:密钥过多

              密钥交换不安全

              口令传输不安全,密钥交换、身份认证、数据完整性无法保证

 

【公钥加密】

密钥分为:公钥(pk)、私钥(sk)  ps加密的文件必须使用与之配对的sk才能解密

用途:身份认证、密钥交换

常用算法RSA(加密、认证)、DSA(只提供认证)、EIGamal

 

 

【单向加密】

特点:定长输出

      雪崩效应

常用算法MD5SHA1SHA256SHA384SHA512...

 

 

 

密钥交换(IKE:用对方的公钥对密钥进行加密并发送给对方,对方用自己的私钥解密得到密钥。

 

 

【对称加密的实现方式】

如同下图所示

 

wKiom1PeE9mCGE34AADq1PIaOag701.jpg


【对称加密实现具体步骤】

张三想要发送文件给李四,首先张三和李四要商量好双方使用的密钥(两人使用的密钥相同,由一方发送给另一方),然后张三把他要发给李四的明文交给加密算发并输入密钥进行加密,得出密文,然后把密文发送给李四,李四拿到密文后把密文交给解密算法并输入密钥才能还原明文。

注:此过程发送密钥是以明文方式发送的,所以对称加密的密钥交换过程极不安全,如果与张三通信的人比较多,那么每个人都要有一个密钥,这样就会出现密钥过多不便于记忆的现象。而且在传输过程中无法保证数据时候完整,没有办法确认发送方的身份。

 

 

【公钥加密过程】

公钥加密,每个用户都有属于自己的一对密钥(pksk

如下图所示

 

wKioL1PeFSKCn9ZpAAFIVYSRqgw660.jpg


过程:张三向李四请求李四的pk,李四把自己的pk发送给张三,张三用李四的pk使用加密算法给明文加密得到密文,李四收到密文后用自己的sk使用解密算法把密文还原成明文。

注:公钥加密,双方只用维护自己的公钥和私钥即可,不必去记忆别人的密钥。

   

【公钥加密用法2

 

wKiom1PeFD6RXnSQAAE2QoYqvls518.jpg


主要用于身份验证:李四向张三请求张三的pk,张三把自己的pk发送给李四,张三用自己的sk加密数据,李四收到数据用张三的pk进行解密得到源数据。(如果能解密,就证明该文件是张三发的,如果不能解密就说明该文件不是张三发的)

注:由于公钥加密消耗时间长,如果用做身份认证不建议直接对数据进行加密。

 

 

【单向加密过程】


wKioL1PeFYihHoEmAAG7yC8bA14555.jpg


过程:李四首先请求张三的pk。张三把自己的pk发送给李四,张三首先用单向加密明文,得到一个特征码,然后再把特征码用自己的sk加密生成密文发送给李四,李四收到后,首先用张三的pk解密,得到特征码和明文,(说明此文件是张三发的,验证了发送者身份)然后李四再用同样的单向加密算法对明文件进行加密并得到一个特征码,李四把两个特征码进行比对就知道数据是否完整。

这样就保证了身份、和数据的完整性

 


【互联网上真正的加密解密过程】

 

就像之前的单向加密一样,只不过张三加密完成后,还会生成一个字符串,用这个字符串作为对称加密的密钥,然后再用李四的公钥对这个生成的密钥进行加密(这样就能保证只有李四才能解密),然后再发给李四。在这个过程中,张三如何获取李四的公钥呢?这就需要一个可信的第三方机构来提供了(CA),李四会把CA给自己的证书发送给张三,张三拿到证书后向CA请求公钥去解密特征码以验证李四的身份。