用于可靠地檢驗(yàn)碼的方法
【專利摘要】建議了用于可靠地檢驗(yàn)第一碼字的方法和電路裝置。該方法使用至少一個(gè)碼檢驗(yàn)器并且規(guī)定,待檢驗(yàn)的第一碼字在輸入碼檢驗(yàn)器之前被轉(zhuǎn)移到第二碼字中。
【專利說明】用于可靠地檢驗(yàn)碼的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種用于可靠地檢驗(yàn)碼的方法以及一種用于執(zhí)行所介紹的方法的電路裝置,該電路裝置也稱為測試器或檢驗(yàn)器并且被保護(hù)安全以免遭故障攻擊。
【背景技術(shù)】
[0002]冗余碼被采用在安全相關(guān)的系統(tǒng)中,在這些系統(tǒng)中如果存在故障則通過碼檢驗(yàn)器識(shí)別故障并由此可以避開臨界狀況。在此,η中取m碼也發(fā)揮作用。此外對于密碼應(yīng)用需要隨機(jī)發(fā)生器,所述隨機(jī)發(fā)生器根據(jù)NIST (國家標(biāo)準(zhǔn)和技術(shù)局)的建議(為此參見單獨(dú)的公開物“Recommendation for Random Number Generation Using Deterministic Random BitGenerators”,SP 800-90,2007年3月)應(yīng)當(dāng)具有自測試。對于任意的確定性隨機(jī)發(fā)生器,自測試的實(shí)現(xiàn)可能導(dǎo)致高的耗費(fèi)。如果為了該實(shí)現(xiàn)而使用η中取m碼,則建議的自測試可以簡單地通過碼檢驗(yàn)器來實(shí)現(xiàn)。
[0003]η中取m碼(m-out-of n_Code)在此是具有η比特碼字長度的錯(cuò)誤檢測碼,其中每個(gè)碼字恰好包括m個(gè)I的實(shí)例。
[0004]為了產(chǎn)生η中取m碼,例如可以使用具有η中取m編碼的掩碼發(fā)生器。這樣的掩碼發(fā)生器的可能結(jié)構(gòu)例如在圖1中示出并且在此在對應(yīng)的位置上加以解釋。
[0005]掩碼發(fā)生器與應(yīng)當(dāng)被用于操縱或讀出受保護(hù)數(shù)據(jù)的其它密碼設(shè)備和密碼算法一樣受到攻擊。在目前常見的加密方法——例如高級(jí)加密標(biāo)準(zhǔn)AES中,采用基于具有128和更多比特的秘鑰長度而即使在采用快速計(jì)算技術(shù)的情況下也不能通過“嘗試”(所謂的暴力破解)來求得的秘鑰。攻擊者因此也檢查實(shí)現(xiàn)的副作用,如電流消耗的時(shí)間變化曲線、持續(xù)時(shí)間或在加密操作時(shí)電路的電磁輻射。由于攻擊并非直接以功能為目標(biāo),因此將這樣的攻擊稱為芳路攻擊。
[0006]所述旁路攻擊(side channel attacks, SCA)使用密碼系統(tǒng)在設(shè)備中的物理實(shí)現(xiàn)。在此,觀察在實(shí)施密碼算法時(shí)具有密碼功能的控制設(shè)備,以找出所觀察的數(shù)據(jù)與秘密秘鑰的假設(shè)之間的相關(guān)性。
[0007]已知很多旁路攻擊,例如在Mangard, Oswald和Popp的公開物“Power AnalysisAttacks”,Springer 2007中描述的旁路攻擊。尤其是使用差分功率分析DPA可以實(shí)際上對AES的秘密秘鑰執(zhí)行成功的攻擊。
[0008]在DPA中繪出微處理器在密碼計(jì)算期間的電流消耗并且通過統(tǒng)計(jì)方法將所述電流消耗的軌跡與假設(shè)進(jìn)行比較。
[0009]在使DPA更難的已知方法中,干預(yù)該算法本身。在此在掩碼的情況下實(shí)施具有隨機(jī)變化的運(yùn)算對象的運(yùn)算并且結(jié)果是又計(jì)算出隨機(jī)值,這意味著隨機(jī)并沒有影響結(jié)果。另一種可能性是所謂的隱藏,其中嘗試通過對應(yīng)的低-高轉(zhuǎn)換來補(bǔ)償高-低轉(zhuǎn)換。
[0010]現(xiàn)代的例如高級(jí)加密標(biāo)準(zhǔn)AES的密碼方法如上面已經(jīng)講述地通過秘鑰的長度和方法的復(fù)雜度即使在目前的計(jì)算技術(shù)水平情況下也被很好地保護(hù)以免遭所謂的暴力破解,也就是嘗試所有可能性。潛在攻擊者的攻擊因此越來越多地針對實(shí)現(xiàn)。攻擊者嘗試用所謂的旁路攻擊經(jīng)由在處理算法時(shí)的電流消耗、經(jīng)由電磁輻射或處理的取決于運(yùn)算對象的持續(xù)時(shí)間來獲得可以推斷出秘密秘鑰的信息。但是如果將秘密秘鑰或者密碼運(yùn)算的輸入/輸出信號(hào)與攻擊者未知的掩碼關(guān)聯(lián),則攻擊變難或者甚至被阻止。攻擊者于是嘗試首先找出秘密掩碼。
[0011]一種用于改善針對這樣的旁路攻擊的魯棒性的可能性在于,在掩碼發(fā)生器中使用相同構(gòu)建的狀態(tài)自動(dòng)機(jī)或狀態(tài)機(jī)的裝置,向這些狀態(tài)自動(dòng)機(jī)或狀態(tài)機(jī)在輸入側(cè)輸送輸入信號(hào)并且這些狀態(tài)自動(dòng)機(jī)或狀態(tài)機(jī)依據(jù)其狀態(tài)產(chǎn)生輸出信號(hào),其中每個(gè)狀態(tài)機(jī)始終具有與該裝置的其它狀態(tài)機(jī)不同的狀態(tài)。在此假定,由于分別相同的I和O的數(shù)目(以及由此相同的漢明權(quán)重)并且由于在具有分別相同的漢明距離的相同輸入信號(hào)情況下這些狀態(tài)的轉(zhuǎn)換,電流消耗與所使用的狀態(tài)機(jī)的相應(yīng)狀態(tài)無關(guān)。
[0012]已知通過所謂的錯(cuò)誤攻擊可以將電路置于實(shí)際上不是為正常運(yùn)行而設(shè)置的狀態(tài)下。該非正常的運(yùn)行提供了簡單地求得秘密秘鑰的可能性。由此例如可以通過有針對性地改變運(yùn)行電壓(Spike攻擊)、通過電磁場或者通過例如Alpha微?;蚣す獾母I鋪硪鹚褂玫膯蝹€(gè)狀態(tài)機(jī)或所有狀態(tài)機(jī)的狀態(tài)向狀態(tài)(0,0,-,O)的改變。如果由此產(chǎn)生的比特向量被用于掩蔽秘鑰,則完全或至少部分地失去對該密鑰的原始設(shè)置的免遭旁路攻擊的保護(hù)。由此秘密秘鑰可以輕松地被求得。通過專用的碼檢驗(yàn)器尤其是可以在η中取m碼的情況下非常輕松地檢驗(yàn)一個(gè)或多個(gè)比特(尤其是在一個(gè)方向上)是否被篡改。
[0013]這樣的碼檢驗(yàn)器例如在A.P.Stroele和S.Tarnick的公開物“ProgrammableEmbedded Self-Testing Checkers for AlΙ-Unidirectional Error Detecting Codes,,,Proceedings of the 17th IEEE VLSI Test Symposium, Dana Point, CA,1999,361-369 頁中加以描述。在該公開物中描述了一種碼檢驗(yàn)器,其中該碼檢驗(yàn)器監(jiān)視系統(tǒng)的輸出,以便盡可能快地檢測出現(xiàn)的錯(cuò)誤。該檢驗(yàn)器由一定數(shù)量的全加器和觸發(fā)器構(gòu)建并且具有均勻的結(jié)構(gòu)。在另一公開物 S.Tarnick 的 “Design of Embedded Constant Weight Code CheckersBased on Averaging Operations,,,Proceedings of the 16th IEEE On-Line TestingSymposium, Corfu Island,希臘2010, 255-260頁中描述了用于相同目的的簡化電路。
[0014]公開文獻(xiàn)WO 2006/003023 A2描述了用于識(shí)別在系統(tǒng)無序碼的字中的單向錯(cuò)誤的方法和裝置。該裝置也包括一定數(shù)量的全加器和觸發(fā)器。包括翻譯電路和Berger類型碼檢驗(yàn)器的該裝置可以用少量的碼字來加以測試。
[0015]在所提到的公開文獻(xiàn)中描述的碼檢驗(yàn)器被構(gòu)建為,使得碼檢驗(yàn)器自測試。為此減小具有第一檢驗(yàn)器的碼空間,使得僅還存在一半的碼比特并且還僅有一半具有值I (n/2中取m/2)。該過程例如被一直執(zhí)行,直到存在2中取I碼(雙軌碼)。但是這僅當(dāng)m=n/2時(shí)才行。
[0016]雙軌碼最后在自測試的雙軌碼檢驗(yàn)器中加以檢驗(yàn),如例如在以下的文章中所描述的:S Kundu, S.M.Reddy “Embedded Totally Self-Checking Checkers A PracticalDesign, Design and Test of Computers,,,1990,第 7卷,第 4 版,5-12 頁。
[0017]在已知碼檢驗(yàn)器中的缺點(diǎn)是,已知碼檢驗(yàn)器本身不抵抗例如DPA的攻擊。與是否存在錯(cuò)誤攻擊無關(guān)地,攻擊者可以使用碼檢驗(yàn)器的周期來推斷出所使用的秘密秘鑰。
【發(fā)明內(nèi)容】
[0018]在此背景下建議一種具有權(quán)利要求1的特征的用于可靠地檢驗(yàn)碼的方法和一種根據(jù)權(quán)利要求7的用于執(zhí)行該方法的電路裝置。實(shí)施由從屬權(quán)利要求和說明書得出。
[0019]利用所建議的方法消除了借助DPA攻擊碼檢驗(yàn)器的危險(xiǎn)。由此開啟了當(dāng)分別帶有η比特狀態(tài)的2n個(gè)狀態(tài)自動(dòng)機(jī)全部總是應(yīng)當(dāng)具有不同狀態(tài)時(shí)持續(xù)檢驗(yàn)具有這些狀態(tài)自動(dòng)機(jī)的結(jié)構(gòu)的錯(cuò)誤的可能。在此,該檢驗(yàn)本身不能再被用于DPA。這使得可以實(shí)現(xiàn)根據(jù)NIST建議(例如在公開物NIST SP 800-90中,其中要求確定性隨機(jī)比特發(fā)生器(DGRB)的自測試)的抗DPA的隨機(jī)發(fā)生器。
[0020]在此所建議的方法至少在若干構(gòu)型中遠(yuǎn)遠(yuǎn)超出僅要求一次自測試的NIST要求。利用監(jiān)視可能性,保證了明顯提高的保護(hù),例如免遭錯(cuò)誤攻擊的保護(hù)。
[0021]本發(fā)明的其它優(yōu)點(diǎn)和構(gòu)型從說明書和附圖中得出。
[0022]應(yīng)當(dāng)理解,上面提到和下面還要闡述的特征不僅能以分別說明的組合,而且還能以其它組合或單獨(dú)地使用,而不會(huì)脫離本發(fā)明的范圍。
【專利附圖】
【附圖說明】
[0023]圖1示出掩碼發(fā)生器的實(shí)施方式。
[0024]圖2示出作為16中取8碼檢驗(yàn)器的第一級(jí)的碼縮減器(加權(quán)平均電路)。
[0025]圖3示出用于η中取m碼的三級(jí)碼縮減器,其中m=8和n=16。
[0026]圖4示出雙軌碼檢驗(yàn)器 TRC。
[0027]圖5示出由圖3的雙軌信號(hào)形成錯(cuò)誤信號(hào)“錯(cuò)誤”。
[0028]圖6示出與圖3的碼縮減器對應(yīng)的、增加了轉(zhuǎn)移單元的三級(jí)碼縮減器。
[0029]圖7示出轉(zhuǎn)移單元的實(shí)施。
[0030]圖8以流程圖示出所描述的方法的實(shí)施。
[0031]圖9以流程圖示出所描述的方法的另一實(shí)施。
[0032]圖10以詳細(xì)形式示出圖9的方法步驟。
[0033]圖11以流程圖示出所描述的方法的又一實(shí)施。
[0034]圖12以流程圖示出所描述的方法的另一實(shí)施。
[0035]圖13以流程圖示出所描述的方法的再一實(shí)施。
[0036]圖14示出用于周期性碼的置換單元。
【具體實(shí)施方式】
[0037]本發(fā)明借助附圖中的實(shí)施方式被示意性示出并在下面參照附圖加以詳細(xì)描述。
[0038]圖1示意性示出掩碼發(fā)生器的實(shí)施方式,該掩碼發(fā)生器總的用附圖標(biāo)記100表示。掩碼發(fā)生器100用于由輸入信號(hào)102來形成具有128比特的比特向量。為此電路裝置100包括4個(gè)裝置104,106,108和110,這些裝置分別包括16個(gè)轉(zhuǎn)換元件ΤΕ_0,TE_1,TE_2,…,TE_15。為一目了然起見,在圖1中僅分別示出16個(gè)轉(zhuǎn)換元件TE_0,TE_1,TE_2,…,TE_15中的4個(gè)。在該實(shí)施中,掩碼發(fā)生器100被構(gòu)造為,使得向每個(gè)裝置104,106,108和110的每個(gè)轉(zhuǎn)換元件ΤΕ_0,TE_1, TE_2,…,TE_15輸送相同的輸入數(shù)據(jù)或相同的輸入信號(hào)102。重要的是,在每個(gè)裝置104,106,108和110中所有的轉(zhuǎn)換元件ΤΕ_0,TE_1,TE_2,...,TE_15都同類型地與輸入信號(hào)連接,但是不同的裝置104,106,108和110可以是彼此不同的。[0039]轉(zhuǎn)換元件ΤΕ_0,TE_1, TE_2,…,TE_15從輸送給它們的輸入信號(hào)102中形成目前未詳細(xì)說明的輸出信號(hào)。這些輸出信號(hào)被組合起來并且接著獲得具有256比特的簽名S120。轉(zhuǎn)換元件TE_0,TE_1,TE_2,…,TE_15分別具有狀態(tài)自動(dòng)機(jī)ZA或狀態(tài)機(jī),狀態(tài)自動(dòng)機(jī)或狀態(tài)機(jī)的狀態(tài)信息例如以具有可預(yù)給定寬度的數(shù)字?jǐn)?shù)據(jù)字的形式被存儲(chǔ)。例如,狀態(tài)機(jī)ZA可以具有4比特的存儲(chǔ)容量,從而可以總共實(shí)現(xiàn)16種不同的狀態(tài)。每個(gè)裝置104,106,108,110的狀態(tài)機(jī)ZA都相同類型地構(gòu)造。相同類型意味著,每個(gè)狀態(tài)機(jī)ZA從相同的輸入信號(hào)102和相同的初始化狀態(tài)出發(fā),在隨后的處理周期中采取與其它相同類型的狀態(tài)機(jī)ZA相同的后續(xù)狀態(tài)。
[0040]此外規(guī)定,每個(gè)狀態(tài)機(jī)ZA始終分別具有與對應(yīng)裝置104,106,108或110的所有其它狀態(tài)機(jī)ZA不同的狀態(tài)。由此DPA攻擊變難,所述DPA攻擊嘗試通過分析電流消耗和/或功率消耗或者通過分析干擾輻射來推斷出電路裝置100或各個(gè)轉(zhuǎn)換元件ΤΕ_0,TE_1,TE_2,…,TE_15的內(nèi)部處理狀態(tài)。
[0041]有利的是,所設(shè)置的轉(zhuǎn)換元件ΤΕ_0,TE_1, TE_2,…,TE_15的數(shù)量與狀態(tài)機(jī)ZA的最大可能的不同狀態(tài)數(shù)量對應(yīng),在這種情況下是16個(gè)。由此始終、也就是在每一個(gè)處理周期都在恰好一個(gè)狀態(tài)機(jī)ZA中存在每個(gè)理論上可能的狀態(tài),從而向外、也就是針對執(zhí)行DPA攻擊的可能攻擊者分別只能“看見”所有16個(gè)可能狀態(tài)的組合。即使在緊接著的處理周期中——在該處理周期中雖然各個(gè)狀態(tài)機(jī)ZA分別根據(jù)預(yù)定的規(guī)則改變了它們的狀態(tài),在16個(gè)狀態(tài)機(jī)ZA的每一個(gè)中仍然總共恰好存在16個(gè)可能狀態(tài)之一,從而向外仍然同時(shí)“可看見”全部16個(gè)狀態(tài)。
[0042]這樣做的結(jié)果是,可能的攻擊者從對應(yīng)的、在電路裝置100的常見實(shí)現(xiàn)情況下給定的電磁輻射中或者從電路裝置100的電功率消耗中不能推斷出轉(zhuǎn)換元件ΤΕ_0,TE_1,TE_2,…,TE_15中的內(nèi)部 信號(hào)處理的狀態(tài)。在所有部件都理想對稱設(shè)計(jì)的情況下,電功率消耗始終恒定,從而所輻射的電磁場分別在相繼的處理周期之間存在狀態(tài)變換的情況下不經(jīng)歷顯著的改變。從簽名S 120中通過塊122中的線性關(guān)聯(lián)產(chǎn)生具有128比特的比特向量130。該線性關(guān)聯(lián)例如可以是異或關(guān)聯(lián)或互斥反或(EXNOR)關(guān)聯(lián)。為了進(jìn)一步使?jié)撛诠粽叩墓ぷ髯冸y,在該線性關(guān)聯(lián)之前將不同轉(zhuǎn)換元件的輸出置換。為此,一種有意義的措施是依據(jù)輸入數(shù)據(jù)在裝置內(nèi)對狀態(tài)進(jìn)行旋轉(zhuǎn)。
[0043]所示出的掩碼發(fā)生器100使用所謂的非線性簽名構(gòu)成。由此已知如何能夠由分別具有q個(gè)狀態(tài)比特的P個(gè)相同構(gòu)建的狀態(tài)機(jī)來構(gòu)建擁有與這些狀態(tài)機(jī)的相應(yīng)狀態(tài)無關(guān)的電流消耗的結(jié)構(gòu)。為此,必須提供完整的狀態(tài)機(jī)組(Complete Set of State Machines,COSSMA)o這恰好在p=2q時(shí)存在。如果現(xiàn)在每個(gè)狀態(tài)機(jī)都具有不同的起始狀態(tài),則在p*q個(gè)比特中強(qiáng)制地存在(P*q) /2個(gè)I和恰好這么多個(gè)O。此外這樣的裝置的所有狀態(tài)機(jī)都設(shè)置有相同的輸入信號(hào)。如果這些狀態(tài)機(jī)中的每一個(gè)在任意輸入信號(hào)的情況下總是具有明確的后續(xù)狀態(tài)和明確的前趨狀態(tài),則m個(gè)狀態(tài)機(jī)的狀態(tài)隨時(shí)都彼此不同并且因此必須強(qiáng)制地是所有可能狀態(tài)的完整組。由此在對輸入數(shù)據(jù)進(jìn)行處理的任何時(shí)刻都存在(P*q)中取(P*q)/2碼。
[0044]在實(shí)際的例子中,q=4,并且由此p=24=16。16個(gè)狀態(tài)機(jī)于是總是具有狀態(tài)0,I,2,…,15,只有這些狀態(tài)的位置任意變換。在p*q=64的情況下,在所有狀態(tài)機(jī)的輸出端上總是恰好存在32個(gè)I和32個(gè)O。利用如上根據(jù)現(xiàn)有技術(shù)描述的碼檢驗(yàn)器可以檢驗(yàn)64中取32碼。但是這樣的碼檢驗(yàn)器非常耗費(fèi),因?yàn)樵陔娐分械牡谝豢s減級(jí)中就已經(jīng)需要32個(gè)全加器單元并且附加地需要兩個(gè)觸發(fā)器來進(jìn)行用于碼縮減的加權(quán)的平均值構(gòu)成,也就是所謂的加權(quán)平均電路WAC。然后在第二級(jí)中需要16個(gè)全加器和2個(gè)觸發(fā)器,并且以此類推,直到僅還需要兩個(gè)全加器和兩個(gè)觸發(fā)器。62個(gè)全加器(大約8GE)、10個(gè)觸發(fā)器(大約8GE)和6個(gè)雙軌校驗(yàn)器(大約4GE)確定了具有大約600個(gè)等效門(GE)的總耗費(fèi)。如果對于具有4*64比特的4重結(jié)構(gòu)這樣執(zhí)行,則在并行實(shí)現(xiàn)中總共需要大約2400個(gè)門的電路耗費(fèi)。
[0045]相反,所建議的實(shí)現(xiàn)利用了在狀態(tài)機(jī)的相同比特位置中在任何時(shí)刻都存在同樣多的I。由此可以劃分檢驗(yàn)并且在一個(gè)檢驗(yàn)步驟中分別僅測試16個(gè)比特。然后在三個(gè)其它檢驗(yàn)步驟中測試其它3 χ 16比特。與在現(xiàn)有技術(shù)中設(shè)置的碼檢驗(yàn)器不同,如果利用在該電路中無論如何都存在的計(jì)數(shù)器并且分別將其中的一比特例如作為輸入Xo用于加權(quán)平均電路WAC (碼縮減器),則在加權(quán)平均電路中可以完全省略在全加器之前和之后的觸發(fā)器。為了自測試地實(shí)現(xiàn)該電路,加權(quán)平均電路的進(jìn)位輸入和雙軌檢驗(yàn)器必須對所有可能的組合采取至少一次。
[0046]在圖2中示出這樣的用于16個(gè)輸入比特dfd15的加權(quán)平均電路(碼縮減器)WAC_16 (沒有根據(jù)現(xiàn)有技術(shù)常見的觸發(fā)器)。該圖示示出16個(gè)狀態(tài)機(jī)200,每個(gè)狀態(tài)機(jī)分別具有4比特,其中在該圖示中再現(xiàn)出5個(gè)。此外根據(jù)圖2設(shè)置8個(gè)全加器202和非門204,其中為了一目了然的原因僅示出3個(gè)全加器。利用圍繞的虛線示出碼縮減器(WAC)206。該碼縮減器是圖3中所示的三級(jí)碼縮減器的一級(jí)220,在該碼縮減器中這一級(jí)用附圖標(biāo)記304表不。
[0047]作為輸入比特在該電路中使用16個(gè)狀態(tài)機(jī)的MSB。如果16個(gè)狀態(tài)機(jī)全都具有不同的狀態(tài),則在16個(gè)輸入比特中恰好包含8個(gè)I (16中取8碼)。如在根據(jù)現(xiàn)有技術(shù)的文獻(xiàn)中所示(Stroele, Tarnick),在304的8個(gè)輸出w’ 0,w’ ”...W,7上,當(dāng)輸入是16中取8碼并且縮減器電路未包含錯(cuò)誤時(shí)恰好生成8中取4碼。當(dāng)不存在錯(cuò)誤時(shí),輸入Xtl產(chǎn)生輸出X1,其中Xl=/X(l。由此對于該第一信號(hào)對存在2中取I碼。為了保證自測試的特性,必須經(jīng)常變換X(|并且dfd15也不應(yīng)當(dāng)是恒定的。
[0048]用sumn(n=0, I, 2...)表示求和比特,用cinn(n=0, I, 2...)表示全加器的傳輸輸入比特。coutn(n=0, 1,2…)是作為信號(hào)wn(n=0, 1,2…)運(yùn)送到下一級(jí)中的傳輸輸出比特(全加器202的輸出)。
[0049]最后在圖3中再現(xiàn)出三級(jí)碼縮減器。該圖示又示出分別具有4比特的狀態(tài)機(jī)300、對應(yīng)數(shù)目的4到I復(fù)用器302、第一 WAC 304(WAC_16)、第二 WAC 306 (WAC_8)和第三WAC308(WAC_4)以及計(jì)數(shù)器310。除了上述信號(hào)對X(l,X1之外在另外的級(jí)上還存在信號(hào)對x2,X3或x4, X5,這些信號(hào)對在無錯(cuò)誤的情況下也對應(yīng)于2中取I碼。這些信號(hào)對與被縮減的碼一起受到檢驗(yàn)。上面說的是多級(jí)碼縮減器。在圖3中示出的裝置也可以稱為包括3個(gè)碼縮減器WAC 304 (WAC_16)、WAC 306 (WAC_8)和 WAC 308 (WAC_4)的裝置。
[0050]在此,經(jīng)由計(jì)數(shù)器比特%和4同類型地控制全部4到I復(fù)用器302,使得這些復(fù)用器分別選擇狀態(tài)機(jī)300的相同的位置比特作為比特gi。由此根據(jù)這2個(gè)計(jì)數(shù)器比特的4個(gè)狀態(tài),分別從連接的16個(gè)狀態(tài)機(jī)300之一中選擇特定的比特,然后在碼縮減器或WAC_16304中處理該比特。這些輸入在無錯(cuò)誤的情況下應(yīng)當(dāng)對應(yīng)于16中取8碼。WAC_16的8個(gè)輸出w’ f.w’ 7得到8取4碼并且與WAC_8或碼縮減器306的輸入連接。WAC_8 306與WAC_16304類似地構(gòu)建,但是僅具有一半那么多的全加器,并且最后一個(gè)求和比特倒置地接通到輸出巧上。于是進(jìn)一步設(shè)置的碼縮減器或WAC_4 308僅具有兩個(gè)全加器和兩個(gè)輸出,全加器的進(jìn)位輸出接通到這兩個(gè)輸出上:x6和巧。附加的輸出&是在碼縮減器或WAC_4 308中的第二全加器的倒置的求和輸出。
[0051]在無錯(cuò)誤的情況下,相應(yīng)的對X。和X1, X2和x3,X4和X5以及X6和X7分別提供“雙軌碼”(或2中取1碼),也就是這些對的總是恰好一個(gè)信號(hào)為1?,F(xiàn)在足以測試是否對所有這些信號(hào)對都滿足該特性。該檢驗(yàn)在根據(jù)圖4的所謂雙軌碼檢驗(yàn)器TRC中進(jìn)行。
[0052]在此,e2...e0是隨著每次碼檢驗(yàn)(在4階段中分別檢驗(yàn)64中的16比特)繼續(xù)被計(jì)數(shù)的事件計(jì)數(shù)器。
[0053]由此可以檢驗(yàn)這些狀態(tài)機(jī)中的每一個(gè)是否在檢驗(yàn)的時(shí)刻擁有不同的狀態(tài),這表示無錯(cuò)誤的作用方式。但是在該方法中可能的是,如果例如檢查檢驗(yàn)期間的碼檢驗(yàn)器的電流消耗,則該檢驗(yàn)本身推斷出狀態(tài)機(jī)的秘密狀態(tài)。在此應(yīng)用所建議的方法。
[0054]圖4示出碼檢驗(yàn)器400,在這種情況下是雙軌檢驗(yàn)器TRC。TRC 400具有第一輸入402和第二輸入404。此外該圖示示出兩個(gè)復(fù)合門,這兩個(gè)復(fù)合門分別通過與元件406與兩個(gè)不同的輸入關(guān)聯(lián)兩次,這兩個(gè)輸入接著通過或元件408與該與元件406的兩個(gè)輸出關(guān)聯(lián)并使這兩個(gè)輸出倒置。這些與-或和倒置元件在此可以被實(shí)現(xiàn)在一個(gè)復(fù)合門中,使得它們不可分離或者在單獨(dú)的元件中。
[0055]TRC 400從在兩個(gè)輸入402和404上的兩個(gè)雙軌編碼的信號(hào)中形成在輸出412上的雙軌輸出信號(hào)。如果雙軌碼在輸入402和404的兩個(gè)輸入信號(hào)對中都未受損害并且TRC400本身無錯(cuò)誤地工作,則輸出412也被形成為雙軌對。
[0056]如在圖5中所示,圖3的X信號(hào)在這樣的TRC中可以被組合為唯一的雙軌對。圖5示出第一 TRC 500、第二 TRC 502、第三TRC 504、等效組件506以及反效元件508。
[0057]當(dāng)雙軌檢驗(yàn)器504的兩個(gè)輸出信號(hào)相同時(shí),存在碼錯(cuò)誤。只要504的兩個(gè)輸出相同,信號(hào)“錯(cuò)誤” 510就等于1,且“非錯(cuò)誤” 512等于O。在無錯(cuò)誤的情況下,510等于O且512等于1。當(dāng)輸入信號(hào)Xci, X2和X4采取每個(gè)任意組合時(shí),TRC都自測試。當(dāng)計(jì)數(shù)器從O計(jì)數(shù)到7時(shí),該特性通過計(jì)數(shù)器比特e2...e0來加以保證。僅當(dāng)所使用的比特的全部占位以該順序出現(xiàn)時(shí),該計(jì)數(shù)器的碼是任意的(二進(jìn)制碼,灰度碼,超3碼,正向或反向計(jì)數(shù)地)。圖5中的等效組件506的輸出510上的信號(hào)“錯(cuò)誤”意味著要么碼錯(cuò)誤要么碼檢驗(yàn)器本身中的錯(cuò)誤。為了識(shí)別等效組件506本身中的錯(cuò)誤(該等效組件在輸出510上輸出錯(cuò)誤信號(hào)),經(jīng)由反效元件508 (異或)在輸出512上冗余地輸出信號(hào)/錯(cuò)誤。
[0058]現(xiàn)在在根據(jù)圖1的掩碼發(fā)生器(或者一般地隨機(jī)發(fā)生器)中如下使用與圖3相關(guān)聯(lián)的根據(jù)圖5的碼檢驗(yàn)器:
1.檢驗(yàn)立即在COSSMA裝置的分別16個(gè)碼比特的輸入階段中進(jìn)行(COSSMA,CompleteSet of State Machine,完整的狀態(tài)機(jī)組),在當(dāng)前的例子中是分別具有4比特的16個(gè)狀態(tài)機(jī)。通過在生成掩碼期間的并行檢驗(yàn),在每個(gè)輸入向量或輸入信號(hào)102情況下可以分別檢驗(yàn)COSSMA裝置的64比特中的16比特。在4個(gè)時(shí)鐘之后分別檢驗(yàn)整個(gè)COSSMA裝置。如果出現(xiàn)錯(cuò)誤,則中斷其它掩碼生成。這阻止了攻擊者能夠觀察受干擾電路的通過向內(nèi)傳送的錯(cuò)誤改變的電流曲線。但是必須阻止自測試電路本身向攻擊者提供用于攻擊的更多可能。這尤其是通過以下方式變難,即攻擊者必須設(shè)置針對COSSMA的初始狀態(tài)的所有比特的假設(shè)。由于輸入比特同類型地作用于COSSMA裝置的所有狀態(tài)機(jī),因此對各個(gè)狀態(tài)比特的攻擊
沒有希望。
[0059]2.在旋轉(zhuǎn)進(jìn)行之后的檢驗(yàn)。該變型具有以下優(yōu)點(diǎn):各個(gè)狀態(tài)機(jī)平均來說取決于COSSMA的起始狀態(tài)的所有比特。此外,該方法具有以下優(yōu)點(diǎn):識(shí)別在旋轉(zhuǎn)之后才向內(nèi)傳送的錯(cuò)誤并且這時(shí)才阻止掩碼的生成。缺點(diǎn)是,不能識(shí)別在輸入階段中向內(nèi)傳送的錯(cuò)誤并且于是被改變的電流特性必要時(shí)能被攻擊者利用。
[0060]3.第1點(diǎn)和第2點(diǎn)的組合:始終分別針對16比特監(jiān)視C0SSMA。
[0061]所建議的電路需要14個(gè)全加器(每個(gè)8GE)、3個(gè)反相器(每個(gè)0.5GE)、16x4:l復(fù)用器(每個(gè)7.5GE)、3個(gè)TRC (每個(gè)4GE)和兩個(gè)異或/異或非(每個(gè)2.5GE)。總數(shù)是大約250GE并且由此明顯少于具有600GE的上面提到的建議。由此對于4個(gè)COSSMA結(jié)構(gòu)來說,需要4x250=1000GE,或者先后在相同的硬件上針對這4個(gè)結(jié)構(gòu)執(zhí)行運(yùn)算并且附加地需要具有480GE的64x4:1個(gè)復(fù)用器,也就是總共大約750GE。
[0062]在該方法的一般化中,還可以檢查不滿足條件m=n/2的另外的碼。
[0063]對于m ^ n/2的情況,η中取m碼不能經(jīng)由多個(gè)級(jí)而被歸于如圖2中的兩個(gè)比特(&和17)。例如如果m=4且n=16,則按照所示出的類型只有兩個(gè)級(jí)是可能的。于是輸出w’ ’ yw’ ’ 3形成4中取I碼,該碼可以被用常見的碼檢驗(yàn)器檢驗(yàn)并且提供雙軌輸出。
[0064]如果m=2且n=16,則只能執(zhí)行根據(jù)圖2的第一級(jí)。在輸出w’ yw’ 7上的碼是8中取1,該碼同樣可以被用常見的碼檢驗(yàn)器檢驗(yàn)并且提供雙軌輸出。常見的碼檢驗(yàn)器的雙軌輸出在根據(jù)圖4的TRC中被用不同的雙軌信號(hào)對檢驗(yàn)。
[0065]由此通過多級(jí)碼縮減器描述了一種用于檢驗(yàn)η中取m碼的電路裝置,該電路裝置尤其適合用于執(zhí)行所建議的方法,其中所述碼檢驗(yàn)器的至少一個(gè)級(jí)由多個(gè)全加器組成,在第一級(jí)中使用n/2個(gè)全加器,其中一個(gè)全加器的求和比特分別被引導(dǎo)至下一個(gè)全加器的傳輸輸入上并且n/2個(gè)全加器的n/2個(gè)傳輸比特被輸出。此外可以規(guī)定,第一全加器的傳輸輸入與第一計(jì)數(shù)器比特的輸出連接并且最后一個(gè)全加器的求和輸出被輸出,并且第一計(jì)數(shù)器比特和最后一個(gè)全加器的求和比特形成第一信號(hào)對。
[0066]此外可以規(guī)定,碼檢驗(yàn)器的第二級(jí)由n/4個(gè)全加器組成,并且第一級(jí)的n/2個(gè)輸出比特與碼檢驗(yàn)器的第二級(jí)的n/4個(gè)全加器的運(yùn)算對象輸入連接,其中全加器的求和比特分別接通到下一個(gè)全加器的傳輸輸入上并且n/4個(gè)全加器的n/4個(gè)傳輸比特被輸出,其中第二計(jì)數(shù)器比特被接通到第二級(jí)的第一全加器的傳輸輸入上并且該第二計(jì)數(shù)器比特與第二級(jí)的最后一個(gè)全加器所輸出的求和比特一起形成第二信號(hào)對。
[0067]此外不斷添加碼檢驗(yàn)器的其它級(jí),直到還僅能輸出兩個(gè)全加器的形成雙軌信號(hào)對的兩個(gè)傳輸比特(對于m=n/2來說)或者另外的合適的碼檢驗(yàn)器連接到這些級(jí)之一(對于m古n/2來說),并且對于情況m=n/2的最后一級(jí)由所連接的最后一個(gè)計(jì)數(shù)器比特和第二全加器的求和輸出形成最后一個(gè)信號(hào)對,或者碼檢驗(yàn)器檢驗(yàn)在前級(jí)的碼并且輸出雙軌信號(hào)對。
[0068]對于信號(hào)對(第一,第二…最后一對)可以分別將信號(hào)倒置并且由此形成經(jīng)修改的信號(hào)對。經(jīng)修改的信號(hào)對與雙軌信號(hào)對一起相互連接地被引導(dǎo)至雙軌檢驗(yàn)器,使得最后一個(gè)雙軌檢驗(yàn)器輸出在碼和碼檢驗(yàn)器無錯(cuò)誤的情況下形成2中取I碼并且由此可以針對在η中取m碼或在檢驗(yàn)電路本身中的錯(cuò)誤加以檢驗(yàn)的信號(hào)對。[0069]所述計(jì)數(shù)器比特可以被改變,使得這些計(jì)數(shù)器比特的所有狀態(tài)在前后相繼的檢驗(yàn)步驟期間(一個(gè)或多個(gè)碼字的檢驗(yàn)步驟)被接受并且使得可以用不同的計(jì)數(shù)器比特選擇不同的碼字來用于檢驗(yàn)。
[0070]此外,將待檢驗(yàn)的η中取m碼劃分為多個(gè)子碼。這些子碼可以先后在相同的碼縮減器或碼檢驗(yàn)器上被檢驗(yàn)。碼縮減器的輸入為此可以在不同的子碼之間切換。
[0071 ] 替換的,這些子碼可以同時(shí)在不同的碼縮減器上加以檢驗(yàn)。
[0072]由此根據(jù)圖2示出可以如何構(gòu)建碼檢驗(yàn)器的第一級(jí)。最后圖3示出三級(jí)碼縮減器。在無錯(cuò)誤的情況下,相應(yīng)的對X。和X1, X2和χ3,X4和X5以及X6和X7分別提供雙軌碼或2中取I碼,也就是這些對的總是恰好一個(gè)信號(hào)為I。這被用根據(jù)圖4和圖5的碼檢驗(yàn)器檢查。在無錯(cuò)誤的情況下,在圖5的輸出510上的信號(hào)“錯(cuò)誤”提供0,并且在輸出512上的信號(hào)/錯(cuò)誤提供I。
[0073]在根據(jù)圖2的碼縮減器206的第一級(jí)中就已經(jīng)很明顯:當(dāng)Cltl以及(I1都等于I時(shí)例如輸出W0恰好為I。由此對信號(hào)W0的攻擊可以推斷出對應(yīng)的輸入信號(hào)Cltl以及屯。因此由此必要時(shí)可以求得所有狀態(tài)機(jī)的完整的秘密狀態(tài)。
[0074]現(xiàn)在所建議的方法基于:不可預(yù)見地混合和置換輸入信號(hào)。這是可能的,因?yàn)榇a檢驗(yàn)器與輸出信號(hào)的順序無關(guān)地提供相同的結(jié)果。
[0075]圖6示出與圖3的碼縮減器對應(yīng)的三級(jí)碼縮減器,該三級(jí)碼縮減器是為更可靠的運(yùn)行而設(shè)計(jì)的。為此設(shè)置插入在狀態(tài)機(jī)300和碼縮減器的第一級(jí)304之間的轉(zhuǎn)移單元600。轉(zhuǎn)移單元600需要4個(gè)不可預(yù)測的輸入比特A至r3,即所謂的熵比特,這些熵比特例如可以從物理參量的A/D轉(zhuǎn)換器(LSB)或環(huán)形振蕩器中獲得。但是絕對還可以考慮用于產(chǎn)生熵比特的另外的可能。典型地,熵比特對檢驗(yàn)結(jié)果沒有影響。
[0076]通過這種方式確保不能經(jīng)由對解碼時(shí)的電流變化曲線的成功分析來推斷出碼比特的位置以及由此推斷出可能的秘密前置級(jí)。
[0077]圖7以詳細(xì)視圖示出圖6的轉(zhuǎn)移單元600。在此情況下可以識(shí)別出轉(zhuǎn)移單元600被構(gòu)造為多重復(fù)用器602,該多重復(fù)用器又包括一定數(shù)量的復(fù)用器604。由此轉(zhuǎn)移單元600在這種情況下被構(gòu)造為置換碼字中的比特位置的置換單元。這總是在通過置換有效碼字的比特又產(chǎn)生有效碼字時(shí)是可能的。作為一種可能的替換,轉(zhuǎn)移單元也可以被構(gòu)造為在待檢驗(yàn)的碼中插入附加比特。要注意待檢驗(yàn)的碼字被轉(zhuǎn)移到另一碼字中。該圖示示出如何利用多重復(fù)用器602從比特Cltl至d15中獲得比特Stl至S15。多重復(fù)用器602的輸入信號(hào)Clci至d15根據(jù)熵比特A至r3的狀態(tài)經(jīng)由復(fù)用器604與輸出Stl至S15連接。如果示出通過r的值0...15 (這些比特的十進(jìn)制等效)來占據(jù)比特A至r3,則在r=0時(shí)比特(Itl至d15與比特Sci至S15連接,使得該距離隨著比特值增加而分別增加I。該置換例如循環(huán)地進(jìn)行,使得在超過值Cl15的情況下又從(Ici開始。在r=l時(shí)同樣分配比特Sci至S14,但是從比特dl開始。在r=2時(shí)從d2開始并且對應(yīng)地繼續(xù)。
[0078]通過這種方式保證了對于r的每個(gè)值都產(chǎn)生在S0至S15中的相鄰關(guān)系的不同組合并且由此分別不同的信號(hào)一起進(jìn)入結(jié)構(gòu)WAC_16的加法器中。
[0079]所述混合也間接影響隨后的級(jí)的相鄰關(guān)系。由于r的信號(hào)不可預(yù)測并且對于潛在攻擊者來說是未知的,因此攻擊者也不能執(zhí)行對碼檢驗(yàn)器級(jí)的輸出信號(hào)或其內(nèi)部中間信號(hào)的攻擊。所建議的移動(dòng)在下面的表格I中詳述。但是如果在比特Stl至S15中對于r的每個(gè)值分別采取所有比特Cltl至d15時(shí),任意另外的分配也是可能的。
【權(quán)利要求】
1.用于通過至少一個(gè)碼檢驗(yàn)器(400)可靠地檢驗(yàn)第一碼字的方法,其中待檢驗(yàn)的第一碼字(700,802,853,902)在輸入到所述至少一個(gè)碼檢驗(yàn)器(400)中之前被借助轉(zhuǎn)移單元(600)轉(zhuǎn)移到至少一個(gè)第二碼字中并且用碼檢驗(yàn)器(400)檢驗(yàn)該第二碼字。
2.根據(jù)權(quán)利要求1所述的方法,其中待檢驗(yàn)的第一碼字(700,802,853,902)的比特被置換。
3.根據(jù)權(quán)利要求2所述的方法,其中利用至少一個(gè)復(fù)用器(604,952)置換待檢驗(yàn)的第一碼字(700,802,853,902 )的比特。
4.根據(jù)權(quán)利要求1至3之一所述的方法,其中在所述轉(zhuǎn)移單元(600)中通過插入附加的比特改變待檢驗(yàn)的第一碼字(700,802, 853,902)。
5.根據(jù)權(quán)利要求1至4之一所述的方法,其中所述轉(zhuǎn)移單元(600)依據(jù)不可預(yù)測的比特(860,862,864 )進(jìn)行轉(zhuǎn)移。
6.根據(jù)權(quán)利要求1至5之一所述的方法,其中向碼檢驗(yàn)器(400)分配至少一個(gè)碼縮減器(206,304,306,308)。
7.用于可靠地檢驗(yàn)第一碼字的電路裝置,具有至少一個(gè)碼檢驗(yàn)器(400)和轉(zhuǎn)移單元(600),利用該轉(zhuǎn)移單元將待檢驗(yàn)的第一碼字(700,802,853,902)在輸入到所述至少一個(gè)碼檢驗(yàn)器(400)中之前轉(zhuǎn)移到至少一個(gè)第二碼字中。
8.根據(jù)權(quán)利要求7所述的電路裝置,其中所述轉(zhuǎn)移單元(600)被構(gòu)造為置換單元(706,804, 854,904),并且該置換單元(706,804, 854,904)置換第一碼字的比特以形成第二碼字。
9.根據(jù)權(quán)利要求8所述的電路裝置,其中所述置換單元(706,804,854,904)包括至少一個(gè)復(fù)用器(604,952)。
10.根據(jù)權(quán)利要求7至9之一所述的電路裝置,其中所述轉(zhuǎn)移單元(600)被構(gòu)造為,使得在該轉(zhuǎn)移單元中在第一碼字(700,802, 853,902)中插入附加的比特并且通過不可預(yù)測的比特(860,862,864)確定所述附加的比特在第二碼字中的位置和/或第一碼字(700, 802, 853,902)的比特在第二碼字中的位置。
【文檔編號(hào)】G06F11/08GK103650408SQ201280033211
【公開日】2014年3月19日 申請日期:2012年6月20日 優(yōu)先權(quán)日:2011年7月5日
【發(fā)明者】E.貝爾 申請人:羅伯特·博世有限公司