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

这篇具有很好参考价值的文章主要介绍了【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在最前面

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

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

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

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


【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》,# 密码学探秘:现代密码与量子密码,科研笔记与实践,密码学,笔记,网络,gpt,安全,网络安全

6 伪随机对象的理论构造

  1. 本节学习如何设计基于单向函数存在的假设从理论上构造PRG、PRF、PRP这三个伪随机对象。

  2. 目录:单向函数(One-Way Function),从OWF到PRP

  3. 概览

    • 现代密码学的贡献之一是,单向函数的存在等价于所有(有意义的)私钥密码学的存在;
    • 我们学习一系列密码学对象的构造过程:从OWF构造核心断言(HCP),构造RPG,构造PRF,构造PRP,构造安全私钥加密方案,而安全私钥加密方案就是一个OWF,从而形成一个闭环;
  4. 单向函数(One-Way Functions (OWF)

  • 单向函数是一个正向易于计算(多项式时间),而逆向难以计算(无多项式时间);
  • 下面的单向函数定义是由姚期智提出的;
  • 求逆实验 I n v e r t A , f ( n ) \mathsf{Invert}_{\mathcal{A},f}(n) InvertA,f(n):
    1. 随机产生输入 x ← { 0 , 1 } n x \gets \{0,1\}^n x{0,1}n. 计算 y : = f ( x ) y := f(x) y:=f(x). 注:挑战 y y y是由随机产生的 x x x得到的,而不是直接随机挑选一个 y y y
    2. A \mathcal{A} A 1 n 1^n 1n y y y (挑战)作为输入,并输出 x ′ x' x.
    3. 实验成功 I n v e r t A , f ( n ) = 1 \mathsf{Invert}_{\mathcal{A},f}(n) = 1 InvertA,f(n)=1 ,如果 f ( x ′ ) = y f(x')=y f(x)=y, 否则 0. 注:这里不需要 x ′ = x x'= x x=x
  1. OWF/OWP的定义 [Yao]
  • 定义:多项式时间算法 M f M_f Mf A \mathcal{A} A.

    一个函数 f    :    { 0 , 1 } ∗ → { 0 , 1 } ∗ f\;:\; \{0,1\}^* \to \{0,1\}^* f:{0,1}{0,1} 是单向函数,如果满足:

    易于计算: ∃ \exists M f M_f Mf: ∀ x , M f ( x ) = f ( x ) \forall x, M_f(x) = f(x) x,Mf(x)=f(x). 注:这里说明计算不需要用原本的函数,只要结果相同就可以

    难以求逆: ∀ \forall A \mathcal{A} A, ∃    n e g l \exists\;\mathsf{negl} negl 使得, Pr ⁡ [ I n v e r t A , f ( n ) = 1 ] ≤ n e g l ( n ) \Pr[\mathsf{Invert}_{\mathcal{A},f}(n)=1] \le \mathsf{negl}(n) Pr[InvertA,f(n)=1]negl(n) 或者 Pr ⁡ x ← { 0 , 1 } n [ A ( f ( x ) ) ∈ f − 1 ( f ( x ) ) ] ≤ n e g l ( n ) . \Pr_{\substack{x \gets \{0,1\}^n}}[\mathcal{A}(f(x)) \in f^{-1}(f(x))] \le \mathsf{negl}(n). Prx{0,1}n[A(f(x))f1(f(x))]negl(n).

  • 注:后半部分是难以求逆的另一种表达文章来源地址https://www.toymoban.com/news/detail-793377.html

  1. 若干候选的单向函数
  • 乘法与分解(Multiplication and factoring): f m u l t ( x , y ) = ( x y , ∥ x ∥ , ∥ y ∥ ) f_{\mathsf{mult}}(x,y)=(xy,\|x\|,\|y\|) fmult(x,y)=(xy,x,y), x x x y y y 是相同长度的质数;注:后面会学习RSA问题
  • 模平方和平方根(Modular squaring and square roots): f s q u a r e ( x ) = x 2   m o d   N f_{\mathsf{square}}(x)=x^2\bmod N fsquare(x)=x2modN注:也被应用于公钥密码学
  • 离散指数与对数(Discrete exponential and logarithm): f g , p ( x ) = g x   m o d   p f_{g,p}(x)=g^x\bmod p fg,p(x)=gxmodp注:后面将学习DH密钥交换协议
  • 子集和问题(Subset sum problem): f ( x 1 , … , x n , J ) = ( x 1 , … , x n , ∑ j ∈ J x j ) f(x_1,\dotsc,x_n,J)=(x_1,\dotsc,x_n,\sum_{j \in J} x_j) f(x1,,xn,J)=(x1,,xn,jJxj)注:子集和问题判定是否存在一个子集中元素之和为给定的值
  • 密码学安全哈希函数(Cryptographically secure hash functions):稍后会学习;
  1. 单向函数例题
  • 单向函数的理由在于,如果 f ′ f' f不是单向的,那么 f f f也不是;
  • 不是单向函数的理由在于, f ′ f' f可以容易求逆;
  • 另外,要注意求逆实验是从随机挑选的 x x x得到 y y y,并不能直接指定 y y y
  1. 核心断言 Hard-Core Predicates (HCP)
  • 一个函数 h c    :    { 0 , 1 } ∗ → { 0 , 1 } \mathsf{hc}\; : \; \{0,1\}^* \to \{0,1\} hc:{0,1}{0,1} 是一个函数 f f f的核心断言( hard-core predicate),如果
    • (1) h c \mathsf{hc} hc 可在多项式时间计算;
    • (2) ∀ \forall 概率多项式时间 A \mathcal{A} A ∃    n e g l \exists\; \mathsf{negl} negl 使得 Pr ⁡ x ← { 0 , 1 } n [ A ( f ( x ) ) = h c ( x ) ] ≤ 1 2 + n e g l ( n ) . \Pr_{\substack{x \gets \{0,1\}^n}}[\mathcal{A}(f(x)) = \mathsf{hc}(x)] \le \frac{1}{2} + \mathsf{negl}(n). Prx{0,1}n[A(f(x))=hc(x)]21+negl(n).
  • 注:核心断言可以理解为根据函数的输出最难推断的关于输入的一个比特信息,任意敌手算法与随机猜测相比几乎没有差异。
  1. 对于任意OWF的HCP [Goldreich and Levin]
  • 定理: f f f是一个OWF。那么,存在一个OWF g g g 并与 g g g 伴随着一个HCP g l gl gl
  • 问题: g l ( x ) = ⨁ i = 1 n x i \mathsf{gl}(x) = \bigoplus^{n}_{i=1} x_i gl(x)=i=1nxi 是任意OWF的HCP吗? 答案是否定的,例如一个单向函数输出的最后一个比特就是输入按位异或的结果;
  • 证明: g ( x , r ) = def ( f ( x ) , r ) g(x,r) \overset{\text{def}}{=} (f(x), r) g(x,r)=def(f(x),r), for ∣ x ∣ = ∣ r ∣ |x| = |r| x=r, 并定义 g l ( x , r ) = def ⨁ i = 1 n x i ⋅ r i \mathsf{gl}(x,r) \overset{\text{def}}{=} \bigoplus^{n}_{i=1} x_i \cdot r_i gl(x,r)=defi=1nxiri。 其中, r r r 是一个随机串。
  • 说明: g l \mathsf{gl} gl就是从 x x x中随机选择若干比特异或结果作为核心断言。即便敌手根据输出推断出 x x x中若干比特的信息,但仍不能推断出(由 r r r来)随机挑选的任意若干比特信息(核心断言),否则意味着敌手可以求出整个 x x x
  1. 从OWP到PRG:Blum-Micali Generator
  • 定理: f f f 是一个OWP并且 h c \mathsf{hc} hc 是一个 f f f 的 HCP 。那么, G ( s ) = def ( f ( s ) , h c ( s ) ) G(s) \overset{\text{def}}{=} (f(s), \mathsf{hc}(s)) G(s)=def(f(s),hc(s)) 构造了一个 PRG 带有扩展因子 ℓ ( n ) = n + 1 \ell(n) = n+1 (n)=n+1,并且 ∀ \forall 多项式 p ( n ) > n p(n) > n p(n)>n, ∃ \exists 一个 PRG 带有扩展因子 ℓ ( n ) = p ( n ) \ell(n) = p(n) (n)=p(n)
  • 定理成立的理由有两点:
    • 因为 f f f为排列(这很重要,不能是非排列的函数),那么当 s s s随机生成时, f ( s ) f(s) f(s)也是均匀随机的, G ( s ) G(s) G(s)的头部也就是随机的;
    • 根据 f ( s ) f(s) f(s)难以推断核心断言 h c ( s ) \mathsf{hc}(s) hc(s),这正是伪随机生成器的伪随机性的判断依据:下一比特不可预测性。
  1. 从PRG到PRF [Goldreich, Goldwasser, Micali]
  • 定理:如果存在一个PRG带有扩展因子 ℓ ( n ) = 2 n \ell(n) = 2n (n)=2n,那么存在一个PRF。
  • F k ( x 1 x 2 ⋯ x n ) = G x n ( ⋯ ( G x 2 ( G x 1 ( k ) ) ) ⋯   ) , G ( s ) = ( G 0 ( s ) , G 1 ( s ) ) . F_k(x_1x_2\cdots x_n) = G_{x_n}(\cdots(G_{x_2}(G_{x_1}(k)))\cdots), G(s)=(G_0(s),G_1(s)). Fk(x1x2xn)=Gxn((Gx2(Gx1(k)))),G(s)=(G0(s),G1(s)).
  • 以密钥 k k k为PRG的种子生成随机串,并将该随机串对半分为两个子串 G 0 ( s ) , G 1 ( s ) G_0(s),G_1(s) G0(s),G1(s);再以每个子串作为种子分别生成两个新的子串;由此,构造一个以密钥(种子)为根的二叉树,每个叶子节点对应伪随机函数的一个输出,从输入到输出的映射就是从根到叶子的一条分支,根据输入每个比特值来选择分叉:0为左,1为右;
  • 例如, F k ( 011 ) = G 1 ( G 1 ( G 0 ( k ) ) ) F_k(011) = G_1(G_1(G_0(k))) Fk(011)=G1(G1(G0(k)));以 k k k为根,根据第一个比特选择左分支,接着选择右分支,右分支。
  • PRF随机性来自于PRG的随机性。
  1. 从PRF到PRP [Lucy, Rackoff]
  • Feistel网络可以将一个 n n n比特的PRF转变为一个 2 n 2n 2n比特的PRP,有以下定理
  • 定理:一个3轮的Feistel网络可将一个PRF转变为一个PRP。
  • 定理:一个4轮的Feistel网络可将一个PRP转变为一个strong PRP。
  • 说明:
    • 首先,Feistel网络本身特性是排列,因此证明上述定理成立的关键在于,证明伪随机性;伪随机性来自与每轮的mangler函数是PRF,其输出是一个独立的随机值。
    • 对于为什么至少需要3轮?首先可以观察到如果只有1轮,则不是伪随机的,因为 R 0 R_0 R0被直接输出为 L 1 L_1 L1;如果只有2轮,也不是随机的,因为只改变 L 0 L_0 L0来翻转1个比特,那么 R 2 R_2 R2也只翻转1个比特。当3轮时,上述两个情况不会发生,并且输出结果 L 3 , R 3 L_3, R_3 L3,R3都是经过了PRF结果得到的。
  1. 必要的假设
  • 前面的理论说明OWP的存在是安全加密方案的充分条件,同时我们还可以证明OWP的存在也是安全加密方案的必要条件。
  • 定理:假设存在OWP,那么存在PRG,PRF,PRP和CCA安全私钥加密方案。
    • 如何构造CCA安全的加密方案将在后面学习。
  • 命题:如果存在窃听者不可区分私钥加密方案,那么存在一个OWF。
  • 证明: f ( k , m , r ) = def ( E n c k ( m , r ) , m ) f(k,m,r) \overset{\text{def}}{=} (\mathsf{Enc}_k(m,r),m) f(k,m,r)=def(Enck(m,r),m),其中 ∣ k ∣ = n , ∣ m ∣ = 2 n , ∣ r ∣ = ℓ ( n ) |k|=n, |m|=2n, |r|=\ell(n) k=n,m=2n,r=(n)
    • 从破解加密方案问题 A ′ \mathcal{A}' A规约到单向函数求逆问题 A \mathcal{A} A。规约的关键之一在于将挑战密文和一个明文 c ∥ m 0 c\|m_0 cm0 作为 A \mathcal{A} A求逆的输入。当求拟成功时, A ′ \mathcal{A}' A输出0;否则,输出1。当 m 0 m_0 m0被加密,则破解加密方案意味着可求逆;当 m 1 m_1 m1被加密,则破解加密方案意味着没有成功求逆,概率为 1 − 1 / 2 n 1-1/2^n 11/2n
  1. 总结
  • OWF意味着安全私钥加密方案,安全私钥加密方案意味着OWF。

到了这里,关于【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Introduction to modern Cryptography 现代密码学原理与协议第二章笔记

    M表示明文空间,K表示密钥空间,C表示所有可能的密文集合 完善保密加密 的概念: 简化约定,不再特殊声明 ,除数为0无意义 完全保密加密的等价公式: 证明: 必要性证明略,此证明为条件概率的简单应用 完全不可区分性 : 完善保密加密的另一形式:  证明:   敌手不可区分性

    2024年02月03日
    浏览(40)
  • 【现代密码学】笔记 补充7-- CCA安全与认证加密《introduction to modern cryphtography》

    主要在 哈工大密码学课程 张宇老师课件 的基础上学习记录笔记。 内容补充:骆婷老师的PPT 《introduction to modern cryphtography》–Jonathan Katz, Yehuda Lindell(现代密码学——原理与协议)中相关章节 密码学复习笔记 这个博主好有意思 初步笔记,如有错误请指正 快速补充一些密码

    2024年01月17日
    浏览(51)
  • 【现代密码学】笔记4--消息认证码与抗碰撞哈希函数《introduction to modern cryphtography》

    主要在 哈工大密码学课程 张宇老师课件 的基础上学习记录笔记。 内容补充:骆婷老师的PPT 《introduction to modern cryphtography》–Jonathan Katz, Yehuda Lindell(现代密码学——原理与协议)中相关章节 密码学复习笔记 这个博主好有意思 初步笔记,如有错误请指正 快速补充一些密码

    2024年01月18日
    浏览(49)
  • 现代密码学基础(2)

    目录 一. 介绍 二. 举例:移位密码 (1)密文概率 (2)明文概率 三. 举例:多字母的移位密码 四. 完美安全 五. 举例:双子母的移位密码 六. 从密文角度看完美安全 七. 完美保密性质 在密码学中,K代表密钥,M代表明文,C代表密文,每个都有各自的概率分布。 密钥是通过密

    2024年01月17日
    浏览(60)
  • 现代密码学复习

    目录 密码学总结 第一章——只因础模型与概念 1.1 密码学五元组(结合🐏皮卷) 1.2 Dolev-Yao威胁模型 1.3 攻击类型 1.4 柯克霍夫原则(Kerckhoffs\\\'s principle) 1.5 对称、非对称加密 1.6 密码的目标 1.7 保密通信模型 第二章——古典密码 2.1 仿射密码 2.2 Hill密码 例题0 ——解同余方程

    2023年04月09日
    浏览(63)
  • 现代密码学实验五:签名算法

    一、实验目的 1.掌握数字签名的基本原理,理解RSA算法如何提供数字签名。 2.熟悉实验环境和加密软件CrypTool 1.4(CrypTool 2)的使用。 3.编写代码实现签名算法。 二、实验内容 运行CrypTool 1.4(CrypTool 2),使用 RSA 算法对消息进行签名操作,选择公钥PK=(e,N),私钥为sk=(d,N)。例如: 消息

    2024年02月02日
    浏览(56)
  • 第二章 流密码 —— 现代密码学(杨波)课后题答案解析

    1.3级线性反馈移位寄存器在 c 3 =1时可有4种线性反馈函数,设其初始状态为( a 1 , a 2 , a 3 )=(1,0,1),求各线性反馈函数的输出序列及周期。 解:此时线性反馈函数可表示为 f ( a 1 , a 2 , a 3 )= a 1 Å c 2 a 2 Å c 1 a 3 当 c 1 =0, c 2 =0时, f ( a 1 , a 2 , a 3 )= a 1 Å c 2 a 2 Å c 1 a 3 =

    2024年02月05日
    浏览(55)
  • 第四章 公钥密码 —— 现代密码学(杨波)课后题答案解析

    4. 用推广的Euclid算法求67 mod 119的逆元 解:初始化:(1,0,119), (0,1,67) 1:Q=119/67=1,(0,1,67) , (1,-1,52) 2:Q=67/52=1,(1,-1,52), (-1,2,15) 3:Q=52/15=3,(-1,2,15), (4,-7,7) 4:Q=15/7=2,(4,-7,7), (-9,16,1) 所以67 -1  mod 119=16 10.设通信双方使用RSA加密体制,接收方的公开钥是( e , n )=(5,35),接收到

    2024年02月05日
    浏览(58)
  • 密码学与密码安全:理论与实践

    title: 密码学与密码安全:理论与实践 date: 2024/4/10 21:22:31 updated: 2024/4/10 21:22:31 tags: 密码学 加密算法 安全协议 密码分析 密码安全 实际应用 未来发展 密码学是研究如何保护信息安全的学科,旨在确保信息在传输和存储过程中不被未授权的人所访问、修改或破坏。密码学涉及

    2024年04月11日
    浏览(45)
  • 【现代密码学基础】详解完美安全与不可区分安全

    目录 一. 介绍 二. 不可区分性试验 三. 不可区分性与完美安全 四. 例题 五. 小结 敌手完美不可区分,英文写做perfect adversarial indistinguishability,其中adversarial经常被省略不写,在密码学的论文中经常被简称为IND安全。 完美不可区分与香农的完美安全是类似的。该定义来源于一

    2024年01月21日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包