prc转换_公钥密码学的数学基础[通俗易懂]

prc转换_公钥密码学的数学基础[通俗易懂]Python微信订餐小程序课程视频https://edu.csdn.net/course/detail/36074Python实战量化交易理财系统https://edu.csdn.net/course/detail/

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475
本文将介绍密码学中的PRF、PRP等相关概念,并介绍 PRP/PRF 转换引理及其证明,希望读完本文后,你能对现代密码学中这几个基础概念有所了解。

在开始本文前,希望你有如下预备知识:

  • 现代密码学是怎样的一门学科?
  • “Security Through Obscurity” 是什么意思?
  • 集合、极限、函数、随机变量、采样等数学概念是什么?

概述

在之前的一篇博客中提到,伪随机性是现代密码学的根基,每一个密码算法都需要有这样的伪随机性来源。而伪随机数发生器只是一个承载伪随机性的初等原语,其数学性质和模型都太朴素,不足以帮助我们构建更复杂的算法结构。

伪随机函数的出现,对「如何将随机性这个特点与函数的输入输出结合?」这一问题给出了严格的数学定义与描述方法。这为各位密码学家们提供了一个很强的模型。进一步地,伪随机置换则在此基础上,引入了「映射可逆」的概念,从而丰富和细化了PRF的抽象能力。

这篇博客将依次介绍伪随机数发生器(PRNG)、伪随机函数(PRF)、伪随机置换(PRP),并给出大名鼎鼎的 PRF/PRP 转换引理及其证明。

PRNG

伪随机性之于现代密码学的重要性在之前的博客中已经为大家介绍过了,而作为伪随机性的载体,伪随机数发生器(Pseudorandom Number Generator,PRNG)的定义重新陈述如下:

令GGG为一多项式时间算法,其输入为s∈{0,1}ns∈{0,1}ns\in {0, 1}^{n},即为一长度为nnn的01比特串,输出的长度记作l(n)l(n)l(n)。其中,l(⋅)l(⋅)l(\cdot )也为一多项式时间算法,l(n)l(n)l(n)则表示是nnn的多项式界(如 n2n2n^{2}、nnn)下的一个数值。若GGG为一PRNG,则应同时满足如下两个条件:

  • 对于任意的nnn,都有l(n)>nl(n)>nl(n) > n;
  • 若此时对于任意一具有多项式资源的敌手AA\mathcal{A},都存在一个可忽略(negligible)的概率 ϵϵ\epsilon ,使得下式成立:

|Pr[A®=1]−Pr[A(G(s))=1]|≤ϵ(1)(1)|Pr[A®=1]−Pr[A(G(s))=1]|≤ϵ|\mathrm{Pr}[\mathcal{A}®=1] – \mathrm{Pr}[\mathcal{A}(G(s))=1]| \le \epsilon \tag{1}
PRNG作为伪随机性最直观的抽象模型,示意图如下图所示。

prc转换_公钥密码学的数学基础[通俗易懂]

可以看到,PRNG在算法构建上的表现力似乎还不是很强。例如,G(s)G(s)G(s)作为PRNG的输出,但这和一个密码算法到底有啥关系?生成密钥?可一个算法又不只有密钥,还有输入输出呢!因此,PRNG作为一个初等原语,其抽象能力还是有些弱,这就需要表达能力更强的原语了。

PRF与PRP

PRF

伪随机函数(即 Pseudorandom Function, PRF)与PRNG相比,多了对输入输出的描述,而这正是「函数」的意义。在介绍PRF之前,首先介绍随机函数。

随机函数

对于将nnn位比特串{0,1}n{0,1}n{0, 1 }^{n}映射到nnn位比特串{0,1}n{0,1}n{0, 1 }^{n}的所有函数组成的函数族FF\mathcal{F},一个随机函数fff是指在FF\mathcal{F}中以均匀随机采样的方法选择得到的一个函数,即有f∈rndFf∈rndFf \stackrel{rnd} \in \mathcal{F}.

在该函数族中,一个函数相当于给出了一种2n2n2{n}个nnn比特长的串的排列,那么整个函数族的大小即为2n⋅2n2n⋅2n2{n\cdot 2^{n}}。这是一个指数级别的计算规模,因此即使存在一个多项式资源的敌手或区分器,他也无法在多项式时间内建模某个随机函数fff的映射方式。

伪随机函数

PRF的正式定义如下:

对于一类带密钥的函数FFF,有F:{0,1}∗×{0,1}∗→{0,1}∗F:{0,1}∗×{0,1}∗→{0,1}∗F: {0,1}^{
} \times {0, 1}^{
} \rightarrow {0, 1}^{*},即y←F(k,x)y←F(k,x)y \leftarrow F(k, x),其中xxx为输入,kkk为密钥,yyy为输出。若称FFF为PRF,则可满足以下条件:

  • 高效计算:给定kkk与xxx,存在高效的多项式时间算法能计算y=F(k,x)y=F(k,x)y=F(k, x);
  • 不可区分:随机选定密钥kkk,伪随机函数F(k,⋅)F(k,⋅)F(k, \cdot)与一随机函数f(⋅)f(⋅)f(\cdot)是不可区分的;
  • 长度保留

今天的文章prc转换_公钥密码学的数学基础[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/63921.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注