【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》

  • 写在最前面
  • 6 伪随机对象的理论构造


写在最前面

主要在 哈工大密码学课程 张宇老师课件 的基础上学习记录笔记。

内容补充:骆婷老师的PPT
《introduction to modern cryphtography》–Jonathan Katz, Yehuda Lindell(现代密码学——原理与协议)中相关章节
密码学复习笔记 这个博主好有意思

初步笔记,如有错误请指正

快速补充一些密码相关的背景知识


【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全

6 伪随机对象的理论构造

  1. 本节学习如何设计基于单向函数存在的假设从理论上构造PRG、PRF、PRP这三个伪随机对象。
  2. 目录:单向函数(One-Way Function),从OWF到PRP
  3. 概览
  • 现代密码学的贡献之一是,单向函数的存在等价于所有(有意义的)私钥密码学的存在;
  • 我们学习一系列密码学对象的构造过程:从OWF构造核心断言(HCP),构造RPG,构造PRF,构造PRP,构造安全私钥加密方案,而安全私钥加密方案就是一个OWF,从而形成一个闭环;
  1. 单向函数(One-Way Functions (OWF)
  • 单向函数是一个正向易于计算(多项式时间),而逆向难以计算(无多项式时间);
  • 下面的单向函数定义是由姚期智提出的;
  • 求逆实验 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_02:
  1. 随机产生输入 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_03. 计算 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_04. 注:挑战【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_05是由随机产生的【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_06得到的,而不是直接随机挑选一个【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_05
  2. 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_08【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_09【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_10 (挑战)作为输入,并输出 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_11.
  3. 实验成功 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_12 ,如果 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_13, 否则 0. 注:这里不需要【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_14
  1. OWF/OWP的定义 [Yao]
  • 定义:多项式时间算法 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_15【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_16.
    一个函数 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_17
    易于计算: 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_18 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_15: 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_20. 注:这里说明计算不需要用原本的函数,只要结果相同就可以
    难以求逆: 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_21 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_16, 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_23 使得,【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_24 或者 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_25
  • 注:后半部分是难以求逆的另一种表达
  1. 若干候选的单向函数
  • 乘法与分解(Multiplication and factoring):【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_26, 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_27【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_28 是相同长度的质数;注:后面会学习RSA问题
  • 模平方和平方根(Modular squaring and square roots):【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_29注:也被应用于公钥密码学
  • 离散指数与对数(Discrete exponential and logarithm):【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_30注:后面将学习DH密钥交换协议
  • 子集和问题(Subset sum problem):【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_31注:子集和问题判定是否存在一个子集中元素之和为给定的值
  • 密码学安全哈希函数(Cryptographically secure hash functions):稍后会学习;
  1. 单向函数例题
  • 单向函数的理由在于,如果【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_32不是单向的,那么【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_33也不是;
  • 不是单向函数的理由在于,【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_32可以容易求逆;
  • 另外,要注意求逆实验是从随机挑选的【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_27得到【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_28,并不能直接指定【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_28
  1. 核心断言 Hard-Core Predicates (HCP)
  • 一个函数 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_38 是一个函数【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_33的核心断言( hard-core predicate),如果
  • (1) 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_40
  • (2) 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_41 概率多项式时间 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_08【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_43 使得 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_44
  • 注:核心断言可以理解为根据函数的输出最难推断的关于输入的一个比特信息,任意敌手算法与随机猜测相比几乎没有差异。
  1. 对于任意OWF的HCP [Goldreich and Levin]
  • 定理:【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_33是一个OWF。那么,存在一个OWF 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_46 并与 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_46 伴随着一个HCP 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_48
  • 问题: 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_49
  • 证明:【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_50, for 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_51, 并定义 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_52。 其中,【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_53
  • 说明:【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_54就是从【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_55中随机选择若干比特异或结果作为核心断言。即便敌手根据输出推断出【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_55中若干比特的信息,但仍不能推断出(由【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_57来)随机挑选的任意若干比特信息(核心断言),否则意味着敌手可以求出整个【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_55
  1. 从OWP到PRG:Blum-Micali Generator
  • 定理:【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_33 是一个OWP并且 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_60 是一个 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_33 的 HCP 。那么,【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_62 构造了一个 PRG 带有扩展因子 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_63,并且 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_64 多项式 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_65, 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_66 一个 PRG 带有扩展因子 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_67
  • 定理成立的理由有两点:
  • 因为【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_68为排列(这很重要,不能是非排列的函数),那么当【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_69随机生成时,【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_70也是均匀随机的,【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_71的头部也就是随机的;
  • 根据【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_70难以推断核心断言【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_73,这正是伪随机生成器的伪随机性的判断依据:下一比特不可预测性。
  1. 从PRG到PRF [Goldreich, Goldwasser, Micali]
  • 定理:如果存在一个PRG带有扩展因子【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_74,那么存在一个PRF。
  • 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_75
  • 以密钥【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_76为PRG的种子生成随机串,并将该随机串对半分为两个子串【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_77;再以每个子串作为种子分别生成两个新的子串;由此,构造一个以密钥(种子)为根的二叉树,每个叶子节点对应伪随机函数的一个输出,从输入到输出的映射就是从根到叶子的一条分支,根据输入每个比特值来选择分叉:0为左,1为右;
  • 例如,【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_78;以【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_76为根,根据第一个比特选择左分支,接着选择右分支,右分支。
  • PRF随机性来自于PRG的随机性。
  1. 从PRF到PRP [Lucy, Rackoff]
  • Feistel网络可以将一个【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_80比特的PRF转变为一个【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_81比特的PRP,有以下定理
  • 定理:一个3轮的Feistel网络可将一个PRF转变为一个PRP。
  • 定理:一个4轮的Feistel网络可将一个PRP转变为一个strong PRP。
  • 说明:
  • 首先,Feistel网络本身特性是排列,因此证明上述定理成立的关键在于,证明伪随机性;伪随机性来自与每轮的mangler函数是PRF,其输出是一个独立的随机值。
  • 对于为什么至少需要3轮?首先可以观察到如果只有1轮,则不是伪随机的,因为【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_82被直接输出为【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_83;如果只有2轮,也不是随机的,因为只改变【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_84来翻转1个比特,那么【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_85也只翻转1个比特。当3轮时,上述两个情况不会发生,并且输出结果【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_密码学_86都是经过了PRF结果得到的。
  1. 必要的假设
  • 前面的理论说明OWP的存在是安全加密方案的充分条件,同时我们还可以证明OWP的存在也是安全加密方案的必要条件。
  • 定理:假设存在OWP,那么存在PRG,PRF,PRP和CCA安全私钥加密方案。
  • 如何构造CCA安全的加密方案将在后面学习。
  • 命题:如果存在窃听者不可区分私钥加密方案,那么存在一个OWF。
  • 证明:【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_87,其中 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_88
  • 从破解加密方案问题【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_89规约到单向函数求逆问题【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_08。规约的关键之一在于将挑战密文和一个明文 【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_笔记_91 作为【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_网络_08求逆的输入。当求拟成功时,【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_89输出0;否则,输出1。当【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_94被加密,则破解加密方案意味着可求逆;当【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_gpt_95被加密,则破解加密方案意味着没有成功求逆,概率为【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》_安全_96
  1. 总结
  • OWF意味着安全私钥加密方案,安全私钥加密方案意味着OWF。