第2章(分组密码)1
- 格式:ppt
- 大小:787.50 KB
- 文档页数:81
实验二:分组密码实验一、实验目的通过使用 DES 算法对实际的数据进行加密和解密来了解密码体制的原理。
二、实验要求(1)所下发程序是不完整的,请你完成程序中加密函数的第16次迭代,解密函数的第1次迭代,调试程序确保正确。
(2)用自己姓名拼音的前八个字母作为明文,学号后八位作为密文,观察实验结果,检验程序的功能是否正确。
(3)调试程序,观察并记录:L3与R2的值,阐述他们之间有何关系,并解释结果。
(4)连续点击解密按钮,观察明文输出有什么变化,并解释为什么?修改程序使连续点击解密按钮,输出的明文不会发生前面观察的现象。
(5)修改程序,使得密文以二进制码的形式输出。
(选做)三、相关知识信息加密根据采用的密钥类型可以划分为对称密码算法和非对称密码算法。
对称密码算法是指加密系统的加密密钥和解密密钥相同,或者虽然不同,但是可以从其中任意一个推导出另一个,更形象的说就是用同一把钥匙开锁和解锁。
在对称密码算法的发展历史中曾出现过多种优秀的算法,包括 DES、3DES、AES 等。
下面我们以 DES 算法为例介绍对称密码算法的实现机制。
DES 算法是美国 IBM 公司在 20 世纪 70 年代提出,并被美国政府、美国国家标准局和美国国家标准协会采纳和承认的一种标准加密算法。
它属于分组加密算法,即明文加密和密文解密过程中,信息都是按照固定长度分组后进行处理的。
混淆和扩散是它采用的两个最重要的安全特性,混淆是指通过密码算法使明文和密文以及密钥的关系非常复杂,无法从数学上描述或者统计。
扩散是指明文和密钥中每一位信息的变动,都会影响到密文中许多位信息的变动,从而隐藏统计上的特性,增加密码安全。
DES 将明文分成 64 比特位大小的众多数据块,即分组长度为 64 位。
同时用56 位密钥对 64 位明文信息加密,最终形成 64 位的密文。
如果明文长度不足 64 位,则将其扩展为 64位(例如补零等方法)。
具体加密过程首先是将输入的数据进行初始换位(IP),即将明文 M中数据的排列顺序按一定的规则重新排列,生成新的数据序列,以打乱原来的次序。
二、分组密码实例分组密码(Block Cipher):一次处理一块输入,每个输入块生成一个输出块;将明文消息划分成固定长度的分组,各分组分别在密钥的控制下变换成等长度的密文分组。
数据加密标准DESDES 概述:DES 是分组长度为64bit 的分组加密算法,64bit 的明文分组从算法的一端输入,64bit 的密文分组从算法的另一端输出。
DES 的密钥长度是64bit(8Byte),但是每个字节的第8位都用作奇偶校验位,故实际密钥长度是56bit 。
简单的说,算法只不过是加密的两种基本技术----混乱和扩散的组合。
DES 基本组建分组是这些技术的一个组合(先代替后置换),它基于密钥,作用于明文,这就是众所周知的轮变换(round )。
在DES 中有16轮,这就意味着要在明文上16次实施相同的组合技术。
DES 是对称加密算法,加密和解密用的是同一算法(密钥顺序及应用方向与加密过程相反)。
加密算法m 比特明文x 比特密钥n 比特密文 解密算法x 比特密钥m 比特明文加密过程和解密过程的区别:“方向和过程刚好相反”。
也就是说“解密过程是加密过程的反过程”,DES算法解密过程是加密过程的“逆”运算。
DES加密过程:算法的概要DES对64位的明文分组进行操作。
经过一个初始置换,将明文分组分成左,右两部分,各32位长,然后进行16轮完全相同的运算,也称为"函数f",在运算的过程中数据与密钥结合。
在每一轮中,密钥为移位,然后在从密钥的56位中选出48位,通过一个扩散置换将数据的右半部分扩展成48位,并通过一个异或操作与48位密钥结合,通过8个S-盒将这48位替代为新的32位数据,再将其置换一次,这四步运算构成了f函数。
然后再通过另一个异或运算,使f函数的输出与左半部分结合,其结果就形成了新的右半部分,原来的右半部分变成新的左半部分,即对于第i次迭代,用L和R表示第(i-1)次迭代后的左右两部分(各32bit),则Li = Ri-1Ri= Li-1⊕f( Ri-1,Ki ) (i=2,3, (16)这里ki是64bit密钥k产生的子密钥,ki是48bit。
分组密码流程
分组密码是一种对数据按照一定长度进行划分的密码算法,通常使用一个固定长度的密钥进行加解密操作。
其流程如下:
1.对明文进行划分。
明文会被分成固定长度的数据块,每个数据块的长度通常是64位或者128位。
2.密钥扩展。
将密钥进行扩展,将其变为一组子密钥。
这些子密钥通常与数据块一起使用,用于加密和解密。
3.进行加密操作。
使用子密钥对每个数据块进行加密。
加密中的每个步骤将使用不同的子密钥和算法。
加密完成后,将得到一组密文数据块。
4.进行解密操作。
使用相同的子密钥对每个密文数据块进行解密,还原出原始明文数据块。
解密中的每个步骤将使用与加密相同的子密钥和算法。
5.合并密文数据块。
将解密后的数据块按照原来的顺序合并。
这样就得到了最终的解密结果,即原始明文。
6.安全性分析。
针对加密算法进行安全性分析,检查是否能够被破解或者攻击。
如果算法被攻破,就需要重新设计更加安全的加密算法。
信息安全(分组密码的原理
分组密码是密码学中的一种加密方式,它的基本原理是将明文分成固定长度的分组,然后对每个分组独立进行加密,生成对应的密文分组。
下面是分组密码的一些基本原理:
1. 分组长度:分组密码的分组长度是固定的,且足够大以防止可能的攻击。
常见的分组长度有64位、128位等。
2. 密钥:分组密码使用一个密钥进行加密和解密。
密钥的长度与分组长度有关,例如,如果分组长度为128位,那么密钥长度也应该是128位。
3. 加密过程:加密过程是将明文分成固定长度的分组,然后对每个分组独立进行加密。
常见的加密算法有AES(高级加密标准)、DES(数据加密标准)等。
4. 混淆与扩散:分组密码的设计原理包括混淆和扩散。
混淆是使密文和明文之间的关系尽可能复杂,以防止攻击者通过分析密文推断出明文。
扩散则是将明文中比特的变化尽可能多地传播到密文中,以防止明文的统计特性被攻击者利用。
5. 可逆性:加密和解密过程应该是可逆的,即从密文可以还原出明文。
这要求加密算法的设计必须精确,以确保在解密时能够正确地恢复出原始数据。
总的来说,分组密码是一种将明文分成固定长度的分组,然后对每个分组独立进行加密的加密方式。
它的设计原理包括混淆、扩散和可逆性,以确保数据的安全性。