今回はセキュリティーの話です。セキュリティーといえばすぐに「暗号」を連想する人も多いでしょう。確かに暗号はセキュリティーの根幹をなすコンポーネントですが、暗号=セキュリティーではありません。通信の世界では暗号化よりもむしろ認証が大切で、認証のない暗号化は半ば無意味とまで言われています。なぜそういう話になるのか、今回はこれを解説してみます。

暗号と鍵

 暗号は金庫に例えることができます。情報を暗号化して送受信するということは、送信者が機密情報を金庫に入れて発送し、受信者が金庫を開いて取り出すことに似ています。通信経路上で金庫が開かれない限り、機密情報の解読・改竄・差し替えが起きることもありません。そして暗号の解読されにくさ=暗号強度というのは、この金庫がどれだけ頑丈かということに例えることができます。金庫の場合は物理的強度が問われますが、暗号の場合は「鍵の開けやすさ」が暗号の強弱を表わす指標になります。

 たとえば金庫の鍵が10進×3桁のダイヤルだとすると、全組み合わせは1000通りしかありません。1回3秒として総当たりに 3000 秒、つまり1時間以内に開けられてしまいます。どんなに物理的に頑丈な金庫でも、肝心の鍵がこんな有様では使い物になりませんね。

安全性に乏しい金庫(鍵長の短い暗号)

 「安全な鍵」として、ここでは10進×10桁のダイヤル錠を考えましょう。これなら一回3秒でも全組み合わせ探索には900年以上かかる計算になりますから、実用上まず安全だと思われます。

実用上安全だと思われる金庫(鍵長の充分に長い暗号)

 しかし、ここでもう一つの問題にぶつかります。一体どうやって受信者に正しい鍵(ダイヤル番号)を教えればいいのでしょうか。まさか金庫と一緒に「鍵は1415926535です」などというメモを送るわけにはゆきませんよね。ネットワークセキュリティーにおける最も大きな問題は、まさにこれなのです。いくら強力な暗号アルゴリズムを使用しても、送受信者の間で「安全・確実に」鍵情報を交換する手順が確立できなければセキュリティーは実現できないのです。