RSA算法加密计算

基本概念

RSA是一种非对称加密技术,如图所示,即,假设Bob要向Alice发送文档,Bob将原始文档用Alice的公钥进行加密,随后Alice收到加密文档,用自己的私钥解密。
在这里插入图片描述
从这个例子当中,我们可以看到,加密和解密使用的是不同的密钥。
公钥:加密文档的密钥,发送方和接收方都有
私钥:解密文档的密钥,接收方独有
详细可以看本篇文章:【一起学加密0】公钥基础设施(PKI)介绍

算法原理

RSA是目前最优影响力的公钥加密算法。

RSA算法基于一个很简单的数论事实:将两个大质数相乘十分容易,但是要对其乘积进行因式分解及其困难,因此可以将乘积公开,作为公钥密钥

在这里插入图片描述

de=1modφ(n)是计算机安全学中的加密算法RSA, RSA算法中de=1modφ(n)表示de与1关于φ(n)同余,也就是说1除以φ(n)的余数与1除以de的余数相同。
  例如:p=3,q=11,d=7;φ(n)=(p-1)(q-1);
  n=pq=3×11=33,
  φ(n)=(p-1)(q-1)=2*10=20
  由de=1modφ(n),
  7e=1mod20
  即7e 与1 关于20同余,即余数相同 ,而1除以20余数为1 ,
  则7e=20k+1 ,其中k为整数。比如k取1,则e=3。

算法举例

密钥计算:

需要加密的明文信息为m=85,选择:e=7,p=11,q=13

n=p*q=11*13=143
z=(p-1*(q-1=10*12=120

e*d=1(mod z)  
7 * d( mod 120)=1  -------d=103

加密运算

公钥:(e,n)=(7,143)
密文c=p^e (mod n)=123

解密运算

密钥:(d,n)=(103,143)
明文:P=c^d (mod n)=85

猜你喜欢

转载自blog.csdn.net/weixin_42098322/article/details/125718048