资源预览内容
第1页 / 共81页
第2页 / 共81页
第3页 / 共81页
第4页 / 共81页
第5页 / 共81页
第6页 / 共81页
第7页 / 共81页
第8页 / 共81页
第9页 / 共81页
第10页 / 共81页
亲,该文档总共81页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
信息系统安全教程,第 1 章,数据加密,数据保密就是隐蔽数据,隐蔽数据的可读性数据加密 隐蔽数据的存在性数据隐藏,加密: 将要传递的信息隐藏 例如:清末大儒纪晓岚赠送的对联 鳳遊禾蔭鳥飛去 馬走蘆邊草不生,禾下加鳳去掉鳥字得禿字 馬置蘆邊去掉草頭得驢字,1.1 数据加密技术概述,如果用 P 表示明文,用 C 表示密文,则可以将加密写成如下函数形式:C =EEK(P) E 为加密函数,EK 称为加密密钥,1.1.1 替代密码,将明文中的每个位置的字母都用其他字母代替 。,Vigenere(维吉利亚)方阵,表1.1 维吉尼亚方阵,密钥,Vigenere 密码,设P = data security,Ek=best则采用维吉尼亚密码的加密过程如下: 1 按密钥的长度将 P 分解若干节,2 对每一节明文,利用密钥best进行变换。 得到如下密文:C=EEK(P)=EELT TIUN SMLR,其他替换密码,(1)多名替换密码(Homophonic Substitution Cipher):一个字母可以映射为多个密文字母。如: A 5,12,25,56 B 7,17,31,57 (2)多字母密码(Poly Alphabetic Cipher):字符块被成组加密。如 ABA RTQ ABB SLL ,1.1.2 换位密码,换位就是将明文中字母的位置重新排列。 逆序法,如 明文:computer system 密文:metsys retupmoc 列换位法 首先要将明文排成一个矩阵,解决两个问题: 排成的矩阵的宽度有多少列; 排成矩阵后,各列按什么样的顺序输出。 引入一个密钥 k,既可定义矩阵的宽度,又可以定义各列的输出顺序。,密钥:k=computer 明文:WHAT CAN YOU LEARN FROM THIS BOOK” 按密钥排列明文:,列换位法举例,密文:WORO NNSX ALMK HUOO TETX YFBX ARIX CAHX,1.1.3 简单异或,异或运算具有如下特点:0 + 0 = 0 0 + 1 = 1 1 + 0 = 11 + 1 = 0 a + a = 0 a + b + b = a即两个运算数相同,结果为0;不同,结果为1。,使用简单异或进行加密,就是将明文与密钥进行异或运算,解密则是对密文用同一密钥进行异或运算。即P + k = CC + k = P,01010000 P 01001011 K00011011 M 01001011 K01010000 P,1.1.4 序列密码(流密码)和分组密码,序列密码也称为流密码(Stream Cipher),它是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。,分组密码是一种加密管理方法 便于标准化; 便于在分组(如x.25,IP)网络中被打包传输; 一个密文组的传输错误不会影响其他密文组,容易实现同步。 由于相同的密文一定对应相同的明文,所以分组密码不能隐蔽数据模式,同时也不能抵抗组重放、嵌入和删除等攻击。,1.1.4 序列密码(流密码)分组密码,1.1.5 对称密码体制和非对称密码体制,Kd=Ke,KdKe,非对称密钥体制,对称密钥体制,非对称密钥体制的特点,加密和解密分别用不同的密钥进行,即DKe(EKe(P)P, DKd(EKe(P)=P。 加密密钥和解密密钥可以对调,即DKe(EKd(P)=P。 应能在计算机上容易地成对生成,但不能由已知的Kd导出未知Ke,也不能由已知的Ke导出未知Kd。,1.1.6 密钥安全与公开密码体制,密码的安全决定于算法的安全和密钥的安全两个方面。 基于算法保密的安全策略已经不再使用: 算法是要人掌握的。一旦人员变动,就要更换算法。 算法的开发是非常复杂的。一旦算法泄密,重新开发需要一定的时间。 不便于标准化:由于每个用户单位必须有自己唯一的加密算法,不可能采用统一的硬件和软件产品。否则偷窃者就可以在这些硬件和软件的基础上进行猜测式开发。 不便于质量控制:用户自己开发算法,需要好的密码专家,否则对安全性难于保障 现代密码学认为,所有加密算法的安全性都应当基于密钥的安全性,而不是基于算法实现的细节。,公开密钥体制,A端,B端,1.2 数据加密标准算法,DES(data encryption standard,数据加密标准) IBM 公司1975年提出 1977年1月15日美国国家标准局正式采用,作为非机要部门的数据加密标准,1.2.1 DES 及其基本思想,1973年5月美国国家标准局发出通告,公开征求对计算机数据在传输和存储期间进行数据加密的算法。要求是:(1)必须提供高度的安全性;(2)具有相当高的复杂性,使得破译的开销超过获得的利益,但同时又便于理解和掌握;(3)安全性应当不依赖于算法的保密,加密的安全性仅以加密密钥的保密为基础;(4)必须适合不同的用户和不同的应用场合;(5)实现算法的电子器件必须很经济,运行有效;,1.2. DES 加密过程细化,加密算法的特点: (1)对称算法:密钥既可用于加密,也可用于解密。 (2)64位的密钥,使用长度为56位(64位密钥中,有8位用于奇偶校验)。 (3)加密算法是混淆与扩散的结合,或者说是换位与置换的结合。 (4)每个DES都在明文上实施16重相同的组合技术。这种重复性可以被非常理想地应用到一个专用芯片中。,DES 算法基本原理,DES 属于典型的分组密码体制。DES 将明文信息按 64 比特大小分组,密钥长度也是 64 比特,但是实际使用过程中密钥长度是 56 比特,另外 8 比特用作奇偶校验位(即每个字节的最后一位用作奇偶校验)。64 比特的明文分组在密钥的作用下经过多次的置换和替代组合操作,最终形成攻击者难以破译的 64 比特密文。,DES 算法的基本原理是置换和替代操作,根据前面我们对置换和替代算法的分析,无论是单一的置换还是单一的替代,其安全系数都很低,攻击者通过统计分析等方法很容易攻破密码系统。因此,DES 的设计者在加密过程中,使用了置换和替代的多次组合过程,并且使用多轮循环加密来扰乱和扩散明文信息 。,DES 算法基本原理,DES 算法加密的基本原理: 加密过程中输入 64 比特的明文,首先经过初始矩阵 IP 置换; 在 56 比特的输入密钥控制下,进行 16 轮迭代加密处理过程; 通过简单的换位和逆置换算法,得到 64 比特的输出密文。,DES 算法基本原理,DES 算法加密的基本原理:,DES 算法解密的基本原理: 具体的解密处理过程与加密处理过程顺序完全一样,只是控制每一轮迭代的密钥 K 与加密过程中的密钥 K 正好相反,即加密过程的第1轮控制密钥 K1是解密过程的第 16 轮密钥 K16,K1 = K16,而解密处理过程的第 1 轮控制密钥 K 是加密处理过程的第 16 轮密钥,即 K1 = K16 。,DES 算法基本原理,DES 加密算法主要由 4 个元素组成: 初始置换矩阵 IP、加密函数 F、 S-盒子、逆初始置换矩阵 IP-1。,DES 算法加密具体过程,原始 64 bit 矩阵,初始置换后的初始置换矩阵IP,由置换矩阵可知置换规则:将原先处在第58位置的比特置换后放在第1个位置,第50位置的比特置换后放在第2个位置,第7个位置的比特置换后放在第64个位置。,DES 算法加密具体过程,原始 64 bit 矩阵,逆初始置换矩阵IP-1,DES 算法加密具体过程,DES 算法加密具体过程,初始置换举例: 假设 64 比特明文 M 是:,按照初始置换矩阵IP的变换规则,将M变换为M1,M1序列是:,如果明文M分组是序列m1 m2 m3 .m64,则经过IP置换后变成序列m58 m50 m42 .m7。,DES 算法加密具体过程,M 写成 88 的矩阵,如表 2-7 所示。初始置换后如表 2-8 所示,DES 算法加密具体过程,通过比较表2-7与表2-8,可以发现,M由置换矩阵 IP 变换到 M1 遵循一定的规律: 矩阵 M1 的第 1 行是矩阵 M 的第 2 列的倒置,第 2 行是矩阵 M 的第 4 列倒置,第 5 行是矩阵 M 的第 1 列的倒置。概括的说,置换后的矩阵 M1 前 4 行是明文矩阵 M 各偶数列的倒置,后 4 行是明文矩阵M 各奇数列的倒置。,DES 算法加密具体过程,再次对照逆初始矩阵 IP-1(如表2-6所示)可发现,将 M1 前 4 行各行的倒置作为新矩阵 M2 的偶数列,后 4 行各行的倒置作为新矩阵 M2 的奇数列,会得到结果 M=M2。也就是说将任何明文 M 经过初始矩阵 IP 置换,然后再经过逆初始矩阵 IP-1 的置换,M 的值保持不变,每轮迭代加密处理过程: DES 算法加密过程需要 16 轮迭代处理,每一轮迭代的处理步骤是一样的,只是输入的信息和控制密钥不同,第i轮加密处理过程如图 2-3 所示。,DES 算法加密具体过程,DES 算法加密具体过程,DES 算法加密具体过程,F 函数是 DES 算法的精髓,它是多个置换函数和替代函数的组合函数,该函数以密钥和上一轮加密得到的部分结果作为输入,通过多次扩展、置换和替代达到真正“扰乱”明文信息的目的。 F 函数分为扩展、异或运算、S盒替代以及置换四个步骤。,DES 算法加密具体过程, 扩展 F 函数首先将32比特的数据Ri-1 预扩展为48比特,其方法是:将Ri-1 从左到右分成8块,每块4比特,然后将每块从4比特扩展到6比特。扩展的规则是:每一块向左扩展一位,同时向右扩展一位,也就是说,第n块向左扩展一位,与第n-1块未扩展前的最后一位相同,同时向右扩展一位,与第n+1块未扩展前的最后一位相同;,DES 算法加密具体过程,DES 算法加密具体过程,例如由表 2-8 所知的序列 M1,得到加密时的 L0 和 R0 分别是:,首先将 R0 分为 8 块,得到数据:1001 0111 0101 0110 1011 100 1110 0000,如图 2-4 所示,DES 算法加密具体过程,异或运算:由图2-3所示,经过扩展后的 48 比特 Ri-1 将与第 I 轮加密密钥 Ki 进行异或运算,密钥 Ki 也是 48 位,由原始密钥经过循环左移以及置换排列的方式产生,具体的生成过程后面将详细描述。 48 位的 Ki 同 Ri-1 一样,也分成 8 块,每块 6比特,然后与扩展后的 Ri-1 对应的各块做异或运算后,同样生成 8 个 6 位比特块,其输出是 S盒子的输入。,DES 算法加密具体过程,假设密钥 Ki的第 1 块 6 比特数据为:110111,图 2-4 所示的第一块扩展比特是010010,则两者异或的结果是 100101,DES 算法加密具体过程, S 盒替代 DES算法中的S盒子由8个子盒S1、S2 、S3 、S4 、S5 、S6 、S7 、S8 组成,每个子盒构成4行16阶的4 16 矩阵,表2-9列出了其中一个子盒S1的定义。,DES 算法加密具体过程,DES 算法加密具体过程,S盒子的输入是上述所讲的由Ri-1与Ki 两者异或运算得到的结果,其中第j个子盒Sj的输入是第j块异或运算的结果,输出是根据Sj盒子定义得到的 4 比特数据。,DES 算法加密具体过程,对于每个盒子Sj (j=1,2.8)其输入与输出之间的映射关系是: 将Sj输入的第一位与最后一位两个二进制数组合起来,得到某个十进制数m,m用来选择矩阵Sj的行;Sj输入的中间四比特数据组合,得到十进制数n,n用来选择矩阵Sj的列。已知行m与列n,查找已经定义好的矩阵Sj 的m行n列对应的值,该值就是Sj的输出。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号