什么是hash函數(shù)

哈希函數(shù)(Hash Function),也稱為散列函數(shù)砂沛,給定一個輸入x崇裁,它會算出相應(yīng)的輸出H(x)。哈希函數(shù)的主要特征是:

  • 輸入x可以是任意長度的字符串
  • 輸出結(jié)果即H(x)的長度是固定的
  • 計算 H(x) 的過程是高效的(對于長度為 n 的字符串 x 掠抬,計算出 H(x) 的時間復(fù)雜度應(yīng)為 O(n) )

另外哈希函數(shù)一般還要求以下兩種特點:

1、免碰撞:即不會出現(xiàn)輸入 x≠y 校哎,但是H(x)=H(y) 的情況两波,其實這個特點在理論上并不成立,比如目前比特幣使用的 SHA256 算法闷哆,會有 2^256 種輸出腰奋,如果我們進行 2^256 + 1 次輸入,那么必然會產(chǎn)生一次碰撞抱怔,事實上劣坊,通過 理論證明 ,通過 2^130 次輸入就會有99%的可能性發(fā)生一次碰撞野蝇,不過即使如此讼稚,即便是人類制造的所有計算機自宇宙誕生開始一直運算到今天,發(fā)生一次碰撞的幾率也是極其微小的绕沈。

2、隱匿性:也就是說帮寻,對于一個給定的輸出結(jié)果 H(x) 乍狐,想要逆推出輸入 x ,在計算上是不可能的固逗。如果想要得到 H(x) 的可能的原輸入浅蚪,不存在比窮舉更好的方法藕帜。

hash 算法的原理是試圖將一個空間的數(shù)據(jù)集映射到另外一個空間(通常比原空間要小)惜傲,并利用質(zhì)數(shù)將數(shù)據(jù)集能夠均勻的映射洽故。目前主流的 hash 算法有:md4md5盗誊、sha系列时甚。

MD4

MD4是麻省理工學(xué)院教授 Ronald Rivest 于1990年設(shè)計出來的算法。其摘要長度為128位哈踱,一般用32位的十六進制來表示荒适。

2004年8月清華大學(xué)教授王小云,指出在計算MD4時可能發(fā)生雜湊沖撞开镣。不久之后刀诬,Dobbertin 等人發(fā)現(xiàn)了MD4在計算過程中第一步和第三步中的漏洞,并向大家演示了如何利用一部普通電腦在幾分鐘內(nèi)找到MD4中的沖突邪财,毫無疑問陕壹,MD4就此被淘汰掉了。

MD5

1991年树埠,Rivest 開發(fā)出技術(shù)上更為趨近成熟的MD5算法糠馆,它在MD4的基礎(chǔ)上增加了"安全-帶子"(safety-belts)的概念。雖然 MD5 比 MD4 復(fù)雜度大一些弥奸,但卻更為安全榨惠。這個算法很明顯的由四個和 MD4 設(shè)計有少許不同的步驟組成。

MD5 擁有很好的抗修改性盛霎,即對原數(shù)據(jù)進行任何改動赠橙,哪怕只修改1個字節(jié),所得到的MD5值都有很大區(qū)別愤炸。

MD5很好的用在了大文件的斷點續(xù)傳上:如果有一個 5MB 的文件 客戶端把它分割成5片 1MB 的文件 在上傳的時候上傳兩個 MD5 值期揪,一個是當(dāng)前上傳的文件片的 MD5 還有一個就是拼接之后的 MD5 (如果現(xiàn)在上傳的是第二片 這個MD5就應(yīng)該是第一片加上第二片的MD5), 通過這樣的方式能保證文件的完整性规个。

當(dāng)如果文件傳到一半斷了凤薛,服務(wù)器可以通過驗證文件 MD5 值就可以得知用戶已經(jīng)傳到了第幾片,并且知道之前上傳的文件有沒有發(fā)生變化诞仓,就可以判斷出用戶需要從第幾片開始傳遞缤苫。

不過在2004年8月的國際密碼學(xué)會議(Crypto’2004),王小云提出了一種快速找到 MD5 碰撞的方法(參見其論文)墅拭,降低了 MD5 的安全性活玲,人們開始尋求更加可靠的加密算法。

SHA系列

SHA的全稱是Secure Hash Algorithm(安全hash算法),SHA系列有五個算法舒憾,分別是 SHA-1镀钓、SHA-224、SHA-256镀迂、SHA-384丁溅,和SHA-512,由美國國家安全局(NSA)所設(shè)計探遵,并由美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)發(fā)布窟赏,是美國的政府標(biāo)準(zhǔn)。后四者有時并稱為 SHA-2别凤。SHA-1在許多安全協(xié)定中廣為使用饰序,包括 TLS/SSL 等,是 MD5 的后繼者规哪。

SHA-1

最初該算法于1993年發(fā)布求豫,稱做安全散列標(biāo)準(zhǔn) (Secure Hash Standard),最初這個版本被稱為"SHA-0"诉稍,它在發(fā)布之后很快就被NSA撤回蝠嘉,因為有很大的安全缺陷,之后在1995年發(fā)布了修訂版本杯巨,也就是SHA-1蚤告。

SHA-0 和 SHA-1 會從一個最大 2^64 位元的訊息中產(chǎn)生一串 160 位元的摘要,然后以 MD4 及 MD5 算法類似的原理來加密服爷。

2017年杜恰,谷歌發(fā)布了最新的研究成功,宣布攻破了SHA-1仍源,并詳細(xì)描述了成功的SHA1碰撞攻擊方式心褐,使用這種方式,可以在亞馬遜的云計算平臺上笼踩,耗時10天左右創(chuàng)建出SHA-1碰撞逗爹,并且成本可以控制在11萬美元以內(nèi)。

即使如此嚎于,對于單臺機器來說攻擊的成本依然很高掘而,發(fā)生一次SHA-1碰撞需要超過9,223,372,036,854,775,808個SHA1計算,這需要使用你的機器進行6500年計算于购。

SHA2

SHA2包括了SHA-224袍睡、SHA-256、SHA-384肋僧,和SHA-512女蜈,這幾個函數(shù)都將訊息對應(yīng)到更長的訊息摘要持舆,以它們的摘要長度(以位元計算)加在原名后面來命名色瘩,也就是說SHA-256會產(chǎn)生256位長度摘要伪窖。

SHA-2相對來說是安全的,至今尚未出現(xiàn)對SHA-2有效的攻擊居兆!

由于目前大量的網(wǎng)站使用的SSL數(shù)字證數(shù)都是使用SHA-1簽名的覆山,而SHA-1又已經(jīng)不安全,各大瀏覽器廠商均宣布了棄用SHA-1的時間表:


可以看出泥栖,在時間表之后簇宽,如果檢測到網(wǎng)站的證書使用的還是SHA-1,就會彈出警告:


為了防止網(wǎng)站因出現(xiàn)上面的警告而顯得不專業(yè)吧享,我們需要盡快的申請使用跟安全放心的基于SHA-2簽名的證書魏割。


待調(diào)查的問題:

  • 生日彩虹表攻擊
  • 字典攻擊
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市钢颂,隨后出現(xiàn)的幾起案子钞它,更是在濱河造成了極大的恐慌,老刑警劉巖殊鞭,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遭垛,死亡現(xiàn)場離奇詭異,居然都是意外死亡操灿,警方通過查閱死者的電腦和手機锯仪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趾盐,“玉大人庶喜,你說我怎么就攤上這事【壤穑” “怎么了久窟?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蜒简。 經(jīng)常有香客問我瘸羡,道長,這世上最難降的妖魔是什么搓茬? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任犹赖,我火速辦了婚禮,結(jié)果婚禮上卷仑,老公的妹妹穿的比我還像新娘峻村。我一直安慰自己,他們只是感情好锡凝,可當(dāng)我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布粘昨。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪张肾。 梳的紋絲不亂的頭發(fā)上芭析,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天,我揣著相機與錄音吞瞪,去河邊找鬼馁启。 笑死,一個胖子當(dāng)著我的面吹牛芍秆,可吹牛的內(nèi)容都是我干的惯疙。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼妖啥,長吁一口氣:“原來是場噩夢啊……” “哼霉颠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起荆虱,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤蒿偎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后克伊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酥郭,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年愿吹,在試婚紗的時候發(fā)現(xiàn)自己被綠了不从。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡犁跪,死狀恐怖椿息,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坷衍,我是刑警寧澤寝优,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站枫耳,受9級特大地震影響乏矾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜迁杨,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一钻心、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铅协,春花似錦捷沸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽说墨。三九已至,卻和暖如春苍柏,著一層夾襖步出監(jiān)牢的瞬間尼斧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工序仙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留突颊,地道東北人。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓潘悼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親爬橡。 傳聞我的和親對象是個殘疾皇子治唤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,781評論 2 361