现代密码学导论-21-分组密码

news2024/11/30 12:28:12

目录

3.6.3分组密码及其操作模式

ECB(Electronic Code Book) 电码本模式 

CBC(Cipher Block Mode) 密文分组链接方式

THEOREM 3.32 CBC模式的CPA安全

连锁CBC模式

OFB(Output Feedback Mode) 输出反馈模式

CTR(Counter) 计数器模式

THEOREM 3.33 CTR多明文PCA安全

THEOREM 3.33 的证明


3.6.3分组密码及其操作模式

分组密码只是(强)伪随机置换的另一个名称。关于伪随机置换,可参考

现代密码学导论-18-伪随机置换_南鸢北折的博客-CSDN博客

对于分组密码F

F是含参数k的,对于任意的k,有如下定义

 

Fk是一个双射函数

n是k的长度,l是分组长度

分组密码和伪随机置换的主要区别是,前者通常只支持一组特定的key/分组长度,特别是不支持任意长度的key

为简单起见,我们将在本节中假设l=n,同时假设消息的长度是n的整数倍

消息记作下面的式子,其中mi∈{0, 1}^n


ECB(Electronic Code Book) 电码本模式 

 

 由于ECB的加密方式是确定性的,因此其显然不能满足CPA安全。更糟糕的是,ECB加密甚至不满足EAV安全。这这因为如果一个分组在明文中重复,那么在密文中也会重复。因此,很容易将由两个相同分组组成的明文的加密与由两个不同分组组成的明文的加密区分开来。

上图说明了ECB加密存在的风险。中间的图是使用ECB模式对左侧图像进行加密;右边的图是使用安全模式对同一图像进行的加密。


CBC(Cipher Block Mode) 密文分组链接方式

在开始加密流程时,先随机均匀选择一个长度为n的初始向量IV,并将其作为初始密文分组,然后将当前明文分组和前一个密文分组的异或,再通过 F 函数生成新的密文分组。具体来讲,我们令

对于i从1到l

 

我们的到密文c为

 

当接收方收到密文c时,解密方式如下

 

由于CBC模式在加密过程中,每次F的计算都依赖于前一次的计算结果,因此其加密过程必须按顺序执行,这意味着其不能通过并行来快速运算

 


THEOREM 3.32 CBC模式的CPA安全

如果F是一个伪随机置换,则CBC模式是CPA安全的


连锁CBC模式

普通的CBC模式有一种有状态的变体,即连锁CBC模式。在加密下一个消息时,前一个密文的最后一个分组被用作IV。这减少了带宽,因为不需要每次都发送一个新的IV。SSL 3.0和TLS 1.0使用这种模式

然而,链式CBC模式很容易受到选择明文攻击。

我们假设敌手A知道

而且知道密文

 

攻击者请求加密m4和m5,其中

 

 

因此敌手就得到了m1


OFB(Output Feedback Mode) 输出反馈模式

要加密消息m,先随机均匀选择一个长度为n的初始向量IV。定义y0 := IV

在CBC模式中,IV作为密文的一部分包含在内,以实现解密。然而,与CBC模式相比,这里并不要求F是可逆的(事实上,它甚至不需要是一种置换

如果F是一个伪随机函数,则OFB模式可以被证明是CPA安全的。

这种模式的优点在于可以在明文到来之前完成一部分yi的计算,从而提高加密的效率。

 


CTR(Counter) 计数器模式

加密的消息分组数l如果满足

 

则选取的初始化向量满足

然后计算伪随机流

 

其中计数器i被编码为一个n/4位的字符串

(当然,初始向量长度和计数器编码长度可以变动,只要满足和为n即可)

第i个分组的加密方式为

和CBC和OFB模式一样,IV作为密文的一部分包含在内,以实现解密

解密不需要F是可逆的,甚至不需要F是置换。

和前面的几种模式相比,CTR是可以完全并行化的,而且该模式还可以单独恢复第i个分组

 


THEOREM 3.33 CTR多明文PCA安全

如果F是一个伪随机函数,那么CTR模式是多明文PCA安全的


THEOREM 3.33 的证明

现代密码学导论-16-选择明文攻击和CPA安全_南鸢北折的博客-CSDN博客

上文中的THEOREM 3.23表明,任何PCA安全的方案同时也是多明文PCA安全的,因此我们只需证明CTR在F是伪随机函数时具有PCA安全即可

但是我们在这里不依赖于THEOREM 3.23,我们将直接证明其满足多明文PCA安全

现代密码学导论-19-基于伪随机函数的CPA安全_南鸢北折的博客-CSDN博客

我们参考上文中THEOREM 3.29 的证明

确定一个PPT敌手A,设q(n)为敌手A在安全参数为n的LR预言机实验中询问预言机的次数的多项式上界函数

现代密码学导论-16-选择明文攻击和CPA安全_南鸢北折的博客-CSDN博客

关于LR预言机实验,详见上文

假设A提交给预言机的消息的分组数l满足

事实上,对于充分大的n,这一定是成立的,因为A是PPT的

Π =(Gen,Enc,Dec)为CTR模式的加密方案

再构建一个新的加密方案,用真随机函数取代CTR模式中的伪随机Fk,记作

这意味着

 

是随机均匀挑选了一个f∈Func_n

我们完全模仿3.29的证明,可以得到A式

考虑实验

带入A式,得到 

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

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

相关文章

C语言学习之路(基础篇)—— 复合类型(自定义类型)

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 结构体 1) 概述 数组:描述一组具有相同类型数据的有序集合,用于处理大量相同类型的数据运算。 结构体:将多个…

工具分享:Springboot+Netty+Xterm搭建一个网页版的SSH终端

一. 简述 搭建一个web ssh,主要是借助websocket和xterm,可以实现一个类似于xshell的效果,如图: 二. 技术栈 这里使用了springboot、netty、jsch、react、Ts,xterm。 这里我用了springboot和netty实现了websocket,js…

稳了,我用 Python 可视化分析和预测了 2022 年 FIFA 世界杯

许多人称足球为 “不可预测的游戏”,因为一场足球比赛有太多不同的因素可以改变最后的比分。 预测一场比赛的最终比分或赢家确实是很难的,但在预测一项比赛的赢家时就不是这样了。在过去的5年中,Bayern Munich 赢得了所有的德甲联赛&#xf…

如何发布一个属于自己的 npm 包

如何发布一个属于自己的 npm 包 start 在日常的工作中,我们会接触很多 npm 包。 例如: npm install jquerynpm install vue/clinpm install axios# ... 等等有时候会想到,构建一个属于自己的 npm 包,应该超级酷吧? …

zabbix基础环境部署

目录 一、环境准备 二、部署LNMP 1、安装Nginx及其依赖包 2、修改nginx配置 3、测试页面 三、部署zabbix服务端 1、下载zabbix 2、安装源码zabbix 3、为zabbix创建数据库与数据库账户 4、搭建Zabbix页面 4.1、第1步 Check of pre-requisites 4.2、第2步 Configure D…

Python代码的编写运行方式

Python代码的编写运行方式介绍 python官方运行环境可到网站https://www.python.org/downloads/找到合适版本下载安装。 安装比较容易,特别强调,安装过程建议勾选“Add Python to PATH”(将Python添加到PATH环境变量)【注1】&…

Docker安装Minio

寻找Minio镜像 Docker Hub 查找官方镜像 下载Minio镜像 下载最新版Minio镜像 docker pull minio/minio等同于 docker pull minio/minio:latest下载指定版本的Minio镜像 docker pull minio/minio:RELEASE.2022-11-26T22-43-32Z.fips检查当前所有Docker下载的镜像 docker …

第六章TCP/IP——网络传输硬件设备

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。个人爱好: 编程,打篮球,计算机知识个人名言:海不辞水,故能成其大;山不辞石…

Linux进程通信之消息队列

目录 1.消息队列的原理: 2.消息队列的接口: (1)创建消息队列 (2)向消息队列发送消息 (3)接收消息 (4)操作消息队列的接口 1.消息队列的原理: 消…

docker 安装 Heimdall 导航页

前言 随着群晖中使用的功能越来越多,各种端口太多容易忘,所以就有了使用导航页的想法(使用收藏夹的朋友除外)。群晖也有自带的WEB套件管理,不过个人感觉相对麻烦,使用 Heimdall 导航页可以设置密码登录&am…

【数字信号调制】16QAM信号调制解调【含Matlab源码 2050期】

⛄一、QAM调制与解调(附实验题目说明) 1 引 言 数字振幅调制、数字频率调制和数字相位调制是数字调制的基础,然而,这3种数字调制方式都存在不足之处。如频谱利用率低、抗多径衰落能力差、功率谱衰减慢、带外辐射严重等。为了改善这些不足,几十年来人们不…

yocto machine class解析之st-partitions-image

yocto machine class解析之st-partitions-image stm32mp157 yocto的meta-st-stm32mp layer中提供了几个class,后续几篇文章重点分析这些class文件: 第一篇就从st-partitions-image.bbclass 开始,st所有创建image的bb文件都会引用st-partitions-image&am…

「UWB」精准定位黑科技,开启座舱雷达新蓝海

基于厘米级定位、超低功率、强抗干扰、超大容量等技术特点,UWB(超宽带)技术在消费电子、智能汽车等领域的应用前景被赋予厚望。 值得一提的是,利用UWB雷达还可实现舱内活体检测、脚踢尾箱等,这意味着新一轮座舱感知革…

【Vue】ref引用,插槽

一、ref 什么是ref? ref用来辅助开发者在不依赖于jQuery 的情况下,获取DOM元素或组件的引用。 每个vue的组件实例上,都包含一个$refs对象,里面存储着对应的DOM元素或组件的引用。默认情况下,组件的$refs 指向一个空对…

Ubuntu20.04下安装nvidia驱动

ubuntu-drivers devices会显示你的电脑上可用的nvidia驱动。只需要安装推荐的版本即可(后面有recommend字样) 打开电脑里的软件和更新app(这里建议换提前换源,阿里源或者清华源) 来到附加驱动这个页面,选…

HTML初识-概念和基本知识

1 . HTML初识-基础认知 HTML标签 1.1 目录 ◆ 基础认知 ◆ HTML标签学习 ◆ 综合案例 1.2 学习目标 ◆ 能够理解HTML的 基本语法 和标签的关系 ◆ 能够使用 排版标签 实现网页中标题、段落等效果 ◆ 能够使用 相对路径 选择不同目录下的文件 ◆ 能够使用 媒体标签 在网页中显示…

ES进阶教程

1.分片Shards 一个索引可以存储超出单个结点硬件限制的大量数据,es提供了将索引划分为多份的能力,每一份都称之为分片.当创建索引时,可以指定想要的分片数量.每个分片本身也是一个功能完善并且相对独立的索引.这个索引可以被放在集群中的任何结点上. 分片的重要性 1.允许水平切…

相控阵天线(九):平面阵列天线综合(不可分离型切比雪夫分布、圆口径泰勒综合、可分离型分布、配相抵消法)

目录简介不可分离型分布不可分离型切比雪夫圆口径泰勒综合可分离型分布可分离切比雪夫综合可分离泰勒综合平面阵列配相抵消法简介 按行、列排列的可分离型矩形平面阵,其阵因子是两个正交排列的直线阵阵因子的乘积。可分离的平面阵方向图在两个主面内是满足预期副瓣…

Docker创建Spring容器【方便服务迁移】

📃目录跳转📚简介:🎃 1.上传jar包🎉2.创建Dockerfile文件🗺️3.生成容器🍥4.查看本地镜像🚀5.运行镜像🔭6.使用工具访问接口🏆总结📚简介&#xf…

网上预约挂号系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…