暗号化・証明書

公開鍵暗号(RSA・ECC) こうかいかぎあんごう(あーるえすえー・いーしーしー)

RSAECC公開鍵秘密鍵非対称暗号楕円曲線暗号
公開鍵暗号(RSA・ECC)について教えて

簡単に言うとこんな感じ!

暗号化と復号で「違う鍵のペア」を使う仕組みだよ。「公開鍵(南京錠)」は誰にでも配れて、「秘密鍵(鍵)」は自分だけが持つ。ECCはRSAより短い鍵で同じ安全性を実現できる最新版なんだ!


公開鍵暗号(RSA・ECC)とは

公開鍵暗号(非対称暗号) とは、暗号化に使う鍵と復号に使う鍵が数学的に対になっているが異なる暗号方式です。一方の鍵(公開鍵)は誰にでも公開し、もう一方(秘密鍵)は自分だけが持ちます。

RSA(Rivest–Shamir–Adleman) は1977年に開発された最初の実用的な公開鍵暗号で、「大きな数の素因数分解が困難」という数学的問題を安全性の根拠とします。現在でも広く使われていますが、鍵長が長く(2048〜4096ビット)処理が重い欠点があります。

ECC(Elliptic Curve Cryptography:楕円曲線暗号) は「楕円曲線上の離散対数問題」を根拠とする暗号で、RSAよりはるかに短い鍵長(256ビット)で同等の安全性を実現します。TLS 1.3SSHでのシェアが急速に拡大しています。


RSAとECCの比較

比較項目RSAECC
安全性の根拠素因数分解の困難さ楕円曲線上の離散対数問題
等価セキュリティの鍵長2048ビット(112ビット相当)224ビット(112ビット相当)
処理速度遅い(鍵長が長いため)速い(鍵が短い)
モバイル・IoT適性低い高い
量子コンピュータへの耐性脆弱(Shorのアルゴリズムで解読可能)脆弱(同様)
普及状況既存システムで広く使われるTLS 1.3、SSH等で主流になりつつある

ECCの代表的な曲線

曲線名鍵長主な用途
P-256 (secp256r1)256ビットTLS、JWT、コードサイニング
P-384 (secp384r1)384ビット政府・医療向け高セキュリティ用途
X25519255ビットTLS 1.3の鍵交換ECDH
Ed25519255ビットSSH署名、TLS証明書署名

歴史と背景

  • 1976年:Diffie-Hellmanが公開鍵暗号の概念を提唱(「New Directions in Cryptography」論文)
  • 1977年:RSAがMIT研究者3名によって発明
  • 1985年:ECCがKoblitzとMillerによって独立して提案
  • 2004年頃:ECCが実用的な実装として普及し始める(特にSSL/TLS)
  • 2015年:NSAが政府向け暗号スイートにECCを指定
  • 2022年頃〜:NISTがポスト量子暗号(PQC)の標準化を進め、RSA/ECCの後継候補を選定中

公開鍵暗号の動作フロー

公開鍵暗号による秘密通信のフロー 送信者Alice 受信者Bob Bobの公開鍵(南京錠) → 誰でも入手可能 Bobの公開鍵でAliceが暗号化 → 暗号文(Bobの秘密鍵でのみ復号可) Bobだけが秘密鍵で復号できる → Aliceのメッセージが読める

関連する規格・RFC

規格・RFC番号内容
RFC 8017PKCS #1: RSA Cryptography Specifications
RFC 5480ECCのSubjectPublicKeyInfo形式
FIPS 186-5NISTのデジタル署名標準(DSS):ECDSA含む
RFC 7748X25519(楕円Diffie-Hellman鍵交換

関連用語