非対称暗号化と対称暗号化
ウェブサイトの閲覧、メールの送信、VPNの使用など、お客様が行うすべての暗号化済み接続は、非対称暗号化、対称暗号化、またはその両方に依存しています。 その違いを理解すれば、現代の暗号化で両方が使用されている理由が分かります。

対称暗号化とは何ですか?
対称暗号化では、データのロック(暗号化)とロック解除(復号化)の両方に単一の鍵を使用します。 差出人と宛先の双方が同じ秘密鍵を保持する必要があり、これを入手した人は誰でも、その鍵が保護するすべての情報を読み取ることができます。
単一の暗証番号を持つ物理的な金庫を思い浮かべてみてください。 ダイヤル番号を知っている人なら誰でも開けることができます。 高速かつシンプルですが、一緒に使用する前にそのダイヤル番号を安全に共有する必要があります。

対称暗号化は計算速度が速いため、ハードドライブ上のファイルの暗号化、VPN(新しいウィンドウ)トンネルを通るトラフィック、データベースのコンテンツなど、大量のデータを保護するのに優れています。 一般的な対称暗号化アルゴリズムには、AESやChaCha20などがあります。
根本的な弱点:そもそも、どのようにして鍵を共有するのでしょうか? 安全でないチャンネルを介して送信すると、それを傍受した攻撃者によってすべてが復号化されてしまいます。 これが鍵配送問題であり、非対称暗号化が解決する課題です。
非対称暗号化とは何ですか?
非対称暗号化では、数学的にリンクされた二つの鍵、すなわち公開鍵と秘密鍵を使用します。 一方の鍵で暗号化したものは、もう一方の鍵でしか復号化できません。 公開鍵は誰とでも自由にお客様が共有できますが、秘密鍵はお客様のデバイスから決して離れることはありません。
玄関ドアの郵便受けの投函口を思い浮かべてみてください。 誰でもそこから手紙を投函できますが(お客様の公開鍵で暗号化)、その箱を開けて中身を読み取る鍵を持っているのはお客様だけです(お客様の秘密鍵で復号化)。 事前の秘密のやり取りは不要です。

これにより、鍵配送問題が完全に解決されます。 これまで通信したことのない二人の見知らぬ者同士でも、安全なチャンネルを確立できます。一方が公開鍵を公開し、もう一方がその鍵でメッセージを暗号化すれば、鍵の所有者だけがその返信を読むことができます。 これが、エンドツーエンド暗号化、HTTPS、およびデジタル署名の基礎となっています。
トレードオフ:複雑な数学的処理が伴うため、非対称暗号化は対称暗号化よりも約1,000倍遅くなります。 非対称暗号のみを使用して、大容量ファイルや持続的なデータストリームを暗号化することは非実用的です。
一般的な非対称アルゴリズムには、以下のようなものがあります:
- RSA(Rivest–Shamir–Adleman)
- 鍵交換用のECDHやデジタル署名用のEd25519などの楕円曲線暗号(ECC)
- 量子コンピューターからの攻撃に耐えられるよう設計され、2024年にNISTによって標準化された新しい耐量子非対称暗号アルゴリズムであるML-KEM
非対称暗号化と対称暗号化:主な違い
一つの共有鍵
高速で効率的、大量のデータに最適。 双方が事前に秘密鍵を安全に共有している必要があります。
公開鍵と秘密鍵のペア
速度は遅いものの、鍵交換の問題を解決します。 誰でも暗号化できますが、復号化できるのは鍵の所有者だけです。
対称暗号化 | 非対称暗号化 | |
|---|---|---|
鍵 | 一つの共有鍵 | 公開鍵と秘密鍵のペア |
速度 | 極めて高速 | 約1,000倍遅い |
鍵の長さ | 128〜256ビット | 2048ビット以上(RSA)、256ビット以上(ECC) |
鍵配送 | 事前に安全に共有されている必要があります | 公開鍵は自由に共有可能 |
最適な用途 | ファイル、ディスク、VPNトラフィックなどの大容量データの暗号化 | 安全な鍵交換、デジタル署名、メッセージング |
例 | AES、ChaCha20 | RSA、ECDH、Ed25519、ML-KEM(耐量子) |
現代の暗号化で両方が使用される理由
実際には、対称暗号化と非対称暗号化が単独で使用されることはほとんどありません。 最も安全なシステムはこれらを組み合わせています。すなわち、非対称暗号化によって安全に鍵を交換し、その後、対称暗号化によって実際のデータを保護します。 これにより、非対称暗号の安全性と対称暗号の高速性を両立できます。
非対称暗号化と対称暗号化を併用することは、ハイブリッド暗号と呼ばれます。 これは、HTTPS、TLS、VPN、OpenPGPの暗号化済みメール、その他ほとんどの安全な通信プロトコルの基礎となっています。
お客様が安全なウェブサイトにアクセスしたときに何が起きるか
お客様のブラウザとサーバーは、セッション鍵を送信することなく、共有セッション鍵について合意するために非対称暗号化(ECDH経由)を使用します。そのため、たとえ誰かがそのやり取りを傍受したとしても、鍵を導出することはできません。
その共有セッション鍵は、セッションの残りのすべてのデータを暗号化するために対称暗号化(AESまたはChaCha20)で使用されます。これは、継続的なトラフィックを処理するのに十分な速度です。
接続が閉じると、セッション鍵は破棄されます。 これが重要である理由は、秘密鍵が盗まれた場合、それがすべての過去および今後のセッションを復号化できる「マスターキー」になってしまうためです。 セッションごとに新しい鍵を生成することで、侵害はそのセッション内のみに抑えられます。 この性質は、完全前方秘匿性と呼ばれます。
お客様がエンドツーエンド暗号化メールを送信したときに何が起きるか
メッセージは、ランダムに生成された対称セッション鍵(AES)で暗号化されます。これは、どのようなメッセージサイズであっても十分な速度です。
次に、そのセッション鍵は宛先の公開鍵を使用して暗号化されるため(非対称暗号化)、宛先だけが自身の秘密鍵でロックを解除できます。
両方が一緒に送信されます。 宛先は自身の秘密鍵でセッション鍵を復号化し、それを使用してメッセージを復号化します。これらはすべて、事前に秘密の情報を共有することなく行われます。
真正性とデジタル署名
暗号化はメッセージの内容を隠しますが、誰が送信したかを証明するものではありません。 そのためには認証、つまりメッセージが自称する差出人から本当に送信されたものであること、そして送信中に改ざんされていないことを検証する方法が必要です。
非対称暗号化は、デジタル署名を介してこれを可能にします。 公開鍵で暗号化する代わりに、差出人は自身の秘密鍵でデータに署名します。 対応する公開鍵を持っている人なら誰でも署名を検証でき、差出人のユーザー情報と、コンテンツが変更されていないことの両方を確認できます。
データ自体については、ほとんどの現代のプロトコルが認証付き暗号を使用しています。これは、一度の操作で同時に暗号化と整合性の検証を行う暗号です。 一般的な例として、AES-GCMやChaCha20-Poly1305があり、これらはどちらもProtonのサービス全体で使用されています。 送信中に暗号文がわずか一ビットでも改ざんされると、復号に失敗し、改ざんされたデータは拒否されます。
量子コンピューターと暗号化
対称暗号化と非対称暗号化は、量子コンピューターから非常に異なる脅威に直面しています。そして、その違いを理解することは、業界がどのように備えているかを知る上で重要です。
従来の非対称暗号化は、巨大な数の因数分解(RSA)や離散対数問題の解決(ECDH)など、困難な数学的問題に依存しています。 ショアのアルゴリズムを使用する量子コンピューターは、この種の数学的問題を解くのが非常に得意であり、従来の非対称暗号を大規模かつ効果的に破ることができます。
対称暗号化ははるかに耐性があります。 これは、量子コンピューターが高速化できる可能性がある総当たり攻撃(考えられるすべての鍵を試すこと)に依存していますが、適切なサイズの鍵を時代遅れにするほどではありません。 256ビットの対称鍵は、既知の量子攻撃に対して安全であり、実用的な鍵サイズの拡大は必要ありません。
これが、ML-KEMのような耐量子アルゴリズムが、対称暗号化がほぼ変更されないまま残る一方で、現在RSAやECDHが使用されている箇所に置き換わる非対称の代替手段として設計されている理由です。
Protonにおける非対称暗号化と対称暗号化の使われ方
すべてのProtonサービスはハイブリッド暗号を使用しています。すなわち、安全な鍵交換を確立するために非対称暗号化を、お客様のデータを高速に保護するために対称暗号化を使用しています。
Proton Mailは、暗号化、鍵交換、デジタル署名のために、メッセージ内容を暗号化する対称暗号化と、ECC鍵やRSA鍵などの非対称鍵を組み合わせたOpenPGP標準を採用しています。 また、耐量子暗号化もサポートしています。
Proton VPNは、WireGuardやOpenVPNなどの最新のVPNプロトコルを使用し、ChaCha20またはAES-256でトラフィックを暗号化します。 これらのプロトコルは、非対称の鍵交換を使用して新しい対称セッション鍵を確立し、完全前方秘匿性の提供を支えています。
Proton Driveは、OpenPGP標準を使用してクライアント側でファイルを暗号化します。 非対称の公開鍵/秘密鍵を使用するため、お客様の秘密鍵でしかお客様のファイルを復号化できません。つまり、Protonを含め、お客様以外の誰もファイルにアクセスすることはできません。
Proton Passは、AES-256-GCM対称暗号化を使用して、認証情報やその他の保管庫アイテムを保存します。 ランダムに生成された32バイトの保管庫キーおよびアイテムキーを使用し、これらは非対称のユーザーキーで保護されています。
データを自分で管理する
現代の暗号化が機能するのは、対称暗号と非対称暗号が連携しているからです。Protonは、すべてのアプリでお客様のプライバシーを保護するためにその両方を使用しています。
With エンドツーエンド暗号化、ゼロアクセス・アーキテクチャ、耐量子保護、オープンソースアプリ、および独立した監査により、お客様の情報はお客様だけのものとして維持されます。
よくある質問
- 対称暗号化と非対称暗号化の主な違いは何ですか?
- 非対称暗号化と対称暗号化、どちらが速いですか?
- なぜ対称暗号化と非対称暗号化の両方が必要なのですか?
- 対称暗号化は、非対称暗号化よりも安全性が低いのでしょうか?
- 非対称暗号化は対称暗号化に代わることができますか?
- 対称アルゴリズムと非対称アルゴリズム、どちらが量子コンピューターに対して脆弱ですか?


