图 2.1信息加密/解密示意图
2.1 对称密钥算法
密码算法也叫密码,基于密钥的算法通常有对称密钥密码算法(或私钥密码)和公钥算法(或公钥密码)两类。如果一个密码体制的Ke=Kd,即加密密钥能够从解密密钥中推算出来,反过来也成立,我们称为对称密钥密码算法。对称密钥密码算法也可称为对称算法或传统算法,包括换位加密、代替加密、乘积加密和综合加密等。在大多数对称密钥密码算法中,加密密钥和解密密钥是相同的。
对称密钥密码算法的加密和解密表示为:
E(M,K)=C
D(C,K)=M
对称加密算法的特征如下:
1) 通常计算速度非常快。
2) 基于简单的数学计算,所以可以通过硬件加速。
3) 密钥管理比较麻烦。
4) 通常用来做整段数据加密、块加密、流加密、消息完整性验证。
对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:
• DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
• 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
• AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;
2.2 公钥算法
如果密码体制的Ke≠Kd即用作加密的密钥不同于用作解密的密钥,而且解密的密钥不能够根据加密密钥计算出来,我们称之为公钥算法。公钥算法也叫非对称算法。
用公开密钥Ke加密表示为:
E(M,Ke)=C
用相应私人密钥Kd解密可以表示为:
D(C,Kd)=M
公钥算法的特性如下:
1) 相对于对称加密算法,速度比较慢。
2) 基于硬件计算,密钥管理简单。
3) 通常用做少量数据的加密(如数字签名、对称加密算法的密钥交换)。
常见的非对称加密算法如下:
• RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
• DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);
• ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
RSA加密算法应用
RSA加密算法除了用于少量数据加密之外,最主要的应用就是数字签名。数字签名是通过密码运算生成一组符号及代码,用于鉴定签名人的身份以及对电子数据内容的认可,它还能验证处文件的元件在传输过程中有无变动,确保传输电子文件的完整性、真实性和不可抵赖性。
(一) 数字签名的原理
被发送的文件用SHA编码加密产生128bit的数字摘要;发送方用自己的私有密钥对摘要再加密,形成数字签名;将原文和加密的摘要同时传给对方;对方用发送方的公共密钥对摘要解密,同时对收到的文件用SHA编码加密产生又一摘要;将解密后的摘要和重新用SHA编码加密收到的文件所产生的摘要相互对比。如两者一致,则说明签名可信而且传送过程中信息没有被破坏或篡改过。否则不然。
(二) 数字签名运算
数字签名使用者首先采用SHA编码法对欲签名的文件信息m进行数字摘要运算,得出摘要值h(m),再用自己掌握的私钥d和n进行签名运算,可获得数字签名s。
(三) 数字签名验证 DES信息安全传递系统的设计与实现(4):http://www.youerw.com/jisuanji/lunwen_9548.html