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)\).

\[\begin{align*} \Pr\left[\begin{array}{l}p,q\xleftarrow{r}\Pi_{n};N\leftarrow pq;e\xleftarrow{r}\mathbb{Z}_{\Phi(N)}^{*}\\y\leftarrow\mathbb{Z}_{N}^{*};x\leftarrow\mathcal{A}(N,e,y)\end{array}:x^{e}=y\mathrm{~mod~}N\right] < \epsilon(n) \end{align*} \]

RSA Collection.\(RSA = \{f_i: D_i \rightarrow R_i\}_{i \in I}\). 其中:

\[\begin{align*} I&=\{(N,e)\mid N=p\cdot q\mathrm{~s.t.~}p,q\in\Pi_n\mathrm{~and~}e\in\mathbb{Z}_{\Phi(N)}^*\} \\ \mathcal{D}_{i}& =\{x\mid x\in\mathbb{Z}_N^*\} \\ \mathcal{R}_{i}& =\mathbb{Z}_N^* \\ f_{N,e}(x)& =x^e\mathrm{~mod~}N \end{align*} \]

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^*\) 上的双射. 双射的话我们能推导出: 下面两个分布是相同的.

\[\{x,e\leftarrow\mathbb{Z}_N^*:(e,x^e\mathrm{~mod~}N)\} \\ \{y, e\leftarrow\mathbb{Z}_N^*:(e, y\mathrm{~mod~}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.

posted @ 2024-05-14 18:41  神龙小虾  阅读(26)  评论(0编辑  收藏  举报