RSA鍵ペア生成ガイド:公開鍵暗号と秘密鍵署名の完全な流れ

エンコード(更新: 2026年6月11日)

RSA鍵ペアとは

RSAは非対称暗号アルゴリズムで、一対の鍵を使用します:

用途 配布方法
公開鍵 (Public Key) 暗号化 / 署名検証 公開して配布可能
秘密鍵 (Private Key) 復号 / 署名 自分だけが保持

核心原則:公開鍵で暗号化したデータは秘密鍵でのみ復号でき、秘密鍵で署名したデータは公開鍵で検証できます。


鍵長の選択

長さ セキュリティレベル 用途
1024ビット ❌ 安全ではない レガシーシステム
2048ビット ✅ 基本的に安全 日常的な使用
3072ビット ✅ より高い安全性 中程度の機密データ
4096ビット ✅ 高安全性 高機密データ / 長期鍵

4096ビット鍵の生成は2048ビットの4〜8倍の時間がかかります。暗号化/復号も遅くなるため、必要に応じて選択してください。


鍵ペアの生成:ステップバイステップ

ステップ1:RSA鍵ペアツールを開く

RSA鍵ペアツール にアクセスし、鍵長を選択(2048または4096を推奨)。

ステップ2:鍵ペアを生成

「鍵ペアを生成」をクリック。ツールが自動的に生成します:

  • 公開鍵-----BEGIN PUBLIC KEY----- で始まるPEM形式テキスト
  • 秘密鍵-----BEGIN PRIVATE KEY----- で始まるPEM形式テキスト

ステップ3:鍵を保存

公開鍵 → あなたにデータを暗号化して送る相手に共有
秘密鍵 → 安全に保存、絶対に漏洩させない(Gitにコミットしない!)

PEM形式の説明

PEMはBase64エンコードされた鍵テキストです。主な形式:

-----BEGIN PUBLIC KEY-----      ← PKCS#8 公開鍵
MIIBIjANBgkqhkiG9w0BAQEFAAOC...
-----END PUBLIC KEY-----

-----BEGIN RSA PRIVATE KEY-----  ← PKCS#1 秘密鍵
MIIEpAIBAAKCAQEA0d7...
-----END RSA PRIVATE KEY-----

-----BEGIN PRIVATE KEY-----      ← PKCS#8 秘密鍵
MIIEvgIBADANBgkqhkiG9w0BAQEF...
-----END PRIVATE KEY-----

PKCS#8は汎用形式、PKCS#1はRSA専用形式です。最近のシステムはPKCS#8を優先します。


公開鍵暗号化 + 秘密鍵復号

RSA暗号化/復号ツール を使用:

  1. 平文を入力欄に貼り付け
  2. 「公開鍵暗号化」を選択
  3. 相手の公開鍵を貼り付け
  4. 暗号化をクリックして暗号文を取得
  5. 相手は暗号文を受け取り、秘密鍵で復号

秘密鍵署名 + 公開鍵検証

署名は「このメッセージは本当に私が送ったものです」を証明します:

  1. RSA暗号化/復号ツール で「秘密鍵署名」を選択
  2. メッセージと秘密鍵を入力
  3. 署名値を生成
  4. 相手があなたの公開鍵で署名を検証し、改ざんがないことを確認

RSA vs AES:どちらを使うべきか

シナリオ 推奨 理由
大容量ファイルの暗号化 AES RSAは遅すぎる
鍵交換 RSA 公開鍵でAES鍵を暗号化
デジタル署名 RSA 非対称の特性に最適
JWTトークン RSA サーバーが秘密鍵で署名、クライアントが公開鍵で検証

実務では組み合わせが一般的:RSAでAES鍵を伝送し、AESで実際のデータを暗号化(ハイブリッド暗号)。


よくある問題

問題 原因 解決策
復号失敗 鍵の不一致 公開鍵と秘密鍵が同じペアか確認
データが長すぎるエラー RSAには長さ制限がある AESを使うかセグメントに分割
形式解析エラー PEMヘッダ/フッタの欠落 完全にコピーしたか確認
生成が遅い 4096ビット鍵 正常です。まず2048ビットを試してください

まとめ

RSA鍵ペアは非対称暗号の基盤です。公開鍵暗号化と秘密鍵署名の流れをマスターし、鍵長のセキュリティ意味を理解することは、安全な開発に不可欠です。RSA鍵ペアツールRSA暗号化/復号ツール で、ブラウザ内で全工程を完結できます。

#RSA#密钥对#非对称加密#公钥#私钥