未経験歓迎。PRUMは、未経験からの挑戦に本気で向き合い、成長を支える環境を整えています。未経験から本気で成長したい方は、ぜひPRUMへ。

なぜネットで安全に買い物ができるの?「ハイブリッド暗号方式」がデータを守る仕組み

なぜネットで安全に買い物ができるの?「ハイブリッド暗号方式」がデータを守る仕組み

ネットショッピングでクレジットカード番号を入力するとき、「この情報、途中で誰かに見られたりしないだろうか」と不安になったことはありませんか。実は、私たちが安心してインターネットを使えているのは、「暗号化」「デジタル署名」「認証局」という3つの技術が、裏側で連携して働いてくれているおかげです。

この記事では、データを守る2つの暗号方式の仕組みから、現代のWebを支える「ハイブリッド暗号方式」、そして「本人が送った」「改ざんされていない」を証明する仕組みまで、体系的に解説します。

この記事でわかること
  • 共通鍵暗号方式と公開鍵暗号方式、それぞれの仕組みとメリット・デメリット
  • 現代のWebが採用している「ハイブリッド暗号方式」の仕組み
  • 「デジタル署名」がハッシュ関数を使ってどう改ざんを見抜いているか
  • 「認証局(CA)」「PKI」が、鍵の持ち主を保証する仕組み

<この記事もおすすめ!>

PRUMの採用リンク

\株式会社PRUMのメディア/

インタグラムのロゴ

目次

そもそも「暗号化」とは何をしていること?

なぜインターネットでのやり取りには暗号化が必要なのか

インターネット上でのデータのやり取りは、手紙のように直接手渡しされるわけではなく、無数のネットワーク機器を経由して相手に届きます。もし、そのデータが読める状態(平文)のまま流れていたら、途中の経路上で誰かに盗み見られたときに、クレジットカード番号やパスワードといった重要な情報がそのまま漏れてしまいます。

「暗号化」とは、こうしたデータを、決められた規則(アルゴリズム)と「鍵」と呼ばれる情報を使って、第三者には意味の分からない文字列に変換する技術です。正しい鍵を持っている人だけが、暗号化されたデータを元の状態(復号)に戻せます。この「鍵」の扱い方の違いによって、暗号方式は大きく2つの種類に分かれます。

データを守る2つの暗号方式

共通鍵暗号方式:同じ鍵で施錠・開錠する仕組み(代表規格:AES)

「共通鍵暗号方式」は、データを暗号化するときと、元に戻す(復号する)ときに、全く同じ鍵を使う方式です。玄関の鍵に例えると分かりやすく、家を出るときに施錠した鍵と、帰宅して開錠する鍵が同じものである、というイメージです。代表的な規格には「AES」があり、現在世界中で広く使われています。この方式の最大のメリットは、計算がシンプルなため処理速度が非常に速いことです。大量のデータを扱う場面でも、効率よく暗号化・復号できます。

共通鍵暗号方式の弱点「鍵配送問題」

一方で、共通鍵暗号方式には大きな弱点があります。それは、暗号化する側と復号する側の両方が、事前に「同じ鍵」を安全に共有しておく必要があるという点です。もし、この鍵をインターネット経由でそのまま送ってしまったら、その送信中に鍵自体が盗まれてしまうかもしれません。

この「安全に鍵を届けるにはどうすればいいのか」という課題を「鍵配送問題」と呼びます。せっかく頑丈な鍵を作っても、鍵そのものを安全に渡す手段がなければ意味がない、というジレンマです。

公開鍵暗号方式:2つの鍵を使い分ける仕組み(代表規格:RSA)

この鍵配送問題を解決するために生まれたのが「公開鍵暗号方式」です。この方式では、「公開鍵」と「秘密鍵」という、ペアになった2つの異なる鍵を使います。公開鍵は誰に渡しても構わない「南京錠」のようなもので、秘密鍵はその南京錠を開けられる、本人だけが持つ「唯一の鍵」に例えられます。代表的な規格には「RSA」があります。

データを送りたい相手の公開鍵(南京錠)を使ってデータを施錠すれば、その南京錠を開けられるのは、ペアとなる秘密鍵を持つ本人だけです。

つまり、公開鍵はインターネット上で誰でも見られる状態で配っても安全というわけです。これにより、事前に鍵を安全に届けておく必要があった共通鍵暗号方式の弱点を克服しています。

公開鍵暗号方式の弱点「処理速度の遅さ」

万能に見える公開鍵暗号方式ですが、こちらにも弱点があります。共通鍵暗号方式に比べて、暗号化・復号の計算が非常に複雑なため、処理に時間がかかってしまうのです。ネットショッピングのように、動画や画像を含む大量のデータをやり取りする場面で、すべてを公開鍵暗号方式でまかなおうとすると、通信が遅くなってユーザーの体験を損ねてしまいます。

現代のWebを支える「ハイブリッド暗号方式」

共通鍵と公開鍵の「いいとこ取り」という発想

「共通鍵は速いが鍵配送に弱い」「公開鍵は鍵配送に強いが処理が遅い」——この2つの弱点を補い合うために考え出されたのが「ハイブリッド暗号方式」です。名前の通り、共通鍵暗号方式と公開鍵暗号方式を組み合わせて使う仕組みで、現代のWeb通信(HTTPSなど)の多くが、この考え方をベースにしています。

実際の通信で起きている3ステップ

ハイブリッド暗号方式では、次のような手順でデータがやり取りされます。まず、実際にやり取りしたい大容量のデータ(例えばショッピングサイトでの注文内容)自体は、処理の速い「共通鍵」で暗号化します。

次に、その共通鍵そのものを、処理は遅くても安全性の高い「公開鍵」で暗号化して、相手に送ります。最後に、受け取った相手は、自分の「秘密鍵」を使ってその共通鍵を復号し、手に入れた共通鍵を使って、本体のデータを高速に復号します。

つまり、「重い荷物(本体データ)は速い方法(共通鍵)で運び、その荷物の鍵(共通鍵そのもの)だけを、安全な方法(公開鍵)で別送する」というイメージです。この仕組みによって、公開鍵暗号方式の「安全な鍵配送」というメリットと、共通鍵暗号方式の「高速な処理」というメリットを、両方同時に実現しているのです。

PRUMを見てみる

「本人が送った」「改ざんされていない」を証明する仕組み

ハッシュ関数:データの「指紋」を作る仕組み

ここまでは、データの中身を第三者に読まれないようにする「暗号化」の話でした。しかし、インターネット上でのやり取りには、もう1つ重要な課題があります。それは、「このデータは本当に本人が送ったものか」「途中で誰かに書き換えられていないか」を確認することです。この課題を解決する鍵となるのが「ハッシュ関数」という仕組みです。

ハッシュ関数は、どんなに巨大なデータを入力しても、そのデータの内容に基づいて、決まった長さの一見規則性のない文字列(ハッシュ値)を出力する計算方法です。この仕組みの重要な性質は、元のデータをたった1文字変更しただけで、出力されるハッシュ値が全く別のものに変わってしまう点です。この性質から、ハッシュ値は、そのデータが確かにその内容であることを示す「指紋」のような役割を果たします。

デジタル署名:ハッシュ関数と公開鍵暗号の組み合わせ技

このハッシュ関数と、先ほどの公開鍵暗号方式を組み合わせることで実現されているのが「デジタル署名」です。仕組みは次の通りです。まず、送信者は送りたい本文データからハッシュ値を計算します。次に、そのハッシュ値を、自分だけが持つ「秘密鍵」で暗号化します。この暗号化されたハッシュ値こそが「デジタル署名」です。送信者は、本文データとこのデジタル署名をセットにして相手に送ります。

受信者は、受け取った本文データから、自分でもう一度ハッシュ値を計算します。それと同時に、送信者の「公開鍵」を使って、受け取ったデジタル署名を復号し、元のハッシュ値を取り出します。この2つのハッシュ値を見比べて、両方が完全に一致すれば、「確かに秘密鍵の持ち主(本人)が送ったものであり、送信途中で内容が改ざんされてもいない」ということが、数学的に証明されるのです。

その鍵は本物?「認証局(CA)」と「PKI」という信頼の仕組み

認証局が発行する「デジタル証明書」の役割

ここまでの話には、実は1つ大きな前提がありました。それは、「受信者が使った公開鍵が、確かに本人のものである」ということです。もし、悪意のある第三者が、なりすまして偽の公開鍵を配っていたらどうなるでしょうか。この「その公開鍵は本当にこの人(サイト)のものなのか」を保証する役割を担うのが「認証局(CA:Certificate Authority)」という、信頼できる第三者機関です。

認証局は、公開鍵とその持ち主の情報を厳格に審査した上で、両者を結びつけて証明する「デジタル証明書」を発行します。私たちがネットショッピングサイトなどにアクセスしたときに、ブラウザが安全性を確認できるのは、このデジタル証明書のおかげです。

PKI:認証局を頂点とした信頼の連鎖

こうした、公開鍵とデジタル証明書、そして認証局を中心に成り立っている社会的な仕組み全体を「PKI(公開鍵基盤:Public Key Infrastructure)」と呼びます。信頼できる認証局が公開鍵の持ち主を保証し、その証明書をブラウザやOSがあらかじめ信頼するというルールの積み重ねによって、私たちは見ず知らずのWebサイトであっても、安心して個人情報を入力できています。PKIは、いわばインターネット上の「身元保証の連鎖」を支える、目に見えないインフラだと言えるでしょう。

まとめ:暗号化・署名・認証、3つの技術が支える「安全なネット社会」

私たちが日常的に行っているネットショッピングやオンラインでのやり取りは、「共通鍵暗号方式」と「公開鍵暗号方式」を組み合わせた「ハイブリッド暗号方式」によって、データの中身を第三者から守られています。さらに、ハッシュ関数を使った「デジタル署名」によって「本人が送った、改ざんされていないデータであること」が証明され、「認証局」と「PKI」によって、そもそもやり取りしている相手の鍵が本物であることが保証されています。この3つの技術が連携して働いているからこそ、私たちは安心してインターネットを利用できているのです。

PRUMの採用リンク

Q&A|暗号技術・認証の仕組みに関するよくある質問

共通鍵暗号方式と公開鍵暗号方式の違いは何ですか?

共通鍵暗号方式は暗号化と復号に同じ鍵を使う方式で処理が高速ですが、鍵を安全に届ける「鍵配送問題」があります。公開鍵暗号方式は公開鍵と秘密鍵のペアを使う方式で鍵配送の課題を解決できますが、処理速度は遅くなります。

ハイブリッド暗号方式とは何ですか?

共通鍵暗号方式と公開鍵暗号方式を組み合わせた方式です。大容量のデータ本体は高速な共通鍵で暗号化し、その共通鍵自体を安全な公開鍵で暗号化して送ることで、速度と安全性を両立しています。

デジタル署名は何を証明しているのですか?

送信者本人が送ったものであること、そして送信途中でデータが改ざんされていないことを証明しています。ハッシュ関数で作った「データの指紋」を秘密鍵で暗号化する仕組みによって成り立っています。

認証局(CA)やPKIとは何ですか?

認証局は、公開鍵とその持ち主が本物であることを審査し、デジタル証明書を発行する第三者機関です。PKIは、認証局を中心とした信頼の連鎖によって、インターネット上での身元保証を成り立たせている仕組み全体を指します。

AESやRSAとは何ですか?

AESは共通鍵暗号方式の代表的な規格、RSAは公開鍵暗号方式の代表的な規格です。それぞれの方式の実装として、現在広く使われています。

この記事を書いた人

岩本 稜平のアバター 岩本 稜平 株式会社PRUM 代表取締役

株式会社PRUM 代表取締役。未経験から活躍できるエンジニアの育成・採用に力を入れ、一人ひとりの可能性を広げる環境づくりに取り組む。現場で培った知見をもとに、エンジニアのキャリアやAI、技術に関する情報を発信している。

目次