JP4817185B2 - 埋め込み符号を持ったコンピュータ命令値フィールド - Google Patents

埋め込み符号を持ったコンピュータ命令値フィールド Download PDF

Info

Publication number
JP4817185B2
JP4817185B2 JP2006276107A JP2006276107A JP4817185B2 JP 4817185 B2 JP4817185 B2 JP 4817185B2 JP 2006276107 A JP2006276107 A JP 2006276107A JP 2006276107 A JP2006276107 A JP 2006276107A JP 4817185 B2 JP4817185 B2 JP 4817185B2
Authority
JP
Japan
Prior art keywords
message digest
instruction
function
bit
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2006276107A
Other languages
English (en)
Other versions
JP2007080278A (ja
Inventor
ランドヴァル、ショーン
スミス、ロナルド
イエ、フィル、チーチョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007080278A publication Critical patent/JP2007080278A/ja
Application granted granted Critical
Publication of JP4817185B2 publication Critical patent/JP4817185B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stereo-Broadcasting Methods (AREA)
  • Manufacturing Of Printed Wiring (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
  • Complex Calculations (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、コンピュータ・システム・アーキテクチャに関し、特に、IBM(商標) z/Architecture(商標)を増強し、他のアーキテクチャによってエミュレート可能な新しい命令の処理に関する。
本発明の前にIBMは、1960年代にIBMのシステム360として知られていたマシンから始めて現在までの多くの非常に有能なエンジニアの研究により、コンピュータ・システムに対するその本質的な性質のために「メインフレーム」として知られることになった特別なアーキテクチャを作り出してきた。その動作原理は、IBMの発明者によって発明されて採用された命令であって「メインフレーム」に実装した時に実行させることができる命令を記述することによってそのマシンのアーキテクチャを示すものである。それらは長年にわたって示された通り、IBMのPrinciples of Operationに含めることによる重大な貢献として、「メインフレーム」によって表されるコンピューティング・マシンの状態の改善に大幅に貢献するものである。2000年12月に発行された「z/Architecture Principles of Operation」の第1版は、SA22−7832−00として標準的な公開解説書になっている。
米国特許第5551013号 米国特許第6009261号 米国特許第5574873号 米国特許第6308255号 米国特許第6463582号 米国特許第5790825号 2000年12月に発行された「z/Architecture Principles of Operation」の第1版(SA22−7832−00) 1995年4月17日にワシントンDCのNational Institute of Standards and Technologyより発行された「Secure Hash Standard, Federal Information Processing Standards」という資料の180−1
本明細書に記載する通り、他の新しい命令は、当技術分野を支援することになり、z/Architectureマシンに含めることができ、より単純なマシンにおいて他のものによりエミュレートすることも可能であると判断した。
本発明は、1)コンピュータ・アーキテクチャに従ってコンピュータの計算実行のために定義されたマシン命令を、実行のためにフェッチ(命令取出し)するステップであって、前記マシン命令が、オペコード・フィールドを備え、かつ、符号化された値であることを表す符号化フィールドと関連付けられており、前記符号化フィールドは、i)符号インジケータを含む符号インジケータ・フィールドと、ii)前記符号インジケータ・フィールドの一方の側に隣接し、第1の絶対値(数の大きさ)を含む第1の絶対値フィールドと、iii)前記符号インジケータ・フィールドの他の一方の側に隣接し、第2の絶対値(数の大きさ)を含む第2の絶対値フィールドとから構成されることを特徴とするステップと、2)前記オペコード・フィールドにより定義された機能を実行するために、前記符号化された値を使用するステップであって、前記符号化された値が、前記符号インジケータと、 前記第1の絶対値と、前記第2の絶対値とから構成されることを特徴とするステップとを備える方法、当該方法をコンピュータの処理回路に実行させるためのコンピュータ・プログラム、および当該方法を実行するための命令を含むコンピュータ・システム等を備えるシステムとを提供する。
本発明の好ましい諸実施形態の特徴は、添付図面に関連して取り上げた以下の詳細な説明により当業者には明らかになるであろう。
本明細書で論ずるメッセージ・ダイジェスト化命令は、メッセージまたはデータ・ファイルの圧縮表現を計算するためのものである。まず、中間メッセージ・ダイジェスト化計算命令および最終メッセージ・ダイジェスト化計算命令について論じ、次にこれらの命令を実行するための好ましいコンピュータ・システムの考察が続くものとする。代替例では、これらの命令を実行するための他のコンピュータ・システムをエミュレートする第2の好ましいコンピュータ・システムについて論ずることにする。
中間メッセージ・ダイジェスト化計算(KIMD:COMPUTEINTERMEDIATE MESSAGEDIGEST)
図1は、RRE命令フォーマットの中間メッセージ・ダイジェスト化計算(KIMD)命令の表現である。
最終メッセージ・ダイジェスト化計算(KLMD:COMPUTELAST MESSAGE DIGEST)
図2は、RRE命令フォーマットの最終メッセージ・ダイジェスト化計算(KLMD)命令の表現である。
汎用レジスタ0内の機能コードによって指定された機能が実行される。
この命令のビット16〜23およびR1フィールドは無視される。
汎用レジスタ0のビット位置57〜63は機能コードを収容している。図3および図4は、それぞれ中間メッセージ・ダイジェスト化計算および最終メッセージ・ダイジェスト化計算について割り当てられた機能コードを示している。他の機能コードはいずれも未割当てである。汎用レジスタ0のビット56はゼロでなければならず、そうではない場合、指定例外が認識される。汎用レジスタ0の他のビットはいずれも無視される。汎用レジスタ1は、ストレージ内のパラメータ・ブロックの左端のバイトの論理アドレスを収容している。24ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置40〜63の内容はアドレスを構成し、ビット位置0〜39の内容は無視される。31ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置33〜63の内容はアドレスを構成し、ビット位置0〜32の内容は無視される。64ビットのアドレッシング・モードでは、汎用レジスタ1のビット位置0〜63の内容はアドレスを構成する。
中間メッセージ・ダイジェスト化計算用の機能コードは図3に示されている。
最終メッセージ・ダイジェスト化計算用の機能コードは図4に示されている。
他の機能コードはいずれも未割当てである。
照会機能は他の機能の可用性を示す手段を提供する。汎用レジスタR2およびR2+1の内容は照会機能の場合は無視される。
他のすべての機能の場合、第2オペランドはパラメータ・ブロック内の初期チェーン値を使用する機能コードによって指定された通りに処理され、その結果はチェーン値に取って代わる。最終メッセージ・ダイジェスト化計算の場合、その動作はパラメータ・ブロック内のメッセージ・ビット長も使用する。その動作は、第2オペランド・ロケーションの末尾に到達するまでまたはCPUが決定したバイト数の処理が完了するまでのいずれか先に発生する時点まで続行される。その結果は条件コードとして示される。
R2フィールドは、汎用レジスタの奇偶対を指定するものであって、偶数レジスタを指定しなければならず、そうではない場合、指定例外が認識される。
第2オペランドの左端のバイトのロケーションはR2汎用レジスタの内容によって指定される。第2オペランド・ロケーションのバイト数は汎用レジスタR2+1に指定される。
動作の一部として、汎用レジスタR2内のアドレスは第2オペランドから処理されたバイト数だけ増分され、汎用レジスタR2+1内の長さは同じ数だけ減分される。アドレスおよび長さの構成および更新はアドレッシング・モードに依存する。
24ビットのアドレッシング・モードでは、汎用レジスタR2のビット位置40〜63の内容は第2オペランドのアドレスを構成し、ビット位置0〜39の内容は無視され、更新済みアドレスのビット40〜63は汎用レジスタR2内の対応ビットに取って代わり、更新済みアドレスのビット位置40からの桁上げは無視され、汎用レジスタR2のビット位置32〜39の内容はゼロに設定される。31ビットのアドレッシング・モードでは、汎用レジスタR_のビット位置33〜63の内容は第2オペランドのアドレスを構成し、ビット位置0〜32の内容は無視され、更新済みアドレスのビット33〜63は汎用レジスタR2内の対応ビットに取って代わり、更新済みアドレスのビット位置33からの桁上げは無視され、汎用レジスタR2のビット位置32の内容はゼロに設定される。64ビットのアドレッシング・モードでは、汎用レジスタR2のビット位置0〜63の内容は第2オペランドのアドレスを構成し、更新済みアドレスのビット0〜63は汎用レジスタR_の内容に取って代わり、ビット位置0からの桁上げは無視される。
24ビットと31ビットの両方のアドレッシング・モードでは、汎用レジスタR2+1のビット位置32〜63の内容は、第2オペランド内のバイト数を指定する32ビットの符号なし2進整数を形成し、更新済み値は汎用レジスタR2+1のビット位置32〜63の内容に取って代わる。64ビットのアドレッシング・モードでは、汎用レジスタR2+1のビット位置0〜63の内容は、第2オペランド内のバイト数を指定する64ビットの符号なし2進整数を形成し、更新済み値は汎用レジスタR2+1の内容に取って代わる。
24ビットまたは31ビットのアドレッシング・モードでは、汎用レジスタR2およびR2+1のビット位置0〜31の内容は常に変化しない。
図5は、上述の汎用レジスタの内容を示している。アクセス・レジスタ・モードでは、アクセス・レジスタ1およびR2は、それぞれパラメータ・ブロックおよび第2オペランドを収容するアドレス・スペースを指定する。
その結果は、処理が第2オペランドの左端から始まり、1ブロックずつ右に進行した場合と同様に得られる。第2オペランド内のすべてのソース・バイトの処理が完了する(正常完了という)かまたはCPUが決定したブロック数であって第2オペランドの長さより小さいブロック数の処理が完了する(部分完了という)と、動作が終了する。CPUが決定したブロック数は、モデルによって決まり、命令が実行されるたびに異なる数になる可能性がある。CPUが決定したブロック数は通常、非ゼロである。特定の異常な状況では、この数はゼロになる可能性があり、進行なしで条件コード3が設定される可能性がある。しかし、CPUは、この進行なしケースの無限の再発を防止する。
チェーン値フィールドが第2オペランドの任意の部分にオーバラップする場合、チェーン値フィールド内の結果は予測不能である。
中間メッセージ・ダイジェスト化計算の場合、汎用レジスタR2+1に指定された第2オペランド内のバイト数の処理が完了すると、正常完了が発生する。最終メッセージ・ダイジェスト化計算の場合、汎用レジスタR2+1に指定された第2オペランド内のすべてのバイトが処理された後、埋込み動作が実行され、その後、正常完了が発生する。
正常完了により動作が終了すると、条件コード0が設定され、R2+1内の結果値はゼロになる。部分完了により動作が終了すると、条件コード3が設定され、R2+1内の結果値は非ゼロになる。
第2オペランド長が最初はゼロである場合、第2オペランドはアクセスされず、汎用レジスタR2およびR2+1は変更されず、条件コード0が設定される。中間メッセージ・ダイジェスト化計算の場合、パラメータ・ブロックはアクセスされない。しかし、最終メッセージ・ダイジェスト化計算の場合、空ブロック(L=0)ケースの埋込み動作が実行され、その結果はパラメータ・ブロックに保管される。
他のCPUおよびチャネル・プログラムが監視する通り、パラメータ・ブロックおよび記憶オペランドへの参照は多重アクセス参照である可能性があり、これらのストレージ・ロケーションへのアクセスは必ずしもブロック並行ではなく、これらのアクセスまたは参照の順序は未定義である。
第2オペランドのうち、命令の単一実行で処理されるものより大きい部分について、アクセス例外が報告される可能性があるが、第2オペランドの長さを超えるロケーションまたは処理中の現行ロケーションを4Kバイト以上超えるロケーションについては、アクセス例外は認識されない。
((機能説明で使用する記号))
図6の記号は、中間メッセージ・ダイジェスト化計算機能および最終メッセージ・ダイジェスト化計算機能の以下の説明で使用する。セキュア・ハッシュ・アルゴリズムの詳細な説明は、1995年4月17日にワシントンDCのNational Institute of Standards and Technologyより発行された「Secure Hash Standard, Federal Information Processing Standards」という資料の180−1に記載されている可能性がある。
KIMD照会(KIMD機能コード0)
この命令によって使用されるオペランドおよびアドレスのロケーションは図5に示されている通りである。
KIMD照会パラメータ・ブロックは図7に示されているフォーマットを有する。
128ビットの状況ワードはパラメータ・ブロックに保管される。このフィールドのビット0〜127は、それぞれ中間メッセージ・ダイジェスト化計算命令の機能コード0〜127に対応する。あるビットが1である場合、対応する機能がインストールされており、そうではない場合、その機能はインストールされていない。
KIMD照会機能の実行が完了すると、条件コード0が設定され、条件コード3はこの機能には適用不能である。
KIMD−SHA−1(KIMD機能コード1)
この命令によって使用されるオペランドおよびアドレスのロケーションは図5に示されている通りである。
KIMD−SHA−1機能に使用されるパラメータ・ブロックは図8に示されているフォーマットを有する。
20バイトの中間メッセージ・ダイジェスト化は、パラメータ・ブロックに20バイトのチェーン値を指定したSHA−1ブロック・ダイジェスト化・アルゴリズムを使用して、オペランド2の64バイトのメッセージ・ブロック用に生成される。生成された中間メッセージ・ダイジェスト化は、出力チェーン値(OCV)とも呼ばれ、パラメータ・ブロックのチェーン値フィールドに保管される。KIMD−SHA−1動作は図9に示されている。
KLMD照会(KLMD機能コード0)
この命令によって使用されるオペランドおよびアドレスのロケーションは図5に示されている通りである。
KLMD照会機能に使用されるパラメータ・ブロックは図10に示されているフォーマットを有する。
128ビットの状況ワードはパラメータ・ブロックに保管される。このフィールドのビット0〜127は、それぞれ最終メッセージ・ダイジェスト化計算命令の機能コード0〜127に対応する。あるビットが1である場合、対応する機能がインストールされており、そうではない場合、その機能はインストールされていない。
KLMD照会機能の実行が完了すると、条件コード0が設定され、条件コード3はこの機能には適用不能である。
KLMD−SHA−1(KLMD機能コード1)
この命令によって使用されるオペランドおよびアドレスのロケーションは図5に示されている通りである。
KLMD−SHA−1機能に使用されるパラメータ・ブロックは図11に示されているフォーマットを有する。
オペランド2のメッセージ(M)用のメッセージ・ダイジェスト化は、パラメータ・ブロックにチェーン値およびメッセージ・ビット長情報を指定したSHA−1アルゴリズムを使用して生成される。
オペランド2のメッセージの長さが64バイトに等しいかまたはそれより大きい場合、中間メッセージ・ダイジェスト化は、パラメータ・ブロックに20バイトのチェーン値を指定したSHA−1ブロック・ダイジェスト化・アルゴリズムを使用して、64バイトのメッセージ・ブロックごとに生成され、生成された中間メッセージ・ダイジェスト化は、出力チェーン値(OCV)とも呼ばれ、パラメータ・ブロックのチェーン値フィールドに保管される。この動作は図12に示されており、残りのメッセージが64バイト未満になるまで繰り返す。メッセージまたは残りのメッセージの長さが0バイトである場合、図13の動作が実行される。
メッセージまたは残りのメッセージの長さが1バイトから55バイトまで(両端を含む)である場合、図14の動作が実行され、この長さが56バイトから63バイトまで(両端を含む)である場合、図15の動作が実行される。このメッセージ・ダイジェスト化は、出力チェーン値(OCV)とも呼ばれ、パラメータ・ブロックのチェーン値フィールドに保管される。
((KLMD機能で使用される追加の記号))
以下の追加の記号は、最終メッセージ・ダイジェスト化計算機能の説明で使用される。
KLMD機能図用の記号の説明
L ストレージ内のオペランド2のバイト長
p<n> n個の埋込みバイト;左端のバイトは16進の80であり、他のバイトはいずれも16進の00である。
z<56> 0からなる56個の埋込みバイトである。
Mbl 全メッセージのビット長を指定する8バイトの値
q<64> 56バイト分の0とそれに続く8バイトのmblからなる埋込みブロック
KIMDおよびKLMDに関する特殊条件
以下のいずれかが発生した場合、指定例外が認識され、他のアクションは一切行われない。
1.汎用レジスタ0のビット56がゼロではない。
2.汎用レジスタ0のビット57〜63が未割当ての機能コードまたはアンインストールされた機能コードを指定する。
3.R2フィールドが奇数レジスタまたは汎用レジスタ0を指定する。
4.中間メッセージ・ダイジェスト化計算の場合、第2オペランド長が指定された機能のデータ・ブロック・サイズの倍数ではない(中間メッセージ・ダイジェスト化計算機能のデータ・ブロック・サイズを決定するためには図3を参照されたい)。この指定例外条件は照会機能には適用されず、最終メッセージ・ダイジェスト化計算にも適用されない。
結果条件コード:
0 正常完了
1 ――
2 ――
3 部分完了
プログラム例外:
アクセス(Access)
オペランド2およびメッセージ・ビット長の取出し;
チェーン値の取出しおよび保管
動作(Operation)
メッセージ・セキュリティ支援機能がインストールされていない場合
指定(Specification)
プログラミング上の注意:
1.汎用レジスタ0のビット56は、将来の拡張のために予約されており、ゼロに設定しなければならない。
2.条件コード3が設定されると、それぞれ汎用レジスタR2およびR2+1内の第2オペランド・アドレスおよび長さならびにパラメータ・ブロック内のチェーン値は、通常、プログラムが単純に分岐してその命令に戻り、その動作を継続できるように更新される。
異常な状況では、CPUは、進行なしケースの場合に無限の再発を防止する。したがって、プログラムは、無限ループに対する露出なしに条件コード3が設定される場合に必ず、安全に分岐してその命令に戻ることができる。
3.第2オペランドの長さが最初に非ゼロであり、条件コード0が設定される場合、レジスタは条件コード3の場合と同様に更新され、このケースのチェーン値は、それらが同じチェーンの一部であった場合と同様に追加のオペランドを処理できるようなものになっている。
4.中間メッセージ・ダイジェスト化計算命令と最終メッセージ・ダイジェスト化計算命令は、セキュリティ・サービス・アプリケーション・プログラミング・インターフェース(API)によって使用されるように設計されている。これらのAPIは、大きすぎて一度にすべてがストレージ内に収まらないようなものを含む、ほとんど無制限のサイズのメッセージのダイジェスト化を計算するための手段をプログラムに提供する。これは、プログラムがメッセージを部分単位でAPIに渡せるようにすることにより実施される。以下のプログラミング上の注意は、これらのAPIに関して記載されている。
5.メッセージの第1の部分を処理する前に、プログラムはチェーン値フィールド用の初期値を設定しなければならない。SHA−1の場合、初期チェーン値は以下のようにリストされる。
H0=x‘6745 2301’
H1=x‘EFCD AB89’
H2=x‘98BA DCFE’
H3=x‘1032 5476’
H4=x‘C3D2 E1F0’
6.最後の部分以外のメッセージ部分を処理する場合、プログラムは512ビット(64バイト)の倍数単位でメッセージ部分を処理し、中間メッセージ・ダイジェスト化計算命令を使用しなければならない。
7.最後のメッセージ部分を処理する場合、プログラムは元のメッセージの長さをビット単位で計算し、この64ビットの値をパラメータ・ブロックのメッセージ・ビット長フィールドに入れ、最終メッセージ・ダイジェスト化計算命令を使用しなければならない。
8.最終メッセージ・ダイジェスト化計算命令では、第2オペランドがブロック・サイズの倍数である必要はない。その命令は、まず完全なブロックを処理し、すべてのブロックを処理する前に条件コード3を設定することができる。すべての完全なブロックを処理した後、その命令は、第2オペランドの残りの部分を含む、埋込み動作を実行する。これは、SHA−1ブロック・ダイジェスト化・アルゴリズムの1回または2回の反復を必要とする可能性がある。
9.最終メッセージ・ダイジェスト化計算命令は、長さが8ビットの倍数であるメッセージに関するSHA−1埋込みを提供する。8ビットの倍数ではないビット・ストリングにSHA−1を適用する場合、プログラムは、埋込みを実行し、中間メッセージ・ダイジェスト化計算命令を使用しなければならない。
暗号コプロセッサ:
好ましい実施形態では暗号コプロセッサを提供するが、これは、本明細書に記載した命令とともに使用でき、更に暗号メッセージを実行し、チェーニング及び暗号化の用途のために適切な命令とともに使用することができるタスクを様々なチェーン・メッセージの中で支援するためのものである。
図17は、複数の実行パイプラインを有する汎用マイクロプロセッサ上のすべての内部実行ユニットに共通のデータ・パスに直接接続される暗号コプロセッサを示している。マイクロプロセッサ内部バス(1)は暗号制御ユニット(2)に接続された他のすべての実行ユニットに共通するものであり、この制御ユニットはそれが実行しなければならないプロセッサ命令用のバスを監視する。
暗号制御ユニットは、中央演算処理装置用の使用可能なハードウェア(E0・・・En、または複数の実行パイプラインを有する好ましい実施形態ではその組合せによる)を提供する汎用マイクロプロセッサ上の中央演算処理装置のすべての内部実行ユニットに共通のデータ・パスに直接接続された暗号コプロセッサを提供する。コマンド・レジスタ(3)内で暗号命令に遭遇すると、制御ユニット(2)は、使用可能なハードウェアから適切なアルゴリズムを呼び出す。オペランド・データは、入力FIFOレジスタ(4)を介して同じ内部マイクロプロセッサ・バスにより送達される。動作が完了すると、フラグが状況レジスタ(6)内に設定され、その結果は、出力FIFOレジスタ(5)から読み出すために使用可能である。
本発明の図示した好ましい実施形態は、システムのパフォーマンス上の目標に応じて特定の実現例が必要とする数のハードウェア・エンジンを含めるために拡張可能になるように設計されている。入出力レジスタ(7)へのデータ・パスはすべてのエンジンに共通するものである。
本発明の暗号機能の好ましい実施形態は、CPU上の実行ユニット・ハードウェアで実現され、この実現例により、暗号化動作を呼び出し実行するための待ち時間の低減が可能になり、効率が高まる。
この待ち時間の低減は、特に、少量のデータのみが関連するときに、多くの暗号化動作を頻繁に実行するシステム内の汎用プロセッサの機能を大幅に強化する。これにより、セキュア・オンライン・トランザクションを実行する際に関連するプロセスを著しく加速することができる実現例が可能になる。オンライン・トランザクションを保護する最も一般的な方法は、3つのアルゴリズムからなるセットを必要とする。第1のアルゴリズムはセッション中に1回だけ使用され、ハードウェアまたはソフトウェアで実現することができるが、その他の動作はセッションのすべてのトランザクションで呼び出され、外部ハードウェアを呼び出す待ち時間のコストならびにソフトウェアでアルゴリズムを実行するための時間のコストはいずれも本発明によって解消される。
図18では、長変位機構コンピュータ(LongDisplacement Facility Computer)で設計された命令フォーマットの商用実現例において、IBM内部で実験的に証明した通り、効果的に使用可能な上述のマイクロプロセッサを有するメインフレーム・コンピュータで実現された好ましい実施形態で有するものを実現する方法を概念的に示しており、その命令は、通常、現在は「C」プログラマであるプログラマによって使用される。ストレージ・メディアに保管されたこれらの命令フォーマットは、本来はz/Architecture IBMサーバで、または代わって他のアーキテクチャを実行するマシンで実行することができる。その命令は、既存のおよび将来のIBMメインフレーム・サーバ内で、ならびにIBMのその他のマシン(たとえば、pSeries(商標)サーバおよびxSeries(商標)サーバ)上でエミュレートすることができる。その命令は、IBM、インテル社、AMD、サンマイクロシステムズ社、その他によって製造されたハードウェアを使用する多種多様なマシン上でLinuxを実行するマシン内で実行することができる。z/Architecture下でそのハードウェア上で実行することに加えて、Linux(商標)は、一般に実行がエミュレーション・モードである場合に、ハーキュリーズ、UMX、FXI、またはプラットフォーム・ソリューションによるエミュレーションを使用するマシンと同様に使用することができる。エミュレーション・モードでは、エミュレート中の特定の命令がデコードされ、「C」サブルーチンまたはドライバ、あるいは好ましい実施形態の説明を理解した後に当技術分野の技能の範囲内である特定のハードウェア用のドライバを提供するその他の何らかの方法のように、個々の命令を実現するためにサブルーチンが構築される。米国特許第5551013号、米国特許第6009261号、米国特許第5574873号、米国特許第6308255号、米国特許第6463582号、および米国特許第5790825号を含むがこれらに限定されない様々なソフトウェアおよびハードウェア・エミュレーション特許は、当業者にとって使用可能なターゲット・マシンのために異なるマシンについて設計された命令フォーマットのエミュレーションを達成するための様々な既知の方法ならびに上記で参照したものによって使用される商用ソフトウェア技法を例示している。
好ましい実施形態では、非スーパースカラ命令用の既存の長変位命令フォーマットは、ベース・レジスタと12ビットの符号なし変位またはベース・レジスタとインデックス・レジスタと12ビットの符号なし変位の加算によりオペランド・ストレージ・アドレスを形成し、新しい長変位命令フォーマットは、ベース・レジスタと20ビットの符号付き変位またはベース・レジスタとインデックス・レジスタと20ビットの符号付き変位の加算によりオペランド・ストレージ・アドレスを形成する。
図18によって図示した通り、これらの命令は、プロセッサによってハードウェア内で、または異なるネイティブ命令セットを有するコンピュータ上で実行されるソフトウェアによる前記命令・セットのエミュレーションにより、実行される。
図18では、#501は、命令およびデータを収容するコンピュータ・メモリ・ストレージを示している。本発明に記載された長変位命令は最初はこのコンピュータ内に保管されるであろう。#502は、コンピュータ・メモリから命令を取り出すためのメカニズムを示し、それが取り出したこれらの命令のローカル・バッファリングも収容することができる。次に生の命令は命令デコーダ#503に転送され、そこでどのタイプの命令が取り出されたかを決定する。#504は、命令を実行するためのメカニズムを示している。これは、メモリ#501からレジスタにデータをロードすること、レジスタからメモリにデータを戻して保管すること、または何らかのタイプの算術演算あるいは論理演算を実行することを含むことができる。この実行すべき動作の正確なタイプは、命令デコーダによってあらかじめ決定されている。本発明に記載されている長変位命令はここで実行されるであろう。長変位命令が本来はコンピュータ・システム上で実行される場合、この図は上述の通りで完成である。しかし、長変位命令を含む命令セット・アーキテクチャが他のコンピュータ上でエミュレートされる場合、上記のプロセスはホスト・コンピュータ#505上のソフトウェアで実現されるであろう。このケースでは、上記のメカニズムは概して、エミュレータ・ソフトウェア内の1つまたは複数のソフトウェア・サブルーチンとして実現されるであろう。いずれのケースでも、命令は取り出され、デコードされ、実行される。
詳細には、これらの設計済み命令は、オペランド・ストレージ・アドレスを形成するために使用される12ビットの符号なし変位を有する既存の命令フォーマットを備えたコンピュータ・アーキテクチャで使用することができ、また、オペランド・ストレージ・アドレスを形成するために使用される拡張符号付き変位を有する追加の変位ビット、好ましくは20ビット、を提供する追加の命令フォーマットを備えたコンピュータでも使用することができる。これらのコンピュータ設計済み命令は、コンピュータ・ストレージ・メディアに保管され、自身を使用するプロセッサの実行コードを生成するためのコンピュータ・ソフトウェアを有し、コンピュータ・ストレージ・メディア501に保管されたコンパイラまたはエミュレータ/インタープリタによって使用するための命令コードを有し、その命令コードの第1の部分は、実行すべき動作を指定した演算コードと、それが関与するオペランドを指定する第2の部分を有する。長変位命令では、長変位機構命令の使用により追加のアドレスを直接アドレス指定することができる。
図18によって図示した通り、これらの命令は、プロセッサによってハードウェア内で、または異なるネイティブ命令セットを有するコンピュータ上で実行されるソフトウェアによる前記命令・セットのエミュレーションにより、実行される。
好ましい実施形態のコンピュータ・アーキテクチャにより、変位フィールドは、DLという12ビットの最下位部分、すなわち、オペランド1用のDL1またはオペランド2用のDL2と、DHという8ビットの最上位部分、すなわち、オペランド1用のDH1またはオペランド2用のDH2という2つの部分になるものとして定義される。
さらに、好ましいコンピュータ・アーキテクチャは、演算コードがビット位置0〜7および40〜47になり、R1というターゲット・レジスタがビット位置8〜11になり、X2というインデックス・レジスタがビット位置12〜15になり、B2というベース・レジスタがビット位置16〜19になり、2つの部分からなる変位のうちのDL2という第1の部分がビット位置20〜31になり、DH2という第2の部分がビット位置32〜39になるような命令フォーマットを有する。
このコンピュータ・アーキテクチャは、演算コードがビット位置0〜7および40〜47になり、R1というターゲット・レジスタがビット位置8〜11になり、R3というソース・レジスタがビット位置12〜15になり、B2というベース・レジスタがビット位置16〜19になり、2つの部分からなる変位のうちのDL2という第1の部分がビット位置20〜31になり、DH2という第2の部分がビット位置32〜39になるような命令フォーマットを有する。
さらに、長変位機構を有するこのコンピュータ・アーキテクチャ命令は、演算コードがビット位置0〜7および40〜47になり、R1というターゲット・レジスタがビット位置8〜11になり、M3というマスク値がビット位置12〜15になり、B2というベース・レジスタがビット位置16〜19になり、2つの部分からなる変位のうちのDL2という第1の部分がビット位置20〜31になり、DH2という第2の部分がビット位置32〜39になるような命令フォーマットを有する。
図示した通り、その長変位機構を有するこの好ましいコンピュータ・アーキテクチャは、演算コードがビット位置0〜7および40〜47になり、I2という即時値がビット位置8〜15になり、B2というベース・レジスタがビット位置16〜19になり、2つの部分からなる変位のうちのDL1という第1の部分がビット位置20〜31になり、DH1という第2の部分がビット位置32〜39になるような命令フォーマットを有する。
この長変位機構コンピュータ・アーキテクチャは、作成された新しい命令のうち、新しい20ビットの符号なし変位を有する命令フォーマットのみを使用する命令を使用するときに効果的に機能する。
このコンピュータ・アーキテクチャの特定の一実施形態は、12ビットの符号なし変位のみを有する命令フォーマットを持ち、また現在では、変位の上位8ビットであるDHフィールドがすべてゼロであるときに既存の12ビットの符号なし変位値を有するか、または変位の上位8ビットであるDHフィールドが非ゼロであるときに20ビットの符号付き値を有するような、新しい命令フォーマットであると規定された、既存の命令を使用するものである。
RRE命令フォーマットの中間メッセージ・ダイジェスト化計算(KIMD)命令の表現である。 RRE命令フォーマットの最終メッセージ・ダイジェスト化計算(KLMD)命令の表現である。 図1のKIMD命令の機能コードを示す表である。 図2のKLMD命令の機能コードを示す表である。 図1および図2のKIMD命令およびKLMD命令に関する汎用レジスタ割当ての表現である。 SHA−1ブロック・ダイジェスト化・アルゴリズム用の記号を示す図である。 KIMD照会用のパラメータ・ブロックのフォーマットを示す図である。 KIMD−SHA−1用のパラメータ・ブロックのフォーマットを示す図である。 KIMD−SHA−1動作を示す図である。 KLMD照会用のパラメータ・ブロックのフォーマットを示す図である。 KLMD−SHA−1用のパラメータ・ブロックのフォーマットを示す図である。 KLMD−SHA−1全ブロック動作を示す図である。 KLMD−SHA−1空ブロック動作を示す図である。 KLMD−SHA−1部分ブロック・ケース1動作を示す図である。 KLMD−SHA−1部分ブロック・ケース2動作を示す図である。 KIMD命令とKLMD命令の実行の優先順位を示す表である。 暗号コプロセッサを示す図である。 好ましい実施形態による命令およびデータを収容するコンピュータ・メモリ・ストレージの一般化した好ましい実施形態ならびにこれらの設計済み命令を使用するコンピュータ・システム上でまたは設計済み命令のエミュレーションで使用する通り、これらの命令を取り出し、デコードし、実行するためのメカニズムを示す図である。

Claims (10)

  1. コンピュータ・システムにおいてメッセージ・ダイジェスト化命令を実行する方法であって、該メッセージ・ダイジェスト化命令は照会機能を含み、該コンピュータ・システムは複数の汎用レジスタ、コンピュータ・メモリと通信可能な汎用マイクロプロセッサを含み、該汎用マイクロプロセッサは1以上の実行ユニットを含み、該実行ユニットはコンピュータ・メモリからフェッチされた命令を実行し、
    前記方法は、
    メッセージ・ダイジェスト化命令をフェッチするステップと、
    前記メッセージ・ダイジェスト化命令をフェッチすることに応答して、予め定義された機能コードによって指定された実行されるべきメッセージ・ダイジェスト化動作を決定するステップであって、前記メッセージ・ダイジェスト化命令中で特定される前記予め定義された機能コードは、メッセージ・ダイジェスト化計算動作又は機能照会動作のいずれか1つを定義する、前記決定するステップと、
    前記決定された実行されるべきメッセージ・ダイジェスト化動作がメッセージ・ダイジェスト化計算動作である場合、
    記メッセージ・ダイジェスト化計算動作を実行するステップであって、前記メッセージ・ダイジェスト化計算動作が前記メッセージ・ダイジェスト化命令で指定された、前記コンピュータ・メモリ上のロケーションに対して、ハッシュ・アルゴリズムを実行することを含む、前記実行するステップと、
    前記決定された実行されるべきメッセージ・ダイジェスト化動作が機能照会動作である場合、
    状況ワード・ビットをパラメータ・ブロック内に保存するステップであって、前記状況ワード・ビットのそれぞれは前記メッセージ・ダイジェスト化命令の機能としてインストールされている機能のコードのそれぞれに対応し、当該状況ワードの各ビットが1である場合に、当該ビットに対応する前記機能が前記汎用マイクロプロセッサ上にインストールされており、そうでない場合に前記機能がインストールされていない、前記保存するステップと
    を含む、前記方法。
  2. 前記メッセージ・ダイジェスト化計算動作を実行するステップが、
    x1)パラメータ・ブロック内のチェーン値フィールド用の20バイトのチェーン値を取得するステップと、
    x2)前記オペランドの64バイト・ブロックを入手するステップと、
    x3)前記20バイトのチェーン値を用いて、前記オペランドの64バイト・ブロックをハッシュし、新しい20バイトのチェーン値を生成するステップと、
    x4)前記オペランドの継続的なブロックのためにステップx2及びx3を繰り返すステップと、
    x5)前記生成された新しい20バイトのチェーン値を保存するステップと
    を含む、請求項1に記載の方法。
  3. 前記ハッシュするステップが、セキュアハッシュアルゴリズム(SHA−1)を使用することを含む、請求項2に記載の方法。
  4. 取得されるべきチェーン値として、20バイトの16進数値、‘6745 2301’、‘EFCD AB89’、‘98BA DCFE’、‘1032 5476’、‘C3D2 E1F0’を格納するステップをさらに含む、請求項2に記載の方法。
  5. 前記メッセージ・ダイジェスト化命令が、中間メッセージ・ダイジェスト化計算命令又は最終メッセージ・ダイジェスト化計算命令のいずれかを含む、請求項1に記載の方法。
  6. 前記メッセージ・ダイジェスト化命令が、前記汎用マイクロプロセッサの命令アーキテクチャにネイティブであるフォーマットである、請求項1に記載の方法。
  7. 前記メッセージ・ダイジェスト化命令が、前記汎用マイクロプロセッサの命令アーキテクチャにネイティブでないフォーマットである場合、
    前記メッセージ・ダイジェスト化命令の命令をエミュレートするための所定のソフトウェア・サブルーチンを識別するために前記メッセージ・ダイジェスト化命令を解読するステップと、
    前記所定のソフトウェア・サブルーチンを実行するステップと
    を含む、請求項1に記載の方法。
  8. 前記メッセージ・ダイジェスト化命令が
    オペコード・フィールドを備え、かつ、符号化された値であることを表す符号化フィールドと関連付けられており、前記符号化フィールドは、
    符号インジケータを含む符号インジケータ・フィールドと、
    前記符号インジケータ・フィールドの一方の側に隣接し、第1の絶対値(数の大きさ)を含む第1の絶対値フィールドと、
    前記符号インジケータ・フィールドの他の一方の側に隣接し、第2の絶対値(数の大きさ)を含む第2の絶対値フィールドと
    から構成される、請求項1に記載の方法。
  9. 前記オペコード・フィールドにより定義された機能を実行するために、前記符号化された値を使用し、該符号化された値が、
    前記符号インジケータと、
    前記第1の絶対値と、
    前記第2の絶対値と
    から構成される、請求項に記載の方法。
  10. コンピュータ・システムにおいてメッセージ・ダイジェスト化命令を実行するコンピュータ・プログラムであって、該メッセージ・ダイジェスト化命令は照会機能を含み、該コンピュータ・システムは複数の汎用レジスタ、コンピュータ・メモリと通信可能な汎用マイクロプロセッサを含み、該汎用マイクロプロセッサは1以上の実行ユニットを含み、該実行ユニットはコンピュータ・メモリからフェッチされた命令を実行し、
    前記コンピュータ・システムに、
    メッセージ・ダイジェスト化命令をフェッチするステップと、
    前記メッセージ・ダイジェスト化命令をフェッチすることに応答して、予め定義された機能コードによって指定された実行されるべきメッセージ・ダイジェスト化動作を決定するステップであって、前記メッセージ・ダイジェスト化命令中で特定される前記予め定義された機能コードは、メッセージ・ダイジェスト化計算動作又は機能照会動作のいずれか1つを定義する、前記決定するステップと、
    前記決定された実行されるべきメッセージ・ダイジェスト化動作がメッセージ・ダイジェスト化計算動作である場合、
    前記メッセージ・ダイジェスト化計算動作を実行するステップであって、前記メッセージ・ダイジェスト化計算動作が前記メッセージ・ダイジェスト化命令で指定された、前記コンピュータ・メモリ上のロケーションに対して、ハッシュ・アルゴリズムを実行することを含む、前記実行するステップと、
    前記決定された実行されるべきメッセージ・ダイジェスト化動作が機能照会動作である場合、
    状況ワード・ビットをパラメータ・ブロック内に保存するステップであって、前記状況ワード・ビットのそれぞれは、前記メッセージ・ダイジェスト化命令の機能としてインストールされている機能のコードのそれぞれに対応し、当該状況ワードの各ビットが1である場合に、当該ビットに対応する前記機能が前記汎用マイクロプロセッサ上にインストールされており、そうでない場合に前記機能がインストールされていない、前記保存するステップと
    を実行させる前記コンピュータ・プログラム。
JP2006276107A 2003-05-12 2006-10-10 埋め込み符号を持ったコンピュータ命令値フィールド Expired - Lifetime JP4817185B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/436,230 US7159122B2 (en) 2003-05-12 2003-05-12 Message digest instructions
US10/436,230 2003-05-12

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006506214A Division JP4817189B2 (ja) 2003-05-12 2004-05-04 メッセージ・ダイジェスト化命令を実行するための方法、システムおよびコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2007080278A JP2007080278A (ja) 2007-03-29
JP4817185B2 true JP4817185B2 (ja) 2011-11-16

Family

ID=33417120

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006506214A Expired - Lifetime JP4817189B2 (ja) 2003-05-12 2004-05-04 メッセージ・ダイジェスト化命令を実行するための方法、システムおよびコンピュータ・プログラム
JP2006276107A Expired - Lifetime JP4817185B2 (ja) 2003-05-12 2006-10-10 埋め込み符号を持ったコンピュータ命令値フィールド

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006506214A Expired - Lifetime JP4817189B2 (ja) 2003-05-12 2004-05-04 メッセージ・ダイジェスト化命令を実行するための方法、システムおよびコンピュータ・プログラム

Country Status (11)

Country Link
US (2) US7159122B2 (ja)
EP (1) EP1623316B1 (ja)
JP (2) JP4817189B2 (ja)
CN (1) CN1799024B (ja)
AT (1) ATE350702T1 (ja)
DE (1) DE602004004101T2 (ja)
ES (1) ES2279365T3 (ja)
GB (1) GB2416609B (ja)
PL (1) PL1623316T3 (ja)
RU (1) RU2344467C2 (ja)
WO (1) WO2004099975A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230813A1 (en) * 2003-05-12 2004-11-18 International Business Machines Corporation Cryptographic coprocessor on a general purpose microprocessor
KR101123742B1 (ko) * 2005-12-23 2012-03-16 삼성전자주식회사 사용자 인터페이스와 소프트웨어 간의 신뢰 경로 설정 방법및 장치
JP5263498B2 (ja) * 2008-07-09 2013-08-14 セイコーエプソン株式会社 信号処理プロセッサ及び半導体装置
JP5263497B2 (ja) * 2008-07-09 2013-08-14 セイコーエプソン株式会社 信号処理プロセッサ及び半導体装置
US20100250965A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US20100246815A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the kasumi cipher algorithm
US8832464B2 (en) * 2009-03-31 2014-09-09 Oracle America, Inc. Processor and method for implementing instruction support for hash algorithms
US8654970B2 (en) * 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
US8356185B2 (en) * 2009-10-08 2013-01-15 Oracle America, Inc. Apparatus and method for local operand bypassing for cryptographic instructions
US9851969B2 (en) 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor
US10521231B2 (en) 2010-06-24 2019-12-31 International Business Machines Corporation Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
US8312258B2 (en) * 2010-07-22 2012-11-13 Intel Corporation Providing platform independent memory logic
US8737604B2 (en) 2011-05-09 2014-05-27 Advanced Micro Devices, Inc. Processor with architecture implementing the advanced encryption standard
US8874933B2 (en) * 2012-09-28 2014-10-28 Intel Corporation Instruction set for SHA1 round processing on 128-bit data paths
US9201629B2 (en) 2013-03-14 2015-12-01 International Business Machines Corporation Instruction for performing a pseudorandom number seed operation
US9276750B2 (en) * 2013-07-23 2016-03-01 Intel Corporation Secure processing environment measurement and attestation
US9787278B1 (en) 2016-09-26 2017-10-10 International Business Machines Corporation Lossless microwave switch based on tunable filters for quantum information processing
US10348506B2 (en) * 2016-09-30 2019-07-09 International Business Machines Corporation Determination of state of padding operation
US9680653B1 (en) * 2016-10-13 2017-06-13 International Business Machines Corporation Cipher message with authentication instruction
US10630312B1 (en) * 2019-01-31 2020-04-21 International Business Machines Corporation General-purpose processor instruction to perform compression/decompression operations
US10831497B2 (en) * 2019-01-31 2020-11-10 International Business Machines Corporation Compression/decompression instruction specifying a history buffer to be used in the compression/decompression of data
US11061685B2 (en) * 2019-02-27 2021-07-13 International Business Machines Corporation Extended asynchronous data mover functions compatibility indication

Family Cites Families (26)

* Cited by examiner, † Cited by third party
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
US4578530A (en) * 1981-06-26 1986-03-25 Visa U.S.A., Inc. End-to-end encryption system and method of operation
DE68926200T2 (de) 1988-08-11 1996-10-17 Ibm Geheime Datenübertragung mittels Steuervektoren
US5200999A (en) * 1991-09-27 1993-04-06 International Business Machines Corporation Public key cryptosystem key management based on control vectors
AU6629894A (en) 1993-05-07 1994-12-12 Apple Computer, Inc. Method for decoding guest instructions for a host computer
US5666411A (en) * 1994-01-13 1997-09-09 Mccarty; Johnnie C. System for computer software protection
US5551013A (en) 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
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
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US5790825A (en) 1995-11-08 1998-08-04 Apple Computer, Inc. Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions
US6009261A (en) 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
US6226750B1 (en) * 1998-01-20 2001-05-01 Proact Technologies Corp. Secure session tracking method and system for client-server environment
JPH11249873A (ja) * 1998-03-02 1999-09-17 Mitsubishi Electric Corp ドライバ機能の動的管理方式及び動的管理方法
US6308255B1 (en) 1998-05-26 2001-10-23 Advanced Micro Devices, Inc. Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system
US6463582B1 (en) 1998-10-21 2002-10-08 Fujitsu Limited Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method
KR20020026370A (ko) 1999-08-09 2002-04-09 러셀 비. 밀러 메시지 인증 코드를 발생시키기 위한 방법 및 장치
JP2001142694A (ja) * 1999-10-01 2001-05-25 Hitachi Ltd データフィールドのエンコード方法、情報フィールドの拡張方法、及び、コンピュータシステム
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 コード実行装置およびコード配布方法
US7213148B2 (en) * 2001-06-13 2007-05-01 Corrent Corporation Apparatus and method for a hash processing system using integrated message digest and secure hash architectures
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

Also Published As

Publication number Publication date
JP4817189B2 (ja) 2011-11-16
ES2279365T3 (es) 2007-08-16
ATE350702T1 (de) 2007-01-15
RU2005138547A (ru) 2007-06-20
PL1623316T3 (pl) 2007-05-31
DE602004004101T2 (de) 2007-07-05
JP2007080278A (ja) 2007-03-29
US20070055886A1 (en) 2007-03-08
DE602004004101D1 (de) 2007-02-15
CN1799024A (zh) 2006-07-05
WO2004099975A2 (en) 2004-11-18
US20040230814A1 (en) 2004-11-18
EP1623316A2 (en) 2006-02-08
CN1799024B (zh) 2010-04-28
GB2416609B (en) 2006-03-22
GB0518811D0 (en) 2005-10-26
US7159122B2 (en) 2007-01-02
WO2004099975A3 (en) 2006-01-05
US7725736B2 (en) 2010-05-25
RU2344467C2 (ru) 2009-01-20
JP2006526202A (ja) 2006-11-16
GB2416609A (en) 2006-02-01
EP1623316B1 (en) 2007-01-03

Similar Documents

Publication Publication Date Title
JP4817185B2 (ja) 埋め込み符号を持ったコンピュータ命令値フィールド
JP5357181B2 (ja) コンピュータ・システム、その動作方法、及び、コンピュータ・プログラム
US7770024B2 (en) Security message authentication instruction
JP5039905B2 (ja) 2つのオペランドに対して演算を行い、その後オペランドの元の値を格納するための命令
JP5052678B2 (ja) コンピュータを動作させる方法及びシステム
JP5657074B2 (ja) 命令が利用可能な汎用レジスタの数を拡張するための上位ワード・ファシリティ
US20080201554A1 (en) Optional Function Multi-Function Instruction
JP2011509474A (ja) コンピュータを動作させる方法及びシステム
JP2011509473A (ja) Rotatetheninsertselectedbitsファシリティ及びそのための命令
EP1684167A2 (en) Method of processing signed displacement computer instruction

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090105

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090105

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100226

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110301

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110301

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110629

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110629

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110818

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20110818

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110823

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4817185

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

EXPY Cancellation because of completion of term