密码学入门——DES与AES

文章目录

    • 参考书目
    • 一、编码与异或
      • 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比特三种。

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

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

相关文章

win系统删除oracle数据文件恢复---惜分飞

有客户联系我们,说win平台下的数据库,在由于空间紧张,在关闭数据库的情况下删除的两个数据文件,导致数据库无法正常访问很多业务表,需要对其进行恢复,查看alert日志发现大概操作,删除文件之后,启动数据库失败 Completed: alter database mount exclusive alter database open E…

【案例实战】SpringBoot整合Redis的GEO实现查找附近门店功能

像我们平常美团点外卖的时候,都会看到一个商家距离我们多少米。还有类似QQ附近的人,我们能看到附近的人距离我们有多少米。 那么这些业务是怎么做的呢?是如何实现 基于位置的附近服务系统呢。 在去了解基于位置的附近服务之前,我…

个人域名邮箱无法给gmail发邮件

问题描述 我注册了一个域名 mydomain.com, 并在此域名下创建了 mailbox,从该邮箱向外发送邮件和接收邮件会失败。 主要是一些配置工作没有做好。 接收邮件 当创建邮箱 xxxmydomain.com,尝试向该邮箱发送邮件时,邮件会被拒收,并…

在Linux中安装RabbitMQ

RabbitMQ下载网址 Socat下载网址 erlang下载网址 RabbitMQ安装包依赖于Erlang语言包的支持,所以需要先安装Erlang语言包,再安装RabbitMQ安装包 通过Xftp软件将这三个压缩包上传到linux中的opt目录下 ,双击即可 在安装之前先查询…

Css基础:盒子模型

1.盒子模型的构成: 边框 外边距 内边距 实际内容 2.table表格的单元格之间的线太粗需要border-collapse:collapse;合并一下边框宽度 3.内边距 padding 4.外边距 margin 块元素水平居中的做法,margin:0 auto; 行内元素和行内块元素 水平居中做…

【Jenkins】Jenkins构建后端流水线

目录 一、新建任务1、输入任务名称,选择构建项目类型(这里我选择的是Maven项目),任务名称一般格式为:项目名称-前后端2、创建成功后的结果 二、配置流水线1、进入刚创建好的任务页面中,点击配置2、General配…

快速入门uniapp——从环境搭建到项目实践

🙂博主:小猫娃来啦 🙂文章核心:快速入门uniapp——从环境搭建到项目实践 文章目录 初步介绍UniApp开发环境搭建下载和安装UniApp开发工具创建新项目(HBuilderX)开发工具界面介绍 UniApp基础知识页面结构页面…

SQLite Expert Professional将ACCESS数据库文件导入到SQLITE

一、下载与安装 下载对应的位数的SQLite Expert:http://www.sqliteexpert.com/download.html ,建议下载professional版本的,功能更加强大。 如果官网进不去可以到百度云下载:https://pan.baidu.com/s/17igndAqQ7SQ57LcjwS4WIQ …

原型模式:如何最快速地clone一个HashMap散列表?

我们还像学习建造者模式一样 思考 什么是原型模式?主要解决哪些问题? 如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象…

关于PHP 使用 Elastic Search8的相关经历

你好! 如果你也是第一次使用ES8和PHP对接使用,这里或许有一些心得可以为你解决一些问题。 本地环境所需工具 windows 版本搭建 Elastic Search 如下图,通过官网下载一个windows版本的Elastic Search 执行.bat文件即可启动 https://localhos…

ChatGPT 有什么新奇的使用方式?

先来看看ChatGPT对此问题如何作答 ChatGPT对此问题如何作答 ChatGPT是什么 ChatGPT是一种基于自然语言处理的语言模型,由OpenAI开发。它是建立在GPT(Generative Pre-trained Transformer)架构的基础上的,采用了深度学习技术。GP…

在树莓派上搭建web站点并发布互联网上线【无需公网IP】

文章目录 概述使用 Raspberry Pi Imager 安装 Raspberry Pi OS设置 Apache Web 服务器测试 web 站点安装静态样例站点将web站点发布到公网安装 Cpolar内网穿透cpolar进行token认证生成cpolar随机域名网址生成cpolar二级子域名将参数保存到cpolar配置文件中测试修改后配置文件配…

Devops系列四(使用argocd部署java应用到k8s容器)

一、说在前面的话 上文已为我们准备好了以下内容: 制作java应用的docker镜像,并推送至镜像仓库上传helm yaml代码至gitlab仓库(此gitlab和java应用所在的gitlab可以独立,也可以在一起,但是不宜在同一个工程&#xff…

Gradio HTML组件详解

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

使用electron打包spring-boot+vue项目开发桌面exe端项目一站式全部解决!专栏有解决报错文章

准备工具 前端:node.js 14以下(直接安装 node.js 即可) 后端:jre 1.8(必须1.8) 工具: Bat_To_Exe_ConverterInno_Setup 汉化版(英文版不支持简体中文,打包出来的安装界面是英文的)我以及给大家汇总完毕直接点击进去下载即可 https://pan.baidu.com/s/1XoA0tj3b4Q…

上位机和树莓派采用USB转TTL模块连接,采用串口通信

采用USB转TTL模块,Linux系统的工控机接USB插口,树莓派的GPIO口接TTL串口,如何编写双向通信程序? USB转TTL-CH340模块 ChatGPT 下面是一个示例,展示了如何使用USB转TTL模块在Linux系统的工控机和树莓派之间进行双向…

Springboot分布式事务

一、先了解什么是本地事务 1. 概念 本地事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器位于同一节点相同数据库上。 又称为传统事务。它是一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的工作单位。例…

【08】STM32·HAL库开发-HAL库介绍 | STM32Cube固件库介绍 | HAL库框架结构 | 如何使用HAL库及使用注意事项

目录 1.初识HAL库(了解)1.1CMSIS简介1.2HAL库简介 2.STM32Cube固件包浅析(了解)2.1如何获取STM32Cube固件包?2.2STM32Cube固件包文件夹简介2.3CMSIS文件夹关键文件2.3.1CMSIS标准规定软件包目录2.3.2Device和Include文…

在Windows环境下安装Elasticsearch 8.8.2

Elasticsearch是一种开源的分布式搜索和分析引擎,被广泛应用于构建实时搜索、日志分析、数据可视化等应用。本文将详细介绍如何在Windows环境下安装和配置Elasticsearch 8。 安装Elasticsearch 步骤1:准备工作 在开始安装之前,确保已满足以…

KMP--高效字符串匹配算法(Java)

KMP算法 KMP算法算法介绍代码演示: KMP算法 KMP算法是为了解决这一类问题,给定一个字符串str1,和一个字符串str2,如果str2属于str1d的字串,则返回字串第一个出现位置的下标,不存在返回-1. 注意: 子串是连续的. 举个例子 str1 “abc123abs” str1 长度假设m str2 “123”; str2…