公開鍵暗号方式のRSA暗号とは?暗号の仕組み4つと応用事例を紹介
RSA暗号とは?
RSA暗号とは、複数ある公開鍵暗号のうちの1つであり、この暗号の発明者の頭文字をとってRSA命名されています。
情報セキュリティを保つために、暗号化は必須技術となっていますが、暗号化技術にはRSA暗号と同じ公開鍵方式のほかにも種類があります。
ここでは、RSA暗号のもととなる暗号化技術である公開鍵方式について解説します。
公開鍵暗号方式
公開鍵暗号方式とは、公開鍵を用いて暗号化を行い、秘密鍵を用いて復号する方式です。RSA暗号は一般的な公開鍵暗号方式と異なり、秘密鍵で暗号化し、公開鍵で復号することもできます。
RSA暗号では、よく知られている公開鍵暗号方式を使いながらも、公開鍵と秘密鍵の用途を変える変則的な暗号化も可能であるため、応用的な使い方ができる暗号化方式です。応用的な使い方では、安全性が損なわれる危険性も秘めています。
公開鍵
公開鍵暗号方式では、公開鍵と秘密鍵を一対として暗号化・復号を行います。このうち、公開鍵は、相手方に渡したり、公開したりする鍵で、いわば世間に対してオープンにしている鍵のことです。
公開鍵暗号方式で暗号化してデータを送る場合は、事前に相手の公開鍵を入手しておく必要があります。
秘密鍵
秘密鍵は、公開鍵方式の暗号化で使われる一対の鍵の中で、相手方に渡さず、鍵の管理者本人のみが保持する鍵のことです。一般的な公開鍵方式の暗号化では、相手が公開鍵を使って暗号化したデータを受け取った人の秘密鍵で復号します。
秘密鍵の漏洩が疑われる場合には、秘密鍵だけの再発行ではなく、公開鍵とセットで失効させて、新たな鍵セットを生成する必要があります。このとき、公開鍵は必要となる相手に再配布が必要です。
共通鍵暗号方式との違い
公開鍵方式の暗号化が公開鍵による暗号化と秘密鍵による復号で実現されるのに対し、共通鍵暗号化で使われる鍵は1つだけです。
共通鍵暗号方式として有名なのはインターネットのセキュアサイトで用いられているSSLです。SSLでは公開鍵暗号方式を使って「共通鍵」となる鍵をサイトの閲覧者と共有します。共有した共通鍵により、共通鍵暗号方式で、情報の暗号化を行って通信が行われます。
RSA暗号の仕組み4つ
RSA暗号とは、公開鍵方式の暗号化の1つであると説明しましたが、公開鍵方式の暗号化の中で最初に実用化された方式でもあります。
ここでは、RSA暗号による暗号化の仕組みについて、順を追ってみていきましょう。RSA暗号化を導入する手順にもなるので、実業務をイメージしながら参照すれば実践に役立ちます。
RSA暗号の仕組み1:公開鍵と秘密鍵のペアを作る
RSA暗号には、公開鍵と秘密鍵のセットが必要となるため、暗号化をする前に公開鍵と秘密鍵を生成する作業が必要になります。
RSA暗号は、オイラーの定理と2つの素数を使ったアルゴリズムで生成されています。まず、大きな素因数2つを用意し、これらの素因数から公開鍵と秘密鍵を生成します。この技術は、大きな数の素因数分解が難しいということを、安全な暗号化であることの裏付けとしています。
RSA暗号の仕組み2:秘密鍵を作る
公開鍵方式の秘密鍵は、公開鍵を生成するときに使用した素数(p,q)と公開鍵として生成した値(e)を使って生成します。
公開鍵と秘密鍵の値を乗じた値を2つの素数を乗じた値で除した結果が「あまり1」となるように秘密鍵の値を設定します。
秘密鍵をdで表すと、ed÷(p-1)(q-1)=Xあまり1となるdをみつけることになります。除算結果(X)がいくつかは問題にならないので、dの候補は複数個あります。
RSA暗号の仕組み3:暗号化する
データの送り手側ではデータを渡す相手の公開鍵を使って暗号化します。
暗号化対象のデータは公開鍵のnよりも小さい値でなければならないという制約がありますが、対象データを公開鍵のeを使ってべき乗し、これを公開鍵のnで除した値が暗号化した値になります。
式で表すと、暗号化対象データをXとした場合、「暗号文=平文のe乗 mod n」となります。modは剰余を表します。
RSA暗号の仕組み4:復号する
暗号化データを受け取った側では、自分の秘密鍵を用いて復号します。復号技術としては、暗号文を秘密鍵(d)でべき乗し、公開鍵nで除したあまりが平文になります。
式で表すと、「平文=暗号文のd乗 mod n」となります。moは剰余を表します。
公開鍵の値と秘密鍵の値に具体的な数値を用いて、暗号化技術の検証をしてみると、公開鍵方式による暗号化・復号に対する理解が深まります。
RSA暗号の応用事例
RSA暗号は、世界で最初に実現された公開鍵方式の暗号化技術ということもあり、多くの場面に応用されています。
RSA暗号が応用されているのは、公開鍵方式なので使いやすいというだけでなく、公開鍵方式の暗号化・復号に用いる鍵を逆に使えるということもポイントになっています。
ここでは、RSA暗号が応用して使われている事例を紹介します。
通信の暗号化
WebサーバーとWebブラウザ間のHTTP通信を暗号化するSSLという通信プロトコルでは、RSA暗号の技術が応用されています。また、SSLの技術はHTTP通信だけでなくファイル転送のFTP技術にも使われています。
SSLの通信プロトコルを利用するWebブラウザには、電子証明書と呼ばれる公開鍵が組み込まれています。秘密鍵で暗号化されたサーバーからの情報を受け取り、ブラウザの公開鍵で復号して参照できる仕組みです。
デジタル署名
デジタル署名ではRSA暗号の秘密鍵で暗号化し、公開鍵で復号できるという技術を応用しています。
メールの送信者は自分の秘密鍵で署名を暗号化し、受信者へ送付します。受信者は送信者の公開鍵を使い、復号して署名を表示させます。発信者側の情報は秘密鍵で暗号化されているので、当人の署名である証明になります。
RSA以外の暗号3つ
情報を暗号化してやり取りする技術はRSA暗号だけでなく、他にも多く用いられている暗号化技術が複数あります。
ここでは、RSA暗号以外の3つの暗号化技術について紹介します。
RSA以外の暗号1:DES暗号
DES暗号とは共通鍵暗号方式の暗号化技術です。
64ビットの共通鍵を使い、平文を複雑な処理で暗号化します。復号は、暗号化の際に行った複雑な処理を、同じ共通鍵を使って逆順序で行います。また、DES暗号には、DESの暗号化処理を3回行って暗号強度を強化する3DES(トリプルDES)という暗号化方式もあります。
RSA以外の暗号2:AES
AESとはDES暗号に代わる共通鍵暗号方式として標準化された暗号化技術です。
AESは、実用化されている暗号化方式の中で、暗号強度の信頼性が高いため、無線LANで用いる暗号化通信のスタンダードにもなっています。
DES暗号では鍵長が短いことが弱点になっていましたが、AESでは、128bit、192bit、256bitから選べるため、強度が高くなっています。
RSA以外の暗号3:楕円曲線暗号
楕円曲線暗号は公開鍵方式の暗号化技術として用いられている楕円曲線を利用した暗号アルゴリズムです。
楕円曲線を利用した暗号アルゴリズムでは、楕円曲線上の離散対数問題を暗号化の安全性の根拠としています。楕円曲線暗号は、RSA暗号に比べ、鍵長が短くても安全性を確保できるため、低いスペックのコンピューターでも使えるという利点があります。
RSA暗号の仕組みを知ろう
インターネットの普及により、さまざまな情報がネットを介してやり取りされており、情報の漏洩を防ぐために、暗号化は必須の技術となっています。もし、RSA暗号が理解できていれば、インターネット通信における暗号化手順の意味も理解できるはずです。
RSA暗号の仕組みを理解したうえで、日々の情報には暗号化を使ったセキュアなやり取りを心がけましょう。
FEnetを運営しているネプラス株式会社はサービス開始から10年以上
『エンジニアの生涯価値の向上』をミッションに掲げ、
多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
ネプラス株式会社はこんな会社です
秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
インフラ業界に特化
ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。
業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。
-
正社員なのにフリーランスのような働き方
正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。
プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。
-
大手直取引の高額案件
案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。
Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。
-
スキルアップ支援
不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。
受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など
※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。
-
現給与を保証します!※
前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。
※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。
-
インセンティブ制度
ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。
取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。
-
社会保険・福利厚生
社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。
さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。
-
東証プライム上場企業グループ
ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
ネプラス株式会社に興味を持った方へ
ネプラス株式会社では、インフラエンジニアを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
オンライン面接も随時受付中。ぜひお気軽にご応募ください。
新着案件New Job
-
【高額年収】/【CCNA取得者歓迎】/ネットワークの構築/BIG-IP/東京都千代田区/【WEB面談可】/在宅ワーク/20代~30代の方活躍中
年収540万~540万円東京都千代田区(神保町駅) -
東京都中央区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/在宅ワーク
年収600万~600万円東京都中央区(小伝馬町駅) -
【高額年収】/インフラ構築支援/東京都港区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/在宅ワーク
年収960万~960万円東京都港区(新橋駅) -
ガバナンス推進、セキュリティ基盤支援/東京都港区/【WEB面談可】/在宅ワーク/20代~40代の方活躍中
年収780万~780万円東京都港区(新橋駅) -
カー用品販売会社の情報システム運用/東京都千代田区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/テレワーク
年収576万~576万円東京都千代田区(水道橋駅) -
ネットワーク構築、検証/東京都渋谷区/【WEB面談可】/テレワーク/20代~40代の方活躍中
年収540万~540万円東京都渋谷区(渋谷駅)