[工学]第2章现代密码学技术课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《[工学]第2章现代密码学技术课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工学 现代 密码学 技术 课件
- 资源描述:
-
1、第二章现代密码学技术n本章提示q2.1分组加密技术q2.2公钥加密技术2.1 分组加密技术n本节提示q2.2.1基本概念q2.2.2标准算法的介绍nDES算法n国际数据加密算法(IDEA)nAES算法q2.2.3分组密码的分析方法q2.2.4分组密码的工作模式 2.2.1基本概念n密码学中常见的有两种体制:q对称密码体制(单钥密码体制)如果一个加密系统的加密密钥和解密密钥相同,或者虽然不相同,但是由其中的任意一个可以很容易地推导出另一个,即密钥是双方共享的,则该系统所采用的就是对称密码体制。q非对称密码体制(公钥密码体制)n分组密码是指将处理的明文按照固定长度进行分组,加解密的处理在固定长度密
2、钥的控制下,以一个分组为单位独立进行,得出一个固定长度的对应于明文分组的结果。属于对称密码体制的范畴。基本概念(续)n在分组密码的设计中用代替、置换手段实现扩散和混淆功能。n混淆 指加密算法的密文与明文及密钥关系十分复杂,无法从数学上描述,或从统计上去分析。n扩散 指明文中的任一位以及密钥中的任一位,对全体密文位有影响。经由此种扩散作用,可以隐藏许多明文在统计上的特性,增加密码的安全 2.2.2标准算法的介绍nDES算法 n国际数据加密算法(IDEA)nAES算法 DES加密算法的背景l发明人 美国IBM公司W.Tuchman 和 C.Meyer 1971-1972年研制成功。l基础 1967
3、年美国Horst Feistel提出的理论l产生 美国国家标准局(NBS)1973年5月到1974年8月两次发布通告,公开征求用于电子计算机的加密算法。经评选从一大批算法中采纳了IBM的LUCIFER方案。l标准化 DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为数据加密标准(Data Encryption Standard),于1977年7月15日生效。DES加密算法的背景n美国国家安全局(NSA,National Security Agency)参与了美国国家标准局制定数据加密标准的过程。NBS接受了NSA的某些建议,对算法做了修改,并将密钥长度从LUCIFER
4、方案中的128位压缩到56位。n1979年,美国银行协会批准使用DES。n1980年,DES成为美国标准化协会(ANSI)标准。n1984年2月,ISO成立的数据加密技术委员会(SC20)在DES基础上制定数据加密的国际标准工作。实现的设计原则n 软件实现的要求:使用子块和简单的运算。密码运算在子块上进行,要求子块的长度能自然地适应软件编程,如8、16、32比特等。应尽量避免按比特置换,在子块上所进行的密码运算尽量采用易于软件实现的运算。最好是用处理器的基本运算,如加法、乘法、移位等。n硬件实现的要求:加密和解密的相似性,即加密和解密过程的不同应仅仅在密钥使用方式上,以便采用同样的器件来实现加
5、密和解密,以节省费用和体积。尽量采用标准的组件结构,以便能适应于在超大规模集成电路中实现。简化的DESnSimplified DES方案,简称S-DES方案。n加密算法涉及五个函数:(1)初始置换IP(initial permutation)(2)复合函数fk1,它是由密钥K确定的,具有置换和替代的运算。(3)转换函数SW (4)复合函数fk2 (5)初始置换IP的逆置换IP-1 加密算法的数学表示 nIP-1*fk2*SW*fk1*IP 也可写为 密文=IP-1(fk2(SW(fk1(IP(明文)其中 K1=P8(移位(P10(密钥K)K2=P8(移位(移位(P10(密钥K)n解密算法的数学
6、表示:明文=IP-1(fk1(SW(fk2(IP(密文)对S-DES的深入描述(1)S-DES的密钥生成:设10bit的密钥为(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)置换P10是这样定义的P10(k1,k2,k10)=(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6)相当于 P10=LS-1为循环左移,在这里实现左移1位。LS-2为循环左移,在这里实现左移2位。P8=按照上述条件,若K选为(1010000010),产生的两个子密钥分别为K1=(1 0 1 0 0 1 0 0),K2=(0 1 0 0 0 0 1 1)68911047253109876543
7、2191058473687654321 S-DES的密钥生成的密钥生成n 10-bit密钥密钥P10LS-1LS-1LS-2LS-2P8P8K18K255585(2)S-DES的加密运算的加密运算:初始置换用初始置换用IP函数函数:IP=1 2 3 4 5 6 7 8 2 6 3 1 4 8 5 7末端算法的置换为末端算法的置换为IP的逆置换的逆置换:IP-1=1 2 3 4 5 6 7 8 4 1 3 5 7 2 8 6易见易见IP-1(IP(X)=X 函数函数fk,是加,是加 密方案中的最重要部分,它可表示为:密方案中的最重要部分,它可表示为:fk(L,R)=(L F(R,S K),R)其
8、中其中L,R为为8位输入位输入,左右各为左右各为4位位,F为从为从4位集到位集到4位集位集的一个映射的一个映射,并不要求是并不要求是1-1的。的。SK为子密钥。为子密钥。对对 映射映射F来说:来说:首先输入是一个首先输入是一个4-位数(位数(n1,n2,n3,n4),第一步运算是),第一步运算是扩张扩张/置换(置换(E/P)运算:)运算:E/P 4 1 2 3 2 3 4 1 事实上,它的直观表现形式为:事实上,它的直观表现形式为:n4 n1 n2 n3 n2 n3 n4 n1 8-bit子密钥:子密钥:K1=(k11,k12,k13,k14,k15,k16,k17,k18),然后然后与与E/
9、P的结果作异或运算得:的结果作异或运算得:n4+k11 n1+k12 n2+k13n3+k14 n2+k15 n3+k16 n4+k17n1+k18把它们重记为把它们重记为8位位:P0,0 P0,1P0,2 P0,3 P1,0 P1,1P1,2P1,3上述第一行输入进上述第一行输入进S-盒盒S0,产生,产生2-位的输出;第二行位的输出;第二行的的4位输入进位输入进S盒盒S1,产生,产生2-位的输出。两个位的输出。两个S盒按盒按如下定义:如下定义:2313312001232301321032100S3012010331023210321032101S S盒按下述规则运算:盒按下述规则运算:将第将
10、第1和第和第4的输入比特做为的输入比特做为2-bit数,指示为数,指示为S盒的一个行;盒的一个行;将第将第2和第和第3的输入比特做为的输入比特做为S盒的一盒的一 个列。如此确定为个列。如此确定为S盒盒矩阵的(矩阵的(i,j)数。)数。例如:(例如:(P0,0,P0,3)=(00),并且并且(P0,1,P0,2)=(1 0)确定了确定了S0中的第中的第0行行2列(列(0,2)的系数为)的系数为3,记为(,记为(1 1)输)输出。出。由由S0,S1输出输出4-bit经置换经置换 P4 2 4 3 1它的输出就是它的输出就是F函数的输出。函数的输出。SW函数为左四位和右四位进行交换。函数为左四位和右
11、四位进行交换。DES算法描述n为二进制编码数据设计的,可以对计算机数据进行密码保护的数学运算。nDES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。在每轮编码时,一个48位的“每轮”密钥值由56位的“种子”密钥得出来。nDES算法的入口参数有三个:Key、Data和Mode。qKey为8个字节共64位,是DES算法的工作密钥;qData也为8个字节64位,是要被加密或被解密的数据;qMode为DES的工作方式,有两种:加密或解密n64位明文变换到64位密文,密钥64位,实际可用密钥长度为56位。DES算法框图 DES算法描述(续)n初始换位的功能是把输入的64位数据
12、块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则见下表:58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7n例:设置换前的输入值为D1D2D3.D64,则经过初始置换后的结果为:L0=D58D50.D8;R0=D57D49.D7。DES算法描述(续)n逆置换正
13、好是初始置的逆运算。【例】第1位经过初始置换后,处于第40位,而通过逆置 换,又将第40位换回到第1位,其逆置换规则如下表所示:40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25DES算法的一次迭代过程图DES算法描述(续)n扩展置换为:32 1 2 3 4 5 4 5 6 7 8 9
14、 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1nP-盒置换为:16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25n在变换中用到的S1,S2.S8为选择函数,俗称为S-盒,是DES算法的核心。其功能是把6bit数据变为4bit数据。S1:14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0
15、 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 n在S1中,共有4行数据,命名为0,1、2、3行;每行有16列,命名为0、1、2、3,.,14、15列。现设输入为:DD1D2D3D4D5D6 令:列D2D3D4D5 行D1D6然后在S1表中查得对应的数,以4位二进制表示,此即为选择函数S1的输出。1 0 1 1 0 0 102 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 14 4 13
16、1 2 15 11 8 3 10 6 12 5 9 0 71 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 82 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 03 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 130 0 1 0输出4位使用选择函数S1的例子输入6位S1密钥Ki(48bit)的生成算法 DES的破解n DES的实际密钥长度为56-bit,就目前计算机的计算机能力而言,DES不能抵抗对密钥的穷举搜索攻击。n 1997年1月28日,RSA数据安全公司在RSA安全年会上悬赏10000美金破解DES,克罗拉多
17、州的程序员Verser在Inrernet上数万名志愿者的协作下用96天的时间找到了密钥长度为40-bit和48-bit的DES密钥。n 1998年7月电子边境基金会(EFF)使用一台价值25万美元的计算机在56小时之内破译了56-bit的DES。n 1999年1月电子边境基金会(EFF)通过互联网上的10万台计算机合作,仅用22小时15分就破解了56-bit的ES。DES算法的公开性与脆弱性nDES的两个主要弱点:q密钥容量:56位不太可能提供足够的安全性n 不过这些破译的前提是,破译者能识别出破译的结果确实是明文,也不过这些破译的前提是,破译者能识别出破译的结果确实是明文,也即破译的结果必须
18、容易辩认。如果明文加密之前经过压缩等处理,辩认即破译的结果必须容易辩认。如果明文加密之前经过压缩等处理,辩认工作就比较困难。工作就比较困难。qS盒:可能隐含有陷井(Hidden trapdoors)nDES的半公开性:S盒的设计原理至今未公布国际数据加密算法(IDEA)nIDEA(International Data Encryption Standard)由瑞士联邦理工学院的Xuejia Lai和James Massey于 1990年提出,分组长度为64-bit,密钥长度为128-bit。能抵抗差分密码分析,目前还没有发现明显的安全漏洞,应用十分广泛。著名的电子邮件安全软件PGP就采用了ID
19、EA进行数据加密。IDEA的混淆特性nIDEA的混淆特性是经由混合下述三种操作而成的:q以比特为单位的异或运算,用 表示。q定义在模 (mod65536)的模加法运算,其操作数都可以表示成16位整数,用表示这个操作。q定义在模 1(mod65537)的模乘法运算 。162162IDEA的混淆特性(续)n由于上面3个操作,基于以下的“非兼容性 “(Incompatible),当应用在IDEA时,可以充分发挥出混淆的特性。q三种中的任意两个,都不满足“分配律”,例如运算及,任意a,b,c ,则有:a(b c)(ab)(ac)q3个操作中的任意2个,都无法满足“结合律”。例如运算及,任意a,b,c
20、,a(b c)(ab)(ac)n 因此在IDEA的设计中,使用了这三种操作混合组合来打乱数据。攻击者无法用化简的方式来分析密文与明文及密钥之间的关系。162F162FIDEA的扩散特性nIDEA的扩散特性是建立在乘法/加法(MA)的基本结构上。该结构一共有4个16位的输入,两个16位的输出。其中的两个输入来源于明文,另两个输入是子密钥,源于128位加密密钥。Lai经过分析验证,数据经过8轮的MA处理,可以得到完整的扩散特性。图2.16 IDEA加密解密框架 第1 轮循环 P1 P2 P3 P4 16 16 第2 轮循环 W11 W12 W13 W14 16 W21 W22 W23 W24 第8
21、 轮循环 W71 W72 W73 W74 16 W81 W82 W83 W84 输出变换 16 C1 C2 C3 C4 Z1 Z6 Z7 Z12 Z43 Z48 Z49 Z52 加密子密钥产生器 Z1 Z52 解密子密钥产生器 U1 U52 第1 轮循环 C1 C2 C3 C4 16 第2 轮循环 V11 V12 V13 V14 V21 V22 V23 V24 第8 轮循环 V71 V72 V73 V74 V81 V82 V83 V84 输出变换 P1 P2 P3 P4 U1 U6 U7 U12 U43 U48 U49 U52 64 位明文P 64 位密文C 64 位密文C 64 位明文P 1
22、6 128 位密钥K MA基本结构n在IDEA中,扩散由被称为乘积/相加(MA)结构的算法基本构件提供。这个结构以两个从明文得到的16bit的数值和两个从密钥导出的子密钥作为输入并产生两个16bit的输出。已证明只需要使用4次这个结构就可以实现完全的扩散。F1F2G1G2Z5Z6子密钥(16位)明文输入(16位)明文输入(16位)子密钥(16位)输出(16位)输出(16位)(i)(i)IDEA算法描述nIDEA是由8轮相似的运算和随后的一个输出变换组成 n64位的明文分组在每一轮中都是被分成4份,每份从16位为一单元来处理 n每一轮中6个子密钥8输出变换4个子密钥52个子密钥 每一轮的运算又分
23、成两部分:每一轮的运算又分成两部分:n第一部分即变换运算。利用加法及乘法运算将4份16位的子明文分组与4个子密钥混合,产生4份16位的输出。这4份输出又两两配对,以逻辑异或将数据混合,产生两份16位的输出。这两份输出,连同另外的两个子密钥成为第二部分的输入。n第二部分即用以产生扩散特性的MA运算。MA运算生成两份16位输出。MA的输出再与变换运算的输出以异或作用生成4份16位的最后结果。这4份结果即成为下一轮运算的原始输入。子密钥的产生n首先将128位加密密钥以16位为单位分成8组,其中前6组作为第一轮迭代运算的子密钥,后2组用于第二轮迭代运算的前2组子密钥。n然后将128位密钥循环左移25位
24、,再分为8组子密钥,其中前4组用于第二轮迭代运算,后4组用作第三轮迭代运算的前4组子密钥,依此直至产生全部52个子密钥。n这52个子密钥的顺序为:Z1(1),Z2(1),Z6(1);Z1(2),Z2(2),Z6(2);Z1(8),Z2(8),Z6(8);Z1(9),Z2(9),Z3(9),Z4(9),IDEA的解密 n本质上与加密过程唯一不同的是解密密钥子块Ki(r)是从加密密钥子块Zi(r)按下列方式计算出来的:n其中 表示的模(1)的乘法逆,亦即 ,表示 的模 的加法逆,亦即 =0 。1628,3,2)(,)(),(1)10(4)10(2)10(31)10(1)(4)(3)(2)(1rZZ
25、ZZKKKKrrrrrrrr9,1)(,)(),(1)10(4)10(3)10(21)10(1)(4)(3)(2)(1rZZZZKKKKrrrrrrrr8,2,1),(),()9(6)9(5)(6)(5rZZKKrrrr1Z16211ZZ ZZ162ZZIDEA的设计理念 nIDEA的设计主要考虑是针对16位为单位的处理器。因此无论明文、密钥都是分成16位为一个单元进行处理。nIDEA使用了三种简单的基本操作,因此在执行时可以达到非常快的操作。在33MHz386机器上运行,加密速度可以达到880kb/s。经过特殊设计的VLSI芯片,更可以达到55Mb/s的速度。nIDEA采用三种非常简单的基本
展开阅读全文