「暗号解読」サイモン・シン
RSAとして知られる公開鍵暗号方式について秀逸な解説が載っていた。それには、モジュラー算術と素因数分解という二つの不可逆的な計算を使っていた。大きな素数同士でも掛け算は簡単だが元の素数を割り出すことは非常に時間が掛かるのはよく知られている。モジュラー算術は一方向関数とも呼ばれるそうだ。それは、ある数をある数で割った時の余りが同じなら同じ数だとみなす。割る方の数を法(mod)と呼ぶ。素因数分解同様、一方向への計算は簡単だが逆は困難だ。例えば、法を7として3^x(mod 7)のxに1~6を入れると結果は、3,2,6,4,5,1とでたらめになる。この一方向関数をペンキに例えるのが秀逸だった。なるほど、ペンキを混ぜるのは簡単だが元のペンキの色を知るのは困難だ。もし、アリスとボブがイヴに知られずに暗号を解く鍵の受け渡しをしたいなら、まず、お互い、3L入るバケツに黄色を1L入れる。(これはイヴに知られても構わない)そして、お互い、秘密の色、例えば、アリスは赤、ボブは紫を1L入れて交換する。(これも何を混ぜているのか分からないのでイヴに見られても良い)最後に自分の秘密の色をそのバケツに入れる。すると、お互いが黄色、赤、紫が入ったバケツを手にする。これが共通の暗号を解く鍵になる。なんともよく出来たアイディアだ。