密码基础知识(3)---对称密码体制

news2024/12/23 23:51:12

目录

一、对称密码概念

二、别名

三、对称密码体制的优缺点:

1、对称密码体制的缺点:

2、对称密码体制的优点:

四、对称密码的分类

1、序列密码

2、分组密码

五、分组密码的分组模式

1、ECB模式:Electronic CodeBook mode(电子密码本模式)

(1)特点:

(2)对ECB的攻击方式:

2、CBC 模式:Cipher Block Chaining mode (密码分组链接模式)

3、CFB 模式:Cipher FeedBack mode (密文反馈模式)

4、OFB模式:Output FeedBack mode( 输出反馈模式)

5、CTR模式:CounTeR mode(计数器模式)

 六、分组模式对比

七、术语解释



一、对称密码概念

对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的。

二、别名

别名:对称密码体制--共享密钥密码--对称加密算法--私钥加密算法--秘密密钥算法--单密钥算法-- 传统密码算法 

三、对称密码体制的优缺点

1、对称密码体制的缺点

  1. 密钥分发需要安全通道。发送方如何安全、高效地把密钥送到接收方是对称密码体制的软肋,对称密钥的分发过程往往很烦琐,需要付出的代价较高。

  2. 密钥量大,难以管理。多人用对称密码算法进行保密通信时,将极大地增加密钥管理(包括密钥的生成、使用、存储、备份、存档、更新等)的复杂性。

  3. 难以解决不可否认的问题。因为通信双方拥有同样的密钥,所以接收方可以否认接收到某消息,发送方也可以否认发送过某消息,即对称密码体制很难解决鉴别认证和不可否认的问题。

  4. 密钥交换缺乏安全性保证。如果密钥交换不安全,密钥的安全性就会丧失。特别是在电子商务环境下,当客户是未知的、不可信的实体时,如何使客户安全地获得密钥就成为一大难题。

2、对称密码体制的优点

  1. 加密和解密的速度都比较快,具有很高的数据吞吐率,不仅软件能实现较高的吞吐率,还易于硬件实现,硬件加密 / 解密的处理速度更快。

  2. 对称密码体制容易实现。根据对称密码体制中只存在一个单一的密钥的这种特性,单钥加解密算法可通过低费用的芯片来实现,特别是便于硬件实现和大规模生产。

  3. 对称密码体制中使用的密钥相对较短。

  4. 密文的长度往往与明文长度相同。

四、对称密码的分类

对称密码分为:序列密码和分组密码

1、序列密码

(1)常见的序列密码:

国内ZUC
国外
SNOW(如 SNOW2.0、SNOW 3G)、RC4

(2) 序列密码概念

 将明文消息按字符逐位进行加密。

  利用密钥产生一个密钥流Z=Z1Z2Z3…,然后利用此密钥流依次对明文X=X0X1X2...进行加密,这样产生的密码就是序列密码,也称流密码。密钥流由密钥流发生器f产生:zi=f(k,si),这里的si是加密器中存储器(记忆元件)在i时刻的状态,k是密钥。序列密码方案的发展是模仿“一次一密”系统的尝试。

2、分组密码

(1)常见的分组密码:

国内SM4
国外
数据加密标准(DES),三重数据加密算法(TDEA,也称 3DES),高级加密标准(AES)

(2)分组密码 概念

在分组密码中将明文消息分组(每组有多个字符),逐组进行加密。

  分组密码(block cipher)的数学模型是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。

序列密码分组密码
加密方式将明文消息按字符逐位进行加密。在分组密码中将明文消息分组(每组有多个字符),逐组进行加密。
优点
  • 转换速度快
  • 低错误传播
  • 硬件实现电路更简单
  • 扩散性好
  • 插入敏感
缺点
  • 低扩散(意味着混乱不够)
  • 插入及修改的不敏感性
  • 加解密处理速度慢
  • 存在错误传播
适用场景世界军事、外交等领域构造伪随机数生成器、流密码、认证密码和哈希函数
不适用场景不适用于资源受限、低功耗、物联网等新的应用场景

五、分组密码的分组模式

在GB/T 17964-2021 信息安全技术 分组密码算法的工作模式中分组模式共有9种

  1. 电码本(Electronic Code Book,ECB)模式
  2. 密文分组链接(Cipher BlockChaining,CBC)模式
  3. 密文反馈(Cipher Feedback,CFB)模式
  4. 输出反馈(Output Feedback,OFB)模式
  5. 计数器(Counter,CTR)模式
  6. 分组链接(Block Chaining,BC)模式
  7. 带密文挪用的 XEX可调分组密码模式 (XTS)
  8. 带泛杂凑函数的计数器(HCTR)模式
  9. 带非线性函数的输出反馈(OutputFeedback with a Nonlinear Function,OFBNLF)模式

本次主要介绍其中的五种

1、ECB模式:Electronic CodeBook mode(电子密码本模式)

(1)特点:

  • 将明文分组加密之后的结果将直接成为密文分组。
  • 相同的密文分组会被转换成相同的明文分组。(根据重复的明文分组可以作为线索来推测密文,存在一定的风险)
  • 当最后一个明文分组的内容小于分组长度时,需要用一些特定的数据进行填充( padding)

(2)对ECB的攻击方式:

修改密文分组顺序,相应的明文也会改变,攻击者无需破译密码就能操纵明文

2、CBC 模式:Cipher Block Chaining mode (密码分组链接模式)

在 CBC 模式中,首先将明文分组与前一个密文分组进行XOR 运算,然后再进行加密。(XOR :异或运算)

其中涉及的初始向量为:随机产生的长度为分组长度的随机比特序列。

(1)特点:

  • 无法对中间的明文分组进行加密。
  • 密文分组中有一个分组损坏了(例如由于硬盘故障导致密文分组的值发生了改变等 )。在这种情况下,只要密文分组的长度没有发生变化,则解密时最多只会有 2个分组受到数据损坏的影响

(2)对CBC的攻击方式:

  • 填充提示攻击

填充提示攻击( Padding Oracle Attack )是一种利用分组密码中的填充部分来进行攻击的方法。在分组密码中,当明文长度不为分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组长度。在填充提示攻击中,攻击者会反复发送一段密文,每次发送时都对填充的数据进行少许改变。由于接收者(服务器)在无法正确解密时会返回一个错误消息,攻击者通过这一错误消息就可以获得一部分与明文相关的信息。这一攻击方式并不仅限于 CBC 模式而是适用于所有需要进行分组填充的模式。

  • 初始向量攻击

3、CFB 模式:Cipher FeedBack mode (密文反馈模式)

(1)特点:

  • 前一个密文分组会被送回到密码算法的输入端。所谓反馈,这里指的就是返回输人端的意思。
  • 明文分组没有通过密码算法直接进行加密
  • 明文数据可以被逐比特加密,因此我们可以将 CFB 模式看作是一种使用分组密码来实现流密码的方式。
  • 密码算法的输出相当于一次性密码本中的随机比特序列。由于密码算法的输出是通过计算得到的,并不是真正的随机数,因此 CFB 模式不具备像一次性密码本那样理论上不可破译的性质。

(2)对ECB的攻击方式:

  • 重放攻击

4、OFB模式:Output FeedBack mode( 输出反馈模式)

(1)特点:

  • 密码算法的输出会返回到密码算法的输入中
  • 通过将“明文分组”和“密码算法的输出”进行 XOR 来产生“密文分组”

 

5、CTR模式:CounTeR mode(计数器模式)

(1)特点:

  • CTR模式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码。
  • 每个分组对应一个逐次累加的计数器,并通过对计数器进行加密来生成密钥流。也就是说,最终的密文分组是通过将计数器加密得到的比特序列,与明文分组进行 XOR 而得到的。
  • CTR 模式中可以以任意顺序对分组进行加密和解密,因此在加密和解密时需要用到的“计数器”的值可以由 nonce 和分组序号直接计算出来。
  • 能够以任意顺序处理分组,可以实现并行计算。在支持并行计算的系统中,CTR模式的速度是非常快的。

(2)对CTR的攻击方式: 

     比特反转:

      CTR 模式的密文分组中有一个比特被反转了,则解密后明文分组中仅有与之对应的比特会被反转,这一错误不会放大。

 

 六、分组模式对比

模式名称优点缺点备注
ECB
模式
 
Electronic
CodeBook
电子密码本模式
 
  • 简单
  • 快速
  • 支持并行计算(加密、解密)
  • 明文中的重复排列会反映在密文中
  • 通过删除、替换密文分组可以对明文进行操作
  • 对包含某些比特错误的密文进行解密时,对应的分组会出错
  • 不能抵御重放攻击
不应使用
CBC模式
 
Cipher BlockChaining
密文分组链接模式
 
  • 明文的重复排列不会反映在密中
  • 支持并行计算(仅解密)
  • 能够解密任意密文分组
  • 对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应比特会出错
  • 加密不支持并行计算
CRYPTREC 推荐;《实用密码学》推荐
CFB模式
 
Cipher-FeedBack密文反馈模式
  • 不需要填充(padding)
  • ·支持并行计算(仅解密)
  • 能够解密任意密文分组
  • 加密不支持并行计算
  • 对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应比特会出错
  • 不能抵御重放攻击
CRYPTREC推荐
OFB
模式



 
Output-FeedBack输出反馈模式
  • 不需要填充(padding)
  • 可事先进行加密、解密的准备
  • 加密、解密的使用相同结构
  • 对包含某些错误比特的密文进行解密时,只有明文中相对应的比特会出错
  • 不支持并行计算
  • 主动攻击者反转密文分组中的某些比特时,明文分组中相对应的比特也会被反转
CRYPTREC 推荐
CTR
模式

·

 
CounTeR
计数器模式
  • 不需要填充(padding )
  • 可事先进行加密、解密的准备
  • 加密、解密使用相同结构
  • 对包含某些错误比特的密文进行解密时,只有明文中相对应的比特会出错
  • 支持并行计算(加密、解密)

主动攻击者反转密文分组中的某些比特时,明文分组中相对应的比特也会被反转

CRYPTREC 推荐《实用密码学》推荐

七、术语解释

1、初始向量initialization vector
IV
在密码变换中,为增加安全性或使密码设备同步而引入的用于数据变换的起始数据

2、计数器 counter
长度为  比特的比特序列,用于计数器模式注:n 是分组密码的分组长度

3、填充 padding

给一个数据串附加额外比特的操作

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

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

相关文章

Node【Node.js 20】新特性

文章目录 🌟前言🌟Node.js 20: 一次重要的升级和改进🌟Internationalization API Update🌟端口管理器🌟字符串处理🌟 更好的调试工具🌟 Crypto模块的更新🌟总结🌟写在最后…

【unity项目实战】3DRPG游戏开发05——动画、画质优化和shader的使用

摄像机跟随 摄像机跟随人物的方法有很多,其他方法可以看完另一篇文章 unity控制摄像机跟随玩家三种办法 添加虚拟相机 设置宽容度,相机跟随就会有一个缓慢的跟随效果 设置相机高度,也可以ctrl+shift+f修改相机位置 希望看的是人物的中心,可以在人物内新建一个空子节点…

【算法与数据结构】6 学会对算法进行性能测试

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于算法与数据结构体系专栏,本专栏对于0基础者极为友好,欢迎与我一起完成算法与数据结构的从0到1的跨越 算法性能测试 一、前情回顾二、算法性能测试1.生成测试用例2.使用测…

“递归三要素”寻踪(浅析递归“精典”框架,领略递归优雅秀气;看到有“递归算法优化”的操作,余试剖之)

浅析递归“精典”框架,领略递归优雅秀气。看到有“递归算法优化”的操作,余试剖之。 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是…

界面交互篇:个人中心页布局样式与逻辑交互开发

微信小程序云开发实战系列-答题积分赛小程序 界面交互篇:个人中心页布局样式与逻辑交互开发 个人中心页效果图 个人中心布局与样式实现 页头布局 在my.wxml中,编写布局代码:

电视盒子什么牌子好?内行力荐五大目前最强的电视盒子

电视盒子什么牌子好是很多人在挑选电视盒子时会纠结的问题,因工作原因我每天都会接触到各种电视盒子,进行拆机维修。这几年发布过很多电视盒子的测评内容,今天我将要分享的是目前最强的电视盒子,对配置有要求的朋友们可以收藏起来…

Ahut周赛1

1.还原AhutOj 如图,位置1和2的最大值是3,位置1可以直接放3,同理,位置5可以直接放5 位置1和位置2的最大值是3,位置2和位置3的最大值是4,位置3和位置4的最大值是4,所以位置2只能取3和4的最小值&am…

学顶教育:注安工程师不同级别考试形式也不同?

注册安全工程师分为三个等级,即:初级(助理)、中级、高级。 其中,中级安全工程师报考者无需先参加初级考试,只要符合中级安全工程师要求即可直接报考。 不符合中级安全工程师注册条件且满足初级申请条件的&…

向量基础个人思维训练_纹理采样边缘做旧效果的推导

之前光照demo的玻璃盒子边缘感觉太锐利了,于是想看看能不能让面的边缘逐渐变黑,这样应该会更接近于真实的拼接效果。 首先,玻璃盒子每个面的纹理采样坐标设定如下: 已知采样坐标范围是(0,0)~(1,1)这个矩形范围&#xff0c…

【代理设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 代理模式(Proxy Pattern)是一种结构型设计模式,用一个类来代理另一个类或几个类的功能。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 延迟初始化(虚拟代理)。如…

Talk预告 | AAAI‘23 Oral 北京大学陈嘉毅:自然条件下基于三维点云的手物联合位姿追踪与重建

本期为TechBeat人工智能社区第488期线上Talk! 北京时间4月6日(周四)20:00,北京大学计算机学院博士——陈嘉毅的Talk将准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “自然条件下基于三维点云的手物联合位姿追踪与重建”&#xf…

iOS - 内存管理

一、App 内存分布 二、OC对象的内存管理 iOS 中,使用引用计数来管理 OC 对象的内存,新创建的 OC 对象引用计数默认是1,当引用计数减为0,OC对象就会销毁,释放其占用的内存空间。调用 retain 会让 OC 对象的引用计数 1&…

perf生成火焰图

文章目录 1,top发现webserver进程空转情况下CPU占用高达200%2,使用性能分析工具perf来进行分析2.1,抓取采集样本2.2,使用perf简单分析性能数据 3,火焰图3.1,生成火焰图3.2,将生成的.svg文件用浏…

电视盒子哪个好?数码小编盘点2023电视盒子排行榜

随着网络剧的热播,电视机又再度受宠,电视盒子也成为不可缺少的小家电。但面对复杂的参数和品牌型号,挑选时不知道电视盒子哪款最好,小编根据销量和用户评价整理半个月后盘点了电视盒子排行榜前五,对电视盒子哪个好感兴…

python编程课后练习答案:一批书几天能买完,勾股数组,个位数字与十位位数字之和除以10所得余数刚好是其百位,剪刀、石头、布猜拳游戏

一、编程题目 编程题目: 4、已知有一批书共1020本,以后每天都买掉一半还多2本,设计程序求出几天能买完。 5、凡是满足x^2y^2z^2的正整数数组(xYz)就称为勾股数组(如345)。请找出任意一个正整数n以内的所有勾股数组 6、编写代码找出满足下面…

不懂如何搭建Web自动化测试环境?这篇文章教你如何上手

摘要: 本文将介绍如何搭建Web自动化测试环境,使用的工具包括Selenium WebDriver和JUnit。同时,本文还提供了详细的代码示例,帮助读者更好地理解和实践相关的知识。 目录 一、前言 二、环境配置 1.安装JDK 2.安装Eclipse 3.下…

对话AI顶尖大牛周明老师:大模型的机遇和挑战?

Datawhale学习 分享人:周明老师,Datawhale 特邀嘉宾 这次 Datawhale开源学习 特别邀请了周明老师分享: 周明,澜舟科技创始人兼CEO,中国计算机学会 CCF 副理事长、NLP和大模型领域的顶尖大牛。 1991年就从NLP重镇哈工大…

typeScript安装以及typeScript配置

1. 什么是typeScript ? 它强调了 TypeScript 的两个最重要的特性——类型系统、适用于任何规模。 包含js的所有的元素,能运行js代码,支持ES语法,是一种开源、跨平台的编程语言。就是js的超 集。 TypeScript 是添加了类型系统的 JavaScri…

Java并发编程 —— ThreadLocal详解

一、什么是ThreadLocal ThreadLocal用于提供线程内部共享的变量,每个线程在访问ThreadLocal实例的时候都可以获得自己的、独立初始化的变量副本,这样线程间互不干扰,从而避免了线程安全问题。 比如我们知道SimpleDateFormat是线程不安全的&…

LVS负载均衡+keepalived高可用

准备准备五台虚拟机 192.168.255.128 MASTER 192.168.255.134 BACKUP 192.168.255.130 Nginx节点服务器1 192.168.255.131 Nginx节点服务器2 192.168.255.132 客户端验证 一、配置节点服务器 1、配置虚接口lo:0 cd /etc/sysconfig/network-scripts/ cp ifcfg-…