TW200536330A - 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
- TW200536330A TW200536330A TW093134561A TW93134561A TW200536330A TW 200536330 A TW200536330 A TW 200536330A TW 093134561 A TW093134561 A TW 093134561A TW 93134561 A TW93134561 A TW 93134561A TW 200536330 A TW200536330 A TW 200536330A
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- register
- password
- cryptographic
- scope
- 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
200536330 九、發明說明: 【相關參考專利】200536330 IX. Description of the invention: [Related reference patents]
本案之優先權係引用自美國專利申請案第 1 0/826745號,申請日為2004年4月16日,名稱 為「 APPARATUS AND METHOD FOR PERFORMING TRANSPARENT OUTPUT FEEDBACK MODE CRYPT0GRAPIC FUNCTIONS , 〇 其他設備中^ 學領域’尤其係有關-種在微處理器^ 丁通透性輪出回授模式密碼運算崎置及方法。 【先前技術】 早期的電月盗 作的,因此在—定、、’與其他電腦系統分開獨立操 應用程式所需的所=上丄早期電腦系統上所執行 或者是在運行時剧入貝料係常駐於電腦系統, 執行完之,c程式師來提供的。應用程式 或是以檔的形式,,貧料—般都是列印在紙張上 算系統組成部分的t磁帶、磁片、或其他作為計 就可以作為隨後=置儲存設備上。這樣,輸出檔 程式的輪入檔或f一個電腦系統上所運行之應用 在可移動或可押 ^輸出資料之前係以檔被儲存 個不同但是相二:儲存設備上,它就可以被一 在這些早期系統十异糸統上的應用程式所使用。 求,並且在其他 h逐漸了解保護敏感資訊的需 發展及利用來保護中,密碼程序程式係 又振揭路之敏感資料。一般來 200536330 :的式將儲存在大量錯存裝置之輸出資 取已近共年享來的資連結網路電腦,以提 資料傳帶網路結構、作業系統及 發展到樣地將存取已分享資料的能力, 士取=工;今曰:一電腦工作站的使用者,能: :網路或網路檔案飼服器之檔案、使用網 及接收電:其他資訊、在數百部電腦間傳送 供信用卡或銀行功能資訊,以進 併應两之間的冒备斗、士居 ^j 二利用無線網路進術 的需求劇烈 務來保護敏感資料的案例越來^ 力道,性地加重電腦資訊安全議題的 還原工程、網路詐騙以資^流、 為這些預謀之 ;出=應的新法、嚴格的V行及有 ί勢=現何一種反應在電腦訊息妥= 家用電腦讀:現在變成-般市民從其 顯著的主題。郵件或執行活儲戶頭存取時一種 200536330 在訊息安全範疇方面,已逐漸發展出一些技術 與裝置可以讓訊息只會被特定的對像所接收瞭解, 即=謂的密碼學(crypt〇graphy)。當特別應用於保 護資訊時,其為在電腦間儲存或傳送時,加密使用 於傳送敏感的訊息(已知如“明文,,(clear"text) 或“本文”(plaintext)至不能瞭解的形式(如“密 文”(ciPhertext))。明文轉換至密文的傳送過程^ “加密(encryption ),,、 “譯成密碼 (enciphering)” 、或“密碼化(ciphering)” , 且密文轉換至明文的傳送過程稱“解密 (decryption)”、“解除密碼(deciphering)” 山、 或轉換禮、碼(inverse cipher ing ),,。 在密碼範疇中,建立數個步驟及規則,來允許 使用者不需要高度知識或努力來完成密碼運算,且 使這些使用者能夠傳送或以其他方式如加密形式提 供其訊息給其他使用者。順著加密訊息,傳送者一 1提,接受者一個不能使接受者解除加密訊息的 加密密碼”,因此接受者不能夠移除或以其他方 式钇加未加岔原始訊息的存取。一種技術將這些步 驟或規則採取密碼保護,數學運算及特別設計^應 用程式形式將高敏感度訊息加密或解密。 些運异類別使用於將資料加密或解密。在此 ^及的第一類運算類別(如公共金鍮加密運算:RSA 運异)利用兩種加密密碼(一種公共金鑰(pub丨土 c key)及一種私人金鑰(privatekey))來將資料加 密或解密。提及一些公共金鑰運算,一種公共金鑰 利用來傳送給接受者的資料加密。在使用者公共及 200536330 :::兼有一個數學演算關係,接受者必須利用 1、ί、』㈣傳送資料解密以恢復資料。雖然此類 α饴運异在今日廣泛被使用,但加密及解密操作速 度仍過丨又,即使只加密與解密少量資料。第二類 運异.,如對稱金鑰運算(symmetric key algorithms),提供資料安全相當程度,且速度更 快。适些運算稱為對稱金料算,因為其使用加密 金鑰於加,及解密訊息。有三種公共習知之主要加 岔金鑰運异:資料加密標準規則(dataencrypti⑽ standard、,DES),三重資料加密標準規則(Tripie DES )及進p白加禮、標準規則(advance(ji〇n ^andard,AES):因為這些演算強度保護高敏感度 貝料,其現在由美國政府及其代理機構使用。但可 以預期,it些技術中的至少一個將在未來成為商業 ,私人傳达標準。根據這些對稱金鑰運算,明文及 岔文係分別被區隔於一個特殊的大小來加密或解 密。舉例,在1 28位元大小區間的進階加密標準規 則完整加密操作,且使用128、192及256位元的加 密金鑰。其他對稱金鑰運算允許192及256位元資 料組的進階加密標準。提及分組加密操作,一種 1 0 24位兀明文訊息為如八個128位元組加密。 全部的對稱金鑰運算利用相同形式的次操作, 將一,文區塊加密。且提及一般更常使用的對稱金 1運算,一,種最初加密金鑰擴展多種金鑰(如一種 “金鑰目錄”),每一個如符合次操作加密“回合” (round)在明文區塊中完成。舉例,金錄目錄的第一 金鑰使用來完成在明文區塊上次操作的第一加密回 200536330 合,其中第二回合利用金鑰目錄的第二金鑰來產生 第二結果。一種特定數量的次單元回合被完成來產 生一個岔文本身的最終回結果。進階加密標準規則 運算之每一回合中的次操作,尚有次位元(或 S-box)、移列(ShiftRows)、混攔(MixCol⑽)、加 入回合鍵(AddRoundKey )等術語。每一回合期間, 一種密文區塊解密完成,除了完成密文輸入轉換密 碼以及轉換次操作(如混欄,移列),每_回合最^ 結果為明文區塊。 口 〜 資料加密標準規則及三重資料加密標準規則利 用不同特性次操作,但次操作與這些進階加密標準 規則同工,因為其利用於類似方式轉換—明文區塊 成一密文區塊。 Α 在多重連續測試組上完成密碼運算,全部對稱 金鍮運异利用相同的模式。這些模式包含電子密碼 書(electronic c〇de book、ECB)模式、密碼^塊 串列(cipher block chaining、CBC )模式、密石馬 回饋(cipher feedback、CFB)模式、及輸出回饋 (output feedback、0FB)模式。在次操作完成期 間,一些模式利用一種附加初始化向量且一些使用 完成於第一明文區塊加密第一位置的密文輸出如一 種附加輸入至完成於第二明文區塊的加密第二位 置。更多的相關技術細節,可以參見Federai Information Processing Standards Publication 46-3 ( FIPS-46 -3 ),1999 年 10 月 25 日,其詳細討 論了資料加密標準規則、三重資料加密標準規則j 以及參見FIPS-1 97,2001年11月26日,其對進階 200536330 ί = t準作了洋細解釋。前述標準規則係由國家標 準ff 研究所(National institute of Standards lniieChn〇1〇gy、NIST)頒佈及主張。此外’個別 祖』7 i白皮書、套裝工具及對策可參考國家標準 科技研九所之電腦安全應變中心(csrc),網址為 http·//csrc·nist·g〇v/ 。 習=技術者可察覺多數應用程式可以有效的在 電細上執了以完成加密操作(如加密及去密)。事實 上,一些操作系統(如Micros〇ft,、⑽、 X )在房、始加密形式、加密應用程式介面及相似 物\直接提供加密/解密服務。無論如何,今曰電 腦加密技術仍#在一些缺失。ft直接參 以在下面突顯及討論這些缺失。 ^ 圖1為一種今日電腦加密應用的架構圖100,描 1 1 ΐ域網路m連結的第一電腦工作站 m ηR固弟—電腦工作站102、一個網路檔案儲存 奋又備1 0 6、一個第一路由哭1 η 7 斗、廿,丨 r WAN, 11Λ ^路由為107、或其他與廣域網路 (WAN) 11〇如網際網路、及一個無線網路由器ι〇8 iiEEH8G2.U形成的介面亦與區域網路105 ΐ、= 型電腦104制無線網路⑽連接 至”、、,網路由器i 08。廣域網路i丨〇另一個重點, 二:第二路由H i"提供一個第三電腦工作站’、 介面。 如上提及,今日使用者在工作期 腦資訊安全性的議題。舉例,在今曰多重工:U 糸統控制下,一個工作站101使用者可同步6 個工作,每一個皆需要密碼運算。工作站‘:用 200536330 加密/解密應用程式112(如部分操作系 =,==已:存:路:時儲= 使用ί加ΐ =於第ί電解,工作站102的第二 自可為即Sri 密/解密操作112。加密訊 :、了為即時(如一種立即訊息) 郵件)。另外,使用者還可從第三電腦工;^二子The priority of this case is quoted from US Patent Application No. 10/826745, the application date is April 16, 2004, and the name is "APPARATUS AND METHOD FOR PERFORMING TRANSPARENT OUTPUT FEEDBACK MODE CRYPT0GRAPIC FUNCTIONS," in other fields 'In particular, it is related to a kind of method and method of cryptographic calculation in the microprocessor ^ penetrative round-out feedback mode. [Previous technology] The early electricity and moon theft, so it is separated from other computer systems. What you need to operate the application independently = run on an early computer system or run into the computer system at runtime and reside in the computer system. After execution, the C programmer provides the application. The application may be file-based Forms, lean materials—generally t tapes, magnetic disks, or other prints that are printed on the paper as part of the system can be used as subsequent storage devices. In this way, the output file program's round-in file or f An application running on a computer system is stored in a file before it can be moved or stored ^ It is stored in a different but two-phase: on the storage device, it can be stored in one file. These early systems are used by applications on different systems. And in other areas, gradually understand the protection and development of sensitive information needs to be developed and used to protect, and the cryptographic procedures are the sensitive data that reveal the way. Generally come to 200536330: The output data stored in a large number of misplaced devices will be used to connect the network computer with the data that has been enjoyed for nearly a year to improve the data transmission network structure, operating system, and the ability to access the shared data by developing the plot士 取 = 工; today: a user of a computer workstation can:: files on the network or network file feeder, use the network and receive electricity: other information, send credit cards between hundreds of computers or Bank function information, to advance and respond to the conflict between the two, and dwellings ^ j. The use of wireless network technology to protect sensitive data is becoming more and more serious. The case is becoming more and more powerful, which has aggravated the issue of computer information security. Reconstruction projects, online fraud, and information planning, for these purposes; the new law should be appropriate, strict V line and potential = what kind of reaction is now in the computer information properly = home computer read: now it becomes-ordinary citizens from Its Remarkable subject. A type of mail or live deposit account access 200536330 In the area of message security, some technologies and devices have been gradually developed so that messages can only be received by specific objects, that is to say, cryptography ( crypt〇graphy). When it is especially used to protect information, it is used to transmit sensitive information when it is stored or transmitted between computers (known as "clear " text" or "plaintext" To an unknown form (such as "ciPhertext"). The transmission process from plain text to cipher text ^ "encryption", "encrypting", or "ciphering", and the transmission process from cipher text to plain text is called "decryption" "," Deciphering ", or inverse cipher ing. In the category of cryptography, establish several steps and rules to allow users to complete cryptographic operations without requiring high knowledge or effort. And enable these users to send or otherwise provide their messages to other users in an encrypted form. Along with the encrypted message, the sender mentions one, and the recipient has an encrypted password that cannot make the recipient unencrypt the message. " Recipients are not able to remove or otherwise access the yttrium plus undisturbed original message. A technology encrypts or decrypts these steps or rules with password-protected, mathematical operations, and specially designed applications. These different categories are used to encrypt or decrypt data. The first type of operation mentioned here (such as public cryptographic operations: RSA operation) uses two types of encryption passwords (a public key (public key) and a private key (private key)). Data is encrypted or decrypted. Mention is made of some public key operations, a type of public key encryption used to transmit data to recipients. The user public and 200536330 ::: also have a mathematical calculus relationship. The recipient must use 1, ί, ㈣ to send the data to decrypt it to recover the data. Although this type of alpha transport is widely used today, the speed of encryption and decryption operations is still too fast, even if only a small amount of data is encrypted and decrypted. The second type of difference, such as symmetric key algorithms, provides a fair amount of data security and is faster. Appropriate operations are called symmetric metal calculations because they use encryption keys for encryption and decryption of messages. There are three main public key divergences in public knowledge: data encryption standard rules (dataencrypti⑽ standard, DES), triple data encryption standard rules (Tripie DES), and standard rules (advance (ji〇n ^ andard, AES): Because these calculus strengths protect high-sensitivity shellfish, they are now used by the US government and its agencies. But it is expected that at least one of these technologies will become a commercial, private communication standard in the future. According to these symmetry For key operation, plaintext and fork text are separated into a special size for encryption or decryption. For example, the advanced encryption standard rules in the 128-bit size range complete the encryption operation, and use 128, 192, and 256 bits. Element encryption key. Other symmetric key operations allow advanced encryption standards for 192 and 256-bit data sets. When referring to block encryption operations, a 10-24-bit plaintext message is encrypted like eight 128-bit bytes. All The symmetric key operation uses the same form of sub-operations to encrypt one and one text blocks, and mentions the more commonly used symmetric golden 1 operation, one and the first encryption. The key expands a variety of keys (such as a "key directory"), each of which is encrypted in a clear text block if it meets the secondary operation. For example, the first key of the gold directory is used to complete the The first encrypted round of the last operation of the plaintext block was 200536330 rounds, of which the second round used the second key of the key directory to produce a second result. A specific number of sub-unit rounds were completed to produce a final version of the fork text body Result. The secondary operations in each round of advanced encryption standard rule calculations still have terms such as sub-bit (or S-box), shift (ShiftRows), mix (MixCol⑽), add round key (AddRoundKey), etc. During each round, a kind of ciphertext block decryption is completed. Except for completing the ciphertext input conversion password and conversion operations (such as mixed columns, shifting), the result of each _ round is a plaintext block. 口 ~ Data encryption standard Rules and triple data encryption standard rules use different characteristics of the secondary operation, but the secondary operation works with these advanced encryption standard rules because it is used in a similar way to convert-plain text blocks into one Text blocks. Α Completes cryptographic operations on multiple consecutive test groups. All symmetric golden coins use the same modes. These modes include electronic code book (ECB) mode, cipher block series (cipher block chaining (CBC) mode, cipher feedback (CFB) mode, and output feedback (0FB) mode. During the completion of this operation, some modes utilize an additional initialization vector and some uses are completed in the first The ciphertext output of the plaintext block encrypted first position is an additional input to the encrypted second position completed in the second plaintext block. For more related technical details, please refer to Federai Information Processing Standards Publication 46-3 (FIPS-46-3), October 25, 1999, which discusses in detail the data encryption standard rules, triple data encryption standard rules j, and see FIPS -1 97, November 26, 2001, which gave a detailed explanation of the advanced 200536330. The aforementioned standard rules were promulgated and advocated by the National Institute of Standards Institute (National Institute of Standards, China, Japan, NIST). In addition, the “individual ancestors” 7 i white paper, set of tools and countermeasures can refer to the Computer Security Contingency Center (csrc) of the National Institute of Science, Technology, and Technology. Xi = Technicians can perceive that most applications can effectively perform encryption operations (such as encryption and de-encryption) on the computer. In fact, some operating systems (such as Microsft, ⑽, X) provide encryption / decryption services directly in the house, the original encryption form, the encryption application program interface, and the like. However, today's computer encryption technology is still missing. ft is directly involved in highlighting and discussing these deficiencies below. ^ Figure 1 is a diagram of the architecture of today's computer encryption application 100, depicting the first computer workstation m ηR solid computer connected to the m-domain network — computer workstation 102, a network file storage device 1 and 6, 6, a The first route is 1 η 7 bucket, 廿, WAN, 11 ^ ^ route is 107, or other interfaces formed with a wide area network (WAN) 11 such as the Internet, and a wireless network router ιEEH8G2.U It is also connected to the local network 105 and wireless computers of type 104, and the network router i 08. The wide area network i 丨 another important point, the second: the second route H " provides a third computer Workstation ', interface. As mentioned above, today ’s users ’brain information security issues during work. For example, under the control of multiple jobs: U system, a workstation 101 user can synchronize 6 jobs, each of which is Requires password calculation. Workstation ': Use 200536330 to encrypt / decrypt application 112 (such as part of the operating system =, == Already: Save: Road: Time Storage = Use ί 加 ΐ = Electrolyte, the second self-possible of Workstation 102 This is the Sri encryption / decryption operation 112. Encryption :, Instant (An instant messaging) message) Further, from the third computer user may work; ^ two sons
110存取或提供他/她最終資料(如信 金融轉帳,等)或其他形式的敏感資料。 A司進入任何一個在區域網路105 :源 10 卜 102’106,107,108,1()9工作二子 使用第三電腦工作靖可代表家用電二 通^電腦103。每一個前述動作需要一個符合執行 操作112的例子。此外,無線網路⑽ 在吊悲性的提供於咖啡店,機場,學校,及i110 access or provide his / her final information (such as letter financial transfer, etc.) or other forms of sensitive information. Company A enters any network 105 in the local area network: source 10, 102, 106, 107, 108, 1 () 9, working as a second child. Working with a third computer, Jing can represent household electrical communication ^ computer 103. Each of the foregoing actions requires an example that corresponds to performing operation 112. In addition, wireless internet is being offered sadly in coffee shops, airports, schools, and i
=場所,因此筆記型電腦104使用者一個加密解 無論是他/她的訊息傳送/接收其他使用者立即的 而要,且經由無線網路109至無線網路由器1〇8 密或解密所有訊息。 習知技術者可以瞭解,每一個上述活動都 在工作站101-104上做加密操作,也就相應有執 一個立即的加密/解密應用程式112的需求。因此, ,腦10Η04進-步可能同時完成數百個加密操 —無論如何,存在一些在電腦系統10^04上執 仃至少一個以上立即的加密/解密操作^ 1 2而完 加密操作方法的限制。舉例,經由一個軟體程式^ 12 200536330 成—個前述功能相對比經 — 慢。每一個加密/解宓/冼η更體70成相同功能執行 丨口训山/解铪刼作i i 2都需| 一 、, 且正在電腦101-1〇4上勃耔& 要奴蚪間,亚 時間内必須暫停執行,S行程式可能在這段 杈式,金鑰等)參數必須二文 操作112,執行加密摔作m糸統至加密/解密 ί特殊組別資料幾回次操作,加密/解4:= ,包含執行多個電腦延伸指令,因:全(? 作速度有不利的影響。如— ^系、、先刼 見在 Microsoft® 〇utl〇〇k®傳 一 子郵件會較傳送一個去1达個小的加密電 卞曰罕乂得达個未加密電子郵件慢5件。 另外,當前技術的局限是由作 遲所造成的。大多❹_ =作,系統干涉的延 密元件’他們執行作業系統的元件;Ϊ : Ϊ完成這些任務。而作業系統係按昭 其=執:應用程式的需求及中斷進行調度 101-104上密碼運瞀之办成、在二至^在虽則電腦系統 、、采ϋ -山 ^ 凡系,、在微處理器中專用 子點早兀出現前浮點數學運算 τ寻用 期的浮點運算係透過軟體實現,所以2二=二二早 f。就像浮點運算-樣,通過軟體執行Ξ碼運:Ϊ 二目當慢的。隨著浮點技術的改進,浮點二;: 在净點共同處理器上執行,浮%丘 點操作係比軟體的實現要快报多:二,=丁牙 έ从a丄、L 又 田然它也增加了 糸統的成本。同樣地,今日密 ,平行埠或其它週邊介面 理器之外部設備的形式存在著。這料點#然使= 200536330 密,運算的執行比一般軟體 同處理器給系統配置增 本見= :二且降低了系統之可靠性。由: 主微處理器那婵—向, 貝丁十遇路不像 ΪΨ ^ ^ 裘在同一個模組上,所以密碼丘同處 理1執行乃更易被竊聽。 %、门處 微處寞i案之發明者了解到人們需要在今曰的 運管的;用ί二個專門的密碼硬體,這樣需要密碼 指;指ΐ:?直接經由-條單獨的、微密碼 而密碼指令電路 栌管。==樣的功能,減少對作業系統的干涉和 :以使用;:?令最好能夠在應用程式的特權級 哭相六πt岔碼硬體能夠與當前流行的微處理 ;作;李:”碼硬體和相關密碼指令要提供與先= Place, so the laptop 104 user has an encrypted solution, whether it is his / her message transmission / reception to other users immediately, and to encrypt or decrypt all messages via wireless network 109 to wireless router 108. Those skilled in the art can understand that each of the above activities performs encryption operations on workstations 101-104, and accordingly there is a need to execute an instant encryption / decryption application 112. Therefore, the brain can perform hundreds of encryption operations at the same time-anyway, there are some restrictions on the computer system 10 ^ 04 that perform at least one or more immediate encryption / decryption operations ^ 1 2 to complete the encryption operation method . For example, through a software program ^ 12 200536330, one of the aforementioned functions is relatively slower than the classic one. Each encryption / decryption / encryption is more than 70% of the same function to perform 丨 mouth training mountain / explanation operation ii 2 requires | I, and is on the computer 101-1〇4 & The execution must be suspended within Asian time. The S-stroke mode may be in this mode, the key, etc.) The parameter must be operated in 112, and the encryption operation is performed to encrypt / decrypt the special group of data several times. Encryption / Decryption 4: =, including the execution of multiple computer extension instructions, because: (?) Operating speed has an adverse effect on the speed. For example, ^ system, please see the Microsoft® 〇utlOOk® transmission of a sub-message It is 5 times slower than sending an encrypted encrypted e-mail message to an unencrypted e-mail. In addition, the limitation of the current technology is caused by the delay. Most of the delays are caused by the delay of system interference. Components' They execute the components of the operating system; Ϊ: Ϊ complete these tasks. The operating system is scheduled according to the requirements of the application: application requirements and interruptions. The password operation on 101-104 is completed. Although the computer system, the mining-mountain ^ Fan Department, dedicated sub-point in the microprocessor The floating-point arithmetic of the floating-point mathematical operation τ search period before the early appearance of the floating-point arithmetic is implemented by software, so 2 = 2 = 22 early f. Just like floating-point arithmetic-like, code execution is performed by software: Ϊ 目 目 当Slow. With the improvement of floating-point technology, floating-point two ;: executed on a net-point coprocessor, the floating% yaw point operation is faster than the software implementation: two, = 丁 牙 έ from a 丄, L It also increases the cost of the system. Similarly, the form of external devices such as parallel ports or other peripheral interface processors exists today. This material point # 然 使 = 200536330 is denser, and the execution of the operation is higher than that of ordinary software. See the same processor to increase the cost of the system configuration == Second, and reduce the reliability of the system. By: the main microprocessor that 婵 —direction, Bedin Shiyou Road is not like ΪΨ ^ ^ on the same module, so The implementation of the password crypt is the same as that of the processing 1. It is easier to be intercepted. %%, the inventor of the case of the lonely case learned that people need to manage it today; use two special cryptographic hardware, which requires a password finger; Refers to:? Directly through a separate, micro-code and password instruction circuit control. == 样Functions to reduce interference with the operating system and use: to make it better to be able to cry at the privileged level of the application. Six πt fork code hardware can work with the current popular microprocessing; work; Lee: "Code hardware and Related password instructions should be provided and first
Uti:程;的相容的方式。最主要的是提供 A碼運异之裝置和方法,使有效抵御来於 匕竊聽’並能支援多種密碼演算法,支援:在2 殊密碼演算法進行驗證和測試,允許使 料iiL餘和自行產生的金鎗,支援多重的資 , /、ϋ金鑰長度,提供可編程的區塊加密/解密 二:J t電子碼書式、密碼區塊串列、密碼回授 换:六二6回,拉式等,並且在使用上述可編程區 密文口 ί石模式時能夠對大量資料有效執行區塊 在又在碼功能。 發明内容 本發明之一實施例,係在一微處理器内提供用 14 200536330 以完成密碼運算的裝置。該裝置包括—密碼指入電 Ϊ二ί出回授模式邏輯電路和執行邏輯電路。i碼 曰7電路用以產生一密碼指令,其藉由計算 $收二並作為在計算裝置上所執行指令流的一部 刀。始、碼指令規定一種密碼運算。這種密 = :授區塊密碼運算,而輸出回授Ϊ塊 :ί: 執行在相對應的複數個輸入文字區塊 回Ϊ模式邏輯電路和密碼指令電路係密切 置更新指標暫存器及每一該此輸出异裝 化向量位置。執行邏輯電路和輸出回授 杈式邏輯電路係緊密結合,執抆 密碼指令。 、科电峪便執仃一 裝置本;以:實為-種執行密碼運算的 ^置。亥虞置包括一内嵌在一設備中的宓满置分名 輸出回授模式邏輯電路。密碼單元 二”、、 口 -密碼指令來指定是那 上^中的 運算包括數個密碼回授區塊密碼;„密碼 「=碼運算則係被執行於所對數: 結合在-起。輸出回授模式邏輯;:早:密” 新指標暫存器之内容以及每一亥設備更 密碼運算的—初始化向量位置。數個輸出回授區塊 本發明之另實施例係為一種在—< 運算的方法。該方法包括回應收:::備執行密碼 行數個密碼運算之某一個,並 在碼指令並執 Y在石馬指令係規定指 200536330 碼而這個執行步驟包括完成在相對應 作J二二區塊中之數個輸出回授模式區塊操 下-個輸出回“入f字區塊上的 杈衩式區塊刼作,將一個等效初始化 向里寫到一個仞始化向量的位置處。 【實施方式】 以下所述為應用習知技術而製造或使用文中特 定應用及需求之本發明所列舉之例子。然而, =所匕種修改係用於彰顯與習知技術之不 同處’此-般原則可應用於其他實施 本發明並非限定於特定實施例。 口此 ^透過上述關於密碼程序之技術背景及當今電腦 =所使用將!料加密及解密之相關技術,我:將 ^ =圖2來繼~探討這些技術及其限制。接著,將 簽照圖3 - 14繼續討論本發明。本發明提種 執行於ΐ代電腦系統之密碼程序的裝置及方法: 較^目别主流之機器,該裝置及方法顯# 了較佳的 效能,因此滿足了限制作業系統之介入、、 舊式、電腦結構相容性、演算法及模式 工、 預防駭客入侵、及可測試性之上述目標。飞性、 、現在請看圖2 ’ 一方塊圖200描述了在上述备 代電腦系統上完成密碼運算的技術。方塊圖2心 括一個微處理器(micropr〇cess〇r)2〇1,其係^ 個應用程式對應的系統記憶體的一部分,^ 用記憶體(applicati0n mem〇ry) m ^ 令電路和存取資料。指令電路提供至少一指:取二 16 200536330 用來指示一密碼運算,而指令電路包含邏輯電路、 裝置或微碼(即微指令或本機指令(native instruction))、或是一個邏輯電路、裝置或微碼之 組合’由於指令電路並非為本發明的重點,於此不 再對此作詳細說明。程式的控制和從應用記憶體 2 0 3所存取的資料是由駐留在系統記憶體的已保護 區域内的作業系統(operating system) 2〇2所控 官。如上述討論,如果一個正在執行的應用程式(例 如一電子郵件(emaii)程式或一檔案儲存程式)需要 執行一個密碼運算,正在執行的應用程式即必須指 φ =微$理器201執行特定的指令才能完成密碼運 异。這些指令也許就是正在執行應用程式部份的一 個子程式,它們也可能是鏈結到正在執行應用程式 的内喪程式,也可能是作業系統2〇2所提供的服 務。不官它們怎樣結合,一個熟悉該項技術者將了 解這些指令將駐留在一些指定的或是已分配的記憶 體區域中。基於討論的目的,這些儲存區域將會^ 揭示在應用記憶體203中,及包含一個密碼金鑰產 生程式(cryptographic key generat'i〇n · application) 204,其一般會產生或接收一個金鑰 並將金鑰擴展成為一金鑰目錄(key scheduU ) 205,以供密碼回合操作使用。對於多區塊的加密操 作,一區塊加密程式(encrypti〇n applicati〇n) 206將被引動。加密程式2〇6執行指令存取明文區 塊(plaintext) 210、金鑰目錄205、諸如模式、 金鑰目錄位置等更為詳細加密操作的密碼參數 (cryptographic parameters ) 209。如果指定的模 17 200536330 式需要,一個初始化向量(i · 208也會藉由加密程式2〇6 & ization vector ) 行這些指令,以產生相對的挪執 川。同樣地,—區塊解 解密程式m執行數:令為,了、執^= 鬼解密操作。 、及-初始化向量:參數 取)。解密程式m執行這4b指八要f會被存 區塊21〇。 、一払7使產生相應的明文 巧注意的是特定的指令須被執 或?密文字區塊。上述的fjps規範包;,; ^ , ί : 而要被確定的指令數能夠被 . ,无、心、5亥項技術者將會了解需上百 以完成-個簡單的區塊加密操作;士; 理;,Γ以完成所需的密碼 算,對於當前正在執-個密碼運 = 電子郵件,遠端檔案存取、信 2又易)來況,都是多餘的操作。因此,當前正 ,執行應用程式的使用者感覺到當前所執行程式之 並不是有效率的。在獨立的或内嵌的加密及解 ,應用程式206、207的情況下,啟動和管理這些程 :206、207也要受到作業系統2〇2的其他需求所支 配、,諸如支持中斷、異常以及惡化問題的事件等。 ,進一步講,對於在一計算系統上所需求的每一並 仃的密碼運算,程式204、2〇6、2〇7的一例子就是 200536330 =開:置二1=3中。如上所述,可以預期 目,將會隨並行之密碼運算數 統密ΐί 了這些問題和當前電腦系 置和方法之ϊΐ處中,執行密碼運算的裝 哭,姐士而求。因此,本發明於此提供一微處理 、、二 屬之岔碼單元,執行密碼運算的|置及 相關的方法。當啟動密碼單元時,以經m 呈式化’來執行密碼運算。現在將參照圖 至圖1 2以讨論本發明。 4 4、、圖3,一方塊圖300描述了 一個依據本發 月執行密碼運算的微處理器裝置。方塊圖3〇〇描述 了二個微處理器(micropr〇cess〇r) 3〇1,其係通過 a己憶體匯流排(memory bus) 319連到一系統記 憶體(system memory) 321上。微處理器3〇1包括 轉譯邏輯電路(translation logic) 303從一指令 暫存器(instruction register) 302接收指令電 路。指令電路提供至少一指令,其用來指示一密碼 ,算,而指令電路包含邏輯電路、裝置或微碼(即 微指令或本機指令(native instruction))、或是 一個邏輯電路、裝置或微碼之組合,由於指令電路 並非為本發明的重點,於此不再對此作詳細說明。 f譯邏輯電路303包含邏輯電路、裝置或微碼(即 微指令或本機指令(native instruction))、或是 一個邏輯電路、裝置或微碼之組合,或是能夠轉譯 才曰令到相關微指令序列的等效單元。在轉譯邏輯電 19 200536330 了 單元可能被其他的電路、微 處理器301内執行其他的功 明的目的,微碼是一個術語,它表示 -7。一微指令(或稱為本機指令)是- 早了及,的指令。例如,微指令被精簡指令 杲電月自 C reduced instrurfi ηη。+ 、 ^ ^ ^ STructl〇n set computer, RISC) )^為·執行。對於一個複雜指令集電腦 complex instruction set computer, CISC)微 處理器,諸如一 x86相容微處理器,χ86指令被轉 譯成相關的微指令,而這些微指令可以在複雜指令 集電腦微處理器内由至少一個單元直接執行。轉譯 邏輯電路.303係被連接到一微指令佇列(micr〇 instruction queue) 304上,微指令佇列3〇4有數 個微指令入口(raicro instructi〇nentries) 3〇5、 30 6。微指令由微指令佇列3〇4提供給包括一暫存器 組307的暫存器階段邏輯電路。暫存器組(^幻以“ file) 307係具有複數個暫存器(registers) = 8-313,且這些暫存器的内容係在執行一個指定的 密碼運算前即被建立。暫存器3〇8-312指向記憶體 (memory ) 321 中的相應位置(c〇rresp〇n/ing locations) 323-327,這裏存放著執行指定密碼運 异所需的資料。暫存器階段被連接到載邏輯電路 (load logic) 314,其係被連接到資料快取(data cache ) 31 5 ’用來恢復執行指定之密碼運算的資料。 資料快取31 5通過記憶體匯流排31 9連接到記憶體 321上。執行邏輯電路(executi〇n i〇gic) 328和 載入邏輯電路(load logic) 314相接並通過上一 20 200536330 階段傳达下來的微指令執行指定的操 電路328係包含邏輯電路、裝置 ,:,輯 或本機指令)、或是一個邏輯;t 指令 合’或是能通過提供給它的微指令執;二二$: 4效早7G。在執行邏輯電路328中 可能被其他的電路、微碼等所共用,即 攸載入邏輯電路314接收,用以執早兀 碼運算所需的資料。微指令 單〜丁t =之密 數個輸入文字區塊326上執動,在複 生成相關的複數個輸出文字n馬運异,以 微指令或本機指令)、或是一個邏4:或(即 碼之組合,或是能執行密碼運算的等4置或微 :單元316中執行密碼運算的單元。在密 路、微碼等所共用,即在該微處理哭:f其他的電 他的功能。在一實施例中,穷 :3 1内完成其 輯電路328的其他執行單山未”、早二316和執行邏 元、浮點單元等是並行執上H不),諸如整數單 的-實施例係包含邏輯㊁路毛::圍中-“單 合,或是能電路、裝置或微 早兀。這些在—個特殊單元:或指定功能的等效 指定功能的元件可能 執仃指定操作或執行 用’即在微處理器301内執^的1電路、微碼等所共 如,在—個實施例中,—敕tf !/、他功能或操作。例 正数早70係包含邏輯電路、 200536330 J置或T碼(即微指令或本機指令 電路、裝置或微碼之組合,η Τ 、或是一個邏輯 等效單元。一浮點單元:含行整數指令的 (即微指令或本機指令)、或θ2電路、裝置或微碼 或微碼之組合,或是能執行固邏輯電路、裝置 在整數單元内執行整數指令的&^的等效單元。 路、微碼等,即在浮點單元内勃係可以共用電 容x86體系的一實施例中,宓=洋點指令。在相 的整數單元、一 χ86的浮點^开、、早兀316和一 x86 延伸集單元和一x86的串流隹二X86的多媒體 根據本發明,一相容=二早元並行執行。 施例能夠正確地執行大多數被:吁::二指這個實 杲式。如果得到一個正確地社 果该転式的執行就是正確的。可供 ^ 容實施例期望密碼單元盥上if μ @ ^ &擇的x86相 的-個子集並行執行二巧Πιΐ X86執行單元 邏輯電路“tore =被連接到儲存 個輸出文字區塊327健存羅二^供相對應複數 ,十 储存邏輯電路317也被連接 至為料快取31 5,其係發送輸出文字資料3 2 7到系 、、先。己[思體3 21處以供儲存。儲存邏輯電路3! 7係净皮 ,接到寫回邏輯電路(write back logic) 318上。 菖才曰疋的氆碼運异完成’寫回邏輯電路318將更新 暫存器組307中的暫存器3〇8一313。在一個實施例 微指令係與一時脈信號(未圖示)同步,流經 母個上述的邏輯電路階段(logic stages) 302、 303 ' 304、30 7、314、316-318,這樣,這些操作就 可以並行執行,就像一條裝配線一樣。 22 200536330 在糸統記憶體321中,一個需要指定密碼運算 的應用程式就可以通過一條單獨的密碼指令 ((^ryptographic instruction ) 322 直接驅動微處 ^1去執行該操作。在此以一條密碼(XCRYPT) 指令^為示例說明。在一個複雜指令集電腦實施例 :密碼,令322包含一條規定一密碼運算的指 =。在精簡指令集電腦實施例中,密碼指令322包 含一條規定一密碼運算的微指令。在一實施例中, 322利用現有指令集架構中多餘的或未用 勺。、編碼。在一 χ86相容的實施例中,密碼指令 、复义^ r 4個位元組的指令,其係包含一個χ86重 稷剛置(即0xF3),後跟2個位元組未使用 編石! 0侧)’再加上!個位元組指明在執 ί 一: ΐ t、碼運算時使用的一特定區塊密文模式。 用;式的系統許可權級下以= 用程式或在一作業系、統320的控制下 被、扁寫到程式指令流裏,使提供給該 3 〇 1。由於執行指定的密碼運算係只兩二=^态 322驅動微處理H 301 g卩γ n、丨雄碼才曰令 於作業系統320來說將完全是透明化^作的完成對 操作時,作業系統32〇係 在微處理H 301上執行,在執行2 3用程式使 指令流的-部分,—密碼指令期間作為 提供給擷取邏輯電路302。然而己憶體 322之前,在程式流中的指 ^密碼指令 使初始化暫存器308-3〗2的内動微處理器30】 今,M致將其指向在 23 200536330 記憶體321中的位置323-327,這些位置包含一密 碼控制字元(cryPt〇graphic contr〇i word) 323、 一初始金鑰(initial cryptographic key) 324 或 一金鑰目錄(key schedule ) 324、一初始化向量 (initialization vector) 325 (如果需要的話), 供操作之輸入文字(input text) 326和輸出文字 (output text) 327。在執行密碼指令322之前初 始化暫存态308-31 2是必須的,因為密碼指令322 不加校驗直接使用該等暫存器3〇8_312和存放一區 塊數目的額外暫存器313,這區塊數目係指在輸入 文字區。326中需要加密或解密的資料區塊數目。這 樣,轉譯邏輯電路303從擷取邏輯電路3〇2擷取到 密碼指令並將其轉譯成一系列驅動該微處理器3〇1 ΐίί指定密碼運算的相對應微指令。在相對應系 =被#曰f中的一第一組微指令3〇5_3〇6係驅動密碼 使下載攸載入邏輯電路314所提供之資料 = 數目的密碼回合使產生-相對應輸 ^二枓S塊並通過資料快取315將對應輸出資料區 存邏輯電¥ 317以儲存在記憶體321的 f 子區327中。在相對應系列微指令中之一第 二巧,J (未圖示)驅動微處理器301的其他執 二 ΐ圖示)執行其他的必要操作以完成指定 的逸碼運异,諸如在加资/解 絲,批总你十山 在/解袷凡一組輸入文字326 =g暫存中間結果和計數的非 ^ (P0inL^^ (工二' 3:卜312’更新初始化向量指標暫存器 v initlSll23ti〇n VPpfnr* 4- ector pointer register) 310 24 200536330 (如果需要的話)以及處理當前中斷等。在一個實 ,例中,暫存器308_313是結構暫存器,結構暫存 时308 31 3是指在指令集架構(instructi⑽set =J_hLtecture,ISA)裏執行特殊微處理器所定義的 個貫施例中,密碼單 個1¾段,藉此允許管線化連續輸入文字區塊326。 圖3的方塊圖300係用來講述本發明的基本組 士早:,因此為了更清晰,在當今微處理器3〇1中 的很夕邏輯電路都被方塊圖300所忽略。然而,一 ί =術者將會了解到根據特定的執行當今 j理β 3()1係包含許多階段和邏輯電路單元,但 因出於清晰表達的目的,將並 載入邏輯雷拉qm' 聚集在一起。例如, 包含一個位址生成階段,然 但值得注意的是在複數;對準階段。 加—杜— 牡稷数個輸入文字區塊326上的一 22元算係依據本發明通過-單獨密碼指令 角度來考慮是透明化的,二:攸作業糸、统320的 專用密碼單元31 6 士成去、,’ 士的,行是通過一個 處理器301内的^執一而被碼早兀316係和微 ^ ^ ^ „ ,) :;, ^ ^ f ^ ^ 31 β 66香#加 ’、 種了重構遂、碼早元 專用浮點“硬體係:::以前微處理器所提供之 3 2 2的操作和以前的作^ 31 6和相關密碼指令 發操作是完全相容的。320和應用程式的併 現在請參閱圖4, 下。 ,、所扣供之不意圖展示了依 25 200536330 據本發明"-^微密碼扣人^ 400包括一可選的一實施例。密碼指令 field )401,然後 a 置攔位(〇ptl0nal prefix field) 402,隨 —複前置攔位(repeatprefix ,最後區 棚位(〇PC〇defield) mode field) 404,馬杈式攔位(bl〇Ck Cipher 的内容和χ86指令隼在:^實施例中,攔位4〇卜404 容其他的指令集;。可重構的實施例相 在才呆作中,今女w、$ t 許多指令集架構前置欄位401被執行在 些運行特徵,#&、#此或不致能主微處理器的一 卢搜,進行16位元或32位操作,進行 ^明二?殊記憶體段等。重複前置攔位402 入資料區塊(即明文’將在複數個輸 位402亦暗指一適合之元成。重複前置攔 構性暫存器的内容,以使用複數個架 lb ^, 作為在系統記憶體内位置之 ‘私,糸、洗記憶體包含特定 數。如上所述,在—χ86相容之實二:二貝以 協疋,送、碼指令盘Μηνς 4 、口耩 知〆相,血 P.M〇VS之類的x86重覆串指今 相田類似。舉例而言’當執行本發明之 的微處理器實施例時,重複前置攔位指;指示 在結構暫存器Ecx中的區塊計算 暫^ 器ESi中的來源位址指標(指出密碼運 入貪枓)以及儲存在暫存器EDI中的目的位址: :产記憶體中指出輸出資料區域)。在χ86 ? 施例中,本發明使習知重覆串指令内容,更: 26 200536330 存在暫存f EDX中的控制字元指標、儲存 BX中的密碼金鑰指標、以及儲存在暫存哭 : 的初始化向量之指標(若指定 中 話)。 &旧曰曰片杈式需要的 ,异碼攔位403指定微處理器完成密碼運曾, ,、更扣定於儲存在記憶體中的控制字元内,= ?係透過控制字元指標指示。本 = 用式去田、《瞀“ 為存指令集架構内備 用或未用運#碼之一,以便保留舊有作業Uti: Cheng; compatible way. The most important thing is to provide A-code different devices and methods, so as to effectively resist dagger eavesdropping, and support a variety of cryptographic algorithms. Support: Verification and testing in 2 special cryptographic algorithms, allowing the use of iiL and more. The generated gold gun supports multiple data, /, and key lengths, and provides programmable block encryption / decryption 2: J t electronic code book type, password block serialization, password feedback exchange: 6 2 times, Pull-type, etc., and can effectively perform block-in-code function on a large amount of data when using the above-mentioned programmable area ciphertext mode. SUMMARY OF THE INVENTION An embodiment of the present invention provides a device for performing cryptographic operations in a microprocessor. The device includes-the password refers to the power supply, the second is the feedback mode logic circuit and the execution logic circuit. The i code 7 circuit is used to generate a cryptographic instruction, which is calculated by $ 2 and used as a knife of the instruction stream executed on the computing device. The start and code instructions specify a cryptographic operation. This kind of secret =: grant block password operation, and output feedback block: ί: execute the corresponding multiple input text block echo mode logic circuit and password instruction circuit to closely set the update index register and each One should output the dislocation vector position. The execution logic circuit and the output feedback branch logic circuit are closely combined to execute the cryptographic instructions. 2. Kedian will implement a device book; it is: a kind of ^ device that performs cryptographic operations. Haiyuzhi includes a full-named output feedback mode logic circuit embedded in a device. Cryptographic unit two ", and-password instructions to specify that the operation in ^ includes several password feedback block passwords;" password "= code operation is performed on the logarithm: combined in-from. Output back Authorization mode logic: "early: dense" The contents of the new index register and the more cryptographic operation of each device-the location of the initialization vector. Several output feedback blocks Another embodiment of the present invention is a method of the < operation. The method includes responding to receiving :: preparing to perform one of several cryptographic operations on the password line, and executing the code instruction and executing the Y instruction in the Shima instruction to specify 200536330 code, and this execution step includes completing the corresponding operation in the second and second zones Several output feedback modes in the block. Block operation-one output returns "into a block-type block operation on an f-word block. An equivalent initialization is written in to the position of an initialization vector. [Embodiment] The following describes the examples of the present invention that are made or used by applying specific technology and specific applications and requirements in the text. However, the modifications are used to highlight the differences from the conventional technology. -The general principles can be applied to other implementations of the present invention and are not limited to specific embodiments. ^ Through the technical background of the above-mentioned cryptographic procedures and the current technology of computers = encryption and decryption related technologies, I: Will ^ = Figure 2 to continue ~ to explore these technologies and their limitations. Next, the present invention will be discussed with reference to Figures 3-14. The present invention provides a device and method for a cryptographic program executed on a modern computer system: The machine, the device and the method show better performance, and thus meet the above-mentioned goals of limiting the intervention of the operating system, the old style, the compatibility of the computer structure, the algorithms and model work, the prevention of hacking, and the testability Flyer, please see Figure 2 '. A block diagram 200 describes the technique for performing cryptographic operations on the above-mentioned alternate computer system. Block diagram 2 includes a microprocessor (micropr〇cess〇r) 201, It is a part of the system memory corresponding to ^ application programs. ^ Use the memory (applicati0n mem〇ry) m ^ to order the circuit and access the data. The instruction circuit provides at least one finger: take two 16 200536330 to indicate 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 combination of a logic circuit, a device, or a microcode. 'Because the instruction circuit is not the focus of the present invention, This is no longer described in detail. The control of the program and the data accessed from the application memory 2 0 3 are operated by the operating system (operat) residing in a protected area of the system memory. ing system) 02. As discussed above, if a running application (such as an e-mail (emaii) program or a file storage program) needs to perform a cryptographic operation, the running application must refer to φ = Microprocessor 201 executes specific instructions to complete the password operation. These instructions may be a subroutine of the application program, they may also be internal programs linked to the running application program, or they may be It is a service provided by the operating system 202. No matter how they are combined, a person familiar with the technology will understand that these instructions will reside in some designated or allocated memory area. For the purpose of discussion, these storage areas will be disclosed in the application memory 203 and include a cryptographic key generat'in application · 204, which generally generates or receives a key and The key is expanded into a key directory (key scheduU) 205 for use in password round operations. For multi-block encryption operations, a block encryption program (encryption applicati) 206 will be activated. The encryption program 206 executes instructions to access plaintext 210, a key directory 205, and cryptographic parameters 209 such as a mode and a key directory location for more detailed encryption operations. If the specified module 17 200536330 is needed, an initialization vector (i.208 will also execute these instructions by the encryption program 206 & ization vector) to generate the relative translation. Similarly,-block decryption program m execution number: let is, and perform ^ = ghost decryption operation. , And-initialization vector: parameter take). The decryption program m executes this 4b, which means that f will be stored in block 21o.払 払 7 so that the corresponding plain text is generated. What happened to note that a specific instruction must be executed? Password block. The above fjps specification package ;, ^, ί: And the number of instructions to be determined can be. None, Xin, and 50 technicians will understand that it takes hundreds to complete-a simple block encryption operation; Calculate the password required to complete the calculation. For the current operation of a password = email, remote file access, letter 2 and so on), it is an unnecessary operation. Therefore, currently, users who run applications feel that the currently running programs are not efficient. In the case of independent or embedded encryption and decryption applications 206, 207, start and manage these processes: 206, 207 are also subject to other requirements of the operating system 202, such as support for interrupts, exceptions, and Incidents that worsen the problem. Furthermore, for each cryptographic operation of a union required on a computing system, an example of the formula 204, 206, and 207 is 200536330 = On: Set 2 to 1 = 3. As mentioned above, it can be expected that, with the parallel operation of cryptographic algorithms, these problems and the current computer system and method are described. The implementation of cryptographic operations is crying out. Therefore, the present invention provides a microprocessing, bifurcation code unit, and a method for performing cryptographic operations and related methods. When the cryptographic unit is activated, cryptographic operations are performed in m-formation '. The invention will now be discussed with reference to Figures 12 to 12. 4. Figure 3. A block diagram 300 depicts a microprocessor device that performs cryptographic operations in accordance with the current month. The block diagram 300 describes two microprocessors 301, which are connected to a system memory 321 through a memory bus 319. The microprocessor 301 includes translation logic 303 to receive an instruction circuit from an instruction register 302. The instruction circuit provides at least one instruction for indicating a password, and the instruction circuit includes a logic circuit, a device, or a microcode (that is, a microinstruction or a native instruction), or a logic circuit, a device, or a microcomputer. Since the combination of codes is not the focus of the present invention, it will not be described in detail here. f The translation logic circuit 303 includes a logic circuit, device, or microcode (that is, a micro instruction or a native instruction), or a combination of a logic circuit, a device, or a microcode, or it can be translated to the relevant microcomputer. The equivalent unit of an instruction sequence. In translating logic 19, 200536330, the unit may be used by other circuits and microprocessors 301 to perform other functional purposes. Microcode is a term that means -7. A micro-instruction (or native instruction) is-an instruction that is earlier than,. For example, micro-instructions have been streamlined to reduce the amount of electricity from C reduced instrurfi ηη. +, ^ ^ ^ STructlon set computer, RISC)) ^ is performed. For a complex instruction set computer (CISC) microprocessor, such as an x86-compatible microprocessor, the x86 instructions are translated into related microinstructions, and these microinstructions can be stored in the complex instruction set computer microprocessor. Directly executed by at least one unit. The translation logic circuit 303 is connected to a microinstruction queue 304. The microinstruction queue 304 has several micro instruction entries (raicro instructioonentries) 305, 306. The microinstruction is provided by the microinstruction queue 304 to the register stage logic circuit including a register group 307. Register group (^ magic to "file) 307 has a plurality of registers (registers) = 8-313, and the contents of these registers are created before performing a specified cryptographic operation. Registers 3〇8-312 points to the corresponding location in memory 321 (c〇rresponn / ing locations) 323-327, which stores the data needed to execute the specified password operation. The register stage is connected to Load logic 314, which is connected to the data cache 31 5 'is used to recover the data for performing the specified cryptographic operation. The data cache 31 5 is connected to the memory through the memory bus 31 9 Body 321. Executing logic circuit (executionicogic) 328 and load logic circuit (load logic) 314 are connected and the operation circuit designated by micro-instruction execution communicated through the last 20 200536330 stage includes a logic circuit , Device,:, serial or local instructions), or a logic; t instruction combined 'or can be executed by micro instructions provided to it; 22 $: 4 effective early 7G. May be executed in the execution logic circuit 328 Shared by other circuits, microcode, etc. It is received by the input logic circuit 314, which is used to perform the data required for the early code calculation. The microinstruction order ~ ding t = the number of input text blocks 326 are executed, and the relevant output text n is generated. Different, with a micro instruction or a local instruction), or a logical 4: or (that is, a combination of codes, or an equal 4 or micro: unit that can perform cryptographic operations, the unit that performs cryptographic operations in 316. Commonly used by microcode, that is, crying in this microprocessing: f other functions. In one embodiment, the poor: complete other implementations of its circuit 328 within 3 1 "Shan Shanwei", early two 316 and execution Logic elements, floating-point units, etc. are executed in parallel, such as integer single-the embodiment includes a logic circuit path :: Waizhong-"Single combination, or can be a circuit, device or micro early. These are in -A special unit: or an equivalent specified function element of a specified function may perform the specified operation or execution, that is, 1 circuit, microcode, etc. executed in the microprocessor 301 are the same, in one embodiment — 敕 tf! /, Other functions or operations. For example, the positive number 70 series contains logic circuits, 200536 330 J set or T code (that is, a combination of microinstructions or native instruction circuits, devices, or microcodes, η T, or a logical equivalent unit. A floating-point unit: a line containing integer instructions (that is, a microinstruction or this Machine instructions), or θ2 circuits, devices, or a combination of microcode or microcode, or equivalent units of & ^ capable of executing fixed logic circuits and devices to execute integer instructions within integer units. In an embodiment where the floating point unit can share the capacitor x86 system, 宓 = foreign point instruction. In phase integer units, a x86 floating-point unit, an early 316 and an x86 extension set unit, and an x86 stream. Two X86 multimedia. According to the present invention, one compatible = two early elements are executed in parallel. The embodiments can correctly implement most of the :: two fingers this practice. If you get a correct social result, this method is correct. The available embodiment expects a cryptographic unit to perform if μ @ ^ & selection of a subset of x86 phases in parallel execution. The X86 execution unit logic circuit "tore = is connected to a block of output text 327 keys. Corresponding plurals are stored, and ten storage logic circuits 317 are also connected to the material cache 31 5 which sends the output text data 3 2 7 to the system, first. [Thinking 3 21 places for storage. The storage logic circuit 3! 7 is cleaned and connected to the write back logic circuit 318. 菖 才 说 疋 氆 's code operation is complete. The write back logic circuit 318 will update the temporary register in the register group 307. Registers 308-313. In one embodiment, the micro-instruction system is synchronized with a clock signal (not shown), and flows through the logic stages 302, 303 '304, 30 7, 314, 316-318, so that these operations can be performed in parallel, just like an assembly line. 22 200536330 In system memory 321, an application that needs to specify a cryptographic operation can pass a separate cryptographic instruction ((^ ryptographic instruction ) 322 direct drive micro ^ 1 to perform this operation. Here is a password (XCRYPT) instruction ^ as an example. In a complex instruction set computer embodiment: password, order 322 contains a finger that specifies a password operation =. In the reduced instruction set computer In the embodiment, the cryptographic instruction 322 includes a microinstruction that specifies a cryptographic operation. In one embodiment, 322 utilizes redundant or unused spoons in the existing instruction set architecture. Encoding. In a χ86 compatible embodiment, Cryptographic instructions, renunciation ^ r 4-byte instructions, which consists of a χ86 heavy 稷 just set (ie 0xF3), followed by 2 bytes unused stone! 0 side) 'plus! Bytes indicate a specific block ciphertext mode used when performing ί: ΐt, code calculations. The system permission level of the system is used to = be used by a program or under the control of an operating system and system 320. , Write to the program instruction stream, and make it available to the 301. Because the specified cryptographic operation is performed only two or two = ^ state 322 driving micro-processing H 301 g 卩 γ n, the male code is commanded to the operating system For 320, the operation will be completely transparent. The system 32 is executed on the micro-processing H 301. During the execution of the program instruction, the-part of the instruction stream is provided to the fetch logic circuit 302 during the password instruction period. However, before the memory 322, the The ^ password instruction causes the internal register 30 of the initial register 308-3 [2]. Today, M causes it to point to locations 323-327 in 23 200536330 memory 321, these locations contain a password control character (CryPt〇graphic contr〇i word) 323, an initial cryptographic key 324 or a key schedule 324, an initialization vector 325 (if necessary), for operation input Input text 326 and output text 327. It is necessary to initialize the temporary state 308-31 2 before executing the password instruction 322, because the password instruction 322 directly uses these registers 3008_312 and an additional register 313 for storing a block number without checking. The number of blocks refers to the input text area. The number of data blocks in 326 that need to be encrypted or decrypted. In this way, the translation logic circuit 303 retrieves the cryptographic instruction from the retrieval logic circuit 302 and translates it into a series of corresponding microinstructions that drive the microprocessor 3101 to designate cryptographic operations. In the corresponding system = a first group of micro-instructions 3 05_3 06 in the #f is the driving password to download the data provided by the download logic circuit 314 = the number of password rounds to generate-corresponding input ^ 2枓 S block and store the corresponding output data area by the data cache 315 to store the data in the f sub-area 327 of the memory 321. In one of the corresponding series of micro-instructions, J (not shown) drives the other executives of the microprocessor 301 (shown in figure 2) to perform other necessary operations to complete the specified escape code operation, such as adding capital / Solution, batch you ten mountains in / Solution where a set of input text 326 = g temporary storage of intermediate results and count of non- ^ (P0inL ^^ (Work 2 '3: Bu 312' update initialization vector index register v initlSll23ti 〇n VPpfnr * 4- ector pointer register) 310 24 200536330 (if necessary) and handle the current interrupt, etc. In one example, the register 308_313 is a structure register, and the structure temporary register 308 31 3 refers to In the instruction set architecture (instructi⑽set = J_hLtecture, ISA), a single microprocessor is used to implement a single microprocessor-defined embodiment, the password is a single 1¾ segment, thereby allowing pipelined continuous input text block 326. The block diagram 300 of Figure 3 The basic group used to describe the present invention is early: therefore, for the sake of clarity, the logic circuits in the current microprocessor 3101 are ignored by the block diagram 300. However, the operator will understand that Depending on the specific implementation today j The β 3 () 1 series contains many stages and logic circuit units, but for the purpose of clear expression, the logic Leila qm 'is gathered and loaded together. For example, it includes an address generation stage, but it is worth noting It is in the plural; the alignment phase. A 22-element arithmetic on several input text blocks 326 of Jia-Du-Mu is transparent according to the present invention through the perspective of a separate password instruction. The dedicated password unit 31 6 of the system 320 goes to “Shi”, “Shi”, the line is coded through the processor 301, and the code is 316 series and micro ^ ^ ^ ^ :) ;, ^ ^ f ^ ^ 31 β 66 香 # 加 ', planted reconstruction, special floating-point "hard system for code early" :: 3 2 2 operation provided by the previous microprocessor and previous work ^ 31 6 and related passwords The instruction issuing operation is completely compatible. 320 and Application Refer now to Figure 4, below. The confession is not intended to show that according to the invention "-^ Microcode deduction ^ 400 according to the present invention includes an optional embodiment. The password instruction field) 401, then a block 〇ptl0nal prefix field 402, followed by a repeatprefix (repeatprefix, 〇PC〇defield mode field) 404, a horse-shaped block ( The content of bl〇Ck Cipher and the χ86 instruction are in: ^ In the embodiment, block 404 and 404 to accommodate other instruction sets; The reconfigurable embodiment is still in its infancy, and the current w and $ t are many The instruction set architecture's leading field 401 is implemented in these operating characteristics, # &,# this or disables the search of the main microprocessor, performs 16-bit or 32-bit operations, and performs two or two special memories. Segments, etc. Repeat the preblock 402 into the data block (that is, the plain text 'will also imply a suitable element in the plurality of input bits 402. Repeat the contents of the preblock block register to use multiple frames lb ^, as the 'private' in the memory of the system, the memory contains a specific number. As mentioned above, in the -χ86 compatible second reality: two shells to send the code command disk Μηνς 4, Words of knowledge, x86 repeats such as blood PMOVS are similar to Aita. For example, 'when implementing the present invention In the embodiment of the microprocessor, the preceding stop finger is repeated; the source address indicator in the block calculation register Esi of the structural register Ecx (indicates that the password is imported into the greed) is stored and stored in the temporary register. The destination address in the register EDI:: indicates the output data area in the production memory). In the χ86? Embodiment, the present invention makes the repeat of the content of the instruction sequence more: 26 200536330 There is a control in the temporary storage f EDX Character index, index of the cryptographic key stored in BX, and index of the initialization vector stored in the temporary cry: (if specified). &Amp; required for the old-fashioned chip, the different code block 403 specifies micro The processor completes the password operation, and is delimited in the control characters stored in the memory, =? Is indicated by the control character indicator. This = use the field to delete, "瞀" is stored in the instruction set structure One of the spare or unused shipping codes to keep old jobs
應用軟體符合的微處理器之一致性。舉例而二, 前所述,運算碼欄位4〇3施行數值〇x〇FA7,二° 說明ΐ密碼運算。區塊密碼模式攔位: 二二殊區塊密碼模式’以在具體說明密碼運算期 間執行,如圖5所示。 之雷示了一表500’此表500緣示了根據圖4 電子…構的不範性區塊密碼模式欄位的數值。數 =0xC8私疋密碼運算可藉由使用電子碼書 拿、Application software conforms to the consistency of the microprocessor. For example, as described above, the operation code field 403 performs a value of 0 × 〇FA7, and 2 ° indicates a cryptographic operation. Block cipher mode block: Two or two special block cipher modes' are executed during specific cryptographic calculations, as shown in Figure 5. A table 500 'is shown in the table 500. This table 500 shows the value of the cryptographic mode field of the non-standard block structure according to FIG. 4. The number = 0xC8 private password operation can be obtained by using an electronic codebook,
Ϊ Ϊ而完成。數值〇xDO指定密碼運算可使用密碼^ ^串列模式而完成。數值〇χΕ〇指定密碼運算可使用 山碼回授模式而完成。數值〇χΕ8指定密碼運算可使 用輸出回授(output feedback,〇FB)模式而完 ,。,塊密碼模式攔位404的所有其他值會被保 奋。這些模式在前述的FIPS内文中有所描述。 現在來看圖6,示意圖詳細描述依據本發明在 個χ86相容微處理器(micr〇processor) 6〇〇裏 ^ 禮碼單元(cryptography unit) 617。微處理 為600包括一個從執行記憶體(未圖示)擷取的擷 27 200536330Ϊ 完成 and done. The value 〇xDO specifies that the password operation can be completed using the password ^ ^ serial mode. The value 〇χΕ〇 specifies that the cryptographic operation can be completed using the mountain code feedback mode. The value 〇χΕ8 specifies that the cryptographic operation can be completed using the output feedback (output feedback) mode. All other values of block cipher mode block 404 will be guaranteed. These modes are described in the aforementioned FIPS text. Turning now to FIG. 6, a schematic diagram depicts a cryptographic unit 617 in a χ86 compatible microprocessor 600 in accordance with the present invention ^. Microprocessing for 600 includes a capture from execution memory (not shown) 27 200536330
路602包括一個連接到微碼唯讀記憶體(microcode ROM 604上的轉譯器(translat〇r ) 和輸出回 輯電路(translation logic) 602 路602包含邏輯電路、裝置或微碼 機指令)、或是一個邏輯電路、裝置 ic) 601。擷取邏輯電路6〇1 ’或是能夠將指令轉譯成微指令序 在该轉譯邏輯電路602中執行轉譯 他的電路、微碼等所共用,其係在 内執行其他的功能。該轉譯邏輯電 授模式邏輯電路(output feedback mode logic) 640,其係同時連接到轉譯器6〇3和微碼唯讀記憶體 604上。中斷邏輯電路(interrupt i〇gic) 通 過匯流排(bus) 628連接到轉譯邏輯電路602。數 個軟體及硬體中斷信號(interrupt signals) 627 將被中斷邏輯電路626處理,其將對轉譯邏輯電路 602顯示正在處理中斷。轉譯邏輯電路6〇2連接到 微處理器600的連續階段包括暫存器階段 (register stage) 605,定址階段(address stage) 606’ 載入階段(i〇ad stage)607,執行階段(execute stage ) 6 08,儲存階段(store stage ) 61 8 和寫回 階段(wr i te back stage ) 61 9。每個連續的階段係 包括完成指定功能的邏輯電路,這些特定功能與執 行擷取邏輯電路6 01提供的指令有關,且這些結構 在圖3的微處理器中以類似的名稱描述。圖6描述 的x8 6相容實施例60 0展示了執行階段6 08中的執 行邏輯電路(execution logic) 632,其包括並行 200536330 的執行單元(execution unit) 610、612、614、616、 617。整數單元 610 從微指令佇列(micro instruction queue) 609接收整數微指令以供執 行’浮點單元(f 1 oat i ng po i nt un i t) 61 2從微指 令佇列611接收浮點微指令以供執行,多媒體延伸 集單元(Multi-media Extensions,MMX) 614 從微 指令佇列61 3接收多媒體延伸集微指令以供執行, 串流延伸集單元(Streaming SIMD Extensions, SSE ) 61 6從微指令彳宁列61 5接收串流延伸集微指令 以供執行。在典型的X86實施例中顯示,一密碼單 _ 元(cryptography unit) 617通過一載入匯流排 (load bus) 620、一延遲信號(stall signal) 621 和一儲存匯流排(store bus) 622連接到該串流延 伸集單元616。密碼單元617共用串流延伸集單元 之微指令佇列615。可重構的實施例企圖孤立密碼 單兀617的平行作業,就像單元61〇、612及614 一樣。整數單元(integer unit) 610連接到一 X86 的旗標暫存器(EFLAGS register) 624上。旗標暫 ,,包括一個X位元625,X位元的狀態指示密碼運籲 算是否在處理中。。在一實施例中,X位元625是 一 x86旗標暫存器624的第3〇位元。另外,整數 單元610存取一機器特定暫存器(machine spec^ic register? 628以計算一 E位元629的狀態位元 629的狀態表明在微處理器6〇〇内是否存在宓碼單 元617。整數單元61〇也存取在特性控制^存器 · (feature control register )63〇 中的 D 位元 63卜 · 來打開或關閉密碼單元617。同圖3的微處理器實 29 200536330 施例301 —樣,圖β的微處理器600描述了本發明 在X 8 6相谷貫施例中的必要元件,並清楚集合或忽 略微處理器的一些元件。一個熟悉該項技術者將了 解到其他的元件也必須被用以完成該介面諸如資料 快取(未圖示)、匯流排界面單元(未圖示)、時脈 產生和分頻邏輯電路(未圖示)等。Circuit 602 includes a microcode ROM (translator on microcode ROM 604) and translation logic 602. Circuit 602 contains logic circuits, devices or microcode instructions, or It is a logic circuit, device ic) 601. The fetch logic circuit 601 'or the instruction can be translated into a microinstruction sequence. The translation logic circuit 602 performs translation and is shared by other circuits, microcodes, etc., which perform other functions therein. The translation logic power supply mode logic circuit (output feedback mode logic) 640 is connected to the translator 603 and the microcode read-only memory 604 at the same time. The interrupt logic circuit (interrupt iogic) is connected to the translation logic circuit 602 through a bus 628. Several software and hardware interrupt signals 627 will be processed by the interrupt logic circuit 626, which will indicate to the translation logic circuit 602 that the interrupt is being processed. The successive stages of the translation logic circuit 60 connected to the microprocessor 600 include a register stage 605, an address stage 606 ', a loading stage (iod stage) 607, and an execute stage ) 6 08, store stage 61 8 and write back stage 61 9. Each successive phase includes a logic circuit that performs a specified function. These specific functions are related to the execution of the instructions provided by the fetch logic circuit 601, and these structures are described by similar names in the microprocessor of FIG. The x8 6 compatible embodiment 60 depicted in FIG. 6 shows execution logic 632 in execution stage 608, which includes execution units 610, 612, 614, 616, 617 in parallel 200536330. Integer unit 610 receives integer microinstructions from micro instruction queue 609 for execution 'floating point unit (f 1 oat i ng po i nt un it) 61 2 receives floating point microinstructions from microinstruction queue 611 For execution, Multi-media Extensions (MMX) 614 receives micro-instruction queue 61 3 from the micro-instruction queue 61 3 Streaming SIMD Extensions (SSE) 61 6 Instruction column 61 5 receives a stream extension set of micro instructions for execution. It is shown in a typical X86 embodiment that a cryptography unit 617 is connected through a load bus 620, a stall signal 621 and a store bus 622 To the stream extension set unit 616. The crypto unit 617 shares the micro instruction queue 615 of the stream extension unit. The reconfigurable embodiment attempts to isolate the parallel operation of unit 617, just like units 61, 612, and 614. An integer unit 610 is connected to an X86 flag register (EFLAGS register) 624. The flag is temporarily, and includes an X-bit 625. The state of the X-bit indicates whether the cryptographic operation is being processed. . In one embodiment, the X bit 625 is the 30th bit of an x86 flag register 624. In addition, the integer unit 610 accesses a machine-specific register (machine spec ^ ic register? 628 to calculate the state of an E-bit 629. The state of the bit 629 indicates whether a code unit 617 exists in the microprocessor 600). The integer unit 61 also accesses the D bit 63 in the feature control register 63 to open or close the crypto unit 617. It is the same as the microprocessor shown in FIG. 301—Likewise, the microprocessor 600 of FIG. Β describes the necessary components of the present invention in the X 8 6-phase trough embodiment, and clearly gathers or ignores some of the microprocessor. A person familiar with the technology will understand that Other components must also be used to complete the interface such as data cache (not shown), bus interface unit (not shown), clock generation and frequency division logic (not shown), and so on.
操作中’藉由擷取邏輯電路6 〇 1,從記憶體(未 繪不)取得指令電路並同步於時脈訊號(未繪示)提 供指令給轉譯邏輯電路602。指令電路提供至少一 指令,其用來指示一密碼運算,而指令電路包含邏 輯電路、裝置或微碼(即微指令或本機指令(nat i ν( instruction))、或是一個邏輯電路、裝置或微碼之 組合’由於指令電路並非為本發明的重點,於此不 再對此作詳細說明。轉譯邏輯電路6〇2轉譯每一指 令電路至微指令電路的對應佇列,這些微指令佇^ 同步於一時脈訊號,連續地被提供給微處理器 後階段605-608、618和619。微指令序列中的每一In operation ', by fetching the logic circuit 601, the instruction circuit is obtained from the memory (not shown) and provided to the translation logic circuit 602 in synchronization with the clock signal (not shown). The instruction circuit provides at least one instruction for instructing a cryptographic operation, and the instruction circuit includes a logic circuit, a device, or a microcode (that is, a microinstruction or a local instruction (nat i ν (instruction)), or a logic circuit or device Or the combination of microcode ', since the instruction circuit is not the focus of the present invention, it will not be described in detail here. The translation logic circuit 602 translates the corresponding sequence of each instruction circuit to the microinstruction circuit. These microinstructions are: ^ Synchronized to a clock signal, it is continuously provided to the post-processor stages 605-608, 618, and 619. Each of the microinstruction sequences
ί電路指示子運算的執行,此子運算需完成全 ,運异,且此全面運算藉由對應指令電路而指定, =些對應指令可如底下的指令電路··藉由位址 6〇6之位,產生;整數單* 61〇中之兩相加運: =二此整數皁兀61 〇係從暫存器階段6〇5 = =(未繪示)而獲得;儲存執行單元61。、6 2疋ί The circuit instructs the execution of the sub-operation. This sub-operation needs to complete all operations, and the operation is different, and this comprehensive operation is specified by the corresponding instruction circuit. = Some corresponding instructions can be the same as the instruction circuit below. Bits, generated; two-phase addition in the integer list * 61〇: = two This integer soap 61 is obtained from the register stage 605 = = (not shown); the storage execution unit 61 is stored. , 6 2 疋
Li、616、617之一所產生的結果,此儲存俜H 618所執行。根據被轉譯的指令,= 轉譯器6°3直接產生微指4;: ^又仔來自微碼唯讀記憶體604的序列,或者使 30 200536330 產生序列的—部份並獲得來自微碼 :二的現存序列部份。微指令與時脈訊 二同=隨後階段605_6〇8、618和619而 ΐ以ίΐ ϊ到達執行階段6°8時,他們與其運算 馬以及被&疋的執行單元61〇、61 2 61 4 61 6 61 7 (在暫存器階段605中自暫存 段606中的邏鞋雷跋娇其a 4于Α者被疋址产白 自資料生,或者藉由載入階段607 科快取:取得)一起被執行邏輯電路6 由被相對應的微指令序列_、611 fiu #換微指令而達成。執行單元610、612、 、ΓΓ7執行微指令並提供結果給儲存階段 6軍1i。工在,實施例中,微指令包含指示其是否 運异平行執行的攔位。 〃匕 輯電ί ί ϊ Γ Γ得一密碼指令做出回應’轉譯邏 600中的、卓絝畔ί目關的微指令,其係驅使微處理器 的密碼運算:I!0二0二、618、619使執行指定 β1? ^一、、且相關的微指令係直接發送到 二.Π的ΐ料1 = Γ-給定數二載;心 輪出資料區塊到健存匯=ί 3儲存邏輯電路618保存到記憶體中。 吏 相關的微指令發送到其他 弟一.'且 …、㈣使執行完成指定密碼執運丁/所: 試E位元,啟動 位兀625以表明當前有一密碼運管正叹置X 暫存器階段605的暫存器(例如計複數S;存ΐ新 31 200536330 輸入文字指標暫存器、輸 中斷邏輯電路文子4曰‘暫存斋),通過 單元微指627等。通過交錯密碼 係被提供作為多會盤广數早兀微指令,相關微指令 算之執行,以使敕^固輸入資料區塊上特定密碼運 被完成。微指令;ί ί二乍能夠和密碼單元操作並行 應中斷627和從中^ ^相關的微指令中以允許回 和資料的指桿都存# 返回。由於所有密碼參數 理中斷時他= ί Χ86的結構暫存器中,當處 中斷返回時恢復。=會被保存而且該等狀態在從 制將跳轉到相應 斷耘式控 料和控制字元被L青掉,以表示金鑰資 的一 密碼指令,並作為其相關微指令 以決定金4=::將!:ί位元625的狀態 效,該程式 :制子兀貝料疋否有效。如果有 塊繼續進;r卢、中斷發生之前的特定輸入資料區 ί==::果χ位元咖的狀態表明金鑰 讀取中斷再有;’將會重新到記憶體 和控制字开..处理特疋輪入資料區塊的金鑰 令總是之2據本發明,執行一條密碼指 單元617中全餘的初始測試,以決定在密碼 果金鑰資料iL :控制字元資料的有效性。如 取金輪資料/二制子兀資料無效,即可從記憶體讀 在輸人育料區塊上執行。另外,輸人資料區塊 32 200536330 的載入和指定密碼運算的執行並 資料和控制字元資料。 而I无戰入金鑰 如果有了一個新的金瑜和 Ββ ^ 行新:密,指令之前必須清掉;位;625 := 被執行。在這續:碼指令也能夠 控制字元資料被輪入後生:3初始化金鑰資料和 V坦古々也後/月掉X位元625。例如,為 二匯流排的速度’使用者可以將5〇〇個 = Ϊ的加密/解密分成5條密碼指令,其每 條扣7係可處理100個輸入資料區塊。 母 640二用”回授模式’輪出回授模式邏輯電路 八^作逸1運# _模式邏輯640確保相關的 文:?塊上之,: = = ; =列= :被更新。輸出回授模式邏輯電 第-區塊輸二的㈡;Ϊ:流:,這樣在執行 出資料區被更改指向下-輸入及輸 導浐二奸入ii j:,輸出回授模式邏輯電路640指 曰々插入到相應的微指令流中, 數益以表明當前輸入資料 6 ^ 二。十 成。-個熟悉該項技術者:希望在二:運异已經完 的加密操作使用一個初τ;η出回授;式下 文區塊使用以產生—第_密文=了 ^n 一明 作被用於初始化向量以產‘;‘二别一個密文操 隨後,藉著第-密文以ΐ;;;,輸出區塊。 斥或以產生-第一密塊;第:明文區塊的互 又&塊第—密文輸出區塊則 33 200536330The result produced by one of Li, 616, 617, this storage is executed by H 618. According to the translated instructions, = translator 6 ° 3 directly generates microfinger 4 ;: ^ and then the sequence from microcode read-only memory 604, or 30 200536330 to generate a part of the sequence and get from microcode: two Part of the existing sequence. Micro-instructions are the same as the clock message = the subsequent stages 605_6〇8, 618, and 619, and then ΐ ΐ ϊ When reaching the execution stage 6 ° 8, they and their operation horses and execution units 61 & 61 2 61 4 61 6 61 7 (In the register stage 605, the logic shoes Lei Bajiao from the temporary stage 606 are a 4 produced in the A from the data, or by loading the stage cache 607: Acquire) The logic circuit 6 is executed by changing the corresponding microinstruction sequence _, 611 fiu # to the microinstruction. The execution units 610, 612, ΓΓ7 execute microinstructions and provide the results to the storage phase 6 army 1i. In one embodiment, the microinstruction includes a stop indicating whether it is executed in parallel. 〃 辑 电 ί ϊ Γ Γ got a cryptographic command to respond 'in the translation logic 600, the micro instruction of Zhuo Lipan, which drives the cryptographic operation of the microprocessor: I! 0 220, 618, 619 make the execution of the specified β1? ^ 1, and the relevant microinstructions are sent directly to the two. Π's data 1 = Γ-given number of two years; the heart chase out the data block to Jiancunhui = ί 3 The storage logic circuit 618 is stored in the memory. The relevant micro-instructions are sent to other brothers. 'And ..., the execution is completed and the specified password is executed: / try E bit, start bit 625 to indicate that a password operation manager is currently sighing the X register Register in stage 605 (for example, count S; deposit new 31 200536330 input text index register, input interrupt logic circuit text 4 'temporary fasting'), etc. through the unit microfinger 627. The interleaved password system is provided as a multi-session micro-instruction, and the relevant micro-instructions are executed so that the specific password operation on the solid input data block is completed. The microinstructions can be executed in parallel with the operation of the crypto unit. It should be interrupted 627 and the relevant microinstructions from it ^ ^ are allowed to return and the data are stored. # Return. Because all the password parameters are interrupted, he = ί Χ86 in the structure register, and will be restored when the interrupt returns. = Will be saved and the state will be switched from the system to the corresponding interrupted material control and control characters are L Qing off, to represent a cryptographic instruction of the key, and as its related micro instruction to determine the gold 4 = ::will! : The status of the bit 625 is valid, and the program is: Whether the system is effective. If there is a block to continue; r Lu, the specific input data area before the interruption occurred = = :: fruit χ bit coffee state indicates that the key reading interruption will occur again; 'will be re-opened to the memory and control word. The key order for processing special round-in data blocks is always 2 According to the present invention, a full initial test in a cryptographic finger unit 617 is performed to determine the validity of the key data iL in the cryptographic key control data. Sex. If the gold wheel data / secondary system data is invalid, you can read it from memory and execute it on the input breeding block. In addition, the input data block 32 200536330 loads and executes the specified cryptographic operations and data and control character data. And I enter the key without a battle. If a new Jin Yu and Ββ ^ are new: secret, the instruction must be cleared before; the bit; 625: = is executed. Continued here: The code command can also control the character data to be rotated after birth: 3 Initialize the key data and V Tangguo also drop X bit 625 / month. For example, for the speed of the second bus, the user can divide the encryption / decryption of 500 = 分成 into 5 password instructions, each of which can process 100 input data blocks. The mother 640 uses the "feedback mode" round-out feedback mode logic circuit ^ 作 逸 1 运 # _pattern logic 640 ensures that the relevant text: on the block: = =; = column =: is updated. Output back模式: flow: so that the data area in the execution output area is changed to point down-input and input 浐 奸 ii ii j :, the output feedback mode logic circuit 640 refers to 々Insert into the corresponding micro-instruction stream, the number of benefits to indicate the current input data 6 ^ 2. 10%.-A person familiar with the technology: I hope that in the second: the encryption operation has been completed using a preliminary τ; η out Feedback; the following block is used to generate-the first _ ciphertext = ^ n a Ming Zuo was used to initialize the vector to produce ';' two other ciphertext operations, then, by the first-ciphertext to ΐ ;; ;, Output block. Reject or generate-first dense block; No .: Mutual & block of plaintext block No.-ciphertext output block 33 200536330
Μ — ί 一貫施例中,輸出回授模式邏輯電路640識 =一私定輸出回授模式加密或解密操作,並提供一 二明文區塊的一等效初始化向 輸出回授模式解密的完成乃係與 作者極為相似,只不過明文區塊 塊與密文輸出區塊產生。前一個 於初始化向量與後續的等效初始 ^指ί系列以更新結構暫存器中的指標,俾確保回 义給第一明文或密文區塊之後續區塊予合 初始化向量。 〜Τ从 在可替代的實施例中,輸出回授模式邏輯電路 6^0識別一指定輸出回授模式加密或解密操作,並 提仏&彳放指令系列俾1)在當前明文區塊及其相應 的f前密文區塊中執行一互斥操作以產生一可供下 旦區塊使用之等效初始化向量;2)將等效初始化向 量儲存到由初始化向量指標暫存器所指向之記憶體 ,置處,3)更新結構暫存器中之指標以確保回授給 第一明文或密文區塊之後續區塊予合適的等效初始 化向量。 現在參知圖7 ’圖表舉例說明了一條在圖6的 微處理器内執行密碼子操作的典型微指令7〇〇的結 構。微指令(micro instruction) 700包括一個微 運算碼攔位(micro opcode field ) 701,一個資料 暫存器攔位(data register field) 702和一個暫 存器攔位(register field) 703。微運算碼攔位 701表明了 一個要被執行的特定子操作,並且表明 34 200536330 了微處理器6 〇 〇執扞早^品你 雷踗 ^ 、宙外 丁子“作的至少一個階段的邏輯 通過依據本發明之密碼單元來“,= 電路提供至少一指令,其 指令電路包含邏輯電路4 ’而 ΐ: ;i=ve lnstructlon))、或是-個邏輯 發明的重點,於此不再曰令電路並非為本 轭例中,有兩種特殊值。—第 在個貫 表明要從記憶體位置重入(x應)」 i 二7:2所表示的結構暫存器之内容: f;:則係由暫存器攔位703所指定。重取 (例如金鑰資料、杵制宝 取到的貝科 化向量)係提供仏‘碼單_ 、f入文字資料、初始 一第—信了 微運算石馬攔位7〇1之 生的資料將要被儲存到一己怜體J擒:單元所產 資料暫存器攔位702所表;其位址係由 7M Γ 抢碼早兀之實施例令,暫存哭攔仞 7〇3指示數組輸出資 攔位 趙中。輸出資料區塊係由密的在,記憶 广二):”提供給錯存邏輯電路在存7。襴 月’有關密碼單元勃并# χ <以丄 依據本考又 描述,將在s 和儲存微指令的更詳細 k將在圖8和圖9中討論。 -條d:’人VGG描述了根據圖7的格式700, 令電路提供至少一指令’暫ί=。03,。微指 八用木知不一密碼運算, 35 200536330 = 邏fe電路、裝置或微碼(即微指令 短㊉敗、壯® 、 lnstructl〇n))、或是一個邏 ^ 衣置或微碼之組合,由於指令電路並非為 :::的重:二於此不再對此作詳細說明。4ί 令序;。上:指令的轉譯將引起產生一個微指 組微於人:7 ΐ列包含一被密碼單元執行的第一 科;二二組'二1且微指令,第二組微指令係被 &,第态έ /、碼皁兀以外的其他並行功能單元執 弟一組微指令完成諸如更新計數哭、 器、結構暫在哭、日丨丨τ要又瞀日寸暫存 夕处& v暫存。0、測滅和設置在機器特殊暫存哭上 之狀位元等子操作 ::仔-上 成ί鑰到密碼單元並驅動密碼單元使生 載入並加密(n叉憶體重取到的金鑰目錄), 文字資1 (或解进)輸入文字資料,及儲存輸出 字元資微指令為密碼單元提供載入控制 驅動密料,及載入輸入文字資料並 攔位703中的值〇_指定密碼曰 條指令是在管線上執行的,暫存;:二於這 實體位址,=二邏輯電路將位址轉譯成為 取到控制字%、。/此子取。載入邏輯電路從快取 ,,此日以字並ff制字元放置到資料攔位 存时欄位之值0bl00驅使密碼單元 ^ 36 200536330 在資料搁位7 〇 4所提供之於Λ a 〃 載入、執行指定密則 子貝料,及隨後便 資料通過-儲;;结U控制字元一樣,輸入 〇bl〇l表示資料欄位7 標被存取。值 到内部暫存器1 的輸入資料將被載入 資料可以輪入―1。载入到輸入-1暫存器的 貝才十J以疋輸入文字資料(者 以是-初始化向量。=二線。化處理時),也可 开八别恭入, 值〇bno和此111表示密碼單 中:個全鑰::f鑰或是在使用者所生成金鑰目錄 中個孟餘的低位元和高位元 者是指完成一個指定功处七共— >尿本表月使用 者可以是-應用程式:以;作的:體,使用Μ — In the conventional embodiment, the output feedback mode logic circuit 640 identifies a private output feedback mode encryption or decryption operation, and provides an equivalent initialization of a plaintext block to the output feedback mode. The department is very similar to the author, except that the plaintext block and the ciphertext output block are generated. The previous one refers to the initialization vector and the subsequent equivalent initial ^ series to update the indicators in the structure register to ensure that the return to the first plaintext or ciphertext block is followed by the initialization vector. ~ T From the alternative embodiment, the output feedback mode logic circuit 6 ^ 0 identifies a specified output feedback mode encryption or decryption operation, and provides & release instruction series 1) in the current plaintext block and A mutually exclusive operation is performed in its corresponding f before ciphertext block to generate an equivalent initialization vector that can be used by the next block; 2) The equivalent initialization vector is stored in the pointer pointed to by the initialization vector index register Memory, place, 3) Update the index in the structure register to ensure that the subsequent blocks of the first plaintext or ciphertext block are given the appropriate equivalent initialization vector. Referring now to FIG. 7 ', the diagram illustrates the structure of a typical microinstruction 700 that performs codon operations in the microprocessor of FIG. The micro instruction 700 includes a micro opcode field 701, a data register field 702, and a register field 703. The micro-operation code block 701 indicates a specific sub-operation to be performed, and indicates that 34 200536330 has the microprocessor 6 00 to defend the early ^ product you Lei 踗 ^ at least one stage of the logic operation According to the cryptographic unit of the present invention, the "== circuit provides at least one instruction, and the instruction circuit includes a logic circuit 4 'and ΐ:; i = ve lnstructlon)), or the key point of a logical invention, so no more instructions The circuit is not an example of this yoke. There are two special values. — The first row indicates that the memory location is to be re-entered (xying). ”I The content of the structure register represented by 7: 2: f ;: is specified by the register block 703. Re-fetching (for example, key data, Becollization vector obtained from Kizumi Treasure) is provided with 仏 'code list _, f-enter text data, initial first-believe the birth of the micro-operation Shima block 701 The data will be stored in a self-confidence body J: the temporary register block 702 produced by the unit; its address is the 7M Γ code premature embodiment order, temporarily storing the crying block 703 instruction array Exported funds to stop Zhao Zhong. The output data block is composed of dense memory and memory 2): "Provided to the misstored logic circuit in memory 7. The month is related to the cryptographic unit ## χ < according to this test and described, will be in s and A more detailed k of the stored microinstructions will be discussed in Figs. 8 and 9.-Article d: 'Human VGG describes the format 700 according to Fig. 7 to make the circuit provide at least one instruction' temporary = .03 ,. microfinger eight Use a different password to calculate, 35 200536330 = logic fe circuit, device or microcode (that is, a micro instruction short failure, Zhuang ®, lnstructl0n)), or a combination of logic ^ clothes or microcode, because The instruction circuit is not as heavy as :: 2: It will not be described in detail here. 4ί Order sequence: Upper: The translation of the instruction will cause a micro-finger group to be less than the human: 7 The queue contains a cryptographic unit The first section of execution; two or two groups of two and one micro instructions, the second group of micro instructions are & Cry, device, structure is temporarily crying, day 丨 丨 τ must be stored in the next day & temporary storage & v temporary storage. 0, measurement and setting Sub-operations such as crying on the machine's special temporary storage device :: Tsai-up into a key to the password unit and drive the password unit to load and encrypt the key (the directory of the key obtained by the n-fork memory), the text resource 1 (or unpack) input text data, and store output character information. The micro-instruction provides loading control-driven secrets for the password unit, and loads the input text data and blocks the value in 703. Executed on the pipeline, temporarily stored ;: Second to this physical address, = The second logic circuit translates the address to fetch the control word%, / this sub-fetch. Load the logic circuit from the cache. FF characters are placed in the data block and the value of the field 0bl00 drives the crypto unit ^ 36 200536330 Provided in the data slot 7 〇 4 to Λ a 〃 Load, execute the specified secret rules, and then The data will be stored in the same way; the same as the U control character, enter 0bl01 to indicate that the data field 7 is accessed. The input data valued to the internal register 1 will be loaded and the data can be rotated to -1. Bei Cai ten J loaded into the input -1 register to enter text data ( Or it is-initialization vector. = Two-line. During the process of processing), you can also open eight to enter, the value 〇bno and this 111 represents the password list: a full key :: f key or the user generated gold The low and high bits of each Meng Yu in the key directory refers to the completion of a specified function of the Seven Communist Party-> The user of this watch can be-application: to; made: body, use
Ul 1個實施例中,使用者生成金鑰目 者二志i式建立,。在一可替代的實施例中, 者生成金餘目錄是由人所建立的。 / #在/個實轭例中,暫存器項的值0bl00和0bi〇l !;:,:碼單元分為兩個階段,該連續的輸入文 區塊夠被管線執行。因此,為了使兩個連 塊進行管線運作’一第-載入微指 7執仃、.,a輸入-1提供了一第一輸入文字資料區 塊,隨後執行一第二載入微指令給輸入_〇提供一第 一輸入文字資料區塊,同時驅動密碼單元開始執行 指定的密碼運算。 狄士果使用者生成金鑰目錄被用來執行密碼運 异,那麼和使用者生成金鑰目錄的金鑰數量相對應 的數個載入微指令將被發送到密碼單元,係用以 入在金錄目錄中每一回合金錄。 載入微指令之暫存器欄位703的所有其他值予 37 200536330 以保留。 芩照圖9,表900係展示根據圖7的格 二2存微指令的暫存器攔位7〇3的值。微指 k t、至少一指令,其用來指示一密碼運算, :路包含邏輯電路、裝置或微碼(即微:令心: =uveinstructlon))、或是一個邏輯= 或楗碼之組合,由於指令電路並非為本發明的 ^單於2再對此作詳細說明。儲存微指令3 t供給儲存邏輯電路’將其儲存在資料暫二二f 邏輯電因此,根據本發明,轉譯 ^铒電路在為其相關輸入字區评: 指令後,為特定的輸出k條載入微 反 ^ ^ 科〗文子&塊發达一條儲存;^ > 器攔位703的值〇_指示密碼ΐί:: 二邛輸出-0輸出一〇暫存器將輸出文 ^ : 儲存。輸出一0的内容和提供到於入 、輸入文字區塊係時有關聯 ^ ^ =物〇!,内部輸出—i暫存器::容 ^ 的輸入文字資料也是關聯的。因此,#I ~ 金鑰和控制字开咨姓—μ u此,載入完 佐制子兀貝枓之後,複數個 了从通過以载入.輸入入於人Λ又子區塊就 ~〇也可以驅動密碼單元碼(载入.輸入 小儲存‘輸出-心二:/存‘輸出 始對下面兩個輸入文字區塊 ^入.輸入-〇 (開 碼微指令,使通過@二二二 '乍)的次序發送密 便通過么碼早7G管線執行。 見在來看圖10,依據本發 一個典型的控制字元柊+ f 7圖表者重描述了 (control word f〇rmat) 38 200536330 i:;二制Λ元指定了密碼運算的密碼參數。"i 子兀1 〇〇〇是由使用者編寇山数&制 密碼運算之前,其指# 彳记憶體的’而在執行 暫存器所提供。因此「做為—3:微處理器的結構 包含邏輯電路一欲碼運算,而指令電路 (nati: +或微碼(即微指令或本機指令 置或微碼之1 點’於此不再對此作詳明。重 取)讀取控制字 控制字元暫存器中。沐岳丨—載到岔碼单兀的内部 (RSVD)攔位°°1〇〇1工1子^ 1 000包括一個保留 _,一個加密/解密;'Ε=^(ΚδΙΖΕ)攔位 攔位1 005, 一個嘧曾i /ΑΤ们金鑰產生UGEN) 合計數⑽r二r)廳 ^ m t ^^ λ ^ 铪士 才日疋了用來元成加密或解密的金 i28 一個實施例中,金鑰大小攔位或者是一 η绩,或者是一192位元金鑰,或者是- 是加资mt密/解密欄位ι〇03指定密碼運算 ^密操作。金鑰產生攔位ι〇05表明 二的是一使用者生成金餘目錄還是-單 果疋一早一金鑰的活,微指令將和金 39 200536330 鑰一起發送到密碼單元,使根據演算法攔位丨〇〇6 指定的密碼演算法,驅動單元將金鑰擴展為金鑰目 錄。在一個實施例中,演算法攔位1 〇〇6指定的演算 法為到此為止討論過的資料加密標準(Data Encryption Standard, DES )演算法,三重 (Triple-data Encryption Standard, Triple-DES)演算法或是進階加密標準(AdvancedUl In one embodiment, the user generates a key and the target is created in an i-style manner. In an alternative embodiment, the author-generated gold list is created by a person. / # In / examples of real yoke, the values of the register items 0bl00 and 0bi0l!;:,: The code unit is divided into two phases, and the continuous input text block is enough to be executed by the pipeline. Therefore, in order to make two consecutive blocks perform a pipeline operation, a first-loading micro-finger 7 executes,., A input -1 provides a first input text data block, and then executes a second load micro-instruction to Input_〇 provides a first input text data block, and at the same time drives the cryptographic unit to start the specified cryptographic operation. The Disco user-generated key directory is used to perform cryptographic operations. Then several load micro-instructions corresponding to the number of keys in the user-generated key directory will be sent to the crypto unit, which are used to enter Every time the alloy record in the gold record directory. All other values in the register field 703 of the load micro instruction are reserved to 37 200536330. According to FIG. 9, the table 900 shows the value of the register block 703 that stores the microinstruction according to grid 2 in FIG. 7. Micro-finger kt, at least one instruction, which is used to indicate a cryptographic operation,: The path contains a logic circuit, device or microcode (ie micro: reassuring: = uveinstructlon)), or a combination of logical = or 楗 code, because The instruction circuit is not the ^ list of the present invention and will be described in detail. The stored microinstruction 3 is supplied to the storage logic circuit 'stores it in the data temporarily 22 f logic electricity. Therefore, according to the present invention, the translation circuit evaluates the relevant input word for the instruction: the specified output k Enter the micro-^^ section〗 文 子 & block developed a storage; ^ > the value of the device block 703 〇_instruction password ΐ :: 2 邛 output-0 output 10 The temporary register will output the text ^: store. The content of output 0 is related to the input and input text blocks. ^ ^ = 物 〇 !, the internal output-i register :: capacity ^ input text data is also related. Therefore, #I ~ the key and the control word to open the surname — μ u. After loading the sub-subsidiary Wubei, load a plurality of from to load. Enter in the person Λ and sub-blocks ~ 〇 You can also drive the password unit code (load. Enter the small storage 'output-heart two: / save' output to the following two input text blocks ^ input. Input-0 (open code micro instructions, make it through @ 二二二The sequence of sending the secrets is performed through the early 7G pipeline. See Fig. 10. According to this post, a typical control character 柊 + f 7 is described again by the charter (control word f〇rmat) 38 200536330 i :; the two-system Λ element specifies the cryptographic parameters for cryptographic operations. " i 子 兀 1 〇〇〇 is a user-edited Kou Shan number & cryptographic operations before, it refers to # 彳 Memory ''s and The execution register provides. Therefore, "as—3: the structure of the microprocessor contains logic circuits for code calculations, and instruction circuits (nati: + or microcode (that is, microinstructions or 1 point 'will not be explained in detail here. Re-fetch) Read the control word control character register. Mu Yue 丨-loaded to the fork code unit Internal (RSVD) block ° ° 〇〇〇1 work 1 child ^ 1 000 includes a reserve _, an encryption / decryption; 'Ε = ^ (ΚδΙΚΕ) block 1 005, a pyrazine i / ΑΤ 们 金Key generation UGEN) Total number ⑽r r r) Hall ^ mt ^^ λ ^ This is the day when the i28 is used to generate encryption or decryption. In one embodiment, the key size block is either a η result, or Is a 192-bit key, or is-is the mt encryption / decryption field ι03 specified cryptographic operation ^ encryption operation. The key generation block ι05 indicates whether the second is a user generated surplus directory or -In the case of a single key in the morning, the micro-instruction will be sent to the crypto unit with the key of 39,39,363,530, so that the drive unit will expand the key to the key directory according to the crypto algorithm specified by the algorithm. In one embodiment, the algorithm specified by algorithm block 1006 is the Data Encryption Standard (DES) algorithm discussed so far, and the Triple-data Encryption Standard (Triple-DES) ) Algorithm or advanced encryption standard (Advanced
Encryption Standard, AES)演算法。可替換實施 例企圖包含其他的演算法,諸如Rijndael密文, ^wo+fi^sh密文等。回合計數攔位1〇〇7的内容依據給 定演算法完成每一輸入文字區塊所給定的密碼回合 數。雖然以上的密碼演算法標準指定了每一輸入文 字區,的=密碼回合數,但是提供回合計數欄位 0 0—7允許程式師更改該標準所指定的回合數。在一 ::施:列中’程式師可以給每個區塊指定0到15 二二,中間結果欄位1 004的内容指定一個輸 密/解密是否根據演算法欄位』 —、山馬/貝异法標準,以回合計數欄位1Encryption Standard (AES) algorithm. Alternative embodiments attempt to include other algorithms, such as Rijndael ciphertext, ^ wo + fi ^ sh ciphertext, and so on. The content of round count block 1007 completes the number of password rounds given by each input text block according to a given algorithm. Although the above password algorithm standard specifies each input text area, = number of password rounds, but provides a round count field of 0 0-7 to allow programmers to change the number of rounds specified by this standard. In the 1 :: Shi: column, the programmer can assign 0 to 15 to 22 for each block, and the content of the intermediate result field 1 004 specifies whether an encryption / decryption is based on the algorithm field ”——— 山 马 / Bayan law standard to round count field 1
疋的回合數執行者,或者該解 項1 006指定的、、宫曾土 山/解4疋否根據ALG 的回八數勃—〜开以回合計數攔位1 007指定 二;ίΐ二;最後:回合執行結果是-個中間 每一回人中I, ^ 個熟悉該項技術者將希望在 作,除了σ最德^ 碼演算法都執行相同的子操 結果攔位1 004 行者以外。因此’對中間 果,可允許程式“‘供:f結果而不是最後結 如’可以通過在—個卜J運异法的中間步驟。例 文子區塊上執行一回合加密, 200536330 然後在該相同文字區塊上 等’以獲得累加的中間結 提供可編程回合數和中間 驗證密碼編碼性能,檢測 構和回合數的效用。 執行兩回合,然後3回合 果以驗證演算法的性能。 結果的功能之使用者能夠 故障,並探究不同金鑰結 參照圖11,方塊圖詳細描述了依據本發明的密 碼單元(cryptography unit) 11〇〇。密碼單元 n(j"〇 包括一個通過微指令匯流排1114接收密碼微指令 電路(即載入和儲存微指令)的微運算碼暫存器 1103。密碼微指令電路提供至少一密碼指令,其^ 來指示一密碼運算,而指令電路包含邏輯電路、裝 置或微碼(即微指令或本機指令( i ns true t ion ))、或是一個邏輯電路、裝置或微碼之 組合,由於指令電路並非為本發明的重點,於此不 再對此作詳細說明。密碼單元丨丨〇〇也具有_控制字 元暫存器(control word register) 1104、一輸入The player who performed the number of rounds, or the one specified by the solution item 1 006, and Miyazaki Dosan / Solution 4: Is it based on the return of the ALG, the number of rounds is ~ 开, and the number of rounds is 1 007, and the second is the last; : The execution result of the round is that in the middle of each round, I, ^ people who are familiar with the technology will hope to do it, except that the σ code algorithm performs the same sub-operation results to block 1 004 pedestrians. Therefore, 'for intermediate results, the program' for: f result instead of final result 'can be passed in an intermediate step of a different method. For example, a round of encryption is performed on the subblock of the text, then 200536330 and then the same The text block is superior to get the accumulated intermediate knot to provide programmable round number and intermediate verification password encoding performance, to detect the utility of the structure and the number of rounds. Perform two rounds, and then 3 rounds of results to verify the performance of the algorithm. The function of the result The user can malfunction and explore different key structures. Referring to FIG. 11, a block diagram details the cryptography unit 110 according to the present invention. The crypto unit n (j " 〇 includes a micro-instruction bus 1114 A micro-operation code register 1103 for receiving a password micro-instruction circuit (ie, loading and storing micro-instructions). The password micro-instruction circuit provides at least one cryptographic instruction, which ^ indicates a cryptographic operation, and the instruction circuit includes a logic circuit, a device, or a Microcode (i.e., microinstruction or native instruction (in ns true tion)), or a combination of logic circuit, device, or microcode, because The instruction circuit is not the focus of the present invention, so it will not be described in detail here. The password unit 丨 丨 〇〇 also has a _ control word register (1041), an input
-〇暫存器1105、及一輸入-1暫存器11〇6、一 =输 -〇暫存器1107,一金鑰-1暫存器丨108。資料係^ 過載入匯流排(1 〇ad bus ) 1111提供給暫存哭 1 1 04-1 1 08 ,如同在微指令暫存器(micr〇 instruction register) 1103裏指定載入微指令内 谷。密碼單元Π 0 0也包括連接到所有的暫存哭 1 1 03-1 1 08和金鑰隨機存取記憶體(key ram) 1102 的區塊密碼邏輯電路(block cipher logic )丨1〇1。 區塊密碼邏輯電路提供一個延遲信號(stal i signal ) 1113,並將區塊結果提供到一輸出—〇暫存 器1109和一輸出-1暫存器mo。該等輸出暫存器 41 200536330 1109-1110 通過一儲存匯流排(s1;〇re bus) m2 發送他們的内容到一適合微處理器的相繼階段中。 在一個實施例中,微指令暫存器丨丨〇3是32位元的, 而其他的暫存器11〇4_m〇則都是128位元者。 在操作中,密碼微指令順序地傳送給微指令暫 存器11 03,同時控制字元暫存器1丨〇4或該等輸入 暫存态1105-1106中的一個,或該等金餘暫存器 1 1 07-1 1 08中的一個所指定資料也被發送。在參照 圖8和圖9所討論的實施例中,一控制字元首先 過一載入微指令載入到控制字元暫存器1 1 中。然 後通過後續載入微指令載入金鑰或金鑰目錄。如^ 一個128位元的金鑰被載入,一載入微指令即可提 供給指定暫存器金鑰-〇 1107。如果大於128位元的 金,被載入,那麼一載入微指令除了提供給指定暫 存益金鑰-0 1107外,亦同時提供暫存器金鑰j 1108所指定之一載入微指令。如果使用者生成金鑰 目錄被載入,則暫存器金鑰_〇 11〇7所指定的後續 載入微指令將被提供。被載人的金鑰目錄裏的每個 金鑰都被依次儲存在金鑰隨機存取記憶體11〇2 俾ί ΐ們相應的密碼回合中使用。繼這之後,輸入 文二i如果不需要初始化向量)將被載入到輸 二^存器tU〇6。如果需要初始化向量,它將通過 =載入微指令被載入到輸入_丨暫存器11〇6。作用 • Ϊ入於0暫存器1105的載入微指令驅動密碼單元 ϊίί輸人文字貧料到輸人―0暫存器1105,並開始 根據由控制字元暫存器1104提供的參數,使用 -1的初始化向量或兩個輸入暫存器ll〇5_n〇6 42 200536330 =資料係呈管線處理)以執行暫存器輸入—〇 文字資料的密碼回合。在收到輸入-〇η〇5 “二入微指令之後,區塊密碼邏輯電路1101 通,控制字元的内容開始執行所指定的密 。1 3-個單獨的金鑰需要被擴展,區塊密碼邏輯電 儲卩在金鑰目錄裏生成每個金鑰並且把他們 遺機存取記憶體1102裏。無論是否區塊 被碼邏軻電路1101產生金鑰目錄或是是否金先 載入,第一回合金鑰係被快取在該區 101内’以便該第-個區塊密媽回 ;:…而要存取金鑰隨機存取記憶體1102即可執 行 旦起動,區塊密碼邏輯電路11〇1乃在至少一 字執行規定的密碼運算直到該操 作被凡成,像被使用的密碼學演算法所要求的枵 ^金^隨。機存取記憶體1102中連續截取回合金 伽并雄―碼單儿1100在指定的輸入文字區塊上執行一 二疋的區塊密碼運算。連續的輪入文字區塊即可 二=應且連縯的載入和儲存微指令執行加密或解 :料L—Λ存微指令被執行後’如果被指定的輸出 二枓(即輸出-〇或輸出—n還沒完全產生,此時區塊 乃產生延遲信號1113。當輸出 ' . 並被置入一相應的輸出暫存器1109-1110 ^ 1112存态U 09111 〇的内容即被移轉至儲存匯流 、佳岬Hi圖12,一方塊圖說明了根據本發明使用 進^加雄、標準執行密碼運算的一個區塊密碼邏輯電 路(block cipher 1〇gic) 12〇〇的實施例。區塊密 43 200536330 碼邏輯電路1 2 0 0包括通過匯流排1 211 -1 21 4和匯流 排1216-1218連接到一回合引擎控制器(r〇und engine controller) 1210 的回合引擎(rouncj engine) 1 220。回合引擎控制器1210存取一微指令 暫存為(micro instruction register) 1201 ,控 制子元暫存器(control word register) 1202,金 输-〇暫存器1 203,以及金鑰—丨暫存器ι2〇4以存取 指不密碼運算的金鑰資料、微指令和參數等。輸入 暫存器(input register) 1 205-1 206的内容被提 供=回合引擎1 220及回合引擎丨22〇將相應的輸出 · 文字提供給輸出暫存器12〇7-1 208。輸出暫存器 1 207-1 2 08通過匯流排1216-1217連接到回合引擎 控巧器1 21 0,以確保回合引擎控制器能夠存取每個 連續密碼回合的結果,其係通過匯流排NextΙΝ ι21 8 為一下一個密碼回合提供給回合引擎122〇。金鑰隨 機存取記憶體(未圖示)的金鑰通過匯流排1 2丨5被 存取。加密/解密(ENC/DEC)信號1211驅動回合 引擎使用子操作執行加密(例如s —Β〇χ)或解密(例 如倒置S-Box)。回合計數(RNDC〇N)匯流排1212 · =内容驅動回合引擎1 220執行一第一進階加密標 準=合,一中間進階加密標準回合或者最後的進階 標準回合。金鑰產生(GENKEY)信號1214被用 二指導回合引擎1 220使根據匯流排1213所提供的 孟輪生成一金錄目錄。當它的相應回合被執行時, 金輪匯流排1 213乃提供給回合引擎1 2 2 0每一 Θ人 ^ 的金輸。 σ 回合引擎1 220包括連接到一第一暫存器暫存 44 200536330 -0 1222上的第一金鑰x〇r邏輯電路1221。第一暫 存杰1222係連接到s-Box邏輯電路1223,而S-Βοχ 邏輯電路1 223則係連接到移列邏輯電路(Shift R〇w 1 〇g i c ) 1 2 24上。移列邏輯電路1 2 24係連接到一第 二暫存器暫存-1 1 225處。第二暫存器1 225則連接 到混欄邏輯電路(Mix Column l〇gic) 1 226,混攔 邏輯電路1 226係連接到一第三暫存器暫存一2 1 227。這些在上面討論的進階加密標準FIps標準 中的第一金鑰邏輯電路1221,S —B0X邏輯^路 1 223移列邏輯電路1 2 2 4及混攔邏輯電路1 2 2 6係 在輸入文字資料上執行與他們名稱相同的子操作^ 移列邏輯電路1 226在中間回合期間需要通過金 匯,排1213使用回合金鑰在輸入資料上執行進 加密標準X0R功能。第一金鑰邏輯電路122i,s〜 ΐ?二路二邏輯電路 m也用來在解密期間通過加密/解密信號ι211 拴官來執行他們相應的逆進階加密標準子操作。一 悉該項技術者希望根據由控制字元暫存哭 的内容指定的特殊區塊加密模式,使 : 回授到回合引擎1220。初始化向量資料 122而0要)係通過匯流排NEXTIN 1218提供給回合引擎 在圖1 2所不的實施例中,合引擎 :階段:暫存,與暫存_1 1 225 :;== :,而暫存-1 1 225與暫存_2 1 227則係二白 時脈信號(未圖示)同步在p二 線傳运。當讼碼運算在-輸入資料區塊上完^ 45 200536330 1,相關輸出資料即被存 1 207-12 08。—微指令「 乂:應=出暫“ 出暫存器12〇7,8的内容被 (未圖示)處。 谷溉徒ί、至一儲存匯流排 次中早;ϊ =描述了根據本發明在- 發明,當-= =-0 register 1105, and an input-1 register 1106, a = input -0 register 1107, a key-1 register 丨 108. Data system ^ Overload bus (1〇ad bus) 1111 is provided to the temporary cry 1 1 04-1 1 08, as specified in the microinstruction register 1103 . The cryptographic unit Π 0 0 also includes a block cipher logic (block cipher logic) 1101 connected to all temporary cry 1 1 03-1 1 08 and key random access memory (key ram) 1102. The block cipher logic circuit provides a stal i signal 1113, and provides the block result to an output-zero register 1109 and an output-1 register mo. The output registers 41 200536330 1109-1110 send their content through a storage bus (s1; 〇re bus) m2 to a sequential stage suitable for a microprocessor. In one embodiment, the micro-instruction register is 32-bit, and the other registers are 104-m0. In operation, the password micro-instruction is sequentially transmitted to the micro-instruction register 11 03, and at the same time the control character register 1 〇 04 or one of these input temporary states 1105-1106, or the remaining balance The data specified in one of the registers 1 1 07-1 1 08 is also transmitted. In the embodiments discussed with reference to Figs. 8 and 9, a control character is first loaded into the control character register 1 1 via a load microinstruction. The key or key directory is then loaded by a subsequent load microinstruction. If a 128-bit key is loaded, the specified register key -0 1107 can be provided as soon as a micro-instruction is loaded. If more than 128 bits of gold are loaded, then a load microinstruction is provided in addition to the designated temporary benefit key-0 1107, and one of the load microinstructions specified by the register key j 1108 is also provided. If the user-generated key directory is loaded, subsequent load microinstructions specified by the register key_〇 11〇7 will be provided. Each key in the key catalogue of the carried person is stored in turn in the key random access memory 1102 and used in the corresponding password round. Following this, the input file (if no initialization vector is needed) will be loaded into the input register tU〇6. If the initialization vector is needed, it will be loaded into the input register 0106 via the = load microinstruction. Function • Load the micro-instruction-driven password unit entered in the 0 register 1105 to enter the input text into the input ―0 register 1105, and start to use the parameters provided by the control character register 1104. -1 initialization vector or two input registers 1105_n〇6 42 200536330 = data processing is pipelined) to perform register input-0 password round of text data. After receiving the input -〇η〇5 "two into micro instructions, the block cipher logic circuit 1101 passes, the content of the control character starts to execute the specified password. 1 3 separate keys need to be expanded, block cipher The logic storage generates each key in the key directory and accesses them to the memory 1102. Regardless of whether the block is generated by the code logic circuit 1101 or the key directory is loaded first, the first round of alloy The key system is cached in the area 101 'so that the first block secret mother can return: ... and the random access memory 1102 to access the key can execute the startup once, the block password logic circuit 1101 The predetermined cryptographic operation is performed in at least one word until the operation is completed, as is required by the cryptographic algorithm used. ^^^^. The machine access memory 1102 continuously intercepts and retrieves the alloy gamma and male-code Shaner 1100 performs one or two block cryptographic operations on the specified input text block. Successive rounds of text blocks can be used. Two = Response and continuous load and store microinstructions to perform encryption or solution: material L -Λ after the microinstruction is executed 'if the specified input is lost The second output (that is, output -0 or output -n has not been completely generated, at this time, the block generates a delay signal 1113. When the output '.' Is placed in a corresponding output register 1109-1110 ^ 1112, the storage state U 09111 The content of 〇 is transferred to the storage confluence, Kasaki Hi Figure 12, a block diagram illustrating a block cipher logic circuit (block cipher 1〇gic) using the standard and performing cryptographic operations according to the present invention 12 〇〇 Example. Block secret 43 200536330 code logic circuit 1 2 0 0 includes a bus engine controller (rundund engine controller) 1210 connected via bus 1 211 -1 21 4 and bus 1216-1218. Rouncj engine 1 220. The round engine controller 1210 accesses a micro instruction register 1201, a control word register 1202, and a gold lose -0 register 1 203, and key— 丨 temporary register ι204 to access key data, microinstructions, parameters, etc. that are not cryptographic operations. Input register 1 205-1 206 content is provided = round Engine 1 220 and Round Engine 丨 22〇 The corresponding output and text are provided to the output register 120-7-1 208. The output register 1 207-1 2 08 is connected to the round engine controller 1 21 0 through the bus 1216-1217 to ensure the round engine control The device is able to access the result of each successive password round, which is provided to the round engine 122 0 for the next password round through the bus NextIN 21 8. The key of the random access memory (not shown) is accessed through the bus 1 2 丨 5. Encryption / decryption (ENC / DEC) signal 1211 drives the round engine to use sub-operations to perform encryption (e.g., s-B0χ) or decryption (e.g., inverted S-Box). Round count (RNDCON) bus 1212 · = Content-driven round engine 1 220 executes a first advanced encryption standard = round, an intermediate advanced encryption standard round or a last advanced standard round. The GENKEY signal 1214 is used to guide the round engine 1 220 to generate a gold list based on the Menglun provided by the bus 1213. When its corresponding round is executed, the golden wheel bus 1 213 is provided to the round engine 1 2 2 0 for each Θ person ^ gold loss. The σ round engine 1 220 includes a first key x0r logic circuit 1221 connected to a first register 44 200536330 -0 1222. The first temporary storage unit 1222 is connected to the s-Box logic circuit 1223, and the S-B0x logic circuit 1 223 is connected to the shift logic circuit (Shift R0w 100g). The shift logic circuit 1 2 24 is connected to a second temporary register -1 1 225. The second register 1 225 is connected to a mixed column logic circuit (Mix Column 10gic) 1 226, and the mixed block logic circuit 1 226 is connected to a third register to temporarily store a 2 1 227. In the advanced encryption standard FIps standard discussed above, the first key logic circuit 1221, S — B0X logic 1 223 shift logic circuit 1 2 2 4 and mixed logic circuit 1 2 2 6 are input text Perform the same sub-operation on the data as their name ^ Shift logic circuit 1 226 needs to pass the gold exchange during the middle round, row 1213 uses the back alloy key to perform the encryption standard X0R function on the input data. The first key logic circuits 122i, s ~ ΐ? Two-way two logic circuits m are also used to perform their corresponding inverse advanced encryption standard sub-operations through the encryption / decryption signal ι211 during the decryption period. It is known that the technician hopes to give back to the round engine 1220 according to the special block encryption mode specified by the content of the control character temporary cry. The initialization vector data 122 and 0) are provided to the round engine through the bus NEXTIN 1218. In the embodiment shown in FIG. 12, the synthesis engine: stage: temporary storage, and temporary storage _1 1 225:; ==:, The temporary storage -1 1 225 and the temporary storage _2 1 227 are synchronously transmitted on the second line of the second clock signal (not shown). When the litigation code operation is completed on the -input data block ^ 45 200536330 1, the relevant output data is stored 1 207-12 08. — The contents of the micro-instruction "乂: == 出 暂" are stored (not shown in the figure). Gu Yitu, to a storage bus in the middle of the early morning; 描述 = describes the invention in accordance with the invention, when-= =
,處開始執行。指令流程並;是二 =晨描述的密碼指令。隨後,流程處理判斷區塊 而屮扭… 《罩中斷,不可遮罩中斷,頁 (中:Γ:換等等)發生要求在改變當前的指 iHf)去處理中斷事件。如果是,流 二即執仃區塊1 306。如果不是,流程在判斷區塊 發1迴圈,在此指令會繼續執行直到一次中斷事件 根據本發明,在區塊1 306時,因為有一中斷事 <發生,在將程式控制交給相應的中斷處理哭之 前,中斷邏輯電路指引清掉旗標暫存器内的^位 兀。X位兀的清除保證,當從中斷處理器返回時, 如果一區塊密碼運算在進行,它將被表明至少一個 :斷事件在發生,並且在由輸入指標暫存器内容所 才曰向的輸入資料區塊的區塊密碼運算繼續之前,俨 f字元資料和金鑰資料一定要重新載入。'隨 2 處理區塊1 308。 在區塊1 308,根據本發明,給所有包含與執行 46 200536330 =ί=運异有關的指標和計數器的結構暫存器係 到體。熟悉該項技術者希望在轉交控制 前,保存結構暫存器是在當前資料 二#衣置凡成的一個典型行為。從而,本 冓以斷事件期間提供“ 1310。 田暫存益被保存後,流程即處理到區塊 隨後’程式流係被移轉到中斷處理器。 通傻/;,L私即處理到區塊1 31 2。 在區塊1 31 2,該方法完成。熟系該 望圖13❺方法從中斷處理器:再: 1 3 0 2開始。 彳交丹-人彳丈區塊 現在參考圖丨4,流程圖描 t-次中斷事件發生的情況下:== =至 「曰:回授模式密碼運算的方法。 /瓜私在區塊14〇2開始,根據 ;指令指引密碼運算使用輸出回授模x式門=密 第一執丁二第一執行,也可以是自一 程弋如r生丨— 中斷事件執行中斷的έ士杲物 令:中斷處理器被執行後被傳回 7處。〉巩程隨後即處理到區塊u〇4。 1山碼扣 在區塊1404 ’依據本發明, 入指標暫存器的内容所指向的—f隐體内經由—輸 體被載入,並啟動一 貝料區塊係從記憶 指標暫存哭是由54=^、碼運算。特定的輸入 解掛)和指定的區塊密碼模二,例如’加密或 碼區塊串列、密碼 口電子碼書式、密 杈《輸出回授)所決定。例 47 200536330 女如果加在操作使用輸出^ ^ ^ ^ ^ ^ ^ ^ ^ 指標暫存器及一初始化於轳蕲接式,那麼輸入 該資料。對於一輪出回二::f =都被用來裝置 暫存哭俜指向下又果式加毯操作,輸入指標 3廿你知句下一個將要被宓 一輸出回授模式解宓择作^ ^ ^ 區塊。對於 向下一個即將被解密的密文 料妖存σ°則係才曰 密及解密兩者,初始化向存c授加 中的初始化向量位置處。對::子第m” 前-區塊之輸出密文=里關於- 用電子°如果—解密操作係被指定使 標以;=麼用以載入該資料之輸入指 暫存哭:、:ίί:ΐ向記憶體令下-個密文區塊的 子二々丨^王酼後處理到判斷區塊1 406。 在判斷區塊1 406, 一評估被用來 β 旗標暫存器中設置χ位元。如果疋否在- 表明目前依據本發明載入到一J 兀破設置,即 和金鑰目件β4 ΛΛ 在碼早兀的控制字元 "載掉,即表明 的。如上述間接提到的那樣,參;if目;係” 斷事件發生時,X位元即被清掉:】卜3,f:f中 的那樣,當需要載入一新控制以:卜,如上提到 個都必須載入時,在發送該密 J金鑰目錄或兩 掉X位元。在-使用X86旗標前即必須清 的X86相容實施例中,通過l弟30位元 P0PFD指令的腦 執^條^後有-條 月桿X位兀。不過熟悉該 48 200536330 項技術者將希望在其他可替代的實施例中,其他指 令必須被用來清掉X位元。如果x位元被設置,^ 程將處理區塊141 2。如果X位元被清掉,流程即處 理區塊1 408。 在區塊1408,由於一被清除的χ位元已經表明 一中斷事件已經發生,或者一個新控制字元和/或金 鑰貧料將被載入,因此一個控制字元乃從記憶體處 被載入。在一個實施例中,載入控制字元係阻止密 碼單元執行如上述區塊14〇4所述之指定密碼運 算。在這個典型的實施例中在區塊14〇4裏啟動一密鲁 碼運算係允許通過假定利用目前載入的控制字元和 金錄資料對複數區塊密碼運算進行優化。因此,當 剷輸入資料區塊乃被載入,而且密碼運算在檢查判 斷區塊1 406中X位元的狀況前就已經開始。流程接 下來即處理區塊1 41 〇。 在區塊1410,金鑰資料(即一金鑰或一完整的 金鑰目錄)係從記憶體處被載入。另外,依據最新 載入的控制字元及金鑰目錄,在區塊所述之輸 入區塊及初始化向量(或等效初始化向量)係被再鲁 次載入並執行密碼運算。流程隨即處理區塊141 2。 在區塊1412 ’被載入到區塊1404或區塊1410 中的輸入資料區塊(當前密文區塊或當前明文區塊) 被保存到一内部暫存器TEMP。流程隨後處理區塊 1414。 在區塊1414,一相對應於被載入輸入區塊的輸 出區塊係被生成。對於輸出回授加密,輸入區塊係 為一明文區塊而輸出區塊則係為一相對應的密文區 49 200536330 塊。對於輸出回授解密,輸入區塊係為一密文區塊 而輪出區塊則係為一相對應的明文區塊。流程隨 處理區塊1416。 在區塊1416,一等效初始化向量IVEQ係通過 輸出區塊與TEMP内容互斥所產生。流程隨後處理 塊 1418 。 在區塊1418,該等效初始化向量IVEQ係被寫 给初始化向量指標暫存器IVPTR内容所指向的記憶 ,位置,因此對隨後輸入區塊所指定輸出回授模^, Office begins execution. The instruction flow is not; it is the password instruction described by 2 = Chen. Then, the process processes the judgment block and twists ... "Mask interrupt, non-maskable interrupt, page (middle: Γ: change, etc.) requires that the current pointer iHf be changed to handle the interrupt event. If so, stream two executes block 1 306. If not, the process sends a loop in the judgment block, and the instruction will continue to execute until an interruption event. According to the present invention, at block 1 306, because an interruption event occurred, the program control was transferred to the corresponding Before interrupt processing, the interrupt logic circuit instructs to clear the ^ bit in the flag register. The X-bit clearing guarantees that when returning from the interrupt handler, if a block cipher operation is in progress, it will be indicated at least one: an interrupt event is occurring, and the direction indicated by the input index register contents Before the block password operation of the input data block continues, the 俨 f character data and key data must be reloaded. 'Process block 1 308 with 2. In block 1 308, according to the present invention, all the structure registers containing indicators and counters related to execution 46 200536330 = == different operations are linked to the body. Those familiar with the technology hope that before transferring control, the structure register is a typical behavior in the current data # 2 Zhizhi Fancheng. As a result, this event provided "1310." After the temporary storage benefit of Tian was saved, the process was processed to the block and the 'program flow system was transferred to the interrupt processor. Block 1 31 2. In block 1 31 2, the method is completed. The method in Figure 13 should be familiar. The method starts from the interrupt handler: then: 1 3 0 2. The block of Jiao Dan-Ren Xiao Zhang now refers to Figure 4 In the case of a t-time interruption event, the flow chart describes: == = to "said: the method of cryptographic operation in feedback mode. / Guai private starts at block 1402, according to the instruction; the instruction instructs the cryptographic operation to use output feedback. Modal x-type gate = dense first execution, second execution, or from a process such as r health 丨 — Interrupt event execution interruption order: The interrupt handler is executed and returned to 7 places. > Gong Cheng then processed to block u04. 1 mountain code is deducted in block 1404 'According to the present invention, the content of the input index register -f hidden body via-the input body is loaded, and The start of a block is from the memory index temporary crying is calculated by 54 = ^, code operation (specific input unhook) and the specified block Cryptographic mode two, for example, 'encrypted or code block series, password port electronic code book type, secret code "output feedback". Example 47 200536330 If the female is added to the operation, use the output ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ Register and one are initialized in the connection type, then enter this data. For a round of return two :: f = are used to install the temporary crying operation and point-by-point blanket operation, input indicator 3, you know The next sentence will be selected as the output feedback mode and selected as a ^ ^ ^ block. For the next ciphertext monster to be decrypted, σ ° is both encrypted and decrypted, and initialized to store c. At the position of the initialization vector in the grant. To :: Sub-m ”before-the output ciphertext of the block = li about-use electron ° if-the decryption operation is specified so that it is marked with = = to load the data The input refers to the temporary cry:,: ί :: ΐ 向 Memory order, a child of a cipher text block ^ ^ ^ Wang 处理 post-processing to judge block 1 406. In decision block 1 406, an evaluation is used to set the χ bit in the β flag register. If 在 is not present, it indicates that it is currently loaded into a j-break setting according to the present invention, that is, and the key element β4 ΛΛ is contained in the control character that is early in the code. As mentioned indirectly above, refer to the "if head; system" X bit is cleared when the fault event occurs:] Bu 3, f: f, when a new control needs to be loaded: Bu, As mentioned above, when both must be loaded, send the secret J key directory or two X bits. In the X86 compatible embodiment that must be cleared before using the X86 flag, the 30-bit POPFD is used. After the instruction is executed, there is-a bar X position. However, those skilled in the 48 200536330 will hope that in other alternative embodiments, other instructions must be used to clear the X bit. If x The bit is set, and the process will process block 141 2. If the X bit is cleared, the process will process block 1 408. At block 1408, because a cleared χ bit has indicated that an interrupt event has occurred , Or a new control character and / or key is expected to be loaded, so a control character is loaded from memory. In one embodiment, loading a control character prevents a cryptographic unit from executing such as The specified cryptographic operation described in the above block 1404. In this typical embodiment, it is started in block 1404 A Miru code calculation system allows optimization of the complex block cryptographic operation by assuming the use of currently loaded control characters and gold record data. Therefore, when the shovel input data block is loaded, and the cryptographic operation is in the check judgment area The state of the X bit in block 1 406 has already begun. The process then proceeds to block 1 41. At block 1410, the key data (that is, a key or a complete key directory) is retrieved from memory. In addition, according to the newly loaded control character and key directory, the input block and initialization vector (or equivalent initialization vector) described in the block are reloaded and executed for cryptographic operations. The process then processes block 141 2. At block 1412 'the input data block (current ciphertext block or current plaintext block) loaded into block 1404 or block 1410 is saved to an internal temporary store TEMP. The process then processes block 1414. At block 1414, an output block corresponding to the loaded input block is generated. For output feedback encryption, the input block is output as a plaintext block The block is a phase The corresponding ciphertext area is 49 200536330. For the output feedback decryption, the input block is a ciphertext block and the rotation block is a corresponding plaintext block. The process follows the processing block 1416. In the area In block 1416, an equivalent initialization vector IVEQ is generated by the output block being mutually exclusive with the TEMP content. The flow then processes block 1418. In block 1418, the equivalent initialization vector IVEQ is written to the initialization vector index register IVPTR The memory, location to which the content points, and therefore the feedback model for the output specified by the subsequent input block ^
密碼運算的執行將使用適合的等效初始化向量。、流 程然後處理區塊1 4 2 0。 现 區塊14丨2、1414、1416及1418内所描述的步 $被要求保證在一個狀態,其係允許使用區塊密碼 勒出回授模式的一密碼指令的執行隨時被打斷。例 ^,在一貫施例中,一頁面出錯在一密碼指令的 行期間係可在任一點發生。 在區塊1 420,所生成的輸出區塊係被儲存到記 憶體。流程然後處理區塊1422。 ° ^ 在區塊I422,輸入和輸出區塊指標暫存器的内 各被修改成指向下一個輸入和輸出資料區塊。另 外,區塊計複數個暫存器的内容係被修改,以表明 在當前輸入資料區塊上密碼運算的完成。在圖^ 所討論的實施例中,區塊計複數個暫存器是遞減 的。不過熟悉該項技術者將希望可替代實施例將區 塊叶數暫存器内容之操作和測試也可容 〜 區塊的管線化執行。流程隨後處理行判1定區^ 1 424。 尾 50 200536330 在判定區塊% ^ 1 輸入資料區塊待被執行―;!,用來決定是否一個 為說明性的目的m的實施例中, 於零。如果沒有f:4计數器被用來決定它是否等 1426。 鬼待被執行,流程乃開始處理區塊 在區塊1426’由輸入指標暫存器 向量所指向的下一輸入資料塊及其等 乃被載入。流程然後處理區塊1412。 内容和初始化 效初始化向量Cryptographic operations are performed using a suitable equivalent initialization vector. The process then processes block 1 2 4 0. Now the steps described in blocks 14 丨 2, 1414, 1416, and 1418 are required to be guaranteed to be in a state, which allows the execution of a cryptographic instruction that uses block cryptography to give feedback mode is interrupted at any time. Example ^ In a conventional embodiment, a page fault can occur at any point during the line of a password instruction. At block 1 420, the generated output block is stored in memory. The process then processes block 1422. ° ^ In block I422, the internals of the input and output block index registers are modified to point to the next input and output data block. In addition, the contents of the block registers are modified to indicate the completion of the cryptographic operation on the current input data block. In the embodiment discussed in Figure ^, the block count registers are decremented. However, those skilled in the art will hope that alternative embodiments can also operate and test the contents of the block leaf number register. The process then processes a decision zone 1 424. Tail 50 200536330 In the determination block% ^ 1 input data block to be executed ―;!, Is used to determine whether an embodiment m is for illustrative purposes, and is zero. Without the f: 4 counter is used to decide if it waits 1426. The ghost is to be executed, and the process starts to process the block. At block 1426 ', the next input data block pointed to by the input index register vector and its load are loaded. The process then processes block 1412. Content and initialization effect initialization vector
在區塊1 428,該方法處理完成。 熟悉該項技術者將希望區塊14161418、 砝、古私14?及1424所討論的步驟能沿著他們的特 f &動路逕,以不同的次序發生或者他們能並行發 生0 雖然本發明和它的目標、特徵和優勢已經被詳 細描述,但是其他實施例也應被本發明所包含。例 二如,本發明對與X86結構相容的實施例已經進行了 砰細討論。但是’這樣的討論方式,是因為x86結 構被廣泛地理解,因此提供一充足的手段以學習本 _ 电月本發明仍然包括諸如p〇werpc 、μ IPS及其 類似者的其他指令集架構以及其他完全是新的指令 集架構相適應的實施例。 π本發明尚包含在一計算系統元件中而非在微處 理器本身中密碼運算的執行。例如,依據本發明密 碼指令能容易地在一密碼單元實施例中被使用,那 並非像微處理器内的積體電路那樣必須作為電腦系 統一部分使用。預期本發明的實施例將被集成到一 51 200536330 微處理器周圍的—個曰 者作為執行密碼運曾如’北橋、南橋)或 係從-個主微器,在此密媽指令 應用於嵌入式控告丨;该處理器。預計本發明將 ρώ j^r χψ ^ ^工 W 工業控制器、信號處理哭、 成Μ晨斤描述執行密碼運算所必須的元件組 這樣的一個設備作為在 :: 解密處理器,的確將提供-低成本;ΐ 發明人提及的=以理:起見,本案之 理器。 、—j、擇處理兀件係上面所述之處At block 1 428, the method processing is complete. Those skilled in the art will hope that the steps discussed in blocks 14161418, weights, ancient private 14? And 1424 can occur in different orders along their special motion paths or they can occur in parallel. Although the present invention and Its objectives, features, and advantages have been described in detail, but other embodiments should also be encompassed by the present invention. For example, the present invention has been discussed in detail in the embodiment compatible with the X86 structure. But 'this way of discussion is because the x86 structure is widely understood, so it provides ample means to learn this book. The present invention still includes other instruction set architectures such as powerpc, μ IPS, and the like, and other Completely an embodiment of the new instruction set architecture. The invention also encompasses the execution of cryptographic operations in a computing system element rather than in the microprocessor itself. For example, the cryptographic instructions according to the present invention can be easily used in an embodiment of a cryptographic unit, which does not have to be used as a unified part of a computer system like integrated circuits in a microprocessor. It is expected that the embodiments of the present invention will be integrated around a 51 200536330 microprocessor—one that executes passwords such as 'Northbridge, Southbridge' or a slave-microcontroller. Here MiMa instructions are applied to embed Sue the processor. It is expected that the present invention will take a device such as a industrial controller, a signal processor, and a signal processor to describe the set of components necessary to perform a cryptographic operation as a device: The decryption processor, will indeed provide- Low cost; 提及 the inventor mentioned = Logic: for the sake of this case, the logic device. , -J, optional processing elements are as described above
力了,榼管本發明係以128位元區塊加以 二但:只需改變輸入資料、輸出資料、金鑰和 制子兀暫存态的一大小就可以實現不同的區塊大小 而且,雖然資料加密標準、三重資料加密標準 :進階加密標準在本發明有顯著的描述,本發明 指出本發明也包括較小知名的區塊密碼演算法, t mars區塊密碼演算法、Rijndael區塊密碼演 Tw〇f i sh區塊雄、碼演算法、Blowf i Sh區塊密. 演算法、蛇區塊密碼演算法和RC6區塊密碼& 法。要充分領會的是本發明提供專用區塊密碼 置,並且在一個微處理器内支援一套實現的&法 在那裏微區塊密碼運算可以通過一條單獨指令的 行被引動。 /此外’雖然本發明按照區塊密碼演算法以及對 執行區塊密碼功能的相關技術進行了描述,應該注 意到本發明完全包括除了區塊密碼以外的其二°密碼 52 200536330 形式。它應該遵從··提供一條單獨指令,憑此使用 者能指示一相容的微處理器進行一密碼運$諸如加 ,或者解密,在此該微處理器包括一個專用的密碼 單兀,密碼單70通過指令完成被指定的密碼功能。 而且,這裏關於回合引擎的討論提供一個2階 段的裝置,這樣兩輸入資料區塊就可以管線執行。 發明人指出其他的實施例可能多於2個階段。預期 支持更多輸入資料區塊的管線之階段劃分乃係與^ 相稱微處理器内的其他階段是一致的。 最後,雖然本發明被作為一支援數個區塊密碼 _ 演算法之單獨密碼單元係已經被加以討論,本發明 也包括提供和在一相容微處理器中的其他執行單元 並行連接的數個密碼單元,在此,該些密碼單元中 的每一,係用以執行一特定的區塊密碼演算法。例 如’一第一單元配置成進階加密標準,一第二單元 則配置成資料加密標準等等。 那些沾悉該項技術之人應該希望他們能容易使 用揭示明確的概念和實施例,以作為完成本發明的 目的基礎設計或者修改其他結構,而依此所進行之 _ 各種改變、替代和變化係均未脫離本發明所附申請 專利範圍所界定之精神及範圍。 【圖式簡單說明】 圖1係說明當前密碼應用之示意圖。 圖2係描述執行密碼運算技術之示意圖。 圖3係為依據本發明用以執行密碼運算的微處 理器裝置之示意圖。 53 200536330 圖 意圖 4係為依據本發明之微密碼指令實施例之示 图5係為依據圖4的微资碑 密碼模式的數值表。 伙⑴馬扣令说明典型區塊 圖6係詳細描述依據本發明 處理器内密碼單元之方塊聊相容微 圖7係說明在圖6 >淋考:田口 σ 作的典型微指令的示意圖:&益内執行密碼子操 器項據圖7的格式說明-载入微指令暫存 圖9係根據圖7的格式 器項的數值表。 碎存说指令暫存 圖1 〇係依據本發明用以規定密 ^ 參複數個的典型控制字^格式示意圖馬運异之禮碼 圖。圖11係依據本發明密碼單元詳細描述之方塊 路實i例之HH/_種區塊密碼邏輯電 運算。 “’吏按照進階加密標準執行密碼 圖1 3係依據本發明描 查看密碼參數狀態方法之流/圖。中斷事件中用以 圖1 4係依據本發明描述在一 事件下於複數個輸人資料區塊:夕中断的 模式密碼運算之方法的流程圖。特疋輸出回授 101第一電腦工作站 【主要元件符號說明】 !〇〇 方塊圖 54 200536330 102 第二電腦工作站 103 第三電腦工作站 104 筆記本電腦 105 局域網路 106 網路檔儲存設備 107 第一路由器 108 無線網路由器 109 無線網路 110 廣域網路 111 第二路由器 112 加密/解密應用程 式 200 方塊圖 201 微處理器 202 作業系統 203 應用記憶體 204 密碼金錄產生程式 205 金鑰目錄 206 區塊加密程式 207 區塊解密程式 208 初始化向量 209 密碼參數 210 明文區塊 211 密文區塊 300 方塊圖 301 微處理器 302 指令暫存器 303 轉譯邏輯電路 304 微指令佇列 305 ^ 306 微指令入t 307 暫存器組 308-31 3 暫存器 314 載入邏輯電路 315 資料快取 316 密碼單元 317 儲存邏輯電路 318 寫回邏輯電路 319 記憶體匯流排 320 作業系統 321 糸統記憶體 322 密碼指令 323 初始控制字元 324 初始金錄或金錄目 325 初始化向量 錄 326 輸入文字區塊 327 輸出文字區塊 328 執行邏輯電路That ’s it. The present invention is based on 128-bit blocks. However, different block sizes can be achieved by changing only one size of the input data, the output data, the key, and the temporary storage state. Data Encryption Standard, Triple Data Encryption Standard: Advanced encryption standards are prominently described in the present invention. The present invention indicates that the present invention also includes smaller well-known block cipher algorithms, t mars block cipher algorithms, and Rijndael block ciphers. Play Tw〇fi sh block male, code algorithm, Blowf i Sh block secret. Algorithm, snake block cipher algorithm and RC6 block cipher & method. It is to be fully appreciated that the present invention provides a dedicated block cipher, and supports a set of & methods implemented in a microprocessor where the microblock cipher operation can be initiated by a single instruction line. / In addition, although the present invention has been described in terms of a block cipher algorithm and related techniques for performing a block cipher function, it should be noted that the present invention fully includes the second form of passwords other than block ciphers 52 200536330. It should follow ... Provide a separate instruction, whereby the user can instruct a compatible microprocessor to perform a cryptographic operation such as encryption or decryption, where the microprocessor includes a dedicated cryptographic unit, cryptographic list 70 to complete the designated password function by instructions. Moreover, the discussion of the round engine here provides a two-stage device so that the two input data blocks can be executed in a pipeline. The inventors point out that other embodiments may have more than 2 stages. The phase division of the pipeline that is expected to support more input data blocks is consistent with the other phases in the symmetric microprocessor. Finally, although the present invention has been discussed as a single cryptographic unit that supports several block cipher_ algorithms, the present invention also includes a number of parallel connections provided with other execution units in a compatible microprocessor. Cryptographic unit, here, each of these cryptographic units is used to execute a specific block cryptographic algorithm. For example, a first unit is configured as an advanced encryption standard, a second unit is configured as a data encryption standard, and so on. Those who are acquainted with the technology should hope that they can easily use the disclosed clear concepts and embodiments as the basis for completing the purpose of the present invention or to modify other structures, and to do so. Without departing from the spirit and scope defined by the scope of the patent application attached to the present invention. [Schematic description] Figure 1 is a schematic diagram illustrating the current password application. FIG. 2 is a schematic diagram describing a technique for performing cryptographic operations. FIG. 3 is a schematic diagram of a microprocessor device for performing cryptographic operations according to the present invention. 53 200536330 Figure Intention 4 is an illustration of an embodiment of a micro-crypto instruction according to the present invention. Figure 5 is a numerical table of the micro-encryption cryptographic mode according to FIG. 4. Figure 6 is a block diagram illustrating the typical block diagram of the password unit in the processor according to the present invention. Figure 7 is a schematic diagram illustrating a typical microinstruction made by Figure 6 > leaching test: Taguchi σ: & Yene's execution codon operator entry is illustrated in the format of FIG. 7-Loading microinstruction temporary storage FIG. 9 is a numerical table according to the formatter entry of FIG. 7. Fragmented storage instruction temporary storage Figure 10 is a schematic diagram of a typical control word ^ format used to specify a plurality of secret parameters in accordance with the present invention. FIG. 11 is an HH / _ block cipher logic operation of a block circuit according to a detailed description of a cryptographic unit according to the present invention. "'The password is executed according to the advanced encryption standard. Figure 13 is a flow / map depicting the method of viewing password parameter status according to the present invention. Figure 14 is used in the interruption event to describe the multiple inputs in an event according to the present invention. Data block: The flow chart of the method of interrupted mode password calculation. Special output feedback 101 First computer workstation [Description of main component symbols]! 00〇 Block diagram 54 200536330 102 Second computer workstation 103 Third computer workstation 104 Laptop 105 LAN 106 Network File Storage Device 107 First Router 108 Wireless Router 109 Wireless Network 110 Wide Area Network 111 Second Router 112 Encryption / Decryption Application 200 Block Diagram 201 Microprocessor 202 Operating System 203 Application Memory 204 Password record generation program 205 Key directory 206 Block encryption program 207 Block decryption program 208 Initialization vector 209 Password parameter 210 Plain text block 211 Cipher text block 300 Block diagram 301 Microprocessor 302 Instruction register 303 Translation logic Circuit 304 microinstruction queue 305 ^ 306 microinstruction into t 307 temporarily Register group 308-31 3 register 314 load logic circuit 315 data cache 316 password unit 317 storage logic circuit 318 write back logic circuit 319 memory bus 320 operating system 321 system memory 322 password instruction 323 initial control word Yuan 324 Initial gold record or gold record 325 Initial vector record 326 Input text block 327 Output text block 328 Execute logic circuit
55 200536330 400 微密碼指令 402 重複前置攔位 404 區塊密碼模式攔位 600 x86相容微處理器 602 轉譯邏輯電路 604 微碼唯讀記憶體 606 定址階段 608 執行階段 610 整數單元 612 浮點單元 614 多媒體延伸集單元 616 串流延伸集單元 618 儲存階段 620 載入匯流排 622 儲存匯流排 625 X位元 627 軟體及硬體中斷信 號 629 E位元 631 D位元 640 輸出回授模式邏輯 電路 700 微指令 702 資料暫存器攔位 704 資料欄位 800 表 1000 控制字元 可選擇性前置欄位 運算碼攔位 表 操取邏輯電路 轉譯器 暫存器階段 載入階段 微指令彳宁列 微指令仵列 微指令佇列 _ 微指令彳宁列 密碼單元 寫回階段 延遲信號 旗標暫存器 中斷邏輯電路 機器特定暫存器 特性控制暫存器 鲁 執行邏輯電路 微運鼻碼搁位 暫存器欄位 表 保留欄位 56 200536330 1 〇 0 2金輪大小攔位 1 004中間結果攔位 1006演算法攔位 110 0密碼單元 1102金鑰隨機存取記 II 0 4控制字元暫存器 1106輸入—1暫存ρ 1108金输暫存界 III 0輸出-1暫存器 111 2儲存匯流排 1114微指令匯流排 1 2 01微指令暫存哭 1203金输-〇暫存 1205-1206輸入暫存器 1210回合引擎控制器% 1 21 6 -1 21 8匯流排 1221第一金輪XOR邏輯 電路 1223 S-Box邏輯電銘^ 1225第二暫存器暫存一 1 1 227第三暫存器暫存一2 1 302區塊 1 306區塊 1 31 0區塊 1402區塊 1406判斷區塊 1 0 0 3加密/解密攔位 1 0 0 5金餘產生攔位 I 0 0 7回合計數攔位 II 01 區塊您碼邏輯電路 1103微運算碼暫存器 1105輸入-〇暫存器 1107金餘-〇暫存器 1109輸出-〇暫存器 1111載入匯流排 111 3延遲信號 1200區塊密碼邏輯電路 1 2 0 2控制字元暫存器 1204金餘-1暫存器 1207-1208輸出暫存器 1 211 -1 214匯流排 1 220回合引擎 1 222第一暫存器暫存一〇 1 2 2 4移列邏輯電路 1226混搁邏輯電路 1 3 0 4判斷區塊 1 308區塊 1 31 2區塊 1 4 0 4區塊 1408區塊55 200536330 400 Microcode instruction 402 Repeated pre-block 404 Block cipher mode block 600 x86 compatible microprocessor 602 Translation logic circuit 604 Microcode read-only memory 606 Addressing phase 608 Execution phase 610 Integer unit 612 Floating point unit 614 Multimedia extension set unit 616 Stream extension set unit 618 Storage stage 620 Loading bus 622 Storage bus 625 X bit 627 Software and hardware interrupt signal 629 E bit 631 D bit 640 Output feedback mode logic circuit 700 Microinstruction 702 Data register block 704 Data field 800 Table 1000 Control characters can be optionally preceded by field opcode block table access logic circuit translator register stage loading stage microinstruction Instruction queue Micro instruction queue _ Microinstruction 彳 Cryptographic unit writeback stage delay signal flag register interrupt logic circuit machine specific register characteristics control register Lu execute logic circuit micro movement nose code shelf temporary storage Device field table reserved field 56 200536330 1 〇 0 2 Golden wheel size stop 1 004 Intermediate result stop 1006 Calculation Block 110 0 Cryptographic unit 1102 Key random access record II 0 4 Control character register 1106 input—1 temporary storage ρ 1108 gold lose temporary storage III 0 output-1 temporary register 111 2 storage bus 1114 micro Instruction bus 1 2 01 Micro-instruction temporary crying 1203 gold lose-0 temporary 1205-1206 input register 1210 round engine controller% 1 21 6 -1 21 8 bus 1221 first golden round XOR logic circuit 1223 S- Box logic name ^ 1225 second register temporary 1 1 227 third register temporary 1 2 1 302 block 1 306 block 1 31 0 block 1402 block 1406 judge block 1 0 0 3 Encryption / decryption block 1 0 0 5 gold surplus block I 0 0 7 round count block II 01 block your code logic circuit 1103 micro op code register 1105 input-0 register 1107 gold surplus-0 Register 1109 output-0 register 1111 loading bus 111 3 delay signal 1200 block password logic circuit 1 2 0 2 control character register 1204 gold surplus -1 register 1207-1208 output register 1 211 -1 214 Bus 1 220 Round Engine 1 222 First Register Temporary 0 1 2 2 4 Shift Logic Circuit 1226 Mixed Logic Circuit 1 3 0 4 Judgment Block 1 308 Area Block 1 31 2 Block 1 4 0 4 Block 1408 Block
57 200536330 1 41 0區塊 1 41 4區塊 1 41 8區塊 1422區塊 1 426區塊 141 2區塊 1 41 6區塊 1 420區塊 1424判斷區塊 1 428區塊57 200536330 1 41 0 block 1 41 4 block 1 41 8 block 1422 block 1 426 block 141 2 block 1 41 6 block 1 420 block 1424 judgment block 1 428 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 true TW200536330A (en) | 2005-11-01 |
TWI272815B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI448389B (en) * | 2007-07-27 | 2014-08-11 | Hewlett Packard Development Co | Non-volatile memory data integrity validation |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI448389B (en) * | 2007-07-27 | 2014-08-11 | Hewlett Packard Development Co | Non-volatile memory data integrity validation |
Also Published As
Publication number | Publication date |
---|---|
CN102594547A (en) | 2012-07-18 |
TWI272815B (en) | 2007-02-01 |
CN1652163A (en) | 2005-08-10 |
CN1652163B (en) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI303936B (en) | Apparatus and method for generating a cryptographic key schedule in a microprocessor | |
EP1469371B1 (en) | Microprocessor apparatus and method for performing block cipher cryptographic functions | |
TW200537886A (en) | Apparatus and method for secure hash algorithm | |
EP1538510B1 (en) | Microprocessor apparatus and method for performing block cipher cryptographic functions | |
EP1496421B1 (en) | Apparatus and method for performing transparent block cipher cryptographic functions | |
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 | |
US7536560B2 (en) | Microprocessor apparatus and method for providing configurable cryptographic key size | |
US7529368B2 (en) | Apparatus and method for performing transparent output feedback mode cryptographic functions | |
TWI274281B (en) | Apparatus and method for performing transparent block cipher cryptographic functions | |
US7900055B2 (en) | Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms | |
US7542566B2 (en) | Apparatus and method for performing transparent cipher block chaining mode cryptographic functions | |
US7519833B2 (en) | Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine | |
CN1661958B (en) | Microprocessor apparatus of block cryptographic functions and method | |
TW200536330A (en) | Apparatus and method for performing transparent output feedback mode cryptographic functions | |
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 | |
TWI274280B (en) | Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms | |
CN1658548B (en) | Microprocessor apparatus and method for configuring cryptographic engine data block | |
TW200536335A (en) | Apparatus and method for performing transparent cipher feedback mode cryptographic functions | |
TWI250450B (en) | Microprocessor apparatus and method for providing configurable cryptographic key size | |
TWI253268B (en) | Microprocessor apparatus and method for optimizing block cipher cryptographic functions | |
TWI258289B (en) | Microprocessor apparatus and method for providing configurable cryptographic block cipher round results | |
TW200536329A (en) | Apparatus and method for performing transparent cipher block chaining mode cryptographic functions |