开发者社区> 问答> 正文

rsa是什么?

rsa是什么?

展开
收起
知与谁同 2018-07-18 18:11:06 1875 0
2 条回答
写回答
取消 提交回答
  • RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
    RSA的算法涉及三个参数,n、e1、e2。
    其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
    e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。
    (n及e1),(n及e2)就是密钥对。

    RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n;
    e1和e2可以互换使用,即:
    A=B^e2 mod n;B=A^e1 mod n;

    补充回答:
    对明文进行加密,有两种情况需要这样作:
    1、您向朋友传送加密数据,您希望只有您的朋友可以解密,这样的话,您需要首先获取您朋友的密钥对中公开的那一个密钥,e及n。然后用这个密钥进行加密,这样密文只有您的朋友可以解密,因为对应的私钥只有您朋友拥有。
    2、您向朋友传送一段数据附加您的数字签名,您需要对您的数据进行MD5之类的运算以取得数据的"指纹",再对"指纹"进行加密,加密将使用您自己的密钥对中的不公开的私钥。您的朋友收到数据后,用同样的运算获得数据指纹,再用您的公钥对加密指纹进行解密,比较解密结果与他自己计算出来的指纹是否一致,即可确定数据是否的确是您发送的、以及在传输过程中是否被篡改。

    密钥的获得,通常由某个机构颁发(如CA中心),当然也可以由您自己创建密钥,但这样作,您的密钥并不具有权威性。

    计算方面,按公式计算就行了,如果您的加密强度为1024位,则结果会在有效数据前面补0以补齐不足的位数。补入的0并不影响解密运算。
    2019-07-17 22:56:17
    赞同 展开评论 打赏
  • 云栖社区聚能聊、问答管理员~发福利、搞怪,八卦我来,论技术、发话题、写博客你上!
    RSA是三个人.三个人发明了RSA算法并且组建了RSA公司.这个公司是半官方的组织
    RSA算法是非对称加密.在一种运算规则下 x*y=1
    公钥是x ,加密信息是m ,密文p,则 m*x=p 解密时p*y=m
    这个运算不是在普通的自然数域内计算的.而是在嘎瓦洛域运算.也就是模运算下实现的.
    因为x和y可以不一样.所以这个方法比传统的对称密钥方便多了.发送密文方不必知道对方私钥只要知道对方公钥就行.RSA算法的缺点是效率低.
    2019-07-17 22:56:17
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多