|
|
加密技术是实现信息保密性的重要手段。早在远古时期,人们就能够使用简单的加密技术传递重要的机密信息。20世纪70年代,随着人们对加密技术的深入研究,逐渐形成一门学科——密码学。密码学包括密码编码学和密码分析学。密码编码学主要研究密码体制的设计;密码分析学主要研究密码体制的破译,二者既相互对立,又相互促进。
|
|
|
加密技术涉及信息、算法和密钥等相关概念。信息包括明文和密文,加密技术采用数学方法(算法)对原始信息(明文)进行再组织,使得加密后在网络上公开传输的内容对于非法接收者来说成为无意义的文字(密文),而对于合法的接收者,因为其掌握正确的密钥,可以通过解密过程得到原始数据(明文)。加密和解密的一般过程如下图所示。
|
|
|
|
|
加密技术中,算法和密钥是两个核心要素。它们与密码系统的安全有着密切关系。理论上讲,只要采用穷举法去试每种可能的密钥,则几乎所有的密码系统都是可以破译的。但采用穷举法所花费的代价可能是现有计算条件下难以实现的,因此,密码学判断一个密码算法是否安全,更关心的是该密码算法在现有计算条件下是不是不可破译的。如果一个密码算法不能被现有的计算资源所破译,那么这种密码体制在计算上就可以说是安全的。此外,密钥安全也是密码系统安全的一个重要因素。因为同一加密算法,采用不同的密钥,可以对同一明文加密出不同的密文。只要密钥保密好,他人就不能破译密文。密钥安全主要涉及的是管理问题。密钥的保护与管理,包括密钥的产生、分发、使用和销毁等过程,对信息系统的安全性来说是极其重要的。
|
|
|
按照所使用的密钥不同,可将密码体制分为两类:对称密钥密码体制和非对称密钥密码体制。
|
|
|
|
|
对称密钥密码体制的基本原理是加密密钥与解密密钥相同,或者加密秘钥与解密密钥虽不相同,但可以从其中一个推导出另一个。对称密钥密码体制也被称为单钥密码体制,其优点是算法简单,加密和解密速度快,效率高,但也存在一些问题:
|
|
|
(1)密钥传递安全问题。双方传递信息前需要事先通过某个安全渠道传递密钥,而密钥在此过程中可能会泄漏。另一方面,密钥的安全性还取决于传递信息的双方对密钥的保护。
|
|
|
(2)密钥管理问题。为了保证信息传递的安全,当一方与多方(N方)传递信息时,需要N个不同的密钥。当N比较大时,密钥的管理和分发难度就会增大。
|
|
|
(3)身份识别问题。对称密钥算法无法实现数字签名技术,因此不能鉴别交易参与者的身份。
|
|
|
|
对称密钥密码体制的典型算法是DES(Data Encryption Standard)算法。
|
|
|
DES算法是IBM公司研制的一种数据加密算法,1977年被美国国家标准局颁布为商用数据加密标准,后又被国际标准化组织ISO定为国际标准,广泛应用于金融行业的电子资金转账(EFT)等领域。
|
|
|
DES算法的基本原理是每次取明文中的连续64位数据,通过64位密钥,对明文进行16轮的替代、移位和异或操作,最终得到转换后的64位数据(密文),如下图所示。连续对明文执行上述过程,最终得到全部明文的密文。
|
|
|
下图中,一组64位的明文块首先经过一个初始置换(IP)后,被分成左半部分和右半部分,每部分32位,分别以L0和R0表示。然后经过16轮变换,第i轮变换结果的左半部分为上一轮变换结果的右半部分,即Li=Ri-1;第i轮变换结果的右半部分为上一轮变换结果的左半部分与上一轮变换结果的右半部分经过函数(算法)f处理后所得结果的异或,即Ri=Li-1⊕f(Ri-1,Ki),Ki为第i轮变换时的子密钥。经过16轮变换之后,左右两部分再连接起来,最后经过一个逆初始置换(IP-1)得到64位密文块,算法结束。
|
|
|
|
|
DES算法的加密密钥与解密密钥相同,加密算法也与解密算法相同,只是解密时逆向取用加密时所用密钥顺序。加密时第1~16轮迭代使用的子密钥顺序是k1,…,k16,解密时使用的子密钥顺序是k16,…,k1,产生子密钥时循环移位向右。需要说明的是,64位密钥中有8位是奇偶校验位,所以实际有效密钥长度是56位。
|
|
|
DES算法在密码学的发展过程中具有重要意义,在信息加密方面起了重要作用。但是,进入20世纪90年代以来,DES算法的安全性越来越受到了威胁。1997年,美国科罗拉多州的程序员Verser与Internet上数万名志愿者协同工作,用了96天时间找到了DES密钥;1998年7月,电子前沿基金会(EFF)使用计算机在56小时内破译了DES密钥;1999年1月,EFF又只用了22小时15分钟就宣告破解了DES密钥。
|
|
|
DES算法不再是不可破的,人们加以研究和改进,提出了新的基于分组思想的加密算法,如3DES算法、IDEA算法、RC5算法、AES算法等。
|
|
|
|
|
为了克服对称密钥密码体制存在的问题,密码学专家提出了新的加密体制——非对称密钥密码体制,又称为双钥密码体制或公钥密码体制。非对称密钥密码体制的基本原理是加密和解密采用不同的密钥,使用时其中一个密钥公开,称为公钥;另一个密钥由用户私有保存,称为私钥。传递信息时,发送方用接收方的公钥加密信息,接收方用自己的私钥对信息解密。由于接收方的私钥只有接收方自己知道,因此只要其私钥保存完好,即使信息被截取,截取者也因为没有解密密钥,无法获知信息内容,从而保证了信息的机密性。例如,在电子商务交易过程中,商家可以公开其公钥,保留其私钥;客户用商家的公钥对发送的信息进行加密,安全地传送到商家,然后由商家用自己的私钥进行解密得到原文信息。
|
|
|
非对称密钥密码体制克服了对称密钥密码体制的缺点,解决了密钥的分发和管理问题。另外,非对称密钥密码体制能够实现数字签名技术,解决了参与者身份识别问题,但由于算法复杂,算法的运算速度不高,加密信息的效率降低。
|
|
|
|
非对称密钥密码体制的典型算法是RSA算法。它是由三位发明者Ron Rivest、Adi Shamir和Leonard Adleman名字的第一个字母组合而成。RSA算法的基本原理是基于大素数难分解原理,即寻找两个大素数比较简单,而将两个大素数的乘积分解非常困难。
|
|
|
|
|
|
③计算p-1和q-1的乘积,记为m=(p-1)*(q-1);
|
|
|
|
⑤寻找一个数d,使其满足(e*d)mod m=1;
|
|
|
|
|
|
|
传递信息时发送方用接收方的公钥加密信息,接收方用自己的私钥对信息进行解密。
|
|
|
|
假设发送方要传送明文M=19给接收方,按照RSA算法描述,密钥对的生成过程为:
|
|
|
|
|
|
|
⑤寻找一个数d,使其满足(e*d)mod m=1;
|
|
|
|
|
|
发送方用接收方的公钥加密信息得到密文C=Memod n=193mod 33=28。接收方收到消息后用自己的私钥解密信息得到明文M=Cdmod n=287mod 33=19。
|
|
|
从所基于的数学难题来讲,RSA算法基于大整数因子分解系统。除RSA算法外,椭圆离散对数系统(ECC)和离散对数系统(代表性算法DSA)也属于非对称密钥密码体制算法。
|
|
|
|
对称加密技术与非对称加密技术各有利弊,实际应用中,往往扬长避短,将二者结合起来应用。对原文信息采用对称密钥进行加密,再利用非对称密钥加密传递对称密钥。这样既保证了信息传递的安全性,也考虑到了信息加密的时间效率。
|
|
|
以发送方向接收方传递一段交易信息(如电子合同、支付通知单等)为例,发送方先在本地用对称密钥对交易信息进行加密,形成密文;再用接收方的公钥将用于加密交易信息的对称密钥加密,并将加密后的对称密钥信息和密文一同传递给接收方;接收方接收信息后,先用自己的私钥解密加密后的对称密钥信息,得到用于加密交易信息的对称密钥,再用其解密密文得到交易信息原文,其应用示意如下图所示。
|
|
|
|
|
由于在传递过程中,加密后的对称密钥就像是被封装在一个“信封”里传递一样,因此被称为数字信封。对称密钥的信息量相对于原文的信息量较少,因此采用数字信封技术既解决了密钥分发和管理的安全问题,又保证了信息加密传递的速度。除用于传递加密密钥外,对于一些重要的短小信息,如账号、密码等都可以采用数字信封技术加以传送。
|
|
|