寻找具有小输入和长输出的单向函数

时间:2013-04-09 07:41:00

标签: algorithm hash cryptography entropy

我正在寻找一种算法,它是一种单向函数,就像Hash函数一样。并且该算法接受小输入(多个位,小于512位),并将其映射到长输出(1K字节或更多)。你知道这样的算法或函数吗?

3 个答案:

答案 0 :(得分:4)

Shannon theorem开始,除了密钥(或创建密文的过程)对于任何输入都不同之外,通过使用大于纯文本的密文来获得任何安全性。即使在这种情况下,您也需要为每个输入x仅分配一个键(或机制),否则您将违反函数的定义。因此,如果您应用加密机制f:X(输入集) - &gt; Y(输出集),然后是|Y| <= |X|

所有这一切都表明,如果您的输入小于512位,则无法通过生成1KB输出获得任何结果。现在,我建议您使用one-way function wiki page

中列出的功能之一

答案 1 :(得分:2)

Keccak具有可变长度输出(虽然未在SHA-3中进行评估),但它的“安全声明与输出长度相关。存在最小输出长度......”和{{3} hash函数的变量输出最高为Skein

答案 2 :(得分:0)

无论您的原因是什么,您都可以使用不同的算法计算相同小数据的哈希值,然后连接这些哈希值。如果输出不够大,请计算哈希的哈希并附加它们。

正如其他答案所指出的,从安全角度来看,这没有多大意义。