女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

解析加密貨幣中最常用的四種加密哈希函數(shù)的特性和差異

物聯(lián)網(wǎng)芯片 ? 來源:物聯(lián)網(wǎng)芯片 ? 作者:物聯(lián)網(wǎng)芯片 ? 2018-05-11 16:30 ? 次閱讀

你真是個特別的人

誰能想到,我們之前用作校驗文件,核驗數(shù)據(jù)的一種算法,現(xiàn)在卻奠定了區(qū)塊鏈數(shù)字貨幣帝國大廈,這個算法有很多名字,比如一般叫做哈希算法(HASH的英文而來),有的也稱在雜湊算法(很形象~~)或者散列算法等(以下我們統(tǒng)稱哈希)。那么現(xiàn)在我們就來解開這種算法的層層面紗,在本文中,我們將解析加密貨幣中最常用的四種加密哈希函數(shù)的特性和差異。但在此之前,還是需要了解哈希的含義。

什么是HASH(哈希)

簡單來說,哈希意味著輸入任意長度的字符串通過密碼運算來實現(xiàn)固定長度的輸出。在像比特幣這樣的加密貨幣的情況下,交易被視為輸入并通過哈希算法(比特幣使用SHA-256)運行(該算法提供固定長度的輸出)。

先了解下哈希算法是如何工作的。我們以SHA-256(256位安全哈希算法)為例。

在SHA-256的情況下,無論你的輸入有多大或多小,輸出總是有一個固定的256位長度。這對于處理大量的數(shù)據(jù)和事務校驗時非常關(guān)鍵,這里先看看哈希函數(shù)的各種特性以及它們在區(qū)塊鏈中的實現(xiàn)方式。

加密哈希算法特性

哈希算法其特俗的特性使得非常適合密碼應用,加密哈希算法具有以下幾個特性:

特性 1:確定性

這意味著無論 你通過哈希函數(shù)解析特定輸入多少次, 你都會得到相同的結(jié)果。這是至關(guān)重要的,因為如果每次都得到不同的哈希值,就不可能跟蹤輸入。

特性2:快速計算

哈希函數(shù)應該能夠快速返回輸入的哈希。

性質(zhì)3:單向性

單向性指的是:假設A是輸入數(shù)據(jù)并且H(A)是輸出哈希結(jié)果,假設給定H(A)來倒推出A是“不可行”的(注意使用“不可行”一詞而不是“不可能”)。

因為我們已經(jīng)知道從它的哈希值中確定原始輸入并不是“不可能”的。舉個例子吧。

假設你擲骰子,輸出是骰子出現(xiàn)的數(shù)字的哈希。我們將如何確定原始號碼是什么?很簡單,所要做的就是從1-6中找出所有數(shù)字的哈希值并進行比較。由于哈希函數(shù)是確定性的,所以特定輸入的哈希總是相同的,因此 我們可以簡單地比較哈希并找出原始輸入。

但是,只有在給定的數(shù)據(jù)量非常少的情況下,這才有效。當你有大量的數(shù)據(jù)時會發(fā)生什么?假設你正在處理128位哈希。唯一必須找到原始輸入的方法是使用“暴力群舉”。暴力群舉基本上意味著你必須選取一個隨機輸入,對其進行哈希,然后將輸出與目標哈希進行比較并重復,直到找到匹配。

如果你使用這種暴力方法后:

最好的結(jié)果: 你可能在第一次嘗試時獲得答案,不過這只是理論上的可能,因為他的概率是2的128次方分之1(自己去算算)。

最壞的情況:你在2 ^ 128 - 1次之后得到答案。基本上,這意味著你會在所有數(shù)據(jù)的末尾找到你的答案。

平均情景:在2 ^ 128/2 = 2 ^ 127次之后, 你會在中間的某處找到它。從這個角度來看,2 ^ 127 = 1.7 *10 ^ 38。換句話說,這是一個巨大的數(shù)字。

所以,雖然可以通過暴力方法來打破單向性,但同時也要有巨大的算力投入。

特性4:雪崩效應。

即使 你對原始輸入數(shù)據(jù)進行了小改動,哈希的結(jié)果差異也非常大。讓我們使用SHA-256對其進行測試:

pIYBAFr1VVCAX5i_AACA70PLXvc100.png

即使你只是改變了輸入的第一個字母表的大小寫,看看它對輸出哈希值有多大影響。

這個特性也被稱為雪崩效應。

性質(zhì)5:防碰撞

給定兩個不同的輸入A和B,其中H(A)和H(B)是它們各自的哈希,H(A)等于H(B)是不可行的。這意味著大多數(shù)情況下,每個輸入都會有自己獨特的哈希。為什么我們說“大部分”?為了理解這一點,我們需要知道什么是“生日悖論”。

什么是生日悖論?

如果你在街上碰到任何陌生人,那么你們兩個都有相同的生日的可能性非常低。事實上,假設一年中的所有日子都有生日的可能性,另一個人分享你的生日的機會是1/365,這是0.27%:概率非常低。

不過,如果你在一個房間里聚集20-30人,那么兩個分享完全相同生日的人的幾率會大幅度上升。

pIYBAFr1VVCAWH6bAADeefB-p2Y861.png

生日悖論

這是基于一個簡單的概率原理:

假設你有一個事件發(fā)生N種不同的可能性,那么你需要N個隨機項的平方根,以使它們有50%的碰撞幾率。

因此,將這個理論應用于生日時, 你有365種不同的生日可能性,所以 你只需要Sqrt(365),即約23%,隨機選擇兩個人分享生日的可能性為50%。

假設你有一個128位哈希,有2 ^ 128種不同的可能性。通過使用生日悖論,你有50%的幾率在sqrt(2 ^ 128)= 2 ^ 64的情況下打破防碰撞機制。

正如你所看到的,打破防碰撞要比打破單向性容易得多。所以,如果你使用的是SHA-256這樣的函數(shù),假設如果H(A)= H(B),那么A = B是可以認為成立。

那么,你如何創(chuàng)建一個抗碰撞的哈希函數(shù)?為此,我們使用一種稱為Merkle-Damgard的結(jié)構(gòu)。

什么是Merkle-Damgard結(jié)構(gòu)?

該結(jié)構(gòu)非常簡單,并且遵循以下原則:給定短消息的防碰撞哈希函數(shù),我們可以為長消息構(gòu)造防碰撞哈希函數(shù)。

pIYBAFr1VVCAXHEMAABYNu7OqGI267.png

圖片來源:youtube

記住上面的圖表,注意以下幾點:

較大的消息M被分解為m [i]的較小塊。

哈希函數(shù)H由許多較小的哈希函數(shù)“h”組成。

“h”是一個較小的哈希函數(shù),又稱壓縮函數(shù),它接收一小塊消息并返回一個哈希。

第一個哈希函數(shù)“h”(在上圖中圈出)接收第一個消息塊(m [0]),并添加一個固定值IV并返回哈希值。

哈希現(xiàn)在被添加到第二個消息塊并通過另一個哈希

函數(shù)h,并且這一直持續(xù)到最后的消息塊,其中填充塊PB也被添加到消息中。

每個壓縮函數(shù)h的輸出被稱為鏈接變量。

填充塊是一系列1和0。在SHA-256算法中,PB長64位。

哈希壓縮函數(shù)h的輸出是大消息M的輸出。

既然已經(jīng)了解了哈希方法以及加密哈希函數(shù)的特性,讓我們熟悉一些加密貨幣中最常用的加密哈希函數(shù)。

先把幾種加密哈希算法列出來:

MD 5:它產(chǎn)生一個128位哈希。在~2 ^ 21哈希后,防碰撞機制被打破。

SHA 1:生成一個160位哈希。經(jīng)過2 ^ 61次哈希后,防碰撞機制被打破。

SHA 256:產(chǎn)生一個256位哈希。這是目前比特幣正在使用的。

Keccak-256:產(chǎn)生256位哈希,目前由Ethereum使用。

RIPEMD-160:產(chǎn)生160個輸出,由比特幣腳本(和SHA-256)使用。

CryptoNight:Monero使用的哈希函數(shù)。

安全哈希算法(SHA)

安全哈希算法是由美國國家標準與技術(shù)研究院(NIST)發(fā)布的美國聯(lián)邦信息處理標準(FIPS)的一系列加密哈希函數(shù)。SHA由以下算法組成:

SHA-0:指1993年發(fā)布的名為“SHA”的原始160位哈希函數(shù)。由于未公開的“重大缺陷”,并在稍后修訂的版本SHA-1中取而代之,它在出版后不久被撤回。

SHA-1:當SHA-0傳送失敗時被引入。這是一個160位哈希函數(shù),類似于早期的MD5算法。這是由國家安全局(NSA)設計的數(shù)字簽名算法的一部分。然而,人們注意到加密圖形的弱點之后不久就被拋棄了。

SHA-2:現(xiàn)在我們來看一下哈希函數(shù)中最受歡迎的類別之一。它是由NSA使用Merkle-Damgard范例設計的。它們是具有不同字長的兩種哈希函數(shù)族:SHA-256和SHA-512。比特幣使用SHA-256

SHA-3:之前被稱為keccak,它在2012年被非NSA設計師的公開競爭之后選中。它支持與SHA-2相同的哈希長度,其內(nèi)部結(jié)構(gòu)與SHA系列的其他部分有很大不同。以太坊使用這個哈希函數(shù)。

pIYBAFr1VVCAN4juAAFSO4bbED4693.png

圖片來源:維基百科

讓我們仔細看看SHA-256和SHA-3。

SHA-256

SHA-256是一個SHA-2函數(shù),它使用32個單詞,而不是使用64位單詞的SHA-512。比特幣在以下兩種情況下使用SHA-256:

采礦。

創(chuàng)建地址。

采礦:

比特幣采礦涉及礦工解決復雜的計算難題,以找到一個塊,然后將其附加到比特幣區(qū)塊鏈。就是我們經(jīng)常稱的工作量證明(proof-of-work),它涉及SHA-256哈希函數(shù)的計算。

創(chuàng)建比特幣地址、;

SHA-256哈希函數(shù)用于哈希比特幣公鑰以生成公共地址。哈希密鑰為身份認證增加了一層額外的保護。此外,哈希地址的長度僅比存儲更好的比特幣公鑰更短。

SHA-256運行實例:

輸入:Hi

輸出:98EA6E4F216F2FB4B69FFF9B3A44842C38686CA685F3F55DC48C5D3FB1107BE4

SHA-3

如上所述,這種算法以前被稱為keccak,并被以太坊使用。它是在non-NSA設計師的公開競賽之后創(chuàng)建的。SHA-3使用“海綿(sponge)機制”。

什么是海綿機制?

pIYBAFr1VVGAf6LDAAA4wXYfpAU749.png

圖片來源:維基百科

海綿功能是具有有限內(nèi)部狀態(tài)的一類算法,其獲取任意長度的輸入比特流并產(chǎn)生預定長度的輸出比特流。

在繼續(xù)之前,我們需要定義一些術(shù)語:

我們知道,在海綿功能中,數(shù)據(jù)被“吸收”到海綿中,然后將結(jié)果“擠出”。

所以有一個“吸收”階段和一個“擠壓”階段。

SHA-3舉例:

輸入:Hi

輸出:154013cb8140c753f0ac358da6110fe237481b26c75c3ddc1b59eaf9dd7b46a0a3aeb2cef164b3c82d65b38a4e26ea9930b7b2cb3c01da4ba331c95e62ccb9c3

RIPEMD-160哈希函數(shù)

RIPEMD是由比利時魯汶的Hans Dobbertin,Antoon Bosselaers和Bart Preneel在魯汶Katholieke大學的COSIC研究小組開發(fā)的一系列加密哈希函數(shù),并于1996年首次發(fā)布。

雖然RIPEMD基于MD4的設計原則,但其性能與SHA-1非常相似。RIPEMD-160是這種哈希函數(shù)的160位版本,通常用于生成比特幣地址。

比特幣公鑰首先通過SHA-256哈希函數(shù)運行,然后通過RIPEMD-160運行。這樣做的原因是因為160位的輸出比256位小很多,這有助于節(jié)省空間。

除此之外,RIPEMD-160是唯一性哈希函數(shù),可以產(chǎn)生最短哈希,其唯一性仍然得到充分保證。

pIYBAFr1VVGADtZcAACMTf-K0v4107.png

圖片來源:維基百科

上面的圖像顯示了RIPEMD-160哈希算法壓縮函數(shù)的子塊快照。

RIPEMD -160實例:

輸入:Hi

輸出:242485ab6bfd3502bcb3442ea2e211687b8e4d89

CryptoNight哈希函數(shù)

現(xiàn)在我們擁有由Monero使用的CryptoNight哈希函數(shù)。與比特幣不同,Monero希望他們的采礦盡可能地不利于GPU。他們可以做到這一點的唯一方法是讓他們的哈希算法難以記憶。

輸入CryptoNight

CryptoNight是一種內(nèi)存硬件哈希函數(shù)。它被設計為在GPU,FPGAASIC體系結(jié)構(gòu)上無法有效計算。CryptoNight的工作原理如下:

該算法首先用偽隨機數(shù)據(jù)初始化一個大暫存器。

之后,大量的讀/寫操作發(fā)生在偽隨機地址上

包含在便簽簿中。

最后,整個暫存器被哈希以產(chǎn)生最終值。

下圖顯示了CryptoNight哈希算法的示意圖。

pIYBAFr1VVGAD6DJAACMMAP1v2I460.png

CryptoNight哈希算法的示意圖。

圖片來源:Dave’s Data

CryptoNight實例:

輸入:This is a test

輸出:a084f01d1437a09c6985401b60d43554ae105802c5f5d8a9b3253649c0be6605

結(jié)論

加密貨幣中最常用的四種哈希算法基本都在這里了。對他們的工作方式有一個基本的認知將讓我們更好的理解各類數(shù)字貨幣的區(qū)別(比如采礦)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 哈希函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    9570
  • 比特幣
    +關(guān)注

    關(guān)注

    57

    文章

    7007

    瀏覽量

    142818
  • 數(shù)字貨幣
    +關(guān)注

    關(guān)注

    36

    文章

    3135

    瀏覽量

    49590

原文標題:全面解析區(qū)塊鏈數(shù)字貨幣4種哈希算法原理與差異

文章出處:【微信號:iotbanks,微信公眾號:iotbanks】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    英偉達GPU慘遭專業(yè)礦機碾壓,黃仁勛宣布砍掉加密貨幣業(yè)務!

    `世界最大的顯卡和圖形芯片制造商英偉達正式宣布退出加密貨幣業(yè)務。公司首席財務官Colette Kress在聲明中表示:“我們認為公司已經(jīng)進入一個正常時期,公司在預期的未來內(nèi)并沒有加密貨幣
    發(fā)表于 08-24 10:11

    Labview實現(xiàn)哈希MD5加密

    本帖最后由 周一一一一 于 2019-7-3 15:31 編輯 已封裝哈希MD5加密,調(diào)用子vi即可。
    發(fā)表于 07-03 12:10

    Labview實現(xiàn)哈希MD5加密

    已封裝哈希MD5加密,調(diào)用子vi即可。網(wǎng)上下載的程序。保存在這里。
    發(fā)表于 11-19 14:30

    單片機最常用四種燒寫方式是什么?

    單片機最常用四種燒寫方式是什么?
    發(fā)表于 09-27 07:53

    哈希加密有什么區(qū)別?

    哈希加密有什么區(qū)別
    發(fā)表于 10-09 06:29

    什么是加密貨幣_加密貨幣劫持暴增的原因及防范

    本文開始介紹了加密貨幣的概念,其次介紹了加密貨幣劫持暴增及中國成勒索軟件威脅重災區(qū),最后介紹了加密貨幣
    的頭像 發(fā)表于 04-13 16:25 ?1.4w次閱讀

    加密貨幣投資的五個風險解析

    隨著加密貨幣的普及,許多會計師發(fā)現(xiàn)他們面臨著來自客戶和同事提出的關(guān)于如何管理加密貨幣資產(chǎn)、支付和相關(guān)稅務的問題。如果您的客戶開始表現(xiàn)出對加密
    發(fā)表于 10-18 11:49 ?1988次閱讀

    加密貨幣檢視系統(tǒng)“Algory”有超過100方式來分析加密貨幣的火熱度

    即時創(chuàng)建全自動萬用篩選器及警示器來掃描加密貨幣市場。此檢視器會徹底改變你搜尋及挑選用來交易的加密貨幣之方法!借由超過100不同的篩選及警示
    發(fā)表于 10-19 15:02 ?1784次閱讀

    加密貨幣促進傳統(tǒng)業(yè)務發(fā)展的六方式

    創(chuàng)建加密貨幣平臺是為了完善和促進業(yè)務的引進,創(chuàng)建加密貨幣的計劃之一就是繞過國家機構(gòu),方便用貨幣進行交易。但是今天,國家已經(jīng)改變了對
    發(fā)表于 03-19 15:09 ?937次閱讀

    加密貨幣可分為哪些類型

    比特幣是一加密貨幣,乙太幣同樣也是;但二者的屬性不同。加密貨幣可分為二大類:Coins 與Tokens。被做為「
    發(fā)表于 05-24 11:39 ?8590次閱讀

    如何解決加密貨幣礦業(yè)中面臨的各種困難挑戰(zhàn)

    加密貨幣挖掘是驗證各種形式的加密貨幣的交易并將其添加到區(qū)塊鏈數(shù)字總賬的過程。每組交易在一個塊中處理。礦工通過創(chuàng)建與塊中交易關(guān)聯(lián)的哈希值來保護
    發(fā)表于 12-17 09:10 ?1595次閱讀

    英偉達重磅推出加密貨幣挖礦處理器

    據(jù)了解,英偉達將限制 GeForce RTX 3060 GPU 的哈希率,以降低其對加密貨幣從業(yè)者的吸引力。RTX 3060 軟件驅(qū)動旨在檢測以太坊加密
    的頭像 發(fā)表于 02-20 11:15 ?3120次閱讀

    基于可編程哈希函數(shù)的HIBE加密方案

    在標準模型下,格上基于分級身份的加密(HBE)方案的陷門生成計算復雜度較高。針對該問題,提出基于可編程哈希函數(shù)的HBE加密方案。利用MPI
    發(fā)表于 06-03 15:57 ?11次下載

    區(qū)塊哈希競猜游戲系統(tǒng)開發(fā)加密哈希算法概述

    景的不同,可將哈希算法分為加密哈希與非加密哈希。 ?概述 ?加密
    的頭像 發(fā)表于 06-24 09:51 ?1397次閱讀
    區(qū)塊<b class='flag-5'>哈希</b>競猜游戲系統(tǒng)開發(fā)<b class='flag-5'>加密</b><b class='flag-5'>哈希</b>算法概述

    四種最常用的環(huán)路補償網(wǎng)絡對比

    一文幾乎窮舉了環(huán)路各種補償網(wǎng)絡的傳遞函數(shù)及其OPA/OTA電路實現(xiàn),其中PI, TYPE 2, PID, TYPE 3是四種最常用的補償網(wǎng)絡。實際應用時,PID往往還會在微分項中再加一個低通濾波的極點(“不完全微分”),防止高頻
    的頭像 發(fā)表于 03-17 11:46 ?1.7w次閱讀
    <b class='flag-5'>四種</b><b class='flag-5'>最常用</b>的環(huán)路補償網(wǎng)絡對比