网络安全-练习RSA算法
练习RSA算法
已知RSA算法中,素数p=5,q=7,模数n=35,公钥e=5,明文为bed,对明文进行加解密,使用手工完成RSA公开秘钥密码体制算法加密运算。字母数字映射表如下:
请参考:https://www.cnblogs.com/jiftle/p/7903762.html
(1)设计公私密钥(e,n)和(d,n)
根据题设,p=5,q=7,故
模数n=5×7=35;f(n)=(p-1)(q-1)=4×6=24;取e=7,则e×d≡1 mod f(n),即
7×d≡1 mod 24。
下面通过试算的办法来确定d的取值:见下表
通过试算我们找到,当d=7时,e×d≡1 mod f(n)同余等式成立。所以,令d=7。此时,加密密钥(公钥)为:KU=(e,n)=(5,35),解密密钥(私钥)为KR=(d,n)=(7,35)。
(2)英文数字化
将明文信息数字化,并将每块两个数字分组。假定明文英文字母编码表为按
字母按字母排序排列数值,即:
则得到分组后的key的明文信息为02,05,04。
(3)明文加密
用户加密密钥(5,35)将数字化明文分组信息加密成密文。由C≡Me(mod n)得:
相应的密文信息为23,5,4。
(4)密文解密
用户B收到密文,通过计算M≡Cd(mod n)得到明文:02,05,04。根据上面的编码表将其转换成英文,得到原文“bed”。
RSA加密算法是一种非对称的加密算法,非常的巧妙,需要有比较深的相应的数学知识的学习和理解,才能更好地理解RSA加密算法,这里只是简单的模拟了一下RSA算法的加密和解密过程,从而使我们对RSA算法有一个初步的了解。