新四季網

一種標識和密鑰的映射方法

2023-05-24 13:00:46 2

專利名稱:一種標識和密鑰的映射方法
技術領域:
本發明涉及組合密鑰管理技術領域,尤其涉及基於標識的組合密鑰管理技術領域,具體來講是一種標識和密鑰的映射方法。
背景技術:
現代密碼學的安全是建立在密鑰保密而不是算法保密的基礎上的,因此密鑰的管理保護成了信息保密的關鍵。密鑰和密鑰擁有者標識之間的綁定是現代網絡安全研究的最重要內容之一。目前將密鑰和密鑰擁有者標識綁定有兩種方式,一種是通過密鑰來生成密鑰擁有者的標識,CGA(Cryptographically Generated Address)是這種方式的典型代表;另一種方式是通過標識來確定出該標識對應的密鑰,即基於標識的密碼體制。1984年,Shamir提出了基於標識的籤名設想,2001年Don Boneh和Matthew Franklin根據Shamir的設想,提出了以Weil配對方式實現的基於標識的密鑰管理體制。組合公鑰(CPK)密碼體制也是一種基於標識的密鑰管理體制,它可以根據通信對方的標識直接計算出對方的公鑰,在CPK體制中實現標識到密鑰的映射是一個關鍵問題。在一般的公鑰體制中,各用戶的公鑰是直接公布的,有多少用戶,就公布多少個公鑰,而在組合公鑰技術中,各用戶的公鑰不直接公布,而只公布公鑰因子矩陣,各用戶的公鑰則通過公鑰因子矩陣和相關標識計算出來。
在基於標識的組合密鑰管理體制中,文獻([1]南湘浩,陳鍾;網絡安全技術概論;北京,國防工業出版社,2003.7;[2]唐文,南相浩,陳鍾;基於橢圓曲線密鑰系統的組合公鑰技術;計算機工程與應用,2003年21期)給出的由標識到密鑰的映射算法如下所述
首先是計算行標給定行密鑰RowKey,它是系統中一個公開的常量。首先通過一種HASH函數(比如MD5、SHA-1等),將不定長度的標識ID變換成一個固定長度的變量Data1。
即,HASH(ID)=Data1;然後,通過加密算法(如AES)將中間變量Data1作為數據,用行密鑰RowKey加密後得到MAP0;將MAP0作為數據,再用密鑰RowKey加密得出MAP1;類似的直到得出所需的MAP值為止。為了便於說明,設密鑰因子矩陣的大小為32×32。則AESRowKey(Data1)=MAP0;AESRowKey(MAP0)=MAP1;接著,MAP0的16個字節分別用M(本例中M=32)模,得出16個小於M的行標,以MAP
~MAP[15]表示,MAP1的16個字節分別模M後得出16個小於M的行標,以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個行標,用於行的32次選擇。
在行標計算後,進行列標的計算為了避免列標的順序取用,設置列變量的置換算法PMT,其結果是(0,1,2,...,31)的全排列的一種,計算方法如下所示。
首先計算PMT算法所用的密鑰PMT_KEY;AESColKey(ID)=PMT_KEY,ColKey是系統中一個公開的常量。
用PMTPMT_KEY(原序)=PERMUT;原序是0,1,......31的自然序。PERMUT是新的置換。
上述的方法是針對各種類型的標識做出的一種通用的映射方法,該方法計算量大,計算複雜,而且可能存在映射衝突問題。現有方案中,沒有針對象IPv4、IPv6地址這類具有一定特殊性的標識給出一個特定的映射算法,而在實際的場景中,這一類的標識有著非常廣泛的應用。

發明內容
鑑於現有技術中的上述問題,本發明提供了一種標識和密鑰的映射方法,簡化了標識到密鑰的映射計算,映射方法簡潔高效,而且對於具有特殊性的標識可以實現標識到密鑰的無衝突映射。
本發明提供了一種標識和密鑰的映射方法應用於基於標識的組合密鑰管理系統中,在所述系統中已經生成密鑰因子矩陣,所述方法包括步驟步驟1,根據定長二進位標識或由非定長二進位標識轉換的定長二進位標識的長度值檢驗密鑰因子矩陣的大小;步驟2,根據所述定長二進位標識計算出密鑰因子在密鑰因子矩陣中相應的行標組和列標組;步驟3,利用所述行標組和列標組對應的密鑰因子計算與所述定長二進位標識對應的密鑰。
所述步驟1包括對定長二進位標識的長度值進行因子分解;根據因子分解的結果判斷密鑰因子矩陣的大小是否合適;若判斷結果為合適,則執行步驟2。
所述步驟1還包括若判斷結果為不合適,則重新生成密鑰因子矩陣。
所述密鑰因子矩陣的大小表示為M×2n,所述對定長二進位標識的長度值進行因子分解按照公式進行,該公式的表達式為S=M×r+k;其中,S定長二進位標識的長度值;M密鑰因子矩陣的行數;2n密鑰因子矩陣的列數;k≥0且k<M;S、M、k、r、n均為整數。
判斷密鑰因子矩陣的大小是否合適是指判斷r是否大於n;若判斷結果為r≤n<S,則該密鑰因子矩陣的大小合適;若判斷結果為r>n,則所述密鑰因子矩陣的大小不合適;其中,S定長二進位標識的長度值;n、r均為整數。
所述的步驟2包括計算與所述定長二進位標識相應的列標組;對密鑰因子矩陣的所有行標進行置換,得到與所述定長二進位標識相應的行標組。
所述計算與定長二進位標識相應的列標組,包括判斷k<n-r是否成立;如果判斷結果為是,則按照公式計算列標組Ci(ID),該公式的表達式為Ci(ID)=[ID>>(i×r)](2n-1),i=0…M-1;其中,>>表示循環移位運算,ID為所述定長二進位標識;如果判斷結果為否,則按照公式計算列標組Ci(ID),該公式表達式為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;其中,>>表示循環移位運算,ID為所述定長二進位標識;M、k、n、r、i為整數。
所述計算與定長二進位標識相應的列標組,包括按照公式計算列標組Ci(ID),該公式表達式為Ci(ID)={ID>>[i×(r+1)]}(2n-1),i=0...M-1;其中,>>表示循環移位運算;ID為定長二進位標識;n、r、i為整數。
所述計算與定長二進位標識相應的列標組,包括按照公式計算列標組Ci(ID),該公式表達式為Ci(ID)=[ID>>(i×r』)](2n-1),i=0...M-1;其中,>>表示循環移位運算,S>r』>r,r』不是S的因子,ID為定長二進位標識;S為定長二進位標識的長度值;r、r』、n、i為整數。
所述對密鑰因子矩陣的所有行標進行置換,包括直接選取數據序列作為行標組,該數據序列為0,1,......,M-1,其中,M為密鑰因子矩陣的行數。
所述對密鑰因子矩陣的所有行標進行置換,包括將數據序列順序存放、逆序存放或以隨機的順序存放在數組R[i]中,該數據序列為0,1,......,M-1;其中i=0,1,......,M-1;M為密鑰因子矩陣的行數。
所述對密鑰因子矩陣的所有行標進行置換,還包括步驟步驟11,設置i=0;步驟12,判斷ID mod(M-i)<M-i-1是否成立;步驟13,如果步驟12的判斷結果為是,則將R[ID mod(M-i)]和R[M-i-1]交換位置;如果步驟12的判斷結果為否,則執行步驟14;步驟14,設置i=i+1,判斷i是否等於M-2;步驟15,如果步驟14的判斷結果為否,則重複步驟12至步驟15;如果步驟14的判斷結果為是,則置換結束,且經上述步驟處理後的數組R[i]存放的是(0…M-1)的一個置換。
所述對密鑰因子矩陣的所有行標進行置換,還包括步驟步驟21,設置i=0;步驟22,判斷ID mod(M-i)≠0是否成立;步驟23,如果步驟22的判斷結果為是,則將R[(ID mod(M-i))+i]和R[i]交換位置;如果步驟22的判斷結果為否,則執行步驟24;步驟24,設置i=i+1,判斷i是否等於M-2;步驟25,如果步驟24的判斷結果為否,則重複步驟22至步驟25;如果步驟24的判斷結果為是,則置換結束,且經上述步驟處理後的數組R[i]存放的是(0…M-1)的一個置換。
所述密鑰因子矩陣的大小表示為2m×N;對定長二進位標識的長度值進行因子分解按照公式進行,該公式的表達式為S=N×r+k;其中,S定長二進位標識的長度值;2m密鑰因子矩陣的行數;N密鑰因子矩陣的列數;k≥0且k<N;S、N、k、r、m為整數。
判斷密鑰因子矩陣的大小是否合適是指判斷r是否大於m;若判斷結果為r≤m<S,則該密鑰因子矩陣的大小合適;若判斷結果為r>m,則所述密鑰因子矩陣的大小不合適;其中,S定長二進位標識的長度值;m、r為整數。
所述的步驟2包括計算與所述定長二進位標識相應的行標組;對密鑰因子矩陣的所有列標進行置換,得到與所述定長二進位標識相應的列標組。
所述計算與定長二進位標識相應的行標組,包括判斷k<m-r是否成立;若判斷結果為是,則按照公式計算行標組Ci(ID),該公式的表達式為Ci(ID)=[ID>>(i×r)](2m-1),i=0…N-1;若判斷結果為否,則按照公式計算行標組Ci(ID),該公式表達式為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;其中,>>表示循環移位運算,ID為所述的定長二進位標識;N、k、r、m、i為整數。
所述計算與定長二進位標識相應的行標組,包括按照公式計算行標組Ci(ID),該公式表達式為Ci(ID)={ID>>[i×(r+1)]}(2m-1),i=0...N-1;其中,>>表示循環移位運算,ID為所述的定長二進位標識;N、r、m、i為整數。
所述計算與定長二進位標識相應的行標組,包括按照公式計算行標組Ci(ID),該公式表達式為Ci(ID)=[ID>>(i×r』)](2m-1),i=0...N-1;其中,>>表示循環移位運算,S>r』>r,r』不是S的因子,ID為所述的定長二進位標識;r』、r、m、i為整數。
所述對密鑰因子矩陣的所有列標進行置換,包括直接選取數據序列作為列標組,該數據序列為0,1,......,N-1,其中,N為密鑰因子矩陣的列數。
所述對密鑰因子矩陣的所有列標進行置換,包括將數據序列順序存放、逆序存放或以隨機的順序存放在數組R[i]中,該數據序列為0,1,......,N-1;其中i=0,1,......,N-1;N為密鑰因子矩陣的列數。
所述對密鑰因子矩陣的所有列標進行置換,還包括步驟步驟31,設置i=0;步驟32,判斷ID mod(N-i)<N-i-1是否成立;步驟33,如果步驟32的判斷結果為是,則將R[ID mod(N-i)]和R[N-i-1]交換位置;如果步驟32的判斷結果為否,則執行步驟34;步驟34,設置i=i+1,判斷i是否等於N-2;步驟35,如果步驟34的判斷結果為否,則重複步驟32至步驟35;如果步驟34的判斷結果為是,則置換結束,且經上述步驟處理後的數組R[i]存放的是(0…M-1)的一個置換。
所述對密鑰因子矩陣的所有列標進行置換,還包括步驟步驟41,設置i=0;步驟42,判斷ID mod(N-i)≠0是否成立;步驟43,如果步驟42的判斷結果為是,則將R[(ID mod((N-i)+i))和R[i]交換位置;如果步驟42的判斷結果為否,則執行步驟44;步驟44,設置i=i+1,判斷i是否等於N-2;步驟45,如果步驟44的判斷結果為否,則重複步驟42至步驟45;如果步驟44的判斷結果為是,則置換結束,且經上述步驟處理後的數組R[i]存放的是(0…M-1)的一個置換。
所述的步驟3包括從密鑰因子矩陣中選取與所述的行標組和列標組對應的密鑰因子;利用所述密鑰因子計算與所述定長二進位標識對應的密鑰。
在離散對數密碼系統中,利用密鑰因子按照公式計算密鑰;其中,按照公式SKID=i=0MS[Ri,Ci]modp]]>計算私鑰SKID;按照公式PKID=gSKIDmodp]]>計算公鑰PKID;其中,p和g為離散對數密碼系統的參數,Ri為列標,Ci為行標,S[Ri,Ci]為與標識對應的私鑰因子。
在橢圓曲線密碼系統中,利用密鑰因子按照公式計算密鑰;其中,按照公式SKID=i=0MS[Ri,Ci]modn]]>計算私鑰SKID;按照公式SKID=SKID×G計算公鑰PKID;其中,n和G為橢圓曲線密碼系統的參數Ri為列標,Ci為行標,S[Ri,Ci]為與標識對應的私鑰因子。
採用哈希函數或消息鑑別碼函數將所述非定長二進位標識轉換為定長二進位標識。
本發明的有益效果在於,簡化了標識到密鑰的映射計算,映射算法簡潔高效,而且對於具有特殊性的標識可以實現標識到密鑰的無衝突映射。


圖1A和圖1B分別為本發明的公鑰因子矩陣和私鑰因子矩陣的示意圖;圖2為本發明一實施例的方法流程圖;圖3為本發明一實施例的方法流程圖;圖4為本發明一實施例的方法流程圖;圖5為本發明另一實施例的方法流程圖。
具體實施例方式
以下結合附圖詳細說明本發明。
本發明提供了一種標識和密鑰的映射方法,應用於基於標識的組合密鑰管理系統中,在所述系統中已經生成密鑰因子矩陣,所述的方法包括根據定長二進位標識或由非定長二進位標識轉換的定長二進位標識的長度值檢驗密鑰因子矩陣的大小;根據所述定長二進位標識計算出密鑰因子在密鑰因子矩陣中相應的行標組和列標組,以定位密鑰因子;利用所述行標組和列標組對應的密鑰因子計算與所述定長二進位標識對應的密鑰。
其中,所述的標識可以是像IPv4、IPv6地址這類具有一定特殊性的標識,對於像IPv4、IPv6地址這類標識,其特殊性在於,標識本身即為S比特(bit)的二進位標識;對於原始標識是一個由字母、數字等混合元素組成的標識,可以先通過哈希(HASH)或加密算法處理生成一個定長的二進位標識後再進行相應的映射計算,其中,將變長標識變換為定長值的方法可以採用消息鑑別碼(MACMessage Authentication Code)函數或普通的HASH算法。
總之,對於任意一種標識,均能通過本發明提供的標識和密鑰的映射方法實現密鑰和密鑰擁有者標識之間的綁定。
在本發明的實施例中,密鑰因子矩陣包括公鑰因子矩陣和私鑰因子矩陣,密鑰包括公鑰和私鑰,密鑰因子包括公鑰因子和私鑰因子。而且,在實施本發明的映射方法時,系統中已生成了大小為M×N的密鑰因子矩陣,其中N=2n,M=2m。公、私鑰因子矩陣是基於標識的組合密鑰管理體制的基礎。私鑰是在私鑰因子矩陣中按照一定的映射規則在每行(或列)各選取一個私鑰因子通過相應運算計算出;相應的,公鑰是在公鑰因子矩陣中按照一定的映射規則在每行(或列)各選取一個公鑰因子通過相應運算計算出。設私鑰因子矩陣為SKM=[Sij],其中i=0...M-1,j=0...N-1;如果私鑰是從私鑰因子矩陣中每行各選取一個私鑰因子計算出,則對N做限定,要求N=2n,n為正整數;如果私鑰是從私鑰因子矩陣中每列各選取一個私鑰因子計算出,則對M進行限定,要求M=2m,m為正整數。
公私鑰因子無論是按行選取還是按列選取其計算都是類似的。其區別僅在於如果是按行選取,則先計算列標組;再對所有的行標進行置換,即所得到的行標是所有行標的全排列的一種;如果是按列選取,則先計算行標組;再對所有的列標進行置換,即所得到的列標組是所有列標的全排列的一種。
下面結合附圖對本發明進行詳細說明。
實施例一在本實施例中,以公私鑰因子是按行選取為例進行介紹。
如圖1A和圖1B所示分別為私鑰因子矩陣和公鑰因子矩陣示意圖。如圖所示,私鑰因子矩陣為SKM=[Sij],其中i=0...M-1,j=0...N-1;相應的公鑰因子矩陣為PKM=[Pij],其中i=0...M-1,j=0...N-1。
在橢圓曲線密碼系統中,設G是某橢圓曲線的基點,則Pij=Sij×G,即PKM=SKM×G。
在離散對數密碼系統中,T={g,p},其中p是素數,g是有限域Fp生成元,g小於p,則Pij=gSijmodp.]]>通常密鑰因子矩陣的大小關係到系統的安全性,同時也和系統的規模(即用戶數)是相關的,而標識的長度決定了系統中最大的用戶數。
下面,結合圖2至圖4說明本實施例,在圖2至圖4的流程圖中,在實施本發明的映射方法之前,系統中已經生成了大小為M×N的密鑰因子矩陣,其中N=2n,M=2m。將本發明的映射方法分為三個過程密鑰因子矩陣的檢驗過程、行標組和列標組的計算過程和密鑰的計算過程。
需要說明的是,因為對於像IPv4、IPv6地址這類具有S bit的定長二進位標識和包含有由字母、數字等混合元素組成的標識,本發明的映射方法都可以應用。
因此,對於使用類似於DNS域名的通用標識的系統,如圖2所示,在進行密鑰因子矩陣的檢驗之前,需要將通用標識轉換為定長二進位標識,並將其直接作為以下過程中使用的定長二進位標識(見步驟S101)。
對於標識為S bit的定長二進位標識,如圖4所示,可將其直接作為以下過程中使用的定長二進位標識(見步驟S301)。
另外,如圖3所示,還可以選取上述定長二進位標識的一部分作為以下過程中使用的定長二進位標識(見步驟S201)。例如如果密鑰生成中心所管理的範圍是IPv6的一個子網,其子網前綴是n bit,那麼系統在取標識時可以只考慮128-n bit的接口標識部分來決定密鑰因子矩陣的大小以及標識和密鑰間的映射。同理,對於一個使用類似於DNS域名的通用標識的系統,在將通用標識轉換為定長標識時,可以根據系統的規模而只取經過哈希(HASH)函數或消息鑑別碼(MACMessage Authentication Code)函數計算得出的值的一部分進行映射計算即可。
一、密鑰因子矩陣的檢驗過程密鑰因子矩陣的檢驗過程為根據定長二進位標識或由非定長二進位標識轉換的定長二進位標識的長度值檢驗密鑰因子矩陣的大小。
檢驗密鑰因子矩陣的大小包括對定長二進位標識的長度值進行因子分解;根據因子分解的結果判斷密鑰因子矩陣的大小是否合適;如果所述的判斷步驟的結果為是,則進行行標組和列標組的計算過程。如果所述的判斷步驟的結果為否,則重新生成密鑰因子矩陣。
如圖2、圖3和圖4所示,對密鑰因子矩陣的檢驗過程具體如下將定長二進位標識的長度值按照S=M×r+k進行因子分解,其中k≥0且k<M(見步驟S102);如果r≤n<S,則密鑰因子矩陣可用(見步驟S103);如果r>n,則所述密鑰因子矩陣太小,需要重新生成密鑰因子矩陣(見步驟S109),其中M為密鑰因子矩陣的行數,S為定長二進位標識的長度值,k為0或正整數,r、n為正整數。
舉一個特例進行說明將系統中的定長的S bit的二進位標識表示為S=M×r(此時取k=0),依然假定公私鑰是在公私鑰因子矩陣中按照一定的映射規則在每行各選取一個公私鑰因子通過相應運算計算出,則密鑰因子矩陣的大小可以取M×2n』,n』≥n。例如在以IPv6地址為標識的系統中,IPv6地址是128bit,128=32×4,則密鑰因子矩陣的大小可以取為32×24。
二、行標組和列標組的計算過程為了計算一個標識對應的公私鑰,需要找出計算公私鑰的密鑰因子,要定位密鑰因子,則需要根據標識計算出密鑰因子在密鑰因子矩陣中相應的行標組和列標組。
首先,進行列標組的計算。
在上述的密鑰因子矩陣的檢驗過程中,已經將定長二進位標識ID的長度值按照S=M×r+k進行因子分解,其中k≥0且k<M,M為密鑰因子矩陣的行數,S為定長二進位標識的長度值。因為已經經過了上述密鑰因子矩陣的檢驗過程,因此,該公式中的r≤n<S。
下面提供了三種方法通過所述定長二進位標識ID來計算列標組的方法。
第一種方法如圖2所示,計算過程如下如果k<n-r,則計算列標組Ci(ID)=[ID>>(i×r)](2n-1),i=0...M-1;其中,>>表示循環移位運算(見步驟S104、S105);如果k≥n-r,則按照下述公式計算列標組Ci(ID)(見步驟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其中,>>表示循環移位運算。
第二種方法如圖3所示,按下述公式計算列標組Ci(ID)(見步驟S205)Ci(ID)={ID>>[i×(r+1)]}(2n-1),i=0...M-1
其中,>>表示循環移位運算。
第三種方法如圖4所示,按下述公式計算列標組Ci(ID)(見步驟S305)Ci(ID)=[ID>>(i×r』)](2n-1),i=0...M-1其中,>>表示循環移位運算,S>r』>r,要求r』不是的S因子。
其次,進行行標組的計算。
密鑰因子從密鑰因子矩陣的每一行選取一個,因此行標組是(0...M-1)的一個置換,如圖2所示,最簡單的方式就是直接選取0...M-1(見步驟S106)。
此外,還可以通過下述兩種方法進行行標置換第一種方法如圖3所示,見步驟S206~S212,把0...M-1順序放在數組R
...R[M-1]。然後執行下面的運算步驟1)設置i=0;2)判斷ID mod(M-i)<M-i-1是否成立;3)如果2)的結果為是,則將R[ID mod(M-i)]和R[M-i-1]交換位置;如果2)的結果為否,則執行4);4)設置i=i+1,重複步驟2)至4),直到i=M-2時結束。
經過上面處理後的數組R
...R[M-1]存放的是(0...M-1)的一個置換。則置換後的數組存放的數據序列為行標組。
第二種方法如圖4所示,見步驟S306至步驟S312,把0...M-1逆序放在數組A
...A[M-1]。然後執行下面的運算步驟1』)設置i=0;2』)判斷ID mod(M-i)≠0是否成立;3』)如果2』)的判斷結果為是,則將A[ID mod(M-i)]和A[i]交換位置;如果2』)的判斷結果為否,執行4』);
4』)設置i=i+1,重複步驟2』)至4』),直到i=M-2時結束。
經過上面處理後的數組A
...A[M-1]存放的是(0...M-1)的一個置換。則置換後的數組存放的數據序列為行標組。
在圖3所示的步驟S206和圖4所示的步驟S306中,把0...M-1放在數組中的順序可以是順序存放、逆序存放、也可以是以隨機的順序存放。
三、密鑰的計算過程在計算出所述標識對應的列標組和行標組後,從密鑰因子矩陣中選取與所述的行標組和列標組對應的密鑰因子(見步驟S107)。例如設密鑰因子矩陣的大小為16×64,即M=16,N=64,組成公私鑰的密鑰因子是按行從密鑰因子矩陣中選取的。假如對於一個標識ID,根據上面給出的映射方法,可以計算出作為列標16個值為(8,2,62,......,33),相應的行標置換(3,8,1,......,12),於是在私鑰因子矩陣中取S3,8,S8,2,S1,62,......,S12,33計算出ID對應的私鑰;相應的標識ID對應的公鑰從公鑰因子矩陣中取P3,8,P8,2,P1,62,......,P12,33計算出。
在得到標識對應的行標組和列標組後,再進行公私鑰對的計算(見步驟S108)。
由於私鑰是需要保密的,只有密鑰管理中心才能保存私鑰因子矩陣,私鑰的生成只能在密鑰管理中心進行,生成後發放給相應的實體,系統中的每個實體並不知道用於計算自身私鑰的每個私鑰因子;每個標識的公鑰在整個密鑰管理中心所管理的域內是公開的,所以公鑰因子矩陣是需要公開的。
在離散對數密碼系統,系統參數T={g,p},其中p是素數,g是有限域Fp生成元,g小於p。一個標識ID對應的列標為C0,C1~CM-1,相應的行標為R0,R1~RM-1,S[Ri,Ci]為與標識對應的私鑰因子,則標識ID對應的私鑰SKID=i=0MS[Ri,Ci]modp;]]>對應的公鑰
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(a,b,G,n,p),其中p是正整數,Fp是有限域,a,b是Fp上的正整數,G是橢圓曲線E(Fp)上的基點,n是素數,是基點G的階。一個標識ID對應的列標為C0,C1~CM-1,相應的行標為R0,R1~RM-1,則標識ID對應的私鑰SKID=i=0MS[Ri,Ci]modn;]]>對應的公鑰SKID=i=0MP[Ri,Ci]modp=SKIDG.]]>實施例二在本實施例中,根據圖5對公私鑰因子按列選取進行說明。公私鑰因子無論是按行選取還是按列選取,其計算都是類似。
同樣採用如圖1A和圖1B的私鑰因子矩陣和公鑰因子矩陣。執行本實施例的方法之前,系統中已經生成了大小為M×N的密鑰因子矩陣,其中N=2n,M=2m。在本實施例中將密鑰因子矩陣的大小表示為S=2m×N。本實施例的映射方法也分為三個過程密鑰因子矩陣的檢驗過程、行標組和列標組的計算過程和密鑰的計算過程。
同樣對於向IPv4、IPv6地址這類具有S bit的定長二進位標識和包含有由字母、數字等混合元素組成的非定長的二進位標識,本發明的映射方法都可以使用。在圖5的流程圖中,在實施本發明的映射方法之前,系統中已經生成了大小為M×N的密鑰因子矩陣,其中N=2n,M=2m,m為正整數。如圖5所示的標識為通用標識,需要將標識轉換為二進位標識,並選取一部分作為下述步驟中的定長二進位標識(見步驟S401)。
一、密鑰因子矩陣的檢驗過程密鑰因子矩陣的檢驗過程與實施例一相同,只是在因子分解時,以密鑰因子矩陣的列數N代替密鑰因子矩陣的行數M。具體過程如圖5的步驟S402、步驟S403和步驟S409將定長二進位標識的長度值S按照S=N×r+k進行因子分解,其中k≥0且k<N;如果r≤m<S,則密鑰因子矩陣可用;如果r>m,則所述密鑰因子矩陣太小,需要重新生成密鑰因子矩陣。
二、行標組和列標組的計算過程在本實施例申由於是按列選取密鑰因子,因此,需要現進行行標組的計算,再對列標組進行置換。
首先,進行行標組的計算。
在上述的密鑰因子矩陣的檢驗過程中,已經將定長二進位標識ID按照S=N×r+k進行因子分解,其中k≥0且k<N,N為密鑰因子矩陣的列數。因為已經經過了密鑰因子矩陣的檢驗過程,因此,該公式中的r≤m<S。通過所述的定長二進位標識ID來計算行標組同樣有三種方法第一種方法(圖中未示出)是按照如下的公式計算行標組Ci(ID)如果k<m-r,Ci(ID)=[ID>>(i×r)](2m-1),i=0...N-1其中,>>表示循環移位運算;如果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,其中,>>表示循環移位運算。
第二種方法(圖中未示出)按照如下的公式計算行標組Ci(ID)Ci(ID)={ID>>[i×(r+1)]}(2m-1),i=0...N-1其中,>>表示循環移位運算。
第三種方法,見圖5中的步驟S405,按照如下的公式計算行標組Ci(ID),Ci(ID)=[ID>>(i×r』)](2m-1),i=0...N-1其中,>>表示循環移位運算,S>r』>r,要求r』不是S的因子。
接著,進行列標組的計算。
密鑰因子從密鑰因子矩陣的每一列選取一個,因此列標組是(0...N-1)的一個置換,最簡單的方式就是直接選取0...N-1(圖中未示出)。此外,同樣進行置換也可以通過實施例一中的兩種方法稍作變化即可第一種方法(圖中未示出),把0...N-1順序存放、逆序存放或以隨機的順序存放在數組R
...R[N-1]。然後執行下面的運算步驟1)設置i=0;2)判斷ID mod(N-i)<N-i-1是否成立;3)如果2)的結果為是,則將R[ID mod(N-I)]和R[N-i-1]交換位置;如果2)的結果為否,則執行4);4)設置i=i+1,重複步驟2)至4),直到i=N-2時結束。
經過上面處理後的數組R
...R[N-1]存放的是(0...N-1)的一個置換。則置換後的數組存放的數據序列為列標組。
如圖5的步驟S406至步驟S412所示為第二種方法,把0...N-1順序存放、逆序存放或以隨機的順序存放在數組A
...A[N-1]。然後執行下面的運算步驟1』)設置i=0;2』)判斷ID mod(N-i)≠0是否成立;3』)如果2』)的結果為是,則將A[ID mod(N-I)]和A[i]交換位置;如果2』)的結果為否,則執行4』);4』)設置i=i+1,重複步驟2』)至4』),直到i=N-2時結束。
經過上面處理後的數組A
...A[N-1]存放的是(0...N-1)的一個置換。則置換後的數組存放的數據序列為列標組。
三、密鑰的計算過程與實施例一相同,在此不再贅述。
通過本發明,簡化了標識到密鑰的映射方法,映射方法簡潔高效,易於實現,而且對於IPv4、IPv6這類的標識可以實現標識到密鑰的無衝突映射。
上述實施例僅用於說明本發明,而非用於限定本發明。
權利要求
1.一種標識和密鑰的映射方法,應用於基於標識的組合密鑰管理系統中,在所述系統中已經生成密鑰因子矩陣,其特徵在於,所述方法包括步驟步驟1,根據定長二進位標識或由非定長二進位標識轉換的定長二進位標識的長度值檢驗密鑰因子矩陣的大小;步驟2,根據所述定長二進位標識計算出密鑰因子在密鑰因子矩陣中相應的行標組和列標組;步驟3,利用所述行標組和列標組對應的密鑰因子計算與所述定長二進位標識對應的密鑰。
2.根據權利要求1所述的標識和密鑰的映射方法,其特徵在於,所述步驟1包括對定長二進位標識的長度值進行因子分解;根據因子分解的結果判斷密鑰因子矩陣的大小是否合適;若判斷結果為合適,則執行步驟2。
3.根據權利要求2所述的標識和密鑰的映射方法,其特徵在於,所述步驟1還包括若判斷結果為不合適,則重新生成密鑰因子矩陣。
4.根據權利要求2或3所述的標識和密鑰的映射方法,其特徵在於,所述密鑰因子矩陣的大小表示為M×2n,所述對定長二進位標識的長度值進行因子分解按照公式進行,該公式的表達式為S=M×r+k;其中,S定長二進位標識的長度值;M密鑰因子矩陣的行數;2n密鑰因子矩陣的列數;k≥0且k<M;S、M、k、r、n均為整數。
5.根據權利要求4所述的標識和密鑰的映射方法,其特徵在於,判斷密鑰因子矩陣的大小是否合適是指判斷r是否大於n;若判斷結果為r≤n<S,則該密鑰因子矩陣的大小合適;若判斷結果為r>n,則所述密鑰因子矩陣的大小不合適;其中,S定長二進位標識的長度值;n、r均為整數。
6.根據權利要求4所述的標識和密鑰的映射方法,其特徵在於,所述的步驟2包括計算與所述定長二進位標識相應的列標組;對密鑰因子矩陣的所有行標進行置換,得到與所述定長二進位標識相應的行標組。
7.根據權利要求6所述的標識和密鑰的映射方法,其特徵在於,所述計算與定長二進位標識相應的列標組,包括判斷k<n-r是否成立;如果判斷結果為是,則按照公式計算列標組Ci(ID),該公式的表達式為Ci(ID)=[ID(i×r)](2n-1),i=0…M-1;其中,>>表示循環移位運算,ID為所述定長二進位標識;如果判斷結果為否,則按照公式計算列標組Ci(ID),該公式表達式為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;其中,>>表示循環移位運算,ID為所述定長二進位標識;M、k、n、r、i為整數。
8.根據權利要求6所述的標識和密鑰的映射方法,其特徵在於,所述計算與定長二進位標識相應的列標組,包括按照公式計算列標組Ci(ID),該公式表達式為Ci(ID)={ID[i×(r+1)]}(2n-1),i=0...M-1;其中,表示循環移位運算;ID為定長二進位標識;n、r、i為整數。
9.根據權利要求6所述的標識和密鑰的映射方法,其特徵在於,所述計算與定長二進位標識相應的列標組,包括按照公式計算列標組Ci(ID),該公式表達式為Ci(ID)=[ID(i×r』)](2n-1),i=0...M-1其中,表示循環移位運算,S>r』>r,r』不是S的因子,ID為定長二進位標識;S為定長二進位標識的長度值;r、r』、n、i為整數。
10.根據權利要求6所述的標識和密鑰的映射方法,其特徵在於,所述對密鑰因子矩陣的所有行標進行置換,包括直接選取數據序列作為行標組,該數據序列為0,1,......,M-1,其中,M為密鑰因子矩陣的行數。
11.根據權利要求6所述的標識和密鑰的映射方法,其特徵在於,所述對密鑰因子矩陣的所有行標進行置換,包括將數據序列順序存放、逆序存放或以隨機的順序存放在數組R[i]中,該數據序列為0,1,......,M-1;其中i=0,1,......,M-1;M為密鑰因子矩陣的行數。
12.根據權利要求11所述的標識和密鑰的映射方法,其特徵在於,所述對密鑰因子矩陣的所有行標進行置換,還包括步驟步驟11,設置i=0;步驟12,判斷ID mod(M-i)<M-i-1是否成立;步驟13,如果步驟12的判斷結果為是,則將R[ID mod(M-i)]和R[M-i-1]交換位置;如果步驟12的判斷結果為否,則執行步驟14;步驟14,設置i=i+1,判斷i是否等於M-2;步驟15,如果步驟14的判斷結果為否,則重複步驟12至步驟15;如果步驟14的判斷結果為是,則置換結束,且經上述步驟處理後的數組R[i]存放的是(0…M-1)的一個置換。
13.根據權利要求11所述的標識和密鑰的映射方法,其特徵在於,所述對密鑰因子矩陣的所有行標進行置換,還包括步驟步驟21,設置i=0;步驟22,判斷ID mod(M-i)≠0是否成立;步驟23,如果步驟22的判斷結果為是,則將R[(ID mod(M-i))+i]和R[i]交換位置;如果步驟22的判斷結果為否,則執行步驟24;步驟24,設置i=i+1,判斷i是否等於M-2;步驟25,如果步驟24的判斷結果為否,則重複步驟22至步驟25;如果步驟24的判斷結果為是,則置換結束,且經上述步驟處理後的數組R[i]存放的是(0…M-1)的一個置換。
14.根據權利要求2或3所述的標識和密鑰的映射方法,其特徵在於,所述密鑰因子矩陣的大小表示為2m×N;對定長二進位標識的長度值進行因子分解按照公式進行,該公式的表達式為S=N×r+k;其中,S定長二進位標識的長度值;2m密鑰因子矩陣的行數;N密鑰因子矩陣的列數;k≥0且k<N;S、N、k、r、m為整數。
15.根據權利要求14所述的標識和密鑰的映射方法,其特徵在於,判斷密鑰因子矩陣的大小是否合適是指判斷r是否大於m;若判斷結果為r≤m<S,則該密鑰因子矩陣的大小合適;若判斷結果為r>m,則所述密鑰因子矩陣的大小不合適;其中,S定長二進位標識的長度值;m、r為整數。
16.根據權利要求14所述的標識和密鑰的映射方法,其特徵在於,所述的步驟2包括計算與所述定長二進位標識相應的行標組;對密鑰因子矩陣的所有列標進行置換,得到與所述定長二進位標識相應的列標組。
17.根據權利要求16所述的標識和密鑰的映射方法,其特徵在於,所述計算與定長二進位標識相應的行標組,包括判斷k<m-r是否成立;若判斷結果為是,則按照公式計算行標組Ci(ID),該公式的表達式為Ci(ID)=[ID(i×r)](2m-1),i=0…N-1;若判斷結果為否,則按照公式計算行標組Ci(ID),該公式表達式為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;其中,表示循環移位運算,ID為所述的定長二進位標識;N、k、r、m、i為整數。
18.根據權利要求16所述的標識和密鑰的映射方法,其特徵在於,所述計算與定長二進位標識相應的行標組,包括按照公式計算行標組Ci(ID),該公式表達式為Ci(ID)={ID[i×(r+1)]}(2m-1),i=0...N-1;其中,表示循環移位運算,ID為所述的定長二進位標識;N、r、m、i為整數。
19.根據權利要求16所述的標識和密鑰的映射方法,其特徵在於,所述計算與定長二進位標識相應的行標組,包括按照公式計算行標組Ci(ID),該公式表達式為Ci(ID)=[ID(i×r』)](2m-1),i=0...N-1其中,表示循環移位運算,S>r』>r,r』不是S的因子,ID為所述的定長二進位標識;r』、r、m、i為整數。
20.根據權利要求16所述的標識和密鑰的映射方法,其特徵在於,所述對密鑰因子矩陣的所有列標進行置換,包括直接選取數據序列作為列標組,該數據序列為0,1,......,N-1,其中,N為密鑰因子矩陣的列數。
21.根據權利要求16所述的標識和密鑰的映射方法,其特徵在於,所述對密鑰因子矩陣的所有列標進行置換,包括將數據序列順序存放、逆序存放或以隨機的順序存放在數組R[i]中,該數據序列為0,1,......,N-1;其中i=0,1,......,N-1;N為密鑰因子矩陣的列數。
22.根據權利要求21所述的標識和密鑰的映射方法,其特徵在於,所述對密鑰因子矩陣的所有列標進行置換,還包括步驟步驟31,設置i=0;步驟32,判斷ID mod(N-i)<N-i-1是否成立;步驟33,如果步驟32的判斷結果為是,則將R[ID mod(N-i)]和R[N-i-1]交換位置;如果步驟32的判斷結果為否,則執行步驟34;步驟34,設置i=i+1,判斷i是否等於N-2;步驟35,如果步驟34的判斷結果為否,則重複步驟32至步驟35;如果步驟34的判斷結果為是,則置換結束,且經上述步驟處理後的數組R[i]存放的是(0…M-1)的一個置換。
23.根據權利要求21所述的標識和密鑰的映射方法,其特徵在於,所述對密鑰因子矩陣的所有列標進行置換,還包括步驟步驟41,設置i=0;步驟42,判斷ID mod(N-i)≠0是否成立;步驟43,如果步驟42的判斷結果為是,則將R[(ID mod((N-i)+i))和R[i]交換位置;如果步驟42的判斷結果為否,則執行步驟44;步驟44,設置i=i+1,判斷i是否等於N-2;步驟45,如果步驟44的結果為否,則重複步驟42至步驟45;如果步驟44的結果為是,則置換結束,且經上述步驟處理後的數組R[i]存放的是(0…M-1)的一個置換。
24.根據權利要求1所述的標識和密鑰的映射方法,其特徵在於,所述的步驟3包括從密鑰因子矩陣中選取與所述的行標組和列標組對應的密鑰因子;利用所述密鑰因子計算與所述定長二進位標識對應的密鑰。
25.根據權利要求24所述的標識和密鑰的映射方法,其特徵在於,在離散對數密碼系統中,利用密鑰因子按照公式計算密鑰;其中,按照公式SKID=i=0MS[Ri,Ci]modp]]>計算私鑰SKID;按照公式PKID=gSKIDmodp]]>計算公鑰PKID;其中,p和g為離散對數密碼系統的參數,Ri為列標,Ci為行標,S[Ri,Ci]為與標識對應的私鑰因子。
26.根據權利要求24所述的標識和密鑰的映射方法,其特徵在於,在橢圓曲線密碼系統中,利用密鑰因子按照公式計算密鑰;其中,按照公式SKID=i=0MS[Ri,Ci]modn]]>計算私鑰SKID;按照公式SKID=SKID×G計算公鑰PKID;其中,n和G為橢圓曲線密碼系統的參數Ri為列標,Ci為行標,S[Ri,Ci]為與標識對應的私鑰因子。
27.根據權利要求1所述的標識和密鑰的映射方法,其特徵在於,採用哈希函數或消息鑑別碼函數將所述非定長二進位標識轉換為定長二進位標識。
全文摘要
本發明提供了一種標識和密鑰的映射方法,該方法應用於基於標識的組合密鑰管理系統中,在所述系統中已經生成密鑰因子矩陣,該方法包括根據定長二進位標識或由非定長二進位標識轉換的定長二進位標識的長度值檢驗密鑰因子矩陣的大小;根據所述定長二進位標識計算出密鑰因子在密鑰因子矩陣中相應的行標組和列標組,以定位密鑰因子;利用所述行標組和列標組對應的密鑰因子計算與所述定長二進位標識對應的密鑰。本發明簡化了標識到密鑰的映射方法,本發明的映射方法簡潔高效,易於實現,而且對於像IPv4、IPv6這類的標識可以實現標識到密鑰的無衝突映射。
文檔編號H04L9/12GK1909445SQ200610115440
公開日2007年2月7日 申請日期2006年8月9日 優先權日2006年8月9日
發明者李春強 申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀