專利名稱:密碼密鑰的虛擬化的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及在虛擬計(jì)算環(huán)境中的處理,尤其是在該環(huán)境中提供安全性。
背景技術(shù):
在虛擬環(huán)境中提供安全性的一個(gè)方面是保護(hù)在密碼裝置所執(zhí)行的密碼操作中所使用的密碼密鑰(cryptographic key)。在一個(gè)例子中,這些密鑰通過(guò)加密來(lái)保護(hù)。例如, 密碼密鑰被主密鑰(master key)加密,提供加密的密碼密鑰。主密鑰被保持在密碼裝置的安全邊界內(nèi)。加密的密碼密鑰可以存儲(chǔ)在密碼裝置的安全邊界之外,然后用于密碼操作中。單個(gè)處理器系統(tǒng)具有與其相關(guān)聯(lián)的一組主密鑰。也就是說(shuō),單個(gè)處理器系統(tǒng)對(duì)于每種密碼密鑰具有一主密鑰。但是,在分區(qū)環(huán)境中,對(duì)每個(gè)區(qū)域或分區(qū)具有一組主密鑰。
發(fā)明內(nèi)容
雖然分區(qū)系統(tǒng)中的每個(gè)分區(qū)具有其自己的一組主密鑰,傳統(tǒng)上,這些密鑰被該分區(qū)中的所有虛擬系統(tǒng)共享。如此處所使用的,每個(gè)虛擬系統(tǒng)是在虛擬環(huán)境中運(yùn)行的計(jì)算系統(tǒng)。其包括例如在像Linux的客戶操作系統(tǒng)控制下的資源(例如一個(gè)或多個(gè)CPU,存儲(chǔ)器, I/O等)。這樣,術(shù)語(yǔ)“客戶(guest)”指代虛擬系統(tǒng)。為了提高安全性,希望每個(gè)客戶具有其自己的一組虛擬主密鑰。這樣,需要為每個(gè)運(yùn)行于分區(qū)中的客戶提供單獨(dú)虛擬密鑰的能力。另外,需要虛擬化除主密鑰之外的密鑰(例如其他密碼密鑰或其他密鑰)的能力。通過(guò)提供用于虛擬化密碼密鑰的計(jì)算機(jī)程序產(chǎn)品而克服了現(xiàn)有技術(shù)的缺點(diǎn)并提供了附加的優(yōu)勢(shì)。計(jì)算機(jī)程序產(chǎn)品包括可由處理電路讀取的存儲(chǔ)介質(zhì),該存儲(chǔ)介質(zhì)存儲(chǔ)由處理電路執(zhí)行來(lái)實(shí)現(xiàn)一方法的指令。該方法包括,例如,獲取密碼密鑰;和使用操作、密碼密鑰和掩碼產(chǎn)生虛擬密碼密鑰。關(guān)于本發(fā)明的一個(gè)或多個(gè)方面的方法和系統(tǒng)也在此描述并要求保護(hù)。另外,關(guān)于本發(fā)明的一個(gè)或多個(gè)方面的服務(wù)也在此描述并要求保護(hù)。附加的特征和優(yōu)點(diǎn)通過(guò)本發(fā)明的技術(shù)來(lái)實(shí)現(xiàn)。本發(fā)明的其他實(shí)施例和方面在此詳細(xì)描述并被認(rèn)為是所要求保護(hù)的發(fā)明的一部分。
在說(shuō)明書(shū)結(jié)尾部分的權(quán)利要求中,本發(fā)明的一個(gè)或多個(gè)方面作為例子被特別指出并清楚地被要求保護(hù)。本發(fā)明的上述及其他目的、特征和優(yōu)點(diǎn)從以下詳細(xì)描述結(jié)合附圖來(lái)看是顯然的,其中圖1示出包含并使用本發(fā)明一個(gè)或多個(gè)方面的計(jì)算環(huán)境的一個(gè)例子;圖2示出了客戶的控制模塊的一個(gè)例子,包括根據(jù)本發(fā)明一方面使用的一個(gè)或多個(gè)客戶主密鑰掩碼;圖3示出了根據(jù)本發(fā)明一方面的提供虛擬密鑰的邏輯的一個(gè)實(shí)施例;
3
圖4示出了根據(jù)本發(fā)明一方面,使用在虛擬密鑰下加密的加密密鑰的邏輯的一個(gè)實(shí)施例;并且圖5示出了包括本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)程序產(chǎn)品的一個(gè)實(shí)施例。
具體實(shí)施例方式根據(jù)本發(fā)明的一方面,提供虛擬化密碼密鑰的能力。在一個(gè)特別示例中,用來(lái)保護(hù)其他密碼密鑰的主密鑰被虛擬化,使得計(jì)算環(huán)境的分區(qū)的每個(gè)客戶可以擁有其自己的一組主密鑰。這組主密鑰對(duì)于每種要保護(hù)的密碼密鑰(例如AES或DEA)包括一密鑰,因此,該組主密鑰可以包括一個(gè)或多個(gè)主密鑰。參考圖1來(lái)描述包含并使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的一個(gè)實(shí)施例。 計(jì)算環(huán)境100包括例如劃分到一個(gè)或多個(gè)分區(qū)或區(qū)域104(例如,邏輯分區(qū)1-N)的中央處理器復(fù)合體(CPC) 102,至少一個(gè)主機(jī)106(例如,控制程序,例如管理程序),一個(gè)或多個(gè)中央處理器108,以及輸入/輸出子系統(tǒng)110。每個(gè)邏輯分區(qū)104可以作為單獨(dú)的系統(tǒng)來(lái)運(yùn)行。也就是說(shuō),每個(gè)邏輯分區(qū)可以獨(dú)立地重置,如果有需要,可以初始加載操作系統(tǒng),并操作不同的程序。在邏輯分區(qū)中運(yùn)行的操作系統(tǒng)或應(yīng)用程序看起來(lái)能訪問(wèn)整個(gè)完整的系統(tǒng),但是實(shí)際上只是其一部分可用。中央處理器108是可分配給邏輯分區(qū)的物理處理器資源。例如,每個(gè)邏輯分區(qū)104 包括一個(gè)或多個(gè)邏輯處理器,其每個(gè)表示可動(dòng)態(tài)分配到分區(qū)的所有或一部分物理處理器資源。尤其是,物理資源由主機(jī)106擁有,并且共享的物理資源由主機(jī)分派給在由主機(jī)106管理的分區(qū)中運(yùn)行的一個(gè)或多個(gè)客戶112。例如,主機(jī)可以在運(yùn)行于處理器108上的微碼中實(shí)施或者是執(zhí)行于機(jī)器上的主機(jī)操作系統(tǒng)的一部分。在每個(gè)邏輯分區(qū)中,一個(gè)或多個(gè)客戶(甚至幾十萬(wàn))可以運(yùn)行,并且每個(gè)客戶能夠運(yùn)行于特定的虛擬化等級(jí)上。例如,如果一個(gè)客戶運(yùn)行于主機(jī)上(例如LPAR)而非另一客戶上,則認(rèn)為其運(yùn)行在第一虛擬化等級(jí)。但是,如果客戶操作系統(tǒng)(例如Linux)運(yùn)行在一個(gè)其他客戶操作系統(tǒng)上(例如由國(guó)際商業(yè)機(jī)器公司提供的Z/VM 。z/VM 是紐約阿蒙克市的國(guó)際商業(yè)機(jī)器公司的注冊(cè)商標(biāo)。此處所用的其他名稱可以是國(guó)際商業(yè)機(jī)器公司或其他公司的注冊(cè)商標(biāo)、商標(biāo)或產(chǎn)品名稱。)(參見(jiàn)例如圖1的邏輯分區(qū)2),則其運(yùn)行在第二虛擬化等級(jí)上??蛻艨梢员环謱?,層數(shù)決定了虛擬化等級(jí)(參見(jiàn)例如圖1的邏輯分區(qū))。為了提供計(jì)算環(huán)境中的安全性,在密碼操作中使用的密碼密鑰使用主密鑰而被加密。計(jì)算環(huán)境的每個(gè)邏輯分區(qū)具有其自己的一組主密鑰(也就是對(duì)每種要保護(hù)的密碼密鑰一個(gè)主密鑰)。在一個(gè)例子中,每個(gè)主密鑰使用偽隨機(jī)產(chǎn)生器隨機(jī)產(chǎn)生,并存儲(chǔ)在硬件系統(tǒng)區(qū)域(HSA)的安全部分中。根據(jù)本發(fā)明的一方面,邏輯分區(qū)的每個(gè)客戶被提供有其自己的虛擬主密鑰。這是通過(guò)為該邏輯分區(qū)取得主密鑰并為每個(gè)客戶將其虛擬化而實(shí)現(xiàn)的,如此處所詳述的。 在一個(gè)實(shí)施例中,為了虛擬化例如主密鑰的密碼密鑰,使用掩碼。每個(gè)客戶具有其自己的掩碼,并且如圖2所示的,該掩碼存儲(chǔ)在控制塊200中??刂茐K可以包括用于客戶的一個(gè)或多個(gè)掩碼。在此處描述的實(shí)施例中,被虛擬化的密鑰是主密鑰,并且因此對(duì)于可用于客戶的每種主密鑰具有一個(gè)掩碼。如果僅有一種類型的主密鑰,那么就僅有一個(gè)主密鑰掩碼。在一個(gè)例子中,掩碼是一個(gè)唯一數(shù)值,例如起始于初始點(diǎn)并隨著每次使用數(shù)字而加一的
4序列數(shù)值。在另一個(gè)例子中,數(shù)值不需要是唯一的,而能夠例如是強(qiáng)隨機(jī)數(shù)值,其中重復(fù)的幾率很小。其他可能也存在。客戶的掩碼例如由客戶運(yùn)行在其下的操作系統(tǒng)來(lái)分配。例如,處于第二虛擬化等級(jí)的客戶的掩碼由處于第一虛擬化等級(jí)的客戶,例如Z/VM 操作系統(tǒng)分配??蛻舻难诖a被創(chuàng)建該掩碼的操作系統(tǒng)置于客戶的控制塊中。掩碼對(duì)于客戶是不可訪問(wèn)的,并且在客戶的使用期限期間(也就是直到客戶為IPLed)保留。在一個(gè)例子中,為了提供虛擬主密鑰,使用主密鑰及一個(gè)或多個(gè)掩碼來(lái)執(zhí)行布爾操作,例如異或(或其他操作)。用來(lái)創(chuàng)建虛擬主密鑰的掩碼數(shù)量取決于客戶的虛擬化等級(jí)。例如,如果客戶處于第一虛擬化等級(jí),使用一個(gè)掩碼;處于第二虛擬化等級(jí),使用兩個(gè)掩碼(除了由布爾操作所產(chǎn)生的可能的中間掩碼),等等。參考圖3進(jìn)一步詳述該處理。參考圖3,詳細(xì)描述了用來(lái)提供虛擬密碼密鑰(例如虛擬主密鑰)的邏輯的一個(gè)實(shí)施例。在一個(gè)例子中,該邏輯由計(jì)算環(huán)境的處理器執(zhí)行,并且尤其是在其中執(zhí)行的微代碼。 另外,該示例涉及虛擬化主密鑰;但是,在其他實(shí)施例中,除了主密鑰之外的密鑰,例如其他密碼密鑰,可以使用同樣的過(guò)程來(lái)虛擬化。在一個(gè)例子中,由微代碼產(chǎn)生主密鑰。初始地,為了產(chǎn)生虛擬主密鑰,在步驟300,確定為其產(chǎn)生密鑰的客戶的等級(jí)。該信息對(duì)于運(yùn)行于中央處理器上的微代碼是已知的。如果在詢問(wèn)302中客戶的虛擬化等級(jí)為一,則在步驟304中,與該客戶相關(guān)聯(lián)的掩碼與適當(dāng)?shù)闹髅荑€進(jìn)行異或,以向客戶提供虛擬主密鑰。具體地,存儲(chǔ)于該客戶的控制塊(或其他地方)的掩碼被獲取,并且對(duì)掩碼與分配給客戶在其中執(zhí)行的分區(qū)的主密鑰執(zhí)行XOR操作。XOR的結(jié)果是虛擬主密鑰,其可以用于加密/解密密碼密鑰。另外,根據(jù)本發(fā)明的一方面,還產(chǎn)生虛擬驗(yàn)證模式,其在確定虛擬主密鑰是否仍有效的處理中使用。也就是說(shuō),由偽隨機(jī)數(shù)產(chǎn)生器產(chǎn)生的驗(yàn)證模式與每個(gè)主密鑰相關(guān)聯(lián)。驗(yàn)證模式用于檢測(cè)主密鑰的變化。如果產(chǎn)生一新的主密鑰,則也產(chǎn)生一新的模式。在一個(gè)例子中,為了產(chǎn)生虛擬驗(yàn)證模式,在步驟306,產(chǎn)生虛擬主密鑰所使用的相同的掩碼與提供給主密鑰的驗(yàn)證模式進(jìn)行異或。該操作的結(jié)果是為客戶提供虛擬驗(yàn)證模式。盡管在該例子中,用于驗(yàn)證模式的掩碼與用于虛擬主密鑰的掩碼相同,在另一實(shí)施例中,掩碼可以不同?;氐皆儐?wèn)302,如果要為其產(chǎn)生虛擬主密鑰的客戶的等級(jí)大于1,則使用取決于客戶等級(jí)的一定數(shù)目的掩碼來(lái)執(zhí)行一個(gè)或多個(gè)異或操作。例如,在步驟308中,獲取與該客戶相關(guān)聯(lián)的掩碼,并且與下一最低等級(jí)的客戶的掩碼進(jìn)行異或,以提供結(jié)果掩碼。例如,如果要為其產(chǎn)生虛擬主密鑰的客戶是第二等級(jí)的客戶,則該客戶的掩碼與第一等級(jí)客戶的掩碼進(jìn)行M)R,以提供結(jié)果掩碼。類似地,在步驟310,為驗(yàn)證模式而分配給客戶的掩碼與分配給下一最低等級(jí)的客戶的驗(yàn)證模式掩碼進(jìn)行異或,以提供用于產(chǎn)生虛擬驗(yàn)證模式的結(jié)果掩碼。如果步驟308和 310中的掩碼相同,該步驟可以跳過(guò)。如果在詢問(wèn)312中,沒(méi)有為其產(chǎn)生虛擬密鑰的客戶的更多虛擬化等級(jí),則在步驟 304中,被獲取用于產(chǎn)生虛擬主密鑰的結(jié)果掩碼與該客戶在其中執(zhí)行的分區(qū)的主密鑰進(jìn)行 M)R,以向該客戶提供虛擬主密鑰。類似地,在步驟306,被獲得用于產(chǎn)生虛擬驗(yàn)證模式的結(jié)果掩碼與分區(qū)的驗(yàn)證模式進(jìn)行M)R,以提供虛擬驗(yàn)證模式。
回到詢問(wèn)312,但是如果有更多的虛擬化等級(jí),則在步驟308重復(fù)以下處理來(lái)自先前處理的步驟308的結(jié)果掩碼與在下一最低等級(jí)的掩碼進(jìn)行異或,并且如果有必要或需要,在步驟310,來(lái)自先前處理的步驟310的結(jié)果掩碼與用于驗(yàn)證模式的下一最低等級(jí)的掩碼進(jìn)行異或。然后如上所述繼續(xù)處理。在一個(gè)例子中,使用虛擬主密鑰來(lái)加密一密碼密鑰以提供一加密的密碼密鑰。為了用主密鑰加密,使用編碼操作(encipher operation)。例如,通過(guò)調(diào)用現(xiàn)有密碼助理 (也叫做消息安全助理)加密函數(shù)來(lái)完成該加密,該加密函數(shù)使用透明(clear)數(shù)據(jù)加密密鑰來(lái)加密數(shù)據(jù)。微代碼通過(guò)將用戶透明密鑰指定為數(shù)據(jù)并將主密鑰指定為透明數(shù)據(jù)加密密鑰來(lái)調(diào)用該函數(shù)。現(xiàn)有函數(shù)獲取這些輸入,并輸出加密密鑰。任何加密函數(shù)都足夠。在一個(gè)示例中,使用由紐約阿蒙克市的國(guó)際商業(yè)機(jī)器公司提出的Z/Arehiteeture 所提供的加密函數(shù)。該函數(shù)的一個(gè)實(shí)施例在2009年2月IBM出版的No. SA22-7832-07的 “z/Architecture Principles of operation”中描述,此處其整體通過(guò)引用而被包含。在處理中可以使用結(jié)果加密密鑰和虛擬驗(yàn)證模式。在一個(gè)示例中,在密碼函數(shù)的處理過(guò)程中使用加密密鑰和虛擬模式。該處理的一個(gè)實(shí)施例參考圖4來(lái)描述。在一個(gè)示例中,處理器(例如,在CPU上運(yùn)行的微代碼)執(zhí)行該邏輯。初始地,在步驟400,在邏輯分區(qū)中運(yùn)行的客戶發(fā)出對(duì)密碼操作的請(qǐng)求,并且提供用其自己的虛擬主密鑰加密的密碼密鑰和虛擬驗(yàn)證模式。然后在步驟402,所提供的驗(yàn)證模式與在密碼操作期間由微代碼使用以上描述的相同過(guò)程而為客戶產(chǎn)生的虛擬模式相比較。在一個(gè)示例中,響應(yīng)于產(chǎn)生模式,該模式被存儲(chǔ)在存儲(chǔ)器的安全部分中,例如硬件系統(tǒng)區(qū)的安全部分,并被用于比較。如果在詢問(wèn)404中,比較得到不匹配,則步驟406提供一錯(cuò)誤。如果指出錯(cuò)誤,則這指示用于加密密碼密鑰的虛擬主密鑰發(fā)生了變化,并且如上所述要使用新的虛擬主密鑰?;氐皆儐?wèn)404,如果虛擬模式匹配,則在步驟408,在例如解密或加密的密碼函數(shù)中可以使用客戶的加密密鑰。這結(jié)束了處理。關(guān)于使用主密鑰的進(jìn)一步細(xì)節(jié)在2009年8月31日提交的US序列號(hào)為 12/550, 667(案件號(hào) P0U920090070US1),名稱為"Conversion of Cryptographic Key ftOtection”的申請(qǐng)中記載,其作為參考在此處整體合并進(jìn)來(lái)。以上詳細(xì)描述的是用于將分配給特定的分區(qū)或區(qū)域的主密鑰虛擬化,使得每個(gè)在該區(qū)域中運(yùn)行的客戶可以具有其自己的虛擬主密鑰。該虛擬主密鑰在需要時(shí)產(chǎn)生。一旦產(chǎn)生,它將被使用直到其重新產(chǎn)生(例如,由于IPL等)。雖然此處描述的實(shí)施例中產(chǎn)生虛擬主密鑰,其他密鑰(包括其他密碼密鑰)也可以以相同的方式被虛擬化。在上述實(shí)施例中,每個(gè)虛擬系統(tǒng)具有一掩碼。虛擬系統(tǒng)可以由多個(gè)虛擬中央處理器(或被稱為客戶中央處理器)構(gòu)成。在另一實(shí)施例中,一掩碼可以分配給每個(gè)客戶中央處理器,并且相同虛擬系統(tǒng)中的客戶中央處理器的所有掩碼具有相同的值。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明的方面可以實(shí)施為系統(tǒng),方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的方面可采用完全硬件實(shí)施例,完全軟件實(shí)施例(包括固件,駐留軟件,微碼等)或結(jié)合軟件和硬件方面(此處都被一般性稱為“電路”,“模塊”或“系統(tǒng)”)的實(shí)施例的形式。另外,本發(fā)明的方面可采用包含在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)
6品的形式,其上包含計(jì)算機(jī)可讀程序代碼。可以使用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任何組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是例如,但不限于電子、磁、光或半導(dǎo)體系統(tǒng)、 裝置或設(shè)備或前述的任何適當(dāng)組合。更多計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的具體示例(非窮舉列表) 包括如下具有一個(gè)或多個(gè)電線的電連接,便攜計(jì)算機(jī)盤(pán),硬盤(pán)、隨機(jī)訪問(wèn)存儲(chǔ)器(RAM),只讀存儲(chǔ)器(ROM),可擦除可編程只讀存儲(chǔ)器(EPR0M或閃存),光纖,便攜光盤(pán)只讀存儲(chǔ)器 (CD-ROM),光存儲(chǔ)設(shè)備,磁存儲(chǔ)設(shè)備,或先前所述的任何適當(dāng)組合。在本文檔的上下文中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何有形介質(zhì),其可包含或存儲(chǔ)可以與指令執(zhí)行系統(tǒng)、裝置或設(shè)備相連接或供其使用的程序?,F(xiàn)參考圖5,在一個(gè)例子中,計(jì)算機(jī)程序產(chǎn)品500包括,例如一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)502,其上存儲(chǔ)有計(jì)算機(jī)可讀程序代碼裝置或邏輯504,以提供并實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)方面??梢允褂眠m當(dāng)?shù)慕橘|(zhì)來(lái)傳送位于計(jì)算機(jī)可讀介質(zhì)上的程序代碼,包括但不限于無(wú)線,有線,光纖電纜,RF等或前述的任何適當(dāng)?shù)慕M合。用于執(zhí)行本發(fā)明各方面操作的計(jì)算機(jī)程序代碼可以以一個(gè)或多個(gè)編程語(yǔ)言的任何組合寫(xiě)成,包括面向?qū)ο蟮木幊陶Z(yǔ)言,例如Java,Smalltalk, C++或類似的,以及常規(guī)過(guò)程編程語(yǔ)言,例如“C”編程語(yǔ)言或類似的編程語(yǔ)言。程序代碼可完全在用戶計(jì)算機(jī)上執(zhí)行、 部分地在用戶計(jì)算機(jī)上執(zhí)行、作為獨(dú)立的軟件包執(zhí)行、部分地在用戶計(jì)算機(jī)上并部分在遠(yuǎn)端計(jì)算機(jī)上執(zhí)行、或完全在遠(yuǎn)端計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后面的方案中,遠(yuǎn)端計(jì)算機(jī)可通過(guò)任何類型的網(wǎng)絡(luò)連接到用戶計(jì)算機(jī),包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),或連通外部計(jì)算機(jī)連接(例如使用互聯(lián)網(wǎng)服務(wù)提供商通過(guò)互聯(lián)網(wǎng))。在此,本發(fā)明各方面的描述參考根據(jù)本發(fā)明實(shí)施例的方法,裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖說(shuō)明和/或框圖??衫斫獾?,流程圖和/或框圖的每個(gè)塊,以及在流程圖和/或框圖中的塊的組合可由計(jì)算機(jī)程序指令完成。這些計(jì)算機(jī)程序指令可提供給通用計(jì)算機(jī)的處理器、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理設(shè)備,以產(chǎn)生一機(jī)器,使得通過(guò)計(jì)算機(jī)的處理器或其他可編程數(shù)據(jù)處理裝置來(lái)執(zhí)行的指令產(chǎn)生完成在流程圖和/或框圖塊中描述的功能/動(dòng)作的方法。這些計(jì)算程序指令還可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,其可指引計(jì)算機(jī),其它可編程數(shù)據(jù)處理裝置,或其它設(shè)備以特定方式運(yùn)行,使得存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生一制造品,包括完成在流程圖和/或框圖塊中描述的功能/動(dòng)作的指令。計(jì)算機(jī)程序指令還可裝載在計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上以產(chǎn)生一系列在計(jì)算機(jī)、其他可編程裝置或其他設(shè)備上完成的操作性步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖塊中描述的功能/動(dòng)作的處理。附圖中的流程圖和框圖描述了根據(jù)本發(fā)明不同實(shí)施例的系統(tǒng)、方法、和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖的每個(gè)塊可代表代碼的模塊,段或部分,其包括一個(gè)或多個(gè)可執(zhí)行的指令以實(shí)現(xiàn)特定邏輯功能。應(yīng)當(dāng)注意到,在一些可選的實(shí)現(xiàn)中,塊中標(biāo)注的功能可以不按圖中所標(biāo)注的順序產(chǎn)生。例如,連續(xù)示出的兩個(gè)塊事實(shí)上可實(shí)質(zhì)上同時(shí)執(zhí)行,或者這些塊有時(shí)可以按相反的順序執(zhí)行,這取決于相關(guān)的功能。還應(yīng)當(dāng)注意到,框圖和/或流程圖說(shuō)明中的每個(gè)塊,以及框圖和/或流程圖說(shuō)明中塊的組合可由執(zhí)行特定功能或動(dòng)作的專用的基于硬件的系統(tǒng)或?qū)S糜布陀?jì)算機(jī)指令的組合實(shí)現(xiàn)。除上述之外,可由提供客戶環(huán)境管理的服務(wù)提供商提供、提出、開(kāi)發(fā)、管理、維護(hù)本發(fā)明的一個(gè)或多個(gè)方面。例如,服務(wù)提供商可創(chuàng)建,維護(hù),支持計(jì)算機(jī)代碼和/或計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)等,以為一個(gè)或多個(gè)客戶實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)方面。作為回報(bào),例如在訂購(gòu)和/ 或約定的情況下,服務(wù)提供商可從客戶收取費(fèi)用。另外或可選地,服務(wù)提供商可從對(duì)一個(gè)或多個(gè)第三方的廣告內(nèi)容的銷售收取費(fèi)用。在本發(fā)明的一個(gè)方面中,可以部署應(yīng)用程序以執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。作為一個(gè)例子,部署一應(yīng)用程序包括提供可操作的計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)以實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)方面。作為本發(fā)明的另一方面,部署計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)包括整合計(jì)算機(jī)可讀代碼到計(jì)算系統(tǒng)中,其中與計(jì)算系統(tǒng)結(jié)合的代碼可以執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。作為本發(fā)明的另一方面,提供整合計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)的過(guò)程,包括整合計(jì)算機(jī)可讀代碼到計(jì)算機(jī)系統(tǒng)中。計(jì)算機(jī)系統(tǒng)包括計(jì)算機(jī)可讀介質(zhì),其中計(jì)算機(jī)介質(zhì)包括本發(fā)明的一個(gè)或多個(gè)方面。與計(jì)算機(jī)系統(tǒng)結(jié)合的代碼能執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。雖然以上描述了多個(gè)實(shí)施例,但是它們僅是例子。例如,不同于那些以上描述的其它計(jì)算環(huán)境可以包含和使用本發(fā)明的一個(gè)或多個(gè)方面。例如,可以使用非Linux或^]^ 的操作系統(tǒng)。另外,雖然此處描述的是邏輯分區(qū),本發(fā)明的一個(gè)或多個(gè)方面適合其他類型的分區(qū)或區(qū)域。還可以有更多或更少的分區(qū)或區(qū)域,并且每個(gè)分區(qū)可以執(zhí)行0或更多客戶。可以執(zhí)行若干客戶類型,包括不同的操作系統(tǒng)。另外,除主密鑰之外的密鑰可以被虛擬化。還有,虛擬驗(yàn)證模式是可選的。存在多種其它變形。另外,其它類型的計(jì)算環(huán)境得益于本發(fā)明的一個(gè)或多個(gè)方面。作為一個(gè)例子,環(huán)境可包括仿真器(例如軟件或其它仿真機(jī)制),其中仿真一特別的體系結(jié)構(gòu)(例如包括指令執(zhí)行,例如像地址轉(zhuǎn)換的體系功能和體系寄存器)或其子集(例如,在具有處理器和存儲(chǔ)器的本地計(jì)算系統(tǒng)上)。在這樣的環(huán)境中,仿真器的一個(gè)或多個(gè)仿真函數(shù)可以執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面,雖然執(zhí)行仿真器的計(jì)算機(jī)具有不同于被仿真的能力的體系結(jié)構(gòu)。作為一個(gè)例子,在仿真模式中,被仿真的特殊指令或操作被解碼,并且建立適當(dāng)?shù)姆抡婧瘮?shù)以完成單個(gè)的指令或操作。在仿真環(huán)境中,主計(jì)算機(jī)包括例如存儲(chǔ)器來(lái)存儲(chǔ)指令和數(shù)據(jù);指令提取單元用于從存儲(chǔ)器提取指令并任選地提供本地緩存給所提取的指令;指令解碼單元用于接收所提取的指令并且決定所提取指令的類型;以及指令執(zhí)行單元用于執(zhí)行指令。執(zhí)行可以包括將數(shù)據(jù)從存儲(chǔ)器裝載到寄存器中;將數(shù)據(jù)從寄存器存儲(chǔ)回存儲(chǔ)器;或由解碼單元決定,完成某種類型的算術(shù)或邏輯操作。在一個(gè)例子中,每個(gè)單元以軟件實(shí)現(xiàn)。例如,被單元執(zhí)行的操作作為仿真軟件中一個(gè)或多個(gè)子例程完成。另外,可使用適于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng),其包括至少一個(gè)通過(guò)系統(tǒng)總線直接或間接連接到存儲(chǔ)器元件的處理器。存儲(chǔ)器元件包括例如,在程序代碼實(shí)際執(zhí)行期間采用的本地存儲(chǔ)器,大容量存儲(chǔ)器,以及為了減少執(zhí)行期間代碼必須從大容量存儲(chǔ)器取出的次數(shù)而提供暫時(shí)存儲(chǔ)至少一些程序代碼的緩存存儲(chǔ)器。輸入/輸出或I/O設(shè)備(包括,但不限于鍵盤(pán)、顯示器、指向設(shè)備、DASD、磁帶、⑶、DVD、拇指驅(qū)動(dòng)器和其他存儲(chǔ)介質(zhì)等)可以與系統(tǒng)直接或通過(guò)中介I/O控制器連接。網(wǎng)絡(luò)適配器還可以連接到系統(tǒng)以使得數(shù)據(jù)處理系統(tǒng)通過(guò)中介私有或公共網(wǎng)絡(luò),連接到其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)端打印機(jī)或存儲(chǔ)器設(shè)備。調(diào)制解調(diào)器,電纜調(diào)制解調(diào)器和以太網(wǎng)卡僅是少數(shù)幾種類型的網(wǎng)絡(luò)適配器。此處所用的術(shù)語(yǔ)是僅是為了描述特定實(shí)施例的目的而不是為了限制本發(fā)明。如此處所用的,單數(shù)形式“一個(gè)”,“一”和“該”還旨在包括復(fù)數(shù)形式,除非上下文另外明確指明。還應(yīng)當(dāng)理解,術(shù)語(yǔ)“包括”和/或“包含”用在本說(shuō)明書(shū)中,表示所聲明特征、整數(shù)、步驟、 操作、元件和/或組件的存在,但并不排除存在或增加一個(gè)或多個(gè)其它特征、整數(shù)、步驟、操作、元件和/或它們的組。在以下權(quán)利要求中出現(xiàn)的所有裝置或步驟加功能元素的相應(yīng)結(jié)構(gòu)、材料、動(dòng)作和等同物,意指包括與特別要求保護(hù)的其他要求保護(hù)的元素相結(jié)合來(lái)執(zhí)行功能的任何結(jié)構(gòu)、 材料或動(dòng)作。本發(fā)明的描述為了說(shuō)明和描述的目的,而不為了窮舉或以所公開(kāi)的形式限制本發(fā)明。很多改進(jìn)和變形對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)是顯然的,而不背離本發(fā)明的范圍和精神。實(shí)施例的選擇和描述是為了最好地解釋本發(fā)明和實(shí)際應(yīng)用的原理,并且為了使得本領(lǐng)域其他技術(shù)人員能夠理解本發(fā)明具有不同改進(jìn)的不同實(shí)施例也適于預(yù)期的特殊應(yīng)用。
權(quán)利要求
1.一種用于虛擬化密碼密鑰的方法,包括 獲取密碼密鑰;以及使用操作、密碼密鑰和掩碼產(chǎn)生虛擬密碼密鑰。
2.根據(jù)權(quán)利要求1的方法,其中所述操作包括異或操作,并且其中所述產(chǎn)生包括執(zhí)行密碼密鑰和掩碼之間的異或操作以提供該虛擬密碼密鑰。
3.根據(jù)權(quán)利要求2的方法,其中在異或操作中使用的掩碼取決于為其產(chǎn)生虛擬密碼密鑰的客戶的虛擬化等級(jí)。
4.根據(jù)權(quán)利要求3的方法,其中響應(yīng)于客戶的第一虛擬化等級(jí),掩碼包括為該客戶產(chǎn)生的掩碼。
5.根據(jù)權(quán)利要求3的方法,其中響應(yīng)于虛擬化等級(jí)大于1,掩碼是通過(guò)對(duì)一定數(shù)目的掩碼執(zhí)行一個(gè)或多個(gè)異或操作而獲取的結(jié)果掩碼,其中所述數(shù)目取決于虛擬化等級(jí)。
6.根據(jù)權(quán)利要求1的方法,其中虛擬密碼密鑰是虛擬主密鑰,并且該方法還包括創(chuàng)建可用來(lái)證實(shí)虛擬主密鑰的虛擬驗(yàn)證模式。
7.根據(jù)權(quán)利要求6的方法,其中所述創(chuàng)建包括使用另一操作、驗(yàn)證模式和另一掩碼來(lái)創(chuàng)建虛擬驗(yàn)證模式。
8.根據(jù)權(quán)利要求7的方法,其中所述另一操作包括異或操作,而所述另一掩碼與所述掩碼相同。
9.根據(jù)權(quán)利要求7的方法,其中所述另一操作和所述另一掩碼中的至少一個(gè)分別不同于所述操作和所述掩碼。
10.根據(jù)權(quán)利要求1的方法,其中所述掩碼是唯一數(shù)值,其在客戶使用虛擬密碼密鑰的期限期間是唯一的。
11.一種包括適合于執(zhí)行根據(jù)前述任何方法權(quán)利要求的方法的所有步驟的系統(tǒng)。
12.—種計(jì)算機(jī)程序,包括執(zhí)行根據(jù)前述任何方法權(quán)利要求的方法的所有步驟的指令, 所述計(jì)算機(jī)程序在計(jì)算機(jī)系統(tǒng)上執(zhí)行。
全文摘要
虛擬化密碼密鑰以提供一虛擬密碼密鑰。為了虛擬化密鑰,對(duì)密鑰和掩碼使用例如異或操作的操作。虛擬密鑰可被虛擬環(huán)境的客戶用在密碼操作中。
文檔編號(hào)G06F9/445GK102483699SQ201080038488
公開(kāi)日2012年5月30日 申請(qǐng)日期2010年8月24日 優(yōu)先權(quán)日2009年8月31日
發(fā)明者P·葉其中 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司