网络安全_密码学实验_对称加密算法DES
网络安全_密码学实验_对称密码非对称密码_加密算法DES RSA
- 一、实验环境
- 二、对称加密DES
- 1.理解DES算法原理
- 2.加密过程
- 3.解密过程
- 三、运行结果
一、实验环境
PyCharm 2019.2.4 (Professional Edition) & Python 3.7
二、对称加密DES
1.理解DES算法原理
2.加密过程
2.1首先第一步要从文件中读取明文;
Python中内置了很多的库,在这里直接调用open函数来读取文本,选择r模式,表示只读操作
2.2 对明文进行字符转换成ASCII码,再转换成比特流,每64位分一组,最后不足的用0补齐
2.3 对密钥进行字符转换成ASCII码,再转换成比特流,每64位分一组,最后不足的用0补齐
2.4 对每组的64位比特进行IP置换
这一步比较简单,将比特流进行IP置换,核心其实就是置换的IP盒,将明文比特流中的每一位,按照IP盒中的顺序,重新排序:即盒中第x位数字为y,表示将64一组的明文比特流的第y位,放在x位。
2.5 生成子密钥,得到16个子密钥,封并且存放在列表中待使用。
密钥是按照64位一组进行的划分,有64位,其实有效位仅为56位,需要通过PC-1盒先选择出有效的该56位:和明文一样,这里也需要分成左右两个部分,每个子部分是28位对该28位,进行重复左移,第LS1,LS2,LS9,LS16次是循环左移1位变换,其他为循环左移2为变换这里将循环左移的位数,写在一个列表SHIFT中,方便调用,每一轮左移,都会得到一个56位子密钥,需要再通过PC-2选择出最终的48比特的子密钥。原理图如下
2.6 将明文分成L,R两组,各32位。对得到的L,R进行16轮的Feistal变换
其中,F函数是DES算法最核心的部分,在此,讲解一下一轮变换的具体步骤:
1) 首先使用E盒,将明文32bit拓展为48bit,
然后与子密钥进行异或运算
得到的结果按每组6位分为8组;再经过S盒,从6位中选择出4位,得到32bit
经过P盒置换后,得到最终32位结果
2.7 再使用IP-1函数将L,R合并为密文比特流
2.8 最后将密文比特流转换成密文字符保存。
3.解密过程
关于解密过程,和加密过程原理是相同的,仅仅是密钥选择顺序不同。如下图:
三、运行结果
运行本程序,显示功能清单,选择使用DES加密或者DES解密。首先,选择1,然后输入明文(明文长度不受限制),接着输入密钥,回车,显示加密后的内容。
然后,选择2,接着输入密钥,回车,显示明文。
网络安全_密码学实验_对称加密算法DES相关推荐
- 网络安全_密码学实验_非对称加密算法RSA
网络安全_密码学实验_非对称加密算法RSA 一.实验环境 二.非对称加密RSA 1.理解RSA算法原理 2.加密过程 解密过程 一.实验环境 PyCharm 2019.2.4 (Professiona ...
- Java实现密码学工具,集成了对称加密算法DES,AES,IDEA,公开加密算法RSA,ECC,散列算法MD5,SHA1,CRC32,以及RSA,DSA,ECDSA数字签名验证示例。
密码学综合工具 前言 git网址 项目结构 项目预览 String与byte[]互转 通过`String`类转换 通过`Base64`互转[jdk-8] 前言 我们网络信息安全的实验...要我们找各种 ...
- 对称加密算法DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES。
对称加密算法:DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES. 1.对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文 ...
- java 对称加密 教程_Java 对称加密算法DES 的使用教程
前面一篇我写了对称加密算法IDEA的使用教程<Java 对称加密算法IDEA 的使用教程>.今天我们来学习另外一个对称加密算法DES.DES算法使用相对广泛一些,一些老的项目中可能会遇到. ...
- JAVA加密解密→术语、密码分类、OSI与TCP/IP安全体系、Base64、消息摘要算法MD/SHA/MAC、对称加密算法DES/AES/PBE、非对称加密算法DH/RSA/EIGamaI
术语 密码分类 OSI与TCP/IP安全体系 JAVA安全 Base64算法 消息摘要算法MD 消息摘要算法MD图解 消息摘要算法SHA 消息摘要算法SHA图解 消息摘要算法MAC 消息摘要算法MAC ...
- 迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践(1)
迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践 0.相关文章 1.导入所使用的包 2. 定义迷宫 3.定义迷宫动作 4.策略参数θ转换为行动策略π 5.定义随机移动函数 6.定义使智 ...
- 写给开发人员的实用密码学 - 国密对称加密算法SM4实现要点
在上一篇文章<写给开发人员的实用密码学 - 对称加密算法>中,介绍了现代密码学中非常重要的加密解密算法,国密标准中 SM4/SMS4 就是一种对称加密算法.本文将介绍密码库 libtomc ...
- 对称加密算法-DES以及DESede算法
一.简述 对称加密算法就是能将数据加解密.加密的时候用密钥对数据进行加密,解密的时候使用同样的密钥对数据进行解密. DES是美国国家标准研究所提出的算法.因为加解密的数据安全性和密钥长度成正比.des ...
- des算法密码多长_密码学中的多个DES
des算法密码多长 This is a DES that was susceptible to attacks due to tremendous advances in computer hardw ...
最新文章
- Mono 把 .NET 应用程序移植到 Linux
- 【Python之旅】第五篇(一):Python Socket通信原理
- 使用Python将Excel中的数据导入到MySQL
- C++多态案例二-制作饮品
- 浅谈C++类(5)--友元
- STM32F1笔记(三)UART/USART
- 【转】人工智能-1.1.1 什么是神经网络
- 连接真机开发安卓(Android)移动app MUI框架 添加购物车等——混合式开发(四)
- 修改数据库端口为51433
- 【Python】蟒蛇绘制(三种方式+import用法)
- 你与顶级架构师的差距,可能就在这个数据中台解决方案
- 论文总结Graph Neural Networks-A review of methods and Applications
- java 财付通支付_微信微信支付已拿下51%的份额,远超支付宝的41%
- ubuntu16.04 NFS 文件共享设置
- 湛江景点旅游攻略!究竟有哪些你不容错过的景点?
- 中软防水坝 怎么卸载_卸载中软防水墙软件
- 机器人专用符文_lol机器人新版符文搭配推荐 s8布里茨新版符文配置攻略
- auto.js 基于控件的操作
- 小米电视android刷机,小米电视怎么root 小米电视如何安装第三方软件 解决方法图解...
- Airflow基础架构简介
热门文章
- 团建活动随感(r11笔记第9天)
- 几种常用内存管理底层介绍
- 大数据-玩转数据-阿里云获取AccessKey步骤
- 深度学习平台demo(一)- C#如何调用python文件
- 在keil中使用bdata型可位寻址全局变量
- 比excel好用,还能解决数据孤岛问题,这款报表工具千万别错过
- 呼叫中心和电话营销系统相关知识--中继线路
- 关于ttyS与ttySAC
- linux制作deepin启动盘制作工具,深度启动盘制作工具(Deepin Boot Maker)下载_深度启动盘制作工具(Deepin Boot Maker)官方下载-太平洋下载中心...
- mysql快速建表工具_我所知道的MYSQL快速建表的3种方法