什么是哈希算法亏较?哈希是一種加密算法遏佣,也稱為散列函數(shù)或雜湊函數(shù)塔逃。哈希函數(shù)是一個公開函數(shù)讯壶,可以將任意長度的消息M映射成為一個長度較短且長度固定的值H(M),稱H(M)為哈希值湾盗、散列值(Hash Value)伏蚊、雜湊值或者消息摘要。它是一種單向密碼體制格粪,即一個從明文到密文的不可逆映射躏吊,只有加密過程,沒有解密過程帐萎。
Hash的特點
易壓縮:對于任意大小的輸入x比伏,Hash值的長度很小,在實際應(yīng)用中吓肋,函數(shù)H產(chǎn)生的Hash值其長度是固定的凳怨。
易計算:對于任意給定的消息,計算其Hash值比較容易是鬼。
單向性:對于給定的Hash值肤舞,要找到使得在計算上是不可行的,即求Hash的逆很困難均蜜。在給定某個哈希函數(shù)H和哈希值H(M)的情況下李剖,得出M在計算上是不可行的。即從哈希輸出無法倒推輸入的原始數(shù)值囤耳。這是哈希函數(shù)安全性的基礎(chǔ)篙顺。
抗碰撞性:理想的Hash函數(shù)是無碰撞的偶芍,但在實際算法的設(shè)計中很難做到這一點。
有兩種抗碰撞性:一種是弱抗碰撞性德玫,即對于給定的消息匪蟀,要發(fā)現(xiàn)另一個消息,滿足在計算上是不可行的宰僧;另一種是強(qiáng)抗碰撞性材彪,即對于任意一對不同的消息,使得在計算上也是不可行的琴儿。
高靈敏性:這是從比特位角度出發(fā)的段化,指的是1比特位的輸入變化會造成1/2的比特位發(fā)生變化。消息M的任何改變都會導(dǎo)致哈希值H(M)發(fā)生改變造成。即如果輸入有微小不同显熏,哈希運算后的輸出一定不同。