1. 哈希碰撞发现实验HashcollA,H(n)Hashcoll_{A,H} (n)HashcollA,H​(n)

  • 产生密钥s←Gen(1n)s\leftarrow Gen(1^n )s←Gen(1n);
  • 敌手AAA输入sss并输出xxx和x′x'x′;
  • 当且仅当x≠x′x\neq x'x=x′且Hs(x)=Hs(x′)H^s (x)=H^s (x')Hs(x)=Hs(x′),实验输出111。

2. 抗碰撞散列函数CRHF

\qquad对任意的多项式时间敌手AAA,存在可忽略函数neglneglnegl,满足Pr[HashcollA,H(n)=1]≤negl(n)Pr[Hashcoll_{A,H} (n)=1]\leq negl(n)Pr[HashcollA,H​(n)=1]≤negl(n),则哈希函数HHH是抗碰撞的。

3. 数字签名实验SigforgeA,Π(n)Sigforge_{A,\Pi} (n)SigforgeA,Π​(n)

  • 获得公钥私钥(pk,sk)←Gen(1n)(pk,sk)\leftarrow Gen(1^n )(pk,sk)←Gen(1n);
  • 将pkpkpk和访问预言机Sign(⋅)Sign(\cdot )Sign(⋅)的权利交给敌手AAA。敌手输出(m,σ)(m,\sigma)(m,σ)。设QQQ为AAA的问询集合。
  • 当且仅当Vrfypk(m,σ)=1Vrfy_{pk} (m,\sigma)=1Vrfypk​(m,σ)=1且m∉Qm\notin Qm∈/Q时,实验输出111。

\qquad若对于任意的多项式时间敌手,存在可忽略函数neglneglnegl,使得Pr[SigforgeA,Π(n)=1]≤negl(n)Pr[Sigforge_{A,\Pi} (n)=1]\leq negl(n)Pr[SigforgeA,Π​(n)=1]≤negl(n),则称此数字签名方案是CMACMACMA安全的。

4. 哈希签名范式

设Π=(GenS,Sign,Vrfy)\Pi=(Gen_S,Sign,Vrfy)Π=(GenS​,Sign,Vrfy),ΠH=(GenH,H)\Pi_H=(Gen_H,H)ΠH​=(GenH​,H),定义签名方案Π′\Pi'Π′:

  • Gen′Gen'Gen′:s←GenH(1n)s\leftarrow Gen_H (1^n )s←GenH​(1n),(pk,sk)←GenS(1n)(pk,sk)\leftarrow Gen_S (1^n )(pk,sk)←GenS​(1n)。令pk′=⟨pk,s⟩pk'=\langle pk,s \ranglepk′=⟨pk,s⟩,sk′=⟨sk,s⟩sk'=\langle sk,s\ranglesk′=⟨sk,s⟩;
  • Sign′Sign'Sign′:输入sk′sk'sk′和m∈{0,1}∗m∈\{0,1\}^*m∈{0,1}∗,输出σ←Signsk(Hs(m))\sigma \leftarrow Sign_{sk} (H^s (m))σ←Signsk​(Hs(m));
  • Vrfy′Vrfy'Vrfy′:输入pk′pk'pk′,m∈{0,1}∗m∈\{0,1\}^*m∈{0,1}∗和σ∈{0,1}∗\sigma \in \{0,1\}^*σ∈{0,1}∗,如果Vrfypk(Hs(m))=σVrfy_{pk} (H^s (m))=\sigmaVrfypk​(Hs(m))=σ输出111。

5. 哈希签名范式的CMA安全性

\qquad若Π\PiΠ是CMACMACMA安全的签名方案,ΠH\Pi_HΠH​是CRHFCRHFCRHF,则哈希签名范式Π′\Pi'Π′是CMACMACMA安全的。

\qquad设事件collcollcoll为在实验SigforgeA′,Π′Sigforge_{A',\Pi'}SigforgeA′,Π′​中存在m′∈Qm'\in Qm′∈Q,对于Hs(m′)=Hs(m)H^s (m' )=H^s (m)Hs(m′)=Hs(m)。于是

Pr[SigforgeA′,Π′(n)=1]=Pr[SigforgeA′,Π′(n)=1∧coll]+Pr[SigforgeA′,Π′(n)=1∧coll‾]Pr[Sigforge_{A',\Pi' } (n)=1]=Pr[Sigforge_{A',\Pi' } (n)=1\wedge coll]+Pr[Sigforge_{A',\Pi' } (n)=1\wedge \overline{coll} ]Pr[SigforgeA′,Π′​(n)=1]=Pr[SigforgeA′,Π′​(n)=1∧coll]+Pr[SigforgeA′,Π′​(n)=1∧coll] ≤Pr[coll]+Pr[Sig−forgeA′,Π′(n)=1∧coll‾]\leq Pr[coll]+Pr[Sig-forge{A',\Pi' } (n)=1\wedge \overline{coll}]≤Pr[coll]+Pr[Sig−forgeA′,Π′(n)=1∧coll]。

\qquad考虑找到ΠH\Pi_HΠH​的碰撞的算法CCC:输入sss,

  • (pk,sk)←Gens(1n)(pk,sk)\leftarrow Gen_s (1^n )(pk,sk)←Gens​(1n),令pk′=⟨pk,s⟩pk'=\langle pk,s\ranglepk′=⟨pk,s⟩;
  • 输入pk′pk'pk′,运行A′A'A′。当A′A'A′问询第iii个签名时,计算σi←Signsk(Hs(m))\sigma_i\leftarrow Sign_{sk} (H^s (m))σi​←Signsk​(Hs(m)),将σi\sigma_iσi​给A′A'A′;
  • A′A'A′输出(m,σ)(m,\sigma)(m,σ)。若存在iii,使得Hs(m)=Hs(mi)H^s (m)=H^s (m_i )Hs(m)=Hs(mi​),则输出(m,mi)(m,m_i )(m,mi​)。

\qquad分析CCC的行为。当算法CCC的输入sss来自GenH(1n)Gen_H (1^n )GenH​(1n)时,A′A'A′作为CCC的子程序运行所见情形与实验SigforgeA′,Π′Sigforge_{A',\Pi'}SigforgeA′,Π′​中相同。因为当collcollcoll发生时,CCC输出一个碰撞,得到

Pr[coll]=Pr[HashcollC,ΠH(n)=1]≤negl1(n)Pr[coll]=Pr[Hashcoll_{C,\Pi_H } (n)=1]\leq negl_1 (n)Pr[coll]=Pr[HashcollC,ΠH​​(n)=1]≤negl1​(n)。

\qquad考虑攻击Π\PiΠ的敌手AAA:输入pkpkpk,

  • s←GenH(1n)s\leftarrow Gen_H (1^n )s←GenH​(1n),令pk′=⟨pk,s⟩pk'=\langle pk,s\ranglepk′=⟨pk,s⟩;
  • 输入pk′pk'pk′,运行A′A'A′。当A′A'A′问询第iii个签名时,计算Hs(mi)H^s (m_i )Hs(mi​),向签名预言机问询σi\sigma_iσi​,交给A′A'A′;
  • A′A'A′输出(m,σ)(m,\sigma)(m,σ)。输出⟨Hs(m),σ⟩\langle H^s (m),\sigma \rangle⟨Hs(m),σ⟩。

\qquad实验SigforgeA,ΠSigforge_{A,\Pi}SigforgeA,Π​中,A′A'A′作为CCC的子程序运行所见情形与实验相同。此外,当SigforgeA′,Π′(n)=1Sigforge_{A',\Pi' } (n)=1SigforgeA′,Π′​(n)=1和coll‾\overline{coll}coll同时发生时,AAA输出一个伪造。因此

Pr[SigforgeA′,Π′(n)=1∧coll‾]=Pr[SigforgeA,Π(n)=1]≤negl2(n)Pr[Sigforge_{A',\Pi' } (n)=1\wedge \overline{coll}]=Pr[Sigforge_{A,\Pi} (n)=1]\leq negl_2 (n)Pr[SigforgeA′,Π′​(n)=1∧coll]=Pr[SigforgeA,Π​(n)=1]≤negl2​(n)。
\qquad所以 Pr[SigforgeA′,Π′(n)=1]≤negl(n)Pr[Sigforge_{A',\Pi'} (n)=1]\leq negl(n)Pr[SigforgeA′,Π′​(n)=1]≤negl(n)。

6. 参考文献

乔纳森.卡茨,耶胡达.林德尔著,任伟译,现代密码学——原理与协议,国防工业出版社,2017年第一版第4次印刷.

密码学归约证明——哈希签名范式的安全性相关推荐

  1. 密码学归约证明——计数器CTR模式

    1. 计数器CTR模式 选择,计算,.不加密并作为密文的一部分发送. 2. CTR模式的CPA安全 若是,则模式是安全的. 挑战密文在实验中被加密时,设表示初始,表示加密挑战密文每个分组.要求从未被加 ...

  2. 密码学归约证明——基于伪随机函数的消息鉴别码方案

    1. 消息鉴别码实验 运行得到密钥,即. 敌手获得输入,且能够访问预言机,最终输出,其中为消息的鉴别码.设为敌手访问预言机的问询集合. 当且仅当且,实验输出1.其中是鉴别码方案的验证方法. 如果一个消 ...

  3. 密码学归约证明——定长对称加密密钥的敌手不可区分性

    1. 前言 针对任伟译<现代密码学--原理与协议>这本书中,将reduction一词翻译成"规约",根据笔者在网上查阅资料,最终认为翻译成"归约"更 ...

  4. 密码学归约证明——选择明文攻击下的不可区分性

    1. 选择明文攻击不可区分性实验 运行生成密钥 :输出给敌手,敌手可以访问预言机,并输出一对长度相等的消息:选择一个随机比特 ,计算出挑战密文交给 ;敌手继续访问预言机,输出一个比特:如果 ,则,成功 ...

  5. 密码学归约证明——DH密钥交换协议在窃听者存在的情况下的安全性

    1. 密钥交换实验KEA,Πeav(n)KE^{eav}_{A,\Pi}(n)KEA,Πeav​(n) 持有1n1^n1n的通信方执行Π\PiΠ协议.之后得到通信双方发送的所有的消息的副本以及双方输出 ...

  6. 通俗地解释下密码学中的归约证明

    本文首发于本人的:能否通俗地解释下密码学中的归约证明? - ChainingBlocks的回答 - 知乎 https://www.zhihu.com/question/49441102/answer/ ...

  7. python 密码学计算_python 密码学示例——理解哈希(Hash)算法

    Hash 是密码学安全性的基石,它引入了单向函数(one-way function)和指纹(fingerprint)的概念.即: 对于任意输入,都可以产生相同的.唯一的输出值 输出值中不包含输入值的任 ...

  8. 【区块链与密码学】第9-3讲:群签名方案的安全性要求

    [本课堂内容全部选编自PlatON首席密码学家.武汉大学国家网络安全学院教授.博士生导师何德彪教授的<区块链与密码学>授课讲义.教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系 ...

  9. 现代密码学5.4--对哈希函数的攻击

    现代密码学5.4--对哈希函数的攻击 生日攻击 生日问题 博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan K ...

最新文章

  1. 2020年投入200000000美元,华为不只挖掘年薪百万的“天才少年”
  2. Jfinal碰到的问题记录
  3. 算法导论-算法基础-2.1插入排序 (从小到大)
  4. git clone 所有远程分支
  5. js的字符串和变量拼接
  6. linux c++ 输出到终端,如何将彩色文本输出到Linux终端?
  7. Fluent软件零基础入门到精通教程
  8. 用python做思维导图软件_两款好用的思维导图工具详细介绍,Xmind和幕布
  9. html右侧客服代码,非常好看的jQuery网站右侧固定在线客服代码
  10. 利用虚拟打印机截取打印文件并上传到服务器
  11. GitCode 在线 Web IDE
  12. Codeforces 图论板刷总结(更新中)
  13. 最赚钱H5游戏《大天使之剑H5》公测24天流水破亿!
  14. 【Avro二】Avro RPC框架
  15. 前端面试题【131道】
  16. 不是贫穷限制了你的思维,是你的思维导致了你的贫穷
  17. 女人嫁错人,但又离不了婚,过来人告诉你该怎么办
  18. npm下载什么都报错ERRO -4048
  19. 计算机毕业大学生如何解决难就业问题?
  20. 请简述什么是spring的ioc和di_请简述什么是 Spring 的 IoC 和 DI?_学小易找答案

热门文章

  1. 6. 中文命名实体提取
  2. 集合(Collections)
  3. 123457123456#0#-----com.threeapp.MakerHanBao01----儿童汉堡制作游戏
  4. vba 判断文本框内容是否为空_VBA代码用SetFocus精确控制焦点事件
  5. 研究Win32 GUI中SetActiveWindow与SetFocus和窗口消息
  6. HomeBrew安装软件慢的简单有效解决方法
  7. smartSVN 分支合并到主干上,iOS 编译时链接错误
  8. UE使用(UltraEdit)
  9. java致谢_JAVA语言课程设计致谢例文.doc
  10. 舍友整日沉迷代码?偷偷给他的idea装上防沉迷插件!!