TWI272815B - Apparatus and method for performing transparent output feedback mode cryptographic functions - Google Patents
Apparatus and method for performing transparent output feedback mode cryptographic functions Download PDFInfo
- Publication number
- TWI272815B TWI272815B TW093134561A TW93134561A TWI272815B TW I272815 B TWI272815 B TW I272815B TW 093134561 A TW093134561 A TW 093134561A TW 93134561 A TW93134561 A TW 93134561A TW I272815 B TWI272815 B TW I272815B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- cryptographic
- register
- patent application
- password
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
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)
Abstract
Description
1272815 九、發明說明: 【相關參考專利】 本案之優先權係引用自美國專利申請案第 1 0/826 745號,申請日為2004年4月16日,名稱 為「 APPARATUS AND METHOD FOR PERFORMING TRANSPARENT OUTPUT FEEDBACK MODE CRYPTOGRAPIC FUNCTIONS j〇 【發明所屬之技術領域】 其他=====領域,尤其係《—種在微處理器或 达性輸出回授模式密碼運算的裝置及方法。 【先前技術】 早期的電腦系妓β 作的,因此在土 ’、、與其他電胳系統分開獨立操 應用程式所需的以上’早期電腦系統上所執行 或者是在運行時由3輪入資料係常駐於電腦系統’ 執行完之後產生的=程式師來提供的。應用程式 或是以樓的形式=資料-般都是列印在紙張上 算系統組成部分的=磁帶▲、磁片、或其他作為計 就可以作為隨後在里儲存㈣上。這樣,輸出擋 程式的輸入檔或f一個電腦系統上所運行之應用 在可移動或可輸出資料之前儀以檔被儲存 個不同但是相容二:儲存設備上,它就可以被-在這此早期系&鼻系統上的應用程式所使用。 發展及利用來保護:以::敏序程式係 1272815 :兒這些岔碼程式將儲存在大量儲存裝置之輸出資 料的加密及解密。、 1 ^ ^ ^ W % ^ ^ % ,以提供存 =已共旱的資料。連帶地,網路結構、作業系統及 貪料傳輪協定,同樣地將存取已分享資料的能力, 發展到不僅僅是支援,甚至扮演起突起性重要的角 ^ 例如,在今日:一電腦工作站的使用者,能夠 %取不同工作站或網路檔案伺服器之檔案、使用網 =取得新聞及其他資訊、在數百部電腦間傳;; ίΓί!子訊息(亦即電子郵件)、連接到供應商的 糸、,先,提供信用卡或銀行功能資訊,以進行盥 仏應商之間的買賣、或在餐廳、機場 :利用無線網路進行前述活動,都是相當平;; :需未授權揭露之敏感資料本身及傳輸 定期間:ΐ羞、欲ί °二使用者在一給定電腦多層協 a 1二義務來保護敏感資料的案例越來越多。 二工,立圾郵件、駭客攻擊、個人資料外流、 、網路詐騙以及信用卡詐欺等公眾議題之 這些預謀之網路恐怖主義,= 之手段入钕個人隱私範圍的 定出相對應的新法、葳执μ /有關械關已經擬 趨勢上表現出作用;dt;腦訊息妥協處理 融制度,軍事及間諜心=情,金 匕電=取電子郵件或執行活;戶頭^ 1272815 在訊息安全範疇方面,已逐漸發展出一些技術 與裝置可以讓訊息只會被特定的對像所接收瞭解, 即所謂的密碼學(cryptography)。當特別應用於保 護資訊時,其為在電腦間儲存或傳送時,加密使用 於1送敏感的訊息(已知如“明文,,(cleartext) 或“本文”(plaintext)至不能瞭解的形式(如“密 文”(ciphertext))。明文轉換至密文的傳送過程& :加密(encryption ),,、 “譯成密碼 (enciphering)”、或“密碼化(ciphering)” , 且密文轉換至明文的傳送過程稱“解密 (decryption)”、“解除密碼(deciphering)” 、 或轉換密碼(inverse ciphering),,。 在密碼範疇中,建立數個步驟及規則,來允許 使用者不需要高度知識或努力來完成密碼運算,且 使這些使用者能夠傳送或以其他方式如加密形式提 供其訊息給其他使用者。順著加密訊息,傳送者一 般提,接受者一個不能使接受者解除加密訊息的 加密密碼’,,因此接受者不能夠移除或以其他方 /拓加未加雄原始汛息的存取。一種技術將這些步 驟或規則採取密碼保護,數學運算及特別設計&庫 用程式形式將高敏感度訊息加密或解密。 " 一些 >運异類別使用於將資料加密或解密。在此 、θ,的第一類運异類別(如公共金鑰加密運算: ,算)利用兩種加密密碼(一種公共金鑰(pubUc jy及種私人金餘(private key ))來將資料加 提及:些公共金鑰運算,一種公共金鑰 專送給接文者的資料加密。在使用者公共及 1272815 私人金鑰兼有一個數學演算關係,接受者必須利用 其t人ΐ鑰將傳送資料解密以恢復資料。雖然此類 加岔運异在今日廣泛被使用,但加密及解密操作速 度仍&然過慢,即使只加密與解密少量資料。第二類 運^如對稱金餘運算(symmetric key algorithms),提供資料安全相當程度,且速度更 快。這些運算稱為對稱金鑰運算,因為其使用加密 f鑰於加密及解密訊息。有三種公共習知之主要加 饮金鑰運算:資料加密標準規則(data encryption standard,DES),三重資料加密標準規則(THple DES)及進p白加禮、標準規則(advanced encryption = =idard,AES)。因為這些演算強度保護高敏感度 貝料,其現在由美國政府及其代理機構使用。但可 =預期,這些技#中的至少一個將在未來成為商業 或私人傳送標準。根據這些對稱金鑰運算,明文及 ;文:;她皮區隔於;個特殊的大小來加密或解 名二$,在1 28位元大小區間的進階加密標準規 =整加密操作,且使用128、192& 256位元= f至鑰。其他對稱金鑰運算允許192及256位元資 進階加密標準。提及分組加密操作,-種 位兀明文訊息為如八個i 28位元組加密。 ^部的對稱金鑰運算利用相同形式的次操作, 文區塊加密。且提及一般更常使用的對稱金 種最初加密金鑰擴展多種錢(如-種 至餘目錄’),每一個如符合次操作加冑“回合” 田在:月文區塊中完成。舉例’金鑰目錄的第-益鑰使用來完成在明文區塊上次操作的第一加密回 1272815 合,其中第二回合利用金鑰目錄的第二金鑰來產生 第二結果。一種特定數量的次單元回合被完成來產 生一個密文本身的最終回結果。進階加密標準規則 運算之每一回合中的次操作,尚有次位元(或 S-box)、移列(ShiftRows)、混欄(MixColum)、加 入回合鍵(AddRoundKey )等術語。每一回合期間, 一種欲文區塊解密完成,除了完成密文輸入轉換密 碼以及轉換次操作(如混攔,移列),每一回合最終 結果為明文區塊。 資料加密標準規則及三重資料加密標準規則利 用不同特性次操作,但次操作與這些進階加密標準 規則同工,因為其利用於類似方式轉換一明文區塊 成一密文區塊。 " 在多重連續測試組上完成密碼運算,全部對稱 至錄運异利用相同的模式。這些模式包含電子密碼 書(electronic codeb〇〇k、ECB)模式、密碼^塊 串列(cipher block chaining、CBC)模式、密碼 回饋(cipher feedback、CFB)模式、及輸出回饋 (output feedback、〇FB)模式。在次操作完成期 ^,一些模式利用一種附加初始化向量且一些使用 完成於第一明文區塊加密第一位置的密文輸^如一 種附加輸入至完成於第二明文區塊的加密第二位 置。更多的相關技術細節,可以參見Federal1272815 IX. Invention Description: [Related Reference Patent] The priority of this case is from US Patent Application No. 1 0/826 745, and the filing date is April 16, 2004, entitled "APPARATUS AND METHOD FOR PERFORMING TRANSPARENT OUTPUT" FEEDBACK MODE CRYPTOGRAPIC FUNCTIONS j〇 [Technical field of the invention] Other ===== domain, especially "devices and methods for cryptographic operations in microprocessor or achievable output feedback mode. [Prior] Early The computer system is based on 妓β, so it is executed on the 'early computer system' that is required to separate the application program from the other electric system, or it is resident in the computer system by the 3-round data system during operation. The program generated after the execution is provided by the programmer. The application is in the form of a building = data - generally printed on the paper as part of the system = tape ▲, magnetic disk, or other measures can be used as Then store it in (4). In this way, the input file of the output program or the application running on a computer system can be moved or outputable before the data is output. The file is stored differently but compatible: on the storage device, it can be used by the application on this early & nasal system. Development and utilization to protect: to::min programming system 1272815 : These weights program will store the encryption and decryption of the output data of a large number of storage devices, 1 ^ ^ ^ W % ^ ^ %, to provide the information of the deposit = already drought. Jointly, network structure, operating system And the greed-transfer agreement, the same ability to access the shared data, not only support, but even play a prominent role ^ For example, today: a computer workstation users, can take a different% File of workstation or network file server, use network = get news and other information, pass between hundreds of computers; ίΓί! sub-message (ie email), link to supplier, first, provide Credit card or bank function information for trading between 盥仏 商商, or at restaurants, airports: using wireless networks for the above activities, are fairly flat;; sensitive data that need to be unauthorised to be disclosed and transmitted Between: ΐ 、, ί ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ These premeditated cyber terrorism on public issues such as road fraud and credit card fraud, = means that the new law corresponding to the definition of personal privacy, the implementation of the new law, the related machinery has already played a role in the trend; dt; Brain message compromise processing system, military and spy heart = love, Jin Hao electricity = take email or perform live; account ^ 1272815 In the field of information security, some technologies and devices have been developed to allow messages to be specified only The understanding of the image is received, the so-called cryptography. When applied specifically to protect information, it is used to store sensitive messages (such as "clear text," "cleartext" or "plaintext" to a form that cannot be understood (for example, when stored or transmitted between computers). Such as "ciphertext" (ciphertext). The transfer process of plaintext to ciphertext & encryption, encryption, enciphering, or ciphering, and ciphertext conversion The transmission process to plaintext is called "decryption", "deciphering", or inverse ciphering. In the password category, several steps and rules are established to allow the user to not need height. Knowledge or effort to perform cryptographic operations and enable these users to transmit or otherwise provide their messages to other users. In the case of encrypted messages, the sender generally mentions that the recipient cannot unblock the recipient. The encrypted password ', so the recipient can't remove or access the other party/top plus the original suffocation. A technique will take these steps Or the rules are password protected, mathematical operations and special design & library applications to encrypt or decrypt high-sensitivity messages. " Some > different categories are used to encrypt or decrypt data. Here, θ, the first Class-like transport categories (such as public key cryptographic operations: , calculations) use two types of encrypted ciphers (a public key (pubUc jy and private key) to refer to the data: some public key operations A public key is used to encrypt the data of the recipient. In the user's public and 1272815 private key has a mathematical calculus relationship, the recipient must use his t-key to decrypt the transmitted data to recover the data. Classes are widely used today, but encryption and decryption operations are still slow and slow, even if only a small amount of data is encrypted and decrypted. The second type of operation, such as symmetric key algorithms, provides information. Security is fairly and faster. These operations are called symmetric key operations because they use encrypted f keys to encrypt and decrypt messages. There are three common conventions for adding Key operation: data encryption standard (DES), triple data encryption standard rule (THple DES) and advanced encryption = = idard (AES). Because these calculus strengths protect high sensitivity Shell material, which is now used by the US government and its agencies, but can = expect that at least one of these technologies will become a commercial or private delivery standard in the future. According to these symmetric key operations, the plaintext and the text: she is separated by a special size to encrypt or resolve the second $, in the 1 28-bit size interval of the advanced encryption standard = integer encryption operation, and Use 128, 192 & 256 bits = f to key. Other symmetric key operations allow for 192 and 256-bit advanced encryption standards. Referring to the packet cipher operation, the 兀 plaintext message is encrypted as eight i 28 octets. The symmetric key operation of the ^ part uses the same form of secondary operation, block encryption. And mentioning the symmetry gold that is commonly used more often, the initial encryption key expands a variety of money (such as - kinds of directories), and each one is completed in accordance with the sub-operation plus "round" field: in the monthly block. For example, the first key of the key directory is used to complete the first encryption back of the plaintext block 1272815, where the second round uses the second key of the key directory to generate the second result. A specific number of sub-unit rounds is completed to produce a final result of a ciphertext. Advanced Encryption Standard Rules There are sub-bits (or S-box), ShiftRows, MixColum, and AddRoundKey for each operation in each round of the operation. During each round, the decryption of an essay block is completed. In addition to completing the ciphertext input conversion password and conversion sub-operations (such as mixing and shifting), the final result of each round is a plaintext block. The Data Encryption Standard Rule and the Triple Data Encryption Standard Rule operate with different characteristics, but the secondary operation is the same as these advanced encryption standard rules because it uses a similar method to convert a plaintext block into a ciphertext block. " Completion of cryptographic operations on multiple continuous test groups, all symmetrical to the same mode of recording. These modes include electronic codeb〇〇k (ECB) mode, cipher block chaining (CBC) mode, cipher feedback (CFB) mode, and output feedback (output feedback, 〇FB). )mode. In the second operation completion period, some modes utilize an additional initialization vector and some use the ciphertext input completed in the first plaintext block to encrypt the first location, such as an additional input to the encrypted second location completed in the second plaintext block. . For more technical details, see Federal
Information Processing Standards Publicatin (FIPS^3) ^1 999 ^ 娜了貝料加密標準規則、三重資料加密、 以及參見侧-mdooun月26日,其=階 1272815 =準作了詳細解釋。前述標準規則係由國家標 (Natl〇nal Insti^ute of Standards 的::ΓNIST)頒佈及主張。此外,個別 止曰7 皮曰、套裝工具及對策可參考國家桿準 科技研究所之電腦安全應變中心(CSRc),網址 http://csrc.nis1:.g〇v/。 為 習知技術者可察覺多數應用程式可以有效的 電腦上執行以完成加密操作(如加密及去密)。事 上’ 一些操作系統(如 Micr〇s〇ft' wi_wsXp'、 η在原始加密形式、加密應用程式介面及相似 物τ,直接提供加密/解密服務。無論如何,今曰 腦加密技術仍存在一些缺失。請直接參考圖丨,騎 以在下面突顯及討論這些缺失。 圖1為一種今日電腦加密應用的架構圖1〇〇,描 fn1 一個與,域網路105連結的第一電腦工作站 腦工作站102、一個網路檔案儲存 2二二:弟一路由器m、或其他與廣域網路 =乂隹際網路、及一個無線網路由器108 ΕΕ私準802.li形成的介面亦與區域網路1〇5 : -個筆記型電腦104利用無線網路1〇9連接 至…線網路由器1 〇 8。廣域網路丨丨〇另一個重點 二個第二路由器ηι提供一個第三電腦工作站'〇3 介面。 0^如„^及,今曰使用者在工作期間多次面臨電 腌貧訊安全性的議題。舉例,在今日多重工作操作 ίίϊ制I ’ 一個工作站1〇1使用者可同步完成數 個作,母一個皆需要密碼運算。工作站101使用 1272815 加密/解密應用程式112(如部分操作系 ^ ^ t、或由操作系統行駛)已在網路檔儲存設備 可傳if?區?檔案。在檔案儲存的同時’使用者 1寻达加费訊息至位於第二電腦工作站1 02的第二 ,用者’其亦需要執行加密/解密操作112。加衆: ^可為即時(如一種立即訊息)或非即時(如電^ 15件)。另外,使用者還可從第三電腦工作站电 廣域網路110存取或提供他/她最終 金融轉帳,等)或其他形式的敏感;y, =用rr,,108,—:: 遠距電腦1〇3:f表家用電腦或 a 母個别述動作需要一個符合勃杆 密操作112的例子。此外,無線網路109 八t恶性的提供於咖啡店,機場,學校,及其 A /、場所,因此筆 " ^ ^ ^ Η ^ ,平〇 I电細1 U4使用者一個加密解 d:/她的訊息傳送/接收其他使用者立即的 、”工無線網路1 〇 9至無線網路由哭1 〇只六 密或解密所有訊息。 j峪由108加 在工解二每一個上述活動都需要 一個立即的^ ^ 做加抢刼作,也就相應有執行 電腦10卜1 04進一^处二式主」2的需求。因此, 作。 ^ 犯同時完成數百個加密操 無論如何,存為—,» ^ ^ 行至少一姻以卜Γ 些在電腦系統101-104上執 立即的加密/解密择作丨丨? 加密操作方法的限制。舉丫m而元成 J举例,經由一個軟體程式完 1272815 成一個前述功能相對比經由硬體完姑 慢。每一個加密/解密操作u 5功能執行 且正在電腦101-1 〇4上執行 而要一段時間,並 時間内必須暫停執行,且加㈣;^=上這段 杈式,金鑰等)參數必須通三饴文, 操作112,執行加密摔作;^呆作系統至加密/解密 含特殊組別資㈣回次“ 運算必須包 執行包含執行多個電腦延伸指令二”:上呆:。12) 作速度有不利的影塑。如一如” 王口 Ρ系統操Information Processing Standards Publicatin (FIPS^3) ^1 999 ^ Na Baba encryption standard rules, triple data encryption, and see side-mdooun month 26, its = step 1272815 = quasi detailed explanation. The aforementioned standard rules are promulgated and claimed by the national standard (Natl〇nal Insti^ute of Standards::ΓNIST). In addition, the individual 曰7 skin 曰, kit tools and countermeasures can refer to the Computer Security Response Center (CSRc) of the National Institute of Technology, http://csrc.nis1:.g〇v/. It is perceptible to those skilled in the art that most applications can be executed on a computer to perform encryption operations (such as encryption and decryption). In fact, some operating systems (such as Micr〇s〇ft' wi_wsXp', η in the original encryption form, encrypted application interface and similar τ, directly provide encryption / decryption services. In any case, today's brain encryption technology still exists some Missing. Please refer directly to Figure 丨, ride to highlight and discuss these missing below. Figure 1 is an architecture of today's computer encryption application Figure 1, f fn1 a first computer workstation brain workstation connected to the domain network 105 102, a network file storage 2 22: brother a router m, or other interface with the WAN = Internet, and a wireless network router 108 准 802.li also with the regional network 1〇 5: - A laptop 104 uses wireless network 1〇9 to connect to...line router 1 〇8. WAN 丨丨〇 another focus two second router ηι provides a third computer workstation '〇3 interface. 0^如„^和,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, In a few works, the parent needs a cryptographic operation. The workstation 101 uses the 1272815 encryption/decryption application 112 (such as a part of the operating system, or is driven by the operating system) to transmit the if file in the network file storage device. While the file is being stored, 'user 1 finds the fee increase message to the second located at the second computer workstation 102, the user's also needs to perform the encryption/decryption operation 112. The public: ^ can be instant (such as a Immediate message) or non-immediate (eg, 15 pieces). In addition, the user may also access or provide his/her final financial transfer, etc. or other forms of sensitivity from the third computer workstation WAN 110; = Use rr,,108,—:: Remote computer 1〇3:f table home computer or a mother's individual action requires an example that meets the Boss dense operation 112. In addition, the wireless network 109 eighty malignant offer In coffee shop, airport, school, and its A /, place, therefore pen " ^ ^ ^ Η ^, 〇 〇 I electric fine 1 U4 user an encrypted solution d: / her message transmission / receiving other users immediately , "work wireless network 1 〇 9 to wireless network routing 1 billion out of six secret or decrypt all messages. j峪 is added by 108. In the above solution, each of the above activities requires an immediate ^ ^ to do the rush, and accordingly there is a need to execute the computer 10 Bu 1 04 into a ^ 2 main 2". Therefore, do it. ^ Completing hundreds of encryption operations at the same time No matter what, save as -, » ^ ^ At least one marriage to the disc. Some of the encryption/decryption options on the computer system 101-104? The limitation of the encryption operation method. Take 丫m and Yuancheng J as an example. After completing a 1272815 via a software program, one of the aforementioned functions is relatively slower than the hardware. Each encryption/decryption operation u 5 function is executed and is being executed on the computer 101-1 〇4 for a period of time, and the execution must be suspended within the time, and (4); ^= the previous 杈, key, etc.) parameters must be Through three essays, operation 112, perform encryption and fall-off; ^ stay system to encrypt/decrypt with special group (four) return "operation must be executed to execute including multiple computer extension instructions two": stay on:. 12) The speed is unfavorable. Such as "Wangkou Ρ system operation
» 5 ^ Microsoft® 〇utl〇〇k4V-^tir^ 子郵::較!;:個未加密電子郵件電 遲所造成的。大多數應 乍的延 成或加密/解密元件,他 =棱(、正數金鑰生 嵌應用程式,以完成這也任矛;作元件或内 其他正在執行應用程式的需:及二乍按照» 5 ^ Microsoft® 〇utl〇〇k4V-^tir^ Sub-mail::Compare!;: An unencrypted e-mail is delayed. Most of the prolonged or encrypted/decrypted components, he = arbitrarily (or positive key embedding application to complete this is also a spear; for components or other applications that are executing the application: and two
101-104上密碼運曾之到在當則電腦系統 浮點單元出現前浮‘:數;器:專用 慢。就像浮點運算;、=所以執行的速度很 相當慢的。隨著浮點技術;;3體執行密碼運算是 在浮點共同處理器上執行,浮點提? 點操作係比軟體的實現要快很多:各:它:3γτ 糸統的成本。同樣地,八口 Α "田…、匕也拓加了 通過平行埠或1它週、#7碼汙點係以擴展板或 \存在者。这些浮點當然使得 13 1272815 密石馬運曾i _ 同處理ί輅/行比一般軟體的實現要快。但密碼共 W、、、°系統配置增加了成本,他需要額外的電 主微處理ί::ΐ統之可靠性。由於資料通路不像 理哭的热Γ卩樣在同一個模組上,所以密碼共同處 口口,執行乃更易被竊聽。 微處ΪΪ丄ί案之發明者了解到人們需要在今曰的 運算“CJ的密碼硬體,這樣需要密碼 指令於r=式可以直接經由一條單獨的、微密碼 接彳ϋ ^ 了〜处理态執行密碼運算。而密碼指令電路 個密碼指令。本案之發明者同時也3 =二提供=樣的功能,減少對作業系統的干涉和 加以伟'^且j碼扎令最好能夠在應用程式的特權級 器相☆二ΐ!密碼硬體能夠★當前流行的微處理 4作ί:同%密碼硬體和相關密碼指令要提供與先 月J作業糸統和程式的相交沾 ^ 1執行密碼運 =竊? ’並能支援多種密碼演算法,支援 靶的特殊密碼演算法進行驗證和測試,允許使 输和自行產生的金输,支援多 電子碼書式、密瑪區塊串列、密碼= 輸出,授模式等,並且在使用上述可編程區 j加狁/解岔模式時能夠對大量 密文密碼功能。 貝付韦,文執仃s塊 【發明内容】 本發明之—實施例,係在—微處理器内提供用 1272815 以完$密碼運算的裝置。該裝置包括一密碼指入 路二輪出回授模式邏輯電路和執行邏輯電二 =電產/ 一密碼指令,其藉由計算』 接收—亚作為在計算裝置上所執行指令流的一部 刀。狁碼指令規定一種密碼運算。這種密 括衩數個輸出回授區塊密碼運算,而輸出回匕: 碼,异則被執行在相對應的複數個輸入文g區塊 地结^:f 2杈ϊ Ϊ輯!路和密碼指令電路係密切 3 : ί 及每一該些輪出回授區塊密碼運 介勺初始化向量位置。執行邏輯 ”、、 模式邏輯電路係緊密結合,執行邏輯電二 =回授 密碼指令。 、科电峪便執打一 本,明之另一實施例係為一種執行宓 々 二。該裝置包括一内嵌在一設備中的:碼异、 m式邏輯電路。密碼單元執行;個密:運° :以來;ΐ?:,收到之-指令以 運算包括數個密碼回授區塊密瑪;算被=密碼 區塊密碼運算則係被執行於所對声之數個;:碼回授 =中。輪出回授模式邏輯電斤路輸尸字 u在一起。輸出回授^早^达、切的 新指標暫存器之内容;備更 密碼運算的—初始化向量位置稷數個輸出回授區塊 運算=之為:種在-設備執行密碼 ^之某一個,其中密石馬指令係規定指 1272815 定之密碼運算。而這個執杆舟蹄 數個於入々宝F4 驟包括完成在相對應 ,個輸入文,區塊中之數個輪出回授模 作。該方法還包括經由在下—偷 、 ▲木 下-個輸出回授模式區塊操作:入::區塊上的 向量寫到一個初始化向量::置::個等效初始化 【實施方式】 以下所述為應用習知技術而製造The password on the 101-104 was shipped to the computer system before the floating point unit appeared ‘: number; device: dedicated slow. Just like floating point arithmetic; , = so the execution speed is quite slow. With floating-point technology;; 3 body execution cryptographic operations are performed on a floating-point coprocessor, floating point mention? The point operation is much faster than the implementation of the software: each: it: the cost of 3γτ. Similarly, eight Α "田..., 匕 also expanded through parallel 埠 or 1 it week, #7 code stains to expand the board or \ exist. These floating points of course make 13 1272815 Mishi Ma Yun Zeng i _ with the processing 辂 / line is faster than the implementation of the general software. But the password is a total of W,,, ° system configuration increases the cost, he needs additional power main micro processing ί:: the reliability of the system. Since the data path is not on the same module as the crying of the crying, the password is shared and the execution is more easily eavesdropped. The inventor of the micro-location ί case understands that people need to calculate the CJ password hardware in the future, so that the password command can be used in the r= formula to directly connect via a single, micro-password. The cryptographic operation is performed, and the password command circuit has a password command. The inventor of the case also provides 3 = two functions to reduce the interference to the operating system and to make the best and can be used in the application. The privilege level is ☆ two! The password hardware can be ★ the current popular micro-processing 4 ί: the same as the % password hardware and related password instructions to provide the intersection with the first month J operating system and program ^ 1 to perform the password operation = Stealing? 'And can support a variety of cryptographic algorithms, support the target's special cryptographic algorithm for verification and testing, allowing the transfer and self-generated gold, support multi-electronic codebook, MU block, password = output, Mode, etc., and can use a large number of ciphertext cipher functions when using the above-mentioned programmable area j plus/unblocking mode. [before], the present invention is based on - Micro The device provides a device for calculating the cryptographic code with 1272815. The device includes a password referring to the second round of the feedback mode logic circuit and the execution logic 2 = electricity / a password command, which is calculated by the receiving - sub- As a part of the instruction stream executed on the computing device, the weight instruction specifies a cryptographic operation. This closed number of outputs is fed back to the block cryptographic operation, and the output is returned to the code: the code is executed in phase. Corresponding multiple input text g block grounding ^:f 2杈ϊ Ϊ! The road and password command circuit is closely 3: ί and each of these rounds of the feedback block password operation spoon initialization vector position. The logic "," mode logic circuit is closely combined, and the logic logic 2 = feedback password command is executed. Kedian will be able to play one, and another embodiment of Ming is an implementation of 宓 々 II. The device includes a coded, m-type logic circuit embedded in a device. The cryptographic unit is executed; the secret is: °°: since; ΐ?:, received - the command is operated to include several ciphers to return the block MM; the 被 = cipher block cipher operation is performed on the corresponding sound Several;: code feedback = medium. Turn out the feedback mode logic to drive the corpse words u together. Output feedback ^ early ^ up, cut the new indicator register content; prepare more cryptographic operations - initialization vector position 个 number of output feedback block operation = it is: kind of - device execution password ^ one of , in which the Mishi horse command system refers to the cryptographic operation of 1272815. And this number of shovel shovel in the Suibao F4 consists of several rounds of feedback teaching in the corresponding input and block. The method further includes: via the under-stealing, ▲-out-output feedback mode block operation: the vector on the in:: block is written to an initialization vector:: set:: equivalent initialization [embodiment] Manufactured for applying conventional techniques
=用ί需求之本發明所列舉之例子。然而,實播 ::所ΓΓΐ種修改係用於彰顯與習知技術之不 ’此-般原則可應用於其他實施例中。因此, 本务明並非限定於特定實施例。 李轉ϊ ΐ ΐ述關於密碼程序之技術背景及當今電腦 =斤=將祕密及解密之相關技術,我們將 2來繼績探巧這些技術及其限制。接著,將 =二、回3 - 1 4繼績討論本發明。本發明提供一種= Examples of the invention as claimed by ί. However, the actual modification is used to highlight the differences from the prior art. This general principle can be applied to other embodiments. Therefore, the present invention is not limited to the specific embodiments. Li Zhuanqi ΐ narrate the technical background of the cryptographic program and the current computer = jin = will be secret and decryption related technology, we will 2 to find these technologies and their limitations. Next, the present invention will be discussed in terms of =2, back to 3-14. The invention provides a
=於當代電腦系統之密碼程序的裝置及方法,相 5目前主流之機器’該裝置及方法顯示了較佳的 ^肊,因此滿足了限制作業系統之介入、電子式、 =式、電腦結構相容性、演算法及模式之可程式性、 頁防駭客入侵、及可測試性之上述目標。 抑φ現在請看目2,—方塊圖2GG描述了在上述當 ^電腦系統上完成密碼運算的技術。方塊圖2〇〇包 個微處理器(micr〇pr〇cess〇r) 2〇1,其係從一 ::輊式對應的系統記憶體的一部分,被稱作應 八:己體(application memory) 203進行擷取指 々電路和存取資料。指令電路提供至少一指令,其 16 1272815 用來指示一密碼運算,而指令電路包含邏輯電路、 裝置或微碼(即微指令或本機指令(native instruction))、或是一個邏輯電路、裝置或 組合’由於指令電路並非為本發明的重點m 再對此作詳細說明。程式的控制和從應用記憶體 2 03、所存取的資料是由駐留在系統記憶體的已保護 ,域内的作業系統(operating system) 2〇2所控 官。如上述討論,如果一個正在執行的應用程式(例 如:電子郵件(emai丨)程式或一檔案儲存程式)需要 執行一個狁碼運算,正在執行的應用程式即必須指 I微^理器201執行特定的指令才能完成密碼運 异。這些指令也許就是正在執行應用程式部份的一 個子程式,它們也可能是鏈結到正在執行應用程式 的内嵌程式,也可能是作業系統2〇2所提供的服 務。不管它們怎樣結合,一個熟悉該項技術者將了 解這些指令將駐留在一些指定的或是已分配的記憶 體區域中。基於討論的目的,這些儲存區域將會被 揭示在應用記憶體203中,及包含一個密碼金餘產 生程式(cryptographic key generation application) 204,其一般會產生或接收一個金鑰 並將至錄擴展成為一金餘目錄(key sche(juie ) 2 0 5 ’以供密碼回合操作使用。對於多區塊的加密操 作,一區塊加密程式(encrypti〇n applicati〇n) 206將被引動。加密程式206執行指令存取明文區 塊(plaintext) 210、金錄目錄205、諸如模式: 金錄目錄位置等更為詳細加密操作的密碼參數 (cryptographic parameters) 209。如果指定的模 1272815 式需要,二個初始化向量(initaIizati〇nvect〇r) 也會藉由加密程式206存取。加密程式2〇6執 灯每些指令,以產生相對的密文區塊() 2U。·同樣地,一區塊解密程式(decryption appl1Cat1〇n) 207被引動為了執行區塊解密操作。 解猞程式207執行數個指令,這些指令會存取密文 21卜金鑰目錄205、更為詳細解密操作的密碼參數 =9、一初始化向量2〇8 (如果模式需要也會被存 )。解密程式207執行這些指令使產生相應的明文 區塊21 0。 、值得注意的是特定的指令須被執行以產生金鑰 ,以加岔或解密文字區塊。上述的F丨規範包含了 許多虛擬碼範例,使得需要被確定的指令數能夠被 估计出來,因此,熟悉該項技術者將會了解需上百 個指令,以完成一個簡單的區塊加密操作。每一這 ^令藉由微處理器2〇1執行,以完成所需的密碼 ΪΆί講’執行這些指令以完成-個密碼運 ^,對於當前正在執行應用程式的主要目的(如檔 ’即時消息’電子郵件,遠端㈣存取、信 卡父易)來說,都是多餘的操作。因此,者前正 ,執行應用程式的使用者感覺到當前所執行^式之 2成並不是有效率的。絲立的或内纟的加密及解 欲應用程式206、207的情況下,啟動和管理這些 式20^6、207也要受到作業系統2〇2的其他需求所支 配,諸如支持中斷、異常以及惡化問題的事件等。 更Ϊ二步講/於在—計算系統上所需求的每-並 仃的狁碼運异,程式204、20 6、207的一例子就是 ^72815 項分開配置於記情辦 、 的是,要求由。上所述,可以預期 將會隨著時間加如並行之密碼運算數 統密:注以和當前電腦系 置和方之微處理器中,執行密碼運算的裝 相關I古i屬之密碼單元,執行密碼運算的裴置及 ::的方法。當啟動密碼單元時,以經由一單一宓 ^曰令之程式化,來執行密碼運算。現在將參日一 3至圖12以討論本發明。 “、、圖 明袖參Ϊ圖3, 一方塊圖300描述了 一個依據本發 月執仃岔碼運算的微處理器裝置。方塊圖3〇〇描述 了二個微處理器(micropr〇cess〇r) 3〇1,其係通過 3己憶體匯流排(memory bus) 319連到一系統記 憶體(system memory) 321上。微處理器3〇1包括 轉譯邏輯電路(translation logic) 303從一指令 暫存為(instruction register) 302接收指令電 路。指令電路提供至少一指令,其用來指示一密碼 運算,而指令電路包含邏輯電路、裝置或微碼(即 微指令或本機指令(native instruction))、或是 一個邏輯電路、裝置或微碼之組合,由於指令電路 並非為本發明的重點,於此不再對此作詳細說明。 轉譯邏輯電路303包含邏輯電路、裝置或微碼(即 微指令或本機指令(native instruction))、或是 一個邏輯電路、裝置或微碼之組合,或是能夠轉譯 指令到相關微指令序列的等效單元。在轉譯邏輯電 19 1272815 路j〇3中所執行轉譯的單元可能被其他的電路、微 ,等所共用,即在微處理器3〇1内執行其他的二 能三依據本發明的目的,微碼是一個術語,它表示 大量的彳f指令。一微指令(或稱為本機指令)是一 Ϊ執彳I單元級別的指令。例如,微指令被精簡指令 集電腦(reduced instruction set computer,RISC) 微處理器直接執行。對於一個複雜指令集電腦 (complex instruction set computer, CISC)微 處理器,諸如一 x86相容微處理器,χ86指令被轉 譯成相關的微指令,而這些微指令可以在複雜指令 集電腦微處理器内由至少一個單元直接執行。轉譯 邏輯電路303係被連接到一微指令佇列(micr〇 instruction queue) 304上,微指令佇列3〇4有數 個微指令入口( micro instructi〇n entries) 3〇5、 306。微指令由微指令佇列3〇4提供給包括一暫存器 組307的暫存器階段邏輯電路。暫存器組(regist二 file) 307係具有複數個暫存器(registers) 308-31 3,且這些暫存器的内容係在執行一個指定的 密碼運算前即被建立。暫存器3〇8 —312指向記憶體 (memory ) 321 中的相應位置(c〇rresp〇nd;ng l^cation^) 323-327,這裏存放著執行指定密碼運 异所需的資料。暫存器階段被連接到載邏輯電路 (load logic) 314,其係被連接到資料快取(data cache ) 31 5 ’用來恢復執行指定之密碼運算的資料。 資料快取315通過記憶體匯流排319連接到記憶體 321上。執行邏輯電路(execUfi〇n i〇gic) 328和 載入邏輯電路(load logic) 314相接並通過上一 20 1272815 電路!的操作。執行邏輯 或本:U包含邏輯電路、裝置或微碼(即微指令 1 曰々)、或是一個邏輯電路、裴置或微碼之組 二ΐ是能通過提供給它的微指令執行指定操作的 =j早兀。在執行邏輯電路328中執 3可〇匕其他的電路、微碼等所共用,即在微】= 個穷碼1成其他的功能。執行邏輯電路328包括一 山馬早兀(cryptography unit) 3 宓 〇 一 :二”入邏輯電路314接收,用以執行;:: 异所萬的資料。微指令驅動密二 入文字區塊326上執行指定的;:::在: 327 (〇u^t text) 微指令或本機指令)、或是一:輯二 =(即 碼之組合,或是能執行密碼運算的等效單:J微 碼單元316中執行密碼運算在密 :的,,用,即在該微處 他的功能。在一實施例中,宓1内凡成其 輯電路328的其他執行單元('未70 *執行邏 單是广亍執行。在本二範以數ί 70的一貫施例係包含邏鐘Φ㈤τ 早 微指令或本機指令)、或是—個輯^或微碼(即 碼之組合,或是能執行指電路、裝置或微 單元。這些在一個特殊〜呆或各疋功能的等效 ,定功”元件可能被其:上的執電仃:、定:作彳執行 用,即在微處理器3〇丨内 4碼等所共 如,在一個實施例中,—敕I,、他功能或操作。例 正數早元係包含邏輯電路、 1272815 ,置或微碼(即微指令或本機指、 電路、裝置或微碼之、组合,b'、或是一個邏輯 等效單元。一浮點單元包含:羅:^執行整數指令的 (即微指令或本機指令)、一电路、裝置或微碼 或微碼之組合,或是能執行邏輯電路、裝置 在整數單元内執行整數护入^扣令的等效單元。 路、微碼等,即在浮點日/ 、70件係可以共用電 容x86體系的—實施例中,密,浮點指令。在相 的整數單元、一 χ86的浮點^二早兀316和—x86 延伸集單元和一 x86 & # :早7°、— χ86的多媒體 根據本發明,一相伸集單元並行執行。 施例能夠正確地執行大多數以= 二指這個實 處理器上執行的應用程果來在—以6微 J絲式的執行就是正確 的隹也:。 容實施例期望密碼單元盥 j ^ k擇的X 8 6相 的一個子集並行執扞所棱到X86執行單元 邏輯電路卩+ Λ 么碼早凡316被連接到儲存 個輪出5 3rgic)317上並提供相對應複數 到327 1儲存邏輯電路317也被連接 却二、 5 ’其係發送輸出文字資料327到系 二。思-321處以供儲存。儲存邏輯電路3 j 7係被 寫回邏輯電路( write back logic) 318 上。 备才曰=的密碼運算完成,寫回邏輯電路318將更新 暫存,組307中的暫存器308-31 3。在一個實施例 f ’微指令係與一時脈信號(未圖示)同步,流經 母個上述的邏輯電路階段(logic stages ) 302、 3ί)3' 3()4> 3〇7、314、316-318,這樣,這些操作就 可以並行執行,就像一條裝配線一樣。 22 1272815 在系統記憶體321中,一個需要指定密碼運算 令應用程式就可以通過一條單獨的密碼指令 1咐ruction) 322直接驅動微處 ^ 仃5亥操作。在此以一條密碼(XCRYPT ) 中。在一個複雜指令集電腦實施例 令。“ ^ 包含一條規定一密碼運算的指 1 2,令#電腦實施例中,密碼指令322包 二一條規定一密碼運算的微指令。在一實施例中 用現有指令集架構中多餘的或未用 複前置(即叫後跟2個;^ 、、扁碼(例如〇x〇FA7),再加上}個位元袓 b 2一指定密碼運算時使用的一特定密』=執 被編寫到程式指令流裏 ^下 3。1。由於執行指定的密碼運吏广係(只、:=,器 322驅動微處理器30〗即可,這檨,二在碼私令 於作業系統320來說將完全是透明化:。的完成對 共八、t 執仃,在執行應用程式期Η你& ΐ : Ϊ的一部分,-密碼指♦ 322係由2 = 322、::取J3: 302。然而,在執行密碼指令 使初始化暫存哭3fls ςΐ9 = 7係驅動微處理器301 皙存时308-31 2的内容,以致將其指向在 23 1272815 e己fe體3 21中的位置3 2 3 - 3 2 7,這些位置包含一褒 碼控制字元(cryptographic control word) 323、 一初始金錄(initial cryptographic key) 324 或 至錄目錄(key schedule) 324、一初始化向量 (initialization vector) 325 (如果需要的話), 供操作之輸入文字(input text) 326和輸出文字 (output text) 327。在執行密碼指令322之前初 始化暫存為3 0 8 - 31 2是必須的,因為密碼指令3 2 2 不加校驗直接使用該等暫存器3〇8 —312和存放一區 塊數目的額外暫存器31 3,這區塊數目係指在輸入 φ 文字區326中需要加密或解密的資料區塊數目。這 樣,轉譯邏輯電路303從擷取邏輯電路3〇2擷取到 饴碼才曰$並將其轉澤成一系列驅動該微處理器3 〇 1 使執行指定密碼運算的相對應微指令。在相對應系 ,微指令中的一第一組微指令3〇5-3〇6係驅動^碼 單元31 6使下載從載入邏輯電路3丨4所提供之資料 並開始執行一定數目的密碼回合使產生一相對應輸 出資料區塊並通過資料快取315將對應輸出資料區 塊提供給儲存邏輯電路317以儲存在記憶體321的· 輸出文字區327中。在相對應系列微指令中之一第 二組微指令(未圖示)驅動微處理器3〇1的其他執 行單元(未圖示)執行其他的必要操作以完^指定 的密碼運算,諸如在加密/解密完一組輸入文字326 後^控管暫存中間結果和計數的非結構暫存器(未 圖不),更新輸入及輸出指樣暫存器(p〇inter registers) 311 — 312,更新初始化向量指標暫存器 . (initialization vector pointer register) 310 24 1272815 (如果需要的話)以及處理當前中斷等。在一個實 ,例中,暫存器308_313是結構暫存器,結構暫存 器308-31 3是指在指令集架構(instructi〇n ^Ch 1 tecture,1SA)裏執行特殊微處理器所定義的 暫存器。 個_^一1固實施例中,密碼單元316係被分為複數 個&奴,猎此允許管線化連續輸入文字區塊326。 圖3的方塊圖3〇〇係用來講述本發明的基本組 的Γ ^=為了更清晰’在當今微處理器301中 : = 路都被方塊圖3〇0所忽略。然而,-1 ί技術者將會了解到根據特定的執行當今 係包含許多階段和邏輯電路單元,但 載入邏輯電路314二!其:集在一起。例如’ 後是-快取介面階:成階段’然 但值得注意的是在複數::::,線對準階段。 3 2 2戶=^ 據本發明通過—單獨密碼指令 角度來考慮是透從作業系統320的 專用密碼單元3166忐、’的執仃是通過一個 處理器3〇1内的其ς執行單=碼^元316係和微 人企圖在實施例結構上 =丁的。本案之發明 316的實施例,i 棱(、一種可重構密碼單元 專用浮點單元硬二心^以前微處理器所提供之 322的操作和以前的316和相關密碼指令 發操作是完全相容# :、/、、、先320和應用程式的併 現在請參閱描述如下。 /、所長供之示意圖展示了依 25 1272815= The device and method of the password program in the contemporary computer system, the current mainstream machine's device and method show better control, thus satisfying the intervention of the operating system, electronic, =, computer structure The above objectives of capacity, algorithm and mode of programability, page anti-hacker intrusion, and testability. Let φ now look at item 2, which shows the technique for performing cryptographic operations on the computer system described above. Figure 2 shows a microprocessor (micr〇pr〇cess〇r) 2〇1, which is part of the system memory corresponding to a::轾, which is called eight: 203 performs a fingerprinting circuit and accesses data. The instruction circuit provides at least one instruction, 16 1272815 for indicating a cryptographic operation, and the instruction circuit includes logic, device or microcode (ie, microinstruction or native instruction), or a logic circuit, device or The combination 'because the instruction circuit is not the focus of the invention m will be described in detail. Program control and slave memory 2 03, the accessed data is controlled by the operating system 2〇2 in the protected, domain of the system memory. As discussed above, if an executing application (for example, an email (emai丨) program or a file storage program) needs to perform a weight operation, the executing application must refer to the I microprocessor 201 executing a specific operation. The instructions can be used to complete the password. These instructions may be a subroutine that is executing the application part. They may also be linked to the embedded program that is executing the application, or it may be the service provided by the operating system 2〇2. Regardless of how they are combined, a person familiar with the art will understand that these instructions will reside in some specified or allocated memory regions. For storage purposes, these storage areas will be revealed in the application memory 203 and include a cryptographic key generation application 204, which typically generates or receives a key and expands the record into A key directory (key sche(juie) 2 0 5 ' is used for the password round operation. For multi-block encryption operations, a block encryption program (encrypti〇n applicati〇n) 206 will be motivated. Encryption program 206 Execution instructions access plaintext block 210, gold record directory 205, cryptographic parameters such as mode: gold record directory location, etc. More detailed encryption operations cryptographic parameters 209. If the specified modulo 1272815 is required, two initializations The vector (initaIizati〇nvect〇r) is also accessed by the encryption program 206. The encryption program 2〇6 executes each instruction to generate a relative ciphertext block () 2U. Similarly, a block decryption program (decryption appl1Cat1〇n) 207 is motivated to perform a block decryption operation. The decryption program 207 executes a number of instructions that access the ciphertext 21 The key directory 205, the cryptographic parameter of the more detailed decryption operation = 9, an initialization vector 2 〇 8 (will also be stored if the mode is required). The decryption program 207 executes these instructions to generate the corresponding plaintext block 21 0. The specific instruction must be executed to generate a key to add or decrypt the text block. The above F丨 specification contains many virtual code examples, so that the number of instructions that need to be determined can be estimated, so familiar with the The technician will know that hundreds of instructions are needed to complete a simple block cipher operation. Each of these commands is executed by the microprocessor 2〇1 to complete the required password ΪΆ 'execute these instructions to Completion - a password operation ^, for the main purpose of the currently executing application (such as file 'immediate message' email, remote (four) access, letter card parent easy), is an extra operation. Therefore, before Positively, the user who executes the application feels that the currently executed 2 is not efficient. In the case of the creased or guilty encryption and solution application 206, 207, the startup and management These equations 20^6, 207 are also subject to other requirements of the operating system 2〇2, such as events that support interruptions, anomalies, and deterioration problems, etc. Further two-step/on-the-requirements on the computing system- And the weight of the weight difference, an example of the program 204, 20 6, 207 is ^72815 items are separately configured in the memory, the requirements are as described above, can be expected to be added in parallel with time The cryptographic operand is confidential: the cryptographic unit that performs the cryptographic operation and the cryptographic unit that performs the cryptographic operation, and the cryptographic operation and the method of::. When the cryptographic unit is activated, the cryptographic operation is performed by stylization via a single command. The present invention will now be discussed in Japanese Patent Application No. 3 to FIG. ", Figure 3 shows a block diagram 300 depicting a microprocessor device based on this month's execution of the code. Figure 3〇〇 depicts two microprocessors (micropr〇cess〇 r) 3〇1, which is connected to a system memory 321 via a 3 memory bus 319. The microprocessor 3〇1 includes a translation logic 303 from one The instruction is temporarily received as an instruction register 302. The instruction circuit provides at least one instruction for indicating a cryptographic operation, and the instruction circuit includes a logic circuit, a device or a microcode (ie, a micro instruction or a native instruction). )), or a combination of logic circuits, devices or microcodes, since the instruction circuit is not the focus of the present invention, it will not be described in detail herein. The translation logic circuit 303 contains logic circuits, devices or microcode (ie A microinstruction or native instruction, or a combination of logic, device, or microcode, or an equivalent unit capable of translating instructions to a sequence of related microinstructions. The unit that is translated in 19 1272815, j〇3 may be shared by other circuits, micro, etc., that is, in the microprocessor 3〇1, other two can be executed according to the purpose of the present invention, the microcode is A term that refers to a large number of 彳f instructions. A microinstruction (or native instruction) is an instruction that executes an I unit level. For example, a micro instruction is a reduced instruction set computer (RISC). The microprocessor executes directly. For a complex instruction set computer (CISC) microprocessor, such as an x86 compatible microprocessor, the χ86 instructions are translated into related microinstructions, which can be complex The instruction set computer microprocessor is directly executed by at least one unit. The translation logic circuit 303 is connected to a micr〇instruction queue 304, and the microinstruction array 3〇4 has several microinstruction entries (micro Instructi〇n entries) 3〇5, 306. The microinstruction is provided by the microinstruction queue 3〇4 to the scratchpad stage logic circuit including a register group 307. The scratchpad group Regist 2 file) The 307 system has a plurality of registers 308-31 3, and the contents of these registers are created before a specified cryptographic operation is performed. The register 3〇8-312 points to the memory. The corresponding position in the memory 321 (c〇rresp〇nd; ng l^cation^) 323-327, which stores the data needed to perform the specified password. The scratchpad phase is coupled to load logic 314, which is coupled to a data cache 31 5 ' to recover data for performing the specified cryptographic operations. The data cache 315 is connected to the memory 321 via the memory bus 319. The execution logic circuit (execUfi〇n i〇gic) 328 is coupled to the load logic 314 and passes through the operation of the previous 20 1272815 circuit! Execution logic or this: U contains logic circuits, devices or microcode (ie microinstructions 1 曰々), or a group of logic circuits, devices or microcodes that can perform specified operations through the microinstructions provided to it. =j early. In the execution logic circuit 328, other circuits, microcodes, and the like are shared, that is, in the micro] = one poor code 1 into other functions. The execution logic circuit 328 includes a cryptography unit 3: a "two" input logic circuit 314 receives for execution;:: a different amount of data. The microinstruction drives the secret binary block 326 Execute the specified ;::: in: 327 (〇u^t text) micro-instruction or native instruction), or one: series two = (that is, the combination of codes, or the equivalent of a cryptographic operation: J The cryptographic operation is performed in the microcode unit 316 at the same time, that is, at the micro-portion. In one embodiment, the other execution units of the circuit 328 ('not 70*') are executed. The logic is executed in a wide range. In the second instance, the consistent application of the number 70 70 includes the logic clock Φ (five) τ early micro-instruction or native instruction), or a combination of ^ or micro-code (ie, a combination of codes, or Capable of executing a circuit, device or micro-unit. These are equivalent in a special ~ stay or each function, the "power" component may be: its operation: 定: :: for execution, that is, in micro processing In the embodiment 3, the code is the same as, in one embodiment, -敕I, his function or operation. Contains logic, 1272815, set or microcode (ie microinstruction or local finger, circuit, device or microcode, combination, b', or a logical equivalent unit. A floating point unit contains: Luo: ^ Execution An integer instruction (ie, a microinstruction or a native instruction), a circuit, a device, or a combination of microcode or microcode, or an equivalent unit capable of executing a logic circuit, the device performing an integer guard in an integer unit. Road, microcode, etc., that is, floating point day /, 70 pieces can share the capacitance x86 system - in the embodiment, dense, floating point instructions. In the integer unit of the phase, a floating point of 86 ^ 二 兀 316 and - x86 extended set unit and a x86 &#: early 7 °, - χ 86 multimedia according to the present invention, a phase extension unit is executed in parallel. The embodiment can correctly perform most of the implementation of the = two fingers on the real processor The application of the application results in the implementation of the 6 micro-J wire type is also correct: The embodiment expects a subset of the X 8 6 phase of the cryptographic unit 盥j ^ k to be executed in parallel with the X86 implementation. Unit logic circuit 卩+ 么 码 早 316 is connected to the storage Round out 5 3rgic) 317 and provide the corresponding complex number to 327 1 The storage logic circuit 317 is also connected but the second, 5 'the system sends the output text data 327 to the system 2. The brain is located at 321 for storage. The storage logic circuit 3 j The 7 series is written back to the write back logic 318. The cryptographic operation is completed, and the write back logic 318 will update the temporary store, the register 308-31 in the group 307. In one embodiment The f' microinstruction is synchronized with a clock signal (not shown) through the parent logic stages 302, 3ί) 3' 3() 4 > 3〇7, 314, 316-318, In this way, these operations can be performed in parallel, just like an assembly line. 22 1272815 In the system memory 321, a need to specify a password operation allows the application to directly drive the micro-command ^ 亥 5 hai operation through a separate cipher command 1 咐 ruction) 322. Here is a password (XCRYPT). In a complex instruction set computer implementation. " ^ contains a pointer to a cryptographic operation 1 2, in the # computer embodiment, the cryptographic instruction 322 package two micro-instructions that specify a cryptographic operation. In an embodiment, the existing instruction set architecture is redundant or not Use a complex preposition (that is, followed by 2; ^,, flat code (such as 〇x〇FA7), plus } bit 袓b 2 a specified password used in the operation of the password = Into the program instruction stream ^3. 1. Since the execution of the specified password operation system (only, :=, device 322 drives the microprocessor 30), then, the second code in the operating system 320 Said to be completely transparent: the completion of the total eight, t stub, in the execution of the application period you & ΐ: part of Ϊ, - password refers to ♦ 322 is by 2 = 322, :: take J3: 302 However, the execution of the password command causes the initialization temporary memory to cry 3fls ςΐ 9 = 7 to drive the microprocessor 301 to store the contents of 308-31 2 so that it points to the position in the 23 1272815 e-fe body 3 21 2 2 3 - 3 2 7, these locations contain a cryptographic control word 323, an initial gold record (initial Cryptographic key) 324 or key schedule 324, an initialization vector 325 (if needed), input text 326 and output text 327 for operation. It is necessary to initialize the temporary storage to 3 0 8 - 31 2 before the instruction 322, because the password instruction 3 2 2 directly uses the temporary registers 3〇8-312 and the additional temporary storage of a block number without checking. 31 3, the number of blocks refers to the number of data blocks that need to be encrypted or decrypted in the input φ text area 326. Thus, the translation logic circuit 303 retrieves the weight from the capture logic circuit 3〇2 and will It is converted into a series of corresponding micro-instructions that drive the microprocessor 3 〇 1 to perform a specified cryptographic operation. In the corresponding system, a first set of micro-instructions in the micro-instruction 3 〇 5-3 〇 6 is a driving code Unit 31 6 causes the download from the data provided by the logic circuit 3丨4 and begins to execute a certain number of password rounds to generate a corresponding output data block and provides the corresponding output data block to the storage logic through the data cache 315. Electricity 317 is stored in the output text area 327 of the memory 321 . The other group of micro-instructions (not shown) of the corresponding series of micro-instructions drives the other execution units of the microprocessor 3〇1 (not shown). Perform other necessary operations to complete the specified cryptographic operations, such as after encrypting/decrypting a set of input texts 326, controlling the intermediate results and counting the unstructured registers (not shown), updating the inputs and outputs. P〇interregisters 311 - 312, update initialization vector pointer register 310 24 1272815 (if needed) and handle current interrupts, etc. In one embodiment, the scratchpad 308_313 is a structure register, and the structure register 308-31 3 is defined by executing a special microprocessor in an instruction set architecture (instructi〇n ^Ch 1 tecture, 1SA). The scratchpad. In the embodiment, the cryptographic unit 316 is divided into a plurality of & slaves, which allows pipelined continuous input of the text block 326. Figure 3 is a block diagram of the basic group of the present invention for the sake of clarity. In today's microprocessor 301: = The path is ignored by block diagram 〇0. However, the -1 ί technician will understand that depending on the particular implementation today, there are many stages and logic circuits involved, but the logic circuit 314 is loaded! It: set together. For example, 'after' is the cache interface level: staged', but it is worth noting that in the complex::::, line alignment phase. 3 2 2 households = ^ According to the present invention, by means of the individual password command perspective, it is considered to be through the dedicated cryptographic unit 3166 of the operating system 320, and the 'execution is executed through a processor in the processor 3〇1. ^ Yuan 316 series and micro-human attempts to structure the structure = Ding. The embodiment of the invention 316 of the present invention, i ridge (a reconfigurable cryptographic unit dedicated floating point unit hard two core ^ previous microprocessor provided by the operation of 322 and the previous 316 and related cryptographic instructions are fully compatible # :, /,,, first 320 and the application and now please refer to the description below. /, the director provides a schematic diagram showing 25 1272815
據本發明一微资i A 400包括一可=tt 400的一實施例。密碼指令 neld)401,狹後 置攔位(〇Ptl〇nal PrefixAccording to the invention, a micro-capital i A 400 comprises an embodiment of a = tt 400. Password command neld) 401, narrow post block (〇Ptl〇nal Prefix
f i e 1 d ) 4 0 2,隨德疋Γ一重稷前置棚位(rePea 1 ΡΓe f 土X 4〇3,最後是一區=二運t碼攔位(〇PC〇defield) n龙禮、碼模式搁位(b 1 〇 c k c i p h e r 六1Γ1ά) 4〇4,在一個實施例中,攔位401 一404 容豆:二8上指令集架構一致。可重構的實施例相 合其他的指令集架構。Fie 1 d ) 4 0 2, with the front of the 疋Γ 疋Γ ( (rePea 1 ΡΓ e f soil X 4 〇 3, the last is a district = two transport t code block (〇 PC 〇 defield) n Long Li, Code pattern shelf (b 1 〇 ckcipher hex 1 Γ 1 ά) 4 〇 4, in one embodiment, the block 401 - 404 Bean: the instruction set architecture on page 8 is consistent. The reconfigurable embodiment conforms to other instruction set architectures .
畔容5 3 :: ’该可選擇性前置攔位40 1被執行在 些運,以致能或不致能主微處理器的一 $ ί徵,诸如進行16位元或32位操作,進行 2明1子Τ到特殊記憶體段等。重複前置欄位402 2,ίϊίΤ 400指定的密碼運算,將在複數個輸 位402 7 # it即明文或密文)被完成。重複前置攔 槿种Ιίΐ扣一適合之微處理器,以使用複數個架 ,b ,态的内容,作為一在系統記憶體内位置之5 3 :: 'The optional pre-block 40 1 is executed in some way so that the main microprocessor can be enabled or not, such as 16-bit or 32-bit operations, 2 Ming 1 son to special memory segments and so on. Repeating the pre-field 402 2, ίϊίΤ 400 specifies the cryptographic operation that will be completed in a plurality of transpositions 402 7 # it ie plaintext or ciphertext. Repeat the pre-blocking Ι ΐ ΐ 一 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合 适合
:示,系統記憶體包含特定密碼運算之資料及彔 。如上所述,在一 x86相容之實施例中,重複前 之數值為0XF3。而且,根據x86 欲碼指令與REP.M0VS之類的x86重 ΠΓ以。舉例而言’當執行本發明之與_相; ,:ίίϊ斋5施例時,重複前置攔位指令指示儲存 π、,、°冓暫存器ECX中的區塊計算變數、儲存在暫 —ESI中的來源位址指標(指出密碼運算所用的 入貧料)以及儲存在暫存器EDI中的目的位址指^ (h己憶體中指出輸出資料區域)。纟χ86相容的= 施例中’本發明使習知重覆串指令内容,更參二 26 1272815 存在暫存器edx中的控制字元指標、儲存 BX中的密碼金鑰指標、以及儲存在暫存器^ ; 話)。 里?日知1右扣疋的晶片模式需要的 2碼欄位403指定微處理器完成密碼運算, ς 7扎疋於儲存在記憶體中的控制字元内,此 -係透過控制字元指標指*。本發明計算出運曾石^ :=03之較佳選擇值以作為現存指令集架構:備: indicates that the system memory contains information and 彔 for specific cryptographic operations. As described above, in an x86 compatible embodiment, the value before the repetition is 0XF3. Moreover, according to the x86 code command, it is repeated with x86 such as REP.M0VS. For example, when performing the present invention with the _ phase; , : ίίϊ斋5 example, repeating the pre-blocking instruction to store the block calculation variables in the π,,, °冓 register ECX, stored in the temporary - The source address indicator in ESI (indicating the inferior material used for cryptographic operations) and the destination address stored in the register EDI (where the output data area is indicated in h).纟χ86 compatible = In the example, the present invention makes the conventional repetitive sequence instruction content, and further refers to the control character indicator in the register edx, the cryptographic key indicator in the storage BX, and the storage in the case of 26 1272815 The scratchpad ^ ; words). in? The 2-code field 403 required by the chip mode of the right-hand 1 button specifies that the microprocessor performs the cryptographic operation, and the ς 7 is tied to the control character stored in the memory, which is indicated by the control character index* . The present invention calculates a preferred selection value of Yun Zengshi: 0 = 3 as an existing instruction set architecture:
庠算碼之一,以便保留舊有作業系統以及 ^用軟體付合的微處理器之一致性。舉例而言,如 =所述,運异碼攔位4〇3施行數值〇x〇Fa7,以 說明的密碼運算。區塊密碼模式攔位曰404 2 =特殊區塊密碼模式,以在具體說明密 間執行,如圖5所示。 之雷會示了一表5〇〇,此表500繪示了根據圖4 兔千、'·σ構的示範性區塊密碼模式攔位的數值。數 “ OxC8才曰疋密碼運算可藉由使用電子碼拿One of the calculation codes to preserve the consistency of the old operating system and the microprocessor that is used for software. For example, as described in =, the transport code block 4〇3 performs the value 〇x〇Fa7 to illustrate the cryptographic operation. Block cipher mode block 曰 404 2 = special block cipher mode to perform in the specific description of the secret, as shown in Figure 5. The mine will show a table 5〇〇, which shows the value of the exemplary block cipher mode block according to Fig. 4 . Number "OxC8 曰疋 cryptographic operations can be obtained by using electronic code
ί Ϊ而Ϊ成。數值0xD0指定密碼運算可使用密碼i ^ 列扠式而完成。數值ΟχΕΟ指定密碼運算可使用 '馬回授模式而完成。數值0xE8指定密碼運算可使 吊輸出回授(output feedback, 0FB)模式而完 ,。區塊密碼模式攔位404的所有其他值會被= 召。這些模式在前述的FIPS内文中有所描述。 見在末看圖6’示意圖詳細描述依據本發明在 個χ86相容微處理器(mi cr〇processor) 6〇〇裏 ^ 也碼單元(cryptography uni t ) 61 7。微處理 器600包括一個從執行記憶體(未圖示)擷取的擷 27 1272815 取邏輯電路(ft . etch iogic) 601。擷取邏輯電路601 '連2到轉譯邏輯電路(translation logic) 6〇2 輯電路602包含邏輯電路、裝置或微碼 # % I曰々或本機指令)、或是一個邏輯電路、裝置 二1 Ϊ合體’或是能夠將指令轉譯成微指令序 ,、、效單几。在該轉譯邏輯電路602中執行轉譯 :::可!“皮其他的電路、微碼等所共用,其係在 〜心处理為600内執行其他的功能。該轉譯邏輯電 路6、02包括一個連接到微碼唯讀記憶體(microcode 604上的轉譯器(translator) 603和輸出回 授模式邏輯電路(output feedback mode logic) 640,其係同時連接到轉譯器6〇3和微碼唯讀記憶體 604上。中斷邏輯電路(interrupt logic) 62 6通 過匯流排(bus) 628連接到轉譯邏輯電路6〇2。數 個軟體及硬體中斷信號Unterrupt signals) 627 將被中斷邏輯電路626處理,其將對轉譯邏輯電路 602顯示正在處理中斷。轉譯邏輯電路6〇2連接到 微處理器600的連續階段包括暫存器階段 (register stage) 605,定址階段(addressstage) 606,載入階段(i〇ad stage)6〇7,執行階段(execute stage) 608,儲存階段(store stage) 618 和寫回 1¾丰又(wr i te back stage ) 61 9。每個連續的階段係 包括元成#日疋功能的邏輯電路,這些特定功能與朝^ 行擷取邏輯電路6 01提供的指令有關,且這些結構 在圖3的微處理器中以類似的名稱描述。圖6描述 的x86相容實施例600展示了執行階段6〇8中的執 行邏輯電路(execution logic) 632,其包括並行 28 1272815 的執行單元(execution unit)610、612、614、616、 61了。整數單元610從微指令佇列(micro instruction queue) 609接收整數微指令以供執 行’浮點單元(f loa ting point uni t) 61 2從微指 令佇列611接收浮點微指令以供執行,多媒體延伸 集單元(Multi-media Extensions,MMX) 614從微 指令佇列61 3接收多媒體延伸集微指令以供執行, 串流延伸集單元(Streaming SIMD Extensions, SSE) 616從微指令佇列615接收串流延伸集微指令 以供執行。在典型的x86實施例中顯示,一密碼單 元(cryptography unit) 617通過一載入匯流排 (loadbus) 620、一延遲信號(stall signal) 621 和一儲存匯流排(store bus ) 622連接到該串流延 伸集單元616。密碼單元617共用串流延伸集單元 之微指令佇列61 5。可重構的實施例企圖孤立密碼 單元617的平行作業,就像單元610、612及614 一樣。整數單元(integer uni t ) 610連接到一 χ86 的旗標暫存器(EF LAGS register) 624上。旗標暫 存為包括一個X位元6 2 5,X位元的狀態指示密碼運 算是否在處理中。。在一實施例中,X位元625是 一 x8 6旗標暫存器624的第30位元。另外,整數 單元610存取一機器特定暫存器(machine specif & register) 628以計算一 E位元629的狀態。e位元 629的狀態表明在微處理器6〇〇内是否存在密碼單 元61 7。整數單元6 1 〇也存取在特性控制暫存哭 (f eature contro 1 regi ster )630 中的 D 位元 63 卜 來打開或關閉密碼單元617。同圖3的微處理器實 29 1272815 ,例301 —樣,圖6的微處理器6〇〇描述了本發明 i:8】相容實施例中的必要元件,並清楚集合或忽 2 的一些元件。一個熟悉該項技術者將了 t」。的兀件也必須被用以完成該介面諸如資料 、未圖不)、匯流排界面單元(未圖示)、時脈 產生和分頻邏輯電路(未圖示)等。 怜-tn藉由操取邏輯電路6〇1,從記憶體(未 :ξ八&传扣令電路並同步於時脈訊號(未繪示)提 學邏輯電路602。指令電路提供至少一ί Ϊ Ϊ 。. The value 0xD0 specifies that the cryptographic operation can be done using the password i ^ column fork. The value ΟχΕΟ specified cryptographic operation can be done using the 'horse feedback mode'. The value 0xE8 specifies that the cryptographic operation can be completed by the output feedback (0FB) mode. All other values of block cipher mode block 404 will be called. These modes are described in the aforementioned FIPS text. See Figure 6' for a detailed description of the schematic diagram in accordance with the present invention in a χ86 compatible microprocessor (mi 〇 processor) 〇〇 cryptography uni t 61 7 . Microprocessor 600 includes a logic circuit (ft. etch iogic) 601 that is retrieved from an execution memory (not shown). The capture logic circuit 601 'connects 2 to a translation logic circuit 6 〇 2 circuit 602 contains logic circuits, devices or microcode # % I 曰々 or native instructions), or a logic circuit, device 2 Ϊ合' is able to translate instructions into micro-instructions, and bills. The translation is performed in the translation logic circuit 602::: "Other circuits, microcodes, etc. are shared, and other functions are performed within the heart processing 600. The translation logic circuit 6, 02 includes a connection. To microcode read-only memory (translator 603 on microcode 604 and output feedback mode logic 640, which is connected to both translator 6〇3 and microcode read-only memory) At 604, an interrupt logic 62 6 is coupled to the translation logic circuit 6〇2 via a bus 628. A number of software and hardware interrupt signals Unterrupt signals 627 will be processed by the interrupt logic circuit 626, which will The interrupt is being processed by the translation logic circuit 602. The successive stages of the translation logic circuit 〇2 connected to the microprocessor 600 include a register stage 605, an address stage 606, and a load stage (i〇ad) Stage)6〇7, execute stage 608, store stage 618 and write back wr i te back stage 61 9. Each successive stage includes Yuan Cheng #日Functional logic, these specific functions are related to instructions provided by the logic circuit 601, and these structures are described by similar names in the microprocessor of Figure 3. The x86 compatible embodiment 600 depicted in Figure 6 Execution logic 632 in execution stage 6-8 is shown, which includes execution units 610, 612, 614, 616, 61 of parallel 28 1272815. Integer unit 610 is arranged from the microinstruction ( Micro instruction queue) 609 receives an integer microinstruction for execution of a 'float point uni t' 61 2 receives a floating point microinstruction from the microinstruction queue 611 for execution, a multimedia extension set unit (Multi-media Extensions) , MMX) 614 receives the multimedia extended set microinstructions from the microinstruction queue 61 3 for execution, and the Streaming SIMD Extensions (SSE) 616 receives the streaming extension set microinstructions from the microinstruction queue 615 for execution. In a typical x86 embodiment, a cryptography unit 617 is loaded through a load bus 620, a stall signal 621, and a store. A store bus 622 is coupled to the stream extension unit 616. The cryptographic unit 617 shares the microinstruction queue 61 5 of the stream extension set unit. The reconfigurable embodiment attempts to isolate the parallel operations of cryptographic unit 617 as elements 610, 612, and 614. An integer unit (integer uni t) 610 is coupled to an EF LAGS register 624. The flag is stored as including an X bit 6 2 5, and the status of the X bit indicates whether the password operation is in progress. . In one embodiment, the X bit 625 is the 30th bit of an x86 flag register 624. In addition, integer unit 610 accesses a machine specif & register 628 to calculate the state of an E bit 629. The status of the e bit 629 indicates whether or not the cryptographic unit 61 7 is present in the microprocessor 6. The integer unit 6 1 存取 also accesses the D bit 63 in the feature control spoofing 630 to turn the crypto unit 617 on or off. Like the microprocessor of FIG. 3, 29 1272815, the example 301, the microprocessor 6 of FIG. 6 describes the necessary components of the i:8 compatible embodiment of the present invention, and clearly sets or some of the 2 element. A person familiar with the technology will have t". The components must also be used to complete the interface (such as data, not shown), bus interface units (not shown), clock generation and frequency division logic (not shown), and the like. Pity-tn by the logic circuit 6〇1, from the memory (not: ξ8 & buckle circuit and synchronized with the clock signal (not shown) to learn logic 602. The command circuit provides at least one
/梦w指r 一密碼運算’而指令電路包含邏 .、波置或微碼(即微指令或本機指令(native ==i、或是一個邏輯電路、裳置或㈣ , 々電路並非為本發明的重點,於此不 此作絆細說明。轉譯邏輯電路6〇2轉 々電路至微指♦電路的對應 = :步於-時脈訊號,連續地被提供給微 r、618和619。微指令序。= 微扣7電路扣不子運算的執行,此/dream w refers to r-cryptographic operation' and the instruction circuit contains logic, wave or microcode (ie micro-instruction or native instruction (native ==i, or a logic circuit, skirt or (4), the circuit is not The focus of the present invention will not be described here. The translation logic circuit 6〇2 switch circuit to the micro finger ♦ circuit corresponding =: step - clock signal, continuously provided to micro r, 618 and 619 Micro-instruction order.= Micro-Button 7 circuit deduction operation, this
面運算,且此全面運算藉由對應指令電王 這些對應指令可如底下的指 :, 606之位址的產生;整;=猎由位址階段 碼,卜敫鉍抑一 〇 數早兀61 0中之兩相加運算 暫存ΪΓΛΤ:!從暫存器階段_中的指; 尸Y屋生的結果,此傲左Facet operation, and this comprehensive operation can be as follows by the corresponding instruction commander: 606 address generation; whole; = hunting by address phase code, 敫铋 敫铋 〇 兀 兀 兀 兀 61 0 The two addition operations in the temporary storage ΪΓΛΤ:! From the register stage _ in the index; the result of the corpse Y house, this proud left
階段618所執行。根據被轉 轉G 輯電路602將使轉譯器6〇3直接產 ^澤邏 或者獲得來自微碼唯讀^7序列, 只。己^體604的序列,或者使 30 1272815 轉,器603直接產生序列的一部份並獲得來自微碼 唯讀記憶體604的現存序列部份。微指令與時脈訊 號同步透過隨後階段605-608、618和619而相繼進 行。在微指令到達執行階段6〇8時,他們與其運算 碼以及被指定的執行單元610、612、614、616、6^7 在暫存器階段605中自暫存器取得,或者被定址階 段^0 6中的邏輯電路所產生,或者藉由載入階段6 〇 7 自資料快取所取得)一起被執行邏輯電路632所安 排執行’係藉由被相對應的微指令序列6 〇 9、61工、Stage 618 is performed. According to the transferred G circuit 602, the translator 6〇3 will be directly produced, or the sequence obtained from the microcode read only ^7, only. The sequence of the body 604, or 30 1272815 rpm, the 603 directly produces a portion of the sequence and obtains the existing sequence portion from the microcode read-only memory 604. The microinstruction is synchronized with the clock signal through successive stages 605-608, 618 and 619. When the microinstructions arrive at the execution stage 6〇8, they are fetched from the scratchpad with their opcodes and the specified execution units 610, 612, 614, 616, 6^7 in the scratchpad stage 605, or are addressed to the stage ^ The logic circuit in 0 6 is generated, or is obtained by the loading logic 6 632 by loading phase 6 〇 7 from the data cache ‘ by the corresponding microinstruction sequence 6 〇 9, 61 work,
613、615替換微指令而達成。執行單元61〇、η〗、 614 61 6、61 7執行微指令並提供結果給儲存階段 一實施例中,微指令包含指示其是否與其它 運异平行執行的攔位。 如上描述對取得一密碼指令做出回應,轉譯邏 β η 6 〇 2產生相關的微指令,其係驅使微處理器 600—中的連續階段6〇5_608、618、619使執行指定613, 615 is replaced by a microinstruction. Execution units 61, η, 614 61 6 , 61 7 execute microinstructions and provide results to the storage phase. In one embodiment, the microinstructions contain intercepts indicating whether they are executed in parallel with other transports. In response to the above description, in response to obtaining a cryptographic command, the translation logic θ 6 〇 2 generates associated microinstructions that drive successive stages 6〇5_608, 618, 619 in the microprocessor 600 to perform execution designation.
”碼ϋ异。—第一組相關的微指令送 密碼單以Π,1驅動密碼單元617讀取載 η上的資料’或者下載-輸入資料區塊並開始 =仃ΐΐ二數目的密碼回合使產生一輸出資料區 一輸出資料區塊到儲存匯流排622使 通過儲存邏輯電路618保存到記憶體中。一 相關的微指令發送到其他的執行單元61〇、61-2、: =4、616使執行完成指定密碼運算 作,諸如測試Ε位元629,啟動D位元631,^ 2 625以表明當前有—密碼運算正在 暫存裔階段605的暫存n (例如計複數個暫存器、 31 1272815 輸入文字指標暫存器、輸 :斷邏輯電路m處理中斷過 储提供作為多重數個輸:;匕1上:,指令 算之執行,L7你龄, 貝丁卞匕观上特疋密碼運 姑^ 士 玉數操作能夠和密碼單元择 f中斷叫從中斷627 4返回 ==標都存放在的結構暫以碼!! 中斷:回::狀:將會被保存而且該等狀態:從 制將跳轉到相應的4服::斷:η:程式控 料和控制將被清掉,以表示金錄資 式控制係被轉回到密碼:;:::::返回時’程 特殊的微指令;測; 效,該程式將對在令齡恭在十疋否有效。如果有 塊繼續進行處理, $之前的特定輸入資料區 資料和控制字元資:2元625的狀態表明金鑰( 讀取中斷發生時正在處U幹新到記憶體 和控制字元。滷 ,疋輸入貧料區塊的金鑰 ί總是包含心二:二” 早元617中金銓杳43^ J 始測忒,以決定在密碼 =金鑰資料和控制字的有效性。如 取金鑰資料和批制生_ ΐ無政,即可從記憶體讀 ,向的輪入;料區後由輸入指標暫存 鼻係在輸入資料區塊上執:載t:k而且指定密碼運 執仃另外,輸入資料區塊 32 1272815 的載入和指定密碼運算的 資料和控制字元資料。 丁、’不需要先载入金鑰 行新二= ;和控制字元,那麼在執 同金鑰資料和控制字:資二=二立元625。使用相 被執行。在這種情碼指令也能夠 控制字元資料被輸入後清掉χ位:°匕'餘貧料和 了提高記憶體匯流排的逮度 5。例如,為 輸入資料區塊的加密/解穷八者可以將5〇〇個 條指令係可處们。。個解輪7資成料 利用密碼回授模式,輸出 640將完成密碼運算㈣ t式邏輯電路 ,二正常並允許該指 文子區塊上之區塊密碼運算序列的中間姓果,:: 夠被更新。輸出回授;式邏ίί 路64(Μ曰導檨才曰令插入到微指令流中, 第一區塊輸入資料的密碼運算時,在記护 2 人,輸出資料區塊指標乃被更改指向下二 〇 2 出資料區塊。另外,輸出回授模式 ^ 二 導微指令插入到相應的微指令流中,使 數器以表明當前輸入資料區塊上的密碼運算已鲈二 成。一個熟悉該項技術者將希望在輸出回二模 的加密操作使用一個初始化向量,其係被一第二 文區塊使用以產生一第一密文區塊。前一個宓文 作被用於初始化向量以產生一第一密文輸出^塊二 隨後,藉著第一密文輸出區塊與第一明文區塊的互 斥或以產生一第一密文區塊。第一密文輸出區塊則 33 1272815 將被回授作為加密第二明文區 量。依次類推,一輸出回等;初始化向 -輸出回授加密操作者極‘相::的元成乃係與 係由互斥的密文區㈣= 過明文區塊 密文操作則係作用於初始化,旦彻a端生別個 化向量…密文輸向里與後績的等效初始 =例中,輸出回授模式邏輯電路640識 別一扣疋輸出回授模式加密或解密操作,"The code is different. - The first group of related micro-instructions sends the password list to Π, 1 drives the cryptographic unit 617 to read the data on the η' or downloads - enters the data block and starts = 仃ΐΐ two number of password rounds An output data area-output data block is generated to the storage bus 622 for storage in the memory by the storage logic circuit 618. A related micro-instruction is sent to the other execution units 61〇, 61-2, :=4, 616 Having the execution complete the specified cryptographic operation, such as test Ε bit 629, initiating D bit 631, ^ 2 625 to indicate that the current cryptographic operation is temporarily storing n of the temporary phase 605 (eg, counting a number of registers, 31 1272815 Input text indicator register, input: off logic circuit m processing interrupt supply is provided as multiple inputs:; 匕1 on:, instruction count execution, L7 you age, betty 卞匕 上 疋 疋 疋 运 运^ Shi Yu number operation and password unit selection f interrupt call from interrupt 627 4 return == the standard is stored in the structure temporarily code!! Interrupt: back:: shape: will be saved and the status: from the system will Jump to the corresponding 4 service:: off η: The program control and control will be cleared to indicate that the gold record control system is transferred back to the password: ;::::: When returning, the 'special micro-instruction; test; effect, the program will be right The age of the prince is not valid in the tenth. If there is a block to continue processing, the specific input data area and control word before $: the status of 2 yuan 625 indicates the key (when the read interrupt occurs, the U is new Memory and control characters. Halogen, 疋 input key to the poor block ί always contains the heart two: two" early yuan 617 in the gold 铨杳 43 ^ J start test 以 to determine the password = key data and The validity of the control word. If the key data and the batch _ ΐ ΐ ΐ , , , ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ ΐ Load t:k and specify the password to be transferred. In addition, input the data block 32 1272815 to load and specify the data and control character data of the cryptographic operation. D, 'do not need to load the key line new two =; and control Character, then in the same key data and control word: Zi 2 = Er Li Yuan 625. After this erotic command can also control the character data to be input, clear the : position: ° 匕 'the poor material and improve the memory bus hurdle 5. For example, the encryption / solution for the input data block The poor eight can be used to make 5 instructions. The solution is to use the password feedback mode, the output 640 will complete the cryptographic operation (4) t-type logic circuit, the second is normal and the pointer sub-area is allowed. The intermediate surname of the block cipher operation sequence on the block, :: is enough to be updated. Output feedback; type logic 64 64 64 64 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入 插入When the password is calculated, in the case of 2 people, the output data block indicator is changed to point to the next two data blocks. In addition, the output feedback mode ^ two micro-instructions are inserted into the corresponding micro-instruction stream, so that the calculator can indicate that the cryptographic operation on the current input data block has been reduced. A person familiar with the art would like to use an initialization vector for the cryptographic operation output back to the second mode, which is used by a second block to generate a first ciphertext block. The previous text is used to initialize the vector to generate a first ciphertext output block 2, followed by mutual exclusion of the first ciphertext output block and the first plaintext block to generate a first ciphertext area. Piece. The first ciphertext output block 33 1272815 will be fed back as the encrypted second plaintext area. By analogy, an output is returned, etc.; the initialization-to-output feedback encryption operator's pole 'phase:: the elementary system is the mutually exclusive ciphertext area (4) = the clear text block ciphertext operation is applied to the initialization In the example, the output feedback mode logic circuit 640 recognizes a buckle output feedback mode encryption or decryption operation, in which the ciphertext is converted to the equivalent of the post-production.
^系列以更新結構暫存器中的指標,俾確保回 二 文或雄文區塊之後續區塊予合適的等效 在可替代的實施例中,輸出回授模式邏輯電路 匕40識別一指定輸出回授模式加密或解密操作,並 =二,指令系料υ在當前明文區塊及其相應 的虽W雄、文區塊中執行一互斥操作以產生一可供下 二^,使用之等效初始化向量;2)將等效初始化向 里儲存到由初始化向量指標暫存器所指^ series to update the indicators in the structure register, to ensure that the subsequent blocks of the second or the male block are properly equivalent. In an alternative embodiment, the output feedback mode logic circuit 40 identifies a specified output. Feedback mode encryption or decryption operation, and =2, the instruction system performs a mutual exclusion operation in the current plaintext block and its corresponding W-Xiong and Wen block to generate a second, use, etc. Effect initialization vector; 2) store the equivalent initialization inward to the index indicated by the initialization vector indicator register
,置處;3)更新結構暫存器中之指標以確保回Κ 弟明文或密文區塊之後續區塊予合適的等效初始 化向量。 現在參照圖7,圖表舉例說明了一條在圖6的 微處理器内執行密碼子操作的典型微指令7〇〇的結 構曾微指令(micro instructi〇n) 7〇〇包括一個微 運异碼攔位(micro opcode field) 701,一個資料 暫,器襴位(data register field) 702 和一個暫 存器攔位(register field) 7〇3。微運算碼攔位 70 1表明了 一個要被執行的特定子操作,並且表明 34 1272815 處行子操作的至少-個階段的邏輯 以=依據本發明之密碼單元 :路耠供至少一指令,其用 指令電路包含邏輯電 :馬運开,而 (nat.ve .nstru^o,;;%' ! ^ 電路、裝置或微碼之组合,由於上)二或疋-個邏輯 發明的重點,於此不再對此:心曰:、電路並非為本 施例中,有兩種特殊值。一 H田^月4一個實 表明要從記憶體位置重取資值^载入(XL〇AD)」 料暫存器攔位702所表示的结mf址是2 定。該資料將被載入到密碼單二:η 糸由暫存器攔位703所 : 化向量)係提二Up、輪入文字資料、初始 —第二值「儲存7 X山STn二疋。微運算碼攔位701之 生的資料將要^儲存至丨)」係表明由密碼單元所產 資料暫存 二=;’其位址係* 7〇3指示數組輸出資 /把例中’暫存器攔位 ^ 〇 ^ t ,,, f f field) 704 ^ ,平兀在貝枓攔位(data 明,有關密碼iri邏輯電路存取。依據本發 撝述’將在圖8和圖9中討論。 的更七,田 來看圖 8,表 8 〇 〇 >、+、γ ^ -條載入微指令電路的;%攔? 7的格:, 令電路提供至少-指令,運r 35 1272815 而指令電路包含邏輯電路、裝置或微 ^^^(nat.ve i ns t.uc t, on )) ^ ^ ^ 電路衣置或微碼之組合,由於指令電路並非 的重:二於此不再對此作詳細說明。如前面 令”。微指令序列包含一被密碼單元執行:^ 二組第二組微指令,第二組微指令係被 U處^内密碼單元以外的其他並行功能單元執 ❿ 二:組微指♦完成諸如更新計數器、暫時暫存 :狀::Ϊ暫Ϊ器、測試和設置在機器特殊暫存器上 ^卜位几專子操作。第一組指令提供金鑰 Γί必資料到密碼單元並驅動密碼單元使生 成金餘目錄(或藝人Ρ々卜立 I生 載並加始、(或解密)輸入文字資料,及儲存於 字元資料,哉街碼單元提供載入控制 資料,、#入ϊ ί鑰或金鑰目錄,載入初始化向量 驅動密碼單元— M + t 輪入文子貧料並 八封— 執仃才曰疋的密碼運算。在一載入涔i匕 令暫存器攔位703中的值〇b〇 A =,认才曰 一批制空-z, Τ旳值UbOlO指定密碼單元载入 二制子το到他的内部控制字元 條指令是在營績μ拥—AA ^^ 甲由於廷 丰开線執仃的,暫存器階段的結構控制 :兀曰標暫存器乃被存取,以取得 =制 實體位址’二=輯;路將位址轉譯成為 取到控制字- 存载人邏輯電路從快取 叫巧匕制子兀,並將控制 704,此時控制字元已 兀放/ 1貝枓攔位 的,暫存器攔位之值0bl0() 早70。同樣 <值υ d 1 υ υ驅使密碼單元,使载入 36 1272815 在資料攔位704β k 载入、執彳hit之輸入文字資料,及隨後便 資料、役碼運算。同控制字元一樣,輸入, 3) Update the indicator in the structure register to ensure that the subsequent block of the plaintext or ciphertext block is returned to the appropriate equivalent initialization vector. Referring now to Figure 7, the diagram illustrates a typical microinstruction 7 of a microinstruction performing a codon operation in the microprocessor of Fig. 6. The microinstruction (micro instructi) 7 includes a microcoded code block. A micro opcode field 701, a data temporary field, a data register field 702, and a register field 7〇3. Micro-coded block 70 1 indicates a particular sub-operation to be performed, and indicates that at least one stage of the sub-operation of 34 1272815 is logically = crypto unit in accordance with the present invention: the path is for at least one instruction, The instruction circuit contains logic electricity: Ma Yunkai, and (nat.ve .nstru^o,;;%' ! ^ circuit, device or microcode combination, due to the above) or the focus of a logical invention, This is no longer the case: the heart: The circuit is not in this example, there are two special values. A H field ^ month 4 is a real indication that the value to be retrieved from the memory location ^ XL (AD 」 AD) The buffer address 702 represents the mf address is 2. The data will be loaded into the password list 2: η 糸 by the scratchpad block 703: chemistry vector) is two up, rounded text data, initial - second value "storage 7 X mountain STn two 疋. Micro The data generated by the operation code block 701 will be stored to 丨)"" indicates that the data produced by the cryptographic unit is temporarily stored in the second =; 'its address is * 7 〇 3 indicates the array output / the example 'in the temporary register The block ^ 〇 ^ t , , , ff field ) 704 ^ , Ping 兀 in the Bellow block (data clear, about the password iri logic circuit access. According to the present description ' will be discussed in Figure 8 and Figure 9. More seven, Tian look at Figure 8, Table 8 〇〇>, +, γ ^ - bar loaded into the micro-instruction circuit; % block 7 grid:, so that the circuit provides at least - instruction, shipped r 35 1272815 and The instruction circuit includes logic circuits, devices, or micro^^^(nat.ve i ns t.uc t, on )) ^ ^ ^ Combination of circuit placement or microcode, because the instruction circuit is not heavy: This is described in detail. As stated in the previous section. The microinstruction sequence consists of a cryptographic unit: ^ two sets of second set of microinstructions, the second set of microinstructions are executed by other parallel functional units other than the crypto unit in the U; ♦Complete such as update counter, temporary temporary storage: shape:: Ϊ Ϊ, test and set on the machine special register ^ 几 几 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 The driver password unit enables the generation of the gold balance directory (or the artist Ρ々布立I to load and add, (or decrypt) input text data, and store it in the character data, the street code unit provides the load control data, #入ϊ ί key or key directory, loading the initialization vector to drive the crypto unit — M + t to enter the text and poor stuff and eight — 仃 曰疋 曰疋 曰疋 。 。 。 。 。 在一 在一 在一 在一 在一 在一 在一 在一 在一 在一 在一 在一 在一 在一 在一 在一 在一The value in 703 〇b〇A =, recognizes a batch of null-z, Τ旳 value UbOlO specifies the crypto unit to load the second το to his internal control character bar instruction is in the performance μ — - AA ^^ A is due to the opening of the line, the structure control of the register stage: 兀The standard register is accessed to obtain the = physical address 'two = series; the way the address is translated into the control word - the loader logic circuit is called from the cache, and will control 704, at this time, the control character has been released / 1 枓 枓 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , The data block 704β k loads and executes the input text data of the hit, and then the data and the code operation. Like the control character, input
Obiof ,存在結構暫存器裏的指標被存取。值 到内部暫;Ϊ料广‘立入了'4提勒供的輸入資料將被載入 以曰:疋輸入文字資料(當管線化處理時),也可 元:別Π匕向量。值0bll〇和Oblll表示密碼單 刀 入一個金鑰或是在使用者所生成金餘目鉾 ,可以疋一應用程式、一作業系統Obiof, the indicator stored in the structure register is accessed. The value is internal to the temporary; the data is widened into the '4', and the input data will be loaded. 曰:疋 Enter the text data (when pipelined), or you can use: Values 0bll〇 and Obllll indicate that the password is entered into a key or generated by the user. You can use an application and an operating system.
:二^低位元和高位元。依據本 者土:個指定功能或指定操作的物體,使用 侗人 m丨 , •「不小哪、一機器,或- 钎曰出Ξ 在一個實施例中,使用者生成金餘后 ϊΐΐί::;建立?。在一可替代的實施例中, 成金鑰目錄是由人所建立的。: 2 ^ low bit and high bit. According to the person: a specified function or an object specified to operate, use the person m丨, • “not small, one machine, or – brazed out. In one embodiment, after the user generates gold, ϊΐΐί:: Established. In an alternative embodiment, the keyed directory is created by a person.
传將在^實施例中,暫存11項的值_〇和〇blO 元分為兩個階段’該連續的輸入戈 :二^塊:夠被管線執行。因此,* 了使兩個達In the embodiment, the value of the temporary storage of 11 items _〇 and 〇 O O O O 元 分为 分为 ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ So, * made two up
塊進行管線運作,-第-載入微指 i二:::提供了一第一輸入文字資料區 鬼&後執订一弟二载入微指令給輸入_〇提供一 字資料區塊’同時驅動密碼單元開始執行 才曰疋的密碼運算。 v 曾,!I ί彳吏用者生成金餘目錄被用來執行密碼運 公和使用者生成金錄目錄的金輸數量相對靡 的數個載入微指令將被發送到密碼單元,係用以^ 入在金餘目錄中每一回合金餘。 、 載入微指令之暫存器攔位703的所有其他值予 37 1272815 μ俅留。 一蚀,照圖9’表9〇〇係展示根據圖7的 :存微指令的暫存器攔位7 700 A少一指令,其用來指示-密碼運Ϊ 指令(native..衣置或极碼(即微指令或本機 widtive instruction^^ -ρ ^ + ^ 裝置戋矜踩人 )或疋一個邏輯電路、 ι4 U碼之組合,由於指 %纷 重點,於此不里蚪a从, 並非為本發明的 密碼單元將生^ 細說明。儲存微指令驅動 提供給儲存邏輯電路,將\解儲山存)/ f出文字資料 702指定的記憶體位址。因此 暫存攔位 邏輯電路在為其相關輸 塊:本务明,轉譯 ί令後,為特定的輸出文入微 ^暫存器攔位7〇3的值0bl心二=存= 其内部輸出-0輸出-〇暫存器將早π聯合 給儲存邏輯電路儲存。輸出的二 子區塊提供 -〇的輪入文字/it Λ出—〇的内容和提供到輸人 哭招& 子s塊係時有關聯的。同檨,夂日刀撕女 态項值OblOi,内邱於ψ 1齡士 J僳芩肢暫存 輪入-1的於 P輸出―1暫存器的内容和提供到 全铃4的輸入文字資料也是關聯的。因此, 孟輪和控制字开咨把 u此載入元 可以、51 枓之後,複數個輸入文字區#銶 了以通過以载入.輸入_丨、載入輪 又子e塊就 〜〇也可以酿卷— 〜入〇(载入·輸入 〜1、儲存·輸出-〇、载入於入彳^*)储存·輸出 如斟nrV 戟八·翰入―1、载入輪入-nf pq 始對下面兩個輸入文字 .叛入0 (開 碼微指令,#、s、A h匚鬼的缸作)的次序發送密 ^使通過密碼單元管線執行。 山 現在來看圖1 〇,依據本發明, —個典型的控制 圖表者重描述了 才。式(contr〇l word format) 38 1272815 1 000,控制字元指定了宓 字元1 000是由使用者總^馬☆運异的密碼參數。控制 密碼運算之前,其指標係王寫_到記憶體的,而在執行 暫存器所提供。因此Γ做兔:適合微處理器的結構 的微指令序列的一部分,二二所提供密碼指令相關 -密碼指令,其用來指示―二】口電路提供至少 包含邏輯電路、裝置t η π *;馬運异,而指令電路 (nat.ve .nstruct^ 置或微碼之組合,由於指= ;二電路、裳 點,於此不再對此作詳細„本發明的重 微處理器讀取包含有指標之姓,入微指令指示 換為-個實體位址’從:指標轉 元_並將控制字元2以;取;制字 (聊D)攔位10(η,:4子入70 1 000包括一個保留 1〇〇2, 一個加密/解资個金鑰大小(KSIZE)攔位 社果(IRSi 山(E/D)攔位1 003,一個中間 、、。果(IRSLT)攔位 1〇〇4,二] 攔位1 005,一個演瞀沬r Λτρλ鑰產生(KGEN) 合計數心搁二 «^〇"〇 Γ ^ # ^ ^ ^ ^ 鑰大小。在-個實完成加密或解密的金 128位元金鑰,或者鑰大小欄位或者是- 256 ^ 0 ;σ^ /V^ Γ /im ^ ί ^ " 是加密操作還是_二^位i003 1曰疋役石馬運算 記憶體内提供的m/f//棚位1 〇 〇 5表明 -的金鑰,如果是一 生成金鑰目錄還是-單 果疋一早一金鑰的話,微指令將和金 39 1272815 鑰一起發送到密碼單元,使根據演算法欄位1 006 指定的密碼演算法,驅動單元將金鑰擴展為金鑰目 錄。在一個實施例中,演算法攔位1 006指定的演算 法為到此為止討論過的資料加密標準(Data Encryption Standard, DES )演算法,三重 ( Triple-data Encryption Standard, Triple-DES) >貝异法或是進階加密標準(Advanced Encryption Standard, AES)演算法。可替換實施 例企圖包含其他的演算法,諸如r丨jndae 1密文, ^wo^i^sh密文等。回合計數欄位i〇〇7的内容依據給 疋演异法完成每一輸入文字區塊所給定的密碼回合 ,。雖然以上的密碼演算法標準指定了每一輸入文 予區塊的固定密碼回合數,但是提供回合計數搁位 〆0J允許程式師更改該標準所指定的回合數。在一 施,/,程式師可以給每個區塊指定〇到15 I二…取後,中間結果攔位1 004的内容指定一個輸 t 一 = 解密是否根據演算法攔位1006 定2 “ 11 ί ί法標準,以回合計數攔位1 007所指 項lmV -、仃者,或者該加密/解密是否根據ALG ▲貝1 ϋ ϋ 6指定的洁曾、 的回人數-> /、开去,以回合計數攔位1007指定 的口 口數執仃,而最後一回一 值而不是最終結果。一、、、口 疋 礓 每一回合中,耸夕$個熟悉該項技術者將希望在 作’除了最後二回夕合\瑪演算:都執行相同的子操 結果攔位10。4編5=外。因此’對中間 果,可允許程式師更^供,結果而不是最後結 如,可以通過在一個=仃運异法的中間步驟。例 予區塊上執行一回合加密, 1272815 $後在該相同文字區塊上執行兩回合,然後3回合 ,,以獲得累加的中間結果以驗證演算法的性能。 . 2供可編程回合數和中間結果的功能之使用者能夠 =證密碼編碼性能,檢測故障,並探究不同金鑰結 構和回合數的效用。 參A?、圖11 ,方塊圖詳細描述了依據本發明的密 碼單兀(cryptography unit) 1100。密碼單元 i 1〇〇 包括一個通過微指令匯流排1114接收密碼微指令 電路(即載入和儲存微指令)的微運算碼暫存器 U 0 3。密碼微指令電路提供至少一密碼指令,其用 _ 來指不一密碼運算,而指令電路包含邏輯電路、裝 置或微碼(即微指令或本機指令(native instruction))、或是一個邏輯電路、裝置或微碼之 組合’由於指令電路並非為本發明的重點,於此不 再對此作詳細說明。密碼單元1100也具有一控制字 凡暫存器(control word register) 11〇4、一輸入 一〇暫存器1105、及一輸入—1暫存器11〇6、一金鑰 一〇暫存器1107,一金鑰-1暫存器11〇8。資料係通 過一載入匯流排(load bus ) 1111提供給暫存器_ 1 1 04-1 1 08 ,如同在微指令暫存器(micj7〇 instruction register) 1103裏指定载入微指令内 谷。密碼單元11 〇〇也包括連接到所有的暫存器 1 1 03-1 1 08和金鑰隨機存取記憶體(keyRAM) 11〇2 的區塊後、碼邏輯電路(bl〇ck cipher logic) 11〇1。 區塊密碼邏輯電路提供一個延遲信號(stai ^ signal) 1113,並將區塊結果提供到一輸出—〇暫存 器1109和一輸出一暫存器111〇。該等輸出暫^器 , 41 1272815 110 9-1110 通過一儲存匯流排(st〇re bus) 1112 务送他們的内谷到一適合微處理器的相繼階段中。 在一個實施例中,微指令暫存器11〇3是32位元的, 而其他的暫存器1104-mo則都是128位元者。 在操作中,密碼微指令順序地傳送給微指令新 ,器1103,同時控制字元暫存器11〇4或該等輸二 =ι!«10Γη°6,的一個’或該等金鑰暫存器 1 1 07-1 1 08中的一個所指定資料也被發送。在參照 圖8和圖9所討論的實施例中,一控制字元首先通The block performs pipeline operation, - the first-loading micro-finger i two::: provides a first input text data area ghost & after the binding one brother two load micro-instruction to input _ 〇 provide a word data block ' At the same time, the cryptographic unit is driven to start the cryptographic operation. v Once, I 彳吏 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成 生成Take ^ into each of the alloys in the Jin Yu directory. All other values of the scratchpad block 703 loaded into the microinstruction are 37 1272815 μ retention. An eclipse, according to Figure 9 'Table 9 展示 shows according to Figure 7: the micro-instruction register stall 7 700 A less one instruction, which is used to indicate the - password operation command (native.. clothing or The extreme code (that is, the micro-instruction or the native friendly instruction^^ -ρ ^ + ^ device 戋矜 step on the person) or a combination of a logic circuit, ι4 U code, because of the focus of the %, this is not a ,, from It is not a description of the cryptographic unit of the present invention. The storage microinstruction driver is provided to the storage logic circuit to store the memory address specified by the text file 702. Therefore, the temporary block logic circuit is in the relevant input block: the transaction, after the translation, for the specific output text into the micro-servo block 7 〇 3 value 0 bl heart == stored = its internal output - The 0 output - 〇 register will be stored in the storage logic circuit as early as π. The output of the second sub-block provides - the enclosing round text /it 〇 - the content of the 和 is associated with the input of the crying & sub s block. At the same time, the Japanese knives tear the female state value OblOi, Nei Qiu Yu ψ 1 士 僳芩 J 僳芩 暂 暂 暂 -1 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于 于The information is also relevant. Therefore, the Meng wheel and the control word can be used to load u. After 51, the plural input text area #銶 is passed to load. Input _丨, load wheel and sub-e block~〇 Can be brewed - ~ 〇 (loading · input ~ 1, storage · output - 〇, loading in 彳 ^ *) storage · output such as 斟 nrV 戟 八 · John into -1, loading round - nf pq The transmission of the order of the following two input characters. The intrusion 0 (opening micro-instruction, #, s, A h 匚 ghost cylinder) is transmitted through the crypto unit pipeline. Mountain Looking at Figure 1 〇, in accordance with the present invention, a typical control charter re-described. (contr〇l word format) 38 1272815 1 000, the control character specifies the 密码 character 1 000 is the password parameter of the user's total 马 ☆. Before the control of the cryptographic operation, its indicator is written by the _ to the memory, and is provided by the execution register. Therefore, a rabbit: a part of a microinstruction sequence suitable for the structure of the microprocessor, and a password instruction related-cryptographic instruction provided by the second two, which is used to indicate that the "second" port circuit provides at least a logic circuit, the device t η π *; The horse is different, and the command circuit (nat.ve.nstruct^ or microcode combination, because of the finger =; two circuits, the pin point, no longer detailed here) „the invention of the heavy microprocessor read contains The surname of the indicator, the instruction to the micro-instruction is changed to - the physical address 'from: the indicator to the element _ and the control character 2 to; take; the word (talk D) block 10 (η,: 4 sub-in 70 1 000 includes a reserved 1〇〇2, an encryption/decryption key size (KSIZE) to block the fruit (IRSi Mountain (E/D) block 1 003, an intermediate, and (IRSLT) block 1 〇〇4,2] Intercept 1 005, a deductive r Λτρλ key generation (KGEN) combined counts two feet «^〇"〇Γ ^ # ^ ^ ^ ^ key size. In-one complete encryption or The decrypted gold 128-bit key, or the key size field is either - 256 ^ 0 ; σ^ /V^ Γ /im ^ ί ^ " is the encryption operation or _ two ^ i003 1曰The m/f// shed 1 〇〇 5 indicates the key of the 石 石 运算 运算 运算 运算 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 表明 39 39 39 39 39 39 39 39 39 39 39 39 39 The 1272815 key is sent together to the crypto unit so that the driver unit expands the key into the key directory according to the cryptographic algorithm specified by algorithm field 1 006. In one embodiment, the algorithm specified by algorithm block 1 006 is Data Encryption Standard (DES) algorithm, Triple-data Encryption Standard (Tri-DES) > Beyond Method or Advanced Encryption Standard (AES) calculus discussed so far The alternative embodiment attempts to include other algorithms, such as r丨jndae 1 ciphertext, ^wo^i^sh ciphertext, etc. The content of the round count field i〇〇7 is based on the implementation of the different method. Enter the password round given by the text block. Although the above cryptographic algorithm standard specifies the number of fixed passwords for each input to the block, providing the round count to the 〆0J allows the programmer to change the standard. Place The number of rounds. In one application, /, the programmer can assign each block to I 15 I 2... After taking the intermediate result, the content of the block 1 004 specifies a loss t = = whether the decryption is blocked according to the algorithm 1006 fixed 2 "11 ί ί method standard, in the round count block 1 007 refers to the item lmV -, the latter, or whether the encryption / decryption according to ALG ▲ Bay 1 ϋ ϋ 6 specified Jie Zeng, the number of return - > /, open, the number of mouths specified by the round count block 1007, and the last one value instead of the final result. In each round of the first and second rounds, those who are familiar with the technology will hope to be doing 'except the last two eves and calculus: all perform the same sub-operation results. Blocks 10. 4 = outside. Therefore, the 'intermediate fruit' allows the programmer to provide more, and the result, rather than the final result, can be passed in the middle step of a different method. For example, a round of encryption is performed on the block, and after 1272815$, two rounds are performed on the same text block, and then three rounds are obtained to obtain the accumulated intermediate result to verify the performance of the algorithm. 2. The user of the function for programmable rounds and intermediate results can verify password coding performance, detect failures, and explore the utility of different key structures and rounds. Referring to A?, Figure 11, the block diagram details the cryptography unit 1100 in accordance with the present invention. The cryptographic unit i 1 包括 includes a micro-opcode register U 0 3 that receives the cryptographic microinstruction circuitry (i.e., loads and stores microinstructions) through the microinstruction bus 1114. The cryptographic microinstruction circuit provides at least one cryptographic command, which uses _ to refer to a cryptographic operation, and the instruction circuit includes a logic circuit, a device or a microcode (ie, a microinstruction or a native instruction), or a logic circuit. Combination of device or microcode 'Because the instruction circuit is not the focus of the present invention, it will not be described in detail herein. The cryptographic unit 1100 also has a control word register 11 〇 4, an input 〇 register 1105, and an input 1-3 register 11 〇 6 , a key 〇 register 1107, a key -1 register 11 〇 8. The data is supplied to the scratchpad _ 1 1 04-1 1 08 via a load bus 1111 as if the microinstruction register is specified in the microinstruction register 1103. The cryptographic unit 11 〇〇 also includes a block logic circuit (bl〇ck cipher logic) connected to all the registers 1 1 03-1 1 08 and the key random access memory (keyRAM) 11〇2. 11〇1. The block cipher logic circuit provides a delay signal (stai ^ signal) 1113 and provides the block result to an output - 〇 register 1109 and an output a register 111 〇. The output devices, 41 1272815 110 9-1110, send their valleys through a storage bus (11) to a successive stage suitable for the microprocessor. In one embodiment, the microinstruction register 11〇3 is 32-bit, while the other registers 1104-mo are all 128-bit. In operation, the cryptographic microinstruction is sequentially transferred to the microinstruction new device 1103, while controlling the character temporary register 11 〇 4 or the input of a = ι! «10 Γ η ° 6, a ' or such a key temporarily A specified material in the memory 1 1 07-1 1 08 is also transmitted. In the embodiment discussed with reference to Figures 8 and 9, a control character is first passed
過一載入微指令載入到控制字元暫存器11〇4中。狹 後通過後續載入微指令載入金鑰或金鑰目錄。如; 二:2!么元的金錄被載入,一載入微指令即可提 ^、七私疋暫存器金鑰—〇 11〇7。如果大於128位元的 二=被載入,那麼一载入微指令除了提供給指定 金鑰-0 11〇7外,亦同時提供暫存器金鑰4 目奸、Γί ^之—載人微指令。如果使用者生成金鑰 二錄被載入,則暫存器金鑰_〇 11〇7所指定的後After a load microinstruction is loaded into the control character register 11〇4. The key or key directory is loaded by a subsequent load microinstruction. Such as; 2: 2! The gold record of the yuan is loaded, a micro-instruction can be added to the ^, seven private account register key - 〇 11〇7. If the second = greater than 128 bits is loaded, then a load micro-instruction is provided in addition to the specified key -0 11〇7, and also provides the scratchpad key 4 instruction. If the user generates a key, the second record is loaded, and the scratchpad key _〇 11〇7 is specified.
J入微指令將被提供。被載入的金鑰目錄裏的每個 =鑰都被依次儲存在金鑰隨機存取記憶體丨1〇2 俾在他們相應的密碼回合中使用。繼這之後, 文字貧料(如果不需要初始化向量)冑被載入^ 入-1暫存器1106。如果需要初始化向量,它將^ =載,微指令被載入到輸入」暫存器i i 〇6。作二 俤ί入公暫存器1105的載入微指令驅動密碼單元 輸入文字資料到輸入_〇暫存器u〇The J input microinstruction will be provided. Each key in the loaded key directory is stored in the key random access memory 丨1〇2 依次 in their corresponding password rounds. Following this, the text poor (if no initialization vector is needed) is loaded into the -1 scratchpad 1106. If the vector needs to be initialized, it will be loaded and the microinstruction will be loaded into the input "storage" i i 〇 6. Load the micro-instruction drive password unit into the public register 1105. Enter the text data into the input_〇 register u〇
=二=字/4存器1104提供的參數,使用L 1的初始化向1或兩個輪入暫存器1 1 05-1 1 06 (如 42 I272815 11 nt ΐ貧料係ί管線處理)以執行暫存器輸入~o 戶斤入文子資料的密碼回合。在收到輸入-0 1105 通、二2載入微指令之後’區塊密碼邏輯電路"〇1 =控制f兀的内容開始執行所指定的密碼運算。 個單獨的金鑰需要被擴展,區塊密碼邏 】 在金鑰目錄裏生成每個金鎗並且把他: ί 隨機存取記憶體1102裏。無論是否區塊 憶體載入,第一回合金鎗係被快取在該; 3電路1101内,以便該第-個區塊密碼回 二…而要存取金鑰隨機存取記憶體1102即可 仃。一旦起動,區塊密碼邏輯電路1101乃在至少— ==字ΪΪ:續執行規定的密碼運算直到該操 2, 的密碼學演算法所要求的那樣 =五鑰蚣機存取記憶體1102中連續截取回合 ^^密―碼單元1100在指定的輸入文字區塊上執行二= two = word / 4 memory 1104 provides parameters, using L 1 initialization to 1 or two wheeled into the register 1 1 05-1 1 06 (such as 42 I272815 11 nt ΐ lean system ί pipeline processing) Execute the scratchpad input ~o to enter the password round of the text data. After receiving the input-0 1105 pass and the 2 2 load microinstruction, the contents of the 'block cipher logic circuit' 〇1 = control f 开始 start executing the specified cryptographic operation. A separate key needs to be extended, block cipher logic] Generate each gun in the key directory and put him: ί in random access memory 1102. Regardless of whether the block memory is loaded, the first alloy gun is cached in the 3 circuit 1101, so that the first block password is returned to the second... and the key random access memory 1102 is accessed. Awkward. Once activated, the block cipher logic 1101 is contiguous in at least the === word ΪΪ: continuation of the specified cryptographic operations until the cryptographic algorithm of the operation 2, = five-key down access memory 1102 Intercepting the round ^^ secret-code unit 1100 performs two on the specified input text block
婉IΓ的區塊㈣運算。連續的輸人文字區塊即可 由=應且連續的載入和儲存微指令執行加密或解 ;料(Ά存令被執行後,如果被指定的輸出 ϊΠΛ或輸出-1)還沒完全產生,此時區塊 ;碼邏軻電路1101乃產生延遲信號1113。當輸出 ^料產生並被置入一相應的輸出暫存器11〇9_ιιι〇 ^ 存ϋ 1109-1110 #内容即被移轉至儲存匯流 、現在看圖12,一方塊圖說明了根據本發明使用 進階加密標準執行密碼運算的—個區塊密碼邏輯電 路(block Cipher logic) 1 200的實施例。區塊密 43 1272815 碼邏輯電路1 2 ο 〇包括通過匯流排1 211 -1 21 4和匯流 排1216-1218連接到一回合引擎控制器(r〇und engine controller) 121〇 的回合引擎(r〇und engine) 1 220。回合引擎控制器121〇存取一微指令 暫存裔(micro instruction register) 1201,控 制子元暫存器(control word register ) 1 202,金 錄〇暫存态1203’以及金鑰-1暫存器1204以存取 指示密碼運算的金鑰資料、微指令和參數等。輸入 暫存器(input register) 1 205-1 206的内容被提 供給回合引擎1 220及回合引擎122〇將相應的輸出 文字提供給輸出暫存器1 207 一 12〇8。輸出暫存器 1207- 1 208通過匯流排1216 —1217連接到回合引擎 控巧^ 1 21 0,以確保回合引擎控制器能夠存取每個 連續岔碼回合的結果,其係通過匯流排ΝΕχτ丨N丨2】8 為一下一個密碼回合提供給回合引擎122〇。金鑰隨 機存取記憶體(未圖示)的金鑰通過匯流排1215被 存取。加密/解密(ENC/DEC)信號1211驅動回合 引擎使用子操作執行加密(例如8 — βοχ)或解密(例 如倒置S-Box)。回合計數(RNDC〇N)匯流排1212 的内容驅動回合引擎122〇執行一第一進階加密標 準=合,一中間進階加密標準回合或者最後的進階 加密標準回合。金鑰產生(GENKEY)信號1214被用 ^指導回合引擎1 220使根據匯流排1213所提供的 金鑰生成一金鑰目錄。當它的相應回合被執行時, 金鑰匯流排1213乃提供給回合引擎122〇每一人 的金鑰。 回合引擎1 220包括連接到一第一暫存器暫存 1272815 =。1 222上的第一金鑰xor邏輯電路1221。第一 係連接到s_Bqx邏輯電路1 223,而s 邏輯電路㈣則係連接到移列邏輯電路(ShiftR〇w 一〇^ic) 1224上。移列邏輯電路1 224係連接到一第 :、、e存态,存—1 1 225處。第二暫存器1225則連接 邏輯電路(Mlx c〇lumn 1〇gic) 122 電路,•連接到一第三暫存器暫存」 1227。廷些在上面討論的進階加密標 中的第-金錄邏輯電路1221,s_B〇x邏輯=婉IΓ block (four) operation. Continuous input text blocks can be encrypted or solved by = should and continuously load and store micro-instructions; after the storage command is executed, if the specified output or output -1 is not fully generated, At this time, the block; code logic circuit 1101 generates a delay signal 1113. When the output material is generated and placed into a corresponding output register 11〇9_ιιι〇^ ϋ 1109-1110 #Content is transferred to the storage confluence, now looking at Figure 12, a block diagram illustrates the use according to the present invention An embodiment of a block cipher logic 1 200 that performs advanced cryptographic operations on cryptographic operations. Block dense 43 1272815 code logic circuit 1 2 ο 〇 includes a turn engine connected to a turn engine controller (r〇und engine controller) through bus bars 1 211 -1 21 4 and bus bars 1216-1218 (r〇 Und engine) 1 220. The round engine controller 121 accesses a micro instruction register 1201, a control word register 1 202, a gold record temporary state 1203', and a key-1 temporary storage. The device 1204 accesses the key data, microinstructions, parameters, and the like indicating the cryptographic operations. The contents of the input register 1 205-1 206 are supplied to the round engine 1 220 and the round engine 122, and the corresponding output text is supplied to the output registers 1 207 - 12 〇 8. The output registers 1207-1 208 are connected to the round engine controllers through the busbars 1216-1217 to ensure that the round engine controller can access the results of each successive weight round, which is through the busbars ΝΕχτ丨N丨2]8 is provided to the round engine 122 for the next password round. The key of the key random access memory (not shown) is accessed through the bus 1215. Encryption/decryption (ENC/DEC) signal 1211 drives the round engine to perform encryption (eg 8 - βοχ) or decryption (eg inverted S-Box) using sub-operations. The content of the round count (RNDC 〇 N) bus 1212 drives the round engine 122 to perform a first advanced encryption standard = combined, an intermediate advanced encryption standard round or a final advanced encryption standard round. A key generation (GENKEY) signal 1214 is used to direct the round engine 1 220 to generate a key directory based on the keys provided by the bus 1213. When its corresponding round is executed, the key bus 1213 is provided to the round engine 122 for each person's key. Round engine 1 220 includes a connection to a first scratchpad temporary storage 1272815 =. The first key xor logic circuit 1221 on 1 222. The first system is connected to the s_Bqx logic circuit 1 223, and the s logic circuit (4) is connected to the shift logic circuit (ShiftR〇w 〇^ic) 1224. The shift logic circuit 1 224 is connected to a :, , e, and stored at -1 1 225. The second register 1225 is connected to a logic circuit (Mlx c〇lumn 1〇gic) 122 circuit, • connected to a third register temporary storage 1227. The first-gold record logic circuit 1221, s_B〇x logic = in the advanced encryption target discussed above.
移^輯電路1 224及混攔邏輯電路1 226係 兩入文字貧料上執行與他們名稱相同的子操 Π邏輯電路1226在中間回合期間需要通過全鑰 加外m _ Λ々 輸貧料上執行進階 ^二裇皁X0R功迠。第一金鑰邏輯電路122i,s_b〇xThe shift circuit 1 224 and the hash logic circuit 1 226 perform the same operation of the sub-operation logic circuit 1226 with the same name as they need to pass the full key plus the external _ Λ々 on the poor material during the intermediate round Perform advanced 2 裇 soap X0R 迠. First key logic circuit 122i, s_b〇x
ί t ?6Π3二移列邏輯電路1 2 2 4,及混欄邏輯電 也用來在解密期間通過加密/解密信號1 空官來執行他們相應的逆進階加密標準子操^。一 位熟悉該項技術者希望根據由控制字元 的内容減的特殊區塊加密模式,使中間“ 122G°初始化向量資料(如 1 220 ) ^NEXTIN 1218提供給回合引擎 在圖1 2所示的實施例中,回合引擎 ;階,暫存侧與暫存指5之; 二門而^存_1 1 225與暫存—2 1 227則係第二階段。 ΠΓ/氕時:信號(未圖示)同步在階段之間 虽雄碼運算在一輸入資料區塊上完成 45 1272815 二,,關輸出資料即被存放到相應的輪出暫存器 出暫存二η一微指令「儲存」的執行使得一指定輸 ?'12G8的内容被提供至—儲存匯流排 V禾圖不)處。 次中:ΐί圖13,一流程圖描述了根據本發明在-發明^期間保護密碼參數狀態的方法。根據本 、二:t處理器執行指令流時,流程係在區塊 1 3 0 2 ^開始執行。指令流程並不是一定要包括一 t畏描述的密碼指令。隨後,流程處理判斷區塊 在判斷區塊1304時,做出評估以確定是 ^ ::事件(例如’可遮罩中斷,不可遮罩中斷,$ 任務切換等等)發生要求在改變當前的指 々^ (中斷處理器")去處理中斷事件。如泣 =執Ϊ區塊1 306。如果不是’流程在判斷區: 發〇 =迴圈,在此指令會繼續執行直到一次中斷事件 根據本發明,在區塊1 306時,因為 件發生,在將程式控制交給相應的中斷處理哭 前,中斷邏輯電路指引清掉旗標暫存器内的^位 兀。X位元的清除保證,當從中斷處理器返回 t果一區塊密碼運算在進行,它將被表明至少一個 斷事件在發生,並且在由輸入指標暫存器内容 指向的輸入資料區塊的區塊密碼運算繼續之 ,字元資料和金鑰資料一定要重新 處理區塊1 308。 丨艰设々丨 在區塊1 308,根據本發明,給所有包含與執行 46 1272815 區塊密碼運算有關的指標和計數哭从 被儲存到記憶體。㉟悉該項技心二構暫存器係 到中斷處理器之前,保存結構暫,轉交控制 計算裝置完成的一個典型行為。:疋,當前資料 前資料結構的目的在於整個中斷事件期:::當 化地執行。當暫存器被保存後 g :耠I、透明 1310。 /现耘即處理到區塊 在區塊1310,程式流係被移轉 ♦ 隨後流程即處理到區塊13丨2。 斷处理态。 在區塊1 31 2 ’§亥方法完成。孰枣 望圖13⑽從中斷處理器返、:後再' 1302開始。 、w俊再-人從區塊 少-:= 圖描1 會了依據本發明在至 塊上執: = 數個輸入資料區 4疋别¢5 口扠杈式畨碼運算的 二=!塊1402開始,根據本發明,在此-穷 馬才曰5相引岔碼運算使用輪出回授模式山 令的執行可以是一第—執行,也可:是:二 广中斷事件執行中斷的結果,俾 中斷處理器被執行後被傳回到密碼: 7處。、/现程隨後即處理到區塊i 404。 ’、 入i匕ίϊϊ 1404,依據本發明,記憶體内經由—輸 入扣私暫存器的内容所指向的—資料區塊係從 體被載入,並啟動一指定的穷 ,1' ° ‘二暫存為疋由‘定的特殊密碼運算(例如,加密 和和定的區塊密碼模式(例如電子碼書式、土 馬區塊串列、密碼回授、或輸出回授)所決定。; 47 1272815 ί標= = = ;授模式,那麼輸入 該資η:標暫存器乃都被用來褒置 暫存^ ^輸出回授模式加密操作,輸入指桿 一扣下一個將要被加密的明文區塊。對i 輸出回授模式解密操作,輸入指標俜少 解密的密文區塊。對於輸出 :二解岔兩者,初始化向量暫存器係指向二 中的初始化向量位置處。對於一第一…己氏體 化向量位置的内容係為-初:化向量:己2 前屮ΐ始化向量位置的内容係相關於- 的-等效初始化向量。如果一解;】::、::區塊 用,子碼書式模式,那麼用以以定ΐ 二暫存器即係為一指向記憶體中二;二才曰 暫存器:流程隨後處理到判斷區塊140二編鬼的 在判斷區塊1406,一評估被用來決 ;標暫存器中設置X位元。如果2 = 在- =目錄是有效的。如果x;=控 目刖載入到密碼單元的控制字元和全 I,月 :塞t上述間接提到的那樣,參照圖13, LI:發ί時,Χ位元即被清掉。另外,:上U 的那樣,當需要載入一新 上楗到 個都必須載入時,在發送該密;目錄或兩 ^位元。在-使w旗標即清 的χ86相灾奋竑加士 文、η + ’仔的弟30位元 POPFD指令的^聊’條隨後有一條 ^禪X位兀。不過熟悉該 48 1272815 項技術者將希望在其他可替代的實施例中,其他指 令必須被用來清掉X位元。如果X位元被設置,流 程將處理區塊1412。如果X位元被清掉,流程即^ 理區塊1408。 在區塊1408,由於一被清除的X位元已經表明 一中斷事件已經發生,或者一個新控制字元和/或金 鑰貧料將被載入,因此一個控制字元乃從記憶體處 被載入。在一個實施例中,載入控制字元係阻止密 ,單元執行如上述區塊1404所述之指定密碼運 算。在這個典型的實施例中在區塊14〇4裏啟動一密 碼運算係允許通過假定利用目前載入的控制字元和 金鑰資料對複數區塊密碼運算進行優化。因此,當 前輸入資料區塊乃被載入,而且密碼運算在檢查二 斷區塊1 406中X位元的狀況前就已經開始。流程接 下來即處理區塊1 41 〇。 在區塊1410,金鑰資料(即一金鑰或一完整的 金鑰目錄從記憶體處被載入。另外,依據最新 載入的控制字兀及金鑰目錄,在區塊14〇4所述之輸 入區塊及初始化向量(或等效初始化向量)係被再 次載入並執行密碼運算。流程隨即處理區塊1412。 在區塊1412 ’被載入到區塊1404或區塊1410 中的輸入貧料區塊(當前密文區塊或當前明文區塊) 被保存到一内部暫存器TEMP。流程隨後處理區塊 1414。 在區塊1414’ 一相對應於被載入輸入區媿的輸 出區塊係被生成。對於輸出回授加密,輸入區塊係 為-明文區塊而豸出區塊則係為一相對應的密文區 49 Ϊ272815 鬼。對於輸出回授解密,輸入區塊係為一密文區塊 而輪出區塊則係為一相對應的明文區塊。流程隨後 處理區塊1416。 在區塊1416,一等效初始化向量IVEQ係通過 輸出區塊與TEMP内容互斥所產生。流程隨後處理區 塊 1418 〇 认在區塊14丨8,該等效初始化向量係被寫 給初始化向量指標暫存器IVPTR内容所指向的記憶 ,位置二因此對隨後輸入區塊所指定輪出回授模^ί t ? 6 Π 3 two shift logic circuit 1 2 2 4, and the mixed logic power is also used to perform their corresponding inverse advanced encryption standard sub-operations by encrypting/decrypting the signal 1 during decryption. A person familiar with the technique wishes to provide the intermediate "122G° initialization vector data (eg 1 220) ^NEXTIN 1218 to the round engine according to the special block encryption mode subtracted from the contents of the control character in Figure 12. In the embodiment, the round engine; the order, the temporary storage side and the temporary storage finger 5; the second door and the storage _1 1 225 and the temporary storage - 2 1 227 are the second stage. ΠΓ / 氕: signal (not shown Synchronization between the phases, although the male code operation is completed on an input data block 45 1272815 2, the output data is stored in the corresponding round-out register, and the execution of the temporary storage η-micro-instruction "storage" is executed. Make a designated lose? The content of '12G8 is provided to - the storage bus is not in the bus. In the middle: FIG. 13, a flowchart depicts a method of protecting the state of a cryptographic parameter during the invention according to the present invention. According to the present and second: t processor execution instruction flow, the flow begins at block 1 3 0 2 ^. The instruction flow does not have to include a password command that is described. Subsequently, the process processing decision block, when determining block 1304, makes an assessment to determine that the ^::event (eg, 'maskable interrupt, unmaskable interrupt, $task switch, etc.) occurs when the current finger is changed. 々^ (interrupt handler ") to handle interrupt events. Such as Weep = Block 1 306. If it is not 'process in the judgment area: 〇 = loop, in this order will continue to execute until an interrupt event according to the present invention, at block 1 306, because the piece occurs, the program control is given to the corresponding interrupt processing cry Before, the interrupt logic circuit directs the clearing of the bit 兀 in the flag register. The X-bit clear guarantee guarantees that when a block cipher operation is performed from the interrupt handler, it will be indicated that at least one break event is occurring and is in the input data block pointed to by the input pointer register contents. The block cipher operation continues, and the block data and key data must be reprocessed by block 1 308. In block 1 308, in accordance with the present invention, all of the indicators and counts associated with the execution of the 46 1272815 block cryptographic operations are stored from the memory to the memory. 35 It is a typical behavior of the control computing device to complete the structure before the interrupt handler is placed before the interrupt handler. :疋, current data The purpose of the pre-data structure is to implement the entire interrupt event period::: When the scratchpad is saved g :耠I, transparent 1310. / Immediately Processed to Block At block 1310, the program stream is moved. ♦ The flow is then processed to block 13丨2. Broken processing state. The block 1 1 2 2 ' § Hai method is completed.孰 Looking at Figure 13 (10) from the interrupt handler, after: '1302. , w Jun again - people from the block less -: = Figure 1 will be in accordance with the invention on the block: = a number of input data area 4 ¢ ¢ 5 port fork weight calculation of the two =! block Starting from 1402, according to the present invention, the execution of the round-robin feedback mode using the round-robin feedback mode may be a first execution, or may be: the result of the interruption of the execution of the second wide interrupt event After the interrupt handler is executed, it is passed back to the password: 7 places. / / The current process is then processed to block i 404. ', into i匕ίϊϊ 1404, according to the present invention, the contents of the memory via the input deduction private register are pointed to - the data block is loaded from the body and starts a specified poor, 1 ' ° ' The second temporary storage is determined by a specific special cryptographic operation (for example, encryption and definite block cipher mode (for example, electronic codebook, Tema block, password feedback, or output feedback). 47 1272815 ί标 = = = ; grant mode, then input the capital η: the standard register is used to set the temporary storage ^ ^ output feedback mode encryption operation, input finger one button will be encrypted next Plaintext block. For the i output feedback mode decryption operation, the input indicator reduces the decrypted ciphertext block. For the output: two solutions, the initialization vector register points to the initialization vector position in the second. The content of the first...hexurization vector position is - initial: chemical vector: the content of the pre-initial vector position is related to the - equivalent initialization vector. If a solution;]::,: : Block, sub-codebook mode, then used to fix The register is a pointer to the memory 2; the second register: the process is subsequently processed to determine the block 140 and the second is in the decision block 1406, an evaluation is used to determine; the register is set in the register X bit. If 2 = is valid in the -= directory. If x;= control is loaded into the control unit of the crypto unit and all I, month: plug t as mentioned above, refer to Figure 13, LI: When the ί is sent, the Χ bit is cleared. In addition, as in the case of U, when it is necessary to load a new upload, all must be loaded, and the secret is sent; the directory or two bits. In the - flag of the w flag, the χ86 phase of the disaster, Jia Shiwen, η + 'Aberdeen's 30-bit POPFD instruction ^ chat' article followed by a ^ Zen X position 不过. But familiar with the 48 1272815 technology It will be appreciated that in other alternative embodiments, other instructions must be used to clear the X-bit. If the X-bit is set, the process will process block 1412. If the X-bit is cleared, the flow is processed. Block 1408. At block 1408, since a cleared X bit has indicated that an interrupt event has occurred, or a new control character and/or gold The lean material will be loaded, so a control character is loaded from the memory. In one embodiment, the load control character is blocked, and the unit performs the specified cryptographic operation as described in block 1404 above. In this exemplary embodiment, initiating a cryptographic operation in block 14〇4 allows optimization of the complex block cryptographic operations by assuming that the currently loaded control characters and key data are utilized. Thus, the current input data block It is loaded, and the cryptographic operation begins before checking the condition of the X bit in the second block 1 406. The flow then processes the block 1 41. In block 1410, the key data (ie, a gold) The key or a complete key directory is loaded from the memory. In addition, depending on the most recently loaded control word and key directory, the input block and initialization vector (or equivalent initialization vector) described in block 14〇4 are loaded again and the cryptographic operation is performed. The process then processes block 1412. The input lean block (current ciphertext block or current plaintext block) loaded into block 1404 or block 1410 at block 1412' is saved to an internal scratchpad TEMP. The process then processes block 1414. An output block corresponding to the input input area is generated at block 1414'. For output feedback encryption, the input block is a plaintext block and the popped block is a corresponding ciphertext area 49 Ϊ 272815 ghost. For output feedback decryption, the input block is a ciphertext block and the rounded block is a corresponding plaintext block. The process then processes block 1416. At block 1416, an equivalent initialization vector IVEQ is generated by the mutual exclusion of the output block from the TEMP content. The flow subsequent processing block 1418 recognizes the block 14丨8, and the equivalent initialization vector is written to the memory pointed to by the content of the initialization vector indicator register IVPTR, and the position 2 is therefore returned to the round specified by the subsequent input block. Modeling ^
遂碼運异的執行將使用適合的等效初始化向量。流 程然後處理區塊1420。 ;,L 、區塊1412、1414、1416及1418内所描述的步 $被要求保證在一個狀態,其係允許使用區塊密碼 輸出回授模式的一密碼指令的執行隨時被打斷。 ^,在一實施例中,一頁面出錯在一密碼指令的 行期間係可在任一點發生。 九在區塊丨420,所生成的輸出區塊係被儲存到印 憶體。流程然後處理區塊1422。 °The implementation of the weight transfer will use the appropriate equivalent initialization vector. The process then processes block 1420. ; , L, the steps $1 described in blocks 1412, 1414, 1416, and 1418 are required to be guaranteed to be in a state that allows the execution of a cryptographic instruction that uses the block cipher output feedback mode to be interrupted at any time. In one embodiment, a page fault can occur at any point during the line of a password command. Nine in block 丨420, the generated output block is stored in the print memory. The process then processes block 1422. °
〜在區塊I 422,輸入和輸出區塊指標暫存器的 谷被修改成指向下一個輸入和輸出資料區塊。 外,區塊計複數個暫存器的内容係被修改,以表= 在當前輸入資料區塊上密碼運算的完成。在又~ At block I 422, the valleys of the input and output block indicator registers are modified to point to the next input and output data block. In addition, the contents of the block count register are modified to show the completion of the cryptographic operation on the current input data block. In again
所討論的實施例中,區塊計複數個暫存器是 J 的。不過熟悉該項技術者將希望可替代實施^ = 塊計數暫存器内容之操作和測試也可容許輪入文, 區塊的管線化執行。流程隨後處理行判二 1424。 J 疋&塊 50 1272815 在判定區塊1426’ 一評估被用來決定是否一個 輸入資料區塊待被執行。在這裏描述的實施例中, 為說明性的目的,區塊計數器被用來決定它是否等 於零。如果沒有區塊待被執行,流程即處理區塊 1428。如果一區塊待被執行,流程乃開始處理區塊 在區塊1426,由輸入指標暫存器内容和初始化 向量所指向的下-輸入資料塊及其等效初始化向量 乃被載入。流程然後處理區塊丄41 2。 在區塊1428,該方法處理完成。 熟悉該項技術者將希望區塊U16、h18、 1420、1422及1424所討論的步驟能沿著他們的特 殊流動路逕,以不同的次序發生或者他們能並行發 生0 雖J本lx明和匕的目標、特徵和優勢已經被詳 細描述,但是其他實施例也應被本發明所包含。例 如,本發明對與X86結構相容的實施例已經進行了 詳細討論。但是,這樣的討論方式,是因為χ86社 構被廣泛地理解,因此提供一充足的手段以學習本 么明本發明仍然包括諸如powerpc: 、mips及苴 類似者的其他指令集架構以及其他完全是新的指^ 集架構相適應的實施例。 本發明尚包含在一計算系統元件中而非在 理器本身中密碼運算的執行。例如,依據本發明密 Ϊ易地在一密碼單元實施例"皮使用,那 、,非像械處理裔内的積體電路那樣必須作為電腦 統一部分使用。預期本發明的實施例將被集成到一 1272815 微處理器周圍的— 者作為執行密碼運曾: =、、且(例如,北橋、南橋)或 係從一個主微處理=六级f處理器,在此密碼指令 應用於嵌入式控制二^、、、s该處理器。預計本發明將 陣列處理器和用工於器、信號處理器、 成的實施例。這Γ岔碼運算所必須的元件組 内的-力侧作為在一個通信系統 功率的選擇以執行密碼運算確共-:成:、低 理器。 、一了選擇處理元件係上面所述之處 另外,儘管本發明筏、, _ 述,但是口兩改辦鈴’、128位兀區塊加以描 制字元暫存器的大小就可以眚二枓、金鑰和控 而且,雖然資料力1;準見番Λ區塊大小。 =加密標準在本發明有顯著的描述,二月丰: =上發明也包括較小知名的區塊密碼演 mars區塊密碼演算法、Rijndaei區塊密碼演曾In the embodiment discussed, the block counts a number of registers that are J's. However, those skilled in the art will hope that the operation and testing of the contents of the block count register can be implemented instead of the round-robin, pipelined execution of the block. The process then processes the second sentence 1424. J 疋 & block 50 1272815 An evaluation at decision block 1426' is used to determine if an input data block is to be executed. In the embodiment described herein, the block counter is used to determine if it is equal to zero for illustrative purposes. If no blocks are to be executed, the process processes block 1428. If a block is to be executed, the process begins processing the block. At block 1426, the lower-input data block and its equivalent initialization vector pointed to by the input pointer register contents and the initialization vector are loaded. The process then processes the block 丄 41 2 . At block 1428, the method is processed. Those familiar with the technology will hope that the steps discussed in blocks U16, h18, 1420, 1422, and 1424 can occur along their particular flow paths, in different orders, or they can occur in parallel, although the goal of J. The features, advantages and advantages have been described in detail, but other embodiments are also encompassed by the present invention. For example, the present invention has been discussed in detail for embodiments that are compatible with the X86 architecture. However, this way of discussion is because the χ86 community is widely understood, so providing a sufficient means to learn that the invention still includes other instruction set architectures such as powerpc:, mips, and the like, and others are completely A new embodiment of the architecture is adapted. The present invention also encompasses the execution of cryptographic operations in a computing system component rather than in the processor itself. For example, in accordance with the present invention, in a cryptographic unit embodiment, it is necessary to use it as a unified part of the computer, as is the case with integrated circuits within the genre. It is contemplated that embodiments of the present invention will be integrated around a 1272815 microprocessor as an execution password: =, and (eg, Northbridge, Southbridge) or from a primary microprocessor = a six-level f processor, In this password command is applied to the embedded control device, the processor. The present invention is expected to be an array processor and a processor, a signal processor, and an embodiment. The force side within the component group necessary for this weight operation is selected as the power in a communication system to perform a cryptographic operation. In addition, the selection processing component is described above. In addition, although the present invention 筏,, _ 述, but the two mouths change the bell, 128-bit block to draw the size of the character register can be two枓, key and control and, although the data force 1; see the Panyu block size. = Encryption standard has a significant description in the present invention, February Feng: = The invention also includes smaller well-known block ciphers, mars block cipher algorithm, Rijndaei block cipher
ΐ: 〇flSh區塊密碼演算法、Blowfish區塊密J =异法、蛇區塊密碼演算法和RC6區塊密碼演算 '要充分領會的是本發明提供專用區塊密碼裝 置,,且在一個微處理器内支援一套實現的方法广 在那晨微區塊密碼運算可以通過一條單獨指 行被引動。 轨 此外,雖然本發明按照區塊密碼演算法以及對 執行區塊密碼功能的相關技術進行了描述,應該注 意到本發明完全包括除了區塊密碼以外的其他密碼 52 1272815 形式。它應該遵從:提供一條單獨指令,憑此使用 · 者能指示一相容的微處理器進行一密碼運算諸如加 - 密或者解密,在此該微處理器包括一個專用的密碼 單元,密碼單元通過指令完成被指定的密碼功二〔 而且,這裏關於回合引擎的討論提供一個2階 , 段的裝置,這樣兩輸入資料區塊就可以管線執行。 * 發明人指出其他的實施例可能多於2個階段。預期 支持更多輸入資料區塊的管線之階段劃分乃係與/一 相稱微處理器内的其他階段是一致的。 ^ a斤最後,雖然本發明被作為一支援數個區塊密碼 _ 演异法之單獨密碼單元係已經被加以討論,本發明 也包括提供和在一相容微處理器中的其他執行^元 並行連接的數個密碼單元,在此,該些密碼單元中 的每一個係用以執行一特定的區塊密碼演算法。例 如’一第一單元配置成進階加密標準,一第二單元 則配置成資料加密標準等等。 那些熟悉該項技術之人應該希望他們能容易使 用揭示明確的概念和實施例,以作為完成本發明的 目的基礎設計或者修改其他結構,而依此所進行之 鲁 各種改變、替代和變化係均未脫離本發明所附申請 專利範圍所界定之精神及範圍。 明 【圖式簡單說明】 圖1係說明當前密碼應用之示意圖。 圖2係描述執行密碼運算技術之示意圖 的微處 圖3係為依據本發明用以執行密碼運算 理器裝置之示意圖。 53 !272815 圖4係為依據本發明 意圖。 月 <破在碼指令實施例之示 圖5係為依據圖4的微宓瑪炎人_ 密碼模式的數值表。’铽山碼▲令說明典型區塊 圖6係詳細描述依據本 處理器内密碼單元之方塊圖:月在個χ86相容微 圖7係說明在圖6之微虚理哭 作的典型微指令的示意圖。-内執行密碼子操 m圖8係根據圖7的格式說明一载人A## 裔項的數值表。 戰入锨指令暫存 圖9係根據圖7的格式揭示一蚀六^ ^ 器項的數值表。 飞朽不錯存微指令暫存 ,1〇係依據本發明用以規定密碼 多歿數個的典型控制字元格式示意圖運#之山馬 圖。圖11係依據本發明密碼單元詳細描述之方塊 圖12係依據本發明說明一種區塊宓 路實施例之方塊圖,使按照進階加:準勃、私電 運算。 也知準執行密碼 本圖13係依據本發明描述在一中斷事件 一看密碼參數狀態方法之流程圖。 圖14係依據本發明描述在一個或 事件下於複數個輸入資料區塊中完成斷的 模式密碼運算之方法的流程圖。成特疋輪出回授 【主要元件符號說明 10 〇 方塊圖 101 第一電腦工作 站 54 第二電腦工作站 103 第三電腦工作站 筆記本電腦 105 局域網路 網路播儲存設備 107 第一路由器 無線網路由器 109 無線網路 廣域網路 111 第二路由器 加密/解密應用程 方塊圖 201 微處理器 作業系統 203 應用記憶體 密碼金鑰產生程式 205 金錄目錄 區塊加密程式 207 區塊解密程式 初始化向量 209 密碼參數 明文區塊 211 密文區塊 方塊圖 301 微處理器 指令暫存器 303 轉譯邏輯電路 微指令佇列 305、 306 微指令入口 暫存器組 308-31 3 暫存器 載入邏輯電路 315 資料快取 密碼單元 317 儲存邏輯電路 寫回邏輯電路 319 記憶體匯流排 作業系統 321 系統記憶體 密碼指令 323 初始控制字元 初始金錄或金錄目 325 初始化向量 輸入文字區塊 327 輸出文字區塊 執行邏輯電路 55 微後、碼指令 401 重複前置欄位 403 區塊密碼模式欄位 500 X 8 6相容微處理器 601 轉譯邏輯電路 603 微碼唯讀記憶體 605 定址階段 607 執行階段 609 整數單元 611 浮點單元 613 多媒體延伸集單元 615 串流延伸集單元 617 儲存階段 619 載入匯流排 621 儲存匯流排 624 X位元 626 軟體及硬體中斷信 628 E位元 630 D位元 632 輪出回授模式邏輯 可選擇性前置攔位 運异碼欄位 表 擷取邏輯電路 轉譯器 暫存器階段 載入階段 微指令彳宁列 微指令彳宁列 微指令佇列 微指令彳宁列 密碼單元 寫回階段 延遲信號 旗標暫存器 中斷邏輯電路 機器特定暫存器 特性控制暫存器 執行邏輯電路 微指令 資料暫存器攔位 資料攔位 表 &制字元 701 微運算碼攔位 703 暫存器攔位 900表 1001保留欄位 56 1272815 區塊 區塊 區塊 區塊 判斷區塊 1 Ο Ο 2金鑰大小攔位 1 Ο Ο 4中間結果攔位 I 006演算法攔位 II 0 0密碼單元 11 0 2金鍮隨機存取記,丨 II 0 4控制字元暫存器 1106輸入-1暫存器 1108金錄-1暫存器 1110輸出-1暫存器 III 2儲存匯流排 1114微指令匯流排 1 2 01微指令暫存器 1203金錄-〇暫存器 1205-1206輸入暫存哭 1210回合引擎控制哭 mm匯流排 1221第一金鑰XOR邏輯 電路 1223 S-Box邏輯雷敗 1 225第二暫存器暫存一丄 1 227第三暫存器暫存一 2 1302 1306 1310 1402 1406 1 0 0 3加密/解密攔位 1 0 0 5金瑜產生攔位 1 0 0 7回合計數攔位 1101 &塊密碼邏輯電路 1103微運算碼暫存器 1105輸入—〇暫存界 1107金錄一〇暫存器 1109輸出—〇暫存哭 1111載入匯流排 111 3延遲信號 1 200區塊密碼邏輯電路 1 2 0 2控制字元暫存哭 1204金餘-1暫存哭 1 207-1 208輪出暫存器 1 211 -1 214匯流排 1 220回合引擎 1222第一暫存器暫存〜〇 12 2 4移列邏輯電路 1226混搁邏輯電路 1 3 0 4判斷區塊 1 308區塊 1 31 2區塊 1 4 0 4區塊 1408區塊ΐ: 〇flSh block cipher algorithm, Blowfish block cipher J = different method, snake block cipher algorithm and RC6 block cipher calculus ' It is to be fully appreciated that the present invention provides a dedicated block cipher device, and in one The method of supporting a set of implementations within the microprocessor is widely used in that morning. The micro-block cryptographic operations can be motivated by a single line. In addition, although the present invention has been described in terms of block cipher algorithms and related techniques for performing block cipher functions, it should be noted that the present invention fully includes other forms of ciphers other than block ciphers 52 1272815. It should be followed by: providing a separate instruction by which a user can instruct a compatible microprocessor to perform a cryptographic operation such as add-to-dense or decryption, where the microprocessor includes a dedicated cryptographic unit, and the cryptographic unit passes The instruction completes the specified cryptogram 2 (and, here, the discussion of the round engine provides a 2nd-order, segmental device so that the two input data blocks can be executed in the pipeline. * The inventors point out that other embodiments may have more than two stages. It is expected that the phase division of the pipeline supporting more input data blocks is consistent with the other phases in the / commensurate microprocessor. ^ a kg Finally, although the invention has been discussed as a separate cryptographic unit supporting a number of block ciphers, the invention also includes providing other executions in a compatible microprocessor. A plurality of cryptographic units connected in parallel, wherein each of the cryptographic units is used to perform a particular block cipher algorithm. For example, 'a first unit is configured as an advanced encryption standard, and a second unit is configured as a data encryption standard or the like. Those skilled in the art should be able to use the disclosed concepts and embodiments as a basis for accomplishing the purpose of the invention, or to modify other structures, and the various changes, substitutions, and variations are The spirit and scope of the invention as defined by the appended claims. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a schematic diagram showing the current password application. Figure 2 is a schematic diagram showing a schematic diagram of a technique for performing cryptographic operations. Figure 3 is a schematic diagram of a cryptographic processor device in accordance with the present invention. 53 !272815 Figure 4 is intended in accordance with the present invention. Month <Breakfast in the Code Command Embodiment FIG. 5 is a numerical table according to the micro gamma _ crypto mode of FIG. '铽山码▲令 illustrates the typical block diagram 6 is a detailed description of the block diagram according to the crypto unit in the processor: month in a χ86 compatible micrograph 7 is a typical micro-instruction in Figure 6 Schematic diagram. - Execute the coke operation inside. Figure 8 is a numerical table for describing a person A## by the format of Fig. 7. The warfare instruction temporary storage Fig. 9 is a numerical table for revealing an eclipse item according to the format of Fig. 7. It is a good example of the temporary control of the micro-instruction. Figure 11 is a block diagram showing a detailed description of a cryptographic unit in accordance with the present invention. Figure 12 is a block diagram showing an embodiment of a block circuit in accordance with the present invention, which is implemented in accordance with an advanced scalar and private power operation. Also known as a quasi-execution password. Figure 13 is a flow diagram showing a method of viewing a cryptographic parameter state in an interrupt event in accordance with the present invention. Figure 14 is a flow diagram depicting a method of performing a broken mode cryptographic operation in a plurality of input data blocks under one or event in accordance with the present invention.疋特疋轮出回回 [Main component symbol description 10 〇 block diagram 101 first computer workstation 54 second computer workstation 103 third computer workstation laptop 105 LAN road network broadcast storage device 107 first router wireless network router 109 wireless Network Wide Area Network 111 Second Router Encryption/Decryption Application Block Diagram 201 Microprocessor Operating System 203 Application Memory Password Key Generation Program 205 Gold Record Directory Block Encryption Program 207 Block Decryption Program Initialization Vector 209 Password Parameter Clear Text Area Block 211 ciphertext block block diagram 301 microprocessor instruction register 303 translation logic circuit micro-instruction queue 305, 306 micro-instruction entry register group 308-31 3 register load logic circuit 315 data cache password Unit 317 Storage Logic Write Back Logic 319 Memory Bus 321 Operating System Memory Password Command 323 Initial Control Character Initial Gold Record or Gold Record 325 Initialization Vector Input Text Block 327 Output Text Block Execution Logic Circuit 55 Micro, code command 401 Repeat Pre-Field 403 Block Password Mode Field 500 X 8 6 Compatible Microprocessor 601 Translation Logic Circuit 603 Microcode Read-Only Memory 605 Addressing Phase 607 Execution Phase 609 Integer Unit 611 Floating-Point Unit 613 Multimedia Extension Unit 615 Streaming extension unit 617 Storage stage 619 Loading bus 621 Storage bus 624 X bit 626 Software and hardware interrupt letter 628 E bit 630 D bit 632 Round-robin mode logic Selective pre-block Bit-transported code field table capture logic circuit translator register stage loading stage micro-instruction 列 列 微 micro-instruction 列 列 column micro-instruction 微 micro-instruction 列 列 crypto unit write back phase delay signal flag temporary storage Interrupt logic circuit machine specific register feature control register register execution logic circuit microinstruction data register register data interception table & word element 701 micro operation code block 703 register block 900 table 1001 reserved Field 56 1272815 Block Block Block Block Judgment Block 1 Ο Ο 2 Key Size Block 1 Ο Ο 4 Intermediate Result Block I 006 Algorithm Block II 0 0 Unit 11 0 2 gold random access, 丨 II 0 4 control character register 1106 input -1 register 1108 gold record -1 register 1110 output -1 register III 2 storage bus 1114 micro Instruction Bus 1 2 01 Micro Instruction Register 1203 Gold Record - 〇 Register 1205-1206 Input Temporary Cry 1210 Round Engine Control Cry mm Bus 1221 First Key XOR Logic Circuit 1223 S-Box Logic Thunder 1 225 second temporary storage temporary storage 1 227 third temporary storage temporary storage 2 1302 1306 1310 1402 1406 1 0 0 3 encryption / decryption interception 1 0 0 5 Jin Yu generated interception 1 0 0 7 total Number block 1101 & block cipher logic 1103 micro-code register 1105 input - 〇 temporary memory 1107 gold record one register 1109 output - 〇 temporary cry 1111 load bus 111 3 delay signal 1 200 Block cipher logic circuit 1 2 0 2 control character temporary storage crying 1204 Jin Yu-1 temporary storage crying 1 207-1 208 round out register 1 211 -1 214 bus 1 220 round engine 1222 first register Temporary storage ~ 〇 12 2 4 shifting logic circuit 1226 mixing logic circuit 1 3 0 4 determining block 1 308 block 1 31 2 block 1 4 0 4 block 1408 block
57 1272815 1 41 0區塊 1 41 4區塊 1 41 8區塊 1422區塊 1426區塊 141 2區塊 141 6區塊 1420區塊 1424判斷區塊 1428區塊57 1272815 1 41 0 Block 1 41 4 Block 1 41 8 Block 1422 Block 1426 Block 141 2 Block 141 6 Block 1420 Block 1424 Judgment Block 1428 Block
5858
Claims (1)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/826,745 US7529368B2 (en) | 2003-04-18 | 2004-04-16 | Apparatus and method for performing transparent output feedback mode cryptographic functions |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200536330A TW200536330A (en) | 2005-11-01 |
TWI272815B true TWI272815B (en) | 2007-02-01 |
Family
ID=34887810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW093134561A TWI272815B (en) | 2004-04-16 | 2004-11-12 | Apparatus and method for performing transparent output feedback mode cryptographic functions |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN1652163B (en) |
TW (1) | TWI272815B (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8128186B2 (en) * | 2007-07-27 | 2012-03-06 | Hewlett-Packard Development Company, L.P. | Non-volatile memory data integrity validation |
US10034407B2 (en) * | 2016-07-22 | 2018-07-24 | Intel Corporation | Storage sled for a data center |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4250546A (en) * | 1978-07-31 | 1981-02-10 | Motorola, Inc. | Fast interrupt method |
US6937727B2 (en) * | 2001-06-08 | 2005-08-30 | Corrent Corporation | Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels |
US7400722B2 (en) * | 2002-03-28 | 2008-07-15 | Broadcom Corporation | Methods and apparatus for performing hash operations in a cryptography accelerator |
TWI274281B (en) * | 2003-12-04 | 2007-02-21 | Ip First Llc | Apparatus and method for performing transparent block cipher cryptographic functions |
-
2004
- 2004-11-12 TW TW093134561A patent/TWI272815B/en active
-
2005
- 2005-03-10 CN CN200510054348XA patent/CN1652163B/en active Active
- 2005-03-10 CN CN2012100514523A patent/CN102594547A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
TW200536330A (en) | 2005-11-01 |
CN1652163A (en) | 2005-08-10 |
CN102594547A (en) | 2012-07-18 |
CN1652163B (en) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7321910B2 (en) | Microprocessor apparatus and method for performing block cipher cryptographic functions | |
TWI351864B (en) | Apparatus and method for employing cyrptographic f | |
EP1596530B1 (en) | Apparatus and method for employing cryptographic functions to generate a message digest | |
CN1655496B (en) | Apparatus and method for providing configurable cryptographic key size | |
US7532722B2 (en) | Apparatus and method for performing transparent block cipher cryptographic functions | |
US7844053B2 (en) | Microprocessor apparatus and method for performing block cipher cryptographic functions | |
TW200816767A (en) | System and method for trusted data processing | |
EP1519509B1 (en) | Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine | |
US7502943B2 (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 | |
CN100391145C (en) | Apparatus and method for performing transparent block cipher cryptographic functions | |
US7900055B2 (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 | |
TWI272815B (en) | Apparatus and method for performing transparent output feedback mode cryptographic functions | |
CN1661958B (en) | Microprocessor apparatus of block cryptographic functions and method | |
TWI247241B (en) | Microprocessor apparatus and method for performing block cipher cryptographic functions | |
US7529367B2 (en) | Apparatus and method for performing transparent cipher feedback mode cryptographic functions | |
TWI250450B (en) | Microprocessor apparatus and method for providing configurable cryptographic key size | |
TWI258289B (en) | Microprocessor apparatus and method for providing configurable cryptographic block cipher round results | |
TW200536332A (en) | Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine | |
TWI253268B (en) | Microprocessor apparatus and method for optimizing block cipher cryptographic functions | |
TW200536329A (en) | Apparatus and method for performing transparent cipher block chaining mode cryptographic functions |