信息安全工程师考点梳理(2):第2章密码学基础与应用-密码学的基本概念
2.1.1 密码学的基本安全目标
2.1.1.1 保密性
保密性是确保信息仅被合法用户访问,而不被泄露给非授权的用户、实体或过程,或供其利用的特性。
常用的保密技术包括:防侦收(使对手侦收不到有用的信息)、防辐射(防止有用信息以各种途径辐射出去)、数据加密(在密钥的控制下,用加密算法对信息进行加密处理。即使对手得到了加密后的信息也会因为没有密钥而无法读懂有效信息)、物理保密(利用各种物理方法,如限制、隔离、掩蔽、控制等措施,保护信息不被泄露)等。
2.1.1.2 完整性
完整性是指所有资源只能由授权方或以授权的方式进行修改,即信息未经授权不能进行改变的特性。
完整性与保密性不同,保密性要求信息不被泄露给未授权的人,而完整性则要求信息不致受到各种原因的破坏。影响网络信息完整性的主要因素有:设备故障、误码(传输、处理和存储过程中产生的误码,定时的稳定度和精度降低造成的误码,各种干扰源造成的误码)、认为攻击、计算机病毒等。
2.1.1.3 可用性
可用性是指所有资源在适当的时候可以由授权方访问,即信息可被授权实体访问并按需求使用的特性。
2.1.2 密码体制
密码技术的基本思想是伪装信息,使未授权者不能理解它的真实含义。所谓伪装就是对数据进行一组可逆的数学变换。伪装前的原始数据称为明文(Plaintext),伪装后的数据称为密文(Ciphertext),伪装的过程称为加密(Encryption)。加密在加密密钥(Key)的控制下进行。用于对数据加密的一组数学变换称为加密算法。发信者将明文数据加密成密文,然后将密文数据送入网络传输或存入计算机文件,而且只给合法收信者分配密文,这一过程称为解密(Decryption)。解密在解密密钥的控制下进行。用于解密的一组数学变换成为解密算法,而且解密算法是加密算法的逆。因为数据以密文形式在网络中传输或存入计算机文件,而且只给合法收信者分配密钥。这样,即使密文被非法窃取,因为未授权者没有密钥而不能得到明文,因此未授权者也不能理解它的真实含义,从而达到确保数据秘密性的目的。同样,因为未授权者没有密钥也不能伪造出合理的明密文,因而篡改数据必然被发现,从而达到确保数据真实性的目的。与能够检测发现篡改数据的道理相同,如果密文数据中发生了错误或毁坏也将能够检测发现,从而达到确保数据完整性的目的。
一个密码系统,通常简称为密码体制(Cryptosystem),由五部分组成(如图2-1)。
(1)明文空间M,它是全体明文的集合。
(2)密文空间C,它是全体密文的集合。
(3)密钥空间K,它是全体密钥的集合。其中每一个密文K均由加密密钥Ke和解密密钥Kd组成,即K=<Ke,Kd>。
(4)加密算法E,它是一族由M到C的加密变换。
(5)加密算法D,它是一族由C到M的解密变换。
对于每一个确定的密钥,加密算法将确定一个具体的加密变换,解密算法将确定一个具体的解密变换,而且解密变换就是加密变换的逆变换。对于明文空间M中的每一个明文M,加密算法E在密钥Ke的控制下将明文M加密成密文C:C=E(M,Ke)(2—1)而解密算法D在密钥Kd的控制下将密文C解密出同一明文M: M=D(C,Kd)=D(E(M,Ke),Kd) (2—2)

图2—1 密码体制
如果一个密码体制的Kd=Ke,或由其中一个很容易推出另一个,则成为单密钥密码体制或称密码体制或传统密码体制。否则称为双密钥密码体制。进而,如果在计算机上Kd不能由Ke推出,这样将Ke公开也不会损害Kd的安全,于是便可将Ke公开。这种密码体制称为公开密钥密码体制,简称为公钥密钥体制。
密码分析者攻击密码的方法主要有以下三种。
(1)穷举攻击。
(2)数学分析攻击。
(3)基于物理的攻击。
简单功耗分析攻击(Simplepower Analysis attocks,SPA)和差分功耗分析攻击(Differential Power Analysis,DPA)。
理论上,如果能够利用足够的资源,那么任何实际可使用的密码又都是可破译的。
2.1.3 古典密码
1.置换密码
把明文中的字母重新排列,字母本身不变,但其位置改变了,这样变成的密码称为置换密码。
2.代替密码
首先构造一个或多个密文字母表,然后用密文字母表中的字母或字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身改变了。这样编成的密码成为代替密码。
(1) 加法密码
加法密码的映射函数为f(ai)=bi+aj j=i+k mod n (2—3)
其中,ai∈A,k是满足0<k<n的正整数。
著名的加法密码是古罗马的凯萨大帝(Caesar)使用过的一种密码。Caesar密码取k=3,因此其密文字母表就是把明文字母表循环右移3位后得到的字母表。例如:
A={A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}
B={D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A,B,C}
明文:MING CHEN WU DIAN FA DONG FAN GONG
密文:PLQJ FKHQ ZX GLDQ ID GRQJ IDQ JRQJ
(2)乘法密码
乘法密码的映射函数为f(ai)=bi=ai j=ik mod n (2—4)
(3)仿射密码
乘法密码和加法密码相结合便构成仿射密码。
简单代替密码很容易被破译,其原因在于只使用一个密文字母表,从而使得明文中的每一个字母都只用唯一的一个密文字母表来代替。提高代替密码强度的一种方法是采用多个密文字母表,使明文中的每一个字母都有多种可能的字母来代替。
3.代数密码
这说明要编制Ver密码,只需要把明文和密钥表示成二元序列,再把它们按位模2相加便可。
2.2.2 DES算法
数据加密标准(Data Encryption Standard,DES)。设计目标是,勇于加密保护静态存储和传输信道中的数据,安全使用10—15年。
DES综合运用了置换、代替、代数等多种密码技术。
DES是一种分组密码。明文、密文和密钥的分组长度都是64位。
DES是面向二进制的密码算法。因而能够加解密任何形式的计算机数据。
DES是对合运算,因而加密和解密共用同一算法,从而使工程实现的工作量减半。
2.2.2.1 DES的加密过程
(1)64位密钥经子密钥产生算法产生出16个子密钥:K1,K2,…,K16,分别供第一次,第二次,…,第十六次加密迭代使用。
(2)64位明文首先经过初始置换IP(initial permutation),将数据打乱重新排列并分成左右两半。左边32位构成L0,左边32位构成R0。
(3)由加密函数f实现自密钥k1对R0的加密,结果为32位的数据组F(R0,K1)。F(R0,K1)再与L0模2相加,又得到一个32位数据组L0⊕f(R,K1)。以L0⊕f(R0,K1)作为第二次加密迭代的R1,以R0作为第二次加密迭代的L1。至此,第一次加密迭代结束。
(4)第二次加密迭代至第十六次加密迭代分别用子密钥K2,…,K16进行,其过程与第一次加密迭代相同。
(5)第十六次加密迭代结束后,产生一个64位的数据组。以其左边32位作为R16,以其右边32位作为L16,两者合并再经过逆初始置换IP-1,将数据重新排列,便得到64位密文。至此加密过程全部结束。
综合可将DES的加密过程用如下的数学公式描述:
Li=Ri-1
Ri=li-1ⓧf(Ri-1,Ki)
I=1,2,3,…,16
2.2.2.7 DES的安全性
DES在总的方面是极其成功的,但同时也不可避免地存在着一些弱点和不足。
1.密钥较短
面对计算能力高速发展的形式,DES采用56位密钥,显然短了一些。如果密钥的长度再长一些,将会更安全。
2.存在弱密钥
DES存在一些弱密钥和半弱密钥。
2.2.2.8 三重DES
3DES有三个显著的优点。首先它的密钥长度是168位,完全能够抵抗穷举攻击。其次是相当安全,而且经过实验检验。其三,由于3DES的底层加密算法与DES相同,所以,许多现有的DES软硬件产品都能方便地实现3DES,因此,使用方便。3DES的根本缺点在于用软件实现该算法的比较慢。