请问如何用c语言实现blake 512 binary tree hash

westyan 发布于 2012/04/27 11:24
阅读 207
收藏 0

blake 512 是sha3的hash function的一种,有存在的c的代码在ebash的网站上,但是我现在遇到的问题是要把这个用tree的方式重新写出来,目前遇到特别的难题,希望有大神可以指教指教

加载中
0
中山野鬼
中山野鬼
把问题,说具体点。只要是C,OS,算法方面的东西我都感兴趣。虽然数据库也敢兴趣,可惜都是一堆应用问题。不是数据库本身的设计问题。
0
中山野鬼
中山野鬼
你想把哪块用树来做?
0
w
westyan
这个问题是这样的,就是要利用已知的compress function来实现,让message block用树来process。
0
w
westyan
就是它这个blake本来是一步一步地把输入的信号运行最后产生输出,但是现在就是希望能让输入的信号在同样的compress function的情况下 ,不是一步一步地被运行而是用树来运行,我就是不知道怎么用树来做这个。
0
中山野鬼
中山野鬼

OK.至少咱两达成了一个公识,SHA是对数据,一步步,或一批批的运行,最后产生输出。也就是说,这写小块,每次参与一次计算的,比如512个bits,通常对应英语的chunk。每个chunk之间是有严格的序列关系的。而树只有严格的父子关系,兄弟之间是没有有序的问题的。我想请教你,如何用树来描述,基于你不额外增加兄弟的序列关系的前提下。

如果增加了,就不是树了,还是个一维序列。

0
w
westyan
我自己对这个也感到十分迷茫,而且我从已经存在的256的树的代码中并没有真正地找到树,所以我才写不出。我也不知道怎么可以把树给套进去,你看过ebash上的关于256的代码吗
0
w
westyan
其实是要把compression function那一部分用树来做,还请指教
0
w
westyan
要让那个输入的message block被运行的时候是按树的那种方式运行。
0
中山野鬼
中山野鬼

哦。我是否可以这样理解,你对一堆数据,希望用树装压缩。类似小波一样。由此,你压缩过程中有树的计算顺序的影子,由此,你的SHA需要对应有树的影子。

其实还是两会是。你可以做你的压缩,用树的遍例方法无所谓。只不过每次遍例一个结点后,进行SHA的处理而已。通常压缩能用到树的计算顺序,会使得如果你的树有N个深度,则所有压缩数据会扫描N遍。这是我的理解。如同你对数据在不同尺度下,做频域变换一样。

w
westyan
虽然还是不怎么懂具体要怎么操作,但是还是谢谢了啊
返回顶部
顶部