[go: up one dir, main page]

TWI247241B - Microprocessor apparatus and method for performing block cipher cryptographic functions - Google Patents

Microprocessor apparatus and method for performing block cipher cryptographic functions Download PDF

Info

Publication number
TWI247241B
TWI247241B TW93110904A TW93110904A TWI247241B TW I247241 B TWI247241 B TW I247241B TW 93110904 A TW93110904 A TW 93110904A TW 93110904 A TW93110904 A TW 93110904A TW I247241 B TWI247241 B TW I247241B
Authority
TW
Taiwan
Prior art keywords
cryptographic
compilation
register
logic
mode
Prior art date
Application number
TW93110904A
Other languages
English (en)
Other versions
TW200512648A (en
Inventor
Thomas A Crispin
Henry G Glenn
Terry Parks
Original Assignee
Ip First Llc
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/674,057 external-priority patent/US7321910B2/en
Application filed by Ip First Llc filed Critical Ip First Llc
Publication of TW200512648A publication Critical patent/TW200512648A/zh
Application granted granted Critical
Publication of TWI247241B publication Critical patent/TWI247241B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

1247241
[發明說明] [0001]本發明已在2003年4月18日於美國申請臨時 案,案號 60/464394(Docket CNTR.2222 ),並於 20 03 年9 月 29日提出美國正式申請案,序號10/674057。 [發明所屬之技術領域] [ 00 02 ]本發明係與微電子領域相關,特別是一種應 於微處理器中加密的裝置和方式。 “ [先前技術] [0003] 跑一個運用 統内或是由 後產生的輸 或者是以一 電腦糸統一 被下一個在 案使用或者 存介面,它 體使用。這 其中一樣資 保護敏感的 體通常把儲 [0004] 間的作業 輸入資料 程式運行 是以白紙 被寫入磁 置中。這 統中執行 是被存入 同但相容 對保護敏 密碼編譯 許可的被 案做加密 者們才發 早期電 程式所 軟體工 出資料 個檔案 部份的 同一個 如果這 就能被 些早期 料保密 資料以 存介面 多年後 腦系統 需要的 程師在 則通常 的型式 儲存裝 電腦系 個檔案 其他不 的系統 措施, 免未經 上的檔 ’使用 都是獨 是内建 時輸入 黑字的 帶,印 個輸出 的應用 一個可 的電腦 感的資 應用軟 公開。 或解密 現將網 立作業 於早期 。應用 列印方 碟或是 的檔案 程式當 以被移 系統中 料已有 體也被 這些密 的動作 路連線 的,因為 的電腦系 程式執行 式呈現, 其他屬於 可以接著 作輸入# 動式的儲 的應用敕 認知。 開發出來 碼編譯軟 〇 多台電腦
五、發明說明(2) 透過t分享資料的這個優勢。所以,網政加 統,資料傳送規約也相對^所以’網路架構,作業系 分享之外,它們所提供的、展▲。至今,除了能支援資料 在的使用者使用—個^ w寸加功能也很顯要。例如說,現 另一個網路伺服器上=作台去取得另-個工作台上或 他資料,與其他數百案,透過網際網路取得新聞和其 應商的電腦系統提供的電腦傳送電子郵件,連接供 餐廳,機場和其他公^卡或是銀行資料來購買物品,在 作,已經習以為常了 了 :所透過無線網路來做上述的動 常的重要。i用者透^以保護敏感資料的傳輸也變的非 率也曰已遽增。= :出去的資料需要保護的頻 客,身分盜用,反長揭發給社會大眾濫發郵件,駭 腦資料安全問題。這此卢Ιρ位置欺偽和信用卡詐欺等電 純屬意外的無心之過:^ Q隱私的動作的背後動機有時是 行動。相關單位以制~ %時則是深思熟慮的網路恐怖攻擊 幕等行動來H 法律,嚴格執行規範和教育大 侵害電腦資料的浪潮這些動作都還是無法成功杜絕 情報單位憂心的問題已::=政府,金融機構,軍方和 使用網路銀行服務變成母一位在家檢查電子郵件, [_5]資訊安最擔心的問題之-了。 提供特定2解;域中一項將資料加密,並起只 伴鳟雷Ϊ 式的保護技巧就是密碼編譯學。在 辨識的型式。(^稱鼻〜plaintest,cleartext)轉成無法 稱為岔文,Clphertext)。將本文轉換成 1247241
岔文的私序被稱為「加密」(encryption)而將密文轉回本 k 文的程序則被稱為「解密」(decrypti〇n)。 · [0006]在密碼編譯這個領域中,幾項方式和規約被開 · ^出=便使用者不需要有太多密碼編譯知識或是花太多力 里便能將資料以加密過的型式送出給不同的使用者。除了 力11欲、的^料之外’使用者通常會提供收件者一個用來解密 的密碼金鑰。,,密碼金鑰讓接收者能復原加密資料或者有 時候是提供收件者取得未加密資料的管道。以上所述的步 ,常是透過密碼保護,數學演算法和加密解密的應用 程式等方法位敏感資料加密和解密。 _ [ 0007 ]目前有很多種類型的演算法被應用於資料的 =^密上。某個類型中的特別一個演算法(公開金鑰加 岔廣异法,RSA Rivest-Shamir-Adelman演算法類之一)用 了兩個金鑰(〇1^1)1:〇§1^1)}^(31^7)。 一個公開金鑰 (Pu^l ic Key)和一個私密金鑰(private key)用來加密或 f密。根據一些公開金鍮演算法則,接收者的公開金鑰 疋由寄出者用來將資料加密以便送給接收者的。因為使 ^ f的公開和私密金鑰間有某種特定的數學關係,接收者 疋要用私密金錄來解開收到的資料,還原原本的資料。 雖然此類的加密演算法受到廣泛的使用,但是它處理加密 和,欲的速度十分的慢。就連處理小量的資料都是十分 的慢。還有一類演算法,稱做對稱加密演算法,不但與第 =類f算法等級的資料保密性,而且執行的速度快上許 夕這類演异法會叫做對稱加密演算法的原因就是它是用
第8頁 1247241 五、發明說明(4) 同一組加密編譯鑰來加密和解密。目前公家機關内使用 的主要二種単一金餘加密演算法(single-key cryptographic algorithms:數據加密標準(Data Encryption Standard,DES),三度資料加密標準 (Triple Data Encryption Standard , Triple DES)和高 階加密標準(Advanced Encryption standard,AES)。 因為這些肩算法的保護強度’現在美國政府的相關單位都 採用這三種演算法來保密資料。相信不久的將來,這其中 一項或一項以上也會成為商業和私人交易中使用的標準。 根據這些對稱加密演算法則,本文和密文都被裁成一定大 小的片段,在進行加密和解密。例如說高階加密標準 (AES)對128bits大的片段進行加密,並使用128_,192和 256-b 11s大小的加密編譯鑰。 [〇〇〇8]所有的對稱金鑰加密演算法(symmetric key 將本文加密的次要運算(Sub-〇Peration)步驟 :::二f據那些比較常使用的對稱加密演算法, 金鑰程序表,key sche=擴張至上數個的金鑰’(也就是 编嗖B士膝 π 士 dUle) ’母個金鑰都會被用在密碼 編澤日守將一段本文加密 / rrnnnH、。楚 ^ 要運异中的其中一回合 運算完的結果變成是第—人 資料(input text)。莖—门人、富々 弟一口。的輸入 二個金鑰做運算,#^一5運算就使用金鑰程序表中第 定的幾回合後就成為齋守二個、,,α果°本文在經過特 中,每-回合中的:要中在:階,密標準(AES)運算法 要運异中的運鼻在相關文獻資料中可
Haim 第9頁 1247241 五、發明說明(5) 被稱為子位元(SubByte,或S-box), 移列 (ShiftRows),混攔(MixColums),和回合金鍮(round key)加入(AddRoundKey)。位一段密文解碼的步驟事實上 和加密是很相似的,就是把加密文當作輸入值,並且在每 回合進^亍反向澤碼和反向運鼻’最後*—回合的輸出直就 是本文。 [ 00 0 9 ]數據加密標準(DES)和三度資料加密標準 (Tr i p 1 e-DES)應用的次要運算在小細節上不太相同但是它 們與AES運算法基本上是十分類似,因為它們用相似方式 將本文片段轉為一段段的密文。 [0 0 1 0 ]所有對稱加密演算法將多個連續片段資料加密 的模式都是一樣的。這些包括了編輯方塊連鎖(cipher block chaining mode,CBC),電子書碼(eiectronic code book ’ECB) ’ 編碼回授(cipher feedback mode, CFB)和輸出回授(0UtpUt feedback mode,OFB)。其中有 些模式品要一個另外的初始化向量(initialization vector)才能進行次項運算,有些則是會將第一組加密編 譯後的密文加入第二組本文加密的運算中·若深入探討每 一個密碼編譯演算法和當下對稱加密演算法中每個次項運 算步驟則就已超出本發明應用的範圍了。關於數據加密 標準DES和三度資料加密標準Triple des詳細的實施規範 探討,讀者們可以參考西元1 999年1〇月25日的Federal Information Processing Standards Publication 46-3 (FI PS-46-3),西元2001 年11 月26 日的 Federal
I圓
第10頁 1247241 五、發明說明(6)
Information Processing Standards Publication 197 (F IP S - 1 9 7 )中則有A E S洋細的探討。上述的刊物都是由 National Institute of Standards and Technology (NIST)所發行編譯的,在此附為參考讀物,所涵蓋的近乎 範圍。除了這些刊物外,NIST的Computer Security
Resource Center(CSRC)網站 http://csrc.nist· gov/ 内 也提供單元教學,白皮書,toolkits和相關文章等。 [0 0 1 1 ]熟知這方面技術的讀者應該都了解電腦系統上 有很多軟體都能用來執行密碼編譯的動作(也就是加密和 解密)。事實上,有些作業系統(例如微軟視窗χρ,
Linux)透過密碼編譯基元(cryptographic primitives), 密碼編譯應用軟體介面(cryptographic application program interface)和其他類似介面提供直接加密/解密 服務。當下的發明人發現現今電腦編譯密碼技巧上在多 方面有許多缺陷。請讀者們現在看到圖一,圖中標示出 這些缺失,以下將探討這些問題。 [0 0 1 2 ]圖一為現今電腦密碼編譯應用的方塊圖。圖 1 0 0顯示第一台電腦1 0 1連接到區域網路1 〇 5。另外接到網 路105的還有第二台電腦,網路檔案儲存裝置,第一個路 由器107或是其他連接至廣域網路11〇(wide area network, WAN),比如說網路,的介面,和一個無線路 由器108,例如符合IEEE 802。1 1規範的無線路由器。 在廣域網路110(wide area network)另一端接的是第二個 路由器111,用來提供與第三台電腦1〇3的介面。
第11頁 1247241 五、發明說明(7) [0013]如前文所述,現今使用者在一段使用電腦時會 需要保密電腦資料的時候越來越頻繁。例如說,在作業" 系統控制之下’電腦1 〇 1的使用者可能同時進行多樣工 作,而每樣工作都需要密碼編譯作業。電腦1(Π的使用者 需要執行加密/解密(透過作業系統服務或著是作業系統行 使的)將一個檔案存入網路儲存裝置106。在儲存檔案的同 時’使用者也可能將加密過的資訊傳給第二台電腦丨〇 2的 使用者,這個動作將也需要應用程式112執行加密和解密 的工作。加岔傳出的資訊有可能是即時的(例。即時訊 息)或不是即時的(例如。電子郵件)。另外,使用者可能 是在電腦103上透過無線區域網路丨1〇在存取個人的金融資 料(例如,信用卡卡號,金融交易,等)或是其他重要資、 料。電腦103也可但表一個家庭辦公室或是遠端電腦 103,其中電腦使用者101不在辦公室内,而是使用使用網 路來存取區域網路105上1〇1,102,1〇6 , 1〇7 , 1〇8和1〇9 内部身料。以上所述的行為都需要呼叫應用程式丨丨2來執 行相關加密和解密的動作。此外,無線網路109已被廣泛 的佈局在咖啡廳,機場,學校等公共場所,所以手提電腦 1 04的使用者除了必須將接收或傳送給別的使用者的資料 加密或解密外,所有透過無線網路1〇9傳給無線路由器1〇8 的資料也都要加以加密/解密。 [0 0 1 4 ]熟知此技術領域的人士可以了解當電腦1 〇 1 一 1〇4需要進行密碼編譯的動作時,應用程式112會被乎叫, 然後進行加密或解密的動作。所以未來電腦1〇1_1〇4有可
第12頁 1247241
五、發明說明(8) 能必須同時進行上百個密碼編譯運算
[0015]發明者發現電腦系統1〇 1 — 1〇4同時呼叫—個或 一個以上加密或解密應用程式112的做法有下列缺點。3例 如說,若可以使用一個專門的硬體來處理這些功能,硬^ 處理的速度會比用軟體快。每次應用程式11 2需要進行力 密解密時’電腦101-1 04正在執行的工作就必須#先暫停%^ 傳送密碼編譯動作所需的參數(本文,密文,模式,金錄) 給電腦作業系統,然後電腦作業系統在將這些資^料傳給應 用程式112來完成密碼編譯動作。由於應用軟體112在編〜 譯一段資料時需要執行許多回合的子運算,因此,電腦要 執行的指令數目繁多且讓整個作業系統處理的速度顯著下 降。熟習此技術領域者能了解為什麼在微軟Outl〇〇’k環境 中發出一封加密電子郵件後所需的傳輸時間會是未加 件的五倍之多 [0016] 介入電腦作業系統會的延誤時間也會影響現在 使用這項技術。目前應用軟體内大多沒有完整的金鑰產生 或加密/解密功能,所以都是靠作業系統或是插件軟體
lug-in software)來完成這些作業。而要獲得作業系 統資源,要向作業系統發出中斷指令(interrupt)或是由 正在執行的應用軟體對作業系統提出要求。 [0017] 發明者也發現電腦系統^卜丨〇4密碼編譯作業 方式與較早期微處理器内處理浮點運算單位還沒成立專門 處理單位前是很像的。早期的浮點運算是由軟體處理,所 以執行速度很慢。密碼編譯透過軟體處理的速度也是报
第13頁 .1247241 五 發明說明(9) 忮。隨著浮點運算的技術 ^ — 央處理器的輔助處理器。:*巧運算指令被整核入中 整個系統的價格升古 θ = 口入洋點數輔助處理器使得 許多。以也理浮純的速度比軟體快上 大多是透過平行戶槔處理器辅助處理硬體, 流排)插卡式或是外掛式f匯流排介面(如通用性串列匯 處理器可縮短電腦f 類的中央處理器的輔助 增加系統的價格和耗電量 理時間。但除了 低,資料安全性成為考量 :統的穩定度降 竊聽。 曰曰片上,所以它們之間的連接管道可能被 必I的。、^此一個内建於微處理器中的密碼編譯硬體是 C €始:每個硬體應讓應用軟體只需發一個指令便能完成 $ 4”、. „學。發明者認為這種硬體能減少介人電腦作業系胡 理想中此發明能提供應用軟體執行密碼編譯指 :的:先權1 了需要與目前市面上較普遍的微處二 目令,還要忐支援較老舊的作業系統和應用軟體。更要 止竊聽機制。此硬體應該支援多種不同的密碼編譯 演算法,且能夠認證和測試硬體上的密碼編譯演算法。 此發明需要能夠切換本身運作模式,例如允許使用者選擇 提供自己的金鑰或選擇由硬體發行金鑰及支援切換不同大 小的資料片段及金鑰大小。最後,此硬體所使用的加密/ 解密模式應該都可以被選擇,例如是否用電子書碼
(ECB),編輯方塊連鎖(CBC),編碼回授(CFB)或輸出回授
第14頁 1247241
(〇 F B)做密碼編譯。 [發明内容] [0 0 1 9 ]此項發明紐 i 、, 度名认似占 解決了先别技術上面臨的問題,提佯 -個優秀的微處理器内建密碼編譯技術。一實二中太供 發明是一個微處理器内密编嗜 實 U中本 譯邏輯和執行邏輯,轉羅輯收、:。裝置内包含了轉 的密碼編譯指令轉,tf;:到…譯指令後將收到 的步驟。執行邏輯和轉二對上的微電腦指令,指示運算 輯從轉譯邏輯接受到微\#邏\的運作是相連的,執行邏 算。 電腦指7和步驟後才能開始作運 理器裝置,此裝置有一 ί 一個處理密碼編譯程序的微處 這個微處理器裝置J含譯指令和-個轉譯邏輯。 密碼指令提供給微處理:=碼編譯指令和轉譯邏輯。 指令流程中。這個密碼“J處J器會將接到的指令加入 密碼編譯指令轉譯成相二二扣不處理器運作。轉譯邏輯將 行的步驟。 ’的微電腦指令,指示處理器該執 [ 002 1 ]本發明從某個 序的裝置。這個裝置勺人又有不疋一個處理密碼編譯程 輯。微處理器内的邏輯^你3 了…一個密碼編譯指令和執行邏 出需要執行哪一個密碼編咢^碼編譯指令後,從指令解讀 作是連接,所以執行邏W ^,執行邏輯和處理器是動 譯動作。 時就會執行那個特定的密碼編 1247241
[0022]本項發明也可被視為一個在微處理器中執行密 碼編譯的方法。這個方法包括了如何接收和執行密碼 譯指令。 [實施方式] 、[0036 ]惟以下所述者,僅為本發明較佳實施例而已, 並f用來限定本發明實施之範圍。即凡依本發明申請專 ,範圍所作的均等變化與修飾,皆為本發明專利範圍所涵
[ 0 037 ]以下内容將參考圖二延續之前密碼編譯運算之 相關技術背景以及其缺點探討。接下來請參照圖三-十 一:— 本發明提供了一個效能和機制優越的裝置和方法來 執行密碼編譯運作。此發明降低介入作業系統的必要性。 除此之外,此發明也滿足了其他要求,如獨立完整性,與
老舊架構相容性,運算法及模式切換性,駭客抵禦性,^ 及可測試性。 — A
[0 0 3 8 ]現在請看圖二,圖二描繪的是現今電腦系統 行密碼編譯的方塊圖。方塊圖2〇〇内包含了一個微處理 個微處理器2〇ι負責從系統記憶體中應用程式記 區 /取得與應用程式相關的指令和存取相關的資料。 f : ί式5己憶區2〇3中的軟體控制和資料存取機制通常朝 疋:糸,記憶中作業系統202處理。作業系統2〇2被存放 糸己憶中受到保護的區塊中。如前文中描述,一個應 程式在執行中需要做譯碼編譯的動作時(例如說一個電^
第16頁 1247241 五、發明說明(12) ---- 郵件程式或是儲存檔案的軟體),必須通知微處理 , 然後由微處理器201完成一連串數量龐大的指令 :碼:譯。這些指令有些是這個執行中應用^式:二子程 序’有些是連接到這個執行程式的軟體插件程序或著也 有:能是作”統202所提供的服務。無論這些指;源自 何處’都位在記憶體中一個特定的區域中。為方便对〜, 記憶體中這些不同區域的片段圖中都被包在在 ^ : 9 憶區203内。應用程式記憶區203中還包含了一 ^固產生^鑰 的軟體204。這個金鑰產生軟體通常付責產生和接受金餘 的工作,也將金鑰展開成金鑰程序表205。如果使用的加 密模式需要,加密的軟體206會去讀取初始化向量2〇8。加 後軟體執行内部指令來完成本文加密的動作,最後輸出密 文211。解密的流程大致上是一樣的,當需要解讀一段密 文時,解密軟體207被呼叫。解密軟體2〇7執行執行特定的 指令來取得密文211,金鑰程序表2 05以及密碼編譯參數。 其中密碼編譯參數能提供密碼編譯的詳細細節。如果使用 的解密模式有需要,解密軟體2〇7會去讀取初始化向量2〇8 並執行那裡面的指令來完成密文解密的動作,輸出本 210。 [ 0 0 39 ]加密,解密和產生金鑰的動作應該可以用更 少的指令就完成。之前提出由FIps出版的規範中便有提供 幾個不同的虛擬碼來預估完成一項簡單密碼編譯工作微雷 腦處理器所需要執行的指令數量。而現在使用的技術所♦ 處理編譯密碼的指令數量高達上百個以上。除此之外,而
第17頁 1247241 五、發明說明(13) &那些執行中的應用軟體(檔案管理,簡訊, f端::存取,信用卡”軟體)的角度來看 : 密碼編譯既不是軟體本身主要的用途, < 二 〜 叩且又十分耗味 甚至會使軟體的使用者錯覺應用軟體不夠有效率。=三 軟體206,解密軟體207是軟體插件的架構,則情兄备f被 糟’因為電腦作業系統的工作項目又增加了支援呼; 理206 ’207軟體。作業系統必須支援中斷,例外等其^ 況。除此之外,電腦系統上每一個同時正在進行的 編譯都會需要在記憶203内安排一些空間給軟體2〇4,2〇6 和207。而且未來微處理器202所需處理的密碼編譯工
量只會有增無減。 P I
[0040 ]發明者有鑒於現今電腦系統處理密碼編譯的這 ,缺陷’冑會需要-個内建微處理器,並能改善密碼編譯 處理速度的裝置及方法的必要性。此單位透過一個單一的 =碼編譯指令便啟動編譯程序。關於此發明,我們將參昭 圖二-十二來做更深入的解釋 田⑽現在請看圖三,圖三是依照本發明原理的微處 f β岔碼編譯運算裝置方塊圖。圖300顯示微處理器301 if記憶體匯流排319與系統記憶321結合。微處理器3〇1 ^了,澤邏輯303。轉譯邏輯3〇3從指令暫存器3()2接收 指令。密碼轉譯邏輯3〇3的構成可以是一個邏輯、電路、 裝置、微扣令碼(就是微指令或原生指令)或是一個邏輯、 Ϊ路政ϊ ί :微指令碼或其他可以達到同樣功效元件的結 口 ' 成對照的微指令碼的元件。構成密碼編譯
1247241 五、發明說明(14) 邏輯303的元件可以與微處理器3〇1内執行其 路、微指令碼、等元件共用。根據本應用範圍, 指:5複數個?指,。微指令(也可以被稱做原生指令;指 的是密碼編譯單元層次可勃彳千的户人 隹運瞀♦揷奖拙古令。比方說,精簡指令 ί 行微指令,而加強指令集運算處理 器,如Χ86相谷的處理器,則先將指令翻譯成微指令铁後 ^由内部一個或一個以上的單位執行。轉譯邏輯303和指 々佇列304耦接。指令佇列3〇4中有複數個微指令3〇5, 3〇6,這些微指令是由微指令佇列3〇4交給暫存器階段邏輯 的。其中暫存器階段邏輯包含了暫存器檔案3〇7。微指令 從指令佇列移動至暫存邏輯區。暫存邏輯包含了一個暫存 檔Μ7 ,暫存檔307内有複數個的暫存器3〇8 —313。這些暫 存器會在進行編碼編譯運算前將運算所需要的資料載一入。 每,暫存器都指向記憶體321中323一327其中含有編譯密碼 運异7需要的資料。暫存區邏輯與載入邏輯314耦接。載 ^邏輯與快取記憶資料3 1 3耦接,從快取記憶資料3 1 3讀取 密碼編譯運算所需要的資料。資料快取記憶透過記憶匯流 排3 1 9與記憶體耦接並且執行收到的指令。執行邏輯3 2 8的 2成可以是一個邏輯、電路、裝置、微指令碼(就是微指 令或原生指令)或是一個邏輯、電路、裝置、微指令碼或 ^他可以達到同樣功效元件的結合,執行指令所指示的運 f °構成執行邏輯3 〇 3元件可以是和微處理器3 〇 1内別的功 =共用的。執行邏輯328包含了一個密碼編譯單位316。 禮碼編澤單位3 1 6從載入邏輯3 1 4接收密碼編譯運算所需資
第19頁 1247241 五、發明說明(15) 料。微指令指示密碼編譯單位316對複數個輸入 3 2 6進行彼碼編譯’並輸出對應的複數個輪出文—& 327。密碼編譯單位316的構成可以是一個邏輯, 裝置,微指令碼(就是微指令或原生指令)或是— 電路,I f,微指令碼或其他可以達到同樣功效^ 合,處理密碼編譯。構成密碼編譯邏輯303元件可 微處理器301内執行其他功能的線路、料#人 疋 共用二一實施例中密碼編譯單位316與執行邏 净點單位和整數單位等執行單位平行執行(未 〇 「單位」的實施例的構成可以是一個邏輯、雷7三一 微指令碼(就是微指令或原生指令)或是一 、t置、 裝置、微指令碼或其他可以達到同樣功效元路嫌 成此單位的元件可以是和微處理器3〇1内 的π B。構 線路、微指令碼、等元件共用。一 f γ彳丁,、他功能的 的構成可以是一個邏輯、電路、裝 :?1中,整數單位 指令或原生指令)或是一個邏輯、"^電路、曰令碼(就是微 或其他可以達到同樣功效元件的妹人 ^置、微指令碼 一個浮點Κ立的構成可以是一個纟^ ^整數指令。 令碼(就是微指令或原生指令)或 、裝置、微指 置、微指令碼或其他可以達到 k輯、電路、裝 浮點指令。構成整數單位内執行I $凡人件的結合,執行 和浮點運算單位中處理浮點運算指人 '々的元件可以是 令碼、等共用。一與χ8β架構相容 、〃元件的線路、微指 單位3 1 6與一 X 8 6整數單位,一 X R Α : 化例中’密碼編譯 早 Χ86洋點單位,-χ86 ΜΜΧ單 I晒
βϋ 第20頁 1247241 五、發明說明(16) =和一 X86SSE單位平行運作。根據本發明範圍,—鱼 x86相容結構的實施例可以支援大多數為χ86處理器^ 二Τ。判斷軟體是否正確被執行的方法為檢查執1行軟、’、、 後是否得到正確的結果。其他與χ86相容的實施 碼編譯單位視為χ86執行單位十的一個子單位。^ 费 單位316與儲存邏輯317耦接並提供輸出複數個對應文字, 段327。儲存邏輯又與資料快取記憶耦接315。資料 記憶315將輸出文字資料327分送至記憶體321中儲存。、 存邏輯317與寫回邏輯318耦接。密碼編譯運算完成播宜 回邏輯318更新暫存器檔案3〇7中暫存器3〇8_313之内容二 一實施例中微指令配合時脈信號(未顯示)流向前述的 邏輯階段 302、303、304、307、317、 這樣運算可以如同生產線作業般同時執行多個運算。 [ 0 042 ]系統記憶體321内,一應用程式若需要執行密碼 編譯運算,可向微處理器301發出一個密碼運算指令322 了 以下稱為XCRYPT指令322。在加強指令集運算實施例中, XCRYPT指令322包含了 一個指示密碼編譯運算的微指令。 在精簡指令集運算實施例中,XCRYPT指令322包含了一個 指示密碼編譯運算的微指令。一實施例中,XCRYPT指令 3 22用了 一個現有指令集中多出或為使用的指令運算碼。 一x86相容的實施例中,XCRYPT指令322是一個4位元指令 包含一 x86前置(prefix)(也就是0xF3),一指令集内為被 使用過的2位元運算碼(就是〇x〇FA7),和——位元區塊解 密模式。一實施例中XCRYPT指令32 2依照應用軟體被允許
1247241 五、發明說明(17) = —人,可以直接將XCRYPT指令322直接微處理器301 系^ 2程或是由作業系統320寫入。因為只軟體或作業 f ^只需要下一個指令322就能完成密碼編譯,所以密碼 、、爲澤的作業細節對作業系統都是透明的。 /0043 ]電腦系統的運作模式,是由作業系統3〇2呼叫 士订固應用軟體320。應用軟體下令執行XCRYpT指令322 你 ,扣令取得邏輯302内。當然,軟體裡還會有其 他私々拓=微處理器3〇1先將記憶體321中323 —327的密碼 制字元323,初始密碼編譯控制金鑰324或金鑰程序 t 始向量325(若需要的話)。等著被處理的輸入 =子326和輸出文327會被複製至對應的暫存器323 —π? 中。此初始晝暫存器308-31 2的動作一定要在埶行 成。因為執行KRYPT322指令時會用到暫 L 中所有的資料。另外還有一個暫存器,一個 負α貝名錄輸入文字有幾個片段還需要被加密/解密的暫存 ^Λ5/303從提取邏輯302取得指令,轉譯成對應 二二,:第 個扣7會私不希碼編譯單位31 6將資料從 二ΐϊί人,然後開始執行指定次數的密碼編譯。執 出標會透過資料快取記憶315存入記憶 扣317的文字區327 °第二組複數個的指 :年構二ϊ ΐ;處理器301内其他執行單位(未顯示)。 ^ 子°、吊包含臨時結果和計數器更新輸入和輸出
1247241 五、發明說明(18) 指標暫存器311-312。若有應用到初始向量暫存器的更新 資料。其中一實施例便是暫存器3 08-3 1 3為架構暫存器。 [ 0044 ] —實施例中,密碼編譯單位316被分為複數個 階段,允許連續輸入的文字片段32 6被管線化。 [0 0 4 5 ]圖三所顯示的元件為解釋本發明的必要元 件。許多現今的微處理器301内部的邏輯沒有在圖3〇〇内 中顯示。熟習該項技術者會發現,為了能清楚說明發 明’許多微處理器301内包含的邏輯在圖300中都被簡化 了。 這是為了方便敘述。如載入邏輯314可以包括一個 地址產生步驟,接者一個快取記憶介面階段。然後再接著 了個快取記憶對齊階段。但是有一點很重要,本發明對 複數個輸入文字片段進行密碼編譯326,作業系統只要透 過單一個指令便能完成。本發明始密碼編譯工作的細節 動作完全透明化,而且和微處理器3〇1内其他執行邏輯同 時進行運算。密碼編譯單位316和相關的XCRYPT指令322 運作完全和現今較老舊作業系統運算相容。 [ 0 046 ]現請參考圖四,這是密碼編譯指令的方塊 密碼編譯指令400包含了 一個前置攔位4〇ι,一個重 則置攔位4 〇 2,一個運算碼欄位4 〇 3,一個區塊解密模式 j位404。 一實施例中,攔位40卜404的内容與x86指令^ 構相容。 [0047 ]運算時,許多指令集結構都採取加入了一個 、擇性的前置欄位4〇 1。此欄位内容用來指示處理器開啟 ,關閉一些運算功能。例如直接作16位元或2〇位元運算 麵
第23頁
1247241 五、發明說明(19) 2功此和直接處理或存取特定片段的功能等。重複前置 位402的内容代表密碼編譯動作需要被重複執行的次 數0 一 [0048 ]運算碼攔位403指微處理器去執行控制字元指 不的f碼編,運算,這個控制字元實際上是被存在記憶體 内,一控制字指標指向控制字在記憶體中的位置。運算 碼的值會被設定為一個現有指令集内少用的值。如此一 來,幸乂老舊的作業系統及應用軟體也能使用。例如說, 一個x86相容系統就可以將此值設為〇x〇FA7。區塊解密模 式攔位404指示哪一項密碼運算作業需被執行。請看圖 五。 [ 0 049 ]圖五是一個區塊密碼欄位值與微處理器運算動 作對照表例子。如圖所示,若區塊密碼欄位内的值為 0x08時,微處理器就會用電子書碼(ECB)模式來完成密碼 編譯動作。當欄位内的值為OxDO時,微處理器就會以編 輯方塊連鎖(CBC)模式。ΟχΕΟ表示微處理器應使用編碼回 授(CFB)模式,0χΕ8表示使用輸出回授(〇fb)模式。以上 所述各模式在F I PS文獻中均有詳細的描述。 [ 0050 ]現請看圖六。圖六所要表現的是一個在Χ86相 容的微處理器60 0中的密碼編譯單位6 1 7之發明實施例。微 處理器600内有一個指令取得邏輯601。指令取得邏輯6〇1 從記憶體(未顯示)取得指令。轉譯邏輯602由一個邏輯, 電路,微指令碼(microcode)(就是微指令 instructions 或原生碼,native instruction)妒置戋
1247241 五、發明說明(20) 是其他可以將指令轉成對照的微指令碼的元件。轉譯邏 輯602内的轉譯元件可以與微處理器600内其他功能元件共 用。如圖所示,轉譯邏輯602内包含了一個互相麵接的轉 譯器603和微指令碼唯讀記憶體604。 中斷邏輯626透過 匯流排633耦接轉譯邏輯602。 軟/硬體所發出的中斷要求 信號627都由中斷邏輯626處理。中斷邏輯626轉達指令轉 譯邏輯602中斷。如圖六所示,指令轉譯邏輯與以下連串 性階段耦接。包括暫存器階段605,位址階段606,載入 階段607,執行階段608,儲存階段618以及寫回階段619。 圖六所描繪的執行階段6 08内包含了 一個執行邏輯632。 執行邏輯632内有多個同時作業的執行單位,單位61〇, 612 ’614,616和617。整數單位610負責執行微指令佇列 609内的整數微指令,浮點單位612負責執行微指令佇列 6 11内的浮點微指令,μ Μ X單位61 4負責執行指令仵列6 1 3 内的ΜΜΧ微指令,SSE單位616負責執行微指令佇列61 5内 的S S Ε微指令。S S Ε單位61 6和密碼編譯單位6 1 7麵接。兩 單位中間有一個載入匯流排620,一個閒置信號621和一個 儲存匯流排622。密碼編譯單位61 7和SSE單位共用同一個 指令佇列6 1 5。另一個實施例的做法是將密碼編譯單位 617設為一個如單位610,612及614相同的完全獨立的單 位。整數單位610和x86 EFLAGS暫存器是耦接的。 EFLAGS暫存器包含了一個X位元625。這個X位元内的值描 目前是否有密碼編譯運算正在作業。X位元6 2 5實施例中 的其中一項是x8 6 EFLAGS暫存器624中的第30個位元。另
第25頁 1247241 五、發明說明(21) 外,整”6:0會讀取暫存器m中資料來分析_継位 疋629的H E位兀中的值指示密碼編譯單元61 7是否存 在於微f理㈣〇内。1數單位610也會讀取一個"立元 631。這個位το位於特徵控制暫#器63〇@,用來開啟和 關閉密,編,單位617。%圖三微處理器實施觸卜圖 六的微處理裔600為了能清楚表達發明特徵,圖中口 出一些微處理器的構造,其他部分則被匯集在一起或、、、著已 被省略。熟知此項技術的人士可以理解元件,例如責 資料快取記憶(未顯示)的介面,匯流排介面單位(未顯示) 以及時鐘發生器和分散邏輯等其他微處理器的單位都被省 略0 甚百- d,算過程中,指令取得邏輯配合時鐘訊號(未 頦不)將扣々從記憶體(未顯示)提至轉譯邏輯6〇2。轉譯 邏輯602將指令轉編為對㈣微指令然後配合時鐘訊號轉 供給微處理器600内605 —608,618及619等單位。每個指 二對,的連串微指令指示微處理器該做的子動作來完成 =項,令。例如一個由位址階段606執行的位址產生指 I就包含了先從暫存器階段605特定的兩個暫存器(未顯 =^内取得兩個運算元,然後再於整數單位61〇相加兩個 舁所有執行單位610, 612, 614,616及617所產 ^9的/果都由儲存邏輯618負責存入記憶體中。轉譯邏輯 會判&斷指令的類型,然號使用轉譯器6〇3直接產生一連 令’或是轉譯邏輯602會由微指令碼唯讀記憶體 提提取一連貫的微指令。或著轉譯邏輯602會產生 1247241 五、發明說明(22) 部分的微指令,剩下的再從微指令碼唯讀記憶中提出。 微指令按照時鐘速度的在微處理器600中遵循605 - 608, 6 1 8和6 1 9各階段的順序執行。當微指令移動到執行階段 608時,執行邏輯632將微指令發送至執行單位61〇, 612, 614, 616,及617所執行運算產生的結果接著進入 儲存階段6 1 8。在一實施例中,微指令包含了標明範圍了 指令,不論能不能與其他運算同時進行。 [ 00 52 ]轉譯邏輯602接收到XCRYPT指令後,產生對應 的為指令,指揮微處理器6〇〇内其他邏輯605-608,618, 61 9來執行到的密碼編譯運算指令。前面幾個複數個的 微指令會直接被分派到密碼編譯單位61 7内來指揮單位61 7 從載入排匯流載入需要的資料。或是載入一個片段的輸 ^資料,開始進行指示次數的密碼編譯回合。也有可能 是將一段輸出資流透過儲存排匯流622傳到儲存邏輯61 8, 然後再存入記憶體中。接下來第二組複數個指令會被分 =^執仃單位61 〇, 612, 614和6 1Θ來執行其他必要的子 。例如測試E位元629,設定D位元631,將χ位元625 叹定為顯示密碼編譯運算正在執行中,將χ位元625 =值:定為顯示密碼編譯運算正在執行中。更新暫存器内 J暫存:、數2器,輸入文字指標暫存器,•出文字指 存階段6〇5範圍内的工作,處理由中斷邏輯 bZb送來的中斷要求62?, ^ ^ 的齋π 等工作。為了實現最有效率 整數單-)Υ關私令,微指令的順序會被特別排列成將 凡微指令穿插於密碼編譯微指令中,已達成整數運
第27頁 1247241 五、發明說明(23) "" ' '一' --- 算與密碼編譯運算平行執行。微指令中包含了從暫停 斷627中恢復所需要的微指令。所有指向密碼編譯參數 (cryptographic parameter)和資料的指標都位於χ86架 暫存器内,收到中斷要求時,指標都會被儲存,中斷二 後,資料計參數會被恢復。從中斷中回覆時,會有組 為指令負責測試X位元的狀態,判斷是否有密碼編譯運算 正在進行。如果有,微處理器會開始繼續處理接到中 斷要求時正在處理到一半的輸入資料。微指令的排列順 序會允許在處理中斷627前先把指標暫存器及正在進行密 碼編譯的未完成結果先更新至暫存器内,然後再進行中 斷0
= 053 ]現在請看圖七,圖七是一個微指令結構的範 例。攻個微指令700就是用來指示像圖六所見的微處理器 來執行密碼編譯運算的指令。微指令7〇〇包含了一個微運 算碼欄位701, 一個資料暫存器欄位7〇2和一個暫存器攔 位703^。微運算碼攔位701提供了微處理器6〇()該執行那些 子運算程序,和每階段所要使用的邏輯。在本發明中, 特定的值是被指定到微指令以供解碼單元運作使用。第 一個值(XL0AD)指示從記憶體中資料暫存器攔位7〇2指向 的位置中的資料。這個資料應被載入暫存器欄位7〇3所只 是在密碼編譯單位中的位置。這個提出的資料(例如密碼 編#金鑰資料,控制字,輸入文字資料,初始化向量)是 提供給密碼編譯單位用的。第二個微運算碼攔位7〇 1的 值(XST0R),指示密碼編譯單元運算產生的結果應存入記
第28頁 1247241 五、發明說明(24) " ' ' ' "一· 隐體中為料暫存器欄位γ 〇 2所指向的位置。針對多階結構 的=碼編譯單位,暫存器攔位7〇3的内容指示在複數個輸 出貝料片段那一個應該被存入記憶體中。輪出資料片俨 被放在資料欄位7〇4,供給儲存邏輯讀取。接下來,表又 圖八與圖九,將更進一步探討XL〇AD和XST0R在密碼編; 位中的執行流程。 亨 [0054 ]現請參考圖八,表格8〇〇是如先前所述, 器轉譯xcmT指令得到一組為指令。這組微 微 垃引面第一組複數個微指令由密碼編譯單元直接執行, 位m二組的複數個微指令則是由-個或是多個其他單 新計ίϊ行臨數個微指令所進行的動作包括更 态 時暫存器,結構暫存器,測試和設定嫌 i二:ϊί器的位元狀態等。卜組複數個的微指令則 ΪΞί;:二密碼編?參數,和輸入資料給密碼4 ί體中提出的金錄程序表),記 密,儲存輸出文字資料。一 …或解 單位載入祕连丨—次土、丨、XL0AD微&々4日示密碼編譯 表,^ ^子負广、,載入密碼編譯金鑰或金鑰程序 ίι始谁栽”始化向量資料,載入輸入文字資料和指- 欄丁抢碼編澤運异。當微指令微XLOAD時,暫存装下 字ΓΛ:的值0_0指示密竭編譯單位將控制字載入Λ …⑲指這個指令在管線 載控制 個暫存器内存控制字指標。ii個浐^/、 遇 控制字的付署。截Λ、跋紅 k個和k h向記憶體中 載邏輯從快取記憶體中提出這個控制 Η
第29頁 1247241 五、發明說明(25) 字,放入資料欄位704。相同的’暫存器欄位值⑽1〇〇指示 密碼編譯單位載入資料攔位7 0 4中的輸入文字資料。然後 再進行密碼編譯運算。如同控制字元’輸入資料是透過 一個存在結構暫存器内的指標提出。 [ 0055 ] —實施例中,暫存器欄位〇b 100和OblOl可被 視為一個兩階段的密碼編譯單位。連續的輸入文字資料 可被管線化。第一個XL0AD微指令將第一段輸入文字放入 IN-1,第二個XL0AD微指令將第二段輸入文字放入ΙΝ-0, 第二個X L 0 A D微指令也會啟動密碼編譯單位執行密碼編譯 運算。 [0 0 5 6 ]如果密碼編譯運算所使用的是使用者自行產 生的金鑰程序表,則XL0AD微指令的數目與使用者自行產 生的金鑰程序表中金输的數目相對應。使用者自行產生 的金鑰程序表會被分送到密碼編譯單位内,此單位會依照 猶碼編譯進行的狀況從金输程序表中載入該回合所使用的 金餘。 [ 0057 ] XL0AD微指令暫存器攔位7〇3中其他值都為 留值。 、 —” [ 0058 ]現請看圖九,圖九中表格中顯示XST〇R微指 令暫存器欄位703的對照表。XST〇RE指令指示密碼編譯 位將處理好的輸出文字片段(加密過或解密過的)存 欄位702所指示的記憶體内的位置。根據本發明,翻 ,先產生二個XL0AD微指令載入一段輸入文字’然後再發 出XST0R將該輸入文字所產生的對應輸出文字儲存。暫存
第30頁 1247241 五、發明說明(26) ------- 器欄位70 3的值〇bl 〇〇指示密碼編譯單位提供内部暫存= output-〇, 0UT 一 〇中的輸出文字片段供給儲存邏輯做= 存。OUT-0的内容是IN-〇中輸入文字片段的對應。相 的’暫存攔位Obi 01指向的内部暫存器,其内办 疋I N-1中輸入資料的對應。載入金鑰和控制字資料後, 下XL0AD.IN-1,複數個輸入文字片段可以被管線化的 入密碼編譯單位。XLOAD.IN-0微指令(xload.IN-0也是於 示密碼編譯單位開始執行密碼編譯運算), 疋9 XST0R.0UTPUT-1 , XSTOR.OUT-O , XLOAD.IN-1 , XLOAD.IN-0(開始替下一個輸入文字片段進行運算), 等。
[0059]現請看圖十’圖十是一個控制字元1〇〇〇的格式 例子。控制字元中包含了指示密碼編譯運算所用的密碼 編譯參數。控制字元1 〇 〇 〇是由使用者編製入記憶體中: 在進行进碼編澤運鼻刖’指向控制字元的指標位於一個会士 構暫存器内。所以XCRYPT指令對應的一組微指令中,° LOAD微指令指示微處理器讀取含有該指標的架構暫存器, 並將指標轉成實體位址,從記憶體(快取記憶體)取出控制 字1 0 0 0 ’放入密碼編譯單位内部的控制字暫存器。控制 字1 000包含了一個保留的RSVD攔位1001,一表示金鑰大小 的KSIZE欄位2002, 一加密/解密E/D欄位1003,一中間 結果IRSLT欄位1 004, 一金鑰產生KGEN欄位1 005, 一演 算法ALG欄位1 006和一回合數計數RCNT欄位1 00 7。 [ 0060 ]所有保留欄位1001的值都要被保留。KSIZE欄
第31頁 1247241
位1 002的值表示加密或解密所用的金鑰的大小。一實^ 例中,KSIZE攔位1 002指示金鑰究竟是128位元,19^位' 還是256位元。ε/D欄位1〇〇3註明這個密碼編譯運算式加70 密或是解密運算。KGEN欄位1 005指示記憶體中金: 用者產生的金鑰程序表還是一個單一金鑰。如果記憶體 中的是單一金鑰,則微指令會把這個密碼編譯金鑰,〜根 ALG欄位1 0 06内容指定密碼編譯演算法展開成一金鑰裎X序 表。一實施例中,ALG攔位1 006指定AES演算法,所以迄 今為止’我們所作的討論都是針對Tripie-j)Eg和Mg演算 法。其他應用不同密碼編譯演算法之實施例,如
Rijndael Cipher,Twofish Ciper,等。RCNT 攔位 1〇〇7 的内容指示密碼編譯時遵循所用的演算法對每個文字片段 所需重複進行密碼編譯的回合數。雖然以上所述之密碼 編譯演异法的規範指示對不同的輸入文字片段進行固定次 數回合的密碼編譯,但是RCNT攔位1〇〇7允許程序編製員將 RCNT攔位1 007之值設為可以依照使用的演算法而改變。 一實施例中程序編製員指定要對每段文字進行〇至15回合 密碼編譯。最後,IRSLT欄位1 〇 〇 4内容註明對輸入文字 加密/解密的回合次數是否參照RCNT攔位1〇〇7和ALG欄位 1 0 0 6注明的演鼻法或是根據A L G搁位1 〇 〇 6中註明的演算 法,RCNT欄位1 0 0 7做的演算數目產生的只是一個中間結 果,並不是最後結果。熟知此項技術的人能了解,許多 密碼編澤演异法會重複進行同一個子運算,最後一回合時 再做不同的運异。所以I R S L T欄位1 〇 〇 4所提供的是一個中
1247241 五、發明說明(28) 間結果,並且運許程序編製員能夠在進行下一步動作前對 這個中間結果先加以確認。例如如最後結果是對中級结 果增值而來的’可以先對文子進行一回合加密,然後再對 同樣一個文字片段進行二回合的密碼編譯,然後再進行三 回合’專專。這個可以設定的密碼編譯回合設定功能和 中間結果功能始使用者能夠評估密碼編譯的效能,解決問 題,也是一個研究不同金鑰結構和回合次數的工具。 [0 0 6 1 ]現請看圖十一,一個密碼編譯單位丨丨〇 〇的方 塊圖。密碼編譯單元包含了 一個微程序碼暫存器丨丨〇 3。 微程序碼暫存器11 0 3透過微指令匯流排11丨4接收微指令。 (如XLOAD和XSTOR等微指令)密碼編譯單位11〇〇也包含了 一個控制字元暫存器1104, 一 inpUt 一〇暫存器,一 input-1 暫存器 1106,一 key-0 暫存器 11〇7,和一 key一1 暫 存器1108。載入匯流排1111遵照XL〇AD微指令在微指令暫 存器1103中的内容將資料載入存器11〇4 —11〇8中。密碼編 譯單位11〇〇還包含了一個與所有暫存器11〇3-11〇8和金鑰 隨機存取記憶體1102耦接的區塊解密邏輯11〇1。區塊解 密邏輯提供一停止信號1113和一區塊結果至〇111:1)111: — 〇暫 存器1109和ouput-l暫存器111〇。輸出暫存器11〇9111〇 會將内部内容循序的透過儲存匯流排1112送至微處理器。 一實施例中微指令暫存器1103是32位元大,而其他暫存器 1104-1110則是128位元大。 ^ [0 0 6 2 ]在運异中,密碼編譯微指令依序的被送至微 才曰令暫存器1103,另外,控制字暫存器11〇4和輸入暫存器
1247241
1105-1106其中之一或金鑰暫存器11〇7 —11〇8其中之一也會 被跟著一起送至微指令暫存器内。一配合圖八和九所討 論之實施例中,控制字先在XL〇AD微指令發出後備載入控 制字元暫存器1 1 04内。接下來密碼編譯金鑰或金鑰程序 表在接下來的XLOAD微指令下指揮下也被載入。如果要載 入的是一個128位元大小的密碼編譯金鑰,貝彳XL〇AD微指令 會安排KEY-〇 1107來儲存這個金鑰。若是金鑰大小大於 128位元,則XLOAD會安排KEY-〇 1107和KEY - 1 1108來儲存
此金鑰。如果載入的是一使用者產生金鑰,接下來的 XLOAD微指令會安排KEY-〇 1107。每個金要程序表中的金 鑰都會依序被排列在金鑰隨機讀取記憶體丨丨0 2中,以供 每個密碼編譯回合中使用。接下來輸入文字資料(若不需 要初始化向量)會被載入IN-1暫存器1106。XLOAD中的一 個微指令會指示IN-〇暫存器11〇5將輸入資料載入並且根據 控制字暫存器1104中的内容,應用在IN-1暫存器或是在兩 個輸入暫存器1105-11〇6内的初始化向量開始對暫存器内 的資料進行密碼編譯工作。(如果輸入資料被管線化)收 到XLOAD微指令指定in-ο暫存器1 0 0 5後,區塊解密邏輯便 遵循控制字的内容開始進行密碼編譯。如果需要展開單 一密碼編譯金鑰,那麼區塊解密邏輯便會產生金鑰程序表 内的每一把金鑰,並且將它們存在金鑰隨機讀取記憶體 1102内。不管區塊解密邏輯是否需要產生金鑰程序表或 是金鑰程序表已經從記憶體内載入,密碼解密第一回合所 用到的金鑰一定是被存在區塊解密邏輯11 〇1中的快取記憶
第34頁 1247241
體内’這樣第一區塊的密碼解譯回合就可以直接進行,無 $再從金鑰隨機讀取記憶體丨丨02取得。一但區塊解密邏 輯開始動作,便會對一塊或一塊以上的輸入文字進行密碼 編譯運算,逐次的從金鑰隨機記憶體中提取所要用到的金 餘。密碼編譯單位11 0 〇對指定的輸入片段文字進行特定 ,密碼編譯運算。下達XL〇AD和XST〇R微指令來對輪入文 字進行加密或解密。執行XST〇R微指令時,若輸出資料 (OUT-0或OUT-1 )還沒準備好,則區塊解密邏輯會設一個停 止信號111 3。 一但輸出資料產生完成並且已被存入對應 的暫存器1109-1110内,那麼暫存器裡的内容就會被轉入 儲存匯流排111 2。 [ 0063 ]現請看圖十二。圖十二是一個AES演算法區塊 解密邏輯1200的方塊圖。區塊解密邏輯12〇〇包含了一個 回合计异引擎勤(roun(j engine)i22〇,一個回合計算引擎 勤控制器1 2 1 0。回合計算引擎1 22 0透過匯流排1 2 11 -1 2 1 4 和匯流排121 6-1 218與回合計算引擎控制器121〇耦接。回 合計算引擎控制器可以存取微指令暫存器12〇1,KWH暫 存器1 2 0 4來讀取金鑰資料,微指令和密碼編譯運算參數。
暫存器1205 - 1206中的内容,供給回合計算引擎1220,然 後回合計算引擎1 220再將對應的輸出文字傳到輸出暫存 器1 207-1 208内。輸出暫存器12〇7 —12〇8透過匯流排1216一 1217與回合計算引擎控制器121〇耦接。這樣回合計算引 擎控制器就能讀取每一密碼編譯回合的結果,再供給回合 計算引擎1 220,讓回合計算引擎122〇能透過匯流排 画
麵 第35頁 1247241 五、發明說明(31) NEXT IN1 218進行下一回合的密碼編譯運算。密碼編譯金鑰 透過匯流排1 2 1 5從金鑰隨機讀取記憶體(未顯示)中被提 出。ENC/DEC 1211信號指示回合計算引擎進行加密(s — Box)或解密(反向S-Box)。 RNDCON匯流排1212指示回合計 算引擎進行第一AES回合或中級AES回合或是最後一回合的 AES。 GENKEY信號1214設定時代表回合計算引擎1 220需 要將從匯流排1 2 1 3取得的金鑰展開成金鑰程序表。金鑰 匯流排1213也是用來提供金餘的,她會將每一回合所需要 用的金鑰提供給回合計算引擎1220。 [0064]回合計算引擎1220與第一個暫存器reG-0 1224耦接,内包含了第一 x〇R邏輯金鑰1221。第一個暫存 器1222與S-Box邏輯1223搞接。S-Box邏輯1223與移列邏 輯1 224 (Shift Row logic)耦接。移列邏輯1 224與第二 個暫存器REG -1 1 225耦接。第二個暫存器REG-1 1 225與 混攔(Mix Column)邏輯1226耦接。而混欄邏輯與第三個 暫存器REG-2 1 227耦接。第一金鑰邏輯1221,S-Box邏 輯1 2 2 3 ’移列邏輯1 2 2 4及混欄邏輯1 2 2 6作為執行名稱相子 程序運算。混欄邏輯1 226用途為對在進行中級密碼運算 回合中時加入的資料進行AES X0R運算,使用金鑰匯排流 1213所提供的回合金錄。 當ENC/DNC狀態指示進行解密 時第一金鑰邏輯1221,S-Box邏輯1 223,移列邏輯1224 及混欄邏輯1 226也用來進行對應的逆AES子程序運算。熟 知此技藝人士可以了解進行中級回合時資料會根據控制字 元暫存器1202内容所指示之區塊解密模式,將資料反饋至
第36頁 1247241 五、發明說明(32) 回合計算引擎1 220。若需要初始化向量資料時,初 向量會透過排匯流NEXTIN1 218被傳回回合計算^丨^始化 1 220。 學 [0 0 6 5 ]圖十二是一實施例。如圖所示回合計* 被分割為兩個階段:REG-0 1 222和REG-1 1 225間的丨擎 階段和REG-1 1 225和REG-2 1 227間的第二階段。第〜 回合的資料被放在兩個階段中,配合時鐘信號(位中階 動。當密碼編譯運算完成一塊輸入資料,輸出資料\不)移 對應的輸出暫存器1 207-1 208。執行XSTOR微指令^存入 存器1207-1208將内含資料傳送至儲存匯流排(未顯二使暫 [ 00 66 ]雖然本發明已以較佳實施例揭露如上。τ 。 本發明目前實施例皆以x86架構作為基準,因為χ86架 個杈多人热悉的架構,因此以χ8 6架構講述較方便。本 發明也可以同樣被應用在其他架構上,如p〇werp(:, MIPS,或其他指令集架構完全不同的系統上。 ^ [ 〇 0 6 7 ]本發明可以應用於微處理器以外的電腦系統 ^,編#運算上。本發明所使用的指令模式可以輕易的 2轉換利用於別種微處理器以外的電腦處理系統上。本 ^明可以被包含於微處理器的周邊晶片組内,如北橋,南 :)紙\是被製作成一個與微處理器相連,#門負責處理密 广,譯的密碼編譯微處理器。當微處理器看見密碼編譯 目=動作時就把卫作交給這個密碼編譯微處理器。本發 陣;::嵌入式控制器,I業用控制器,信號處理器, 陣列處理器,以及其他處理資料用的處理器内。本發明 1247241 五、發明說明(33) 可被實現成一個只包含實施密碼編譯運算所需的必要原 件,而成為一個低成本和低耗電量的密碼編譯運算執行 器。例如通訊系統内處理加密/解密的處理器。求明確起 見其他的處理元件以上一蓋撐微處理器。 [00 68 ]另外,本發明至今雖都以128-位元大小之區塊 考慮’但是其他不同大小的區塊也能應用。只要將輸入 資料’輸出資料,金鎗和控制字元暫存器的大小做調整即 可0 [0 0 6 9 ]本發明目前應用範圍雖然都屬於較廣泛應用 的DES, Triple-DES和AES演算法,但是叫鮮為人知的 區塊密碼模式,如 MARS Cipher,Rijndeal cipher, Twofish cipher ^ Blowfish Cipher ^ Serpant Cipher 和RC6 cipher 〇 [0 0 7 0 ]雖然目前討論範圍都以區塊密碼編譯演算法 和其演算法想關技巧來表現本發明的密碼編譯功能,在此 需聲明本發明可以完全的被應用於其他密碼編譯演算法 上。只要是能夠執行一密碼編譯運算,加密或解密,並且 微處理器内包含一個專門在收到密碼編譯指令後進行密碼 編譯功能即可。 [0 0 7 1 ]另外,針對以上所討論的回合計算引擎,發 明者聲明该回合計算引擎中管線化處理輸入片段的階段不 限於以上所述的兩個階段。該回合計算引擎可的館現階段 可為兩個或兩個以上。 [0 0 7 2 ]最後’雖然目前針對本發明的討論目前限於 1247241 五、發明說明(34) 單一個密碼編譯單位處理複數個區塊密碼編譯演算法,在 此需聲明本發明可以包含多個平行密碼編譯單位,與一微 處理器中其他執行單位耦結。其中複數個密碼編譯單位可 以是分別處理不同區塊演算法。例如第一個單位負責處理 高階加密標準AES演算法,第二單位處理數據加密標準DES 演算法,等等以此類推。
[ 0 073 ]需陳明者,以上所述乃是本創作之具體實施 例及所用之技術元理,若依本創作之功能作用仍外超出說 明書籍圖示所涵蓋之精神時,均應在本創作之範圍内,合 予陳明。
第39頁 1247241
[圖示之簡單說明] [〇〇23 ]以下解釋及圖片能幫助了解本發明的這些還有 其他物件,特徵和優點: 一 [0 0 2 4 ]圖一描述習知密碼編譯應用的方塊圖。 [0 0 2 5 ]圖_描述編譯密碼運算的技術的方塊圖。 [0 0 2 6 ]圖三為根據本發明一處理密碼編譯之微處理器 裝置方塊圖。 σ [〇 0 2 7 ]圖四為根據本發明一獨立密碼編譯指令集之方 塊圖。 ^ [ 0028 ]圖五為根據本發明一區塊解密模式攔位 照表例子。 容微處理器内密碼編 [ 00 29 ]圖六是根據本發明χ86相 譯單位的方塊圖。 中包含欄位的 碼編譯相關的 [0 0 3 0 ]圖七是根據本發明密碼編譯指令 示範圖,此指令指示圖六中微處理器進行密 次項運算。 [ 003 1 ]圖八是根據本發明几(^])微指令中暫存器 值和運算動作的對照表,XL0AD微指令的格式如圖^ ^ 不 〇 [0032]圖九是根據本發明XST0R微指令中 值和運算動作的對照表,XST0R微指令的格式如圖;^ ^位 示。 [0033 ]圖十是根據本發明一個控制字元格 控制次元指示密碼編譯運算的密碼編譯參數。 n千1 1247241 圖式簡單說明 [ 0 034 ]圖十一是根據本發明密碼編譯單位的方塊圖。 [ 003 5 ]圖十二是根據本發明AES區塊解密邏輯的方塊 圖。 [圖號說明] 1 0 0電腦密碼編譯應用方塊圖 1 0 1電腦工作站 1 0 2電腦工作站 1 0 3電腦工作站 104筆記型電腦 1 0 5區域網路 106儲存裝置 1 0 7第一個路由器 1 0 8無線路由器 1 0 9無線網路 11 0廣域網路 111第二個路由器 112加密/解密軟體 2 0 0電腦系統執行密碼編譯方塊圖 2 0 1微處理器 202作業系統 2 0 3記憶 204產生金鑰的軟體 205金鍮程序表
第41頁 1247241 圖式簡單說明 2 0 6加密軟體 207解密軟體 2 0 8初始化向量 2 0 9密碼編譯參數 210本文 211密文 30 0微處理器密碼編譯運算裝置方塊圖 微處理器 301XCRYPT 指令 3 0 2轉譯邏輯 303微指令佇列 304微指令 305微指令 306暫存器檔案 3〇7暫存器 308暫存器 309暫存器 ❿ 310暫存器 311暫存器 312暫存器 313載入邏輯 3 1 4資料快取記憶 3 1 5密碼編譯單位
第42頁 1247241 圖式簡單說明 3 1 6儲存邏輯 317寫回邏輯 3 1 8記憶匯流排 3 1 9作業系統 3 2 0系統記憶體 321XCRYPT 指令 322控制字元 3 23初始化金鑰/金鑰程序表
3 2 4初始化向量 325輸入文字 326輸出文字 4 0 0密碼編譯指令方塊圖 401選擇性前置欄位 402重複前置欄位 403運算碼欄位 4 0 4區塊解密模式欄位
500區塊密碼欄位值與微處理器運算動作對照表 6 0 0密碼編譯單位發明實施例 601指令取得邏輯 6 0 2轉譯邏輯 6 0 3轉譯器 604微指令碼唯讀記憶體 6 0 5括暫存器階段 6 0 6位址階段
第43頁 1247241 圖式簡單說明 607載入階段 608執行階段 60 9微指令佇列 6 1 0整數單位 6 11微指令佇列 6 1 2浮點單位 61 3微指令佇列 614MMX單位
6 1 5微指令佇列 616SSE單位 6 1 7密碼編譯單位 6 1 8儲存階段 6 1 9寫回階段 6 2 0載入匯流排 621閒置信號 6 2 2儲存匯流排 624EFLAGS暫存器 625X位元 626中斷邏輯 627微指令 628MSR暫存器 629E位元 630FCR暫存器 6 3 1 D位元
第44頁 1247241 圖式簡單說明 6 3 2執行邏輯 6 3 3匯流排 700微指令結構的範例 7 0 1微運算碼欄位 7 0 2貧料暫存1§棚位 7〇3暫存器欄位703 800XLOAD值對照表 900XSTOR值對照表 1 0 0 0控制字元格式 1001RSVD 欄位 1 0 02金鑰大小的KSIZE欄位 1 003加密/解密E/D欄位 1 004中間結果IRSLT欄位 1 005金鑰產生KGEN欄位 1 00 6演算法ALG欄位 I 007回合數計數RCNT欄位 II 0 0密碼編譯單位方塊圖 11 0 1區塊解密邏輯 11 0 2金鑰隨機存取記憶體 11 0 3微程序碼暫存器 1104控制字元暫存器 1105input-0 暫存器 11 0 6 i npu t - 1 暫存器 1107key-0暫存器 第45頁
1247241 圖式簡單說明 1108key-l暫存器 1109output-0 暫存器 1110ouput-l 暫存器 II 11載入匯流排 III 2儲存匯流排 II 1 3停止信號 III 4微指令匯流排 1 20 0AES演算法區塊解密邏輯方塊圖 1201微指令暫存器 1 202CW暫存器 1 203KEY-0暫存器 1 204KEY-1暫存器 1 205 IN-0暫存器 1 206 IN-1暫存器 1207OUT-0 1208OUT-1 1210回合計算引擎勤控制器 1 2 11加密/解密匯信號 1212RNDCON 匯流排 1 2 1 3金鑰匯流排 1 2 1 4金鑰產生信號 1 2 1 5匯流排 1 2 1 6匯流排 1 2 1 7匯流排
第46頁 1247241 圖式簡單說明 1218NEXTIN 匯流排 1 220回合計算引擎勤 1221第一XOR邏輯金鑰 1 222暫存器REG-0 1 223S-Box 邏輯 1 224移列邏輯 1225暫存器REG-1 1 2 2 6混欄邏輯 1 227暫存器REG-2 第47頁

Claims (1)

1247241 六、申請專利範圍 1 · 一種微處理器内處理密碼編譯運算的裝置,包括; 翻譯邏輯,用來接受密碼編譯指令,該指令指示需要進 行的密碼編譯運算’翻澤邏輯負責將密碼編譯指令轉 #為一組微指令,指示需要做的子運算;以及 執行邏輯,與翻譯邏輯耦接,負責接收微指令並進行子 運算。 2· ^申請專利範圍第1項所述之裝置,其中一密碼編譯運 算係具有系統特權以持行應用程式。 3·如申請專利範圍第1項所述之裝置,其中密碼編譯運算 包含了 : 加费運算’對複數片段的本文加密,變成複數的密文 片段。 4 ·如申請專利範圍第1項所述之裝置,其中密碼編譯運算 包含了 一解密運算,對複數片的密文解密,變成複數片 的本文。 5·如申請專利範圍第1項所述之裝置,其中密碼編譯使用 高階加密標準演算法。 6. 如申請專利範圍第1項所述之裝置,其中密碼編譯指令 指示該密碼編譯運算中所使用之片段編譯模式。 7. 如申請專利範圍第6項所述之裝置,其中片段編譯模式 包含了電子書碼(Electronic code book,ECB)模 式。 8·如申請專利範圍第6項所述之裝置,其中片段編譯模式 包含了 編輯方塊連鎖(cipher block chaining mode,
第48頁 1247241 六、申請專利範圍 CBC)模式。 9 ·如申請專利範圍第6項所述之裝置,其中片段編譯模式 包含了編碼回授(cipher feedback mode,CFB)模式。 10·如申請專利範圍第6項所述之裝置,其中片段編譯模式 包含了輸出回授(output feedback mode,0FB)模式。 11 ·如申請專利範圍第1項所述之裝置,其中密碼編譯指令 指示對複數個的文字片段進行多種密碼編譯運算的一 種。 1 2 ·如申請專利範圍第1項所述之裝置,其中密碼編譯指令 是X 8 6指令格式。 1 3 ·如申請專利範圍第1項所述之裝置,其中密碼編譯指令 間接指向微處理器内複數個暫存器。 1 4·如申請專利範圍第1 3項所述之裝置,其中所述複數個 暫存器包含了 : 一第一暫存器,其中含有第一個指標指向第一個記憶 體位置,此第一記憶體位置是複數個輸入文字片段 中第一個文字片段之位置。 1 5·如申請專利範圍第1 3項所述之裝置,其中所述複數個 暫存器包含了 : 一第二暫存器,其中含有第二個指標指向第二個記憶 體位置,此第二記憶體位置是記憶體中儲存複數個 輪出文字片段的位置,這些輸出文字片段是輸入文 子片段經歷過密碼編譯運算的結果。 1 6 ·如申請專利範圍第1 3項所述之裝置,其中所述複數個
第49頁 1247241 申請專利範圍 暫存器句冬*Γ· , 乂 了· 从、十、仏X 4穿片段的總數0 一個第二暫在5§,直中是敫逃輸入文子 A A 17^ 士 臂存器其中^夕酤罢夂中所述複數個 •如申請專利範圍第1 3項所述之裝置,” 暫存器包含了· — -個第四暫存器,其中第四暫存器的内容== 指標,指向第三個記憔艚位置,這個記憶體位置疋 费碼編譯金鑰在記憶艘中的位置。 1 8 ·如申請專利範圍第1 7項戶斤述之裝置’密瑪編#金餘資 料包含了 一密碼金输。 1 9 ·如申請專利範圍第1 7項户斤述之裝置,密碼編譯金鑰資 料包含了一金鑰程序表。 20·如申請專利範圍第13項戶斤述之裝置,其中複數個暫存 器包含了: 一個第五暫存器,其中第五暫存器内中包含了第四指 標’指向第四個記憶體位置,這個記憶體位置是初 始化向量在記憶體裡的位置。 21·如申請專利範圍第13項所述之裝置,其中複數個暫存 器包含了: 一個第六暫存器,其中第六暫存器内中包含了第五 標,指向第五個記憶體位置,$個記憶體位曰 制字疋的位置,此控制字70是密碼編譯表控 22·如申請專利範圍第21項所述之裝置,其批 :。 含了·· 11制子元包 加密/解密攔位,組態為指示密碼蝙譯運算進行加
第50頁 1247241 六、申請專利範圍 密或解密動作。 23.:;請專利範圍第丨項所述之襄置’纟中執行邏輯包 一ΪΤΪΓ單位’組態為接收第—組複數個微指令, ^個輪入文字片段分別執行複數回合的密碼編 ’產生複數個輸出文字片段,其中複數個密 馬、、扁澤回合由密碼編譯單位中控制字元控制。 24·利範圍第23項所述之製置,其中密碼編譯單 區塊密碼邏輯,組態為對複數個輸入文字片段分別進 行複,回合的密碼編譯運算,產生複數個對應的輸 出文^片段,以及金鑰隨機存取記憶體,與區塊密 碼邏輯運作上耦接,組態為儲存金鑰程序表,此金 餘程序表包含了複數回合的金鑰,分別與複數個密 碼編5筆回合對應,組態為提供區塊密碼邏輯複數個 金鑰已完成複數個密碼編譯回合。 25·=申請專利範圍第23項所述之裝置,其中區塊密碼邏 輯被分割為二個或二個以上的階段,同時向二個或二 個以上複數個文字輸入片段進行密碼編譯。 26·如申凊專利範圍第23項所述之裝置,其中執行邏輯更 進一步包含: 一整數單位,與密碼編譯單位平行耦接,組態為接收 第二組複數個微指令,並執行密碼編譯運算所需執 行的複數個整數運算。 画 第51頁 1247241 六、申請專利範圍 27·如申請專利範圍第23項所述之裝置,其中微指令包含: 一第一組微指令,組態為土是密螞蝙譯單位分別載入 複數個的輪入文字和進行複數個的密碼編^回合。 28· —個微處理器裝置,用來實施密螞編譯運瞀,包含了: 一密碼編譯指令,屬於微處理器執行的指:流程中的 一步驟,其中此密碼指令指示微處理器進&行一個特 定的密碼編譯運算, 一轉譯邏輯,組態為將密瑪編譯指令轉譯為相對的微 指令碼,指示需要執行的次項運算。
29.如申請專利範圍第28項所述之裴置,其中密碼編譯運 算包含了: 對應的複數個密 其中密碼編譯運 一加密運算,將複數個本文片段轉成 文片段。 30. 如申請專利範圍第28項所述之裝置, 算包含了: 一解密運算,將複數個密文片段轉成對應的複數個本 文片段。 31 ·如申請專利範圍第2 8項所述之裝置,其中一密碼編譯 運算是按照高階加密標準AES演算法來完成。
3 2 ·如申請專利範圍第2 8項所述之裝置,其中密碼編譯指 令指示以區塊密碼模式完成密碼編譯運算。 3 3 ·如申請專利範圍第3 2項所述之裝置,其中區快密碼模 式包含了電子書碼(eleCtr〇nic code book,ECB)模 式。 胃
第52頁 1247241
34 ·如申請專利範圍第3 2項所述之裝置,其中區快密碼模 式包含了編輯方塊連鎖(cipher block chaining , C B C)模式。 3 5 ·如申請專利範圍第3 2項所述之裝置,其中區快密碼模 式包含了編碼回授(cipher feedback mode ,CFB)模 式。 3 6 ·如申請專利範圍第3 2項所述之裝置,其中區快密碼模 式包含了輸出回授(output feedback,0FB)模式。
3 7 ·如申請專利範圍第2 8項所述之裝置,其中密碼編譯指 令指示對複數個文字片段所進行的密碼編譯運算。 38·如申請專利範圍第28項所述之裝置,其中密碼編譯指 令格式是x86指令格式。 3 9 ·如申請專利範圍第2 8項所述之裝置,其中密碼編譯指 令係間接指向微處理器内複數個暫存器。 40·如申請專利範圍第39項所述之裝置,其中複數個暫存 器包含: 一第一暫存器,其中含有第一個指標指向第一個記憶 體位置,此第一記憶雜位置是複數個輸入文字片段 中第一個文字片段之位置。
41·如申請專利範圍第39項所述之裝置,其中複數個暫存 器包含了: 一第二暫存器,其中含有第二個指標指向第二個記憶 體位置,此第二記憶體位置是記憶體中儲存複數個 輸出文字片段的位置,這些輸出文字片段是輸入文
1247241 六、申請專利範圍 字片段經 4 2 ·如申請專利 歷過密碼編 範圍第39項 譯運算的結果。 所述之裝置,其中複數個暫存 器包含了: 一個第三暫存器,其中的内容是敘述輸入文字片段的 總數。 4 3 ·如申請專利範圍第3 9項所述之裝置,其中複數個暫存 器包含了: 一個第四暫 標,指 碼編譯 指 密 4 4 ·如申請專利 鍮包含了一 4 5 ·如申請專利 瑜包含了一 46·如申 器包 一個 標 始 47·如申 器包 一個 標 制 請專利 含了: 第五暫 ’指向 化向量 請專利 含了: 第六暫 ’指向 字元的 存器,其中 向第三個記 金鑰在記憶 範圍第43項 密碼金鑰。 範圍第43項 金餘程序表 範圍第39項 存器,其中 第四個記憶 在記憶體裡 範圍第39項 存器,其中 第五個記憶 位置,此控 第四暫存器的内容包含了第三 憶體位置’這個記憶體位置是 體中的位置。 所述之裝置’其中密碼編譯金 所述之裝置’其中岔碼編譯金 〇 所述之裝置’其中複數個暫存 第五暫存器内中包含了第四指 體位置’这個§己憶體位置是初 的位置。 所述之裝置’其中複數個暫存 第六暫存器内中包含了第五指 艘位置,這個記憶體位置是控 制字元是密碼編譯參數之一。
1247241
其中控制字元包 六、申請專利範圍 48.如申請專利範圍第47項所述之裝置 含了·· 一加密/解密攔位,組態為指示密碼編譯運算進行力口〜 或解密動作。 % 49·如申請專利範圍第28項所述之裝置,更包括: 執行邏輯,與轉譯邏輯在運算中耦接,組態為接收 應的微指令並進行子程序運算。 50·如申請專利範圍第49項所述之裝置,其中執行邏輯 含了: t 一密碼編譯單位,組態為接收第一組複數個微指令, 對複數個輸入文字片段分別執行複數回合的密竭編 譯指令,產生複數個輸出文字片段,其中複數個密 碼編譯回合由密碼編譯單位中控制字元控制。 5 1 ·如申請專利範圍第50項所述之裝置,其中密碼編譯單 位包含了: 區塊密碼邏輯,組態為對複數個輸入文字片段分別進 行複數回合的密碼編譯運算,產生複數個對應的輸 出文字片段,以及 金鑰隨機存取記憶體,與區塊密碼邏輯運作上搞接, 組態為儲存金鑰程序表,此金鑰程序表包含了複數 回合的金鑰,分別與複數個密碼編譯回合對應,組 態為提供區塊密碼邏輯複數個金鑰已完成複數個密 碼編譯回合。 5 2 ·如申請專利範圍第5 1項所述之裝置,其中區塊密碼邏
1247241 六、申請專利範圍 輯被分割為二個或二個以上的階段,同時向二個或二 個以上複數個文字輸入片段進行密螞編 53·如申請專利範圍第5〇項所述之裝置,其中執行邏輯更 包含了 : 一整數單位,與密碼編譯單位平行轉接,組態為接收 第二組複數個微指令,炎執行密碼編譯運算所需執 行的複數個整數運算。 54.如申請專利範圍第5〇項所述之裝置,其中執行邏輯更 包含了 : 一第一組微指令,組態為土是密碼蝙譯單位分別載入 複數個的輸入文字和進行複數個的密碼編譯回合。 55·如申請專利範圍第28項所述之装置,其中應用轉體具 有系統特權以持行應用程式。 5 6 · —實行密碼編譯運算之裝置,包含了 一密碼編譯指令,屬於微處理器執行的指令流程中的 一步驟,其中此密碼指令指示微處理器進行一個特 定的密碼編譯運算, 一轉譯邏輯,組態為將密碼編譯指令轉譯為相對的微 指令碼,指示需要執行的次項運算。 5 7·如申請專利範圍第56項所述之裝置,其中密碼編譯運 算包含了: 一加密運算,將複數個本文片段轉成對應的複數個密 文片段。 58·如申請專利範圍第56項所述之裝置,其中密碼編譯運
第56頁 1247241 、申請專利範圍 算包 一解 文 59·如申 算是 6 0.如申 令指 6 1 ·如申 式包 式。 62.如申 式包 mode 63·如申 式包 式。 64·如申 式包 式。 65.如申 令指 66·如申 令格 67.如申 含了: 密運算’將複數個密文片段轉成對應的複數個本 片段。 請專利範圍第5 6項所述之裝置,其中密碼編譯運 按照高階加密標準AES來完成。 請專利範圍第5 6項所述之裝置,其中密碼編譯指 示微處理器以區塊密碼模式完成密碼編譯運算。 請專利範圍第6 0項所述之裝置,其中區塊密碼模 含了電子書碼(electron ic code book,ECB)模 請專利範圍第6 0項所述之裝置,其中區塊密碼模 含了編輯方塊連鎖(cipher block chaining ’ C B C )模式。 請專利範圍第6 0項所述之裝置,其中區塊密碼模 含了編碼回授(cipher feedback mode,CFB)模 請專利範圍第6 0項所述之裝置,其中區塊密碼模 含了輸出回授(output feedback mode,0FB)模 請專利範圍第6 0項所述之裝置,其中密碼編譯指 示對複數個文字片段所進行的密碼編譯運算。 請專利範圍第6 0項所述之裝置,其中密碼編譯指 式是x86指令格式。 請專利範圍第5 6項所述之裝置,其中碼編譯指令
第57頁 1247241
六、申請專利範圍 指示間接指向微處理器内複數個暫存器。 68·如申請專利範圍第67項所述之裝置’其中複數個暫存 器包含了: 一第一暫存器,其中含有第一個指標指向第一個記憶 體位置,此第一記憶體位置是複數個輸入文字片段 中第一個文字片段之位置° 69·如申請專利範圍第67項所述之裝置,其中複數個暫存 器包含了: 一第二暫存器,其中含有第二個指標指向第二個記憶 體位置,此第二記憶體位置是記憶體中儲存複數個 輸出文字片段的位置,這些輸出文字片段是輸入文 字片段經歷過密碼編譯運算的結果。 70.如申請專利範圍第67項所述之裝置,其中複數個暫存 器包含了: 一個第三暫存器,其中是敘述輸入文字片段的總數。 71·如申請專利範圍第6 了項所述之裝置,其中複數個暫存 器包含了: 一個第四暫存器,其中第四暫存器的内容包含了第三 指標,指向第三個記憶體位置,這個記憶體位置是 密碼編譯金鑰在記憶體中的位置。 7 2 ·如申請專利範圍第7丨項所述之裝置,其中密碼編譯金 鑰資料包含了 一密碼金鑰。 73·如申請專利範圍第71項所述之裝置,其中密碼編譯金 鑰資料包含了一金鑰程序表。
第58頁 1247241 六、申請專利範圍 74·如申請專利範圍第67項户斤述之裝置,其中複數個暫存 器包含了: 一個第五暫存器,其中第五暫存器内中包含了第四指 標,指向第四個記憶艘位置,這個g憶體位置是初 始化向量在記憶體裡的位置。 75·如申請專利範圍第67項所述之裝置,其中複數個暫存 器包含了: 一個第六暫存器,其中第六暫存器内中包含了第五指 標,指向第五個記憶體位置,這個記憶體位置是控 制字元的位置,此控制字元是密碼編譯參數之一。 76·如申請專利範圍第項所述之裝置,其中控制字元包 含了: 一加密/解密攔位,組態為指示密碼編譯運算進行加 密或解密動作。 7 7·如申請專利範圍第56項所述之裝置,其中更包含·· 一轉譯邏輯,組態為將密碼編譯指令轉譯為相對的微 指令碼,指示需要執行的次項運算。 78·如申請專利範圍第77項所述之裝置,其中執行邏輯更 包含: -密碼編譯單位,組態為接收第—組複數 個;入文字片段分別執行複數回合的密:編 澤才曰令,產生複數個輸出文字片段,其 碼編譯回合由密碼編譯單位中 ^ ’ 79.如申請專利範圍第78項所 子:控希卜 衣罝 其中密碼編譯單 第59頁 !247241 ----- 仇包含了 : 區塊密碼邏輯,組態為對複數個輸入文字片段分別進 行複數回合的密碼編譯運算,產生複數個對應的輸 出文字片段,以及金鑰隨機存取記憶體,與區塊密 碼邏輯運作上耦接,組態為儲存金鑰裎序表,此金 鍮程序表包含了複數回合的金鑰,分別與複數個密 碼編譯回合對應,組態為提供區塊密碼邏輯複數個 金鍮以完成複數個密碼編譯回合。 •如申请專利範圍第7 9項所述之裝置’其中區塊密碼模 式邏輯被分割為至少二個的階段,並同時向至少二個 文字輸入片段進行密碼編譯。 81·如申請專利範圍第78項所述之裝置,其中執行邏輯更 包含: 一整數單位,與密碼編譯單位平行耦接,組態為接收 第二組複數個微指令,I執行密碼編譯運算所需執 行的複數個整數運算。 82·如申請專利範圍第78項所述之裝置,其中微指令包 含: 一第一組微指令,組態為必是密碼編譯單位分別載入 複數個的輸入文字和進行複數個的密碼編譯回合。 83·如申請專利範圍第56項所述之裝置,其中一密碼編譯 運算係具有系統特權以持行應用程式。 84· —個在微處理器内實行密瑪編譯運算的方法,包含·· 接收一個密碼編譯指令,其中密碼編譯指令指定至少
第6〇頁 1247241 六、申請專利範圍 密碼編譯運算動作,以及執行被指定之密碼編譯運 算。 85·如專利申請範圍第84項所述之方法,其中接收更包含: 指定一項加密的密碼編#運算動作,其中加密運算包 含了將複數個本文片段加密’產生複數個加密文字 片段。 8 6.如專利申請範圍第84項所述之方法,其中接收更包含: 指定一向解密的密碼編譯運算動作,其中解密運算包 含了將複數個加密片段解密’產生複數個本文文字 片段。 87·如專利申請範圍第84項所述之方法,其中執行更包含: 遵照AES (Advanced EncryPti〇n Standard)演算法完 成密碼編譯運算。 88·如專利申請範圍第84項所述之方法,其中接收更包含: 在密碼編譯指令中指定密碼編譯運算所使用的區塊解 密模式。 8 9 ·如專利申請範圍第8 8項所述之方法,其中區塊解密模 式包含了電子書碼(electronic code book,ECB)模 式。 9 0 ·如專利申請範圍第8 &項所述之方法,其中區塊解密模 式包含了編輯方塊連鎖(cipher block chaining mode , CBC)模式。 9 1 ·如專利申請範圍第88項所述之方法,其中區塊解密模 式包含了編竭回授(cipher feedback mode,CFB)模
1247241 ττ、Ψ-导利範圍
--- 式。 92.如專=申請範圍第88項所述之方法,其中區塊解密模 式匕 3 了輸出回授(output feedback mode,OFB)模 式。 、 9 3.=專利申請範圍第8 4項所述之方法,其中接收包含了 逸馬、扁# #曰令說明一項要對複數個文字片段進行的密 碼編譯運算。 94. 如專利申請範圍第84項所述之方法其中接收包含了 以x86指令模式指示區塊密碼模式。 95. 如專利申請範圍第84項所述之方法,其中接收更包含 間接讀取微處理器中複數個暫存器。 96. 如專利申請範圍第95項所述之方法,其中間接讀取更 包含: 子片段之位置。 其中間接讀取更 9 7·如專利申請範圍第95項所述之方法 包含: 讀取一第一暫存器,其中第一暫存器的内容含有第一 個指標指向第一個記憶體位置,此第一記憶體位置 是複數個輸入文字片段中第一個文字片段位置。 讀取一第二暫存器,其中第二暫存器的内容含有第二 個指標指向第二個記憶體位置,此第二記憶體位置 是記憶體中儲存複數個輸出文字片段的位置,這些 輸出文字片段是輸入文字片段經歷過密碼編譯運算 的結果。 98·如專利申請範圍第95項所述之方法,其中間接讀取更
1247241 六、申請專利範圍 包含: 讀取一第三暫存器,其中第三暫存器的内容含有輸入 文字片段的總數。 9 9.如專利申請範圍第95項所述之方法,其中間接讀取更 包含: 讀取一第四暫存器,其中第四暫存器的内容包含了第 三指標,指向第三個記憶體位置,這個記憶體位置 是密碼編譯金鑰在記憶體中的位置。 其中密碼編譯金 其中密碼編譯金 其中間接讀取更 1 0 0 .如專利申請範圍第9 9項所述之方法 鑰資料包含了 一密碼金鑰。 1 0 1.如專利申請範圍第99項所述之方法 餘資料包含了一金鑰程序表。 10 2.如專利申請範圍第95項所述之方法 包含·. 讀取一第五暫存器,其中其中第五暫存器的内容中包 含了第四指標,指向第四個記憶體位置,這個記憶 體位置是初始化向量在記憶體裡的位置。 10 3.如專利申請範圍第95項所述之方法,其中間接讀取更 包含: 讀取一第六暫存器,其中第六暫存器的内容中包含了 第五指標,指向第五個記憶體位置,這個記憶體位 置是控制字元的位置,此控制字元是密碼編譯參數 之一,在此,該控制字元可以被用來指定至少一該 些密碼編譯運算中所使用之至少一密碼編譯參數。
第63頁 1247241 六、申請專利範圍 '~ -- 1 0 4 ·如專利申請範圍第1 〇 3項所述之方法,其中透過护^制 字元指示密碼編譯運算的參數值更包含··在控元 加密/解密攔位中註明密碼編譯運算是加密 b ^ ^ 運算。 艰疋解搶 105·如專利申請範圍第84項所述之方法,其中更加包含· 將密碼編譯指令轉譯為一連貫的微指令,指^ ^ ^被 執行的子程序運算。 而 1 0 6 ·如專利申請範圍第84項所述之方法,其中執行更包 含: ^ 將第一組複數個連續微指令分送至密碼編譯單位;然 後在密碼解譯單位内,對複數個輸入文字片段’做'複 數回合的密碼編譯,產生對應的複數傭輸出文字片 段其中複數個密碼編譯回合由密碼編譯單位中控制 字元控制。 1〇7·如專利申請範圍第106項所述之方法,其中上述對複 數個輸入文字片段做複數回合的密碼編譯步驟更加包 含: 在密碼編譯單位内儲存一金鑰程序表,其中此金鑰程 序表包含了複數回合的金鑰,分別與複數個密碼編 譯回合對應; 使用複數個回合的金要來為區塊密碼邏輯來完成複數 個密碼編譯回合。 1〇8·如專利申請範圍第1〇6項所述之方法,其中執行更包 含:
1247241 六、申請專利範圍 將第二組複數個連續的微指令分送至與密碼編譯單位 平行耦接的整數單位内,然後執行密碼編譯運算所 _ 需執行的複數個整數運算。 I 0 9.如專利申請範圍第1 0 5項所述之方法,其中轉譯包 括: 產生一第一微指令,指示密碼編譯單位分別將複數個 的輸入文字片段載入並開始進行密碼編譯回合。 II 0.如專利申請範圍第8 1項所述之方法,其中一密碼編譯 運算係具有系統特權以持行應用程式。
第65頁
TW93110904A 2003-09-29 2004-04-20 Microprocessor apparatus and method for performing block cipher cryptographic functions TWI247241B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/674,057 US7321910B2 (en) 2003-04-18 2003-09-29 Microprocessor apparatus and method for performing block cipher cryptographic functions

Publications (2)

Publication Number Publication Date
TW200512648A TW200512648A (en) 2005-04-01
TWI247241B true TWI247241B (en) 2006-01-11

Family

ID=34376785

Family Applications (1)

Application Number Title Priority Date Filing Date
TW93110904A TWI247241B (en) 2003-09-29 2004-04-20 Microprocessor apparatus and method for performing block cipher cryptographic functions

Country Status (2)

Country Link
CN (1) CN1332526C (zh)
TW (1) TWI247241B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882192B (zh) * 2009-05-08 2012-08-22 晨星软件研发(深圳)有限公司 电路保护装置、电路保护方法及电路保护层
US9753863B2 (en) * 2014-12-27 2017-09-05 Intel Corporation Memory protection with non-readable pages
CN104679479B (zh) * 2015-03-12 2017-10-24 中国人民解放军信息工程大学 一种基于任务编号的调度控制机制的多核密码处理器
CN106250099A (zh) * 2016-07-18 2016-12-21 青岛大学 一种固定解密算法的直接执行已加密指令的处理器架构
CN117668326B (zh) * 2024-01-30 2024-04-30 深圳柯赛标识智能科技有限公司 智慧标识的数据处理方法、系统和设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118870A (en) * 1996-10-09 2000-09-12 Lsi Logic Corp. Microprocessor having instruction set extensions for decryption and multimedia applications
US6983374B2 (en) * 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
TWI282066B (en) * 2002-08-22 2007-06-01 Ip First Llc Apparatus and method for extending data modes in a microprocessor

Also Published As

Publication number Publication date
TW200512648A (en) 2005-04-01
CN1332526C (zh) 2007-08-15
CN1538656A (zh) 2004-10-20

Similar Documents

Publication Publication Date Title
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
US7844053B2 (en) Microprocessor apparatus and method for performing block cipher cryptographic functions
US7532722B2 (en) Apparatus and method for performing transparent block cipher cryptographic functions
TW200537886A (en) Apparatus and method for secure hash algorithm
US8060755B2 (en) Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7392400B2 (en) Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7502943B2 (en) Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
TWI336858B (en) Microprocessor apparatus and method for modular exponentiation
TWI351864B (en) Apparatus and method for employing cyrptographic f
US7536560B2 (en) Microprocessor apparatus and method for providing configurable cryptographic key size
US7529368B2 (en) Apparatus and method for performing transparent output feedback mode cryptographic functions
TWI274281B (en) Apparatus and method for performing transparent block cipher cryptographic functions
US7900055B2 (en) Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
TWI247241B (en) Microprocessor apparatus and method for performing block cipher cryptographic functions
US7519833B2 (en) Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US20040223610A1 (en) Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
CN100463392C (zh) 执行组态区块密码编译演算法的微处理器装置和方法
US7529367B2 (en) Apparatus and method for performing transparent cipher feedback mode cryptographic functions
CN1661958B (zh) 区块密码功能的微处理器及方法
TWI253268B (en) Microprocessor apparatus and method for optimizing block cipher cryptographic functions
TWI250450B (en) Microprocessor apparatus and method for providing configurable cryptographic key size
TWI272815B (en) Apparatus and method for performing transparent output feedback mode cryptographic functions
CN1658548B (zh) 配置密码引擎资料区块的微处理器及方法
TW200536329A (en) Apparatus and method for performing transparent cipher block chaining mode cryptographic functions

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent