保留格式的數(shù)值型個(gè)人識(shí)別信息的加密方法
【專利摘要】本發(fā)明公開了一種保留格式的數(shù)值型個(gè)人識(shí)別信息(比如身份證號(hào)、銀行卡號(hào)等)的加密方法,使其在原有格式保持不變的前提下,達(dá)到加密的目的。本方法首先根據(jù)個(gè)人識(shí)別信息的特征,將其劃分為不同的數(shù)據(jù)分段,并通過不同的整數(shù)有限域來描述各個(gè)分段的元素集合。然后,將各個(gè)分段的元素連接起來,輸入到Feistel網(wǎng)絡(luò)。最后,基于指定的密鑰,在自定義的偽隨機(jī)函數(shù)與模加、模減運(yùn)算的作用下,輸出與原有數(shù)據(jù)具有相同格式的密文數(shù)據(jù)。本發(fā)明為已有數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中數(shù)值型個(gè)人識(shí)別信息的加密保護(hù)提供了可能。
【專利說明】保留格式的數(shù)值型個(gè)人識(shí)別信息的加密方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)加密領(lǐng)域,具體涉及一種保留格式的數(shù)值型個(gè)人識(shí)別信息的加密方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的快速發(fā)展,各種入侵手段越來越多,導(dǎo)致許多存儲(chǔ)在節(jié)點(diǎn)、數(shù)據(jù)庫(kù)中的敏感數(shù)據(jù)被竊取,根本原因在于它們對(duì)這些敏感數(shù)據(jù)的存儲(chǔ)仍然采用明文的方式,而加密是增強(qiáng)所存儲(chǔ)的敏感數(shù)據(jù)安全性的最有效方式。但是,傳統(tǒng)的加密算法,比如AES、3DES等,將會(huì)破壞數(shù)據(jù)的格式,使得加密后的數(shù)據(jù)無法在原有的數(shù)據(jù)庫(kù)或節(jié)點(diǎn)中存儲(chǔ),而且會(huì)破壞已有的業(yè)務(wù)系統(tǒng)的功能。數(shù)值型個(gè)人識(shí)別信息,包括身份證號(hào)、銀行卡號(hào)等,是一類非常重要的敏感數(shù)據(jù),具有特殊的格式要求,如何對(duì)這些信息加密卻不破壞其固有的格式,以確?,F(xiàn)有的業(yè)務(wù)系統(tǒng)、數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)盡可能少的改動(dòng),是一個(gè)必須要解決的問題。
【發(fā)明內(nèi)容】
[0003]本發(fā)明目的是解決傳統(tǒng)的加密算法會(huì)破壞數(shù)據(jù)的格式,使得加密后的數(shù)據(jù)無法在原有的數(shù)據(jù)庫(kù)或節(jié)點(diǎn)中存儲(chǔ)的問題,提供一種保留格式的數(shù)值型個(gè)人識(shí)別信息的加密方法。
[0004]本發(fā)明通過將數(shù)值型個(gè)人識(shí)別信息分段并定義不同分段的值域,采用自定義的偽隨機(jī)函數(shù)、模加與模減運(yùn)算,采用Feistel網(wǎng)絡(luò)執(zhí)行偶數(shù)輪次的輪運(yùn)算,以實(shí)現(xiàn)保留格式不變的加密。
[0005]本發(fā)明提供的保留格式的數(shù)值型個(gè)人識(shí)別信息的加密方法,包括如下步驟:
第1、將一個(gè)合法的數(shù)值型個(gè)人識(shí)別信息劃分為η個(gè)數(shù)據(jù)分段:I = { I1 , I2,…,IJ,每個(gè)數(shù)據(jù)分段均可用一個(gè)整數(shù)有限域來表達(dá);
第2、設(shè)定Feistel網(wǎng)絡(luò)的輪次數(shù)r與輪函數(shù)所使用的密鑰k,其中輪次數(shù)r為大于等于12的偶數(shù);
第3、使用input = I1 I i2 I…Il 1表示一個(gè)合法的數(shù)值型個(gè)人識(shí)別信息,其中:ii e I1, i2 e 12,…,in e In。將 input =I1 | i2 1...1 I in 作為 Feistel 網(wǎng)絡(luò)的輸入,如果η是奇數(shù),則補(bǔ)充一個(gè)數(shù)值in+1= 0,且in+1 e In+1= { O },使得輸入input的長(zhǎng)度變?yōu)榕紨?shù),即input = input | | in+1。為便于描述,后面假定輸入Feistel網(wǎng)絡(luò)的input的長(zhǎng)度η為偶數(shù);
第4、將input作為Feistel網(wǎng)絡(luò)的輸入,執(zhí)行r輪的輪運(yùn)算,輸出一個(gè)與輸入等長(zhǎng)的中間結(jié)果 output = i/ Il i2,Il...1l in’,其中:i/ e I1, i2,e I2,…,in’ e In;可見,由于輸出的每個(gè)分段所屬的值域與輸入的每個(gè)分段相同,因此,output與input的格式相同。
[0006]本發(fā)明第4步所采 用的輪運(yùn)算過程如下:
第4.1、用Xj表示第j輪的輸入,且Xj = X1 11…I I Xn,并將該輸入分割為左右兩部分 L 和 R,即 L= X1 I I …I I x(n / 2),R= X (η / 2 + D I I …I I Xn ;
舉例:如果輸入的長(zhǎng)度為η=4,則每次將輸入劃分為L(zhǎng)= X1 I I &和1?= X3 I I X4兩部分;奇數(shù)輪次=X1 e IijX2 e I2,x3 e I3, x4 e I4;由于每一輪運(yùn)算左右兩部分會(huì)交換(見下面的運(yùn)算過程),因此,偶數(shù)輪次% e I3, X2 e I4, X3 e I1, x4 e 12。
[0007]第4.2、執(zhí)行如下運(yùn)算:L’ =R, R’ =L Φ PRF(R);其中L’的值等于輸入的右半部分R,R’的值等于輸入的左半部分L與對(duì)右半部分R執(zhí)行偽隨機(jī)函數(shù)PRF的輸出進(jìn)行模加?的結(jié)果; 定義第j輪的輸出Xj+工的左右兩部分為Xj+1= L’ Μ R’,加密過程執(zhí)行的運(yùn)算為:L’=R,R’ =I Θ PRF(R)JP:L’的值等于輸入的右半部分R,R’的值等于輸入的左半部分L與對(duì)右半部分R執(zhí)行偽隨機(jī)函數(shù)PRF的輸出進(jìn)行模加?的結(jié)果;解密過程執(zhí)行的運(yùn)算為:L’ =R,R’ =L & PRF(R),即:L’的值等于輸入的右半部分R,R’的值等于輸入的左半部分L與對(duì)右半部分R執(zhí)行偽隨機(jī)函數(shù)PRF的輸出進(jìn)行模加Θ的結(jié)果。
[0008]其中,采用的偽隨機(jī)函數(shù)PRF描述如下:
第4.2.1、偽隨機(jī)函數(shù)采用已證明實(shí)用安全的分組密碼,記做PRF ;PRF所使用的密鑰由k來確定,一種可選方式是選定r輪不同的輪密鑰,即k = ( k1; k2,…,10,加密運(yùn)算第j輪采用輪密鑰kp解密運(yùn)算第j輪采用輪密鑰k(u+1);另外一種簡(jiǎn)化的方法是:每輪都采用相同的密鑰k。
[0009]第4.2.2、偽隨機(jī)函數(shù)的輸入是數(shù)字連接形成的字符串,當(dāng)該字符串的二進(jìn)制位數(shù)小于分組密碼的分組長(zhǎng)度時(shí),則空余二進(jìn)制位補(bǔ)O ;
第4.2.3、采用ECB/CBC工作模式(如果是后者,IV的初始值為全O的二進(jìn)制串)對(duì)輸入數(shù)據(jù)進(jìn)行加密,對(duì)輸出的數(shù)據(jù)按輸入數(shù)據(jù)的二進(jìn)制位數(shù)進(jìn)行截?cái)唷?br>
[0010]采用的模加Θ和模減Θ的運(yùn)算規(guī)則如下:
第4.2.4、用Yj表示第j輪輸入Xj的每個(gè)分段元素所屬值域的元素個(gè)數(shù),且Yj = Y1 I
…11 yn,其中 % = I Ii I,…,yn = I In I ;
第4.2.5、對(duì)于模加運(yùn)算X Φ N,假設(shè)N = Ii1 I I n2 I 1...| | nz, z〈n,具體運(yùn)算過程為:\ θ \ = ( X + N ) mod Y= ( X1 + Ii1 ) mod Y1 I 1...1 I ( xz + nz) mod yz,即,該模加運(yùn)算是按元素為單元的運(yùn)算,每個(gè)單元運(yùn)算的模數(shù)等于左操作數(shù)所屬的值域的元素個(gè)數(shù)。舉例,假設(shè)左操作數(shù)X = 8 I I 230 I I 35,X的每個(gè)分段所屬值域的元素個(gè)數(shù)為Y = 10 |1000 I I 100,右操作數(shù) N = 13 I I 234 | | 456,則
X ? N = ( X+N) mod Y = (8+13) mod 10 || (230+234) mod 1000 || (35+456) mod100 = I I I 464 I I 91 ;
第4.2.6、對(duì)于模減運(yùn)算X Θ N,其中N = Ii1 I I n2 I I…|| nz, z〈n,具體運(yùn)算過程為:X θ N = (X-N) mod Y= ( X1 -1i1 ) mod Y1 | |...| | ( xz - nz) mod yz,即,該模減運(yùn)算是按元素為單元的運(yùn)算,每個(gè)單元運(yùn)算的模數(shù)等于左操作數(shù)所屬的值域的元素個(gè)數(shù)。舉例,假設(shè)左操作數(shù)X = I I I 464 I I 91,X的每個(gè)分段所屬值域的元素個(gè)數(shù)為Y = 10 |1000 I I 100,右操作數(shù) N = 13 I I 234 | | 456,則
XΘ N = ( X-N) mod Y = (1-13) mod 10 || (464-234) mod 1000 || (91-456) mod100 = 8 I I 230 I I 35。
[0011]第4.3、第j輪的輸出為Xj+1 = L’ I I R’,該輸出將作為第j+Ι輪的輸入,執(zhí)行第j+Ι輪的輪運(yùn)算。
[0012]一、本發(fā)明涉及的與數(shù)據(jù)加密有關(guān)的一些基本概念:
(I)分組密碼:分組密碼是將明文消息編碼表示后的數(shù)字(簡(jiǎn)稱明文數(shù)字)序列,劃分成長(zhǎng)度為η的分組(可看成長(zhǎng)度為η的矢量),每個(gè)分組分別在密鑰的控制下變換成等長(zhǎng)的輸出數(shù)字(簡(jiǎn)稱密文數(shù)字)序列。
[0013](2) 3DES:3DES (或稱為 Triple DES)是三重?cái)?shù)據(jù)加密算法(TDEA,Triple DataEncryption Algorithm)分組密碼的通稱。它相當(dāng)于是對(duì)每個(gè)數(shù)據(jù)分組應(yīng)用三次DES加密算法。由于計(jì)算機(jī)運(yùn)算能力的增強(qiáng),原版DES密碼的密鑰長(zhǎng)度變得容易被暴力破解;3DES即是設(shè)計(jì)用來提供一種相對(duì)簡(jiǎn)單的方法,即通過增加DES的密鑰長(zhǎng)度來避免類似的攻擊,而不是設(shè)計(jì)一種全新的分組密碼算法。
[0014](3) AES:密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard, AES),是美國(guó)聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。經(jīng)過五年的甄選流程,高級(jí)加密標(biāo)準(zhǔn)由美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)于2001年11月26日發(fā)布于FIPS PUB 197,并在2002年5月26日成為有效的標(biāo)準(zhǔn)。2006年,高級(jí)加密標(biāo)準(zhǔn)已然成為對(duì)稱密鑰加密中最流行的算法之一。
[0015](4)Feistel網(wǎng)絡(luò):Feistel網(wǎng)絡(luò)是用于分組密碼設(shè)計(jì)的一種對(duì)稱結(jié)構(gòu)。很多密碼標(biāo)準(zhǔn)都采用了 Feistel結(jié)構(gòu),其中包括DES。Feistel的優(yōu)點(diǎn)在于:由于它是對(duì)稱的密碼結(jié)構(gòu),所以對(duì)信息的加密和解密的過程就極為相似,甚至完全一樣。這就使得在實(shí)施的過程中,對(duì)編碼量和線路傳輸?shù)囊缶蜏p少了幾乎一半。
[0016](5)偽隨機(jī)數(shù):在計(jì)算機(jī)、通信系統(tǒng)中采用的隨機(jī)數(shù)、隨機(jī)碼均為偽隨機(jī)數(shù)、偽隨機(jī)碼。所謂“隨機(jī)碼”,就是無論這個(gè)碼有多長(zhǎng)都不會(huì)出現(xiàn)循環(huán)的現(xiàn)象,而“偽隨機(jī)碼”在碼長(zhǎng)達(dá)到一定程度時(shí)會(huì)從其第一位開始循環(huán),由于出現(xiàn)的循環(huán)長(zhǎng)度相當(dāng)大,例如CDMA采用42位的偽隨機(jī)碼,重復(fù)的可能性為4.4萬(wàn)億分之一,所以可以當(dāng)成隨機(jī)碼使用。
[0017]二、數(shù)值型個(gè)人識(shí)別信息的分段表示
本發(fā)明提供的數(shù)值型個(gè)人識(shí)別信息的分段表示如下:
將一個(gè)合法的個(gè)人識(shí)別信息按其特征劃分為η個(gè)數(shù)據(jù)分段:I = { I1, I2,…,IJ,每個(gè)數(shù)據(jù)分段由具有相同數(shù)據(jù)特征的數(shù)值組成,可用一個(gè)整數(shù)有限域來表達(dá)。
[0018]如,可以將一個(gè)合法的18位的身份證號(hào)碼劃分為七部分=I=U1, I2, I3, I4,I5, I6 },分別表示地區(qū)碼、出生年、出生月、出生日、順序碼和校驗(yàn)碼。其中,每部分的長(zhǎng)度為 -1l11 =6,1121 =4,1131 =2,II4I =2,1151 =3,I6I=I ;每部分的值域?yàn)?I1=IO,…,999999},I2= {1900,…,2050},I3={1,…,12},14={1,…,31},15={1,…,999},I6= {O,…,9,‘X,}。
[0019]本發(fā)明的優(yōu)點(diǎn)和積極效果:
本發(fā)明提供了一致數(shù)值型個(gè)人識(shí)別信息的保留格式不變的加密方法。
[0020]本發(fā)明為已有數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中數(shù)值型個(gè)人識(shí)別信息的加密保護(hù)提供了可能。
[0021]【專利附圖】
【附圖說明】
[0022]圖1是加密算法原理圖。
【具體實(shí)施方式】
[0023]數(shù)值型個(gè)人識(shí)別信息包括身份證號(hào)碼、銀行卡號(hào)等,本發(fā)明以身份證號(hào)碼為例,對(duì)保留格式的加密方法進(jìn)行詳細(xì)說明。
[0024]1、加密算法 第一、將一個(gè)合法的18位的身份證號(hào)碼劃分為六部分=I=U1, I2, I3, I4, 15> 16丨,分別表示地區(qū)碼、出生年、出生月、出生日、隨機(jī)數(shù)和校驗(yàn)碼。其中,每部分的長(zhǎng)度為:11^=6,12|=4,|13|=2,|14|=2,|15|=3,Il6I=I ;每部分的值域?yàn)?I1=IO,…,999999},I2= {1900,…,2050},I3=Il,…,12},14={1,…,31},15={1,…,999},I6=U…9,‘X,};其中I6的值可以通過對(duì)前五部分采用校驗(yàn)碼運(yùn)算而得出。
[0025]使用input = I1 | i2 I i3 I i4 I i5表示一個(gè)合法的身份證號(hào)碼,其中:I1 e I1, i2 e I2, i3 e 13,i4 e I4^ i5 e 15。為了確保加密算法的正確執(zhí)行,對(duì)輸入進(jìn)行附加值域,即 input = input | | i6, i6 = O,且 i6 e { O }。
[0026]第二、為了說明加密過程,設(shè)定Feistel網(wǎng)絡(luò)的輪次數(shù)r=2 (實(shí)際應(yīng)用中輪次數(shù)需要大于12輪)、采用的分組密碼為3DES、輪函數(shù)所使用的密鑰k的HEX碼表示為“01020304050607080102030405060708”,比如 01 表示字節(jié) 0x01。
[0027]第三、將input作為Feistel網(wǎng)絡(luò)的輸入,執(zhí)行共r=2輪的輪運(yùn)算:
用Xj表示第j輪的輸入,且Xj = X1 I X2 I X3 I X4 I X5 I χ6,其中偶數(shù)輪次:
Xl^ 工1,^ 工2,X3 ^ 工3,X4 ^ 工4,X5 ^ 工5,^ Ig ;奇數(shù)輪次:Xl ^ I4,^ 工5,^ 工6,
X4 G I1, X5 G 12,X6 ε I3 ;
將Xj分割為左右兩部分L和R,即L= X1 I I X2 I I X3, R= X4 I I X51 I X6 ;
定義第j輪的輸出Xp1的左右兩部分為Xj+1 = L’ I I R’,加密過程執(zhí)行的輪運(yùn)算為:L’ =R, R’ =L Φ PRF(R);解密過程執(zhí)行的輪運(yùn)算為:L’ =R B PRF(L),R’ =L。
[0028]第四、得到一個(gè)與輸入等長(zhǎng)的輸出output = i/ Il i2,Il V Il i/ Il i5,,其中:V e I1, V e I2, V e I3, i4’ e I4, i5’ e I5 ;
第五、通過使用身份證號(hào)碼的校驗(yàn)碼算法,對(duì)output進(jìn)行計(jì)算得到新的校驗(yàn)碼i6’,并將output Μ i6’作為最終的加密結(jié)果輸出。
[0029]2、具體執(zhí)行過程 加密過程:
輸入身份證號(hào)碼明文為370722196304091512,那么分段結(jié)果為input=370722 || 1963I 04 I I 09 I I 151。補(bǔ)充數(shù)值 i6 = 0,且 i6e { O },則輸入變?yōu)?input=370722 | | 1963I 04 I I 09 I I 151 I I 0o
[0030]------------------------ r = I (第一輪)------------------------
輸入:X! = 370722 Il 1963 || 04 || 09 || 1511 O
分割:L= 370722 Il 1963 || 04,R= 09 || 1511 O 計(jì)算:L’ = 09 I I 151 I I O
R,= 370722 Il 1963 || 04 ? PRF (09 || 1511 O) = 370722 |1963 I I 04 ? 0xB5 | | 0x6E | | 0x91 = (370722 + 0xB5) mod 1000000 |1900+((1963-1900)+0x6E) mod 150 || 1+( (04-1) + 0x91) mod 12)= 370903 || 1923I 5
PRF 的執(zhí)行過程為:PRF (09 Il 1511 I O) = PRF (“099700”)= trunc (“B56E91E3D86ADCC6” ) = B56E91
輸出:L,I I R,= 09 I I 1511 I O I I 370903 | | 1923 | | 5
注意:如果模數(shù)為η (模運(yùn)算的結(jié)果為[0,η-1]),左操作數(shù)為y e {z,q} (n=q-z+l),右操作數(shù)為X,為了確保運(yùn)算的正確性,模加運(yùn)算為:Z + ( y - z + X) mod η。
[0031]------------------------ r = 2 (第二輪)------------------------
輸入:X2 = 09 I I 151 I I O I I 370903 | | 1923 | | 5
分割:L= 09 I I 151 Il 0,R = 370903 | | 1923 | | 5
計(jì)算:L’ =370903 I I 1923 | | 5
R’ =09 I I 151 I I O ? PRF (370903 | | 1923 | | 5) = 09 | | 151 | O ?0x8BC427 I I 0xEEB5 | | OxDD = 1+ (9 + 0x8BC427) mod 31 | | (151 +0xEEB5) mod 1000I (0+0xDD) mod 1= 4 | | 260 | | O
PRF 的執(zhí)行過程為:PRF (370903 || 2023 || 6) =PRF ( “05A8D707E706”)=trunc ( “8BC427EEB5DDE0CD” ) =8BC427EEB5DD
輸出:L,I I R,= 370903 | | 2023 | 6 | | 4 | | 260 | | 0
計(jì)算校驗(yàn)碼并輸出最終密文:370903202306042605
解密過程:
輸入身份證號(hào)碼密文為370903202306042605,那么分段結(jié)果為input=370903 || 2023I 06 I I 04 I I 260。補(bǔ)充數(shù)值 i6 = 0,且 i6e { O },則輸入變?yōu)?input=370722 | | 1963I 10 I I 09 I I 151 I I 0o
[0032]------------------------ r = I (第一輪)------------------------
輸入=X1 = 370903 I I 2023 | | 06 | | 04 | | 260 | | O
分割:L= 370903 I I 2023 | | 06,R= 04 | | 260 | | O
計(jì)算:L,= 04 I I 260 |0 0 PRF (370903 | | 2023 | | 06) = 04 | | 260 | O Θ0x8BC427 I I 0xEEB5 | | OxDD = 1+ (4 - 0x8BC427) mod 31 | | (260 - 0xEEB5) mod 150I (O-OxDD) mod I) = 9 | 151 I I OR,= 370722 I I 1963 | | 10PRF 的執(zhí)行過程為:PRF (370903 || 2023 || 6) =PRF (“05A8D707E706”)= trunc (“8BC427EEB5DDE0CD” ) =8BC427EEB5DD
輸出:09 I I 151 I I O I I 370903 | | 2023 | | 6
------------------------ r = 2 (第二輪)------------------------
輸入:X! = 09 I I 151 I I O I I 370903 | | 2023 | | 6
分割:L= 09 I I 151 I I O, R=: ,0403 | | 2023 | | 6
計(jì)算:L,= 370903 I 12023 | b ? PRF (09 | | 151 | 0) = 370903 | | 2023 | | 6? 0xB5 I I 0x6E I I 0x91 = (370903 - Ox B5) mod 1000000 | | 1900+ (2023 _0x6E) mod150 I I ( (6-1) - 0x91) mod 12)= 3370722 | | 1963 | | 04R,= 09 I I 151 I I OPRF 的執(zhí)行過程為:PRF (09 Μ 1511 I O) = PRF (“099700”)= trunc (“B56E91E3D86ADCC6” ) = B56E91
輸出:L,I I R,=370722 | | 1963 | | 04 | | 09 | | 151 | | O計(jì)算校驗(yàn)碼并輸出最終密文:370722196304091512。
【權(quán)利要求】
1.一種保留格式的數(shù)值型個(gè)人識(shí)別信息的加密方法,其特征在于該方法包括如下步驟: 第1、將一個(gè)合法的數(shù)值型個(gè)人識(shí)別信息劃分為η個(gè)數(shù)據(jù)分段:I = { I1 , I2,…,IJ,每個(gè)數(shù)據(jù)分段均用一個(gè)整數(shù)有限域來表達(dá); 第2、設(shè)定Feistel網(wǎng)絡(luò)的輪次數(shù)r與輪函數(shù)所使用的密鑰k,其中輪次數(shù)r為大于等于12的偶數(shù); 第3、使用input =I1 I i2 I I…| | in表示一個(gè)合法的數(shù)值型個(gè)人識(shí)別信息,其中:I1 e I1, i2 e I2,...,in e In ;將 input =I1 | i2 1...1 I in 作為 Feistel 網(wǎng)絡(luò)的輸入,如果η是奇數(shù),則補(bǔ)充一個(gè)數(shù)值in+1= O,且in+1 e In+1= { O },使得輸入input的長(zhǎng)度變?yōu)榕紨?shù)長(zhǎng)度; 第4、執(zhí)行r輪的輪運(yùn)算,最終輸出結(jié)果為output = i/ Μ i2’ Μ…Μ in’,其中:V e !I,V e !2,...,in,e !n°
2.根據(jù)權(quán)利要求1所述的加密方法,其特征在于第四步中所述的輪運(yùn)算如下: 第4.1、用Xj表示第j輪的輸入,且Xj = X1 11…I I Xn,并將該輸入分割為左右兩部分 L 和 R,即 L= X1 I I …I I x(n / 2),R= X (η / 2 + D I I …I I Xn ; 第4.2、執(zhí)行如下運(yùn)算:L’ =R,R’ =L Φ PRF(R);其中L’的值等于輸入的右半部分R,R’的值等于輸入的左半部分L與對(duì)右半部分R執(zhí)行偽隨機(jī)函數(shù)PRF的輸出進(jìn)行模加?的結(jié)果; 對(duì)于解密運(yùn)算而言,運(yùn)算過程相同,只是將模加運(yùn)算替換為模減Θ運(yùn)算; 第4.3、第i輪的輸出為Xi+1= L’ Μ R’,該輸出將作為第i+1輪的輸入,執(zhí)行第i+1輪的迭代運(yùn)算。
3.根據(jù)權(quán)利要求2所述的加密方法,其特征在于所述輪運(yùn)算第4.2步中的偽隨機(jī)函數(shù)PRF的運(yùn)算方法是: 第4.2.1、偽隨機(jī)函數(shù)采用已證明實(shí)用安全的分組密碼,記做PRF ; 第4.2.2、偽隨機(jī)函數(shù)的輸入是數(shù)字連接形成的字符串,當(dāng)該字符串的二進(jìn)制位數(shù)小于分組密碼的分組長(zhǎng)度時(shí),則空余二進(jìn)制位補(bǔ)O ; 第4.2.3、采用ECB/CBC工作模式對(duì)輸入數(shù)據(jù)進(jìn)行加密,對(duì)輸出的數(shù)據(jù)按輸入數(shù)據(jù)的二進(jìn)制位數(shù)進(jìn)行截?cái)唷?br>
4.根據(jù)權(quán)利要求2所述的加密方法,其特征在于所述輪運(yùn)算第4.2步所述的模加或模減運(yùn)算是: 第4.2.4、用Yj表示第j輪輸入Xj的每個(gè)分段元素所屬值域的元素個(gè)數(shù),且Yj = Y1 I…11 yn,其中 % = I Ii I,…,yn = I In I ; 第4.2.5、對(duì)于模加運(yùn)算X Φ N,假設(shè)N = Ii1 I I n2 I 1...| | nz, z〈n,具體運(yùn)算過程為:X? N = ( X + N ) mod Y= ( X1 + Ii1 ) mod y! I 1...1 I ( xz + nz) mod yz,即,該模加運(yùn)算是按元素為單元的運(yùn)算,每個(gè)單元運(yùn)算的模數(shù)等于左操作數(shù)所屬的值域的元素個(gè)數(shù);第4.2.6、對(duì)于模減運(yùn)算X Θ N,其中N = Ii1 I I n2 I I…|| nz, z〈n,具體運(yùn)算過程為:X θ N = (X-N) mod Y= ( X1 -1i1 ) mod Y1 | |...| | ( xz - nz) mod yz,即,該模減運(yùn)算是按元素為單元的運(yùn)算,每個(gè)單元運(yùn)算的模數(shù)等于左操作數(shù)所屬的值域的元素個(gè)數(shù)。
【文檔編號(hào)】H04L9/32GK103595539SQ201310603954
【公開日】2014年2月19日 申請(qǐng)日期:2013年11月26日 優(yōu)先權(quán)日:2013年11月26日
【發(fā)明者】劉哲理, 賈春福, 李進(jìn) 申請(qǐng)人:南開大學(xué), 廣州大學(xué)