JPH0816825B2 - Cryptographic apparatus and method - Google Patents

Cryptographic apparatus and method

Info

Publication number
JPH0816825B2
JPH0816825B2 JP20711489A JP20711489A JPH0816825B2 JP H0816825 B2 JPH0816825 B2 JP H0816825B2 JP 20711489 A JP20711489 A JP 20711489A JP 20711489 A JP20711489 A JP 20711489A JP H0816825 B2 JPH0816825 B2 JP H0816825B2
Authority
JP
Japan
Prior art keywords
control vector
key
cryptographic
bit
input
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
JP20711489A
Other languages
Japanese (ja)
Other versions
JPH02106787A (en
Inventor
ステイブン・エム・マチイース
デニス・ジイー・アブラハム
ウイリアム・シイー・アーノルド
ドナルド・ビイー・ジヨンソン
ラメシユ・ケイ・カーン
アン・ヴイ・リ
ロステイスロー・プライマツク
ステイブ・アール・ホワイト
ジヨン・デイー・ウイルキンズ
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH02106787A publication Critical patent/JPH02106787A/en
Publication of JPH0816825B2 publication Critical patent/JPH0816825B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、広くデータ処理技術に関し、特にデータ処
理における暗号処理適用業務に関する。
DETAILED DESCRIPTION OF THE INVENTION A. Field of Industrial Application The present invention relates generally to data processing technology, and more particularly to cryptographic processing application in data processing.

B.従来技術及びその課題 本発明に関する以下の関連特許出願を、参考文献とし
て挙げる。
B. Prior Art and Problems Thereof The following related patent applications relating to the present invention are listed as references.

(a)B.ブラッチェル他による米国特許第4850017号
「制御値確立のための生成装置による暗号キーの制
御」。
(A) B. Brachel et al., US Pat. No. 4850017, "Controlling cryptographic keys by a generator for establishing control values".

(b)S.マチアス他による米国特許第4941176号「制御
ベクトルによるキーの機密保護管理」。
(B) U.S. Pat. No. 4,491,176 by S. Machias et al.

(c)S.マチアス他による米国特許第4918728号「制御
ベクトルによるデータの暗号処理」。
(C) U.S. Pat. No. 4,918,728 by S. Mathias et al., "Cryptographic processing of data with control vectors."

(d)S.マチアス他による米国特許第4924514号「制御
ベクトルによるPIN処理」。
(D) U.S. Pat. No. 4,924,514 by S. Mathias et al., "PIN processing with control vector".

(e)B.ブラッチェル他による米国特許第4908861号
「公開一方向暗号化関数に基づく修正探索コードによる
データ確認」。
(E) U.S. Pat. No. 4,908,861 by B. Brachel et al., "Data Confirmation with Modified Search Code Based on Public One-Way Cryptographic Functions".

制御ベクトルの概念: 制御ベクトルとは、暗号キーの使用属性を定義し、あ
るネットワーク装置から別の装置への暗号キー伝達を制
御する、簡単なデータ構造である。制御ベクトルは暗号
化手順によってキーに結合し暗号を形成するが、この手
順によると、制御ベクトルが暗号ハードウェアに正しく
適用された場合のみ、キーが非暗号化(decrypt)され
る。
Control Vector Concept: A control vector is a simple data structure that defines cryptographic key usage attributes and controls the transmission of cryptographic keys from one network device to another. The control vector is bound to the key by an encryption procedure to form a cipher, which decrypts the key only if the control vector is correctly applied to the cryptographic hardware.

第7図は、64ビット制御ベクトルを128ビット暗号キ
ーに暗号化結合するシステムであり、前述の関連特許出
願(ブラッチェル他及びマチアス他著)に記載されてい
る。簡便のため、平文XをキーKにより暗号化する手順
をeK(X)=Yと書き表わす。(Yはその結果生じる暗
号文を示す。)その逆の、暗号文YをキーKにより解読
して平文Xを再生する手順をdK(Y)=Xと書き表わ
す。128ビットのキー暗号化キーKK(KKLと名付ける左半
分64ビットと、KKRと名付ける右半分64ビットより成
る)及びレジスタ40′の64ビット制御ベクトルCによ
り、64ビット・キーKを暗号化する手順は、前述の「制
御ベクトルによるキーの機密保護管理」(マチアス他)
に記載される多重暗号化の応用であるが、これをeKKL+
C(dKKR+C(eKKL+C(K)))と書き表わす。
“+”は排他的論理和を意味する。暗号化は以下の手順
で行われる。まず排他的論理和装置46において、64ビッ
ト制御ベクトルCとレジス42のKKL、KKRとの排他的論理
和をそれぞれ求める。代わって暗号化装置41において、
レジスタ44のKをKKL+Cにより暗号化し、その結果を
非暗号化装置43においてKKR+Cにより非暗号化(復号
化ともいう。以下、同じ)し、その結果を暗号化装置45
においてKKL+Cにより暗号化する。eKKL+C(dKKR+
C(eKKL+C(K)))と書くのは煩雑なので、排他的
論理和操作、すなわちKK(より正確にはKKLとKKR各々)
との排他的論理和を求める操作をKK.Cと書き表わす。*
KKと書くと、キーが64ビットでなく128ビットであるこ
とを示す。つまり、KKはアステリスクが付くと128ビッ
ト・キー、アステリスクなしだと64ビット・キーであ
る。e*KK.C(K)は、CとKKの左半分及び右半分との
排他的論理和結果の128ビット・キーKKによるKを暗号
化することを意味する。
FIG. 7 is a system for cryptographically coupling a 64-bit control vector to a 128-bit cryptographic key and is described in the aforementioned related patent application (Bratchell et al. And Mathias et al.). For simplicity, the procedure for encrypting the plaintext X with the key K is written as eK (X) = Y. (Y indicates the resulting ciphertext.) On the contrary, the procedure of deciphering the ciphertext Y with the key K and reproducing the plaintext X is written as dK (Y) = X. A procedure for encrypting a 64-bit key K with a 128-bit key encryption key KK (consisting of 64 bits on the left half named KKL and 64 bits on the right half named KKR) and a 64-bit control vector C in register 40 '. Is the above-mentioned "key security management by control vector" (Machias et al.)
It is an application of multiple encryption described in, but this is eKKL +
It is written as C (dKKR + C (eKKL + C (K))).
"+" Means exclusive OR. The encryption is performed by the following procedure. First, the exclusive OR device 46 calculates the exclusive OR of the 64-bit control vector C and the KKL and KKR of the register 42, respectively. Instead, in the encryption device 41,
K of the register 44 is encrypted by KKL + C, the result is non-encrypted (also referred to as decryption) by KKR + C in the non-encryption device 43, and the result is encrypted by the encryption device 45.
At KKL + C. eKKL + C (dKKR +
Since writing C (eKKL + C (K))) is complicated, an exclusive OR operation, that is, KK (more accurately, KKL and KKR respectively)
The operation for obtaining the exclusive OR of and is written as KK.C. *
Writing KK indicates that the key is 128 bits instead of 64 bits. That is, KK is a 128-bit key with an asterisk and a 64-bit key without an asterisk. e * KK.C (K) means to encrypt K by the 128-bit key KK which is the exclusive OR result of C and the left and right halves of KK.

第8図に示すのは、暗号化された値K(Y=e*KK.C
(K))を、キーKK及び制御ベクトルCを使って非暗号
化するシステムである。これは以下の手順で行われる。
まず前述のようにCとKKL、KKRの排他的論理和をそれぞ
れ求める。代わって非暗号化装置47において、暗号化値
KをKKL+Cにより非暗号化し、その結果を暗号化装置4
8においてKKR+Cにより暗号化し、その結果を非暗号化
装置49においてKKL+Cにより非暗号化する。第8図に
よれば、KK、C、及びeKKL+C(dKKR+C(eKKL+C
(K)))が正しく指定された場合のみKを再生できる
のであり、Cのたとえ1ビットでも間違って指定すれ
ば、不定不測の値が現れることが判断できよう。
The encrypted value K (Y = e * KK.C) is shown in FIG.
(K)) is a system in which the key KK and the control vector C are used for non-encryption. This is done by the following procedure.
First, as described above, the exclusive OR of C, KKL, and KKR is obtained. Instead, in the non-encryption device 47, the encrypted value K is non-encrypted by KKL + C, and the result is encrypted by the encryption device 4
It is encrypted with KKR + C at 8 and the result is not encrypted with KKL + C at the decryption device 49. According to FIG. 8, KK, C, and eKKL + C (dKKR + C (eKKL + C
(K))) can be reproduced only when it is correctly specified, and if one bit of C is incorrectly specified, it can be judged that an indeterminate and unexpected value appears.

(より正確に言うと、もしもCと等しくない任意長制御
ベクトルC′及びKKにより暗号文eKKL+C(dKKR+C
(eKKL+C(K))))が非暗号化されたとしても、K
に等しい平文が再生される可能性は2**64分の1であ
り、暗号処理には影響ない。侵入者は、直接検索という
単純方法を用いた暗号分析を行なってKの値を偶然発見
したり、求める平文が現れるまであらゆるキーを使って
暗号文を非暗号化するかもしれないが、いずれの場合も
かなりの回数の暗号化/非暗号化手順が必要となる。) ANSI X3.92(1981年)に述べるように、データ暗号
化アルゴリズム(DEA)は、第7図及び第8図に記述す
る暗号化/非暗号化方式を使用して、制御ベクトルで操
作が可能な暗号化アルゴリズムの一例である。制御ベク
トル概念は、キーの長さと等しい制御ベクトルを指定す
ることにより同様のいずれの暗号文にも、また多重暗号
技術を用いれば多重暗号文にも適用できることが判断さ
れよう。
(To be more precise, if an arbitrary length control vector C'and KK that is not equal to C is used, the ciphertext eKKL + C (dKKR + C
(EKKL + C (K)))) is not encrypted, but K
The probability that a plaintext equal to is reproduced is 1 in 2 ** 64, which does not affect the cryptographic processing. An intruder may accidentally find the value of K by performing cryptographic analysis using a simple method called direct search, or decrypt the ciphertext with any key until the desired plaintext appears. Even then, a considerable number of encryption / decryption procedures are required. ) As described in ANSI X3.92 (1981), the Data Encryption Algorithm (DEA) uses the encrypted / unencrypted schemes described in Figures 7 and 8 to operate on control vectors. It is an example of a possible encryption algorithm. It will be appreciated that the control vector concept can be applied to any similar ciphertext by specifying a control vector equal to the key length, and to multiple ciphertexts using multiple cryptography.

暗号装置のネットワーク構成: 第3図に、暗号装置のネットワーク接続(ホスト、制
御装置、ワークステーション等)を示す。これはデータ
処理装置2の第一暗号装置100及び、暗号配布チャネル1
000を通じて接続された他の暗号装置200、300・・・よ
り構成され、暗号のやりとりが可能である。すなわち送
信装置が暗号化、受信装置が非暗号化を行うことによ
り、各装置は秘密通信が行える。各装置は、送信装置で
準備されたメッセージにメッセージ確認コードを付加す
ることによってデータ伝送を確認し、受信装置でメッセ
ージ及びメッセージ確認コードを確認する。そして各装
置は、暗号装置内で安全にキーの生成・暗号化を行い、
暗号化されたキー受信装置へ伝送される。受信装置内に
はキー・データ・セット(後にデータを暗号化し確認す
る際、あるいは他のキー管理操作のため使用する)があ
り、キーはその中に適切な形で保管される。このような
キー管理の手順、プロトコル及び方法は、マチアス他の
関連特許出願(b)、(c)及び(d)に大部分記載さ
れている。
Network Configuration of Cryptographic Device: FIG. 3 shows the network connection (host, control device, workstation, etc.) of the cryptographic device. This is the first encryption device 100 of the data processing device 2 and the encryption distribution channel 1.
It is composed of other cryptographic devices 200, 300 ... Connected through 000, and can exchange ciphers. That is, the transmitting device performs encryption and the receiving device performs non-encryption, whereby each device can perform secret communication. Each device confirms the data transmission by adding the message confirmation code to the prepared message in the transmitting device, and confirms the message and the message confirmation code in the receiving device. Then, each device securely generates and encrypts the key in the encryption device,
It is transmitted to the encrypted key receiving device. Within the receiving device is a key data set (for later use in encrypting and verifying the data, or for other key management operations) in which the keys are stored in an appropriate manner. Such key management procedures, protocols and methods are largely described in the related patent applications (b), (c) and (d) of Mathias et al.

第4図は、第3図の暗号装置100の拡大図である。各
暗号装置は、1セットの暗号命令52を作成する暗号機構
(CF)4、キー記憶装置22、暗号機構アクセス・プログ
ラム(CFAP)54、及びユーザー適用業務プログラム55か
ら構成される。CFは128ビット・マスター・キーKMにあ
たるレジスタ18を含み、KMは左半分64ビット(KML)と
右半分64ビット(KMR)とから成る。(CFで実行される
暗号アルゴリズムはデータ暗号化アルゴリズム(DEA)
であるとする。)CF外に保管されたすべてのキーは、第
7図に述べたようにマスター・キー及び制御ベクトルの
元で暗号化され、キー記憶装置22に保管される。マスタ
ー・キーによる暗号化されたキー記憶装置22内のキー
は、CFで処理可能な形になっているため、処理可能キー
と呼ばれる。他のキー(キー暗号化キーすなわちKEK)
により暗号化されたキーは、他装置へ配布される形、つ
まり他の装置への送信あるいは他の装置からの受信を行
うのに好都合な形で保管されている。(注:キーは、生
成・暗号化されて時には受信形になり、生成した同一の
装置で再受信することが可能である。)典型的には、1
組の各装置が次の2つのKEKを共有する。a)キーを暗
号化して、第一の装置から第二の装置へ伝送する。第一
KEK(KEK1とする)。b)キーを暗号化して、第二の装
置から第一の装置へ伝送する、第二KEK(KEK2とす
る)。第一の装置においては、KEK1は(第二の装置への
送信のためキーを暗号化するゆえに)制御ベクトルを通
じてKEK送信キーとして示されており、一方KEK2は(第
二の装置から受信のためキーを非暗号化するゆえに)制
御ベクトルを通じてKEK受信キーとして示されている。
第二の装置においては、KEK1とKEK2の役割は逆、すなわ
ちKEK1がKEK受信キーでKEK2がKEK送信キーである。暗号
機構4は、64ビットの乱数を生成する乱数生成器26も含
む。乱数生成器の出力結果は、CFによってのみ読取り可
能である。暗号機構はまた、機密保護前面パネル・イン
タフェース58及び携帯キー入力装置60への接続用ポート
59を含む。前面パネルにはキー活動化物理スイッチ61が
あり、キー入力装置60を通じてマスター・キーを含めた
キーの入力を可能にしている。(暗号装置100に相当す
る暗号構成要素については、前述のマチアス他の関連特
許出願(b)、(c)及び(d)に詳しい。) 再び第4図に戻る。暗号命令セット52は、キー管理や
データ暗号化・確認機能を支援したり、個人識別番号
(PIN)確認に基づく財務取引処理を行なったりする、
数個の暗号命令から成る。マチアス他の関連特許出願
(b)、(c)及び(d)には暗号処理適用業務の3つ
の例が詳しく述べられている。典型的には、暗号文の提
示要求により、ユーザー適用業務プログラム55が起動す
る。要求を満たすのに必要な手順を追ってみる。例えば
62において、マクロ呼出しの形でCFAPに対して要求が出
され、1以上のパラメータ(暗号化されていないデー
タ、暗号化されたデータ、キー及び暗号文、65において
キー記憶装置22内暗号化キーへのアクセスに使うキー・
ラベル等)が指定され、よってCFAP54は要求操作実行可
能であるとする。または64において1以上の暗号命令を
実行すべく、必要に応じて(新規の暗号キー及び暗号文
を生成するため、あるいはデータやキーを暗号化、非暗
号化または再暗号化して、適切な暗号化または非暗号化
形に出力するためなど)CFAPがCF 4を呼出すこともあ
る。結果は、65においてCFAPが、新規作成された暗号化
キーをキー記憶装置22に保管するか、あるいは66におい
て適用業務プログラムの要求に対し1以上の値を返す
か、あるいはその両方が起こり得る。64でのCFからCFAP
への状況コード、及び66でのCFAPから適用業務プログラ
ムへの状況コードは、正常または異常の状況(要求操作
が実行されたか否かを表わす)を示す。
FIG. 4 is an enlarged view of the encryption device 100 shown in FIG. Each cryptographic device comprises a cryptographic mechanism (CF) 4, which creates a set of cryptographic instructions 52, a key storage device 22, a cryptographic mechanism access program (CFAP) 54, and a user application program 55. The CF includes a register 18 corresponding to a 128-bit master key KM, and the KM consists of a left half 64 bits (KML) and a right half 64 bits (KMR). (The encryption algorithm executed by CF is the data encryption algorithm (DEA)
Suppose ) All keys stored outside the CF are encrypted under the master key and control vector as described in FIG. 7 and stored in the key store 22. The key in the key storage device 22 encrypted by the master key is called a processable key because it is in a form that can be processed by the CF. Another key (key encryption key or KEK)
The key encrypted by is stored in a form convenient for being distributed to another device, that is, for transmitting to another device or receiving from another device. (Note: The key is generated and encrypted, sometimes in the receiving form, and can be re-received by the same device that generated it.) Typically 1
Each device in the set shares the following two KEKs. a) The key is encrypted and transmitted from the first device to the second device. first
KEK (KEK1). b) A second KEK (denoted as KEK2) that encrypts the key and transmits it from the second device to the first device. In the first device, KEK1 is shown as the KEK transmit key through the control vector (because it encrypts the key for transmission to the second device), while KEK2 (for reception from the second device). It is shown as the KEK receive key through the control vector (since the key is unencrypted).
In the second device, the roles of KEK1 and KEK2 are reversed, ie KEK1 is the KEK receive key and KEK2 is the KEK send key. The cryptographic mechanism 4 also includes a random number generator 26 that generates a 64-bit random number. The output result of the random number generator can only be read by the CF. The cryptographic mechanism also has a port for connection to the security front panel interface 58 and the portable key input device 60.
Including 59. There is a key activation physical switch 61 on the front panel, which enables the input of keys including the master key through the key input device 60. (The cryptographic components corresponding to the cryptographic device 100 are detailed in the related patent applications (b), (c) and (d) of Matthias et al.). Returning to FIG. Cryptographic instruction set 52 supports key management and data encryption / confirmation functions, and performs financial transaction processing based on personal identification number (PIN) confirmation.
It consists of several cryptographic instructions. Related patent applications (b), (c) and (d) of Mathias et al. Detail three examples of cryptographic processing applications. Typically, the user application program 55 is activated by a ciphertext presentation request. Follow the steps necessary to meet your requirements. For example
At 62, a request is made to the CFAP in the form of a macro call and one or more parameters (unencrypted data, encrypted data, key and ciphertext, at 65 the encryption key in the keystore 22). Key to access
It is assumed that the CFAP 54 can execute the requested operation. Or 64 to execute one or more cryptographic instructions, as needed (to generate new cryptographic keys and ciphertexts, or to encrypt, de-encrypt or re-encrypt data or keys, and CFAP may also call CF 4 (eg to output in encrypted or unencrypted form). The result may be that the CFAP stores the newly created encryption key in the key store 22 at 65 and / or returns one or more values at the request of the application program at 66, or both. CF to CFAP at 64
To the application program at 66 and a status code from CFAP to the application program indicate a normal or abnormal status (indicating whether the requested operation has been performed).

制御ベクトルによる操作可能キー管理: キー属性は普通、秘密でなく公開(つまりシステム・
ユーザーが知ったり推測したりできる)なので、制御ベ
クトルは、公開すなわち機密保護なしの値として定義さ
れる。一方、システムに定義された暗号キーは機密保護
されなくてはならないので、制御ベクトルをキーに「リ
ンク(連係)」する際にキーが露見しないようにする必
要がある。(注:本発明は機密パスワードを制御ベクト
ルに組み込む技術にも関する。) 第5図は、制御ベクトルのキーへのリンクを図示した
ものである。この例では、キー生成命令KGENを使用して
おり、これは暗号機構によりキーが生成されるようにす
る。この手順を追ってみる。手順71で、キー生成のため
適用業務AがCFAPを呼び出す。KGEN命令を実行する前に
手順72で、CFAPが生成されるキーの属性を指定する64ビ
ットの制御ベクトルを生成する。制御ベクトルCは手順
73で、KGEN命令の一部としてCFに渡される。それに対し
手順75でCFが、(CFによってのみ読取り可能な乱数の生
成器を使って)64ビットの乱数を生成し、それが奇数パ
リティとなる。これは生成されたキーKを表わす。K
は、手順73で渡された制御ベクトルCの排他的論理和機
構により暗号化され、マスター・キーKMが、第7図で述
べた暗号化規則によりアクセスされる。e*KM.C(K)
と書き表わす暗号化キーは、手順76でCFAPに返される。
(注:e*KM.C(K)とは、KML+C、KMR+C・・・など
種々のキーによる多重暗号化を簡潔に表現したものであ
る。)代わって、場合によってCFAPが暗号化キーe*K
M.C(K)及び手順77の制御ベクトルCを、手順78でキ
ー記憶装置22に保管するか(この場合は、手順79のキー
・ラベルが手順80で適用業務プログラムに返される)、
または値が手順80で要求元適用業務プログラムに返され
る。いずれの場合も本発明の、キー生成手順及び暗号化
により生成済キーに制御ベクトルを「リンク」する手順
は、制御ベクトルの公開性および非機密性を確保し、し
かも暗号機構外に生成済キーを明らかな形で露見させる
ものではないことが、判断されよう。
Operable Key Management with Control Vectors: Key attributes are usually public, not secret (ie system
The control vector is defined as a public or unsecured value, as it can be known or inferred by the user. On the other hand, the cryptographic keys defined in the system must be kept secret so that the keys must not be exposed when "linking" a control vector to the key. (Note: The present invention also relates to the technique of incorporating a secret password into a control vector.) FIG. 5 illustrates a link of a control vector to a key. In this example, the key generation instruction KGEN is used, which causes the key to be generated by the cryptographic mechanism. I will follow this procedure. In step 71, application A calls CFAP for key generation. Before executing the KGEN instruction, in step 72, CFAP generates a 64-bit control vector that specifies the attributes of the generated key. Control vector C is a procedure
At 73, passed to CF as part of KGEN instruction. On the other hand, in step 75, the CF generates a 64-bit random number (using a random number generator readable only by CF), which is odd parity. This represents the generated key K. K
Is encrypted by the exclusive OR mechanism of the control vector C passed in step 73, and the master key KM is accessed by the encryption rule described in FIG. e * KM.C (K)
The encryption key written as is returned to CFAP in step 76.
(Note: e * KM.C (K) is a simple expression of multiple encryption using various keys such as KML + C, KMR + C, etc.) In some cases, CFAP uses encryption key e * instead. K
Whether MC (K) and the control vector C of step 77 are stored in the key storage device 22 in step 78 (in this case, the key label of step 79 is returned to the application program in step 80),
Or the value is returned to the requesting application program in step 80. In any case, the key generation procedure of the present invention and the procedure of "linking" the control vector to the generated key by encryption ensure the openness and non-confidentiality of the control vector, and further, generate the key outside the cryptographic mechanism. It will be judged that this is not an obvious one.

制御ベクトルは機密性のあるものではないが、それが
リンクされるキーの使用時にはいつでも、暗号機構への
入力データとして供給、指定、提供されてなくてはなら
ない。制御ベクトル中のどのビットも、キーが生成され
暗号化されたときに指定されたものと同じでなくてはな
らない。Cを正しく指定しなかった場合、不定不測のキ
ー値が発生する。暗号化キー及び制御ベクトルが、CFAP
からCFまでの中で出された暗号命令のパラメータとして
扱われる大きな手順の中では、制御ベクトルにより以前
に暗号化されたキーの再生(すなわちキーの非暗号化)
が必ずある。こうして暗号機構は、制御ベクトルを検査
して、キーが確実に要求元暗号命令の入力パラメータと
して使用されるようにする。この、制御ベクトルの予備
検査をCV検査と呼ぶ。暗号命令に、1以上の暗号化キー
及び制御ベクトルがパラメータとして提供されると、CV
検査は制御ベクトルの合致検査だけでなく、必要に応じ
て1制御ベクトルの他制御に対する相互検査も行なう。
暗号命令の処理に際し暗号機構が要求する手順を第6図
に示すが、基本的には各命令は次の3つの機能から成
る。a)CV検査81、b)キー再生82、c)要求命令の処
理83。最初の要求操作はCV検査81である。これは、制御
ベクトルの合致検査と、要求されたキー・パラメータの
使用が要求命令に合致するどうかの判別から成る。もし
CV検査が通過できないと、命令実行は中断される。どん
な場合でも、状態を知らせる状況コードがCFAPに返され
る。CV検査が合格すれば処理は続行する。次の要求操作
はキー再生82、すなわち暗号化されたキーの非暗号化で
ある。制御ベクトル及びキーを暗号化結合する方法によ
れば、少しでも不正(制御ベクトルのビットを変更して
キーに正しくない属性を与えること)があれば、不定不
測のキー値が発生する。要するに、目的の暗号キーは暗
号命令によっては再生されない。最後の要求操作は、要
求暗号命令の処理83である。制御ベクトル及びキーが正
確に指定されれば、命令は正しく処理される。しかしも
し不正が起これば、操作結果は無効な値となる。CV検
査、キー再生、命令実行の手順については、前述のマチ
アス他の関連特許出願(b)にさらに詳述されている。
The control vector is not sensitive, but must be supplied, specified, and provided as input to the cryptographic mechanism whenever the key to which it is linked is used. Every bit in the control vector must be the same as that specified when the key was generated and encrypted. If C is not specified correctly, an unexpected key value will occur. The encryption key and control vector are CFAP
To CF in a large procedure that is treated as a parameter of the cryptographic instructions issued, the control vector regenerates the key previously encrypted (ie the key is not encrypted).
There is always. The cryptographic mechanism thus examines the control vector to ensure that the key is used as an input parameter of the requesting cryptographic instruction. This preliminary inspection of the control vector is called CV inspection. If one or more encryption keys and control vectors are provided as parameters to the cipher command, CV
The inspection is not only a coincidence inspection of control vectors, but also a mutual inspection for one control vector and another control as required.
FIG. 6 shows the procedure required by the cryptographic mechanism when processing cryptographic instructions, but each instruction basically has the following three functions. a) CV inspection 81, b) key reproduction 82, c) request command processing 83. The first required operation is CV inspection 81. This consists of a control vector match check and a determination of whether the use of the requested key parameters matches the requested instruction. if
If the CV check cannot be passed, instruction execution is interrupted. In all cases, a status code indicating the status is returned to CFAP. If the CV inspection passes, the process continues. The next requested operation is key regeneration 82, that is, non-encryption of the encrypted key. According to the method of cryptographically combining the control vector and the key, an indeterminate and unpredictable key value is generated even if there is any illegality (changing the bits of the control vector to give an incorrect attribute to the key). In short, the intended cryptographic key is not regenerated by the cryptographic instructions. The last requested operation is the requested cryptographic command process 83. If the control vector and key are specified correctly, the instruction will be processed correctly. However, if an error occurs, the operation result will be an invalid value. The procedures for CV inspection, key regeneration, and command execution are further detailed in the related patent application (b) of Mathias et al.

制御ベクトルから提供されたキー管理の度合は、制御
ベクトル中のビット数に大いに関係する。特に10から50
ビットの短い制御ベクトルの場合、使用が限定されてお
り、キー管理のほんのわずかな部分しか支援できない。
前述のマチアス他の関連特許出願(b)、(c)及び
(d)には、64ビット制御ベクトルの使用について述べ
られているが、それによるとある程度複雑な暗号システ
ムでは、キー使用及び配布を管理するのに、他の制御ベ
クトルタイプに比して64ビット制御ベクトルが有用であ
る。このように64ビット制御ベクトルは、多くの暗号シ
ステム実行を満たす。しかし、もっと高度なキー管理制
御のためには、64ビット以上の制御ベクトルが必要であ
る。
The degree of key management provided by the control vector is highly related to the number of bits in the control vector. Especially 10 to 50
For short bit control vectors, their use is limited and can only support a small portion of key management.
The related patent applications (b), (c) and (d) of Mathias et al., Mentioned above, describe the use of 64-bit control vectors, which, in some complex cryptosystems, imply key usage and distribution. 64-bit control vectors are useful to manage compared to other control vector types. Thus 64-bit control vectors satisfy many cryptosystem implementations. However, for more advanced key management control, a control vector of 64 bits or more is required.

本発明の目的は、暗号キー管理の改善方法を提供する
ことである。
It is an object of the present invention to provide an improved method of cryptographic key management.

また本発明の目的は、従来技術に比べより応用可能で
同等以上の機密保護機能を持つ、暗号キー管理の改善方
法を提供することである。
It is also an object of the present invention to provide a method of improving encryption key management which is more applicable than the prior art and has a security function equal to or higher than that of the prior art.

また本発明の目的は、暗号システムのユーザーに対し
新規改善された暗号提供が行なわれるような、暗号キー
管理の改善方法を提供することである。
It is also an object of the present invention to provide an improved method of cryptographic key management such that a new and improved cryptographic provision is provided to users of cryptographic systems.

また本発明の目的は、制御ベクトル処理に必要な暗号
化/非暗号化の回数を増やさずに、制御ベクトルの大き
さを拡張することである。
Another object of the present invention is to expand the size of the control vector without increasing the number of encryption / decryption required for control vector processing.

また本発明の目的は、キー再生の手順を暗号ハードウ
ェアに対し透過にしながら、制御ベクトルの大きさを拡
張することである。
Another object of the present invention is to extend the size of the control vector while making the key reproduction procedure transparent to the cryptographic hardware.

また本発明の目的は、任意長制御ベクトル実行方法を
2つ提供することである。a)1つは位置定義で、制御
ベクトル中のビットはその相対位置に従って定義され
る。b)もう1つはタグによる定義で、制御ベクトル中
のビットはその前にあるフィールド・タグ定義に従って
定義される。
Another object of the present invention is to provide two arbitrary length control vector execution methods. a) One is position definition, where the bits in the control vector are defined according to their relative positions. b) The other is the definition by tag, in which the bit in the control vector is defined according to the field tag definition preceding it.

また本発明の目的は、単一長制御ベクトル、二重長制
御ベクトル、任意長制御ベクトルの三種の制御ベクトル
を顕著に分離し、ある種の制御ベクトルが他の種と混同
したり間違って使用されないようにすることである。
Another object of the present invention is to significantly separate three types of control vectors, that is, a single-length control vector, a double-length control vector, and an arbitrary-length control vector, so that one control vector may be confused with another species or used incorrectly. It is to be prevented.

また本発明の目的は、キー生成器がキー使用可能時に
ある一定の時間間隔を置けるようにし、それ以外の時間
はキーを使用不可能にするような、キー管理の改善方法
を提供することである。
It is also an object of the present invention to provide an improved method of key management that allows the key generator to have a certain time interval when the key is available and disables the key at other times. is there.

また本発明の目的は、キー使用時、前もって正しく指
定されてあるべきパスワードリンクさせることにより、
パスワードが正確に入力されないとキーが使用付加とな
るようなキー管理の改善方法を提供することである。
Another object of the present invention is to link a password that should be correctly specified in advance when using a key.
It is an object of the present invention to provide an improved method of key management in which the key is added when the password is not entered correctly.

C.課題を解決するための手段 本発明はまず、64ビット制御ベクトルを好都合に128
ビットに拡張する方法に関する。この方法は、Cの左半
分64ビットとKKの左半分64ビットとの排他的論理和、及
びCの右半分64ビットとKKの右半分64ビットとの排他的
論理和から成る。そもそも128ビット制御ベクトルは、
概念的には64ビット制御ベクトルと等しい。しかし、12
8ビット制御ベクトルの追加の64ビットにより、キー管
理制御、特に余分な暗号化/非暗号化を行なうことなく
制御ベクトルの長さを倍にすることができる。実際、12
8ビット制御ベクトルはコンピュータの経費を増大する
ことなく入手できる。
C. Means for Solving the Problem The present invention first favors 128-bit control vectors.
Regarding how to extend to bits. This method consists of an exclusive OR of the left half 64 bits of C and the left half 64 bits of KK, and the right half 64 bits of C and the right half 64 bits of KK. In the first place, the 128-bit control vector is
Conceptually equivalent to a 64-bit control vector. But 12
The additional 64 bits of the 8-bit control vector allows doubling the length of the control vector without key management control, especially extra encryption / decryption. In fact, 12
8-bit control vectors are available without increasing computer expense.

本発明は次に、64ビット制御ベクトルを任意長制御ベ
クトルに拡張する方法に関する。これにはしかし、制御
ベクトルの各64ビット部分について2回から4回の余分
な暗号化操作が必要となる。このため、余分な経費が制
御ベクトルの長さに比例して増える。基本的には、任意
長制御ベクトルはまずハッシュ関数を用いて操作され
る。これは、多数のビットNxを持つ制御ベクトルCを、
より少ないビットNを持つハッシュ値C′(NxはNより
も大きい。本発明の例ではN=128)にマップするもの
である。特に有用なハッシュ関数は、制御ベクトルの12
8ビット・ハッシュ一方向関数を算出する、修正探索コ
ード(MDC)アルゴリズムのような非機密性の一方向関
数である。MDCについては前述のブラッチェルの関連特
許出願(e)に述べられている。この128ビットの結果
は、128ビット制御ベクトルがKKと結合するのと全く同
じ方法で、KKと結合して2つのKKLとKKRを形成する。よ
り正確に言うと、Mが制御ベクトル上で算出された128
ビットMDCを表わすとすれば、Mの左半分64ビットはKK
の左半分と排他的論理和され、Mの右半分64ビットはKK
の右半分と排他的論理和される。なお、任意長制御ベク
トルは概念的には128ビット制御ベクトルと等しい。
The invention then relates to a method of extending a 64-bit control vector to an arbitrary length control vector. However, this requires two to four extra encryption operations for each 64-bit part of the control vector. Therefore, the extra cost increases in proportion to the length of the control vector. Basically, the arbitrary length control vector is first manipulated using a hash function. This gives a control vector C with many bits Nx,
It maps to a hash value C '(Nx is greater than N. N = 128 in our example) with fewer bits N. A particularly useful hash function is the control vector 12
It is a non-classified one-way function, such as a modified search code (MDC) algorithm, that computes an 8-bit hash one-way function. MDC is described in the aforementioned Brachel related patent application (e). This 128-bit result combines with KK to form two KKL and KKR in exactly the same way that a 128-bit control vector combines with KK. To be more precise, M is 128 calculated on the control vector.
To represent bit MDC, the left half 64 bits of M is KK
XORed with the left half of M and the right half of M is KK
Exclusive OR with the right half of. The arbitrary length control vector is conceptually equal to the 128-bit control vector.

Cは任意長制御ベクトルを表わすとする。本発明は、
Cの構造的仕様についての2つの考察に関する。1つ
は、Cのフィールド情報が位置仕様の場合(すなわち、
元の形は左半分だったか右半分だったか、という位置に
よる)。もう1つは、Cのフィールドがタグとデータか
ら成るような、タグ位置付け仕様の場合。この場合フィ
ールドは順不同である。さらに、キーの管理及び制御に
必要なフィールドのみが制御ベクトルでは指定されれば
よい。位置及びタグ位置付けが混在した仕様も考えられ
るため、本発明ではこれも含む。
Let C represent an arbitrary length control vector. The present invention
Regarding two considerations about the structural specifications of C. One is when the field information of C is a position specification (ie,
The original shape was left half or right half, depending on the position). The other is the case of the tag positioning specification in which the C field consists of tags and data. In this case the fields are in no particular order. Furthermore, only the fields required for key management and control need be specified in the control vector. Since the specification in which the position and the tag position are mixed is conceivable, this is also included in the present invention.

128ビット制御ベクトルの検査は、64ビット制御ベク
トルのそれと同じである。ただし、後者が多くとも64ビ
ットだったのに対し、あらゆる128ビットの検査が含ま
れる。任意長制御ベクトルの検査も同様である。つまり
非常に長い制御ベクトルの存在が考えられ、より多くの
制御ビット及びフィールドの検査が必要となる点を除け
ば、検査はつねに制御ベクトルに基づいて行なわれる。
制御ベクトル検査は、128ビット・ハッシュ済制御ベク
トルの一方向関数には行なわれない。このハッシュ値は
CF内部でのみ算出され、キー再生処理の一部として暗号
化のためCF外に現れることはない。(制御ベクトル及び
ハッシュ関数はふつう入手可能であってたとえハッシュ
値が外部に漏れたとしても、機密が失われることはな
い。) 任意長CVは128ビットCVと同様、キーの仕様や制御パ
ラメータを定義または拡張するための余分なスペースを
提供する。タグ位置付けはそれ自体任意であるため、任
意長CVは特にこれを支援しやすい。より特定すると本発
明によれば、あるキーが使用される日付と時間のリスト
を、任意長CVが支援する方法が提供される。また本発明
によれば、機密保護パスワードを制御ベクトルの中に組
み込むことにより、正しいパスワードが入力されたとき
以外はキーが使用されないようにする方法が提供され
る。
The examination of 128-bit control vectors is the same as that of 64-bit control vectors. However, it includes every 128-bit check, while the latter was at most 64-bit. The inspection of an arbitrary length control vector is similar. This means that the inspection is always based on the control vector, except that the existence of very long control vectors is possible and more control bits and fields need to be checked.
Control vector checking is not performed on one-way functions of 128-bit hashed control vectors. This hash value is
It is calculated only inside the CF and does not appear outside the CF due to encryption as part of the key playback process. (Control vectors and hash functions are usually available, and even if the hash value leaks to the outside, confidentiality is not lost.) Like a 128-bit CV, an arbitrary-length CV specifies key specifications and control parameters. Provides extra space to define or expand. Arbitrary length CVs are particularly easy to support because the tag positioning is arbitrary by itself. More particularly, the present invention provides a method for an arbitrary length CV to support a list of dates and times a key is used. The present invention also provides a method for embedding a security password in a control vector so that the key is not used except when the correct password is entered.

D.実施例 二重長制御ベクトル: 本発明の第一の実施例を示す第1図及び第2図では、
64ビット制御ベクトルが128ビット制御ベクトルに好都
合に拡張される。128ビット制御ベクトルの追加の64ビ
ットにより、暗号システム及びそのユーザーは暗号キー
をよりうまく管理できる。
D. Embodiment Double Length Control Vector: In FIGS. 1 and 2 showing the first embodiment of the present invention,
A 64-bit control vector is conveniently extended to a 128-bit control vector. The additional 64-bits of the 128-bit control vector allow the cryptographic system and its users better control of cryptographic keys.

第1図と第7図の相違点は次の通りである。第1図の
システムでは、46Lでレジスタ40LのCLとレジスタ42LのK
KLが排他的論理和されてKKL+CLとなり、46Rでレジスタ
40RのCRとレジスタ42RのKKRが排他的論理和されてKKR+
CRとなる。第7図では、CがKKLおよびKKRと排他的論理
和されてKKL+CおよびKKR+Cとなった。つまり第7図
では、同じ64ビットの制御ベクトルがKKの左半分・右半
分両方のビットと排他的論理和されたが、第1図では、
別々の64ビット制御ベクトルがKKの各ビット部分と排他
的論理和される。それ以外は、第1図と第7図は等し
い。
The differences between FIG. 1 and FIG. 7 are as follows. In the system shown in Fig. 1, 46L is CL of register 40L and K is register 42L.
KL is exclusive ORed to become KKL + CL, register at 46R
CR of 40R and KKR of register 42R are exclusive ORed to KKR +
It becomes CR. In FIG. 7, C was XORed with KKL and KKR to become KKL + C and KKR + C. That is, in FIG. 7, the same 64-bit control vector is exclusive-ORed with both the left and right bits of KK, but in FIG.
A separate 64-bit control vector is XOR'ed with each bit part of KK. Other than that, FIGS. 1 and 7 are the same.

簡便のため、第7図にて64ビット制御ベクトルとKKに
よりKを暗号化する場合を、e*KK.C64(K)と書き表
わし、第1図にて128ビット制御ベクトルとKKによりK
を暗号化する場合を、e*KK.C128(K)と書き表わ
す。第7図の出力結果Yは、Y=e*KK.C64(K)とな
る。同様にして、第1図の出力結果Yは、Y=e*KK.C
128(K)となる。
For the sake of simplicity, the case of encrypting K with a 64-bit control vector and KK in Fig. 7 is written as e * KK.C64 (K).
The case of encrypting is written as e * KK.C128 (K). The output result Y in FIG. 7 is Y = e * KK.C64 (K). Similarly, the output result Y in FIG. 1 is Y = e * KK.C
It becomes 128 (K).

第2図のシステムと第8図の相違点は次の通りであ
る。第2図のシステムでは、レジスタ46Lでレジスタ40L
のCLとレジスタ42LのKKLが排他的論理和されてKKL+CL
となり、レジスタ46Rでレジスタ40RのCRとレジスタ42R
のKKRが排他的論理和されてKKR+CRとなる。第8図で
は、CがKKLおよびKKRと排他的論理和されてKKL+Cお
よびKKR+Cとなった。つまり第2図と第8図の相違
は、別々の64ビット制御ベクトルがKKの各ビット部分と
排他的論理和される点である。
The differences between the system of FIG. 2 and FIG. 8 are as follows. In the system of Fig. 2, register 46L and register 40L
CL of register 42 and KKL of register 42L are exclusive ORed to KKL + CL
Therefore, register 46R and register 40R CR and register 42R
The exclusive KOR of KKR is KKR + CR. In FIG. 8, C is XORed with KKL and KKR to become KKL + C and KKR + C. That is, the difference between FIG. 2 and FIG. 8 is that separate 64-bit control vectors are exclusive-ORed with each bit part of KK.

第7図及び第8図は、C=CL=CRであるだけで、第1
図及び第2図と同じであることが判断できよう。換言す
れば、128ビット制御ベクトルを使用する方法を縮小す
れば、左半分ビット部分と右半分ビット部分が等しいC
と64ビット制御ベクトルを使用する方法となる。つまり
64ビット制御ベクトルは、Cの128部分すなわち128ビッ
ト制御ベクトルが退化したものである。第1図及び第2
図の優位点は、余計な手間や経費をかけずに制御ベクト
ルを倍加できることにある。実際、64ビット制御ベクト
ルの定義(第7図及び第8図)および128ビット制御ベ
クトルの定義(第1図及び第2図)は、構造上あるいは
実行上有利な点を持つ。64ビット制御ベクトルを実行す
るハードウェア及びソフトウェアは、簡単に128ビット
制御ベクトルを支援できるようになる。どちらもKKL及
びKKRから出る種々のキーを含む、三重の暗号化操作に
より実行されるからである。暗号化の手順は全く同じで
ある。128ビット制御ベクトルを実行する新規ハードウ
ェア及びソフトウェアは、ソフトのレベルでCL=CRに設
定するだけで、64ビット制御ベクトルを支援できるよう
になる。結果、64ビット制御ベクトル、128ビット制御
ベクトルどちらも暗号ハードウェアに対し透過になる。
7 and 8 only show that C = CL = CR
It can be judged that it is the same as the figure and FIG. In other words, if the method using the 128-bit control vector is reduced, the left half bit part and the right half bit part are equal to C
And a way to use 64-bit control vectors. That is
The 64-bit control vector is a degeneration of the 128 part of C, the 128-bit control vector. 1 and 2
The advantage of the figure is that the control vector can be doubled without extra effort and expense. In fact, the 64-bit control vector definition (Figs. 7 and 8) and the 128-bit control vector definition (Figs. 1 and 2) have structural or practical advantages. Hardware and software that implements 64-bit control vectors can easily support 128-bit control vectors. Both are performed by triple cryptographic operations involving various keys emanating from KKL and KKR. The encryption procedure is exactly the same. New hardware and software implementing 128-bit control vectors will be able to support 64-bit control vectors by simply setting CL = CR at the soft level. As a result, both 64-bit and 128-bit control vectors are transparent to cryptographic hardware.

任意長制御ベクトル: 本発明の第二の実施例を示す第9図及び第10図では、
64ビット制御ベクトルが任意長制御ベクトルに好都合に
拡張される。このシステムがもたらす無数のビットによ
り、最大度の暗号キー管理制御が可能となる。
Arbitrary length control vector: In FIGS. 9 and 10 showing the second embodiment of the present invention,
64-bit control vectors are conveniently extended to arbitrary length control vectors. The myriad of bits provided by this system allows for maximum degree of cryptographic key management control.

第9図に示すのは、レジスタ44の64ビット暗号キーK
を、レジスタ42の128ビット・キー暗号化キーKK(KKLと
KKRの連結したもの。KK=KKL//KKR)及びレジスタ90の
任意長(すなわち無限)ベクトルCinfにより暗号化する
システムである。操作は次のようになる。まずハッシュ
関数処理装置92でCinfの公開一方向ハッシュ関数を算出
して、レジスタ94Lに読み込まれる左半分64ビットML及
びレジスタ94Rに読み込まれる右半分64ビットMRから成
る128ビット・ハッシュ値を出す。処理装置92で行なわ
れる一方向関数は、関数への入力データを関数の出力結
果から算出するのは電算処理上不可能であるが、入力デ
ータから出力結果を算出するのは容易である、という性
質を持つ。一方向関数については従来技術に詳述されて
いる。W.ディフィー他著、「暗号についての新たな方
向」(1976年、情報理論に関するIEEE報告書、IT−22、
第6号、644ページ〜654ページ)に述べられている、一
方向関数についての厳密な定義は以下の通りである。
FIG. 9 shows the 64-bit encryption key K of the register 44.
To the 128-bit key encryption key KK (KKL
A concatenation of KKR. KK = KKL // KKR) and an arbitrary length (that is, infinite) vector Cinf of the register 90 for encryption. The operation is as follows. First, the hash function processing device 92 calculates a public one-way hash function of Cinf, and outputs a 128-bit hash value composed of the left half 64-bit ML read into the register 94L and the right half 64-bit MR read into the register 94R. It is impossible for the one-way function performed by the processing device 92 to calculate the input data to the function from the output result of the function in terms of computational processing, but it is easy to calculate the output result from the input data. It has a property. One-way functions are detailed in the prior art. W. Diffie et al., "New Directions for Cryptography" (1976, IEEE Report on Information Theory, IT-22,
No. 6, pp. 644 to 654), the strict definition of the one-way function is as follows.

関数fを一方向関数と呼ぶのは、次の場合である。f
の領域内すべてのxについてy=f(x)が簡単に求め
られるのに対し、yの値とfの機能をもってしても、f
の領域内のほとんどのyについてf(x)=yとなるx
を求めるのが、電算処理上まったく実行不可能な関数。
重要なのは、この関数は電算処理上の見地から可逆性を
持たないと定義するのであり、通常数学的に言うところ
の不可逆性とは異なるということである。点yの解が唯
一でない、すなわちf(x1)=y=f(x2)となるよう
な、異なる点x1及びx2が存在するとき、その関数は「不
可逆」である。ここで述べるのは逆算の難しさではな
く、むしろ、yの値とfの機能をもってしてf(x)=
yとなるxを算出することのほうがはるかに難解なので
ある。
The function f is called a one-way function in the following cases. f
Although y = f (x) can be easily obtained for all x in the region of, even if the value of y and the function of f are used,
F (x) = y for most y in the region
Is a function that cannot be executed at all due to computer processing.
What is important is that this function is defined as not reversible from the point of view of arithmetic processing, which is different from irreversibility which is usually mathematically called. The function is "irreversible" when there are different points x1 and x2 such that the solution at point y is not unique, ie f (x1) = y = f (x2). What is described here is not the difficulty of the back calculation, but rather f (x) = with the value of y and the function of f.
It is much more difficult to calculate x that is y.

修正探索コード(第11図、第12図、第13図参照)算出
のアルゴリズムにより、一方向関数の定義はもっと厳し
くなる。MDCアルゴリズムによれば、f(x1)=f(x
2)となるx1及びx2を求めるのは電算処理上不可能であ
る。この厳しい要求を満たすには、MDCは少なくとも128
ビットの長さを持たなくてはならない。そうでなけれ
ば、f(x1)=f(x2)となるx1及びx2を探すのに誕生
日型攻勢がかけられることになろう。
The algorithm for calculating the modified search code (see FIGS. 11, 12, and 13) makes the definition of the one-way function more stringent. According to the MDC algorithm, f (x1) = f (x
It is impossible to calculate x1 and x2, which is 2), in terms of computer processing. To meet this stringent requirement, MDC should be at least 128
It must have a bit length. Otherwise, a birthday-type offensive would be sought to find x1 and x2 such that f (x1) = f (x2).

第9図における次の操作についてさらに述べる。排他
的論理和装置46Lで、レジスタ94Lの64ビット値MLとレジ
スタ42Lの64ビット値KKLの排他的論理和を求め、排他的
論理和装置46Rで、レジスタ94Rの64ビット値MRとレジス
タ42Rの64ビット値KKRの排他的論理和を求める。代わっ
て暗号化装置41で、レジスタ44のKがKKL+MLによって
暗号化され、非暗号化装置43でKKR+MRによって非暗号
化され、暗号化装置45でKKL+MKによって暗号化され
る。その結果生じるYをe*KK.Cinf(K)と書き表わ
す。(“+”は排他的論理和操作を示す。) 第10図に示すのは、レジスタ42の128ビット・キー暗
号化キーKK(KKLとKKR)及びレジスタ90の任意長制御ベ
クトルCinfより暗号化された、レジスタ44の暗号キーK
である64ビット値Yを非暗号化するシステムである。第
10図の手順は、基本的には第9図の逆である。まずハッ
シュ関数処理装置92で、(第9図の公開一方向ハッシュ
関数と同様の方法で)Cinfの公開一方向ハッシュ関数を
算出して、128ビット値ML及びMRを出す。次にMLとKKL、
MRとKKRの排他的論理和を求め、KKL+ML、KKR+MRを出
す。代わって非暗号化装置47で、KKL+MLによりKが非
暗号化され、暗号化装置48でKKR+MRにより暗号化さ
れ、非暗号化装置49でKKL+MLにより非暗号化去れる。
要するに、e*KK.Cinf(K)を*KK.Cinfにより非暗号
化して、Kを再生するわけである。
The next operation in FIG. 9 will be further described. The exclusive OR device 46L calculates the exclusive OR of the 64-bit value ML of the register 94L and the 64-bit value KKL of the register 42L, and the exclusive OR device 46R calculates the 64-bit value MR of the register 94R and the register 42R. Finds the exclusive or of the 64-bit value KKR. Instead, in the encryption device 41, the K in the register 44 is encrypted by KKL + ML, by the non-encryption device 43 by KKR + MR, and by the encryption device 45 by KKL + MK. The resulting Y is written as e * KK.Cinf (K). (“+” Indicates an exclusive OR operation.) FIG. 10 shows encryption from the 128-bit key encryption key KK (KKL and KKR) of the register 42 and the arbitrary length control vector Cinf of the register 90. Encryption key K of register 44
It is a system that does not encrypt the 64-bit value Y that is. First
The procedure of FIG. 10 is basically the reverse of that of FIG. First, the hash function processing device 92 calculates the public one-way hash function of Cinf (in the same manner as the public one-way hash function of FIG. 9), and outputs the 128-bit values ML and MR. Then ML and KKL,
The exclusive OR of MR and KKR is calculated and KKL + ML and KKR + MR are issued. Instead, K is non-encrypted by KKL + ML in the non-encryption device 47, encrypted by KKR + MR in the encryption device 48, and non-encrypted by KKL + ML in the non-encryption device 49.
In short, e * KK.Cinf (K) is unencrypted by * KK.Cinf to reproduce K.

前記実施例の処理装置92における公開一方向ハッシュ
関数算出方法は、修正探索コード(MDC)算出アルゴリ
ズムを利用している。MDCについては前出の関連特許出
願(e)に述べられている。第11図は、簡単なMDC操
作、MDCOPを示す。ここでは2つの異なるシステムでMDC
を算出する。第12図は、64ビットの入力データごとに2
回の暗号化操作をともなう方法による、128ビットMDCの
算出を示す。第13図は、64ビットの入力データごとに4
回の暗号化操作をともなう方法による、128ビットMDCの
算出を示す。どちらの方法も、平文形の任意長制御ベク
トル入力データを64ビットのブロックに分ける必要があ
り、確認のため、最終ブロックに16進の“FF"が埋め込
まれる。平文はMDCアルゴリズムにより、全ブロックが
終了するまで逐次処理される。関数の出力結果は128ビ
ットMDCである。
The public one-way hash function calculation method in the processing device 92 of the above embodiment uses a modified search code (MDC) calculation algorithm. MDC is described in the above-mentioned related patent application (e). FIG. 11 shows a simple MDC operation, MDCOP. MDC with two different systems here
To calculate. Fig. 12 shows 2 for each 64-bit input data.
The calculation of 128-bit MDC by the method with one encryption operation is shown. Figure 13 shows 4 for each 64-bit input data.
The calculation of 128-bit MDC by the method with one encryption operation is shown. In both methods, it is necessary to divide the plaintext arbitrary-length control vector input data into 64-bit blocks, and a hexadecimal "FF" is embedded in the final block for confirmation. Plain text is processed sequentially by the MDC algorithm until all blocks are completed. The output result of the function is 128-bit MDC.

Cinfの場合、制御ベクトルがC1、C2、・・・、Cnのブ
ロックに分かれる。Cnの最下位には16進の‘FF'が(バ
イト数に応じて)埋めこまれて8バイトとなる。この埋
込みは、暗号ハードウェアにより行なわれる(これは公
開一方向ハッシュ関数自体の必要部分である)。ブロッ
クC1、C2、・・・、CnはMDCアルゴリズムにより(ブロ
ックごとに2回あるいは4回の暗号化を行ない)操作さ
れて128ビットMDCを生成する。128ビットMDCの左半分
(MLとする)およびKKLとの排他的論理和を求めてKKL+
MLを出し、128ビットMDCの右半分(MRとする)およびKK
Rとの排他的論理和を求めてKKR+MRを出す。
In the case of Cinf, the control vector is divided into blocks of C1, C2, ..., Cn. Hexadecimal'FF 'is embedded (depending on the number of bytes) in the lowest part of Cn to form 8 bytes. This embedding is done by cryptographic hardware (which is a necessary part of the public one-way hash function itself). The blocks C1, C2, ..., Cn are operated on by the MDC algorithm (encrypted twice or four times per block) to generate a 128-bit MDC. KKL + for the exclusive OR of the left half (ML) of 128-bit MDC and KKL
Issue ML, right half of 128-bit MDC (denoted as MR) and KK
KKR + MR is issued for exclusive OR with R.

MDCアルゴリズムのように厳密な一方向関数を使って
任意長制御ベクトルの128ビット・ハッシュ値を算出す
ることは、細心の機密保護を行なうために大変に重要な
ことである。これは、2つの異なる有効制御ベクトルC1
及びC2(ただし同じハッシュ値を生じる)が発見されな
いようにする上で必要である。もしMDC(C1)=MDC(C
2)となるところでC1及びC2が発見されると、処理の完
全性が侵害される。この理由を説明するため、例として
C1はデータの暗号化のみを行ない、C2はデータの非暗号
化のみを行なう制御ベクトルであるとする。暗号化され
たデータ・キーが制御ベクトルC1を持つことがわかれ
ば、C1でなく単にC2を指定することにより、侵入者は簡
単に機密保護を破ることができる。つまり侵入者は、暗
号化されたデータ・キーとC2を、妨害された暗号文(ユ
ーザーがそうとは知らず該データ・キーにより暗号化し
たもの)とともに非暗号化命令に渡す。非暗号化命令
は、C2が無効であることも発見できず、正しいデータ・
キーがCF内で内部的に再生されるのを防ぐこともでき
ず、データは非暗号化されてしまう。
It is very important to calculate the 128-bit hash value of the arbitrary length control vector using a strict one-way function like the MDC algorithm in order to perform the strict security protection. This is two different effective control vectors C1
, And C2 (but yielding the same hash value) are required to be discovered. If MDC (C1) = MDC (C
If C1 and C2 are found in 2), the processing integrity is violated. To explain why, as an example
C1 is a control vector that only encrypts data, and C2 is a control vector that only decrypts data. Knowing that the encrypted data key has the control vector C1, an intruder can easily break the security by simply specifying C2 instead of C1. That is, the intruder passes the encrypted data key and C2 to the unencrypted instruction along with the obstructed ciphertext (which the user did not know to have encrypted with the data key). The non-encrypted instruction cannot detect that C2 is invalid, and the correct data
There is no way to prevent the key from being replayed internally in CF, and the data will be unencrypted.

第22図は、暗号機構(CF)4で、ハッシュ関数処理装
置92が母線12に接続される様子を図示している。ハッシ
ュ関数処理装置92は暗号処理装置16の一部ともなるが、
分離して母線12に接続することもある。ハッシュ関数処
理装置92は上述の、制御ベクトルの公開一方向ハッシュ
関数を実行する。
FIG. 22 illustrates how the hash function processing device 92 is connected to the bus 12 by the cryptographic mechanism (CF) 4. Although the hash function processing device 92 is also a part of the cryptographic processing device 16,
It may be separated and connected to the bus bar 12. The hash function processing device 92 executes the above-described public one-way hash function of the control vector.

制御ベクトル中の暗号分離: 64ビット制御ベクトルのみ、128ビット制御ベクトル
のみ、任意長制御ベクトルのみで実行する暗号処理は安
全に行なわれることが、本発明により判断できよう。し
かしながら、同一暗号システム内でこれらが共存する場
合や、またそれが必要なシステムも存在する。この場合
は、暗号処理上の方法が分離されていることが、暗号の
機密保護上絶対不可欠である。換言すれば、ある制御ベ
クトル指定方法を使ってキーが暗号化されていても、別
の指定方法の元に暗号化キーを受け取るを行なえる暗号
ハードウェアに対し、侵入者が不正を行えないようにし
なくてはならない。例えば、e*KK.C128(K)が128ビ
ット制御ベクトルにより暗号化されたキーを表わすとす
る。この場合e*KKC.128(K)は、暗号ハードウェア
がe*KK.C128(K)を非暗号化してKを再生する方法
によって、64ビット制御ベクトルにより暗号化されたキ
ーであるとは言えない。これは、C128およびC64が、あ
るキーの使用をC128は認めないがC64は認める、といっ
た相反する使用を持つ可能性があるからである。
Cryptographic Separation in Control Vector: It can be determined according to the present invention that cryptographic processing executed only with 64-bit control vector, only 128-bit control vector, and only arbitrary-length control vector is performed safely. However, there are systems where these coexist in the same cryptographic system and where such coexistence is necessary. In this case, the separation of cryptographic processing methods is absolutely essential for cryptographic security. In other words, even if the key is encrypted using one control vector specification method, it is possible to prevent an intruder from cheating on the encryption hardware that can receive the encryption key based on another specification method. I have to For example, let e * KK.C128 (K) represent a key encrypted by a 128-bit control vector. In this case, e * KKC.128 (K) is the key encrypted by the 64-bit control vector by the method in which the cryptographic hardware decrypts e * KK.C128 (K) and reproduces K. I can not say. This is because C128 and C64 may have conflicting uses, such that C128 does not allow the use of certain keys, but C64 does.

上記仕様の困難な点は1つ明らかである。ある特定の
実行において、128ビット制御ベクトルの左半分及び右
半分が等しく(合理的に)、CLが有効な64ビット制御ベ
クトルCを表わす場合があるとする。意図的に問題点を
例示してみる。CL、CR及びCのビット13がセット=B
‘1'であり、他のビットはすべてセット=B‘0'である
とする。CLにおいてビット13=B‘1'ということは、暗
号化された暗号変数X(Xはキーである)はデータ暗号
化のみに使用されるということである。CRのビット13
は、暗号化操作を何らかの形で制限する(例:最初にパ
スワード入力を求める、あるいは午前8時から午後4時
までしか暗号化操作を行なわせない等)。しかし、制御
ベクトルC(64ビット制御ベクトル)のビット13は、X
がデータ非暗号化に使われることを意味する。YがCL、
CR及びKL、KRを使ってXを暗号化した値だとすれば、侵
入者はC及びKL、KRを使ってYを非暗号化するよう暗号
装置に要求することができるであろう。後者の場合、侵
入者はXによってデータを非暗号化することができる。
One difficulty with the above specifications is clear. In a particular implementation, assume that the left and right halves of a 128-bit control vector are equal (reasonably) and CL represents a valid 64-bit control vector C. Let's deliberately illustrate the problem. Bit 13 of CL, CR and C set = B
'1' and all other bits are set = B'0 '. Bit 13 = B'1 'in CL means that the encrypted cryptographic variable X (X is a key) is used only for data encryption. CR bit 13
Restricts the encryption operation in some way (eg, prompts for password input first, or allows encryption operation only from 8 am to 4 pm). However, the bit 13 of the control vector C (64-bit control vector) is X
Is used for data encryption. Y is CL,
Given the encrypted value of X using CR and KL, KR, the intruder could request the cryptographic device to decrypt Y using C and KL, KR. In the latter case, the intruder can decrypt the data with X.

この場合に求められる暗号の性質について、以下に述
べる。C64、C128およびCinfはそれぞれ、キーKを64ビ
ット制御ベクトル、128ビット制御ベクトル、任意長制
御ベクトルを用いたKKにより暗号化する方式であるとす
る。iをこれら3つの方式のいずれかであり、Yをiを
用いたKKによるKの暗号化であるとする。jは3つの方
式のいずれかであるがiではない場合、暗号ハードウェ
アは以下の事項を満たすものでなければならない。Y及
びjがハードウェアに渡されたとき(すなわち、iの方
式が取られたにもかかわらず侵入者がjと偽って操作す
ると)、暗号化ハードウェアは確実に不正を発見し操作
を中断するかあるいは、侵入者にとって意味を持たない
不定不測の値K′(Kではない)を生じさせなくてはな
らない。
The cryptographic properties required in this case will be described below. It is assumed that C64, C128, and Cinf are methods of encrypting the key K with KK using a 64-bit control vector, a 128-bit control vector, and an arbitrary length control vector, respectively. Let i be one of these three schemes and Y be the encryption of K by KK using i. If j is one of the three schemes but not i, then the cryptographic hardware must meet the following: When Y and j are passed to the hardware (that is, if the intruder spoofed as j even though the method of i was taken), the cryptographic hardware reliably detected the fraud and interrupted the operation. Or, it must produce an indeterminate value K '(not K) that has no meaning to the intruder.

制御ベクトル定義の三方式を総括的に分離する方法
を、第14図に示す。この方法は、各制御ベクトルの各64
ビット部分、及び任意長制御ベクトルで算出されたMDC
の各64ビット部分の2ビット・フィールド(ビットi及
びi+1)を使用する。ビットはキーのパリティ・ビッ
トと重なることはない。このビットは、すべてのC64に
ついての暗号化値e*KK.C64(K)がすべてのC128につ
いての暗号化値e*KK.C128(K)とも、またすべてのC
infについての暗号化値e*KK.Cinf(K)とも異なるよ
うに、K及びKKに関して割当てられた値である。。これ
により、暗号化されたKが1以上の制御ベクトルにより
非暗号化されることはない。正しい制御ベクトル以外の
ものを使用すると、KではないK′が生じる。
FIG. 14 shows a method of separating the three control vector definitions in a general manner. This method uses 64 for each control vector.
MDC calculated by bit part and arbitrary length control vector
Use the 2-bit field (bits i and i + 1) of each 64-bit portion of The bits do not overlap the key parity bits. This bit is the same as the encrypted value e * KK.C64 (K) for all C64 and the encrypted value e * KK.C128 (K) for all C128.
It is a value assigned for K and KK, as different from the encrypted value e * KK.Cinf (K) for inf. . This prevents the encrypted K from being unencrypted by one or more control vectors. Using anything other than the correct control vector results in K ', not K.

制御ベクトル検査: 128ビット制御ベクトルの制御ベクトル検査は、64ビ
ット制御ベクトルのそれと同様であるが、128ビット制
御ベクトルの場合、128ビットのものすべてが検査対象
となる点だけが異なる。従って、第6図で述べた64ビッ
ト制御ベクトル検査の論理も、64ビット制御ベクトルで
なく128ビット制御ベクトルが暗号化装置への入力デー
タに使われる点を除いて、128ビット制御ベクトル検査
の場合と同様である。
Control Vector Check: The control vector check for a 128-bit control vector is similar to that for a 64-bit control vector, except that all 128-bit control vectors are subject to check. Therefore, the logic of the 64-bit control vector check described in FIG. 6 is also the case of the 128-bit control vector check except that the 128-bit control vector is used for the input data to the encryption device instead of the 64-bit control vector. Is the same as.

任意長制御ベクトルに対する制御ベクトル検査も同様
である。非常に長い制御ベクトルの存在が考えられ、ゆ
えにより多くの制御ベクトルのビット及びフィールドが
検査されることを除けば、検査はベクトルに基づいて行
なわれる。任意長制御ベクトルが用いられるとき制御ベ
クトル検査は、制御ベクトルの128ビット・ハッシュ一
方向関数でなく、制御ベクトルそのものに基づいて行な
われる。ハッシュ値は暗号化装置内部でのみ算出され
る。これが暗号化装置外に出て装置から装置あるいは暗
号化装置から暗号化装置へ渡されたり、制御ベクトルの
ように保管されて再入力されることはない。(制御ベク
トル及びハッシュ関数はふつう入手可能であってたとえ
ハッシュ値が外部に漏れたとしても、機密が失われるこ
とはない。本発明の別の実施例で述べる、機密パスワー
ドが制御ベクトル内に組み込まれた場合は別である。) タグ位置値け及び位置制御ベクトルのデータ構造: 本発明の第15図(a)のように、任意長制御ベクトル
Cは、連続する定位置従属フィールド(例:フィールド
1、フィールド2、・・・、フィールドn)から成るこ
とがある。1フィールドは1以上のビットを持ち、既定
の意味や解釈、決まった用法などを持つ。前述のマチア
ス他の関連特許出願(b)、(c)及び(d)に出てく
る64ビット制御ベクトルは、位置従属フィールド及びビ
ットの定義を使用している。
The control vector check for an arbitrary length control vector is similar. The check is vector-based, except that the existence of very long control vectors is possible and therefore more control vector bits and fields are checked. When an arbitrary length control vector is used, control vector checking is based on the control vector itself, rather than the 128-bit hash one-way function of the control vector. The hash value is calculated only inside the encryption device. This does not go out of the encryption device and is passed from the device to the device or from the encryption device to the encryption device, and is not saved and re-entered like a control vector. (Control vectors and hash functions are usually available, and confidentiality is not lost, even if the hash value leaks out. A secret password is embedded in the control vector, as described in another embodiment of the invention. The data structure of the tag position value and the position control vector: As shown in FIG. 15 (a) of the present invention, the arbitrary length control vector C is a continuous fixed position dependent field (example: It may consist of field 1, field 2, ..., Field n). One field has one or more bits, and has a predetermined meaning, interpretation, and fixed usage. The 64-bit control vectors appearing in the aforementioned Mathias et al. Related patent applications (b), (c) and (d) use position dependent field and bit definitions.

本発明の第15図(d)のように、任意長制御ベクトル
Cは、制御ベクトル内の位置でなくフィールド識別子に
よって定義されるフィールドから成ることがある。この
ようなタグ位置付けデータ構造は第15図(d)にあるよ
うに複数フィールドから成り、これらのフィールドは第
15図(b)にあるように、固定長フィールド識別子、固
定長フィールド及び可変長データから成る。
As in FIG. 15 (d) of the present invention, the arbitrary length control vector C may consist of a field defined by a field identifier rather than a position in the control vector. Such a tag positioning data structure consists of multiple fields as shown in FIG.
As shown in FIG. 15B, it is composed of a fixed length field identifier, a fixed length field and variable length data.

本発明の第15図(e)のように、任意長制御ベクトル
Cは、フィールド識別子(すなわちタグ)によって定義
されるフィールドから成ることがあるが、ここではフィ
ールド長が、長さフィールドでなく、データの最後に置
かれた固定長のフィールド区切り文字によって決められ
る。このようなタグ位置付けデータ構造は第15図(e)
にあるように複数フィールドから成り、これらのフィー
ルドは第15図(c)にあるように、固定長フィールド識
別子、可変長データ及び固定長フィールド区切り文字か
ら成る。
As in FIG. 15 (e) of the present invention, the arbitrary length control vector C may consist of a field defined by a field identifier (ie, tag), but here the field length is not a length field, Determined by a fixed length field delimiter placed at the end of the data. Such a tag positioning data structure is shown in Fig. 15 (e).
As shown in FIG. 15, it is composed of a plurality of fields. These fields are composed of a fixed length field identifier, variable length data and a fixed length field delimiter as shown in FIG. 15 (c).

本発明の第15図(f)のように、任意長制御ベクトル
Cは、連続する位置従属フィールド部分とタグ位置付け
部分両方から成ることがある。この例では、制御ベクト
ルの最初に固定長の位置従属部分が現れ、次に可変長の
タグ位置付け部分が現れる。位置従属フィールド部分
は、128ビット制御ベクトルに対応する128ビット・フィ
ールド定義から成り、可変長タグ位置付け部分は、制御
ベクトルの128ビット固定部分に対応する制御ベクトル
拡張子から成るため、このようなデータ構造は特に好都
合である。
As in FIG. 15 (f) of the present invention, the arbitrary length control vector C may consist of both a continuous position dependent field portion and a tag positioning portion. In this example, a fixed length position dependent portion appears first in the control vector, followed by a variable length tag locator portion. The position-dependent field part consists of a 128-bit field definition that corresponds to a 128-bit control vector, and the variable-length tag positioning part consists of a control vector extension that corresponds to the 128-bit fixed part of the control vector. The structure is particularly convenient.

ここまでで判断できようが、様々な方法により、任意
長制御ベクトル実行を、構造上簡単にしかも少ない記憶
域及び処理で行ない、同一暗号システムまたはネットワ
ークや接続装置内に64ビット制御ベクトル/128ビット制
御ベクトル/任意長制御ベクトル実行が混在する中で、
互換性を維持しながら行なうことができる。
As can be judged up to this point, by using various methods, arbitrary-length control vector execution can be performed structurally easily and with a small storage area and processing, and 64-bit control vector / 128-bit control vector / 128 bits in the same cryptosystem or network or connected device. In a mixture of control vector / arbitrary length control vector execution,
It can be done while maintaining compatibility.

機密パスワードと制御ベクトル: 暗号キー使用の際に制御ベクトルに機密パスワードを
組み込むことで、より細密な暗号キー使用制御が可能と
なる。これは、非常に高いレベルの機密保護を必要とし
たり、暗号処理時に厳しい制御基準(すなわち暗号キー
へのアクセスの制御)を採用する適用業務に、特に有効
である。
Confidential password and control vector: By incorporating the confidential password in the control vector when using the encryption key, it is possible to perform more detailed control of the encryption key usage. This is particularly useful for applications that require a very high level of security or employ strict control criteria (ie, control of access to cryptographic keys) during cryptographic processing.

第16図に、暗号機構を持つデータ処理システムの概略
を示す。第16図では、暗号機構がプログラム及び適用業
務をアクセスするように(前述のマチアス他の関連特許
出願(b)の第2図に示される)、データ処理システム
2がプログラムを実行する。このプログラムは、制御ベ
クトルに関連した暗号キーの処理要求を出す。制御ベク
トルの一般形は、上述の関連特許出願の第10図に示され
るが、本発明によって修正され、拡張される(後で詳述
する)。制御ベクトルは、一定の機能を定義する。その
機能の遂行のためキーの創作者によって関連するキーが
許可される。前述の関連特許出願によれば、暗号構造
は、プログラムが暗号キーについて求めるキー管理機能
を認証するシステムを定義し、キーの創作者によってそ
れらが許可されたことを保証する。
FIG. 16 shows an outline of a data processing system having a cryptographic mechanism. In FIG. 16, the data processing system 2 executes the program so that the cryptographic mechanism has access to the program and the application (as shown in FIG. 2 of the related patent application (b) of Mathias et al., Supra). This program issues a processing request for the cryptographic key associated with the control vector. The general form of the control vector is shown in FIG. 10 of the above-referenced related patent application and is modified and extended by the present invention (detailed below). The control vector defines a certain function. The associated key is authorized by the creator of the key to perform that function. According to the related patent application mentioned above, the cryptographic structure defines a system that authenticates the key management functions that the program seeks for cryptographic keys and ensures that they have been authorized by the creator of the key.

第16図にあるように、データ処理システム2に含まれ
るかあるいは接続するのは、機密保護境界6に特徴を持
つ暗号機構4である。入出力経路8は機密保護境界6を
通り抜けて、暗号提供要求、暗号キー及び関連の制御ベ
クトルをプログラムから受け取る。機密保護境界6に
は、母線12により入出力経路8に接続する暗号命令記憶
装置10が含まれる。制御ベクトル検査装置14は、記憶装
置10の命令につながり、暗号処理装置16もまた、記憶装
置10の命令につながる。マスター・キー記憶装置18は、
暗号処理装置16に接続する。受け取った提供要求に応じ
て暗号機構4は、キー取扱い操作を実行するための機密
保護記憶位置を生成する。
As shown in FIG. 16, included in or connected to the data processing system 2 is a cryptographic mechanism 4 having a security boundary 6. The I / O path 8 passes through the security boundary 6 to receive the cipher offering request, the cipher key and the associated control vector from the program. The security boundary 6 includes a cryptographic instruction storage device 10 connected to the input / output path 8 by a bus 12. The control vector checking device 14 leads to the command of the storage device 10, and the cryptographic processing device 16 also leads to the command of the storage device 10. The master key storage device 18
Connect to the cryptographic processing device 16. In response to the provided request received, the cryptographic mechanism 4 creates a secure storage location for performing the key handling operation.

暗号命令記憶装置10は入出力経路8上で、暗号キーに
よってキー取扱い操作を実行せよ、という暗号提供要求
を受け取る。制御ベクトル検査装置14は、入出力経路8
につながる入力データを持ち、暗号キーに関連する制御
ベクトルを受け取る。制御ベクトル検査装置14はまた、
暗号命令記憶装置10に接続する入力データも持ち、暗号
提供要求が要求したキー管理操作を制御ベクトルが許可
したかどうかの検査を始める制御信号を受け取る。
The cipher command storage device 10 receives a cipher provision request on the input / output path 8 to execute a key handling operation with a cipher key. The control vector inspection device 14 has an input / output path 8
Receives the control vector associated with the cryptographic key with input data leading to. The control vector inspection device 14 also
It also has input data to connect to the cryptographic instruction storage device 10 and receives a control signal which initiates a check to see if the control vector permits the key management operation requested by the cryptographic provision request.

制御ベクトル検査装置14は、暗号処理装置16の入力デ
ータにつながる許可出力20を持ち、キー管理操作が許可
されたことを知らせる。暗号処理装置16が許可出力を受
け取ると、暗号キーが要求した取扱い操作実施が開始す
る。暗号キー記憶装置22は、入出力経路8上で制御ベク
トル検査装置14に接続する。暗号キーは記憶キー(関連
の制御ベクトルおよび、マスター・キー記憶装置18に保
管されたマスター・キーの論理演算結果)の元で暗号化
されるが、暗号キー記憶装置22はその暗号化された形
で、暗号キーを保管する。この論理演算結果をKM.Cと書
き表わす。KMは128ビット・マスター・キーであり、C
は制御ベクトルである。暗号提供要求で、1以上のキー
及び制御ベクトルが要求されたなら、すべての制御ベク
トルが検査され、すべてが正しく発見されて暗号処理装
置16に対し許可信号が出されなくてはならない。
The control vector checking device 14 has a permission output 20 connected to the input data of the cryptographic processing device 16 and informs that the key management operation is permitted. When the cryptographic processing device 16 receives the permission output, the handling operation execution requested by the cryptographic key starts. The cryptographic key storage device 22 is connected to the control vector checking device 14 on the input / output path 8. The encryption key is encrypted under the storage key (the associated control vector and the logical operation result of the master key stored in the master key storage device 18), while the encryption key storage device 22 is encrypted. Store the encryption key in the form. The result of this logical operation is written as KM.C. KM is a 128-bit master key, C
Is the control vector. If the cryptographic provision request requires more than one key and control vector, all control vectors must be examined, all discovered correctly, and a grant signal issued to the cryptographic processor 16.

暗号キー記憶装置22から暗号化キーを再生するのは例
えば、暗号命令記憶装置10が入出力経路8上で、暗号キ
ー記憶装置22から暗号キーを再生せよとの暗号提供要求
を受け取った場合である。その後制御ベクトル検査装置
14が応答し、線20で暗号処理装置16に対し、暗号キー再
生操作が許可されたという許可信号が出る。信号処理装
置16が線20で許可信号に応答して、暗号化された暗号キ
ーを暗号キー記憶装置22から受け取り、記憶キー(関連
の制御ベクトルおよび、マスター・キー記憶装置18の保
管されたマスター・キーの論理演算結果)の元でそれを
非暗号化する。
The encryption key is reproduced from the encryption key storage device 22 when, for example, the encryption command storage device 10 receives the encryption provision request for reproducing the encryption key from the encryption key storage device 22 on the input / output path 8. is there. Then control vector inspection device
14 responds, and the line 20 gives the cryptographic processing device 16 a permission signal that the cryptographic key reproducing operation is permitted. The signal processing device 16 receives the encrypted cryptographic key from the cryptographic key storage device 22 in response to the authorization signal on line 20 and stores the storage key (the associated control vector and the saved master of the master key storage device 18). -Decrypt it under the logical operation result of the key).

記憶キーは、関連の制御ベクトル及びマスター・キー
記憶装置18に保管されたマスター・キーの、排他的論理
和の結果である。前記実施例における論理演算結果も排
他的論理和操作であるが、これは違う種類の論理演算で
ある。
The storage key is the result of the exclusive-or of the associated control vector and the master key stored in the master key store 18. The result of the logical operation in the above embodiment is also an exclusive OR operation, but this is a different kind of logical operation.

該制御ベクトルは、関連の暗号キーとともに暗号キー
記憶装置22に保管される。すべてのキーはマスター・キ
ーの元で暗号キー記憶装置22に保管されるため、暗号化
キーの暗号化/非暗号化が統一システムの元に可能とな
る。
The control vector is stored in the cryptographic key storage device 22 along with the associated cryptographic key. Since all keys are stored in the encryption key storage device 22 under the master key, encryption / decryption of the encryption key is possible under the unified system.

本発明の第16図に示すのは、機密パスワードを制御ベ
クトルに組み込むシステムである。第16図にあるよう
に、暗号化された係るキーとともに暗号キー記憶装置22
に保管された制御ベクトルは、パスワード・フィールド
を持つ。しかし、パスワードは機密であるため、制御ベ
クトル内には保管されない。制御ベクトル内のパスワー
ド・フィールドはゼロにセットされる(すなわち、すべ
てのビットがゼロになる)。ゆえに、パスワード・フィ
ールドの長さが56ビットならば56のゼロ・ビットがセッ
トされる。機密パスワード自体は、入出力経路8に接続
する分離パスワード・チャネル32に通じて、暗号機構4
に対して出される。従って、暗号キーにアクセスする権
利を持つユーザーが前もって機密パスワードのコピーを
得ることができる。制御ベクトルが該パスワードを持つ
ようなキーを使用する暗号提供要求が出されたならユー
ザーは、暗号提供要求に対する追加のパラメータとして
パスワードを平文で入力しなくてはならない。その後前
述のように制御ベクトル検査が行なわれ、制御ベクトル
検査装置14は応答として、線20で暗号処理装置16に対
し、暗号キー再生操作が許可されたという許可信号を出
力する。制御ベクトル検査装置14では、制御ベクトルの
パスワード・フィールドは検査されない。その後暗号処
理装置16が許可信号に応答して、線20で暗号キー記憶装
置22から暗号化された暗号キーを、及び母線12に接続す
る入出力経路8に接続された分離パスワード・チャネル
32を通じて、平文のパスワードを受け取る。パスワード
は制御ベクトルに挿入されて制御ベクトルが完成し、N
ビット・ハッシュ値を生成するハッシュ関数生成器によ
って実行される。キー再生は従来通り行なわれる。すな
わち暗号化されたキーが記憶キーの元で非暗号化され
る。この記憶キーとは、係る制御ベクトルのNビット・
ハッシュ値及びマスター・キー記憶装置18に保管された
Nビット・マスター・キーの、論理演算結果である。
Shown in Figure 16 of the present invention is a system that incorporates a secret password into a control vector. As shown in FIG. 16, the encryption key storage device 22 together with the encrypted key
The control vector stored in has a password field. However, the password is confidential and is not stored in the control vector. The password field in the control vector is set to zero (ie all bits are zero). Therefore, if the length of the password field is 56 bits, 56 zero bits will be set. The confidential password itself is passed through the separated password channel 32 connected to the input / output path 8 to the encryption mechanism 4
Issued to. Therefore, a user who has the right to access the encryption key can obtain a copy of the confidential password in advance. If a cipher provision request is made using a key whose control vector has the password, the user must enter the password in clear text as an additional parameter to the cipher provision request. Thereafter, the control vector inspection is performed as described above, and the control vector inspection device 14 outputs a permission signal on the line 20 to the cryptographic processing device 16 in response to the cryptographic key reproduction operation. The control vector checking device 14 does not check the password field of the control vector. Thereafter, the cryptographic processing unit 16 responds to the permission signal by transmitting the encryption key encrypted from the encryption key storage unit 22 on the line 20 and the separated password channel connected to the input / output path 8 connecting to the bus 12.
Receive a plaintext password through 32. The password is inserted into the control vector to complete the control vector, N
Performed by a hash function generator that produces a bit hash value. Key reproduction is performed as usual. That is, the encrypted key is unencrypted under the storage key. This memory key is N bits of the control vector
It is a logical operation result of the N-bit master key stored in the hash value and master key storage device 18.

パスワードは、キー再生処理あるいは暗号提供要求処
理の一部として検査されないが、該検査は不要なのであ
る。キーが生成されると、それはパスワードが組み込ま
れた制御ベクトルのハッシュ値の元で暗号化される。そ
の後キーが再生されたときにユーザーが間違ったパスワ
ードを入力すると、該暗号化キーは該不正制御ベクトル
とマスター・キーの論理演算結果である記憶キーの元で
非暗号化されるため、実際には不定不測のキーが再生さ
れて暗号命令処理に使用される。暗号命令については、
前述したマチアス他の関連特許出願(b)で、1以上の
不正キーが再生されたとき、命令の出力結果が無効であ
る場合、あるいは有効な場合について暗号命令を論じて
いる。
The password is not checked as a part of the key reproduction process or the cipher provision request process, but the check is unnecessary. Once the key is generated, it is encrypted under the hash value of the control vector with the embedded password. If the user then inputs a wrong password when the key is regenerated, the encryption key is actually unencrypted under the storage key that is the logical operation result of the fraud control vector and the master key. Is used for cryptographic command processing by reproducing an indeterminate and unexpected key. For cryptographic instructions,
In the related patent application (b) of Matthias et al., Discussed above, cryptographic instructions are discussed when one or more illegal keys are played, and when the output result of the instruction is invalid or valid.

第17図で制御ベクトルへのパスワードの組込み方をい
くつか例示している。第17図の(a)は、パスワードが
制御ベクトルの位置従属フィールドとなる場合、第17図
の(b)は、パスワードがフィールド識別子、フィール
ド長及びデータを持つタグ位置付け構造のフィールドと
なる場合、第17図の(c)は、パスワードがフィールド
識別子、データ及び区切り文字を持つタグ位置付け構造
のフィールドとなる場合である。暗号キー使用を許可す
るための制御ベクトルへのパスワード・フィールド組込
みは、これらの、あるいは他のいずれかの方法により好
都合に行なうことができる。
FIG. 17 shows some examples of how to embed a password in the control vector. FIG. 17 (a) shows a case where the password is the position dependent field of the control vector, and FIG. 17 (b) shows a case where the password is the field of the tag positioning structure having the field identifier, the field length and the data. FIG. 17 (c) shows a case where the password is a field of a tag positioning structure having a field identifier, data and a delimiter. Inclusion of the password field in the control vector to allow cryptographic key usage can be conveniently accomplished by these or any other method.

第20図は、暗号機構4を別の見地から見ており、パス
ワード(平文あるいは暗号文いずれでも)が組み込まれ
た制御ベクトルによる暗号化を示す。レジスタ90の制御
ベクトルは任意長であり、第16図及び第17図に示す空の
(すべてがゼロの)フィールドを持つ。パスワードが組
み込まれた制御ベクトルをハッシュ関数処理装置92に入
力する前に、ステージング・レジスタ91で、該空フィー
ルドに、パスワード入力装置32から提供されたユーザー
・パスワードが入る。ハッシュ関数処理装置92は、制御
ベクトルとユーザー・パスワードを合わせ持つNビット
のハッシュ値を出力する。Nビット・ハッシュ値は論理
46で、Nビット・キー暗号化キーKEKと排他的論理和さ
れてNビットの算出されたキー値を生成し、これが暗号
化装置41への入力キーとなる。暗号化装置41からの暗号
文出力は、制御ベクトルとパスワードを合わせ持つNビ
ット・ハッシュ値によって特定化される。同様にして非
暗号化も、暗号化装置41と第20図の非暗号化装置47を置
き換えて行なわれる。暗号文が非暗号化されたときにも
し、ユーザーが間違ったパスワードを入力してそれが制
御ベクトルに与えられれば、ハッシュ値は正しく算出さ
れたキー値とはならず、非暗号化装置47は平文を生成す
ることが出来ない。
FIG. 20 looks at the cryptographic mechanism 4 from a different perspective, showing encryption with a control vector that incorporates a password (either plaintext or ciphertext). The control vector of register 90 is of arbitrary length and has an empty (all zeros) field as shown in FIGS. In the staging register 91, the empty field is populated with the user password provided from the password input device 32 prior to entering the control vector with the embedded password into the hash function processor 92. The hash function processing device 92 outputs an N-bit hash value having both the control vector and the user password. N-bit hash value is logical
At 46, the N-bit key encryption key KEK is XORed to generate the calculated N-bit key value, which is the input key to the encryption device 41. The ciphertext output from the encryption device 41 is specified by the N-bit hash value that has both the control vector and the password. Similarly, the non-encryption is performed by replacing the encryption device 41 with the non-encryption device 47 of FIG. If the ciphertext is decrypted and the user enters the wrong password and it is given to the control vector, the hash value will not be the correctly calculated key value and the decryptor 47 will Unable to generate plaintext.

時間間隔と制御ベクトル: 制御ベクトルに日付及び時間情報を組み込むことで、
より細密な暗号キーが使用制御が可能になる。この概念
はいくつかの異なる方法で実施可能であるが、基本的に
は、係る暗号キーがいつ処理されるか(暗号提供要求に
応じて)を記述する、1以上の時間間隔を制御ベクトル
に組み込む。命令中の命令の型やパラメータによってキ
ーへのアクセスを制限することで、より細分性が得られ
る。たとえば、第一の期間に暗号化命令中でキーを使え
るように、また第二の期間(第一とは等しくない)に非
暗号化命令中でキーを使えるように制御ベクトルをコー
ド化するような場合である。同様に、命令の型以外にシ
ステム・パラメータによってキーへのアクセスは変えら
れる。たとえば、第一の期間にシステムAでキーを活動
化し、第二の期間でシステムBでキーを活動化するよう
な場合である。期間と、命令、システム及びユーザー等
とのリンクが、様々な方法で行なわれることが判断でき
よう。これらの方法は特に本発明にて定義されるもので
はなく、時間情報を何らかの形で制御ベクトルに組み込
む、という基本概念に基づいて構築される。時間情報の
制御ベクトルへの組込みは、非常に高いレベルの機密保
護を必要としたり、ある特定の期間にのみキーの使用を
許可したいような適用業務(例:あるシステム資源への
アクセス権をユーザーに与えて、その適用業務の内容を
知りある程度操作できるようにはするが、それを予約ま
たは購入するまでは全部の機能を使わせない場合など)
に、特に有効である。
Time Interval and Control Vector: By incorporating date and time information in the control vector,
A finer encryption key allows use control. This concept can be implemented in several different ways, but basically, the control vector is one or more time intervals that describe when (in response to the cryptographic provision request) such cryptographic keys are processed. Incorporate. More granularity can be obtained by limiting access to keys by the type and parameters of the instructions in the instruction. For example, code the control vector so that the key can be used in encrypted instructions during the first period, and the key can be used in unencrypted instructions during the second period (not equal to the first). That is the case. Similarly, access to the key can be altered by system parameters other than the type of instruction. For example, activating the key in system A in the first period and activating the key in system B in the second period. It will be appreciated that the linking of the time period with the instructions, the system, the user, etc. can take place in various ways. These methods are not specifically defined in the present invention, and are constructed based on the basic concept of incorporating time information in a control vector in some form. Incorporation of time information into the control vector requires very high levels of security, or applications that want to allow the use of keys only for a certain period of time (eg users with access rights to certain system resources). (If you do not want to use all the functions until you reserve or purchase it, etc.)
It is especially effective.

本発明の第18図に、制御ベクトル中に時間情報を持つ
システムを示す。第18図にあるように、暗号化された関
連の暗号キーとともに暗号キー記憶装置22に保管された
制御ベクトルは、時間間隔フィールドを持ち、該フィー
ルドは、開始日と時間、及び終了日と時間と記述した1
以上の時間間隔を持つ。暗号機構4も、母線12に接続す
る実時間クロック34を持つため、制御ベクトル検査装置
14は母線12上でクロック値を読むことができる。第18図
には示していないが、完全性のため実時間クロックの初
期値をセットする装置もある。例えば、マスター・キー
入力用の物理キー活動化キー・スイッチとともに機密保
護前面パネル入力ポートに接続された、携帯キー入力装
置を含むシステムで、(前述のマチアス他による関連特
許出願(b)で伸べられる、マスター・キー18を初期化
するのと同様の手順で)実時間クロック34が初期化され
る。同一の携帯キー入力装置を用いて2つのスイッチを
使用し、実時間クロック・レジスタ34にクロック値を入
力できる。クロック値を初期化するのには、その他の技
術も使用される。第18図の他の構成要素は、第16図のそ
れと同様である。制御ベクトルに時間情報が組み込ま
れ、暗号装置が実時間クロックを持つ場合(第18図)で
も、暗号提供要求の処理は先に述べた方法と同様に行な
われる。(後述の例外を除く。) 本発明の第18図によれば、暗号提供要求が出され、そ
れが該時間間隔フィールドを持つ制御ベクトルがあるキ
ーを使用するとき、処理は次のようになる。制御ベクト
ル検査は上述の通り進むが、ただし保管済時間情報に応
じて追加の検査が行なわれる。(制御ベクトルがパスワ
ードを持つ場合も持たない場合もあるが、そのレベルの
暗号キー管理は、ここで述べる時間間隔による検査では
変わらない。)第18図及び第20図について言うと、制御
ベクトル検査装置14が、クロック34から出された現在の
実時間クロック値にアクセスし、検査が行なわれて、ク
ロック値が制御ベクトル中に記述された時間間隔内にあ
るかどうかが判別される。制御ベクトル中に1以上の時
間間隔が存在するならば、クロック値はこれらの時間間
隔内のどれかにならなければならない。(ただし、1以
上の間隔内にある必要はない。)該検査及び制御ベクト
ルの残りの部分の検査に合格すると、それに応答して制
御ベクトル検査装置14は、線20で暗号処理装置16に対
し、暗号キー再生操作が許可されたという許可信号を出
す。暗号処理装置16が線20で許可信号に応答して、暗号
化された暗号キーを暗号キー記憶装置22から受け取り、
記憶キー(関連の制御ベクトルおよび、マスター・キー
記憶装置18に保管されたマスター・キーの論理演算結
果)の元でそれを非暗号化する。
FIG. 18 of the present invention shows a system having time information in the control vector. As shown in FIG. 18, the control vector stored in the cryptographic key store 22 along with the associated encrypted cryptographic key has a time interval field, which includes a start date and time, and an end date and time. Described as 1
It has the above time interval. Since the encryption mechanism 4 also has the real-time clock 34 connected to the bus 12, the control vector inspection device
14 can read the clock value on bus 12. Although not shown in FIG. 18, some devices set the initial value of the real-time clock for completeness. For example, in a system that includes a portable key input device connected to a secure front panel input port with a physical key activation key switch for master key input (see Related Patent Application (b) above by Mathias et al. The real-time clock 34 is initialized (in the same manner as the initialization of the master key 18). Two switches can be used with the same portable key input device to enter the clock value into the real-time clock register 34. Other techniques are also used to initialize clock values. The other components in FIG. 18 are the same as those in FIG. Even when the time information is incorporated in the control vector and the cryptographic device has a real-time clock (FIG. 18), the processing of the cryptographic provision request is performed in the same manner as the method described above. According to FIG. 18 of the present invention, when a cipher provision request is issued and it uses a key with a control vector having the time interval field, the processing is as follows. . The control vector check proceeds as described above, but with additional checks depending on the stored time information. (The control vector may or may not have a password, but the encryption key management at that level is not changed by the inspection at the time interval described here.) Referring to FIG. 18 and FIG. Device 14 accesses the current real-time clock value provided by clock 34 and a check is made to determine if the clock value is within the time interval described in the control vector. If there is more than one time interval in the control vector, the clock value must be somewhere within these time intervals. (However, it does not have to be within an interval of 1 or more.) When the inspection and the inspection of the remaining part of the control vector are passed, the control vector inspection device 14 responds to the line 20 to the cryptographic processing device 16 by the line 20. , Issues a permission signal that the encryption key reproduction operation is permitted. The cryptographic processing device 16 responds to the authorization signal on line 20 to receive the encrypted cryptographic key from the cryptographic key storage device 22,
Decrypt it under the storage key (the associated control vector and the logical operation result of the master key stored in the master key storage 18).

第21図にあるように、制御ベクトル検査装置14は、実
時間クロック34にアクセスして、実際の時間と制御ベク
トルCに記述された期間とを比較する。制御ベクトル検
査装置はまた、暗号提供要求の入力によって指定された
とおり制御ベクトルCを使用してもよいかどうかを検査
する。どちらの検査も合格すると、線20で許可信号が出
され、任意長制御ベクトルCはハッシュ関数処理装置92
への入力データとなり、Nビット・ハッシュ値C′に変
換される。次にNビット・ハッシュ値C′が排他的論理
和46でNビット・キー暗号化キーKEKと排他的論理和さ
れ、Nビットの算出値であって非暗号化装置47への入力
キーとなる値を再生する。(第21図で非暗号化装置47と
暗号化装置41を置き換えると、暗号化も同じ手順で行な
うことができる。) 第19図は、第18図の時間間隔フィールドをさらに精密
化したものである。特に第19図(a)は、開始日/時
間、及び終了日/時間から成る1以上の時間間隔が存在
する時間間隔フィールドを示す。これらのフィールド及
び時間単位(時、分、秒など)をコード化する方法につ
いては本発明では取り上げない。第19図(b)に示す方
法では、時間間隔が特定の命令と関連するため、キー処
理は、該処理を要求する命令に従属する。第19図(c)
に示す方法では、時間間隔が特定のシステムと関連する
ため、キー処理は、キーが使用されるシステムに従属す
る。そのため暗号装置は、制御ベクトル検査装置14にシ
ステムIDを提供しなくてはならない。システムIDは第18
図には示されていないが、暗号機構の中に完全に保管さ
れ、必要に応じてアクセスされる。システムIDは、マス
ター・キー及び実時間クロック値を初期化する方法(前
述)と同様の方法で、初期化されて暗号機構の中に入
る。同様に特に図示していないが、時間間隔フィールド
は、第15図に示したパスワード・フィールドと同様の方
法で実行される。つまり、時間間隔は制御ベクトル内で
定位置従属フィールドとも、タグ位置付けフィールドと
もなりえ、第15図に示したいずれの方法によっても実行
可能である。(パスワード・フィールドが時間間隔フィ
ールドと置き換わった場合を除く。) 前記実施例において暗号化装置41及び非暗号化装置47
は、ANSIのデータ暗号化アルゴリズム(DEA)を採用し
ている。これは、実用向データ保護製品にとって標準的
な暗号アルゴリズムであり、標準ANSI X2.92(1981
年)、「データ暗号化アルゴリズム」に述べられてい
る。DEAは対称的ブロックアルゴリズムの暗号文アルゴ
リズムで、56ビットの機密キーで64ビットの平文を暗号
化し、64ビットの暗号文を形成する。DEAキーは普通、
1バイトごとに1つのパリティ・ビットを持ち、64ビッ
ト・キーを形作っている。DEAは、国際基準局(Nationa
l Bureau of Standards)公認の連邦データ暗号化標準
(Federal Data Encryption Standard)の基礎となって
いるため、DESとも呼ばれる。しかし、暗号化装置41及
び非暗号化装置47に関する他の実施例は、より特定の適
用業務プログラムに合致するようになっている。DEAと
はキーやブロック・サイズの異なる、他の暗号化アルゴ
リズムも使用可能である。
As shown in FIG. 21, the control vector checking device 14 accesses the real time clock 34 and compares the actual time with the period described in the control vector C. The control vector checking device also checks whether the control vector C may be used as specified by the input of the cipher provision request. If both tests pass, a permission signal is issued on line 20 and the arbitrary length control vector C is transferred to the hash function processor 92.
It becomes the input data to and is converted into the N-bit hash value C '. Next, the N-bit hash value C ′ is exclusive-ORed with the N-bit key encryption key KEK by the exclusive OR 46, and the calculated value of N bits becomes the input key to the non-encryption device 47. Play the value. (By replacing the non-encryption device 47 and the encryption device 41 in FIG. 21, encryption can be performed in the same procedure.) FIG. 19 is a further refinement of the time interval field of FIG. is there. In particular, FIG. 19 (a) shows a time interval field in which there are one or more time intervals consisting of a start date / time and an end date / time. The method of encoding these fields and time units (hours, minutes, seconds, etc.) is beyond the scope of this invention. In the method shown in FIG. 19 (b), since the time interval is associated with a specific instruction, the key processing depends on the instruction requesting the processing. Figure 19 (c)
In the method shown in, the keying is dependent on the system in which the key is used because the time interval is associated with a particular system. Therefore, the cryptographic device must provide the system ID to the control vector checking device 14. System ID is 18th
Although not shown in the figure, it is stored entirely in a cryptographic mechanism and accessed as needed. The system ID is initialized and enters the cryptographic mechanism in a manner similar to that of initializing the master key and real-time clock values (described above). Similarly, although not specifically shown, the time interval field is implemented in a manner similar to the password field shown in FIG. That is, the time interval can be either a fixed position dependent field or a tag positioning field in the control vector and can be implemented by any of the methods shown in FIG. (Except when the password field is replaced with the time interval field.) In the above embodiment, the encryption device 41 and the non-encryption device 47.
Uses the ANSI Data Encryption Algorithm (DEA). This is a standard cryptographic algorithm for practical data protection products, and is standard ANSI X2.92 (1981
Year), "Data Encryption Algorithms". DEA is a symmetric block algorithm ciphertext algorithm that encrypts 64-bit plaintext with a 56-bit secret key to form a 64-bit ciphertext. The DEA key is usually
It has one parity bit per byte, forming a 64-bit key. DEA is the International Bureau of Standards (Nationa
l Bureau of Standards) It is also called DES because it is the basis of the official Federal Data Encryption Standard. However, the other embodiments of the encryption device 41 and the non-encryption device 47 are adapted to a more specific application program. Other encryption algorithms with different keys and block sizes than DEA can also be used.

前記実施例の、ハッシュ関数処理装置92で実行される
公開一方向ハッシュ関数は、前述したブラッチェル他の
関連特許出願(e)に述べられる修正探索コード(MD
C)算出のアルゴリズムを使用しているが、本発明に従
い他のハッシュ関数を使用して、記憶レジスタ90の任意
長制御ベクトルを、それと異なる、キーとの排他的論理
和を出しやすい長さを持つハッシュ値に変換することも
できる。本発明に従い排他的論理和を実施するために
は、キーの長さが64ビットならばハッシュ値も64ビット
でなければならない。キーの長さが128ビットならばハ
ッシュ値も128ビットでなければならない。本発明に従
い排他的論理和46でハッシュ値とキーとの排他的論理和
を求めるためには、代替キー値の長さが使用されれば、
等しい長さの代替ハッシュ値が使用されなければならな
い。ハッシュ値の一部は同じビット長を持つキーの一部
(あるいは全部)と排他的論理和される。
The public one-way hash function executed by the hash function processing device 92 in the above embodiment is the modified search code (MD) described in the related patent application (e) of Brachel et al.
C) Although the calculation algorithm is used, another hash function is used in accordance with the present invention to set an arbitrary length control vector of the storage register 90 to a length different from that of the exclusive OR with the key. It can also be converted into a hash value. To perform an exclusive OR according to the present invention, if the key length is 64 bits, the hash value must also be 64 bits. If the key length is 128 bits, the hash value must also be 128 bits. In order to obtain the exclusive OR of the hash value and the key with the exclusive OR 46 according to the present invention, if the length of the alternative key value is used,
Alternate hash values of equal length must be used. Part of the hash value is XORed with part (or all) of the keys that have the same bit length.

本発明の別の実施例では、暗号処理を即時に行なうた
めに暗号機構にクリア・キーが保管されることがある。
第22図の例では、作業用記憶域24にクリア・キーが保管
される。第一の方法では、各キー及び関連の制御ベクト
ルの対が、暗号装置のランダム・アクセス・メモリ(RA
M)つまり作業用記憶域24に保管される。あるキーにア
クセスするためのルーチン操作中、関連の制御ベクトル
がまずアクセスされ、キー使用が確実に許可されるよう
にするため前述のように制御ベクトル検査が行われる。
使用が許可されれば、キーが作業用記憶域からアクセス
され、暗号機構内操作に使用される。第二の方法では、
キーとその関連制御ベクトルのハッシュ値の排他的論理
和の結果が、暗号機構中の作業用記憶域に保管される。
任意長制御ベクトル自体は、キーとハッシュ値の演算結
果を伴い作業用記憶域に保管されるか、あるいは入力経
路8に渡される。あるキーにアクセスするためのルーチ
ン操作中、関連の任意長制御ベクトルがまず作業用記憶
域からアクセスされるか、あるいはまず入力経路8上で
受け取られ、キー使用が確実に許可されるようにするた
め前述のように制御ベクトル検査が行われる。使用が許
可されれば、任意長制御ベクトルはハッシュ値を生成す
るハッシュ関数処理装置92を通って処理される。そし
て、キーとその関連制御ベクトルのハッシュ値の排他的
論理和の結果が、作業用記憶域からアクセスされ、ハッ
シュ関数処理装置92により算出されたハッシュ値と排他
的論理和されて、要求暗号操作で使用されるキーを生成
する。128ビット・キー及び128ビット・ハッシュ値に対
する第三の方法では、キーの左半分がハッシュ値の左半
分と排他的論理和されて作業用記憶域に保管され、キー
の右半分がハッシュ値の右半分と排他的論理和されて作
業用記憶域に保管される。第四の方法では、キーが64ビ
ット・キーでハッシュ値が128ビット・ハッシュ値の場
合、64ビット・キーがハッシュ値の左半分と排他的論理
和されて作業用記憶域に保管され、また右半分と排他的
論理和されて作業用記憶域に保管される。これらいずれ
の方法でも、(キーが暗号機構の機密保護境界内に平文
の形で保管されている限り)キーの暗号化/非暗号化操
作をキー再生につなげる必要がないので、処理速度が向
上する。制御ベクトルのハッシュ値と関連のキーを結合
して作業用記憶域24に保管するのに、排他的論理和以外
の論理演算も使用できる。
In another embodiment of the invention, the clear key may be stored in the cryptographic mechanism for immediate cryptographic processing.
In the example of FIG. 22, the clear key is stored in the working storage area 24. In the first method, each key and associated control vector pair is stored in the random access memory (RA) of the cryptographic device.
M) That is, stored in the working storage area 24. During routine operation to access a key, the associated control vector is first accessed and a control vector check is performed as described above to ensure that key usage is permitted.
If authorized, the key is accessed from working storage and used for intra-cryptographic operations. In the second method,
The result of the exclusive OR of the hash value of the key and its associated control vector is stored in working storage in the cryptographic mechanism.
The arbitrary length control vector itself is stored in the working storage area together with the operation result of the key and the hash value, or passed to the input path 8. During routine operation to access a key, the associated arbitrary length control vector is first accessed from working storage or first received on input path 8 to ensure key usage is authorized. Therefore, the control vector inspection is performed as described above. If allowed, the arbitrary length control vector is processed through a hash function processor 92 that produces a hash value. Then, the result of the exclusive OR of the hash value of the key and its associated control vector is accessed from the working storage area and the exclusive OR of the hash value calculated by the hash function processing device 92 is performed, and the requested cryptographic operation is performed. Generate a key used in. A third method for 128-bit keys and 128-bit hash values is to XOR the left half of the key with the left half of the hash value into working storage and the right half of the key with the hash value. XORed with the right half and saved in working storage. In the fourth method, if the key is a 64-bit key and the hash value is a 128-bit hash value, the 64-bit key is XORed with the left half of the hash value and stored in working storage, and XORed with the right half and saved in working storage. Neither of these methods speeds up the process because key encryption / non-encryption operations need not be tied to rekey (as long as the key is stored in plaintext within the security boundary of the cryptographic mechanism). To do. Logical operations other than exclusive-or can also be used to combine the control vector hash value and the associated key and store in working storage 24.

E.発明の効果 以上説明したように本発明によれば、暗号キー管理の
技術が改善される。
E. Effect of the Invention As described above, according to the present invention, the technique of encryption key management is improved.

【図面の簡単な説明】[Brief description of drawings]

第1図は、本発明の第一実施例の解説図であり、64ビッ
ト暗号キーKを、128ビット・キー暗号化キーKK(左半
分64ビットKKL及び右半分64ビットKKRより成る)、及び
128ビット制御ベクトルC(左半分64ビットCL及び右半
分64ビットCRより成る)により暗号化するシステムを示
す。 第2図は、本発明の第一実施例の解説図であり、第1図
の方法で128ビット制御ベクトル及び128ビット・キー暗
号化キーにより暗号化された64ビット暗号キーKを、非
暗号化するシステムを示す。 第3図は、暗号配布チャネルを経由して結合された、暗
号装置ネットワークの図である。 第4図は、暗号装置の基本構成要素の図である。 第5図は、処理可能キーKを生成する暗号装置構成要素
内での、処理順序を示す図である。Kはマスター・キー
KM及び制御ベクトルCにより暗号化され、キー記憶装置
に保管される。適用業務は、記憶装置内でキーにつなが
るインデックスまたはラベルを通じて、処理可能キーK
にアクセスする。 第6図は、CF内での暗号命令実施の一般的手順を示す図
である。 第7図は、64ビット暗号キーKを、128ビット・キー暗
号化キーKK(左半分64ビットKKL及び右半分64ビットKKR
より成る)と64ビット制御ベクトルCにより暗号化する
システムの図である。 第8図は、第7図の手順により暗号化された4ビット暗
号キーKを、128ビット・キー暗号化キーKKと64ビット
制御ベクトルCにより非暗号化するシステムの図であ
る。 第9図は、本発明の第二実施例の解説図であり、64ビッ
ト暗号キーKを、128ビット・キー暗号化キーKK(左半
分64ビットKKL及び右半分64ビットKKRより成る)、及び
任意長制御ベクトルCinfにより暗号化するシステムを示
す。 第10図は、本発明の第二実施例の解説図であり、第9図
の方法で任意長制御ベクトル及び128ビット・キー暗号
化キーにより暗号化された64ビット暗号キーKを、非暗
号化するシステムを示す。 第11図は、修正探索コード操作(MDCOP)の解説図であ
る。MDCOPは修正探索コード(MDC)アルゴリズム1ブロ
ックごとに、2から4回の暗号化に使用される。図面に
は、MDCOPアルゴリズムについて文章及び概略図で示し
てある。 第12図は、修正探索コード(MDC)アルゴリズム1ブロ
ックごとに、2回の暗号化を行なう場合、 第13図は、修正探索コード(MDC)アルゴリズム1ブロ
ックごとに、4回の暗号化を行なう場合について解説し
てある。 第14図は、3つのCV方法(64ビットCV、128ビットCV、
任意長CV)を暗号処理上分離する方法について述べた図
である。キー暗号化キーKKL、KKRにより排他的論理和さ
れる制御ベクトルを各方法について示してある。書くベ
クトル中の固定ビット・フィールドは、3方法を分離す
るのに使われる特定のコーディングに従って定義され
る。 第15図は、(a)から(f)までに分類されており、任
意長制御ベクトルのデータ構造を示す。 第16図は、機密保護パスワードを制御ベクトルに組み込
む暗号処理システムを示す図である。 第17図は、パスワードを制御ベクトルデータ構造に組み
込む例をいくつか図示したものである。 第18図は、時間情報を制御ベクトルに組み込む暗号処理
システムを示す図である。 第19図は、時間情報を制御ベクトル・データ構造に組み
込む例をいくつか図示したものである。 第20図は、パスワードが組み込まれた任意長制御ベクト
ルによる暗号化を示す図である。 第21図は、時間間隔検査及び、任意長制御ベクトルによ
る非暗号化を示す図である。 第22図は、任意長制御ベクトルの暗号機構を示す図であ
る。
FIG. 1 is an explanatory view of the first embodiment of the present invention, in which a 64-bit encryption key K is a 128-bit key encryption key KK (consisting of a left half 64-bit KKL and a right half 64-bit KKR), and
A system for encryption with a 128-bit control vector C (consisting of a left half 64-bit CL and a right half 64-bit CR) is shown. FIG. 2 is an explanatory view of the first embodiment of the present invention, in which the 64-bit encryption key K encrypted by the 128-bit control vector and the 128-bit key encryption key by the method of FIG. Shows the system to be converted. FIG. 3 is a diagram of a cryptographic device network coupled via a cryptographic distribution channel. FIG. 4 is a diagram of the basic components of the cryptographic device. FIG. 5 is a diagram showing a processing order in the cryptographic device component that generates the processable key K. K is the master key
Encrypted by KM and control vector C and stored in key store. The application processable key K through an index or label that leads to the key in storage.
To access. FIG. 6 is a diagram showing a general procedure for implementing a cryptographic instruction in the CF. In Fig. 7, the 64-bit encryption key K is converted to the 128-bit key encryption key KK (left half 64-bit KKL and right half 64-bit KKR).
FIG. 4 is a diagram of a system for encryption with a 64-bit control vector C. FIG. 8 is a diagram of a system in which the 4-bit encryption key K encrypted by the procedure of FIG. 7 is unencrypted by the 128-bit key encryption key KK and the 64-bit control vector C. FIG. 9 is an explanatory view of the second embodiment of the present invention, in which a 64-bit encryption key K is a 128-bit key encryption key KK (consisting of a left half 64-bit KKL and a right half 64-bit KKR), and The system which encrypts by arbitrary length control vector Cinf is shown. FIG. 10 is an explanatory diagram of the second embodiment of the present invention, in which the 64-bit encryption key K encrypted by the arbitrary length control vector and the 128-bit key encryption key by the method of FIG. Shows the system to be converted. FIG. 11 is an explanatory diagram of the modified search code operation (MDCOP). MDCOP is used for two to four encryptions per modified search code (MDC) algorithm block. The drawings show the MDCOP algorithm in text and schematic form. FIG. 12 shows the case where the encryption is performed twice for each block of the modified search code (MDC) algorithm, and FIG. 13 shows the encryption performed four times for each block of the modified search code (MDC) algorithm. The case is explained. Figure 14 shows three CV methods (64-bit CV, 128-bit CV,
It is a figure which described the method of isolate | separating arbitrary length CV) by encryption processing. A control vector exclusive-ORed by the key encryption keys KKL and KKR is shown for each method. The fixed bit fields in the write vector are defined according to the particular coding used to separate the three methods. FIG. 15 is classified into (a) to (f) and shows the data structure of the arbitrary length control vector. FIG. 16 is a diagram showing a cryptographic processing system that incorporates a security password into a control vector. FIG. 17 illustrates some examples of incorporating a password into a control vector data structure. FIG. 18 is a diagram showing a cryptographic processing system that incorporates time information into a control vector. FIG. 19 illustrates some examples of incorporating time information into a control vector data structure. FIG. 20 is a diagram showing encryption by an arbitrary length control vector in which a password is incorporated. FIG. 21 is a diagram showing a time interval check and non-encryption by an arbitrary length control vector. FIG. 22 is a diagram showing an encryption mechanism of an arbitrary length control vector.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウイリアム・シイー・アーノルド アメリカ合衆国ニユーヨーク州マホパツ ク、アール・デイー2、ウツドランド・ロ ード(番地なし) (72)発明者 ドナルド・ビイー・ジヨンソン アメリカ合衆国ヴアージニア州マナサス、 ブランツヴイレ・ロード9430番地 (72)発明者 ラメシユ・ケイ・カーン アメリカ合衆国ヴアージニア州ヘーンデ ン、コパー・リツヂ・ドライブ13613番地 (72)発明者 アン・ヴイ・リ アメリカ合衆国ヴアージニア州アーリント ン、サウス・コロンバス・ストリート4217 番地 (72)発明者 ロステイスロー・プライマツク アメリカ合衆国ヴアージニア州ダンフリー ズ、フエアウエイ・ドライブ15900番地 (72)発明者 ステイブ・アール・ホワイト アメリカ合衆国ニユーヨーク州、ニユーヨ ーク、33番パーク・アヴエニユー7番地 (72)発明者 ジヨン・デイー・ウイルキンズ アメリカ合衆国ヴアージニア州サマーヴイ レ、ピー・オー・ボツクス8番地 (56)参考文献 電子情報通信学会技術研究報告IT86− 53“IDに基づく鍵配送方式”岡本栄司 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor William Shy Arnold Mahopatsk, New York, USA, Earl Day 2, Utdland Road (no street number) (72) Inventor Donald Biey Jonsson, Virginia, United States Brantzville Road, Manassas, 9430 (72) Inventor Lameilles Kay Khan, Cohen Ridge Drive, 13613, Henden, Va., USA (72) Inventor Ann Vui Li, South Columbus, Arlington, Va., USA Street 4217 (72) Inventor Lostaslaw Primatsk Fairway, Dumfries, Virginia, United States Drive 15900 (72) Inventor Steve Earl White No. 33 Park Ave New, 33 New York, New York, United States (72) Inventor Jyon Day Wilkins P. O. Boxes, Summerville, Virginia, United States No. 8 (56) References IEICE Technical Report IT86-53 "ID-based key distribution method" Eiji Okamoto

Claims (17)

【特許請求の範囲】[Claims] 【請求項1】暗号キーに関する操作に対する暗号サービ
ス要求を出力するデータ処理システムにおいて、 前記暗号キーは、その創作者により行うことが許可され
た機能を規定する制御ベクトルに関連しており、 所与の長さを有する制御ベクトルの使用を可能にする暗
号装置であって、 Nビット暗号キーに関連する所与の長さの制御ベクトル
を受信するための制御ベクトル入力と、 前記制御ベクトル入力と連結した入力と、暗号サービス
要求を受信するための入力とを有し、前記制御ベクトル
が前記暗号サービス要求により要求された暗号機能を許
可しているか否かを検査し、許可されている場合には許
可信号を出力する手段と、 前記制御ベクトル入力と連結した入力と、Nビット出力
とを有し、前記制御ベクトルをNビット・ハッシュ値に
マッピングするハッシング手段と、 前記Nビット暗号キーを受信するためのキー入力と、 前記ハッシング手段のNビット出力に連結された第1の
入力と、前記キー入力に連結された第2の入力とを有
し、前記Nビット・キーと前記Nビット・ハッシュ値と
の論理演算の結果である、計算されたキー値を出力に出
力する論理手段と、 入力情報を受信するための第1の入力と、前記論理手段
の出力に連結されたキー値入力とを有し、前記計算され
たキー値を用いて、前記入力情報を暗号的に変換した出
力情報を形成する暗号変換手段とを有し、 前記暗号変換手段は、 前記制御ベクトル検査手段からの前記許可信号の出力に
連結しており、 前記要求された暗号機能が前記制御ベクトルにより許可
されていないと前記制御ベクトル検査手段が判断した場
合には、前記出力情報の形成を停止する ことを特徴とする暗号装置。
1. A data processing system for outputting a cryptographic service request for an operation related to a cryptographic key, said cryptographic key being associated with a control vector defining a function permitted to be performed by its creator, And a control vector input for receiving a control vector of a given length associated with an N-bit encryption key, concatenated with the control vector input. And an input for receiving a cryptographic service request, check whether the control vector permits the cryptographic function requested by the cryptographic service request, and if so, The control vector has a means for outputting a permission signal, an input connected to the control vector input, and an N-bit output. A hashing means for mapping, a key input for receiving the N-bit encryption key, a first input connected to the N-bit output of the hashing means, and a second input connected to the key input. Logic means for outputting to the output a calculated key value, which is the result of the logical operation of the N-bit key and the N-bit hash value, and a first input for receiving input information. A key value input coupled to the output of the logic means, the cryptographic conversion means forming cryptographically converted output information of the input information using the calculated key value, The cipher conversion unit is connected to the output of the permission signal from the control vector checking unit, and the control vector checking unit determines that the requested cryptographic function is not permitted by the control vector. If so, the encryption device stops forming the output information.
【請求項2】前記制御ベクトルがNビットを超える長さ
を有することを特徴とする請求項1記載の暗号装置。
2. The encryption device according to claim 1, wherein the control vector has a length exceeding N bits.
【請求項3】前記制御ベクトルが、その中の他のフィー
ルドの意味を選択的に決定しているタグ定義フィールド
を有していることを特徴とする請求項1記載の暗号装
置。
3. The encryption device according to claim 1, wherein the control vector has a tag definition field that selectively determines the meaning of other fields in the control vector.
【請求項4】前記制御ベクトルが、それに関連するNビ
ット暗号キーを用いることができる期間を決めているフ
ィールドを有しており、それ以外の時間には前記暗号キ
ーの使用を禁止していることを特徴とする請求項1記載
の暗号装置。
4. The control vector has a field that determines a period during which an N-bit encryption key associated with the control vector can be used, and prohibits the use of the encryption key at other times. The cryptographic device according to claim 1, wherein:
【請求項5】前記制御ベクトルが、それに関連するNビ
ット暗号キーを許可されていないユーザ使用することを
防止するためのユーザ・パスワードのためのフィールド
を有することを特徴とする請求項1記載の暗号装置。
5. The control vector of claim 1 having a field for a user password to prevent unauthorized use of the N-bit encryption key associated with it. Cryptographic device.
【請求項6】前記制御ベクトルが、その長さクラスをユ
ニークに表すフィールドを有し、前記ハッシング手段に
より生成されたNビット・ハッシュ値が、異なる長さク
ラスを有する第2の制御ベクトルに対するNビット・ハ
ッシュ値と等しくならないようにすることを特徴とする
請求項1記載の暗号装置。
6. The control vector has a field uniquely representing its length class, and the N-bit hash value generated by said hashing means is N for a second control vector having a different length class. The cryptographic device according to claim 1, wherein the cryptographic device is not equal to the bit hash value.
【請求項7】パスワード入力をさらに有し、 前記制御ベクトルは、前記パスワード入力から受信した
パスワードのために予約された空フィールドを有してお
り、 前記パスワードを前記空フィールドに挿入された制御ベ
クトルが前記ハッシング手段に入力されることを特徴と
する請求項1記載の暗号装置。
7. A control vector further comprising a password input, the control vector having an empty field reserved for a password received from the password input, the control vector having the password inserted in the empty field. The cryptographic device according to claim 1, wherein is input to the hashing means.
【請求項8】前記制御ベクトルの空フィールドが、前記
制御ベクトル内の関連するフィールド記述子により識別
されることを特徴とする請求項7記載の暗号装置。
8. The cryptographic device of claim 7, wherein an empty field of the control vector is identified by an associated field descriptor in the control vector.
【請求項9】前記制御ベクトル検査手段に連結されてお
り、時間を示す値を供給するリアルタイム・クロック手
段をさらに有し、 前記制御ベクトルは、それに関連するNビット暗号キー
が使用できる時間間隔を指定したフィールドを有してお
り、 前記制御ベクトル検査手段が、前記リアルタイム・クロ
ック手段からの前記時間を示す値にアクセスし、前記時
間を示す値が前記制御ベクトルにより指定された時間間
隔内であるかを検査し、前記時間を示す値が前記時間間
隔内でない場合には、前記許可信号の出力を禁止するこ
とを特徴とする請求項1記載の暗号装置。
9. Further comprising real-time clock means coupled to said control vector checking means for providing a value indicative of time, said control vector having a time interval within which its associated N-bit cryptographic key can be used. Has a designated field, said control vector checking means accessing said value indicative of said time from said real time clock means, said value indicative of said time being within a time interval designated by said control vector The cryptographic device according to claim 1, wherein if the value indicating the time is not within the time interval, the output of the permission signal is prohibited.
【請求項10】前記制御ベクトルが、関連する前記Nビ
ット暗号キーが指定された暗号命令で使用可能である時
間間隔を特定していることを特徴とする請求項9記載の
暗号装置。
10. The cryptographic device of claim 9, wherein the control vector specifies a time interval during which the associated N-bit cryptographic key is available for a designated cryptographic instruction.
【請求項11】前記制御ベクトルが、関連する前記Nビ
ット暗号キーが指定されたデータ処理システムで使用可
能である時間間隔を特定していることを特徴とする請求
項9記載の暗号装置。
11. The cryptographic device of claim 9, wherein the control vector specifies a time interval during which the associated N-bit cryptographic key is available in a designated data processing system.
【請求項12】前記制御ベクトルが、関連する前記Nビ
ット暗号キーが指定されたユーザにより使用可能である
時間間隔を特定していることを特徴とする請求項9記載
の暗号装置。
12. The cryptographic device of claim 9, wherein the control vector specifies a time interval during which the associated N-bit cryptographic key is usable by a designated user.
【請求項13】暗号キーに関する操作に対する暗号サー
ビス要求を出力するデータ処理システムにおいて、 前記暗号キーは、その創作者により行うことが許可され
た機能を規定する制御ベクトルに関連しており、 2Nビット長の制御ベクトルの使用を可能にする暗号装置
であって、 2Nビット長の暗号キーに関連する、2Nビット長の制御ベ
クトルを受信するための制御ベクトル入力であって、 前記制御ベクトルは、Nビット長の左部分CLとNビット
長の右部分CRを有しており、 前記暗号キーは、Nビット長の左部分KKLとNビット長
の右部分KKRを有している 前記制御ベクトル入力と、 CLとKKLを受信し、第1のキー値として排他的論理和演
算の結果であるKKL+CLを計算する第1論理ブロック手
段と、 CRとKKRを受信し、第2のキー値として排他的論理和演
算の結果であるKKR+CRを計算する第2論理ブロック手
段と、 平文テキスト入力と、前記第1のキー値を受信するため
の入力と、出力とを有する第1の暗号化手段と、 前記第1の暗号化手段の出力に接続された入力と、前記
第2のキー値を受信するための入力と、出力とを有する
非暗号化手段と、 前記非暗号化手段に接続された入力と、前記第1のキー
値を受信するためのキー入力と、出力とを有し、前記第
1の暗号化手段に入力された平文テキストの変形である
暗号テキストを生成する第2暗号化手段と を有する暗号装置。
13. A data processing system for outputting a cryptographic service request for an operation related to a cryptographic key, wherein the cryptographic key is associated with a control vector defining a function permitted to be performed by its creator, and is 2N bits. A cryptographic device enabling the use of a long control vector, said control vector input for receiving a 2N bit long control vector associated with a 2N bit long cryptographic key, said control vector being N The control vector input has a left part CL of bit length and a right part CR of N bit length, and the encryption key has a left part KKL of N bit length and a right part KKR of N bit length. , CL and KKL are received, and first logical block means for calculating KKL + CL, which is the result of the exclusive OR operation as the first key value, and CR and KKR, are received as the second key value. sum First encryption means having a second logic block means for calculating the result KKR + CR, a plaintext input, an input for receiving the first key value, and an output; A non-encryption means having an input connected to the output of the encryption means, an input for receiving the second key value, and an output; an input connected to the non-encryption means; A second encryption means that has a key input for receiving the first key value and an output, and that generates a ciphertext that is a modification of the plaintext text input to the first encryption means. Cryptographic device.
【請求項14】暗号キーに関する操作に対する暗号サー
ビス要求を出力するデータ処理システムにおいて、 前記暗号キーは、その創作者により行うことが許可され
た機能を規定する制御ベクトルに関連しており、 2Nビット長の制御ベクトルの使用を可能にする暗号装置
であって、 2Nビット長の暗号キーに関連する、2Nビット長の制御ベ
クトルを受信するための制御ベクトル入力と、 前記制御ベクトル入力に連結された入力と、暗号サービ
ス要求を受信するための入力とを有し、前記制御ベクト
ルが前記暗号サービス要求により要求された暗号機能を
許可しているかを検査し、許可している場合には許可信
号を出力する制御ベクトル検査手段とを有し、 前記制御ベクトルは、Nビット長の左部分CLとNビット
長の右部分CRを有し、 前記暗号キーは、Nビット長の左部分KKLとNビット長
の右部分KKRを有し、 さらに、 CLとKKLを受信し、第1のキー値である、排他的論理和
演算の結果KKL+CLを生成する第1論理手段と、 CRとKKRを受信し、第2のキー値である、排他的論理和
演算の結果KKR+CRを生成する第2論理手段と、 暗号テキストを受信するための入力と、前記第1のキー
値を受信するためのキー入力と、出力とを有する第1非
暗号化手段と、 前記第1非暗号手段の出力に接続された入力と、前記第
2のキー値を受信するためのキー入力と、出力を有する
暗号化手段と、 前記暗号化手段の出力に接続された入力と、前記第1の
キー値を受信するためのキー入力と、出力とを有し、前
記第1非暗号化手段に入力された前記暗号テキストから
平文テキストを生成する第2非暗号化手段と を有する暗号装置。
14. A data processing system for outputting a cryptographic service request for an operation related to a cryptographic key, wherein the cryptographic key is associated with a control vector defining a function permitted to be performed by its creator, and is 2N bits. A cryptographic device enabling the use of a long control vector, the control vector input for receiving a 2N bit long control vector associated with a 2N bit long cryptographic key, concatenated to the control vector input. Has an input and an input for receiving a cryptographic service request, checks whether the control vector permits the cryptographic function requested by the cryptographic service request, and if so, sends a permission signal. And a control vector checking means for outputting the control vector, the control vector having a left portion CL having an N-bit length and a right portion CR having an N-bit length, Has a left portion KKL having an N-bit length and a right portion KKR having an N-bit length, and further receives CL and KKL to generate a first key value, which is an exclusive OR operation result KKL + CL. One logic means, a second logic means for receiving CR and KKR and generating a second key value, KKR + CR as a result of an exclusive OR operation, an input for receiving ciphertext, and the first A first non-encrypting means having a key input for receiving the key value and an output; an input connected to the output of the first non-encrypting means; and a second key value for receiving the second key value. An encryption means having a key input and an output; an input connected to the output of the encryption means; a key input for receiving the first key value; and an output, the first non-input A second non-encryption means for generating a plaintext from the ciphertext input to the encryption means. That the cryptographic device.
【請求項15】暗号キーに関する操作に対する暗号サー
ビス要求を出力するデータ処理システムにおいて、 前記暗号キーは、その創作者により行うことが許可され
た機能を規定する制御ベクトルに関連しており、 所与の長さを有する制御ベクトルの使用を可能にする暗
号方法であって、 Nビット暗号キーに関連する、所与の長さの制御ベクト
ルを受信するステップと、 前記制御ベクトルが暗号サービス要求により要求された
暗号機能を許可しているかを検査する制御ベクトル検査
ステップと、 前記制御ベクトルをNビット・ハッシュ値にマッピング
するハッシング・ステップと、 前記Nビット・暗号キーと前記Nビット・ハッシュ値の
論理演算の結果である、計算されたキー値を形成するス
テップと、 前記計算されたキー値を用いて入力情報を出力情報に暗
号的に変換するステップと、 前記制御ベクトル検査ステップで、要求された前記暗号
機能が前記制御ベクトルにより許可されないと判断され
た場合、前記出力情報の形成を選択的に禁止するステッ
プと を含む暗号方法。
15. A data processing system for outputting a cryptographic service request for an operation related to a cryptographic key, said cryptographic key being associated with a control vector defining a function permitted to be performed by its creator, A cryptographic method allowing the use of a control vector having a length of: receiving a control vector of a given length associated with an N-bit cryptographic key, said control vector being requested by a cryptographic service request. A control vector checking step for checking whether the specified cryptographic function is permitted, a hashing step for mapping the control vector into an N-bit hash value, and a logic for the N-bit cryptographic key and the N-bit hash value. Forming a calculated key value, which is the result of the operation, and inputting using the calculated key value Cryptographically converting the information into output information; and in the control vector checking step, selectively forming the output information is prohibited if it is determined that the requested cryptographic function is not permitted by the control vector. A cryptographic method including steps and.
【請求項16】パスワードを受信するステップと、 前記マッピング・ステップに先立ち、前記制御ベクトル
の空フィールドに前記パスワードを挿入するステップと をさらに含む請求項15記載の暗号方法。
16. The cryptographic method of claim 15, further comprising the steps of receiving a password and inserting the password into an empty field of the control vector prior to the mapping step.
【請求項17】時間値が前記制御ベクトルにより指定さ
れた時間間隔内であるかどうかを検査するステップと、 時間値が前記制御ベクトルにより指定された時間間隔内
にない場合、前記出力情報の形成を禁止するステップと をさらに含む請求項15記載の暗号方法。
17. A step of checking whether a time value is within a time interval specified by the control vector, and forming the output information if the time value is not within a time interval specified by the control vector. 16. The encryption method according to claim 15, further comprising the step of:
JP20711489A 1988-08-29 1989-08-11 Cryptographic apparatus and method Expired - Lifetime JPH0816825B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US23801088A 1988-08-29 1988-08-29
US238010 1988-08-29

Publications (2)

Publication Number Publication Date
JPH02106787A JPH02106787A (en) 1990-04-18
JPH0816825B2 true JPH0816825B2 (en) 1996-02-21

Family

ID=22896115

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20711489A Expired - Lifetime JPH0816825B2 (en) 1988-08-29 1989-08-11 Cryptographic apparatus and method

Country Status (2)

Country Link
JP (1) JPH0816825B2 (en)
CA (1) CA1319198C (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2689998B2 (en) * 1990-08-22 1997-12-10 インターナショナル・ビジネス・マシーンズ・コーポレイション Device for cryptographic operation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
電子情報通信学会技術研究報告IT86−53"IDに基づく鍵配送方式"岡本栄司

Also Published As

Publication number Publication date
JPH02106787A (en) 1990-04-18
CA1319198C (en) 1993-06-15

Similar Documents

Publication Publication Date Title
US4924515A (en) Secure management of keys using extended control vectors
US4941176A (en) Secure management of keys using control vectors
EP0529261B1 (en) A hybrid public key algorithm/data encryption algorithm key distribution method based on control vectors
US4918728A (en) Data cryptography operations using control vectors
JP2539164B2 (en) Commercial data masking
US5200999A (en) Public key cryptosystem key management based on control vectors
US5815573A (en) Cryptographic key recovery system
US6907127B1 (en) Hierarchical key management encoding and decoding
US4203166A (en) Cryptographic file security for multiple domain networks
US6333983B1 (en) Method and apparatus for performing strong encryption or decryption data using special encryption functions
EP0354774B1 (en) Data cryptography using control vectors
JP2746352B2 (en) Secure security communication system and method for communication by a remotely located computer
CA2071413C (en) Method to establish and enforce a network cryptographic security policy in a public key cryptosystem
AU624507B2 (en) A method for utilizing an encrypted key as a key indentifier in a data packet in a computer network
US6049612A (en) File encryption method and system
JP2575558B2 (en) Public key use control method and apparatus
US6535607B1 (en) Method and apparatus for providing interoperability between key recovery and non-key recovery systems
JPS6021501B2 (en) Operation key verification method in data communication network
JPS6127751B2 (en)
JPH11514188A (en) Encryption key recovery system
CN101556638A (en) Data processing apparatus
EP0354770B1 (en) Secure management of keys using extended control vectors
CN116781265A (en) Data encryption method and device
JPH0816825B2 (en) Cryptographic apparatus and method
EP0356065B1 (en) Secure management of keys using control vectors