Red Hat ブログ
暗号学は比較的新しい科学です。
暗号は秘密のメッセージを隠すために何千年も使用されてきましたが、科学 (そしておそらく芸術) としての暗号の体系的な研究が始まったのはおよそ 100 年前です。
(何らかの形で) 暗号が使用されたことを示す最初の証拠は、紀元前 1900 年頃にエジプトの貴族クヌムホテプ 2 世の墓の主室で見つかった碑文から発見されました。筆記者は、普通の記号の代わりに珍しい象形文字をあちこちで使用していました。その目的は、メッセージを隠すことではなく、威厳を保つように形を変えることだったのかもしれません。この碑文は秘密の文章ではなく、元のテキストを何らかの形で変更したものですが、そのような処置の施された、既知の中で最も古いテキストです。暗号が何らかの形で使用されている証拠は、ほとんどの主要な初期文明で見られます。 「アルタシャーストラ (実利論)」は、カウティリヤが著した国政に関する古典的な著作で、インドのスパイ活動について説明しており、「秘密文書」でスパイに任務を与えることに言及しています。まるで古代のジェームズ・ボンドのようではありませんか?
ユリウス・カエサルは紀元前 100 年頃、暗号化を使用して、戦線に駐留する陸軍の将軍に秘密のメッセージを伝達していたことが知られています。シーザー暗号として知られるこの置換暗号は、おそらく学術文献で最も多く言及されている歴史的暗号です。(暗号は、暗号化または復号に使用されるアルゴリズムです。) 置換暗号では、プレーンテキスト (暗号化する対象のメッセージ) の各文字を別の文字に置き換えて、暗号文 (暗号化されたメッセージ) を作ります。Caesar が使用したのは、3 文字分ずらす方法でした。各文字は 3 桁ずつ移動し、文字「A」は「D」に、「B」は「E」に、というように置き換えられます。文字は最後で折り返されるため、「X」は「A」に置き換えられます。

このような暗号はシステムの機密性に依存しており、暗号鍵には依存していないことは容易に理解できます。システムがわかれば、暗号化されたメッセージは簡単に復号化できます。実際、置換暗号は言語の文字の頻度を使用することで解読できます。
16 世紀に、ヴィジュネルは暗号鍵を使用した最初の暗号とされる暗号を設計しました。彼の暗号の 1 つでは、暗号化キーがメッセージ全体に渡って複数回繰り返され、メッセージ文字にキー文字のモジュロ 26 を追加することで暗号文を生成します(モジュロ (mod) は、ある数値を別の数値で割ったときの剰余を求める算術記号です)。シーザー暗号と同様に、ヴィジュネル暗号も簡単に解読できます。しかし、ヴィジュネルの暗号は、活用の仕方は原始的であったものの、暗号鍵を導入するというアイデアをもたらしました。これをシーザー暗号と比較すると、メッセージの機密性は、システムの機密性ではなく、暗号化キーの機密性に依存します。

19 世紀初頭、あらゆるものが電動化されたとき、ヘバーンは「ヘバーンのローター式暗号機」と呼ばれる電気機械的なしかけを設計しました。この機械にはローターが 1 つ付いていて、秘密鍵は回転するディスクに埋め込まれています。キーは置換テーブルをエンコードし、キーボードでキーを押すたびに暗号文が出力されます。これにより、ディスクも 1 ノッチ回転し、別の表が次のプレーンテキスト文字に使用されます。しかしこれも、文字の頻度を使用して解読可能でした。
エニグマ暗号機は、第一次世界大戦の終わりにドイツの技術者アルトゥール・シェルビウスによって発明され、第二次世界大戦中にドイツ軍によって頻繁に使用されました。エニグマ暗号機は 3 から 4 個、またはそれ以上のローターを使用していました。キーボードで入力を行うと、ローターが異なる速度で回転し、適切な文字の暗号テキストが出力されます。この場合、鍵となったのはローターの初期設定でした。
エニグマ暗号機の暗号は最終的にポーランドによって破られ、この技術は後に英国の暗号学者に引き継がれ、英国の暗号学者は日替わりキーを取得する手段を設計しました。

第二次世界大戦まで、暗号化に関する作業のほとんどは軍事目的で行われ、通常は軍事情報の隠蔽に使用されていました。しかし、暗号化は戦後に商業的な注目を集め、企業が競合他社からデータを保護しようとするようになりました。
1970 年代初頭、IBM は顧客が何らかの暗号化を要求していることに気付き、ホルスト・ファイステル率いる「暗号グループ」を結成しました。彼らは Lucifer と呼ばれる暗号を設計しました。1973 年、米国の Nation Bureau of Standards (現在の NIST) は、国家標準となるブロック暗号の提案を求めました。彼らは、十分な暗号のサポートが得られないまま、多くの商用製品を購入していることに気付いていました。Lucifer は最終的に受け入れられ、DES (Data Encryption Standard) と呼ばれるようになりました。1997 年とその後の数年間、DES は網羅的検索攻撃 (exhaustive search attack) によって破られました。DES の主な問題は、暗号化キーのサイズが小さいことでした。コンピューティング能力が向上するにつれて、キーのさまざまな組み合わせをすべてブルートフォースで攻撃して、プレーンテキストメッセージを取得することが容易になりました。
1997 年、NIST は再び新しいブロック暗号の提案依頼を出しました。50 件の応募がありました。2000 年には Rijndael が承認され、「AES (Advanced Encryption Standard)」と名付けられました。現在、AES は対称暗号化に使用される広く受け入れられている標準です。
近年、量子コンピューターの進歩により、私たちは ポスト量子暗号化について考えるようになりました。2016 年、NIST は提案を求めることを宣言し、「将来の量子コンピューターの攻撃に耐える」のに役立つ耐量子性アルゴリズムの設計に一般市民の助けを求めました。2020 年、NIST は 4 つのファイナリストを発表しました。
結論として、歴史は次のことを教えてくれます。
- メッセージの機密性は、暗号化システムの機密性ではなく、常にキーの機密性に依存している必要があります(これはケルクホフスの原理として知られています)。
- 上記に関連して、公的に審査され、標準化された暗号を必ず使用してください。シーザー暗号と同様に、システムが分かってしまうとすべてのメッセージを復号化できるので、「秘密の暗号」を使用することはよくありません。たとえば、キーが侵害された場合、攻撃者はメッセージにアクセスする可能性があります。しかし、攻撃者が暗号化システム自体を侵害できた場合、そのシステムによって暗号化されたすべてのメッセージ (1 人宛てだけでなく) のプレーンテキストを取得する可能性があるのです。
About the author
Huzaifa Sidhpurwala is a principal Product Security Engineer, working for Red Hat Product Security Team.