Private-Key Encryption

3.1 Computational Security

第二章节介绍了perfect secrecy,但是perfect secrecy有着一些缺点,密钥长度至少与明文长度相等。导致它并不适用实际应用。因此,在第三章节首先引入了computational security来弥补perfect secrecy在实际应用中的不足。
Computational security definitions take into account computational limits on an attacker, and allow for a small probability that security is violated, in contrast to notions(such as perfect secrecy) that are information-theoretic in nature.
计算安全定义考虑了对攻击者的计算限制,并允许违反安全的小概率,这与本质上是信息理论的概念(如完全保密)相反。计算安全现在是为几乎所有加密应用程序定义安全的实际方式。我们认为:凡是敌手,其算力都是有限的,只要敌手成功的概率足够小,该加密方案仍被认为是”计算安全“的。

我们强调,虽然我们放弃了获得完全保密,但这并不意味着我们放弃了我们迄今为止一直采取的严格的数学方法。定义和证明仍然是必要的;唯一的区别是,我们现在考虑一个较弱(但仍然有意义)的安全概念。
在这里插入图片描述

computational security相较perfect secrecy,放款了两个条件: 第一点,敌手时间有限;第二点,敌手破解概率足够小。

为了克服上一章中完全保密的限制,这两种松弛都是必要的。)为了获得一个有意义的理论,我们需要精确地定义我们所说的上述放松。有两种一般的方法:The Concrete Approach(具体方法)和The Asymptotic Approach(渐近方法)。下面将介绍这些内容

3.1.1 The Concrete Approach

在这里插入图片描述
在具体描述法中,我们先定了最长时间和最大概率,即在最长时间下,攻破密码的最大概率为 ϵ \epsilon ϵ,这样的描述十分具体,但是有技术和理论缺陷:第一,它没有考虑到未来算力的变化;第二,它无法随t值或ε值的改变而改变。当然这个也没有考虑到攻击的算法是否一成不变。

3.1.2 The Asymptotic Approach

这种方法基于复杂性理论,引入了一个整数安全参数(用n表示),它参数化了加密方案以及所有涉及的方案.
在这里插入图片描述
首先,honest parties在初始化加密方案时,会商定一个安全参数n(你可以把n看作是诸如key_length的数字,honest parties可以通过调节n的大小来保证方案的安全性能)。

其次,adversary和honest party执行的算法是randomized/probabilistic算法。随机/概率算法指的是算法执行的具体步骤带有随机性。

然后,所有算法都是efficient的。efficient指的是算法的running time is polynomial in n(安全参数n),也就是说算法的时间复杂度是多项式时间复杂度。

在这里插入图片描述
ppt stand for “probabilistic polynomial-time
概率多项式时间(Polynomial polynomial-time)在计算复杂度理论中,指的是一个问题的计算时间m(n)不大于问题大小n的多项式倍数。

如果任何概率多项式时间内,对手以最多可以忽略的概率成功地打破了该方案,则该方案是安全的。这个安全的概念是渐近的,因为它依赖于足够大的n值的行为。文中给出了两个具体的例子,这个省略,例子只是具体说明了渐进式安全。

关于文中提到的polynomial-time algorithms”and “negligible success probabilities细节
A function f from the natural numbers to the nonnegative real numbers is polynomially bounded (or simply polynomial) if there is a constant c such that f(n) < n c n^{c} ncfor all n
Any such algorithm is assumed to have access to a sequence of unbiased,independent random bits

Negligible success probability

在这里插入图片描述在这里插入图片描述
渐进描述法的好处在于它更加精确地描述了计算模型,并且具有良好的封闭性,在确定参数后它还转化为具体描述法。

** Summary**
任何安全定义都由两个组件组成:对什么被认为是方案的“突破”的定义,以及对对手的力量的规范。对手的力量可以与许多问题有关(例如,在加密的情况下,我们是否假设只有密文攻击还是选择明文攻击)。然而,当涉及到对手的计算能力时,我们将从现在开始将对手建模为有效的,因此只考虑可以在概率多项式时间内实现的对抗性策略。

On the Choices Made in Defining Asymptotic Security

使用(概率)多项式时间作为我们的效率概念的一个优点是,这使我们不必精确地指定我们的计算模型。

(概率)多项式时间算法的另一个优点是它们满足理想的闭包特性:特别是,一种只进行多项式计算并对多项式时间子例程进行多项式多次调用的算法本身将在多项式时间内运行。

一个多项式乘以一个可忽略的函数仍然是可以忽略的。这意味着,特别是,如果一个多项式时间算法在每次调用时“失败”的概率都可以忽略不计,那么对该子程序的任何调用失败的概率仍然可以忽略不计。

3.2 Defining Computationally Secure Encryption

首先,重新介绍一下的private-key encryption scheme的定义,不过这次带security parameter n。We also make two other changes: we allow the decryption algorithm to output an error (e.g., in case it is presented with an invalid ciphertext), and let the message space be the set {0, 1}∗ of all (finite-length) binary strings by default.

在这里插入图片描述
Dec解密输出的可能是明文也可能是error。

3.2.1 The Basic Definition of Security (EAV-Security)

Motivating the definition
The adversary should be unable to learn any partial information about the plaintext from the ciphertext.
对手应该无法从密文中了解关于明文的任何部分信息。

虽然我们对对手的能力做出了两个假设(即,它窃听一个密文,并且它在多项式时间内运行),但我们对对手试图破译它所观察到的密文的策略没有做任何假设。这对于获得有意义的安全概念是至关重要的:该定义确保了保护对任何有计算边界的窃听者,无论它使用何种算法。

第二部分提到的不可预测性是在充足时间条件下,在这一部分限制在多项式时间内。
在这里插入图片描述
这样将转化为关于n的函数。

Indistinguishability in the presence of an eavesdropper
在这里插入图片描述
Indistinguishability的定义是可以对照上一章节perfect indistinguishability的定义,但对perfect indistinguishability有所改进:

  1. 在时间上,只考虑运行多项式时间算法的efficient敌手;
  2. 在概率上,有所妥协,敌手成功的概率is negligible better than 1/2,比一半要高,但是可以也是在可忽略的范围。

在这里插入图片描述
在这里插入图片描述
上述两个定义是等价的。证明略。这种安全也称为了EAV安全。(注意,in the presence of an eavesdropper意味敌手的攻击是只能获取single ciphertext 的ciphertext-only-attack)
indistinguishable encryption in the presence of an eavesdropper中,敌手无法以大于negl(n)的优势获知字符串中的任意比特;也无法以大于negl(n)的优势区分密文。

3.2.2 *Semantic Security

在这里插入图片描述
在这里插入图片描述
两种算法猜出的概率几乎相等,也就是说,密文Enck(m)不透露除|(m|)之外的任何关于f(m)的信息。只能知道m的长度,其他的一无所知。

semantic security in the presence of an eavesdropper和indistinguishable encryption in the presence of an eavesdropper是等价命题。

Summary
Computational security中的第一个提出的正规化概念就是semantic security,但是semantic security in the presence of an eavesdropper的定义不实用,因此我们多用与之等价又较之简单的indistinguishability encryption in the presence of an eavesdropper定义。

3.3 Constructing an EAV-Secure Encryption Scheme

3.3.1 Pseudorandom Generators

伪随机生成器G是一种有效的、确定性的算法,用于将一个短的、统一的字符串(称为种子)转换为一个更长的、“看起来是统一的”(或“伪随机”)输出字符串。换句话说,伪随机发生器使用少量的真实随机性来产生大量的伪随机性。当需要大量的随机(-外观)位时,这是很有用的。、

Pseudorandom Generators
A pseudorandom generator G is an efficient, deterministic algorithm for transforming a short, uniform string called the seed into a longer, “uniform-looking” output string.

上述语句只能算是pseudorandom generator的粗略描述,那怎样的pseudorandom generator才算是合格的伪随机生成器呢,或者说其精确定义到底是什么呢?

  1. 在历史上,人们认为通过了某些人为设计的统计测试的pseudorandom generator是pseudorandom的;
  2. 后来到了1980s,人们达成了一致意见,认为a good pseudorandom generator should pass all (efficient) statistical tests.
  3. 现在,我们强调pseudorandom是定义在某种概率分布(distribution)上的,而不是针对特定字符串的。 比如符合均匀分布的字符串中抽样而来的字符串被称为”随机字符串“;由符合某种概率分布的伪随机生成器生成的字符串为“伪随机字符串”。

Informally,Dist is pseudorandom if the experiment in which a string is sampled from Dist is indistinguishable from the experiment in which a uniform string of length ` is sampled. (Strictly speaking, since we are in an asymptotic settingwe need to speak of the pseudorandomness of a sequence of distributions Dist = {Distn}, where distribution Distn is used for security parameter n.We ignore this point in our current discussion.)

More precisely, it should be infeasible for any polynomial-time algorithm to tell whether it is given a string sampled according to Dist, or whether it is given a uniform l-bit string.
在多项式时间内,无法区分判断实验使用的是伪随机串还是统一的串,也就是说uniform string 和Dist是一样的。

The formal definition
在这里插入图片描述
伪随机发生器G的输出分布远不均匀。

在这里插入图片描述
(值得注意的是,output of a pseudorandom generator G的概率分布远远达不到“均匀”。比如,要把随机生成器G输入n bits,输出2n bits,最后实际能够输出的字符串比例最多只有 2 n / 2 2 n = 2 − n 2^n / 2^{2n} = 2^{-n} 2n/22n=2n。也就是说,绝大多数2n bits的字符串不会出现在输出中。那么,给定无穷时间,我们可以利用指数级别的brute-force算法轻易区分random string和pseudorandom string。)

The seed and its length.
伪随机发生器的种子必须足够长,不能在有限时间内被暴力破解。

In this chapter, we simply assume pseudorandom generators exist for any polynomial expansion factor, and explore how they can be used to build secure encryption schemes
我们简单地假设任何多项式展开因子都存在伪随机生成器

3.3.2 Proofs by Reduction

proofs by eduction的大致意思是,我们不需要完整地证明密码方案是安全的,而是依赖于一个困难的unproven assumption(如P≠NP等等),将安全证明转为证明在该assumption下安全。只要该assumption不被解决,那么密码方案也将保证安全。方案依赖于未经证明的假设。

证明思路: The proof that a cryptographic construction is secure as long as some underlying problem is hard generally proceeds by presenting an explicit reduction showing how to transform any efficient adversary A that succeeds in “breaking” the construction into an efficient algorithm A ′ that solves the problem that was assumed to be hard.
证明步骤:
在这里插入图片描述
在这里插入图片描述
把我们构造的密码方案看作是一个黑盒,设法将hard assumption在多项式步内规约(reduce)到我们构造的密码方案上的一个实例,然后将该实例丢入黑盒,调用我们构造的密码方案。

如果黑盒能够在多项式时间内以非negligible几率解决实例问题,那就说明hard assumption也能够在多项式时间内以非negligible几率解决,这与hard assumption的困难假设矛盾

3.3.3 EAV-Security from a Pseudorandom Generator

在这里插入图片描述
The encryption scheme
在这里插入图片描述
和one time pad加密的区别在于密钥k是通过伪随机生成器生成的。one time pad采用的是随机密钥,长度很长,而伪随机生成器是通过种子生成的,种子的长度是比真正的密钥长度要小的。
结论
在这里插入图片描述
这里基于的assumption是G is a pseudorandom generator。为此,我们构造了一个区分器distinguisher D(因为pseudorandom generator的定义中包含distinguisher,要想用pseudorandom generator的必要条件,自然要构造distinguisher)。
最终要证明的结论是indistinguishable encryption in the presence of an eavesdropper,即PrivK(n) ≤ 1/2 + negl(n)。具体证明过程略。
在这里插入图片描述
这个方案的意义在于:

打破了之前perfect secrecy的限制,做到了key长度短于明文长度,并且是computational security的。 注意,虽然我们没有实际说明pseudorandom generator,但按照类似搭积木的结构化方法,只要pseudorandom generator存在,我们的加密方案就是indistinguishable encryption in the presence of an eavesdropper安全的。

3.4 Stronger Security Notions

到目前为止,我们已经考虑了一个相对较弱的安全定义,即对手只被动地窃听诚实当事人之间发送的单个密文。这里我们考虑更强的安全概念。

3.4.1 Security for Multiple Encryptions

以前我们考虑的都是单密文的情况,这在现实中肯定是不存在的的。现实中是:如果通信方能够安全地相互发送多个密文——所有这些都使用同一密钥生成——即使窃听者可以观察到所有这些密文。那么安全等级不再是以前的情况了。
The multiple-message eavesdropping experiment
在这里插入图片描述
和之前的定义类似,注意区分,这是多消息对抗实验。
在这里插入图片描述
多重加密的计算安全定义。

在这里插入图片描述
有一种私钥加密方案,在窃听者存在时具有难以区分的加密,但在窃听者存在时没有无法区分的多重加密。听着很绕口,就是一次加密安全的方案在多重加密的时候并不安全,比如one time pad。证明略。

在这里插入图片描述
如果Π是一种加密方案,其中Enc是密钥和消息的确定性函数,那么Π在窃听者存在的情况下不能有无法区分的多重加密。即加密方案具有确定性,在同一个消息被加密多次,密文是相同的,这就不是安全的。为了构建一个安全的加密多个消息的方案,我们必须设计一个随机加密的方案,这样当同一条消息被多次加密时,就可以产生不同的密文。这似乎是不可能,因为解密必须总是能够恢复消息。其实这是可以做到的,具体在下一节讲到。

3.4.2 Chosen-Plaintext Attacks and CPA-Security

选择明文攻击前面已经讲过,不再重复
CPA-security
CPA不可分辨实验
在这里插入图片描述
在这里插入图片描述
定义与eav是类似的
CPA-security is nowadays the minimal notion of security an encryption scheme should satisfy

3.4.3 CPA-Security for Multiple Encryptions

上述只考虑一次加密,下面的定义扩展到多次加密
重新定义了一种LR黑盒,简单理解,就是当b=0是加密left,当b=1时,加密right。如果b=0,那么对手总是接收到“左”明文的加密,如果b=1,那么它总是接收到“右”明文的加密。位b是在实验开始时选择的统一位,与之前的定义一样,攻击者的目标是猜测b。
在这里插入图片描述在这里插入图片描述
实验和定义都是和以前的类似。
在这里插入图片描述
任何具有cpa安全功能的私钥加密方案对于多重加密也是cpa安全的。

3.5 Constructing a CPA-Secure Encryption Scheme

3.5.1 Pseudorandom Functions and Permutations

前面提到过伪随机生成器,这里的伪随机函数是伪随机生成器的加强。
We call F pseudorandom if the function Fk (for a uniform key k) is indistinguishable from a function chosen uniformly at random from the set of all functions having the same domain and range.
在这里插入图片描述
当有逆函数时
在这里插入图片描述
个人理解:伪随机生成器是要求生成的串与随机无法分辨,伪随机函数,是一种增强,无法分辨是什么伪随机函数产生的。

3.5.2 CPA-Security from a Pseudorandom Function

The requirment of CPA-Secure Encryption:The method of encryption isn’t deterministic,in particular,encrypting the same plaintext twice will yield the same ciphertext.
cpa -安全加密的要求:加密的方法是不确定的,特别是对相同的明文加密两次会产生相同的密文。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
证明略

3.6 Modes of Operation and Encryption in Practice

未完待续

3.6.1 Stream Ciphers

3.6.2 Stream-Cipher Modes of Operation

3.6.3 Block Ciphers and Block-Cipher Modes of Operation

3.6.4 *Nonce-Based Encryption

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值