セキュリティ
上級

公開鍵暗号 Diffie-Hellman/RSA 1976-1977(公開鍵暗号創始)

Public Key Cryptography 1976-1977創始 (差別化: 既存暗号方式DES/AES史と異なり公開鍵暗号創始者軸)。Whitfield Diffie 1944生+Martin Hellman 1945生 Stanford Univ「New Directions in Cryptography」1976/11 IEEE Transactions Information Theory発表 (Diffie-Hellman Key Exchange Protocol DH・Discrete Logarithm Problem・公開鍵暗号革命)・Ralph Merkle 1974 Project Proposal提案 (Berkeley Submarine Internet Communication・Merkle's Puzzles先行)→Diffie-Hellman-Merkle Algorithm改名議論・Ron Rivest 1947生+Adi Shamir 1952生+Leonard Adleman 1945生 MIT「A Method for Obtaining Digital Signatures and Public-Key Cryptosystems」1977/8 (RSA・素因数分解Hardness Problem基づくEncrypt+Decrypt+Signature)・Communications of the ACM 1978/2公開・1982 RSA Security設立・1983 RSA特許US Patent 4,405,829 (米国のみ・2000年失効)・Phil Zimmermann PGP 1991 (RSA採用)・Diffie+Hellman 2015 Turing Award・Rivest+Shamir+Adleman 2002 Turing Award・GCHQ James Ellis+Clifford Cocks+Malcolm Williamson 1969-1973 Independent invention (機密分類解除1997)・¥0 公的功績、2026年TLS 1.3+SSH+SignalProtocol前提技術。

0 回閲覧
0 いいね
2026/4/30 更新
関連タグ
Diffie-Hellman 1976
Whitfield Diffie Stanford
RSA 1977 MIT
Rivest Shamir Adleman
GCHQ Clifford Cocks 1973

概要

1976年11月にスタンフォード大学のWhitfield DiffieとMartin Hellmanが発表した「New Directions in Cryptography」から、公開鍵暗号の基盤が確立された。これにより、従来の共通鍵暗号(DES、AES)とは別の概念が登場し、鍵交換と署名の両面で新たな安全性を提供した。Diffie–Hellmanは鍵交換プロトコルを、RSAは暗号化・署名のアルゴリズムをそれぞれ実装した。1977年8月にMITのRon Rivest、Adi Shamir、Leonard Adlemanが発表したRSAは、素因数分解の難しさに基づく暗号で、今日のインターネット通信の多くで不可欠な技術となっている。

主な特徴・仕組み

特徴Diffie–HellmanRSA
鍵の生成乱数で生成した大きな素数 (p) と原始根 (g) を共有し、各側が秘密指数 (a, b) を選択。2つの大きな素数 (p, q) を選び、公開鍵 (e) と秘密鍵 (d) を計算。
計算量(O(\log n)) の指数計算で鍵共有。(O(n^3)) の乗算で暗号化/復号。
用途キー交換、対称鍵の生成。暗号化、署名、証明書の生成。
耐量子性量子計算で指数計算が高速化されるため、量子耐性は低い。素因数分解が量子で高速化されるため、量子耐性は低い。
実装例TLS 1.3のECDHE、IKEv2。TLS 1.2のRSA、SSHのRSA鍵。

具体例・対応製品

製品主要用途対応鍵長主要プロトコル主要パフォーマンス指標
OpenSSL 3.0オープンソースSSL/TLSライブラリ2048/3072/4096TLS 1.3, DTLS 1.21 Gbps (AES‑GCM)
BoringSSLGoogle社用SSL/TLS実装2048/3072/4096TLS 1.31.2 Gbps (AES‑GCM)
LibreSSLOpenBSD派生SSL/TLS2048/3072/4096TLS 1.3900 Mbps (AES‑GCM)
AWS KMSクラウド鍵管理2048/3072/4096TLS 1.3, S3 SSE1 Gbps (AES‑GCM)
Google Cloud KMSクラウド鍵管理2048/3072/4096TLS 1.3, GCS SSE1.1 Gbps (AES‑GCM)
Azure Key Vaultクラウド鍵管理2048/3072/4096TLS 1.3, Azure Storage SSE950 Mbps (AES‑GCM)
Cisco ASA 5500-Xネットワークファイアウォール2048/3072TLS 1.3, IPSec700 Mbps (AES‑GCM)
Juniper SRX 300ネットワークファイアウォール2048/3072TLS 1.3, IPSec650 Mbps (AES‑GCM)
Fortinet FortiGate 60Fネットワークファイアウォール2048/3072TLS 1.3, IPSec600 Mbps (AES‑GCM)
Palo Alto Networks PA‑220ネットワークファイアウォール2048/3072TLS 1.3, IPSec550 Mbps (AES‑GCM)

数値スペック(代表例)

  • RSA鍵長: 2048 ビット (安全性 ≈ 112 ビット), 3072 ビット (≈ 128 ビット), 4096 ビット (≈ 152 ビット)
  • ECDHE鍵長: 256 ビット (≈ 128 ビット), 384 ビット (≈ 192 ビット)
  • AES‑GCMブロックサイズ: 128 ビット
  • TLS 1.3平均遅延: 1.2 ms (サーバー側)
  • TLS 1.3ハンドシェイクスループット: 1 Gbps (AES‑GCM)
  • RSA暗号化速度: 10 Mbps (2048 ビット)
  • ECDHE鍵交換速度: 30 Mbps (256 ビット)
  • OpenSSL 3.0のハードウェアアクセラレーション: AES-NI, SHA‑256, RSA 4096 ビット 5×高速化
  • TLS 1.3のサーバー証明書検証: 0.5 ms (ECDSA)
  • AWS KMSのレスポンスタイム: 0.7 ms (RSA 2048 ビット)

選び方・注意点

  1. 鍵長の選択
    • 2048 ビット RSA は現在の標準だが、2025年以降は3072 ビットまたは4096 ビットへの移行が推奨される。
    • ECDHE では256 ビットが最小で、384 ビットは高い安全性を提供。
  2. 量子耐性の考慮
    • 量子計算の進展により、RSA/DSA/DH は将来的に脆弱になる可能性がある。
    • 2025年以降のTLS 1.3実装では、KyberやDilithiumといった格子ベースの鍵交換が実験的に導入されている。
  3. ハードウェアアクセラレーション
    • AES‑NI、SHA‑256、RSA/EC演算をサポートするCPUやTPMを備えた環境では、パフォーマンスが大幅に向上。
  4. 法規制・コンプライアンス
    • 米国のFIPS 140‑3 では、RSA 2048 ビット以上、ECDHE 256 ビット以上が要求される。
    • EUのGDPR では、鍵長に関する明示的な要件はないが、適切な鍵管理が必要。
  5. 証明書チェーンの管理
    • RSA/DSA での証明書は長期的に有効だが、ECDSA は短期間で更新されるケースが多い。

関連用語との違い

用語Diffie–Hellman/RSA 1976‑1977主要差分
ElGamal1985年に導入Diffie–Hellman の拡張で署名も可能
ECC (Elliptic Curve Cryptography)1991年以降曲線上で演算を行い、同等の安全性を小さな鍵長で実現
Post‑Quantum Algorithms2020年代以降格子ベース、ハッシュベース、符号ベースのアルゴリズムで量子耐性を提供
TLS 1.22008年RSA/DSA が鍵交換に使用されるが、TLS 1.3 では ECDHE が標準
PGP1991年RSA を採用したメール暗号化・署名ツール
SSH1995年RSA/DSA/ECDSA を鍵交換・認証に使用

よくある質問 (FAQ)

Q1. RSA と ECDSA のどちらを選べばよいですか?
A1. パフォーマンスと鍵長を比較すると、ECDSA は同等の安全性で約 1/4 の鍵長を使用でき、暗号化速度も速い。サーバー側で CPU への負荷が重要な場合は ECDSA が有利。RSA は既存のインフラとの互換性が高いので、既存証明書を利用する場合に適している。

Q2. TLS 1.3 で Diffie–Hellman はまだ必要ですか?
A2. TLS 1.3 では DH ではなく ECDHE が標準で使用される。DH は 2025 年以降の実装で非推奨になる見込みで、量子耐性を考慮した鍵交換が推奨される。

Q3. 量子コンピュータが実用化した場合、現在の RSA 鍵は無効になりますか?
A3. 量子計算により Shor のアルゴリズムで素因数分解が高速化されるため、RSA 2048 ビットは 2020 年代後半に脆弱になる可能性がある。対策としては、RSA 3072/4096 ビットへの移行、あるいは量子耐性アルゴリズムへの切替が推奨される。

まとめ

Diffie–Hellman と RSA は1976‑1977年に公開鍵暗号の基礎を築き、以降のインターネット通信の安全性を支える柱となった。鍵交換と署名の両面でそれぞれ独自の特徴を持ち、TLS 1.3 からは ECDHE が標準化され、RSA は主に署名に留まる形で使用される。2025‑2026 年の動向では、量子耐性アルゴリズムの実験的導入が進み、ハードウェアアクセラレーションの活用がパフォーマンス向上の鍵となっている。鍵長の選択、量子耐性の検討、ハードウェアサポートの確認を行い、最新の標準と規制に準拠した実装を選択することが、長期的なセキュリティ確保に不可欠である。

この記事について
カテゴリーセキュリティ
難易度上級
作成日2026/4/30