TW202034162A - 執行密碼計算純量乘法指令 - Google Patents
執行密碼計算純量乘法指令 Download PDFInfo
- Publication number
- TW202034162A TW202034162A TW109101193A TW109101193A TW202034162A TW 202034162 A TW202034162 A TW 202034162A TW 109101193 A TW109101193 A TW 109101193A TW 109101193 A TW109101193 A TW 109101193A TW 202034162 A TW202034162 A TW 202034162A
- Authority
- TW
- Taiwan
- Prior art keywords
- scalar multiplication
- source component
- scalar
- instruction
- point
- Prior art date
Links
Images
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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- General Engineering & Computer Science (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
Abstract
獲得用以執行純量乘法以進行密碼運算之單個架構化指令。執行該指令,且該執行包括判定由待執行之該指令支援的複數個純量乘法函式中之一純量乘法函式。獲得用於該純量乘法函式之輸入,且該輸入包括至少一個源分量及一純量值。使用該輸入執行該純量乘法函式以提供一輸出以待用於一密碼運算中。
Description
一或多個態樣大體上係關於促進計算環境內之處理,且特定言之,係關於促進在該計算環境內執行密碼運算。
使用密碼編譯來提供計算環境內之安全通信,包括訊息之安全傳輸。密碼編譯包括對訊息進行加密,使得僅經授權方可讀取所傳輸之訊息。舉例而言,在加密期間,使用加密技術對純文字訊息進行編碼以提供經加密訊息或密文。經加密訊息發送至經授權接收者。接收者接收經加密訊息,且使用相同加密技術對其進行解密以提供該訊息之純文字。
存在可使用之數種加密技術,包括基於橢圓曲線之加密技術。此類加密技術包括例如橢圓曲線簽章演算法(ECDSA)及愛德華曲線數位簽章演算法(EdDSA)。在使用此等技術執行密碼編譯時,所執行的常見的、在計算上密集之運算為純量乘法運算。
經由提供用於促進計算環境內之處理的電腦程式產品來克服先前技術之缺點且提供額外優點。該電腦程式產品包括可由處理電路讀取且儲存用於執行方法之指令的電腦可讀儲存媒體。該方法包括獲得一指令,該指令為一單個架構化指令。執行該指令,且該執行包括判定由待執行之該指令支援的複數個純量乘法函式中之一純量乘法函式。獲得用於待執行之該純量乘法函式之輸入,且該輸入包括至少一個源分量及一純量值。使用該輸入執行該純量乘法函式以提供一輸出以待用於一密碼運算中。
藉由使用單個架構化指令來執行純量乘法函式,執行該函式之基元軟體指令的相當大的子集由單個架構化指令替換。用單個架構化指令替換彼等基元指令降低程式複雜度且消除對包括用以最佳化基元指令之程式碼的需要。總體效能得以改良。另外,不需要分配暫存器及記憶體來保存中間結果,因此釋放資源以用於其他並行操作。
在一個實例中,該執行該純量乘法函式包括執行一橢圓曲線上的一點之純量乘法。該點係由該至少一個源分量指定。作為一實例,該橢圓曲線上之該點係由該至少一個源分量中之一第一源分量及該至少一個源分量中之一第二源分量指定。該第一源分量及該第二源分量例如經由使用與該指令相關聯之一暫存器定位的一參數區塊而輸入至該指令。
該執行該純量乘法函式包括例如沿著該橢圓曲線執行一系列相異點相加(point addition)及相同點相加(point addition)。
在一個實例中,該執行該純量乘法函式包括使用以下等式:(Xr, Yr) < = d * (Xs, Ys),其中Xs及Ys為該至少一個源分量且為一橢圓曲線上的一點之座標,d為該純量值,*為純量乘法,且Xr及Yr為該純量乘法函式之所得座標,該等所得座標為輸出。
作為一實例,d包括自一個位元(例如,d之最高有效位元)掃描至另一位元(例如,d之最低有效位元)之複數個位元,且在一個實例中,該執行該純量乘法函式進一步包括對於d之該複數個位元中等於一選擇值之一位元,進行一相異點相加,且在掃描每一位元之後,進行一相同點相加。
在一個實例中,該複數個純量乘法函式包括用於複數個質數的複數個橢圓曲線數位簽章演算法函式之複數個純量乘法函式。作為另一實例,該複數個純量乘法函式包括用於複數個質數的複數個愛德華曲線數位簽章演算法函式之複數個純量乘法函式。
本文中亦描述及主張與一或多個態樣有關之電腦實施方法及系統。另外,本文中亦描述及可能主張與一或多個態樣有關之服務。
經由本文中所描述之技術實現額外特徵及優點。本文中詳細描述其他實施例及態樣且將其視為所主張態樣之一部分。
根據本發明之一態樣,提供一種促進計算環境內之處理的能力。作為一個實例,提供單個指令(例如,在硬體/軟體介面處之單個架構化硬體機器指令)以執行促進用於密碼運算的純量乘法運算之效能的運算,諸如執行密碼計算運算。該指令為由處理器(諸如,通用處理器)上的程式(例如,作業系統或使用者程式)分派的通用處理器指令集架構(ISA)之部分。
在一個實例中,使用稱為執行密碼計算(PCC)指令之指令來執行用於例如密碼運算之純量乘法函式。該指令例如為由紐約阿蒙克之國際商業機器公司供應之z/Architecture®
硬體架構的訊息安全輔助擴展(例如,訊息安全輔擴展9)設施的部分。訊息安全輔助擴展支援訊息之橢圓曲線密碼編譯鑑認、橢圓曲線金鑰之產生及純量乘法。
參看圖1A描述併有及使用本發明之一或多個態樣的計算環境之一個實施例。舉例而言,計算環境100包括處理器102 (例如,中央處理單元)、記憶體104 (例如,主記憶體;亦稱為系統記憶體、主儲存器、中央儲存器、儲存器)及一或多個輸入/輸出(I/O)裝置及/或介面106,前述各者經由例如一或多個匯流排108及/或其他連接件而彼此耦接。
在一個實例中,處理器102係基於由紐約阿蒙克之國際商業機器公司供應的z/Architecture硬體架構,且為伺服器之部分,諸如IBM Z®
伺服器,其亦由國際商業機器公司提供且實施z/Architecture硬體架構。z/Architecture硬體架構之一個實施例描述於題為「z/Architecture操作原理(z/Architecture Principles of Operation)」之公開案(IBM公開案第SA22-7832-11號,第12版,2017年9月)中,該公開案特此以全文引用之方式併入本文中。然而,z/Architecture硬體架構僅為一個實例架構;其他架構及/或其他類型之計算環境可包括及/或使用本發明之一或多個態樣。在一個實例中,處理器執行亦由國際商業機器公司供應之作業系統,諸如z/OS®
作業系統。
處理器102包括用以執行指令之複數個功能組件。如圖1B中所描繪,此等功能組件包括例如:指令提取組件120,其用以提取待執行之指令;指令解碼單元122,其用以解碼所提取指令且用以獲得經解碼指令之運算元;指令執行組件124,其用以執行經解碼指令;記憶體存取組件126,其用以在必要時為指令執行存取記憶體;及寫回組件130,其用以提供經執行指令之結果。根據本發明之一或多個態樣,此等組件中之一或多者包括在諸如用於密碼運算的純量乘法處理之純量乘法處理(或可使用本發明之一或多個態樣的其他處理)中使用的一或多個其他組件之至少一部分,或可存取該一或多個其他組件。該一或多個其他組件包括例如純量乘法組件(或其他組件) 136。
參看圖2描述併有及使用本發明之一或多個態樣的計算環境之另一實例。在一個實例中,計算環境係基於z/Architecture硬體架構;然而,計算環境可基於由國際商業機器公司或其他公司供應之其他架構。
參看圖2,在一個實例中,計算環境包括中央電子裝置複合體(CEC) 200。CEC 200包括複數個組件,諸如記憶體202 (亦稱為系統記憶體、主記憶體、主儲存器、中央儲存器、儲存器),其耦接至一或多個處理器(亦稱為中央處理單元(CPU)) 204及輸入/輸出子系統206。
記憶體202包括例如一或多個邏輯分割區208、管理邏輯分割區之超管理器210,及處理器韌體212。超管理器210之一個實例為由紐約阿蒙克之國際商業機器公司供應的處理器資源/系統管理器(PR/SM™)超管理器。如本文中所使用,韌體包括例如處理器之微碼。其包括例如用於實施較高階機器碼之硬體層級指令及/或資料結構。在一個實施例中,其包括例如專屬碼,其通常作為包括受信任軟體之微碼或特定於底層硬體之微碼遞送,且控制作業系統對系統硬體之存取。
每一邏輯分割區208能夠充當單獨系統。亦即,每一邏輯分割區可獨立地經重設,運行諸如z/OS作業系統之客體作業系統220或另一作業系統,且與不同程式222一起操作。在邏輯分割區中運行之作業系統或應用程式呈現為可存取完整的系統,但實際上,僅其一部分可用。
記憶體202耦接至處理器(例如,CPU) 204,其為可分配至邏輯分割區之實體處理器資源。舉例而言,邏輯分割區208包括一或多個邏輯處理器,其中之每一者表示可動態地分配至邏輯分割區之實體處理器資源204中的全部或一部分。
另外,記憶體202耦接至I/O子系統206。I/O子系統206可為中央電子裝置複合體之部分或與其分開。該子系統導引主儲存器202與耦接至中央電子裝置複合體之輸入/輸出控制單元230及輸入/輸出(I/O)裝置240之間的資訊流。
可使用許多類型之I/O裝置。一個特定類型為資料儲存裝置250。資料儲存裝置250可儲存一或多個程式252、一或多個電腦可讀程式指令254及/或資料等。電腦可讀程式指令可經組態以進行本發明之態樣的實施例之功能。
作為一個實例,每一處理器204包括及/或可存取在執行用於例如密碼運算的純量乘法(及/或本發明之一或多個態樣的其他運算)時使用的純量乘法組件(或其他組件) 260。在各種實例中,可存在執行此等任務之一或多個組件。許多變化係可能的。
中央電子裝置複合體200可包括及/或耦接至抽取式/非抽取式、揮發性/非揮發性電腦系統儲存媒體。舉例而言,其可包括及/或耦接至非抽取式非揮發性磁性媒體(通常被稱作「硬碟機」)、用於自抽取式非揮發性磁碟(例如,「軟碟」)讀取及寫入至抽取式非揮發性磁碟之磁碟機,及/或用於自諸如CD-ROM、DVD-ROM或其他光學媒體之抽取式非揮發性光碟讀取或寫入至抽取式非揮發性光碟之光碟機。應理解,可結合中央電子裝置複合體200使用其他硬體及/或軟體組件。實例包括但不限於:微碼、裝置驅動器、冗餘處理單元、外部磁碟機陣列、RAID系統、磁帶機及資料存檔儲存系統等。
另外,中央電子裝置複合體200可與眾多其他通用或專用計算系統環境或組態一起操作。可適合與中央電子裝置複合體200一起使用之熟知計算系統、環境及/或組態之實例包括但不限於:個人電腦(PC)系統、伺服器電腦系統、精簡型用戶端、複雜型用戶端、手持型或膝上型電腦裝置、多處理器系統、基於微處理器之系統、機上盒、可程式化消費型電子裝置、網路PC、小型電腦系統、大型電腦系統及包括以上系統或裝置中之任一者的分散式雲端計算環境,以及其類似者。
儘管本文中描述計算環境之各種實例,但本發明之一或多個態樣可與許多類型之環境一起使用。本文中所提供之計算環境僅為實例。
根據本發明之一態樣,諸如計算環境100之計算環境或中央電子裝置複合體200使用訊息安全輔助擴展設施,其提供用以執行用於例如橢圓曲線密碼運算之純量乘法運算的機制。在一個實例中,當設施指示符設定為例如一時,該設施安裝於系統中。作為z/Architecture硬體架構之一個特定實例,當設施安裝於z/Architecture架構化模式下時,設施位元155經設定為例如一。該設施包括例如執行密碼計算指令,在下文描述其實施例。
參看圖3A至圖3D描述執行密碼計算指令之一個實施例。在一個實例中,使用諸如通用處理器(例如,處理器102或204)之處理器執行該指令。在本文中之描述中,指示特定位置、特定欄位及/或特定欄位大小(例如,特定位元組及/或位元)。然而,可提供其他位置、欄位及/或大小。另外,儘管指定將位元設定為例如一或零之特定值,但此僅為實例。在其他實例中,可將位元設定為不同值,諸如相反值或另一值。許多變化係可能的。
參看圖3A,在一個實例中,執行密碼計算(PCC)指令300之格式為RRE格式,其表示暫存器及具有擴展運算碼(operation code,opcode)欄位之暫存器運算。作為一實例,該指令包括運算碼欄位302 (例如,位元0至15),其具有指示執行密碼計算運算之運算碼。在一個實例中,忽略指令之位元16至31。
在一個實施例中,指令執行包括使用一或多個隱含的通用暫存器(亦即,未由指令明確指明之暫存器)。舉例而言,通用暫存器0及1用於執行指令,如本文中所描述。在一個實例中,通用暫存器0含有影響指令之操作的各種控制項,且通用暫存器1用於提供由指令使用之參數區塊的位置。
作為一實例,參看圖3B,通用暫存器0 (304)包括函式碼欄位306,其包括函式碼。在一個特定實例中,通用暫存器0之位元位置57至63含有函式碼;但在其他實施例中,其他位元可用以含有函式碼。另外,在一個實例中,通用暫存器0之位元56將為零;否則,辨識到規格例外狀況。在此實例中,忽略通用暫存器0之所有其他位元。
用於執行密碼計算指令之實例所指派函式碼展示於圖3C中且包括例如:函式碼0 (310),其指示PCC-Query函式;函式碼1 (312),其指示PCC-Compute-Last-Block-CMAC-Using-DEA函式;函式碼2 (314),其指示PCC-Compute-Last-Block-CMAC-Using-TDEA-128函式;函式碼3 (316),其指示PCC-Compute-Last-Block-CMAC-Using-TDEA-192函式;函式碼9 (318),其指示PCC-Compute-Last-Block-CMAC-Using-Encrypted-DEA函式;函式碼10 (320),其指示PCC-Compute-Last-Block-CMAC-Using-Encrypted-TDEA-128函式;函式碼11 (322),其指示PCC-Compute-Last-Block-CMAC-Using-Encryted-TDEA-192函式;函式碼18 (324),其指示PCC-Compute-Last-Block-CMAC-Using-AES-128函式;函式碼19 (326),其指示PCC-Compute-Last-Block-CMAC-Using-AES-192函式;函式碼20 (328),其指示PCC-Compute-Last-Block-CMAC-Using-AES-256函式;函式碼26 (330),其指示PCC-Compute-Last-Block-CMAC-Using-Encrypted-AES-128函式;函式碼27 (332),其指示PCC-Compute-Last-Block-CMAC-Using-Encrypted-AES-192函式;函式碼28 (334),其指示PCC-Compute-Last-Block-CMAC-Using-Encrypted-AES-256A函式;函式碼50 (336),其指示PCC-Compute-XTS-Parameter-Using-AES-128函式;函式碼52 (338),其指示PCC-Compute-XTS-Parameter-Using-AES-256函式;函式碼58 (340),其指示PCC-Compute-XTS-Parameter-Using-Encrypted-AES-128函式;函式碼60 (342),其指示PCC-Compute-XTS-Parameter-Using-Encrypted-AES-256函式;函式碼64 (344),其指示PCC-Scalar-Multiply-P256函式;函式碼65 (346),其指示PCC-Scalar-Multiply-P384函式;函式碼66 (348),其指示PCC-Scalar-Multiply-P521函式;函式碼72 (350),其指示PCC-Scalar-Multiply-Ed25519函式;以及函式碼73 (352),其指示PCC-Scalar-Multiply-Ed448函式。
在一個實例中,每一函式使用參數區塊且參數區塊之大小取決於函式。用於函式之實例參數區塊大小以及實例資料區塊大小(若可行)描繪於圖3C中。在此實例中,未指派其他函式碼。儘管描述實例函式及函式碼,但可使用其他函式及/或函式碼。
如所指示,每一函式使用一參數區塊。參數區塊由例如通用暫存器1指定。在一個實例中,參看圖3D,通用暫存器1 (350)之內容例如指定儲存器中之參數區塊的最左位元組之邏輯位址352。例如,在24位元定址模式中,通用暫存器1之位元位置40至63的內容構成位址,且忽略位元位置0至39之內容。在31位元定址模式中,通用暫存器1之位元位置33至63的內容構成位址,且忽略位元位置0至32之內容。在64位元定址模式中,通用暫存器1之位元位置0至63的內容構成位址。在存取暫存器模式中,存取暫存器1指定含有參數區塊之位址空間。下文進一步描述根據本發明之一態樣的關於用於由指令支援的各種函式的參數區塊之額外細節。
如由此CPU、其他CPU及通道程式觀察到,對於參數區塊之參考可為多重存取參考,對於此等儲存位置之存取未必係區塊並行的,且此等存取或參考之序列係不確定的。
如所指示,執行密碼計算指令支援複數個函式。在指令執行中,執行由通用暫存器0中之函式碼指定的函式。在下文描述由指令支援的函式中之一些,包括根據本發明之一或多個態樣提供的此等函式:
PCC-Query (
函式碼
0)
查詢函式提供指示其他函式之可用性的機制。圖3B及圖3D中展示由指令使用的運算元及位址之位置。
參看圖4A描述由查詢函式使用的參數區塊之一個實例。如所展示,在一個實例中,參數區塊400包括例如128位元狀態字402。此欄位之位元0至127分別對應於PCC指令之函式碼0至127。當位元為例如一時,安裝對應函式;否則,不安裝函式。
在一個實例中,當PCC-Query函式之執行完成時,設定條件碼0;條件碼1、2及3不適用於此函式。
PCC-Scalar-Multiply (
函式碼
64
、
65
、
66
、
72
及
73)
在一個實施例中,支援五個PCC-Scalar-Multiply函式,且對應函式碼提供如下:
• PCC-Scalar-Multiply-P256 (函式碼64)
• PCC-Scalar-Multiply-P384 (函式碼65)
• PCC-Scalar-Multiply-P521 (函式碼66)
• PCC-Scalar-Multiply-Ed25519 (函式碼72)
• PCC-Scalar-Multiply-Ed448 (函式碼73)
該等函式中之三者PCC-Scalar-Multiply-P256、PCC-Scalar-Multiply-P384及PCC-Scalar-Multiply-P521對所選美國國家標準與技術研究院(NIST)質數(例如,P256、P384、P521)使用ECDSA技術。其他兩個函式PCC-Scalar-Multiply-Ed25519及PCC-Scalar-Multiply-Ed448對所選質數使用EdDSA技術(例如,Ed25519、Ed448)。
在一個實例中,在執行PCC-Scalar-Multiply函式時,該函式對橢圓曲線上之點實施純量乘法,如下所示(在一個實例中):
(Xr, Yr) <= d * (Xs, Ys)
其中由座標Xs及Ys表示的輸入點乘以純量d,其得出由座標Xr及Yr表示之點。可藉由沿著橢圓曲線之一系列相異點相加及相同點相加實現點之純量乘法。例如自最高有效至最低有效來掃描d之位元。在一個實例中,純量d中之每一位元等於一,進行相異點相加,且在掃描每一位元之後,進行相同點相加。藉由一系列相異點相加及相同點相加,執行整體純量乘法。
在一個實例中,為進一步解釋,純量或整數乘以在有限域上定義之橢圓曲線上的點。例如自最高有效位元至最低有效位元來掃描該純量,且若該純量之位元為一,則將該相異點相加至當前求和點,且在掃描每一位元之後,使求和相同點相加。由相異點相加得出的求和點定義為由穿過兩個相加點的直線與橢圓曲線的相交點得出的點之負數。相同點相加係類似的,但穿過相同點之直線的定義不明確,因此實際上,使用該點處與橢圓曲線之切線,且求和點為切線與橢圓曲線相交處的負點。存在判定求和點之所得X及Y座標之數學捷徑,而無需繪製橢圓曲線之曲線圖。用於相同點相加及相異點相加之數學式取決於例如橢圓曲線。
如所指示,用於純量乘法函式之運算元經由參數區塊提供,在下文描述其實例。在描述用於各種函式之參數區塊之後描述參數區塊之欄位的額外細節。
參看圖4B描述用於PCC-Scalar-Multiply-P256函式及PCC-Scalar-Multiply-Ed25519函式的參數區塊之一個實例。在一個實例中,參數區塊404包括例如結果X分量(Xr) 405、結果Y分量(Yr) 406、源X分量(Xs) 407、源Y分量(Ys) 408、純量(d) 409,及經保留保存區域410。圖4B中描繪參數區塊內之實例位移。
另外,參看圖4C描述用於PCC-Scalar-Multiply-P384函式的參數區塊之一個實例。在一個實例中,參數區塊412包括例如結果X分量(Xr) 413、結果Y分量(Yr) 414、源X分量(Xs) 415、源Y分量(Ys) 416、純量(d) 417,及經保留保存區域418。圖4C中描繪參數區塊內之實例位移。
另外,參看圖4D,用於PCC-Scalar-Multiply-P521函式之參數區塊420包括例如結果X分量(Xr) 421、結果Y分量(Yr) 422、源X分量(Xs) 423、源Y分量(Ys) 424、純量(d),及經保留保存區域425。圖4D中描繪參數區塊內之實例位移。
類似地,參看圖4E,用於PCC-Scalar-Multiply-Ed448函式之參數區塊426包括例如結果X分量(Xr) 427、結果Y分量(Yr) 428、源X分量(Xs) 429、源Y分量(Ys) 430、純量(d) 431,及經保留保存區域432。圖4E中描繪參數區塊內之實例位移。
在下文描述用於各種PCC-Scalar-Multiply函式之參數區塊之欄位的其他細節。在一個實例中:
結果X分量(Xr):此為由純量乘以橢圓曲線上的源點之乘法得出的該曲線上的點之X分量。其例如為大於或等於零且小於函式之質數的整數,且在此欄位中右對準。PCC-Scalar-Multiply函式之部分結果儲存至參數區塊中的此欄位。
結果Y分量(Yr):此為由純量乘以橢圓曲線上的源點之乘法得出的該曲線上的點之Y分量。其例如為大於或等於零且小於函式之質數的整數,且在此欄位中右對準。PCC-Scalar-Multiply函式之部分結果儲存至參數區塊中的此欄位。
源X分量(Xs):此為橢圓曲線上作為純量乘法源之點的X分量。Xs在此欄位中右對準,且忽略左方位元組。Xs例如為大於或等於零且小於函式之質數的整數。若其大於質數,則報告等於一之條件碼。
源Y分量(Ys):此為橢圓曲線上作為純量乘法源之點的Y分量。Ys在此欄位中右對準,且忽略左方位元組,且其可為隨機值。Ys例如為大於或等於零且小於函式之質數的整數。若其大於質數,則報告等於一之條件碼。
純量(d):此為PCC-Scalar-Multiply函式之源整數純量。d在此欄位中右對準,且忽略左方位元組,且其可為隨機值。d例如為大於或等於零且小於曲線之階數(其小於質數)的整數。若d不在此範圍中,則報告等於一之條件碼。曲線之階數例如為與曲線相關聯之參數值,其提供於用於曲線之標準(例如,FIPS PUB 186-4,Federal Information Processing Standards Publication,數位簽章標準(DSS),2013年7月發佈;愛德華曲線數位簽章演算法(EdDSA),Internet Research Task Force (IRTF),RFC-8032,2017年1月)中。
經保留保存區域:經保留保存區域為待用以保存待使用的狀態資訊之預定義記憶體量,例如,若指令結束時部分完成,則允許指令在部分完成點處重新開始。
對於參數區塊中之任何位置,可辨識到儲存型存取例外狀況,即使僅Xr及Yr欄位實際上由指令儲存亦如此。
在一個實施例中,若Xs及Ys並不在指定曲線上,或其中之任一者大於質數模數,或若d不大於零且小於曲線之階數,則報告等於一之條件碼且不更新結果。
實例條件:
在一個實例中,若以下各者中之任一者發生,則辨識到規格例外狀況且不採取其他動作:
1. 通用暫存器0之位元56並非零。
2. 通用暫存器0之位元57至63指定未指派或未安裝之函式碼。
實例所得條件碼:
0 正常完成
1 驗證圖案失配或源運算元在範圍外或不在曲線上
2 無效的位元索引或訊息長度
3 部分完成
實例程式例外狀況:
• 存取(提取,參數區塊;提取及儲存,中間位元索引、XTS參數、初始鏈結值)
• 運算(在未安裝訊息安全輔助擴展4的情況下)
• 規格
• 異動約束
PCC之實例執行優先級,包括例如:
1.-6. 優先級與一般狀況之程式中斷條件之優先級相同的例外狀況。
7.A 第二指令半字之存取例外狀況。
7.B 運算例外狀況。
7.C 異動約束。
8. 由於無效函式碼或無效暫存器編號之規格例外狀況。
9. 由於訊息長度最初為零之條件碼0。
11.A 由於驗證圖案失配之條件碼1。
11.B. 由於無效位元索引或訊息長度之條件碼2。
12. 由於正常完成(訊息長度最初為非零,但漸變為零)之條件碼0。
13. 由於部分完成(訊息長度仍為非零)之條件碼3。
程式設計注意事項:
若程式用以頻繁地測試函式之可用性,則其應在初始化期間執行一次查詢函式;隨後,其應利用諸如遮罩下測試之指令檢查查詢函式在記憶體中之儲存結果。
如本文中所描述,在一個態樣中,提供單個指令(例如,在硬體/軟體介面處之單個架構化機器指令,例如執行密碼計算指令)來使用例如通用處理器執行例如供用於密碼運算中之純量乘法函式。此指令為例如定義於指令集架構(ISA)中之硬體指令。結果,與純量乘法函式相關之程式的複雜度降低。另外,函式之執行得以改良,且因此處理器得以改良。相較於軟體實施,執行單個指令需要顯著較少之執行循環來執行相同運算。
作為一實例,使用純量乘法自私用金鑰產生公開金鑰。私用金鑰為質數純量,且其乘以產生器點以給出公開金鑰,該公開金鑰為一點。作為其他實例,使用純量乘法來產生待用於對訊息加簽章之數位簽章及/或驗證數位簽章。藉由在硬體中執行此等函式,安全性較高,且實施時序獨立於輸入。
儘管描述執行密碼計算指令之各種欄位及暫存器,但本發明之一或多個態樣可使用其他、額外或較少之欄位或暫存器或其他大小之欄位及暫存器等。許多變化係可能的。舉例而言,可使用隱含暫存器而非指令之明確指定之暫存器或欄位,及/或可使用明確指定之暫存器或欄位而非隱含暫存器或欄位。其他變化亦係可能的。
本發明之一或多個態樣不可避免地與電腦技術相關且促進電腦內之處理,從而改良其效能。使用單個架構化機器指令來執行用於密碼運算之純量乘法將改良計算環境內之效能。舉例而言,密碼運算用來對訊息加簽章/驗證及/或用於其他加密/解密運算。使用密碼運算保護之純量乘法及/或訊息可用於許多技術領域中,諸如電腦處理、醫學處理、安全性等。藉由提供執行用於例如密碼運算的純量乘法之最佳化,此等技術領域藉由減少執行時間而改良。
參看圖5A至圖5B描述促進計算環境內之處理的一個實施例之其他細節,此係因為該計算環境與本發明之一或多個態樣有關。
參看圖5A,獲得指令(例如,執行密碼計算)(500),其為單個架構化指令(502)。藉由例如處理器(例如,處理器102或204)之硬體執行該指令(504)。該硬體可在處理器內或出於自處理器接收指令之目的而耦接至處理器,其例如獲得、解碼及設置該指令以在硬體上執行。其他變化係可能的。
該執行包括例如判定由待執行之指令支援的複數個純量乘法函式中之一純量乘法函式(506)。在一個實例中,此係自指定於例如通用暫存器0中之函式碼判定,且輸入至指令。獲得用於待執行之純量乘法函式的輸入,且該輸入包括至少一個源分量及一純量值(508)。使用該輸入執行純量乘法函式以提供輸出以待用於密碼運算中(510)。
在一個實例中,執行該純量乘法函式包括執行橢圓曲線上的點之純量乘法,該點係由該至少一個源分量指定(512)。作為一實例,橢圓曲線上之點係由該至少一個源分量中之第一源分量(例如,Xs)及該至少一個源分量中之第二源分量(例如,Ys)指定(514)。將該第一源分量及該第二源分量例如經由使用與該指令相關聯之暫存器(例如,通用暫存器1)定位的一參數區塊而輸入至該指令(516)。
執行該純量乘法函式包括例如沿著該橢圓曲線執行一系列相異點相加及相同點相加(518)。
在一個實例中,參看圖5B,執行該純量乘法函式包括使用以下等式:(Xr, Yr) < = d * (Xs, Ys),其中Xs及Ys為該至少一個源分量且為橢圓曲線上的一點之座標,d為該純量值,*為純量乘法,且Xr及Yr為該純量乘法函式之所得座標,該等所得座標為輸出(520)。輸出(例如,Xr,Yr)儲存至對應於函式碼之參數區塊。d包括例如自一個位元(例如,d之最高有效位元)掃描至另一位元(例如,d之最低有效位元)之複數個位元(522)。在一個實例中,執行該純量乘法函式進一步包括對於d之該複數個位元中等於選擇值之一位元,進行相異點相加,且在掃描每一位元之後,進行相同點相加(524)。
作為一實例,該複數個純量乘法函式包括用於複數個質數的複數個橢圓曲線數位簽章演算法函式之複數個純量乘法函式(526)。作為另一實例,該複數個純量乘法函式包括用於複數個質數的複數個愛德華曲線數位簽章演算法函式之複數個純量乘法函式(528)。
其他變化及實施例為可能的。
本發明之態樣可由許多類型之計算環境使用。參看圖6A描述併有及使用本發明之一或多個態樣的計算環境之另一實施例。在此實例中,計算環境10包括例如原生中央處理單元(CPU) 12、記憶體14及一或多個輸入/輸出裝置及/或介面16,前述各者經由例如一或多個匯流排18及/或其他連接件而彼此耦接。作為實例,計算環境10可包括:由紐約阿蒙克之國際商業機器公司供應之PowerPC®
處理器;由加州帕洛阿爾托之惠普公司供應的具有Intel Itanium II處理器之HP Superdome;及/或基於由國際商業機器公司、惠普公司、因特爾公司、甲骨文公司或其他公司供應之架構的其他機器。IBM、z/Architecture、IBM Z、z/OS、PR/SM及PowerPC為國際商業機器公司在至少一個司法管轄區中之商標或註冊商標。Intel及Itanium為Intel公司或其子公司在美國及其他國家中之商標或註冊商標。
原生中央處理單元12包括一或多個原生暫存器20,諸如在環境內之處理期間使用的一或多個通用暫存器及/或一或多個專用暫存器。此等暫存器包括表示在任何特定時間點處之環境狀態之資訊。
此外,原生中央處理單元12執行儲存於記憶體14中之指令及程式碼。在一個特定實例中,中央處理單元執行儲存於記憶體14中之仿真器程式碼22。此程式碼使得在一個架構中組態之計算環境能夠仿真另一架構。舉例而言,仿真器程式碼22允許基於除z/Architecture硬體架構以外之架構的機器(諸如,PowerPC處理器、HP Superdome伺服器或其他者)仿真z/Architecture硬體架構且執行基於z/Architecture硬體架構開發之軟體及指令。
參看圖6B描述與仿真器程式碼22有關之其他細節。儲存於記憶體14中之客體指令30包含經開發以在除原生CPU 12之架構以外之架構中執行的軟體指令(例如,與機器指令相關)。舉例而言,客體指令30可已經設計以在基於z/Architecture硬體架構之處理器上執行,但替代地,在可為例如因特爾安藤II處理器之原生CPU 12上仿真。在一個實例中,仿真器程式碼22包括指令提取常式32,以自記憶體14獲得一或多個客體指令30且視情況提供對所獲得指令之本端緩衝。其亦包括指令轉譯常式34,以判定已獲得之客體指令的類型且將該客體指令轉譯成一或多個對應的原生指令36。此轉譯包括例如識別待藉由客體指令執行之功能及選擇原生指令以執行彼功能。
另外,仿真器程式碼22包括仿真控制常式40以使得執行原生指令。仿真控制常式40可使原生CPU 12執行仿真一或多個先前所獲得之客體指令之原生指令的常式且在此執行完結時,將控制傳回至指令提取常式以仿真獲得下一客體指令或一組客體指令。原生指令36之執行可包括將資料自記憶體14載入至暫存器中;將資料自暫存器儲存回至記憶體;或執行某一類型之算術或邏輯運算,如由轉譯常式判定。
每一常式例如實施於軟體中,該軟體儲存於記憶體中且藉由原生中央處理單元12執行。在其他實例中,一或多個常式或運算實施於韌體、硬體、軟體或其某一組合中。可使用原生CPU之暫存器20或藉由使用記憶體14中之位置來仿真該仿真處理器之暫存器。在實施例中,客體指令30、原生指令36及仿真器程式碼22可駐留於同一記憶體中或可分配於不同記憶體裝置當中。
上文所描述之計算環境僅為可使用之計算環境的實例。可使用其他環境,包括但不限於其他未經分割之環境、其他經分割之環境及/或其他仿真環境;實施例不限於任何一種環境。
每一計算環境能夠經組態以包括本發明之一或多個態樣。舉例而言,根據本發明之一或多個態樣,每一計算環境可經組態以提供純量乘法以供用於例如密碼運算。
一或多個態樣可係關於雲端計算。
應理解,儘管本發明包括關於雲端計算之詳細描述,但本文中所敍述之教示的實施不限於雲端計算環境。更確切而言,本發明之實施例能夠結合現在已知或稍後開發之任何其他類型之計算環境來實施。
雲端計算為用於使得能夠對可組態計算資源(例如,網路、網路頻寬、伺服器、處理、記憶體、儲存器、應用程式、虛擬機及服務)之共用集區進行便利之按需網路存取的服務遞送之模型,可組態計算資源可藉由最少的管理工作或與服務提供者之互動而快速地佈建及釋放。此雲端模型可包括至少五個特性、至少三個服務模型及至少四個部署模型。
特性如下:
隨選自助服務:雲端消費者可視需要自動地單向佈建計算能力(諸如,伺服器時間及網路儲存器),而無需與服務提供者之人為互動。
寬頻網路存取:可經由網路獲得能力及經由標準機制存取能力,該等標準機制藉由異質精簡型或複雜型用戶端平台(例如,行動電話、膝上型電腦及PDA)促進使用。
資源集用:提供者之計算資源經集用以使用多租戶模型為多個消費者服務,其中根據需要動態指派及重新指派不同實體及虛擬資源。位置獨立性之意義在於,消費者通常不具有對所提供資源之確切位置的控制或瞭解,但可能能夠按較高抽象等級(例如,國家、州或資料中心)指定位置。
快速彈性:可快速且彈性地佈建能力(在一些狀況下,自動地)以迅速地向外延展,且可快速地釋放能力以迅速地向內延展。在消費者看來,可用於佈建之能力常常看起來為無限的且可在任何時間以任何量來購買。
所量測服務:雲端系統藉由在適於服務類型(例如,儲存、處理、頻寬及作用中使用者帳戶)之某一抽象等級下充分利用計量能力而自動控制及最佳化資源使用。可監視、控制及報告資源使用狀況,從而為所利用服務之提供者及消費者兩者提供透明度。
服務模型如下:
軟體即服務(SaaS):提供給消費者之能力係使用在雲端基礎架構上運行之提供者之應用程式。可經由諸如網頁瀏覽器(例如,基於網路之電子郵件)之精簡型用戶端介面自各種用戶端裝置存取應用程式。消費者並不管理或控制包括網路、伺服器、作業系統、儲存器或甚至個別應用程式能力之底層雲端基礎架構,其中可能的例外狀況為有限的使用者特定應用程式組態設定。
平台即服務(PaaS):提供給消費者之能力係將使用由提供者所支援之程式設計語言及工具建立的消費者建立或獲取之應用程式部署至雲端基礎架構上。消費者並不管理或控制包括網路、伺服器、作業系統或儲存器之底層雲端基礎架構,但控制所部署之應用程式及可能的代管環境組態之應用程式。
基礎架構即服務(IaaS):提供給消費者之能力係佈建處理、儲存、網路及其他基礎計算資源,其中消費者能夠部署及運行可包括作業系統及應用程式之任意軟體。消費者並不管理或控制底層雲端基礎架構,但控制作業系統、儲存器、所部署應用程式,及可能有限地控制選擇網路連接組件(例如,主機防火牆)。
部署模型如下:
私用雲端:僅為組織操作雲端基礎架構。私用雲端可由組織或第三方來管理且可存在內部部署或外部部署。
社群雲端:雲端基礎架構由若干組織共用且支援分擔問題(例如,任務、安全要求、策略及順應性考量)的特定社群。社群雲端可由組織或第三方來管理且可存在內部部署或外部部署。
公開雲端:該雲端基礎架構可用於公眾或大型工業集團且為出售雲端服務之組織所擁有。
混合雲端:該雲端基礎架構為兩個或多於兩個雲端(私用、社群或公開)之組合物,其保持獨特實體但藉由實現資料及應用程式攜帶性(例如,用於在雲端之間實現負載平衡之雲端叢發)之標準化或專屬技術繫結在一起。
藉由集中於無國界、低耦合、模組化及語義互操作性對雲端計算環境進行服務定向。雲端計算之關鍵為包括互連節點之網路的基礎架構。
現參看圖7,描繪說明性雲端計算環境50。如所展示,雲端計算環境50包括一或多個雲端計算節點52,雲端消費者所使用之諸如個人數位助理(PDA)或蜂巢式電話54A、桌上型電腦54B、膝上型電腦54C及/或汽車電腦系統54N的本端計算裝置可與該一或多個雲端計算節點通信。節點52可彼此通信。可在一或多個網路(諸如,如上文所描述之私用、社群、公開或混合雲端或其組合)中將該等節點實體地或虛擬地分組(未展示)。此允許雲端計算環境50供應基礎架構、平台及/或軟體作為服務,針對該等服務,雲端消費者不需要在本端計算裝置上維持資源。應理解,圖7中所展示之計算裝置54A至54N之類型意欲僅為說明性的,且計算節點52及雲端計算環境50可經由任何類型之網路及/或網路可定址連接(例如,使用網頁瀏覽器)與任何類型之電腦化裝置通信。
現參看圖8,展示藉由雲端計算環境50 (圖7)所提供之功能抽象層之集合。事先應理解,圖8中所展示之組件、層及功能意欲僅為說明性的且本發明之實施例不限於此。如所描繪,提供以下層及對應功能:
硬體及軟體層60包括硬體及軟體組件。硬體組件之實例包括:大型電腦61;基於精簡指令集電腦(RISC)架構之伺服器62;伺服器63;刀鋒伺服器64;儲存裝置65;以及網路及網路連接組件66。在一些實施例中,軟體組件包括網路應用程式伺服器軟體67及資料庫軟體68。
虛擬化層70提供抽象層,可自該抽象層提供虛擬實體之以下實例:虛擬伺服器71;虛擬儲存器72;虛擬網路73,包括虛擬私用網路;虛擬應用程式及作業系統74;以及虛擬用戶端75。
在一個實例中,管理層80可提供下文所描述之功能。資源佈建81提供計算資源及用以執行雲端計算環境內之任務之其他資源的動態採購。當在雲端計算環境內利用資源時,計量及定價82提供成本追蹤,及對此等資源之消耗之帳務處理及發票開立。在一個實例中,此等資源可包括應用程式軟體授權。安全性提供針對雲端消費者及任務之身分識別驗證,以及對資料及其他資源之保護。使用者入口網站83為消費者及系統管理者提供對雲端計算環境之存取。服務等級管理84提供雲端計算資源分配及管理使得滿足所需服務等級。服務等級協議(SLA)規劃及實現85提供雲端計算資源之預先配置及採購,針對雲端計算資源之未來要求係根據SLA來預期。
工作負載層90提供功能性之實例,可針對該功能性利用雲端計算環境。可自此層提供之工作負載及功能的實例包括:地圖測繪及導航91;軟體開發及生命週期管理92;虛擬教室教育遞送93;資料分析處理94;異動處理95;及純量乘法處理96。
本發明之態樣可為在任何可能之技術細節整合等級處的系統、方法及/或電腦程式產品。該電腦程式產品可包括一(或多個)電腦可讀儲存媒體,其上具有電腦可讀程式指令以使處理器進行本發明之態樣。
電腦可讀儲存媒體可為有形裝置,其可持留及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為例如但不限於電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前述各者之任何合適組合。電腦可讀儲存媒體之更特定實例的非窮盡性清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)、記憶棒、軟碟、機械編碼裝置(諸如,上面記錄有指令之凹槽中之打孔卡片或凸起結構)及前述各者之任何合適組合。如本文中所使用,不應將電腦可讀儲存媒體本身解釋為暫時性信號,諸如無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,經由光纖纜線傳遞之光脈衝),或經由導線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別計算/處理裝置或經由網路(例如,網際網路、區域網路、廣域網路及/或無線網路)下載至外部電腦或外部儲存裝置。網路可包含銅傳輸纜線、光傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道器電腦及/或邊緣伺服器。每一計算/處理裝置中之網路配接卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以用於儲存於各別計算/處理裝置內之電腦可讀儲存媒體中。
用於進行本發明之操作之電腦可讀程式指令可為以一或多種程式設計語言之任何組合編寫之組譯器指令、指令集架構(ISA)指令、機器指令、機器相關指令、微碼、韌體指令、狀態設定資料、用於積體電路系統之組態資料,或原始程式碼或目標程式碼,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言,及程序性程式設計語言,諸如「C」程式設計語言或類似程式設計語言。電腦可讀程式指令可完全在使用者電腦上執行,作為單獨套裝軟體部分地在使用者之電腦上執行,部分地在使用者之電腦上及部分地在遠端電腦上執行或完全在遠端電腦或伺服器上執行。在後一情形中,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至使用者之電腦,或可連接至外部電腦(例如,使用網際網路服務提供者經由網際網路)。在一些實施例中,電子電路系統(包括例如可程式化邏輯電路系統、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA))可藉由利用電腦可讀程式指令之狀態資訊來個人化電子電路系統而執行電腦可讀程式指令,以便執行本發明之態樣。
本文參考根據本發明之實施例之方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖來描述本發明之態樣。應理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖中之每一區塊,及流程圖說明及/或方塊圖中的區塊之組合。
可將此等電腦可讀程式指令提供至通用電腦、專用電腦或其他可程式化資料處理設備之處理器以產生機器,使得經由該電腦或其他可程式化資料處理設備之處理器執行之指令建立用於實施該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之構件。亦可將此等電腦可讀程式指令儲存於電腦可讀儲存媒體中,該等指令可指導電腦、可程式化資料處理設備及/或其他裝置以特定方式起作用,使得儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施在該一或多個流程圖及/或方塊圖區塊中指定之功能/動作之態樣的指令。
電腦可讀程式指令亦可載入至電腦、其他可程式化資料處理設備或其他裝置上,以使一系列操作步驟在該電腦、其他可程式化設備或其他裝置上執行以產生電腦實施之處理程序,使得在該電腦、其他可程式化設備或其他裝置上執行之指令實施在該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例的系統、方法及電腦程式產品之可能實施之架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示指令之模組、區段或部分,其包含用於實施指定邏輯功能之一或多個可執行指令。在一些替代實施中,區塊中所提及之功能可不按諸圖中所提及之次序發生。舉例而言,以連續方式展示的兩個區塊實際上可實質上同時執行,或該等區塊有時可以相反次序執行,此取決於所涉及的功能性。亦應注意,可由執行指定功能或動作或進行專用硬體及電腦指令之組合的基於專用硬體之系統實施方塊圖及/或流程圖說明之每一區塊及方塊圖及/或流程圖說明中之區塊的組合。
除上述情形之外,可藉由供應消費者環境之管理之服務提供者來提供、供應、部署、管理、服務(等)一或多個態樣。舉例而言,服務提供者可建立、維持、支援(等)電腦程式碼及/或執行用於一或多個消費者之一或多個態樣的電腦基礎架構。作為回報,服務提供者可根據訂用及/或費用協議接收來自消費者之付款(作為實例)。另外或替代地,服務提供者可接收來自向一或多個第三方出售廣告內容之付款。
在一個態樣中,可部署一應用程式用於執行一或多個實施例。作為一個實例,應用程式之部署包含提供可操作以執行一或多個實施例之電腦基礎架構。
作為另一態樣,可部署計算基礎架構,包含將電腦可讀程式碼整合至計算系統中,其中程式碼結合計算系統能夠執行一或多個實施例。
作為又一態樣,可提供一種用於整合計算基礎架構之處理程序,包含將電腦可讀程式碼整合至電腦系統中。電腦系統包含電腦可讀媒體,其中電腦媒體包含一或多個實施例。程式碼結合電腦系統能夠執行一或多個實施例。
雖然上文描述各種實施例,但此等實施例僅為實例。舉例而言,其他架構之計算環境可用於併入及使用一或多個實施例。另外,可使用不同指令或操作。另外,可使用不同暫存器及/或其他類型之密碼編譯演算法。許多變化係可能的。
另外,其他類型之計算環境可為有益的且可加以使用。作為一實例,可使用適合於儲存及/或執行程式碼之資料處理系統,其包括直接或經由系統匯流排間接地耦接至記憶體元件之至少兩個處理器。記憶體元件包括例如在實際執行程式碼期間使用之本端記憶體、大容量儲存器,及提供至少某一程式碼之臨時儲存以便減少在執行期間必須自大容量儲存器擷取程式碼之次數的快取記憶體。
輸入/輸出或I/O裝置(包括但不限於鍵盤、顯示器、指標裝置、DASD、磁帶、CD、DVD、隨身碟(Thumb Drive)及其他記憶體媒體等) 可直接或經由介入之I/O控制器耦接至系統。網路配接器亦可耦接至系統以使得資料處理系統能夠變成經由介入的私用網路或公用網路耦接至其他資料處理系統或遠端印表機或儲存裝置。數據機、纜線數據機及乙太網路卡僅為幾個可用類型之網路配接器。
本文中所使用之術語僅出於描述特定實施例之目的,且並不意欲為限制性的。如本文中所使用,除非上下文另外明確地指示,否則單數形式「一(a、an)」及「該」意欲亦包括複數形式。應進一步理解,術語「包含(comprises及/或comprising)」在用於本說明書中時指定所陳述特徵、整體、步驟、操作、元件及/或組件之存在,但不排除一或多個其他特徵、整體、步驟、操作、元件、組件及/或其群組之存在或添加。
以下申請專利範圍中之所有構件或步驟加功能元件之對應結構、材料、動作及等效物(若存在)意欲包括用於結合如特定主張之其他所主張元件來執行功能的任何結構、材料或動作。已出於說明及描述之目的呈現一或多個實施例之描述,但其不意欲為窮盡性的或限於所揭示之形式。許多修改及變化對於一般熟習此項技術者將為顯而易見的。實施例經選擇及描述以便最佳地解釋各種態樣及實際應用,且使得一般熟習此項技術者能夠理解具有如適於所涵蓋之特定用途之各種修改的各種實施例。
10:計算環境
12:原生中央處理單元(CPU)
14:記憶體
16:輸入/輸出裝置及/或介面
18:匯流排
20:原生暫存器
22:仿真器程式碼
30:客體指令
32:指令提取常式
34:指令轉譯常式
36:原生指令
40:仿真控制常式
50:雲端計算環境
52:雲端計算節點
54A:個人數位助理(PDA)或蜂巢式電話
54B:桌上型電腦
54C:膝上型電腦
54N:汽車電腦系統
60:硬體及軟體層
61:大型電腦
62:基於精簡指令集電腦(RISC)架構之伺服器
63:伺服器
64:刀鋒伺服器
65:儲存裝置
66:網路及網路連接組件
67:網路應用程式伺服器軟體
68:資料庫軟體
70:虛擬化層
71:虛擬伺服器
72:虛擬儲存器
73:虛擬網路
74:虛擬應用程式及作業系統
75:虛擬用戶端
80:管理層
81:資源佈建
82:計量及定價
83:使用者入口網站
84:服務等級管理
85:服務等級協議(SLA)規劃及實現
90:工作負載層
91:地圖測繪及導航
92:軟體開發及生命週期管理
93:虛擬教室教育遞送
94:資料分析處理
95:異動處理
96:純量乘法處理
100:計算環境
102:處理器
104:記憶體
106:輸入/輸出(I/O)裝置及/或介面
108:匯流排
120:指令提取組件
122:指令解碼單元
124:指令執行組件
126:記憶體存取組件
130:寫回組件
136:純量乘法組件
200:中央電子裝置複合體(CEC)
202:記憶體
204:處理器/中央處理單元(CPU)
206:輸入/輸出子系統
208:邏輯分割區
210:超管理器
212:處理器韌體
220:客體作業系統
222:程式
230:輸入/輸出控制單元
240:輸入/輸出(I/O)裝置
250:資料儲存裝置
252:程式
254:電腦可讀程式指令
260:純量乘法組件
300:執行密碼計算(PCC)指令
302:運算碼欄位
304:通用暫存器0
306:函式碼欄位
310:函式碼0
312:函式碼1
314:函式碼2
316:函式碼3
318:函式碼9
320:函式碼10
322:函式碼11
324:函式碼18
326:函式碼19
328:函式碼20
330:函式碼26
332:函式碼27
334:函式碼28
336:函式碼50
338:函式碼52
340:函式碼58
342:函式碼60
344:函式碼64
346:函式碼65
348:函式碼66
350:函式碼72/通用暫存器1
352:函式碼73/邏輯位址
400:參數區塊
402:128位元狀態字
404:參數區塊
405:結果X分量(Xr)
406:結果Y分量(Yr)
407:源X分量(Xs)
408:源Y分量(Ys)
409:純量(d)
410:經保留保存區域
412:參數區塊
413:結果X分量(Xr)
414:結果Y分量(Yr)
415:源X分量(Xs)
416:源Y分量(Ys)
417:純量(d)
418:經保留保存區域
420:參數區塊
421:結果X分量(Xr)
422:結果Y分量(Yr)
423:源X分量(Xs)
424:源Y分量(Ys)
425:經保留保存區域
426:參數區塊
427:結果X分量(Xr)
428:結果Y分量(Yr)
419:源X分量(Xs)
430:源Y分量(Ys)
431:純量(d)
432:經保留保存區域
500:步驟
502:步驟
504:步驟
506:步驟
508:步驟
510:步驟
512:步驟
514:步驟
516:步驟
518:步驟
520:步驟
522:步驟
524:步驟
526:步驟
528:步驟
在本說明書之結尾處之申請專利範圍中作為實例特定地指出且清楚地主張一或多個態樣。一或多個態樣之前述內容及目標、特徵及優點自結合隨附圖式進行的以下詳細描述顯而易見,在隨附圖式中:
圖1A描繪併有及使用本發明之一或多個態樣的計算環境之一個實例;
圖1B描繪根據本發明之一或多個態樣的圖1A之處理器的其他細節;
圖2描繪併有及使用本發明之一或多個態樣的計算環境之另一實例;
圖3A描繪根據本發明之一態樣的執行密碼計算(PCC)指令之一個格式;
圖3B描繪根據本發明之一態樣的由指令使用之隱含暫存器(通用暫存器0)的欄位之一個實例;
圖3C描繪根據本發明之一態樣的由指令支援之函式碼之一個實例;
圖3D描繪根據本發明之一態樣的由指令使用之另一隱含暫存器(通用暫存器1)的欄位之一個實例;
圖4A至圖4E描繪根據本發明之一態樣的由執行密碼計算指令之各種函式使用的參數區塊之內容之實例;
圖5A至圖5B描繪根據本發明之一態樣的促進計算環境內之處理的一個實例;
圖6A描繪併有及使用本發明之一或多個態樣的計算環境之另一實例;
圖6B描繪圖6A之記憶體的其他細節;
圖7描繪雲端計算環境之一個實施例;及
圖8描繪抽象模型層之一個實例。
300:執行密碼計算(PCC)指令
302:運算碼欄位
Claims (20)
- 一種用於促進一計算環境內之處理的電腦程式產品,該電腦程式產品包含: 一電腦可讀儲存媒體,其可由一處理電路讀取且儲存用於執行一方法之指令,該方法包含: 獲得一指令,該指令為一單個架構化指令;以及 執行該指令,該執行包含: 判定由待執行之該指令支援的複數個純量乘法函式中之一純量乘法函式; 獲得用於待執行之該純量乘法函式之輸入,該輸入包含至少一個源分量及一純量值;以及 使用該輸入執行該純量乘法函式以提供一輸出以待用於一密碼運算中。
- 如請求項1之電腦程式產品,其中該執行該純量乘法函式包含執行一橢圓曲線上的一點之純量乘法,該點係由該至少一個源分量指定。
- 如請求項2之電腦程式產品,其中該橢圓曲線上之該點係由該至少一個源分量中之一第一源分量及該至少一個源分量中之一第二源分量指定,且其中該第一源分量及該第二源分量經由使用與該指令相關聯的一暫存器定位的一參數區塊而輸入至該指令。
- 如請求項2之電腦程式產品,其中該執行該純量乘法函式包含沿著該橢圓曲線執行一系列相異點相加及相同點相加。
- 如請求項1之電腦程式產品,其中該執行該純量乘法函式包含使用以下等式:(Xr, Yr) < = d * (Xs, Ys),其中Xs及Ys為該至少一個源分量且為一橢圓曲線上的一點之座標,d為該純量值,*為純量乘法,且Xr及Yr為該純量乘法函式之所得座標,該等所得座標為該輸出。
- 如請求項5之電腦程式產品,其中該d包含自一個位元掃描至另一位元之複數個位元。
- 如請求項6之電腦程式產品,其中該一個位元為d之一最高有效位元,且該另一位元為d之一最低有效位元。
- 如請求項6之電腦程式產品,其中該執行該純量乘法函式進一步包含對於d之該複數個位元中等於一選擇值之一位元,進行一相異點相加,且在掃描每一位元之後,進行一相同點相加。
- 如請求項1之電腦程式產品,其中該複數個純量乘法函式包含用於複數個質數的複數個橢圓曲線數位簽章演算法函式之複數個純量乘法函式。
- 如請求項1之電腦程式產品,其中該複數個純量乘法函式包含用於複數個質數的複數個愛德華曲線數位簽章演算法函式之複數個純量乘法函式。
- 一種用於促進一計算環境內之處理的電腦系統,該電腦系統包含: 一記憶體;以及 一處理器,其耦接至該記憶體,其中該電腦系統經組態以執行一方法,該方法包含: 獲得一指令,該指令為一單個架構化指令;以及 執行該指令,該執行包含: 判定由待執行之該指令支援的複數個純量乘法函式中之一純量乘法函式; 獲得用於待執行之該純量乘法函式之輸入,該輸入包含至少一個源分量及一純量值;以及 使用該輸入執行該純量乘法函式以提供一輸出以待用於一密碼運算中。
- 如請求項11之電腦系統,其中該執行該純量乘法函式包含:執行一橢圓曲線上的一點之純量乘法,該點係由該至少一個源分量指定。
- 如請求項12之電腦系統,其中該橢圓曲線上之該點係由該至少一個源分量中之一第一源分量及該至少一個源分量中之一第二源分量指定,且其中該第一源分量及該第二源分量經由使用與該指令相關聯的一暫存器定位的一參數區塊而輸入至該指令。
- 如請求項11之電腦系統,其中該執行該純量乘法函式包含使用以下等式:(Xr, Yr) < = d * (Xs, Ys),其中Xs及Ys為該至少一個源分量且為一橢圓曲線上的一點之座標,d為該純量值,*為純量乘法,且Xr及Yr為該純量乘法函式之所得座標,該等所得座標為該輸出。
- 如請求項14之電腦系統,其中該d包含自一個位元掃描至另一位元之複數個位元,且其中該執行該純量乘法函式進一步包含對於d之該複數個位元中等於一選擇值之一位元,進行一相異點相加,且在掃描每一位元之後,進行一相同點相加。
- 一種用於促進一計算環境內之處理的電腦實施方法,該電腦實施方法包含: 由一處理器獲得一指令,該指令為一單個架構化指令;以及 執行該指令,該執行包含: 判定由待執行之該指令支援的複數個純量乘法函式中之一純量乘法函式; 獲得用於待執行之該純量乘法函式之輸入,該輸入包含至少一個源分量及一純量值;以及 使用該輸入執行該純量乘法函式以提供一輸出以待用於一密碼運算中。
- 如請求項16之電腦實施方法,其中該執行該純量乘法函式包含執行一橢圓曲線上的一點之純量乘法,該點係由該至少一個源分量指定。
- 如請求項17之電腦實施方法,其中該橢圓曲線上之該點係由該至少一個源分量中之一第一源分量及該至少一個源分量中之一第二源分量指定,且其中該第一源分量及該第二源分量經由使用與該指令相關聯的一暫存器定位的一參數區塊而輸入至該指令。
- 如請求項16之電腦實施方法,其中該執行該純量乘法函式包含使用以下等式:(Xr, Yr) < = d * (Xs, Ys),其中Xs及Ys為該至少一個源分量且為一橢圓曲線上的一點之座標,d為該純量值,*為純量乘法,且Xr及Yr為該純量乘法函式之所得座標,該等所得座標為該輸出。
- 如請求項19之電腦實施方法,其中該d包含自一個位元掃描至另一位元之複數個位元,且其中該執行該純量乘法函式進一步包含對於d之該複數個位元中等於一選擇值之一位元,進行一相異點相加,且在掃描每一位元之後,進行一相同點相加。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/276,689 | 2019-02-15 | ||
US16/276,689 US11157240B2 (en) | 2019-02-15 | 2019-02-15 | Perform cryptographic computation scalar multiply instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202034162A true TW202034162A (zh) | 2020-09-16 |
TWI777122B TWI777122B (zh) | 2022-09-11 |
Family
ID=69582126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109101193A TWI777122B (zh) | 2019-02-15 | 2020-01-14 | 用於執行密碼計算純量乘法指令之電腦程式產品、系統及方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11157240B2 (zh) |
EP (1) | EP3925158B1 (zh) |
JP (1) | JP7412062B2 (zh) |
KR (1) | KR20210118095A (zh) |
CN (1) | CN113424491B (zh) |
SG (1) | SG11202105612UA (zh) |
TW (1) | TWI777122B (zh) |
WO (1) | WO2020165335A1 (zh) |
ZA (1) | ZA202105874B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240146529A1 (en) * | 2022-10-26 | 2024-05-02 | Tencent America LLC | Interleaved scalar multiplication for elliptic curve cryptography |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2796177B1 (fr) | 1999-07-09 | 2001-10-12 | Oberthur Card Systems Sas | Procede de cryptographie mis en oeuvre entre deux entites echangeant des informations |
JP4752313B2 (ja) | 2004-09-30 | 2011-08-17 | ソニー株式会社 | 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム |
KR101194837B1 (ko) * | 2005-07-12 | 2012-10-25 | 삼성전자주식회사 | 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법 |
ES2672868T3 (es) | 2007-01-12 | 2018-06-18 | Nkt Photonics A/S | Mejoras en la duración de la vida útil y en el rendimiento de fibras microestructuradas mediante la carga a alta temperatura |
US8369517B2 (en) * | 2008-08-12 | 2013-02-05 | Inside Secure | Fast scalar multiplication for elliptic curve cryptosystems over prime fields |
US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
US8861721B2 (en) * | 2012-12-26 | 2014-10-14 | Umm Al-Qura University | System and method for securing scalar multiplication against simple power attacks |
US8873750B2 (en) * | 2013-03-14 | 2014-10-28 | International Business Machines Corporation | Instruction for performing a pseudorandom number generate operation |
US10270598B2 (en) * | 2016-08-26 | 2019-04-23 | Intel Corporation | Secure elliptic curve cryptography instructions |
US10404459B2 (en) | 2017-02-09 | 2019-09-03 | Intel Corporation | Technologies for elliptic curve cryptography hardware acceleration |
-
2019
- 2019-02-15 US US16/276,689 patent/US11157240B2/en active Active
-
2020
- 2020-01-14 TW TW109101193A patent/TWI777122B/zh active
- 2020-02-13 CN CN202080013667.9A patent/CN113424491B/zh active Active
- 2020-02-13 EP EP20705186.3A patent/EP3925158B1/en active Active
- 2020-02-13 WO PCT/EP2020/053743 patent/WO2020165335A1/en unknown
- 2020-02-13 KR KR1020217024784A patent/KR20210118095A/ko not_active Application Discontinuation
- 2020-02-13 JP JP2021538235A patent/JP7412062B2/ja active Active
- 2020-02-13 SG SG11202105612UA patent/SG11202105612UA/en unknown
-
2021
- 2021-08-17 ZA ZA2021/05874A patent/ZA202105874B/en unknown
Also Published As
Publication number | Publication date |
---|---|
JP2022520321A (ja) | 2022-03-30 |
ZA202105874B (en) | 2022-07-27 |
TWI777122B (zh) | 2022-09-11 |
EP3925158B1 (en) | 2023-07-19 |
KR20210118095A (ko) | 2021-09-29 |
EP3925158C0 (en) | 2023-07-19 |
SG11202105612UA (en) | 2021-06-29 |
US11157240B2 (en) | 2021-10-26 |
JP7412062B2 (ja) | 2024-01-12 |
CN113424491A (zh) | 2021-09-21 |
WO2020165335A1 (en) | 2020-08-20 |
EP3925158A1 (en) | 2021-12-22 |
CN113424491B (zh) | 2023-10-27 |
US20200264843A1 (en) | 2020-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI773960B (zh) | 用於以加密金鑰指令計算數位簽章驗證標記之電腦程式產品、電腦系統及電腦實施方法 | |
JP7388802B2 (ja) | セキュアなオペレーティング・システム・イメージのインクリメンタル復号および完全性検証 | |
WO2022121511A1 (en) | Secure computing resource deployment using homomorphic encryption | |
TWI743654B (zh) | 用於計算數位簽章認證驗證指令之電腦程式產品、電腦系統及電腦實施方法 | |
TWI811514B (zh) | 用於計算數位簽章認證標記指令之電腦程式產品、電腦系統及電腦實施方法 | |
TWI777122B (zh) | 用於執行密碼計算純量乘法指令之電腦程式產品、系統及方法 | |
TWI808749B (zh) | 用於安全客體映像及後設資料更新之電腦程式產品、電腦系統及電腦實施方法 | |
US12019772B2 (en) | Storing diagnostic state of secure virtual machines | |
JP7391979B2 (ja) | キー機能制御に基づくデータ移動および記憶キー設定 | |
US11764972B2 (en) | Generating a hybrid security certificate using multiple cryptosystems | |
US11487556B2 (en) | Command-type filtering based on per-command filtering indicator | |
WO2023279933A1 (en) | Accelerated cryptographic-related processing | |
JP2023552484A (ja) | 補助プロセッサ・コマンド・タイプ・フィルタリング | |
TW202040405A (zh) | 移動資料及設定儲存金鑰指令 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |