201641843222-李烁-网络安全实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1实验一

1.1实验目的、要求

1、掌握及理解常用的对称分组加密算法的基本流程,如置换、异或、代替操作。

2、深入分析常见对称分组加密算法包括DES、AES。

1.2实验原理

DES 使用一个56 位的密钥以及附加的8 位奇偶校验位(每组的第8位作为奇偶校验位),产生最大64 位的分组大小。这是一个迭代的分组密码,使用称为Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用16 轮循环,使用异或,置换,代换,移位操作四种基本运算。

三重DES(3DES),使用168 (56*3)位的密钥对资料进行三次加密(3次使用DES)的一种机制;它通常(但非始终)提供极其强大的安全性。如果三个56 位的子元素都相同,则三重DES 向后兼容DES。

AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“状态(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。(Rijndael 加密法因支持更大的区块,其矩阵行数可视情况增加)加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤:

AddRoundKey —矩阵中的每一个字节都与该次轮秘钥(round key)做XOR运算;每个子密钥由密钥生成方案产生。

SubBytes —通过个非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。

ShiftRows —将矩阵中的每个横列进行循环式移位。

MixColumns —为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每列的四个字节。

最后一个加密循环中省略MixColumns步骤,而以另一个AddRoundKey取代。

1.3主要设备、器材

硬件环境:Intel i7/4GRAM/500G HDD

软件环境:Windows 7/Visual C++ 6 1.4实验步骤及原始数据记录

2实验二

2.1实验目的、要求

1、理解流密码对数据加解密处理模式与分组密码的差异,理解其关键技术原理。

2、编程实现RC4算法。

2.2实验原理

序列密码也称为流密码(Stream Cipher),它是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。1949年Shannon证明了只有一次一密的密码体制是绝对安全的,这给序列密码技术的研究以强大的支持,序列密码方案的发展是模仿一次一密系统的尝试,或者说“一次一密”的密码方案是序列密码的雏形。如果序列密码所使用的是真正随机方式的、与消息流长度相同的密钥流,则此时的序列密码就是一次一密的密码体制。若能以一种方式产生一随机序列(密钥流),这一序列由密钥所确定,则利用这样的序列就可以进行加密,即将密钥、明文表示成连续的符号或二进制,对应地进行加密,加解密时一次处理明文中的一个或几个比特。在序列密码中,密钥流由密钥流发生器f产生:zi=f(k,si),这里的si是加密器中存储器(记忆元件)在i时刻的状态。根据加密器中的记忆元件si的存贮状态是否依赖于明文字符,序列密码可进一步分成同步和自同步两种。如果si独立于明文字符则称为同步流密码,否则称为自同步流密码。

分组密码以一定大小作为每次处理的基本单元,而序列密码则是以一个元素(一个字母或一个比特)作为基本的处理单元。序列密码是一个随时间变化的加密变换,具有转换速度快、低错误传播的优点,硬件实现电路更简单;其缺点是:低扩散(意味着混乱不够)、插入及修改的不敏感性。分组密码使用的是一个不随时间变化的固定变换,具有扩散性好、插入敏感等优点;其缺点是:加解密处理速度慢、存在错误传播。序列密码涉及到大量的理论知识,提出了众多的设计原理,也得到了广泛的分析,但许多研究成果并没有完全公开,这也许是因为序列密码目前主要应用于军事和外交等机密部门的缘故。目前,公开的序列密码算法主要有RC4、SEAL等。

RC4加密算法的计算公式

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

2.3主要设备、器材

硬件环境:Intel i7/4GRAM/500G HDD

软件环境:Windows 7/Visual C++ 6

2.4实验步骤及原始数据记录

3实验三

3.1实验目的、要求

1、掌握及理解消息认证机制对网络安全的重要性。

2、掌握消息认证机制的一般原理与方法。

3、掌握常见的安全散列函数用法。

4、深入分析常见的安全散列函数SHA、MD5。

3.2实验原理

消息认证(message authentication)就是验证消息的完整性,当接收方收到发送方的报文时,接收方能够验证收到的报文是真实的和未被篡改的。它包含两层含义:一是验证信息的发送者是真正的而不是冒充的,即数据起源认证;二是验证信息在传送过程中未被篡改、重放或延迟等。

消息认证是指通过对消息或者消息有关的信息进行加密或签名变换进行的认证,目的是为了防止传输和存储的消息被有意无意的篡改,包括消息内容认证(即消息完整性认证)、消息的源和宿认证(即身份认证0)、及消息的序号和操作时间认证等。它在票据防伪中具有重要应用(如税务的金税系统和银行的支付密码器)。消息认证所用的摘要算法与一般的对称或非对称加密算法不同,它并不用于防止信息被窃取,而是用于证明原文的完整性和准确性,也就是说,消息认证主要用于防止信息被篡改。

消息内容认证常用的方法:消息发送者在消息中加入一个鉴别码(MAC、MDC等)并经加密后发送给接受者(有时只需加密鉴别码即可)。接受者利用约定的算法对解密后的消息进行鉴别运算,将得到的鉴别码与收到的鉴别码进行比较,若二者相等,则接收,否则拒绝接收。

相对于密码系统,认证系统更强调的是完整性。消息由发送者发出后,经由密钥控制或无密钥控制的认证编码器变换,加入认证码,将消息连同认证码一起在公开的无扰信道进行传输,有密钥控制时还需要将密钥通过一个安全信道传输至接收方。接收方在收到所有数据后,经由密钥控制或无密钥控制的认证译码器进行认证,判定消息是否完整。消息在整个过程中以明文形式或某种变形方式进行传输,但并不一定要求加密,也不一定要求内容对第三方保密。攻击者能够截获和分析信道中传送的消息内容,而且可能伪造消息送给接收者进行欺诈。攻击者不再像保密系统中的密码分析者那样始终处于消极被动地位,而是主动攻击者。认证编码器和认证译码器可以抽象为认证方法。一个安全的消息认证系统,必须选择合适的认证函数,该函数产生一个鉴别标志,然后在此

相关文档
最新文档