现代密码学第五讲(一):流密码
- 格式:pps
- 大小:1008.50 KB
- 文档页数:48
一、古典密码(1,2,4)解:设解密变换为m=D(c)≡a*c+b (mod 26)由题目可知密文ed 解密后为if,即有:D(e)=i :8≡4a+b (mod 26) D(d)=f :5≡3a+b (mod 26) 由上述两式,可求得a=3,b=22。
因此,解密变换为m=D(c)≡3c+22 (mod 26)密文用数字表示为:c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7] 则明文为m=3*c+22 (mod 26)=[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17]= ifyoucanreadthisthankateahcer4. 设多表代换密码C i≡ AM i + B (mod 26) 中,A是2×2 矩阵,B是0 矩阵,又知明文“dont”被加密为“elni”,求矩阵A。
解:dont = (3,14,13,19) => elni = (4,11,13,8)二、流密码 (1,3,4)1. 3 级 线 性 反 馈 移 位 寄 存 器 在 c 3=1 时 可 有 4 种 线 性 反 馈 函 数 , 设 其 初 始 状 态 为 (a 1,a 2,a 3)=(1,0,1),求各线性反馈函数的输出序列及周期。
解:设反馈函数为 f(a 1,a 2,a 3) = a 1⊕c 2a 2⊕c 1a 3当 c1=0,c2=0 时,f(a 1,a 2,a 3) = a 1,输出序列为 101101…,周期为 3。
当 c1=0,c2=1 时,f(a 1,a 2,a 3) = a 1⊕a 2,输出序列如下 10111001011100…,周期为 7。
当 c1=1,c2=0 时,f(a 1,a 2,a 3) = a 1⊕a 3,输出序列为 10100111010011…,周期为 7。
现代密码的主要分类密码是信息安全领域中最基本的保护手段之一。
在现代密码学中,密码被分为多个分类,每种分类都具有不同的特点和应用场景。
下面将介绍现代密码的主要分类。
1. 对称密码对称密码也被称为私钥密码,是最常见的密码类型之一。
在对称密码中,加密和解密使用相同的密钥。
这意味着发送方和接收方需要共享同一个密钥,才能进行加密和解密操作。
对称密码的优势在于加密解密速度快,但其密钥管理与分发会带来一定的安全风险。
常见的对称密码算法有DES、AES和3DES等。
2. 公钥密码公钥密码也被称为非对称密码,是另一种常见的密码类型。
在公钥密码系统中,加密和解密使用不同的密钥。
发送方使用接收方的公钥进行加密,而接收方使用自己的私钥进行解密。
公钥密码的优势在于密钥管理方便,不需要事先共享密钥。
常见的公钥密码算法有RSA、ElGamal和ECC等。
3. 哈希算法哈希算法是一种将任意长度的数据转换为固定长度摘要的密码技术。
它常被用于验证数据的完整性和一致性。
哈希算法的特点是不可逆,即无法通过摘要反推原始数据。
常见的哈希算法有MD5、SHA-1和SHA-256等。
4. 消息认证码(MAC)消息认证码是一种基于密钥的密码操作,用于验证消息的完整性和来源。
它通过对消息进行加密和生成消息验证码来实现身份验证和防篡改功能。
常见的消息认证码算法有HMAC和CMAC等。
5. 数字签名数字签名是一种通过非对称密码算法,为文档或数据附加一个唯一的标记来验证发送方身份和消息完整性的技术。
数字签名可以防止篡改和抵赖,并且不需要发送方和接收方共享密钥。
常见的数字签名算法有RSA和DSA等。
6. 流加密和分组加密流加密和分组加密是对称密码算法的两种不同方式。
在流加密中,数据按位或按字节加密。
流加密的特点在于加密和解密速度快,适用于实时数据传输。
而分组加密将数据分成固定长度的块进行加密处理。
常见的分组加密算法有DES和AES 等。
7. 转身密码置换密码是一种基于置换的加密技术,通过改变数据中的位置或次序来加密数据。
现代密码学第五讲(一):流密码《现代密码学》第五讲流密码(一)上讲内容回顾分组密码定义(分组填充)分组密码的发展历史(Shannon DES AES。
)保密系统的安全性分析及分组密码的攻击(主动/被动唯密文/已知明(密)文/选择明(密)文/自适应选择明(密)文)数据加密标准(DES)算法介绍高级加密标准(AES)算法介绍中国无限局域网标准(SMS4)算法介绍?分组密码算法的运行模式本章主要内容流密码(序列密码)的思想起源?流密码技术的发展及分类基于移位寄存器的流密码算法?其它流密码算法Estream推荐流密码算法软件算法硬件算法密钥流生成器种子密钥明文m1k1c1m2k2c2加密过程密钥流生成器种子密钥密文c1k1m1c2k2m2解密过程设明文为m=m1m2… m i∈GF(2), i>0?设密钥为k=k1k2… ki∈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位相等。
第2章流密码基本概念设(,,,,)是一个密码体制,其中:明文消息空间,:密文消息空间,:密钥空间,:加密规则集合,解密规则集合。
将明文消息m按一定的规则进行编码后可表示为明文串:m=m0m1m2…,mi∈流密码加解密明文消息x方式是首先利用密钥产生一个密钥流序列:k=k0k1k2…然后对明文串m=m0m1m2…施以加密变换进行加密,得到密文序列:c=E k0(m0)E k1(m1)E k2(m2)…=c0c1c2…,Ez i ∈,ci∈,m i∈,k i∈解密时,对密文序列c0c1c2…施以解密变换获得明文序列m=D k0(c0)D k1(c1)D k2(c2)…=m0m1m2…,Dz i ∈,ci∈,m i∈,k i∈密钥流序列由密钥流发生器f产生:ki =f(k,σi),这里σi是记忆元件(存储器)在时刻i的状态(见教材有限状态自动机说明)。
同步密码流密码分为同步与自同步两种,在同步密码中ki =f(k,σi)与明文无关,因此,密文c i=E Zi(m i)不依赖明文,同步流密码模型如教材p13图2-2所示。
例考察密码体制(,,,,),其中明文消息空间,密文消息空间和密钥空间都是由26个英文字母组成,加解密算法使用模26整数环26上的加法,假设对明文:I am glad to see you有一密钥流序列(视为由密钥生成)是sgdwkqbmdzhfpqx。
现对上述明文将加密变换进行加密(不考虑空格)。
加密变换/算法:c i=Eki (mi)=(mi+k i)mod26y=E s(I)E g(a)E d(m)…E m(t)E d(o)E Z(s)…E q(o)E x(s)Es(I)(=8+18)=26mod26=0→AEg(a)(=0+6)=6mod26=6→GEd(m)(=12+3)=15mod26=15→P…Em(t)(=19+12)=31mod26=5→FEd(o)(=14+3)=17mod26=17→REZ(s)(=18+25)=43mod26=17→R…Eq(o)(=14+16)=30mod26=4→EEx(s)(=20+23)=43mod26=17→R因此,加密的密文序列为:AGPB…FRR…ER。
古典密码和流密码的原理及应用1. 引言1.1 古典密码和流密码的原理及应用古典密码和流密码是密码学领域中两种基本的密码体制。
古典密码是一种基于替换或移位的加密方法,其原理是通过替换明文中的字母或移动字母的位置来生成密文。
流密码则是一种基于流的加密方法,其原理是通过不断产生伪随机密钥流并与明文进行异或运算来生成密文。
古典密码的应用可以追溯到古代,如凯撒密码和维吉尼亚密码等。
这些密码体制在军事情报传递和个人通信中起到了重要作用。
而流密码则在现代密码学中得到了广泛应用,例如在无线通信、网络安全和数据加密领域。
古典密码和流密码在现代密码学中都扮演着重要的角色。
古典密码虽然在安全性上存在较大的局限性,但对于理解密码学的基本原理和历史发展仍具有重要意义。
而流密码则由于其高效性和安全性,被广泛应用于现代通信系统和加密协议中。
古典密码和流密码都是密码学中不可或缺的一部分,它们各自的原理和应用为我们提供了深入了解密码学的基础,并在现代密码学中扮演着重要的角色。
在不断发展和完善的密码学领域中,古典密码和流密码仍然具有不可替代的地位。
2. 正文2.1 古典密码的原理古典密码是指使用固定密钥对明文进行加密的一种密码方法,其原理主要包括替换密码和移位密码两种基本形式。
替换密码是通过将明文中的每个字母替换为密钥字母表中对应的字母来加密信息,而移位密码则是通过将明文中的每个字母向后或向前移动固定的位置来实现加密。
这些方法都可以通过简单的数学运算来实现,但由于其固定密钥的特性,容易受到破解攻击。
古典密码的应用主要体现在历史上的军事通信领域,比如凯撒密码就是一种简单的移位密码,被用于古罗马军队的通信中。
古典密码的安全性很差,容易被破解,因此在现代密码学中已经被淘汰。
古典密码的原理虽然简单,但在密码学发展的历程中扮演了重要的角色,为后来更加复杂的密码算法奠定了基础。
通过研究古典密码的原理,人们也更深入地理解了密码学的发展轨迹和演变过程,对于现代密码学的发展具有积极的意义。
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 中最高字节和最低字节。
《现代密码学》第五讲流密码(一)上讲内容回顾⏹分组密码定义(分组填充)⏹分组密码的发展历史(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位相等。
设两个序列相同位的个数为n,不同位的个数为d,则R(T)=(n-d)/r为自相关函数流密码技术的发展及分类⏹序列密码是世界各国的军事和外交等领域中使用的主要密码体制之一⏹2000年1月欧洲启动的NESSIE 工程中,流密码算法的设计与分析也列上了公开征集评测的日程;6个流密码算法(Leviathan 、UIi 一128、BMGL 、SOBER —t32、SOBER —tl 、SNOW )进入了第二阶段评估,但是因为他们都不符合NESSIE 的征集准则而最终全部落选⏹2003年3月,日本政府的密码研究与评估委员会(CRYPTREC )推荐了三个流密码算法:MUGI 、MULTI-S01和RC4-128.⏹ECRYPT 是欧洲FP6下的IST 基金支持的一个为期四年的项目,该项目启动于2004年2月,STVL (Symmetric techniques virtual lab )正在进行流密码算法的公开征集评估活动.征集活动到2005 年4月29 日结束,征集到了34个流密码算法.2007年4月开始进入第三轮评估,16个算法进入第三轮评估./stream/phase3list.html2008年4月8个算法成为推荐算法.2008年8月更新为7个推荐算法.Profile 1 (SW)Profile 2 (HW)CryptMT (CryptMT Version 3)DECIM (DECIM v2 and DECIM-128)Dragon Edon80HC (HC-128 and HC-256)F-FCSR (F-FCSR-H v2 and F-FCSR-16)LEX (LEX-128, LEX-192 and LEX-256)Grain (Grain v1 and Grain-128)NLS (NLSv2, encryption-only)MICKEY (MICKEY 2.0 and MICKEY-128 2.0)Rabbit Moustique Salsa20Pomaranch (Pomaranch Version 3)SOSEMANUK Trivium⏹在同步流密码中,密(明)文符号是独立的,一个错误传输只会影响一个符号,不影响后面的符号。
⏹缺点:一旦接收端和发送端的种子密钥和内部状态不同步,解密就会失败,两者必须立即借助外界手段重新建立同步。
k c ik 密钥流生成器密钥流生成器信道c iz i m iz im iE (z i ,m i )E (z i ,m i )自同步流密码的优点是即使接收端和发送端不同步,只要接收端能连续地正确地接受到n 个密文符号,就能重新建立同步。
因此自同步流密码具有有限的差错传播,且分析较同步流密码的分析困难得多k c ik 密钥流生成器密钥流生成器信道c iz im iz im iE (z i ,m i )E (z i ,m i )流密码技术的发展及分类思考:假设j=n/4,n为分组长度对于DES,n=64, j=16;对AES,n=128,j=32 CFB模式为()流密码?OFB模式为()流密码?CTR模式为()流密码?自同步、同步、同步⏹挪威政府的首席密码学家Ernst Selmer 于1965年提出了移位寄存器理论,它是序列密码中研究随机密钥流的主要数学工具.⏹移位寄存器是指有n 个寄存器(称为n-级移位寄存器)r 1,r 2,…,r n 从右到左排列,每个寄存器中能存放1位二进制数,所有寄存器中的数可以统一向右(或向左)移动1位,称为进动1拍. 即r 1的值(b 1)右移1位后输出,然后r 2的值(b 2)送r 1, r 3的值(b 3)送r 2,……最后,r n 的值(b n )送r n-1.b nr n b n-1r n-1……b 2r 2b 1r 1⏹反馈移位寄存器(feedback shift register,FSR)是由n 位的寄存器和反馈函数(feedback function)组成,如下图所示,n 位的寄存器中的初始值称为移位寄存器的初态.⏹工作原理:移位寄存器中所有位的值右移1位,最右边的一个寄存器移出的值是输出位,最左边一个寄存器的值由反馈函数的输出值填充,此过程称为进动1拍. 反馈函数f 是n 个变元(b 1,b 2,…,b n )的布尔函数.移位寄存器根据需要不断地进动m 拍,便有m 位的输出,形成输出序列a 1,a 2,…,a m .b n r n b n-1r n-1……b 2r 2b 1r 1输出位o i反馈函数f⏹线性反馈移位寄存器LFSR(linear feedback shift register)的反馈函数为线性函数⏹作为密钥流的序列{a i}的周期一定要大否则密钥流的空间太小,利用穷举搜索可以得到密钥流{a i}⏹n级LFSR输出的序列的周期r不依赖于寄存器的初始值,而依赖于特征多项式p(x)定义设n 级LFSR 的输出序列{a i }满足递推关系这种递推关系可用一个一元高次多项式表示,称这个多项式为LFSR 的特征多项式。
n n 11n 21(1).k n k n k k a c a c a c a k ++--+-=⊕⊕⊕≥ 111()1n n n n f x c x c xc x --=++++定义设是上的多项式,使的最小的n 称为的周期或者阶。
例:为上多项式,以它为特征多项式的LFSR 的输出序列周期。
()f x ()f x (2)GF ()|(1)n f x x -432()1f x x x x x =++++(2)GF 5432(1)(1)(1)()(1)x x x x x x f x x -=++++-=-所以f(x)的周期为5()|1,5nf x x n -<解:对应的n 级LFSR 的反馈函数为10001100…f(b 1,b 2,b 3,b 4状态 输出位000111000011000011000011100011100001100b 4b 3b 2b 1)输出序列的周期为5⏹n级LFSR输出的序列的最大周期是2n-1为什么?⏹LFSR的寄存器状态遍历2n-1个非零状态⏹初始状态为全零,则输出序列为0的循环定义当LFSR的寄存器状态遍历2n-1个非零状态时,序列的周期达到最大2n-1,这种序列被称为m序列。
定义若n次不可约多项式f(x)的阶为2n-1,则称f(x)为n次本原多项式。
定理{a i}是周期为2n 1的m-序列的充要条件是其特征多项式f(x)为n阶本原多项式一个3-级的反馈移位寄存器,反馈函数f(x)= b 3⊕b 1,初态为100,输出序列?3()1f x x x =++742342(1)(1)(1)(1)()x x x x x x x x x f x -=+++++=+++ ()|1,7n f x x n -<所以f(x)的周期为7生成多项式为初态为100放入寄存器,输出序列情况如下b3b 2b 100111010011101…f(b 1,b 2,b 3)=b 1⊕b 3状态 输出位10001100111101111011010000111000输出序列的周期为7流密码的攻击攻击目的:确定整个密钥流{k i}攻击手段:惟密文已知明文选择明/密文自适应选择明/密文1 若LFSR 的反馈函数已知,破译者已知连续n 位明密文对和则可以推导出n 比特密钥流,继而由反馈函数得到整个密钥流{k i }2 已知明文攻击下,假设破译者已知了2n 位明密文对,,则可确定一段2n 位长的密钥序列,由此可以完全确定n 级反馈多项式的系数。
},,,{221n m m m M =},,,{21n m m m },,,{21n c c c },,,{221n c c c C =i i i c m k ⊕=},,,{21n k k k },,,{221n k k k K =n 个线性方程包含n 个未知数:b 1,b 2,...,b n ,所以可惟一解出b i (i=0,1,…,n )从而可确定该线性反馈移位寄存器接下来的状态,也就能够得到余下的密钥序列。
11211223111211211n n n n n n n n n n n n n n k k b k b k b k k b k b k b k k b k b k b +-+-++--=+++⎧⎪=+++⎪⎨⎪⎪=+++⎩例:5级线性反馈移位寄存器产生的密钥序列加密得到的明文串为011001111111001,对应的密文串为101101011110011。