專利名稱:一種標(biāo)識(shí)和密鑰的映射方法
技術(shù)領(lǐng)域:
本發(fā)明涉及組合密鑰管理技術(shù)領(lǐng)域,尤其涉及基于標(biāo)識(shí)的組合密鑰管理技術(shù)領(lǐng)域,具體來(lái)講是一種標(biāo)識(shí)和密鑰的映射方法。
背景技術(shù):
現(xiàn)代密碼學(xué)的安全是建立在密鑰保密而不是算法保密的基礎(chǔ)上的,因此密鑰的管理保護(hù)成了信息保密的關(guān)鍵。密鑰和密鑰擁有者標(biāo)識(shí)之間的綁定是現(xiàn)代網(wǎng)絡(luò)安全研究的最重要內(nèi)容之一。目前將密鑰和密鑰擁有者標(biāo)識(shí)綁定有兩種方式,一種是通過(guò)密鑰來(lái)生成密鑰擁有者的標(biāo)識(shí),CGA(Cryptographically Generated Address)是這種方式的典型代表;另一種方式是通過(guò)標(biāo)識(shí)來(lái)確定出該標(biāo)識(shí)對(duì)應(yīng)的密鑰,即基于標(biāo)識(shí)的密碼體制。1984年,Shamir提出了基于標(biāo)識(shí)的簽名設(shè)想,2001年Don Boneh和Matthew Franklin根據(jù)Shamir的設(shè)想,提出了以Weil配對(duì)方式實(shí)現(xiàn)的基于標(biāo)識(shí)的密鑰管理體制。組合公鑰(CPK)密碼體制也是一種基于標(biāo)識(shí)的密鑰管理體制,它可以根據(jù)通信對(duì)方的標(biāo)識(shí)直接計(jì)算出對(duì)方的公鑰,在CPK體制中實(shí)現(xiàn)標(biāo)識(shí)到密鑰的映射是一個(gè)關(guān)鍵問(wèn)題。在一般的公鑰體制中,各用戶的公鑰是直接公布的,有多少用戶,就公布多少個(gè)公鑰,而在組合公鑰技術(shù)中,各用戶的公鑰不直接公布,而只公布公鑰因子矩陣,各用戶的公鑰則通過(guò)公鑰因子矩陣和相關(guān)標(biāo)識(shí)計(jì)算出來(lái)。
在基于標(biāo)識(shí)的組合密鑰管理體制中,文獻(xiàn)([1]南湘浩,陳鐘;網(wǎng)絡(luò)安全技術(shù)概論;北京,國(guó)防工業(yè)出版社,2003.7;[2]唐文,南相浩,陳鐘;基于橢圓曲線密鑰系統(tǒng)的組合公鑰技術(shù);計(jì)算機(jī)工程與應(yīng)用,2003年21期)給出的由標(biāo)識(shí)到密鑰的映射算法如下所述
首先是計(jì)算行標(biāo)給定行密鑰RowKey,它是系統(tǒng)中一個(gè)公開(kāi)的常量。首先通過(guò)一種HASH函數(shù)(比如MD5、SHA-1等),將不定長(zhǎng)度的標(biāo)識(shí)ID變換成一個(gè)固定長(zhǎng)度的變量Data1。
即,HASH(ID)=Data1;然后,通過(guò)加密算法(如AES)將中間變量Data1作為數(shù)據(jù),用行密鑰RowKey加密后得到MAP0;將MAP0作為數(shù)據(jù),再用密鑰RowKey加密得出MAP1;類似的直到得出所需的MAP值為止。為了便于說(shuō)明,設(shè)密鑰因子矩陣的大小為32×32。則AESRowKey(Data1)=MAP0;AESRowKey(MAP0)=MAP1;接著,MAP0的16個(gè)字節(jié)分別用M(本例中M=32)模,得出16個(gè)小于M的行標(biāo),以MAP
~MAP[15]表示,MAP1的16個(gè)字節(jié)分別模M后得出16個(gè)小于M的行標(biāo),以MAP[16]~MAP[31]表示;MAP0[i]mod M=MAP[i](i=0,1...,15);MAP1[i]mod M=MAP[i](i=16,17...,31);至此得出了32個(gè)行標(biāo),用于行的32次選擇。
在行標(biāo)計(jì)算后,進(jìn)行列標(biāo)的計(jì)算為了避免列標(biāo)的順序取用,設(shè)置列變量的置換算法PMT,其結(jié)果是(0,1,2,...,31)的全排列的一種,計(jì)算方法如下所示。
首先計(jì)算PMT算法所用的密鑰PMT_KEY;AESColKey(ID)=PMT_KEY,ColKey是系統(tǒng)中一個(gè)公開(kāi)的常量。
用PMTPMT_KEY(原序)=PERMUT;原序是0,1,......31的自然序。PERMUT是新的置換。
上述的方法是針對(duì)各種類型的標(biāo)識(shí)做出的一種通用的映射方法,該方法計(jì)算量大,計(jì)算復(fù)雜,而且可能存在映射沖突問(wèn)題。現(xiàn)有方案中,沒(méi)有針對(duì)象IPv4、IPv6地址這類具有一定特殊性的標(biāo)識(shí)給出一個(gè)特定的映射算法,而在實(shí)際的場(chǎng)景中,這一類的標(biāo)識(shí)有著非常廣泛的應(yīng)用。
發(fā)明內(nèi)容
鑒于現(xiàn)有技術(shù)中的上述問(wèn)題,本發(fā)明提供了一種標(biāo)識(shí)和密鑰的映射方法,簡(jiǎn)化了標(biāo)識(shí)到密鑰的映射計(jì)算,映射方法簡(jiǎn)潔高效,而且對(duì)于具有特殊性的標(biāo)識(shí)可以實(shí)現(xiàn)標(biāo)識(shí)到密鑰的無(wú)沖突映射。
本發(fā)明提供了一種標(biāo)識(shí)和密鑰的映射方法應(yīng)用于基于標(biāo)識(shí)的組合密鑰管理系統(tǒng)中,在所述系統(tǒng)中已經(jīng)生成密鑰因子矩陣,所述方法包括步驟步驟1,根據(jù)定長(zhǎng)二進(jìn)制標(biāo)識(shí)或由非定長(zhǎng)二進(jìn)制標(biāo)識(shí)轉(zhuǎn)換的定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值檢驗(yàn)密鑰因子矩陣的大?。徊襟E2,根據(jù)所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)計(jì)算出密鑰因子在密鑰因子矩陣中相應(yīng)的行標(biāo)組和列標(biāo)組;步驟3,利用所述行標(biāo)組和列標(biāo)組對(duì)應(yīng)的密鑰因子計(jì)算與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)對(duì)應(yīng)的密鑰。
所述步驟1包括對(duì)定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值進(jìn)行因子分解;根據(jù)因子分解的結(jié)果判斷密鑰因子矩陣的大小是否合適;若判斷結(jié)果為合適,則執(zhí)行步驟2。
所述步驟1還包括若判斷結(jié)果為不合適,則重新生成密鑰因子矩陣。
所述密鑰因子矩陣的大小表示為M×2n,所述對(duì)定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值進(jìn)行因子分解按照公式進(jìn)行,該公式的表達(dá)式為S=M×r+k;其中,S定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值;M密鑰因子矩陣的行數(shù);2n密鑰因子矩陣的列數(shù);k≥0且k<M;S、M、k、r、n均為整數(shù)。
判斷密鑰因子矩陣的大小是否合適是指判斷r是否大于n;若判斷結(jié)果為r≤n<S,則該密鑰因子矩陣的大小合適;若判斷結(jié)果為r>n,則所述密鑰因子矩陣的大小不合適;其中,S定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值;n、r均為整數(shù)。
所述的步驟2包括計(jì)算與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的列標(biāo)組;對(duì)密鑰因子矩陣的所有行標(biāo)進(jìn)行置換,得到與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的行標(biāo)組。
所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的列標(biāo)組,包括判斷k<n-r是否成立;如果判斷結(jié)果為是,則按照公式計(jì)算列標(biāo)組Ci(ID),該公式的表達(dá)式為Ci(ID)=[ID>>(i×r)]&(2n-1),i=0…M-1;其中,>>表示循環(huán)移位運(yùn)算,ID為所述定長(zhǎng)二進(jìn)制標(biāo)識(shí);如果判斷結(jié)果為否,則按照公式計(jì)算列標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)=[ID>>(i×r)]&(2n-1),i=0...M-[k-(n-r)]-1,和Ci(ID)={ID>>[i×(r+1)]}&(2n-1),i=M-[k-(n-r)]…M-1;其中,>>表示循環(huán)移位運(yùn)算,ID為所述定長(zhǎng)二進(jìn)制標(biāo)識(shí);M、k、n、r、i為整數(shù)。
所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的列標(biāo)組,包括按照公式計(jì)算列標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)={ID>>[i×(r+1)]}&(2n-1),i=0...M-1;其中,>>表示循環(huán)移位運(yùn)算;ID為定長(zhǎng)二進(jìn)制標(biāo)識(shí);n、r、i為整數(shù)。
所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的列標(biāo)組,包括按照公式計(jì)算列標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)=[ID>>(i×r’)]&(2n-1),i=0...M-1;其中,>>表示循環(huán)移位運(yùn)算,S>r’>r,r’不是S的因子,ID為定長(zhǎng)二進(jìn)制標(biāo)識(shí);S為定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值;r、r’、n、i為整數(shù)。
所述對(duì)密鑰因子矩陣的所有行標(biāo)進(jìn)行置換,包括直接選取數(shù)據(jù)序列作為行標(biāo)組,該數(shù)據(jù)序列為0,1,......,M-1,其中,M為密鑰因子矩陣的行數(shù)。
所述對(duì)密鑰因子矩陣的所有行標(biāo)進(jìn)行置換,包括將數(shù)據(jù)序列順序存放、逆序存放或以隨機(jī)的順序存放在數(shù)組R[i]中,該數(shù)據(jù)序列為0,1,......,M-1;其中i=0,1,......,M-1;M為密鑰因子矩陣的行數(shù)。
所述對(duì)密鑰因子矩陣的所有行標(biāo)進(jìn)行置換,還包括步驟步驟11,設(shè)置i=0;步驟12,判斷ID mod(M-i)<M-i-1是否成立;步驟13,如果步驟12的判斷結(jié)果為是,則將R[ID mod(M-i)]和R[M-i-1]交換位置;如果步驟12的判斷結(jié)果為否,則執(zhí)行步驟14;步驟14,設(shè)置i=i+1,判斷i是否等于M-2;步驟15,如果步驟14的判斷結(jié)果為否,則重復(fù)步驟12至步驟15;如果步驟14的判斷結(jié)果為是,則置換結(jié)束,且經(jīng)上述步驟處理后的數(shù)組R[i]存放的是(0…M-1)的一個(gè)置換。
所述對(duì)密鑰因子矩陣的所有行標(biāo)進(jìn)行置換,還包括步驟步驟21,設(shè)置i=0;步驟22,判斷ID mod(M-i)≠0是否成立;步驟23,如果步驟22的判斷結(jié)果為是,則將R[(ID mod(M-i))+i]和R[i]交換位置;如果步驟22的判斷結(jié)果為否,則執(zhí)行步驟24;步驟24,設(shè)置i=i+1,判斷i是否等于M-2;步驟25,如果步驟24的判斷結(jié)果為否,則重復(fù)步驟22至步驟25;如果步驟24的判斷結(jié)果為是,則置換結(jié)束,且經(jīng)上述步驟處理后的數(shù)組R[i]存放的是(0…M-1)的一個(gè)置換。
所述密鑰因子矩陣的大小表示為2m×N;對(duì)定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值進(jìn)行因子分解按照公式進(jìn)行,該公式的表達(dá)式為S=N×r+k;其中,S定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值;2m密鑰因子矩陣的行數(shù);N密鑰因子矩陣的列數(shù);k≥0且k<N;S、N、k、r、m為整數(shù)。
判斷密鑰因子矩陣的大小是否合適是指判斷r是否大于m;若判斷結(jié)果為r≤m<S,則該密鑰因子矩陣的大小合適;若判斷結(jié)果為r>m,則所述密鑰因子矩陣的大小不合適;其中,S定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值;m、r為整數(shù)。
所述的步驟2包括計(jì)算與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的行標(biāo)組;對(duì)密鑰因子矩陣的所有列標(biāo)進(jìn)行置換,得到與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的列標(biāo)組。
所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的行標(biāo)組,包括判斷k<m-r是否成立;若判斷結(jié)果為是,則按照公式計(jì)算行標(biāo)組Ci(ID),該公式的表達(dá)式為Ci(ID)=[ID>>(i×r)]&(2m-1),i=0…N-1;若判斷結(jié)果為否,則按照公式計(jì)算行標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)=[ID>>(i×r)]&(2m-1),i=0…N-[k-(m-r)]-1,和Ci(ID)={ID>>[i×(r+1)]}&(2m-1),i=N-[k-(m-r)]…N-1;其中,>>表示循環(huán)移位運(yùn)算,ID為所述的定長(zhǎng)二進(jìn)制標(biāo)識(shí);N、k、r、m、i為整數(shù)。
所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的行標(biāo)組,包括按照公式計(jì)算行標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)={ID>>[i×(r+1)]}&(2m-1),i=0...N-1;其中,>>表示循環(huán)移位運(yùn)算,ID為所述的定長(zhǎng)二進(jìn)制標(biāo)識(shí);N、r、m、i為整數(shù)。
所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的行標(biāo)組,包括按照公式計(jì)算行標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)=[ID>>(i×r’)]&(2m-1),i=0...N-1;其中,>>表示循環(huán)移位運(yùn)算,S>r’>r,r’不是S的因子,ID為所述的定長(zhǎng)二進(jìn)制標(biāo)識(shí);r’、r、m、i為整數(shù)。
所述對(duì)密鑰因子矩陣的所有列標(biāo)進(jìn)行置換,包括直接選取數(shù)據(jù)序列作為列標(biāo)組,該數(shù)據(jù)序列為0,1,......,N-1,其中,N為密鑰因子矩陣的列數(shù)。
所述對(duì)密鑰因子矩陣的所有列標(biāo)進(jìn)行置換,包括將數(shù)據(jù)序列順序存放、逆序存放或以隨機(jī)的順序存放在數(shù)組R[i]中,該數(shù)據(jù)序列為0,1,......,N-1;其中i=0,1,......,N-1;N為密鑰因子矩陣的列數(shù)。
所述對(duì)密鑰因子矩陣的所有列標(biāo)進(jìn)行置換,還包括步驟步驟31,設(shè)置i=0;步驟32,判斷ID mod(N-i)<N-i-1是否成立;步驟33,如果步驟32的判斷結(jié)果為是,則將R[ID mod(N-i)]和R[N-i-1]交換位置;如果步驟32的判斷結(jié)果為否,則執(zhí)行步驟34;步驟34,設(shè)置i=i+1,判斷i是否等于N-2;步驟35,如果步驟34的判斷結(jié)果為否,則重復(fù)步驟32至步驟35;如果步驟34的判斷結(jié)果為是,則置換結(jié)束,且經(jīng)上述步驟處理后的數(shù)組R[i]存放的是(0…M-1)的一個(gè)置換。
所述對(duì)密鑰因子矩陣的所有列標(biāo)進(jìn)行置換,還包括步驟步驟41,設(shè)置i=0;步驟42,判斷ID mod(N-i)≠0是否成立;步驟43,如果步驟42的判斷結(jié)果為是,則將R[(ID mod((N-i)+i))和R[i]交換位置;如果步驟42的判斷結(jié)果為否,則執(zhí)行步驟44;步驟44,設(shè)置i=i+1,判斷i是否等于N-2;步驟45,如果步驟44的判斷結(jié)果為否,則重復(fù)步驟42至步驟45;如果步驟44的判斷結(jié)果為是,則置換結(jié)束,且經(jīng)上述步驟處理后的數(shù)組R[i]存放的是(0…M-1)的一個(gè)置換。
所述的步驟3包括從密鑰因子矩陣中選取與所述的行標(biāo)組和列標(biāo)組對(duì)應(yīng)的密鑰因子;利用所述密鑰因子計(jì)算與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)對(duì)應(yīng)的密鑰。
在離散對(duì)數(shù)密碼系統(tǒng)中,利用密鑰因子按照公式計(jì)算密鑰;其中,按照公式SKID=Σi=0MS[Ri,Ci]modp]]>計(jì)算私鑰SKID;按照公式PKID=gSKIDmodp]]>計(jì)算公鑰PKID;其中,p和g為離散對(duì)數(shù)密碼系統(tǒng)的參數(shù),Ri為列標(biāo),Ci為行標(biāo),S[Ri,Ci]為與標(biāo)識(shí)對(duì)應(yīng)的私鑰因子。
在橢圓曲線密碼系統(tǒng)中,利用密鑰因子按照公式計(jì)算密鑰;其中,按照公式SKID=Σi=0MS[Ri,Ci]modn]]>計(jì)算私鑰SKID;按照公式SKID=SKID×G計(jì)算公鑰PKID;其中,n和G為橢圓曲線密碼系統(tǒng)的參數(shù)Ri為列標(biāo),Ci為行標(biāo),S[Ri,Ci]為與標(biāo)識(shí)對(duì)應(yīng)的私鑰因子。
采用哈希函數(shù)或消息鑒別碼函數(shù)將所述非定長(zhǎng)二進(jìn)制標(biāo)識(shí)轉(zhuǎn)換為定長(zhǎng)二進(jìn)制標(biāo)識(shí)。
本發(fā)明的有益效果在于,簡(jiǎn)化了標(biāo)識(shí)到密鑰的映射計(jì)算,映射算法簡(jiǎn)潔高效,而且對(duì)于具有特殊性的標(biāo)識(shí)可以實(shí)現(xiàn)標(biāo)識(shí)到密鑰的無(wú)沖突映射。
圖1A和圖1B分別為本發(fā)明的公鑰因子矩陣和私鑰因子矩陣的示意圖;圖2為本發(fā)明一實(shí)施例的方法流程圖;圖3為本發(fā)明一實(shí)施例的方法流程圖;圖4為本發(fā)明一實(shí)施例的方法流程圖;圖5為本發(fā)明另一實(shí)施例的方法流程圖。
具體實(shí)施例方式
以下結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明。
本發(fā)明提供了一種標(biāo)識(shí)和密鑰的映射方法,應(yīng)用于基于標(biāo)識(shí)的組合密鑰管理系統(tǒng)中,在所述系統(tǒng)中已經(jīng)生成密鑰因子矩陣,所述的方法包括根據(jù)定長(zhǎng)二進(jìn)制標(biāo)識(shí)或由非定長(zhǎng)二進(jìn)制標(biāo)識(shí)轉(zhuǎn)換的定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值檢驗(yàn)密鑰因子矩陣的大?。桓鶕?jù)所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)計(jì)算出密鑰因子在密鑰因子矩陣中相應(yīng)的行標(biāo)組和列標(biāo)組,以定位密鑰因子;利用所述行標(biāo)組和列標(biāo)組對(duì)應(yīng)的密鑰因子計(jì)算與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)對(duì)應(yīng)的密鑰。
其中,所述的標(biāo)識(shí)可以是像IPv4、IPv6地址這類具有一定特殊性的標(biāo)識(shí),對(duì)于像IPv4、IPv6地址這類標(biāo)識(shí),其特殊性在于,標(biāo)識(shí)本身即為S比特(bit)的二進(jìn)制標(biāo)識(shí);對(duì)于原始標(biāo)識(shí)是一個(gè)由字母、數(shù)字等混合元素組成的標(biāo)識(shí),可以先通過(guò)哈希(HASH)或加密算法處理生成一個(gè)定長(zhǎng)的二進(jìn)制標(biāo)識(shí)后再進(jìn)行相應(yīng)的映射計(jì)算,其中,將變長(zhǎng)標(biāo)識(shí)變換為定長(zhǎng)值的方法可以采用消息鑒別碼(MACMessage Authentication Code)函數(shù)或普通的HASH算法。
總之,對(duì)于任意一種標(biāo)識(shí),均能通過(guò)本發(fā)明提供的標(biāo)識(shí)和密鑰的映射方法實(shí)現(xiàn)密鑰和密鑰擁有者標(biāo)識(shí)之間的綁定。
在本發(fā)明的實(shí)施例中,密鑰因子矩陣包括公鑰因子矩陣和私鑰因子矩陣,密鑰包括公鑰和私鑰,密鑰因子包括公鑰因子和私鑰因子。而且,在實(shí)施本發(fā)明的映射方法時(shí),系統(tǒng)中已生成了大小為M×N的密鑰因子矩陣,其中N=2n,M=2m。公、私鑰因子矩陣是基于標(biāo)識(shí)的組合密鑰管理體制的基礎(chǔ)。私鑰是在私鑰因子矩陣中按照一定的映射規(guī)則在每行(或列)各選取一個(gè)私鑰因子通過(guò)相應(yīng)運(yùn)算計(jì)算出;相應(yīng)的,公鑰是在公鑰因子矩陣中按照一定的映射規(guī)則在每行(或列)各選取一個(gè)公鑰因子通過(guò)相應(yīng)運(yùn)算計(jì)算出。設(shè)私鑰因子矩陣為SKM=[Sij],其中i=0...M-1,j=0...N-1;如果私鑰是從私鑰因子矩陣中每行各選取一個(gè)私鑰因子計(jì)算出,則對(duì)N做限定,要求N=2n,n為正整數(shù);如果私鑰是從私鑰因子矩陣中每列各選取一個(gè)私鑰因子計(jì)算出,則對(duì)M進(jìn)行限定,要求M=2m,m為正整數(shù)。
公私鑰因子無(wú)論是按行選取還是按列選取其計(jì)算都是類似的。其區(qū)別僅在于如果是按行選取,則先計(jì)算列標(biāo)組;再對(duì)所有的行標(biāo)進(jìn)行置換,即所得到的行標(biāo)是所有行標(biāo)的全排列的一種;如果是按列選取,則先計(jì)算行標(biāo)組;再對(duì)所有的列標(biāo)進(jìn)行置換,即所得到的列標(biāo)組是所有列標(biāo)的全排列的一種。
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
實(shí)施例一在本實(shí)施例中,以公私鑰因子是按行選取為例進(jìn)行介紹。
如圖1A和圖1B所示分別為私鑰因子矩陣和公鑰因子矩陣示意圖。如圖所示,私鑰因子矩陣為SKM=[Sij],其中i=0...M-1,j=0...N-1;相應(yīng)的公鑰因子矩陣為PKM=[Pij],其中i=0...M-1,j=0...N-1。
在橢圓曲線密碼系統(tǒng)中,設(shè)G是某橢圓曲線的基點(diǎn),則Pij=Sij×G,即PKM=SKM×G。
在離散對(duì)數(shù)密碼系統(tǒng)中,T={g,p},其中p是素?cái)?shù),g是有限域Fp生成元,g小于p,則Pij=gSijmodp.]]>通常密鑰因子矩陣的大小關(guān)系到系統(tǒng)的安全性,同時(shí)也和系統(tǒng)的規(guī)模(即用戶數(shù))是相關(guān)的,而標(biāo)識(shí)的長(zhǎng)度決定了系統(tǒng)中最大的用戶數(shù)。
下面,結(jié)合圖2至圖4說(shuō)明本實(shí)施例,在圖2至圖4的流程圖中,在實(shí)施本發(fā)明的映射方法之前,系統(tǒng)中已經(jīng)生成了大小為M×N的密鑰因子矩陣,其中N=2n,M=2m。將本發(fā)明的映射方法分為三個(gè)過(guò)程密鑰因子矩陣的檢驗(yàn)過(guò)程、行標(biāo)組和列標(biāo)組的計(jì)算過(guò)程和密鑰的計(jì)算過(guò)程。
需要說(shuō)明的是,因?yàn)閷?duì)于像IPv4、IPv6地址這類具有S bit的定長(zhǎng)二進(jìn)制標(biāo)識(shí)和包含有由字母、數(shù)字等混合元素組成的標(biāo)識(shí),本發(fā)明的映射方法都可以應(yīng)用。
因此,對(duì)于使用類似于DNS域名的通用標(biāo)識(shí)的系統(tǒng),如圖2所示,在進(jìn)行密鑰因子矩陣的檢驗(yàn)之前,需要將通用標(biāo)識(shí)轉(zhuǎn)換為定長(zhǎng)二進(jìn)制標(biāo)識(shí),并將其直接作為以下過(guò)程中使用的定長(zhǎng)二進(jìn)制標(biāo)識(shí)(見(jiàn)步驟S101)。
對(duì)于標(biāo)識(shí)為S bit的定長(zhǎng)二進(jìn)制標(biāo)識(shí),如圖4所示,可將其直接作為以下過(guò)程中使用的定長(zhǎng)二進(jìn)制標(biāo)識(shí)(見(jiàn)步驟S301)。
另外,如圖3所示,還可以選取上述定長(zhǎng)二進(jìn)制標(biāo)識(shí)的一部分作為以下過(guò)程中使用的定長(zhǎng)二進(jìn)制標(biāo)識(shí)(見(jiàn)步驟S201)。例如如果密鑰生成中心所管理的范圍是IPv6的一個(gè)子網(wǎng),其子網(wǎng)前綴是n bit,那么系統(tǒng)在取標(biāo)識(shí)時(shí)可以只考慮128-n bit的接口標(biāo)識(shí)部分來(lái)決定密鑰因子矩陣的大小以及標(biāo)識(shí)和密鑰間的映射。同理,對(duì)于一個(gè)使用類似于DNS域名的通用標(biāo)識(shí)的系統(tǒng),在將通用標(biāo)識(shí)轉(zhuǎn)換為定長(zhǎng)標(biāo)識(shí)時(shí),可以根據(jù)系統(tǒng)的規(guī)模而只取經(jīng)過(guò)哈希(HASH)函數(shù)或消息鑒別碼(MACMessage Authentication Code)函數(shù)計(jì)算得出的值的一部分進(jìn)行映射計(jì)算即可。
一、密鑰因子矩陣的檢驗(yàn)過(guò)程密鑰因子矩陣的檢驗(yàn)過(guò)程為根據(jù)定長(zhǎng)二進(jìn)制標(biāo)識(shí)或由非定長(zhǎng)二進(jìn)制標(biāo)識(shí)轉(zhuǎn)換的定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值檢驗(yàn)密鑰因子矩陣的大小。
檢驗(yàn)密鑰因子矩陣的大小包括對(duì)定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值進(jìn)行因子分解;根據(jù)因子分解的結(jié)果判斷密鑰因子矩陣的大小是否合適;如果所述的判斷步驟的結(jié)果為是,則進(jìn)行行標(biāo)組和列標(biāo)組的計(jì)算過(guò)程。如果所述的判斷步驟的結(jié)果為否,則重新生成密鑰因子矩陣。
如圖2、圖3和圖4所示,對(duì)密鑰因子矩陣的檢驗(yàn)過(guò)程具體如下將定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值按照S=M×r+k進(jìn)行因子分解,其中k≥0且k<M(見(jiàn)步驟S102);如果r≤n<S,則密鑰因子矩陣可用(見(jiàn)步驟S103);如果r>n,則所述密鑰因子矩陣太小,需要重新生成密鑰因子矩陣(見(jiàn)步驟S109),其中M為密鑰因子矩陣的行數(shù),S為定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值,k為0或正整數(shù),r、n為正整數(shù)。
舉一個(gè)特例進(jìn)行說(shuō)明將系統(tǒng)中的定長(zhǎng)的S bit的二進(jìn)制標(biāo)識(shí)表示為S=M×r(此時(shí)取k=0),依然假定公私鑰是在公私鑰因子矩陣中按照一定的映射規(guī)則在每行各選取一個(gè)公私鑰因子通過(guò)相應(yīng)運(yùn)算計(jì)算出,則密鑰因子矩陣的大小可以取M×2n’,n’≥n。例如在以IPv6地址為標(biāo)識(shí)的系統(tǒng)中,IPv6地址是128bit,128=32×4,則密鑰因子矩陣的大小可以取為32×24。
二、行標(biāo)組和列標(biāo)組的計(jì)算過(guò)程為了計(jì)算一個(gè)標(biāo)識(shí)對(duì)應(yīng)的公私鑰,需要找出計(jì)算公私鑰的密鑰因子,要定位密鑰因子,則需要根據(jù)標(biāo)識(shí)計(jì)算出密鑰因子在密鑰因子矩陣中相應(yīng)的行標(biāo)組和列標(biāo)組。
首先,進(jìn)行列標(biāo)組的計(jì)算。
在上述的密鑰因子矩陣的檢驗(yàn)過(guò)程中,已經(jīng)將定長(zhǎng)二進(jìn)制標(biāo)識(shí)ID的長(zhǎng)度值按照S=M×r+k進(jìn)行因子分解,其中k≥0且k<M,M為密鑰因子矩陣的行數(shù),S為定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值。因?yàn)橐呀?jīng)經(jīng)過(guò)了上述密鑰因子矩陣的檢驗(yàn)過(guò)程,因此,該公式中的r≤n<S。
下面提供了三種方法通過(guò)所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)ID來(lái)計(jì)算列標(biāo)組的方法。
第一種方法如圖2所示,計(jì)算過(guò)程如下如果k<n-r,則計(jì)算列標(biāo)組Ci(ID)=[ID>>(i×r)]&(2n-1),i=0...M-1;其中,>>表示循環(huán)移位運(yùn)算(見(jiàn)步驟S104、S105);如果k≥n-r,則按照下述公式計(jì)算列標(biāo)組Ci(ID)(見(jiàn)步驟S110)Ci(ID)=[ID>>(i×r)]&(2n-1),i=0...M-[k-(n-r)]-1,Ci(ID)={ID>>[i×(r+1)]}&(2n-1),i=M-[k-(n-r)]...M-1其中,>>表示循環(huán)移位運(yùn)算。
第二種方法如圖3所示,按下述公式計(jì)算列標(biāo)組Ci(ID)(見(jiàn)步驟S205)Ci(ID)={ID>>[i×(r+1)]}&(2n-1),i=0...M-1
其中,>>表示循環(huán)移位運(yùn)算。
第三種方法如圖4所示,按下述公式計(jì)算列標(biāo)組Ci(ID)(見(jiàn)步驟S305)Ci(ID)=[ID>>(i×r’)]&(2n-1),i=0...M-1其中,>>表示循環(huán)移位運(yùn)算,S>r’>r,要求r’不是的S因子。
其次,進(jìn)行行標(biāo)組的計(jì)算。
密鑰因子從密鑰因子矩陣的每一行選取一個(gè),因此行標(biāo)組是(0...M-1)的一個(gè)置換,如圖2所示,最簡(jiǎn)單的方式就是直接選取0...M-1(見(jiàn)步驟S106)。
此外,還可以通過(guò)下述兩種方法進(jìn)行行標(biāo)置換第一種方法如圖3所示,見(jiàn)步驟S206~S212,把0...M-1順序放在數(shù)組R
...R[M-1]。然后執(zhí)行下面的運(yùn)算步驟1)設(shè)置i=0;2)判斷ID mod(M-i)<M-i-1是否成立;3)如果2)的結(jié)果為是,則將R[ID mod(M-i)]和R[M-i-1]交換位置;如果2)的結(jié)果為否,則執(zhí)行4);4)設(shè)置i=i+1,重復(fù)步驟2)至4),直到i=M-2時(shí)結(jié)束。
經(jīng)過(guò)上面處理后的數(shù)組R
...R[M-1]存放的是(0...M-1)的一個(gè)置換。則置換后的數(shù)組存放的數(shù)據(jù)序列為行標(biāo)組。
第二種方法如圖4所示,見(jiàn)步驟S306至步驟S312,把0...M-1逆序放在數(shù)組A
...A[M-1]。然后執(zhí)行下面的運(yùn)算步驟1’)設(shè)置i=0;2’)判斷ID mod(M-i)≠0是否成立;3’)如果2’)的判斷結(jié)果為是,則將A[ID mod(M-i)]和A[i]交換位置;如果2’)的判斷結(jié)果為否,執(zhí)行4’);
4’)設(shè)置i=i+1,重復(fù)步驟2’)至4’),直到i=M-2時(shí)結(jié)束。
經(jīng)過(guò)上面處理后的數(shù)組A
...A[M-1]存放的是(0...M-1)的一個(gè)置換。則置換后的數(shù)組存放的數(shù)據(jù)序列為行標(biāo)組。
在圖3所示的步驟S206和圖4所示的步驟S306中,把0...M-1放在數(shù)組中的順序可以是順序存放、逆序存放、也可以是以隨機(jī)的順序存放。
三、密鑰的計(jì)算過(guò)程在計(jì)算出所述標(biāo)識(shí)對(duì)應(yīng)的列標(biāo)組和行標(biāo)組后,從密鑰因子矩陣中選取與所述的行標(biāo)組和列標(biāo)組對(duì)應(yīng)的密鑰因子(見(jiàn)步驟S107)。例如設(shè)密鑰因子矩陣的大小為16×64,即M=16,N=64,組成公私鑰的密鑰因子是按行從密鑰因子矩陣中選取的。假如對(duì)于一個(gè)標(biāo)識(shí)ID,根據(jù)上面給出的映射方法,可以計(jì)算出作為列標(biāo)16個(gè)值為(8,2,62,......,33),相應(yīng)的行標(biāo)置換(3,8,1,......,12),于是在私鑰因子矩陣中取S3,8,S8,2,S1,62,......,S12,33計(jì)算出ID對(duì)應(yīng)的私鑰;相應(yīng)的標(biāo)識(shí)ID對(duì)應(yīng)的公鑰從公鑰因子矩陣中取P3,8,P8,2,P1,62,......,P12,33計(jì)算出。
在得到標(biāo)識(shí)對(duì)應(yīng)的行標(biāo)組和列標(biāo)組后,再進(jìn)行公私鑰對(duì)的計(jì)算(見(jiàn)步驟S108)。
由于私鑰是需要保密的,只有密鑰管理中心才能保存私鑰因子矩陣,私鑰的生成只能在密鑰管理中心進(jìn)行,生成后發(fā)放給相應(yīng)的實(shí)體,系統(tǒng)中的每個(gè)實(shí)體并不知道用于計(jì)算自身私鑰的每個(gè)私鑰因子;每個(gè)標(biāo)識(shí)的公鑰在整個(gè)密鑰管理中心所管理的域內(nèi)是公開(kāi)的,所以公鑰因子矩陣是需要公開(kāi)的。
在離散對(duì)數(shù)密碼系統(tǒng),系統(tǒng)參數(shù)T={g,p},其中p是素?cái)?shù),g是有限域Fp生成元,g小于p。一個(gè)標(biāo)識(shí)ID對(duì)應(yīng)的列標(biāo)為C0,C1~CM-1,相應(yīng)的行標(biāo)為R0,R1~RM-1,S[Ri,Ci]為與標(biāo)識(shí)對(duì)應(yīng)的私鑰因子,則標(biāo)識(shí)ID對(duì)應(yīng)的私鑰SKID=Σi=0MS[Ri,Ci]modp;]]>對(duì)應(yīng)的公鑰
PKID=Πi=0MP[Ri,Ci]modp=(gS[R0,C0]×gS[R1,C1]...×gS[R31,C31])modp]]>=(gS[R0,C0]+S[R1,C1]...+S[R31,C31])modp=gSKIDmodp;]]>如果是橢圓曲線密碼系統(tǒng),系統(tǒng)參數(shù)T(a,b,G,n,p),其中p是正整數(shù),F(xiàn)p是有限域,a,b是Fp上的正整數(shù),G是橢圓曲線E(Fp)上的基點(diǎn),n是素?cái)?shù),是基點(diǎn)G的階。一個(gè)標(biāo)識(shí)ID對(duì)應(yīng)的列標(biāo)為C0,C1~CM-1,相應(yīng)的行標(biāo)為R0,R1~RM-1,則標(biāo)識(shí)ID對(duì)應(yīng)的私鑰SKID=Σi=0MS[Ri,Ci]modn;]]>對(duì)應(yīng)的公鑰SKID=Σi=0MP[Ri,Ci]modp=SKID×G.]]>實(shí)施例二在本實(shí)施例中,根據(jù)圖5對(duì)公私鑰因子按列選取進(jìn)行說(shuō)明。公私鑰因子無(wú)論是按行選取還是按列選取,其計(jì)算都是類似。
同樣采用如圖1A和圖1B的私鑰因子矩陣和公鑰因子矩陣。執(zhí)行本實(shí)施例的方法之前,系統(tǒng)中已經(jīng)生成了大小為M×N的密鑰因子矩陣,其中N=2n,M=2m。在本實(shí)施例中將密鑰因子矩陣的大小表示為S=2m×N。本實(shí)施例的映射方法也分為三個(gè)過(guò)程密鑰因子矩陣的檢驗(yàn)過(guò)程、行標(biāo)組和列標(biāo)組的計(jì)算過(guò)程和密鑰的計(jì)算過(guò)程。
同樣對(duì)于向IPv4、IPv6地址這類具有S bit的定長(zhǎng)二進(jìn)制標(biāo)識(shí)和包含有由字母、數(shù)字等混合元素組成的非定長(zhǎng)的二進(jìn)制標(biāo)識(shí),本發(fā)明的映射方法都可以使用。在圖5的流程圖中,在實(shí)施本發(fā)明的映射方法之前,系統(tǒng)中已經(jīng)生成了大小為M×N的密鑰因子矩陣,其中N=2n,M=2m,m為正整數(shù)。如圖5所示的標(biāo)識(shí)為通用標(biāo)識(shí),需要將標(biāo)識(shí)轉(zhuǎn)換為二進(jìn)制標(biāo)識(shí),并選取一部分作為下述步驟中的定長(zhǎng)二進(jìn)制標(biāo)識(shí)(見(jiàn)步驟S401)。
一、密鑰因子矩陣的檢驗(yàn)過(guò)程密鑰因子矩陣的檢驗(yàn)過(guò)程與實(shí)施例一相同,只是在因子分解時(shí),以密鑰因子矩陣的列數(shù)N代替密鑰因子矩陣的行數(shù)M。具體過(guò)程如圖5的步驟S402、步驟S403和步驟S409將定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值S按照S=N×r+k進(jìn)行因子分解,其中k≥0且k<N;如果r≤m<S,則密鑰因子矩陣可用;如果r>m,則所述密鑰因子矩陣太小,需要重新生成密鑰因子矩陣。
二、行標(biāo)組和列標(biāo)組的計(jì)算過(guò)程在本實(shí)施例申由于是按列選取密鑰因子,因此,需要現(xiàn)進(jìn)行行標(biāo)組的計(jì)算,再對(duì)列標(biāo)組進(jìn)行置換。
首先,進(jìn)行行標(biāo)組的計(jì)算。
在上述的密鑰因子矩陣的檢驗(yàn)過(guò)程中,已經(jīng)將定長(zhǎng)二進(jìn)制標(biāo)識(shí)ID按照S=N×r+k進(jìn)行因子分解,其中k≥0且k<N,N為密鑰因子矩陣的列數(shù)。因?yàn)橐呀?jīng)經(jīng)過(guò)了密鑰因子矩陣的檢驗(yàn)過(guò)程,因此,該公式中的r≤m<S。通過(guò)所述的定長(zhǎng)二進(jìn)制標(biāo)識(shí)ID來(lái)計(jì)算行標(biāo)組同樣有三種方法第一種方法(圖中未示出)是按照如下的公式計(jì)算行標(biāo)組Ci(ID)如果k<m-r,Ci(ID)=[ID>>(i×r)]&(2m-1),i=0...N-1其中,>>表示循環(huán)移位運(yùn)算;如果k≥m-r,Ci(ID)=[ID>>(i×r)]&(2m-1),i=0...N-[k-(m-r)]-1,Ci(ID)={ID>>[i×(r+1)]}&(2m-1),i=M-[k-(m-r)]...N-1,其中,>>表示循環(huán)移位運(yùn)算。
第二種方法(圖中未示出)按照如下的公式計(jì)算行標(biāo)組Ci(ID)Ci(ID)={ID>>[i×(r+1)]}&(2m-1),i=0...N-1其中,>>表示循環(huán)移位運(yùn)算。
第三種方法,見(jiàn)圖5中的步驟S405,按照如下的公式計(jì)算行標(biāo)組Ci(ID),Ci(ID)=[ID>>(i×r’)]&(2m-1),i=0...N-1其中,>>表示循環(huán)移位運(yùn)算,S>r’>r,要求r’不是S的因子。
接著,進(jìn)行列標(biāo)組的計(jì)算。
密鑰因子從密鑰因子矩陣的每一列選取一個(gè),因此列標(biāo)組是(0...N-1)的一個(gè)置換,最簡(jiǎn)單的方式就是直接選取0...N-1(圖中未示出)。此外,同樣進(jìn)行置換也可以通過(guò)實(shí)施例一中的兩種方法稍作變化即可第一種方法(圖中未示出),把0...N-1順序存放、逆序存放或以隨機(jī)的順序存放在數(shù)組R
...R[N-1]。然后執(zhí)行下面的運(yùn)算步驟1)設(shè)置i=0;2)判斷ID mod(N-i)<N-i-1是否成立;3)如果2)的結(jié)果為是,則將R[ID mod(N-I)]和R[N-i-1]交換位置;如果2)的結(jié)果為否,則執(zhí)行4);4)設(shè)置i=i+1,重復(fù)步驟2)至4),直到i=N-2時(shí)結(jié)束。
經(jīng)過(guò)上面處理后的數(shù)組R
...R[N-1]存放的是(0...N-1)的一個(gè)置換。則置換后的數(shù)組存放的數(shù)據(jù)序列為列標(biāo)組。
如圖5的步驟S406至步驟S412所示為第二種方法,把0...N-1順序存放、逆序存放或以隨機(jī)的順序存放在數(shù)組A
...A[N-1]。然后執(zhí)行下面的運(yùn)算步驟1’)設(shè)置i=0;2’)判斷ID mod(N-i)≠0是否成立;3’)如果2’)的結(jié)果為是,則將A[ID mod(N-I)]和A[i]交換位置;如果2’)的結(jié)果為否,則執(zhí)行4’);4’)設(shè)置i=i+1,重復(fù)步驟2’)至4’),直到i=N-2時(shí)結(jié)束。
經(jīng)過(guò)上面處理后的數(shù)組A
...A[N-1]存放的是(0...N-1)的一個(gè)置換。則置換后的數(shù)組存放的數(shù)據(jù)序列為列標(biāo)組。
三、密鑰的計(jì)算過(guò)程與實(shí)施例一相同,在此不再贅述。
通過(guò)本發(fā)明,簡(jiǎn)化了標(biāo)識(shí)到密鑰的映射方法,映射方法簡(jiǎn)潔高效,易于實(shí)現(xiàn),而且對(duì)于IPv4、IPv6這類的標(biāo)識(shí)可以實(shí)現(xiàn)標(biāo)識(shí)到密鑰的無(wú)沖突映射。
上述實(shí)施例僅用于說(shuō)明本發(fā)明,而非用于限定本發(fā)明。
權(quán)利要求
1.一種標(biāo)識(shí)和密鑰的映射方法,應(yīng)用于基于標(biāo)識(shí)的組合密鑰管理系統(tǒng)中,在所述系統(tǒng)中已經(jīng)生成密鑰因子矩陣,其特征在于,所述方法包括步驟步驟1,根據(jù)定長(zhǎng)二進(jìn)制標(biāo)識(shí)或由非定長(zhǎng)二進(jìn)制標(biāo)識(shí)轉(zhuǎn)換的定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值檢驗(yàn)密鑰因子矩陣的大小;步驟2,根據(jù)所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)計(jì)算出密鑰因子在密鑰因子矩陣中相應(yīng)的行標(biāo)組和列標(biāo)組;步驟3,利用所述行標(biāo)組和列標(biāo)組對(duì)應(yīng)的密鑰因子計(jì)算與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)對(duì)應(yīng)的密鑰。
2.根據(jù)權(quán)利要求1所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述步驟1包括對(duì)定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值進(jìn)行因子分解;根據(jù)因子分解的結(jié)果判斷密鑰因子矩陣的大小是否合適;若判斷結(jié)果為合適,則執(zhí)行步驟2。
3.根據(jù)權(quán)利要求2所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述步驟1還包括若判斷結(jié)果為不合適,則重新生成密鑰因子矩陣。
4.根據(jù)權(quán)利要求2或3所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述密鑰因子矩陣的大小表示為M×2n,所述對(duì)定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值進(jìn)行因子分解按照公式進(jìn)行,該公式的表達(dá)式為S=M×r+k;其中,S定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值;M密鑰因子矩陣的行數(shù);2n密鑰因子矩陣的列數(shù);k≥0且k<M;S、M、k、r、n均為整數(shù)。
5.根據(jù)權(quán)利要求4所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,判斷密鑰因子矩陣的大小是否合適是指判斷r是否大于n;若判斷結(jié)果為r≤n<S,則該密鑰因子矩陣的大小合適;若判斷結(jié)果為r>n,則所述密鑰因子矩陣的大小不合適;其中,S定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值;n、r均為整數(shù)。
6.根據(jù)權(quán)利要求4所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述的步驟2包括計(jì)算與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的列標(biāo)組;對(duì)密鑰因子矩陣的所有行標(biāo)進(jìn)行置換,得到與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的行標(biāo)組。
7.根據(jù)權(quán)利要求6所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的列標(biāo)組,包括判斷k<n-r是否成立;如果判斷結(jié)果為是,則按照公式計(jì)算列標(biāo)組Ci(ID),該公式的表達(dá)式為Ci(ID)=[ID>>(i×r)]&(2n-1),i=0…M-1;其中,>>表示循環(huán)移位運(yùn)算,ID為所述定長(zhǎng)二進(jìn)制標(biāo)識(shí);如果判斷結(jié)果為否,則按照公式計(jì)算列標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)=[ID>>(i×r)]&(2n-1),i=0...M-[k-(n-r)]-1,和Ci(ID)={ID>>[i×(r+1)]}&(2n-1),i=M-[k-(n-r)]…M-1;其中,>>表示循環(huán)移位運(yùn)算,ID為所述定長(zhǎng)二進(jìn)制標(biāo)識(shí);M、k、n、r、i為整數(shù)。
8.根據(jù)權(quán)利要求6所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的列標(biāo)組,包括按照公式計(jì)算列標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)={ID>>[i×(r+1)]}&(2n-1),i=0...M-1;其中,>>表示循環(huán)移位運(yùn)算;ID為定長(zhǎng)二進(jìn)制標(biāo)識(shí);n、r、i為整數(shù)。
9.根據(jù)權(quán)利要求6所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的列標(biāo)組,包括按照公式計(jì)算列標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)=[ID>>(i×r’)]&(2n-1),i=0...M-1其中,>>表示循環(huán)移位運(yùn)算,S>r’>r,r’不是S的因子,ID為定長(zhǎng)二進(jìn)制標(biāo)識(shí);S為定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值;r、r’、n、i為整數(shù)。
10.根據(jù)權(quán)利要求6所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述對(duì)密鑰因子矩陣的所有行標(biāo)進(jìn)行置換,包括直接選取數(shù)據(jù)序列作為行標(biāo)組,該數(shù)據(jù)序列為0,1,......,M-1,其中,M為密鑰因子矩陣的行數(shù)。
11.根據(jù)權(quán)利要求6所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述對(duì)密鑰因子矩陣的所有行標(biāo)進(jìn)行置換,包括將數(shù)據(jù)序列順序存放、逆序存放或以隨機(jī)的順序存放在數(shù)組R[i]中,該數(shù)據(jù)序列為0,1,......,M-1;其中i=0,1,......,M-1;M為密鑰因子矩陣的行數(shù)。
12.根據(jù)權(quán)利要求11所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述對(duì)密鑰因子矩陣的所有行標(biāo)進(jìn)行置換,還包括步驟步驟11,設(shè)置i=0;步驟12,判斷ID mod(M-i)<M-i-1是否成立;步驟13,如果步驟12的判斷結(jié)果為是,則將R[ID mod(M-i)]和R[M-i-1]交換位置;如果步驟12的判斷結(jié)果為否,則執(zhí)行步驟14;步驟14,設(shè)置i=i+1,判斷i是否等于M-2;步驟15,如果步驟14的判斷結(jié)果為否,則重復(fù)步驟12至步驟15;如果步驟14的判斷結(jié)果為是,則置換結(jié)束,且經(jīng)上述步驟處理后的數(shù)組R[i]存放的是(0…M-1)的一個(gè)置換。
13.根據(jù)權(quán)利要求11所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述對(duì)密鑰因子矩陣的所有行標(biāo)進(jìn)行置換,還包括步驟步驟21,設(shè)置i=0;步驟22,判斷ID mod(M-i)≠0是否成立;步驟23,如果步驟22的判斷結(jié)果為是,則將R[(ID mod(M-i))+i]和R[i]交換位置;如果步驟22的判斷結(jié)果為否,則執(zhí)行步驟24;步驟24,設(shè)置i=i+1,判斷i是否等于M-2;步驟25,如果步驟24的判斷結(jié)果為否,則重復(fù)步驟22至步驟25;如果步驟24的判斷結(jié)果為是,則置換結(jié)束,且經(jīng)上述步驟處理后的數(shù)組R[i]存放的是(0…M-1)的一個(gè)置換。
14.根據(jù)權(quán)利要求2或3所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述密鑰因子矩陣的大小表示為2m×N;對(duì)定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值進(jìn)行因子分解按照公式進(jìn)行,該公式的表達(dá)式為S=N×r+k;其中,S定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值;2m密鑰因子矩陣的行數(shù);N密鑰因子矩陣的列數(shù);k≥0且k<N;S、N、k、r、m為整數(shù)。
15.根據(jù)權(quán)利要求14所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,判斷密鑰因子矩陣的大小是否合適是指判斷r是否大于m;若判斷結(jié)果為r≤m<S,則該密鑰因子矩陣的大小合適;若判斷結(jié)果為r>m,則所述密鑰因子矩陣的大小不合適;其中,S定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值;m、r為整數(shù)。
16.根據(jù)權(quán)利要求14所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述的步驟2包括計(jì)算與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的行標(biāo)組;對(duì)密鑰因子矩陣的所有列標(biāo)進(jìn)行置換,得到與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的列標(biāo)組。
17.根據(jù)權(quán)利要求16所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的行標(biāo)組,包括判斷k<m-r是否成立;若判斷結(jié)果為是,則按照公式計(jì)算行標(biāo)組Ci(ID),該公式的表達(dá)式為Ci(ID)=[ID>>(i×r)]&(2m-1),i=0…N-1;若判斷結(jié)果為否,則按照公式計(jì)算行標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)=[ID>>(i×r)]&(2m-1),i=0…N-[k-(m-r)]-1,和Ci(ID)={ID>>[i×(r+1)]}&(2m-1),i=N-[k-(m-r)]…N-1;其中,>>表示循環(huán)移位運(yùn)算,ID為所述的定長(zhǎng)二進(jìn)制標(biāo)識(shí);N、k、r、m、i為整數(shù)。
18.根據(jù)權(quán)利要求16所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的行標(biāo)組,包括按照公式計(jì)算行標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)={ID>>[i×(r+1)]}&(2m-1),i=0...N-1;其中,>>表示循環(huán)移位運(yùn)算,ID為所述的定長(zhǎng)二進(jìn)制標(biāo)識(shí);N、r、m、i為整數(shù)。
19.根據(jù)權(quán)利要求16所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述計(jì)算與定長(zhǎng)二進(jìn)制標(biāo)識(shí)相應(yīng)的行標(biāo)組,包括按照公式計(jì)算行標(biāo)組Ci(ID),該公式表達(dá)式為Ci(ID)=[ID>>(i×r’)]&(2m-1),i=0...N-1其中,>>表示循環(huán)移位運(yùn)算,S>r’>r,r’不是S的因子,ID為所述的定長(zhǎng)二進(jìn)制標(biāo)識(shí);r’、r、m、i為整數(shù)。
20.根據(jù)權(quán)利要求16所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述對(duì)密鑰因子矩陣的所有列標(biāo)進(jìn)行置換,包括直接選取數(shù)據(jù)序列作為列標(biāo)組,該數(shù)據(jù)序列為0,1,......,N-1,其中,N為密鑰因子矩陣的列數(shù)。
21.根據(jù)權(quán)利要求16所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述對(duì)密鑰因子矩陣的所有列標(biāo)進(jìn)行置換,包括將數(shù)據(jù)序列順序存放、逆序存放或以隨機(jī)的順序存放在數(shù)組R[i]中,該數(shù)據(jù)序列為0,1,......,N-1;其中i=0,1,......,N-1;N為密鑰因子矩陣的列數(shù)。
22.根據(jù)權(quán)利要求21所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述對(duì)密鑰因子矩陣的所有列標(biāo)進(jìn)行置換,還包括步驟步驟31,設(shè)置i=0;步驟32,判斷ID mod(N-i)<N-i-1是否成立;步驟33,如果步驟32的判斷結(jié)果為是,則將R[ID mod(N-i)]和R[N-i-1]交換位置;如果步驟32的判斷結(jié)果為否,則執(zhí)行步驟34;步驟34,設(shè)置i=i+1,判斷i是否等于N-2;步驟35,如果步驟34的判斷結(jié)果為否,則重復(fù)步驟32至步驟35;如果步驟34的判斷結(jié)果為是,則置換結(jié)束,且經(jīng)上述步驟處理后的數(shù)組R[i]存放的是(0…M-1)的一個(gè)置換。
23.根據(jù)權(quán)利要求21所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述對(duì)密鑰因子矩陣的所有列標(biāo)進(jìn)行置換,還包括步驟步驟41,設(shè)置i=0;步驟42,判斷ID mod(N-i)≠0是否成立;步驟43,如果步驟42的判斷結(jié)果為是,則將R[(ID mod((N-i)+i))和R[i]交換位置;如果步驟42的判斷結(jié)果為否,則執(zhí)行步驟44;步驟44,設(shè)置i=i+1,判斷i是否等于N-2;步驟45,如果步驟44的結(jié)果為否,則重復(fù)步驟42至步驟45;如果步驟44的結(jié)果為是,則置換結(jié)束,且經(jīng)上述步驟處理后的數(shù)組R[i]存放的是(0…M-1)的一個(gè)置換。
24.根據(jù)權(quán)利要求1所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,所述的步驟3包括從密鑰因子矩陣中選取與所述的行標(biāo)組和列標(biāo)組對(duì)應(yīng)的密鑰因子;利用所述密鑰因子計(jì)算與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)對(duì)應(yīng)的密鑰。
25.根據(jù)權(quán)利要求24所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,在離散對(duì)數(shù)密碼系統(tǒng)中,利用密鑰因子按照公式計(jì)算密鑰;其中,按照公式SKID=Σi=0MS[Ri,Ci]modp]]>計(jì)算私鑰SKID;按照公式PKID=gSKIDmodp]]>計(jì)算公鑰PKID;其中,p和g為離散對(duì)數(shù)密碼系統(tǒng)的參數(shù),Ri為列標(biāo),Ci為行標(biāo),S[Ri,Ci]為與標(biāo)識(shí)對(duì)應(yīng)的私鑰因子。
26.根據(jù)權(quán)利要求24所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,在橢圓曲線密碼系統(tǒng)中,利用密鑰因子按照公式計(jì)算密鑰;其中,按照公式SKID=Σi=0MS[Ri,Ci]modn]]>計(jì)算私鑰SKID;按照公式SKID=SKID×G計(jì)算公鑰PKID;其中,n和G為橢圓曲線密碼系統(tǒng)的參數(shù)Ri為列標(biāo),Ci為行標(biāo),S[Ri,Ci]為與標(biāo)識(shí)對(duì)應(yīng)的私鑰因子。
27.根據(jù)權(quán)利要求1所述的標(biāo)識(shí)和密鑰的映射方法,其特征在于,采用哈希函數(shù)或消息鑒別碼函數(shù)將所述非定長(zhǎng)二進(jìn)制標(biāo)識(shí)轉(zhuǎn)換為定長(zhǎng)二進(jìn)制標(biāo)識(shí)。
全文摘要
本發(fā)明提供了一種標(biāo)識(shí)和密鑰的映射方法,該方法應(yīng)用于基于標(biāo)識(shí)的組合密鑰管理系統(tǒng)中,在所述系統(tǒng)中已經(jīng)生成密鑰因子矩陣,該方法包括根據(jù)定長(zhǎng)二進(jìn)制標(biāo)識(shí)或由非定長(zhǎng)二進(jìn)制標(biāo)識(shí)轉(zhuǎn)換的定長(zhǎng)二進(jìn)制標(biāo)識(shí)的長(zhǎng)度值檢驗(yàn)密鑰因子矩陣的大?。桓鶕?jù)所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)計(jì)算出密鑰因子在密鑰因子矩陣中相應(yīng)的行標(biāo)組和列標(biāo)組,以定位密鑰因子;利用所述行標(biāo)組和列標(biāo)組對(duì)應(yīng)的密鑰因子計(jì)算與所述定長(zhǎng)二進(jìn)制標(biāo)識(shí)對(duì)應(yīng)的密鑰。本發(fā)明簡(jiǎn)化了標(biāo)識(shí)到密鑰的映射方法,本發(fā)明的映射方法簡(jiǎn)潔高效,易于實(shí)現(xiàn),而且對(duì)于像IPv4、IPv6這類的標(biāo)識(shí)可以實(shí)現(xiàn)標(biāo)識(shí)到密鑰的無(wú)沖突映射。
文檔編號(hào)H04L9/12GK1909445SQ200610115440
公開(kāi)日2007年2月7日 申請(qǐng)日期2006年8月9日 優(yōu)先權(quán)日2006年8月9日
發(fā)明者李春強(qiáng) 申請(qǐng)人:華為技術(shù)有限公司