RSA(1)

(1)非对称加密算法

有两个密钥:公钥和私钥。它们是一对,如果用公钥进行加密,只有用对应的私钥才能解密;如果用私钥进行加密,只有用对应的公钥才能解密。
    非对称加密算法实现机密信息的交换过程为:甲方生成一对密钥并将其中一个作为公钥向其他方公开;得到该公钥的乙方使用该密钥对机密信息进行加密后发送给甲方;甲方再用自己的另一个专用密钥对加密后的信息进行解密

(2)算法原理

 算法本身基于一个简单的数论知识:给出两个质数,很容易将它们相乘,然而给出它们的乘积,想得到这两个质数就显得尤为困难。如果能够解决大整数(比如几百位的整数)分解的快速方法,那么 RSA 算法将轻易被破解

N(Modulus):模数,是两个大质数P和Q的乘积。N的长度决定了RSA算法的安全性。

E(Public Exponent):公钥指数,通常为65537(0x10001)。E用于加密数据,是公钥的一部分。

P(Prime Factor):质数P,是模数N的一个因子。

Q(Prime Factor):质数Q,是模数N的另一个因子。

DP(D mod (P-1)):D对(P-1)取模的结果,用于解密数据。

DQ(D mod (Q-1)):D对(Q-1)取模的结果,用于解密数据。

Qinv(Q^-1 mod P):Q的模P的乘法逆元,用于解密数据。

D(Private Exponent):私钥指数,E的模反元素。(本人习惯大写的,小写的也行)

关系式

N=P*Q

T=(P-1)*(Q-1)       (欧拉函数)

1 <E(公钥)<T,且不是T的因子

(D*E)%T=1

(3)RSA加密

对于明文 x,用公钥 (n,e) 对 � 加密的过程,就是将 x 转换成数字(字符串的话取其 ASCII码或者 unicode 值),然后通过幂取模计算出 y,其中 y 就是密文;即

                 y=(x的e次方)mod n          (不会打指数,只能这样了,大家可在评论区留言教我一下,谢谢)

(4)RSA解密

类似加密,x=(y的d次方) mod n

      

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值