对称和非对称加解密

 

对称加密算法
加密过程:
        将明文分成N个组,然后对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。
优点:
        算法公开、计算量小、加密速度快、加密效率高
缺点:
        交易双方都使用同样钥匙,安全性得不到保证
        密钥管理困难,尤其是在分布式网络中
常用算法:
        DES、3DES(TripleDES)、AES、RC2、RC4、RC5和Blowfish

 


非对称加密算法
使用过程:
          乙方生成两把密钥(公钥和私钥)
          甲方获取乙方的公钥,然后用它对信息加密。
          乙方得到加密后的信息,用私钥解密,乙方也可用私钥加密字符串
          甲方获取乙方私钥加密数据,用公钥解密
优点:
         更安全,密钥越长,它就越难破解
缺点:
         加密速度慢
常用算法:
          RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)

 

 

对称 (des、3des、aes)

     DES:
           DES算法 再大多运用在 如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等领域

           DES算法的入口参数有三个:Key、Data、Mode。
           Key为8个字节共64位,是DES算法的工作密钥;
        Data也为8个字节64位,是要被加密或被解密的数据;
           Mode为DES的工作方式,有两种:加密或解密。
           DES算法是这样工作的:
             如Mode为加密,则用Key 去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果
                  如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。
            在通信网络的两端,双方约定一致的Key

      3DES
           在 DES 的基础上,使用三重数据加密算法,对数据进行加密,这样来说,破解的概率就小了很多
           使用 3 条 56 位的密钥对数据进行三次加密。3DES是 DES 向 AES 过渡的加密算法
           K1、K2、K3决定了算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。.它在对付强力攻击时是比较安全的。若数据对安           全性要求不那么高
          K1可以等于K3。这种情况下密钥的有效长度为112位


      AES
            高级加密标准,是下一代的加密算法标准,速度快,安全级别高
           AES算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个,AES是一个迭代的、对称密钥分组的密码,它可以使用128、            192和256位密钥, 并且用128位(16字节)分组加密和解密数据

算法                   Key                                       位数                                 是否可逆                             其它
MD5              没有Key,                           有区别16位和32位,                    不可逆                               (无)
SHA                 (?)                                   (?)                                不可逆                               (无)
RSA           有(公Key,私KEY)                    (?)                                可逆                                公、私Key采用不同的加密算法
DES3                 有                                        (?)                                可逆                                    (无)
AES                   有                                        (?)                                可逆                                     (无)
BASE64         没有KEY                                 (?)                                可逆                                     (无)

哈希函数:MD5,SHA 是没有密钥的,相当与指纹的概念,因此也是不可逆的;
md5是128位的,SHA有不同的算法,有128,256等位。。。如SHA-256,SHA-384
Base64,这更加不属于加密算法的范围了,它只是将byte[]数组进行了转换,为什么要转换呢?就是因为很多加密后的密文后者一些特殊的byte[]数组需要显示出来,或者需要进行传递(电子邮件),但是直接转换就会导致很多不可显示的字符,会丢失一些信息,因此就转换位Base64编码,这些都是可显示的字符。所以转换后长度会增加。它是可逆的

再就是 3DES,DES 这才是加密算法,因此也是可逆的,加解密需要密钥,也就是你说的key

最后是 RSA ,这是公钥密码,也就是加密和解密密钥不同,也是可逆的。

非对称 (数字证书ca&https)
非对称加密DH为了更好的区分明文和密文,用【AA】代表AA被加密,AA 代表正常未加密
      client 发出请求
      server 收到请求,并自己生成一对密钥,即 公钥S 和 私钥S
      server 把生成的 公钥S 传递给 client (除了 公钥S ,还有很多额外信息)
      client 收到 公钥S 后进行判断,若无效,弹出警告,否则生成一串随机数,我们称之为 私钥C ,然后 client 用 server 传过来的 公钥S 对该随机数加密,形成【私钥C】
      client 把【私钥C】传递给 server
      server 收到【私钥C】,用 私钥S 把【私钥C】解密成 私钥C,然后把需要传递的数据用 私钥C 进行加密
      server 把【数据】传递给 client
      client 收到【数据】,用 私钥C 解密,完成一波收割


对称加密是指加密和解密用一致的密钥,特点是快
非对称加密是指密钥区分公钥和私钥,公钥加密,私钥解密(私钥好比唯逐个把钥匙,公钥好比锁,钥匙只有一把,但锁可以有很多,被锁头锁上的数据全天下只有一把私钥才能 单开),特点是安全,但是慢
这回理解了吧,上述方式缺点是 慢,所以 https 的流程综合了对称加密和非对称加密的优点,利用非对称加密的安全性来加密那一串随机数--私钥C,利用对称加密的快捷性来加
密报文,总体来说就是把真正加密解密的密钥(私钥C)用公钥S和私钥S来加密,很灵性啊。

利弊

aes/des加密速度快,适合大量数据,des容易破解,一般用3重des,后来又出现了更快更安全的aes
rsa是公钥加密,速度慢,只能处理少量数据,优点是公钥即使在不安全的网络上公开,也能保证安全
常见情况是双方用rsa协商出一个密钥后通过aes/3des给数据加密

posted @ 2018-02-22 18:16  吴某1  阅读(1224)  评论(0编辑  收藏  举报