Chapter2.1 Definitions. 《Introduction To Modern Cryptography》

2.1.1 加密方案的定义和说明

  在古典密码学中我们介绍了一些加密方案,例如凯撒密码等。在正式进入现代密码学之前,我们首先给出加密方案的定义。

D e f i n i t i o n : E n c r y p t i o n S c h e m e \color{blue}{Definition:EncryptionScheme} DefinitionEncryptionScheme
  An Encryption Scheme is defined by three algorithms:Gen, Enc, and Dec, as well as a specification of a message space M \mathcal{M} M.

  我们在这里给出的关于加密方案的定义,已经非常接近第三章中关于私钥加密方案的定义了。加密方案由三个算法组成,同时定义了明文空间。
  Gen:即Key Generation,生成密钥 k \mathcal{k} k的算法。在绝大多数情况下,我们只是在所有的密钥当中均匀的选出一个。

  Enc:即Encryption,进行加密的算法。Enc可以是确定性的算法,也可以是概率算法。例如,在construction3.17当中,我们定义的加密算法就是确定性的算法,给定明文 m \mathcal{m} m和密钥 k \mathcal{k} k,我们总是能得到相同的密文 c \mathcal{c} c。而在construction3.28当中,我们定义的加密算法就是概率性的算法,即使是输入相同的明文 m \mathcal{m} m和密钥 k \mathcal{k} k,也有可能得到不同的结果 c \mathcal{c} c
  这里我们强调Enc是一个概率算法。事实上,在后面的学习中我们会看到,确定性的加密算法只能达到eva-secure,要想达到cpa-secure乃至cca-secure级别的安全,必须使用概率性的加密算法。

  • Input: m \mathcal{m} m ∈ \in M \mathcal{M} M, k \mathcal{k} k ∈ \in K \mathcal{K} K
  • output: c \mathcal{c} c ⟵ \longleftarrow E n c k ( m ) Enc_{k}(m) Enck(m)

  Dec:即Decryption,进行解密的算法。这里注意两点,首先加密和解密所使用的密钥 k \mathcal{k} k是相同的;其次解密算法是确定性的算法,也就是说输入相同的密文 c \mathcal{c} c和密钥 k \mathcal{k} k,运算得到的结果一定是相同的。加密算法不需要是确定性的算法。但是解密算法必须是确定性的,否则揭秘结果无法使用了!

  • Input: c \mathcal{c} c ∈ \in C \mathcal{C} C, k \mathcal{k} k ∈ \in K \mathcal{K} K
  • output: m \mathcal{m} m := E n c k ( m ) Enc_{k}(m) Enck(m)


2.1.2 概率相关的问题

  上一部分内容我们提到了加密方案所包括的三个算法,即Gen, Enc, and Dec。定义还强调了明文空间 M \mathcal{M} M。实际上,应当还包括密文空间 C \mathcal{C} C和密钥空间 K \mathcal{K} K。三种算法和三个空间是相对应的关系。

  密钥空间 K \mathcal{K} K是由所有密钥 k \mathcal{k} k组成的集合。在运行Gen算法的时候,我们通常随机均匀地从 K \mathcal{K} K挑选密钥 k \mathcal{k} k。随机代表Gen是概率性的算法,每次所挑选的密钥都应当不同(如果连续运行两次Gen,当然有可能得到相同的密钥 k \mathcal{k} k,但从概率的角度来说太不可能了!),而均匀代表密钥的选取一般是等概率的,也就是说, ∀ \forall k 0 \mathcal{k_{0}} k0, k 1 \mathcal{k_{1}} k1 ∈ \in K \mathcal{K} K, Pr[ K \mathcal{K} K = k 0 \mathcal{k_{0}} k0] = Pr[ K \mathcal{K} K = k 1 \mathcal{k_{1}} k1]。

  明文空间 M \mathcal{M} M是由所有明文 m \mathcal{m} m组成的集合。但是,不同明文在明文空间当中的分布概率是不相等的。例如,一般而言,你与数学老师讨论数学问题的概率将大于,你和英语老师讨论数学问题的概率。明文的概率分布并不与密码学机制或者密码学原理有关系,而仅仅与现实生活中通信需要有关。

  密文空间 C \mathcal{C} C是由所有密文 c \mathcal{c} c组成的集合。它是密钥空间 K \mathcal{K} K和明文空间 M \mathcal{M} M相互作用的结果。

  下面是课本当中的例题2.1。

E x a m p l e 2.1 \color{green}{Example2.1} Example2.1
  对于移位密码,我们假定密钥空间 K \mathcal{K} K = {0, 1, …, 25},且对于每一个 k \mathcal{k} k ∈ \in K \mathcal{K} K
Pr[ K \mathcal{K} K = k \mathcal{k} k] = 1/26。
   同时我们定义明文空间 M \mathcal{M} M = {a, z},Pr[ M \mathcal{M} M = a \mathcal{a} a] = 0.7,Pr[ M \mathcal{M} M = z \mathcal{z} z] = 0.3。
   第一问:密文为C的概率是多少?即Pr[ C \mathcal{C} C = C] =?
   第二问:已知密文为B,求明文为a的概率?

  抛开例题本身不谈,题干就非常值得钻研。密钥的选取总是均匀而随机的,如果偏好使用某些密钥,那么其隐私性就大幅度削弱了。此外,明文的选取往往是和现实通信需求相关,基本上无法做到均匀。这里的明文空间只是一个包含两个字符的案例,但确实是现实的某种缩影。


2.1.3 完美安全:概率上的两种定义

  到现在为止已经介绍了加密方案,和有关三种空间的概率含义。接下来我们讨论完美安全(Perfect Secrecy)。时刻牢记,完美加密并不是完美的,它只能抵抗唯密文攻击(eva)而不能抵抗选择明文攻击(cpa)或者选择密文攻击(cca),同时它非常的不实用。

  我们假设敌手(Adversary)的能力是窃听(evaesdrop),也就是唯密文攻击。敌手可以趴在通信双方的信道上,完整的获取密文 c \mathcal{c} c。敌手也知道加密算法Enc和解密算法Dec。当然,敌手不知道密钥 k \mathcal{k} k和明文 m \mathcal{m} m。不过,敌手想知道 m \mathcal{m} m的信息。不一定是全部内容,任何信息都可以。

  那么完美加密的第一种定义就是,密文 c \mathcal{c} c没有揭露任何有关明文 m \mathcal{m} m的信息。敌手不能从密文 c \mathcal{c} c当中学到关于明文 m \mathcal{m} m的任何内容。在没有拿到密文 c \mathcal{c} c之前,敌手可能对明文 m \mathcal{m} m的分布有一定的估计。而拿到密文 c \mathcal{c} c之后,敌手没有获得任何额外信息!

D e f i n i t i o n 2.3 : P e r f e c t l y S e c r e t ( 1 ) \color{blue}{Definition2.3:Perfectly Secret(1)} Definition2.3PerfectlySecret(1)
  An encryption scheme (Gen; Enc; Dec) with message space M is perfectly secret if for every probability distribution for M, every message m 2 M, and every ciphertext c 2 C for which Pr[ C \mathcal{C} C = c] > 0.
  Pr[ M \mathcal{M} M = m | C \mathcal{C} C = c] = Pr[ M \mathcal{M} M = m]
  (The requirement that Pr[ C \mathcal{C} C = c] > 0 is a technical one needed to prevent
conditioning on a zero-probability event.)

  接下来介绍完美加密的第二种定义。直观上的理解是,明文空间 M \mathcal{M} M的分布是与现实世界密切相关的、不均匀的。但是对于不同的明文,加密之后得到同一个密文的概率是相等的(例如明文a和明文b出现的概率是不相同的,但是它们加密得到密文X的概率相同,得到密文Y的概率也是相同的)

D e f i n i t i o n : P e r f e c t l y S e c r e t ( 2 ) \color{blue}{Definition:Perfectly Secret(2)} DefinitionPerfectlySecret(2)
   Pr[ E n c K ( m ) Enc_{K}(m) EncK(m)= c \mathcal{c} c] = Pr[ E n c K ( m ′ ) Enc_{K}(m^{'}) EncK(m) = c \mathcal{c} c], ∀ \forall m \mathcal{m} m, m ′ m^{'} m ∈ \in M \mathcal{M} M, ∀ \forall c \mathcal{c} c ∈ \in C \mathcal{C} C

  这两种定义是完全等价的。


2.1.4 完美安全:敌手不可区分性

  最后我们从敌手实验的角度来给出完美安全的第三种定义。这将是我们第一次接触敌手的概念。敌手的能力通常以实验来概括,而安全的定义则通过敌手在实验中胜出的可能性来定义。

The adversarial indistinguishability experiment P r i v K A , P i e v a PrivK_{A,Pi}^{eva} PrivKA,Pieva

  1. The adversary A outputs a pair of messages m 0 m_{0} m0; m 1 m_{1} m1.
  2. A key k k k is generated using Gen, and a uniform bit b b b ∈ \in {0, 1} is chosen. Ciphertext c Enck(mb) is computed and given to A. We refer to
    c as the challenge ciphertext.

你可能感兴趣的:(密码学基础,算法,人工智能)