區塊鏈的密碼技術有數字簽名演算法
⑴ 在網路安全中,數字簽名技術和密碼技術的區別是什麼
數字簽名技術是用來鑒別數據來源的一種技術。
數字簽名是非對稱密鑰加密技術與數字摘要技術的應用。
簡單點說就是數字簽名技術是以密碼技術為基礎的。是密碼技術的一種應用。
⑵ 區塊鏈密碼演算法是怎樣的
區塊鏈作為新興技術受到越來越廣泛的關注,是一種傳統技術在互聯網時代下的新的應用,這其中包括分布式數據存儲技術、共識機制和密碼學等。隨著各種區塊鏈研究聯盟的創建,相關研究得到了越來越多的資金和人員支持。區塊鏈使用的Hash演算法、零知識證明、環簽名等密碼演算法:
Hash演算法
哈希演算法作為區塊鏈基礎技術,Hash函數的本質是將任意長度(有限)的一組數據映射到一組已定義長度的數據流中。若此函數同時滿足:
(1)對任意輸入的一組數據Hash值的計算都特別簡單;
(2)想要找到2個不同的擁有相同Hash值的數據是計算困難的。
滿足上述兩條性質的Hash函數也被稱為加密Hash函數,不引起矛盾的情況下,Hash函數通常指的是加密Hash函數。對於Hash函數,找到使得被稱為一次碰撞。當前流行的Hash函數有MD5,SHA1,SHA2,SHA3。
比特幣使用的是SHA256,大多區塊鏈系統使用的都是SHA256演算法。所以這里先介紹一下SHA256。
1、 SHA256演算法步驟
STEP1:附加填充比特。對報文進行填充使報文長度與448模512同餘(長度=448mod512),填充的比特數范圍是1到512,填充比特串的最高位為1,其餘位為0。
STEP2:附加長度值。將用64-bit表示的初始報文(填充前)的位長度附加在步驟1的結果後(低位位元組優先)。
STEP3:初始化緩存。使用一個256-bit的緩存來存放該散列函數的中間及最終結果。
STEP4:處理512-bit(16個字)報文分組序列。該演算法使用了六種基本邏輯函數,由64 步迭代運算組成。每步都以256-bit緩存值為輸入,然後更新緩存內容。每步使用一個32-bit 常數值Kt和一個32-bit Wt。其中Wt是分組之後的報文,t=1,2,...,16 。
STEP5:所有的512-bit分組處理完畢後,對於SHA256演算法最後一個分組產生的輸出便是256-bit的報文。
2、環簽名
2001年,Rivest, shamir和Tauman三位密碼學家首次提出了環簽名。是一種簡化的群簽名,只有環成員沒有管理者,不需要環成員間的合作。環簽名方案中簽名者首先選定一個臨時的簽名者集合,集合中包括簽名者。然後簽名者利用自己的私鑰和簽名集合中其他人的公鑰就可以獨立的產生簽名,而無需他人的幫助。簽名者集合中的成員可能並不知道自己被包含在其中。
環簽名方案由以下幾部分構成:
(1)密鑰生成。為環中每個成員產生一個密鑰對(公鑰PKi,私鑰SKi)。
(2)簽名。簽名者用自己的私鑰和任意n個環成員(包括自己)的公鑰為消息m生成簽名a。
(3)簽名驗證。驗證者根據環簽名和消息m,驗證簽名是否為環中成員所簽,如果有效就接收,否則丟棄。
環簽名滿足的性質:
(1)無條件匿名性:攻擊者無法確定簽名是由環中哪個成員生成,即使在獲得環成員私鑰的情況下,概率也不超過1/n。
(2)正確性:簽名必需能被所有其他人驗證。
(3)不可偽造性:環中其他成員不能偽造真實簽名者簽名,外部攻擊者即使在獲得某個有效環簽名的基礎上,也不能為消息m偽造一個簽名。
3、環簽名和群簽名的比較
(1)匿名性。都是一種個體代表群體簽名的體制,驗證者能驗證簽名為群體中某個成員所簽,但並不能知道為哪個成員,以達到簽名者匿名的作用。
(2)可追蹤性。群簽名中,群管理員的存在保證了簽名的可追蹤性。群管理員可以撤銷簽名,揭露真正的簽名者。環簽名本身無法揭示簽名者,除非簽名者本身想暴露或者在簽名中添加額外的信息。提出了一個可驗證的環簽名方案,方案中真實簽名者希望驗證者知道自己的身份,此時真實簽名者可以通過透露自己掌握的秘密信息來證實自己的身份。
(3)管理系統。群簽名由群管理員管理,環簽名不需要管理,簽名者只有選擇一個可能的簽名者集合,獲得其公鑰,然後公布這個集合即可,所有成員平等。
鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。
⑶ 怎麼解讀區塊鏈的數字簽名
在區塊鏈的分布式網路里,節點之間進行通訊並達成信任,需要依賴數字簽名技術,它主要實現了身份確認以及信息真實性、完整性驗證。
數字簽名
數字簽名(又稱公鑰數字簽名、電子簽章)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,用於鑒別數字信息的方法。一套數字簽名通常定義兩種互補的運算,一個用於簽名,另一個用於驗證。就是只有信息的發送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對信息的發送者發送信息真實性的一個有效證明。簡單證明 「我就是我」。
⑷ 什麼是區塊鏈加密演算法
區塊鏈加密演算法(EncryptionAlgorithm)
非對稱加密演算法是一個函數,通過使用一個加密鑰匙,將原來的明文文件或數據轉化成一串不可讀的密文代碼。加密流程是不可逆的,只有持有對應的解密鑰匙才能將該加密信息解密成可閱讀的明文。加密使得私密數據可以在低風險的情況下,通過公共網路進行傳輸,並保護數據不被第三方竊取、閱讀。
區塊鏈技術的核心優勢是去中心化,能夠通過運用數據加密、時間戳、分布式共識和經濟激勵等手段,在節點無需互相信任的分布式系統中實現基於去中心化信用的點對點交易、協調與協作,從而為解決中心化機構普遍存在的高成本、低效率和數據存儲不安全等問題提供了解決方案。
區塊鏈的應用領域有數字貨幣、通證、金融、防偽溯源、隱私保護、供應鏈、娛樂等等,區塊鏈、比特幣的火爆,不少相關的top域名都被注冊,對域名行業產生了比較大的影響。
⑸ 區塊鏈數字簽名加密的私玥可以用原加密的私玥解嗎
首先,你要了解一下什麼是「私鑰」和「公鑰」以及它們是如何發揮作用的。
區塊鏈系統為了保證用戶的數據安全,通過一種密碼演算法來實現的,具體來說的話是通過一種公開的密碼演算法機制來實現的,我們都知道如何一種密碼演算法,有會有一個秘鑰,而公開的秘鑰演算法是一對(也就是兩個)秘鑰,就跟虎符是一樣的是彼此配合來使用的。一個叫作公鑰,就是可以公開給別人,私鑰自己要保管好的,在區塊鏈系統中,公鑰就是用來識別身份的,而私鑰就是來相當於 鑰匙來解密,但是不同的是,一個公鑰僅對唯一的一個私鑰,也是就說私鑰如果忘記都是不會幫你找回的,在區塊鏈系統中不會幫你找回私鑰,所以要妥善保管好私鑰。
在區塊鏈系統結構中,用公鑰加密的數據必需要用對應的私鑰來解密,而用私鑰加密的數據
就要用對應的公鑰來解密,那麼這里的私鑰加密(通常稱之為「簽名」)的數據必需要對應的公鑰來解密,這個特點可以發揮很大的一個作用。
舉個簡單的例子吧,如果張三要發送給李四一張支票,那麼怎麼傳送呢?就這么發送過去,會被記賬的人拿到,風險可就大了,於是張三想了一個辦法,他在支票上用李四的公鑰加了個密,然後再簽上了自己的名字(用自己的私鑰簽名)這個時候其他的人就算那拿到支票也沒有用,因為,只有李四才有自己的私鑰,也就是只有李四才能解開這張支票來使用。這種功能設計在區塊鏈系統稱之為「腳本系統」
所以,區塊鏈數字簽名加密的私玥不可以用原加密的私玥解,必需要與之相對應的公鑰來解密。
⑹ 如何利用密碼技術hash函數以及數字簽名等技術
hash函數是一種散列雜湊演算法,可以結合公鑰技術來創建數字簽名。應用方式如下:
發件人將一種散列演算法應用於數據,並生成一個散列值。
發件人使用私鑰將散列值轉換為數字簽名。
然後,發件人將數據、簽名及發件人的證書發給收件人。
收件人將該散列演算法應用於接收到的數據,並生成一個散列值。
收件人使用發件人的公鑰和新生成的散列值驗證簽名。
對用戶而言這一過程是透明的。散列演算法處理數據的速度比公鑰演算法快得多。散列數據還縮短了要簽名的數據的長度,因而加快了簽名過程。當創建或驗證簽名時,公鑰演算法必須且只需轉換散列值(128 或 160 位的數據)。使用沃通WoSign數字證書創建簽名和驗證簽名的可以確保數據的完整性和來源真實性。
⑺ 如何利用密碼技術,hash函數以及數字簽名等技術來保證數據的私密性,完整性和不
1) 文件校驗
我們比較熟悉的校驗演算法有奇偶校驗和CRC校驗,這2種校驗並沒有抗數據篡改的能力,它們一定程度上能檢測並糾正數據傳輸中的信道誤碼,但卻不能防止對數據的惡意破壞.
MD5 Hash演算法的"數字指紋"特性,使它成為目前應用最廣泛的一種文件完整性校驗和(Checksum)演算法,不少Unix系統有提供計算md5 checksum的命令.
2) 數字簽名
Hash 演算法也是現代密碼體系中的一個重要組成部分.由於非對稱演算法的運算速度較慢,所以在數字簽名協議中,單向散列函數扮演了一個重要的角色.對 Hash 值,又稱"數字摘要"進行數字簽名,在統計上可以認為與對文件本身進行數字簽名是等效的.而且這樣的協議還有其他的優點.
⑻ 數字簽名加密演算法
數字簽名技術
Internet的迅猛發展使電子商務成為商務活動的新模式。電子商務包括管理信息系統MIS、電子數據交換EDI、電子訂貨系統EOS、商業增值網VAN等,其中EDI成為電子商務的核心部分,涉及到多個環節的復雜的人機工程。網路的開放性與共享性也導致了網路的安全性受到嚴重影響,在開放的Internet平台上,社會生活中傳統的犯罪和不道德行為將變得更加隱蔽和難以控制。人們從面對面的交易和作業,變成網上互不見面的操作、沒有國界、沒有時間限制,就產生了更大的安全隱患。因此,在電子商務的發展熱潮中,電子商務的安全性已成為制約電子商務發展的重要瓶頸。
如何保證網上傳輸的數據的安全和交易對方的身份確認是電子商務是否得到推廣的關鍵,可以說電子商務最關鍵的問題是安全性問題;而數字簽名(Digital Signatures)技術是保證信息傳輸的保密性、數據交換的完整性、發送信息的不可否認性、交易者身份的確定性的一種有效的解決方案,是電子商務安全性的重要部分。
一 、電子商務中數據傳輸的幾個安全性需求
1. 數據的保密性:用於防止非法用戶進入系統及合法用戶對系統資源的非法使用;通過對一些敏感的數據文件進行加密來保護系統之間的數據交換,防止除接收方之外的第三方截獲數據及即使獲取文件也無法得到其內容。如在電子交易中,避免遭到黑客的襲擊使信用卡信息丟失的問題。
2. 數據的完整性:防止非法用戶對進行交換的數據進行無意或惡意的修改、插入,防止交換的數據丟失等。
3. 數據的不可否認性:對數據和信息的來源進行驗證,以確保數據由合法的用戶發出;防止數據發送方在發出數據後又加以否認;同時防止接收方在收到數據後又否認曾收到過此數據及篡改數據。
上述需求對應於防火牆、加密、數字簽名、身份認證等技術,但其關鍵在於數字簽名技術。
二、 數字簽名的含義和功能
數字簽名是通過一個單向函數對要傳送的報文進行處理得到的用以認證報文來源並核實報文是否發生變化的一個字母數字串。
在傳統的商業系統中,通常都利用書面文件的親筆簽名或印章來規定契約性的責任,在電子商務中,傳送的文件是通過電子簽名證明當事人身份與數據真實性的.數據加密是保護數據的最基本方法,但也只能防止第三者獲得真實數據。電子簽名則可以解決否認、偽造、篡改及冒充等問題,具體要求:發送者事後不能否認發送的報文簽名、接收者能夠核實發送者發送的報文簽名、接收者不能偽造發送者的報文簽名、接收者不能對發送者的報文進行部分篡改、網路中的某一用戶不能冒充另一用戶作為發送者或接收者。
三、數字簽名的實現方法
實現數字簽名有很多方法,目前數字簽名採用較多的是公鑰加密技術,如基於RSA Date Security 公司的PKCS( Public Key Cryptography Standards )、Digital Signature Algorithm、x.509、PGP(Pretty Good Privacy). 1994年美國標准與技術協會公布了數字簽名標准(DSS)而使公鑰加密技術廣泛應用。&127;公鑰加密系統採用的是非對稱加密演算法。
(一)用非對稱加密演算法進行數字簽名
1、演算法的含義
此演算法使用兩個密鑰:公開密鑰(public key)和私有密鑰(private key),&127;分別用於對數據的加密和解密,即如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能進行解密;如果用私有密鑰對數據進行加密,則只有用對應的公開密鑰才能解密。
2 簽名和驗證過程
(1)發送方首先用公開的單向函數對報文進行一次變換,得到數字簽名,然後利用私有密鑰對數字簽名進行加密後附在報文之後一同發出。
(2)接收方用發送方的公開密鑰對數字簽名進行解密變換,得到一個數字簽名的明文。發送方的公鑰是由一個可信賴的技術管理機構即驗證機構(CA: Certification Authority)發布的。
(3)接收方將得到的明文通過單向函數進行計算,同樣得到一個數字簽名,再將兩個數字簽名進行對比,如果相同,則證明簽名有效,否則無效。
這種方法使任何擁有發送方公開密鑰的人都可以驗證數字簽名的正確性。由於發送方私有密鑰的保密性,使得接收方既可以根據驗證結果來拒收該報文,也能使其無法偽造報文簽名及對報文進行修改,原因是數字簽名是對整個報文進行的,是一組代表報文特徵的定長代碼,同一個人對不同的報文將產生不同的數字簽名。這就解決了銀行通過網路傳送一張支票,而接收方可能對支票數額進行改動的問題,也避免了發送方逃避責任的可能性。
(二)用對稱加密演算法進行數字簽名
1 演算法的含義
對稱加密演算法所用的加密密鑰和解密密鑰通常是相同的,即使不同也可以很容易地由其中的任意一個推導出另一個。在此演算法中,加、解密雙方所用的密鑰都要保守秘密。由於計算速度快而廣泛應用於對大量數據如文件的加密過程中,如RD4 和DES。
2 簽名和驗證過程
Lamport發明了稱為Lamport-Diffie的對稱加密演算法:利用一組長度是報文的比特數(n)兩倍的密鑰A,來產生對簽名的驗證信息,即隨機選擇2n個數B,由簽名密鑰對這2n個數B進行一次加密變換,得到另一組2n個數C。
(1)發送方從報文分組M的第一位開始,依次檢查M的第i位,若為0時,取密鑰A的第i位,若為1則取密鑰A的第i+1位; 直至報文全部檢查完畢。所選取的n個密鑰位形成了最後的簽名。
(2)接收方對簽名進行驗證時,也是首先從第一位開始依次檢查報文M,如果M的第i位為0時,它就認為簽名中的第I組信息是密鑰A的第i位,若為1則為密鑰A的第i+1位; 直至報文全部驗證完畢後,就得到了n個密鑰,由於接收方具有發送方的驗證信息C,所以可以利用得到的n個密鑰檢驗驗證信息,從而確認報文是否是由發送方所發送。
這種方法由於它是逐位進行簽名的,只要有一位被改動過,接收方就得不到正確的數字簽名,因此其安全性較好,其缺點是:簽名太長(對報文先進行壓縮再簽名,可以減少簽名的長度。);簽名密鑰及相應的驗證信息不能重復使用,否則極不安全。
(三)幾個認證產品
認證產品可分兩大類:一是用戶認證,主要是通過單獨簽名訪問網路資源;二是對象認證,即判定傳遞信息和文件的認證及其真實性。數字簽名技術就主要用於信息、文件以及其他存儲在網上的傳輸對象的認證。AT&T Government Market的Secret Agent 便通過將數字簽發的文檔作為E-mail消息的文件附件來發表的形式,將現有客戶機運行的環境 E-mail系統 、Web瀏覽器等應用密切地結合在一起;Regnoc Software 的Signature 使用OLE 2.0可對Windows 下的任何文本作數字簽名;ViaCrypt 的ViaCrypt PGP可從傳遞信息的應用中切割文本至Windows 或Macintosh裁剪板,在那裡對它進行數字簽名後將它粘貼到傳遞信息中,其面對電子商務的一個功能是,無論雇員發送或接收的所有密文都能破譯,可設置成在公司密鑰下去自動破譯所有外發信息,且要求雇員須使用職權范圍允許的解密密鑰。
四 數字簽名的演算法及數字簽名的保密性
數字簽名的演算法很多,應用最為廣泛的三種是: Hash簽名、DSS簽名、RSA簽名。
1.Hash簽名
Hash簽名不屬於強計算密集型演算法,應用較廣泛。很多少量現金付款系統,如DEC的Millicent和CyberCash的CyberCoin等都使用Hash簽名。使用較快的演算法,可以降低伺服器資源的消耗,減輕中央伺服器的負荷。Hash的主要局限是接收方必須持有用戶密鑰的副本以檢驗簽名, 因為雙方都知道生成簽名的密鑰,較容易攻破,存在偽造簽名的可能。如果中央或用戶計算機中有一個被攻破,那麼其安全性就受到了威脅。
2.DSS和RSA簽名
DSS和RSA採用了公鑰演算法,不存在Hash的局限性。RSA是最流行的一種加密標准,許多產品的內核中都有RSA的軟體和類庫,早在Web飛速發展之前,RSA數據安全公司就負責數字簽名軟體與Macintosh操作系統的集成,在Apple的協作軟體PowerTalk上還增加了簽名拖放功能,用戶只要把需要加密的數據拖到相應的圖標上,就完成了電子形式的數字簽名。RSA與Microsoft、IBM、Sun和Digital都簽訂了許可協議,使在其生產線上加入了類似的簽名特性。與DSS不同,RSA既可以用來加密數據,也可以用於身份認證。和Hash簽名相比,在公鑰系統中,由於生成簽名的密鑰只存儲於用戶的計算機中,安全系數大一些。
數字簽名的保密性很大程度上依賴於公開密鑰。數字認證是基於安全標准、協議和密碼技術的電子證書,用以確立一個人或伺服器的身份,它把一對用於信息加密和簽名的電子密鑰捆綁在一起,保證了這對密鑰真正屬於指定的個人和機構。數字認證由驗證機構CA進行電子化發布或撤消公鑰驗證,信息接收方可以從CA Web站點上下載發送方的驗證信息。Verisign是第一家X.509公開密鑰的商業化發布機構,在它的Digital ID 下可以生成、管理應用於其它廠商的數字簽名的公開密鑰驗證。
五 數字簽名的發展前景展望
生成和驗證數字簽名的工具需要完善,只有廣泛使用SSL(安全套接層)建立安全鏈接的Web瀏覽器,才可能頻繁用到數字簽名技術。比如一個公司要對其雇員在網路上的行為進行規范,就要建立廣泛協作機制來支持數字簽名的實現。支持數字簽名是Web發展的目標,確保數據保密性、數據完整性和不可否認性才能保證在線商業的安全交易。
和數字簽名有關的復雜認證能力就像現在操作、應用環境中的口令保護一樣直接做進操作系統環境、應用、遠程訪問產品、信息傳遞系統及Internet防火牆中,像Netscape 支持X.509標準的Communicator 4.0 Web客戶機軟體;Microsoft支持X.509的Internet Explorer 4.0客戶機軟體及支持對象簽名檢查的Java虛擬機等。
安全問題是阻礙電子商務廣泛應用的最大問題,改進數字簽名在內的安全技術措施、確定CA認證權的歸屬問題是解決電子商務安全問題的關鍵。
⑼ 區塊鏈中的密碼學是怎麼應用的
在區塊鏈技術中,密碼學機制主要被用於確保交易信息的完整性、真實性和隱私性。
區塊鏈中的密碼學 包括布隆過濾器,哈希函數、加解密演算法,數字證書與數字簽名,同態加密,PKI體系等。