TWI642294B - 具有鑑認指令之密碼訊息之電腦程式產品、系統及方法 - Google Patents
具有鑑認指令之密碼訊息之電腦程式產品、系統及方法 Download PDFInfo
- Publication number
- TWI642294B TWI642294B TW106134850A TW106134850A TWI642294B TW I642294 B TWI642294 B TW I642294B TW 106134850 A TW106134850 A TW 106134850A TW 106134850 A TW106134850 A TW 106134850A TW I642294 B TWI642294 B TW I642294B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- instruction
- data set
- block
- encrypted
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 47
- 238000004590 computer program Methods 0.000 title claims description 19
- 238000012545 processing Methods 0.000 claims description 77
- 238000004891 communication Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 138
- 238000004422 calculation algorithm Methods 0.000 description 30
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 238000012795 verification Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000004806 packaging method and process Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 239000003607 modifier Substances 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 238000013478 data encryption standard Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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/30018—Bit or string instructions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
執行用以執行編密及鑑認之一指令。該執行包括編密由該指令提供之一個資料集合以獲得經編密資料,及將該經編密資料置放於一指定位置中。該執行進一步包括鑑認由該指令提供之一額外資料集合,其中該鑑認產生一訊息鑑認標籤之至少一部分。將該訊息鑑認標籤之該至少一部分儲存於一經選擇位置中。
Description
一或多個態樣大體上係關於運算環境內之處理,且尤其係關於與資料之編密及鑑認相關聯之處理。
電子資訊處理內容脈絡(electronic information processing context)中之安全訊息傳輸涉及訊息之加密及解密,以及鑑認。訊息在傳輸之前由發送者加密以確保經加密訊息之檢測不會向第三方顯露其真實內容。另一方面,訊息由接收者解密以顯露原始內容。另外,訊息鑑認確保由發送者提供之訊息之內容尚未在傳輸期間被意外地或惡意地改變。因此,事實上,所接收之訊息與所發送之訊息相同。
美國國家科學技術學會(National Institute of Science and Technology;NIST)特殊公開案800-38D之「區塊密碼操作模式推薦:伽羅華/計數器模式(GCM)及GMAC(Recommendation for Block Cipher Modes of Operation:Galois/Counter Mode(GCM)and GMAC)」(GMAC:伽羅華訊息鑑認碼(Galois Message Authentication Code))描述以下操作:使用NIST SP 800-38D中所描述之伽羅華雜湊(Galois Hashing;GHASH)演算法來鑑認額外經鑑認資料。額外經鑑認資料之實例為用於訊
息之網路路由資訊。此資料未被加密,使得網路路由器可適當地分派訊息;然而,路由資訊可需要被鑑認,例如以確保資料來自預期源。
使用諸如進階加密標準(advanced encryption standard;AES)的具有128個位元之區塊大小之經核准對稱金鑰區塊密碼來編密訊息。為了最小化經編密區塊之潛在可重複性,編密技術自一個區塊至下一區塊使用包括於編密處理程序中之遞增計數器。
使用GHASH來鑑認經加密訊息資料。
單獨個別指令可用於使用多種編密演算法來執行訊息之編密,且可用於產生用於訊息之訊息數位。
經由提供一種用於促進一運算環境中之處理之電腦程式產品來克服先前技術之缺點且提供額外優勢。該電腦程式產品包含一儲存媒體,其可由一處理電路讀取且儲存用於由該處理電路執行以用於執行一方法之指令。該方法包括例如:獲得用以執行複數個操作之一指令,該複數個操作包括編密及鑑認;及執行該指令。該執行包括編密由該指令提供之一個資料集合以獲得經編密資料,及將該經編密資料置放於一指定位置中。該執行進一步包括鑑認由該指令提供之一額外資料集合,其中該鑑認產生一訊息鑑認標籤之至少一部分。將該訊息鑑認標籤之該至少一部分儲存於一經選擇位置中。在一另外實施例中,該執行進一步包括鑑認該經編密資料。
提供能夠產生用於額外經鑑認資料之一訊息摘要、編密一訊息且產生用於該經編密訊息之一訊息摘要的一個指令。此藉由縮減待提取、解碼及執行之指令之數目且藉由縮減密碼文字將被提取之次數而改良系統效能。
在一個實例中,該額外資料集合包括一或多個資料區塊中之至少一個資料區塊,且該執行進一步包括判定該額外資料集合是否包括待鑑認之一最後資料區塊。基於該額外資料集合是否包括待鑑認之該最後資料區塊來執行該鑑認。該判定包括例如檢查該指令之一最後額外經鑑認資料控制項以判定該額外資料集合是否包括待鑑認之該最後資料區塊。該最後額外經鑑認資料控制項指示額外經鑑認資料之最終區塊是否已被提供,且允許單一指令處置額外經鑑認資料之第一、中間及最終區塊。
另外,在一個實例中,該一個資料集合包括一或多個資料區塊中之至少一個資料區塊,且該執行進一步包括判定該一個資料集合是否包括待編密之一最後資料區塊。基於該一個資料集合是否包括待編密之該最後資料區塊來執行該編密。該判定包括例如檢查該指令之一最後文字控制項以判定該一個資料集合是否包括待編密之該最後資料區塊。該最後文字控制項指示純文字/密碼文字之最終區塊是否已被提供,且允許單一指令處置純文字/密碼文字之第一、中間及最終區塊。
作為實例,該編密包括基於由該指令提供之一控制項被設定為一經選擇值來加密該一個資料集合,或基於由該指令提供之一控制項被設定為一特定值來解密該一個資料集合。
在一個實施例中,該額外資料集合之該鑑認包括使用一雜湊技術以產生該訊息鑑認標籤之該至少一部分。在一個實施例中,基於該指令之一雜湊子金鑰供應控制項被設定為一經選擇值,該雜湊技術使用儲存於由該指令使用之一參數區塊中之一雜湊子金鑰。該雜湊子金鑰供應控制項允許程式指示其已提供其自己的雜湊子金鑰,因此在使用該相同雜湊子金鑰之情況下提供一效能益處。
作為一實例,該一個資料集合包括一訊息之至少一部分,且該額外資料集合包括用於該訊息之路由資訊。
經由本文中所描述之技術而實現額外特徵及優勢。本文中詳細地描述其他實施例及態樣且將其視為所主張態樣之部分。
12‧‧‧電腦系統/伺服器
14‧‧‧外部裝置
16‧‧‧處理器/處理單元
18‧‧‧匯流排
20‧‧‧網路配接器
22‧‧‧輸入/輸出(I/O)介面
24‧‧‧顯示器
28‧‧‧系統記憶體
30‧‧‧隨機存取記憶體(RAM)
32‧‧‧快取記憶體
34‧‧‧儲存系統
40‧‧‧程式/公用程式
42‧‧‧程式模組
100‧‧‧運算環境
120‧‧‧指令提取組件
122‧‧‧指令解碼單元
124‧‧‧指令執行組件
126‧‧‧記憶體存取組件
130‧‧‧寫回組件
136‧‧‧編密及鑑認操作
140‧‧‧暫存器
200‧‧‧運算環境
202‧‧‧原生中央處理單元(CPU)
204‧‧‧記憶體
206‧‧‧輸入/輸出裝置及/或介面
208‧‧‧匯流排
210‧‧‧暫存器
212‧‧‧模擬器程式碼
250‧‧‧客體指令
252‧‧‧指令提取常式
254‧‧‧指令轉譯常式
256‧‧‧原生指令
260‧‧‧模擬控制常式
300‧‧‧具有鑑認指令之密碼訊息
302‧‧‧作業碼欄位
304‧‧‧第一暫存器欄位
306‧‧‧第二暫存器欄位
308‧‧‧第三暫存器欄位
320‧‧‧一般暫存器0
322‧‧‧旗標(F)欄位
324‧‧‧修飾詞(M)控制項
326‧‧‧功能碼(FC)欄位
330‧‧‧一般暫存器1
332‧‧‧邏輯位址
342‧‧‧一般暫存器R1中之位址
362‧‧‧一般暫存器R2中之位址
370‧‧‧一般暫存器R2+1
372‧‧‧一般暫存器R2+1之長度
382‧‧‧一般暫存器R3中之位址
390‧‧‧一般暫存器R3+1
392‧‧‧一般暫存器R3+1中之長度
400‧‧‧參數區塊
500‧‧‧進階加密標準(AES)演算法
504‧‧‧雜湊子金鑰
510‧‧‧操作
512‧‧‧操作
600‧‧‧第一運算元
602‧‧‧第二運算元
604‧‧‧第三運算元
700‧‧‧詢問
702‧‧‧步驟
704‧‧‧詢問
706‧‧‧步驟
708‧‧‧詢問
710‧‧‧步驟
712‧‧‧詢問
714‧‧‧步驟
716‧‧‧詢問
718‧‧‧步驟
720‧‧‧步驟
730‧‧‧詢問
732‧‧‧詢問
734‧‧‧步驟
736‧‧‧步驟
738‧‧‧步驟
740‧‧‧詢問
742‧‧‧步驟
744‧‧‧詢問
746‧‧‧步驟
750‧‧‧詢問
752‧‧‧步驟
754‧‧‧詢問
756‧‧‧步驟
760‧‧‧詢問
762‧‧‧步驟
764‧‧‧詢問
766‧‧‧步驟
768‧‧‧詢問
770‧‧‧步驟
772‧‧‧詢問
774‧‧‧步驟
780‧‧‧步驟
782‧‧‧步驟
800‧‧‧步驟
802‧‧‧步驟
804‧‧‧步驟
806‧‧‧步驟
808‧‧‧步驟
810‧‧‧步驟
812‧‧‧步驟
814‧‧‧區塊
816‧‧‧步驟
818‧‧‧步驟
820‧‧‧步驟
822‧‧‧區塊
824‧‧‧步驟
826‧‧‧步驟
828‧‧‧步驟
830‧‧‧步驟
832‧‧‧步驟
834‧‧‧步驟
836‧‧‧步驟
840‧‧‧區塊
GR0‧‧‧一般暫存器0
GR1‧‧‧一般暫存器1
R1‧‧‧第一暫存器
R2‧‧‧第二暫存器
R2+1‧‧‧一般暫存器
R3‧‧‧第三暫存器
R3+1‧‧‧一般暫存器
在本說明書完結時,在申請專利範圍中作為實例而特別地指出且清楚地主張一或多個態樣。一或多個態樣之前述內容以及目標、特徵及優勢自結合隨附圖式而採取之以下詳細描述係顯而易見的,在圖式中:圖1A描繪用以併有及使用本發明之一或多個態樣的運算環境之一個實例;圖1B描繪圖1A之處理器之另外細節;圖2A描繪用以併有及使用本發明之一或多個態樣的運算環境之另一實例;圖2B描繪圖2A之記憶體之另外細節;圖3A描繪根據本發明之一態樣的具有鑑認指令之密碼訊息之格式之一個實施例;圖3B描繪根據本發明之一態樣的待由具有圖3A之鑑認指令之密碼訊息之一或多個態樣使用的一般暫存器(一般暫存器0(GR0))之內容之一個實例;圖3C描繪根據本發明之一態樣的待由具有圖3A之鑑認指令之密碼訊息使用的另一一般暫存器(一般暫存器1(GR1))之內容之一個實例;圖3D描繪根據本發明之一態樣的待由具有圖3A之鑑認指令之密碼訊息在一或多個態樣中使用的暫存器R1之內容之一個實例;
圖3E描繪根據本發明之一態樣的待由具有圖3A之鑑認指令之密碼訊息在一或多個態樣中使用的暫存器R2之內容之一個實例;圖3F描繪根據本發明之一態樣的待由具有圖3A之鑑認指令之密碼訊息在一或多個態樣中使用的暫存器R2+1之內容之一個實例;圖3G描繪根據本發明之一態樣的待由具有圖3A之鑑認指令之密碼訊息在一或多個態樣中使用的暫存器R3之內容之一個實例;圖3H描繪根據本發明之一態樣的待由具有圖3A之鑑認指令之密碼訊息在一或多個態樣中使用的暫存器R3+1之內容之一個實例;圖4描繪根據本發明之一態樣的供具有圖3A之鑑認指令之密碼訊息使用的參數區塊之格式之一個實例;圖5A描繪根據本發明之一態樣的加密雜湊子金鑰之一個實例;圖5B描繪根據本發明之一態樣的額外經鑑認資料之完整區塊之伽羅華雜湊處理之一個實例;圖5C描繪根據本發明之一態樣的額外經鑑認資料之最後(短)區塊之伽羅華雜湊處理之一個實例;圖5D描繪根據本發明之一態樣的用於加密之訊息之完整區塊的組合式編密及雜湊之一個實例;圖5E描繪根據本發明之一態樣的用於解密之訊息之完整區塊的組合式編密及雜湊之一個實例;圖5F描繪根據本發明之一態樣的訊息之最後(短)區塊之編密及雜湊之一個實例;圖5G描繪根據本發明之一態樣的最後標籤之雜湊及加密之一個實例;
圖6描繪根據本發明之一態樣的與具有鑑認指令之密碼訊息相關聯之經選擇處理之一個實例;圖7A至圖7E描繪根據本發明之一態樣的與具有鑑認指令之密碼訊息相關聯之處理之一個實例;且圖8A至圖8B描繪根據本發明之一態樣的促進運算環境中之處理之一個實例,其包括執行經組態以運用額外鑑認操作來執行密碼訊息之指令。
根據一或多個態樣,提供組合鑑認及編密之功能的單一指令(例如在硬體/軟體介面處之單一架構式硬體機器指令)。舉例而言,提供組合產生訊息鑑認標籤(用於額外經鑑認資料及訊息兩者)之功能與編密訊息之功能的單一指令。儘管在一個實施例中指令執行符合伽羅華/計數器模式規格之編密及鑑認,但在其他實施例中指令可使用額外及/或其他演算法以執行編密及鑑認。指令在本文中被稱作具有鑑認指令之密碼訊息。
如上文所描述,單獨指令可用於使用包括資料加密演算法、三重資料加密演算法及進階加密標準之多種編密演算法來執行用於訊息之編密;且可用於產生訊息摘要。另外,其他功能可用於執行各種雜湊演算法,包括GHASH。然而,不存在組合訊息編密及訊息鑑認(包括額外經鑑認資料之鑑認)之單一指令。因此,根據本發明之一態樣,提供組合訊息編密及鑑認之此指令,例如具有鑑認指令之密碼訊息。
參考圖1A來描述用以併有及使用本發明之一或多個態樣的運算環境之一個實施例。在一個實例中,運算環境係基於由紐約阿蒙克市之國際商用機器公司(International Business Machines Corporation,Armonk,New York)提供之z/架構。2015年3月IBM公開案第SA22-7832-10號之「z/架構
操作原理(z/Architecture Principles of Operation)」中描述z/架構之一個實施例,該公開案之全文特此以引用的方式併入本文中。Z/ARCHITECTURE為美國紐約阿蒙克市之國際商用機器公司之註冊商標。
在另一實例中,運算環境係基於由紐約阿蒙克市之國際商用機器公司提供之電源架構。2015年4月9日國際商用機器公司之「Power ISATM版本2.07B(Power ISATM Version 2.07B)」中描述電源架構之一個實施例,該文獻之全文特此以引用的方式併入本文中。POWER ARCHITECTURE為美國紐約阿蒙克市之國際商用機器公司之註冊商標。
運算環境亦可基於其他架構,包括但不限於Intel x86架構。亦存在其他實例。
如圖1A所展示,運算環境100包括例如電腦系統/伺服器12,其可包括但不限於一或多個處理器或處理單元16、系統記憶體28,及將包括系統記憶體28之各種系統組件耦接至處理器16的匯流排18。
匯流排18表示任何若干類型之匯流排結構中之一或多者,包括記憶體匯流排或記憶體控制器、周邊匯流排、加速圖形埠,及使用多種匯流排架構中之任一者之處理器或本機匯流排。作為實例而非限制,此等架構包括工業標準架構(Industry Standard Architecture;ISA)匯流排、微通道架構(Micro Channel Architecture;MCA)匯流排、增強型ISA(Enhanced ISA;EISA)匯流排、視訊電子標準協會(Video Electronics Standards Association;VESA)本機匯流排,及周邊組件互連(Peripheral Component Interconnect;PCI)匯流排。
電腦系統/伺服器12通常包括多種電腦系統可讀媒體。此等媒體可為
可由電腦系統/伺服器12存取之任何可用媒體,且其包括揮發性及非揮發性媒體、抽取式及非抽取式媒體兩者。
系統記憶體28可包括呈揮發性記憶體之形式的電腦系統可讀媒體,諸如隨機存取記憶體(random access memory;RAM)30及/或快取記憶體32。電腦系統/伺服器12可進一步包括其他抽取式/非抽取式、揮發性/非揮發性電腦系統儲存媒體。僅作為實例,可提供儲存系統34以用於自非抽取式、非揮發性磁性媒體(未圖示且通常被稱為「硬碟機」)讀取及向該磁性媒體寫入。儘管未圖示,但可提供用於自抽取式、非揮發性磁碟(例如「軟碟」)讀取及向該磁碟寫入之磁碟機,及用於自諸如CD-ROM、DVD-ROM或其他光學媒體之抽取式、非揮發性光碟讀取或向該光碟寫入之光碟機。在此等情況下,每一者可藉由一或多個資料媒體介面而連接至匯流排18。如下文將進一步所描繪及描述,記憶體28可包括具有經組態以實行本發明之實施例之功能的程式模組之集合(例如其中之至少一者)的至少一個程式產品。
作為實例而非限制,具有程式模組42之集合(其中之至少一者)的程式/公用程式40以及作業系統、一或多個應用程式、其他程式模組及程式資料可儲存於記憶體28中。作業系統、一或多個應用程式、其他程式模組及程式資料或其某一組合中之每一者可包括網路連接環境之實施。程式模組42通常實行如本文中所描述的本發明之實施例之功能及/或方法。
電腦系統/伺服器12亦可與以下各者通信:諸如鍵盤、指標裝置、顯示器24等等之一或多個外部裝置14;使使用者能夠與電腦系統/伺服器12互動之一或多個裝置;及/或使電腦系統/伺服器12能夠與一或多個其他運算裝置通信之任何裝置(例如網路卡、數據機等等)。此通信可經由輸入/輸
出(I/O)介面22而發生。再者,電腦系統/伺服器12可經由網路配接器20而與諸如區域網路(LAN)、一般廣域網路(WAN)及/或公用網路(例如網際網路)之一或多個網路通信。如所描繪,網路配接器20經由匯流排18而與電腦系統/伺服器12之其他組件通信。應理解,儘管未圖示,但可結合電腦系統/伺服器12來使用其他硬體及/或軟體組件。實例包括但不限於:微碼、裝置驅動器、冗餘處理單元、外部磁碟機陣列、RAID系統、磁帶機,及資料封存儲存系統等等。
在一個實例中,處理器16包括用以執行指令之複數個功能組件。如圖1B所描繪,此等功能組件包括例如:指令提取組件120,其用以提取待執行指令;指令解碼單元122,其用以解碼經提取指令且用以獲得經解碼指令之運算元;指令執行組件124,其用以執行經解碼指令;記憶體存取組件126,其用以在必要時存取用於指令執行之記憶體;及寫回組件130,其用以提供經執行指令之結果。根據本發明之一態樣,此等組件中之一或多者可提供編密及鑑認操作136,包括額外經鑑認資料之鑑認,如本文中所描述。
在一個實施例中,處理器16亦包括待由功能組件中之一或多者使用的一或多個暫存器140。
參考圖2A來描述用以併有及使用一或多個態樣之運算環境之另一實施例。在此實例中,運算環境200包括例如原生中央處理單元(CPU)202、記憶體204,及一或多個輸入/輸出裝置及/或介面206,其經由例如一或多個匯流排208及/或其他連接而彼此耦接。作為實例,運算環境200可包括:由紐約阿蒙克市之國際商用機器公司提供之PowerPC處理器或pSeries伺服器;由加州帕洛阿爾托市之惠普公司(Hewlett Packard Co.,
Palo Alto,California)提供之具有Intel Itanium II處理器之HP Superdome;及/或基於由國際商用機器公司、惠普公司、英特爾公司、甲骨文公司(Oracle)或其他公司提供之架構之其他機器。
原生中央處理單元202包括一或多個原生暫存器210,諸如在環境內之處理期間使用的一或多個一般用途暫存器及/或一或多個特殊用途暫存器。此等暫存器包括表示環境在任何特定時間點之狀態的資訊。
此外,原生中央處理單元202執行儲存於記憶體204中之指令及程式碼。在一個特定實例中,中央處理單元執行儲存於記憶體204中之模擬器程式碼212。此程式碼使在一個架構中組態之運算環境能夠模擬另一架構。舉例而言,模擬器程式碼212允許基於除了z/架構以外之架構之機器(諸如PowerPC處理器、pSeries伺服器、HP Superdome伺服器或其他者)模擬z/架構且執行基於z/架構而開發之軟體及指令。
參考圖2B來描述與模擬器程式碼212相關之另外細節。儲存於記憶體204中之客體指令250包含經開發為在除了原生CPU 202之架構以外之架構中執行的軟體指令(例如與機器指令相關)。舉例而言,客體指令250可能已經設計為在z/架構處理器16上執行,但代替地在可為例如Intel Itanium II處理器之原生CPU 202上被模擬。在一個實例中,模擬器程式碼212包括指令提取常式252,其用以自記憶體204獲得一或多個客體指令250且視情況提供用於所獲得指令之本機緩衝。該模擬器程式碼亦包括指令轉譯常式254,其用以判定已被獲得之客體指令之類型且將該客體指令轉譯成一或多個對應原生指令256。此轉譯包括例如識別待由客體指令執行之功能,及選擇原生指令以執行彼功能。
另外,模擬器212包括模擬控制常式260以致使執行原生指令。模擬
控制常式260可致使原生CPU 202執行模擬一或多個先前所獲得客體指令之原生指令的常式,且在此執行完結時將控制返回至指令提取常式以模擬下一客體指令或客體指令群組之獲得。原生指令256之執行可包括:將資料自記憶體204載入至暫存器中;將資料自暫存器儲存回至記憶體;或執行某一類型之算術或邏輯運算,如由轉譯常式所判定。
每一常式係例如以軟體予以實施,該軟體儲存於記憶體中且由原生中央處理單元202執行。在其他實例中,常式或操作中之一或多者係以韌體、硬體、軟體或其某一組合予以實施。可使用原生CPU之暫存器210或藉由使用記憶體204中之位置來模擬經模擬處理器之暫存器。在實施例中,客體指令250、原生指令256及模擬器程式碼212可駐存於同一記憶體中或可分佈於不同記憶體裝置當中。
如本文中所使用,韌體包括例如處理器之微碼、微型碼(millicode)及/或巨集碼(macrocode)。韌體包括例如用於實施較高層級機器碼之硬體層級指令及/或資料結構。在一個實施例中,韌體包括例如專屬碼,其通常作為包括受信任軟體之微碼或特定於基礎硬體之微碼被遞送,且控制對系統硬體之作業系統存取。
在一個實例中,所獲得、轉譯及執行之客體指令250為本文中所描述之具有鑑認指令之密碼訊息。自記憶體提取屬於一個架構(例如z/架構)之指令,將其轉譯及表示為另一架構(例如PowerPC、pSeries、Intel等等)之原生指令256之序列。接著執行此等原生指令。
本文中描述與具有鑑認指令之密碼訊息之一個實施例相關的細節,包括指令之明確及隱含欄位,以及藉由處理器(在原生或經模擬系統中)之執行。根據本發明之一態樣,具有鑑認指令之密碼訊息為組合產生訊息鑑
認標籤(用於額外經鑑認資料及訊息兩者)之功能與編密訊息之功能的單一指令。
參考圖3A來描述具有鑑認指令之密碼訊息之一個實施例。在一個實例中,具有鑑認指令之密碼訊息300包括:作業碼欄位302(例如位元0至15),其具有用以指示具有鑑認操作之密碼訊息的作業碼;第一暫存器欄位304(例如位元24至27),其用以指定至少一個第一暫存器(R1);第二暫存器欄位306(例如位元28至31),其用以指定至少一個第二暫存器(R2);及第三暫存器欄位308(例如位元16至19),其用以指定至少一個第三暫存器(R3)。在一個實例中,欄位304至308中之每一者與作業碼欄位分離且獨立於作業碼欄位。另外,在一個實施例中,該等欄位彼此分離且獨立;然而,在其他實施例中,可組合多於一個欄位。
在一個實例中,由R1欄位指定之偶數編號暫存器之內容含有第一運算元之位址。另外,由R2欄位及R3欄位指定之偶數奇數暫存器對之內容分別含有第二運算元及第三運算元之位址及長度。
除了在指令中編碼之R1、R2及R3以外,指令之一個實施亦使用一或多個默許暫存器,包括例如一般暫存器0(GR0)及一般暫存器1(GR1)。下文參考圖3B至圖3H來進一步描述該等暫存器中之每一者。
最初參看圖3B,描述一般暫存器0(320)之格式之一個實施例。在一個實例中,一般暫存器0包括旗標(F)欄位322(例如位元48至55)、修飾詞(M)控制項324(例如位元56),及功能碼(FC)欄位326(例如位元57至63)。下文進一步描述該等欄位中之每一者。
旗標(F)322:一般暫存器0之位元位置48至55含有控制功能之操作的8位元旗標欄位。旗標欄位在一般暫存器0之位元57至63中的功能碼指
定編密功能時(亦即,在功能碼為非零時)係有意義的。在一個實例中,旗標欄位之格式如下:保留:旗標欄位之位元0至4保留且應含有0;否則,程式在未來可能不會相容地操作。
雜湊子金鑰供應(HS)旗標:旗標欄位之位元5指示參數區塊(下文所描述)中之雜湊子金鑰(H)欄位是否含有有效雜湊子金鑰。HS旗標在功能碼為非零時係有意義的,且功能不使用經加密密碼編譯金鑰;對於使用經加密密碼編譯金鑰之功能忽略HS旗標。
最後額外經鑑認資料(LAAD)旗標:旗標欄位之位元6檢核第三運算元之內容。在LAAD旗標為1時,其指示第三運算元指定額外經鑑認資料區塊之最後系列。在LAAD旗標為0時,其指示第三運算元不指定額外經鑑認資料區塊之最後系列。
最後純文字/密碼文字(LPC)旗標(在本文中亦被稱作最後文字控制項):旗標欄位之位元7檢核第二運算元之內容。在LPC旗標為1時,其指示第二運算元指定純文字或密碼文字區塊之最後系列。在LPC旗標為0時,其指示第二運算元不指定純文字或密碼文字區塊之最後系列。
在LPC旗標為1且LAAD旗標為0時,規格例外狀況被辨識且操作被抑制。
修飾詞(M)324:在一般暫存器0之位元57至63中的功能碼為非零時,一般暫存器0之位元位置56含有指示加密或解密將由功能執行之修飾詞控制項。在M控制項為0時,功能執行第二運算元之加密;在M控制項為1時,功能執行第二運算元之解密。在功能碼為0時忽略M控制項。
功能碼(FC)326:一般暫存器0之位元位置57至63含有功能碼。在指
令之操作中,執行由功能碼指定之功能。用於具有鑑認之密碼訊息的經指派功能碼之實例包括:
忽略一般暫存器0之位元0至31。一般暫存器0之位元32至47保留且應含有0;否則,程式在未來可能不會相容地操作。
查詢功能(例如功能碼0)提供指示其他功能之可用性的方式。對於查詢功能,忽略一般暫存器R1、R2、R2+1、R3及R3+1之內容。
對於除了查詢功能以外之功能(亦即,對於具有非零功能碼之功能),訊息鑑認標籤係由第三運算元之內容及所得第一運算元或第二運算元之內容形成,此分別取決於M控制項為0抑或1。基於M控制項,使用來自參數區塊(下文所描述)之密碼編譯金鑰及計數器值來加密或解密第二運算元,且將結果置放於第一運算元位置中。
如圖3C所展示,一般暫存器1(330)含有儲存體中之參數區塊的最左邊位元組之邏輯位址332。在24位元定址模式中,一般暫存器1之位元位置40至63的內容構成位址,且忽略位元位置0至39之內容。在31位元定址模式中,一般暫存器1之位元位置33至63的內容構成位址,且忽略位元位置0至32之內容。在64位元定址模式中,一般暫存器1之位元位置0至63的內容構成位址。
參看圖3D,R1欄位(304)指定一般暫存器且用以指定偶數編號暫存器;否則,規格例外狀況被辨識。R2及R3欄位各自指定一般暫存器之偶數奇數對且每一者用以指定偶數編號暫存器;否則,規格例外狀況被辨識。若R3欄位與R1或R2欄位指定同一暫存器,則規格例外狀況亦被辨識。
第一、第二及第三運算元之最左邊位元組的位置分別由一般暫存器R1 304(圖3D)、R2 306(圖3E)及R3 308(圖3G)之內容指定。在一般暫存器R2+1(370,圖3F)中指定第二運算元位置中之位元組的數目。第一運算元與第二運算元具有相同長度。在一般暫存器R3+1(390,圖3H)中指定第三運算元位置中之位元組的數目。
作為操作之部分,將一般暫存器R3(380,圖3G)中之位址382遞增經處理之第三運算元位元組的數目,且將一般暫存器R3+1(390)中之長度392遞減相同數目;另外,將一般暫存器R1及R2中之位址342、362各自遞增經處理之第二運算元位元組的數目,且將一般暫存器R2+1(370)中之長度372遞減相同數目。位址及長度之形成及更新取決於定址模式。
舉例而言,在24位元定址模式中,一般暫存器R1、R2及R3之位元位置40至63的內容分別構成第一、第二及第三運算元之位址,且忽略位元位置0至39之內容;經更新位址之位元40至63替換一般暫存器R1、R2及R3中之對應位元,忽略經更新位址之位元位置40的進位輸出,且將一般暫存器R1、R2及R3之位元位置32至39的內容設定為0。在31位元定址模式中,一般暫存器R1、R2及R3之位元位置33至63的內容分別構成第一、第二及第三運算元之位址,且忽略位元位置0至32之內容;經更新位址之位元33至63替換一般暫存器R1、R2及R3中之對應位元,忽略經更新位址之位元位置33的進位輸出,且將一般暫存器R1、R2及R3之位元位置32的內容設
定為0。在64位元定址模式中,一般暫存器R1、R2及R3之位元位置0至63的內容分別構成第一、第二及第三運算元之位址;經更新位址之位元0至63替換一般暫存器R1、R2及R3之內容,且忽略其位置0之進位輸出。
在24位元定址模式及31位元定址模式兩者中,一般暫存器R2+1之位元位置32至63的內容形成指定第一及第二運算元中之位元組之數目的32位元不帶正負號二進位整數,且忽略位元位置0至31之內容;經更新值之位元32至63替換一般暫存器R2+1中之對應位元。在64位元定址模式中,一般暫存器R2+1之位元位置0至63的內容形成指定第一及第二運算元中之位元組之數目的64位元不帶正負號二進位整數;經更新值替換一般暫存器R2+1之內容。
在24位元定址模式及31位元定址模式兩者中,一般暫存器R3+1之位元位置32至63的內容形成指定第三運算元中之位元組之數目的32位元不帶正負號二進位整數,且忽略位元位置0至31之內容;經更新值之位元32至63替換一般暫存器R3+1中之對應位元。在64位元定址模式中,一般暫存器R3+1之位元位置0至63的內容形成指定第三運算元中之位元組之數目的64位元不帶正負號二進位整數;經更新值替換一般暫存器R3+1之內容。
在24位元或31位元定址模式中,一般暫存器R1、R2、R2+1、R3及R3+1之位元位置0至31的內容保持不變。
在存取暫存器模式中,存取暫存器1、R1、R2及R3分別指定含有參數區塊、第一運算元、第二運算元及第三運算元之位址空間。
下文描述功能中之每一者:
此功能使用包括例如儲存於參數區塊中之128位元狀態字的參數區塊。此欄位之位元0至127分別對應於具有鑑認指令之密碼訊息的功能碼0至127。在位元為1時,安裝對應功能;否則,不安裝功能。
在查詢功能之執行完成時設定條件碼0;條件碼1、2及3不適用於此功能。
伽羅華/計數器模式(GCM)-AES功能(選擇性非零功能碼)
在一個實施例中,存在六個GCM-AES功能:
‧GCM-AES-128(功能碼18)
‧GCM-AES-192(功能碼19)
‧GCM-AES-256(功能碼20)
‧GCM-經加密AES-128(功能碼26)
‧GCM-經加密AES-192(功能碼27)
‧GCM-經加密AES-256(功能碼28)
此等功能亦使用參數區塊,且參考圖4來描述用於GCM-AES功能之參數區塊之一個實例。在一個實例中,參數區塊400包括:保留:參數區塊之位元組0至11保留。保留欄位可含有指令之不可預測值。
計數器值(CV)402:參數區塊之位元組12至15含有例如32位元二進位整數。初始計數器值412(J0,在參數區塊之位元組64至79中)之最左邊12個位元組與右邊的CV欄位之內容串連以形成由下文所描述之伽羅華計數器(Galois Counter;GCTR)功能使用的初始計數器區塊(ICB)。
對於指令之每一執行,CPU將參數區塊中之CV欄位遞增經處理之第二運算元區塊的數目。忽略CV欄位之位元位置0的進位輸出。
標籤(T)404:參數區塊之位元組16至31含有訊息鑑認標籤欄位。
對於第三運算元之每一區塊,且對於所得第一運算元之每一區塊(在M為0時)或第二運算元之每一區塊(在M為1時),CPU使用標籤欄位作為至下文所描述之伽羅華雜湊(GHASH)功能的輸入及輸出兩者。在所有額外經鑑認資料及密碼文字已被雜湊時,TAADL 408與TPCL 410欄位(下文所描述)之串連係使用GHASH被雜湊,且雜湊之結果係使用GCTR功能被加密以在參數區塊中產生最後標籤(T)欄位。
雜湊子金鑰(H)406:對於GCM-AES功能,參數區塊之位元組32至47含有例如由指令之GHASH功能使用的128位元雜湊子金鑰。在雜湊子金鑰供應旗標(HS,一般暫存器0之位元53)為0時,CPU藉由使用密碼編譯金鑰(K)來加密二進位零之128個位元而計算雜湊子金鑰,將雜湊子金鑰儲存於H欄位中,且將HS旗標設定為1。在HS旗標為1時,CPU使用H欄位中之程式供應雜湊子金鑰;且在此狀況下不改變H欄位及HS旗標。
對於GCM-經加密-AES功能,參數區塊之位元組32至47保留且應含有0;否則,程式在未來可能不會相容地操作。在此狀況下,CPU藉由使用經解密密碼編譯金鑰(K)來加密二進位零之128個位元而計算雜湊子金鑰;且在此狀況下不改變H欄位及HS旗標。
總額外經鑑認資料長度(TAADL)408:參數區塊之位元組48至55含有指定用於正被處理之訊息之整個額外經鑑認資料的位元之總長度的64位元不帶正負號二進位整數。
總純文字或密碼文字長度(TPCL)410:參數區塊之位元組56至63含有指定用於正被處理之訊息之整個純文字或密碼文字的位元之總長度的64位元不帶正負號二進位整數。
初始計數器值(J0)412:參數區塊之位元組64至79含有128位元初始計數器值,其用以(a)提供由GCTR功能使用之初始計數器區塊之最左邊96個位元,及(b)加密最後鑑認標籤(T)欄位。
密碼編譯金鑰(K)414:在編密及解密操作中使用之密碼編譯金鑰在參數區塊之位元組80處開始。金鑰欄位之大小及其在參數區塊中之位移取決於功能碼,如下文所指示:
AES包裝金鑰驗證圖案(WKaVP)418:對於GCM-經加密-AES功能(碼26至28),緊隨參數區塊中之金鑰的32個位元組含有AES包裝金鑰驗證圖案(WKaVP)。
對於GCM-AES功能(碼18至20),WKaVP欄位不存在於參數區塊中。
在一個實施例中,對於GCM-AES功能,額外經鑑認資料之鑑認以及訊息之編密及鑑認包括操作序列。取決於一般暫存器0中之旗標及功能碼的所執行之操作序列包括例如:
1.包裝金鑰驗證:此處理程序對於指令之每一執行被執行一次,且確保使用經加密包裝金鑰之功能正使用金鑰之正確版本。對於GCM-經加密-AES功能(功能碼26至28),比較32位元組WKaVP欄位之內容與AES包裝金鑰驗證圖案暫存器之內容。若其失配,則第一運算元及參數區塊位置
保持不變,且藉由設定條件碼(例如1)而完成操作。若其匹配,則使用AES包裝金鑰來解密參數區塊之金鑰欄位414的內容以獲得由功能使用之128位元密碼編譯金鑰K 414;然而,參數區塊之金鑰欄位不變。對於不使用經加密金鑰(碼18至20)之GCM-AES功能,不執行包裝金鑰驗證。
2.計算雜湊子金鑰:此處理程序採取為0之128位元值,且使用編密演算法(例如AES加密)來編密該128位元值。對於不使用經包裝金鑰之功能,實施允許程式指定預計算出之雜湊子金鑰。雜湊子金鑰用於GHASH處理以產生所得訊息鑑認標籤。
對於GCM-AES功能(功能碼18至20),以下各者適用:
‧在雜湊子金鑰供應旗標(HS,一般暫存器0之位元53)為0時,使用AES演算法來加密128個二進位零之區塊。如圖5A所展示,AES演算法500使用來自參數區塊之金鑰(K)欄位414。將所得128位元雜湊子金鑰504置放至參數區塊之H欄位406中,且在一般暫存器0中將HS旗標設定為1。
‧在HS旗標為1時,將參數區塊中之H欄位406用作雜湊子金鑰。在此狀況下不改變H欄位及HS旗標。
對於GCM-經加密-AES功能(功能碼26至28),忽略HS旗標。在使用經解密金鑰(K)之情況下,使用如圖5A所展示之AES演算法來加密128個二進位零之區塊。在此狀況下不改變參數區塊之H欄位406及HS旗標。
3.額外經鑑認資料雜湊:藉由GHASH演算法來處理任何額外經鑑認資料以形成部分訊息標籤。在一般暫存器R3+1中之第三運算元長度為非零時,執行額外經鑑認資料雜湊。在此狀況下,由指令之R3運算元指定的偶數編號一般暫存器含有儲存位置之位址,該儲存位置含有訊息鑑認標籤係使用GHASH演算法被計算的資料。除了第三運算元之區塊以外,
GHASH功能亦使用參數區塊中之雜湊子金鑰406及標籤欄位404作為輸入值。
結果被獲得為好像處理在第三運算元之左端處開始且逐區塊地向右繼續進行。在額外經鑑認資料之一或多個完整16位元組區塊剩餘時,處理係如圖5B所說明,其中在510處之操作為按位元互斥或(bitwise exclusive OR),且在512處之操作為遍及GF(2128)之GCM乘法運算。
在一個實施中,在以下各者中之任一者為真時,額外經鑑認資料雜湊處理程序結束:
‧小於第三運算元之長度的區塊之CPU判定數目已被處理。在此狀況下,迄今為止而計算之訊息鑑認被置放至參數區塊之T欄位404中,一般暫存器R3被遞增經處理之第三運算元位元組的數目,一般暫存器R3+1被遞減相同數量,且指令藉由設定例如條件碼3而完成。
‧最後額外經鑑認資料旗標(LAAD,一般暫存器0之位元54)為0,且第三運算元中剩餘之位元組的數目小於16。在此狀況下,迄今為止而計算之訊息鑑認標籤(若存在)被置放至參數區塊之T欄位404中,一般暫存器R3被遞增經處理之第三運算元位元組的數目(若存在),一般暫存器R3+1被遞減相同數量,且指令藉由設定例如條件碼2而完成。
‧LAAD旗標為1,且第三運算元中剩餘之位元組的數目在1與15之間。在此狀況下,執行以下各者:
-在右邊運用充足二進位零來填補剩餘短區塊之複本以形成使用GHASH而雜湊之完整區塊。
-將一般暫存器R3遞增經處理之第三運算元位元組的數目,且將一般暫存器R3+1中之第三運算元長度設定為0。
第三運算元之最後區塊的處理係如圖5C所說明。
‧LAAD旗標為1,且第三運算元中剩餘之位元組的數目為0。在此狀況下,其係模型相依的,而無論指令運用例如條件碼3而完成抑或處理運用第二運算元之編密及雜湊而繼續,如下文所描述。
在一般暫存器R3+1中之第三運算元長度最初為0且LAAD旗標為1時,不執行額外經鑑認資料雜湊。在此狀況下,其係模型相依的,而無論參數區塊中之T欄位404是否被提取且被無修改地儲存回。
4.編密及雜湊訊息:此為加密或解密訊息且基於經加密資料來計算訊息標籤之處理程序。取決於M位元(一般暫存器0之位元56),使用GCTR功能來加密或解密第二運算元之每一區塊。將各別經加密或經解密結果置放於第一運算元位置處,且使用GHASH功能來雜湊經加密運算元。GCTR及GHASH處理之組合被描述為GCM功能。
概念上,結果被獲得為好像處理在第一及第二運算元之左端處開始且逐區塊地向右繼續進行,如圖5D及圖5E所說明。然而,取決於模型,操作單元可並行地處理第一及第二運算元之多個區塊;因此,可未必按自左至右次序存取區塊。此外,可對區塊進行多次存取,且在加密操作之狀況下,第一運算元區塊可在其被儲存之後被重新提取。
GCTR功能使用由在左邊之初始計數器值(J0)412之最左邊12個位元組與在右邊之四位元組計數器(CV)402的串連形成的16位元組初始計數器區塊(ICB)。GCTR亦使用金鑰欄位(直接來自用於GCM-AES功能之參數區塊,或用於GCM-經加密-AES功能之經解密金鑰)。對於由GCTR編密之每一區塊,將計數器值(CV)遞增1;忽略計數器值之位元位置0的進位輸出。GCTR功能接著使用由與經遞增計數器值串連的J0之最左邊12個
位元組形成的16位元組計數器區塊(CB)。
GHASH功能使用經加密資料(亦即,在M為0時之經加密第一運算元結果或在M為1時之第二運算元)、來自參數區塊或來自前一步驟之標籤(T)欄位,及雜湊子金鑰。
在M位元為0時(亦即,在第二運算元正被加密時),完整區塊之GCM處理係如圖5D所說明。在M位元為1時(亦即,在第二運算元正被解密時),完整區塊之GCM處理係如圖5E所說明。
在一個實例中,用於加密或解密之編密及雜湊處理程序繼續直至以下各者中之任一者為真:
‧小於第二運算元之長度的區塊之CPU判定數目已被處理。在此狀況下,當前計數器值被置放至參數區塊之CV欄位402中,迄今為止而計算之訊息鑑認標籤被置放至參數區塊之T欄位404中,一般暫存器R1及R2被遞增經處理之第二運算元位元組的數目,一般暫存器R2+1被遞減相同數量,且指令藉由設定例如條件碼3而完成。
‧最後純文字/密碼文字旗標(LPC,一般暫存器0之位元55)為0,且第二運算元中剩餘之位元組的數目小於16。在此狀況下,當前計數器值被置放至參數區塊之CV欄位402中,迄今為止而計算之訊息鑑認標籤(若存在)被置放至參數區塊之T欄位404中,一般暫存器R1及R2被遞增經處理之第二運算元位元組的數目(若存在),一般暫存器R2+1被遞減相同數量,且指令藉由設定例如條件碼2而完成。
‧LPC旗標為1,且第二運算元中剩餘之位元組的數目在1與15之間。在此狀況下,執行以下各者:
-在右邊運用充足二進位零來填補第二運算元之剩餘位元組的複本
以形成使用GCTR演算法而編密之完整區塊,且將所得經加密或經解密區塊之最左邊位元組置放於第一運算元位置處。置放於第一運算元位置處之位元組的數目與第二運算元中剩餘之位元組的數目相同(亦即,小於16)。
-接著將GHASH演算法應用於密碼文字。在M為0時,至GHASH演算法之輸入包括儲存至第一運算元位置中的短區塊之複本,其在右邊運用充足二進位零予以填補以形成完整區塊。在M為1時,至GHASH演算法之輸入與至GCTR演算法之輸入相同(亦即,第二運算元之剩餘位元組的複本,其在右邊運用充足二進位零予以填補以形成完整區塊)。
-當前計數器值被置放至參數區塊之CV欄位402中,所得標籤值被置放於參數區塊中,一般暫存器R1及R2被遞增經處理之第二運算元位元組的數目,且一般暫存器R2+1被設定為0。
第二運算元之最後區塊的GCM處理係如圖5F所說明。
‧LPC旗標為1,且第二運算元中剩餘之位元組的數目為0。在此狀況下,其係模型相依的,而無論指令運用例如條件碼3而完成抑或運用最後訊息鑑認標籤雜湊及加密而繼續處理,如下文所描述。
5.最後訊息鑑認標籤雜湊及加密:此處理程序採取額外經鑑認資料及訊息的按位元計之總長度,使此總長度經受GHASH演算法,且接著將此總長度與經編密之初始計數器值合併以形成最終訊息鑑認標籤。使用GHASH功能來雜湊包含64位元總額外經鑑認資料長度(TAADL)與來自參數區塊之總純文字或密碼文字長度(TPCL)欄位之串連的128位元值。GHASH功能使用經串連長度欄位、如在編密及雜湊操作中計算之標籤(T)欄位,及雜湊子金鑰。
接著藉由GCTR演算法來處理GHASH之所得128位元輸出。注意,
不同於編密及雜湊操作,至GCTR之輸入計數器為來自參數區塊之初始計數器區塊(J0)欄位412。所得128位元值替換參數區塊中之標籤(T)欄位404,且指令運用例如條件碼0而完成。圖5G說明最後標籤值之雜湊及加密之一個實施例。
在一個實施例中,發出指令之程式負責供應準確TAADL及TPCL值(例如按位元計)。在一另外實施例中,程式可在開始訊息之處理程序時將TAADL及TPCL值設定為0,且CPU可隨著指令之一或多次重複執行處理訊息而更新此等欄位。
下文提供與指令相關之額外細節。
引起部分完成(例如條件碼3)的條件之偵測取決於模型,且每當執行指令時,該偵測就可為不同數目。區塊之CPU判定數目通常為非零。在某些異常情形中,此數目可為0,且條件碼(例如3)可在無進度之情況下被設定。然而,CPU預防此無進度狀況之無限重現。
若以下各者中之任一者為真,則結果係不可預測的:
‧第三運算元與可在額外經鑑認資料處理期間更新的參數區塊之任何部分破壞性地重疊。
‧LAAD旗標為1,且以下各者中之任一者為真:
-第二運算元與可在編密及雜湊期間更新的參數區塊之任何部分破壞性地重疊。
-第一運算元與可在編密及雜湊期間存取的參數區塊之任何部分破壞性地重疊。
-第一運算元與第二運算元破壞性地重疊,但該等運算元不指定相同位置。
假定自左至右執行處理,則運算元據稱在位置將在資料已移動至其中之後將用作源時破壞性地重疊。
下文指示由指令設定之各種條件碼之一個實例,以及基於LAAD及LPC旗標之所得第二及第三運算元長度:
解釋:
-不適用
†又,一般暫存器R1、R2及R3中之第一、第二及第三運算元位址不變
‡其係模型相依的,而無論CC3是否被設定用於此等條件(其與CC0條件相同)。
CC 條件碼
LAAD 最後額外經鑑認資料旗標,一般暫存器0之位元54
LPC 最後純文字/密碼文字旗標,一般暫存器0之位元55
第3 OpL 第三運算元長度
第2 OpL 第二運算元長度
儲存類型存取例外狀況可針對參數區塊中之任何位置被辨識,即使僅CV、T及H欄位係由指令儲存亦如此。
PER儲存改變事件可針對第一運算元位置及參數區塊之經儲存部分兩者被辨識。PER零位址偵測事件可針對第一、第二及第三運算元位置以及參數區塊(包括參數區塊之保留欄位)被辨識。在針對此等位置中之一或多者偵測到PER事件時,哪一位置在PER存取識別(PAID)及PER ASCE ID(AI)中被識別係不可預測的。
在PER儲存改變事件針對參數區塊被辨識時第一、第二或第三運算元位置之多少位元組已被處理係不可預測的。在儲存改變PER事件針對第一運算元位置被辨識時,少於4K額外位元組在該事件被報告之前儲存至第一運算元位置中。
在第三運算元長度最初為0時,不存取第三運算元,且分別在一般暫存器R3及R3+1中之第三運算元位址及第三運算元長度不會變更。在第二運算元長度最初為0時,不存取第二運算元,且分別在一般暫存器R2及R2+1中之第二運算元位址及第二運算元長度不會變更。然而,即使在第二及第三運算元長度兩者皆為0時仍可存取參數區塊。
在R1及R2欄位之內容相同時,指定暫存器之內容被遞增經處理之位元組的數目,而非經處理之位元組的數目之倍數。
如由此CPU、其他CPU及通道程式所觀測,對參數區塊及儲存運算元之參考可為多重存取參考,對此等儲存位置之存取未必係區塊並行的,且此等存取或參考之序列係未定義的。
在某些異常情形中,指令執行可在不更新暫存器以反映經處理之第一、第二及第三運算元之最後單元的情況下藉由設定條件碼3而完成。在此狀況下處理之單元之大小取決於情形及模型,但受到限制,使得已被處理且未被報告的第一及第二運算元之部分不會在儲存體中重疊;且已被處
理且未被報告的第一及第三運算元之部分不會在儲存體中重疊。在所有狀況下,對於經處理之所有第一運算元位置,適當時設定變更位元且報告PER儲存改變事件。
對於執行經加密密碼編譯金鑰與包裝金鑰驗證圖案暫存器之比較的功能,在比較引起失配且各別運算元之長度為非零時存取例外狀況及PER零位址偵測事件是否針對第一、第二及第三運算元被辨識係不可預測的。
存取例外狀況可針對大於在指令之單一執行中處理之部分的運算元之部分被報告;然而,存取例外狀況不會針對超出運算元之長度的位置亦不會針對超出正被處理之當前位置的大於4K位元組之位置被辨識。
在一個實例中,若發生以下各者中之任一者,則規格例外狀況被辨識且不採取其他動作:
1.一般暫存器0之位元57至63指定未指派或未安裝之功能碼。
2. R1、R2或R3欄位指定奇數編號暫存器或一般暫存器0。
3. R3欄位與R1或R2欄位指定同一暫存器。
4.功能碼為非零,且LPC旗標為1(指示純文字或密碼文字之最後區塊正被處理),但LAAD旗標為0(指示並非所有額外經鑑認資料皆已被處理)。
作為實例,所得條件碼:
0正常完成
1驗證圖案失配
2不完全處理(在LAAD旗標為0時剩餘第三運算元長度小於例如16,或在LPC旗標為0時剩餘第二運算元長度小於例如16)
3部分完成(超過模型相依極限)
實例程式例外狀況包括:
‧存取(提取、運算元2、運算元3、參數區塊欄位;儲存、運算元1、計數器值、雜湊子金鑰、標籤)
‧操作(若不安裝訊息安全性輔助延伸8)
‧規格
‧異動約束
另外,用於執行優先權之實例例外狀況/完成條件包括:
1.至7.優先權與用於一般狀況之程式中斷條件之優先權相同的例外狀況。
8.歸因於無效功能碼或無效暫存器數目之規格例外狀況。
9.歸因於在LAAD旗標為0時LPC旗標為1之規格例外狀況(在功能碼為非零時適用)。
10.A.1 對參數區塊之存取的存取例外狀況。
10.A.2.歸因於驗證圖案失配之條件碼1。
10.B 對第一、第二或第三運算元之存取的存取例外狀況。
11.歸因於第三運算元之部分處理的條件碼3。
12.歸因於在LAAD旗標為0時剩餘第三運算元長度小於例如16的條件碼2。
13.歸因於第二運算元之部分處理的條件碼3。
14.歸因於在LPC旗標為0時剩餘第二運算元長度小於例如16的條件碼2。
15.歸因於正常完成之條件碼0。
另外,在一或多個實施例中,以下各者適用:
在處理個別訊息時,在一個實例中,程式最初在參數區塊中設定以下欄位且不會改變此等欄位直至指令運用條件碼(例如0)而完成;否則,結果將不符合GCM標準。
a.計數器值(CV):CV欄位將運用初始計數器值(J0)欄位之最右邊4個位元組而初始化。
b.標籤(T):標籤欄位將被初始化為零。
c.雜湊子金鑰(H):對於KMA-GCM-AES功能(碼18至20),以下各者適用:
‧在HS旗標為1時,程式在H欄位中供應預計算出之雜湊子金鑰。子金鑰包含例如為0之16個位元組,其係使用AES演算法而加密。
‧在HS旗標為0時,CPU使用AES演算法及參數區塊中之金鑰欄位來加密例如為0之16個位元組,將結果儲存於H欄位中,且將HS旗標設定為1。
對於KM-經加密-AES功能(碼26至28),CPU計算雜湊子金鑰,且不改變H欄位及HS旗標。
d.初始計數器值(J0):初始計數器值係自由程式提供之初始化向量(IV)導出。若程式使用例如96位元IV,則其用以將IV儲存至J0欄位之最左邊12個位元組中,且將00000001十六進位儲存於J0欄位之最右邊位元組中。若程式使用具有不同長度之IV,則其用以使用GHASH演算法而在J0欄位中供應例如IV之16位元組雜湊值。
e.金鑰值(K)及包裝金鑰驗證圖案(WKaVP):為了適當地編密個別訊息,金鑰將對於指令之所有執行相同。對於KM-經加密-AFS功能,包裝金鑰驗證圖案欄位亦將保持不變。
在處理最後純文字或密碼文字區塊時(亦即,在LPC旗標為1時),參數區塊中之總額外經鑑認資料長度(TAADL)及總純文字/密碼文字長度(TPCL)欄位將含有用於整個訊息之各別額外經鑑認資料及純文字或密碼文字的按位元計之總長度。
程式負責比較經解密訊息之雜湊標籤與在訊息被加密時訊息之雜湊標籤以確保訊息之確實性。
LAAD及LPC旗標提供可用於在訊息之並非所有分量皆可用於指令之單一執行時編密及雜湊訊息的方式。舉例而言,若訊息之純文字或密碼文字部分跨越多個磁碟或磁帶記錄,且訊息之並非所有區塊皆已被讀取至儲存體中,則程式可藉由在LPC旗標被設定為0之情況下發出指令來處理訊息之較早區塊。在訊息之最終純文字或密碼文字區塊可用時,程式接著可藉由在LPC旗標被設定為1之情況下發出指令來完成訊息編密。
在歸因於LAAD或LPC旗標中之任一者或兩者為0而設定條件碼2時,含有運算元位址及長度之一般暫存器以及參數區塊經更新以指示迄今為止之進度。然而,不同於條件碼3(其中程式可僅僅分支回至指令以繼續操作),程式負責在必要時在分支回至指令之前更新運算元位址及長度以及LAAD及LPC旗標。在一個實例中,若程式回應於條件碼2而僅僅分支回至指令,則將產生非生產性程式迴路。
在設定條件碼3時,通常更新含有運算元位址及長度之一般暫存器以及參數區塊,使得程式可僅僅分支回至指令以繼續操作。
下文描述關於各種伽羅華/計數器模式功能之額外細節。此等細節僅僅為實例,且被描述於美國國家科學技術學會(NIST)特殊公開案800-38D之「區塊密碼操作模式推薦:伽羅華/計數器模式(GCM)及GMAC」中。
可作出變化,及/或可使用與伽羅華/計數器模式及/或其他密碼模式相關之其他功能。
為了理解以下功能,描述以下符號:
A 額外經鑑認資料。
C 密碼文字。
H 雜湊子金鑰。
ICB 初始計數器區塊。
IV 初始化向量。
K 區塊密碼金鑰。
P 純文字。
R 用於區塊乘法運算之演算法內的常數。
T 鑑認標籤。
t 鑑認標籤之位元長度。
0s 由s個「0」位元組成之位元字串。
CIPHK(X) 在金鑰K應用於區塊X之情況下的區塊密碼之前向密碼功能之輸出。
GCTRK(ICB,X) 在金鑰K應用於位元字串X與初始計數器區塊ICB之情況下的用於給定區塊密碼之GCTR功能之輸出。
GHASHH(X) 在雜湊子金鑰H應用於位元字串X之情況下的GHASH功能之輸出。
incs(X) 將位元字串X之最右邊s個位元(被視為整數之二進位表示)
遞增1模2s的輸出。
int(X) 位元字串X為二進位表示所針對之整數。
len(X) 位元字串X之位元長度。
LSBs(X) 由位元字串X之s個最右邊位元組成的位元字串。
MSBs(X) 由位元字串X之s個最左邊位元組成的位元字串。
x 不小於實數x之最小整數。
[x]s 作為s個位元之字串的非負整數x之二進位表示,其中x<2s。
X>>1 由捨棄位元字串X之最右邊位元且在左邊在前面加上「0」位元而產生的位元字串。
X∥Y 兩個位元字串X及Y之串連。
X⊕Y 相同長度之兩個位元字串X及Y之按位元互斥或。
X.Y 被視為某一二進位伽羅華欄位之元素的兩個區塊X及Y之乘積。
Xi 對於正整數i,在乘積「.」之情況下的X之i次冪
x.y 兩個整數x及y之乘積。
區塊之乘法(X.Y)之一個實例包括例如:
使R=11100001∥0120。
區塊X、Y。
區塊X.Y
1.使X0X1…X127表示X中之位元序列。
2.使Z0=0128及V0=Y。
3.對於i=0至127,如下計算區塊Zi+1及Vi+1:Zi+1=Zi[若xi=0,或]
Zi⊕Vi[若xi=1]
Vi+1=Vi>>1[若LSBi(Vi)=0,或]
(Vi>>1)⊕R[若LSBi(Vi)=1]
4.傳回Z128。
下文提供關於GCM編密功能之一個實例的另外細節:
具有128位元區塊大小之經核准區塊密碼CIPH;金鑰K;經支援輸入輸出長度之定義;與金鑰相關聯之經支援標籤長度t。
初始化向量IV(其長度被支援);純文字P(其長度被支援);額外經鑑認資料A(其長度被支援)。
密碼文字C;鑑認標籤T。
1.使H=CIPHK(0128)。
2.如下定義區塊J0:若len(IV)=96,則使J0=IV∥031∥1。
若len(IV)≠96,則使s=128.len(IV/128-len(IV),且使J0=GHASHH(IV∥0s+64∥[len(IV)]64)。
3.使C=GCTRK(inc32(J0),P)。
4.使u=128.len(C)/128-len(C),且使v=128.len(A)/128-len(A)
5.如下定義區塊S:S=GHASHH(A∥0v∥C∥0u∥[len(A)]64∥[len(C)]64)。
6.使T=MSBt(GCTRK(J0,S))。
7.傳回(C,T)。
下文描述GCM解密功能之一個實施例:
與上文針對編密所述相同
初始化向量IV;密碼文字C;額外經鑑認資料A;鑑認標籤T。
純文字P或非確實性指示FAIL。
1.若不支援IV、A或C之位元長度,或若len(T)≠t,則傳回FAIL。
2.使H=CIPHK(0128)。
3.如下定義區塊J0:若len(IV)=96,則使J0=IV∥031∥1。
若len(IV)≠96,則使s=128.len(IV/128-len(IV),且使J0=GHASHH(IV∥0s+64∥[len(IV)]64)。
4.使P=GCTRK(inc32(J0),C)。
5.使u=128.len(C)/128-len(C),且使v=128.len(A)/128-len(A)
6.如下定義區塊S:S=GHASHH(A∥0v∥C∥0u∥[len(A)]64∥[len(C)]64)。
7.使T'=MSBt(GCTRK(J0,S))。
8.若T=T',則傳回P,否則傳回FAIL。
下文描述伽羅華雜湊(GHASH)功能之一個實施例:
區塊H、雜湊子金鑰。
位元字串X,使得對於某一正整數m,len(X)=128m。
區塊GHASHH(X)。
1.使X1,X2,…,Xm-1,Xm表示區塊之唯一序列,使得X=X1∥X2∥…∥Xm-1∥Xm。
2.使Y0為「零區塊」0128(亦即,為0之128個位元)。
3.對於i=1,…,m,使Yi=(Yi-1⊕Xi).H。
4.傳回Ym。
另外,下文描述伽羅華計數器(GCTR)功能之一個實施例:
具有128位元區塊大小之經核准區塊密碼CIPH;金鑰K。
初始計數器區塊ICB。
任意長度之位元字串X。
位元長度len(X)之位元字串Y。
1.若X為空字串,則傳回空字串作為Y。
2.使n=len(X)/128。
3.使X1,X2,…,Xn-1,Xn*表示位元字串之唯一序列,使得X=X1∥X2∥…∥Xn-1∥Xn*;X1,X2,…,Xn-1為完整區塊。
4.使CB1=ICB。
5.對於i=2至n,使CBi=inc32(CBi-1)。
6.對於i=1至n-1,使Yi=Xi⊕CIPHK(CBi)。[對於除了最後區塊以外之所有完整區塊]
7.使Yn*=Xn*⊕MSBlen(Xn*)(CIPHK(CBn))。[對於最終完整或部分區塊]
8.使Y=Y1∥Y2∥…∥Yn*。
9.傳回Y。
圖6中展示具有鑑認指令之密碼訊息的圖示描繪。如所展示,具有鑑認指令之密碼訊息300包括:第一運算元600,其包括經編密結果(經加密或經解密);第二運算元602,其包括待編密(待加密或待解密)及待雜湊之訊息;及第三運算元604,其包括待鑑認(待雜湊)但未被編密之額外資料。
參考圖7A至圖7E來描述關於與具有鑑認指令之密碼訊息之一個實施例相關聯之處理的另外細節。
參看圖7A,最初,作出關於包括於由指令使用之一般暫存器0中之功能碼是否有效的判定,詢問700。若其並不有效,則可提供錯誤,步驟702,且指令之處理完成。否則,若功能碼有效,則作出關於第一、第二或第三暫存器欄位(亦即,R1、R2、R3)中指定之暫存器是否為奇數編號暫存器的另外判定,詢問704。若彼等暫存器中之一者為奇數編號暫存器,則在一個實例中提供錯誤,步驟706,且處理完成。否則,作出關於R3欄位中指定之暫存器是否等於R1欄位中指定之暫存器或R3欄位中指定之暫存器是否等於R2欄位中指定之暫存器的另外判定,詢問708。若R1或R2中指定之暫存器等於R3中指定之暫存器,則在一個實例中可指定錯誤,步驟710,且處理完成。否則,作出關於最後純文字/密碼文字旗標是否等於諸
如1之指定值及最後額外經鑑認資料旗標是否被設定為諸如0之經選擇值的另外檢查。若彼等兩者皆為真,則可提供錯誤,步驟714,且指令之處理完成。否則,若最後純文字/密碼文字控制項不等於1,且最後額外經鑑認資料控制項不等於0,則作出關於功能碼是否等於0的檢查,詢問716。若功能碼為0,則執行查詢功能且將有效功能儲存於參數區塊中,步驟718。在一個實例中設定為例如0之條件碼,步驟720。然而,若功能碼不為0,則處理繼續產生雜湊子金鑰,如參考圖7B所描述。
參看圖7B,對於不使用經加密金鑰之編密功能,程式可在參數區塊中供應其自己的雜湊子金鑰,或使指令產生雜湊子金鑰。對於使用經加密金鑰之編密功能,指令產生雜湊子金鑰,且忽略任何程式供應雜湊子金鑰。因此,在一個實施例中,作出關於功能碼是否指定未加密金鑰功能(亦即,功能碼小於或等於指定值,諸如20)的判定,詢問730。若功能碼指定未加密金鑰功能(亦即,功能碼小於或等於例如20),則作出關於程式是否已供應雜湊子金鑰的判定,詢問732。若程式尚未供應雜湊子金鑰(例如,HS控制項為0),則產生雜湊子金鑰,步驟734。舉例而言,H=AES(0128,Key)。另外,將雜湊標籤儲存於參數區塊(PL.H)中,且將雜湊子金鑰供應控制項(HS)設定為1,步驟736。(描述及圖中之PL係指參數區塊。)
返回至詢問732,若程式已供應雜湊子金鑰(例如,HS控制項為1),則處理繼續雜湊額外經鑑認資料,如參考圖7C所描述。
返回至詢問730,若功能碼指定使用經加密金鑰之功能(例如,功能碼大於20),則功能為包裝金鑰功能且計算H(例如,H=AES(0128,Key),步驟738,但並不儲存H,且處理繼續雜湊額外經鑑認資料,如參考圖7C
所描述。
參看圖7C,在一個實施例中,作出關於是否已存在模型相依逾時的判定,詢問740。在一個實例中,若已存在模型相依逾時,則處理運用為例如3之條件碼而終止,步驟742。然而,若尚未發生模型相依逾時,則作出關於運算元3之長度(Op3L)是否大於諸如16之指定值的判定,詢問744。若其大於16,則完整額外經鑑認資料區塊可用於處理,步驟746。舉例而言,參數區塊(PL.T)中之標籤404被設定為H.(PL.T⊕*Op3A),其中*指示Op3A為指向第三運算元之指標(Op3A)(亦即,參數區塊中之標籤欄位(T)與由R3指定之一般暫存器指向的任何儲存體進行互斥或運算);作為一實例,將16個位元組與運算元3之位址(Op3A)相加;且作為一實例,將16個位元組與運算元3之長度(Op3L)相減。Op3L為例如按位元組計的運算元3之長度。處理接著繼續詢問740。
返回至詢問744,若運算元3之長度不大於例如16之指定值,則作出旗標欄位之最後額外經鑑認資料控制項的判定,詢問750。若控制項之值為0,則在一個實施例中設定諸如條件碼2之條件碼,步驟752。此指示存在待處理之額外經鑑認資料。
返回至詢問750,若控制項為1,則作出運算元3之長度(Op3L)的另外檢查,詢問754。若長度大於0,則設定參數區塊之標籤404,例如,PL.T=H.(PL.T⊕(*Op3A[Op3L]∥zeros[16-Op3L]));將運算元3之位址遞增運算元3之長度;且將運算元3之長度設定為等於0,步驟756。處理接著繼續純文字/密碼文字處理,如參考圖7D所描述。另外,若運算元3之長度為0,詢問754,則處理繼續圖7D之純文字/密碼文字處理。
參看圖7D,作出關於是否已存在模型相依逾時的判定,詢問760。
若已存在模型相依逾時,則處理運用為例如3之條件碼而完成,步驟762。否則,作出關於運算元2之長度(Op2L)是否大於諸如16之指定值的判定,詢問764。若是,則CB=PL.J0[12]∥++PL.CV,其中++指示增量-參數區塊中之計數器值被遞增;且*Op1A=AES(Key,CB)⊕*Op2A;PL.T=H.(PL.T⊕(M?*Op2A:*Op1A)),步驟766。(在一個實例中,文字(M?*Op2A:*Op1A)指示作出關於M是真抑或假(1抑或0)之判定。若真,則*Op2A用作指向第二運算元中之輸入密碼文字的指標。若假,則*Op1A為指向運算元中之輸出密碼文字的指標。)另外,將運算元1之位址(Op1A)遞增例如16個位元組,將運算元2之位址(Op2A)遞增例如16個位元組,且將運算元2之長度(Op2L)遞減例如16個位元組,步驟766。處理接著繼續進行至詢問760。
返回至詢問764,若運算元2之長度不大於例如16之指定值,則作出旗標欄位之最後純文字/密碼文字控制項的檢查,詢問768。若旗標等於0,則設定例如條件碼2之指定條件碼,步驟770。此指示存在待處理之較多純文字/密碼文字。然而,若將最後純文字/密碼文字控制項設定為1,則作出關於運算元2之長度的另外判定,詢問772。若長度大於0,則CB=PL.J0[12]∥++PL.CV;且*Op1A=AES(PL.Key,CB)⊕(*Op2A[Op2L]∥zeros[16-Op2L);PL.T=H.(PL.T⊕(M?*Op2A:*Op1A[Op2L]∥zeros[16=Op2L])),步驟774。另外,將運算元1及運算元2之位址增加運算元2之長度,且接著將運算元2之長度設定為0,步驟774。此後,或若運算元2之長度為0,詢問772,則處理繼續最終標籤處理,如參考圖7E所描述。
參看圖7E,將標籤設定為等於H.(PL.T⊕(PL.TAADL∥
PL.TPCL),其中對完整額外經鑑認資料位元長度及完整密碼文字位元長度執行雜湊功能(例如GHASH)。接著,將標籤設定為等於AES(PL.Key,PL.J0)⊕PL.T,其中最終雜湊值與初始經加密計數器(J0)進行互斥或運算以形成標籤結果,步驟780。(亦即,先前計算出之標籤與兩個位元長度欄位之串連進行互斥或運算,且被GHASH。接著,J0欄位被加密,且與上述計算之結果進行互斥或運算以形成最終標籤。)處理接著完成,且設定為例如0之條件碼,步驟782。
本文中描述在單一指令(例如單一架構式機器指令)中組合雜湊及編密的能力,該單一指令進一步包括用以確保可適當地重新執行可中斷指令以繼續處理訊息之控制項。下文描述重新執行之一個原因。
在一個實施中,由z/架構定義之編密指令使用64位元暫存器來定義訊息之長度;因此,訊息之長度可高達18,446,744,073,709,551,616(16E)個位元組。GCM規格將訊息之長度限定為68,719,476,736(64G)個位元組;亦即,32位元計數器之最大值乘128位元(16位元組)訊息區塊之大小。然而,為了防止極其長時間執行指令,將任何個別編密指令之處理限於小得多的數量-最大通常為4,096個位元組。在編密指令完成時,其基於經處理位元組之數目來更新指定訊息運算元之位址及長度的暫存器。若指令僅部分地處理訊息,則其藉由設定指示性條件碼(例如CC3)而完成。若指令完全地處理訊息,則其藉由設定替代指示性條件碼(例如CC0)而完成。
如本文中所描述,具有鑑認指令之密碼訊息可容納極大的訊息,但在單一執行中僅處理訊息之一部分。具有鑑認指令之密碼訊息基於例如兩個程式指定控制項與含有額外經鑑認資料及訊息之運算元之剩餘長度的組
合來區別其在額外經鑑認資料雜湊以及訊息編密及雜湊中之進度:
‧最後額外經鑑認資料(LAAD)控制項指示程式是否已供應整個額外經鑑認資料運算元。
‧最後純文字/密碼文字(LPC)旗標指示程式是否已供應待編密及鑑認之整個訊息文字。
基於LAAD及LPC控制項之組合,以及一般暫存器中指定各別運算元之長度的值,指令能夠對輸入執行一些檢查,且拒絕不一致的控制項。
藉由在單一指令中組合雜湊及編密,會避免對雜湊額外經鑑認資料之單獨指令執行;會避免用於雜湊及編密之訊息運算元的多次提取;且可由硬體共處理器有效地執行組合式操作。藉由使用單一指令,程式不必單獨地發出指令來加密零以形成雜湊子金鑰,雜湊TAADL及TPCL,且使用J0作為計數器來加密及雜湊最終標籤。
參考圖8A至圖8B來描述促進運算環境中之處理之一個實施例,該處理包括執行具有鑑認指令之密碼訊息。
參看圖8A,在一個實施例中,獲得用以執行包括編密及鑑認之複數個操作之指令,步驟800,且執行指令,步驟802。執行包括例如:編密由指令提供之一個資料集合以獲得經編密資料,步驟804;將經編密資料置放於指定位置中,步驟806;鑑認由指令提供之額外資料集合,鑑認產生訊息鑑認標籤之至少一部分,步驟808;及將訊息鑑認標籤之至少一部分儲存於經選擇位置中,步驟810。在一另外實施例中,執行進一步包括鑑認經編密資料,步驟812。
在一個實例中,額外資料集合包括一或多個資料區塊中之至少一個資料區塊(814),且執行進一步包括:判定額外資料集合是否包括待鑑認
之最後資料區塊,步驟816;及基於額外資料集合是否包括待鑑認之最後資料區塊來執行鑑認,步驟818。
判定包括例如檢查指令之最後額外經鑑認資料控制項以判定額外資料集合是否包括待鑑認之最後資料區塊,步驟820。
另外,在一個實例中,參看圖8B,一個資料集合包括一或多個資料區塊中之至少一個資料區塊(822),且執行進一步包括:判定一個資料集合是否包括待編密之最後資料區塊,步驟824;及基於一個資料集合是否包括待編密之最後資料區塊來執行編密,步驟826。
判定包括例如檢查指令之最後文字控制項以判定一個資料集合是否包括待編密之最後資料區塊,步驟828。
作為實例,編密包括:基於由指令提供之控制項被設定為經選擇值來加密一個資料集合,步驟830;或基於由指令提供之控制項被設定為特定值來解密一個資料集合,步驟832。
在一個實施例中,額外資料集合之鑑認包括使用雜湊技術以產生訊息鑑認標籤之至少一部分,步驟834。另外,在一個實施例中,基於指令之雜湊子金鑰供應控制項被設定為經選擇值,雜湊技術使用儲存於由指令使用之參數區塊中之雜湊子金鑰,步驟836。
作為一實例,一個資料集合包括訊息之至少一部分,且額外資料集合包括用於訊息之路由資訊840。
如本文中所描述,在一個實例中,提供經組態以執行以下操作之單一指令:產生額外經鑑認資料之訊息摘要(亦即,雜湊);編密訊息;及產生經加密訊息之訊息摘要。在其他實例中,可能不提供功能中之一或多者。
在一個實例中,指令使用:HS旗標,其允許程式指示其已提供其自己的雜湊子金鑰。此在使用相同雜湊子金鑰之情況下提供效能益處。針對經加密金鑰功能計算(且不儲存)雜湊子金鑰。
LAAD旗標,其指示額外經鑑認資料之最終區塊已被提供。此允許單一指令處置額外經鑑認資料之第一、中間及最終區塊。
LPC旗標,其指示純文字/密碼文字之最終區塊已被提供。此允許單一指令處置純文字/密碼文字之第一、中間及最終區塊;且結合LAAD而提供針對指令使用情況之某一有效性檢查。
本發明之態樣與電腦技術緊密相關,從而改良運算環境內之處理,包括但不限於與安全性相關聯之處理,諸如與資料加密/解密及/或鑑認等等相關聯之處理。
許多變化係可能的,包括但不限於使用諸如資料加密標準(DES)或其他之其他加密技術,及/或諸如安全雜湊演算法(Secure Hash Algorithm;SHA)-2、SHA-3或其他之其他雜湊技術。
本發明可為處於任何可能技術細節整合層級之系統、方法及/或電腦程式產品。電腦程式產品可包括電腦可讀儲存媒體(或若干電腦可讀儲存媒體),其上具有電腦可讀程式指令以用於致使處理器實行本發明之態樣。
電腦可讀儲存媒體可為有形裝置,其可保持及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為例如但不限於電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置,或前述各者之任何合適組合。電腦可讀儲存媒體之更特定實例之非窮盡性清單包括以下
各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可擦除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)、記憶棒、軟碟、諸如被記錄有指令之溝槽中之打孔卡或凸起結構的機械編碼裝置,及前述各者之任何合適組合。如本文中所使用,不應將電腦可讀儲存媒體本身認作暫時信號,諸如無線電波或其他自由傳播電磁波、傳播通過波導或其他傳輸媒體之電磁波(例如傳遞通過光纜之光脈衝),或傳輸通過導線之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別運算/處理裝置或經由例如網際網路、區域網路、廣域網路及/或無線網路之網路而下載至外部電腦或外部儲存裝置。網路可包含銅傳輸纜線、光學傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道器電腦及/或邊緣伺服器。每一運算/處理裝置中之網路配接卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以供儲存於各別運算/處理裝置內之電腦可讀儲存媒體中。
用於實行本發明之操作的電腦可讀程式指令可為以一或多種程式設計語言之任何組合而撰寫之組譯器指令、指令集架構(ISA)指令、機器指令、機器相依指令、微碼、韌體指令、狀態設定資料、用於積體電路系統之組態資料,或原始程式碼或目標程式碼,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言,及諸如「C」程式設計語言或相似程式設計語言之程序性程式設計語言。電腦可讀程式指令可完全地在使用者電腦上執行,部分地在使用者電腦上執行,作為獨立式套裝軟體而執行,部分地在使用者電腦上且部分地在遠端電腦
上執行,或完全地在遠端電腦或伺服器上執行。在後一情境中,遠端電腦可經由包括區域網路(LAN)或廣域網路(WAN)的任何類型之網路而連接至使用者電腦,或可對外部電腦進行連接(例如經由使用網際網路服務提供者之網際網路)。在一些實施例中,包括例如可程式化邏輯電路系統、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA)之電子電路系統可藉由利用電腦可讀程式指令之狀態資訊來個人化電子電路系統而執行電腦可讀程式指令,以便執行本發明之態樣。
本文中參考根據本發明之實施例的方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖來描述本發明之態樣。應理解,可藉由電腦可讀程式指令來實施流程圖說明及/或方塊圖之每一區塊,以及流程圖說明及/或方塊圖中之區塊組合。
可將此等電腦可讀程式指令提供至一般用途電腦、特殊用途電腦或其他可程式化資料處理設備之處理器以產生一機器,使得經由該電腦或其他可程式化資料處理設備之處理器而執行之指令建立用於實施該或該等流程圖及/或方塊圖區塊中所指定之功能/動作的方式。亦可將此等電腦可讀程式指令儲存於一電腦可讀儲存媒體中,其可指導電腦、可程式化資料處理設備及/或其他裝置以特定方式起作用,使得被儲存有指令之電腦可讀儲存媒體包含一製品,該製品包括實施該或該等流程圖及/或方塊圖區塊中所指定之功能/動作之態樣。
亦可將電腦可讀程式指令載入至電腦、其他可程式資料處理設備或其他裝置上,以致使在該電腦、其他可程式化設備或其他裝置上執行一系列操作步驟以產生一電腦實施處理程序,使得在該電腦、其他可程式化設備或其他裝置上執行之指令實施該或該等流程圖及/或方塊圖區塊中所指
定之功能/動作。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例的系統、方法及電腦程式產品之可能實施之架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示指令之模組、區段或部分,其包含用於實施一或多個指定邏輯功能之一或多個可執行指令。在一些替代實施中,區塊中所提及之功能可能不按諸圖中所提到之次序發生。舉例而言,取決於所涉及之功能性,被連續地展示之兩個區塊事實上可實質上並行地執行,或該等區塊有時可以相反次序執行。亦應注意,可由執行指定功能或動作或實行特殊用途硬體及電腦指令之組合的基於特殊用途硬體之系統實施方塊圖及/或流程圖說明之每一區塊,以及方塊圖及/或流程圖說明中之區塊組合。
除了上述情形以外,供應消費者環境之管理的服務提供者亦可提供、供應、部署、管理、服務等等一或多個態樣。舉例而言,服務提供者可建立、維持、支援等等電腦程式碼及/或電腦基礎結構,其執行用於一或多個消費者之一或多個態樣。作為回報,作為實例,服務提供者可依照訂用及/或費用合約而自消費者接收付款。另外或替代地,服務提供者可自向一或多個第三方廣告內容之銷售接收付款。
在一個態樣中,可部署用於執行一或多個實施例之應用程式。作為一個實例,應用程式之部署包含提供可操作以執行一或多個實施例之電腦基礎結構。
作為一另外態樣,可部署運算基礎架構,包含將電腦可讀程式碼整合至運算系統中,其中程式碼結合運算系統而能夠執行一或多個實施例。
作為又一態樣,可提供用於整合運算基礎結構之處理程序,包含將
電腦可讀程式碼整合至電腦系統中。電腦系統包含電腦可讀媒體,其中電腦媒體包含一或多個實施例。程式碼結合電腦系統而能夠執行一或多個實施例。
儘管上文描述各種實施例,但其僅為實例。舉例而言,其他架構之運算環境可用以併有及使用一或多個實施例。另外,可使用不同指令、指令格式、指令欄位及/或指令值。許多變化係可能的。
另外,可受益於及使用其他類型之運算環境。作為一實例,可使用適合於儲存及/或執行程式碼之資料處理系統,其包括直接或經由系統匯流排而間接耦接至記憶體元件之至少兩個處理器。記憶體元件包括例如在程式碼之實際執行期間使用之本機記憶體、大容量儲存體,及提供至少某一程式碼之臨時儲存以便縮減在執行期間必須自大容量儲存體擷取程式碼之次數的快取記憶體。
輸入/輸出或I/O裝置(包括但不限於鍵盤、顯示器、指標裝置、DASD、磁帶、CD、DVD、隨身碟(Thumb Drive)及其他記憶體媒體等等)可直接或經由介入之I/O控制器而耦接至系統。網路配接器亦可耦接至系統以使資料處理系統能夠變得經由介入之私用或公用網路而耦接至其他資料處理系統或遠端印表機或儲存裝置。數據機、纜線數據機及乙太網路卡僅僅為幾種可用類型之網路配接器。
本文中所使用之術語係僅出於描述特定實施例之目的且並不意欲為限制性的。如本文中所使用,除非上下文另有清晰指示,否則單數形式「一」及「該」意欲亦包括複數形式。應進一步理解,術語「包含(comprises及/或comprising)」在用於本說明書中時指定所陳述之特徵、整體、步驟、操作、元件及/或組件之存在,但並不排除一或多個其他特
徵、整體、步驟、操作、元件、組件及/或其群組之存在或添加。
以下申請專利範圍中之所有構件或步驟加功能元件之對應結構、材料、動作及等效者(若存在)意欲包括用於結合如特定地所主張之其他所主張元件來執行功能的任何結構、材料或動作。已出於說明及描述之目的而呈現一或多個實施例之描述,但其並不意欲為窮盡性的或限於所揭示之形式。許多修改及變化對於一般技術者而言將顯而易見。選擇及描述實施例以便最佳地解釋各種態樣及實際應用,且使一般技術者能夠理解各種實施例及適於所預期之特定用途的各種修改。
Claims (20)
- 一種用於促進一運算環境中之處理之電腦程式產品,該電腦程式產品包含: 一電腦可讀儲存媒體,其可由一處理電路讀取且儲存用於由該處理電路執行以用於執行一方法之指令,該方法包含: 獲得用以執行複數個操作之一指令,該複數個操作包括編密及鑑認;及 執行該指令,該執行包括: 編密由該指令提供之一個資料集合以獲得經編密資料; 將該經編密資料置放於一指定位置中; 鑑認由該指令提供之一額外資料集合,該鑑認產生一訊息鑑認標籤之至少一部分;及 將該訊息鑑認標籤之該至少一部分儲存於一經選擇位置中。
- 如請求項1之電腦程式產品,其中該執行進一步包含鑑認該經編密資料。
- 如請求項1之電腦程式產品,其中該額外資料集合包括一或多個資料區塊中之至少一個資料區塊,且其中該執行進一步包括: 判定該額外資料集合是否包括待鑑認之一最後資料區塊;及 基於該額外資料集合是否包括待鑑認之該最後資料區塊來執行該鑑認。
- 如請求項3之電腦程式產品,其中該判定包含檢查該指令之一最後額外經鑑認資料控制項以判定該額外資料集合是否包括待鑑認之該最後資料區塊。
- 如請求項1之電腦程式產品,其中該一個資料集合包括一或多個資料區塊中之至少一個資料區塊,且其中該執行進一步包括: 判定該一個資料集合是否包括待編密之一最後資料區塊;及 基於該一個資料集合是否包括待編密之該最後資料區塊來執行該編密。
- 如請求項5之電腦程式產品,其中該判定包含檢查該指令之一最後文字控制項以判定該一個資料集合是否包括待編密之該最後資料區塊。
- 如請求項1之電腦程式產品,其中該編密包括基於由該指令提供之一控制項被設定為一經選擇值來加密該一個資料集合。
- 如請求項1之電腦程式產品,其中該編密包括基於由該指令提供之一控制項被設定為一特定值來解密該一個資料集合。
- 如請求項1之電腦程式產品,其中該額外資料集合之該鑑認包括使用一雜湊技術以產生該訊息鑑認標籤之該至少一部分。
- 如請求項9之電腦程式產品,其中基於該指令之一雜湊子金鑰供應控制項被設定為一經選擇值,該雜湊技術使用儲存於由該指令使用之一參數區塊中之一雜湊子金鑰。
- 如請求項1之電腦程式產品,其中該一個資料集合包括一訊息之至少一部分,且該額外資料集合包括用於該訊息之路由資訊。
- 一種用於促進一運算環境中之處理之電腦系統,該電腦系統包含: 一記憶體;及 一處理器,其與該記憶體通信,其中該電腦系統經組態以執行一方法,該方法包含: 獲得用以執行複數個操作之一指令,該複數個操作包括編密及鑑認;及 執行該指令,該執行包括: 編密由該指令提供之一個資料集合以獲得經編密資料; 將該經編密資料置放於一指定位置中; 鑑認由該指令提供之一額外資料集合,該鑑認產生一訊息鑑認標籤之至少一部分;及 將該訊息鑑認標籤之該至少一部分儲存於一經選擇位置中。
- 如請求項12之電腦系統,其中該執行進一步包含鑑認該經編密資料。
- 如請求項12之電腦系統,其中該額外資料集合包括一或多個資料區塊中之至少一個資料區塊,且其中該執行進一步包括: 判定該額外資料集合是否包括待鑑認之一最後資料區塊,該判定檢查該指令之一最後額外經鑑認資料控制項以判定該額外資料集合是否包括待鑑認之該最後資料區塊;及 基於該額外資料集合是否包括待鑑認之該最後資料區塊來執行該鑑認。
- 如請求項12之電腦系統,其中該一個資料集合包括一或多個資料區塊中之至少一個資料區塊,且其中該執行進一步包括: 判定該一個資料集合是否包括待編密之一最後資料區塊,該判定檢查該指令之一最後文字控制項以判定該一個資料集合是否包括待編密之該最後資料區塊;及 基於該一個資料集合是否包括待編密之該最後資料區塊來執行該編密。
- 如請求項12之電腦系統,其中該額外資料集合之該鑑認包括使用一雜湊技術以產生該訊息鑑認標籤之該至少一部分,且其中基於該指令之一雜湊子金鑰供應控制項被設定為一經選擇值,該雜湊技術使用儲存於由該指令使用之一參數區塊中之一雜湊子金鑰。
- 一種促進一運算環境中之處理之電腦實施方法,該電腦實施方法包含: 由一處理器獲得用以執行複數個操作之一指令,該複數個操作包括編密及鑑認;及 執行該指令,該執行包括: 編密由該指令提供之一個資料集合以獲得經編密資料; 將該經編密資料置放於一指定位置中; 鑑認由該指令提供之一額外資料集合,該鑑認產生一訊息鑑認標籤之至少一部分;及 將該訊息鑑認標籤之該至少一部分儲存於一經選擇位置中。
- 如請求項17之電腦實施方法,其中該執行進一步包含鑑認該經編密資料。
- 如請求項17之電腦實施方法,其中該額外資料集合包括一或多個資料區塊中之至少一個資料區塊,且其中該執行進一步包括: 判定該額外資料集合是否包括待鑑認之一最後資料區塊,該判定檢查該指令之一最後額外經鑑認資料控制項以判定該額外資料集合是否包括待鑑認之該最後資料區塊;及 基於該額外資料集合是否包括待鑑認之該最後資料區塊來執行該鑑認。
- 如請求項17之電腦實施方法,其中該一個資料集合包括一或多個資料區塊中之至少一個資料區塊,且其中該執行進一步包括: 判定該一個資料集合是否包括待編密之一最後資料區塊,該判定檢查該指令之一最後文字控制項以判定該一個資料集合是否包括待編密之該最後資料區塊;及 基於該一個資料集合是否包括待編密之該最後資料區塊來執行該編密。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/292,377 | 2016-10-13 | ||
US15/292,377 US9680653B1 (en) | 2016-10-13 | 2016-10-13 | Cipher message with authentication instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201820816A TW201820816A (zh) | 2018-06-01 |
TWI642294B true TWI642294B (zh) | 2018-11-21 |
Family
ID=59009411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106134850A TWI642294B (zh) | 2016-10-13 | 2017-10-12 | 具有鑑認指令之密碼訊息之電腦程式產品、系統及方法 |
Country Status (21)
Country | Link |
---|---|
US (1) | US9680653B1 (zh) |
EP (1) | EP3526927B1 (zh) |
JP (1) | JP7116050B2 (zh) |
KR (1) | KR102259962B1 (zh) |
CN (1) | CN109845182B (zh) |
AU (1) | AU2017341251B2 (zh) |
BR (1) | BR112019007567B8 (zh) |
CA (1) | CA3037231C (zh) |
DK (1) | DK3526927T3 (zh) |
ES (1) | ES2863676T3 (zh) |
HU (1) | HUE054035T2 (zh) |
IL (1) | IL265553B (zh) |
LT (1) | LT3526927T (zh) |
MX (1) | MX371225B (zh) |
PL (1) | PL3526927T3 (zh) |
PT (1) | PT3526927T (zh) |
RU (1) | RU2727152C1 (zh) |
SI (1) | SI3526927T1 (zh) |
TW (1) | TWI642294B (zh) |
WO (1) | WO2018069080A1 (zh) |
ZA (1) | ZA201902292B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015156020A1 (ja) * | 2014-04-10 | 2015-10-15 | 富士電機株式会社 | 情報処理装置、プログラム及び記憶媒体 |
US11251965B2 (en) * | 2017-04-17 | 2022-02-15 | Nec Corporation | Authentication tag generation apparatus, authentication tag verification apparatus, method and program |
CN111052670B (zh) * | 2017-09-01 | 2024-02-09 | 三菱电机株式会社 | 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质 |
JP7107381B2 (ja) * | 2018-09-27 | 2022-07-27 | 日本電気株式会社 | Macタグリスト生成装置、macタグリスト検証装置、集約mac検証システム及び方法 |
US11764940B2 (en) | 2019-01-10 | 2023-09-19 | Duality Technologies, Inc. | Secure search of secret data in a semi-trusted environment using homomorphic encryption |
US11303456B2 (en) * | 2019-02-15 | 2022-04-12 | International Business Machines Corporation | Compute digital signature authentication sign instruction |
US11075763B2 (en) * | 2019-02-15 | 2021-07-27 | International Business Machines Corporation | Compute digital signature authentication sign with encrypted key instruction |
US11108567B2 (en) * | 2019-02-15 | 2021-08-31 | International Business Machines Corporation | Compute digital signature authentication verify instruction |
US11917067B2 (en) * | 2019-12-28 | 2024-02-27 | Intel Corporation | Apparatuses, methods, and systems for instructions for usage restrictions cryptographically tied with data |
US20230077946A1 (en) * | 2020-02-12 | 2023-03-16 | FortifyIQ, Inc. | Methods and ip cores for reducing vulnerability to hardware attacks and/or improving processor performance |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200531493A (en) * | 2003-11-27 | 2005-09-16 | Nagracard Sa | Method for authenticating applications |
US20060126835A1 (en) * | 2004-12-13 | 2006-06-15 | Kim Kwang O | High-speed GCM-AES block cipher apparatus and method |
CN101053273A (zh) * | 2004-09-08 | 2007-10-10 | 高通股份有限公司 | 用于采用修改的消息认证代码的相互认证的方法、设备和系统 |
US20080214300A1 (en) * | 2000-12-07 | 2008-09-04 | Igt | Methods for electronic data security and program authentication |
US20160005032A1 (en) * | 2012-11-28 | 2016-01-07 | Hoverkey Ltd. | Method and system of providing authentication of user access to a computer resource via a mobile device using multiple separate security factors |
TW201635186A (zh) * | 2015-02-13 | 2016-10-01 | 系微股份有限公司 | 使用憑證導出之加密密鑰改良韌體服務安全性的計算裝置之系統及方法 |
CN106066958A (zh) * | 2015-04-21 | 2016-11-02 | 国际商业机器公司 | 用户计算机的认证 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63271567A (ja) * | 1987-04-30 | 1988-11-09 | Hitachi Ltd | 非対称密結合マルチプロセツサシステム |
KR0177655B1 (ko) * | 1995-11-22 | 1999-05-15 | 배순훈 | 긴 문자열에 적합한 암호화 및 해독화 방법 |
US6983366B1 (en) * | 2000-02-14 | 2006-01-03 | Safenet, Inc. | Packet Processor |
US6948067B2 (en) * | 2002-07-24 | 2005-09-20 | Qualcomm, Inc. | Efficient encryption and authentication for data processing systems |
US7703128B2 (en) | 2003-02-13 | 2010-04-20 | Microsoft Corporation | Digital identity management |
US7159122B2 (en) | 2003-05-12 | 2007-01-02 | International Business Machines Corporation | Message digest instructions |
DE10349580A1 (de) * | 2003-10-24 | 2005-05-25 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Operandenverarbeitung in einer Prozessoreinheit |
GB2430593B8 (en) | 2004-04-22 | 2008-07-10 | Fortress Gb Ltd | Accelerated throughput synchronised word stream cipher, message authenticator and zero-knowledge output random number generator |
JP2007006184A (ja) * | 2005-06-24 | 2007-01-11 | Nippon Telegr & Teleph Corp <Ntt> | 暗号処理装置及び認証アプリケーションプログラム |
GB2443244A (en) * | 2006-10-05 | 2008-04-30 | Hewlett Packard Development Co | Authenticated Encryption Method and Apparatus |
US8340280B2 (en) * | 2008-06-13 | 2012-12-25 | Intel Corporation | Using a single instruction multiple data (SIMD) instruction to speed up galois counter mode (GCM) computations |
US9851969B2 (en) * | 2010-06-24 | 2017-12-26 | International Business Machines Corporation | Function virtualization facility for function query of a processor |
US8775794B2 (en) | 2010-11-15 | 2014-07-08 | Jpmorgan Chase Bank, N.A. | System and method for end to end encryption |
GB2497070B (en) * | 2011-11-17 | 2015-11-25 | Advanced Risc Mach Ltd | Cryptographic support instructions |
US8873750B2 (en) * | 2013-03-14 | 2014-10-28 | International Business Machines Corporation | Instruction for performing a pseudorandom number generate operation |
US10038550B2 (en) * | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
WO2015156020A1 (ja) * | 2014-04-10 | 2015-10-15 | 富士電機株式会社 | 情報処理装置、プログラム及び記憶媒体 |
KR101613146B1 (ko) * | 2015-03-24 | 2016-04-18 | 주식회사 티맥스데이터 | 데이터베이스 암호화 방법 |
-
2016
- 2016-10-13 US US15/292,377 patent/US9680653B1/en active Active
-
2017
- 2017-10-02 PT PT177806973T patent/PT3526927T/pt unknown
- 2017-10-02 WO PCT/EP2017/074971 patent/WO2018069080A1/en unknown
- 2017-10-02 CA CA3037231A patent/CA3037231C/en active Active
- 2017-10-02 KR KR1020197013129A patent/KR102259962B1/ko active IP Right Grant
- 2017-10-02 AU AU2017341251A patent/AU2017341251B2/en active Active
- 2017-10-02 MX MX2019003604A patent/MX371225B/es active IP Right Grant
- 2017-10-02 LT LTEP17780697.3T patent/LT3526927T/lt unknown
- 2017-10-02 EP EP17780697.3A patent/EP3526927B1/en active Active
- 2017-10-02 RU RU2019101774A patent/RU2727152C1/ru active
- 2017-10-02 CN CN201780063690.7A patent/CN109845182B/zh active Active
- 2017-10-02 DK DK17780697.3T patent/DK3526927T3/da active
- 2017-10-02 HU HUE17780697A patent/HUE054035T2/hu unknown
- 2017-10-02 ES ES17780697T patent/ES2863676T3/es active Active
- 2017-10-02 BR BR112019007567A patent/BR112019007567B8/pt active IP Right Grant
- 2017-10-02 JP JP2019517913A patent/JP7116050B2/ja active Active
- 2017-10-02 SI SI201730659T patent/SI3526927T1/sl unknown
- 2017-10-02 PL PL17780697T patent/PL3526927T3/pl unknown
- 2017-10-12 TW TW106134850A patent/TWI642294B/zh active
-
2019
- 2019-03-22 IL IL265553A patent/IL265553B/en active IP Right Grant
- 2019-04-11 ZA ZA201902292A patent/ZA201902292B/en unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080214300A1 (en) * | 2000-12-07 | 2008-09-04 | Igt | Methods for electronic data security and program authentication |
TW200531493A (en) * | 2003-11-27 | 2005-09-16 | Nagracard Sa | Method for authenticating applications |
CN101053273A (zh) * | 2004-09-08 | 2007-10-10 | 高通股份有限公司 | 用于采用修改的消息认证代码的相互认证的方法、设备和系统 |
US20060126835A1 (en) * | 2004-12-13 | 2006-06-15 | Kim Kwang O | High-speed GCM-AES block cipher apparatus and method |
US20160005032A1 (en) * | 2012-11-28 | 2016-01-07 | Hoverkey Ltd. | Method and system of providing authentication of user access to a computer resource via a mobile device using multiple separate security factors |
TW201635186A (zh) * | 2015-02-13 | 2016-10-01 | 系微股份有限公司 | 使用憑證導出之加密密鑰改良韌體服務安全性的計算裝置之系統及方法 |
CN106066958A (zh) * | 2015-04-21 | 2016-11-02 | 国际商业机器公司 | 用户计算机的认证 |
Also Published As
Publication number | Publication date |
---|---|
TW201820816A (zh) | 2018-06-01 |
DK3526927T3 (da) | 2021-03-22 |
KR20190059965A (ko) | 2019-05-31 |
US9680653B1 (en) | 2017-06-13 |
WO2018069080A1 (en) | 2018-04-19 |
CN109845182A (zh) | 2019-06-04 |
SI3526927T1 (sl) | 2021-04-30 |
AU2017341251A1 (en) | 2019-04-04 |
ES2863676T3 (es) | 2021-10-11 |
MX2019003604A (es) | 2019-06-17 |
CA3037231A1 (en) | 2018-04-19 |
PL3526927T3 (pl) | 2021-08-16 |
CA3037231C (en) | 2024-06-04 |
HUE054035T2 (hu) | 2021-08-30 |
CN109845182B (zh) | 2022-04-26 |
KR102259962B1 (ko) | 2021-06-03 |
BR112019007567B1 (pt) | 2022-07-05 |
IL265553B (en) | 2021-04-29 |
LT3526927T (lt) | 2021-03-25 |
BR112019007567B8 (pt) | 2022-08-09 |
ZA201902292B (en) | 2019-11-27 |
EP3526927B1 (en) | 2021-02-17 |
BR112019007567A2 (pt) | 2019-07-02 |
JP7116050B2 (ja) | 2022-08-09 |
IL265553A (en) | 2019-05-30 |
PT3526927T (pt) | 2021-03-25 |
MX371225B (es) | 2020-01-09 |
RU2727152C1 (ru) | 2020-07-21 |
AU2017341251B2 (en) | 2020-10-01 |
JP2019535036A (ja) | 2019-12-05 |
EP3526927A1 (en) | 2019-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI642294B (zh) | 具有鑑認指令之密碼訊息之電腦程式產品、系統及方法 | |
TWI705352B (zh) | 具有金鑰雜湊訊息識別碼之處理器,方法,系統及指令 | |
JP6177355B2 (ja) | 擬似乱数生成操作を実施するための命令 | |
JP6395737B2 (ja) | 擬似乱数シード操作を実施するための命令 | |
TWI773960B (zh) | 用於以加密金鑰指令計算數位簽章驗證標記之電腦程式產品、電腦系統及電腦實施方法 | |
US8036379B2 (en) | Cryptographic processing | |
EP3519941B1 (en) | Instruction to provide true random numbers | |
CN109844750B (zh) | 填充操作状态确定 | |
TWI811514B (zh) | 用於計算數位簽章認證標記指令之電腦程式產品、電腦系統及電腦實施方法 | |
TW202032398A (zh) | 計算數位簽章認證驗證指令 |