SSLのわかりやすい仕組みと量子コンピュータについて

SSL通信とは通信を暗号化するための仕組みです。
技術的にすごくざっくりとですが、解説したいと思います。
それではいってみましょう!
まずはSSLの暗号化通信の簡単な説明から。
中学校の時に習った素因数分解を使った仕組みとなってます。
すなわち素数と素数の掛け算に分解していきます。
素数とは
素数とは割り切れない数字のことです。
4は2で割れますが、3とか7とかは割り切れませんよね。
この割り切れない3とか7を「素数」といいます。
21を素因数分解すると3と7になります。
これがSSLの暗号化の肝となります。
SSL通信の仕組みとは
SSL通信をボックスに見立ててざっくりとした説明をいたしますね。(本当はここには共通鍵という概念も出てくるのですが複雑になるので割愛します)
暗号化したい情報をボックスに入れて、ボックスには公開鍵というものを使いロックします。
そのボックスには、二つのダイヤル錠(秘密鍵)があり、そのダイヤルが二つ合えば、中にあるデータが取り出せるというものです。
公開鍵ではボックスを閉めるだけで、空けることはできません。
ボックスを空けるためには秘密鍵(2つのダイヤル錠があうこと)が必要となります。
ここで一つの例を挙げます。素数の3と7をダイヤル錠を開ける秘密鍵とします。
とすると3×7=21が公開鍵となります。
21の公開鍵でロックしたボックスを空けるには、素因数分解した3と7の秘密鍵、すなわちダイヤル錠が合わないと、中身にあるボックスを開けらないというイメージですね。
そんな簡単な仕組みで大丈夫?
公開鍵を素因数分解すればボックスを空けられるので一見簡単そうには見えますよね。
公開鍵が21の場合だったら、暗算でもすぐに答えられます。
ただ、この公開鍵が444853だったらどうでしょうか。
人間だともはや限界です。正解は661×673なのですが、人間はもちろんのこと、ノイマン型といわれる今のコンピューターでは計算するのは仕組み的に結構大変なんです。
661×673の計算は電卓をたたけば一瞬ですし、人間でも小学校レベルの算数で計算できますよね。
そろばんが得意な方なら暗算で一瞬かと。
ただ444853を素因数分解するのは人間はもちろん、今のコンピュータではその仕組み的に非常に難しいのが現状なんです。
このように片方の計算は簡単でも逆方向の計算が難解なのを「一方向関数」といいます。
そんな素因数分解ですが、桁数が増えれば増えるほどその難易度も増していき、2048ビット(2の2048乗)というとてつもない大きな公開鍵を素因数分解するには、今の最高性能のスーパーコンピューターをもってしても数億年かかるといわれています。
「そんなに時間をかけて解くころにはSSL通信はもう終わっているだろう。」これがSSL通信を支えるキーポイントとなっています。
量子コンピュータの登場によりSSL通信の根本がかわるかもしれない
最近、量子コンピュータというものが登場し、10年後もすれば完全実用化される可能性があります。
量子コンピュータの仕組みについては割愛しますが、得意分野のひとつとして期待されていることに素因数分解が挙げられます。
実用化されると、将来ものすごい桁数を超高速で素因数分解できるようになる可能性があります。
そうなると、今のSSL通信(正確にはRSA暗号)が解かれたということになり、いろいろな分野で大きな影響を与える可能性があります。
そうなるとSSL通信の信頼性を揺るがしかねない事態となります。
その対策として今では量子暗号化ということも検討されていますが、どうなるのかは予想できません。
暗号化技術は日進月歩といえますね。
まとめ
SSL通信や量子コンピュータについてについてザックリとした説明でしたがいかがでしたでしょうか。
量子コンピュータの動向はセキュリティの面からみてもウォッチしておいたほうがよさそうです。
いずれにせよ、現段階のホームページ暗号化はSSL通信しか手段がないので、我々にできることは1024ビットよりも2048ビットなどビット数が多いSSL証明書を選ぶことが大切ですね。(ビット数が多ければ多いほど解読に時間がかかるため)
最後までお読みいただきありがとうございました。
ホームページでお困りならAMSにお任せください。
- 制作会社の選び方がわからない。
- どの制作会社も費用が高額で手が付けられない。
- 今のホームページが簡単に更新できなくて困っている。
などホームページでお困りではありませんか?
弊社AMSでは効果のある高品質なホームページを格安で制作いたします。
まずは料金やプラン内容、制作実績などを下記の画像をクリックして
ご覧ください。