安全参数 1 n 1^n 1n
- 算法及复杂度理论中,算法的运行时间为输入长度(数据规模)的函数,因此把安全参数表示为 1 n 1^n 1n的形式,也就是一个长度为 n n n的全一串,用它代表安全参数,提供给攻防双方作为输入参数(它们使用的算法以 1 n 1^n 1n为输入应该在多项式时间内运行完毕)
可忽略函数 n e g l negl negl
- 定义
∀ p ( ⋅ ) , ∃ N , s t . ∀ n > N , f ( n ) < 1 p ( n ) , f ( n ) i s n e g l i g i b l e \forall p(\cdot), \exist N, st. \forall n \gt N, f(n) \lt \frac{1}{p(n)}, \quad f(n) \quad is \quad negligible ∀p(⋅),∃N,st.∀n>N,f(n)<p(n)1,f(n)isnegligible
-
推论
- n e g l 3 ( n ) = n e g l 1 ( n ) + n e g l 2 ( n ) negl_3(n) = negl_1(n) + negl_2(n) negl3(n)=negl1(n)+negl2(n)可忽略
- n e g l 4 ( n ) = p ( n ) ∗ n e g l 1 ( n ) negl_4(n) = p(n) * negl_1(n) negl4(n)=p(n)∗negl1(n)可忽略
私钥加密方案 ( G e n , E n c , D e c ) (Gen, Enc, Dec) (Gen,Enc,Dec)
-
定义
-
G e n Gen Gen以安全参数 1 n 1^n 1n为输入,输出密钥 k k k,记作 k ← G e n k \leftarrow Gen k←Gen (" ← \leftarrow ←"强调其是一个随机算法),并不失一般性的假设 ∣ k ∣ ≥ n |k| \ge n ∣k∣≥n
-
E n c Enc Enc以密钥 k k k和明文 m ∈ { 0 , 1 } ∗ m \in \{0, 1\}^* m∈{ 0,1}∗(注意此处明文可以是任意长度)为输入,输出密文 c c c。因为 E n c Enc Enc可能是一个随机算法,所以将其记为 c ← E n c k ( m ) c \leftarrow Enc_k(m) c←Enck(m) (注意没有使用 c : = E n c k ( m ) c := Enc_k(m) c:=Enck(m),这强调了 E n c Enc Enc可能是随机算法)
-
D e c Dec Dec以密钥 k k k和密文 c c c为输入,输出明文 m m m。不失一般性的, D e c Dec Dec被假设为确定算法,因此记作 m : = D e c k ( c ) m := Dec_k(c) m:=Deck(c)
-
-
基本正确性要求
D e c k ( E n c k ( m ) ) = m , ∀ n , ∀ k , ∀ m Dec_k(Enc_k(m)) = m, \forall n, \forall k, \forall m Deck(Enck(m))=m,∀n,∀k,∀m
-
定长私钥加密方案
当对明文长度有要求时,即 m ∈ { 0 , 1 } l ( n ) m \in \{0, 1\}^{l(n)} m∈{ 0,1}l(n),称为定长私钥加密方案,其具有长度参数 l ( n ) l(n) l(n)
窃听不可区分实验 P r i v K A , Π e a v ( n ) PrivK_{\Alpha, \Pi}^{eav}(n) PrivKA,Πeav(n)
-
定义
- 给敌手 A \Alpha A指定 1 n 1^n 1n作为输入,(敌手在多项式时间内)输出一对等长的消息 m 0 , m 1 m_0, m_1 m0,m1
- 产生随机密钥 k ← G e n ( 1 n ) k \leftarrow Gen(1^n) k←Gen(1n),随机选择一个比特 b ← { 0 , 1 } b \leftarrow \{0, 1\} b←{ 0,1},计算密文 c ← E n c k ( m b ) c \leftarrow Enc_k(m_b) c←Enck(mb)并交给 A \Alpha A
- A \Alpha A输出一个比特 b ′ b^{\\'} b′
- 如果 b ′ = b b^{\\'} = b b′=b,则实验输出为 1 1 1,否则为 0 0 0。如果 P r i v K A , Π e a v ( n ) = 1 PrivK_{\Alpha, \Pi}^{eav}(n) = 1 PrivKA,Πeav(n)=1,则称敌手成功。
窃听者存在下的不可区分性
- 定义
P r [ P r i v A , Π e a v ( n ) = 1 ] ≤ 1 2 + n e g l ( n ) Pr[Priv_{\Alpha, \Pi}^{eav}(n) = 1] \le \frac{1}{2} + negl(n) Pr[PrivA,Πeav(n)=1]≤21+negl(n)
-
理解
在窃听不可区分实验中,敌手成功的概率中,多于 1 2 \frac{1}{2} 21的部分是可忽略的
窃听者存在下的不可区分性等价定义
- 定义
∣ P r [ o u t p u t ( P r i v A , Π e a v ( n , 0 ) ) = 1 ] − P r [ o u t p u t ( P r i v A , Π e a v ( n , 1 ) ) = 1 ] ∣ ≤ n e g l ( n ) |Pr[output(Priv_{\Alpha, \Pi}^{eav}(n, 0)) = 1] - Pr[output(Priv_{\Alpha, \Pi}^{eav}(n, 1)) = 1]| \le negl(n) ∣Pr[output(PrivA,Πeav(n,0))=1]−Pr[output(PrivA,Πeav(n,1))=1]∣≤negl(n)
-
理解
在窃听不可区分实验中,当选择 b = 0 b = 0 b=0时,敌手输出 b ′ = 1 b^{\\'} = 1 b′=1的概率,和 b = 1 b = 1 b=1时,敌手输出 b ′ = 1 b^{\\'} = 1 b′=1的概率差是可忽略的
窃听者存在下的语义安全
- 定义
∣ P r [ A ( 1 n , E n c k ( m ) , h ( m ) ) = f ( m ) ] − P r [ A ′ ( 1 n , h ( m ) ) = f ( m ) ] ∣ ≤ n e g l ( n ) |Pr[\Alpha(1^n, Enc_k(m), h(m)) = f(m)] - Pr[\Alpha^{\\'}(1^n, h(m)) = f(m)]| \le negl(n) ∣Pr[A(1n,Enck(m),h(m))=f(m)]−Pr[A′(1n,h(m))=f(m)]∣≤negl(n)
-
理解
对于得到和未得到密文的攻击者,利用已知的明文相关信息,可获得的其他明文信息是几乎一样的;
也就是说,密文没有泄露有关明文的任何信息