现代密码学导论-19-基于伪随机函数的CPA安全

news2025/1/23 7:02:22

目录

3.5.2 基于伪随机函数的CPA安全

基于伪随机函数的加密示意图

CONSTRUCTION 3.28 构造基于伪随机函数的CPA安全的加密方案

THEOREM 3.29 方案3.28是CPA安全的

THEOREM 3.29 的证明


3.5.2 基于伪随机函数的CPA安全

基于伪随机函数的加密示意图


CONSTRUCTION 3.28 构造基于伪随机函数的CPA安全的加密方案

F是一个伪随机函数,则定义一个对于明文长度为 n 的私钥加密方案如下:

Gen:对于输入1^n,随机均匀选择 k ∈ {0, 1}^n 并输出

Enc:对于输入的 k ∈ {0, 1}^n以及明文 m ∈ {0, 1}^n,随机均匀选择 r∈{0, 1}^n,然后输出密文c := <r, s>,其中 s=Fk(r)⊕m

Dec:对于输入的 k ∈ {0, 1}^n以及密文 c = <r, s>,输出明文 m := Fk(r)⊕s


THEOREM 3.29 方案3.28是CPA安全的

如果F是一个伪随机函数,则由方案3.28构造的对于明文长度为 n 的私钥加密方案是CPA安全的


THEOREM 3.29 的证明

记方案3.28为Π= (Gen, Enc, Dec)

我们再构建一个新方案。这个新方案除了用真随机函数代替3.28中的伪随机函数,其他均相同。我们记为

有一个PPT敌手A,设q(n)为敌手 A 在安全参数为n的CPA窃听实验中询问预言机的次数上限,q必须存在某个多项式的上界

我们用A来构造伪随机函数F的一个区分器D。区分器D的输入是函数O的预言机,区分器的目标是判断该预言机对应的函数O是否为伪随机函数

Distinguisher D:

D被给定1^n和预言机O,其中O满足

  1. 运行A(1^n),当敌手A用消息m∈{0, 1}^n询问预言机时,D随机均匀选择一个r∈{0, 1}^n并用r询问预言机,得到结果y=O(r),将密文c= <r, y⊕m>计算并返回给A
  2. 当A输出消息m0,m1∈{0,1}^ n时,D随机均匀选择b∈{0, 1},并且均匀选择一个r∈{0, 1}^n并用r询问预言机,得到结果y=O(r),将密文c= <r, y⊕mb>计算并返回给A
  3. A仍保持步骤1.中询问预言机的权利,直到A输出b’。D获取敌手A输出的b',如果 b = b',则D输出 1;否则D输出0

重点如下

如果区分器D的预言机对应于伪随机函数,那么当A作为D的子程序运行时,以A的视角来看,A就相当于在做实验

因此,得到A式

如果区分器D的预言机对应于真随机函数,那么当A作为D的子程序运行时,以A的视角来看,A就相当于在做实验

因此,得到B式

 

由于F是一个伪随机函数,根据伪随机函数的定义,

现代密码学导论-17-伪随机函数_南鸢北折的博客-CSDN博客

DEFINITION 3.24 伪随机函数的正式定义

存在一个可以忽略的函数negl,满足C式 

 联立A、B、C式,得到D式

这个式子的形式非常像EAV-安全的第二个等价定义。但是对于CPA安全,我们还没有考虑过。

考虑实验

请注意,每次消息m被加密时,即询问预言机或当挑战密文被计算时,会随机均匀选择一个r∈{0, 1}^n,并计算c= <r, f(r)⊕m>。我们设r*表示在生成挑战密文<r*, f(r*)⊕m>时使用的随机字符串。有两种可能性:

  1. 如果r*在预言机对A的回答中没有出现过,由于f是真随机函数,A与预言机的交互中不能获得关于f(r*)的任何信息,那么A输出的b'=b的概率就是1/2
  2. 如果r*在预言机对A的回答中出现过,也就是说 A 获取了<r*, f(r*)⊕m>,那么其可以通过计算 f(r*)=f(r*)⊕m⊕m 就能得出f(r*),在得知了 f(r*) 的情况下,A输出的b'=b的概率就为1

但是,A最多只能对预言机查询q(n)次,因此,A最多获得q(n)个r。由于r*是从{0, 1}^n中随机均匀选取的,因此有2^n种可能。那么A获取的r中包含r*的可能性就为q(n)/(2^n)

把事件“r* 被A捕获” 记为事件Repeat,则Pr[Repeat] ≤ q(n)/(2^n)

我们得到

 将上式带入D式,得到

由于p(n)是多项式函数,因此q(n)/(2^n)可忽略

我们设negl’(n)=q(n)/(2^n)+negl(n),根据

现代密码学导论-8-计算安全性_南鸢北折的博客-CSDN博客

PROPOSITION 3.6 可忽略函数的性质中的性质一

两个可忽略函数的和仍然是可忽略函数。因此negl’(n)是可忽略函数,使得

这样,我们就证明了方案3.28是CPA安全的 

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

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

相关文章

历史中的密码

角色 发送者、接收者和窃听者 当某个人向另一个人发送信息时&#xff0c;发出信息的人称为发送者&#xff0c;而收到信息的人称为接收者&#xff0c;被发送的信息有时也统称为消息&#xff08; message )。 窃听者 Eve 并不一定是人类&#xff0c;有可能是安装在通信设备上的某…

【JVM】jvm中的方法区简介

jvm中的方法区简介一、JVM体系结构二、方法区是什么&#xff1f;三、方法区能干什么&#xff1f;四、方法区总结一、JVM体系结构 二、方法区是什么&#xff1f; 本文所讲内容在上图中处于运行时数据区内的左侧部分&#xff0c;即 Method Area&#xff08;方法区&#xff09;&a…

REHL7.6静默安装Oracle19C

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&#x1f61…

【轨迹跟踪】基于matlab拓展卡尔曼滤波时序四旋翼无人机状态跟踪【含Matlab源码 2246期】

⛄一、拓展卡尔曼滤波时序四旋翼无人机状态跟踪 卡尔曼滤波算法为获得最优估计和最小误差方差&#xff0c;将从目标模型中得到的测量值一步步递推&#xff0c;实时获取新时刻的状态估计值。 假设目标状态方程和观测方程分别为&#xff1a; 其中&#xff0c;k为离散时间&…

投入产出公开数据集:世界投入产出表(1995-2014)、全国投入产出表(1990-2018)、分省市投入产出表(1997-2017)

一、数据介绍 数据名称&#xff1a;世界、全国、各省-投入产出表 数据年份&#xff1a;世界投入产出表(1995-2014)、全国投入产出表(1990-2018)、分省市投入产出表(1997-2017) 数据来源&#xff1a;WIOD、自计算 ① 世界投入产出表&#xff08;1995-2014&#xff09; downlo…

用JSX来写Vue3,瞬间找到React 的感觉

Ⅰ. vue3 的 JSX 写法 对于熟悉react 的小伙伴, 可以通过 jsx 来 做 vue3喜欢 jsx 写法做 vue&#xff0c;代码结构更加美观&#xff0c;让我们一起来踩坑 &#x1f447; 文章目录Ⅰ. vue3 的 JSX 写法Ⅱ. JSX 安装和配置1. 通过 webpack 构建的2. 通过 vite 构建的Ⅳ. JSX 的…

Yocto buildhistory介绍

Yocto buildhistory介绍 在yocto中会频繁的编译修改镜像&#xff0c;当多人多次修改镜像的时候会导致镜像难以维护&#xff0c;我们希望能有一个类似git一样的工具能够显示每次编译的差异性修改&#xff0c;这样当我想要回退到某个日期的某个镜像时能够清晰的知道镜像内部的具…

Dockerfile文件详解

组成部分 说明 基础镜像信息 使用 FROM 关键字指定基础镜像信息&#xff0c;必须是 Dockerfile 文件的第1条指令。 维护者信息 使用 MAINTAINER 关键字指定&#xff0c;可以使用 Dockerfile 文件创建者的姓名或者电子邮件作为维护者信息。 镜像操作指令 每执行一条镜像操…

vue3+Element-plus el-select 下拉选择 多选增加全选封装组件

一、效果图&#xff08;含适用于条件查询组件中使用&#xff09; 二、参数配置 1、代码示例&#xff1a; <t-selectplaceholder"请选择工序"v-model"selectVlaue":optionSource"state.stepList"valueKey"label"change"selec…

部署SpringBoot+Vue3 项目实战,打造企业级在线办公系统

文章目录一、安装docker二、安装2.1. 安装mysql2.2. 安装MongoDB2.3. 安装Redis程序2.4. 安装RabbitMQ2.5. 在云主机上面开放端口三、部署后端项目3.1. 下载JDK镜像3.2. 部署工作流项目3.3. 部署emos-api项目四、在Docker中部署前端项目4.1. 修改前端代码4.2. 打包VUE项目4.3. …

【Hack The Box】linux练习-- time

HTB 学习笔记 【Hack The Box】linux练习-- time &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月24日&#x1f334; &#x1f36d…

Android~Compose脚手架和Toast

系列文章目录 Android~Compose初探Android~Compose之自定义ViewAndroid~Compose相关概念总结Android~Compose脚手架和ToastAndroid~Compose路由Navigation和传参 文章目录系列文章目录目标脚手架基于Snackbar自定义Toast实现效果目标 熟悉Compose中脚手架使用自定义Toast样式…

人工智能轨道交通行业周刊-第24期(2022.11.21-11.27)

追风赶月莫停留&#xff0c;平芜尽处是春山。 --《田歆华夏说》 本期关键词&#xff1a;BIM应用、地铁控制中心、车辆检修智能化、模型轻量化、隧道通风 1 整理涉及公众号名单 1.1 行业类 RT轨道交通中关村轨道交通产业服务平台人民铁道世界轨道交通资讯网铁路信号技术交…

【树莓派不吃灰】Linux篇⑥ 正规表示法与文件格式化处理(核心概念)

目录1. 什么是正则表示法2. 基础正规表示法&#xff08;grep、sed&#xff09;3. 延伸正规表示法4. 文件的格式化与相关处理&#xff08;printf、awk&#xff09;5. 重点回顾❤️ 博客主页 单片机菜鸟哥&#xff0c;一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2022-11…

FPGA实现视频拼接,纯逻辑资源搭建,提供4套工程源码和技术支持

目录1.本方案的实用价值2.总体设计方案3.视频拼接方案算法4.工程1&#xff1a;单路视频输出5.工程2&#xff1a;2路视频拼接输出6.工程3&#xff1a;3路视频拼接输出7.工程4&#xff1a;4路视频拼接输出8.上板调试验证9.福利&#xff1a;工程源码获取1.本方案的实用价值 FPGA实…

【软件测试】测试与开发一对欢喜冤家......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 大伙普遍的看法&…

28.开机默认启动系统-ubuntu和win10

在win10下安装了Ubuntu20.04系统&#xff0c;默认情况下&#xff0c;启动的是Ubuntu系统。 要将默认启动系统设置成win10&#xff0c;方法如下&#xff1a; 1、进入ubuntu系统&#xff0c;按住CtrlAltT键&#xff0c;打开终端。 2、输入命令&#xff1a; sudo gedit /etc/d…

TCP常见问题

一、TCP连接的保活机制 在一段时间内&#xff0c;如果TCP连接两方都没有数据交互&#xff0c;TCP的保活机制**&#xff08;TCP keepalive&#xff09;**会起作用&#xff0c;每隔一个时间段会发送一个探测报文&#xff0c;如果连着好几个探测报文都没有得到相应&#xff0c;则…

Buffer Pool详解

文章目录一、简介二、缓存页三、Free链表四、Flush链表五、LRU链表六、脏页刷新七、多个Buffer pool八、Chunk单位一、简介 ​ mysql的数据都是存放在磁盘下的&#xff0c;为了加快cpu从磁盘i/o读取数据的效率&#xff0c;Innodb存储引擎在cpu和磁盘中间添加了一个缓冲区buffe…

web表格(详解)

目录 1.概述 2.表格的基本结构 3.表格的属性 4.单元格合并 1.概述 表格的基本语法结构&#xff1a; <table><tr><td>单元格内容</td>……</tr><tr><td>单元格内容</td>……</tr> </table> 其中< table>…