XOF
extendable-output function 拡張出力機能
NIST FIPS PUB 202
NIST SP 800-185
SHA-3系? ハッシュ関数の出力を充分攪拌できるブロックサイズつきで可変サイズにしたようなもの 出力サイズはビット単位で指定可能
Keccakのところてん方式で長さが拡張できる仕組みを利用したもの。他のものでも似たようなことができればいいのかも。 CTRのようにストリーム暗号として利用できるかどうかは不明 ドラフトはあるかも
などがある
cSHAKE(とその派生)はヘッダに出力長を指定するのでXOFの場合は0にする cSHAKEだけXOFありとなしで同名?
KMAC,TupleHah, ParallelHash (XOFのつかないもの)は長さが変わると値が変わるので駄目かもしれない
SHA-3などの固定サイズの代用としては利用しない方がいいらしいがSHAKE128/SHAKE256が固定サイズでも標準になっているようだ
KDFとして使えるとFIPS PUB 202 A.2 にも描いてあるかもしれず NIST SP 800-108r1upd1 4.4. でKMACがKDFとして使える、繰り返し数なし(仮)がその他は不明 S は "KDF" または "KDF4X"
要点
出力サイズをビット単位で自由に指定する
ハッシュ関数 MessageDigest の延長で実装すれば楽 MAC もまとめたりしたらいい
長いので出力を配列だけではなくStreamなどの型式に対応したほうがいい (入力も?)
cSHAKE系はヘッダで出力長を指定できるのでXOFの場合は0にする