銀行アカウントへのログイン、プライベートメッセージの送信、クラウドへのファイル保存など、様々な場面で暗号化が適用されています。暗号化は、閲覧権限のない第三者があなたのデータを盗聴するのを防ぎます。企業がデータ侵害を受けても、盗まれた機密データが暗号化されていた場合は、データの内容は流出しないケースがほとんどです。
データの暗号化では、定義されたアルゴリズムと秘密鍵を使用して、読み取り可能なコンテンツ(テキスト、ファイル、その他のデータ)を暗号文に変換します。(秘密鍵がなければ解読できないバイナリ形式の暗号文が生成されます。)暗号化されたデータをテキスト形式へ変換する必要がある場合、互換性を確保するために、通常はエンコード(例:Base64や16進数)されます。元のデータは、正しい秘密鍵を介してのみ復号化して復元できます。
データの暗号化の仕組みとは?
データが一度暗号化されると、アクセス権限のないユーザーはデータを読み取ることができなくなります。たとえあなたのメールが傍受されたり、暗号化で保護されたファイルが保存されているデバイスが盗まれても、データは二進数やエンコードされたデータの羅列にしか見えません。

暗号化の秘密鍵がなければデータは読み取れない状態が保たれます。また、大半の暗号化技術はメッセージ認証コード(MAC)やデジタル署名などの技術と併用され、データが改ざんされていないこと(および送信者のなりすましがされていないこと)を確かめます。AES-GCM(Advanced Encryption Standard - Galois/Counter Mode)やChaCha20-Poly1305などといった暗号化アルゴリズムは、「AEAD(関連データ付き認証暗号)」を採用しています。これは、暗号化と完全性チェックの両方を1つのステップで処理する暗号化方式です。
この暗号化プロセスにより、個人データを保護して内部または外部からのデータ侵害による情報漏洩のリスクを最小限に抑えることができます。さらに、暗号化はオンライン決済のセキュリティ確保、企業の規制遵守、デジタル通信のプライバシー保護にも寄与しています。
(暗号化が歴史的にどのように発展してきたかについて興味がある方は、現代の暗号化の起源をご覧ください。)
データの暗号化の主な構成要素:平文、暗号文、暗号鍵
暗号化プロセスでは、主に3つの核心的な要素が連携して機能しています。
- 平文とは、暗号化されていない元データのことで、暗号化を行う前の状態を指します。例えば、メモ、顧客のスプレッドシート、保存された画像などが元データにあたります。鍵やソフトウェアを必要とせずに、そのまま読み取ったり使用したりできる状態です。
- 暗号鍵とは、アルゴリズムが平文を暗号文に変換するために必要となる「秘密の値」です。もし誰かがあなたの鍵を入手すれば、保護されていた内容を解読できてしまいます。よって、暗号化システムの強度は、鍵管理(キーマネジメント)の性能が非常に重要です。
- 暗号文とは、暗号化処理を実行した結果として得られるデータのことです。復号されない限り、読み取ることはできません。例えば、「午後3時に会おう」という文を暗号化すると暗号文はバイナリデータになります。視認性や伝送の都合上、16進数で 「e483b0a742…」のような形式に変換されることもあります。この結果は、使用されているアルゴリズムと適用された鍵の両方に依存します。
暗号化、ハッシュ化、エンコーディングの違い
エンコーディング、ハッシュ化、暗号化はいずれもデータを別の形に変換する技術ですが、目的が異なります。
- エンコーディングは、保存や伝送時の互換性を確保する目的で、データを別の形式に変換します。例えば、Base64はバイナリデータをASCII(米国標準情報交換コード)テキストに変換し、テキストのみをサポートするシステム間でもやり取りできるようにします。データは完全に元に戻すことができ、鍵を必要とせず、情報を隠すこともありません。
- ハッシュ化は、一方向関数を使用して入力データから固定長のデータ(「ハッシュ値」)を生成します。入力データは毎回同じハッシュ値に変換されますが、入力データがほんの少しでも変わると全く異なるハッシュ値になります。この特性により、ハッシュ化は完全性の検証に最適です。例えば、送信者がファイル(データ)と、そのファイルから算出したハッシュ値を送信し、受信者がファイル(データ)を同じハッシュ関数で計算・照合することで、ファイルの完全性を確認できます。ハッシュが一致すればファイルは変更されておらず、一致しなければ、受信者はファイルが破損または改ざんされたことを知ることができます。ハッシュ化は、パスワードの保存やデジタル署名でも広く利用されています。ハッシュ値から元のデータを復元することは不可能で、鍵も使用しません。
- 暗号化は、秘密鍵がなければデータを解読できない仕組みです。暗号化は、秘密鍵を使ってのみ復号が可能で、機密性を確保するために使用されます。暗号化自体では完全性や真正性は保証されませんが、現代の多くの暗号化方式(例:AES-GCM)には、完全性や真正性を確保する機能が組み込まれています。
データの暗号化の種類
データを暗号化する方法は一つだけではありません。通常、システムの構築形式やデータの保護対象に応じて、対称暗号化、非対称暗号化、あるいは両方の方法を使用しています。
対称暗号化(共通鍵暗号方式)
対称暗号化は、単一の秘密鍵を使用して実行されます。データのロック(暗号化)とロック解除(復号)に同じ鍵が使用されるため、データ変換を行うには双方のプロセスとも事前に鍵を共有している必要があります。
対称暗号アルゴリズムは処理速度が非常に速く、非対称暗号化と比較して必要な演算やメモリも少ないため、フルディスクの暗号化、暗号化バックアップ、転送中のストリーミングデータなど、大量のデータを扱う際に利用されています。
AESは、現代において最も幅広く導入されている対称暗号です。128ビット、192ビット、256ビットの鍵をサポートしており、CBC(Cipher Block Chaining)やGCM(Galois/Counter Mode)などのモードで使用されています。
AESが最も一般的ですが、ChaCha20はAESの強力な代替手段で、ハードウェアでAESを高速処理できないデバイスに最適で軽量かつ効率的であるため、モバイルアプリやモバイルの内蔵システムで幅広く使用されています。
対称暗号化の最大のデメリットは、鍵が共有されること。送信者と受信者が鍵を共有するための安全な通信経路がない場合、プロセスが機能しなくなります。このような場合に便利なのが、次でご紹介する「非対称暗号化」です。
非対称暗号化(公開鍵暗号化方式)
非対称暗号化では、2つの鍵(公開鍵と秘密鍵)を使用します。これらの鍵は数学的に関連していますが、一方の鍵から他方を計算で導き出すことは極めて困難です。
非対称暗号化の最大の強みは、誰でも公開鍵を使ってデータを暗号化できますが、復号できるのはあなたの秘密鍵だけという点です。送信者と受信者が事前に共通の秘密鍵を共有する必要がありません(送信者と受信者が鍵を共有するための安全な通信経路が不要)。
公開鍵は公開され、誰でも自由に使用できます。一方、秘密鍵は自身で管理(デバイスで安全に保管)します。
非対称暗号化はデジタル署名でも使用されています。送信側はメッセージのハッシュ値を作成し、そのハッシュ値を秘密鍵で暗号化してこれら両方を送信します。受信者は公開鍵を使って署名を復号し、その結果をハッシュ値と比較します。両者が一致すれば、そのメッセージが送信途中で改ざんされていないことが確認できます。
RSA(Rivest-Shamir-Adleman)暗号は、最も広く普及している非対称暗号化方式の一つであり、通常2048ビットまたは4096ビットの鍵が使用されます。信頼性は高いですが、計算負荷が重くなります。一方で、楕円曲線暗号(ECC)はRSA暗号と比較して、はるかに短い鍵長で同等のセキュリティ強度を提供し、かつ高速な処理が可能です。ECDSA(楕円曲線暗号を用いたデジタル署名方式)はデジタル署名に使用されており、X25519は安全に鍵交換するための鍵共有アルゴリズムです。いずれも、HTTPSハンドシェイク、暗号化メッセージング、SSH(Secure Shell)接続、および高速で安全な暗号化通信を実現するための現代のセキュリティプロトコルにおいて幅広く利用されています。
但し、非対称暗号化は、大容量ファイルや大量のデータにはリソース負荷が高すぎます。そのため、主に設定(鍵の交換、身元認証)関連の目的で設計されており、大量のデータを暗号化するための処理には適していません。

ハイブリッド暗号方式
現在、大半のセキュリティシステムは、安全を確保するため対称暗号化と非対称暗号化を併用するハイブリッド方式を採用しています。非対称暗号化を使用してセッション鍵(対称鍵)を交換し、その後のすべての通信は対称暗号化で暗号化されます。
暗号化されたWebサイトに接続する際も、同様の仕組みです。ブラウザはWebサイトから送られてきた公開鍵を使用して、そのセッションだけで使う「共通鍵(セッションキー)」を暗号化します。それ以降の通信は、この共通鍵を用いて高速に暗号化(対称暗号)されます。大半のサイトは接続ごとに新しい共通鍵を使用するため、たとえ誰かがサーバーの秘密鍵を盗んだとしても、過去の通信内容を遡って読み取られる心配はありません。これは「前方秘匿性(PFS)」と呼ばれます。
ハイブリッド暗号方式は高速性とセキュリティの両立を確保できるので、メッセージングアプリ、VPN(仮想プライベートネットワーク)プロトコル、ファイル共有ツール、高速性と強力なセキュリティの両方が必要となるさまざまな状況で採用されています。
転送中のデータと保存中のデータの暗号化
データには「保存されている状態」と「移動中の状態」があります。それぞれの状態には固有の脅威が存在するため異なる暗号化戦略が必要です。
保存データ(データ・アット・レスト)の暗号化とは?
保存データとは、ディスクに保存されているファイル、データベースのエントリ、クラウドストレージのバックアップなど、転送されていない情報を指します。保存データは、ノートパソコン、サーバー、クラウドアカウント内などに保存されています。
物理的なデバイスやストレージが盗難に遭った場合、データ暗号化は情報漏洩を防ぐ「最終防衛線」となります。WindowsのBitLockerやmacOSのFileVaultなどのツールは、ドライブ全体を暗号化します。また、多くの企業のデータベースは、行単位またはテーブル単位での暗号化を採用しています。クラウドサービスでは、「クライアントサイド暗号化(CSE)」でユーザーに制御権が与えられ、鍵を保持するのはユーザー本人だけとなります。
暗号化がなければ、ストレージ層へのアクセス権を持つ者なら誰でもすべてのデータを読み取ることができてしまいます。例えば、バックアップドライブ、盗難に遭ったノートパソコン、設定ミスのあるクラウドバケットなどが該当します。

転送中の暗号化とは?
「転送中」とは、データがデバイス間、インターネット上、あるいは内部ネットワーク内を移動している状態を指します。これには、ウェブ閲覧、メール、ビデオ通話、アップロード、リモートログインなどが含まれます。
データが移動している間、データは傍受される可能性があります。サイバー犯罪者がデータを盗聴したり、悪意のあるコンテンツを混入させたり、トラフィックを迂回させたりする恐れがあります。転送中の暗号化とは、データがデバイスから送信される前に暗号化することで、こうした脅威を阻止します。転送中の暗号化は、(HTTPS用の)TLS(Transport Layer Security)プロトコル、VPNトンネル、エンドツーエンド暗号化メッセージアプリなどによって行われます。
転送中の暗号化のおかげで、データ通信が傍受されたとしても解読不能な暗号文しか盗み取れません。しかし、暗号化はすべての情報を隠すわけではありません。メタデータ(IPアドレス、タイムスタンプ、パケットサイズなど)は見られますので、行動を推測するために利用される可能性があります。
データの暗号化の実用例
暗号化技術は、毎日使っている様々なツールに組み込まれています。以下に、代表的な例をいくつか挙げてみました。
メッセージやメール
Signal、WhatsApp、iMessageなどのアプリは、エンドツーエンド暗号化(E2EE)技術を採用しており、メッセージを読み取れるのは送信者と受信者のみです。サービス提供者でさえ、メッセージの内容を復号することはできません。データがスマートフォンから送信される前に暗号化され、受信者のデバイスに届くまで暗号化されたまま転送されます。
一方、メールに関しては性質的にセキュリティが比較的低めです。大半の人気メールサービスは、サーバー間での転送中にメッセージを暗号化していますが、サーバー上ではメッセージが暗号化されていない状態で保存される(平文保存)ことが多いです。完全なプライバシーを確保したい場合は、送信者と受信者がそれぞれ独自の暗号化キーを保持し、第三者(メールサービスプロバイダ含む)が内容を読み取れない仕組みの暗号化メールサービスを利用しましょう。
クラウドストレージやバックアップ
DropboxやGoogle Driveのようなクラウドサービスは、ファイルがアップロードされると暗号化しますが、鍵の管理はクラウドサービス(プロバイダ)が行っているため、理論上、プロバイダがあなたのデータを復号化することが可能です。
この事態を防ぐには、クラウドにアップロード前にCryptomatorのようなツールを使ってデバイス上でファイルを暗号化することです。そうすれば、クラウドプロバイダがハッカーにハッキングされたりユーザーデータの共有を強制されたりしても、データが読み取られる心配はありません。
決済やバンキング
銀行は、HTTPSやその他の暗号化プロトコルを使用してログイン情報や決済情報を保護しています。オンラインバンキングでは、開始から終了まで全通信セッションが暗号化されます。
クレジットカード決済に関しては、ほとんどのクレジットカード決済システムが「ポイント・ツー・ポイント暗号化(P2PE)」を採用しています。カード情報が入力された瞬間に端末側で暗号化され、加盟店(お店)側でさえ、カード番号全体やセキュリティコードを確認することはできません。データは暗号化されたまま決済処理業者のサーバまで転送されます。
テレワークやBYODデバイスの保護
大半の場合、テレワークの従業員はVPNを介して社内システムに接続します。VPNは、デバイスとサーバー間で暗号化されたトンネルを構築します。商用VPNは強力な暗号化を利用してインターネット通信を保護しますので、個人やフリーランスでも利用可能です。閲覧データ、DNS(ドメインネームシステム)リクエスト、およびオンライン上のアクティビティを盗聴から守れます。
また、企業はテレワークで使うノートパソコンやモバイル端末に対してフルディスク暗号化(ディスク全体の暗号化)を義務付けることが多いです。これにより、デバイスを紛失または盗難に遭った場合でも、内部ファイルが漏洩する心配はありません。
スマートフォン上のデータは暗号化すべき?
スマートフォンにはプライベートなメッセージや連絡先リスト、メールアカウント、保存されたパスワード、銀行アプリ、位置情報履歴など、毎日の詳細な記録が保存されています。デバイスが盗難に遭ったり、許可なくアクセスされたりした場合、全データが漏洩する恐れがあります。暗号化技術は、デバイスの所有者だけが保有する暗号鍵でデータを暗号化することで漏洩を防ぎます。
AndroidとiOSの暗号化を有効にする方法
最近の多くのAndroidスマートフォンは、画面ロック(PIN、パスワード、またはパターン)を設定すると、デフォルトでストレージが暗号化されます。但し、一部の古い機種や格安端末では手動で有効にする必要があります。
お使いのスマートフォンが暗号化されているか確認するには、「設定」>「セキュリティ」>「暗号化」に進むか、設定の検索バーに「暗号化」と入力してください。「暗号化が有効」などと表示されていれば、暗号化で保護されています。具体的な手順は、機種やAndroidのバージョンによって異なりますので、不明な点がある場合はメーカーのサポートページで手順を確認しましょう。
iOSデバイスは、ハードウェアベースの暗号化を自動的に実装しています。パスコード(数字または英数字)を設定するだけで、デバイス全体の暗号化が有効になります。なお、より強力なパスコードを設定することで、ブルートフォース攻撃に対するセキュリティも強化できます。
暗号化されたデータは100%安全?
暗号化されたデータに許可なくアクセスすることは格段に難しいですが、100%安全とは言い切れません。強力な暗号化アルゴリズムは確実に効果的ですが、アルゴリズムは暗号化プロセスの一部に過ぎません。暗号化がどのように使用、管理、実装されているかという点も同様に重要となります。
正常に実装された暗号化をブルートフォース攻撃で破ることは事実上不可能です。例えば、AES-256は将来予測される量子脅威に対しても耐性を維持できます。しかし実際のところ、サイバー犯罪者は鍵を推測するのではなく、システム構築や運用方法の脆弱性を悪用して攻撃を仕掛ける傾向があります。
よくある脆弱性とミス
- 鍵管理の不備は、よくありがちな脆弱性です。予測可能な簡単なパスワードの使用、鍵の不適切な保管、鍵のローテーションの怠りなどは暗号化が破られる脆弱性を生み出します。
- 実装上のミスは、たとえ強力なアルゴリズムを使用していても効力を損なう原因となります。例えば、暗号化ソフトウェアのバグや不適切な乱数生成が発生すると、機密情報が漏洩する恐れがあります。ブロック暗号において、復号時のパディング検証の不備を悪用した「パディングオラクル攻撃(Padding Oracle Attack)」も、暗号化が厳重に設定されていない場合に起こりうる脅威の一つです。
- 人的ミスは、最も容易な攻撃経路の代表例と言えるでしょう。復号鍵を誤って共有したり、暗号化データの平文コピーを残したり、暗号化システムの設定ミスなどは、セキュリティ上の抜け穴を招きます。
暗号化戦略を強化する方法
ただ強力なアルゴリズムを使うだけでは、暗号化戦略を強化しているとは言えません。データを確実に保護するためには、慎重な鍵管理、暗号化の適切な実装、徹底したセキュリティ対策が不可欠です。
強力で最新のアルゴリズムと安全なプロトコルを使う
AES、ChaCha20、RSA、ECCなど強力な暗号化方式を使いましょう。対称暗号には256ビット鍵、RSAには最低でも2048ビット鍵、楕円曲線暗号には256ビット鍵を使用してください。また、古いバージョンのSSL/TLSではなく、TLS 1.2または1.3を採用しましょう。
非推奨の暗号スイートは無効にし、暗号化設定を最新の暗号化標準に合わせてください。暗号化標準が更新される度に、暗号化設定は更新すべきです。
鍵管理の重要性
鍵はランダムで予測不可能なものでなければなりません。安全なエントロピー源を使用して生成してください。可能であれば、暗号化された保管庫や、HSM(ハードウェア・セキュリティ・モジュール)やTPM(トラステッド・プラットフォーム・モジュール)などのハードウェアモジュールに保存しましょう。アクセスは厳重に制限して、鍵は定期的にローテーションし、漏洩した場合は直ちに交換してください。他のシステムやユースケースで同じ鍵を再利用するのは避けましょう。また、鍵をソースコードに埋め込んだり、平文のまま放置したりしないでください。
暗号化されたデータへのアクセスを厳重に管理する
暗号化はアクセスが制御されて初めて効力を発揮します。多要素認証(MFA)とZTNA(ゼロトラスト・ネットワーク・アクセス)を組み合わせることで、最小権限の原則を適用し、ユーザーには業務遂行に必要最低限のアクセス権のみが付与されます。また、ログは監視して異常な動作がないか確認しましょう。アクセス制限が不十分だと、正規の認証情報を使ってハッカーに侵入された場合に暗号化だけでは阻止できません。
暗号化に関連する全領域を保護する
マルウェアは復号されたデータを窃取する恐れがあります。システムには常に最新のパッチを適用して監視を継続し、デバイスの暗号化も常に有効にしましょう。なお、復号されたデータは、RAMや一時ファイルに保存されることが多いので注意しましょう。データが漏洩する可能性があるため、一時ストレージを消去してエンドポイントを保護しましょう。
量子コンピュータは暗号化を破ることはできる?
量子コンピュータは、対称暗号方式の「将来的な脅威」と言えるでしょう。というのも、高性能な量子コンピュータであればショアのアルゴリズム(Shor's algorithm)を用いてRSAやECCを破ることができる可能性がありますが、現時点ではそのようなコンピュータは存在しないのです。
AES-256のような対称暗号化は、量子攻撃に対してある程度の耐性を持っています。暗号化を破るには、依然として正しい鍵を推測しなければならないためです。量子コンピュータはグローバーのアルゴリズム(Grover’s algorithm)を使用して推測に掛かる時間を半分に短縮できますが、64ビットのセキュリティ強度まで弱体化させられるAES-128に対して、AES-256の場合は量子コンピュータが攻撃に使用された場合でも、強度は128ビットのセキュリティを維持できます。AES-256は主に鍵サイズが大きいことから、現在公に知られている量子技術の能力に基づけば「安全」であると見なされています。
コンプライアンス上、データの暗号化は必須?
ほとんどの規制では、暗号化はデータ保護の重要な要素とみなされています。暗号化が必ずしも明示的に義務付けられているわけではありませんが、インシデントが報告義務のある情報漏洩に該当するかどうかの決定的な要因となるケースが多いです。
GDPR、HIPAA、およびその他の規制における暗号化
一般データ保護規則(GDPR)は、第32条において暗号化を「適切な技術的・組織的措置」として規定しています。すべてのケースで義務付けられているわけではありませんが、侵害されたデータが適切に暗号化されている場合、通知要件は多くの場合免除されます。規制当局はデータを解読不能とみなすため、影響を受けた個人へのリスクが軽減されるからです。
HIPAA(医療保険の相互運用性と説明責任に関する法律)では、暗号化は「対応可能な措置」として扱われます。合理的な場合には実装する必要があり、そうでない場合はその理由を説明しなければなりません(参照:45 CFR §164.312)。The HIPAA Journalによると、電子保護医療情報(ePHI)が米国国立標準技術研究所(NIST)の基準(保存データについてはSP 800-111、転送中のデータを保護するTLS構成についてはSP 800-52)に従って暗号化されている場合、漏洩したデータはセーフハーバーの対象となり、個人への漏洩通知を免れる可能性があります。
一方で、PCI DSS(ペイメント・カード・インダストリー・データ・セキュリティ・スタンダード)は、より厳しい要件を課しています。カード保有者データが保存される場合、またはパブリックネットワークを介して送信される場合は、常に強力な暗号化(最新の暗号化基準を満たす、業界で認められたアルゴリズムおよび鍵長)が求められます。決済データを扱う組織がこれに準拠しない場合、罰則、監査不合格、および決済処理の停止リスクに直面します。
FAQ:データの暗号化についてよくある質問
暗号化は暗号学と同じですか?
厳密には異なります。暗号学は情報を保護するための幅広い技術を指し、暗号化はその一つに過ぎません。ハッシュ化、デジタル署名、認証プロトコルも暗号学の分野に含まれます。
おすすめの暗号化方式は?
おすすめの暗号化方式は目的によって異なります。例えば、256ビットのAES(Advanced Encryption Standard)は、大量のデータを安全かつ効率的に保護できる暗号化方式で、RSA(Rivest–Shamir–Adleman)や楕円曲線暗号(ECC)は鍵交換に使われます。最近の多くのシステムでは、AES(共通鍵暗号)とRSA/楕円曲線暗号(公開鍵暗号)方式が併用されています。
個々のアプリやファイルを暗号化することはできますか?
はい、VeraCryptのようなツールで各ファイルやフォルダの暗号化が可能です。FileVaultやBitLockerのようなフルディスク暗号化ツールは全データを暗号化しますが、ファイルコンテナ機能で対応しているものもあります。なお、大半のアプリは、アプリのローカルデータ(アプリ内に保存されたデータ)を暗号化しています。
暗号化キーを紛失した場合、どうなりますか?
データを取り戻すことはできません。正しいキーや復旧設定がなければ、データ保持者本人であってもデータの内容は読み取れません。
スマートフォンを暗号化していない場合、どうなりますか?
デバイスの暗号化が行われていない場合、物理的にデバイスにアクセスできる人なら誰でもフォレンジックツールを使用して個人データを抽出できます。暗号化されていないデバイスは、工場出荷時設定へのリセット後も、個人データが復元可能な状態で残っている場合があります(暗号化されていればこのようなことはありません)。
ただし、ほとんどの最近のスマートフォンはデフォルトでデータを暗号化します。そのため、パスコードなしではアクセスすることが極めて困難です。但し、一部の古いAndroidモデルや国限定モデルでは、手動での有効化が必要なものもあります。
暗号化されたデータは完全に削除できますか?
はい、正しい手順を踏めば可能です。ファイルをゴミ箱にドラッグしてゴミ箱を空にするだけでは不十分で、他のデータで上書きされるまでディスク上に残ってしまいます(復元可能です)。
暗号化されたデータとその復号鍵の両方が復元不可能な状態で削除された場合、その情報は事実上「消去(抹消)」されたとみなされます。鍵(暗号化キー)が確実に復元不可能であると確信できる場合、暗号化シュレッディング(クリプトシュレッディング)だけでも大丈夫ですが、特に厳格なコンプライアンス要件のある環境においては、ファイル自体の安全な削除も行うのが確実でしょう。
ネット上で身を守るための第一歩を踏み出しましょう。リスクなしでExpressVPNをお試しください。
ExpressVPN を入手