暗号アルゴリズムの系統樹(対称・公開鍵・ハッシュの派生と世代交代)
なぜ今その方式が標準なのかが系統で腑に落ちる。DES・RSA・MD5から現行・PQCまでの分岐と危殆化の流れを年代と表で俯瞰し、選定の判断軸を得る。
- 1.対称はDES→3DES→AES、公開鍵はRSA/DH→ECC→PQC、ハッシュはMD5→SHA-1→SHA-2→SHA-3という3系統で世代交代が進む。
- 2.交代の引き金は鍵長不足・衝突発見・量子計算の脅威で、NISTの公募とSP/FIPS標準化が事実上のデファクトを決めてきた。
- 3.実務の現役はAES-GCM、ECDHE/Ed25519、SHA-256/SHA-3。RSA/SHA-1は段階的に退役、PQCはML-KEM/ML-DSAへ移行中。
系統を俯瞰する3本の幹
暗号アルゴリズムは無数にあるように見えますが、目的で分ければ幹は3本です。対称鍵(共通鍵)暗号、公開鍵(非対称)暗号、ハッシュ関数。各幹に共通する歴史の法則は「ある世代が破られる兆候(危殆化)が出ると、次世代へ世代交代する」こと、そして交代の節目を多くの場合 NIST(米国立標準技術研究所)の公募と標準化が決めてきたことです。まず役割の整理は暗号の基礎、可逆/不可逆の線引きはハッシュ化と暗号化の違いを前提知識として下敷きにします。
危殆化の引き金は系統ごとに異なります。対称鍵は鍵長不足(総当たり可能になる)、公開鍵は数学的前提の崩れ(高速化・量子計算)、ハッシュは衝突攻撃の発見が主因です。これを軸に各系統の派生を追います。
対称鍵:DES → 3DES → AES
対称鍵は1本の鍵で暗号化・復号する高速な方式です。系統は鍵長の歴史そのものです。
- DES(1977, FIPS 46):鍵長56ビット。1990年代末に専用ハードで総当たり実証され危殆化。
- 3DES(Triple DES):DESを3回かけ実効112ビット相当に延命。ただし内部ブロックが64ビットと小さく、Sweet32(誕生日攻撃)に弱い。NISTは2023年末で利用を非推奨化。
- AES(2001, FIPS 197):ベルギー発の Rijndael がNIST公募で選定。鍵長128/192/256ビット、ブロック128ビット。現行の事実上の標準。
ここで重要なのは「AESは方式名であり、運用モードと組で初めて安全になる」点です。素のブロック暗号は ECB のように使うとパターンが露出します。実務では認証付き暗号(AEAD)の AES-GCM や、ソフトウェアで速い ChaCha20-Poly1305 を使います。
DES(56bit) ──総当たり危殆化──▶ 3DES(112bit相当) ──64bitブロックが弱点──▶ AES(128/256bit)
└─運用モード: GCM / ChaCha20-Poly1305(AEAD)
「DESの鍵長は56ビット」「3DESは実効112ビット相当だが将来非推奨」「AESの選定アルゴリズムはRijndael、ブロック長は鍵長に依らず128ビット」は頻出。鍵長を128と56で取り違えないこと。
公開鍵:RSA / DH → ECC → PQC
公開鍵暗号は「解くのが難しい数学問題」を安全性の根拠にします。系統は根拠とする難問の乗り換えの歴史です。
- 第1世代(1970年代後半):Diffie-Hellman(DH) が鍵交換を、RSA が暗号化・署名を実現。RSAは大きな合成数の素因数分解の困難性、DHは離散対数問題に依拠。安全のため鍵長は2048〜3072ビットへ肥大化。
- 第2世代 ECC(楕円曲線暗号, 1985提案・2000年代普及):楕円曲線上の離散対数問題に依拠。同等強度をはるかに短い鍵長で実現でき(256ビットECC ≒ 3072ビットRSA相当)、モバイルやTLSで主流化。鍵交換は ECDH/ECDHE、署名は ECDSA / Ed25519。
- 第3世代 PQC(耐量子暗号):RSA・ECCの難問は量子コンピュータのShorアルゴリズムで多項式時間で解けるため、量子計算機が実用化すれば一斉に危殆化する。これに耐える格子・符号・ハッシュベースの方式へ移行中。NISTは2024年に標準を確定。
| 世代 | 代表方式 | 安全性の根拠 | 弱点・交代理由 |
|---|---|---|---|
| 第1世代 | RSA / DH | 素因数分解・離散対数の困難性 | 鍵長肥大化、Shorで量子に脆弱 |
| 第2世代 | ECDH / ECDSA / Ed25519 | 楕円曲線離散対数問題 | 短鍵で高効率だがやはり量子に脆弱 |
| 第3世代(PQC) | ML-KEM / ML-DSA / SLH-DSA | 格子・ハッシュ等の困難性 | 鍵/署名が大きい、実装が新しい |
NISTが2024年に確定したPQC標準は、鍵カプセル化(鍵交換)の ML-KEM(FIPS 203、旧称 CRYSTALS-Kyber)、署名の ML-DSA(FIPS 204、旧 Dilithium) と SLH-DSA(FIPS 205、ハッシュベースのSPHINCS+) です。実務では既存方式とPQCを併用するハイブリッド鍵交換(例 X25519 + ML-KEM)から移行が始まっています。
量子計算機がまだ無くても脅威は現在進行形です。攻撃者が今のうちに暗号文を収集・保存し、将来の量子計算機で後から復号する(収集後復号)が成立するため、長期間秘匿が必要なデータは今からPQCへの移行検討が要ります。署名より鍵交換の移行を急ぐのはこのためです。
ハッシュ:MD5 → SHA-1 → SHA-2 → SHA-3
ハッシュ関数は任意長データを固定長の指紋に潰す一方向関数で、交代の引き金は一貫して衝突攻撃(異なる入力が同じ出力になるペアを現実的に作れてしまうこと)です。
- MD5(1992):128ビット出力。2004年以降に衝突が量産され、署名用途では完全に危殆化。
- SHA-1(1995, FIPS 180-1):160ビット。2017年の SHAttered で実衝突が公開され、証明書・署名から退役。
- SHA-2(2001):SHA-256/384/512など。Merkle-Damgård構造。現役の主力で、当面は安全とされる。
- SHA-3(2015, FIPS 202):NIST公募で Keccak を選定。スポンジ構造でSHA-2とは内部構造が根本的に異なり、SHA-2が将来破られた場合の保険(構造の多様性)として標準化された。
ここでの世代交代は衝突耐性の話で、SHA-256でもパスワード保存にそのまま使うのは依然NGです。汎用ハッシュは高速すぎて総当たりに弱く、ソルト+低速関数(bcrypt / scrypt / Argon2)が必要になります。詳細はパスワードの安全な保存を参照。
MD5(128bit) ──衝突量産──▶ SHA-1(160bit) ──SHAttered──▶ SHA-2(256/512, MD構造) ──構造の多様化──▶ SHA-3(Keccak, スポンジ構造)
標準化と危殆化のタイムライン
3系統を年代で重ねると、NISTの公募が世代交代の節目になっていることが見えます。
| 年代 | 対称鍵 | 公開鍵 | ハッシュ |
|---|---|---|---|
| 1977〜95 | DES標準化(1977) | DH/RSA発明(1976〜78) | MD5(1992) / SHA-1(1995) |
| 2000年代 | AES選定(2001) | ECCの普及 | SHA-2(2001) |
| 2010年代 | 3DES退役方針 | Ed25519普及 | SHA-1実衝突(2017) / SHA-3(2015) |
| 2020年代 | AES-GCM/ChaCha20が主流 | PQC標準確定(2024) | SHA-2/3が現役 |
実務での現在地と選定指針
系統樹を踏まえた「今選ぶべきもの」を整理します。退役した方式は新規採用しないのが原則です。
- 対称鍵:AES-128/256-GCM、またはChaCha20-Poly1305(AEAD)。DES/3DES/RC4は不可。
- 鍵交換:ECDHE(X25519)。前方秘匿性(PFS)のため固定鍵のRSA鍵交換は避ける。長期秘匿はPQCハイブリッドを検討。
- 署名:Ed25519 / ECDSA。RSA署名は鍵長3072ビット以上なら当面可。証明書周りの全体像はPKIと電子証明書を参照。
- ハッシュ:SHA-256以上、またはSHA-3。MD5/SHA-1は完全に不可。
新しい方式が常に正解とは限りません。判断軸は3つ。(1) 危殆化していないか(DES・MD5・SHA-1は失格)、(2) 標準化・実装が枯れているか(AES-GCM・SHA-256は安全な既定)、(3) 将来の脅威に備える必要があるか(長期秘匿ならPQCへ)。系統樹は「なぜ今これが標準か」を逆算する地図として使えます。
最後に、アルゴリズム選定だけでは安全は完成しません。鍵の生成・配送・失効を支える基盤がPKIと電子証明書、保存パスワードの設計がパスワードの安全な保存で、暗号の役割分担そのものは暗号の基礎に立ち返って確認してください。
セキュリティ Article
暗号アルゴリズムの系統樹(対称・公開鍵・ハッシュの派生と世代交代)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
暗号
比較で見る軸
難易度: advanced / カテゴリ: セキュリティ / タグ数: 6
導入後に効く点
交代の引き金は鍵長不足・衝突発見・量子計算の脅威で、NISTの公募とSP/FIPS標準化が事実上のデファクトを決めてきた。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- セキュリティ
- タグ数
- 6
判断チェックリスト
- 自社の用途が「暗号 / AES」に近いか確認する。
- 強みである「対称はDES→3DES→AES、公開鍵はRSA/DH→ECC→PQC、ハッシュはMD5→SHA-1→SHA-2→SHA-3という3系統で世代交代が進む。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。