- 商用密碼算法原理與C語言實(shí)現(xiàn)
- 李子臣
- 1050字
- 2020-07-28 13:37:09
2.2 加密/解密算法和完整性算法
加密/解密算法128-EEA3是一個(gè)序列密碼,利用一個(gè)保密密鑰CK對數(shù)據(jù)塊進(jìn)行加密/解密。數(shù)據(jù)塊的長度范圍為1~65504比特。完整性算法128-EIA3利用一個(gè)完整性密鑰,針對一個(gè)給定的輸入信息計(jì)算一個(gè)32比特消息認(rèn)證碼(Message Authentication Code,MAC)。
2.2.1 加密/解密算法
1)算法的輸入/輸出參數(shù)
算法的輸入/輸出參數(shù)如表2-4所示。
表2-4 算法的輸入/輸出參數(shù)

2)算法的總體結(jié)構(gòu)
算法的總體結(jié)構(gòu)如圖2-2所示。

圖2-2 算法的總體結(jié)構(gòu)
3)算法的初始化
設(shè)CK=CK[0]||CK[1]||…||CK[15],為128比特保密密鑰。KEY=KEY[0]||KEY[1]||…||KEY[15],為128比特初始密鑰。其中CK[i]、KEY[i] (0≤i≤15)都為8比特,則有KEY[i]=CK[i],i=0,1,…,15。
設(shè)計(jì)數(shù)器COUNT=COUNT[0]||COUNT[1]||COUNT[2]||COUNT[3],其中COUNT[i] (0≤i≤3)為8比特,那么COUNT為32比特。
同時(shí),設(shè)ZUC算法中的128比特初始變量為IV,IV=IV[0]||IV[1]||…||IV[15],其中IV[i](0≤i≤15)為8比特,則有
IV[0]=COUNT[0],IV[1]=COUNT[1]
IV[2]=COUNT[2],IV[3]=COUNT[3]
IV[4]=BEARER||DIRECTION||002
IV[5]=IV[6]=IV[7]=000000002
IV[8]=IV[0],IV[9]=IV[1]
IV[10]=IV[2],IV[11]=IV[3]
IV[12]=IV[4],IV[13]=IV[5]
IV[14]=IV[6],IV[15]=IV[7]
4)密鑰流的生成
利用算法初始化中生成的初始密鑰KEY和初始變量IV,算法將產(chǎn)生L個(gè)32比特字的密鑰流。將生成的密鑰流用比特串表示為k[0],k[1],…,k[32×L-1],其中k[0]為算法生成的第1個(gè)密鑰字的最高比特位,k [31]為最低比特位,其他以此類推。為了處理長度為LENGTH的輸入比特流,L的取值為。
5)加密和解密過程
加密和解密都是相同的操作,設(shè)長度為LENGTH的明文輸入比特流為:
IBS=IBS[0]||IBS[1]||IBS[2]||…||IBS[LENGTH-1]
對應(yīng)的輸出密文比特流為:
OBS=OBS[0]||OBS[1]||OBS[2]||…||OBS[LENGTH-1]
其中,IBS[i]和OBS[i]均為1比特,則有OBS[i]=IBS[i]+k[i] (i=0,1,…,LENGTH-1)。
2.2.2 完整性算法
1)算法的輸入/輸出參數(shù)
算法的輸入/輸出參數(shù)如表2-5所示。
表2-5 算法的輸入/輸出參數(shù)

2)算法的總體結(jié)構(gòu)
算法的總體結(jié)構(gòu)如圖2-3所示。

圖2-3 算法的總體結(jié)構(gòu)
3)算法的初始化
算法的初始化主要是根據(jù)完整性密鑰IK和其他輸入?yún)?shù)(見表2-5)構(gòu)造初始密鑰KEY和初始變量IV。
設(shè)IK=IK[0]IK[1]…IK[15],為128比特完整性密鑰,其中IK[i](0≤i≤15)為1字節(jié)。
設(shè)KEY=KEY[0]||KEY[1]||…||KEY[15],為128比特初始密鑰,其中KEY[i](0≤i≤15)為1字節(jié)。
則有KEY[i]=IK[i],i=0,1,…,15。
記計(jì)數(shù)器COUNT=COUNT[0]||COUNT[1]||COUNT[2]||COUNT[3],其中COUNT[i]為8比特,i=0,1,2,3。
設(shè)算法的初始變量IV=IV[0]||IV[1]||…||IV[15],其中IV[i](0≤i≤15)為8比特。則有
IV[0]=COUNT[0],IV[1]=COUNT[1]
IV[2]=COUNT[2],IV[3]=COUNT[3]
IV[4]=BEARER||0002 ,IV[5]=000000002
IV[6]=000000002,IV[7]=000000002
IV[8]=IV[0]⊕(DIRECTION<<7),IV[9]=IV[1]
IV[10]=IV[2],IV[11]=IV[3]
IV[12]=IV[4],IV[13]=IV[5]
IV[14]=IV[6]⊕(DIRECTION<<7),IV[15]=IV[7]
4)密鑰流的生成
為了計(jì)算LENGTH比特消息的MAC值,L的取值為。利用初始密鑰KEY和初始變量IV,算法將產(chǎn)生L個(gè)32比特字的密鑰流。將生成的密鑰流用比特串表示為k[0],k[1],…,k[32×L-1],其中k[0]為算法生成的第1個(gè)密鑰字的最高比特位,k[31]為最低比特位,其余類推。
對于i=0,1,…,32×(L-1),令ki=k[i]||k[i+1]||…||k[i+31],則ki為32比特字。
5)計(jì)算MAC
設(shè)T為32比特字變量,置T=0,對于每個(gè)i,i=0,1,…,LENGTH-1,如果M [i]=1,那么T=T⊕ki,計(jì)算T=T⊕kLENGTH ,最后計(jì)算MAC=T⊕k32×(L-1)。
最后計(jì)算是為了使生成的密鑰流比特串k[0],k[1],…,k[32×L-1]全部參與消息認(rèn)證碼的運(yùn)算。
- 高頻電子技術(shù)(第2版)
- 纖維化學(xué)與物理
- 教育學(xué)(二)模擬試題集
- 物理化學(xué)
- 高教版《中國近現(xiàn)代史綱要》(2013年修訂)配套題庫【名??佳姓骖}+課后習(xí)題+章節(jié)題庫+模擬試題】
- 2019年期貨從業(yè)資格考試《期貨基礎(chǔ)知識》【教材精講+真題解析】講義與視頻課程【29小時(shí)高清視頻】
- 數(shù)據(jù)庫原理及應(yīng)用:SQL Server 2019(第2版)
- 字體與版式設(shè)計(jì)(全彩微課版)
- 機(jī)電設(shè)備裝調(diào)工藝與技術(shù)
- 單片機(jī)原理與應(yīng)用:實(shí)驗(yàn)實(shí)訓(xùn)和課程設(shè)計(jì)
- 2020年廣西壯族自治區(qū)選調(diào)生考試《行政職業(yè)能力測驗(yàn)》考點(diǎn)精講及典型題(含歷年真題)詳解
- 形體訓(xùn)練與形象塑造
- 趙曼《公共部門人力資源管理》(第2版)筆記和課后習(xí)題詳解
- 現(xiàn)代服裝工藝設(shè)計(jì)實(shí)驗(yàn)教程
- Android移動(dòng)應(yīng)用開發(fā)教程(微課版)