亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

隨機(jī)化的存儲(chǔ)器訪問的制作方法

文檔序號(hào):9375485閱讀:531來源:國(guó)知局
隨機(jī)化的存儲(chǔ)器訪問的制作方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明的各個(gè)實(shí)施例涉及存儲(chǔ)器訪問,該存儲(chǔ)器訪問是至少部分地隨機(jī)化的。

【發(fā)明內(nèi)容】

[0002] 第一實(shí)施例涉及一種用于存儲(chǔ)器訪問的設(shè)備,該設(shè)備包括:
[0003] -第一部件,用于對(duì)存儲(chǔ)器進(jìn)行操作,
[0004] -第二部件,用于按隨機(jī)化的方式來訪問存儲(chǔ)器,
[0005] -其中第一部件經(jīng)由第二部件來進(jìn)行操作中的至少部分。
[0006] 第一部件可以是處理器或控制器。第二部件可以是另一處理設(shè)備,其也可以稱作 地址隨機(jī)化單元。
[0007] 第二實(shí)施例涉及一種第二部件,其被布置用于:
[0008] -從第一部件接收關(guān)于存儲(chǔ)器的信息,
[0009] -基于該信息并且基于隨機(jī)值,按隨機(jī)化的方式來訪問存儲(chǔ)器。
[0010] 第三實(shí)施例涉及一種用于訪問存儲(chǔ)器的方法,包括:
[0011]-由第二部件按隨機(jī)化的方式來訪問存儲(chǔ)器,其中第一部件經(jīng)由第二部件來進(jìn)行 操作的至少部分。
[0012] 第四實(shí)施例涉及一種計(jì)算機(jī)程序產(chǎn)品,其可以直接載入到數(shù)字處理設(shè)備的存儲(chǔ)器 中,該計(jì)算機(jī)程序產(chǎn)品包括用于執(zhí)行本文所描述的方法的步驟的軟件代碼部分。
【附圖說明】
[0013] 參照附圖對(duì)各個(gè)實(shí)施例進(jìn)行圖示和說明。附圖用于說明基本原理,使得僅僅說明 了用于理解基本原理所必須的各個(gè)方面。附圖并未按比例繪制。在附圖中,相同的附圖標(biāo) 記表示相似的特征。
[0014] 圖1示出了允許將執(zhí)行隊(duì)列隨機(jī)化的示意圖,其中該隨機(jī)化自身利用不同部件, 例如,多件硬件。
【具體實(shí)施方式】
[0015] 針對(duì)對(duì)于智能卡或嵌入式系統(tǒng)的許多攻擊,攻擊者需要知道哪個(gè)數(shù)據(jù)值在何時(shí)被 處理。攻擊者可以對(duì)值進(jìn)行探測(cè),進(jìn)行模板攻擊,或者篡改該值。一個(gè)示例是加密算法的實(shí) 施例:如果攻擊者知道中間值在何時(shí)被處理,那么他可以對(duì)這類中間值執(zhí)行各種攻擊。
[0016] 為了提升成功進(jìn)行攻擊的負(fù)擔(dān),算法的步驟可以被隨機(jī)化,即,操作可以按隨機(jī)順 序被執(zhí)行。然而,并不是所有的步驟都需要經(jīng)受這類重排序,這是因?yàn)闉榱怂惴ㄕ_工作并 且產(chǎn)生所需結(jié)果,特定的接續(xù)可能是固有的和必要的。
[0017] 然而,存在若干算法,其具有關(guān)于它們的執(zhí)行操作的相應(yīng)序列的自由度。例如,在 高級(jí)加密標(biāo)準(zhǔn)(AES)中,對(duì)16字節(jié)執(zhí)行AES子字節(jié)操作。其中執(zhí)行16操作的隊(duì)列可以被 隨機(jī)化,即,16查找可以按隨機(jī)順序被執(zhí)行。例如,可并行地進(jìn)行的操作在按序列被執(zhí)行時(shí) 可以經(jīng)歷隨機(jī)化。
[0018] 然而,缺點(diǎn)是,對(duì)于軟件實(shí)施方式的隨機(jī)化也以軟件實(shí)現(xiàn)。因此,用于對(duì)軟件實(shí)施 方式的執(zhí)行隊(duì)列進(jìn)行隨機(jī)化的隨機(jī)值正是由該軟件產(chǎn)生。因此,該隨機(jī)值自身經(jīng)歷與需要 被保護(hù)的數(shù)據(jù)相同的攻擊。
[0019] 例如:如果攻擊者(例如通過將探針放在其上)對(duì)CPU數(shù)據(jù)總線進(jìn)行探測(cè),那么他 得知隨機(jī)值以及按隨機(jī)化的順序被處理的所有數(shù)據(jù)(由所述隨機(jī)值確定)。在該情形中,隨 機(jī)化沒有作用,這是因?yàn)楣粽咧浪?,并且可以在沒有顯著困難的情況下消除它。
[0020] 類似的考慮可以適用于確定經(jīng)受攻擊的設(shè)備的功率損耗:如果攻擊者能夠建立關(guān) 于由CPU處理的值的模板,那么該模板可以用于泄漏隨機(jī)值以及被保護(hù)的值,這就可能使 得隨機(jī)化失效。
[0021] 本文所展示的各個(gè)示例特別地允許對(duì)在硬件中的軟件實(shí)施方式的執(zhí)行隊(duì)列進(jìn)行 隨機(jī)化,其中隨機(jī)化可以優(yōu)選地對(duì)于軟件隱藏。因此用于生成隨機(jī)化序列的隨機(jī)值可以不 由軟件提供和/或處理,并且不能由針對(duì)軟件的攻擊所確定。由于軟件并不知道隨機(jī)化序 列,因此處理器(例如,CPU)或者軟件不能泄漏(或者供給)關(guān)于這類隨機(jī)化的任何信息。
[0022] 注意到,隨機(jī)化可以是偽隨機(jī)化。因此,任何隨機(jī)值可以是真隨機(jī)值,或者它可以 由確定性機(jī)制計(jì)算得到。在本文中,好的隨機(jī)數(shù)可以由如下性質(zhì)證明:如果攻擊者知道所有 先前生成的隨機(jī)數(shù),他也不具有猜到下一隨機(jī)數(shù)的優(yōu)勢(shì)。
[0023] 本方案的一個(gè)優(yōu)勢(shì)是,其將保護(hù)一個(gè)大的部件(例如,CPU)的相當(dāng)困難的問題,向 保護(hù)若干部件轉(zhuǎn)化,即,向保護(hù)除了該大的部件之外更小的部件(例如,隨機(jī)生成器和/或 地址隨機(jī)化單元)轉(zhuǎn)化。因此,攻擊者需要將其努力指向若干部件(即,該大的部件和該小 的部件),而不是僅僅指向一個(gè)部件。
[0024] 圖1示出了允許將執(zhí)行隊(duì)列隨機(jī)化的示意圖,其中隨機(jī)化自身利用不同部件,例 如,多件硬件。軟件可以對(duì)所謂的地址隨機(jī)化單元ARU 102進(jìn)行配置,用于對(duì)從CPU 101發(fā) 送的用于訪問存儲(chǔ)器103的地址進(jìn)行隨機(jī)化。如果ARU 102被激活,那么它通過使用來自 隨機(jī)數(shù)生成器104的隨機(jī)值105,將用于訪問存儲(chǔ)器103的該地址隨機(jī)化。對(duì)于不同的算法 或者算法的部分,可以利用這類隨機(jī)化的不同的配置。由此,ARU 102可以被配置。
[0025] ARU 102將輸入地址a映射到數(shù)據(jù)地址a'。映射可以基于下列各項(xiàng)中的至少一 項(xiàng):
[0026] -ARU 102 的配置 c,
[0027] -訪問類型t,
[0028] -數(shù)據(jù)地址a,
[0029] -隨機(jī)值r,以及
[0030] -ARU 102的內(nèi)部狀態(tài)s。
[0031] 映射可以特別地基于地址a,配置c可以被明確地提供,或者配置c可以在ARU 102中被硬編碼??蛇x地,地址a可以是配置c的部分。另外可選的是,訪問類型t由CPU 101 向 ARU 102 提供。
[0032] 內(nèi)部狀態(tài)s可以通過不同手段更新。例如,內(nèi)部狀態(tài)s可以在加載配置c時(shí)被設(shè) 置為內(nèi)部狀態(tài),并且它可以通過對(duì)CPU 101的讀出或?qū)懭朐L問而更新。注意到,該讀出和/ 或?qū)懭氩僮骺赡軐?dǎo)致不同的狀態(tài)轉(zhuǎn)換,并且可能因此對(duì)地址a的隨機(jī)化具有(不同的)作 用。
[0033] ARU 102的配置可以包括下列各項(xiàng)中的至少一項(xiàng):
[0034] -用于隨機(jī)化的范圍al的下閾值,
[0035] -用于隨機(jī)化的范圍a2的上閾值,
[0036] -隨機(jī)化的特性分配(例如,置換,permutation) 〇
[0037] 在運(yùn)行時(shí)間期間,ARU 102的下列配置中的至少一個(gè)可以被切換,并且從而可以作 為隨機(jī)化的主體:
[0038] -將對(duì)查找表的訪問的順序隨機(jī)化;特別地:將AES S-box查找操作的順序隨機(jī) 化;
[0039] -將在可交換組操作中的操作的順序隨機(jī)化;
[0040] -將在關(guān)聯(lián)組操作中的操作的順序隨機(jī)化;
[0041] -將條目的求和或求積的累積的順序隨機(jī)化;
[0042] -將條目的計(jì)算標(biāo)積的累積的順序隨機(jī)化;
[0043] -將對(duì)中間值的按矢量或矩陣求積的計(jì)算的順序隨機(jī)化;特別是:將對(duì)AES混合列 (mix column)操作的計(jì)算中的步驟的順序隨機(jī)化;
[0044] -將對(duì)按秘密共享模式的共享值的操作(假設(shè),例如,一些變量被劃分為共享量) 的順序隨機(jī)化;
[0045] -將在讀取來自存儲(chǔ)器的秘密秘鑰的組份或共享值時(shí)的訪問的順序隨機(jī)化;
[0046] -將在對(duì)稱加密算法(DES、AES等)中的操作的順序隨機(jī)化;
[0047] -將在非對(duì)稱加密算法(RSA、ECC等)中的操作的順序隨機(jī)化;
[0048] -將在加密哈希算法(Whirlpool、SHA-1、SHA-2、SHA-3等)中的操作的順序隨機(jī) 化。
[0049] 示例件實(shí)施例:將AES舍入的16S_box杳找的隊(duì)列隨機(jī)化
[0050] 可以將其中軟件執(zhí)行對(duì)16字節(jié)值的AES S-box操作的隊(duì)列隨機(jī)化。執(zhí)行這類16 字節(jié)值的AES S-box操作意味著,計(jì)算y; = S(Xi),其中χα.15是輸入字節(jié),而7。..15是輸出字 節(jié),即,16操作可以并行地進(jìn)行。
[0051] 在一個(gè)普通軟件實(shí)施例中,這是通過對(duì)每個(gè)字節(jié)重復(fù)下列操作而實(shí)現(xiàn)的:
[0052] -讀出輸入字節(jié)X1,
[0053] -執(zhí)行 S-box 操作 S (Xi),
[0054] -寫入輸出字節(jié)yi。
[0055] 通過使用ARU 102將其中字節(jié)被處理的隊(duì)列隨機(jī)化,軟件代碼可以(基本上)是 相同的。ARU 102僅僅需要在執(zhí)行代碼前被配置。
[0056] 在該示例中,ARU 102可能被配置有16字節(jié)的讀出存儲(chǔ)器區(qū)域、和16字節(jié)的寫入 存儲(chǔ)器區(qū)域。針對(duì)讀出操作,ARU 102可以被配置為,使得從讀出存儲(chǔ)器區(qū)域的下一 16讀 出操作將導(dǎo)致存儲(chǔ)在讀出存儲(chǔ)器區(qū)域中的16字節(jié)值的隨機(jī)置換。因此ARU 102可以用隨 機(jī)置換來替換在由CPU 101提供的16字節(jié)內(nèi)的尋址。因此,在沒有ARU 102的情況下,CPU 將使用預(yù)定的方式以對(duì)16字節(jié)進(jìn)行尋址,
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1