情報セキュリティ基礎[1-4 暗号]

1-4-1 セキュリティ技術の広がり

セキュリティ技術とは

 セキュリティとは、安全に仕事を進めるための継続的な取り組みの総称。その中にはセキュリティポリシの策定など、組織的、人的な取組みもあるが、通信の内容チェックなど、システムが行った方が効率的かつ正確である分野がある。これらを行うための技術群をセキュリティ技術とよぶ。  特に利便性とセキュリティは本質的にトレードオフの関係になるため、利便性を落とさずにセキュリティを維持するためのさまざまな技術が考えられている。

セキュリティ技術の種類

 セキュリティの技術の主なものとしては、「暗号化」「認証」「マルウェア対策」「フィルタリング(不正アクセス対策)「信頼性向上技術」がある。  これらは、コンピュータの中だけで行われているわけではない。ここでは、私たちの生活のなかの出来事と較べてイメージしてみる。

暗号化

 郵便を送る時、内容を見られると困る文書は葉書ではなく封書で出す。ネットワーク上のパケットは、誰にでも見られてしまう可能性があるため、そのままでは葉書と同じ状態にある。そこでパケットをデータ上の封書に入れて、送信しようとするのが暗号化。  ただし、封書に入れただけでは、封を切ればよいわだから、その気になれば簡単に内容がわかってしまう。そこで、頑丈な箱に入れて、当事者だけがもっている鍵でしか開けられないようにするなど、他人に見られるのを防ぐ工夫がなされる。より頑丈な箱や複雑な鍵を考案することでセキュリティの向上が図られる。

認証

 電話の相手の人物をどうやって確かめるか。たいていは名乗った名前や声で判断する。このように本人かどうかを判断することが認証の主な役割。  ネットワークでも通信相手のユーザが本当に本人かどうかを確かめなければならない。そしてユーザごとに行ってよい行為を取り決め、それ以外のことはさせないようにする。

マルウェア対策

 ソフトウェアは有益であることが前提だが、実のところコンピュータはプログラムの指示通りに動作し、その善悪を判断する力はない。そこに、マルウェア(悪意のあるソフトウェアの総称)が入り込む余地がある。  マルウェアの特徴を識別し、削除できる機能を持つ、ウイルス対策ソフトを使って対策する。識別のために、シグネチャと呼ばれるデータベースを常に更新する必要がある。

フィルタリング

 人気アーティストのライブなどには人が殺到する。しかし、それをすべて受けれていたら切りないため、お金を払ってチケットを買った人だけ会場に入れて、それ以外の人にはお帰りいただく。また、会場に入る人の中でも、一般客と関係者で立ち入れる場所が異なる。このように、出たり入ったりする情報の流れを統制し、一定のルールで仕分けすることをフィルタリングという。

信頼性向上技術

 セキュリティというとどうしても「クラッカーと戦う」イメージがあるが、安全に仕事をするという意味では「使っているシステムが壊れないようにする」というのも重要なセキュリティ技術。解くのに100時間かかるゲームの99時間目を保存したデータが壊れたらしばらく立ち直れない。仕事のデータだったら被害はさらに重大。そこで、自動的にデータを二重に保存したり、システムが故障した際の代替機を用意したりして、仮に故障など発生しても継続して仕事が続けられるように対策する。

具体的な対策例 得られる効果
暗号化 無線LANの通信を暗号化する 三者の傍受による情報漏えいを防止できる
認証 サーバへのアクセスをパスワードとデジタル証明書で認証する 三者からの不正なログインを防止できる
マルウェア対策 ウイルス対策ソフトの導入 マルウェアの感染と動作を防止できる
フィルタリング 会社から出ていく通信の監視 機密情報や個人情報の漏えいを防止できる
信頼性向上技術 機器の冗長化 故障やミスによるデータ破壊から復旧できる

1-4-2 暗号の基本

盗聴リスクと暗号化

 ネットワークシステムの運用には、盗聴(ネットワーク上を流れるパケットを傍受する行為)のリスクがある。ネットワーク上のパケットは、その経路上で監視することが可能であり、監視リスクを完全に消し去ることは不可能。そこで、何らかの対策を講じることでリスクを許容可能な範囲に留めること(リスクコントロール)が必要。盗聴リスクに対して用いられる対策が暗号化。  暗号化とは情報(平文)と特定の条件の場合のみ、復元可能な一定の規則で変換し、一見意味のない文字列や図案(暗号文)とするもの。対して、暗号化した暗号文をもとに情報を戻すことを復号という。

暗号の基本と種類

 暗号化アルゴリズムは、平文を暗号文に変換するルールのことだが、単に平文を暗号化しただけでは、同じ暗号アルゴリズムを使えば、買得されてしまう。そこで、個々に異なった変数を用いることで、買得をより難しいものにする。  ITシステムはこの特定の条件を鍵(キー)というビット列で表現する。情報にアクセスしてよいユーザだけが鍵を保持することで、権限のない非正規ユーザへの情報漏えいを防止する。

1-4-3 共通鍵暗号

共通鍵暗号方式

 共通鍵暗号方式は、コンピュータシステムの初期段階から用いられてきた暗号方式で、暗号化と復号に同一の鍵(秘密鍵)を用いる点が特徴。  互いに鍵が同一であることは暗号システムの負荷を軽減する。したがって、共通鍵暗号方式では暗号化処理に必要なCPU資源や時間を節約することができる。

共通鍵暗号方式のしくみ

 共通鍵暗号方式では、送信者と受信者が同じ秘密鍵をもっている。共通鍵暗号方式でシステムを構築する際の重要な留意点は、この鍵の配布。  秘密鍵は送信側、受信側のどちらで作成しても構わないが、通信相手に伝達しなければ利用できない。秘密鍵をメールなどで配布するとそれ自体に盗聴の危険が発生するし、郵送は処理時間がネックになる。

秘密鍵の管理鍵数

 共通鍵暗号方式では通信のペアごとに異なる鍵を用意しなければならない。  例えば、次の図で鍵Aと鍵Bに同じ鍵を使用すると、他のペア(Aから見たB-Cペアなど)の通信を解読するため、盗聴のリスクが発生する。  このため、n人が参加するネットワークで相互に通信する場合、n(n-1)/2個の鍵が必要になる。

共通鍵暗号方式の実装技術

 共通鍵暗号方式の中でもさまざまな実装方式がある。ここでは、それぞれの方式の特徴を示す。

DES (Data Encryption Standart)

 秘密鍵暗号方式で最も代表的な暗号方式。IBMが開発し1977年にNISTが標準暗号として採用したことから普及した。  DESでは平文を64ビットごとのブロックに分割して転置と換字を行う。  ブロックに分割された平文はブロック内でさらに32ビットごとに分割され、転置、換字など複雑な処理を16回繰り返す。  この手順がブロックごとに反復され、平文全体が暗号化される。

鍵の数

 DESは秘密鍵として56ビットのデータ列を用いる。この場合、鍵のバリエーションは2の56乗=約7京。  DESが開発された当初はこれを現実的な時間内にすべて試すことは不可能だったが、CPUパワーが飛躍的に向上すると総当りによる解読速度は短縮される。現在ではDESでは用に特化させた解読マシンを用いれば数十時間で解読が可能だと言われている。このように技術の進歩により暗号強度が低下してしまうことを危殆化という。NISTはDESにかわる新たな暗号化方式としてAES (Advanced Encryption Standart) の使用を定めている。

TripleDES

 DESの脆弱性が次第に指摘されるようになったことを受けて開発された暗号化方式。  DESの暗号化アルゴリズムをそのまま利用し、鍵を2つ用意して暗号化、復号、暗号化という手順を踏む。  結果敵にTripleDESを解読するためには2つのDES鍵と、48回の暗号化処理を復元しなければならず暗号解読の難易度を上げている。  ただし、暗号アルゴリズム的な弱点はDESのそれをそのまま引き継いでいるため注意が必要。

AES

 NISTがDESにかわる次世代暗号化方式として採択した標準。公募によって定められた。  AESもDESと同様のブロック化暗号方式だが、ブロック長、鍵長ともに128ビット、192ビット、256ビットの中から任意に設定でき、仕様的にはさらに長いビット長も利用可能。また、DESと比較して、処理効率がよいので、少ないメモリのマシンでもサポートできる特徴がある。

秘密鍵の管理

 秘密鍵の管理は原則として、利用するユーザ本人に任されるべき。プライバシー保護の観点、あるいはデジタル署名を利用する場合の真正性の確保に大きく関わってくるため。

1-4-4 公開鍵暗号

公開鍵暗号方式

 共通鍵暗号方式は一対一で通信を行うことを念頭に設計された。したがって、複数のユーザと通信する必要がある場合、急速に管理すべき鍵数が増加する。また構造上、不特定多数との通信には利用できない。そこで、暗号化鍵と復号鍵を分離した方式である公開鍵暗号方式が考えられた。

公開鍵暗号方式のしくみ

 まず、一対の鍵ペアを作成する。鍵ペアのうち、一方で暗号化したものは、もう一方で復元できるが、ここで、どちらかを暗号化鍵とし、もう一方を復号鍵と決める。  公開鍵暗号方式では、この暗号化鍵を一般に公開する。これを公開鍵といい、暗号化のみに利用されるため、公開しても問題ない。  それに対して、暗号化された文書を復号するための鍵は、受信者が秘密に管理する。これを秘密鍵という。  公開鍵は誰でも利用できるものの、その公開鍵を使って暗号化された文書を復号できるのは、秘密鍵をもっているユーザだけになる。受信者は自分宛ての文書が他人に解読されないように、秘密鍵を厳重に管理しなければならない。

公開鍵暗号方式の管理鍵数

 公開鍵暗号方式は鍵管理負担の増大も解決する。共通鍵暗号方式ではn人のネットワークで暗号をやり取りするのにn(n-1)/2個の鍵が必要だったのに対して、公開鍵暗号方式では2n個の鍵で済む。ネットワークに参加するユーザの数が増加するほど、両者で管理しなければならない鍵の数に開きがでるため、公開鍵暗号方式は大人数間通信用途に適している。  ただし、公開鍵暗号方式は一般的に処理に必要なCPUパワーが同じ鍵長の共通鍵暗号方式の数百~数千倍といわれている。このため、暗号化処理、複合処理に多くの時間がかかるデメリットがある。

公開鍵暗号の実装技術

 公開鍵暗号方式にも共通鍵暗号方式同様にさまざまな実装方式がある。

RSA

 RSAは最も普及している公開鍵暗号方式。開発者である Rivest、Shamir、Adleman の3人の頭文字をとって命名された。  RSAは大きな数値の素因数分解に非常に時間がかかることを利用した暗号方式。  以下の鍵ペアを用意した場合、a、c、d を決定できれば、bを導いて秘密鍵を得ることができるが、cとdを計算することが非常に困難であるため、bを決定できないという原理に基づいて設計されている。  公開鍵(a、N)  秘密鍵(b、N)  N=素数素数d

 RSAは計算量に依存したアルゴリズムであるため、将来的にコンピュータの計算能力が飛躍的に増大した場合には解読されてしまう危険性がある。増加するコンピューティング能力に対して相対的なセキュリティレベルを維持するため、RSAは年々鍵長を増大させており、クラッカーとのいたちごっこになっている。

楕円曲線暗号

 米国の数学者、ニール・コブリッツとビクター・ミラーによって1985年に考案された暗号方式。楕円曲線乗の演算規則を利用して鍵を生成する。  例えば、Y=aX mod p において、Xが秘密鍵、Y、a、pが公開鍵となる。通常、Y、a、pからXを求めるためにはRSAにも適用される数体ふるい法を用いるが、楕円曲線暗号はこうした理数対数問題の解決アルゴリズムに対して強固であるといわれている。

ハイブリッド方式

 公開鍵暗号方式は、鍵配布時のセキュリティ、管理鍵数の増加問題を解決するが、暗号化、復号に必要な演算量が大きく処理に多くの時間がかかる。特に大容量データの暗号化に公開鍵暗号方式を利用すると、処理上のボトルネックになる可能性が高くなる。  そのため、折衷案として、ハイブリッド方式を採用するシステムが増加している。共通鍵暗号の鍵の配布は公開鍵暗号方式を利用し、データ本文のやり取りは共通鍵暗号方式を用いる。  これにより処理速度と利便性の両方を確保することができる。

長所 短所 主な方式
共通鍵暗号 機器への負荷が小さい 不特定多数との通信が苦手(鍵数の増大、配送の困難) AES
公開鍵暗号 不特定多数とのつうしんが可能 機器への負荷が大きく、通信速度が遅くなる RSA