情報セキュリティ試験直前対策メモ2006=暗号化編=

2006年4月に情報処理技術者試験テクニカルエンジニア(情報セキュリティ)試験が実施されました。この試験の受験に向けて作成した直前対策メモを公開します。第3回目は、『暗号化』編です。

このメモは、キーワードを見て、自分なりに内容が理解できていることを確認するのが目的のため、詳しい解説は記載しておりません。今後、解説を付け加えていく予定です。

試験の受験テキスト、あるいは、専門書の選択時に、これらのキーワードの解説の有無や、解説の詳細さなどが、基準になるのではないかと思います。

暗号技術の用語と要素

1:暗号の用語

・平文(ひらぶん):普通の文→クリアテキスト

・暗号化:平文を暗号文に変換すること

・暗号文:平文を暗号化した文

・復号:暗号文を元の平文に戻すこと

2:暗号技術の要素

・暗号化アルゴリズム:暗号化/復号の処理手順

・かぎ(キー)

3:暗号化アルゴリズムに使用される方法

・換字

・転置

4:暗号の安全性と強度

・暗号化アルゴリズムの複雑さ

・かぎの機密性:タンパー(悪意ある第三者)の暗号解読を防ぐ

・かぎの長さ

5:暗号解読

・攻撃の一種

・ブルートフォース攻撃/バースデー攻撃

・既知平文攻撃/選択平文攻撃

・タイミング攻撃/SPA攻撃/DPA攻撃

・サイドチャネル/テンペスト

・ショートカット法

暗号化方式の分類と比較

1:データ変換方法による分類

・ブロック暗号

・ストリーム暗号

2:かぎの使用方法による分類

・対称かぎ暗号(共通かぎ暗号):暗号化と復号に共通の同じかぎを使う

 →ブロック暗号:DES、3DES

 →ストリーム暗号:RC4

・非対称かぎ暗号:暗号化と復号にそれぞれ別のかぎを使う

 →公開かぎ暗号

・ハッシュ暗号:元の平文(メッセージ)から要約(メッセージダイジェスト)を生成

対称かぎ暗号(共通かぎ暗号)

1:DES (Data Encryption Standard)

・かぎの長さ:56ビット

・データブロック長:64ビット

2:DES の操作モード

・ ECB (Electronic Code Book):平文をブロックに分け、各ブロックごとに暗号化/復号

・ CBC (Cipher Block Chaining):最初のデータブロックは IV(初期ベクタ)と XOR され、次のデータブロックは前の暗号化されたブロックと平文ブロックを XOR して暗号化

・ CFB (Cipher Feedback):DES の暗号をストリーム処理、IV を暗号化し「平文のブロックと XOR した結果」を次の IV の一部に組み込み、次の平文のブロックを XOR する

・ OFB (Output Feedback):DES の暗号をストリーム処理、IV を暗号化した「結果」を次の IV の一部に組み込み、次の平文のブロックを XOR する

3:AES (Advanced Encryption Standard)

・かぎの長さ:128ビット、192ビット、256ビット

・データブロック長:128ビット

4:その他の対称かぎブロック暗号

・ RC5

5:ストリーム暗号

・ RC4

 → OFB 処理モード

6:メッセージ認証コード( MAC / Message Authentication Code)

・メッセージは正しい送信者から送られ、メッセージは改ざんされていないこと

・ DES-MAC は CBC 処理モード

7:MISTY

・かぎの長さ:128ビット

・データブロック長:64ビット

非対称かぎ暗号(公開かぎ暗号)

1:Diffie-Hellman(ディフィー・ヘルマン)アルゴリズム

・素数の離散対数計算の困難性を使用

・ Diffie-Hellman かぎ交換法

2:RSA

・素数の離散対数計算の困難性を使用

・通信データの暗号化、署名、かぎ交換などに使用

3:ECC

・楕円曲線上の離散対数計算の困難性を使用

・通信データの暗号化、署名、かぎ交換などに使用

ハッシュ暗号方式

1:ハッシュ暗号

・ハッシュ関数を使用した暗号

・ハッシュ暗号方式で暗号化した暗号文は元の平文に戻せない

 →改ざんの確認に限定使用される

・ハッシュ関数とメッセージ認証コード( MAC )は、方式が違うが同じ機能

2:各ハッシュ暗号の特徴

・ MD4 (Message Digest 4)

 → 128ビットのダイジェストを生成

・ MD5 (Message Digest 5)

 → 128ビットのダイジェストを生成

・ SHA-1 (Secure Hash Algorithm - 1)

 → 160ビットのダイジェストを生成

・ HMAC (Keyed-Hashing for Message Authentication Code / Hashed-based MAC)

 →ハッシュ関数と対称かぎ暗号(共通かぎ暗号)の秘密かぎ(共通かぎ)を使ってメッセージダイジェストを生成

・ OMAC (One-Key CBC MAC)

 →ブロック暗号を使用

暗号化技術の使用例

1:SSL (Secure Socket Layer)

・デジタル証明書でサーバの公開かぎを送付

・クライアントでセッションかぎの元データを送付する(サーバの公開かぎで暗号化)

・ハッシュ関数に MD5 を使用

2:TLS (Transport Layer Security)

・ハッシュ関数に HMAC を使用

3:S/MIME

・公開かぎ暗号方式、共通かぎ暗号方式、ハッシュ関数を組み合わせる

・公開かぎは認証機関から発行されたデジタル証明書で送信する

【送信者】

 ⇒「電文」から【ハッシュ関数】で「ハッシュ値」を作成

 ⇒「ハッシュ値」を【送信者の秘密かぎ】で暗号化

 ⇒「電文+暗号化ハッシュ値」を【送信者の共通かぎ】で暗号化

 ⇒「送信者の共通かぎ」を【受信者の公開かぎ】で暗号化

 ⇒「暗号化された(電文+暗号化ハッシュ値)」と「暗号化された送信者の共通かぎ」を送信

【受信者】

 ⇒「暗号化された(電文+暗号化ハッシュ値)」と「暗号化された送信者の共通かぎ」を受信

 ⇒「暗号化された送信者の共通かぎ」を【受信者の秘密かぎ】で復号

 ⇒「暗号化された(電文+暗号化ハッシュ値)」を【送信者の共通かぎ】で復号

 ⇒「暗号化ハッシュ値」を【送信者の公開かぎ】で復号

 ⇒「電文」から【ハッシュ関数】で「ハッシュ値」を作成して、送信されてきた「ハッシュ値」で確認

4:PGP (Pretty Good Privacy)

・公開かぎ暗号方式、共通かぎ暗号方式、ハッシュ関数を組み合わせる

・公開かぎは利用ユーザ同士で信頼性を図る

5:SSH (Secure Shell)

・共通かぎ暗号方式

暗号用乱数

・擬似乱数