密码学之分组密码设计及DES算法设计

本文深入探讨了分组密码的设计原理,强调混淆和扩散的重要性。以DES算法为例,详细介绍了其工作方式,包括初始置换、迭代过程、函数f的四个组成部分以及逆置换。DES算法的特点是64位分组、56位有效密钥,其加密和解密过程使用相同算法但密钥次序相反,适用于大量数据加密。然而,DES由于密钥管理复杂和安全性问题,现在已经发展出了如三重DES和AES等更先进的加密算法。
摘要由CSDN通过智能技术生成

分组密码:对明文加密时,首先要对明文进行分组,每组的长度相同,然后对每组明文分别加密,得到等长的密文。

特点:速度快、易于标准化、便于软硬件实现

设计要求:

  1. 分组长度n要足够大
  2. 秘钥空间要足够大
  3. 密码变换必须足够复杂

分组密码设计原则和方法

  • 混淆:所设计的密码应使得秘钥和明文以及密文之间的依赖关系相当复杂,以至于这种依赖性对密码分析者来说无法利用
  • 扩散:所设计的密码应使得秘钥的每一位影响密文的许多位,以防止对秘钥进行逐段破译

分组密码工作方式

  • ECB电子密码本
  • CBC密码分组链接
  • CTR计数器模式
  • OFB输出反馈
  • CFB密码反馈

DES数据加密标准
1.所需参数

key:8个字节共64位的工作密钥

data:8个字节共64位的需要被加密或被解密的数据

mode:DES工作方式,加密或者解密

2.初始置换

DES算法使用64位的密钥key将64位的明文输入块变为64位的密文输出块,并把输出块分为L0、R0两部分,每部分均为32位。初始置换规则如下:

注意:这里的数字表示的是原数据的位置,不是数据

1 58,50,42,34,26,18,10,2,
2 60,52,44,36,28,20,12,4,
3 62,54,46,38,30,22,14,6,
4 64,56,48,40,32,24,16,8,
5 57,49,41,33,25,17, 9,1,
6 59,51,43,35,27,19,11,3,
7 61,53,45,37,29,21,13,5,
8 63,55,47,39,31,23,15,7,

即将输入的64位明文的第1位置换到第40位,第2位置换到第8位,第3位置换到第48位。以此类推,最后一位是原来的第7位。置换规则是规定的。L0(Left)是置换后的数据的前32位,R0(Right)是置换后的数据的后32位。
例如:64位输入块是D1~D64,则经过初始置换后是D58,D50…D7。则L0=D58,D50,D12…D8;R0=D57,D49,D41…D7。

该置换过程是在64位秘钥的控制下。

3.加密处理–迭代过程

经过初始置换后,进行16轮完全相同的运算,在运算过程中数据与秘钥结合。

函数f的输出经过一个异或运算,和左半部分结合形成新的右半部分,原来的右半部分成为新的左半部分。每轮迭代的过程可以表示如下:

Ln = R(n - 1);

Rn = L(n - 1)⊕f(Rn-1,kn-1)

⊕:异或运算

Kn是向第N层输入的48位的秘钥,f是以Rn-1和Kn为变量的输出32位的函数

3.1函数f

函数f由四步运算构成:秘钥置换(Kn的生成,n=0~16);扩展置换;S-盒代替;P-盒置换。

3.1.1 秘钥置换–子密钥生成

DES算法由64位秘钥产生16轮的48位子秘钥。在每一轮的迭代过程中,使用不

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值