密码学基础——分组密码


一、分组密码

1.分组密码定义

分组密码是将明文消息经过二进制编码后的序列分割为固定长度的组,用同一秘钥和算法对每一组加密。且通常情况是密文、明文等长。

在这里插入图片描述

2.分组密码作用

  • 消息加密
  • 消息认证和数据完整性的保护( 通过构造消息认证码(MAC)来实现)
  • 构造伪随机数生成器(用于产业性能良好的随机数)
  • 构造流密码(对称加密算法)
  • 构造其他密码协议的基础模块 (如密码管理协议、身份认证协议)

3.分组密码设计原则

安全性原则

  • 混淆:打乱密文、明文、秘钥之间的依赖关系,使得敌手获得密文和明文的统计规律,也无法求出秘钥。
  • 扩散:让密文中的每一位受明文中的尽可能多位的影响。
    如果明文变化一个比特时,密文中有些比特不可能发生变化,则这个明文与这些密文无关。

实现性原则

  • 软件实现:将分组划分若干个块,使用子块于简单运算
  • 硬件实现:高速率,加密解密可以使用同样的器件来实现

迭代分组密码
可以允许生成最大量的加密映射,来映射明文分组,即用加密和解密映射用表定义 对于n比特到n比特的可逆置换,共有2^n!种可能的置换表 秘钥的长度2n^n比特。

在这里插入图片描述

二、DES

1、DES基本原理

  • DES算法是属于对称密码的分组加密算法

  • 秘钥长64位,56位参与运算,其余8位为效验位( 8 , 16 , 32 , 40 , 48 , 56 , 64 )

  • 当n个64位明文数据块都经过DES加密处理后,所得到的n个64位密文数据块串在一起就是密文。

2、DES的基本结构

DES算法的基本流程如下图所示,对于一个64位的分组,首先对它进行初始置换,然后进行16圈的迭代,迭代中每一圈的密钥不同,之后对结果进行逆初始置换,得到密文。

在这里插入图片描述

(1)初始值化(IP)

将明文块进行换位,置换表示是固定的。使用64位秘钥将64位的明文输入块变成密文输出块。
(下表)第一位58表示该位置存放明文中的第58位字符。

5850423426181002
6052443628201204
6254463830221406
6456484032241608
5749413325170901
5951433535271103
6153453737291305
6355473939311507

由于初始置换是固定公开的函数,因此没有密码的意义。作用不大,它们的作用在于打乱原来输入x的ASCII码字划分的关系。经过初始置换之后,64位明文分成了两组L和R,各32位。由于这种方法软件实现较为麻烦,所有很多软件实现都删去了初始置换。经过初始置换,64位的输入得到了两个32位的输出。
例如:
64位明文输入块是 x1,x2…x64,经过初始置换后是x58,x50…x7,则 L0=x58,x50…x8;
R0=x57,x49…x7;

(2)加密处理

经过IP处理后,进行16轮完全相同的迭代运算。每一次迭代都要压缩秘钥参与。

轮函数

轮函数F由3个部分组成:扩展置换(E盒),非线性代换(S盒)和线性置换(P盒)。

E扩展置换

将32位输入扩展为48位输出
在这里插入图片描述
其扩展规则按下表进行:
经过扩展置换,32位的输入得到48位的输出。

在这里插入图片描述
例如:

在这里插入图片描述

S盒压缩处理
  • 经过扩展的48位明文和48位秘钥进行异或运算后,再使用8个S盒压缩处理得到32位数据。
  • 将48位输入等分为8块,将6位输入压缩为4位输出。

![在这里插入图片描述](https://img-blog.csdnimg.cn/51ada4353f2a4334958351cdf914d875.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oKfMjPvvIjvvIk=,siz在这里插入图片描述
在这里插入图片描述第三行15列对应上表(8个6进4出S盒)的值是13再转换为二进制1101,也就是说将111111—>1101。

P盒置换

S盒所得的结果再经过P盒置换。至此,一次轮函数操作完毕。
P盒作用只是进行简单的位置置换,把一位换成另一位。

在这里插入图片描述

(3)逆初始置换(IP^-1)

和初置换一样,将经过16轮变换后的明文从高到低编号(最高位为1号,最低位为64号),按照编号填在逆初始置换表中进行一次换位。

408481656246432
397471555236331
386461454226230
375451353216129
364441252206028
353431151195927
342421050185826
33141949175725

初始置换和逆初始置换是互逆的,所以经过逆初始置换将换位后的64位二进制数变回原来的顺序。

3、DES子密钥生成

DES的初始64位密钥通过置换选择PC-1得到有效的56位密钥。这56位分为2个28位数据C0和D0。每轮迭代中Ci-1和Di-1分别循环左移1位或2位,移位后的值作为下一轮的输入,同时也作为置换选择PC-2的输入,通过置换选择PC-2产生一个48位的输出,即为一个子密钥。64位密钥生成了16个48位的子密钥。
例如:

在这里插入图片描述

在这里插入图片描述PC-1表(用于置换选择)

在这里插入图片描述移位次数表
在这里插入图片描述

PC-2(用于置换选择2)

在这里插入图片描述4. DES算法安全性分析

一般来说,密码攻击手段有两种:蛮力攻击(穷尽密钥搜索)和分析攻击。DES算法遭受批评的原因主要有:

4. DEC算法安全性分析

密钥空间太小,易受蛮力攻击
S-盒设计准则保密的,有可能已经存在利用S-盒数学属性的分析攻击,但是只有DES设计者知道(详见DES历史)
然而到目前为止,尚未发现能高效破解DES的攻击方式,不过通过蛮力攻击的方式能够比较容易的破解单重DES,因此对大多数程序而言,单重DES已经不再使用,取而代之的是3DES和AES。

部分图片来源于网络,新手小白,如果有错误,请大佬指点。谢谢!
  • 14
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Dan Boneh 是一位著名的密码家和计算机科家,他开设的密码基础课程被广泛认为是密码的理想选择。 在 Boneh 的密码基础课程中,生将密码的基本概念、原则和技术。课程内容涵盖了对称加密、公钥加密、哈希函数、数字签名等关键密码算法和协议的深入讲解。 在课程开始的阶段,Boneh 会简要介绍密码的历史背景和基本概念,然后逐步引入重要的密码算法。生将习如何使用对称加密算法来保护数据的机密性,如何使用公钥加密算法来实现安全的通信,以及如何使用哈希函数来验证数据的完整性。 此外,课程还将涵盖一些高级密码主题,如数字签名和零知识证明等。生将习如何使用数字签名算法来验证数据的身份和完整性,以及如何使用零知识证明来实现安全的认证和身份验证。 Boneh 的密码基础课程注重理论与实践相结合,生将有机会参与编写和分析密码算法的代码。通过实践,生将更深入地理解密码的核心概念和实际应用。 总而言之,Dan Boneh 的密码基础课程是一门全面且深入的密码课程,能够帮助生建立扎实的密码基础,为深入研究密码或从事密码相关工作打下坚实的基础。毫无疑问,这是一门高品质的密码课程,值得推荐给对密码感兴趣的生和从业人员。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值