X) - /2)。
[0282] 步驟 2,、C(0) (x) -M(0)+2R(0) (x),C(1) (x) -M(1)+2R(1) (x),C⑵(x) -M(02+2R⑵(x), C⑶(x) -M⑷+2R(3) (x)。
[0283] 步驟3,、。一〇(0)(〇4) + 〇2(:(1)(〇4) + [1(^)(04) + [13(:(3)(04)(111 0(1口)。
[0284] 步驟4'、輸出密文c。
[0285] 在本發(fā)明其他實施例中,上述1級加密可采用如下步驟:
[0286] 設明文,…,m.)為系數取0或1,次數不超過N/4-1的2個多項式 M= (M?,M(1))。M被切割成等長的8段,第1、5段需要發(fā)送給1號1級用戶;第2、6段需要發(fā) 送給2號1級用戶;第3、7段需要發(fā)送給3號1級用戶;第4、8段需要發(fā)送給4號1級用 戶。
[0287] -R(0) (x),R(1) (x) -KB'N/4(i〇。但限制R(1) (x)的系數不全為 0。
[0288] -C(0) (x) -M(0)+2R(0) (x),C⑴(x) -M⑴+2R(1) (x)。
[0289] _c-C(0) (ct4) +ct2C⑴(ct4)(modp)。
[0290] -輸出密文c。
[0291] 在本發(fā)明其他實施例中,上述2級加密可采用如下步驟:
[0292] 設明文M=(m。,mi,…,!%&)為系數取0或1,次數不超過N/4-1的多項式。M被切 割成等長的16段,作為16個2級用戶的明文。
[0293]-R(x) - ii),但限制R(x)的{x1,X3,…,xN/4_i}系數不全為 0。
[0294] _C(x) -M+2R(x)。
[0295] _c-C(a4)(modp)。
[0296] -輸出密文c。
[0297] 各級解密步驟與前類似,在此不作贅述。
[0298] 需要注 意的是,在丨)等于
情況下,如采 用0級私鑰解密得到的明文M,若M尹(*,???,*,0,…,0),則為密文為0級密文;如果M= (*,…,*,〇,…,〇)關………,則密文為1級密文;如果 M= 0),則為密文為 2 級密文,2 級明文。
[0299] t〖,任何 £
一個1級用戶,如果自己的明文段不等于(*,…,*,〇,…,〇),則密文為1級密文。如果自己 的明文段等于(*,…,*,〇,…,〇),則密文為2級密文。
[0300] 綜上,本發(fā)明實施例所提供的技術方案可取得的有益效果包括:
[0301] (1)降低了主私鑰的泄露風險;
[0302] (2)任何不掌握密鑰的人,無法區(qū)分出該密文是哪一級密文,實現(xiàn)了更高的密文隱 私性;
[0303] (3)盡管本發(fā)明是基于格構造的,但密文為整數形式,從而對應的密文長度僅為 logp,提高了解密、通信效率。
[0304] 而已有的分級身份加密的密文多是向量形式,從而相同明文長度消息對應的密文 長度為mlogp,其中m為向量維數。
[0305] 與傳統(tǒng)公鑰技術相比,本發(fā)明實施例所提供的公鑰加解密體系與之相比,有如下 對比結果:
[0306] 1、抗選擇明文安全性:均能夠實現(xiàn);
[0307] 2、密文匿名性:首次實現(xiàn)了分級加密的密文匿名性,即由密文不能判斷級數;
[0308] 3、分級層數:本發(fā)明實施例的私鑰不能實現(xiàn)無限分級,僅適用于有限分級;
[0309] 4、密鑰長度:私鑰長度隨級數的增加而減小;
[0310] 5、計算復雜度相對較低。
[0311] 參見圖8,可以通過下述雷達圖直觀反映出來對比結果。
[0312]與之相對應,本發(fā)明實施例還提供加密裝置。該加密裝置基于預先生成的原始公 鑰{p,a}、原始私鑰,以及第1至第m級私鑰,其中,上述原始私鑰為第0級私鑰,第i級私 鑰由第i_l級私鑰生成,lSiSm,l<m,m為正整數;p為第一公鑰參數,a為第二公鑰 參數。
[0313] 請參見圖9,上述加密裝置可包括如下單元器件:
[0314] 明文預處理單元1,用于對原始明文進行預處理,得到長度為N/^_的j級明文。其 中,N=2n,n為大于等于m的整數,0彡j彡m,N為系統(tǒng)參數中的第一系統(tǒng)參數。
[0315] 明文可用M表示。貝Uj級明文可表示為:
[0316]
[0317] 具體內容請參見本文前述記載,在此不作贅述。
[0318] 密文計算單元2,用于使用上述p和a對上述j級明文進行加密計算,得到j級密 文。
[0319] 具體內容請參見本文前述記載,在此不作贅述。
[0320] 密文輸出單元3,用于輸出上述j級密文,以便解密方使用第h級私鑰進行解密得 到與之對應的明文,0彡h彡j。
[0321] 具體內容請參見本文前述記載,在此不作贅述。
[0322] 此外,相應的,本發(fā)明實施例還提供一種解密裝置,請參見圖10,其可包括如下單 元器件:
[0323] 密文解密單元1',用于對經過j級加密處理的密文,使用第h級私鑰進行解密, 0彡h彡j;
[0324] 輸出單元2 ',用于輸出解密得到的明文。
[0325] 具體內容請參見本文前述記載,在此不作贅述。
[0326] 進一步的,密文解密單元可具體包括0級密文解密單元,1級密文解密單元,2級密 文解密單元,……,111級密文解密單元。其中,0級密文解密單元可用于使用0級私鑰進行 解密,1級密文解密單元可用于使用1級私鑰進行解密,2級密文解密單元可用于使用2級 私鑰進行解密,以此類推,不再贅述。
[0327] 在本發(fā)明其他實施例中,上述加密裝置或解密裝置可進一步包括如下器件單元:
[0328] 結式計算單元,用于進行結式計算,直至所述結式為素數;如何進行結式計算可參 見本文前述記載,在此不作贅述。
[0329] 主公私鑰生成單元,用于生成所述原始公鑰和所述原始私鑰。
[0330] 其中,所述結式計算包括:
[0331] 確定第一多項式,所述第一多項式表示為F(x),所述F(x)為N次不可約多項式,并 且F(x)eI[x],所述I[x]表示整系數多項式全體的集合;
[0332] 從多項式無窮范數小于U、次數不超過N的多項式集合中,隨機選取一個多項式, 將隨機選取的多項式賦值給第二多項式,所述第二多項式表示為S(x);
[0333] 將l+2S(x)賦值給第三多項式,所述第三多項式表示為G(x);
[0334] 計算所述G(x)與F(x)的結式,將所述結式賦值給所述p;
[0335] 所述生成所述原始公鑰和所述原始私鑰包括:
[0336] 計算G0(x)與F(x)在模p域上的最大公因式,所述最大公式表示為D0(x),所述 Gjx)表示對應第0級的第一密鑰多項式,下標0表示第0級,;
[0337] 將所述DQ(x)的模p根賦值給所述a;
[0338] 計算對應第0級的第二密鑰多項式,所述對應第0級的第二密鑰多項式表示為 20〇〇,其中,2(|〇〇£1[3并滿足2(|006 (|00=口;2(|00的各次系數分別為2|1^ ),...,4:"|? (0)表示第0級;
[0339] 計算對應第0級的第三密鑰多項式,所述對應第0級的第三密鑰 多項式表示為Bjx),所述Bjx)的各次系數分別為,爲,并且,
[0340] 所述主私鑰包含所述5巧。
[0341] 具體內容可參見本文前述記載,在此不作贅述。
[0342] 在本發(fā)明其他實施例中,上述加密裝置或解密裝置可進一步包括密鑰衍生單元, 用于:
[0343] 計算對應第i級的第一密鑰多項式,所述對應第i級的第一密鑰多項式表示為 所述Gjx)的次數小于N/21,并J
[0344] 計算對應第i級的第二密鑰多項式,所述對應第i級的第二密鑰多項式表 示為Zi(x),
,并且,
Zi(x)的各次系數分別為
y,所述 ⑴表示第i級;
[0345] 計算對應第i級的第三密鑰多項式,所述對應第i級的第三密鑰多 項式表示為;所述的各次系數分別為對,并且,
>,所述⑴表示第i級;
[0346] 所述第i級私鑰包含所述禮I#:1,#丨h(huán)4U+ ?
[0347] 具體內容可參見本文前述記載,在此不作贅述。
[0348] 更具體的,主公私鑰生成單元可包括主公鑰生成單元和主私鑰生成單元,其中,主 公鑰生成單元用于生成原始公鑰,主私鑰生成單元用于生成原始私鑰。
[0349] 更具體的,主公鑰生成單元可執(zhí)行Djx) -gccKGjx),F(xiàn)(x)) (modp),以及,將上述 Djx)的模p根賦值給上述a。具體內容可參見本文前述記載,在此不作贅述。
[0350] 而主私鑰生成單元可執(zhí)行計算0級第二密鑰多項式& (X),其中,& (x)GI[x]并 滿足ZjxWJxkp。具體內容可參見本文前述記載,在此不作贅述。
[0351] 結式計算單元、主公私鑰生成單元和密鑰衍生單元的具體協(xié)作流程可參見圖11。
[0352] 在本發(fā)明其他實施例中,在使用所述p和所述a對所述j級明文進行加密計算, 得到j級密文方面,上述密文計算單元可具體用于:
[0353]從多項式無窮范數小于、次數不超過N/^的多項式集合中,隨機選取奇數次 項的系數不全為零的多項式作為第一加密多項式R(x);
[0354]將所述長度為N/^的明文對應的明文多項式與2R(x)相加,得到第二加密多項 式;所述明文多項式為各次系數取0或1,并且最高次數不超過N/^_-l的多項式;所述第二 加密多項式表示為C(x);
[0355]將作為自變量代入所述C(x),得到變量值,并計算所述變量值除以p的余數, 所述余數為所述j級密文。
[0356] 此外,密文計算單元還可用于本發(fā)明前述實施例所提供的其他方式的密文計算, 具體內容請參見本文前述記載,在此不作贅述。
[0357] 在本發(fā)明其他實施例中,上述加密裝置還可包括分配單元,用于向多級用戶(例如 0級、1級、2級用戶等)分配私鑰段(例如將1級私鑰等分為4個私鑰段分給4個1級用戶 等)。
[0358] 經過j級加密處理的密文為一個數值,所述數值表示為c。
[0359] 在本發(fā)明其他實施例中,在使用第h級私鑰進行解密的方面,上述密文解密單元 具體用于:
[0360] 使用公式cU)a-「C(j)QK(h)a/p」(mod2)求出所述明文中的第a個元素,所述c(j)a表 示長度為y的密文向量中的第a個元素,所述密文向量中的第0個元素為c,其他元素為0, 所述K(h)a表示所述第h級私鑰所包含的第a個元素,1,所述「*」表示最近取整
[0361] 圖12給出了上述加密裝置或解密裝置的一種通用硬件結構,其可包括處理器 121、存儲器122、總線123和通信接口 124。處理器121、存儲器122、通信接口 124通過總 線123相互連接;存儲器122,用于存放程序。具體地,程序可以包括程序代碼,程序代碼包 括計算機操作指令。
[0362] 存儲器122可能包含高速隨機存取存儲器(randomaccessmemory,簡稱RAM)存 儲器,也可能還包括非易失性存儲器(non-vo1ati1