RSA暗号のlcmとphi(φ)の違い

投稿日: 更新日:

Lの求め方が2つある

RSA暗号でp,qp,q2つの素数があるとき、LLの計算に最小公倍数(lcm(p-1, q-1))とオイラー関数(φ(pq) = (p-1, q-1))を用いる2通りがあります。

L=lcm(p1,q1)L=(p1)(q1)\begin{aligned} L &= \text{lcm} (p-1, q-1) \\ L &= (p-1)*(q-1) \end{aligned}

この2つの違いについて説明します。

結論

lcm\text{lcm}はRSA暗号が成り立つための必要十分条件

オイラー関数はRSA暗号が成り立つ十分条件

lcm\text{lcm}を用いる方がddを小さくできるため高速化に繋がる。どちらを用いても、数学的に問題は無い。

証明

前提知識:RSA暗号の計算方法、フェルマーの小定理

RSA暗号が成立するためには以下の式を満たす必要があります。

M=MedmodNM = M^{ed} \mod N

この式を変形していきます。

M(Med11)=0modNMed11=0modN\begin{align} M(M^{ed-1} - 1) &= 0 \mod N \notag \\ M^{ed-1} - 1 &= 0 \mod N \notag\\ \end{align}

ところで、N=pqN = pqであるので、Med11=0modpqM^{ed-1} - 1 = 0 \mod pqということは、Med11M^{ed-1} - 1ppの倍数かつ、qqの倍数であると分かります。

式で表現すると、

Med11=0modpMed11=0modq\begin{align} M^{ed-1} - 1 &= 0 \mod p \\ M^{ed-1} - 1 &= 0 \mod q \\ \end{align}

となります。これら2つはmod\text{mod}の値が違うだけです。Med11=0modpM^{ed-1} - 1 = 0 \mod pを式(1)、Med11=0modqM^{ed-1} - 1 = 0 \mod qを式(2)とします

ここで、フェルマーの小定理を考えます。

ap1=1modpa^{p-1} = 1 \mod p

この式の両辺をaa倍し、変形します。

ap=amodpa(ap11)=0modpap11=0modp\begin{align} a^p = a \mod p \notag \\ a(a^{p -1} - 1) = 0 \mod p \notag \\ a^{p -1} - 1 = 0 \mod p \\ \end{align}

得られたap11=0modpa^{p -1} - 1 = 0 \mod pを式(3)とします。

ここで、式(1)と式(3)を見ると、

Med11=0modpap11=0modp\begin{aligned} M^{ed-1} - 1 &= 0 \mod p \\ a^{p -1} - 1 &= 0 \mod p \end{aligned}

式(1)が成立するにはed1=k(p1)ed-1 = k(p-1)となる(1)k(1 \leqq)kが存在すれば良いことになります。

同様の手順で式(2)が成立するにはed1=l(q1)ed-1 = l(q-1)となる(1)l(1 \leqq)lが存在すれば良いことになります。

つまり、ed1ed-1p1p-1の倍数かつ、q1q-1の倍数、であることが必要です。

p1p-1の倍数かつ、q1q-1の倍数である数をLLとしたとき、以下の式が成立することが。RSA暗号が成立する条件です。

ed1=0modLed - 1 = 0 \mod L

となります

参考文献

はやわかり RSA :https://www.mew.org/~kazu/doc/rsa.html

(最終閲覧:2022/09/24)

書いた人

profile_image

お茶の葉

物理とプログラミングが好きな人