本文へスキップ
にゃんこツール

RSA暗号化・復号(RSA-OAEP)

公開鍵(PEM)でテキストをRSA-OAEP暗号化してBase64にし、対応する秘密鍵(PEM)で復号します。暗号化にはブラウザ標準のWeb Crypto APIを使い、処理はすべてブラウザ内で完結します。入力したテキストや鍵がサーバーに送信されることはありません。鍵ペアは 鍵ペア生成 で作れます。パスワードで暗号化したい場合は テキスト暗号化・復号(AES) をご利用ください。

🔒 ブラウザ内で完結・入力データはサーバーに送信されません

使い方

  1. 「暗号化」か「復号」を選びます。
  2. 暗号化は公開鍵、復号は秘密鍵のPEMを鍵欄に貼り付けます。
  3. テキスト(復号では暗号文)を入力し、「暗号化する」または「復号する」を押します。
  4. 結果を「コピー」して使います。

注意事項

  • 平文の上限は鍵のビット数 ÷ 8 − 66 バイトです(RSA-2048で190バイト、3072で318バイト、4096で446バイト)。日本語は1文字3バイトで数えます。長いデータは、AESで暗号化して、そのAES鍵だけをRSAで暗号化する方法(ハイブリッド暗号)が一般的です。
  • 対応する鍵は、RSAの公開鍵(BEGIN PUBLIC KEY、SPKI)と秘密鍵(BEGIN PRIVATE KEY、PKCS#8)です。OAEPのハッシュはSHA-256固定のため、SHA-1など別設定の他ツールの暗号文は復号できないことがあります。
  • 秘密鍵は他人に見せないでください。本番で使う秘密鍵を入力するのは避け、動作確認やテスト用の鍵で使うのが安全です。入力内容はこのページ内にのみ保持され、送信・保存されません。
  • 暗号化のたびにOAEPのランダム値が加わるため、同じ入力でも毎回異なる暗号文になります。どれも秘密鍵で復号できます。

用語解説

RSA-OAEP

RSA暗号にパディング(OAEP)を組み合わせた方式です。ランダム値を加えるため、同じテキストでも毎回違う暗号文になり、安全性が高まります。

公開鍵・秘密鍵

公開鍵は暗号化専用で、公開して構いません。秘密鍵は復号に使う鍵で、持ち主だけが保管します。

PEM(SPKI・PKCS#8)

鍵をBase64のテキストで表した形式です。公開鍵は「BEGIN PUBLIC KEY」(SPKI)、秘密鍵は「BEGIN PRIVATE KEY」(PKCS#8)で始まります。

よくある質問

暗号化できるテキストの長さに上限があるのはなぜですか?

RSAは鍵の長さを超えるデータを一度に暗号化できず、OAEPのパディング分も差し引かれるためです。SHA-256のOAEPでは「鍵のビット数÷8−66」バイトが上限で、RSA-2048なら190バイト(日本語で約63文字)です。長いデータはAESで暗号化し、その鍵だけをRSAで暗号化してください。

「公開鍵が必要です」「秘密鍵が必要です」と出るのはなぜですか?

暗号化には公開鍵(BEGIN PUBLIC KEY)、復号には秘密鍵(BEGIN PRIVATE KEY)を使います。モードと鍵の種類が逆になっていると、このエラーになります。

どの形式の鍵が使えますか?

RSAの公開鍵(SPKI、BEGIN PUBLIC KEY)と秘密鍵(PKCS#8、BEGIN PRIVATE KEY)のPEMです。「BEGIN RSA PRIVATE KEY」(PKCS#1)やEC・Ed25519の鍵は使えません。「鍵ペア生成」ツールで作ったRSA鍵はそのまま使えます。

OpenSSLなど他のツールで作った暗号文を復号できますか?

OAEPのハッシュがSHA-256(MGF1もSHA-256)で、Base64にした暗号文であれば復号できます。SHA-1やPKCS#1 v1.5パディングで作った暗号文は復号できません。

同じテキストなのに暗号化のたびに結果が変わるのはなぜですか?

OAEPが暗号化のたびにランダムな値を加えるためで、仕様どおりの動作です。どの結果も同じ秘密鍵で復号できます。

このページをシェア

↑↓ 選択 Enter 開く Esc 閉じる