1、采用RSA算法,其中e=7,p=11,q=13,求出公钥和私钥,并求出明文85进行加密后的密文。 2、采用RSA算法,其中p=5,q=7,d=29。求公开密钥和私有密钥,并求出使用e对明文LOVE加密后的密文为多少? 3、使用维吉尼亚密码进行加密,明文为welcomeeverybody,给出密钥字为bestwish,推算出该明文对应的密文。
时间: 2023-06-16 15:07:45 浏览: 211
很实用的三种加密算法
1. 根据RSA算法,我们可以先求出模数n、欧拉函数φ(n)和私钥d:
n = p * q = 11 * 13 = 143
φ(n) = (p-1) * (q-1) = 10 * 12 = 120
d ≡ e^-1 (mod φ(n))
通过扩展欧几里得算法可以求出e关于φ(n)的乘法逆元d:
120 = 7 * 17 + 1
1 = 120 - 7 * 17
1 ≡ -7 * 17 (mod 120)
d = -7 ≡ 113 (mod 120)
所以公钥为(n, e) = (143, 7),私钥为(n, d) = (143, 113)
加密时,将明文85代入公式进行计算:
密文 ≡ 明文^e (mod n)
密文 ≡ 85^7 (mod 143)
密文 ≡ 2489 (mod 143)
所以明文85加密后的密文为2489。
2. 根据RSA算法,我们可以先求出模数n、欧拉函数φ(n)和公钥e:
n = p * q = 5 * 7 = 35
φ(n) = (p-1) * (q-1) = 4 * 6 = 24
e ≡ d^-1 (mod φ(n))
通过扩展欧几里得算法可以求出d关于φ(n)的乘法逆元e:
24 = 29 * 1 - 5
5 = 24 - 29 * 1
1 = 29 * 6 - 24
1 ≡ 6 * 29 (mod 24)
e = 6
所以公钥为(n, e) = (35, 6),私钥为(n, d) = (35, 29)
加密时,将明文LOVE代入公式进行计算:
L对应的ASCII码为76,O对应的ASCII码为79,V对应的ASCII码为86,E对应的ASCII码为69
明文 ≡ 76 * 1000^3 + 79 * 1000^2 + 86 * 1000 + 69 (mod n)
明文 ≡ 76000 + 7900 + 860 + 69 (mod n)
明文 ≡ 84629 (mod n)
密文 ≡ 明文^e (mod n)
密文 ≡ 84629^6 (mod 35)
密文 ≡ 11 (mod 35)
所以明文LOVE加密后的密文为11。
3. 维吉尼亚密码使用一个密钥字(一个字母序列)来进行加密。首先将密钥字重复到与明文等长,然后将明文和密钥字一一对应,按照字母表的顺序将明文中的每个字母加上密钥字中对应位置上的字母(注意要对26取模),得到密文。
将明文和密钥字转换为数字,A对应0,B对应1,以此类推,空格对应26:
明文:22 4 11 2 14 2 11 4 21 17 14 3 14 3 24 17 3 14 3 24
密钥字:1 4 18 22 8 18 18 8 0 24 18
将密钥字重复到与明文等长:
密钥字:1 4 18 22 8 18 18 8 0 24 18 1 4 18 22 8 18 18 8 0
然后将明文和密钥字一一对应,并按照字母表的顺序相加取模26得到密文:
密文:W T C D C Q X I B O R Q D U H N Q D U
所以明文welcomeeverybody加密后的密文为WTCDCQXIBORQDUHNQDU。
阅读全文