やっと暗号化
ランキング、広告関連、等々のURLの変更を調べ切れていませんけど、https化しました。
量子コンピュータも具現化しそうですし、RSA暗号はそろそろ危険かな。
楕円曲線暗号方式への移行を考えたほうが良いかもです。
数学は専門ではなく単なる理系知識で言っていますのでご了承を。
そういえば今世紀当初、公的機関で働いていたころ、半年の演習でDES(デスともディーイーエスとも)という前世紀まで使われていた暗号の符号化と復号化をハードウェアで設計するというテーマを課題にしてました。
方式が公開できてもなお暗号として機能するのは画期的でした。56ビットの鍵は秘密にしないといけません。暗号化したい平文と鍵、暗号化された文と鍵があれば決まったアルゴリズムや回路、手計算で暗号化文、復号化した平文が出てきます。
暗号方式を評価するのに最悪の状態を想定します。DESの場合、通信路で暗号文をすべて傍受、しかもそれに対応する平文も分かってしまっている、そのときの鍵を求めるという感じで、物騒ですけど攻撃:アタックしてどれだけ耐えうるかが勝負です。
そのあたりはアルゴリズムや暗号の分野が存在するので興味があれば調べてみてください。
このDESはあまり数学の理論はでてきません。如何に少ない手法で解読できるかのアルゴリズムは提唱されています。解読専用回路も出現し、世紀末に分散方式(沢山のパソコンに総当たりの問題を手分けして解読する)で1日あれば解けてしまうことが発表されてました。暗号方式の改良が進められましたがすでに使われていません。
現在使われているRSA暗号は、大きな数の素数の積を与えられたとき、その掛け算は超簡単ですけど、結果だけ与えられて2つの積である素数を求めなさいという問題がものすごく難しくなることを利用しています。
素因数分解というのは中学で出てきますけど、約数、公約数、最大公約数なんかは現時点で小学5年の算数ででてきます。ここで暗にこれ以上割れない素数と素因数分解を説明してしまう先生も多いようです。
役に立たない数学が社会に役に立っているでしょう?といっても目に見えないところで使われているだけで通常の生活には必要ないことは確かですね。
戻って、8635844967113809という数は2つの素数の掛け算です。
それを求めてみましょう。ってことが難しいです。Webのプログラムに組み込まれているプログラムで0.001秒で解けてしまします。
89652331×96325939です。両方素数なのでこれ以上は簡単になりません。
その素数が1000桁というのが現在の暗号で使われています。
鍵には公開鍵/秘密鍵がある、割り算の余り、合同式、フェルマーの小定理なんかをちょっとかじる必要があります。
要は、大きな数の世界で89652331×96325939は簡単ですが、8635844967113809が何が掛け合わさったモノを解くのが非常に難しいというところで暗号が守られているということですね。
暗号の取りとめの無い話になってしまいました。
では。