收藏 分享(赏)

分组加密技术 现代密码学.ppt

上传人:kpmy5893 文档编号:5587039 上传时间:2019-03-09 格式:PPT 页数:111 大小:2.46MB
下载 相关 举报
分组加密技术 现代密码学.ppt_第1页
第1页 / 共111页
分组加密技术 现代密码学.ppt_第2页
第2页 / 共111页
分组加密技术 现代密码学.ppt_第3页
第3页 / 共111页
分组加密技术 现代密码学.ppt_第4页
第4页 / 共111页
分组加密技术 现代密码学.ppt_第5页
第5页 / 共111页
点击查看更多>>
资源描述

1、1,2.2 分组加密技术,2.2.1基本概念 2.2.2标准算法的介绍 DES算法 国际数据加密算法(IDEA) AES算法 2.2.3分组密码的分析方法 2.2.4分组密码的工作模式,2,2.2.1基本概念,密码学中常见的有两种体制: 对称密码体制(单钥密码体制)如果一个加密系统的加密密钥和解密密钥相同,或者虽然不相同,但是由其中的任意一个可以很容易地推导出另一个,即密钥是双方共享的,则该系统所采用的就是对称密码体制。 非对称密码体制(公钥密码体制) 分组密码是指将处理的明文按照固定长度进行分组,加解密的处理在固定长度密钥的控制下,以一个分组为单位独立进行,得出一个固定长度的对应于明文分组的

2、结果 。属于对称密码体制的范畴 。,3,基本概念(续),在分组密码的设计中用代替、置换手段实现扩散和混淆功能 。 混淆(Confusion)指加密算法的密文与明文及密钥关系十分复杂,无法从数学上描述,或从统计上去分析。 扩散(Diffusion)指明文中的任一位以及密钥中的任一位,对全体密文位有影响。经由此种扩散作用,可以隐藏许多明文在统计上的特性,增加密码的安全。,分组密码的安全特性,4,2.2.2 标准算法的介绍,数据加密标准(Data Enryption Standard,DES) 国际数据加密算法(IDEA) 高级加密标准(Advanced Encryption Standard,AE

3、S),5,DES加密算法的背景,发明人 美国IBM公司W. Tuchman 和 C. Meyer 1971-1972年研制成功。 基础1967年美国Horst Feistel提出的理论 产生美国国家标准局(NBS)1973年5月到1974年8月两次发布通告,公开征求用于电子计算机的加密算法。经评选从一大批算法中采纳了IBM的LUCIFER方案。 标准化DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为数据加密标准(Data Encryption Standard),于1977年7月15日生效。,6,DES加密算法的背景,美国国家安全局(NSA, National Se

4、curity Agency)参与了美国国家标准局制定数据加密标准的过程。NBS接受了NSA的某些建议,对算法做了修改,并将密钥长度从LUCIFER方案中的128位压缩到56位。 1979年,美国银行协会批准使用DES。 1980年,DES成为美国标准化协会(ANSI)标准。 1984年2月,ISO成立的数据加密技术委员会(SC20)在DES基础上制定数据加密的国际标准工作。,7,数据加密标准DES,DES是一种著名的分组密码算法。 DES的分组长度:64位; 密钥长度:64位(包括8比特的奇偶校验位)。密钥通过扩展后,经过16轮对明文分组的代换和置换,生成密文。,8,DES算法描述,为二进制编

5、码数据设计的,可以对计算机数据进行密码保护的数学运算。 DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。在每轮编码时,一个48位的“每轮”密钥值由56位的“种子”密钥得出来。 DES算法的入口参数有三个:Key、Data和Mode。 Key为8个字节共64位,是DES算法的工作密钥; Data也为8个字节64位,是要被加密或被解密的数据; Mode为DES的工作方式,有两种:加密或解密。 64位明文变换到64位密文,密钥64位,实际可用密钥长度为56位。,9,DES将明文分成64比特分组,每次对一个分组进行加密,共经过16轮变换,产生64比特的密文。 DES的密

6、钥为56比特,通过密钥调度算法每次产生48比特的子密钥用于一轮的加密。,DES的工作过程,10,DES算法框图,第1轮,第16轮,11,DES算法描述(续),初始换位(IP)的功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则见下表:,1 初始换位与逆置换,例:设置换前的输入值为D1D2D3D64,则经过初始置换后的结果为:L0=D58D50.D8;R0=D57D49.D7。,58 50 42 34 26 18 10 02 60 52 44 36 28 20 12 04 62 54 46 38 30 22 14 06 64 56 48 40 32

7、 24 16 08 57 49 41 33 25 17 09 01 59 51 43 35 27 19 11 03 61 53 45 37 29 21 13 05 63 55 47 39 31 23 15 07,初始换位(IP)表,12,DES算法描述(续),逆置换正好是初始换位的逆运算。 【例】 第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位,其逆置换规则如下表所示:,40 08 48 16 56 24 64 32 39 07 47 15 55 23 63 31 38 06 46 14 54 22 62 30 37 05 45 13 53 21 61 29 36

8、04 44 12 52 20 60 28 35 03 43 11 51 19 59 27 34 02 42 10 50 18 58 26 33 01 41 09 49 17 57 25,逆置换IP,13,说明:初始换位(IP)的逆置换,可记为IP-1。它在16轮变换之后应用,即针对第16轮变换输出作出置换。将40、8、48等比特位分别放置于1、2、3等比特位位置,实现将第1,2,364比特位恢复为初始位置。置换后的结果为64比特的密文。,14,58 50 42 34 26 18 10 02 60 52 44 36 28 20 12 04 62 54 46 38 30 22 14 06 64 5

9、6 48 40 32 24 16 08 57 49 41 33 25 17 09 01 59 51 43 35 27 19 11 03 61 53 45 37 29 21 13 05 63 55 47 39 31 23 15 07,初始换位IP,40 08 48 16 56 24 64 32 39 07 47 15 55 23 63 31 38 06 46 14 54 22 62 30 37 05 45 13 53 21 61 29 36 04 44 12 52 20 60 28 35 03 43 11 51 19 59 27 34 02 42 10 50 18 58 26 33 01 41

10、09 49 17 57 25,逆置换IP,15,逆IP变换确保在解密时使用与加密相同的算法,经过IP置换后得到正确的加密,第16轮变换输出,作为解密第1轮变换的输入。,16,DES算法的一次迭代过程图,17,2 f函数,f函数包括4部分:(1)扩展置换,(2)密钥运算,(3)S-盒置换,(4)P-盒置换。,18,(1)扩展置换,使用扩展置换,就是将32比特块(每1轮右半部分输入)扩展成为48比特,重复输入16比特。,扩展置换,32 01 02 03 04 05 04 05 06 07 08 09 08 09 10 11 12 13 12 13 14 15 16 17 16 17 18 19 2

11、0 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 01,从右图可以看出:扩展操作是将原有的32比特按8行4列排列后构成输入矩阵,然后复制输入矩阵的第1列并向循环上移1位,添加到输入矩阵的右侧,复制输入矩阵的第4列并循环向下移1位,添到输入矩阵的左侧,最后构成8行6列的输出矩阵,共48比特。,19,(2)密钥混合,扩展操作的输出矩阵48比特与48比特的轮密钥做异或运算,其中的轮密钥是由56比特原始密钥经过密钥调度产生的。,(3)S-盒置换,将密钥混合后输出的48比特分为8组,每组6比特,经过8个独立的S盒替换,输出8组4比特值。每个S

12、盒可以看做一个表格,通过查表实现非线性转换。S盒替换是DES算法安全的核心。每个S盒是一个4行16列的表格。,20,在S-盒变换中用到的S1,S2.S8共8个选择函数,它们是DES算法的核心。其功能是把6bit数据变为4bit数据。下表为S1S8盒的替换阵列。,S1替换阵列,查表输入为6比特,取最低和最高比特位的10进制值作为行号,中间的4比特的10进制值作为列号,查找对应表格中的数值。 例:输入为(110100)2,行号取(10)2=2,列号(1010)2=10由此查表结果为9。,21,22,23,24,25,1 0 1 1 0 0,10 2,0 1 2 3 4 5 6 7 8 9 10 1

13、1 12 13 14 15 0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13,0 0 1 0,输出4位,使用选择函数S1的例子,输入6位,S1,26,(110100 101100110101),1001 0010 1100,27,16 07 20 21 29 12 28 17 01 15 23 26 05 18 31 10 02

14、 08 24 14 32 27 03 09 19 13 30 06 22 11 04 25,P-盒置换,(4)P-盒置换,S盒替换输出32比特,再经过一个固定的P盒置换,该置换操作时的本轮每个S盒替换输出,在下一轮经过扩展操作后,扩散到6个不同的S盒中。P盒置换比特位重新如下表所示。即将输入的第16、7、20比特重排到输出的第1、2、3比特位置。,F函数中的S盒置换操作实现了“混淆”(confusion),P盒置换实现了“扩散”(diffusion),从而保证了DES的安全性。,28,3 密钥调度算法,在64比特的密钥中,除去8个比特奇偶校验位(8,16,24-64),只有56比特可用。56比

15、特密钥作为初始输入,经过置换选择PC1 (Permuted Choice1),输出的56比特分为左右两部分,各28比特,分别进行左循环移位,之后左右两部分合并进行置换选择操作PC2,产生48比特轮密钥。第一轮的左循环移位输出作为第2轮密钥产生的输入,再次进行左循环移位,以此类推,直到产生16轮的子密钥。,29,密钥调度中的左循环移位每一轮移动的比特个数不同,从第1轮到第16轮位移次数为:(1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1) 这样每一比特密钥大约在16轮中的14轮中用到。解密时密钥调度算法一致,只是按逆序使用,最后使用K1,解密处理程序与加密相同。,56位分为C0和

16、D0两部分,各28位,然后分别进行第1次循环左移,得到C1、D1,将C1(28位)、D1(28位)合并得到56位,再经过缩小选择换位2,从而便得到了密钥K0(48位)。依此类推,便可得到K1、K2、K15,不过需要注意的是,16次循环左移对应的左移位数要依据下述规则进行:,30,57 49 41 33 25 17 09 01 58 50 42 34 26 18 10 02 59 51 43 35 27 19 11 03 60 52 44 36 63 55 47 39 31 23 15 07 62 54 46 38 30 22 14 06 61 53 45 37 29 21 13 05 28 2

17、0 12 04,置换选择PC1,置换选择PC2,14 17 11 24 01 05 03 28 15 06 21 10 23 19 12 04 26 08 16 07 27 20 13 02 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32,31,密钥Ki(48bit)的生成算法,K,PC1,C0 D0,LS1,LS1,C1 D1,LS2,LS2,LS16,LS16,C16 D16,PC2,PC2,K1,K16,32,DES的安全性分析,DES的实际密钥长度为56-bit,就目前计算机的计算能力而言,

18、DES不能抵抗对密钥的穷举搜索攻击。 1997年1月28日,RSA数据安全公司在RSA安全年会上悬赏10000美金破解DES,克罗拉多州的程序员Verser在Internet上在数万名志愿者的协作下,用96天的时间找到了密钥长度为40-bit和48-bit的DES密钥。1998年7月电子边境基金会(EFF)使用一台价值25万美元的计算机在56小时之内破译了56-bit的DES。1999年1月电子边境基金会(EFF)通过互联网上的10万台计算机合作,仅用22小时15分就破解了56-bit的ES。不过这些破译的前提是,破译者能识别出破译的结果确实是明文,也即破译的结果必须容易辩认。如果明文加密之前

19、经过压缩等处理,辩认工作就比较困难。,33,DES算法的公开性与脆弱性,DES的两个主要弱点: 密钥容量:56位不太可能提供足够的安全性 S盒:可能隐含有陷井(Hidden trapdoors) DES的半公开性:S盒的设计原理至今未公布,34,DES加密的一个例子,(1)取16进制明文P:0123456789ABCDEF; (2)密钥K为:133457799BBCDFF1,去掉奇偶校验位以二进制形式表示的密钥是: 00010010011010010101101111001001101101111011011111111000 (3) 应用IP,得到: L0=11001100000000001

20、100110011111111 L1=R0=11110000101010101111000010101010 (4) 然后进行16轮加密。 (5) 最后对L16, R16使用IP-1得到密文: 85E813540F0AB405,35,IDEA(International Data Encryption Standard)由瑞士联邦理工学院的Xuejia Lai和James Massey于 1990年提出,分组长度为64-bit,密钥长度为128-bit。能抵抗差分密码分析,目前还没有发现明显的安全漏洞,应用十分广泛。著名的电子邮件安全软件PGP就采用了IDEA进行数据加密。,国际数据加密算法(

21、IDEA),36,IDEA的混淆特性是经由混合下述三种操作而成的: 以比特为单位的异或运算,用表示。 定义在模 (mod65536)的模加法运算,其操作数都可以表示成16位整数,用表示这个操作。 定义在模 1(mod65537)的模乘法运算。,IDEA的混淆特性,37,由于上面3个操作,基于以下的“非兼容性 “ (Incompatible),当应用在IDEA时,可以充分发挥出混淆的特性。 三种中的任意两个,都不满足“分配律”,例如运算及,任意a,b,c ,则有:a(bc)(ab)(ac) 3个操作中的任意2个,都无法满足“结合律”。例如运算及,任意a,b,c , a(bc)(ab)(ac)因此

22、在IDEA的设计中,使用了这三种操作混合组合来打乱数据。攻击者无法用化简的方式来分析密文与明文及密钥之间的关系。,IDEA的混淆特性,38,IDEA的扩散特性是建立在乘法/加法(MA)的基本结构上。该结构一共有4个16位的输入,两个16位的输出。其中的两个输入来源于明文,另两个输入是子密钥,源于128位加密密钥。Lai经过分析验证,数据经过8轮的MA处理,可以得到完整的扩散特性。,IDEA的扩散特性,39,IDEA的设计理念,IDEA的设计主要考虑是针对16位为单位的处理器。因此无论明文、密钥都是分成16位为一个单元进行处理。IDEA使用了三种简单的基本操作,因此在执行时可以达到非常快的操作。

23、在33MHz386机器上运行,加密速度可以达到880kb/s。经过特殊设计的VLSI芯片,更可以达到55Mb/s的速度。IDEA采用三种非常简单的基本操作,混合运算,以达到混淆目的。而相对地,DES采用经过特殊设计的S-盒,而对这些S-盒的分析又不对外公开。相较之下,IDEA的安全性评估,较易被大家接受。IDEA的整体设计非常规律。MA运算器及变换运算器重复使用在系统上。因此非常适合VLSI实现。,40,AES算法,1997年4月15日,美国国家标准技术研究所(NIST)发起征集AES(Advanced Encryption Standard)的活动,目的是为响应公众日益增长的替换DES的要求

24、,确定21世纪的数据加密标准。1997年9月12日正式公布了通告。通告要求AES比3DES快而且安全,分组长度为128-bit,密钥长度为128、192及256-bit。 NIST原名为NBS(国家标准局),是美国商业部下属的一个机构,1988年改为现名。著名的DES加密算法即是由它们颁布的。 1998年8月20日公布了符合基本要求的15个算法。1999年3月22日从中选出了5个。2000年4月25日对5个算法进行了讨论。2000年10月2日,NIST公布了最终的获胜者是Rijndael算法,比利时人设计。 AES算法能有效地抵抗差分分析与线性攻击。但加密、解密过程不完全对称,使用了不同的代码

25、和S-盒,所以实现起来占用资源相对多一些。,41,AES算法-Rijndael算法(1),数据块长度和密钥长度可以是128比特、192比特和256比特,其原型是Square算法。设计策略宽轨迹策略(Wide Trail Strategy)。 宽轨迹策略针对差分分析和线性分析提出,其最大优点是可以给出算法的最佳差分特征的概率及最佳线性逼进的偏差的界。,42,AES算法-Rijndael算法(2),Rijndael采用的是代替/置换网络。每一轮由以下三层组成 : 线性混和层确保多轮之上的高度扩散; 非线性层由16个S盒并置而成,起到混淆的作用; 密钥加层子密钥简单地异或到中间状态上。 S盒选取的是

26、有限域 GF(28)中的乘法逆运算,它的差分均匀性和线性偏差都达到了最佳。,43,Rijndael算法加密过程(1),44,2.2.3 分组密码的分析方法,解密与密码分析解密是加密的逆过程,是指掌握密钥和密码算法的合法人员从密文恢复出明文的过程。密码分析则是指非法人员对密码的破译,而且破译以后不会告诉对方。共同点 “解密(脱密)”和“密码分析(密码破译)”都是设法将密文还原成明文。 不同点二者的前提是不同的, “解密(脱密)”掌握了密钥和密码体 制,而密码分析(破译)则没有掌握密钥和密码体制,45,分组密码的分析方法,根据攻击者掌握的信息,可将分组密码的攻击分为以下几类: 唯密文攻击:攻击者除

27、了所截获的密文外,没有其他可利用的信息。已知明文攻击:攻击者仅知道当前密钥下的一些明密文对。选择明文攻击:攻击者能获得当前密钥下的一些特定的明文所对应 的密文。 选择密文攻击:攻击者能获得当前密钥下的一些特定的密文所对 应的明文。,46,分组密码的分析方法(续),一种攻击的复杂度可以分为两部分:数据复杂度和处理复杂度。 数据复杂度是实施该攻击所需输入的数据量。 处理复杂度是处理这些数据所需的计算量。 对某一攻击通常是以这两个方面的某一方面为主要因素,来刻画攻击复杂度 。【例如】 穷举攻击的复杂度实际就是考虑处理复杂度; 差分密码分析其复杂度主要是由该攻击所需的明密文对的数量来确定。,47,几种

28、常见的攻击方法,1.强力攻击 强力攻击可用于任何分组密码,且攻击的复杂度 只依赖于分组长度和密钥长度,严格地讲攻击所 需的时间复杂度依赖于分组密码的工作效率(包 括加解密速度、密钥扩散速度以及存储空间等)。强力攻击常见的有:穷举密钥搜索攻击、 字典攻击、查表攻击和时间-存储权衡攻击等。,48,几种常见的攻击方法(续),2.差分密码分析 基本思想通过分析明文对的差值对密文对的差值的影响来恢复某些密钥比特。若给定一个r轮的迭代密码,对已知n长明文对为 和 ,定义其差分为式中 表示集合中定义的群运算, 为 在群中的逆元。密码分析者可随机选择具有固定差分的一对明文(只要求它们符合特定差分条件),然后使

29、用输出密文中的差分,按照不同的概率分配给不同的的密钥。随着分析的密文对越来越多,其中最可能的一个密钥就显现出来了。这就是正确的密钥。,49,几种常见的攻击方法(续),3.线性密码分析 本质: 一种已知明文攻击方法。 基本思想 :通过寻找一个给定密码算法的有效的 线性近似表达式来破译密码系统。 对已知明文密文和特定密钥,寻求线性表示式式中, 是攻击参数。对所有可能密钥,此表 达式以概率 成立。对给定的密码算法, 使 极大化。为此对每一盒的输入和输 出构造统计线性路线,并最终扩展到整个算法。,50,2.3 公钥加密技术,本节提示2.3.1 基本概念2.3.2 RSA公钥密钥算法2.3.3 ElGa

30、mal算法2.3.4 椭圆曲线算法,51,2.3.1 基本概念,1976年,W.Diffie和M.E.Hellman发表了“密码学的新方向(New Directions in Cryptography)”一文,提出了公钥密码学(Public-key cryptography)的思想,在公钥密码体制(Public-key cryptosystem)中加密密钥和解密密钥是不同的,加密密钥可以公开传播而不会危及密码体制的安全性。通信的一方利用某种数学方法可以产生一个密钥对,一个称为公钥(Public-key),另外一个称为私钥(Private-key)。该密钥对中的公钥与私钥是不同的,但又是相互对应

31、的,并且由公钥不能推导出对应的私钥。选择某种算法(可以公开)能做到:用公钥加密的数据只有使用与该公钥配对的私钥才能解密。,52,基本概念(续),公钥加密算法的核心单向陷门函数,即从一个方向求值是容易的。但其逆向计算却很困难,从而在实际上成为不可行。定义1.设 是一个函数,如果对任意给定的 ,计算 ,使得 是容易计算的,但对于任意给定的 ,计算 ,使得 是难解的,即求 的逆函数是难解的,则称 是一个单向函数。,53,基本概念(续),定义2.设 是一个函数, 是与 有关的一个参数。对于任意给定的 ,计算 ,使得 是容易的。如果当不知参数 时,计算 的逆函数是难解的,但当知道参数 时,计算函数 的逆

32、函数是容易的,则称 是一个单向陷门函数,参数 称为陷门。,54,2.3.2 RSA公钥密码算法,RSA是Rivet,Shamir和Adleman于1978年在美国麻省理工学院研制出来的,它是一种比较典型的公开密钥加密算法。基础大数分解和素性检测将两个大素数相乘在计算上很容易实现,但将该乘积分解为两个大素数因子的计算量是相当巨大的,以至于在实际计算中是不能实现的。,55,RSA公钥密码算法(续),算法内容(1)公钥选择两个互异的大质数 和 , 使 , , 是欧拉函数,选择一个正数 ,使其满足 , 则将 作为公钥。(2)私钥求出正数 使其满足 ,则将 作为私钥。(3)加密变换将明文 作变换,使 ,

33、从而得到密文 。(4)解密变换将密文 作变换, 使 ,从而得到明文 。,56,RSA公钥密码算法(续),如果A要发送信息M给B,A和B之间用以下方式进行通信:计算密文 发送C给B从A 接收C计算明文 . 一般要求p,q为安全质数,现在商用的安全要求为n的长度不少于1024位 。 应用:PEM,PGP,57,RSA公钥密码算法(续),算法的安全性分析1. 如果密码分析者能分解 的因子 和 ,他就可以求出 和解密的密钥 ,从而能破译RSA,因此破译RSA不可能比因子分解难题更困难。2. 如果密码分析者能够不对 进行因子分解而求得,则可以根据求得解密密钥 ,从而破译RSA。因为所以知道 和 就可以容

34、易地求得 和 ,从而成功分解 ,因此,不对 进行因子分解而直接计算 并不比对 进行因子分解更容易。,58,RSA公钥密码算法(续),3.如果密码分析者既不能对n进行因子分解,也不能求 而直接求得解密密钥 ,则他就可以计算 是 的倍数。而且利用 的倍数可以容易地分解出n的因子。因此直接计算解密密钥 并不比对n进行因子分解更容易。注意问题 p和q的长度相差不能太多. p-1和q-1都应该包含大的素因子。 p-1和q-1的最大公因子要尽可能小。,59,2.2.3 ElGamal算法,该体制是由ElGamal在1985年提出的,其安全性是基于有限域上计算离散对数的困难性。ElGamal提出了加密模型和

35、认证模型两种体制,加密模型没有被充分应用,而其认证模型是美国数字签名标准(DSS)的基础。,60,2.2.3 ElGamal算法,算法内容 1. 选取大素数 , 是一个本原元, 和 公开。 2. 随机选取整数 计算是公开的加密密钥, 是保密的解密密钥。 3. 明文空间为 ,密文空间为,4. 加密变换为:对任意明文 ,秘密随机选取一个整数 ,则密文为其中5. 解密变换:对任意密文 ,明文为,61,ElGamal算法的安全性分析,有限域上的离散对数问题定义设 是素数, , 是一个本原元, 已知 和 ,求满足 的唯一整数 , 称为有限域上的离散对数问题。 现在要求在ElGamal密码算法的应用中,素

36、数p按十进制表示至少应该有150位数字,并且p-1至少应该有一个大的素因子。,62,2.2.4 椭圆曲线算法,1985年Koblitz和Miller提出在密码学中应用椭圆曲线的思想,使其成为构造公开密钥密码系统的一个有利工具。其安全性是基于椭圆曲线上的离散对数计算的困难性。优点:椭圆曲线上离散对数的计算要比有限域上离散对数的计算更困难。与RSA相比,椭圆曲线密码体制能用较短的密钥达到较强的安全性,这样实现上能节省系统资源。,63,椭圆曲线算法(续),1. 有限域上的椭圆曲线设 表示一个有限域, 是域 上的椭圆曲线,则 是一个点的集合,表示为:其中 表示无穷远点。在 上定义+运算, 是过 的直线

37、与曲线的另一交点关于x轴的对称点,当 时, 是 点的切线与曲线的另一交点关于 轴的对称点。这样, 构成可换群( Abel群),O是加法单位元(零元)。,64,椭圆曲线算法(续),椭圆曲线离散对数问题(ECDLP):给定义在 上的椭圆曲线 ,一个 阶的点 和点 ,如果存在1,确定整数1,0 1 n - 1, 。RSA是基于因子分解,其算法的核心就是如何寻找大数的因子分解,但ECDLP是比因子分解难得多的问题。,65,椭圆曲线中两种运算示意图,椭圆曲线上的加法: PQR,椭圆曲线上一点的2倍: PPR,66,椭圆曲线算法(续),2.椭圆曲线上的密码算法1985年N.Koblitz和Miller提出

38、将椭圆曲线用于密码算法,分别利用有限域上椭圆曲线的点构成的群,实现了离散对数密码算法。 椭圆曲线数字签名算法ECDSA,由IEEE工作组和ANSI(Amercian National Standards Institute)X9组织开发。,67,椭圆曲线算法(续),3.椭圆曲线密码算法的发展RSA的长密钥带来了运算速度慢和密钥存储与管理的问题。 由于其自身的优点,椭圆曲线密码学被普遍认为将替代RSA成为通用的密码算法。 应用:数字签名,智能卡 研究:陶仁骥,陈世华基于有限自动机的公开密钥加密方法:FAPKC0,FAPKC1,FAPKC2,FAPKC3。,68,2.4 流密码技术,本节提示2.4

39、.1 流密码基本原理2.4.2 二元加法流密码2.4.3 几种常见的流密码算法,69,2.4 流密码技术,在单钥密码体制中,按照加密时对明文处理方式的不同,可分为分组密码和流密码。 流密码亦称为序列密码 ,是将待加密的明文分成连续的字符或比特,然后用相应的密钥流对之进行加密,密钥流由种子密钥通过密钥流生成器产生。 密钥流可以方便地利用以移位寄存器为基础的电路来产生 。 特点:实现简单,加密速度快,错误传播低。,70,2.4.1 流密码基本原理,原理通过随机数发生器产生性能优良的伪随机序列(密钥流),使用该序列加密信息流(逐比特加密),得到密文序列。,71,按照加解密的工作方式,流密码分为同步流

40、密码和自同步流密码。 1. 同步流密码密钥流的产生完全独立于信息流。,种子密钥K,72,流密码基本原理(续),2.自同步流密码 是一种有记忆变换的密码,每一个密钥字符是由前面n个密文字符参与运算推导出来的,其中n为定值。即,如果在传输过程中丢失或更改了一个字符,则这一错误就要向前传播n个字符。 有错误传播现象。,种子密钥k,73,2.4.2 二元加法流密码,符号描述与示例 加密操作:密钥流:k1,k2,k3,明文流:m1,m2,m3,密文流:c1,c2,c3,解密操作:密钥流:k1,k2,k3,密文流:c1,c2,c3,明文流:m1,m2,m3,例电报内容“专列下午2点到达。”的加密过程如下:

41、 密钥流:78,35,02,E4,B2 明文流:D7,A8,C1,D0,CF,C2,CE,E7,32,B5,E3,B5,BD,B4,EF,A1,A3 密文流:AF,9D,C3,34,7D,74,二元加法流密码(续),Golomb随机性假设:在序列的一个周期内,0与1的个数相差至多为1; 在序列的一个周期圈内,长为1的游程数占总游程数的1/2,长为2的游程数占总游程数的 ,,长为 的游程数占总游程数的 且在等长的游程中0,1游程各占一半; 序列的异相自相关系数为一个常数。满足Golomb随机性假设的序列称为伪随机序列。,75,二元加法流密码(续),流密码的设计最核心的问题是密钥流生成器的设计。密

42、钥流生成器一般由线性反馈移位寄存器(Linear Feedback Shift Register LFSR)和一个非线性组合函数两部分构成,其中,线性反馈移位寄存器部分称为驱动部分,另一部分称为非线性组合部分。,76,二元加法流密码(续),反馈移位寄存器(feedback shift register)1. 组成结构反馈移位寄存器由 n位的寄存器(称为 n-级移位寄存器)和反馈函数(feedback function)组成。移位寄存器序列的理论由挪威政府的首席密码学家Ernst Selmer于1965年提出。,77,二元加法流密码(续),2. 工作原理移位寄存器中所有位右移一位,最右边移出的位

43、是输出位,最左端的一位由反馈函数的输出填充,此过程称为进动一拍。反馈函数f(b1, ,bn)是n元(b1 ,bn)的布尔函数。移位寄存器根据需要不断地进动m拍,便有m位的输出,形成输出序列o1 o2 om 。,78,二元加法流密码(续),例1 如图所示为一个3-级反馈移位寄存器,反馈函数f(x)=b3b2,初态为:100。输出序列生成过程如下: 状态 输出位 100 0 110 0 011 1 101 1 110 0 011 1 101 1 110 0 因此,对应初态(100)的输出序列为: 0011011011 (周期为3),b3,b2,b1,t2,t3,(a) 移位寄存器结构图,(110)

44、,(011),(101),初态 (100),(b) 状态转移图,1,1,0,(c) 序列圈,0,79,二元加法流密码(续),3. 输出序列的周期移位寄存器的周期是指输出序列中连续且重复出现部分的长度(位数)。如例1输出序列中连续且重复出现的序列为:011,则其周期为3。其输出序列可表示为:0(011)。将其用图的方式表示出来称为“序列圈”,如图(c)所示。,4. 状态某一时刻移位寄存器中所有位的值称为一个状态。 n-级的FSR共有2n个状态。3-级移位寄存器的状态共有23=8个,它们分别是:000,001,010,011,100,101,110,111。但是,并非所有的状态都被用到。如例1除初

45、始状态以外,仅有三个状态周期性地参与了输出序列的产生。,80,二元加法流密码(续),当反馈移位寄存器的反馈函数是异或变换时,这样的反馈移位寄存器叫线性反馈移位寄存器,如图所示:,81,二元加法流密码(续),移位寄存器中存储器的个数称为移位寄存器的级数,移位寄存器存储的数据为寄存器的状态,状态的顺序从左到佑依次为从最高位到最低位。 在所有状态中, 叫初态,并且从左到右依次称为第一级、第二级、第n级,亦称为抽头1、抽头2、抽头3、.、抽头n。n级线性反馈移位寄存器的有效状态为 个。它主要是用来产生周期大,统计性能好的序列。,82,二元加法流密码(续),非线性组合部分主要是增加密钥流的复杂程度,使密

46、钥流能够抵抗各种攻击(对流密码的攻击手段主要是对密钥流进行攻击)。 以线性反馈移位寄存器产生的序列为基序列,经过不规则采样、函数变换等(即非线性变换),就可以得到实用安全的密钥流。不规则采样是在控制序列下,对被采样序列进行采样输出,得到的序列称为输出序列。控制序列的控制方式有钟控方式、抽取方式等,函数变换有前馈变换、有记忆变换等。,83,二元加法流密码(续),代表性的序列模型 1、钟控模型当LFSR-1输出1时,时钟信号被采样,即能通过“与门”驱动LFSR-2进动一拍;当LFSR-1为0时,时钟信号不被采样,即不能通过“与门”,此时LFSR-2不进动,重复输出前一位。钟控发生器的示意图如下:,

47、84,2、前馈模型Geffe发生器是前馈序列的典型模型,其前馈函数g(x)=(x1 x2)(x2 x3)为非线性函数,即当LFSR-2输出1时,g(x)输出位是LFSR-1的输出位;当LFSR-2输出0时,g(x)输出位是LFSR-3的输出位。Geffe发生器示意图如下:,85,2.4.3 几种常见的流密码算法,1.A5算法 法国,欧洲数字蜂窝移动电话系统(GSM)中使用的序列密码加密算法 3个LFSR,移位寄存器的长度分别是19、22和23,但抽头都较少 2.Rambutan算法 英国的算法,由通信电子安全组织设计 5个LFSR组成,每个LFSR长度大约为80-级,而且有10个抽头。 3.RC4算法 由Ron Rivest于1987年为RSA数据安全公司设计的可变密钥长度的序列密码,广泛用于商业密码产品中。4.SEAL算法 IBM公司的Phil Rogaway和Don Coppersmith设计的一种易于用软件实现的序列密码。 是一个伪随机函数簇。,86,2.5 电子信封技术,对称密码算法,加/解密速度快,但密钥分发问题严重;非对称密码算法,加/解密速度较慢,但密钥分发问题易于解决。为解决每次传送更换密钥的问题,结合对称加密技术和非对称密钥加密技术的优点,产生了电子信封技术,用来传输数据。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 教学研究

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报