目录

一、DES介绍

二、Feistel网络

1)一轮的具体步骤

2)三轮加密与解密

Feistel网络总结:


一、DES介绍

DES以64比特为一分组进行加解密(一般来说DES的密钥长度为64比特,但是实际为56比特,每7个比特会设置一个用于错误检测的比特);由于DES每次只能加密64比特,若果要加密的明文较长,需要对DES加密进行迭代

DES的加密与解密:

DES的基本结构称为Feistel网络,在Feistel网络中加密的各个步骤称为轮,整个加密的过程就是称为轮的循环。DES就是一种16轮循环的Feistel网络

二、Feistel网络

Feistel网络中的一轮:

1)一轮的具体步骤

1)将输入的数据被左右两半等分处理

2)将输入的右侧直接发送到输出的右侧

3)将输出的右侧发送到轮函数

4)轮函数根据右侧和子密钥,计算出一串比特序列

5)将得到的比特序列与左侧数据进行XOR运算,并将结果最为加密后的左侧

注:子密钥为本轮加密所使用的密钥,每一轮中都使用一个不同的子密钥;由于只在一轮中使用,且为局部密钥,故称为子密钥

由于右侧没有被加密,所以使用不同的子密钥对一轮进行重复处理若干次,并每两轮之间将左右两侧的数据对调

解密计算就是将加密计算进行反序操作

2)三轮加密与解密

3轮加密计算:

使用相同的子密钥运行Feistel网络就可将数据还原(第一次为加密,第二次为解密)

3轮解密计算:

Feistel网络总结

1)由此可以看出,Feistel网络论述可以任意增加,无论增加多少轮的运算,都不会发生无法解密的情况

2)加密时,无论使用任何函数作为轮函数都可正确解密(即使该函数没有反函数,因此轮函数可以设计的任意复杂)

3)加密和解密可以使用完全相同的结构来实现(在Feistel网络的一轮中,右侧没有经过任何处理,从而保证了数据的可解密性;因为没有任何处理的右侧是解密时的必要信息)

密码篇——对称加密—DES相关推荐

  1. 密码篇——对称加密—AES

    目录 AES介绍 Rijndael加密中的一轮: Rijndael解密中的一轮: 对三种对称密码的使用: AES介绍 Rijndael于2000年被选为新一代的标准密码算法--AES 在AES规格中, ...

  2. 密码篇——对称加密—3DES

    目录 3重DES介绍 3DES加密: 3DES解密: 3重DES介绍 DES现在可以在现实时间内暴力破解出来,所以使用三重DES来代替DES 三重DES:为了增加DES的强度,将DES重复3次三次所得 ...

  3. 【加密】对称加密DES和非对称加密AES、数字签名|非对称加密--公钥和私钥的区别

    目录 对称加密DES和非对称加密AES.数字签名 对称加密 1.1 定义 1.2 优缺点 1.3 常用对称加密算法 非对称加密( Asymmetric Cryptography ) 非对称加密(现代加 ...

  4. 对称加密DES和TripleDES

    原文地址: http://www.cnblogs.com/chnking/archive/2007/08/14/855600.html 一.  对称加密 对称加密,是一种比较传统的加密方式,其加密运算 ...

  5. [转载]对称加密DES和TripleDES

    一. 对称加密  对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码).因此,通信双方都必 ...

  6. 对称加密DES、3DES、AES的计算过程

    目录 一.流密码与分组密码 二.DES计算过程 密钥操作 明文操作 1)明文编排 2)16轮迭代 三.3DES 四.AES(也叫RIJNDAEL算法) State 密钥编排 循环4​​​​​​​轮  ...

  7. Java加密算法—对称加密(DES、AES)

    目录 1.概述 2.加密模式 2.1 ECB 2.2 CBC 3.填充模式 4.对称加密.解密实现 1.概述 对称加密就是采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,也称为单密 ...

  8. 密码篇——非对称加密

    目录 非对称密码介绍 公钥通信流程: 公钥密码无法解决的问题: 公钥密码算法: 针对RSA的攻击 其他公钥密码: 总结: 非对称密码介绍 在对称加密中,加密与解密使用的密钥是相同的,因此必须向接收者配 ...

  9. 对称加密-DES加密

    示例代码 des加密算法 Cipher :文档 https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html#getInstan ...

最新文章

  1. python学习------tab补全
  2. 北京招聘 | 美团视觉智能中心招聘视觉算法实习生
  3. python怎么导入数据集keras_python – 如何为Keras准备数据集?
  4. C#中将原表复制到新表
  5. 语义分割——语义分割数据集的笔记
  6. 基于OpenVINO的多输入model optimizer(Tensorflow)
  7. 【codevs1907】【方格取数3】二分图最大带权独立集
  8. Android Studio 常用快捷键
  9. SQL数据库-第一次试验-表与视图的基本操作
  10. 零基础转行学编程技术难吗?
  11. HEG安装教程以及闪退问题解决
  12. 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例
  13. iPhone 15 高端版本万元起步;华为授权 OPPO 使用其 5G 技术;DeepMind 推出 AI 编剧|极客头条
  14. 很有哲理的句子,每天都值得看一遍
  15. 本科就学人工智能有意义吗?
  16. java游戏服务端实现
  17. 系统封装Windows XP sp3专业版
  18. undefined symbol
  19. js内置对象中的String
  20. 计算机天才倒追学霸,《百岁之好,一言为定》王安宇再演计算机天才,倒追学霸校花!...

热门文章

  1. 5G边缘计算与算力网络(PPT)
  2. 数据中心业务价值永续的密码——施耐德电气全生命周期服务
  3. redis安装 linux步骤,【linux安装redis完整步骤】
  4. Java 散点图 数据库 代码_java – 来自数据库的jfreechart中的散点图
  5. 成功解决ValueError: Data is not binary and pos_label is not specified
  6. Python编程语言学习:两行代码输出根目录下所有子文件夹的绝对路径、相对路径
  7. Py之fvcore:fvcore库的简介、安装、使用方法之详细攻略
  8. Py之pyserial:Python的pyserial库的简介、安装、使用方法之详细攻略
  9. 转载《全国研究生考试专业课资料大全(部分资料)》
  10. 2018-11-25-今日总结