RSA 具有单向陷门置换的性质
这篇文章我们介绍RSA的单向性, 置换型等等.
我们给出formal的RSA假设:
RSA假设. 给定一个三元组 \((N, e, y)\), 其中 \(N\) 是大素数 \(p, q\) 的乘积, \(gcd(e, \Phi(N)) = 1\), \(y \in \mathbb Z_n^*\), 那么对于任意的PPT敌手 \(\mathcal A\), 能够找到 \(x\) 使得 \(x^e = y \mod N\) 的概率小于可忽略函数 \(\epsilon(n)\).
RSA Collection. 令 \(RSA = \{f_i: D_i \rightarrow R_i\}_{i \in I}\). 其中:
Thm1: Under RSA assumption, RSA Collection is a collection of OWF.
证明: 我们主要聚焦于Hard to invert的证明. 需要注意的是, 我们的假设并不能直接推导出这个结果.
RSA假设: 对于一个 random \(y\), 找到其 \(e\) 次方根的概率是极小的.
RSA Collection: 先随机选了一个 \(e\), 计算出了 \(y=x^e\).
从直觉上来说, Collection是不是更容易计算一些. 我们需要证明的是, 函数 \(f_{N,e}(x)=x^e\mathrm{~mod~}N\) 是一个 \(\mathbb Z_N^*\) 上的双射. 双射的话我们能推导出: 下面两个分布是相同的.
Thm2: The function \(f_{N,e}(x) = x^e\mathrm{~mod~}N\) is a permutation of \(\mathbb Z_N^*\) when \(e \in \mathbb Z_{\Phi(N)}^*\).
这个定理其实是好证明的, 只需要证明单射+满射. 已知\(e \in \mathbb Z_{\Phi(N)}^*\), 所以 \(e\) 有唯一的一个逆元 \(d\), 所以单射和满射不难证明.
通过Thm2, 我们证明出Thm1.
Thm3: RSA assumption implies Factoring assumption.
这个定理是好证明的, 但是反过来的话仍然是一个开放性问题.
Thm4: RSA可以是一个Trapdoor Permutation.
虽然我们还没有formal地定义Trapdoor Permutation. 但是大意就是存在一个陷门, 拥有陷门的信息就可以easy to invert. 在这个问题你中, 陷门可以是这三种: \(d,\Phi(N), (p,q)\).
Remarks:
我们能够看出来, 如果隐藏陷门的话, 那么RSA中的 \(\mathbb Z_N^*\) 其实是一个阶未知的群, 即 \(\Phi(N)\) 未知. 如果我们知道 \(\Phi(N)\), 就能够通过两个方程算出 \(p, q\), 从而解密.
参考: Rafael Pass's lecNotes.