ええコンサルタント,セキュリティ,ITconsultant,ITコンサルタント

ええコンサルタント  >  セキュリティプラザ  >  セキュアプログラミング

C/C++セキュアプログラミングクックブック
VOLUME2: 対称鍵暗号の実装

第一章:対称暗号の基礎

  1. 暗号アルゴリズムで使用される鍵を表現する
  2. ランダムな対称鍵を生成する
  3. バイナリ鍵(及びその他の生データ)を16進数で表す
  4. 16進形式の鍵(または他の16進数データ)をバイナリ形式に変換する
  5. Base64エンコーディングを行う
  6. Base64デコーティングを行う
  7. 鍵(または他のバイナリデータ)を英語テキストとして表す
  8. テキストの鍵をバイナリの鍵に変換する
  9. ソルト、ナンス、初期化ベクトルを使用する
  10. パスワードから対称鍵を導出する
  11. 基になる一つの秘密からアルゴリズムによって対称鍵を生成する
  12. 一つの縮小文字セットで暗号化する
  13. 鍵素材を安全に管理する
  14. 暗号プリミティブの処理速度を測る

第二章:対称暗号

  1. 複数の暗号化アルゴリズムを使用すべきか
  2. 暗号化アルゴリズムの中から最適なものを選択する
  3. 適切な鍵長を選択する
  4. 暗号モードを選択する
  5. 生のブロック暗号を利用する
  6. CBCモードの汎用的な実装を利用する
  7. CFBモードの汎用的な実装を使用する
  8. OFBモードの汎用的な実装を使用する
  9. CTRモードの汎用的な実装を使用する
  10. CWCモードを使用する
  11. 暗号パディングを手作業で追加及び検査する
  12. OFB,CTR,CCM,CWCモード(またはストリーム暗号)の鍵ストリームを事前に計算する
  13. 互換性を保ちながら並列処理の可能なモードで暗号化あるいは復号化を処理する
  14. 互換性を保たずに、任意のモードの暗号化及び復号化を並列処理する
  15. ファイルやディスクの暗号化を行う
  16. エラー耐性のある高水準の暗号化API及び復号化APIを使用する
  17. OpenSSLで(CBC,CFB,OFB,ECBモード用に)ブロック暗号のセットアップを行う
  18. OpenSSLで鍵長が可変の暗号を使用する
  19. CBCモードでのOpenSSLで暗号パディングを使用不可にする
  20. OpenSSLで暗号の追加セットアップを行う
  21. OpenSSLの暗号コンフィギュレーション特性を問い合わせる
  22. OpenSSLで低水準の暗号化また復号化を行う
  23. RC4をセットアップして使用する
  24. ワンタイムパッドを使用する
  25. MicrosoftのCryptoAPIの鍵オブジェクトを生成する
  26. 生の鍵データからCryptoAPIの鍵オブジェクトを生成する
  27. CryptAPI鍵オブジェクトから生の鍵データを取り出す

第三章:ハッシュとメッセージ認証

  1. ハッシュ及びMACの基礎を理解する
  2. メッセージダイジェストまたはMACを複数サポートをするかどうかを決定する
  3. 暗号ハッシュのアルゴリズムを選択する
  4. メッセージ認証コードを選ぶ
  5. データをインクリメンタルにハッシュする
  6. 一つの文字列をハッシュする
  7. 暗号ハッシュを使用する
  8. ナンスを使って誕生日攻撃を防ぐ
  9. メッセージの完全性検査
  10. HMACを使用する
  11. OMAC(ブロック暗号ベースのシンプルなMAC)を使用する
  12. HMACまたはOMACに対してナンスを使用する
  13. ソフトウェア及びハードウェアで適度に高速なMACを使用する
  14. ソフトウェア速度を最適化したMACを使用する
  15. ブロック暗号からハッシュ関数を作成する
  16. ブロック暗号を使って最大強度のハッシュ関数を生成する
  17. 小さいMACタグを使用する
  18. 暗号化とメッセージ完全性を同時に実現する
  19. 独自のMACを作成する
  20. ハッシュ関数で暗号化する
  21. MACを安全に認証する(取り込みリプレイ攻撃を防ぐ)
  22. MACを並列処理する

第四章:乱数

  1. 使用する乱数の種類を決定する
  2. 汎用APIによる乱数性とエントロビーの実現方法
  3. UNIX標準の乱数インフラストラクチャを使用する
  4. Windows標準の乱数インフラストラクチャを使用する
  5. アプリケーションレベルでのジェネレータを使用する
  6. 模擬乱数ジェネレータを再シートする
  7. エントロビー収集デーモンを使用する
  8. EGADSを使ってエントロビーまたは模擬乱数を取得する
  9. OpenSSLの乱数APIを使用する
  10. ランダムな整数を取得する
  11. 特定範囲のランダムな整数を取得する
  12. 一様分布の浮動小数点値を取得する
  13. 非一様分布の浮動小数点値を取得する
  14. 印字可能なランダムなASCII文字列を取得する
  15. 公平にシャッフルする
  16. エントロビーを含むデータを固定サイズのシードに圧縮する
  17. 起動時にエントロビーを取得する
  18. 乱数の統計的テスト
  19. エントロビーの評価と管理を行う
  20. キーボードからエントロビーを収集する
  21. マウスイベントからエントロビーを収集する
  22. スレッドのタイミングからエントロビーを収集する
  23. システム状態からエントロビーを収集する

ええコンサルタント  >  セキュリティプラザ  >  セキュアプログラミング