ここ最近、NTTドコモが手掛ける電子決済サービスのドコモ口座と連携する銀行口座から、預金が不正に引き出される事件がおきた。
ドコモ口座開設の際の本人確認の甘い点を突かれたのが原因のようだ。
別の人物が本人に成りすまして出金し本人と関係のないドコモ口座に送金させたのである。
ITは非常に便利ではあるが危険もいっぱいあることを痛感させられる事件だ。
今回は情報セキュリティの根幹、暗号化技術について観てみたい。
・暗号化技術
現在の情報システムでは、コンピュータどうしがネットワークで接続され、データをやり取りしながら処理を進めることが非常に多くなっている。
このような環境下においてコンピュータシステムやデータは次に掲げる脅威にさらされる。
盗聴・・通信内容が漏えいしてしまうこと。
なりすまし・・悪意の第三者が正当な利用者を偽ること。
改ざん・・通信内容が書き換えられてしまうこと。
これらを未然に防ぐ、または検知するのが情報セキュリティの役割である。
ドコモ口座事件は明らかにこれを怠ったといえるだろう。
暗号化の概念
暗号化技術において、元の暗号化されてないデータを平文といい、暗号化されたデータを暗号文という。
また、平文を暗号文に変換することを暗号化といい、正規の手順で暗号文を平文に変換することを復号という。
本来なら複合できないはずの利用者が暗号文から平文を得ることを解読という。
暗号技術は、暗号化を行う手順である暗号化アルゴリズムと、暗号化に必要なビット列(0と1の組合せ集合)から構成される。
例えば、鍵との排他的論理和(異なれば1を返す。等しいと0を返す。)を求めた結果を暗号文とする、という暗号化アルゴリズムにより作成された暗号文は、暗号化アルゴリズム(排他的論理和)を知ってても、鍵となるビット列を知らないと復号できない。
暗号化技術は暗号化アルゴリズムが公開されてても、鍵さえ知らなければ解読されない、又は解読に膨大な時間を要する。
鍵の管理が重要である。
・共通鍵暗号方式
暗号化と復号に同じ鍵を用いる暗号方式のことである。
共通鍵暗号方式においては、任意のビット列を共通鍵として通信を行う二者で共有する。
この共通鍵を用いてビットの入れ替えや排他的論理和の演算などを繰り返し、暗号化と復号を行う。
共通鍵暗号方式の代表的なものとして、56ビットの共通鍵を用いるブロック暗号のDES(Data Encryption Standard)、DESの後継規格でAES(Advanced Encryption Standard)などがある。
共通鍵暗号方式は、暗号化や復号に要する処理時間が短いという特徴がある。
このため大量のデータを一括して暗号化する用途に適している。
しかし、鍵を通信相手と共有するとき、鍵を盗聴されるリスクがあるためネットワークを用いた鍵の配送には適さない。
また、データを第三者から秘匿するためには、同じ鍵を異なる相手に使うことはできない。
このため、システム中でn人の利用者が相互に通信を行う場合、各利用者はn-1個の鍵を管理することになる。
システム中に存在する鍵の種類は、
n(n-1)/2 となる。
利用者が多くなるほど鍵の種類が増え、鍵の管理は煩雑になる。
・公開鍵暗号方式
対となる二つの鍵(鍵ペア)を利用する方式である。
※ 一方の鍵で暗号化したデータは対となる鍵でないと復号できない。
※ 一方の鍵から、もう一方の鍵を推測できない。
これら二つの特徴がある。
このため、一方の鍵を秘密鍵(Private Key)として他者に知られないよう厳重に管理すれば、もう一方の鍵は公開鍵(Public Key)として公開しても問題ない。
公開鍵暗号方式では、受信者本人のみが復号できる暗号文を生成する。
暗号文は受信者の秘密鍵のみで復号できればよく、暗号化は対となる受信者の公開鍵で行う。
・暗号化→受信者の公開鍵
・復号→受信者の秘密鍵
公開鍵暗号方式の代表的なものとしては、素因数分解の複雑さを利用したRSA、離散対数暗号、楕円曲線暗号などがある。
公開鍵暗号方式では、秘密鍵を本人のみが所有して秘匿するため、共通鍵暗号方式の課題である安全な鍵の配送が実現できる。
システム中でn人の利用者が相互に通信を行う場合、各利用者は二つの鍵(公開鍵と秘密鍵)を管理するので、システム中に存在する鍵の種類は2nとなり、共通鍵暗号方式に比べ鍵の管理は容易であるが、暗号化や処理時間が長いため、大量のデータを一括して暗号化する用途には向かない。
・セッション鍵暗号方式(ハイブリッド方式)
共通鍵暗号方式と公開鍵暗号方式は次のような相反する特徴をもつ。
処理時間 | 鍵の安全な配送 | |
共通鍵暗号方式 | 短い | 困難 |
公開鍵暗号方式 | 長い | 容易 |
これらの長所を用いて、もう一方の短所を補完するように組み合わせた方式をセッション鍵暗号方式(ハイブリッド方式)という。
#データの暗号化・・共通鍵暗号方式(処理時間短い)
#共通鍵の暗号化・・公開鍵暗号方式(鍵の配送が安全)
という用途に各暗号方式を用いる。
共通鍵は、その通信(セッション)限りの使い捨てとされる。
流れは以下の通り。
①送信者が通信に先立ち、使い捨ての共通鍵を生成。
②送信者は共通鍵を受信者の公開鍵で暗号化し、受信者に送信。
③受信者は暗号化された共通鍵を受け取り、自身の秘密鍵で復号し共通鍵を得る。
④これ以降、その共通鍵を用いてメッセージをやりとりする。
⑤通信が終了したら、双方で共通鍵を破棄する。
共通鍵を公開鍵暗号方式で暗号化することにより高速かつ安全な暗号化通信を実現するのである。
現在はセッション鍵暗号方式が主流となっている。
・終わりに
暗号化通信というと難解な印象を受けるが、意外と仕組みはシンプルであるといえる。
情報セキュリティも、こういったことが分かってくると面白くなってくる。
税法や会計とは違う面白さがある。
近未来の日本が徐々にIT化するにあたって、情報セキュリティの知識は最も基本的な教養になりそうである。