A. 如何數字簡單加密
比如多少乘多少除多少,這個就簡單啊,不就是反過來就可以了么。怎麼還不會哦。
B. 科普:國產密碼演算法
密碼學(cryptography): 通過將信息編碼使其不可讀,從而達到安全性。
演算法 :取一個輸入文本,產生一個輸出文本。
加密演算法 :發送方進行加密的演算法。
解密演算法 :接收方進行解密的演算法。
對稱密鑰加密 (Symmetric Key Cryptography):加密與解密使用相同密鑰。
非對稱密鑰加密 (Asymmetric Key Cryptography):加密與解密使用不同密鑰。
密鑰對 :在非對稱加密技術中,有兩種密鑰,分為私鑰和公鑰,私鑰是密鑰對所有者持有,不可公布,公鑰是密鑰對持有者公布給他人的。
公鑰 :公鑰用來給數據加密,用公鑰加密的數據只能使用私鑰解密。
私鑰 :如上,用來解密公鑰加密的數據。
摘要 :對需要傳輸的文本,做一個HASH計算。
簽名 :使用私鑰對需要傳輸的文本的摘要進行加密,得到的密文即被稱為該次傳輸過程的簽名。
密碼協議是指兩個或兩個以上的參與者為了達到某種特定目的而採取的一系列步驟。規定了一系列有序執行的步驟,必須依次執行。必須有兩個或兩個以上的參與者,有明確的目的。參與者都必須了解、同意並遵循這些步驟。
常見的密碼協議包括IPSEC VPN 協議、SSL VPN 協議、密鑰交換協議等。
密碼是指描述密碼處理過程的一組運算規則或規程,一般是指基於復雜數學問題設計的一組運算,其基本原理基於數學難題、可證明計算、計算復雜度等。主要包括:對稱密碼、公鑰密碼、雜湊演算法、隨機數生成。
在對稱加密演算法中,加密使用的密鑰和解密使用的密鑰是相同的,加密和解密都是使用同一個密鑰,不區分公鑰和私鑰。
通信雙方採用相同的密鑰來加解密會話內容,即一段待加密內容,經過同一個密鑰的兩次對稱加密後,與原來的結果一樣,具有加解密速度快和安全強度高的優點。
國際演算法:DES、AES。
國產演算法:SM1、SM4、SM7。
非對稱加解密演算法又稱為 公鑰密碼 ,其密鑰是成對出現的。雙方通信時,首先要將密鑰對中的一個密鑰傳給對方,這個密鑰可以在不安全的信道中傳輸;傳輸數據時,先使用自己持有的密鑰做加密,對方用自己傳輸過去的密鑰解密。
國際演算法:RSA
國產演算法:SM2
優點:
密鑰分發數目與參與者數目相同,在有大量參與者的情況下易於密鑰管理。
支持數字簽名和不可否認性。
無需事先與對方建立關系,交換密鑰。
缺點:
速度相對較慢。
可能比同等強度的對稱密碼演算法慢10倍到100倍。
加密後,密文變長。
密碼雜湊演算法 :又稱為散列演算法或哈希函數,一種單向函數,要由散列函數輸出的結果,回推輸入的資料是什麼,是非常困難的。
散列函數的輸出結果,被稱為訊息摘要(message digest)或是 摘要(digest) ,也被稱為 數字指紋 。
雜湊函數用於驗證消息的完整性, 在數字簽名中,非對稱演算法對數據簽名的速度較慢,一般會先將消息進行雜湊運算,生成較短的固定長度的摘要值。然後對摘要值進行簽名,會大大提高計算效率 。
國際演算法:MD5、SHA1、SHA2、SHA3
國產演算法:SM3
2009年國家密碼管理局發布的《信息安全等級保護商用密碼技術實施要求》中明確規定,一、二、三、四級信息系統應使用商用密碼技術來實施等級保護的基本要求和應用要求,一到四級的密碼配用策略要求採用國家密碼管理部門批准使用的演算法。
2010年年底,國家密碼管理局公開了SM2、SM3等國產密碼演算法。
2011年2月28日,國家密碼管理局印發的【2011】145號文中明確指出,1024位RSA演算法正在面臨日益嚴重的安全威脅,並要求各相關企業在2012年6月30日前必須使用SM2密碼演算法
國家密碼管理局在《關於做好公鑰密碼演算法升級工作的函》中要求2011年7月1日以後建立並使用公鑰密碼的信息系統,應使用SM2演算法;已經建設完成的系統,應盡快進行系統升級,使用SM2演算法。
2014年底,國家密碼管理局啟動《重要信息系統密碼應用推進總體研究課題》,確定十三五密碼 科技 專項。
2017年11月底,國家密碼管理局下發了《政務雲密碼支撐方案及應用方案設計要點》。
2017年國家密碼管理局發布了42項金融和重要領域國產密碼應用試點任務。
2018年,中共中央辦公廳、國務院辦公廳印發《金融和重要領域密碼應用與創新發展工作規劃(2018-2022年)。
2018年,為指導當時即將啟動的商用密碼應用安全性評估試點工作,國家密碼管理局發布了密碼行業標准GM/T0054-2018《信息系統密碼應用 基本要求》。
2021年3月,國家市場監管總局、國家標准化管理委員會發布公告,正式發布國家標准GB/T39786-2021《信息安全技術信息系統密碼應用基本要求》,該標准於2021年10月1日起實施。
SM1 演算法是分組密碼演算法,分組長度為 128 位,密鑰長度都為 128 比特,演算法安全保密強度及相關軟硬體實現性能與AES相當,演算法不公開,僅以IP核的形式存在於晶元中。
演算法集成於加密晶元、智能 IC 卡、智能密碼鑰匙、加密卡、加密機等安全產品,廣泛應用於電子政務、電子商務及國民經濟的各個應用領域(包括政務通、警務通等重要領域)。
SM2橢圓曲線公鑰密碼演算法是我國自主設計的公鑰密碼演算法,是一種基於ECC演算法的 非對稱密鑰演算法, 其加密強度為256位,其安全性與目前使用的RSA1024相比具有明顯的優勢。
包括SM2-1橢圓曲線數字簽名演算法,SM2-2橢圓曲線密鑰交換協議,SM2-3橢圓曲線公鑰加密演算法,分別用於實現 數字簽名密鑰協商 和 數據加密 等功能。
SM3雜湊演算法是我國自主設計的密碼雜湊演算法,屬於哈希(摘要)演算法的一種,雜湊值為256位,安全性要遠高於MD5演算法和SHA-1演算法。
適用於商用密碼應用中的 數字簽名 和 驗證消息認證碼的生成與驗證 以及 隨機數 的生成,可滿足多種密碼應用的安全需求。
SM4 分組密碼演算法 是我國自主設計的分組對稱密碼演算法,SM4演算法與AES演算法具有相同的密鑰長度分組長度128比特,因此在安全性上高於3DES演算法。
用於實現數據的加密/解密運算,以保證數據和信息的機密性。軟體和硬體加密卡均可實現此演算法。
商用密碼技術框架包括 密碼資源、密碼支撐、密碼服務、密碼應用 等四個層次,以及提供管理服務的密碼管理基礎設施。
密碼資源層: 主要是提供基礎性的密碼演算法資源。
密碼支撐層: 主要提供密碼資源調用,由安全晶元、密碼模塊、智能IC卡、密碼卡、伺服器密碼機、簽名驗簽伺服器、IPSCE/SSL VPN 等商密產品組成。
密碼服務層: 提供密碼應用介面,分為對稱和公鑰密碼服務以及其他三大類。
密碼應用層: 調用密碼服務層提供的密碼應用程序介面,實現數據的加解密、數字簽名驗簽等服務。如應用 於 安全郵件、電子印章系統、安全公文傳輸、移動辦公平台、可信時間戳等系統。
密碼管理基礎設施: 獨立組件,為以上四層提供運維管理、信任管理、設備管理、密鑰管理等功能。
完整的PKI系統必須具有權威認證機構(CA)、數字證書庫、密鑰備份及恢復系統(KMC)、證書作廢系統(CRL)、應用介面(API)等基本構成部分,構建PKI也將圍繞著這五大系統來著手構建。
CA 系統:Ca系統整個PKI的核心,負責證書的簽發。CA首先產生自身的私鑰和公鑰(密鑰長度至少為1024位),然後生成數字證書,並且將數字證書傳輸給安全伺服器。、CA還負責為操作員、安全伺服器以及注冊機構伺服器生成數字證書。安全伺服器的數字證書和私鑰也需要傳輸給安全伺服器。
CA伺服器是整個結構中最為重要的部分,存有CA的私鑰以及發行證書的腳本文件,出於安全的考慮,應將CA伺服器與其他伺服器隔離,任何通信採用人工干預的方式,確保認證中心的安全。
(1)甲使用乙的公鑰對明文進行加密,生成密文信息。
(2)甲使用HASH演算法對明文進行HASH運算,生成數字指紋。
(3)甲使用自己的私鑰對數字指紋進行加密,生成數字簽名。
(4)甲將密文信息和數字簽名一起發送給乙。
(5)乙使用甲的公鑰對數字簽名進行解密,得到數字指紋。
(6)乙接收到甲的加密信息後,使用自己的私鑰對密文信息進行解密,得到最初的明文。
(7)乙使用HASH演算法對還原出的明文用與甲所使用的相同HASH演算法進行HASH運算,生成數字指紋。然後乙將生成的數字指紋與從甲得到的數字指紋進行比較,如果一致,乙接受明文;如果不一致,乙丟棄明文。
SSL 協議建立在可靠的傳輸協議(如 TCP)之上,為高層協議提供數據封裝,壓縮,加密等基本功能。
即可以協商加密演算法實現加密傳輸,防止數據防竊聽和修改,還可以實現對端設備身份驗證、在這個過程中,使用國密演算法進行加密、簽名證書進行身份驗證、加密證書用於密鑰交換
SSL協商過程:
(1)客戶端發出會話請求。
(2)服務端發送X.509證書(包含服務端的公鑰)。
(3)客戶端用已知Ca列表認證證書。
(4)客戶端生成隨機對稱密鑰,並利用服務端的公鑰進行加密。
(5)雙方協商完畢對稱密鑰,隨後用其加密會話期間的用戶最終數據。
利用SSL卸載技術及負載均衡機制,在保障通訊數據安全傳輸的同時,減少後台應用伺服器的性能消耗,並實現伺服器集群的冗餘高可用,大幅度提升整個業務應用系統的安全性和穩定性。此外,藉助多重性能優化技術更可縮短了業務訪問的響應等待時間,明顯提升用戶的業務體驗。
基於 數字證書 實現終端身份認證,給予密碼運算實現本地數據的加密存儲,數字證書硬體存儲和密碼運算由移動終端內置的密碼部件提供。
移動應用管理系統伺服器採用簽名證書對移動應用軟體安裝包進行簽名,移動應用管理系統客戶端對簽名信息進行驗簽,保障移動應用軟體安裝包的真實性和完整性。
移動辦公應用系統採用簽名證書對關鍵訪問請求進行簽名驗證。
採用加密證書對關鍵傳輸數據和業務操作指令,以及移動終端本地存儲的重要數據進行加密保護。
移動辦公系統使用商用密碼,基於數字證書認證系統,構建覆蓋移動終端、網路、移動政務應用的安全保障體系,實現政務移動終端安全、接入安全、傳輸安全和移動應用安全 。
C. 區塊鏈與隱私計算的結合是必然趨勢嗎
區塊鏈與隱私計算的結合是必然趨勢嗎?
我們目前對這個問題的思考框架是:如果不與隱私計算技術結合,區塊鏈技術的應用是 否受到限制、無法向前發展;如果不與區塊鏈技術結合,隱私計算技術是否受到限制、無法 向前發展。如果二者對彼此都是剛需,那麼它們相結合的趨勢就是必然。
以下為我們對這個問題的思考:
1、隱私計算技術的應用是否區塊鏈技術的剛需
區塊鏈技術有巨大的優勢,但是如果沒有隱私計算技術,區塊鏈技術的應用會大大受到 限制,因為無法解決鏈上數據的隱私保護問題,這使得大量涉及敏感數據的場景不願應用區 塊鏈技術,比如金融和醫療領域。
(1)區塊鏈技術的局限性
第一,鏈上數據公開透明,數據的合規處理和隱私保護能力不足 區塊鏈作為分布式賬本系統,數據的公開透明盡管有利於存證、防篡改,但也存在數據 可輕易被復制、泄漏個人隱私的風險。區塊鏈在公有鏈上要求不同節點對交易和交易狀態進 行驗證、維護辯陸,形成共識,因此每個參與者都能擁有完整的數據備份,所有的交易數據公開 透明。如果知道某個參與者的賬戶,就很容易獲取其每一筆交易記錄,從而據此推斷其 社會 身份、財產狀況等。以消費場景為例,平台之間存在競爭壁壘,用戶也希望保留消費隱私, 因此區塊鏈缺乏對用戶流水、物流信息、營銷情況等與企業、個人隱私相關的數據缺乏保護 能力,往往導致數據擁有方不願意讓數據進入流通環節。在鏈上系統的交易不再受中心賬本的控制,用戶通過使用唯一的私鑰進行交易,交易過 程被加密且加密前數據很難還原,僅以私鑰作為交易憑證使得區塊鏈內的交易變得更加匿名 和不可控。在分布式賬本系統上,所有的轉賬以地址形式進行,一但發生了詐騙或者洗錢等 金融犯罪,即便可以公開查詢地址,但對資金追蹤的難度極大,且私鑰作為交易憑證很難證 明使用者的身份,因此許多企業、個人通過區塊鏈進行洗錢等違法交易,不利於數據的合規 處理和合法共享。
第二,數據處理能力不足,制約技術的進一步落地和商業化拓展 鏈上計算受限於網路共識的性能,使得鏈上交易難以具備實時性和高效率,區塊鏈智能 合約的計算能力需要擴展。以最大的加密支付系統比特幣為例,每秒鍾只能夠處理大約 3 到 7 筆交易5 ,且當前產生的交易的有效性受網路傳輸影響,往往需要等待 10 分鍾左右的記賬周 期才能讓網路上的節點共同知道交易內容。此外,如果鏈上有兩個及以上節點同時競爭到記賬權力,則還需要等待下一個記賬周期才能確認交易的准確性,最終由區塊最長、記賬內容 最多的鏈來完成確認。
完全去早灶卜中心化的系統與現實中大部分現有體系的兼容性不足,缺乏鏈上鏈下協同、多業 務發展的系統和功能,制約區塊鏈技術的進一步落地。在區塊鏈的技術落地過程中,首先, 各行業本身具有成熟的體系,區塊鏈完全去中心化的形式不一定適合所有的領域和行業;其 次,區塊鏈的陸穗平台設計和實際運行成本巨大,其所具備的低效率和延遲性的交易缺陷非常明 顯,是否能夠彌補原系統更換的損失需要經過一定的精算和比較;此外,使用區塊鏈存儲數 據需要對原有數據格式進行整理,涉及到政務、司法領域的敏感數據,更需要建立鏈接線上 和線下數據的可信通道防止數據錄入有誤,這帶來了較高的人力、物力成本。
(2)隱私計算技術對區塊鏈技術的幫助
隱私計算技術保障數據從產生、感知、發布、傳播到存儲、處理、使用、銷毀等全生命 周期過程中的隱私性,彌補區塊鏈技術的隱私保護能力,實現數據的「可用不可見」。通過 引入隱私計算技術,用戶的收支信息、住址信息等個人數均以密文的形式呈現,在平台進行 數據共享的過程中,既能防止數據泄露,又能夠保障用戶個人隱私的安全,有利於進一步打 破數據孤島效應,推動更大范圍內的多方數據協作。隱私計算技術可與區塊鏈技術形成技術組合,提升數據處理能力、擴大可應用范圍。隱 私計算技術通過對數據進行規范化處理,能夠提升數據處理、數據共享的效率,提升區塊鏈 的數據處理能力。此外,隱私計算技術+區塊鏈技術的技術組合能夠應用於缺乏中心化系統、 但又對敏感數據分享有強烈需求的合作領域,擴展區塊鏈技術的應用場景。
區塊鏈技術的應用是否隱私計算技術的剛需
(1)隱私計算技術的局限性
第一,數據共享缺乏安全檢驗,制約數據流通的可信性
數據共享的整個流程涉及到採集、傳輸、存儲、分析、發布、分賬等多個流程,隱私計 算主要是解決全流程的數據「可用不可見」的問題,但是難以保證數據來源可信和計算過程 可信。
從數據來源可信的角度來說,在數據採集的環節,數據內容本身可能不完整,數據的錄 入可能會存在失誤;在數據傳輸的環節,數據的傳輸可能會被其他的客戶端攻擊,導致數據 在傳輸的過程中泄漏;在數據的儲存環節,儲存數據的角色方有可能會篡改數據或者將數據 復制轉賣到黑市,這些都不會被隱私計算技術記錄。如果無法保證數據共享各方的身份得到 「可信驗證」,就有可能導致數據的隱私「名不副實」。從計算過程可信的角度來說,在數 據分析和發布的環節,數據的共享方有可能私自篡改數據的運行結果和發布內容,對最終數 據處理的結果進行造假。因此,一旦信息經過驗證並添加到隱私計算的環境中,很難發現數 據是否被篡改、被泄漏,很難防止不同時間點不同節點的數據造假的情況,在涉及到金融、政務、醫療、慈善等關鍵領域里,如果數據有誤則產生的一系列法律問題則難以追究。
第二,業務水平整體層次不齊,制約技術平台的擴展
當前,隱私計算的技術實現路徑主要分為三種:多方安全計算、聯邦學習、TEE 可信執行 環境。三種技術路徑存在各自的應用缺陷和問題,由於行業內不同公司對於技術的掌握能力 和研發能力有限,導致技術平台的實際應用范圍有限,可擴展能力不足。
多方安全計算盡管具有復雜高標準的密碼學知識,但其計算性能在實際應用的過程中存 在效率低的缺陷。隨著應用規模的擴大,採用合適的計算方案保證運算時延與參與方數量呈 現線性變化是目前各技術廠商面臨的一大挑戰。多方安全計算雖然能保證多方在數據融合計 算時候的隱私安全,但是在數據的訪問、控制、傳輸等環節,仍然需要匹配其他的技術手段 防止數據泄露、篡改。
聯邦學習技術目前在業內的應用通常以第三方平台為基礎模型,在基礎模型之上進行隱 私計算,這樣的基礎模型本身存在被開發者植入病毒的隱患。此外,聯邦學習的機制默認所 有的參與方都是可信方,無法規避某個參與方惡意提供虛假數據甚至病害數據,從而對最終 的訓練模型造成不可逆轉的危害。由於聯邦學習需要各個參與式節點進行計算,因此節點的 計算能力、網路連接狀態都將限制聯邦學習的通信效率。
TEE 可信執行環境在國內目前核心硬體技術掌握在英特爾、高通、ARM 等少數外國核心供 應商中,如果在關鍵領域從國外購買,則存在非常高的安全風險和應用風險。第三,數據共享缺乏確權機制,制約數據流通的應用性 隱私計算通過使用多方數據共同計算、產生成果,然而在實際合作的過程中,由於各個 數據共享方業務水平不同、數據質量不一導致在數據處理的每一個環節難以實現合理的確權。
按照常規的利益分配機制,擁有高質量數據、高成果貢獻率的數據擁有方理應從中獲取更多 的利潤,但是隱私計算僅考慮到數據的「可用不可見」,數據共享方難以從最終結果來判斷 誰的數據對於成果的貢獻最大,造成利益分配的不公平。如果缺乏合理的成果貢獻評估機制和利益分配機制,就會難以激勵數據所有者和其他數 據持有者進行合作。尤其是在不信任的多方合作的場景下,會更加增加合作的信任成本,使 得多方協作難以達成,制約數據流通的實際應用性。
(2)區塊鏈技術對隱私計算技術的幫助
區塊鏈技術通過數據流通的所有環節、所有參與者進行記錄,實現數據共享流程中的權 責分明,提升了數據流通的可信性。在數據傳輸的環節,區塊鏈記錄數據的提供者,確認數 據提供方身份的真實性和有效性,有利於數據確權,為公平可行的利益分配機制提供參考;在數據儲存的環節,區塊鏈保證數據的每一次修改都有跡可循,防止數據的惡意篡改。區塊 鏈技術可作為隱私計算技術的底層平台,保證了加密數據本身的真實有效性,提升了隱私計 算平台里數據流通的可信性,拓展隱私計算技術的應用范圍。
3. 結論
隱私計算技術和區塊鏈技術的融合是必然的趨勢。對於數據資產的流轉來講,沒有隱私 計算,不能解決數據本身的安全和隱私保護問題;沒有區塊鏈,不能解決數據的確權問題以 及在更大范圍內的數據網路協作問題。將區塊鏈和隱私計算二者結合起來,建設大規模數據 流通網路,在目前的實踐中成為有所共識的 探索 方向。
區塊鏈與隱私計算的結合會改變什麼?
1、形成大規模數據流通網路和數據要素市場
當前,數據流通存在三方面問題:數據擁有方的數據保護和數據確權難以實現;不同來 源數據的整合處理成本過高、缺乏統一標准;數據利益的分配機制不完善。
如前文所述,區塊鏈和隱私計算技術相結合,可以一方面解決隱私保護問題,一方面解 決數據確權和多方協作問題,從而建立大規模的數據流通網路。
在大規模數據流通網路建立的基礎上,真正意義上的數據要素市場才能夠形成,數據作 為生產要素的價值才能夠被充分發掘出來。
2、推動數據資產化的發展
所謂資產,是指由企業過去的交易或事項形成的,由企業擁有或者控制的,預期會給企 業帶來經濟利益的資源。
數據的資產化就是讓數據在市場上發現價值,能夠為企業創造新的經濟益。
大規模數據流通網路和數據要素市場的形成,將大大推動數據價值的發現、數據資產化 的發展。
從企業一側來看,企業的生產經營活動當中沉澱下來的數據會成為寶貴的資產。一方面, 對這些數據的分析和運用,將推動企業改善自身的業務;另一方面,與外部機構進行數據的 共享,能夠推動數據發揮出更大的價值,企業自身也將從中獲取更多收益。這會反過來進一 步推動企業的數字化轉型和對數據資產的管理。未來,對數據資產的盤點可能成為企業在資 產負債表、現金流量表、利潤表之外的「第四張表」。
數據資產化的發展,也會推動圍繞數據價值挖掘形成全新的服務體系。其中包括數據確 權、定價、交易等各個環節。上海 社會 科學院信息研究所副所長丁波濤將未來數據資產服務體系中的機構分成四類:
第一類提供中介服務,包括數據經紀人,還有數據代理。
第二類提供數據評估,由於數據市場信息不對稱或信息混亂,需要提供合規評估、數據 質量和數據價格的評估。
第三類提供價格咨詢,如提供法律、經濟咨詢或者是上市輔導等的咨詢服務企業。
第四類提供專業技術服務,包括數據開發、數據處理服務、數據交付服等。數據資產化的發展,帶來的將是人們認知的提升、生產效率的提高、生產要素的重組、 創新的產生、經濟的發展以及全 社會 整體福利的提升。
3、對現有業態的改變
區塊鏈與隱私計算的結合,將提升企業和個人分享數據、利用數據的積極性,進一步推 動打破「數據孤島」。其對現有業態的改變主要體現在以下幾個層面:
第一,這將帶來新的數據和 科技 變革。
首先,這將推動數據密態時代的到來。數據密態時代的核心,是數據流通使用方式的巨 大改變,數據將以密態形式在主體間流動和計算,顯著降低數據泄露的風險,並在合規前提 下支撐各種形態業務的發展。此前,數據被加密之後只能用來傳輸或者存儲,但是未來數據 在加密狀態下可以被計算。這將帶來一系列新的問題和挑戰,引發許多相關技術領域的連鎖 反應。
其二,這將重塑大數據產業。隨著數據流通的安全化,以往較為敏感的數據領域逐漸開 放。以政務數據為例,隱私計算使聯合政務、企業、銀行等多方數據建模和分析成為可能, 進一步釋放數據應用價值,創造了多樣化的應用機遇。
其三,人工智慧產業將獲得新一輪的發展。數據、演算法和算力是人工智慧發展的三要素。近幾年來,由於缺乏可用的數據,人工智慧的發展遭遇瓶頸。未來,5G 和物聯網的發展將使 得萬物互聯,數據量大幅增長。區塊鏈+隱私計算技術的應用,可以使得人工智慧利用海量數 據優化模型,真正邁向「智能化」。其四,這將為區塊鏈產業的發展帶來新的機遇。區塊鏈與隱私計算相結合,將拓展聯盟 鏈的節點數量,從而進一步擴大可協同利用的數據資源的范圍。
第二,在 科技 變革的基礎之上,區塊鏈與隱私計算相結合,將給許多傳統產業帶來變革。
在政務領域,一方面,可以實現政府不同部門之間的互聯互通及數據共享,從而促進政 府不同部門的協同,提高政府的效率以及決策質量,推動智慧城市的建設;另一方面,可以 促進政務數據與民間數據的雙向開放。政務數據向 社會 開放,可以為企業或學界所用,釋放 更多價值。民間的數據源向政府開放,可以提高政府在決策以及政務流程等方面的效率。
在金融領域,支付、徵信、信貸、證券資管等各個領域都會因之發生變化。總體來看, 主要是影響到金融的風控和營銷兩個方面。區塊鏈與隱私計算技術的結合,可以在符合法律 規定、不泄露各方原始數據的前提下,擴大數據來源,包括利用金融體系外部的互聯網數據, 實現多方數據共享,聯合建模,從而有效識別信用等級、降低多頭信貸、欺詐等風險,也有 助於信貸及保險等金融產品的精準定價;同樣,內外部多方數據的共享融合也有助於提高金融機構的反洗錢甄別能力。
在醫療領域,未來在疾病治療、葯物研究、醫療保險等多個領域,區塊鏈與隱私計算都 能助推醫療信息化建設,帶來巨大變革。在疾病治療和葯物研究方面,區塊鏈與隱私計算結 合,能夠促進更多的醫療數據被聯合起來進行分析和研究,從而為許多疾病的治療帶來新的 突破。在醫療保險方面,區塊鏈與隱私計算技術結合,主要是可以使得保險公司可以應用到 更多的數據,改善保險產品的設計、定價、營銷,甚至可以促進保險公司對客戶的 健康 管理 等。
區塊鏈與隱私計算技術相結合,目前應用的重點領域是政務、金融、醫療領域,但是未來其應用將不僅僅局限於這三個領域,還將在更多領域發揮作用。
第三,數據權利、利益將重新分配。
這可能是區塊鏈與隱私計算技術相結合所帶來的最為核心,也是最為深刻的,與每一個人 的切身利益都息息相關的變革。
首先,這涉及到每個產業鏈不同環節利益的重新分配。
前述在廣告營銷領域的應用落地為例,此前廣告營銷的利益分配主要是在廣告主與渠 道商之間。但是,未來應用區塊鏈和隱私計算技術,可以在更大范圍內進行數據協作,則要 解決廣告主、多個渠道方、消費者之間多方數據協作的問題,這其中就涉及到多方之間權責 的劃分、利益的重新分配。
其次,這還涉及到企業與個人之間利益的重新分配。
歐盟的 GDPR,美國的 CCPA 等法案中涉及用戶的一項重要權益即「portability,(可攜 帶權)」。即第三方應用不能封鎖個人數據,一旦個人有下載的訴求,APP 需要提供便利的 API 利於個人拷貝數據。美國公司已陸續為用戶提供 API,如果在這方面功能缺失,個人客戶 可以提出訴訟,而公司也將面臨巨額的罰款。在中國的《個人信息保護法》當中,也有相關的條款。《個人信息保護法》第四十五條規 定,「個人有權向個人信息處理者查閱、復制其個人信息」、「個人請求查閱、復制其個人信息 的,個人信息處理者應當及時提供。個人請求將個人信息轉移至其指定的個人信息處理者, 符合國家網信部門規定條件的,個人信息處理者應當提供轉移的途徑。」
目前,中國公司的區塊鏈+隱私計算 探索 主要集中在 To B 服務領域,但是區塊鏈是全球 化的商業,如果美國已經出現這樣的模式,中國大概率不會完全不受影響。伴隨著消費級軟硬體技術能力的提升,區塊鏈與隱私計算技術結合,會逐步對個人與機構 之間的數據服務進行變革。對於個人用戶而言,將有機會獲得自身隱私數據的完全掌控權, 並為數據業務過程中所涉及的數據隱私需求獲得更強的技術性保障。目前關於 To C 服務的相關問題,國內業界還在探討當中。
為什麼區塊鏈+隱私計算的應用尚未大規模普及?
第一,區塊鏈+隱私計算的落地應用,主要是在涉及需要多方數據協作的情況,目前實際需求尚未爆發。
從隱私計算技術發展的角度來看,目前隱私計算尚在落地初期,解決的主要是兩方之間 的數據協作問題,涉及到多方的場景還不多,因此很多時候還沒有體會到對區塊鏈+隱私計算 應用的需要。
從區塊鏈技術發展的角度來看,區塊鏈技術在許多領域的應用目前並非剛需。不少問題 可以應用區塊鏈解決,但是不用區塊鏈技術也能解決,而應用區塊鏈技術解決的成本更高。因此,目前區塊鏈項目的建設主要是政務部門和大型企業較為積極,因為政府和大型企業從 長遠發展的角度來考慮,可以做前瞻性的投資建設和技術布局,但是大多數商業機構需要衡 量投入與產出。
區塊鏈技術與隱私計算技術結合,主要是用於處理數據協作問題。從數據治理的角度來 看,目前大多數機構都在處理自身內部的數據治理問題,內部的數據體系梳理好之後,才涉 及到與外部進行數據協作,因此還需要時間。
第二,區塊鏈+隱私計算的落地應用較為復雜,涉及到新商業模式的創造、權責以及利益 的重新分配,因此需要的時間更長。
以在廣告營銷領域的應用落地為例,目前的大多數應用 都只是落地了隱私計算平台,主要涉及兩方數據協作,直接應用隱私計算技術,延續此前商 業應用即可。但是,如果引入區塊鏈技術,則要解決廣告主、渠道方、消費者之間多方數據 協作的問題,這其中可能涉及到多方之間權責的劃分、利益的重新分配,新商業模式的形成 需要時間進行 探索 。
應用的大規模普及,還需要解決哪些問題?
區塊鏈+隱私計算的應用在大規模鋪開之前,還需要具備三方面的條件:
第一,從外部環境來看,需要全 社會 整體的數字化水平的提高。 打個比方,區塊鏈+隱私 計算將來會形成數據流通的高速公路,但是路上要有足夠的車。目前全 社會 的數字化正在快 速推進當中,大多數機構都是正在進行自身內部的數據治理,他們需要先處理好自己的數據, 之後才能產生更多的與外部數據進行協作的需求,這還需要時間。
第二,從技術發展來看,技術成熟尚需投入。 區塊鏈+隱私計算技術的應用,實際上是犧 牲了數據流通的效率、提升了安全性,但是數據流通的效率也非常重要,未來需要在效率和 安全這兩個方面形成一定的平衡,安全要保障,足夠的效率也要滿足,這其中涉及到許多技 術的研發、行業標準的制定,技術產品化的發展和完善、技術成本的進一步降低,還需要時 間。
第三,還需要相關法律法規的完善,以及數據交易商業模式的形成。 不過,這一條件與 前兩個條件相比,其在目前的重要性相對次之。因為隨著需求的爆發、技術的完善,相關的法律法規以及商業模式就會隨之形成,這一條件在現階段並非限制區塊鏈與隱私計算技術落 地應用的最關鍵因素。
區塊鏈+隱私計算的應用中還蘊藏著哪些趨勢?
1、國產化的趨勢
區塊鏈+隱私計算的應用,涉及網路安全、數據安全,未來將成為新基建的重要組成部分。這是關乎網路空間主權、國家安全和未來發展利益的重要方面,因此這個領域的國產化是未來趨勢。
在區塊鏈+隱私計算技術應用的國產化當中,軟體的國產化是相對容易實現的。難點在於 硬體的國產化,其中最難的部分是晶元的國產化。
這一部分的發展,與信創領域的發展相關。信創,即信息技術應用創新產業,其是數據 安全、網路安全的基礎,也是新基建的重要組成部分。信創涉及到的行業包括 IT 基礎設施:CPU 晶元、伺服器、存儲、交換機、路由器、各種雲和相關服務內容;基礎軟體:資料庫、操 作系統、中間件;應用軟體:OA、 ERP、辦公軟體、政務應用、流版簽軟體;信息安全:邊 界安全產品、終端安全產品等。
在區塊鏈+隱私計算領域,目前已經有企業在嘗試產品的國產化。例如,前文提到的,螞 蟻鏈自研了密碼卡、隱私計算硬體以及自研可信上鏈晶元,同時還推出了摩斯隱私計算一體 機。創業公司如星雲 Clustar、融數聯智也在進行相關國產化硬體產品的研發。
2、軟硬體技術相結合、更多技術融合發展的趨勢
目前,在區塊鏈與隱私計算技術相結合的實踐中,也呈現出了軟硬體技術相結合、更多 技術融合發展的趨勢。這主要是緣於幾方面的需求:
第一,是加強數據安全性的需求。
隱私計算主要是解決數據在計算過程中不泄露的問題,區塊鏈主要是解決存證問題,二者結合僅能解決數據安全的一部分問題。數據從產生到計算再到消亡,會涉及採集、傳輸、 存儲、計算、銷毀等多個環節,其生命周期可能會有數十年之久,要真正保障數據安全需要 一個更加全方位的、體系化的解決方案,以使得每個環節上都有對應的技術體系保障數據安 全 在數據採集階段需要精心設計設備可信架構,在網路傳輸階段需要合理運用安全協議, 在存儲階段需要兼顧加密與性能,在數據計算階段需要靈活選擇可信執行環境與密態運算。除此以外,計算環境的可信與安全在防禦縱深建設上也至關重要。這些安全保障能力的技術 圖譜會涉及到可信計算、軟硬體供應鏈安全、隔離技術、網路與存儲的透明加密、密鑰管理、 可信執行環境等等。這其中每一個技術點都有軟硬體結合、多種技術融合發揮的空間。
第二,是提升計算性能的需求。
隱私計算的性能目前還比較低,在計算機單機、單機和單機之間、計算機集群之間這三 個層面上都存在。
在計算機單機上,隱私計算由於運用了密碼學技術,計算過程中涉及到很多加密解密的 步驟,這使得計算量以幾何級數增加。以全同態演算法為例,在通用晶元上密文運算的速度比 明文運算慢了 10 萬倍。這意味著,做同樣的運算,如果用全同態演算法,在 Intel 最新的 Icelake 處理器上,跑出來的效果等同於 Intel 的第一代 8086 處理器,直接回退了數十年。這使得全 同態加密在現實情況下就不具備可用性了。算力問題也是導致全同態演算法一直未得到廣泛應 用的根本原因。
在單機之間和計算機集群之間,會涉及到單機之間和集群之間的通信效率問題。一方面, 主流的隱私計算技術無論是聯邦學習還是多方安全計算,都有通信問題。密文膨脹、傳輸次 數膨脹,會導致單機之間網路傳輸效率成為隱私計算的瓶頸之一。另一方面,由於大多數隱 私計算的場景都是跨多方的,多方要通過公網進行通信,公網的帶寬與時延目前也是巨大的 鴻溝。
性能的問題,會隨著時間的推移越來越嚴重。2021 年,隱私計算的落地尚處於頗為早期 的階段,主要是在一些機構內部或者是兩方、三方之間應用,處理的數據量較小,這個問題 還不明顯。可是未來,多方數據交換需求的到來、5G 和物聯網的發展所帶來的數據量急劇增 大,最終導致的將是數據量爆發式的增長,這需要消耗大量的算力。
到那時,隱私計算的性 能將面臨巨大的挑戰。現在在硬體的創新方面正處於體系結構的黃金時代。這是因為,移動互聯網的飛速發展 使得應用場景發展很快,上層的軟體也發展很快,這使得在計算機底層進行支持的硬體甚至 晶元都需要隨之進行改變,進入了新一輪的創新周期。
而從區塊鏈與隱私計算結合的長遠發展來看,軟硬體結合、多技術融合,對隱私計算來 說,可以提升性能、安全性和計算效果;對區塊鏈來說,可以促使更多機構低成本加入聯盟 鏈,擴大聯盟鏈應用范圍。
END
編輯 | 領路元
來源 | 零一 財經 《區塊鏈+隱私計算一線實踐報告(2022)》
D. 【深度知識】區塊鏈之加密原理圖示(加密,簽名)
先放一張以太坊的架構圖:
在學習的過程中主要是採用單個模塊了學習了解的,包括P2P,密碼學,網路,協議等。直接開始總結:
秘鑰分配問題也就是秘鑰的傳輸問題,如果對稱秘鑰,那麼只能在線下進行秘鑰的交換。如果在線上傳輸秘鑰,那就有可能被攔截。所以採用非對稱加密,兩把鑰匙,一把私鑰自留,一把公鑰公開。公鑰可以在網上傳輸。不用線下交易。保證數據的安全性。
如上圖,A節點發送數據到B節點,此時採用公鑰加密。A節點從自己的公鑰中獲取到B節點的公鑰對明文數據加密,得到密文發送給B節點。而B節點採用自己的私鑰解密。
2、無法解決消息篡改。
如上圖,A節點採用B的公鑰進行加密,然後將密文傳輸給B節點。B節點拿A節點的公鑰將密文解密。
1、由於A的公鑰是公開的,一旦網上黑客攔截消息,密文形同虛設。說白了,這種加密方式,只要攔截消息,就都能解開。
2、同樣存在無法確定消息來源的問題,和消息篡改的問題。
如上圖,A節點在發送數據前,先用B的公鑰加密,得到密文1,再用A的私鑰對密文1加密得到密文2。而B節點得到密文後,先用A的公鑰解密,得到密文1,之後用B的私鑰解密得到明文。
1、當網路上攔截到數據密文2時, 由於A的公鑰是公開的,故可以用A的公鑰對密文2解密,就得到了密文1。所以這樣看起來是雙重加密,其實最後一層的私鑰簽名是無效的。一般來講,我們都希望簽名是簽在最原始的數據上。如果簽名放在後面,由於公鑰是公開的,簽名就缺乏安全性。
2、存在性能問題,非對稱加密本身效率就很低下,還進行了兩次加密過程。
如上圖,A節點先用A的私鑰加密,之後用B的公鑰加密。B節點收到消息後,先採用B的私鑰解密,然後再利用A的公鑰解密。
1、當密文數據2被黑客攔截後,由於密文2隻能採用B的私鑰解密,而B的私鑰只有B節點有,其他人無法機密。故安全性最高。
2、當B節點解密得到密文1後, 只能採用A的公鑰來解密。而只有經過A的私鑰加密的數據才能用A的公鑰解密成功,A的私鑰只有A節點有,所以可以確定數據是由A節點傳輸過來的。
經兩次非對稱加密,性能問題比較嚴重。
基於以上篡改數據的問題,我們引入了消息認證。經過消息認證後的加密流程如下:
當A節點發送消息前,先對明文數據做一次散列計算。得到一個摘要, 之後將照耀與原始數據同時發送給B節點。當B節點接收到消息後,對消息解密。解析出其中的散列摘要和原始數據,然後再對原始數據進行一次同樣的散列計算得到摘要1, 比較摘要與摘要1。如果相同則未被篡改,如果不同則表示已經被篡改。
在傳輸過程中,密文2隻要被篡改,最後導致的hash與hash1就會產生不同。
無法解決簽名問題,也就是雙方相互攻擊。A對於自己發送的消息始終不承認。比如A對B發送了一條錯誤消息,導致B有損失。但A抵賴不是自己發送的。
在(三)的過程中,沒有辦法解決交互雙方相互攻擊。什麼意思呢? 有可能是因為A發送的消息,對A節點不利,後來A就抵賴這消息不是它發送的。
為了解決這個問題,故引入了簽名。這里我們將(二)-4中的加密方式,與消息簽名合並設計在一起。
在上圖中,我們利用A節點的私鑰對其發送的摘要信息進行簽名,然後將簽名+原文,再利用B的公鑰進行加密。而B得到密文後,先用B的私鑰解密,然後 對摘要再用A的公鑰解密,只有比較兩次摘要的內容是否相同。這既避免了防篡改問題,有規避了雙方攻擊問題。因為A對信息進行了簽名,故是無法抵賴的。
為了解決非對稱加密數據時的性能問題,故往往採用混合加密。這里就需要引入對稱加密,如下圖:
在對數據加密時,我們採用了雙方共享的對稱秘鑰來加密。而對稱秘鑰盡量不要在網路上傳輸,以免丟失。這里的共享對稱秘鑰是根據自己的私鑰和對方的公鑰計算出的,然後適用對稱秘鑰對數據加密。而對方接收到數據時,也計算出對稱秘鑰然後對密文解密。
以上這種對稱秘鑰是不安全的,因為A的私鑰和B的公鑰一般短期內固定,所以共享對稱秘鑰也是固定不變的。為了增強安全性,最好的方式是每次交互都生成一個臨時的共享對稱秘鑰。那麼如何才能在每次交互過程中生成一個隨機的對稱秘鑰,且不需要傳輸呢?
那麼如何生成隨機的共享秘鑰進行加密呢?
對於發送方A節點,在每次發送時,都生成一個臨時非對稱秘鑰對,然後根據B節點的公鑰 和 臨時的非對稱私鑰 可以計算出一個對稱秘鑰(KA演算法-Key Agreement)。然後利用該對稱秘鑰對數據進行加密,針對共享秘鑰這里的流程如下:
對於B節點,當接收到傳輸過來的數據時,解析出其中A節點的隨機公鑰,之後利用A節點的隨機公鑰 與 B節點自身的私鑰 計算出對稱秘鑰(KA演算法)。之後利用對稱秘鑰機密數據。
對於以上加密方式,其實仍然存在很多問題,比如如何避免重放攻擊(在消息中加入 Nonce ),再比如彩虹表(參考 KDF機制解決 )之類的問題。由於時間及能力有限,故暫時忽略。
那麼究竟應該採用何種加密呢?
主要還是基於要傳輸的數據的安全等級來考量。不重要的數據其實做好認證和簽名就可以,但是很重要的數據就需要採用安全等級比較高的加密方案了。
密碼套件 是一個網路協議的概念。其中主要包括身份認證、加密、消息認證(MAC)、秘鑰交換的演算法組成。
在整個網路的傳輸過程中,根據密碼套件主要分如下幾大類演算法:
秘鑰交換演算法:比如ECDHE、RSA。主要用於客戶端和服務端握手時如何進行身份驗證。
消息認證演算法:比如SHA1、SHA2、SHA3。主要用於消息摘要。
批量加密演算法:比如AES, 主要用於加密信息流。
偽隨機數演算法:例如TLS 1.2的偽隨機函數使用MAC演算法的散列函數來創建一個 主密鑰 ——連接雙方共享的一個48位元組的私鑰。主密鑰在創建會話密鑰(例如創建MAC)時作為一個熵來源。
在網路中,一次消息的傳輸一般需要在如下4個階段分別進行加密,才能保證消息安全、可靠的傳輸。
握手/網路協商階段:
在雙方進行握手階段,需要進行鏈接的協商。主要的加密演算法包括RSA、DH、ECDH等
身份認證階段:
身份認證階段,需要確定發送的消息的來源來源。主要採用的加密方式包括RSA、DSA、ECDSA(ECC加密,DSA簽名)等。
消息加密階段:
消息加密指對發送的信息流進行加密。主要採用的加密方式包括DES、RC4、AES等。
消息身份認證階段/防篡改階段:
主要是保證消息在傳輸過程中確保沒有被篡改過。主要的加密方式包括MD5、SHA1、SHA2、SHA3等。
ECC :Elliptic Curves Cryptography,橢圓曲線密碼編碼學。是一種根據橢圓上點倍積生成 公鑰、私鑰的演算法。用於生成公私秘鑰。
ECDSA :用於數字簽名,是一種數字簽名演算法。一種有效的數字簽名使接收者有理由相信消息是由已知的發送者創建的,從而發送者不能否認已經發送了消息(身份驗證和不可否認),並且消息在運輸過程中沒有改變。ECDSA簽名演算法是ECC與DSA的結合,整個簽名過程與DSA類似,所不一樣的是簽名中採取的演算法為ECC,最後簽名出來的值也是分為r,s。 主要用於身份認證階段 。
ECDH :也是基於ECC演算法的霍夫曼樹秘鑰,通過ECDH,雙方可以在不共享任何秘密的前提下協商出一個共享秘密,並且是這種共享秘鑰是為當前的通信暫時性的隨機生成的,通信一旦中斷秘鑰就消失。 主要用於握手磋商階段。
ECIES: 是一種集成加密方案,也可稱為一種混合加密方案,它提供了對所選擇的明文和選擇的密碼文本攻擊的語義安全性。ECIES可以使用不同類型的函數:秘鑰協商函數(KA),秘鑰推導函數(KDF),對稱加密方案(ENC),哈希函數(HASH), H-MAC函數(MAC)。
ECC 是橢圓加密演算法,主要講述了按照公私鑰怎麼在橢圓上產生,並且不可逆。 ECDSA 則主要是採用ECC演算法怎麼來做簽名, ECDH 則是採用ECC演算法怎麼生成對稱秘鑰。以上三者都是對ECC加密演算法的應用。而現實場景中,我們往往會採用混合加密(對稱加密,非對稱加密結合使用,簽名技術等一起使用)。 ECIES 就是底層利用ECC演算法提供的一套集成(混合)加密方案。其中包括了非對稱加密,對稱加密和簽名的功能。
<meta charset="utf-8">
這個先訂條件是為了保證曲線不包含奇點。
所以,隨著曲線參數a和b的不斷變化,曲線也呈現出了不同的形狀。比如:
所有的非對稱加密的基本原理基本都是基於一個公式 K = k G。其中K代表公鑰,k代表私鑰,G代表某一個選取的基點。非對稱加密的演算法 就是要保證 該公式 不可進行逆運算( 也就是說G/K是無法計算的 )。 *
ECC是如何計算出公私鑰呢?這里我按照我自己的理解來描述。
我理解,ECC的核心思想就是:選擇曲線上的一個基點G,之後隨機在ECC曲線上取一個點k(作為私鑰),然後根據k G計算出我們的公鑰K。並且保證公鑰K也要在曲線上。*
那麼k G怎麼計算呢?如何計算k G才能保證最後的結果不可逆呢?這就是ECC演算法要解決的。
首先,我們先隨便選擇一條ECC曲線,a = -3, b = 7 得到如下曲線:
在這個曲線上,我隨機選取兩個點,這兩個點的乘法怎麼算呢?我們可以簡化下問題,乘法是都可以用加法表示的,比如2 2 = 2+2,3 5 = 5+5+5。 那麼我們只要能在曲線上計算出加法,理論上就能算乘法。所以,只要能在這個曲線上進行加法計算,理論上就可以來計算乘法,理論上也就可以計算k*G這種表達式的值。
曲線上兩點的加法又怎麼算呢?這里ECC為了保證不可逆性,在曲線上自定義了加法體系。
現實中,1+1=2,2+2=4,但在ECC演算法里,我們理解的這種加法體系是不可能。故需要自定義一套適用於該曲線的加法體系。
ECC定義,在圖形中隨機找一條直線,與ECC曲線相交於三個點(也有可能是兩個點),這三點分別是P、Q、R。
那麼P+Q+R = 0。其中0 不是坐標軸上的0點,而是ECC中的無窮遠點。也就是說定義了無窮遠點為0點。
同樣,我們就能得出 P+Q = -R。 由於R 與-R是關於X軸對稱的,所以我們就能在曲線上找到其坐標。
P+R+Q = 0, 故P+R = -Q , 如上圖。
以上就描述了ECC曲線的世界裡是如何進行加法運算的。
從上圖可看出,直線與曲線只有兩個交點,也就是說 直線是曲線的切線。此時P,R 重合了。
也就是P = R, 根據上述ECC的加法體系,P+R+Q = 0, 就可以得出 P+R+Q = 2P+Q = 2R+Q=0
於是乎得到 2 P = -Q (是不是與我們非對稱演算法的公式 K = k G 越來越近了)。
於是我們得出一個結論,可以算乘法,不過只有在切點的時候才能算乘法,而且只能算2的乘法。
假若 2 可以變成任意個數進行想乘,那麼就能代表在ECC曲線里可以進行乘法運算,那麼ECC演算法就能滿足非對稱加密演算法的要求了。
那麼我們是不是可以隨機任何一個數的乘法都可以算呢? 答案是肯定的。 也就是點倍積 計算方式。
選一個隨機數 k, 那麼k * P等於多少呢?
我們知道在計算機的世界裡,所有的都是二進制的,ECC既然能算2的乘法,那麼我們可以將隨機數k描 述成二進制然後計算。假若k = 151 = 10010111
由於2 P = -Q 所以 這樣就計算出了k P。 這就是點倍積演算法 。所以在ECC的曲線體系下是可以來計算乘法,那麼以為這非對稱加密的方式是可行的。
至於為什麼這樣計算 是不可逆的。這需要大量的推演,我也不了解。但是我覺得可以這樣理解:
我們的手錶上,一般都有時間刻度。現在如果把1990年01月01日0點0分0秒作為起始點,如果告訴你至起始點為止時間流逝了 整1年,那麼我們是可以計算出現在的時間的,也就是能在手錶上將時分秒指針應該指向00:00:00。但是反過來,我說現在手錶上的時分秒指針指向了00:00:00,你能告訴我至起始點算過了有幾年了么?
ECDSA簽名演算法和其他DSA、RSA基本相似,都是採用私鑰簽名,公鑰驗證。只不過演算法體系採用的是ECC的演算法。交互的雙方要採用同一套參數體系。簽名原理如下:
在曲線上選取一個無窮遠點為基點 G = (x,y)。隨機在曲線上取一點k 作為私鑰, K = k*G 計算出公鑰。
簽名過程:
生成隨機數R, 計算出RG.
根據隨機數R,消息M的HASH值H,以及私鑰k, 計算出簽名S = (H+kx)/R.
將消息M,RG,S發送給接收方。
簽名驗證過程:
接收到消息M, RG,S
根據消息計算出HASH值H
根據發送方的公鑰K,計算 HG/S + xK/S, 將計算的結果與 RG比較。如果相等則驗證成功。
公式推論:
HG/S + xK/S = HG/S + x(kG)/S = (H+xk)/GS = RG
在介紹原理前,說明一下ECC是滿足結合律和交換律的,也就是說A+B+C = A+C+B = (A+C)+B。
這里舉一個WIKI上的例子說明如何生成共享秘鑰,也可以參考 Alice And Bob 的例子。
Alice 與Bob 要進行通信,雙方前提都是基於 同一參數體系的ECC生成的 公鑰和私鑰。所以有ECC有共同的基點G。
生成秘鑰階段:
Alice 採用公鑰演算法 KA = ka * G ,生成了公鑰KA和私鑰ka, 並公開公鑰KA。
Bob 採用公鑰演算法 KB = kb * G ,生成了公鑰KB和私鑰 kb, 並公開公鑰KB。
計算ECDH階段:
Alice 利用計算公式 Q = ka * KB 計算出一個秘鑰Q。
Bob 利用計算公式 Q' = kb * KA 計算出一個秘鑰Q'。
共享秘鑰驗證:
Q = ka KB = ka * kb * G = ka * G * kb = KA * kb = kb * KA = Q'
故 雙方分別計算出的共享秘鑰不需要進行公開就可採用Q進行加密。我們將Q稱為共享秘鑰。
在以太坊中,採用的ECIEC的加密套件中的其他內容:
1、其中HASH演算法採用的是最安全的SHA3演算法 Keccak 。
2、簽名演算法採用的是 ECDSA
3、認證方式採用的是 H-MAC
4、ECC的參數體系採用了secp256k1, 其他參數體系 參考這里
H-MAC 全程叫做 Hash-based Message Authentication Code. 其模型如下:
在 以太坊 的 UDP通信時(RPC通信加密方式不同),則採用了以上的實現方式,並擴展化了。
首先,以太坊的UDP通信的結構如下:
其中,sig是 經過 私鑰加密的簽名信息。mac是可以理解為整個消息的摘要, ptype是消息的事件類型,data則是經過RLP編碼後的傳輸數據。
其UDP的整個的加密,認證,簽名模型如下:
E. 區塊鏈的六層模型是什麼
區塊鏈技術的模型是由自下而上的數據層、網路層、共識層、激勵層、合約層、應用層組成。
F. 如何實現定長數字串加密演算法
3DES(Triple DES):是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高; RC2和 RC4:用變長密鑰對大量數據進行加密,比 DES 快; IDEA(International Data Encryption Algorithm)國際數據加密演算法,使用 128 位密鑰提供非常強的安全性; RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件快的長度也是可變的; DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標准); AES(Advanced Encryption Standard):高級加密標准,是下一代的加密演算法標准,速度快,安全級別高,目前 AES 標準的一個實現是 Rijndael 演算法; BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快; 其它演算法,如ElGamal、Deffie-Hellman、新型橢圓曲線演算法ECC等。