JPH05224604A - Method and apparatus for forming official and private key pair by using pass phrase - Google Patents

Method and apparatus for forming official and private key pair by using pass phrase

Info

Publication number
JPH05224604A
JPH05224604A JP4231284A JP23128492A JPH05224604A JP H05224604 A JPH05224604 A JP H05224604A JP 4231284 A JP4231284 A JP 4231284A JP 23128492 A JP23128492 A JP 23128492A JP H05224604 A JPH05224604 A JP H05224604A
Authority
JP
Japan
Prior art keywords
key
generating
public key
control vector
private key
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
JP4231284A
Other languages
Japanese (ja)
Other versions
JP2690004B2 (en
Inventor
Stephen M Matyas
スティーブン、エム、マティアス
Donald B Johnson
ドナルド、ビー、ジョンソン
An V Le
アン、ブイ、リ
C Martin William
ウィリアム、シー、マーティン
Prymak Rostislaw
ロスティスロー、プリマク
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 JPH05224604A publication Critical patent/JPH05224604A/en
Application granted granted Critical
Publication of JP2690004B2 publication Critical patent/JP2690004B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

PURPOSE: To make a user port public and private keys from a certain cipher system to another cipher system and improve security protection, by generating a pair of the public key and the private key from a path phrase first. CONSTITUTION: This device is provided with a cipher facility 30, a cipher key data set 32, a ciphering mechanism access program 24 and an application program 36. Then, the first pair of the public key and the private key is generated by using a first seed value known to the user and a first control vector for defining the first private use of the first pair of the public key and the private key is generated. Then, the second pair of the public key and the private key is generated by using a second seed value known to the user and a second control vector for defining the second private use of the second pair of the public key and the private key is generated. Then, the private use of the first pair of the public key and the private key is controlled by using the first control vector and the private use of the second pair of the public key and the private key is controlled by using the second control vector.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、広くはデータ処理のシ
ステムと方法、更に詳しくは機密保護を高めるためデー
タ処理システムに於て使用する暗号システムおよび方法
に関する。
FIELD OF THE INVENTION This invention relates generally to data processing systems and methods, and more particularly to cryptographic systems and methods for use in data processing systems to enhance security.

【0002】[0002]

【従来の技術およびその課題】以下の特許および同時系
属出願の特許明細書は本発明に関連し参考としてここに
記載する。
BACKGROUND OF THE INVENTION The following patents and co-pending patent specifications are hereby incorporated by reference in connection with the present invention.

【0003】B.Brachtl 等の「生成ステーション設定制
御値を経由する暗号キーの制御的使用」USP 4,8
50,017(1989年7月18日、譲受人 IBM
Corporation ) S.M. Matyas 等の「制御ベクトルを用いるキーの機密保
護管理」USP 4,941,176(1990年7月
10日、譲受人 IBM Corporation ) S.M. Matyas 等の「制御ベクトルを用いるデータ暗号演
算」USP 4,918,728(1990年4月17
日、譲受人 IBM Corporation ) S.M. Matyas 等の「制御ベクトルを用いる個人識別番号
処理」USP 4,924,514(1990年5月8
日、譲受人 IBM Corporation ) S.M. Matyas 等の「拡張制御キーを用いるキーの機密保
護管理」USP 4,924,515(1990年5月
8日、譲受人 IBM Corporation ) S.M. Matyas 等の「制御ベクトル変換を用いる機密保護
キー管理」USP 4,993,069(1991年2
月12日、譲受人 IBM Corporation ) S.M. Matyas 等の「プログラム可能な制御ベクトル検査
を用いる機密保護キー管理」USP 5,007,08
9(1991年4月9日、譲受人 IBM Corporatio
n ) B.Brachtl 等の「公用一方向暗号化機能に基く修正検出
コードを用いるデータ認証」USP 4,908,86
1(1990年3月3日、譲受人 IBM Corporatio
n ) D.Abraham 等「外部プログラム能力を有するスマートカ
ードおよび同じくつくる方法」出願番号004,501
(1987年1月19日ファイル、譲受人 IBM Co
rporation ) S.M. Matyas 等の「RSA暗号変数記憶装置を圧縮する
手法」USP 4,736,423(1988年4月5
日、譲受人 IBM Corporation ) S.Schulzの「乱数発生器回路」USP 4,905,1
76(1990年2月27日、譲受人 IBM Corpor
ation ) S.M. Matyas 等の「多重パス検査により制御ベクトルを
用いるキーの機密保護管理」出願番号07/596,6
37(1990年10月12日ファイル、譲受人 IB
M Corporation ) S.M. Matyas 等の「制御ベクトル実施の代替モードを用
いる安全な暗号演算」出願番号07/574,012
(1990年8月22日ファイル、譲受人 IBM Co
rporation ) S.M. Matyas 等の「キーに対するインポート完全性レベ
ルに基き、公用キーの使用を制御する方法および装置」
出願番号07/602,989(1990年10月24
日ファイル、譲受人 IBM Corporation ) S.M. Matyas 等の「制御ベクトルに基づくハイブリッド
公用キーアルゴリズム/データ暗号化アルゴリズムキー
分散法」出願番号07/748,407(1991年8
月22日ファイル、譲受人 IBM Corporation ) S.M. Matyas 等の「制御ベクトルに基づく公用キー暗号
システムキー管理」(本特許出願と同日出願、譲受人
IBM Corporation ) 引用したS.M. Matyas 等による特許に述べられている暗
号体系は暗号キーとキーの創案者が意図するキーの使用
に対し認証を与える制御ベクトルとの連繋に基づいてい
る。S.M. Matyas 等による引用特許に述べられている暗
号体系はデータ暗号化アルゴリズム(DEA)(米国標
準規格×3.92−1981、データ暗号化アルゴリズ
ム、米国標準規格協会、New York(1981年12月3
1日)参照)に基づいているのに対し、本発明はDEA
等の機密キーと公用キーアルゴリズムの両方に基づいて
いる。本発明に従って、各種キー管理機能、データ暗号
機能、その他データ処理機能が制御ベクトルを用いて可
能である。システム管理者は本発明に従う適当な制御ベ
クトルを選択することにより、その機密保護方針の実施
に当って柔軟性を発揮することが出来る。暗号体系中の
暗号ファシリティ(CF)は前に引用したS.M. Matyas
等の特許中に述べられている。CFは暗号命令の集合に
対する命令処理装置であって、暗号化方法およびキー生
成方法を実行する。暗号ファシリティにおける記憶装置
が内部暗号変数の集合を記憶する。各暗号命令は入力パ
ラメータの集合を出力パラメータの集合に変換するのに
必要な一連の処理ステップに関し述べられている。暗号
ファシリティアプリケーションプログラム(CFAP)
もまた参照された特許および出願明細書中に述べられて
おり、これは対応する入力および出力パラメータと共に
命令略号およびアドレスからなる各暗号命令に対する呼
び出し方法を(呼び出し順序として)定義する。
B. Brachtl et al., "Controlled Use of Cryptographic Keys Via Generation Station Setting Control Values" USP 4,8
50,017 (July 18, 1989, assignee IBM
Corporation) SM Matyas et al. "Key Security Management Using Control Vectors" USP 4,941,176 (July 10, 1990, Assignee IBM Corporation) SM Matyas et al. "Data Cryptographic Operation Using Control Vectors" USP 4,918,728 (April 17, 1990)
JP, Assignee IBM Corporation) SM Matyas et al., "Personal Identification Number Processing Using Control Vectors" USP 4,924,514 (May 8, 1990)
Japan, Assignee IBM Corporation) SM Matyas, et al. “Key Security Management Using Extended Control Keys” USP 4,924,515 (May 8, 1990, Assignee IBM Corporation) SM Matyas, et al. Security Key Management Using "USP 4,993,069 (2991 1991)
Assignee IBM Corporation) SM Matyas et al., "Secure Key Management With Programmable Control Vector Checks" USP 5,007,08
9 (Assignee IBM Corporatio, April 9, 1991)
n) B. Brachtl et al., "Data authentication using modified detection code based on public one-way encryption function" USP 4,908,86
1 (3 March 1990, assignee IBM Corporatio
n) D. Abraham et al., "Smart Card with External Programmability and Method of Making It," Application No. 004,501
(Filed January 19, 1987, assignee IBM Co
rporation) SM Matyas et al., "Method for compressing RSA cryptographic variable storage device" USP 4,736,423 (April 5, 1988)
Japan, assignee IBM Corporation) S. Schulz's "Random Number Generator Circuit" USP 4,905,1
76 (February 27, 1990, assignee IBM Corpor
ation) SM Matyas et al., “Key Security Management Using Control Vectors With Multi-Pass Checking”, Application No. 07 / 596,6
37 (October 12, 1990 file, assignee IB
M Corporation) SM Matyas et al., "Secure cryptographic operations using alternative modes of control vector implementation," Application No. 07 / 574,012.
(File August 22, 1990, assignee IBM Co
rporation) SM Matyas et al. "Method and apparatus for controlling the use of public keys based on import integrity level for keys"
Application No. 07 / 602,989 (October 24, 1990)
J. File, Assignee IBM Corporation) SM Matyas et al., "Hybrid public key algorithm / data encryption algorithm key distribution method based on control vector" Application No. 07 / 748,407 (August 1991)
File on 22nd of March, Assignee IBM Corporation) "Public key cryptosystem key management based on control vector" by SM Matyas, etc.
The IBM Corporation) The cipher suite described in the cited SM Matyas et al. Patent is based on the association of a cryptographic key with a control vector that provides authentication for the intended use of the key by the creator of the key. The encryption system described in the cited patent by SM Matyas et al. Is a data encryption algorithm (DEA) (US standard × 3.92-1981, data encryption algorithm, American National Standards Institute, New York (December 3, 1981).
1 day))), while the present invention uses DEA
Etc. based on both secret key and public key algorithms. In accordance with the present invention, various key management functions, data encryption functions, and other data processing functions are possible using control vectors. By choosing the appropriate control vector in accordance with the present invention, the system administrator can be flexible in implementing its security policy. Cryptographic Facility (CF) in Cryptography is SM Matyas quoted earlier
Etc. in the patent. The CF is an instruction processing device for a set of cryptographic instructions and executes an encryption method and a key generation method. A storage device in the cryptographic facility stores a set of internal cryptographic variables. Each cryptographic instruction is described in terms of the sequence of processing steps required to transform a set of input parameters into a set of output parameters. Cryptographic Facility Application Program (CFAP)
It is also mentioned in the referenced patents and application, which defines the calling method (as a calling order) for each cryptographic instruction consisting of an instruction abbreviation and address along with corresponding input and output parameters.

【0004】公用キー暗号化アルゴリズムはW.Diffie、
M.E.Hellman 共著の「プライバシーーと認証:暗号入門
“Privacy and Authentication:An Introduction to Cr
yptography”」米国電気電子学会誌(IEEE)、67
巻3号、1979年3月、pp.397〜427に述べら
れている。公用キーシステムは、機密分散チャネルが充
分な完全性レベルを有する限り、そのチャネルなしです
ますことを基にしている。公用キー暗号システムでは、
2種のキーが使用され、その1は暗号化用であり他の1
は解読用である。公用キーアルゴリズムは(1) インバー
スキーPU(暗号化用)およびPR(解読用)の無作為
ペアを生成するのが容易であり、(2) PU、PRによる
演算が容易であるが、(3) PUからPRを計算すること
は計算上は実行不可能であるように設計されている。ユ
ーザは解読変換PRを機密に保ち、暗号化変換PUは、
それを公用辞書におくことで公用する。誰でもメッセー
ジを暗号化してそれをユーザに送信できるが、他の誰も
彼に向けられたメッセージを解読は出来ない。PUでも
って暗号化し、PRでもって解読することが可能であ
り、屡々望まれる。この理由で、PUは一般に公用キー
と呼び、PRを一般に私用キーと呼ぶ。公用キー暗号シ
ステムの系特徴はメッセージの送信者を独特に識別する
ディジタル署名を提供することである。もしユーザAが
署名ずみのメッセージMをユーザBに送信しようと思う
と、彼は彼の私用キーPRでその上に操作し、署名ずみ
メッセージSを作成する。PRは機密が望ましい時はA
の解読キーとして用いられたが、ここでは彼の「暗号
化」キーとして用いる。ユーザBがメッセージSを受信
すると、彼はAの公用PUでもって暗号文Sに操作して
メッセージMを回復できる。Aのメッセージを連続的に
解読することにより、受信者Bはそれが送信者Aから来
たという確証を得る。公用キー暗号の例は次の米国特
許、Hellman 等のUSP 4,218,582「公用キ
ー暗号装置および方法」、Hellman 等のUSP 4,2
00,770「暗号装置および方法」、Rivest等のUS
P 4,405,829「暗号通信システムおよび方
法」に与えられている。
The public key encryption algorithm is W. Diffie,
MEHellman Co-authored “Privacy and Authentication: An Introduction to Cr
yptography ”” Institute of Electrical and Electronics Engineers (IEEE), 67
Volume 3, March 1979, pp. 397-427. Public key systems are based on the fact that a confidential distributed channel will be without it as long as it has a sufficient integrity level. In the public key cryptosystem,
Two keys are used, one for encryption and the other one
Is for decoding. The public key algorithm is (1) easy to generate a random pair of Inverseki PU (for encryption) and PR (for decryption), and (2) easy to calculate by PU and PR, but (3 ) Computing PR from PU is designed to be computationally infeasible. The user keeps the decryption transformation PR confidential and the encryption transformation PU
Make it public by putting it in a public dictionary. Anyone can encrypt a message and send it to the user, but no one else can decrypt the message intended for him. It can be encrypted with PU and decrypted with PR, which is often desired. For this reason, PUs are commonly called public keys and PRs are commonly called private keys. A feature of public key cryptosystems is that they provide a digital signature that uniquely identifies the sender of a message. If user A wishes to send a signed message M to user B, he operates on it with his private key PR to create a signed message S. PR is A when confidentiality is desirable
Used as his decryption key, but here as his "encryption" key. When user B receives message S, he can manipulate ciphertext S with A's public PU to recover message M. By successively decoding A's message, recipient B gains confirmation that it came from sender A. Examples of public key cryptography are the following US patents: Hellman et al. USP 4,218,582 "Public key cryptographic apparatus and method", Hellman et al. USP 4,2.
00,770 “Cryptographic apparatus and method”, Rivest et al., US
P.4,405,829 "Cryptographic Communication Systems and Methods".

【0005】たいていの暗号システムにおいては、一旦
暗号キーが生成されると、暗号キーデータセットの中に
暗号化した形で記憶することが出来るし、または生成装
置から受信装置に暗号化した形で伝送し、そこで受信装
置での記憶および使用に適当な形に再暗号化することも
出来る。適当な媒体(例えばディスケット、磁気テー
プ、メモリカード、スマートカード)にキーを書き込
み、その媒体を移送することにより、またはキーを電子
的に伝送することによりある装置から他の装置にキーは
ポートされる。しかし、移送または伝送されているキー
が対称キー暗号化アルゴリズム(例:データ暗号化アル
ゴリズム)と共に用いられる機密キーのような機密キー
であるか、または非対称キー暗号アルゴリズムと共に用
いる公用および私用キーペアの私用キーである時には、
キーが敵により傍受されるかも知れない危険が常に存在
する。機密または私用キーを安全に移送または伝送する
一つの方法は、送信装置と受信装置間で共有するキー
で、それらを暗号化することである。しかし、送信、受
信装置がかかる機密保護暗号化チャネルを容易にするで
あろうキーを共有していない場合、または送信、受信装
置がかかる機密保護チャネルを容易化するためにかかる
キーイング関係を設定するのが不便あるいは不可能な場
合がある。従って機密キーをある装置から他の装置にポ
ートする唯一の便利な方法はクリアキーをポートするこ
としかないことがたびたびある。
In most cryptographic systems, once the cryptographic key is generated, it can be stored in the cryptographic key data set in encrypted form, or encrypted from the generator to the receiver. It can also be transmitted and re-encrypted there in a form suitable for storage and use at the receiving device. The key is ported from one device to another by writing the key to a suitable medium (eg diskette, magnetic tape, memory card, smart card) and transporting the medium or by electronically transmitting the key. It However, the key being transported or transmitted is a secret key, such as a secret key used with a symmetric key encryption algorithm (eg, a data encryption algorithm), or a public and private key pair used with an asymmetric key encryption algorithm. When it's a private key,
There is always the danger that the key may be intercepted by the enemy. One way to securely transport or transmit secret or private keys is to encrypt them with a shared key between the sending device and the receiving device. However, if the sending, receiving device does not share a key that would facilitate such a secure encrypted channel, or the sending, receiving device sets up such a keying relationship to facilitate such a secure channel. May be inconvenient or impossible. Therefore, the only convenient way to port a secret key from one device to another is often to port the clear key.

【0006】[0006]

【課題を解決するための手段】本発明の目的 本発明の目的は、ユーザが公用および私用キーをある暗
号システムから別の暗号システムにポートする改良され
た方法を提供することにある。
OBJECTS OF THE INVENTION It is an object of the present invention to provide an improved method for a user to port public and private keys from one cryptosystem to another.

【0007】本発明の別の目的はディスケット、磁気テ
ープ、メモリカード、またはスマートカード等の分離し
た記憶媒体を必要とすることなく、ユーザがある暗号シ
ステムから別の暗号システムに公用および私用キーをポ
ートすることが出来るようにすることにある。
Another object of the present invention is to allow a user to use public and private keys from one cryptographic system to another without requiring a separate storage medium such as a diskette, magnetic tape, memory card, or smart card. Is to be able to port.

【0008】本発明の更に別の目的はユーザの公用およ
び私用キーを生成し、ユーザが暗号装置を実際に使用中
の期間に使用することができ、また、ユーザが暗号装置
を不使用中はそのキーを暗号装置からパージすることが
できるようにすることにある。
Yet another object of the present invention is to generate a user's public and private keys, which can be used while the user is actually using the cryptographic device, and who is not using the cryptographic device. Is to be able to purge the key from the cryptographic device.

【0009】本発明の更に別の目的はユーザが暗号サー
ビスを必要とする期間中は暗号能力を有するポータブル
コンピュータ内で、ユーザの公用および私用キーを初期
化し、また暗号システムが必要とされない時はそのキー
をポータブルコンピュータからパージさせることにあ
る。
Yet another object of the present invention is to initialize a user's public and private keys within a portable computer having cryptographic capabilities during the period when the user requires cryptographic services, and when no cryptographic system is required. Is to purge the key from the portable computer.

【0010】本発明の更に別の目的はパスフレーズ等の
ユーザが記憶している事柄だけから、ユーザの公用およ
び私用キーペアを暗号装置ネットワーク内のいかなる暗
号装置においても生成または再生成できる方法を提供す
ることにある。
Yet another object of the present invention is a method by which a user's public and private key pairs can be generated or regenerated on any cryptographic device in a cryptographic device network solely from what the user remembers, such as a passphrase. To provide.

【0011】本発明の更に別の目的はパスフレーズ組合
わせ数が2の128べき乗よりも大きく、なおそのパス
フレーズがユーザが容易にそれを記憶できるような充分
な冗長性を有することを保証するパスフレーズの構成法
を提供することにある。
Yet another object of the present invention is to ensure that the number of passphrase combinations is greater than 2 to the power of 128, yet the passphrase is sufficiently redundant for the user to easily store it. To provide a method for constructing a passphrase.

【0012】本発明の更に別の目的はキー生成アルゴリ
ズムがRivest-Shamir-Adelman (RSA)公用キー暗号
アルゴリズムに基づいているところで、入力パスフレー
ズから公用キーペアおよび私用キーペアを生成および再
生成するための方法を提供することにある。
Yet another object of the present invention is to generate and regenerate public and private key pairs from an input passphrase, where the key generation algorithm is based on the Rivest-Shamir-Adelman (RSA) public key encryption algorithm. To provide the method.

【0013】本発明の更に別の目的はキー生成アルゴリ
ズムがいかなる公用キー暗号アルゴリズムに基づいてい
るところでも、入力パスフレーズから公用キーおよび私
用キーペアを生成および再生成するための方法を提供す
ることにある。
Yet another object of the present invention is to provide a method for generating and regenerating public and private key pairs from an input passphrase, where the key generation algorithm is based on any public key cryptographic algorithm. It is in.

【0014】本発明の更に別の目的はキー生成アルゴリ
ズムにパスフレーズに基づかない第1のタイプ、および
パスフレーズに基づく第2のタイプの公用キーおよび私
用キーペアを作成させるキー管理システムを提供するこ
とにある。
Yet another object of the present invention is to provide a key management system that allows a key generation algorithm to create a public key and private key pair of a first type that is not passphrase based and a second type that is passphrase based. Especially.

【0015】本発明の別の目的はパスフレーズに基づか
ない第1のタイプの公用および私用キーペアには、第1
のキー使用法が許されたキー使用法の第1の集合に基づ
くようにせしめ、またパスフレーズに基づく第2タイプ
の公用キーおよび私用キーペアには、第1のキー使用法
が許されたキー使用法の第2の集合に基づくようにせし
めるキー管理システムを提供することにある。
Another object of the present invention is to provide a first type of public and private key pair that is not based on a passphrase, the first
Key usage is based on the first set of allowed key usages, and the second type of public and private key pairs based on passphrases is allowed the first key usage. It is to provide a key management system that is based on a second set of key usages.

【0016】本発明の別の目的はパスフレーズから生成
される公用キーおよび私用キーは、パスフレーズから生
成されない公用キーおよび私用キーとは暗号的に分離す
ることができ、従ってパスフレーズから生成される公用
キーおよび私用キーにより両タイプの生成される公用キ
ーおよび私用キーを利用する暗号システムの全体機密保
護を弱めることの起り得ないようなキー管理システムを
提供することにある。本発明の概要 上記その他の目的、特徴および効果はこゝに開示する本
発明により達成される。本発明は暗号装置のネットワー
クにおいて、ある装置から他の装置に機密または公用キ
ーをポートする代替手段を提供する。本発明はまた暗号
装置のユーザが実際には暗号装置を使用していない間は
その機密キーをパージし、また実際に暗号装置を使用し
ている間は機密キーを再生成するための手段を提供す
る。これはユーザによりキー生成アルゴリズムに提供さ
れるパスフレーズから公用キーおよび私用キーペアを先
づ生成することにより達成される。その後同じキーペア
の再生成が必要になるたびに、ユーザは同じパスフレー
ズを入力し、それからキー生成アルゴリズムが同じ公用
キーおよび私用キーペアを導出する。かゝる手続きは暗
号能力を有するポータブルのプログラマブルコンピュー
タ(PC)を所有する単一ユーザにより用いられる。ユ
ーザが移動中はそのキーはシステムからパージされる。
ユーザが暗号システムを使用中は、そのキーは再生成さ
れる。パスフレーズも、例えば80文字以上と長いこと
がある点を除けば、考え方はパスワードと類似である。
パスフレーズはより多くの文字を含みうるので、パスワ
ードより多くの変異性を包含することができるが、ユー
ザがパスフレーズを記憶するのは容易である。
Another object of the present invention is that the public and private keys generated from the passphrase can be cryptographically separated from the public and private keys not generated from the passphrase, and thus from the passphrase. It is an object of the present invention to provide a key management system in which the generated public key and private key cannot weaken the overall security of a cryptographic system that uses both types of generated public key and private key. SUMMARY OF THE INVENTION The above and other objects, features and advantages are achieved by the present invention disclosed herein. The present invention provides an alternative means of porting a secret or public key from one device to another in a network of cryptographic devices. The present invention also provides a means for the user of the cryptographic device to purge its secret key while not actually using the cryptographic device, and to regenerate the secret key while actually using the cryptographic device. provide. This is accomplished by first generating the public and private key pairs from the passphrase provided by the user to the key generation algorithm. Each time thereafter the same key pair needs to be regenerated, the user enters the same passphrase, from which the key generation algorithm derives the same public and private keypair. Such a procedure is used by a single user who owns a portable programmable computer (PC) with cryptographic capabilities. The key is purged from the system while the user is on the move.
The key is regenerated while the user is using the cryptosystem. The concept of the passphrase is similar to that of the password, except that the passphrase may be as long as 80 characters or more.
Although the passphrase can contain more characters, it can contain more variability than a password, but it is easy for the user to remember the passphrase.

【0017】図1は装置を使用中は公用キーおよび私用
キーを生成し、不使用中はそのキーをパージしている2
人のユーザi,jにより共有されている暗号システムA
のブロック図を示したものである。こゝで図1を参照
し、時刻t1に第1のユーザ(ユーザi)は自己のパス
フレーズを入力しキー生成機能を呼び出すことにより自
身の公用キーおよび私用キーPUi,PRiが暗号シス
テムAに再生成されるようにする。時刻t0から時刻t
1まで、ユーザiは暗号キーを実際に使用する。時刻t
1にユーザiはキーパージ機能を呼び出して、公用キー
および私用キーPUi,PR1をパージする。時刻t2
に、第2のユーザ(ユーザj)が自己のパスワードを入
力しキー生成機能を呼び出すことにより、彼の公用キー
および私用キーPUj,PRjが暗号システムAに再生
成されるようにする。時刻t2から時刻t3まで、ユー
ザjは実際に自己の暗号キーを使用する。時刻t3に、
ユーザjはキーパージ機能を呼び出して自己の公用キー
および私用キーPUj,PRjをパージする。こゝで述
べるキーパージ機能は公用キーおよび私用キーの両方と
もパージしている。現実には、私用キーのみをパージす
ることで充分であろう。
FIG. 1 generates a public and private key when the device is in use and purges the key when not in use 2
Cryptographic system A shared by two users i, j
2 is a block diagram of FIG. Here, referring to FIG. 1, at time t1, the first user (user i) inputs his own passphrase and calls the key generation function so that his public key and private keys PUi, PRi are encrypted system A. To be regenerated. From time t0 to time t
Up to 1, user i actually uses the encryption key. Time t
1, the user i calls the key purge function to purge the public key and the private keys PUi, PR1. Time t2
Then, the second user (user j) inputs his own password and calls the key generation function, so that his public key and private keys PUj, PRj are regenerated in the cryptosystem A. From time t2 to time t3, the user j actually uses his own encryption key. At time t3,
User j calls the key purge function to purge his public key and private keys PUj, PRj. The key purging function described here is purging both public and private keys. In reality, purging only private keys may be sufficient.

【0018】図2は単一ユーザiがある装置使用を望む
ときは自己の公用キーおよび私用キーペアを生成し、そ
の装置使用を終了すると自己のキーをパージする単一ユ
ーザiにより共用される暗号システムAおよびBのブロ
ック図による説明である。こゝで図2を参照し、時刻t
0に、ユーザiは自己のパスフレーズを入力しキー生成
機能を呼び出すことにより、自己の公用キーおよび私用
キーPUi,PRiが暗号システムAに再生成されるよ
うにする。時刻t0から時刻t1まで、ユーザiは実際
に暗号キーを使用する。時刻t1に、ユーザiはキーパ
ージ機能を呼び出すことにより、彼の公用キーおよび私
用キーPUi,PRiをパージする。時刻t1から時刻
t2まで、ユーザは暗号システムAから暗号システムB
に移動する。時刻t2に、ユーザiは自己のパスフレー
ズを入力し、キー生成機能を呼び出すことにより自己の
公用キーおよび私用キーPUi,RViが暗号システム
Bに再生成されるようにする。時刻t2から時刻t3ま
では、ユーザiは暗号キーを実際に使用する。時刻t3
に、ユーザiはキーパージ機能を呼び出すことにより公
用キーおよび私用キーPUi,RViをパージする。
FIG. 2 is shared by a single user i who generates his public and private key pair when a single user i wants to use a device and purges his key when he finishes using the device. 3 is a block diagram of cryptographic systems A and B. FIG. Referring now to FIG. 2, time t
At 0, user i inputs his passphrase and calls the key generation function so that his public key and private keys PUi, PRi are regenerated in the cryptosystem A. From time t0 to time t1, user i actually uses the encryption key. At time t1, user i purges his public and private keys PUi, PRi by invoking the key purge function. From time t1 to time t2, the user is from cryptosystem A to cryptosystem B.
Move to. At time t2, the user i inputs his passphrase and calls the key generation function so that his public key and private keys PUi, RVi are regenerated in the cryptosystem B. From time t2 to time t3, the user i actually uses the encryption key. Time t3
Then, the user i purges the public key and the private keys PUi, RVi by calling the key purge function.

【0019】パスフレーズは自然言語例えば英語からと
ったワードまたはフレーズからなる。「時は風の如く、
果実はバナナの如く飛ぶ」、「心配するな、悪いことな
ど起らない」、「父は弟に犬を買ってやった、弟はまだ
子供だから」といったのがパスフレーズの例(必ずしも
良い例ではないが)である。
A passphrase consists of words or phrases taken in natural language, for example English. "Time is like the wind,
Examples of passphrases are "fruits fly like bananas", "Don't worry, nothing bad happens", "My father bought a dog for my brother, and my brother is still a child." But not).

【0020】パスフレーズは意味をもったワードの列で
あるから、たとえパスフレーズが(空白を含み)80文
字以上を含んでいたとしても、ユーザがそのパスフレー
ズで記憶し思い出すことが出来る。こういう訳で、パス
フレーズ組合せの数は容易に2の128べき乗(すなわ
ち倍長DEAキーの組合せ数以上)を越えることができ
る。ユーザにはパスフレーズを作るための命令の集合ま
たはガイドラインも同時に提供する。これによりユーザ
が不注意により敵が容易に推測できるようなパスフレー
ズを使用することがないようにする。例えば「メアリー
は小羊をもっていて…」といったパスフレーズは長くて
も、最初の2ワードを知られると、残りは分ってしま
う。「ドナルドダック,ジャックベニィ,アルフレッド
大王がゴルフボールを食べながらチェスをした」といっ
たパスフレーズは敵が推測できないことは、これを読め
ば容易に理解できる。キー生成中、キーを生成する過程
でキー生成アルゴリズムが用いる所要の乱数を生成する
シード値として、パスフレーズが用いられる。パスフレ
ーズから生成する乱数以外には、いかなる乱数をもキー
生成アルゴリズムは使用しない。生成された公用キーお
よび私用キーペア(PU,PR)はパスフレーズのみに
依存するので同じキー生成アルゴリズムを実行する暗号
装置ネットワークの中ならばどの暗号装置でも(PU,
PR)を再生成できる。ネットワークが単一の販売会社
から購入した暗号装置から成立している場合、またはキ
ー生成の方法が標準化されており、違う販売会社から入
手する数種の製品に実行されている場合がこういった場
合である。
Since the passphrase is a sequence of meaningful words, the user can remember and remember the passphrase, even if the passphrase contains more than 80 characters (including spaces). For this reason, the number of passphrase combinations can easily exceed 2 to the power of 128 (ie, greater than or equal to the number of double DEA key combinations). The user is also provided with a set of instructions or guidelines for creating the passphrase. This prevents the user from inadvertently using a passphrase that an enemy can easily guess. For example, even if the passphrase "Mary has a lamb ..." is long, if the first two words are known, the rest will be known. It is easy to understand that the enemy cannot guess passphrases such as "Donald Duck, Jack Benney, and Alfred the Great playing chess while eating a golf ball." During key generation, a passphrase is used as a seed value for generating a required random number used by the key generation algorithm in the process of generating a key. The key generation algorithm does not use any random number other than the one generated from the passphrase. Since the generated public key and private key pair (PU, PR) depend only on the passphrase, any cryptographic device in the cryptographic device network that executes the same key generation algorithm (PU, PR,
PR) can be regenerated. This may be the case if the network is made up of cryptographic equipment purchased from a single vendor, or if the key generation methods are standardized and run on several products from different vendors. This is the case.

【0021】[0021]

【実施例】暗号システムのユーザが与える文字列からキ
ーを生成するという概念はIBM社情報保護システム
(IPS)で実行してきたものであって、VM/CMS
ユーザガイド,Order No.SH20−262
1,IBM Corporation(1982年8
月)の情報保護システム暗号プログラムを参照された
い。この情報保護システムは、データファイルを暗号化
したり解読したりするのに用いるキーを暗号システムの
ユーザが制御,管理するという概念に基いて設計された
ファイル保護システムである。システム自身のキーは一
切ない。データの暗号化または解読が必要となった時
に、ユーザが暗号システムにキーを規定してやらなけれ
ばならない。ユーザは16進数字キーまたは80文字ま
での文字列のいずれかを規定すればよい。文字列が入力
された場合は、IPSは次の方法により入力文字列を5
6ビットキーに「クランチ」(なすわちハッシュ)す
る。入力文字列は80文字の長さに空白つき右側に埋込
まれる。次に入力文字列は8文字のブロックに分割され
る。その結果の埋込データはその値がX「010101
0101010101」である一定キーおよびその値が
X「0000000000000000」である初期チ
ューニング値を用い、暗号化ブロック連鎖(CBC)モ
ードを用いてDEAで暗号される。最終64ビットブロ
ックの暗号文の右端56ビットが「クランチ」データキ
ー(パリティビットなし)として取り上げられる。
BEST MODE FOR CARRYING OUT THE INVENTION The concept of generating a key from a character string provided by a user of a cryptosystem has been implemented in the IBM Information Protection System (IPS).
User Guide, Order No. SH20-262
1, IBM Corporation (August 1982)
Please refer to the Information Protection System Cryptographic Program of (Mon). This information protection system is a file protection system designed based on the concept that a user of the encryption system controls and manages a key used for encrypting and decrypting a data file. There is no key for the system itself. When the data needs to be encrypted or decrypted, the user must provide the key to the cryptographic system. The user may specify either a hexadecimal digit key or a character string of up to 80 characters. When a character string is input, IPS sets the input character string to 5 by the following method.
Do a "crunch" (hash) on a 6-bit key. The input character string is padded on the right with blanks to a length of 80 characters. The input string is then divided into blocks of 8 characters. The value of the resulting embedded data is X "010101.
It is encrypted with DEA using the cipher block chaining (CBC) mode with a constant key of "0101010101" and an initial tuning value whose value is X "0000000000000000". The rightmost 56 bits of the ciphertext in the final 64-bit block are taken as the "crunch" data key (no parity bit).

【0022】情報保護システムにおける文字列からデー
タキーを作成する方法は公用キーおよび私用キーペアの
作成には拡張されない。公用キー生成アルゴリズムはよ
り複雑なためである。ユーザが与えるパスフレーズから
公用キーおよび私用キーペアを生成するためには、キー
生成アルゴリズム自体を修正し、動的にシードされる擬
似乱数発生器を使わなければならない。動的にシードさ
れる擬似乱数発生器は発生器への入力として規定される
シード値から擬似乱数を生成するアルゴリズム処理手順
である。かゝる擬似乱数発生器は暗号システムでの大抵
の乱数を生成するのには適していない。というのは乱数
発生器の呼出し者は、入力として規定されうるシード値
を手許に持っていないか、または持たないことがよくあ
るからである。従って実際には、たいていの暗号システ
ムでは動的にシードされる擬似乱数発生器を用いる便利
な方法はない。代りに、これらの暗号システムでは初期
にシードされる擬似乱数発生器または真の乱数を作成で
きる特殊ハードウェアを用いる。従って本発明の方法を
実行するのが有利と考えられる所では、暗号システムは
次の2つの乱数発生器を実行するのが必要であろう。
(1)は初期にシードされる擬似乱数発生器また真の乱
数のハードウェア発生器であり、(2)は動的にシード
される擬似乱数発生器である。更に公用キーおよび私用
キーが動的にシードされる擬似乱数発生器を利用して生
成されることを許すキー生成アルゴリズムの設計を採用
することが必要であろう。本発明のこれらの様子は以下
に詳述する。
The method of creating a data key from a character string in an information protection system does not extend to the creation of public and private key pairs. This is because the public key generation algorithm is more complicated. To generate public and private key pairs from a user-provided passphrase, the key generation algorithm itself must be modified and a dynamically seeded pseudo-random number generator must be used. A dynamically seeded pseudorandom number generator is an algorithmic procedure that generates a pseudorandom number from a seed value defined as an input to the generator. Such pseudo-random number generators are not suitable for generating most random numbers in cryptosystems. This is because the caller of the random number generator often does not have or does not have a seed value that can be defined as an input. Therefore, in practice, most cryptographic systems have no convenient way to use a dynamically seeded pseudo-random number generator. Instead, these cryptographic systems use an initially seeded pseudo-random number generator or special hardware that can generate true random numbers. Wherever it would be advantageous to implement the method of the present invention, a cryptographic system would need to implement the following two random number generators:
(1) is an initially seeded pseudo random number generator or a true random number hardware generator, and (2) is a dynamically seeded pseudo random number generator. It would also be necessary to employ a key generation algorithm design that allows public and private keys to be generated utilizing a dynamically seeded pseudo-random number generator. These aspects of the invention are described in detail below.

【0023】前に引用したUSP4,736,423
「RSA暗号変数記憶装置」は56ビットの機密値Xか
ら50ビットの非機密値Yを計算する方法を述べてお
り、400ビットモジューラスおよび400ビット指数
を有する公用キーおよび私用キーを再生成するのにその
後いつでも使用できる。これ以上大きな指数およびモジ
ューラス長に対しては、yの長さはXが56ビット一定
に留っている間はほんの少し増加する。機密キー値Xは
キー生成アルゴリズムへの入力として与えられ、公用キ
ーおよび私用キーPU,PRの計算に加え、yの50ビ
ット値をも計算する。値yがPU,PRを生成するのに
始めにかゝった時間に比べ、値yがXと共に公用キーお
よび私用RSAキーPU,PRを非常に迅速に再生成で
きるという点で、値yは特別である。この手法は一方で
はPU,PR(すなわち全指数とモジュラス)を記憶
し、他方では必要になるたびにPU,PRを再生成する
という両者間の妥協である。USP4,736,423
の手法はキーを再生成する短い計算ステップを必要とす
る代りに記憶しなければならないビット数を減らしてい
る。本発明では、公用キーおよび私用キーをユーザが記
憶しているパスフレーズから全部生成する。USP4,
736,423の方法が、入力パスフレーズをハッシュ
することにより理論上は得られる56ビットの独立変数
Xを利用しているのと対照に、数値Yは50ビットの従
属変数である。すなわち公用キーおよび私用キーをポー
トするためには、ユーザは従属変数yをポートし、また
暗号システムが公用および私用キーペアを再生成するよ
うに独立変数Xと共にそれを入力しなければならない。
USP4,736,423は本発明の利点の一部は有し
ているが、本発明ではパスフレーズ以外の追加情報とは
独立に、キーをある装置から別の装置に移送することが
可能である。従って、本発明ではUPS4,736,4
23の方法では達成できないキーポートの形式が可能に
なる。
USP 4,736,423 cited above
"RSA Cryptographic Variable Storage" describes a method for computing a 50-bit non-secret value Y from a 56-bit secret value X to regenerate public and private keys with a 400-bit modulus and a 400-bit exponent. You can always use it to do so. For larger exponents and modulus lengths, the length of y increases only slightly while X remains constant at 56 bits. The secret key value X is given as an input to the key generation algorithm and, in addition to calculating the public and private keys PU, PR, also calculates the 50-bit value of y. The value y can be regenerated very quickly with X as well as the public and private RSA keys PU, PR compared to the time it took initially to generate PU, PR. Is special. This approach is a compromise between the two: storing the PU, PR (ie the total exponent and the modulus) on the one hand and regenerating the PU, PR on the other hand each time they are needed. USP 4,736,423
The technique reduces the number of bits that must be stored instead of requiring a short computational step to regenerate the key. In the present invention, the public key and the private key are all generated from the passphrase stored by the user. USP4
The number Y is a 50-bit dependent variable, as opposed to the method of 736,423, which utilizes a 56-bit independent variable X that is theoretically obtained by hashing the input passphrase. That is, in order to port the public and private keys, the user must port the dependent variable y and also enter it with the independent variable X so that the cryptosystem regenerates the public and private key pairs.
Although USP 4,736,423 has some of the advantages of the present invention, the present invention allows keys to be transported from one device to another independently of additional information other than passphrases. .. Therefore, according to the present invention, UPS 4,736,4
It enables a form of keyport that cannot be achieved by the method of 23.

【0024】こゝで開示する本発明の環境説明として、
図3は通信ネットワーク10を示すネットワークブロッ
ク図であり、これにデータ処理装置20、データ処理装
置20′、データ処理装置20″を含む多数のデータ処
理装置が接続されている。また図3に示すように、各デ
ータ処理装置には暗号システムも含まれる。データ処理
装置20は暗号システム22を含み、データ処理装置2
0′は暗号システム22′を含み、データ処理装置2
0″は暗号システム22″を含む。アプリケーションデ
ータの暗号化、解読、認証や暗号キーの生成、導入等に
対する暗号サービスへのアクセスを要する複数のアプリ
ケーションの処理手順を、各データ処理装置がサポート
する。暗号サービスは各暗号システムの安全な暗号化機
構により与えられる。データ処理装置が暗号化したデー
タおよびキーを送受信する手段をネットワークが提供す
る。各種のプロトコル、すなわち書式と手順規則が通信
用データ処理装置間の相互使用性を確保するためその間
の暗号量の交換を支配する。
As an explanation of the environment of the present invention disclosed here,
3 is a network block diagram showing the communication network 10, to which a large number of data processing devices including a data processing device 20, a data processing device 20 ', and a data processing device 20 "are connected. Thus, each data processing device also includes a cryptographic system, the data processing device 20 including a cryptographic system 22.
Reference numeral 0'includes a cryptographic system 22 ', and the data processing device 2
0 ″ includes the cryptographic system 22 ″. Each data processing device supports a processing procedure of a plurality of applications which requires access to a cryptographic service for encryption, decryption, authentication, generation of an encryption key, introduction, etc. of application data. Cryptographic services are provided by the secure cryptographic mechanism of each cryptographic system. The network provides a means for sending and receiving data and keys encrypted by the data processing device. Various protocols, that is, formats and procedural rules, govern the exchange of cryptographic amounts between communication data processing devices to ensure interoperability.

【0025】図4はこゝで開示する発明の暗号システム
22を示す。暗号システム22において、暗号化機構
(CF)30は物理的インタフェースからの入力37を
有している。暗号化機構アクセスプログラム(CFA
P)34がインタフェース31により暗号化機構30に
結合される。暗号キーデータセット(CKDS)32は
インタフェース33により暗号化機構アクセスプログラ
ム34に接続される。アプリケーションプログラム(A
PPL)36はアンタフェース35により暗号化機構ア
クセスプログラム34に接続される。
FIG. 4 illustrates a cryptographic system 22 of the invention disclosed herein. In the cryptographic system 22, the cryptographic mechanism (CF) 30 has an input 37 from a physical interface. Cryptographic mechanism access program (CFA
P) 34 is coupled to the encryption mechanism 30 by the interface 31. The encryption key data set (CKDS) 32 is connected to the encryption mechanism access program 34 by the interface 33. Application program (A
The PPL) 36 is connected to the encryption mechanism access program 34 by the interface 35.

【0026】典型的な暗号サービス要求はインタフェー
ス35にあるCFAP34への機能呼出しを通じAPP
L36により開始する。サービス要求にはキーとデータ
パラメータならびにインタフェース33のCKD32か
ら暗号化したキーにCFAP34がアクセスするのに用
いるキー識別子を含んでいる。CFAP34はインタフ
ェース31のCF30に複数の暗号アクセス命令を発行
することによりサービス要求を処理する。CF30には
CF30への暗号変数の直接入力のためのオプションの
物理的インタフェース37を有することもできる。CF
30によりCFAP34にリターンされる出力パラメー
タのセットを作成するために、CF31に呼出される各
暗号アクセス命令にはCF30により処理される入力パ
ラメータのセットを有する。交替で、CFAP34がA
PPL36に出力パラメータをリターンすることも出来
る。CFAP34は以後の呼出し命令に出力パラメータ
および入力パラメータを使用することも可能である。も
し出力パラメータが暗号化されたキーを含むならば、そ
の時はCFAP34は、多くの場合これら暗号化された
キーをCKDS32に記憶することがある。
A typical cryptographic service request is an APP through a function call to CFAP 34 at interface 35.
Start with L36. The service request includes the key and data parameter, and the key identifier used by the CFAP 34 to access the encrypted key from the CKD 32 of the interface 33. The CFAP 34 processes the service request by issuing a plurality of cryptographic access commands to the CF 30 of the interface 31. The CF 30 may also have an optional physical interface 37 for direct entry of cryptographic variables into the CF 30. CF
Each cryptographic access instruction called by CF 31 has a set of input parameters processed by CF 30 to create a set of output parameters returned by 30 to CFAP 34. CFAP34 is replaced by A
Output parameters can also be returned to PPL 36. The CFAP 34 can also use output and input parameters in subsequent call instructions. If the output parameters include encrypted keys, then CFAP 34 may often store these encrypted keys in CKDS 32.

【0027】図5はこゝで開示する本発明の暗号化機構
30を説明する。暗号化機構30は機密保護範囲140
内で保全される。暗号化機構30には命令処理装置14
2を含み、これに実行コードとして具体化した暗号アル
ゴリズム144が結合している。暗号化機構環境記憶装
置146は命令処理装置142に結合されている。図に
示すように物理的インタフェースはライン37を通して
CF環境記憶装置146に結合できる。命令処理装置1
42はインタフェース31により暗号化機構アクセスプ
ログラム(CFAP)34に結合される。
FIG. 5 illustrates the inventive encryption mechanism 30 disclosed herein. The encryption mechanism 30 has a security range 140.
Be protected within. The encryption mechanism 30 includes an instruction processing device 14
2 is included, and the cryptographic algorithm 144 embodied as the execution code is coupled to this. Cryptographic environment storage 146 is coupled to instruction processor 142. The physical interface may be coupled to CF environment storage 146 via line 37 as shown. Instruction processing device 1
42 is coupled to the cryptographic mechanism access program (CFAP) 34 by the interface 31.

【0028】命令処理装置142はインタフェース31
でCFAPアクセス命令により呼出された暗号マイクロ
命令を実行する機能素子である。各アクセス命令に対
し、インタフェース31は実行用特別マイクロ命令の選
択に用いる命令ニーモニックまたは演算コードを先づ定
義する。第2に入力パラメータのセットがCFAP34
からCF30にパスされる。第3に出力パラメータのセ
ットがCF30によりCFAP34にリターンされる。
命令処理装置142は暗号マイクロ命令記憶装置144
に記憶されたマイクロ命令として具象化された暗号処理
ステップの命令の特定順序を実施することにより選択さ
れた命令を実行する。制御流れおよび暗号処理ステップ
のそれに続く出力は入力パラメータの値とCF環境記憶
装置146の内容により決る。CF環境記憶装置146
は例えば、キー,フラグ,カウンタ,CFコンフイギュ
レーションデータ等のCF30内に収集的に記憶される
暗号変数のセットからなる。記憶装置146のCF環境
変数はインタフェース31を通して初期化されるが、そ
れは入力パラメータを読みとり、CF環境記憶装置14
6にロードする、あるCFマイクロ命令の実行による。
代りに、初期化はオプションの物理的インタフェースを
通して行うこともできるが、これは暗号変数を例えば付
属キー入力装置を通す等、直接にCF環境記憶装置にロ
ードすることができる。
The instruction processing unit 142 has an interface 31.
Is a functional element that executes the cryptographic microinstruction called by the CFAP access instruction. For each access instruction, the interface 31 first defines an instruction mnemonic or operation code used to select a special micro instruction for execution. Second, the set of input parameters is CFAP34
To CF30. Third, the set of output parameters is returned by CF 30 to CFAP 34.
The instruction processing unit 142 is a cryptographic micro instruction storage unit 144.
Execute the selected instruction by implementing the specified order of instructions of the cryptographic processing step embodied as microinstructions stored in. The control flow and the subsequent output of the cryptographic processing step are determined by the values of the input parameters and the contents of the CF environment storage 146. CF environment storage device 146
Is, for example, a set of cryptographic variables that are collectively stored in the CF 30, such as keys, flags, counters, CF configuration data, and the like. The CF environment variables in the storage device 146 are initialized through the interface 31, which reads the input parameters and uses the CF environment storage device 14
By the execution of some CF microinstruction, which loads 6
Alternatively, initialization can be done through an optional physical interface, which can load the cryptographic variables directly into the CF environment storage, such as through an attached key input device.

【0029】暗号化機構機密保護範囲140の物理的実
施例では次の物理的安全保護の特徴を備えている。物理
的実施例は暗号化機構30へのアクセスを制限したイン
サイダアドバーサリによるプロービングに抵抗する。術
語「制限した」というのは日,週でなく分,時間単位で
測定される。アドバーサリ(敵)とは、高度の電子,機
械設備を用いてアドバーサリの管理区域で発射される試
験的攻撃と違い、制限された電子装置を用いてカストマ
ーの場所でのプロービング攻撃に限定される。物理的実
施例はまた各種の電気機械式検知装置を用いて物理的プ
ロービングまたはイントルージョンでの試みも検出す
る。またこの暗号化機構30の物理的実施例ではすべて
の内部に記憶された機密暗号変数のゼロ化を規定してい
る。試みのブロービングまたはイントルージョンが検知
されることがあると、自動的にこのゼロ化が行われる。
物理的実施例はまた内部に記憶されている機密暗号変数
のゼロ化に対する手動機能も備えている。前に引用した
Abraham等の特許出願を参照すると、如何にして
こういった物理的機密保護の特徴を実行できるかの例が
示されている。
The physical embodiment of the cryptographic mechanism security scope 140 has the following physical security features: The physical embodiment resists probing by insider advisory with limited access to the cryptographic mechanism 30. The term "restricted" is measured in minutes and hours rather than days, weeks. An adversary (enemy) is limited to a probing attack at a customer's location with limited electronic equipment, unlike a pilot attack that is launched in the controlled area of the adversary using sophisticated electronic and mechanical equipment. The physical embodiment also uses various electromechanical sensing devices to detect physical probing or intrusion attempts. The physical embodiment of the encryption mechanism 30 also provides for zeroing of all internally stored secret cryptographic variables. This zeroing is done automatically if attempted brobbing or intrusion may be detected.
The physical embodiment also provides a manual function for zeroing internally stored secret cryptographic variables. Reference is made to the above-cited Abraham et al. Patent application for examples of how these physical security features can be implemented.

【0030】キー生成プロセス:図6はこゝで開示する
本発明の暗号化機構30に含まれる暗号アルゴリズム1
44を説明するブロック図である。図6を参照し、暗号
アルゴリズム144には暗号化および解読演算を行う暗
号アルゴリズム150、キー作成用にキー生成アルゴリ
ズム(KGA)151および乱数作成用に乱数生成アル
ゴリズム152が含まれる。当面は乱数と擬似乱数とを
区別しないこととする。すなわち乱数生成アルゴリズム
152は真の乱数発生器でも、または擬似乱数を作成す
るアルゴリズムであってもよい。乱数発生器と擬似乱数
発生器については以下に論ずる。暗号アルゴリズム15
0はデータ暗号化アルゴリズム(米国標準規格X3.9
2−1981,データ暗号化アルゴリズム,米国規格協
会,NewYork(1981年12月31日))等の
対称アルゴリズムであってもよく、RSAアルゴリズム
のような非対称、または公用キー、アルゴリズムであっ
てもよい。公用キーアルゴリズムに対し、暗号化と解読
との数学的演算間に差があってもなくてもよい。例えば
RSAアルゴリズムでは暗号化も解読も共にべき乗演算
モジュロとして実行される。暗号アルゴリズム150に
はインタフェース153を通し命令処理装置142がア
クセスし、このインタフェース153が命令処理装置1
42に暗号化および解読の基本演算を行わせている。イ
ンタフェース153は同時にキー,データ,その他の暗
号変数が暗号アルゴリズム150と命令処理装置142
との間を通るようにしている。同様の方法で、キー生成
アルゴリズム151には命令処理装置142がインタフ
ェース154を通してアクセスし、インタフェース15
4は命令処理装置142にキー作成を要求させる。イン
タフェース154は同時にキー,データ,その他の暗号
変数が2つの各構成品間にパスされるようにする。キー
生成アルゴリズムはまた乱数生成アルゴリズムにインタ
フェース155を通してアクセスされる。これによりキ
ー生成アルゴリズム151は、キー生成プロセスに必要
な乱数生成アルゴリズム152からの乱数の要求,受理
を行なう。乱数生成アルゴリズム152はまた命令処理
装置142にインタフェース156を通してインタフェ
ースをとり、命令処理装置142にキー作成以外の暗号
化の目的に必要な乱数の作成を要求させる。
Key Generation Process: FIG. 6 shows the cryptographic algorithm 1 included in the encryption mechanism 30 of the present invention disclosed herein.
It is a block diagram explaining 44. Referring to FIG. 6, the cryptographic algorithm 144 includes a cryptographic algorithm 150 for performing encryption and decryption operations, a key generation algorithm (KGA) 151 for key generation, and a random number generation algorithm 152 for random number generation. For the time being, we will not distinguish between random numbers and pseudo-random numbers. That is, the random number generation algorithm 152 may be a true random number generator or an algorithm that creates a pseudo random number. Random number generators and pseudo-random number generators are discussed below. Cryptographic algorithm 15
0 is a data encryption algorithm (American standard X3.9
2-1981, data encryption algorithm, American National Standards Institute, New York (December 31, 1981)) or the like, asymmetrical such as RSA algorithm, or public key or algorithm. . For public key algorithms, there may or may not be a difference between the mathematical operations of encryption and decryption. For example, in the RSA algorithm, both encryption and decryption are executed as exponentiation modulo. The cryptographic algorithm 150 is accessed by the instruction processing device 142 through the interface 153, and this interface 153 is used by the instruction processing device 1
42 to perform the basic operations of encryption and decryption. At the same time, the interface 153 has keys, data, and other cryptographic variables as the cryptographic algorithm 150 and the instruction processing unit 142.
I am trying to pass between In a similar manner, the key generation algorithm 151 is accessed by the instruction processor 142 through the interface 154,
4 causes the instruction processing unit 142 to request key generation. Interface 154 allows keys, data, and other cryptographic variables to be simultaneously passed between each of the two components. The key generation algorithm is also accessed through the interface 155 to the random number generation algorithm. As a result, the key generation algorithm 151 requests and accepts a random number from the random number generation algorithm 152 necessary for the key generation process. The random number generation algorithm 152 also interfaces to the instruction processor 142 through the interface 156, causing the instruction processor 142 to request the generation of random numbers needed for cryptographic purposes other than key generation.

【0031】暗号アルゴリズム150がDEAのような
対称または公用キー暗号アルゴリズムである場合は、キ
ー生成アルゴリズム151によるキーの生成ステップは
単純である。一般に、nビットキー(仮にn=64とす
る)で生成するプロセスは次のステップから成る。64
ビット乱数RNが乱数生成アルゴリズム152から要求
される。ある場合には、RNは生成予定キーとして直接
とられてもよい。しかし多くの暗号システムでは、キー
生成には奇数パリティに対しキーの各バイトを調整する
ステップをも含んでいる。さらに他の場合では、キー値
がある知覚された望ましくない性質を有さない、例えば
キーが「実行時」あるいは「半実行時」DEAキーでな
いことを確めるため、キー生成アルゴリズムがキー値を
テストすることがある。「実行時」または「半実行時」
DEAキーの規格に関しては、MeyerおよびMat
yas共著、「暗号−コンピュータデータ保護の新次
元」John Wiley & Sons社、New
York,1982年を参照のこと。キーのパリティを
調節することは多くの暗号システムで共通の慣行である
が、大抵の場合、この追加テストは無視される。
When the cryptographic algorithm 150 is a symmetric or public key cryptographic algorithm such as DEA, the key generation step by the key generation algorithm 151 is simple. In general, the process of generating with an n-bit key (assuming n = 64) consists of the following steps. 64
A bit random number RN is requested from the random number generation algorithm 152. In some cases, the RN may be taken directly as the key to be generated. However, in many cryptographic systems, key generation also involves adjusting each byte of the key for odd parity. In still other cases, the key generation algorithm may use a key value to ensure that the key value does not have some perceived undesirable property, eg, that the key is not a "runtime" or "semi-runtime" DEA key. May be tested. "Runtime" or "Semi-runtime"
Regarding DEA key standard, Meyer and Mat
Co-authored by yas, "Cryptography-A New Dimension of Computer Data Protection", John Wiley & Sons, New
See York, 1982. Adjusting key parity is a common practice in many cryptosystems, but in most cases this additional test is ignored.

【0032】暗号アルゴリズム150がRSAアルゴリ
ズム等の対象または公用キー暗号アルゴリズムの場合、
キー生成アルゴリズム151でもってキーを生成するス
テップがより多く含まれる。公用キー暗号システムで
は、公用キーおよび私用キーペア(PU1,PR1),
(PU2,PR2)等は特殊キー生成アルゴリズム(K
GA)の助けをかりて作成される。KGAには、時には
KGAがその時キーの作成に用いる乱数の作成をKGA
が作成または要求するプロセスの組合せを含んでいる。
これら乱数はテストされ拒否されることがあり、他の乱
数がある数学特性が満足されるまで要求されテストされ
ることもある。さらに別の場合には、KGAがある乱
数、またはある数学的特性あるいは複数の特性に対しテ
ストされた後に受け付けた乱数値をとることがあり、こ
の乱数値からその後1個以上の他の値を導出するであろ
う。一般に、KGAはキーの作成においてある単数およ
び複数の乱数構成要素(すなわち乱数)を要求する。さ
もなければ、KGAが呼び出される度に同一の公用キー
および私用キーペアが生成される恐れがある。この様な
ことは勿論許容されることでなく可能なキーペアのスペ
ースから無作為に抽出され、または少く共無作為に抽出
されているように思われ、従って敵がKGAが作成した
キーペアを推測する手段がないことを保証するような公
用キーおよび私用キーペア(PU1,PR1),(PU
2,PR2)をKGAは作成しなければならない。上記
のように、キーの作成において乱数を利用することに加
え、KGAは数学的プロセスの使用を行い、このプロセ
スでは値は他の値(すなわち、構成的プロセスの使用)
から計算または導出され、試行錯誤のプロセスを用いて
値を計算する(すなわち、所要の値が見つかる迄試行値
をテストし拒否する)。好ましい実施例ではキー生成ア
ルゴリズム中で直接シード値を用いるよりも寧ろ擬似乱
数発生器を初期化するのにシード値を用いている。その
理由はシード値が必然的に、キー生成アルゴリズムがシ
ードにおけるより多くのランダムビットを必要とするで
あろうという非ゼロ確率が存在していることを意味する
特定有限長であるのに対し、擬似乱数発生器はキー生成
アルゴリズムが必要とするだけ、任意長の擬似乱数を生
成することが可能だからである。もしキー生成アルゴリ
ズムがシードよりも多くのランダムビットを要するよう
なことが起れば、シード値の直接再使用は許容されない
ことになるであろう。その理由は、キー生成アルゴリズ
ムはすべてのテスト基準を満足する出力への値を見出せ
ないことがあるので、計算を完了できないことがあるか
らである。動的にシードされる擬似乱数生成アルゴリズ
ムを使用すると擬似ビットの任意数の使用可能性を保証
することにより、この潜在的無限くり返しは避けられ
る。
When the cryptographic algorithm 150 is an object such as the RSA algorithm or a public key cryptographic algorithm,
More steps are included to generate a key with the key generation algorithm 151. In the public key cryptosystem, a public key and a private key pair (PU1, PR1),
(PU2, PR2) etc. are special key generation algorithms (K
Created with the help of GA). The KGA sometimes creates a random number that the KGA then uses to create the key.
Contains a combination of processes that are created or required by.
These random numbers may be tested and rejected, and other random numbers may be required and tested until certain mathematical properties are met. In yet another case, the KGA may take a random number, or a random value that is accepted after being tested against a mathematical property or properties, from which one or more other values may then be taken. Will derive. Generally, KGAs require some and more random components (ie, random numbers) in the creation of keys. Otherwise, the same public and private key pair could be generated each time the KGA is called. This seems to be randomly extracted from the space of possible keypairs, not of course allowed, or at least co-randomly, so the enemy guesses the keypairs created by KGA. Public key and private key pair (PU1, PR1), (PU
2, PR2) must be created by KGA. As mentioned above, in addition to utilizing random numbers in key generation, KGA makes use of mathematical processes, where values are other values (ie, use of constructive processes).
Calculated or derived from and calculate the value using a process of trial and error (ie test and reject trial values until the desired value is found). The preferred embodiment uses the seed value to initialize the pseudo-random number generator rather than using the seed value directly in the key generation algorithm. The reason is that the seed value necessarily has a certain finite length, which means that there is a non-zero probability that the key generation algorithm will need more random bits in the seed, whereas This is because the pseudo random number generator can generate pseudo random numbers of arbitrary length as much as the key generation algorithm requires. If it happens that the key generation algorithm requires more random bits than the seed, direct reuse of the seed value would not be allowed. The reason is that the key generation algorithm may not be able to find a value to the output that satisfies all the test criteria and may not be able to complete the calculation. This potential infinite repetition is avoided by guaranteeing the availability of any number of pseudo bits using a dynamically seeded pseudo random number generation algorithm.

【0033】図7は暗号アルゴリズム150がRSAア
ルゴリズムである時のキー生成アルゴリズム151を説
明する流れ図である。キー生成アルゴリズム151は公
用キーおよび私用キーペアPU=(e,n)およびPR
=(d,n)を作成する。こゝでe,dは公用および私
用指数(e,dはnより小の正の整数)と呼ばれ、nは
公用モジュラスである。従って2個組(d,n)におい
て、私用指数dのみが機密保護を必要とする。図7を参
照し、ステップ161でpの試行値が生成される。ステ
ップ162で、pの値が素数性に対しテストされる。素
数性テストの方法を以下に述べる。pが素数ならば、制
御はステップ163に進む。そうでなければ制御はステ
ップ161に戻る(すなわち新pが生成される)。ステ
ップ163でpが「強」素数であるかどうかを調べるテ
ストが行われる。「強」素数とは、選定したpが素数
p,qにモジュラスnを因数分解することにより暗号ア
ルゴリズムを「ブレーク」するための数学的解析を許可
しないことを保証する追加基準集合を満足する素数pを
表わす本手法での術語である。キー生成およびp,qが
暗号攻撃を妨げるのに充分強であることを保証するため
にp,qについて実施される追加テストの論議に対して
は、Rivest,R.L、Shamir,A.、Ad
leman,L.「デジタルシグニチャおよび公用キー
機密システムを得る方法」を参照のこと。ステップ16
3でpについて実施される追加テストには、p−1が大
素数因数p′を有することおよびp′−1が大素数因数
p″を有することのテストが含まれる。RSAキー生成
について述べている文献で示唆されるその他のテストと
してp+1が大素数因数を有することをテストするもの
もある。pが「強」素数ならば制御はステップ164に
進み、その他の時は制御はステップ161に戻る。(す
なわち新しいpが生成される)。ステップ164でqの
試行値が生成される。ステップ165ではpの値が素数
性についてテストされる。pが素数なら、制御はステッ
プ166に進み、その他の時はステップ164に戻る
(すなわち新しいqが生成される)。ステップ166で
qが「強」素数かどうかがテストされる。ステップ16
6でqに実施される追加テストにはq−1が大素数因数
q′を有することおよびq′−1が大素数因数q″を有
することのテストを含む。RSAキー生成を論ずる文献
が示唆する別のテストはq+1が大素数因数を有するこ
とをテストすることである。もしqが「強」素数なら
ば、制御はステップ167に進み、その他の時は制御は
ステップ164に戻る。(すなわち新しいqが生成され
る)。ステップ167で公用モジュラスnはpとqの乗
算積として形成される。ステップ168で、値rは(p
−1)と(q−1)の乗算積として構成される。ステッ
プ169で、キー生成アルゴリズムにより、公用指数e
が入力として与えられているかどうかが決定される。も
し入力として与えられるならば、その時には制御はステ
ップ172に進み、与えられた値eがステップ171で
テストされた条件を満たすと仮定される。別の実施例と
しては、制御がステップ171にフローすることがで
き、与えられた値eをキー生成アルゴリズム151によ
りチェックすることもできる。もし入力として与えられ
なければ、制御はステップ170に進み、ステップ17
0でeの試行値を生成する。ステップ171でeがrに
対し相対的に素であることを確認するためのテストを行
なう。これは容易に実行され、eとrの最大公約数(G
CD)が1であること、すなわちeとrが1以外の共通
因数を有しないことをチェックする。eとrが互いに相
対的に素であれば、その時は制御はステップ172に進
み、その他の時は制御はステップ170に戻る。(すな
わち新しいeが生成される。)ステップ172で、値d
はeとdとの積が1モジュロrと合同であるように計算
される。ステップ173でPU=(e,n)とPR=
(d,n)の計算値が出力としてリターンする。
FIG. 7 is a flowchart illustrating the key generation algorithm 151 when the cryptographic algorithm 150 is the RSA algorithm. The key generation algorithm 151 is a public key and private key pair PU = (e, n) and PR.
= (D, n) is created. Here, e and d are called public and private exponents (e and d are positive integers smaller than n), and n is a public modulus. Therefore, in the two-pack (d, n), only the private index d needs security. Referring to FIG. 7, a trial value of p is generated in step 161. At step 162, the value of p is tested for primality. The primality test method is described below. If p is a prime number, control proceeds to step 163. Otherwise control returns to step 161 (ie a new p is created). In step 163, a test is made to see if p is a "strong" prime number. A “strong” prime number is a prime number satisfying an additional criterion set that guarantees that the selected p does not allow mathematical analysis to “break” the cryptographic algorithm by factoring the modulus n into prime numbers p and q. This is a term used in this method to represent p. For a discussion of key generation and additional tests performed on p, q to ensure that p, q is strong enough to thwart cryptographic attacks, see Rivest, R. et al. L, Shamir, A .; , Ad
leman, L .; See "How to Obtain a Digital Signature and Public Key Sensitive System". Step 16
Additional tests performed on p at 3 include tests that p-1 has a large prime factor p'and p'-1 has a large prime factor p ". Another test suggested in the literature is that p + 1 has a large prime factor: if p is a "strong" prime, control proceeds to step 164, otherwise control returns to step 161. .. (Ie a new p is generated). At step 164, a trial value of q is generated. In step 165, the value of p is tested for primality. If p is a prime number, control proceeds to step 166, otherwise control is returned to step 164 (ie a new q is generated). Step 166 tests whether q is a "strong" prime number. Step 16
Additional tests performed on q at 6 include tests that q-1 has a large prime factor q'and q'-1 has a large prime factor q ". Suggestions from literature discussing RSA key generation. Another test to do is to test that q + 1 has a large prime factor, if q is a "strong" prime then control proceeds to step 167, otherwise control returns to step 164. (Ie a new q is generated). In step 167, the public modulus n is formed as the product of p and q. At step 168, the value r is (p
-1) and (q-1). In step 169, the public index e
Is determined as an input. If provided as an input, then control proceeds to step 172 where it is assumed that the given value e satisfies the conditions tested in step 171. As another example, control may flow to step 171 and the given value e may be checked by the key generation algorithm 151. If not provided as input, control proceeds to step 170 and step 17
Generate a trial value of e at 0. In step 171, a test is performed to confirm that e is relatively prime to r. This is easily done and the greatest common divisor of e and r (G
CD) is 1, that is, e and r do not have a common factor other than 1. If e and r are relatively prime to each other, then control proceeds to step 172, otherwise control returns to step 170. (Ie, a new e is generated). In step 172, the value d
Is calculated such that the product of e and d is congruent with 1 modulo r. In step 173, PU = (e, n) and PR =
The calculated value of (d, n) is returned as an output.

【0034】素数性に対し多数をテストする適切な手法
の1つに、R.Solovay,V.Strassen
が「素数性に関する高速モンテカルロテスト」SIAM
Journal on Computing,197
7年3月,ページ84,85で述べた有効な「蓋然論
(probabilistic )」アルゴリズムの使用がある。そこ
では乱数「a」を一様分布(1,2,…,X−1)から
とり、「a」の最大公約数およびXが1であるかどう
か、すなわちGCD(a,X)=1をチェックし、また
J(a,X)で表わす「a」とXのヤコビの記号がQモ
ジュロXに合同かどうか(ただしQは「a」の(X-1) /
2べき乗に等しい)をテストする。こゝで整数(a1,
a2,等)の集合(但し集合中の各「a」はXより小さ
い)を用いてXを素数性に関してテストする。図7に示
すように、RSAキーを生成する場合には値Xを値p,
qに置き換えることに注意する必要がある。このテスト
では、セット中の各「a」の値に対し、上記の両条件が
保持されることが必要である。従って集合中に両条件が
保持されない「a」があれば、Xは複素数であることが
分かる。その他の時はXは素数として受容される。この
手順は選択した数が素数であることを保証するのではな
く、素数性のテストに失敗しなかったことのみを保証し
ている。集合中の整数a(a1,a2等)の数が大きい
程、選択した数が素数である確率が大きい。たゞし勿論
集合中の各整数「a」に対し両条件が満足されているこ
とが仮定されている。2整数の最大公約数、2整数の最
小公倍数、2整数のヤコビの記号の計算法は技術上周知
である。
One suitable technique for testing large numbers for primality is described by R.M. Solovay, V .; Strassen
"Fast Monte Carlo test for primality" SIAM
Journal on Computing, 197
There is the use of the valid "probabilistic" algorithm described in March 1987, pages 84 and 85. There, the random number "a" is taken from the uniform distribution (1, 2, ..., X-1), and whether the greatest common divisor of "a" and X is 1, that is, GCD (a, X) = 1 Check whether the Jacobi symbol of "a" and X represented by J (a, X) is congruent with Q modulo X (where Q is (X-1) / of "a")
Equal to the power of 2). This is an integer (a1,
a, 2, etc., where each "a" in the set is less than X), tests X for primality. As shown in FIG. 7, when the RSA key is generated, the value X is set to the value p,
Note that we replace it with q. This test requires that both of the above conditions be held for each "a" value in the set. Therefore, if there is "a" in the set where both conditions are not held, it can be seen that X is a complex number. At other times, X is accepted as a prime number. This procedure does not guarantee that the selected number is prime, only that it has not failed the primality test. The larger the number of integers a (a1, a2, etc.) in the set, the greater the probability that the selected number is a prime number. However, it is, of course, assumed that both conditions are satisfied for each integer "a" in the set. The method of calculating the greatest common divisor of two integers, the least common multiple of two integers, and the Jacobian symbol of two integers is well known in the art.

【0035】適切な暗号保護を達成するRSAアルゴリ
ズムに対し、モジュラスnがほぼ512ビットと102
4ビット間の数であることが必要なことは当業者によく
知っている。前記のキー生成アルゴリズムでは、公用キ
ー指数eはキー生成アルゴリズムに規定することも、キ
ー生成アルゴリズムにより生成することも可能である。
eをキー生成アルゴリズムに規定する利点は小さな値
(例えばe=3)を規定できることである。公用キーで
暗号化する時はこれにより性能が向上する。私用指数d
は従属変数であり、導出されなければならない。従って
実用上は、dはモジュラスと同一サイズになる。この場
合モジュラスが512ビットなら、選択した指数eのビ
ット数により、公用キーPUは514ビット〜1024
ビットであり、他方私用キーPRは1024ビットであ
る。64ビットまたは128ビットのDEAキーと比べ
ると、RSAキーはかなり大きい。当業者には公用キー
アルゴリズムが可成り計算的に強力な手順であることも
認められる。単一の公用キーおよび私用キーペアを生成
するのに必要な時間で、数千、恐らく数百万ものDEA
キーを生成できる。固定ブロックサイズのDEAと違っ
て、RSAアルゴリズムは特定のブロックサイズを要し
ない。そのために選択したモジュラス長により、RSA
キー生成が比較的短かったりまたは比較的長いプロセス
であったりすることができる。キー生成アルゴリズム1
51が希望サイズ(すなわち規定ビット数)の公用キー
および私用キーを生成するためには、生成されたpとq
が共に掛け合わせると希望のサイズ、あるいはビット長
のモジュラスnを生ずるようにステップ161と164
とを設計する。p,qに関する追加テストを図7の流れ
図に追加でき、これによりISO Draft Int
ernal Standard 9796「メッセージ
回復を与えるデジタル署名計画」のような暗号規格中で
規定されることのある仕様に従って、キー生成を適合さ
せ得ることに当業者は理解するであろう。また図7に述
べたRSAキー生成アルゴリズムは、pとqの作成が単
に試行錯誤法ではなく、試行錯誤とその値を構成する方
法とを組合せるプロセスで行うならば、より効率が上る
ということを当業者は認めるであろう。pの生成、p−
1が大素数p′を有することのテスト、p′−1が大素
数p″を有することのテストの代りに、大素数p″を生
成することから開始することも出来る。この場合、少数
をp″に乗じ、1を加え、次にプライマリティのテスト
をすることによりp″から素数p′を見つける。この結
果得られたp′が素数でなければ、p″に別の少数を乗
ずる以外は同じプロセスを繰り返す。同じ手法でp′か
らpも見出すことができる。同様に、同じ手法を使って
q″からqを見出すことができる。
For the RSA algorithm to achieve proper cryptographic protection, the modulus n is approximately 512 bits and 102.
Those skilled in the art are familiar with the need to be a number between 4 bits. In the above key generation algorithm, the public key exponent e can be specified in the key generation algorithm or can be generated by the key generation algorithm.
The advantage of defining e in the key generation algorithm is that a small value (e = 3, for example) can be specified. This improves performance when encrypted with a public key. Private index d
Is the dependent variable and must be derived. Therefore, in practice, d has the same size as the modulus. In this case, if the modulus is 512 bits, the public key PU has 514 bits to 1024 bits depending on the number of bits of the selected exponent e.
Bits, while the private key PR is 1024 bits. RSA keys are much larger than 64-bit or 128-bit DEA keys. Those skilled in the art will also recognize that the public key algorithm is a fairly computationally powerful procedure. Thousands, and possibly millions of DEAs in the time needed to generate a single public and private key pair
Can generate keys. Unlike fixed block size DEA, the RSA algorithm does not require a specific block size. Depending on the modulus length selected for that, RSA
Key generation can be a relatively short or a relatively long process. Key generation algorithm 1
In order for 51 to generate a public key and a private key of a desired size (that is, a specified number of bits), the generated p and q are generated.
Are multiplied together to produce a modulus n of the desired size or bit length, steps 161 and 164
And to design. Additional tests for p, q can be added to the flow chart of FIG. 7, which allows ISO Draft Int
Those skilled in the art will appreciate that key generation may be adapted according to specifications that may be specified in cryptographic standards such as internal Standard 9796, "Digital Signature Scheme with Message Recovery." Further, the RSA key generation algorithm described in FIG. 7 is more efficient if the creation of p and q is not a trial-and-error method but a process of combining trial-and-error and a method of configuring the value thereof. Will be recognized by those skilled in the art. generation of p, p-
Instead of the test that 1 has a big prime p'and the test that p'-1 has a big prime p ", we can start by generating a big prime p". In this case, find the prime number p'from p "by multiplying p" by a small number, add one, and then test the primaryity. If the resulting p'is not a prime number, the same process is repeated, except that p "is multiplied by another decimal number. The same technique can be used to find p to p. Similarly, using the same technique, q You can find q from ″.

【0036】RSAキー生成には多くの変形がありうる
ことを当業者は認めるであろう。しかしどんな場合に
も、キー生成プロセスでは乱数が必要であり、この乱数
は乱数発生器または擬似乱数発生器を用いて作成するこ
とが出来る。図7に戻ると、ステップ161,164で
はp,qの試行値が無作為に生成される。一度生成され
ると最も重要性の少ない(低位または右端)ビットをB
「1」に等しく設定することができ、生成値が必ず整奇
数であることが確実となる。値2を除きすべての素数は
奇数であるから、これにより処理が速くなる。上述のよ
うにpとqをp″とq″とから生成する場合は、p″と
q″の試行値を無作為に生成する。公用指数eがキー生
成アルゴリズム151に入力として与えられていない時
には、eの試行値を無作為に生成する。このようにし
て、すべての場合に、RSAキー生成には乱数の作成と
使用の必要なことが分る。
Those skilled in the art will recognize that there can be many variations to RSA key generation. However, in any case, the key generation process requires a random number, which can be generated using a random number generator or a pseudo-random number generator. Returning to FIG. 7, trial values of p and q are randomly generated in steps 161 and 164. Once generated, the least significant (lowest or rightmost) bit is B
It can be set equal to "1", ensuring that the generated value is always an odd number. This speeds up processing because all prime numbers except the value 2 are odd. When p and q are generated from p ″ and q ″ as described above, the trial values of p ″ and q ″ are randomly generated. When the public index e is not given as an input to the key generation algorithm 151, a trial value of e is randomly generated. In this way it can be seen that in all cases RSA key generation requires the creation and use of random numbers.

【0037】乱数および擬似乱数:大抵の暗号システム
では乱数を作成、使用する手段が必要である。例えば、
DEAによる暗号化の暗号ブロック連鎖モードを使用す
る時など、乱数を初期化ベクトルまたは初期連鎖値とし
て使用する。例えば、DEAによる暗号化の暗号フィー
ドバックモードを使用する時などは、乱数を「シード」
値として使用する。多くの暗号ベース識別および認証プ
ロトコルでは乱数をその場限りに使用する。乱数作成能
力がないと、大抵の暗号システムは著しく制約を受ける
かまたは使いものにならないであろう。
Random Numbers and Pseudo Random Numbers: Most cryptographic systems require some means of creating and using random numbers. For example,
Random numbers are used as initialization vectors or initial chain values, such as when using the cipher block chaining mode of DEA encryption. For example, when using the encryption feedback mode of encryption by DEA, etc., a random number is “seed”.
Use as a value. Many crypto-based identification and authentication protocols use random numbers on an ad hoc basis. Without the ability to generate random numbers, most cryptographic systems would be severely constrained or unusable.

【0038】図8および図9に暗号システムで乱数を生
成するのによく用いられる2方法を示す。図8は「真」
乱数発生器180のブロック図である。「真」乱数発生
器180にはハードウェア回路181を含み、乱数を作
成する能力がある。かゝるハードウェア発生器で乱数を
作成する手段はよく知られており従来技術で実行できる
(前記USP4,905,176、R.Schulz
「乱数発生器回路」1990年2月27日発行を参
照)。乱数の要求はインタフェース182を通して入力
される。生成された乱数(RN1,RN2等)はインタ
フェース183を通し出力される。実際には生成された
乱数の長さはアルゴリズムの固定定数例えば64ビット
である。「真」乱数発生器はその出力値が予想不能であ
るという性質を有する。すなわち乱数発生器の出力を予
測するようなアルゴリズムを構成する筈はない。「真」
乱数発生器は初期化にシード値を必要とせず、従って発
生器の出力を繰り返させる方法は存在しない。この性質
が「真」乱数発生器を暗号システムでの実行を非常に望
ましいものにしている。しかし「真」乱数発生器のコス
トは擬似乱数発生器に比べて比較的高いため、大抵の商
用暗号システムは擬似乱数発生器を使用している。
FIGS. 8 and 9 show two methods commonly used to generate random numbers in cryptographic systems. Figure 8 is "true"
3 is a block diagram of a random number generator 180. FIG. The “true” random number generator 180 includes hardware circuitry 181 and is capable of generating random numbers. Means for generating random numbers with such a hardware generator are well known and can be implemented by conventional techniques (USP 4,905,176, R. Schulz, supra).
See "Random Number Generator Circuit," issued February 27, 1990). Requests for random numbers are input through interface 182. The generated random numbers (RN1, RN2, etc.) are output through the interface 183. Actually, the length of the generated random number is a fixed constant of the algorithm, for example, 64 bits. A "true" random number generator has the property that its output value is unpredictable. That is, there should be no algorithm that predicts the output of the random number generator. "true"
The random number generator does not require a seed value for initialization, so there is no way to repeat the output of the generator. This property makes "true" random number generators very desirable for implementation in cryptographic systems. However, the cost of "true" random number generators is relatively high compared to pseudo-random number generators, so most commercial cryptographic systems use pseudo-random number generators.

【0039】図9は初期にシードされる擬似乱数発生器
190のブロック図である。初期にシードされる擬似乱
数発生器190にはアルゴリズム191および乱数生成
にアルゴリズム191が使用するシード値記憶のための
シード記憶装置194を有する。(擬似乱数発生器によ
り作成された乱数は一見無作為に見えるだけであること
に注意を要する。より正確には、擬似乱数発生器により
作成される出力は擬似乱数と呼ぶべきである。しかし便
宜上これらも乱数と呼ぶことにする)。初期シード値は
インタフェース195を通し指定される。初期シード値
自体は暗号命令の1つを通し暗号機構にインタフェース
するユーティリティプログラムを通し暗号システムに入
力されるか、または入力されたパスワードあるいは物理
的なキー操作スイッチを用いて許可されたインストレー
ション要員のみが操作できる特殊前面パネルインタフェ
ースを通し入力される。キー生成に擬似乱数発生器を使
用する場合は、初期およびその後すべてのシード値は機
密にしておかなければならない。そうでなければ、擬似
乱数発生アルゴリズムは公用領域にあると考えられるか
ら、生成された乱数の機密度はシード値を秘密にしてお
くことに依存している。乱数を生成する時には、シード
値はアルゴリズム191の性質にもよるが、アルゴリズ
ム191により動的に更新されることがある。アルゴリ
ズム191にはまた、乱数作成中自動的に更新されるカ
ウンタ数またはシーケンス数の記憶装置のような、別個
の記憶装置を有するものがある。この場合には、シード
値は一定のまゝでカウンタ数またはシーケンス数のみが
更新される。カウンタ数またはシーケンス数を用いるケ
ースでは、シード記憶装置194にシード値がインタフ
ェース195を通して初期化される時に初期値がアルゴ
リズム191によりセットされる。乱数の要求はインタ
フェース192を通し入力される。生成された乱数(R
N1,RN2等)はインタフェース193を通し出力さ
れる。実際には生成された乱数の長さはある固定値、例
えば64ビットである。擬似乱数発生器はその出力が完
全に予想可能であるという性質を有す。擬似乱数発生器
の出力は一見無作為に見える数値の列(RN1,RN2
等)である。アルゴリズムがいわば「メモリ」を有して
いる理由のみで、RN2はRN1とは違っている。すな
わち、アルゴリズムは連続的に自身を更新しており、ア
ルゴリズムが呼び出される度に違った「出発」点から始
まる。しかし、もし同じアルゴリズム191の各場合が
同じシード値で初期化されたとしたら、各アルゴリズム
191により作成される乱数は完全に同一となろう。初
期シード値自体を無作為プロセスを通して選択すべきで
あるということが良い暗号実施法である。こうすると別
々の暗号装置で各々初期にシードされる擬似乱数発生器
190は異なる乱数を作成する。
FIG. 9 is a block diagram of an initially seeded pseudo random number generator 190. The seeded pseudo random number generator 190 has an algorithm 191 and a seed storage device 194 for storing a seed value used by the algorithm 191 for random number generation. (Note that the random numbers generated by the pseudo-random number generator only look random at first glance. To be more precise, the output generated by the pseudo-random number generator should be called pseudo-random numbers. We will also call these random numbers). The initial seed value is specified through interface 195. The initial seed value itself is entered into the cryptographic system through a utility program that interfaces with the cryptographic mechanism through one of the cryptographic instructions, or the installation personnel authorized using the entered password or physical key-operated switch. Input is through a special front panel interface that can only be operated. When using a pseudo-random number generator for key generation, all initial and subsequent seed values must be kept secret. Otherwise, the pseudo-random number generation algorithm is considered to be in the public domain, so the secrecy of the generated random numbers depends on keeping the seed value secret. When generating a random number, the seed value may be dynamically updated by the algorithm 191 depending on the nature of the algorithm 191. Some algorithms 191 also have separate storage, such as a counter or sequence number storage that is automatically updated during random number generation. In this case, the seed value is kept constant and only the counter number or the sequence number is updated. In the case of using a counter number or sequence number, an initial value is set by the algorithm 191 in the seed storage device 194 when the seed value is initialized through the interface 195. Random number requests are input through the interface 192. Generated random number (R
N1, RN2, etc.) are output through the interface 193. Actually, the length of the generated random number is a fixed value, for example, 64 bits. Pseudorandom number generators have the property that their outputs are completely predictable. The output of the pseudo-random number generator is a sequence of numerical values (RN1, RN2
Etc.). RN2 differs from RN1 only because the algorithm has a "memory", so to speak. That is, the algorithm is continuously updating itself, starting from different "starting" points each time the algorithm is invoked. However, if each case of the same algorithm 191 was initialized with the same seed value, the random numbers generated by each algorithm 191 would be exactly the same. It is a good cryptographic implementation that the initial seed value itself should be selected through a random process. In this way, the pseudo random number generators 190, which are initially seeded by different cryptographic devices, generate different random numbers.

【0040】図10は動的にシードされる擬似乱数発生
器200のブロック図である。動的にシードされる擬似
乱数発生器200は乱数発生用にアルゴリズム201を
有する。乱数の要求はインタフェース202を通し入力
される。生成された乱数(RN1,RN2等)はインタ
フェース203を通し出力される。インタフェース20
3で生成された乱数(RNと名付ける)の長さはインタ
フェース202における長さパラメタにより規定される
値に等しい。アルゴリズム201には内部に記憶された
シード値を有しない。その代り要求されるシード値はイ
ンタフェース202においてアルゴリズム201に指定
される。このシード値は呼出し者に見えなければならな
いが、それは同一シードを入力すれば同一出力が生ずる
ことを保証しながら他の呼出し者による要求のインタリ
ーブを行なえるからである。便宜上、長さ値が生成され
る乱数長を決める所では、アルゴリズム201では長さ
パラメタをインタフェース202で指定してよい。実際
上は、シードの長さは大抵はアルゴリズム201が予め
設定した固定定数である。動的にシードされる擬似乱数
発生器200の演算を説明するため次のことを仮定す
る。(1)パラメタ「長」はビットで指定され、(2)
パラメタ「シード」のビットでの長さは128であり、
Lは望ましい乱数(RNと称する)のビットでの長さで
ある。その場合パラメタ「長」で指定される値は128
+L、すなわち次期シードの長さプラス望ましい乱数の
長さで計算される。
FIG. 10 is a block diagram of a dynamically seeded pseudo random number generator 200. The dynamically seeded pseudo random number generator 200 has an algorithm 201 for random number generation. Random number requests are input through the interface 202. The generated random numbers (RN1, RN2, etc.) are output through the interface 203. Interface 20
The length of the random number (named RN) generated in 3 is equal to the value specified by the length parameter in the interface 202. Algorithm 201 does not have a seed value stored internally. Instead, the required seed value is specified to the algorithm 201 at the interface 202. This seed value must be visible to the caller, as it allows interleaving of requests by other callers while ensuring that the same seed will produce the same output. For convenience, the length parameter may be specified by the interface 202 in the algorithm 201 where the random number length from which the length value is generated is determined. In practice, the seed length is usually a fixed constant preset by algorithm 201. To illustrate the operation of the dynamically seeded pseudo random number generator 200, assume the following. (1) Parameter "length" is specified in bits, (2)
The bit length of the parameter "seed" is 128,
L is the length in bits of the desired random number (called RN). In that case, the value specified by the parameter "length" is 128.
+ L, that is, the length of the next seed plus the length of the desired random number.

【0041】別の実施例では、次期シードの作成を自動
的に行うと、従ってパラメタ「長」は望ましい乱数RN
の長さを指定することになる。その場合は、インタフェ
ース203では2つの出力、次のシードとRNがある。
いずれの実施例も作動する。最初の場合では、動的にシ
ードされる擬似乱数発生器200は次期シードを作成す
る方法については意識しない。次期シード値の作成、管
理は呼出し者の制御下にある。第2の場合では、動的に
シードされる擬似乱数発生器200は呼出し者に次期シ
ード値を計算して戻す責任がある。
In another embodiment, when the next seed is created automatically, the parameter "length" is therefore the desired random number RN.
Will specify the length of. In that case, there are two outputs at interface 203, the next seed and RN.
Either embodiment will work. In the first case, the dynamically seeded pseudo-random number generator 200 is unaware of how to create the next seed. Creation and management of the next seed value is under the control of the caller. In the second case, the dynamically seeded pseudo-random number generator 200 is responsible for calculating and returning the next seed value to the caller.

【0042】さらに別の代替実施例では、初期にシード
される擬似乱数発生器のアルゴリズムと動的にシードさ
れる擬似乱数発生器のアルゴリズムとが同じアルゴリズ
ムであり、アルゴリズムには同一の回路および/または
ルーチンを用いることができる。初期にシードされる発
生器は普通のユーザではアクセスできないシステム記憶
装置を用いていてシステムシード値を有し、これは初期
にシードされたアルゴリズムが呼出されると必要に応じ
て自動的に更新される。また動的にシードされる発生器
は呼出し者にそのシード値をパス(および維持)するよ
う要求する。上記方法に対し小修正や変化を加えた多く
の実施例が可能であり、この相異点は本発明に何等影響
しないことを関係者は認めるであろう。
In yet another alternative embodiment, the initially seeded pseudo-random number generator algorithm and the dynamically seeded pseudo-random number generator algorithm are the same algorithm, with the same circuitry and / or Alternatively, a routine can be used. The initially seeded generator uses a system storage that is not accessible to normal users and has a system seed value, which is automatically updated as needed when the initially seeded algorithm is called. It The dynamically seeded generator also requires the caller to pass (and maintain) its seed value. It will be appreciated by those skilled in the art that many embodiments with minor modifications and variations to the above method are possible and that this difference will not affect the invention in any way.

【0043】本発明では、公用キーおよび私用キーペア
(PU,PR)はユーガによる入力として機密パスフレ
ーズから生成されており、その実行のためにはキー生成
アルゴリズムが同じ順序の乱数を再生成するし、従って
同じパスフレーズがキー生成アルゴリズムに指定される
度に同じキーペア(PU,PR)を再生成することが出
来ることが極めて重要である。これと対照的に、暗号シ
ステムで乱数を要求する他の暗号アプリケーションは全
て、同じ順序の乱数を再生成する必要を有しない。実際
には、かゝる能力が暗号システムに存在するとキーが偶
然再生成されるような好ましくない状態に通ずる可能性
があると言われることもある。
In the present invention, the public key and private key pair (PU, PR) is generated from the secret passphrase as input by the user, and the key generation algorithm regenerates random numbers in the same order for its execution. Therefore, it is very important that the same key pair (PU, PR) can be regenerated each time the same passphrase is specified in the key generation algorithm. In contrast, all other cryptographic applications that require random numbers in a cryptographic system do not need to regenerate random numbers in the same order. In practice, it is sometimes said that the presence of such a capability in a cryptographic system could lead to the undesirable situation of keys being accidentally regenerated.

【0044】図8、および9に示す方法によりキー生成
アルゴリズムが要求する乱数を作成する場合には、再生
成従ってパスフレーズから公用キーおよび私用キーペア
(PU,PR)を生成することは不可能である。図8の
「真」乱数発生器180は、キーペア(PU,PR)を
満足に再生成するために必要となる同一順序の乱数を再
生成させる方法がないので、使用することが出来ない。
同様に、図9の初期にシードされる擬似乱数発生器19
0も、同一順序の乱数を再生成せしめる方法を有しない
ので使用出来ない。実際には、暗号システムに電源が入
りラインにつながった時、または時には装置の電源が切
れていた期間の後で一度だけかゝる擬似乱数発生器が通
常初期化される。その後は単に乱数を要求するだけでよ
い。すなわち動的にシード値を再指定する用意はない。
多くの場合呼出し者は手許にシード値を有さないので、
擬似乱数発生器の各呼出し者に彼自身の「シード」値の
入力を要求するよりも、むしろ一度だけ擬似乱数発生器
に「シード」する業務を行うのが最も良い。事実多くの
システムユーザが使用すると考えられるこの形式の擬似
乱数発生器に、通常のユーザがシード値を指定できない
ということは機密保持の観点から重要である。
When the random number required by the key generation algorithm is generated by the method shown in FIGS. 8 and 9, it is impossible to generate a public key and a private key pair (PU, PR) from the passphrase and therefore the passphrase. Is. The “true” random number generator 180 of FIG. 8 cannot be used because there is no way to regenerate the same order of random numbers needed to satisfactorily regenerate the key pair (PU, PR).
Similarly, the seeded pseudo-random number generator 19 of FIG.
0 cannot be used because it does not have a method of regenerating random numbers in the same order. In practice, a pseudo-random number generator is usually initialized only once when the cryptosystem is powered up and connected to the line, or sometimes after a period of device power down. After that, simply request a random number. That is, there is no provision for dynamically respecifying the seed value.
In most cases the caller has no seed value in hand, so
It is best to perform the task of "seeding" the pseudo-random number generator only once, rather than requiring each caller of the pseudo-random number generator to enter his own "seed" value. In fact, it is important from a security point of view that ordinary users cannot specify a seed value for this type of pseudo-random number generator which is considered to be used by many system users.

【0045】以上の説明から図10に図示する動的にシ
ードされる擬似乱数発生器は、本発明の要求を満足でき
るが、大抵の暗号システムにおいては乱数作成の一般要
求を満たさないことは明らかである。同様に前記の説明
から、図8に示す「真」乱数発生器および図9に示す初
期にシードされる擬似乱数発生器は大抵の暗号システム
における乱数作成の一般要求を満足できるが、キー生成
アルゴリズムがパスフレーズからキーを再生成しなけれ
ばならない時の乱数作成の要求を満足しない。従って、
本発明の好ましい実施例においては、図11に示すよう
に乱数生成用に2手段が必要とされる。図11を参照す
ると、図6で前に図示した暗号化機構の暗号アルゴリズ
ム144構成品は動的にシードされる擬似乱数発生器2
00およびキー生成アルゴリズム151と動的にシード
される擬似乱数発生器200間のインタフェース204
を含むように拡張されており、乱数要求によりリターン
すべき乱数を生成せしめる。図11の動的にシードされ
る擬似乱数発生器200は既に述べた図10の動的にシ
ードされる擬似乱数発生器200と同一に作動すると仮
定されている。すなわち、乱数要求には長さとシードの
指定を含む。出力は乱数である。キー生成アルゴリズム
151はシード値を管理すると仮定される。例えば第1
シードはこれから述べる方法を用いてパスフレーズから
計算する。キー生成アルゴリズム151が長さLの乱数
を要求する時はいつもL+128の「長さ」パラメタを
指定する。すなわち次期シードを自動的に要求し、キー
生成アルゴリズム151にアクセスできる次期シード格
納域に保管する(例えばキー生成アルゴリズム151内
に)。図11のキー生成アルゴリズムが図7のRSAキ
ー生成アルゴリズムそのものである場合には、図7のス
テップ161,164,170が図11のインタフェー
ス204での動的にシードされる擬似乱数発生器200
に向けられる乱数の要求になるであろう。従って図7の
ステップ161,164または170が繰返される度
に、新乱数が得られる。満足な値を見出すまでにどれだ
けの試行を必要とするかを予め知る方法はなく、プロセ
スは試行錯誤であるから、乱数の順序を予め計算出来ず
必要の都度試行を行う。
From the above description, it is clear that the dynamically seeded pseudo-random number generator shown in FIG. 10 can satisfy the requirements of the present invention, but in most cryptographic systems it does not satisfy the general requirements of random number generation. Is. Similarly, from the above discussion, the “true” random number generator shown in FIG. 8 and the initially seeded pseudo-random number generator shown in FIG. 9 can satisfy the general requirements of random number generation in most cryptosystems, but the key generation algorithm Does not meet the requirement for random number generation when he has to regenerate the key from the passphrase. Therefore,
In the preferred embodiment of the invention, two means are required for random number generation as shown in FIG. Referring to FIG. 11, the cryptographic algorithm 144 components of the cryptographic mechanism previously illustrated in FIG. 6 are dynamically seeded pseudo-random number generator 2
00 and the key generation algorithm 151 and the dynamically seeded pseudo-random number generator 200 interface 204
Has been extended to include a random number, and a random number to be returned can be generated by a random number request. The dynamically seeded pseudo-random number generator 200 of FIG. 11 is assumed to operate in the same manner as the previously described dynamically seeded pseudo-random number generator 200 of FIG. That is, the random number request includes the designation of the length and the seed. The output is a random number. The key generation algorithm 151 is assumed to manage the seed value. For example, the first
The seed is calculated from the passphrase using the method described below. Whenever the key generation algorithm 151 requires a random number of length L, it specifies a L + 128 "length" parameter. That is, the next seed is automatically requested and stored in the next seed storage area accessible to the key generation algorithm 151 (for example, in the key generation algorithm 151). If the key generation algorithm of FIG. 11 is the RSA key generation algorithm itself of FIG. 7, steps 161, 164, 170 of FIG. 7 are dynamically seeded pseudo-random number generator 200 at interface 204 of FIG.
Will be a request for random numbers directed at. Therefore, each time step 161, 164 or 170 of FIG. 7 is repeated, a new random number is obtained. There is no way to know in advance how many trials will be required to find a satisfactory value, and since the process is trial and error, the order of random numbers cannot be calculated in advance and trials are performed each time it is necessary.

【0046】図12は本発明の要求を満足する動的にシ
ードされる擬似乱数発生器の例である。アルゴリズムは
128ビットを要し、これを64ビットキーKと64ビ
ット初期連鎖値ICVとに分割する。シードの左側64
ビットがKになり、シードの右側64ビットがICVに
なる。mを発生する無作為ビットの数とすると、64n
にmより大の最小値を表わさせる。こゝでnはmビット
の擬似ランダムシーケンスを作成するのに充分の長さを
有する生成すべき暗号文の64ビットブロックの数を表
わす。暗号文を生成するのに、2進ゼロのn64ビット
ブロックでスタートし、DEA暗号化の暗号ブロック連
鎖モードを用いてDEAアルゴリズムで暗号化する。キ
ーと初期連鎖値は上記のKとICVそのものである。長
さmの出力乱数RNは結果の暗号文における左側(最も
重要な)mビットそのものである。
FIG. 12 is an example of a dynamically seeded pseudo random number generator that satisfies the requirements of the present invention. The algorithm requires 128 bits and divides this into a 64-bit key K and a 64-bit initial chain value ICV. Left side of seed 64
Bit becomes K and right 64 bits of seed becomes ICV. 64n, where m is the number of random bits generated
Let m represent a minimum value greater than m. Here, n represents the number of 64-bit blocks of ciphertext to be generated that are long enough to create an m-bit pseudo-random sequence. To generate the ciphertext, start with an n64 bit block of binary zeros and encrypt with the DEA algorithm using the cipher block chaining mode of DEA encryption. The key and the initial chain value are the above K and ICV itself. The output random number RN of length m is exactly the left (most important) m bits in the resulting ciphertext.

【0047】パスフレーズを使用するキー生成:図13
は暗号システムを図示しており、暗号化機構(CF)3
0、暗号キーデータセット(CKDS)32、暗号化機
構アクセスプログラム(CFAP)34およびアプリケ
ーションプログラム(APPL)36を有する。こゝで
図13を参照すると公用キーおよび私用キーペア(P
U,PR)を生成するステップをトレースできる。40
においてアプリケーションプログラムA(APPL
A)42がユーザにより呼び出される。APPLAは
(1)アプリケーションが処理とつながる以前にユーザ
が自分のキーを生成または再生成することを要求するア
プリケーションであるか、または(2)ユーザがそれら
のキーを生成または再生成することを許容するユーティ
ティであることを仮定している。APPL Aは、ユー
ザが41で入力するパスフレーズ(PPと称する)をユ
ーザに催促する。応答して、APPL Aは43でキー
生成機能47をコールする。43はCFAP34にあ
り、モードパラメータPPおよび制御情報をパスする。
制御情報は制御ベクトルまたは制御ベクトルをつくるの
に用いられる情報であってもよい。モードパラメータは
生成キーがパスフレーズベース(モード=「PP」)で
生成されるか、されないか(モード=「非PP」)いず
れをキー生成機能に指示する。従ってPPパラメータは
選択パラメータである。制御情報はキータイプ(すなわ
ち生成すべき公用キーおよび私用キーのタイプ)および
キー管理でのキーの使用法を示す取扱い制御情報であ
る。応答して、キー生成機能47は(1)入力パラメー
タをパーズし、(2)もしモード=「PP」なら入力パ
スフレーズPPから128ビットハッシュ値CWを計算
し、入力制御情報を処理し、GRVPR命令を指定され
る制御データパラメータを作り、GPUPR命令52を
呼び出して50で暗号化機構30の命令処理装置142
で実行する。50はモードパラメータおよびもしモード
=「PP」ならオプションコードワードCW、および制
御データをパスする。制御データには生成すべき公用キ
ーPUと関係するキー関連情報を指定するPU制御ベク
トルおよび生成すべき私用キーPRに関連するキー関連
情報を指定するPR制御ベクトルを含む。各制御ベクト
ルには暗号システム内のキーを識別するキー名を含んで
いる。各制御ベクトルは同時にラベルまたはCFにより
初期化されるべきCKDSラベルの予約スペースを含
み、暗号キーデータセット(CKDS)32からのキー
トークンの記憶、検索に用いることができる。応答し
て、GPUR命令52は、図14に、より詳細な記述が
あるように、入力としてモードパラメータ、またもしモ
ード=「PP」ならコードワードCWをパスして、キー
生成アルゴリズムKGAを呼び出す。応答して、KGA
は図14に詳細記述があるように公用キーおよび私用キ
ーPU,PRを生成し、GPUPR命令52にリターン
する。応答して、GPUPR命令52は生成されたPU
を含むPUキートークンおよび生成されたPRを含むP
Rキートークンをつくる。PUキートークンおよびPR
キートークンは図15に説明されており、以下詳しく述
べる。GPUPR命令は以下詳細説明するように、同時
に50で入力としパスされるモードおよび制御データに
ついて一貫性チェックを行う。一貫性チェックにより、
キータイプと各キートークンの制御ベクトル部分の取扱
い情報とがモードと一致していること、すなわちキーが
パスフレーズから生成されたか否かが確められる。P
U,PRキートークンは次にキー生成機能47に51で
リターンされる。応答して、キー生成機能47は必要な
らPU,PRキートークンを更新する。例えばCKDS
ラベルの記憶装置に対するトークンの予約フィールドが
この時点で埋められる。次にキー生成機能47はキー記
憶装置マネージャ46にCKDS32の1個または2個
のキートークンを記憶させ、44でAPPL Aにキー
名またはラベルのみをリターンさせるか、または44で
APPL Aに1個または2個のキートークンをリター
ンする。こゝでの意図はAPPL42にキートークンを
管理、制御させる(もしそう望むなら)か、暗号システ
ムにキートークンを管理、制御させることである。どち
らの進め方にも利点があり、キートークンがCKDS3
2に記憶されるにしても、あるいはAPPL42にリタ
ーンされるにせよ、キートークンの取扱いは43でのキ
ー生成機能47へのAPPL A42により指定される
入力パラメータの制御下にあるように暗号システムを設
計することが可能である。応答して、APPL Aは必
要に応じキートークンを記憶するか、またはCFAPで
実行する他の暗号機能への入力として、PU,PRキー
トークンが後で再指定できるキー名またはラベルを記憶
する。こゝでAPPL Aはユーザに、要求された公用
キーおよび私用キーが入力パスフレーズから生成された
ということを指示する。APPL Aは処理が完了する
時迄必要に応じ処理を続ける。生成したキートークンの
1個以上がCKDS32に記憶されたと仮定すると、A
PPL Aは45でキーパージ機能48をコールする。
45はCFAP34にあり、パージされるべき各キート
ークンのキー名またはラベルをパスする。応答して、キ
ーパージ機能48はキー記憶装置マネージャ46にCK
DS32から各キートークンを抹消させる。もしAPP
L Aがキートークンを管理しているなら、キーパージ
機能48をコールする代りに、APPL Aがキートー
クンをパージする。図13には示されていないが、各呼
出しエンティティには適当なリターンコードおよび条件
コードを利用できると仮定されており、従って要求され
た処理が正常に完了したこと、あるいは追加の処置を要
するエラーが発生したかどうかの指示を呼出しエンティ
ティは有している。キー生成機能47およびGPUPR
命令52は次の2タイプのキー生成を操作するように設
計されていることを当業者なら認識できる。(1)P
U,PRがパスフレーズから生成される場合(モード=
「PP」)、(2)PU,PRがパスフレーズから生成
されない場合(モード=「非PP」)。すなわち、キー
生成機能およびGPUR命令の設計は本発明の好ましい
実施例であると考えていることをベースにしている。そ
の理由は、いずれのモードとも両方の種類のキー生成を
行うことは出来ず、また各モードは今論じた通りキー管
理においてそれぞれ独自の異なる利点を有するからであ
る。
Key Generation Using Passphrase: FIG. 13
Illustrates a cryptographic system, the cryptographic mechanism (CF) 3
0, an encryption key data set (CKDS) 32, an encryption mechanism access program (CFAP) 34, and an application program (APPL) 36. Referring now to FIG. 13, public and private key pairs (P
U, PR) can be traced. 40
Application program A (APPL
A) 42 is called by the user. APPLA is (1) an application that requires the user to generate or regenerate their keys before the application connects to the process, or (2) allows the user to generate or regenerate those keys. It is assumed that it is a utility to do. APPLA prompts the user for a passphrase (referred to as PP) that the user inputs at 41. In response, APPLA A calls the key generation function 47 at 43. 43 is in the CFAP 34 and passes the mode parameter PP and control information.
The control information may be a control vector or information used to create the control vector. The mode parameter indicates to the key generation function whether the generated key is generated on a passphrase basis (mode = “PP”) or not (mode = “non-PP”). Therefore, the PP parameter is a selection parameter. The control information is handling control information that indicates the key type (ie, the type of public and private keys to generate) and the usage of the key in key management. In response, the key generation function 47 parses (1) the input parameters, (2) if mode = “PP”, calculates the 128-bit hash value CW from the input passphrase PP, processes the input control information, and GRVPR. An instruction processing unit 142 of the encryption mechanism 30 is created by calling a GPUPR instruction 52 and creating a control data parameter for which an instruction is designated.
Run with. 50 passes the mode parameter and, if mode = “PP”, the option codeword CW and control data. The control data includes a PU control vector that specifies key-related information related to the public key PU to be generated and a PR control vector that specifies key-related information related to the private key PR to be generated. Each control vector contains a key name that identifies the key within the cryptographic system. Each control vector simultaneously contains a label or a reserved space of a CKDS label to be initialized by the CF and can be used to store and retrieve key tokens from the cryptographic key data set (CKDS) 32. In response, the GPU instruction 52 calls the key generation algorithm KGA, passing the mode parameter as input and the codeword CW if mode = “PP”, as described in more detail in FIG. In response, KGA
Generates public and private keys PU and PR as detailed in FIG. 14, and returns to the GPUPR instruction 52. In response, the GPUPR instruction 52 returns the generated PU
Including the PU key token and P including the generated PR
Create an R key token. PU key token and PR
Key tokens are illustrated in FIG. 15 and are described in detail below. The GPUPR instruction performs a consistency check on modes and control data that are simultaneously input and passed at 50, as described in detail below. With the consistency check,
It is ascertained that the key type and the handling information of the control vector part of each key token match the mode, ie whether the key was generated from a passphrase. P
The U, PR key token is then returned to the key generation function 47 at 51. In response, the key generation function 47 updates the PU and PR key tokens if necessary. For example, CKDS
The reserved field of the token for label storage is filled at this point. The key generation function 47 then causes the key storage manager 46 to store one or two key tokens of the CKDS 32, 44 to return only the key name or label to APPLA A, or 44 to APPL A one. Or return two key tokens. The intent here is to have the APPL 42 manage and control the key token (if desired) or to let the cryptosystem manage and control the key token. Both approaches have advantages, and the key token is CKDS3
Whether stored in 2, or returned to APPL 42, the handling of the key token causes the cryptosystem to be under control of the input parameters specified by APPL A 42 to the key generation function 47 at 43. It is possible to design. In response, APPLA stores the key token if necessary, or as an input to other cryptographic functions performed by CFAP, the key name or label that the PU, PR key token can later respecify. APPLA now tells the user that the requested public and private keys were generated from the input passphrase. APPLA continues processing as needed until the processing is complete. Assuming that one or more of the generated key tokens are stored in CKDS32, A
PPL A calls the key purge function 48 at 45.
45 is in CFAP 34 and passes the key name or label of each key token to be purged. In response, the key purge function 48 sends a CK to the key store manager 46.
Delete each key token from DS32. If APP
If L A manages the key token, APPL A purges the key token instead of calling the key purge function 48. Although not shown in FIG. 13, it is assumed that the appropriate return and condition codes are available to each invoking entity, and thus the requested operation completed successfully, or an error requiring additional action. The calling entity has an indication as to whether or not has occurred. Key generation function 47 and GPUPR
Those skilled in the art will recognize that instruction 52 is designed to operate with two types of key generation: (1) P
When U and PR are generated from the passphrase (mode =
(PP)), (2) When PU and PR are not generated from the passphrase (mode = “non-PP”). That is, the design of the key generation function and the GPU instruction is based on what is considered a preferred embodiment of the present invention. The reason is that neither mode can perform both kinds of key generation, and each mode has its own distinct advantages in key management as just discussed.

【0048】公用キーおよび私用キーペア(PU,P
R)が生成される時、このキーがパスフレーズから生成
されたものであるか否かを識別することが重要である。
基本的にはパスフレーズから生成されたキーはユーザに
知れるキーである。直接には知れなくとも、このキーは
ユーザが計算でき、従って厳密な意味ではユーザに知ら
れる。これはPU,PRの計算に用いられるアルゴリズ
ムは公用領域にあると推定されるからである。すなわち
機密が保たれる根拠がない。唯一の機密要素はパスフレ
ーズその物である。従って、パスフレーズを知る人はキ
ーを知る(または計算する)ことができる。しかし公用
キーおよび私用キーペア(PU,PR)がパスフレーズ
から生成されない時、すなわちキー生成プロセスに含ま
れる無作為要素または無作為値が真の乱数発生器(図
8)か、初期にシードされる擬似乱数発生器(図9)の
いずれかを用いて暗号機構で生成される時は、キー生成
アルゴリズムにより生成されるキーはすべての実用目的
に対してはユーザには知られないかまたは知ることがで
きないものである。(多くの場合、キーはマスタキーの
下で暗号化されており、生成されるキーはマスタキーと
同程度の機密度を有す。マスタキーを知る人は誰でも生
成されるPUとPRも知ることになるが、PUは公用キ
ーであるから懸念する要はない。)「スマート」キー管
理設計では、両タイプの生成キーを利用することができ
る。パスフレーズから生成されない私用キーPRは、理
論上は暗号システム自体によってのみ知ることが出来
る。従って適正に実行するなら、完全性のシステムレベ
ルあるいは機密性のシステムレベルの実行にこういった
キーを用いることができる。これはPRがユーザに知ら
れるならば達成されないものである。反面ユーザに知ら
れるPRにより、よく利用される多くの機能がある。例
えば、暗号システムにそのユーザを認証する、またはそ
のユーザを他のユーザに認証する、または情報をそのユ
ーザから来ていると認証する(例えば、ユーザが計算し
て彼のメッセージにディジタル署名を添付する場合)の
にPRは使用される。キー管理設計は次の方法でこの差
を利用することがある。GPUPR命令52の処理の一
部として、PU,PRキートークンを作るステップがあ
る。
Public key and private key pair (PU, P
When R) is generated, it is important to identify whether this key was generated from a passphrase.
Basically, the key generated from the passphrase is a key known to the user. If not known directly, this key can be calculated by the user and is therefore known to the user in a strict sense. This is because the algorithms used to calculate PU and PR are estimated to be in the public domain. That is, there is no basis for keeping confidentiality. The only sensitive element is the passphrase itself. Thus, anyone who knows the passphrase can know (or calculate) the key. However, when the public key and private key pair (PU, PR) is not generated from the passphrase, that is, the random elements or values included in the key generation process are either seeded with a true random number generator (Fig. 8) or initially seeded. When generated by the cryptographic mechanism using any of the pseudo-random number generators (FIG. 9), the key generated by the key generation algorithm is unknown or known to the user for all practical purposes. It is something that cannot be done. (In many cases, the key is encrypted under the master key, and the generated key is as sensitive as the master key. Anyone who knows the master key also knows the generated PU and PR. But don't worry because the PU is a public key.) In a "smart" key management design, both types of generated keys are available. The private key PR not generated from the passphrase can theoretically be known only by the cryptosystem itself. Thus, if done properly, these keys can be used for integrity system-level or confidential system-level implementation. This is something that cannot be achieved if PR is known to the user. On the other hand, there are many functions that are often used by PR known to users. For example, authenticate the user to a cryptographic system, or authenticate the user to other users, or authenticate the information as coming from that user (eg, the user calculates and attaches a digital signature to his message). PR) is used. The key management design may make use of this difference in the following ways. As part of the processing of the GPUPR instruction 52, there is the step of making a PU, PR key token.

【0049】図15にPUキートークンおよびPRキー
トークンの書式を示す。PUキーは公用キーであるか
ら、PUキートークンはクリアまたは暗号化されたフォ
ームeKM.H1(PU)でPUを記憶することがあ
る。こゝでKM.H1はCF30のCF環境記憶装置1
46内に記憶されている機密マスタキーKMと暗号変数
H1との排他的論理和積であり、H1は中間ハッシュ値
1を作成するのにC1をハッシュし、またH1を作成す
るのにハッシュ1に数ビットをフィックスすることによ
りPUに対し制御ベクトルから作成される。eKM.H
1(PU)の正確な規格は前記のS.M.Matyas
等による同時係属特許出願「制御ベクトルを用いる公用
キー暗号システムキー管理」に述べられている。PRキ
ーは私用キーであるから、PRキートークンは暗号化し
たフォームeKM.H2(PR)でのみPRを記憶す
る。eKM.H2(PR)の正確な規格は前記のS.
M.Matyas等による同時係属特許出願「制御ベク
トルを用いる公用キー暗号システムのキー管理」に述べ
られている。PUとPRを暗号化する暗号化変数H1と
H2は異なっている。H1は公用キーPUに関連する制
御ベクトルC1より導出し、H2は私用キーPRに関連
する制御ベクトルC2より導出する。PU,PRキート
ークンは、それぞれキー名またはCKDSラベル、使用
法制御情報等のキー関連データである制御ベクトルC
1,C2も含む。PU,PRキートークンにはまたフォ
ームeKM.H1′(KAR)、eKM.H2′(KA
R)の確証を含んでいる。たゞしCKARはキー確証レ
コードであり、H1′,H2′はH1,H2に係わる暗
号化変数である。KARはクリアまたは暗号化キーすな
わちPU,eKM.C(PU)またはeKM.C(P
R)の暗号機能である。eKM.H1′(KAR)およ
びeKM.H2′(KAR)の正確な規格は前記のS.
M.Matyas等による同時係属特許出願「制御ベク
トルを用いる公用キー暗号システムのキー管理」に述べ
られている。PU,PRキートークンにはキートークン
中に他のフィールドの記憶位置と長さを識別する情報を
有するヘッダ部分も含んでいる。これによりそのフィー
ルドを可変長にすることができる。
FIG. 15 shows formats of the PU key token and the PR key token. Since the PU key is a public key, the PU key token has a clear or encrypted form eKM. PU may be stored in H1 (PU). KM. H1 is the CF environment storage device 1 of CF30
It is an exclusive logical product of the secret master key KM stored in 46 and the cryptographic variable H1, and H1 hashes C1 to create the intermediate hash value 1, and hashes 1 to create H1. Created from the control vector for the PU by fixing a few bits. eKM. H
The exact standard of 1 (PU) is S. M. Matyas
Et al. In co-pending patent application "Public Key Cryptography System Key Management Using Control Vectors". Since the PR key is a private key, the PR key token is in the encrypted form eKM. Store PR only in H2 (PR). eKM. The exact standard of H2 (PR) is the S.
M. It is described in the co-pending patent application "Key Management for Public Key Cryptography Systems Using Control Vectors" by Matyas et al. The encryption variables H1 and H2 for encrypting PU and PR are different. H1 is derived from the control vector C1 associated with the public key PU, and H2 is derived from the control vector C2 associated with the private key PR. Each of the PU and PR key tokens is a control vector C that is key-related data such as a key name or CKDS label and usage control information.
Also includes 1 and C2. The PU and PR key tokens also have the form eKM. H1 '(KAR), eKM. H2 '(KA
R) is included. However, CKAR is a key confirmation record, and H1 'and H2' are encryption variables related to H1 and H2. KAR is a clear or encryption key, i.e. PU, eKM. C (PU) or eKM. C (P
R) is a cryptographic function. eKM. H1 '(KAR) and eKM. The exact standard of H2 '(KAR) is described in S.
M. It is described in the co-pending patent application "Key Management for Public Key Cryptography Systems Using Control Vectors" by Matyas et al. The PU and PR key tokens also include a header portion having information for identifying the storage location and length of other fields in the key token. This allows the field to be of variable length.

【0050】図16にはPU、PRキートークンの制御
ベクトル部分の追加規格を示す。図16を参照すると、
制御ベクトルにはCVタイプと名付ける制御ベクトルタ
イプフィールドを含んでおり、キーが公用キーか私用キ
ーか、さらにそのキーはユーザキーか、キー管理キー
か、証明キーか、あるいは認証キーを示す。4つのキー
タイプ(ユーザ、キー管理、証明、認証)の正確な識別
は本発明では重要ではない。しかし、異なるキータイプ
はキー管理設計において異なる目的と用途を有すること
を理解するのは重要である。例えば、タイプ=「ユー
ザ」と制限して、公用ユーザキーがディジタル署名を生
成するためのみに用いられることができる。他方タイプ
=「キー管理」はより広範であり、私用キー管理キーを
暗号化の目的に、またある暗号装置から他の暗号装置に
DEAキーを分散する目的に使用することも、また公用
キー管理キーにディジタル署名を生成させることも可能
である。例えば、公用キー、私用キーペアはキーを暗号
化するDEAキーを分散するために2つの暗号システム
間で用いることができる。その後は、キーを暗号化する
キーは他をDEAキーを2つの夫々の暗号システム、例
えばデータキー間に分散するのに用いられる。この場合
は、一般にはこの目的に公用ユーザキー、私用ユーザキ
ーを用いようとはしないであろう。その理由は、この場
合は、自分の私用ユーザキーを知っているか、または理
論的に知りうるユーザ自身はキーを暗号化する暗号化さ
れたキーをインタセプトし(すなわち、PUで暗号化さ
れたキーを暗号化するキー)、またそれを自分の私用キ
ーPRで解読することができるからである。このように
して、ユーザはキーを暗号化するクリアキーの値を見出
すことが可能であり、たいていの暗号システムではキー
分配プロトコルの所期の機密保護に打ち勝つことにな
る。従って、PU、PRキートークンをGPUPR命令
52が作る時点において、生成されたキーのキータイプ
および使用法が意図されたキー管理設計に合致すること
を確認するため50での入力として指定されたモードに
対し、図14の50での入力として指定されたPU、P
R制御ベクトル(または等価的には図13の50での制
御データ)に関する一貫性チェックをGPUPR命令が
実行しなければならないことは本発明の一部である。例
えばCFAPがモード=「PP」を指定し、制御データ
がタイプ=「キー管理」を指示するならば、その時はG
PUPR命令52はこの不一致を検出し、キータイプに
対する不一致指示により処理を停止したというCFAP
への指示でもって演算を打ち切らなければならない。他
方では、もしCFAPがモード=「PP」を指定し、制
御データがタイプ=「ユーザ」を指示するならば、その
時はGPUPR命令52はキータイプの不一致により演
算を打ち切ってはならない。ここでは述べないが、追加
の一貫性チェックがGPUPR命令に演算を打ち切らせ
ることがあることに注意を要する。キートークンに生成
されたキーがキータイプおよび使用法を指定する制御情
報に連結されることは重要であるから、本発明の好まし
い実施例では図15のPUキートークンは、暗号化され
た書式eKM、H1(PU)でPUを記憶しなければな
らない。前記のように、H1をキートークンの制御ベク
トルに従属させることにより、これが達成される。H1
を制御ベクトルに従属させる正確な方法はここでは重要
でないが、前記のS.M. Matyas 等による同時保属特許出
願「制御ベクトルを用いる公用キー暗号システムのキー
管理」に詳細が述べられている。前述から、本発明はユ
ーザ供給のパスフレーズから公用キーおよび私用キーペ
アを生成する手段を提供することは理解されるであろ
う。しかし大抵の暗号システムでは、上記のようにユー
ザが私用キーPRの値を予測したり、決定する能力を有
さないような方法で、公用キーおよび私用キーを暗号シ
ステム内で生成する時には、より機密保護された設計が
可能である。従って本発明では、キーペアがパスフレー
ズから導出されたか、またはキーペアがパスフレーズか
らは導出されていないかによって、生成されるキーのタ
イプの双方の使用法を制御する手段も提供するものであ
る。従来技術(USP4,941,176、4,91
8,728、4,924,514、4,924,51
5、5,007,089)では制御ベクトルを通してキ
ータイプおよびキー使用法を制御する手段が述べられて
いる。しかし、この従来技術は、キーが如何にして生成
されるかに従ってキーのタイプと使用法を制限する方法
は述べていない。対照的に、本発明は公用キーおよび私
用キーがパスフレーズから生成されるキーと、パスフレ
ーズから生成されていないキーとを区別し、指定される
キータイプが許可さるべきか、または許可さるべきでは
ないかをキー生成命令(すなわちGPUPR命令)内で
決定する手段として、この区分がキー管理に重要である
ことを示した。このようにして本発明は生成プロセスを
適当に制御する手段を提供し、そのため生成されるキー
は、キーのタイプおよびそれが暗号システム内で如何に
処理されるかを指定する制御ベクトル情報に、適当に暗
号的に連結されることになる。生成されるキーを制御す
るこういった手段がなければ、パスフレーズおよびパス
フレーズから生成されるキーの利点は暗号システムの全
体機密保護を弱めるように思われ、パスフレーズから導
出するキーの利点は利点ではなく欠点となるように思わ
れることになろう。従って、本発明は単にパスフレーズ
からキーを生成する手段を提供するのみではなく、キー
管理内で生成されたキーを制御する本質的な手段をも提
供するものである。
FIG. 16 shows the additional standard of the control vector part of the PU and PR key tokens. Referring to FIG.
The control vector includes a control vector type field named CV type, which indicates whether the key is a public key or a private key, and the key is a user key, a key management key, a certification key, or an authentication key. The exact identification of the four key types (user, key management, certification, authentication) is not important to the invention. However, it is important to understand that different key types have different purposes and uses in key management design. For example, limiting type = “user”, the public user key can be used only to generate a digital signature. On the other hand, type = "key management" is more extensive, it is also possible to use a private key management key for the purpose of encryption and to distribute the DEA key from one cryptographic device to another cryptographic device, or a public key. It is also possible to have the management key generate a digital signature. For example, a public key, private key pair can be used between two cryptosystems to distribute the DEA key that encrypts the key. After that, the key that encrypts the key is used to distribute the DEA key among others between the two respective cryptosystems, eg, the data key. In this case, one would generally not use public or private user keys for this purpose. The reason is that in this case, the user knows his private user key, or in theory knows himself the user intercepts the encrypted key which encrypts the key (ie This is because it can be decrypted with the key for encrypting the key), or with my private key PR. In this way, the user can find the value of the clear key that encrypts the key, and most cryptographic systems will overcome the intended security of the key distribution protocol. Therefore, at the time the PU, PR key token 52 creates a PU, PR key token, the mode specified as input at 50 to ensure that the key type and usage of the generated key matches the intended key management design. , PU, P specified as input at 50 in FIG.
It is part of the invention that the GPUPR instruction must perform a consistency check on the R control vector (or equivalently the control data at 50 in FIG. 13). For example, if CFAP specifies mode = "PP" and the control data indicates type = "key management", then G
The PUPR instruction 52 detects this inconsistency, and the processing is stopped due to the inconsistency instruction for the key type.
Operation must be terminated by an instruction to. On the other hand, if CFAP specifies mode = "PP" and control data indicates type = "user", then GPUPR instruction 52 must not abort the operation due to a key type mismatch. Note that although not mentioned here, an additional consistency check may cause the GPUPR instruction to abort. Since it is important that the key generated in the key token is concatenated with the control information that specifies the key type and usage, in the preferred embodiment of the present invention, the PU key token of FIG. 15 has the encrypted form eKM. , H1 (PU) must store the PU. This is accomplished by substituting H1 into the control vector of the key token, as described above. H1
The exact method by which the is dependent on the control vector is not critical here, but is detailed in the above-referenced co-owned patent application by SM Matyas et al., "Key Management for Public Key Cryptography Systems Using Control Vectors." From the foregoing, it will be appreciated that the present invention provides a means for generating public and private key pairs from a user-supplied passphrase. However, in most cryptosystems, when the public key and the private key are generated in the cryptosystem in such a manner that the user does not have the ability to predict or determine the value of the private key PR as described above. , More secure design is possible. Thus, the present invention also provides a means of controlling both usage of the type of key generated, depending on whether the key pair is derived from a passphrase or not. Prior art (USP 4,941,176, 4,91
8,728, 4,924, 514, 4,924, 51
5, 5, 007, 089) describes means for controlling key type and key usage through control vectors. However, this prior art does not describe how to limit the type and usage of keys according to how the keys are generated. In contrast, the present invention distinguishes between public and private keys that are generated from a passphrase and those that are not generated from a passphrase, and the specified key type should or should be allowed. We have shown that this segment is important for key management as a means of determining in a key generation instruction (ie, GPUPR instruction) if it should not. Thus, the present invention provides a means to properly control the generation process, so that the generated key has a control vector information that specifies the type of key and how it is processed in the cryptographic system. It will be appropriately cryptographically linked. Without these means of controlling the generated keys, the benefits of passphrases and keys generated from passphrases appear to weaken the overall security of the cryptosystem, and the benefits of keys derived from passphrases are: It would seem like a drawback, not an advantage. Therefore, the present invention not only provides a means for generating a key from a passphrase, but also an essential means for controlling the generated key within the key management.

【0051】図14は、GPUPR命令52を呼び出す
結果としてCF30内で実行される演算の説明である。
図14のGPUPR命令52は、図13のGPUPR命
令52とは、図14がキー生成アルゴリズム152およ
び動的にシードされる擬似乱数発生器200を呼び出す
追加のステップがあるという点以外は全く同一である。
図14を参照すると、50での入力はモード、オプショ
ン命令語(CWと呼ぶ)、PU制御ベクトル、PR制御
ベクトルよりなる。図13では、PU制御ベクトルおよ
びPR制御ベクトルは単に制御ベクトルと呼ばれてい
る。呼び出されたことに応答して、GPUPR命令52
は53でキー生成アルゴリズムKGA152を呼び出
し、モードパラメータおよびオプションCWをパスす
る。応答して、KGA152はキー生成を実行するステ
ップを遂行する。例えば、CF30内で行われる暗号ア
ルゴリズムがRSAアルゴリズムならば、その時にはキ
ー生成ステップは図7に示す通りのものである。KGA
152が乱数を要求する最初の時に、CWの値が初期シ
ードとして用いられ、パラメータ「長さ」の値を得るた
めに要求される乱数RNの長さが値128に加算される
(これが次期シードの長さになる)。
FIG. 14 is an illustration of the operations performed within CF 30 as a result of calling GPUPR instruction 52.
The GPUPR instruction 52 of FIG. 14 is exactly the same as the GPUPR instruction 52 of FIG. 13 except that FIG. 14 has the additional step of calling the key generation algorithm 152 and the dynamically seeded pseudo-random number generator 200. is there.
Referring to FIG. 14, the input at 50 consists of a mode, an optional command word (called CW), a PU control vector, and a PR control vector. In FIG. 13, the PU control vector and the PR control vector are simply called control vectors. In response to being called, the GPUPR instruction 52
Calls the key generation algorithm KGA 152 at 53 and passes the mode parameter and option CW. In response, the KGA 152 performs the steps of performing key generation. For example, if the encryption algorithm performed in the CF 30 is the RSA algorithm, then the key generation step is as shown in FIG. KGA
The first time 152 requests a random number, the value of CW is used as an initial seed, and the length of random number RN required to obtain the value of the parameter "length" is added to value 128 (this is the next seed). Will be the length of).

【0052】次にKGA152は55で動的にシードさ
れる擬似乱数発生器200を呼び出し、「長さ」とシー
ド=CWを入力パラメータとしてパスする。応答して、
動的にシードされる擬似乱数発生器200はCWに等し
い入力シードから「長さ」に等しい長さの乱数を生成す
る。例えば、図12に示すアルゴリズムを動的にシード
される擬似乱数発生器200として用いることができ
る。「長さ」に等しい長さの生成された乱数RNは56
でKGA152にリターンされる。図14は次期シード
およびRNとして56での出力を示す。実際には、生成
される乱数RNは(長さ128ビットの)次期シードお
よびRN(「長さ」に等しい長さマイナス128ビット
の望ましい乱数)の単なる連結である。RNを受理する
と、KGA152は次期シードおよびRNを得るためそ
れをパーズする。KGA152が動的にシードされる擬
似乱数発生器200に別のコールをすることが必要と判
断した場合は、次期シード値はセーブされる。次にRN
値がキー生成プロセスで用いられる。次回KGA152
が乱数を要求する時に、次期シード値が検索され、シー
ドとして用いられ、また、要求される乱数ランの長さが
パラメータ「長さ」の値を得るために値128に加算さ
れる。プロセスはこういう風に連続する。もし、キー生
成アルゴリズムが図7の方法を用いてRSAキーを生成
するならば、図7でステップ161,164,170に
入る時には、KGA152は動的にシードされる擬似乱
数発生器200にコールする必要がある。必要となる乱
数RN1,RN2等の長さはモジュラスの望みの長さに
より、またKGAおよび暗号システム自体の特定の実行
によって変る。
The KGA 152 then calls 55 the dynamically seeded pseudo-random number generator 200 and passes the "length" and seed = CW as input parameters. pls respond,
The dynamically seeded pseudo-random number generator 200 generates a random number of length equal to "length" from an input seed equal to CW. For example, the algorithm shown in FIG. 12 can be used as the dynamically seeded pseudo random number generator 200. The generated random number RN having a length equal to "length" is 56.
Return to KGA152. FIG. 14 shows the output at 56 as the next seed and RN. In practice, the generated random number RN is simply a concatenation of the next seed (128 bits in length) and RN (the desired random number of length minus 128 bits equal to "length"). Upon receiving the RN, the KGA 152 parses it to get the next seed and RN. If the KGA 152 determines that it needs to make another call to the dynamically seeded pseudo-random number generator 200, the next seed value is saved. Then RN
The value is used in the key generation process. Next time KGA152
When the request a random number, the next seed value is retrieved and used as a seed, and the length of the requested random run is added to the value 128 to obtain the value of the parameter "length". The process continues in this way. If the key generation algorithm uses the method of FIG. 7 to generate the RSA key, the KGA 152 calls the dynamically seeded pseudo-random number generator 200 upon entering steps 161, 164, 170 in FIG. There is a need. The lengths of the required random numbers RN1, RN2, etc. will depend on the desired length of the modulus and on the particular implementation of the KGA and the cryptosystem itself.

【0053】本発明はかかる環境のすべてにおいて、ま
たRSAアルゴリズム、RSAキー生成アルゴリズム、
RSA暗号システムの実行において実践できることは当
業者は認めるであろう。さらに、これら他のアルゴリズ
ムによるキー生成が、キー生成に含まれるステップがプ
ロセス中のある時点、時期に、動的にシードされる擬似
乱数発生器200により生成しうる乱数または無作為値
を要求しているという点で、RSAアルゴリズムのキー
生成と類似であることを、公用キーアルゴリズムに詳し
い人は認めるであろう。このように、本発明はRSAキ
ーの作成のみに限定されず、一般的にパスフレーズから
公用キーおよび私用キーを生成する方法が、他の公用キ
ーアルゴリズムに同様に拡張することを当業者は認める
であろう。KGA152がキー生成プロセスを完了後、
すなわちPU、PRが生成された後、PUとPRはGP
UPR命令52に54でリターンされる。応答して、G
PUPR命令52はPU、PRおよび50で入力として
供給されたモードおよび制御ベクトルを用いてPUキー
トークンおよびPRキートークンを構成する。次に既に
述べたように、GPUPR命令52は50で入力として
供給されたモードおよび制御ベクトルに一貫性チェック
を実行し、キータイプおよび使用法がキー生成法に一致
しているかどうか(すなわちパスフレーズに基づいてい
るか、パスフレーズに基づいていないか)を判定する。
一貫性チェックにパスすれば、PUキートークンとPR
キートークンは51でCFAP(キー生成機能)にリタ
ーンされる。一方もし、一貫性チェックにパスしない
と、GPUPR命令52は停止し、PUキートークンと
PRキートークンは51でCFAPにリターンされな
い。
The present invention provides for all such environments, as well as the RSA algorithm, RSA key generation algorithm,
One of ordinary skill in the art will appreciate that it can be practiced in implementing the RSA cryptosystem. In addition, key generation by these other algorithms requires a random number or random value that may be generated by the dynamically seeded pseudo-random number generator 200 at some point in the process during which the steps involved in key generation are performed. Those skilled in the public key algorithm will appreciate that it is similar to the key generation of the RSA algorithm in that As such, the present invention is not limited to the creation of RSA keys only, and those skilled in the art will generally appreciate that the method of generating public and private keys from a passphrase extends to other public key algorithms as well. I will admit. After the KGA 152 completes the key generation process,
That is, after PU and PR are generated, PU and PR are GP
The UPR instruction 52 is returned at 54. In response, G
The PUPR instruction 52 constructs a PU key token and a PR key token with the mode and control vector provided as inputs at PU, PR and 50. Next, as already mentioned, the GPUPR instruction 52 performs a consistency check on the mode and control vector supplied as input at 50 to see if the key type and usage match the key generation method (ie passphrase). Or not based on a passphrase).
If it passes the consistency check, PU key token and PR
The key token is returned to CFAP (Key Generation Function) at 51. On the other hand, if the consistency check does not pass, GPUPR instruction 52 stops and PU key tokens and PR key tokens are not returned to CFAP at 51.

【0054】パスフレーズ選択プロセス:ユーザにより
入力として供給される機密のパスフレーズから、公用キ
ーおよび私用キーペア(PU、PR)を生成するため
の、本発明の方法を述べてきた。この結果の私用キーP
Rは入力したパスフレーズの値に完全に依存しており、
またキー生成アルゴリズムは公用の知識であると仮定し
ているので、私用キーPRの機密保護は完全にパスフレ
ーズそのものの機密保護に依存するものと推測される。
敵が誰かのパスフレーズの入手または推測することが可
能だとしたら、その敵は既知のキー生成アルゴリズムと
パスフレーズを用いて私用キーPRを決定できるであろ
う。ユーザのパスフレーズの機密を保護するのに用いな
ければならない方策に2つの基本分類がある。即ち: ・選択したパスフレーズを無許可のパーティに開示する
ことを防止する方策と、 ・無許可のパーティが選択したパスフレーズを単純推定
することを防止する方策である。
Passphrase Selection Process: We have described the method of the present invention for generating public and private key pairs (PU, PR) from a secret passphrase supplied as input by the user. The resulting private key P
R is completely dependent on the passphrase value you enter,
Since the key generation algorithm is assumed to be public knowledge, it is presumed that the security of the private key PR depends entirely on the security of the passphrase itself.
If the enemy could obtain or guess someone's passphrase, he would be able to determine the private key PR using known key generation algorithms and passphrases. There are two basic categories of strategies that must be used to protect the confidentiality of a user's passphrase. That is: -Measures to prevent the selected passphrase from being disclosed to unauthorized parties, and-Measures to prevent the unauthorized party from simply estimating the selected passphrase.

【0055】第1分類の方策は一般にはユーザに原則や
指針のセットを提供することにより実行される。例え
ば、パスフレーズは記憶すべきでメモすべきでない。も
しパスフレーズをメモするなら、不慮の開示を避けるた
め管理された環境の下で行わなければならない。さらに
メモしたコピーは不使用時は確実に保管しなければなら
ない。これら規則の大部分は常識そのものであり、シス
テムパスワード、錠の組合せ、私用電話番号の取扱いの
ような毎日ユーザが扱っている多くの「秘密」に適用さ
れるものである。
The first category of policies is generally implemented by providing the user with a set of principles and guidelines. For example, passphrases should be remembered and not written down. If you write down your passphrase, you must do it in a controlled environment to avoid accidental disclosure. In addition, the copy you make a note of must be stored securely when not in use. Most of these rules are common sense per se and apply to many "secrets" that users deal with every day, such as handling system passwords, lock combinations, and private telephone numbers.

【0056】第2分類の方策は常識の原則から明示する
のはより困難なことが多い。この方策はユーザがパスフ
レーズ自体を選択するのに用いる方法に焦点をおく。パ
スフレーズは他より推定が容易なことは明白である。従
って、「良い」パスフレーズ(すなわち容易に推定でき
ないもの)を選択し、「悪い」パスフレーズ(すなわ
ち、容易に推定できるもの)を回避する体系的方法が提
供さるべきである。
The measures of the second classification are often more difficult to clarify from the principle of common sense. This strategy focuses on the method the user uses to select the passphrase itself. It is clear that passphrases are easier to estimate than others. Therefore, there should be a systematic way of choosing "good" passphrases (ie, those that are not easily deduced) and avoiding "bad" passphrases (ie, those that are easily deduced).

【0057】図17にパスフレーズ選択プロセスを示
す。第1ステップ300は、パスフレーズ選択の原則と
指針のセットを準備し発行することである。パスフレー
ズ選択指針はユーザが「良い」パスフレーズを選択する
のを助けるために、ユーザに提供される。これら原則に
は後章で述べるようにパスフレーズ「フィルタ」を満足
するような基準のセットが書面で分り易い様式で含まれ
ている。
FIG. 17 shows the passphrase selection process. The first step 300 is to prepare and publish a set of passphrase selection principles and guidelines. Passphrase selection guidelines are provided to the user to help the user select a "good" passphrase. These principles include a set of criteria that satisfy the passphrase "filter," in a written, easy-to-understand manner, as described in a later section.

【0058】パスフレーズ選択指針の見本:本章では適
切なパスフレーズ作成をユーザに指導するため「べし」
と「べかず」のリストを提供する。良い選択と悪い選択
とを説明する特定の実施例が与えられる。敵がこの文書
を見ていることもあり得るので、実際にはいずれの見本
も使用すべきではない。
Sample passphrase selection guideline: In this chapter, "because" is used to guide the user in creating an appropriate passphrase.
And a list of "bekazu". Specific examples are given to illustrate the good and bad choices. You shouldn't actually use any of the examples, as an adversary may be looking at this document.

【0059】基本的にパスフレーズは「構成」しなけれ
ばならない:敵が推定する恐れのあるレパートリーのフ
レーズから選択してはならない。さらに、パスワードの
構成に当っては語の「数」および語の使用「頻度」は、
実用上、敵が大規模、指向性探索を用いてもパスワード
を発見できないようなものにする。
Basically, the passphrase must be "constructed": it must not be chosen from phrases in the repertoire that the enemy might infer. Furthermore, in constructing a password, the "number" of words and the "frequency" of word usage are
Practically, make it so that the adversary cannot find the password using large-scale, directional search.

【0060】「悪い」パスワード(例えば、自分の名前
とか電話番号)を使用すると、無作為に生成されている
ような見かけを有する暗号キーを作成し、この意味では
偶然の侵入者に対してはある程度の保護を与える。しか
し、こういったキーは真の暗号保護を与えない。
Using a "bad" password (eg your name or phone number) creates a cryptographic key that has the appearance of being randomly generated, and in this sense, against accidental intruders. Gives some protection. However, such keys do not provide true cryptographic protection.

【0061】避けるべき習慣(過去にこれらを使用して
実際に暗号文が解読されたことがある)は次の通りであ
る。
The habits to avoid (the ciphertexts have been actually decrypted using these in the past) are as follows.

【0062】1. パスフレーズを自分自身で構成する
代りに、パスフレーズリスト(例:a book)からパスフ
レーズを選択しないこと。
1. Do not select a passphrase from the passphrase list (eg a book) instead of configuring the passphrase yourself.

【0063】2. フレーズの中の数語が残りの手がか
りを与えるような推測のできるフレーズを用いないこ
と。例えば ・ よく知られている詩や子守歌からの1行 ・ よく知られている人、場所、事柄の名前 ・ 国家、文化、民族、宗教的へレディティからのフレ
ーズを使用しないこと。
2. Do not use guessable phrases where a few words in the phrase give the remaining clues. For example: -A line from a well-known poem or lullaby-The name of a well-known person, place or thing-Do not use phrases from national, cultural, ethnic or religious herediti.

【0064】3. 以前のパスフレーズと同じ概念のフ
レーズを使用しないこと。例えば、もし前回、祖父に関
することを用いたとしたら、今回は祖母に関することを
用いないこと。
3. Do not use the same conceptual phrase as your previous passphrase. For example, if you used things about your grandfather last time, don't use things about your grandmother this time.

【0065】4. パスフレーズとして1語だけという
のは使用しないこと。平均的辞書には約10,000語
含まれている。この多様性は2の14乗以下であり、電
子的速度では直ぐに究明できる。
4. Do not use just one word as a passphrase. The average dictionary contains about 10,000 words. This variety is less than 2 to the 14th power, and can be readily determined by electronic velocity.

【0066】5. 最も普通の英語の単語「のみ」を使
用しないこと。(すなわち、アングロサクソン起源の基
本語)。こうすると敵の辞書のサイズは10,000語
以上から、約2,000語またはそれ以下に減らすこと
ができよう。
5. Do not use the most common English word "only". (That is, the basic word of Anglo-Saxon origin). This would reduce the size of the enemy dictionary from over 10,000 words to about 2,000 words or less.

【0067】6. 小学校の教科書にある文を使用しな
いこと。効力のある習慣は次の通りである。
6. Do not use the sentences found in elementary school textbooks. The effective habits are:

【0068】1. パスフレーズは新規に創造すること
(すなわち、オリジナルであるべきである) 2. パスフレーズの長さはアルファベット文字(A〜
Z)で空白を除き少くとも40〜50文字のこと。これ
で約10語になり、徹底的なコンピュータ解析を妨げる
のに充分である。
1. Create a new passphrase (ie it should be original) 1. The length of the passphrase depends on the letters of the alphabet (A ~
At least 40 to 50 characters excluding white space in Z). This is about 10 words, enough to prevent a thorough computer analysis.

【0069】3. 次の1個あるいはそれ以上を行うこ
とにより、敵が必要とするアルファベットまたは辞書を
増加させることを考えること。
3. Consider increasing the alphabet or dictionary required by the enemy by doing one or more of the following:

【0070】・ 特殊記号を含めること(例えば、自分
のキーボードにもよるが、‖@#$%「&*()_+−
=!¢:;,.?″′/\|{}<>) ・ 文章に数字を導入すること。
-Include special symbols (for example, depending on your keyboard, ‖ @ # $% "& * () _ +-"
=! ¢:;,. ? ″ ′ / \ | {} <>) ・ Introduce numbers in sentences.

【0071】・ 故意に単語をミススペルすること。
(例:happen 3 stance ) ・ 外国語を使用すること。入力記号のセット を増し、またパスフレーズの各記号は、26可能性の文
字の代りに、ずっと多くの可能性の文字数字記号を有す
ることになる。もちろんパスフレーズが記憶困難になる
という事実によりこの実施の阻害されることがある。
• Deliberately misspelling a word.
(Example: happen 3 stance) ・ Use a foreign language. Adding to the set of input symbols, each symbol in the passphrase will have many more possible alphanumeric symbols instead of 26 possible characters. Of course, the fact that the passphrase becomes difficult to remember can hinder this practice.

【0072】4. パスフレーズに固有名前を含んでい
ても支障ない。
4. It does not matter if the passphrase contains a unique name.

【0073】5. パスフレーズを記憶し易くするよう
努め、書き留める必要がないようにすること。逆にフレ
ーズは他の誰かが推定することができなくすべきで、自
分だけが知っている内輪の情報を含めることを考えるこ
と。
5. Try to remember your passphrase so you don't have to write it down. Conversely, the phrase should not be able to be inferred by anyone else, and consider including inside information that only you know.

【0074】パスフレーズの例: 悪いパスフレーズの例: ・ 「Antidisestablismentarianism 」−単一の辞書語 ・ 「Dick and Jane see Spot run. Jump Spot jump.
」−小学1年の教科書 ・ 「A bee bit me. 」−短かすぎる ・ 「George Washington Carrer」−有名人 ・ 「Mary had a little l amb, ifs fleece was whit
e as snow.」−有名な詩 ・ 「Thon shalt have no other gods before Me.」−
宗教的ヘリテージ ・ 「Four score and sever years ago…」−国家的伝
統 良いパスフレーズの例: ・ 「I have never lived in Chicago at 278 Lake Sh
ore.」 ・ 「Why do you believe that fishies dan't float
in the sky? 」 ・ 「Did George Washington read Pascal or talk to
an ambassdor?」 ・ 「My favorite color is green or am I lieing &
it's Moorish Mist.」 ・ 「Counting"won, too, tree" is childish (but so
what)! 」 ・ 「Cannot I dance on my head? I dunno, perhaps
I shall.」 パスフレーズフィルタ:再び図17を参照し、ユーザが
ステップ301でパスフレーズを一旦選択すると、その
選択の良否を判断するために発行されている選択指針に
対しユーザ選択を評価することは有益である。この評価
プロセスには指針と原則300で発行されているもの以
上の追加基準を勿論含むことがある。追加基準を原則の
形で述べるのは困難かも知れないが、それにも拘らず選
択したパスフレーズの質を判定するには重要である。総
合評価基準として、試用パスフレーズを入力し301、
試用パスフレーズをテストし302、テスト302の結
果を基にして試用パスフレーズを受託または拒否する3
03、といった具合に自動化することもできる。303
で受託されると、順に次のキー生成プロセスの使用可能
をトリガする。拒否されるとエラーメッセージをトリガ
し、ユーザに別のフレーズを選択するよう促す。パスフ
レーズテスト302はパスフレーズフィルタの形で実行
することがある。
Passphrase Example: Bad Passphrase Example: "Antidisestablismentarianism" -a single dictionary word "Dick and Jane see Spot run. Jump Spot jump.
-A textbook for the first grade of elementary school- "A bee bit me."-Too short- "George Washington Carrer" -Celebrity- "Mary had a little l amb, ifs fleece was whit"
e as snow. "-Famous poem-" Thon shalt have no other gods before Me. "-
Religious heritage- "Four score and sever years ago ..."-National tradition Examples of good passphrases:-"I have never lived in Chicago at 278 Lake Sh.
ore. "・「 Why do you believe that fishies dan't float
in the sky? "・" Did George Washington read Pascal or talk to
an ambass dor? '' ・ 「My favorite color is green or am I lieing &
it's Moorish Mist. "・" Counting "won, too, tree" is childish (but so
what)! 」・「 Cannot I dance on my head? I dunno, perhaps
I shall. ”Passphrase Filter: Referring again to FIG. 17, once the user selects a passphrase in step 301, evaluate the user's selection against a selection guideline issued to determine the quality of the selection. Is beneficial. This evaluation process may, of course, include guidelines and additional criteria beyond those published in Principle 300. Although it may be difficult to state the additional criteria in principle, it is nevertheless important in determining the quality of the chosen passphrase. Enter the trial passphrase as a comprehensive evaluation criteria 301,
Test trial passphrase 302 and accept or reject trial passphrase based on the result of test 302 3
It can also be automated, such as 03. 303
When entrusted with, it in turn triggers the enablement of the next key generation process. When rejected, it triggers an error message and prompts the user to choose another phrase. Passphrase test 302 may be performed in the form of a passphrase filter.

【0075】パスフレーズフィルタは「悪い」ユーザ構
成のパスフレーズすなわち敵が徹底した指向探索により
発見できる可能性のあるパスフレーズを拒否するための
ルーチンである。可能性のあるパスフレーズが生成され
ると、パスフレーズフィルタが呼び出され、パラメータ
入力としてパスフレーズが提供される。最も頻繁に使用
される10,000語を含む標準英語の辞書を用いて、
パスフレーズフィルタは敵のコンピュータプログラムが
ユーザのパスフレーズを再生成するまでに通常列挙しな
ければならないパスフレーズ数の下限を計算する。この
情報は呼び出し者に報告され、パスフレーズの放棄、修
正、受託を呼出し者が選ぶことができる。
The passphrase filter is a routine for rejecting "bad" user configured passphrases, that is, passphrases that an adversary may be able to find through a thorough pointing search. When a possible passphrase is generated, the passphrase filter is invoked and the passphrase is provided as a parameter input. With a standard English dictionary containing the most frequently used 10,000 words,
The passphrase filter calculates a lower bound on the number of passphrases an adversary computer program normally must enumerate before recreating the user's passphrase. This information is reported to the caller, who may choose to waiver, modify, or accept the passphrase.

【0076】パスフレーズフィルタはそのパスフレーズ
が「良い」ことを自動的に保証するものではないが、大
抵の「悪い」パスフレーズを消去することができる。こ
の意味でパスフレーズ構成用に提供された原則と共にパ
スフレーズフィルタを用いると、「悪い」パスフレーズ
が不注意に用いられる機会を最小化し、従って全体の機
密保護が向上する。
The passphrase filter does not automatically guarantee that the passphrase is "good", but it can eliminate most "bad" passphrases. Using a passphrase filter with the principles provided for passphrase construction in this sense minimizes the chance of inadvertent use of a "bad" passphrase, thus improving overall security.

【0077】パスフレーズフィルタは概念的にはパスワ
ードフィルタと類似しており、「悪い」ユーザ設定のパ
スフレーズまたは徹底した指向探索により敵が発見でき
る可能性のあるパスフレーズを拒否するルーチンであ
る。
The passphrase filter is conceptually similar to the password filter and is a routine that rejects "bad" user-set passphrases or passphrases that an adversary may be able to find by a thorough directional search.

【0078】パスフレーズを含む例がこのチェック手順
の重要性を説明している。ユーザ選定のパスフレーズの
ような、ユーザ選定のパスワードはよりユーザに親しみ
易いアクセス制御とのインタフェースを与える。しかし
人間は「容易な道を選ぶ」傾向があることはよく知られ
ている。1000人が選んだ6桁のパスワードを調べて
みると、その分布が一様ではないことは確実である。6
個の繰返し数字(000000、111111等)、順
番の数字(123456、234567等)または明白
なパターンの数字からなるパスワードが不釣合に多いこ
とに気付くであろう。これを知っていると、敵は最もあ
りそうな候補を最初に探索するように徹底した指向探索
を組織化できる。多くの場合には、パスワードを見付け
るにほんの僅かの試行しか必要としない。対策として、
パスワード選択に含まれる潜在的リスクについてユーザ
に伝えておかなければならないし、またコンピュータシ
ステムの導入においてはパスワード選択において守るべ
き簡単な原則をセットでユーザに提供しなければならな
い。弱いパスワードをテストし拒否するために多くのコ
ンピュータシステムではパスワードチェックアルゴリズ
ムを提供することも可能である。
An example involving a passphrase illustrates the importance of this checking procedure. User-selected passwords, such as user-selected passphrases, provide a more user-friendly interface to access control. However, it is well known that humans tend to "take the easy path". Examining the 6-digit passwords chosen by 1000 people, it is certain that their distribution is not uniform. 6
You will find that there are disproportionately high numbers of passwords consisting of repeated numbers (000000, 111111, etc.), sequential numbers (123456, 234567, etc.) or numbers in a clear pattern. Knowing this, the adversary can organize a thorough directed search to find the most likely candidate first. In many cases, it takes only a few attempts to find a password. As a countermeasure,
The potential risks involved in password selection must be communicated to the user, and the introduction of computer systems must provide the user with a set of simple principles to be followed in password selection. Many computer systems can also provide password checking algorithms to test and reject weak passwords.

【0079】パスフレーズ構成においては、類似してい
るが、より複雑な原則のセットを守らなければならな
い。多くの場合、原則は直観的ではなく、従って、シス
テムに実行されるパスフレーズフィルタは尚更重要であ
る。パスフレーズフィルタは試用パスフレーズに適用さ
れる簡単な高速テストのセットからなる。各テストはパ
スフレーズの変異性を評価する。すべてのテストを実行
後、最小値をユーザに報告する。
A similar, but more complex set of principles must be observed in passphrase construction. In many cases, the principle is not intuitive, so the passphrase filter implemented in the system is even more important. The passphrase filter consists of a set of simple fast tests applied to the trial passphrase. Each test evaluates passphrase variability. After running all tests, report the minimum value to the user.

【0080】図18には、暗号命令セット2を実行可能
な暗号化機構し、キー記憶装置3、暗号化機構アクセス
プログラム4、ユーザアプリケーションプログラム5よ
りなる暗号システムを示す。暗号化機構アクセスプログ
ラム4はパスフレーズフィルタユーティリティプログラ
ム6を含み、チェックパスフレーズ7と呼ばれるCFA
Pサービスを通してアクセスされる。試用パスフレーズ
をチェックするのに次のステップが含まれる。アプリケ
ーション5がチェックパスフレーズサービス7を呼び出
す。試用パスフレーズをチェックし、パスフレーズの変
異性推定を呼出し者にリターンする。呼出し者は受託の
ための最小変異性を設定しなければならない。例えばD
EAキー生成に対しては、変異性は最小2の56乗であ
るべきである。
FIG. 18 shows a cryptographic system which has a cryptographic mechanism capable of executing the cryptographic instruction set 2 and includes a key storage device 3, a cryptographic mechanism access program 4, and a user application program 5. The encryption mechanism access program 4 includes a passphrase filter utility program 6 and is a CFA called a check passphrase 7.
Accessed through P service. The following steps are included to check the trial passphrase. The application 5 calls the check passphrase service 7. Check the trial passphrase and return the passphrase variability estimate to the caller. The caller must set the minimum variability for the trust. For example, D
For EA key generation, the variability should be a minimum of 2 56.

【0081】図19はパスフレーズフィルタルーチンの
処理ステップの流れ図である。パスフレーズフィルタは
次のチェックを行う。
FIG. 19 is a flow chart of the processing steps of the passphrase filter routine. The passphrase filter does the following checks:

【0082】1. パターン分析−記号または記号列が
繰返されているか? 2. 文字頻度分析−個々の文字、2重字、3重字等が
如何なる頻度で典型的な言語では表われ、また提案のパ
スフレーズに限定するとどうか? 3. ワード頻度分析−特定のワードが如何なる頻度で
表われるか? パスフレーズフィルタによりユーザに報告されるパスフ
レーズの推定変異性は上記分析のそれぞれから得られる
変異性の最小値である。これら分析の実行方法を以下に
述べる。
1. Pattern analysis-is the symbol or sequence of symbols repeated? 2. Character Frequency Analysis-How often do individual letters, double letters, triple letters, etc. appear in a typical language, and what if you limit yourself to the proposed passphrase? 3. Word Frequency Analysis-How often does a particular word appear? The estimated variability of the passphrase reported to the user by the passphrase filter is the minimum variability obtained from each of the above analyses. The method of performing these analyzes is described below.

【0083】パターン分析:試用パスフレーズの標準統
計分析で次のことが分る。
Pattern analysis: A standard statistical analysis of the trial passphrase reveals the following:

【0084】1. パスフレーズに用いられた全アルフ
ァベット 2. 文字または文字グループの繰返し このデータから、統計的変異性の計算が容易にできる。
例えば、「有効アルファベット」がパスフレーズ中に表
わる記号のみで構成されると仮定し、またパスフレーズ
の「有効長さ」をすべての繰返しを除いたパスフレーズ
の長さと定義せよ。そうすると「IIIIII」のよう
なパスフレーズは「悪い」と分類するであろう。
1. All alphabets used in passphrases 2. Repeating letters or groups of letters This data facilitates the calculation of statistical variability.
For example, assume that the "effective alphabet" consists only of the symbols that appear in the passphrase, and define the "effective length" of the passphrase as the length of the passphrase excluding all repetitions. Then a passphrase like "IIIIII" would be classified as "bad".

【0085】数字や文字の自然の順番もある。この自然
の順番を用いると、パスフレーズは敵に推測されうるか
も知れない。数字やアルファベット順を検知する一方法
は各数字および文字にランク番号を割り当て、有限差分
計算法を用いることである。この方法は有限個数の指定
点を通る多項式の次数を計算するのに使われる方法であ
る。この方法を以下に示す。
There is also a natural order of numbers and letters. Using this natural order, the passphrase could be guessed by the enemy. One way to detect numbers or alphabetical order is to assign a rank number to each number and letter and use a finite difference calculation method. This method is used to calculate the degree of a polynomial through a finite number of specified points. This method is shown below.

【0086】1. 数字0〜9にランク番号1〜10を
割り当て、文字「A」〜「Z」にランク番号11〜36
を割り当てる。
1. Rank numbers 1 to 10 are assigned to the numbers 0 to 9 and rank numbers 11 to 36 are assigned to the letters "A" to "Z".
Assign

【0087】2. パスフレーズに対するランク番号の
リストを生成する。
2. Generate a list of rank numbers for a passphrase.

【0088】3. 左端から始めて、各要素から直ぐ右
側の要素を減算し、一次差分を計算する。リストの最後
の数字はそれに対し計算すべき差分を有しない。
3. Starting from the left edge, subtract the immediate right element from each element to compute the first order difference. The last number in the list has no difference for it to be calculated.

【0089】4. 一次差分の数に同じ操作を行って二
次差分を計算する。
4. Do the same for the number of primary differences to calculate the secondary differences.

【0090】例えば、パスフレーズを次のように仮定
し、 パスフレーズ:1 2 3 4 5 ランク番号: 02 03 04 05 06 一次差分: 01 01 01 01 二次差分: 00 00 00 一次差分のリストにおいて入力がゼロの時は、隣接した
ランク番号が同一であることを意味する。二次差分のリ
ストにおいて入力がゼロの時は一次差分が同一すなわち
ランク番号が定数だけ変化していることを意味し、パス
フレーズの1片が「246」とか「ABC」のような順
序になっていることを意味する。可変性計算では、パス
フレーズの有効長さは一次および二次差分リストにある
ゼロの数だけ減算される。(このようなゼロは繰返しま
たは単純パターンを示すので)。
For example, assuming the passphrase as follows, passphrase: 1 2 3 4 5 Rank number: 02 03 04 05 06 06 Primary difference: 01 01 01 01 01 Secondary difference: 00 00 00 00 In the list of primary differences When the input is zero, it means that the adjacent rank numbers are the same. When the input is zero in the secondary difference list, it means that the primary difference is the same, that is, the rank number has changed by a constant number, and one piece of the passphrase becomes an order such as "246" or "ABC". Means that In the variability calculation, the effective length of the passphrase is subtracted by the number of zeroes in the primary and secondary difference lists. (Because such zeros indicate a repeating or simple pattern).

【0091】このランク番号分析は「qwerty」(または
他の)キーボードの数字と文字の順番でもって行うこと
も可能である。
This rank number analysis can also be done in numerical and letter order on a "qwerty" (or other) keyboard.

【0092】文字頻度分析:次の文字リストはGaimes
(参考文献2)からとったものである。
Character Frequency Analysis: The next character list is Gaimes
It is taken from (Reference 2).

【0093】英文での文字の頻度順リストは、 ETAONISRHLDCUPFMWYBGVKQXJ
Z。
A frequency-ordered list of characters in English is ETAONISRHLDCUPFMWYBGVKQXJ
Z.

【0094】もし特殊記号が含まれるとすれば、その時
は最も普通の記号(「E」よりもさらに)はブランクす
なわちスペースである。英文での2重字の頻度順リスト
は TH HE AN IN ER RE ES ON E
A TI AT STEN ND OR TO NT
ED IS AR… 英文での3重字の頻度順リストは THE AND THA ENT ION TIO F
OR NDE HASNCE EDT TIS OFT
STH MEN… 1. 各文字を頻度グループにグループ分けして、各グ
ループに変異性の推定値を与える。簡単のため、グルー
プの変異性は2の整数べきであるようにグループを定義
する。
If special symbols are included, then the most common symbols (even more than "E") are blanks or spaces. The frequency-ordered list of double letters in English is TH HE AN IN ER RE ES ON E
A TI AT STEN ND OR TO NT
ED IS AR ... The triplet frequency order list in English is THE AND THA ENT ION TIO F
OR NDE HASNCE EDT TIS OFT
STH MEN ... 1. Each letter is grouped into frequency groups and each group is given an estimate of variability. For simplicity, we define a group so that the group variability should be an integer power of two.

【0095】a. 2の0乗 (2**0) E b. 2の1乗 (2**1) T c. 2の2乗 (2**2) AO d. 2の3乗 (2**3) NISR e. 2の4乗 (2**4) HLDCUPEM f. 2の5乗 (2**5) WYBGVKQXJZ g. ブランク以外の特殊記号には2の5乗の値を付け
る。
A. 2 to the power of 0 (2 ** 0) E b. 2 to the power of 1 (2 ** 1) T c. 2 squared (2 ** 2) AO d. 2 to the power of 3 (2 ** 3) NISR e. 2 to the power of 4 (2 ** 4) HLDCUPM f. 2 to the 5th power (2 ** 5) WYBGVKQXJZ g. A value of 2 to the 5th power is added to special symbols other than blank.

【0096】2. パスフレーズにおける文字の繰返し
パターンをチェックし、分析しようとするパスフレーズ
から繰返しパターンを取り除く。
2. Check for repeating patterns of characters in the passphrase and remove repeating patterns from the passphrase to be analyzed.

【0097】3. 分析しようとするパスフレーズから
すべてのブランクを取り除く。
3. Remove all blanks from the passphrase you are trying to analyze.

【0098】4. (パターンを取り去った後の)各文
字に対応する2のべき指数を合計する。合計値がこのテ
ストの変異性である。
4. Sum the exponents of 2 corresponding to each letter (after stripping the pattern). The sum is the variability of this test.

【0099】5. 2重字および3重字についても同じ
ことを行う。
5. Do the same for double and triple letters.

【0100】ワード頻度分析:以下はJohn B. Carroll
の「The American Heritage WordFrequency Book」(1
971)からとったものである。最も普通の英語100
ワードの頻度順リストは以下の通りである。
Word Frequency Analysis: Below is John B. Carroll
"The American Heritage Word Frequency Book" (1
971). Most common english 100
The frequency ordered list of words is:

【0101】THE OF AND A TO IN IS YOU THAT IT HE F
OR WAS ON ARE AS WITH HIS THEYAT BE THIS FROM I HA
VE OR BY ONE HAD NOT BUT WHAT ALL WERE WHEN WE THE
RECAN AN YOUR WHICH THEIR SAID IF DO WILL EACH ABO
UT HOW UP OUT THEM EHENSHE MANY SOME SO THESE WOUL
D OTHER INFO HAS MORE HER TWO LIKE HIM SEETIME COU
LD NO MAKE THAN FIRST BEEN ITS WHO NOW PEOPLE MY M
ADE OVER DIDDOWN ONLY WAY FIND USE MAY WATER LONG
LITTLE VERY AFTER WORDS CALLEDJUST WHERE MOST KNOW 最も頻繁に使われる10,000ワードを含む標準英語
の語彙を用い、ユーザのパスフレーズを再生成するまで
に敵のコンピュータプログラムが列挙しなければならな
いであろうパスフレーズ数の下限をユーティリティプロ
グラムが計算する。
THE OF AND A TO IN IS YOU THAT IT HE F
OR WAS ON ARE AS WITH HIS THEYAT BE THIS FROM I HA
VE OR BY ONE HAD NOT BUT WHAT ALL WERE WHEN WE THE
RECAN AN YOUR WHICH THEIR SAID IF DO WILL EACH ABO
UT HOW UP OUT THEM EHENSHE MANY SOME SO THESE WOUL
D OTHER INFO HAS MORE HER TWO LIKE HIM SEETIME COU
LD NO MAKE THAN FIRST BEEN ITS WHO NOW PEOPLE MY M
ADE OVER DIDDOWN ONLY WAY FIND USE MAY WATER LONG
LITTLE VERY AFTER WORDS CALLEDJUST WHERE MOST KNOW The paths that an enemy computer program would have to enumerate before regenerating the user's passphrase, using the standard English vocabulary containing the 10,000 most frequently used words. A utility program calculates the lower limit of the number of phrases.

【0102】1. 次のようにワード頻度リストを構築
する。
1. Build the word frequency list as follows:

【0103】a. 2の0乗 (2**0) THE b. 2の1乗 (2**1) OF c. 2の2乗 (2**2) AND A d. 2の3乗 (2**3) TO IN IS YO
U e. 2の4乗 (2**4) THAT IT HE
FOR WAS ONARE AS f. 等々 所望の長さにワード頻度リストに対するこのリストを構
築する。あるワードがそのリストに現れなければ、その
リストの最少頻度ワードと同じ頻度を有するものと仮定
する。
A. 2 to the power of 0 (2 ** 0) THE b. 2 to the power of 1 (2 ** 1) OF c. 2 squared (2 ** 2) AND A d. 2 to the third power (2 ** 3) TO IN IS YO
U e. 2 to the fourth power (2 ** 4) THAT IT HE
FOR WAS ONARE AS f. Etc. Build this list for a word frequency list to the desired length. If a word does not appear in the list, it is assumed to have the same frequency as the least frequent word in the list.

【0104】2. 繰返しワードをチェックし、分析し
ようとするパスフレーズから繰返しワードを取り除く。
2. Check for repeating words and remove them from the passphrase to be analyzed.

【0105】3. パスフレーズの各ワードに対応する
2のべき指数を合計する。合計値がこのテストの変異性
である。
3. Sum the exponents of 2 corresponding to each word in the passphrase. The sum is the variability of this test.

【0106】本発明の特定の実施例を開示したが、本発
明の精神および目的から逸脱することなく、特定の実施
例に変更を行いうることは当業者には自明である。
While particular embodiments of the present invention have been disclosed, it will be apparent to those skilled in the art that modifications can be made to the particular embodiments without departing from the spirit and purpose of the invention.

【0107】本発明の公用キー暗号システムを管理する
方法は、ユーザに知られている第1のシード値を用いて
第1の公用キー、私用キーペアを生成し、また第1の公
用キー、私用キーペアの第1の使用を定義する第1の制
御ベクトルを生成するステップと、ユーザに知られてい
る第2のシード値を用いて第2の公用キー、私用キーペ
アを生成し、また第2の公用キー、私用キーペアの第2
の使用を定義する第2の制御ベクトルを生成するステッ
プと、第1の制御ベクトルを用いて第1の公用キー、私
用キーペアの使用を制御ベクトルするステップと、第2
の制御ベクトルを用いて第2の公用キー、私用キーペア
の使用を制御ベクトルするステップとを含んでいる。
The method of managing a public key cryptosystem of the present invention uses a first seed value known to a user to generate a first public key, a private key pair, and a first public key, Generating a first control vector defining a first use of the private key pair, generating a second public key, a private key pair, using a second seed value known to the user, and Second public key, second private key pair
Generating a second control vector defining the use of the first public key, a control vector using the first control vector to control the use of the first public key, private key pair;
Control vector of the second public key, the use of the private key pair with the control vector of.

【0108】ここで、第1のシード値がパスフレーズか
ら生成されてもよく、第2のシード値が真の乱数であっ
てもよい。また、第1のシード値を用いて第1の乱数を
生成し、第1の生成ステップに第1の乱数を適用するス
テップを含んでもよい。さらに、擬似乱数発生器に前記
第2のシード値を用いて第2の乱数を生成し、第2の生
成ステップに第2の乱数を適用してもよい。
Here, the first seed value may be generated from the passphrase, and the second seed value may be a true random number. Further, the method may include a step of generating a first random number using the first seed value and applying the first random number to the first generating step. Further, the pseudo random number generator may generate the second random number by using the second seed value, and the second random number may be applied to the second generating step.

【0109】また、第1の制御ベクトルが2つの構成要
素として、第1の公用キーの使用を制御するための第1
の公用キー制御ベクトルおよび第1の私用キーの使用を
制御するための第1の私用キー制御ベクトルを有しても
よい。
Further, the first control vector has two components, the first control vector for controlling the use of the first public key.
Public key control vector and a first private key control vector for controlling the use of the first private key.

【0110】あるいは、第2の制御ベクトルが2つの構
成要素として、第2の公用キーの使用を制御するための
第2の公用キー制御ベクトルおよび第2の私用キーの使
用を制御するための第2の私用キー制御ベクトルを有し
てもよい。
Alternatively, the second control vector has two components, a second public key control vector for controlling the use of the second public key and a second public key for controlling the use of the second private key. It may have a second private key control vector.

【0111】第1の制御ベクトルが第1の私用キーを制
御してその使用をディジタル署名の生成に制限しまた第
2の制御ベクトルが第2の私用キーを制御して、その使
用をディジタル署名の生成に制限し、かつキー分散プロ
トコルの一部として受信した暗号化されたキーを解読し
てもよい。
The first control vector controls the first private key to limit its use to the generation of digital signatures, and the second control vector controls the second private key to control its use. You may be restricted to generating digital signatures and decrypt the encrypted keys received as part of the key distribution protocol.

【0112】または、第1の制御ベクトルが第1の公用
キーの使用をディジタルシグニチャの検証に制限し、ま
た第2の制御ベクトルが第2の公用キーの使用をディジ
タルシグニチャの検証およびキー分散プロトコルにおけ
るキーの暗号化に制限してもよい。
Alternatively, the first control vector limits the use of the first public key to the verification of the digital signature, and the second control vector limits the use of the second public key to the verification of the digital signature and key distribution protocol. May be restricted to the encryption of keys in.

【0113】あるいは、第1の制御ベクトルは第1の私
用キーによりディジタルシグニチャの生成を制御し、ま
た第2の制御ベクトルは第2の私用キーの使用をディジ
タルシグニチャの生成には禁止してもよい。
Alternatively, the first control vector controls the generation of the digital signature by the first private key, and the second control vector prohibits the use of the second private key for the generation of the digital signature. May be.

【0114】また本発明の公用キー、私用キーペア発生
器を含む公用キー暗号システムを管理するための方法
は、ユーザに知れている第1のシードを用いて第1の公
用キー、私用キーペアを生成し、また第1の公用キー、
私用キーペアの第1の使用を定義する第1の制御ベクト
ルを生成するステップと、ユーザに知れない第2のシー
ド値を用いて第2の公用キー、私用キーペアを生成し、
また第2の公用キー、私用キーペアの第2の私用キーペ
アを定義する第2の制御ベクトルを生成するステップ
と、第1の制御ベクトルを用いて第1の公用キー、私用
キーペアの使用を制御するステップと、第2の制御ベク
トルにより第2の公用キー、私用キーペアの使用を制御
するステップとを含んでいる。
The method for managing the public key cryptosystem including the public key and private key pair generator of the present invention is also the method of managing the first public key and private key pair using the first seed known to the user. Generate the first public key,
Generating a first control vector defining a first use of a private key pair, and generating a second public key, a private key pair, using a second seed value unknown to the user,
And a step of generating a second control vector defining a second private key pair of the second public key, private key pair, and using the first public key, private key pair using the first control vector And controlling the use of the second public key, private key pair by the second control vector.

【0115】ここで、第1のシード値がパスフレーズか
ら生成されてもよく、また第2のシード値が真の乱数で
あってもよい。
Here, the first seed value may be generated from the passphrase, and the second seed value may be a true random number.

【0116】また、第1のシード値を用いて第1の乱数
を生成し、また第1の生成ステップに第1の乱数を適用
するステップの遂行を含んでもよい。
It may also include performing a step of generating a first random number using the first seed value and applying the first random number to the first generating step.

【0117】あるいは、擬似乱数発生器における第2の
シード値を用いて第2の乱数を生成し、また第2の生成
ステップに第2の乱数を適用するステップの遂行を含ん
でもよい。
Alternatively, the step of generating a second random number using the second seed value in the pseudo random number generator and applying the second random number to the second generating step may be included.

【0118】第1の制御ベクトルが2つの構成要素とし
て、第1の公用キーの使用を制御するための第1の公用
キー制御ベクトルおよび第1の私用キーの使用を制御す
るための第1の私用キー制御ベクトルを有してもよい。
The first control vector has two components, a first public key control vector for controlling the use of the first public key and a first public key control vector for controlling the use of the first private key. May have a private key control vector of

【0119】第2の制御ベクトルが2つの構成要素とし
て、第2の公用キーを制御するための第2の公用キー制
御ベクトルおよび第2の私用キーを制御するための第2
の私用キー制御ベクトルを有してもよい。
The second control vector has two components, a second public key control vector for controlling the second public key and a second public key for controlling the second private key.
May have a private key control vector of

【0120】第1の制御ベクトルが、第1の私用キーを
制御して、その使用をディジタル署名の生成に制限し、
また第2の制御が第2の私用キーを制御して、その使用
をディジタル署名の生成およびキー分散プロトコルの一
部として受信した暗号化されたキーの解読を制限しても
よい。
The first control vector controls the first private key and limits its use to the generation of digital signatures,
The second control may also control the second private key, whose use limits the generation of digital signatures and the decryption of encrypted keys received as part of the key distribution protocol.

【0121】第1の制御ベクトルが、第1の公用キーの
使用をディジタル署名の検証に制限し、また第2制御ベ
クトルが第2公用キーの使用をディジタル署名の生成お
よびキー分散プロトコルにおけるキーの暗号化を制限し
てもよい。
The first control vector limits the use of the first public key to the verification of the digital signature, and the second control vector limits the use of the second public key to the generation of the digital signature and the key distribution in the key distribution protocol. Encryption may be restricted.

【0122】第1制御ベクトルが第1私用キーでもって
ディジタル署名の生成を制御ベクトルし、また第2制御
ベクトルが第2私用キーの使用がディジタル署名の生成
を行うことを禁止してもよい。
Even if the first control vector controls the generation of the digital signature with the first private key, and the second control vector prohibits the use of the second private key from generating the digital signature. Good.

【0123】本発明の公用キー、私用キーペア発生器を
含む公用キー暗号システムを管理するための装置は、ユ
ーザに知られる第1シード値を用いて第1公用キー、私
用キーペアを生成し、また第1公用キー、私用キーペア
の第1使用を定義する第1制御ベクトルを生成する第1
生成手段と、ユーザに知られない第2シード値を用いて
第2公用キー、私用キーペアを生成し、また第2公用キ
ー、私用キーペアの第2使用を定義する第2制御ベクト
ルを生成する第2生成手段と、第1制御ベクトルを用い
て第1公用キー、私用キーペアの使用を制御するため
の、第1生成手段に連結される制御手段と、第2制御ベ
クトルにより第2公用キー、私用キーペアの使用を制御
するための、第2生成手段に連結される制御手段とを含
んでいる。
An apparatus for managing a public key cryptosystem including a public key / private key pair generator of the present invention generates a first public key / private key pair using a first seed value known to a user. , Also a first public key, a first to generate a first control vector defining a first use of the private key pair,
A second public key and a private key pair are generated using a generating means and a second seed value unknown to the user, and a second control vector defining a second use of the second public key and the private key pair is generated. Second generating means for controlling the use of the first public key and private key pair using the first control vector, and the second public vector by the second control vector. A key, a control means coupled to the second generating means for controlling the use of the private key pair.

【0124】ここで、第1シード値がパスフレーズから
生成されてもよく、第2シード値が真の乱数であっても
よい。
Here, the first seed value may be generated from the passphrase, and the second seed value may be a true random number.

【0125】第1生成手段が、第1シード値を用いて第
1乱数を生成し、また第1公用キー、私用キーペアの生
成に第1乱数を適用してもよい。
The first generating means may generate the first random number using the first seed value, and may apply the first random number to generate the first public key / private key pair.

【0126】第2生成手段が、擬似乱数発生器において
第2シード値を用いて第2乱数を生成し、また第2公用
キー、私用キーペアの生成に第2乱数を適用してもよ
い。
The second generating means may generate the second random number by using the second seed value in the pseudo random number generator, and may apply the second random number to generate the second public key / private key pair.

【0127】第1制御ベクトルが2構成要素として、第
1公用キーの使用を制御するための第1公用キー制御ベ
クトルおよび第1私用キーの使用を制御するための第1
私用キー制御ベクトルを有してもよい。
The first control vector has two components, the first public key control vector for controlling the use of the first public key and the first public key for controlling the use of the first private key.
It may have a private key control vector.

【0128】第2制御ベクトルが2構成要素として、第
2公用キーの使用を制御するための第2公用キー制御ベ
クトルおよび第2私用キーを制御ベクトルするための第
2私用キー制御ベクトルを有してもよい。
The second control vector has two components, a second public key control vector for controlling the use of the second public key and a second private key control vector for controlling the second private key. You may have.

【0129】第1制御ベクトルが第1私用キーの使用を
ディジタル署名の生成に制限するよう第1私用キーを制
御し、また第2制御ベクトルが第2私用キーの使用をデ
ィジタル署名の生成およびキー分散プロトコルの一部と
して受信される暗号化されたキーの解読に制限するよう
第2私用キーを制御してもよい。
The first control vector controls the first private key to limit the use of the first private key to the generation of the digital signature, and the second control vector controls the use of the second private key of the digital signature. The second private key may be controlled to limit generation and decryption of encrypted keys received as part of the key distribution protocol.

【0130】第1制御ベクトルが第1公用キーの使用を
ディジタル署名の検証に制限し、また第2制御ベクトル
が第2公用キーの使用をディジタル署名の検証およびキ
ー分散プロトコルにおけるキーの暗号化を制限してもよ
い。
The first control vector limits the use of the first public key to the verification of the digital signature, and the second control vector limits the use of the second public key to the verification of the digital signature and the encryption of the key in the key distribution protocol. You may limit it.

【0131】第1制御ベクトルは第1私用キーでもって
ディジタル署名の生成を制御し、第2制御ベクトルは第
2私用キーの使用がディジタル署名の生成を禁止しても
よい。
The first control vector may control the generation of the digital signature with the first private key, and the second control vector may have the use of the second private key inhibit the generation of the digital signature.

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

【図1】ユーザi,jが共用する暗号システムAにおい
てパスフレーズから公用キーおよび私用キーペア生成を
説明するブロック図。
FIG. 1 is a block diagram illustrating generation of a public key and a private key pair from a passphrase in a cryptographic system A shared by users i and j.

【図2】ユーザiによる暗号システムAおよびBにおい
てパスフレーズから公用キーおよび私用キーペア生成を
説明するブロック図。
FIG. 2 is a block diagram illustrating generation of a public key and a private key pair from passphrases by cryptographic systems A and B by a user i.

【図3】各々が暗号システムを含む多数のデータ処理装
置を含む通信ネットワーク10の説明図。
FIG. 3 is an illustration of a communications network 10 that includes multiple data processing devices, each including a cryptographic system.

【図4】暗号システム22の構成を示すブロック図。FIG. 4 is a block diagram showing the configuration of a cryptographic system 22.

【図5】暗号化機構30の構成を示すブロック図。FIG. 5 is a block diagram showing a configuration of an encryption mechanism 30.

【図6】暗号化機構30の暗号アルゴリズム144の構
成要素のブロック図。
FIG. 6 is a block diagram of components of a cryptographic algorithm 144 of the encryption mechanism 30.

【図7】RSAキー生成に含まれるステップを説明する
暗号化機構30のキー生成アルゴリズム151の構成要
素のブロック図。
FIG. 7 is a block diagram of the components of a key generation algorithm 151 of the encryption mechanism 30 illustrating the steps involved in RSA key generation.

【図8】「真の」乱数発生器180を説明するブロック
図。
FIG. 8 is a block diagram illustrating a “true” random number generator 180.

【図9】初期にシードされる擬似乱数発生器190を説
明するブロック図。
FIG. 9 is a block diagram illustrating an initially seeded pseudo random number generator 190.

【図10】動的にシードされる擬似乱数発生器200を
説明するブロック図。
FIG. 10 is a block diagram illustrating a dynamically seeded pseudo random number generator 200.

【図11】本発明により動的にシードされる擬似乱数発
生器200を含むように修正された、暗号化機構30の
暗号アルゴリズム144構成要素のブロック図。
FIG. 11 is a block diagram of cryptographic algorithm 144 components of cryptographic mechanism 30 modified to include a dynamically seeded pseudo-random number generator 200 in accordance with the present invention.

【図12】動的にシードされる擬似乱数発生器の特定例
を説明するブロック図。
FIG. 12 is a block diagram illustrating a specific example of a dynamically seeded pseudo random number generator.

【図13】本発明に従って入力パスフレーズから公用キ
ーおよび私用キーペアの生成に含まれるステップを示す
ブロック図。
FIG. 13 is a block diagram showing the steps involved in generating a public key and private key pair from an input passphrase according to the present invention.

【図14】本発明に従って公用キーおよび私用キーペア
生成(GPUPR)命令を説明するブロック図。
FIG. 14 is a block diagram illustrating a public key and private key pair generation (GPUPR) instruction according to the present invention.

【図15】PUキーおよびPRキートークンを説明する
ブロック図。
FIG. 15 is a block diagram illustrating PU key and PR key tokens.

【図16】PU、PRキートークンの制御ベクトル部分
を説明するブロック図。
FIG. 16 is a block diagram illustrating a control vector portion of PU and PR key tokens.

【図17】パスフレーズ選択プロセスを説明するブロッ
ク図。
FIG. 17 is a block diagram illustrating a passphrase selection process.

【図18】ユーザアプリケーションが提供する試用パス
フレーズテストのためパスフレーズフィルタを用いる暗
号システムを説明するブロック図。
FIG. 18 is a block diagram illustrating a cryptographic system that uses a passphrase filter for a trial passphrase test provided by a user application.

【図19】パスフレーズフィルタの機能要素を説明する
ブロック図。
FIG. 19 is a block diagram illustrating functional elements of a passphrase filter.

【符号の説明】[Explanation of symbols]

1,30 暗号化機構(CF) 2 暗号命令セット 3 キー記憶装置 4 暗号化機構アクセスプログラム 5 ユーザアプリケーションプログラム 6 パスフレーズフィルタユーティリティプログラム 7 チェックパスフレーズサービス 10 通信ネットワーク 20 データ処理装置 22 暗号システム 32 暗号キーデータセット(CKDS) 34 暗号化機構アクセスプログラム(CFAP) 36 アプリケーションプログラム(APPL) 42 アプリケーションプログラムA(APPL A) 43,44,45 46 キー記憶装置マネージャ 47 キー生成機能 48 キーパージ機能 52 GPUPR命令 140 機密保護範囲 142 命令処理装置 144,150 暗号アルゴリズム 146 暗号化機構環境記憶装置 151 キー生成アルゴリズム(KGA) 152 乱数生成アルゴリズム 180 「真」乱数発生器 181 ハードウエア回路 190 初期にシードされる擬似乱数発生器 191,201 アルゴリズム 194 シード記憶装置 200 動的にシードされる擬似乱数発生器 1, 30 Cryptographic mechanism (CF) 2 Cryptographic instruction set 3 Key storage device 4 Cryptographic mechanism access program 5 User application program 6 Passphrase filter utility program 7 Check passphrase service 10 Communication network 20 Data processing device 22 Cryptographic system 32 Cryptography Key data set (CKDS) 34 Cryptographic mechanism access program (CFAP) 36 Application program (APPL) 42 Application program A (APPL A) 43, 44, 45 46 Key storage manager 47 Key generation function 48 Key purge function 52 GPUPR instruction 140 Security range 142 Instruction processing device 144,150 Cryptographic algorithm 146 Cryptographic mechanism environment storage device 151 Key generation algorithm ( GA) 152 random number generation algorithm 180 "true" random number generator 181 pseudo-random number generator 191 and 201 the algorithm 194 seed memory 200 pseudo random number generator which is dynamically seed is hardware circuit 190 seeds initially

【手続補正書】[Procedure amendment]

【提出日】平成4年11月16日[Submission date] November 16, 1992

【手続補正1】[Procedure Amendment 1]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】特許請求の範囲[Name of item to be amended] Claims

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【特許請求の範囲】[Claims]

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ドナルド、ビー、ジョンソン アメリカ合衆国バージニア州、マナサス、 クリスタル、クリーク、レーン、11635 (72)発明者 アン、ブイ、リ アメリカ合衆国バージニア州、マナサス、 バトルフィールド、ドライブ、10227 (72)発明者 ウィリアム、シー、マーティン アメリカ合衆国ノースカロライナ州、コン コード、ヒリアード、レーン、1835 (72)発明者 ロスティスロー、プリマク アメリカ合衆国バージニア州、ダンフリー ズ、フェアウェイ、ドライブ、15900 (72)発明者 ジョン、ディー、ウィルキンズ アメリカ合衆国バージニア州、サマービ ル、ピー、オー、ボックス、8 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Donald, B, Johnson United States Virginia, Manassas, Crystal, Creek, Lane, 11635 (72) Inventor Anne, Buoy, Re United States Virginia, Manassas, Battlefield, Drive, 10227 (72) Inventor William, Sea, Martin North Carolina, USA, Concord, Hilliard, Lane, 1835 (72) Inventor Lostislaw, Primac, Virginia, Dumfries, Fairway, Drive, 15900 (72) Inventor John, Dee, Wilkins Summerville, Pea, Oh, Box, 8 Virginia, USA

Claims (15)

【特許請求の範囲】[Claims] 【請求項1】データ処理システムにおいて、公用キー、
私用キーペア発生器を含む公用キー暗号システムを管理
する方法であって、 ユーザに知られている第1のシード値を用いて第1の公
用キー、私用キーペアを生成し、また前記第1の公用キ
ー、私用キーペアの第1の使用を定義する第1の制御ベ
クトルを生成するステップと、 ユーザに知られている第2のシード値を用いて第2の公
用キー、私用キーペアを生成し、また前記第2の公用キ
ー、私用キーペアの第2の使用を定義する第2の制御ベ
クトルを生成するステップと、 前記第1の制御ベクトルを用いて前記第1の公用キー、
私用キーペアの使用を制御するステップと、 前記第2の制御ベクトルを用いて前記第2の公用キー、
私用キーペアの使用を制御するステップとを含むことを
特徴とする方法。
1. A public key in a data processing system,
A method of managing a public key cryptosystem including a private key pair generator, the method comprising: generating a first public key, a private key pair using a first seed value known to a user; Generating a first control vector that defines a first use of the public key, private key pair of, and a second public key, private key pair using a second seed value known to the user. Generating and also generating a second control vector defining a second use of said second public key, a private key pair, said first public key using said first control vector,
Controlling the use of a private key pair, the second public key using the second control vector,
Controlling the use of the private key pair.
【請求項2】データ処理システムにおいて、公用キー、
私用キーペア発生器を含む公用キー暗号システムを管理
する方法であって、 パスフレーズから導出される第1のシード値を用いて第
1の乱数を生成するステップと、 ユーザには知られない第2のシード値を用いて第2の乱
数を生成するステップと、 前記第1の乱数を用いて第1の公用キー、私用キーペア
を生成し、また前記第1の公用キーおよび前記第1の私
用キーの第1の使用を定義するために、それぞれ第1の
公用キー制御ベクトルおよび第1の私用キー制御ベクト
ルを生成するステップと、 前記第2の乱数を用いて第2の公用キー、私用キーペア
を生成し、また前記第2の公用キーおよび前記第2の私
用キーの第2の使用を定義するために、それぞれ第2の
公用キー制御ベクトルおよび第2の私用キー制御ベクト
ルを生成するステップと、 前記第1の公用キー制御ベクトルおよび前記第1の私用
キー制御ベクトルを用いて、それぞれ前記第1の公用キ
ーおよび前記第1の私用キーの使用を制御するステップ
と、 前記第2の公用キー制御ベクトルおよび前記第2の私用
キー制御ベクトルを用いて、それぞれ前記第2の公用キ
ーおよび前記第2の私用キーの使用を制御するステップ
とを含むことを特徴とする方法。
2. A public key in a data processing system,
A method of managing a public key cryptosystem including a private key pair generator, the method comprising: generating a first random number using a first seed value derived from a passphrase; Generating a second random number using a seed value of 2; generating a first public key, a private key pair using the first random number; and generating the first public key and the first public key. Generating a first public key control vector and a first private key control vector, respectively, to define a first use of the private key; and using the second random number to generate a second public key. , A second public key control vector and a second private key control, respectively, for generating a private key pair and defining a second use of the second public key and the second private key, respectively. Step to generate vector Controlling the use of the first public key and the first private key using the first public key control vector and the first private key control vector, respectively. Controlling the use of said second public key and said second private key with two public key control vectors and said second private key control vector, respectively. .
【請求項3】データ処理システムにおいて、キー発生器
を有する暗号システムを管理する方法であって、 パスフレーズから導出される第1のシード値を用いて第
1の乱数を生成するステップと、 ユーザに知られない第2のシード値を用いて第2の乱数
を生成するステップと、 前記第1の乱数を用いて第1キーを生成し、また前記第
1のキーの使用を制御するための第1の制御ベクトルを
生成するステップと、 前記第2の乱数を用いて第2のキーを生成し、また前記
第2のキーの第2の私用を制御するための第2の制御ベ
クトルを生成するステップと、 前記第1の制御ベクトルにより前記第1のキーの使用を
制御するステップと、 前記第2の制御ベクトルにより前記第2のキーの使用を
制御するステップと、 前記第1のキーの前記第1の使用が、前記第2のキーの
前記第2の使用と異なるステップとを含むことを特徴と
する方法。
3. A method of managing a cryptographic system having a key generator in a data processing system, the method comprising: generating a first random number using a first seed value derived from a passphrase; Generating a second random number using a second seed value unknown to the user, and generating a first key using the first random number, and controlling the use of the first key. Generating a first control vector, generating a second key using the second random number, and generating a second control vector for controlling a second private use of the second key. Generating, controlling the use of the first key by the first control vector, controlling the use of the second key by the second control vector, the first key The first use of And a step different from the second use of the second key.
【請求項4】データ処理システムにおいて、公用キー、
私用キーペア発生器を含む公用キー暗号システムを管理
するための方法であって、 パスフレーズから導出される第1のシード値を用いて乱
数を生成するステップと、 前記乱数を用いて公用キー、私用キーペアを生成し、前
記第1の制御ベクトルは前記公用キーの使用を制御する
もので、前記第2の制御ベクトルは前記私用キーの使用
を制御するものであり、前記公用キーに対して前記第1
の制御ベクトルを生成し、また前記私用キーに対して前
記第2の制御ベクトルを生成するためのステップを含む
ことを特徴とする方法。
4. A public key in a data processing system,
A method for managing a public key cryptosystem including a private key pair generator, the method comprising: generating a random number using a first seed value derived from a passphrase; Generating a private key pair, the first control vector controlling the use of the public key, the second control vector controlling the use of the private key, and The first
Generating a second control vector for the private key and a second control vector for the private key.
【請求項5】データ処理システムにおいて、公用キー、
私用キーペアを含む公用キー暗号システムを管理するた
めの方法であって、 パスフレーズから導出されるシード値を用いて乱数を生
成するステップと、 前記乱数を用いて公用キー、私用キーペアを生成するス
テップとを含むことを特徴とする方法。
5. A data processing system, a public key,
A method for managing a public key cryptosystem including a private key pair, the method comprising: generating a random number using a seed value derived from a passphrase; generating a public key and a private key pair using the random number. And a step of performing.
【請求項6】データ処理システムにおいて、公用キー、
私用キーペア発生器を含む公用キー暗号システムを管理
するための方法であって、 ユーザに知れている第1のシードを用いて第1の公用キ
ー、私用キーペアを生成し、また前記第1の公用キー、
私用キーペアの第1の使用を定義する第1の制御ベクト
ルを生成するステップと、 ユーザに知れない第2のシード値を用いて第2の公用キ
ー、私用キーペアを生成し、また前記第2の公用キー、
私用キーペアの第2の使用を定義する第2の制御ベクト
ルを生成するステップと、 前記第1の制御ベクトルを用いて前記第1の公用キー、
私用キーペアの使用を制御するステップと、 前記第2の制御ベクトルにより前記第2の公用キー、私
用キーペアの使用を制御するステップとを含む方法を実
行することを特徴とする方法。
6. A public key in a data processing system,
A method for managing a public key cryptosystem including a private key pair generator, the method comprising: generating a first public key, a private key pair using a first seed known to a user; Official key of the
Generating a first control vector defining a first use of a private key pair, generating a second public key, a private key pair using a second seed value unknown to the user, and 2 official keys,
Generating a second control vector defining a second use of a private key pair, the first public key using the first control vector,
A method, comprising: controlling the use of a private key pair; and controlling the use of the second public key, a private key pair with the second control vector.
【請求項7】データ処理システムにおいて、公用キー、
私用キーペア発生器を含む公用キー暗号システムを管理
するための方法であって、 パスフレーズから導出される第1のシード値を用いて第
1の乱数を生成するステップと、 ユーザに知られない第2のシード値を用いて第2の乱数
を生成するステップと、 前記第1の乱数を用いて第1の公用キー、私用キーペア
を生成し、また前記第1の公用キーおよび前記第1の私
用キーの第1の使用をそれぞれ定義するための第1の公
用制御キーベクトルおよび第2の私用キー制御ベクトル
を生成するステップと、 前記第2の乱数を用いて第2の公用キー、私用キーペア
を生成し、また前記第2の公用キーおよび前記第2の私
用キーの第2の使用をそれぞれ定義するために、第2の
公用キー制御ベクトルおよび第2の私用キー制御ベクト
ルを生成するステップと、 前記第1の公用キー制御ベクトルおよび前記第1の私用
キー制御ベクトルを使用して、それぞれ前記第1の公用
キーおよび前記第1の私用キーの前記第1の使用を制御
するステップと、 前記第2の公用キー制御ベクトルおよび前記第2の私用
キー制御ベクトルを使用して、それぞれ前記第2の公用
キーおよび前記第2の私用キーの使用を制御するステッ
プとを含むことを特徴とする方法。
7. A public key in a data processing system,
A method for managing a public key cryptosystem including a private key pair generator, the method comprising: generating a first random number using a first seed value derived from a passphrase; Generating a second random number using a second seed value, generating a first public key, a private key pair using the first random number, and generating the first public key and the first public key. Generating a first public control key vector and a second private key control vector for respectively defining a first use of the private key of the second public key using the second random number. , A second public key control vector and a second private key control for generating a private key pair and defining a second use of the second public key and the second private key, respectively. Vector generating step And using the first public key control vector and the first private key control vector to control the first use of the first public key and the first private key, respectively. And using the second public key control vector and the second private key control vector to control the use of the second public key and the second private key, respectively. A method of including.
【請求項8】データ処理システムにおいて、キー発生器
を有する暗号システムを管理するための方法であって、 パスフレーズから導出される第1のシード値を用いて第
1の乱数を生成するステップと、 ユーザに知られない第2のシード値を用いて第2の乱数
を生成するステップと、 前記第1の乱数を用いて第1のキーを生成し、また前記
第1のキーの使用を制御するための第1の制御ベクトル
を生成するステップと、 前記第2の乱数を用いて第2のキーを生成し、また前記
第2のキーの第2の使用を制御するための第2の制御ベ
クトルを生成するステップと、 前記第1の制御ベクトルにより前記第1のキーの使用を
制御するステップと、 前記第2の制御ベクトルにより前記第2のキーの使用を
制御するステップと、 前記第1のキーの第1の使用が前記第2のキーの前記第
2の使用とは異なっているステップとを含むことを特徴
とする方法。
8. A method for managing a cryptographic system having a key generator in a data processing system, the method comprising: generating a first random number using a first seed value derived from a passphrase. Generating a second random number using a second seed value unknown to the user; generating a first key using the first random number; and controlling the use of the first key A second control for generating a second key using the second random number and controlling a second use of the second key. Generating a vector; controlling the use of the first key by the first control vector; controlling the use of the second key by the second control vector; The first of the keys The use of the second key is different from the second use of the second key.
【請求項9】データ処理システムにおいて、公用キー、
私用キーペアを含む公用キー暗号システムを管理するた
めの方法であって、 パスフレーズから導出される第1のシード値を用いて乱
数を生成するステップと、 前記乱数を用いて公用キー、私用キーペアを生成し、ま
た前記公用キーに対する第1の制御ベクトルおよび前記
私用キーに対する第2の制御ベクトルを生成し、前記第
1の制御ベクトルが前記公用キーの使用を制御し、前記
第2の制御ベクトルが前記私用キーの使用を制御するス
テップとを含むことを特徴とする方法。
9. A data processing system, a public key,
A method for managing a public key cryptosystem including a private key pair, the method comprising: generating a random number using a first seed value derived from a passphrase; Generating a key pair and generating a first control vector for the public key and a second control vector for the private key, the first control vector controlling the use of the public key, A control vector controlling the use of the private key.
【請求項10】データ処理システムにおいて、公用キ
ー、私用キーペア発生器を含む公用キー暗号システムを
管理するための方法であって、 パスフレーズから導出されるシード値を用いて乱数を生
成するステップと、 前記乱数を用いて公用キー、私用キーペアを生成するス
テップとを含むことを特徴とする方法。
10. A method for managing a public key cryptosystem including a public key and a private key pair generator in a data processing system, the method comprising generating a random number using a seed value derived from a passphrase. And a step of generating a public key / private key pair using the random number.
【請求項11】データ処理システムにおいて、公用キ
ー、私用キーペア発生器を含む公用キー暗号システムを
管理するための装置であって、 ユーザに知られる第1シード値を用いて第1公用キー、
私用キーペアを生成し、また前記第1公用キー、私用キ
ーペアの第1使用を定義する第1制御ベクトルを生成す
る第1生成手段と、 ユーザに知られない第2シード値を用いて第2公用キ
ー、私用キーペアを生成し、また前記第2公用キー、私
用キーペアの第2使用を定義する第2制御ベクトルを生
成する第2生成手段と、 前記第1制御ベクトルを用いて前記第1公用キー、私用
キーペアの使用を制御するための、前記第1生成手段に
連結される制御手段と、 前記第2制御ベクトルにより前記第2公用キー、私用キ
ーペアの使用を制御するための、前記第2生成手段に連
結される前記制御手段とを含むことを特徴とする装置。
11. A device for managing a public key cryptosystem including a public key and a private key pair generator in a data processing system, the first public key using a first seed value known to a user,
First generating means for generating a private key pair and also for generating a first control vector defining a first use of said first public key, private key pair; and a second seed value using a second seed value unknown to the user. Second public key and a private key pair, and second generating means for generating a second control vector defining a second use of the second public key and private key pair; and using the first control vector, Control means coupled to the first generating means for controlling the use of the first public key, private key pair; and controlling the use of the second public key, private key pair by the second control vector. Apparatus for controlling the second generation means, the control means being coupled to the second generation means.
【請求項12】データ処理システムにおいて、公用キ
ー、私用キーペア発生器を含む公用キー暗号システムを
管理するための装置であって、 パスフレーズから導出される第1シード値を用いて第1
乱数を生成するための第1生成手段と、 ユーザに知られない第2シード値を用いて第2乱数を生
成するための第2生成手段と、 前記第1乱数を用いて第1公用キー、私用キーペアを生
成し、また前記第1公用キーおよび前記第1私用キーの
第1使用をそれぞれ定義するための第1公用キー制御ベ
クトルおよび第1私用キー制御ベクトルを生成する前記
第1生成手段と、 前記第2乱数を用いて第2公用キー、私用キーペアを生
成し、また前記第2公用キーおよび前記第2私用キーの
第2使用をそれぞれ定義するための第2公用キー制御ベ
クトルおよび第2私用キー制御ベクトルを生成する前記
第2生成手段と、 前記第1公用キー制御ベクトルおよび前記第1私用キー
制御ベクトルをそれぞれ用いて、前記第1公用キーおよ
び前記第1私用キーの使用を制御するための、前記第1
生成手段に連結される制御手段と、 前記第2公用キー制御ベクトルおよび前記第2私用キー
制御ベクトルをそれぞれ用いて、前記第2公用キーおよ
び前記第2私用キーの使用を制御するための、前記第2
生成手段に連結される制御手段とを含むことを特徴とす
る装置。
12. A device for managing a public key cryptosystem, including a public key and a private key pair generator, in a data processing system, the device using a first seed value derived from a passphrase.
A first generating unit for generating a random number; a second generating unit for generating a second random number using a second seed value unknown to the user; a first public key using the first random number; A first public key control vector for generating a private key pair and a first public key control vector and a first private key control vector for defining a first use of the first public key and the first private key, respectively; A second public key for generating a second public key and a private key pair using the second random number, and defining a second use of the second public key and the second private key, respectively. The second public key control vector and the first private key control vector are respectively used to generate a control vector and a second private key control vector, and the first public key control vector and the first private key control vector. Private key The first for controlling the use of
Control means coupled to the generation means, and for controlling the use of the second public key and the second private key by using the second public key control vector and the second private key control vector, respectively. , The second
A control means coupled to the generating means.
【請求項13】データ処理システムにおいて、キー発生
器を有する暗号システムを管理するための装置であっ
て、 パスフレーズから導出される第1シード値を用いて第1
乱数を生成するための第1生成手段と、 ユーザに知られない第2シード値を用いて第2乱数を生
成するための第2生成手段と、 前記第1乱数を用いて第1キーを生成し、また前記第1
キーの使用を制御するための第1制御ベクトルを生成す
る前記第1生成手段と、 前記第2乱数を用いて第2キーを生成し、また前記第2
キーの第2使用を制御するための第2制御ベクトルを生
成する前記第2生成手段と、 前記第1制御ベクトルでもって前記第1キーの使用を制
御するための前記第1生成手段に連結される制御手段
と、 前記第2制御ベクトルでもって前記第2キーの使用を制
御するための前記第2生成手段に連結される前記制御手
段と、 前記第1キーの前記第1使用が前記第2キーの前記第2
使用と異なることを含むことを特徴とする装置。
13. A device for managing a cryptographic system having a key generator in a data processing system, the first seed value being derived from a passphrase.
First generating means for generating a random number, second generating means for generating a second random number using a second seed value unknown to the user, and generating a first key using the first random number And also the first
Said first generating means for generating a first control vector for controlling the use of a key; generating a second key using said second random number;
Coupled to said second generating means for generating a second control vector for controlling the second use of a key, and to said first generating means for controlling the use of said first key with said first control vector Control means coupled to the second generating means for controlling the use of the second key with the second control vector, the first use of the first key being the second The second of the key
A device characterized in that it includes different from use.
【請求項14】データ処理システムにおいて、公用キ
ー、私用キーペア発生器を含む公用キー暗号システムを
管理するための装置であって、 パスフレーズから導出される第1シード値を用いて乱数
を生成する生成手段と、 前記乱数を用いて公用キー、私用キーペアを生成し、ま
た前記公用キーに対する第1制御ベクトルおよび前記私
用キーに対する第2制御ベクトルを生成し、前記第1制
御ベクトルが前記公用キーの使用を制御し、前記第2制
御ベクトルが前記私用キーの使用を制御する前記生成手
段とを含むことを特徴とする装置。
14. A device for managing a public key cryptosystem including a public key and a private key pair generator in a data processing system, wherein a random number is generated by using a first seed value derived from a passphrase. Generating means for generating a public key and a private key pair using the random number, and generating a first control vector for the public key and a second control vector for the private key, wherein the first control vector is An apparatus for controlling the use of a public key, said second control vector comprising said generating means for controlling the use of said private key.
【請求項15】データ処理システムにおいて、公用キ
ー、私用キーペア発生器を含む公用キー暗号システムを
管理するための装置であって、 パスフレーズから導出されるシード値を用いて乱数を生
成する生成手段と、 前記乱数を用いて公用キー、私用キーペアを生成する前
記生成手段とを含むことを特徴とする装置。
15. An apparatus for managing a public key cryptosystem including a public key and a private key pair generator in a data processing system, wherein the seed value derived from a passphrase is used to generate a random number. An apparatus comprising: a means for generating a public key and a private key pair using the random number.
JP4231284A 1991-09-27 1992-08-06 Device that manages public key cryptosystems Expired - Fee Related JP2690004B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/766,533 US5201000A (en) 1991-09-27 1991-09-27 Method for generating public and private key pairs without using a passphrase
US766533 2001-01-19

Publications (2)

Publication Number Publication Date
JPH05224604A true JPH05224604A (en) 1993-09-03
JP2690004B2 JP2690004B2 (en) 1997-12-10

Family

ID=25076731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4231284A Expired - Fee Related JP2690004B2 (en) 1991-09-27 1992-08-06 Device that manages public key cryptosystems

Country Status (4)

Country Link
US (1) US5201000A (en)
EP (1) EP0534420A3 (en)
JP (1) JP2690004B2 (en)
CA (1) CA2075254A1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002515613A (en) * 1998-05-08 2002-05-28 サーティコム コーポレーション Private key validity and confirmation
JP2002523974A (en) * 1998-08-18 2002-07-30 シーメンス アクチエンゲゼルシヤフト Method and apparatus for forming a secret communication key for a pre-determined asymmetric encryption key pair
JP2005295570A (en) * 2004-04-02 2005-10-20 Microsoft Corp Method and system which restore private data protected with password through communication network without exposing private data
JP2006513641A (en) * 2003-01-07 2006-04-20 クゥアルコム・インコーポレイテッド System, apparatus and method for exchanging encryption key
JP2007104731A (en) * 2001-11-16 2007-04-19 Yazaki Corp Encryption key management apparatus
JP2007104732A (en) * 2001-11-16 2007-04-19 Yazaki Corp Decrypting device
JP2010506310A (en) * 2006-10-04 2010-02-25 マイクロソフト コーポレーション Character position based password recovery
JP2010093860A (en) * 1997-10-14 2010-04-22 Certicom Corp Key validation scheme
JP2013029618A (en) * 2011-07-27 2013-02-07 Canon Inc Information processing device, information processing method and program
US8594324B2 (en) 1998-10-14 2013-11-26 Certicom Corp. Key validation scheme
US8953787B2 (en) 1996-05-17 2015-02-10 Certicom Corp. Strengthened public key protocol

Families Citing this family (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418854A (en) * 1992-04-28 1995-05-23 Digital Equipment Corporation Method and apparatus for protecting the confidentiality of passwords in a distributed data processing system
US5491752A (en) * 1993-03-18 1996-02-13 Digital Equipment Corporation, Patent Law Group System for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens
AU7707894A (en) * 1993-09-29 1995-04-18 Pumpkin House Incorporated Enciphering/deciphering device and method and enciphering/deciphering communication system
WO1995014283A2 (en) * 1993-11-08 1995-05-26 Hughes Aircraft Company Protected distribution protocol for keying and certificate material
US5541997A (en) * 1994-01-31 1996-07-30 Motorola, Inc. Method and apparatus for detecting correctly decrypted communications
JPH07271865A (en) 1994-04-01 1995-10-20 Mitsubishi Corp Method for managing copyright of data base
US6088797A (en) * 1994-04-28 2000-07-11 Rosen; Sholom S. Tamper-proof electronic processing device
US6185546B1 (en) 1995-10-04 2001-02-06 Intel Corporation Apparatus and method for providing secured communications
US5588060A (en) * 1994-06-10 1996-12-24 Sun Microsystems, Inc. Method and apparatus for a key-management scheme for internet protocols
US7302415B1 (en) * 1994-09-30 2007-11-27 Intarsia Llc Data copyright management system
DE69532434T2 (en) 1994-10-27 2004-11-11 Mitsubishi Corp. Device for file copyright management system
US6424715B1 (en) * 1994-10-27 2002-07-23 Mitsubishi Corporation Digital content management system and apparatus
US5606613A (en) * 1994-12-22 1997-02-25 Pitney Bowes Inc. Method for identifying a metering accounting vault to digital printer
US8595502B2 (en) 1995-09-29 2013-11-26 Intarsia Software Llc Data management system
US5933503A (en) * 1996-03-15 1999-08-03 Novell, Inc Controlled modular cryptography apparatus and method
JP2842389B2 (en) * 1996-07-11 1999-01-06 日本電気株式会社 Random number generator
US6091819A (en) * 1996-08-16 2000-07-18 Telcordia Technologies, Inc. Accelerating public-key cryptography by precomputing randomly generated pairs
US6078667A (en) * 1996-10-10 2000-06-20 Certicom Corp. Generating unique and unpredictable values
US5910956A (en) * 1996-11-05 1999-06-08 Northrop Gruman Corporation Random time interval generator
US6575372B1 (en) 1997-02-21 2003-06-10 Mondex International Limited Secure multi-application IC card system having selective loading and deleting capability
US6317832B1 (en) * 1997-02-21 2001-11-13 Mondex International Limited Secure multiple application card system and process
US6220510B1 (en) 1997-05-15 2001-04-24 Mondex International Limited Multi-application IC card with delegation feature
US6164549A (en) 1997-05-15 2000-12-26 Mondex International Limited IC card with shell feature
US6385723B1 (en) 1997-05-15 2002-05-07 Mondex International Limited Key transformation unit for an IC card
US6488211B1 (en) 1997-05-15 2002-12-03 Mondex International Limited System and method for flexibly loading in IC card
US6328217B1 (en) 1997-05-15 2001-12-11 Mondex International Limited Integrated circuit card with application history list
JP3076273B2 (en) * 1997-07-07 2000-08-14 日本電気株式会社 Key recovery condition encryption device and decryption device
US6212635B1 (en) * 1997-07-18 2001-04-03 David C. Reardon Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place
US7047415B2 (en) 1997-09-22 2006-05-16 Dfs Linkages, Inc. System and method for widely witnessed proof of time
US7017046B2 (en) 1997-09-22 2006-03-21 Proofspace, Inc. System and method for graphical indicia for the certification of records
JP4563577B2 (en) * 1997-09-22 2010-10-13 プルーフスペース インコーポレイテッド Transient key digital stamp method and system
US6381696B1 (en) 1998-09-22 2002-04-30 Proofspace, Inc. Method and system for transient key digital time stamps
FI105253B (en) * 1997-11-11 2000-06-30 Sonera Oyj Generation of start value
US6247127B1 (en) * 1997-12-19 2001-06-12 Entrust Technologies Ltd. Method and apparatus for providing off-line secure communications
US6055316A (en) * 1997-12-26 2000-04-25 Sun Microsystems, Inc. System and method for deriving an appropriate initialization vector for secure communications
US6736325B1 (en) 1998-01-22 2004-05-18 Mondex International Limited Codelets
US6357665B1 (en) 1998-01-22 2002-03-19 Mondex International Limited Configuration of IC card
US6742120B1 (en) 1998-02-03 2004-05-25 Mondex International Limited System and method for controlling access to computer code in an IC card
JPH11225138A (en) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd Encryption processing unit encryption processing method and recording medium recoding the method
US5974144A (en) * 1998-02-25 1999-10-26 Cipheractive Ltd. System for encryption of partitioned data blocks utilizing public key methods and random numbers
US6041122A (en) * 1998-02-27 2000-03-21 Intel Corporation Method and apparatus for hiding crytographic keys utilizing autocorrelation timing encoding and computation
US6615350B1 (en) 1998-03-23 2003-09-02 Novell, Inc. Module authentication and binding library extensions
US6532451B1 (en) * 1998-03-23 2003-03-11 Novell, Inc. Nested strong loader apparatus and method
US6751735B1 (en) 1998-03-23 2004-06-15 Novell, Inc. Apparatus for control of cryptography implementations in third party applications
US6701433B1 (en) 1998-03-23 2004-03-02 Novell, Inc. Method and apparatus for escrowing properties used for accessing executable modules
US7092523B2 (en) * 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
GB9902687D0 (en) 1999-02-08 1999-03-31 Hewlett Packard Co Cryptographic protocol
DE19935285B4 (en) * 1999-07-27 2012-07-05 Deutsche Telekom Ag Method for generating / regenerating an encryption key for a cryptography method
DE19935286A1 (en) * 1999-07-27 2001-02-01 Deutsche Telekom Ag Process for the secure distributed generation of an encryption key
AU6640500A (en) * 1999-08-13 2001-03-19 Microsoft Corporation Methods and systems of protecting digital content
US6886098B1 (en) * 1999-08-13 2005-04-26 Microsoft Corporation Systems and methods for compression of key sets having multiple keys
US7065216B1 (en) 1999-08-13 2006-06-20 Microsoft Corporation Methods and systems of protecting digital content
JP2001066989A (en) * 1999-08-31 2001-03-16 Fuji Xerox Co Ltd Unidirectional function generating method, unidirectional function generating device, certification device, authentication method and authentication device
US20080082446A1 (en) * 1999-10-01 2008-04-03 Hicks Christian B Remote Authorization for Unlocking Electronic Data System and Method
US6834351B1 (en) 1999-10-29 2004-12-21 Gateway, Inc. Secure information handling system
TW548940B (en) * 1999-11-29 2003-08-21 Gen Instrument Corp Generation of a mathematically constrained key using a one-way function
FR2807245B1 (en) * 2000-03-30 2002-05-24 France Telecom METHOD FOR PROTECTING A CHIP FROM FRAUD
US7222233B1 (en) 2000-09-14 2007-05-22 At&T Corp. Method for secure remote backup
US6700076B2 (en) * 2000-09-28 2004-03-02 Eic Corporation Multi-layer interconnect module and method of interconnection
US9047609B2 (en) * 2000-11-29 2015-06-02 Noatak Software Llc Method and system for dynamically incorporating advertising content into multimedia environments
US7409061B2 (en) * 2000-11-29 2008-08-05 Noatak Software Llc Method and system for secure distribution of subscription-based game software
US7120799B2 (en) * 2000-12-15 2006-10-10 International Business Machines Corporation Method and apparatus for dual hardware and software cryptography
FR2823927A1 (en) * 2001-04-18 2002-10-25 Romain Hudelot Asymmetric dynamic cryptography for electronic transactions authenticates without complex key entry
US7251326B2 (en) 2001-06-29 2007-07-31 Harris Corporation Method and apparatus for data encryption
US20030016823A1 (en) * 2001-07-05 2003-01-23 Shine Chung Method and apparatus of using irrational numbers in random number generators for cryptography
FR2827981A1 (en) * 2001-07-27 2003-01-31 Thomson Licensing Sa Internet financial transaction installation with transaction and teleloading management, in which server controls diffusion and storage of data to sent to or teleloaded into a remote terminal
JP2003216037A (en) * 2001-11-16 2003-07-30 Yazaki Corp Cipher key, enciphering device, enciphering/deciphering device, cipher key management device, and deciphering device
JP4291970B2 (en) * 2001-12-20 2009-07-08 富士通株式会社 Cryptographic processing device
US7136867B1 (en) * 2002-04-08 2006-11-14 Oracle International Corporation Metadata format for hierarchical data storage on a raw storage device
US7672945B1 (en) 2002-04-08 2010-03-02 Oracle International Corporation Mechanism for creating member private data in a global namespace
US6988204B2 (en) * 2002-04-16 2006-01-17 Nokia Corporation System and method for key distribution and network connectivity
US7085933B2 (en) * 2002-06-11 2006-08-01 Lenvo (Singapore) Pte, Ltd. Computer system apparatus and method for improved assurance of authentication
JP4007873B2 (en) * 2002-07-09 2007-11-14 富士通株式会社 Data protection program and data protection method
US7209561B1 (en) 2002-07-19 2007-04-24 Cybersource Corporation System and method for generating encryption seed values
US7274792B2 (en) * 2002-08-09 2007-09-25 Broadcom Corporation Methods and apparatus for initialization vector processing
US20040103325A1 (en) * 2002-11-27 2004-05-27 Priebatsch Mark Herbert Authenticated remote PIN unblock
US20040109567A1 (en) * 2002-12-05 2004-06-10 Canon Kabushiki Kaisha Encryption key generation in embedded devices
EP1435558A1 (en) * 2003-01-02 2004-07-07 Texas Instruments Incorporated On-device random number generator
US7424115B2 (en) * 2003-01-30 2008-09-09 Nokia Corporation Generating asymmetric keys in a telecommunications system
US7725740B2 (en) * 2003-05-23 2010-05-25 Nagravision S.A. Generating a root key for decryption of a transmission key allowing secure communications
US20070100602A1 (en) * 2003-06-17 2007-05-03 Sunhee Kim Method of generating an exceptional pronunciation dictionary for automatic korean pronunciation generator
KR101000918B1 (en) * 2003-09-01 2010-12-13 삼성전자주식회사 Apparatus and method for reuse public key/private key pair
US7721100B2 (en) * 2003-09-30 2010-05-18 Siemens Aktiengesellschaft Granting an access to a computer-based object
US7532723B2 (en) * 2003-11-24 2009-05-12 Interdigital Technology Corporation Tokens/keys for wireless communications
AR047414A1 (en) * 2004-01-13 2006-01-18 Interdigital Tech Corp AN METHOD AND OFDM DEVICE TO PROTECT AND AUTHENTICATE DIGITAL INFORMATION WIRELESSLY TRANSMITTED
US20070121939A1 (en) * 2004-01-13 2007-05-31 Interdigital Technology Corporation Watermarks for wireless communications
US20050220322A1 (en) * 2004-01-13 2005-10-06 Interdigital Technology Corporation Watermarks/signatures for wireless communications
US20050226421A1 (en) * 2004-02-18 2005-10-13 Interdigital Technology Corporation Method and system for using watermarks in communication systems
US7715565B2 (en) * 2004-07-29 2010-05-11 Infoassure, Inc. Information-centric security
US7483943B2 (en) * 2004-09-21 2009-01-27 Microsoft Corporation Reliable messaging using clocks with synchronized rates
US7536016B2 (en) * 2004-12-17 2009-05-19 Microsoft Corporation Encrypted content data structure package and generation thereof
US8295484B2 (en) * 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
JP4372061B2 (en) * 2005-07-01 2009-11-25 パナソニック株式会社 Confidential information implementation system and LSI
US20070143216A1 (en) * 2005-12-16 2007-06-21 Benaloh Josh D Data Signal with a Database and a Compressed Key
US7499552B2 (en) 2006-01-11 2009-03-03 International Business Machines Corporation Cipher method and system for verifying a decryption of an encrypted user data key
US7523495B2 (en) * 2006-04-19 2009-04-21 Multos Limited Methods and systems for IC card application loading
KR100710271B1 (en) * 2006-05-10 2007-04-20 엘지전자 주식회사 Method and apparatus for playing data between external device and tv set
US8243930B2 (en) * 2007-03-20 2012-08-14 Harris Technology, Llc Counterfeit prevention system based on random processes and cryptography
US8824672B1 (en) * 2007-04-12 2014-09-02 Iowa State University Research Foundation Reconfigurable block encryption logic
US8060750B2 (en) * 2007-06-29 2011-11-15 Emc Corporation Secure seed provisioning
US8307210B1 (en) 2008-05-02 2012-11-06 Emc Corporation Method and apparatus for secure validation of tokens
US9087219B2 (en) * 2008-06-16 2015-07-21 Infineon Technologies Ag Circuit with a plurality of modes of operation
MY151900A (en) * 2008-08-08 2014-07-14 Univ Putra Malaysia Chaotic asymmetric encryption process for data security
FR2946207A1 (en) * 2009-05-28 2010-12-03 Proton World Internat Nv PROTECTION OF FIRST NUMBER GENERATION FOR RSA ALGORITHM
WO2011077269A1 (en) * 2009-12-24 2011-06-30 Nds Limited Private key compression
IL204565A0 (en) * 2010-03-17 2010-11-30 Nds Ltd Data expansion using an approximate method
US8739260B1 (en) 2011-02-10 2014-05-27 Secsign Technologies Inc. Systems and methods for authentication via mobile communication device
US8719952B1 (en) * 2011-03-25 2014-05-06 Secsign Technologies Inc. Systems and methods using passwords for secure storage of private keys on mobile devices
US8856198B2 (en) 2012-03-30 2014-10-07 Freescale Semiconductor, Inc. Random value production methods and systems
US9092283B2 (en) * 2012-03-30 2015-07-28 Freescale Semiconductor, Inc. Systems with multiple port random number generators and methods of their operation
KR101301609B1 (en) * 2012-05-31 2013-08-29 서울대학교산학협력단 Apparatus and method for generating secret key, and recording medium storing program for executing method of the same in computer
US9590959B2 (en) 2013-02-12 2017-03-07 Amazon Technologies, Inc. Data security service
US10084818B1 (en) 2012-06-07 2018-09-25 Amazon Technologies, Inc. Flexibly configurable data modification services
US9286491B2 (en) 2012-06-07 2016-03-15 Amazon Technologies, Inc. Virtual service provider zones
US10075471B2 (en) 2012-06-07 2018-09-11 Amazon Technologies, Inc. Data loss prevention techniques
US9281943B1 (en) * 2012-06-27 2016-03-08 Emc Corporation Defending against factoring by collision
US9300464B1 (en) 2013-02-12 2016-03-29 Amazon Technologies, Inc. Probabilistic key rotation
US9705674B2 (en) 2013-02-12 2017-07-11 Amazon Technologies, Inc. Federated key management
US10467422B1 (en) 2013-02-12 2019-11-05 Amazon Technologies, Inc. Automatic key rotation
US10210341B2 (en) 2013-02-12 2019-02-19 Amazon Technologies, Inc. Delayed data access
US9367697B1 (en) 2013-02-12 2016-06-14 Amazon Technologies, Inc. Data security with a security module
US10211977B1 (en) 2013-02-12 2019-02-19 Amazon Technologies, Inc. Secure management of information using a security module
US9547771B2 (en) 2013-02-12 2017-01-17 Amazon Technologies, Inc. Policy enforcement with associated data
US9264222B2 (en) 2013-02-28 2016-02-16 Apple Inc. Precomputing internal AES states in counter mode to protect keys used in AES computations
US9444694B1 (en) * 2013-03-01 2016-09-13 Tibco Software Inc. Virtual clusters to provide fault containment
US9369276B2 (en) 2013-03-14 2016-06-14 Signority Inc. Digital signature authentication without a certification authority
US9832171B1 (en) 2013-06-13 2017-11-28 Amazon Technologies, Inc. Negotiating a session with a cryptographic domain
US9641328B1 (en) * 2014-03-10 2017-05-02 Ionu Security, Inc. Generation of public-private key pairs
US10432398B1 (en) 2014-04-29 2019-10-01 Robert G. Batchko Prime number prediction
US9397835B1 (en) 2014-05-21 2016-07-19 Amazon Technologies, Inc. Web of trust management in a distributed system
US9438421B1 (en) 2014-06-27 2016-09-06 Amazon Technologies, Inc. Supporting a fixed transaction rate with a variably-backed logical cryptographic key
US9866392B1 (en) 2014-09-15 2018-01-09 Amazon Technologies, Inc. Distributed system web of trust provisioning
US10235399B2 (en) 2014-11-05 2019-03-19 Hewlett Packard Enterprise Development Lp Methods and systems for determining hardware sizing for storage array systems
US10469477B2 (en) 2015-03-31 2019-11-05 Amazon Technologies, Inc. Key export techniques
JP2018128783A (en) * 2017-02-07 2018-08-16 ルネサスエレクトロニクス株式会社 Random number generating device and random number generating method
US10985915B2 (en) 2017-04-12 2021-04-20 Blackberry Limited Encrypting data in a pre-associated state
US11159315B2 (en) * 2018-01-22 2021-10-26 Microsoft Technology Licensing, Llc Generating or managing linked decentralized identifiers
US10911215B2 (en) * 2018-02-12 2021-02-02 Gideon Samid BitMap lattice: a cyber tool comprised of geometric construction
US11228583B2 (en) * 2018-10-01 2022-01-18 Citrix Systems, Inc. Systems and methods for slogan based sharing of living SaaS objects
US11349671B2 (en) 2019-01-24 2022-05-31 Salesforce.Com, Inc. Authenticating communication
US11509467B2 (en) 2020-02-25 2022-11-22 Microsoft Technology Licensing, Llc Story assisted mnemonic phrase
US11329816B2 (en) 2020-06-01 2022-05-10 Hewlett Packard Enterprise Development Lp Encryption keys for removable storage media
US11537740B2 (en) 2021-01-04 2022-12-27 Bank Of America Corporation System for enhanced data security using versioned encryption
WO2022224022A1 (en) * 2021-04-23 2022-10-27 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods of physically unclonable function (puf)-based key derivation function
GR1010217B (en) * 2021-07-21 2022-03-29 Παναγιωτης Εμμανουηλ Ανδρεαδακης Special device for the management of cryptographic keys via synchronisation
US20240056651A1 (en) * 2022-08-09 2024-02-15 Dish Network, L.L.C. Digital rights management using a gateway/set top box without a smart card

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63146631A (en) * 1986-12-10 1988-06-18 Nec Corp Key generating device
JPH02300784A (en) * 1989-04-27 1990-12-12 Internatl Business Mach Corp <Ibm> Cipher key managing method and apparatus

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4196310A (en) * 1976-04-09 1980-04-01 Digital Data, Inc. Secure SCA broadcasting system including subscriber actuated portable receiving terminals
US4200770A (en) * 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
US4218582A (en) * 1977-10-06 1980-08-19 The Board Of Trustees Of The Leland Stanford Junior University Public key cryptographic apparatus and method
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US4736423A (en) * 1985-04-30 1988-04-05 International Business Machines Corporation Technique for reducing RSA Crypto variable storage
US4850017A (en) * 1987-05-29 1989-07-18 International Business Machines Corp. Controlled use of cryptographic keys via generating station established control values
US4908861A (en) * 1987-08-28 1990-03-13 International Business Machines Corporation Data authentication using modification detection codes based on a public one way encryption function
US4992783A (en) * 1988-04-04 1991-02-12 Motorola, Inc. Method and apparatus for controlling access to a communication system
US4941176A (en) * 1988-08-11 1990-07-10 International Business Machines Corporation Secure management of keys using control vectors
US4924514A (en) * 1988-08-26 1990-05-08 International Business Machines Corporation Personal identification number processing using control vectors
US4924515A (en) * 1988-08-29 1990-05-08 International Business Machines Coprporation Secure management of keys using extended control vectors
US4918728A (en) * 1989-08-30 1990-04-17 International Business Machines Corporation Data cryptography operations using control vectors
US5073934A (en) * 1990-10-24 1991-12-17 International Business Machines Corporation Method and apparatus for controlling the use of a public key, based on the level of import integrity for the key
US5142578A (en) * 1991-08-22 1992-08-25 International Business Machines Corporation Hybrid public key algorithm/data encryption algorithm key distribution method based on control vectors
US5164988A (en) * 1991-10-31 1992-11-17 International Business Machines Corporation Method to establish and enforce a network cryptographic security policy in a public key cryptosystem

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63146631A (en) * 1986-12-10 1988-06-18 Nec Corp Key generating device
JPH02300784A (en) * 1989-04-27 1990-12-12 Internatl Business Mach Corp <Ibm> Cipher key managing method and apparatus

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8983064B2 (en) 1996-05-17 2015-03-17 Certicom Corp. Strengthened public key protocol
US8953787B2 (en) 1996-05-17 2015-02-10 Certicom Corp. Strengthened public key protocol
JP2010093860A (en) * 1997-10-14 2010-04-22 Certicom Corp Key validation scheme
JP2013042555A (en) * 1997-10-14 2013-02-28 Certicom Corp Key validation scheme
JP4731686B2 (en) * 1998-05-08 2011-07-27 サーティコム コーポレーション Validation and confirmation of the private key
JP2002515613A (en) * 1998-05-08 2002-05-28 サーティコム コーポレーション Private key validity and confirmation
JP2002523974A (en) * 1998-08-18 2002-07-30 シーメンス アクチエンゲゼルシヤフト Method and apparatus for forming a secret communication key for a pre-determined asymmetric encryption key pair
US8594324B2 (en) 1998-10-14 2013-11-26 Certicom Corp. Key validation scheme
JP2007104732A (en) * 2001-11-16 2007-04-19 Yazaki Corp Decrypting device
JP2007104731A (en) * 2001-11-16 2007-04-19 Yazaki Corp Encryption key management apparatus
JP4800624B2 (en) * 2003-01-07 2011-10-26 クゥアルコム・インコーポレイテッド System, apparatus and method for exchanging encryption key
US8259947B2 (en) 2003-01-07 2012-09-04 Qualcomm Incorporated Recreating a cryptographic key in a replacement device
JP2006513641A (en) * 2003-01-07 2006-04-20 クゥアルコム・インコーポレイテッド System, apparatus and method for exchanging encryption key
JP2005295570A (en) * 2004-04-02 2005-10-20 Microsoft Corp Method and system which restore private data protected with password through communication network without exposing private data
JP2010506310A (en) * 2006-10-04 2010-02-25 マイクロソフト コーポレーション Character position based password recovery
JP2013029618A (en) * 2011-07-27 2013-02-07 Canon Inc Information processing device, information processing method and program

Also Published As

Publication number Publication date
US5201000A (en) 1993-04-06
EP0534420A2 (en) 1993-03-31
JP2690004B2 (en) 1997-12-10
CA2075254A1 (en) 1993-03-28
EP0534420A3 (en) 1994-06-08

Similar Documents

Publication Publication Date Title
JP2690004B2 (en) Device that manages public key cryptosystems
Denning Cryptography and data security
Hellman An overview of public key cryptography
Stallings Cryptography and network security, 4/E
Diffie et al. Privacy and authentication: An introduction to cryptography
Coppersmith et al. A proposed mode for triple-DES encryption
US5073934A (en) Method and apparatus for controlling the use of a public key, based on the level of import integrity for the key
Bishop Introduction to Cryptography with java Applets
Bellare et al. Big-key symmetric encryption: Resisting key exfiltration
CN110235409A (en) Use the protected RSA signature of homomorphic cryptography or the method for decryption
US11349668B2 (en) Encryption device and decryption device
US9641328B1 (en) Generation of public-private key pairs
Bray Implementing Cryptography Using Python
Haunts Applied Cryptography in .NET and Azure Key Vault
US11336425B1 (en) Cryptographic machines characterized by a Finite Lab-Transform (FLT)
Aumasson Crypto Dictionary: 500 Tasty Tidbits for the Curious Cryptographer
Bowne Hands-On Cryptography with Python: Leverage the power of Python to encrypt and decrypt data
EP3475825B1 (en) Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
Gjøsteen Security notions for disk encryption
Buell Fundamentals of cryptography: introducing mathematical and algorithmic foundations
Song Optimization and guess-then-solve attacks in cryptanalysis
Popoola Data Integrity Using Caesar Cipher and Residue Number System
Rubinstein-Salzedo et al. The RSA cryptosystem
Kaptchuk New Applications of Public Ledgers
Hellwig et al. Blockchain Cryptography: Part 1

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070829

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20080829

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees