非易失存儲器裝置以及用于非易失存儲器裝置的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是有關(guān)于一種數(shù)據(jù)安全,特別是有關(guān)于一種非易失存儲器裝置以及用于非易失存儲器裝置的方法,用以減輕在存儲器裝置上的側(cè)通道攻擊(Side-channel attack)。
【背景技術(shù)】
[0002]目前已發(fā)展各種技術(shù)(例如,側(cè)通道攻擊)從電子裝置擷取信息。這種攻擊一般是由未經(jīng)過授權(quán)的一方來執(zhí)行,以存取儲存在該裝置中機(jī)密信息。側(cè)通道攻擊是利用電子裝置在邏輯元件的轉(zhuǎn)態(tài)期間的消耗能量。這些攻擊是利用非侵入的方式來量測電子信號以及/或由裝置所發(fā)出的輻射來擷取信息,而不需電性接觸傳載信息的裝置。
[0003]目前剛要開始嘗試發(fā)展可在電子裝置實施的技術(shù),其可保護(hù)機(jī)密信息使其不被側(cè)通道攻擊方法來被未授權(quán)的存取。這類型的技術(shù)已在Shen-Or等人提出的PCT國際公開號WO 2013/035006的參考數(shù)據(jù)中敘述,其揭露在此做為參考文件。這參考數(shù)據(jù)敘述了一種數(shù)據(jù)轉(zhuǎn)移的方法,其包括擷取一控制信號,以觸發(fā)機(jī)密數(shù)值轉(zhuǎn)移到一電路的一元件。根據(jù)此控制信號,一冗余數(shù)值以及該機(jī)密數(shù)值接續(xù)地崁入至該電路的該元件中。
[0004]由本專利申請案所參考的文件將被視為本申請案的不可缺的一部分,除了在某種程度上這些參考文件中所定義的任何條件與本說明書中明確或暗示的定義相抵觸時,應(yīng)只考慮本說明書中的定義。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種非易失存儲器(non-volatile memory, NVM)裝置。NVM裝置包括NVM陣列以及控制邏輯。NVM陣列用來儲存數(shù)據(jù)??刂七壿嫿邮諆Υ嬗贜VM裝置的多個數(shù)據(jù)數(shù)值,且將接收到的該些數(shù)據(jù)數(shù)值中至少一些數(shù)據(jù)數(shù)值寫入至NVM陣列,且同時地寫入至少一些數(shù)據(jù)數(shù)值的多個互補(bǔ)數(shù)值。
[0006]在一些實施例中,控制邏輯包括一反向器,其用來產(chǎn)生至少一些數(shù)據(jù)數(shù)值的該些互補(bǔ)數(shù)值。在另一些實施例中,反向器將至少一些數(shù)據(jù)數(shù)值的該些互補(bǔ)數(shù)值輸出至電流槽。而在另一實施例中,反向器將至少一些數(shù)據(jù)數(shù)值的該些互補(bǔ)數(shù)值輸出至仿真NVM存儲單
J L.ο
[0007]在一實施例中,控制器將該些數(shù)據(jù)數(shù)值寫入至NVM陣列的一第一區(qū)段,且控制邏輯將至少一些數(shù)據(jù)數(shù)值的該些互補(bǔ)數(shù)值寫入至NVM陣列的第二區(qū)段。第二區(qū)段不同于第一區(qū)段。
[0008]在另一實施例中,第一區(qū)段以及第二區(qū)段具有相等的容量。在又一實施例中,控制邏輯包括邏輯門,其用來對儲存在第一區(qū)段中的特定數(shù)據(jù)數(shù)值與儲存在第二區(qū)段中的一互補(bǔ)數(shù)值執(zhí)行比較操作。
[0009]在一些實施例中,當(dāng)比較操作回報正數(shù)值時,邏輯門傳送指示該特定數(shù)據(jù)數(shù)值為有效的輸出信號。在另一些實施例中,當(dāng)比較操作回報負(fù)數(shù)值時,邏輯門提供警訊。在另一些實施例中,NVM陣列包括主要陣列以及冗余陣列。主要陣列具有第一儲存容量且儲存該些數(shù)據(jù)數(shù)值。冗余陣列具有第二儲存容量且儲存至少一些數(shù)據(jù)數(shù)值的該些互補(bǔ)數(shù)值。第二儲存容量不同于第一儲存容量。
[0010]本發(fā)明又提供一種NVM裝置。此NVM裝置包括NVM陣列以及控制邏輯。NVM陣列用來儲存數(shù)據(jù)??刂七壿嫿邮諆Υ嬗贜VM裝置的多個數(shù)據(jù)數(shù)值,且將接收到的該些數(shù)據(jù)數(shù)值中至少一些數(shù)據(jù)數(shù)值或是至少一些數(shù)據(jù)數(shù)值的多個互補(bǔ)數(shù)值寫入至NVM陣列。
[0011]本發(fā)明另提供一種用于NVM裝置的方法。此NVM裝置包括NVM陣列。此方法包括以下步驟:在NVM存儲器裝置中,接收儲存于NVM陣列的多個數(shù)據(jù)數(shù)值;將接收到的該些數(shù)據(jù)數(shù)值中至少一些數(shù)據(jù)數(shù)值寫入至NVM陣列;以及同時地寫入至少一些數(shù)據(jù)數(shù)值的多個互補(bǔ)數(shù)值。
[0012]本發(fā)明的非易失存儲器裝置以及用于非易失存儲器裝置的方法提供了新的方法與電路,其能來減少NVM裝置對于側(cè)通道攻擊的易受攻擊性。
[0013]為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉一較佳實施例,并配合所附圖式,作詳細(xì)說明如下。
【附圖說明】
[0014]圖1表示根據(jù)本發(fā)明一實施例,能抵抗側(cè)通道攻擊的非易失存儲器(non-volatile memory,NVM)裝置的架構(gòu)。
[0015]圖2?圖6表示根據(jù)本發(fā)明實施例,在NVM裝置中對抗側(cè)通道攻擊的保護(hù)架構(gòu)示意圖。
[0016]附圖標(biāo)號說明:
[0017]20?主機(jī);
[0018]22?非易失存儲器(NVM)裝置;
[0019]24?電源供應(yīng)單元(PSU);
[0020]25?電源線;
[0021]26?控制邏輯;
[0022]28?非易失存儲器(NVM)陣列;
[0023]30?信號;
[0024]31?側(cè)通道攻擊分析器;
[0025]32?原始數(shù)據(jù);
[0026]34 ?Ist區(qū)段;
[0027]36?數(shù)據(jù)數(shù)值;
[0028]38?反向器;
[0029]40 ?2nd區(qū)段;
[0030]42?互補(bǔ)數(shù)據(jù);
[0031]44?互斥或門(XOR)
[0032]46?數(shù)據(jù);
[0033]48?主要陣列;
[0034]50?冗余陣列;
[0035]52?主要陣列;
[0036]54?電流槽;
[0037]56?仿真NVM存儲單元;
[0038]58?選擇器。
【具體實施方式】
[0039]為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉一較佳實施例,并配合所附圖式,作詳細(xì)說明如下。
[0040]一般而言,電子裝置消耗功率是在操作期間中,主要是在非易失存儲器(non-volatile memory,NVM)裝置內(nèi)邏輯元件的轉(zhuǎn)態(tài)期間中(舉例來說,在存儲器編程由“O”變“I”(例如抹除)或由“I”變“O”(例如寫入)的期間中)。此功率消耗是側(cè)通道漏電流信號的來源,這可能會被未經(jīng)授權(quán)的一方通過稱為側(cè)通道攻擊的程序來使用,以存取儲存在該裝置的機(jī)密信息。
[0041]基于這個原理,攻擊者可在一電路元件在一已知狀態(tài)(例如所有的位=0,或者由還原工程所決定的一預(yù)設(shè)值)與一未知狀態(tài)(在此未知狀態(tài)下該元件保持一機(jī)密數(shù)值)之間轉(zhuǎn)變時,量測功率消耗或發(fā)出的輻射。舉例來說,這些攻擊可通過采取軟件的控制、執(zhí)行硬件重置、或是電源噪音攻擊(power glitches)的應(yīng)用來實現(xiàn)。在這樣的運作下,因為存儲器元件的機(jī)密數(shù)值不同于保持的已知數(shù)值的對應(yīng)位,因為側(cè)通道漏電流信號通常是發(fā)出自所有轉(zhuǎn)態(tài)的存儲器元件(例如:位),而位中機(jī)密數(shù)值沒有改變者,則沒有發(fā)出信號。因此,感測這些信號讓攻擊者能通過與已知數(shù)值的比較來推斷出機(jī)密數(shù)值。
[0042]此處所敘述的本發(fā)明的實施例提供了新的方法與電路,其能來減少NVM裝置(例如快閃存儲器)對于側(cè)通道攻擊的易受攻擊性。
[0043]在本領(lǐng)域已知的快閃存儲器裝置中,當(dāng)抹除時存儲單元(位)被設(shè)定為邏輯“I”。寫入時一快閃存儲單元則將其數(shù)值改變?yōu)椤癘”。因此,當(dāng)將一二進(jìn)位字元寫入至一快閃存儲單元陣列時,只有為“O”的位實際被寫入。寫入“O”因此引發(fā)電流,而寫入“I”(位沒有改變)則不會引發(fā)電流。由于引發(fā)的供應(yīng)電流將會隨著被寫入的“O”位的數(shù)量而改變,寫入操作在側(cè)通道分析方面因此有漏洞。攻擊者可以量測此電流,且使用其來辨認(rèn)寫入至此存儲器的機(jī)密數(shù)字。
[0044]為了阻止這種類型的攻擊,本發(fā)明所揭露的實施例通過移動寫入電流的位準(zhǔn)來打亂寫入至存儲器的數(shù)值。換句話說,這些實施例是修改NVM裝置的功能,使得在不論是寫入“O”或“I”的情況下,每一位引起幾乎相同的電流。寫入“O”的操作將修改在存儲器中的目標(biāo)位,而寫入“ I ”的操作則造成一互補(bǔ)位寫入至一輔助存儲位置或者是造成一互補(bǔ)位通過為了此目的提供的電流路徑而補(bǔ)入。因此,寫入數(shù)值“b’ 00000000”以及“b,11111111”或是其他二進(jìn)位字元將會引起幾乎一樣的電流。
[0045]在另一實施例中,對于每一為了儲存而接收到的數(shù)據(jù)數(shù)值而言,存儲器裝置的控制邏輯可用來寫入數(shù)據(jù)數(shù)值本身或者其互補(bǔ),而不是寫入每一數(shù)據(jù)兩次(包括每一位以及其互補(bǔ))。至于是寫入原來數(shù)值或是其互補(bǔ)數(shù)值,可隨機(jī)決定,或者是根據(jù)偽隨機(jī)型樣(pseudo-random pattern)來決定。在此實施例中,每一位組或者每一字元加入1-2個控制位,以指示其儲存位置是維持原來或是互補(bǔ)的數(shù)據(jù)數(shù)值(兩位-“01”與“10”-可用來擾亂將決定互補(bǔ)數(shù)據(jù)是“I”或“O”的統(tǒng)計分析)。本實施例可以降低成本,卻可能提供比先前實施例還要良好的保護(hù)。
[0046]系統(tǒng)說明:
[0047]圖1是表示根據(jù)本發(fā)明一實施例,能抵抗側(cè)通道攻擊的非易失存儲器(NVM)裝置22的架構(gòu)。
[0048]NVM裝置22包括一或多個快閃存儲器28,在此也稱為NVM陣列28,其用來將數(shù)據(jù)儲存在其存儲單元。NVM裝置22也包括控制邏輯26,其接收來自主機(jī)20且將被儲存的數(shù)據(jù)編程至NVM陣列28。此外,控制邏輯26也根據(jù)主機(jī)20所傳送的指令來讀取或抹除來自NVM陣列28的已儲存數(shù)據(jù)。在寫入與抹除操作期間,存儲單元在寫入時將其數(shù)值由“I”改變?yōu)椤?”,且在抹除后將其數(shù)值由“O”改變?yōu)椤?I ”。
[0049]NVM裝置22通過連接至電源供應(yīng)單元(power supply unit,PSU) 24與NVM裝置22的電源線25接收來自PSU 24的電源。一般而言,NVM陣列28消耗功率,且因此主要在邏輯元件的轉(zhuǎn)態(tài)期間(即是,其數(shù)值由“O”轉(zhuǎn)變?yōu)椤癐”或由“I”轉(zhuǎn)變?yōu)椤癘”)中,可能發(fā)射信號30,例如輻射。這種功率消耗是側(cè)通道信號的來源。
[0050]圖1中的側(cè)通道攻擊使用側(cè)通道攻擊分析器31量測與分析功率以及/或來自電源線25 (或來自與電源線25連接的一或多個元件)的發(fā)射信號30。
[0051]控制邏輯26通常包括一般用途處理器,其以軟件來編程以完成此處所述的功能。此軟件可能是通過網(wǎng)絡(luò)以電子型態(tài)下載至此處理器,或者,舉例來說,此軟件可能是由非暫態(tài)具體介質(zhì)(例如磁性、光學(xué)、或電子存儲器)所提供以及/或儲存。
[0052]圖2是表示根據(jù)本發(fā)明一實施例,在NVM裝置22中對抗側(cè)通道攻擊的保護(hù)架構(gòu)示意圖。在一實施例中,控制邏輯26接收將被寫入至NVM陣列28的數(shù)據(jù)數(shù)值??刂七壿?6將原始數(shù)據(jù)32寫入至NVM陣列28的一區(qū)域,該區(qū)域包括給定的儲存容量,以Ist區(qū)段34來表示。控制邏輯26也通過反向器38同時地傳送數(shù)據(jù)32的一組互補(bǔ)數(shù)據(jù)。此互補(bǔ)數(shù)據(jù)寫入至NVM陣列28的一輔助區(qū)域,該區(qū)域包括給定的儲存容量,以2?區(qū)段40來表示,其包括的儲存容量相似于或不同于Ist區(qū)段34中給定的儲存容量。在此實施例中,每一位同時地寫入兩次-一次是以其原始型態(tài)寫入至Ist區(qū)段34,而另一次是以互補(bǔ)型態(tài)寫入至2 ?區(qū)段40?因此,不論在數(shù)據(jù)數(shù)值中的“ I”與“O”的數(shù)量有多少,由NVM裝置22所引起的電流實質(zhì)