わかれ鍵の、その謎へ
SKE
基础版(定长系统):可以随机的 \(\t{Gen},\t{Enc},\t{Dec}\),有 \(\t{Gen}\to k,\t{Enc}_k(m)\to c,\t{Dec}_k(c)\to m/\perp\),其中 \(\perp\) 是解密失败。
正确性:对于一切 \(m\),关于 \(\t{Gen},\t{Enc},\t{Dec}\) 三者的随机性,有 \(k\gets\t{Gen}:\t{Dec}_k(\t{Enc}_k(m))=m\wp1\)。
里面并没有涉及到任何有关输入长度 \(n\) 的信息。
Perfect Secrecy / Shannon Secrecy
Perfect Secrecy:任两个明文 \(m_1,m_2\) 加密后的密文分布相同。
Shannon Secrecy:知道 \(c\) 不能帮助推出 \(m\)。即,对于一切明文分布 \(D\),\(\Pr(m=m')=\Pr(m=m'\mid\t{Enc}_k(m)=c)\)。
通过基础概率推理,二者等价。使用抽屉原理,可以证出要想满足这两种安全性必须要有 \(|K|\geq|M|\),因此使用 One-Time Pad 即可。
OWF
Definition
最坏情况 (worst-case) OWF:最弱,只要求不存在完美的逆(对于一切 \(x\in\cur{0,1}^n\) 都可以找到 \(x'\) 满足 \(f(x')=f(x)\wp1\))。换言之,只要存在一些不可逆的(可以是 negligible 的)\(x\) 即可。
弱 (weak) OWF:强一点,要求对于 noticable 的 \(x\) 不可逆。
强 (strong) OWF:最强,要求对于 overwhelming 的 \(x\) 不可逆(对于 negligible 的 \(x\) 可逆)。
weak OWF 可以简单 boosting 为 strong OWF。但是存在 worst-case OWF(等价于 NP ⊈ BPP)目前并不能找到 weak or strong OWF,需要依赖更强的假设。
OWF Collection
OWF Colletion 是一个 OWF 族 \(\co{red}{\c F=\cur{f_i:\c D_i\to\c R_i}_{i\in I}}\),满足如下条件:
- 存在高效的 \(\t{Gen}(1^n)\) 从族中采样(比如说,通过给定下标的方式采样)。
- 存在高效的从族中任何 OWF 的定义域中采样的方式。
- 存在高效的对族中任何 OWF 和其定义域中元素求值 (evaluate) 的方式。
- 对于一切 \(\t{Adv}(1^n,i,y)\),关于 \(\t{Gen}\)、定义域采样、evaluate 随机时,可逆的概率 negligible。
Over Factoring
从 \(2^n\) 范围中随机挑两个数相乘,是 weak OWF。从 \(\Pi_n=(\t{prime}\setminus\cur2)\cap 2^n\) 中随机挑两个数相乘,是 strong-OWF。此乃质因数分解假设。由质数数量定理,有 \(|\Pi_n|=\Theta(2^n/n)\)。
Over RSA
从 \(\Pi_n\) 中随机挑 \(p,q\),令 \(N=pq\),从 \(\Z^*_{\phi(N)}\) 中随机挑 \(e\),从 \(\Z^*_N\) 中随机挑 \(y\),则计算 \(e\)-次剩余 \(x^e=y\) 是困难的。换言之,\(\cur{f_{N,e}(x)=x^e\bmod n}\) 是 OWP-Collection,为 RSA Collection。
Over Discrete Logarism
令 \(q\) 是满足 \(q-1\) 有大质数因子 \(p\) 的质数(为图方便,也可以直接选择 \(q=2p+1\) 的 \(p,q\))。令 \(G\) 为 \(\Z_q^*\) 的 \(p\) 阶子群,\(g\) 为其生成元。则 \(f_{N,g}(x)=g^x\pmod q\) 是 OWF-Collection。
Over Quadratic Residue
令 \(p,q\in\Pi_n\),则从 \(\Z^*_N\) 中随机挑数然后将其平方,是 OWF。即,\(\cur{f_N(x)=x^2\pmod n}\) 是 OWF-Collection,为 Rabin Collection。
Diffie-Hellman
(Computational Diffie-Hellman)给定 \(g^a,g^b\),计算 \(g^{ab}\) 是困难的。这依赖于 DL 假设,但是反之不亦然。
Trapdoor OWF
\(\t{Gen}\) 在给出 index 的同时也会给出一个 trapdoor;在不提供 trapdoor 时,就是普通的 OWF;但是在提供 trapdoor 时,存在利用之百分百成功破解的方式。
目前唯一已知的 Trapdoor OWF 是 RSA。
Conclusion
Diffie-Hellman -> DL。RSA->Factoring。Quadratic Residue = Factoring。
Indistinguishability
对于两个分布列:
-
它们是完全不可区分 (Perfect Indistinguishable) 的,如果分布列中每一项全同。
-
它们是统计不可区分 (Statistically Indistinguishable) 的,如果分布列的 TVD (\(\dfrac12\sum|u(x)-v(x)|\)) negligible。
-
它们是计算不可区分 (Computationally Indistinguishable) 的,如果所有 nuppt distinguisher 在分别接入二者采样后,输出 \(1\) 的概率差 negligible。
\[\co{red}{\left|\Pr_{t\gets X_n}[D(t)=1]-\Pr_{t\gets Y_n}[D(t)=1]\right|<\t{negligible}} \]
我们关注的是最后一种。它有着如下的性质:
- 传递性 (Transitivity)。由此得到 Hybrid Lemma。
- 不变性 (Invariance),即等价的通入同一个 nuppt 后仍等价。
- 计算 (Computational) 与预测 (Decisional) 的等价性,或称判别器 (Discriminator) 与预测器 (Predictor) 的等价性:不等价,则存在通入输出后判断归属的 nuppt。
PRG
PRG 是与纯随机生成器计算不可区分的生成器,即 \(\cur{0,1}^n\to\cur{0,1}^m\) 满足 \(G(U(\cur{0,1}^n))\approx_CU(\cur{0,1}^m)\)。显然,只有当 \(m>n\) 时,PRG 才是 non-trivial 的。
PRG 必是 OWF:否则可以求逆。则如果 \(x\gets G\) 成功率是 noticable 的 \(\delta\) 的话,因为 shrinking one bit 的性质,\(x\gets U\) 成功率不超过 \(\delta/2\),二者的差仍 noticable。
PRG 的等价定义是,知道任何前缀信息都无助于预测后续位。即,\(\co{red}{\forall n\in\N,\forall i\in[0,m-1]}\),有
Hardcore Bit
一个 bit \(h(x)\) 是一个关于 OWF \(f(x)\) 的难题预测,如果知道 \(f(x)\) 并不能帮助预测 \(h(x)\)(成功概率 \(\dfrac12\)+negligible)。
不存在一个 \(h(x)\) 是全体 OWF \(f(x)\) 的 HB:因为若如此,则 \(f(x)\mid h(x)\) 同样会是一个 OWF,而 \(h(x)\) 显然非其 HB。
Goldreich-Levin 构造:对于定义域为 \(\cur{0,1}^n\) 的 OWF,构造定义域为 \((x,r)\in\cur{0,1}^n\times\cur{0,1}^n\) 的 OWF \((f(x),r)\) 对,则 \(\ip{x,r}\) 会是新 OWF 的 HB。
PRG from HB
如果有 OWP \(f\) 和其对应的 HB \(h\),则令 \(f\) 不断自我迭代并将每一次迭代的结果套上 \(h\) 输出即得 PRG。
Examples of HB & PRG
给定 \(N,e\),对于 \(f_\t{RSA}(x)=x^e\bmod N\),其相关的一些难题预测的例子如
- \(\t{LSB}(x)\) 寻求 \(x\) 的最低位。
- \(\t{half}_N(x)\) 寻求判定是否有 \(0\leq x\leq N/2\)。
- 建立在离散对数假设,即 \(f_\t{DL}(x)=g^x\pmod p\),下的 \(\t{half}_{p-1}(x)\)。
Blum-Micali PRG:使用 seed 生成 \(p,g,x\),其中 \(p\) 是满足 \(p=2q+1\)(\(q\) 亦为质数)的质数,\(g\) 是 \(p\) 的原根,\(x\in\Z_p^*\)。\(f_\t{DL}(x)=g^x\bmod p\),\(h(x)=\t{half}_{p-1}(x)\)。
RSA PRG:\(N=pq\),\(e\in\Z_{\varphi(N)}^*\);\(f_\t{RSA}(x)=x^e\bmod N\),\(h(x)=\t{LSB}(x)\)。
Blum-Blum-Schub:\(p,q\bmod 4=3,N=pq\),\(x\in\t{QR}_N\);\(f_\t{QR}(x)=x^2\bmod N\),\(h(x)=\t{LSB}(x)\)。
PRF
(Single Bit) PRF 是一族函数 \(\co{red}{F=\cur{F_n=\cur{f_k^n:\cur{0,1}^n\to\cur{0,1}}_{k\in\c K_n}}_{n\in\N}}\),接受输入,回答一个确定性的 bit。以其作为 oracle 时(即从函数族中随机固定一个 key 然后提供其对应的函数但不公开 key),任何 adversary 都无法将其与 TRF 以 negligible advantage 区分。
(Multiple Bit) PRF 则要求回答一个定长 01 串,仍与 TRF 不可区分。MBPRF 推出 SBPRF,因为单单截出其第一位即是 SBPRF。
PRF 的核心性质是,输出不能与输入 \(x\) 有着非常明显的联系。
Construction of PRF
GGM Construction: 对于两个没有明显联系的 \(n\)-bit 随机串生成器(注意不是 PRG,因为 PRG 必须要 length-extension)(取 \(2n\)-bit PRG 的前后半即可),使用 key \(k\) 作为起始态,input \(x\) 作为选择哪个 PRG pass through 即可。
PKE
PKE 中,\(\t{Gen}(1^n)\to(pk,sk),\t{Enc}_{pk}(m)\to ct,\t{Dec}_{sk}(ct)\to m'/\perp\)。
PKE 的正确性要求对于一切明文,加密-解密后复原的概率 overwhelming。PKE 的安全性要求任意两个明文加密后的分布,在用于加密的公钥也可被 adv 访问时,仍然是 indistinguishable 的。即,对于一切 \(n\in\N\) 和 \(m_1,m_2\in\c M_n\),都有
为避免 adv 亲自加密验证,encoder 必须是随机的。
- 注意顺序:要求对于每个 adv 存在一个 negligible 的 \(\eps\) 对一切 \(n,m_0,m_1\) 生效,而非存在 global 的 \(\eps\) 对一切 adv 生效。
上述 computational 也可以被替换成 decisional:当仅加密一位时,可以换成 \(\Pr[(pk,\t{Enc}_{pk}(m))=m]<\dfrac12+\eps(n)\)。当加密多位时,PKE 也有它的 CPA 式描述:
- Challenger 生成 \((pk,sk)\) 并把 \(pk\) 交给 Adversary。Adversary 生成 \(m_0,m_1\) 并交给 Challenger。Challenger 随机生成 \(b\in\cur{0,1}\) 并返回 \(\t{Enc}_{pk}(m_b)\)。Adversary 猜测 \(b'\)。
PKE from RSA
使用 RSA 建 PKE。令明文为 \(m\in\cur{0,1}\),则在 \(0\) 时从 \([0,n/2]\) 中随机,\(1\) 时从 \([0,n/2+1]\) 中随机,然后求 \(e\) 次幂。加密后必然是不可区分的,因为 \(\t{half}\) 是 HB。
PKE from HB
上述算法的核心在于 HB。因此,考虑一个 trapdoor OWF collection with HB:令 \(\t{Gen}\) 为 index 与 trapdoor 的 pair,前者为公钥后者为私钥,然后 \(\t{Enc}\) 不断从 OWF 定义域中随机直到随到 HB 等于明文,然后给出通过 OWF 后的结果为密文;\(\t{Dec}\) 就使用 trapdoor 逆向即可。
按照课本上的说法,应该使用如下方法:
- \(\t{Gen}(1^n)\) sample \((f_i,f_i^{-1})\)(后者使用陷门信息实现),然后回复的 \((pk,sk)\) 对为 \(((f_i,b_i),f_i^{-1})\),其中 \(b_i\) 是关于 \(f_i\) 的难题预测。
- \(\t{Enc}_{pk}(m)\):sample \(r\gets\cur{0,1}^n\) 然后输出 \((f_i(r),b_i(r)\oplus m)\)。
- \(\t{Dec}_{pk}(c_1,c_2)\):使用 \(f_i^{-1}\) 逆向 \(c_1\) 得到 \(r\),然后 \(m\gets b_i(r)\oplus c_2\)。
从另一个角度来说,总是可以把 \(\co{green}{\t{Enc}_{pk}(m)}\) 看做是 \(\co{green}{f(m,r)}\),其中 \(\co{green}r\) 是随机带输入,则 \(\co{green}m\) 会是 \(\co{green}f\) 的 HB。
PKE from Decisional Diffie-Hellman
Decisional Diffie-Hellman 声称 \((g,g^a,g^b,g^{ab})\) 和 \((g,g^a,g^b,g^u)\) 不可区分。
El-Gamel 使用 \(g\) 和 \(g^a\) 作为公钥,\(b\) 提供随机性:密文是 \((g^b,g^{ab}\cdot m)\)。则 adv 只能看到 \(g,g^a,g^b,g^{ab}\cdot m\),如果它能逆推出 \(m\) 则就能判断 \(g^{ab}\),就违背了 DDH 了。
Boosting Single Bit PKE to Multiple Bits
对于长度为多项式级别的密文,直接分开来加密每一位即可。换言之,PKE 具有多次通信安全性。证明使用 Hybrid Argument 定位到某一处 differ 的位置即可。
Conclusion
PKE 不能 blackboxed 从 OWF 等东西得到,因为没有 trapdoor。因此,从 DL 到 PKE 的构造仍是 open 的。
SKE-Revisited
开局介绍的 SKE 太严格了:要求完美解密、完美通信;同时,在某些方面又太松了:只作单次通讯。因此,这里 restate 一个更合理的 SKE。
定义仍是 \(\t{Gen}(1^n)\to sk,\t{Enc}_{sk}(m)\to ct,\t{Dec}_{sk}(ct)\to\cur{m,\perp}\)。正确性要求放宽:对于一切信息 \(m\),关于 \(\t{Gen,Enc,Dec}\) 的随机性以 overwhelming 可逆即可。安全性则需要依靠 CPA 来定义:在确定 \(sk\) 后,首先 Adversary 可以多次询问 \(m\) 的加密结果,然后 Adversary 提供两个 \(m_0^*,m_1^*\),Challenger 随机加密一个并返回,然后 Adversary 可以再度多次询问 \(m\),最后 Adversary 要判定 Challanger 到底加密了哪一个。同理,为避免 adv 询问 \(m_0^*,m_1^*\) 的加密结果,\(\t{Enc}\) 必须包含随机性。
本质上是要求 \(\t{Enc}(m_0^*)\approx\t{Enc}(m_1^*)\)。因此,在对 SKE 作 Hybrid 的时候,假设要对 \(\t{Enc}\) 和 \(\t{Enc}'\) 两个系统作 Hybrid,可以建立 \(\t{Enc}(m_0)\approx\t{Enc}'(m_0)\approx\t{Enc}'(m_1)\approx\t{Enc}(m_1)\) 的 Hybrid 链条。
不过更好的 Hybrid 方式可能是,如果 \(\t{Enc}(m_0)\approx\t{Enc}(m_1)\) 但是 \(\t{Enc}'(m_0)\not\approx\t{Enc}'(m_1)\),则存在 \(c\) 使得 \(\t{Enc}(m_c)\not\approx\t{Enc}'(m_c)\),就不用写两遍了。
SKE from PRF
令 \(F\) 为一个 \(\cur{0,1}^n\to\cur{0,1}^n\) 的 PRF 族,明文 \(m\) 长度为 \(n\),则以下方案是 SKE:
- \(\t{Gen}(1^n)\to k\in\c K^n\)。
- \(\t{Enc}_k(m)\to(f_k^n(r)\oplus m,r)\),其中 \(r\gets\cur{0,1}^n\)。
- \(\t{Dec}_k(ct_1,ct_2)\to f_k^n(ct_2)\oplus ct_1\)。
证明使用 Hybrid Argument:首先把 PRF 当成 TRF,然后把 TRF 异或 \(m\) 当作 TRF。
事实上,因为这里的 PRF 只会被随机询问,因此其是所谓的 weak-PRF,即只能作随机询问的 PRF 亦无问题。
DS
\(\t{Gen}(1^n)\to(sk,vk)\);\(\t{Sign}(sk,m)\to\sigma\);\(\t{Verify}(vk,m,\sigma)=1/0(\text{valid/invalid})\)。
正确性:密文被判为 valid 的概率 overwhelming。
安全性:一切 adversary 均在 Forgery Game 中胜率 negligible。即,Challenger 提供 \(vk\),Adversary 多次发信 \(m_i\) 并得到签名 \(\sigma_i\),最后 Challenger 伪造一个没问过的 \((m^*,\sigma^*)\) 并希望它被 verify 为 valid。
DS from RO
Random Oracle:就是 TRF 黑盒。只存在于理论中,现实生活中的例子可以是尚未被破解的随机数生成器例如 SHA256
。它的思想是,通过 Hash Function 来只为 adversary 提供随机位置的访问权限。如果我们有 RO \(H\) 的黑盒访问权,则以下模式是 DS:
- \(\t{Gen}(1^n)\) 生成 \(N=pq\) 以及 \(e\) 作为 \(pk\),找到 \(d=e^{-1}\) 作为 \(sk\)。
- \(\t{Sign}(d,m):\sigma\gets h(m)^d\)。
- \(\t{Ver}(N,e,m,\sigma):\sigma^e\overset?= h(m)\)。
adv 会返回 \(\sigma^*,m^*\) 满足 \((\sigma^*)^e=h(m^*)\)。则当 adv 希望求 \(\t{Sign}\) 时,伪装的 challenger 直接随机丢一个数(反正 \(h(m)\) 是随机的);希望求 \(h(m^*)\) 时,直接强行令 \(h(m^*)=y\),则足够机智的 adv 应该在这种不讲理的场合也能做到 \(\sigma^e=y\)。
实际应用时,\(h\) 可以使用 CRHF,而 RSA 可以使用任何 trapdoor OWP。
One-Time DS of Fixed Length
假设我们有一个 OWF \(f\)。则:
其中,\(x_0^{1\sim n}\) 和 \(x_1^{1\sim n}\) 都是随机生成的 \(n\) 位串。
\(\t{Sign}\) 对于输入的 \(m\in\cur{0,1}^n\),使用 \(m\) 的第 \(i\) 位决定从 \(x_0^i\) 还是从 \(x_1^i\) 中选择作为 \(\sigma_i\)。即,\(\sigma_i=x^i_{m_i}\),然后 \(\sigma=(\sigma_1,\dots,\sigma_n)\)。\(\t{Ver}\) 即需检测是否有 \(f(\sigma_i)=f(x^i_{m_i})\) 即可。
这显然是单次安全的,因为伪造的 \(m^*\) 必然在某一位上未问过,则这即相当于在逆向一个随机的 \(x^i\),而这是不可能的。
One-Time DS of Arbitrary Length
套一个 CRHF 即可。
CRHF
CRHF:\(\co{red}{H=\cur{h_k:\cur{0,1}^*\to\cur{0,1}^n}_{n\in\N}}\),key 是公开的。要求——长度压缩:至少缩一位;抗碰撞:
CRHF is OWF
对于 \(\cur{0,1}^{2n}\to\cur{0,1}^n\) 的 CRHF,其必是 strong-OWF;对于 \(\cur{0,1}^{n+1}\to\cur{0,1}^n\) 的 CRHF,其必是 weak-OWF。
假设存在 \(\delta\) 概率逆向的 adv \(A\),则构建如下的 adv \(B\):对于随机的 \(x\),令 \(x'=A(1^n,i,h_i(x))\),则
当 \(2n\to n\) 时,\(|Y|/|X|\) negligible,因此 \(\delta\) noticeable 即可导出反例。当 \(n+1\to n\) 时,\(\delta\) overwhelming 时亦有反例。
CRHF from DL
- \(\t{Gen}(1^n)\to(g,p,y)\),其中 \(p\) 是 \(n\)-bit 质数,\(g\) 是 \(\Z^*_p\) 的生成元,\(y\) 是其中的随机元。
- \(h_{p,g,y}(x,b)=y^bg^x\bmod p\),其中 \(b\) 是一个 bit。
CRHF from Factoring
- \(h_{N,y}(x,b)=y^bx^2\bmod N\)。注意为避免 trivial attack 的 \(x'=-x\),需要限制定义域在 \(\Z_N^*\) 的前半部分。
这个的用法要限制 \(y\) 非二次剩余,因此要随期望 \(4\) 次。
CRHF cannot from GGM
首先,存在文献表明,GGM 在 key 公开的前提下是 weak PRF 但不是 strong 的。那么,长度折半的 GGM(\(n\) 位的 key 但是 \(2n\) 位的指令)就不可能是 CRHF。其次,就算只延长 \(1\) 位,GGM 也不是 CRHF,因为:
- 对于一个 key \(k\),关于第一位分类,它等效于两个 \(n\to n\) GGM,分别是 \(k_0=G^0(k)\) 以及 \(k_1=G^1(k)\)。那么,在 \(k_0\) 引导的 GGM 中,随机 \(x\) 的后半段,则输出的结果是 PRG,可以 Hybrid 到 TRG;在 \(k_1\) 引导的 GGM 中,因为它是 weak 的,有 noticable 的概率对 \(k_0\) 得到的结果可逆,也就是说,有 noticable 的概率成功碰撞。
Boosting Single Bit CRHF to Multiple Bits
假如有 one-bit shrinking CRHF,直接自我迭代,即可实现 \(p(n)\to n\) 的压缩:要保证 \(p(n)\) 是 \(n\) 的多项式。这也是为什么 CRHF 可以写成 \(\cur{0,1}^*\to\cur{0,1}^n\) 形式的原因:通过自我迭代的方式可以扩展到一切长度的输入。
Conclusion
不能 blackbox 得到的:
OWF->OWP
OWP->CRHF, OWF-CRHF
OWP->PKE
RO->PKE
CRHF->PKE
链条:OWF<->PRG<->PRF<->SKE
Hybrid Argument:PRG 容易 HA,因为它的定义依托于 indistinguishablity。PRF 也不是不行,毕竟它那个定义还挺 indistinguishable 的。PKE 的 security 直接就是 \(\t{Enc}_{pk}(m_0)\approx\t{Enc}_{pk}(m_1)\)。SKE 的 security 本质上也是 \(\t{Enc}(m_0)\approx\t{Enc}(m_1)\)。
听说 cheatsheet 做的好有概率加分,那就丢一下本人另外两篇无法被带进考场的笔记罢。