RSA暗号 あーるえすえーあんごう
公開鍵暗号素因数分解デジタル署名鍵ペアPKISSL/TLS
RSAについて教えて
簡単に言うとこんな感じ!
RSAは「南京錠と鍵」の仕組みを数学で実現した暗号だよ!誰でも使える「公開鍵(南京錠)」で情報を施錠して、持ち主だけの「秘密鍵」で開けられるってこと!インターネットの安全通信の土台になってるんだ。
RSAとは
RSAは1977年に発明された公開鍵暗号方式の代表格です。名前は考案者3人の頭文字(Rivest・Shamir・Adleman)から取られています。それまでの暗号は「同じ鍵で暗号化・復号する」方式でしたが、RSAは暗号化用の鍵と復号用の鍵を別々に持てるという革命的な仕組みを実現しました。
RSAの安全性は「大きな数の素因数分解が極めて難しい」という数学的事実に依存しています。例えば「15 = 3 × 5」はすぐわかりますが、数百桁の巨大な数の素因数分解は現代のコンピュータでも現実的な時間内に解けません。この”解きにくさ”が暗号の強さになっています。
実務では、RSAは単独でデータ全体を暗号化するより、デジタル署名や共通鍵の安全な受け渡し(鍵交換)に使われることが多いです。HTTPS(Webの安全通信)やメール暗号化、電子証明書など、現代のインターネットセキュリティのほぼあらゆる場面でRSAが関わっています。
RSAの仕組みと構造
公開鍵・秘密鍵のペアとは
| 鍵の種類 | 役割 | 公開? |
|---|---|---|
| 公開鍵(Public Key) | 暗号化 / 署名の検証 | 誰でも入手可能 |
| 秘密鍵(Private Key) | 復号 / 署名の生成 | 本人だけが保持 |
2つの鍵は数学的にペアになっており、公開鍵で暗号化したデータは対応する秘密鍵でしか復号できません。
RSAが使われる主な用途
| 用途 | 何をするか | 実例 |
|---|---|---|
| 暗号化通信 | 共通鍵を公開鍵で包んで安全に渡す | HTTPS(TLSハンドシェイク) |
| デジタル署名 | 秘密鍵で署名し、公開鍵で本人確認 | 電子契約・コード署名 |
| 電子証明書 | 認証局がRSAで署名して信頼を保証 | SSL証明書・マイナンバーカード |
覚え方:「南京錠と鍵」
📦 公開鍵 = 誰でも持てる南京錠(かけることはできる) 🗝️ 秘密鍵 = 自分だけの鍵(開けられるのは自分だけ)
「箱に南京錠をかけて送ってもらい、自分の鍵で開ける」イメージ。
鍵長と安全性の目安
| 鍵長 | 安全性レベル | 現在の推奨 |
|---|---|---|
| 1024ビット | ❌ 廃止推奨 | 使用禁止(解読リスクあり) |
| 2048ビット | ✅ 標準 | 現在の最低ライン |
| 4096ビット | ✅✅ 高強度 | 長期保存データ向け |
歴史と背景
- 1976年 — Diffie・Hellmanが「公開鍵暗号」の概念を論文で提唱。ただし具体的な実装方法は示されなかった
- 1977年 — MIT のRivest・Shamir・Adlemanが具体的なアルゴリズムとしてRSAを発明。論文発表前にNSA(米国家安全保障局)から公表を止めるよう圧力がかかったとも言われる
- 1983年 — MITがRSAの特許を取得(米国内)
- 1990年代 — インターネットの普及とともにSSL(現TLS)に採用され、Web通信の暗号化標準へ
- 2000年 — 特許が期限切れとなり、完全にオープンな技術として世界中で利用可能に
- 2010年代〜 — 鍵長2048ビット以上が業界標準に。楕円曲線暗号(ECDSA)との併用も増加
- 現在 — 量子コンピュータへの耐性が課題として浮上。NIST(米国標準技術研究所)が「耐量子暗号」の標準化を進めている
RSAと関連暗号方式の比較
RSAは万能ではなく、用途によって使い分けられています。
| 暗号方式 | 種類 | 特徴 | 主な用途 |
|---|---|---|---|
| RSA | 公開鍵暗号 | 歴史が長く広く普及・処理は重め | 鍵交換・デジタル署名 |
| AES | 共通鍵暗号 | 処理が速い・大量データ向き | ファイル暗号化・VPN |
| ECDSA | 公開鍵暗号(楕円曲線) | 短い鍵長で高い安全性 | スマホ・TLS 1.3 |
| Kyber(ML-KEM) | 耐量子暗号 | 量子コンピュータ対策 | 将来の標準候補 |
実際の通信では、RSA単独ではなく「RSAでAESの鍵を安全に交換 → AESで大量データを暗号化」というハイブリッド方式が主流です。
RSAの動作フロー(暗号化通信)
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 8017 | PKCS #1: RSA暗号化の標準仕様(パディング方式・署名方式を定義) |
| RFC 5958 | 秘密鍵の格納形式(One Asymmetric Key)の標準 |
| RFC 5280 | X.509証明書の標準(RSAで署名される電子証明書のフォーマット) |
| RFC 8446 | TLS 1.3(RSA鍵交換からの移行とECDHEへの統一を規定) |
関連用語
- 公開鍵暗号 — RSAが実装する暗号の仕組み。秘密鍵と公開鍵をペアで使う方式
- TLS/SSL — Webの安全通信プロトコル。RSAを鍵交換・証明書検証に利用
- デジタル署名 — 秘密鍵で署名し公開鍵で検証する、なりすまし防止の仕組み
- PKI(公開鍵基盤) — 公開鍵の信頼性を保証する証明書発行・管理の仕組み全体
- AES — 共通鍵暗号の標準。RSAとハイブリッドで使われることが多い
- ハッシュ関数 — デジタル署名でRSAと組み合わせて使うデータ検証技術
- 楕円曲線暗号(ECDSA) — RSAの後継候補。短い鍵長で同等以上の安全性を持つ
- 認証局(CA) — RSAで署名した電子証明書を発行・管理する信頼の第三者機関