暗号技術と鍵管理
暗号技術は、情報を第三者に読まれないようにする機密性と、改ざんを検知できる完全性を支える基盤である。暗号化と復号に同じ鍵を使う共通鍵暗号方式と、鍵の対を使う公開鍵暗号方式の違いを理解したうえで、鍵をどう共有し、どう管理するかまでを一体で捉えることが重要である。
共通鍵暗号方式と鍵共有の課題
共通鍵暗号方式は、暗号化と復号に同一の鍵を使う方式である。AESはこの方式に分類されるブロック暗号で、鍵長は128、192、256ビットから選べる。処理が軽く大量のデータを高速に暗号化できるため、通信内容の秘匿に広く使われる。
一方で、送信者と受信者は同じ鍵を事前に安全に共有しなければならない。通信相手が増えるほど相手ごとに別の鍵を用意して管理する必要が生じ、鍵の保管や配送の手間が増える。 この鍵管理の負担こそが、共通鍵暗号だけでは多数の相手と安全に通信しにくい理由である。共通鍵の共有そのものを安全に行う仕組みが別途必要になる点も押さえておく。
公開鍵暗号方式と鍵の数
公開鍵暗号方式では、各利用者が公開鍵と秘密鍵の一組を持つ。公開鍵は誰に渡してもよく、秘密鍵は本人だけが保持する。相手の公開鍵で暗号化すれば、対応する秘密鍵を持つ受信者だけが復号できる。
このため、n人が相互に暗号通信をする場合に必要な鍵は、各人が持つ公開鍵と秘密鍵の計2個をn人分足した2n個になる。相手同士の組の数を数えると誤りやすいが、問われるのは各人が持つ鍵の総数である。 鍵の数を考えるときは、誰が何を持つのかを一人ずつ確認すると整理しやすい。
デジタル署名と公開鍵の使い分け
電子署名では、送信者が秘密鍵で署名を作り、受信者が公開鍵で検証する。署名を作れるのは秘密鍵の持ち主だけであり、検証は誰でも行えるため、署名者の確認と改ざんの有無の確認に使える。秘密鍵は決して公開してはならない。
ハッシュ関数の一方向性
暗号学的ハッシュ関数には、ハッシュ値から元の入力を求めにくい一方向性が求められる。原像計算困難性は、ハッシュ値が与えられたとき、そのハッシュ値を出力する入力を計算量的に見つけにくい性質を指す。理想的なハッシュ関数で出力がnビットであれば、総当たりで原像を探す試行回数の目安は約2^n回となる。
ハッシュ関数単体では、改ざんを防いだり送信者を確認したりすることはできない。改ざんの検知には、ハッシュ値を秘密の鍵や署名と組み合わせる仕組みが必要になる。
この節の続き
- 実務でのハイブリッド暗号とTLS
- 電子政府推奨暗号リストの位置付け
- 試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む