RSA con padding OAEP。非対称:公開鍵で暗号化、秘密鍵で復号化。
仕組み
公開鍵暗号は鍵のペアを使います。共有する公開鍵と、秘密にしておく秘密鍵です。一方の鍵で処理したものは、もう一方の鍵で解けます。
アルゴリズムに応じて、暗号化・復号(RSA-OAEP、X25519)や、署名・検証(RSA-PSS、ECDSA、Ed25519)ができます。鍵ペアを生成するか、自分の鍵を PEM 形式で貼り付け、モードを選ぶと、すべてブラウザー内で処理されます。
暗号化には受信者の公開鍵を使い、その受信者の秘密鍵だけが復号できます。署名には自分の秘密鍵を使い、誰でもあなたの公開鍵で検証でき、メッセージの作成者と完全性を確認できます。
例
RSA-OAEP · 2048 bits公開鍵で暗号化 → 秘密鍵で復号。Ed25519秘密鍵で署名 → 公開鍵で検証。Ed25519 は 32 バイトの鍵と 64 バイトの署名を使います。非常に高速かつ安全で、新しいアプリケーションに推奨されます。ECDSA · P-256楕円曲線による署名。同等の安全性で RSA よりコンパクトです。ユースケース
- 受信者の公開鍵で暗号化し、その受信者だけが読めるメッセージを送る。
- 文書やメッセージに署名し、あなたが送信者であり改変されていないことを誰でも確認できるようにする。
- ファイルやメッセージの署名を、その作成者の公開鍵で検証する。
- 暗号処理のフローを開発する際に、テスト用の鍵ペア(RSA、ECDSA、Ed25519、X25519)を生成する。
よくある質問
共通鍵暗号との違いは何ですか?
共通鍵は 1 つの共有鍵を使い、公開鍵暗号は公開鍵と秘密鍵のペアを使います。公開鍵暗号は鍵交換の問題を解決しますが低速なので、通常は共通鍵暗号と組み合わせて使います。
PEM 形式の鍵とは何ですか?
鍵をテキストで表したもので、-----BEGIN PUBLIC KEY----- や -----END PUBLIC KEY----- といったヘッダーの間に Base64 で符号化されます。鍵のエクスポート・インポートに使われる一般的な形式です。
RSA と楕円曲線はどう使い分けますか?
楕円曲線(ECDSA、Ed25519)は、同等の安全性で鍵がずっと小さく、性能も優れています。RSA は主に既存システムとの互換性のために現役です。
暗号化と署名の違いは何ですか?
暗号化は機密性を守ります。公開鍵で暗号化し、秘密鍵で復号します。署名は真正性を証明します。秘密鍵で署名し、公開鍵でメッセージが本物で改変されていないことを検証します。
RSA で大きなファイルを暗号化できますか?
直接にはできません。RSA は小さなデータしか暗号化できません。実際にはハイブリッド暗号を使い、内容を共通鍵アルゴリズムで暗号化し、その鍵だけを RSA で保護します。
私の鍵はサーバーに送信されますか?
いいえ。鍵の生成、暗号化、署名、検証はすべてブラウザー内で行われ、鍵がデバイスから外に出ることはありません。