TWI332158B - Method, computer program product, and system for excuting a message authentication code instruction in a computer system - Google Patents
Method, computer program product, and system for excuting a message authentication code instruction in a computer system Download PDFInfo
- Publication number
- TWI332158B TWI332158B TW095132760A TW95132760A TWI332158B TW I332158 B TWI332158 B TW I332158B TW 095132760 A TW095132760 A TW 095132760A TW 95132760 A TW95132760 A TW 95132760A TW I332158 B TWI332158 B TW I332158B
- Authority
- TW
- Taiwan
- Prior art keywords
- message authentication
- authentication code
- bit
- code
- operand
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000004590 computer program Methods 0.000 title claims abstract 10
- 230000006870 function Effects 0.000 claims description 72
- 238000004364 calculation method Methods 0.000 claims description 5
- 235000017166 Bambusa arundinacea Nutrition 0.000 claims 1
- 235000017491 Bambusa tulda Nutrition 0.000 claims 1
- 241001330002 Bambuseae Species 0.000 claims 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 claims 1
- 239000011425 bamboo Substances 0.000 claims 1
- 230000004044 response Effects 0.000 claims 1
- 238000006073 displacement reaction Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 3
- OTZZZISTDGMMMX-UHFFFAOYSA-N 2-(3,5-dimethylpyrazol-1-yl)-n,n-bis[2-(3,5-dimethylpyrazol-1-yl)ethyl]ethanamine Chemical compound N1=C(C)C=C(C)N1CCN(CCN1C(=CC(C)=N1)C)CCN1C(C)=CC(C)=N1 OTZZZISTDGMMMX-UHFFFAOYSA-N 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 241000254173 Coleoptera Species 0.000 description 1
- 241000282320 Panthera leo Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 235000013405 beer Nutrition 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/342—Extension of operand address space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Pure & Applied Mathematics (AREA)
- Bioethics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Mobile Radio Communication Systems (AREA)
- Multi Processors (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Communication Control (AREA)
- Diaphragms For Electromechanical Transducers (AREA)
- Control Of Ac Motors In General (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
- Massaging Devices (AREA)
- Percussion Or Vibration Massage (AREA)
Description
1332158 九、發明說明: 【發明所屬之技術領域】 本發明係、關於電腦系統架構,特別是關於擴增IBM z/架 構之新指令,且其他架構可模擬該等新指令。 【先前技術】 在本發明之則,特別是六十年代迄今,透過許多天 才耘甲的努力,創造出名為系統360,IBM創造了一 種特殊架構,也就是主機(mainf_e),因其對於計算系统 非常關鍵,故得名「主機」。主機之操作原理係透過描述指 2來說明機器之架構,該等指令可在該等指令的「主機」 貫施方案上執行。職發明家發明了該等指令,因其顯著 的改善了以「主機J為代表的計算機狀態’故一直以來, 因將°亥等才日令之重大貢獻,其被包括於IBM之操作原理中。 2〇〇〇年12月出版的「z/架構操作原理」第一版已成為公佈 之參考標準SA22-7832-00。 _吾人堅信,本文所述之進一步的新指令會有助於此項技 術,且該指令可被包含於z/架構機器中,此外,亦可在較 簡單的機器中模擬該等新指令。 【發明内容】 本發月之項目的係提供一種cpu同步、問題狀態的區 段式才曰々,其用以計算電腦系統之儲存器中的資料所用之 訊息認證碼。 t本發明之進-步目的係提供—種用於計算訊息認證碼之 指令,其在訊息認證碼之計算中使用密鑰。 PACNKWPO分割索申請書麵〇33·93〇„分割後中文說明書·〇麵意 本發明之進一步目的係提供一種用於計算訊息認證碼之 指令,其在計算用於複數個儲存位置中的資料之訊息認證 碼時使用鏈接操作之鏈接值。 【實施方式】 首先將論述計算訊息認證碼(COMPUTE MESSAGE AUTHENTICATION CODE ; KMAC)指令’然後將說明較佳 的電腦系統,以及替代性的電腦系統’該電腦系統用以模 擬不同架構之電腦系統,且其可執行該指令。 計算訊息認證碼(KMAC) 圖1以RRE指令格式說明計算訊息認證碼(KMAC)指令。 執行通用暫存器0中的函數碼所指定的函數。指令之16 至23位元以及R1攔位。 通用暫存器〇之位元位置57至63包含該函數碼。圖2顯示 所指定的函數碼。其他函數碼則未被指定。通用暫存器0 之位元56必須為0 ;否則將辨識到一規格例外。通用暫存器 〇之所有其他位元將被忽略。 通用暫存器1包含儲存器中參數區塊最左邊位元組之邏 輯位址。在24位元定址模式中’通用暫存器1之位元位置40 至63的内容構成該位址’而忽略位元位置0至39之内容。在 31位元定址模式中,通用暫存器1之位元位置33至63的内容 構成該位址,而忽略位元位置0至32之内容。 在64位元定址模式中,通用暫存器1之位元位置0至63的 内容構成該位址。 圖2顯示用於「計算訊息認證碼」之函數碼。
P:\CNK\AIPO分割案申請書\Ι〇〇〇33·93011分割後中文說明書_060901 .D0C 1332158 戶斤有其他函數碼則未被指定。查詢函數提供指示其他函 數可用性之構件。忽略通用暫存器R2與R2+1之内容。 對於所有其他函數,第二運算元係依照函數碼規定使用 參數區塊中的初始鏈接值來處理,且該結果取代該鏈接值。 操作亦使用參數區塊中的密鑰。操作進行至達到第二運算 疋位置末端或處理完CPU預定的位元組數目為止(以最先發 生的為準)。條件碼中指示該結果。 R2搁位指定通用暫存器之一奇偶對,且必須指定偶數數 目的暫存器;否則將辨識到一規格例外。 R2通用暫存器之内容指定第二運算元最左邊位元組之位 置。第一運算元位置中位元組的數目係在通用暫存器R2+1 中指定。 作為操作之一部分,通用暫存器R2中的位址遞增第二運 异70中處理的位元組數目,而通用暫存器R2 + 1中的長度則 遞減該相同數目。位址與長度之形成及更新係取決於定址 模式。 在24位元定址模式中,通用暫存器R2之位元位址40至63 的内容構成第二運算元之位址,且忽略該等内容;經更新 的位址之位元40至63取代通用暫存器尺―中對應的位元,忽 略經更新的位址之位元位置40中的進位,且將通用暫存器 R_之位元位置32至39的内容設定為〇。在31位元定址模式 中,通用暫存器R一之位元位址33至63的内容構成第二運算 元之位址,而忽略位元位置〇至32之内容;經更新的位址之 位元33至63取代通用暫存器尺―中對應的位元,忽略經更新
P.\CNK\AIPO分割案申請書\iooo33-93011分割後t文說明書-060901.DOC 的位址之位元位置33中的進位,且將通用暫存器R_之位元 位置32的内容設定為0。在64位元定址模式中,通用暫存器 R_之位元位置0至63的内容構成第二運算元之位址;經更新 的位址之位元0至63取代通用暫存器R_之内容,而忽略位元 位置0之進位。 在24位元及31位元定址模式中,通用暫存器R2+1之位元 位置32至63的内容均形成一 32位元無符號二進制整數,其 指定第二運算元中的位元組數目;而經更新的值取代通用 暫存器R2+1之位元位置32至63的内容。在64位元定址模式 中,通用暫存器R2 + 1之位元位置0至63的内容形成一 64位元 無符號二進制整數,其指定第二運算元中的位元組數目; 而經更新的值取代通用暫存器R2+1之内容。 在24位元或31位元定址模式中,通用暫存器R2及R2+1之 位元位置0至3 1的内容始終保持不變。 圖3顯示上述通用暫存器之内容。 在存取一暫存器模式中,存取暫存器1與R2分別指定包含 參數區塊及第二運算元之位址空間。 如同處理從第二運算元左端開始逐區塊地進行至右端一 樣獲得結果。當第二運算元中的所有來源位元組皆已得到 處理(稱之為正常完成)時,或當CPU預定的小於第二運算元 長度之數目的區塊得到處理(稱之為部分完成)時,該操作結 東。CPU預定的區塊數目取決於該模型,且每次執行指令 時可為不同的數目。CPU預定的區塊數目通常係非零值。 某些不尋常狀況下,此數目可為零,且條件碼3可設定為不
P:\CNlCUIPO分割索申請書\I00033-93011分割後中文說明書*060901.DOC 進步。然而,CPU會防範此無進步情形之無止境地重複發 生。 當鏈接值欄位重疊第二運算元之任何部分時,鏈接值欄 位中的結果將無法預測。 當依照通用暫存器R+1中之規定處理完第二運算元中的 位元組數目時,即發生正常完成。 若操作係因正常完成而結束,則設定條件碼0,且R2 + 1 中所得值係0。若操作係因部分完成而結束,則設定條件碼 3,且R2 + 1中所得值非零。 若第二運算元長度最初為零,則不會存取第二運算元及 參數區塊,不會改變通用暫存器R2與R2+1,且設定條件碼 0 ° 如其他CPU與通道程式之觀察,對參數區塊及儲存運算 元之參考可為多重存取參考,對該等儲存位置之存取不必 係阻止並行(block-concurrent),且該等存取或參考之順序 係未定義的順序。 對於較該指令之單一執行中處理的為大的第二運算元之 部分,可報告存取例外;然而,對於在第二運算元長度以 外的位置,以及對於在目前處理的位置以外的超過4K位元 組之位置,將不會辨識存取例外。 函數說明所使用之符號 下文對「計算訊息認證碼」函數之說明將用到圖4及圖5 之符號。對於資料加密演算法(data-encryption-algorithm ; DEA)函數,忽略DEA密鑰之各位元組中的DEA-密鑰-同位 P:\CNK\AIPO分割案申請書\I00033-93f,ll分割後中文說明書460901.DOC - 10 - 1332158 位元,且操作正常進行,而不管該密鑰之DEA-密鑰同位。 有關資料加密演算法之進一步說明,請參閱美國資訊系 統國家標準ANSI-X3.92.1981「資料加密演算法」。 KMAC-Query(函數碼 0) 圖3顯示運算元之位置及指令所使用的位址。用於 KMAC-Query(查詢)函數之參數區塊具有圖6所示之格式。
參數區塊中儲存一 128位元狀態字元。此欄位之位元0至 127分別對應於KMAC指令之函數碼0至127。若一位元為1, 則對應的函數已安裝;否則,該函數未安裝。 當KMAC-Query函數之執行完成時,設定條件碼0;條件 碼3不適用於此函數。 KMAC-DEA(函數碼 1) 圖3顯示運算元之位置及指令所使用的位址。 用於KMAC-DEA函數之參數區塊具有圖7所示之格式。
利用參數區塊中的64位元密鑰及64位元鏈接值,使用 DEA演算法計算用於運算元2中的8位元組訊息區塊(Ml、 M2.....Μη)之訊息認證碼。 該訊息認證碼,亦稱為輸出鏈接值(output chaining value ; OCV),係儲存於參數區塊之鏈接值棚位中。圖8顯 示KMAC-DEA操作。 KMAC-TDEA-128(函數碼 2) 圖3顯示運算元之位置及指令所使用的位址。 用於KMAC-TDEA-128函數之參數區塊具有圖9所示之格 式。 P:\CNKAAIPO分割案申請書M00033-93011分割後令文說明書·060901.ΙΧΧ: 11 利用參數區塊中的二個64位元密鑰以及64位元鏈接值, 使用TDEA演算法計算用於運算元2中的8位元組訊息區塊 (Ml、M2、…、Μη)之訊息認證碼。 該訊息認證碼,亦稱為輸出鏈接值(OCV),係儲存於參 數區塊之鏈接值攔位中。圖10顯示KMAC-TDEA-128操作。 KMAC-TDEA-192(函數碼 3) 圖3顯示運算元之位置及指令所使用的位址。 用於KMAC-TDEA-192函數之參數區塊具有圖11所示之 格式。 利用參數區塊中的三個64位元密鑰以及64位元鏈接值, 使用TDEA演算法計算用於運算元2中的8位元組訊息區塊 (Ml、M2、…、Μη)之訊息認證碼。 該訊息認證碼,亦稱為輸出鏈接值(OCV),係儲存於參 數區塊之鏈接值欄位中。圖12顯示KMAC-TDEA-192操作。 用於KMAC之特殊條件 若發生下列任一狀況,則將辨識到一規格例外而不會採 取任何其他動作: 1. 通用暫存器0之位元56非零。 2. 通用暫存器0之位元57至63指定一無符號或未安裝的 函數碼。 3 . R_欄位指定一奇數編號暫存器或通用暫存器0。 4.第二運算元長度非為該指定函數之資料區塊大小的倍 數(請參閱頁7-92上的圖式7-54以決定計鼻訊息認證碼函數 的貨料區塊大小)。 -12-
P:\CNK\A1P0分割案申請書M00033-93011分割後中文說明書*060901.DOC 所得條件碼: 0正常完成 3部分完成 程式例外: .存取(擷取、運算元2、密鑰;擷取與儲存、鏈接值) 操作(若未安裝訊息安全協助) •規格 程式注解: 1·通用暫存器〇之位元56保留用於未來的擴充,且應設定 為零。 2·田认疋條件碼3時,通常會更新分別位於通用暫存器尺2 "R2+1中的第二運算元位址與長度以及位 :的鍵接值,使程式可分支回到該指令,從而繼= 刼作。對於不尋常狀況,cpu會防範此無進步情形之 無止境地重複發生。因此,無論何時設定條件碼3,程 式均可安全地分支回到該指令,而不會暴露於無止境 的循環。 3’若第二運算元之長度最初非零錢定條件削,則如同 條件碼3’以相同方式更新暫存器;此情形下的鍵接值 係如此,以致額外的運算元可如同其係該相同鍵的一 部分一樣進行處理。 程式必須設定用於鏈接 4.於處理訊息之第一部分之前 PACNKUIPO分割案字請書鶴33-93〇时割後中文說明書侧〇1取 值攔位的初始值。為符合ANSIX9.90rx919,該初始 鏈接值應設定為全零(二進制)。 加密共處理器: ㈣具體實施例提供一加密共處理器,其可與本文說明 '起使用以執仃加密訊息並協助各種鏈接訊息任 :’採用該等鏈接訊息任務可對適當的指令進行鏈接與加 松使用。 圖14顯示吾人之加密共處理器,其直接附屬於一資料與 技:該資料路徑係通用微處理器上之所有内部執行單元& 共^資料路徑’該加密共處理器具有多個執行管線。微肩 理益内部®流排⑴係所有其他執行單元的共同匯流排,^ 係附屬於加密控制單元⑺,該控制單元注意該匯流排上肩 無應執行的處理器指令。 該加密控制單元提供一直接附屬於一資料路徑的加密另 處理器,該資料路徑係一通用微處理器上中央處理單元之 所有内部執行單元的共同資料路徑,該通用微處理器提供 用於該中央處理單元的可用硬體(E。... &,或其組合(在 具有多個執行管線之較佳具體實施例中))。若在命令暫存器 (3)中遇到加密指令,則控制單元(2)將從可用硬體中調用適 當的演算法。運算元資料係在該相同内部微處理器匯流排 上經由輸入FIFO暫存器(4)遞送。當一操作完成時,狀態暫 存器(6)中將設定一旗標,且可從輸出FIF〇暫存器(5)中讀出 結果。 所不本發明之較佳具體實施例係設計成可擴充以包括特 P:\CNK\AIFO分剔案申請書u〇〇〇33-93〇丨丨分割後夺文說明書_〇6〇9〇1〇〇〇 •14- 丄说158 定實施方案所需數目的 至輸人與輸出暫存二二(決於系統的性能目標)。 同。 β )之貝料路徑在所有引擎間皆為共 本發明較佳且艘香, , & οπ '、 J之加畨功能係實施於CPU上的執 硬體令,此實施方案使得啤叫及執行加密操作之潛 時較低,從而提高效率。 於頻繁執行許多加密操作,特別是僅 之潛時可大大增強通用處理器之能力。此:
方m速執行安全線上交易所涉及的程序之實施 万茶成為可能。俾塔始B 保。-線上父易安全的最普通方法涉及三個 々算法之集合。第一,宗管i —. 肩异法在一交談中僅使用一次,且可 在硬體或軟體中實旖,而甘 八他才呆作係隨著交談之每次交易 :調二:且利用本發明,呼叫外部硬體之潛時成本以及 執仃軟體中的演算法之時間成本均可消除。 圖15概念性顯示如何實施較佳具體實施例中吾人在主機 電腦中實施的方案,該主機電腦具有上述之微處理器,其 可有效地用於長位移設施電腦架構指令格式之商用實施方 案^ ’吾人已在1bm内部進行實驗證明。程式員,即如今 的「C」程式貞使用料指令。儲存職帽存的該等指令 格式可在Z/架構IB_服器中自㈣執行,或者亦可在執行 其他架構之機器中執行。在現有與未來的麵主機伺服琴 以及脑之其他機器(例如p系列飼服器及X系列飼服器)上 可模擬該等指令格式。該等指令格式可在執行Linux、使用 IBM、Inte卜AMD、Sun微系統及其他公司製造之硬體的各 PACMKVAIPO分割案申請書麵33侧丨分割後争文況明書獅〇丨纖 -15· 1332158 種機器上執行。除在z/架構下的硬體上執行外,亦可使用 UnUX以及使用 Hercules、UMX、FXI 或 Platform s〇luti〇ns 提供的模擬之機器,在該等機器上指令執行一般係在模擬 模式下進行。在模擬模式下,解碼經模擬之特定指令,並 且建立一子常式以實施該個別指令,如在一「c」子常式或 驅動益中,或其他一些提供用於特定硬體之驅動器的方法; 熟習本技術者在瞭解有關較佳具體實施例之說明後應可明 白該等方法。已有各種軟體及硬體模擬專利,包括(但不侷 限於)’ US 555 1013,Beausoleil等人之「用於硬體模擬之 夕重處理器及US 6009261,Scalzi等人之「預處理儲存 之目標常式以在目標處理器上模擬不相容指令」;&us 5574873,Davidian等人之「解碼客體指令以直接存取模擬 客體指令之模擬常式」;US 6308255,Gorishek等人之「用 於允卉非本機碼在系統中執行之共處理器支援之對稱多重 處理匯流排及晶片組J ;及US 6463582,Lethin等人之「用 於架構模擬之動態最佳化物件碼翻譯器及動態最佳化物件 碼翻譯方法」;及US 5790825,Eric Traut之「透過主機指 令之動態重新編譯以於主機電腦上模擬客體指令之方法」; 以及其他許多專利,說明在熟習本技術者可用的目標機器 上實現指令格式模擬以架構於不同機器上之各種熟知方 法’以及上述專利所用的商用軟體技術。 在較佳具體實施例中,現有用於非超純量指令之前長位 移私令格式藉由將基本暫存器與12位元無符號位移或基本 暫存器、索引暫存器及12位元無符號位移相加以形成運算 UIPO ^fJti^t\I00033-93011 1f-060901.DOC _ ., 元儲存位址,而新_ a必κ 、位移4令格式藉由將基本暫存器與20 位疋有符號位移或基本暫 督存器、索引暫存器及20位元有符 就位移相加以形成運算讀存位址。 如圖1 5所不,兮望社:人λ/ ^4扣令係在硬體中藉由處理器執行,或 错由軟體模擬該指令隼 7果以在具有不同的本機指令集之電腦 上執行。 二5中,#501顯示一包含指令與資料之電腦記憶體儲存 發月所描述之長位移指令最初係儲存於此電腦中。 ㈣顯示用於從電腦記憶體中棟取指令之機制,且亦可包 =其已操取的該等指令之本地緩衝。然後將該等原始指 “專送至指令解碼_,其決定所操取的指令之類型。 #504顯示用於執行指今 7之機制。此可包括將資料從記憶體 #501載入一暫存器、將資 貝科從一暫存态回存至記憶體、或 執行某種類型的算術戎襬轉4。& 珩次邏軏刼作。此欲執行的操作之確切 類型已在先前由指令解碼器決定。本發明所描述之長位移 指令將在此處執行。若該等長位移指令係在一電腦系統上 自然地執行’則此圖將如上述完成。然而,若在另一電腦 上模擬-包含長位移指令之指令集架構,則將在主電腦 ㈣上的軟體中實施上述程序。在此情形下,-般將上述 機制實施為模擬器軟體中的—或多個軟體次常式。二種情 形下,均將擷取、解碼並執行指令。 月 更特定言之,該等架構化指令可在具有現有指令格式(其 中12位元無符號位移係用以形成運算元儲存位址)之電腦 架構以及具有額外指令格式(其提供額外的位移位元,較佳 PACNKVAIPO分割案申請書獅033-93011分贱中文說明書〇6〇9〇i d〇c 1332158 為20位το)之電腦架構(其包含擴充的用以形成運算元儲存 位址之有符號位移)中使用。該等電腦架構化指令包含储存 於電腦儲存媒體中的電腦軟體,用以產生利用該電腦軟體 執行處理器之代碼’並且包含編譯器或模擬器/解譯器(其係 儲存於電腦儲存媒體5〇1中)所使用的指令碼其中該指令 碼之第—部分包含-操作碼,其指定欲執行的操作,第二 部分指定用於該參與之運算元。長位移指令允許使用長位 移設施指令直接定址額外的位址。 如圖15所不,該等指令係在硬體中藉由處理器執行,戋 藉由軟體模擬該指令集以在具有不同的本機指令集之電腦 上執行。 依據較佳具體實施例之電腦架構,位移攔位係定義為包 括二部分,最不重要的部分係12位元,稱為Dl,DL1用於 運算元1或DL2用於運算元2 ’而最重要的部分係8位元,稱 為DH,DH1用於運算元1或1)1^2用於運算元2。 此外,較佳電腦架構具有一指令格式,使得作業碼係在 位元位置0至7及40至47,稱為R1的目標暫存器係在位元位 置8至11,稱為X2的索引暫存器係在位元位置12至15,稱為 B2的基本暫存器係在位元位置16至19,一位移由二部分構 成,第一部分稱為DL2,係在位元位置2〇至3丨,而第二部 分稱為DH2,係在位元位置32至39。 此電腦架構具有一指令格式,使得作業碼係在位元位置〇 至7及40至47,稱為R1的目標暫存器係在位元位置8至11, 稱為R3的來源暫存器係在位元位置12至15,稱為B2的基本 P:\CNKAAIPO分割案申請書M00033-9301丨分割後中文說明書-06090丨.D0C -18- 1332158 暫存器係在位元位置16至19,一位移由二部分構成,第一 部分稱為DL2,係在位元位置2〇至31,而第二部分稱為DH2, 係在位元位置3 2至3 9。 此外’吾人之具有長位移設施的電腦架構具有一指令格 式,使得作業碼係在位元位置〇至7及4〇至47 ,稱為R1的目 標暫存器係在位元位置8至丨〗,稱為M3的遮罩值係在位元 位置12至15,稱為B2的基本暫存器係在位元位置16至19, 一位移由二部分構成,第一部分稱為DL2,係在位元位置 20至31 ’而第二部分稱為〇Η2,係在位元位置32至39。 如圖所示,吾人之具有長位移設施的較佳電腦架構具有 一指令格式,使得作業碼係在位元位置〇至7及4〇至47,稱 為12的中間值係在位元位置8至15,稱為82的基本暫存器係 在位元位置16至19,一位移由二部分構成,第一部分稱為 DL1,係在位元位置20至31,而第二部分稱為dhi,係在位 元位置32至39。 當使用僅利用具有新的20位元無符號位移之指令格式建 立的新指令時,吾人之長位移設施電腦架構能夠有效地操 作。 吾人之電腦架構的特定具體實施例利用現有指令,其具 有僅有12位元無符號位移之指令格式,但現在其係定義為 新的指令格式,當該位移之高階8位元(攔位DH)全為零時, 該新指令格式具有現有的12位元無符號位移值,而當該位 移之高階8位元(攔位DH)非零時,該新指令格式具有2〇位元 有符號位移值。 P:\CNK\AIP〇分割案申請書m〇〇〇33-930丨1分割後中文說明書-060卯丨D〇c; -19- 雖然上文已顯示並說明本發明之較佳具體實施例,但應 明白,本發明並不限於所揭示的精確結構,保留在隨附申 請專利範圍所定義之本發明的範疇内進行各種修改及變更 之權利。 【圖式簡單說明】 結合附圖閱讀以上對本發明之詳細說明,熟習此項技術 者應能明白本發明之上述及其他目的,其中: 圖1以RRE指令格式說明「計算訊息認證碼」(KMAC)指 令; 圖2之表顯示用於圖1之KMAC指令的函數碼; 圖3說明用於圖1之KMAC指令的通用暫存器指派; 圖4說明「Fit-Wise異或」所用的符號; 圖5說明用於DE A加密與解密之符號; 圖6說明用於KMAC-Query之參數區塊的格式; 圖7說明用於KMAC-DEA之參數區塊的格式; 圖8說明KMAC-DEA之操作; 圖9說明用於KMAC-TDEA-128之參數區塊的格式; 圖10說明KMAC-TDEA-128之操作; 圖11說明用於KMAC-TDEA-192之參數區塊的格式; 圖12說明KMAC-TDEA-192之操作; 圖13之表顯示KMAC之執行優先權; 圖14說明吾人之加密共處理器;以及 圖1 5顯示包含根據較佳具體實施例之指令及資料的電腦 記憶體儲存器以及用於擷取、解碼與執行該等指令之機制 ΡΛΟΝΚΧΑΙΡΟ分割案申請書M00033-93011分割後t文說明書·〇60901·ϋ(Χ: -20- 1332158 的一般性較佳具體實施例,其係位於採用該等架構化指令 之電腦系統上,或係用於該等架構化指令的模擬中。 【主要元件符號說明】 1 微處理器内部匯流排 2 加密控制單元 3 命令暫存器 4 輸入FIFO暫存器 5 輸出FIFO暫存器
6 狀態暫存器 7 輸入與輸出暫存器 501 電腦記憶體 502 指令擷取機制 503 指令解碼器 504 指令執行機制 505 主電腦
P:\CNK\AIP0分割案申請書M00033-930丨丨分割後中文說明書-060901.DOC -21 -
Claims (1)
1332158 竹年4月丨丨曰修正本 第095132760號專利申請案 中文申請專利範圍替換本(99年6月) .十、申請專利範圍: 1. 一種用於執行一訊息認證碼指令於一電腦系統中之方 法,該方法包含: 自選自複數個功能碼之一先前定義功能碼訊息判定將 被執行之一訊息認證碼運算,該先前定義功能碼定義一 訊息認證碼產生運算或將被執行之一功能詢問運算中任 一者,其中該複數個功能碼包含一 KMAC-詢問運算、一 KMAC-DEA 64位元密鑰密碼運算、一 KMAC-Triple DEA 二64位元密鑰密碼運算或一 KMAC-Triple 64位元密鑰密 碼運算中任一者之一指示; 回應已判定之將被執行之該訊息認證碼運算為一訊息 認證碼產生運算、於一運算元上執行該訊息認證碼產生 運算,該訊息認證碼產生運算包含a)至b): a)計算用於使用一或多個密碼使用者密鑰及一 8位元 組鍵路值之一運算元之一訊息認證碼,該運算元包含一 或多個8位元組訊息區塊,其中該計算該訊息認證碼產 生一新的8位元組鍵路值;及 b) 儲存已產生之該新的8位元組鏈路值; 回應已判定之將被執行之該訊息認證碼運算為一功能 詢問運算,執行該功能詢問運算,該功能詢問運算包含 c)至 d): c) 對一或多個訊息認證功能之每一者判定該訊息認 證功能是否安裝於該電腦系統上以用於由一訊息認證碼 指令執行;及 114358-990611.doc 1332158 d)儲存一狀態字於記憶體内之一參數區塊,該參數 區塊具有由一第一通用暫存器所指定之一位址,該狀態 字包含一或多個狀態字位元,該一或多個狀態字位元之 每一者指示該一或多個訊息認證功能之一對應者係安裝 於該電腦系統上,該一或多個狀態字位元之每一者具有 對應於該對應訊息認證功能之該功能區域值之該狀態字 中之一位置。 2. 如請求項1之方法,其中計算一訊息認證碼進一步包 含: 獲取該一或多個密碼使用者密鑰; 獲取該8位元組鏈路值; X1)獲取該運算元之一 8位元組訊息區塊; x2)以該運算元之該8位元組訊息區塊對該鏈路值做 排除-或運算; x3)使用已獲取之該密碼使用者密鑰,藉由將已獲取 之密碼使用者密鑰直接應用於該排除-或運算之該結果直 接編譯該排除-或運算之該結果以產生一新的8位元組鏈 路值;及 對該運算元之相繼的8位元組訊息區塊重複xl )至x3)。 3. 如請求項1之方法,其中該訊息認證碼指令包含: 一運算碼區域;一 R2區域,該R2區域指定一第二通用 暫存器及一第三通用暫存器,該第二通用暫存器包含該 運算元之一位址,其中該第三通用暫存器指定該運算元 之一長度,其中進一步該先前定義功能碼係自一預定第 114358-990611.doc 1332158 四通用暫存器被獲取,及 其中該參數區塊包含該一或多個密碼使用者密鑰及該 8位元組鏈路值兩者。 4. 如請求項3之方法,進一步包含: 根據已執行的步驟内所處理的位元組數目藉由R2增加 該第二通用暫存器内包含之該運算元之該位址;及 根據已執行的步驟内所處理的位元組數目減少指定該 運算元之長度的該第三通用暫存器内包含之該運算元之 長度。 5. 如請求項1之方法,進一步包含: 回應在程序完結僅被執行於該運算元之一部分上之該 訊息認證碼運算,設定一部份完結條件碼值作為一條件 碼,該部分完結條件碼值指示該訊息認證碼運算尚未完 結;及 回應在程序完結已被執行於該運算元之全部上之該訊 息認證碼運算,設定一標準完全條件碼值作為一條件 碼,該標準完結條件碼值指不該訊息認證碼運算已完 結。 6. 如請求項2之方法,其中已獲取之該密碼使用者密鑰由 一 64位元密鑰、兩個64位元密鑰或三個64位元密鑰中之 任一者構成。 7. 一種用於計算一訊息認證碼指令於一電腦系統中之電腦 程式產品,該電腦程式產品包含: 一儲存媒體可由一處理電路讀取及儲存用於由該處理 114358-990611.doc 1332158 電路執行之指令,該處理電路用於執行一方法,該方法 包含: 自選自複數個功能碼之一先前定義功能碼訊息判定將 被執行之一訊息認證碼運算,該先前定義功能碼定義一 訊息認證碼產生運算或將被執行之一功能詢問運算中任 一者,其中該複數個功能碼包含一 KMAC-詢問運算、一 KMAC-DEA 64位元密鑰密碼運算、一 KMAC-Triple DEA 二64位元密鑰密碼運算或一 KMAC-Triple 64位元密鑰密 碼運算中任一者之一指示; 回應已判定之將被執行之該訊息認證碼運算為一訊息 認證碼產生運算、於一運算元上執行該訊息認證瑪產生 運算,該訊息認證碼產生運算包含a)至b): a) 計算用於使用一或多個密碼使用者密鑰及一 8位元 組鍵路值之一運算元之一訊息認證瑪,該運算元包含一 或多個8位元組訊息區塊,其中該計算該訊息認證碼產 生一新的8位元組鍵路值;及 b) 儲存已產生之該新的8位元組鏈路值; 回應已判定之將被執行之該訊息認證碼運算為一功能 詢問運算,執行該功能詢問運算,該功能詢問運算包含 c)至 d): c) 對一或多個訊息認證功能之每一者判定該訊息認 證功能是否安裝於該電腦系統上以用於由一訊息認證碼 指令執行;及 d) 儲存一狀態字於記憶體内之一參數區塊,該參數 114358-990611.doc 1332158 區塊具有由一第一通用暫存器所指定之一位址,該狀態 字包含一或多個狀態字位元,該一或多個狀態字位元之 每一者指示該一或多個訊息認證功能之一對應者係安裝 於該電腦系統上,該一或多個狀態字位元之每一者具有 對應於該對應訊息認證功能之該功能區域值之該狀態字 中之一位置。 8. 如請求項7之電腦程式產品,其中計算一訊息認證碼進 一步包含: 獲取該一或多個密碼使用者密鑰; 獲取該8位元組鏈路值; xl)獲取該運算元之一 8位元組訊息區塊; x2)以該運算元之該8位元組訊息區塊對該鏈路值做 排除-或運算; x3)使用已獲取之該密碼使用者密鑰,藉由將已獲取 之密碼使用者密鑰直接應用於該排除-或運算之該結果直 接編譯該排除-或運算之該結果以產生一新的8位元組鏈 路值;及 對該運算元之相繼的8位元組訊息區塊重複X1)至x3)。 9. 如請求項7之電腦程式產品,其中該訊息認證碼指令包 含: 一運算碼區域; 一 R2區域,該R2區域指定一第二通用暫存器及一第三 通用暫存器,該第二通用暫存器包含該運算元之一位 址,其中該第三通用暫存器指定該運算元之一長度,其 114358-990611.doc 1332158 中進一步該先前定義功能碼係自一預定第四通用暫存器 被獲取,及 其_該參數區塊包含該一或多個密碼使用者密鑰及該 8位元組鏈路值兩者。 10. 如請求項9之電腦程式產品,其中該方法進一步包含: 根據已執行的步驟内所處理的位元組數目藉由R2增加 該第二通用暫存器内包含之該運算元之該位址;及 根據已執行的步驟内所處理的位元組數目減少指定該 運算元之長度的該第三通用暫存器内包含之該運算元之 長度。 11. 如請求項7之電腦程式產品,該方法進一步包含: 回應在程序完結僅被執行於該運算元之一部分上之該 訊息認證碼運算,設定一部份完結條件碼值作為一條件 碼,該部分完結條件碼值指示該訊息認證碼運算尚未完 結;及 回應在程序完結已被執行於該運算元之全部上之該訊 息認證碼運算,設定一標準完全條件碼值作為一條件 碼,該標準完結條件碼值指不該訊息認證碼運鼻已完 結。 1 2.如請求項8之電腦程式產品,其中已獲取之該密碼使用 者密鑰由一 64位元密鑰、兩個64位元密鑰或三個64位元 密鍮中之任一者構成。 1 3.如請求項7之電腦程式產品,其中回應非原有於該微處 理器之一機器指令結構之該訊息認證碼指令,該方法進 114358-990611.doc 1332158 一步包含: 編譯該訊息認證碼指令以識別用於仿真該訊息認證碼 指令之該運算之一預定軟體例行工作,該預定軟體例行 工作包含複數個指令,及 執行該預定軟體例行工作。 14. 一種用於計算一訊息認證碼指令於一電腦系統中之系 統,該訊息認證碼指令包含一詢問功能,該系統包含: 一記憶體; 與該記憶體通信之一通用目的處理器,其中該電腦系 統可以執行一方法,該方法包含: 自選自複數個功能碼之一先前定義功能碼訊息判定將 被執行之一訊息認證碼運算,該先前定義功能碼定義一 訊息認證碼產生運算或將被執行之一功能詢問運算中任 一者,其中該複數個功能碼包含一 KMAC-詢問運算、一 KMAC-DEA 64位元密鑰密碼運算、一 KMAC-Triple DEA 二64位元密鑰密碼運算或一 KMAC-Triple 64位元密鑰密 碼運算中任一者之一指示; 回應已判定之將被執行之該訊息認證碼運算為一訊息 認證碼產生運算、於一運算元上執行該訊息認證碼產生 運算,該訊息認證碼產生運算包含a)至b): a)計算用於使用一或多個密碼使用者密鑰及一 8位元 組鍵路值之一運算元之一訊息認證媽,該運算元包含一 或多個8位元組訊息區塊’其中該計鼻該訊息認證碼產 生一新的8位元組鍵路值;及 114358-990611.doc 1332158 b) 儲存已產生之該新的8位元組鏈路值; 回應已判定之將被執行之該訊息認證碼運算為一功能 詢問運算,執行該功能詢問運算,該功能詢問運算包含 c)至 d): c) 對一或多個訊息認證功能之每一者判定該訊息認 證功能是否安裝於該電腦系統上以用於由一訊息認證碼 指令執行;及 d) 儲存一狀態字於記憶體内之一參數區塊,該參數 區塊具有由一第一通用暫存器所指定之一位址,該狀態 字包含一或多個狀態字位元,該一或多個狀態字位元之 每一者指示該一或多個訊息認證功能之一對應者係安裝 於該電腦系統上,該一或多個狀態字位元之每一者具有 對應於該對應訊息認證功能之該功能區域值之該狀態字 中之一位置。 15.如請求項14之系統,其中計算一訊息認證碼進一步包 含:獲取該一或多個密碼使用者密鑰; 獲取該8位元組鏈路值; X1)獲取該運算元之一 8位元組訊息區塊; x2)以該運算元之該8位元組訊息區塊對該鏈路值做 排除-或運算; x3)使用已獲取之該密碼使用者密鑰,藉由將已獲取 之密碼使用者密鑰直接應用於該排除-或運算之該結果直 接編譯該排除-或運算之該結果以產生一新的8位元組鏈 路值;及 114358-990611.doc 1332158 對該運算元之相繼的8位元組訊息區塊重複xl)至χ3)。 16. 如請求項14之系統,其中該訊息認證碼指令包含: 一運算碼區域; 一 R2區域,該R2區域指定一第二通用暫存器及一第三 通用暫存器,該第二通用暫存器包含該運算元之一位 址,其中該第三通用暫存器指定該運算元之一長度,其 中進一步該先前定義功能碼係自一預定第四通用暫存器 被獲取,及 其中該參數區塊包含該一或多個密碼使用者密鑰及該 8位元組鏈路值兩者。 17. 如請求項16之系統,其中該方法進一步包含: 根據已執行的步驟内所處理的位元組數目藉由R2增加 該第二通用暫存器内包含之該運算元之該位址;及 根據已執行的步驟内所處理的位元組數目減少指定該 運算元之長度的該第三通用暫存器内包含之該運算元之 長度。 18. 如請求項14之系統,其中該方法進一步包含: 回應在程序完結僅被執行於該運算元之一部分上之該 訊息認證碼運算,設定一部份完結條件碼值作為一條件 碼,該部分完結條件碼值指示該訊息認證碼運算尚未完 結;及 回應在程序完結已被執行於該運算元之全部上之該訊 息認證碼運算,設定一標準完全條件碼值作為一條件 瑪"該標準完結條件瑪值指不該訊息認證碼運鼻已完 114358-990611.doc 1332158 結。 19. 如請求項15之系統,其中已獲取之該密碼使用者密鑰由 一 64位元密鑰、兩個64位元密鑰或三個64位元密鑰中之 任一者構成。 20. 如請求項14之系統,其中回應非原有於該微處理器之一 機器指令結構之該訊息認證碼指令,該方法進一步包 含: 編譯該訊息認證碼指令以識別用於仿真該訊息認證碼 指令之該運算之一預定軟體例行工作,該預定軟體例行 工作包含複數個指令,及 執行該預定軟體例行工作。 114358-990611.doc 10-
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/435,910 US7356710B2 (en) | 2003-05-12 | 2003-05-12 | Security message authentication control instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200708985A TW200708985A (en) | 2007-03-01 |
TWI332158B true TWI332158B (en) | 2010-10-21 |
Family
ID=33417040
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW093113009A TWI354929B (en) | 2003-05-12 | 2004-05-07 | Method and computer program product for executing |
TW095132760A TWI332158B (en) | 2003-05-12 | 2004-05-07 | Method, computer program product, and system for excuting a message authentication code instruction in a computer system |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW093113009A TWI354929B (en) | 2003-05-12 | 2004-05-07 | Method and computer program product for executing |
Country Status (15)
Country | Link |
---|---|
US (2) | US7356710B2 (zh) |
EP (2) | EP1588255B1 (zh) |
KR (2) | KR100745889B1 (zh) |
CN (2) | CN100363887C (zh) |
AT (2) | ATE373264T1 (zh) |
AU (1) | AU2004236860B2 (zh) |
CA (1) | CA2522995C (zh) |
DE (2) | DE602004008933D1 (zh) |
ES (1) | ES2278317T3 (zh) |
GB (2) | GB2413877B (zh) |
IL (1) | IL171907A0 (zh) |
PL (1) | PL1588255T3 (zh) |
RU (2) | RU2327204C2 (zh) |
TW (2) | TWI354929B (zh) |
WO (1) | WO2004099976A2 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7802108B1 (en) * | 2002-07-18 | 2010-09-21 | Nvidia Corporation | Secure storage of program code for an embedded system |
US20040230813A1 (en) * | 2003-05-12 | 2004-11-18 | International Business Machines Corporation | Cryptographic coprocessor on a general purpose microprocessor |
US7284100B2 (en) * | 2003-05-12 | 2007-10-16 | International Business Machines Corporation | Invalidating storage, clearing buffer entries, and an instruction therefor |
US8155313B2 (en) * | 2005-02-03 | 2012-04-10 | Yottamark, Inc. | Systems and methods for employing duo codes for product authentication |
US7614546B2 (en) | 2005-02-03 | 2009-11-10 | Yottamark, Inc. | Method and system for deterring product counterfeiting, diversion and piracy |
US8649512B2 (en) * | 2005-02-03 | 2014-02-11 | Yottamark, Inc. | Duo codes for product authentication |
US8300806B2 (en) * | 2005-02-03 | 2012-10-30 | Yottamark, Inc. | Duo codes for product authentication |
KR101123742B1 (ko) * | 2005-12-23 | 2012-03-16 | 삼성전자주식회사 | 사용자 인터페이스와 소프트웨어 간의 신뢰 경로 설정 방법및 장치 |
JP4810289B2 (ja) * | 2006-04-17 | 2011-11-09 | ルネサスエレクトロニクス株式会社 | メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム |
MX2010002554A (es) | 2007-09-07 | 2010-04-01 | Yottamark Inc | Metodos y sistemas de atribucion de informacion de cosecha con identificadores unicos. |
US8210430B1 (en) | 2011-02-24 | 2012-07-03 | Yottamark, Inc. | Methods for assigning traceability information to and retrieving traceability information from a store shelf |
US8196827B1 (en) | 2009-05-22 | 2012-06-12 | Yottamark, Inc. | Case labeling for field-packed produce |
US8887990B2 (en) | 2007-09-07 | 2014-11-18 | Yottamark, Inc. | Attributing harvest information with unique identifiers |
US8342393B2 (en) * | 2007-09-07 | 2013-01-01 | Yottamark, Inc. | Attributing harvest information with unique identifiers |
US8428773B1 (en) | 2008-02-12 | 2013-04-23 | Yottamark, Inc. | Systems and methods of associating individual packages with harvest crates |
US8240564B2 (en) * | 2008-07-11 | 2012-08-14 | Yottamark, Inc. | Mobile table for implementing clamshell-to-case association |
US9182984B2 (en) | 2012-06-15 | 2015-11-10 | International Business Machines Corporation | Local clearing control |
US10313129B2 (en) * | 2015-06-26 | 2019-06-04 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2458331A1 (de) | 1973-12-13 | 1975-06-19 | Honeywell Inf Systems | Datenverarbeitungssystem zur adressierung eines in einem sekundaerspeicher abgelegten datensatzes |
JPS56121138A (en) | 1980-02-28 | 1981-09-22 | Nippon Telegr & Teleph Corp <Ntt> | Buffer memory controlling system |
JPS56149645A (en) * | 1980-04-21 | 1981-11-19 | Nec Corp | Instruction word deciphering device of information processor |
US4578530A (en) | 1981-06-26 | 1986-03-25 | Visa U.S.A., Inc. | End-to-end encryption system and method of operation |
US4432053A (en) * | 1981-06-29 | 1984-02-14 | Burroughs Corporation | Address generating apparatus and method |
JPS6110411A (ja) * | 1984-06-19 | 1986-01-17 | Daicel Chem Ind Ltd | 樹脂組成物 |
US4829424A (en) | 1985-06-28 | 1989-05-09 | Hewlett-Packard Company | Maximal length immediates with fixed sign position |
EP0206653B1 (en) * | 1985-06-28 | 1992-10-21 | Hewlett-Packard Company | Method and means for loading and storing data in a reduced instruction set computer |
JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
DE68926200T2 (de) | 1988-08-11 | 1996-10-17 | Ibm | Geheime Datenübertragung mittels Steuervektoren |
US5666411A (en) | 1994-01-13 | 1997-09-09 | Mccarty; Johnnie C. | System for computer software protection |
US5673319A (en) | 1995-02-06 | 1997-09-30 | International Business Machines Corporation | Block cipher mode of operation for secure, length-preserving encryption |
US5765030A (en) * | 1996-07-19 | 1998-06-09 | Symantec Corp | Processor emulator module having a variable pre-fetch queue size for program execution |
US5787302A (en) | 1996-05-15 | 1998-07-28 | Philips Electronic North America Corporation | Software for producing instructions in a compressed format for a VLIW processor |
US20010025337A1 (en) | 1996-06-10 | 2001-09-27 | Frank Worrell | Microprocessor including a mode detector for setting compression mode |
JPH11249873A (ja) | 1998-03-02 | 1999-09-17 | Mitsubishi Electric Corp | ドライバ機能の動的管理方式及び動的管理方法 |
KR20020026370A (ko) * | 1999-08-09 | 2002-04-09 | 러셀 비. 밀러 | 메시지 인증 코드를 발생시키기 위한 방법 및 장치 |
US6542981B1 (en) * | 1999-12-28 | 2003-04-01 | Intel Corporation | Microcode upgrade and special function support by executing RISC instruction to invoke resident microcode |
JP2002353960A (ja) * | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | コード実行装置およびコード配布方法 |
US7266703B2 (en) * | 2001-06-13 | 2007-09-04 | Itt Manufacturing Enterprises, Inc. | Single-pass cryptographic processor and method |
US20030002666A1 (en) | 2001-06-13 | 2003-01-02 | Takahashi Richard J. | Method and apparatus for creating a message digest using a parallel, one-way hash algorithm |
US20030028765A1 (en) | 2001-07-31 | 2003-02-06 | Cromer Daryl Carvis | Protecting information on a computer readable medium |
US6996725B2 (en) * | 2001-08-16 | 2006-02-07 | Dallas Semiconductor Corporation | Encryption-based security protection for processors |
-
2003
- 2003-05-12 US US10/435,910 patent/US7356710B2/en active Active
-
2004
- 2004-04-30 ES ES04730603T patent/ES2278317T3/es not_active Expired - Lifetime
- 2004-04-30 KR KR1020057019453A patent/KR100745889B1/ko active IP Right Grant
- 2004-04-30 AU AU2004236860A patent/AU2004236860B2/en not_active Expired
- 2004-04-30 WO PCT/GB2004/001925 patent/WO2004099976A2/en active IP Right Grant
- 2004-04-30 AT AT05108499T patent/ATE373264T1/de not_active IP Right Cessation
- 2004-04-30 DE DE602004008933T patent/DE602004008933D1/de not_active Withdrawn - After Issue
- 2004-04-30 RU RU2005138549/09A patent/RU2327204C2/ru active
- 2004-04-30 CA CA2522995A patent/CA2522995C/en not_active Expired - Lifetime
- 2004-04-30 GB GB0516205A patent/GB2413877B/en not_active Expired - Lifetime
- 2004-04-30 EP EP04730603A patent/EP1588255B1/en not_active Expired - Lifetime
- 2004-04-30 CN CNB200480012737XA patent/CN100363887C/zh not_active Expired - Lifetime
- 2004-04-30 AT AT04730603T patent/ATE350701T1/de active
- 2004-04-30 EP EP05108499A patent/EP1650648B1/en not_active Expired - Lifetime
- 2004-04-30 PL PL04730603T patent/PL1588255T3/pl unknown
- 2004-04-30 DE DE602004004079T patent/DE602004004079T2/de not_active Expired - Lifetime
- 2004-04-30 KR KR1020067015918A patent/KR20060103282A/ko not_active Application Discontinuation
- 2004-04-30 GB GB0518900A patent/GB2414840B/en not_active Expired - Fee Related
- 2004-04-30 CN CNB2006101538089A patent/CN100561423C/zh not_active Expired - Lifetime
- 2004-05-07 TW TW093113009A patent/TWI354929B/zh not_active IP Right Cessation
- 2004-05-07 TW TW095132760A patent/TWI332158B/zh not_active IP Right Cessation
-
2005
- 2005-11-10 IL IL171907A patent/IL171907A0/en active IP Right Grant
-
2007
- 2007-06-26 RU RU2007123775/09A patent/RU2007123775A/ru not_active Application Discontinuation
-
2008
- 2008-02-12 US US12/029,514 patent/US7770024B2/en not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI332158B (en) | Method, computer program product, and system for excuting a message authentication code instruction in a computer system | |
US7720220B2 (en) | Cipher message assist instruction | |
JP4817185B2 (ja) | 埋め込み符号を持ったコンピュータ命令値フィールド | |
JP6395737B2 (ja) | 擬似乱数シード操作を実施するための命令 | |
EP1684167A2 (en) | Method of processing signed displacement computer instruction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK4A | Expiration of patent term of an invention patent |