作者:李昊軒
來源:微眾銀行區塊鏈
隱私數據密文控制權只能由單一主體掌控?代表控制權的密鑰如何才能安全地交由多個互不信任的主體協同使用?如何在技術層面保障多方授權的公平公正性?任一參與協作的主體密鑰丟失,如何實現安全可靠的容災恢復?
在業務方案設計中,安全可控地讓多個隱私主體參與數據協作,是隱私保護技術創造新興商業價值的關鍵之一。在這一過程中,代表控制權的密鑰由哪一方來掌握,是影響參與者合作意願的重要因素。
因為哪一方擁有了密鑰,相當於哪一方就獲得了控制權,未能掌控密鑰的另一方,則可能在合作關係中處於弱勢。這將成為實現公平對等多方協作關係的一個關鍵阻礙。
以多方決策為例,上市公司的一次董事會會議中,需要多數董事對決策項進行簽字才能生效。出於某些影響,會議無法面對面舉行,所有董事必須使用數字簽名來遠程完成這一個簽字過程。為了保證決議過程的機密性和公正性,每位董事不希望其他董事知曉自己的選擇,同時要讓股東團體對最後的決策結果,即聚合後的簽名,進行驗證。
這個過程中,存在三個隱私保護相關的主要功能點:
以上功能點涉及在多方協作過程中,如何將原本單個的密鑰安全地打碎成多個密鑰分片,並讓每個主體獨立使用自己的密鑰分片,合作完成所需的密碼學協議過程。解決這一問題的關鍵,就在於門限密碼算法的巧妙構造。
門限密碼算法在多方協作的相關場景中應用十分廣泛,可以實現數據聯合授權、認證、密鑰安全恢復、密鑰安全交換等需求,在諸多分佈式多方計算協議中均可見其身影。
本文主要從秘密分享、門限加密、門限簽名三大應用方向,分享門限密碼算法的奇妙之處。
1979年,Adi Shamir和George Blakley各自獨立地提出秘密分享(Secret Sharing)的概念,奠定了門限密碼學體系的基礎。
具體而言,秘密分享是指一種安全地在多個參與者之間分享秘密的方式,其滿足以下特性:
秘密分享在學術上的價值在於,提供了一種技術手段,將原本單一的密鑰,以密鑰分片的形式,安全地、平等地分配到多個參與者手中,除此之外,還實現了以下額外的安全特性:
對於業務應用而言,主要使用的特性是密鑰安全平等分配和容錯高可用,可以用來滿足價值貴重的物品或權利不能由單一主體掌控的業務需求,以此控制盜用、濫用等潛在風險。
例如,董事會的印章不能由單獨的成員持有,銀行保險箱的鑰匙不能由單獨的職員保管。在數字化的場景中,涉及多方隱私數據的業務合作,數據密鑰也不能由單一主體掌管。
為了實現安全的秘密分享效果,最直接的秘密字符串分片方式並不能保障其安全性,攻擊者無需收集足夠的分片,便可以獲得秘密的部分信息,示例如下:
因此,我們需要引入更為精巧的分片構造方式。
最常見的構造方式利用了拉格朗日多項式插值算法。其核心思想為,t個點可以確定一個t-1階多項式對應的曲線。每一個秘密分片都相當於多項式曲線上的一個點:
具體構造方式可以參考Shamir Secret Sharing的(t, n)秘密分享方案,即,將秘密分為n份,任意t份都可以完整地恢復出拆分前的秘密。構造過程如下:
秘密分享在分佈式密鑰生成、密鑰容災恢復、數字版權管理、數據安全傳輸等業務領域中都有廣泛應用。同時,秘密分享也是用於構造安全多方計算的重要技術之一。
基礎的秘密分享方案可以進一步擴展為可驗證秘密分享、多級多秘密分享、定期更新分片的主動秘密分享、可隨時變更參與者的動態秘密分享、基於身份的秘密分享等方案,滿足多方協作中多樣化的業務需求。
秘密分享是所有門限密碼算法的基礎,解決了算法設計中密鑰控制權安全分發的問題,用技術手段保障了隱私數據多方協作中,權利均衡、平等互信的效果。
門限加密方案是門限密碼算法常見應用之一,常常體現為一類分佈式加解密協議,可以實現如下功能:
門限加密方案可以有效保護需要多方授權才能使用的隱私數據。回到之前董事會決策的示例,目前有一份敏感的業務數據需要給董事會成員彙報,由於數據的敏感性,需要確保有足夠數量的董事在場,數據才能被解密。
門限加密方案可以很好地滿足這一需求。傳輸業務數據前,使用門限加密的公鑰對其進行加密,產生的密文只有當數量不少於門限值的董事授權同意之後才能進行解密。
使用門限加密方案的一般流程如下:
理論上,門限加密方案可以基於不同的計算困難性問題(參見第3論)構造,例如,基於離散對數的ElGamal門限密碼學體系、基於Diffie-Hellman的門限密鑰交換協議、基於大素數分解的RSA門限密碼學體系、基於橢圓曲線離散對數問題的BLS門限密碼學體系等。
工程上,門限加密方案目前已經比較成熟,以經典論文《Simple and Efficient Threshold Cryptosystem from the Gap Diffie-Hellman Group》為基礎的開源參考實現為例,在個人計算機上,對單個數據塊進行單次分片聚合和解密的耗時都在微秒級,已經可以滿足大部分業務的商用性能要求。
應用上,除了之前描述的多方授權數據解密之外,門限加密方案在匿名電子投票、數據代理服務、數據外包計算等需要為多個數據貢獻者提供聯合數據使用授權特性的領域,均有廣泛應用前景。
門限簽名方案是門限密碼算法最常見的應用。同樣基於秘密分享的核心理念,門限簽名方案通過將私鑰拆分成多個秘密分片,實現瞭如下效果:
在業務應用中,門限簽名方案可以用來構造有效的多方聯合簽名流程。相比傳統數字簽名方案,整個簽名過程消除了由單一主體保管密鑰帶來的系統性單點故障風險,以及跨機構信任問題。
每位秘密分片的持有者對簽名私鑰擁有平等的控制權,門限簽名方案同時提供了私鑰容災恢復功能和外部驗證匿名性。
這類方案可以顯著提高用户對數據認證的信任,並促進多方平等合作,對於目前使用數字簽名的所有應用場景都適用,可以看作是傳統數字簽名方案在分佈式商業環境中的全面升級。
使用門限簽名方案的一般流程如下:
與門限加密方案類似,門限簽名方案可以基於不同的計算困難性問題(參見第3論)來構造實現,例如,可以構造基於SM2國密標準算法的門限簽名方案。
目前較為常見的開源實現,主要是基於BLS(Boneh–Lynn–Shacham)的簽名算法。該方案驗證效率尚可,但在簽名聚合環節,生成簽名的耗時會隨參與者數量的增加而顯著增加,可以達到毫秒級,比傳統的數字簽名方案慢幾個數量級。
除此之外,目前的門限簽名方案在初始化過程中,如果不依賴可信第三方,會面臨交互輪數過多、構造複雜等問題。以上工程問題對需要進行高頻簽名操作的應用來説,可能會帶來一定性能上的挑戰,但對於一般應用來講,應該不會成為性能瓶頸。
總體而言,門限密碼學方案提供了一系列高效、易用的隱私保護分佈式數據協作技術。隨着其應用越來越廣泛, NIST於2019年提議對門限密碼學相關的密碼學原語進行標準化,分別從單一主體使用和多方協作使用兩個方向,對門類眾多的門限密碼學方案進行歸類和標準化嘗試。
在標準化完成之前,根據具體的業務需求,門限密碼學方案的基礎技術選型可以參考下圖:
正是:多方協作密鑰誰掌控,門限密碼分權眾做主!
門限密碼學方案通過對隱私保護方案中的密鑰進行分片,使得對於密鑰所代表的數據控制權進行按需分配成為了可能。對於源自多方的隱私數據,門限密碼學方案提供了安全、平等、高效的協同認證和計算工具,可以用來解決現代分佈式商業環境中,所面臨的多方數據認證、可信數據交換等核心業務挑戰。