- 2023-12-20 (Wed) 19:56
- 一般
Terrapin Attack の対処(ChaCha20-Poly1305 の無効化とか)をした辺りから「AES-GCM の実装って実際のところどうなってるんだろう?」と思って調べてたら出てきた.係数が GF(2) な多項式の掛け算をしてくれる命令で,つまりは加算が xor になってるから通常の掛け算のキャリー無視バージョン(carry-less multiplication)であると.
PCLMULQDQ で検索すると Intel の「Intel(R) Carry-Less Multiplication Instruction and its Usage for Computing the GCM Mode」ってドキュメントが出てきて,読んでみたら面白かった.多項式での mod 計算の効率的な実装とかちゃんと把握してなかったので勉強になった.割り算でなく掛け算で処理しちゃうのね(Barrett reduction を GF(2) の多項式に適用している?).
- Newer: ことはじめ