对称密码算法

news/2025/2/11 14:18:48/文章来源:https://www.cnblogs.com/qswz/p/18709652

1. 定义

对称密码算法加密过程与解密过程使用相同的或容易相互推导得出的密钥,即加密和解密两方的密钥是“对称”的

2. 加解密流程

 

用户通过加密算法将明文变换为密文。密文的具体值由密钥和加密算法共同决定。只有掌握了同一个密钥和对应解密算法的用户才可以将密文逆变换为有意义的明文。

针对不同的数据类型和应用环境,对称密码有两种主要形式:一是序列密码(也称“流密码”​,stream cipher)​,二是分组密码(也称“块密码”​,block cipher)​。我国发布的商用密码算法中的序列密码算法和分组密码算法分别是ZUC和SM4算法。常见的国外序列密码算法有SNOW(如SNOW 2.0、SNOW 3G)​、RC4等;分组密码算法有数据加密标准(DES)​,三重数据加密算法(TDEA,也称3DES)​,高级加密标准(AES)等。

3. 序列密码和分组密码

3.1 区别

  • 序列密码和分组密码的区别在于序列密码是将密钥和初始向量(Initial Vector,IV)作为输入,通过密钥流生成算法输出密钥流(也称扩展密钥序列)​,然后将明文序列和密钥流进行异或,得到密文序列,如图(a)所示;序列密码的特点在于密钥流可以在明文序列到来之前生成。
  • 分组密码首先对明文消息根据分组大小进行分组,再将明文分组、密钥和初始向量(如果有)一起作为输入,通过分组加密算法直接输出密文分组.如图(b)所示;

3.2 初始向量(IV

在对称密码的实际应用场景中,初始向量是一个在加密过程中起到引入随机性作用的随机数,即在加密一批明文数据之前,加密方先要随机生成一个初始向量,并将它和密钥一起输入到加密算法中。每次加密初始向量都必须重新生成,初始向量的引入使得多次分别对同一明文数据使用相同的密钥进行加密,得到的密文是不同的。IV可以不保密。

3.3 分组密码的工作模式

相关国家标准:GB/T 17964-2021《信息安全技术 分组密码算法的工作模式》​。

在分组密码算法中,根据分组数据块链接的组合模式不同,可以分为以下九种工作模式:

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SaaS+AI应用架构:业务场景、智能体、大模型、知识库、传统工具系统

大家好,我是汤师爷~ 在SaaS与AI应用的演进过程中,合理的架构设计至关重要。本节将详细介绍其五个核心层次:业务场景层:发现和确定业务场景 智能体层:构建可复用的智能应用 大模型层:采用最合适的大模型,作为思考推理的核心 知识库:管理企业的核心知识资产 传统工具:传…

50N06-ASEMI吹风筒专用MOS管50N06

50N06-ASEMI吹风筒专用MOS管50N06编辑:ll 50N06-ASEMI吹风筒专用MOS管50N06 型号:50N06 品牌:ASEMI 封装:TO-252 最大漏源电流:50A 漏源击穿电压:60V 批号:最新 RDS(ON)Max:15mΩ 引脚数量:3 沟道类型:N沟道MOS管 芯片尺寸:MIL 漏电流: 恢复时间:ns 芯片材质: …

瑞芯微开发板/主板Android调试串口配置为普通串口方法

本文介绍瑞芯微开发板/主板Android调试串口配置为普通串口方法,不同板型找到对应文件修改,修改的方法相通。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。…

Ubuntu22.04 搭建离线APT源(apt-mirror)

1、应用场景 目前需要在Linux环境下做UE开发,Ubuntu版本使用的是22.04。项目现场是没法连到外网的,所以安装库十分不方便,所以需要搭建一套内网的离线APT源。 2、搭建步骤 2.1 资源拉取 首先需要在联网机器上将资源拉取到本地。 本教程使用使用apt-mirror拉取镜像源,使用ng…

013 Promise对象_Ajax实操

Promise封装Ajax,让网络请求的异步操作变得更简单<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><titl…

题解:P7213 [JOISC2020] 最古の遺跡 3

两种思考方式:值域维度:从原始高度大往小插入柱子,不确定右边是否有最终高度等于它的柱子,并不好记录状态。下标维度:从后往前扫描,注意到前面的对后面的后效性很小,此时不难设出一个基础的状压 DP 方程。为了避免记录后方柱子初始高度出现情况(相同初始高度有且仅有 \…

【车道线检测项目实战】

1-车道数据与标签解读 1.1数据集链接 原项目共使用两个数据集这里出于学习便捷考虑,只使用CULane的部分数据集进行训练 数据集目录1.2 list目录其中list目录下都是文件的路径1.3 frame目录 frame目录下都是视频的节帧 1.4 lable目录 lable目录下都是车道线的信息,肉眼看不出来…

《刚刚问世》系列初窥篇-Java+Playwright自动化测试-12- iframe操作-上篇(详细教程)

1.简介 原估计宏哥这里就不对iframe这个知识点做介绍和讲解了,因为前边的窗口切换就为这种网页处理提供了思路,另一个原因就是虽然iframe很强大,但是现在很少有网站用它了。但是还是有小伙伴或者童鞋们私下问这个问题,那么宏哥就单独写一篇关于iframe网页处理的文章。ifram…

CH585 CH584 CH592 BLE设备的VID和PID

在 BLE(蓝牙低功耗)设备中,PID(Product ID,产品标识符)和 VID(Vendor ID,厂商标识符)有着重要作用,以下为你详细介绍: 区分不同设备与厂商VID 的作用:VID 是由相关管理机构分配给设备制造商的唯一标识符,用于明确设备的生产厂商。例如,像苹果、三星、英特尔等众多…

streamlit入门笔记【1】环境搭建

1. 背景 24年底交代了一个产品排行榜的工作,其实就是把开发测试等各项指标排序,指标获取和存储部分可以用requests和selenium以及xlsx、json分析等完成,展示部分使用了streamlit框架,可以把数据直接运行成简单的web app。本系列笔记将streamlit应用部分做个总结。 2. 环境搭…

012 Promise对象

1、基本概念Promise是异步编程的一种解决方案,比传统的解决方案一一回调函数和事件一一更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言便准,统一了用法,原生提供Promise对象所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步…

CoAT: 基于蒙特卡洛树搜索和关联记忆的大模型推理能力优化框架

研究者提出了一种新的关联思维链(Chain-of-Associated-Thoughts, CoAT)方法,该方法通过整合蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)和关联记忆机制来提升大语言模型(LLMs)的推理能力。区别于传统的单步推理方法,CoAT致力于增强LLM的结构化推理能力和自适应优化能力,…