專利名稱:存儲器存取控制裝置和方法、以及通信裝置的制作方法
技術(shù)領域:
本發(fā)明涉及存儲器存取控制裝置和方法以及通信裝置,特別 是,涉及一種易于提高存儲器中的數(shù)據(jù)的安全性的存儲器存取控制 裝置和方法,并涉及一種通信裝置。
背景技術(shù):
例如在PCT日文翻譯專利公開第2003-500786號中,已經(jīng)提出 了通過將4皮指定由處理器(例如中央處理單元(CPU)或類似物) 訪問的邏輯地址置亂,來把實際訪問的物理地址分配給存+者器,從 而使存儲器里的數(shù)據(jù)難于分析或篡改的提案。
發(fā)明內(nèi)容
近年來,非授權(quán)的數(shù)據(jù)攔截和篡改已經(jīng)變得越發(fā)巧妙,除了在 PCT日文翻譯專利/>開第2003-500786號中描述的技術(shù)以外,還強 烈要求加強存儲器中數(shù)據(jù)的安全性。
期望能夠很容易地加強存儲器中的數(shù)據(jù)的安全性。
根據(jù)本發(fā)明的第 一 實施例,提供了 一種存儲器存取控制裝置,
包括以下元件置亂密鑰生成裝置,用于生成包括為固定值的預定 低階位的二進制置亂密鑰,其中,最低有效位的值是1,剩余位是 隨機數(shù)或偽隨4幾數(shù);以及分配裝置,用于4吏用置亂密鑰來置亂邏輯 地址,從而將物理地址分配給邏輯地址。
置亂密鑰生成裝置可生成其中的固定值是只包括1的比特流的 置亂密鑰。
該存儲器存取控制裝置可進一步包括用于生成隨機數(shù)或偽隨 才幾數(shù)的隨枳j數(shù)生成裝置。
隨機數(shù)生成裝置可生成Gold序列偽隨機數(shù)。
在生成的隨機數(shù)或生成的偽隨機數(shù)等于預定值的情況下,隨機 數(shù)生成裝置可生成新的隨機數(shù)或新的偽隨機數(shù)。
根據(jù)本發(fā)明的第 一實施例,提供了 一種存儲器存取控制方法, 包括以下步驟生成包括為固定值的預定低階位的二進制置亂密 鑰,其中,最低有效位的值是1,剩余位是隨機數(shù)或偽隨機數(shù);以 及使用置亂密鑰來置亂邏輯地址,從而將物理地址分配給邏輯地 址。
根據(jù)本發(fā)明的第二實施例,提供了一種通信裝置,包括以下元 件置亂密鑰生成裝置,用于生成包括為固定值的預定低階位的二 進制置亂密鑰,其中,最低有效位的值是1,剩余位是隨4幾數(shù)或偽 隨機數(shù);以及分配裝置,用于使用置亂密鑰來置亂邏輯地址,從而 將物理地址分配纟合邏輯地址,該物理地址^皮用于存書者,人具有非4矣觸 集成電路卡功能的裝置中讀取的數(shù)據(jù)。
根據(jù)本發(fā)明的第一實施例,生成包括為固定值的預定低階位的 二進制置亂密鑰,其中,最低有效位的值是1,剩余位是隨機數(shù)或 偽隨枳4t,以及通過^f吏用置亂密鑰來置亂邏輯地址,從而將物理地 址分配纟會邏輯;也址。
沖艮據(jù)本發(fā)明的第二實施例,生成包括為固定值的預定低階位的 二進制置亂密鑰,其中,最低有效位的值是1,剩余位是隨機數(shù)或
偽隨機數(shù);以及通過使用置亂密鑰來置亂邏輯地址,從而將物理地 址分配給邏輯地址,該物理地址被用于存儲從具有非接觸集成電路 卡功能的裝置中讀取的數(shù)據(jù)。
根據(jù)本發(fā)明的第一或第二實施例,存儲器里的數(shù)據(jù)變得難以分 析或篡改。根據(jù)本發(fā)明的第一或第二實施例,能夠很容易地提高存 儲器中數(shù)據(jù)的安全性。
圖l是根據(jù)本發(fā)明實施例的讀/寫器的框圖2是示出圖1所示的控制模塊的功能結(jié)構(gòu)的框圖3是示出圖2所示的隨機數(shù)輸出單元的功能結(jié)構(gòu)的框圖4是示出圖2所示的總線置亂器的詳細功能結(jié)構(gòu)的4匡圖5是描述圖2所示的置亂密鑰緩存器的內(nèi)部寄存器中的值的 序列的示圖6是描述由圖1所示的讀/寫器^M亍的置亂密鑰生成處理的流 程圖7是描述由圖1所示的讀/寫器執(zhí)行的存儲器存取控制處理的 流程圖8是示出根據(jù)本發(fā)明第二實施例的圖2所示的隨機數(shù)輸出單 元的功能結(jié)構(gòu)的框圖;以及
圖9是描述在讀/寫器具有圖8所示的隨機數(shù)輸出單元的情況 下,由圖1所示的讀/寫器執(zhí)行的置亂密鑰生成處理的流程圖。
具體實施例方式
在描述本發(fā)明的實施例之前,以下描述了權(quán)利要求的特征與參 照說明書或附圖描述的本發(fā)明的實施例中爿〉開的特定元素之間的 對應關系。該描述的目的是確保在說明書或附圖中描述了支持所要 求的發(fā)明的實施例。因此,即4吏下面實施例中的元素在i兌明書或附 圖中沒有相關于本發(fā)明的特定特征進行描述,這也不一定意p未著該 元素不與權(quán)利要求中的特征相關。相反,即使某一元素在本文中被
描述為與權(quán)利要求中的特定特征相關,這并不一定意味著該元素不 與權(quán)利要求的其他特征相關。
根據(jù)本發(fā)明的第一實施例,提供了 一種存儲器存取控制裝置 (例如,圖2所示的總線置亂器43),包>^以下元件置亂密鑰生 成裝置(例如,圖2所示的置亂密鑰緩存器61),用于生成包括為 固定值的預定低階位的二進制置亂密鑰,其中,最低有效位的值是 1,剩余位是隨機數(shù)或偽隨機數(shù);以及分配裝置(例如,圖2所示 的存儲器33),通過4吏用置亂密鑰來置亂邏輯地址,乂人而將物理地 址分配給邏輯地址。
根據(jù)本發(fā)明第 一 實施例的存儲器存取控制裝置可進一步包括
用于生成作為置亂密鑰的隨機數(shù)或偽隨機數(shù)的隨枳4t生成裝置(例 如,圖3所示的隨枳4t生成器101 )。
根據(jù)本發(fā)明的第 一實施例,提供了 一種存儲器存取控制方法,
包括以下步驟生成包括為固定值的預定〗氐階位的二進制置亂密 鑰,其中,最低有效位的值是1,剩余位是隨機數(shù)或偽隨機數(shù)(例 如,圖6所示的步驟S2或圖9所示的步驟S105);以及使用置亂密 鑰來置亂邏輯地址,乂人而將物理地址分配給邏輯地址(例如,圖7 所示的步驟S38或S41 )。
根據(jù)本發(fā)明的第二實施例,提供了 一種用于與具有非接觸集成 電路卡功能的裝置(例如,圖1所示的IC卡2 )進行通信的通信裝 置(例如,圖1所示的讀/寫器1),包括以下元件置亂密鑰生成 裝置(例如,圖2所示的置亂密鑰緩存器61),用于生成包括為固 定值的預定低階位的二進制置亂密鑰,其中,最低有效位的值是l, 剩余位是隨機數(shù)或偽隨機數(shù);以及分配裝置(例如,圖2所示的地 址總線置亂電路52),用于^f吏用置亂密鑰來置亂邏輯地址,從而將 物理;也址分配纟合邏輯i也址,該物理i也址^皮用于存4諸從具有非4妄觸集 成電路卡功能的裝置中讀取的數(shù)據(jù)。
下面將參考附圖描述本發(fā)明的實施例。
圖1是根據(jù)本發(fā)明的實施例的讀/寫器的框圖。根據(jù)本發(fā)明該實 施例的讀/寫器1包括天線11、射頻(RF)驅(qū)動板12和控制才莫塊 13。
RF驅(qū)動纟反12經(jīng)由天線11, 1吏用單頻率栽波與非,接觸集成電路 (IC)卡2執(zhí)行基于電磁感應的近距離通信。RF驅(qū)動板12使用的 載波的頻率可以是例如在工業(yè)、科學和醫(yī)學(ISM)頻,殳中的
13.56MHz。近距離通信指的是當裝置之間的距離在幾十厘米以內(nèi) 時,裝置能夠相互通信,它還包括裝置(的外殼)相互接觸的通信。
控制模塊13執(zhí)行用于實施使用IC卡2的服務的處理。根據(jù)需 要,控制模塊13通過天線11和RF驅(qū)動板12從/向IC卡2讀取/ 寫入服務中使用的數(shù)據(jù)??刂颇K13能夠執(zhí)行提供多種服務類型 的并行處理。即, 一個讀/寫器1能夠提供使用非接觸IC卡的多種 服務,如電子貨幣服務、預付卡服務以及多種交通類型的票卡服務。
圖2是示出圖1所示的控制模塊13的功能結(jié)構(gòu)的框圖。控制 模塊13包括CPU 31、存儲器存取控制器32、存儲器33以及復位 電路34。存儲器存取控制器32包括置亂密鑰變更指示單元41、隨 才幾數(shù)輸出單元42以及總線置亂器43??偩€置亂器43包括置亂密鑰 保存器51和地址總線置亂電路52。置亂密鑰保存器51包括置亂密 鑰緩存器61和內(nèi)部存儲器62。
CPU 31和地址總線置亂電^各52通過i殳于其間的地址總線35 相互連接,地址總線35的總線帶寬為n位。地址總線置亂電路52 和存儲器33通過設于其間的地址總線36相互連接,地址總線36 的總線帶寬一樣是n位。CPU 31和存儲器33通過設于其間的數(shù)據(jù) 總線37相互連接,數(shù)據(jù)總線37的總線帶寬是m位。
CPU31能夠執(zhí)行與相互并行的服務相關聯(lián)的程序。換句話說,CPU 31能夠執(zhí)行并行處理以提供多種服務。
CPU 31從/向存儲器33讀取/寫入各種服務中使用的數(shù)據(jù)。當 向存儲器33寫數(shù)據(jù)時,CPU 31經(jīng)由地址總線35將表示邏輯數(shù)據(jù) 寫入位置的邏輯地址的邏輯地址信號提供給地址總線置亂電路52, 并經(jīng)由數(shù)據(jù)總線37將包括要寫入的數(shù)據(jù)和表示數(shù)據(jù)寫入指令的寫
入信號提供給存儲器33。當從存儲器33中讀數(shù)據(jù)時,CPU31經(jīng)由 地址總線35將表示邏輯lt據(jù)讀取^f立置的邏輯地址的邏輯地址信號 提供給總線置亂電路52,并經(jīng)由數(shù)據(jù)總線37將表示數(shù)據(jù)讀取指令 的讀取信號提供給存儲器33。
存儲器存取控制器32控制CPU 31對存儲器33的存取。
在包含于存儲器存取控制器32的各個元件中,置亂密鑰變更 指示單元41包括,例如,按鈕、開關、或類似物。為了改變置亂 密鑰保存器51中保存的置亂密鑰,例如,用戶經(jīng)由置亂密鑰變更 指示單元41輸入改變置亂密鑰的指令。
在從置亂密鑰變更指示單元41將表示改變置亂密鑰的指令的 信號提供給隨機數(shù)輸出單元42的情況下,隨機數(shù)輸出單元42生成 包括n-p位的比特流的偽隨機數(shù),并將生成的偽隨機數(shù)作為置亂密 鑰輸出給置亂密鑰緩存器61。
總線置亂器43執(zhí)行將從CPU 31提供的邏輯地址信號所表示的 邏輯地址轉(zhuǎn)換成用于實際訪問存4諸器33的物理地址的處理。
在包含于總線置亂器43的各個元件中,置亂密鑰保存器51使 用從隨機數(shù)輸出單元42提供的偽隨機數(shù)生成置亂密鑰,并保存所 生成的置亂密鑰。更具體地,置亂密鑰保存器51的置亂密鑰緩存 器61 4吏用乂人隨才幾數(shù)輸出單元42 ^是供的偽隨才幾數(shù)生成置亂密鑰,并 保存所生成的置亂密鑰。同時,置亂密鑰緩存器61提供生成的置 亂密鑰并將其存儲在內(nèi)部存儲器62中。內(nèi)部存儲器62是非易失性 存儲器,如閃存、或由電池或類似物支持的隨4幾存取存儲器(RAM )。 即使在控制模塊13的電源被關閉的情況下,內(nèi)部存儲器62仍持續(xù) 地保存置亂密鑰。當控制才莫塊13 乂人關閉的狀態(tài)變?yōu)殚_啟時,置亂 密鑰緩存器61讀出存儲在內(nèi)部存儲器62中的置亂密鑰,并保存該
置亂密鑰。然后,在,人控制才莫塊13開啟到完成從內(nèi)部存々者器62讀 取置亂密鑰的期間內(nèi),置亂密鑰緩存器61向復位電路34提供復位
指示信號。
利用置亂密鑰緩存器61中保存的置亂密鑰,地址總線置亂電 路52把從CPU 31提供的邏輯地址信號表示的邏輯地址置亂,從而 將邏輯地址轉(zhuǎn)換成用于實際訪問存儲器33的物理地址。換句話i兌, 地址總線置亂電路52置亂輸入邏輯地址,從而給邏輯地址分配物 理地址。地址總線置亂電i 各52通過地址總線36將表示經(jīng)過轉(zhuǎn)換的 物理地址的物理地址信號提供給存儲器33。
存儲器33是非易失性存儲器,如閃存、電可擦除可編程只讀 存儲器(EEPROM)、硬盤驅(qū)動(HDD)、》茲阻RAM (MRAM )、 牽失電RAM (FeRAM)或Ovonic統(tǒng)一存卡者器(Ovonic Unified Memory )。在從CPU 31向存儲器33提供寫入信號的情況下,包含 在該寫入信號中的數(shù)據(jù)被寫入到存儲器33上的物理地址,該地址 由從地址總線置亂電路52提供的物理地址信號所表示。在從CPU 31向存儲器33提供讀取信號的情況下,從存儲器上的物理地址(該 地址由乂人地址總線置亂電路52 ^是供的物理地址信號所表示)讀取 數(shù)據(jù),然后讀出的數(shù)據(jù)經(jīng)由數(shù)據(jù)總線37提供給CPU31。
當從置亂密鑰緩存器61提供復位指示信號時,復位電路34提 供復位信號給CPU 31,從而初始化CPU 31的狀態(tài)。
圖3是示出隨機數(shù)輸出單元42的功能結(jié)構(gòu)的框圖。隨機數(shù)輸 出單元42包括隨枳4史字生成器101和開關102。
隨機數(shù)生成器101包括具有Ll位移位寄存器的線性反饋移位 寄存器(LFSR)隨機數(shù)生成器111、具有L2位移位寄存器的LFSR 隨機數(shù)生成器112和異或(EXOR)電路113。
LFSR隨機數(shù)生成器111和112基于移位寄存器的預定位的值 的異或作為反饋值輸入到該移位寄存器的現(xiàn)有LFSR原理。隨機數(shù) 生成器101〗吏用異或電i 各113,通過一位一位地計算分別由LFSR 隨積4t生成器111和112生成的兩個不同的最大長度序列(M序列) 偽隨枳4t的異或來生成Gold序列(Gold-sequence)偽隨枳4t。隨 才幾數(shù)生成器101中包含的LFSR隨機數(shù)生成器111和112的數(shù)目并 不限于兩個。隨才幾lt生成器101可以具有三個或更多個LFSR隨才幾 數(shù)生成器。
開關102響應于表示來自置亂密鑰變更指示單元41的改變置 亂密鑰的指令的信號的輸入而接通。表示由隨機數(shù)生成器101生成 的Gold序列偽隨扭4t的比特流經(jīng)由開關102輸出至置亂密鑰緩存 器61。
圖4是示出總線置亂器43的詳細功能結(jié)構(gòu)的框圖。
置亂密鑰緩存器61包括具有串行及并行輸入和并行輸出的n 位移位寄存器。如圖5所示,在置亂密鑰緩存器61的內(nèi)部寄存器 之中,低階的p位(Kl Kp位)是固定值,而作為串行信號從隨 機數(shù)輸出單元42提供的偽隨機數(shù)被設至剩余的高階n-p位 (Kp+,d-Kn位)。即,置亂密鑰緩存器61生成并保存為固定值的 預定〗氐階p位和作為偽隨才幾數(shù)的剩余n-p位的二進制置亂密鑰。 具有固定值的p位的最低有效位(LSB)總是設為1。即,置亂密 鑰的LSB總被設為1。
地址總線置亂電路52利用異或電路151-1 ~ 151-n, 一位接一 位地計算包括經(jīng)由地址總線35從CPU 31提供的邏輯地址信號所表 示的Al ~ An位的n位邏輯地址和包括置亂密鑰緩存器61中保存的 Kl Kn位的n位置亂密鑰的異或,從而將邏輯地址轉(zhuǎn)換為包括 SA1 ~ SAn位的n位物理地址。地址總線置亂電路52經(jīng)由地址總線 36將表示轉(zhuǎn)換后的物理地址的物理地址信號^是供纟會存々者器33。
下面將參照圖6和圖7描述讀/寫器l執(zhí)^f亍的處理。
參照圖6所示的流程圖,將描述由讀/寫器1 ,執(zhí)行的置亂密鑰生 成處理。當在讀/寫器1開啟的情況下,用戶通過置亂密鑰變更指示 單元41輸入改變置亂密鑰的指令時該處理開始。
在步驟S1中,隨機數(shù)輸出單元42輸出偽隨才幾凄t。更具體地, 置亂密鑰變更指示單元41向開關102提供表示改變置亂密鑰的指 令的信號,從而開啟開關102。在讀/寫器1的電源打開的情況下, 隨機數(shù)生成器101始終生成偽隨機數(shù)。通過接通開關102,隨機數(shù) 生成器101開始經(jīng)由開關102向置亂密鑰緩存器61輸出偽隨機數(shù)。 在隨枳4欠生成器101輸出n-p位的偽隨機凄t的情況下,開關102 關閉。
在步驟S2中,總線置亂器43設置置亂密鑰,并且置亂密鑰生 成處理結(jié)束。具體來說,置亂密鑰緩存器61將包括從隨機數(shù)輸出 單元42提供的n - p位的比特流的偽隨機數(shù)設置為內(nèi)部寄存器的高 階n-p位。從而,生成了包括p個低階位固定值和n-p個高階位 偽隨機數(shù)的n位置亂密鑰。置亂密鑰緩存器61在內(nèi)部寄存器中保 存生成的置亂密鑰,并提供和在內(nèi)部存儲器62中存儲置亂密鑰。 即,置亂密鑰被備份在內(nèi)部存儲器62中。
從而,能夠給每個控制才莫塊13設置具有不同值并難于預測的 置亂密鑰。該置亂密鑰設置處理例如在讀/寫器1從工廠出貨之前才丸 行。
接下來,參照圖7的流程圖,描述由讀/寫器1執(zhí)行的存儲器存 取控制處理。該處理例如在讀/寫器1開啟的情況下開始。
在步驟S31中,在讀/寫器1開啟且控制模塊13開啟的情況下, 置亂密鑰緩存器61開始向復位電路34提供復位指示信號。
在步驟S32中,復位電路34開始向CPU 31提供復位信號,乂人 而復位CPU 31 。因此,CPU 31的狀態(tài);帔初始化。
在步驟S33中,置亂密鑰緩存器61讀取內(nèi)部寄存器62中保存 的置亂密鑰。置亂密鑰緩存器61將讀出的置亂密鑰保存到內(nèi)部寄 存器中。
在步驟S34中,置亂密鑰緩存器61停止向復位電路34提供復 位指示信號。相應地,復位電路34停止向CPU31提供復位信號。 CPU 31開始執(zhí)行程序。
在步驟S35中,CPU 31確定是否寫入數(shù)據(jù)。在由CPU 31執(zhí)行 的程序中的下一處理不涉及寫入凄史據(jù)的情況下,CPU 31確定不寫
入數(shù)據(jù),流程進行到步驟S36。
在步驟S36中,CPU31確定是否讀取數(shù)據(jù)。在由CPUM執(zhí)行 的程序中的下一處理不涉及讀取凄t據(jù)的情況下,CPU 31確定不讀 取數(shù)據(jù),流程返回到步驟S35。
重復步驟S35和S36中的處理,直到確定在步驟S35中寫入數(shù) 據(jù)或在步驟S36中讀取凄t據(jù)。
在步驟S35中由CPU 31執(zhí)行的程序中的下一處理涉及寫入數(shù) 據(jù)的情況下,CPU31確定寫入數(shù)據(jù),流程進行到步驟S37。
在步驟S37中,CPU31給出寫入數(shù)據(jù)的指令。更具體地,CPU 31經(jīng)由地址總線35向地址總線置亂電路52提供表示邏輯數(shù)據(jù)寫入 位置的邏輯地址的邏輯地址信號,并經(jīng)由數(shù)據(jù)總線37向存儲器33 提供包括將被寫入的數(shù)據(jù)和表示寫入數(shù)據(jù)的指令的寫入信號。
在步驟S38中,i也址總線置亂電路52將邏輯地址轉(zhuǎn)換為物理 地址。具體來說,地址總線置亂電路52 —位4妾一位地計算由邏輯 地址信號表示的邏輯地址與置亂密鑰緩存器61中保存的置亂密鑰 的異或來置亂邏輯地址,乂人而將邏輯地址轉(zhuǎn)」換為物理地址。地址總 線置亂電路52經(jīng)由地址總線36向存儲器33才是供表示轉(zhuǎn)換后的物 理;也址的物理;也址4言號。
在步驟S39中,存儲器33寫入數(shù)據(jù)。具體來說,存儲器33將 從CPU 31 4是供的寫入信號中包含的數(shù)據(jù)寫入到存儲器33上的物理 地址,該地址由物理地址信號表示。從而,即使在CPU31給出將 數(shù)據(jù)寫入連續(xù)的邏輯地址的指令的情況下,ft據(jù)也實際上被寫入存 儲器33上隨機安排的位置。從而,難于分析或篡改存儲器33中存 儲的數(shù)據(jù)。
在置亂密鑰的連續(xù)低階位是零的情況下,與連續(xù)為零的位相對 應的邏輯地址低階位不轉(zhuǎn)換為物理地址而進行分配。因此,在存儲 器33上低階位沒有轉(zhuǎn)換的范圍中,數(shù)據(jù)以與邏輯地址相同的序列 排列。例如,在置亂密鑰的三個連續(xù)的低階位為零的情況下,邏輯 地址的三個低階位不轉(zhuǎn)換為物理地址而進行分配,而且,在存々者器 33上低階位沒有轉(zhuǎn)換的范圍中,數(shù)據(jù)以與邏輯地址相同的序列排 列。因此,數(shù)據(jù)更有可能被分析。與此相反,如上文所描述的,置 亂密鑰緩存器61中保存的置亂密鑰的LSB被固定為1,因此邏輯 地址的LSB始終被置亂。因此,在存儲器上,避免了數(shù)據(jù)以與邏輯 地址相同的序列排列,從而能更可靠地使數(shù)據(jù)變得更難于分析。
通過將置亂密鑰的固定值設置為只包括1的比特流,數(shù)據(jù)流能 夠被可靠地置亂,并以更詳細的方式排列,從而數(shù)據(jù)變得更加難于 分析。
之后,流程返回步驟S35,執(zhí)行步驟S35以下的處理。
在步驟S36中,在由CPU 31執(zhí)行的程序中的下一處理涉及讀 取數(shù)據(jù)的情況下,CPU31確定讀取數(shù)據(jù),流程進行到步驟S40。
在步驟S40中,CPU31給出讀取數(shù)據(jù)的指令。具體來說,CPU 31經(jīng)由地址總線35向地址總線置亂電路52纟是供表示邏輯數(shù)據(jù)讀取 位置的邏輯地址的邏輯地址信號,并經(jīng)由數(shù)據(jù)總線37向存儲器33 提供表示數(shù)據(jù)讀取指令的讀取信號。
在步驟S41中,與上文描述的步驟S38中的處理一樣,邏輯;t也 址祐:轉(zhuǎn)換成物理地址,并經(jīng)由地址總線36將表示轉(zhuǎn)4奐后的物理;也 址的物理地址信號從地址總線置亂電路52提供給存儲器33。
在步驟S42中,存儲器33讀取數(shù)據(jù)。具體來說,存儲器33讀 取存4諸在由物理地址信號表示的物理地址上的凄t才居,并經(jīng)由數(shù)才居總 線37向CPU 31提供讀出的數(shù)據(jù)。
之后,流程返回步驟S35,執(zhí)行步驟S35以下的處理。
如上文所描述的,能夠容易地為不同的控制才莫塊13設置不同 的置亂密鑰。即使在設置給一個控制模塊13的置亂密鑰被分析出 來的情況下,也能防止使用該置亂密鑰分析或篡改存儲在另 一控制 模塊13的存儲器33中的數(shù)據(jù)。因此,由于數(shù)據(jù)泄漏或篡改造成的 破壞能夠被保持在最小。
在^Vf于偽隨枳4史生成方法和地址置亂方法中可采用現(xiàn)有的^支 術(shù)。由于不需要新的復雜電路,而且用戶只需執(zhí)行輸入改變置亂密
鑰的指令的附加步驟,因而能夠容易地提高存儲器33中的數(shù)據(jù)安 全性。
如上所述,防止了凝:據(jù)在存儲器33中以與邏輯地址相同的序 列排列,因此能更可靠地使數(shù)據(jù)變得更難于分析。
下面參照圖8和圖9,描述才艮據(jù)本發(fā)明第二實施例的隨枳4"俞 出單元42。
圖8是示出根據(jù)第二實施例的隨機數(shù)輸出單元42的功能結(jié)構(gòu) 的框圖。圖8所示的隨機數(shù)輸出單元42包括隨機數(shù)生成器101、比 特流檢查器201、開關202、包括n-p位移位寄存器的隨機數(shù)存儲 單元203和開關204。在圖8中,對應于圖3的部分4吏用相同的附 圖標號表示,為避免冗余而省略了執(zhí)行相同處理的部分的描述。
比特流纟企查器201 /人置亂密鑰變更指示單元41獲得表示改變 置亂密鑰的指令的信號。在從置亂密鑰變更指示單元41提供表示 改變置亂密鑰的指令的信號的情況下,比特流;險查器201接通開關
202。 因此,表示由隨機數(shù)生成器101生成的Gold序列偽隨機數(shù)的 比特流經(jīng)由開關202從隨枳i數(shù)生成器101纟是供至隨才幾數(shù)存儲單元
203, 并被存儲在隨機數(shù)存儲單元203中。
比特流檢查器201檢查隨機數(shù)存儲單元203中存儲的偽隨機數(shù) 是否與4壬意預定的禁用值一致。在隨枳4t存書者單元203中存儲的偽 隨枳』數(shù)與一禁用值一致的情況下,比特流檢查器201 4妄通開關202, 并/人隨才幾數(shù)輸出單元101向隨才幾數(shù)存儲單元203輸出包括預定凄欠目 位的偽隨機數(shù),從而改變存儲在隨機數(shù)存儲單元203中的偽隨機數(shù) 的值。在隨機數(shù)存儲單元203中存儲的偽隨機數(shù)與任何禁用值都不
一致的情況下,比特流4企查器201接通開關204。從而,經(jīng)由開關 204向置亂密鑰緩存器61輸出存儲在隨機數(shù)存儲單元203中的包括 n-p位比特流的偽隨機數(shù)。即,在由隨機數(shù)生成器101生成的偽隨 機數(shù)等于預定的禁用值的情況下,比特流檢查器201控制隨機數(shù)生 成器101以生成新的隨才幾數(shù),并將這個不同于禁用值的隨才幾值輸出 至置亂密鑰緩存器61。
接下來,參照圖9的流程圖,描述在讀/寫器1中設置了圖8 所示的隨積4t輸出單元42的情況下,由讀/寫裝置1執(zhí)4亍的不同于 圖6的流程圖的置亂密鑰生成處理。當例如在讀/寫器1的電源打開 的情況下用戶通過置亂密鑰變更指示單元41輸入改變置亂密鑰的 指令時,該處理開始。
在步驟S101中,隨機數(shù)輸出單元42生成偽隨機凄t。具體來i兌, 置亂密鑰變更指示單元41向比特流檢查器201提供表示改變置亂 密鑰的指令的信號。比特流沖企查器201接通開關202。當讀/寫器l 的電源打開時,隨枳4t生成器101不斷地生成偽隨扭4t。通過4妄通 開關202,隨4幾數(shù)生成器101開始經(jīng)由開關202向隨機數(shù)存儲單元 203輸出偽隨機數(shù)。在隨機數(shù)生成器101輸出n - p位的偽隨機數(shù)的 情況下,比特流;險查器201斷開開關202。
在步驟S102中,比特流4企查器201確定偽隨機數(shù)是否為禁用 值。例如,比起其他值來說可能更容易預測的值,例如包括相同連 續(xù)值的比特流(例如,111…111),或具有交替不同值的比特流(例 如,0101...0101或1010...1010),:故用戶作為禁止用作置亂密鑰的 值而預先設置在比特流檢查器201中。在通過從這些禁用值的每一 個中除去置亂密鑰的低階固定值而獲得的值與存儲在隨機數(shù)存4諸 單元203中的偽隨枳^t一致的情況下,比特流;險查器201確定偽隨 機數(shù)是禁用值,流程進行到步驟S103。
在步驟S103中,比特流沖全查器201生成新的偽隨才幾數(shù)。具體 來說,比特流檢查器201接通開關202,并從隨才幾數(shù)生成器101向 隨機數(shù)存儲單元203輸出包括預定數(shù)目位的偽隨機數(shù)。隨機數(shù)存儲 單元203將存儲的比特流向上移位新輸入的偽隨^/L數(shù)的位的數(shù)目, 并將輸入的偽隨機數(shù)加到該比特流的末尾。即,由隨機數(shù)生成器101 生成的新的偽隨機凄^皮存^f諸在隨枳i數(shù)存儲單元203中。
之后,流程返回到步驟S102。重復步驟S102和S103中的處 理,直到在步驟S102中確定偽隨機數(shù)不是禁用值。
在步驟S102中確決定偽隨機數(shù)不是禁用值的情況下,處理進 行到步驟S104。
在步驟S104中,隨機數(shù)輸出單元42輸出偽隨機數(shù)。具體來說, 比特流檢查器201接通開關204。從而,存儲在隨機數(shù)存儲單元203 中的偽隨機數(shù)經(jīng)由開關204輸出至置亂密鑰緩存器61。
在步驟S105中,與圖6所示的步驟S2中的上述處理一樣,設 置置亂密鑰,置亂密鑰生成處理結(jié)束。
由于以上面描述的方式避免了容易預測的值被設置為置亂密 鑰,因而難于分析或篡改存儲器33中存儲的數(shù)據(jù),從而加強了存 儲器33中數(shù)據(jù)的安全性。此外,通過在例如更換或初始化存儲器 33時改變置亂密鑰,使得置亂密鑰變得更加難于分析。
在上文的描述中,已經(jīng)描述了 Gold序列偽隨機數(shù)被用作置亂 密鑰的情況。然而,用作置亂密鑰的隨機數(shù)或偽隨機數(shù)并不限于上 述舉例。例如,可以 <吏用通過<又<吏用 一個LFSR生成的M序列偽隨 才幾數(shù)或利用熱噪聲的物理隨機數(shù)。
置亂地址的方法并不限于上述舉例。也可以采用^f吏用通過隨^L
凄t或偽隨扭4ti殳置的置亂密鑰的其他方法。
在上文的描述中,IC卡2被描述為讀/寫器1的通信伙伴。勿 庸置疑,讀/寫器1可與具有非接觸IC卡功能的裝置進行通信,例 如移動電話、個人數(shù)字助理(PDA)、計時器以及具有非接觸IC卡 功能的計算機。
除讀/寫器外,圖2所示的存儲器存取控制器32還可以應用于 從/向存儲器讀/寫數(shù)據(jù)的其他裝置。
在圖8所示的隨積4史輸出單元42中,除上文描述的禁止4斬出 容易預測的值作為置亂密鑰之外,還可以根據(jù)應用任意設置禁止被 輸出的值。
盡管在上文中描述了圖2所示的存儲器33是非易失性存儲器 的情況,但毫無疑問,存儲器存取控制器32也可以用于控制易失 性存儲器。
可以允許用戶設置置亂密鑰的固定值的LSB以外的值。
進一步,可以允許用戶設置置亂密鑰的固定值以外的可變值。
本領域技術(shù)人員應該明白,根據(jù)設計要求和其他因素,在所附 的權(quán)利要求或其等同范圍以內(nèi),本發(fā)明可以進行各種修改、組合、 自組合和變更。
權(quán)利要求
1.一種存儲器存取控制裝置,包括置亂密鑰生成裝置,用于生成包括為固定值的預定低階位的二進制置亂密鑰,其中,最低有效位的值是1,剩余位是隨機數(shù)或偽隨機數(shù);以及分配裝置,用于使用所述置亂密鑰來置亂邏輯地址,從而將物理地址分配給所述邏輯地址。
2. 根據(jù)權(quán)利要求1所述的存儲器存取控制裝置,其中,所述置亂 密鑰生成裝置生成所述固定值是只包括1的比特流的所述置 亂密鑰。
3. 根據(jù)權(quán)利要求1所述的存儲器存取控制裝置,進一步包括用于 生成所述隨機數(shù)或所述偽隨機數(shù)的隨機數(shù)生成裝置。
4. 根據(jù)權(quán)利要求3所述的存儲器存取控制裝置,其中,所述隨機 tt生成裝置生成Gold序列偽隨枳4史。
5. 根據(jù)權(quán)利要求3所述的存儲器存取控制裝置,其中,在所生成 的隨機數(shù)或所生成的偽隨機數(shù)等于預定值的情況下,所述隨機 數(shù)生成裝置生成新的隨機數(shù)或新的偽隨機數(shù)。
6. —種存儲器存取控制方法,包括以下步驟生成包括為固定值的預定低階位的二進制置亂密鑰,其 中,最低有效位的值是l,剩余位是隨機數(shù)或偽隨機數(shù);以及4吏用所述置亂密鑰來置亂邏輯;也址,乂人而將物理地址分 酉己給所述邏輯;也址。
7. —種用于與具有非接觸集成電路卡功能的裝置進行通信的通 信裝置,包括置亂密鑰生成裝置,用于生成包括為固定值的預定低階 位的二進制置亂密鑰,其中,最低有效位的值是l,剩余位是 隨枳4t或偽隨枳4t;以及分配裝置,用于使用所述置亂密鑰來置亂邏輯地址,從 而將物理地址分配給所述邏輯地址,所述物理地址被用于存儲 從所述具有非接觸集成電路卡功能的裝置中讀取的數(shù)據(jù)。
8. —種存儲器存取控制裝置,包括置亂密鑰生成器,被配置為生成包括為固定值的預定低 階位的二進制置亂密鑰,其中,最^氐有效位的值是1,剩余位 是隨機數(shù)或偽隨機數(shù);以及分配單元,被配置為使用所述置亂密鑰來置亂邏輯地址, /人而將物理地址分配給所述邏輯地址。
9. 一種用于與具有非接觸集成電路卡功能的裝置進行通信的通 信裝置,包括置亂密鑰生成器,被配置為生成包括為固定值的預定低 階位的二進制置亂密鑰,其中,最低有效位的值是l,剩余位 是隨才幾數(shù)或偽隨枳i數(shù);以及分配單元,被配置為使用所述置亂密鑰來置亂邏輯地址, 從而將物理地址分配給所述邏輯地址,所述物理地址;故用于存 儲從所述具有非接觸集成電路卡功能的裝置中讀取的數(shù)據(jù)。
全文摘要
一種存儲器存取控制裝置,包括以下元件置亂密鑰生成器,被配置為生成包括為固定值的預定低階位的二進制置亂密鑰,其中,最低有效位的值是1,剩余位是隨機數(shù)或偽隨機數(shù);以及分配單元,被配置為使用置亂密鑰來置亂邏輯地址,從而將物理地址分配給邏輯地址。
文檔編號G06F12/14GK101114257SQ200710130039
公開日2008年1月30日 申請日期2007年7月25日 優(yōu)先權(quán)日2006年7月25日
發(fā)明者村岡如竹 申請人:索尼株式會社