
深圳市建和诚达科技有限公司
QQ:2355642023QQ:2355642028
电话:0755-29186669
咨询热线1:13798598242
咨询热线2:13798209231
密钥体系分为两种:
1. 公钥体系:非对称加密密钥,加解密密钥彼此无法推出。如RSA算法。
2. 私钥体系:加解密密钥相同,或者彼此容易推出。如DES算法。
RSA是非对称加密算法。
RSA的基础:单向函数和trap单向函数。
一种典型的单向函数:
a**m mode n = b
其中:a是基数;m是指数;n是模数;
当基数a和模数n已知时,根据指数m可以确定b,而根据b不能确定m;
例如:5**4 mod 21= 16
根据结果16,模数21和基数5,无法确定唯一的指数m;
因为,5**10 mode 21 = 16
也可能无法确定指数m;
单向函数在网站的密码认证中得到了应用,例如,在注册时,输入密码,网站并不持有用户的密码,而是用单向函数算法将密码转换为一个不可逆的密文;当用户登陆时,网站将输入的密码转换为密文,并与本地存储的密文比较,如果相同,则认为密码正确。
非对称算法要求加解密,因此,单向函数不能满足要求。由此,演变出了trap单向函数。
a**m mode n = b
当m和n确定时,根据b可以确定a;运算方法如下:
b**p mode n = a
其中:b为密文;p为解密密钥;
在p未知的情况下,根据b、m、n也可以确定a;但是运算要求的时间超过了解密的时效,因此认为,RSA算法是可靠的。
RSA算法的安全性是依靠n来实现的;n是两个大质数的乘积,理论上,假定根据n很难算出两个质数的值。
p、m、n的关系、密钥的生成:
n= key1*key2;
其中key1和key2是两个大的质数;
随机选择一个数p,要求p能够满足条件:
p与(key1-1)(key2-1)的公约数为1.
这个数就是私钥。
再确定公钥m:公钥必须能够满足条件:
p*m mode (key1-1)(key2-1) = 1
n = key1*key2;
典型的应用:A需要B发送一份加密的邮件。
1. A用RSA算法生成公钥和私钥;并将公钥给B;
A选择key1和key2,确定n、p和m;其中p为私钥;n和m为公钥;当确定m、n、p后,销毁key1和key2;
A将n和m告诉B;
2. B用公钥将邮件加密后发送给A;
B用n和m将邮件加密;
3. A用私钥解密;
A用p将邮件解密;
