完美的单向散列函数:有没有?

时间:2013-11-07 12:03:23

标签: caching hash

我需要根据输入值执行密集计算,输入值是一个最多100个字符的ASCII字符串。由于计算量很大并且很长,我想将结果缓存到某个输入值。

我的密集计算结果可以完全缓存(相同的输入总是产生相同的输出),如果它不是一个细节:我不能将输入值用作我的缓存的键,因为它是一个敏感的字符串,我不允许将它存储在任何地方超过严格需要的时间。

我考虑过使用加密哈希函数并使用哈希值,但我不能承认冲突;我可以将哈希函数codomain扩展为更大,甚至更大(10000个字符哈希会很好)比输入值长度,但我需要哈希函数是完美单向即可。

我找到了任何一种哈希函数的例子,而不是两者兼有的函数。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用任何不带解密密钥的非对称密码(例如,RSA)。通过这种方式,您可以加密消息,并且它可以没有冲突,因为它理论上可以用解密密钥解密。但实际上它无法解密,因为缺少解密密钥。所以,你的变换将是单向的,没有碰撞。

但是,重要的是:不要使用加密随机会话密钥的现代2级方案。这种机制不保证无碰撞。而是将您的消息拆分为适当大小的块,并以ECB模式加密每个块。