新着記事を読むなら!
皆さんは数学はお好きでしょうか。私は数学が得意だったわけではないですが、素数や円周率には神秘的なものを感じていました。実は、インターネットの安全を支えているのも、数学なのです。
「素因数分解」を覚えていますか? ある自然数を素数の積で変換する計算です。例えば「15」なら「3×5」。この例であれば簡単ですが、では「11088899」は? ――これを見ただけで素因数分解できる方はほとんどいないでしょう。正解は、「3329×3331」。
しかし、これが「3329×3331は?」という問題であれば、計算は簡単です。つまり「3329×3331=11088899」という計算式には、3329と3331の積算は簡単なのに、11088899の素因数分解は難しいという非対称の関係があるのです。この性質は一方向性関数と呼ばれ、暗号にも活用されています。
セキュリティ技術の代表「暗号化」においては、サーバ側と自分で共通の鍵を持つ「共通鍵暗号方式」がすぐに思い浮かぶと思います。共通鍵は玄関の鍵に例えられる通り、情報の発信者と受信者で同じ秘密を共有するもの。暗号化する鍵と復号する鍵が同じなので、鍵を複製すると誰でも解錠(復号)ができてしまいます。そうなった場合、鍵を交換するしかありません。
そこで考えられたのが「公開鍵暗号方式」です。公開鍵暗号方式では、情報の送信者は暗号化するために「公開鍵」を使い、受信者は復号するために「秘密鍵」を使います。このとき、受信者の秘密鍵は、誰とも共有されていません。公開鍵から秘密鍵の情報を類推するのは非常に困難なので、情報の盗聴が不可能になります。
公開鍵と秘密鍵は、冒頭で述べた一方向性関数の性質を利用して作られています。公開鍵からは秘密鍵を類推しにくいので、秘密鍵は秘密のままでセキュアに情報のやりとりができるのです。……ここまで、かなり大ざっぱに説明しました。詳しく知りたい方はまず「5分で絶対に分かるPKI 」をどうぞ。
Copyright © ITmedia, Inc. All Rights Reserved.