KMAC
KECCAK 認証コード
KMACXOF128 出力サイズに関わらず内容が変化しない
KMACXOF256
RFC 8702 の謎仕様
KmacWithSHAKE128
KmacWithSHAKE256
訳がわからないので対応は控えた方がいいのかcSHAKE使え
出力サイズは128bit, 256bit でもいいが可変にもできる。
KMAC128, KMAC256 は出力サイズにあわせて全体の出力も変わる。
XOFがつくものは出力長が入力値に含まれないため出力長に関わらず内容が同じものを適度な長さに切っただけとなる
table:強度比較? 適当
従来 KMAC
AES-CMAC(K, text) KMAC128(K, text, 128, S)
HMAC-SHA256(K, text) KMAC256(K, text, 256, S)
HMAC-SHA512(K, text) KMAC256(K, text, 512, S)
KECCAK メッセージ認証コード (KMAC) アルゴリズムは、KECCAK に基づく PRF および鍵付きハッシュ関数です。 これは可変長の出力を提供しますが、SHAKE や cSHAKE とは異なり、要求された出力の長さを変更すると、関連性のない新しい出力が生成されます。 KMAC には、それぞれ cSHAKE128 と cSHAKE256 から構築された 2 つのバリアント、KMAC128 と KMAC256 があります。 2 つの亜種は、技術的なセキュリティ特性において多少異なります。 それにもかかわらず、ほとんどのアプリケーションでは、セクション 2 で説明するように、十分な長さのキーが使用されていれば、どちらのバリアントも最大 256 ビットのセキュリティ強度をサポートできます。 8.4.1. KMAC の一部のアプリケーションでは、出力の生成が開始されるまで必要な出力ビット数がわからない場合があります。 これらのアプリケーションでは、KMAC を XOF として使用することもできます (つまり、出力を任意の長さに拡張できます)。これは cSHAKE の動作を模倣します。 XOF として使用される場合、KMACXOF128(K, X, L, S) および KMACXOF256(K, X, L, S) のステップ 1 の right_encode(0) に示すように、エンコードされた出力の長さを 0 に設定することによって KMAC が計算されます。 ) 以下の疑似コード。 概念的には、XOF モードの KMAC は無限長の出力文字列を生成し、呼び出し元は必要なだけ出力文字列のビットを使用するだけです。 XOF モードでの KMAC の切り捨てられた出力は、次の疑似コードで与えられる関数 KMACXOF128(K, X, L, S) または KMACXOF256(K, X, L, S) によって計算できます。