信息安全工程师笔记-RSA密码
Posted IT1995
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信息安全工程师笔记-RSA密码相关的知识,希望对你有一定的参考价值。
相关数学基础
欧拉函数:对于一个正整数n,小于n且与n互素(质)的正整数的个数,记为φ(n)。
对于一个素数n,可知φ(n)=n-1
对于两个素数p和q,它们的乘积满足n=p*q,则可知φ(n)=(p-1)*(q-1)
素数:一个数只能被1和它本身整除。
互质:gcd(a,b)表示a和b的最大公约数,gcd(a,b)=1,表示a,b的最大公约数为1,说明互质。
同余:两个整数a,b若它们除以整数m所得的余数相同,则称a与b对于模m同余,或a同余b模m,记作a≡b(mod m)
如:40≡1(mod 13)
RSA密码体制参数的定义
①随机选择两个大素数p和q; (保密)
②计算n=p*q; (n公开)
③计算φ(n)=(p-1)(q-1); (φ(n)保密)
④随机选择一个正整数e,1<e<φ(n)且gcd(e,φ(n))=1; (e公开)
⑤根据e*d=1 mod φ(n),求出d;(d保密)
⑥加密运算 C=M^e mod n,解密运算M=C^d mod n;
RSA密码公开加密密钥Ke=<n,e>
保密的解密密钥Kd=<p,q,d,φ(n)>
如:求解乘法逆元:
5 * d = 1 mod 72,求d?这个式子可以变成5d mod 72 = 1 mod 72
5 * d - 1 = n * 72 (n=1,2,3...)
得:当n=2,d=29
例一:在RSA公钥密钥体系中,选定p=7,q=13,取e=5,当明文m=10时,求出d的值和对应的密文。
n = p * q = 7 * 13 = 91
φ(n) = (p - 1) * (q - 1) = 6 * 12 = 72
5 * d = 1 mod 72 求得 d = 29
C = M^e mod n = 10^5 mod 91 = 82
M = C^d mod n = 82^29 mod 91 = 10
例二:设在RSA的公钥密码体制中,公钥为(e,n) = (7, 55),则私钥d为多少?
n为55,可知5 * 11 = 55,那么p为5,q为11。
那么φ(n) 为 4 * 10 = 40,从题中可知e为7。
由公式e * d = 1 mod φ(n) ,7* d = 1 mod 40
=> 7 * d - 1 = n * 40 (n = 1,2,3...)
=> d为23,n为4
RSA密码的特点
RSA算法具有加解密算法的可逆性,加密和解密运算可以交换,可同时确保数据的秘密性和数据的真实性。
由于RSA密码的核心运算是模幂运算,其实现效率比较高效。
RSA密码的安全性
RSA密码的安全性在于大合数因子分解的困难。应当采用足够大的整数n。一般n至少取1024位,最好取2048位。
以上是关于信息安全工程师笔记-RSA密码的主要内容,如果未能解决你的问题,请参考以下文章