我正在为一个执行简单RSA加密和解密的类编写程序。程序运行一个实例时生成的数字如下:
encryption:
p = 37
q = 11
n = 407
phi = 360
e = 17
d = 24
Enter the message you wish to encrypt: hello
ASCII: 104
ASCII: 101
ASCII: 108
ASCII: 108
ASCII: 111
Here is your encrypted message:
:Žřřo
decryption:
Enter in a value for n:407
Enter in a value for d:24
Enter the message you wish to decrypt::Žřřo
ASCII: 158
ASCII: 223
ASCII: 47
ASCII: 47
ASCII: 111
Here is your decrypted message:
ß//o
我的问题是,为什么解密后这不会给我正确的ASCII值?满足RSA的所有规则:
1. p和q是单独的素数
2. e和phi是互质的
3.d是e的模乘法逆,使得e * d mod n = 1
程序随机生成p,q和e,并在每次运行时计算n,phi和d。其他示例类似,满足所有RSA规则,但仍未获得正确的解密。
答案 0 :(得分:1)
也许这只是你问题中的一个错字,但我认为auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#this line must always be here
iface default inet dhcp
应该是d
modulo e
的乘法逆,而不是phi(n)
。