保護(hù)加密系統(tǒng)中的控制向量的制作方法
【專利摘要】一種用于保護(hù)加密系統(tǒng)中的控制向量的方法,包括:驗(yàn)證傳遞到參數(shù)數(shù)據(jù)庫的參數(shù);計(jì)算控制向量CV數(shù)據(jù)所需的長度;根據(jù)所述計(jì)算的結(jié)果準(zhǔn)備可選塊;將所述CV轉(zhuǎn)換為用于標(biāo)準(zhǔn)化密鑰塊的格式,同時(shí)將所轉(zhuǎn)換的CV復(fù)制到所述可選塊中;以及更新所述標(biāo)準(zhǔn)化密鑰塊中的可選塊數(shù)據(jù)。
【專利說明】保護(hù)加密系統(tǒng)中的控制向量
【背景技術(shù)】
[0001]本發(fā)明涉及數(shù)據(jù)處理,更具體地說,涉及加密方法和結(jié)構(gòu)。
[0002]安全軟件供應(yīng)商具有專用的密鑰管理數(shù)據(jù)結(jié)構(gòu)和控制機(jī)制,以便幫助實(shí)施客戶密鑰管理策略。這些數(shù)據(jù)結(jié)構(gòu)稱為密鑰令牌或密鑰塊。最近,隨著對(duì)增加安全性的需要的增長,不同實(shí)體開始使用來自不同供應(yīng)商的多種密鑰管理數(shù)據(jù)結(jié)構(gòu)。這導(dǎo)致需要不同供應(yīng)商的此類多種密鑰管理數(shù)據(jù)結(jié)構(gòu)系統(tǒng)之間的接口。
[0003]因此,通過美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI) X9工作組開發(fā)一種技術(shù)報(bào)告(TR),以便創(chuàng)建一種用于在相關(guān)方之間進(jìn)行密鑰交換的格式。該格式稱為TR-31,并且指定標(biāo)準(zhǔn)化密鑰塊的布局包括用于密鑰類型、算法和控制的數(shù)個(gè)數(shù)據(jù)字段以及包裝機(jī)制,這些包裝機(jī)制使用另一個(gè)密鑰將密鑰包裝為放置在密鑰塊之后的有效負(fù)載中的不透明數(shù)據(jù)塊。包裝機(jī)制指定一種方法,該方法以加密方式將密鑰控制信息綁定到密鑰塊中作為包裝機(jī)制的一部分。具體地說,TR-31密鑰塊定義用于密鑰使用、密鑰管理和包裝信息的屬性字段以及數(shù)個(gè)用于其它用途的其它字段。但是,TR-31密鑰塊未指定用于將專用密鑰數(shù)據(jù)結(jié)構(gòu)映射到TR-31密鑰塊的方法。
[0004]例如,給定啟用加密的計(jì)算系統(tǒng)可以包括實(shí)現(xiàn)公共加密體系結(jié)構(gòu)(CCA)的硬件安全模塊(HSM),CCA指定密鑰控制信息的字節(jié)數(shù)組(S卩,控制向量(CV)),CV在密鑰令牌中以加密方式綁定到加密密鑰。在這種情況下,CV控制HSM安全邊界內(nèi)部的密鑰控制信息,并且涉及密鑰使用和密鑰管理,其中數(shù)據(jù)表示密鑰類型、密鑰子類型、密鑰管理策略和密鑰使用策略。密鑰類型是可以使用密鑰實(shí)現(xiàn)的廣泛能力,例如對(duì)數(shù)據(jù)進(jìn)行加密和/或解密,對(duì)密鑰進(jìn)行包裝或解包,計(jì)算或檢驗(yàn)消息驗(yàn)證代碼,用于各種金融活動(dòng),例如對(duì)PIN信息進(jìn)行加密或解密,以及生成或檢驗(yàn)PIN信息。密鑰子類型是在密鑰類型支持的操作中針對(duì)密鑰能力的限制,例如將密鑰限于僅用于對(duì)數(shù)據(jù)進(jìn)行加密或者對(duì)數(shù)據(jù)進(jìn)行解密,但不用于這兩者。密鑰管理策略控制可如何分發(fā)(或者不分發(fā))密鑰,例如是否可以將密鑰導(dǎo)出到另一個(gè)系統(tǒng),并且如果可以,其是否可以在被包裝在TR-31密鑰塊中時(shí)導(dǎo)出。密鑰使用策略控制可如何在類型和子類型施加的這些限制之外使用密鑰,這些限制例如包括針對(duì)可以處理的數(shù)據(jù)類型的限制(對(duì)于將成為加密/解密密鑰的密鑰),或者針對(duì)可以與密鑰一起包裝的密鑰類型的限制(對(duì)于將用于對(duì)其它密鑰進(jìn)行包裝/解包的密鑰)。如上所述,未指定用于將此類CCACV數(shù)據(jù)轉(zhuǎn)換為適用于TR-31密鑰塊的表示的方法。
【發(fā)明內(nèi)容】
[0005]根據(jù)本發(fā)明的一個(gè)方面,提供一種計(jì)算機(jī)程序產(chǎn)品,并且所述計(jì)算機(jī)程序產(chǎn)品包括有形存儲(chǔ)介質(zhì),所述有形存儲(chǔ)介質(zhì)可由處理電路讀取并且其上存儲(chǔ)指令以便由所述處理電路執(zhí)行以執(zhí)行一種方法。所述方法包括:驗(yàn)證傳遞到參數(shù)數(shù)據(jù)庫的參數(shù);計(jì)算控制向量(CV)數(shù)據(jù)所需的長度;根據(jù)所述計(jì)算的結(jié)果準(zhǔn)備可選塊;將所述CV轉(zhuǎn)換為用于標(biāo)準(zhǔn)化密鑰塊的格式,同時(shí)將所轉(zhuǎn)換的CV復(fù)制到所述可選塊中;以及更新所述標(biāo)準(zhǔn)化密鑰塊中的可選塊數(shù)據(jù)。[0006]根據(jù)本發(fā)明的另一個(gè)方面,提供一種方法。所述方法包括:驗(yàn)證傳遞到參數(shù)數(shù)據(jù)庫的參數(shù);計(jì)算控制向量(CV)數(shù)據(jù)所需的長度;根據(jù)所述計(jì)算的結(jié)果準(zhǔn)備可選塊;將所述CV轉(zhuǎn)換為用于標(biāo)準(zhǔn)化密鑰塊的格式,同時(shí)將所轉(zhuǎn)換的CV復(fù)制到所述可選塊中;以及更新所述標(biāo)準(zhǔn)化密鑰塊中的可選塊數(shù)據(jù)。
[0007]根據(jù)本發(fā)明的另一個(gè)方面,提供一種系統(tǒng)。所述系統(tǒng)包括被配置為執(zhí)行一種方法的處理電路。所述方法包括:驗(yàn)證傳遞到參數(shù)數(shù)據(jù)庫的參數(shù);計(jì)算控制向量(CV)數(shù)據(jù)所需的長度;根據(jù)所述計(jì)算的結(jié)果準(zhǔn)備可選塊;將所述CV轉(zhuǎn)換為用于標(biāo)準(zhǔn)化密鑰塊的格式,同時(shí)將所轉(zhuǎn)換的CV復(fù)制到所述可選塊中;以及更新所述標(biāo)準(zhǔn)化密鑰塊中的可選塊數(shù)據(jù)。
[0008]通過本發(fā)明的技術(shù)實(shí)現(xiàn)其它特性和優(yōu)點(diǎn)。在此詳細(xì)描述了本發(fā)明的其它實(shí)施例和方面,并且這些實(shí)施例和方面被視為要求保護(hù)的本發(fā)明的一部分。為了更好地理解本發(fā)明以及優(yōu)點(diǎn)和特性,將參考說明書和附圖。
【專利附圖】
【附圖說明】
[0009]現(xiàn)在僅通過實(shí)例的方式參考附圖描述本發(fā)明的一個(gè)或多個(gè)實(shí)施例,這些附圖是:
[0010]圖1是計(jì)算系統(tǒng)的示意圖;
[0011]圖2是密鑰塊字段的圖;
[0012]圖3是示出在導(dǎo)出操作中映射密鑰信息的方法的流程圖;
[0013]圖4是示出構(gòu)建可選塊的方法的流程圖;
[0014]圖5是示出保護(hù)可選塊中的控制向量的方法的流程圖;
[0015]圖6是示出在導(dǎo)入操作中映射密鑰信息的方法的流程圖;以及
[0016]圖7是示出解析可選塊數(shù)據(jù)的方法的流程圖。
【具體實(shí)施方式】
[0017]本發(fā)明的各個(gè)方面涉及一種用于將密鑰令牌控制信息映射到標(biāo)準(zhǔn)化密鑰塊指定的數(shù)據(jù)字段的方法,其中所述方法包括導(dǎo)出操作。輸出密鑰塊將包含密鑰控制信息,其通過標(biāo)準(zhǔn)密鑰塊的包裝方法以加密方式綁定到密鑰材料。將從密鑰令牌和消歧信息獲得該密鑰控制信息,以便指導(dǎo)在導(dǎo)出操作之前或期間指定的轉(zhuǎn)換。本發(fā)明的各個(gè)方面還涉及一種用于迭代構(gòu)建可選塊的有效包的方法,該有效包在隨后創(chuàng)建標(biāo)準(zhǔn)化密鑰塊中用作輸入。本發(fā)明的各個(gè)方面還指定一種以適合用于密鑰塊可選塊的表示對(duì)密鑰令牌信息進(jìn)行編碼的方法,以及一種用于安全地記錄該操作被允許或不允許的方法。
[0018]本發(fā)明的各個(gè)方面還涉及一種用于將標(biāo)準(zhǔn)密鑰塊指定的數(shù)據(jù)字段信息映射到密鑰令牌信息的方法,其中所述方法包括導(dǎo)入操作。這不同于導(dǎo)出情況,因?yàn)榘踩珯?quán)衡是不對(duì)稱的,并且在導(dǎo)入時(shí),可能危及本地系統(tǒng)。輸出密鑰令牌將包含密鑰控制信息,其通過已定義的包裝方法以加密方式綁定到密鑰材料。將從標(biāo)準(zhǔn)密鑰塊中的密鑰控制信息和消歧信息獲得該密鑰控制信息,以便指導(dǎo)在導(dǎo)出操作之前或期間指定的轉(zhuǎn)換。本發(fā)明的各個(gè)方面還涉及一種方法,所述方法用于解析和驗(yàn)證標(biāo)準(zhǔn)密鑰塊,并且返回與駐留在密鑰塊中的可選塊數(shù)據(jù)有關(guān)的特定和/或被請(qǐng)求的信息。
[0019]參考圖1,提供計(jì)算系統(tǒng)10作為訪問控制系統(tǒng),其中由服務(wù)和可以在該服務(wù)中執(zhí)行的特定的功能來限制用戶能力。每個(gè)能力稱為訪問控制點(diǎn)(ACP)??梢园芾碛糜谟脩舨僮鞯腁CP的訪問控制系統(tǒng),以便在包括至少第一和第二計(jì)算設(shè)備20和30的加密處理系統(tǒng)中控制訪問。
[0020]第一和第二計(jì)算設(shè)備20和30通過有線或無線網(wǎng)絡(luò)40彼此相連。第一和第二計(jì)算設(shè)備20和30均包括有形存儲(chǔ)介質(zhì)21和31,有形存儲(chǔ)介質(zhì)21和31可由處理電路22和32讀取,并且具有存儲(chǔ)在其上的可執(zhí)行指令以便由處理電路22和32執(zhí)行以執(zhí)行在此描述的一種或多種方法。具體地說,第一和第二計(jì)算設(shè)備20和30均包括由相應(yīng)存儲(chǔ)介質(zhì)21、31協(xié)作定義的相應(yīng)硬件安全模塊(HSM),以及相應(yīng)處理電路22、32。相應(yīng)HSM處理密鑰控制信息到加密密鑰的綁定以及其它職責(zé),并且每個(gè)HSM可以為此實(shí)現(xiàn)數(shù)個(gè)體系架構(gòu)中的任何一個(gè)或多個(gè)。因此,相應(yīng)HSM可以實(shí)現(xiàn)相同或不同的體系結(jié)構(gòu)。
[0021 ] 在一個(gè)示例性實(shí)例中,第一計(jì)算設(shè)備20的HSM實(shí)現(xiàn)公共加密體系結(jié)構(gòu)(CCA),并且被指示向第二計(jì)算設(shè)備30發(fā)送密鑰令牌100,密鑰令牌100包括密鑰控制信息和密鑰控制信息以加密方式被綁定到的加密密鑰。因此,因?yàn)榈谝缓偷诙?jì)算設(shè)備20和30中的每一個(gè)的HSM可以實(shí)現(xiàn)也可以不實(shí)現(xiàn)相同的體系結(jié)構(gòu),所以第一計(jì)算設(shè)備20的HSM必須借助參數(shù)數(shù)據(jù)庫201和轉(zhuǎn)換表202 (均存儲(chǔ)在存儲(chǔ)介質(zhì)21中)以安全方式將密鑰控制信息導(dǎo)出到標(biāo)準(zhǔn)化密鑰塊,并且第二計(jì)算設(shè)備30的HSM必須借助參數(shù)數(shù)據(jù)庫301和轉(zhuǎn)換表302 (均存儲(chǔ)在存儲(chǔ)介質(zhì)31中)從密鑰塊導(dǎo)入所導(dǎo)出的密鑰控制信息。
[0022]如上所述,HSM可以均實(shí)現(xiàn)相同(B卩,CCA)或不同的體系結(jié)構(gòu),但在任何一種情況下,第一計(jì)算設(shè)備20的HSM可能必須修改密鑰令牌100,從而生成標(biāo)準(zhǔn)化密鑰塊400 (以下稱為“密鑰塊400”),其包括已導(dǎo)出的密鑰控制信息。第二計(jì)算設(shè)備30的HSM在接收到密鑰塊400之后,可能進(jìn)一步必須從密鑰塊400導(dǎo)入密鑰控制信息并且將其導(dǎo)入到新的密鑰令牌500。因此,第一和第二計(jì)算設(shè)備20和30的HSM可能需要針對(duì)密鑰塊400執(zhí)行信息轉(zhuǎn)換(即,通過在導(dǎo)出操作中將信息轉(zhuǎn)換為密鑰塊400的格式,或者在導(dǎo)入操作中執(zhí)行相反操作)。
[0023]在均使用CCA的HSM的實(shí)例中,轉(zhuǎn)換表202、302提供各種密鑰塊400使用和模式值與CV密鑰類型和子類型值之間的映射。根據(jù)CCA文檔定義“輸出CCA類型”值和“輸出CCA使用”值。每個(gè)轉(zhuǎn)換可能需要啟用可能唯一的ACP,并且通過這種方式,系統(tǒng)安全管理員可以直接按用戶控制允許用戶從密鑰塊400格式導(dǎo)入的CCA密鑰類型。這很重要,因?yàn)槊荑€塊400通常可以導(dǎo)入到多個(gè)CCA類型和子類型組合。
[0024]雖然在此提供的描述可以涉及多個(gè)體系結(jié)構(gòu)以便以加密方式將密鑰控制信息綁定到加密密鑰和任何標(biāo)準(zhǔn)化密鑰塊,但出于清晰和簡(jiǎn)潔目的,假設(shè)第一和第二計(jì)算設(shè)備20和30中的每個(gè)設(shè)備的相應(yīng)HSM實(shí)現(xiàn)CCA,并且密鑰塊400是ANSI TR_31(以下稱為“TR-31”)的密鑰塊。
[0025]參考圖2,密鑰塊400包括至少九個(gè)密鑰塊字段,如下所示。密鑰塊版本標(biāo)識(shí)(ID)字段410標(biāo)識(shí)密鑰塊400的版本,版本本身定義用于以加密方式保護(hù)密鑰塊400的方法以及密鑰塊400的進(jìn)一步標(biāo)識(shí)的內(nèi)容和布局。密鑰塊長度字段420提供密鑰塊400的長度。密鑰使用字段430提供有關(guān)以加密方式綁定到密鑰塊400的受保護(hù)密鑰和/或敏感數(shù)據(jù)的預(yù)期功能的信息。算法字段440指示可以針對(duì)其使用以加密方式綁定到密鑰塊400的受保護(hù)密鑰和/或敏感數(shù)據(jù)的算法。使用模式字段450定義以加密方式綁定到密鑰塊400的受保護(hù)密鑰和/或敏感數(shù)據(jù)可以執(zhí)行的操作。密鑰版本號(hào)字段460是字符版本號(hào),其用于指示密鑰塊400的內(nèi)容是舊密鑰的組成部分或者用于防止重新注入舊密鑰。可導(dǎo)出性字段470定義是否可以在加密域之外傳輸以加密方式綁定到密鑰塊400的受保護(hù)密鑰和/或敏感數(shù)據(jù)??蛇x塊數(shù)量字段480定義包括在密鑰塊400中的可選塊數(shù)量??蛇x塊字段490包括可變數(shù)量的可選塊,每個(gè)可選塊包含ID、長度信息和可變長度數(shù)據(jù)。
[0026]在導(dǎo)出操作中,第一計(jì)算設(shè)備20的用戶將以下參數(shù)傳遞到第一計(jì)算設(shè)備20的HSM訪問的對(duì)象(例如參數(shù)數(shù)據(jù)庫201),以便將密鑰控制信息導(dǎo)出到密鑰塊400。所述參數(shù)包括指示對(duì)應(yīng)指令的規(guī)則數(shù)組關(guān)鍵字,例如要放置在密鑰塊版本ID字段410中的單個(gè)密鑰塊保護(hù)方法、要放置在密鑰使用字段430中的輸出密鑰塊400的密鑰使用值、要放置在使用模式字段450中的密鑰使用模式、用于設(shè)置可導(dǎo)出性字段470的可選導(dǎo)出控制代碼,以及要放置在可選塊字段490中的可選控制向量傳輸控制。
[0027]密鑰塊保護(hù)方法可以是以下任何一個(gè):VARX0R-A類型,其使用對(duì)應(yīng)于TR31-KBV的變體方法并且通過放置在密鑰塊版本ID字段410中的“A”標(biāo)識(shí);VARDRV-B類型,其使用對(duì)應(yīng)于TR31-KBV的密鑰推導(dǎo)方法并且通過放置在密鑰塊版本ID字段410中的“B”標(biāo)識(shí);以及VARXOR-C類型,其使用對(duì)應(yīng)于TR31-KBV的變體方法并且通過放置在密鑰塊版本ID字段410中的“C”標(biāo)識(shí)。
[0028]密鑰使用值可以是以下任何一個(gè):具有關(guān)鍵字“BDK”的基本推導(dǎo)密鑰,其通過放置在密鑰使用字段430中的“B0”標(biāo)識(shí);具有關(guān)鍵字“CVK”的卡檢驗(yàn)密鑰,其通過放置在密鑰使用字段430中的“CO”標(biāo)識(shí);具有關(guān)鍵字“ENC”的數(shù)據(jù)加密密鑰,其通過放置在密鑰使用字段430中的“D0”標(biāo)識(shí);具有關(guān)鍵字“EMVACMK”的EMV應(yīng)用加密主密鑰,其通過放置在密鑰使用字段430中的“E0”標(biāo)識(shí);具有關(guān)鍵字“EMVSCMK”的EMV機(jī)密性安全消息傳送主密鑰,其通過放置在密鑰使用字段430中的“E1”標(biāo)識(shí);具有關(guān)鍵字“EMVSMK”的EMV完整性安全消息傳送主密鑰,其通過放置在密鑰使用字段430中的“E2”標(biāo)識(shí);具有關(guān)鍵字“EMVDAMK”的EMV數(shù)據(jù)認(rèn)證代碼密鑰,其通過放置在密鑰使用字段430中的“E3”標(biāo)識(shí);具有關(guān)鍵字“EMVDNMK”的EMV動(dòng)態(tài)數(shù)量主密鑰,其通過放置在密鑰使用字段430中的“E4”標(biāo)識(shí);具有關(guān)鍵字“EMVCPMK”的EMV卡個(gè)性化主密鑰,其通過放置在密鑰使用字段430中的“E5”標(biāo)識(shí);具有關(guān)鍵字“KEK”的密鑰加密密鑰,通過放置在密鑰使用字段中的“K0”標(biāo)識(shí);具有關(guān)鍵字“KEK-WRAP”的用于對(duì)TR-31塊進(jìn)行包裝的密鑰加密密鑰,其通過放置在密鑰使用字段430中的“K1”標(biāo)識(shí);具有關(guān)鍵字“IS0MAC0”的用于使用TDES的IS016609MAC算法I的密鑰,其通過放置在密鑰使用字段430中的“MO”標(biāo)識(shí);具有關(guān)鍵字“IS0MAC1”的用于IS09797-1MAC算法I的密鑰,其通過放置在密鑰使用字段430中的“Ml”標(biāo)識(shí);具有關(guān)鍵字“IS0MAC3”的用于IS09797-1MAC算法3的密鑰,其通過放置在密鑰使用字段430中的“M3”標(biāo)識(shí);具有關(guān)鍵字“PINENC”的PIN加密密鑰,其通過放置在密鑰使用字段430中的“PO”標(biāo)識(shí);具有關(guān)鍵字“PINV0”的PIN檢驗(yàn)密鑰(“other”算法),其通過放置在密鑰使用字段430中的“V0”標(biāo)識(shí);具有關(guān)鍵字“PINV3624”的用于IBM3624算法的PIN檢驗(yàn)密鑰,其通過放置在密鑰使用字段430中的“VI”標(biāo)識(shí);以及具有關(guān)鍵字“VISAPVV”的PIN檢驗(yàn)密鑰(VISA PVV算法),其通過放置在密鑰使用字段430中的“V2”標(biāo)識(shí)。
[0029]密鑰使用模式可以是以下任何一個(gè):具有關(guān)鍵字“ENCDEC”的加密和解密,其通過放置在使用模式字段450中的“B”標(biāo)識(shí);具有關(guān)鍵字“DEC-ONLY”的僅解密,其通過放置在使用模式字段450中的“D”標(biāo)識(shí);具有關(guān)鍵字“ENC-ONLY”的僅加密,其通過放置在使用模式字段450中的“E”標(biāo)識(shí);具有關(guān)鍵字“GENVER”的MAC或PIN生成和檢驗(yàn),其通過放置在使用模式字段450中的“C”標(biāo)識(shí);具有關(guān)鍵字“GEN-ONLY”的僅MAC或PIN生成,其通過放置在使用模式字段450中的“G”標(biāo)識(shí);具有關(guān)鍵字“VER-ONLY”的僅MAC或PIN檢驗(yàn),其通過放置在使用模式字段450中的“V”標(biāo)識(shí);具有關(guān)鍵字“DERIVE”的密鑰推導(dǎo),其通過放置在使用模式字段450中的“X”標(biāo)識(shí);以及具有關(guān)鍵字“ANY”的任何允許模式,其通過放置在使用模式字段450中的“N”標(biāo)識(shí)。
[0030]用于設(shè)置可導(dǎo)出性字段470的可選導(dǎo)出控制代碼可以指示以下任何一個(gè):具有關(guān)鍵字“EXP-ANY”的使用任何密鑰加密密鑰的允許導(dǎo)出,其通過放置在可導(dǎo)出性字段470中的“S”標(biāo)識(shí);具有關(guān)鍵字“EXP-TRST”的使用可信密鑰加密密鑰(如在用于密鑰塊400的標(biāo)準(zhǔn)中定義)的允許導(dǎo)出,其通過放置在可導(dǎo)出性字段470中的“E”標(biāo)識(shí);以及具有關(guān)鍵字“ΕΧΡ-Ν0ΝΕ”的禁止導(dǎo)出,其通過放置在可導(dǎo)出性字段470中的“N”標(biāo)識(shí)。要放置在可選塊字段490中的可選控制向量傳輸控制可以指示以下任何一個(gè):具有關(guān)鍵字“INCL-CV”的用于將CV作為可選字段包括在密鑰塊400標(biāo)頭中的指令,其中根據(jù)下面描述的轉(zhuǎn)換將密鑰使用字段430和使用模式字段450設(shè)置為非數(shù)字值;以及具有關(guān)鍵字“ATTR-CV”的用于將CV作為可選字段包括在密鑰塊400標(biāo)頭中的指令,其中將密鑰使用字段430和使用模式字段450設(shè)置為預(yù)定值。
[0031]所述參數(shù)還包括“密鑰版本號(hào)”、“密鑰字段長度”、“源密鑰標(biāo)識(shí)符長度”、“源密鑰標(biāo)識(shí)符”、“解包kek標(biāo)識(shí)符長度”、“解包kek標(biāo)識(shí)符”、“包裝kek標(biāo)識(shí)符長度”、“包裝kek標(biāo)識(shí)符”、“可選塊長度”、“可選塊”、“tr31密鑰塊長度”以及“tr31密鑰塊”。密鑰版本號(hào)參數(shù)可以是兩字節(jié)數(shù)字,并且可以復(fù)制到密鑰塊400的密鑰版本號(hào)字段460中,除非密鑰令牌100中的源密鑰標(biāo)識(shí)符參數(shù)是密鑰一部分,在這種情況下將忽略該參數(shù)并且將密鑰版本號(hào)字段設(shè)置為值“CO”。密鑰字段長度參數(shù)可以是整數(shù)參數(shù),其指定在密鑰塊400中加密的密鑰字段的長度。根據(jù)各實(shí)施例,長度是8的倍數(shù),并且大于或等于在密鑰令牌100中與源密鑰標(biāo)識(shí)符參數(shù)一起傳遞的“明文”密鑰的長度加上密鑰塊400中在該密鑰之前的2字節(jié)密鑰長度的長度。源密鑰標(biāo)識(shí)符長度參數(shù)指向整數(shù),該整數(shù)指定源密鑰標(biāo)識(shí)符參數(shù)的長度。源密鑰標(biāo)識(shí)符參數(shù)指向字符串變量,該變量包含要導(dǎo)出的密鑰令牌100。解包kek標(biāo)識(shí)符長度參數(shù)指向整數(shù),該整數(shù)指定解包kek標(biāo)識(shí)符參數(shù)的長度。解包kek標(biāo)識(shí)符參數(shù)指向包含密鑰令牌100的字符串變量,密鑰令牌100包含用于解包的包裝密鑰,前提是源密鑰標(biāo)識(shí)符參數(shù)中的密鑰令牌100在不同于保存在第一計(jì)算設(shè)備20的HSM內(nèi)部的密鑰的密鑰下進(jìn)行包裝。如果未指定包裝kek標(biāo)識(shí)符參數(shù),則使用該參數(shù)對(duì)密鑰塊400進(jìn)行包裝。包裝kek標(biāo)識(shí)符長度參數(shù)指向整數(shù),該整數(shù)指定包裝kek標(biāo)識(shí)符參數(shù)的長度。包裝kek標(biāo)識(shí)符指向字符串變量,該變量包含密鑰令牌100,密鑰令牌100包含用于對(duì)密鑰塊400進(jìn)行包裝的包裝密鑰。可選塊長度參數(shù)指向整數(shù)變量,該變量指定可選塊參數(shù)的長度??蛇x塊參數(shù)指向緩沖區(qū),該緩沖區(qū)包含要包括在輸出密鑰塊400中的可選塊數(shù)組??赡苄枰惹耙哉_格式準(zhǔn)備可選塊數(shù)組。tr31密鑰塊長度參數(shù)指向整數(shù),該整數(shù)指定tr31密鑰塊參數(shù)的長度。根據(jù)各實(shí)施例,在輸入時(shí),tr31密鑰塊長度參數(shù)指定可用于輸出密鑰塊400的緩沖區(qū)大小,并且在返回時(shí),更新tr31密鑰塊長度參數(shù)以便包含該返回的令牌的實(shí)際長度。tr31密鑰塊指向其中將放置輸出密鑰塊400的字符串變量。
[0032]參考圖3,現(xiàn)在將描述導(dǎo)出過程。初始地,在操作600中檢查導(dǎo)出所需的條件。檢查包括驗(yàn)證規(guī)則數(shù)組參數(shù),驗(yàn)證包括最小數(shù)量的關(guān)鍵字并且每個(gè)所需的關(guān)鍵字組中僅I個(gè)關(guān)鍵字,以及檢驗(yàn)規(guī)則數(shù)組、密鑰版本號(hào)、密鑰字段長度、源密鑰標(biāo)識(shí)符長度、源密鑰標(biāo)識(shí)符、解包kek標(biāo)識(shí)符長度、解包kek標(biāo)識(shí)符、包裝kek標(biāo)識(shí)符長度、包裝kek標(biāo)識(shí)符、可選塊長度、可選塊、tr31密鑰塊長度以及tr31密鑰塊參數(shù)都未缺少,如在某些實(shí)施例中通過檢測(cè)空指針發(fā)現(xiàn)的那樣。如果缺少任何參數(shù)(即,它們是空指針),則所述過程中止。
[0033]操作600的檢查還包括驗(yàn)證在源密鑰標(biāo)識(shí)符、解包kek標(biāo)識(shí)符和包裝kek標(biāo)識(shí)符參數(shù)中傳遞的密鑰令牌100。該驗(yàn)證包括檢驗(yàn)使用源密鑰標(biāo)識(shí)符參數(shù)傳遞的值是具有版本、長度、控制信息的有效密鑰令牌100,并且如果不是,則所述過程中止。驗(yàn)證還包括檢驗(yàn)使用解包kek標(biāo)識(shí)符傳遞的值是有效密鑰令牌100,并且如果不是,則所述過程中止。當(dāng)已解析源密鑰標(biāo)識(shí)符參數(shù)和解包kek標(biāo)識(shí)符參數(shù)兩者時(shí),使用解包kek標(biāo)識(shí)符參數(shù)或保存在第一計(jì)算設(shè)備20的HSM內(nèi)部的包裝密鑰對(duì)源密鑰標(biāo)識(shí)符中的密鑰材料進(jìn)行解包。驗(yàn)證還包括檢驗(yàn)使用包裝kek標(biāo)識(shí)符傳遞的值是有效密鑰令牌100以及是否傳遞任何令牌。如果不是,則所述過程中止。
[0034]操作600的檢查還包括檢驗(yàn)在解包kek標(biāo)識(shí)符參數(shù)中接收的密鑰令牌100是否具有CV以便允許對(duì)源密鑰標(biāo)識(shí)符參數(shù)進(jìn)行解包或轉(zhuǎn)換,檢驗(yàn)在包裝kek標(biāo)識(shí)符參數(shù)中接收的密鑰令牌100是否具有CV以便允許對(duì)源密鑰標(biāo)識(shí)符參數(shù)進(jìn)行包裝或轉(zhuǎn)換,并且驗(yàn)證是否可以導(dǎo)出源密鑰標(biāo)識(shí)符參數(shù)中的密鑰令牌100。此時(shí)還確定是否可以將密鑰令牌100導(dǎo)出為密鑰塊400,以及檢查是否針對(duì)適當(dāng)?shù)腁CP授權(quán)所請(qǐng)求的操作。
[0035]如果操作600的檢查結(jié)果是肯定的,則所述方法在操作610中繼續(xù),以準(zhǔn)備密鑰塊400。該操作首先包括驗(yàn)證密鑰字段長度參數(shù)并且驗(yàn)證在可選塊參數(shù)中傳遞的可選塊。該驗(yàn)證包括不允許重復(fù)的塊標(biāo)記,允許數(shù)字塊標(biāo)記,字母塊標(biāo)記需要符合標(biāo)準(zhǔn),長度字段足夠,計(jì)算數(shù)字可選塊參數(shù)(如果計(jì)數(shù)大于預(yù)定數(shù)值(例如99),則所述過程中止),判定可選塊部分的總長度是否促使密鑰塊400總長度太大,以及將可選塊復(fù)制到可選塊字段490。
[0036]操作610的準(zhǔn)備還包括準(zhǔn)備任何其它可選塊,例如用于承載編碼版本的源密鑰標(biāo)識(shí)符參數(shù)CV的可選塊,并且驗(yàn)證密鑰版本號(hào)具有正確的格式。如果傳遞的密鑰版本號(hào)參數(shù)以“C”開頭并且密鑰令牌100不是部分的,則所述過程中止。如果傳遞的密鑰版本號(hào)參數(shù)以“c”開頭并且密鑰令牌100是部分的,則所述過程使用傳遞的版本號(hào)代替默認(rèn)“CO”。如果傳遞的密鑰版本號(hào)參數(shù)不以“c”開頭并且密鑰令牌100是部分的,則將完全忽略密鑰版本號(hào)參數(shù)并且針對(duì)密鑰塊400使用“CO”。
[0037]在操作610的準(zhǔn)備之后,所述方法繼續(xù),在操作620中創(chuàng)建密鑰塊400。操作620的創(chuàng)建包括創(chuàng)建和填充空密鑰塊400結(jié)構(gòu),并且確定要用于密鑰塊400的CV轉(zhuǎn)換方法。所述確定包括為可選塊字段490準(zhǔn)備CV,并且根據(jù)CV準(zhǔn)備密鑰使用字段430和使用模式字段450,如在轉(zhuǎn)換表202中描述的那樣,前提是將INCL-CV傳遞到參數(shù)數(shù)據(jù)庫201。備選地,所述確定包括為可選塊字段490準(zhǔn)備CV,并且將密鑰使用字段430和使用模式字段450設(shè)置為預(yù)定值,前提是將ATTR-CV傳遞到參數(shù)數(shù)據(jù)庫201。根據(jù)另一個(gè)備選方案,所述確定包括根據(jù)CV準(zhǔn)備密鑰使用字段430和使用模式字段450,如在轉(zhuǎn)換表202中描述的那樣,前提是未將關(guān)鍵字傳遞到參數(shù)數(shù)據(jù)庫201。
[0038]在操作620的創(chuàng)建之后,在操作630中完成密鑰塊400。操作630的完成包括根據(jù)規(guī)定的包裝方法準(zhǔn)備密鑰塊400的密鑰承載部分,在可選塊字段490之后連接包裝密鑰部分以便創(chuàng)建密鑰塊400,以及將密鑰塊復(fù)制到tr31密鑰塊參數(shù)并將tr31密鑰塊長度更新為最終長度。
[0039]根據(jù)本發(fā)明的進(jìn)一步方面,提供一種方法,由此迭代構(gòu)建針對(duì)密鑰塊400設(shè)置格式的有效可選塊數(shù)組。
[0040]根據(jù)本發(fā)明,本發(fā)明的用戶通過其它方法或者按照值,將以下參數(shù)(它們?nèi)慷x為指針)傳遞到參數(shù)數(shù)據(jù)庫201。所述參數(shù)包括可選塊緩沖區(qū)長度參數(shù)、可選塊長度參數(shù)、可選塊參數(shù)、數(shù)字可選塊參數(shù)、可選塊id參數(shù)、可選塊數(shù)據(jù)長度參數(shù)以及可選塊數(shù)據(jù)參數(shù)??蛇x塊緩沖區(qū)長度參數(shù)指向整數(shù),該整數(shù)包含使用可選塊參數(shù)傳遞的緩沖區(qū)的長度。該長度用于確定向緩沖區(qū)的當(dāng)前內(nèi)容中添加新可選塊是否將使緩沖區(qū)溢出。可選塊長度參數(shù)指向整數(shù),該整數(shù)包含可選塊緩沖區(qū)中的數(shù)據(jù)的長度。在輸入時(shí),該參數(shù)指定當(dāng)前在可選塊中的數(shù)據(jù)的長度。在輸出時(shí),使用在向該緩沖區(qū)中的可選塊組中添加新可選塊之后的長度更新該參數(shù)??蛇x塊參數(shù)指向緩沖區(qū),該緩沖區(qū)包含構(gòu)建的可選塊組。初始地,該參數(shù)將為空,然后在每次迭代中將可選塊附加到緩沖區(qū)??蛇x塊緩沖區(qū)長度參數(shù)指定該緩沖區(qū)的總長度,并且如果在可選塊數(shù)據(jù)參數(shù)中向當(dāng)前內(nèi)容中添加可選塊而超過該長度,則返回錯(cuò)誤。數(shù)字可選塊參數(shù)指向整數(shù),該整數(shù)包含在可選塊參數(shù)中返回的結(jié)構(gòu)中包含的可選塊數(shù)量。提供該參數(shù)作為輸出參數(shù),以便它可以隨后用作處理的輸入,該處理可以構(gòu)建完整密鑰塊400。在輸入時(shí)不檢查該參數(shù),僅在成功輸出時(shí)更新該參數(shù)??蛇x塊id參數(shù)指向兩字節(jié)值,該值將成為在可選塊數(shù)據(jù)參數(shù)中傳遞的可選塊的標(biāo)識(shí)符標(biāo)記。可選塊數(shù)據(jù)長度參數(shù)指向整數(shù),該整數(shù)指定在可選塊數(shù)據(jù)參數(shù)中傳遞的數(shù)據(jù)的長度。該長度可以是零,因?yàn)榭蛇x塊可以有效地具有標(biāo)記和長度,但沒有數(shù)據(jù)。可選塊數(shù)據(jù)參數(shù)指向緩沖區(qū),應(yīng)用在可選塊參數(shù)中將以下可選塊的數(shù)據(jù)傳遞到該緩沖區(qū):該可選塊要添加到已經(jīng)在緩沖區(qū)中的那些可選塊。在可選塊數(shù)據(jù)長度參數(shù)中指定該數(shù)據(jù)的長度。
[0041]參考圖4,示出根據(jù)各實(shí)施例的迭代構(gòu)建針對(duì)密鑰塊400設(shè)置格式的有效可選塊數(shù)組的方法。
[0042]所述方法包括初始檢驗(yàn)操作700,后跟解析操作710。操作700的檢驗(yàn)包括檢驗(yàn)可選塊緩沖區(qū)長度、可選塊長度、可選塊、數(shù)字可選塊、可選塊id、可選塊數(shù)據(jù)長度或可選塊數(shù)據(jù)參數(shù)都未缺少(即,它們是空指針)。如果任何參數(shù)為空,則所述過程中止。接下來,檢驗(yàn)可選塊緩沖區(qū)長度、可選塊長度、數(shù)字可選塊、可選塊數(shù)據(jù)長度整數(shù)參數(shù)都沒有負(fù)值(即,它們具有大于或等于O的值)。然后,檢驗(yàn)緩沖區(qū)具有足夠的空間以便向其中添加新的可選塊。
[0043]操作710的解析包括解析可選塊參數(shù)中的可選塊數(shù)據(jù),以便驗(yàn)證它并且確定它的長度和包含的可選塊數(shù)量,前提是用戶自身已準(zhǔn)備緩沖區(qū)的一部分,以便本發(fā)明必須能夠保證可選塊的輸出數(shù)組完全有效。操作710的解析還禁止重復(fù)的塊標(biāo)記,允許數(shù)字塊標(biāo)記,檢驗(yàn)字母塊標(biāo)記針對(duì)密鑰塊400具有正確的格式,檢驗(yàn)長度字段具有足夠的長度,并且確定如果數(shù)字可選塊參數(shù)等于99,則無法添加另一個(gè)可選塊。
[0044]在操作710的解析之后,在操作720中驗(yàn)證要添加的可選塊ID,其中防止用戶嘗試添加填充塊“PB”。根據(jù)操作720,不允許與已經(jīng)在數(shù)組中的那些塊標(biāo)記重復(fù),允許數(shù)字塊標(biāo)記,并且字母塊標(biāo)記必須針對(duì)密鑰塊400具有正確的格式。接下來,在操作730中根據(jù)可選塊參數(shù)的值來確定將新可選塊存儲(chǔ)在緩沖區(qū)中的何處。
[0045]然后在操作740中,根據(jù)可選塊參數(shù)將新可選塊插入到緩沖區(qū)的上述計(jì)算的起始地址處。插入包括檢驗(yàn)可選塊id參數(shù)中的值具有正確的格式,將值從可選塊id參數(shù)復(fù)制到可選塊字段490,檢驗(yàn)值適當(dāng),將長度值從可選塊數(shù)據(jù)長度參數(shù)轉(zhuǎn)換為正確的格式,將具有正確格式的長度值復(fù)制到密鑰塊長度字段420,檢驗(yàn)緩沖區(qū)中的數(shù)據(jù)具有正確的格式,以及將在可選塊數(shù)據(jù)參數(shù)中傳遞的數(shù)據(jù)復(fù)制到密鑰塊400。
[0046]在操作750中,更新可選塊長度參數(shù)的值以便指示添加新可選塊之后的新長度,使得可選塊長度參數(shù)的值等于可選塊長度參數(shù)加上新數(shù)據(jù)長度參數(shù)的值。在操作760中,在可選塊參數(shù)的值中返回可選塊的數(shù)字可選塊參數(shù)的值中的新的正確總計(jì)數(shù)。
[0047]根據(jù)本發(fā)明的另一方面,第一計(jì)算設(shè)備20的用戶可能希望即使在第二計(jì)算設(shè)備30的HSM也實(shí)現(xiàn)與第一計(jì)算設(shè)備20相同的體系結(jié)構(gòu)的情況下,當(dāng)導(dǎo)出密鑰塊400中的密鑰令牌100時(shí),也能夠保持他的CV以加密方式綁定到密鑰。但是,通常密鑰塊400沒有指定的用于將專用密鑰控制數(shù)據(jù)結(jié)構(gòu)(例如CCA CV)映射到密鑰塊400的方法。因此,提供一種方法,由此以適合于密鑰塊400的表示將專用材料編碼在密鑰塊400中,并且針對(duì)給定CCACV密鑰安全地記錄是允許還是禁止該操作。
[0048]本方法在密鑰塊400中使用一個(gè)可選塊,并且定義格式和處理方法以便在可選塊字段490中對(duì)CV進(jìn)行編碼。根據(jù)密鑰塊400標(biāo)準(zhǔn),某些數(shù)字可選塊標(biāo)記表示在可選塊字段490中表示的專用信息。本方法涉及兩點(diǎn)。第一點(diǎn)是對(duì)用戶關(guān)于是否可以以密鑰塊400的格式導(dǎo)出CCA密鑰所做的策略決策進(jìn)行安全編碼。通過在HSM內(nèi)部執(zhí)行CCA密鑰包裝方法,將該策略安全地綁定到CCA密鑰,以便如果在HSM外部存儲(chǔ)密鑰承載數(shù)據(jù)結(jié)構(gòu)時(shí)更改了 CV策略位,則CCA密鑰材料值隨后在HSM內(nèi)部解包時(shí)將有所不同并且因此無用。第二點(diǎn)涉及可選塊“數(shù)據(jù)”部分中的數(shù)據(jù)的格式化和編碼,其中根據(jù)以下所述來布置得到的可選塊字段490。
[0049]參考圖5,當(dāng)?shù)谝挥?jì)算設(shè)備20的用戶請(qǐng)求在密鑰塊400中對(duì)密鑰令牌100進(jìn)行編碼并且請(qǐng)求密鑰令牌100附帶CV時(shí),根據(jù)以下所述來繼續(xù)所述方法。首先,在操作800中驗(yàn)證傳遞到參數(shù)數(shù)據(jù)庫201的參數(shù)。在此,將密鑰令牌100定義為一種數(shù)據(jù)結(jié)構(gòu),其包含CV和以加密方式綁定到CV的密鑰,使得改變CV將更改密鑰并且致使其無用,其中密鑰令牌100具有有效的版本和格式,包含密鑰和CV,并且CV表示允許在密鑰塊400中導(dǎo)出密鑰令牌100。此外,至少初始地將密鑰塊400定義為部分準(zhǔn)備好的密鑰塊400,其具有用于添加新可選塊的空間和小于最大值的計(jì)數(shù)。接下來,在操作810中計(jì)算和檢驗(yàn)CV數(shù)據(jù)的必需長度,并且在操作820中準(zhǔn)備密鑰塊400的可選塊標(biāo)記和長度字段。在操作830中準(zhǔn)備專用信息的標(biāo)識(shí)符、子塊標(biāo)識(shí)符和長度字段,并且在操作840中將CV轉(zhuǎn)換為正確的格式。最后,在操作850中更新可選塊計(jì)數(shù)。
[0050]在導(dǎo)入操作中,第二計(jì)算設(shè)備30的用戶將以下參數(shù)傳遞到由第二計(jì)算設(shè)備30的HSM訪問的參數(shù)數(shù)據(jù)庫301,以便將信息從密鑰塊400導(dǎo)入到新密鑰令牌500。所述參數(shù)包括規(guī)則數(shù)組關(guān)鍵字,例如單一密鑰包裝方法、“CO”子組、“K0”或“K1”子組、“V0”/ “VI”/ “V2”子組、“E0”/ “E2”子組、“E1”子組、“E5”子組、密鑰推導(dǎo)級(jí)別以及密鑰類型修飾符。單一密鑰包裝方法可以是以下之一:指內(nèi)部密鑰令牌的“INTERNAL”和指外部密鑰令牌的“EXTERNAL”。如轉(zhuǎn)換表302定義的,每個(gè)子組對(duì)應(yīng)于新密鑰令牌500中的一個(gè)指令。
[0051]在“CO”子組中可以是CVK-CVV和CVK-CSC指令之一,以便將密鑰塊400CVK指令轉(zhuǎn)換為新密鑰令牌500指令,從而用于計(jì)算各種信用卡檢驗(yàn)值。在“K0”或“K1”子組中可以是 EXPORTER、OKEYXLAT、IMPORTER 和 IKEYXLAT 指令之一,以便用于密鑰塊 400K0-E/D或KO-B使用和模式密鑰,從而將密鑰塊400KEK指令轉(zhuǎn)換為新密鑰令牌500類型密鑰。在“VO”/ “VI” / “V2”子組中可以是PINGEN和PINVER指令之一,以便將密鑰塊400PIB檢驗(yàn)密鑰轉(zhuǎn)換為新密鑰令牌500PINGEN或PINVER密鑰。在“E0”/ “E2”子組中可以是DMAC和DMV指令之一,以便將應(yīng)用加密或安全消息傳送指令的密鑰塊400EMV主密鑰轉(zhuǎn)換為新密鑰令牌500DKYGENKY類型密鑰,其具有DMAC或DMV子類型。在“E1”子組中可以是DMPIN和DDATA指令之一,以便將機(jī)密性安全消息傳送指令的密鑰塊400EMV主密鑰轉(zhuǎn)換為新密鑰令牌500DKYGENKY類型密鑰,其具有DMPIN或DDATA子類型。在“E5”子組中可以是DMAC、DMV和DEXP指令之一,以便將用于卡個(gè)性化的密鑰塊400EMV主密鑰轉(zhuǎn)換為新密鑰令牌500類型密鑰,其具有DMAC、DMV或DEXP子類型。在密鑰推導(dǎo)級(jí)別中可以是DKYLO和DKYLl指令之一,以便在推導(dǎo)級(jí)別DKYLO或DKYLl將密鑰塊400EMV主密鑰轉(zhuǎn)換為新密鑰令牌500類型密鑰。在密鑰類型修飾符中可以是N00FFSET指令,該指令僅針對(duì)“VO” / “VI”密鑰塊400使用值有效,并且指示第二計(jì)算設(shè)備30的HSM將無法參與生成或檢驗(yàn)的PINGEN或PINVER類型密鑰導(dǎo)入密鑰令牌500中。
[0052]所述參數(shù)還包括tr31密鑰塊長度參數(shù)、tr31密鑰塊參數(shù)、解包kek標(biāo)識(shí)符長度參數(shù)、解包kek標(biāo)識(shí)符參數(shù)、包裝kek標(biāo)識(shí)符長度參數(shù)、包裝kek標(biāo)識(shí)符參數(shù)、輸出密鑰標(biāo)識(shí)符長度參數(shù)、輸出密鑰標(biāo)識(shí)符參數(shù)、數(shù)字可選塊參數(shù)、cv源參數(shù)以及保護(hù)方法參數(shù)。tr31密鑰塊長度參數(shù)指向整數(shù),該整數(shù)指定tr31密鑰塊參數(shù)的長度。tr31密鑰塊參數(shù)指向字符串變量,該變量包含要導(dǎo)入的密鑰塊400輸入密鑰塊。解包kek標(biāo)識(shí)符長度參數(shù)指向整數(shù),該整數(shù)指定解包kek標(biāo)識(shí)符參數(shù)的長度。解包kek標(biāo)識(shí)符參數(shù)指向字符串變量,該變量包含新密鑰令牌500,新密鑰令牌500包含包裝密鑰以便用于對(duì)tr31密鑰塊參數(shù)進(jìn)行解包。如果未指定包裝kek標(biāo)識(shí)符并且傳遞“EXTERNAL”規(guī)則數(shù)組關(guān)鍵字,則該參數(shù)還用于對(duì)新密鑰令牌500進(jìn)行包裝以便同樣用于輸出。包裝kek標(biāo)識(shí)符長度參數(shù)指向整數(shù),該整數(shù)指定包裝kek標(biāo)識(shí)符參數(shù)的長度。包裝kek標(biāo)識(shí)符參數(shù)指向字符串變量,該變量包含新密鑰令牌500,新密鑰令牌500包含包裝密鑰以便用于對(duì)輸出新密鑰令牌500進(jìn)行包裝,前提是需要不同的包裝密鑰并且傳遞了 “EXTERNAL”規(guī)則數(shù)組關(guān)鍵字。輸出密鑰標(biāo)識(shí)符長度參數(shù)指向整數(shù),該整數(shù)指定輸出密鑰標(biāo)識(shí)符參數(shù)的長度。在輸入時(shí),該參數(shù)必須指定可用緩沖區(qū)的大小,并且在返回時(shí),更新該參數(shù)以便包含該返回的令牌的實(shí)際長度。輸出密鑰標(biāo)識(shí)符參數(shù)指向其中將放置新密鑰令牌500的字符串變量。數(shù)字可選塊參數(shù)指向整數(shù)變量,其中將放置存在于密鑰塊400中的可選塊的數(shù)量。cv源參數(shù)指向整數(shù)變量,該變量在輸出時(shí)將保存指示如何在輸出新密鑰令牌500中創(chuàng)建CV的值。該參數(shù)可以是以下三個(gè)值之一:0x00,其指示可選密鑰塊400中不存在CV,并且根據(jù)輸入規(guī)則數(shù)組關(guān)鍵字和密鑰塊400中的屬性創(chuàng)建輸出CV ;0x01,其指示從密鑰塊400中的可選塊獲得CV,還指定使用和模式,并且使用CV針對(duì)這些值檢驗(yàn)兼容性,然后將CV用于輸出新密鑰令牌500 ;或者0x02,其指示從密鑰塊400中的可選塊獲得CV,使用和模式保存指示包括的CV是控制信息的唯一源的預(yù)定值,并且使用來自密鑰塊400的CV作為新密鑰令牌500的CV。保護(hù)方法參數(shù)指向整數(shù)變量,該變量在輸出時(shí)將保存指示使用何種方法保護(hù)輸入密鑰塊400的值。該參數(shù)可以是以下三個(gè)值之一:0X00、0X01或0x02,它們指示使用具有密鑰塊版本ID “Α”、“Β”或“C”的方法保護(hù)密鑰塊 400。[0053]參考圖6,現(xiàn)在將描述導(dǎo)入過程。初始地,在操作900中檢查導(dǎo)入所需的條件。所述檢查包括驗(yàn)證規(guī)則數(shù)組參數(shù),所述驗(yàn)證包括最小數(shù)量的關(guān)鍵字并且每個(gè)所需的關(guān)鍵字組中僅I個(gè)關(guān)鍵字以及每個(gè)可選的關(guān)鍵字組中O或I個(gè)關(guān)鍵字,并且檢驗(yàn)tr31密鑰塊長度、tr31密鑰塊、解包kek標(biāo)識(shí)符長度、解包kek標(biāo)識(shí)符、包裝kek標(biāo)識(shí)符長度、包裝kek標(biāo)識(shí)符、輸出密鑰標(biāo)識(shí)符長度、輸出密鑰標(biāo)識(shí)符、數(shù)字可選塊、cv源以及保護(hù)方法參數(shù)都未缺少(即,它們是空指針)。
[0054]操作900的檢查還包括驗(yàn)證在解包kek標(biāo)識(shí)符和包裝kek標(biāo)識(shí)符參數(shù)中傳遞到參數(shù)數(shù)據(jù)庫301的密鑰令牌100。該驗(yàn)證包括檢驗(yàn)使用解包kek標(biāo)識(shí)符參數(shù)傳遞到參數(shù)數(shù)據(jù)庫301的值有效,以及檢驗(yàn)使用包裝kek標(biāo)識(shí)符傳遞到參數(shù)數(shù)據(jù)庫301的值有效。
[0055]操作900的檢查還包括檢驗(yàn)在解包kek標(biāo)識(shí)符參數(shù)中接收的密鑰令牌100是否具有CV以便允許通過CV控制集對(duì)tr31密鑰塊參數(shù)進(jìn)行解包或轉(zhuǎn)換,檢驗(yàn)在包裝kek標(biāo)識(shí)符參數(shù)中接收的密鑰令牌100是否具有CV以便允許對(duì)輸出密鑰標(biāo)識(shí)符參數(shù)進(jìn)行包裝或轉(zhuǎn)換,并且驗(yàn)證密鑰塊400。該驗(yàn)證包括驗(yàn)證密鑰塊字段是否具有包含正確格式文本和特定字段約束的有效值,并且驗(yàn)證密鑰塊400的版本受支持。
[0056]該驗(yàn)證還包括解析密鑰塊400中由tr31密鑰參數(shù)引用的可選塊數(shù)據(jù)以便對(duì)其進(jìn)行驗(yàn)證,確定它的長度和包含的可選塊數(shù)量。解析包括檢驗(yàn)可選塊的計(jì)數(shù)對(duì)應(yīng)于用于該計(jì)數(shù)的密鑰塊字段中標(biāo)注的計(jì)數(shù)并且對(duì)應(yīng)于數(shù)字可選塊參數(shù),確認(rèn)長度字段正確并具有正確的格式,禁止重復(fù)的可選塊標(biāo)記,允許數(shù)字可選塊標(biāo)記,檢驗(yàn)字母塊標(biāo)記具有正確的格式,并且如果發(fā)現(xiàn)在可選塊中對(duì)CV進(jìn)行編碼,則將CV轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)以便為驗(yàn)證做準(zhǔn)備。
[0057]在操作900的檢查之后,所述方法繼續(xù)到操作910,使用在解包kek標(biāo)識(shí)符參數(shù)中傳遞的密鑰加密密鑰和密鑰塊版本ID字段410指示的解包方法,對(duì)密鑰塊400進(jìn)行解密,并且在操作920中,驗(yàn)證特定于密鑰塊版本ID字段410的ACP。然后,在操作930中確定要用于新密鑰令牌500的CV。存在3種確定可能性:可能將CV作為可選塊與數(shù)字密鑰塊400使用和模式值一起傳遞,可能將CV作為可選塊與必須對(duì)照CV內(nèi)容檢查的非數(shù)字密鑰塊使用和模式值一起傳遞,以及可能不將CV作為密鑰塊400中的可選塊來傳遞。
[0058]如果將CV作為可選塊與數(shù)字密鑰塊400使用和模式值一起傳遞,并且如果密鑰使用字段430具有例如值“10”而使用模式字段450具有例如值“1”,則將使用該CV構(gòu)造新密鑰令牌500 (如果這些值是數(shù)字但不同,則所述過程中止并出現(xiàn)錯(cuò)誤)。如果不傳遞CVJlJ對(duì)照在構(gòu)建新密鑰令牌500時(shí)指定進(jìn)一步解釋的規(guī)則數(shù)組關(guān)鍵字驗(yàn)證密鑰使用字段430和使用模式字段450的值,使用轉(zhuǎn)換表302選擇密鑰類型、子類型和限制,并且根據(jù)選擇的密鑰類型、子類型和規(guī)則數(shù)組關(guān)鍵字創(chuàng)建CV。
[0059]如果將CV作為可選塊與非數(shù)字密鑰使用字段430和非數(shù)字使用模式字段450 —起傳遞,則使用轉(zhuǎn)換表302檢驗(yàn)CV中的屬性與非數(shù)字密鑰使用字段430和非數(shù)字使用模式字段450之間的兼容性。如果不存在兼容性,則所述過程中止,如果存在兼容性,則針對(duì)操作檢查適當(dāng)?shù)腁CP (多個(gè)),驗(yàn)證密鑰部分位是否開啟,驗(yàn)證密鑰版本號(hào)字段460正確,并且使用該CV構(gòu)造新密鑰令牌500。
[0060]此時(shí),所述方法繼續(xù),分別在操作940和950中準(zhǔn)備和構(gòu)建新密鑰令牌500。操作940的準(zhǔn)備包括將選擇或創(chuàng)建的CV復(fù)制到緩沖區(qū),并且設(shè)置版本和屬性字段。操作950的創(chuàng)建按如下方式繼續(xù)。如果將“EXTERNAL”規(guī)則數(shù)組關(guān)鍵字傳遞到參數(shù)數(shù)據(jù)庫301,則使用解包kek標(biāo)識(shí)符或包裝kek標(biāo)識(shí)符參數(shù)(如果傳遞)對(duì)來自解包密鑰塊400的密鑰材料以及新CV進(jìn)行包裝,并且將結(jié)果放置在新密鑰令牌500的包裝密鑰字段中。如果傳遞“ INTERNAL”規(guī)則數(shù)組關(guān)鍵字,則使用HSM主密鑰對(duì)來自解包密鑰塊400的密鑰材料以及新CV進(jìn)行包裝,并且將結(jié)果放置在新密鑰令牌500的包裝密鑰字段中。然后,根據(jù)tr31數(shù)字可選參數(shù)設(shè)置數(shù)字可選塊參數(shù)的值,并且參考轉(zhuǎn)換表302設(shè)置cv源和保護(hù)方法參數(shù)的值。然后將最終輸出新密鑰令牌500復(fù)制到輸出密鑰標(biāo)識(shí)符參數(shù),并且更新輸出密鑰標(biāo)識(shí)符長度參數(shù)中的長度。
[0061]根據(jù)本發(fā)明的另一方面,提供一種方法,以便解析和驗(yàn)證密鑰塊400中的信息,并且返回特定和/或被請(qǐng)求的有關(guān)駐留在密鑰塊400中的可選塊數(shù)據(jù)的信息。根據(jù)所述方法,本發(fā)明的用戶將以下參數(shù)(它們?nèi)慷x為指針)傳遞到參數(shù)數(shù)據(jù)庫301。可以根據(jù)本發(fā)明,通過其它方法或者按照值傳遞參數(shù)。
[0062]所述參數(shù)包括規(guī)則數(shù)組參數(shù)、tr31密鑰長度參數(shù)和tr31密鑰參數(shù)。規(guī)則數(shù)組參數(shù)指向字符串變量,該變量包含指示所需信息的關(guān)鍵字。關(guān)鍵字的長度為8字節(jié)并且必須左對(duì)齊而在右側(cè)使用空白字符填充。規(guī)則數(shù)組關(guān)鍵字包括INF0,其與用于返回有關(guān)密鑰塊400中的整個(gè)可選塊數(shù)組的信息的指令關(guān)聯(lián),并且包括DATA,其與用于從可選塊數(shù)組返回包含在指定可選塊中的數(shù)據(jù)的指令關(guān)聯(lián)。tr31密鑰長度參數(shù)指向整數(shù),該整數(shù)包含tr31密鑰參數(shù)的長度,并且tr31密鑰參數(shù)指向緩沖區(qū),該緩沖區(qū)包含要解析的密鑰塊400。
[0063]用于規(guī)則數(shù)組關(guān)鍵字INFO參數(shù)的參數(shù)包括數(shù)字可選塊參數(shù)、可選塊id參數(shù)和可選塊長度參數(shù)。數(shù)字可選塊參數(shù)指向整數(shù),該整數(shù)包含密鑰塊400中的可選塊的數(shù)量。將值與密鑰塊標(biāo)頭中的對(duì)應(yīng)值比較,并且如果它們不匹配,則所述方法中止并出現(xiàn)錯(cuò)誤。包括該參數(shù)的原因是用戶必須為可選塊id和可選塊長度參數(shù)提供的緩沖區(qū)大小與可選塊數(shù)量相關(guān)。如果用戶并未準(zhǔn)確知道可選塊數(shù)量,則可能分配太短的緩沖區(qū)??蛇x塊長度參數(shù)指向16位無符號(hào)整數(shù)值數(shù)組。從所述方法成功返回時(shí),按照可選塊出現(xiàn)的相同順序,使用包含在密鑰塊400中的每個(gè)可選塊的長度(字節(jié))填充該參數(shù)指向的數(shù)組。這對(duì)應(yīng)于在可選塊id參數(shù)中返回的數(shù)組。返回的列表的總長度將是可選塊數(shù)量的兩倍(16位無符號(hào)整數(shù)是2字節(jié)存儲(chǔ)),因此用戶必須提供以下緩沖區(qū):其長度至少是它在數(shù)字可選塊參數(shù)中傳遞的值的兩倍。
[0064]用于規(guī)則數(shù)組關(guān)鍵字DATA參數(shù)的參數(shù)包括可選塊id參數(shù)、可選塊數(shù)據(jù)長度參數(shù)和可選塊數(shù)據(jù)參數(shù)??蛇x塊id參數(shù)指向2字節(jié)字符串,該字符串包含應(yīng)用針對(duì)其請(qǐng)求數(shù)據(jù)的塊的標(biāo)識(shí)符。可選塊數(shù)據(jù)長度參數(shù)指向整數(shù)變量,該變量包含可選塊數(shù)據(jù)參數(shù)的長度。在輸入時(shí),必須將該參數(shù)設(shè)置為應(yīng)用程序提供的緩沖區(qū)的長度,并且在輸出時(shí),更新該參數(shù)以便包含返回的可選塊數(shù)據(jù)的長度(字節(jié))??蛇x塊數(shù)據(jù)參數(shù)指向緩沖區(qū),將從指定可選塊讀取的數(shù)據(jù)存儲(chǔ)在其中。緩沖區(qū)必須具有足夠的空間以用于數(shù)據(jù),如可選塊數(shù)據(jù)長度參數(shù)的輸入值指示的那樣。在輸出時(shí),將對(duì)應(yīng)于可選塊id參數(shù)的可選塊數(shù)據(jù)復(fù)制到緩沖區(qū),并且將其長度存儲(chǔ)在可選塊數(shù)據(jù)長度參數(shù)中。
[0065]參考圖7,所述方法包括檢驗(yàn)操作1000,初始解析操作1010、輔助INFO解析操作1020以及輔助DATA解析操作1030。操作1000的檢驗(yàn)包括檢驗(yàn)規(guī)則數(shù)組、tr31密鑰長度和tr31密鑰都未缺少(即,它們是空指針),針對(duì)規(guī)則數(shù)組關(guān)鍵字INFO檢驗(yàn)數(shù)字可選塊、可選塊id和可選塊長度參數(shù)都未缺少(即,它們是空指針),并且針對(duì)規(guī)則數(shù)組關(guān)鍵字DATA檢驗(yàn)可選塊id、可選塊數(shù)據(jù)長度和可選塊數(shù)據(jù)參數(shù)都未缺少(S卩,它們是空指針)。操作1000的檢驗(yàn)還包括檢驗(yàn)tr31密鑰長度參數(shù)未缺少(即,該參數(shù)不是空指針),針對(duì)規(guī)則數(shù)組關(guān)鍵字INFO檢驗(yàn)數(shù)字可選塊參數(shù)未缺少(即,該參數(shù)不是空指針),并且針對(duì)規(guī)則數(shù)組關(guān)鍵字DATA檢驗(yàn)可選塊數(shù)據(jù)長度參數(shù)未缺少(即,該參數(shù)不是空指針)。操作1000的檢驗(yàn)還包括驗(yàn)證tr31密鑰參數(shù)中的密鑰塊字段是允許的值范圍。這包括驗(yàn)證密鑰塊數(shù)據(jù)格式化具有正確的格式,并且密鑰塊400的版本受支持。
[0066]操作1010的初始解析將解析密鑰塊400中由tr31密鑰參數(shù)引用的可選塊數(shù)據(jù)以便對(duì)其進(jìn)行驗(yàn)證,確定它的長度和包含的可選塊數(shù)量。根據(jù)解析,可選塊的計(jì)數(shù)必須對(duì)應(yīng)于用于該計(jì)數(shù)的密鑰塊字段中標(biāo)注的計(jì)數(shù)并且對(duì)應(yīng)于數(shù)字可選塊參數(shù),長度字段必須具有正確的格式,不允許重復(fù)的可選塊標(biāo)記,允許數(shù)字可選塊標(biāo)記,并且字母塊標(biāo)記必須與密鑰塊400的那些標(biāo)記一致。
[0067]當(dāng)存在規(guī)則數(shù)組關(guān)鍵字INFO時(shí),采用操作1020的輔助INFO解析。在此,如果未發(fā)現(xiàn)可選塊,則所述方法設(shè)置數(shù)字可選塊參數(shù)以便指示零個(gè)塊并且返回成功指示。然后,迭代解析tr31密鑰參數(shù)中的密鑰塊,以便發(fā)現(xiàn)標(biāo)頭中的每個(gè)可選塊的標(biāo)記和長度字段。當(dāng)解析時(shí),對(duì)于遇到的每個(gè)可選塊,將塊添加到包含每個(gè)塊標(biāo)記(這些標(biāo)記采用它們?cè)跇?biāo)頭中的出現(xiàn)順序)的可選塊id參數(shù)中的數(shù)組,并且添加到包含每個(gè)可選塊長度(這些長度按照它們?cè)跇?biāo)頭中的出現(xiàn)順序轉(zhuǎn)換為正確的格式)的可選塊長度參數(shù)中的數(shù)組。
[0068]當(dāng)存在規(guī)則數(shù)組關(guān)鍵字DATA時(shí),采用操作1030的輔助DATA解析。在此,如果未發(fā)現(xiàn)可選塊,則所述方法中止。然后,迭代解析tr31密鑰參數(shù)中的密鑰塊,并且將每個(gè)密鑰塊的標(biāo)記與可選塊id參數(shù)中的值比較。如果在到達(dá)可選塊部分的結(jié)尾之前未發(fā)現(xiàn)被請(qǐng)求標(biāo)記,則所述方法中止。然后,將該可選塊的數(shù)據(jù)部分復(fù)制到可選塊數(shù)據(jù)參數(shù),并且具有由可選塊的長度字段指示的長度,轉(zhuǎn)換可選塊的長度字段并將其作為值放在可選塊數(shù)據(jù)長度參數(shù)中,并且向用戶返回成功通知。
[0069]本發(fā)明的技術(shù)效果和效益包括提供一種安全轉(zhuǎn)換的方法,以便用戶不需要在硬件安全模塊(HSM)外部操作并因此暴露密鑰材料。根據(jù)所述方法,用戶不需要懷疑可選塊的數(shù)組有效性,并且可以在創(chuàng)建標(biāo)準(zhǔn)化密鑰塊時(shí)直接使用生成的數(shù)組。此外,直接使用戶能夠?qū)⒚荑€令牌導(dǎo)出到密鑰塊并且將這些密鑰塊導(dǎo)入到密鑰令牌,而不丟失密鑰令牌信息。
[0070]在此使用的術(shù)語只是為了描述特定的實(shí)施例并且并非旨在作為本發(fā)明的限制。如在此使用的,單數(shù)形式“一”、“一個(gè)”和“該”旨在同樣包括復(fù)數(shù)形式,除非上下文明確地另有所指。還將理解,當(dāng)在此說明書中使用時(shí),術(shù)語“包括”和/或“包含”指定了聲明的特性、整數(shù)、步驟、操作、元素和/或組件的存在,但是并不排除一個(gè)或多個(gè)其它特性、整數(shù)、步驟、操作、元素、組件和/或其組合的存在或增加。
[0071]下面權(quán)利要求中的對(duì)應(yīng)結(jié)構(gòu)、材料、操作以及所有裝置或步驟加功能元件的等同替換,旨在包括任何用于與在權(quán)利要求中具體指出的其它元件相組合地執(zhí)行該功能的結(jié)構(gòu)、材料或操作。出于示例和說明目的給出了對(duì)本發(fā)明實(shí)施例的描述,但所述描述并非旨在是窮舉的或是將本發(fā)明限于所公開的形式。在不偏離本發(fā)明的范圍和精神的情況下,對(duì)于所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來說許多修改和變化都將是顯而易見的。實(shí)施例的選擇和描述是為了最佳地解釋本發(fā)明的原理和實(shí)際應(yīng)用,并且當(dāng)適合于所構(gòu)想的特定使用時(shí),使得所屬【技術(shù)領(lǐng)域】的其它普通技術(shù)人員能夠理解本發(fā)明的具有各種修改的各種實(shí)施例。[0072]此外,所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0073]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者上述的任意合適的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0074]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括例如在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括一但不限于一電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0075]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0076]可以以一種或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明的各個(gè)方面的操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言一諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN) —連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0077]下面將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的各個(gè)方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0078]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)0[0079]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的過程。
[0080]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的不同實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
【權(quán)利要求】
1.一種保護(hù)啟用加密的計(jì)算系統(tǒng)中的控制向量的方法,所述方法包括: 驗(yàn)證傳遞到參數(shù)數(shù)據(jù)庫的參數(shù); 計(jì)算控制向量(CV)數(shù)據(jù)所需的長度; 根據(jù)所述計(jì)算的結(jié)果準(zhǔn)備可選塊; 將所述CV轉(zhuǎn)換為用于標(biāo)準(zhǔn)化密鑰塊的格式,同時(shí)將所轉(zhuǎn)換的CV復(fù)制到所述可選塊中;以及 更新所述標(biāo)準(zhǔn)化密鑰塊中的可選塊數(shù)據(jù)。
2.根據(jù)權(quán)利要求1的方法,其中所述驗(yàn)證包括: 將密鑰令牌定義為數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)包含所述CV和在加密上綁定到所述CV的密鑰控制信息,使得改變所述CV將更改所述密鑰控制信息;以及部分地準(zhǔn)備所述標(biāo)準(zhǔn)化密鑰塊。
3.根據(jù)權(quán)利要求2的方法,其中所述定義進(jìn)一步包括確認(rèn)所述密鑰令牌具有有效的版本和格式,確認(rèn)所述密鑰令牌包含所述密鑰和所述CV,以及確認(rèn)所述CV表示所述密鑰令牌可以導(dǎo)出。
4.根據(jù)權(quán)利要求2的方法,其中所述部分地準(zhǔn)備包括確認(rèn)所述密鑰塊具有用于添加新可選塊的空間和小于預(yù)定最大值的計(jì)數(shù)。
5.根據(jù)任一上述權(quán)利要求的方法,其中所述計(jì)算包括: 計(jì)算所述CV數(shù)據(jù)的所需長度; 計(jì)算子塊的所需長度。
6.根據(jù)權(quán)利要求5的方法,其中準(zhǔn)備所述可選塊包括: 準(zhǔn)備所述標(biāo)準(zhǔn)化密鑰塊的可選塊標(biāo)記和長度字段;以及 準(zhǔn)備專用信息標(biāo)識(shí)符、子塊標(biāo)識(shí)符和長度字段。
7.根據(jù)任一上述權(quán)利要求的方法,其中所述更新包括更新所述標(biāo)準(zhǔn)化密鑰塊的可選塊計(jì)數(shù)和整體長度字段。
8.一種包括處理電路的加密系統(tǒng),所述處理電路被配置為執(zhí)行根據(jù)任一上述權(quán)利要求的方法的所有步驟。
9.一種包括有形存儲(chǔ)介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,所述有形存儲(chǔ)介質(zhì)可由處理電路讀取并且其上存儲(chǔ)指令以便由所述處理電路執(zhí)行,以執(zhí)行根據(jù)權(quán)利要求1至7中的任一權(quán)利要求的方法。
【文檔編號(hào)】H04L9/14GK103563289SQ201280025794
【公開日】2014年2月5日 申請(qǐng)日期:2012年5月15日 優(yōu)先權(quán)日:2011年5月31日
【發(fā)明者】R·V·基斯利, T·W·阿諾德, C·D·弗雷爾 申請(qǐng)人:國際商業(yè)機(jī)器公司