现代密码学(中山大学)Lecture05
- 格式:ppt
- 大小:549.00 KB
- 文档页数:40
现代密码学第五十五讲后量子密码学信息与软件工程学院第五十七讲后量子密码学量子计算对密码学的影响后量子密码学的研究方向量子计算对密码学的威胁•贝尔实验室,Grove算法,1996年•针对所有密码(包括对称密码)的通用的搜索破译算法•所有密码的安全参数要相应增大•贝尔实验室,Shor算法,1994年•多项式时间求解数论困难问题如大整数分解问题、求解离散对数问题等•RSA、ElGamal、ECC、DSS等公钥密码体制都不再安全量子计算对密码学的威胁(续)密码算法类型目的受大规模量子计算机的影响AES对称密钥加密密钥规模增大SHA-2, SHA-3Hash函数完整性输出长度增加RSA公钥密码加密,签名,密钥建立不再安全ECDSA,ECDH公钥密码签名,密钥交换不再安全DSA公钥密码签名不再安全量子计算机的研究进展•2001年,科学家在具有15个量子位的核磁共振量子计算机上成功利用Shor算法对15进行因式分解。
•2007年2月,加拿大D-Wave系统公司宣布研制成功16位量子比特的超导量子计算机,但其作用仅限于解决一些最优化问题,与科学界公认的能运行各种量子算法的量子计算机仍有较大区别。
•2009年11月15日,世界首台可编程的通用量子计算机正式在美国诞生。
同年,英国布里斯托尔大学的科学家研制出基于量子光学的量子计算机芯片,可运行Shor算法。
•2010年3月31日,德国于利希研究中心发表公报:德国超级计算机成功模拟42位量子计算机。
•2011年5月11日, 加拿大的D-Wave System Inc. 发布了一款号称“全球第一款商用型量子计算机”的计算设备“D-Wave One”。
量子计算机的研究进展(续)•2011年9月,科学家证明量子计算机可以用冯·诺依曼架构来实现。
同年11月,科学家使用4个量子位成功对143进行因式分解。
•2012年2月,IBM声称在超导集成电路实现的量子计算方面取得数项突破性进展。
1流密码(三)《现代密码学》第五讲上讲内容回顾Estream推荐软件算法 HC-256/128 算法Rabbit算法Salsa20算法SOSEMANUK3本章主要内容Estream推荐硬件算法Grain-128 算法MICKEY-128Trivium软件算法Grain-128Grain-128Grain-128的设计者:Martin Hell (Sweden), Thomas Johansson (Sweden) 和Willi Meier (Switzerland)Grain Version 1支持80比特长的密钥.对于穷举搜索攻击,目前计算机的能力不可破解。
但是,有可能利用“时间-存储-数据”攻击,以O(2k/2)的复杂度实施攻击,其中k为密钥长度。
即攻击者需要搜集约2k/2个并用不同的密钥加密的明文,以找出其中的一个密钥。
显然80比特的密钥太短。
Grain-128在Grain Version 1的基础上,弥补了密钥短的缺点,它支持128比特的密钥,输入变量为96比特。
Grain-128使用了一个线性反馈移位寄存器(LFSR)来确保很好的统计特性和密钥流周期的下限值。
为了引入非线性特性,它使用了一个非线性反馈移位寄存器(NFSR)和非线性滤波器(输出函数)。
Grain-128LFSR 的寄存器内容记为s i ,s i+1,……,s i+127 LFSR 的反馈多项式表示为f(x),是度数为128的本原多项式。
它定义为:为了消除可能的歧义,定义LFSR 对应的修正(更新)函数:128121905847321)(x x x x x x x f ++++++=968170387128+++++++++++=i i i i i i i s s s s s s sNFSR 的寄存器内容记为b i ,b i+1,…,b i+127 NFSR 的非线性反馈多项式g (x )是一个线性函数和一个非线性函数的和: 为消除歧义,NFSR 的修正函数定义为:11711511111088801016967631256160441281027237321)(x x x x x x x x x x xx x x x x x x x x g ++++++++++++=84686561484059271817131167396915626128+++++++++++++++++++++++++++++++=i i i i i i i i i i i i i i i i i i i i i b b b b b b b b b b b b b b b b b b b s b密钥的比特位定义为k i,0≤i≤127,输入自变量的比特位定义为IV i,0≤i≤95。
(完整版)北邮版《现代密码学》习题答案《现代密码学习题》答案第一章1、1949年,(A )发表题为《保密系统的通信理论》的文章,为密码系统建立了理论基础,从此密码学成了一门科学。
A、ShannonB、DiffieC、HellmanD、Shamir2、一个密码系统至少由明文、密文、加密算法、解密算法和密钥5部分组成,而其安全性是由( D)决定的。
A、加密算法B、解密算法C、加解密算法D、密钥3、计算和估计出破译密码系统的计算量下限,利用已有的最好方法破译它的所需要的代价超出了破译者的破译能力(如时间、空间、资金等资源),那么该密码系统的安全性是( B )。
A无条件安全B计算安全C可证明安全D实际安全4、根据密码分析者所掌握的分析资料的不通,密码分析一般可分为4类:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击,其中破译难度最大的是( D )。
A、唯密文攻击B、已知明文攻击C、选择明文攻击D、选择密文攻击5、1976年,和在密码学的新方向一文中提出了公开密钥密码的思想,从而开创了现代密码学的新领域。
6、密码学的发展过程中,两个质的飞跃分别指1949年香农发表的保密系统的通信理论和公钥密码思想。
7、密码学是研究信息寄信息系统安全的科学,密码学又分为密码编码学和密码分析学。
8、一个保密系统一般是明文、密文、密钥、加密算法、解密算法5部分组成的。
9、密码体制是指实现加密和解密功能的密码方案,从使用密钥策略上,可分为对称和非对称。
10、对称密码体制又称为秘密密钥密码体制,它包括分组密码和序列密码。
第二章1、字母频率分析法对(B )算法最有效。
A、置换密码B、单表代换密码C、多表代换密码D、序列密码2、(D)算法抵抗频率分析攻击能力最强,而对已知明文攻击最弱。
A仿射密码B维吉利亚密码C轮转密码D希尔密码3、重合指数法对(C)算法的破解最有效。
A置换密码B单表代换密码C多表代换密码D序列密码4、维吉利亚密码是古典密码体制比较有代表性的一种密码,其密码体制采用的是(C )。
《现代密码学》第五讲流密码(一)上讲内容回顾⏹分组密码定义(分组填充)⏹分组密码的发展历史(Shannon DES AES。
)⏹保密系统的安全性分析及分组密码的攻击(主动/被动唯密文/已知明(密)文/选择明(密)文/自适应选择明(密)文)⏹数据加密标准(DES)算法介绍⏹高级加密标准(AES)算法介绍⏹中国无限局域网标准(SMS4)算法介绍⏹分组密码算法的运行模式本章主要内容⏹流密码(序列密码)的思想起源⏹流密码技术的发展及分类⏹基于移位寄存器的流密码算法⏹其它流密码算法⏹Estream推荐流密码算法⏹软件算法⏹硬件算法密钥流生成器种子密钥明文m1k1c1m2k2c2加密过程密钥流生成器种子密钥密文c1k1m1c2k2m2解密过程⏹设明文为m=m1m2… m i∈GF(2), i>0⏹设密钥为k=k1k2… k i∈GF(2), i>0⏹设密文为c=c1c2… c i∈GF(2), i>0⏹则加密变换为c i=m i+ k i(mod 2) i>0⏹则解密变换为m i=c i+ k i(mod 2) i>0⏹思想起源:20世纪20年代的Vernam 体制,即“一次一密”密码体制。
香农利用信息论证明“一次一密”密码体制在理论上不可破译⏹由有限的种子密钥生成无限长的随机密钥序列⏹流密码研究内容——设计安全高效的伪随机序列发生器密钥流生成、存储和分发困难随机序列计算机无法实现评测标准:线性复杂度高;周期大Golomb伪随机性测试周期为r的0-1序列的随机性公设如下:⏹r是奇数,则0-1序列{si}的一个周期内0的个数比1的个数多一个或少一个;若r是偶数,则0的个数与1的个数相等.⏹在长度为r的周期内,长为1的游程的个数为游程总数的1/2,长为2的游程的个数占游程总数的1/22,…, 长为c的游程的个数占总游程的1/2c.而且对于任意长度,0的游程个数和1的游程个数相等.例:0110111101中,4个游程长度为1,1个游程长度为2,1个游程长度为4异相自相关函数是一个常数.设一个周期为r的序列a1, a2,…, a r, a r+1, a r+2,…,将序列平移T位得到另外一个序列a T, a T+1,… a r+T, a r+T+1,…,若a i= a i+T, 则称对应第i位相等。
1流密码(二)《现代密码学》第五讲上讲内容回顾流密码(序列密码)的思想起源 流密码技术的发展及分类基于移位寄存器的流密码算法 其它流密码算法3本章主要内容Estream推荐软件算法HC-256/128 算法Rabbit算法Salsa20算法SOSEMANUK软件算法HC-256/128HC-256HC-256流密码由Hongjun Wu(大陆旅居新加坡学者)提出。
HC-256的特点是使用两张密表P和Q,每一张都包含1024个32比特元素,因此,算法的硬件速度较慢。
密钥流生成的每一步,都用非线性反馈函数更新表中一个元素,经过2048步两张表所有的元素都将被更新。
每次迭代输出32比特密钥流。
符号定义:+: x + y 表示x + y mod 232, 其中0 ≤x < 232 , 0 ≤y < 232;-: x -y 表示x −y mod 1024;⊕: 逐位异或OR;||: 串联;>> : 右移操作. x >> n 表示x右移n位.<< : 左移操作. x >> n 表示x左移n位.>>>: 右循环移位操作. x >>> n 等于((x >> n) ⊕(x << (32 −n)),其中0 ≤n < 32, 0 ≤x < 232.符号定义:P :含有1024个32-bit元素的表. 表中元素标记为P [i],0 ≤i ≤1023.Q : 含有1024个32-bit元素的表. 表中元素标记为Q [i],0 ≤i ≤1023.K: HC-256的256-bit密钥.I V: HC-256的256-bit初始化向量.s: HC-256正在生成的密钥流.在第i步生成的32-bit输出被标记为s i. 而s = s0||s1||s2|| ···s i|| s i+1||···将256比特密钥和256比特初始变量扩展并装载到P和Q 中, 然后混淆P和Q的内容1. 设K = K0||K1|| ···||K7,IV = IV0||IV1|| ···||IV7 , 其中K i和IV i标记一个32位数. K和IV扩展为矩阵W,W i为其第i个字(0 ≤i ≤2559) :W i= K i0 ≤i ≤7W i= IV i−88 ≤i ≤15W i= f2(W i−2) + W i−7+ f1(W i−15) + W i−16+ i16 ≤i ≤2559HC-2562. 用W更新表P和QP [i] = W i+5120 ≤i ≤1023Q[i] = W i+15360 ≤i ≤1023 3. 运行4096步密钥流生成操作(不输出)i = 0; //不断重复直到足够的密钥流生成{j = i mod 1024;if (i mod 2048) < 1024 //将输出字符的序号以2048个为一组{ //在组内序号小于1024时P [j] = P [j] + P [j -10] + g1 ( P [j -3], P [j -1023] );si= h1( P [j -12] ) ⊕P [j]; }else{ //在组内序号大于1024时Q[j] = Q[j] + Q[j-10] + g2( Q[j-3], Q[j-1023] );si= h2 ( Q[j-12] ) ⊕Q[j];}end-ifi = i + 1;}end-repeatHC-256密钥流生成六个函数:f 1(x ) = (x >>> 7) ⊕(x >>> 18) ⊕(x >> 3)f 2(x ) = (x >>> 17) ⊕(x >>> 19) ⊕(x >> 10)g 1(x, y ) = ((x >>>10) ⊕(y >>>23)) + Q [(x ⊕y ) mod 1024]g 2(x, y ) = ((x >>>10) ⊕(y >>>23)) + P [(x ⊕y ) mod 1024]h 1 (x ) = Q [x 0] + Q [256 + x 1] + Q [512 + x 2] + Q [768 + x 3]h 2 (x ) = P [x 0] + P [256 + x 1] + P [512 + x 2] + P [768 + x 3]其中x = x 3||x 2||x 1||x 0, x 为32-bit , x 0, x 1, x 2和x 3为4个字节. x 3 和x 0分别标记x 中最高字节和最低字节。