日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 密碼學示例——理解哈希(Hash)算法

瀏覽:179日期:2022-07-10 16:36:40

Hash 是密碼學安全性的基石,它引入了單向函數(shù)(one-way function)和指紋(fingerprint)的概念。即:

對于任意輸入,都可以產(chǎn)生相同的、唯一的輸出值 輸出值中不包含輸入值的任何線索

一、保密性(confidentiality)與完整性(integrity)

簡單來說,信息的保密性確保除授權人員以外的任何人都無法讀取該消息,信息的完整性則確保除授權人員以外的任何人都無法修改該消息。很多時候一段加密的消息無法被他人讀取和理解(保密性),并不意味著該密文不會在傳播過程中被截取和惡意修改(完整性)。

信息摘要(message digest)或指紋(fingerprint)技術即用于驗證信息的完整性。

信息摘要需滿足的基本條件為:

相同的文檔永遠會生成相同的摘要(能夠作為身份線索) 生成的摘要“感覺”是隨機的,即摘要中不包含原始文檔的任何信息(無法被破解)

信息摘要也被稱作指紋,即可以代表某份文檔“身份”的一小段數(shù)據(jù),類似于人類的指紋。每個人都可以通過指紋驗證其身份,但該指紋并不包含其身體的所有信息。文檔的指紋也是如此,可以很方便快速的通過文檔內(nèi)容計算得出一小段唯一的指紋數(shù)據(jù)作為其身份證明,但是只有指紋數(shù)據(jù)就幾乎不可能得出原始文檔的內(nèi)容。

對于兩份文檔,只需要比對其信息摘要(指紋)是否一致,就可以確保其內(nèi)容是否相同,在傳播過程中是否被人惡意修改。同時該指紋信息也不會造成原始文檔本內(nèi)容的泄露。

二、MD5

MD5 是一種比較古老的哈希算法,其名字中的 MD 即代表 message digest。它可以從任意大小的文檔計算出一個唯一的 16 字節(jié)長度的摘要數(shù)據(jù)。

PS:鑒于 MD5 較悠久的歷史和不夠長的摘要長度,不推薦在安全性很敏感的場景中使用該算法。

>>> from hashlib import md5>>> md5(b’alice’).hexdigest()’6384e2b2184bcbf58eccf10ca7a6563c’>>> md5(b’bob’).hexdigest()’9f9d51bc70ef21ca5c14f307980a29d8’>>> md5(b’balice’).hexdigest()’6760742ebf884c998752b4e082b78224’>>> md5(b’cob’).hexdigest()’386685f06beecb9f35db2e22da429ec9’>>> md5(b’a’).hexdigest()’0cc175b9c0f1b6a831c399e269772661’>>> md5(b’aa’).hexdigest()’4124bc0a9335c27f086f24ba207a4912’>>> md5(b’aa’ * 100000).hexdigest()’561b1994f6baacd6e5eaf4baaa12849f’>>> md5(b’alice’).hexdigest()’6384e2b2184bcbf58eccf10ca7a6563c’

從輸出中可以看出,針對不同的輸入內(nèi)容(即便相似度很高,比如 bob 和 cob),摘要算法生成的輸出是發(fā)散的,彼此之間沒有相似性,像是隨機生成的結(jié)果。但是對于任意相同的輸入,生成的摘要數(shù)據(jù)則都是確定的、唯一的。

三、哈希算法的規(guī)則

一般我們提到哈希算法,都會關聯(lián)到密碼學、安全性等場景中,實際上我們很早就接觸了一種完全“非密碼學”的哈希場景。比如小時候跟老師學習判斷一個數(shù)是奇數(shù)還是偶數(shù)。。。從本質(zhì)上看,哈希函數(shù)的目的是將巨大(甚至無窮大)數(shù)量的事物映射到一個相對較小的數(shù)據(jù)集中。比如 MD5,不管輸入的文檔有多大,最終都會生成一個固定長度(16 字節(jié))的十六進制數(shù)字作為指紋。這就意味著 MD5 的輸入集合,實際上是大于其輸出集合的。即只要輸入文檔的集合足夠大(很大很大),就有可能出現(xiàn)重復的指紋信息。

這和判斷數(shù)字奇偶是相通的。不管某個數(shù)字有多大多奇特,我們永遠可以將它“壓縮”成奇數(shù)或偶數(shù),用 1 bit 的 1 或 0 表示就可以。但是只說明某個未知數(shù)字是奇數(shù)(或偶數(shù)),我們就無法猜出該數(shù)字的準確值。

上面的邏輯驗證了哈希函數(shù)共有的 3 個特性:

consistency(一致性):相同的輸入只會生成相同的輸出信息 compression(壓縮):可以將體量很大的輸入壓縮成一個固定大小的輸出 lossiness(有損的):只通過檢查輸出無法反向計算出輸入值

但是對于一個滿足密碼學安全的哈希函數(shù)而言,除以上三點以外還需要具有如下屬性:

Preimage resistance Second-preimage resistance Collision resistance

Preimage Resistance

哈希函數(shù)的 preimage 是指能夠生成同一個特定指紋的所有輸入的合集。即對于某個哈希函數(shù) H 與摘要 k,所有能夠生成 k 的輸入值 x (滿足 H(x) = k)共同組成了 H 與 k 的 preimage。

preimage resistance 的意義即為,在僅僅只是知曉某個摘要的前提下,通過有限的計算無法獲取其 preimage 中的任何一個元素。即只通過結(jié)果無法知曉輸入。摘要中不包含原始文檔的任何信息(lossiness),無法通過逆向運算的方式由摘要反推出原始輸入。只能隨機地嘗試任意輸入,以期碰巧得到同樣的摘要信息(暴力破解)。

因此前面提到的奇偶函數(shù)就不能作為一個安全的哈希函數(shù)使用。假設使用奇偶作為哈希函數(shù)(奇數(shù)輸出 1,偶數(shù)輸出 0),則對于摘要 1,總可以很輕易的在 preimage(此處是全體奇數(shù))中找到任意多個摘要同為 1 的元素。這意味著原始輸入可以輕易被修改而不影響指紋數(shù)據(jù),則該指紋作為信息完整性的驗證條件就失去了意義。

但是對于較安全的哈希算法如 MD5,由 MD5(x) = ca8a0fb205782051bd49f02eae17c9ee 就無法在有限的計算內(nèi)找到確定的 x 的值。MD5 生成 16 字節(jié)(16 * 8 = 128bit)長度的摘要,其中可以包含 2^128 種不同的數(shù)字組合。因此使用暴力破解的話,最多需要嘗試 2^128 = 340282366920938463463374607431768211456 次!假設每秒鐘可以嘗試一百萬條輸入,仍需要 10^26 年完成所有驗證操作!

Second-Preimage Resistance 與 Collision Resistance

second-primage resistance 是指即便知曉某個原始文檔以及由該文檔生成的摘要數(shù)據(jù),仍很難計算可以出生成同樣摘要的另一個不同的文檔。即在已知 MD5(alice) = 384e2b2184bcbf58eccf10ca7a6563c 的情況下,仍無法找出除 alice 以外的另一個輸入生成同樣的摘要。為了尋求可以替換掉 alice 的另一個值,同時不影響摘要認證,達到混淆的目的,最終仍需使用暴力破解的方式。

collision resistance 是指很難找出任意兩個生成相同摘要(相同而非特定)的輸入值??梢詤⒖肌吧諉栴}”,即在一個班級中,存在兩個生日為同一天的學生的概率遠比存在一個生日為特定日期的學生的概率大得多。

collision resistance 的意義在于,無法故意找出兩套符合同一指紋的輸入以達到混淆的目的。比如 MD5 算法:

>>> from hashlib import md5>>> md5(’bob’).hexdigest()’9f9d51bc70ef21ca5c14f307980a29d8’>>> md5(’cob’).hexdigest()’386685f06beecb9f35db2e22da429ec9’

對于很相似的輸入 bob 和 cob,其指紋信息的差異卻非常大,沒有任何可供預測的規(guī)律。這得益于一種稱為 avalanche property 的特性:輸入的微小變化總可以在輸出中產(chǎn)生巨大的無法預測的差異。

由前面提到的生日問題可知,找出兩個生成相同指紋的元素遠比找出某個可以生成特定指紋的元素要容易的多。以 MD5 算法的暴力破解為例,后者往往需要做 2^128 次嘗試,而前者只需要 2^64 次嘗試。現(xiàn)實中 MD5 的 collision resistance 遠非想象中那么優(yōu)異,甚至存在一種非暴力破解的方式 能夠在一小時以內(nèi)攻破 MD5 的 collision resistance。所以盡量不要使用 MD5 這個已經(jīng)不再維護超過 10 年、安全漏洞存在 20 年的古老算法。

參考資料

Practical Cryptography in Python: Learning Correct Cryptography by Example

以上就是python密碼學示例——理解哈希(Hash)算法的詳細內(nèi)容,更多關于python 哈希(Hash)算法的資料請關注好吧啦網(wǎng)其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
97精品视频在线看| 国产成人免费精品| 成人自拍av| 久久精品99久久无色码中文字幕| 丝袜美腿诱惑一区二区三区 | 精品国产不卡一区二区| 久久精品国产福利| 欧美日韩在线观看视频小说| 中文av在线全新| 久久国产影院| 天堂va蜜桃一区二区三区| 欧美资源在线| 国内自拍视频一区二区三区| 香蕉精品久久| 婷婷五月色综合香五月| 精品中文字幕一区二区三区 | 亚洲精品福利电影| 国产一级久久| 中文字幕日韩欧美精品高清在线| 日韩中文字幕无砖| 国产aⅴ精品一区二区四区| 午夜精品婷婷| 精品国产一区二| 美女久久一区| 国产一区二区三区四区大秀| 性一交一乱一区二区洋洋av| 麻豆精品一区二区综合av| 国产亚洲高清视频| 久久精品系列| 青草国产精品| av一区二区高清| 国产一区二区三区亚洲| 日本精品在线播放| 亚洲性色av| 欧美激情麻豆| 伊人久久大香伊蕉在人线观看热v| 精品久久不卡| 日韩久久一区| 午夜久久一区| 国产乱论精品| 日韩有吗在线观看| 日本精品不卡| 四虎国产精品免费观看| 亚洲精品第一| 亚洲精品极品| 日韩一区二区三区在线看| 久久xxxx精品视频| 日韩视频免费| 国产在线看片免费视频在线观看| 国产日韩中文在线中文字幕| 亚洲乱亚洲高清| 亚洲人成亚洲精品| 亚洲欧洲av| 视频国产精品| 欧美欧美黄在线二区| 日本亚洲最大的色成网站www| 亚洲视频国产| 日韩黄色在线观看| 亚洲精品一二| 天堂精品久久久久| 麻豆亚洲精品| 视频精品一区二区| 亚洲色图综合| 精品一区三区| 日韩毛片在线| 九九久久电影| 亚洲毛片在线| 国产精品videossex久久发布| 麻豆精品视频在线| 色在线中文字幕| 亚洲一区欧美激情| 日韩一区二区三区精品| 久久这里只有精品一区二区| 成人午夜在线| 91精品蜜臀一区二区三区在线| 日韩精品网站| 在线看片日韩| 国产精品激情| 福利欧美精品在线| 久久视频国产| 欧美亚洲免费| 视频福利一区| 日韩在线电影| 99精品视频在线| 日本中文字幕视频一区| www.51av欧美视频| 三级一区在线视频先锋| 国模大尺度视频一区二区| 亚洲视频综合| 国产精品porn| 三级一区在线视频先锋| 国产精品99久久精品| 亚洲免费一区三区| 亚洲美女久久精品| 丝瓜av网站精品一区二区| 91亚洲一区| 欧美日韩精品一区二区三区视频| 久久久夜精品| 久久99久久人婷婷精品综合| 久久99伊人| 999国产精品999久久久久久| 欧美亚洲综合视频| 久久国产精品99国产| 中文字幕成在线观看| 国产区精品区| 中文字幕一区日韩精品| 久久精品亚洲人成影院| 蜜桃久久久久| 日韩专区欧美专区| 久久三级福利| 亚洲欧洲高清| 成人国产精品一区二区网站| 国产精品多人| 国产精品亲子伦av一区二区三区| 免费成人av在线播放| 亚洲黄页一区| 日韩午夜一区| aⅴ色国产欧美| 欧美日韩四区| 日韩午夜电影| 蜜臀精品一区二区三区在线观看 | 久久不见久久见国语| 日韩av资源网| 国产精品一区二区精品 | 日韩一区二区三区在线看| 日韩综合小视频| 久久99精品久久久久久园产越南 | 男女男精品网站| 亚洲精品进入| 青青青国产精品| 久久久久97| 欧美黄色网页| 亚洲伦乱视频| 欧美日韩国产探花| 亚洲人成网77777色在线播放| 亚洲精品一级| 嫩呦国产一区二区三区av| 国产精品成久久久久| 精品中文字幕一区二区三区av| 亚洲欧洲午夜| 国产欧美日韩精品一区二区免费| 国产探花一区在线观看| аⅴ资源天堂资源库在线| 午夜精品免费| 国产精品三p一区二区| 国产白浆在线免费观看| 国产精品7m凸凹视频分类| 亚洲综合三区| 国产免费播放一区二区| 日韩av专区| 热久久国产精品| 麻豆一区二区三| 欧美成人精品| 国产精品一区二区精品| 欧美日韩国产高清| 嫩草伊人久久精品少妇av杨幂| 国产99久久| 免费在线亚洲欧美| 国产亚洲午夜| 国产精品99久久精品| 蜜芽一区二区三区| 丰满少妇一区| 免费成人在线影院| 成人一区而且| 日韩中文字幕| 欧美1区免费| 成人欧美一区二区三区的电影| 欧美日韩一二三四| 精品美女久久| 在线观看一区| 99精品在线观看| 久久香蕉网站| 国产精品黄色| 97成人在线| 四虎精品永久免费| 爽好久久久欧美精品| 久久在线免费| 国产欧美一区二区三区精品酒店| 久久精品99国产精品日本| 老司机精品久久| 亚洲女同一区| 欧美一区二区三区高清视频| 国产v日韩v欧美v| 国产精品二区不卡| 黄色网一区二区| 亚洲18在线| 国产精品人人爽人人做我的可爱| 国产欧美日韩一区二区三区在线| 女主播福利一区| 亚洲精品影视| 麻豆成人av在线| 欧美a级一区| 亚洲久久在线| 另类小说一区二区三区| 日韩精品免费一区二区在线观看| 先锋亚洲精品| 国产日韩在线观看视频| 日韩精品水蜜桃| 日本午夜精品久久久久| 日韩在线高清|