JPH02106787A - Cryptographic device - Google Patents

Cryptographic device

Info

Publication number
JPH02106787A
JPH02106787A JP20711489A JP20711489A JPH02106787A JP H02106787 A JPH02106787 A JP H02106787A JP 20711489 A JP20711489 A JP 20711489A JP 20711489 A JP20711489 A JP 20711489A JP H02106787 A JPH02106787 A JP H02106787A
Authority
JP
Japan
Prior art keywords
key
control vector
cryptographic
bit
bits
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.)
Granted
Application number
JP20711489A
Other languages
Japanese (ja)
Other versions
JPH0816825B2 (en
Inventor
Stephen M Matyas
ステイブン・エム・マチイース
Dennis G Abraham
デニス・ジイー・アブラハム
William C Arnold
ウイリアム・シイー・アーノルド
Donald B Johnson
ドナルド・ビイー・ジヨンソン
Ramesh K Karne
ラメシユ・ケイ・カーン
An V Le
アン・ヴイ・リ
Rostislaw Prymak
ロステイスロー・プライマツク
Steve R White
ステイブ・アール・ホワイト
D Wilkins John
ジヨン・デイー・ウイルキンズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of 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

Abstract

PURPOSE: To improve the management of a cipher key by forming a cipher by means of connecting it to a key in accordance with a ciphering procedure and preventing the key from being ciphered only when a control vector is precisely applied to cipher hardware. CONSTITUTION: A 64 bits key K is ciphered with the key ciphering key KK (constituted of 64 bits on the left half named as KKL and 64 bits on the right half named as KKR) of 128 bits and the 64 bits control vector C of a register 40'. In such a case, a register 46L exclusively OR-operates CL of a register 40L and KKL of a register 42L and sets KKL+CL. A register 46 exclusively OR-operates CR of a register 40R and KKR of a register 42R and sets KKL +CR. Namely, a method for using C where the left half bit part and the right half bit part are equal and the 64 bits control vector is obtained by reducing the method for using a 128 bits control vector. Thus, the control vector is doubled and the newly improved cipher can be obtained. Then, the improved method of cipher key management can be obtained.

Description

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

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

(a)B、ブラッチェル他による1987年5月29日
付米国特許出願第55502号「制御値確立のための生
成装置による暗号キーの制御」。
(a) B. Brachell et al., U.S. Patent Application No. 55502, May 29, 1987, "Control of Cryptographic Keys by a Generator for Establishing Control Values."

(b)S、マチアス他による1988年8月11日付米
国特許出願第231114号「制御ベクトルによるキー
の機密保護管理」。
(b) U.S. Pat.

(c )S、マチアス他による1988年8月17日付
米国特許出願第233515号「制御ベクトルによるデ
ータの暗号処理」。
(c) U.S. Patent Application No. 233,515, filed Aug. 17, 1988, by S. Matthias et al., entitled "Cryptographic Processing of Data with Control Vectors."

(cl)S、マチアス他による1988年8月26日付
米国特許出願第237938号「制御ベクトルによるP
IN処理」。
(cl) U.S. Patent Application No. 237,938, Aug. 26, 1988 by S. Matthias et al.
IN processing”.

(e)B、ブラッチェル他による1987年8月29日
付米国特許出願第90633号「公開一方向暗号化関数
に基づく修正探索コードによるデータ確認」。
(e) "Data Validation with a Modified Search Code Based on a Public One-Way Encryption Function," U.S. Patent Application No. 90633, August 29, 1987, by B. Brachell et al.

制御ベクトルの概念: 制御ベクトルとは、暗53″キーの使用属性を定義し、
あるネットワーク装置から別の装置への暗号キー伝達を
制御する、簡単なデータ構造である。
Concept of control vector: Control vector defines the usage attributes of the dark 53'' key,
A simple data structure that controls the transmission of cryptographic keys from one network device to another.

制御ベクトルは暗号化手順によってキーに結合し暗号を
形成するが、この手順によると、制御ベクトルが暗号ハ
ードウェアに正しく適用された場合のみ、キーが非暗号
化(decrypt)される。
The control vector is combined with the key to form a cipher by a cryptographic procedure that 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ビツトと、K K Rと名付ける
右半分64ビツトより成る)及びレジスタ40“の64
ビツト制御ベクトルCにより、64ビツト・キーKを暗
号化する手順は、前述の「制御ベクトルによるキーの機
密保護管理」(マチアス他)に記載される多重暗号化の
応用であるが、これをe KKL十C(d KKR+C
(e KKL+C(K)))と書き表わす。” 十”は
排他的論理和を意味する。暗号化は以下の手順で行われ
る。
FIG. 7 is a system for cryptographically combining a 64-bit control vector to a 128-bit cryptographic key, as described in the aforementioned related patent applications (Brachell et al. and Mathias et al.). For simplicity, the procedure for encrypting plaintext X using key K is expressed as eK(X)=Y. (Y indicates the resulting ciphertext.) Conversely, the procedure for decoding ciphertext Y with key K to reproduce plaintext X is written as dK(Y)=X. 128-bit key encryption key KK (KKl-
64 bits in the left half, named KKR, and 64 bits in the right half, named KKR) and 64 bits in register 40".
The procedure for encrypting the 64-bit key K using the bit control vector C is an application of the multiplex encryption described in the aforementioned ``Key Security Management Using Control Vectors'' (Matthias et al.). KKL10C (d KKR+C
It is written as (e KKL+C(K))). "Ten" means exclusive OR. Encryption is performed in the following steps.

まず排他的論理和装置46において、64ビット制御ベ
クトルCとレジスタ42のK K L、、KKRとの排
他的論理和をそれぞれ求める。代わって暗号化装置41
において、レジスタ44のKをKK+−十Cにより暗号
化し、その結果を非暗号化装置43においてK K R
十Cにより非暗号化(復号化ともいう。以下、同じ)し
、その結果を暗号化装置45においてK K L 十C
により暗号化する。eK K L + C(d K K
 R+ C(e K K L + C(K)))と書く
のは煩雑なので、排他的論理和操作、すなわちKK(よ
り正確にはK K +−とKKa各々)との排他的論理
和を求める操作をK K 。
First, in the exclusive OR device 46, the exclusive OR of the 64-bit control vector C and KKL, KKR of the register 42 is determined. Encryption device 41 instead
, the K in the register 44 is encrypted by KK+-10C, and the result is sent to the decryption device 43 as K K R
It is decrypted (also referred to as decryption, hereinafter the same) by 10C, and the result is sent to K K L 10C in the encryption device 45.
Encrypted by eK K L + C (d K K
Since it is complicated to write R + C (e K K L + C (K))), we calculate the exclusive OR operation, that is, the exclusive OR with KK (more precisely, each of K K +- and KKa). KK the operation.

Cと書き表わす。*KKと書くと、キーか64ビツトで
なく128ビットであることを示す。つまり、KKはア
ステリスクが付くと128ビツト・キーアステリスクな
しだと64ビツト・キーである。
It is written as C. * KK indicates that the key is 128 bits, not 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)は、CとKKの左半分及び右半
分との排他的論理和結果の128ビツト・キーKKによ
りKを暗号化することを意味する。
e+:+KK, c(K) means that K is encrypted using the 128-bit key KK that 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とK K L、KKRの
排他的論理和をそれぞれ求める。
Figure 8 shows the encrypted value K (Y=e*KK,
This is a system that decrypts C(K)) using a key KK and a control vector C. This is done in the following steps. First, as described above, the exclusive OR of C, KKL, and KKR is calculated.

代わって非暗号化装置47において、暗号化値KをK 
K 1.、 十Cにより非暗号化し、その結果を暗号化
装置48においてK K It 十Cにより暗号化し、
その結果を非暗号化装置49においてK K L 十C
により非暗号化する。第8図によれば、KK、C。
Instead, in the non-encryption device 47, the encrypted value K is
K1. , decrypt it with 10C, and encrypt the result with K K It 10C in the encryption device 48,
The result is sent to the non-encrypting device 49.
decrypted by According to FIG. 8, KK, C.

及びe K K L + C(d K K R十C(e
 K K L + C(I< ) ) )が正しく指定
された場合のみKを再生−〇 できるのであり、Cのたとえ1ビツトでも聞達って指定
すれば、不定不測の値が現れることが判断できよう。
and e K K L + C(d K K R0C(e
K can be reproduced only if K K L + C (I< Good morning.

(より正確に言うと、もしもCと等しくない任意長制御
ベクトルC“及びKKにより暗号文eKKL十C(dK
KR十C(eKKL+C(K))))が非暗号化された
としても、K4こ等しい平文が再生される可能性は2ン
:ζ>;C64分の1であり、JJfS号処理には影響
ない。侵入者は、直接検索という11′L純方法を用い
た暗号分析を行なってKの値を偶然発見したり、求める
平文が現れるまであらゆるキーを使って暗号文を非暗号
化するかもしれないが、いずれの場合もかなりの回数の
暗号化/非昭3゛化手順が必要となる。) ANsr  X3.92(198i年)に述べるように
、データ暗号化アルコ1リズム(+) E A )は、
第7図及び第8図に記述する暗号化/非暗号化方式を使
用して、制御ベクトルで操作が可能な暗号化アルプリズ
ムの一例である。制御ベクトル概念は、キーの長さと等
しい制御ベクトルを指定することにより同様のいずれの
暗号文にも、また多重暗号技術を用いれば多重暗号文に
も適用できることが判断されよう。
(To be more precise, if the arbitrary length control vector C" and KK are not equal to C, then the ciphertext eKKL0C(dK
Even if KR1C(eKKL+C(K)))) is decrypted, the possibility that a plaintext equal to K4 will be reproduced is 1/2:ζ>;C64, which will affect the processing of the JJfS issue. do not have. An intruder may accidentally discover the value of K by performing cipher analysis using the 11'L pure method of direct search, or may decrypt the ciphertext using any number of keys until the desired plaintext is found. In either case, a considerable number of encryption/decryption procedures are required. ) As stated in ANsr X3.92 (198i), the data encryption algorithm (+) E A ) is
8 is an example of an encrypted alprism that can be manipulated by control vectors using the encryption/decryption scheme described in FIGS. 7 and 8. FIG. It will be appreciated that the control vector concept can be applied to any similar ciphertext by specifying a control vector equal to the length of the key, and to multiple ciphertexts using multiple cipher techniques.

暗号装置のネットワーク構成: 第3図に、暗号装置のネットワーク接続(ホスト、制御
装置、ワークステーション等)を示す。
Network configuration of cryptographic device: Figure 3 shows the network connections (host, control device, workstation, etc.) of the cryptographic device.

これは、データ処理装置2の第−Uβ号装置1−00及
び、暗号配布チャネル1000を通じて接続された他の
暗号装置200.300・・・より構成され、暗号のや
りとりが可能である。すなわち送信装置が暗号化、受信
装置が非暗号化を行うことにより、各装置は秘密通信が
行える。各装置は、送信装置で準備されたメツセージに
メツセージ確認コードを付加することによってデータ伝
送を確認し、受信装置でメツセージ及びメ・υセージ確
認コードを確認する、ぞして各装置は、暗号装置内で安
全にキーの生成・暗号化を行い、暗号化されたキーは受
信装置へ伝送される。受信装置内にはキー・データ・セ
ット(後にデータを暗号化し確認する際、あるいは他の
キー管理操作のため使用する)があり、キーはその中に
適切な形で保管される。このようなキー管理の手順、プ
ロトコル及び方法は、マチアス他の関連特許出願(b)
、(C)及び(d)に大部分記載されている。
This consists of the -Uβ device 1-00 of the data processing device 2 and other cryptographic devices 200, 300, etc. connected through the cryptographic distribution channel 1000, and is capable of exchanging cryptographic information. That is, the transmitting device performs encryption and the receiving device decrypts, so that each device can perform secret communication. Each device verifies the data transmission by adding a message confirmation code to the message prepared by the transmitting device, and verifies the message and the message confirmation code by the receiving device. A key is securely generated and encrypted within the device, and the encrypted key is transmitted to the receiving device. Within the receiving device is a key data set (for later use in encrypting and verifying data or for other key management operations) in which the keys are stored in an appropriate form. Such key management procedures, protocols and methods are described in related patent application (b) of Matthias et al.
, (C) and (d).

第4図は、第3図の暗号装置100の拡大図である。各
暗号装置は、1−セットの暗号命令52を作成する暗号
機構(CF)4、キー記憶装置22、暗号機構アクセス
・プログラム(CFAP)54、及びユーザー適用業務
プログラム55かへ構成される。CFは128ビツト・
マスター・キーKMにあたるレジスター8を含み、KM
は左半分64ビツト(KML)と右半分64ビツト(K
MR)とから成る。(CFで実行される暗号アルコ゛リ
ズムはデータ暗号化アルゴリズム(DEA)であるとす
る。)CF外に保管されたすべてのキーは、第7図に述
べたようにマスター・キー及び制御ベクトルの元で暗号
化され、キー記憶装置22に保管される。マスター・キ
ーにより暗号化されたキー記憶装置22内のキーは、C
Fで処理可能な形番こなっているため、処理可能キーと
呼ばれる。他のキー(キー暗号化キーすなわちK E 
K )により暗号化されたキーは、他装置へ配布される
形、つまり他の装置への送信あるいは他の装置からの受
信を行うのに好都合な形で保管されている。(注:キー
は、生成・暗号化されて時には受信形になり、生成した
同一の装置で再受信することが可能である。)典型的に
は、1組の各装置が次の2つのKEKを共有する。  
a)キーを暗号化して、第一の装置から第二の装置へ伝
送する、第−KEK(KEKIとする)。  b)キー
を暗号化して、第二の装置から第一の装置へ伝送する、
第二KEK(KEK2とする)。第一の装置においては
、K E K 1は(第二の装置への送信のためキーを
暗号化するゆえに)制御ベクトルを通じてKEK送信キ
ーとして示されており、一方KEK2は(第の装置から
の受信のためキーを非11i号イヒするゆえムこ)制御
ベクトルを通じてKIEK受信キーとして示されている
。第二の装置においては、KEKlとKEK2の役割は
逆、すなわちKEKIがKIE K受信キーでK IE
 K 2がKIEK送信キーである。
FIG. 4 is an enlarged view of the cryptographic device 100 of FIG. 3. Each cryptographic device is configured into a cryptographic facility (CF) 4 that creates a set of cryptographic instructions 52, a key storage 22, a cryptographic facility access program (CFAP) 54, and a user application program 55. CF is 128 bits.
Including register 8 which is the master key KM, KM
The left half is 64 bits (KML) and the right half is 64 bits (KML).
MR). (Assume that the cryptographic algorithm executed in the CF is the Data Encryption Algorithm (DEA).) All keys stored outside the CF are stored under the master key and control vector as described in Figure 7. It is encrypted and stored in the key storage device 22. The key in key storage 22 encrypted by the master key is C
Since the model number can be processed by F, it is called a processable key. Other keys (key-encrypting keys, i.e. K E
The key encrypted by K) is stored in a form convenient for distribution to other devices, ie, for transmission to or reception from other devices. (Note: Keys are generated, encrypted, and sometimes in a received form, allowing them to be re-received by the same device that generated them.) Typically, each device in a set has two KEKs: Share.
a) A -th KEK (referred to as KEKI) that encrypts and transmits the key from the first device to the second device. b) encrypting and transmitting the key from the second device to the first device;
Second KEK (referred to as KEK2). In the first device, K E K 1 is indicated through the control vector as the KEK transmit key (because it encrypts the key for transmission to the second device), while KEK2 is the KEK transmit key (because it encrypts the key for transmission to the second device). The key for reception is designated as the KIEK reception key through the control vector. In the second device, the roles of KEKl and KEK2 are reversed, i.e. KEKI is the KIE K receiving key and the KIE
K2 is the KIEK transmission key.

暗号機構4は、64ビツトの乱数を生成する乱数生成器
26も含む。乱数生成器の出力結果は、CFによっての
み読、取り可能である。暗号機構はまた、機密保護前面
パネル・インタフェース58及び携帯キー入力装置60
への接続用ポート59を含む。前面パネルにはキー活動
化物理スイッチ61があり、キー入力装置60を通じて
マスター・キーを含めたキーの入力を可能にしている。
Cryptographic mechanism 4 also includes a random number generator 26 that generates 64-bit random numbers. The output of the random number generator can only be read and interpreted by the CF. The cryptographic mechanism also includes a secure front panel interface 58 and a portable key entry device 60.
It includes a port 59 for connection to. There is a key activation physical switch 61 on the front panel that allows key entry, including the master key, through the key input device 60.

(暗号装置100に相当する暗号構成要素については、
前述のマチアス他の関連特許出願(b)、(c)及び(
d)に詳しい。) 再び第4図に戻る。暗号命令セット52は、キー管理や
データ暗号化・確認機能を支援したり、個人識別番号(
PIN)確認に基づく財務取引処理を行なったりする、
数個の暗月命令から成る。マチアス他の関連特許出願(
b)、(c)及び(d)には暗号処理適用業務の3つの
例が詳しく述べられている。典型的には、118号文の
提示要求により、ユーザー適用業務プログラム55が起
動する。要求を満たすのに必要な手順を追ってみる。例
えば62において、マクロ呼出しの形でCFAPに対し
て要求が出され、1以トのパラメータ(暗号化されてい
ないデータ、暗号化されたデータ、キー及び暗号文、6
5においてキー記憶装置22内暗号イヒキーへのアクセ
スに使うキー・ラベル等)が指定され、よってCF A
 I)54は要求操作実行可能であるとする。または6
4において1以上の暗号命令を実行すべく、必要に応じ
て(新規の暗号キー及び暗Z文を生成するため、あるい
はデータやキーを暗号化、非暗号化または再暗号化して
、適切な暗号化または非暗号化形に出力するためなど)
 CIi’ A I)がC124を[坪出すこともある
。結果は、654こおいてC)7Δ[)が、新規作成さ
れた暗号化キーをキー記憶装置22に保管するか、ある
いは66において適用業務プログラムの要求に対し1以
上の値を返すか、あるいはその両方が起こり得る。64
でのCFからCF A I)への状況コード、及び66
でのCF A Pから適用業務プログラムへの状況コー
ドは、正常または異常の状況(要求操作が実行されたか
否かを表わす)を示す。
(For cryptographic components corresponding to the cryptographic device 100,
Matthias et al.'s related patent applications (b), (c) and (
I am familiar with d). ) Return to Figure 4 again. The cryptographic instruction set 52 supports key management, data encryption/verification functions, and personal identification number (
Perform financial transaction processing based on PIN) confirmation,
Consists of several Dark Moon Commands. Related patent applications by Matthias et al.
In b), (c) and (d) three examples of cryptographic processing applications are detailed. Typically, the user application program 55 is activated in response to a request for presentation of document No. 118. Follow the steps necessary to meet the request. For example, at 62, a request is made to the CFAP in the form of a macro call that includes one or more parameters (unencrypted data, encrypted data, key and ciphertext,
5, the key, label, etc. used to access the encryption key in the key storage device 22 is specified, and therefore the CF A
I) 54 is assumed to be capable of executing the requested operation. or 6
4, to execute one or more cryptographic instructions (to generate new cryptographic keys and cryptograms, or to encrypt, unencrypt, or re-encrypt data and keys to create appropriate cryptographic instructions). (e.g., for output in encrypted or unencrypted form)
CIi' A I) may outweigh C124. The result is that C) 7Δ[) stores the newly created encryption key in key storage 22 at 654 or returns a value of 1 or more in response to a request from the application program at 66; Both can happen. 64
CF to CF A I) status code, and 66
The status code from the CF AP to the application program indicates normal or abnormal status (indicating whether the requested operation was performed or not).

制御ベクトルによる操作可能キー管理:キー属性は普通
、秘密でなく公開(つまりシステム・ユーザーが知った
り推測したりできる)なので、制御ベクトルは、公開す
なわち機密保護なしの値として定義される。一方、シス
テl\に定義された暗号キーは機密保護されなくてはな
らないので、制御ベクトルをキーに「リンク(連係)」
する際にキーが露見しないようにする必要がある。
Operational Key Management with Control Vectors: Since key attributes are typically public (ie, can be known or guessed by system users) rather than secret, control vectors are defined as public or unsecured values. On the other hand, the encryption key defined in the system must be protected, so it is necessary to "link" it using the control vector as the key.
It is necessary to make sure that the key is not exposed when doing so.

(注二本発明は機密パスワードを制御ベクトルに組み込
む技術にも関する。) 第5図は、制御ベクトルのキーへのリンクを図示したも
のである。この例では、キー生成命令KGLENを使用
しており、これは暗号機イj0こよりキーが生成される
ようにする。この手順を迫ってみる。
(Note 2: The present invention also relates to a technique for incorporating a confidential password into a control vector.) FIG. 5 illustrates the linking of a control vector to a key. In this example, a key generation command KGLEN is used, which causes a key to be generated from the cryptographic machine Ij0. Let's try this procedure.

手順71で、キー生成のため適用業務AがCII’ A
I〕を呼び出す。KGEN命令を実行する前に手順72
で、CFAPが生成されるキーの属性を指定する64ビ
ツトの制御ベクトルを生成する。制御ベクトルCは手順
73で、KGEN命令の一部としてCFに渡される。そ
れに対し手順75でcISが、(C17によってのみ読
取り可能な乱数の生成器を使って)64ビツトの乱数を
生成し、それが奇数パリティとなる。これは生成された
キーKを表わす。Kは、手順73で渡された制御ベクト
ルCの排他的論理和機構により暗号化され、マスター・
キーKMが、第7図で述べた暗号化規則によりアクセス
される。e*KM、c(K)と書き表わす暗号化キーは
、手順76でCF A P tこ返される。(注: e
 *KM、 (”: (K )とは、K M l−+C
,KMR十C・・・など種々のキーによる多重118号
化を簡潔に表現したものである。)代わって、場合によ
ってC1ガA r−)が暗号化キーe>:!KM、C(
K)及び手順77の制御ベクトルCを、手順78でキー
記憶装置22に保管するが(この場合は、手順79のキ
ー・ラベルが手順80で適用業務プログラムに返される
)、または値が手順8oで要求元適用業務プログラムに
返される。いずれの場合も本発明の、キー生成手順及び
暗号化により生成器キーに制御ベクトルを「リンク」す
る手順は、制御ベクトルの公開性および非機密性を確保
し、1/I しかも暗号機構外に生成済キーを明らかな形で露見させ
るものではないことが、判断されよう。
In step 71, application A uses CII' A to generate a key.
I]. Step 72 before executing the KGEN instruction
CFAP generates a 64-bit control vector that specifies the attributes of the key to be generated. Control vector C is passed to CF in step 73 as part of the KGEN instruction. In response, in step 75, the cIS generates a 64-bit random number (using a random number generator readable only by C17) that is of 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 sent to the master.
The key KM is accessed according to the encryption rules described in FIG. The encryption key, denoted e*KM,c(K), is returned in step 76. (Note: e
*KM, (”: (K) means KM l-+C
, KMR11C, etc., is a simple representation of multiplex 118 encoding using various keys. ) Instead, depending on the case, C1 ga A r-) is the encryption key e>:! KM,C(
K) and control vector C of step 77 are stored in key storage 22 in step 78 (in which case the key label of step 79 is returned to the application program in step 80), or the value is stored in step 8o. is returned to the requesting application program. In either case, the key generation procedure and cryptographically "linking" of the control vector to the generator key of the present invention ensures that the control vector is public and non-confidential, and is 1/I and outside the cryptographic mechanism. It will be determined that the generated key is not clearly exposed.

制御ベクトルは機密性のあるものではないが、それがリ
ンクされるキーの使用時にはいつでも、暗号機構への入
力データとして供給、指定、提供されなくてはならない
。制御ベクトル中のどのビットも、キーが生成され暗号
化されたときに指定されたものと同じでなくてはならな
い。Cを正しく指定しなかった場合、不定不測のキー値
が発生する。暗号化キー及び制御ベクトルが、CF A
 I)からCI?までの中で出された暗号命令のパラメ
ータとして扱われる大きな手順の中では、制御ベクトル
により以前に暗号化されたキーの再生(すなわちキーの
非暗号化)が必ずある。こうして暗号機構は、制御ベク
トルを検査して、キーが確実に要求元暗号命令の入力パ
ラメータとして使用されるようにする。この、制御ベク
トルの予備検査をCV後検査呼ぶ。暗号命令に、1以上
の暗号化キー及び制御ベクトルがパラメータとして提供
されると、C■検査は制御ベクトルの合致検査だけでな
く、必要に応じて1制御ベクトルの他制御に対する相!
i検査も行なう。暗号命令の処理に際し暗号機構が要求
する手順を第6図に示すが、基本的には各命令は次の3
つの機能から成る。  a)CV検査81、 b)キー
再生82、  C)要求命令の処理83゜最初の要求操
作はCV検査8]である。これは、制御ベクトルの合致
検査と、要求されたキー・パラメータの使用が要求命令
に合致するかどうかの判別から成る。もしCV後検査通
過できないと、命令実行は中断される。どんな場合でも
、状態を知らせる状況コードがCF A Pに返される
。CV後検査合格すれば処理は続行する。
Although the control vector is not sensitive, it must be supplied, designated, 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 specified when the key was generated and encrypted. If C is not specified correctly, an unspecified and unpredictable key value will occur. The encryption key and control vector are CF A
I) to CI? Among the larger steps that are treated as parameters of the cryptographic commands issued in the above, there is always the regeneration of a previously encrypted key (i.e., decryption of the key) by the control vector. 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 test of the control vector is called a post-CV test. When one or more encryption keys and control vectors are provided as parameters in the cryptographic instruction, the C■ check not only checks the consistency of the control vectors, but also checks the correlation of one control vector with respect to other controls as necessary.
An i-test will also be conducted. Figure 6 shows the steps required by the cryptographic mechanism when processing a cryptographic command, but each command basically consists of the following three steps.
It consists of two functions. a) CV test 81, b) key regeneration 82, C) request command processing 83 [first requested operation is CV test 8]. This consists of matching control vectors and determining whether the use of the requested key parameters matches the requested instructions. If the post-CV check cannot be passed, instruction execution is aborted. In all cases, a status code is returned to the CFAP to inform it of the condition. If the post-CV inspection is passed, processing continues.

次の要求操作はキー再生82、すなわち暗号化されたキ
ーの非暗号化である。制御ベクトル及びキーを暗号化結
合する方法によれば、少しでも不正(制御ベクトルのビ
ットを変更してキーに正しくない属性をり・えること)
かあれば、不定不測のキー値が発生する。要するに、目
的の暗号キーは暗号命令によっては再生されない。最後
の要求操作は、要求暗号命令の処理83である。制御ベ
クトル及びキーが正確に指定されれば、命令は正しく処
理される。しかしもし不正が起これば、操作結果は無効
な値となる。CV@査、キー再生、命令実行の手J@に
ついては、前述のマチアス他の関連特許出願(b)にさ
らに詳述されている。
The next required operation is key regeneration 82, ie, decryption of the encrypted key. According to the method of cryptographically combining the control vector and the key, even the slightest bit of fraud (changing bits of the control vector and changing incorrect attributes to the key) can be avoided.
If there is, an indeterminate key value will occur. In short, the target cryptographic key is not recovered by the cryptographic instructions. The final request operation is processing 83 of the request cryptographic command. If the control vector and key are specified correctly, the instruction will be processed correctly. However, if fraud occurs, the operation result will be an invalid value. CV@ inspection, key regeneration, and instruction execution methods are further described in the related patent application (b) of Matthias et al., cited above.

制御ベクトルから提供されたキー管理の度合は、制御ベ
クトル中のビット数に大いに関係する。特に10から5
0ビツトの短い制御ベクトルの場合、使用が限定されて
おり、キー管理のほんのわすがな部分しか支援できない
。前述のマチアス他の関連特許出願(b)、(c)及び
(d)には、6/Iビツト制御ベクトルの使用について
述べられているが、それによるとある程度複雑な暗号シ
ステムでは、キー使用及び配布を管理するのに、他の制
御ベクトルタイプに比して64ビツト制御ベクトルが有
用である。このように64ビツト制御ベクトルは、多く
の暗号システム実行を満たす。しかし、もつと高度なキ
ー管理制御のためには、64ビツト以上の制御ベクトル
が必要である。
The degree of key management provided by a control vector is highly related to the number of bits in the control vector. Especially 10 to 5
A short control vector of 0 bits has limited use and can only support a small portion of key management. Related Patent Applications (b), (c), and (d) of Matthias et al., cited above, discuss the use of a 6/I bit control vector, which suggests that in moderately complex cryptographic systems, key usage and 64-bit control vectors are more useful than other control vector types for managing distribution. A 64-bit control vector thus satisfies many cryptosystem implementations. However, for highly sophisticated 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 for cryptographic key management.

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

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

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

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

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

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

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

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

C0課題を解決するための手段 本発明はまず、64ビツト制御ベクトルを好都合に12
8ビツトに拡張する方法に関する。この方法は、Cの左
半分64ビツトとKKの左半分64ビツトとの排他的論
理和、及びCの右半分64ビツトとKKの右半分64ビ
ツトとの排他的論理和から成る。そもそも128ビット
制御ベクトルは、概念的には6/Iビット制御ベクトル
と等しい。
Means for Solving the C0 Problem The present invention first advantageously converts a 64-bit control vector into 12 bits.
This article relates to a method of expanding to 8 bits. This method consists of an exclusive OR of the left half of C, 64 bits, and the left half of KK, 64 bits, and an exclusive OR of the right half of C, 64 bits, and the right half of KK, 64 bits. In the first place, a 128-bit control vector is conceptually equivalent to a 6/I-bit control vector.

しかし、128ビット制御ベクトルの追加の6/′Iピ
ツ)・により、キー管理制御、特に余分な暗号化/非暗
は化を行なうことなく制御ベクトルの長さを倍にするこ
とができる。実際、128ビツト制御ベクトルはコンピ
ュータの経費を増大することなく人手できる。
However, the additional 6/'I bits of the 128-bit control vector allows the length of the control vector to be doubled without any key management controls, especially extra encryption/decryption. In fact, 128-bit control vectors can be created manually without increasing computer expense.

本発明は次に、64ビツト制御ベクトルを任意長制御ベ
クトルに拡張する方法に関する。これにはしかし、制御
ベクトルの各64ビツト部分について2同から4回の余
分な暗号化操作が必要となる。このため、余分な経費が
制御ベクトルの長さに比例して増える。基本的には、任
意長制御ベクトルはまずハツシュ関数を用いて操作され
る。これは、多数のビットNxを持つ制御ベクトルCを
、より少ないビットNを持つハツシュ値C’(NxはN
よりも大きい。本発明の例ではN = 1.28 )に
マツプするものである。特に有用なハツシュ[列数は、
制御ベクトルの128ビツト・ハツシュ−方向関数を算
出する、修正探索コード(MDC)アルゴリズムのよう
な非機密性の一方向関数である。MDCについては前述
のブラッチェルの[ダJ辻特許出願(e)に述べられて
いる。この128ビツトの結果は、128ビツト制御ベ
クトルがKKと結合するのと全く同じ方法で、KKと結
合して2つのキーKKI−とKKFtを形成する。より
正確に言うと、Mが制御ベクトル上で算出された128
ビツトMDCを表わすとすれば、Mの左半分(34ビツ
トはKKの左半分と排他的論理和され、Mの右半分64
ビツトはKKの右半分と排他的論理和される。なお、任
意長制御ベクトルは概念的には128ビツト制御ベクト
ルと等しい。
The present invention is then directed to a method for 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 portion of the control vector. Therefore, the extra cost increases in proportion to the length of the control vector. Basically, an arbitrary length control vector is first manipulated using a hash function. This converts the control vector C with a large number of bits Nx to the hash value C' with fewer bits N (Nx is N
larger than In the example of the present invention, N = 1.28) is mapped. A particularly useful hash [the number of columns is
A non-secure one-way function, such as a modified search code (MDC) algorithm, that computes a 128-bit hash-direction function of the control vector. MDC is described in the aforementioned Brachell [da J Tsuji patent application (e). This 128-bit result is combined with KK to form two keys, KKI- and KKFt, in exactly the same way that a 128-bit control vector is combined with KK. More precisely, M is calculated on the control vector 128
If we represent a bit MDC, then the left half of M (34 bits is exclusive-ORed with the left half of KK, and the right half of M is 64 bits
The bit is exclusive-ORed with the right half of KK. Note that the arbitrary length control vector is conceptually equivalent to a 128-bit control vector.

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

128ビット制御ベクトルの検査は、64ビツト制御ベ
クトルのそれと同じである。ただし、後者が多くとも6
4ビツトだったのに対し、あらゆる128ビツトの検査
が含まれる。任意長制御ベクトルの検査も同様である。
The testing of 128-bit control vectors is the same as that of 64-bit control vectors. However, the latter is at most 6
It includes all 128-bit tests, compared to 4-bits. The same applies to checking arbitrary length control vectors.

つまり非常に長い制御ベクトルの存在が考えられ、より
多くの制御ビット及びフィールドの検査が必要となる点
を除けば、検査はつねに制御ベクトルに基づいて行なわ
れる。
That is, testing is always based on control vectors, except that very long control vectors may exist and more control bits and fields need to be tested.

制御ベクトル検査は、128ビツト・ハツシュ済制御ベ
クトルの一方向1′5!:l数には行なわれない。この
ハツシュ値はC[?内部でのみ算出され、キー再生処理
の一部として暗5化のためCF外に現れることばない。
The control vector check is performed on a 128-bit hashed control vector in one direction 1'5! : Not done for l numbers. This hash value is C[? It is only calculated internally and does not appear outside the CF due to darkening as part of the key regeneration process.

(制御ベクトル及びハツシュ間数はふつう入手可能であ
ってたとえハツシュ値が外部に漏れたとしても、機密が
失われることはない。)任意長C■は128ビツトC■
と同様、キーの使用や制御パラメータを定義または拡張
するための余分なスペースを提供する。タグ位置付けは
それ自体任意であるため、任意長C■は特にこれを支援
しやすい。より特定すると本発明によれば、あるキーが
使用される日付と時間のリストを、任意長C■が支援す
る方法が提供される。また本発明によれば、機密保護パ
スワードを制御ベクトルの中に組み込むことにより、正
しいパスワードが入力されたとき以外はキーが使用され
ないようにする方法が提供される。
(The control vector and the hash interval number are usually available, so even if the hash value is leaked to the outside, confidentiality will not be lost.) The arbitrary length C is 128 bits C
as well as provide extra space to define or extend key usage and control parameters. Since tag positioning is itself arbitrary, arbitrary length C is particularly easy to support this. More particularly, according to the present invention, a method is provided in which an arbitrary length C.sub.2 supports a list of dates and times in which a certain key is used. The present invention also provides a method of incorporating a security password into a control vector to ensure that the key is not used except when the correct password is entered.

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

第1図と第7図の相違点は次の通りである。第1図のシ
ステムでは、46r、でレジスタ40I、のCI−とレ
ジスタ/l 21−1のK K I−が排他的論理和さ
れてK K L、 十C1,、となり、4.6 Lでレ
ジスタ40RのCLとレジスタ4.2 RのKKRが排
他的論理和されてK K R十CRとなる。第7図では
、CがK K Lおよびに−K Rと排他的論理和され
てK K I−十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, at 46r, CI- of register 40I and K K I- of register /l 21-1 are exclusive-ORed to K K L, 0 C1, and 4.6 L. CL of register 40R and KKR of register 4.2R are exclusive ORed to become K K R + CR. In FIG. 7, C is exclusive-ORed with KKL and -KR to result in KKI-C and KKR+C. That is, in Figure 7, the same 64-bit control vector was exclusive-ORed with the bits in both the left and right halves of KK, whereas in Figure 1, separate 64-bit control vectors were XORed with the bits in both the left and right halves of KK. Exclusively ORed. Otherwise, FIG. 1 and FIG. 7 are identical.

簡便のため、第7図にて64ビツト制御ベクトルとKK
によりKを暗号化する場合を、e *K K 。
For simplicity, the 64-bit control vector and KK are shown in Figure 7.
If K is encrypted by e *K K .

C64,(K )と書き表わし、第1図にて128ビツ
ト制御ベクトルとKKによりKを暗号化する場合を、e
 *K K 、  C128(K )と書き表わす。第
7図の出力結果Yは、Y=e*KK、C64(K)とな
る。同様にして、第1図の出力結果Yは、Ye *K 
K 、  C1−28(K )となる。
C64,(K), and in Fig. 1, the case where K is encrypted using a 128-bit control vector and KK is expressed as e.
*K K , written as C128 (K ). The output result Y in FIG. 7 is Y=e*KK, C64(K). Similarly, the output result Y in FIG. 1 is Ye *K
K, C1-28(K).

第2図のシステムと第8図の相違点は次の通りである。The differences between the system of FIG. 2 and FIG. 8 are as follows.

第2図のシステムでは、レジスタ46I。In the system of FIG. 2, register 46I.

でレジスタ4− OLのCI−とレジスタ42LのKK
I−が排他的論理和されてK K L 十CLとなり、
レジスタ4.6 Rでレジスタ40R,のCI’tとレ
ジスタ42RのKKKが排他的論理和されてK K R
十CRとなる。第8図では、CがK K i−およびK
KRと排他的論理和されてK K L 十CおよびKK
rt+Cとなった。つまり第2図と第8図の相違は、別
々の64ビツト制御ベクトルがKKの各ビット部分と排
他的論理和される点である。
and register 4-OL's CI- and register 42L's KK
I- is exclusive ORed to K K L +CL,
In register 4.6 R, CI't in register 40R and KKK in register 42R are exclusive ORed and K K R
It will be 10 CR. In FIG. 8, C is K K i- and K
Exclusively ORed with KR, K K L 1C and KK
It became rt+C. Thus, the difference between FIG. 2 and FIG. 8 is that a separate 64-bit control vector is exclusive-ORed with each bit portion of KK.

第7図及び第8図は、C=CL=CRであるだけで、第
1図及び第2図と同じであることが’l’lJ断できよ
う。換言すれば、128ビツト制御ベクトルを使用する
方法を縮小すれば、左半分ビット部分と右半分ビット部
分が等しいCと64ビツト制御ベクトルを使用する方法
となる。つまり64ビツト制御ベクトルは、Cの128
部分すなわち128ビツト制御ベクトルが退化したもの
である。第1図及び第2図の優位点は、余計な手間や経
費をかけずに制御ベクトルを倍加できることにある。
It can be concluded that FIGS. 7 and 8 are the same as FIGS. 1 and 2 only that C=CL=CR. In other words, the method of using a 128-bit control vector can be reduced to a method of using C and a 64-bit control vector in which the left half bit part and the right half bit part are equal. In other words, the 64-bit control vector is C's 128
The partial, 128-bit control vector is degenerate. The advantage of FIGS. 1 and 2 is that the control vector can be doubled without extra effort or expense.

実際、64ビツト制御ベクトルの定義(第7図及び第8
図)および128ビツト制御ベクトルの定義(第1図及
び第2図)は、構造上あるいは実行」二有利な点を持つ
。64ビツト制御ベクトルを実行するハードウェア及び
ソフトウェアは、簡単に128ビツト制御ベクトルを支
援できるようになる。どちらもK K L及びKKRか
ら出る種々のキーを含む、三重の暗号化操作により実行
されるからである。暗号化の手順は全く同じである。1
28ビツト制御ベクトルを実行する新規ハードウェア及
びソフトウェアは、ソフトのレベルでCL = CRに
設定するだけで、64ビツト制御ベクトルを支援できる
ようになる。結果、64ビツト制御ベクトル、128ビ
ツト制御ベクトルどちらも暗号ハードウェアに対し透過
になる。
In fact, the definition of a 64-bit control vector (Figures 7 and 8)
The definition of a 128-bit control vector (Figs. 1 and 2) has two structural and implementation advantages. Hardware and software that implements 64-bit control vectors can easily support 128-bit control vectors. This is because both are performed by a triple cryptographic operation involving different keys originating from KKL and KKR. The encryption procedure is exactly the same. 1
New hardware and software that implements 28-bit control vectors can now support 64-bit control vectors by simply setting CL = CR at the software level. As a result, both the 64-bit and 128-bit control vectors are transparent to the cryptographic hardware.

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

第9図に示すのは、レジスタ44の64ビット暗号キー
Kを、レジスタ42の128ビツト・キー暗号化キーK
 K (K K LとKKRの連結したもの。
FIG. 9 shows the 64-bit encryption key K in register 44 and the 128-bit key encryption key K in register 42.
K (K K A combination of L and KKR.

KK=KKL//KKR)及びレジスタ90の任意長(
すなわち無限)ベクトルC1nfにより暗号化するシス
テムである。操作は次のようになる。
KK=KKL//KKR) and the arbitrary length of register 90 (
In other words, this is a system that performs encryption using an infinite) vector C1nf. The operation is as follows.

まずハツシュ関数処理装置92でC1nfの公開一方向
ハツシュ関数を算出して、レジスタ941、に読み込ま
れる左半分64ビツトM L、及びレジスタ94Rに読
み込まれる右半分64ビツトMRから成る128ビツト
・ハツシュ値を出す。処理装置92で行なわれる一方向
関数は、関数への入力データを関数の出力結果から算出
するのは電算処理上不可能であるが、入力データから出
力結果を算出するのは容易である、という性質を持つ。
First, the hash function processing device 92 calculates the public one-way hash function of C1nf, and produces a 128-bit hash value consisting of the left half 64 bits ML read into the register 941 and the right half 64 bits MR read into the register 94R. issue. In the one-way function performed by the processing device 92, it is computationally impossible to calculate the input data to the function from the output result of the function, but it is easy to calculate the output result from the input data. have a property.

方向関数については従来技術に詳述されている。Direction functions are detailed in the prior art.

W、デイフィー他著、「暗号についての新たな方向J(
1,976年、情報理論に関するI E HE報−1−
1IT−22、第6号、644ページ〜654−ページ
)に述べられている、一方向関数についての厳密な定義
は以下の通りである。
W. Daffey et al., New Directions in Cryptography J.
1,976, IE HE Report on Information Theory-1-
1IT-22, No. 6, pp. 644-654), the strict definition for a one-way function is as follows.

開数fを一方向関数と呼ぶのは、次の場合である。fの
領域内すべてのXについてy=f(x)が簡単に求めら
れるのに対し、yの値とfの機能をもってしても、「の
領域内のほとんどのyについてf (x )=yとなる
Xを求めるのが、電算処理上まったく実行不可能な1月
数。重要なのは、この関数は電算処理上の見地から可逆
性を持たないと定義するのであり、通常数学的に菖゛う
ところの不可逆性とは異なるということである。点yの
解が唯一でない、すなわちr (xl)=y=f’(x
2)となるような、異なる点×1及び×2が存在すると
き、その関数は「不可逆」である。ここで述べるのは逆
算の難しさではなく、むしろ、yの値と「の機能をもっ
てして「(x)=yとなるXを算出することのほうがは
るかに難解なのである。
The open number f is called a one-way function in the following case. Whereas y=f(x) can be easily obtained for all X in the region of f, even with the value of y and the function of f, f (x )=y Calculating the number However, this is different from irreversibility.The solution for point y is not unique, that is, r(xl)=y=f'(x
2) When there are different points x1 and x2, the function is "irreversible". What I will discuss here is not the difficulty of back calculation, but rather, it is much more difficult to calculate X such that (x) = y using the value of y and the function of.

修正探索コード(第11図、第12図、第13図参照)
算出のアルコ゛リズムにより、一方向関数の定義はもっ
と厳しくなる。MDCアルゴリズムによれば、f (x
i )=f (x2 )となる×1及びx2を求めるの
は電算処理上不可能である。この厳しい要求を満たすに
は、MDCは少なくとも128ビツトの長さを持たなく
てはならない。そうでなければ、f(xl、)=f(x
2)となる×1及び×2を探すのに誕生日型攻勢がかけ
られることになろう。
Modified search code (see Figures 11, 12, and 13)
Due to the computational algorithm, the definition of one-way functions becomes more strict. According to the MDC algorithm, f (x
It is computationally impossible to obtain x1 and x2 such that i )=f (x2 ). To meet this stringent requirement, the MDC must be at least 128 bits long. Otherwise, f(xl,)=f(x
2) A birthday type attack will be used to find ×1 and ×2.

第9図における次の操作についてさらに述べる。The next operation in FIG. 9 will be further described.

排他的論理和装置46Lで、レジスタ941−の64ビ
ット値Ml−とレジスタ42I、の64ビット値KKI
−の排他的論理和を求め、排他的論理和装置4、6 R
で、レジスタ94Rの64ビット値MRとレジスタ42
Rの64ビツト値KKRの排他的論理和を求める。代わ
って暗号化装置41で、レジスタ44のKがKKL+M
Lによって暗号化され、非暗号化装置43でK K R
十M Rによって非暗号化され、暗号化装置45でKK
L+MKによって暗号化される。その結果生じるYをe
*KK、cInf(K)と書き表わす。(” + ”は
排他的論理和操作を示す。) 第10図に示すのは、レジスタ42の128ビツト・キ
ー暗号化キーK K (K K LとKKR)及びレジ
スタ90の任意長制御ベクトルC1nfより暗号化され
た、レジスタ44の暗号キーにである64ビツト値Yを
非暗号化するシステムである。
The exclusive OR device 46L selects the 64-bit value Ml- of the register 941- and the 64-bit value KKI of the register 42I.
- to determine the exclusive OR of exclusive OR devices 4 and 6 R.
Then, the 64-bit value MR of register 94R and register 42
Find the exclusive OR of the 64-bit value KKR of R. Instead, in the encryption device 41, K in the register 44 is KKL+M
K K R is encrypted by the decryption device 43
10M Unencrypted by R, KK by encryption device 45
Encrypted by L+MK. The resulting Y is e
*KK, expressed as cInf(K). (“+” indicates an exclusive OR operation.) Shown in FIG. This is a system in which the 64-bit value Y, which is the encryption key of the register 44, is decrypted.

第10図の手順は、基本約6こは第9図の逆である。The procedure in FIG. 10 is basically the reverse of FIG. 9 in about six steps.

まずハツシュ開数処理装置92で、(第9図の公開一方
向ハツシュ関数と同様の方法で)Cinfの公開一方向
ハツシュ関数を算出して、128ビット値M L及びI
VI Rを出す。次にMLとKKL、MRとKKIえの
排他的論理和を求め、KKL+ML。
First, the hashish numerical value processing device 92 calculates the public one-way hash function of Cinf (in the same manner as the public one-way hash function in FIG. 9), and calculates the 128-bit values M L and I
Issue VI R. Next, find the exclusive OR of ML and KKL, MR and KKI, and get KKL+ML.

K K R+M Rを出す。代わって非暗号化装置47
で、K K L、 + M LによりKが非暗号化され
、暗号化装置48でK K fl+M Rにより暗号化
され、非暗号化装置49でK K +−+ M I−に
より非暗号比表れる。要するに、e*KK、 Ci n
 f (K)を):cKK、C1nf&こより非暗号化
して、Kを再生するわけである。
Put out K K R + M R. Instead, the non-encryption device 47
Then, K is decrypted by K K L, + M L, encrypted by K K fl + M R by the encrypting device 48, and decrypted by K K +-+ M I- by the de-encrypting device 49. . In short, e*KK, Ci n
f (K)): cKK, C1nf & thus, K is decrypted and reproduced.

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

C1nfの場合、制御ベクトルがC1、C2、・・・、
Cnのブロックに分かれる。Cnの最下位には16進の
FF“が(バイト数に応じて)埋めこまれて8バイトと
なる。この埋込みは、暗号ハードウェアにより行なわれ
る(これは公開一方向ハツシュ関数自体の必要部分であ
る)。ブロックC1、C2、・・・、CnはMDCアル
ゴリズムにより(ブロックこ゛とに2回あるいは4回の
暗号化を行ない)操作されて128ビツトMDCを生成
する。128ビツトMDCの左半分(Ml、とする)お
よびK K Lとの排他的論理和を求めてK K L 
+ M 1.、を出し、128ビツトMDCの右半分(
MRとする)およびKKR,どの排他的論理和を求めて
K K R十M Rを出す。
In the case of C1nf, the control vectors are C1, C2,...
It is divided into Cn blocks. A hexadecimal FF" is embedded (depending on the number of bytes) at the bottom of Cn, resulting in 8 bytes. This embedding is done by the cryptographic hardware (this is a necessary part of the public one-way hash function itself). ).The blocks C1, C2,...,Cn are manipulated by the MDC algorithm (by encrypting each block two or four times) to produce a 128-bit MDC.The left half of the 128-bit MDC ( K K L
+M1. , and the right half of the 128-bit MDC (
MR) and KKR, calculate the exclusive OR and obtain K K R + M R.

Ml)Cアルプリズムのように厳密な一方向間数を使っ
て任意長制御ベクトルの128ビツト・ハツシュ値を算
出することは、細心の機密保護を行なうために大変に重
要なことである。これは、2つの異なる有効制御ベクト
ルC1及びC2(ただし同じハツシュ値を生じる)が発
見されないようにする上で必要である。もしMl)C(
C〕)=MDC(C2)となるところで01及びC2が
発見されると、処理の完全性が侵害される。この理由な
説明するため、例としてC1はデータの暗号化のみを行
ない、C2はデータの非暗号化のみを行なう制御ベクト
ルであるとする。暗号化されたデータ・キーが制御ベク
トルC1を持つことがわかれば、C1でなく単にC2を
指定することにより、侵入者は簡単に機密保護を破るこ
とができる。つまり侵入者は、暗号化されたデータ・キ
ーとC2を、妨害された暗号文(ユーザーがそうとは知
らず該データ・キーにより暗号化したもの)とともに非
暗号化命令に渡す。非暗号化命令は、C2が無効である
ことも発見できず、正しいデータ・キーがCF内で内部
的に再生されるのを防ぐこともできず、データは非暗号
化されてしまう。
Calculating the 128-bit hash value of an arbitrary length control vector using a strict one-way number like the Ml)C al prism is very important for meticulous security protection. This is necessary to avoid finding two different valid control vectors C1 and C2 (but resulting in the same hash value). If Ml)C(
If 01 and C2 are found where C])=MDC(C2), the integrity of the process is violated. To explain the reason for this, it is assumed, for example, that 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 a control vector C1, an intruder can easily defeat security by simply specifying C2 instead of C1. That is, the intruder passes the encrypted data key and C2 along with the intercepted ciphertext (which the user unknowingly encrypted with the data key) to the unencrypted command. The decryption instructions cannot discover that C2 is invalid or prevent the correct data key from being regenerated internally within the CF, and the data becomes decrypted.

第22図は、暗号機構(CF)4で、ハツシュ関数処理
装置92が母線12に接続される様子を図示している。
FIG. 22 shows how the hash function processing device 92 is connected to the bus 12 in the cryptographic mechanism (CF) 4.

ハツシュ関数処理装置92は暗号処理装置16の一部と
もなるが、分離して母線12に接続することもある。ハ
ツシュ関数処理装置92は上述の、制御ベクトルの公開
一方向ハツシュ関数を実行する。
The hash function processing device 92 may be part of the cryptographic processing device 16, but may be separated and connected to the bus 12. The hash function processing device 92 executes the above-described public one-way hash function of the control vector.

制御ベクトル中の暗号分@: 64ビツト制御ベクトルのみ、128ビツト制御ベクト
ルのみ、任意長制御ベクトルのみで実行する暗号処理は
安全乙こ行なねれることが、本発明により判断できよう
。しかしながら、同一暗号システム内でこれらが共存す
る場合や、またそれが必要なシステムも存在する。この
場合は、暗号処理−ヒの方法が分離されていることが、
暗号の機密保護上絶対不可欠である。換言すれば、ある
制御ベクトル指定方法を使ってキーが暗号化されていて
も、別の指定方法の元に暗号化キーを受け取るを行なえ
る116号ハードウェアに対し、侵入者が不正を行えな
いようにしなくてはならない。例えば、c*KK、C1
28(K)が128ビツト制御ベクトルにより暗号化さ
れたキーを表わすとする。
Encrypted portion in control vector @: It can be determined by the present invention that cryptographic processing performed using only 64-bit control vectors, only 128-bit control vectors, and only arbitrary-length control vectors cannot be performed safely. However, there are cases where these coexist within the same cryptographic system, and there are also systems where they are necessary. In this case, the separation of cryptographic processing and
This is absolutely essential for the security of cryptography. In other words, even if a key is encrypted using one control vector specification method, an intruder cannot tamper with No. 116 hardware that can receive encryption keys under another specification method. You have to do it like this. For example, c*KK, C1
Let 28(K) represent a key encrypted with a 128-bit control vector.

この場合c*’KKC,128(K)は、暗号ハードウ
ェアが(! *K K、 c 128 (K )を非暗
号化してKを再生する方法によって、64ビツト制御ベ
クトルにより118号化されたキーであるとは言えない
。これは、C128およびC64が、あるキーの使用を
0128は認めないがC64は認める、といった相反す
る仕様を持つ可能性があるからである。
In this case, c*'KKC,128(K) is 118 encrypted by a 64-bit control vector by the method in which the cryptographic hardware decrypts (! *K K, c128 (K) and regenerates K. This cannot be said to be a key because C128 and C64 may have contradictory specifications such as 0128 disallowing the use of a certain key but C64 permitting it.

上記仕様の困難な点は1つ明らかである。ある特定の実
行において、128ビツト制御ベクトルの左半分及び右
半分が等しく(合理的に)、CLが有効な64ビツト制
御ベクトルCを表わす場合があるとする。意図的に問題
点を例示してみる。
One difficulty with the above specification is clear. In a particular implementation, assume that the left and right halves of the 128-bit control vector are (reasonably) equal and that CL represents a valid 64-bit control vector C. Let me intentionally illustrate the problem.

CL、CR及びCのビット13がセット二l’3’1°
であり、他のビットはすべてセット二B°0“であると
する。CLにおいてビット13−B″1°ということは
、暗号化された暗号変数x(Xはキーである)はデータ
暗号化のみに使用されるということである。CI”tの
ビット13は、暗号化操作を何らかの形で制限する(例
:最初にパスワード入力を求める、あるいは午前8時か
ら午後4時までしか暗号化操作を行なわせない等)。し
かし、制御ベクトルC(64ビツト制御ベクトル)のビ
ット13は、Xがデータ非暗号化に使われることを意味
する。YがC1,、、CR及びKL、KRを使つてXを
暗号化した値だとすれば、侵入者はC及びKI−3KR
を使ってYを非暗号化するよう暗号装置に要求すること
ができるであろう。後者の場合、侵入者はXによってデ
ータを非暗号化することができる。
Bit 13 of CL, CR and C is set 2 l'3'1°
and all other bits are set 2B°0". Bit 13-B"1° in CL means that the encrypted cryptographic variable x (X is the key) is the data encryption This means that it is used only for Bit 13 of CI"t restricts the encryption operation in some way (e.g. requires a password first, or only allows the encryption operation to occur between 8 a.m. and 4 p.m.). However, the control Bit 13 of vector C (64-bit control vector) means that X is used for data decryption. If Y is the encrypted value of For example, the intruder is C and KI-3KR.
could be used to request the cryptographic device to decrypt Y using In the latter case, the intruder can decrypt the data with X.

この場合に求められる暗号の性質について、以下に述べ
る。C64、C128およびC1nfはそれぞれ、キー
Kを64ビツト制御ベクトル、128ビツト制御ベクト
ル、任意長制御ベクトルを用いたKKにより暗号化する
方式であるとする。
The properties of the encryption required in this case will be described below. It is assumed that C64, C128, and C1nf are methods for encrypting key K using KK using a 64-bit control vector, a 128-bit control vector, and an arbitrary-length control vector, respectively.

をこれら3つの方式のいずれかであり、Yをiを用いた
K KによるKの暗号化であるとする。jは3つの方式
のいずれかであるがiではない場合、暗号ハードウェア
は以下の事項を満たすものでなければならない。Y及び
jがハードウェアに渡されたとき(すなわち、iの方式
が取られたにもかかわらす侵入者がjと偽って操作をす
ると)、暗号化ハードウェアは確実に不正を発見し操作
を中断するかあるいは、侵入者にとって意味を持たない
不定不測の値に’ (Kではない)を生じさせなくては
ならない。
is one of these three methods, and let Y be the encryption of K by K using i. If j is one of the three methods but not i, the cryptographic hardware must satisfy the following requirements. When Y and j are passed to the hardware (that is, if method i is taken but the intruder pretends to be j), the encryption hardware will definitely detect the fraud and perform the operation. It must either be interrupted or cause '(not K) to be an indeterminate and unforeseen value that has no meaning to the intruder.

制御ベクトル定義の三方式を総括的に分離する方法を、
第14図に示す。この方法は、各制御ベクトルの各64
ビット部分、及び任意:長制御ベクトルで算出されたM
DCの各64ビット部分の2ビツト・フィールド(ビッ
トi及びi+1)を使用する。ビットはキーのパリティ
・ビットと重なることはない。このビットは、すべての
C64についての暗号化値e*KK、C64(K )が
すべての0128についての暗号化値c>:(KK、C
128(K)とも、またすべてのC1nflこついての
暗号化値e*KK、Ci n f (K)とも異なるよ
うに、K及びKKに関して割当てられた値である。。こ
れにより、暗号化されたKが1以上の制御ベクトルによ
り非暗号化されることはない。正しい制御ベクトル以外
のものを使用すると、Kではないに″が生じる。
A method for comprehensively separating the three methods of control vector definition is explained below.
It is shown in FIG. This method uses each 64 of each control vector.
bit part, and optionally: M calculated with a long control vector
A 2-bit field (bits i and i+1) of each 64-bit portion of DC is used. The bits never overlap the key's parity bits. This bit indicates that the encrypted value e*KK for all C64, C64(K) is the encrypted value c>:(KK,C
128(K), and also from all C1nfl encrypted values e*KK, Ci n f (K), are the values assigned for K and KK. . This prevents the encrypted K from being decrypted by one or more control vectors. Using anything other than the correct control vector will result in "K" instead of "K".

制御ベクトル検査: 128ビツト制御ベクトルの制御ベクトル検査は、64
ビツト制御ベクトルのそれと同様である=37 が、128ビツト制御ベクトルの場合、128ビツトの
ものすべてが検査対象となる点だけが異なる。
Control vector check: Control vector check for a 128-bit control vector requires 64
=37 is similar to that of a bit control vector, but in the case of a 128-bit control vector, the only difference is that all 128 bits are subject to inspection.

従って、第6図で述べた64ビツト制御ベクトル検査の
論理も、64ビツト制御ベクトルでなく128ビツト・
制御ベクトルが暗号化装置への入力データに使われる点
を除いて、128ビツト制御ベクトル検査の場合と同様
である。
Therefore, the logic of the 64-bit control vector check described in FIG.
This is similar to the 128-bit control vector test except that the control vector is used as input data to the encryption device.

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

本発明の第15図(d)のように、任意長制御ベクトル
Cは、制御ベクトル内の位置でなくフィールド識別子に
よって定義されるフィールドから成ることがある。この
ようなタグ位置付はデータ構造は第15図(d)にある
ように複数フィールドから成り、これらのフィールドは
第15図(b)にあるように、固定長フィールド識別子
、固定長フィールド長及び可変長データから成る。
As shown in FIG. 15(d) of the present invention, the arbitrary length control vector C may consist of fields defined by field identifiers rather than positions within the control vector. The data structure of such tag positioning consists of multiple fields as shown in FIG. 15(d), and these fields include a fixed length field identifier, a fixed length field length, and a fixed length field length as shown in FIG. 15(b). Consists of 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 fields defined by field identifiers (i.e. tags), but here the field length is not a length field; Determined by a fixed-length field delimiter placed at the end of the data. The data structure of such tag positioning is shown in Figure 15 (e
), these fields consist of a fixed-length field identifier, variable-length data, and a fixed-length field delimiter, as shown in FIG. 15(c).

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

ここまでで判断できようが、様々な方法により、任意長
制御ベクトル実行を、構造上簡単にしかも少ない記憶域
及び処理で行ない、同一暗号システムまたはネットワー
クや接続装置内に64ビット制御ベクトル/128ビッ
ト制御ベクトル/任意長制御ベクトル実行が混在する中
で、互換性を維持しながら行なうことができる。
As can be seen, there are a variety of ways to implement arbitrary length control vectors that are structurally simple, require less storage and processing, and can be implemented within the same cryptographic system or network or interconnect. Control vector/arbitrary length control vector execution can be performed while maintaining compatibility.

機密パスワードと制御ベクトル: 暗号キー使用の際に制御ベクトルに機密パスワードを組
み込むことで、より細密な暗号キー使用制御が可能とな
る。これは、非常に高いレベルの機密保護を必要とした
り、暗号処理時に厳しい制御基$(すなわち暗号キーへ
のアクセスの制御)を採用する適用業務に、特に有効で
ある。
Confidential password and control vector: By incorporating a confidential password into the control vector when using cryptographic keys, more detailed control of cryptographic key usage becomes possible. This is particularly useful for applications that require very high levels 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, data processing system 2 executes a program such that a cryptographic mechanism accesses the program and the application (as shown in FIG. 2 of the aforementioned Matthias et al. related patent application (b)). This program issues requests to process cryptographic keys associated with control vectors. The general form of the control vector is shown in FIG. 10 of the above-mentioned related patent application, but is modified and extended by the present invention (described in more detail below). Control vectors define certain functions.

その機能の遂行のためキーの創作者によって関連するキ
ーが許可される。前述の関連特許出願によれば、暗号構
造は、プログラムが暗号キーについて求めるキー管理機
能を認証するシステムを定義し、キーの創作者によって
それらが許可されたことを保証する。
The associated key is authorized by the key's creator to perform its function. According to the aforementioned related patent application, the cryptographic structure defines a system for authenticating the key management functions that programs request for cryptographic keys, ensuring that they have been authorized by the creator of the keys.

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

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

制御ベクトル検査装置14は、暗号処理装置16の入力
データにつながる許可出力20を持ち、キー管理操作が
許可されたことを知らせる。暗号処理装置16が許可出
力を受け取ると、暗号キーが要求したキー取扱い操作実
施が開始する。暗号キー記憶装置22は、入出力経路8
−にで制御ベクトル検査装置14に接続する。暗号キー
は記憶キー(関連の制御ベクトルおよび、マスター・キ
ー記憶装置18に保管されたマスター・キーの論理演算
結果)の元で暗号化されるが、暗号キー記憶装置22は
その暗号化された形で、暗号キーを保管する。この論理
演算結果なKM、Cと書き表わす。
The control vector validator 14 has an authorization output 20 connected to the input data of the cryptographic processor 16 to signal that the key management operation is authorized. Once the cryptographic processor 16 receives the authorization output, it begins performing the key handling operations requested by the cryptographic key. The encryption key storage device 22 is connected to the input/output path 8
- connect to the control vector inspection device 14. The cryptographic key is encrypted under a storage key (the associated control vector and the logical operation result of the master key stored in master key storage 18), and the cryptographic key storage 22 is The encryption key is stored in the form. The result of this logical operation is written as KM,C.

KMは128ビツト・マスター・キーであり、Cは制御
ベクトルである。暗号提供要求で、1以上のキー及び制
御ベクトルが要求されたなら、すべての制御ベクトルが
検査され、すべてが正しく発見されて暗号処理装置]6
εこ対し許可信号が出されなくてはならない。
KM is the 128-bit master key and C is the control vector. If the cryptographic provision request requests one or more keys and control vectors, all control vectors are checked and all are found correctly and the cryptographic processing device]6
A permission signal must be issued for ε.

暗号キー記憶装置22から暗号化キーを再生するのは例
えば、暗号命令記憶装置]0が入出力経路8上で、暗号
キー記憶装置22から暗号キーを再生せよとの暗号提供
要求を受け取った場合である。その後制御ベクトル検査
装置14が応答し、線20で暗号処理装置16に対し、
暗号キー再生操作が許可されたという許可信号が出る。
The encryption key is regenerated from the encryption key storage device 22, for example, when the encryption command storage device 0 receives a cipher provision request to reproduce the encryption key from the encryption key storage device 22 on the input/output path 8. It is. The control vector checker 14 then responds on line 20 to the cryptographic processor 16.
A permission signal is issued indicating that the cryptographic key regeneration operation is permitted.

暗号処理装置16が線20で許可信号に応答して、暗号
化された暗号キーを暗号キー記憶装置22から受け取り
、記憶キー(関連の制御ベクトルおよび、マスター・キ
ー記憶装置18に保管されたマスター・キーの論理演算
結果)の元でそれを非暗号化する。
Cryptographic processing unit 16 is responsive to the authorization signal on line 20 to receive an encrypted cryptographic key from cryptographic key storage 22 and to receive a stored key (associated control vector and master key stored in master key storage 18 ).・Decrypt it based on 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 master key storage 18. Although the logical operation result in the above embodiment is also an exclusive OR operation, this is a different type of logical operation.

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

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

パスワードは、キー再生処理あるいは暗号提供要求処理
の一部として検査されないが、該検査は不要なのである
。キーが生成されると、それはパスワードが組み込まれ
た制御ベクトルのハツシュ値の元で暗号化される。その
後キーが再生されたときにユーザーが間違ったパスワー
ドを入力すると、該暗号化キーは該不正制御ベクトルと
マスター・キーの論理演算結果である記憶キーの元で非
暗号化されるため、実際には不定不測のキーが再生され
て暗号命令処理に使用される。暗号命令については、前
述したマチアス他の関連特許出願(b)で、1以−)=
の不正キーが再生されたとき、命令の出力結果が無効で
ある場合、あるいは有効な場合について暗号命令を論じ
ている。
Passwords are not checked as part of the key regeneration process or the cipher supply request process, but such checking is unnecessary. Once the key is generated, it is encrypted under the hash value of the control vector that incorporates the password. If the user enters an incorrect password when the key is subsequently regenerated, the encryption key is unencrypted under the storage key, which is the logical result of the tamper control vector and the master key, so that it is not actually An indefinite key is regenerated and used to process cryptographic instructions. Regarding cryptographic instructions, in the related patent application (b) of Matthias et al.
The cryptographic instructions are discussed in terms of whether the output result of the instruction is invalid or valid when an unauthorized key is regenerated.

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

第20図は、暗号機構4を別の見地から見ており、パス
ワード(平文あるいは暗号文いずれでも)が組み込まれ
た制御ベクトルによる暗号化を示す。
FIG. 20 looks at the cryptographic mechanism 4 from another perspective and shows encryption by a control vector incorporating a password (either plaintext or ciphertext).

レジスタ90の制御ベクトルは任意長であり、第16図
及び第17図に示す空のくすべてがゼロの)フィールド
を持つ。パスワードが組み込まれた制御ベクトルをハツ
シュ関数処理装置92に入力する前に、ステージング・
レジスタ91で、該空フィールドに、パスワード入力装
置32から提供されたユーザー・パスワードが入る。ハ
ツシュ関数処理装置92は、制御ベクトルとユーザー・
パスワードを合わせ持つNビットのハツシュ値を出力す
る。Nビット・ハツシュ値は論理46で、Nビット・キ
ー暗号化キーKEKと排他的論理和されてNビットの算
出されたキー値を生成し、これが暗号化装置4]への人
カキ−となる。暗号化装置4]からの暗号文出力は、制
御ベクトルとパスワードを合わせ持つNビット・ハツシ
ュ値によって特定化される。同様にして非暗号化も、暗
号化装置41と第20図の非暗号化装置47を置き換え
て行なわれる。暗号文が非暗号化されたときにもし、ユ
ーザーが間違ったパスワードを入力してそれが制御ベク
トルに与えられれば、ハツシュ値は正しく算出されたキ
ー値とはならず、非暗号化装置47は平文を生成するこ
とが出来ない。
The control vector of register 90 is of arbitrary length and has an empty (all zero) field shown in FIGS. 16 and 17. Before inputting the control vector containing the password to the hash function processing device 92, the staging and
In register 91, the empty field is filled with the user password provided by password entry device 32. The hash function processing device 92 has a control vector and a user vector.
Outputs an N-bit hash value that also contains the password. The N-bit hash value is exclusive-ORed with the N-bit key encryption key KEK in logic 46 to produce an N-bit calculated key value, which becomes the key to the encryption device 4. . The ciphertext output from the encryption device 4 is specified by an N-bit hash value that includes both a control vector and a password. Similarly, non-encryption is performed by replacing the encryption device 41 with the non-encryption device 47 in FIG. When the ciphertext is decrypted, if the user enters a wrong password and it is given to the control vector, the hash value will not be the correctly calculated key value and the decryption device 47 will Unable to generate plaintext.

時間間隔と制御ベクトル: 制御ベクトルに日付及び時間情報を組み込むことで、よ
り細密な暗号キー使用制御が可能になる。
Time intervals and control vectors: Incorporating date and time information into control vectors allows for more fine-grained control of cryptographic key usage.

この概念はいくつかの異なる方法で実施可能であるが、
基本的には、係る暗号キーがいつ処理されるか(暗号提
供要求に応じて)を記述する、1以上の時間間隔を制御
ベクトルに組み込む。命令中の命令の型やパラメータ乙
こよってキーへのアクセスを制限することで、より細分
性が得られる。たとえば、第一の期間りこ暗号化命令中
でキーを使えるように、また第二の期間(第一とは等し
くない)に非暗号化命令中でキーを使えるように制御ベ
クトルをコード化するような場合である。同様に、命令
の型以外にシステム・パラメータによってキーへのアク
セスは変えられる。たとえば、第一の期間にシステムA
でキーを活動化し、第二の期間でシステムBでキーを活
動化するような場合である。
Although this concept can be implemented in several different ways,
Basically, one or more time intervals are built into the control vector that describe when such cryptographic keys are to be processed (in response to a cryptographic provision request). More granularity can be obtained by restricting access to keys based on the instruction type and parameters in the instruction. For example, a control vector may be encoded such that the key can be used in a first period in an encrypted instruction, and in a second period (not equal to the first) in a non-encrypted instruction. This is the case. Similarly, access to keys may vary depending on system parameters other than the type of instruction. For example, in the first period, system A
such as activating the key at System B and activating the key at System B at a second period.

期間と、命令、システム及びユーザー等とのリンクが、
様々な方法で行なわれることが判断できよう。これらの
方法は特に本発明にて定義されるものではなく、時間情
報を何らかの形で制御ベクトルに組み込む、という基本
概念に基づいて構築される。時間情報の制御ベクトルへ
の組込みは、非常に高いレベルの機密保護を必要とした
り、ある特定の期間にのみキーの使用を許可したいよう
な適用業務(例:あるシステム資源へのアクセス権をユ
ーザーに与えて、その適用業務の内容を知りある程度操
作できるようにはするが、それを予約または購入するま
では全部の機能を使わせない場合など)に、特に有効で
ある。
The period and links with instructions, systems, users, etc.
It can be seen that this can be done in various ways. These methods are not particularly defined by the present invention, but are constructed based on the basic concept of incorporating time information into a control vector in some form. Incorporating time information into the control vector is useful for applications that require a very high level of security or where you want to allow the use of a key only during a certain period of time (e.g., when a user has access to certain system resources). This is particularly effective in cases where you want to know the content of the application and be able to operate it to some extent, but do not allow all functions to be used until you reserve or purchase it.

本発明の第18図εこ、制御ベクトル中に時間情報を持
つシステムを示す。第18図にあるように、暗号化され
た関連の暗号キーとともに暗号キー記憶装置22に保管
された制御ベクトルは、時間間隔フィールドを持ち、該
フィールドは、開始日と時間、及び終了日と時間を記述
した1以上の時間間隔を持つ。(Vt、号機構4も、m
線12に接続する実時間クロック3/Iを持つため、制
御ベクトル検査装置14は母線12上でクロック値を読
むことができる。第18図には示していないが、完全性
のため実時間クロックの初期値をセットする装置もある
。例えば、マスター・キー入力用の物理キー活動化キー
・スイッチとともに機密保護前面パネル入力ボートに接
続された、携帯キー入力装置を含むシステムで、(前述
のマチアス他による関連特許出願(L))で述べられる
、マスター・キー18を初期化するのと同様の手順で)
実時間クロック34が初期化される。同一・の携帯キー
入力装置を用いて2つのスイッチを使用し、実時間クロ
ック・レジスタ34にクロック値を入力できる。クロッ
ク値を初期化するのには、その他の技術も使用される。
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 storage 22 with the associated encrypted cryptographic key has time interval fields that include a start date and time, and an end date and time. It has one or more time intervals that describe. (Vt, mechanism 4, m
Having a real-time clock 3/I connected to line 12 allows control vector tester 14 to read the clock value on bus 12. Although not shown in FIG. 18, there is also a device that sets the initial value of the real-time clock for completeness. For example, in a system that includes a handheld key entry device connected to a secure front panel input board with a physical key activation key switch for master key entry (see related patent application (L) by Matthias et al., supra). (in a similar manner to initializing the master key 18 as described)
Real time clock 34 is initialized. Two switches can be used to input clock values into real-time clock register 34 using the same handheld key input device. Other techniques may also be used to initialize clock values.

第18図の他の構成要素は、第16図のそれと同様であ
る。制御ベクトルに時間情報が組み込まれ、暗号装置が
実時間クロックを持つ場合(第18図)でも、暗号提供
要求の処理は先に述べた方法と同様に行なわれる。(後
述の例外を除く。) 本発明の第18図によれば、暗号提供要求が出され、そ
れが該時間間隔フィールドを持つ制御ベクトルがあるキ
ーを使用するとき、処理は次のようになる。制御ベクト
ル検査は上述の通り進むが、ただし保管済時間情報に応
じて追加の検査が行なわれる。(制御ベクトルがパスワ
ードを持つ場合も持たない場合もあるが、そのレベルの
制御キー管理は、ここで述べる時間間隔による検査では
変わらない。)第18図及び第20図について言うと、
制御ベクトル検査装置14が、クロック34から出され
た現在の実時間クロック値にアクセスし、検査が行なわ
れて、クロック値が制御ベクトル中に記述された時間間
隔内にあるかどうかが判別される。制御ベクトル中に1
以上の時間間隔が存在するならば、クロック値はこれら
の時間間隔内のどれかtこなければならない。(ただし
、1以上の間隔内にある必要はない。)該検査及び制御
ベクトルの残り部分の検査に合格すると、それに応答し
て制御ベクトル検査装置14は、ui120で暗号処理
装置1.64こ対し、暗号キー再生操作が許可されたと
いう許可信号を出す。暗号処理装置16が線20で許可
信号に応答して、暗号化された暗号キーを暗号キー記憶
装置22から受け取り、記憶キー(関連の制御ベクトル
および、マスター・キー記憶装置18に保管されたマス
ター・キーの論理演算結果)の元でそれを非暗号化する
Other components in FIG. 18 are similar to those in FIG. 16. Even when time information is incorporated into 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 described above. (With the exceptions mentioned below.) According to FIG. 18 of the present invention, when a request to provide a cipher is made and it uses a key with a control vector having the time interval field, the process is as follows. . Control vector testing proceeds as described above, except that additional testing is performed depending on the saved time information. (A control vector may or may not have a password, but that level of control key management is unchanged by the time interval tests described here.) Regarding Figures 18 and 20,
Control vector tester 14 accesses the current real-time clock value from clock 34 and a test is performed to determine whether the clock value is within the time interval described in the control vector. . 1 in control vector
If more time intervals exist, the clock value must occur sometime within these time intervals. (However, it does not need to be within an interval of 1 or more.) If the test and the test of the remaining part of the control vector pass, in response, the control vector tester 14 uses the UI 120 to check the cryptographic processing device 1.64. , issues a permission signal indicating that the cryptographic key regeneration operation is permitted. Cryptographic processing unit 16 is responsive to the authorization signal on line 20 to receive an encrypted cryptographic key from cryptographic key storage 22 and to receive a stored key (associated control vector and master key stored in master key storage 18 ).・Decrypt it based on the logical operation result of the key).

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

DEAとはキーやブロック・サイズの異なる、他の暗号
化アルコ1リズムも使用可能である。
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 processor 92 of the embodiment described above is based on the modified search code (MD
C) Calculation algorithm is used, but according to the present invention, another hash function is used to set the arbitrary length control vector of the storage register 90 to a different length that makes it easy to perform exclusive OR with the key. It can also be converted to a hash value. To perform an exclusive OR in accordance with 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 XOR a hash value and a key in exclusive OR 46 in accordance with the present invention, if an alternate key value length is used, an alternate hash value of equal length must be used. . Part of the hash value is exclusive-ORed with part (or all) of the key having the same bit length.

本発明の別の実施例では、暗号処理を即時に行なうため
乙こ暗号機構にクリア・キーが保管されることがある。
In another embodiment of the invention, a clear key may be stored in the cryptographic mechanism for immediate cryptographic processing.

第22図の例では、作業用記憶域24シごクリア・キー
が保管される。第一の方法では、各キー及び関連の制御
ベクトルの対が、暗号装置のランダム・アクセス・メモ
リ(RAM)つまり作業用記憶域24に保管される。あ
るキーにアクセスするためのルーチン操作中、関連の制
御ベクトルがまずアクセスされ、キー使用が確実に許可
されるようにするため前述のように制御ベクトル検査が
行われる。使用が許可されれば、キーが作業用記憶域か
らアクセスされ、暗号機構内操作に使用される。第二の
方法では、キーとその関連制御ベクトルのハツシュ値の
排他的論理和の結果が、暗号機構中の作業用記憶域に保
管される。任意長制御ベクトル自体は、キーとハツシュ
値の演算結果を伴い作業用記憶域に保管されるか、ある
いは入力経路8に渡される。あるキーにアクセスするた
めのルーチン操作中、関連の任意長制御ベクトルがまず
作業用記憶域からアクセスされるか、あるいはまず入力
経路8−Fで受け取られ、キー使用が確実に許可される
ようにするため前述のように制御ベクトル検査が行われ
る。使用が許可されれば、任意長制御ベクトルはハツシ
ュ値を生成するハツシュ関数処理装置92を通って処理
される。
In the example of FIG. 22, the working storage area 24 and the clear key are stored. In the first method, each key and associated control vector pair is stored in random access memory (RAM) or working storage 24 of the cryptographic device. During routine operations to access a key, the associated control vector is first accessed and control vector checking is performed as described above to ensure that key use is authorized. If authorized, the key is accessed from working storage and used for operations within the cryptographic mechanism. 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 either stored in working storage with the result of the key and hash value operation, or passed to the input path 8. During routine operations to access a key, the associated arbitrary-length control vector is first accessed from working storage or first received on input path 8-F to ensure that key use is authorized. To do this, a control vector check is performed as described above. If permitted, the arbitrary length control vector is processed through a hash function processor 92 which generates a hash value.

そして、キーとその関連制御ベクトルのハツシュ値の排
他的論理和の結果が、作業用記憶域からアクセスされ、
ハツシュ関数処理装置92により算出されたハツシュ値
と排他的論理和されて、要求暗号操作で使用されるキー
を生成する。128ビツト・キー及び128ビツト・ハ
ツシュ値に対する第三の方法では、キーの左半分がハツ
シュ値の左半分と排他的論理和されて作業用記憶域に保
管され、キーの右半分がハツシュ値の右半分と排他的論
理和されて作業用記憶域に保管される。第四の方法では
、キーが64ビツト・キーでハツシュ値が128ビツト
・ハツシュ値の場合、64ビーント・キーがハツシュ値
の左半分と排他的論理和されて作業用記憶域に保管され
、また右半分と排他的論理和されて作業用記憶域に保管
される。これらいずれの方法でも、(キーが暗号機構の
機密保護境界内に平文の形で保管されている限り)キー
の暗号化/非暗号化操作をキー再生につなげる必要がな
いので、処理速度が向上する。制御ベクトルのハツシュ
値と関連のキーを結合して作業用記憶域24に保管する
のに、排他的論理和以外の論理演算も使用できる。
The result of the exclusive OR of the hash value of the key and its associated control vector is then accessed from working storage;
It is exclusive ORed with the hash value calculated by the hash function processing device 92 to generate a key used in the requested cryptographic operation. A third method for 128-bit keys and 128-bit hash values is that the left half of the key is XORed with the left half of the hash value and stored in working storage, and the right half of the key is XORed with the left half of the hash value. It is exclusive-ORed with the right half and stored in working storage. In a fourth method, if the key is a 64-bit key and the hash value is a 128-bit hash value, the 64-beat key is exclusive-ORed with the left half of the hash value and stored in working storage; It is exclusive-ORed with the right half and stored in working storage. Both of these methods speed up processing because key encryption/decryption operations do not need to be coupled to key regeneration (as long as the key is stored in plaintext within the security boundary of the cryptographic mechanism). do. Logical operations other than exclusive OR may be used to combine the control vector hash value and the associated key and store them in working storage 24.

E6発明の詳細 な説明したように本発明によれば、暗号キー管理の技術
が改善される。
DETAILED DESCRIPTION OF THE E6 INVENTION According to the present invention, the technique of cryptographic key management is improved.

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

第1図は、本発明の第一実施例の解説図であり、64ビ
ット暗号キーKを、128ビツト・キー暗号化キーKK
(左半分64ビットKKI−及び右半分64ビツトKK
Kより成る)、及び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
より成る)、及び任意長制御ベクトルC1nfにより暗
号化するシステムを示す。 第10図は、本発明の第二実施例の解説図であり、第9
図の方法で任意長制御ベクトル及び128ビツト・キー
暗号化キーにより暗号化された64ビット暗号キーKを
、非暗号化するシステムを示す。 第11図は、修正探索コード操作(Ml)COP)の解
説図である。MDCOPは修正探索コード(MDC)ア
ルゴリズム1ブロツクごとに、2から4回の暗号化に使
用される。図面には、MDCOPアルゴリズムについて
文章及び該略図で示しである。 第12図は、修正探索コード(MDC)アルゴリズム1
ブロツクごとに、2回の暗号化を行なう場合、 第13図は、修正探索コード(MDC)アルゴリズム1
ブロツクごとに、4回の暗号化を行なう場合について解
説しである。 第17′1図は、3つのCV右方法64ビツトCV、1
28ビツトC■、任意長C■)を暗号処理上分離する方
法について述べた図である。キー暗号化キーK K L
、、K K Rにより排他的論理和される制御ベクトル
を各方法tこついて示しである。書くベクトル中の固定
ビット・フィールドは、3方法を分離するのに使われる
特定のコーディングに従って定義される。 第15図は、(a)から(f)までに分類されており、
任意長制御ベクトルのデータ構造を示す。 第16図は、機密保護パスワードを制御ベクトルに組み
込む暗号処理システムを示す図である。 第17図は、パスワードを制御ベクトルデータ4i’l
j造に組み込む例をいくつか図示したものである。 第18図は、時間情報を制御ベクトルに組み込む暗号処
理システムを示す図である。 第19図は、時間情報を制御ベクトル・データ構造に組
み込む例をいくつか図示したものである。 第20図は、パスワードが組み込まれた任意長制御ベク
トルによる暗号化を示す図である。 第21図は、時間間隔検査及び、任意長制御ベクトルに
よる非暗号化を示す図である。 第22図は、任意長制御ベクトルの暗号機構を示す図で
ある。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝 (外1名) 頌
FIG. 1 is an explanatory diagram of the first embodiment of the present invention, in which a 64-bit encryption key K is converted into a 128-bit encryption key KK.
(Left half 64-bit KKI- and right half 64-bit KK
K), and a 128-bit control vector C (consisting of 64-bit CL on the left half and 64-bit CR on the right half).
This shows a system that encrypts using FIG. 2 is an explanatory diagram of the first embodiment of the present invention, in which a 128-bit control vector and a 128-bit
A system for decrypting a 64-bit encryption key K encrypted with a key encryption key is shown. FIG. 3 is a diagram of a network of cryptographic devices coupled via cryptographic distribution channels. FIG. 4 is a diagram of the basic components of the cryptographic device. FIG. 5 is a diagram showing the processing order within the cryptographic device components that generate the processable key K. K is encrypted with master key KM and control vector C and stored in key storage ε. An application accesses a processable key K through an index or label that is linked to the key in storage. FIG. 6 is a diagram illustrating the general procedure for implementing cryptographic instructions within the CF. FIG. 7 is a diagram of a system in which a 64-bit encryption key K is encrypted by a 128-bit key encryption key KK (consisting of a left half 64-bit KKL and a right half 64-bit KKR) and a 64-bit control vector C. . FIG. 8 shows a 4-bit encryption key K encrypted using the procedure shown in FIG.
- a diagram of a system for decrypting with a bit control vector C; FIG. 9 is an explanatory diagram of the second embodiment of the present invention, in which a 64-bit encryption key K is converted into a 128-bit key encryption key KK.
(Left half 64-bit KKL and right half 64-bit KKR
) and an arbitrary length control vector C1nf. FIG. 10 is an explanatory diagram of the second embodiment of the present invention, and FIG.
1 shows a system for decrypting a 64-bit encryption key K that has been encrypted using an arbitrary length control vector and a 128-bit key encryption key using the method shown in the figure. FIG. 11 is an explanatory diagram of the modified search code operation (Ml)COP). MDCOP is used for two to four encryptions per block of the Modified Search Code (MDC) algorithm. In the drawings, the MDCOP algorithm is illustrated in text and diagrammatically. Figure 12 shows the modified search code (MDC) algorithm 1.
If each block is encrypted twice, Figure 13 shows the modified search code (MDC) algorithm 1.
This section explains the case where each block is encrypted four times. Figure 17'1 shows the three CV right way 64 bit CV, 1
28 is a diagram illustrating a method of separating 28-bit C2, arbitrary length C2) in cryptographic processing. Key encryption key K K L
, , K K R for each method. Fixed bit fields in the write vector are defined according to the specific coding used to separate the three methods. Figure 15 is classified into (a) to (f),
The data structure of an arbitrary length control vector is shown. FIG. 16 is a diagram illustrating a cryptographic processing system that incorporates a security password into a control vector. FIG. 17 shows the password control vector data 4i'l
This figure shows some examples of how it can be incorporated into a building. FIG. 18 is a diagram showing a cryptographic processing system that incorporates time information into a control vector. FIG. 19 illustrates several examples of incorporating time information into a control vector data structure. FIG. 20 is a diagram showing encryption using an arbitrary length control vector incorporating a password. FIG. 21 is a diagram illustrating time interval checking and non-encryption using an arbitrary length control vector. FIG. 22 is a diagram showing a cryptographic mechanism for arbitrary length control vectors. Applicant International Business Machines Corporation Representative Patent Attorney Takashi Tonmiya (1 other person)

Claims (1)

【特許請求の範囲】 暗号サービス要求を出力するプログラムを制御ベクトル
に関連付けられる暗号キーで実行するデータ処理システ
ムにおける暗号装置であって、 (a)Nビットの暗号キーと関連付けられる所与の長さ
の制御ベクトルを受け取るための制御ベクトル入力と、 (b)上記制御ベクトル入力に接続された入力及び暗号
サービス要求を受け取るための入力を有し、上記制御ベ
クトルが上記暗号サービス要求によって要求された暗号
機能を許可することを検査し付勢信号を出力する制御ベ
クトル検査手段と、 (c)上記制御ベクトル入力に接続された入力及びNビ
ットの出力を有し、上記制御ベクトルをNビットのハッ
シュ値にマツピングするハッシュ関数生成手段と、 (d)上記Nビットの暗号キーを受け取るためのキー入
力と、 (e)上記ハッシュ関数生成手段の上記Nビットの出力
に接続された第1入力及び上記キー入力に接続された第
2入力を有し、上記Nビットのキーと上記Nビットのハ
ッシュ値との積である計算されたキー値を出力する論理
手段と、 (f)入力情報を受け取るための第1入力及び上記論理
手段の出力に接続されたキー値入力を有し、上記計算さ
れたキー値を用いて上記入力情報を変換した出力情報を
生成する暗号変換手段と、を有し、 上記暗号変換手段は上記制御ベクトル検査手段の上記付
勢信号出力に接続され、上記制御ベクトル検査手段が要
求された暗号機能は上記制御ベクトルによっては許可さ
れないと判断したときには上記出力情報への変換を禁止
するようにしたことを特徴とする暗号装置。
Claims: A cryptographic apparatus in a data processing system that executes a program that outputs cryptographic service requests with a cryptographic key associated with a control vector, comprising: (a) a given length associated with a cryptographic key of N bits; (b) an input connected to said control vector input and an input for receiving a cryptographic service request, wherein said control vector is a cryptographic service request requested by said cryptographic service request; (c) having an input connected to said control vector input and an N-bit output, said control vector being a hash value of N bits; (d) a key input for receiving the N-bit cryptographic key; (e) a first input connected to the N-bit output of the hash function generating means and the key; (f) logic means for receiving input information, having a second input connected to the input, and outputting a calculated key value that is a product of the N-bit key and the N-bit hash value; cryptographic conversion means having a key value input connected to a first input and an output of the logic means, and generating output information by converting the input information using the calculated key value; The encryption conversion means is connected to the energizing signal output of the control vector checking means, and prohibits conversion to the output information when the control vector checking means determines that the requested cryptographic function is not permitted by the control vector. A cryptographic device characterized by:
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 true JPH02106787A (en) 1990-04-18
JPH0816825B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04240888A (en) * 1990-08-22 1992-08-28 Internatl Business Mach Corp <Ibm> Cryptographic device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04240888A (en) * 1990-08-22 1992-08-28 Internatl Business Mach Corp <Ibm> Cryptographic device

Also Published As

Publication number Publication date
CA1319198C (en) 1993-06-15
JPH0816825B2 (en) 1996-02-21

Similar Documents

Publication Publication Date Title
US4924515A (en) Secure management of keys using extended control vectors
US4918728A (en) Data cryptography operations using control vectors
US5815573A (en) Cryptographic key recovery system
US6292896B1 (en) Method and apparatus for entity authentication and session key generation
EP0529261B1 (en) A hybrid public key algorithm/data encryption algorithm key distribution method based on control vectors
JP2552061B2 (en) Method and apparatus for preventing network security policy violation in public key cryptosystem
US5200999A (en) Public key cryptosystem key management based on control vectors
US4941176A (en) Secure management of keys using control vectors
EP0354774B1 (en) Data cryptography using control vectors
US5265164A (en) Cryptographic facility environment backup/restore and replication in a public key cryptosystem
KR100308322B1 (en) Method and apparatus for performing strong encryption or decryption of data using special encryption functions
CA1292790C (en) Controlled use of cryptographic keys via generating station establishedcontrol values
US5081677A (en) Crypotographic key version control facility
US4993069A (en) Secure key management using control vector translation
US6535607B1 (en) Method and apparatus for providing interoperability between key recovery and non-key recovery systems
JPH0338131A (en) Method of using the key, whichis coded in computer network, as the key identifier in data packet
WO2019166001A1 (en) Token generation and verification method and smart terminal
JPS6127751B2 (en)
JPH0363261B2 (en)
JPH04265031A (en) Method and apparatus for utilization control of open key
CN114679270A (en) Data cross-domain encryption and decryption method based on privacy calculation
EP0354770B1 (en) Secure management of keys using extended control vectors
CN116781265A (en) Data encryption method and device
JPH02106787A (en) Cryptographic device
EP0356065B1 (en) Secure management of keys using control vectors