密码学归约证明——选择明文攻击下的不可区分性
1. 选择明文攻击不可区分性实验
运行生成密钥 ;输出给敌手,敌手可以访问预言机,并输出一对长度相等的消息;选择一个随机比特 ,计算出挑战密文交给 ;敌手继续访问预言机,输出一个比特;如果 ,则,成功。
2. 选择明文攻击条件下的不可区分加密
对称密钥加密方案满足:如果对任意概率多项式敌手,存在可忽略函数,使
则满足选择明文攻击条件下的不可区分加密。
3. 伪随机函数构造安全的构造方法
令是伪随机函数,定义一个消息长度为的对称密钥加密方案如下:
:输入,均匀随机地选择密钥
:输入密钥和消息,均匀随机选择,输出密文
:输入密钥和密文,输出明文
4. 伪随机函数
令是有效的、长度保留的、带密钥的函数。如果对于所有多项式时间的区分器,存在可忽略函数,满足
,
则是一个伪随机函数,其中是随机均匀选择的,是将比特字符串映射到比特字符串的函数集合中均匀随机选择出来的。
5. 选择明文攻击下的不可区分性
如果是伪随机函数,则上述构造方法为消息长度为的定长对称密钥加密方案,在选择明文攻击下不可区分。
书《现代密码学——原理与协议》中针对此类型的归约给出了通用思路:首先在理想的世界中分析方案的安全性,即用真正的随机函数来取代,然后说明此时的安全性;然后当被使用时,如果该方案不是安全的,则意味着将从真正的随机函数中区分出来是可能的。
分别创建两个情景:
- 敌手攻击其对应的挑战者
挑战者有两种方式使用函数来输出:真随机函数和伪随机函数。随机地选择交给敌手来判断该是随机的还是伪随机的。若输出满足,则敌手成功。
如果,则敌手成功的概率为
如果,则敌手成功的概率为
且伪随机函数满足
图解:
- 敌手攻击
生成两个长度相等的字符串和。随机选择,计算密文交给来判断来自还是。若输出,则成功。
如果来自随机函数,令加密方案:用真正的随机函数来代替伪随机函数,其他与相同。每个敌手最多向它的加密预言机问询多项式次,有
下面证明此命题:
令表示生成挑战密文时生成的随机字符串。有两种情况:
值被加密预言机使用来回答至少一个的问询:
无论何时加密预言机返回一个密文来回应加密消息的请求,敌手由掌握了值。此时,可能轻易地判断出哪一个消息被加密。因为最多向预言机问询次,并且每次预言机回答它的问询都是使用一个均匀选择的,所以该事件发生的概率最多为。
值没有被加密预言机用来回答的问询:
这种情况下,在和加密预言机的交互过程中,没有掌握任何关于值的信息。在这种情况下,输出的概率刚好是(类似于“一次一密”)。
令表示值被加密预言机使用来回答至少一个的问询的事件。则有
得证。
如果来自伪随机函数,则敌手成功的概率被表示为
如果下面不等式成立,就可以说明加密协议是安全的:
图解:
证明:根据上面所述的情景,正式说明逻辑命题等价式表示为:
令区分器使用作为子程序,来模拟不可区分实验。
如果的预言机是一个伪随机函数,那么当被作为一个子程序运行时的所见视图分布,与在实验中所见的视图分布是相同的。则
如果的预言机是一个随机函数,那么当被作为一个子程序运行时的所见视图分布,与在实验中所见的视图分布是相同的。则
根据不等式有
相关于
由于满足多项式,得证。
6. 参考文献
乔纳森.卡茨,耶胡达.林德尔著,任伟译,现代密码学——原理与协议,国防工业出版社,2017年第一版第4次印刷.
密码学归约证明——选择明文攻击下的不可区分性相关推荐
- IND-CPA(选择明文攻击下的不可区分性)
IND-CPA(选择明文攻击下的不可区分性)Indistinguishability under chosen-plaintext attack 该性质是通过一个仿真游戏验证的,游戏过程如下 具体过程 ...
- 密码学归约证明——计数器CTR模式
1. 计数器CTR模式 选择,计算,.不加密并作为密文的一部分发送. 2. CTR模式的CPA安全 若是,则模式是安全的. 挑战密文在实验中被加密时,设表示初始,表示加密挑战密文每个分组.要求从未被加 ...
- 密码学归约证明——基于伪随机函数的消息鉴别码方案
1. 消息鉴别码实验 运行得到密钥,即. 敌手获得输入,且能够访问预言机,最终输出,其中为消息的鉴别码.设为敌手访问预言机的问询集合. 当且仅当且,实验输出1.其中是鉴别码方案的验证方法. 如果一个消 ...
- 密码学归约证明——定长对称加密密钥的敌手不可区分性
1. 前言 针对任伟译<现代密码学--原理与协议>这本书中,将reduction一词翻译成"规约",根据笔者在网上查阅资料,最终认为翻译成"归约"更 ...
- 密码学归约证明——DH密钥交换协议在窃听者存在的情况下的安全性
1. 密钥交换实验KEA,Πeav(n)KE^{eav}_{A,\Pi}(n)KEA,Πeav(n) 持有1n1^n1n的通信方执行Π\PiΠ协议.之后得到通信双方发送的所有的消息的副本以及双方输出 ...
- 密码学归约证明——哈希签名范式的安全性
1. 哈希碰撞发现实验HashcollA,H(n)Hashcoll_{A,H} (n)HashcollA,H(n) 产生密钥s←Gen(1n)s\leftarrow Gen(1^n )s←Gen(1 ...
- 通俗地解释下密码学中的归约证明
本文首发于本人的:能否通俗地解释下密码学中的归约证明? - ChainingBlocks的回答 - 知乎 https://www.zhihu.com/question/49441102/answer/ ...
- 密码学小知识(5):唯密文攻击(COA)、已知明文攻击(KPA)、选择明文攻击(CPA),选择密文攻击(CCA)
本篇将介绍密码分析中主要的四种攻击方式(也可以称为四种安全性) 目录: 本篇将介绍密码分析中主要的四种攻击方式(也可以称为四种安全性) 一.唯密文攻击(Ciphtext Only Attack,COA ...
- 烤仔TVのCCW丨密码学通识(三)选择明文攻击
美军士兵:"将军,在截获的密报里发现一个地点,但并不能确认.属下猜测是--中途岛." 美军将军:"不能确认吗--这样,立刻发布一则假密报,就说'中途岛淡水设备损坏',明白 ...
最新文章
- unity水管工_我是如何从30岁的管道工转变为32岁的Web开发人员的
- mysql索引优化规则_Mysql优化选择最佳索引规则
- Java 8 Lambda 表达式详解
- 外联css及js的使用
- c#语言文件扩展名,C#应用程序项目文件的扩展名是()。
- java await signal_java Condtion await方法和signal方法解析
- 瀑布流 颜色随机 加载滚动
- SAP SRM ABAP Webdynpro和CFCA usb key集成的一个原型开发
- URL生成方式性能优化结果
- Vue之webpack之Babel
- 信息系统集成企业该具备的资质您有几个呢?
- MFC——SkinSharp For VS的使用说明
- 单系统 台电x80pro_台电X80HD安装Win8单系统教程
- PS剪切蒙版怎么用?
- 浙江新青年计算机学校,新青年
- 上手阿里云服务器(一)——搭建LAMP开发环境、防火墙、文件传输
- 轻松解决XMind文件配置错误(configuration area)
- 蜗牛星际集成:PVE系统+NAS+WEB 折腾笔记
- 天时地利人和—一个传奇操作系统的诞生记
- 百度SEO站群素材资源解析平台系统源码V8.0
热门文章
- 解决新版微信个人收款二维码在H5网页里不能长按识别支付
- android系统通过图片绝对路径获取URI的三种方法
- 笔记|滴滴iOS客户端的架构,组件化,技术选型
- 客户端iOS 的自动化测试
- iOS代码覆盖率(二)-增量覆盖率自动化实践
- 大型仪器一般都是用计算机,问题:大型仪器一般都使用计算机进行控制,对该计算机除了在性能上能满足要求,在使用方面原则上有何要求。...
- 【BUG解决】 RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor)
- 【技术分享】Android App常见安全问题演练分析系统-DIVA-Part1
- 有哪些「神奇」的数据获取方式?
- GE Proficy CIMPLICITY如何实现跨版本升级操作?