專利名稱:一種基于分組密碼的消息鑒別方法
技術(shù)領(lǐng)域:
本發(fā)明主要應(yīng)用于通信領(lǐng)域,具體涉及一種基于分組密碼的消息鑒別方法,用于 實(shí)現(xiàn)通訊中檢測(cè)數(shù)據(jù)完整性和認(rèn)證數(shù)據(jù)起源。
背景技術(shù):
數(shù)據(jù)的完整性檢測(cè)和起源認(rèn)證是影響通信安全的重要方面,常見的保護(hù)措施包括 消息鑒別碼和數(shù)字簽名。消息鑒別碼MAC (Message Authentication Code)屬于對(duì)稱加密的范疇,要求使用 雙方首先共享一個(gè)密鑰K。在發(fā)送消息M之前,發(fā)送者首先計(jì)算T = MAC(K,M),然后把(M, T)發(fā)送出去。在收到(M,T)之后,接收者計(jì)算Τ’ =MAC(K,M),并比較是否T = T’。若是, 則認(rèn)定消息M合法(Μ在傳輸過程中沒有被篡改,且確實(shí)來自于授權(quán)的發(fā)送方);若否,則認(rèn) 定消息M非法,并拒絕使用消息Μ。常見的消息鑒別碼算法有四大類,前三類分別基于分組密碼、雜湊函數(shù)和泛雜湊 函數(shù),第四類是直接設(shè)計(jì)的算法。在基于分組密碼的消息鑒別碼算法中,CBC-MAC是最早的 一個(gè),其基本結(jié)構(gòu)如圖1,以IV為初始向量,使用分組密碼E以分塊方式處理消息Μ。但是,CBC-MAC有一個(gè)缺陷,它不能夠安全地處理不同長(zhǎng)度的消息。為此,人們后 來提出了不少改進(jìn)版本,如EMAC、XCBC、TMAC、OMAC、PMAC、GCBC、XOR-MAC等等。這些后續(xù)方 法,都能夠安全地處理不同長(zhǎng)度的消息,但在效率方面(密鑰量、內(nèi)存、狀態(tài)量依賴、調(diào)用分 組密碼次數(shù)等)各有差異。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種基于分組密碼的改進(jìn)的消息鑒別方法,該方法能夠安 全地處理不同長(zhǎng)度的消息,并且通過合理地使用參數(shù),進(jìn)一步提高通信的性能。為了實(shí)現(xiàn)本發(fā)明的目的,采用的技術(shù)方案概述如下一種基于分組密碼的消息鑒別方法,其步驟包括1)通信雙方約定分組密碼E和密鑰K ;2)發(fā)送方將消息M分塊,得到M1, M2, ... , Mh,Ml, Mi的長(zhǎng)度為η比特,且 L-LMl的長(zhǎng)度不超過η比特,且M1M2. · · Ml相連接所得到的比特串為M ;3)發(fā)送方選擇輔助量I,以長(zhǎng)度為η比特的常數(shù)為初始向量,使用分組密碼E以 CBC-MAC方式處理I,得到秘密值X ;4)發(fā)送方以秘密值X為初始向量,使用分組密碼E以CBC-MAC方式處理M1M2. . . Ml^1 所構(gòu)成的比特串,得到值Y;5)對(duì)Y進(jìn)行循環(huán)移位操作,得到鏈接值Z ;6)發(fā)送方使用分組密碼Ε,以K為密鑰,Z為明文進(jìn)行加密,所得密文為Τ,發(fā)送給 接收方;7)接收方重復(fù)操作步驟2)至6)得到密文Τ’ ;
8)接收方驗(yàn)證是否Τ’ = T,若是,則接受消息M和輔助量I ;否則,則拒絕。所述步驟2)若消息M的長(zhǎng)度不超過η比特,則M1, M2, ...,Mm為空字符串,Ml = M0所述步驟3)消息的輔助量I,其內(nèi)容為伴隨消息M發(fā)送的相關(guān)信息,比如說發(fā)送消 息M時(shí)所使用的網(wǎng)絡(luò)協(xié)議的參數(shù),或者是發(fā)送方的名字,發(fā)送的日期,或者為一個(gè)常數(shù)。
所述步驟3)以CBC-MAC方式處理I,需要在處理I之前對(duì)輔助量I進(jìn)行填充,使得 其填充后的總長(zhǎng)度為wn比特,w為固定的正整數(shù)。所述步驟3)長(zhǎng)度為η比特的常數(shù)為長(zhǎng)度為η的比特串,且固定不變。所述步驟3)以CBC-MAC方式處理I,需要將輔助量I分塊,得到I1, I2, ... , Iw, Ii 的長(zhǎng)度為η比特,且1 ( i ( w,且I1I2. . . Iw相連接所得到的比特串為填充后的輔助量I。所述步驟5)若禮的長(zhǎng)度恰好為η比特,則先將Y和禮相異或,再將所得的比特串 循環(huán)左移P位,其中P為正整數(shù);若Ml的長(zhǎng)度不足η比特,則填充Ml使得其長(zhǎng)度為η比特,再將Y和Ml相異或,再 將所得的比特串循環(huán)左移q位,其中q為正整數(shù)且q興P。與現(xiàn)有技術(shù)相比,本發(fā)明基于分組密碼的消息鑒別方法具有如下技術(shù)效果1)能夠保護(hù)數(shù)據(jù)的完整性,有效識(shí)別消息在傳輸過程中是否被篡改;2)能夠認(rèn)證消息是否來自于授權(quán)的發(fā)送方;3)使用與消息相關(guān)的輔助量作為參數(shù),保證算法安全的同時(shí)便利了算法的運(yùn)行;4)結(jié)構(gòu)簡(jiǎn)明清晰。
圖1為使用分組密碼E的CBC-MAC處理消息的結(jié)構(gòu)圖;圖2為本發(fā)明方法處理消息的結(jié)構(gòu)圖。
具體實(shí)施例方式以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的方法作詳細(xì)的說明。本發(fā)明基于分組密碼算法,前提是需要通信雙方約定具體的分組密碼算法E,并共 享密鑰K。在此基礎(chǔ)上,如圖2所示,消息發(fā)送者S首先處理輔助量I,再處理消息M,并將得 到的標(biāo)簽T連同M和I發(fā)送給消息接收方R。本發(fā)明基于分組密碼的消息鑒別方法,其步驟 包括兩個(gè)階段首先通信雙方S和R共享密鑰K,并約定分組密碼算法E。標(biāo)簽生成階段(發(fā)送者S操作)1. 1)為發(fā)送消息M和輔助量I,首先對(duì)I進(jìn)行填充使得其填充后的總長(zhǎng)度為η比 特的w倍(w為某一固定的正整數(shù),且wn不小于所有I的長(zhǎng)度,η為分組密碼的分組長(zhǎng)度); 若I的長(zhǎng)度為wn比特,則不填充;1. 2)將消息M分塊,得到MnM2,. . .,M^1, M^滿足Mi的長(zhǎng)度為η比特(1彡i彡L-1), Ml的長(zhǎng)度不超過η比特,且M1M2. . . Ml相連接所得到的比特串恰好為M ;1. 3)以一個(gè)η比特的常數(shù)Cst為初始向量,使用分組密碼E以CBC-MAC方式處理 填充后的I,得到X ;具體如下
X=E(K5Cstel1);For i = 1 to wΧ=Ε(Κ,Χ Ι;)End for1. 4)以X為初始向量,使用分組密碼E以CBC-MAC方式處理M1M2. . . Mm所構(gòu)成的 比特串,得到Y(jié);具體如下Y=E(K5XffiM1)For i = 2 to L-IΥ=Ε(Κ,Υ Μ;) End for1. 5)若Ml的長(zhǎng)度恰好為η比特,則令Z= (Y Ml) <ρ,其中ρ為正整數(shù);1. 6)若禮的長(zhǎng)度不足η比特,則填充虬使得其長(zhǎng)度為η比特,再令 Z=(Y ML) <q,其中q為正整數(shù)且q乒ρ ;1.7)計(jì)算 T = E(K,Z);1.8)將(I,M,T)發(fā)送給 R。
標(biāo)簽發(fā)送階段(接受者R操作)2. 1)在收到(I,M,T)之后,為鑒別消息M和輔助量I,R首先重復(fù)操作步驟1. 1至 1. 6 ;2. 2)計(jì)算 Τ,= E(K,Z);2. 3) R驗(yàn)證是否T’ = T0若是,則接受消息M和輔助量I ;否則,則拒絕。所述步驟11)輔助量I的內(nèi)容可根據(jù)通信中實(shí)際情況靈活調(diào)整,比如說可以是發(fā) 送消息M時(shí)所使用的網(wǎng)絡(luò)協(xié)議的參數(shù),也可以是一些其它便利通信的內(nèi)容,或者為一個(gè)常數(shù)。進(jìn)一步,填充I的方法應(yīng)該使得人們?nèi)菀椎卦谔畛浜蟮谋忍卮斜嬲J(rèn)I和填充部 分。比如說,在I的右側(cè)首先添加一個(gè)“1”,然后添加足夠少的“0”使得填充后的比特串長(zhǎng) 度為η比特的整數(shù)倍所述步驟1. 2)若消息M的長(zhǎng)度不超過η比特,則M1, M2, ...,Ml^1為空字符串,Ml =Μ。所述步驟1. 3) Cst表示長(zhǎng)度為η的常數(shù)比特串,可以選擇為長(zhǎng)度為η的全0比特
串ο進(jìn)一步,“使用分組密碼E以CBC-MAC方式”是指以E為底層分組密碼的CBC-MAC。所述步驟1. 4) “使用分組密碼E以CBC-MAC方式”是指以E為底層分組密碼的 CBC-MAC。所述步驟1. 5) (Y Ml) <ρ表示先將Y和禮相異或,再將所得的比特串循環(huán)左 移P位。所述步驟1. 6)填充方法與11步驟相同。所述步驟1. 7)T = E(K, Ζ)表示使用分組密碼Ε,以K為密鑰,Z為明文加密,所得 密文為Τ。所述步驟2. 2)T’ = E(K,Ζ)表示使用分組密碼Ε,以K為密鑰,Z為明文進(jìn)行加密,所得密文為τ’。 上面對(duì)本發(fā)明所述的一種基于分組密碼的消息鑒別方法進(jìn)行了詳細(xì)的說明,對(duì)于 本技術(shù)領(lǐng)域的一般技術(shù)人員來說,在不背離本發(fā)明所述方法的精神和權(quán)利要求范圍的情況 下對(duì)它進(jìn)行的各種 顯而易見的改變都在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于分組密碼的消息鑒別方法,其步驟包括1)通信雙方約定分組密碼E和密鑰K;2)發(fā)送方將消息M分塊,得到M1,M2,... ,M^MpMi的長(zhǎng)度為η比特,且1彡i彡L-1, MJ勺長(zhǎng)度不超過η比特,且M1M2. .. Md目連接所得到的比特串為Μ,η為分組密碼的分組長(zhǎng) 度;3)發(fā)送方選擇輔助量I,以長(zhǎng)度為η比特的常數(shù)為初始向量,使用分組密碼E以 CBC-MAC方式處理I,得到秘密值X ;4)發(fā)送方以秘密值X為初始向量,使用分組密碼E以CBC-MAC方式處理M1M2.. . Ml^1所 構(gòu)成的比特串,得到值Y;5)對(duì)Y進(jìn)行循環(huán)移位操作,得到鏈接值Z;6)發(fā)送方使用分組密碼Ε,以K為密鑰,Z作為明文進(jìn)行加密,所得密文為Τ,將I,Μ,T 發(fā)送給接收方;7)接收方為鑒別消息M和輔助量I,重復(fù)操作步驟2)至6)得到密文Τ’;8)接收方驗(yàn)證是否Τ’=Τ,若是,則接受消息M和輔助量I ;否則,則拒絕。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟2)若消息M的長(zhǎng)度不超過η比特, 則M1, M2, ... , Mh為空字符串,ML = Μ。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟3)輔助量I的內(nèi)容為伴隨消息M 發(fā)送的相關(guān)信息,所述相關(guān)信息為發(fā)送消息M時(shí)所使用的網(wǎng)絡(luò)協(xié)議的參數(shù),或者是發(fā)送方 的名字,或者是發(fā)送的日期,或者為一個(gè)常數(shù)。
4.如權(quán)利要求1所述的方法,其特征在于,以CBC-MAC方式處理I,需要在處理I之前 對(duì)輔助量I進(jìn)行填充,使得其填充后的總長(zhǎng)度為wn比特,w為固定的正整數(shù)。
5.如權(quán)利要求1所述的方法,其特征在于,所述步驟3)長(zhǎng)度為η比特的常數(shù)為長(zhǎng)度為 η的比特串,且固定不變。
6.如權(quán)利要求4所述的方法,其特征在于,所述步驟3)以CBC-MAC方式處理I,需要將 輔助量I分塊,得到I1, 12,...,Iw, Ii的長(zhǎng)度為η比特,且1彡i彡W,且I1I2... Iw相連接 所得到的比特串為填充后的輔助量I。
7.如權(quán)利要求1所述的方法,其特征在于,所述步驟5)若禮的長(zhǎng)度恰好為η比特,則 先將Y和Ml相異或,再將所得的比特串循環(huán)左移ρ位,其中ρ為正整數(shù);若Ml的長(zhǎng)度不足η比特,則填充Ml使得其長(zhǎng)度為η比特,再將Y和Ml相異或,再將所 得的比特串循環(huán)左移q位,其中q為正整數(shù)且q Φ P。
全文摘要
本發(fā)明提供了一種基于分組密碼的消息鑒別方法,步驟包括1)通信雙方約定分組密碼E和密鑰K;2)發(fā)送方將消息M分塊,得到M1,M2,…,ML-1,ML;3)發(fā)送方選擇輔助量I,以n比特的常數(shù)為初始向量,以CBC-MAC方式處理I,得到秘密值X;4)發(fā)送方以X為初始向量,以CBC-MAC方式處理M1M2…ML-1構(gòu)成的比特串,得到值Y;5)對(duì)Y進(jìn)行循環(huán)移位操作,得到值Z;6)發(fā)送方使用分組密碼E,以K為密鑰,Z為明文進(jìn)行加密,得密文T,將I,M,T發(fā)送給接收方;7)接收方重復(fù)操作步驟2)至6)得密文T’;8)驗(yàn)證是否T’=T,是則接受;否則拒絕。本方法能夠在保證安全認(rèn)證消息的前提下,進(jìn)一步有效利用通信中的相關(guān)參數(shù),保護(hù)數(shù)據(jù)的完整性,提高通信的效率。
文檔編號(hào)H04L9/32GK102136904SQ20111007868
公開日2011年7月27日 申請(qǐng)日期2011年3月30日 優(yōu)先權(quán)日2011年3月30日
發(fā)明者吳文玲, 張立廷, 張蕾, 王鵬 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所