まずは共通鍵認証から
暗号化アルゴリズムが文字を後ろに3つずらす場合、「あいしてる」は「えおそにわ」となる。
この場合、文字列を前に3つずらすと復号化でき、3が共通の鍵となることが分かる。
続いて公開鍵認証の場合
例えば1〜10の数字には21乗し、55で割ると最初の数字になるという性質がある。
5を例にすると上記の性質は「5を3乗して55で割った余りの15を求める」と「15を7乗して55で割った余りの5を求める」に分けることができる。
上記のうちそれぞれの処理が暗号化、復号化となる。このアルゴリズムでは3が公開鍵に当たり、7が秘密鍵にあたる。
自分なりの解釈
最初の値に処理を加えて最初の値に戻る一連のアルゴリズムをわざと前編の処理と後編の処理に分ける。
それぞれが暗号化、復号化となるが、両方とも処理は異なる。そのため、それぞれの処理で使用するマジックナンバー(公開鍵と秘密鍵)が異なっていても、問題なく暗号化、復号化できる。
以前シリコンバレーのエンジニアの方がコードを書けなくても数学が天才的にできるセキュリティ系のエンジニアがいると聞いたが、やっとセキュリティにおいて数学がいかに重要か、一端を理解できた気がする。
コメント