实验原理与理论基础
RSA算法:
简介
RSA算法的单向函数基于质因数分解问题。
质因数分解问题指数论中的一个简单事实:计算两个素数的乘积很简单,但要把这个乘积重新分解为两个素数却很难。
步骤
RSA算法由三部分构成:密钥生成算法,加密算法,解密算法
- 密钥生成算法
随机生成两个素数 p,q
计算 n=pq
计算欧拉函数 φ(n)=(p−1)(q−1)φ(n)=(p−1)(q−1)
选取一较小的与φ(n)φ(n)互质的正整数e。那么(n, e)为密钥对中的公钥
计算e在模φ(n)φ(n)下的数论倒数d,d≡e−1modφ(n)d≡e−1modφ(n),那么(n, d)为密钥对中的私钥
- 加密算法
计算
C=fe(M)=Memodn
C=fe(M)=Memodn
其中M为明文,(n, e)为公钥,C为密文
- 解密算法
计算
M=fd©=Cdmodn
M=fd©=Cdmodn
其中C为密文,(n, d)为私钥,M为明文
根据加密、解密过程中n、e、d三数扮演的角色,我们把n称为公共模数,把e称为公共指数,把d称为私有指数。
数学基础:
同余
两个整数a、b,如果他们除以正整数m的余数相等,那a和b同余。用公式来表示就是:
amodm=bmodm⇔a≡bmodm