友だちにだけ伝えたい秘密、戦場での作戦指示——「他人に読まれたくない文章」をどう守るかは、二千年以上前から数学の大きなテーマでした。文字をずらすだけの単純な工夫から、いまインターネットを守る超巨大な数まで、暗号の歴史をたどってみましょう。
古代ローマの将軍ユリウス・カエサルは、部下に送る軍事連絡を、アルファベットを一定数だけずらして書かせていたと伝えられています。たとえば3文字ずらすと、Aは「D」に、Bは「E」に変わります。読み方さえ知っていれば元に戻せますが、知らない人にはただの記号の羅列にしか見えません。この方法は今も「シーザー暗号」と呼ばれています。
A→D、B→E のように、アルファベットを同じ数だけずらして置きかえるのがシーザー暗号。ずらす数(鍵)は26通りしかないため、現代の目で見るととても簡単に解読できてしまう。
現代のインターネット通信を守る暗号(RSA暗号など)は、文字をずらす代わりに「とても大きな数のかけ算・素因数分解」を利用します。2つの大きな素数をかけ算するのは一瞬でできますが、逆にその答えから元の2つの素数を探し出すのは、スーパーコンピュータでも途方もない時間がかかります。この「かけ算は簡単、逆算は超困難」という性質が、パスワードやオンライン決済を守る鍵になっているのです。
シーザー暗号は、文章をどうやって暗号にする?
現代のインターネット暗号(RSA暗号)が利用している数の性質は?