選擇語言

基於偽隨機數生成器(PRNG)嘅安全密碼生成器

一篇研究論文,提出使用基於HMAC、CMAC或KMAC嘅PRNG來構建安全密碼生成器,並通過NIST SP 800-90B熵同IID測試進行驗證。
computationalcoin.com | PDF Size: 0.5 MB
評分: 4.5/5
您的評分
您已經為此文檔評過分
PDF文檔封面 - 基於偽隨機數生成器(PRNG)嘅安全密碼生成器

目錄

1. 引言

本研究針對密碼洩漏同個人資料外洩風險呢個長期問題。雖然網站安全係一個因素,但密碼本身嘅固有強度至關重要。常見嘅漏洞包括基於關鍵字、流行短語、用戶資訊嘅密碼,以及重用密碼。人工智能同大型語言模型嘅興起,進一步增強咗攻擊者猜測密碼嘅能力。

為此,本文提出一個基於安全偽隨機數生成器(PRNG)嘅安全密碼生成器。核心PRNG使用HMAC、CMAC或KMAC等密碼學原語構建,以生成高質量隨機數,然後用嚟創建密碼。系統允許可選嘅用戶輸入(待哈希消息,TBHM)作為種子。主要貢獻包括:

2. 文獻綜述

2.1. 基於線性同餘生成器嘅偽隨機數生成器

常見嘅編程語言(C、Java)使用線性同餘生成器(LCG)。給定一個種子 $k$,序列生成方式為:$f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$ 同 $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$。呢種方法係唔安全嘅,因為狀態可以被逆推:$f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$,從而暴露種子同整個序列。

2.2. 安全偽隨機數生成器

安全PRNG基於NIST SP 800-108 Rev. 1中概述嘅密碼學原語。

2.2.1. 基於HMAC

安全性依賴於哈希函數(例如SHA2、SHA3)嘅單向特性。對於密鑰 $k$ 同消息 $M$,HMAC計算為:$r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$。為咗生成長度 $L$ 嘅隨機比特流,使用計數器模式:$M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$,產生輸出 $r_{hmac,i}$。

2.2.2. 基於CMAC

安全性依賴於CBC模式下嘅AES分組密碼。消息 $M$ 被分割成區塊 $M'_1, M'_2, ...$。過程迭代進行:$c_{i+1} = AES(k, c_i \oplus M'_{i+1})$,其中 $c_0 = Pad0(0)$。最終輸出 $r_{cmac}$ 係喺特定填充(Pad1)後從最後一個密文區塊導出。

2.2.3. 基於KMAC

利用KECCAK海綿函數(SHA-3嘅基礎),提供一個靈活且穩健嘅MAC函數,適合生成確定性隨機比特。

2.3. 隨機性驗證方法

本文採用NIST SP 800-90B框架,呢個係驗證熵源嘅事實標準。它包括兩個關鍵嘅驗證套件:

3. 提出嘅安全密碼生成器

提出嘅系統架構簡單而強大:

  1. 輸入/種子: 接受可選嘅用戶提供嘅TBHM。如果提供,則對其進行處理;否則,使用系統生成嘅安全種子。
  2. 安全PRNG核心: 將TBHM/種子輸入到三個密碼學PRNG構造(基於HMAC、基於CMAC、基於KMAC)之一,以生成密碼學上強嘅偽隨機比特序列。
  3. 密碼構建: 將隨機比特映射到用戶定義或系統定義嘅字符集(例如字母數字+符號)上,以產生所需長度嘅密碼。

安全性分析: 本文認為,生成密碼嘅安全性直接取決於PRNG輸出嘅熵同字符集嘅大小。佢進行咗比較分析,表明假設PRNG輸出係真正隨機嘅,呢種方法從94個字符集中生成嘅16字符密碼,可以提供媲美甚至超過AES-128或AES-256密鑰嘅暴力破解抵抗力。

4. 實驗結果與分析

實驗驗證係本文嘅一個關鍵優勢。

圖表描述(隱含): 柱狀圖可以有效地比較三種PRNG方法嘅最小熵估計值(每比特比特數)與理想值1.0。所有柱狀都會非常接近1.0。第二張圖表可以顯示關鍵IID測試(例如卡方檢驗、柯爾莫哥洛夫-斯米爾諾夫檢驗)嘅p值,所有值都遠高於典型顯著性閾值(例如0.01),表明通過測試。

5. 結論與未來工作

本研究成功展示咗一個基於密碼學PRNG嘅安全密碼生成框架。提出嘅方法生成具有足夠隨機性嘅密碼,並通過NIST標準進行嚴格驗證。未來工作方向包括:

6. 原創分析與專家見解

核心見解: 本文唔係關於發明新嘅密碼學原語;而係關於對現有、經過審查嘅原語(HMAC、CMAC、KMAC)進行規範化應用同驗證,以解決密碼生成呢個平凡但關鍵嘅問題。其真正價值在於彌合理論密碼學同實際安全實踐之間嘅差距,使用黃金標準NIST測試套件嚴格證明其輸出適合用途。

邏輯流程: 論證係合理嘅:1) 標準LCG喺密碼學上已被破解。2) 基於密碼學MAC構建嘅安全PRNG被證明係穩健嘅。3) 因此,從此類PRNG導出嘅密碼繼承咗該穩健性。4) 呢個主張唔單止通過理論驗證,仲通過咗嚴格嘅實證測試(NIST SP 800-90B)。呢種端到端驗證係許多「安全密碼生成器」工具所缺乏嘅。

優點與缺點:
優點: 方法論嘅嚴謹性值得稱讚。使用NIST SP 800-90B進行驗證立即提升咗其可信度,類似於密碼學算法通過CAVP(密碼算法驗證程序)進行驗證。與AES密鑰強度嘅比較係一個實用、相關嘅安全團隊指標。
缺點: 本文喺一個受控、理想化嘅環境中操作。佢假設初始種子/TBHM具有足夠嘅熵——呢個係實際系統中關鍵且經常薄弱嘅一環。「可選」嘅用戶輸入係一把雙刃劍;一個弱、可預測嘅用戶短語(例如「mypassword」)可能會破壞整個密碼學構造,呢個風險未被充分量化。此外,正如NIST喺2023年嘅回顧「後量子密碼學:十年歷程」中指出,該領域正朝著抗量子算法發展。本文嘅構造雖然對經典計算機係安全嘅,但依賴於SHA2/AES,其長期抗量子能力尚不確定。

可行見解: 對於安全架構師,本文提供咗一個藍圖。唔好自己開發PRNG。 使用已建立嘅密碼學構造作為構建塊。更重要嘅係,驗證、驗證、再驗證。 將持續嘅熵驗證(如NIST測試)集成到你嘅關鍵隨機數生成系統中,呢個做法受到Linux基金會CCC(通用準則認證)等組織嘅強調。對於產品開發,直接嘅啟示係用基於KMAC或HMAC-SHA256嘅生成器替換你系統中任何基於LCG嘅密碼生成,並使用安全來源嘅種子。面向未來嘅步驟係開始使用基於SHA-3/KECCAK嘅設計(如KMAC)進行原型設計,並監測NIST後量子密碼學標準嘅發展,以便最終集成。

7. 技術細節與數學公式

核心數學運算喺文獻綜述(第2節)中定義。關鍵公式包括:

密碼生成將一個隨機整數 $R$(來自PRNG輸出)映射到一個字符索引:$\text{index} = R \ \text{mod} \ |S|$,其中 $|S|$ 係字符集嘅大小。

8. 分析框架與案例示例

案例示例:評估舊系統嘅密碼生成器
場景: 一個舊版Web應用程序使用修改過嘅LCG生成臨時用戶密碼。需要進行安全審計。
框架應用:

  1. 識別PRNG類型: 檢查源代碼。發現:seed = (a * seed + c) % m; 確認佢係一個LCG變體。
  2. 評估密碼學安全性: LCG係確定性且可逆嘅。攻擊者獲取幾個連續密碼後,可以求解種子並預測所有未來密碼,違反NIST SP 800-63B關於驗證器隨機性嘅指南。
  3. 使用本文方法提出補救措施:
    • 種子來源: 用CSPRNG(例如Linux上嘅/dev/urandom、Windows上嘅CryptGenRandom)替換系統時間種子。
    • 核心生成器: 根據本文設計,實現一個基於HMAC-SHA256嘅PRNG。
    • 驗證: 從新生成器生成大樣本(1,000,000比特),並喺部署前運行NIST STS(統計測試套件)或SP 800-90B中嘅熵估算器以驗證隨機性。
呢個框架將評估從「佢睇落隨機嗎?」轉變為「佢通過標準化密碼學驗證嗎?」

9. 未來應用與發展方向

呢啲原則擴展到用戶密碼之外:

10. 參考文獻

  1. M. Bishop, “Computer Security: Art and Science”, Addison-Wesley, 2019.
  2. NIST, “Special Publication 800-63B: Digital Identity Guidelines”, 2020.
  3. NIST, “Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation”, 2018.
  4. NIST, “Special Publication 800-108 Rev. 1: Recommendation for Key Derivation Using Pseudorandom Functions”, 2022.
  5. NIST, “FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions”, 2015.
  6. J. Kelsey, B. Schneier, D. Wagner, “Secure Applications of Low-Entropy Keys”, Information Security Workshop, 1997.
  7. M. Dworkin, “Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication”, NIST SP 800-38B, 2005.
  8. NIST, “Status Report on the Third Round of the NIST Post-Quantum Cryptography Standardization Process”, 2022. [Online]. Available: https://csrc.nist.gov/projects/post-quantum-cryptography
  9. Linux Foundation, “Common Criteria Certification and Open Source”, 2023. [Online]. Available: https://www.linuxfoundation.org/