インフォメーションセンター

RSA暗号化とは?他の暗号化方式との比較

世界はコミュニケーションで成り立っています。誰もが情報を送受信する必要があります。しかし残念ながら、デジタル化とインターネットへのアクセスの容易さによって、プライベートな通信を送信する必要が生じています。オンライン上の誰もが信頼できるわけではないからです。

人類は常に、意図した受信者だけが解釈できる隠されたメッセージを送る方法を編み出してきました。このような通信形態は暗号文と呼ばれ、情報を特定の解読キーや方法でなければ解読できない暗号に変換することを指します。

暗号化は、機能的で安全なデジタル社会にとって不可欠です。悪意のある攻撃者が、インターネット接続を使用して個人情報や機密情報に簡単にアクセスすることを防ぎます。5,000万から6,000万件のデータ侵害の平均総コストが2022年に3億8,700万ドルに達したことを考えると、これは重大な懸念です。

RSA暗号化は、公開鍵アルゴリズムを使用してプライベートメッセージを復号化するための暗号システムの1つです。それが何であるかをよりよく理解するために、「データ暗号化と公開鍵暗号化アルゴリズムとは何か」という問いに答えてみましょう。

データ暗号化とは

データの暗号化、または暗号化とは、情報を暗号文に偽装することです。暗号文は、権限のない人には理解できません。一方、解読または復号化には、暗号文を元の形式に変換することです。手作業による暗号化の歴史はローマ帝国までさかのぼります。今日では暗号化は暗号学の基本プロセスであり、電子的方法による情報の偽装と同義です。

コンピューターはアルゴリズムを適用してデータを暗号化します。アルゴリズムとは、データブロックに対して特定のタスクを実行するための一連の命令または手順です。鍵とは、メッセージのユーザーまたは送信者と対象の受信者だけが知っている個人の暗号化名です。

現在、暗号化には主に2つのタイプがあります。

  • 対称暗号化ではAdvanced Encryption Standard (AES)のように、データの暗号化と復号化に同じ鍵が使用されます。
  • 非対称キー暗号化は、暗号化には公開鍵、復号化には秘密鍵のペアが必要なため、公開鍵暗号化とも呼ばれます。Rivest Shamir Adleman アルゴリズムは一般的な例です。

RSAが機能するのは、ランダムに選択された十分な長さの暗号化キーはほぼ難攻不落であるためです。

公開鍵暗号化アルゴリズム

これは、送信者と受信者が異なるキーを使用してデータを暗号化および復号化する非対称アルゴリズムとも呼ばれます。非対称アルゴリズムは、各送信者に鍵のペアを割り当てます。

  • 暗号化用の公開鍵
  • データを復号化するための秘密鍵

この2つの鍵はリンクされていますが、公開鍵から秘密鍵を取得したり、公開鍵を使用してデータを復号したりすることはできません。その名前が示すように、公開鍵は公開されていますが、秘密鍵は秘密であり、それを所有するユーザーだけが利用できます。つまり、誰でも公開鍵を使用してユーザーにメッセージを送信できますが、秘密鍵を使用してメッセージを復号化できるのは対象の受信者だけです。

RSA暗号化とは

RSAは最も一般的に使用されている公開鍵アルゴリズムです。RSAはRivest Shamir Adlemanの略称で、1977年に初めてこのアルゴリズムを公開した数学者と2人のコンピューター科学者の名前にちなんで名づけられました。

Secure Shell (SSH) SSL-TLSS/MIMEOpenPGPなどの多くのプロトコルは、RSA暗号化と安全なデジタル署名機能に依存しています。

RSA暗号化システムは、かつて暗号化における重大な問題であった問題、つまりコードを共有せずにコード化されたメッセージを送信するという課題を解決しています。

例えば、あなたが誰かに秘密を打ち明けたいとします。相手がすぐそばにいるなら、ささやくことができます。ただし、相手があなたから何マイルも離れている場合、それはできません。電話を使うか、書き留めて郵送する必要があります。残念ながら、このような通信チャネルは安全ではありません。十分な動機があれば誰でもメッセージを盗聴したり傍受したりすることができるからです。

盗聴を防ぐ解決策の1つは、メッセージを暗号化することです。つまり、コードを追加することで理解不能な情報に変えてしまうのです。十分に複雑なコードを使った場合、そのコードにアクセスできる者だけが元のメッセージにアクセス可能となります。そうしなければ解読できません。

事前に友人とコードを共有しておけば、元のコンテンツを読み取るコードを持っているのは2人だけなので、いつでも暗号化されたメッセージを送信できます。

しかし、事前にコードを共有していなかった場合はどうなるでしょうか。どうやって安全なコミュニケーションを確立しますか?これは、公開鍵暗号化スキームや、RSAなどの非対称キー暗号化を使用した暗号化が取り扱う根本的な問題です。

RSA暗号化を使用すると、ユーザーは公開鍵と呼ばれるコードを使用してメッセージを暗号化し、公開して共有できます。RSAアルゴリズムの数学的特性により、ユーザーが公開鍵を使用してメッセージを暗号化すると、秘密キーがなければメッセージを復号化できません。ユーザーは公開鍵と秘密鍵のペアを持っており、後者は秘密に保たれます。

公開鍵暗号化システムは、暗号化と復号化に同じキーを使用する対称鍵暗号化とは異なります。したがって、RSAはユーザーが事前に安全に鍵を配布していない場合の通信に役立ちます。

RSA暗号化の使用

RSA暗号化は、対称鍵暗号化よりもリソースを必要とし効率が低いため、メッセージ全体や、ファイル全体の暗号化には適していません。したがって、メッセージの整合性と信頼性を証明するために、RSA暗号化を他の暗号化システムと併用したり、デジタル署名の暗号化に使用したりするのが一般的です。

デジタル署名は、ファイルとドキュメントの認証と検証に役立ちます。公式文書やその他の重要文書の送信中の改ざんを防ぎ、偽造や改ざんを防ぎます。ただし、デジタル署名では、署名の送信元を認証するために、暗号化には秘密鍵が使用され、復号化には公開鍵が使用されます。

通常、ユーザーは非対称キーアルゴリズムを使用してファイルを暗号化し、RSA暗号化を使用して対称鍵を暗号化します。したがって、使用される対称鍵を復号化できるのはRSA秘密鍵のみであり、それがなければメッセージを復号化することはできません。

今日、OpenSSLcryptlibwolfCrypt、その他の暗号ライブラリなど、さまざまなシステムでRSA暗号は使用されています。RSAは、Web ブラウザ、電子メールチャット、VPN、その他の通信チャネルでも広く使用されています。

さらに、RSAはVPN サーバーとクライアント間の安全な接続を保証します。OpenVPNなどのプロトコルでは、ユーザーはTLSハンドシェイクでRSAアルゴリズムを使用して鍵を交換し、安全な通信チャネルを設定できます。

RSA暗号化の仕組み

RSA暗号化の土台となる数学についての詳細は非常に複雑です。暗号化におけるRSAアルゴリズムについて詳しく説明する前に、いくつかの概念について説明します。それは次のとおりです。

  • 落とし戸関数
  • 素数の生成
  • カーマイケルのトーティエント関数
  • 公開鍵と秘密鍵の生成

落とし戸関数

一方向の計算は簡単なのに、逆の計算は信じられないほど難しいという方程式は、トラップドア関数と呼ばれます。RSA暗号化の前提となるのは、一方向の計算は比較的簡単で、逆方向の計算はほぼ不可能であるアルゴリズムだということです。たとえば、2つの素数の積として543,111が与えられた場合、2つの素数が分かりますか?

電卓を使っても、どこから始めればよいのかわかりにくいですが、裏返すと次のような理由で作業がはるかに簡単になります。

  • 807*673 = 543,111

それでも、543,111 と素数が1つ与えられると、次のようにもう1つを理解するのは簡単です。

  • 543,111/807 = 673

RSA暗号化ではかなり大きな数値を使用します。たとえば、2048ビットRSAでは、鍵の長さは617桁になります。

落とし戸関数は、秘密鍵および公開鍵暗号化スキームがどのように機能するかの基礎となります。この特性により、秘密鍵を公開したり、メッセージを危険にさらしたりすることなく、公開鍵を共有できます。

素数の生成

鍵の生成はデータ暗号化の最初のステップであり、このプロセスでは素数性テストで選択された2つの素数 (p と q) が使用されます。これらは、Ranbin-Miller素数テストなど、暗号化用の素数を効率的に見つけるアルゴリズムです。鍵の解読を困難にするために、素数は大きく、比較的離れている必要があります。

公開鍵と秘密鍵の生成

RSA公開鍵は素数とモジュラスnです。モジュラス (mod) は、次のように、一方の辺または数値を他方で除算した後に残った剰余を意味するモジュロ演算です。

  • 10 mod 3 = 1 (3が10に3回入り、余りが1)

公開鍵を生成するための式は次のとおりです。

  • C = me mod n

すべての計算を実行し、公開鍵 (C=me mod n) を適用した後、最終的に暗号化されたデータは暗号文 (c) になります。

秘密鍵は、公開鍵で暗号化された暗号文を解読するためにユーザーが使用できる唯一の鍵であり、類似の鍵ペアである必要があります。秘密鍵はdとnで構成されており、nはすでにわかっているので、次の式を使用してdを簡単に計算できます。

  • d = 1/e mod λ(n)

上記のRSAアルゴリズムの例は、暗号化に関係する数学が複雑であり、正しく実行されれば安全なソリューションが得られることを示しています。

RSA暗号化の利点

RSA暗号を使うことには、以下のような多くの利点があります。

  • セキュリティ: RSA暗号化には、データ送信を保護する安全なアルゴリズムが備わっています。
  • 公開鍵暗号:RSAは、セキュリティのために公開鍵暗号アルゴリズムを使用しています。これは、データの暗号化と復号化に2つの異なるキーを使用することを意味します。
  • 鍵交換: RSAアルゴリズムは暗号化と復号化に2つの鍵を使用するため、実際にネットワーク経由で秘密鍵を送信することなく秘密鍵を交換できます。事前に復号鍵を送信しなくても、データの暗号化と安全な送信が可能になります。
  • デジタル署名: RSAアルゴリズムでは、送信者は秘密鍵を使用してドキュメントまたはメッセージに署名し、受信者は公開鍵を使用して署名を検証できるため、デジタル署名に最適です。

RSA暗号化の課題

RSAは、攻撃者の悪用能力により、場合によっては使用が制限されるという課題があります。例えば、暗号化アルゴリズムに長鍵を実装しています。AESアルゴリズムは解読不可能ですが、RSAのような非対称アルゴリズムでは、解読を困難にするのは鍵のサイズに依存しています。

したがって、長いRSA鍵は短いものよりも安全であり、解読が困難です。例えば、研究者たちは素因数分解を使って768ビットのRSA暗号鍵を2年で解読しました。

これには多大なリソースが必要でしたが、それが可能であるという事実は、RSA暗号システムの安全性に関する議論の中で常に考慮されるべきです。個人ではそのような暗号を解読する能力はないかもしれませんが、自由に使えるリソースが豊富である政府なら行うことができます。

NISTは最小鍵長2048ビットを推奨していますが、企業はセキュリティを強化するために409 ビット鍵長に注目しています。

RSAのその他の欠点には、次のようなものがあります。

  • 処理速度が遅い: RSAアルゴリズムは、大量のデータを扱う場合、他の暗号化アルゴリズムに比べて処理速度が遅くなります。大量のデータを定期的に暗号化および復号化する必要があるアプリケーションなどには、必ずしも適しているとは限りません。
  • キーサイズが大きい:RSA暗号化では、セキュリティを確保するために大きなキーサイズを使用する必要があります。したがって、より多くの計算能力、リソース、およびストレージが必要になります。
  • サイドチャネル攻撃に対する脆弱性:このアルゴリズムは、攻撃者がサイドチャネルから漏洩した情報を使用して秘密鍵情報を抽出する場合に脆弱です。これらのチャネルには、消費電力、タイミング分析、および電磁放射などがあります。
  • 弱い鍵の生成:たとえば、選択した2つの素数が近すぎる場合、または鍵ペアの1つを構成する数値の1つが小さすぎる場合、アルゴリズムは解きやすくなります。

RSA暗号化の安全性

前述の脆弱性にもかかわらず、RSAは、ユーザーが正しく実装し、長くて解読が困難な鍵を使用する限り、現時点では比較的安全に使用できます。適切なサイズの素数を使用していない場合、または他の脆弱性のある状態での実装は安全ではありません。

ユーザーが RSA暗号化アルゴリズムの弱点と潜在的な脆弱性を認識している限り、RSA暗号化アルゴリズムを鍵共有や、公開鍵暗号化を必要とするデジタル署名などのその他のタスクに安全に使用できます。

量子コンピューティングのような将来のテクノロジーは、暗号化におけるRSAアルゴリズムに影響を与えるでしょうか?

オンラインでのRSA暗号化は現時点では安全ですが、量子コンピューティングの出現により、将来的には課題が生じる可能性があります。量子コンピューターは、現在非常に難しいと考えられている特定の問題でも簡単に解決できます。困難さこそが暗号システムの安全性を高めるものであるため、現在のサイズのRSA鍵はさらに脆弱になると言っても過言ではありません。

量子コンピューターは整数因数分解問題を簡単に解くでしょう。ただし量子コンピューターは現在開発中で研究現場での使用に限定されているため、この未来はまだ遠いと言えます。サイバーセキュリティ業界の関係者も、ポスト量子の世界でセキュリティを確保するために、公開鍵アルゴリズムの改善に常に努めています。

最適非対称暗号化パディング (OAEP) は現在、RSA公開鍵暗号化の主要な標準パディングです。パディングにより、暗号化前のメッセージのフォーマットが可能になり、より高いセキュリティレベルを達成し、基本的な攻撃を排除できます。

結論

ベリタステクノロジーズは、米国に本拠を置く国際的なデータ管理会社です。当社は、お客様のデータ管理の課題を解決し、サイバー攻撃人的ミス、自然災害などの危険から重要なデータを保護できるよう取り組んでいます。

ベリタスは、あらゆる規模の組織がビジネスクリティカルなデータの保護と管理の複雑さを克服できるよう支援します。当社の統合製品ポートフォリオは、統合されたデータサービスと管理エクスペリエンスを提供し、比類のないエッジからクラウドまでのパフォーマンスと多用途性を実現します。

その他にも小規模企業向けの Veritas Backup Exec や、データストレージやディザスタリカバリ用のVeritas InfoScale など、最先端のソリューションを提供しています。当社のソリューションで、主要なデータプライバシー法であるHIPAAGDPR 、そしてCCPAなどの遵守が容易になります。


フォーチュン100企業の95%はベリタスのお客様で、 NetBackup™ は大量のデータを保護したい企業にとってナンバーワンの選択肢となっています。

ベリタスの総合的なデータ保護は、仮想、物理的、クラウド、従来のワークロードなどにわたっています。ベリタスのエンタープライズ企業向けデータ保護サービスをご覧ください。

 

よくある質問

暗号化とは、データを暗号文 (解読するには復号キーが必要な、ランダム化された読み取り不可能な形式) への変換を伴います。

開発者の名前にちなんで名付けられた RSA (Rivest-Shamir-Adleman) は、2つのリンクされているものの異なる暗号化鍵 (秘密鍵と公開鍵) を使用する非対称暗号化技術です。RSA暗号化では、逆の鍵を使用してデータの暗号化と復号化を行います。

RSAは、秘密鍵と公開鍵の2つの鍵を使用します。RSA秘密鍵はデジタル署名を生成し、公開鍵はデジタル署名を検証します。さらに、RSA公開鍵はAESまたはDESデータ鍵も暗号化する一方、RSA秘密鍵は回復用です。

RSA暗号化は、仮想プライベートネットワーク (VPN)、Web ブラウザ、電子メールサービスなど、さまざまな場所で使用されています。Pretty Good Privacy (PGP) アルゴリズムなどのよく知られている製品やアルゴリズムでもRSA暗号化が使用されています。

RSAは、財務情報などの重要な情報を保護し、クレジットカードなどの取引を保護します。また企業では、メールやWeb ブラウザ内の個人情報の暗号化にRSA暗号化は使用されています。

ベリタステクノロジーズは、企業がミッションクリティカルなデータを保護できるように、エンタープライズデータ管理用のソフトウェアソリューションを提供します。データ保護、コンプライアンスへの万全な対応、ストレージの最適化、クラウドデータ管理サービスも提供しています。

はい、暗号化により個人情報や機密データが保護されます。また、サーバーとクライアント間の通信と送信のセキュリティも強化されます。