站长杂谈

基于服务器安全的RSA加密算法实现

时间:2017-05-24 16:48 点击:

  基于服务器安全的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, ;我们将竭诚为您服务。