下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

密码学基础与应用之序列密码分析(下)

作者:课课家教育     来源: http://www.kokojia.com点击数:2586发布时间: 2019-02-28 10:46:35

标签: 信息安全工程师密码学.序列密码

软考,您想通过吗?一次通过才是硬道理

密码学基础与应用之序列密码分析(下)_信息安全工程师_密码学_序列密码_课课家      在密码学基础与应用之序列密码分析(上)当中我们讲解了序列密码的基础概念,对序列密码进行了简单的分析,并且也学习了线性移位寄存器序列的一些相关知识点,在下半部分中,我们就接着上半部分的内容来分析一下公开的主要的两种序列密码RC4序列密码和ZUC算法。希望小编整理的这些知识点能够帮助到大家。

  3.RC4 序列密码

      RC4序列密码是美国RSA数据安全公司设计的一种序列密码,它在现代密码学的发展过程中具有非常重要的作用。RSA数据安全公司将其收集在加密工具软件BSAFE中。最初并没有公布RC4的算法,但由于在很多安全软件系统中使用了这个密码,人们通过对软件进行逆向分析得到了算法。在这种情况下RSA数据安全公司于1997年公布了RC4密码算法。

      RC4密码算法的应用非常广泛,很多领域的安全模块中都使用这个算法,该算法被应用于SSL协议中,用以保护互联网传输中的保密性。另外,这个算法也被选为蜂窝数字数据包规范的一部分。

  RC4密码算法结构

  (1)RC4 参数

  RC4密码是一种基于非线性数据表变换的序列密码,与基于移位寄存器的序列密码不同。它用一个足够大的数据表作为基础,然后对这个表进行非线性变换,产生非线性的密钥序列。

  RC4算法取n=8 ,使用2n=28=256个字节构成的S表和两个字节(n=8位)指针(I和J),一共需要的存储空间为258字节。S表的值S0,S1,…,S255是0,1,…,255的一个排列。I和J的初值均为0。其中表值和指针值的算术运算按模2n=28=256进行。

  (2)RC4 算法

  我们可以将RC4算法看成一个有限状态自动机。把S表和I、J指针的具体取值称为RC4的一个状态:

    T=<S0,S1,…,S255,I,J>,

  对状态T进行非线性变换,产生出新的状态,并输出密钥序列中一个字节k。

  RC4的下一状态函数定义如下:

      ①I=0,J=0;

      ②I=I+1 mod 256;

  ③J=J+SI mod 256;

  ④交换SI和SI

      RC4的输出函数定义如下:

      ①h=SI+SJ mod 256;

  ②k=Sh

  用k为作密钥字符,RC4有限状态自动机在不停运转,就会源源不断地产生出密钥字符序列。加密时,将密钥字符k与明文字符模2相加就完成了加密。解密时,将密钥字符k与密文字符模2相加就完成了解密。

  在用RC4加解密之前,需要做的是首先对S表进行初始化。对S 表初始化的这个过程如下:

  ①对S表进行线性填充,即令

  S0=0, SI=1, S2=2,…,S255=255;

  ②用密钥来填充另一个256字节的R表R0,R1,…,R255,要是密钥的长度小于R表的长度,则需要依次重复填充,一直到将R表填满为止。

  ③J=0;

  ④对于1=0到255需重复以下的操作:

      a.J=(J+SI+RI)    mod256;

      b.交换SI和SJ

  需要注意:实质上对S表初始化的过程就是对S表进行随机化处理的过程。密钥字符只有当这一过程完成后才能计算产生,以及才能进行加解密,否则将是不安全的。

  (3)RC4安全性

  由密钥字符k的产生算法可以看出,RC4有限状态自动机的每一个状态可以产生出一个密钥字符。RC4有限状态自动机的一个状态是S表的一个排列,而S表有256个字节元素,可能的排列总共有256!≈21600,所以想要进行穷举攻击是不可能的。

      RC4算法的优点非常明显,算法简单,高效,特别适合软件实现。

      RC4算法的漏洞是由于RC4算法加密是采用的xor,所以,一旦子密钥序列出现了重复,密文就有可能被破解。

  美国政府对于RC4算法软件的出口作了明确的限制,规定它的密钥长度不能超过40位。1在995年时,有人在Internet网上公布了一条用40位密钥的RC4加密的密文,并对此提出了破译挑战。法国的一个研究小组通过Internet网用了120台计算机和工作站,结果只用了8天时间便求出了密钥。在这之后,便有人又提出了第二次破译挑战,这次仅仅只用了3 1. 8小时就成功地破译了。其实这些问题并不是出在RC4本身。而是这些攻击是利用了WEP协议的密钥产生途径中的一个漏洞。这说明这种攻击并不适用于攻击RC4的其他应用。这个问题说明了设计一个安全系统的困难性不仅在于密码算法本身,而且还包括协议,以及如何正确地使用密码算法。

  RC4密码因为它的算法简单,软件实现容易,加密速度快等显著地使得它拥有了广泛的应用。目前,商用领域应用最广的序列密码可能就是RC4密码。比如,Windows、Lotus Notes等这些软件系统均采用了RC4算法, SSL/TLS(安全套接字层协议/传输层安全协议)和WEP协议(WiredEquivalent Privacy)也都采用了RC4密码。

   4.ZUC算法

  ZUC算法,即祖冲之算法,是由我国学者自主设计的加密和完整性算法,它是移动通信3GPP机密性算法EEA3和完整性算法EIA3的核心。ZUC算法在2009年5月获得3GPP安全算法组SA立项,正式申请参加3GPP LTE第三套机密性和完整性算法标准的竞选工作。ZUC算法经过了两年多的时间通过了包括3GPP SAGE内部评估,两个邀请付费的学术团体的外部评估以及公开评估等在内的3个阶段的安全评估工作后,在2011年9月时正式被3GPP SA全会通过,成为了3GPP LTE第三套加密标准的核心算法。这个算法是中国第一个成为国际密码标准的密码算法。这个标准化的成功,是中国在商用密码算法领域取得的一次重大突破,可以体现出中国离用密码应用的开放性和商用密码设计的高能力,可以使得中国在国际通信安全应用领域的影响力大大增加,在今后,ZUC算法不管是对中国在国际商用密码标准化方面的工作还是商周密码的密码设计来说都有深远的影响。

  ZUC算法是以中国古代著名数学家祖冲之的拼音(ZU Chongzhi)首字母命名的算法,中文称作祖冲之算法,它是一个同步流密码算法。在设计之初时,这个算法就面临着高挑战。美国高级加密标准AES和欧洲SNOW 3G是两个设计非常优秀的密码算法,它们具有非常高的安全强度,而且已经被选为LTE加密标准,ZUC算法想要在3 GPPLTE当中有立脚之处,那它的设计必须做到可以与AES或SNOW3G相比,至少不能比它们差。ZUC算法的设计在面对挑战时必须要具备高安全、高效率以及新颖性等特点。其中高安全和高效率要求设计的新算法在安全和效率上不能比AES以及SNOW3G的低,而新颖性则要求设计的密码算法在结构和部件上需要有创新。但是密码算法设计发展到今天,很多经典结构和部件的设计都已经基本定型,如果想要同时达到上述所讲的目标无疑是一项非常艰难的任务。

      ZUC算法采用三层结构的逻辑设计,其结构如图下图所示。

 ZUC算法整体结构

      第一层为定义在素域GF(231-1)上的线性反馈移位寄存器(LFSR),这个是ZUC算法在设计上的一大创新。目前我们常见的流密码体制的LFSR都是采用二元域或二元域的某个扩域上的m序列。明显有着多重线性关系的这种序列具使得用这个作为序列源的密码算法更容易受到一些相关的攻击。ZUC算法首次采用素域GF(231-1)的m序列的LFSR设计,这种类型的序列周期长、统计特性好,而且在特征为2的有限域上它是非线性的,因此具有线性结构弱、比特关系符合率低等优点。所以ZUC算法采用GF(231-1)上的LFSR设计具有天然的强抵抗二元域上密码攻击方法的能力,比如二元域上的代数攻击、区分分析和相关攻击等。另外,由于可以快速实现素域GF(231-1)上的乘法, ZUC算法充分考虑到了安全和效率这两个方面在LFSR在设计时的问题,在达到高安全目标的同时可以非常高效地软硬件实现。

  ZUC算法的第二层是比特重组。比特重组采用了取半合并技术,实现LFSR数据单元到非线性函数F和密钥输出的数据转换,以破坏LFSR在素域GF(231-1)上的线性结构是它的主要目的。比特重组结合第三层的非线性函数F可以使得一些在素域GF(231-1)上的密码攻击方法变得非常困难。

  非线性函数F是ZUC算法第三层。ZUC算法在非线性函数F的设计上采用S 盒和高扩散特性的线性变换L,它充分地借鉴了分组密码的设计技巧。非线性函数F具有高的抵抗区分分析、快速相关攻击和猜测确定攻击等方法的能力。另外,非线性函数F采用结构化的S盒设计方法,在具有好的密码学性质的同时降低了硬件实现代价,具有实现面积小、功耗低等特点。

  ZUC算法通过上面三层结构的综合运用,可以看出其具有非常高的安全强度,目前常见的各种流密码攻击方法都可以抵抗。ZUC算法的设计已得到国内外著名密码学家的认可,他们对其安全强度给予了很高的评价。

  在上面介绍的ZUC算法,它的本质上是一种非线性序列产生器。因此,他可以在种子密钥的作用下产生足够长的安全密钥序列。然后把与密钥序列明文数据模2相加,便完成了数据加密。同样的,数据解密便是将密钥序列与密文数据模2相加。

      ZUC算法走出国门参与国际标准竞争,成为国际标准提高了我国在移动通信领域的地位和影响力,对我国移动通信产业和商用密码产业发展均具有重大而深远的意义。

      以上便是小编整理的关于序列密码的知识点了,在上下两部分当中小编列出了序列密码概念、线性移位寄存器序列、RC4序列密码以及ZUC算法的比较详细的分析,如果大家想要了解的话,要把这里的上下两部分一起来阅读学习,这样会使大家更容易去理解哟。想要学习更多内容可以到课课家教育平台了解。

赞(0)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程