「RSA暗号って何?どんな仕組みなの?」
RSA暗号は既に多くの現場で導入されており、高い信頼性と実績を持つ暗号アルゴリズムです。
デジタル署名(電子署名)やSSL証明書で、相手先が本物であることを証明することも可能となっています。しかしながら、RSA暗号とはどのような技術なのかよく分かりませんよね。
そこで今回は、RSA暗号についての基本的な仕組みや、実際どのような現場で活用されているのか徹底解説。暗号が解読されるリスクについても説明していきます。
RSA暗号とは?
はじめにRSA暗号について詳しく見ていきましょう。
公開鍵暗号アルゴリズムの一種
RSA暗号とは、公開鍵暗号アルゴリズムの一種です。複雑な計算によりすぐには解読されない素因数分解の仕組みを応用しています。
大きな数字を素因数分解するには、総当たりで計算したとしても短時間で答えを出すには計算速度が高速なコンピューターが必要です。
また、RSA暗号を使うと通信相手が秘密鍵を持っていることを証明できた時のみ暗号を解読できるため、高いセキュリティを持つことになります。
SSL証明書、ドメイン認証、金融機関との取引、ECサイトなど、高度なセキュリティが要求される現場でRSA暗号が活用されています。
デジタル署名にも活用
また、RSA暗号は鍵の交換ができるだけではなく暗号化とデジタル署名が同時にできる優れた仕組みです。
このような仕組みは、RSA暗号が登場するまではなかったため、世界で初めて実現し運用されている暗号アルゴリズムとして今でも広く使用されています。
RSA暗号を導入しているサービスや商品の事例
以下に、RSA暗号を採用している代表的な事例をいくつか紹介します。
RSAは単独で使用されることは稀で、多くの場合、他の暗号化方式と組み合わせて使用される
ウェブブラウザとウェブサイト
RSA暗号は、HTTPS接続を確立する際のSSL/TLSプロトコルで重要な役割を果たしています。ユーザーがセキュアなウェブサイト(特にオンラインバンキングやeコマースプラットフォーム)にアクセスする際、RSA暗号が使用されて安全な接続が確保されます。
電子メールサービス
多くの電子メールプロバイダーは、メッセージの暗号化にRSA暗号を利用しています。例えば、Pretty Good Privacy (PGP)という広く知られた暗号化アルゴリズムもRSA暗号を使用しています。
VPNサービス
NordVPNやExpressVPNなどの人気VPNサービスは、ユーザーとVPNサーバー間の安全な接続を確立するためにRSA暗号アルゴリズムを使用しています。
ネット銀行
ネット銀行では、顧客のセキュリティを強化するために、RSA暗号ベースの暗号化と2段階認証などの追加セキュリティ対策を組み合わせて使用しています。
クラウドストレージサービス
多くのクラウドストレージプロバイダーは、保存されたデータの保護にRSA暗号を使用しています。
RSA暗号の歴史
RSA暗号が発明された時期は1977年です。インターネットの普及とともに広がり、安定した運用実績があります。
RSA暗号が登場してすでに30年以上経過していますが、今でもSSL・TLS・PKIなどの暗号に利用されており、高い安全性があるため中心的な基盤になっています。
ちなみに、RSA暗号のRSAとは発明者3人の頭文字を取って付けられた名前です。
発明者3人は、
- ロナルド・リベスト(Ronald Rivest)
- アディ・シャミア(Adi Shamir)
- レオナルド・エーデルマン(Leonard Adleman)
です。
簡単に解読できない
近年登場したスーパーコンピューターは高速計算が可能ですが、今現在ではまだ完全な解読は困難です。
その理由は、現在主流のRSA暗号の桁数は617桁(2048ビット)もあるため、そう簡単に解読できないからです。
なお、RSA暗号の鍵長は偶然決められているわけではなく、コンピューターの性能向上の進度に従って決められています。
鍵長が長すぎると、データの送信や復号に時間がかかってしまうので、適切な時間や長さでいえば、2048ビットが妥当です。
暗号化の必要性
デジタル時代においてインターネットを安心・安全に使うために、個人情報などの大切なデータを暗号化することはとても重要です。
ネットショッピングや会員サイトを使用する場合でも、個人情報やカード情報が第三者に漏洩したり盗まれたりする恐れがあるので、セキュリティへの十分な配慮が必要です。
セキュリティを疎かにしているサイト運営者は信頼を失うでしょう。大切な情報を守り、取引を円滑に進めるためにもRSA暗号の技術はとても重要なのです。
RSA暗号の解き方
RSA暗号の解き方について説明します。具体的に解読するには以下の手順を踏みます。
- 公開鍵(n, e)と暗号文Cが与えられます。
- 秘密鍵dを求める必要があります。dを求めるには: a) nを素因数分解してp, qを求めます。
b) φ(n) = (p-1)(q-1)を計算します。
c) ed ≡ 1 mod φ(n) を満たすdを求めます。これは拡張ユークリッド互除法で計算できます。 - 秘密鍵dが得られたら、以下の式で平文Mを復号できます: M ≡ C^d mod n
ただし、実際のRSA暗号では非常に大きな数が使われるため、nの素因数分解が困難になります。
具体的な例を挙げると、
- 公開鍵: n = 2987, e = 13
暗号文: C = 2242 - nを素因数分解: 2987 = 29 × 103
φ(n) = (29-1)(103-1) = 2856 - 拡張ユークリッド互除法で d = 2197 を求める
- 平文を復号:
M ≡ 2242^2197 mod 2987 ≡ 13
このように、秘密鍵dさえ求められれば、暗号文Cから平文Mを復元できます。
ただし、nの素因数分解や秘密鍵dの計算は現実的な時間では不可能です。スーパーコンピューターを使っても、何百万年(1億年以上とも言われる)もかかるからです。
この事実がRSA暗号の安全性の根拠となっています。
RSA暗号が解読される危険性はある?
解読される可能性は低い
RSAの鍵長は、2048ビットが標準です。この鍵長のRSA暗号を解読するには、現在のスーパーコンピューターであっても、何百万年もかかるといわれています。
実際に解読することは今のところ不可能ですが、将来登場するであろう量子コンピューターで計算すると、総当たり計算で解読できてしまう恐れはあります。
量子コンピューターは誰にでも使えるわけではありませんが、実用化されてしまえば今の鍵長(2048ビット)のRSA暗号では、いつかは解読されてしまうでしょう。
暗号解読を防ぐには
暗号の解読を防ぐには、現在2048ビットで設定されている鍵長をさらに長くする必要があります。鍵長あるいはデータ長が長いほど暗号強度は上がるからです。
ところが、暗号化や復号に時間がかかってしまうため、利便性が下がってしまうデメリットがあります。
こうした理由から、将来的に適切な鍵長にすることが定められています。今後は、2030年までは2048ビット、2050年までは3072ビットまで鍵長を長くなる予定です。
もし量子コンピューターの登場などでRSA暗号が使えなくなったときは、新しい暗号アルゴリズムの発明や複数の暗号アルゴリズムを使いセキュリティを高めるなど、何らかの代替手段が登場するかもしれません。
もし暗号が解読されたら
暗号が破られると、個人のIDやパスワード、クレジットカードや銀行口座情報などが悪意の第三者に盗まれ、悪用される確率が高まります。
そのため、暗号が破られると24時間以内に暗号や証明が失効されます。特に秘密鍵が流出してしまえば、ルート証明書やデジタル署名も一度破棄され再発行されることになるでしょう。
普段のメールやファイルのやり取りでは、あまり意識することのない暗号ですが、一度でもセキュリティの安全性が損なわれると便利なツールも使えなくなるので注意が必要です。
そもそも暗号化の仕組みとは?
RSA暗号についての基本知識が理解できたら、今度は一般的な暗号化の仕組みについて知っておきましょう。
暗号化の計算は、人間ではなくコンピューターによる高速処理で行われています。基本的には鍵を使うのが暗号方式です。
共通鍵暗号方式(秘密鍵暗号方式)
共通鍵暗号方式は、すでに相手に共通鍵を渡していることが前提です。全く知らない相手に共通鍵を渡すのは難しいため、RSA暗号では採用されていません。
不特定多数の相手と繋がるインターネットの世界では不向きです。
この暗号方式の特徴は、暗号化と復号に使用する鍵が同じものでなければなりません。鍵は公開されていない秘密鍵となり、特定の相手と通信をするために用いられます。
仕組みがシンプルで秘匿性も高く高速通信も可能ですが、利用範囲は限定されます。インターネットの広大な世界では、公開鍵暗号方式の一種であるRSA暗号が広く使用されています。
公開鍵暗号方式
公開鍵暗号方式は、暗号化する鍵と復号する鍵が異なるパターンの暗号方式です。
公開鍵と秘密鍵を作り送信者がメッセージなどを暗号化して、受け取った受信者がメッセージを復号して正しいメッセージを読み取ります。
2つの異なる種類の鍵を使用して運用するため、暗号化や復号には時間がかかります。
暗号化するための公開鍵は広く公開されていますが、復号するための秘密鍵は非公開なので、きちんと秘密が守られます。
公開鍵暗号方式は秘密鍵だけを厳重に管理すればよいため、インターネットの世界では広く普及している暗号方式です。
逆に自分だけが持つ秘密鍵で暗号化し公開鍵で復号する方法もあります。これはデジタル署名として正式なユーザーや本人の認証にも活用されています。
RSA暗号に代わるアルゴリズムの存在
RSA暗号に代わるアルゴリズムも数多く存在します。暗号強度の高い共通鍵暗号方式の中では、アメリカのDES(3DES)や公募により標準化されたAESなどがあります。
実用化されている公開鍵暗号方式の中では、楕円曲線を応用した楕円曲線暗号が有名です。
楕円曲線暗号は計算能力が低いコンピューターにも実装できる特徴があり、ビットコインにも採用されています。
また、共通鍵・公開鍵の両方のデメリットを補完するハイブリッド方式も存在しており、重要なメール送信などのシーンで活用されています。
まとめ
通信技術が高度化するにつれて、暗号アルゴリズムについての理解が今後ますます重要になっていきます。
何らかのミスで、機密情報がオープンになってしまっていてもすぐには気づきません。暗号が解読されたら、新たに証明書を取得したり、暗号鍵を再発行したりする手続きが必要です。
今一度、RSA暗号のアルゴリズムについて再確認し、よく理解して利用する必要があるでしょう。
また、将来さらに高速なコンピューターが出現して暗号アルゴリズムが解読されてしまう危険性があることも覚えておきましょう。