專利名稱:以用戶為中心的加密文件的細(xì)粒度訪問控制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及訪問控制技術(shù),更具體地,涉及用于文件的共享和保護(hù)的技術(shù)。
背景技術(shù):
隨著網(wǎng)絡(luò)和通信技術(shù)的廣泛使用,數(shù)據(jù)存儲(chǔ)和管理服務(wù)變得普遍起來。用戶通常 將一些,甚至大量的文件存儲(chǔ)在服務(wù)器上,例如存儲(chǔ)在局域網(wǎng)中的文件服務(wù)器上或存儲(chǔ)在 由第三方存儲(chǔ)服務(wù)提供者維護(hù)的遠(yuǎn)程服務(wù)器上,其原因例如是用戶終端的存儲(chǔ)容量有限、 在用戶終端處不能提供穩(wěn)定或長時(shí)間連續(xù)的數(shù)據(jù)訪問、數(shù)據(jù)維護(hù)成本高,等等。從用戶本地 存儲(chǔ)向全球永久存儲(chǔ)服務(wù)的轉(zhuǎn)移已經(jīng)成為趨勢,并且因特網(wǎng)正快速朝向該趨勢發(fā)展。一般,用戶希望其文件可以被他人訪問,即“共享”。但是,由于保存在服務(wù)器上的 文件可能被他人訪問,這帶來了隱私問題。例如,用戶的文件內(nèi)容或數(shù)據(jù)可能被不希望的用 戶或者不可信的存儲(chǔ)服務(wù)提供者得知。通常,用戶希望文件具備一定的保密性,并且其能夠 控制不同用戶對其文件的訪問能力。首先,由于在多數(shù)情況中存儲(chǔ)服務(wù)提供者是不完全可信的,因此為了防止用戶文 件的內(nèi)容被存儲(chǔ)服務(wù)提供者得知,或由于存儲(chǔ)服務(wù)的不安全因素而被泄露給不希望的其他 人,用戶需要首先將其文件加密,然后將得到的文件密文存儲(chǔ)到服務(wù)器上。另外,用戶可能希望其存儲(chǔ)于服務(wù)器上的特定加密文件的內(nèi)容僅可被特定人或群 體看到。圖1示出了一個(gè)示例,其中作為存儲(chǔ)服務(wù)的用戶,文件擁有者Alice將她的文件存 儲(chǔ)到由第三方維護(hù)的存儲(chǔ)服務(wù)器上,并且她還希望有選擇地將文件的內(nèi)容分享給特定的用 戶,而同時(shí)對于其他用戶,甚至包括提供存儲(chǔ)服務(wù)的第三方,是保密的。例如,在圖1所示 的示例中,Alice希望她的文件Pet. jpg的內(nèi)容可以被Bob、Chris和Daniel看到,而不允 許Emily看到,而同時(shí)希望文件Research, ppt的內(nèi)容可以被Bob和Emily看到,而不允許 Chris和Daniel看到,等等。在通常的密鑰系統(tǒng)中,每個(gè)用戶具有公鑰和私鑰。一種實(shí)現(xiàn)上述目的的方法是 Alice使用被允許查看某個(gè)文件內(nèi)容的人的公鑰對該文件進(jìn)行加密,將文件密文存儲(chǔ)于 服務(wù)器上。例如,對于文件Pet. jpg, Alice使用Bob的公鑰對該文件加密,得到文件密文 Pet(B),并將該文件密文存儲(chǔ)在服務(wù)器上。Bob在從服務(wù)器上下載了文件密文Pet 后,可以 使用Bob的私鑰對其解密,復(fù)原文件Pet. jpg的內(nèi)容。而其他人由于不具有Bob的私鑰, 將無法對文件密文Pet 進(jìn)行解密。但是,為了使得文件Pet. jpg的內(nèi)容還可以被Chris 和Daniel看到,Alice還需要使用Chris的公鑰和Daniel的公鑰分別對該文件加密,得 到另外的兩份文件密文Pet 和Pet ,并將這兩份文件密文也存儲(chǔ)在服務(wù)器上,從而使得 Chris和Daniel能夠使用自己的私鑰,分別對Petfc)和Pet 進(jìn)行解密得到文件Pet. jpg 的內(nèi)容。假設(shè)一個(gè)文件要分享給η個(gè)用戶,Alice需要用η個(gè)密鑰分別對該文件加密,在服 務(wù)器上存儲(chǔ)得到的η個(gè)不同版本的文件密文。圖2示出了圖1的示例中,按照上述方法需要在服務(wù)器上存儲(chǔ)的文件密文。
可見,利用上述一般方法,需要針對一個(gè)文件生成多個(gè)版本的密文,增加了加密成 本,浪費(fèi)了存儲(chǔ)空間,并且由于存在與一個(gè)文件對應(yīng)的多種版本的文件密文,造成了文件維 護(hù)和檢索上的困難。因此,需要一種更加便利的控制文件訪問的方法。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)方面,提供了一種加密方法,包括利用隨機(jī)數(shù)生成文件密鑰; 利用文件密鑰對文件加密,產(chǎn)生文件密文;利用被禁止的一個(gè)或多個(gè)用戶的公鑰,生成聚合 器;基于私鑰、所述聚合器和所述隨機(jī)數(shù),生成用于恢復(fù)文件密鑰的控制密文。生成的文件 密文、控制密文和被禁止的一個(gè)或多個(gè)用戶的清單被相關(guān)聯(lián)的存儲(chǔ)或發(fā)送。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于加密的裝置,包括文件密鑰生成單 元,被配置為利用隨機(jī)數(shù)生成文件密鑰;聚合單元,被配置為利用被禁止的一個(gè)或多個(gè)用戶 的公鑰,生成聚合器;以及加密單元,被配置為利用文件密鑰對文件加密以產(chǎn)生文件密文, 并且根據(jù)所述聚合器和所述隨機(jī)數(shù),生成用于恢復(fù)文件密鑰的控制密文。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種解密方法,包括接收文件密文、控制密文 以及被禁止的一個(gè)或多個(gè)用戶的清單;如果用戶未被包括在被禁止用戶清單中,則計(jì)算針 對包含所述用戶以及所述被禁止的一個(gè)或多個(gè)用戶的集合的聚合器;利用所述聚合器和所 述用戶的私鑰,從所述控制密文中恢復(fù)出文件密鑰;以及根據(jù)文件密鑰,對所述文件密文進(jìn) 行解密。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于解密的裝置,包括聚合單元,被配置 為計(jì)算針對包含用戶以及接收的列表中的被禁止的一個(gè)或多個(gè)用戶的集合的聚合器;文件 密鑰恢復(fù)單元,被配置為利用所述聚合器和所述用戶的私鑰,從接收的控制密文中恢復(fù)出 文件密鑰;以及解密單元,被配置為根據(jù)文件密鑰,對接收的文件密文進(jìn)行解密。
從下面結(jié)合附圖對本發(fā)明優(yōu)選實(shí)施例的描述中可以更好地理解本發(fā)明,附圖中類 似的參考標(biāo)號(hào)表示類似的部分,其中圖1是示出了使用存儲(chǔ)服務(wù)的一個(gè)示例的示圖;圖2是示出了現(xiàn)有技術(shù)中在服務(wù)器上存儲(chǔ)的文件密文的示圖;圖3是示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的對文件的加密處理過程的流程圖;圖4是示意性地示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用戶終端的示例配置的框圖;圖5是示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的對文件的解密處理過程的流程圖;圖6是示意性地示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用戶終端的示例配置的框圖;以 及圖7是示出了文件局部訪問控制的示例的示圖。
具體實(shí)施例方式下面將詳細(xì)描述本發(fā)明的各個(gè)方面的特征和示例性實(shí)施例。在下面的詳細(xì)描述 中,提出了許多具體細(xì)節(jié),以便提供對本發(fā)明的全面的理解。但是,對于本領(lǐng)域技術(shù)人員來說很明顯,本發(fā)明可以在不需要這些具體細(xì)節(jié)中的一些細(xì)節(jié)的情況下被實(shí)施。下面對實(shí)施 例的描述僅僅是為了通過示出本發(fā)明的示例來提供對本發(fā)明的更好的理解。本發(fā)明決不限 于下面所提出的任何具體配置和算法,而是覆蓋了元素、部件和算法的任何修改、替換和改 進(jìn),只要不脫離本發(fā)明的精神。在附圖和下面的描述中,沒有示出公知的結(jié)構(gòu)和技術(shù),以便 避免不必要地使本發(fā)明模糊。下面按照系統(tǒng)建立安全參數(shù)的初始化過程、作為加密者的用戶對文件的加密過程 以及作為文件接收者的用戶對文件的解密過程來描述本發(fā)明的實(shí)施例。文件的加密者例如 是文件的創(chuàng)建者、文件的所有者、文件的發(fā)布者等。初始化首先,系統(tǒng)建立各種安全參數(shù)。具體地,假設(shè)安全長度被選擇為k位,系統(tǒng)從τζ中 隨機(jī)選取Y作為主密鑰Msk= y e ΚΖ/,其中Z/是所有小于ρ且與ρ互素的正整數(shù)的集 合。系統(tǒng)建立G1X(^2)Gt的雙線性映射e(·,·),其中GpG2、GT都是P階的群。系統(tǒng)設(shè)置 將{0,1} *映射到Z/的哈希函數(shù)H1 ( ·)。另外,系統(tǒng)從群G1中選擇gl,h,u = hY,并從群 G2 中選擇 g2, w = g2 γ, ν,公開參數(shù) Params = (g1; h, u = hY, g2, w = g2Y, v)。假設(shè)系統(tǒng)中存在q個(gè)用戶(q為大于1的整數(shù)),系統(tǒng)為每個(gè)用戶設(shè)置公鑰和私鑰。 具體地,系統(tǒng)對第i個(gè)用戶Ui (1 < i < q)分配唯一標(biāo)識(shí)符Xi e Z/。用戶唯一標(biāo)識(shí)符Xi可 以利用Xi = H1(IDi) e Zp*來計(jì)算,其中IDi是任意的針對用戶唯一的參數(shù),例如用戶代號(hào) 等。應(yīng)當(dāng)理解,也可以使用其他方式來生成Xi,只要Xi e、*且與用戶^唯一對應(yīng)。應(yīng)當(dāng) 注意,用戶唯一標(biāo)識(shí)符彼此是不相同的?;谟脩魳?biāo)識(shí)符,系統(tǒng)利用主密鑰Y如下分別計(jì)算出該用戶的公鑰Hii和私鑰 SKi
權(quán)利要求
1. 一種加密方法,包括 利用隨機(jī)數(shù)生成文件密鑰; 利用文件密鑰對文件加密,產(chǎn)生文件密文; 利用被禁止的一個(gè)或多個(gè)用戶的公鑰,生成聚合器;以及 基于私鑰、所述聚合器和所述隨機(jī)數(shù),生成用于恢復(fù)文件密鑰的控制密文。
2.根據(jù)權(quán)利要求ι所述的方法,其中,所述聚合器的值等于
3.根據(jù)權(quán)利要求2所述的方法,其中,所述聚合器是利用如下遞歸公式計(jì)算的
4.根據(jù)權(quán)利要求1所述的方法,其中,所述控制密文被計(jì)算為
5.根據(jù)權(quán)利要求1所述的方法,其中,所述控制密文被計(jì)算為
6.根據(jù)權(quán)利要求1所述的方法,還包括對所述文件密文和所述控制密文進(jìn)行簽名。
7.根據(jù)權(quán)利要求1所述的方法,其中,所述文件密鑰是利用所述隨機(jī)數(shù)和所述私鑰,通 過雙線性映射生成的。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述雙線性映射被預(yù)先計(jì)算并結(jié)果被保存用于 重復(fù)使用。
9.根據(jù)權(quán)利要求1所述的方法,其中,所述聚合器被預(yù)先計(jì)算并保存。
10.根據(jù)權(quán)利要求1所述的方法,其中,對文件加密包括有選擇地對文件的一個(gè)或多個(gè)部分加密。
11.根據(jù)權(quán)利要求1所述的方法,其中,所述文件密文、所述控制密文和所述被禁止的 一個(gè)或多個(gè)用戶的清單被相關(guān)聯(lián)的存儲(chǔ)或發(fā)送。
12.一種用于加密的裝置,包括文件密鑰生成單元,被配置為利用隨機(jī)數(shù)生成文件密鑰; 聚合單元,被配置為利用被禁止的一個(gè)或多個(gè)用戶的公鑰,生成聚合器;以及 加密單元,被配置為利用文件密鑰對文件加密以產(chǎn)生文件密文,并且基于私鑰、所述聚 合器和所述隨機(jī)數(shù),生成用于恢復(fù)文件密鑰的控制密文。
13.根據(jù)權(quán)利要求12所述的裝置,其中,所述聚合器的值等于
14.根據(jù)權(quán)利要求13所述的裝置,其中,所述聚合單元利用如下遞歸公式計(jì)算聚合器 且
15.根據(jù)權(quán)利要求12所述的裝置,其中,所述加密單元將所述控制密文計(jì)算為
16.根據(jù)權(quán)利要求12所述的裝置,其中,所述加密單元將所述所述控制密文計(jì)算為
17.根據(jù)權(quán)利要求12所述的裝置,還包括簽名單元,所述簽名單元被配置為對所述文 件密文和所述控制密文進(jìn)行簽名。
18.根據(jù)權(quán)利要求12所述的裝置,其中,所述文件密鑰生成單元利用所述隨機(jī)數(shù)和所 述私鑰,通過雙線性映射生成所述文件密鑰。
19.根據(jù)權(quán)利要求18所述的裝置,其中,所述文件密鑰生成單元預(yù)先計(jì)算所述雙線性映射,并且保存所述雙線性映射的結(jié)果用于重復(fù)使用。
20.根據(jù)權(quán)利要求12所述的裝置,其中,所述聚合單元預(yù)先計(jì)算并保存所述聚合器。
21.根據(jù)權(quán)利要求12所述的裝置,其中,對文件加密包括對文件的一個(gè)或多個(gè)部分加密。
22.—種解密方法,包括接收文件密文、控制密文以及被禁止的一個(gè)或多個(gè)用戶的清單; 如果用戶未被包括在被禁止用戶清單中,則計(jì)算針對包含所述用戶以及所述被禁止的 一個(gè)或多個(gè)用戶的集合的聚合器;利用所述聚合器和所述用戶的私鑰,從所述控制密文中恢復(fù)出文件密鑰;以及 根據(jù)文件密鑰,對所述文件密文進(jìn)行解密。
23.根據(jù)權(quán)利要求22所述的方法,其中,所述聚合器的值等于
24.根據(jù)權(quán)利要求23所述的方法,其中,所述聚合器是利用如下遞歸公式計(jì)算的
25.根據(jù)權(quán)利要求22所述的方法,其中,所述控制密文被表示為{A,C2,C3},并且其中,所述文件密鑰被恢復(fù)為
26.根據(jù)權(quán)利要求22所述的方法,其中,所述控制密文被表示 為
27.根據(jù)權(quán)利要求26所述的方法,還包括計(jì)算
28.根據(jù)權(quán)利要求22所述的方法,還包括對接收的信息進(jìn)行簽名驗(yàn)證。
29.根據(jù)權(quán)利要求22所述的方法,其中,所述聚合器被預(yù)先計(jì)算并保存。
30.一種用于解密的裝置,包括聚合單元,被配置為計(jì)算針對包含用戶以及接收的清單中的被禁止的一個(gè)或多個(gè)用戶 的集合的聚合器;文件密鑰恢復(fù)單元,被配置為利用所述聚合器和所述用戶的私鑰,從接收的控制密文 中恢復(fù)出文件密鑰;以及解密單元,被配置為根據(jù)文件密鑰,對接收的文件密文進(jìn)行解密。
31.根據(jù)權(quán)利要求30所述的裝置,還包括檢查單元,所述檢查單元被被配置為檢查用 戶是否被包括在接收的被禁止的一個(gè)或多個(gè)用戶的清單中。
32.根據(jù)權(quán)利要求30所述的裝置,其中,所述聚合器的值等于
33.根據(jù)權(quán)利要求32所述的裝置,其中,所述聚合單元利用如下遞歸公式計(jì)算聚合器
34.根據(jù)權(quán)利要求30所述的裝置,其中,所述控制密文被表示 為IC1, C2,CJ,并且其中,所述文件密鑰恢復(fù)單元將所述文件密鑰恢復(fù)為
35.根據(jù)權(quán)利要求30所述的裝置,其中,所述控制密文被表示為IC1,C2, C3,C4, c5},并且其中,所述文件密鑰恢復(fù)單元將所述文件密鑰恢復(fù)為//“力,其中
36.根據(jù)權(quán)利要求35所述的方法,還包括檢驗(yàn)單元,所述檢驗(yàn)單元被配置為計(jì) 算
37.根據(jù)權(quán)利要求30所述的裝置,還包括驗(yàn)證單元,所述驗(yàn)證單元被配置為對接收的 信息進(jìn)行簽名驗(yàn)證。
38.根據(jù)權(quán)利要求30所述的裝置,其中,所述聚合單元預(yù)先計(jì)算并保存所述聚合器。
全文摘要
本公開提供了一種以用戶為中心的加密文件的細(xì)粒度訪問控制技術(shù)。加密時(shí),利用被禁止的用戶的公鑰,生成聚合器,并生成用于恢復(fù)文件密鑰的控制密文??刂泼芪?、被禁止用戶的清單以及用文件密鑰加密形成的文件密文彼此相關(guān)聯(lián)地進(jìn)行存儲(chǔ)或發(fā)送到其他用戶。被包括在被禁止用戶清單中的用戶無法進(jìn)行解密,其他用戶可以計(jì)算包含自身和被禁止用戶的集合的聚合器,利用算出的聚合器和私鑰,從控制密文中恢復(fù)出文件密鑰,從而對文件密文解密。根據(jù)本發(fā)明的一個(gè)實(shí)施例,可以控制具有不同公鑰和私鑰的不同用戶對文件的訪問,而不需要生成多份密文。
文檔編號(hào)H04L29/06GK102148804SQ20101010956
公開日2011年8月10日 申請日期2010年2月9日 優(yōu)先權(quán)日2010年2月9日
發(fā)明者雷浩 申請人:日電(中國)有限公司