密碼學技術何以為信?深究背後的計算困難性理論

2021-02-19 區塊鏈應用實驗室

隱私保護為何選用密碼學算法?密碼學算法背後有哪些神奇的數學理論?3何時比9大?計算可逆性錯覺究竟是如何在數學領域被打破?這裡,我們將從密碼學信任的理論基礎出發,分享在隱私保護技術方案中應用密碼學技術的一些思考:如何理解密碼學算法的能力邊界,如何客觀地比較不同密碼學算法對於隱私保護方案有效性的影響

早在公元前,古埃及、古羅馬、古希臘等古文明均已開始使用密碼技術來保護信息的機密性,歷史上最早的不對稱性表現為選用特殊的信息編碼方式,如果第三方不知道具體的編碼方式,則難以解碼對應的信息。

大約經過4000多年的發展,也就是近代20世紀初,現代密碼學正式成型,引入了關於不對稱性更為嚴謹的數學定義。比較有代表性的早期論文包括1929年Lester S. Hill在美國數學月刊上發表的《Cryptography in an Algebraic Alphabet》。

20世紀末,隨著網際網路的普及,大量敏感數據在網絡上進行傳輸,產生了大量的數據內容保護的需求,密碼學技術也因此得到飛速發展。

在現代密碼學中,關於不對稱性,大家最熟悉的概念莫過於「公鑰」和「私鑰」。

以加密通信為例,主人公小華要向他的朋友美麗通過加密的方式發送一份電子郵件,可以先找到美麗的公鑰,使用公鑰對郵件內容進行加密,並將加密後的得到密文發送給美麗。美麗收到郵件內容的密文之後,通過自己的私鑰進行解密,最終得到郵件內容的明文。

以上過程中,密碼學算法神奇的不對稱性體現在以下問題中:

為什麼只有美麗可以解密郵件內容?

為什麼其他人不能通過美麗的公鑰反推出她的私鑰?

這些問題的答案,都要歸結於密碼學中的計算困難性理論。

在隱私保護場景中,計算困難性理論具體表現為,對同一隱私數據主體,通過不同計算路徑,獲得相同信息的計算難度具有不對稱性。不對稱性中,相對容易的計算方式被用來構造授權的數據訪問,而困難的計算方式被用來避免非授權的數據洩露。

 

構造這樣的不對稱性的方式有很多,最經典的方式之一,就是千禧年七大難題之一——P和NP問題。

P問題是確定性圖靈機,即通用計算機計算模型,在多項式時間(O(n^k))內可以計算獲得答案的一類問題。NP問題是確定性圖靈機在多項式時間內可以驗證答案的正確性,但不一定能計算出答案的一類問題。

關於同一份答案,驗證過程比計算過程要容易很多,由此我們可以構造出密碼學算法所需要的計算難度不對稱性。

NP問題是否能夠通過有效的多項式時間算法轉化成P問題,由此破解計算難度不對稱性?目前學術界尚無定論。

理論研究進一步表明,對於NP問題集合中的核心問題,即NP完全問題,如果能夠找一個有效的多項式時間算法來解決任何一個NP完全問題,那其他所有NP問題都可以基於這個算法來構造出有效的多項式時間算法。由此,之前提到的計算難度不對稱性將不復存在。

幸運的是,經過將近70年的科學探索,這樣的算法並沒有被發現。在有限時間內,現代計算機難以求解這些問題的答案,所以現代密碼學可以比較安全地基於這些NP完全問題來構造有效的密碼學算法。

形象地講,計算困難性理論的核心就是構造一個迷宮,如果不知道捷徑,是很難到達出口的。

我們日常所用的各類密碼學算法,其有效性都與這一理論息息相關,這裡重點以非對稱密碼學算法為例,介紹其中經典的迷宮構造藍圖,即三大計算困難問題:

大數分解困難問題


給定兩個大素數p和q,計算n=p*q是容易的。然而,給定n,求解p、q則是困難的。

整數的素數分解是數論中最著名的問題之一,目前,求解素數分解最有效的方法稱為數域篩法,即通過構造代數數域不停地對整數可能的集合進行迭代運算。

目前,大整數分解問題仍不存在更有效的分解方法,因此密碼學一些方案利用大數分解困難問題構造相應協議,如RSA系列算法將其困難性規約為大數分解困難問題。如果大整數分解困難問題被破解,使用RSA密碼方案保護的隱私數據也會相應遭到破譯。


離散對數困難問題

在模為n,生成元為g的有限域中,給定整數a,計算g^a = b是容易的。然而,給定b和g計算a則是困難的。

許多新接觸密碼學的讀者都會對離散對數問題產生計算可逆性的錯覺,看起來就是進行一次log運算的事情,但真相併非如此。

在實數域,元素有一個非常重要的性質,全序關係,所以很容易比較大小。例如,在實數域中9>2且3>2,一定能推出9>2。

在計算log2(9)時,計算機會對以元素9為輸入的函數結果進行二分查找法,首先計算(9/2)^2和9進行比較,再計算((0+9/2)/2)^2…。通過不停比較元素大小的性質,從而計算log最終的結果。

 

然而,在有限域中,元素之間並不存在全序關係。在模為7的有限域中,可以看到諸如9等於2,3比9大的關係存在。

因此,無法通過有效的算法計算上述過程中的a。許多著名的密碼協議安全性都是建立在離散對數困難性上的,如Diffie-Hellman密鑰交換協議、ElGamal加密、DSA算法等。

橢圓曲線上的離散對數困難問題

 

當前,橢圓曲線密碼學算法是當前密碼應用的主流,每一個隱私數據都能以坐標(x, y)的形式,表示為橢圓曲線上的一個點。與一般離散對數困難問題類似,橢圓曲線上的離散對數困難問題可以表示為:

 

在有限域F上的橢圓曲線群,點P為曲線上某個點,給定整數a,計算a*P=Q是容易的。然而,根據P和Q計算a則是困難的。

 

有別於普通代數運算,橢圓曲線上的點運算定義如下:


可以看到,橢圓曲線上的點運算和普通實數域上的運算有很大差別,當前尚未存在一種有效的算法對橢圓曲線離散對數問題進行破譯。目前,最常用的公鑰密碼算法體系ECDSA、EdDSA、國密SM2等都是基於這一困難問題。

由於不同的密碼學算法構造使用了不同的困難問題,對應地,不同的困難問題也勢必會引入不同的安全假設。

 

理解這些安全假設,是企業進行技術選型,客觀地判斷基於不同密碼學算法構造隱私保護方案孰強孰弱的關鍵。

 

這裡,我們需要進一步引入「安全參數」的概念。

 

安全參數是一個衡量密碼學算法保護隱私數據強度的數值。對位於「同一等級"的安全參數值來說,不同密碼學算法的安全級別基本相同,即面對已知最有效的攻擊方式,算法被破解導致隱私數據洩露的概率相同。

 

一般情況下,安全參數值的大小,直接體現為密鑰長度的長短。在同一等級下,安全參數值有大有小,對應的密鑰長度也有長有短。

 

基於不同困難問題的密碼學算法密鑰最小長度,美國國家標準與技術研究院NIST作如下推薦,其中,每個單元格表示需要使用密鑰長度的最小比特數。

通過上表,我們可以看到,即便密鑰長度相同,選用不同困難問題獲得的安全級別是不同的。一般而言,基於同一困難問題構造的技術方案,密鑰長度越長,安全性越高,相應地,系統效率越低,其中往往也伴隨其他系統設計上的取捨。

不同場景應按照業務需求選擇適合的技術方案和密鑰長度,具體有以下幾點需要特別注意:

隱私保護技術方案的安全性取決於其使用的密碼學算法實現中最低的安全參數等級。在未指明安全參數的前提下,進行密碼學算法的安全性比較沒有實際意義。如果安全參數值很小,一般表現為對應的密鑰長度很短時,無論密碼學算法設計多麼精妙,實際效果可能都是不安全的。由於困難問題選用上的差異,密碼學算法的理論強度沒有最強,只有在滿足特定安全假設下的夠強,強行比較基於不同困難問題的密碼學算法哪個更強通常沒有實際意義。

計算困難問題歸根結底還是一個計算問題,隨著計算機計算能力的增強,或是算法理論研究進展的推進,這些困難問題的安全性都會發生變化。如RSA加密算法,NIST密鑰管理準則認為,2010年後,1024位的密鑰不再安全,需要增加到2048位的密鑰長度,預計其安全有效性可以保持至2030年。

對於企業而言,這裡的啟示在於,不能簡單地認為,隱私保護技術方案現在有效,就保證了10年後依舊有效。無論什麼樣的隱私保護技術方案都有其時效性。

企業如果能夠根據權威技術組織推薦的安全參數、算法方案及時更新現有的系統,困難性理論就能夠有效保障隱私保護技術方案的有效性歷久如新。

 

 

正是:密碼學技術易守難攻,困難性理論當居首功!

 

作為密碼學安全的基石,計算困難問題和相關的安全參數,是企業有效進行密碼學算法選型的關鍵考察點。企業應用落地時,需充分考慮隱私數據保密的有效期,選擇合適的密碼學算法和密鑰長度,對數據安全性和系統效率進行必要衡量。

 

除了與密碼學算法直接相關的計算困難問題,一個完整的隱私保護技術方案通常還需要構造密碼學協議,來組合多種密碼學算法。密碼學協議引入了多方之間的交互,由此也引入其他重要的安全假設。

這些安全假設對評價隱私保護技術方案的整體安全性、有效性、實用性至關重要,具體分析,敬請關注下文分解。

相關焦點

  • 初談區塊鏈技術背後的理論基石:組合數學(離散數學)
    另外需要強調的是,密碼學實際是一個交叉學科,其和數學、計算機科學和資訊理論的聯繫最為緊密。組合數學中的代數系統理論包括代數系統的基本概念、半群、與獨異帶你、群、環與域、格與布爾代數。代數系統與密碼學聯繫非常緊密,其為密碼學提供了非常重要的數學基礎,是其不可分割的一部分。
  • 量子計算之於密碼學,是威脅還是救贖?
    還有一個值得思考的問題是,現在的加密技術真的已經無懈可擊了嗎?其實,量子計算的發展就有可能讓現有的加密技術失效。而我們對此束手無策了嗎?牛津大學量子物理博士,騰訊公司歐洲首席代表葛凌,向我們解釋了量子計算對現代密碼學的威脅、量子計算到來的時間,以及最後我們還可能要利用量子力學來應對量子計算對現有密碼學的威脅。】
  • 密碼學如何保障郵件安全?
    密碼學在郵件中的應用由來已久,信息加密一直伴隨著網際網路的發展。在第二次世界大戰中,納粹德國發明了精密的機械加密機Enigma用於電報加密,而同盟國通過破解Enigma一度影響戰爭進程。如今隨著信息技術和密碼學的發展,現代密碼學在郵件系統中也有了更加成熟和多樣化的應用。
  • 衝量網絡|泛談密碼學
    密碼學是研究如何隱密地傳遞信息的學科,是數學和計算機科學的分支,和資訊理論也密切相關。而網際網路的出現和繁榮,密碼學技術得到了飛躍式發展,而隨著區塊鏈和可信計算等先進技術的出現,更是將密碼學的商業價值和技術發展速度提升到了前所未有的高度。
  • 區塊鏈與密碼學:楊光博士在北京大學圖靈班開設《密碼學基礎》
    提起密碼學,不少人都會覺得十分頭大,在百度百科中,它這樣解釋的:研究編制密碼和破譯密碼的技術科學。研究密碼變化的客觀規律,應用於編制密碼以保守通信秘密的,稱為編碼學;應用於破譯密碼以獲取通信情報的,稱為破譯學,總稱密碼學。密碼學有很多應用場景。
  • 密碼學有什麼用?
    可以說,密碼學就是用來解決這些問題的。舉個例子方便大家理解。機密性,你我之間的聊天內容,不應該被別人看到。完整性,我轉帳給你100塊,不應該被篡改為200塊。可用性,雙十一那天晚上,我應該可以正常的購物。除了上述這三點外,還有很多密碼理論上的安全性質,比如:不可否認性(不可抵賴性),我說過的話不能反悔說不是我說的。
  • 【圖學院】區塊鏈與密碼學全民課堂第6-3講:數字籤名算法大合集
    導語:本課堂用通俗易懂的系列內容為大家呈現區塊鏈與密碼學領域相關知識。這裡有知識也有故事,從感興趣到有樂趣,全民課堂等你來學。這個系列中的課程內容首先從比特幣著手進行入門介紹,再延伸至區塊鏈的相關技術原理與發展趨勢,然後深入淺出地依次介紹在區塊鏈中應用的各類密碼學技術。歡迎大家訂閱本公眾號,持續進行學習。
  • 矩陣元助力Inscrypt 2018 推動密碼學實踐應用
    如何運用密碼學基礎理論,探索信息安全技術,保障網絡空間安全,已成為當前政府、學術界、工業界共同關注的焦點。2018 年 12 月 15 日,第十四屆信息安全與密碼學國際會議(Inscrypt 2018)在福州正式開幕。
  • 區塊鏈中的那些密碼學
    1949年以前,安全性基於加密算法的保密性,統稱為古典密碼學;1949年,香農的資訊理論誕生為標誌,密碼學步入現代密碼學階段,基於複雜計算的密碼學,其是一種對稱加密算法;1976年,Whitfield Diffie和Martin
  • 【圖學院】區塊鏈與密碼學全民課堂第7-2講:經典盲籤名算法(一)
    導語:本課堂用通俗易懂的系列內容為大家呈現區塊鏈與密碼學領域相關知識。這裡有知識也有故事,從感興趣到有樂趣,全民課堂等你來學。這個系列中的課程內容首先從比特幣著手進行入門介紹,再延伸至區塊鏈的相關技術原理與發展趨勢,然後深入淺出地依次介紹在區塊鏈中應用的各類密碼學技術。歡迎大家訂閱本公眾號,持續進行學習。
  • 徐葳:多方計算的理論到實踐
    會上清華大學交叉信息研究院副教授、清華經管數字金融資產研究中心副主任徐葳就數據交易中的基礎技術——多方計算及其理論到實踐發表了精彩的演講。首先,徐葳教授向我們簡單介紹了多方計算的概念。多方計算(MPC:Multi-Party Computation,也叫多方安全計算)理論是1982年姚期智教授為解決一組互不信任的參與方在保護隱私信息以及沒有可信第三方的前提下的協同計算問題而提出的理論框架。後經Oded Goldreich、Shafi Goldwasser等學者的眾多原始創新工作,多方安全計算逐漸發展為現代密碼學的一個重要分支。
  • 雙線性對在密碼學中的應用(上)
    導 讀如果關心近年的密碼學成果,可以發現雙線性對作為一個基礎的密碼學工具頻頻出現。雙線性對是一種二元映射,它作為密碼學算法的構造工具,在各區塊鏈平臺中廣泛應用,比如零知識證明、聚合籤名等技術方案大多基於雙線性對構造得來。
  • 密碼學—一場智力的追逐
    最後3.0版本的改進在於鑰匙編成隨機字母的方式,而非有意義的文章,稱之為單次鑰匙簿密碼法,但是因為效率過低,使用的很少。密碼學和戰爭的關係是相互影響相互促進的,一方面信息的價值比武器的價值要高得多,密碼學會深刻影響戰爭的結果;另一方面戰爭對於加密解密的需要,又直接推動了密碼學的發展。
  • 王小雲院士:密碼學是區塊鏈技術的起源
    中國科學院信息技術科學部鄭志明院士、數學物理學部王小雲院士等四位院士發表主題演講,同時還有300餘名來自政府和企業界的代表出席會議,圍繞區塊鏈與數字身份、監管科技、金融應用等話題展開討論。中國科學院院士、清華大學高等研究院「楊振寧講座」教授、國際密碼協會會士(IACR Fellow)王小雲院士,在大會上進行了主題為「Hash函數與區塊鏈技術」的開幕報告。
  • 區塊鏈和密碼學有何關係?
    密碼學早期主要用於軍事領域,隨著網際網路發展,民用方面涉及電子商務、銀行支付、數字版權等領域也普遍得到應用。 最近幾年,區塊鏈和加密貨幣興起,密碼學的發展又進入了一個新的階段,區塊鏈的底層是密碼學技術,但是也涉及到經濟學。
  • 這項技術可以讓隱私數據「可用不可見」
    在此背景下,隱私計算於2016年應運而生。那什麼是隱私計算呢?隱私計算是面向隱私信息全生命周期的計算理論和方法,是隱私信息的所有權、管理權和使用權分離的前提下,面向隱私度量、隱私洩漏代價、隱私保護與隱私分析複雜性的可計算模型與公理化系統。經過近年的發展,隱私計算前在產業互聯、智能、融科技、醫藥保護等發揮重要的作。
  • 一文概覽密碼學發展史、基本原理與常見算法
    翻譯 & 校對:閔敏 & 阿劍 是不是只有那些數學頭腦很好的人,才能理解那些在信息安全中常常用到的技術(密碼學)?2020 年,NIST 接受了 「Rijndael」 算法,並命名為 「AES」,高級加密標準。 基本原理 所謂加密,就是一個改變數據,使之變得不可辨識、無授權者無法使用的過程;同時,它還要保證解密過程能成功把改變後的數據恢復成原始形式。安全技術一般都把加密的數學方法和用於加密的參數(叫做 「key (密鑰)」)區別開來。
  • 網絡安全薦書|強根固基,密碼學書籍推薦
    《Applied Cryptography》 —— Book by Bruce Schneier薦書理由:百科全書式的書籍,密碼學入門經典,有相關的中文版本書籍非常清晰的講解了密碼學所用到的數論知識、代數知識,計算複雜性理論,而且重點講解了密碼協議的設計和分析問題。是一本學習信息安全中密碼協議非常經典的專著,側重於密碼學基本理論,有一定難度。這本書入門的時候看確實不錯。
  • 十分鐘學密碼學
    通行口令,或曰「密碼」是生活裡常見的安全措施,是一種密碼學的最佳實踐。也就是說,這種方法用起來很方便。但它不是嚴肅的密碼學範疇。老百姓說起密碼學,第二個聯想是加密,信息加密。這個好理解。這個確實是密碼學的重要內容。《福爾摩斯探案集》小說裡有一個故事,叫《跳舞的小人》。這個故事講解了經典密碼學的常識。
  • ACM計算經濟學會議現場速報:偏理論的學術會議,如今開始擁抱應用...
    全稱為 ACM 計算經濟學會議,是計算經濟學領域最權威的學術會議,由 ACM 特殊興趣學組 SIGecon 於 1999 年主辦,至今已經走過了 18 年。作為國內第一名也是唯一一名圖靈獎獲得者,姚院士在算法理論創新、密碼學基礎及量子計算領域做出了巨大貢獻。本次參加 ACM EC 17,姚院士作為獨立作者,做了題為《Dominant-Strategy versus Bayesian Multi-item Auctions: Maximum Revenue Determination and Comparison》的報告。