RSA 加密计算
2015-03-08 01:15
120 查看
算法描述
选择一对不同的、足够大的素数p,q。
计算n=pq。
计算f(n)=(p-1)(q-1),同时对p, q严加保密,不让任何人知道。
找一个与f(n)互质的数e,且1<e<f(n)。
计算d,使得d*e≡1 mod f(n)。这个公式也可以表达为d ≡e-1 mod f(n)。
公钥KU=(e,n),私钥KR=(d,n)。
加密时,先将明文变换成0至n-1的一个整数M。若明文较长,可先分割成适当的组,然后再进行交换。设密文为C,则加密过程为:C≡Me(mod n)。
解密过程为:M≡Cd(mod n)。
计算示例
计算密钥
p,q取两个不相同的素数,这里令p=3,q=11,得出n=p×q=3×11=33;f(n)=(p-1)(q-1)=2×10=20;
取e=3,(3与20互质)则e×d≡1 mod f(n),即3×d≡1 mod 20。
通过试算我们找到,当d=7时,e×d≡1 mod f(n)同余等式成立。因此,可令d=7。
从而我们可以设计出一对公私密钥
加密密钥(公钥)为:KU =(e,n)=(3,33)
解密密钥(私钥)为:KR =(d,n)=(7,33)。
加密计算
按照字母表顺序把字母转化为数字,单词”key“变为11,05,25。用户加密密钥(3,33) 将数字化明文分组信息加密成密文。由C≡Me(mod n)得:
C1=(M1)e (mod n)=113 (mod 33)=11
C2=(M2)e (mod n)=053 (mod 33)=31
C3=(M3)e (mod n)=253 (mod 33)=16
得到加密以后的密文信息为:11,31,16
解密计算
用户B收到密文,若将其解密,只需要计算M≡Cd(mod n)即:M1=(C1)d (mod n)=117 (mod 33)=11
M2=(C2)d (mod n)=317 (mod 33)=05
M3=(C3)d (mod n)=167 (mod 33)=25
用户B得到明文信息为:11,05,25。根据编码表将其转换为英文,即可得到恢复后的原文“key“。
相关文章推荐
- 量子计算的能够破解RSA加密吗?
- RSA 加密长度计算公式
- QQ空间操作抓包【MD5-RSA加密】【qqtoken计算】等
- QQ空间操作抓包【MD5-RSA加密】【qqtoken计算】等
- RSA应用之---加密、解密、数据签名、数据签名验证、哈希值签名、哈希值签名验证
- RSA加密
- rsa非对称加密
- 对称加密(DES)与非对称加密(RSA)
- RSA加密解密及RSA签名和验证
- Android AES DES RSA 加密解密 解析
- iOS中使用RSA加密
- PHP-RSA加密跨域通讯实战
- 用openssl进行rsa的加密与解密(linux,C++版)
- RSA加密工具类(待更新)
- OpenSSL 编程 - RSA 加密解密
- openssl命令行进行RSA加密解密
- android RSA非对称式加密
- AES与RSA加密
- 【Flask】前端RSA加密后端Python解密示例
- 银行卡密码的加密、MAC计算