核心概念
我們使用 SL2(N) 上的簡單因式分解算法來對給定長度的詞進行混淆,從而創建了一個公鑰加密方案。我們提供了一個 Python 參考實現和建議的參數。安全性分析介於弱和不存在之間,留待未來工作。
摘要
本文提出了一個基於 SL2(N) 的公鑰加密方案。
首先,將長度為 λ 的比特串映射到自由單群上長度為 λ 的乘積。所選擇的單群實例應具有簡單的因式分解算法。然後,同態地混淆該單群(陷門單向嵌入),並將混淆後的生成元作為公鑰提供。
作者提供了該方案的詳細算法實例,使用 SL2(N) 作為單群,並給出了一個 Python 實現供實驗。
雖然還有很多需要做的密碼分析工作,但作者列出了一些影響方案安全性和實用性的重要問題:
- 嵌入 ϵP0,P1: F (λ)
2 ,→SL2n(Z/mZ) 是否為單向的?
- 給定隨機的 S−1MS (S 在 GL2(Z/mZ) 上均勻隨機), 確定 M ∈SL(k)
2 (N) 的複雜度如何?
- 增加維度 n 是否能使秘鑰 S 的搜索問題更加困難?
作者還提供了一個小例子和三組不同參數的實現,並邀請讀者嘗試攻擊這些參數集或進一步分析該方案。
最後,作者提出了一個潛在的改進方案,即通過限制允許的迹值範圍來提高安全性和實用性。這需要對迹和無窮範數的分布進行更深入的分析。
统计
以下是一些重要的數據指標:
秘鑰大小 |sk| = 4n2lλ + 2l
公鑰大小 |pk| = 8n2lλ
密文大小 |ct| = 4n2lλ
參數集 1 (l = λ = 256, n = 1): 19.68 秒
參數集 2 (l = 1, λ = 256, n = 16): 無法在合理時間內完成
參數集 3 (l = 16, λ = 256, n = 4): 14.26 秒