ええコンサルタント
>
セキュリティプラザ
>
セキュアプログラミング
C/C++セキュアプログラミングクックブック
VOLUME2: 対称鍵暗号の実装
第一章:対称暗号の基礎
- 暗号アルゴリズムで使用される鍵を表現する
- ランダムな対称鍵を生成する
- バイナリ鍵(及びその他の生データ)を16進数で表す
- 16進形式の鍵(または他の16進数データ)をバイナリ形式に変換する
- Base64エンコーディングを行う
- Base64デコーティングを行う
- 鍵(または他のバイナリデータ)を英語テキストとして表す
- テキストの鍵をバイナリの鍵に変換する
- ソルト、ナンス、初期化ベクトルを使用する
- パスワードから対称鍵を導出する
- 基になる一つの秘密からアルゴリズムによって対称鍵を生成する
- 一つの縮小文字セットで暗号化する
- 鍵素材を安全に管理する
- 暗号プリミティブの処理速度を測る
第二章:対称暗号
- 複数の暗号化アルゴリズムを使用すべきか
- 暗号化アルゴリズムの中から最適なものを選択する
- 適切な鍵長を選択する
- 暗号モードを選択する
- 生のブロック暗号を利用する
- CBCモードの汎用的な実装を利用する
- CFBモードの汎用的な実装を使用する
- OFBモードの汎用的な実装を使用する
- CTRモードの汎用的な実装を使用する
- CWCモードを使用する
- 暗号パディングを手作業で追加及び検査する
- OFB,CTR,CCM,CWCモード(またはストリーム暗号)の鍵ストリームを事前に計算する
- 互換性を保ちながら並列処理の可能なモードで暗号化あるいは復号化を処理する
- 互換性を保たずに、任意のモードの暗号化及び復号化を並列処理する
- ファイルやディスクの暗号化を行う
- エラー耐性のある高水準の暗号化API及び復号化APIを使用する
- OpenSSLで(CBC,CFB,OFB,ECBモード用に)ブロック暗号のセットアップを行う
- OpenSSLで鍵長が可変の暗号を使用する
- CBCモードでのOpenSSLで暗号パディングを使用不可にする
- OpenSSLで暗号の追加セットアップを行う
- OpenSSLの暗号コンフィギュレーション特性を問い合わせる
- OpenSSLで低水準の暗号化また復号化を行う
- RC4をセットアップして使用する
- ワンタイムパッドを使用する
- MicrosoftのCryptoAPIの鍵オブジェクトを生成する
- 生の鍵データからCryptoAPIの鍵オブジェクトを生成する
- CryptAPI鍵オブジェクトから生の鍵データを取り出す
第三章:ハッシュとメッセージ認証
- ハッシュ及びMACの基礎を理解する
- メッセージダイジェストまたはMACを複数サポートをするかどうかを決定する
- 暗号ハッシュのアルゴリズムを選択する
- メッセージ認証コードを選ぶ
- データをインクリメンタルにハッシュする
- 一つの文字列をハッシュする
- 暗号ハッシュを使用する
- ナンスを使って誕生日攻撃を防ぐ
- メッセージの完全性検査
- HMACを使用する
- OMAC(ブロック暗号ベースのシンプルなMAC)を使用する
- HMACまたはOMACに対してナンスを使用する
- ソフトウェア及びハードウェアで適度に高速なMACを使用する
- ソフトウェア速度を最適化したMACを使用する
- ブロック暗号からハッシュ関数を作成する
- ブロック暗号を使って最大強度のハッシュ関数を生成する
- 小さいMACタグを使用する
- 暗号化とメッセージ完全性を同時に実現する
- 独自のMACを作成する
- ハッシュ関数で暗号化する
- MACを安全に認証する(取り込みリプレイ攻撃を防ぐ)
- MACを並列処理する
第四章:乱数
- 使用する乱数の種類を決定する
- 汎用APIによる乱数性とエントロビーの実現方法
- UNIX標準の乱数インフラストラクチャを使用する
- Windows標準の乱数インフラストラクチャを使用する
- アプリケーションレベルでのジェネレータを使用する
- 模擬乱数ジェネレータを再シートする
- エントロビー収集デーモンを使用する
- EGADSを使ってエントロビーまたは模擬乱数を取得する
- OpenSSLの乱数APIを使用する
- ランダムな整数を取得する
- 特定範囲のランダムな整数を取得する
- 一様分布の浮動小数点値を取得する
- 非一様分布の浮動小数点値を取得する
- 印字可能なランダムなASCII文字列を取得する
- 公平にシャッフルする
- エントロビーを含むデータを固定サイズのシードに圧縮する
- 起動時にエントロビーを取得する
- 乱数の統計的テスト
- エントロビーの評価と管理を行う
- キーボードからエントロビーを収集する
- マウスイベントからエントロビーを収集する
- スレッドのタイミングからエントロビーを収集する
- システム状態からエントロビーを収集する
ええコンサルタント
>
セキュリティプラザ
>
セキュアプログラミング