專利名稱:用于加密器硬件服務(wù)的與加密器無關(guān)的接口的制作方法
用于加密器硬件服務(wù)的與加密器無關(guān)的接口相關(guān)申請的交叉參考本申請基于并要求于2009年2月26日提交的題目為“用于加密器硬件服務(wù)的與 加密器無關(guān)接口”的美國臨時申請第61/155,864號的優(yōu)先權(quán),其全部內(nèi)容通過參考其所有 披露和教導(dǎo)而具體結(jié)合在此。
背景技術(shù):
現(xiàn)代專用集成電路(ASIC)集成了越來越多的功能。這些所謂的芯片上系統(tǒng)將計 算機或其他電子系統(tǒng)的許多部件集成到單個集成電路中。芯片上系統(tǒng)設(shè)計的一個優(yōu)點在于 其通常比其所代替的多芯片系統(tǒng)消耗更少的功率并且具有更低的成本。此外,芯片上系統(tǒng) 因為在給定系統(tǒng)中具有更少的封裝而有助于減少總體的系統(tǒng)生產(chǎn)成本。集成到芯片上系統(tǒng)中的一些功能包括圖形、以太網(wǎng)媒體存取控制層(MAC)、通用串 行總線(USB)、存儲控制器、以及其他特定用途的邏輯??梢员患傻紸SIC中的其他計算強 化功能是硬件加密功能塊。加密模塊在各種應(yīng)用的現(xiàn)代ASIC中變得越來越普遍。通常,這些加密模塊支持不同的標(biāo)準(zhǔn)。其通常也使用不同的接口。特別地,這些加 密模塊通常還需要用于輸入/輸出信息的非常明確和精確的時序調(diào)度。
發(fā)明內(nèi)容
本發(fā)明的實施例因此可以加密器硬件系統(tǒng),包括多個輸出槽,接收與加密器無關(guān) 的加密事件;包括第一加密器硬件的第一打包加密塊,所述第一打包加密塊接收與加密器 無關(guān)的加密事件以及發(fā)送第一與加密器相關(guān)的事件至所述第一加密器硬件,所述第一打包 加密塊將所述與加密器無關(guān)的加密事件轉(zhuǎn)換成所述第一與加密器相關(guān)的事件,以及將從所 述第一加密器硬件接收的第一與加密器相關(guān)的結(jié)果事件轉(zhuǎn)換成與加密器無關(guān)的結(jié)果事件; 以及具有多個槽的第一輸出FIFO,所述第一輸出FIFO接收與所述第一打包加密決相關(guān)聯(lián) 的所述與加密器無關(guān)的結(jié)果事件。本發(fā)明的實施例因此可以包括一種提供加密服務(wù)的方法,包括接收與加密器無 關(guān)的加密事件;將所述與加密器無關(guān)的加密事件接收到包括第一加密器硬件的第一打包加 密塊中;將所述與加密器無關(guān)的加密事件轉(zhuǎn)換成第一與加密器相關(guān)的事件;發(fā)送第一與加 密器相關(guān)的事件至所述第一加密器硬件;將從所述第一加密器硬件接收的第一與加密器相 關(guān)的結(jié)果事件轉(zhuǎn)換成與加密器無關(guān)的結(jié)果事件;以及將所述與加密器無關(guān)的結(jié)果事件接收 到第一輸出FIFO中。
圖1是加密器硬件系統(tǒng)的框圖。圖2是提供加密器硬件服務(wù)的方法的流程圖。圖3是運行加密器硬件系統(tǒng)的方法的流程圖。圖4是從特定于加密的事件格式和時序得到母語言(superlanguage)的與時序無
4關(guān)的事件的示例。圖5示出了用于輸入FIFO的示例性母語言位級描述。圖6示出了用于輸出FIFO的示例性母語言位級描述。
具體實施例方式圖1是加密器硬件系統(tǒng)的框圖。加密器硬件100包括輸入槽110、輸入槽111、輸 入槽112、輸入開關(guān)115、分配器120、打包加密塊130、打包加密塊131、輸出開關(guān)140、輸出 FIFO 150、輸出FIFO 151、以及輸出FIFO 152。打包加密塊130包括輸入轉(zhuǎn)換器130-1、加 密器硬件130-2、輸出轉(zhuǎn)換器130-3、以及控制器130-4。打包加密塊131包括輸入轉(zhuǎn)換器 131-1、加密器硬件131-2、輸出轉(zhuǎn)換器131-3以及控制器131-4。加密器硬件100的每個元 件可操作地耦合到加密器硬件100的每個其他元件。如圖1所示,輸入槽110-112可操作地耦合到用于接收命令和數(shù)據(jù)的系統(tǒng)。輸入 槽110-112可操作地耦合到分配器120。輸入槽110-112可操作地耦合到輸入開關(guān)115。輸 入開關(guān)115可操作地耦合到分配器120。輸入開關(guān)115可操作地耦合到打包加密塊130和 打包加密塊131。特別地,輸入開關(guān)115可操作地耦合到輸入轉(zhuǎn)換器130-1和輸入轉(zhuǎn)換器 131-1。因此,置于輸入槽110-112中的加密事件可以被路由到打包加密塊130、打包加密 塊131、或其他打包加密塊(未示出)。在一個實施例中,輸入開關(guān)115可以是交叉點開關(guān) 或其他N xM端口路由裝置,其中N是輸入端口的數(shù)量,以及M是輸出端口的數(shù)量。N通常對 應(yīng)于輸入槽110-112的數(shù)量。M通常對應(yīng)于打包加密塊130-131的數(shù)量。輸出FIFO 150-152可操作地耦合到用于發(fā)送結(jié)果和/或其他消息的系統(tǒng)。輸出 FIFO 150-152可操作地耦合到輸出開關(guān)140。輸出FIFO 150-152可操作地耦合到分配器 120。輸出開關(guān)140可操作地耦合到分配器120。打包加密塊130-131可操作地耦合到輸出 開關(guān)140。具體地,輸出開關(guān)140可操作地耦合到輸出轉(zhuǎn)換器130-3和輸出轉(zhuǎn)換器131-3。 因此,由打包加密塊130-131產(chǎn)生的加密結(jié)果事件可以被路由到任何輸出FIFO 150-152。 在一個實施例中,輸出開關(guān)140可以是交叉點開關(guān)或其他M χ Q端口路由裝置,其中M是輸 入端口的數(shù)量,以及Q是輸出端口的數(shù)量。M通常對應(yīng)于打包加密塊130-131的數(shù)量。Q通 常對應(yīng)于輸出FIFO 150-152的數(shù)量。輸入轉(zhuǎn)換器130-1可操作地耦合到加密器硬件130-2。加密器硬件130_2可操作 地耦合到輸出轉(zhuǎn)換器130-3。輸入轉(zhuǎn)換器130-1、加密器硬件130-2、以及輸出轉(zhuǎn)換器130-3 都可操作地耦合到控制器130-4。因此,控制器130-4可以管理輸入轉(zhuǎn)換器130-1、加密器 硬件130-2以及輸出轉(zhuǎn)換器130-3的操作以及數(shù)據(jù)輸入和輸出??刂破?30-4和輸入轉(zhuǎn)換 器130-1可以協(xié)作,以使用與加密器相關(guān)的時序?qū)⑴c加密器相關(guān)的事件發(fā)送至加密器硬件 130-2。換句話說,控制器130-4和輸入轉(zhuǎn)換器130-1可以協(xié)作來以加密器硬件130-2所需 的格式和時序發(fā)送數(shù)據(jù)和控制信號至加密器硬件130-2。輸入轉(zhuǎn)換器131-1可操作地耦合到加密器硬件131-2。加密器硬件131_2可操作 地耦合到輸出轉(zhuǎn)換器131-3。輸入轉(zhuǎn)換器131-1、加密器硬件131-2、以及輸出轉(zhuǎn)換器131-3 都可操作地耦合到控制器131-4。因此,控制器131-4可以管理輸入轉(zhuǎn)換器131-1、加密器 硬件131-2以及輸出轉(zhuǎn)換器131-3的操作以及數(shù)據(jù)輸入和輸出??刂破?31-4和輸入轉(zhuǎn)換 器131-1可以協(xié)作以使用與加密器相關(guān)的時序?qū)⑴c加密器相關(guān)的事件發(fā)送至加密器硬件131-2。換句話說,控制器131-4和輸入轉(zhuǎn)換器131-1可以協(xié)作來以加密器硬件131-2所需 的格式和時序發(fā)送數(shù)據(jù)和控制信號至加密器硬件131-2。在一個實施例中,輸入槽110-122可以包括輸入FIFO。這些輸入FIFO可以接收來 自系統(tǒng)的與加密器無關(guān)的加密事件。此外,輸入槽110-122可以接收和/或計算對于還沒 有開始的加密事件的優(yōu)先級。因為存在多個輸入槽10-112,因此多個打包加密塊130-131 可以被并行和獨立地訪問??梢员徊⑿泻酮毩?zhí)行的多個事件的數(shù)量受到輸入槽110-112 中的FIFO的數(shù)量和打包加密塊130-131的數(shù)量的限制。因此,在打包加密塊131接收并處 理來自輸入槽112的與加密器無關(guān)的加密事件的同時,打包加密塊130可以接收和處理來 自輸入槽110的與加密器無關(guān)的加密事件。分配器120可以知道哪個打包加密塊130-131以及哪個輸出FIFO 150-152在使 用中。分配器120可以知道輸入槽110-112、打包加密塊130-131、以及輸出FIFO 150-152 之間的對應(yīng)關(guān)系。因此,分配器120可以控制輸入開關(guān)115和輸出開關(guān)140。分配器120可 以觀察輸入槽110-112以選擇加密事件,從而開始并分配輸出FIFO 150-152以接收加密結(jié)
果事件。輸入開關(guān)115提供了輸入槽110-112與打包加密塊130-131之間的連接。輸入開 關(guān)115還可以接收來自打包加密塊130-131的狀態(tài)信號。例如,輸入開關(guān)115可以接收來 自控制器130-4和控制器131-4的事件完成指示符。作為響應(yīng),輸入開關(guān)115可以發(fā)送指 示符至分配器120,使得可以再次使用輸入槽110-112??梢詾槊總€具體的加密器硬件130-2和131-2獨立開發(fā)打包加密塊130-131。打 包加密塊130-131提供一致的數(shù)據(jù)和信號接口。該一致的數(shù)據(jù)和信號接口可以包括關(guān)于輸 入和輸出的類似于標(biāo)準(zhǔn)FIFO的接口。該標(biāo)準(zhǔn)接口允許與加密器無關(guān)的加密事件被置于輸 入槽110-112中,并被路由至打包加密塊130-131,與確定打包加密塊130-131所執(zhí)行的加 密功能(即,加密編碼)的底層加密器硬件130-2和131-2無關(guān)。在一個實施例中,底層加密器硬件130-2和131-2可以執(zhí)行不同的加密或相同的 加密。此外,加密器硬件130-2和131-2可以具有不同的時序要求。然而,輸入槽110-112 中的FIFO和輸出FIFO 150-152允許與加密器無關(guān)的加密事件以及與加密器無關(guān)的結(jié)果 事件被分別寫入輸入槽110-112和輸出FIFO 150-152或從輸入槽110-112和輸出FIFO 150-152讀取,與加密器硬件130-2和131-2中的輸入和時序要求無關(guān)??刂破?30-4和131-4分別控制加密器硬件130-2和131-2。控制器130-4和 131-4還控制輸入轉(zhuǎn)換器130-1和131-1以將與加密器無關(guān)的加密事件處理為加密器硬件 130-2和131-2能夠理解的形式和時序??刂破?30-4和131-4還控制輸出轉(zhuǎn)換器130-3 和131-3以將從加密器硬件130-2和131-2接收到的與加密器相關(guān)的結(jié)果處理為輸出FIFO 150-152和系統(tǒng)的其他部分能夠理解的與加密器無關(guān)的形式和時序。輸入開關(guān)140提供輸出FIFO 150-152和打包加密塊130-131之間的連接。輸出 FIFO 150-152經(jīng)由輸出開關(guān)140接收來自打包加密塊130-131的與加密器無關(guān)的結(jié)果事 件。輸出FIFO 150-152還可以提供其已滿或幾乎已滿的指示。該指示可以被輸出開關(guān)142 中繼到打包加密塊130-131。該指示可以使加密器硬件130-2和131-2停止運行。通過停 止加密器硬件130-2和131-2,防止輸出FIFO 150-152溢出。上述加密器硬件100提供了能夠同時運行多個加密事件的多個1/0通道。通過使用接收與加密器無關(guān)的加密事件的基于FIFO的輸入槽110-112,不需要繁雜的(detailed) 時序調(diào)度和數(shù)據(jù)格式化。與加密器無關(guān)的加密事件提供了用于所有加密和加密器硬件 130-2和131-2的統(tǒng)一接口。因此,在輸入槽110提供與加密器無關(guān)的加密事件至打包加密 塊130并且結(jié)果被置于輸出FIFO 150中時,輸入槽111可以同時提供與加密器無關(guān)的加密 事件至打包加密塊131以及結(jié)果被置于輸出FIFO 152中。在一個實施例中,該統(tǒng)一接口可 以包括8位控制和64位數(shù)據(jù)。加密器硬件100提供橫跨連接加密塊集合的統(tǒng)一接口、每個單獨加密的參數(shù)、輸 入/輸出通道的數(shù)量、FIFO的大小、以及加密和FIF0(即,專用/共享/混合連接)之間的 拓?fù)?。此外,與加密器無關(guān)的加密事件可以以二進制語言或簡字語言(mnemonic language) 表示。所提出的體系結(jié)構(gòu)和技術(shù)方案應(yīng)該是非常方便和靈活的,并且也易于集成。應(yīng)該注意,僅存在一些在工業(yè)中可以完全以硬件提供組合加密服務(wù)的這樣的加密 塊。與高競爭力的加密庫模塊相結(jié)合,加密器硬件100使得能夠?qū)崿F(xiàn)用于增長的數(shù)據(jù)保護 市場份額以及已有的和計劃開發(fā)的各種應(yīng)用的安全需要的要素。加密器硬件100的體系結(jié)構(gòu)支持用于加密塊的冒碼解決方案。分配器120允許靈 活的用于同時發(fā)生事件的多個流輸入/輸出通道。分配器120支持并處理事件優(yōu)先級、死 鎖處理、多線程以及取消。開發(fā)加密器硬件100的復(fù)雜結(jié)構(gòu)可能會要求詳細(xì)描述綜合調(diào)試和測試系統(tǒng)。因 此,提供了內(nèi)置測試、調(diào)試支持、錯誤檢測以及錯誤恢復(fù)能力。所提出的加密器硬件100的體系結(jié)構(gòu)和硬件實施方式提供了用于各種硬件和/ 或固件應(yīng)用/協(xié)議的多個和組合的加密服務(wù)。所支持的加密服務(wù)可以通過所謂的撲克牌 (playing card)以統(tǒng)一的母語言方便容易地表示。撲克牌是用于加密工作描述的基板的方 便模板。表1中給出了與加密器無關(guān)的加密事件的示例,其可以用來驅(qū)動以Calois計數(shù)器 模式(GCM)實現(xiàn)AES加密的加密器硬件100。這是可以由輸入轉(zhuǎn)換器130-1和131-1接收 的數(shù)據(jù)的示例。注意在表1中,每個分號(“;”)表示時鐘周期。因此,例如,在BEGIN_ TRANS和第一 SEND_KEY_0事件之間僅有一個時鐘周期。
表2中給出了驅(qū)動以Galois計數(shù)器模式(GCM)實現(xiàn)AES加密的加密器硬件的與 加密器相關(guān)的事件(記憶形式)的示例。這是在與加密器無關(guān)的加密事件被輸入轉(zhuǎn)換器 130-1和131-1轉(zhuǎn)換之后可以由加密器硬件130-2和131-2接收的數(shù)據(jù)的示例。注意在表 2中,每個分號(“;”)表示時鐘周期。因此,例如,在saVe_key和第一個makejiiask事件 之間有15個時鐘周期。因此,由輸入轉(zhuǎn)換器130-1和131-1執(zhí)行的轉(zhuǎn)換操作用于按照位格 式和時間進行轉(zhuǎn)換。同樣,輸出轉(zhuǎn)換器130-3和131-3可以操作用于按照位格式和時間來 轉(zhuǎn)換加密器硬件130-2和131-2的輸出。 圖2是一種提供硬件加密服務(wù)的方法的流程圖。圖2中示出的步驟可以被加密器 硬件100的一個或多個元件執(zhí)行。與加密器無關(guān)的加密事件被接收(202)。例如,輸入槽 110可以接收與加密器無關(guān)的加密事件。輸入槽110可以將與加密器無關(guān)的加密事件接收 到FIFO中。與加密器無關(guān)的加密事件被接收到包括加密器硬件的打包加密塊中(204)。例 如,打包加密塊130可以經(jīng)由輸入開關(guān)115接收來自輸入槽110的與加密器無關(guān)的加密事 件。打包加密塊130可以包括加密器硬件130-2。與加密器無關(guān)的加密事件被轉(zhuǎn)換成與加密器相關(guān)的事件(206)。例如,輸入轉(zhuǎn)換器 130-1將與加密器無關(guān)的加密事件轉(zhuǎn)換成適于加密器硬件130-2的與加密器相關(guān)的事件。 在一個實施例中,這種將與加密器無關(guān)的加密事件轉(zhuǎn)換成與加密器相關(guān)的加密事件可以包 括轉(zhuǎn)換形式、格式、位排序、命令順序、和/或時序。換句話說,輸入轉(zhuǎn)換器130-1執(zhí)行任何 形式的狀態(tài)機或其他邏輯以將存儲在輸入槽110中以及從其接收的與加密器無關(guān)的加密 事件轉(zhuǎn)換為適當(dāng)?shù)臄?shù)據(jù)和控制信號來驅(qū)動加密器硬件130-2。與加密器相關(guān)的事件被發(fā)送到加密器硬件(208)。例如,來自輸入轉(zhuǎn)換器130-1的 與加密器相關(guān)的事件和來自控制器130-4的控制信號可以被發(fā)送到加密器硬件130-2。這 些與加密器相關(guān)的事件和控制信號可以使加密器硬件執(zhí)行其加密功能。這些加密功能可以 使加密器硬件產(chǎn)生與加密器相關(guān)的結(jié)果。這些與加密器相關(guān)的結(jié)果可以包括或者是與加密 器相關(guān)的結(jié)果事件和/或控制信號。從加密器硬件接收到的與加密器相關(guān)的結(jié)果事件被轉(zhuǎn)換成與加密器無關(guān)的結(jié)果事件(210)。例如,輸出轉(zhuǎn)換器130-3可以將從加密器硬件130-2接收到的與加密器相關(guān)的 結(jié)果事件轉(zhuǎn)換成與加密器無關(guān)的結(jié)果事件。與加密器無關(guān)的結(jié)果事件被接收到輸出FIFO 中(212)。例如,輸出FIFO 150可以從輸出轉(zhuǎn)換器130-3經(jīng)由輸出開關(guān)140接收與加密器 無關(guān)的結(jié)果事件。圖3是一種用于運行加密器硬件系統(tǒng)的方法的流程圖。圖3中示出的步驟可以由 加密器硬件100的一個或多個元件執(zhí)行。作業(yè)請求被置于輸入槽中(302)。例如,與加密器 無關(guān)的作業(yè)請求可以被置于輸入槽110中。分配單元接收開始標(biāo)簽和當(dāng)前優(yōu)先級(304)。 例如,分配器120可以接收來自輸入槽110的開始信號和優(yōu)先級指示符。分配單元配置輸入和輸出開關(guān)(306)。例如,分配器120可以配置輸入開關(guān)115以 從輸入槽110將與加密器無關(guān)的加密事件路由至打包加密塊130。分配器120可以配置輸 出開關(guān)140,將來自打包加密塊130的與加密器無關(guān)的結(jié)果事件路由至輸出FIFO 150。打包加密塊控制器接收開始信號(308)。例如,控制器130-4可以接收將被解析 為開始信號的“開始”事件。輸入轉(zhuǎn)換器將接收的與加密器無關(guān)的事件轉(zhuǎn)換為與加密器相 關(guān)的事件,并將其發(fā)送至加密器硬件(310)。例如,控制器130-4可以發(fā)送讀請求至輸入槽 110。這可以使與加密器無關(guān)的加密事件從輸入槽110被發(fā)送到輸入轉(zhuǎn)換器130-1。隨后, 輸入轉(zhuǎn)換器130-1將所接收的與加密器無關(guān)的事件轉(zhuǎn)換為與加密器相關(guān)的事件。與加密器 相關(guān)的事件和/或控制信號可以被發(fā)送到加密器硬件130-2。加密器硬件執(zhí)行加密功能(312)。例如,加密器硬件130-2可以執(zhí)行加密功能。在 一個示例中,加密器硬件可以執(zhí)行AES、TDES, Kasumi, SHA, RSA/ECC或其他加密功能。輸 出轉(zhuǎn)換器將所接收的與加密器相關(guān)的事件轉(zhuǎn)換為與加密器無關(guān)的事件,并將其發(fā)送至輸出 FIFO (314)。例如,輸出轉(zhuǎn)換器130-3可以將從加密器硬件130-2接收的與加密器相關(guān)的結(jié) 果事件和/或控制信號轉(zhuǎn)換為與加密器無關(guān)的結(jié)果事件。這些與加密器無關(guān)的結(jié)果事件可 以經(jīng)由輸出開關(guān)140被發(fā)送到輸出FIFO 150。加密器硬件發(fā)送完成信號(316)。例如,加密器硬件130-2可以發(fā)送與加密器相關(guān) 的事件或表示其完成的控制信號。分配單元將輸入和輸出開關(guān)斷開(318)。例如,分配器 120可以指示輸入開關(guān)115將輸入槽110與打包加密塊130斷開。分配器120還可以指示 輸出開關(guān)140將打包加密塊130與輸出FIFO 150斷開。在一個實施例中,可以存在兩個發(fā) 送給分配器120的指示符。第一指示符將在最后的與加密器無關(guān)的加密事件被發(fā)送給輸入 轉(zhuǎn)換器時被發(fā)送。在此時,分配器120可以釋放輸入槽以接收更多的與加密器無關(guān)的加密 事件。第二指示符將在最后的與加密器無關(guān)的結(jié)果事件離開輸出轉(zhuǎn)換器時被發(fā)送。在一個實施例中,與特定加密/哈希有關(guān)的事件遵從支持的撲克牌。不匹配將會 導(dǎo)致錯誤。換句話說,控制器130-4或131-4將進入錯誤狀態(tài)(ERR)以及可以發(fā)出ERROR輸 出信號。為了從錯誤狀態(tài)恢復(fù)的功能,需要發(fā)送CANCEL輸入信號。這就使加密器硬件100執(zhí) 行以下處理(1)從輸入槽110-112中的輸入FIFO去除當(dāng)前事件數(shù)據(jù)的其余部分;(2)發(fā)送 “中斷/取消”組合(例如,ENABLE = LVALID = 0,START = 1)至打包加密塊130-131。打 包加密塊 130-131 (1)發(fā)送 ERR_END_TRANS 塊至輸出 FIFO 150-152 中,并發(fā)布 D0NE_WRITE 信號;(2)將加密器硬件130-2、131-2設(shè)置為準(zhǔn)備好開始處理新事件的初始狀態(tài);(3)將控 制器130-4和131-4的內(nèi)部狀態(tài)改變?yōu)槌跏紶顟B(tài)。各個加密器硬件單元可以使用非常復(fù)雜的1/0接口格式和時序表。在表3的第一列中給出了其一個示例。在一個實施例中,在沒有時序表的情況下根據(jù)經(jīng)由FIFO發(fā)送的64 位塊描述數(shù)據(jù)流。這可以使用標(biāo)記語言經(jīng)由包括操作碼和若干標(biāo)記(例如,last = {0,1} 或size = {1..8})的8位控制信號來被格式化。在表3的第三和第四列中給出了用于輸 入和輸出FIFO的該標(biāo)記的示例。
在表3中,BEGIN_TRANS和END_TRANS (以及其錯誤變量)是兩個特殊命令,其“打 包”該事件并以通用術(shù)語對其定義。這些事件可以具有下面的變量(1) Id-與特定事件相 關(guān)的用戶定義的整數(shù);(2)優(yōu)先級-分配給事件的用戶定義的整數(shù);(3)方案-定義加密的 預(yù)定整數(shù);(4)參數(shù)-指定加密的特定模式(加密vs.解密模式,產(chǎn)生的必須的TAG等)的 預(yù)定整數(shù)(或控制位的集合)。在一個實施例中,所有類型的加密的輸入數(shù)據(jù)被分成64位塊。這些塊可以被組成 3種類型的段(1) SEND_KEY段;⑵SEND_IV段;(3) SEND_DATA段。每種類型可以由4種單 獨變量來表示。其可以在指定例如主密鑰和次密鑰時被使用。例如,這些變量的示例是(1) SEND_KEY_0 段;(2) SEND_KEY_1 段;(3) SEND_KEY_2 段;以及(4) SEND_KEY_3 段。為了給這些段/變量編碼,我們使用8位命令總線的4個最低有效位操作碼=
11COMMAND[3:0](用于BEGIN_TRANS和END_TRANS的代碼可以共享相同的代碼空間)。段的集 合以及段的順序都是與方案相關(guān)的。通常,方案嚴(yán)格指定使用的段的集合和順序。每個段 中的最后命令可以被特定標(biāo)志標(biāo)記為“l(fā)ast = 1”,而所有其他命令必須具有“l(fā)ast = 0”。 “l(fā)ast”位是COMMAND[4]。被稱為“aux” (aux = COMMAND[7 5])的3個最高有效位可以被 用于編碼長度。例如,當(dāng)發(fā)送不完全的數(shù)據(jù)塊時,在字節(jié)間隔上,0表示完全的8字節(jié)數(shù)據(jù), η表示η位不完全數(shù)據(jù),其中η = 1,2,. . .,7。默認(rèn)的,這些可以是最高有效字節(jié)。圖4是從特定于加密的事件的格式和時序得到母語言的與時序無關(guān)的事件的示 意圖。在圖4中,命令流狀態(tài)圖是從特定于加密的事件的格式和時序得到的。控制狀態(tài)圖 是從命令流狀態(tài)圖得到。最終,母語言中與時序無關(guān)的事件(“撲克牌”)是從流狀態(tài)圖得 到的。圖5示出了示例性的對于輸入槽110-112的FIFO的母語言位級描述。在圖5中, 對于BEGIN_ERR_TRAN和BEGIN_TRAN,用XXX表示的三個最低有效位(LSB)沒有被使用。 用E表示的最高有效位對于BEGIN_ERR_TRAN被設(shè)置為1。用于BEGIN_ERR_TRAN和BEGIN_ TRAN的操作碼是0001。用于SEND_KEY_NN、SEND_IV_NN以及SEND_DATA_NN的操作碼分別 是 01NNU0NN 禾口 IlNN0 NN 表示二進制的 0、1、2 或 3。因此,例如,SEND_DATA_01 將為 1101。 第L位代表“l(fā)ast”標(biāo)記。SSS表示可以用于不完整數(shù)據(jù)長度編碼的三個位。用于END_TRAN 以及END_ERR_TRAN的操作碼是0010。第E位(錯誤標(biāo)記)對于ENDjRAN被設(shè)置為0,以 及對于END_ERR_TRAN被設(shè)置為1。圖6示出了示例的對于輸出FIFO 150-152的母語言位級描述。在圖6中,對于 BEGIN_ERR_TRAN和BEGIN_TRAN,用XXX表示的三個最低有效位(LSB)沒有被使用。用E表 示的最高有效位對于BEGIN_ERR_TRAN被設(shè)置為1。用于BEGIN_ERR_TRAN和BEGIN_TRAN的 操作碼是0001。用于RESULT以及TAG的操作碼分別是IlZZ和10ZZ。ZZ表示二進制的0、 1、2或3。與該操作碼的前兩位一起,ZZ位表示塊類型(例如,結(jié)果、標(biāo)簽、哈希等)。L位 代表“l(fā)ast”標(biāo)志。SSS表示可以被用于不完整的數(shù)據(jù)長度編碼的三個位。用于END_TRAN 以及END_ERR_TRAN的操作碼是0010。E位(錯誤標(biāo)記)對于END_TRAN被設(shè)置為0,以及對 于END_ERR_TRAN被設(shè)置為1。為了進一步闡述母語言、撲克牌以及加密器硬件100的操作的概念,下面給出三 種不同形式的示例的GCM-AES事件(a) “數(shù)學(xué)”語言,即,根據(jù)GCM-AES標(biāo)準(zhǔn);(b)用于 GCM-AES核心的協(xié)議的“本地”記憶格式;(c)用于GCM-AES加密功能單元(CFU)的相應(yīng)事 件的母語言記憶格式。這些事件分別在表4、表5和表6中示出。注意(b)和(c)之間的 區(qū)別在于,在(b)中,協(xié)議是時鐘精確的,以及“;”表示“新時鐘周期”。換句話說,第一個 MAKE_MASK必須在SAVE_KEY之后正好15個時鐘周期被發(fā)送。在(c)中,“;”僅是數(shù)據(jù)塊 的分隔符,以及數(shù)據(jù)塊可以以隨機時鐘周期推入類似FIFO的接口 /從類似的FIFO接口彈 出ο表4中給出了 GCM-AES加密的示例的輸入?yún)?shù)和變量。
operation = authenticated encryption key length Ien(K) = 128 (decimal)
key K= feffe9928665731c6d6a8f9467308308 (hexadecimal)
initialization vector length Ien (IV) =96 (decimal) = 60 (hexadecimal)
initialization vector IV = cafebabefacedbaddecaf888(hexadecimal)
additional authenticated data(AAD) length Ien(A) ^ 96 (decimal) = 60 (hexadecimal) 表5中示出了按照GCM-AES核心協(xié)議組織的“本地”記憶格式的相同信息。 表6中示出了母語言記憶格式的按照GCM-AES CFU事件組織的相同信息。
表7給出了用于GCM-AES/GMAC的示例性撲克牌。
上面呈現(xiàn)的對本發(fā)明的描述是用于示例和描述。其不旨在窮舉或?qū)⒈景l(fā)明限制于 所披露的精確形式,根據(jù)上面的教導(dǎo),其他修改和變形都是可能的。選擇和描述的實施例是 為了最好地解釋本發(fā)明的原理及其實際應(yīng)用,從而使得本領(lǐng)域的其他技術(shù)人員能在適于期 待的實際使用的各種實施例和各種變形中最好地使用本發(fā)明。所附權(quán)利要求旨在被理解為 包括除了現(xiàn)有技術(shù)所限制的范圍之外的本發(fā)明的其他替換實施例。
權(quán)利要求
一種加密器硬件系統(tǒng),包括多個輸出槽,接收與加密器無關(guān)的加密事件;包括第一加密器硬件的第一打包加密塊,所述第一打包加密塊接收與加密器無關(guān)的加密事件以及發(fā)送第一與加密器相關(guān)的事件至所述第一加密器硬件,所述第一打包加密塊將所述與加密器無關(guān)的加密事件轉(zhuǎn)換成所述第一與加密器相關(guān)的事件,以及將從所述第一加密器硬件接收的第一與加密器相關(guān)的結(jié)果事件轉(zhuǎn)換成與加密器無關(guān)的結(jié)果事件;以及具有多個槽的第一輸出FIFO,所述第一輸出FIFO接收與所述第一打包加密塊相關(guān)聯(lián)的所述與加密器無關(guān)的結(jié)果事件。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述打包加密塊使用與加密器相關(guān)的時序?qū)⑺?第一與加密器相關(guān)的事件發(fā)送至所述第一加密器硬件。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),進一步包括包括第二加密器硬件的第二打包加密塊,所述第二打包加密塊接收與加密器無關(guān)的加 密事件以及發(fā)送第二與加密器相關(guān)的事件至所述第二加密器硬件,所述第二打包加密塊將 所述與加密器無關(guān)的加密事件轉(zhuǎn)換為所述第二與加密器相關(guān)的事件,以及將從所述第二加 密器硬件接收的第二與加密器相關(guān)的結(jié)果事件轉(zhuǎn)換成與加密器無關(guān)的結(jié)果事件。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),進一步包括輸入開關(guān),接收與加密器無關(guān)的加密事件,以及發(fā)送與加密器無關(guān)的加密事件至所述 第一打包加密塊和所述第二打包加密塊。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),進一步包括輸出開關(guān),接收來自第一打包加密塊的與加密器無關(guān)的結(jié)果事件,發(fā)送與所述第一打 包加密塊相關(guān)聯(lián)的與加密器無關(guān)的結(jié)果事件至所述第一輸出FIFO,以及發(fā)送與所述第二打 包加密塊相關(guān)聯(lián)的與加密器無關(guān)的結(jié)果事件至第二輸出FIFO。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),進一步包括分配單元,控制所述輸入開關(guān)和所述輸出開關(guān)。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中所述分配單元控制所述輸入開關(guān)、所述輸出開關(guān)、 所述第一打包加密塊、以及所述第二打包加密塊,從而所述第一加密器硬件和所述第二加 密器硬件并行執(zhí)行加密功能。
8.根據(jù)權(quán)利要求3所述的系統(tǒng),其中所述第一加密器硬件和所述第二加密器硬件執(zhí)行第一加密。
9.根據(jù)權(quán)利要求3所述的系統(tǒng),其中所述第一加密器硬件執(zhí)行第一加密以及所述第二 加密器硬件執(zhí)行第二加密。
10.一種提供加密服務(wù)的方法,包括接收與加密器無關(guān)的加密事件;將所述與加密器無關(guān)的加密事件接收到包括第一加密器硬件的第一打包加密塊中;將所述與加密器無關(guān)的加密事件轉(zhuǎn)換成第一與加密器相關(guān)的事件;發(fā)送第一與加密器相關(guān)的事件至所述第一加密器硬件;將從所述第一加密器硬件接收的第一與加密器相關(guān)的結(jié)果事件轉(zhuǎn)換成與加密器無關(guān) 的結(jié)果事件;以及將所述與加密器無關(guān)的結(jié)果事件接收到第一輸出FIFO中。
11.根據(jù)權(quán)利要求10所述的方法,其中所述發(fā)送第一與加密器相關(guān)的事件的步驟使用 與加密器相關(guān)的時序?qū)⑺龅谝慌c加密器相關(guān)的事件發(fā)送至所述第一加密器硬件。
12.根據(jù)權(quán)利要求10所述的方法,進一步包括將與加密器無關(guān)的加密事件接收到包括第二加密器硬件的第二打包加密塊中; 將所述與加密器無關(guān)的加密事件轉(zhuǎn)換成第二與加密器相關(guān)的事件; 發(fā)送第二與加密器相關(guān)的事件至所述第二加密器硬件;以及將從所述第二加密器硬件接收的第二與加密器相關(guān)的結(jié)果事件轉(zhuǎn)換成與加密器無關(guān) 的結(jié)果事件。
13.根據(jù)權(quán)利要求12所述的方法,其中所述第一加密器硬件和所述第二加密器硬件并 行執(zhí)行加密功能。
14.根據(jù)權(quán)利要求10所述的方法,其中不利用時序信息規(guī)定所述與加密器無關(guān)的加密 事件。
15.根據(jù)權(quán)利要求12所述的方法,其中所述第一加密器硬件和所述第二加密器硬件執(zhí)行第一加密。
16.根據(jù)權(quán)利要求12所述的方法,其中所述第一加密器硬件執(zhí)行第一加密以及所述第 二加密器硬件執(zhí)行第二加密。
17.根據(jù)權(quán)利要求16所述的方法,其中所述第一加密器硬件和所述第二加密器硬件具 有不同的時序要求。
全文摘要
披露了一種與加密器無關(guān)的加密器硬件服務(wù)。與加密器無關(guān)的事件被接收到輸入槽中(202)。輸入槽包括FIFO以容納事件。當(dāng)事件從FIFO被去除時,事件從與加密器無關(guān)的形式轉(zhuǎn)化為與加密器相關(guān)的形式(206)和時序。在由特定加密器硬件加密處理后,結(jié)果被發(fā)送至輸出FIFO(212)。多個FIFO和加密器硬件可以被使用,從而多個加密功能可以被并行和同時執(zhí)行。
文檔編號H04L9/08GK101919203SQ200980000270
公開日2010年12月15日 申請日期2009年4月10日 優(yōu)先權(quán)日2009年2月26日
發(fā)明者A·博洛托夫, C·塞維恩斯-威廉姆斯, L·伊萬諾維奇, M·格林楚克 申請人:Lsi公司