暗号技術
証明書を登録する際の中心的な課題は、証明書を要求するデバイスやユーザーをどのように認証するかです。認証局は証明書によって、その所有者が特定の属性を備えていること、およびその真正性を確認済みであることを示します

鍵を用いる暗号化の2つの種類
鍵を用いる暗号化には、大きく分けて対称暗号化と非対称暗号化の2種類があります。
対称暗号化
- 鍵の使い方:暗号化と復号に同一の鍵を使用します。
- 速度:一般に高速で効率的です。
- セキュリティ:主な課題は、当事者の間で鍵を安全に共有することです。
- 例:AES(Advanced Encryption Standard)、DES(Data Encryption Standard)。
非対称暗号化
- 鍵の使い方:鍵ペア、すなわち暗号化に用いる公開鍵と復号に用いる秘密鍵を使用します。
- 速度:計算がより複雑なため、対称暗号化に比べて低速です。
- セキュリティ:秘密鍵が共有されることはないため、鍵の配布においてより安全です。
- 例:RSA(Rivest-Shamir-Adleman)、ECC(Elliptic Curve Cryptography)。
安全性がより高いとされる暗号化方式
十分な鍵長の最新アルゴリズムを使用している限り、現在のコンピューターでは暗号を解読できないという意味で、どちらの方式も安全だと考えられています。
どちらの暗号化が優れているかはユースケース次第ですが、多くのユースケースでは非対称暗号化が求められます。非対称暗号化は鍵ペア、すなわち暗号化に用いる公開鍵と復号に用いる秘密鍵を使用するからです。秘密鍵は秘匿されたままで共有する必要がないため、セキュリティが高まります。
大量データに適した暗号化方式
対称暗号化です。処理が高速なためです。
ハイブリッド暗号化の一般的な流れ
- 鍵の生成:送信者は、実際のメッセージを暗号化するための新しい対称鍵(セッションキーとも呼ばれます)を生成します。
- メッセージの暗号化:送信者はその対称鍵で平文のメッセージを暗号化し、暗号文を作成します。
- 鍵の暗号化:続いて送信者は、受信者の公開鍵を使って対称鍵を暗号化します(非対称暗号化)。
- 送信:送信者は、暗号化されたメッセージ(暗号文)と暗号化された対称鍵の両方を受信者に送ります。
- 鍵の復号:受信者は自身の秘密鍵を使って対称鍵を復号します。
- メッセージの復号:最後に受信者は、復号した対称鍵で暗号文を復号し、元の平文を取り出します。
ハッシュアルゴリズム
ハッシュアルゴリズムとは、任意の大きさの入力データを固定長の文字列に変換する数学的な関数です。この文字列は通常、英字と数字の並びになります。この出力はハッシュ値またはダイジェストと呼ばれます。
コリジョン(衝突)
ハッシュにおけるコリジョンとは、異なる2つのデータが同じハッシュアルゴリズムで同一のハッシュ値を生成することをいいます。ハッシュアルゴリズムの第一の目的は、異なる入力データを一意に表現することにあるため、これは問題になり得ます。
MAC
メッセージ認証コード(MAC)とは、暗号技術において、メッセージを認証しその完全性を保証するために用いられる短い情報です。メッセージが改変されていないことを検証し、送信者の身元を確認します。
MACとHMACの違い
MAC:ブロック暗号またはハッシュ関数を用いて、メッセージの完全性と真正性を検証するコードの総称です。
HMAC:暗号学的ハッシュ関数と秘密鍵を用いるMACの一種で、より強固なセキュリティ特性を備えています。
非対称暗号
メッセージ署名の一般的な流れ
メッセージ署名は、メッセージの真正性と完全性を検証するための暗号技術上の処理です。
- ハッシュの生成:送信者は、暗号学的ハッシュ関数(SHA-256など)を用いて、メッセージ固有のデジタル指紋(ハッシュ)を生成します。このハッシュはメッセージの内容を一意に表します。
- 署名:送信者はこのハッシュを自身の秘密鍵で暗号化し、デジタル署名を作成します。これにより、送信者の秘密鍵にアクセスできる者だけが署名を生成できることが保証されます。
- 送信:デジタル署名がメッセージに添付され、両者がまとめて受信者に送られます。検証用に送信者の公開鍵も提供されます。
- 検証:受信者は送信者の公開鍵でデジタル署名を復号し、元のハッシュを取り出します。続いて受信したメッセージから新たにハッシュを生成し、復号したハッシュと比較します。両者が一致すれば、メッセージが改変されていないことが確認され、送信者の身元も検証されます。
非対称暗号化の3つの機能
公開鍵暗号とも呼ばれる非対称暗号化は、通信とデータの保護においていくつかの重要な機能を担います。
- 暗号化と復号
- デジタル署名
- 鍵交換
RSA
RSAはRivest-Shamir-Adlemanの略で、安全なデータ伝送のために広く利用されている公開鍵暗号方式です。1977年にこの方式を発表した考案者、Ronald Rivest、Adi Shamir、Leonard Adlemanの名にちなんで名付けられました。
Diffie-Hellman
Diffie-Hellman鍵交換は、公開された通信路を介して暗号鍵を安全にやり取りするために暗号技術で用いられる方式です。1976年にWhitfield DiffieとMartin Hellmanによって開発されました。Diffie-Hellman鍵交換の主な目的は、二者が以後の通信の暗号化に使用できる共有秘密鍵を、安全に生成できるようにすることです。
Digital Signature Algorithm(DSA)
Digital Signature Algorithm(DSA)は、デジタル署名の生成と検証に用いられる公開鍵暗号アルゴリズムです。1991年に米国国立標準技術研究所(NIST)がDigital Signature Standard(DSS)の一部として提案しました。
仕組み
- 鍵の生成:DSAは鍵ペア、すなわち署名用の秘密鍵と検証用の公開鍵を生成します。
- 署名:送信者は自身の秘密鍵を使ってメッセージにデジタル署名を作成します。この署名はメッセージと秘密鍵の両方に固有のものです。
- 検証:受信者は送信者の公開鍵を使って署名の真正性を検証し、それによってメッセージの完全性と出所を確認します。