zoukankan      html  css  js  c++  java
  • 全网--最全非对称加密

    一.概念

    非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。

    公开密钥与私有密钥是一对。公钥加密,只能用对应的私钥解密。私钥加密,只能用对应的公钥解密。

    因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

    二.非对称加密算法

            RSA、DSA(数字签名用)、ECC椭圆曲线加密系统(移动设备用)、SM2、Diffie-Hellman、El Gamal。

      

            RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;

            DLP:DIffie-Hellman密钥交换,允许双方通过不安全的信道进行交流,得到一个共同密钥。

            ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。

            SM2:基于椭圆曲线算法,在国内代替RSA和ECC加密算法

                  

            ECC和RSA相比,在许多方面都有对绝对的优势,主要体现在以下方面:
    (1)抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。
    (2)计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。
    (3)存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。
    (4)带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。

    三.摘要算法(散列算法、hash算法)

      散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。

           Hash算法:特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。

    单向散列函数一般用于产生消息摘要,密钥加密等,常见的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1。

           MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文。
           SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值;

           SHA-1与MD5的比较
    因为二者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:
    (1)对强行供给的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2^(128)数量级的操作,而对SHA-1则是2^(160)数量级的操作。这样,SHA-1对强行攻击有更大的强度。
    (2)对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,SHA-1显得不易受这样的攻击。
    速度:在相同的硬件上,SHA-1的运行速度比MD5慢。

    总结:

    • 公钥加密,只能用对应的私钥解密
    • 私钥加密,只能用对应的公钥解密
  • 相关阅读:
    [IMX6]Android6.0移植和分析
    Android设计原则和设计模式
    Linux内核源码目录
    Android源码博客目录
    Android应用博客目录
    imx6的kernel3.4.15启动流程
    dd命令
    shell
    i.mx6 Android5.1.1 build解析
    git总结
  • 原文地址:https://www.cnblogs.com/kyooo/p/13260868.html
Copyright © 2011-2022 走看看