密码学02-流密码.ppt
《密码学02-流密码.ppt》由会员分享,可在线阅读,更多相关《密码学02-流密码.ppt(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、密码学02流密码 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望流密码概况流密码概况2.1 2.1 流密码的基本概念流密码的基本概念布尔函数简介布尔函数简介2.2 2.2 线性反馈移位寄存器线性反馈移位寄存器2.3 2.3 线性移位寄存器的一元多项式表示线性移位寄存器的一元多项式表示 2.4 2.4 mm序列的伪随机性序列的伪随机性2.5 2.5 mm序列密码的破译序列密码的破译2.6 2.6 非线性序列非线性序列本章提要本章提要2流密码概况流密码概况流密码流密码
2、(stream cipher)是一种重要的密码体制是一种重要的密码体制l明文消息按字符或比特逐位加密明文消息按字符或比特逐位加密l流密码也称为序列密码流密码也称为序列密码(Sequence Cipher)流密码在手工和机械密码时代是主流技术流密码在手工和机械密码时代是主流技术流密码在流密码在50年代得到飞跃式发展年代得到飞跃式发展l密钥流可以用移位寄存器电路来产生,也促进了线性和密钥流可以用移位寄存器电路来产生,也促进了线性和非线性移位寄存器发展非线性移位寄存器发展主要用于专用和机密机构:军方,银行等主要用于专用和机密机构:军方,银行等l由于互联网是分组传输的,流密码的使用较少由于互联网是分组
3、传输的,流密码的使用较少3流密码具有有效的数学分析工具流密码具有有效的数学分析工具l代数代数(如布尔代数如布尔代数)、有限域理论和谱分析理论等等、有限域理论和谱分析理论等等l流密码在现代密码学阶段的主要成果来自于密码分析流密码在现代密码学阶段的主要成果来自于密码分析很多密码学家因流密码研究而成名很多密码学家因流密码研究而成名l肖国镇,肖国镇,Massey,Berlikamp等。等。l在在IEEE Transaction on Information Theory上能够发表的密码上能够发表的密码成果多数都是来自于流密码的相关研究成果多数都是来自于流密码的相关研究流密码基于硬件实现优势更明显,目前
4、也有些算法是针对流密码基于硬件实现优势更明显,目前也有些算法是针对软件设计的软件设计的l如如Ecrypt计划中的算法,计划中的算法,RC4等等参考资料参考资料:伪随机序列及其应用,流密码学及其应:伪随机序列及其应用,流密码学及其应用,肖国镇著用,肖国镇著42.1 流密码的基本概念流密码的基本概念流密码的基本思想流密码的基本思想l利用密钥利用密钥k产生一个密钥流产生一个密钥流z=z0z1z2,并使用如下规则,并使用如下规则对明文串对明文串x=x0 x1x2加密:加密:y=y0y1y2Ez0(x0)Ez1(x1)Ez2(x2),密钥流密钥流l由密钥流发生器由密钥流发生器 f 产生:产生:zif(k
5、,i)li是加密器中的记忆元件在时刻是加密器中的记忆元件在时刻 i 的状态的状态l f 是由是由k,i 产生的函数产生的函数5 流密码流密码 分组密码分组密码内部记忆元件由一组移位寄存器构成内部记忆元件由一组移位寄存器构成 6流密码与分组密码的区别:在于有无记忆性流密码与分组密码的区别:在于有无记忆性l流密码的滚动密钥由函数流密码的滚动密钥由函数f、密钥、密钥k和指定的初态和指定的初态0完全确定完全确定l此后由于输入加密器的明文可能影响加密器中的内部记此后由于输入加密器的明文可能影响加密器中的内部记忆元件的存储状态,因而忆元件的存储状态,因而i(i0)可能依赖于可能依赖于k,0,x0,x1,x
6、i1,前前 i 个个明文和密钥及初态明文和密钥及初态l分组密码中,一组一组的加密,一般等长分组密码中,一组一组的加密,一般等长l在分组内明文和密钥充分混淆,分组间一般互不影响,在分组内明文和密钥充分混淆,分组间一般互不影响,与分组连接模式有关与分组连接模式有关72.1.1同步流密码同步流密码流密码可按记忆元件存储状态分类流密码可按记忆元件存储状态分类l按照加密器中记忆元件的存储状态按照加密器中记忆元件的存储状态i 是否依赖于输入的是否依赖于输入的明文字符流明文字符流,流密码可进一步分成,流密码可进一步分成同步同步和和自同步流密码自同步流密码两种两种li 独立于明文字符流的叫做同步流密码,否则叫
7、做自同独立于明文字符流的叫做同步流密码,否则叫做自同步流密码步流密码l由于由于自同步流密码的密钥流的产生与明文有关自同步流密码的密钥流的产生与明文有关,所以理论上难,所以理论上难于分析。于分析。l好的密码算法应该好的密码算法应该在理论上或基于实践检验能够证明其是安全在理论上或基于实践检验能够证明其是安全的或至少是没有明显漏洞的的或至少是没有明显漏洞的。l如果算法难于分析,则无法保证其安全性,也就无法放心使用,如果算法难于分析,则无法保证其安全性,也就无法放心使用,因此自同步流密码研究很少,很少采用。因此自同步流密码研究很少,很少采用。8目前大多数研究成果都是关于同步流密码的目前大多数研究成果都
8、是关于同步流密码的l由由于于zif(k,i)与与明明文文无无关关,此此刻刻的的密密文文字字符符yi=Ezi(xi)也也不不依依赖赖于于此此前前的的明明文文字字符符,这这样样可可将将同同步步流流密密码码的的加加密密器分成器分成密钥流产生器密钥流产生器和和加密变换器加密变换器两个部分。两个部分。l设解密变换为设解密变换为xi=Dzi(yi)。同步流密码体制模型如下图。同步流密码体制模型如下图9加密变换加密变换Ezi可有多种选择,保证变换可逆性即可可有多种选择,保证变换可逆性即可l比如明文流和密钥流对应位异或比如明文流和密钥流对应位异或l实际数字保密通信系统一般都是二元的实际数字保密通信系统一般都是
9、二元的0,1,在有限域在有限域GF(2)上讨论上讨论二元加法流密码二元加法流密码是目前最常用的流密码体制是目前最常用的流密码体制l加密变换可表示为加密变换可表示为yizi xi,加法流密码体制模型加法流密码体制模型10一次一密密码一次一密密码(One Time Padding 一次一密乱码本一次一密乱码本)是加法是加法流密码的原型流密码的原型l其中密钥的长度至少和明文的长度一样长,是无条件安全的,但其中密钥的长度至少和明文的长度一样长,是无条件安全的,但实用性较差,因而不能广泛应用。实用性较差,因而不能广泛应用。l如果加法流密码中,如果加法流密码中,ziki,即直接将密钥,即直接将密钥k(k至
10、少和明文一样长至少和明文一样长)用用作滚动的密钥流,则加法流密码就是一次一密密码。作滚动的密钥流,则加法流密码就是一次一密密码。流密码体制中如果密钥有限,则安全性一般低于一次一密流密码体制中如果密钥有限,则安全性一般低于一次一密l从信息论意义上讲,对从信息论意义上讲,对k比特长的串进行任何固定变换,其信息量比特长的串进行任何固定变换,其信息量至多为至多为k比特,即密钥流再长,其安全性最大也就是密钥长度,而比特,即密钥流再长,其安全性最大也就是密钥长度,而一次一密的密钥长度至少和明文一样。一次一密的密钥长度至少和明文一样。同步流密码算法的设计主要是密钥流产生器的设计同步流密码算法的设计主要是密钥
11、流产生器的设计l密钥产生器目标是:使得密钥密钥产生器目标是:使得密钥k经其扩展成的密钥流序列经其扩展成的密钥流序列z具有如下具有如下性质:性质:l极大的周期,良好的统计特性,抗差分分析,抗线性分析等极大的周期,良好的统计特性,抗差分分析,抗线性分析等112.1.2 有限状态自动机有限状态自动机流密码中任意时刻流密码中任意时刻密钥流密钥流和和密文密文的输出与状态密切的输出与状态密切相关。可以用有限状态自动机这一数学模型来表述相关。可以用有限状态自动机这一数学模型来表述有限状态自动机是具有离散输入和输出有限状态自动机是具有离散输入和输出(输入集和(输入集和输出集均有限)输出集均有限)的一种数学模型
12、的一种数学模型,由,由3部分组成:部分组成:l有限状态集有限状态集S=si|i=1,2,l 共有共有l个可能状态个可能状态l有限输入字符集有限输入字符集A1=Aj(1)|j=1,2,m和有限输出字符集和有限输出字符集A2=Ak(2)|k=1,2,n。l转移函数转移函数:lAk(2)=f1(si,Aj(1),sh=f2(si,Aj(1)l即在状态为即在状态为si,输入为,输入为Aj(1)时,输出为时,输出为Ak(2),而状态转移为,而状态转移为sh。12【例【例21】lS=s1,s2,s3,lA1=A1(1),A2(1),A3(1),A2=A1(2),A2(2),A3(2),转转移移函函数数由表
13、由表21给出给出f1A1(1)A2(1)A3(1)s1A1(2)A3(2)A2(2)s2A2(2)A1(2)A3(2)s3A3(2)A2(2)A1(2)f2A1(1)A2(1)A3(1)s1s2s1s3s2s3s2s1s3s1s3s213有限状态自动机可用有向图表示,称为转移图有限状态自动机可用有向图表示,称为转移图转移图的顶点对应于自动机的状态转移图的顶点对应于自动机的状态l若若状状态态 si在在输输入入Ai(1)时时转转为为状状态态sj,且且输输出出一一字字符符Aj(2),则则在在转转移移图图中中,从从状状态态si到到状状态态 sj有有 一一 条条 标标 有有(Ai(1),Aj(2)的的有
14、有向向弧线,如图弧线,如图14在例在例21中,若中,若l输入序列为输入序列为A1(1)A2(1)A1(1)A3(1)A3(1)A1(1)l初始状态为初始状态为s1,l则得到状态序列为:则得到状态序列为:l输出字符序列为:输出字符序列为:s1s2s2s3s2s1s2A1(2)A1(2)A2(2)A1(2)A3(2)A1(2)152.1.3 密钥流产生器密钥流产生器同步流密码的关键是密钥流产生器同步流密码的关键是密钥流产生器(Key Generator)l一般可将其看成一般可将其看成一个参数为一个参数为k的有限状态自动机的有限状态自动机,由一个输出符号,由一个输出符号集集Z、一个状态集、一个状态集
15、、两个函数、两个函数和和以及一个初始状态以及一个初始状态 0 0组成组成l状态转移函数状态转移函数:i i i i+1+1,将当前状态,将当前状态 i i变为一个新状态变为一个新状态 i i+1+1l输出函数输出函数:i iz zi i,当前状态,当前状态 i i变为输出符号集中的一个元素变为输出符号集中的一个元素z zi i。密钥流生成器设计的关键在于密钥流生成器设计的关键在于l找出适当的状态转移函数找出适当的状态转移函数和输出函数和输出函数,使得输出序列,使得输出序列z满足密钥满足密钥流序列流序列z应满足的几个条件,并且要求在设备上是节省的和容易实应满足的几个条件,并且要求在设备上是节省的
16、和容易实现的。为了实现这一目标,必须采用现的。为了实现这一目标,必须采用非线性函数非线性函数 16由于由于具有非线性的具有非线性的的有限状态自动机理论很不完善的有限状态自动机理论很不完善,相,相应的密钥流产生器的分析工作受到极大的限制。应的密钥流产生器的分析工作受到极大的限制。相反地,当相反地,当采用线性的采用线性的和非线性的和非线性的时,将能够进行深时,将能够进行深入的分析并可以得到好的生成器。入的分析并可以得到好的生成器。l为方便讨论,可将这类生成器分成为方便讨论,可将这类生成器分成驱动部分和非线性组合驱动部分和非线性组合部分部分l驱动部分驱动部分控制生成器的状态转移,并为非线性组合部分提
17、供统计控制生成器的状态转移,并为非线性组合部分提供统计性能好的序列;性能好的序列;l非线性组合部分非线性组合部分要利用这些序列组合出满足要求的密钥流序列。要利用这些序列组合出满足要求的密钥流序列。17目前最为流行和实用的密钥流产生器如图所示,其目前最为流行和实用的密钥流产生器如图所示,其驱动部分是一个或驱动部分是一个或多个线性反馈移位寄存器多个线性反馈移位寄存器。l前者称为滤波生成器,或前馈生成器前者称为滤波生成器,或前馈生成器l后者称为非线性组合生成器后者称为非线性组合生成器l还有钟控生成器,缩减生成器,停走生成器等还有钟控生成器,缩减生成器,停走生成器等l在非线性生成器中介绍在非线性生成器
18、中介绍18密钥流序列密钥流序列z应满足的几个条件:应满足的几个条件:一般来说,一般来说,KG(密钥产生器密钥产生器)的输入的输入(种子密钥种子密钥k)是是较短的,其输出为周期序列较短的,其输出为周期序列l对于二元序列,如果种子密钥对于二元序列,如果种子密钥k为为n比特,则其周期最大比特,则其周期最大为为2nl因为一旦密钥产生器的某一时刻的存储状态与前面的某一时刻因为一旦密钥产生器的某一时刻的存储状态与前面的某一时刻的状态相同,则在其它参数不变的情况下,输出开始重复的状态相同,则在其它参数不变的情况下,输出开始重复l这个重复周期太小则不安全这个重复周期太小则不安全l希望一个周期的长度很长,这样在
19、加密有限的明文时只希望一个周期的长度很长,这样在加密有限的明文时只需要一个周期内的某个片断,就像真随机的一样需要一个周期内的某个片断,就像真随机的一样19基于以上考虑,密钥产生器目标是:使得密钥基于以上考虑,密钥产生器目标是:使得密钥k经其扩展经其扩展成的密钥流序列成的密钥流序列z具有如下性质:具有如下性质:种子密钥的长度种子密钥的长度(一般来说就是流密码的密钥长度)(一般来说就是流密码的密钥长度)足够长足够长l比如比如128比特,这样密钥空间将有比特,这样密钥空间将有2128规模,抗穷搜索攻击规模,抗穷搜索攻击极大的周期极大的周期:一般来说不应小于:一般来说不应小于255良好的统计特性良好的
20、统计特性l密钥流序列密钥流序列k具有均匀的具有均匀的n-元分布,即在一个周期环上,某特定形元分布,即在一个周期环上,某特定形式的式的n-长长bit串与其求反,两者出现的频数大抵相当串与其求反,两者出现的频数大抵相当(例如,均匀的例如,均匀的游程分布游程分布)20密钥流序列密钥流序列z不可由一个低级的不可由一个低级的LFSR产生,也不可与一产生,也不可与一个低级个低级LFSR产生的序列只有比率很小的相异项产生的序列只有比率很小的相异项;l如果密钥流序列周期为如果密钥流序列周期为n,而人为改变其,而人为改变其1比特后周期急剧变小,比特后周期急剧变小,例如变为例如变为n/t,则序列的安全性就大为减小
21、。,则序列的安全性就大为减小。抗统计分析抗统计分析l利用统计方法由密钥流提取关于利用统计方法由密钥流提取关于KG结构或结构或k的信息在计算上不可的信息在计算上不可行;行;混乱性混乱性.即即z的每一的每一bit均与均与z的大多数的大多数bit有关;有关;扩散性扩散性.即即z任一任一bit的改变要引起的改变要引起z在全貌上的变化。在全貌上的变化。抗线性分析抗线性分析l其中的其中的LSFR就是线性反馈移位寄存器,就是线性反馈移位寄存器,linear shift feedback register,在下一节介绍,在下一节介绍21布尔函数简介布尔函数简介n元布尔函数元布尔函数f(x1,xn)定义为定义为
22、f:F2nF2l表示方法有三种:逻辑关系式,真值表,多元多项式表示方法有三种:逻辑关系式,真值表,多元多项式多元多项式:如多元多项式:如 f(x1,x2,x3,x4)x1x2x3x4l异或异或 x1 x2 x1x2(在在GF(2)上的上的“”(模模2加加)l逻辑逻辑“与与”x1 x2 x1x2(GF(2)上的上的“乘法乘法”)l逻辑逻辑“或或”x1 x2 x1x2+x1x2 其真值表为:其真值表为:l非非 1x l幂幂 xtxxx=x t0lx0=1;布尔函数的高次项只有如下形式布尔函数的高次项只有如下形式lxi1xi2xikx1x2x1 x200001110111122布尔函数的重量布尔函数
23、的重量W(f):真值表中函数值列里:真值表中函数值列里”1”的个数的个数lf(x1,x2)x1 x2=x1x2+x1x2的重量的重量W(f)3布尔函数的次数布尔函数的次数lf(x1,xn)a0一个乘积项一个乘积项 的次数定义为的次数定义为r最大次数定义为布尔函数的次数最大次数定义为布尔函数的次数 def(f)def(f)1时,称为仿射函数时,称为仿射函数:f(x1,xn)a0l若仿射函数的常数项若仿射函数的常数项a00,则称为线性函数,则称为线性函数def(f)1时,称为非线性函数时,称为非线性函数232.2 线性反馈移位寄存器线性反馈移位寄存器移位寄存器是序列密码产生密钥流的一个主要组成部分
24、移位寄存器是序列密码产生密钥流的一个主要组成部分lGF(2)上一个上一个n 级反馈移位寄存器由级反馈移位寄存器由n 个二元存储器个二元存储器与与一个反馈函一个反馈函数数f(a1,a2,an)组成,如图所示组成,如图所示l每一存储器称为移位寄存器的一级每一存储器称为移位寄存器的一级移位寄存器的状态移位寄存器的状态l在任一时刻,这些级的内容构成该反馈移位寄存器的在任一时刻,这些级的内容构成该反馈移位寄存器的状态状态l每一状态对应于每一状态对应于GF(2)上的一个上的一个n维向量,共有维向量,共有2n种可能的状态。种可能的状态。l每一时刻的状态可用每一时刻的状态可用n长序列长序列 a1,a2,an或
25、或n维向量维向量(a1,a2,an)表表示,其中示,其中ai是第是第i级存储器的内容。级存储器的内容。24初始状态初始状态 0 0由用户确定由用户确定l属于密钥属于密钥k的一部分的一部分状态转换规则状态转换规则(线性):(线性):l当第当第i个移位时钟脉冲到来时,每一级存储器个移位时钟脉冲到来时,每一级存储器ai都将其内都将其内容向下一级容向下一级ai-1传递,并根据寄存器此时的状态传递,并根据寄存器此时的状态a1,a2,an计算计算f(a1,a2,an),作为下一时刻的,作为下一时刻的an反馈函数反馈函数f(a1,a2,an)是是n元布尔函数,即元布尔函数,即n个变个变元元a1,a2,an可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码学 02 密码
限制150内