與存儲器區(qū)域的密碼信息關(guān)聯(lián)的制作方法
【專利摘要】本文的實施例涉及密碼操作,如加密和/或解密要從第一存儲器區(qū)域和第二存儲器區(qū)域讀取或要向第一存儲器區(qū)域和第二存儲器區(qū)域?qū)懭氲男畔?。第一密碼信息與第一存儲器區(qū)域有關(guān),第二密碼信息與第二存儲器區(qū)域有關(guān)。
【專利說明】與存儲器區(qū)域的密碼信息關(guān)聯(lián)
[0001]優(yōu)先權(quán)信息
[0002]本申請要求2011年7月18日提交的美國臨時申請N0.61/509,078的優(yōu)先權(quán)的權(quán)益,該美國臨時申請的全部內(nèi)容通過引用整體并入本文。
【背景技術(shù)】
[0003]像安全處理器這樣的裝置可以利用密碼信息對要被存儲至存儲器的信息進行加密,以便保護該信息被沒有訪問該信息的許可的第三方讀取。例如,如果存儲器位于裝置外部,則存儲器和外部裝置之間的信息傳輸可能被未經(jīng)授權(quán)方截取,但是如果該信息被加密,那么該未經(jīng)授權(quán)方仍然可能無法讀取該信息。
[0004]然而,用于加密信息的方法可能放緩該裝置的操作。進一步,該裝置可能受限于要執(zhí)行的加密的類型。此外,未經(jīng)授權(quán)方也許能夠訪問在存儲在該裝置中的密碼信息內(nèi)包含的密鑰值,因此危害所傳輸?shù)男畔⒌陌踩Ia(chǎn)者、供應(yīng)者和/或用戶面臨提供在保持安全性的閾值水平時加密信息的更快和/或更通用的方法的挑戰(zhàn)。
【專利附圖】
【附圖說明】
[0005]下面的【具體實施方式】參考附圖,其中:
[0006]圖1是密碼裝置的示例框圖;
[0007]圖2是密碼裝置的另一示例框圖;
[0008]圖3A是圖2的MMU的示例框圖;
[0009]圖3B是圖3A的寄存器的示例框圖;
[0010]圖4是包括用于加密或解密信息的指令的計算裝置的示例框圖;
[0011]圖5是加密方法的示例流程圖;以及
[0012]圖6是加密方法的另一示例流程圖。
【具體實施方式】
[0013]在下面的描述中給出具體細節(jié)來提供對實施例的全面理解。然而,本領(lǐng)域技術(shù)人員將理解,實施例可以在沒有這些具體細節(jié)的情況下實踐。例如,系統(tǒng)可以以框圖的形式示出,以便不以不必要的細節(jié)使實施例模糊。在其它情況中,可以沒有不必要的細節(jié)的情況下示出眾所周知的進程、結(jié)構(gòu)及技術(shù),以便避免使實施例模糊。
[0014]像安全微處理器這樣的裝置通常可以使用相同的密碼算法、模式和/或密鑰來對一個或多個存儲器的所有存儲器區(qū)域加密信息。對所有類型的信息和/或存儲器區(qū)域使用相同的密碼算法、模式和/或密鑰可能相對更低效和/或更不安全。例如,特定類型的密碼算法可以基于信息的類型或存儲器更快速地或更簡潔地加密該信息。例如,一些類型的密碼算法可能更適合于多媒體數(shù)據(jù),而其它類型的密碼算法可能更適合于應(yīng)用程序代碼或者緩存數(shù)據(jù)。此外,使用相同的密碼算法、模式和/或密鑰降低安全性,因為如果未經(jīng)授權(quán)方秘密地確定解密存儲器區(qū)域中任何一個存儲器區(qū)域的方法,則所有存儲器區(qū)域都可以變得可讀和/或被解密。此外,該裝置可以以不安全的方式存儲密鑰值,如未經(jīng)加密的數(shù)據(jù)和/或在未受保護的位置。因此,如果未經(jīng)授權(quán)方訪問該密鑰值,則可能危害安全性。
[0015]實施例可以允許用諸如不同的算法、模式和/或密鑰之類的不同密碼信息加密不同的存儲器區(qū)域。使用不同的密碼信息可以提高安全性和/或效率。例如,利用不同的密碼信息加密不同的存儲器區(qū)域可以增加未經(jīng)授權(quán)方可能解密多個不同存儲器區(qū)域的時間和/或難度。進一步,根據(jù)要加密或者解密的信息的類型,被加密的信息的大小和/或用于密碼操作的時間可以基于所選擇的算法、模式和/或密鑰的類型而減少。此外,在一個實施例中,所有密鑰值可以在分離的安全的位置(如安全存儲器)集中地存儲,該裝置存儲指向關(guān)聯(lián)密鑰值的位置的密鑰引證(key reference).因此,可以更安全地保護密鑰值不受未經(jīng)授權(quán)方的訪問。
[0016]在一個實施例中,密碼信息可以存儲在包括在該裝置內(nèi)的存儲器管理單元(MMU)處。在這種情況下,用于一個或多個存儲器區(qū)域的算法、模式和/或密鑰可以被靈活地指定和簡單地訪問。例如,可以與已經(jīng)由MMU處理的任何其它屬性(如讀-寫-運行屬性和用戶-主管者屬性)類似地管理密碼信息。
[0017]現(xiàn)在參考附圖,圖1是密碼裝置100的示例框圖。密碼裝置100可以包括在執(zhí)行密碼操作的任何類型的裝置內(nèi),如包括在安全微處理器、筆記本計算機、臺式計算機、一體式系統(tǒng)、板式計算裝置、便攜式閱讀裝置、無線電子郵件裝置、移動電話等。在圖1的實施例中,裝置100包括密碼模塊110和加密器120。
[0018]密碼模塊110可以例如包括用于實現(xiàn)下面描述的功能的電子電路的硬件設(shè)備,如一個或多個寄存器。另外或者作為替代,密碼模塊110可以被實現(xiàn)為在機器可讀存儲介質(zhì)上編碼的并可由處理器運行的一系列指令。在實施例中,密碼模塊110可以被實現(xiàn)為硬件裝置或者可運行指令。例如,密碼模塊110可以被實現(xiàn)為由在裝置100上運行的操作系統(tǒng)
(OS)運行的應(yīng)用程序的一部分。
[0019]密碼模塊110會存儲第一密碼信息112并且會存儲第二密碼信息114,第一密碼信息112與加密要向第一存儲器區(qū)域(未示出)寫入和要從第一存儲器區(qū)域讀取至少之一的信息以及解密要向第一存儲器區(qū)域?qū)懭牒鸵獜牡谝淮鎯ζ鲄^(qū)域讀取至少之一的信息至少之一有關(guān),第二密碼信息114與加密要向第二存儲器區(qū)域?qū)懭牒鸵獜牡诙鎯ζ鲄^(qū)域讀取至少之一的信息以及解密要向第二存儲器區(qū)域?qū)懭牒鸵獜牡诙鎯ζ鲄^(qū)域讀取至少之一的信息至少之一有關(guān)。術(shù)語“密碼信息”可以涉及執(zhí)行密碼操作所需的任何類型的信息,如密碼算法、模式、密鑰和/或密碼安全參數(shù)(CSP)信息。術(shù)語“密碼操作”可以涉及與諸如數(shù)據(jù)或者代碼之類的信息的加密和/或解密有關(guān)的任何類型的進程。
[0020]例如,第一密碼信息112和第二密碼信息114每個都可以包括算法、模式和/或密鑰信息。算法信息可以包括對稱密鑰算法和非對稱密鑰算法中至少之一。對稱算法的示例包括雙魚(Twofish)、蛇(Serpent)、AES (Rijndael (瑞恩多爾))、河豚(Blowfish)、CAST5、RC4、3DES、IDEA等。非對稱算法的示例包括迪菲-赫爾曼(Diff ie_Hellman)密鑰交換協(xié)議、數(shù)字簽名標(biāo)準(zhǔn)(DSS)、厄格瑪爾(EIGamal)、佩勒(Paillier)密碼系統(tǒng)、RSA加密算法和克拉默-舒普(Cramer-Shoup)密碼系統(tǒng)等。該算法可以是用于執(zhí)行加密或者解密的程序。
[0021]模式信息包括塊密碼模式和流密碼模式中至少之一。塊密碼模式的示例包括電子源碼書(ECB)、密碼塊鏈接(CBC)、填充密碼塊鏈接(PCBC)、密碼反饋(CFB)、輸出反饋(OFB)、計數(shù)器(CTR)模式等。流密碼模式的示例包括同步和自同步的流密碼,如RC4、A5/1、A5/2、卡梅隆(Chameleon)、FISH、雙螺旋(Helix)、ISAAC、MUGI> 巴拿馬(Panama)、菲利克斯(Phelix)、派克(Pike)、SEAL、SOBER、SOBER-128, WAKE等。模式信息可以涉及使能夠利用相同密鑰重復(fù)和安全地使用算法的程序。
[0022]密鑰信息可以包括密鑰值和/或?qū)γ荑€值的引證。如果密鑰信息包括對密鑰的引證,則密鑰值可以利用對該密鑰值的引證而從安全存儲器(未示出)中取得。密鑰信息可以是確定密碼算法的功能輸出的任何類型的信息或者參數(shù)。在安全存儲器處而不是在密碼模塊110處存儲密鑰信息可以防止與其它密鑰分離,簡化密鑰管理并且降低破壞或泄漏密鑰信息的可能性。將關(guān)于圖2進一步詳細地說明密碼模塊110。雖然將第一密碼信息112和第二密碼信息114描述為包括算法、模式和/或密鑰信息,但是實施例還可以包括其它類型的密碼信息。
[0023]加密器120可以是能夠執(zhí)行加密和/或解密的任何類型的裝置?;诘谝幻艽a信息112,加密器120會加密要從第一存儲器區(qū)域讀取和要向第一存儲器區(qū)域?qū)懭胫辽僦坏男畔⒁约皶饷芤獜牡谝淮鎯ζ鲄^(qū)域讀取和要向第一存儲器區(qū)域?qū)懭胫辽僦坏男畔⒅辽僦弧_M一步,基于第二密碼信息114,加密器會加密要從第二存儲器區(qū)域讀取和要向第二存儲器區(qū)域?qū)懭胫辽僦坏男畔⒁约皶饷芤獜牡诙鎯ζ鲄^(qū)域讀取和要向第二存儲器區(qū)域?qū)懭胫辽僦坏男畔⒅辽僦?。將關(guān)于圖2進一步詳細地說明加密器120。
[0024]第一密碼信息112和第二密碼信息114中至少之一的算法、模式和密鑰信息中至少之一的類型,可以基于信息的源以及與第一存儲器區(qū)域和第二存儲器區(qū)域中至少一個存儲器區(qū)域關(guān)聯(lián)的存儲器(未示出)的類型至少之一。例如,第一密碼信息可以與第一類型的信息(如啟動代碼)關(guān)聯(lián),并且第二密碼信息可以與第二類型的信息(如緩存數(shù)據(jù))關(guān)聯(lián)。因此,第一密碼信息和第二密碼信息可以包括不同算法、模式和/或密鑰。
[0025]進一步,第一密碼信息112和第二密碼信息114的第一存儲器區(qū)域和第二存儲器區(qū)域可以與不同類型的存儲器關(guān)聯(lián)。例如,第一密碼信息112的第一存儲器區(qū)域可以與SDRAM或DRAM類型的存儲器關(guān)聯(lián)并且使用XTS-AES模式,而第二密碼信息114的第二存儲器區(qū)域可以與ROM類型的存儲器關(guān)聯(lián)并且使用CBC模式。
[0026]進一步,第一密碼信息112和第二密碼信息114可以具有不同的算法、模式和/或密鑰,即使在相應(yīng)的第一存儲器區(qū)域和第二存儲器區(qū)域共享相同類型的存儲器時,如在第一存儲器區(qū)域和第二存儲器區(qū)域與不同類型的信息關(guān)聯(lián)或者用于附加安全時。
[0027]因此,第一密碼信息的算法、模式和密鑰信息中至少之一的類型與第二密碼信息的算法、模式和密鑰信息中至少之一的類型獨立地被確定。因此,第一密碼信息的算法、模式和密鑰信息中至少之一可以不同于第一密碼信息的算法、模式和密鑰信息中至少之一。
[0028]雖然圖1僅僅示出第一密碼信息112和第二密碼信息114,但是實施例可以包括比兩個全部密碼信息更多或者更少的密碼信息。類似地,實施例可以包括比兩個全部的存儲器區(qū)域更多或者更少的存儲器區(qū)域。密碼信息的數(shù)量、大小和/或內(nèi)容可以自動地和/或手動地改變。
[0029]圖2是密碼裝置200的另一示例框圖。密碼裝置200可以包含在執(zhí)行密碼操作的任何類型的裝置(如安全微處理器、筆記本計算機、臺式計算機、一體式系統(tǒng)、板式計算裝置、便攜式閱讀裝置、無線電子郵件裝置、移動電話等)中。在圖2的實施例中,裝置200包括存儲器管理單元(MMU) 210、處理器220、第一控制器230、第二控制器240、第一存儲器區(qū)域250和第二存儲器區(qū)域260。裝置200進一步包括圖1的加密器120和密碼模塊110。將密碼模塊110示出為包含在MMU210內(nèi)。然而,實施例還可以包括位于MMU210外部的密碼模塊110。
[0030]MMU210、第一控制器230及第二控制器240可以例如包括用于實現(xiàn)下面描述的功能的電子電路的硬件裝置。另外或作為替代,每個模塊可以被實現(xiàn)為在機器可讀存儲介質(zhì)上編碼的并且可由處理器運行的一系列指令。
[0031 ] 第一存儲器區(qū)域250和第二存儲器區(qū)域260可以是諸如能夠存儲像數(shù)據(jù)或指令這樣的信息的任何類型的電子存儲裝置、磁性存儲裝置,光存儲裝置或其它物理存儲裝置之類的一種或多種機器可讀存儲介質(zhì)的一部分。因此,一種或多種機器可讀存儲介質(zhì)可以是例如隨機存取存儲器(RAM)、電可擦可編程只讀存儲器(EEPR0M)、存儲驅(qū)動器、光盤只讀存儲器(⑶-ROM)等。在圖2中,將第一存儲器區(qū)域250和第二存儲器區(qū)域260示出為位于裝置200外部。然而,實施例還可以包括位于裝置200內(nèi)部的第一存儲器區(qū)域250和第二存儲器區(qū)域260。
[0032]MMU210可以控制存儲器映射管理的各方面。例如,MMU210可以限定存儲器的不同部分(如第一存儲器區(qū)域250和第二存儲器區(qū)域260)的地址范圍,和/或?qū)⒄鎸嵉刂?例如內(nèi)部地址或者物理地址)映射至虛擬地址(例如邏輯地址或者外部地址)。進一步,MMU210可以為每個存儲器映射部分管理訪問許可(例如讀-寫-運行、用戶-主管者和/或進程ID)。在圖2中,MMU210可以映射第一存儲器區(qū)域250和第二存儲器區(qū)域260的地址并且控制對第一存儲器區(qū)域250和第二存儲器區(qū)域260的訪問。
[0033]處理器220可以是至少一個中央處理單元(CPU),至少一個基于半導(dǎo)體的微處理器、至少一個圖形處理單元(GPU)、適合于取得和運行指令的其它硬件裝置。作為取得和運行指令的替代或者除取得和運行指令以外,處理器220可以包括包含用于執(zhí)行指令的功能的多個電子組件的至少一個集成電路(1C)、其它控制邏輯、其它電子電路或者它們的組合。
[0034]當(dāng)處理器220試圖訪問存儲器(如第一存儲器區(qū)域250和第二存儲器區(qū)域260中至少一個存儲器區(qū)域)時,處理器220可以與MMU210通信。例如,處理器220可以將真實的CPU地址傳遞至MMU210,并且MMU210可以將該真實地址轉(zhuǎn)換為第一存儲器區(qū)域250和第二存儲器區(qū)域260中至少一個存儲器區(qū)域的虛擬地址或者用戶地址。在訪問存儲器時,可以訪問一個或多個存儲器組件。例如,處理器220可以在執(zhí)行寫操作時經(jīng)由處理器本地總線(PLB)(未示出)以及第一控制器230和第二控制器240中的一個控制器來請求對存儲器的存儲器訪問。
[0035]第一控制器230和第二控制器240基于存儲在MMU210中的訪問信息212分別控制對第一存儲器區(qū)域250和第二存儲器區(qū)域260的訪問。例如,第一控制器230控制對第一存儲器區(qū)域250的訪問,第二控制器240控制對第二存儲器區(qū)域260的訪問。如圖1中說明的,加密器120可以接合在處理器220和第一控制器230及第二控制器340之間。
[0036]例如,基于第一密碼信息112和第二密碼信息114中至少一個密碼信息,加密器120可以解密要從第一存儲器區(qū)域250和第二存儲器區(qū)域260中至少一個存儲器區(qū)域讀取的信息以及放行要從第一存儲器區(qū)域250和第二存儲器區(qū)域260中至少一個存儲器區(qū)域讀取的信息至少之一。類似地,基于第一密碼信息112和第二密碼信息114中至少一個密碼信息,加密器120會加密要向第一存儲器區(qū)域250和第二存儲器區(qū)域260中至少一個存儲器區(qū)域?qū)懭氲男畔⒁约胺判幸虻谝淮鎯ζ鲄^(qū)域250和第二存儲器區(qū)域260中至少一個存儲器區(qū)域?qū)懭氲男畔⒅辽僦?。加密?20獨立于處理器220來操作。
[0037]當(dāng)處理器220試圖訪問存儲器(如第一存儲器區(qū)域230和第二存儲器區(qū)域240中的一個存儲器區(qū)域)時,MMU210可以同時控制加密器120以及第一控制器230和第二控制器240中的至少一個控制器。例如,如果處理器220正在請求訪問位于第一存儲器區(qū)域250中的地址,則MMU210可以使用在MMU210中包括的訪問信息212來控制第一控制器230,以使能夠?qū)Φ谝淮鎯ζ鲄^(qū)域250的訪問。進一步,MMU210可以使用第一密碼信息112來控制加密器120,以加密、解密或者放行從第一存儲器區(qū)域250和第二存儲器區(qū)域260中至少一個存儲器區(qū)域傳送的或者向第一存儲器區(qū)域250和第二存儲器區(qū)域260中至少一個存儲器區(qū)域傳送的任何信息。在這種情況下,利用MMU210,可以使能第一控制器230并且利用第一密碼信息112的算法、模式和/或密鑰對加密器120進行配置。
[0038]當(dāng)處理器220從第一存儲器區(qū)域250讀取或者向第一存儲器區(qū)域250寫入時,信息通過加密器120。例如,為了安全目的,向第一存儲器區(qū)域250寫入的信息可以由加密器120加密。相反,從第一存儲器區(qū)域250讀取的信息可以被加密器120解密。因此,任何信息在離開裝置200時可以被加密,在進入裝置200時可以被解密。然而,實施例不是有限的。例如,加密器120可以解密要向存儲器寫入的信息和/或加密要從存儲器讀取的信息。進一步,無論信息是否被加密,加密器120都可以僅僅允許信息通過加密器120,而不對信息進行任何改變。
[0039]當(dāng)加密器230從MMU210接收諸如算法、模式或者密鑰之類的第一密碼信息112或者第二密碼信息114時,密碼操作獨立于處理器220發(fā)生。實際上,密碼操作甚至可以對處理器220是不可見的,例如,如果信息在其是裝置200的輸出時被加密并且在進入裝置200時被解密。此外,提供訪問信息212和第一密碼信息112,使得加密器120和第一控制器230和第二控制器240中至少一個控制器同時操作。
[0040]雖然圖2僅僅示出兩個存儲器區(qū)域250和260和兩個控制器230和240,但是實施例可以包括比兩個存儲器區(qū)域更多或者更少的存儲器區(qū)域和/或比兩個控制器更多或者更少的控制器。雖然圖2僅僅示出單個加密器120,但是實施例可以包括多個加密器,如用于每種存儲器和/或存儲器區(qū)域的單個加密器。
[0041]圖3A是圖2的MMU300的示例框圖。在這個實施例中,MMU300包括多個寄存器302-1至302-n,其中η是自然數(shù)。例如,η可以在32和128之間。寄存器302-1至302_η的大小可以例如是64位至96位,并且寄存器302-1至302_η可以被稱為轉(zhuǎn)換后備緩沖器(TLB)0寄存器302-1至302-n中至少一個寄存器可以被分配給存儲器區(qū)域,并且包括關(guān)于MMU210應(yīng)該如何控制所分配的存儲器區(qū)域的配置信息。例如,可以將第一寄存器302-1分配給第一存儲器區(qū)域250,可以將第二寄存器302-2分配給第二存儲器區(qū)域260。因此,在這種情況下,第一寄存器302-1可以存儲第一密碼信息112和與使能第一控制器230有關(guān)的訪問信息212的一部分。類似地,第二寄存器302-2可以存儲第二密碼信息114和與使能第二控制器240有關(guān)的訪問信息212的一部分。
[0042]此外,寄存器302-1至302-n中一個以上的寄存器可以被映射至相同的存儲器區(qū)域。例如,在一個實施例中,第一寄存器302-1可以具有對第一存儲器區(qū)域250的只寫許可,而第二寄存器302-2可以具有對第一存儲器區(qū)域250的只讀許可。進一步,與第一寄存器302-1的寫操作關(guān)聯(lián)的密碼信息可以不同于與第二寄存器302-2的讀操作關(guān)聯(lián)的密碼信肩、O
[0043]可替代地,第一寄存器302-1和/或第二寄存器302-2中的任何一個寄存器可以指示加密器120使所有信息作為明文(clear text)放行,而不對該信息進行加密或者解密。例如,第一密碼信息112可以指示利用CBC模式加密要向第一存儲器區(qū)域250寫入的信息,而要從第一存儲器區(qū)域250讀取的信息被讀取作為明文,以便執(zhí)行整體加密。相反,作為明文寫入信息和在讀取時解密信息可以允許整體加密。共同利用以上兩個操作可以允許從一個算法至另一算法的整體轉(zhuǎn)換。然而,將會發(fā)生信息的兩次傳送,以便保持安全。不過,該轉(zhuǎn)換還可以作為單個完整的傳送來執(zhí)行,但是信息將被暴露于未經(jīng)加密的狀態(tài)或者作為裝置200外部的明文(假設(shè)存儲器位于裝置200外部)。
[0044]圖3B是圖3A的寄存器302的示例框圖。在這個實施例中,TLB302包括九個段(segment) 304、306、308、310、312、314、316、318 以及 320。第一段 304 可以存儲有效位,以指示寄存器是否是活躍的以及是否被分配給存儲器區(qū)域。如果沒有設(shè)置寄存器302的有效位,則MMU210可以忽略寄存器302。第二段306可以存儲真實地址,如從處理器220接收的地址。第三段308可以存儲虛擬地址,該虛擬地址對應(yīng)于存儲器中被映射至真實地址的位置,如在第一存儲器區(qū)域250和第二存儲器區(qū)域260中一個存儲器區(qū)域處的位置。第四段310可以存儲要對其執(zhí)行密碼操作的信息的大小或者長度。第五段312可以存儲訪問控制,該訪問控制與對使能存儲器訪問的控制器(如第一控制器250或者第二控制器260)進行控制有關(guān)。該訪問控制可以例如確定關(guān)聯(lián)的存儲器區(qū)域是否是可讀的、可寫的、可運行的
坐坐寸寸ο
[0045]第六段314可以存儲進程標(biāo)識符(PID),該進程標(biāo)識符識別請求該密碼操作的進程或者應(yīng)用程序。第七段316可以存儲與MMU功能有關(guān)的其它配置信息。第八段318和第九段320可以存儲密碼信息。例如,第八段318可以存儲算法和/或模式。第九段320可以存儲密鑰、對密鑰的引證和/或其它類型的密碼安全參數(shù)(CSP)。雖然將圖3B的寄存器302示出為具有九個段304至330,但是寄存器302的實施例可以具有比九個段更多或者更少的段。
[0046]圖4是包括用于加密或者解密信息的指令的計算裝置400的示例框圖。在圖4的實施例中,計算裝置400包括處理器410和機器可讀存儲介質(zhì)420。機器可讀存儲介質(zhì)420進一步包括用于加密或者解密信息的指令422、424和426。
[0047]計算裝置400可以是例如芯片集、筆記本計算機、板式計算裝置、便攜式閱讀裝置、無線電子郵件裝置、移動電話或者能夠運行指令422、424和426的任何其它裝置。在特定示例中,計算裝置400可以包括或者連接至附加組件,如存儲器、傳感器、顯示器等。
[0048]處理器410可以是至少一個中央處理單元(CPU)、至少一個基于半導(dǎo)體的微處理器、至少一個圖形處理單元(GPU)、適合于取得和運行存儲在機器可讀存儲介質(zhì)420中的指令的其它硬件裝置、或者它們的組合。處理器410可以取得、解碼并且運行指令422、424和426,以實現(xiàn)信息的加密或者解密。作為取得和運行指令的替代或者除取得和運行指令以夕卜,處理器410可以包括包含用于執(zhí)行指令422、424和426的功能的多個電子組件的至少一個集成電路(1C)、其它控制邏輯、其它電子電路或者它們的組合。[0049]機器可讀存儲介質(zhì)420可以是包含或者存儲可運行指令的任何電子存儲裝置、磁性存儲裝置,光存儲裝置或者其它物理存儲裝置。因此,機器可讀存儲介質(zhì)420可以是例如隨機存取存儲器(RAM)、電可擦可編程只讀存儲器(EEPR0M)、存儲驅(qū)動器、光盤只讀存儲器(CD-ROM)等。于是,機器可讀存儲介質(zhì)320能夠是非瞬態(tài)的。如以下詳細地描述的,機器可讀存儲介質(zhì)420可以被編碼有加密或者解密信息的一系列可運行指令。
[0050]此外,指令422、424和426在由處理器(例如經(jīng)由處理器的一個處理部件或者多個處理部件)運行時可以引起處理器執(zhí)行進程,如圖5或者6的進程。例如,訪問指令422可以由處理器410運行,以訪問第一密碼信息和第二密碼信息(未示出)中至少一個密碼信息。第一密碼信息與對要從第一存儲器區(qū)域(未示出)讀取和要向第一存儲器區(qū)域?qū)懭胫辽僦坏男畔⑦M行加密以及對要從第一存儲器區(qū)域讀取和要向第一存儲器區(qū)域?qū)懭胫辽僦坏男畔⑦M行解密至少之一有關(guān)。
[0051]第二密碼信息與對要從第二存儲器區(qū)域(未示出)讀取和要向第二存儲器區(qū)域?qū)懭胫辽僦坏男畔⑦M行加密以及對要從第二存儲器區(qū)域讀取和要向第二存儲器區(qū)域?qū)懭胫辽僦坏男畔⑦M行解密至少之一有關(guān)。如果第一密碼信息和第二密碼信息中至少一個密碼信息包括加密信息的指令,則加密指令424可以由處理器410運行,以對要向第一存儲器區(qū)域和第二存儲器區(qū)域中至少一個存儲器區(qū)域?qū)懭胍约耙獜牡谝淮鎯ζ鲄^(qū)域和第二存儲器區(qū)域中至少一個存儲器區(qū)域讀取至少之一的信息進行加密。如果第一密碼信息和第二密碼信息中至少一個密碼信息包括解密信息的指令,則解密指令426可以由處理器410運行,以對要向第一存儲器區(qū)域和第二存儲器區(qū)域中至少一個存儲器區(qū)域?qū)懭胍约耙獜牡谝淮鎯ζ鲄^(qū)域和第二存儲器區(qū)域中至少一個存儲器區(qū)域讀取至少之一的信息進行解密。第一密碼信息和第二密碼信息的算法、模式和密鑰中至少之一可以是不同的。
[0052]機器可讀存儲介質(zhì)420還可以包括基于與第一密碼信息和第二密碼信息分離的訪問信息控制對第一存儲器區(qū)域和第二存儲器區(qū)域的訪問的指令(未示出)。訪問被控制為與信息的加密與解密中至少之一同時發(fā)生。如上面提到的,第一密碼信息是獨立于第二密碼信息被確定的。關(guān)于圖5和圖6更詳細地描述裝置400的操作。
[0053]圖5是密碼方法500的示例流程圖。盡管方法500的運行在下文是關(guān)于裝置100描述的,但是能夠使用用于方法500的運行的其它合適組件,如裝置200。另外,用于運行方法500的組件可以散布在多個裝置(例如與輸入和輸出裝置通信的處理裝置)中。在特定場景下,協(xié)調(diào)地行動的多個裝置可以被視為執(zhí)行方法500的單個裝置。方法500能夠以存儲在機器可讀存儲介質(zhì)(如存儲介質(zhì)420)上的可運行指令的形式和/或以電子電路的形式實現(xiàn)。
[0054]在框505處,裝置100接收與多個存儲器區(qū)域中第一存儲器區(qū)域關(guān)聯(lián)的存儲器訪問請求。然后,在框510處,裝置100訪問多個密碼信息中的第一密碼信息,該第一密碼信息與加密要向第一存儲器區(qū)域?qū)懭氲男畔⒁约敖饷芤獜牡谝淮鎯ζ鲄^(qū)域讀取的信息至少之一有關(guān)。多個密碼信息中每個密碼信息與多個存儲器區(qū)域中的一個存儲器區(qū)域關(guān)聯(lián)。最后,在框515處,裝置100基于第一密碼信息對要向第一存儲器區(qū)域?qū)懭氲男畔⑦M行加密以及基于第一密碼信息對要從第一存儲器區(qū)域讀取的信息進行解密至少之一。
[0055]圖6是密碼方法600的另一示例流程圖。盡管方法600的運行在下文是關(guān)于裝置100描述的,但是能夠使用用于裝置200的運行的其它合適組件,如裝置200。另外,用于運行方法600的組件可以散布在多個裝置(例如與輸入和輸出裝置通信的處理裝置)中。在特定場景下,協(xié)調(diào)地行動的多個裝置可以被視為執(zhí)行方法600的單個裝置。方法600能夠以存儲在機器可讀存儲介質(zhì)(如存儲介質(zhì)420)上的可運行指令的形式和/或以電子電路的形式實現(xiàn)。
[0056]圖6的框605、610和615可以與圖5的框505、510和515類似。例如,在框605
處,裝置100接收與多個存儲器區(qū)域中第一存儲器區(qū)域關(guān)聯(lián)的存儲器訪問請求。然后,在框510處,裝置100訪問多個密碼信息中的第一密碼信息,該第一密碼信息與加密要向第一存儲器區(qū)域?qū)懭氲男畔⒁约敖饷芤獜牡谝淮鎯ζ鲄^(qū)域讀取的信息至少之一有關(guān)。如上面提到的,多個密碼信息中每個密碼信息與多個存儲器區(qū)域中的一個存儲器區(qū)域關(guān)聯(lián)。接下來,在框515處,裝置100基于第一密碼信息對要向第一存儲器區(qū)域?qū)懭氲男畔⑦M行加密以及基于第一密碼信息對要從第一存儲器區(qū)域讀取的信息進行解密至少之一。
[0057]進一步,在框620處,裝置100接收與多個存儲器區(qū)域中第二存儲器區(qū)域關(guān)聯(lián)的存儲器訪問請求。然后,在框625處,裝置100訪問多個密碼信息中的第二密碼信息,該第二密碼信息與加密要向第二存儲器區(qū)域?qū)懭氲男畔⒁约敖饷芤獜牡诙鎯ζ鲄^(qū)域讀取的信息至少之一有關(guān)。最后,在框630處,裝置100基于第二密碼信息對要向第二存儲器區(qū)域?qū)懭氲男畔⑦M行加密以及基于第二密碼信息對要從第一存儲器區(qū)域讀取的信息進行解密至少之一。
[0058]如上面提到的,第一密碼信息和第二密碼信息包括算法、模式和密鑰信息中至少之一。算法信息包括對稱密鑰算法和非對稱密鑰算法中至少之一,模式信息包括塊密碼模式和流密碼模式中至少之一,并且密鑰信息包括密鑰的值和對密鑰的引證中至少之一。
[0059]如上面提到的,第一密碼信息和第二密碼信息中至少一個密碼信息的算法、模式和密鑰信息中至少之一的類型,基于信息的源以及與第一存儲器區(qū)域和第二存儲器區(qū)域中至少一個存儲器區(qū)域關(guān)聯(lián)的存儲器的類型至少之一。進一步,第一密碼信息的算法、模式和密鑰信息中至少之一的類型獨立于第二密碼信息的算法、模式和密鑰信息中至少之一的類型。例如,第一密碼信息和第二密碼信息可以具有不同的算法、模式和/或密鑰。
[0060]根據(jù)前述內(nèi)容,實施例提供一種用于加密和/或解密要向存儲器寫入或要從存儲器讀取的信息的方法和/或裝置。例如,可以利用不同的密碼信息加密或者解密不同的存儲器區(qū)域,從而提高安全性和/或效率。進一步,例如通過修改MMU來存儲用于各個存儲器區(qū)域的密碼信息,可以靈活地修改并簡單地實現(xiàn)密碼信息。
【權(quán)利要求】
1.一種裝置,包括: 密碼模塊,存儲與對要向第一存儲器區(qū)域?qū)懭牒鸵獜乃龅谝淮鎯ζ鲄^(qū)域讀取至少之一的信息進行加密以及進行解密至少之一有關(guān)的第一密碼信息,并且存儲與對要向第二存儲器區(qū)域?qū)懭牒鸵獜乃龅诙鎯ζ鲄^(qū)域讀取至少之一的信息進行加密以及進行解密至少之一有關(guān)的第二密碼信息;以及加密器,該加密器: 基于所述第一密碼信息,對要從所述第一存儲器區(qū)域讀取和要向所述第一存儲器區(qū)域?qū)懭胫辽僦坏男畔⑦M行加密以及進行解密至少之一,并且 基于所述第二密碼信息,對要從所述第二存儲器區(qū)域讀取和要向所述第二存儲器區(qū)域?qū)懭胫辽僦坏男畔⑦M行加密以及進行解密至少之一。
2.如權(quán)利要求1所述的裝置,其中, 所述第一密碼信息和所述第二密碼信息包括算法信息、模式信息和密鑰信息中至少之 所述算法信息包括對稱密鑰算法和非對稱密鑰算法中至少之一, 所述模式信息包括塊密碼模式和流密碼模式中至少之一,并且 所述密鑰信息包括密鑰值和對密鑰值的引證中至少之一。
3.如權(quán)利要求2所述的裝置,其中, 所述第一密碼信息和所述第二密碼信息中至少一個密碼信息的所述算法信息、所述模式信息和所述密鑰信息中至少之一的類型基于信息的源和與所述第一存儲器區(qū)域和所述第二存儲器區(qū)域中至少一個存儲器區(qū)域關(guān)聯(lián)的存儲器的類型中至少之一,并且 所述第一密碼信息的所述算法信息、所述模式信息和所述密鑰信息中至少之一的類型獨立于所述第二密碼信息的所述算法信息、所述模式信息和所述密鑰信息中至少之一的類型。
4.如權(quán)利要求3所述的裝置,其中與加密信息有關(guān)的所述第一密碼信息的所述算法信息、所述模式信息和所述密鑰信息中至少之一不同于與解密信息有關(guān)的所述第一密碼信息的所述算法信息、所述模式信息和所述密鑰信息中至少之一。
5.如權(quán)利要求1所述的裝置,進一步包括: 存儲器管理單元(MMU),存儲與控制對所述第一存儲器區(qū)域和所述第二存儲器區(qū)域的訪問有關(guān)的訪問信息;以及 第一控制器,基于所述訪問信息控制對所述第一存儲器區(qū)域的訪問,其中 提供所述訪問信息和所述第一密碼信息,使得所述加密器和所述第一控制器同時操作。
6.如權(quán)利要求5所述的裝置,進一步包括: 第二控制器,基于所述訪問信息控制對所述第二存儲器區(qū)域的訪問,其中 提供所述訪問信息和所述第二密碼信息,使得所述加密器和所述第二控制器同時操作。
7.如權(quán)利要求6所述的裝置,其中, 所述加密器在所述第一存儲器區(qū)域及所述第二存儲器區(qū)域中至少之一和處理器之間傳送信息,所述加密器經(jīng)由所述第一控制器從所述第一存儲器區(qū)域接收信息和將信息傳送至所述第一存儲器區(qū)域至少之一,并且 所述加密器經(jīng)由所述第二控制器從所述第二存儲器區(qū)域接收信息和將信息傳送至所述第二存儲器區(qū)域至少之一。
8.如權(quán)利要求7所述的裝置,其中, 所述第一存儲器區(qū)域和所述第二存儲器區(qū)域位于所述裝置之外,并且所述MMU包括所述密碼模塊,所述MMU從所述處理器接收存儲器訪問請求并且將從所述處理器接收的物理地址映射至所述第一存儲器區(qū)域和所述第二存儲器區(qū)域中至少一個存儲器區(qū)域的虛擬地址。
9.如權(quán)利要求1所述的裝置,其中, 基于所述第一密碼信息和所述第二密碼信息中至少一個密碼信息,所述加密器對要從所述第一存儲器區(qū)域和所述第二存儲器區(qū)域中至少一個存儲器區(qū)域讀取的信息進行解密以及進行放行至少之一, 基于所述第一密碼信息和所述第二密碼信息中至少一個密碼信息,所述加密器對要向所述第一存儲器區(qū)域和所述第二存儲器區(qū)域中至少一個存儲器區(qū)域?qū)懭氲男畔⑦M行加密以及進行放行至少之一,并且 所述加密器獨立于所述處理器來操作。
10.一種密碼方法,包括: 接收與多個存儲器區(qū)域中第一存儲器區(qū)域關(guān)聯(lián)的存儲器訪問請求; 訪問多個密碼信息中的第一密碼信息,所述第一密碼信息與對要向所述第一存儲器區(qū)域?qū)懭氲男畔⑦M行加密以及對要從所述第一存儲器區(qū)域讀取的信息進行解密至少之一有關(guān),所述多個密碼信息中每個密碼信息與所述多個存儲器區(qū)域中的一個存儲器區(qū)域關(guān)聯(lián);以及 基于所述第一密碼信息對要向所述第一存儲器區(qū)域?qū)懭氲男畔⑦M行加密以及基于所述第一密碼信息對要從所述第一存儲器區(qū)域讀取的信息進行解密至少之一。
11.如權(quán)利要求10所述的方法,進一步包括: 接收與所述多個存儲器區(qū)域中第二存儲器區(qū)域關(guān)聯(lián)的存儲器訪問請求; 訪問多個密碼信息中的第二密碼信息,所述第二密碼信息與對要向所述第二存儲器區(qū)域?qū)懭氲男畔⑦M行加密以及對要從所述第二存儲器區(qū)域讀取的信息進行解密至少之一有關(guān);以及 基于所述第二密碼信息對要向所述第二存儲器區(qū)域?qū)懭氲男畔⑦M行加密以及基于所述第二密碼信息對要從所述第一存儲器區(qū)域讀取的信息進行解密至少之一。
12.如權(quán)利要求11所述的方法,其中, 所述第一密碼信息和所述第二密碼信息包括算法信息、模式信息和密鑰信息中至少之 所述算法信息包括對稱密鑰算法和非對稱密鑰算法中至少之一, 所述模式信息包括塊密碼模式和流密碼模式中至少之一,并且 所述密鑰信息包括密鑰值和對密鑰值的引證中至少之一。
13.如權(quán)利要求12所述的方法,其中,所述第一密碼信息和所述第二密碼信息中至少一個密碼信息的所述算法信息、所述模式信息和所述密鑰信息中至少之一的類型基于信息的源和與所述第一存儲器區(qū)域和所述第二存儲器區(qū)域中至少一個存儲器區(qū)域關(guān)聯(lián)的存儲器的類型中至少之一,并且 所述第一密碼信息的所述算法信息、所述模式信息和所述密鑰信息中至少之一的類型獨立于所述第二密碼信息的所述算法信息、所述模式信息和所述密鑰信息中至少之一的類型。
14.一種非瞬態(tài)計算機可讀介質(zhì),所述非瞬態(tài)計算機可讀介質(zhì)存儲如果被裝置的處理器運行則使該處理器執(zhí)行以下步驟的指令: 訪問第一密碼信息和第二密碼信息中至少一個密碼信息,所述第一密碼信息與對要從第一存儲器區(qū)域讀取和要向所述第一存儲器區(qū)域?qū)懭胫辽僦坏男畔⑦M行加密以及進行解密至少之一有關(guān),所述第二密碼信息與對要從第二存儲器區(qū)域讀取和要向所述第二存儲器區(qū)域?qū)懭胫辽僦坏男畔⑦M行加密以及進行解密至少之一有關(guān); 如果所述第一密碼信息和所述第二密碼信息中至少一個密碼信息包括加密信息的指令,則加密要向所述第一存儲器區(qū)域和所述第二存儲器區(qū)域中至少一個存儲器區(qū)域?qū)懭牒鸵獜乃龅谝淮鎯ζ鲄^(qū)域和所述第二存儲器區(qū)域中至少一個存儲器區(qū)域讀取至少之一的/[目息;以及 如果所述第一密碼信息和所述第二密碼信息中至少一個密碼信息包括解密信息的指令,則解密要向所述第一存儲器區(qū)域和所述第二存儲器區(qū)域中至少一個存儲器區(qū)域?qū)懭牒鸵獜乃龅谝淮鎯ζ鲄^(qū)域和所述第二存儲器區(qū)域中至少一個存儲器區(qū)域讀取至少之一的Ih息,其中 所述第一密碼信息和所述第二密碼信息的算法、模式和密鑰中至少之一是不同的。
15.如權(quán)利要求14所述的非瞬態(tài)計算機可讀存儲介質(zhì),進一步包括如果被所述處理器運行則引起所述處理器執(zhí)行以下步驟的指令:` 基于與所述第一密碼信息和所述第二密碼信息分離的訪問信息,控制對所述第一存儲器區(qū)域和所述第二存儲器區(qū)域的訪問,其中 將所述訪問控制為與信息的加密與解密中至少之一同時發(fā)生,并且 所述第一密碼信息獨立于所述第二密碼信息。
【文檔編號】G06F21/78GK103688269SQ201180072367
【公開日】2014年3月26日 申請日期:2011年12月22日 優(yōu)先權(quán)日:2011年7月18日
【發(fā)明者】泰德·哈德利 申請人:惠普發(fā)展公司,有限責(zé)任合伙企業(yè)