hash碰撞解決方法 hash函數(shù)強(qiáng)抗碰撞性和弱碰撞性的區(qū)別?
hash函數(shù)強(qiáng)抗碰撞性和弱碰撞性的區(qū)別?對(duì)于哈希函數(shù),強(qiáng)沖突:如果隨機(jī)找到兩條消息M1和M2,使得值H(M1)=H(M2)被哈希函數(shù)加密,則表示存在沖突。如果這種碰撞無法實(shí)現(xiàn),則稱為碰撞穩(wěn)定。hash
hash函數(shù)強(qiáng)抗碰撞性和弱碰撞性的區(qū)別?
對(duì)于哈希函數(shù),強(qiáng)沖突:如果隨機(jī)找到兩條消息M1和M2,使得值H(M1)=H(M2)被哈希函數(shù)加密,則表示存在沖突。如果這種碰撞無法實(shí)現(xiàn),則稱為碰撞穩(wěn)定。hash函數(shù)的另一個(gè)安全問題是弱沖突:如果給定一個(gè)消息M1并搜索該消息M2,使得值H(M1)=H(M2)被hash函數(shù)加密,則表示存在沖突。如果不能實(shí)現(xiàn)這樣的碰撞,則稱為第二原語穩(wěn)像。
強(qiáng)碰撞:可以抵抗強(qiáng)碰撞的哈希函數(shù)
弱碰撞:只能抵抗弱碰撞的哈希函數(shù)。
hash算法的數(shù)學(xué)原理是什么,如何保證盡可能少的碰撞?
基于概率分析
使用哈希函數(shù)時(shí)選擇“正確”的哈希函數(shù)可以大大減少?zèng)_突
例如,bkdrhash可以用于字符串哈希
當(dāng)然,也可以根據(jù)輸入數(shù)據(jù)的特點(diǎn)設(shè)計(jì)哈希算法
哈希函數(shù)等價(jià)于映射將原始空間中的一個(gè)數(shù)據(jù)集轉(zhuǎn)換為另一個(gè)空間例如MD5,任何原始文本都將被加密為8位或16位密文。8位和16位密文是有限的,可以窮盡,但原始文本的長(zhǎng)度是無限的,因此理論上是無限的。兩個(gè)或多個(gè)不同的原始文本在MD5加密沖突后會(huì)變成同一個(gè)密文就是找出一個(gè)或多個(gè)加密文本的同一個(gè)密文
沖突確實(shí)存在并且不能完全解決。我們只能盡可能地降低沖突概率,即映射空間或加密密文越長(zhǎng),密文的組合方式越多,沖突概率越小