Hash
懷疑已發布的 gimli hash 測試向量
在https://eprint.iacr.org/2017/630.pdf>和<https://gimli.cr.yp.to/gimli-20170627.pdf中有gimli hash function的測試向量。我已經在兩個系統(Intel x86/Win、ARMV7l GNU/Linux)上從https://gimli.cr.yp.to/gimli-20170627.tar.gz編譯了參考 C 程式碼test_hash.c,並始終得到不同的結果從列印的矢量。該論文列出了例如
input: "" (empty string) input (bytes): (0 bytes) output: bd2a1b1cdab81f9fea9d5fd513372ab9d1481428385de2b2d3571d8504fdd703
但兩個執行檔都給出
b0634b2c0b082aedc5c0a2fe4ee3adcfc989ec05de6f00addb04b3aaac271f67
有人從論文中驗證了測試向量嗎?
對於置換/壓縮函式測試程序test.c ,我的結果與文件**test.exp中給出的結果相同。
我是 Gimli 的作者之一。
TL;DR:論文提供的測試向量確實是錯誤的。
我們在生成論文時遇到了一個錯誤,並且測試向量尚未相對於 Gimli 的最後一次迭代(處於開發階段)進行更新。
還有一個測試向量在某個地方有一個雙倍空間。這已得到糾正,並將在論文的修訂中進行更新。
請在下面找到正確的:
測試向量
輸入1:
我們倆都有很多東西,願最好的矮人獲勝。
54686572 65277320 706c656e 74792066 6f722074 68652062 6f746820 6f662075 732c206d 61792074 68652062 65737420 44776172 66207769 6e2e
輸出 1:
4afb3ff784c7ad6943d49cf5da79facfa7c4434e1ce44f5dd4b28f91a84d22c8
輸入 2:
如果有人要徵求我的意見,我注意到他們不是,我會說我們走了很長的路。
49662061 6e796f6e 65207761 7320746f 2061736b 20666f72 206d7920 6f70696e 696f6e2c 20776869 63682049 206e6f74 65207468 65792772 65206e6f 742c2049 27642073 61792077 65207765 72652074 616b696e 67207468 65206c6f 6e672077 61792061 726f756e 642e
輸出 2:
ba82a16a7b224c15bed8e8bdc88903a4006bc7beda78297d96029203ef08e07c
輸入 3:
說我們都聽得懂的話!
53706561 6b20776f 72647320 77652063 616e2061 6c6c2075 6e646572 7374616e 6421
輸出 3:
8dd4d132059b72f8e8493f9afb86c6d86263e7439fc64cbb361fcbccf8b01267
輸入 4:
的確,你看不到很多矮人女性。事實上,他們在聲音和外表上是如此相似,以至於他們經常被誤認為是矮人。這反過來又引發了這樣一種信念,即沒有矮人女性,矮人只是從地洞裡跳出來!這當然是荒謬的。
49742773 20747275 6520796f 7520646f 6e277420 73656520 6d616e79 20447761 72662d77 6f6d656e 2e20416e 6420696e 20666163 742c2074 68657920 61726520 736f2061 6c696b65 20696e20 766f6963 6520616e 64206170 70656172 616e6365 2c207468 61742074 68657920 61726520 6f667465 6e206d69 7374616b 656e2066 6f722044 77617266 2d6d656e 2e20416e 64207468 69732069 6e207475 726e2068 61732067 6976656e 20726973 6520746f 20746865 2062656c 69656620 74686174 20746865 72652061 7265206e 6f204477 6172662d 776f6d65 6e2c2061 6e642074 68617420 44776172 76657320 6a757374 20737072 696e6720 6f757420 6f662068 6f6c6573 20696e20 74686520 67726f75 6e642120 57686963 68206973 2c206f66 20636f75 7273652c 20726964 6963756c 6f75732e
輸出 4:
8887a5367d961d6734ee1a0d4aee09caca7fd6b606096ff69d8ce7b9a496cd2f
輸入 5:
no bytes
輸出 5:
b0634b2c0b082aedc5c0a2fe4ee3adcfc989ec05de6f00addb04b3aaac271f67