222012321210140罗江涛流密码

上传人:宝路 文档编号:5456758 上传时间:2017-08-30 格式:DOC 页数:7 大小:279KB
返回 下载 相关 举报
222012321210140罗江涛流密码_第1页
第1页 / 共7页
222012321210140罗江涛流密码_第2页
第2页 / 共7页
222012321210140罗江涛流密码_第3页
第3页 / 共7页
222012321210140罗江涛流密码_第4页
第4页 / 共7页
222012321210140罗江涛流密码_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《222012321210140罗江涛流密码》由会员分享,可在线阅读,更多相关《222012321210140罗江涛流密码(7页珍藏版)》请在金锄头文库上搜索。

1、流密码加密实验学号:222012321210140姓名:罗江涛班级:计算机科学与技术学院【实验环境】ISES 客户端Microsoft CLR Debugger 2005 或其它调试器【实验内容】通过运算器工具实现 RC4 算法的加解密计算对 RC4 和 LSFR 算法进行扩展实验对 RC4 和 LSFR 算法的加解密进行算法跟踪【实验原理】流密码(stream cipher)也称为序列密码,每次加密处理数据流的一位或一个字节,加解密使用相同的密钥,是对称密码算法的一种。1949 年 Shannon 证明只有一次一密密码体制是绝对安全的,为流密码技术的研究提供了强大的支持,一次一密的密码方案是

2、流密码的雏形。流密码的基本思想是利用密钥 K 产生一个密钥流 k1k2kn 对明文流 M=m1m2mn 进行如下加密:C=c 1c2cn=Ek1(m1)Ek2(m2)Ekn(mn)。若流密码所使用的是真正随机产生的、与消息流长度相同的密钥流,则此时的流密码就是一次一密的密码体制。流密码分为同步流密码和自同步流密码两种。同步流密码的密钥流的产生独立于明文和密文;自同步流密码的密钥流的产生与密钥和已经产生的固定数量的密文字符有关,即是一种有记忆变换的序列密码。一、 RC4 流密码算法RC4 是 1987 年 Ron Rivest 为 RSA 公司设计的一种流密码,是一个面向字节操作、具有密钥长度可

3、变特性的流密码,是目前为数不多的公开的流密码算法。目前的 RC4 至少使用 128 为的密钥。RC4 的算法可简单描述为:对于 n 位长的字,有共 N=2n 个可能的内部置换状态矢量 S= S0 ,S1, SN-1,这些状态是保密的。密钥流 K 由 S 中的 2n 个元素按一定方式选出一个元素而生成,每生成一个密钥值,S 中的元素就重新置换一次,自始至终置换后的 S 包含从 0 到 N-1 的所有 n 比特数。RC4 有两个主要算法:密钥调度算法 KSA 和伪随机数生成算法 PRGA。KSA 算法的作用是将一个随机密钥变换成一个初始置换,及相当于初始化状态矢量 S,然后 PRGA 利用KSA

4、生成的初始置换生成一个伪随机数出序列。密钥调度算法 KSA 的算法描述如下:for i=0 to N-1 doSi=i;j=0;for i=0 to N-1 doj=(j+Si+Ki mod L) mod N;swap(Si,Sj);初始化时,S 中元素的值被设置为 0 到 N-1,密钥长度为 L 个字节,从 S0到 SN-1对于每个 Si根据有密钥 K 确定的方案,将 Si置换为 S 中的另一个元素。伪随机数生成算法 PRGA 的算法描述如下:i=0;j=0;while(true)i=(i+1) mod N;j=(j+Si)mod N;swap(Si,sj);output k=S(Si+Sj

5、)mod N;PRGA 算法主要完成密钥流的生成,从 S0到 SN-1,对每个 Si,根据当前 S 的值,将Si与 S 中的另一个元素置换, ,当 SN-1完成置换后,操作再从 S0开始重复。加密时将 K 值与下一个明文字节异或;解密时将 K 值与下一密文字节异或。二、 基于 LFSR 的流密码线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)是产生密钥流最重要的部件。如图 1.1.3-1 所示,GF(2)上一个 n 级反馈移位寄存器由 n 个二元存储器与一个反馈函数f(a1,a2,an)组成;每一个二值 (0,1)存储器称为反馈移位寄存器的一级,a

6、i 表示第 i 级存储器的内容;在某一时刻,这些级的内容构成该反馈移位寄存器的一个状态,共有 2n 个可能的状态,每一状态对应一个 n 维向量(a 1,a2,an)。ana1a2an - 2an - 1f ( a1, a2, , an)图 1.1.3-1在主时钟确定的周期区间上,每一级存储器 ai 都就将其内容传递给下一级 ai-1,并根据寄存器当前的状态计算 f(a1,a2,an)的值作为 ai 下一时刻的内容,即从一个状态转移到下一状态。若反馈移位寄存器的反馈函数 f(a1,a2,an)=cna1 cn-1a2 c1an,其中系数 ci=0,1,加法为模 2 加,即该反馈函数是 a1,a2

7、,an 的线性函数,则称之为线性反馈移位寄存器,用LFSR 表示,如图 1.1.3-2 所示。令 ai(t)便是 t 时刻第 i 级的内容,则有:A N D+anc1A N D+an - 1c2A N D+a2cn - 1A N Da1cn. . . . .an + 1输出图 1.1.3-2基于 LSFR 的流密码反馈加密体制如下:设密钥为 c1,c2,cn,a 1,a2,an 的初始状态为 s1,s2,sn,其中 cn=1。设明文为m=m1m2mn,密文为 c=e1e2en,则有:对应的基于 LSFR 的加解密过程如图 1.1.3-3 和图 1.1.3-4 所示。A N D+anc1A N

8、D+an - 1c2A N D+a2cn - 1A N Da1cn. . . . .明文 m密文 c+图 1.1.3-3A N D+anc1A N D+an - 1c2A N D+a2cn - 1A N Da1cn. . . . .明文 m密文 c+图 1.1.3-4【实验步骤】一、 RC4选择 RC4 标签,进入 RC4 算法的实验面板。(一) 加解密计算(1) 加密参照 RC4 实验原理,在明文栏输入所要加密的明文,在密钥栏输入相应的密钥,如图1.1.3-5 所示。图 1.1.3-5点击“加密”按钮,在密文文本框内会出现加密后的 16 进制密文,如 图 1.1.3-6 所示。图 1.1.3

9、-6(2) 解密在密文栏相应的文本框内输入所要解密的 16 进制密文,在密钥栏输入相应的密钥,如图1.1.3-7 所示。图 1.1.3-7点击“解密”按钮,在明文文本框内就会出现解密后的明文,如 图 1.1.3-8 所示。图 1.1.3-8(二) 扩展实验(1) 点击扩展实验下的“RC4 扩展实验”按钮,进入 RC4 扩展实验窗体。(2) 初始化密钥在密钥文本框中输入一个密钥短语,点击“初始化密钥”按钮,生成 RC4 流密码的 S-box初始值,如图 1.1.3-9 所示。图 1.1.3-9(3) 观察加密过程在明文文本框中输入一个 ASCII 字符串,点击“加密”按钮,在密文文本框内就会出现

10、加密后的 16 进制密文,如图 1.1.3-10 所示。图 1.1.3-10注:也可以在明文文本框中输入 16 进制的数值。(4) 观察解密过程点击“解密”按钮,在“解密后的明文”文本框内就会出现解密后的明文,如图 1.1.3-11所示。图 1.1.3-11注:为了比对解密后的明文与初始明文,可以点击“十六进制形式”按钮,即可。(三) 算法跟踪选择 RC4 算法,在算法计算的相应区域输入明/ 密文和密钥;点击“跟踪加密”/“跟踪解密”按钮,进入调试器,选择对应的算法函数进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。具体步骤可参照古典密码

11、实验中实验步骤二。二、 LFSR选择 LFSR 标签,进入 LFSR 流密码的实验面板。(一) 加密过程设定线性移位寄存器的反馈函数。事先选定一个线性移位寄存器的反馈函数,如,在相应的指数下打“” ,然后输入一个 LFSR 流密码的初始值(十六进制) ,如图 1.1.3-12 所示。图 1.1.3-12在明文文本框中输入待加密的 ASCII 字符(也可以输入二进制串,由该文本框右边的提示而定) ,然后点击“加密”按钮,即可得到二进制密文码流,如图 1.1.3-13 所示。图 1.1.3-13(二) 解密过程直接点击“解密”按钮,即可得到序列密码的解密结果,如图 1.1.3-14 所示 。图 1.1.3-14注:为了比对解密后的明文与初始明文,可以点击“二进制形式”按钮,即可。(三) 算法跟踪点击“算法跟踪按钮” ,进入调试器,选择对应的算法函数进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。具体步骤可参照古典密码实验中实验步骤二。【实验思考】比较 RC4 与 LSFR 的异同对照 RC4 和 LSFR 的原理,根据算法跟踪实验画出算法函数的主要流程图计算 LSFR 实验中的线性反馈移位寄存器的周期思考两个流密码算法的安全性和优缺点

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号