我想了解TTH是如何工作的,但有一个问题。
让我们以这个例子为例:ABCDEFGHIJKLMNOP
我们有
A B C D
E F G H
I J K L
M N O P然后将每一列mod 26添加到运行总数mod 26中,在本例中,运行总数为(24、2、6、10)。
第2轮:使用第1轮中的矩阵,将第一行左转1,第二行左转2,第三行左转3,并颠倒第四行的顺序。在我们的例子中。
B C D A
G H E F
L I J K
P O N M现在,将每一列mod 26和结果添加到运行的总数中。新的运行总数为(5,7,9.11)。
这个正在运行的总计现在是下一个文本块的第一轮压缩函数的输入。处理完最后一个块后,将最后运行的总数转换为字母。例如。如果消息为ABCDEFGHIJKLMNOP,则哈希为FHJI。
那么,我的问题是,如果存在下一个数据块,我们如何使用散列FHJI呢?
假设我们的数据是ABCDEFGHIJKLMNOP QRSTUVWXYZABCDEF。
如何使用第一个数据块与另一个数据块生成的运行总数?
发布于 2017-04-21 05:35:20
我对玩具四重图哈希的定义的解读是,“运行的总计”是模块26的4个整数,最初位于(0,0,0,0,0)。它通过处理每一个16个字母的消息块来修改。然后,在最后一步,它被转换成字母,形成散列。
因此,在该示例中,在处理ABCDEFGHIJKLMNOP后运行的总数为(5,7,9,11);在处理第二块QRSTUVWXYZABCDEF时使用它,在该块的第一轮之后变为(15,21,1,7),在第二轮之后变为(8,12,16,20)。最后,它被转换为散列IMQU。
发布于 2019-09-06 02:58:51
你的"FHJI“真的是FHJL。第一组(24,2,6,10)产生的总数在所有4列中添加mod 26生成的总数中添加mod 26'd。举例说明。添加mod 26列1 (B,G,L,P) = 7,取该7,并添加mod 26 (7和24) = 5,这是下一个散列FHJL (5,7,9,11)的第一个编号,也是您运行的总数。假设在第三轮中再加一个4x4块,然后再进行另一轮移位和倒转,然后添加mod 26 --第二轮(B,G,L,P)的第一列和第三轮换挡的新(x,x),得到n个结果。(对接下来的三列重复)这将给您一个新的(n,n)。然后将mod 26 --新的(n,n) --添加到运行的total/散列(FHJL) (5、7、9、11)中。这个结果是新运行的总计/散列(n,n)。添加块时重复。
https://crypto.stackexchange.com/questions/46750
复制相似问题