考慮KGC主密鑰洩露有意義嗎?
在基於身份的密碼學中,系統中使用者的私鑰由密鑰生成中心(KGC)傳遞。我的問題是:考慮KGC的主密鑰洩露有意義嗎?而且,如果發生這種情況,那麼我可以認為所有使用者的私鑰都會洩露嗎?
補充部分(下)
實際上,在我讀過的論文(基於ID的密鑰交換)中,我很少遇到考慮到主密鑰洩漏的場景。也許(我不確定)是因為對手有能力獲得主密鑰,那麼它無法獲得哪些密鑰(包括使用者的私鑰)?
但是如果我們從另一個方面考慮,如果 KGC 的主密鑰妥協了,那就看情況了。如果 KGC 生成使用者的私鑰只是作為主密鑰和使用者身份的函式,而不添加一些額外的臨時資訊(例如 $ sk_A=H(ID_A)^{msk} $ ),那麼主密鑰的洩露就意味著使用者私鑰的洩露。但是,如果 KGC 生成使用者的私鑰還添加了一些額外的臨時資訊(例如 $ sk_A=k+msk*H(ID_A,r) $ , 在哪裡 $ r=g^k $ 是臨時資訊),則反之。除非對手獲得主密鑰和臨時值,否則它可以獲得使用者的私鑰。
這麼多次,不知道是不是應該考慮master key的洩露。
有很多關於前向安全 IBE 的論文,你可以在Google上搜尋這個詞。
在這裡,我將專注於具有我稱之為“密鑰遺忘”的屬性的 IBE,
並致力於建構具有該屬性的深度 O(1) HIBE。
可以應用“隨機預言機、深度-O(1) 自適應 ID 安全性
和(缺乏)完整性”和“雜湊和恢復”部分中的任何一個而不應用另一個,
但如果兩者都適用,則應該應用它們以該順序。
討論和固有限制:
在這樣的方案中,KGC 能夠更新主私鑰(即 KGC 的秘密),以便“忘記”與特定 ID 對應的私鑰。 $ : $ 這樣做之後,主私鑰應該
足以計算與其他 ID 對應的私鑰,但不足以
違反該特定 ID 的機密性。 $ ;;;; $ 對於 n 這樣 $ : 2\hspace{-0.04 in}\cdot \hspace{-0.04 in}n \leq 2^L : $ , $ : $ 可以考慮
任意集合 B $ :2\hspace{-0.04 in}\cdot \hspace{-0.04 in}n: $ 長度為每個的身份 $ L $ , 想像一下讓 KGC 忘記對應於 $ n $ -B 的元素子集 S。 $ : $ 機密性意味著
為 B 中的 ID 加密一個長的隨機明文,讓 KGC 對該 ID 執行提取,並將解密
及其輸出應用於密文,產生原始明文的機率應該可以忽略不計。
另一方面,功能性意味著對 BS 中的 ID 執行相同操作
應該具有產生原始明文的壓倒性機率。
因此,對 B 中的每個 ID 執行此操作應該具有恢復集合 S 的壓倒性機率。
由於 B 的至少有 2^n 個這樣的子集,因此主
私鑰的機率短於 $ :\lfloor n/2\rfloor: $ bits long 最多可以忽略不計 $ :1/2^{\lfloor n/2\rfloor}; $ .
因此,主私鑰的大小必須至少
與迄今為止被遺忘的密鑰數量線性增長。
現在,另外假設該方案具有足夠的完整性以使下一個句子為真。
將(公鑰和)主私鑰作為輸入
並輸出一組 ID 的非必要可行過程,其中提取過程的機率大於
既不提供有效私鑰也不成功指責其他任何人的機率對於該故障,
始終輸出 KGC 已為其執行“忘記”過程的 ID 集的子集。
此外,責備測試的機密性和計算合理性意味著
我剛才描述的過程應該有壓倒性的機率輸出 所有
KGC 為其執行忘記程序的 ID,這意味著主私鑰極
有可能唯一確定該 ID 集。 $ : $ 因此,該完整性條件
本質上要求 KGC 儲存已對其執行忘記過程的所有 ID 的列表。
這些限制甚至適用於只需要對隨機ID 保密的 IBE 方案。
BTE 的積極結果:
二叉樹加密直接允許為
固定深度和固定片段長度的 ID 建構選擇性 ID HIBE,並在每個級別使用密鑰遺忘,只需將 ID 的各個部分連接在一起以確定相關節點,以及為了忘記一個鍵,將與相關節點不同的節點對應的鍵儲存在它們的最後一位但沒有其他位置,然後擦除與作為相關節點的前綴的節點對應的鍵。
儘管必須以某種方式通知潛在的加密者,
但任何級別的任何 KGC 都可以獨立地通過將時間段放在 ID 之前,實現前向安全
和撤銷,但需要 在每個時間段內要求解密器獲取私鑰的額外成本 ,這也將使得 KGC 的儲存需求僅取決於目前時間段內忘記的密鑰。
例如,通過在 ID 的每個“真實”部分之前放置一個 1 並附加一個
全為零的 ID 片段,可以使用有界深度的 ID,而不僅僅是固定深度。
通過使用無前綴程式碼,人們還可以處理其片段長度有限的 ID,
儘管此答案的下一部分將假設 ID 片段仍然是固定長度的。
隨機預言機、深度 O(1) 自適應 ID 安全性和(缺乏)完整性
為了在隨機 Oracle 模型中從選擇性 ID 安全性轉到自適應 ID 安全性,我們選擇了一個隨機 Oracle,其輸入被解釋為具有兩個部分,其中主要的一個將是 ID,其輸出比它的輸入,以及一個異或幾乎通用的雜湊函式族,其域是 ID 的空間,其共域是
比特串的集合,其長度每個都是預言機輸出長度的相同單位分數。 (二進製欄位
中的 乘法就是這種散列系列的一個例子。) $ : $ 主私鑰具有 ident_set 和 func_set 都初始化為空集,以及主私鑰對於選擇性 ID 方案的 ID 片段長度等於 oracle 輸出的長度。
公鑰包含一個列表
$$ that fraction’s denominator $$聲稱來自該雜湊系列的樣本,其中一個由主 KGC 生成,而其他的不是,選擇性 ID 方案的公鑰
,以及將用作預言機的次要部分的隨機字元串輸入。
只要選擇的所有雜湊都不依賴於該隨機字元串(特別是,如果它們都是在隨機字元串之前選擇的),即使這些雜湊都是惡意選擇的,機密性也將保持不變。 對於任何真實 ID,讓 F(ID) 表示
$$ [the random oracle applied to the random string and the real ID-piece $$自由$$ the concatenation of the hashes of the real ID-piece $$] 為每一件真實身份證件。 $ : $ 要加密和解密,請在選擇性 ID 方案中使用 F(ID)。 $ : $ 為了忘記使用者的私鑰,KGC 將 ID 和 F(ID) 分別放入集合 ident_set 和 func_set,然後在 F(ID) 上執行選擇性 ID 方案的忘記過程。 $ : $ 為了提取,KGC 執行如下操作:如果 F(ID) 不在 func_set 中,則在 F(ID) 上執行選擇性 ID 方案的提取算法並返回該算法的輸出,
否則如果 ID 在 ident_set 中則拒絕,否則$$ indicate a completeness failure, find the value ID’ ident_set such that F(ID’) = F(ID), and give the pair ID,ID’ as a publicly-verifiable proof that all of the hashes in the public key came from a particular subset of their values that, unconditionally, is exponentially unlikely $$.
最後一部分有點不令人滿意,因為我看不出有任何
理由不希望完美的完整性。 儘管必須以某種方式通知潛在使用者,但
任何級別的任何 KGC 都可以獨立使用不同的此類雜湊列表。
由此產生的有界深度和固定片寬 HIBE 方案是這樣的,即攻擊
最多不同的 ID $ \Delta $ 通過至多 q 次隨機 Oracle 查詢,從深度最多為 d 的預選 ID 中獲取碎片,對應於在最多 d 個列表中 的
一個上攻擊選擇性 ID 方案
$ :((\Delta \hspace{-0.04 in}+\hspace{-0.04 in}d\hspace{.03 in})\hspace{-0.02 in}\cdot \hspace{-0.02 in}(1\hspace{-0.04 in}+\hspace{-0.04 in}q))^{\Delta}: $ 隨機選擇的 ID。 $ ;; $ 特別是,得到的方案
對於深度 O(1) 的 ID 是自適應 ID 安全的,其中不需要先驗地選擇常數。
雜湊和恢復
為了消除固定 ID 長度的限制,可以嘗試散列 ID。
但是,問題在於 ID 衝突時的完整性。
這可以通過使用抗衝突(加密)雜湊族來處理,這樣每個
雜湊都與一個唯一且在計算上無法區分的統一秘密相關聯,
人們可以有效地採樣由這些雜湊之一和秘密組成的對該雜湊值,
並且可以從雜湊衝突中有效地恢復該秘密。
(我將在此答案的底部給出此類家庭的候選結構。)
我已經厭倦了輸入這個,所以現在我只想說
KGC 用雜湊加密它的原始密鑰,這樣它就可以在
遇到衝突時解密它並保持完整性。
希望我能很快完成這個。
我正在談論的雜湊族由(強)硬核函式和 Pedersen 承諾
s 的 串聯給出,對於已知素數階 p 的組,存在一個有效可計算但不一定有效可逆的內射映射
對於已知 n,從組到 {0,1,2,3,…,n-2,n-1} 使得 (p^2)/((p^2)-n) 是明顯的,
並且秘密是離散日誌上核心函式的值的串聯。
免責聲明:我不熟悉基於身份的密鑰交換,只知道最基本的基於身份的加密設置,並僅限於此。除了瑣事之外,我參考了Ricky Demer 的回答。
基於身份的加密的定義屬性是:使用者的 ID 和 KGC 的公鑰是加密所需要的;只有在證明他或她有權獲得 ID 之後,使用者才能從密鑰生成中心獲得解密所需的內容(換句話說,使用者的私鑰)。如果 KGC 的主密鑰洩露給攻擊者(至少,在 KGC 最初設置時的狀態),那麼對於任何 ID,該攻擊者都可以執行合法 KGC 應使用者冒充ID的使用者私鑰,略過ID授權的展示;那麼攻擊者可以執行任何合法有權獲得該 ID 的使用者會執行的操作,
因此,是的,考慮 KGC 主密鑰的洩漏是有意義的。基本的基於身份的加密方案的結果是失去所有消息(過去和未來)的機密性。KGC 主密鑰洩漏的這種災難性後果必然適用於任何 IBE 系統,其中加密消息與註冊使用者的通信是單向的,並且 KGC 持有的秘密資訊在使用過程中保持不變,無論是否涉及臨時資訊的生成使用者的私鑰。**更新:**如果允許 KGC 持有的秘密資訊在每次使用時發生變化,則可以安排它失去生成已經分發的使用者私鑰的能力;這保留了加密的消息(過去和未來)的機密性,旨在由在洩漏之前獲得其私鑰的使用者解密。Ricky Demer 的回答更深入地介紹了這一點。
注意:如果在隨機生成使用者密鑰後,KGC將使用者的密鑰歸零,在此過程中使用的任何隨機性,以及其他短暫的資訊;但我認為這對基本IBE 設置中的消息機密性沒有任何影響。