密碼金鑰傻傻分不清?認識密碼學中的最高機密

買賣虛擬貨幣
密碼學為何稱之為密碼學?密碼和金鑰究竟有何區別?隱私保護方案中,金鑰的角色是否可以被替代?金鑰在使用過程中存在哪些風險?這裡,我們將以密碼學中的密碼為起點,展開一系列對密碼學演算法核心元件的技術剖析。密碼和金鑰在密碼學演算法中有著至關重要的地位,瞭解密碼和金鑰的作用,有助於理解基於密碼學的隱私保護方案是否具備有效性。密碼和金鑰對於使用者而言,則是最終達成隱私資料『始於人、利於人、忠於人』隱私保護效果的無上法器。密碼學的英文為Cryptography,源自希臘語“κρυπτός秘密”和“γράφειν書寫”。最初,其研究主要集中在『如何在攻擊者存在的環境中隱秘地傳輸資訊』,是一個關於資訊編碼的學科,由於其最重要研究目標之一是保密,實現敏感資訊的秘密編碼,所以被稱之為密碼學。密碼學中的密碼,和我們日常生活中登入各類資訊化系統所使用的密碼是兩個不同的概念。前者包含了資訊加密編碼、密文解密解碼、資料完整性驗證等一系列資訊變換過程。而後者更多地是指代密碼學資訊變換過程中所使用的便於使用者記憶的一類金鑰,為了以示區別,在下文中稱之為使用者口令。在密碼學中,金鑰的作用與現實生活中的鑰匙很相似,只有掌握金鑰的使用者,才能解密對應的隱私資料,或進行數字簽名等相關敏感操作。為什麼金鑰能夠有這麼神奇的作用,一切要從柯克霍夫原則談起。
1. 柯克霍夫原則柯克霍夫原則是現代密碼學演算法設計基本原則之一,最早由荷蘭密碼學家Auguste Kerckhoffs在1883的論文La Cryptographie Militaire(軍用密碼學)中提出。其核心思想是『密碼學演算法的安全性,不應該建立在演算法設計保密的基礎上』。即便演算法設計是公開的,只要實際使用的金鑰沒有被攻擊者獲知,密碼學演算法產生的密文資訊就不應該被輕易破解。被譽為“資訊理論之父”的美國數學家、電子工程師、密碼學家Claude Elwood Shannon後來將這一原則進一步擴充套件,應用到任意資訊保安相關的系統,由此也奠定了金鑰在現代密碼學中的核心地位。金鑰具體如何使用呢?這裡有必要回顧第3論中提到的,密碼學演算法設計所基於的計算不對稱性,以及與之相關的一個重要概念——單向陷門函式。一個單向陷門函式可以抽象為y = f(x, key),其中,x為敏感的隱私資料輸入,y為經過演算法保護的不敏感輸出,key就是金鑰。實際情形下,根據具體密碼學演算法設計和實現上的差異,金鑰key可以有不同的表現形式,也可以表現為多個秘密引數。

如果以上函式是一個密碼學安全的單向陷門函式,在不知道金鑰key的前提下,很難從輸出y透過逆函式反推出輸入x,由此避免了隱私資料的洩露。

由此可見,金鑰就是密碼學資訊變換過程中的最高機密。誰掌握了金鑰,誰就掌握了隱私資料的訪問權。

2. 人類可用的金鑰

一般而言,再精密的隱私保護方案,最終都需要服務於人類使用者。由於密碼學隱私保護方案的安全性很大程度上取決於金鑰的長度和複雜性,這也為人類使用者在使用金鑰時帶來了不小挑戰。

目前業界主流推薦的密碼學安全強度是256位,即金鑰的資訊熵至少等價為256位元的隨機數。如果我們用常見的字母數字來設定使用者所用的金鑰,該金鑰的長度至少為256/log2(26*2+10) ~= 43個隨機字元。

考慮到使用者通常為了便於記憶而拼接字典中的單詞來構成金鑰,此時為了滿足金鑰資訊熵的隨機性要求,實際可能需要使用長度更長的金鑰。

相比之下,現有系統對使用者口令的長度一般要求在6~20字元之間,對於部分應用4~6位數字使用者口令也不少見。所以,這些使用者口令的隨機性和長度都不足以達到256位安全強度。

如果一個隱私保護方案所使用的金鑰只源自使用者口令,是無法滿足隱私資料的安全性要求的。

然而,普通人類並不具備計算機一般強大的計算和記憶能力,難以記憶和處理過長的金鑰。此時,需要藉助技術手段來提高人類可用金鑰的資訊熵,常見的解決方案有以下三類:

三類解決方案中,平臺全權託管的使用者體驗最好,同時也伴隨著最大的隱私風險。混合託管和本地全權託管,在使用者體驗上差異不大,混合託管相關的隱私風險更低。

需要注意的是,這裡存在一個固有的設計取捨,隱私資料的自主權與資料服務的完備性不可兼得。

平臺全權託管方案中,使用者隱私資料的實際控制權在平臺手中,由此平臺可以提供諸如使用者口令重設、資料恢復等關鍵資料服務。

然而,在其他託管方案中,使用者隱私資料的實際控制權在使用者手中,一旦使用者遺失金鑰或使用者口令,則平臺無法解密對應的資料,也無法提供口令重設等相關金鑰服務。

對於企業而言,具體方案的選擇,需要結合使用者使用習慣和行業監管要求,建議在平臺全權託管和混合託管之間做選擇。對於高敏感性隱私資料,酌情選擇混合託管,並需要配合金鑰恢復方案使用。

3. 金鑰相關的風險

隱私資料的自主權往往是隱私保護方案強調的重點,但是為了切切實實地獲得控制權,僅僅是安全地使用單個安全金鑰,就可能會給使用者體驗方面帶來顯著負擔,而且還需要防範其他金鑰相關的洩露風險。

這些風險可以大致分為以下兩類:

內在風險

這類風險與隱私保護方案的內在設計和實現有關。由於絕大部分密碼學演算法和協議不是資訊理論安全,也就說,同一個金鑰使用的次數越多,理論上被破解的概率越大。

對應的常見風險分析手段是,考慮對應密碼學演算法和協議在選擇明文攻擊(Chosen-plaintext Attack, CPA)和選擇密文攻擊(Chosen-ciphertext Attack, CCA)下,是否依舊安全。

這兩類攻擊都允許攻擊者獲得一定數量的隱私資料明文和密文對,由此分析破解所使用的金鑰。

在現實生活中,攻擊者非常有可能獲得這樣的能力,截獲明文和密文對,甚至主動注入資料,生成破解分析所需的明文和密文對,這類風險是真實存在的。

外在風險

這類風險雖然與隱私保護方案的內在設計和實現無關,但卻實實在在地對方案的實際效果產生巨大威脅。

比較典型的攻擊有社會工程學,具體指透過欺騙性手段,如釣魚網站、詐騙簡訊等,誘導使用者直接給出金鑰,或者透過下載安裝病毒木馬,間接盜取金鑰。

無論是哪一類風險,如果使用者只有一個金鑰,一旦被盜,所有的賬戶都有被盜的風險,後果不堪設想。

處理好這些風險的必要條件,就是產生並使用多個隨機金鑰,但這也為隱私保護方案的可用性帶來了更大的挑戰。

無論隱私保護方案設計安全性多高,如果由於使用者體驗差,使用者難以接受,或者以不安全的變通方式使用,其真實有效性都會大打折扣。這也是學術方案向業務方案轉化最常見的阻礙之一。

除了探索更優的方案設計,適當的使用者教育也是非常必要的推廣手段。

總體而言,同時處理好金鑰使用過程的安全性和可用性,是落實隱私保護的重要前提。

正是:隱私資料控制難自主,訪問金鑰在手任我行!

金鑰是任何基於密碼學技術方案的最高機密,如何保障其安全性,並讓作為隱私資料屬主的人類使用者方便地記憶和使用,是將隱私控制權迴歸屬主的關鍵。

這個過程難免會引入數量繁多的金鑰,如何實現有效的金鑰管理,對於計算機系統和人類使用者可以使用哪些不同的技術和策略,欲知詳情,敬請關注下文分解。

免責聲明:

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

推荐阅读

;