基于服务器安全的RSA加密算法实现
对于新世界主机香港服务器的安全,是需要各种加密技术,加密技术一般分为两类:一类是对称加密技术,即前几期谈到的DES与AES对称加密算法;另一类是非对称(公钥)加密技术,即常用的有RSA加密技术。
对称密码体制可以在一定程度上解决保密通信的问题,但随着计算机和网络技术的飞速发展,保密通信的需求越来越广泛,对称密码体制的局限性逐渐表现出来,并且越来越明显。对称密码体制不能完全适应应用的需要,主要表现在以下三个方面:(1)密钥管理困难性问题:当网络中用户的数量增加时,密钥的数量将急剧增大。(2)系统开放性问题:不能支持陌生人间的保密通信。(3)数字签名问题:对称密码体制难以从机制上提供数字签名功能,也就不能实现通信中的抗抵赖需求。
RSA非对称加密的技术思想是:使用公钥密码的每一个用户都分别拥有两个密钥:加密密钥与解密密钥,它们两者并不相同,并且由加密密钥得到解密密钥在计算上是不可行。每一个用户的加密密钥都是公开的(加密密钥也称为公钥)。所有用户的公开密钥都将记录在类似于电话号码簿的密钥本上,而它可以被所有用户访问,每一个用户都可以得到其他所有用户的公开密钥。同时,每一个用户的解密密钥将由用户保存并严格保密(解密密钥也称为私钥)。
RSA公钥密码算法是由麻省理工学院(MIT)的Rivest,Shamir和Adleman在1978年提出来的。RSA方案是被广泛接受并实现的通用公开密钥算法,目前已成为公钥密码的国际标准。该算法的数学基础是初等数学中的欧拉定理,其安全性建立在大整数因子分解的困难性之上。
RSA密码算法实现:
1.生成密钥对:
(1)选择两个随机的大素数p和q,并计算
n=pq和 =(p-1)(q-1)。
(2)选择一个随机数e,1
d=e-1mod( )。
(3)公钥为(e,n),私钥为d。
2.加密过程:
对明文m
。
3.解密过程:
对密文c,其对应的明文为
。
RSA密码算法的伪代码描述如下:
int pf_c(int m,int k); //加密函数
int pf(int m1,int n1); //解密函数
int gcd(int f); //生成公开密钥,在实现过程当中,自己可以提前设置好公开密钥。
int r,h;
void main()
{ int a,b,c,d,d1,a1,b1,c1;
cout<<"请输入你选择的2个大素数!"<
cin>>a1;
cin>>b1;
r=a1*b1;
c=(a1-1)*(b1-1);
c1=gcd(c);
cout<<"公开钥为:"<
cout<<"请选择你要的操作:1.加密 2.解密"<
cin>>a;
switch(a){
case 1: cout<<"请输入明文:"<
cin>>b;
cout<<"密文为:"<
break;
case 2: cout<<"请输入密文:"<
cin>>d;
d1=pf(c,c1);
cout<<"私密钥为:"<
cout<<"明文为:"<
break;
}
int pf_c(int m,int k)
{
int a,i1,a1,b[50],c1,c;
……
c1=(c1*m)%r;
return c1;
}
int pf(int m1,int n1)
{
int x1=1,x2=0,x3;
……
return d;
}
基于服务器安全的RSA加密算法实现已经给大家讲清楚了。如果您还有什么不明确或不懂的地方,欢迎咨询新世界主机了解,详细请咨询Skpey咨询:vpssj.net@hotmail.com, ;我们将竭诚为您服务。