RSA暗号とは
RSA暗号とは、素数を掛けあわせた数字の素因数分解の仕組みを利用した暗号技術の一つです。ここではRSA暗号の概要について詳しく解説します。
素因数分解が困難であることを利用したアルゴリズム
大きな数字を素因数分解するのは困難です。総当たりする以外に素因数を見つけ出す方法がないためです。したがって、コンピュータで素因数分解しようとしても、大きな数であれば膨大な時間がかかります。
この素因数分解の困難さを仕組みとして利用したのがRSA暗号です。RSAは発明した3人の名前「R. L. Rivest、A. Shamir、L. Adleman」に由来します。
素因数分解の難しさを安全性の根拠にするということは、逆にいえば素因数分解されてしまうと解読されるということです。膨大な時間を掛けてコンピュータで計算したり、量子コンピュータを活用したりすれば素因数分解されてしまいます。
しかし、それまでには情報が古くなり価値が失われているため、暗号として機能するのです。
公開鍵暗号方式のアルゴリズムの一種
暗号化方式には公開鍵暗号方式と共通鍵暗号方式の2つがあり、RSA暗号は公開鍵暗号に該当します。公開鍵暗号方式とは、暗号鍵と復号鍵が別々の暗号方式です。データを解読するために使うのは復号鍵であって、暗号鍵ではありません。つまり、暗号鍵は第三者に見られても問題ないということです。暗号鍵は第三者を含め誰にでも公開されて使われることから、公開鍵暗号方式と呼ばれます。
公開鍵暗号方式で使われる暗号アルゴリズムの種類はさまざまです。例えば、DH法は鍵を交換するためのアルゴリズムです。暗号化のアルゴリズムではないため、暗号化にはほかのアルゴリズムを使う必要があります。
RSA暗号も公開鍵暗号方式で使われるアルゴリズムの一種ですが、鍵の交換だけでなく暗号化とデジタル署名を実現するアルゴリズムです。暗号とデジタル署名を両方とも達成できるアルゴリズムとして、世界で初めて登場しました。
対して、共通鍵暗号方式は暗号鍵と復号鍵が同一であり、処理速度が速いことが特徴のアルゴリズムです。
以下の記事では、暗号化アルゴリズムについて詳しく解説しています。ほかの種類の暗号化方式も紹介しているので、興味がある方はあわせてご覧ください。
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暗号などの公開鍵暗号基盤(PKI)を利用して、契約の法的有効性を担保しています。契約業務の効率化とコンプライアンス強化を同時に実現します。
メールセキュリティツール
ビジネスメールの盗聴や改ざん、なりすましを防ぐためのツールです。S/MIMEなどの規格に対応した製品では、RSA暗号を利用してメール本文の暗号化や電子署名の付与を行い、安全なメールコミュニケーションを実現します。
ファイル・データの暗号化ソフト
PC内のファイルやフォルダ、あるいは外部ストレージに保存された機密情報を保護するためのソフトウェアです。万が一、PCの盗難や不正アクセスが発生しても、データが暗号化されていれば情報漏えいを防げます。多くの製品が、RSA暗号を含む信頼性の高い暗号化技術を利用しています。
自社のセキュリティ要件に合った製品を選ぶためには、複数サービスを比較検討することが重要です。 ITトレンドなら、RSA暗号をはじめとした高度な暗号化技術に対応した暗号化ソフトの資料をまとめて無料で請求できます。製品選定にかかる時間と手間を大幅に削減できるため、導入検討をスムーズに進められます。
まとめ
RSA暗号は素因数分解に時間がかかることを利用した公開鍵暗号方式で、暗号化やデジタル署名などで活用されています。暗号化にはRSA暗号のほかにさまざまな方式があり、特徴や強みは異なるため自社に最適な暗号化方式を活用したソフトを導入するとよいでしょう。
「どんな観点で選べばいいかわからない」という方向けの診断ページもあります。
ITトレンドで過去に暗号化ソフトを資料請求した方のお悩みや要望から作成した簡単な質問に答えるだけで、最適なシステムを案内します。
無料で今すぐ利用できますので、下のリンクから診断を開始してください。
▶暗号化ソフト おすすめ比較・無料診断


