TWI274280B - Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms - Google Patents

Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms Download PDF

Info

Publication number
TWI274280B
TWI274280B TW93128809A TW93128809A TWI274280B TW I274280 B TWI274280 B TW I274280B TW 93128809 A TW93128809 A TW 93128809A TW 93128809 A TW93128809 A TW 93128809A TW I274280 B TWI274280 B TW I274280B
Authority
TW
Taiwan
Prior art keywords
cryptographic
block
password
instruction
register
Prior art date
Application number
TW93128809A
Other languages
English (en)
Other versions
TW200517948A (en
Inventor
Thomas A Crispin
G Glenn Henry
Tery Parks
Original Assignee
Via Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/800,938 external-priority patent/US7900055B2/en
Application filed by Via Tech Inc filed Critical Via Tech Inc
Publication of TW200517948A publication Critical patent/TW200517948A/zh
Application granted granted Critical
Publication of TWI274280B publication Critical patent/TWI274280B/zh

Links

Landscapes

  • Storage Device Security (AREA)
  • Multi Processors (AREA)

Description

95-10-27 1274280 14453twfl.doc/006 九、發明說明: 【相關參考專利】 本案之優先權係引用本發明之美國專利申請案第10/800938 號,申請日為2004年3月15曰,名稱為「MICROPROCESSOR ARRARATUS AND METHOD FOR EMPLOYING CONFIGURABLE BLOCK CIPHER CRYPTOGRAPHIC ALGORITHMS」。 【發明所屬之技術領域】 本發明係與微電子頜域相關,特別是一種於電腦裝置中執行 密碼運算的裝置和方法,在此電腦裝置中被使用之特殊化密碼演 异法係被程式化地應用於指令階級。 【先前技術】 一早期電腦系統,係與其他電腦系統獨立運作,因此一在早 期電腦系統中執行之應用程式,所請求之全部輸入資料,可能位 於該電腦系統,或由一應用程式設計者於執行時提供。該應用程 查由輪出負料產生,且為執行後的結果,而該輸出資料通常係以 月出’或為檔案形式,寫在一磁帶機、磁碟或其他位於該電 一,之大畺儲存I置中。该輸出播案接著可以做為執行在同 前就餐先中,一系列應用程式之輸入檔案,或者該輸出資料先 置1—槽案形式儲存到一可移除或可運輸之大量儲存裝 用程2可接著被提供到—不同、甚至不相容之電腦系統,供應 需求,而=。在這些早期的電腦系統中,已確認保護敏感資料的 保護未授權措施中,密碼程序程式係、發展及利用來 匕路之敏感資料。一般來說,這些密碼程式將儲存在 1274280 14453twfl.doc/〇〇6 95-10-27 大里置之輪出資料的加密及解密。 料。連帶I :現= 網路電:’以提供存取已共享的資 取已分享資料的能;,發展專輸=,同樣地將存 重要的角色。例如僅僅支^,甚扮演起突起性 同工作站或網路檔秀祠二―,工作站的使用者,能夠讀取不 他資訊、錢百ϋ ^之健、㈣網際轉取得新聞及其 接到供應商的電糊线子訊息(亦即電子郵朴連 供應商之間的W ▲^ 供t时或銀仃功能資訊,以進行與 路進行前述活動貝都=廳、機場或其他公共場所利用無線網 之敏感資料本身及二。因此,保護未授權揭露 夕— 9 傳輸而求劇烈的成長。一使用者在一給定雷腦 :務保護敏感資料的案例越來越多。目前新聞頭 客攻擊=^:資!:全議題的力道’例如垃圾郵件、骇 公眾議題d 程、網料騙以及儲卡詐欺等 夺取刖線。而因為這些預謀之網路恐怖主義,以不正之 又::個人隱私範圍的影響’有關機關已經擬定出相對應的新 法、嚴格的執行及公眾教育的程式。然而,沒有 錢訊息妥協處理上表現出作用。原本只有政府關心的事情rt :制度’軍事及間諜問題,現在㈣—般市民從其家用電腦讀取 1子郵件或執行活儲戶頭存取時一種顯著的主題。在訊息安全範 可方面,已逐漸發展出一些技術與裝置可以讓訊息只會被特定的 對象戶^接收瞭解,即所謂的密碼學㈣ptography)。當特別應用於 保護資訊時,其為在電腦間儲存或傳送時,密碼使用於傳送敏感 的汛息(已知如明文”(cleartext)或“本文,,(plaintext)至不能瞭 解的形式(如“密文”(ciphertext))。明文轉換至密文的傳送過程 稱密碼編譯(encrypti〇n),,、‘‘譯成密碼(enciphering),,、 6 1274280 产署靖日修土替换讀
14453twfl.doc/006 ’ I ^ 95-10-27 或“密碼化(ciphering) ”,且密文轉換至明文的傳送過程稱“解 氆(decryption)、解除密碼(deciphering) ”、或“轉換密 石馬(inverse ciphering) ” 。 在密碼範疇中,已經發展出數個步驟及規則,可用以允許使 用者不需使用多少知識或努力便可以完成密碼運算,且使這些使 用者能夠傳送或以其他方式如密碼形式提供其訊息給其他使用 者。順著加密訊息,傳送者一般提供接受者一個不能使接受者解 除加密訊息的“密碼”,因此接受者不能夠移除或以其他方式增 加未加始、原始訊息的存取。已有一些技術,可以將這些步驟或規修 則採取密碼保護,數學運算及特別設計的應用程式形式,而將高 敏感度訊息或解密。 一些運算類別使用於將數據加密或解密。在此提及的第一類運 算類別(如公共金鑰密碼運算:RSA運算)利用兩種密碼(一種公 共金錄(public key)及一種私人金鑰(private key))來將數據加 么或解搶。提及公共金餘運算,一種公共金鑰利用來傳送給接受 者的數據加密。在使用者公共及私人金输兼有一個數學演算關 係,接受者必須利用其私人金鑰將傳送資料解密以恢復數據。雖鲁 然此類密碼運算在今日廣泛被使用,但加密及解密運算速度仍然 過慢,即使只加密與解密少量數據。第二類運算,如對稱金鑰運 异(symmetric key algorithms),提供數據安全相當程度,且速度 更快。這些運算稱為對稱金鑰運算,因為其使用密碼金鑰於加密 及解密訊息。有三種公共習知之主要密碼金鑰運算:數據加密標 準〉貝异法(data encryption standard、DES ),三重數據加密標準演 异法(TripleDES),及進階加密標準演算法(advance(jencryptiQn standard、AES)。因為這些演算法強度包含高敏感度數據,其現在 由美國政府及其代理機構使用。但可以預期,這些技術之至少一 7 1274280丨擧%27曰修(★替换1 14453twfl.doc/006L____L---* 95-10-27 個技術,將在未來成為商業或私人傳送標準。根據這些對稱金錄 運算,明文及密文係分別被區隔於一個特殊的大小來加密或解 密。舉例,在128位元大小區間的進階加密標準則完整加密運算, 且使用128、192及256位元的密碼金鑰。其他對稱金鑰運算允許 192及256位元數據組的進階加密標準。提及分組密碼運算,_種 1024位元明文訊息有如八個128位元組密碼
全部的對稱金錄運鼻利用相同形式的次運算,將一明文區塊 加密。尚有一般更常使用的對稱金鑰運算,如一種初始化密碼金 输擴展多種金输(如一種“金鑰目錄”),每一個如符合次運算密 碼“回合’’(round)在明文區塊中完成。舉例,金鑰目錄的第一金 输使用來完成在明文區塊上次運算的第一密碼回合,其中第二回 合利用金鑰目錄的第二金鑰來產生第二結果。一種特定數量的次 單元回合被完成來產生一個密文本身的最終回結果。進階密碼標 準演算法運算之每一回合中的次運算,尚有次位元(或S-b〇x)、 移列(ShiftRows )、混攔(MixColum )、加入回合鍵(AddRoundKey )
專術語。母一回合期間,一種密文區塊解密完成,除了完成密文 輸入轉換密碼以及轉換次運算(混欄攔位,移列)外,每一回合 之最終結果皆為明文區塊。 數據加密標準演算法及三重數據密碼標準演算法利用不同特 性次運算,但次運算相似於與這些進階密碼標準演算法,因其利 用類似的方式轉換一明文區塊成一密文區塊。 在多重連續測試組上完成密碼運算,全部對稱金餘運算利用 相同的模式。這些模式包含電子碼書式(electronic code book、ECB) 模式、岔文串列(cipher block chaining、CBC )模式、密文回授(cipher feedback、CFB)模式、及輸出回授(〇utpUt feedback、0FB)模 式。在次運算完成期間,一些模式利用一種附加初始化向量,且 8 1274280 14453twfl .doc/006
95-10-27 一些使用完成於第一明文區塊加密第一位置的密文輸出,如一種 附加輸入至完成於第二明文區塊的加密第二位置。更多的相關技 術細節,可以參見FIPS-46-3,1999年1〇月25日,其詳細討論了 數據密碼標準演算法、三重數據密碼標準演算法;以及參見 FIPS-197 ’ 2001年11月26日,其對進階密碼標準作了詳細解釋。 鈾述標準規則係由國豕標準科技研究所(National Institute of
Standards and Technology、NIST)頒佈及主張。此外,個別的指 令、白皮書、套裝工具及對策可參考國家標準科技研究所之電腦 安全應變中心(CSRC),網址為 http://csrc.nist.gov/。 習知技術者將察覺多數應用程式可以有效的在電腦上執行以 元成岔碼運异(如加密及解密)。事實上,一些操作系統(如 Microsoft®、WindGwsXP®、Unux)在原始密碼形式、㈣庫、用程 式介面及相似物時,直接提供加密/解密服務。無論如何,今曰電 腦密碼技術仍存在-些缺失。請直接參考第—圖,藉以在下 顯及討論這些缺失。 第-圖為-種今咖密碼應用的架構圖跡 :網路:°5連結的第-電腦工作站如、-個第4二 102、-個網路擋案儲存裝置106、_個第一路由 路(WAN) U。如網際網路、及一個無線轉路由= 二卜Μ 8〇Z11形成的介面亦與區域網路105連妹。一個! Π〇 109 I274280 / ; 14453twfl .doc/006 / w ¥ 95-10-27 /需要進行加密/解密運算lu(如部分操作系統提供或由操 糸、、先仃駛)已在網_案儲存裝置上儲存區_案。在槽 ^存的同時,使用者可傳送密碼訊息至位於第二電腦工作站ι〇2 、1 了使用者,其亦需要執行加密懈密運算ιΐ2。密碼訊息可為 ^如-種立即訊息)或非即時(如電子郵件)。另外,使用者 103 π〇 :如仏用卡就碼,金融轉帳,等)或其他形式的敏感數據。 二走出公司進入任何一個在區域網路1〇5上的分享資源⑻, =〇6,107 ’ 108,刚工作站ι〇ι,使用者使用第三電腦工作 二二二口么77益運异112的例子。此外,無線網路109現在常 恶性的提供於口加啡店,機場,學校,及其他公共場所,因此筆記 L=:4使用者一個加密/解密無論是他/她的訊息傳送/接收其 立即的需要,且經由無線網路109至無線路由器⑽ 岔或解密所有訊息。 上^^者可Γ瞭解’每一個上述活動都需要在工作站购〇4 品求。=’電腦1G1_刚進—步可㈣妓餘㈣密碼運算1 ::r二ιΐ2:完成密碼運 、·工由辩人體私式元成-個所述功能,相對於經由硬體 功能所需的執行速度慢。每—個加密/解密 疋成相同 間’並且正在電腦ΗΗ_Η)4上執行的現行程式;; = 一段時 須暫停執行,且密碼運算(如明文,密文, k又4間内必 必須通過運算系統至加密/解密運算112, ^ =等)蒼數 5 "η
「普类 1274280 14453twfl .doc/006 〜 95-10-27 、^ Ο 3執行多個電腦延伸指令,因此全部系統運算速度有不利 的衫響。如一般習知技術者所能查覺,在Microso_ 0utl〇〇k(_ 迟個小的加密電子郵件會較傳送一個未加密電子郵件慢$倍。 、另外,因為與操作系統的互動往往會產生延遲,現行技術會 =限制許多應用程式並不能提供完整的金输產生或加密/解密要 而必須利用操作系統零件或外掛程式應用來完成這些工作。 操作系統也可能是因為被請求情以及其他現行執行之應用程式 的要求轉移,而被延遲。 Μ除之外,在今日電腦系統101-104上密碼運算完成,與在 微處理^巾先前Λ現使祕浮點單元的雜數學運算相似。早期 /于,運軟體完成,執行相當慢。像浮點運算,密碼運算經 由軟體完成相當慢。當浮點技術稍成熟,浮點指令提供在浮^ 朗,息處理機執行。這些浮點共同訊息處_執行浮點運算較 軟體完成速度快,但仍其會增加祕成本。同#的,存在於今日 形成附加告示板或外部裝置的密碼共同訊息處理機,係經由平行 :或^他接合匯流排(如通用序顺流排)接合至主要訊息處理 機。這些共同訊息處理機執行完成密碼運#的速度能夠較軟體執 行快。但密碼共同訊息處理機會增加系統結構,額外能量需求量 且降低系統全部的可信賴度。完成密碼共同訊息處理機還u 弱點,便是其數據通道往往不是與域微處理機位於相同晶片上。 口此有而要改善現有之處理器的密碼功能,例如提供一個 I以直,在微處理器上做密碼運算以經由單一微密碼指令便完成 密碼運算,並進而限制操作系統介入及處理的需求。亦其可2令 人滿意的密碼指令能夠使用於應用程式特殊層級,且提供今日^ 處理器主要結構的密碼硬體。其亦需要提供密碼硬體且結合密二 指令於一種後續操作系統及應用支撐兼容性方法中。其更需要提 11 1274280 π 14453twfL_6~>————— 供一種阻止未經許可所完成之密碼運算的裝置及方法,其可以支 撐且編序多重密碼運算,其切確認且測試具體實施的特殊密碼 運异’允校时提供的金輪如自行產生支持乡個數據組大小及 ,大小的金H且其提供可編碼_加密/解賴式如電子 密碼書’密碼組串模式,密仙饋模式及輸出回饋模式。 【發明内容】 管 車乂“貝也例,提供一種在微處理器内執行密碼運 ^、衣置。而此裝置包含密碼指令管 ”、、 輯電路。電腦驻w………一璉輯私路和執行邏 +電腦裝置會接收密碼指令電路所發出之密碼指令 至包腦装1峨行之齡流程t 亚加 運算和一個宓石V宫管土 _ 山馬才日7係寺日疋一個密碼 W么碼貭异法。演算邏輯電路盥 山口 璉軏包路會指示電腦裝置, 密碼運算。而勃尸、篮絲币& 彳口在碼肩异法來執行一個 狀人 而執仃邏軏電路與演算邏輯電路連接,日缸 1 口 路會執行一個密碼運营。 妾且執行邏輯電 演算邏輯雷政合起;兩,"士而 包给”山碼才日7包路連接, 本發明另 提供 種執行密碼運曾 的裝置。此 裝置具有-個密碼單位和—個演 ^ m 算’其係根據指令流程中所接收二某::::執行一個 =接收到之密碼指令係指定到某—種運瞀。、:,指令,在 密位’用來在執行此密碼運算時了指::密碼指令 m。而演算邏輯電路連接到 (走用之一種 這觀碼_法,來指示^ 輯電路 方法佳實施例’提供—種在裝置中執;;運算。 。這種方法包含接收指 密爾’並依據這種密種 螞運算的 密碼運算 法之 12
【實施方式】 以下所述為應用習知技術而製造或使用文中特定應用及需求 之本發明所列舉之例子。然而,實施例中所提及之各種修改係用 於彰顯與習知技術之不同處,此一般原則可應用於其他實施例 中。因此,本發明並非限定於特定實施例。 透過上述關於密碼程序之技術背景及當今電腦系統所使用將 育料加密及解密之相關技術,我們將參照圖2來繼續探討這也技 術及其限制。接著,將參照圖3 - 12繼續討論本發明。本發^提 供一種執行於現今電腦系統之密碼運算的裝置及方法,相較於目 珂主流之機器,該裝置及方法顯示了較佳的效能,因此滿足了限 制作業系統之介入、電子式、舊式、電腦結構相容性、演算法及 =式之可程式性、預防駭客入侵、及可測試性之上述目標。現在 圖2,其示意圖2〇〇係繪示現今電腦系統内執行密碼運算。 不思圖200包括一個微處理器(micr〇pr〇cess〇r) 2〇1,其係從一個
科料、裝置或微碼(即微指令或本機指令(native instruction))、 或是-個邏輯電路、裝置或微碼之組合,由於齡電路並非為本 應用程式對應的純記憶體的—部分,被稱作應程式記憶體 (application memory ) ;隹备描雨:fe Α i 七 $ ... 發明的重點,於此不再對此作詳細說明 。程式的控制和從應用程
13 1274280 I拿月曰修(4正替換買 1274280 I拿月曰修(4正替換買 95-10-27 14453twfl.docllil6- 結到正在執行應用程式的内嵌程式,也可能是作業系統202所提 供的服務。不管它們怎樣結合,一個熟悉該項技術者將了解這些 指令將駐留在一些指定的或是已分配的記憶體區域中。基於討論 的目的,這些儲存區域將會被揭示在應用程式記憶體203中,及 包含一個密錄產生程式(cryptographic key generation application) 204,其一般會產生或接收一個密鑰並將密鑰擴展成為一密鑰表 (key schedule) 205,以供密碼回合運算使用。對於多區塊的加密 運算,一區塊加密程式(encryption application) 206將被引動。加 密程式206執行指令存取明文區塊(plaintext) 210、密餘表205、參 諸如模式、密鑰表位置等更為詳細加密運算的密碼參數 (cryptographic parameters ) 209。如果指定的模式需要,一個初始 化向量(initalizationvector) 208也會藉由加密程式206存取。加 密程式206執行這些指令,以產生相對的密文區塊(dphertext) 211。同樣地,一區塊解密程式(decryption appiicati〇n) 2〇7被引 動$ 了執行區塊解密運算。解密程式207執行數個指令,這些指 π曰存取岔文211、密鑰表205、更為詳細解密運算的密碼參數 2〇9、及_一初始化向量2〇8 (如果模式需要也會被存取)。解密程式 207執行這些指令使產生相應的明文區塊2丨〇。 穷內^意的是特定的指令紐執行喊生密鑰和以加密或解 i確許多虛擬碼範例,使得需要 ::些指令以完成-個密碼運算’對於當前 則 的主要目w如㈣好,㈣消息,電子郵件 14 1274280 14453twfl.doc/006 ’ 95-10-27 信用卡交易)來說,都是多餘的運算。因此,當前正在執行應用 程式的使用者感覺到當前所執行程式之完成並不是有效率的。在 獨立的或内嵌的加密及解密應用程式206、207的情況下,啟動和 笞理這些私式2〇6、207也要受到作業系統202的其他需求所支 配’諸如支持中斷、異常以及惡化問題的事件等。更進一步講, 對於在一計算系統上所需求的每一並行的密碼運算,程式204、 206、207的一例子就是須分開配置於記憶體2〇3中。如上所述, 可以預期的是,要求由一微處理器2〇1並行之密碼運算 會隨著時卩_增加。 ^ / 本案之發明人注意到了這些問題和當今電腦系統密碼技 術的局限,更確認了提供在一不會對使用者出現程式延遲之微處 理器中,執行密碼運算的裝置和方法之需求。因此,本發明於此 提供一微處理器,經由專屬之密碼單元,執行密碼運算的裝置及 相關的方法。當啟動密碼單元時,以經由一單一密碼指令之程式 化,來執行密碼運算。現在將參照圖3_12討論本發明。參照圖3, 一不意圖300描述了一個依據本發明執行密碼運算的微處理器裝 置示思圖300描述了 一個微處理器(micr〇pr〇ces·) ,其係 通過一記憶體匯流排(memory bus ) 3丨9連到一系統記憶體(system memory)321上。微處理器3〇1包括轉譯邏輯電路(translati〇ni〇gic) 303從一指令暫存器(instruction register) 302接收指令電路。指 令電路提供至少一指令,其用來指示一密碼運算,而指令電路包 含邏輯電路、裝置或微碼(即微指令或本機指令(11站_ instruction))、或是一個邏輯電路、裝置或微碼之組合,由於指令 電路並非為本發明的無,於此不騎此作詳細說明。轉譯邏輯 電路303包含邏輯電路、裝置或微碼(即微指令或本機指令(η— instruction))、或是一個邏輯電路、裝置或微碼之組合,或是能夠 15 1274280 14453twfl .doc/006 i 95-10-27 轉譯指令到相關微指令序列的等效單元。在轉譯邏輯電路3〇3中 所執行轉譯的單元可能被其他的電路、微碼等所共用,即在微處 理器301内執行其他的功能。依據本發明的目的,微碼是一個術 語,它表示大量的微指令。一微指令(或稱為本機指令)是一個 執行單元級別的指令。例如,微指令被精簡指令集電腦(reduced instruction set computer,RISC)微處理器直接執行。對於一個複雜 指令集電腦(complex instruction set computer,CISC)微處理器,
諸如一 x86相容微處理器,x86指令被轉譯成相關的微指令,而這 些被}曰令可以在複雜指令集電腦微處理器内由至少一個單元直接 執行。轉譯邏輯電路303係被連接到一微指令佇列(micr〇 instruction queue )304上,微指令佇列304有數個微指令入口( micr〇 instruction entries) 305、306。微指令由微指令仔列304提供給包 括一暫存器檔307的暫存器階段邏輯電路。暫存器組(register me ) 307係具有複數個暫存器(registers) 3〇8-313,且這些暫存器的内 谷係在執行一個指定的密碼運算前即被建立。暫存器心312指向 記憶體(memory) 321 中的相應位置(corresponding i〇cati〇ns)
323-327 ,這裏存放著執行指定密碼運算所需的資料。暫存器階段 被連接到裝載邏輯電路(load logic) 314,其係被連接到資料快取 (data cache) 315,用來恢復執行指定之密碼運算的資料。資料快 取315通過記憶體匯流排319連接到記憶體321上。執行邏輯電 路(execution logic) 328和裝載邏輯電路(i〇adlogic) 314相接並 通過上一階段傳送下來的微指令執行指定的運算。執行邏輯電路 328係包含邏輯電路、裝置或微碼(即微指令或本機指令)、或是 一個邏輯電路、裝置或微碼之組合,或是能通過提供給它的微指 令執行指定運算的等效單元。在執行邏輯電路328中執行運算的 單元可能被其他的電路、微碼等所共用,即在微處理器· 3〇1内完 16 1274280 14453twfl .doc/006 95-10-27 成其他的功能。執行邏輯電路328包括一個密碼單元 Γ^316’ f碼單疋316從裝載邏輯電路314接收,用以執行指 疋之名碼運π所需的資料。微指令驅動密瑪單S训在複數個輸 品A⑽PUt text) 327。密碼單元316包含邏輯電路、裝 置或微碼(即微指令或本機指八)、η 满之細人-e 本狨扣或疋一個邏輯電路、裝置或微 此執行密瑪運算的等效單元 執行密碼運算的單元可能被其 :二 微處理器3(M内完成呈他的μ :路顧專所共用’即在該 和執行邏輯電路328的立他執^b單—實施例#,密碼單元316 浮點單執好70 (未圖示),諸如整數單元、 心占早4疋亚仃執行。在本發明範圍卜 2含邏輯電路、裝置或微碼(即微指 、”? 邏輯電路、裝置或微碼之n^、或疋-個 的等效單元。這些在—_以=執仃指定運算或指定功能 能的元件可能被其他的電路、微: :::定或執行指定功 内執行其他功能或運算。例如 ς用’即在微處理器301 等效單元。在整數單元内執行_二或是能執行浮點指令贫 微碼等,即在浮點單元吨行浮點^。、凡件係可以共用電路、 中,穷m留;q 1 a 4U _ ^ 在相谷χ86體系的一實 疋、—沾6的浮點單元 包含邏輯電路、裝置或微碼(即微指=例中,-整數單元係 輯電路、裝置或微碼之組合,或本機齡)、或是-個邏 一浮點單元包含祕電路整數騎的等效單元。 或是一個邏輯電路、裝置 或::二,指令或本機指令)、 在整數單元内執杆㈣姓人"或疋能執行浮點指令的 施例中,密碼單元316和一 _“單_ 一 Χ86的多媒體延伸集單元和一 %兀、一 χ86的浮點單元、 =根據本發明,-相容W的實:集單元並行執 正確地執行大多數被設計用來彳疋扎廷個實施例能夠 城處理器上執行的應用程
1274280 β f I 14453twfl. doc/006 一 -..- 95-10-27 式。如果得到一個正確地結果,該程式的執行就是正確的。可供 選擇的x86相容貫施例期望密碼單元與上述所提到χ86執行單元 的一個子集並行執行。密碼單元316被連接到儲存邏輯電路(st〇re logic) 317上並提供相對應複數個輸出内文區塊327。儲存邏輯電 路317也被連接到資料快取315,其係發送輸出内文資料327到系 統記憶體321處以供儲存。儲存邏輯電路317係被連接到寫回邏 輯電路(write back logic) 318上。當指定的密碼運算完成,寫回 邏輯電路318將更新暫存器檔3〇7中的暫存器3〇8_313。在一個實 施例中彳放扣令係與一時脈信號(未圖示)同步,流經每一個上 述的邏輯電路階段(logicstages)3〇2、3〇3、3〇4、3〇7、314、3i6_3i8, 這樣,這些運算就可以並行執行,就像一條裝配線一樣。 、在系統記憶體321中,一個需要指定密碼運算的應用程式就 可以通過-條單獨的麵指令(erypt嗯i输uetiGn) 322直 動微處理H 3〇1去執行該運算。在此以―條密碼(xcRYpT) S3不:說明。在一個複雜指令集電腦實施例中,密碼指令 =3匕釭規疋一岔碼運算的指令。在精簡指令集電腦實施例 士始、石f指令322包含一條規定一密碼運算的微指令。在-實施 H t碼心令322利用現有指令集架構中多餘的或未用的指令 的ί丄二?86相容的實施例中,密碼指令322是一 4個位元組 知:二一係包含一個滿重複前置(即〇xF3),後跟2個位元 勃—^二86編碼(例如GxGFA7),再加上1個位it組指明在 二〕i密碼運算時使用的—特定區塊密文模式。在一個實施 可權級下、被=明密碼指令322可以在提供給應用程式的系統許 丁,亚因此能直接從一應用程式或在一作業系統320 、工 ^編寫到程式指令流裏,使提供給該微處理器301。由於 18 I27428dl^5(户-,g 14453twfl.doc/006 〜^〜‘」 +. _ 95-10-27 疋的密碼運算係只需—密碼指令322驅動微處理器3〇ι即 ’^’運异的完成對於作業系統32G㈣將完全是透明化的。 運异日:’作業系統32()係引動一個應用程式使在微處理器观 322Γρ行應用程式期間作為指令流的—部分,一密碼指令 户人H :體321提供給揭取邏輯電路搬。然而,在執行密碼 ,在程式流中的指令係驅動微處理器3G1使初始化 3曰23^7,、古^12的内谷’以致將其指向在記憶體321中的位置 4 位置包含一密碼控制字(cryptographic control word ) sch ' 7"t^^〇nitialCryPW^^ e u e )、一 初始化向量(initialization vector ) 325 (如果帝 " (^ ^} 326 ^ ^ ^ -- Π Ιί執行密碼指令322之前初始化暫存器3购2是必 碼指令322不加校驗直接使用該等暫存器规-312 口存放-區紐目的額外暫存器M3,親塊數目 區326中需要加密或解密的資料區塊數目。這樣,轉^輯 ^ ^ ^ t ^ - f ^ ° ^η 乐、、且U扣令305-306係驅動密碼單元 使下載從裝載邏輯電路314所提供之資料並開始執 使產生—相對應輸出資料區塊並通過資料快取 供:儲存邏輯電路317以儲存在記憶體321的 |出内文£ 327中。在相對應系列微指令中之 圖示)驅動微處理器301的並他執 、、且二支心未 必要運管以ϋ匕未圖不)執行其他的 要運开以疋成才曰疋的街碼運算,諸如在加密/解密完一 文326後’控官暫存中間結果和計數的非結構暫存器 則— 更新輸入及輸出指標暫存n (pGi咖registers) 31〔,θ =)、’ ’更新初 19 「 ” r·!' . ~----- 12 b年月θ修&止替換f 14453twxL.d0c/OO6-—- 95-10-27 始化向量指標暫存器(initializati〇n vect〇r p〇inter register ) 3 〗〇 (如 果1¾要的店)以及處理當前中斷等。在一個實施例中,暫存器 308-313是結構暫存器,結構暫存器3〇8-313是指在指令集架構 (instruction set architecture,ISA)裏執行特殊微處理器所定義的暫 存器。 圖3的示意圖3〇〇係用來講述本發明的基本組成單元,因此 為了更清晰,在當今微處理器301中的很多邏輯電路都被示意圖 300所忽略。然而,一個熟悉該項技術者將會了解到根據特定的執 行當今微處理器301係包含許多階段和邏輯電路單元,但因出於 /月晰表達的目的,將其聚集在一起。例如,裝載邏輯電路314可 以包含一個位址生成階段,然後是一快取介面階段,然後是一快 取線對準階段。但值得注意的是在複數個輸入内文區塊326上的 一個完整密碼運算係依據本發明通過一單獨密碼指令322所驅動 者,這個指令的運算從作業系統32〇的角度來考慮是透明化的, 並且他的執行是通過一個專用密碼單元316完成者,而密碼單元 316係和被處理益301内的其他執行單元並行的。本案之發明人企 圖在實施例結構上提供一種可重構密碼單元316的實施例,其係 類似於以前微處理器所提供之專用浮點單元硬體。密碼單元316 和相關密碼指令322的運算和以前的作業系統32〇和應用程式的 併發運算是完全相容的。茲將詳細描述如下。 現在請參閱圖4,其所提供之示意圖展示了依據本發明一基本 單元微岔碼指令400的一實施例。密碼指令4〇〇包括一可選擇性 前置攔位(optional prefix fleld)401,然後是一重複前置欄位( p^flxfield) 402,隨後是一運算碼攔位(〇pc〇defldd) 4〇3,最後 是一區塊密文模式欄位(block cipher mode field) 404,在一個實 施例中,攔位401-404的内容和x86指令集架構一致。可重構的實 20 1274280 , 14453twfl .doc/006 ( 95、10-27 施例相容其他的指令集架構 在運算中’該可選擇性前置攔位4Gi被執行 集架構’以致能或频能主微處理器的―些 諸夕4日令 16位元或32位運算,進行處理戋在 寸徵,诸如進行 置攔位術表明密碼指令400 寺殊記憶體段等。重複前 資料區塊(即明文或敎)碼運¥算,將在複數個輪入 適合之微處理器,以使用複數個架構性暫存器的内容, =統:己k、體⑽置之指標’系統記㈣包含特 及^數。如上所述,在-x86相容之實施例中,運=貝4 之數值為0xF3。而且,根據挪㈣構協定,密=人12 REP.MOVS之類的χ86重覆串指令相當類似。舉例而古, 本目容的微處理器實施例時,重複前置攔心 在、、、.構日存$ ECX中的區塊計算變數、儲存在暫存器孤 標㈣心鴨湘的輸人倾)]^儲存在暫 1、腦^目的位址指標(在記憶體中指出輸出資料區域)。在 中,树明使習知重覆串指令内容,更參照儲存 J TO 触制字指標、儲存在暫存II EBX巾的密碼金 的曰儲存在暫存器EAX中的初始化向量之指標(若指定 管曰,曰旲1要的老)。運异碼攔位403指定微處理器完成密碼運 二fit定於儲存在記憶體中的控制字内,此記憶體係透過控 屯示本务明汁异出運算碼攔位403之較佳選擇值以作 為現存指令集架構_用或未用運算碼之―,以便保留舊有作業 系統以,應用倾符合賴處理狀―致性。舉_言,如前所 述、,f算瑪搁位403施行數值〇x〇FA7,以指示執行具體說明的密 馬運异。區塊㈣模式攔位姻指定特殊區塊密碼模式,以在具 21 1274280 . / 14453twfl.doc/006 95-10-27 體說明密碼運算期間執行,如圖5所示。 構的圖I表格獅,此表格5G叫示了根據圖4之電子結 構=耗性區塊岔碼模式攔位的數值。數值〇xC8指定密碼運算可 :用Ϊ用⑨子碼書式訊息模式岐成。數值咖指定密碼運算可 文回模式而完成。數值0xE0指定密娜可使用密 ;杈= 而元成。數值0XE8指定密碼運算可使用輸出回授 (:put feedback,0FB)模式而完成。區塊密碼模式棚位綱的所 有其他值會被保留。這些模式在前述的_内文中有所描述。 _來看圖6,示意圖詳細描述依據本發明在—個χ86相容微 處理器(m—聽驗)_裏的—密碼單元(c咖咽叩办她) 處理器細包括—個從執行記髓(未圖示)擷取的擷取 _笔路(fetch 601。擷取邏輯電路6〇1被連接到轉譯邏輯 電路(t麵碗nlogic)602上。轉譯邏輯電路觀包含邏輯電路、 裝置或微碼(即微指令或本機指令)、歧—個賴電路、裝置或 微碼之聯合體’或是能夠將指令轉譯成微指令顧的等效單元。 在該轉譯邏輯電路6G2巾執行轉譯的元件可能被其他的電路、微 碼等所共用,其係在該微處理H _内執行其他的功能。該轉譯 邏輯電路602包括-個連接到微碼唯讀記龍(流㈣^⑽) 604上的轉譯器(translator ) 6〇3和輸出回授模式邏輯電路(〇卿说 feedback mode logic) 640,其係同時連接到轉譯器㈤和微碼唯 讀記憶體604上。情賴電路(inte卿tlGgi〇 626通過匯流排 (bus) 628連接到轉譯邏輯電路6G2。數個軟體及硬體中斷信號 (interrupt signals) 627將被中斷邏輯電路626處理,其將對轉譯 邏輯電路602顯不正在處理中斷。轉譯邏輯電路6〇2連接到微處 理器600的連續階段包括暫存器階段(邮咖 605,定址 22 1274280 14453twfl.doc/006
95-10-27 階段(address stage) 606,袭载階段(1〇adstage) 6〇7,執行階段 (execute Stage)608,儲存階段(st〇re stage)618 和寫回階段(w. back stage) 619。每個連續的階段係包括完成指定功能的邏輯電 路,這些特疋功此與執行掏取邏輯電路提供的指令有關,且 這些結構在圖3的微處理器中以類似的名稱描述。圖6描述的 相容實施例600展示了執行階段6〇8巾的執行邏輯電路(executi〇n logic) 632 ’其包括並行的執行單元(⑽加丨⑽仙⑴61〇、、 614、616、617。整數單元61 〇從微指令仔列(micr〇 instructi〇n) 609接收整數微指令以供執行,浮點單元(fl〇atingp〇intunit) 6i2鲁 從祕指令佇列611接收浮點微指令以供執行,多媒體延伸集單元 (Multi_mediaExtensions,MMX) 614 從微指令佇列 613 接收多媒 體延伸集微指令以供執行,串流延伸集單元(streaming SIMD Extensions,SSE) 616從微指令佇列615接收串流延伸集微指令以 供執行。在典型的x86實施例中顯示,一密碼單元(crypt〇graphy · unit) 617通過一裝載匯流排(1〇ad bus) 62〇、一暫停信號(贫汕 signal) 621和一儲存匯流排(st〇rebus) 622連接到該串流延伸集 單元616。密碼單元617共用串流延伸集單元之微指令佇列615。 可重構的實施例企圖孤立密碼單元617的平行作業,就像單元 610、612 及 614 —樣。整數單元(integerunit) 61〇 連接到一 χ86 的旗標暫存器(EFLAGS register) 624上。旗標暫存器包括一個χ 位元625, X位元的狀態指示密碼運算是否在處理中。。在一實施 例中,X位元625是一 χ86旗標暫存器624的第30位元。另外, 整數單元610存取一機器特殊暫存器(machine specific代细如) =8以計算一 E位元629的狀態。£位元629的狀態表明在微處理 器600内是否存在密碼單元617。整數單元61〇也存取在特性控制 暫存器(feature control register) 630中的D位元63卜來打開或 23 :.)」t替換賈: 1274280 14453twfl.doc/006 關閉密碼單元617。同圖3的微處理器實施· : ;,。。描述了本發明在讓相容實施例中的= 疋木合或忽略微處理器的-些元件。—個熟悉 = 到其他的元件也必通㈣Μ财㈣如資難 ^流排界岭元(耗示)、咖產生和㈣騎魏(未圖=、 ♦運算中,藉由擷取邏輯電路60卜從記憶體(未綠示)取 號(未繪示)提供指令給轉譯邏輯電路602。指 私’、夕一指令,其用來指示一密碼運算,而指令電路台 二邏,路、裝置或微碼(即微指令或本機指令“-e ruction))、或是—個邏輯電路、裝置或微碼之組合,由於 =並非為本發明的重點,於此不再對此作詳細說明譯^ 7 丁 5乂於蛉脈汛唬,連績地被提供給微處理器之隨 605-608、618和619。微指令相中的每—微指令電路指示子運瞀 ^執行,此子運算需絲全面運算,且此全面運算藉由對應指; 包路而指^,這些對應指令可如底下的指令電路:藉由位址階段 6〇6之位址的產生;整數單元61〇中之兩相加運算碼,此整數單元 610係從暫存器階段605巾的指定暫存器(未緣示)而獲得;儲存執 ^單元610、612、614、616、617之一所產生的結果,此儲存係 错由儲存階段618所執行。根紐轉譯的指令,轉譯邏輯電路6〇2 將使轉知_越產生微指令相,或者獲得來自微碼唯讀記 憶體604的序列,或者使轉譯器6〇3幻妾產生序列的一部份並獲 得來自微碼唯讀記憶體6〇4的現存相部份。微指令與時脈訊號 同步透過隨後階段605-608、618和619而相繼進行。在微指令到 24
1274280 I牟月4修(/、)正昝捵頁I 14453twfl .doc/006 —^ 達執行階段_時,他們與其運算碼以及被指定的 612、614、616、617 (在暫存器階段6〇5中自 位址階段_中的邏輯電路所產生,或者藉由载;;^ 枓快取所取付)-起被執行邏輯電路632所麵,躲由被相 ,微指令序列,、611、613、615替換微指令而』=相 早几610、612、6U、6!6、奶執行微指令並提供 二 ί二位在—實施例中’微指令包含指示其是否與其它。運^平= 如上描述對取得-密碼指令做出回應,轉譯邏輯電路⑼ 相關的微指令,其係驅使微處理器_中的連續階段祕儀 618、619使執行才旨定的密碼操作相關微指令的特定^ : 士 ,制字暫存器观内容所指示之控制字323 將於下述中詳細說明。舉例來說,妓算攔 演算法,然後演算邏輯電路640將建構微指= 相關序列隸示微處理1!_,雜據進階加密標準演算 竭運算。若演算攔位的數值指出使用數據加密標準^ 二 演算邏輯電路64〇將建構微指令的相關序列以 6〇〇,以依據數據加密標準演算法執行之密 处理益 噹管、+,诠f f Α π心山馬連异。依據其他密碼 電路64G用大 做指令序列。 因此,將第-相關複數個微指♦直接送到密碼單位617, 亚指示單位617將載人匯流排㈣所提供的資料载人。 將輸入貧料的片段載入’並開始進行指定數量的密碼回合, 段。亦有可能儲存邏輯電路618透過儲存匯流排622 t =知片段送到記憶體中。將第二複數個相關微指令 毛达到/、他%仃早位610、612、614、616,以執行其他子運算。 25 日修(〆)正替換頁 1274280 >月 14453twfl don/OiL, —
而子運算需完成密碼運算,如測試E 置x位元625以表明當前有-密碼運管正在tD位70 631、設 段605内的暫存器(如計數暫存器、=暫存器階 文字指示暫存n)、處理由讀存器、輪出 等。為了實現最有效率的穷巧運笞 所指不的中斷627 被特別排列㈣相關指令,微指令的順序合 恢復所需的相關微指令。因為所有“'包含從暫停中斷中 於滿結構暫存器中,當收到中斷二儲的指標都存放 復中斷前的狀態。當中斷回復時,微^ ^狀之後再恢 是否有料運算正在執行。若是有態, 運算會重覆執行於正在進行的輪人資料之:切發生k, 會允許在處理中斷627前,指示暫存器和:連 區塊内的-連串密碼運算之中間結 連串輸入内文 舉例說明在圖6的微處理器内執行密碼子見 圖7,圖表 702、和一暫存器攔位7〇3。微運貝枓曰存為攔位 以被執行,並指示微處理器議的至少一個=特&的子運算 執行子運算。依據本發明^ &之邏輯電路來 令被指示密碼單元的執行。在=二的指, 丁干//、开凌扣不在碼子運异,而用第二對 加密標準演算法指示_子運算,依此類推。依據數據 值「載入(XL0AD)」指示從記憶體位置接收資料對中之第一數 是由資料暫存器攔位7〇2所表示的結構暫存哭之^ 己憶體位址 料將被載人到密碼單元的暫存器中 ^指定。該資 仔°。則係由暫存器攔位 26 1274280 14453twfl.doc/006 Γ斤=。:妾收的資料(如密碼金糊、控制字、輸入:資 枓、初始化向量)用於密碼單位。每一對微運赵^ 第二數值「儲存(XST0R)」指示將密碼;生: 野宏/ :、 由暫存㈢攔位702所表示的結構暫存 k。在—個複數階段密碼單元之實 指示數輯出資料區塊中的一組使儲存在記憶體;存= 塊係由㈣以在f料攔位(dataf 儲羅鞋 依,有關密碼單元執行載二:= 坪、、、田掐述,將在圖8和圖9中討論。 社人考圖8,表_描述了根據® 7的格式,-載入η 2電路的暫存器攔位703之值。。如先前所述,一連串 :二f生於相應密碼指令之轉譯。微指令序列包含第數; 外的至少—其他並行魏單元執行。。第二複數個“ =不執仃子運异’例如更新計_、臨畴存器、 資枓、⑽二 t複數俯1令則提供金鑰 =枓W碼錄、和密碼單位的輸人資料,並指示密碼單位 讀程序表(或載人纟記憶難㈣金_料),叫 上或關閉)輸人文字資料,並儲存輸出文字資料。—個載入^ =用於載人控制字資料的密碼單位、載人密碼金賴金输程^ 、、、載入擁化向量資料、載人輸出文字資料。載人輪出文 料iU曰不检碼單位來開啟密碼運算。載入微指令的暫存器 703内。之數值_ i 〇指示密碼單位,以將控制字載入到内部控命 暫存為。隨著微指令在管線⑽行,將結構性控制字指示= 存取,存HP皆段内’以獲得控制字所存取之記憶體中的^址& 位址邏輯電路將位址轉譯成記憶體存取的實體位址。载入邏輯電 27 1274280 ,:: ' v力錄 14453twfl.doc/006 / ….〜 95-10-27 〖夬取§己憶體中提出控制字,放置控制字到資料欄位7〇4,然後 =馬,位會放入資料攔位704。相同的,暫存器攔位數值〇bl〇〇 扣示也碼單位載入資料攔位7〇4中的輸入文字資料。等到載入之 後,開啟密碼運算。如同控制字,輸人:賴是通過結構暫存器内 的指標來存取。數值〇Μ〇1指示資料攔位7〇4内的輸入資料載入 成内邛暫存器1輸入-1 (IN-1)。載入到暫存器丨輸入―丨的資料可 為輸入文子資料(管線化時),或為初始化向量。數值ObllO和Oblll ^別私不岔碼單位,載入使用者產生的金鑰程序表中之密碼金鑰 或其中之一金鑰的上、下位元。依據本發明得知,使用者係定義· 為執行特定功能或特定運算。而使用者可包含一應用程式、一作 ,系統、一機器或一個人。因此,在一個實施例中,使用者生成 山鑰表疋由應用程式建立的。在一可替代的實施例中,使用者生 成飨鑰表是由人所建立的。 在—較佳實施例中,暫存器攔位數值〇bi〇〇和〇bi〇i可視為 · 具有兩個階段的密碼單位,而連續輸入文字資料的片段可被管線 ^ °因此,為了管線化連續輸入文字資料的兩個片段,第一載入 1指令將第一段輸入文字資料放入輸入-1,第二載入微指令將第二φ 段輪入文字資料放入輸入-0。第二載入微指令也會啟動密碼單位執 行密碼運算。 如果執行密碼運算是用使用者產生之金鍮程序表,而後載入 I#令的數量會與使用者產生之金鑰程序表内的金鑰數量相對 應:使用者產生之金鑰程序表會發送到密碼單位,而密碼單位會 指不單值’從金鑰程序表内載入每一回合所使用的金鑰。 載入微指令内暫存器欄位703之其他值為保留值。 請參照圖9,係繪示依據圖7載入微指令内暫存器攔位703之 數值的對照表900。將載入微指令發送到密碼單位,指示提供加密 28 1?# 1274280 14453twfl .doc/006 或解密輸出文字片段,存 95-10-27 因此,依據本發明,轉譯邏輯電路先^斤—指士示記憶體内^位址。 載入微指令,之後在發送對應的輸入特殊輸出文子片段之 存器欄位703的數㈣_指 :片段之載入微=。暫 出-_-0)之輪出 ;職出。暫存器輪 的輸出-ο n容會送到矜入0 存邏輯電路。輸入文字片段 指向,輸人文字1 相同地,由暫存器欄位數值%101 之嶋1暫存11㈣容,會送到輸入心 碼單位被管線化,順序依次為載入.輸入小: 1二#^入輸入·〇指不密碼以啟動密碼運算)、儲存.輪出 ^文、載入.輸入®入.輪入-〇 (啟動下兩個輪 入文字片段的運作)等等。 μ匈 現在來看圖1〇,依據本發明,圖表著重描述了一個並型 =㈣赠df_at)麵格式。而在執行密碼操作之‘ 其扣標係由一適合微處理器的結構暫存器所提供。。因此,作為 相對應於密碼指令部分-連_微指令巾,—載人微指令指示微處 理器,以讀取含有指制結構暫料,或是職標轉換到實體記 憶體位址,或是由記憶體(快取記憶資料)接收控制字1〇〇〇、或 是將控制字1000載入到密碼單位的内部控制字暫存器。控制字 1000包括一個保留(RSVD)攔位1〇01,一個密鑰大小(ksize) 攔位1002, 一個加密/解密(E/D)攔位1〇〇3, 一個中間結果(irslt) 攔位1004, 一個密鑰生成(KGEN)欄位1005,一個演算法(ALG) 攔位1006和一個回合計數(RCNT)攔位1007。 反向搁位1〇〇1 的所有值會被保留。金餘大小欄位1002的内容規定執行密碼金输 的大小以完成加密或解密。在一較佳實施例中,金鑰大小欄位1〇〇2 可為任一 128位元、192位元、256位元。加密/解密攔位1〇〇3指 29 1274280 I —;:—::...1................................1 14453twfl.doc/〇〇6 " . : 7'1換 ft : 6 六 …一...…1-* 一.,、.-.............… 95-10-27 碼運算是否為加紋算或解密運算。金餘產生欄位1005指定 3提憶體中由使用者產生之金練序表或單—密碼運算 =输。若為單-密碼運算金鑰,微指令會發送到密碼金錄之密碼 =位’再依據演算攔位1〇〇(5内容所指定的密碼演算法,指示單位 二展到金鑰程序表。在—較佳實施例巾,演算攔位1_的指 曰疋之丽所討論的數據加密標準演算法、三重數據加密標準 、、1:法或進階加禮標準演算法。其他實施例則應用不同的密碼 /、开 士 如 Clper、Tw〇fish ciper 等等回合計數欄位 1007 勺内谷,疋’依據指定的演算法,完成密碼回合的數量於每一個 輸入文字的片段。雖然以上所述之密碼演算法的規範指定,對每 —輸^文子片段進行固定次數的密碼回合,回合計數攔位1⑻7規 疋允許転式師更改该標準所指定的回合數,程式師可以、給每個區 塊指^到15回合。。最後,中間結果攔位麵的内容指定,_ 依據演算攔位1〇〇6所指定的密碼演算法標準,或回合計數欄位’ 1007所指疋的數量回合,是否執行輸入文字片段的加密/解密。而 十數搁位1007内所執行的最後回合代表一中間結果,而不 ,演算攔位所指定演算法的最後結果。熟知此技藝者通曉,除了 最後一,合不同之外,衫密碼演算法在每-回合重複執行相同 的子,异。因此,程式化一中間結果攔位1〇〇4提供一中間結果而 非一最後結果,會讓一程式師確認執行演算法之中間步驟。舉例 ^說’,得演算法的額外中間結果,可對文字片段進行第一回合 密碼運然後再對相同的文字片段進行第三回合密碼運算,而 後進行第二回合密碼運算,依此類推。提供可程式化回合中間結 果的能力能讓使用者確認密碼運算之能力,和研究各種金錄結構 及回合計數器的實用性。 現請麥考圖11,其係繪示實施例密碼單位1100之方塊圖。密 30 1274280 ! 14453twfl.doc/00d- 曰修(#U替換gj 时 — 95-10-27 碼單位1100包含一微運算碼暫存器11〇3,此微運算碼暫存器U㈦ ,由微指令匯流排1114接收密碼微指令(如載入和儲存微指令)。 密碼單位1100也具有控制字暫存器11〇4、輸入〇暫存器11仍、 輸入1暫存器1106、金鑰〇暫存器11〇7和金鑰〗暫存哭腫。 隨著微指令暫存H _之載人微指令的内容規定,資料會經由一 載入匯流排im送到暫存器聰〜·。密碼單位_又包含區 塊密碼運算邏輯電路11(H,其與所有暫存器·〜連接,亦 與密碼金鑰隨機存取記憶體(Randomassessmemory,RA⑷謂 參 連接。在—健實施射,區塊密碼運算騎電路_包含進階 =標二寅=_路m5、數據加密標準演算法= ^丨由 數據加密鮮演算法邏輯電路1117。在其他較佳實 =例中,,密碼運算邏輯電路_說明額外邏輯電路元^未 圖不)的規定,依據至少一個μ _數值之軸_, __ 邏輯電路1101接徂、㈣W ^ 碼運异。舉例來說’區塊密碼 加密標準演算闕輯電㈣15,依據進階 令)或是-個邏輯電路、電路碼(如微指令或原生指- 碼演算法來執行密碼運算之相令碼、依據對應的密 碼演算法執行密 效讀的結合。依據對應的密 塊密碼邏輯電路ufr内^^,令碼等共用。而依據區 令碼等執行其他密碼運算、。應的㈣演算法,其他電路、微指 區塊孩、碼運算邏輯電路 ,並提供區塊結果到輸出二供-暫停信號_ 益1110。輸出暫存器1109〜1110透過曰子益1109和輸出1暫存 到微處理器中的連續階段。在;^儲存®流排⑵將結果發送 車又佳只施例中,微指令暫存器1103 1274280厂‘月.(〆)止替換買 14453twfl .doc/d 95-10-27 的大小為32位元,剩下的每一個暫存器1104〜1110的大小則為128 位元。 在運算中,將密碼微指令連續送到微指令暫存器1103,控制 字暫存器1104、或其中之一輪入暫存器11〇5〜1106、或其中之一 金餘暫存器1107〜1108的指定資料亦會送到微指令暫存器H03 中。一配合圖8和圖9所討論之較佳實施例中,經由載入微指令 將控制字載入到控制字暫存器1104。之後密碼金鑰或金输程序表 會經由連續的載入微指令被載入。若載入128位元密碼金錄,之 後會將載入微指令送到指定暫存器金鑰-0 (ΚΕΥ-0) 11〇7。若載入 高於128位元密碼金鑰,之後會將載入微指令送到指定暫存器金 鑰-〇 1107和金鑰-1 1108。若載入使用者產生之金鑰程序表,之後 會將連續的載入微指令送到指定暫存器金鑰-0 1107。金餘程序表 所載入之每一個金鍮會依序安排到金鑰隨機存取記憶體11〇2,以 供給對應的密碼回合中使用。接下來,將輸入文字資料(若不需 要初始化向量)送到輸入-1暫存器1106。若需要初始化向量時, 之後會經由載入微指令將初始化向量送到輸入_丨暫存器11〇6。輸 入-0暫存裔1105的載入微指令指示密碼運算,將輸入文字資料載 入到輪入-0暫存器1105,再啟動暫存器輸入_01105内執行輸入文 字資料之密碼回合。依據經由控制字暫存器11〇4的内容所提供的 $數暫存為輸入-0 1105使用初始化向量於輸入_1或輸入暫存器 1105〜1106 (若輸入值被管線化)。當接收指定暫存器輪入u仍 的微指令,密碼運算由控制字的内容來規定。若需要展開單一密 碼金鑰,區塊密碼邏輯電路,1101在金鑰程序表中產生每一個二 餘之後再將金餘儲存於密碼金餘隨機存取記憶體。無論區 塊山碼運异邏輯電路1101產生金鑰程序表或由記憶體載入金餘程 序表,第一回合的金鑰被快取到區塊密碼邏輯電路1101,以致於 32 1274280 14453twfl .d〇c/〇〇6 不需存取密碼金鈐 95-10-27 合。一旦啟動, 記ΐ體1搬就能進行第-區塊;: 持續執行密碼運算=輯包二會於至少-個輸入文字的片段 密碼金鱗機存^完成㈣。純行密·算法,由 謂在輸&字連祕絲回合金鑰。密碼單位 對應的载人和儲存抑^執仃—~定區塊密碼運算。執行連續 執行儲存微指令時〕二^輪人文字的連續片段加密或解密。 之後£塊⑨碼邏輯電 ®讀出-1), 並放置在對心=暫1113。—旦輸出值已產生 1隹對應的輪出暫存器11〇9〜111〇中 =
數值的内容轉移到儲存匯流排11121微指令700之:J 、斤电路1115〜1117可執行密碼運算。 、軍瞀Γΐ圖12 ’係1會示—個用進階加密標準演算法執行密碼 塊密碼運算邏輯電路12⑻之方塊圖。 1200 ¥(r〇und engine) j异引料_匯流排1211〜1214和匯流排1216〜1218與回合 -十二引擎控制|§ 1210連接。回合計算引擎控制器121G可存取控 制字暫存器1202、金输〇暫存器12〇3、金餘丨暫存器丨綱來 取金餘資料、微指令、_運算的參數。輸人暫存器12G5〜12^6 的内谷會送到回合計异引擎丨22〇,之後再由回合計算引擎丨22〇 將對應的輪出文字送到輸出暫存器12〇7〜12〇8。而輸出暫存器 1207 1208又經由匯流排1216〜1217與回合計算引擎控制器121〇 連接,讓回合計算引擎控制器121〇能讀取每一個密碼回合的結 果,再經由匯流排NEXTIN 1218送到回合計算引擎1220來進行 下一個岔碼回合。密碼金餘透過匯流排1215從金餘隨機存取記憶 體(未圖示)提出。單一加密/解密訊號(ENC/DEC) 1211指示回 33 1274280
14453twfl.d〇c/006 … J 95-10-27 。。十异引擎,以執行加密(如S-B〇x)或解密(如反向S-Box)的 子運异。匯流排RNDCON 1212的内容指示回合計算引擎122〇, 以ίί!第一回合的進階加密標準演算法、中間回合的進階加密標 準演算法、或最後回合的進階加密標準演算法。單一 genkey 1214下令回合计异引擎1220,依據經由匯流排1213所提供的金 输來產生金鑰程序表。當進行對應的回合時,金餘匯流排會 將每一個回合金鑰送到回合計算引擎122〇。 回合計算引擎1220包含第一金鑰互斥(x〇R) 邏輯電路 1221,此第一金鑰互斥邏輯電路1221會與第一暫存器暫存 (REG-G) 1222連接。第-暫存器1222會連制沾⑽邏輯電路 1223 ’此S-Box邏輯電路又與移列邏輯電路(shift卿1〇咏)1224 連接’而移列邏輯電路(3__1〇扯)1224又與第二暫存哭暫存 -1 ms連接。第二暫存器暫存]1225連制混欄邏輯電 Column logic) 1226,混攔邏輯電路(跑c〇lumn 1〇_ η%又與第 -暫存③、暫存·2 1227連接。如上述所討論的進階加密標準演 FIPS標準,第一金鑰互斥邏輯電路122卜沾狀邏輯電路 移列邏輯電路I224、混攔賴電路脳在輸人文字純上進 稱相似的子運算。如需進行經由金賴流排1213所提供的回合金 中間回合,混攔邏輯電路1226進行輸入資料上進階加密二準 演异法之互斥功能。第-金鑰互斥邏輯電路122卜s_B敗ϋ儉 路㈣、移列邏輯電路1224、混欄邏輯電路1226在 电 二狀態所指向的解密動作時,亦能執行對;的反 向進阳加4準料法子運算。熟知此技藝 合時’依據控制字暫存器-所指示的特殊區二中; 料反綱回合計算”㈣。初始化向量之㈣( Ρ 通過ΝΕΧΤΙΝ匯流排1218送到回合計算引擎122〇。胥)亦邑 34 樣.換 1274280 14453twfl .doc/006 ^ /X ^ 95-10-27 袖比Γ1 例係緣示於圖12。回合計算引擎㈣可分成兩 日存_〇 1222和暫存_1 1225間的第—階段以及暫存]1225 >二二於山a回σ的貝料。當完成密碼運算於—塊輸人資料時, 相關的輸出資料會置放於對應的輸出暫存器i2G7〜娜 使指定輸㈣存器㈣〜·將内容送到儲存匯流= 圚不)。 現請參考圖13,其係繪示中斷事件發生時保留密碼參數狀離 之方法流程圖。當微處理器開始執行指令,方塊1302開始進行這 個流程。但不f要含有密瑪指令的指令流程,因此接下來必須進 行方塊1304的決定。 ' 在決定方塊1304時,必須評估一下中斷事件的發生(如可遮 罩中斷(maskable interrupt)、不可遮罩中斷(n〇n maskabie =errupt)、頁數錯誤(pagefauk)、作業轉換(taskswitch)等等) 疋不疋需要改變指令流程到中斷處理器,以進行中斷事件。如果 疋的話接著會進行方塊13〇6的流程。如果不是的話,接著流程 會回到方塊1304的決定,而指令會持續執行直到中斷事件發生。 在方塊1306,因為中斷事件已經發生,在程式控制轉移到對 應的中斷處理H前’巾斷邏輯電路會下令清除旗標暫存器内的χ 位兀。回到中斷處理器,清除又位元若發生在進行區塊密碼運算 時,會有,少一個中斷事件發生。且在一段輸入資料持續進行= 塊密碼運算前,控制字資料和金鑰資料必須重新載入。接下來進 行方塊1308。 在方塊1308,所有架構暫存器具有指標和計數器,執行區塊 密碼運算,會儲存於記憶體中。熟悉此技藝者了解,控制轉移到 中斷處理器前,儲存架構暫存器一般會完成於目前資料中。接著, 35 1274280 ! i「崎替換藝i 14453twfl .doc/006--—…—-一一一,. 一…. 95 ι〇 27 本發明之當前資料結構的目的在於整個中斷事件期間提供透明化 地執行。在儲存暫存器之後,接著進行方塊1310。 在方塊1310,轉移程式流程到中斷處理器。接著進行方塊 1312。 在方塊1312,方法完成。熟悉此技藝者了解,回到中斷處理 器時圖13的方法才會重回到方塊1302。 現請參照圖14,其係繪示發生至少一個中斷事件時執行密碼 運异之方法流程圖。更明確地說,依據電子碼書式(electr〇nic codebook block cipher mode)所討論的流程,其用來執行特定密碼 運异。亦此使用其他區塊密碼模式(如輸出反饋模式、密碼反饋 模式)。此外,更確切地說,雖然本發明討論圖1〇之至少一個密 碼演算法的流程,不過還是在此說明進階加密標準演算法、數據 加密標準演算法和三重數據加密標準演算法之流程。 方塊1402開始進行這個流程,密碼指令指示密碼運算,使用 電子碼書式密碼模式開始執行。密碼指令可為第一個執行指令, 或執行於第-錢行指令之後。㈣中斷事件所作的中斷功二, 以至於在情處理器執行之後,轉移程式控制_密碼指令 下來進行方塊1404。 於ί方ί^4ί)4 ’指向記憶體中的片段資料到由記憶體所載入之 ^入才曰不暫存器的内容,且開始執行密渴運算。在—較佳實施例 二票準演算法開始執行密碼運算。雖然之前有討 刪兒子書&塊岔碼模式,本發明者聲明 加密或解密)以及哪-種區塊密碼模式(如列如種^=運异= 區塊串列、密文回授、或輸出回授)來執:t始文 例如,萁#田7个机仃知疋輸入指不暫存器。 例如’右使用輸出回授模式指定密碼運算 暫存哭知如私各a曰&士 接下末執订輸入才曰示 曰仔為和初始化向量暫存器,以載入資 貝料對於輸出回授密碼運 36 1274280
:月“日修(<)止替換頁I 14453twfl .doc/〇fe 95*-Jq ,模式運算’輸人指示暫存ϋ指向下—烟文方塊來進行密碼 算動作。對於輸出回授密竭運算和解賴式運算,初始化斬 存器指向記憶體巾初始化向量位置。在第—個方塊巾,記憶體^ 初始化向量位置之内容為初始化向量。在接下來的方塊中二初^ 化向量位置為符合前-個方塊之輪出㈣區塊,可用來作為目; =塊之初始化向量’物。若使用電子碼書式模式衫解密二 异’接下來負責執行載人資料的輸人指示暫存器可指向記憶ς 下一個密文方塊。接下來進行方塊14〇6。 在決定方塊1406時,必須評估一下是否設定旗標暫存哭内之 =元。若已設定X位元,控财和金鑰程縣載人至^單位 内為有效的。若清除X位元,控财和金鑰程縣載人至密碼 位内為無效的。如先前所提及之圖13,巾斷事件發生時,會清除 X,元。此外’如料所提及,#f要載人—個新的控制 =私序表、或將兩者同時載人時’在發送指令之前需執行指令來 =X位it。在-與χ86相容的較佳實施例中,執行观旗標暫 内之第3G個位元。藉由執行P〇PFD指令之後的pusHFD指 =將X位元清除。-熟知此技藝者了解,亦可用其他實施例中 ^他,令來清除x位元。若已設定χ位元,流程將騎至方塊 。若清除X位元,流程將進行至方塊1408。 在方塊1408,因為由已清除之X位元可知中斷事件已經發 制i或將—個新的控制字和/或金錄資料載人,而從記憶體載入控 料紐實施例巾,載人控财會將從方塊14(34密碼運算 仃的_單位停止。在方塊14Q4内啟純碼運算,藉由假定 的=!所載入的控制字和金鑰資料,和電子碼書式模“最佳 奎:t碼模式,允許用最佳化之多區塊密碼運算來執行電子碼 曰式模式。因此,將目前的輸入資料方塊載入,並在確認X位元 37
的狀態決定是否重設區塊1406之前,開啟密碼運管 方塊1410的決定。 所接收的控制字之演算攔 在決定方塊1410,評估方塊14〇8 崎連异。若演算攔位 1414。若演算攔位指 位,來決定需用哪一個密碼演算法來執行密碼運算 指疋進階加雄、標準>貝异法,之後會進行方塊1414。 定二重數據加密標準演异法,之後會進行方塊。 在方塊1412,選擇電腦裝置中之區塊密碼邏輯電路内的 加密標準演算法。接下來進行方塊1418。 白 在方塊1414,選擇電腦裝置中之區塊密碼邏輯電路内的數 加密標準演算法。接下來進行方塊1418。 在方塊1416 ’選擇電腦裝置中之區職碼邏輯電路内的 數據加您標準演异法。接下來進行方塊1418。 在方塊1418,金鑰資料(如密碼金鑰或全部金鑰程序表)從 記憶體載人。此外’將方塊剛所指出的輸人片段和初始化向^ (或初始化向量之,物)再次載人。依據新載人的控制字、【 選擇的演#邏輯電路和金鑰程序表來啟動密碼運算。接 方塊1420。 丁 —在方塊1420,產生符合已載入的輸入區塊之輸出區塊。進行 密碼時’輸人區塊為明文區塊,而輸出區塊為對應的密文區塊。 進行解密時’輸人區塊為密文區塊,而輸出區塊為對應的明文區 塊。接下來進行方塊1422。 在方塊1422 ,儲存已產生的輸出區塊到記憶體中,接下 行方塊1424。 計數暫存器的内容, 口口在f塊1424,修改輪入區塊指示暫存器和輸出區塊指示暫存 的内容,以指向下一個輸入和輸出資料區塊。此外,修改輸入 以於目别輸入資料區塊上指示密碼運算的完 38 1274280 14453twfl .doc/006
95-10-27 成。在圖14所討論之較佳實施例_,熟知此技藝者了解,亦可用 其他實施例來運作,並測試區塊計數暫存器的内容來將輸入文字 區塊作管線化的執行。接下來進行方塊1426。 在方塊1426,評估輸入資料區塊是否運作。在此較佳實施例 中,評估區塊計數器是否為零。若輸入資料區塊運作,接著會進 行方塊1428。 在方塊1428,如輸入指示暫存器内容所指向,將下一個輸入 資料方塊載入。 在方塊1430,此方法完成。 雖然本叙明之較佳實施例已揭露如上,例如本發明目前所實 施例皆以x86架構作為基準,因為χ86架構為—個眾人所皆知的 架構’特以x86架構說明較為讀。本發明亦可應用於其他架構 上,如PowerPC®、MIPS師其他指令集架構完全不同之系統上。 本發明更可制於執行微處理II以外的電腦系統元件内密碼 運算。本侧所使㈣密碼騎餘㈣執行其他微處理器以外 ^腦糸統元件内密碼運算。本發明的—些較佳實施例為微處理 =周邊日日日片組(如北橋、南橋)或執行密碼運算的微處理器。 micr〇process〇r) hand 〇ff =。本發㈣可職触人式控制H雜 ^ 匕3了執仃上述始、碼運异功能的元件。執 :件應為成本低、耗電量少以作為通訊系統内之密碼/解; =卜,雖然本發明所探討的是128位元W, 大小可執行各種不同大小片段,而暫存哭 曰仔〇口白' 資料、控制字。 曰存-T執仃輪入資料、輪d 39 1274280 14453twfl .doc/006 / 95-10-27 、因此’雖然數據加密標準演算法、三錄據加密標準演算法 $進I1白力準次异法已應用於本發明,本發明者聲明上述發明 有較不為人知的區塊密碼演算法,例如mars C叩^、哪^ cipher > Twofish cipher ^ Bl〇wflsh cipher > Serpent Cipher RC6 cipher。本發明提供缺的區膽碼裝置和微處理如捕方法, 其區塊密石馬運算能經由單—指令來執行。 枯言^論制㈣區塊密碼運算法及其他㈣法之相關 其二碼運瞀”碼功能。在此需聲明本發明可完全應用於 八二”'·异法,只要能執行一密碼運算如加密或解穷。且;^處 理器包含-收到密碼指令後進行密碼運算功能I減 管線::片:論^,丨擎,提供兩階段裝置來 入貧料不限於兩階段,決 ^引擎h、線化輸 段而定。 夕^ 奴要視被處理器内所分割的階 雖然目前針對本發明的討論僅限於單一资巧單位卢理 在此需聲明本發明包含多解 =單 分別處理不同區塊演算:執個密碼單位可 演算法,第二置 弟早位負貝處理進階加密標準 類推。 負貝處理數據加密標準演算法演算法等等以此 所用之技術原:者上所J乃是本創作之具體實施例及 涵蓋之精神時,约又1之功能作用仍超出說明書及圖示所 τ了均應在本創作範圍内。 【圖式簡單說明】 下兄月及圖不能助於了解本發明還有其他物件、特徵、優 1274280 14453twfl.doc/006 95-10-27 圖1係繪示現今密石馬應用的方塊圖; 圖2係繪示執行密石馬運算之技術的方塊圖; =3係依據本發明—執行密碼運算的微處理 堍 圖4係依據本發明—基 ::塊圖, 圖5係依據圖4的基本單元穷石分Γ =例的方塊圖; 對照表; 山馬扣區塊編碼模式攔位數值白 =6係依據本發明χ86微處理器内 示微指令内的攔位,絲命令圖6^^器内的料 = 微指令之暫存攔位數值的對照表; 圖_位數值的對照表,· 碼運算的密碼錢;制子七式财㈣塊圖,㈣字規定密 圖11係鋪本發明—詳細密碼單位的方 圖12係依據本發明一區挣 ro Λ 標準演算法之密碼運str圖她電路實施例,執行進階加密 ^;13係依據本發明中斷事件發生時保《碼狀態之方法的流程 圖14係依據本發明至少—/gj φ ^ ^ ,…個中断事件發生時於複數個輸入資料片 中所^的料演算法,—執行密碼運算之方法的流程圖。 【主要元件符號說明】 101第一電腦工作站 103第三電腦工作站 105 局域網路 100方塊圖 102 第二電腦工作站 104筆記型電腦 41 1274280
14453twfl.doc/006 - - ~ — —— 一 106 網路檔案儲存裝置 107 第一路由器 108 無線網路由器 109 無線網路 110 廣域網路 111 第二路由器 112 加密/解密運算 200 方塊圖 201 微處理器 202 作業系統 203 記憶體 204 密鑰產生程式 205 密鑰表 206 區塊加密程式 207 區塊解密程式 208 初始化向量 209 密碼參數 210 明文區塊 211 密文區塊 300 方塊圖 301 微處理器 302 指令暫存器 303 轉譯邏輯電路 304 微指令佇列 305、 306 微指令入口 307 暫存器組 308-313 暫存器 314 裝載邏輯電路 315 資料快取快取 316 密碼單元 317 儲存邏輯電路 318 寫回邏輯電路 319 記憶體匯流排 320 作業系統 321 系統記憶體 322 密碼指令 323 初始控制字 324 初始密鑰或密鑰表 325 初始化向量 326 輸入内文區塊 327 輸出内文區塊 328 執行邏輯電路 400 基本單元密碼指令 401 可選擇性前置欄位 402 重複前置欄位 403 運算碼欄位 404 區塊密文模式欄位 500 表 600 x86相容微處理器 601 擷取邏輯電路 95-10-27
42 1274280 95-10-27 % ω貨7日修止替換買 14453twfl.doc/6〇6* 602 轉譯邏輯電路 603 轉譯器 604 微碼唯讀記憶體 605 暫存器階段 606 定址階段 607 裝載階段 608 執行階段 609 微指令佇列 610 整數單元 611 微指令佇列 612 浮點單元 613 微指令佇列 614 多媒體延伸集單元 615 微指令佇列 616 串流延伸集單元 617 密碼單元 618 儲存階段 619 寫回階段 620 裝載匯流排 621 暫停信號 622 儲存匯流排 624 旗標旗標暫存器 625 X位元 626 中斷邏輯電路 627 軟體及硬體中斷信號 628 機器特殊暫存器 629 E位元 630 特性控制暫存器 631 D位元 632執行邏輯電路 640輸出回授模式邏輯電路 700 微指令 701 微運算碼攔位 702 資料暫存器欄位 703 暫存器攔位 704 貢料搁位 800 表 900 表 1000 控制字 1001 保留欄位 1002 密鑰大小欄位 1003 加密/解密欄位 1004 中間結果欄位 1005 密鍮生成欄位 1006 演算法欄位 1007 回合計複數個RCNT 1100 密碼單元 1101 區塊密文邏輯電路 1102 密鑰隨機存取記憶體 1103 微運算碼暫存器
43 1274280 啤10·身7日修(|!)止替換買 14453twfl .doc/d〇^ 1104控制字暫存器 1106輸入-1暫存器 1108金鑰-1暫存器 1110輸出-1暫存器 1112儲存匯流排 1114微指令匯流排 1201微指令暫存器 1203金鑰-0暫存器 1205-1206輸入暫存器、 1210回合計算引擎控制器 1216-1218匯流排 1221第一金鑰互斥邏輯電路 1223 S-Box邏輯電路 1225第二暫存器暫存-1 1227第三暫存器暫存一2 1302方塊 1306方塊 1310方塊 1402方塊 1406決定方塊 1410方塊 1414方塊 1418方塊 1422方塊 1426方塊 1105輸入-〇暫存哭、 1107金餘-〇暫存器 1109金餘-〇暫存器 1111裝載匯流排 1113暫停信號 1200區塊密文邏輯電路 1202控制字暫存器 1204金錄-1暫存器 1207-1208輸出暫存p 1211-1214匯流排 1220回合計算引擎 1222第一暫存器暫存_〇 1224移位邏輯電路 1226混欄邏輯電路 1304決定方塊 1308方塊 1312方塊 1404方塊 1408方塊 1412方塊 1416方塊 1420方塊 1424方塊 1428方塊 95-10-27
44

Claims (1)

1274280 14453twfl .doc/006 95-10-27 十、申請專利範圍: 1· 一種執行岔碼運算的裝置,其包含·· ::指令電路’其提供會被一計算裝置所 令’以作為断算裝置崎作之齡餘的—雜,該 =某密:中之某一個,該密碼指令也指定複;個二 -演算邏輯電路’連接到_碼指令電路,用以指 裝置依據-被指定之密碼演算法以執行—被指定之密碼運ϋ: 及 ^ 定之桃,連翻該鮮㈣魏,用叫行該被指 運算請專利範圍第1項所述之裝置,其中該被指定之密碼 一加密運算’用以對複數侧文區塊進行密碼加 產生對應的複數個密文區塊。 ^ 運算3更tl請專利範圍第1項所述之裝置,其中該被指定之密碼 一解密運算,用以對複數個密文區塊密碼進行密碼解密,以 產生對應的複數個本文區塊。 … —4.如中請專利翻第丨項所述之|置,其中該被指定之密碼 演异法包含進階加密標準演算。 —5·如中請專利賴第丨項所述之裝置,其中該被指定之密碼 肩异法包含數據加密標準演算。 —6.如中請專利範圍第i項所述之製置,其中該被指定之密碼 >貝异法包含三重數據加密標準演算。 45 #· .;! 1274280 14453twfl.doc/006 7.如申請專利範園第!項所述之 祕π 據x86指令形式規定所建立。 、八中以饴碼4日令係依 伟二 第1項所述之裝置,其中上述的密碼指令 係翏,、,、扉异裝置内之複數個暫存哭。 項所述之裳置Γ其中該些暫存器包含: 憶體位址的第一指標:、=;一:二:的内容包含對應到第-記 位址,被指定之該密碼二ς:=址指定記謝的第-輸入文字區塊之存取而完I。、〜於该弟一位址之至少一個 10·如申請專利範圍 -第二暫存器,二4 置,其中該些暫存器包含: 怜體位址的第暫存器的内容包含對應到第二記 £堍之產生係αΪI m相對應之輸出文字區塊,該輸出文字 碼指令之絲。如上之輪人文字區塊完缝蚊之該密 ΐ三申 _項㈣n其巾該㈣存器包含: 子。σ其中该第二暫存器的内容指示該些輸入文字區 塊内之複數個文字區塊。 利範圍第8項所述之裝置,其中該些暫存器包含: …:二:4器’其中該第四暫存器的内容包含對應到第三記 位址,以存取用來完成被;體位址紋記憶體中的第三 由咬#成被扣岔碼程序的密碼鑰匙資料。 一塞範圍第8項所述之裝置,其中該些暫存器包含: : ί巾㈣五暫存11包含對應到第四記憶體位 、=’而_四指標指定記憶體中的第四位址,且該第 四位止^贿化向量位置,該初始化向量位置對應之内容包含 46 1274280 ^·:Γ'ν ,#J 14453twfl .doc/006 1 ^來完成涵定之-料程序的初始化向量或減化向量5相。-2等 ^如申二奢專利範圍第8項所述之裝置,其中該些暫存器包含. 一 1,、日,,其中該第六暫存器的魄包含對應到五記憶體 位址的^五指標,而該第五指標指定記憶體巾的第五位址,以存 取用來完f被缺之-密碼料的控制字,其巾該㈣字規 指定之一岔碼程序所使用的至少一密碼參數。 專利範圍第1項所述之裝置,該執行邏輯電路包含: 一搶碼早凡,用以在至少—個輸人文字區塊之每—個 數個㈣回合’藉以產生相職的至少—讀丁^ 該些密碼回合係由㈣碼單元所提供的中 位所指定。 于疋口口冲數攔 16·種執行逸、碼程序的裝置,其包含: 二碼單元,其在一元件中,用以在接收到—指令流 =二Γ!候執行被指定之一密碼運算,其中該指令流係為: it被“之該密碼運算之指令流程的-部份,在此該密石= 一演算攔位’係用來在當執行被指定之一 複數個密碼演算法中之某—者;以及 馬考序《‘定 據該笨連接到該密碼單元,係用來指引該袭4故 據17一:,异法之某-者’以執行某-密碼編譯程序。侠 17.如申請專利範圍第16項所述之裝置, 包含進階加密標準演算。、Μ二⑷馬\戽法 18·如申請專利範圍第 包含數據加密標準演算。頁所达之衣置’其中該些密碼續以 19·如申請專利範圍第16項所述之|置,其中該些密碼灣& 47 1274280 14453twfl .doc/006 替撰:^ 95-10-27 包含三重數據加密標準演算。 20. 如申請專利範圍第16項所述之裝置,其中該密碼指令係依 據x86指令形式規定所建立。 21. —種於裝置中執行密碼運算的方法,其包含: 接收一密碼指令,其規定複數個密碼運算中之某一個與複數個 密碼演算法中之某一個;以及 依據該密碼指令中,一被指定密碼演算法,執行該些密碼運算 之某一個。 其中該些密碼演算法 其中該些密碼演算法 其中該些密碼演算法 其中該接收包含:依 22. 如申請專利範圍第21項所述之方法 包含進階加密標準演算法。 23. 如申請專利範圍第21項所述之方法 包含數據加密標準演算法。 24. 如申請專利範圍第21項所述之方法 包含三重數據加密標準演算法。 25. 如申請專利範圍第21項所述之方法 據x86指令形式,指定該密碼指令。 48 1274280 广…1 14453twfl .doc/006 95-10-27 七、指定代表圖: (一) 本案指定代表圖為:第i圖。 (二) 本代表圖之元件符號簡單說明: 300 方塊圖 302 指令暫存裔 304 微指令佇列 307 暫存器組 314 裝載邏輯電路 316 密碼單元 318 寫回邏輯電路 320 作業系統 322 密碼指令 324 初始密输或密输表 326 輸入内文區塊 328 執行邏輯電路 301 微處理器 303 轉譯邏輯電路 305、 306 微指令入口 308-313 暫存器 315 資料快取快取 317 儲存邏輯電路 319 記憶體匯流排 321 系統記憶體 323 初始控制字 325 初始化向量 327 輸出内文區塊 八、本案若有化學式時,請揭示最能顯示發明特徵的化學式:
TW93128809A 2003-09-29 2004-09-23 Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms TWI274280B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US50697803P 2003-09-29 2003-09-29
US10/800,938 US7900055B2 (en) 2003-04-18 2004-03-15 Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms

Publications (2)

Publication Number Publication Date
TW200517948A TW200517948A (en) 2005-06-01
TWI274280B true TWI274280B (en) 2007-02-21

Family

ID=34798740

Family Applications (1)

Application Number Title Priority Date Filing Date
TW93128809A TWI274280B (en) 2003-09-29 2004-09-23 Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms

Country Status (2)

Country Link
CN (1) CN100463392C (zh)
TW (1) TWI274280B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI410106B (zh) * 2008-12-26 2013-09-21 Digital Arts Inc Electronic file transfer method
TWI596921B (zh) * 2011-01-27 2017-08-21 Alibaba Group Holding Ltd Reference notification method and device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102169465B (zh) * 2010-02-26 2013-08-21 银灿科技股份有限公司 储存媒体的数据加密装置
TWI576717B (zh) * 2016-07-26 2017-04-01 Dimensional biometric identification system and method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000076119A1 (en) * 1999-06-08 2000-12-14 General Instrument Corporation Cryptographic processing system
US6983374B2 (en) * 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI410106B (zh) * 2008-12-26 2013-09-21 Digital Arts Inc Electronic file transfer method
TWI596921B (zh) * 2011-01-27 2017-08-21 Alibaba Group Holding Ltd Reference notification method and device

Also Published As

Publication number Publication date
CN1607763A (zh) 2005-04-20
TW200517948A (en) 2005-06-01
CN100463392C (zh) 2009-02-18

Similar Documents

Publication Publication Date Title
TWI351864B (en) Apparatus and method for employing cyrptographic f
US7321910B2 (en) Microprocessor apparatus and method for performing block cipher cryptographic functions
TWI303936B (en) Apparatus and method for generating a cryptographic key schedule in a microprocessor
EP1596530B1 (en) Apparatus and method for employing cryptographic functions to generate a message digest
US7532722B2 (en) Apparatus and method for performing transparent block cipher cryptographic functions
EP1538510B1 (en) Microprocessor apparatus and method for performing block cipher cryptographic functions
EP1519509B1 (en) Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US20040252842A1 (en) Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7529368B2 (en) Apparatus and method for performing transparent output feedback mode cryptographic functions
US7536560B2 (en) Microprocessor apparatus and method for providing configurable cryptographic key size
US7900055B2 (en) Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
TWI274281B (en) Apparatus and method for performing transparent block cipher cryptographic functions
TWI274280B (en) Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7542566B2 (en) Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
CN1661958B (zh) 区块密码功能的微处理器及方法
US7529367B2 (en) Apparatus and method for performing transparent cipher feedback mode cryptographic functions
TWI247241B (en) Microprocessor apparatus and method for performing block cipher cryptographic functions
TW200536335A (en) Apparatus and method for performing transparent cipher feedback mode cryptographic functions
CN1652163B (zh) 执行通透性输出反馈模式密码功能的方法及装置
CN1658548B (zh) 配置密码引擎资料区块的微处理器及方法
TWI250450B (en) Microprocessor apparatus and method for providing configurable cryptographic key size
TWI253268B (en) Microprocessor apparatus and method for optimizing block cipher cryptographic functions
TWI258289B (en) Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
TW200536329A (en) Apparatus and method for performing transparent cipher block chaining mode cryptographic functions