一種滿足前向安全的短密文身份基加密方法
【技術領域】
[0001] 本發明涉及一種滿足前向安全的短密文身份基加密方法,它可以有效降低由私鑰 泄露帶來的安全威脅,屬于公鑰加密體制領域。 (二)
【背景技術】
[0002] 在數字化高度發展的今天,信息安全逐漸成為一項重要議題,而數據加密則是保 證信息安全的一項重要手段。現代數據加密體系包含兩種基本加密體制:對稱加密和非對 稱加密。其中,非對稱加密又稱公鑰加密,加密者和解密者在通信過程中使用非對稱密鑰對 數據進行加解密操作,無需事先進行密鑰協商,降低了對通信信道的安全性要求。因此,公 鑰加密得到了廣泛的應用。
[0003] 在傳統的公鑰加密體制中,認證中心需要事先對每個用戶進行注冊認證,并為其 分發相應的公鑰證書,這在一定程度上增加了通信開銷;另外,隨著系統中用戶的增多,公 鑰證書的數量也將增大,這增加了認證中心服務器的存儲負擔;而且公鑰證書的撤銷與恢 復也是一個比較復雜的問題。綜上,公鑰證書的管理成為制約傳統公鑰加密體制進一步發 展的瓶頸。
[0004] 身份基加密(Identity-Based Encryption,簡稱IBE)是近些年提出的一種公鑰 加密體制,與上述傳統公鑰加密體制不同的是,它無需使用公鑰證書。在IBE體制中,用戶 的公鑰是其身份信息(例如:郵箱地址和電話號碼等),這就避免了上述傳統公鑰加密體制 中由公鑰證書帶來的一系列問題。
[0005] 早在1984年,Shamir就提出了 IBE的概念,但是直到2001年Boneh和Franklin 才給出了第一個實用的IBE方案。此后IBE得到迅速發展,大量方案相繼提出,這些IBE方 案的安全性往往建立在保證私鑰絕對安全的基礎上。然而,在諸如空天信息網絡等開放環 境中,對于應用在衛星等非安全設備上的IBE算法來說,私鑰泄露將是一個不可避免的問 題。實際上,對于攻擊者來說,竊取合法用戶的私鑰比攻破IBE算法要簡單得多。在絕大多 數的IBE體制中,如果用戶私鑰被泄露,其安全性假設都將失效,整個加密系統的安全也將 受到威脅。因此,私鑰泄露成為威脅IBE系統最大的安全隱患。
[0006] 令IBE算法滿足前向安全可以有效降低上述由私鑰泄露帶來的損失,因為在公鑰 加密體制領域,前向安全的含義是:即使攻擊者竊取了某合法用戶當前時刻的私鑰,該攻 擊者仍然無法對先前時刻發送給該用戶的密文消息進行解密。前向安全的概念最初是由 Gunther在密鑰交換協議中提出的,之后Anderson提出了在非交互場景中實現前向安全的 想法。1999年,Bellare和Miner提出了第一個實用的前向安全簽名算法,之后各國學者相 繼提出了大量滿足前向安全的簽名算法。然而滿足前向安全的加密方案卻不是很多,直到 2003年,Bellare和Yee提出了第一個滿足前向安全的對稱加密算法,同年Canetti、Halevi 和Katz提出了第一個滿足前向安全的公鑰加密算法。在IBE體制領域,Ya〇、Fazi〇、D 〇diS 和Lysyanskaya于2004年提出了第一個滿足前向安全的分層IBE算法,但是該算法的計 算復雜度較高,加解密效率較低,密文和私鑰的長度均隨時間片數的增加而增大;2011年, Yu、Kong、Cheng、Hao和Fan提出了一種密文較短的前向安全IBE算法,但是該算法僅僅滿 足選擇明文安全;2012年,Lu和Li提出了一種構造前向安全IBE算法的通用模型,相應的 算法雖然密文長度固定且滿足選擇密文安全,但是在解密過程中需要驗證環節,效率較低。
[0007] 基于以上考慮,本發明提出了一種滿足前向安全的短密文身份基加密方法。在該 方法中,密文更短且長度固定,加解密的計算開銷更小,解密過程無需驗證環節,效率更高, 另外該方法滿足自適應選擇密文安全。本發明涉及的主要技術為分層身份基加密技術、二 叉樹加密技術、復合階雙線性群上的對稱雙線性映射。
[0008] 分層身份基加密(Hierarchical Identity-Based Encryption,簡稱 HIBE)是最初 由Horwitz和Lynn于2002年提出的一種IBE方案。與一般的IBE體制不同的是,在HIBE 中,用戶是按層組織分布的,其身份信息(即公鑰)與所處的層次有關,除了最底層用戶外, 每一層用戶都可以為下一層用戶分發私鑰,從而降低了中央私鑰生成機構的負擔,也便于 大型組織機構的管理。HIBE包含5個基本算法,即系統初始化、私鑰生成算法、私鑰導出算 法、加密算法、解密算法。其基本過程如下:1)系統初始化:將安全參數k作為輸入,輸出公 共參數PK和主密鑰MK,其中公共參數PK用來生成和導出用戶私鑰以及加密消息,并公布給 系統中的所有用戶,主密鑰MK用來生成最高層用戶的私鑰,并由中央私鑰生成機構秘密保 存。2)私鑰生成算法:將公共參數PK、主密鑰MK、第d層某用戶的身份矢量I作為輸入,輸 出該用戶的私鑰SKp 3)私鑰導出算法:將公共參數PK、第d層某用戶(假設其身份矢量為 I)的私鑰SK1、第d+Ι層某用戶的第d+Ι層身份I作為輸入,輸出該第d+Ι層用戶(其身份 矢量為I :1)的私鑰SK1:1。4)加密算法:將公共參數PK、明文M、第d層某用戶的身份矢量I 作為輸入,輸出密文C (只有身份矢量為I及其前綴的用戶能夠對該密文C進行解密)。5) 解密算法:將公共參數PK、密文C和私鑰為輸入,如果該密文C對應的身份矢量I與 該私鑰應的身份矢量I相同,則輸出正確明文M。注意,這里要求密文對應的身份矢 量與解密私鑰對應的身份矢量完全匹配,如果某用戶/機構的身份矢量是密文身份矢量的 前綴(即該用戶的層次比密文指定接收者高),則該用戶可以首先循環調用私鑰導出算法, 利用自己的私鑰生成相應的解密私鑰,然后再對密文進行解密。
[0009] 二叉樹加密(Binary Tree Encryption,BTE)可以看做是一種特殊的HIBE加密技 術,最初由Canetti、Halevi和Katz于2003年提出。類似HIBE,BTE也包含一個樹結構, 且每個節點對應一個私鑰,內部節點可以使用自己的私鑰為子節點分發私鑰。與HIBE唯一 不同的是,BTE使用的樹結構是二叉樹,即一個內部節點w的子節點有且僅有2個,分別記 做wO和wl。BTE包含5個基本算法:系統初始化、私鑰生成算法、私鑰導出算法、加密算法、 解密算法。其基本過程如下:1)系統初始化:將安全參數k作為輸入,輸出公共參數PK和 主密鑰MK,其中公共參數PK用來生成和導出各節點私鑰以及加密消息,并公布給系統中的 各個節點,主密鑰MK用來生成各BTE樹的根節點私鑰,并由私鑰生成機構保管。2)私鑰生 成算法:將公共參數PK、主密鑰MK、某個用戶的身份id作為輸入,輸出該用戶對應的BTE樹 Tid(假設其樹深為1)的根私鑰skid|e。3)私鑰導出算法:將公共參數PK、某個BTE樹T id的 某個內部節點的標識id|? e {Ο,?Γ1及其私鑰SkidlJt為輸入,輸出2個子節點的私鑰 Skid|tJ0、skid|tJl〇 4)加密算法:將公共參數ΡΚ、指定解密者身份id及其對應的BTE樹中的某 個指定解密節點的標識id|〇 e {Ο,?Ρ1、明文M作為輸入,輸出密文C(只有該指定節點 id| ω能夠對密文C進行解密)。5)解密算法:將公共參數PK、解密節點的標識id| ω e {〇, 及其私鑰Skidlu、密文C作為輸入,如果該密文C與該私鑰skid|ji應的節點標識相同, 則該算法輸出正確明文M。注意,這里要求密文與解密私鑰對應的節點標識完全匹配,如果 某節點的標識是密文指定節點標識的前綴(即該節點是密文指定節點的祖先節點),則該 節點可以首先循環調用私鑰導出算法,利用自己的私鑰生成相應的解密私鑰,然后再對密 文進行解密。
[0010] 復合階雙線性群上的對稱雙線性映射是雙線性映射的一種。最初,雙線性映射是 作為一種攻擊手段應用在密碼學的安全性證明中的,2001年Boneh和Franklin首次將其 應用于身份基加密體制中,后來越來越多的學者將雙線性映射應用到密碼學的協議和方案 中。復合階雙線性群首先是由Boneh、Goh、Nissim于2005年提出的,相應的對稱雙線性映 射的定義如下:設G tl和G 兩個階數均為q = p lP2p3的乘法循環群(其中p i、p2、p3分別是 3個不同的素數),如果映射e AXGtl= G i同時滿足以下條件:1)雙線性:對于Vwj G G0, a,b e Zq,都有e(ua,vb) = e(u,v)ab;2)非退化性