防備密鑰竄改的制作方法
【專利摘要】本發(fā)明揭示了一種防備密鑰竄改的設備和方法。一種計算裝置可以包含密碼處理器,其經(jīng)配置以:寫入包含密鑰的第一部分的第一字;以及寫入各自包含所述密鑰的一部分的多個后續(xù)字。如果同一個字被寫入不止一次,則將所述密鑰復位并且不驗證。
【專利說明】
防備密鑰竄改
技術領域
[0001 ]本發(fā)明涉及一種防備密鑰竄改的設備和方法。
【背景技術】
[0002]密碼處理器可以是基于擴展語言為中央處理單元(CPU)執(zhí)行信息的計算密集型編碼和解碼的協(xié)處理器,或者可以是密碼引擎,它是一件單獨的硬件(例如加速器處理器),由專用軟件驅動程序運行以編碼和解碼信息。密碼處理器可以存儲用于加密和解密的密鑰。這個信息通常是只寫的,這意味著沒有哪個組件(例如軟件應用程序)可以讀取這個信息,即使寫入信息的組件也不可以讀取。
[0003]然而,攻擊者可能會試圖覆寫密鑰的一部分以便收集關于密鑰的信息。另外,攻擊者可能會試圖修改與密鑰相關聯(lián)的元數(shù)據(jù),其限定可以用密鑰進行什么操作、哪些執(zhí)行環(huán)境或過程可以使用密鑰、以及允許哪些域與密鑰一起使用。
[0004]令人遺憾的是,這些類型的攻擊可能對于利用密碼處理器的計算裝置有很大的破壞性,并且可能引起一些問題,例如高額費用、合同丟失、整個產(chǎn)品線撤銷、品牌價值降低等。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的方面可以涉及一種防備密鑰竄改的設備和方法。計算裝置可以包含密碼處理器,其經(jīng)配置以:寫入包含密鑰的第一部分的第一字;以及寫入各自包含密鑰的一部分的多個后續(xù)字。如果同一個字寫入不止一次,則密鑰被復位并且不驗證。
【附圖說明】
[0006]圖1是可在其中實踐本發(fā)明的方面的計算裝置的圖。
[0007]圖2是包含驗證或不驗證密鑰的密碼處理器的計算環(huán)境的實例。
[0008]圖3A是說明驗證或不驗證密鑰的方法的實例的流程圖。
[0009]圖3B是說明根據(jù)另一個實施例的驗證或不驗證密鑰的方法的實例的流程圖。
[0010]圖4說明驗證或不驗證密鑰的密鑰輸入狀態(tài)機過程。
【具體實施方式】
[0011]詞語“示范性”在本文中用于意味著“充當實例、例子或說明”。本文中描述為“示范性”或描述為“實例”的任何方面或實施例未必應被解釋為比其它方面或實施例優(yōu)選或有利。
[0012]如本文所使用,術語“計算系統(tǒng)或裝置”指代任何形式的可編程計算機裝置,包含但不限于膝上型計算機和桌上型計算機、平板計算機、智能電話、電視機、家用電器、蜂窩式電話、個人電視裝置、個人數(shù)據(jù)助理(PDA)、掌上型計算機、無線電子郵件接收器、具多媒體因特網(wǎng)功能的蜂窩式電話、全球定位系統(tǒng)(GPS)接收器、無線游戲控制器、交通工具(例如,汽車)內(nèi)的接收器、交互式游戲裝置、筆記本計算機、智能筆記本計算機、上網(wǎng)本、移動電視裝置或任何數(shù)據(jù)處理設備。
[0013]圖1中說明下文中將詳細地描述的其中可以實踐本發(fā)明的方面的實例計算裝置100,其可以用于驗證或不驗證密鑰。計算裝置100示出為包括可以經(jīng)由總線105電耦合(或可以按需要以其它方式通信)的硬件元件。硬件元件可以包含一或多個處理器110,包含(不限于)一或多個通用處理器和/或一或多個專用處理器(例如數(shù)字信號處理芯片、圖形加速處理器、密碼處理器等等);一或多個輸入裝置115(例如鍵盤、小鍵盤、觸摸屏、鼠標等);以及一或多個輸出裝置120,其包含至少顯示裝置121,并且可以進一步包含(不限于)揚聲器、打印機等等。
[0014]計算裝置100可進一步包含以下各項(和/或與以下各項通信):一或多個非暫時性存儲裝置125,所述非暫時性存儲裝置可包括(但不限于)本地及/或網(wǎng)絡可存取的存儲裝置,和/或可包含(但不限于)磁盤驅動器、驅動陣列、光學存儲裝置、例如隨機存取存儲器(“RAM”)和/或只讀存儲器(“ROM”)等固態(tài)存儲裝置,其可為可編程的、可快閃更新的等等。此類存儲裝置可經(jīng)配置以實施任何適當?shù)臄?shù)據(jù)存儲裝置,包含(但不限于)各種文件系統(tǒng)、數(shù)據(jù)庫結構等等。
[0015]計算裝置100還可包含通信子系統(tǒng)130,其可包含(不限于)調(diào)制解調(diào)器、網(wǎng)卡(無線或有線)、紅外通信裝置、無線通信裝置和/或芯片組(例如藍牙裝置、802.11裝置、W1-Fi裝置、WiMax裝置、蜂窩式通信裝置等)和/或類似物。通信子系統(tǒng)130可準許與網(wǎng)絡、其它計算機系統(tǒng)和/或本文中所描述的任何其它裝置交換數(shù)據(jù)。在許多實施例中,計算裝置100將進一步包括工作存儲器135,其可包含RAM或ROM裝置,如上文所描述。此外,計算裝置100可以包含系統(tǒng)存儲器管理單元(SMMU),這是存儲器參考所經(jīng)過的計算機硬件單元,并且可以用于執(zhí)行虛擬存儲器地址到物理地址的翻譯以便實施應用程序。計算裝置100還可包括展示為當前位于工作存儲器135內(nèi)的軟件元件,其包含操作系統(tǒng)140、應用程序145、裝置驅動器、可執(zhí)行庫和/或其它代碼。
[0016]僅舉例來說,相對于下文論述的方法描述的一或多個程序可以實施為可通過計算裝置(和/或計算裝置內(nèi)的處理器)執(zhí)行的代碼和/或指令;在一個方面中,于是,這樣的代碼和/或指令可以用于配置和/或調(diào)適通用計算機(例如計算裝置)以依據(jù)根據(jù)本發(fā)明的實施例的所描述的方法執(zhí)行一或多個操作。作為一個特定實例,如下文將更詳細地描述,密碼處理器可以實施本發(fā)明的實施例以驗證或不驗證密鑰。一組這些指令和/或代碼可存儲在非暫時性計算機可讀儲存媒體上。在一些情況下,存儲媒體可并入到例如計算裝置100等計算機裝置內(nèi)。在其它實施例中,存儲媒體可與計算機系統(tǒng)(例如,可裝卸式媒體,例如壓縮光盤)分開,及/或提供于安裝包中,使得存儲媒體可用以編程、配置及/或調(diào)適其上存儲有指令/代碼的通用計算機。這些指令可呈可由計算機化計算裝置100執(zhí)行的可執(zhí)行代碼形式,和/或可呈源和/或可安裝代碼的形式,所述源和/或可安裝代碼在由計算裝置100編譯和/或安裝于計算裝置100上后(例如,使用各種大體可用編譯程序、安裝程序、壓縮/解壓縮實用程序等中的任一者),隨后采用可執(zhí)行代碼的形式。
[0017]此外,尤其如圖1中所示,計算裝置100可以包含密碼處理器220,其可以用于驗證或不驗證密鑰以防備密鑰竄改,如下文中將更詳細地描述。密碼處理器220可以是基于擴展語言為中央處理單元(CPU)(例如,110)或其它處理器執(zhí)行信息的計算密集型編碼和解碼的協(xié)處理器,或者可以是密碼引擎,它是一件單獨的硬件(例如加速器處理器),由專用軟件驅動程序運行以編碼和解碼信息。
[0018]參看圖2,下文中將描述其中可以實踐本發(fā)明的方面的計算環(huán)境200的實例,其可通過包含密碼處理器220的計算裝置100實施以驗證或不驗證密鑰。密碼處理器220可以是基于擴展語言為CPU(或其它處理器)執(zhí)行信息的計算密集型編碼和解碼的協(xié)處理器,或者可以是密碼引擎,它是一件單獨的硬件(例如加速器處理器),由專用軟件驅動程序運行以編碼和解碼信息。在這個實例中,密碼處理器220是密碼引擎,并且下文中描述的實例將在通過密碼引擎實施的上下文中。然而,對于所屬領域的技術人員應當顯而易見的是,這些相同的實施方案可以類似地通過協(xié)處理器執(zhí)行。在這個實例實施方案中,控制密鑰以加密和解密數(shù)據(jù)的各種執(zhí)行環(huán)境密鑰所有者(EE1-EEN)202、204、206與各種執(zhí)行環(huán)境數(shù)據(jù)所有者(EE1-EEN)210、212、214合作操作。利用密鑰的執(zhí)行環(huán)境可以安全地傳送數(shù)據(jù)用于通過計算裝置輸入和輸出。具體來說,可以經(jīng)由密碼處理器220的密鑰表224中的密鑰225加密和解密數(shù)據(jù)。加密的或解密的數(shù)據(jù)可以經(jīng)由SMMU 133提供到輸入域240或輸出域250。實例輸入域240包含音頻數(shù)據(jù)242、高級別操作系統(tǒng)數(shù)據(jù)(HL0S)244和視頻數(shù)據(jù)246,而類似地,實例輸出域250包含音頻數(shù)據(jù)252、高級別操作系統(tǒng)數(shù)據(jù)(HL0S)254和視頻數(shù)據(jù)256。應了解,這些僅是實例域,并且可以利用許多不同類型的域(例如企業(yè)、調(diào)制解調(diào)器等)。此外,可以利用許多不同類型的執(zhí)行環(huán)境,先前所述的執(zhí)行環(huán)境只是實例。
[0019]作為一個實例,執(zhí)行環(huán)境I可以用于視頻數(shù)據(jù)并且可以包含EEl密鑰所有者202和EEl數(shù)據(jù)所有者I 210。用于數(shù)據(jù)所有者201的輸入視頻數(shù)據(jù)246可能需要通過密碼處理器220用與EEl密鑰所有者相關聯(lián)的密鑰表224中的密鑰225解密,從而使得它可以顯示在輸出域256中。在這個實例中,密碼處理器220可以包含密鑰輸入狀態(tài)機222(下文中將描述)和密鑰表224。密鑰表224可以包含密鑰(0-N)225和相關聯(lián)的使用規(guī)則(例如硬件使用規(guī)則227和軟件使用規(guī)則229)。硬件和軟件使用規(guī)則227和229可被稱為元數(shù)據(jù)230,其還限定可以利用的域。每個執(zhí)行環(huán)境(包含密鑰所有者和數(shù)據(jù)所有者)可在密鑰表224中具有指派的群組,其包含密鑰225和硬件和軟件使用規(guī)則227和229,所述使用規(guī)則另外限定與執(zhí)行環(huán)境相關聯(lián)的域。繼續(xù)此實例,視頻執(zhí)行環(huán)境(例如密鑰所有者202和數(shù)據(jù)所有者210)可以請求加密的視頻數(shù)據(jù)246通過密碼處理器220用視頻執(zhí)行環(huán)境的密鑰表224的相關聯(lián)密鑰225解密,從而使得視頻數(shù)據(jù)256可以輸出到輸出域250用于顯示。應了解,這只是密碼處理器220(可以用于加密或解密數(shù)據(jù))的操作的一個實例,并且許多不同類型的執(zhí)行環(huán)境、數(shù)據(jù)類型、域類型等可以與密碼處理器一起利用。
[0020]密碼處理器220的密鑰表224中的密鑰225通常需要通過執(zhí)行環(huán)境更新和驗證。舉例來說,執(zhí)行環(huán)境密鑰所有者202通常請求更新和驗證密鑰。在密鑰225經(jīng)過更新和驗證之前,執(zhí)行環(huán)境數(shù)據(jù)所有者210的數(shù)據(jù)無法加密或解密。然而,需要用安全的方式更新和驗證密鑰以防攻擊者獲得關于密鑰的數(shù)據(jù)。
[0021]根據(jù)本發(fā)明的一個實施例,密碼處理器220可經(jīng)配置以:寫入包含密鑰的第一部分的第一字;以及寫入各自包含密鑰的一部分的多個后續(xù)字;以及如果同一個字被寫入不止一次,并且,任選地如果字被亂序寫入,則密鑰被復位。并且,如果未寫入密鑰的部分,則密鑰無法驗證。此外,如果字被寫入到已經(jīng)有效的密鑰,則密鑰被復位并且相關聯(lián)元數(shù)據(jù)被失效。舉例來說,執(zhí)行環(huán)境密鑰所有者202可能請求經(jīng)過更新的密鑰或新密鑰。如果同一個字未被寫入不止一次,并且,任選地字未被亂序寫入,則密碼處理器220執(zhí)行密鑰驗證過程。作為密鑰驗證過程的一部分,密碼處理器220確定與密鑰相關聯(lián)的元數(shù)據(jù)230是否滿足系統(tǒng)特權,并且如果是,則驗證密鑰。如先前已描述,相關聯(lián)的元數(shù)據(jù)230可以包含使用規(guī)則,例如硬件使用規(guī)則227和軟件使用規(guī)則229。如果密鑰經(jīng)過驗證,則密鑰225和相關聯(lián)的元數(shù)據(jù)230被寫入到密碼處理器220的密鑰表224。密鑰225接著可被密碼處理器220用來加密和解密來自數(shù)據(jù)所有者210的數(shù)據(jù)以用于特定域中。作為一實例,如果相關聯(lián)的元數(shù)據(jù)230(硬件和軟件使用規(guī)則)滿足系統(tǒng)特權(例如對于視頻處理),則密鑰225經(jīng)過驗證并且連同硬件和軟件使用規(guī)則227和229被寫入到密鑰表224,使得執(zhí)行環(huán)境數(shù)據(jù)所有者210可以利用密碼處理器220以利用視頻數(shù)據(jù)進行加密和解密。作為一實例,視頻數(shù)據(jù)246可以被解密并且輸出到輸出域250用于在顯示器上查看。
[0022]另外參看圖3A,圖3A是說明根據(jù)本發(fā)明的一個實施例的驗證或不驗證密鑰的方法過程300的實例的流程圖。在框302處,寫入包含密鑰的第一部分的第一字。在框304處,寫入各自包含密鑰的一部分的多個后續(xù)字。接下來,在框306處,過程300確定是否同一個字寫入不止一次,或者任選地,是否字被亂序寫入。如果是,則在框310處,將密鑰復位(S卩,不驗證)。如果不是,則過程300進行到密鑰驗證。在密鑰驗證期間,密碼處理器220確定與密鑰相關聯(lián)的元數(shù)據(jù)是否滿足系統(tǒng)特權,并且如果是的話則驗證密鑰。如先前已描述的,相關聯(lián)元數(shù)據(jù)可以包含使用規(guī)則,例如硬件使用規(guī)則和軟件使用規(guī)則。如果密鑰經(jīng)過驗證,則將密鑰225和相關聯(lián)的元數(shù)據(jù)230寫入到密碼處理器220的密鑰表224。以此方式,確保密鑰225和其相關聯(lián)的元數(shù)據(jù)230中的每個位被寫入一次,并且只寫入一次,其中,如果不是所有位都符合所述準則,則密鑰225無法使用。假設驗證,密碼處理器220接著可利用密鑰225加密和解密來自數(shù)據(jù)所有者210的數(shù)據(jù)供與特定域一起使用。
[0023]另外參照圖3B,圖3B是說明根據(jù)本發(fā)明的一個實施例的驗證或不驗證密鑰的方法過程320的另一實例的流程圖。在框322處,請求對密鑰225或元數(shù)據(jù)230的寫入。在決策框324,過程320確定所述字是否正被寫入已經(jīng)有效的密鑰,或者字是否已經(jīng)寫入,并且如果是,則將密鑰復位(框326)并且過程320再次開始(框322)。另一方面,如果確定字不是正被寫入到已經(jīng)有效的密鑰,或者字尚未寫入,則不復位密鑰,并且寫入字(框328)。接下來,在決策框330,過程320確定是否所有字已經(jīng)寫入,并且如果是,則所述過程進行到密鑰驗證(框332)。如果并未寫入所有字,則過程320繼續(xù)返回至框322。
[0024]另外參照圖4,圖4說明根據(jù)本發(fā)明的一個實施例的驗證或不驗證密鑰的密鑰輸入狀態(tài)機過程400。在一個實施例中,密碼處理器220實施的密鑰輸入狀態(tài)機222可以執(zhí)行密鑰輸入狀態(tài)機過程400。作為一實例,執(zhí)行環(huán)境密鑰所有者202可以請求經(jīng)過更新的密鑰請求或新密鑰請求。在圖4中可以看出,密鑰輸入狀態(tài)機過程開始于步驟402,其中狀態(tài)是空的并且狀態(tài)值設置成0(V = 0)。接下來,寫入密鑰的第一字部分(Wr(addr=l))并且過程400移動到狀態(tài)I 404,其中值設置成1(V= I)。然而,如果密鑰的第一字部分未被正確地寫入(Wr(addr! = I)),則將密鑰復位并且過程400移動返回至步驟402。接下來,寫入密鑰的第二字部分(ffr(addr = 2),并且過程400移動到狀態(tài)2 406,其中狀態(tài)值設置成2(V = 2)。然而,如果密鑰的第二字部分未被正確地寫入(ffr(addr! =2)),則將密鑰復位并且過程400移動返回至步驟402。類似地,接下來,寫入密鑰的第三字部分(ffr(addr = 3),并且過程400移動到狀態(tài)3 408,其中狀態(tài)值設置成3(V = 3)。然而,如果密鑰的第三字部分未被正確地寫入(Wr(addr! =3)),則將密鑰復位并且過程400移動返回至步驟402。這個過程重復到狀態(tài)10420,在這些點檢驗域。
[0025]在狀態(tài)420,檢驗域。如先前已描述,在這個密鑰驗證過程期間,密碼處理器220確定與密鑰相關聯(lián)的元數(shù)據(jù)(例如硬件和軟件使用規(guī)則)是否滿足系統(tǒng)特權和域規(guī)則。如果系統(tǒng)特權經(jīng)過批準,則在步驟430驗證密鑰。如果系統(tǒng)特權未經(jīng)過批準,則將密鑰復位并且過程400移動返回至步驟402(例如見線431)。并且,如果嘗試修改已經(jīng)有效的密鑰(430),例如,嘗試寫入有效密鑰,則密鑰變成無效,并且整個密鑰需要重寫(例如,見線432)。應了解,可以利用任何類型的大小和任何類型的算法的任何類型的密鑰(例如DES、F8、F9、AES、3DES、HMAC等)。
[0026]通過利用先前描述的密鑰輸入狀態(tài)機過程400驗證密鑰和其元數(shù)據(jù)確保了用正確的順序寫入整個密鑰信息。任何亂序寫入或密鑰的部分寫入不止一次,都會導致狀態(tài)機過程返回到開始狀態(tài)402 (V = O)(例如復位和無效)。
[0027]然而,應了解,在一些實施例中,亂序類型的強制執(zhí)行并不是必需的。在這個類型的實施例中,并不監(jiān)視寫入順序。實情為,僅有的要求可能是一次并且僅一次的寫入操作。舉例來說,密碼處理器220寫入包含密鑰的第一部分的第一字,并且寫入各自包含密鑰的一部分的多個后續(xù)字。密碼處理器220接著確定同一個字是否已寫入不止一次,并且如果是,則將密鑰復位(即,不驗證)。如果不,則發(fā)生密鑰驗證。應了解,在這個實例中,并不監(jiān)視寫入順序。在密鑰驗證期間,密碼處理器220確定與密鑰相關聯(lián)的元數(shù)據(jù)是否滿足系統(tǒng)特權,并且如果是的話則驗證密鑰。應了解,圖3A、圖3B和圖4的先前描述的過程以及多種多樣的類似或不同的過程可以通過密碼處理器220實施。通過利用先前描述的方法,如果攻擊者嘗試試圖在密鑰數(shù)據(jù)正在寫入的同時改變密鑰數(shù)據(jù),則這樣會導致密鑰輸入狀態(tài)機過程400復位密鑰(狀態(tài)402)。此外,一旦實現(xiàn)寫入序列,則密鑰和元數(shù)據(jù)通過驗證過程,其中檢驗域(步驟420),并且如果域準確,只有這時,才驗證密鑰并且作為密鑰225與相關聯(lián)的元數(shù)據(jù)使用規(guī)則230—起寫入到密碼處理器220的密鑰表224。否則,并不驗證和復位密鑰。因此,任何修改有效的密鑰信息或其元數(shù)據(jù)的嘗試都會導致密鑰失效。
[0028]應了解,可以防止各種類型的攻擊。舉例來說,一種可以防止的攻擊類型是在密鑰正被寫入但尚未驗證的同時(例如如圖4的驗證步驟中所見)修改密鑰的嘗試。這種類型的攻擊可以通過強制執(zhí)行這樣的規(guī)則來防止:其中密碼處理器220確定是否同一個字已寫入不止一次,并且如果是,則復位密鑰(即,不驗證)??梢苑乐沟牧硪活愋偷墓羰菄L試修改已經(jīng)有效的密鑰。如先前已描述,如果密碼處理器200確定已嘗試修改已經(jīng)有效的密鑰,則密鑰變成無效并且被復位而且需要重寫(例如如通過圖4的步驟430和線432所見的)。
[0029]應了解,這些類型的強制執(zhí)行規(guī)則提供了密鑰225與其元數(shù)據(jù)230之間的緊密聯(lián)系。以此方式,整體更新密鑰225和其相關聯(lián)的元數(shù)據(jù)230以實現(xiàn)額外的安全性。這些步驟使得攻擊者很難收集關于密鑰的信息。另外,這些步驟使得攻擊者很難修改與密鑰相關聯(lián)的元數(shù)據(jù)。
[0030]因此,當密碼處理器220確定密鑰的部分已經(jīng)按順序寫入并且密鑰的部分并未寫入不止一次,并且密碼處理器220確定與密鑰相關聯(lián)的元數(shù)據(jù)(例如硬件和軟件使用規(guī)則)滿足系統(tǒng)特權時,驗證密鑰。但是,如先前描述,亂序類型的強制執(zhí)行是任選的。此外,如先前已描述,相關聯(lián)的元數(shù)據(jù)230可以包含使用規(guī)則,例如硬件使用規(guī)則227和軟件使用規(guī)則229。如果密鑰經(jīng)過驗證,則將密鑰225和相關聯(lián)的元數(shù)據(jù)230寫入到密碼處理器220的密鑰表224。密碼處理器220接著可利用密鑰225加密和解密來自數(shù)據(jù)所有者210的數(shù)據(jù)以用于特定域中。作為一實例,如果相關聯(lián)的元數(shù)據(jù)230(硬件和軟件使用規(guī)則)滿足系統(tǒng)特權(例如對于視頻處理),則密鑰225經(jīng)過驗證并且連同硬件和軟件使用規(guī)則227和229被寫入到密鑰表224,使得執(zhí)行環(huán)境數(shù)據(jù)所有者210可以利用密碼處理器220以利用視頻數(shù)據(jù)進行加密和解密。作為一實例,視頻數(shù)據(jù)246可以被解密并且輸出到輸出域250用于在顯示器上查看。
[0031]應了解,先前描述的本發(fā)明的各方面可以結合由裝置(例如,計算裝置100)的處理器(例如,密碼處理器220)執(zhí)行指令而實施,如先前所描述。具體來說,裝置的電路(包含但不限于處理器)可以在程序、例程或指令執(zhí)行的控制下操作以執(zhí)行根據(jù)本發(fā)明的實施例的方法或過程(例如圖3-4的過程和功能)。例如,此類程序可以在固件或軟件(例如,存儲于存儲器和/或其它位置中)中實施且可由處理器和/或裝置的其它電路實施。此外,應了解,術語處理器、微處理器、電路、控制器等是指能夠執(zhí)行邏輯、命令、指令、軟件、固件、功能性等的任何類型的邏輯或電路。
[0032]應了解,當裝置為移動或無線裝置時其可經(jīng)由通過無線網(wǎng)絡的一或多個無線通信鏈路通信,所述無線通信鏈路基于或以其它方式支持任何合適的無線通信技術。舉例來說,在一些方面,無線裝置及其它裝置可以與包含無線網(wǎng)絡的網(wǎng)絡相關聯(lián)。在一些方面中,網(wǎng)絡可包括人體局域網(wǎng)絡或個人局域網(wǎng)絡(例如,超寬帶網(wǎng)絡)。在一些方面,網(wǎng)絡可以包括局域網(wǎng)或廣域網(wǎng)。無線裝置可支持或以其它方式使用多種無線通信技術、協(xié)議或標準中的一或多個,例如,3G、LTE、高級 LTE、4G、CDMA、TDMA、OFDM、OFDMA、WiMAX 及 WiFi。類似地,無線裝置可以支持或以其它方式使用多種對應調(diào)制或多路復用方案中的一或多者。無線裝置因此可以包含適當組件(例如,空中接口)以使用上文或其它無線通信技術建立一或多個無線通信鏈路及經(jīng)由一或多個無線通信鏈路來通信。舉例來說,裝置可包括具有相關聯(lián)的發(fā)射器和接收器組件(例如,發(fā)射器和接收器)的無線收發(fā)器,其可包含便于無線介質(zhì)上的通信的各種組件(例如,信號產(chǎn)生器和信號處理器)。眾所周知,移動無線裝置因此可以無線方式與其它移動裝置、蜂窩電話、其它有線及無線計算機、因特網(wǎng)網(wǎng)站等通信。
[0033]本文中的教示可并入到多種設備(例如,裝置)中(例如,在多種設備內(nèi)實施或通過多種設備執(zhí)行)。舉例來說,本文中教示的一或多個方面可并入到電話(例如蜂窩電話)、個人數(shù)據(jù)助理(“PDA”)、平板計算機、移動計算機、膝上型計算機、娛樂裝置(例如音樂或視頻裝置)、頭戴耳機(例如頭戴式耳機、耳機等)、醫(yī)療裝置(例如生物計量傳感器、心率監(jiān)測儀、步數(shù)計、EKG裝置等)、用戶I/O裝置、計算機、有線計算機、固定計算機、桌上型計算機、服務器、銷售點裝置、機頂盒或任何其它合適的裝置中。這些裝置可具有不同的功率和數(shù)據(jù)要求。
[0034]在一些方面中,無線裝置可包括用于通信系統(tǒng)的接入裝置(例如,W1-Fi接入點)。此類接入裝置可提供(例如)經(jīng)由有線或無線通信鏈路到另一網(wǎng)絡(例如,廣域網(wǎng),例如,因特網(wǎng)或蜂窩網(wǎng)絡)的連接性。因此,接入裝置可使得另一裝置(例如,WiFi站)能夠接入另一網(wǎng)絡或某一其它功能性。
[0035]所屬領域的技術人員將理解,可以使用多種不同技術和技藝中的任一者來表示信息和信號。舉例來說,可通過電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合來表示在整個上文描述中可能參考的數(shù)據(jù)、指令、命令、信息、信號、位、符號和碼片。
[0036]所屬領域的技術人員將進一步了解,結合本文所揭示的實施例描述的各種說明性邏輯塊、模塊、引擎、電路及算法步驟可實施為電子硬件、計算機軟件或兩者的組合。為清晰地說明硬件與軟件的此可互換性,以上已大體就其功能性來描述了各種說明性組件、塊、模塊、電路和步驟。此功能性是實施為硬件還是軟件取決于特定應用及施加于整個系統(tǒng)的設計約束。熟練的技術人員可針對每一特定應用以不同方式來實施所描述的功能性,但這樣的實施方案決策不應被解釋為會引起脫離本發(fā)明的范圍。
[0037]可使用通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或經(jīng)設計以執(zhí)行本文所描述的功能的其它可編程邏輯裝置、離散門或晶體管邏輯、離散硬件組件或其任何組合來實施或執(zhí)行結合本文中所揭示的實施例而描述的各種說明性邏輯塊、模塊和電路。通用處理器可為微處理器,但在替代方案中,處理器可為任何常規(guī)的處理器、控制器、微控制器或狀態(tài)機。處理器還可實施為計算裝置的組合,例如,DSP與微處理器的組合、多個微處理器、一或多個微處理器結合DSP核心,或任何其它此類配置。
[0038]結合本文所揭示的實施例而描述的方法或算法的步驟可直接體現(xiàn)在硬件、由處理器執(zhí)行的軟件模塊或所述兩者的組合中。軟件模塊可駐留在RAM存儲器、快閃存儲器、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可裝卸磁盤、⑶-ROM,或此項技術中已知的任何其它形式的存儲媒體中。示范性存儲媒體耦合到處理器,使得處理器可從存儲媒體讀取信息和將信息寫入到存儲媒體。在替代方案中,存儲媒體可與處理器一體形成。處理器和存儲媒體可駐留于ASIC中。ASIC可以駐留于用戶終端中。在替代方案中,處理器及存儲媒體可作為離散組件駐留于用戶終端中。
[0039]在一或多個示范性實施例中,所述功能可以在硬件、軟件、固件或其任何組合中實施。如果在軟件中實施為計算機程序產(chǎn)品,那么可將功能作為一或多個指令或代碼存儲于計算機可讀媒體上或經(jīng)由計算機可讀媒體予以傳輸。計算機可讀媒體包含計算機存儲媒體及通信媒體兩者,通信媒體包含促進將計算機程序從一處傳送到另一處的任何媒體。存儲媒體可以是可由計算機存取的任何可用媒體。舉例來說且非限制,此類計算機可讀媒體可包括RAM、R0M、EEPR0M、⑶-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置,或可用于攜載或存儲呈指令或數(shù)據(jù)結構的形式的所要程序代碼且可由計算機存取的任何其它媒體。并且,任何連接被恰當?shù)胤Q作計算機可讀媒體。舉例來說,如果使用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線(DSL)或如紅外線、無線電以及微波的無線技術從網(wǎng)站、服務器或其它遠程源傳輸軟件,那么同軸電纜、光纖電纜、雙絞線、DSL或如紅外線、無線電以及微波的無線技術包含于媒體的定義中。如本文中所使用,磁盤和光盤包含壓縮光盤(CD)、激光光盤、光學光盤、數(shù)字多功能光盤(DVD)、軟性磁盤和藍光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤利用激光以光學方式再現(xiàn)數(shù)據(jù)。以上各項的組合也應包含在計算機可讀媒體的范圍內(nèi)。
[0040]提供所揭示實施例的先前描述以使得所屬領域的任何技術人員能夠制作或使用本發(fā)明。所屬領域的技術人員將容易地了解對這些實施例的各種修改,并且可以在不脫離本發(fā)明的精神或范圍的情況下將本文所定義的一般原理應用到其它實施例中。因此,本發(fā)明并不既定限于本文中所展示的實施例,而應符合與本文中所揭示的原理和新穎特征相一致的最廣泛范圍。
【主權項】
1.一種計算裝置,其包括: 密碼處理器,其經(jīng)配置以: 寫入包含密鑰的第一部分的第一字;以及 寫入各自包含所述密鑰的一部分的多個后續(xù)字; 其中,如果同一個字被寫入不止一次,則所述密鑰被復位。2.根據(jù)權利要求1所述的計算裝置,其中,如果字被亂序寫入,則所述密鑰被復位。3.根據(jù)權利要求1所述的計算裝置,其中如果字被寫入到已經(jīng)有效的密鑰,則所述密鑰被復位并且相關聯(lián)的元數(shù)據(jù)被失效。4.根據(jù)權利要求2所述的計算裝置,其中,如果同一個字未被寫入不止一次,并且字未被亂序寫入,則所述密碼處理器執(zhí)行密鑰驗證過程。5.根據(jù)權利要求4所述的計算裝置,其中,在所述密鑰驗證過程中,所述密碼處理器確定與所述密鑰相關聯(lián)的元數(shù)據(jù)是否滿足系統(tǒng)特權,并且如果是的話,則驗證所述密鑰。6.根據(jù)權利要求5所述的計算裝置,其中,所述相關聯(lián)的元數(shù)據(jù)包含使用規(guī)則。7.根據(jù)權利要求6所述的計算裝置,其中,所述使用規(guī)則包含硬件使用規(guī)則和軟件使用規(guī)則。8.根據(jù)權利要求5所述的計算裝置,其中,如果所述密鑰經(jīng)過驗證,則所述密鑰和所述相關聯(lián)的元數(shù)據(jù)被寫入到密鑰表。9.根據(jù)權利要求1所述的計算裝置,其中,所述密碼處理器實施密鑰輸入狀態(tài)機以寫入所述多個字。10.一種驗證密鑰的方法,其包括: 寫入包含密鑰的第一部分的第一字;以及 寫入各自包含所述密鑰的一部分的多個后續(xù)字; 其中,如果同一個字被寫入不止一次,則將所述密鑰復位。11.根據(jù)權利要求10所述的方法,其中,如果字被亂序寫入,則將所述密鑰復位。12.根據(jù)權利要求10所述的方法,其中如果字被寫入到已經(jīng)有效的密鑰,則將所述密鑰復位并且使相關聯(lián)的元數(shù)據(jù)失效。13.根據(jù)權利要求11所述的方法,其中,如果同一個字未被寫入不止一次,并且字未被亂序寫入,則所述方法進一步包括執(zhí)行密鑰驗證過程。14.根據(jù)權利要求13所述的方法,其中,所述密鑰驗證過程進一步包括確定與所述密鑰相關聯(lián)的元數(shù)據(jù)是否滿足系統(tǒng)特權,并且如果是的話,則驗證所述密鑰。15.根據(jù)權利要求14所述的方法,其中,所述相關聯(lián)的元數(shù)據(jù)包含使用規(guī)則。16.根據(jù)權利要求15所述的方法,其中,所述使用規(guī)則包含硬件使用規(guī)則和軟件使用規(guī)則。17.根據(jù)權利要求14所述的方法,其中,如果所述密鑰經(jīng)過驗證,則所述方法進一步包括將所述密鑰和所述相關聯(lián)的元數(shù)據(jù)寫入到密鑰表。18.—種包含代碼的非暫時性計算機可讀媒體,所述代碼在由密碼處理器執(zhí)行時致使所述密碼處理器: 寫入包含密鑰的第一部分的第一字;以及 寫入各自包含所述密鑰的一部分的多個后續(xù)字; 其中,如果同一個字被寫入不止一次,則所述密鑰被復位。19.根據(jù)權利要求18所述的計算機可讀媒體,其中,如果字被亂序寫入,則所述密鑰被復位。20.根據(jù)權利要求19所述的計算機可讀媒體,其中,如果同一個字未被寫入不止一次,并且字未被亂序寫入,則所述計算機可讀媒體進一步包括執(zhí)行密鑰驗證過程的代碼。21.根據(jù)權利要求20所述的計算機可讀媒體,其中,所述密鑰驗證過程進一步包括確定與所述密鑰相關聯(lián)的元數(shù)據(jù)是否滿足系統(tǒng)特權的代碼,并且如果是,則驗證所述密鑰。22.根據(jù)權利要求21所述的計算機可讀媒體,其中,所述相關聯(lián)的元數(shù)據(jù)包含使用規(guī)則。23.根據(jù)權利要求22所述的計算機可讀媒體,其中,所述使用規(guī)則包含硬件使用規(guī)則和軟件使用規(guī)則。24.根據(jù)權利要求21所述的計算機可讀媒體,其中,如果所述密鑰經(jīng)過驗證,則所述計算機可讀媒體進一步包括將所述密鑰和所述相關聯(lián)的元數(shù)據(jù)寫入到密鑰表的代碼。25.—種計算裝置,其包括: 用于寫入包含密鑰的第一部分的第一字的裝置;以及 用于寫入各自包含所述密鑰的一部分的多個后續(xù)字的裝置; 其中,如果同一個字被寫入不止一次,則所述密鑰被復位。26.根據(jù)權利要求25所述的計算裝置,其中,如果字被亂序寫入,則所述密鑰被復位。27.根據(jù)權利要求26所述的計算裝置,其進一步包括用于如果同一個字未被寫入不止一次并且字未被亂序寫入則執(zhí)行密鑰驗證過程的裝置。28.根據(jù)權利要求27所述的計算裝置,其進一步包括用于確定與所述密鑰相關聯(lián)的元數(shù)據(jù)是否滿足系統(tǒng)特權并且如果是的話則驗證所述密鑰的裝置。29.根據(jù)權利要求28所述的計算裝置,其中,所述相關聯(lián)的元數(shù)據(jù)包含使用規(guī)則。30.根據(jù)權利要求29所述的計算裝置,其中,所述使用規(guī)則包含硬件使用規(guī)則和軟件使用規(guī)則。
【文檔編號】G06F21/79GK106062772SQ201580011099
【公開日】2016年10月26日
【申請日】2015年2月27日 公開號201580011099.8, CN 106062772 A, CN 106062772A, CN 201580011099, CN-A-106062772, CN106062772 A, CN106062772A, CN201580011099, CN201580011099.8, PCT/2015/18173, PCT/US/15/018173, PCT/US/15/18173, PCT/US/2015/018173, PCT/US/2015/18173, PCT/US15/018173, PCT/US15/18173, PCT/US15018173, PCT/US1518173, PCT/US2015/018173, PCT/US2015/18173, PCT/US2015018173, PCT/US201518173
【發(fā)明人】羅恩·凱達爾
【申請人】高通股份有限公司