基礎理論とコア技術

共通鍵暗号の進化と仕組み:DESから標準暗号AESへの歴史

昨日のあなたは10回以上、暗号を使っていた

思い出してみてください。昨日、あなたはスマホで誰かにLINEを送りましたか?カフェでWi-Fiに繋ぎましたか?それとも、ネットショッピングでクレジットカードを使いましたか?

実はそうした場面の多くで、あなたのデータは「共通鍵暗号(Symmetric-key algorithm:暗号化と復号に全く同じ鍵を使う方式)」の代表格であるAESという、広く標準として使われている強固な盾によって守られていました。暗号技術は、決してスパイやハッカーだけのものではなく、あなたの日常の平穏を根底で支えているインフラなのです。

もふねこ

「自分には関係ない技術」って勘違いしてない? 実は、この暗号が破られたら、君の銀行口座もLINEも全部丸裸になっちゃうんだ。今日は、私たちの「日常と資産」を守るために起きた、歴史的な暗号戦争を追ってみよう🐾

📝 この記事の目次

1. 1999年、世界の通信を守っていた暗号が1日で破られた

歴史は1999年1月に動きました。

当時、世界中の銀行システムや政府機関のデータを守っていたのは「DES(Data Encryption Standard)」という暗号規格でした。誰もが「DESを使っていれば安全だ」と信じて疑わなかった時代です。

しかし、電子フロンティア財団(EFF)という団体が開発した「Deep Crack」という専用の暗号解読マシンと、インターネット上の一般コンピュータを繋いだ分散コンピューティングによる『ブルートフォース攻撃(Brute-force attack:すべての鍵の組み合わせを力技で試す攻撃)』の前に、事態は急変します。

なんと、世界のインフラを守っていたはずのDESは、「DES Challenge III」においてEFFの専用ハードウェアとインターネット上の10万台のPCを連携させた分散処理の結果、わずか22時間15分で完全に陥落(解読)されてしまったのです。

もふねこ

たった25万ドルほどの専用マシンと分散処理で、世界のインフラ暗号が1日で破られちゃったんだ😱
もし今の大事なデータがこんな古い技術で守られていたら……簡単に盗み見られてしまうよね。だからこそ、常に最新の暗号技術にアップデートし続けることが大切なんだ🐾


2. そもそもDESとは何だったのか——破られた暗号の正体

なぜ、DESはこれほどあっけなく破られてしまったのでしょうか。事件の背景を知るために、少しだけDESの正体を紐解いてみましょう。

DESは、1977年にアメリカ政府の標準として制定された「データ暗号化の標準規格」でした。データを一定の大きさ(64ビット)の箱に詰めて、箱ごとに暗号化処理を行う「ブロック暗号」という方式の代表格です。

内部では「フェイステル構造」という仕組みを使い、データを半分に割っては混ぜ合わせるという複雑なシャッフルを16回も繰り返す、当時としては非常に強固な設計でした。

問題は「鍵の短さ」でした。

DESで使われていた鍵の長さは56ビット(約7.2京通りの組み合わせ)でした。当時の想定では、これは十分な長さと考えられていました。しかし、コンピュータの進化のスピードは人類の予想を遥かに超えていました。
DESが敗北したのは、暗号の仕組みそのものの欠陥ではなく、鍵の短さが「時代(コンピュータの進化)」に追いつかれてしまった結果だったのです。

※その後、急場しのぎの延命策として、DESを3回繰り返して暗号化する「3DES(トリプルDES)」という技術も使われましたが、処理が重く、あくまで応急処置に過ぎませんでした。時代は、根本から全く新しい暗号を求めていました。


3. 世界が選んだ後継者——4年間の公開審査という革命

DESが破られることを見越していたアメリカ国立標準技術研究所(NIST)は、「誰か、DESに代わる新しい暗号を作れませんか?」と世界規模のコンテストを開催しました。

ここで重要なのは、NISTがこのコンテストを「完全な公開審査」で行ったことです。
実はDESの時代、NSA(米国家安全保障局)が設計に非公開で関与したため、「政府だけが解読できる裏口(バックドア)があるのでは?」と疑われていました。後に、IBMの設計者らは当時学術界で未発見だった『差分解読法』を既に知っており、S-Box(置換表)をその攻撃から守るよう設計していたことが明らかになったとされています。一方で、IBMが当初開発した原案(Lucifer)は128ビット鍵だったとされ、最終的に56ビットへ短縮された経緯にはNSAの関与があったとする指摘もありますが、諸説あります。いずれにせよ、この鍵長の短さが、後のブルートフォース攻撃による陥落につながりました。

その反省から、新しい暗号は密室で決めるのではなく、世界中の天才暗号学者たちに公開され、「壊せるなら壊してみろ」と挑ませました。
「真の信頼は、世界中から攻撃され続けて、それでも壊れなかったことで初めて生まれる」という思想への転換です。

約4年間にも及ぶ過酷な攻撃テストと審査を勝ち抜き、最終候補(TwofishやSerpentなど計5方式)の中から2000年に新標準「AES(Advanced Encryption Standard)」として選定されたのが、ベルギーの2人の暗号学者(ヨアン・ダーメンとヴィンセント・ライメン)が開発したアルゴリズムでした。(正式標準化であるFIPS 197は2001年に発行)

もふねこ

初心者は「国が秘密裏に作った暗号のほうが安全」って思いがちだけど、実は逆!
世界中の天才たちから一斉に攻撃されまくって、それでも壊れなかった技術だけが本物なんだ🐾


4. AESはどう動くのか——4つのシャッフルの正体

世界中の天才たちの攻撃を跳ね返したAESは、どのようにしてデータを守っているのでしょうか?
DESがデータを左右に半分に割って交互に処理する「フェイステル構造」だったのに対し、AESは128ビットのデータを4×4の行列(ステート)に配置し、全体を並列的・数学的に変換する『SPN構造(Substitution-Permutation Network)』を採用しています。
一言で言えば、「ガロア体(有限体)の数学を用いた超複雑なシャッフル(換字と転置)を10~14ラウンド(鍵長により異なる)繰り返す」ことで、元のデータの統計的な偏りを十分に拡散させています。

🔄 AESパズルシャッフルの4操作

  1. SubBytes:文字を全く別の文字に置き換える(S-Boxという表を使う)
  2. ShiftRows:行ごとにデータを横にズラして並べ替える
  3. MixColumns:縦の列を数学的な計算(ガロア体)で複雑に混ぜ合わせる
  4. AddRoundKey:秘密の鍵(ラウンド鍵)とデータをXOR演算で混ぜる

普通の人は「AES-128」で十分すぎるほど安全

AESには、使う鍵の長さに応じて「AES-128」「AES-192」「AES-256」の3種類があります。数字が大きいほどセキュリティは高くなります。

しかし、ここで強調しておきたいのは、一般的な用途であれば「AES-128」で十分すぎるほど安全だということです。AES-128を現在のスーパーコンピュータで総当たり攻撃しようとしても、宇宙の年齢(138億年)以上の時間がかかります。国家機密レベルでない限り、処理が高速なAES-128を選んで全く問題ありません。

もふねこ

「未来のスーパーコンピュータ(量子コンピュータ)ができたら、今の暗号はどうなっちゃうの?」って不安になる人もいるよね。
共通鍵暗号については、一番鍵が長い「AES-256」なら、量子コンピュータの攻撃(グローバーのアルゴリズム)を受けても、現実的な時間では解読できないと考えられているんだ。ちなみに、量子コンピュータが特に脅威になるのは、鍵の受け渡しや電子署名に使う公開鍵暗号のほうだよ。そこは次の記事で見ていこうね🐾


5. 暗号は「何を使うか」より「どう使うか」が命——動作モードの話

さて、これで人類は「強固な箱(AES)」を手に入れました。
しかし、強固なAESも「使い方」を間違えれば一瞬で無意味になります。その証拠が「ECBペンギン問題」です。

暗号化する際、長いデータをどうやってブロックに分けて処理していくかというルールのことを「動作モード(Mode of Operation)」と呼びます。

❌ 最も危険な「ECBモード」

ECB(Electronic Codebook)は、最も単純な動作モードです。各ブロックをそのまま暗号化します。しかし、Linuxのペンギン画像(Tux)の非圧縮データ(BMP形式など)をこのモードで暗号化すると、同じ色の背景部分は「同じ暗号文」に変換されるため、なんと暗号化しているのにペンギンのシルエットが丸見えになってしまうという致命的な欠陥があります。

現代の標準:GCMモード(Galois/Counter Mode)

この欠陥を克服し、現代のインターネット(HTTPS/TLS 1.3)で標準的に採用されている使い方がGCMモードです。

GCMモードの凄さは、データを並列処理できるCTR(カウンター)モードによる超高速な暗号化と、ガロア体(有限体)乗算を用いたメッセージ認証コード(GMAC)を組み合わせている点にあります。「通信途中でデータが1ビットでも改ざんされたら、極めて高い確率で検知して弾く」というこの仕組みを、現代の暗号学では『認証付き暗号(AEAD:Authenticated Encryption with Associated Data)』と呼び、データの「機密性」だけでなく「完全性(Integrity)」も同時に保証します。

システムを構築する際、「AESを使っているから安全だ」と油断してはいけません。「AESをGCMモードで正しく使っているか」が、真のセキュリティの分かれ目なのです。


🧭 共通鍵の弱点:そして「魔法の暗号」の誕生へ

1999年のDES陥落の事件から、世界中の天才たちが知恵を絞って生み出された「AES」。その技術は今、あなたが見ているこのWebサイトの通信(HTTPS)にも使われており、日常を守り続けています。

しかし、強固な盾であるAESには、「1つだけ致命的な弱点」があります。

それは、「どうやって、遠く離れた相手に安全に『鍵』を渡すのか?」という問題(鍵配送問題)です。
どんなに箱が頑丈でも、鍵を郵送している途中に泥棒にコピーされたら終わりですよね。インターネットで世界中が繋がる時代、ネット通販で初めて会うお店の人に「暗号の鍵」を安全に渡す方法が必要でした。

🚀 暗号学習ロードマップ

  • 第1の扉:歴史と社会 ― 古代〜ルネサンス、大戦の暗号史
  • 第2の扉:理論と数学(前半)― 共通鍵暗号の仕組み(この記事)
  • 第2の扉:理論と数学(後半)― 公開鍵暗号(RSA)の誕生を読む

もし、会ったこともない相手と、安全に秘密を共有できる方法があるとしたら……。
それは、インターネット時代を生んだ“数学の革命”です。
次の記事では、銀行、ECサイト、LINEなどの通信を支える『公開鍵暗号』の核心へ進みます。

🔑 公開鍵暗号の理論へ進む

💡 技術の理解が、日常の安心につながる

AESなどの暗号技術は、もはや国家や大企業だけのものではありません。LINEやネットショッピング、カフェのWi-Fiでの通信など、私たちの日常の多くの場面で使われています。

暗号の仕組みを学ぶことは、デジタル時代に「自分のデータをどう守るか」を考えるリテラシーに直結します。