从一道计算题开始了解 RSA 非对称加密算法的主要公式。
计算问题
下面是一道关于 RSA 计算的问题,比较简单,从这道题来学习和了解关于 RSA 非对称加密算法的相关知识,当然,具体关于 RSA 加密算法的知识不能仅限于以下问题,应该更全面的了解相关的知识。但是下面的问题已经把其中的重点算法的表现出来了。
在 RSA 算法中,取密钥 E = 3,D = 7,则明文 6 的密文是()
RSA 算法的相关公式
下面是关于 RSA 的主要数学公式:
n = p * q
ø(n) = (p - 1) * (q - 1)
ed ≡ 1 mod ø(n)
c = me mod n
m = cd mod n
其中两个 ** 是次方的意思
将题中的数带入公式来
ed ≡ 1 mod ø(n)
3 * 7 ≡ 1 mod ø(n)
21 ≡ 1 mod ø(n)
ø(n) = 20
ø(n) = 2 * 10 = (p - 1) * (q - 1)
p, q = 3, 11
n = p * q = 3 * 11 = 3
c = m**e mod n = 6 ** 3 mod 33
6 ** 3
3 = 1 * (2 ** 0) + 1 * (2 ** 1)
t0 = 6 mod 33 = 6
t1 = 6 ** 2 mod 33 = 3
t0 * t1 mod n = 6 * 3 mod 33 = 18
因此 明文 6 的密文是 18
将密文进行解密验算
m = c ** d mod n = 18 ** 7 mod 33
t0 = 18 mod 33 = 18
t1 = 18 ** 2 mod 33 = 27
t2 = 27 ** 2 mod 33 = 3
t0 * t1 * t2 mod n = 18 * 27 * 3 mod 33 = 6
因此,密文 18 解密后是 6