詳解セキュリティコンテスト輪読会資料#13
範囲: p.281 - p.294
パディングオラクル攻撃がなぜうまくいくのかわからない
Youtube: 【koba789】復号が成功したか失敗したかだけで暗号文を改ざん、復号する【kurenaif】 をみた。 3hあるので概要書く
- AES-256-CBCで、暗号文を送ると復号してエラー2種類もしくはエラーでないの合計3種類の値が返される。ここから与えられた暗号文の復号ができるか?という問い
- PKCS#7パディングの性質から、末尾が
0x01
の時に本来のパディングを無視して末尾の0x01
だけをパディングとして解釈する -> 動画リンク - あとは解説&実装という感じで実装メイン
- kurenaif/padding_oracle_training を見て解いてみると良さそう。
- TODO: padding oracle trainingやってみた
blog: Padding Oracle Attack 分かりやすく解説したい も読んでみる 概要
- (TODO)
S-DESで学ぶLinear Cryptanalysis / Differencial Cryptanalysis
(TODO: S-DESやAESの構造を知らないとできないので)
素数判定
素数判定はRSA暗号で生成した数が素数であることを判定する時に有用。
- 決定的素数判定法
- 試し割り、AKS素数判定法など
- 確率的素数判定法
- フェルマーテスト、ミラーラビン素数判定法など
Shorのアルゴリズム
(TODO: 量子コンピュータを学んでから)