1:对称密码体制
比较典型的算法有DES(Data Encryption Standard数据加密标准)算法及其变形Triple DES(三重DES),GDES(广义DES);欧洲的IDEA;日本的FEAL N、RC5等。DES标准由美国国家标准局提出,主要应用于银行业的电子资金转帐(EFT)领域。DES的密钥长度为56bit。Triple DES使用两个独立的56bit密钥对交换的信息进行3次加密,从而使其有效长度达到112bit。RC2和RC4方法是RSA数据安全公司的对称加密专利算法,它们采用可变密钥长度的算法。通过规定不同的密钥长度,,C2和RC4能够提高或降低安全的程度。
2:非对称体制(公钥加密技术)
公钥密码体制的算法中最著名的代表是RSA系统,此外还有:背包密码、McEliece密码、Diffe_Hellman、 Rabin、零知识证明、椭圆曲线、EIGamal算法等。公钥密钥的密钥管理比较简单,并且可以方便的实现数字签名和验证。但算法复杂,加密数据的速率较低。
优势:解决用户量庞大后的密钥数量庞大问题。
实现:
一种具体的做法是:认证服务器和用户各持有自己的证书,用户端将一个随机数用自己的私钥签名后和证书一起用服务器的公钥加密后传输到服务器;使用服务器的公钥加密保证了只有认证服务器才能进行解密,使用用户的密钥签名保证了数据是由该用户发出;服务器收到用户端数据后,首先用自己的私钥解密,取出用户的证书后,使用用户的公钥进行解密,若成功,则到用户数据库中检索该用户及其权限信息,将认证成功的信息和用户端传来的随机数用服务器的私钥签名后,使用用户的公钥进行加密,然后,传回给用户端,用户端解密后即可得到认证成功的信息。
证书:在很小的范围内,A,B这两个小集体,他们之间互相信任,交换公钥,在互联网上通讯没有什么问题,正如上面的做法。但若在互联网群体的下,用户彼此不能信任。所以公钥加密体系采取了另一个办法,公钥和公钥的主人名字联系在一起,再请一个有信誉的公正权威机构确定,并且加上这个权威机构的签名,就形成了证书。
由于证书上有权威机构的签字,所以大家都认为证书的内容是可信的;证书上又有主人的名字信息,别人很容易知道公钥的主人是谁。
CA:前面提到的权威机构就是电子签证机关。CA。 CA也用友一个证书(内含公钥)任何人都可以得到CA的证书(内含公约)用以验证它所签发的证书。
如果用户想得到一份自己证书,向CA提出申请在CA判明身份后 , 为他分配一个公钥,并且CA将该公钥与申请者的信息绑定在一起,别为之签名后,形成证书发给那个用户。
如果用户想要鉴别一个证书真伪,用CA的公钥对那个证书的签名进行验证(如前面所述,CA签字世界上是通过CA私钥加密的信息,签字验证的过程还伴随使用CA公钥解密的过程)一旦验证通过,该证书就被证明是有效的。
CA(Certificate Authority)除了签发证书之外,它的另一个重要作用是证书和密钥的管理。
由此可见,证书就是用户在网上的电子个人身份证,同日常生活中使用的个人身份证作用一样。CA(Certificate Authority)相当于网上公安局,专门发放、验证身份证。
RSA:算法:
RSA是Rivest,Shamir,Adleman提出基于数论的非对称密钥体制。RSA是建立在大整数分解的困难上的,是一种分组密码体制。它是以推广的欧拉定理为基础的(见下):
定理1 若(a,n)=1, 则 =(mod n) ,其中φ(n) 表示不超过n与n互素的正整数个数。
定理2 若(m1,m2)=1,则φ(m1 • m2)=φ(m1) • φ(m2)。
定理3 若p为素数,则φ(p)=p-1。
RSA建立方法如下:
•首先随机选两个大素数p,q , 计算n=p • q;
•计算欧拉函数 φ(n)=(p-1)(q-1);
•任选一个整数e为公开加密密钥,由e求出秘密解密密钥d:d • e= 1 mod φ(n)= k
'φ(n) +1
•加密/解密:
将明文分成长度小于 位的明文块m,
加密过程是:c = E(m,e) = mod n
解密过程是:m = D(c,d) = mod n
在RSA体制下: D(d, E(m,e)) o = o m mod n
E(e, D(d,m)) o = o m mod n
e,d可以互换。在用于数字签名时,发送方只须用己方的解密密钥d先 "加密"即可, 因为只有发送方自己知道自己的d, 收方只有用对应的e "解密"
才能知道明文, 同时也验证了发方的身份。