数据加密标准算法DES

数据加密标准算法DES

DES 算法简介

DES 全称为数据加密标准 ,是一种经典的对称密钥分组密码 算法。它于1977年被美国国家标准局采纳为联邦标准,在随后的二十多年里,在全球范围内被广泛应用于金融、通信等领域的商业数据加密。56位有效密钥长度是DES最主要的安全缺陷 。随着计算机算力的飞速提升(摩尔定律),1998年后,专用的"DES破解机"可以在数小时甚至数分钟内通过穷举所有密钥(2^56种可能)来破解DES。因此,DES 已不再安全,不应被用于任何需要安全性的新系统中

DES 算法参数

DES算法采用Feistel 结构,其分组大小为64比特,密钥长度为64比特(密钥总长64位,但其中8位用于奇偶校验,实际有效密钥长度为56位),迭代轮数为16轮。

DES 算法轮函数

将初始置换后的64位数据分成左右两半,各32位(L0和R0),则DES算法的加密轮变换为(Li,Ri)=(Ri-1,Li-1⊕F(Ri-1,RKi));将最终置换后的64位数据分成左右两半,各32位(L16和R16),DES算法的解密轮变换为(Li,Ri)=(Ri+1⊕F(Li+1,RKi),Li+1)。其中轮函数F(X,RKi)=P(S(E(X⊕RKi)))。轮函数如下图所示:

扩展变换E:将32比特的输入扩展为48比特输出,如下图所示:

S盒变换:这是DES最核心、最神秘的非线性部分。将48比特的输入数据平均分为8个6比特块,这8个6比特块依次输入8个对应的的6X4的S盒(s1,s2,s3,s4,s5,s6,s7,s8),如下图所示:

其中(s1,s2,s3,s4,s5,s6,s7,s8),如下图所示:

比特置换P:P为以比特为单位的32比特换位置换,置换表及其逆置换表如下图所示:

DES 算法加密算法

其中IP为初始64比特换位置换,FP为最终64比特换位置换,FP置换为IP置换的逆变换,如下图所示:

DES 算法解密算法

与加密过程完全一致,唯一区别是16 个子密钥的使用顺序相反(RK15用于第一轮,RK0用于最后一轮)。

DES 算法密钥扩展算法

56位密钥的生成过程:

(1)将初始的64位密钥从1到64位进行编号,形成一个矩阵,如下图所示,每一行的第八位将作为奇偶校验位被忽略,于是形成了初始的56位的密钥输入:

(2)接下来使用选择置换表(如下图所示),进行置换操作。

(3)将第(2)步得到的输出按顺序分为左右两个部分,每个部分有28位,分别用

L0和R0来表示,根据轮迭代的轮数,在第1,2,9,16轮时分别将L0和R0循环左移一位,其余轮数时循环左移两位,得到56位的输出。每轮对应的循环移位数如下图所示:

(4)再将第(3)得到的输出按照下图的置换表,进行密钥压缩置换为48位的密钥,得到的是在轮变换里面输入的密钥RKi:

DES 算法总结

简单来说,DES是密码学发展史上的一座里程碑,它首次将现代密码学带入了公众视野并实现了标准化。虽然由于其密钥过短而已被淘汰,但其精巧的Feistel结构和S盒设计思想,至今仍在密码学教育和新算法设计中具有重要价值。

相关推荐
羑悻的小杀马特1 小时前
LFU缓存算法全解:从双哈希+双向链表到O(1)艺术,解锁长期热点守护神
算法·缓存·哈希算法·lfu·双链表
啥都想学点1 小时前
pikachu靶场——暴力破解(Kali系统)
网络安全
Darkwanderor2 小时前
离散化思维的应用
数据结构·c++·算法·哈希算法
左手厨刀右手茼蒿10 小时前
Flutter for OpenHarmony: Flutter 三方库 hashlib 为鸿蒙应用提供军用级加密哈希算法支持(安全数据完整性卫士)
安全·flutter·华为·c#·哈希算法·linq·harmonyos
Frostnova丶19 小时前
LeetCode 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串
算法·leetcode·哈希算法
一名优秀的码农19 小时前
vulhub系列-12-Hackademic.RTB1(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
Codefengfeng21 小时前
kali安装与使用蚁剑(antsword)
web安全·网络安全·系统安全
The_Uniform_C@t21 天前
AWD | ATT&CK实战系列--蓝队防御(一)
网络·学习·网络安全
撩妹小狗1 天前
渗透测试-信息收集篇-上-手动收集
web安全·网络安全