网络安全_密码学实验_对称密码非对称密码_加密算法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,

  1. 然后与子密钥进行异或运算

  2. 得到的结果按每组6位分为8组;再经过S盒,从6位中选择出4位,得到32bit

  3. 经过P盒置换后,得到最终32位结果

2.7 再使用IP-1函数将L,R合并为密文比特流


2.8 最后将密文比特流转换成密文字符保存。

3.解密过程

关于解密过程,和加密过程原理是相同的,仅仅是密钥选择顺序不同。如下图:

三、运行结果

运行本程序,显示功能清单,选择使用DES加密或者DES解密。首先,选择1,然后输入明文(明文长度不受限制),接着输入密钥,回车,显示加密后的内容。
然后,选择2,接着输入密钥,回车,显示明文。

网络安全_密码学实验_对称加密算法DES相关推荐

  1. 网络安全_密码学实验_非对称加密算法RSA

    网络安全_密码学实验_非对称加密算法RSA 一.实验环境 二.非对称加密RSA 1.理解RSA算法原理 2.加密过程 解密过程 一.实验环境 PyCharm 2019.2.4 (Professiona ...

  2. Java实现密码学工具,集成了对称加密算法DES,AES,IDEA,公开加密算法RSA,ECC,散列算法MD5,SHA1,CRC32,以及RSA,DSA,ECDSA数字签名验证示例。

    密码学综合工具 前言 git网址 项目结构 项目预览 String与byte[]互转 通过`String`类转换 通过`Base64`互转[jdk-8] 前言 我们网络信息安全的实验...要我们找各种 ...

  3. 对称加密算法DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES。

    对称加密算法:DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES. 1.对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文 ...

  4. java 对称加密 教程_Java 对称加密算法DES 的使用教程

    前面一篇我写了对称加密算法IDEA的使用教程<Java 对称加密算法IDEA 的使用教程>.今天我们来学习另外一个对称加密算法DES.DES算法使用相对广泛一些,一些老的项目中可能会遇到. ...

  5. 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 ...

  6. 迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践(1)

    迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践 0.相关文章 1.导入所使用的包 2. 定义迷宫 3.定义迷宫动作 4.策略参数θ转换为行动策略π 5.定义随机移动函数 6.定义使智 ...

  7. 写给开发人员的实用密码学 - 国密对称加密算法SM4实现要点

    在上一篇文章<写给开发人员的实用密码学 - 对称加密算法>中,介绍了现代密码学中非常重要的加密解密算法,国密标准中 SM4/SMS4 就是一种对称加密算法.本文将介绍密码库 libtomc ...

  8. 对称加密算法-DES以及DESede算法

    一.简述 对称加密算法就是能将数据加解密.加密的时候用密钥对数据进行加密,解密的时候使用同样的密钥对数据进行解密. DES是美国国家标准研究所提出的算法.因为加解密的数据安全性和密钥长度成正比.des ...

  9. des算法密码多长_密码学中的多个DES

    des算法密码多长 This is a DES that was susceptible to attacks due to tremendous advances in computer hardw ...

最新文章

  1. Mono 把 .NET 应用程序移植到 Linux
  2. 【Python之旅】第五篇(一):Python Socket通信原理
  3. 使用Python将Excel中的数据导入到MySQL
  4. C++多态案例二-制作饮品
  5. 浅谈C++类(5)--友元
  6. STM32F1笔记(三)UART/USART
  7. 【转】人工智能-1.1.1 什么是神经网络
  8. 连接真机开发安卓(Android)移动app MUI框架 添加购物车等——混合式开发(四)
  9. 修改数据库端口为51433
  10. 【Python】蟒蛇绘制(三种方式+import用法)
  11. 你与顶级架构师的差距,可能就在这个数据中台解决方案
  12. 论文总结Graph Neural Networks-A review of methods and Applications
  13. java 财付通支付_微信微信支付已拿下51%的份额,远超支付宝的41%
  14. ubuntu16.04 NFS 文件共享设置
  15. 湛江景点旅游攻略!究竟有哪些你不容错过的景点?
  16. 中软防水坝 怎么卸载_卸载中软防水墙软件
  17. 机器人专用符文_lol机器人新版符文搭配推荐 s8布里茨新版符文配置攻略
  18. auto.js 基于控件的操作
  19. 小米电视android刷机,小米电视怎么root 小米电视如何安装第三方软件 解决方法图解...
  20. Airflow基础架构简介

热门文章

  1. 团建活动随感(r11笔记第9天)
  2. 几种常用内存管理底层介绍
  3. 大数据-玩转数据-阿里云获取AccessKey步骤
  4. 深度学习平台demo(一)- C#如何调用python文件
  5. 在keil中使用bdata型可位寻址全局变量
  6. 比excel好用,还能解决数据孤岛问题,这款报表工具千万别错过
  7. 呼叫中心和电话营销系统相关知识--中继线路
  8. 关于ttyS与ttySAC
  9. linux制作deepin启动盘制作工具,深度启动盘制作工具(Deepin Boot Maker)下载_深度启动盘制作工具(Deepin Boot Maker)官方下载-太平洋下载中心...
  10. mysql快速建表工具_我所知道的MYSQL快速建表的3种方法