详解语义安全(semantically secure)

news2024/11/16 7:49:36

目录

一. 引入

二. 密文与明文

2.1 通俗性理解

2.2 定理

2.3 定理理解

三. 语义安全的第一个版本

3.1 基本理解

3.2 定理

3.3 定理理解

四. 语义安全的第二个版本

4.1 直观解释

4.2 小结


一. 引入

密码学中安全加密要求:敌手(adversary)根据密文(ciphertext)不能推导出关于明文(plaintext)的任何信息。

本文将重点介绍语义安全(semantic security)的理解。

二. 密文与明文

2.1 通俗性理解

密码学的目标:密文不会泄露明文的任何一比特信息。

Enc:加密方案

Dec:解密方案

Gen:产生密钥。在不外加条件的情况下,通常认为Gen算法输出的密钥为n比特的均匀分布。

Message:明文。l比特可写作:

在理想条件下,攻击者在拿到密文后,猜测明文m的第i个比特(可以写做m^i)的概率为1/2.也就等同于胡乱猜测。

2.2 定理

PPT:probabilistic polynomial-time algorithm 概率多项式时间算法

negl:negligible 可忽略函数

假定某对称加密方案的明文是固定长度的,写做:

明文的长度为l,第i位比特。

给定任意的PPT敌手A,以下式子是满足的:

通常认为明文m与密钥k是均匀分布的:

需要注意的是,敌手A是具有随机性的。加密算法Enc也是有随机性的。

2.3 定理理解

证明过程比较繁琐,建议了解的小伙伴略过此部分。

本小节给出一个有意思的安全性归约证明(proofs by reduction)。

对于密文Enc(m),如果敌手可以确定出明文的第i个比特会发生什么?

换句话说,如果有两个明文m0与m1,这两个明文的第i个比特不一样。敌手就可以区分出这两个明文对应的密文。很明显这违反了我们加密的目标。

密码学需要构造两个敌手A和A',通过归约证明,来验证安全性。

引入一个PPT的敌手A,以及比特i:

第一个集合I0代表所有第i个比特为0的比特串:

第二个集合I1代表所有第i个比特为0的比特串:

明文m0要么来自于I0,要么来自于I1.而且两者的概率肯定是相等的。由此可得:

两个概率均代表敌手猜对的概率。

接下来我们构建另外一个敌手A'

第一步:均匀选取m0与m1,如下:

第二步:给定密文c。将密文c输入到敌手A的程序中:

如果A输出0,那么b'=0;如果A输出1,那么b'=1.

因为A是多项式时间的,所以A'也是多项式时间的。

对于敌手A'来讲,将其试验的结果表示为:

核心:当A成功时,A'也就成功了。由此可得:

第一个概率代表A'的试验输出1,也就是A'成功的概率;

第二个概率代表A成功的概率;

第三行代表分成两种情况;

第四行代表猜对明文m的第i个比特。

因为密码方案(Enc,Dec)是安全的。所以A'成功的概率是不会优于1/2,也就是:

最终可得敌手A不会猜出明文m的任意1比特信息:

三. 语义安全的第一个版本

3.1 基本理解

更进一步的目标:给定明文m的分布D,我们希望没有PPT敌手可以从密文学习到关于明文m的任意函数f信息。

我们希望给定密文Enc(m),敌手正确计算f(m);

敌手根据m的分布,直接计算f(m);

我们希望这两者的概率是一样的。也就是密文并没有起到任何辅助的作用,这样才能满足密码学的要求。

3.2 定理

(Enc,Dec):固定明文长度的对称加密方案,其中明文长度为l

明文的分布为D:

A与A'均为PPT算法

函数f定义为:

以下两个概率相减是可忽略的:

第一个概率:明文m是根据分布D选取的,密钥k是n长的均匀分布。算法A与加密Enc本身会引入随机性。

第二个概率:明文m是根据分布D选取的,算法A'会引入随机性。

3.3 定理理解

证明过程比较繁琐,建议了解的小伙伴略过此部分。

假定有两种明文。第一个是从分布D中随机选取,第二个是全为1的比特串,也就是:

Enc_k(m)\quad Enc_k(1^l)

如果加密方案是安全的,那么PPT敌手无法区分这两个密文。

接下来我们按密码学的语言来进行解释。

从分布D中选取m0.

确定m1为:

密文c可以是对m0进行加密,也可以是对m1进行加密。

将该密文输入到算法A中。如果A可以输出f(m),那么试验结果为0.

情况1:给定对m的加密,输出f(m)

情况2:给定对全为1的加密,输出f(m)

这两者其实是相等的。

四. 语义安全的第二个版本

本小节介绍是最全面的版本。

4.1 直观解释

明文为任意分布,可以由某些多项式时间算法产生Samp

可以允许敌手额外获取某些关于明文的信息h(m)。

消息的长度是任意的,该长度敌手可获取。|m|代表明文的长度

综上目前有两个多项式时间可计算的函数f与h

语义安全要求以下表达式是可忽略的:

明文输入依靠算法:

密钥k均匀选取,Enc和A,还有A'本身具有随机性。

第一个概率理解:敌手A拥有密文Enc(m),外部信息h(m)。尝试猜测f(m)的值

第二个概率理解:A'的目标也是尝试猜测f(m)的值,但只知道m的长度与h(m)的值。

语义安全要求A和A'猜测的概率是相等的。

换句话说,语义安全要求密文Enc(m)不会泄露关于f(m)的任何信息。

4.2 小结

语义安全跟不可区分安全是等效的。

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

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

相关文章

“百板齐发“ — 一个拥有上百个独特看板的代码

精选100套AXURE可视化数据大屏看板 产品经理高效工具 高保真原型模板 赋能智慧城市 元件库 AXURE9.0版本,所有页面均可编辑,部分地图与实现放大缩小,拖拉拽的功能。 01.水质情况实时监测预警系统 02.全国停车云实时数据监测系统 03.中国移…

【系统分析师】-综合知识-补充知识

1、在软件设计中,通常由着眼于“宏观的”软件架构开始,由着眼于“微观的”构件模块结束。 即测试应该从“微观”开始,逐步转向“宏观”。 2、数据备份是信息系统运行管理时保护数据的重要措施。增量备份可针对上次任何一种备份进行&#xf…

海康VisionMaster使用学习笔记7-Group模块

Group模块的使用 1. 添加图像源,导入图片 2. 添加快速匹配 对匹配框区域进行顶点检测 并循环10次(匹配框个数 从而检测出所有顶点)。 3. 添加Group工具 拖一个Group模块 点击设置 输入设置 添加图像源输入数据 添加快速匹配的匹配框 4. 双击Group工具块进入 添加…

网络原理知识总结

一、网络模型 1.1 osi七层参考模型 物理层:连接通信链路、传输比特流数据链路层:数据封装成帧,在节点与节点间实现可靠物理地址寻址,进行差错校验、流量控制网络层:逻辑地址寻址,路由选择 IP(IPV4IPV6) I…

Oracle start with connect by prior 递归查询

基本语法 select … from tablename where 条件1 start with 条件2 connect by 条件3(PRIOR);条件1:相当于基本的筛选数据 条件2:递归查询起始条件 条件3:连接条件,其中用PRIOR表示上一条记录的结果作为本次查询的条件&#xff0…

后端开发刷题 | 二叉树的前序遍历

描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 数据范围:二叉树的节点数量满足 1≤n≤100 ,二叉树节点的值满足 1≤val≤100,树的各节点的值各不相同 示例 1: 示例1 输入: {1,#,2,3} 返…

攻击实现摄像头、gvm、openvas安装

网络安全 前言1、kali 发现主机2、[mac地址](https://mac.bmcx.com/#google_vignette)查询3、openvas 安装openvas使用1、添加主机目标2、新建扫描任务3、开始扫描4、查看扫描信息。如果有cve那说明可用 前言 全国网络安全标准化技术委员会:https://www.tc260.org.…

【hot100篇-python刷题记录】【移动零】

R5-双指针 要用双指针来实现,想到一个办法,左右两边双指针,当左边指针找到0就和右指针交换值,要减少操作次数的话,就顺便判断一下右指针是否为0即可,最后肯定是双指针碰撞的。 不对,不能交换值…

普通人如何让AI应用于我们的办公?

最强小说推文——AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 当你学会用好AI,真的可以帮助你提高工作效率,把更多的时间放在摸鱼上! 想要AI应用…

Emacs25.x版本之重要特性及用法实例(一百五十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列…

探索Jinja2的神秘力量:Python模板引擎的魔法之旅

文章目录 探索Jinja2的神秘力量:Python模板引擎的魔法之旅1. 背景:为何选择Jinja2?2. 什么是Jinja2?3. 安装Jinja2:一键启程4. 基础用法:Jinja2的五大法宝5. 实战演练:Jinja2在场景中的应用6. 常…

xssnote

XSS漏洞: 文章目录 XSS漏洞:反射型:第一个例子: 实体,url,和js的Unicode编码img——重要标签浏览器解析机制:容纳字符实体:字符引用:RCDATA状态中的字符引用: URL解析:解…

前端css 动画过渡类型以及不同写法

动画过渡简写和复合写法 拆开写 transition-property: height background; 单独设置宽高或者all transition-duration: 2s; 运动时间 transition-timing-function: linear; 不同速度类型 transition-delay: 5s; 延迟时间 <!DOCTYPE h…

相似度计算方法-编辑距离 (Edit Distance)

定义 编辑距离&#xff08;Edit Distance&#xff09;&#xff0c;也称为Levenshtein距离&#xff0c;是一种衡量两个字符串相似度的方法。它定义为从一个字符串转换为另一个字符串所需的最少单字符编辑操作次数&#xff0c;这些操作包括插入、删除或替换一个字符。 计算方法 …

圣鑫堂胀气保健油:专为婴幼儿设计

圣鑫堂胀气保健油是一款专为婴幼儿设计的产品&#xff0c;旨在帮助宝宝缓解胀气不适。胀气是宝宝成长过程中常见的问题&#xff0c;由于婴儿的消化系统尚不成熟&#xff0c;容易出现胀气、腹痛等症状。圣鑫堂麻油通过纯天然的中草药成分&#xff0c;温和有效地帮助宝宝排出肠道…

解决电脑(Win10)内存不足问题:设置虚拟内存

文章目录 1. 虚拟内存1.1 介绍1.2 虚拟内存优点1.3 虚拟内存缺点 2. 为什么要修改虚拟内存&#xff1f;3. win10虚拟内存设置多少合适&#xff1f;4. Win10如何设置虚拟内存? 1. 虚拟内存 1.1 介绍 虚拟内存是一种计算机系统内存管理技术&#xff0c;它使得计算机能够使用比…

为什么精英都是时间控.md

作者&#xff1a;桦泽紫苑 一句话读书感想&#xff1a;高效利用时间&#xff0c;高效工作&#xff0c;幸福生活。 不在时间管理上下功夫&#xff0c;人真的会被工作“忙杀” 1.时间管理术四原则 1.1 以专注力为中心对时间分配 灵活运用大脑的黄金时间&#xff0c;将效率提高…

AI视频创作原理

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…

Paimon实战 -- paimon系统表与审计监控

简介 paimon系统表按照元数据的分类&#xff0c;划分了如下10个系统表&#xff0c;通过系统表可以获取paimon表各维度的元数据和消费组信息。通过收集这些元信息&#xff0c;不仅可以排查问题使用&#xff0c;还可以构建统一的paimon元数据管理和消费组管理平台&#xff0c;比如…

远程调用-OpenFeign(二)

目录 1.OpenFeign最佳实践 1.1Feign继承方式 1.1.1创建一个Module 1.1.2引入依赖 1.1.3编写接口 1.1.4打Jar包 1.1.5服务提供方实现接口 1.1.6服务消费方继承接口 1.1.7测试 1.2Feign抽取方式 1.2.1创建一个Module 1.2.2引入依赖 1.2.3编写API 1.2.4打Jar包 1.2.…