本公開(kāi)一般地涉及電子電路,并且更具體地涉及無(wú)接觸式通信電路。本公開(kāi)更具體地針對(duì)由無(wú)接觸式通信終端進(jìn)行的對(duì)無(wú)接觸式通信電路的認(rèn)證。
背景技術(shù):
在接近耦合裝置(PCD)(例如,無(wú)接觸式終端(無(wú)接觸式讀取器))與無(wú)接觸式設(shè)備(接近設(shè)備—PD)(特別是無(wú)接觸式集成電路(接近集成電路—PIC)或無(wú)接觸式集成電路卡(接近集成電路卡—PICC)))之間通過(guò)無(wú)接觸式鏈路的通信一般是以所述接近設(shè)備與所述接近耦合設(shè)備的相互認(rèn)證的操作開(kāi)始的。
所述認(rèn)證操作包括一連串的在所述接近耦合設(shè)備與所述接近設(shè)備之間進(jìn)行數(shù)據(jù)交換的步驟以及由所述接近耦合設(shè)備和所述接近設(shè)備進(jìn)行計(jì)算的步驟。這些步驟中的一些可能容易受到特別是針對(duì)與由所述接近設(shè)備執(zhí)行的加密方法相關(guān)進(jìn)行恢復(fù)信息的攻擊。
技術(shù)實(shí)現(xiàn)要素:
期望一種更好地保護(hù)由接近耦合設(shè)備進(jìn)行的對(duì)接近設(shè)備認(rèn)證的操作的步驟。
因此,實(shí)施方式提供了一種利用無(wú)接觸式通信終端來(lái)認(rèn)證無(wú)接觸式通信電路的方法,該方法連續(xù)地包括:
第一階段,其包括由所述無(wú)接觸式通信電路確定第一數(shù)(number),所述第一階段以通過(guò)所述無(wú)接觸式通信電路將所述第一數(shù)發(fā)送給所述無(wú)接觸式通信終端結(jié)束;
第二階段,其包括由所述無(wú)接觸式通信終端通過(guò)使用所述第 一密鑰對(duì)第一數(shù)進(jìn)行解密來(lái)確定第二數(shù),由所述無(wú)接觸式通信終端基于所述第二數(shù)來(lái)確定第三數(shù),以及由所述無(wú)接觸式通信終端通過(guò)使用所述第一密鑰對(duì)第三數(shù)進(jìn)行加密來(lái)確定第四數(shù),所述第二階段以由所述無(wú)接觸式通信終端將所述第四數(shù)發(fā)送給所述無(wú)接觸式通信電路結(jié)束;以及
第三階段,其包括由所述無(wú)接觸式通信電路通過(guò)使用所述第一密鑰而將所述第四數(shù)解密來(lái)獲得第三數(shù),以及如果從所述第三數(shù)獲得的第六數(shù)不同于第七數(shù),則由所述無(wú)接觸式通信電路中斷認(rèn)證,其中,所述第一階段不包括使用第一密鑰的加密操作。
根據(jù)一個(gè)實(shí)施方式,所述第七數(shù)由所述無(wú)接觸式通信電路基于通過(guò)由所述無(wú)接觸式通信電路通過(guò)使用所述第一密鑰來(lái)將所述第一數(shù)解密而獲得的第八數(shù)來(lái)確定。
根據(jù)一個(gè)實(shí)施方式,所述方法包括,在所述第一階段處,確定第九數(shù),該第九數(shù)是隨機(jī)的,且沒(méi)有由所述無(wú)接觸式通信電路進(jìn)行加密操作。
根據(jù)一個(gè)實(shí)施方式,在第一階段中,所述第一數(shù)等于所述第九數(shù)。
根據(jù)一個(gè)實(shí)施方式,在所述第一階段中,所述第一數(shù)是通過(guò)由所述無(wú)接觸式通信電路通過(guò)使用不同于所述第一密鑰的第二密鑰將所述第九數(shù)加密而獲得的,所述第二密鑰具有與所述第一密鑰相同的大小,使用所述第二密鑰的加密算法與使用所述第一密鑰的加密算法相同。
根據(jù)一個(gè)實(shí)施方式,在所述第一階段中,所述第一數(shù)是通過(guò)由所述無(wú)接觸式通信電路通過(guò)使用所述第三密鑰(其是隨機(jī)的)將非隨機(jī)的第十?dāng)?shù)加密而獲得的,所述第三密鑰具有與所述第一密鑰相同的大小,使用所述第三密鑰的加密算法與使用所述第一密鑰的加密算法相同。
根據(jù)一個(gè)實(shí)施方式,在所述第一階段中,所述無(wú)接觸式通信電路隨機(jī)地執(zhí)行以下步驟:a)將所述第一數(shù)確定為等于利用所述第一 密鑰將所述第九數(shù)加密的結(jié)果;b)將所述第一數(shù)確定為等于所述第八數(shù)。
根據(jù)一個(gè)實(shí)施方式,所述方法還包括,在步驟a)處,將所述第八數(shù)確定為等于所述第九數(shù),并且在步驟b)處,使用不同于所述第一密鑰的第四密鑰來(lái)執(zhí)行加密操作,所述第四密鑰具有與所述第一密鑰相同的大小,使用所述第四密鑰的加密算法與使用所述第一密鑰的加密算法相同。
根據(jù)一個(gè)實(shí)施方式,所述方法還包括在第三階段中由無(wú)接觸式通信電路執(zhí)行步驟c),所述步驟c)包括,當(dāng)執(zhí)行了步驟a)時(shí),使用不同于所述第一密鑰的第五密鑰來(lái)執(zhí)行解密操作,所述第五密鑰具有與所述第一密鑰相同的大小,使用所述第五密鑰的解密算法與所述使用第一密鑰的加密算法相同,并且步驟c)包括,當(dāng)執(zhí)行了步驟b)時(shí),通過(guò)由所述無(wú)接觸式通信電路使用所述第一密鑰將所述第一數(shù)解密來(lái)確定所述第八數(shù)。
根據(jù)一個(gè)實(shí)施方式,所述方法連續(xù)地包括在所述第一階段中,如果布爾變量為真,則由所述無(wú)接觸式通信電路將所述第一數(shù)確定為等于利用所述第一密鑰將所述第九數(shù)加密的結(jié)果,并且如果所述布爾變量為假,則所述無(wú)接觸式通信電路重復(fù)使用所述第一數(shù)的最后確定值,并且包括將所述布爾變量設(shè)置成假狀態(tài)。
根據(jù)一個(gè)實(shí)施方式,所述方法還包括在所述第三階段中,如果從所述第四數(shù)獲得的所述第六數(shù)等于所述第七數(shù),則由所述無(wú)接觸式通信電路將所述布爾變量設(shè)置成真狀態(tài)。
根據(jù)一個(gè)實(shí)施方式,所述方法包括在所述第二階段中,由所述無(wú)接觸式通信終端確定第十一數(shù),該第十一數(shù)是隨機(jī)的,并且由所述無(wú)接觸式通信終端基于所述第二數(shù)來(lái)確定第十二數(shù),所述第三數(shù)對(duì)應(yīng)于所述第十一數(shù)和所述第十二數(shù)的并置。
根據(jù)一個(gè)實(shí)施方式,所述方法還包括在所述第三階段中,由所述無(wú)接觸式通信電路基于所述第三數(shù)來(lái)確定第十三數(shù),通過(guò)利用所述第一密鑰將所述第十三數(shù)加密來(lái)確定第十四數(shù),所述第三階段以 由所述無(wú)接觸式通信電路將所述第十四數(shù)發(fā)送給所述無(wú)接觸式通信終端結(jié)束。
另一實(shí)施方式提供了一種利用無(wú)接觸式通信終端來(lái)認(rèn)證無(wú)接觸式通信電路的方法,該方法連續(xù)地包括:
第一階段,其包括由所述無(wú)接觸式通信電路確定第一數(shù),所述第一數(shù)等于利用第一密鑰將第二數(shù)加密的結(jié)果的,所述第二數(shù)是隨機(jī)數(shù),所述第一階段以由所述無(wú)接觸式通信電路將所述第一數(shù)發(fā)送給所述無(wú)接觸式通信終端結(jié)束;
第二階段,其包括由所述無(wú)接觸式通信終端通過(guò)使用所述第一密鑰對(duì)第一數(shù)進(jìn)行加密來(lái)確定第三數(shù),由所述無(wú)接觸式通信終端基于所述第三數(shù)來(lái)確定第四數(shù),以及由所述無(wú)接觸式通信終端通過(guò)使用所述第一密鑰對(duì)所述第四數(shù)進(jìn)行加密來(lái)確定第五數(shù),所述第五數(shù)包括至少第一和第二并置部分,所述第二階段以由所述無(wú)接觸式通信電路將所述第五數(shù)發(fā)送給所述無(wú)接觸式通信終端結(jié)束;以及
第三階段,其包括由所述無(wú)接觸式通信電路基于所述第二數(shù)來(lái)確定第六數(shù),利用密碼塊鏈接操作模式通過(guò)使用所述第一密鑰將所述第六數(shù)和等于所述第五數(shù)的第一部分的初始化矢量加密來(lái)確定第七數(shù),并且如果所述第七數(shù)不同于所述第五數(shù)的第二部分,則由所述無(wú)接觸式通信電路中斷認(rèn)證。
根據(jù)一個(gè)實(shí)施方式,所述方法還包括,在所述第三階段中,由所述無(wú)接觸式通信電路通過(guò)使用所述第一密鑰來(lái)將所述第五數(shù)解密以提供所述第四數(shù)。
根據(jù)一個(gè)實(shí)施方式,所述方法還包括,在所述第三階段中,由所述無(wú)接觸式通信電路基于第四數(shù)來(lái)確定第八數(shù),通過(guò)利用所述第一密鑰將所述第八數(shù)加密來(lái)確定第九數(shù),所述第三階段以由所述無(wú)接觸式通信電路將所述第九數(shù)發(fā)送給所述無(wú)接觸式通信終端結(jié)束。
根據(jù)一個(gè)實(shí)施方式,由所述無(wú)接觸式通信電路執(zhí)行的每個(gè)加密操作包括提供至少一個(gè)第一消息塊和至少一個(gè)第二消息塊,通過(guò)借助于所述第一密鑰將在所述第一消息塊與初始化矢量之間應(yīng)用的 XOR函數(shù)的結(jié)果加密來(lái)提供第一加密消息塊,并且通過(guò)借助于所述第一密鑰將在所述第二消息塊與所述第一加密消息塊之間應(yīng)用的XOR函數(shù)的結(jié)果加密來(lái)提供第二加密消息塊。
根據(jù)一個(gè)實(shí)施方式,所述方法包括在所述第二階段中,由所述無(wú)接觸式通信終端確定第十?dāng)?shù),所述第十?dāng)?shù)是隨機(jī)的,并且由所述無(wú)接觸式通信終端基于所述第三數(shù)來(lái)確定第十一數(shù),所述第四數(shù)對(duì)應(yīng)于所述第十?dāng)?shù)和所述第十一數(shù)的并置。
根據(jù)一個(gè)實(shí)施方式,所述第一階段不包括使用所述第一密鑰的加密操作。
另一實(shí)施方式提供一種無(wú)接觸式通信電路,其包括被編程為執(zhí)行先前定義的方法的微處理器。
另一實(shí)施方式提供一種微電路卡,其包括被編程為執(zhí)行先前定義的方法的電路。
又一實(shí)施方式提供一種無(wú)接觸式通信電路,其包括:無(wú)線通信電路,其被配置成檢測(cè)無(wú)接觸式通信終端,并且當(dāng)所述無(wú)接觸式通信電路在所述無(wú)接觸式通信終端的附近時(shí)與之以電磁方式交換信息;以及微處理器,其被編程為生成被發(fā)送給所述無(wú)接觸式通信終端的所述信息,并在至少三個(gè)階段中分析從所述無(wú)接觸式通信終端接收到的所述信息。其中,在所述第一階段中的生成和分析包括:利用第一密鑰將第一隨機(jī)數(shù)加密以產(chǎn)生第一已加密消息;以及從所述無(wú)接觸式通信電路向所述無(wú)接觸式通信終端發(fā)送所述第一已加密消息,所述發(fā)送所述第一已加密消息結(jié)束所述第一階段。其中,在第二階段中的生成和分析包括:從所述無(wú)接觸式通信終端接收第二已加密消息,所述第二已加密消息是從所述第一已加密消息的解密和第二隨機(jī)數(shù)生成的,所述接收第二已加密消息使所述第二階段結(jié)束。其中,在第三階段中的生成和分析包括:利用所述第一密鑰將所述第二已加密消息解密以產(chǎn)生已解密消息;對(duì)所述已解密消息執(zhí)行至少一個(gè)邏輯操作;測(cè)試所述已解密消息是否是可信的;如果所述已解密消息是可信的,則執(zhí)行加密操作以提供第三已加密消息,所述 加密操作包括密碼塊鏈接操作模式,其利用所述第一密鑰將所述已解密消息的至少一部分和初始化矢量的至少一部分加密;以及從所述無(wú)接觸式通信電路向所述無(wú)接觸式通信終端發(fā)送所述第三已加密消息,所述發(fā)送所述第三已加密消息使第三階段結(jié)束。
附圖說(shuō)明
參考以下各圖來(lái)描述非限制性且非窮舉性實(shí)施方式,其中,相同的附圖標(biāo)記遍及各種圖指代相同部分,除非另外說(shuō)明。在下文中參考附圖來(lái)描述一個(gè)或多個(gè)實(shí)施方式。在特定實(shí)施方式的以下非限制性描述中將結(jié)合附圖來(lái)詳細(xì)地描述前述及其它特征和優(yōu)點(diǎn),在所述附圖中:
圖1非常示意性地示出了接近通信系統(tǒng)的實(shí)施方式;
圖2是接近設(shè)備和接近耦合設(shè)備的相互認(rèn)證的方法的通常示例的簡(jiǎn)化框圖;
圖3至圖5是接近設(shè)備和接近耦合設(shè)備的相互認(rèn)證的方法的實(shí)施方式的簡(jiǎn)化框圖;
圖6至圖8是能夠根據(jù)塊鏈接操作模式來(lái)執(zhí)行加密操作的加密電路的簡(jiǎn)化框圖;以及
圖9是接近設(shè)備和接近耦合設(shè)備的相互認(rèn)證的方法的另一實(shí)施方式的簡(jiǎn)化框圖。
具體實(shí)施方式
在不同的圖中利用相同的參考標(biāo)號(hào)來(lái)指定相同元件。為了清楚起見(jiàn),僅示出并詳細(xì)描述了對(duì)理解所述實(shí)施方式有用的那些元件。特別地,并未詳述一旦已執(zhí)行認(rèn)證操作時(shí)接近耦合設(shè)備與接近集成電路之間的交換,所描述實(shí)施方式與通常交換相兼容。除非另外指定,措辭“近似”、“基本上”和“大約”意圖在10%內(nèi),優(yōu)選地在5%內(nèi)。
以形成接近集成電路卡(PICC)的無(wú)接觸式卡和形成接近耦合 設(shè)備(PCD)的無(wú)接觸式讀取器為例描述了實(shí)施方式。然而,他們更一般地適用于被用作接近耦合設(shè)備的任何設(shè)備和其中出現(xiàn)類似問(wèn)題的任何無(wú)接觸式通信集成電路。
圖1非常示意性地示出了所描述實(shí)施方式所適用類型的無(wú)接觸式通信系統(tǒng)的示例。
無(wú)接觸式通信終端10或接近讀取器(READER)產(chǎn)生電磁場(chǎng)。位于讀取器內(nèi)的無(wú)接觸式卡12(CARD)檢測(cè)到該場(chǎng)且然后能夠與讀取器10交換信息。
卡12可托管一個(gè)或多個(gè)應(yīng)用程序。作為示例,這些應(yīng)用程序可使用已知為MIFARE的技術(shù)。需由卡執(zhí)行的應(yīng)用程序可取決于其與之通信的讀取器。事實(shí)上,讀取器一般地專用于應(yīng)用程序(例如,銀行、運(yùn)輸、訪問(wèn)控制等),并且卡在讀取器的場(chǎng)中的激活取決于卡所接受的協(xié)議。
技術(shù)具有不同的變型,特別是或MIFARE變型。和MIFARE是NXP B.V.在美國(guó)的注冊(cè)商標(biāo)。此類變型特別地因所執(zhí)行的加密方法不同而不同。根據(jù)示例,加密方法對(duì)應(yīng)于對(duì)稱加密算法,例如將一個(gè)密鑰、兩個(gè)密鑰或三個(gè)密鑰用于加密的AES(高級(jí)加密標(biāo)準(zhǔn))算法或DES(數(shù)據(jù)加密標(biāo)準(zhǔn))算法。
圖2是執(zhí)行MIFARE DESFIRE或MIFARE PLUS技術(shù)的無(wú)接觸式芯片與讀取器的相互認(rèn)證的方法的通常示例的簡(jiǎn)化框圖。
認(rèn)證PICC卡的方法在讀取器已檢測(cè)到卡的存在并想要認(rèn)證該卡時(shí)開(kāi)始??梢栽谡J(rèn)證開(kāi)始之前發(fā)送其它命令。認(rèn)證方法包括連續(xù)的階段S1、S2、S3和S4,每個(gè)階段包括連續(xù)步驟。
PCD和PD共享多個(gè)密鑰值的知識(shí)。在階段S1處,讀取器(PCD)選擇密鑰(步驟20),并且將其標(biāo)識(shí)符Idk連同認(rèn)證控制信號(hào)一起發(fā)送給卡(PICC)。密鑰k的長(zhǎng)度尤其取決于所執(zhí)行的加密算法。作為示例,密鑰的長(zhǎng)度可以是8、16或24位。
卡生成長(zhǎng)度RL的隨機(jī)數(shù)Rb(步驟22)。隨機(jī)數(shù)Rb的長(zhǎng)度RL 取決于所執(zhí)行的加密算法。作為示例,長(zhǎng)度RL可以是8或16位??ㄈ缓笸ㄟ^(guò)使用具有標(biāo)識(shí)符Idk的密鑰k進(jìn)行對(duì)隨機(jī)數(shù)Rb的加密,來(lái)確定已加密消息A1,并且將所述已加密消息A1發(fā)送給讀取器。
在階段S2處,讀取器通過(guò)使用同一密鑰k來(lái)將已加密消息A1解密,并獲得隨機(jī)數(shù)Rb_pcd(步驟26)。讀取器然后通過(guò)在二進(jìn)制表示中將隨機(jī)數(shù)Rb_pcd的位左旋轉(zhuǎn)多個(gè)位(例如8位),而基于隨機(jī)數(shù)Rb_pcd來(lái)確定隨機(jī)數(shù)R'b_pcd(步驟28)。讀取器生成長(zhǎng)度RL的新隨機(jī)數(shù)Ra_pcd(步驟30)。讀取器通過(guò)對(duì)隨機(jī)數(shù)Ra_pcd和隨機(jī)數(shù)R'b_pcd的級(jí)聯(lián)來(lái)確定消息Ra_pcd||R'b_pcd,并且通過(guò)使用密鑰k進(jìn)行消息Ra_pcd||R'b_pcd的加密來(lái)確定已加密消息B1(步驟32)并將已加密消息B1發(fā)送給卡。
在階段S3處,卡通過(guò)使用密鑰k來(lái)將已加密消息B1解密以獲得消息Ra_pcd||R'b_pcd(步驟36)。該卡然后通過(guò)在二進(jìn)制表示中將隨機(jī)數(shù)Rb的位左旋轉(zhuǎn)多個(gè)位(例如8位),而基于隨機(jī)數(shù)Rb來(lái)確定隨機(jī)數(shù)R'b(步驟38)。卡比較隨機(jī)數(shù)R'b_pcd和R'b(步驟40)。如果兩個(gè)隨機(jī)數(shù)R'b_pcd和R'b是不相同的,則卡終端認(rèn)證操作,該認(rèn)證操作失敗(步驟42)。這對(duì)應(yīng)于由PICC進(jìn)行的PCD的認(rèn)證。如果兩個(gè)隨機(jī)數(shù)R'b_pcd和R'b是相同的,則卡然后通過(guò)將隨機(jī)數(shù)Ra_pcd的位左旋轉(zhuǎn)多個(gè)位(例如8位)而基于隨機(jī)數(shù)Ra_pcd來(lái)確定隨機(jī)數(shù)R'a(步驟44)。卡然后通過(guò)使用密鑰k進(jìn)行對(duì)隨機(jī)數(shù)R'a的加密來(lái)確定已加密消息A2(步驟46),并且將已加密消息A2發(fā)送給讀取器。
在階段S4處,所述方法可包括附加步驟(步驟48),特別是由PCD通過(guò)以下操作進(jìn)行的對(duì)PICC的認(rèn)證:驗(yàn)證A2消息,確定被用于由讀取器和卡進(jìn)行的加密和解密的后續(xù)操作的會(huì)話密鑰??蓮碾S機(jī)數(shù)Ra和Rb獲得會(huì)話密鑰。
對(duì)于通過(guò)接觸讀取進(jìn)行卡認(rèn)證的方法,已知的是要提供由卡進(jìn)行的對(duì)不成功認(rèn)證嘗試的次數(shù)的計(jì)數(shù),并且當(dāng)不成功嘗試的次數(shù)超過(guò)閾值時(shí),停止認(rèn)證操作。然而,一般地在無(wú)接觸式卡認(rèn)證方法中不提供由卡進(jìn)行的對(duì)不成功嘗試次數(shù)的計(jì)數(shù),該計(jì)數(shù)是耗時(shí)操作。 事實(shí)上,持有接近于PICC的欺詐性PCD的個(gè)人可能會(huì)一直發(fā)送無(wú)效認(rèn)證直至卡被阻止為止。針對(duì)未提供解鎖機(jī)制的技術(shù),其導(dǎo)致卡的永久性損壞。此外,由于卡與讀取器之間的數(shù)據(jù)交換僅僅是在卡接近于讀取器的短時(shí)間期間發(fā)生的,所以認(rèn)證操作應(yīng)盡可能快速。攻擊者因此可能會(huì)執(zhí)行他/她期望次數(shù)的認(rèn)證嘗試。
前述認(rèn)證方法的弱點(diǎn)是,攻擊者可以重復(fù)卡在階段S1處執(zhí)行的同一密鑰k的前述步驟。每次,確定新的隨機(jī)數(shù)Rb和新的已加密消息A1。對(duì)有限數(shù)目的側(cè)面通道攻擊蹤跡和所獲得的已加密消息A1的分析使得能夠相當(dāng)大地減小可能密鑰k的密鑰空間而不會(huì)隨后要求針對(duì)每次重復(fù)執(zhí)行認(rèn)證方法的其它階段。PD生成新隨機(jī)數(shù)的事實(shí)為攻擊者提供引起注意的蹤跡分布。攻擊者然后可對(duì)減小的密鑰空間執(zhí)行暴力攻擊。當(dāng)卡在階段S3的步驟40處執(zhí)行的比較未導(dǎo)致失敗時(shí),攻擊者知道攻擊已成功。
前述認(rèn)證方法的另一弱點(diǎn)是,卡在階段S3處所使用的已加密消息B1可能會(huì)被攻擊者利用。攻擊者因此可以利用其選擇的已加密消息B1將解密步驟36重復(fù)期望的次數(shù),從而獲取側(cè)面通道攻擊蹤跡。然而,使用此弱點(diǎn)的攻擊花費(fèi)更多的時(shí)間,因?yàn)楸仨氃诿看螄L試之前執(zhí)行階段S1和S2的步驟。
將描述認(rèn)證方法的實(shí)施方式,其中卡在階段S1處執(zhí)行的步驟被修改以防止攻擊者使用這些步驟來(lái)獲得關(guān)于密鑰k的足夠信息。相對(duì)于卡在階段S1處執(zhí)行的步驟的前述弱點(diǎn)于是不能再被攻擊者使用。
圖3是由PCD讀取器認(rèn)證PICC卡的方法的實(shí)施方式的簡(jiǎn)化框圖。該認(rèn)證方法的實(shí)施方式包括先前相對(duì)于圖2所述的認(rèn)證方法的步驟,區(qū)別在于利用步驟50替換了步驟22和24,在步驟50處,通過(guò)生成長(zhǎng)度RL的隨機(jī)數(shù)來(lái)直接地獲得數(shù)A1。本實(shí)施方式還包括在階段S3處,在步驟36之前的通過(guò)由卡通過(guò)使利用密鑰k來(lái)將數(shù)A1解密而確定隨機(jī)數(shù)Rb的步驟52。
根據(jù)一種變型,利用通過(guò)使用不同于密鑰k的假密鑰進(jìn)行的對(duì) 隨機(jī)數(shù)的解密來(lái)確定已加密消息A1的步驟,來(lái)替換本實(shí)施方式前述步驟50。
根據(jù)另一變型,在步驟50處,通過(guò)利用等于長(zhǎng)度RL的隨機(jī)數(shù)的密鑰對(duì)給定數(shù)(例如0)加密來(lái)獲得已加密消息A1。
相對(duì)于由卡在階段S1處執(zhí)行的步驟的前述弱點(diǎn)于是不能再被攻擊者使用,因?yàn)檫@些步驟不再包括使用密鑰k的加密。
圖4是由讀取器認(rèn)證卡的方法的另一實(shí)施方式的簡(jiǎn)化框圖。在本實(shí)施方式中,隨機(jī)地執(zhí)行先前相對(duì)于圖2所述的方法或先前相對(duì)于圖3所述的方法。
更具體地,該認(rèn)證方法的實(shí)施方式包括先前相對(duì)于圖2所述的認(rèn)證方法的步驟,差別在于利用此后描述的步驟60、62、64和66替換了步驟22和24。卡生成長(zhǎng)度RL的隨機(jī)數(shù)R1(步驟60)。卡確定隨機(jī)位c(步驟62)并將其與“0”相比較(步驟64)。如果位c等于“0”,則卡通過(guò)使用密鑰k進(jìn)行的對(duì)隨機(jī)數(shù)R1的加密來(lái)確定已加密消息A1(步驟66),并且將已加密消息A1發(fā)送給讀取器。在階段S3處使用的隨機(jī)數(shù)Rb于是等于隨機(jī)數(shù)R1。如果位c等于“1”,則由卡發(fā)送給讀取器的數(shù)A1等于R1且卡通過(guò)向數(shù)Rb分配通過(guò)使用不同于密鑰k的假密鑰將隨機(jī)數(shù)R1加密的結(jié)果,來(lái)執(zhí)行加密操作(步驟68)。此加密的結(jié)果并未使用,而是保證在使用側(cè)面通道攻擊的情況下,其中c等于“1”的情況與其中c等于“0”的情況提供相同的蹤跡。
該認(rèn)證方法的實(shí)施方式還包括在階段S3處在步驟36之前的將在下文描述的附加步驟70、72和74??▽㈦S機(jī)位c與“0”相比較(步驟70)。如果位c等于“0”,亦即當(dāng)已在階段S1處執(zhí)行步驟66時(shí),卡通過(guò)向A1分配通過(guò)使用不同于密鑰k的假密鑰將隨機(jī)數(shù)R1解密的結(jié)果,來(lái)執(zhí)行解密操作(步驟72)。此解密的結(jié)果并未使用,而是保證在使用側(cè)面通道攻擊的情況下,其中c等于“1”的情況與其中c等于“0”的情況提供相同的蹤跡。
如果位c等于“0”,亦即當(dāng)已在階段S1處執(zhí)行步驟68時(shí),卡 通過(guò)使用密鑰k進(jìn)行對(duì)數(shù)A1的解密來(lái)確定隨機(jī)數(shù)Rb(步驟74)。
相對(duì)于由卡在階段S1處執(zhí)行的步驟的上述弱點(diǎn)于是不能再被攻擊者使用,因?yàn)檫@些步驟不再包括使用密鑰k的加密。此外,始終在階段S1處執(zhí)行加密步驟且始終在階段S2處執(zhí)行解密步驟,即使這些步驟根據(jù)位c的值而不一定有用。這使得能夠防止側(cè)面通道攻擊,因?yàn)楣粽卟荒軓臎](méi)有用的一些加密/解密步驟知道有用的加密/解密步驟。
圖5是由讀取器認(rèn)證卡的方法的另一實(shí)施方式的簡(jiǎn)化框圖。在本實(shí)施方式中,只有當(dāng)最后一個(gè)認(rèn)證程序已正確地發(fā)生時(shí),卡才執(zhí)行前述步驟22和24。當(dāng)最后一個(gè)認(rèn)證程序并未正確地發(fā)生時(shí),再次使用在已正確地發(fā)生的最后一個(gè)認(rèn)證程序中使用的隨機(jī)數(shù)Rb和已加密消息A1。
更具體地,該認(rèn)證方法的實(shí)施方式包括先前相對(duì)于圖2所述的認(rèn)證方法的步驟,并且還包括步驟80,在該步驟處,卡確定布爾變量ok是否為真,變量ok在第一次卡認(rèn)證嘗試時(shí)被初始化成真值。如果變量ok處于真狀態(tài),則由卡執(zhí)行步驟22和24。如果變量ok處于假狀態(tài),則卡再次使用在先前的認(rèn)證程序處確定的值Rb和A1(步驟82)。在已執(zhí)行步驟22和24或步驟82之后,卡將變量ok設(shè)置成假狀態(tài)(步驟84)。本實(shí)施方式還包括在步驟36至46之后的步驟86,在該步驟處卡將變量ok設(shè)置成真狀態(tài)。
利用本實(shí)施方式,只有當(dāng)先前的認(rèn)證程序已正確地發(fā)生時(shí)才能由卡執(zhí)行階段S1處的加密步驟。其中階段S1將被重復(fù)但卻不導(dǎo)致成功認(rèn)證(特別是要確定關(guān)于密鑰k的信息)的攻擊將不會(huì)在每次階段S1被重復(fù)時(shí)引起新加密步驟的執(zhí)行,這限制了攻擊者可能期望恢復(fù)的有用信息。
通過(guò)使用至少一個(gè)加密/解密模塊來(lái)進(jìn)行加密/解密操作。加密/解密模塊具有密碼塊長(zhǎng)度BL,并且能夠?qū)㈤L(zhǎng)度與密碼塊長(zhǎng)度相同的消息加密/解密。例如,針對(duì)DES算法,BL可以是8位,并且針對(duì)AES算法,BL可以是16位。針對(duì)比BL更長(zhǎng)且對(duì)應(yīng)于BL的倍數(shù)的 消息,可以通過(guò)密碼塊鏈接(CBC)來(lái)進(jìn)行加密/解密操作?,F(xiàn)在將描述另一實(shí)施方式,其適合于其中被用來(lái)確定已加密消息A1和B1的加密或解密方法通過(guò)密碼塊鏈接(CBC)來(lái)執(zhí)行操作模式的情況。
圖6是圖示出根據(jù)CBC操作模式的加密操作的原理的加密電路90的框圖。電路90包括加密模塊MOD1、MOD2、MOD3,在圖6中示出了三個(gè)模塊。每個(gè)加密模塊MOD1、MOD2、MOD3可以利用同一密鑰k進(jìn)行加密操作。電路90針對(duì)每個(gè)模塊MOD1、MOD2、MOD3接收要加密的消息塊E1、E2、E3,并且針對(duì)每個(gè)模塊MOD1、MOD2、MOD3提供已加密消息塊O1、O2和O3。每個(gè)模塊MOD1、MOD2、MOD3接收數(shù)IN1、IN2、IN3,并且通過(guò)使用對(duì)于所有模塊MOD1、MOD2、MOD3而言相同的密鑰進(jìn)行對(duì)數(shù)IN1、IN2、IN3的加密,來(lái)提供已加密消息塊O1、O2、O3。
該操作模式被稱為塊鏈接模式,因?yàn)楸荒K加密的每個(gè)數(shù)對(duì)應(yīng)于在模塊的輸入數(shù)與由先前的模塊提供的已加密消息塊之間應(yīng)用的XOR函數(shù)的結(jié)果。如圖6中所示,數(shù)IN3是在數(shù)E3和O2之間應(yīng)用XOR函數(shù)的結(jié)果,并且數(shù)IN2是在數(shù)E2與O1之間應(yīng)用XOR函數(shù)的結(jié)果。針對(duì)第一模塊MOD1,通過(guò)數(shù)E1和稱為初始化矢量的數(shù)IV的二進(jìn)制加法來(lái)獲得數(shù)IN1。
圖7是在圖6中所示的類型的加密電路92的框圖,其能夠在其中加密方法對(duì)應(yīng)于使用一個(gè)密鑰或兩個(gè)密鑰的DES算法或AES算法的情況下,在前述實(shí)施方式中實(shí)現(xiàn)。讀取器或卡所使用的每個(gè)隨機(jī)數(shù)的長(zhǎng)度然后等于可以被加密模塊加密的數(shù)的長(zhǎng)度,亦即密碼塊長(zhǎng)度。
圖7作為示例而示出了用以基于隨機(jī)數(shù)Ra_pcd和Rb_pcd來(lái)獲得已加密消息B1的加密操作。已加密消息B1具有兩倍長(zhǎng)度BL并被劃分成兩個(gè)并置塊,第一塊B1,1和第二塊B1,2,每個(gè)具有長(zhǎng)度RL。模塊MOD1接收在隨機(jī)數(shù)Ra_pcd與初始化矢量IV之間應(yīng)用的XOR函數(shù)的結(jié)果,并且提供已加密消息B1的第一塊B1,1。模塊MOD2接收在隨機(jī)數(shù)Rb_pcd與已加密消息塊B1,1之間應(yīng)用XOR函數(shù)的結(jié)果,并且 提供已加密消息B1的第二塊B1,2。在第一加密操作處,初始化矢量IV例如等于“0”。第二塊B1,2例如在下一加密操作處被用作初始化矢量IV。作為變型,IV針對(duì)每個(gè)加密操作均被設(shè)置成等于“0”。
圖8是在圖6中所示的類型的加密電路94的框圖,其能夠在其中加密方法對(duì)應(yīng)于使用三個(gè)密鑰的DES算法的情況下在前述實(shí)施方式中實(shí)現(xiàn)。讀取器或卡所使用的每個(gè)隨機(jī)數(shù)的采用二進(jìn)制表示的長(zhǎng)度RL然后等于長(zhǎng)度BL的兩倍。
圖8作為示例而示出了用以基于隨機(jī)數(shù)Ra_pcd和Rb_pcd來(lái)獲得已加密消息B1的加密操作。已加密消息B1具有四倍的長(zhǎng)度BL,并被劃分成長(zhǎng)度BL的四個(gè)并置塊B1,1a、B1,1b、B1,2a和B1,2b。隨機(jī)數(shù)Ra_pcd劃分成長(zhǎng)度BL的兩個(gè)并置塊Ra_pcd,1和Ra_pcd,2,并且隨機(jī)數(shù)Rb_pcd劃分成長(zhǎng)度BL的兩個(gè)并置塊Rb_pcd,1和Rb_pcd,2。模塊MOD1接收在塊Ra_pcd,1與初始化矢量IV之間應(yīng)用XOR函數(shù)的結(jié)果,并且提供已加密消息B1的第一塊B1,1a。模塊MOD2接收在塊Ra_pcd,2與已加密消息塊B1,1a之間應(yīng)用XOR函數(shù)的結(jié)果,并且提供已加密消息B1的第二塊B1,1b。模塊MOD3接收在隨機(jī)數(shù)Rb_pcd,1與已加密消息塊B1,1b之間應(yīng)用XOR函數(shù)的結(jié)果,并且提供已加密消息B1的第三塊B1,2a。模塊MOD4接收在塊Rb_pcd,2與塊B1,2a之間應(yīng)用XOR函數(shù)的結(jié)果,并且提供已加密消息B1的第四塊B1,2b。第三塊B1,2b例如在下一加密操作處被用作初始化矢量IV。第一和第二并置塊B1,1a和B1,1b形成加密消息B1的長(zhǎng)度RL的第一塊B1,1,并且第三和第四并置塊B1,2a和B1,2b形成已加密消息B1的長(zhǎng)度RL的第二塊B1,2。
圖9是由讀取器認(rèn)證卡的方法的實(shí)施方式的簡(jiǎn)化框圖。
在本實(shí)施方式中,在階段S3處,提供了附加步驟,以使得攻擊者不能再控制被用于加密或解密操作的數(shù)。
更具體地,該認(rèn)證方法的實(shí)施方式包括先前相對(duì)于圖2所述的認(rèn)證方法的步驟,差別在于在階段S3處,不存在步驟38,并且卡在階段S3處在步驟36之前執(zhí)行此后描述的附加步驟100、102、104和106。該卡通過(guò)在二進(jìn)制表示中將隨機(jī)數(shù)Rb的位左旋轉(zhuǎn)多個(gè)位(例 如8位)而基于隨機(jī)數(shù)Rb來(lái)確定隨機(jī)數(shù)R'b(步驟100)。卡通過(guò)使用密鑰k和隨機(jī)數(shù)R'b(其根據(jù)其長(zhǎng)度而被提供給加密電路的一個(gè)或多個(gè)第一模塊)來(lái)執(zhí)行加密方法(步驟102)。針對(duì)圖7中所示的加密方法的示例,其中每個(gè)加密模塊可以接收具有與隨機(jī)數(shù)R'b相同的長(zhǎng)度RL的數(shù),隨機(jī)數(shù)R'b被供應(yīng)給第一加密模塊。針對(duì)圖8中所示的加密方法的示例,其中每個(gè)加密模塊可以接收到具有隨機(jī)數(shù)R'b的一半長(zhǎng)度RL的數(shù),隨機(jī)數(shù)R'b的第一塊被供應(yīng)給第一加密模塊,并且隨機(jī)數(shù)R'b的第二塊被供應(yīng)給第二加密模塊。此外,通過(guò)使用與第一隨機(jī)數(shù)關(guān)聯(lián)的已加密消息B1的最后一個(gè)塊作為初始矢量IV來(lái)執(zhí)行加密方法,也即是說(shuō),所述最后一個(gè)對(duì)于圖7中所示的加密方法的示例而言為已加密消息B1的塊B1,1,而對(duì)于圖8中所示的加密方法的示例而言的已加密消息B1的塊B1,1b。加密電路的一個(gè)或多個(gè)第一模塊然后提供長(zhǎng)度RL的已加密消息塊B1,2_picc。該卡然后將已加密消息B1的第二塊B1,2與已加密消息塊B1,2_picc相比較(步驟104)。如果已加密消息B1的第二塊不同于數(shù)B1,2_picc,則卡中斷認(rèn)證階段(步驟106)。如果兩個(gè)數(shù)是相同的,則卡在前述步驟36處繼續(xù)進(jìn)行。
作為一種變型,步驟40和42可以不存在。
期望在階段S3處執(zhí)行攻擊的攻擊者可能會(huì)利用在階段S3處被卡使用的已加密消息B1。然而,攻擊者不可訪問(wèn)隨機(jī)數(shù)R'b。由于在隨機(jī)數(shù)R'b與已加密消息B1的塊之間應(yīng)用了XOR函數(shù),所以攻擊者并未控制加密模塊在加密操作期間所使用的數(shù)。
前述實(shí)施方式是在卡側(cè)執(zhí)行的且對(duì)于讀取器而言是透明的。這些實(shí)施方式不要求在讀取器側(cè)的任何修改。這樣形成(編程)的卡因此與現(xiàn)有讀取器兼容。
已描述了各種實(shí)施方式。本領(lǐng)域的技術(shù)人員將想到各種變更和修改。特別地,雖然已相對(duì)于微電路卡描述了實(shí)施方式,但其與其中出現(xiàn)類似問(wèn)題的任何接近通信設(shè)備(例如裝配有在卡模式下操作的NFC路由器的蜂窩電話)中的構(gòu)成相兼容。此外,雖然已相對(duì)于對(duì)MIFARE交易的應(yīng)用示例更具體地描述了實(shí)施方式,但其可變換 到其中出現(xiàn)有類似問(wèn)題的其它應(yīng)用。此外,所述實(shí)施方式的實(shí)際實(shí)現(xiàn)基于上文給定的功能指示且通過(guò)使用本質(zhì)上普通的電路或通過(guò)對(duì)該電路編程而在本領(lǐng)域的技術(shù)人員的能力之內(nèi)。特別地,這些實(shí)施方式所適用的無(wú)接觸式集成通信電路一般包括至少一個(gè)微處理器、一個(gè)或多個(gè)易失性和非易失性存儲(chǔ)器單元、接近通信接口和通常的根據(jù)托管應(yīng)用程序的其它電路。
上文已描述了具有不同變型的各種實(shí)施方式。應(yīng)注意的是本領(lǐng)域的技術(shù)人員可在未顯示出任何創(chuàng)造性的情況下將這些各種實(shí)施方式和變型的各種元素組合。特別地,可用先前相對(duì)于圖3、4和5所述的任何實(shí)施方式來(lái)執(zhí)行先前相對(duì)于圖9所述的實(shí)施方式。
可以將上述各種實(shí)施方式組合以提供更多實(shí)施方式。可以根據(jù)上文詳述的描述對(duì)實(shí)施方式進(jìn)行這些及其它改變。一般地,在以下權(quán)利要求中,不應(yīng)將所使用的術(shù)語(yǔ)理解成使權(quán)利要求局限于在本說(shuō)明書(shū)和權(quán)利要求中公開(kāi)的特定實(shí)施方式,而是應(yīng)理解成包括所有可能實(shí)施方式以及等價(jià)于此類權(quán)利要求的等同物的全部范圍。因此,權(quán)利要求受到本公開(kāi)的限制。