密码篇——对称加密—DES
目录
一、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相关推荐
- 密码篇——对称加密—AES
目录 AES介绍 Rijndael加密中的一轮: Rijndael解密中的一轮: 对三种对称密码的使用: AES介绍 Rijndael于2000年被选为新一代的标准密码算法--AES 在AES规格中, ...
- 密码篇——对称加密—3DES
目录 3重DES介绍 3DES加密: 3DES解密: 3重DES介绍 DES现在可以在现实时间内暴力破解出来,所以使用三重DES来代替DES 三重DES:为了增加DES的强度,将DES重复3次三次所得 ...
- 【加密】对称加密DES和非对称加密AES、数字签名|非对称加密--公钥和私钥的区别
目录 对称加密DES和非对称加密AES.数字签名 对称加密 1.1 定义 1.2 优缺点 1.3 常用对称加密算法 非对称加密( Asymmetric Cryptography ) 非对称加密(现代加 ...
- 对称加密DES和TripleDES
原文地址: http://www.cnblogs.com/chnking/archive/2007/08/14/855600.html 一. 对称加密 对称加密,是一种比较传统的加密方式,其加密运算 ...
- [转载]对称加密DES和TripleDES
一. 对称加密 对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码).因此,通信双方都必 ...
- 对称加密DES、3DES、AES的计算过程
目录 一.流密码与分组密码 二.DES计算过程 密钥操作 明文操作 1)明文编排 2)16轮迭代 三.3DES 四.AES(也叫RIJNDAEL算法) State 密钥编排 循环4轮 ...
- Java加密算法—对称加密(DES、AES)
目录 1.概述 2.加密模式 2.1 ECB 2.2 CBC 3.填充模式 4.对称加密.解密实现 1.概述 对称加密就是采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,也称为单密 ...
- 密码篇——非对称加密
目录 非对称密码介绍 公钥通信流程: 公钥密码无法解决的问题: 公钥密码算法: 针对RSA的攻击 其他公钥密码: 总结: 非对称密码介绍 在对称加密中,加密与解密使用的密钥是相同的,因此必须向接收者配 ...
- 对称加密-DES加密
示例代码 des加密算法 Cipher :文档 https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html#getInstan ...
最新文章
- python学习------tab补全
- 北京招聘 | 美团视觉智能中心招聘视觉算法实习生
- python怎么导入数据集keras_python – 如何为Keras准备数据集?
- C#中将原表复制到新表
- 语义分割——语义分割数据集的笔记
- 基于OpenVINO的多输入model optimizer(Tensorflow)
- 【codevs1907】【方格取数3】二分图最大带权独立集
- Android Studio 常用快捷键
- SQL数据库-第一次试验-表与视图的基本操作
- 零基础转行学编程技术难吗?
- HEG安装教程以及闪退问题解决
- 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例
- iPhone 15 高端版本万元起步;华为授权 OPPO 使用其 5G 技术;DeepMind 推出 AI 编剧|极客头条
- 很有哲理的句子,每天都值得看一遍
- 本科就学人工智能有意义吗?
- java游戏服务端实现
- 系统封装Windows XP sp3专业版
- undefined symbol
- js内置对象中的String
- 计算机天才倒追学霸,《百岁之好,一言为定》王安宇再演计算机天才,倒追学霸校花!...
热门文章
- 5G边缘计算与算力网络(PPT)
- 数据中心业务价值永续的密码——施耐德电气全生命周期服务
- redis安装 linux步骤,【linux安装redis完整步骤】
- Java 散点图 数据库 代码_java – 来自数据库的jfreechart中的散点图
- 成功解决ValueError: Data is not binary and pos_label is not specified
- Python编程语言学习:两行代码输出根目录下所有子文件夹的绝对路径、相对路径
- Py之fvcore:fvcore库的简介、安装、使用方法之详细攻略
- Py之pyserial:Python的pyserial库的简介、安装、使用方法之详细攻略
- 转载《全国研究生考试专业课资料大全(部分资料)》
- 2018-11-25-今日总结