亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

使用公鑰和會話密鑰的認證的制作方法

文檔序號:10654809閱讀:286來源:國知局
使用公鑰和會話密鑰的認證的制作方法
【專利摘要】一種用于認證數(shù)據(jù)的方法,包括:將公鑰和會話密鑰ID的代表的多個組合存儲(302,304)到非易失性存儲器中。輸入(402)有效載入以及附隨公鑰、會話密鑰ID、和有效載入的簽名。簽名是有效載入和一密鑰對中的私鑰的函數(shù)(118),該密鑰對包括附隨公鑰和私鑰。根據(jù)附隨公鑰和會話密鑰ID以及被存儲在非易失性存儲器中的組合,并且根據(jù)簽名和有效載入,確定(406,410,418,420)有效載入的可靠性。響應于確定該有效載入是可靠的,處理(424)有效載入,以及響應于確定該有效載入不是可靠的,禁止(422)有效載入的處理。
【專利說明】
使用公鑰和會話密鑰的認證
技術領域
[0001]本申請公開的內容大體涉及數(shù)據(jù)認證。
【背景技術】
[0002]認證處理通常是數(shù)據(jù)的接收者藉以確定所接收的數(shù)據(jù)是否來自可信源的一個過程。要被認證的數(shù)據(jù)可以是例如可執(zhí)行程序、用于可編程邏輯的配置數(shù)據(jù)、電子郵件消息或應用程序數(shù)據(jù)。
[0003]—種用于認證的方法依賴于公鑰-私鑰對。發(fā)送者使用密鑰對中的發(fā)送者的私鑰將數(shù)據(jù)進行簽名,從而形成對該數(shù)據(jù)的簽名。接收者可以使用密鑰對中的發(fā)送者的公鑰和所接收的數(shù)據(jù)來確定隨數(shù)據(jù)發(fā)送的簽名是否為該發(fā)送者的簽名。如果簽名如預期的那樣對應于所接收的數(shù)據(jù),則所接收的數(shù)據(jù)被認證。否則,所接收的數(shù)據(jù)可能是從不可靠的源發(fā)送而來,或者可能已經(jīng)被篡改。
[0004]被接收設備利用來認證輸入數(shù)據(jù)的公鑰典型地被存儲在設備的非易失性存儲器中。某些實現(xiàn)方式提供了撤消公鑰的能力。撤銷公鑰使得該密鑰在以后使用時失效。在大多數(shù)情形下,當當前的公鑰被撤銷時,可以建立新的公鑰。
[0005]快閃存儲器常常被使用來存儲公鑰,因為它是非易失性的,并且可以被重新編程。然而,對于某些應用,快閃存儲器可能是不適用的。例如,現(xiàn)場可編程門陣列(FPGA)是通過使用SRAM技術制造而成的。把快閃存儲器結合到基于SRAM的器件中,在技術上具有挑戰(zhàn)性并且成本過高。因此,有時使用電熔絲(e-fuses)來存儲公鑰。然而,相對于由電熔絲的狀態(tài)表示的少量信息來說,電熔絲占用了較大的面積。所以,希望有一種成本效益好的用于存儲和撤銷公鑰的系統(tǒng)。

【發(fā)明內容】

[0006]本申請公開了一種認證數(shù)據(jù)的方法。該方法包括:將公鑰和會話密鑰識別號(IDs)的代表的多個組合存儲在非易失性存儲器中。輸入有效載入(payload)和附隨公鑰、會話密鑰ID、以及有用負荷的簽名。簽名是有效載入和密鑰對中的私鑰的函數(shù),其中密鑰對包括附隨公鑰和私鑰。該方法根據(jù)附隨公鑰和會話密鑰ID以及被存儲在非易失性存儲器中多個組合,以及根據(jù)簽名和有效載入,確定有效載入是否可靠。響應于確定有效載入是可靠的,處理所述有效載入。響應于確定有效載入不是可靠的,禁止處理所述有效載入。
[0007]本申請還描述了一種認證系統(tǒng)。該系統(tǒng)包括非易失性存儲裝置和處理器。非易失性存儲裝置可被配置為存儲公鑰和會話密鑰ID的代表的多個組合。處理器被耦接到非易失性存儲裝置,處理器可配置成輸入有效載入和附隨公鑰、會話密鑰ID和有效載入的簽名。簽名是有效載入和一密鑰對中的私鑰的函數(shù),該密鑰對包括附隨公鑰和私鑰。處理器還被配置成根據(jù)附隨公鑰和會話密鑰ID及被存儲在非易失性存儲器中的多個組合,以及根據(jù)簽名和有效載入,確定有效載入是否可靠。響應于確定有效載入是可靠的,處理器處理所述有效載入。響應于確定有效載入不是可靠的,處理器禁止處理所述有效載入。
[0008]通過考慮下面的詳細說明和權利要求將進一步認識到其它特性。
【附圖說明】
[0009]這些方法和系統(tǒng)的各種方面和特性通過查閱下面的詳細說明和參考附圖將變得更明白,其中:
[0010]圖1是流程圖,顯示了對于有效載入的認證信息的構建,并且顯示了為了能夠撤銷認證密鑰而進行的有效載入的認證;
[0011]圖2是顯示了某一系統(tǒng)的框圖,在該系統(tǒng)中,使用認證密鑰來控制系統(tǒng)的引導和/或配置;
[0012]圖3是用于初始地配置認證系統(tǒng)的過程的流程圖;
[0013]圖4是通過使用公鑰和會話密鑰ID來認證輸入有效載入的過程的流程圖;
[0014]圖5是撤銷公鑰或會話密鑰ID的過程的流程圖;以及
[0015]圖6是示例性的SOC架構,可以在該架構上使用在此描述的各種方法來實施系統(tǒng)。
【具體實施方式】
[0016]本申請的系統(tǒng)和方法提供了一種用于安全地管理認證密鑰、而同時增加在設備的壽命中可以使用的密鑰的數(shù)目的方法。該系統(tǒng)和方法使用公鑰、會話密鑰識別符(ID)、和有效載入簽名來認證有效載入。與會話密鑰ID相關聯(lián)的公鑰和會話密鑰的撤銷,只有在用已被認證的配置數(shù)據(jù)或程序代碼來引導系統(tǒng)之后才能被許可。撤銷密鑰也被稱為使得密鑰無效。
[0017]在一個實施方式中,會話密鑰是在引導或初始配置設備后被用來認證軟件或硬件載入的公鑰。被存儲在設備上的另一個公鑰(或根密鑰(root key))和會話密鑰ID可以用來認證初始引導程序或硬件配置以及伴隨的會話密鑰。在設備被配置或引導后,可以通過使用會話密鑰來認證隨后載入的軟件或硬件配置。這使得根密鑰的使用最小化。從下面公開的內容可以明顯地看出,用于撤銷會話密鑰的方法提供了管理會話密鑰的使用的靈活性。
[0018]該系統(tǒng)具有非易失性存儲裝置,用于存儲公鑰和會話密鑰ID的代表(representat1n)的多種組合。該代表可以是實際的公鑰和會話密鑰ID的數(shù)值的二進制格式,或可以是公鑰和會話密鑰ID的散列(hash)數(shù)值的二進制格式。為了易于說明,當涉及公鑰和會話密鑰ID的代表時,可以使用公鑰和會話密鑰ID。
[0019]輸入到系統(tǒng)的有效載入伴隨有公鑰、會話密鑰ID和有效載入的簽名。簽名是有效載入和密鑰對的私鑰的函數(shù),其中密鑰對包括附隨公鑰與私鑰。所述系統(tǒng)包括處理器,該處理器可以確定有效載入是否為可靠的。有效載入的可靠性不僅僅是根據(jù)有效載入的簽名而被確定,而且也是根據(jù)附隨公鑰和會話密鑰ID以及被存儲在非易失性存儲器中的公鑰和會話密鑰ID的代表的多個組合而被確定的。
[0020]如果有效載入是可靠的,則處理器允許有效載入被處理。如果有效載入不是可靠的,則處理器停用有效載入的進一步的處理。在示例的應用中,有效載入的處理可能必須得用包含在有效載入中的程序代碼來引導程序,或者必須得配置諸如存在于片上系統(tǒng)(SOC)中的可編程邏輯。
[0021]圖1是流程圖,顯示了對于有效載入的認證信息的構建,并且顯示了為了能夠撤銷認證密鑰而進行的有效載入的認證。在示例的應用中,有效載入例如可以是用于處理器的引導程序或用于可編程邏輯的配置數(shù)據(jù)。流程圖顯示兩個通用階段,認證信息的構建和通過使用認證信息對有效載入的認證。認證信息的構建用括號102標記,而認證用括號104標記。
[0022]提供給系統(tǒng)的有效載入106具有附隨公鑰Pu108和會話密鑰ID 110。有效載入可包括對應于會話密鑰ID 110的會話密鑰。有效載入被輸入到散列函數(shù)112,散列函數(shù)112根據(jù)有效載入計算散列值114。在替換的實施方案中,公鑰108和會話密鑰ID 110均可被輸入到散列函數(shù)中。在示例性實施方案中,散列函數(shù)可以是基于SHA的函數(shù)。散列值114由加密函數(shù)118用私鑰Pr 116進行加密,從而形成簽名120。簽名120被添加到伴隨有效載入106的信息中。在示例性應用中,有效載入106、公鑰108、會話密鑰ID 110和簽名120可被格式化為在系統(tǒng)的安全引導中要使用的配置文件。
[0023]通過輸入有效載入106和附隨公鑰108、會話密鑰ID110、和簽名120的系統(tǒng)可以執(zhí)行有效載入的認證。該系統(tǒng)包括非易失性存儲器132,用于存儲公鑰134和會話密鑰ID 136的代表。在一個實施方案中,可以存儲公鑰的散列值,以便減低存儲器要求。例如,應用于2048位的公鑰的散列函數(shù)所得到的結果可以是256位。在另一個實施方案中,公鑰可以不是散列的。非易失性存儲器還包括用于對公鑰的密鑰狀態(tài)的存儲。每個公鑰的密鑰狀態(tài)均可以用與該公鑰相關聯(lián)的有效比特138指示。公鑰134、會話密鑰ID 136和有效比特138例如可以被存儲在電熔絲中。
[0024]在用非易失性存儲器存儲公鑰的散列值的實施方案中,附隨于輸入的有效載入106的公鑰108被輸入至散列函數(shù)140,以生成散列值。比較函數(shù)144將散列值142與在非易失性存儲器中的公鑰134的散列值進行比較。響應于散列值不匹配于任何被散列化的公鑰134,比較函數(shù)可以指明不可靠的有效載入,并且系統(tǒng)可以用鎖定(lock down)函數(shù)146禁止有效載入106的進一步處理。例如,處理器可以通過中止系統(tǒng)的引導或中止配置可編程邏輯來鎖定系統(tǒng)。這種指明可以是借助于被存儲在寄存器或存儲器中的信號或數(shù)值的狀態(tài)。
[0025]在另一個實施方案中,會話密鑰ID136和公鑰34之一的每個組合可以是單個散列值。在這個實施方案中,附隨于有效載入106的公鑰108和會話密鑰ID 110均被輸入到散列函數(shù)140,并且比較函數(shù)144將最終得到的散列值與在非易失性存儲器中的散列的公鑰與會話密鑰ID的組合的數(shù)值進行比較。
[0026]如果比較函數(shù)144發(fā)現(xiàn)數(shù)據(jù)匹配,則有效函數(shù)148確定與匹配的散列公鑰(或替換地,匹配散列的公鑰和會話密鑰ID的組合,或者匹配非散列公鑰)相關聯(lián)的有效比特是否具有表明該密鑰有效的密鑰狀態(tài)。如果該密鑰狀態(tài)表明匹配的密鑰不是有效的,則有效函數(shù)148指明有效載入是不可靠的,并且系統(tǒng)用鎖定函數(shù)150禁止進一步處理有效載入106,諸如通過中止系統(tǒng)的引導或中止配置可編程邏輯。
[0027]響應于具有表明密鑰是有效的密鑰狀態(tài)的有效比特,可以通過將有效載入106輸入到散列函數(shù)152(與散列函數(shù)112相同)并生成散列值154來確認有效載入106的簽名。附隨有效載入106的簽名120和公鑰108被輸入到解密函數(shù)156,解密函數(shù)156使用公鑰來解密簽名,從而得到解密的簽名158。比較函數(shù)160將計算的散列值與解密的簽名進行比較。響應于簽名無法匹配,系統(tǒng)用鎖定函數(shù)162禁止有效載入106的進一步處理,諸如通過中止系統(tǒng)的引導或中止配置可編程邏輯。
[0028]響應于匹配于散列值的解密的簽名,比較函數(shù)164將伴隨有輸入的有效載入的會話密鑰ID 110與在非易失性存儲器132中的會話密鑰ID進行比較,其中非易失性存儲器132中的會話密鑰ID與散列公鑰134中的一個匹配公鑰相關聯(lián)。響應于會話密鑰ID 120不匹配于會話密鑰ID 134中的某個會話密鑰ID,比較函數(shù)164指明所述有效載入不是可靠的,并且系統(tǒng)用鎖定功能模塊166禁止有效載入106的進一步處理,諸如通過中止系統(tǒng)的引導或中止配置可編程邏輯。響應于會話密鑰ID 120匹配于會話密鑰ID 134中的某個會話密鑰ID,比較函數(shù)164允許有效載入的處理,諸如通過繼續(xù)執(zhí)行系統(tǒng)的引導和/或可編程邏輯168的配置。在會話密鑰ID 136中的一個會話密鑰ID和公鑰134中的一個公鑰的每種組合均是單個散列值的實施方案中,不需要比較函數(shù)164,并且由比較函數(shù)160發(fā)現(xiàn)的肯定的比較結果后接處理函數(shù)168,諸如執(zhí)行引導程序和/或配置可編程邏輯168。
[0029]會話密鑰可以不依賴相關的公鑰而被撤銷。在示例的實施方案中,每個會話密鑰ID 136均被存儲在一組電熔絲中。為了撤銷會話密鑰,禁止電流流過該會話密鑰ID的那個電熔絲。熔斷的熔絲改變了會話密鑰的數(shù)值,這有效地撤銷被存儲在該組電熔絲中的以前的會話密鑰ID。從而在示例的實施方案中,以一元格式(unary format)存儲會話密鑰ID。
[0030]撤銷公鑰不僅僅撤銷公鑰,還實際撤銷了相關聯(lián)的會話密鑰。如上所述,非易失性存儲器132包括用于存儲密鑰狀態(tài)的有效比特,其中密鑰狀態(tài)與公鑰134和會話密鑰ID 136的多個組合相關聯(lián)。每個組合包括公鑰中的一個和會話密鑰ID中的一個。在有效比特中的與組合相關聯(lián)的密鑰狀態(tài)表示相關聯(lián)的組合是否為有效的(沒有被撤銷)。有效比特可被實施為電熔絲。
[0031]圖2是顯示了系統(tǒng)200的框圖,在系統(tǒng)200中,使用認證密鑰來控制系統(tǒng)的引導和/或配置。系統(tǒng)200包括處理器202、可編程邏輯204、R0M 206,RAM 208、非易失性存儲器132、ROM 212、存儲裝置214、以及接口 216、218和220。處理器202、可編程邏輯204、R0M 206 ^RAM208、非易失性存儲器132以及接口 216、218和220可以被實施為片上系統(tǒng)(SOC)。公鑰134中的一個和會話密鑰ID 136中的一個的組合被處理器用來認證第一級引導載入程序(FSBL)232和/或配置位流234。一旦被認證,處理器執(zhí)行FSBL代碼或者用配置位流配置可編程邏輯,從而使得能夠撤銷公鑰和/或會話密鑰ID中的一個。
[0032]在引導系統(tǒng)時,處理器202載入并執(zhí)行來自ROM 206的程序代碼。該代碼使得處理器能夠將FSBL 232和/或配置位流234輸入到RAM 208中,并且然后認證FSBL或位流。被輸入到處理器的FSBL和配置位流具有附隨公鑰、會話密鑰ID和簽名。如果處理器確定輸入的FSBL或位流是可靠的,正如上文所描述的,則處理器可以通過處理有效載入而繼續(xù)進行,所述的處理有效載入也就是通過執(zhí)行FSBL的程序代碼或用配置位流配置可編程邏輯204來實現(xiàn)。
[0033]在一個示例的實施方案中,非易失性存儲器132包括電熔絲。通過熔斷所選擇的電熔絲來建立公鑰的二進制值或公鑰的散列值,可以建立公鑰。通過熔斷代表會話密鑰ID的數(shù)值的一個或多個電熔絲,也可以建立與公鑰相關聯(lián)的會話密鑰ID。通過熔斷該會話密鑰ID的多個電熔絲中的另一電熔絲,可以建立與關聯(lián)的公鑰組合使用的新的會話密鑰。會話密鑰ID由此以一元格式被體現(xiàn)在電熔絲中。例如,如果使用32個電熔絲來代表會話密鑰ID,則會話密鑰ID可以具有32個不同的數(shù)值。
[0034]與公鑰和會話密鑰ID的多個組合相關聯(lián)的有效比特138,也可以用電熔絲來實施。當有效比特的電熔絲被熔斷時,公鑰被無效,并且因為與公鑰相關聯(lián)的會話密鑰ID僅伴隨該公鑰而被使用,所以與該會話密鑰ID相關聯(lián)的會話密鑰實際上也是無效的。只有在程序代碼或配置位流被認證后,才可以通過在處理器202上執(zhí)行的程序代碼或通過在可編程邏輯204中配置的電路來熔斷有效比特138和會話密鑰ID 136的電熔絲。
[0035]在一個實施方案中,可寫(WE)的電熔絲242控制除第一公鑰之外的所有公鑰。這使得運行未認證程序代碼的處理器或者配置有配置位流的可編程邏輯能夠編程第一公鑰。不用認證就可以完成公鑰空間的最開始的編程,這是因為在非易失性存儲器132中沒有用來認證的密鑰。在第一公鑰被配置后,只有在程序代碼或配置位流被確認之后,才允許隨后對密鑰編程或撤銷。
[0036]WE電熔絲242可以控制除了第一公鑰以外的公鑰。一旦公鑰的所有期望的數(shù)值被編程好,就可以熔斷WE位的電熔絲。在另一個實施方案中,個別WE位可被使用來個別地控制公鑰的編程。
[0037]系統(tǒng)可以防止公鑰的未授權的編程。在公鑰初始編程階段,授權方可以在電熔絲中配置用于所有公鑰134的數(shù)值。然后可以熔斷WE電熔絲242,從而禁止公鑰的任何其它的配置。在替換的方法中,在公鑰的初始編程階段,授權方可以只配置沒有被WE電熔絲保護的公鑰(第一公鑰)的數(shù)值。此后,在任何其它公鑰可被配置或撤銷之前,任何輸入的程序代碼或配置位流都必須首先用有效的公鑰和會話密鑰進行認證。
[0038]圖3是用于初始地配置認證系統(tǒng)的過程的流程圖。在步驟302,一個或多個公鑰的代表被配置在非易失性存儲器中。取決于實施方案的要求,每個公鑰的代表可以是公鑰的實際數(shù)值或公鑰的散列值。
[0039]在一個實施方案中,所有的公鑰均在初始設置時就被配置在非易失性存儲器中。替換地,只配置第一公鑰,隨后,在程序代碼或配置位流被認證的條件下,可以通過在SOC的處理器上運行的程序,或由在SOC的可編程邏輯中配置的電路,來配置其它公鑰。
[0040]在步驟304,一個或多個會話密鑰ID的數(shù)值可以選擇性地被配置在非易失性存儲器中??梢詾樵诓襟E302配置的每個公鑰配置初始會話密鑰ID。會話密鑰ID的配置是可選的,因為用于會話密鑰ID的初始值可以是0,它不需要熔斷任何電熔絲。然而,如果想要不等于O的數(shù)值,則可以熔斷電熔絲來表示該數(shù)值。
[0041]在步驟306,可以選擇性地熔斷控制公鑰的WE電熔絲。在一些使用場景中在初始設置階段就將所有公鑰配置在SOC內,那么這種做法在這些使用場景中是有用的。熔斷WE電熔絲禁止了公鑰的隨后更新。
[0042]圖4是通過使用公鑰和會話密鑰ID認證輸入有效載入的過程的流程圖。在步驟402,該過程讀出附隨有效載入的輸入公鑰,以及在步驟404,根據(jù)公鑰計算散列值。在實際的公鑰被存儲在非易失性存儲器的實施方案中,不需要計算散列值。
[0043]如果計算的散列值不與被存儲在非易失性存儲器中的任何散列的公鑰相匹配,那么判決步驟406將過程引導到步驟408,系統(tǒng)在步驟408處被鎖定。例如,執(zhí)行認證的處理器可能會中止系統(tǒng)的進一步引導或中止可編程邏輯的配置。
[0044]如果計算的散列值與被存儲在非易失性存儲器中的任何散列的公鑰匹配,那么判決步驟406將處理過程引導到判決步驟410,判決步驟410根據(jù)相關聯(lián)的有效比特的狀態(tài),檢驗匹配的散列公鑰是否有效。如果散列公鑰是無效的,那么系統(tǒng)將在步驟408被鎖定。
[0045]如果散列公鑰是有效的,則在步驟412,根據(jù)有效載入計算散列值,以及在步驟414,可以讀出附隨有效載入的簽名,并且通過使用輸入的公鑰來解密該簽名。
[0046]在步驟416,從輸入讀出會話密鑰ID,以及判決步驟418確定輸入的會話密鑰ID是否與非易失性存儲器中與匹配公鑰相關聯(lián)的會話密鑰ID相匹配。如果輸入的會話密鑰ID不匹配,那么系統(tǒng)在步驟408被鎖定。否則,判決步驟420確定解密的簽名是否等于在步驟412處根據(jù)有效載入計算的散列值。如果解密的簽名不匹配,那么系統(tǒng)在步驟422被鎖定。否則,處理器可以在步驟424繼續(xù)進行程序執(zhí)行或可編程邏輯的配置。
[0047]在公鑰和會話密鑰ID被散列在一起(未示出)的實施方案中,可以根據(jù)輸入的公鑰和會話密鑰ID來計算單個散列值,并且可以將該散列值與被存儲在非易失性存儲器中的公鑰和會話密鑰ID的散列值進行比較。因此,步驟402、404、和406可以被修正為:以與輸入的公鑰相結合的方式來處理輸入的會話密鑰ID。步驟416和418不一定是必須的。
[0048]圖5是撤銷公鑰或會話密鑰的過程的流程圖。在SOC的實施方案中,只能通過在SOC的處理器上執(zhí)行的認證的程序代碼,或通過用認證的配置位流進行配置的SOC的可編程邏輯,來執(zhí)行公鑰或會話密鑰的撤銷。
[0049]在步驟502,認證輸入的有效載入。有效載入例如可以是程序代碼或配置位流,并且有效載入可以包括會話密鑰。認證使用有效載入的簽名,連同使用也與有效載入附隨的公鑰和會話密鑰ID。
[0050]在步驟504,為了撤銷公鑰,可以熔斷實施與公鑰相關聯(lián)的有效比特的電熔絲。由于每個會話密鑰只與可能的公鑰中的一個公鑰一起使用,因此撤銷公鑰將有效地撤銷銷公鑰和相關聯(lián)的會話密鑰的組合。
[0051]為了撤銷會話密鑰,在步驟506,熔斷電熔絲組中的一個或多個電熔絲,其中這些電熔絲能夠實施與撤銷的會話密鑰相關聯(lián)的會話密鑰ID。由于熔斷電熔絲會改變會話密鑰ID的數(shù)值,所以由該組電熔絲存儲的以前的會話密鑰ID被撤銷,并且新的會話密鑰ID會由該組電熔絲的狀態(tài)表示??梢岳斫獾氖牵蝗蹟嘁粋€電熔絲來撤銷會話密鑰ID,這使得可與該組電熔絲一起使用的會話密鑰ID的數(shù)目最大化,因為一旦熔斷一個電熔絲,則該電熔絲此后不能被重新配置用于傳導電流。
[0052]圖6是一種示例性的SOC架構600,可以使用這里描述的各種方法在架構600上實施系統(tǒng)。本領域技術人員可以領會,圖6的SOC僅僅提供了可以在其上實施本發(fā)明的方法的集成電路器件的一個例子。S0C600包括大量不同的可編程單兀,其包括多千兆位收發(fā)器(MGT601)、可配置邏輯模塊(CLB 602),隨機存取存儲器模塊(BRAM 603),輸入/輸出模塊(Ι0Β604)、配置邏輯和時鐘邏輯(CONFIG/CLOCKS 605)、數(shù)字信號處理模塊(DSP606)、專用輸入/輸出模塊(I/O 607)407(例如,配置端口和時鐘端口),以及其他可編程邏輯608,例如數(shù)字時鐘管理器、模數(shù)轉換器、系統(tǒng)監(jiān)控邏輯等。示例性的SOC也包括硬連接的處理器610。
[0053]在一些【具體實施方式】中,每個可編程單元可以包括可編程互連元件(INT 611),INT611具有與相鄰單元內的可編程互連元件之間的標準連接。因此,可編程互連元件合起來一起為展示的SOC執(zhí)行可編程互連資源??删幊袒ミB元件(INT 611)也可以包括與相同單元內的可編程邏輯元件的連接,如圖6頂部包括的示例所示。
[0054]例如,CLB 602可以包括可配置邏輯元件(CLE 612),可配置邏輯元件612可以被編程以實現(xiàn)用戶邏輯加上單個可編程互連元件(INT 611)。除了包括一個或多個可編程互連元件之外,BRAM 603可以包括BRAM邏輯元件(BRL 613)。通常地,單元內包括的互連元件的數(shù)量取決于單元的高度。在圖示的實施例中,BRAM單元具有的高度和4個CLB相同,但是也可以使用其他的數(shù)量(例如,5個)。除了包括合理數(shù)量的可編程互連元件之外,DSP單元606可以包括DSP邏輯元件(DSPL 614)414。除了一個可編程互連元件611的實例之外,1B 604可以包括,例如,兩個輸入/輸出邏輯元件(“10L”)615的實例。本領域的技術人員十分清楚,諸如被連接至I/O邏輯元件615的實際的I/O焊盤,通常不會被局限于輸入/輸出邏輯元件615的區(qū)域。
[0055]一些使用圖6中展示的架構的SOC可以包括額外的邏輯模塊,這些額外的邏輯模塊會破壞組成了大部分可編程邏輯的規(guī)則柱狀結構。額外的邏輯塊可以是可編程模塊和/或專用邏輯。例如,圖6中顯示的處理器模塊PR0C610可以跨越CLB和BRAM的多個欄。
[0056]在圖示的示例中,靠近晶粒(圖6陰影所示)中部的柱狀區(qū)域被用作配置邏輯、時鐘邏輯以及其他控制邏輯。從該柱狀區(qū)域伸出來的水平區(qū)域609被用于橫跨SOC的寬度來分配時鐘信號和配置信號??梢允褂门渲枚丝?未顯示)來接入用于可編程邏輯的配置存儲器(未顯示),以用于配置可編程邏輯和互連資源。在某一實施例中,內部擦除設備(未顯示)可以通過內部配置接入端口持續(xù)讀出并修正配置存儲器。
[0057]需要注意的是,圖6僅意圖示出示例性的SOC架構。例如,一行中邏輯模塊的數(shù)量、行的相對寬度、行的數(shù)量和順序、行中包括的邏輯模塊的類型、邏輯模塊的相對大小以及圖6的頂部包括的互連/邏輯實現(xiàn)方式都僅僅是示例性的。例如,在實際的SOC中,無論CLB出現(xiàn)在哪里,都通常包括不止一個相鄰行的CLB,以便于用戶邏輯的有效實現(xiàn)。
[0058]雖然這些方面和特性在某些情形下是以具體的圖描述的,但將會看到,來自一個圖的特性可以與另一個圖的特性組合,即使該組合沒有作為組合被明顯地顯示或明顯地描述。
[0059]某些例子為如下。然而,本領域技術人員應當看到,一個或多個其它例子和/或這些例子的變例可以不用下面給出的所有的具體細節(jié)而被實踐。
[0060]這里描述的示例性方法大體涉及數(shù)據(jù)認證。該方法可以包括:將公鑰和會話密鑰ID的代表的多個組合存儲在非易失性存儲器中;輸入有效載入以及附隨公鑰、會話密鑰ID和所述有效載入的簽名,其中所述簽名是所述有效載入和一密鑰對中的私鑰的函數(shù),其中所述密鑰對包括所述附隨公鑰和私鑰;根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合,并且根據(jù)所述簽名和所述有效載入,用處理器確定所述有效載入是否可靠;響應于確定所述有效載入是可靠的,處理所述有效載入;以及響應于確定所述有效載入不是可靠的,禁止處理所述有效載入。
[0061]—些這樣的方法還可以包括:其中將公鑰和會話密鑰ID的代表的多個組合存儲的步驟包括:將每個會話密鑰ID的代表存儲在多個電熔絲中;通過禁止電流流過所述多個組合中的一個組合的會話密鑰ID的代表的多個電熔絲中的一個電熔絲,建立新的會話密鑰。
[0062]一些這樣的方法還可包括:分別存儲與公鑰和會話密鑰ID的代表的所述多個組合相關聯(lián)的多個密鑰狀態(tài),其中每個密鑰狀態(tài)均表明相關聯(lián)的組合是否有效;其中根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定所述有效載入是否可靠的步驟,包括:確定所述多個組合中的一個組合是否具有與所述附隨公鑰相匹配的公鑰的代表,并且根據(jù)與所述組合相關聯(lián)的所述密鑰狀態(tài)確定所述組合是否有效;以及響應于確定所述多個組合中的一個組合具有與所述附隨公鑰相匹配的一個公鑰的代表以及所述組合不是有效的,指明所述有效載入不是可靠的。
[0063]一些這樣的方法還可包括:存儲與公鑰和會話密鑰ID的代表的所述多個組合相關聯(lián)的所述多個密鑰狀態(tài)的步驟,包括:將每個密鑰狀態(tài)存儲在一個或多個電熔絲中。
[0064]一些這樣的方法還可包括:其中,將公鑰和會話密鑰ID的代表的所述多個組合存儲的步驟包括:將每個會話密鑰ID的代表存儲在多個電熔絲中;通過禁止電流流過所述多個組合中的一個組合的會話密鑰ID的代表的多個電熔絲中的一個電熔絲,建立新的會話密鑰。
[0065]一些這樣的方法還可包括:公鑰和會話密鑰ID的代表的所述多個組合中的每個公鑰的代表,均是公鑰的散列值;根據(jù)所述附隨公鑰和會話密鑰ID及被存儲在所述非易失性存儲器中的多個組合來確定有效載入是否可靠的步驟,包括:計算所述附隨公鑰的散列值;確定所述附隨公鑰的散列值是否匹配于所述多個組合中一個組合的公鑰的代表;以及響應于確定所述附隨公鑰的散列值不匹配于所述多個組合中一個公鑰的代表,指明所述有效載入不是可靠的。。
[0066]一些這樣的方法還可包括:根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定有效載入是否可靠的步驟,包括:針對公鑰和會話密鑰ID的代表的所述多個組合中的一個組合,其中所述組合具有與所述附隨公鑰的散列值相匹配的公鑰的代表,確定附隨會話密鑰ID號碼是否匹配于所述組合的會話密鑰ID號碼的代表;響應于確定所述附隨會話密鑰ID號碼匹配于所述組合的會話密鑰ID號碼的代表,指明所述有效載入是可靠的;以及響應于確定所述附隨會話密鑰ID號碼不匹配于所述組合的會話密鑰ID號碼的代表,指明所述有效載入不是可靠的。
[0067]一些這樣的方法還可包括:將公鑰和會話密鑰ID的代表的所述多個組合存儲的步驟包括:將每個會話密鑰ID的代表存儲在多個電熔絲中。
[0068]一些這樣的方法還可包括:分別存儲與公鑰和會話密鑰ID的代表的所述多個組合相關聯(lián)的多個密鑰狀態(tài),其中每個密鑰狀態(tài)均表明所述相關聯(lián)的組合是否有效;其中根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定所述有效載入是否可靠的步驟,包括:確定所述多個組合中的一個組合是否具有與所述附隨公鑰相匹配的公鑰的代表,并且根據(jù)與所述多個組合相關聯(lián)的所述密鑰狀態(tài)確定所述組合是否有效;以及響應于確定所述多個組合中的一個組合具有與所述附隨公鑰相匹配的一個公鑰的代表以及所述組合不是有效的,指明所述有效載入不是可靠的。
[0069]一些這樣的方法還可包括:將公鑰和會話密鑰ID的代表的所述多個組合存儲的步驟包括:將每個密鑰狀態(tài)存儲在一個或多個電熔絲中。
[0070]一些這樣的方法還可包括:其中將公鑰和會話密鑰ID的代表的所述多個組合存儲的步驟包括:將每個會話密鑰ID的所述代表存儲在多個電熔絲中;通過禁止電流流過所述多個組合中的一個組合的所述會話密鑰ID的代表的所述多個電熔絲中的一個電熔絲,建立新的會話密鑰。
[0071]—些這樣的方法還可包括:在所述非易失性存儲器中的公鑰和會話密鑰ID的代表的所述多個組合中的每個組合,均是公鑰和會話密鑰ID的散列值;根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定有效載入是否可靠的步驟,包括:計算所述附隨公鑰和會話密鑰ID的第一散列值;確定所述第一散列值是否匹配于在所述非易失性存儲器中的所述散列值中的任一散列值;以及響應于確定所述第一散列值不匹配于在所述非易失性存儲器中所述散列值的任一散列值,指明所述有效載入不是可靠的。
[0072]這里描述的示例性設備大體涉及到認證系統(tǒng)。所述設備可包括:非易失性存儲器,其可被配置為存儲公鑰和會話密鑰ID的代表的多個組合;被耦接到所述非易失性存儲器的處理器,所述處理器被配置成:輸入有效載入以及附隨公鑰、會話密鑰ID和所述有效載入的簽名,其中所述簽名是所述有效載入和一密鑰對中的私鑰的函數(shù),其中所述密鑰對包括所述附隨公鑰和私鑰;根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合,并且根據(jù)所述簽名和所述有效載入,確定所述有效載入是否可靠;響應于確定所述有效載入是可靠的,處理所述有效載入;以及響應于確定所述有效載入不是可靠的,禁止處理所述有效載入。
[0073]—些這樣的設備還可包括:所述非易失性存儲器包括:多個電熔絲,其用于存儲公鑰和會話密鑰ID的代表的多個組合;以及所述處理器還被配置成:通過禁止電流流過所述多個組合中的一個組合的會話密鑰ID的代表的多個電熔絲中的一個電熔絲,建立新的會話密鑰。
[0074]一些這樣的設備還可包括:所述非易失性存儲器包括:分別用于存儲與公鑰和會話密鑰ID的代表的所述多個組合相關聯(lián)的多個密鑰狀態(tài)的存儲器,其中每個密鑰狀態(tài)均表明相關聯(lián)的組合是否有效;以及所述處理器還被配置成:確定所述多個組合中的一個組合是否具有與所述附隨公鑰相匹配的公鑰的代表,并且根據(jù)與所述組合相關聯(lián)的所述密鑰狀態(tài)確定所述組合是否有效;以及響應于確定所述多個組合中的一個組合具有與所述附隨公鑰相匹配的公鑰的代表以及所述組合不是有效的,指明所述有效載入不是可靠的。
[0075]—些這樣的設備還可包括:所述非易失性存儲器包括:多個電熔絲,其用于存儲所述多個密鑰狀態(tài)。
[0076]—些這樣的設備還可包括:所述非易失性存儲器包括:多個電熔絲,其用于存儲所述會話密鑰ID的代表;以及所述處理器還被配置成:通過禁止電流流過所述多個組合中的一個組合的所述會話密鑰ID的代表的所述多個電熔絲中的一個電熔絲,建立新的會話密鑰。
[0077]一些這樣的設備還可包括:公鑰和會話密鑰ID的代表的所述多個組合中的每個公鑰的代表,均是公鑰的散列值;當處理器根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定所述有效載入是否可靠時,其被配置成:計算所述附隨公鑰的散列值;確定所述附隨公鑰的散列值是否匹配于所述多個組合中的一個組合的公鑰的代表;以及響應于所述確定附隨公鑰的散列值不匹配于所述多個組合的公鑰的代表,指明所述有效載入不是可靠的。
[0078]一些這樣的設備還可包括:當所述處理器根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定有效載入是否可靠時,其被配置成:針對公鑰和會話密鑰ID的代表的所述多個組合中的一個組合,其中所述組合具有與附隨公鑰的散列值相匹配的公鑰的代表,確定附隨會話密鑰ID號碼是否匹配于所述組合的會話密鑰ID號碼的代表;響應于確定所述附隨會話密鑰ID號碼匹配于所述組合的會話密鑰ID號碼的代表,指明所述有效載入是可靠的;以及響應于確定所述附隨會話密鑰ID號碼不匹配于所述某一組合的會話密鑰ID號碼的代表,指明所述有效載入不是可靠的。
[0079]一些這樣的設備還可包括:在所述非易失性存儲器中的公鑰和會話密鑰ID的代表的所述多個組合中的每個組合,均是公鑰和會話密鑰ID的散列值;當處理器根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定有效載入是否可靠時,其被配置成:計算所述附隨公鑰和會話密鑰ID的第一散列值;確定所述第一散列值是否匹配于在所述非易失性存儲器中的所述散列值中的任一散列值;以及響應于確定所述第一散列值不匹配于在所述非易失性存儲器中所述散列值的任一散列值,指明所述有效載入不是可靠的。
[0080]這種系統(tǒng)和方法可應用于各種各樣的用于認證的系統(tǒng)。本領域技術人員通過參考說明書將明白其它方面和特性。這種系統(tǒng)和方法可被實施成:作為被配置成執(zhí)行軟件的一個或多個處理器;作為專用集成電路(ASIC);或作為在可編程邏輯設備上的邏輯。說明書和附圖僅僅意圖被看作為示例,而本發(fā)明的實際范圍由權利要求表明。
【主權項】
1.一種認證數(shù)據(jù)的方法,包括: 將公鑰和會話密鑰ID的代表的多個組合存儲在非易失性存儲器中; 輸入有效載入以及附隨公鑰、會話密鑰ID和所述有效載入的簽名,其中所述簽名是所述有效載入和一密鑰對中的私鑰的函數(shù),所述密鑰對包括所述附隨公鑰和所述私鑰; 根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合,并且根據(jù)所述簽名和所述有效載入,用處理器確定所述有效載入是否可靠; 響應于確定所述有效載入是可靠的,處理所述有效載入;以及 響應于確定所述有效載入不是可靠的,禁止處理所述有效載入。2.根據(jù)權利要求1所述的方法,其特征在于,還包括: 其中將公鑰和會話密鑰ID的代表的多個組合存儲的步驟包括:將每個會話密鑰ID的代表存儲在多個電熔絲中; 通過禁止電流流過所述多個組合中一個組合的會話密鑰ID的代表的多個電熔絲中的一個電熔絲,建立新的會話密鑰。3.根據(jù)權利要求1所述的方法,其特征在于,還包括: 分別存儲與公鑰和會話密鑰ID的代表的所述多個組合相關聯(lián)的多個密鑰狀態(tài),其中每個密鑰狀態(tài)均表明相關聯(lián)的組合是否有效; 其中根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定所述有效載入是否可靠的步驟,包括: 確定所述多個組合中的一個組合是否具有與所述附隨公鑰相匹配的公鑰的代表,并且根據(jù)與所述組合相關聯(lián)的所述密鑰狀態(tài)確定所述組合是否有效;以及 響應于確定所述多個組合中的一個組合具有與所述附隨公鑰相匹配的一個公鑰的代表以及所述組合不是有效的,指明所述有效載入不是可靠的。4.根據(jù)權利要求3所述的方法,其特征在于,存儲與公鑰和會話密鑰ID的代表的所述多個組合相關聯(lián)的所述多個密鑰狀態(tài)的步驟,包括:將每個密鑰狀態(tài)存儲在一個或多個電熔絲中。5.根據(jù)權利要求1所述的方法,其特征在于,其中: 公鑰和會話密鑰ID的代表的所述多個組合中的每個公鑰的代表,均是公鑰的散列值; 根據(jù)所述附隨公鑰和會話密鑰ID及被存儲在所述非易失性存儲器中的多個組合來確定有效載入是否可靠的步驟,包括: 計算所述附隨公鑰的散列值; 確定所述附隨公鑰的散列值是否匹配于所述多個組合中的一個組合的公鑰的代表;以及 響應于確定所述附隨公鑰的散列值不匹配于所述多個組合中的一個公鑰的代表,指明所述有效載入不是可靠的。6.根據(jù)權利要求5所述的方法,其特征在于,根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定有效載入是否可靠的步驟,包括: 針對公鑰和會話密鑰ID的代表的所述多個組合中的一個組合,其中所述組合具有與所述附隨公鑰的散列值相匹配的公鑰的代表,確定附隨會話密鑰ID號碼是否匹配于所述組合的會話密鑰ID號碼的代表; 響應于確定所述附隨會話密鑰ID號碼匹配于所述組合的會話密鑰ID號碼的代表,指明所述有效載入是可靠的;以及 響應于確定所述附隨會話密鑰ID號碼不匹配于所述組合的會話密鑰ID號碼的代表,指明所述有效載入不是可靠的。7.根據(jù)權利要求5所述的方法,其特征在于,還包括: 分別存儲與公鑰和會話密鑰ID的代表的所述多個組合相關聯(lián)的多個密鑰狀態(tài),其中每個密鑰狀態(tài)均表明所述相關聯(lián)的組合是否有效; 其中根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定所述有效載入是否可靠的步驟,包括: 確定所述多個組合中的一個組合是否具有與所述附隨公鑰相匹配的公鑰的代表,并且根據(jù)與所述組合相關聯(lián)的所述密鑰狀態(tài)確定所述組合是否有效;以及 響應于確定所述多個組合中的一個組合具有與所述附隨公鑰相匹配的一個公鑰的代表以及所述組合不是有效的,指明所述有效載入不是可靠的; 其中將公鑰和會話密鑰ID的代表的所述多個組合存儲的步驟包括:將每個會話密鑰ID的所述代表存儲在多個電熔絲中;以及 通過禁止電流流過所述多個組合中一個組合的所述會話密鑰ID的代表的所述多個電熔絲中的一個電熔絲,建立新的會話密鑰。8.一種認證系統(tǒng),包括: 非易失性存儲器,其可被配置為存儲公鑰和會話密鑰ID的代表的多個組合; 被耦接到所述非易失性存儲器的處理器,所述處理器被配置成: 輸入有效載入以及附隨公鑰、會話密鑰ID和所述有效載入的簽名,其中所述簽名是所述有效載入和一密鑰對中的私鑰的函數(shù),所述密鑰對包括所述附隨公鑰和所述私鑰; 根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合,并且根據(jù)所述簽名和所述有效載入,確定所述有效載入是否可靠; 響應于確定所述有效載入是可靠的,處理所述有效載入;以及 響應于確定所述有效載入不是可靠的,禁止處理所述有效載入。9.根據(jù)權利要求8所述的系統(tǒng),其特征在于: 所述非易失性存儲器包括:多個電熔絲,其用于存儲公鑰和會話密鑰ID的代表的多個組合;以及 所述處理器還被配置成:通過禁止電流流過所述多個組合中一個組合的會話密鑰ID的代表的所述多個電熔絲中的一個電熔絲,建立新的會話密鑰。10.根據(jù)權利要求8所述的系統(tǒng),其特征在于: 所述非易失性存儲器包括:分別用于存儲與公鑰和會話密鑰ID的代表的所述多個組合相關聯(lián)的多個密鑰狀態(tài)的存儲器,其中每個密鑰狀態(tài)均表明相關聯(lián)的組合是否有效;以及所述處理器還被配置成: 確定所述多個組合中的一個組合是否具有與所述附隨公鑰相匹配的公鑰的代表,并且根據(jù)與所述組合相關聯(lián)的所述密鑰狀態(tài)確定所述組合是否有效;以及 響應于確定所述多個組合中的一個組合具有與所述附隨公鑰相匹配的一個公鑰的代表以及所述組合不是有效的,指明所述有效載入不是可靠的。11.根據(jù)權利要求10所述的系統(tǒng),其特征在于,所述非易失性存儲器包括:多個電熔絲,其用于存儲所述多個密鑰狀態(tài)。12.根據(jù)權利要求11所述的系統(tǒng),其特征在于: 所述非易失性存儲器包括:多個電熔絲,其用于存儲所述會話密鑰ID的代表;以及所述處理器還被配置成:通過禁止電流流過所述多個組合中一個組合的會話密鑰ID的代表的所述多個電熔絲中的一個電熔絲,建立新的會話密鑰。13.根據(jù)權利要求10所述的系統(tǒng),其特征在于: 公鑰和會話密鑰ID的代表的所述多個組合中的每個公鑰的代表,均是公鑰的散列值;當處理器根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定所述有效載入是否可靠時,其被配置成: 計算所述附隨公鑰的散列值; 確定所述附隨公鑰的散列值是否匹配于所述多個組合中的一個組合的公鑰的代表;以及 響應于確定所述附隨公鑰的散列值不匹配于所述多個組合的一個公鑰的代表,指明所述有效載入不是可靠的。14.根據(jù)權利要求13所述的系統(tǒng),其特征在于,當所述處理器根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定有效載入是否可靠時,其被配置成: 針對公鑰和會話密鑰ID的代表的所述多個組合中的一個組合,其中所述組合具有與所述附隨公鑰的散列值相匹配的公鑰的代表,確定附隨會話密鑰ID號碼是否匹配于所述組合的會話密鑰ID號碼的代表; 響應于確定所述附隨會話密鑰ID號碼匹配于所述組合的會話密鑰ID號碼的代表,指明所述有效載入是可靠的;以及 響應于確定所述附隨會話密鑰ID號碼不匹配于所述組合的會話密鑰ID號碼的代表,指明所述有效載入不是可靠的。15.根據(jù)權利要求10所述的系統(tǒng),其特征在于: 在所述非易失性存儲器中的公鑰和會話密鑰ID的代表的所述多個組合中的每個組合,均是公鑰和會話密鑰ID的散列值; 當所述處理器根據(jù)所述附隨公鑰和會話密鑰ID以及被存儲在所述非易失性存儲器中的多個組合來確定有效載入是否可靠時,其被配置成: 計算所述附隨公鑰和會話密鑰ID的第一散列值; 確定所述第一散列值是否匹配于在所述非易失性存儲器中的散列值中的任一散列值;以及 響應于確定所述第一散列值不匹配于在所述非易失性存儲器中散列值的任一散列值,指明所述有效載入不是可靠的。
【文檔編號】G06F21/57GK106031082SQ201580009686
【公開日】2016年10月12日
【申請日】2015年2月18日
【發(fā)明人】J·J·摩爾, S·E·麥克尼爾, S·M·特里姆伯格
【申請人】賽靈思公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1