大數據時代:多樣密碼技術解讀
背景
美國國家標準與技術研究所(NIST)發布的《NIST大數據互操作框架》中大量提到密碼技術,也證明了密碼技術是解決數據安全問題最優的技術保障手段已經成為共識。作為密碼技術的從業者,通過對這些文章的閱讀和分析,確實開闊了眼界,以往老生常談的密碼技術固然有其優勢,但是隨著技術的發展和場景(大數據、云、工業互聯網、物聯網等)的豐富,新的密碼技術經過適配也許更具有生命力。這一點也希望所有從業者能正確認識,特別建議密碼主管單位能對其他的密碼技術給與關注和支持,從業企業也能加快對新密碼技術的場景化和產業化的落地。這樣給密碼應用單位更多選擇和更有針對性的保障。
密碼技術的分類
按照密碼技術與“NIST對于數據參考框架”(NBDRA)的對應關系、密碼技術支持的性能以及密碼技術可實現的數據可見性對密碼技術的分類如下圖所示:

同態加密
場景:數據提供者的數據需要保密。應用提供者請求對數據進行計算。數據提供者從應用提供者處取回計算結果。
假設一名客戶打算把自己的所有敏感數據(照片、醫療記錄、財務記錄等)都發送到云端。她可以把所有內容加密后再發送,但是如何她想讓云對這些內容進行一些計算,比如計算上個月在財政支出中有多少是用于看電影的,傳統的加密方式就不行了。而同態加密(FHE)允許云對底層明文進行任何計算,同時對結果加密。云不獲取有關明文或結果的任何信息。具體的相關流程請大家自行查閱資料:

函數加密
場景:數據提供者的數據需要保密。應用提供者或數據消費者只被允許對數據進行預先指定級別的計算并查看結果。
假設一個系統接收用擁有者的公鑰加密的電子郵件 。不過,擁有者不希望收到垃圾郵件。如果使用普通公鑰加密,將無法把合法電子郵件密文與垃圾郵件密文區分開來。使用函數加密技術會給過濾器發一個令牌,使過濾器得以將令牌施用于密文,推斷密文是否滿足過濾條件,過濾器不會得到有關被加密消息其他屬性的任何線索。詳細的原理請大家自行查閱相關資料。
基于訪問控制策略的加密
場景:基礎設施提供者是雇用諸多人員擔任不同角色的機構的組成部分。這里的要求是給數據加密,只允許具有正確屬性組合的角色解密數據。
傳統上,數據訪問控制由系統(如操作系統、虛擬機等)執行,通過他們依照某項訪問策略來限制對數據的訪問,數據始終是明文的。這一系統范式至少存在兩個問題:1、系統可能被黑客攻陷2、同一數據在傳輸中的安全問題給人帶來擔憂。
另一種方法是根據訪問控制策略在密碼殼中保護數據本身。只有策略允許的實體才能解密。基于身份加密(IBE)的方法通過密碼執行訪問控制,在基于身份的系統中,可以為某一特定身份給明文加密。基于屬性加密(ABE),在基于屬性的系統中,可以為滿足某個屬性信息的給明文加密。這兩種方式都可以達到基于訪問控制策略的加密效果。詳細內容請大家自己查驗相關資料。

安全多方計算
場景:一個政府機構掌握了一份恐怖分子嫌疑人名單,一家航空公司則擁有乘客名單,處于保護乘客隱私的考慮,航空公司不愿意把乘客名單提供給政府機構,而政府機構也不愿意透露嫌疑人的姓名,然而,這兩個組織都有興趣知道將乘坐該航空公司航班出行的嫌疑人的姓名。如果把這兩份名單中所有姓名都拿出來在兩個組織之間交流,那就是破壞了隱私,所披露的信息明顯超出了其中任何一個組織的需要。而另一方面,掌握這兩份名單的重疊部分,對這兩個組織都有利。
安全多方計算(MPC)是專門針對此類問題的一般類型的一組分布式密碼協議。在n個實體之間的MPC中,每個實體都擁有一個私有輸入,同時還存在一個每一方都想掌握的值。在上述場景中,私有輸入是兩個組織各自擁有的名單,而彼此都想掌握的值是名單的重合部分。每個實體只掌握自己的輸入值,對其他方輸入的其他內容一無所知。詳細內容請大家自行查閱資料。

區塊鏈
關于區塊鏈的說明本處就不贅述了。本質上區塊鏈是一種密碼技術的應用場景。詳細內容請大家自行查閱資料。

安全計算的硬件支持
盡管同態加密和函數加密等高級密碼技術可以直接作用于被加密數據而不將其解密,但是現行執行方案還沒有達到可供大多數應用程序使用的水平。“可信平臺模塊”(TPM)、“軟件防護擴展”(SGX)等安全硬件基元提供了一個中間地帶,中央處理單元和硬件的專用部分可安置在這里,負責保存私鑰,并在解密通信密文后對數據進行處理。前提是,“可信計算基”(TCB)內發生的所有通信都被認為是敏感的,要用一個隔離并受保護的內存段來執行。TCB與外部代碼和內存空間之間的通信永遠都加密,通過周密設計和安排,可以在可信區域與不可信區域之間建立這種隔離,以提供更高級別的安全保障。在云端如何實現可驗證的保密云計算,在美國已經取得了重要成果,可以保障代碼和數據的保密性和完整性,代碼在數據上執行的可驗證性。具體內容可向作者索要。

補充提示:密鑰輪換
前面提到了幾種密碼技術,在實際應用中還需要重視密鑰更新問題。這個問題十分必要,也恰恰容易被大家忽略。定期更新密鑰是限制敏感數據外泄的必要措施。具體間隔時間由方案提供的安全級別、密鑰存儲所得到的保護水平、接受密鑰運算的數據敏感性以及密鑰的使用頻率決定。
NIST就如何整體實施密鑰管理提出了一套詳盡的建議,其中包括密碼輪換。這些建議意在針對IT環境內的各種角色,而且在就密碼操作做出密鑰管理決策,以確保密鑰存儲和應用的安全性。具體內容大家可從NIST獲取資料。
總 結
數據時代,密碼技術是保障安全和隱私問題的核心手段,密碼技術的多樣性和數據應用場景的多樣性必須形成適配,才能真正的發揮密碼技術的保護價值。這一點給所有密碼行業從業人員和信息化系統提出極大的挑戰。還好在世界范圍內,從業者有眾多的案例和成果可供參考,在此作者呼吁從業者和從業企業打開眼界,加強共享交流,為數據時代的安全貢獻自己的智慧。