当前位置:网站首页>数据加密标准(DES)概念及工作原理
数据加密标准(DES)概念及工作原理
2022-06-26 17:45:00 【lmn_】

0x01 数据加密标准DES介绍
数据加密标准(Data Encryption Standard)(DES)是一种用于加密数字数据的对称密钥算法。密钥长度为56位,安全性不强,但它在密码学的进步中具有很大的影响力。
0x02 数据加密标准历史
数据加密标准DES于1970年代初在IBM开发,是由美国的国家标准局(NBS,即现在的国家标准与技术会NIST)开启,在1972年时,当时美国国家标准局对美国政府计算机安全的研究发现需要一个政府范围的标准来加密未分类的敏感信息。
基于Horst Feistel的早期设计,应国家标准局(NBS)的邀请提交给保护敏感、非机密电子政府数据的候选者。

1973年,NBS 征求了符合严格设计标准的密码方案,但还没有达到要求。1974年,IBM提交了 1973-1974 年间基于早期算法Horst Feistel的Lucifer密码开发的密码。
DES 在 1976 年 11 月被批准为联邦标准,在与国家安全局(NSA) 协商后,NBS选择了一个稍微修改过的版本(加强了针对差分密码分析,但削弱了针对暴力攻击),作为官方的联邦信息处理标准(FIPS)发布1977 年的美国。
0x03 数据加密标准DES工作原理
数据加密标准DES是块加密算法,它采用固定长度的明文位串,按64位块长度分块进行加密数据,算法通过把数据分为以64为单位的块,把64位明文作为DES的输入,产生64位密文输出。
DES为对称加密算法,也就是加密与解密使用相同的算法和密钥。
密钥表面上由 64 位组成,实际使用了其中的 56 位,8位仅用于检查奇偶性之后被丢弃。
与其他分组密码一样,DES 本身并不是一种安全的加密方式,而是必须在一种操作模式下使用。解密使用与加密相同的结构,但使用的密钥顺序相反。

通过上图可以看出,一共经历了 16 次相同的阶段,也称为称为轮次。在开始之前,先通过IP,就是将64位分为两个32位,并交替处理。Feistel 结构确保解密和加密是非常相似的过程——唯一的区别是子密钥在解密时以相反的顺序应用,算法的其余部分是相同的,简化了繁杂的实现过程。
图片中⊕符号表示异或(XOR)
F 函数将半个块与一些密钥一起打乱。然后将 F 函数的输出与块的另一半组合,并在下一轮之前交换两半。最后一轮结束后,交换两半;这是Feistel结构的一个特点,它使加密和解密过程相似。
Feistel (F) 函数
- 扩展:使用扩展置换,通过复制一半位,将 32 位半块扩展为 48 位。输出由 8 个 6 位(8 × 6 = 48 位)片段组成,每个片段包含 4 个相应输入位的副本,以及从每个输入片段到任一侧的紧邻位的副本。
- 键混合:使用⊕(XOR)操作将结果与子键组合。16 个 48 位子密钥(每轮一个)是使用密钥调度从主密钥派生的。
- 替换:在子密钥中混合后,块在被S盒或替换盒处理之前被分成 8 个 6 位块。根据以查找表形式提供的非线性变换,8个S盒中的每一个都将其6个输入位替换为4个输出位。
S-box 提供了 DES 安全性的核心——没有它们,密码将是线性的,并且很容易被破解。 - 排列:最后,来自 S-box 的 32 个输出根据固定排列P-box重新排列。在排列之后,本轮中每个 S-box 输出的比特在下一轮中分布在四个不同的 S-box 中。
S-box(substitution box)也叫“密码置换盒”,用于提高安全系数
References: https://en.wikipedia.org/
边栏推荐
- Don't believe it, 98% of programmers are like this
- Preparing for the Blue Bridge Cup and ccf-csp
- 宝藏又小众的CTA动画素材素材网站分享
- The latest masterpiece of Alibaba, which took 182 days to produce 1015 pages of distributed full stack manual, is so delicious
- 二分查找法-1
- Leetcode - 226. Retourner l'arbre binaire (bfs)
- RuntimeError: CUDA error: out of memory自己的解决方法(情况比较特殊估计对大部分人不适用)
- Knapsack problem with dependency
- Leetcode topic [array] -283- move zero
- The king of Internet of things protocol: mqtt
猜你喜欢

Niuke network: Design LRU cache structure design LFU cache structure

The latest masterpiece of Alibaba, which took 182 days to produce 1015 pages of distributed full stack manual, is so delicious

Microservice architecture practice: business management background and SSO design, SSO client design

Leetcode HOT100 (22--- bracket generation)

Tsinghua & Shangtang & Shanghai AI & CUHK proposed Siamese image modeling, which has both linear probing and intensive prediction performance!

No manual prior is required! HKU & Tongji & lunarai & Kuangshi proposed self supervised visual representation learning based on semantic grouping, which significantly improved the tasks of target dete

SQL injection for Web Security (3)

SIGIR 2022 | University of Hong Kong and others proposed the application of hypergraph comparative learning in Recommendation System

10 cloud security best practices that enterprises need to know

分布式架构概述
随机推荐
map和filter方法对于稀缺数组的处理
How to add an application to the deviceidle whitelist?
Cloud native 02: Alibaba cloud cloud efficient flow pipeline
Rich professional product lines, and Jiangling Ford Lingrui · Jijing version is listed
14 MySQL tutorial insert insert data
Don't believe it, 98% of programmers are like this
【动态规划】剑指 Offer II 091. 粉刷房子
请指教同花顺开户选选择哪家券商比较好?现在在线开户安全么?
Byte interview: two array interview questions, please accept
Niuke network: Design LRU cache structure design LFU cache structure
【QNX】命令
Deployment and operation of mongodb partitioned cluster
分布式架构概述
SIGIR 2022 | 港大等提出超图对比学习在推荐系统中的应用
Platform management background and merchant menu resource management: Design of platform management background data service
Leetcode HOT100 (22--- bracket generation)
牛客网:设计LRU缓存结构 设计LFU缓存结构
Basic requirements: 7 problems in singleton mode
ZCMU--1367: Data Structure
Prometeus 2.34.0 新特性