技術用語解説

RSA暗号とは?仕組みや安全に利用するポイント、他の暗号方式を解説

RSA暗号とは、素因数分解の困難さを安全性の根拠とする暗号技術のことです。公開鍵暗号方式で活用されており、鍵の長さに制限がなく強固なセキュリティを築ける点が特徴です。本記事では、RSA暗号の特徴や活用事例、RSA暗号以外の暗号方式について解説します。

目次

  1. 1RSA暗号とは
  2. 2RSA暗号を活用した公開鍵暗号方式の仕組み
  3. 3RSA暗号が活用されているサービスや商品の事例
  4. 4RSA暗号を安全に利用するポイント
  5. 5RSA以外の暗号方式
  6. 6まとめ

RSA暗号とは、素因数分解の困難さを安全性の根拠とする暗号技術のことです。公開鍵暗号方式で活用されており、鍵の長さに制限がなく強固なセキュリティを築ける点が特徴です。1977年に開発された暗号ですが、現代でもWebブラウザやインターネットバンキング、ブロックチェーンなど、さまざまなシーンで活用されています。

本記事では、RSA暗号の特徴や活用事例、RSA暗号以外の暗号方式について詳しく解説します。RSA暗号について知りたい方は、ぜひ参考にしてください。

RSA暗号とは

RSA暗号とは

RSA(Rivest-Shamir-Adleman)暗号とは、素因数分解の仕組みを用いた暗号技術のことです。開発者である以下3名の頭文字を取って命名されました。

  • Ronald Rivest
  • Adi Shamir
  • Leonard Adleman

公開鍵暗号方式を最初に実用化したものとして1977年に発明され、その後開発された多くの暗号技術にも影響を与えています。公開鍵暗号方式とは、暗号化と復号にペアとなる2つの鍵を使用する暗号通信方法のことです。詳細は以下をご覧ください。
⇒公開鍵暗号方式とは?仕組みやメリットなどをわかりやすく解説

ここからは、RSA暗号が生まれた背景と特徴について解説します。

RSA暗号が生まれた背景

RSA暗号が生まれた背景には、共通鍵暗号方式における秘密鍵の配布と管理の問題があります。RSA暗号が開発されるまでは、暗号化と復号に同じ鍵(秘密鍵)を使う暗号方法である共通鍵暗号方式が用いられていました。
ただ、共通鍵暗号方式の場合、秘密鍵が流出すれば簡単に暗号を解かれてしまうため、安全な鍵の輸送や管理に多くの労力とコストが割かれており、この問題を解決する目的でRSA暗号が開発されました。

なお、共通鍵暗号方式に関する詳細は以下をご覧ください。
⇒共通鍵暗号方式とは?種類やメリット・デメリット、他の暗号化技術も解説

RSA暗号の特徴

RSA暗号における最大の特徴は、強固なセキュリティです。RSA暗号で生み出される鍵の長さには制限がなく、安全性が高い暗号を生成できます。万が一、悪意ある第三者が総当たり攻撃で暗号を解こうと思っても、鍵が長ければその分莫大な時間がかかります。
RSA暗号が開発された当初は、計算量が多く処理に長時間かかる課題がありましたが、近年はコンピューターの処理能力が向上したため、問題なく活用できるようになりました。Webサイトや電子メール、VPNサービスなどさまざまなシーンで活用されています。

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を準備する

手順3のお互いに素とは、2つの正の整数を両方割り切る数の中で一番大きいものである最大公約数が1ということです。用意したn・eを公開鍵としてデータの送信者に送り、p・q・dは秘密鍵として公開せずに保持します。

2.送信者による暗号化

続いて、送信者は受信者から受け取った公開鍵のnとeを活用して、以下の手順でデータを暗号化します。

  1. 送信データをx<nである自然数xとする
  2. xをe乗して、その結果をnで割った余りをyとする
  3. y(暗号文)を受信者に送る

3.受信者による復号

最後に、受信者は受領した暗号文yを以下の手順で復号します。

  1. yをd乗する
  2. 1の結果をnで割る

手順2の余りが復号したデータになります。

RSA暗号が活用されているサービスや商品の事例

RSA暗号が活用されているサービスや商品の事例

続いて、RSA暗号が活用されているサービスや商品の事例を紹介します。

ブラウザやWebサイト

RSA暗号は、インターネット通信を安全にするためのプロトコルであるSSLやTLSにおいて、セキュリティ保証機構の一部を担っています。具体的には、RSA暗号によりブラウザとサーバー間で行われる通信が暗号化され、第三者による情報の窃盗や改ざんを防いでいます。

なお、SSLとTSLの詳細は以下をご覧ください。
⇒SSLとは?仕組みや役割、メリット・デメリットを簡単に解説
⇒TLSとは?SSLとの違いやメリット・導入方法などを解説

電子メール

多くの電子メールプロバイダーにおけるメッセージ内容の暗号化にも、RSA暗号が用いられています。また、メッセージアプリやチャットサービスにおけるメッセージの暗号化にも、RSA暗号が採用されています。

VPNサービス

NordVPNやExpressVPNなど、世界で多数のユーザーが利用するVPNサービスでもRSA暗号が利用されています。VPNとは、仮想の専用回線を活用して安全な通信を実現する技術のことです。

インターネットバンキング

インターネットバンキングでも、顧客情報に対するセキュリティや不正の防止などを目的に、RSA暗号をベースにした暗号化技術が使われています。また、インターネットバンキングでは、2段階認証など追加のセキュリティ対策も実施しています。

クラウドストレージサービス

RSA暗号は、クラウドストレージにも活用されています。具体的には、クラウドストレージにおけるデータの保護で、RSA暗号が有効活用されてます。

ブロックチェーン

近年登場したブロックチェーンも、RSA暗号が活用されている事例の一つです。ブロックチェーンとは、トランザクションの完全性と追跡性の提供が特徴のテクノロジーのことです。
各トランザクションのセキュリティと認証の保証で、RSA暗号がトランザクションのデジタル署名生成と検証に使用されます。RSA暗号は、ブロックチェーンにおける信頼性・透明性の確保に貢献して、潜在的な不正の防止を行っています。

デジタル署名

デジタル署名において、RSA暗号は暗号化やデジタル署名の生成・検証に利用されています。RSA暗号を用いてユーザーの身元を保証することにより、メッセージの改ざんを防止しています。

IoTデバイスセキュリティ

近年注目が高まり、普及が進んでいるIoTデバイスセキュリティにも、RSA暗号が活用されています。具体的には、IoTデバイス間の通信データを守り、不正なアクセスや改ざんからデバイスを保護しています。

RSA暗号を安全に利用するポイント

RSA暗号を安全に利用するポイント

続いて、RSA暗号が解読される可能性と安全に利用するポイントを解説します。

RSA暗号が解読される可能性はある?

高性能で高速計算が可能なスーパーコンピューターが近年登場しましたが、RSA暗号の完全な解読には何百万年もかかるとされています。RSA暗号で用いられる鍵長は2,048ビット(617桁)であるため、簡単には解読できません。

また、RSA暗号の場合鍵長に制限がなく、コンピューターの性能向上とともに長くしています。コンピューターの性能が向上していない状態で鍵を長くし過ぎると、データの送信と復号に時間がかかり過ぎるため、現状では2,048ビットが最適とされています。

RSA暗号の解読方法

RSA暗号の解読には秘密鍵dが必要です。公開鍵n・eと暗号文Cが与えられているため、dを求めるにはnを素因数分解してpとqを求めます。
まずは「φ(n)≡(p-1)(q-1)」を計算して「ed≡1mod φ(n)」を満たすdを拡張ユークリッド互除法で計算します。dが解読できたら「M≡C^d(mod n)」で平文Mを解読可能です。

鍵を長くする

RSA暗号の安全性は鍵長に比例します。鍵が短ければ解読される可能性はあり、実際に2005年には663ビットの暗号が破られました。RSA暗号の安全性を向上させるには、鍵を長くすることが重要です。ただ、鍵を長くし過ぎると効率が低下するため、破られずかつ効率的に処理できる鍵長の見極めが必要です。

鍵を厳重に保管する

鍵の厳重な保管も、RSA暗号の安全な利用には欠かせません。鍵を盗まれてしまえば、簡単に暗号を解かれてしまいます。以下を実施して鍵の適切な管理を行いましょう。

  • 正確なキーペアの生成
  • 安全なキーストレージの利用
  • 適時キーリフレッシュの実施
  • 適切なキーの削除

RSA以外の暗号方式

RSA以外の暗号方式

最後に、RSA以外の暗号方式を紹介します。

DES

DES(Data Encryption Standard)は、鍵長の56ビットとパリティチェック用の8ビット計64ビットごとにデータを区切り、それをまとめて暗号化するものです。パリティチェックとは、データの送信が問題なく行われたかを確認する仕組みのことです。考案された当初は安全性が高いと考えられていましたが、問題が見つかったため以下2つの方法が登場しました。

  • 2DES:DESの処理を2重にして、鍵を計112ビットにする
  • 3DES:それぞれ別の鍵を用いる暗号化と復号を3回繰り返す

AES

AES(Advanced Encryption Standard)はDESの後継的存在で、鍵長を128・192・256から選んで利用するものです。2001年にアメリカの国立標準技術研究所が採用してから、現在まで広く活用されています。

なお、AESの詳細を知りたい方は以下をご覧ください。
⇒AESとは?他の暗号化方式との違いや使用方法を解説

楕円曲線暗号

楕円曲線暗号(ECC)は、楕円曲線上の離散対数問題とよばれる数学上の問題を安全性の根拠にするものです。楕円曲線とは「y2=x3+ax+b」という曲線で表される曲線のことです。楕円曲線暗号は、RSA暗号よりも短い暗号鍵で同程度のセキュリティ強度を得ることができ、暗号化と復号をするための計算回数も少なくて済む特徴があります。

ハイブリッド暗号

ハイブリッド暗号は、公開鍵と共通鍵を組み合わせたものです。公開鍵暗号方式では、復号するための鍵を他に送るわけではないため第三者に盗まれるリスクが低いものの、データ処理に時間がかかる特徴があります。一方、共通鍵暗号方式の場合、暗号化と復号に同じ鍵を使うためデータ処理の時間が短くて済みますが、鍵を共有する過程で盗まれるリスクがあります。ハイブリッド暗号は、公開鍵暗号方式の安全性と共通鍵暗号方式の処理速度を兼ね備えた暗号方式です。

ディフィー・ヘルマン暗号

ディフィー・ヘルマン暗号は、公開鍵を交換する方法として最初に考案された暗号方式です。共通鍵を直接受け渡すのではなく、鍵を生み出す数値を共有して、その数値計算により共通鍵を生成することが特徴です。秘密鍵と公開鍵を設定して、それらを組み合わせて計算した余りから共通鍵を生成します。

まとめ

まとめ

RSA暗号とは、素因数分解の仕組みを用いた暗号技術のことです。公開鍵暗号方式で活用されており、鍵の長さに制限がなく強固なセキュリティを築ける点が特徴です。ただ、RSA暗号の利用にもリスクは存在します。具体的には、鍵が短かったり鍵自体を盗まれたりすれば、暗号を解読されてしまうため注意しましょう。