【あーるえすえー】

RSA(アールエスエー) とは?

最終更新:
💡 公開する鍵と、守る鍵で役割を分ける

公開鍵と秘密鍵の組を使う暗号アルゴリズム。暗号化・復号や電子署名の方式で使われ、大きな整数の素因数分解の難しさと関係する。安全な利用には鍵だけでなく適切な方式や実装が必要。TLS 1.3ではRSAによる鍵配送を使わないが、RSAの署名は利用できる。

📌 このページのポイント
RSA:暗号化と署名で、役割が違う暗号化:内容を隠す送り先の公開鍵暗号化する送り先の秘密鍵復号する電子署名:内容と署名を確かめる署名者の秘密鍵署名を作る署名者の公開鍵署名を検証する安全な方式・実装を使い、秘密鍵を守ろう
鍵の役割の模式図。実際の方式は符号化なども組み合わせます。TLS 1.3はRSA鍵配送を使いません。
ひよこ ひよこ
RSAには、どうして鍵が2つあるの?
ペンギン先生 ペンギン先生
公開してよい鍵と、秘密に守る鍵を組にして使うからだよ。暗号化の方式では、送り先の公開鍵を使って暗号化し、送り先が秘密鍵で復号する。誰でも投函できるポストと、開ける鍵のイメージで考えると分かりやすいね。
ひよこ ひよこ
電子署名も、同じ順番で使うの?
ペンギン先生 ペンギン先生
署名では秘密鍵で署名を作り、公開鍵で検証するよ。内容が署名と合っているかなどを確かめる用途で、内容を隠す暗号化とは役割が違う。単に秘密鍵で文章を暗号化する、という説明では、ハッシュや符号化を使う署名方式の動きを十分に表せないんだ。
ひよこ ひよこ
大きな数の計算が、安全性に関係する?
ペンギン先生 ペンギン先生
大きな素数を掛け合わせることに比べて、その積から元の素因数を求めることが難しい、という性質が関係するよ。小さい数で7×13=91を考えるのはイメージの例で、実用の鍵ではない。解読に何万年かかると一律に決めたり、RSAという名前だけで安全と判断したりはしないでね。
ひよこ ひよこ
HTTPSのデータは、全部RSAで暗号化する?
ペンギン先生 ペンギン先生
そうではないよ。TLS 1.3はRSAの鍵配送を使わず、RSAを署名に使うことはできる。RSAの暗号化と署名、通信のデータ暗号化は分けて考えよう。RSAの方式にもOAEPやPSSなどがあり、数式だけを自作するのではなく、利用する仕様に合った実装を使うことが大切だね。
ひよこ ひよこ
量子コンピュータの話も、関係するの?
ペンギン先生 ペンギン先生
十分な能力を持つ量子コンピュータは、RSAなどへの脅威になると考えられているよ。あらゆる量子コンピュータが今すぐ実用の鍵を解読できる、という意味ではない。NISTは2024年に最初の3つの耐量子暗号標準を確定した。利用箇所を把握し、製品やサービスの移行計画を確認することが大切だね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「RSA」って出てきたら「公開鍵と秘密鍵の組で、暗号化や署名をするための方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Rivest–Shamir–Adleman」 = リベスト・シャミア・エーデルマン
💬 開発者3人の姓に由来する名前。RFC 8017も3人の論文を参考文献として挙げているよ。

参考資料

← 用語集にもどる