我正在寻找一种算法,它是一种单向函数,就像Hash函数一样。并且该算法接受小输入(多个位,小于512位),并将其映射到长输出(1K字节或更多)。你知道这样的算法或函数吗?
答案 0 :(得分:4)
从Shannon theorem开始,除了密钥(或创建密文的过程)对于任何输入都不同之外,通过使用大于纯文本的密文来获得任何安全性。即使在这种情况下,您也需要为每个输入x
仅分配一个键(或机制),否则您将违反函数的定义。因此,如果您应用加密机制f:X(输入集) - &gt; Y(输出集),然后是|Y| <= |X|
。
所有这一切都表明,如果您的输入小于512
位,则无法通过生成1KB
输出获得任何结果。现在,我建议您使用one-way function wiki page
答案 1 :(得分:2)
答案 2 :(得分:0)
无论您的原因是什么,您都可以使用不同的算法计算相同小数据的哈希值,然后连接这些哈希值。如果输出不够大,请计算哈希的哈希并附加它们。
正如其他答案所指出的,从安全角度来看,这没有多大意义。