專利名稱:存儲裝置的制作方法
技術領域:
本發明涉及諸如半導體存儲卡之類的存儲裝置,更具體而言,涉及試圖對具有機密性的區域進行更快速的數據寫入和讀取。
背景技術:
近年來在電子商務中越來越多地使用的智能卡與簡單的存儲卡不同,其具有卡載(on board)的CPU,并且可以執行智能處理。智能卡在具有防篡改(tamper resistance)功能的模塊(防篡改模塊TRM)中具有存儲區域;因此,它們可以確保數據機密并且嚴防偽造和復制。然而,智能卡的存儲容量約為幾萬字節,并且它們不能存儲像用于數據存儲的存儲卡可以存儲的那樣多的數據。
通過使用終端應用程序(以下,術語“應用程序”簡稱為“應用”)啟動合并在智能卡中的卡應用,來起動由智能卡執行的處理。該處理在進行通信的同時進行,在通信過程中,終端應用發送命令并且卡應用向其發回應答。國際標準ISO/IEC 7816規定了關于命令和應答的交換的國際標準,其規定命令采取被稱為APDU的形式(應用協議數據單元)。(參見非專利參考文件1“interface”March 2003,CQ Shuppansha,pp.49-50。)申請人先前開發了一種存儲卡(以下將此卡稱為“安全存儲卡”),其具有智能卡的智能特性和可與存儲卡相比的存儲容量二者(日本專利申請第2003-042288號)。此安全存儲卡包括第一非防篡改存儲器,其具有可以從終端訪問的普通區域和不可以從終端直接訪問的安全區域,和第二防篡改存儲器,不可以從終端直接對其進行訪問;并且將此安全存儲卡配置為只能通過用于管理對第二存儲器的訪問的安全控制部分來訪問第一存儲器的安全區域。
這樣,即使存儲區域的配置是非防篡改的,也可以將安全區域作為具有大容量的機密區域來利用,并且此安全區域可以處理幾十兆字節的大量數據,比第二防篡改存儲器可以處理的字節多得多。
然而,當根據ISO/IEC 7816規定的APDU將卡應用使用的大容量數據寫入安全區域時出現以下問題。該標準將從終端到卡一次可以傳送的數據量限制到最多約為64KB(用許多智能卡時約為256字節),因此當寫入幾十兆字節的數據量時,必須將數據分割并處理幾百到幾千次,所以到寫入完成時需要幾分鐘到幾小時。當在發貨(shipment)前將相同的數據寫入大量安全存儲器例如多于1000個存儲器時,這樣冗長的寫入時間成為巨大的障礙。
發明內容
本發明解決了這樣的問題,其目的在于提供一種存儲裝置,該存儲裝置可以在短時間內將大容量數據寫入安全區域并從其讀取大容量數據。
因此,本發明提供一種固定地或可分離地連接到電子裝置上的存儲裝置,其包括存儲區域,從電子裝置不可直接對其進行訪問;安全控制部分,其管理對存儲區域的訪問;和裝置控制部分,其與電子裝置進行通信并且將來自電子裝置的請求傳送至安全控制部分,其中,如果有來自已認證的(authenticated)電子裝置的對大容量數據進行寫或讀的請求,那么安全控制部分臨時授予裝置控制部分對存儲區域的訪問權限,并且已經被授予訪問權限的裝置控制部分通過突發傳送(burst transfer)將從電子裝置發送的數據寫入存儲區域,或者通過突發傳送將從存儲區域讀取的數據發送至電子裝置。
因此,由于數據的突發傳送而減少了命令交換的次數,從而使處理加快。
而且,用按照APDU標準化的命令來執行安全控制部分的處理,因此,此存儲裝置具有與現有的智能卡的國際標準的高度兼容性。通過在APDU的幀內設置有關裝置控制部分的處理的命令,該存儲裝置可以支持現有的智能卡的國際標準而無需改進。即使當設置了專用命令時,該存儲卡也可以保持與終端應用中的微小變化的兼容性。
圖1是示出根據本發明的第一實施例的安全存儲卡的配置的方框圖;圖2是示意性地示出根據本發明的第一實施例的安全存儲卡的操作的圖解;圖3是示出根據本發明的第一實施例的安全存儲卡的操作過程的流程圖;
圖4是示出根據本發明的第一實施例的安全存儲卡的詳細操作過程的流程圖;圖5是示出根據本發明的第二實施例的安全存儲卡的操作過程的流程圖;圖6是示出根據本發明的第二實施例的單-芯片配置的圖解;圖7是示出根據本發明的第二實施例的雙-芯片配置的圖解;圖8是示出根據本發明的第二實施例的雙-芯片配置中的加密轉換過程的圖解。
附圖中的附圖標記分別表示如下10--安全存儲卡;20--控制部分;21--安全區域大容量訪問功能;40--防篡改模塊;41--內部非易失性存儲器;42--安全控制部分;43--智能卡功能軟件程序;44--內部CPU;50--大容量非易失性存儲器;51--安全區域;52--非認證(non-authentication)區域;和60--終端設備的外部CPU。
具體實施例方式
(第一實施例)如圖1所示,根據本發明的第一實施例的安全存儲卡包括防篡改模塊40,其包括內部非易失性存儲器41和安全控制部分42;大容量非易失性存儲器50,其包括非認證區域52和安全區域51;和控制部分(裝置控制部分)20,其與終端裝置(讀/寫裝置)的外部CPU 60通信,并且控制對終端裝置的存儲區域的訪問。
安全控制部分42包括內部CPU 44,其包括CPU、ROM、RAM和解密引擎;卡應用軟件程序43,用于實施智能卡功能,并且安全控制部分42可以訪問內部非易失性存儲器41和安全區域51。
控制部分20具有一種卡應用,其實施安全區域大容量訪問功能21,以便將大容量數據寫入安全區域51(或從其讀出該數據)。當作為通信一方(partner)的終端裝置的外部CPU 60請求對非認證區域52的訪問時,控制部分20無條件地允許該訪問,而當終端裝置的請求是對于內部非易失性存儲器41或安全區域51的時,控制部分將該請求傳送至安全控制部分42。此外,當從安全控制部分42對安全區域51授予訪問權限時,控制部分執行安全區域大容量訪問功能21。
TRM 40的內部非易失性存儲器41包括可以按照16字節擦/寫數據的EEPROM,并且大容量非易失性存儲器50包括例如能夠以512字節等的塊進行擦除的快閃存儲器,并且快閃存儲器能夠以1字節來寫數據。
安全區域51和內部非易失性存儲器41之間的差別在于安全區域51設在非防篡改大容量非易失性存儲器50中,而內部非易失性存儲器41設在TRM 40中。由于這個原因,安全區域51可以比內部非易失性存儲器41具有更大的存儲容量,但是另一方面,其安全級別低于設在TRM 40中的內部非易失性存儲器41。三個區域的安全級別為非認證區域52的安全級別最低,安全區域51較高,內部非易失性存儲器41更高。
控制部分20解釋從外部CPU 60接收的命令,并且確定該命令是請求對非認證區域52的訪問還是請求由智能卡功能進行的處理。如果請求對非認證區域52的訪問,那么控制部分無條件地允許該訪問請求,然而如果請求由智能卡功能進行的處理,那么控制部分將該命令傳送至安全控制部分42。
在安全控制部分42上執行的智能卡功能43解釋從控制部分20發送的命令,并且確定該處理請求是請求向內部非易失性存儲器41寫入或從其讀出數據;向安全區域51寫入或從其讀出數據;認證;還是其它處理。
當該命令請求認證時,執行認證處理。另一方面,當該命令請求向內部非易失性存儲器41寫入或從其讀出數據,或該命令請求向安全區域51寫入或從其讀出數據時,控制部分確認認證處理是否已經完成,并且如果認證處理已經完成則允許該請求。用由內部非易失性存儲器41保持的加密密鑰來加密寫入數據,并且將其寫入內部非易失性存儲器41或安全區域51。相反,當讀出時,從內部非易失性存儲器41或安全區域51讀出數據,并且用由內部非易失性存儲器41保持的解密密鑰對其進行解密,并且將該數據通過控制部分20傳送至終端裝置。
同時,如圖2中示意性地示出的那樣,當有一個該終端裝置發出的對大容量數據的寫入(或讀入)請求時,在安全控制部分42中執行的智能卡功能43認證諸如移動電話之類的終端裝置60([1]),并且如果認證成功完成,那么向控制部分20臨時授予對安全區域51的訪問權限(和使用加密密鑰的權利)([2])。已經接收此授權的控制部分20啟動安全區域大容量訪問功能21,加密從終端裝置60發送的大容量數據,并將該數據寫入安全區域51(或者其從安全區域51讀出大容量數據,解密該數據,并且將該數據發送至終端裝置60)([3])。
圖3示出在此情況下終端60和安全存儲卡的處理流程。
終端60請求認證,并且在安全控制部分42中執行的智能卡功能43執行與終端60的相互認證([1])。隨后,它們交換僅用于此通信的會話密鑰([2])。
作為交換會話密鑰的一種方法,例如,DH(Diffie-Hellman)方法是眾所周知的。利用此密鑰交換方法,當在終端60和安全控制部分42之間交換會話密鑰K時,終端60和安全控制部分42首先利用共享信息,例如當前日期的月份(p)和日期(z),通過計算公式e=Zmodp、根據p和z來計算e。隨后,終端60產生并保持隨機數a,通過計算公式m=e^a產生m,并且將結果得到的m發送至安全控制部分42。同時,安全控制部分42產生并保持隨機數b,通過計算公式n=e^b產生n,并且將結果得到的n發送至終端60。
已經接收n的終端60通過公式K=n^a=e^ab來產生會話密鑰K,并且已經接收m的安全控制部分42通過公式K=m^b=e^ab來產生與終端60的密鑰相同的會話密鑰K。
已經執行密鑰交換的終端60發送對安全區域51的訪問請求,并且智能卡功能43返回一個應答([3])。智能卡功能43向控制部分20授予對安全區域51的訪問權限,并將該會話密鑰和用于存儲在安全區域51中的數據的加密密鑰(安全區域密鑰)傳遞至控制部分20。控制部分20啟動安全區域大容量訪問功能21([3]′)。
在寫請求的情況下,終端60發送由會話密鑰加密的大容量數據。控制部分20的安全區域大容量訪問功能21用該會話密鑰解密依次接收的大容量數據,用安全區域密鑰對它們進行加密,并且將它們寫入安全區域51([4])。當完成大容量數據的寫入時,終端60發送終止請求,并且智能卡功能43返回一個應答,并使被給予控制部分20的訪問權限無效([5])。
應當注意,安全區域大容量訪問功能21可以將數據寫入安全區域51而無需對它們進行加密,并且智能卡功能43可以稍后對已經寫入安全區域51的數據進行加密。在此情況下,在授予訪問權限中智能卡功能43不需要將安全區域密鑰傳遞至控制部分20。
另一方面,當終端60請求讀取大容量數據時,已經在步驟[3]′啟動的控制部分20的安全區域大容量訪問功能21從安全區域51讀出作為讀請求的對象的數據;其用安全區域密鑰解密該數據,由此用會話密鑰加密該數據,并將該數據發送至終端60。終端60用會話密鑰解密該已加密的數據并使用該數據([4])。當完成作為讀請求的對象的大容量數據的獲取時,終端60確認(acknowledge)讀取終止,智能卡功能43返回一個應答并使被給予控制部分20的訪問權限無效([5])。
圖4的流程圖示出在此過程中在智能卡功能43、安全區域大容量訪問功能21和安全區域(管理機制)51中執行的詳細處理過程的一個示例,當已經完成認證和密鑰交換([1]、[2])的終端60發送訪問請求時([3]),智能卡功能43請求發放(issue)用于認證安全區域51的訪問權限的訪問權證(access ticket)([3]-1),并且安全區域51發放附加會話ID的權證([3]-2)。智能卡功能43將權證、會話密鑰和安全區域密鑰傳遞至安全區域大容量訪問功能21,并且向其授予訪問權限([3]-3)。當接收到這些時,安全區域大容量訪問功能21設置訪問ID和數據尺寸([3]-4),并且將這些訪問ID和尺寸包括在對訪問請求的應答中,并且將它們發送至終端60([3])。
終端60將對大容量數據的寫/讀命令發送至安全區域大容量訪問功能21,同時指定訪問ID([4]-1),并且安全區域大容量訪問功能21使用訪問權證和密鑰(安全區域密鑰和會話密鑰)將大容量數據寫入安全區域51或者從其讀取大容量數據([4]-2)。
當終端60作出終止請求時([5]),智能卡功能43請求安全區域51使該權證無效([5]-1)。應當注意,當檢測到寫/讀的結束時,安全區域51可以自動使該權證無效。
因此,在執行大容量數據的寫或讀的情況下,此安全存儲卡10通過智能卡功能43執行該處理(相互認證、密鑰交換),通過安全區域大容量訪問功能21執行該處理,并最后通過智能卡功能43執行終止處理。
在安全區域大容量訪問功能21的處理中,通過突發傳送來傳送數據。因此,通過減少命令交換的次數,可以減少開銷(不直接用于指定的任務的時間),從而使處理加快。突發傳送一次可以處理MB(兆字節)級的數據,從而可以將該數據量的寫時間縮短到幾秒鐘至幾分鐘。
此外,當然用按照APDU標準化的命令來執行由安全存儲卡10的智能卡功能43進行的相互認證、密鑰交換處理和終止處理,但是通過在APDU的幀(frame)中設置有關由安全區域大容量訪問功能21進行的大容量數據的寫-讀處理的命令,存儲卡可以支持現有的智能卡的國際標準,而無需改進。
而且,也可以提供用于大容量數據的寫-讀處理的專用命令,并且同樣在此情況下,安全存儲卡10僅通過微小的改進就可以用于與現有的智能卡的國際標準相兼容的終端裝置的終端應用。
而且,通過用會話密鑰加密大容量數據,可以防止在傳送過程中大容量數據的泄漏的意外發生。應當注意,當在確保安全的環境中(例如,在安全存儲卡的制造過程中)執行大容量數據的寫和讀時,可以省去用會話密鑰的加密。
(第二實施例)本發明的第二實施例描述一種方案,其當將對安全區域的訪問權限給予控制部分時避免已預料的事故。在此描述中,使用與圖1中的標號相同的標號。
可以預見到當根據第一實施例的方法執行大容量數據的寫-讀時,可能發生這樣的事故,即在控制部分20保持對安全區域51的訪問權限期間,通過控制部分20從安全區域51不合法地讀出數據,將數據不合法地寫入安全區域51,或者要傳遞到控制部分20的安全區域密鑰泄漏。
為了防止這種情況,對于給出訪問權限的定時來講,有必要在執行大容量數據的實際寫和讀的緊前面向控制部分20給予安全區域51的訪問權限,并且該處理一旦完成就使該訪問權限無效。
也可以給予控制部分20訪問權限,利用該訪問權限限制在安全區域51中的可訪問區域,以便即使當不期望的情況發生時也防止損害擴大。
圖5示出在此情況下的處理流程。智能卡功能43執行與終端60的相互認證([1]),并執行密鑰交換([2])。響應于來自終端60的訪問請求([3]),智能卡功能向控制部分20授予對在安全區域51中的指定區域511的訪問權限([3]′)。
此時,在圖4的流程中,智能卡功能43請求安全區域51發放指定文件或區域的訪問權證([3]-1),并將獲得的權證傳遞至控制部分20。
在寫請求的情況下,終端60發送由會話密鑰加密的大容量數據;控制部分20的安全區域大容量訪問功能21用該會話密鑰解密依次接收的大容量數據,并用安全區域密鑰對該數據進行加密,并且將該數據寫入安全區域51中的指定區域511([4])。
另一方面,當終端60請求讀取大容量數據時,控制部分20的安全區域大容量訪問功能21從安全區域51中的指定區域511讀出受到讀請求的數據。其用安全區域密鑰解密該數據,由此用會話密鑰加密該數據,并將該數據發送至終端60。
后面的處理與圖3的情形中的處理相同。
因此,通過限制被給予控制部分20的對安全區域51的訪問權限,來阻止對除指定區域之外的其它區域的訪問,即使發生不太可能的事故,也可以防止毀壞存儲在安全區域51中的其它位置的數據。
而且,如圖6所示,當將控制部分20的軟件程序20和智能卡功能的軟件程序43實現在單個芯片(TRM)40中時,可以通過在軟件程序20和43之間的內部通信,將對安全區域51的訪問權限授予控制部分20,并且可以在控制部分20和智能卡功能43之間共享由控制部分20使用的加密引擎。因此,在使用單-芯片實現的情況下,由與用于智能卡功能43的硬件保護同等的硬件保護來保護控制部分軟件程序20,可以簡單并安全地將訪問權限授予控制部分20。
另一方面,如圖7所示,在由分離的芯片實現控制部分20和智能卡功能43的情況下,當授予訪問權限時,通過監控芯片之間的連接,可能導致從智能卡功能43向控制部分20傳遞的安全區域密鑰的泄漏。為了防止此情況發生,最好將智能卡功能43和控制部分20之間的通信加密。對于此加密,使用在制造過程中預先設置的共享密鑰,或使用被動態地密鑰交換的公用密鑰。
而且,可以將記錄在安全區域51中的數據用作安全區域密鑰,以便不必在芯片之間傳送密鑰信息。在此情況下,已經訪問安全區域51的控制部分20讀取要作為安全區域密鑰的數據并使用該數據,其加密大容量數據并將它們寫入安全區域51。
而且,可以想象,如果控制部分20不合法地保持了令人高興的訪問權限,那么安全區域51中的數據可能被修改。為了防止這種情況,最好在將對安全區域51的訪問權限給予控制部分20之前和之后轉換安全區域密鑰。圖8示出在此情況下的過程。
首先,智能卡功能43將用于加密存儲在安全區域51中的數據的加密密鑰A轉換成安全區域密鑰B。可以將會話密鑰用作此安全區域密鑰B([1])。在從安全區域51讀取大容量數據的情況下,解密已經用加密密鑰A加密的安全區域51的數據,并且用安全區域密鑰B再次對其加密。
接下來,向控制部分20授予對安全區域51的訪問權限,并向其傳遞安全區域密鑰B([2])。已經被授予訪問權限的控制部分20訪問安全區域51;在寫入大容量數據的情況下,控制部分用安全區域密鑰B加密該大容量數據并將該數據寫入安全區域51。在讀取大容量數據的情況下,其用安全區域密鑰B解密從安全區域51讀取的大容量數據([3])。在完成對大容量數據的寫入/讀取時,智能卡功能43執行轉換,其中將安全區域密鑰B轉換回加密密鑰A,并用加密密鑰A再次對存儲在安全區域51中的數據加密([4])。
在此處理后,即使控制部分20試圖使用安全區域密鑰B訪問安全區域51中的數據,因為密鑰不同所以數據讀取也會失敗([5])。
因此,即使當控制部分20和智能卡功能43設在不同的芯片中,也能通過加密轉換阻止未授權的使用。
實施例已經描述了向安全存儲卡的安全區域寫入或從其讀取大容量數據。然而,在安全存儲卡10的內部非易失性存儲器41的容量增加的情況下,或在智能卡的存儲區域增加的情況下,當對于這些存儲器執行大容量數據的寫入/讀取時,本發明也是適用的。
盡管已經參照本發明的特定優選實施例詳細描述了本發明,但是對于本領域的技術人員來講很明顯,在不偏離本發明的范圍和精神的情況下,可以在此進行各種改變和修改。
本申請是基于2003年3月26日提交的日本專利申請第2003-085298號提出的,在此通過引用合并其內容。
工業上的可用性從前面的描述明顯看出,本發明的存儲裝置可以在短時間內并安全地執行大容量數據的寫入/讀取。
而且,本發明的存儲裝置具有與現有的智能卡的國際標準的高度兼容性。
權利要求
1.一種固定地或可分離地連接到電子裝置上的存儲裝置,其包括存儲區域,從電子裝置不可直接對其進行訪問;安全控制部分,其管理對存儲區域的訪問;和裝置控制部分,其與電子裝置進行通信并且將來自電子裝置的請求傳送至安全控制部分,其中,如果有來自已認證的電子裝置的對大容量數據進行寫或讀的請求,那么安全控制部分臨時授予裝置控制部分對存儲區域的訪問權限;并且已經被授予訪問權限的裝置控制部分通過突發傳送將從電子裝置發送的數據寫入存儲區域,或者通過突發傳送將從存儲區域讀取的數據發送至電子裝置。
2.根據權利要求1所述的存儲裝置,其中,安全控制部分給予被授予訪問權限的裝置控制部分用于加密或解碼存儲區域的數據的安全區域密鑰,并且其中,裝置控制部分用安全區域密鑰加密要被寫入存儲區域的數據,或者用安全區域密鑰解密從存儲區域讀出的數據。
3.根據權利要求2所述的存儲裝置,其中,安全控制部分加密安全區域密鑰,并將該密鑰發送至裝置控制部分,并且其中,裝置控制部分解密該安全區域密鑰并使用該密鑰。
4.根據權利要求2所述的存儲裝置,其中,安全控制部分給予裝置控制部分已經經過轉換處理的安全區域密鑰,并且其中,安全控制部分使已經授予裝置控制部分的訪問權限無效,并且由此將該安全區域密鑰再轉換為原始狀態。
5.根據權利要求1所述的存儲裝置,其中,裝置控制部分使用存儲在存儲區域中的數據加密要被寫入存儲區域的數據,或者解密從存儲區域讀出的數據。
6.根據權利要求1至5的任何一項所述的存儲裝置,其中,安全控制部分與已經被認證的電子裝置交換會話密鑰,并將該會話密鑰給予被授予訪問權限的裝置控制部分,并且其中,裝置控制部分用該會話密鑰解密從電子裝置接收的數據,或者用該會話密鑰加密要被發送到電子裝置的數據。
7.根據權利要求1至6的任何一項所述的存儲裝置,其中,安全控制部分授予限于存儲區域的部分區域的訪問權限作為訪問權限。
8.根據權利要求1、4、6或7所述的存儲裝置,其中將安全控制部分和裝置控制部分形成在同一芯片上。
9.根據權利要求1至7的任何一項所述的存儲裝置,其中,將安全控制部分和裝置控制部分形成在分離的芯片上。
全文摘要
提供一種能夠在短時間內對安全區域中的大容量數據進行寫/讀的存儲裝置。存儲裝置(10)包括存儲區域(51),從電子裝置(60)不可直接對其進行訪問;安全控制部分(42),用于管理對存儲區域(51)的訪問;和裝置控制部分(20),用于與電子裝置進行通信并且將來自電子裝置的請求傳送至安全控制部分(42)。當從已認證的(authenticated)電子裝置(60)請求對大容量數據寫/讀時,安全控制部分(42)向裝置控制部分(20)臨時傳送用于訪問存儲區域(51)的訪問權限。已經收到此訪問權限的裝置控制部分(20)突發傳送從電子裝置(60)發送的數據并在存儲區域(51)中執行寫/讀。數據突發傳送減少命令的往返次數,從而使增加處理速度。
文檔編號G06K19/07GK1764908SQ20048000828
公開日2006年4月26日 申請日期2004年3月23日 優先權日2003年3月26日
發明者中西良明, 高木佳彥 申請人:松下電器產業株式會社