CTF之密码学(DES)

一、基本原理

DES加密使用相同的密钥进行加密和解密操作。它使用一个56位的密钥(另外8位为奇偶校验位,不直接参与加密过程,因此实际密钥长度为56位),对64位的数据块进行加密,得到64位的密文。加密过程主要包括以下几个步骤:

  1. 密钥生成:根据输入的64位密钥(实际使用56位),通过置换选择1(PC-1)和置换选择2(PC-2)等过程,生成16个48位的子密钥,每个子密钥用于一轮加密过程。
  2. 初始置换:将64位的输入数据块(明文)按照一定的规则进行置换,生成一个新的64位的数据块,作为加密的起始数据。
  3. 分块加密:将初始置换后的64位数据块分成左右两个32位的数据块L0和R0。然后,进行16轮的加密操作,每一轮都包括扩展、异或、S盒替换、P盒替换等操作,并将左右两个数据块交换位置,作为下一轮的输入。
  4. 逆置换:在最后一轮加密完成后,将加密后的左右两个32位数据块进行逆初始置换,得到最终的64位密文。

二、详细步骤

  1. 初始置换(IP置换):将输入的64位明文块进行置换和重新排列,生成新的64位数据块。这一步的目的是增加加密的混乱程度,提高加密强度。

  2. 加密轮次:DES加密算法共有16个轮次,每个轮次都包括扩展、异或、S盒替换、P盒替换和交换左右数据块等操作。

    • 扩展:将右半部分32位数据块R扩展为48位数据块,以便与48位的子密钥进行异或运算。
    • 异或:将扩展后的48位数据块与当前轮次的48位子密钥进行异或运算。
    • S盒替换:将异或运算的结果通过S盒替换为32位输出。S盒替换是一种在密码学中广泛使用的加密技术,用于增强密码的安全性。
    • P盒替换:将S盒替换后的32位输出通过P盒进行置换,得到新的32位数据块。
    • 交换左右数据块:将左半部分数据块L与经过上述操作后得到的右半部分新数据块进行交换,作为下一轮的输入。
  3. 逆置换(FP置换):在最后一个轮次完成后,将经过加密的数据块进行逆初始置换,得到最终的64位密文。逆置换是初始置换的逆过程,用于恢复数据的原始顺序。

三、优缺点

  • 优点:DES加密算法是一种经典的对称加密算法,具有算法简单、易于实现和加密速度快的优点。它在许多领域都有广泛的应用,如数据库加密、文件加密和计算机网络通信等。
  • 缺点:随着计算机技术的发展和破解技术的提高,DES加密算法的安全性逐渐受到质疑。其56位的密钥长度已经不足以抵御现代密码破解技术的攻击。因此,DES加密算法已经逐渐被新的加密算法(如AES)所取代。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/924265.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt程序发布及打包成exe安装包

参考:Qt之程序发布以及打包成exe安装包 目录 一、简述 Qt 项目开发完成之后,需要打包发布程序,而因为用户电脑上没有 Qt 配置环境,所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复制到一个文件夹中,然后再用 Inno Setup 打包工具打包成一个 exe 安装包,就可以…

通过抓包,使用frida定位加密位置

首先我们抓取一下我们要测试的app的某一个目标api,通过抓api的包,得到关键字。 例如:关键字:x-sap-ri 我们得到想要的关键字后,通过拦截 类,寻找我们的关键字,及找到发包收包的位置&#xff0c…

MFC图形函数学习12——位图操作函数

位图即后缀为bmp的图形文件,MFC中有专门的函数处理这种格式的图形文件。这些函数只能处理作为MFC资源的bmp图,没有操作文件的功能,受限较多,一般常作为程序窗口界面图片、显示背景图片等用途。有关位图操作的步骤、相关函数等介绍…

钟睒睒的“傲慢与偏见”

文章内容根据网络内容整理形成 最近,钟睒睒关于绿瓶水不适合长期饮用的言论,在网上引起了一番新的热议,让刚平静不久的包装饮用水竞争,再次掀起一阵波澜,同时,其对于企业家直播带货的等系列看法&#xff0c…

比亚迪降价令背后的反思,创新还是压榨?

科技新知 原创作者丨依蔓 编辑丨蕨影 比亚迪要求供应商明年起降价10%? 近日,网传一封有关比亚迪乘用车要求供应商降价的邮件,署名为比亚迪集团执行副总裁、乘用车首席运营官何志奇。 邮件称,2025年市场竞争将更加激烈&#xff0…

自媒体图文视频自动生成软件|03| 页面和结构介绍

代码获取方式在文本末尾🔚 *代码获取方式在文本末尾🔚 *代码获取方式在文本末尾🔚 *代码获取方式在文本末尾🔚 视频图片生成器 一个基于 Python 和 Web 的工具,用于生成带有文字和语音的视频以及图片。支持多种尺寸、…

(11)(2.2) BLHeli32 and BLHeli_S ESCs(二)

文章目录 前言 1 传递支持 前言 BLHeli 固件和配置应用程序的开发是为了允许配置 ESC 并提供额外功能。带有此固件的 ESC 允许配置定时、电机方向、LED、电机驱动频率等。在尝试使用 BLHeli 之前,请按照 DShot 设置说明进行操作(DShot setup instructions)。 1 传…

逻辑处理器核心指纹修改

navigator.hardwareConcurrency的属性,可以用来获取CPU的逻辑处理器核心数。 1、navigator.hardwareConcurrency接口定义: third_party\blink\renderer\core\frame\navigator_concurrent_hardware.idl // https://html.spec.whatwg.org/C/#navigator.hardwarecon…

Linux下的火墙管理及优化

从功能角度来讲 防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进 从功能实现角度来讲 火墙是系统内核上的一个模块netfilter(数据包过滤机制) 通过netfiler来管理kernel space中的策略 netfilter简介 Netfilter是Lin…

chrome允许http网站打开摄像头和麦克风

第一步 chrome://flags/#unsafely-treat-insecure-origin-as-secure 第二步 填入网址,点击启用 第三步 重启 Chrome:设置完成后,点击页面底部的 “Relaunch” 按钮,重新启动 Chrome 浏览器,使更改生效。

【Vue】Ego商城项目跟做

技术栈 Vue全家桶:Vue VueRouter Vuex Axios ElementUI 依赖安装 网络请求:npm install --save axios --no-fund Element:vue add element 后端相关依赖:npm install --save express cors mysql --no-fund token:np…

ALSA(4) --- CPU DAI实践

CPU_DAI实践 物理拓扑图 上图可知,从dma过来数据,会保存在DAI的一个FIFO队列中,数据是并行过来的各个通道数据,经过shift移位寄存器,再经过P2S并行转串行,再经过DAVC音量控制输出到GPIO端口 音频数据接口…

【开篇】.NET开源 ORM 框架 SqlSugar 系列

01. 前言 ☘️ 1.1 什么是ORM? 对象-关系映射(Object-Relational Mapping,简称ORM),面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对…

EtherCAT Coe对象创建与通信

目录 前言使用SSC工具生成XML填充读写函数测试 前言 EtherCAT协议栈生成参考https://blog.csdn.net/qq_42039294/article/details/144061669 本文默认大家有EtherCAT基础的移植经验 使用SSC工具生成XML 首先确保COE是开启的 打开表格,编辑内容如下 更多的数据类…

Axure农业农村数据可视化大屏模板分享

在当今信息技术飞速发展的时代,数据可视化已成为各行各业提升管理效率、优化决策过程的重要手段。Axure作为一款强大的原型设计工具,凭借其高度的自定义能力和丰富的交互设计功能,在农业农村数据可视化领域展现出强大的潜力。本文将详细介绍A…

conda、pip同时安装包引起混乱问题剖析

一句话总结: 安装版本不一致时会有两个.dist-info文件夹(举例:scapy-2.6.1.dist-info和scapy-2.4.3.dist-info),conda list和pip list依靠这两个文件夹进行包的识别(疑似pip list识别老版本,co…

vue实现滚动条滑动到底部分页调取后端接口加载数据

一、案例效果 二、前提条件 接口返回数据 三、案例代码 子组件 const $emit defineEmits([cloneItem, updateList]);const props defineProps({rightList: {type: Array,},chartTableData: {type: Array as () > ChartListType[],},deleteChartInfo: {type: Object,}…

redis 底层数据结构

概述 Redis 6 和 Redis 7 之间对比&#xff1a; Redis6 和 Redis7 最大的区别就在于 Redis7 已经用 listpack 替代了 ziplist. 以下是基于 Redis 7基础分析。 RedisObject Redis是⼀个<k,v>型的数据库&#xff0c;其中key通常都是string类型的字符串对象&#xff0c;⽽…

arm rk3588 onnx转rknn

一、环境部署&#xff1a; https://github.com/airockchip/rknn_model_zoo/tree/main/examples/yolo11 从该网址下载yolo11的模型。支持80种类型检测 二、下载模型 进入examples/yolo11/model文件夹&#xff0c;执行 ./download_model.sh 如图&#xff1a; 三、模型转换…

Flutter 3.24.5安装配置——2024年11月26日

目录 1️⃣前置安装使用环境配置步骤安装Flutter SDK安装Android SDK修改文件默认安装位置&#xff08;.gradle, AVD&#xff09;开始项目 2️⃣执行结果&#x1fab2;Bug找不到**.jar文件 &#x1f517;参考链接 1️⃣前置安装 使用环境 Windows 11IDEA 2024.2.3Flutter 3.2…