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

買賣虛擬貨幣

隱私保護為何選用密碼學演算法?密碼學演算法背後有哪些神奇的數學理論?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年後依舊有效。無論什麼樣的隱私保護技術方案都有其時效性。

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

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

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

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

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

《隱私保護週三見》

“科技聚焦人性,隱私迴歸屬主”,這是微眾銀行區塊鏈團隊推出《隱私保護週三見》深度欄目的願景與初衷。每週三晚8點,專家團隊將透過欄目和各位一起探尋隱私保護的發展之道。

欄目內容含括以下五大模組:關鍵概念、法律法規、理論基礎、技術剖析和案例分享,如您有好的建議或者想學習的內容,歡迎隨時提出。

欄目支援單位:零壹財經、陀螺財經、巴位元、火訊財經、火星財經、價值線上、鏈客社羣

往期集錦第1論|隱私和效用不可兼得?隱私保護開闢商業新境地第2論|隱私合規風險知幾何?資料合規商用需過九重關

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;