暗号化とは?| 暗号化の種類

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

学習目的

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

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

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

暗号化とは?

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

暗号化の例

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

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

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

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

暗号化の種類

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

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

データ暗号化が必要な理由

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

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

データインテグリティ: 暗号化はオンパス攻撃のような悪意のある行動の防止にも役立ちます。データがインターネット上で送信されるとき、暗号化(およびその他の整合性保護)によって、受信者が受け取るデータが途中で改ざんされていないことを保証します。

認証: 公開鍵暗号化方式は、WebサイトのTLS証明書に記載されているプライベートキーが、そのWebサイトの所有者の所有物であることを証明するために使用できます。これにより、Webサイトの利用者は、本物のWebサイトに接続していることを確認することができます(詳細については公開鍵暗号化とは?をご覧ください)。

規制:こうした諸々の理由により、多くの業界や政府の規制では、ユーザーデータを扱う企業にデータを暗号化することを義務付けています。暗号化を義務付けている規制や準拠基準には、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の詳細については、こちらをご覧ください。