当前位置: 首页> 安全资讯 >

非对称密钥密码技术

 

恒波软件隶属于超时代软件,致力于加密软件的研发,主要产品有文件夹加密软件手机视频加密软件、电脑及网络视频加密软件等。

 

非对称密码算法也叫公钥密码算法,使用两列密钥,一个公共密钥和一个专用密钥。专用密钥私藏,公共密钥可发布。用公共密钥加密的信息只能用专用密钥解密,反之亦然。其优点是不仅可以用于信息的保密通讯,又可“用于信息发送者的身份验证(Authentication)或数字签名(Digital Signature)。同时该算法不需要联机密钥服务器,密钥分配协议简单,从而简化了密钥管理。人们一直努力在其他困难问题上建立公开密钥密码体制,防止一些数学难题被解决以后,没有可的密码算法。所以出现了大量的公开密钥密码算法。包括:背包体制、POHLIG-Hellman算法、Rabin算法、EIGamal算法。还可以在有限域上的椭圆曲线上建立RSA、EIGamal算法等。公共密钥加密算法主要有:RSA(Receive Shamir Adelman)、Fertezza、EIGama等。


在几乎所有的实用公开密钥密码系统中,都涉及到大数运算和素数选择。模幂运算采用反复平方取模算法,素数测试一般采用Rabin - Miller算法,还有其他素性测试算法用来选择大素数,如Solovag - Strassen测试法、Lehmann测试法等。在非对称密钥密码技术中具有代表性的为RSA算法。它不仅可以作为加密算法使用,而且可以用作数字签名和密钥分配与管理。其他如DSA只适合作签名,且安全强度和速度都不如RSA。下面就通过解析RSA算法来说明原理:


1. 算法流程

例如某甲向某乙发送一个报文,则由乙随机产生PKEY(私钥),此PKEY只有乙保存,再用这个PKEY计算出另一个PUBLICKEY(公钥,它几乎不可能反演出PKEY)。然后乙将PUBLICKEY明码传送给甲,甲将用这个公钥对报文进行加密编码,再传送给乙,乙再用存在自己机器中的PKEY将报文解密。在整个传送中如有第三者监听并截获数据,那他能得到的只是PUBLICKEY和加密过的数据而没有得到PKEY,这样是无法解码的。


2. 算法实现

(1)公开密钥产生。选择两个大素数,p和q。计算:n=p×q。

(2)然后随机选择加密密钥e,要求e和(p-1)×(q-1)互质。

(3)利用Euclid算法计算解密密钥d,满足e×d=1(mod (p-1)×(q-1)),其中n和d也要互质。

数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。

(4)加密信息m(二进制表示)时,首先把m分成等长数据块m1,m2…,mi,块长s,其中2 ^ s<=n,s

尽可能的大。对应的密文是:ci=mi ^ e mod n。

(5)解密时作如下计算:mi=ci ^ d mod n。