下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-RC4实验三序列一、 实验目的通过实际编程了解 RC4 算法的加密和过程,加深对序列算法的认识。二、序列实验原理又称为流,是指明文消息按字符(如二元数字)逐位的加密的一类算的工作原理如下图所示,左边是明文序列 m,上边是密钥序列ki ,法。序列密钥 K用于控制密钥序列产生器使其产生密钥序列ki ,明文序列与密钥序列比特对比特进行模二加,产生密文序列ci 从右边输出。过程与之类似。序列的主要特点有:(1)加密/运算只是简单的模二加运算。(2)安全强度主要依赖密钥序列的随机性。因此,如何设计一个好的密钥序列产生器,使其产生随机的密钥序列是序列体制的关键所在。密钥序列产生器(KG)有以下基本要求:
2、(1)密钥K 的长度足够大,一般应在 128 位以上;(2) KG 生成的密钥序列ki 具极大周期;(3) ki 具有均匀的 n 元分布,即在一个周期环上,某特定形式的 n 长比特串与其求反比特串,两者出现的频数大抵相当(如均匀的游程分布);(4) 利用统计方法由ki 提取关于 KG 结构或 K 的信息在计算上不可行的;性,即ki 的每一比特均与K 的大多数比特有关;(5)(6) 扩散性,即K 任一比特的改变要引起ki 在全貌上的变化;(7) 密钥序列ki 不可,密文及相应的明文的部分信息,不能确定整个ki 。序列算法的关键是产生不可的密钥序列。序列的算法很多,其设计差的异较大且各有特点,有
3、RC4、A5、SEAL、PKZIP 等。下面从 RC4 入手来介绍序列实现机制。RC4 是由麻省理工学院的 Rivest 开发的,他也是 RSA 的开发者之一。RC4 的突出特点是在上容易实现。广泛的应用在商业产品中,包括 Lotus Notes,苹果计算机的 AOCE和 Oracle 安全 SQL 数据库。它还是蜂窝数字数据包规范的一部分。RC4 是一个典型的基于非线性数组变换的序列。它以一个足够大的数组为基础,对其进行非线性变换,产生非线性的密钥序列,一般把这个大数组成 S 盒。RC4 的 S 盒的大小根据参数 n 的值变化,理论上来说,RC4 算法可以生成总数为N 2n 个元素的 S 盒
4、。通常 n=8,此时,可以生成共有 256 个元素的数组 S。RC4 的每个输出都是数组 S 中的一个元素。要实现这些,需要两个处理过程:一个是密钥调度算法,用来设置 S 的初始排列;另一个是伪随机生成算法,用来选取随机元素并修改 S 的原始排列顺序。KSA 首先初始化 S,即 Sj=i(i=0255),同时建立一个临时向量 T,如果密钥 K 的长度为 256 字节,则将K 赋给 T,否则,若密钥K 的长度为 keylen 小于|T|,则将 K 的值赋给 T 的前(|K|/8)个元素,并不断重复加载 K 的值,直到 T 被填满。这些操作可以概括如下:for (i=0; i256; i+)si=
5、i;Ti=Ki mod keylen然后用 T 产生 S 的初始置换,从 S0到 S255,对每个 Si,根据 Ti的值将 Si置换为 S 中的另一个字节。j=0;for (i=0; i256; i+)j=(j+si+Ti)%256;swap(si, sj);/交换S(i)和S(j)的内容;因为对 S 的操作仅是交换,所以唯一的改变就是位置,S 仍然包含所有值为 0255 的元素。最后,利用 PRGA 完成密钥流生成过程。从 S 中随机选取元素输出,并修改 S 以便下一次选取,选取过程取决于索引 i 和 j,下面描述选取密钥序列的过程:i=j=0;while (明文未结束)+i%=n;j=(j
6、+si)%n; swap(si, sj);k=s(si+sj)%n);加密时,将 k 的值与明文字节异或;时,将 k 的值与密文字节异或。总结 RC4 的逻辑结构。加密时,将 k 的值与明文字节异或;时,将 k 的值与密文字节异或。为了安全强度,目前的RC4至少使用128位密钥,防止穷举RC4算法可以看成一个有限状态的自态:T(S0,S1,S2S255,i,j),S-box和i、j索引的具体取值为RC4的一个状三、 实验环境运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、VC(Windows)等 C 语言编译环境。四、 实验内容和步聚算法分析程序中用到的
7、函数如下Swap(Si,Sj);函数名称:交换函数对 S 进行初始置换。 re_S(char *S)函数名称:初始函数初始 Sre_T(char *T,char *key)函数名称:初始函数 对 T 进行初始化 re_Sbox(char *S,char *T)函数名称:置换函数,密钥的调度算法对 S 进行初始置换re_RC4(char *S,char *key)函数名称:密钥流生成函数,(伪随机生成算法)生成密钥流。使用实例分析下面以元素长为 3 的 RC4 为例,说明使用过程。显然,其操作是对 8 取模。数组 S 只有 8 个元素,初始化为:选取一个密钥,该密钥是由 0 到 7 的数以任意顺
8、序组成的。例如选取 5、6 和 7 作为密钥。该密钥如下填入密钥数组 T 中;然后利用如下循环构建实际的 S 数据表: j=0;for(i=0;i8;i+) j:=(j+s(i)+k(i) mod 8;swap(S(i),S(j);该循环以j=0和i=0开始。使用更新公式后j为:j=(0+S(0)+K(0) mod 8=5因此,S 数据表的第一个操作是将 S(0)与 S(5)互换。索引 i 加 1 后,j 的下一个值为:j=(5+S(1)+K(1) mod 8=(5+1=6) mod 8=4即将 S 数据表的 S(1)和 S(4)互换:当该循环执行完后,数组 S 就被随机化:这样数据表 S 就可以用来生成随机的密钥流序列。从 j=0 和 i=0 开始,RC4 如下计算第一个密钥字:i=(i+1) mod 8=(0+1) mod 8 =1j=(j+s(i) mod 8=(0+s(1) mod 8=(0+4) mod 8=4 swap (S(1),S(4)然后如下计算t和k:t=(S(j)+S(i) mod 8=(S(4)+S(1) mod 8=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳药科大学《领导科学》2025-2026学年期末试卷
- 山西医科大学《项目管理与工程经济决策》2025-2026学年期末试卷
- 内蒙古医科大学《电磁场与电磁波》2025-2026学年期末试卷
- 上海音乐学院《语用学概论》2025-2026学年期末试卷
- 锡林郭勒职业学院《卫生信息技术基础》2025-2026学年期末试卷
- 上海闵行职业技术学院《音乐教育学》2025-2026学年期末试卷
- 沈阳航空航天大学《康复医学导论》2025-2026学年期末试卷
- 上海建设管理职业技术学院《运动营养学》2025-2026学年期末试卷
- 上海对外经贸大学《法学概论》2025-2026学年期末试卷
- 石家庄人民医学高等专科学校《非政府公共组织管理》2025-2026学年期末试卷
- CJ/T 43-2005水处理用滤料
- 配电第一种工作票(10kV线路投运停电填写样本)
- 刑侦破案技巧与方法
- 胸腔镜下肺叶切除术护理查房
- 《心脏急危重症诊治》课件
- 文旅新媒体运营 课件 第4章 文旅新媒体内容运营
- 村集体草场流转方案
- 小学生道德与法治评价方案+评价表
- 厂房镀锌圆形风管施工方案
- JB-T 13101-2017 机床 高速回转油缸
- T-SCTSS 16-2023 珠兰花茶团体标准
评论
0/150
提交评论