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暗号を活用したソフト
ITトレンドは、RSA方式を使った暗号化ソフト・暗号化サービスを多数紹介しています。数万円から利用できるソフトや高いセキュリティ、サポートに定評のある製品について、ランキング順に公開しています。使用感についての口コミもあるのでぜひ参考にして、気になるツールは資料請求をしてみてください。
RSA暗号について理解し、セキュリティの知識を深めよう
RSA暗号は素因数分解に時間がかかることを利用した公開鍵暗号方式で、暗号化やデジタル署名などで活用されています。暗号化にはRSA暗号のほかにさまざまな方式があり、特徴や強みは異なるため自社に最適な暗号化方式を活用したソフトを導入するとよいでしょう。
以下のボタンから、各社製品の資料を一括請求できます。まずはどのような特徴や機能を持った暗号化ソフトがあるか知り、製品を比較検討することからはじめるのがおすすめです。