信息安全工程师教程学习笔记之RC4序列密码

信息安全工程师 责任编辑:长颈鹿 2016-07-07

添加老师微信

备考咨询

加我微信

摘要:全国计算机技术与软件专业技术资格(水平)考试,这门新开的信息安全工程师分属该考试“信息系统”专业,位处中级资格。官方教材《信息安全工程师教程》及考试大纲于7月1日出版,希赛小编整理了信息安全工程师教程学习笔记之RC4序列密码,供大家参考学习。

    >>>>>信息安全工程师在线辅导 

   

      >>>>>信息安全工程师培训视频

      全国计算机技术与软件专业技术资格(水平)考试,这门新开的信息安全工程师分属该考试“信息系统”专业,位处中级资格。教材《信息安全工程师教程》及考试大纲于7月1日出版,希赛小编整理了信息安全工程师教程学习笔记之RC4序列密码,供大家参考学习。

      RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ronald Rivest在1987年设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。该算法的速度可以达到DES加密的10倍左右,且具有很高级别的非线性。RC4起初是用于保护商业机密的。但是在1994年9月,它的算法被发布在互联网上,也就不再有什么商业机密了。RC4也被叫做ARC4(Alleged RC4——所谓的RC4),因为RSA从来就没有正式发布过这个算法。

      RC4原理

      RC4算法的原理很简单,包括初始化算法(KSA)和伪随机子密码生成算法(PRGA)两大部分。假设S-box的长度为256,密钥长度为Len。先来看看算法的初始化部分(用C代码表示):

      其中,参数1是一个256长度的char型数组,定义为:unsigned char sBox[256];

      参数2是密钥,其内容可以随便定义:char key[256];

      参数3是密钥的长度,Len=strlen(key);

1.png

   在初始化的过程中,密钥的主要功能是将S-box搅乱,i确保S-box的每个元素都得到处理,j保证S-box的搅乱是随机的。而不同的S-box在经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,将S-box和明文进行xor运算,得到密文,解密过程也完全相同。

      再来看看算法的加密部分(用C代码表示):

      其中,参数1是上边rc4_init函数中,被搅乱的S-box;

      参数2是需要加密的数据data;

      参数3是data的长度.

2.png

      最后,在main函数中,调用顺序如下:

3.png

      因此最终的完整程序是:

      RC4漏洞

      由于RC4算法加密是采用的xor,所以,一旦子密钥序列出现了重复,密文就有可能被破解。关于如何破解xor加密,请参看Bruce Schneier的Applied Cryptography一书的1.4节Simple XOR,在此我就不细说了。那么,RC4算法生成的子密钥序列是否会出现重复呢?由于存在部分弱密钥,使得子密钥序列在不到100万字节内就发生了完全的重复,如果是部分重复,则可能在不到10万字节内就能发生重复,因此,推荐在使用RC4算法时,必须对加密密钥进行测试,判断其是否为弱密钥。其不足主要体现于,在无线网络中IV(初始化向量)不变性漏洞。

      而且,根据目前的分析结果,没有任何的分析对于密钥长度达到128位的RC4有效,所以,RC4是目前最安全的加密算法之一,大家可以放心使用!

      分布式代码管理网站Github从2015年1月5日将停止对RC4的支持,RC4作为一种老旧的验证和加密算法易于受到黑客攻击。这意味着,用户在使用Windows XP系统上的IE浏览器时将无法进入github.com网站


    希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库软考历年真题)、软考培训教材软考视频教程,多样的培训方式包括在线辅导面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!