密鑰生成裝置及方法
【技術領域】
[0001]本發(fā)明公開的實施例涉及密鑰的生成和頒發(fā),具體而言涉及一種基于用戶ID信息而生成用戶的私鑰(private key)之類的加密密鑰(cryptographic key)的技術。
【背景技術】
[0002]與通常的基于公鑰(public key)的加密方法不同,大多數(shù)基于ID的加密(Identity Based Cryptography:IBC)方法為了加密和解密而需要配對(pairing)運算。作為替代方案,介紹有利用陷門離散對數(shù)(Trapdoor Discrete Logarithm:TDL)群的IBC方法。對于這樣的TDL-1BC方式而言,由于在客戶端側(cè)執(zhí)行加密/解密時伴隨著比配對運算簡單的運算,因此如果應用于移動通信終端之類的裝置則可能比其它IBC方式更加有用。
[0003]TDL-1BC方式是利用在關于陷門的信息不被知曉的情況下實際上難以求解的離散對數(shù)問題而生成密鑰。只是,如果根據(jù)這一方式,則在提取對應于用戶ID的私鑰的過程中可能會需要數(shù)量龐大的資源,且頒發(fā)私鑰所需的時間也可能過長。這意味著隨著用戶數(shù)量的增加將會產(chǎn)生更加過多的費用。因此,需要一種用于實際應用基于TDL群之類的離散對數(shù)循環(huán)群的IBC方法的新路徑。
[0004][現(xiàn)有技術文獻]
[0005][專利文獻]
[0006]韓國授權(quán)專利公報第10-1166129號(2012.07.10授權(quán)登記)
【發(fā)明內(nèi)容】
[0007]本發(fā)明公開的實施例用于提供一種基于用戶ID信息而生成加密密鑰并預先計算所需的特定信息的改善的技術方案。
[0008]根據(jù)示例性實施例,提供一種密鑰生成裝置,包括:輸入分析器,由用戶ID信息識別多個符號,并由所述多個符號導出至少一個排列(permutat1n);密鑰生成器,獲取多個預計算密鑰,所述多個預計算密鑰包括分別對應于所述多個符號的多個第一預計算密鑰以及分別對應于所述至少一個排列的至少一個第二預計算密鑰,并由所述多個預計算密鑰生成對應于所述用戶ID信息的加密密鑰。
[0009]所述多個預計算密鑰可分別表示循環(huán)群內(nèi)的元素的值,所述值可以與所述多個符號中的一個或所述至少一個排列中的一個相關。
[0010]所述密鑰生成器可構(gòu)成為對所述多個預計算密鑰應用數(shù)學變換以生成所述加密密鑰。
[0011 ] 所述多個符號分別可以是多個候選符號中的一個,所述至少一個排列分別可以是多個候選排列中的一個,所述多個候選排列分別可以由所述多個候選符號中的至少一部分
B山寸出ο
[0012]所述密鑰生成裝置還可以包括存儲有多個子密鑰的存儲單元,所述多個子密鑰可排列為預先設定的第一個數(shù)的子密鑰組,所述密鑰生成器可構(gòu)成為對預先設定的第一個數(shù)的子密鑰組中的一個或多個子密鑰組進行檢索以從所述存儲單元獲取所述多個第一預計算密鑰以及所述至少一個第二預計算密鑰,所述預先設定的第一個數(shù)的子密鑰組分別可包括多個第一子密鑰和多個第二子密鑰,且所述多個第一子密鑰中的各個第一子密鑰可對應于所述多個候選符號中的各個候選符號以用于從所述存儲單元獲取所述多個第一預計算密鑰,而所述多個第二子密鑰中的各個第二子密鑰可對應于所述多個候選排列中的各個候選排列以用于從所述存儲單元獲取所述至少一個第二預計算密鑰。
[0013]所述多個候選排列分別可以是預先設定的第二個數(shù)的符號索引的至少一部分的排列,且所述輸入分析器可將所述多個符號分別與多個符號索引關聯(lián)起來以作為所述至少一個排列而導出所述預先設定的第二個數(shù)的符號索引中的多個符號索引的排列。
[0014]所述預先設定的第一個數(shù)為1。
[0015]所述多個候選排列分別可以是預先設定的第二個數(shù)的符號索引中的至少一部分的排列,所述輸入分析器可將所述多個符號分段為多個符號組,且所述至少一個排列可包括分別對應于所述多個符號組的多個排列,而所述多個符號組中的各個符號組包括所述多個符號中的至少一個符號,所述輸入分析器可針對所述各個符號組而將所述至少一個符號分別與至少一個符號索引關聯(lián)起來,以作為所述多個排列中的對應排列而導出所述預先設定的第二個數(shù)的符號索引中的至少一個符號索引的排列。
[0016]所述預先設定的第一個數(shù)可以是2以上,所述密鑰生成器可構(gòu)成為識別對應的子密鑰組,以用于針對所述各個符號組而通過檢索所述多個子密鑰組中的對應子密鑰組而從所述存儲單元獲取所述多個第一預計算密鑰中的至少一個第一預計算密鑰以及所述至少一個第二預計算密鑰中的一個第二預計算密鑰,而且所述至少一個第一預計算密鑰分別可以對應于所述至少一個符號,且所述一個第二預計算密鑰可對應于所述至少一個符號索引的所述排列。
[0017]所述密鑰生成裝置還可以包括:預計算器,在所述輸入分析器識別所述多個符號之前計算所述多個子密鑰而存儲于所述存儲單元。
[0018]所述各個第一子密鑰可表示離散對數(shù)循環(huán)群內(nèi)的第一元素的第一離散對數(shù)值,所述各個第二子密鑰可表示所述離散對數(shù)循環(huán)群內(nèi)的第二元素的第二離散對數(shù)值,且所述預計算器可由所述各個候選符號生成所述第一元素以計算所述第一離散對數(shù)值,并由所述各個候選排列生成所述第二元素以計算所述第二離散對數(shù)值。
[0019]所述預計算器可將哈希函數(shù)應用于所述各個候選符號以生成所述第一元素,并將所述哈希函數(shù)應用于所述各個候選排列以生成所述第二元素。
[0020]根據(jù)另一示例性實施例,提供一種密鑰生成方法,包括如下步驟:由用戶ID信息識別多個符號;由所述多個符號導出至少一個排列;獲取多個預計算密鑰,所述多個預計算密鑰包括分別對應于所述多個符號的多個第一預計算密鑰以及分別對應于所述至少一個排列的至少一個第二預計算密鑰;由所述多個預計算密鑰生成對應于所述用戶ID信息的加密密鑰。
[0021]所述多個預計算密鑰分別可以表示循環(huán)群內(nèi)的元素的值,所述值可以與所述多個符號中的一個或所述至少一個排列中的一個相關。
[0022]所述密鑰生成方法還可以包括如下步驟:對所述多個預計算密鑰應用數(shù)學變換以生成所述加密密鑰。
[0023]所述多個符號分別可以是多個候選符號中的一個,所述至少一個排列分別可以是多個候選排列中的一個,所述多個候選排列分別可以由所述多個候選符號中的至少一部分
B山寸出ο
[0024]所述密鑰生成方法還可以包括將多個子密鑰存儲于存儲單元的步驟,且所述多個子密鑰可排列為預先設定的第一個數(shù)的子密鑰組,所述密鑰生成方法還可以包括對預先設定的第一個數(shù)的子密鑰組中的一個或多個子密鑰組進行檢索以從所述存儲單元獲取所述多個第一預計算密鑰以及所述至少一個第二預計算密鑰的步驟,所述預先設定的第一個數(shù)的子密鑰組分別可以包括多個第一子密鑰和多個第二子密鑰,且所述多個第一子密鑰中的各個第一子密鑰可對應于所述多個候選符號中的各個候選符號以用于從所述存儲單元獲取所述多個第一預計算密鑰,而所述多個第二子密鑰中的各個第二子密鑰可對應于所述多個候選排列中的各個候選排列以用于從所述存儲單元獲取所述至少一個第二預計算密鑰。
[0025]所述多個候選排列分別可以是預先設定的第二個數(shù)的符號索引的至少一部分的排列,且所述密鑰生成方法還可以包括如下步驟:將所述多個符號分別與多個符號索引關聯(lián)起來以作為所述至少一個排列而導出所述預先設定的第二個數(shù)的符號索引中的多個符號索引的排列。
[0026]所述預先設定的第一個數(shù)可以是1。
[0027]所述多個候選排列分別可以是預先設定的第二個數(shù)的符號索引中的至少一部分的排列,所述密鑰生成方法還可以包括將所述多個符號分段為多個符號組的步驟,且所述至少一個排列可包括分別對應于所述多個符號組的多個排列,而所述多個符號組中的各個符號組可包括所述多個符號中的至少一個符號,所述密鑰生成方法還可以包括如下步驟:針對所述各個符號組而將所述至少一個符號分別與至少一個符號索引關聯(lián)起來,以作為所述多個排列中的對應排列而導出所述預先設定的第二個數(shù)的符號索引中的至少一個符號索引的排列。
[0028]所述預先設定的第一個數(shù)可以是2以上,所述密鑰生成方法還可以包括識別對應的子密鑰組的步驟,以用于針對所述各個符號組而通過檢索所述多個子密鑰組中的對應子密鑰組而從所述存儲單元獲取所述多個第一預計算密鑰中的至少一個第一預計算密鑰以及所述至少一個第二預計算密鑰中的一個第二預計算密鑰,而且所述至少一個第一預計算密鑰分別可以對應于所述至少一個符號,且所述一個第二預計算密鑰可對應于所述至少一個符號索引的所述排列。
[0029]所述密鑰生成方法在進行所述識別的步驟之前,還可以包括如下步驟:計算所述多個子密鑰以將所述多個子密鑰存儲于所述存儲單元。
[0030]所述各個第一子密鑰可表示離散對數(shù)循環(huán)群內(nèi)的第一元素的第一離散對數(shù)值,所述各個第二子密鑰可表示所述離散對數(shù)循環(huán)群內(nèi)的第二元素的第二離散對數(shù)值,且所述密鑰生成方法還可以包括如下步驟:由所述各個候選符號生成所述第一元素以計算所述第一離散對數(shù)值;由所述各個候選排列生成所述第二元素以計算所述第二離散對數(shù)值。
[0031]所述密鑰生成方法還可以包括如下步驟:將哈希函數(shù)應用于所述各個候選符號以生成所述第一元素;將所述哈希函數(shù)應用于所述各個候選排列以生成所述第二元素。
[0032]根據(jù)又一示例性實施例,提供一種存儲于介質(zhì)的計算機程序,用于與硬件結(jié)合而執(zhí)行如下步驟:由用戶ID信息識別多個符號;由所述多個符號導出至少一個排列;獲取多個預計算密鑰,所述多個預計算密鑰包括分別對應于所述多個符號的多個第一預計算密鑰以及分別對應于所述至少一個排列的至少一個第二預計算密鑰;由所述多個預計算密鑰生成對應于所述用戶ID信息的加密密鑰。
[0033]根據(jù)預定的實施例,基于用戶ID而生成私鑰之類的加密密鑰所需的時間可以顯著減少,并能夠?qū)崟r頒發(fā)那樣的密鑰。
[0034]根據(jù)預定的實施例,可減少現(xiàn)有技術中的TDL-1BC所要求的相當多的數(shù)量的預計笪并ο
[0035]根據(jù)預定的實施例,可以用低成本構(gòu)建有效的密鑰頒發(fā)服務器。
【附圖說明】
[0036]圖1為表示根據(jù)示例性實施例的密鑰生成系統(tǒng)的圖。
[0037]圖2為用于說明根據(jù)示例性實施例而由用戶ID信息內(nèi)的符號導出排列的情形的圖。
[0038]圖3為用于說明根據(jù)示例性實施例而將用戶ID信息