情報セキュリティ試験直前対策メモ2006=暗号化編=
2006年4月に情報処理技術者試験テクニカルエンジニア(情報セキュリティ)試験が実施されました。この試験の受験に向けて作成した直前対策メモを公開します。第3回目は、『暗号化』編です。
このメモは、キーワードを見て、自分なりに内容が理解できていることを確認するのが目的のため、詳しい解説は記載しておりません。今後、解説を付け加えていく予定です。
試験の受験テキスト、あるいは、専門書の選択時に、これらのキーワードの解説の有無や、解説の詳細さなどが、基準になるのではないかと思います。
- 第1回 無線LAN編
- 第2回 VPN編
- 第3回 暗号化編
- (≪補足≫ 暗号・復号の基本フロー)
- 第4回 認証編
- 第5回 PKI編
- 第6回 セキュリティプロトコル編
- 第7回 サーバセキュリティ編
- 第8回 脅威の実態編
- 第9回 アクセス監視編
- 最終回 規格編
情報セキュリティ・キーワード 2016
暗号技術の用語と要素
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)
・共通かぎ暗号方式
暗号用乱数
・擬似乱数