バックグラウンド
フグ暗号 (CBC、IV = {00..0}) が組み込まれた Lua 環境があります。AES は利用できず、純粋な Lua AES 実装は遅くなります。
問題
AES ベースのRFC 4493で指定されたアルゴリズムに従って CMAC を生成したいと考えています。この CMAC は、Lua 環境と自分で作成した別のプログラムとの間のやり取りに必要なので、すべての AES crypt 関数を Blowfish のものに変更するだけでよいと考えました。
各 CMAC の入力長は 26 バイトですが、異なる CMAC 世代間で変化するのは数バイトだけです。例えば:
AAAAAAAAAAAA BA AACCCCCCCDDDDDDDDDFFFFFFFFFFFFFFFFFFFF
AAAAAAAAAAAA AB AACCCCCCCDDDDDDDDDFFFFFFFFFFFFFFFFFFFF
その結果、CMAC の最初の部分が各入力に対して同一であり、最後の部分のみが変更されるという問題が発生します。
0123456789ABCDEF 48534593402BC93D
0123456789ABCDEF DF82BC920DA92383
これはフグのアルゴリズムの問題ですか?特に入力を少し変更するだけで、異なる結果が得られるようにするためにできること (CMAC アルゴを変更すること) はありますか?