暗号化とは?

暗号化とは、データの内容を他人には分からなくするために情報を変換して隠す方法です。暗号化は、インターネットのセキュリティを確保するのに不可欠です。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • 暗号化の意味を理解する
  • データ暗号化の種類について知る
  • 現代のコンピューティングにおいて暗号化が重要な理由を知る
  • 暗号化がどのようにインターネット通信のセキュリティを確保するかについて説明する

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

Cloudflareの無料SSL/TLSを使用し、セキュリティと信頼を高めます。

暗号化とは?

暗号化とは、データをスクランブルすることで、許可された当事者のみが情報を理解できるようにする手法のことです。技術的に言うと、人間が読める平文を人間が理解できないテキスト(暗号文)に変換するプロセスのことです。簡単に言うと、暗号化とは、読めるデータを、でたらめなものに見えるように変更することです。暗号化には、暗号キー(暗号化されたメッセージの送信者と受信者同士が合意する数学的な値のセット)を使用する必要があります。

暗号化の仕組みとは?

暗号化は、暗号化アルゴリズムと鍵を使用してデータを変更する数学的なプロセスです。アリスがボブに「Hello」というメッセージを送る際に、そのメッセージの各文字をアルファベットの2つ後の文字に置き換えた場合を考えてみましょう。彼女のメッセージは「Hello」ではなく「Jgnnq」と表示されるようになっています。ボブは鍵が「2」であることを知っているため、彼女のメッセージを復号して「Hello」に戻すことができます。

今回アリスは、極めて単純な暗号化アルゴリズムを用いて、ボブへのメッセージを暗号化しました。より複雑な暗号化アルゴリズムを使用することで、メッセージをさらにスクランブル化することができます:

暗号化の例

暗号化されたデータはランダムに見えますが、暗号化は論理的に予測可能な方法で行われます。受け取った暗号化されたデータに対する正しい鍵を持っている相手は、データを解読して平文に戻すことができます。真に安全な暗号化は、第三者がブルートフォース(鍵を推測する行為)で暗号文を解読・破壊できる可能性が極めて低いような複雑な鍵を使用します。(アリスの最初の暗号化方式はすぐに破られてしまいます)

データは、保管時または転送時(ほかの場所に送信中)に「at rest(保存状態)」として暗号化することができます。

暗号技術における鍵とは?

暗号鍵は、データをランダムなデータに見えるように変換するために暗号化アルゴリズムにて使用される文字列です。物理的な鍵と同様に、データを施錠(暗号化)し、正しい鍵を持つ人だけが開錠(復号化)できます。

暗号化の種類

暗号化の代表的な2つの種類は対称鍵暗号方式と非対称鍵暗号方式です。非対称鍵暗号方式は公開鍵暗号方式とも呼ばれます。

対称暗号化方式では、鍵は1つしかなく、通信に関与するすべての当事者は、暗号化と復号化の両方に同じ(秘密)鍵を使用します。非対称暗号化方式(公開鍵暗号方式)では、2つの鍵が存在します。1つの鍵は暗号化に使用され、別の鍵は復号に使用されます。復号用の鍵はプライベートとして扱われますが(そのため「プライベートキー」と呼ぶ)、暗号化用の鍵は誰でも使えるように公開されます(そのため「パブリックキー」と呼ぶ)。非対称暗号化方式は、TLS(しばしば SSL と呼ばれる)の基盤となる技術です。

暗号化が重要な理由は?

プライバシー:暗号化は、対象となる受信者または正当なデータ所有者のみが通信やデータを読むことができるようにします。そうすることで、攻撃者、アドネットワーク、インターネットサービスプロバイダー、場合によっては政府が機密データを傍受したり閲覧したりするのを防止し、ユーザーのプライバシーを保護しています。

セキュリティ: 暗号化は、転送中または保管中のデータの漏えいを防止するのに役立ちます。会社所有のデバイスが紛失・盗難に遭っても、ハードドライブが適切に暗号化されていれば、そのデバイス上のデータのセキュリティは依然として確保されます。同様に、通信を暗号化することにより、データ漏えいを起こさずに送信者と受信者は機密データを交換できます。

データの完全性:暗号化は、オンパス攻撃のような悪意のある行動の防止にも役立ちます。データがインターネット上で送信されるとき、暗号化によって、受信者が受け取るデータが途中で閲覧・改ざんされていないことを保証します。

規制:こうした諸々の理由により、多くの業界や政府の規制では、ユーザーデータを扱う企業にデータを暗号化することを義務付けています。暗号化を義務付けている規制や準拠基準には、HIPAA、PCI-DSS、GDPRなどがあります。

暗号アルゴリズムとは?

暗号アルゴリズムとは、データを暗号文に変換するために使用される方式のことです。暗号アルゴリズムは、暗号化されたデータがランダムなものに見えても、再度暗号鍵を使用することで平文に戻せるように、予測可能な方法でデータを変換する暗号鍵を使用します。

一般的な暗号アルゴリズム

一般的に使用される対称暗号化アルゴリズムの例:

  • AES
  • 3-DES
  • SNOW

一般的に使用される非対称暗号化アルゴリズムの例:

  • RSA
  • 楕円曲線暗号

暗号化におけるブルートフォース攻撃とは?

暗号化におけるブルートフォース攻撃は、復号化するための鍵を持っていない攻撃者が、数百万、数十億の鍵を片っ端から試して鍵を特定することになります。現代のコンピューターを使用すれば十分に短時間でブルートフォース攻撃ができるため、暗号化は極めて強力で複雑なものにする必要があります。最新の暗号化方式は、強力なパスワードと組み合わせることでブルートフォース攻撃に対抗できるとされていますが、コンピューターの性能が向上するにつれて、将来的にはそのような攻撃に対して脆弱になるかもしれません。脆弱なパスワードでは依然としてブルートフォース攻撃を受けやすい状態であることは変わりません。

どのように暗号化を使用してインターネット閲覧の安全性を確保するのか?

暗号化はさまざまな技術の基礎となるものですが、特にHTTPのリクエストとレスポンスの保護にとって重要なものです。そのためのプロトコルのことをHTTPS(Hypertext Transfer Protocol Secure)と呼びます。HTTPではなくHTTPSで提供されるWebサイトのURLは、http://ではなくhttps://で始まり、通常、アドレスバーに安全な鍵マークが表示されます。

HTTPSは、Transport Layer Security(TLS)と呼ばれる暗号プロトコルを使用します。長い間、Secure Sockets Layer(SSL)と呼ばれる暗号プロトコルが業界標準でしたが、TLSがSSLに取って代わりました。HTTPSに対応したWebサイトについては、そのオリジンサーバーにTLS証明書が実装されます。TLSとHTTPSの詳細については、こちらをご覧ください。

インターネットのセキュリティを強化するために、Cloudflareは、Cloudflareサービスを利用するすべてのWebサイトに無料でTLS/SSL暗号化を提供します。CloudflareのUniversal SSLの詳細については、こちらをご覧ください。