zoukankan      html  css  js  c++  java
  • 对称加密和非对称加密

    对称加密(symmetrical encryption)

      采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密

      常用算法:在对称加密算法中常用的算法有:DES3DES、TDEA、Blowfish、RC2、RC4、RC5IDEA、SKIPJACK等。

     
      算法特征
      1、加密方和解密方使用同一个密钥;
      2、加密解密的速度比较快,适合数据比较长时的使用;
      3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;
     

    非对称加密(Asymmetric encryption)

      而非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。

      工作原理:

      1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。
      2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。
      3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。
        在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。
        同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。
     
    特点
     
        非对称加密算法在使用时需要同时拥有公开密钥和私有密钥,公开密钥与私有密钥相对应,如果在对数据的
    非对称加密  非对称加密
      加密过程中使用了公开密钥,那么只有使用相对应的私有密钥才能解密;反之,如果在对数据进行加密时使用了私有密钥,也只有使用与之相对应的公开密钥才能解密。非对称加密算法对传信息进行加密的基本过程是:甲方首先生成一对密钥同时将其中的一把作为公开密钥;得到公开密钥的乙方再使用该密钥对需要加密的信息进行加密后再发送给甲方;甲方再使用另一把对应的私有密钥对加密后的信息进行解密,这样就实现了机密数据传输。非对称加密算法的另一种加密过程是:甲方使用自己的私有密钥对信息进行加密后再发送给乙方;乙方使用甲方提供的公开密钥对加密后的信息进行解密,如果成功解密即可证实信息确实是由甲方所发,并非他人冒充,这就是现在常用的数字签名技术。
    非对称加密算法的特点是算法强度复杂,其安全性依赖于算法与密钥。由于其算法复杂,而使得加密解密的速度远远低于对称加密算法,因此不适用于数据量较大的情况。由于非对称加密算法有两种密钥,其中一个是公开的,所以在密钥传输上不存在安全性问题,使得其在传输加密数据的安全性上又高于对称加密算法
  • 相关阅读:
    字符串中包含最多的字符
    循环左移操作 (左旋转字符串)
    翻转字符串
    和为s的连续正数序列
    Unity之使用技巧记录
    Unity资源
    各种IDE的使用
    Unity3d之MonoBehavior自带方法的执行顺序
    c#之new关键词——隐藏基类方法
    算法——各种类型对象通用的二分法插入排序
  • 原文地址:https://www.cnblogs.com/irobotzz/p/11864373.html
Copyright © 2011-2022 走看看