RSA暗号とは
RSA暗号とは、素因数分解の困難さを安全性の根拠とする公開鍵暗号方式のアルゴリズムです。公開鍵と秘密鍵という異なる鍵を用いて暗号化と復号を行う仕組みで、暗号化だけでなくデジタル署名にも利用できます。
1977年にR. L. Rivest、A. Shamir、L. Adlemanの3名によって発明され、現在も広く使われている代表的な公開鍵暗号の一つです。
RSA暗号の仕組み
RSA暗号は、大きな整数を素因数分解することが極めて困難であるという数学的性質を利用しています。2つの大きな素数を掛け合わせて作られた数は容易に計算できますが、その結果の数から元の素数を求めることは非常に難しいという特徴があります。
この性質を利用し、公開鍵と秘密鍵を生成します。公開鍵は誰でも利用できますが、秘密鍵は所有者のみが保持します。公開鍵で暗号化されたデータは、対応する秘密鍵でのみ復号できます。
理論上は膨大な計算能力があれば解読可能ですが、現実的な時間内で解読することは極めて困難であるため、安全な暗号方式として利用されています。
公開鍵暗号方式の特徴
公開鍵暗号方式では、暗号化に使用する鍵(公開鍵)と復号に使用する鍵(秘密鍵)が異なります。公開鍵は第三者に公開されても問題ありません。
一方、共通鍵暗号方式は暗号鍵と復号鍵が同一であり、処理速度が速い点が特徴です。
以下の記事では、暗号化アルゴリズムについて詳しく解説しています。ほかの種類の暗号化方式も紹介しているので、興味がある方はあわせてご覧ください。
RSA暗号を使ったやり取りの仕組み
RSA暗号における、鍵を交換する仕組みを見ていきましょう。
1.受信者が公開鍵と秘密鍵を生成する
始めに、データを受信する側が公開鍵と秘密鍵を準備しなければなりません。以下の手順で鍵を生成します。
- 1.異なる2つの大きな素数「p」「q」を任意にとる
- 2.n=pqとする
- 3.(p-1)(q-1)と互いに素な自然数eを任意にとる
- 4.edを(p-1)(q-1)で割った余りが1となる自然数dを任意にとる
「互いに素」とは、最大公約数が1という意味です。こうして用意したnとeを公開鍵としてメッセージ送信側に渡します。p・q・dは秘密鍵であるため公開しません。では、上の手順の具体例を見ていきましょう。
- 1.p=7、q=5とする
- 2.n=7×5=35
- 3.(p-1)(q-1)=6×4=24なため、e=5とする
- 4.d=5とする。このとき、ed÷(p-1)(q-1)=1余り1となる
2.送信者がメッセージを暗号化する
次はメッセージの送信側が作業します。受信側から受け取った公開鍵であるnとeを使い、以下の手順でメッセージを暗号化しましょう。
- 1.送りたいメッセージを自然数xとする。ただしx<nとする
- 2.xをe乗し、これをnで割った余りをyとする
こうして算出されたyが暗号文です。これを受信側に送信します。では、上の手順の具体例を見ていきましょう。
- 1.x=12とする。これはx<nを満たす(n=35)
- 2.12を5乗し、これを35で割ると余りy=17となる
3.受信者がメッセージを復号する
最後に、受信側は送られてきた暗号文yを復号し、平文(暗号化されていないデータ)を得ます。解き方の手順は以下のとおりです。
- 1.yをd乗する
- 2.これをnで割った余りが平文xとなる
では、上の手順の具体例を見ていきましょう。
- 1.17を5乗する
- 2.これを35で割った余りが平文12となる
復号するにはdが必要ですが、これは受信者しか持たない秘密鍵であるため、第三者には復号されません。
第三者がdを得るにはpとqが必要ですが、これらも秘密鍵です。p×qで算出されるnは公開されていますが、nからpとqを逆算するには素因数分解をしなければなりません。ここで膨大な手間がかかるため、現実的な時間では第三者に解読されることがないとされています。
以下の記事では、公開鍵と秘密鍵について詳しく解説しています。公開鍵暗号方式についてより詳しく知りたい方は、あわせて参考にしてください。
RSA暗号のメリット・デメリット
RSA暗号は広く利用されている公開鍵暗号方式ですが、万能というわけではありません。安全性や利便性といった強みがある一方で、処理速度や将来的な課題も存在します。ここでは、RSA暗号のメリットとデメリットを整理します。
- ■メリット
- ●数学的根拠に基づく高い安全性(素因数分解の困難さを利用)
- ●公開鍵方式のため鍵配布が容易
- ●暗号化とデジタル署名の両方に対応可能
- ●長年の実績があり、多くの規格・システムで採用
- ■デメリット
- ●処理負荷が高く、大容量データの暗号化には不向き
- ●実運用では共通鍵暗号との併用が必要
- ●鍵長が長くなるため管理負荷が高い
- ●量子コンピュータ実用化による安全性低下の懸念
なお「鍵長」とは、暗号鍵のビット数のことで、一般的に数値が大きいほど解読が困難になり安全性が高まります。
RSA暗号と他の暗号方式との違い
暗号方式にはさまざまな種類があり、それぞれ特徴や用途が異なります。RSA暗号を正しく理解するためには、ほかの代表的な暗号方式との違いを把握することが重要です。ここでは、共通鍵暗号や楕円曲線暗号との違いを表にまとめました。
| 比較項目 | RSA暗号 | 共通鍵暗号(AESなど) | 楕円曲線暗号(ECC) |
|---|---|---|---|
| 暗号方式 | 公開鍵暗号方式 | 共通鍵暗号方式 | 公開鍵暗号方式 |
| 使用する鍵 | 公開鍵と秘密鍵(異なる鍵を使用) | 暗号鍵と復号鍵が同一 | 公開鍵と秘密鍵(異なる鍵を使用) |
| 処理速度 | 比較的遅い | 高速 | RSAより高速 |
| 鍵長 | 長い鍵長が必要(例:2048bit以上) | 比較的短い鍵長で高性能 | 短い鍵長で高い安全性を実現 |
| 主な用途 | 鍵交換・デジタル署名・暗号化 | 大量データの暗号化 | モバイル・IoT環境での鍵交換・署名 |
| 特徴 | 実績が豊富で広く採用 | 処理効率に優れる | 軽量で省リソース環境に適する |
RSA暗号の応用例
RSA暗号は公開鍵暗号方式で使われ、公開鍵で暗号化し、秘密鍵を持つ者のみが復号できる方法です。この仕組みは、逆の方向に使うことでデジタル署名に応用されています。
秘密鍵を持つ側が、秘密鍵によって自身の署名を暗号化します。署名を受け取った側が公開鍵によって署名を復号できれば、その署名が公開鍵と対になる秘密鍵で暗号化されたものだと判明するのです。
その結果、通信相手が秘密鍵を持つ正規の相手であることが証明されます。この特徴から、RSA暗号は暗号化やデジタル署名の規格として広く使われています。
RSA暗号技術を活用したセキュリティ対策
RSA暗号そのものはアルゴリズムですが、この技術はさまざまなセキュリティ製品やサービスに応用されています。ここでは代表的なものを紹介します。
電子契約サービス
契約書を電子化し、オンラインで締結するためのサービスです。電子署名法に準拠するため、RSA暗号などの公開鍵暗号基盤(PKI)を利用して、契約の法的有効性を担保しています。契約業務の効率化とコンプライアンス強化を同時に実現します。
メールセキュリティツール
ビジネスメールの盗聴や改ざん、なりすましを防ぐためのツールです。S/MIMEなどの規格に対応した製品では、RSA暗号を利用してメール本文の暗号化や電子署名の付与を行い、安全なメールコミュニケーションを実現します。
ファイル・データの暗号化ソフト
PC内のファイルやフォルダ、あるいは外部ストレージに保存された機密情報を保護するためのソフトウェアです。万が一、PCの盗難や不正アクセスが発生しても、データが暗号化されていれば情報漏えいを防げます。多くの製品が、RSA暗号を含む信頼性の高い暗号化技術を利用しています。
自社のセキュリティ要件に合った製品を選ぶためには、複数サービスを比較検討することが重要です。 ITトレンドなら、RSA暗号をはじめとした高度な暗号化技術に対応した暗号化ソフトの資料をまとめて無料で請求できます。製品選定にかかる時間と手間を大幅に削減できるため、導入検討をスムーズに進められます。
まとめ
RSA暗号は素因数分解に時間がかかることを利用した公開鍵暗号方式で、暗号化やデジタル署名などで活用されています。暗号化にはRSA暗号のほかにさまざまな方式があり、特徴や強みは異なるため自社に最適な暗号化方式を活用したソフトを導入するとよいでしょう。
「どんな観点で選べばいいかわからない」という方向けの診断ページもあります。
ITトレンドで過去に暗号化ソフトを資料請求した方のお悩みや要望から作成した簡単な質問に答えるだけで、最適なシステムを案内します。
無料で今すぐ利用できますので、下のリンクから診断を開始してください。
▶暗号化ソフト おすすめ比較・無料診断


