非常に多くの企業が次のように考えます。
「自分の会社で独自の暗号アルゴリズムを開発し、それを秘密にしておけば安全だ」
しかし、これは大きな誤りです。秘密の暗号アルゴリズムを使っても高いセキュリティを得ることはできません。秘密の暗号アルゴリズムを作る/使うのではなく、公開されていて、強いとされている暗号アルゴリズムを使うべきです。
引用 – 暗号技術入門 第3版
公開されている暗号アルゴリズムはいろんな人間に研究されているのだから、破られる危険が高そうに感じる。ならば、自分でこっそり暗号を作って、それを使ったほうが安全だ。
というように暗号学の初心者は考えてしまいがち。たしか私もそうだった。しかしこの考えはとても危険な事であり、遊びの暗号とかでなければ、絶対に独自の暗号を使用してはならない。
秘密にしていても、いずれ必ずバレる
歴史的に、暗号アルゴリズムの秘密が暴かれなかった例は一つもありません。1999年には、DVDの暗号アルゴリズムが暴かれました。2007年にはNXPの非接触型ICカードMIFARE Classicの暗号アルゴリズムが解析されました。当時非公開であった暗号アルゴリズムを研究者がリバース・エンジニアリングによって解析し。さらにその脆弱性を明らかにしたのです。RSA社が作成したRC4という暗号アルゴリズムも秘密でしたが、匿名の人間によって互換性のあるプログラムが公開されました。
引用 – 暗号技術入門 第3版
公開していれば、世界中の研究者から検証を受けることになるが、秘密の場合自分たちだけで検証をしなければならない。そうなると、暗号の完成度は公開されているものよりも低くなって当然だ。秘密の暗号は弱い暗号であることがほとんどのため、大体は解読されてしまう。
ただし、「暗号アルゴリズムの秘密が暴かれなかった例は一つもない」というのは、もしかしたら嘘かもしれない。暴かれなかった例は観測されないからである。
秘密の暗号を使っていた場合、破られていることに気づけない
秘密の暗号が外に漏れていたとしても、気が付いた人がそれを報告してくれることはあまり期待できない。秘密の暗号を暴こうとする人など、大体は暗号の利用者にとっては敵であるからだ。
秘密(だと思っている)の暗号の利用者は、破られていることに気づかずに、欠陥のある暗号を使い続けることになるだろう。これは致命的である。なにかしらの被害が出たときに、初めて暗号が破られていたことに気づくのである。
秘密の暗号は、秘密でなくなったら非常に弱い
秘密の暗号を利用する場合、暗号アルゴリズムにセキュリティホールがあったとしても、自分の力だけで見つけなければならない。
一方で暗号アルゴリズムを公開してしまえば、世界中の人間によって解読法を研究される。そして安全性の低い暗号は淘汰されるし、安全性の高い暗号であっても細かいセキュリティホールが見つけられては修正される。それらの洗礼を潜り抜けた暗号は、自分だけで考えた暗号よりもセキュリティの強度は圧倒的に強くなるのだ。
秘密の暗号が秘密でなくなった瞬間、自分よりもレベルの高い暗号解読者集団に一瞬で丸裸にされてしまうだろう。秘密でなくなった瞬間、公開されているものよりもずっと強度の低い暗号となってしまう。
自分の能力を過信してはいけない
とある暗号研究者が次のようなことを言っていたことを覚えている。
「どっかのベンチャー企業とかが私の本を読んで『先生の本を読んで新しい暗号アルゴリズムを考えて作りました!』とか言ってメールしてくることがあるんだけど、使えたもんじゃないね」
ソースは私の記憶なので、表現は微妙に違うかもしれないが、大体こんな感じだった。素人が作った暗号など、専門の人が見れば一瞬で穴が見つかるものなのだろう。
大学レベルの知識があれば「秘密の暗号」を作るのは難しくない。私でもできる。しかし、熟練の専門家集団が作った秘密の暗号ならば少しは持つかもしれないが、素人がちょっと数冊本を齧ったくらいで作った秘密の暗号など速攻で破られてしまう。
一個人レベルではもちろん、一企業レベルであっても、暗号学者集団を出し抜ける強力な暗号を作ることは不可能だ。「そんなことはない、できるよ!」と思うのであれば、自信過剰すぎる。
今日一般的になっているRSA暗号やAES暗号なども、世界中の暗号学者たちが血眼になってセキュリティホールを見つけ出し、修正することを繰り返して今の強度を実現している。このくらい大掛かりにやらないと、本当に安全な暗号を作ることはできない。
昔は「秘密の暗号」が普通だった
1977年に共通鍵暗号DESが米国標準暗号として制定された。暗号アルゴリズムを公開して、それの商用利用を可能としたのはこれが初めてであった。
標準暗号の考え方が登場するまでは、アルゴリズムを秘密にすることで安全を確保できると考えられていた。しかし、それは危険であるという事はすでに説明した通りである。
そこで、暗号アルゴリズムを公募して、それを暗号学者によって数年かけて審査し、安全性が高いと確認できたものを標準暗号として採用したのがDESである。最近では通用しなくなってしまったが、当時としてはかなり優秀な暗号であった。
DES制定は「暗号アルゴリズムを公開する」という流れを作った草分け的な出来事であった。