RSA暗号の実際~mod計算特別値
図5で、143という数字と7という数字を公開する例を示しました。以 下、この例に基づいて話をします。
この場合、その143を法とする世界で考えます。図5で、「60の倍数に 1を加えた数」ということにこだわりました。要するに61、121、181、 241、301、361、421、481、...ですが、実はこれらの数、ある条件を満 たす特別な数なのです。どんな条件でしょうか。例えば61の場合なら、 0から142までのどんな整数に対しても、mod(n**61、143)=nが 成立するのです。但しn**61というのは、nを61乗することです。
nが0の場合と1の場合は、何乗しても0と1ですからいいとして、 2**61は2、3**61は3、4**61は4、...ということですね。
この証明も専門家以外には必要ありません。ただ、本当にそうなるの か、一部ではありますが、エクセルで検証してみました。エクセルには MODという関数があります。A1とA2に何らかの自然数が入っているとし、 143を法とする世界で両者を掛け合わせたものをA3に入れるなら、A3のと ころを下記のようにしておけばよいのです。
=MOD(A1*A2,143)
とりあえずnとしては2から24までやってみました。まずそれぞれの 60乗を143を法として計算すると、下記のようになります。但し、60乗と いうには、適当に乗算を組み合わせて実現します。5つ以上の乗算をし てからmodを取ると、数が大きすぎる場合が出てくるようなので注意。
n :2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
n**60:1 1 1 1 1 1 1 1 1 66 1 78 1 1 1 1 1 1 1 1 66 1 1
次にn**120を同じように計算させると、n**60と全く同じになります。 つまり(n**60)*(n**60)=(n**60)ということです。ということは以下 同じように、n**180もn**240もn**300もすべてn**60と同じです。 そこでn**61を計算させます。結果はみごと、こうなりました。
n :2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
n**61:2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
ということは、確かにn**121もn**181もn**241もn**301も、すべて nと同じということです。
sponsored link
このページ
のTOPへ


