專利名稱:基于分組密碼算法的三重認證方法
技術領域:
本發(fā)明涉及一種兩個通訊終端之間三重認證校驗方法,特別是涉及一種用于非接 觸式邏輯加密卡和讀卡機之間通訊的,基于分組密碼算法的三重認證方法。
背景技術:
隨著非接觸式邏輯加密卡應用范圍的不斷擴展,對于非接觸式邏輯加密卡安全性 需求也越來越高。從應用的角度來說,非接觸式邏輯加密卡不僅僅需要完成指令執(zhí)行、數(shù)據(jù) 讀寫、邏輯運算等基本操作,而且從安全性角度來說,還需與讀卡機進行身份合法性鑒別以 及保證通訊過程中數(shù)據(jù)的安全性。為了滿足這些需求,非接觸式邏輯加密卡必須具有認證 功能,以滿足和讀卡機之間的身份識別應用需求;同時,還需具有通訊數(shù)據(jù)加密功能,以滿 足通訊過程中的安全性需求。認證和通訊加密都將涉及數(shù)據(jù)加密的應用,在非接觸式邏輯加密卡內需要使用加 密算法來支持認證流程和通訊數(shù)據(jù)加密。隨著非接觸式邏輯加密卡技術及應用的發(fā)展,其數(shù)據(jù)安全或通訊安全的要求也越 來越高。目前在通訊安全上,大部分的非接觸式邏輯加密卡采用了符合IS09798-2國際標 準的三重認證校驗技術,對卡和讀卡器的合法性進行相互校驗。但是在認證校驗過程和通 訊加密過程中,大部分非接觸式邏輯加密卡均采用了基于序列密碼的流加密算法,在目前 的安全需求下,這種安全強度的非接觸式邏輯加密卡已不適應應用需求,需要有更高安全 強度的非接觸式邏輯加密卡來填補目前的安全需求。
發(fā)明內容
本發(fā)明要解決的技術問題是提供一種基于分組密碼算法的三重認證方法,能夠提 高兩個通訊終端進行身份合法性的鑒別,并能保證通訊過程中數(shù)據(jù)的安全性。為解決上述技術問題,本發(fā)明的基于分組密碼算法的三重認證方法包括如下步 驟步驟一、被認證終端收到認證指令后產(chǎn)生隨機數(shù)RB,并將隨機數(shù)RB分成兩個固定 字長的部分RBl和RB2,根據(jù)隨機數(shù)RB通過數(shù)據(jù)處理得到被認證終端返回給認證終端的數(shù) 據(jù)TokenRB,并將TokenRB返回給認證終端;步驟二、認證終端接收到TokenRB,恢復得到隨機數(shù)RB和兩個固定字長的RBl及 RB2數(shù)據(jù),再加上認證終端內部產(chǎn)生的隨機數(shù)RA,通過一個數(shù)據(jù)處理函數(shù)f\(RA,RBl),將隨 機數(shù)RB和兩個固定字長的RBl及RB2數(shù)據(jù)及認證終端產(chǎn)生的隨機數(shù)RA組合成一個一次分 組密碼算法所需字長的數(shù)據(jù),該數(shù)據(jù)經(jīng)分組密碼算法運算后形成認證終端向被認證終端發(fā) 出的令牌數(shù)據(jù)TokenAB并發(fā)送給被認證終端;步驟三、被認證終端接收到TokenAB后進行分組密碼算法運算,恢復獲得的隨機 數(shù)RA和部分或全部RBl數(shù)據(jù),比較對應部分或全部RBl信息,如果相一致,則再通過另一個 數(shù)據(jù)處理函數(shù)f2 (RA, RB2),組合成另一個一次分組密碼算法所需字長的數(shù)據(jù),該數(shù)據(jù)經(jīng)分組密碼算法運算后形成被認證終端向認證終端發(fā)出的令牌數(shù)據(jù)TokenBA并發(fā)送給認證終 端;如果比較后不一致,則被認證終端無響應并返回到起始狀態(tài);步驟四、認證終端接收到TokenBA,再次通過分組密碼算法運算后,恢復獲得部分 或全部隨機數(shù)RA和部分或全部RB2數(shù)據(jù),并與認證終端內已有的對應的部分或全部RB2數(shù) 據(jù)和部分或全部隨機數(shù)RA進行比較,如果相一致,則確認三重認證通過;如果不一致,則中 斷與該被認證終端的進一步通訊。所述隨機數(shù)RB字長為32位以上,且兩個固定字長的部分中RB1的字長也為32位 或32位以上。所述TokenRB為隨機數(shù)RB本身,或通過數(shù)據(jù)處理函數(shù)g (RB)得到分組密碼算法所 需的數(shù)據(jù)字長并經(jīng)分組密碼算法運算得到;其中,數(shù)據(jù)處理函數(shù)g(RB)的輸入輸出一一對 應,運算可逆。所述隨機數(shù)RA的字長為32位以上。所述數(shù)據(jù)處理函數(shù)fjRAABl)與RBI中被使用的數(shù)據(jù)一一對應;所述數(shù)據(jù)處理函 數(shù)(RA,RB1)和隨機數(shù)RA —一對應。所述數(shù)據(jù)處理函數(shù)(RA, RBI)使用全部隨機數(shù)RA,并使用部分或全部RB1數(shù)據(jù), 且數(shù)據(jù)處理函數(shù)(RA, RBI)的字長為分組密碼算法的數(shù)據(jù)字長。所述TokenAB為數(shù)據(jù)處理函數(shù)f\(RA,RBI)的結果再通過分組密碼算法運算后的 數(shù)據(jù)。所述數(shù)據(jù)處理函數(shù)f2(RA,RB2)與RA中被使用的數(shù)據(jù)一一對應;所述數(shù)據(jù)處理函 數(shù)f2(RA,RB2)與RB2中被使用的數(shù)據(jù)一一對應。所述數(shù)據(jù)處理函數(shù)f2 (RA, RB2)使用部分或全部隨機數(shù)RA,并使用部分或全部RB2 數(shù)據(jù),且數(shù)據(jù)處理函數(shù)f2(RA,RB2)的字長為分組密碼算法的數(shù)據(jù)字長。所述TokenBA為數(shù)據(jù)處理函數(shù)f2(RA,RB)的結果再通過分組密碼算法運算后的數(shù) 據(jù)。與傳統(tǒng)的基于序列密碼的流加密相比(比如在應用廣泛的Mifare卡中就是采用 基于序列密碼的流加密作為加密算法),分組密碼算法(如DES算法、AES算法等)具有更 強的特性。由于進行多輪的分組運算,最終加密輸出的密文相對于明文來說具有“雪崩效 應”,即使在同一密鑰下,兩次明文只具有簡單的變化(比如64位明文中只有其中的1個位 發(fā)生了改變,或者64位明文中只有兩個位之間交換了一下位置等),其最終加密后對應的 兩次密文也將發(fā)生劇烈變化從而不會具有某些特殊的特征,這樣,對于基于對稱算法來設 計的上層認證協(xié)議的安全性就提供了充分的便利性和保障。本發(fā)明在兩個通訊終端的通訊過程中,特別是非接觸式邏輯加密卡與讀卡機之間 的身份識別中,將三重認證技術與具有更高安全性能的分組密碼算法相結合,提升了非接 觸式邏輯加密卡與讀卡機身份識別的安全性能,增加兩個通訊終端之間通訊的安全強度, 也提高了非接觸式邏輯加密卡的安全強度。
下面結合附圖與具體實施方式
對本發(fā)明作進一步詳細的說明圖1是本發(fā)明的方法控制流程圖2是在非接觸式邏輯加密卡中應用本發(fā)明的一實施例示意圖;圖3是數(shù)據(jù)處理函數(shù)方框圖。
具體實施例方式參見圖1并結合圖2所示,本發(fā)明的具體實施細節(jié)將通過采用DES(Data Encrypt ion Standard)算法的非接觸式邏輯加密卡的三重認證流程來說明。DES算法是美國聯(lián)邦政府的聯(lián)邦信息處理標準所選用的一種公開分組密碼算法。 DES算法的入口參數(shù)有三個Key、Data和Mode。其中,Key為8個字節(jié)共64位,是DES算法 的工作密鑰;Data也為8個字節(jié)64位,是要被加密或解密的數(shù)據(jù);Mode為DES的工作方式, 分為加密或解密兩種。圖2是非接觸式邏輯加密卡使用本發(fā)明的一實施例,該非接觸式邏輯加密卡100 包括RF部件110,用于接收發(fā)送具有數(shù)據(jù)信息的射頻(RF)信號;編解碼器120,用于對接收的RF信號按照通訊協(xié)議解碼得到數(shù)據(jù)信號,以及對要 發(fā)送的數(shù)據(jù)進行編碼以便通過RF信號返回到讀卡機;邏輯控制模塊130,用于非接觸式邏輯加密卡的狀態(tài)控制、分組加解密模塊(如圖 中DES算法模塊150)的調用、隨機數(shù)發(fā)生器的調用、及其他邏輯功能;DES算法模塊150,用于完成數(shù)據(jù)加解密,主要用于三重認證過程中數(shù)據(jù)加解密;隨機數(shù)發(fā)生器140,用于產(chǎn)生在三重認證過程中使用的32位隨機數(shù)。參見圖1,在上述實施例中,非接觸式邏輯加密卡與讀卡機的三重認證過程用于非 接觸式邏輯加密卡與讀卡機進行身份合法性鑒別,分為兩次通訊。在上述實施例中,非接觸式邏輯加密卡認證通訊流程中采用的隨機數(shù)RB,以及認 證終端向被認證終端發(fā)出的令牌數(shù)據(jù)TokenAB和被認證終端向認證終端發(fā)出的令牌數(shù)據(jù) TokenBA的組成結構如圖3所示。其中分組密碼算法為DES算法;RBURB2和RA均為32位隨機數(shù);RB1和RB2為非接觸式邏輯加密卡產(chǎn)生的32位 隨機數(shù),RA為讀卡機產(chǎn)生的32位隨機數(shù);TokenRB = RB = {RB1,RB2},為64位數(shù)據(jù),其中{}為位拼接運算符,本實施例中, 將兩個32位隨機數(shù)拼接成一個64位數(shù)據(jù),下同;數(shù)據(jù)處理函數(shù)(RA, RBI) = {RBI, RA},為64位數(shù)據(jù),即(RA, RBI)僅實現(xiàn)位拼 接功能;數(shù)據(jù)處理函數(shù)f2 (RA, RB2) = {RA, RB2},為64位數(shù)據(jù),即f2 (RA, RB2)也僅實現(xiàn)位 拼接功能;TokenAB為對64位數(shù)據(jù){RB1,RA}進行一次加密的密文;TokenBA為對64位數(shù)據(jù){RA,RB2}進行一次加密的密文。圖3中描述了本實施例中與認證有關的所有數(shù)據(jù)組成情況,也給出了認證有關的 數(shù)據(jù)處理函數(shù)和分組密碼算法運算情況。圖中MSB(Most Significant Bit)表示最高有效 位;LSB(Least Significant Bit)表示最低有效位。數(shù)據(jù)在空間傳輸時,均為低字節(jié)低位先發(fā)送,在非接觸式邏輯加密卡或讀卡機內
5部使用明文、密文和密鑰時的排列順序均為最高位在左,最低位在右。第一次通訊,讀卡機發(fā)送認證指令、密鑰地址,非接觸式邏輯加密卡返回64位隨 機數(shù)RB。第二次通訊,讀卡機利用接收到的64位隨機數(shù)RB,和讀卡機上產(chǎn)生的32位隨機 數(shù)RA,按圖3格式加密生成密文TokenAB,讀卡機發(fā)送64位密文TokenAB ;非接觸式邏輯加 密卡接收到密文TokenAB,解密后比較RB1,比較正確后,按圖3格式生成密文TokenBA,發(fā)送 64位密文TokenBA ;讀卡機接收到密文TokenBA,解密后比較RA和RB2,比較正確后,認證完 成。認證過程中讀卡機生成的隨機數(shù)RA始終隱含在通訊密文中,避免了以明文模式通訊時 在通訊通道中的泄露。詳細三重認證流程如下第1步,讀卡機發(fā)送認證指令以及指令參數(shù)(密鑰塊地址)。第2步,非接觸式邏輯加密卡接收指令進行譯碼。非接觸式邏輯加密卡接收指令 完畢后,從指定地址的非易揮發(fā)性存儲器中讀出分組密碼算法的密鑰,并存入分組密碼算 法模塊的密鑰寄存器組中。第3步,非接觸式邏輯加密卡發(fā)送由隨機數(shù)發(fā)生器產(chǎn)生的64位隨機數(shù)RB,結合圖 3所示,該隨機數(shù)RB由兩個32位數(shù)據(jù)組成,即RB1 (左半部分)和RB2 (右半部分),同時存 入64位隨機數(shù)暫存寄存器。第4步,讀卡機收到隨機數(shù)RB后,由讀卡機的隨機數(shù)發(fā)生器產(chǎn)生32位隨機數(shù) RA,之后進行第一次加密,加密的明文為RB1 (左半部分)RA (右半部分),形成64位密文 TokenAB ;加密結束后發(fā)送64位密文TokenAB (低位先發(fā))。第5步,非接觸式邏輯加密卡接收密文TokenAB的同時將密文TokenAB存入64位 移位寄存器中,之后非接觸式邏輯加密卡上分組加解密模塊進行第一次解密,解密后的明 文左半部分與非接觸式邏輯加密卡的隨機數(shù)暫存寄存器中的RB1比較。第6步,比較RB1正確后,在非接觸式邏輯加密卡上進行第一次加密,加密的明文 為接收到的RA(左半部分)和RB2(右半部分),得到密文TokenBA。如果比較后RBI不同, 則非接觸式邏輯加密卡無響應并返回到起始狀態(tài)。第7步,非接觸式邏輯加密卡加密完成后,發(fā)送密文TokenBA (低位先發(fā))。在發(fā)送 完成后,非接觸式邏輯加密卡進入認證后狀態(tài),等待讀卡機發(fā)送的認證后狀態(tài)下的命令。同 時分組加解密模塊以密文TokenBA為明文進行加密運算,得到的密文并行存入64位流密鑰 移位寄存器,作為之后通訊的密鑰流的起始64位密鑰。第8步,讀卡機接收到密文TokenBA后,解密密文TokenBA并比較RA和RB2,如果 RA和RB2比較正確,認證完成。以上通過具體實施方式
對本發(fā)明進行了詳細的說明,但這些并非構成對本發(fā)明的 限制。在不脫離本發(fā)明原理的情況下,本領域的技術人員還可做出許多變形和改進,如采 用不同的分組密碼算法(AES算法或其他組織制定的特殊分組密碼算法等),RB/TokenRB/ TokenAB/TokenBA 的位數(shù)、TokenRB 的產(chǎn)生方式、TokenAB/TokenBA 中 RA 和 RB 的組成[即 數(shù)據(jù)處理函數(shù)fjRAdBl)和數(shù)據(jù)處理函數(shù)&(肌,1 2)]等均可以作出改變,這些改變也應 視為本發(fā)明的保護范圍。
權利要求
一種基于分組密碼算法的三重認證方法,其特征在于包括如下步驟,步驟一、被認證終端收到認證指令后產(chǎn)生隨機數(shù)RB,并將隨機數(shù)RB分成兩個固定字長的部分RB1和RB2,根據(jù)隨機數(shù)RB通過數(shù)據(jù)處理得到被認證終端返回給認證終端的數(shù)據(jù)TokenRB,并將TokenRB返回給認證終端;步驟二、認證終端接收到TokenRB,恢復得到隨機數(shù)RB和兩個固定字長的RB1及RB2數(shù)據(jù),再加上認證終端內部產(chǎn)生的隨機數(shù)RA,通過一個數(shù)據(jù)處理函數(shù)f1(RA,RB1),將隨機數(shù)RB和兩個固定字長的RB1及RB2數(shù)據(jù)及認證終端產(chǎn)生的隨機數(shù)RA組合成一個一次分組密碼算法所需字長的數(shù)據(jù),該數(shù)據(jù)經(jīng)分組密碼算法運算后形成認證終端向被認證終端發(fā)出的令牌數(shù)據(jù)TokenAB,并發(fā)送給被認證終端;步驟三、被認證終端接收到TokenAB后進行分組密碼算法運算,恢復獲得的隨機數(shù)RA和部分或全部RB1數(shù)據(jù),比較對應部分或全部RB1信息,如果相一致,則再通過另一個數(shù)據(jù)處理函數(shù)f2(RA,RB2),組合成另一個一次分組密碼算法所需字長的數(shù)據(jù),該數(shù)據(jù)經(jīng)分組密碼算法運算后形成被認證終端向認證終端發(fā)出的令牌數(shù)據(jù)TokenBA并發(fā)送給認證終端;如果比較后不一致,則被認證終端無響應并返回到起始狀態(tài);步驟四、認證終端接收到TokenBA,再次通過分組密碼算法運算后,恢復獲得部分或全部隨機數(shù)RA和部分或全部RB2數(shù)據(jù),并與認證終端內已有的對應部分或全部RB2數(shù)據(jù)和部分或全部隨機數(shù)RA進行比較,如果相一致,則確認三重認證通過;如果不一致,則中斷與該被認證終端的進一步通訊。
2.如權利要求1所述的方法,其特征在于所述隨機數(shù)RB字長為32位以上,且兩個固 定字長的部分中RBl的字長也為32位或32位以上。
3.如權利要求1所述的方法,其特征在于所述TokenRB為隨機數(shù)RB本身,或通過數(shù) 據(jù)處理函數(shù)g(RB)得到分組密碼算法所需的數(shù)據(jù)字長并經(jīng)分組密碼算法運算得到;其中, 數(shù)據(jù)處理函數(shù)g(RB)的輸入輸出一一對應,運算可逆。
4.如權利要求1所述的方法,其特征在于所述隨機數(shù)RA的字長為32位以上。
5.如權利要求1所述的方法,其特征在于所述數(shù)據(jù)處理函數(shù)f\(RA,RBl)與RBl中被 使用的數(shù)據(jù)一一對應;所述數(shù)據(jù)處理函數(shù)(RA, RBl)和隨機數(shù)RA 一一對應。
6.如權利要求1所述的方法,其特征在于所述數(shù)據(jù)處理函數(shù)f\(RA,RBl)使用全部隨 機數(shù)RA,并使用部分或全部RBl數(shù)據(jù),且數(shù)據(jù)處理函數(shù)^肌,RBl)的字長為分組密碼算法 的數(shù)據(jù)字長。
7.如權利要求1所述的方法,其特征在于所述TokenAB為數(shù)據(jù)處理函數(shù)(RA,RBl) 的結果再通過分組密碼算法運算后的數(shù)據(jù)。
8.如權利要求1所述的方法,其特征在于所述數(shù)據(jù)處理函數(shù)f2(RA,RB2)與RA中被 使用的數(shù)據(jù)一一對應;所述數(shù)據(jù)處理函數(shù)f2(RA,RB2)與RB2中被使用的數(shù)據(jù)一一對應。
9.如權利要求1所述的方法,其特征在于所述數(shù)據(jù)處理函數(shù)f2(RA,RB2)使用部分或 全部隨機數(shù)RA,并使用部分或全部RB2數(shù)據(jù),且數(shù)據(jù)處理函數(shù)&(肌,RB2)的字長為分組密 碼算法的數(shù)據(jù)字長。
10.如權利要求1所述的方法,其特征在于所述TokenBA為數(shù)據(jù)處理函數(shù)f2(RA, RB) 的結果再通過分組密碼算法運算后的數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種基于分組密碼算法的三重認證方法,被認證終端收到認證指令后產(chǎn)生隨機數(shù)RB,并將RB分為RB1和RB2,根據(jù)RB得到TokenRB,并將TokenRB返回認證終端;認證終端收到TokenRB,得到RB和RB1及RB2,加上認證終端的隨機數(shù)RA,經(jīng)分組密碼算法運算后形成TokenAB并發(fā)送給被認證終端;被認證終端收到TokenAB進行分組密碼算法運算,獲得隨機數(shù)RA和部分或全部RB1數(shù)據(jù),經(jīng)比較若一致,將形成TokenBA并發(fā)送給認證終端;認證終端再次通過分組密碼算法運算后恢復部分或全部RA和部分或全部RB2,經(jīng)比較如果相一致,則三重認證通過。本發(fā)明能夠提高兩個通訊終端進行身份合法性的鑒別,并能保證通訊過程中數(shù)據(jù)的安全性。
文檔編號H04L9/32GK101882994SQ200910057179
公開日2010年11月10日 申請日期2009年5月6日 優(yōu)先權日2009年5月6日
發(fā)明者盧君明 申請人:上海華虹集成電路有限責任公司