專利名稱:內(nèi)容保護(hù)系統(tǒng)中的密碼核心的制作方法
技術(shù)領(lǐng)域:
本發(fā)明與密碼系統(tǒng)有關(guān),具體地說(shuō)與密碼的硬件實(shí)現(xiàn)有關(guān)。
2.背景說(shuō)明數(shù)字內(nèi)容廣泛地分發(fā)給諸如計(jì)算機(jī)、網(wǎng)絡(luò)、和消費(fèi)電子器件之類的各種電子系統(tǒng)。內(nèi)容可以是音頻數(shù)據(jù)、視頻數(shù)據(jù)、靜止圖像數(shù)據(jù)、軟件、文本或任何其他可以以數(shù)字形式存儲(chǔ)和傳送給用戶的信息。一旦內(nèi)容呈現(xiàn)為數(shù)字形式,在存儲(chǔ)在系統(tǒng)的一個(gè)組成部分內(nèi)或從一個(gè)組成部分發(fā)給另一個(gè)組成部分時(shí)就很容易被拷貝或截獲。數(shù)字內(nèi)容的開(kāi)發(fā)人員和擁有者面對(duì)與這樣的設(shè)備有關(guān)的科學(xué)技術(shù)迅速發(fā)展力圖保護(hù)內(nèi)容中的他們的知識(shí)產(chǎn)權(quán)。保護(hù)數(shù)字內(nèi)容的一種方法是使用密碼。密碼系統(tǒng)可以用來(lái)對(duì)數(shù)字內(nèi)容加密,使得只有得到授權(quán)的用戶才可以對(duì)經(jīng)加密的數(shù)據(jù)解密。
有各種密碼系統(tǒng)可以用來(lái)保護(hù)數(shù)字內(nèi)容。一種系統(tǒng)是五公司(5C)數(shù)字傳輸內(nèi)容保護(hù)(DTCP}系統(tǒng)。DTCP方法為電子設(shè)備制造廠家提供了一種簡(jiǎn)單和經(jīng)濟(jì)的實(shí)現(xiàn)加密的方式,而仍能保持高度的安全。DTCP方法規(guī)定了防止音頻/視頻娛樂(lè)內(nèi)容在通過(guò)諸如遵從電氣和電子工程師學(xué)會(huì)(IEEE)高速串行總線1394-1995標(biāo)準(zhǔn)(IEEE 1394)之類的總線的高性能數(shù)字總線傳輸時(shí)被非法拷貝、竊聽(tīng)和竄改的密碼協(xié)議。這種拷貝保護(hù)系統(tǒng)保護(hù)的只是通過(guò)同一個(gè)或另一個(gè)核準(zhǔn)的拷貝保護(hù)系統(tǒng)傳送給電子設(shè)備的合法娛樂(lè)內(nèi)容。出現(xiàn)的許多技術(shù)都用了IEEE1394高速數(shù)字接口,包括臺(tái)式計(jì)算機(jī)系統(tǒng)、數(shù)字通用光盤(pán)(DVD)播放機(jī)、數(shù)字電視和數(shù)字機(jī)頂盒接收機(jī)。在這樣的設(shè)備中所用的透明的DTCP架構(gòu)使用戶可以欣賞高質(zhì)量的數(shù)字圖像和聲音,不會(huì)由于內(nèi)容保護(hù)方案而對(duì)性能或質(zhì)量有任何明顯的影響。
對(duì)于廣泛接受的DTCP方法,需要有一些低成本的加密和解密組件,可以實(shí)現(xiàn)內(nèi)容保護(hù),而不會(huì)不適當(dāng)?shù)匮舆t數(shù)字內(nèi)容的傳輸或使用戶感到不便。這樣的組件當(dāng)前還沒(méi)有。本發(fā)明就是要填補(bǔ)這方面的空缺和克服現(xiàn)有技術(shù)的其他一些缺點(diǎn)。
發(fā)明概述本發(fā)明的一個(gè)實(shí)施例是一種具有一個(gè)將明文數(shù)據(jù)加密成密文數(shù)據(jù)的密碼核心和一個(gè)與這個(gè)密碼核心連接的、將密文數(shù)據(jù)傳送到一個(gè)總線上的總線接口的密碼系統(tǒng)。在一個(gè)實(shí)施例中,這種密碼核心包括一個(gè)接收數(shù)據(jù)字、將這些數(shù)據(jù)字匯編成塊的塊匯編器;一個(gè)根據(jù)一個(gè)加密函數(shù)密鑰對(duì)塊加密的加密函數(shù);一個(gè)接收經(jīng)加密的塊、將經(jīng)加密的塊分解成加密數(shù)據(jù)字的塊發(fā)送器;以及一個(gè)控制加密函數(shù)對(duì)塊的多輪加密的控制器。
在另一個(gè)實(shí)施例中,密碼核心包括一個(gè)接收數(shù)據(jù)字、將這些數(shù)據(jù)字匯編成塊的塊匯編器;根據(jù)一個(gè)加密函數(shù)密鑰對(duì)塊加密的第一和第二加密函數(shù);一個(gè)接收經(jīng)加密的塊、將經(jīng)加密的塊分解成加密數(shù)據(jù)字的塊發(fā)送器;一個(gè)控制第一加密函數(shù)對(duì)塊的第一組多輪加密的第一控制器;以及一個(gè)控制第二加密函數(shù)對(duì)塊的第二組多輪加密的第二控制器。
附圖簡(jiǎn)要說(shuō)明從以下結(jié)合附圖對(duì)本發(fā)明所作的詳細(xì)說(shuō)明中可以清楚地看到本發(fā)明的這些特色和優(yōu)點(diǎn)。在這些附圖中
圖1為例示按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的在一個(gè)加密系統(tǒng)內(nèi)采用密碼的源設(shè)備和宿設(shè)備的示意圖;圖2為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的源設(shè)備的各個(gè)部分之間的數(shù)據(jù)流圖;圖3為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的內(nèi)容密碼子系統(tǒng)的原理圖;圖4為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的按小規(guī)模優(yōu)化的密碼核心的原理圖;圖5為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的小型密碼核心的結(jié)構(gòu)方框圖;圖6為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的內(nèi)容密鑰裝入處理的波形圖;圖7為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的明文裝入處理的波形圖;圖8為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的密文卸載處理的波形圖;圖9為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的按速率優(yōu)化的密碼核心的原理圖;以及圖10為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的快速密碼核心的結(jié)構(gòu)方框圖。
詳細(xì)說(shuō)明五公司(5C)數(shù)字傳輸內(nèi)容保護(hù)(DTCP)系統(tǒng)規(guī)定了一種保護(hù)音頻/視頻娛樂(lè)內(nèi)容的密碼協(xié)議,防止音頻/視頻娛樂(lè)內(nèi)容在通過(guò)諸如遵從IEEE 1394-1995標(biāo)準(zhǔn)的高性能串行總線之類的數(shù)字傳輸機(jī)制傳輸時(shí)被非法復(fù)制、截獲和竄改。這種內(nèi)容保護(hù)系統(tǒng)的一個(gè)部分是實(shí)現(xiàn)一種稱為M6-S56密碼的密碼的內(nèi)容密碼子系統(tǒng),可以用來(lái)對(duì)通過(guò)串行總線傳輸?shù)膬?nèi)容進(jìn)行加密/解密。這種密碼可以以經(jīng)變換的密碼塊鏈接方式使用,提供比普通的密碼塊鏈接更高的保密性。M6-S56密碼是一種基于嬗變-替代(permutation-substitution)的公用密鑰塊密碼算法。本發(fā)明的各種實(shí)施例包括一些實(shí)現(xiàn)M6-S56密碼的工作在加密模式的內(nèi)容密碼子系統(tǒng)的方式。然而,其他實(shí)施例可以實(shí)現(xiàn)其他密碼。此外,在這里討論的內(nèi)容密碼子系統(tǒng)可以修改成提供解密能力。
本發(fā)明的實(shí)施例包括一種具有一個(gè)在這里稱為“密碼核心(cipher core)”的中央密碼部件的內(nèi)容密碼子系統(tǒng)。本發(fā)明的一個(gè)實(shí)施例就硬件實(shí)現(xiàn)中的門數(shù)按小規(guī)模優(yōu)化(為“小型密碼核心”)。第二實(shí)施例按高吞吐量?jī)?yōu)化(為“快速密碼核心”)。第三實(shí)施例按低噪聲工作和容易綜合優(yōu)化(為“平靜密碼核心”)。
在本說(shuō)明中,所謂本發(fā)明的“一個(gè)實(shí)施例”是指結(jié)合這個(gè)實(shí)施例揭示的具體特色、結(jié)構(gòu)或特征包括在本發(fā)明的至少一個(gè)實(shí)施例內(nèi)。因此,在本說(shuō)明各處出現(xiàn)的“在一個(gè)實(shí)施例中”不一定是指同一個(gè)實(shí)施例。
圖1為例示按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的在一個(gè)內(nèi)容保護(hù)系統(tǒng)10內(nèi)采用密碼的源設(shè)備和宿設(shè)備的示意圖。源設(shè)備12可以通過(guò)一個(gè)諸如IEEE 1394總線16之類的高速串行總線與宿設(shè)備14連接,雖然本發(fā)明并不局限于此。源設(shè)備和宿設(shè)備可以是個(gè)人計(jì)算機(jī)(PC)、數(shù)字盒式磁帶錄像機(jī)(DVCR)、DVD播放機(jī)、數(shù)字電視機(jī)、計(jì)算機(jī)監(jiān)視器、立體聲設(shè)備、機(jī)頂盒,或者是任何能夠存儲(chǔ)、發(fā)送或顯示數(shù)字內(nèi)容的電子設(shè)備。在源設(shè)備12內(nèi)至少有一個(gè)內(nèi)容源18提供稱為明文數(shù)據(jù)的未加密數(shù)字內(nèi)容。內(nèi)容源18可以是一個(gè)只讀光盤(pán)存儲(chǔ)器(CD-ROM)、數(shù)字通用光盤(pán)(DVD)、硬盤(pán)或任何其他數(shù)字存儲(chǔ)媒體。內(nèi)容例如可以是視頻、音樂(lè)、軟件或任何其他數(shù)字?jǐn)?shù)據(jù)?;蛘?,也可以內(nèi)容源是一個(gè)對(duì)一個(gè)通信設(shè)備的通信接口,諸如衛(wèi)星、電纜、光纖鏈路或無(wú)線鏈路之類。明文可以由內(nèi)容密碼子系統(tǒng)20接收,內(nèi)容密碼子系統(tǒng)20可以配置成用密碼將明文加密成密文后再通過(guò)IEEE 1394接口發(fā)送。宿設(shè)備14包括一個(gè)相應(yīng)的內(nèi)容密碼子系統(tǒng)22,配置成可以將密文解密成明文。明文可以由內(nèi)容宿24例如通過(guò)在監(jiān)視器上顯示或者用揚(yáng)聲器產(chǎn)生聲音輸出呈遞給用戶(未示出)。因此,內(nèi)容保護(hù)系統(tǒng)10保護(hù)了在各部分之間傳輸期間的數(shù)字內(nèi)容?;蛘?,數(shù)字內(nèi)容還可以由存儲(chǔ)在內(nèi)容源18或內(nèi)容宿24的加密方案加密,從而提供一個(gè)附加的安全層。
圖2為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的源設(shè)備的各個(gè)部分之間的數(shù)據(jù)流圖。源設(shè)備可以包括一個(gè)處理器30和一個(gè)存儲(chǔ)器32。在一個(gè)實(shí)施例中,存儲(chǔ)器包括一個(gè)動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM),當(dāng)然也可以用其他存儲(chǔ)器。存儲(chǔ)器可以存儲(chǔ)至少一部分從內(nèi)容源接收的數(shù)字內(nèi)容。在數(shù)字內(nèi)容是運(yùn)動(dòng)圖像專家組(MPEG)數(shù)據(jù)時(shí),存儲(chǔ)器可以存儲(chǔ)一些分組化的基本數(shù)據(jù)流(PES)。處理器30配合內(nèi)容密碼子系統(tǒng)20,將明文數(shù)據(jù)和至少一個(gè)密鑰發(fā)送給內(nèi)容密碼子系統(tǒng)。內(nèi)容密碼子系統(tǒng)可以用這個(gè)密鑰按照一種密碼對(duì)明文數(shù)據(jù)加密。內(nèi)容密碼子系統(tǒng)將根據(jù)明文產(chǎn)生的密文通過(guò)一個(gè)同步鏈路發(fā)送給媒體接入控制器(MAC)34。在加密系統(tǒng)所用的總線是IEEE 1394總線時(shí),MAC包括一個(gè)1394鏈路層控制器。密文數(shù)據(jù)可以再通過(guò)物理層(PHY)接口36傳輸?shù)娇偩€上。在加密系統(tǒng)所用的總線是IEEE 1394總線時(shí),PHY包括一個(gè)1394物理層收發(fā)/仲裁器。在處理器30與MAC 34之間可以通過(guò)一個(gè)異步鏈路發(fā)送控制和狀態(tài)信息以及驗(yàn)證和密鑰交換(AKE)信息。
內(nèi)容密碼子系統(tǒng)從處理器30接收密鑰、非加密數(shù)據(jù)(clear data)和加密數(shù)據(jù)的消息。密鑰消息規(guī)定了以后用來(lái)對(duì)內(nèi)容加密的密鑰。非加密數(shù)據(jù)消息可以繞過(guò)密碼,直接發(fā)送給MAC接口34而不加密。加密數(shù)據(jù)消息包括需加密的內(nèi)容。在各實(shí)施例中,內(nèi)容密碼子系統(tǒng)提供輸入緩沖,以便容忍加密延遲、自動(dòng)IEEE 1394分組化和頭標(biāo)插入,以及機(jī)內(nèi)測(cè)試和性能測(cè)定操作。在這些實(shí)施例的設(shè)計(jì)中始終采用同步設(shè)計(jì)技術(shù),以保證在高時(shí)鐘頻率可靠工作和可靠綜合。
內(nèi)容密碼子系統(tǒng)20的每個(gè)實(shí)施例都可以用作內(nèi)容保護(hù)系統(tǒng)10的核心部分,可以用一個(gè)現(xiàn)場(chǎng)可編程門陣列(FPGA)、復(fù)合可編程邏輯器件(CPLD)、專用集成電路(ASIC)或定制數(shù)字集成電路實(shí)現(xiàn)。在所用的密碼是M6-S56密碼時(shí),在這里揭示的每個(gè)實(shí)施例都執(zhí)行M6-S56密碼工作在如由M6數(shù)字內(nèi)容保護(hù)規(guī)范(M6 Digital ContentProtection Specification,Volume 1,Revision 0.91,October8,1998,and Volume 2,Revision 0.8997,October 2,1998)所規(guī)定的經(jīng)變換的密碼塊鏈接(C-CBC)模式的所有功能,當(dāng)然本發(fā)明并不局限于此。
圖3為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的內(nèi)容密碼子系統(tǒng)的示意圖。處理器接口40可以與處理器30(在圖3中未示出)連接,使密碼子系統(tǒng)與處理器可以進(jìn)行通信。數(shù)據(jù)和密鑰消息、控制和狀態(tài)、性能參數(shù)、機(jī)內(nèi)測(cè)試數(shù)據(jù)和中斷都通過(guò)這個(gè)接口傳送。控制狀態(tài)寄存器(CSR)和中斷器42可以用來(lái)控制內(nèi)容密碼子系統(tǒng)的配置和通過(guò)處理器接口對(duì)處理器進(jìn)行中斷。數(shù)據(jù)輸入先進(jìn)先出(FIFO)緩存器44存儲(chǔ)從處理器接收的流數(shù)據(jù)。性能監(jiān)視器46監(jiān)視內(nèi)容密碼子系統(tǒng)在處理從處理器接收的數(shù)據(jù)和將經(jīng)加密的數(shù)據(jù)輸出到IEEE 1394總線上的執(zhí)行情況。反饋FIFO 48可以用來(lái)利用CSR對(duì)內(nèi)容密碼子系統(tǒng)進(jìn)行測(cè)試。它提供了機(jī)內(nèi)測(cè)試能力。CSR和中斷器42、數(shù)據(jù)輸入FIFO 44、性能監(jiān)視器46和反饋FIFO 48這些部分在各種具體實(shí)施方式
中都可以是按需要選擇的。消息分析器50執(zhí)行消息分析、凈荷路由選擇和自動(dòng)分組化,因此從在處理器上運(yùn)行的軟件中摘出這些功能。它通過(guò)檢驗(yàn)從處理器接收的消息的頭標(biāo)判讀這些消息。正如以上所討論的,消息包括可以繞過(guò)密碼器的非加密數(shù)據(jù)消息、含有密碼密鑰的密鑰消息和數(shù)據(jù)可以用密碼處理的加密數(shù)據(jù)消息。在消息是一個(gè)密鑰消息時(shí),就將密鑰數(shù)據(jù)凈荷裝入密碼核心。在消息是一個(gè)加密數(shù)據(jù)消息時(shí),就將凈荷部分分成一些分組轉(zhuǎn)到密碼核心52,而將IEEE 1394同步分組頭標(biāo)繞過(guò)密碼核心52直接發(fā)送給MAC接口。在消息是一個(gè)非加密數(shù)據(jù)消息時(shí),就將凈荷分成一些分組,頭標(biāo)和凈荷都繞過(guò)密碼核心52直接發(fā)送給MAC接口54。密碼核心52執(zhí)行加密處理,這將在下面詳細(xì)說(shuō)明。MAC接口54將密碼核心連接到1EEE 1394的MAC 34(圖3中未示出)上。
在一個(gè)實(shí)施例中,內(nèi)容密碼子系統(tǒng)20的密碼核心52可以按使芯片資源使用最少優(yōu)化。圖4為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的按小規(guī)模優(yōu)化的密碼核心的示意圖。這個(gè)小型M6密碼核心的工作情況可以概括如下。
內(nèi)容密碼子系統(tǒng)的消息分析器將一個(gè)具有64比特的內(nèi)容密鑰裝入密鑰產(chǎn)生器62的密鑰存儲(chǔ)器60,每次一個(gè)16比特的字。這是通過(guò)將密鑰數(shù)據(jù)加到明文輸入線64上和將相應(yīng)的Load Key Word(裝密鑰字)線66驅(qū)動(dòng)到高電平來(lái)執(zhí)行的,Load Key Word 1裝密鑰的最高位字(MSW),而Load Key Word 4裝密鑰的最低位字(LSW)。密鑰函數(shù)68接收內(nèi)容密鑰和從密文反饋寄存器70反饋的密文作為輸入?yún)?shù),產(chǎn)生一個(gè)Pi函數(shù)密鑰。在一個(gè)實(shí)施例中,密鑰函數(shù)只用64比特的內(nèi)容密鑰的最低的55比特。密鑰產(chǎn)生器內(nèi)的密文反饋寄存器可以在系統(tǒng)復(fù)位或加電時(shí)初始清零(即置為零)。
然后,內(nèi)容密碼子系統(tǒng)的消息分析器將明文數(shù)據(jù)裝入塊匯編器72,每次一個(gè)16比特的字,首先是最高位字。這是通過(guò)將明文數(shù)據(jù)加到Plaintext input(明文輸入)線64上和將Plaintext Ready(明文就緒)線74驅(qū)動(dòng)到高電平來(lái)執(zhí)行的。塊匯編器通過(guò)將PlaintextRead(明文讀取)線76驅(qū)動(dòng)到高電平來(lái)確認(rèn)所傳送的每個(gè)字。塊匯編器將明文的四個(gè)字匯編成一個(gè)64比特的塊。正在匯編一個(gè)塊時(shí),塊匯編器將Block in Progress(塊在處理中)線78驅(qū)動(dòng)到高電平,使線78保持高電平到整個(gè)匯編塊通過(guò)多工器(MUX)82傳送傳送給了Pi函數(shù)80。隨著一些塊成為可用的,塊匯編器啟動(dòng)一個(gè)在10輪控制器84內(nèi)的狀態(tài)機(jī),開(kāi)始對(duì)一個(gè)塊進(jìn)行加密。10輪控制器一啟動(dòng),塊匯編器就開(kāi)始匯編下一個(gè)明文數(shù)據(jù)塊。
10輪控制器84首先將一個(gè)匯編塊從塊匯編器72的裝入Pi函數(shù)80。然后延遲一段時(shí)間,等Pi函數(shù)的輸出穩(wěn)定。Pi函數(shù)80根據(jù)明文和Pi函數(shù)密鑰產(chǎn)生密文。然后,10輪控制器將Pi函數(shù)的輸出再裝入Pi函數(shù),再次延遲。這個(gè)再裝入和延遲的過(guò)程對(duì)于總共為10輪的可以再重復(fù)八次。Pi函數(shù)80接收一個(gè)明文塊和一個(gè)密鑰作為輸入?yún)?shù),輸出一個(gè)密文塊??梢杂腥齻€(gè)Pi函數(shù)變量。5C DTCP系統(tǒng)為每輪指定其中的一個(gè)變量。變量的選擇由10輪控制器控制。
在第五輪,經(jīng)部分加密的塊可以裝入密鑰產(chǎn)生器62內(nèi)的密文反饋寄存器70??梢杂眠@個(gè)部分加密的塊與內(nèi)容密鑰一起計(jì)算對(duì)下一個(gè)明文塊加密需用的Pi函數(shù)密鑰。在第十輪,可以將完全加密的密文裝入塊發(fā)送器86,更新密鑰函數(shù)68的輸出。然后,可以啟動(dòng)一個(gè)在塊發(fā)送器內(nèi)的狀態(tài)機(jī)。隨著完全加密的密文塊成為可用時(shí),塊發(fā)送器就將它們分解成一個(gè)個(gè)16比特的字發(fā)送給MAC接口,每次一個(gè)字,首先是最高位字。這是通過(guò)將密文數(shù)據(jù)加到Ciphertext output(密文輸出)線88上再將Ciphertext Ready(密文就緒)線90驅(qū)動(dòng)到高電平來(lái)執(zhí)行的。MAC接口通過(guò)將Ciphertext Read(密文讀取)線92驅(qū)動(dòng)到高電平來(lái)確認(rèn)每字的傳送。
一個(gè)加密幀的最后一個(gè)字可以在消息分析器隨著最后一個(gè)明文數(shù)據(jù)字將Plaintext Last(明文最后)線94驅(qū)動(dòng)到高電平時(shí)予以指示。此時(shí),有兩個(gè)可能的情況決定密碼器將怎樣繼續(xù)進(jìn)行處理。如果加密幀在一個(gè)完全塊上終止(即,如果幀容量的比特?cái)?shù)為64的整數(shù)倍),密碼核心就用與前面的塊一樣的方式加密和發(fā)送這個(gè)塊,只是隨著密文的最后一個(gè)字可以將Ciphertext Last線96驅(qū)動(dòng)到高電平。如果加密幀在一個(gè)不完全塊上終止(即,幀容量的比特?cái)?shù)不是64的整數(shù)倍),可以將前一個(gè)密文塊再裝入Pi函數(shù),對(duì)它再執(zhí)行10輪。然后,可以將結(jié)果中長(zhǎng)度等于終止這個(gè)幀的不完全塊的最低位部分與尚未加密的不完全塊進(jìn)行異或。然后,可以將最終結(jié)果(經(jīng)加密的不完全塊)發(fā)送給MAC接口,隨著密文的最后一個(gè)字將Ciphertext Last線驅(qū)動(dòng)到高電平。可以只將在終止這個(gè)幀的不完全塊內(nèi)存在的這些字傳送給MAC接口。
內(nèi)容密碼子系統(tǒng)不許改變內(nèi)容密鑰,直到密碼器處理了整個(gè)加密幀。一個(gè)幀的最后一個(gè)密文字一傳送給外部系統(tǒng),密鑰產(chǎn)生器62內(nèi)的密文反饋寄存器70就可以清零(即置零),Block in Progress線78可以驅(qū)動(dòng)到低電平,從而可以著手處理一個(gè)新的加密幀。新的加密幀可以重用上一個(gè)內(nèi)容密鑰而不需要再裝入密鑰,也可以在裝明文數(shù)據(jù)前將一個(gè)新的內(nèi)容密鑰裝入密鑰存儲(chǔ)器60。
實(shí)現(xiàn)M6-S56 C-CBC密碼的密碼核心可以用超高速集成電路(VHSIC)硬件設(shè)計(jì)語(yǔ)言(VHDL)的語(yǔ)法分層描述。這種體系結(jié)構(gòu)包括一些與同時(shí)的信號(hào)賦值互聯(lián)的子部分和過(guò)程。每個(gè)部分可以是參數(shù)化的,以便需要時(shí)修改方便。在一個(gè)實(shí)施例中,密碼核心的頂層設(shè)計(jì)實(shí)體可以實(shí)現(xiàn)為m6_small部分。圖5為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的小型密碼核心的結(jié)構(gòu)方框圖。
在一個(gè)實(shí)施例中,這個(gè)小型密碼核心的輸入輸出端口可以用以下實(shí)體描述定義。--小型密碼核心實(shí)體library ieee;use ieee.std_logic_1164.all;--標(biāo)準(zhǔn)的九值邏輯系統(tǒng)use work.constants.all; --全局設(shè)計(jì)參數(shù)entity m6_small isport(clockin std_logic; --系統(tǒng)時(shí)鐘clearin std_Idgic; --異步清零resetin std_logic; --同步復(fù)位ptinin std_logic_vector(WORDSIZE-1 downto 0);--明文ptrdyin std_logic; --明文就緒ptlastin std_logic; --明文最后ptrdout std_logic; --明文讀取ctoutout std_logic_vector(WORDSIZE-1 downto 0);-密文ctrdyout std_logic; --密文就緒ctlastout std_logic; --密文最后ctrdin std_logic;--密文讀取bipout std logic;--塊在處理中ckld1in std_logic; --內(nèi)容密鑰字1裝入ckld2in std_logic; --內(nèi)容密鑰字2裝入ckld3in std_ldgic; --內(nèi)容密鑰字3裝入ckld4in std_logic); --內(nèi)容密鑰字4裝入end m6_small;
除清零信號(hào)100外,所有信號(hào)可以相對(duì)時(shí)鐘信號(hào)102同步。輸入信號(hào)可以予以采樣,而輸出信號(hào)在時(shí)鐘信號(hào)102的上升邊處改變。清零信號(hào)100可以是異步的,用作通電復(fù)位。Synchronous Reset(同步復(fù)位)信號(hào)104起著與Clear信號(hào)相同的作用,只是它是與Clock(時(shí)鐘)信號(hào)同步的。它將密碼器復(fù)位到清零狀態(tài)(例如,準(zhǔn)備接收內(nèi)容密鑰和明文)。信號(hào)Ptin 106、Ptrdy 108、Ptlast 110和Ptrd 112包括明文輸入接口。信號(hào)Ctout 114、Ctrdy 116、Ctlast 118和Ctrd 120包括密文輸出接口。Ckld1-4信號(hào)122可以與Ptin信號(hào)一起用來(lái)裝入一個(gè)56比特的內(nèi)容密鑰。Bip信號(hào)124包括一個(gè)給消息分析器的狀態(tài)指示符。所有信號(hào)用的都是正邏輯。
圖6為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的內(nèi)容密鑰裝入處理的波形圖。一個(gè)56比特的內(nèi)容密鑰可以通過(guò)將密鑰數(shù)據(jù)加到Ptin輸入信號(hào)106上和將相應(yīng)的Ckld1-4信號(hào)122驅(qū)動(dòng)為高電平裝入密碼核心,Ckld1裝入最高位字(MSW),而Ckld4裝入最低位字(LSW)。圖6所示的波形例示了一個(gè)內(nèi)容密鑰為Ox1234567890abcd的例子的裝入情況。
圖7為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的明文裝入處理的波形圖。明文數(shù)據(jù)可以通過(guò)將明文數(shù)據(jù)加到Ptin 106輸入信號(hào)上再將Ptrdy108驅(qū)動(dòng)到高電平每次將一個(gè)16比特的字裝入密碼核心,首先是最高位字。密碼核心通過(guò)將Ptrd 112驅(qū)動(dòng)到高電平確認(rèn)每個(gè)字的傳送。通過(guò)隨著最后一個(gè)明文數(shù)據(jù)字將Ptlast 110驅(qū)動(dòng)到高電平指示這是一個(gè)密碼幀的最后一個(gè)明文字。圖7所示的波形例示了將一個(gè)明文幀裝入密碼核心的情況。
圖8為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的密文卸載處理的波形圖。密文可以通過(guò)每當(dāng)檢測(cè)到Ctrdy 116為高電平時(shí)從Ctou端口114接收密文數(shù)據(jù),從密碼核心每次卸載一個(gè)16比特的字,首先是最高位字。MAC接口通過(guò)將Ctrd 120驅(qū)動(dòng)到高電平來(lái)確認(rèn)每個(gè)字的傳送。可以在隨著最后一個(gè)密文數(shù)據(jù)字檢測(cè)到Ctlast 118為高電平時(shí),指出這是一個(gè)密碼幀的最后一個(gè)密文字。圖8所示的波形例示了從密碼器卸載一個(gè)密文幀的情況。
再來(lái)看圖5,塊匯編器部分Blockasm 130對(duì)將消息分析器裝入的16比特明文字匯編成64比特密碼塊進(jìn)行控制,每當(dāng)一個(gè)塊就緒時(shí)就啟動(dòng)10輪控制器,控制對(duì)終止一個(gè)密碼幀的不完全塊加密,以及在密碼幀之間對(duì)密文反饋寄存器清零。在一個(gè)實(shí)施例中,這個(gè)塊匯編器的輸入輸出端口可以用以下實(shí)體描述定義。--塊匯編器實(shí)體library ieee;use ieee.std_logic_11 64.all;entity blockasm isport(clock in std_logic;--系統(tǒng)時(shí)鐘clearin std_logic; --異步清零resetin std_logic; --同步復(fù)位ptrdyin std_logic; --明文就緒ptlastin std_logic; --最后一個(gè)明文字bipin1in std_logic; --塊在處理中(第一級(jí))bipin2in std_logic; --塊在處理中(第二級(jí))bipin3in std_logic; --塊在處理中(tx級(jí))ptrdout std_logic; --明文讀取ldwrd1out std_logic; --裝入字1ldwrd2out std_logic; --裝入字2ldwrd3out std_logic; --裝入字3ldwrd4out std logic; --裝入字4ldpartout std_logic; --裝入不完全塊initout std_logic; --密碼器初始化goout std_logic; --密碼器運(yùn)行partwrd1out std_logic; --不完全塊(1字)partwrd2out std_logic; --不完全塊(2字)partwrd3out std_logic; --不完全塊(3字)lastblkout stdJogic; --最后一個(gè)塊bipout std_logic); --塊在處理中end blockasm;
輸入信號(hào)ptrdy、ptlast和輸出信號(hào)ptrd可以用來(lái)作為消息分析器傳送明文數(shù)據(jù)的握手信號(hào)。輸入信號(hào)bipin1-3為塊匯編器提供10輪控制器和塊發(fā)送部分的狀態(tài)。輸出信號(hào)ldwrd1-4可以在過(guò)程ptblk_proc 132中用來(lái)按次序?qū)⒚魑淖盅b入明文塊。輸出信號(hào)ldpart使過(guò)程ptblk_proc再裝入先前加密的密文塊進(jìn)行再加密(這只在一個(gè)密碼幀在一個(gè)不完全塊內(nèi)終止時(shí)使用)。輸出信號(hào)init可以在過(guò)程ctpart_proc 134中用來(lái)對(duì)密文反饋寄存器清零。輸出信號(hào)go可以用來(lái)啟動(dòng)10輪控制器內(nèi)的狀態(tài)機(jī)。輸出信號(hào)partwrd1-3和lastblk可以在過(guò)程ctout_proc 136中由塊發(fā)送部分用來(lái)控制一個(gè)密碼幀的最后一個(gè)塊的傳輸和不完全塊的加密。輸出信號(hào)bip向消息分析器指出密碼器的狀態(tài)。
10輪控制器部分r10ctrl 135控制各個(gè)64比特明文塊的加密。它包括一個(gè)規(guī)定每輪的持續(xù)時(shí)間、使各信號(hào)穩(wěn)定通過(guò)Pi函數(shù)的定時(shí)器和一個(gè)掌握各輪的狀態(tài)機(jī)。在一個(gè)實(shí)施例中,這個(gè)10輪控制器器的輸入輸出端口可以用以下實(shí)體描述定義。--10輪控制器實(shí)體library ieee;use ieee.std_logic_11 64.alI;entity r10ctrl isgeneric(ROUNDDLYpositive=3;--輪延遲CNTRBITSpositive=2);--輪延遲計(jì)數(shù)器比特Port(clockin std_logic; --系統(tǒng)時(shí)鐘clearin std_logic; --異步清零resetin std_logic; --同步復(fù)位goin std_logic; --密碼器運(yùn)行bipinin std_logic; --塊在處理中(下一級(jí))blockrdyout_stdjogic; --密文塊完成
enrnd1out std_logic; --啟動(dòng)輪1enrnd2out std_logic; --啟動(dòng)輪2enrnd3out std logic; --啟動(dòng)輪3enrnd4out std_logic; --啟動(dòng)輪4enrnd5out std_logic; --啟動(dòng)輪5enrnd6out std_logic; --啟動(dòng)輪6enrnd7out std_logic; --啟動(dòng)輪7enrnd8out std_logic; --啟動(dòng)輪8enrnd9out std_logic; --啟動(dòng)輪9enrnd10out std_logic; --啟動(dòng)輪10ldpartout std_loyic; --裝部分結(jié)果寄存器ldrsltout std_logic; --裝最終結(jié)果寄存器ldfdbkout std_logic; --裝反饋寄存器ldnxtblkout std_logic;--裝下一個(gè)明文塊bipout std_logic);--塊在處理中end r10ctrl;由塊匯編器驅(qū)動(dòng)的輸入信號(hào)go啟動(dòng)10輪控制器的狀態(tài)機(jī)。輸入信號(hào)bipin為10輪控制器提供塊發(fā)送部分的狀態(tài)。輸出信號(hào)blockrdy可以用來(lái)在一個(gè)塊已加密后對(duì)塊發(fā)送器內(nèi)的狀態(tài)機(jī)初始化。輸出信號(hào)enrnd1-10可以用來(lái)選擇每輪所用的Pi函數(shù)變量。輸出信號(hào)ldpart可以在過(guò)程ctpart_proc 134中用來(lái)將經(jīng)第五輪部分加密的密文塊裝入密文反饋寄存器。輸出信號(hào)ldrslt可以在過(guò)程ctrslt_proc 140中用來(lái)裝入經(jīng)完全加密的密文塊。輸出信號(hào)ldfdbk和ldnxtblk可以在過(guò)程ptblk_proc 132中用來(lái)為Pi函數(shù)選擇數(shù)據(jù)源。Ldfdbk選擇Pi函數(shù)的輸出,為執(zhí)行下一輪作準(zhǔn)備。Ldnxtblk選擇塊匯編器的輸出,以對(duì)下一個(gè)明文塊進(jìn)行加密。輸出信號(hào)bip為塊匯編器提供10輪控制器的狀態(tài)。
在本發(fā)明中提供了Pi函數(shù)的兩個(gè)實(shí)施例。在一個(gè)實(shí)施例中,pi_comb包括一個(gè)組合式的Pi函數(shù)。一些輸入信號(hào)組合地通過(guò)算術(shù)運(yùn)算異步到達(dá)輸出線。這個(gè)實(shí)施例可以在要求吞吐量高時(shí)使用。這個(gè)實(shí)施例可用于小型密碼核心和快速密碼核心。在另一個(gè)實(shí)施例中,pi_seq包括一個(gè)相繼式的Pi函數(shù)。一些輸入信號(hào)按時(shí)鐘相繼通過(guò)每個(gè)接連的算術(shù)運(yùn)算同步地到達(dá)輸出線。這個(gè)實(shí)施例可以在要求低噪聲工作時(shí)使用。這個(gè)實(shí)施例可用于平靜密碼核心。
在一個(gè)實(shí)施例中,這個(gè)組合Pi函數(shù)的輸入輸出端口可以用以下實(shí)體描述定義。--組合Pi函數(shù)實(shí)體library ieee;use ieee.std_logic_1164.aIl;--IEEE標(biāo)準(zhǔn)的九值邏輯系統(tǒng)use work.constants.all; --全局常量entity pi_comb isgeneric(S1 positive=2; --旋轉(zhuǎn)指數(shù)1S2 positive=11; --旋轉(zhuǎn)指數(shù)2S3 positive=17); --旋轉(zhuǎn)指數(shù)3Port(pi123in std_logic; --pi變量123允許pi132in std_logic;--pi變量132允許pi213in std_logic;--pi變量213允許pi312in std_logic;--pi變量312允許key1in std_logic_vector(BLOCKSIZE/2-1 downto 0);--密鑰1key2in std_logic_vector(BLOCKSIZE/2-1 downto 0);--密鑰2inputin std_logic_vector(BLCKSIZE-1 downto 0);--輸入塊outputout std_logic_vector(BLOCKSIZE-1 downto 0));--輸出塊end pi_comb;輸入信號(hào)pi 123、pi 132、pi 213和312選擇每輪的Pi變量。輸入信號(hào)key1-2包括兩個(gè)32比特的Pi函數(shù)密鑰。輸入包括64比特的Pi函數(shù)輸入塊,輸出包括64比特的Pi函數(shù)輸出塊。
在一個(gè)實(shí)施例中,這個(gè)相繼Pi函數(shù)的輸入輸出端口可以用以下實(shí)體描述定義。--相繼Pi函數(shù)實(shí)體library ieee;use ieee.std_logic_1164.all;--IEEE標(biāo)準(zhǔn)的九值邏輯系統(tǒng)use work.constants.all; --全局常量entity pi_seq isgeneric(S1positive=2;--第一旋轉(zhuǎn)指數(shù)S2positive=11;--第二旋轉(zhuǎn)指數(shù)S3positive=17); --第三旋轉(zhuǎn)指數(shù)Port(clockin std_logic; --系統(tǒng)時(shí)鐘clearin std_logic;--異步清零pi123in std_logic;--pi變量123允許pi132in std_logic;--pi變量132允許pi213in std_logic;--pi變量213允許pi312in std_logic;--pi變量312允許key1in std_logic_vector(BLOCKSIZEI2-1 downto 0);--密鑰1key2in std_logic_vector(BLOCKSIZE/2-1 downto 0);--密鑰2inputin std_logic_vector(BLOCKSIZE-1 downto 0);--輸入塊outputout std_logic_vector(BLOCKSIZE-1 downto0));--輸出塊end pi_seq;
輸入信號(hào)pi 123、pi 132、pi 213和312選擇每輪的Pi變量。輸入信號(hào)key1-2包括兩個(gè)32比特的Pi函數(shù)密鑰。輸入包括64比特的Pi函數(shù)輸入塊,輸出包括64比特的Pi函數(shù)輸出塊。
塊發(fā)送部分blocktx 142對(duì)將64比特的密文塊分解成16比特的字進(jìn)行控制,將這些字傳送給MAC接口。在一個(gè)實(shí)施例中,這個(gè)塊發(fā)送器的輸入輸出端口可以用以下實(shí)體描述定義。--塊發(fā)送器實(shí)體library ieee;use ieee.std_logic_1164.all;entity blocktx isport(clockin std_logic; --系統(tǒng)時(shí)鐘clearin std_logic; --異步清零resetin std_logic; --同步復(fù)位partrdy1in std_logic;--不完全塊就緒(一個(gè)字)partrdy2in std_logic;--不完全塊就緒(兩個(gè)字)partrdy3in std_logic;--不完全塊就緒(三個(gè)字)blockrdyin std_logic;--密文塊就緒lastblkin std_logic; --幀的最后一個(gè)密文塊ctrdin std_Iogic;--密文讀取blkwrd1out std_logic; --密文塊字1選擇blkwrd2out std_logic; --密文塊字2選擇blkwrd3out std_logic; --密文塊字3選擇blkwrd4out std_logic; --密文塊字4選擇partwrd1out std_logic; --不完全塊字1選擇partwrd2out std_logic; --不完全塊字2選擇partwrd3out std_logic; --不完全塊字3選擇ctrdyout std_logic; --密文就緒ctlastout std_logic;--幀的最后一個(gè)密文字
bipout std_logic); --塊在處理中end blocktx;由10輪控制器驅(qū)動(dòng)的輸入信號(hào)blockrdy啟動(dòng)塊發(fā)送部分的狀態(tài)機(jī)。由塊匯編器驅(qū)動(dòng)的輸入信號(hào)partrdy1-3和lastblk指出密碼幀狀態(tài)的終止。輸入信號(hào)partrdy1-3分別指出在由一個(gè)、兩個(gè)或三個(gè)字組成的不完全塊內(nèi)終止的幀。輸入信號(hào)Lastblk指出幀在一個(gè)完全塊內(nèi)終止。輸出信號(hào)ctrdy、ctlast和輸入信號(hào)ctrd可以用來(lái)作為數(shù)據(jù)傳送時(shí)與MAC接口的握手信號(hào)。輸出信號(hào)blkwrd1-4和partwrd1-3可以在過(guò)程ctout_proc 136中用來(lái)選擇將哪個(gè)密文字傳送給MAC接口。輸出信號(hào)Blkwrd1-4分別選擇密文字1(MSW)至4(LSW)。輸出信號(hào)Partwrd1-3分別選擇不完全塊密文字1至3。輸出信號(hào)bip為10輪控制器和塊匯編器提供塊發(fā)送部分的狀態(tài)。
在本發(fā)明的另一個(gè)實(shí)施例中,密碼核心可以是按高吞吐量?jī)?yōu)化的。雖然這個(gè)實(shí)施例在規(guī)模上要比小型密碼核心大(即,耗費(fèi)較多的芯片資源),但它仍保持在可用一個(gè)FPGA或CPLD實(shí)現(xiàn)的合理的規(guī)模內(nèi)。圖9為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的按速率優(yōu)化的密碼核心的示意圖??焖倜艽a核心的工作情況與小型密碼核心的類似。一個(gè)差別是10輪控制器用了兩個(gè)五輪控制器代替,而且雙重配置了Pi函數(shù)和有關(guān)電路。這種體系結(jié)構(gòu)將密碼器分成兩級(jí),每級(jí)執(zhí)行5輪,總共為10輪。第一級(jí)執(zhí)行5輪后,將經(jīng)部分加密的第五輪塊裝入密鑰產(chǎn)生器內(nèi)的密文反饋寄存器。第二級(jí)裝入來(lái)自第一級(jí)的經(jīng)部分加密的第五輪塊和Pi函數(shù)密鑰后執(zhí)行第六至十輪。第二級(jí)一啟動(dòng),第一級(jí)就開(kāi)始對(duì)下一個(gè)塊加密。這樣,密碼核心每次同時(shí)處理兩個(gè)塊,從而使吞吐量接近單級(jí)實(shí)現(xiàn)的兩倍。加密成幀以與小型密碼核心類似的方式處理。差別是在一個(gè)在一個(gè)不完全塊內(nèi)終止的幀上,前一塊密文可以根據(jù)第二級(jí)恢復(fù)和傳回第一級(jí)。塊匯編和傳輸處理與上面討論到的小型密碼核心所提供的處理類似。
在一個(gè)實(shí)施例中,快速密碼核心的頂層設(shè)計(jì)實(shí)體包括m6_fast部分。圖10為按照本發(fā)明的一個(gè)實(shí)施例設(shè)計(jì)的快速密碼核心的結(jié)構(gòu)方框圖。在一個(gè)實(shí)施例中,這個(gè)快速密碼核心的輸入輸出端口可以用以下實(shí)體描述定義。--快速密碼核心實(shí)體library ieee;use ieee.std_logic_1164.all; --標(biāo)準(zhǔn)的九值邏輯系統(tǒng)use work.constants.all; --全局設(shè)計(jì)參數(shù)entity m6_fast isport(clockin std_logic; --系統(tǒng)時(shí)鐘clearin std_logic; --異步清零resetin std_logic; --同步復(fù)位ptinin std_logic_vector(WORDSIZE-1 downto 0);--明文ptrdyin std_logic; --明文字就緒ptlastin std_logic; --最后一個(gè)明文字就緒ptrdout std_logic; --明文字讀取ctoutout std_logic_vector(WORDSIZE-1 downto 0);--密文ctrdyout std_logic; --密文字就緒ctlastout std_logic; --最后一個(gè)密文字就緒ctrdin std_logic;--密文字讀取bipout std_logic;--塊在處理中ckld1in std_logic; --內(nèi)容密鑰字1裝入ckld2in std_logic; --內(nèi)容密鑰字2裝入ckld3in std_logic; --內(nèi)容密鑰字3裝入ckld4in std_logic); --內(nèi)容密鑰字4裝入end m6_fast;
快速密碼核心的I/O接口與在小型密碼核心中所用的相同??焖倜艽a核心的塊匯編器部分、組合和相繼Pi函數(shù)部分、塊發(fā)送部分都與在小型密碼核心中所用的相同。
兩個(gè)5輪控制器部分r5ctrl控制各個(gè)64比特明文塊的加密。它們包括一個(gè)規(guī)定每輪的持續(xù)時(shí)間、使各信號(hào)穩(wěn)定通過(guò)Pi函數(shù)的定時(shí)器和一個(gè)掌握各輪的狀態(tài)機(jī)。在快速密碼核心中用兩個(gè)5輪控制器和兩個(gè)Pi函數(shù)來(lái)建立一個(gè)兩級(jí)的流水線。第一級(jí)執(zhí)行輪1-5,而第二級(jí)執(zhí)行輪6-10。這樣,可以同時(shí)處理兩個(gè)明文塊,有效地使密碼器的吞吐量加倍。在一個(gè)實(shí)施例中,這個(gè)5輪控制器的輸入輸出端口可以用以下實(shí)體描述定義。--5輪控制實(shí)體library ieee;use ieee.std_logic_1164.all;entity r5ctrl isgeneric(ROUNDDLYpositive=3; --輪延遲CNTRBITSpositive=2);--輪延遲計(jì)數(shù)器比特Port(clockin std_logic;--系統(tǒng)時(shí)鐘clearin std_logic; --異步清零resetin std_logic; --同步復(fù)位goin std_logic;--密碼器運(yùn)行bipinin std_logic; --塊在處理中(下一級(jí))blockrdyout std_logic; --密文塊完成enrnd1out std_logic; --啟動(dòng)輪1enrnd2out std_logic; --啟動(dòng)輪2enrnd3out std_logic; --啟動(dòng)輪3enrnd4out std_logic; --啟動(dòng)輪4enrnd5out std_logic; --啟動(dòng)輪5
ldrsltout std_logic; --裝結(jié)果寄存器ldfdbkout std_logic; --裝反饋寄存器ldnxtblkout std_logic; --裝下一個(gè)明文塊bipout std_logic); --塊在處理中end r5ctrl;輸入信號(hào)go啟動(dòng)5輪控制器的狀態(tài)機(jī)。輸入信號(hào)bipin為5輪控制器提供下一級(jí)的狀態(tài)。輸出信號(hào)blockrdy用來(lái)在處理了一個(gè)塊后立即啟動(dòng)下一輪。輸出信號(hào)enrnd1-5可以用來(lái)選擇每輪所用的Pi函數(shù)變量。輸出信號(hào)ldrslt可以用來(lái)將一個(gè)塊在處理完成后立即存儲(chǔ)起來(lái)。輸出信號(hào)ldfdbk和ldnxtblk可以用來(lái)為Pi函數(shù)選擇數(shù)據(jù)源。輸出信號(hào)Ldfdbk選擇Pi函數(shù)的輸出,為執(zhí)行下一輪作準(zhǔn)備。輸出信號(hào)Ldnxtblk選擇前級(jí)的輸出,以開(kāi)始處理下一個(gè)塊。輸出信號(hào)bip為下一級(jí)提供5輪控制器的狀態(tài)。
因此,以上說(shuō)明了內(nèi)容密碼子系統(tǒng)的密碼核心的三個(gè)實(shí)施例。根據(jù)系統(tǒng)要求,可以從這些實(shí)施例中選擇一個(gè)來(lái)保護(hù)要通過(guò)一個(gè)諸如IEEE 1394總線之類的數(shù)字傳輸線路傳送的數(shù)據(jù)。
雖然本發(fā)明是結(jié)合一些例示性的實(shí)施例進(jìn)行說(shuō)明的,但這說(shuō)明并不是限制性的。對(duì)于熟悉該技術(shù)領(lǐng)域的人員來(lái)說(shuō),這些例示性的實(shí)施例的各種變型和本發(fā)明的其他實(shí)施方式都是顯而易見(jiàn)的,因此都應(yīng)屬于本發(fā)明的專利保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種對(duì)數(shù)據(jù)加密的設(shè)備,所述設(shè)備包括一個(gè)接收數(shù)據(jù)字和將這些數(shù)據(jù)字匯編成塊的塊匯編器;一個(gè)與塊匯編器連接、根據(jù)一個(gè)加密函數(shù)密鑰對(duì)塊加密的加密函數(shù);一個(gè)與加密函數(shù)連接、接收經(jīng)加密的塊和將經(jīng)加密的塊分解成加密數(shù)據(jù)字的塊發(fā)送器;以及一個(gè)與塊匯編器、加密函數(shù)和塊發(fā)送器連接、對(duì)加密函數(shù)對(duì)塊的多輪加密進(jìn)行控制的控制器。
2.一種對(duì)數(shù)據(jù)加密的設(shè)備,所述設(shè)備包括一個(gè)接收數(shù)據(jù)字和將這些數(shù)據(jù)字匯編成塊的塊匯編器;與塊匯編器連接、根據(jù)一個(gè)加密函數(shù)密鑰對(duì)塊加密的第一和第二加密函數(shù);一個(gè)與第一和第二加密函數(shù)連接、接收經(jīng)加密的塊和將經(jīng)加密的塊分解成加密數(shù)據(jù)字的塊發(fā)送器;一個(gè)與塊匯編器和第一加密函數(shù)連接、對(duì)第一加密函數(shù)對(duì)塊的第一組多輪加密進(jìn)行控制的第一控制器。以及一個(gè)與第一控制器和第二加密函數(shù)連接、對(duì)第二加密函數(shù)對(duì)塊的第二組多輪加密進(jìn)行控制的第二控制器。
3.一種密碼系統(tǒng),所述密碼系統(tǒng)包括一個(gè)將明文數(shù)據(jù)加密成密文數(shù)據(jù)的密碼核心;以及一個(gè)與密碼核心連接、將密文數(shù)據(jù)傳送到一個(gè)總線上的總線接口。
4.一種對(duì)數(shù)據(jù)加密的設(shè)備,所述設(shè)備包括接收數(shù)據(jù)字、將數(shù)據(jù)字字匯編成塊的裝置;根據(jù)一個(gè)加密函數(shù)密鑰對(duì)塊加密的裝置;接收經(jīng)加密的塊、將經(jīng)加密的塊分解成加密數(shù)據(jù)字的裝置;以及控制對(duì)塊的多輪加密的裝置。
全文摘要
本發(fā)明所提出的密碼系統(tǒng)具有一個(gè)將明文數(shù)據(jù)加密成密文數(shù)據(jù)的密碼核心和一個(gè)與密碼核心連接、將密文數(shù)據(jù)傳送到一個(gè)總線上的總線接口。在一個(gè)實(shí)施例中,密碼核心包括:一個(gè)接收數(shù)據(jù)字、將這些數(shù)據(jù)字匯編成塊的塊匯編器;一個(gè)根據(jù)一個(gè)加密函數(shù)密鑰對(duì)塊加密的加密函數(shù);一個(gè)接收經(jīng)加密的塊、將經(jīng)加密的塊分解成加密數(shù)據(jù)字的塊發(fā)送器;以及一個(gè)控制加密函數(shù)對(duì)塊的多輪加密的控制器。在另一個(gè)實(shí)施例中,雙重配置了加密函數(shù),控制器用兩個(gè)控制器代替,第一控制器控制對(duì)塊的第一個(gè)5輪加密,而第二控制器控制對(duì)塊的第二個(gè)5輪加密。
文檔編號(hào)H04L9/06GK1361958SQ00810478
公開(kāi)日2002年7月31日 申請(qǐng)日期2000年5月2日 優(yōu)先權(quán)日1999年5月17日
發(fā)明者J·D·霍夫曼 申請(qǐng)人:英特爾公司