密码学入门——DES与AES

news2024/11/16 1:20:16

文章目录

    • 参考书目
    • 一、编码与异或
      • 1.1 编码
      • 1.2 异或
    • 二、DES与三重DES
    • 三、AES

参考书目

图解密码技术,第三版

一、编码与异或

1.1 编码

计算机的操作对象并不是文字,而是由0和1排列而成的比特序列。无论是文字、图像、声音、视频还是程序,在计算机中都是用比特序列来表示的。

执行加密操作的程序,就是将表将现实世界中的东西映射为比特序列的操作称为编码(encoding)。

例如midnight这个词,我们可以对其中的每个字母逐一进行编码,这种编码规则叫作 ASCII。

1.2 异或

下面是一个非常简单的例子,比特序列的异或,用于理解对称加密
在这里插入图片描述
在这里插入图片描述

二、DES与三重DES

DES是一种对称密钥加密算法,全称为数据加密标准(Data Encryption Standard),最早由IBM公司在1970年代末期开发,是最早应用于计算机通信安全的加密算法之一。DES使用56位密钥来加密和解密数据,它将明文分成64位的块,并使用密钥对每个块进行加密。DES算法使用的是分组密码工作模式中的电子密码本模式(ECB)。

DES算法曾经被广泛使用,但随着计算机技术的发展,它的密钥长度相对较短,易于被暴力破解,安全性受到了质疑。因此,在1998年,DES的密钥长度被增加到了三重DES(3DES),这是将DES算法应用三次。3DES的密钥长度为168位,提供了更高的安全性,但是速度较慢。

尽管DES算法已经被认为不再安全,但是DES算法仍然具有历史意义,在加密领域有一定的地位。同时,DES算法的设计思路和算法原理也对后来的加密算法的设计产生了重要影响。目前,更安全的加密算法,如AES(高级加密标准)和RSA(非对称加密算法),已经被广泛使用。

由于这两种标准在实际中已经几乎不使用,因此不做过多介绍

三、AES

AES代表高级加密标准(Advanced Encryption Standard),是一种对称密钥加密算法,用于加密和解密电子数据。它曾经被称为Rijndael算法,是由比利时密码学家Joan Daemen和Vincent Rijmen在1998年设计的。

AES算法使用128位、192位或256位密钥来加密和解密数据。它被广泛应用于许多领域,包括保护计算机文件、网络通信和移动设备数据等。由于其高度的安全性和速度,AES算法已经成为许多国家和产业标准的一部分,包括美国政府采用的加密标准。

Rijndael与AES的区别

Rijndael是由比利时密码学家Joan Daemen和 Vincent Rijmen设计的分组密码算法,于2000年被选为新一代的标准密码算法———AES。

Rijndael的分组长度和密钥长度可以分别以32比特为单位在128比特到256比特的范围内进行选择。但是在AES的规格中,分组长度固定为128比特,密钥长度只有128、192和256比特三种。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

短视频矩阵管理系统源码开发:视频批量剪辑,分发功能开发示例

短视频矩阵管理系统开发,首先对服务器要求: 源码所需服务器配置 1、规格:最低8核16G 2、硬盘:系统盘40-100G,数据盘不低于100G 3、带宽:10M 4、系统:CentOS7(务必选择7.*) 部署过程中&…

设计模式之结构型模式---代理模式

目录 1.概述2.代理模式类图3.应用场景3.1 功能增强3.2 控制访问 4.实现4.1 静态代理的实现4.1.1 实现静态代理模式的步骤4.1.2 静态代理的缺点 4.2 动态代理的实现4.2.1 Java JDK 动态代理的实现MethodInvocationHandlerProxy 4.2.2 JDK动态代理的使用方法4.2.3 JDK动态代理的实…

本内容由【想发APP】创始人编写:uniAPP申请百度广告后,开发者必须要空包签名验证应用的所有权,实现的详细内容如下

Android获取签名 注意先安装好jdk和jre,然后配置好环境变量 说明 空包签名需要本地配置jdk环境 Windows 安装JDK及环境变量的配置 命令行方式 命令格式: jarsigner -verbose -keystore [签名文件路径] -signedjar [签名后apk的文件路径] [未签名apk的文…

对顶堆学习笔记

对顶堆学习笔记 文章目录 **对顶堆学习笔记**介绍例题洛谷 P1168 中位数code 介绍 对顶堆是由一个大顶堆和一个小顶堆组合而成的数据结构,与传统堆维护最大数不同,对顶堆用于动态维护第k大的数。 对于对顶堆,我们可以用两个优先队列来表示两…

IllegalArgumentException: OnNoRibbonDefaultCondition异常与Maven Helper插件解决jar包冲突

在搭建Spring Cloud项目时,引入了不同版本的jar,导致项目启动时报错: main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.Bea…

Python 制作英文学习词典(简易版)

前言 今日分享 Python 制作英文学习词典,大家都可以尝试。 题目 制作英文学习词典。编写程序制作英文学习词典,词典有3个基本功能:添加、查询和退出。程序读取源文件路径下的txt格式词典文件,若没有就创建一个。词典文件存储方…

arcgis js 4.x加载自定义坐标系的arcgis server发布的wms服务

一、问题描述 一般城市本身用的都是自己定义的城市(本地)坐标系,没有对应公开的EPSG代码,如下图如果直接加载自定义坐标系的wms服务,直接会报错。 var customProjLayer new WMSLayer({url: "http://10.1.8.37:6…

封装一个带el-form的,带el-table的,带分页的,带搜索查询的dialog组件,很使用的二次封装组件。

#封装dialog小案例 提示:这是我工作中封装的代码,很使用,需要的可以拿去, 在我们的代码中往往会出现点击按钮出现弹窗进行操作,那么我们就需要对dialog进行一个二次封装。 下边是大概的一个样式。 ##对组件进行二次…

C语言中一维数组及二维数组的运用

1、int arr[] {12,3,4,5,6}; int * p arr; int * q &arr[1]; 其中arr是数组名,代表了整个数组的首元素地址,这个是一个常量,放在常量存储区,所以在给int*p赋值的时候可以不用带&,而下面的arr[1]则代表数…

unidbg或者java层解密方法IDEA中打包成jar包供python调用方法

一、导出jar包方法 (1)配置jar包参数 (2)创建生成jar包 成功生成! 二、Python代码调用 import jpypejvmPath jpype.getDefaultJVMPath() d unidbg-android.jar # 对应jar地址 jpype.startJVM(jvmPath, "-ea&q…

cloudflared tunnel后台启动

前期视频链接 先前台启动,本文参考 cloudflared tunnel --url localhost:88 run ruoyu 或者 cloudflared tunnel --url localhost:88 --no-chunked-encoding run ruoyu找到你的uuid.json 文件 创建你的config.yaml 或config.yml 内容如下 uuid 配置自己的 url: …

创建员工表并按要求完成数据

mysql> create table employee( id int primary key, name varchar(50), gender enum(男,女) default 男, salary int ); Query OK, 0 rows affected (0.01 sec)mysql> mysql> desc employee; ------------------------------------------------------ | Field | T…

spring重点标签有哪些

<bean>标签 id属性:在容器中Bean实例的唯一标识&#xff0c;不允许重复 class属性:要实例化的Bean的全限定名 scope属性:Bean的作用范围&#xff0c;常用是singleton(默认)和prototype <property>标签:属性注入 name属性:属性名称 value属性:注入的普通属性值 ref属…

Perfetto概览

1、Perfetto 简介 Perfetto是谷歌提供的一个用于性能检测和 trace 文件抓取分析的生产级开源工具包。它可以帮助我们进行应用层面以及系统层面的 trace 文件抓取、native/java 内存剖析。它还提供了一个强大的库能够帮助我们在 web 网页上对抓取的trace 文件进行可视化分析&am…

java项目之农产品供销服务系统(ssm+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的农产品供销服务系统。 开发环境&#xff1a; 后端&#xff1a; 开发语言&#xff1a;Java 框架&#xff1a;ssm&#xff0c;mybatis JDK…

关于chrome禁止混合内容造成的问题

混合内容 chrome 对混合内容的定义 是指 存储于http协议下的静态资源与https协议下的资源混用 Chrome官方相关说明 chrome 通过安全策略将 http强制转换为https 这会导致存储于http协议下的 文件出现协议问题从而无法访问 例&#xff1a; 从http文件服务器中引用一张图片到配…

LinearAlgebraMIT2_1_TheColumnSpaceOfAContainsAllVectorsAx

对于Axb&#xff0c;我们要迅速想到线性组合&#xff0c;如下&#xff0c; 我们也可以使用rank秩来反应一个矩阵的特征&#xff0c;如果满秩则可以表示整个向量空间&#xff0c;如上只有两个independent column&#xff0c;它的rank2&#xff0c;表达一个plane平面。 接下来我…

一款玩法十分经典的RPG游戏《QQ宠物大乐斗2》

文章目录 介绍界面介绍游戏主界面&#xff1a;出城界面&#xff1a; 战斗系统主动战斗被动战斗 技能系统主动技能被动技能五神技狂龙傲天拳惊天混元掌灵气寒霜指道威无极真气八卦迷踪腿 道具系统装备系统装备品质装备展示装备获得方式 玩家升级系统通过升级增加属性点使用道具更…

MySQL复习指南

1.数据类型 【数值型】 int或者integer&#xff0c;大小为4个字节&#xff0c;范围&#xff1a;&#xff08;大约&#xff09;-21.5亿~21.5亿&#xff1b; bigint&#xff0c;大小为8个字节&#xff1b; float大小为4个字节&#xff1b; double大小为8个字节&#xff1b; …

为什么要做海外应用市场排名

谷歌和苹果iOS应用商店的算法关键指标&#xff0c;都是基于确保应用商店推荐的应用可以满足大部分用户的需求。基于此&#xff0c;应用覆盖的关键词&#xff0c;应用评分和评论&#xff0c;和应用获取的下载量所体现的用户体验数据&#xff0c;对我们的应用能否获得商店高排名都…