Mar*_*rek 9 hash md5 cryptography combinatorics
这是一个组合学问题,需要一些哈希算法的理论.
假设输入可以是30 kB到5 MB大小的任意随机字节序列(我想这会产生很多输入值的组合:))
对于不同的文件,从字节序列计算的MD5哈希的前4个字节(或前n个字节)的概率是多少?
如果不能专门为MD5哈希计算,那么生成均匀分布的m字节哈希值的任何哈希函数在给定输入范围的前n个字节上计算哈希与冲突的概率是多少?
在没有关于字节值概率的更多信息的情况下,我想它在2 ^ 32中是1.
编辑.实际上,如果您使用的是十六进制字符而不是纯字节,那么1 ^ 2 ^ 16.
根据评论编辑:
可以认为MD5是统一的,计算值绝对是随机的吗?
MD5哈希算法的设计使得输入中的一个小变化导致完全不同的哈希,所以我会说MD5哈希字节以相同的概率分布(我不会在它上面打赌任何东西).无论如何,您可以对哈希应用后处理(例如,您可以使用键控MD5)来增加其随机性(并且使其更安全,顺便说一句,因为普通的MD5哈希已被证明是不安全的).
| 归档时间: |
|
| 查看次数: |
6366 次 |
| 最近记录: |