zoukankan      html  css  js  c++  java
  • RSA加密解密和签名验证机制以及其区别和联系

    https://blog.csdn.net/wangjianno2/article/details/68965299

    1.RSA的加密解密机制原理
    RSA公钥加密体制包含如下3个算法:KeyGen(密钥生成算法),Encrypt(加密算法)以及Decrypt(解密算法)。详细如下:


    所以,从算法描述中我们也可以看出:公钥用于对数据进行加密,私钥用于对数据进行解密。当然了,这个也可以很直观的理解:公钥就是公开的密钥,其公开了大家才能用它来加密数据。私钥是私有的密钥,谁有这个密钥才能够解密密文。否则大家都能看到私钥,就都能解密,那不就乱套了。

    2.RSA的签名认证机制原理
    签名体制同样包含3个算法:KeyGen(密钥生成算法),Sign(签名算法),Verify(验证算法)。其中秘钥生成算法和RSA加密解密中的秘钥生成算法是一样的。

    对于签名和认证的M,可以是原始的信息的报文摘要。在https中,CA对也是对证书的某些信息的报文摘要进行签名的。
    所以,在签名算法中,私钥用于对数据进行签名,公钥用于对签名进行验证。这也可以直观地进行理解:对一个文件签名,当然要用私钥,因为我们希望只有自己才能完成签字。验证过程当然希望所有人都能够执行,大家看到签名都能通过验证证明确实是我自己签的。

    3.RSA加密解密机制和签名认证机制的区别和联系
            假设RSA加密解密系统中,将加密函数称为E,将解码函数称为D。在加密过程中,我们使用公钥PK和E函数,将报文加密,然后在对端使用私钥SK和D函数将密文解密,得到原始的报文。
            而在签名认证的过程中,我们使用私钥SK和D函数进行报文的签名,然后在对端使用公钥PK和E函数进行认证。注意的是,这里的D和E和上面的D和E函数是一样的。
            因为,在RSA加密系统中,以任意顺序 应用D和E函数时,两者都会相互抵消。因此E(D(stuff))=stuff,就像D(E(stuff))=stuff一样。只是习惯上,E和D在加密过程中,称为加密函数和解码函数;而在签名认证过程中,称为签名函数和认证函数,其实是一样的。
    ---------------------
    作者:_佚名-2017_
    来源:CSDN
    原文:https://blog.csdn.net/wangjianno2/article/details/68965299
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    使用NPOI将TABLE内容导出到EXCEL
    如何判断一个指定的经纬度点是否落在一个多边形区域内?
    SQL随记(三)
    SQL随记(二)
    SQL随记(一)
    微信开发(1)
    关于面试经验的总结
    动态代理是什么
    集合的遍历以及在Spring中的注入
    向服务器发送邮件(四)
  • 原文地址:https://www.cnblogs.com/dengchaojie/p/9933074.html
Copyright © 2011-2022 走看看