Lの求め方が2つある
RSA暗号でp,q2つの素数があるとき、Lの計算に最小公倍数(lcm(p-1, q-1))とオイラー関数(φ(pq) = (p-1, q-1))を用いる2通りがあります。
LL=lcm(p−1,q−1)=(p−1)∗(q−1)
この2つの違いについて説明します。
結論
lcmはRSA暗号が成り立つための必要十分条件
オイラー関数はRSA暗号が成り立つ十分条件
lcmを用いる方がdを小さくできるため高速化に繋がる。どちらを用いても、数学的に問題は無い。
証明
前提知識:RSA暗号の計算方法、フェルマーの小定理
RSA暗号が成立するためには以下の式を満たす必要があります。
M=MedmodN
この式を変形していきます。
M(Med−1−1)Med−1−1=0modN=0modN
ところで、N=pqであるので、Med−1−1=0modpqということは、Med−1−1はpの倍数かつ、qの倍数であると分かります。
式で表現すると、
Med−1−1Med−1−1=0modp=0modq
となります。これら2つはmodの値が違うだけです。Med−1−1=0modpを式(1)、Med−1−1=0modqを式(2)とします
ここで、フェルマーの小定理を考えます。
ap−1=1modp
この式の両辺をa倍し、変形します。
ap=amodpa(ap−1−1)=0modpap−1−1=0modp
得られたap−1−1=0modpを式(3)とします。
ここで、式(1)と式(3)を見ると、
Med−1−1ap−1−1=0modp=0modp
式(1)が成立するにはed−1=k(p−1)となる(1≦)kが存在すれば良いことになります。
同様の手順で式(2)が成立するにはed−1=l(q−1)となる(1≦)lが存在すれば良いことになります。
つまり、ed−1はp−1の倍数かつ、q−1の倍数、であることが必要です。
p−1の倍数かつ、q−1の倍数である数をLとしたとき、以下の式が成立することが。RSA暗号が成立する条件です。
ed−1=0modL
となります
参考文献
はやわかり RSA :https://www.mew.org/~kazu/doc/rsa.html
(最終閲覧:2022/09/24)