一種提高外包加密數(shù)據(jù)共享功能的代理重加密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于云計(jì)算數(shù)據(jù)安全領(lǐng)域,更具體地,涉及一種提高外包加密數(shù)據(jù)共享功 能的重加密方法。
【背景技術(shù)】
[0002] 外包數(shù)據(jù)是指存儲(chǔ)在云端的數(shù)據(jù)。隨著個(gè)人數(shù)據(jù)量越來(lái)越大,也隨著人們對(duì)數(shù)據(jù) 訪問(wèn)便利性的要求越來(lái)越高,越來(lái)越多的數(shù)據(jù)被存放在云端。如何保證外包數(shù)據(jù)的安全性 也成為了不可避免的問(wèn)題。為了保證數(shù)據(jù)的私密性,現(xiàn)在采取的手段是將數(shù)據(jù)進(jìn)行加密后 存放在云端,但是加密數(shù)據(jù)的高效共享成為一個(gè)難題。
[0003] Chu等人在"條件代理廣播重加密"一文中提出了一種帶細(xì)粒度控制的廣播代理重 加密方法,此方法中共實(shí)現(xiàn)了細(xì)粒度控制、廣播和代理重加密三種功能,細(xì)粒度控制是指將 分享的粒度控制到單個(gè)文件級(jí),廣播是指可以為多個(gè)用戶(hù)生成一條密文,代理重加密是指 云端可以根據(jù)數(shù)據(jù)擁有者生成的代理重加密密鑰將一條可以被用戶(hù)群S1解密的數(shù)據(jù)重加 密成用戶(hù)群S2解密的數(shù)據(jù)。使用此方法可以實(shí)現(xiàn)外包加密數(shù)據(jù)共享的高效性。M.Green等 人在《基于身份的代理重加密》一中提出了基于身份的代理重加密方案,在此方案中將基于 身份加密與代理重加密結(jié)合起來(lái),可以對(duì)在基于身份加密的體系下實(shí)現(xiàn)代理重加密。相比 于傳統(tǒng)的公鑰體制,基于身份加密具有不需證書(shū)管理的優(yōu)勢(shì)。Shao等人在《基于身份的條 件代理重加密》一文中提出了帶細(xì)粒度控制的基于身份代理重加密方案,此方案在基于身 份代理重加密方案的基礎(chǔ)上加入了細(xì)粒度控制,實(shí)現(xiàn)了對(duì)文件級(jí)的外包密文數(shù)據(jù)的共享。
[0004] 然而,現(xiàn)有上述方法存在以下問(wèn)題:
[0005] (1)在上述第一種方法中,使用的加密體系是傳統(tǒng)的公鑰體系,而傳統(tǒng)的公鑰體系 的運(yùn)行過(guò)程中需要證書(shū)管理的證書(shū)的認(rèn)證,這會(huì)帶來(lái)很大的開(kāi)銷(xiāo);
[0006] (2)在上述第二種方法中,雖然使用了基于身份加密的體系,免去了證書(shū)管理和認(rèn) 證方面的開(kāi)銷(xiāo),但是它并不能將粒度控制到單個(gè)的文件級(jí),也不能實(shí)現(xiàn)對(duì)多用戶(hù)的廣播;
[0007] (3)在上述第三種方法中,并不能實(shí)現(xiàn)對(duì)多用戶(hù)的廣播,在多用戶(hù)請(qǐng)求分享外包密 文數(shù)據(jù)的情況下,會(huì)有很大的計(jì)算和傳輸開(kāi)銷(xiāo)。
【發(fā)明內(nèi)容】
[0008] 針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種提高外包加密數(shù)據(jù)共享 功能的代理重加密方法,其目的在于解決現(xiàn)有方法中存在的開(kāi)銷(xiāo)大、不能實(shí)現(xiàn)對(duì)多用戶(hù)廣 播、以及計(jì)算和傳輸開(kāi)銷(xiāo)大的技術(shù)問(wèn)題。
[0009] 為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種提高外包加密數(shù)據(jù)共享功 能的代理重加密方法,其應(yīng)用在包括多個(gè)用戶(hù)、云端以及KGC的存云存儲(chǔ)系統(tǒng)中,該方法包 括以下步驟:
[0010] (1)根據(jù)預(yù)先確定的安全級(jí)別構(gòu)建對(duì)應(yīng)的雙絲性映射,并根據(jù)該雙線性映射和系 統(tǒng)中的用戶(hù)數(shù)量計(jì)算主公共密鑰PK和主秘密參數(shù)MK;
[0011] (2)根據(jù)生成的主秘密參數(shù)MK和每個(gè)用戶(hù)所具有的身份ID,為每個(gè)用戶(hù)生成私鑰 SK,并將該私鑰發(fā)送給對(duì)應(yīng)的用戶(hù);
[0012] (3)接收由接收方集合向數(shù)據(jù)擁有者發(fā)送的數(shù)據(jù)請(qǐng)求,并根據(jù)該數(shù)據(jù)請(qǐng)求判斷該 數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存放在云端,如果是則轉(zhuǎn)入步驟(5),否則轉(zhuǎn)入步驟(4);
[0013] (4)使用接收方集合S1的公鑰對(duì)該數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)m進(jìn)行加密,以生成初始 密文C,并經(jīng)由云端將初始密文轉(zhuǎn)發(fā)給發(fā)送數(shù)據(jù)請(qǐng)求的用戶(hù),由接收方集合S1在收到初始 密文后用其私鑰進(jìn)行解密;
[0014] (5)數(shù)據(jù)擁有者生成與相應(yīng)初始密文對(duì)應(yīng)的代理重加密密鑰,將其發(fā)送給云端,云 端對(duì)初始密文做重加密生成重加密密文C2,將其發(fā)送給請(qǐng)求方集合S2中的用戶(hù),請(qǐng)求方集 合S2中的用戶(hù)收到后可用其私鑰對(duì)其進(jìn)行解密。
[0015] 優(yōu)選地,步驟(1)包括以下子步驟:
[0016] (1-1)根據(jù)所需的安全級(jí)別設(shè)定安全參數(shù)A,并構(gòu)建雙線性映射eAXGi-G,,其 中匕和62為橢圓曲線群,這兩個(gè)橢圓曲線群的階數(shù)p的長(zhǎng)度等于安全參數(shù)入;
[0017] (1-2)在橢圓曲線群匕中隨機(jī)選取四個(gè)元素8,、1!、,11、3,在口階的正整數(shù)群2^ 群中隨機(jī)選取一個(gè)數(shù)丫,同時(shí)選擇兩個(gè)哈希函數(shù)如下:H1: {〇,If-Z;,H2:GT-G1;
[0018] (1-3)根據(jù)上述步驟(1-1)和(1-2)的結(jié)果生成主公共密鑰PK和主秘密參數(shù) MK:,
【主權(quán)項(xiàng)】
1. 一種提高外包加密數(shù)據(jù)共享功能的代理重加密方法,其應(yīng)用在包括多個(gè)用戶(hù)、云端 以及KGC的存云存儲(chǔ)系統(tǒng)中,其特征在于,該方法包括以下步驟: (1) 根據(jù)預(yù)先確定的安全級(jí)別構(gòu)建對(duì)應(yīng)的雙絲性映射,并根據(jù)該雙線性映射和系統(tǒng)中 的用戶(hù)數(shù)量計(jì)算主公共密鑰PK和主秘密參數(shù)MK ; (2) 根據(jù)生成的主秘密參數(shù)MK和每個(gè)用戶(hù)所具有的身份ID,為每個(gè)用戶(hù)生成私鑰SK, 并將該私鑰發(fā)送給對(duì)應(yīng)的用戶(hù); (3) 接收由接收方集合向數(shù)據(jù)擁有者發(fā)送的數(shù)據(jù)請(qǐng)求,并根據(jù)該數(shù)據(jù)請(qǐng)求判斷該數(shù)據(jù) 請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存放在云端,如果是則轉(zhuǎn)入步驟(5),否則轉(zhuǎn)入步驟(4); (4) 使用接收方集合Sl的公鑰對(duì)該數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)m進(jìn)行加密,以生成初始密文 C,并經(jīng)由云端將初始密文轉(zhuǎn)發(fā)給發(fā)送數(shù)據(jù)請(qǐng)求的用戶(hù),由接收方集合Sl在收到初始密文 后用其私鑰進(jìn)行解密; (5) 數(shù)據(jù)擁有者生成與相應(yīng)初始密文對(duì)應(yīng)的代理重加密密鑰,將其發(fā)送給云端,云端對(duì) 初始密文做重加密生成重加密密文C2,將其發(fā)送給請(qǐng)求方集合S2中的用戶(hù),請(qǐng)求方集合S2 中的用戶(hù)收到后可用其私鑰對(duì)其進(jìn)行解密。
2. 根據(jù)權(quán)利要求1所述的代理重加密方法,其特征在于,步驟⑴包括以下子步驟: (1-1)根據(jù)所需的安全級(jí)別設(shè)定安全參數(shù)λ,并構(gòu)建雙線性映射 e A1XG1^ Gt,其中G1 和G2為橢圓曲線群,這兩個(gè)橢圓曲線群的階數(shù)p的長(zhǎng)度等于安全參數(shù)λ ; (1-2)在橢圓曲線群G1中隨機(jī)選取四個(gè)元素 g,、h、,u、,t,在ρ階的正整數(shù)群^:群中 隨機(jī)選取一個(gè)數(shù)γ,同時(shí)選擇兩個(gè)哈希函數(shù)如下:H1: {〇,H2:GT-G1; (1-3)根據(jù)上述步驟(1-1)和(1-2)的結(jié)果生成主公共密鑰PK和主秘密參數(shù)MK :,
其中w = gY,V = e(g,h),N表示系統(tǒng)中運(yùn)行的用戶(hù)總數(shù)。
3. 根據(jù)權(quán)利要求2所述的代理重加密方法,其特征在于,步驟(2)是采用以下公式:
4. 根據(jù)權(quán)利要求3所述的代理重加密方法,其特征在于,步驟(4)包括以下子步驟: (4-1)確定待發(fā)送明文數(shù)據(jù)的接收方集合S1,并取得Sl中所有用戶(hù)的公鑰; (4-2)為待發(fā)送明文選擇一個(gè)特征值α作為細(xì)粒度控制的條件; (4-3)在正整數(shù)集合中選擇一個(gè)隨機(jī)數(shù)k,并利用以下公式將明文數(shù)據(jù)m加密成初始密 文C : C (Cl,Cg,C3,C4) C1= W
(4-4)數(shù)據(jù)擁有者生成初始密文C后,將其發(fā)送給云端,由云端代為轉(zhuǎn)發(fā)給數(shù)據(jù)請(qǐng)求者 Sl,并在云端保存?zhèn)浞荩? (4-5) -個(gè)用戶(hù)收到初始密文C = (Cl,,c2,,c3,,C4)后,用其私鑰51^進(jìn)行解密,具體如 以下公式:
最后得出明文
5.根據(jù)權(quán)利要求4所述的代理重加密方法,其特征在于,步驟(5)包括以下子步驟: (5-1)取得請(qǐng)求方集合S2中所有用戶(hù)的公鑰、以及數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的初始密文的特征值 α ; (5-2)在正整數(shù)集合中隨機(jī)選取兩個(gè)數(shù)k'、s,由以下公式計(jì)算生成重加密密鑰,并將 該重加密密鑰發(fā)送到云端:
其中dID_S2|a表示針對(duì)具有特征值α的初始密文,重加密給請(qǐng)求方集合的重加密密 鑰; (5-3)云端將重加密密鑰dID_S2|a與初始密文C做計(jì)算,生成重加密密文,并將生成的 重加密密文C2發(fā)送給請(qǐng)求方集合S2 ;具體計(jì)算步驟如以下公式:
(5-4)用戶(hù)群S2中的用戶(hù)收到重加密密文C2后用自己的私鑰對(duì)其解密,具體如以下公 式:
并通過(guò)K'計(jì)算得到明文m = c' 5*e(K',c' 4),其中ID'表示S2中的一個(gè)用戶(hù)。
6. -種提高外包加密數(shù)據(jù)共享功能的代理重加密系統(tǒng),其應(yīng)用在包括多個(gè)用戶(hù)、云端 以及KGC的存云存儲(chǔ)系統(tǒng)中,其特征在于,包括: 第一模塊,用于根據(jù)預(yù)先確定的安全級(jí)別構(gòu)建對(duì)應(yīng)的雙絲性映射,并根據(jù)該雙線性映 射和系統(tǒng)中的用戶(hù)數(shù)量計(jì)算主公共密鑰PK和主秘密參數(shù)MK ; 第二模塊,用于根據(jù)第一模塊生成的主秘密參數(shù)MK和每個(gè)用戶(hù)所具有的身份ID,為每 個(gè)用戶(hù)生成私鑰SK,并將該私鑰發(fā)送給對(duì)應(yīng)的用戶(hù); 第三模塊,用于接收由接收方集合向數(shù)據(jù)擁有者發(fā)送的數(shù)據(jù)請(qǐng)求,并根據(jù)該數(shù)據(jù)請(qǐng)求 判斷該數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存放在云端,如果是則轉(zhuǎn)入第五模塊,否則轉(zhuǎn)入第四 豐吳塊; 第四模塊,用于使用接收方集合Sl的公鑰對(duì)該數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)m進(jìn)行加密,以生 成初始密文C,并經(jīng)由云端將初始密文轉(zhuǎn)發(fā)給發(fā)送數(shù)據(jù)請(qǐng)求的用戶(hù),由接收方集合Sl在收 到初始密文后用其私鑰進(jìn)行解密; 第五模塊,用于數(shù)據(jù)擁有者生成與相應(yīng)初始密文對(duì)應(yīng)的代理重加密密鑰,將其發(fā)送給 云端,云端對(duì)初始密文做重加密生成重加密密文C2,將其發(fā)送給請(qǐng)求方集合S2中的用戶(hù), 請(qǐng)求方集合S2中的用戶(hù)收到后可用其私鑰對(duì)其進(jìn)行解密。
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種提高外包加密數(shù)據(jù)共享功能的代理重加密方法,其應(yīng)用在包括多個(gè)用戶(hù)、云端以及KGC的存云存儲(chǔ)系統(tǒng)中,該方法包括:根據(jù)預(yù)先確定的安全級(jí)別構(gòu)建對(duì)應(yīng)的雙絲性映射,并根據(jù)該雙線性映射和系統(tǒng)中的用戶(hù)數(shù)量計(jì)算主公共密鑰PK和主秘密參數(shù)MK,根據(jù)生成的主秘密參數(shù)MK和每個(gè)用戶(hù)所具有的身份ID,為每個(gè)用戶(hù)生成私鑰SK,并將該私鑰發(fā)送給對(duì)應(yīng)的用戶(hù),接收由接收方集合向數(shù)據(jù)擁有者發(fā)送的數(shù)據(jù)請(qǐng)求,并根據(jù)該數(shù)據(jù)請(qǐng)求判斷該數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存放在云端,如果不是則使用接收方集合S1的公鑰對(duì)該數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)m進(jìn)行加密。本發(fā)明能夠解決現(xiàn)有方法中存在的開(kāi)銷(xiāo)大、不能實(shí)現(xiàn)對(duì)多用戶(hù)廣播、以及計(jì)算和傳輸開(kāi)銷(xiāo)大的技術(shù)問(wèn)題。
【IPC分類(lèi)】H04L29-06, H04L29-08
【公開(kāi)號(hào)】CN104539610
【申請(qǐng)?zhí)枴緾N201410826688
【發(fā)明人】金海 , 焦騰飛, 徐鵬, 鄒德清
【申請(qǐng)人】華中科技大學(xué)
【公開(kāi)日】2015年4月22日
【申請(qǐng)日】2014年12月25日