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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    (二)shell中的变量
    (一)shell脚本入门
    java的动态代理机制详解
    docker学习
    一、Spring Boot 入门
    如何高效的利用博客园?
    CMake入门指南
    TortoiseSVN安装使用
    TortoiseSVN配置和使用教程
    脑电采集 地电极和参考电极的作用和区别
  • 原文地址:https://www.cnblogs.com/dengchaojie/p/9933074.html
Copyright © 2011-2022 走看看