玄関ドアの錠前がどんな仕組みで開いたり閉まったりするのかは、説明書を調べるだけで誰にでも分かります。それでも私たちが安心して外出できるのは、錠前の仕組みではなく、自分の手にある鍵が秘密だからです。暗号の世界にも、これとまったく同じ考えを込めた古い原則があります。それが「ケルクホフスの原理(Kerckhoffs's Principle)」です。
ケルクホフスの原理とは、簡単に言えば「暗号方式は、鍵以外のすべてが知られても安全でなければならない」という設計原則を指します。方式そのものを隠して守ろうとせず、小さくて取り替えやすい鍵一つだけを守ればよいように作れという意味です。
この記事では、この原理が生まれた19世紀の背景から、鍵だけを隠すほうが安全な理由、隠して守ろうとして崩れた事例、そして今日のセキュリティ設計に与える教訓までを順に見ていきます。

隠さなくても安全な暗号の条件
ケルクホフスの原理はどこから来たのか?

この原理の主人公は、オランダ出身の言語学者で暗号学者のオーギュスト・ケルクホフス(Auguste Kerckhoffs)です。彼はパリのビジネススクールでドイツ語を教えながら暗号を研究し、1883年に軍事学術誌へ「軍事暗号(La Cryptographie Militaire)」という論文を2回に分けて掲載しました。
(1)電信が変えた戦場
当時は電信の普及によって、戦場でやり取りされる通信文が大きく増えていました。分厚い秘密の暗号書を持ち歩き、それを奪われればすべての通信が筒抜けになる危険も、それだけ大きくなりました。ケルクホフスは、こうした現実に合った軍事暗号の条件を六つにまとめました。
(2)六つの条件のうち二つ目
六つの条件には、事実上解読できないこと、鍵は書き留めずに覚えられること、一人で扱えることなどが含まれます。そのうち二つ目の条件が「方式は秘密を必要としてはならず、敵の手に渡っても問題があってはならない」というもので、今日ケルクホフスの原理といえば、まさにこの条件を指します。
なぜ鍵だけを隠すほうが安全なのか?

暗号方式全体を秘密にするほうが安全に見えますが、実際はその逆です。アメリカの数学者クロード・シャノン(Claude Shannon)は1949年の論文で、この考えを「敵は方式を知っている」という一文で言い直し、これはシャノンの格言とも呼ばれます。
- 秘密はいずれ漏れる(Inevitable Disclosure):装置は戦場で奪われ、ソフトウェアは解析ツールで分解でき、人は買収されたり脅されたりすることがあります。
- 取り替えのコストが違う(Cost of Replacement):方式が知られれば装置とプログラムをすべて作り直さなければなりませんが、鍵が知られた場合は新しい鍵を配るだけで済みます。
- 公開が検証を呼ぶ(Public Scrutiny):方式を公開すれば世界中の専門家が弱点を探してくれ、長く持ちこたえた方式ほど信頼できるようになります。
アメリカのセキュリティ研究者スティーブン・ベロヴィン(Steven M. Bellovin)は、米国家安全保障局のある元関係者から、新しい装置の1号機はすぐに相手国の手に渡ると想定するのがそこでの基本だったという話を聞いたと伝えています。守るべき秘密が少なく単純であるほど守りやすいというのが、この原理の核心です。
隠して守ろうとして崩れた事例

方式を隠すことに頼るセキュリティは、よく「隠蔽によるセキュリティ(Security through Obscurity)」と呼ばれます。歴史には、この方法が長く持ちこたえられなかった事例が数多くあります。
エニグマの配線
1920年代からドイツ軍が使ったエニグマ暗号機は、機械の構造も毎日変わる設定もすべて秘密でした。しかしポーランドの数学者マリアン・レイェフスキ(Marian Rejewski)は1932年末、フランスの情報機関が入手した資料に数学的な分析を加えて、機械内部の配線を突き止めました。構造が明らかになると残る防衛線は設定だけになり、これが後に連合国がエニグマを解読する土台となりました。
DVDのコピー防止技術
1990年代のDVDには、非公開の暗号方式で映像を保護する仕組みが使われていました。しかし1999年にこの方式を破るプログラムがインターネットに広まって事実上無力化し、すでに売られた無数の機器の中の方式を変える手段もありませんでした。
交通系ICカードのチップ
2000年代後半には、世界の多くの都市で交通系ICカードや入館証に使われていたある非接触カードチップの非公開暗号が、研究者たちによって解析されました。研究者たちはチップの層をはがして顕微鏡で回路をのぞき込む方法まで使って方式を突き止め、隠されていた弱点も一緒に明るみに出ました。
今日のセキュリティ設計に与える教訓

現代の民間の暗号は、ほとんどがケルクホフスの原理に従って方式を公開しています。
(1)公開競争で選んだ標準
米国立標準技術研究所(NIST)は1997年に新しい暗号標準を公募し、世界中の研究者が数年にわたって候補を攻撃しながら検証しました。その結果、2000年にベルギーの研究者二人が作った方式が選ばれ、今日広く使われている高度暗号化標準(Advanced Encryption Standard)になりました。
(2)鍵の管理に力を集める
方式が公開されている以上、実際のセキュリティは鍵をどれだけうまく作り、保管し、取り替えるかにかかっています。パスワードを長く、使い回さずに設定し、漏えいが疑われたらすぐに変える習慣も同じ原理です。
(3)隠すことは付け足しの仕組みとしてだけ
方式をあえて知らせないこと自体が悪いわけではありません。ただしそれは何層にも重ねた防御の一つにすぎず、安全の唯一の根拠になってはいけません。
ケルクホフスがこの原理を書き記してから140年以上がたちましたが、その間に電信はインターネットに、暗号書はコンピュータープログラムに変わっただけで、核心はそのままです。むしろ誰もがプログラムを分解できる今こそ、この原理がいっそう切実になっています。
何であれいつかは明らかになると想定し、明らかになっても崩れないように設計する姿勢が必要です。
相手がすべてを知っていると想定し、鍵一つだけをしっかり守ること、それが信頼できるセキュリティをつくる設計の第一歩です。