收藏 分享(赏)

密码算法、协议分析攻击.ppt

上传人:精品资料 文档编号:11116577 上传时间:2020-02-08 格式:PPT 页数:79 大小:1.80MB
下载 相关 举报
密码算法、协议分析攻击.ppt_第1页
第1页 / 共79页
密码算法、协议分析攻击.ppt_第2页
第2页 / 共79页
密码算法、协议分析攻击.ppt_第3页
第3页 / 共79页
密码算法、协议分析攻击.ppt_第4页
第4页 / 共79页
密码算法、协议分析攻击.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

1、破解技术(三):密码算法、协议分析攻击,邱 卫 东 13585917063 上海交通大学信息安全工程学院,对称密码算法分析非对称密码算法分析密钥协商协议分析攻击哈希函数分析攻击,主要内容,对称密码算法分析,方法一:强力攻击(密钥空间穷搜索),以DES为例:64位密钥,有效密钥长度为56-bit 密钥有256 = 72,057,584,037,927,936 7.2亿亿之多强力搜索( brute force search ) 似乎很困难,20世纪70年代估计要10002000年技术进步使穷举搜索成为可能,“AES Encryption Implementation and Analysis o

2、n Commodity Graphics Processing Units” CHES 2007, LNCS 4727, pp. 209226, 2007 Owen Harrison and John Waldron“Symmetric Key Cryptography on Modern Graphics Hardware” ASIACRYPT 2007, LNCS 4833, pp. 249264, 2007 Jason Yang and James Goodman,1997年1月29日,RSA公司发起破译RC4、RC5、MD2、MD5,以及DES的活动,破译DES奖励10000美金。明文

3、是:Strong cryptography makes the world a safer place. 结果仅搜索了24.6%的密钥空间便得到结果,耗时96天。 电子前沿基金会(EFF)在1997年开始研制自己的DES破解器。原始的计划中包括了很多FPGA芯片。一个DES-破解芯片需要花很多年破解密码,但是用1000个破解芯片来破解的话会节约数年时间。真正的EFF机器包括了1500个芯片。不到一年时间,这台机器证明了DES算法不再安全,以及制造这样一台机器也不是太贵。 太平洋标准时间1998年7月13日的早上9点钟,EFF的DES破解器开始破解。这台机器在7月15日下午5点03分成功破解密码

4、。一共用了56个小时找到56位的密钥。当EFF的团队在13日早上开启机器,机器随后在26个主板上进行了35868次搜索。然后EFF团队在第二天的晚上为了对机器的软件进行部分优化而停止了搜索。随后,加快了机器的搜索速度。最终DES破解器一共搜索了1,7902,8066,6919,7312次,才找到正确的密码。这差不多是所有密钥可能性的四分之一(24.8%)。 1999年在超级计算机上只要22小时!,Ciphertext-only attack(唯密文攻击) deduce the decryption key or plaintext by only observing ciphertext. K

5、nown-plaintext attack(已知明文攻击) using a quantity of plaintext and corresponding ciphertext. Chosen-plaintext attack(选择明文攻击) chooses plaintext and is then given corresponding ciphertext. Adaptive chosen-plaintext attack(自适应选择明文攻击) chosen-plaintext attack where the choice of plaintext may depend on the

6、ciphertext received from previous requests. Chosen-ciphertext attack(选择密文攻击) selects the ciphertext and is then given the corresponding plaintext. Adaptive chosen-ciphertext attack(自适应选择密文攻击) chosen-ciphertext attack where the choice of ciphertext may depend on the plaintext received from previous r

7、equests.,密码分析攻击简单分类,方法二:差分密码分析Differential Cryptanalysis 历史1990年,以色列密码学家Murphy、Biham和Shamir首次提出用差分密码分析攻击分组密码和散列函数,是第一种可以以少于255的复杂性对DES进行破译的方法。 Differential Cryptanalysis compares two related pairs of encryptions. 至今最有效的攻击迭代密码的方法 差分密码分析攻击方法with a known difference in the input, searching for a known d

8、ifference in output when same subkeys are used. 两个报文的异或m=mm,中间过程有mi=mimi,则,以选择明文攻击为例,差分密码分析:基本思想,通过分析明文对的差值对密文对的差值影响来恢复某些密钥比特未破译16轮DES破译轮数低的DES很有效利用差分攻击来破译DES必须要收集到247个明文及其相对应的密文,从而使计算复杂度从暴力破解的256显著地下降到了2478 rounds: 214 chosen plaintexts 12 rounds: 231 chosen plaintexts 16 rounds: 247 chosen plainte

9、xts推广方法:截断差分密码分析、高阶差分密码分析、不可能差分密码分析等,差分密码分析:攻击DES,或者是在某个集合中,通过多组明密文对即可恢复出密钥,首先说明: 1. 对于DES的分析,可忽略初始置换IP和IP-1。 2. 对DES限制到n轮(n=16)。 3. 以L0R0为明文,且以LnRn作为n轮DES的密文。 4. 对两个明文L0R0和L0*R0*,规定它们的异或值为L0R0 =L0R0 L0*R0*,整个讨论都使用撇号 ( )表示两个比特串的异或值。 定义1:设Sj是一个特定的S盒(1=j=8),考虑长度为6的比特串的一个有序对(Bj,Bj*),我们说Sj的输入异或是Bj Bj*,

10、输出异或是Sj(Bj) Sj(Bj*) 注:输入异或是长度为6的比特串,输出异或是长度为4的比特串。,定义2:对任何一个Bj(Z2)6= a0,a1,a2,a3,a4,a5|aj 0,1,定义集合(Bj)是由输入异或为Bj的有序对(Bj,Bj*)组成。 注:1*. 对比特串Bj来说,集合 (Bj)包含26=64个有序对元素。有 (Bj)=(Bj,Bj Bj)| Bj (Z2)6 2*. 对 (Bj)中的每一对,我们能计算出Sj的输出异或,同时用表列出结果的分布。 有64个输入异或,它们经Sj的输出分布在24=16种可能值之中,这些分布的非均匀性,就是攻击DES的基础。,3*. 表示一个S盒的所

11、有可能对的输入异或和输出异或分布的表称为该S盒的差分分布表。 例子1。若考虑第一个S盒S1,输入异或为B1=110100, 那么: (B1)= (110100)=(000000,110100), (000001, 110101), ., (111111, 001011) 对集合 (B1)中的每一对,计算S1盒的输出异或。 例如 S1(000000)=E16=1110 S1(110100)=916=1001 所以(000000,110100)的输出异或是0111。 计算 (B1)= (110100)= (34x)中所有64对的输出异或,得输出异或分布表:,+,0个 8个 16个 6个 2个 0个

12、 0个 12个,1000 1001 1010 1011 1100 1101 1110 1111,6个 0个 0个 0个 0个 8个 0个 6个,0000 0001 0010 0011 0100 0101 0110 0111 表一 注意!16个可能输出异或中,仅有8种出现。它们的分布是不均匀的。 为描述这类分布如何产生的,先表述一些进一步的概念。,表二,定义3:对长度为6的比特串Bj和长度为4的比特串Cj (1=j=8), 定义 INj(Bj,Cj)=Bj(Z2)6|Sj(Bj) Sj(Bj Bj)=Cj Nj(Bj,Cj)=|INj(Bj,Cj)| 注:1*. 这里Nj(Bj,Cj)用来表示输

13、入对异或值为Bj的数目,这些输入对经过特定S盒的Sj输出异或值均为Cj。 2*.例子1中的输出异或分布表表示N1(110100,C1)(其中C1 (Z2)4),表示对S盒S1来说,它的输入异或为(110100)且相应的输出异或为C1的输入对数目分布情况。 3*. 集合IN1(110100,C1)将输入异或为(110100)的所有2*中的数目列举出来,见下页:,表三,考虑一般的情况:对于DES的8个S盒的每一个盒有64种可能的输入异或,于是可算出有512个分布。 回忆DES:知在第i轮中S盒的输入为B=E J,其中E=E(Ri-1)是Ri-1的扩展,J=Ki是由第i轮的密钥比特组成。 现在对所有

14、8个S盒的输入异或计算如下: B =B B*=(E J) (E* J)= E E*=E 由此可见,输入异或不依赖于密钥比特J. 这也说明E=B 将B,B*,E,E*和J,J*均写成8个6比特串的并: B=B1B2B3B4B5B6B7B8 ;B*=B*1B*2B*3B*4B*5B*6B*7B*8 E=E1E2E3E4E5E6E7E8; E*=E*1E*2E*3E*4E*5E*6E*7E*8 J=J1J2J3J4J5J6J7J8 ; J*=J*1J*2J*3J*4J*5J*6J*7J*8 假设我们知道Ej和Ej*的值(对某一个j,1= j=8)和Sj的输出异或值Cj =Sj(Bj) Sj(Bj*)

15、, 那么必有 Ej Jj=BjINj(Bj ,Cj )=INj(Ej ,Cj ), Bj =Ej =Ej Ej*,我们的目的是要破译密钥J的部分比特串Jj。定义测试集合Testj 定义4(Testj):设Ej和Ej*是长度为6的比特串,Cj是长度为4的比特串,定义 Testj(Ej,Ej*,Cj)=Bj Ej =Jj |BjINj(Ej,Cj) 这里Bj Ej 是Jj的形式,Ej是固定的,Ej=Bj =Ej Ej* 我们有 定理1:假设Ej和Ej*是S盒Sj的两个输入,Sj的输出异或为Cj ,记Ej =Ej Ej* ,那么密钥比特Jj出现在集合Testj(Ej,Ej*,Cj )之中。 注:在集

16、合Testj(Ej,Ej*,Cj )中, Jj的正确值一定是Nj(Ej ,Cj )or Nj(Bj ,Cj )个可能值中的一个。,例子2:假设E1=000001,E1*=110101和C1 =1101,因为N1(110100,1101)=8,(由表一or表二),可知集合Test1(000001,110101,1101)中,刚好有8个比特串: 可从表三中得到: IN1(110100,1101)=000110,010000,010110,011100,100010,100100,101000,110010 分别计算它们与E1=000001的异或得: Test1(000001,110101,1101

17、)=000111,010001,0101111, 011101,100011,100101,101001,110011 如果有两个这样的三元组E1,E1*,C1 ,那么就可得到J1中密钥比特可能值的第2个集合Test1(2)(E1,E1*,C1)。易见密钥比特JjTest1Test1 (2) ! 自然这样的三元组如果更多些,定出Jj是肯定的。关于这方面的计算,可想出若干技巧。,攻击3轮DES,Li=Ri-1 Ri=Li-1 f(Ri-1,Ki),R1=L0 f(R0,K1),R2=L1 f(R1,K2),R3=L2 f(R2,K3),DES的F函数,输入32比特,E,48bits E1|E2|

18、E3|E4|E5|E6|E7|E8,子密钥 J1|J2|J3|J4|J5|J6|J7|J8,+,B,B1 B2 B3 B4 B5 B6 B7 B8,S1,S2,S3,S4,S5,S6,S7,S8,C1 C2 C3 C4 C5 C6 C7 C8,P,Output(32bits),我们对3轮作选择明文攻击。用明文对和相应的密文对开始我们的分析: 明文对为:L0R0; L0*R0* 密文对为:L3R3; L3*R3*。有表达式: R3=L2 f(R2,K3)=R1 f(R2,K3) =L0 f(R0,K1) f(R2,K3) R3*可用类似的方法得到: R3*=L0* f(R0*,K1) f(R2*

19、,K3), 于是有 R3=L0 f(R0,K1) f(R0*,K1) f(R2,K3) f(R2*,K3) 假设选择了明文,使R0=R0*,此时R0=000 则f(R0,K)=f(R0*,K),所以 R3=L0 f(R2,K3) f(R2*,K3) 由于R3可从两个密文R3,R3*计算出,可知R3和L0已知。有: f(R2,K3) f(R2*,K3)=R3 L0,知f(R2,K3)=P(C) 和f(R2*,K3)=P(C*),其中 C和C*分别表示8个S盒的两个输出。而P是固定的,为公开已知的置换,因此 P(C) P(C*)=P(C C*)=R3 L0,由此可知 C=C C*=P-1(R3 L

20、0).为3轮中8个S盒的两个输出异或。 另外,R2=L3和R2*=L3*是已知的(它们是密文的一部分),因此,可用公开已知的扩展函数E计算 E=E(R2)=E(L3)和E*=E(R2*)=E(L3*) 对第三轮说来,它们是S盒的输入。于是可由E,E*和C。象前面的例子那样对J1,J2,J3,J4,J5,J6,J7,J8中密钥比特可能值,着手构造集合Test1,Test2, Test8。由它们来确定第三轮密钥K3中的48bits。56bits密钥中剩下的8比特可通过穷举28=256种可能来确定。,3轮DES的差分攻击模式: 输入:L0R0,L0*R0*,L3R3和L3*R3*,其中R0=R0*

21、1.计算C =P-1(R3 L0 ) 2.计算E=E(L3)和E* =E(L3*) 3. For j=1 to 8 do 计算Testj(Ej,Ej*,Cj ) 例子3。我们有如下三组明密文对,并有固定的异或值。用相同的密钥进行加密。为简单用16进制表示. 明文 密文748502CD38451097 03C70306D8A09F10 38747564 38451097 78560A0960E6D4CB 48691102 6ACDFF31 45FA28BE5ADC730 375BD31F6ACDFF31 134F7915AC253457 357418DA013FEC86 D8A31B2F28BB

22、C5CF 12549847 013FEC86 0F317AC2B23CB944,对第一组,可计算S盒的输入(对第三轮),它们是 E=E(L3)=0000000001111110000011101 00000000110100000001100 E*=E(L3*)=10111111000000101010110000 0001010100000001010010 还可算出S盒的输出异或为: C=C C*=P-1(R3 L0 ) =10010110010111010101101100111 对第二组,第二组给出相同的计算,结果(略)。 我们给出八个计数器阵列,每个阵列为16*4。这样按书写方式排有

23、64个位置:0,1,2,63。在第一组中,我们有E1 =101111和C1 =1001,集合IN1(101111,1001)=000000,000111,101000,101111,因为E1=000000,E1*=101111,有J1Test1(E1,E1* , C1 )=Test1(000000,101111,1001) = 000000, 000111,101000,101111 将其中6bits串用2进制数表示成对应J1阵列中的位置数0,7,40,47对应于000000,000111,101000,101111, 相当于在阵列表的空位的相应位置增值1 J1,对三组算得的三个集合Test1

24、(1),Test1(2),Test1(3)。它们中的元素对应的数增值J1位置处的1个单位数。 于是算得J1=47=101111,类似地方法定出J2=000101,J3=010011,J4=0000000,J5=011000,J6=000111,J7=000111,J8=110001 注:1*.差分攻击技术还可用于6轮DES,对8轮的DES需214个组选择明文。现在对16轮DES也是相当有效的。见:。 2*. 对其它体制的攻击,例Feal,LOKI,REDOC-II,也是有效的。,是1993年提出的另一种统计攻击,基于找到DES中进行变换的线性近似,可以在有247个已知明文的情况下破译DES密钥

25、基本思想 一种已知明文攻击方法 基本思想是通过寻找一个给定密码算法的有效线性近似表达式来破译密码算法。 可用247个已知明文破译16轮的DES 某些情况下还能够进行唯密文攻击,方法三:线性密码分析Linear Cryptanalysis,差分密码分析、线性密码分析技术改善了破译速度,降低了破译计算复杂度,但仍然不够理想新一代密码分析技术:基于物理特性的分析技术 电压分析技术 电磁辐射分析技术 时间分析技术 高阶差分分析技术 汉明差分分析技术 例子:智能卡加密的能量分析、定时攻击:利用半导体逻辑电路和密码器件的性能特征,通过检测器件的电子活动,运用先进的物理统计方法确定器件上的秘密信息,如密钥和

26、个人身份信息等,方法四:边界信道攻击,能量分析,Have access to power supply?,Power Analysis,Difference caused by jump instruction,参考书籍:分组密码的攻击方法与实例分析,李超,科学出版社,2010.5,在公钥密码体制中,攻击者拥有公钥,可以随便选择明文进行加密,攻击者还有机会获得密文,而且还可能利用各种途径来获得解密,为此,公钥密码体制应该不会泄露其他密文的的明文信息,这就要求该密码体制能抗选择密文攻击抗选择密文攻击密码体制是一种安全性很高的体制。现在它已是被密码学家们普遍接受的概念,研究表明,利用抗选择密文攻击

27、密码体制,可以设计许多安全强度很高的重要的密码协议 密钥传输,密钥交换,公平交换协议等等Bellare和Rogaway提出的OAEP(1994)体制就成为SET协议的新的加密标准 抗选择密文攻击是当今公钥加密侯选标准的最重要的要求之一,2004年的最新的几个候选标准的原型就是几个重要的抗选择密文攻击公钥加密密码方案,公钥密码算法分析,二公钥密码体制按照可能的攻击目标,可以分为: 单向性(OW)安全:由密文不能恢复相应的明文不可区分性(IND)安全:对已知给定的的两个明文,加密者随机的选择其中一个进行加密,攻击者无法从密文中知道是对哪个明文的加密非延展性(NM)安全:攻击者无法构造与已给密文相关

28、的新密文以上安全性概念依次加强:NM比IND强,IND比OW强,不可区分性(IND),Attacker,Challenger,Attacker wins if b=b,按照可能的攻击模型可分为:选择明文(CPA)攻击:攻击者可以先适应性选择明文,获得相应的密文非适应性选择密文(CCA1)攻击:攻击者除了可以适应性选择明文攻击外,在给定Challenge密文前,还可以选择密文获得相应的解密适应性选择密文(CCA2)攻击:攻击者的唯一限制就是不可以直接用Challenge密文获得相应的明文,但还可以在给定Challenge密文后,选择密文获得相应的解密同时考虑攻击目标和攻击模型,可以获得不同的安全

29、,其中最重要的是IND-CCA2和NM-CCA2安全,而二者被证明是等价的,所以加密中通常所说的选择密文安全是指IND-CCA2安全,方法一:强力攻击(密钥空间穷搜索),不可能,密钥长,以RSA为例:至少1024比特64位密钥,有效密钥长度为56-bit 密钥有256 = 72,057,584,037,927,936 7.2亿亿之多 那么1024呢?2048?强力搜索( brute force search ) 到21世纪的今天也非常困难,方法二:加密方式弱点攻击,仍然以RSA为例 RSA 直接明文加密方式 public key: (N,e) Encrypt: C = Me (mod N) p

30、rivate key: d Decrypt: Cd = M (mod N)(M ZN* ) 不安全的加密模式- RSA陷门置换不再成为加密系统- 不满足安全的基本定义,RSA 直接明文加密方式的简单攻击,Session-key K :64 bits. View K 0,264 中间窃听者:C = Ke (mod N) . 假设 K = K1K2 where K1, K2 234 . (prob. 20%) Then: C/K1e = K2e (mod N) 构建表格: C/1e, C/2e, C/3e, , C/234e . time: 234For K2 = 0, 234 test if K

31、2e is in table. time: 23434 攻击复杂度: 240 264,Web Browser,Web Server,SERVER HELLO (e,N),d,Random session-key K,通用 RSA 加密方式,不再直接对明文进行加密 RSA in practice:问题: 如何进行预处理? Can we argue about security of resulting system?,msg,Preprocessing,ciphertext,RSA,PKCS1 V1.5,PKCS1 mode 2: (加密模式)预处理后的结果进行RSA加密 在web server

32、s and browsers中广泛使用 安全性分析不够全面,针对PKCS1的攻击,Bleichenbacher 98. 选择密文攻击(Chosen-ciphertext attack) PKCS1 used in SSL:attacker can test if 16 MSBs of plaintext = 02. 攻击: 用下述方法进行密文C的解密: 选取 r ZN 计算 C = reC = (r PKCS1(M)e. 将 C发送至 web server 并且等待返回 Bleichenbacher, D. “Chosen Ciphertext Attacks Against Protocol

33、s Based on the RSA Encryption Standard PKCS#1“, in H. Krawczyk (editor), Advances in Cryptology - CRYPTO 98 Proceedings, Lecture Notes in Computer Science 1462 (1998), Springer-Verlag, pp. 1-12,Attacker,Web Server,d,是否为 PKCS1?,C,Yes: continue,No: error,PKCS1 V2.0 - OAEP,加入了新的函数功能: OAEP (BR94)结论: RSA

34、 为有效的 trap-door permutation 如果H,G可以看做随机预言机,则 OAEP 符合 CCS 实际使用中: 采用SHA-1 or MD5 作为 H 和 G.,Check pad on decryption. Reject CT if invalid.,0,1n-1,改进的一些OAEP,OAEP+: (Shoup01) 对任意陷门函数F,若,H,G,W为随机预言机,则F-OAEP+ 为CCSSAEP+: (B01)若H,W为随机预言机,则RSA-SAEP+ 为CCS,方法三:弱参数攻击,以RSA为例(一)共模攻击:整个系统使用相同的,互素的e1和e2。y1=xe1 y2=xe

35、2则攻击者知道e1,e2,n,y1,y2根据扩展的Euclid除法:存在s,t 使t*e1+s*e2=1 (注意是相等)y1t*y2s=x mod n,方法三:弱参数攻击,以RSA为例(二) 低加密指数攻击:使用相同较小的eY1=x3 mod n1Y2=x3 mod n2Y3=x3 mod n3 根据同余性质=Y=x3 mod (n1*n2*n3) n1,n2,n3一般互素,x3n1*n2*n3,则不用取模运算,直接计算x为Y开三次方 EDI国际标准中规定 e2161,ISO/IEC9796、X509中甚至允许取e3, e为小整数,方法四:攻击所基于的困难问题离散对数问题(ELGamal) 大

36、整数分解问题(RSA) 二次剩余问题(RABIN) 椭圆曲线离散对数问题,以RSA为例:整数分解,数学中,整数分解(质因子分解)问题是指:给出一个正整数,将其写成几个素因子的乘积。例如,给出45这个数,它可以分解成32 5。根据算术基本定理,这样的分解结果应该是唯一的。这个问题在代数学、密码学、计算复杂性理论和量子计算机等领域中均有重要意义。,N=pq,大整数分解问题:给出两个大素数,很容易就能将它们两个相乘。反过来,给出它们的乘积,找出它们的素因子是困难的(计算上可不行)。这就是许多现代密码系统的关键所在。如果能够找到解决整数分解问题的快速方法,几个重要的密码系统将会被攻破,包括RSA公钥算

37、法和Blum Blum Shub随机数发生器。尽管快速分解是攻破这些系统的方法之一,仍然会有其它的不涉及到分解的方法。所以情形完全可能变成这样:整数分解问题仍然是非常困难,这些密码系统却是能够很快攻破。有的密码系统则能提供更强的保证:如果这些密码系统被快速破解(即能够以多项式时间复杂度破解),则可以利用破解这些系统的算法来快速地(以多项式时间复杂度)分解整数。这样的密码系统包括 Rabin密码系统(RSA的一个变体),以及 Blum Blum Shub 随机数发生器。,部分研究成果,从目前的资料分析,分解大整数的方法有 试除法; 费马方法; 蒙特卡罗方法; 连分数法(勒让德方法)(CFRAC)

38、 ; 发现于70年代。 二次筛法(QS); 1981年由卡尔帕梅让斯发现。 p1方法;Pollard在1974年发现 椭圆曲线分解(ECM);1987年由H.Lenstra发现 数域筛法(NFS);1993年由Car Pomerance 发现. 量子计算机,美国Peter Shor在1994年提出用量子计算机分解400位十进制的整数需要不到一年的时间,试除法,无论素数判定还是因子分解,试除法(Trial Division)都是首先要进行的步骤。在试除的策略上有两种不同的选择:- 用足够大的空间来储存试除用的素数因子- 不耗费大量空间来储存所有需要的素因子,这时需要 一个快速生成素数的子程序,P

39、ollard p-1算法,二次筛法(QS),用二次筛选法对一个数字 n 进行因数分解,就是要找到两个数字 x 和 y ,它们模 n 之后不相等,并且 x 和 -y 模 n 之后也不相等,但是 x 2 =y 2 (mod n) 。如果找到了这两个数字,那么就可以说 ( x+ y) ( x- y) = 0 (mod n) 。因此 x+ y 和 x- y 就一定与 n 具有相同的非平凡因数。 用二次筛选法进行因数分解有赖于是否能够找到一组数字,这组数的因数可以表示为一些预先选择的素数的乘积。然后用幂向量的形式将这些因数记录下来。一旦具备了足够多的向量,就可以构造一个包含线性依赖关系的集合。用这种线性

40、依赖关系就可以找到两个平方后模 n 相等的数字。 为实现这一目标,二次筛选方法使用了一个素数集合,称作因数基( factor base)。然后,搜索出那些可以完全分解成这个因数基中的素数的数字。如果因数基中有 k 个素数,那么每一个可分解为因数基中素数的数字就存储为一个 k 维的向量,向量 y 中的第 i 个项表示因数基中第 i 个素数在 y 因数分解结果当中的幂。 最后进行筛选操作,找出 f( r) = r 2 - n 的那些值,而这些值因数分解的结果完全包含在这个因数基中。然后像 Dixon 因数分解法中那样应用高斯消除法,找出是某数的完全平方的一组 f( r),数域筛法(NFS),QS

41、与NFS 的主要目标,都是寻找两个整数x与y,使得x2 = y2 (mod N),其中N 是欲分解的大整数。 在选取适当的 “因数基底” (factor base) 之後,QS使用二次多项式来选择足够多的多项式值,可由此因数基底完全分解,再解出对应的线性方程组,得到合适的组合成为完全平方数。 NFS 则必须分别选择整数Z和相应代数整数环Z的基底,并选择大量整数对(a, b),使得a bm与a b 皆为对应基底的完全分解。此后在对方程组求解,获得由其中一部分 (a, b) 所组成的集合S,同时构成两个不同代数结果中的完全平方数。,尽管数字域筛选(NFS)在启发式分解方面比 QS 快,而 QS 依

42、然是分解 50 至 110 位数字时的首选方法。 从本质上讲,这两种方法都是基于同样的思想,如因数基、平滑、筛选以及查找依赖关系等概念。 NFS 是从 QS 所使用的技术发展出来的,而 QS 又对以前的一些算法做了进一步的发展。大多数现代的因数分解技术都将所有这些技术组合起来,以期达到最优的性能。,如果一个大的,有n个二进制数位长度的数是两个差不多大小相等的素数的乘积,现在还没有很好的算法来以多项式时间复杂度分解它。这就意味着没有已知算法可以在O(nk)(k为常数)的时间内分解它。但是现在的算法是比O (en)快的。换句话说,现在我们已知最好的算法比指数数量级时间要快,比多项式数量级时间要慢。

43、已知最好的渐近线运行时间是普通数域筛选法(GNFS)。对于平常的计算机,GNFS是我们已知最好的对付n个二进制数位大素数的方法。不过,对于量子计算机, Peter Shor 在1994年发现了一种可以用多项式时间来解决这个问题的算法。如果大的量子计算机建立起来,这将对密码学有很重要的意义。这个算法在时间上只需要O(n3),空间只要O(n)就可以了。 构造出这样一个算法只需要2n量子位。2001年,第一个7量子位的量子计算机第一个运行这个算法,它分解的数是15。,实际工作,最早成功分解RSA-512 的工作由1999 完成,共有Arjen K. Lenstra等17 位国际密码学者参与。2005

44、年,作为公共研究一部分的有663个二进制数位之长的RSA-200已经被一种一般用途的方法所分解。2010年,768-bit的RSA大整数被攻破。eprint.iacr.org/2010/006.pdf2015?,1024-bit的RSA被攻破?,方法五:边界信道攻击定时攻击- 利用测定RSA解密进行的时间来估计解密指数d,然后再精确出d的值 故障攻击 功耗分析等,协议分析攻击是指利用密码协议(认证、密钥交换)设计过程所存在的漏洞进行分析攻击的方法中间人攻击重放攻击窃听攻击等,密码协议分析,方法一:中间人攻击(Diffie-Hellman),Assumption 1 The Discrete L

45、ogarithm (DL) assumption for group G states that it is hard to compute x given generator g and random group element gx. Assumption 2 The (Computational) Diffie-Hellman (DH) assumption for group G states that it is hard to compute gxy given generator g and random group elements gx, gy. Assumption 3 T

46、he Decision Diffie-Hellman (DDH) assumption for group G states that it is hard to decide whether zxy mod n given generator g and random group elements gx, gy, gz.,Diffie-Hellman 密钥交换协议,Suppose two parties, A and B, have agreed upon a group Gn = , where we require n to be prime. The Diffie-Hellman ke

47、y exchange protocol enables parties A and B to arrive at a shared key K by exchanging messages over a public channel. Key K remains unknown to any eavesdropper. Party A picks a value xA Zn uniformly at random, and sends yA = gxA to party B. Similarly, party B picks a value xB Zn uniformly at random,

48、 and sends yB = gxB to party A. Upon receipt of yB, party A computes key KAB yBxA . Similarly, party B computes key KBA yAxB . Clearly, K = KAB = KBA is a shared key for A and B,Passive Attacks,A passive attacker (or eavesdropper) learns the values yA = gxA and yB = gxB. Under the DL assumption it i

49、s infeasible to determine xA and xB from yA and yB. However, this does not guarantee that the value of K = yAxB cannot be determined given just yA and yB. To exclude this possibility we need the DH assumption. A stronger assumption(DDH假设) is needed to ensure that an eavesdropper does not learn any information whatsoever on K. In general, an eavesdropper may learn some partial information on K, while full recovery of K is infeasible.,

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

当前位置:首页 > 企业管理 > 管理学资料

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


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

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

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