详解语义安全(semantically secure)

目录

一. 引入

二. 密文与明文

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 小结

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

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

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

相关文章

Git使用方法(三)---简洁版上传git代码

1 默认已经装了sshWindows下安装SSH详细介绍-CSDN博客 2 配置链接github的SSH秘钥 1 我的.ssh路径 2 进入路径cd .ssh 文件 3 生成密钥对 ssh-keygen -t rsa -b 4096 (-t 秘钥类型 -b 生成大小) 输入完会出现 Enter file in which to save the key (/c/Users/Administrator/…

【Android】adb devices 出现devices offline的问题

1 问题 adb devices 出现devices offline 2 解决方法 adb kill-serveradb start-server 然后,adb devices查看。 adb devices 问题解决啦。。。💛 💙 💜 ❤️ 💚 💛 💙 💜 ❤️…

雨云美国二区E5v2服务器测评(非广告)

注:本文非广告,非推广 本文长期更新地址: 雨云美国二区E5v2服务器测评(非广告)-星零岁的博客https://blog.0xwl.com/13594.html 今天来测评一下雨云美国二区v2服务器。我测试的这台配置是4-8, 35 M上传&a…

《机器学习》周志华-CH1(绪论)

1.1引言 机器学习(Matchine-Learning)所研究的主要内容是关于在计算机上从数据中产生“模型”(model)的算法,即“学习算法”(learning algorithm)。可以说机器学习(Matchine-Learni…

智能菜谱推荐系统_ct3p7

TOC springboot575智能菜谱推荐系统_ct3p7--论文 第一章 概述 1.1 研究背景 近些年,随着中国经济发展,人民的生活质量逐渐提高,对网络的依赖性越来越高,通过网络处理的事务越来越多。随着智能菜谱推荐管理的常态化&#xff0c…

PYQT实现上传图片,保存图片

代码如下 from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * import sysclass MyWindow(QMainWindow):def __init__(self):super(MyWindow, self).__init__()self.setWindowTitle("图片处理")self.setGeometry(200, 200, 500, …

最全海外广告库大合集,建议收藏!

在当今数字营销的世界中,广告投放的精准性和创意性变得越来越重要。而“海外广告库”作为一种强大的工具,正在被越来越多的广告主和营销专家所使用。本文将深入探讨几大主流的海外广告库,并探讨如何利用它们来提升广告效果。 什么是海外广告…

推荐一个开源的kafka可视化客户端GUI工具(Kafka King)

大佬的博客地址: https://blog.ysboke.cn/posts/tools/kafka-king Github地址: https://github.com/Bronya0/Kafka-King Kafka-King功能清单 查看集群节点列表(完成)支持PLAINTEXT、SASL PLAINTEXT用户名密码认证(完…

[C语言]-基础知识点梳理-文件管理

前言 各位师傅们好,我是qmx_07,今天给大家讲解文件管理的相关知识,也就是常见的 读取,删除一类的操作 文件 为什么要使用文件? 程序的数据是存储在电脑的内存中,如果程序退出,内存回收&…

[Leetcode 61][Medium]-旋转链表

目录 一、题目描述 二、整体思路 三、代码 一、题目描述 原题链接 二、整体思路 首先发现这样的规律:当k大于等于链表中节点总数n时,会发现此时旋转后的链表和kk%n时的旋转后的链表一样。同时对于特殊情况n0和n1时,无论k的值为多少都可以…

认识Mongodb及其Java的连接

什么是Mongodb? MongoDB是一个介于关系数据库和非关系数据库(nosql)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 优点 1.MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。 2.如果负载的增加&#x…

Python中matplotlib使用4

在matplotlib中,可以通过绘制“饼图”来展示各类别在总体中所占的比例。 1 绘制基本“饼图” 通过matplotlib中的pie()函数绘制饼图,代码如图1所示。 图1 绘制基本“饼图”的代码 从图1中可以看出,pie()函数的参数y即为要绘制的数据&#…

使用SSMS连接和查询 SQL Server 实例

简介 SQL Server Management Studio 是用于管理SQL Server基础架构的集成环境。Management Studio提供用于配置、监视和管理SQL Server实例的工具。 此外,它还提供了用于部署、监视和升级数据层组件(如应用程序使用的数据库和数据仓库)的工具以生成查询和脚本。 官方…

现代RTK测量设备的高速发展及其应用前景

RTK(实时动态定位,Real-Time Kinematic)测量设备是利用GNSS(全球导航卫星系统,Global Navigation Satellite System)技术,通过引用基准站与移动站的数据传输机制,实现高精度的位置信…

基于spring boot的小型诊疗预约平台的设计与开发

TOC springboot262基于spring boot的小型诊疗预约平台的设计与开发 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进…

打靶记录12——Fawkes

靶机: https://download.vulnhub.com/harrypotter/Fawkes.ova这是个哈利波特系列的靶机,作者和本人都非常喜欢这个系列,因为它的漏洞和利用点都设计得很巧妙。 难度: 高 目标: 取得2个root权限 3 个flag 涉及攻…

Linux中的exec族函数

exec 系列函数用于替换当前进程的用户空间代码和数据,从而执行一个新的程序。调用 exec 系列函数不会创建新的进程,但会用新程序的代码和数据替换当前进程,因此调用 exec 后,进程的 ID 保持不变,但进程的行为变为执行新…

前端基础4

本节内容: 1.CSS的弹性布局,也称Flex布局 2.Vue2的生命周期 一、Flex布局 弹性布局是前端页面布局最常用的方式之一,通常使用四个属性。 1.创建盒子 先创建一个盒子并为其添加一些样式可以更直观的体验弹性布局,代码如下&#…

keepalived保活nginx1,nginx2

1 下载两个小玩意 yum -y install keepalived yum install psmisc -y 2 配置nginx1,2自启脚本 vim /root/shell/check-nginx.sh 我的脚本放在root/shell里 #!/bin/bash #获取nginx正在运行的进程数 npsnumps -C nginx --no-header | wc -lif [ $n…

企业级WEB应用服务器TOMCAT攻略

目录 一 WEB技术 1.1 HTTP协议和B/S 结构 二 WEB框架 2.1 web资源和访问 2.2 后台应用架构 三 tomcat的功能介绍 3.1 安装 Tomcat 3.2 tomcat的文件结构和组成 3.3 生成tomcat的启动文件 四 结合反向代理实现tomcat部署 4.1 常见部署方式介绍 4.2 利用 nginx 反向代…