TWI274281B - Apparatus and method for performing transparent block cipher cryptographic functions - Google Patents
Apparatus and method for performing transparent block cipher cryptographic functions Download PDFInfo
- Publication number
- TWI274281B TWI274281B TW93112126A TW93112126A TWI274281B TW I274281 B TWI274281 B TW I274281B TW 93112126 A TW93112126 A TW 93112126A TW 93112126 A TW93112126 A TW 93112126A TW I274281 B TWI274281 B TW I274281B
- Authority
- TW
- Taiwan
- Prior art keywords
- cryptographic
- block
- instruction
- compilation
- logic
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000006870 function Effects 0.000 title description 25
- 238000003860 storage Methods 0.000 claims description 48
- 238000004422 calculation algorithm Methods 0.000 claims description 38
- 238000010586 diagram Methods 0.000 claims description 23
- 238000013519 translation Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 21
- 230000009471 action Effects 0.000 claims description 16
- 239000012634 fragment Substances 0.000 claims description 7
- 239000000463 material Substances 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 6
- 230000001629 suppression Effects 0.000 claims description 2
- 239000000126 substance Substances 0.000 claims 2
- 244000025254 Cannabis sativa Species 0.000 claims 1
- 235000012766 Cannabis sativa ssp. sativa var. sativa Nutrition 0.000 claims 1
- 235000012765 Cannabis sativa ssp. sativa var. spontanea Nutrition 0.000 claims 1
- 235000009120 camo Nutrition 0.000 claims 1
- 235000005607 chanvre indien Nutrition 0.000 claims 1
- 239000011487 hemp Substances 0.000 claims 1
- 230000001343 mnemonic effect Effects 0.000 claims 1
- 230000035807 sensation Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 28
- 238000004364 calculation method Methods 0.000 description 24
- 238000013478 data encryption standard Methods 0.000 description 12
- 239000010931 gold Substances 0.000 description 11
- 229910052737 gold Inorganic materials 0.000 description 11
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 9
- 238000007667 floating Methods 0.000 description 7
- 210000004556 brain Anatomy 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 101710164820 Flotillin-2 Proteins 0.000 description 2
- 239000000956 alloy Substances 0.000 description 2
- 229910045601 alloy Inorganic materials 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000035515 penetration Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000000344 soap Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 235000011511 Diospyros Nutrition 0.000 description 1
- 244000236655 Diospyros kaki Species 0.000 description 1
- 241000255925 Diptera Species 0.000 description 1
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 1
- 101710164822 Flotillin-1 Proteins 0.000 description 1
- 101100381510 Mus musculus Bcl10 gene Proteins 0.000 description 1
- 241000282320 Panthera leo Species 0.000 description 1
- 210000001015 abdomen Anatomy 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 235000019504 cigarettes Nutrition 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005202 decontamination Methods 0.000 description 1
- 230000003588 decontaminative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 150000002343 gold Chemical class 0.000 description 1
- 238000013101 initial test Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 229940004975 interceptor Drugs 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 210000002784 stomach Anatomy 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- 238000009941 weaving Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
Description
1274281 九、發明說明: 【相關申請案之交互參考】 [0001]本中赫主張以下美辭請臨時案與類正式中請案之 先權’其在此會全部併入做為參考 申請案號 60/506971 ±MMM 9/29/2003 名稱_1274281 IX. Invention Description: [Reciprocal Reference of Related Applications] [0001] Ben Zhonghe advocates the following essays: the provisional case and the formal right of the formal request. It will be incorporated here as a reference application number. 60/506971 ±MMM 9/29/2003 Name_
MICROPROCESSOR APPARATUS AND METHOD FOR OPTIMIZING BLOCK CIPHER CRYPTOGRAPHIC functions 使區塊密碼器密碼功能最佳 化之微處理器裝置及方法MICROPROCESSOR APPARATUS AND METHOD FOR OPTIMIZING BLOCK CIPHER CRYPTOGRAPHIC functions Microprocessor device and method for optimizing block cipher password function
60/507001 9/29/2003 APPARATUS AND METHOD FOR PERFORMING OPERATING SYSTEM TRANSPARENT BLOCK CIPHER CRYPTOGRAPHIC FUNCTIONS 執行作業系統的穿透式區塊 密碼器密碼功能之裝置及方 法 60/506978 9/29/2003 MICROPROCESSOR APPARATUS AND METHOD FOR EMPLOYING CONFIGURABLE BLOCK CIPHER CRYPTOGRAPHIC ALGORITHMS 使用可組態的區塊密碼器密 碼演算法之微處理器裝置及 方法 60/507004 9/29/2003 APPARATUS AND METHOD FOR PROVIDING USER-GENERATED KEY SCHEDULE IN A MICROPROCESSOR CRYPTOGRAPHIC ENGINE 0608-A40742TWF1 5 νλ 127428160/507001 9/29/2003 APPARATUS AND METHOD FOR PERFORMING OPERATING SYSTEM TRANSPARENT BLOCK CIPHER CRYPTOGRAPHIC FUNCTIONS Apparatus and method for performing the transmissive block cipher password function of the operating system 60/506978 9/29/2003 MICROPROCESSOR APPARATUS AND METHOD FOR EMPLOYING CONFIGURABLE BLOCK CIPHER CRYPTOGRAPHIC ALGORITHMS Microprocessor device and method using configurable block cipher cipher algorithm 60/507004 9/29/2003 APPARATUS AND METHOD FOR PROVIDING USER-GENERATED KEY SCHEDULE IN A MICROPROCESSOR CRYPTOGRAPHIC ENGINE 0608- A40742TWF1 5 νλ 1274281
產生微處理器密碼引擎中之 使用者產生的金鑰清單之裝 置及方法 60/507002 9/29/2003 MICROPROCESSOR APPARATUS AND METHOD FOR PROVIDING CONFIGURABLE CRYPTOGRAPHIC BLOCK CIPHER ROUND RESULTS 產生可組態的密碼區塊密碼 器回合結果之處理器裝置 及方法 60/506991 9/29/2003 MICROPROCESSOR APPARATUS AND METHOD FOR ENABLING CONFIGURABLE DATA BLOCK SIZE IN A CRYPTOGRAPHIC ENGINE 使密碼引擎中的可組態資料 區塊大小成為可能之微處理 器裝置及方法 60/507003 9/29/2003 APPARATUS FOR ACCELERATING BLOCK CIPHER CRYPTOGRAPHIC FUNCTIONS IN A MICROPROCESSOR 使微處理器中的區塊密碼器 密碼功能加速之裝置 60/464394 4/18/2003 ADVANCED CRYPTOGRAPHY UNIT 增進的密碼單元 60/506979 9/29/2003 MICROPROCESSOR APPARATUS AND METHOD FOR PROVIDING CONFIGURABLE 0608-A40742TWF1 6 1274281 p年:身峨•靖麵丨 I …和一·—一^一Apparatus and method for generating a list of keys generated by a user in a microprocessor crypto engine 60/507002 9/29/2003 MICROPROCESSOR APPARATUS AND METHOD FOR PROVIDING CONFIGURABLE CRYPTOGRAPHIC BLOCK CIPHER ROUND RESULTS Generates a configurable cipher block cipher round RESULTS PROCESSOR APPARATUS AND METHOD 60/506991 9/29/2003 MICROPROCESSOR APPARATUS AND METHOD FOR ENABLING CONFIGURABLE DATA BLOCK SIZE IN A CRYPTOGRAPHIC ENGINE MICROPROCESSOR APPARATUS AND METHOD FOR PERFORMING CONFIGURABLE DATA BLOCK RANGE IN A CODE ENGINE 60/507003 9/29/2003 APPARATUS FOR ACCELERATING BLOCK CIPHER CRYPTOGRAPHIC FUNCTIONS IN A MICROPROCESSOR Device for accelerating the block cipher cipher function in the microprocessor 60/464394 4/18/2003 ADVANCED CRYPTOGRAPHY UNIT Enhanced cryptographic unit 60/ 506979 9/29/2003 MICROPROCESSOR APPARATUS AND METHOD FOR PROVIDING CONFIGURABLE 0608-A40742TWF1 6 1274281 p-year: body 靖 靖 靖 丨 I ... and one · one ^ one
CRYPTOGRAPHIC KEY SIZE 產生可組態的密碼金鑰大小 之微處理器裝置及方法 60/507001 9/29/2003 APPARATUS AND METHOD FOR PERFORMING OPERATING SYSTEM TRANSPARENT CIPHER BLOCK CHAINING MODE CRYPTOGRAPHIC FUNCTIONS 執行作業系統的穿透密碼器 區塊鏈模式密碼功能之裝置 及方法 60/508679 10/3/2003 APPARATUS AND METHOD FOR PERFORMING OPERATING SYSTEM TRANSPARENT CIPHER FEEDBACK MODE CRYPTOGRAPHIC FUNCTIONS 執行作業系統的穿透密碼器 回授模式密碼功能之裝置及 方法 60/508076 10/3/2003 APPARATUS AND METHOD FOR PERFORMING OPERATING SYSTEM TRANSPARENT OUTPUT FEEDBACK MODE CRYPTOGRAPHIC FUNCTIONS 執行作業系統的穿透式輸出 回授模式密碼功能之裝置及 方法 60/508604 10/3/2003 APPARATUS AND METHOD FOR GENERATING A CRYPTOGRAPHIC 0608-A40742TWF1 7 1274281 KEY SCHEDULE IN A MICROPROCESSOR 產生微處理器中之密碼金鑰 清單之裝置及方法 10/729973 12/4/2003 APPARATUS AND METHOD FOR PERFORMING TRANSPARENT BLOCK CIPHER CRYPTOGRAPHIC FUNCTION 重組透明化區塊密碼編譯方 法及裝置 10/730167 2003/12/5 MICROPROCESSOR APPARATUS AND METHOD FOR PERFORMING BLOCK CIPHER CRYPTOGRAPHIC FUNCTIONS 執行區塊密碼編譯之微處理器 裝置與方法 [0002]本申請案係為下列同在申請中之美國專利申請案,申請號 10/674057,"MICROPROCESSOR APPARATUS AND METHOD FOR PERFORMING BLOCK CIPHER CRYTOGRAPHIC FUNCTIONS(微處理 器區塊密碼編譯方法與裝置)”之部份延續案,其具有共同受讓人及共同發明 人,且其申請曰為2003年9月29曰。 [0003]本申請案與下列同在申請中之美國專利申請案(及相對應之 申請案號 申請曰 名稱 10/730167 93110904 10/27/2003 4/20/2004 MICROPROCESSOR APPARATUS AND METHOD FOR PERFORMING BLOCK CIPHER CRYPTOGRAPHIC FUNCTIONS 微處理器區塊密碼編譯方法與裝置 0608-A40742TWF1 8 1274281 發明說明 【發明所屬之技術領域】 [0004]本㈣係有關於一種微電子的領域,尤指一種在微處理器或 ^他裝置巾歸重組翻化區塊密碼編譯運算之方法及裝置。 【先前技術】 陶研期電腦祕_作_是獨立作觸,_跑—個運用程 :^而要的輸人胃料是喊於早期的電職、制歧由倾工程師在 t運行時輸人。細程式執行後產生的輸出㈣則通常是以白紙黑 :、列印方式呈現,或者是以—個财_式被寫人磁帶、硬碟 ^屬於電齡統-部份_存裝置中。這個輸出的_可以接著被 ^在.個電齡射執行的顧財#作輸域案使用或者如 =固,是被存人-個可峨機式_存介面,它就能被其他不 谷的電腦純中的細軟體使用。這些早期的系統對保護敏感 菸3已有認知。其中一樣資料保密措施,密碼編譯應用軟體也被開 ^==峨W㉟軸細。糊侧樣體通 吊把儲存裝置上的檔案做加密或解密的動作。 [0_]乡核’朗者們才魏_鱗麟多自電腦來分享 勢。所以’網路架構、作業系統、資料傳送協 * =」、除:;支援資料分享之外,它們所提供的附加功能也很:; ,現在的者使用—㈣腦工作台去取得另—個工作A 料=個Γ路飼服器上的檔案,透過網際網路取得新聞和盆他ί =〜、他數百台不_電爾送與接㈣子信息,如電 或 電腦纽提供侧卡或是銀行資料來顧物品,或Ϊ ^ 和其他公共場所透難_路來做上述_作,已經習 -、吊了。所贿魏感龍的傳輸也變的料 電滕所舰的_要賴瓣也日已遽增。新 0608-A40742TWF1 9 1274281 社會大眾濫發郵件,骇客,身分次用, 位置欺偽和信用卡詐欺_‘_。 ^動^有=嶋_心之過’ ㈣纽網路恐怖CRYPTOGRAPHIC KEY SIZE Microprocessor device and method for generating a configurable cryptographic key size 60/507001 9/29/2003 APPARATUS AND METHOD FOR PERFORMING OPERATING SYSTEM TRANSPARENT CIPHER BLOCK CHAINING MODE CRYPTOGRAPHIC FUNCTIONS Execution of the penetration cipher zone of the operating system Device and method for blockchain mode password function 60/508679 10/3/2003 APPARATUS AND METHOD FOR PERFORMING OPERATING SYSTEM TRANSPARENT CIPHER FEEDBACK MODE CRYPTOGRAPHIC FUNCTIONS Device and method for performing the penetration cipher feedback mode password function of the operating system 60/508076 10/3/2003 APPARATUS AND METHOD FOR PERFORMING OPERATING SYSTEM TRANSPARENT OUTPUT FEEDBACK MODE CRYPTOGRAPHIC FUNCTIONS Device and method for performing the transmissive output feedback mode password function of the operating system 60/508604 10/3/2003 APPARATUS AND METHOD FOR GENERATING A CRYPTOGRAPHIC 0608-A40742TWF1 7 1274281 KEY SCHEDULE IN A MICROPROCESSOR Apparatus and method for generating a list of cryptographic keys in a microprocessor 10/729973 12/4/2003 APPARATUS AND METHOD FOR PERFORMING TRANSPARENT BLOCK CIPHER CRYPTOGRAPHIC FUNCTION Recombination and transparency block cipher coding method and device 10/730167 2003/12/5 MICROPROCESSOR APPARATUS AND METHOD FOR PERFORMING BLOCK CIPHER CRYPTOGRAPHIC FUNCTIONS Microprocessor device and method for executing block cipher compilation [0002] The continuation of the following U.S. Patent Application Serial No. 10/674,057, "MICROPROCESSOR APPARATUS AND METHOD FOR PERFORMING BLOCK CIPHER CRYTOGRAPHIC FUNCTIONS, It has a common assignee and a co-inventor, and its application was September 29, 2003. [0003] The present application is filed in the same application as the U.S. patent application (and the corresponding application number 曰 10 10 10/730167 93110904 10/27/2003 4/20/2004 MICROPROCESSOR APPARATUS AND METHOD FOR PERFORMING BLOCK CIPHER CRYPTOGRAPHIC FUNCTIONS Microprocessor block cipher coding method and device 0608-A40742TWF1 8 1274281 Description of the invention [Technical field of the invention] [0004] This (4) relates to the field of microelectronics, especially a microprocessor or a The device towel belongs to the method and device for compiling and recalculating the cipher code of the reorganized block. [Prior Art] The computer research secret of the pottery research period is _ is independent touch, _ run--a process: ^ and the input stomach is shouting In the early days, the electric job and the system were input by the dumping engineer when they were running at t. The output (4) produced after the execution of the fine program was usually in the form of black and white: printing, or by being a person. The tape and the hard disk ^ belong to the electric age system - part of the storage device. The output of this _ can be used by the Gu Cai# which is executed by a battery age or used as a domain or as a solid. - a detachable _ save In fact, it can be used by other softwares that are not pure in the computer. These early systems have been aware of the protection of sensitive cigarettes. Among them, the same data security measures, the password compilation application software is also opened ^==峨W35 axis Fine. Paste side of the body through the storage device on the storage device to encrypt or decrypt the action. [0_] Township nuclear 'langers only Wei _ scales more from the computer to share the potential. So 'network architecture, operating system , Data Transfer Association * =, except:; In addition to supporting data sharing, they provide additional functions:;, now use - (4) brain workbench to get another job A material = a road feeding The file on the server, through the Internet to get news and pots ί = ~, he is not _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Or Ϊ ^ and other public places to pass through _ road to do the above _, has been learned - hanged. The transmission of the bribe Wei dynasty has also changed the _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ New 0608-A40742TWF1 9 1274281 Social mass spamming mail, hacking, identity, sub-location Credit card fraud _'_. ^ = Nakajima move ^ _ have had heart '(iv) New terror network
It _=位_定新法律,嚴格執行規範和教鼓眾等行動 潮。^前口動作都還是無法成功杜絕侵害電腦資料的浪 ΐ-1 jir機構,軍方和情報單位憂心的問題已經變成 :一了在豕檢查電子郵件’使用網路銀行服務的老百姓最擔心的問題 碼方Γ的0這^域中一項將資料加密,並只提供特定人士解 :二运^ J就疋挽碼編譯學。在保護電滕對電腦間資料的傳輸 料(:稱為本文,—— 岸被織「二1p rtext)。將本文轉換成密文的程 序^冉為加捃」(enc_〇n、endphering或ciph_),而將密 程序則被稱為「解密」(dec_〇n都⑽ 者不3=^編譯這個領域中’幾項方式和協定被開發出以便使用 知識或是花太多力量便能將資料以加密過的 =2出給不同的使用者。除了加密的資料之外,使用者通 =:加 ·It _= bit _ new law, strict implementation of norms and teaching crowds and other actions. ^The front-end movements are still unable to successfully eliminate the wreckage of computer data. The jir agency, the military and the intelligence unit’s worry has become: one is checking the e-mail. The most worried about the people using online banking services. Code block Γ 0 This field will encrypt the data, and only provide a specific person solution: two games ^ J will be 疋 码 code compilation. In the protection of the data transmission between the computer and the computer (: called this article, - the shore is woven "two 1p rtext". The process of converting this article into ciphertext ^ 冉 捃" (enc_〇n, endphering or Ciphr_), and the secret program is called "decryption" (dec_〇n are all (10). Not 3=^ compile in this field. Several methods and protocols have been developed to use knowledge or to spend too much power. The data is sent to different users with the encrypted =2. In addition to the encrypted data, the user passes =: plus
Rivest-Shamir-Add^^^ ^-個公開金鑰(Public Key)和一個私密金 或解密。根據—些公__則,崎的嫩 0608-A40742TWF1 1274281 , v / 用來將資料加密城送給歡者的。_侧者的公開和私密全錄間 有某種特定的數學關係,接收者-定要用私密金餘來解開收到的資 料,還原原本的資料。雜此_加密料法糾廣泛的制,但是 它處理加密和解密的速度十分的慢,就連處理小量的資料都十分的 慢。還有一_算法’稱做對稱金鑰加密演算法(symmetric吻 alg〇rithmS),不但有與第-類演算法崎級的諸保密性,而且執行的 速度快上許多。這類演算法會叫做對稱金鑰加密演算法的原因就是它 是用同一組加密編譯鑰來加密和解密。目前主要有三種單一金鑰加密 演算法(single-key cryptographic algorithms)··數據加密標準(IJaRivest-Shamir-Add^^^ ^-Public Key and a private key or decryption. According to some public __, then the tenderness of 0608-A40742TWF1 1274281, v / used to encrypt the data to the winner. There is a certain mathematical relationship between the public and private records of the _ side, and the recipient must use the private money to unravel the received information and restore the original information. Miscellaneous _ encryption method to solve a wide range of systems, but it handles encryption and decryption very slowly, even processing a small amount of data is very slow. There is also an _algorithm called symmetric key encryption algorithm (symmetric kiss alg〇rithmS), which not only has the confidentiality of the level-like algorithm, but also performs much faster. The reason this type of algorithm is called a symmetric key encryption algorithm is that it encrypts and decrypts with the same set of encrypted compilation keys. There are currently three main single-key cryptographic algorithms (data encryption standards) (IJa).
Encryption Standard,DES),三度資料加密標準(Triple仏访如哪偷 Standard,Triple-DES)和高階加密標準(AdvancedEnawiQn standanj, AES)目為這些’冑异法的保強度,現在美國政府的相關單位都採用 這二種演算法來保密資料。相信不久的將來,這其中一項或一項以上 也會成為商業和私人交易中使用的標準。根據這些對稱金鑰加密演算 法則,本文和密文都被裁成一定大小的區塊以進行加密和解密。例如 咼階加密標準(AES)對128位元大小的區塊進行加密,並使用128、192 和256位元大小的加密編譯鑰。 [〇〇1〇]所有的對稱金鑰加密演算法(symmetric key alg〇rithms)將本 文加密的次要運算(sul>operation)#驟都是相同的。根據那些比較常使 用的對稱金礙禮演算法,—個初始喊碼、_猶會被擴張至複數個 的金鑰(也就是金鑰程序表,key scheduie),每個金鑰都會被用在密碼編 譯時將-段本文加密程序中次要運算中的其中一回合(r〇und)。第1 合運算完的結果變成是第二回合的輸入資料(illput text)。第二回合運算 就使用金鑰程序表中第二個金鑰做運算,然後產生第二個結果。本文 在經過特定的幾回合後就成為密文。在高階加密標準(AES)運算法中, 每一回合中的次要運算中的運算在相關文獻資料中可被稱為子位元 0608-A40742TWF1 11 1274281 年曰修 . mmm —ιι«ι·|»_1 w~ » m *<nnr 11 »_♦·«μμ、£»··μ〜u««<»» w,押-WNhe^i (SubByte,或 S-box),移列(ShiftRows),混攔(MixColums),和回合金鑰 (1*_(1]^)加入(八(1(1以_(1{^)。為一段密文解碼的步驟事實上和加密 是很相似的,就是把加密文當作輸入值,並且在每一回合進行反向譯 碼和反向運算’最後一回合的輸出值就是本文。 [0011 ]數據加密標準(DES)和三度資料加密標準(Tripie_DES)應用 的次要運算在小細節上不太相同,但是它們與高階加密標準(AES)運算 法基本上是十分類似,因為它們用相似方式將本文片段轉為一段段的 密文。 [0 012 ]所有對稱金鑰加密演算法將多個連續片段資料加密的模式 都是一樣的。這些包括了編輯方塊連鎖模式(cipher bl〇ck chaining mode ’ CBC) ’ 電子書碼(electronic C0(ie book,ECB),編碼回授模式 (cipher feedback mode,CFB)和輸出回授模式(output feedback m〇de, OFB)其中有些模式舄要一個另外的初始化向量(initiaHzati〇n vect〇r) 才能進行次項運算,有些則是會將第一組加密編譯後的密文加入第二 組本文加密的運算中。若深入探討每一個密碼編譯演算法和當下對稱 金鑰加岔演算法中每個次項運算步驟則就已超出本發明應用的範圍 了。關於數據加密標準DES和三度資料加密標準Triple_ DES詳細的 實施規範探討,讀者們可以參考西元丨999年1〇月25日的FederalEncryption Standard, DES), three-dimensional data encryption standard (Triple's visit, Standard-Triple-DES) and Advanced Encryption Standard (Advanced EnawiQn standanj, AES) are the strength of these 'different methods', now related to the US government The unit uses these two algorithms to keep confidential information. It is believed that in the near future, one or more of these will also become the standard used in commercial and private transactions. According to these symmetric key encryption algorithms, both the text and the ciphertext are cut into blocks of a certain size for encryption and decryption. For example, the Advanced Encryption Standard (AES) encrypts 128-bit blocks and uses 128, 192, and 256-bit encrypted compiled keys. [〇〇1〇] All symmetric key encryption algorithms (symmetric key alg〇rithms) will be the same for the secondary operations (sul>operation). According to the more commonly used symmetric barrier algorithm, an initial call code, _ will be expanded to a plurality of keys (that is, key scheduie), each key will be used in When the password is compiled, one of the secondary operations (r〇und) in the encryption program of the article will be encrypted. The result of the 1st round operation becomes the illput text of the second round. The second round operation is performed using the second key in the key program table, and then the second result is generated. This article becomes a ciphertext after a certain number of rounds. In the Advanced Encryption Standard (AES) algorithm, the operations in the secondary operations in each round can be referred to as sub-bits in the relevant literature. 0608-A40742TWF1 11 1274281 曰修. mmm —ιι«ι·| »_1 w~ » m *<nnr 11 »_♦·«μμ, £»··μ~u««<»» w, 押-WNhe^i (SubByte, or S-box), shifting ( ShiftRows), Mix(MixColums), and back alloy key (1*_(1)^) are added (eight (1 (1 to _(1{^). The step of decoding for a ciphertext is actually and the encryption is very Similarly, the ciphertext is treated as an input value, and the inverse decoding and inverse operations are performed at each round. The output value of the last round is this article. [0011] Data Encryption Standard (DES) and Triple Data Encryption The secondary operations of the standard (Tripie_DES) application are not the same in small details, but they are basically similar to the High Order Encryption Standard (AES) algorithm because they convert the fragment of this article into a ciphertext of a segment in a similar manner. [0 012] All symmetric key encryption algorithms encrypt the pattern of multiple consecutive fragment data. These include the edit block chain mode. (cipher bl〇ck chaining mode 'CBC) 'electronic book code (electronic C0 (ie book, ECB), cipher feedback mode (CFB) and output feedback mode (output feedback m〇de, OFB) Some modes require a different initialization vector (initiaHzati〇n vect〇r) to perform the secondary operation, and some will add the first set of encrypted ciphertext to the second set of the encrypted operation. The operation steps of a cryptographic compilation algorithm and the current symmetric key addition algorithm are beyond the scope of the application of the present invention. The detailed implementation specification of the data encryption standard DES and the three-dimensional data encryption standard Triple_ DES is discussed. Readers can refer to the Federal 西 丨 丨 25 25 25 Fe Fe Fe Fe
Information Processing Standards Publication 46_3(FIPS_46_3),西元 2001 年 11 月 26 日的 Federal Information Processing Standards Publication 197 (FIPS-197)中則有AES詳細的探討。上述的刊物都是由Nati〇nal Institute of Standanis and Technology (NIST)所發行編譯的,在此附為參 考讀物,所涵蓋的近乎範圍。除了這些刊物外,NIST的c〇mputerInformation Processing Standards Publication 46_3 (FIPS_46_3), AES detailed discussion in Federal Information Processing Standards Publication 197 (FIPS-197) on November 26, 2001. The above publications are compiled by the Nati〇nal Institute of Standanis and Technology (NIST) and are hereby incorporated by reference. In addition to these publications, NIST's c〇mputer
Security Resource Center(CSRC)網站 http://csrc.nist.gov/内也提供單元 教學、白皮書、toolkits和相關文章等。 [〇〇13]熟知這方面技術的讀者應該都了解電腦系統上有很多軟體 0608-A40742TWF1 12 1274281 都能用來執行密碼編譯的動作(也就是加密和解密)。事實上,有些作業 系統(例如微軟視窗XP,Linux)透過密碼編譯基元(crypt〇graphic primitives) ’ 密碼編譯應用軟體介面(cryptographic application program interface)和其他類似介面提供直接加密/解密服務。當下的發明人發現 現今電知編譯密碼技巧上在多方面有許多缺陷。請讀者們現在看到圖 一,圖中標示出這些缺失,以下將探討這些問題。 [0014]圖一為現今電腦密碼編譯應用的方塊圖方塊圖1⑻顯 示了第一台電腦101連接到區域網路1〇5、另外連接到區域網路1〇5 的還有第二台電腦102、網路擋案儲存裝置106、第一個路由器1〇7或 是以其他形式的介面,比如說網路,連接至廣域網路11〇(wide狀從 network ’ WAN),和一個無線網路路由器1〇8,例如符合ffiEE 8〇2 ιι 規範的無線路由器。 在廣域網路110 (wide area network)另-端接的是第二個路由器 111,用來提供與第三台電腦103的介面。 w _5]如敎所述,現今制者在—般使㈣腦時會f要保密電腦 資料的時候越來越頻繁。例如說,在作業系統控制之下,第一台電腦 101的使用者可朗時進行多樣工作,而每駐作㈣要密碼編譯作 業。第-台電腦101的使用者需要執行應用程式112來加密/解密(透 戈者是作業系統行使的)將一個檔案存入網路槽案儲 $裝置1G6 4儲存檔案關時,使用者也可能將加密過的資 第-台電細102的使用者’這個動作將也需要應用程式u 和^的功。加密傳㈣f訊有可能是即時的(例 ^ 即時的(例如電子餐)。另外,制者可能是在第三台電腦10;== 廣域網路110在存取個人的金融:#輸如信 或是其他重要資料。第=么雷腦lm少了沙圭 金融又易4) 端電腦H)3,1中笛可代表一個家庭辦公室或是遠 知電細其中第一台電腦101之使用者不在辦公室内,則可以使 0608-A40742TWF1 13 乂 1274281 ,· . - - _ 用廣域網路no來存取區域網路105上共享資源1〇1、ι〇2、ι〇6、ι〇7、 108和109之内部資料。以上所述的行為都需要呼叫應用程式1 ^關加密和解密的動作。此外,無線網路109 6被廣泛的佈局在吻 :廳、機場、學校等公共場所,所以手提電腦刚的使用者除了必須 送給觸制者的魏加密或解料,所姐過無線網路 109傳給無_路路丨n 職料也轉纽χ加密/解密。 [0016]熟知此技術領域的人士可以了解當電腦姻需要 2碼編譯的動作時,應用程式112會被呼叫,然後進行加密或解密的 動作。所以未來電腦1G1_1()4有可能必須同時進行上百個密 鼻。 ^ [0017]發明者發現電齡統同時,叫—個或—個以上加 =、或解密應用程式112的做法有下列缺點,例如說,若可以使用一個 門的更體來處理這些功能,硬體處理的速度會比用軟體快。每次應 用,式m需要進行加密解密時’電腦1〇1正在執行的工作‘ 須先暫停來傳猶碼編_作所_參_如本文、敎、模式及金 魏 1 作業系統,然:後電腦作業系統再將這些資料傳給應用程式 〜來完成密碼編譯動作。由於應用程式112在編譯一段資料時需要執 7夕回。的子運算’因此,電腦要執行的指令數目繁多且讓整個作 ,糸統處理的速度顯著下降。熟習此技術領域者能了解為什麼在微軟 環境巾發出-封加魏子替後所㈣傳輸賴會是未 郵件的五倍之多。 [〇=8] 〃人電腦作業彡、_ 賴也會影響祕仙這項技 二^應用軟體内大多沒有完整的金鑰產生或加密/解密功能,所以 禮作業系、先或疋插件軟體②lug-ins〇ftware)來完成這些作業。而要 二得作業系統資源’要向作業系統發出中斷指令(inter_或是由正在 執行的顧軟體對作職統提出要求。 0608-A40742TWF1 1274281 年 日修(尤 [0019]發明者也發現電腦錢1gmq 期微處理器内處理浮點運算單位還沒成立專門;5 f方式與較早 =速度也是很慢。隨著浮點運算的技術演進,== ,中央處理器的輔助處理器。雖然 處== ::r^ 里.。的輔助處理15可驗電腦系統密碼編譯的卫 :=!格和耗電量之外,不但整個系統的穩定度降低,資;: …、考里ϋ為辅助處理器的和微處理器並不存在同一個晶片 上’所以它們之間的連接管道可能被竊聽。 [〇〇_ ^ t 是夂'要的。這個 硬體應讓應職體只需發—個指令便能完絲碼編譯。發明者認為這 種硬體能減少介入電腦作業系統的必要。理想中此發明能提供應用軟 體執行密碼編譯指令的優先權,除了需要與目前市社較普遍的微處 理器架構相容,_能支援較老舊的作齡統和顧軟體,更要有防 止竊聽機制。此硬體應該支援乡種不同的_編譯演算法,且能夠認 證和測試硬體上的密碼編譯演算法。此發明需要能夠切換本身運作模 式’例如允許使用者選擇提供自己的金鑰或選擇由硬體發行金鑰及支 援切換不同大小的資料片段及金鑰大小。最後,此硬體所使用的加密/ 解密模式應該都可輯轉,例如衫帛電子書碼(ele_nic c〇de book’ECB)’編輯方塊連鎖(cipheΓblockchainingmode,CBC),編碼 回授(cipher feedback mode,CFB)或輸出回授(output feedback mode, OFB)做密碼編譯。 0608-A40742TWF1 15 •%、 1274281 .... 一 ' ....Λ,· ,·二〜. ,·、. · * '· ·· · - ,rV ... . . ...;? 【發明内容】 口口[0021]此項發明解決了先前技術上面臨的問題,提供一個優秀的微處 理恭内建⑨碼崎技術。—實施例巾本發明是—個微處理器内密碼編譯的 在置I置内包含了密碼編譯指令及執行邏輯。密碼編譯指令係由一計 裝置來接收,做為用以在該計算裝置上執行之一指令流程的一部份,其中 此密碼編譯指令_以指定進行該些密碼編譯運算中的—個。執行邏輯運 作上係麵接至该密碼編譯指令,以執行該密碼編譯指令所指定之密碼編等 運算。該缺之密碼編譯·包__指定之密碼編騎算是否 斷事件所中斷。 β τ [0022]本發明之—實麵為—個處理密碼編雜序的微處理器裝置, 此,置包括位於-裝置内的密碼單元,以及位於一暫存器内的一位元。密 馬皁70回應被該裝置接收的指令流程内之_密碼編譯指令,以執行該密 碼編譯指令職定找密碼編料算。在暫抑狀錄絲猶上係輕 元。此位元係肋顯示該指定之密碼編譯運算之執行已由中 本項發明又—實關為—個在微處理器中執行密碼編譯的方 ^法匕括了回應-被碼編譯指令,而執行該密碼編譯指 之一密碼編譯運算;以及顯示在此執行期間是否已發生中斷事件。 【實施方式】 [_]惟叮所述者,僅林發_紐實酬心,麟 =::蓋依本發—_的均等變化_,皆 -b 本I 月Φζί、了 一個效能和機 =越^置和方法錢行密碼編譯運作。此發明降财 要性。除狀外,此發毅了其轉求,域立完紐,與老舊架構 0608-A40742TWF1 16Unit teaching, white papers, toolkits and related articles are also available on the Security Resource Center (CSRC) website at http://csrc.nist.gov/. [〇〇13] Readers who are familiar with this aspect of the technology should understand that there are many softwares on the computer system. 0608-A40742TWF1 12 1274281 can be used to perform cryptographic compilation (ie encryption and decryption). In fact, some operating systems (such as Microsoft Windows XP, Linux) provide direct encryption/decryption services through cryptographic graphic program cryptographic application program interfaces and other similar interfaces. The inventors of the present have discovered that there are many drawbacks in many aspects of the current knowledge of compiling passwords. Readers are now looking at Figure 1, which shows these shortcomings, which are discussed below. [0014] Figure 1 is a block diagram of the current computer password compiling application. Figure 1 (8) shows that the first computer 101 is connected to the local area network 1〇5, and the second computer 102 is connected to the local area network 1〇5. The network file storage device 106, the first router 1〇7 or other forms of interface, such as the network, connected to the wide area network 11 (wide from the network 'WAN), and a wireless network router 1〇8, for example, a wireless router that conforms to the ffiEE 8〇2 ιι specification. Also connected in the wide area network 110 is a second router 111 for providing an interface with the third computer 103. w _5] As mentioned above, the current system is more and more frequent when it is necessary to keep computer data confidential. For example, under the control of the operating system, the user of the first computer 101 can perform various tasks in a timely manner, and each resident (4) needs a password compiling job. The user of the first computer 101 needs to execute the application 112 to encrypt/decrypt (the transgender is operated by the operating system) to store a file in the network slot. The storage device 1G6 4 when the file is closed, the user may also The action of the encrypted user-desktop 102 user will also require the functions of the applications u and ^. Encrypted (4) f-message may be instantaneous (eg ^ instant (eg electronic meal). In addition, the maker may be on the third computer 10; == WAN 110 is accessing personal finance: #输如信 or It is other important information. The first = the thunder brain lm less Shagui financial and easy 4) end computer H) 3, 1 flute can represent a home office or know the details of the first computer 101 users are not In the office, you can make 0608-A40742TWF1 13 乂1274281,· . - - _ use the wide area network no to access the shared resources on the local area network 1051, ι〇2, ι〇6, ι〇7, 108 and 109 internal information. The behavior described above requires the call application to close the encryption and decryption actions. In addition, the wireless network 109 6 is widely distributed in the public places such as the kiss: hall, airport, school, etc., so the user of the laptop computer must send the wireless encryption or decontamination to the toucher. 109 passed to no _ road 丨 n material also transferred to χ encryption / decryption. [0016] Those skilled in the art will appreciate that when a computer requires 2 code compilation actions, the application 112 will be called and then encrypted or decrypted. Therefore, in the future, the computer 1G1_1()4 may have to carry out hundreds of secrets at the same time. [0017] The inventors have discovered that at the same time, the method of calling one or more plus or = decrypting the application 112 has the following disadvantages, for example, if a door can be used to handle these functions, hard Body processing is faster than using software. For each application, when m needs to be encrypted and decrypted, 'the work that the computer 1〇1 is performing' must be paused first to pass the code. _ _ _ _ such as this article, 敎, mode and Jin Wei 1 operating system, then: The post-computer operating system then passes the data to the application to complete the password compilation. Since the application 112 needs to perform a compilation when compiling a piece of data. Sub-operations' Therefore, the number of instructions that the computer has to execute is so large that the speed of processing the entire system is significantly reduced. Those skilled in the art can understand why the transmission of Microsoft's environmental towel is four times that of the undelivered mail. [〇=8] 〃人电脑工作彡, _ 赖 also affects the secret genius. 2. The application software mostly does not have a complete key generation or encryption/decryption function, so the ritual operation system, first or 疋 plug-in software 2lug -ins〇ftware) to complete these jobs. However, the operating system resources must be issued to the operating system to interrupt the instruction (inter_ or by the implementation of the software to the job requirements. 0608-A40742TWF1 1274281 year repair (you [0019] the inventor also found the computer Money 1gmq period microprocessor processing floating-point arithmetic unit has not been established; 5 f mode and earlier = speed is also very slow. With the evolution of floating-point arithmetic technology, ==, the central processor's auxiliary processor. In the == ::r^ 里.. Auxiliary processing 15 can be used to verify the computer system password compilation: =! and the power consumption, not only the stability of the entire system is reduced, capital;: ..., The auxiliary processor and the microprocessor do not exist on the same chip 'so the connection between them may be eavesdropped. [〇〇_ ^ t is 夂'. This hardware should be used only for the job. - The instruction can be compiled by the silk code. The inventor believes that this hardware can reduce the need to intervene in the computer operating system. Ideally, the invention can provide the priority of the application software to execute the cryptographic command, in addition to the need to be more common with the current city. Microprocessor architecture Rong, _ can support older ageing and software, but also to prevent eavesdropping. This hardware should support different _compilation algorithms, and can authenticate and test cryptographic compilation algorithms on hardware. The invention needs to be able to switch its own mode of operation 'for example, allowing the user to choose to provide his own key or to choose to issue a key by hardware and support switching between different sizes of data fragments and key sizes. Finally, the encryption used by this hardware. / Decryption mode should be able to be reversed, such as ele_nic c〇de book'ECB' cipheΓblockchainingmode (CBC), cipher feedback mode (CFB) or output feedback (output) Feedback mode, OFB) Do password compilation. 0608-A40742TWF1 15 •%, 1274281 .... A '....Λ,·,·2~. ,············, rV . [.1] [Summary] [0021] This invention solves the problems faced by the prior art, and provides an excellent micro-processing built-in 9-yard technology. Yes - the password is compiled in the microprocessor The I-input contains a cryptographic compile instruction and an execution logic. The cryptographic compile command is received by a meter device as part of a flow of instructions for execution on the computing device, wherein the cipher compile command _ is specified Performing some of the cryptographic operations. The execution logic is operatively connected to the cryptographic compile instruction to execute the cryptographic code specified by the cryptographic compile instruction. The cryptographically compiled package __ specifies the password. Whether the editing is interrupted or not. β τ [0022] The present invention is a microprocessor device for processing cryptographic sequences, which includes a cryptographic unit located within the device, and a bit within a temporary register. The crypto soap 70 responds to the _ cipher compilation instruction in the instruction flow received by the device to execute the cryptographic instruction command to find the cryptographic calculation. In the temporary suppression, the silk is still on the light. The bit rib shows that the execution of the specified cryptographic compilation operation has been performed by the present invention, and the method of performing cryptographic compilation in the microprocessor includes a response-coded compilation instruction. Executing the cryptographic compilation refers to one of the cryptographic operations; and whether an interrupt event has occurred during this execution. [Embodiment] [_] Only the above, only Linfa _ New Zealand rewards, Lin =:: Gaiyi this hair - _ equal change _, all - b this I Φ ζ ί, a performance and machine = The more the ^ and the method money line password compile operation. This invention reduces the wealth. In addition to the shape, this made a sense of its turn, the domain is completed, and the old structure 0608-A40742TWF1 16
V 1274281 相性,,議m,从可測試性。 [0041]現在凊看圖二,圖二描繪的是現 … 塊圖200。方塊圖200内心^ 自糸德仃铪碼編譯的方 從系統記憶體中應用程,侧處理器加負責 相關的資料。應用程式記_ 應用転式相關的指令和存取 由系統記憶中料Γ中的軟體控制和資料存取機制通常都是 m _ Γ 處_統她被存放在系統記憶中受到 動作時(例如說-個電子郵納式在執订中需要做譯碼編譯的 謂,紐峨_ 糧),'順知微處理 嗶。人;^ β 成一連串數量龐大的指令才能完成密碼編 執行財雌朗的子程序,有些是連接到這個 |—此社人 有可能是作業系統2〇2所提供的服務。 片'^又圖中都被包在應用程式記憶區203内。應用 ===203 =還包含了—個產生金鑰的軟體綱。這個金餘產生軟體通 吊、貝和接文金鑰的工作,也將金鑰展開成金鑰程序表2〇5。如果使用 =口=式需要,加密軟體2〇6會去讀取初始化向量2〇8。加密軟體執行内 來完成本文加密的動作,最後輸出密文211。解密的流程大致上是一 樣=’ ^需要解讀-段密文時,解密軟體2()7被呼叫。解密軟體撕執行 =定的才曰v來取得欲文2H,金鑰程序表2〇5以及密碼編譯參數2〇9。其中 欲馬、’扁睪’數2G9 %提供密碼編譯的詳細細節。如果使用的解密模式有需 要=密軟體207會去讀取初始化向量2〇8並執行那裡面的指令來完成密 文解岔的動作,輸出本文210。 [0042]加费,解密和產生金鑰的動作應該可以用更少的指令就完成。 出由FIPS出版的規範中便有提供幾個不同的虛擬碼來預估完成一項 2馬、扁"華工作械電腦處理器戶斤需要執行的指令數量。而現在使用的技 術所需處理編譯密碼的指令數量高達±百個以上。除此之外,從那些執行 0608-A40742TWF1 17 1274281 95. 2. 22 子郵件,遠端檔案存取,信用卡交易軟 中的應用軟體(檔案管理,簡訊,電 體)的角度來看,執行這此密 ° 分耗時。甚至合使二:::睪既不疋軟體本身主要的用途,而且又十 電“者錯覺應脉體補有效率。若加密軟體 的工作項雜’職时,目細作業系統 L t 呼叫和管理加密軟體施,解密軟體術軟體。作 必須支射斷、例外等其他狀況。除此之外,電職統上每-個同 寺在進订的松碼編譯都會需要在應用程式記憶區203内安排一些空間給 產生金鍮的軟體204,加密軟體2〇6和解密軟體2G7,而且未來微處理器2〇1 所需處理的密碼編譯工作數量只會有增無減。 [0043] 發明者有#於現今電腦系統處理密碼編譯的這個缺陷,體會需 要-個内建微處理n,並能改善密碼編譯處理速度的裝置及方法的必要 性。此單位透過-個單-的密碼編譯指令便啟動編譯程序。關於此發明, 我們將參照圖三至圖十二來做更深入的解釋。 [0044] 現在請相三,圖三是依照本發明原理的微處理器密碼編譯運 算装置方塊圖300。圖300顯示微處理器301透過記憶體匯流排319與系統 δ己憶體321結合。微處理器301包含了轉譯邏輯3〇3。轉譯邏輯303從指令 暫存器302接收指令。密碼轉譯邏輯303的構成可以是一個邏輯、電路、 裝置、试指令碼(就是微指令或原生指令)或是一個邏輯、電路、裝置、微 指令碼或其他可以達到同樣功效元件的結合,將指令轉成對照的微指令碼 的元件。構成密碼編譯邏輯303的元件可以與微處理器301内執行其他功 能的線路、微指令碼等元件共用。根據本應用範圍,微指令碼指的是複數 個微指令。微指令(也可以被稱做原生指令)指的是密碼編譯單元層次可執 行的指令。比方說,精簡指令集運算處理器都直接執行微指令,而加強指 令集運算處理器,如χ86相容的處理器,則先將指令翻譯成微指令然後再 由内部一個或一個以上的單位執行。轉譯邏輯303和指令仵列304耦接。 指令佇列304中有複數個微指令305,306,這些微指令是由微指令佇列304 0608-A40742TWF1 18 1274281 m 2 2;( ^暫存純&邏輯㈤。其巾暫存器階段邏輯包含了暫存籠案聊。微指 ^指令制移動至暫存邏輯區。暫存邏輯包含了-個暫存檔307,暫存檔 内有複數侧暫存308-313。這些暫存^會在進行編碼編譯運算前將 運异所需要的資料载人。每個暫存器都指向記歷321中卿部其中含 ::譯密碼運算所需要的資料。暫存區邏輯與載入邏輯314輕接。載入邏 U取讀、資料313婦,從快取記憶資料313讀取密碼編譯運算所需 要_料。資料快取記憶透過記憶匯流排319與記憶體祕並且執行收到 =曰7執订邏輯328的構成可以是一個邏輯、電路、裝置、微指令碼(就 疋微指令或原生齡)或是-個邏輯、電路、裝置、微指令碼或其他可以達 丨同樣功Atg件的結合’細指令所指補運算。構減行邏輯元件 可以是和微處理器观内別的功能共用的。執行邏輯微包含了_個密碼 編譯單位⑽。密碼編譯單位⑽從載人邏輯314接收密碼編譯運算所需資 料。微指令指示密碼編譯單位316對複數個輸入文字片段挪進行密碼編 並輸崎應的複數個輸出文字片段327。密碼編譯單位316賴成可以 =個邏輯’電路,裝置’微指令碼(就是微指令或原生指令)或是一個邏 口 ’電路,裝置,微指令碼或其他可以達到同樣功效元件的結合,處理穷 碼編譯。構成密碼編釋邏輯期元件可以是和微處理器观喊行其他^ 能的線路、微指令碼、等元件制。—實施例中密碼編譯單位⑽鱼執行 邏輯328内如浮點單位和整數單位等執料位平行執行(未顯示)。一「單 位」的實施例的構成可以是一個邏輯、電路、裝置、微指令碼(就是微指令 或原生指令)或是-個邏輯、電路、裝置、微指令碼或其他可以達到同樣功 效το件的結合。構成此單位的元件可以是和微處理器3〇1内執行其他功能 的線路、微指令碼、等元件共用。一實施例中,整數單位的構成可以是二 個邏輯、電路、裝置、難令碼(就是漏令生齡)錢—個邏輯、 電路、裝置、微指令碼或其他可以剌雜功效元件的結合,執行整數指 令。-個浮點單位的構成可以是一個邏輯、電路、裝置、微指令碼(就是^ 0608-A40742TWF1 19 1274281 ί 指令或原生指令)或是-個邏輯、電路、裝置、微指令媽或其他可以達到同 樣功效70件的結合,執行浮點指令。構成整數單位内執行整數指令的元件 可以是和洋點運算單位中處理浮點運算指令的元件的線路、微 共用。-與娜帛構相容的實施财,密碼編譯單位316與;^整數單 位,- x86浮點單位,一 χ86眶單位和一· Μ單位平行運作。根據 本發明範圍,-與相容結構的實施例可以支援大多數為處理器撰 寫的軟體。判斷軟體是否正確被執行的方法驗查執行軟體後是否得到正 確的結果。魏與x86相容的實施例是將密碼編譯單位視為滿執行單位 中的-個子單位。密碼編譯單位316與儲存邏輯317 _並提供輸出複數 麵應文字片段327。儲存邏輯又與資料快取記憶_ 315。資料快取記憶 315將輸出文字資料327分送至記憶體321中儲存。儲存邏輯317與寫回邏 輯318減。密碼編譯運算完成後寫回邏輯318更新暫存器標案紐中暫 存308-313之内容。一實施例中微指令配合時脈信號(未顯示)流向前述 的每個邏輯階段302、303、304、307、317、316-318,這樣運算可以如同 生產線作業般同時執行多個運算。 [0045]系統記憶體321内,一應用程式若需要執行密碼編譯運算,可向 微處理器301發出一個密碼運算指令322,以下稱為XCRYpT指令犯2。在 加強指令集運算實施例中,XCRYPT指令322包含了一個指示密碼編譯運算 的微指令。在精簡指令集運算實施例中,XCRYpT指令322包含了一個指示 密碼編譯運算的微指令。一實施例中,XCRYpT指令322用了 一個現有指令 集中多出或為使用的指令運算碼。一 χ86相容的實施例中,XCRYpT指令322 疋一個4位元指令包含一 χ86前置(prefix)(也就是〇xF3),一指令集内為 被使用過的2位元運算碼(就是〇x〇FA7),和一一位元區塊解密模式。一實 施例中XCRYPT指令322依照應用軟體被允許執行的層次,可以直接將 XCRYPT指令322直接微處理器3〇1的指令流程或是由作業系統32〇寫入。 因為只軟體或作業系統只需要下一個指令322就能完成密碼編譯,所以密 0608-A40742TWF1 20 (月日修(吏)正替類1 127428 Γ 碼編譯的作業細節對健系統較透明的。 =]辑細作模式,是由物謂 :。應用軟體下令執行㈣ΡΤ指令吻時, = 被從記憶體321傳到提取邏輯_。當然軟=還 制字元微處—3G1先將記憶體321中娜―327的密碼編譯控 fIZ I碼編譯控制金鑰324或金鑰程序表微,初始向量撕若 胸3烈327 Φ者被處理的輸入文字咖和輸出文327會被複製至對應的暫 前^ ^ 始化暫存器勝312的動作4要在執行着_ 70為執订XCRYPT322指令時會用到暫存器308-312中所有的資料。 個暫存器’一個負責紀錄輸入文字有幾個片段還需要被加密/解 入、=存器。轉譯邏輯303從提取邏輯3〇2取職令,轉譯成對應的微指 π ’和不微處理H 301完成密碼編譯運算。微指令3〇5_3〇6巾的第一鮮 令雜示密碼編譯單位316將資料從載入邏輯載入,然後開始執行指定次 數的密碼編譯。執行完成的結果的輸出檔會透過資料快取記憶315存入記 體321中的儲存邏輯317的文字區327。第二組複數個的指令(未㈣ 才曰不微處理器301内其他執行單位(未顯示)。非架構暫存器通常包含臨時 結,和計數ϋ更新輸人和輸出指標暫存器31卜312。若有顧到初始向量暫 存盗的更新資料。其中-實施例便是暫存n寫—313為架構暫存器。 [〇〇47]-實施例中,密碼編譯單位316被分為複數個階段,允許連續 輸入的文字片段326被管線化。 [0048]圖三所顯示的元件為解釋本發明的必要元件。許多現今的微處 理器301内部的邏輯沒有在圖300内中顯示。熟習該項技術者會發現,為 了能清楚說明發明,許多微處理器301内包含的邏輯在圖3〇〇中都被簡化 了。這是為了方便敘述。如載入邏輯314可以包括一個地址產生步驟,接 者一個快取記憶介面階段。然後再接著一個快取記憶對齊階段。但是有一 點很重要,本發明對複數個輸入文字片段進行密碼編譯326,作業系統只要 0608-A40742TWF1 21 1274281 ^ 便1"°成°本㈣始密碼編譯卫作的細節動作完全透明 化,而且和微處理器3〇1内苴 王逯明 ^ XCRYPT ^ 322 ° 316 [〇_現請參考_,這::和現今較老舊作㈣統運算相容。 令姻包含了-倾錄4G1,_ 403,-個區塊解密模式攔位偷_& 辦异碼攔位 指令結構相容- f施例中,欄位4G1-4G4的内容與 指令概念延伸至進-步地涉及儲存於暫存器腿中的控制字組指標器、儲 存於暫存器EBX中的密碼金鑰指標器、以及儲存於暫存器ΕΑχ中之初始化 向量的指標器(若藉由預定密碼模式所需要的話)。 [0050]運τ時’心^令集結構都採取加人了—健擇 ⑽。此欄仙容用來指示處理器開啟或_-些運算功能。例如直接作^ 位兀或20位το運算的功能和直接處理或存取特定片段的功鮮。重複前置 欄位402的内容代表密碼編譯動作需要被重複執行的次數。重複前置搁位 402也隱含地指示符合的微處理器,使用其中當作指標器之複數個架構性暫 存器的内容,喊耽含完成蚊密碼運算所碼龍及參數之系統 e己憶體中驗置。如社所提及,在相容的實蘭巾,重複前置搁位 402的值為0xF3。並且’根據架構協定,密瑪編譯指令的形式係與娜 重,字串指令(如RFP.MOVS)非常類似。例如,當由本發明的χ86相容微處 理器實把例來執行時,重複前置攔彳域隱含地涉及儲存於架構性暫存器沉X 中的可變區塊計數、儲存於暫存^脱中的來源位址指標器(指向密碼運算 的輸入資料)、錢齡於暫存ϋ EDI巾的目的恤指標器(指向記憶體中 的輸出資料區)。在相容實補中,本發明進—步會將傳_重複字串 [0051]運算碼攔位403指微處理器去執行控制字元指示的密碼編譯運 算’這個控制子元實際上是被存在記憶體内,一控制字指標指向控制字在 記憶體中的位置。運算碼的值會被設定為一個現有指令集内少用的值。如 0608-A40742TWF1 22 1274281 V / ί 此來’較老舊的作業系統及應用軟體也能使用。例如說,一個相容 =統就可以將此值設為QxQFA7。區塊解賴式攔位綱指示哪—項密碼運 算作業需被執行。請看圖五。 [0052] 圖五疋一個區塊密碼攔位值與微處理器運算動作對照表例子。 如圖所不’若區塊密碼欄位内的值為隨時,微處理器就相電子書碼⑽) 松式來完成密碼編譯動作。冑攔灿的值為議時,微處理器就會以編 輯方塊連鎖(CBC)模式。ΟχΕΟ表示微處理器應使用編碼回授(CFB)模式,〇χΕ8 表不使用輸出回授_)模式。以上所述各模式在FIps文獻中均有詳細的 描述。 [0053] 請看圖六。圖六所要表現的是一個在χ86相容的微處理器6〇〇 中的密碼編譯單位617之發明實施例。微處理器6〇〇内有一個提取邏輯 601。提取邏輯6〇1從記憶體(未顯示)取得指令。轉譯邏輯6〇2由一個邏輯, 電路,微指令碼(microcode)(就是微指令,micr〇 instructi〇ns或原生 碼,native instruction)裝置或是其他可以將指令轉成對照的微指令碼的 兀件。轉譯邏輯602内的轉譯元件可以與微處理器600内其他功能元件共 用。如圖所示,轉譯邏輯602内包含了一個互相耦接的轉譯器6〇3、微指令 碼唯讀記憶體604和區段指標器邏輯640。中斷邏輯626透過匯流排628耦 接轉譯邏輯602。軟/硬體所發出的中斷要求信號627都由中斷邏輯626處 理。中斷邏輯626轉達指令轉譯邏輯602中斷。如圖六所示,指令轉譯邏 輯與以下連串性階段耦接。包括暫存器階段6〇5,位址階段606,載入階段 607,執行階段608,儲存階段618以及寫回階段619。圖六所描繪的執行 階段608内包含了 一個執行邏輯632。執行邏輯632内有多個同時作業的執 行單位,單位610,612,614,616和617。整數單位610負責執行微指令 佇列609内的整數微指令,浮點單位612負責執行微指令佇列611内的浮 點微指令,MMX單位614負責執行指令佇列613内的MMX微指令,SSE單位 616負責執行微指令佇列615内的SSE微指令。SSE單位616和密碼編譯單 0608-A40742TWF1 23 !274281 v ( 位6Π麵接。兩單位中間有一個載入匯流排62〇,一個閒置信號62i和一個 儲存匯流排622。密碼編譯單位617和观單位共用同一個指令仔列615。 另-個實施例的做法是將密碼編譯單位617設為—個如單位⑽,⑽及叫 相同的完全獨立的單位。整數單位_和滿efugs暫存器是_的。 EFLAGS暫存器包含了一個χ位元咖。這個χ位元内的值描目前是否讀 馬、爲厚運算正在作625實施例中的其中一項是娜肌暫存 器624中的第30個位元。另外,整數單位61〇會讀取暫存㈣8中資料來 分析-個E位629的狀態。E位元中的值指示密石馬編譯單元6i 7是否存在 於微處理器咖内。整數單位⑽也會讀取一個D位元631。這個位元位於 特徵控制暫存n⑽内,峰開啟和關密碼編譯單位617。如圖三微處理 器實施例3G卜圖六的微處理器_為了能清楚表達發明舰,圖中只顯示 出-些微處理器的構造,其他部分則被匯集在一起或著已被省略。熟知此 =技2狀士可㈣解元件’例如貞„料快取域(未顯示)的介面,匿 流排介面單位(未顯示)以及時鐘發生器和分散邏輯等其他微處理器的單位 都被省略。 [0054]運算過程巾,提取邏輯配合時鐘域(未顯示)·令從記憶體 (未顯示)提至轉譯邏輯6〇2。轉譯邏輯,將指令轉編為對應的微指令然後 配合時鐘訊號轉供給微處理器咖内嶋―_,618及619等單位。每個指 令對應的-連串微指令指示微處理器該做的子動作來完成該項指令。例如 -個由位㈣段_執行的位址產生指令,就包含了先從暫存器階段咖 特定的兩㈣存H(糊示)峰得兩個運算元,然後再於整鮮位⑽相 加兩個運算元。所有執行單位610,612,614,616及617所產生的結果都 由儲存邏輯618負責存入記憶體中。轉譯邏輯602會判斷指令的類型,然 後使用轉譯器_直接產生一連貫的微指令,或是轉譯邏輯602會由微指 令碼唯讀記憶體604中提提取一連貫的微指令。或著轉譯邏輯602會產生 P刀的4才曰々剩下的再從微指令碼唯讀記憶中提出。微指令按照時鐘速 0608-A40742TWF1 24 1274281 ,V ί =在微處理器_中遵循,⑽和⑽各階段的順序執行。者微 才"移動到執行階段時,執行邏輯632將微指令發送至執行單位^, 612 ’ >614 ’ 616 ’及617戶斤執行運算產生的結果接著進入儲存階段⑽。在 一實施例中,微指令包含了標明範圍了指令,不論能不能與其他運算同時 進行。 ^ 、 ^⑽剛轉譯邏輯602接收到謂ΡΤ指令後,產生對應的為指令,指揮 微處理器600 β其他邏輯6〇5—_,⑽,619來執行到的密碼編譯運算指 =。前面幾個複數個的微指令會直接被分派到密碼編譯單㈣17内來:揮 皁位6Π從載人匯流排載人需要哺料。或是載人—個#段的輸入資料, 開始進郝7F次數的密碼編譯回合。也有可能是將—段輸出資流透過健存 5流排622傳到儲存邏輯618,然後再存入記憶體中。接下來第二組複數個 才曰々曰被刀送到執行單位,M2,614和616來執行其他必要的子運算。 例如測,Ε位元629,設定D位元631,將X位元625之值設定為顯示密碼 、、扁厚運算正在執行中’將X位元625之值設定為顯示密碼編譯運算正在執 行中。更新暫存器内容(如計數暫存器,輸入文字指標暫存器,輸出文字指 標暫存器)暫存階段605範圍内的工作,處理由中斷賴咖送來的中斷要 求627,等工作。為了實現最有效率的密碼編譯相關指令,微指令的順序會 被特別排列成將整數單元微指令穿插於密碼編譯微指令中,已達成整數運 异與密碼編譯運算平行執行。微指令中包含了從中斷要求627中恢復所需 要的微扣令。所有指向密碼編譯參數(cryP^〇graphiC paramefer)和資料的 指標都位於χ86架構暫存器内,收到中斷要求時,指標都會被儲存,中斷 結束後’資料計參數會被恢復。因此,當中斷發生時,程式控制會轉移到 對應的中斷服務常式。如程式控制的此轉移之一部份,會清除X位元625, 以表示金鑰資料及控制字組資料不再有效。在從中斷中返回後,程式控制 會立即轉回到XCRYPT指令,以及如其對應的微指令之一部份,特定微指令 會測試X位元625的狀態,以判斷金鑰資料及控制字組資料是否為有效。 0608-A40742TWF1 25 1274281 95. 2, 22 =如此/情發生時,會重複正進行處理之特定區塊的輸人資料之運算。 若X位70 625的狀態係表示金鑰資料及控制字組資料不再為有效,則會從 記憶體中,重新載人伴隨著正進行處理之特⑽塊的輸人資料之金餘資料 及控制字組。總括言之’根據本㈣之腹Ρτ齡的齡總是會涉及x位 元625的初始測試,關斷密碼編譯單位617内的金餘資料及控制字組資 料之有效性。若金鑰資細^字崎财財效,齡鑰資料及控制字 組資料會從錄針載人。«,錄人藉崎人鍊暫抑_容所指 向之輸人胃料區塊’並且讀輸人資料區塊執行歡純運算。另外的方 式是’會載人輸人資籠塊,並且不會先載人金鑰及控制字組資料, 而執行預定密碼運算。 [0056] 若產生新金鍮資料或新控制社,則錢摘謂ρτ指令之 前,需要清除X位A 625。也會考慮到可使用相同的金鍮資料及控制字組資 料來執行賴的MYPT齡。在_情μ,賴人初始金鑰龍及控制 字組資料之後,不需清除X位元625。例如,為了與記憶體匯流排速度有關 的最佳化目的,使用者可將例如是刚個輸人資料區塊的加密/解密分解成 5個XCRYPT指令’各自處理每一個的輸入資料區塊。 [0057] 區塊指標器邏輯_可確信對應微指令會做安排,以允許用於 指標暫存器,以及在處理中斷627之前,更新對一序列輸入文字區塊的二 序列區塊密碼運算之中間結果。區塊指標器邏輯_會指示將微指令插入 對應祕指令的流程,以致於在完成對第—區塊的輸人資料的密碼運算時, 記憶體中的輸人及輸出資料區塊之指標ϋ會修改成指向下個輸人及輸出資 料區塊。此外,區塊指標器邏輯64〇會指示將微指令插入對應微指令的流 程,以修改區塊計數器,以表示對目前區塊的輸入資料之密碼運算已完成。 再者’在使用區塊密碼器模式的事件中,f對緊接的區塊資料執行密碼運 算時,需要使用起因於對目前區塊的資料執行密碼運算之資料,然後區塊 指標器邏輯640也會指示將微指令插入對應微指令的流程,以保持或產生 0608-A40742TWF1 26 127428¼ ο, %% /、保持起因於對目前區塊的資料執行密碼運算之資料在初始化向量所指定 之記憶體的區域内,以致於在從中斷事件返回後,對緊接的區塊資料執行 密碼運算可持續下去。 [0058]请看圖七,圖七是一個微指令結構的範例。這個微指令7⑼就 是用來指示像圖六所見的微處理器來執行密碼編譯運算的指令。微指令7〇〇 包含了一個微運算碼攔位701,一個資料暫存器攔位702和一個暫存器攔位 703。微運算碼欄位7〇1提供了微處理器6〇〇該執行那些子運算程序,和每 階段所要個的糖。在本發财,特定的值是被指定職齡以供解碼 單兀運作使用。第-個值(XL_)指示從記憶體中資料暫存器攔位7()2指向 的位置中的㈣。這個雜應被載人暫存器獅所只是在密碼編譯單 位中的位置。這個提出的資料(例如密碼編譯金鑰資料,控制字,輸入文字 資料,初始化向量)是提供給密碼編譯單位用的。第二個微運算碼搁位加 ,值(XSTOR),指示密碼編譯單元運算產生的結果應存入記憶體中資料暫存 态攔位702所指向的位置。針對多階結構的密碼編譯單位,暫存器攔位7⑽ 的内容指示在複數個輸出資料片段那—個應該被存入記憶體中。輸出資料 片段被放在資料欄位704,供給儲存邏輯讀取。接下來,參考圖八與圖九, 將更進一步探討XLOAD和XSTOR在密碼編譯單位中的執行流程。回 _⑽59]請參考圖八,表格8GG是如先前所述,微處理器轉譯Μργτ指 令得到-組為指令。這組微指令中的前面第—組複數個微指令 : 單元直接執行,接下來第二組的複數個微指令則是由—個或衫個其他: 位平行執行。第二組複數個微指令所進行的動作包括更新計_,臨: 存器,結構暫存H,測試和設定機械特定暫存器的位元狀態等 \、、 數個的《令龍供金鑰資料,密碼編譯參數,和輸人4給 t ^並指揮密碼編譯單位產生金鑰程序表(或載入由記憶體中提出的金2 序表),載入或將輸入文字加密或解密,儲存輸出文字資料。一 X :: 令指示密碼編譯單位載人控制字資料,載人密碼編譯金鑰或金鑰指 0608-A40742TWF1 27 載入初始化向量資料,載人輸人文字資料,和指示開始進行密碼編譯運算。 當微指令微XLGAD時,暫存器欄位獨中的值_Q指示密碼編譯單;將 控制字載人控制字《暫存器。隨指這個指令在管線中前進,其中會遇到 -個暫存器内存控制字指標。這個指標指向記㈣中控制字的位置。載入 邏輯從快取纖财提it!這個控游,放人資侧位綱。補的,暫存器 攔位值OblOO指不密碼編譯單位載入資料欄位7〇4巾的輸入文字資料。然 後再進行密碼編譯運算。如同控制字元,輸人資料是透過—個存在結構暫 存器内的指標提出。 [0060] -實施例中,暫存器欄位G_可被視為—個兩階段 的密碼編譯單位。連續的輸人文字㈣可被練化。第—個舰d微指令 將第一段輸入文字放入IN-1,第二個XL0AD微指令將第二段輸入文字放入 IN-0 ’第二個乂_)微指♦也會啟動密碼編譯單位執行密碼編譯運算。 [0061] 如果密碼編譯運算所使用的是使用者自行產生的金鑰程序表, 則XL0AD微指令的數目與使用者自行產生的金鑰程序表中金錄的數目相對 應。使用者自行產生的金鑰程序表會被分送到密碼編譯單位内,此單位會 依照岔碼編澤進行的狀況從金鑰程序表中載入該回合所使用的金鍮。 [0062] XLOAD微指令暫存器欄位703中其他值都為保留值。 [0063] 請看圖九,圖九中表格中顯示XST〇R微指令暫存器欄位7〇3的 對照表。XST0RE指令指示密碼、編譯單位將處理好的輸出文字片段(加密過或 解密過的)存到位置攔位702所指示的記憶體内的位置。根據本發明,翻譯 邏輯先產生一個XL0AD微指令載入一段輸入文字,然後再發出xST〇r將該 輸入文字所產生的對應輸出文字儲存。暫存器欄位7〇3的值〇w〇〇指示密 碼編譯單位提供内部暫存器ο^ρ^-Ο,ΟυΤ^中的輸出文字片段供給儲存 邏輯做儲存。OUT-0的内容是IN-0中輸入文字片段的對應。相同的,暫存 襴位OblOl指向的内部暫存器output_;[,其内容是IN—丨中輸入資料的對 應。載入金鑰和控制字資料後,下XLOAD. IN-1,複數個輸入文字片段可以 0608-A40742TWF1 28 1274281 ^ /V 1274281 Convergence, m, from testability. [0041] Referring now to Figure 2, Figure 2 depicts the current block diagram 200. The inner graph of the block diagram 200 is compiled from the system memory, and the side processor is responsible for the related data. Application Notes _ Application-related instructions and accesses are controlled by the software in the system memory and the data access mechanism is usually m _ Γ where she is stored in the system memory when it is acted upon (for example - An e-mail-type in the binding needs to do the decoding and compiling, New Zealand _ grain), 'Shunzhi micro-processing 哔. People; ^ β into a series of instructions to complete the cipher code to execute the financial sub-program, some are connected to this | - this community may be the operating system 2 〇 2 services. The slice '^ and the figure are both enclosed in the application memory area 203. The application ===203 = also contains a software class that generates the key. This Jin Yu produces the software to hang, shell and receive the key, and also expands the key into the key program table 2〇5. If you use the = port = type, the encryption software 2〇6 will read the initialization vector 2〇8. The encryption software performs the internal encryption operation, and finally outputs the ciphertext 211. The process of decryption is roughly the same as = ' ^ need to interpret - segment ciphertext, decryption software 2 () 7 is called. Decryption software tear execution = fixed 曰 v to obtain the desire 2H, key program table 2 〇 5 and password compilation parameters 2 〇 9. The details of the password compilation are provided by the 2G9 % of the horses and the squats. If the decryption mode used is needed = the secret software 207 will read the initialization vector 2〇8 and execute the instructions there to complete the ciphertext decoding operation, and output 210. [0042] The actions of adding, decrypting, and generating keys should be done with fewer instructions. Out of the specifications published by FIPS, there are several different virtual codes to estimate the number of instructions that need to be executed to complete a 2 Ma, flat " The number of instructions required to process the compiled password is now as high as ±100 or more. In addition, from the point of view of the application software (file management, newsletter, electric body) in the execution of 0608-A40742TWF1 17 1274281 95. 2. 22 sub-mail, remote file access, credit card transaction software, perform this This density is time-consuming. Even the second two:::睪 is neither the main use of the software itself, but also the ten erroneous illusion that the pulse body complements the efficiency. If the work item of the encryption software is miscellaneous, the task system L t calls and Manage the encryption software, decrypt the software software. It must be broken, exceptions, etc. In addition, the power code compilation in each of the same temples in the electric service system will need to be in the application memory area 203. Some space is arranged inside to generate the software 204, the encryption software 2〇6 and the decryption software 2G7, and the number of cryptographic compilation work required for the future microprocessor 2〇1 will only increase or decrease. [0043] Inventor There is a defect in the current computer system to handle password compilation, the need to have a built-in micro-processing n, and the need to improve the speed of the password compilation processing device. This unit through a single-code compiler command The compiler is started. With regard to this invention, we will make a more in-depth explanation with reference to Figures 3 to 12. [0044] Now, please refer to FIG. 3, which is a block diagram 300 of a microprocessor cryptographic operation device in accordance with the principles of the present invention. Diagram 300 shows microprocessor 301 coupled to system delta memory 321 via memory bus 319. Microprocessor 301 includes translation logic 3.1. Translation logic 303 receives instructions from instruction register 302. Password translation logic The composition of 303 can be a logic, circuit, device, test instruction code (that is, micro-instruction or native instruction) or a combination of logic, circuit, device, micro-instruction code or other components that can achieve the same function, and convert the instruction into a comparison. The elements of the microinstruction code. The elements constituting the cryptographic compiling logic 303 can be shared with elements such as lines and microinstruction codes that perform other functions in the microprocessor 301. According to the scope of the application, the microinstruction code refers to a plurality of microinstructions. Microinstructions (also known as native instructions) refer to instructions that are executable at the cryptographic unit level. For example, a reduced instruction set arithmetic processor directly executes microinstructions, while an enhanced instruction set arithmetic processor, such as χ86 compatible The processor first translates the instructions into microinstructions and then executes them by one or more internal units. Translation logic 303 and instructions仵The column 304 is coupled. The instruction queue 304 has a plurality of microinstructions 305, 306, which are arranged by the microinstruction 304 0608-A40742TWF1 18 1274281 m 2 2; (^ temporary pure & logic (5). The scratchpad stage logic contains the temporary cage case chat. The micro-finger^ command system moves to the temporary storage logical area. The temporary storage logic contains a temporary archive 307, and the temporary archive has multiple side temporary storage 308-313. The data will be carried before the encoding and compiling operation. Each register points to the data in the 321 section of the Qing dynasty: the data required for the translation of the cryptographic operation. The logic 314 is lightly connected. The loading logic U takes the reading, the data 313 woman, and the cryptographic compilation operation is required from the cache memory data 313. Data cache memory through memory bus 319 and memory secrets and execution received = 曰 7 binding logic 328 can be a logic, circuit, device, micro-instruction code (for micro-instructions or native age) or - Logic, circuit, device, micro-instruction code or other combination of the same function Atg parts can be used to complement the operation of the fine instruction. The decrementing logic elements can be shared with other functions within the microprocessor view. The execution logic micro contains _ cipher compilation units (10). The cryptographic compilation unit (10) receives the information required for the cryptographic compilation operation from the manned logic 314. The microinstruction instructs the cryptographic compiling unit 316 to cryptographically encode a plurality of input text segments and input a plurality of output text segments 327. The cryptographic compilation unit 316 can be a logical 'circuit, device' micro-instruction code (that is, micro-instruction or native instruction) or a logic port circuit, device, micro-instruction code or other combination of components that can achieve the same function, processing Poor code compilation. The components constituting the cipher-editing logic period may be a circuit, a micro-instruction code, and the like that are in the form of a microprocessor. - In the embodiment, the cipher compilation unit (10) fish execution logic 328 executes parallel executions such as floating point units and integer units (not shown). An embodiment of a "unit" may be a logic, a circuit, a device, a microinstruction code (ie, a microinstruction or a native instruction) or a logic, circuit, device, microinstruction code, or the like that can achieve the same effect. Combination of. The elements constituting this unit may be shared with elements such as lines, microinstructions, and the like that perform other functions in the microprocessor 3.1. In one embodiment, the integer unit may be composed of two logics, circuits, devices, hard codes (ie, missing), logic, circuits, devices, microinstructions, or other combinations of components that can be noisy. , execute an integer instruction. - The structure of a floating point unit can be a logic, circuit, device, microinstruction code (that is, ^ 0608-A40742TWF1 19 1274281 ί instruction or native instruction) or - logic, circuit, device, micro instruction mother or other can reach The same effect of 70 pieces of combination, the implementation of floating point instructions. The component constituting the integer instruction in the integer unit may be a line or a micro-share of the component that processes the floating-point operation instruction in the foreign point operation unit. - Compatible with Na's construction, cryptographic compilation unit 316 and ; ^ integer unit, - x86 floating point unit, one χ 86 眶 unit and one Μ unit in parallel operation. Embodiments of compatible structures can support most of the software written for the processor in accordance with the scope of the present invention. The method of judging whether the software is correctly executed is to check whether the correct result is obtained after executing the software. An embodiment compatible with x86 is to treat the cryptographic compilation unit as a subunit in the full execution unit. The cryptographic compilation unit 316 and the storage logic 317 _ and provide an output complex number should be a text segment 327. The storage logic is again cached with the data _ 315. The data cache memory 315 sends the output text data 327 to the memory 321 for storage. Store logic 317 and write back logic 318 minus. After the cryptographic compilation operation is completed, the logic 318 is updated to update the contents of the temporary register 308-313 in the register. In one embodiment, the microinstruction cooperates with a clock signal (not shown) to flow to each of the logical stages 302, 303, 304, 307, 317, 316-318 described above such that the operation can perform multiple operations simultaneously as in a production line operation. [0045] In the system memory 321, an application may issue a cryptographic operation instruction 322 to the microprocessor 301 if it is required to perform a cryptographic operation, hereinafter referred to as the XCRYpT instruction. In the enhanced instruction set operation embodiment, the XCRYPT instruction 322 includes a microinstruction that indicates a cryptographic compilation operation. In the reduced instruction set operation embodiment, the XCRYpT instruction 322 includes a microinstruction that indicates a cryptographic compilation operation. In one embodiment, the XCRYpT instruction 322 uses an existing instruction set to be extra or to use an instruction opcode. In an 86-compatible embodiment, the XCRYpT instruction 322 疋 a 4-bit instruction includes a χ86 prefix (ie, 〇xF3), which is a used 2-bit arithmetic code in an instruction set (ie, 〇 x〇FA7), and a one-bit block decryption mode. In one embodiment, the XCRYPT instruction 322 can directly write the XCRYPT instruction 322 directly to the instruction flow of the microprocessor 3〇1 or from the operating system 32 in accordance with the level at which the application software is allowed to execute. Because only the software or operating system only needs the next instruction 322 to complete the password compilation, the secret 0608-A40742TWF1 20 (monthly repair (吏) positive class 1 127428 weight compiled job details are more transparent to the health system. The series of fine-grained patterns is made by the object:: The application software orders execution (4) When the command kisses, = is passed from the memory 321 to the extraction logic _. Of course, the soft = still-type character micro--3G1 first memory 321 327 password compile control fIZ I code compile control key 324 or key program table micro, the initial vector tears the chest 3 327 Φ the processed input text coffee and output text 327 will be copied to the corresponding temporary ^ ^ The action of initializing the register wins 312 is to use all the data in the temporary registers 308-312 when executing the _70 command to execute the XCRYPT322. The scratchpad 'a file is responsible for recording the input text. The fragment also needs to be encrypted/unloaded, and the translation logic 303 takes the order from the extraction logic 3〇2 and translates it into the corresponding micro-finger π ' and the non-micro-processing H 301 to complete the cryptographic operation. Microinstruction 3〇5_3 〇6 towel's first fresh code cryptographic compilation unit 316 will be the data The logic load is loaded, and then the specified number of ciphers are compiled. The output of the result of the execution is stored in the text area 327 of the storage logic 317 in the record 321 through the data cache 315. The second plurality of The instruction (not (4) is not the other execution unit in the microprocessor 301 (not shown). The non-architected register usually contains a temporary knot, and the count ϋ update input and output indicator register 31 312. The initial vector temporarily stores the updated data of the thief. The embodiment - the temporary storage n write - 313 is the architecture register. [〇〇 47] - In the embodiment, the cryptographic compilation unit 316 is divided into a plurality of stages, allowing continuous The input text segment 326 is pipelined. [0048] The components shown in Figure 3 are necessary to explain the present invention. The logic within many of today's microprocessors 301 is not shown in Figure 300. Those skilled in the art will It has been found that the logic contained in many of the microprocessors 301 has been simplified in Figure 3 for clarity of illustration. This is for convenience of description. For example, the load logic 314 can include an address generation step, followed by a The cache memory interface stage is followed by a cache memory alignment stage. However, it is important that the present invention performs cryptographic compilation on a plurality of input text segments 326, and the operating system only needs 0608-A40742TWF1 21 1274281 ^ 1"° ° This (four) start password to compile the details of the action is completely transparent, and with the microprocessor 3〇1 inside Wang Yuming ^ XCRYPT ^ 322 ° 316 [〇 _ now please refer to _, this:: and now more old (4) Compatible with the operation. The marriage contains - dump 4G1, _ 403, - block decryption mode block stealing _ & code heterogeneous block command structure compatible - f example, field 4G1- The 4G4 content and instruction concept extends to the control word set indicator stored in the scratchpad leg, the cryptographic key indicator stored in the temporary register EBX, and stored in the temporary memory buffer. The indicator of the initialization vector (if required by the predetermined password mode). [0050] When the τ ’ 'heart ^ command set structure has taken the addition - health choice (10). This column is used to indicate that the processor is turned on or _- some computing functions. For example, the function of directly performing the bit position or the 20-bit το operation and the function of directly processing or accessing a specific piece. The content of the repeat preamble 402 represents the number of times the cryptographic compilation action needs to be repeated. Repeating the pre-position 402 also implicitly indicates the conforming microprocessor, using the contents of the plurality of architectural registers as the indicator, shouting the system containing the code and the parameters of the mosquito code calculation Recall the body in the inspection. As mentioned by the Society, in the case of a compatible solid blue towel, the value of the repeating pre-position 402 is 0xF3. And according to the architecture agreement, the form of the ML compiler instruction is very similar to that of the string command (such as RFP.MOVS). For example, when executed by the χ86 compatible microprocessor of the present invention, the repeated preamble field implicitly involves the variable block count stored in the architectural register sink X, stored in the temporary storage. ^ The source address indicator (pointing to the input data of the cryptographic operation), and the money-oriented indicator of the temporary ϋ EDI towel (pointing to the output data area in the memory). In the compatible real complement, the present invention further forwards the _ repeated string [0051] the arithmetic code block 403 refers to the microprocessor to perform the cryptographic operation of the control character indication 'this control element is actually In memory, a control word indicator points to the position of the control word in the memory. The value of the opcode will be set to a value that is rarely used in an existing instruction set. Such as 0608-A40742TWF1 22 1274281 V / ί This is also the old operating system and application software can also be used. For example, a compatible = system can set this value to QxQFA7. The block splicing block indicates which-key operation needs to be executed. Please see Figure 5. [0052] FIG. 5 is an example of a block password block value and a microprocessor operation action comparison table. If the value in the block password field is at any time, the microprocessor will complete the password compiling operation with the e-book code (10). When the value of the block is set, the microprocessor will edit the block chain (CBC) mode. ΟχΕΟ indicates that the microprocessor should use the code feedback (CFB) mode, and the 〇χΕ8 table does not use the output feedback _) mode. The various modes described above are described in detail in the FIps literature. [0053] Please see Figure 6. What is shown in Figure 6 is an inventive embodiment of a cryptographic compilation unit 617 in a χ86 compatible microprocessor. There is an extraction logic 601 in the microprocessor 6A. The extraction logic 6〇1 fetches instructions from the memory (not shown). Translation logic 6〇2 consists of a logic, circuit, microcode (micro-instruction, micr〇instructi〇ns or native instruction) device or other micro-instruction code that can convert instructions into control. Pieces. The translation elements within translation logic 602 can be shared with other functional elements within microprocessor 600. As shown, the translation logic 602 includes a mutually coupled translator 6〇3, microcoded read-only memory 604, and segment indicator logic 640. Interrupt logic 626 is coupled to translation logic 602 via bus 628. The interrupt request signal 627 from the soft/hardware is processed by the interrupt logic 626. The interrupt logic 626 relays the instruction translation logic 602 interrupt. As shown in Figure 6, the instruction translation logic is coupled to the following series of phases. Including register stage 6〇5, address stage 606, load stage 607, execution stage 608, storage stage 618, and write back stage 619. An execution logic 632 is included in the execution phase 608 depicted in FIG. Execution logic 632 has multiple execution units for simultaneous operations, units 610, 612, 614, 616, and 617. The integer unit 610 is responsible for executing the integer microinstructions in the microinstruction queue 609, the floating point unit 612 is responsible for executing the floating point microinstructions in the microinstruction array 611, and the MMX unit 614 is responsible for executing the MMX microinstructions in the instruction array 613, SSE Unit 616 is responsible for executing the SSE microinstructions within microinstruction queue 615. SSE unit 616 and password compile list 0608-A40742TWF1 23 !274281 v (bit 6Π interface. There is a load bus bar 62〇 between the two units, an idle signal 62i and a storage bus 622. The cryptographic unit 617 and the unit of view The same instruction is queued 615. The other embodiment is to set the cipher compilation unit 617 to a unit such as unit (10), (10) and the same completely independent unit. The integer unit _ and the full efugs register are _ The EFLAGS register contains a 元 元 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 30 bits. In addition, the integer unit 61〇 will read the data in the temporary (4) 8 to analyze the state of the E-bit 629. The value in the E-bit indicates whether the Mississippi compilation unit 6i 7 is present in the microprocessor. The integer unit (10) also reads a D bit 631. This bit is located in the feature control temporary storage n(10), and the peak is turned on and off the cryptographic compilation unit 617. Figure 3 Microprocessor of the microprocessor embodiment 3G _ In order to clearly express the invention ship, only the figure The structure of some microprocessors is shown, and other parts are put together or have been omitted. It is well known that this technique can be used to dissect the interface of the component (not shown). The unit of the interface (not shown) and other microprocessors such as the clock generator and the decentralized logic are omitted. [0054] The operation process wipes the extraction logic with the clock domain (not shown) and the slave memory (not shown). To the translation logic 6〇2. Translation logic, the instructions are transferred to the corresponding micro-instructions and then combined with the clock signal to the microprocessor _ _, 618 and 619 units. Each instruction corresponds to a series of micro-instructions Instructing the microprocessor to perform the sub-action to complete the instruction. For example, an address generation instruction executed by the bit (four) segment_ contains the two (four) memory H (paste) specified from the scratchpad stage. The peak has two operands, and then two operands are added to the entire fresh bit (10). The results produced by all execution units 610, 612, 614, 616 and 617 are stored in the memory by the storage logic 618. Logic 602 will determine the type of instruction, The use of the translator _ directly generates a coherent microinstruction, or the translation logic 602 will extract a coherent microinstruction from the microinstruction code read only memory 604. Or the translation logic 602 will generate a P knife. The rest is proposed from the micro-instruction code read-only memory. The micro-instruction is executed in the order of the clock speed 0608-A40742TWF1 24 1274281, V ί = in the microprocessor_, and the stages of (10) and (10). When moving to the execution phase, execution logic 632 sends the microinstruction to the execution unit ^, 612 ' > 614 '616' and 617 to execute the result of the operation and then enters the storage phase (10). In one embodiment, the microinstruction includes instructions that indicate the range, whether or not it can be performed concurrently with other operations. ^, ^ (10) Just after the translation logic 602 receives the predicate instruction, it generates the corresponding instruction, and directs the microprocessor 600 β other logic 6〇5—_, (10), 619 to execute the cryptographic compilation operation finger =. The first few micro-instructions will be directly assigned to the password compiling list (4): 17: The soap level is 6Π from the manned bus. Or the man-in-the-segment input data, start the password compilation round of Hao 7F times. It is also possible to pass the segment output stream to the storage logic 618 through the health stream 5 622 and then store it in the memory. Next, the second group of multiples is sent to the execution unit, M2, 614 and 616 to perform other necessary sub-operations. For example, the measurement bit 629 sets the D bit 631, sets the value of the X bit 625 to display the password, and the flat thickness operation is being executed. 'Set the value of the X bit 625 to display the cryptographic operation is being executed. . Update the contents of the scratchpad (such as the count register, input the text indicator register, output the text pointer register) the work in the temporary phase 605, handle the interrupt request 627 sent by the interrupted Lai, and so on. In order to implement the most efficient cryptographic compilation related instructions, the order of the microinstructions is specifically arranged to interleave the integer unit microinstructions into the cryptographic composing microinstructions, and integer arithmetic and cryptographic compile operations are performed in parallel. The microinstruction contains the micro-deductions required to recover from the interrupt request 627. All indicators pointing to the cryptographic compilation parameters (cryP^〇graphiC paramefer) and data are located in the χ86 architecture register. When the interrupt request is received, the indicator will be stored. After the interrupt is completed, the data meter parameters will be restored. Therefore, when an interrupt occurs, program control will move to the corresponding interrupt service routine. If part of this transfer is controlled by the program, X bit 625 is cleared to indicate that the key data and control block data are no longer valid. After returning from the interrupt, the program control will immediately return to the XCRYPT instruction, and as part of its corresponding microinstruction, the specific microinstruction will test the state of the X bit 625 to determine the key data and control block data. Whether it is valid. 0608-A40742TWF1 25 1274281 95. 2, 22 = When this happens, the calculation of the input data of the specific block being processed is repeated. If the status of the X-bit 70 625 indicates that the key data and the control block data are no longer valid, the data of the input data of the special (10) block that is being processed will be reloaded from the memory and Control word group. In general, the age of Ρ τ according to this (4) always involves the initial test of x 625, which turns off the validity of the linguistic data and control block data in cryptographic compilation unit 617. If the key is fine, the age key data and the control word data will be carried from the record. «, the record of people borrowing the Sakizaki chain temporarily suppresses _ 容 指 指 指 指 身 身 身 身 身 身 身 身 身 身 身 身 身 身 身 身 身 身 身 身The other way is to carry a person-in-a-box and do not pre-load the key and control the word data, but perform a predetermined password operation. [0056] If a new financial information or a new control agency is generated, the X-bit A 625 needs to be cleared before the money is extracted from the ρτ command. It is also considered that the same gilding data and control block data can be used to perform the MYPT age of Lai. After the _ emotion μ, the initial key and the control of the block data, there is no need to clear the X bit 625. For example, for optimization purposes related to memory bus speed, the user may decompose, for example, the encryption/decryption of just one input data block into five XCRYPT instructions' each of which processes each input data block. [0057] The block indicator logic_ may be confident that the corresponding microinstruction will be arranged to allow for the index register, and to update the two-sequence block cipher operation for a sequence of input text blocks before processing the interrupt 627 Intermediate results. The block indicator logic_ indicates the flow of inserting the microinstruction into the corresponding secret instruction, so that when the cryptographic operation of the input data of the first block is completed, the indicators of the input and output data blocks in the memoryϋ Will be modified to point to the next input and output data block. In addition, the block indicator logic 64 indicates the process of inserting the microinstruction into the corresponding microinstruction to modify the block counter to indicate that the cryptographic operation of the input data for the current block has been completed. Furthermore, in the event of using the block cipher mode, f performs cryptographic operations on the immediately following block data, and needs to use the data resulting from the cryptographic operation on the data of the current block, and then the block indicator logic 640 It also instructs the process of inserting a microinstruction into the corresponding microinstruction to maintain or generate 0608-A40742TWF1 26 1274281⁄4 ο, %% /, retaining the memory specified by the initialization vector due to the cryptographic operation of the data of the current block. In the region, after the return from the interrupt event, the cryptographic operation on the immediately following block data can be continued. [0058] Please refer to Figure 7. Figure 7 is an example of a microinstruction structure. This microinstruction 7(9) is used to instruct the microprocessor as seen in Figure 6 to perform the cryptographic compilation operation. The microinstruction 7A contains a microcoded block 701, a data register block 702 and a register block 703. The microcode field 7〇1 provides the microprocessor 6 to execute those subroutine programs, and the sugar required for each stage. In this case, the specific value is the designated age for the use of the decoding unit. The first value (XL_) indicates (4) from the position pointed to by the data register block 7()2 in the memory. This miscellaneous should be placed in the cryptographic unit by the manned lion. This proposed material (such as password compilation key data, control word, input text data, initialization vector) is provided to the cryptographic unit. The second micro-opcode padding plus value (XSTOR) indicates that the result of the cryptographic unit operation should be stored in the location pointed to by the data temporary state block 702 in the memory. For the cryptographic compilation unit of the multi-level structure, the contents of the scratchpad block 7(10) indicate that the plurality of output data segments should be stored in the memory. The output data fragment is placed in the data field 704 for reading by the storage logic. Next, referring to Figure 8 and Figure 9, we will further explore the execution flow of XLOAD and XSTOR in the cryptographic compilation unit. Back to _(10)59] Please refer to FIG. 8. Table 8GG is as described above, and the microprocessor translates the Μργτ command to get the group as an instruction. The first group of micro-instructions in the set of micro-instructions: the unit directly executes, and then the second group of multiple micro-instructions are executed by - or the other: the bits are executed in parallel. The actions of the second group of multiple micro-instructions include updating the meter, the memory, the structure temporary storage H, testing and setting the bit state of the mechanical specific register, etc. Key data, password compilation parameters, and input 4 to t ^ and direct the password compilation unit to generate the key program table (or load the gold 2 sequence table proposed by the memory), load or encrypt or decrypt the input text. Save the output text data. An X:: indicates the cipher compilation unit manned control word data, the manned password compilation key or key finger 0608-A40742TWF1 27 Load initialization vector data, manned input text data, and instructions to start cryptographic operation. When the micro-instruction micro-XLGAD, the value _Q in the register field alone indicates the password compiling list; the control word carries the control word "scratchpad. Follow this instruction in the pipeline, which will encounter - a scratchpad memory control word indicator. This indicator points to the position of the control word in (4). Loading logic from the fast-paced fiber to mention it! This control tour, put the side of the human resources. Supplementary, temporary register The blocking value OblOO refers to the input text data of the 7〇4 towel loaded in the data field without the password compilation unit. Then perform the password compilation operation. Like the control character, the input data is presented through an indicator in the existing structure register. [0060] In the embodiment, the register field G_ can be regarded as a two-stage cryptographic unit. Continuous input text (4) can be trained. The first ship d micro-instruction puts the first input text into IN-1, and the second XL0AD micro-instruction puts the second input text into IN-0 'second 乂_) micro-finger ♦ will also start the password The compilation unit performs a password compilation operation. [0061] If the cryptographic compilation operation uses a user-generated key schedule, the number of XL0AD microinstructions corresponds to the number of transcripts in the user-generated key schedule. The user-generated key schedule will be sent to the cryptographic compilation unit, which will load the key used for the round from the key schedule according to the status of the weight compilation. [0062] All other values in the XLOAD microinstruction register field 703 are reserved values. [0063] Please refer to Figure 9. The table in Figure 9 shows the comparison table of the XST〇R micro-instruction register field 7〇3. The XST0RE instruction instructs the password, the compilation unit to store the processed output text segment (encrypted or decrypted) to the location within the memory indicated by location block 702. According to the present invention, the translation logic first generates an XL0AD microinstruction to load an input text, and then issues xST〇r to store the corresponding output text generated by the input text. The value of the register field 7〇3 〇w〇〇 indicates that the password compilation unit provides the internal temporary register ο^ρ^-Ο, and the output text segment in the ΟυΤ^ is supplied to the storage logic for storage. The content of OUT-0 is the correspondence of the input text segment in IN-0. Similarly, the internal temporary register output_; [, whose content is IN-丨 corresponds to the input data in the temporary location OblOl. After loading the key and control word data, XLOAD. IN-1, multiple input text segments can be 0608-A40742TWF1 28 1274281 ^ /
κ J ,管線化_人密碼、_單位。腿D· IM微齡(則Α])·则也是指示 密碼編譯#_無_編賴算),XSTGUUTPUT-1,Χδ··ουτ-0, 紅〇AD. IN—1 ’ XLOAD. IN—0(開始替下一個輸入文字片段進行運算)等等。 [0064]請看圖十,圖十是一個控制字元麵的格式例子。控制字元中 L S 了扣示碼編譯運算所用的密碼編譯參數。控制字元1麵是由使用者 編製入記憶體中。在進行密碼編譯運算前,指向控制字元的指標位於一個 結構^器内。所以XCRYPT指令對應的一組微指令中,l_微指令指示微 處理裔項取含有該指標的架構暫存器,並將指標轉成實體位址,從記憶體 (快取記憶體)取出控制^誦,^入密碼編譯單位内部的控制字暫存器。κ J , pipelined _ person password, _ unit. Leg D· IM micro age (then Α])· is also indicating password compilation #_无_编赖算), XSTGUUTPUT-1, Χδ··ουτ-0, red 〇AD. IN-1' XLOAD. IN—0 (Starting to work on the next input text segment) and so on. [0064] Looking at Figure 10, Figure 10 is an example of the format of a control character face. In the control character, L S is the cryptographic compilation parameter used for the decoding code compilation operation. The control character 1 side is programmed into the memory by the user. The indicator pointing to the control character is located in a structure before the cryptographic operation. Therefore, in the set of micro-instructions corresponding to the XCRYPT instruction, the l_micro-instruction instructs the micro-processing item to take the architectural register containing the indicator, and converts the indicator into a physical address, and takes control from the memory (cache memory). ^诵,^Enter the control word register inside the password compilation unit.
控制字1000包含了一個保留的_)攔位麵,一表示金鑰大小的KSIZE 搁位2002,-加密/解密E/D欄位副3,一中間結果IRSLT攔位麵,一 _ 金繪產生KGEN攔位1005,一演算法則攔位1〇〇6和一回合數計數腹 位 1007。 一 [0065]所有保留攔位1001的值都要被保留。KSIZE欄位1002的值表 :加密或解密所用的金鑰的大小。一實施例中,KSIZE欄位臟指示金输 究竟是128位元,192位元還是256位元。E/D欄位1003註明這個密碼編 譯運算式加密或是解密運算。職_位祕指示記憶體中金鍮是使用者產 生的金鑰程絲還是—個單—金鍮。如果記㈣巾的是單-金鑰,則微指 令會把這個密碼編譯金鍮,根據ALG欄位麵内容指定密碼編譯演算法展❿ 開成-金鎗程序表。-實施例中,ALG攔位腿指定AES演算法,所以迄 今為止,我們所作的討論都是針對Triple—和AES演算法。其他應用不 同後碼編澤/貞算法之實施例’如Rijndaei cipher,Twofish Ciper,等。 RCNT攔位剛7的峰指示密碼編料遵綱_演算法對每個文字片段所 需重複進行密碼編譯的回合數。雖然以上所述之密碼編譯演算法的規範指 不對不同的輸入文字片段進行固定次數回合的密碼編譯,但是咖攔位 1007允許程序編製員將RCNT謝立1〇〇7之值設為可以依照使用的演算法而 0608-A40742TWF1 29 1274281' a 丨 改變。-實施例中程序編製員指定要對每段文字進行〇至15回合密碼編 譯。最後,IRSLT攔位1004内容註明對輸入文字加密/解密的回合次數是否 參照RCNT欄位丽和ALG攔位腦注明的演算法或是根據ALG攔位譲 中註明的演算法,RCNT欄位1007做的演算數目產生的只是一個中間結果, 並不是最後結果。熟知此項技術的人能了解,許多密碼編譯演算法會重複 進行同-個子運算,最後-回合時再做不同的運算。所以IRSLT攔位顧 所提供的是-個中間結果,並且運許程序編製員能夠在進行下一步動作前 對這個中間結果先加以確認。例如如最後結果是對中級結果增值而來的, 可以先對文字進行-回合加密,然後再制樣—個文字片段進行二回合的 密碼編譯,紐再進行三回合,等等。這個可崎定的密碼編譯回合言:定 功能和中間結果功能始使用者能夠評估密碼編譯的效能,解決問題,也是 一個研究不同金鍮結構和回合次數的工具。 [〇〇66]請看圖十個密碼編譯單位譲的方塊圖。 元包含了-個微程序碼暫存H 11G3。微程序碼暫存器透過微指令匯流 排1114接收微指令。(如XLOAD和XSTOR #微指令)密碼編譯單位11〇〇也 包含了-個控制字元暫存器1104,一 i_t—〇暫存器·,一暫 存器1106,一 key-〇暫存器·,和—暫存器應。載入匯流排 1111遵照XLOAD微指令在微指令暫存器11〇3巾的内容將資料載入存器 1104-1108中。密碼編譯單位·還包含了一個與所有暫存器ιι〇3一簡 和金鑰隨機存取記憶體謂祕的區塊解密邏輯11〇1。區塊解密邏輯提供 -停止信號1113和-區塊結果至Qutput—〇暫存器丨⑽和。聊卜丨暫存器 1110 °輸出暫存器1109-1110會將内部内容循序的透過儲存匯流排1112送 至微處理器。-實施例中微指令暫存器副是32位元大,而其他暫存器 1104-1110則是128位元大。 ° [0067]在運算中,密碼編譯微指令依序的被送至微指令暫存器ιι〇3, 另外,控制字暫存器1104和輸入暫存器1105一11〇6其中之一或金餘暫存器 0608-A40742TWF1 30 1274281 1107-1108其巾之-也會被跟著—起送至微指令暫The control word 1000 contains a reserved _) blocking surface, a KSIZE for the size of the key, 2002, - encryption/decryption E/D field 3, an intermediate result IRSLT, and a _ gold painting KGEN blocks 1005, and an algorithm blocks 1〇〇6 and a round counts 1007. [0065] All values of reserved block 1001 are retained. Value table for KSIZE field 1002: The size of the key used for encryption or decryption. In one embodiment, the KSIZE field indicates whether the gold input is 128 bits, 192 bits or 256 bits. The E/D field 1003 indicates that the cryptographically compiled arithmetic encryption or decryption operation. The job _ bit secret indicates that the gold 鍮 in the memory is the keystroke produced by the user or a single one - gold 鍮. If the (four) towel is a single-key, the micro-instruction will compile the password, and the password-compilation algorithm will be opened according to the contents of the ALG field. - In the embodiment, the ALG blocking leg specifies the AES algorithm, so so far our discussion has been directed to the Triple- and AES algorithms. Other applications differ from the embodiment of the post-code editing/贞 algorithm such as Rijndaei cipher, Twofish Ciper, and the like. The peak of the RCNT block just 7 indicates the number of rounds that the cipher is compiled for each text segment. Although the specification of the cryptographic compilation algorithm described above refers to cryptographic compilation that does not perform a fixed number of rounds of different input text segments, the coffee bar block 1007 allows the programmer to set the value of RCNT Xie Li 1〇〇7 to be used. The algorithm is 0608-A40742TWF1 29 1274281' a 丨 change. - In the embodiment, the programmer specifies that each paragraph of text should be compiled for 15 rounds of password. Finally, the IRSLT block 1004 indicates whether the number of rounds of encryption/decryption of the input text refers to the algorithm indicated by the RCNT field and the ALG block brain or the algorithm indicated in the ALG block, RCNT field 1007 The number of calculations produced is only an intermediate result, not the final result. Those skilled in the art will appreciate that many cryptographic compilation algorithms repeat the same sub-operations and do different operations during the final-round. So the IRSLT Interceptor provides an intermediate result and allows the programmer to confirm this intermediate result before proceeding to the next step. For example, if the final result is to add value to the intermediate result, you can first encrypt the text - round, then sample - a text segment for two rounds of password compilation, then another three rounds, and so on. This succinct password is compiled back to the slogan: the function and intermediate result function users can evaluate the performance of cryptographic compilation, solve the problem, and also a tool to study the structure and number of rounds. [〇〇66] Please see the block diagram of the ten cipher compilation units. The meta contains a microprogram code temporary storage H 11G3. The microcode register receives the microinstruction through the microinstruction bus 1114. (such as XLOAD and XSTOR # micro-instruction) cryptographic unit 11〇〇 also contains a control character register 1104, an i_t-〇 register, a register 1106, a key-〇 register ·, and - the register should be. The load bus 1111 loads the data into the memory 1104-1108 in accordance with the XLOAD microinstruction in the contents of the microinstruction register 11〇3. The cryptographic unit also contains a block decryption logic 11〇1 with all the scratchpads and the key random access memory. The block decryption logic provides - stop signal 1113 and - block result to Qutput - 〇 register 丨 (10) and . Chatting the register 1110 ° output register 1109-1110 will send the internal content to the microprocessor through the storage bus 1111. - In the embodiment, the microinstruction register pair is 32 bits large, while the other registers 1104-1110 are 128 bits large. [0067] In the operation, the cryptographic compile microinstruction is sequentially sent to the microinstruction register ιι〇3, and in addition, the control word register 1104 and the input register 1105 to 11〇6 or one of the gold The temporary register 0608-A40742TWF1 30 1274281 1107-1108 its towel - will also be followed - from the micro-instruction
^ XL0AD ㈣㈣_峨她 才曰揮下也被載入。如果要载入的是一個 X腦微指令會安排_ 11G7來儲存這個金=::::=,則 位元,則X獅會安排KEY—〇 11〇7和剛_ ^金鑰^小大請 入齡-麵Mm 來儲存此金鑰。如果載 ί 接下來的馳_令會安排_ 1107。每 做要程序表中的金鑰都會依序被排列在金錄隨機讀取記憶體ιι〇2中,以 密碼編譯回合中使用。接下來輸入文字資料(若不需要初始化向幻 曰被載入!Ν-1暫翻。腿D中的—個微指令會指示胸暫存器祕 將輸入資料載入並且根據控制字暫存器腦中的内容,應用在则暫存 器或是在_輸人暫存H聰—膽_初始化向量_對暫柿内的資 料進械碼編譯工作。(如雜蹲钢娜⑽_脑靖齡指定胸 暫1005。後,區塊解密邏輯便遵循控制字的内容開始進行密碼編譯。如 果需要展開單-密碼編譯金鍮,職區塊解密邏輯便會產生金鑰程序表内 =每-把金鑰,並且將它們存在金鑰隨機讀取記憶體m2内。不管區塊解 密邏輯是要鼓麵程縣或是金雜序表已織記隱載入,密 碼解密第-回合所_的金鑰—定是齡在區塊職邏輯11()1㈣快取記 憶體内’ a樣第-區塊的密碼解相合就可以錢進行,無縣從金餘隨 機頃取記憶體1102取得。—但區塊解密邏賴始動作,便會對—塊或一塊 以上的輸入文字進行密碼編譯運算,逐次的從金鑰隨機記憶體中提取所要 用到的金鑰。密碼編譯單位聽對指定的輸人片段文字進行特定的密碼編 澤運算。下達XL〇ad和xST〇R微指令來對輸入文字進行加密或解密。執行 XSTOR微指令時’若輸出資料(〇UT-〇或〇υτ—丨)還沒準備好,則區塊解密邏 輯會δ又一個停止“號mg。一但輸出資料產生完成並且已被存入對應的暫 存器1109-1110内,那麼暫存器裡的内容就會被轉入儲存匯流排1112。 0608-A40742TWF1 31 I2742|\ W*Um_>e<pfa3MaiWm—»>**-*._,、** 謝‘,*此《·,:·_> - j 嫌鸾“肩· i [〇〇68]凊看圖十二。圖十二是一個AES演算法區塊解密邏輯1200的方 塊圖。區塊解密邏輯謂包含了一個回合計算引擎(r〇und _此)122〇, 個回合汁异引擎控制器121〇。回合計算引擎122〇透過匯流排1211—1214 和匯流排1216-1218與回合計算引擎控制器121〇耦接。回合計算引擎控制 器可以存取微指令暫存器,KEY-1暫存n蘭來讀取金鑰資料,微指 令和密碼編譯運算參數。暫存器12〇5—12〇6中的内容,供給回合計算引擎 1220,然後回合計算引擎122〇再將對應的輸出文字傳到輸出暫存器 I207一1208内。輸出暫存器1207-1208透過匯流排1216-1217與回合計算引 擎控制器1210耗接。這樣回合計算引擎控制器就能讀取每一密碼編譯回合 的L果’再供給回合計算引擎122〇,讓回合計算引擎122〇能透過匯流排 NEXTIN1218進行下一回合的密碼編譯運算。密碼編譯金鑰透過匯流排1215 從金鑰隨機讀取記憶體(未顯示)中被提出。ENC/DEC 1211信號指示回合計 异引擎進行加密(S-Box)或解密(反向s-Box)。RNDCON匯流排1212指示回 合計算引擎進行第一 AES回合或中級AES回合或是最後-回合的AES。 GENKEY#旒1214設定時代表回合計算引擎122〇需要將從匯流排1213取得 的金鑰展開成金鑰程序表。金鑰匯流排丨2丨3也是用來提供金鑰的,它會將 母一回合所需要用的金鑰提供給回合計算引擎1220。 [0069]回合計算引擎122〇與第一個暫存器REG—〇 1224耦接,内包含 了第一 X0R邏輯金鑰122卜第一個暫存器1222與s-Box邏輯1223耦接。 S-Box邏輯1223與移列邏輯1224 (Shift R〇w 1〇gic)耦接。移列邏輯1224 與第二個暫存器齡1 1225祕。第二個暫存器REG-1 1225與混欄(Mix Column)邏輯1226耦接。而混攔邏輯與第三個暫存器REG_2 1227耦接。第 一金錄邏輯1221,S-Box邏輯1223,移列邏輯1224及混欄邏輯1226作為 執行名稱相子程序運算。混攔邏輯1226用途為對在進行中級密碼運算回合 中時加入的資料進行AESX0R運算,使用金鑰匯排流1213所提供的回合金 输。當ENC/DNC狀態指示進行解密時第一金鑰邏輯1221,s_B〇x邏輯1223, 0608-A40742TWF1 32 Ϊ274281.... ^ -"•-Μ ,列邏= 1224及混攔邏輯態也用來進行對應的逆aes 知此技藝人士可以了解進行巾級回合贿料會 开.、,、 容所指示之區塊解密模式,將資料 二工 暫存态1202内 儿 將貝枓反饋至回合計算引擎1220。若需要鈿私 又.REG-0 1222和RE(M 1225間的第一階段和RE(M⑵ 存琴麗遲執成塊輸人祕’輸出㈣被存人對應的輸出暫 存裔1207-1208。執行xST0R微指令會使暫 送至儲存匯流排(未顯示)。 使暫存盗將内含麵 [0071]參照圖十三,所顯示的流程圖係具有用以保持中斷事件期間之 :碼參數的狀態之根據本發_方法之特性。#指令的流程係藉由根據本 I明的魏S絲執钟錄會财塊㈣開則^ XL0AD (four) (four) _ 峨 her 曰 曰 也 is also loaded. If you want to load an X brain micro-instruction will arrange _ 11G7 to store this gold =::::=, then the bit, then the X Lion will arrange KEY - 〇 11 〇 7 and just _ ^ key ^ small Please enter the age-face Mm to store this key. If you load ί, the next _ will arrange _ 1107. The key in each program table will be sequentially arranged in the gold record random read memory ιι〇2, and used in the password compilation round. Next, enter the text data (if you don't need to initialize it to be loaded into the illusion! Ν-1 temporarily flipped. The micro-instruction in the leg D will instruct the chest register to load the input data and according to the control word register The content of the brain, applied to the temporary register or in the _ input temporary storage H Cong-biliary _ initialization vector _ on the temporary persimmon within the information of the mechanical code compilation work. (such as Miscellaneous Steel Na (10) _ brain Jingling designation After the chest temporarily 1005. After the block decryption logic follows the content of the control word to start the password compilation. If you need to expand the single-password compilation, the job block decryption logic will generate the key program table = every - key And store them in the random read memory m2. Regardless of the block decryption logic is to drum the county or the gold miscellaneous table has been woven implicitly, the password decryption of the first-round _ key - The age is in the block job logic 11 () 1 (four) cache memory 'a-like block-block's password solution can be carried out, no county from the gold surplus random take memory 1102. - But the block When the decryption logic starts, the password will be compiled into the block or more than one input text. The operation, successively extracts the key to be used from the key random memory. The cryptographic unit listens to the specified cipher text of the specified input fragment text. The XL〇ad and xST〇R micro-instructions are issued. Input text for encryption or decryption. When executing XSTOR micro-instruction, 'If the output data (〇UT-〇 or 〇υτ-丨) is not ready yet, the block decryption logic will stop δ one more stop. Once the generation is complete and has been stored in the corresponding scratchpad 1109-1110, the contents of the scratchpad will be transferred to the storage bus 1112. 0608-A40742TWF1 31 I2742|\ W*Um_>e<pfa3MaiWm-» >**-*._,,** Thanks',*This "·,:·_> - j 鸾 鸾" shoulder · i [〇〇 68] 图 look at Figure 12. Figure 12 is an AES calculus Block diagram of the block decryption logic 1200. The block decryption logic includes a round calculation engine (r〇und_this) 122〇, each round of the different engine controller 121〇. The round calculation engine 122〇 passes through the bus 1211 - 1214 and bus bar 1216-1218 are coupled to the round calculation engine controller 121. The round calculation engine The controller can access the micro-instruction register, KEY-1 temporarily stores n-lan to read the key data, and the micro-instruction and password compile the operation parameters. The contents of the register 12〇5—12〇6 are supplied to the round calculation. The engine 1220 then passes the corresponding calculation script 122 to the output registers I207 - 1208. The output registers 1207-1208 are exhausted from the round calculation engine controller 1210 through the bus bars 1216-1217. The round calculation engine controller can read the L result of each cryptographic round and then supply the round calculation engine 122, so that the round calculation engine 122 can perform the next round of cryptographic operations through the bus NEXTIN1218. The cryptographic key is presented from the key random read memory (not shown) through the bus 1215. The ENC/DEC 1211 signal indicates that the round different engine performs encryption (S-Box) or decryption (reverse s-Box). The RNDCON bus 1212 instructs the round calculation engine to perform the first AES round or the intermediate AES round or the last-round AES. When GENKEY#旒1214 is set, it represents that the round calculation engine 122 needs to expand the key obtained from the bus 1213 into a key program table. The key pool 丨2丨3 is also used to provide the key, which provides the key needed for the parent to the round calculation engine 1220. The round calculation engine 122 is coupled to the first register REG_〇 1224, and includes a first X0R logical key 122. The first register 1222 is coupled to the s-Box logic 1223. S-Box logic 1223 is coupled to shift logic 1224 (Shift R〇w 1〇gic). Shift logic 1224 with the second scratchpad age 1 1225 secret. The second register REG-1 1225 is coupled to the Mix Column logic 1226. The aliasing logic is coupled to the third register REG_2 1227. The first golden record logic 1221, the S-Box logic 1223, the shift logic 1224, and the hash logic 1226 are used as the execution name phase subroutine operations. The mashup logic 1226 is used to perform AESX0R operations on the data added during the intermediate cryptographic rounds, using the return alloys provided by the keystream 1213. The first key logic 1221, s_B〇x logic 1223, 0608-A40742TWF1 32 Ϊ274281.... ^ -"•-Μ , column logic = 1224 and the mixed logic state are also used when the ENC/DNC status indicates decryption. To carry out the corresponding counter aes, know that the skilled person can understand the block decryption mode in which the towel-level round bribe will be opened. The data will be returned to the round calculation in the temporary storage state 1202. Engine 1220. If you need to smuggle and .REG-0 1222 and RE (M 1225 between the first stage and RE (M (2) Chong Qin Li late block into the human secret' output (four) is the corresponding output of the temporary storage of 1207-1208. Executing the xST0R micro-instruction will be temporarily sent to the storage bus (not shown). The temporary surface will be included in the temporary stealing [0071] Referring to Figure 13, the flow chart shown is used to maintain the interrupt event period: code parameters The state of the method according to the present invention _ method. The flow of the instruction is based on the Wei S silk clock according to the present invention (four)
指令是不必,如纽·。織錄麵_行觸錢=腹PT _在判斷方塊圓,會進行估算,以判斷中斷事件(例如,可遮 罩中斷、不可遮罩中斷、分頁錯誤、工作切換等)是否正發生,而需要將指 令的此流程改變成指令的一種流程(「中斷處理程式」),以處理中斷事件, 若如此’則流程會繼續進行方塊讓。若否,則指令執行的判斷方塊麗 上之流程迴路會持續,直到甲斷事件發生。 陶]在方塊1306,因為中斷事件已發生,所以在程式控制轉移到對 應的中斷處理程式之前,根據本發明的中斷邏輯會指示清除旗標暫存勒 的X位元。清除X位元可確信在從情處理程式返回後,若區塊密碼写運 算仍在進行,則其將顯示發生-個或多個中斷事件,並且在對由輸入指標 暫存器的内容所指示之此區塊的輸入資料,持續區塊密碼器運算之前,曰J 須重新載人控制字㈣料及金鑰m。m ’流程會_進行方塊麗。 0608-A40742TWF1 33 1274281口々:/ [0074] 在方塊1308,包含對應於根據本發明的區塊密碼器運算之效能 的指標器及計數器之所有架構性暫存器會儲存到記憶體。熟習此項技術者 將瞭解到的是,架構性暫存||的儲存為在控制轉賴情處理程式之前, 通系會在目刖貝料计算裝置中完成之動作。因此本發明係利用目前資料架 構的此種觀點,來提供遍及情事件的執行透明度。在暫存雜存之後, 然後流程會繼續進行方塊1310。 [0075] 在方塊_,程式流程會轉移到巾斷處理程式。然後,流程合 繼續進行方塊1312。 曰 [0076] 在方塊1312,此方法會完成。熟f此項技術者將瞭解到的是, 在從中斷處理程式返回後,針三的方法會再次從方塊13()2開始。 [0077] 請看針四,所提供的流糊雜示出現—個舒個中斷事件 時,對複數個輸入資料區塊,執行特定密碼運算之根據本發明的方法。 [0078] 流程會從雜14_始,其巾,娜本發日觸腹_令會開 始執行。XCRYPT齡的執行會最優先執行,或由於中斷事件之中斷的執行, 所以其可為緊接於最優先執行之後之執行,以致於在已執行中斷處理程式 之後,程式控制會轉回到XCRYPT指令。然後流程會繼續進行方塊聰。 [0079] 在方塊1404,藉由根據本發明之輸入指標暫存器的内容所指示 之記憶體中的-區塊資料會從記憶體中載人,並且預定密碼運算會開始。 =使用的特定輸人指標暫存H係由指定的特定密碼運算(例如,加密或解 岔),以及由指定的區塊密碼器模式(例如,ECB、CBC、CFB、或〇fb)來決定。 例如,若指定的加密運算係使用㈣模式,則用來載入資料的輸入指標暫 存器為指示記憶體中的初始化向量之暫存器。若指定的解密運算係使用脇 模式,則f來載人資料的輸人指標暫存器為指示記憶體中之下個區塊的密 文之暫存器。然後,流程會繼續進行判斷方塊Hog。 β [〇刚]在判斷方塊1406,會進行估算,以判斷旗標暫存器内的χ位元 疋否已没疋。若X位兀已設定,則其表示目前載入於根據本發明的密碼單 0608-A40742TWF1 34 Ι27428Ϊ 2 ( 元元内之控制字組及金鑰清單為有效。若X位元已清除,則其表示目前載 入於密碼單元元内之控制字組及金鑰清單為無效。如以上配合圖十三所提 及的’當中斷事件發生時,會清除X位元。此外,如以所提及,當需載入 新控制字組或金鑰清單,或二者時,在發出令之前,需執行清除 X位元的指令。在使用x86EFLAGS暫存器之位元30的乂―86相容實施例中, X位元可藉由緊接於p〇pFD指令的PUSHFD指令來執行清除。然而,熟習此 項技術者將瞭解的是,在另外實施例中,必須使用其他指令來清除X位元。 若X位元已設定’則流程會繼續進行方塊1412。若X位元已清除,則流程 會繼續進行方塊1408。 [0081] 在方塊1408,因為清除的X位元已表示已發生中斷事件,或已 · 載入新控制字組及/或金鑰資料,所以控制詞聚會從記憶體中載入。在一實 施例中’載入控制字組會阻止密碼單元執行以上配合方塊14〇4所提及之預 定密碼運算。在此範例的實施例中,方塊1404中的開始密碼運算可使藉由 假設使用目前載入的控制字組及金鑰資料之多個區塊密碼器運算最佳化。 因此’在判斷方塊1406中的檢查X位元的狀態之前,會載入目前區塊的輸 入資料,並且會開始密碼運算。然後,流程會繼續進行方塊141〇。 [0082] 在方塊1410,金鑰資料(亦即,密碼金鑰或完整金鑰程序表)會 從記憶體中載入。此外,方塊1404中所提及的輸入區塊會再次載入,並且 會根據最新載入的控制字組及金鑰程序表,而使密碼運算開始。然後,流 _ 程會繼續進行方塊1412。 [0083] 在方塊1412,會產生對應於載入的輸入區塊之輸出區塊。然後, 流程會繼續進行方塊1414。 [0084] 在方塊1414,若藉由區塊密碼器模式及預定密碼運算所需要, 則會產生下個區塊的輸入資料。例如,在配置用於OFB加密的一實施例中, 為了產生下個區塊的輸入資料’需要將目前產生的密文區塊與目前區塊的 明文進行互斥或。執行此運算會產生用於下次區塊運算的輸入資料(亦即, 0608-A40742TWF1 35 127428 f 7 用於第一輸入區塊之後的所有區塊之「等效初始化向量」)。在此方塊内所 述的步驟需確信將允許隨時會中斷之XCRYPT指令的執行之狀態。例如,在 一實施例中,在XCRYPT指令的執行期間,分頁錯誤隨時會發生。因此,當 已完成對目前輸入資料區塊之預定密碼運算時,需要設定用以處理下個^ 入資料區塊之等效初始化向量(若藉由區塊密碼器模式所需要)。當藉由使 用的特定區塊密碼器模式所需要時,等效初始化向量會儲存到藉由初始化 向量指標暫存器的内容所指示的位置之記憶體。然後,流程會繼續進行方 塊 1418。 [0085] 在方塊1416,產生的輸出區塊會存入記憶體。然後,流程會繼 續進行方塊1418。 [0086] 在方塊1418,輸入及輸出區塊指標暫存器的内容會改為指向下 個輸入及輸出資料區塊。此外,區塊計數暫存器的内容會改為顯示完成對 目前輸入資料區塊的密碼運算。在配合圖十四所討論的實施例中,區塊計 數暫存器會減少。然而,熟習此項技術者將瞭解的是,另外實施例會考慮 區塊計數暫存器的操控及測試,而也可使輸入文字區塊的執行管線化。然 後,流程會繼續進行判斷方塊1420。 [0087] 在判斷方塊1420,會進行估算,以判斷輸入資料區塊是否仍進 行運算。在此實施例在此所具有的特性中,為了說明的目的,會估算區塊 計數器,以判斷其是否等於〇。若沒有區塊仍進行運算,則流程會繼續進行 方塊1424。若有區塊仍進行運算,則流程會繼續進行方塊1422。 [0088] 在方塊1422,會載入下個區塊的輸入資料,如由輸入指標暫存 器的内容所指示的。然後,流程會繼續進行方塊1412。 [0089] 在方塊U24,此方法會完成。 [0090] 热習此項技術者將瞭解的是,配合方塊1412、1414、1416、以 及1418所讨論的步驟不必依序產生,而可無次序或並行地產生。 [0091 ]雖然本發明已以較佳實施例揭露如上。例如本發明目前實施例皆 0608-A40742TWF1 36 Ι27428ί: ' ( 以滿架構作為基準,因為χ8時構是一個較多人熟悉的架構因此以滿 架構講述較方便。本發明也可以同樣被應用在其他架構上,如p__pc, MIPS ’或其他指令集架構完全不同的系統上。 [0092] 本發明可⑽用於微處㈣以外的電腦緣密碼編譯運算上。本 毛月所使用的心π模式可以輕易的被轉換利用於別種微處理器以外的電腦 處理系s統上。本發明可以被包含於微處理器的周邊晶片組内,如北橋,南 橋)或是被製作成-個與微處理器相連,專門負責處理密碼編譯的密碼編譯 微處理器。當微處理器看見密碼編譯相關的動作時就把卫作交給這個密碼 、,譯微處理ϋ。本發明可細於嵌人式㈣器,玉業用控彻,信號處理 裔’陣列處理器,以及其他處理資料用的處理肋。本發明可被實現成一 ,只包含實施密碼編譯運算所需的必要原件,而成為—舰成本和低耗電 里的欲碼編#運算執行II。例如通訊系助處理加密/解密的處理器。求明 確起見其他的處理元件以上一概稱微處理器。 [0093] 另外,本發明至今雖都以128—位元大小之區塊考慮,但是其他 不同大小的區塊也能應用。只要將輸入資料,輸出資料,金鑰和控制字元 暫存器的大小做調整即可。 [0094] 本發明目前應用範圍雖然都屬於較廣泛應用的燃,THple—哪 和AES演算法,但是較鮮為人知的區塊密碼模式,如MRS以油打,Ri cipher,Twofish cipher,Bl〇wfish Cipher,Se卬ant Cipher 和 RC6 也都是本發明可能的應用範圍。 [0095] 雖然目前討論範圍都以區塊密碼編譯演算法和其演算法相關技 巧來表現本發明的密碼編譯功能,在此需聲明本發明可以完全的被應用於 其他密碼編譯演算法上。只要是能夠執行一密碼編譯運算 ,加密或解密, 並且微處理器内包含一個專門在收到密碼編譯指令後進行密碼編譯功能即 可0 [0096] 另外’針對以上所討論的回合計算引擎,發明者聲明該回合計算 0608-A40742TWF1 37 1274281 該回合計 ^中魏化處理輸人片段的階段不限於以上所述的兩個階段 算引擎的官線階段可為兩個或兩個以上。 [0097] 最後,雖然目前針對本發明的討論目前限於單—個密碼編譯單位 處理糊_魏峰_,纽詩縣發日_包含乡個平行密 碼編^位’與-微處理財其他執料絲結。其中複數個密碼編譯單 不同區塊演算法。例如第一個單位負責處理高_ 次异第—早位處理數據加密標準卿演算法等等以此類推。 [0098] 而陳明者’以上所述乃是本創作之具體實施例及所用之技術元 =Γ?Γ功能作用仍外超出說明書籍圖示所涵蓋之精神時,均應 在本創作之範圍内,合予陳明。 【圖式簡單說明】 以及優點 [0024]配合以下的·以及關,本發明之其他目的、特性 將可更深入作一瞭解,其中: [0025] 圖-描述習知密碼編譯應用的方塊圖。 [0026] 圖二贿編譯密碼運算技術的方塊圖。 [0027] 圖三為根據本發明—處理密碼編譯運算之微處理器裝置之方塊Instructions are not necessary, such as New York. Weaving face _ line touch money = belly PT _ In the judgment of the circle, it will be estimated to determine whether an interrupt event (for example, maskable interrupt, unmaskable interrupt, page fault, work switching, etc.) is occurring, but needs This process of changing the instruction into a process of an instruction ("interrupt handler") to handle the interrupt event, and if so, the process continues with the block. If not, the process loop on the judgment block executed by the instruction will continue until the break event occurs. At block 1306, because the interrupt event has occurred, the interrupt logic in accordance with the present invention will indicate the clearing of the X-bit of the flag temporary store before the program control transitions to the corresponding interrupt handler. Clearing the X bit ensures that if the block cipher write operation is still in progress after returning from the handler, it will display the occurrence of one or more interrupt events and is indicated by the contents of the input indicator register. The input data of this block, before the block cipher operation, 重新J must reload the control word (four) material and key m. m ’ process will _ carry out the box. 0608-A40742TWF1 33 1274281 Port: / [0074] At block 1308, all architectural registers containing the indicators and counters corresponding to the performance of the block cipher operations in accordance with the present invention are stored in memory. Those skilled in the art will appreciate that the storage of the architectural temporary storage || is performed in the target data computing device before the control of the transaction processing program. The present invention therefore utilizes this view of the current data architecture to provide transparency in the execution of ubiquitous events. After the temporary storage, the flow then proceeds to block 1310. [0075] In block _, the program flow is transferred to the towel handler. Flow then continues to block 1312. [0076] At block 1312, the method will be completed. Those skilled in the art will understand that after returning from the interrupt handler, the method of Pin 3 will start again from block 13()2. [0077] Looking at pin four, the provided flow splicing shows that the method according to the present invention performs a specific cryptographic operation on a plurality of input data blocks. [0078] The process will start from the beginning of the 14th, and its towel, Naben will start the day. The execution of XCRYPT age will be executed first, or due to the execution of the interrupt of the interrupt event, so it can be executed immediately after the highest priority execution, so that after the interrupt handler has been executed, the program control will be transferred back to the XCRYPT instruction. . Then the process will continue with the box. At block 1404, the block data in the memory indicated by the contents of the input pointer register in accordance with the present invention will be loaded from the memory and the predetermined cryptographic operation will begin. = The specific input indicator used for temporary storage H is determined by the specified specific cryptographic operation (eg, encryption or decryption) and by the specified block cipher mode (eg, ECB, CBC, CFB, or 〇fb) . For example, if the specified encryption operation uses the (4) mode, the input indicator register used to load the data is a register that indicates the initialization vector in the memory. If the specified decryption operation uses the threat mode, the input indicator register of the f-bearing data is a temporary register indicating the ciphertext of the next block in the memory. Then, the process will continue to judge the block Hog. β [〇刚] At decision block 1406, an estimate is made to determine if the χ bit in the flag register is 疋. If the X bit is set, it indicates that it is currently loaded in the password list 0608-A40742TWF1 34 Ι27428Ϊ 2 according to the present invention (the control block and the key list in the element are valid. If the X bit has been cleared, then Indicates that the control block and key list currently loaded in the crypto unit are invalid. As mentioned above with reference to Figure 13, 'when the interrupt event occurs, the X bit is cleared. In addition, as mentioned When a new control block or key list needs to be loaded, or both, an instruction to clear the X bit is executed before issuing the order. 乂-86 compatible implementation of bit 30 using the x86EFLAGS register In an example, the X bit can be cleared by the PUSHFD instruction immediately following the p〇pFD instruction. However, those skilled in the art will appreciate that in other embodiments, other instructions must be used to clear the X bit. If the X bit has been set, then the flow will continue to block 1412. If the X bit has been cleared, then the flow will continue to block 1408. [0081] At block 1408, because the cleared X bit indicates that an interrupt event has occurred , or already · load new control block and / or gold Data, so the control word is loaded from the memory. In one embodiment, 'loading the control block prevents the cryptographic unit from performing the predetermined cryptographic operations mentioned above in conjunction with block 14 。 4. In this exemplary embodiment The start cryptographic operation in block 1404 can be optimized by assuming multiple block cipher operations using the currently loaded control block and key data. Thus, the check X bits in decision block 1406 Prior to the state, the input data for the current block is loaded and the cryptographic operation begins. The flow then proceeds to block 141. [0082] At block 1410, the key data (ie, the cryptographic key or the full key) The program table will be loaded from the memory. In addition, the input block mentioned in block 1404 will be loaded again, and the cryptographic operation will start based on the newly loaded control block and key schedule. Flow then proceeds to block 1412. [0083] At block 1412, an output block corresponding to the loaded input block is generated. Then, the flow continues to block 1414. [0084] At block 1414, If required by the block cipher mode and the predetermined cryptographic operation, the input data for the next block is generated. For example, in an embodiment configured for OFB encryption, in order to generate input data for the next block' The currently generated ciphertext block needs to be mutually exclusive with the plaintext of the current block. Performing this operation will generate input data for the next block operation (ie, 0608-A40742TWF1 35 127428 f 7 for the first Enter the "equivalent initialization vector" for all blocks following the block. The steps described in this block are to be confident that the state of execution of the XCRYPT instruction will be interrupted at any time. For example, in an embodiment, at XCRYPT Pagination errors can occur at any time during the execution of the instruction. Therefore, when the predetermined cryptographic operation on the current input data block has been completed, an equivalent initialization vector (if required by the block cipher mode) for processing the next data block needs to be set. When required by the particular block cipher mode used, the equivalent initialization vector is stored to the memory of the location indicated by the contents of the initialization vector indicator register. The process then proceeds to block 1418. [0085] At block 1416, the resulting output block is stored in memory. The flow then proceeds to block 1418. [0086] At block 1418, the contents of the input and output block indicator registers are instead directed to the next input and output data block. In addition, the contents of the block count register will be changed to display the completion of the cryptographic operation on the current input data block. In the embodiment discussed in connection with Figure 14, the block count register is reduced. However, those skilled in the art will appreciate that other embodiments will consider the manipulation and testing of the block count register, as well as the pipelined execution of the input text block. The process then proceeds to decision block 1420. [0087] At decision block 1420, an estimate is made to determine if the input data block is still performing an operation. In the characteristics of this embodiment, for the purpose of explanation, the block counter is estimated to determine whether it is equal to 〇. If no blocks are still in operation, then the flow continues to block 1424. If there are blocks still performing the operation, the flow continues to block 1422. [0088] At block 1422, the input data for the next block is loaded, as indicated by the contents of the input indicator register. The flow then proceeds to block 1412. [0089] At block U24, this method will be completed. [0090] Those skilled in the art will appreciate that the steps discussed in conjunction with blocks 1412, 1414, 1416, and 1418 need not be sequentially generated, but may be generated in no order or in parallel. [0091] Although the invention has been disclosed above in the preferred embodiments. For example, the current embodiment of the present invention is 0608-A40742TWF1 36 Ι27428 ί: ' (Based on the full architecture as the benchmark, because χ8 构 is a more familiar architecture, it is more convenient to describe it in full architecture. The invention can also be applied to other Architecturally, such as p__pc, MIPS ' or other instruction set architecture is completely different on the system. [0092] The present invention can be used for computer edge cryptography operations other than micro (4). The heart π mode used by this month can be Easily converted for use on computer processing systems other than microprocessors. The invention may be included in a peripheral chipset of a microprocessor, such as Northbridge, Southbridge, or as a microprocessor Connected, a password-compiled microprocessor that specializes in handling password compilation. When the microprocessor sees the action related to the password compilation, it gives the password to the password. The invention can be applied to the embedded (4) device, the jade industry control, the signal processing array processor, and other processing ribs for processing data. The present invention can be implemented as one, including only the necessary originals required to implement the cryptographic operation, and becomes the operational cost II in the ship cost and low power consumption. For example, the communication system assists in processing encryption/decryption processors. Seeking to be clear, other processing components are generally referred to as microprocessors. In addition, the present invention has been considered in the block of 128-bit size so far, but other blocks of different sizes can also be applied. Just adjust the size of the input data, output data, key and control character register. [0094] Although the current application range of the present invention belongs to the widely used combustion, THple-and AES algorithm, but less well-known block cipher mode, such as MRS oil, Ri cipher, Twofish cipher, Bl〇 Wfish Cipher, Se卬ant Cipher and RC6 are also possible applications of the present invention. [0095] While the present discussion extends the cryptographic compilation functionality of the present invention with block cipher compilation algorithms and their algorithm related techniques, it is noted herein that the present invention can be fully applied to other cryptographic compilation algorithms. As long as it is capable of performing a cryptographic compilation operation, encryption or decryption, and the microprocessor contains a cryptographic function that is specifically used after receiving the cryptographic compile command. [0096] In addition, 'for the round calculation engine discussed above, the invention The statement states that the round calculation 0608-A40742TWF1 37 1274281 The stage of processing the input segment in the round is not limited to the two-stage calculation engine described above, and the official phase may be two or more. [0097] Finally, although the current discussion of the present invention is currently limited to a single cryptographic unit processing paste _ Wei Feng _, New Zealand County _ contains the township parallel ciphers ^ and - micro processing financial other materials Silk knot. Among them, multiple ciphers are compiled with different block algorithms. For example, the first unit is responsible for processing high _ times different - early processing data encryption standard algorithm, and so on. [0098] And the above-mentioned description of the present invention is the specific embodiment of the creation and the technical element used by the Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Γ Within, combined with Chen Ming. BRIEF DESCRIPTION OF THE DRAWINGS [0024] Other objects and features of the present invention will become more apparent in the light of the following description. FIG. 1 is a block diagram depicting a conventional cryptographic compilation application. [0026] Figure 2 is a block diagram of a bribe compiling cryptographic algorithm. [0027] FIG. 3 is a block diagram of a microprocessor device for processing cryptographic operations in accordance with the present invention.
[0028] 圖四為根據本發明—獨立密傾譯指令集之方塊圖。 [0029] 圖五為根據本發明—區塊解雜式攔健的對照表。 [〇〇3咖六是根據本發·6相容微處理如密碼編譯單位的方塊圖。 [0031 ]圖七是根據本發明密碼編譯指令中包含欄位的示範圖,此指令指 不圖六中微處理器進行密碼編譯相關的次項運算。 [〇〇33]圖九疋根據本㈣XSTQR微指令巾暫存⑽位值和運算動作的 0608-A40742TWF1 38[0028] FIG. 4 is a block diagram of a set of independent secret translation instructions in accordance with the present invention. [0029] FIG. 5 is a comparison table of block deblocking according to the present invention. [〇〇3咖六 is a block diagram of the compiling unit according to this method·6 compatible microprocessing. [0031] FIG. 7 is an exemplary diagram of a field included in a cryptographic compile instruction according to the present invention. This instruction refers to a sub-operation related to cryptographic compilation by the microprocessor in FIG. [〇〇33] Figure 9疋 According to this (4) XSTQR micro-guide towel temporary storage (10) bit value and operation action 0608-A40742TWF1 38
1274281 對照表’ XSTOR微指令的格式如圖七所示。 [0034]圖十是根據本發明-個控制字元格式的例子。控制字元指示密瑪 編譯運算的密碼編譯參數。 [0035] 圖Η^ —是根據本發明密碼編譯單位的方塊圖。 [0036] 圖十二是根據本發明AES區塊解密邏輯的方塊圖。 [0037]圖十三係為本發明之一流程圖,其描述— 之密碼參數狀態之方法;以及 用以保持中斷事件期間 [0038]圖十四係為本發明之-流賴,其描述在存在—個或多個中 件時,對複雜輸人資樞塊,執行_特定密碼編碼運算的方法。 【主要元件符號說明】 # 100電腦密碼編譯應用方塊圖 104筆記型電腦 106儲存裝置 108無線路由器 110廣域網路 101、102、103電腦工作站 105區域網路 107第一個路由器 109無線網路 111第二個路由器 112加密/解密軟體 200 電腦系統執行密碼編譯方塊圖 201微處理器 203應用程式記憶區 205金鑰程序表 207解密軟體 209密碼編譯參數 211密文 202作業系統 204產生金鑰的軟體 206加密軟體 208初始化向量 210本文 0608-A40742TWF1 39 1274281 / 300微處理器密碼編譯運算裝置方塊圖 301微處理器 302、322 XCRYPT 指令 303轉譯邏輯 304微指令佇列 305、306微指令 307暫存器檔案 308、309、310、311、312、313 暫存器 314載入邏輯 315資料快取記憶 316密碼編譯單位 317儲存邏輯 318寫回邏輯 319記憶匯流排 320作業系統 321系統記憶體 323控制字元 325初始化向量 324初始化金鑰/金鑰程序表 327輸出文字 326輸入文字 400密碼編譯指令方塊圖 401選擇性前置欄位 402重複前置欄位 404區塊解密模式欄位 403運算碼欄位 500區塊密碼欄位值與微處理器運算動作對照表 600密碼編譯單位發明實施例 601提取邏輯 602轉譯邏輯 603轉譯器 604微指令碼唯讀記憶體 605括暫存器階段 606位址階段 607載入階段 608執行階段 0608-A40742TWF1 40 127421274281 Comparison Table The format of the XSTOR microinstruction is shown in Figure 7. Figure 10 is an illustration of a control character format in accordance with the present invention. The control character indicates the cryptographic compilation parameters of the grammar compilation operation. [0035] FIG. 2 is a block diagram of a cryptographic unit in accordance with the present invention. [0036] FIG. 12 is a block diagram of AES block decryption logic in accordance with the present invention. Figure 13 is a flow chart of the present invention, which describes a method of cryptographic parameter status; and a period for maintaining an interrupt event. [0038] Figure 14 is a flow of the present invention, which is described in When there are one or more middlewares, a method of performing a _specific cipher encoding operation is performed on the complex input pivot block. [Main component symbol description] #100 computer password compilation application block diagram 104 notebook computer 106 storage device 108 wireless router 110 wide area network 101, 102, 103 computer workstation 105 regional network 107 first router 109 wireless network 111 second Router 112 encryption/decryption software 200 computer system execution password compilation block diagram 201 microprocessor 203 application memory area 205 key program table 207 decryption software 209 password compilation parameter 211 ciphertext 202 operating system 204 software generation 206 encryption Software 208 initialization vector 210 herein 0608-A40742TWF1 39 1274281 / 300 microprocessor cryptographic operation device block diagram 301 microprocessor 302, 322 XCRYPT instruction 303 translation logic 304 micro-instruction queue 305, 306 micro-instruction 307 register file 308 309, 310, 311, 312, 313 register 314 load logic 315 data cache memory 316 cryptographic unit 317 storage logic 318 write back logic 319 memory bus 320 operating system 321 system memory 323 control character 325 initialization Vector 324 Initialization Key/Key Program Table 327 Output Text 326 Input Text 4 00 password compilation instruction block diagram 401 selective pre-field 402 repeat pre-field 404 block decryption mode field 403 operation code field 500 block password field value and microprocessor operation action table 600 password compilation unit Inventive embodiment 601 extraction logic 602 translation logic 603 translator 604 micro-instruction code read-only memory 605 includes register stage 606 address stage 607 load stage 608 execution stage 0608-A40742TWF1 40 12742
609、611、613、615微指令佇列 610整數單位 612浮點單位 614 MMX單位 616 SSE單位 617密碼編譯單位 618儲存階段 619寫回階段 620載入匯流排 621閒置信號 622儲存匯流排 624 EFLAGS暫存器 625 X位元 626中斷邏輯 627微指令 628 MSR暫存器 629 E位元 630 FCR暫存器 631 D位元 632執行邏輯 633匯流排 700微指令結構的範例 701微運算碼欄位 702資料暫存器欄位 7〇3暫存器欄位703 800 XLOAD值對照表 900 XSTOR值對照表 1001控制字元格式 1001 RSVD 欄位 1002金鑰大小的KSIZE欄位 1003加密/解密E/D欄位 1004中間結果IRSLT欄位 1005金鑰產生KGEN欄位 1006演算法ALG欄位 1007回合數計數RCNT欄位 1100密碼編譯單位方塊圖 1101區塊解密邏輯 1102金鑰隨機存取記憶體 1103微程序碼暫存器 1104控制字元暫存器 0608-A40742TWF1 41 he 1274281 1105 input-0 暫存器 1106 i叩ut-1暫存器 1107 key-0暫存器 1108 key-1暫存器 1109 output-0 暫存器 1110 ouput-l 暫存器 1111載入匯流排 1112儲存匯流排 1113停止信號 1114微指令匯流排 1200 AES演算法區塊解密邏輯方塊圖 1202 CW暫存器 1201微指令暫存器 1203 KEY-0暫存器 1205 IN-0暫存器 1204 KEY-1暫存器 1206 IN-1暫存器609, 611, 613, 615 micro-instruction queue 610 integer unit 612 floating point unit 614 MMX unit 616 SSE unit 617 cryptographic compilation unit 618 storage phase 619 write back phase 620 loading bus 621 idle signal 622 storage bus 624 EFLAGS temporary 624 X bit 626 interrupt logic 627 microinstruction 628 MSR register 629 E bit 630 FCR register 631 D bit 632 execution logic 633 bus 700 700 microinstruction structure example 701 micro code field 702 data Register field 7〇3 register field 703 800 XLOAD value comparison table 900 XSTOR value comparison table 1001 control character format 1001 RSVD field 1002 key size KSIZE field 1003 encryption/decryption E/D field 1004 intermediate result IRSLT field 1005 key generation KGEN field 1006 algorithm ALG field 1007 round number count RCNT field 1100 password compilation unit block diagram 1101 block decryption logic 1102 key random access memory 1103 micro program code temporary Memory 1104 control character register 0608-A40742TWF1 41 he 1274281 1105 input-0 register 1106 i叩ut-1 register 1107 key-0 register 1108 key-1 register 1109 output-0 Save 1110 ouput-l register 1111 load bus 1112 storage bus 1113 stop signal 1114 micro-command bus 1200 AES algorithm block decryption logic block diagram 1202 CW register 1201 micro-instruction register 1203 KEY-0 temporarily Memory 1205 IN-0 register 1204 KEY-1 register 1206 IN-1 register
1208 OUT-1 1207 OUT—0 1210回合計算引擎勤控制器 1212 RNDCON 匯流排 1214金鑰產生信號 1218 NEXTIN 匯流排 1221第一 X0R邏輯金鑰 1223 S-Box 邏輯 1225暫存器REG-1 1227暫存器REG-2 1211加密/解密匯信號 1213金鑰匯流排 1215、1216、1217 匯流排 1220回合計算引擎勤 1222暫存器REG-0 1224移列邏輯 1226混欄邏輯1208 OUT-1 1207 OUT—0 1210 round calculation engine controller 1212 RNDCON bus 1214 key generation signal 1218 NEXTIN bus 1221 first X0R logic key 1223 S-Box logic 1225 register REG-1 1227 temporary REG-2 1211 encryption/decryption sink signal 1213 key bus 1215, 1216, 1217 bus 1220 round calculation engine 1222 register REG-0 1224 shift logic 1226 mixed logic
0608-A40742TWF1 420608-A40742TWF1 42
Claims (1)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/727,973 US7532722B2 (en) | 2003-04-18 | 2003-12-04 | Apparatus and method for performing transparent block cipher cryptographic functions |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200519738A TW200519738A (en) | 2005-06-16 |
TWI274281B true TWI274281B (en) | 2007-02-21 |
Family
ID=34377722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW93112126A TWI274281B (en) | 2003-12-04 | 2004-04-30 | Apparatus and method for performing transparent block cipher cryptographic functions |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN100391145C (en) |
TW (1) | TWI274281B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI410106B (en) * | 2008-12-26 | 2013-09-21 | Digital Arts Inc | Electronic file transfer method |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539876B2 (en) * | 2003-04-18 | 2009-05-26 | Via Technologies, Inc. | Apparatus and method for generating a cryptographic key schedule in a microprocessor |
TWI272815B (en) * | 2004-04-16 | 2007-02-01 | Via Tech Inc | Apparatus and method for performing transparent output feedback mode cryptographic functions |
CN101583122A (en) * | 2009-03-26 | 2009-11-18 | 郭长来 | Method for avoiding wireless dialing-up internet roaming in other places |
CN106888082B (en) * | 2015-12-16 | 2019-09-10 | 北京京航计算通讯研究所 | A kind of method and processor for encrypting and decrypting |
CN109804596B (en) * | 2016-12-09 | 2023-05-09 | 密码研究公司 | Programmable block cipher with masked input |
CN109949463B (en) * | 2019-03-29 | 2021-08-24 | 天津经纬恒润科技有限公司 | Decryption method and device |
US11264063B2 (en) | 2019-08-21 | 2022-03-01 | Macronix International Co., Ltd. | Memory device having security command decoder and security logic circuitry performing encryption/decryption commands from a requesting host |
CN113722702B (en) * | 2021-09-01 | 2025-02-07 | 上海兆芯集成电路股份有限公司 | Processor with block cipher algorithm and processing method thereof |
US11960769B2 (en) | 2022-02-14 | 2024-04-16 | Macronix International Co., Ltd. | High performance secure read in secure memory providing a continuous output of encrypted information and specific context |
CN117668326B (en) * | 2024-01-30 | 2024-04-30 | 深圳柯赛标识智能科技有限公司 | Intelligent identification data processing method, system and equipment |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4250546A (en) * | 1978-07-31 | 1981-02-10 | Motorola, Inc. | Fast interrupt method |
WO2000076119A1 (en) * | 1999-06-08 | 2000-12-14 | General Instrument Corporation | Cryptographic processing system |
US6983374B2 (en) * | 2000-02-14 | 2006-01-03 | Kabushiki Kaisha Toshiba | Tamper resistant microprocessor |
-
2004
- 2004-04-30 TW TW93112126A patent/TWI274281B/en not_active IP Right Cessation
- 2004-07-29 CN CNB2004100590645A patent/CN100391145C/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI410106B (en) * | 2008-12-26 | 2013-09-21 | Digital Arts Inc | Electronic file transfer method |
Also Published As
Publication number | Publication date |
---|---|
CN100391145C (en) | 2008-05-28 |
TW200519738A (en) | 2005-06-16 |
CN1558591A (en) | 2004-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI351864B (en) | Apparatus and method for employing cyrptographic f | |
CN1655496B (en) | Device and method for generating cipher key schedule | |
TWI336858B (en) | Microprocessor apparatus and method for modular exponentiation | |
US12261941B2 (en) | Creating, using, and managing protected cryptography keys | |
US7321910B2 (en) | Microprocessor apparatus and method for performing block cipher cryptographic functions | |
TW200537886A (en) | Apparatus and method for secure hash algorithm | |
Felsen et al. | Secure and private function evaluation with Intel SGX | |
EP1538510B1 (en) | Microprocessor apparatus and method for performing block cipher cryptographic functions | |
TW201717098A (en) | Keyed-hash message authentication code processors, methods, systems, and instructions | |
JP2016517562A (en) | Instruction to perform pseudo-random number generation operation | |
TWI274281B (en) | Apparatus and method for performing transparent block cipher cryptographic functions | |
US7305567B1 (en) | Decoupled architecture for data ciphering operations | |
US7532722B2 (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 | |
US7529368B2 (en) | Apparatus and method for performing transparent output feedback mode 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 | |
TWI247241B (en) | Microprocessor apparatus and method for performing block cipher cryptographic functions | |
TW200536335A (en) | Apparatus and method for performing transparent cipher feedback mode cryptographic functions | |
CN100463392C (en) | Microprocessor apparatus and method for performing configuration block cipher cryptographic algorithm | |
CN1661958B (en) | Microprocessor and method for block cipher function | |
CN100539495C (en) | Microprocessor apparatus and method for setting cipher 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 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK4A | Expiration of patent term of an invention patent |