Initial secret key establishment including facilities for verification of identity6061791Abstract An issuer offers any type of service secured with a secret cryptographic key assigned to an applicant according to the present invention, which includes a secret key registration process. Usually, the secret key will be loaded on a portable memory device or other secret key store of the applicant. As preliminary steps, the issuer sets up its public key for the Probabilistic Encryption Key Exchange (PEKE) cryptosystem, and the applicant obtains a copy of a secret key registration software, a copy of the issuer's public key, and an uninitialized portable memory device. Once initiated by the applicant, the registration software generates an internal PEKE secret key. The applicant chooses a registration pass query and pass reply that the registration software MACs and encrypts with a key derived from the PEKE secret key. The registration software derives the key assigned to the applicant from the PEKE secret key, and loads it into the secret key store. A message is sent to the issuer data processing center where the cryptographic processing (PEKE, MAC, encryption) is reversed. Using an alternate channel (e.g. telephone conversation) an issuer agent verifies the identity of the applicano: the agent asks the pass query, the applicant replies with the pass reply, and the issuer verifies the applicant's knowledge of some relevant personal data. The issuer agent can approve the applicant's registration in the issuer database. There is no need for the issuer to personalize either the software or the secret key store before delivery to the applicant, and there is a single personal contact between the applicant and the issuer agent. Claims I claim: Description FIELD OF THE INVENTION
______________________________________
Issuer Distributor Applicant
______________________________________
Set up private/
public key pair
Package public
Distribute software
Obtain application
key with application software
software
Distribute hardware
Obtain portable
memory device
______________________________________
The issuer also prepares some application software that embeds an "applicant registration program" and a copy of the issuer's public key. The applicant obtains a copy of this application software from any type of distribution channel because there is no customization required at this stage. The applicant also obtains a portable memory device if the secret key is to be stored on such a device, again from any type of distribution channel. In an instance of secret key establishment, under the control of the applicant, the application registration program is executed by a digital processor. See the following table. This program generates a secret key, preferably not arbitrarily but starting with one or more arbitrary numbers and then applying transformations mandated by the PKC in use and taking into account the issuer's public key, the said transformations preferably taking into account a first message according to the cryptosystem in use and issued by or on behalf of the issuer. When the PKC in use is conventional public key encryption, there is no first message. When the PKC in use is PEKE, the first message is the PEKE initiator's message and it may be issued by or on behalf of the issuer. When the PKC in use is the Lein Harn's improvement to the Diffie-Hellman key exchange, the first message must be issued by the issuer because it requires knowledge of the issuer's private key, and the transformations further include the abortion of the process upon the failure of a digital signature verification.
______________________________________
Portable Applicant's Issuer data
memory digital processing
device Applicant processor center
______________________________________
Start applicant
Preferably receive
registration
message according
program to cryptosystem in
use
Generate a secrete
key, variant-
dependent rules
Receive secret Load secret key into
key portable memory
device
Type secret
Seal and encrypt e.g.
pass query using issuer public
and key
pass reply
Send message Receive
message
Decrypt and
check, store
secret key, pass
query, and pass
reply
______________________________________
Once generated, part or all of this secret key is loaded into the portable memory device, if any, otherwise into a convenient digital memory area. Alternatively, it may be displayed to the applicant in human-readable form, in which case the applicant would presumably load this key into a separate apparatus having its own memory. Another function of the applicant registration program is to accept secret inputs chosen by the applicant and typed on a keyboard. The secret inputs preferably include a pass query. The secret inputs include a pass reply. According to the spirit of the present invention, the applicant should be instructed not to disclose the pass reply to anyone but to an issuer agent who preferably would first pronounce the pass query. The main role of the PKC in use is to provide protections for 1) the generated secret key, 2) preferably the pass query, 3) the pass reply, and 4) optionally other data, during their transmission to the issuer data processing center. A PKC alone cannot conveniently provide all the required protections. Accordingly, a hybrid public/secret key cryptosystem is needed. The details of this arrangement are influenced by the specific PKC in use in any embodiment of the present invention. The result of the hybrid public/secret key cryptosystem is put in a second message sent to the issuer data processing center. At the issuer data processing center, the second message is received and then the algorithms used for protection are reversed, notably using the issuer's private key. Upon failure of any verification, the process is aborted. Then the applicant's record in the issuer database is expanded to include 1) part or all of the generated secret key, 2) preferably the pass query, and 3) the pass reply. From then on, an issuer agent may be assigned the task of communicating with the applicant to verify the applicant's identity. See the following table. This communication should be two-way simultaneous like a telephone conversation or a personal visit to a branch of the issuer. The issuer data processing facilities display, or otherwise make available in human understandable form, the information relevant to the verification of the applicant's identity, namely some identification data, preferably the pass query, and the pass reply. During this conversation, preferably the issuer agent pronounces the pass query, allowing the applicant to recognize the agent as being authorized to verify his identity. Then, the applicant should pronounce the pass reply, while the issuer agent listens and verifies the pass reply. During this conversation, the issuer agent generally verifies the applicant's identity. The data processing facilities provide the agent with an input mechanism, e.g. an input field on a computer screen, to enter the final acceptance or rejection of the registration. This causes a change in the status of the secret key in the issuer database. The pass query and pass reply are not intended for further use after this verification of identity.
______________________________________
Issuer data processing
center Issuer agent Applicant
______________________________________
Communicate applicant's
Establish realtime,
Establish realtime,
data 2-way contact 2-way contact
Communicate pass query
Pronounce pass query
Listen and verify
and pass reply query
Listen and verify reply
Pronounce pass reply
Verify applicant's
Answer questions
identity
Validate secrete key
Accept applicant's
registration identity
______________________________________
Generally speaking, the present invention assists the development of mutual recognition relationships between the applicant and the issuer. Thus, an account of the trust relationships through the recommended use of the invention may help its understanding. In a preferred embodiment of the present invention, the chain of recognition relationships starts with the applicant receiving some software (e.g. in the form of an on-line banking software package, or in the form of firmware within an electronic wallet) that he may recognize as genuinely endorsed by the issuer, and that contains the public key of the issuer stored with proprietary or semi-proprietary data integrity algorithm. Stated differently, the applicant believes that some software package or security device is not bogus, presumably because of its look and feel. What he believes genuine contains the public key of the issuer. Some obscure method is used by what-he-believes-genuine to make sure no defrauder pasted his own public key in place of the issuer's public key. When the applicant starts the applicant program, a new secret key is generated locally. Also, the applicant's program gets input, from the applicant, for two secret phrases used only for registration purposes, namely a "pass query" (e.g. "Where did my father look when he was at the boarding school?") and a "pass reply" (e.g. "My first car was brown and rusty."), both of them being protected, along with the newly generated secret key. The issuer's public key is used as the starting point of the protection mechanism. The result is sent as the digital message from the applicant's digital processor to the issuer's data processing facilities. By keeping secret the pass query and pass reply, the applicant gets assurance that the first person who can thereafter pronounce them is an issuer agent; this level of assurance being proportional to the applicant's trust in the issuer's operational integrity. The applicant should be given clear instructions to reveal the pass reply only to someone who just pronounced the pass query. Upon receipt of the digital message from the applicant by the issuer, the issuer program may be executed within the issuer data processing facilities, where the private counterpart of the issuer's public key is available. As a result of the issuer program execution, the applicant record in the issuer database is updated with a fresh, yet to be validated secret key registration, and the pass query and pass reply. As yet another result of the issuer program execution, an issuer agent may, at any time thereafter, be assigned the task of validating the applicant's identity with a personal conversation. During the conversation between the applicant and an issuer agent according to the present invention, the present invention provides the issuer agent with the applicant information needed for the verification of identity, namely personal descriptive data (e.g. mother's maiden name and state of birth), pass query, and pass reply. The issuer agent should pronounce the pass query to the person he is speaking with, wait for this person to pronounce the pass reply. In case this verification fails, the present invention provides the issuer with means to flag the registration as being void. The issuer agent should give rapid warning to the legitimate applicant since in these circumstances an impostor could impersonate a user agent for this applicant. In the normal case where the pass reply verification is successful, and assuming that the applicant did not reveal the pass reply to anyone, the issuer agent is assured that the person he is speaking with is the one w ho entered the pass query and reply when the applicant's secret key was generated. Then the issuer agent should check that this person knows, without unusual hesitation or imprecision, the descriptive data about the applicant. This is the verification of identity that binds the applicant to the shared secret key established with the cryptographic protocol. If the verification of identity is successful, the issuer agent is assured that the person he is speaking with is indeed the applicant for who the secret key registration was awaiting validation in the issuer's database. The present invention thus provides the issuer agent with means to flag the secret key registration as being accepted or validated. It is an object of the present invention to offer a remote secret key initialization and loading protocol with sensible identity verification procedures. It is yet another object of the present invention to provide enhanced security in view of the subtleties of attacks to cryptographic protocols and algorithms. It is yet another object of the present invention to provide cost-effective customer registration procedures for the delivery of electronic transactions based on a secret authentication key. It is yet another object of the present invention to provide customer registration procedures facilitating the use of alternate channels for the distribution of devices used for authentication. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will be better understood by way of the following detailed description of the invention with reference to the appended drawings, in which: FIG. 1 is an overview block diagram illustrating the secret key establishment method and system according to the present invention; FIG. 2 is a detailed block diagram illustating the applicant registration program according to the present invention; and FIG. 3 is a detailed block diagram illustrating the reversed cryptographic processing done in the issuer data processing center according to the present invention, and the facilities provided by the present invention for verification of identity. DETAILED DESCRIPTION OF THE INVENTION Some operations required by the present invention are performed by digital processors. Such operations are hereafter called "controlled computer operation" but are nonetheless considered as acts of either the applicant or the issuer. In practice, these operations are performed by a computer or other electronic apparatus under the control of either the applicant or the issuer. The degree of effective control on any computer operation may influence the security of the whole secret key establishment method as someone knowledgeable in the field of information system security will appreciate from the following description. The inputs and outputs of controlled computer operations are often stored in digital memories. Then, again, uninterrupted possession and/or control over the use of these digital memories may influence the security of the whole secret key establishment method. When a digital memory is physically protected against unauthorized reading or modification, it becomes a "physically secure memory". It is well known in the field of cryptography and information security how a legitimate user reverses a given cryptographic function from the knowledge of the appropriate keys. Thus, the disclosure of the present invention does not require the same level of detail for the reversal of a cryptographic function as for the function itself. A public key cryptosystem (PKC) is at the heart of the proposed secret key establishment method. There are three possible PKC's, namely 1) any Public Key Encryption (PK-Encr) schemes, 2) the Probabilistic Encryption Key Exchange (PEKE), and 3) the Diffie-Hellman scheme as improved by Lein Harn (DH-Ham). For the PK-Encr case, the prior art is mature for a number of practical alternatives, notably RSA. For PEKE and DH-Harn, the prior art needs some precision for use in the present invention. PEKE is used in the preferred embodiment; provisions are made to exploit its efficiency as a public key cryptosystem for the applicant. The following "PKC specification table" portrays the use of each PKC in the present invention. For PK-Encr, the RSA cryptosystem is used as an example in the PKC specification table. For PEKE and DH-Harn, the PKC specification table and the rest of the narrative specification are mutually agreeing. The mathematical notation for each PKC is independent from each other (e.g. the symbol "e" for PEKE bears no relation to the symbol number "e" for DH-Harn). As with most public key cryptosystems, all computations are made with integer arithmetic, and often with very large operands. The usual known art of algorithmic number theory is implied. The symbol ".vertline." represents concatenation of k-bit strings, and tacitly specifies a conversion from integer to bit string. Any of the following symbols should be read as if it was a one-letter symbol: x.sub.A.fwdarw.B, x.sub.B, alpha, beta, mu, and nu.
TABLE 4
______________________________________
The PKC specification table.
RSA (PK-Encr) PEKE DH-Harn
______________________________________
Public key
N = P .times. Q, e
N = P .times. Q
y = a.sup.x mod p
Private key
P, Q, d, where
P, Q, where P random x, x < p
P and Q are
and Q are large
large random
random primes
primes, and
congruent to 3
d .times. e mod
modulo 4
(P-1)(Q-1) = 1
(note 1)
Other Para-
none S, C, k, t, where
p, a, where p is
meters O < C .times. S < N,
a large prime
k < In(N)/In(2)
number and a is
a "generator"
First none random x.sub.A- > B,
r, s, where
message where x.sub.A- > B < C
r = a.sup.k mod p
from private
random k, s
from signature
equation (note 5)
Verification
n/a none Signature
of first verification
message equation (note 5)
Internal
Secret random
w = B.sub.o .linevert split.B.sub.1 .linevert split..
. ..linevert split.B.sub.t - 1,
r.sup.e mod p,
secret key
number k from secret from private
random X.sub.B.linevert split.,
random e
where X.sub.B.linevert split. < N/C
(note 2)
Length of
<In(N)/In(2)
k .times. t In(p)/In(2)
internal key
Second c = k.sup.e mod N
x.sub.t f = a.sup.e mod p
message
Verification
none (note 3) none
of second
message
Recovery of
k = c.sup.d mod N
w = B.sub.o .linevert split.B.sub.1 .linevert split..
. . .linevert split.B.sub.t - 1,
f.sup.k mod p
internal from secret e,
secret key (note 4)
______________________________________
Note 1: Preferably perform the precomputation of integers a and b such
that a .times. P + b .times. Q = 1, and alpha = ((P + 1)/4).sup.(t+1) mod
(P - 1), and beta = ((Q + 1)/4).sup.(t+1) mod (Q - 1).
Note 2: Compute x = (x.sub.B - (x.sub.B mod S)) .times. C + x.sub.A ->B
.times. S + (x.sub.B mod S), x.sub.0 = x.sup.2 mod N, x.sub.i+1 =
x.sub.i.sup.2 mod N, where i runs from 0 to t - 1, and B.sub.i = x.sub.i
mod 2.sup.k, where i runs from 0 to t -1.
Note 3: Compute mu = (xt mod P).sup.alpha mod P, nu = (xt mod Q).sup.beta
mod Q, e = (b .times. Q .times. mu + a .times. P .times. nu) mod N, f = (
.times. Q .times. (P - mu) + a .times. P .times. nu) mod N, g = (b .times
Q .times. mu + a .times. P .times. (Q - nu)) mod N, h = (b .times. Q
.times. (P - mu) + a .times. P .times. (Q - nu)) mod N, and then verify
that one of e, f, g, or h satisfies x.sub.A->B .times. S = #(? mod (S
.times. C)) - (? mod S).
Note 4: Compute x.sub.0 = e.sup.2 mod N, x.sub.i+1 = x.sub.i.sup.2 mod N,
where i runs from 0 to t-1, and B.sub.i = x.sub.i mod 2.sup.k, where i
runs from 0 to t - 1.
Note 5: Lein Harn proposes four possible equation pairs for signature
generation/verification, as indicated below:
In the preparation for later secret key establishment instances, the issuer gets a private/public key pair for itself, according to the PKC in use. See the PKC specification table under the row headings "Public key" and "Private key". This is a controlled computer operation. The issuer makes the issuer private key 205 available in the issuer data processing center 300 with the usual security precautions to prevent disclosure or unauthorized use. Still in the preparation for later secret key establishment instances, the issuer prepares a set of parameters to be used in controlled computer operations by the applicant. In all cases, the issuer public key is part of this set of parameters. This set of parameters also includes the elements listed under the under the row heading "Other parameters" in the PKC specification table. This set of parameters may also include identification data for the issuer, like the electronic mail address where the secret key registration should be sent. In the preferred embodiment, this set of parameters includes additional data for the PEKE cryptosystem intended to reduce the computation load for the controlled computer operations by the applicant. This includes the numbers S and C, but the numbers S and C could be part of the first message 103 instead. Still in the preparation for later secret key establishment instances, the issuer preferably transforms this set of parameters, where this transformation includes controlled computer operations that protect the integrity of part or all of this set of parameters, and at least the issuer public key. In the preferred embodiment, the mentioned transformation is encryption and scaling with a Frogbit semi-proprietary algorithm using a secret key of the issuer. The Frogbit semi-proprietary algorithm is specified in Canadian Patent Application Serial No. 2,177,622 published on Nov. 30, 1997. The transformation may use other proprietary schemes. Alternatively, the transformation may include affixing a digital signature generated with a private key for digital signature. This private key for digital signature is either the issuer's, or a certification authority's, and correspondingly the digital signature generation is a controlled computer operation respectively by the issuer, or by this certification authority. As is known from the prior art, a chain of security certificates may be used, in which case security certificates may be an integral part of the result of the transformation. Note that with digital signatures, the Frogbit or a proprietary algorithm may still be used to protect the integrity of a certification authority public key. Whenever the mentioned transformation is used, its result is shown as "sealed public key" 203 in the figures. Still in the preparation for later secret key establishment instances, the issuer prepares an executable computer program comprising at least the applicant registration program 100. If the mentioned transformation was not used, the applicant registration program 100 is compatible with the set of parameters. If the mentioned transformation was used, the applicant registration program 100 is compatible with the sealed public key 203 and it includes the integrity mechanism 107 that is the programmed reversal of the transformation. If the transformation uses Frogbit semi-proprietary algorithm or other proprietary algorithm, the preparation of this executable program is a controlled computer operation by the issuer because a secret algorithm and a secret key of the issuer must be embedded in the executable program. In the preferred embodiment, the executable program comprises substantially more application code than just the application registration program 100, so its look and feel would be difficult to reproduce by a defrauder. The executable program may be embedded in an electronic apparatus like a POS terminal instead of being run by a general purpose computer. In the preferred embodiment, the executable program is run by a general purpose computer and the sealed public key 203 is stored in a computer file separate from the executable file. In preparation for later secret key establishment instances, the applicant has or obtains a copy of an executable program comprising the applicant registration program 100, a copy of the sealed public key 203, and a portable memory device 102. These items may take several forms, and may be combined depending on the variations of the invention. The "portable" memory device 102 is any memory suitable for a given application, including a plurality of memories if key-splitting is used. In the preferred embodiment, the portable memory device is any very simple small memory device which can be temporarily connected to a personal computer using an inexpensive connector, for example the Dallas Semiconductor DS1992 1K-Bit Touch Memory "button", featuring 1024 bits of non-volatile read/write memory plus a 48 bit unique read-only serial number, in a coin-size metal casing that can be attached to a key ring. The reader/connector is part number DS9092GT which connects the Touch Memory to a serial port of the personal computer. Some variants of the secret key establishment process use a first message 103. This is mainly dependent on the PKC in use. See the PKC specification table under the row heading "First message". When a first message 103 is used, its generation is the first step of an instance of secret key establishment. With the DH-Harn cryptosystem, a first message 103 is used and its generation is a controlled computer operation by the issuer because the knowledge of the issuer private key is required. With the PEKE cryptosystem, there is a first message 103 that may be generated by the issuer or by another party. With the preferred embodiment, the first message 103 is generated by the issuer or by another party, but not by the applicant. With the PK-Encr cryptosystem, there is no first message 103. With PEKE, the first message 103 may include the numbers S and C if they were not included in the set of parameters as in the case of the preferred embodiment. When PEKE is used in the present invention, the generation of first message 103 may be assigned to the applicant registration program 100, in which case there is obviously no transmission of the first message 103 to the applicant registration program 100. If PEKE is used in the present invention and if the generation of the first message 103 is not done by the issuer, the issuer must somehow receive its contents. One possible arrangement is to let the applicant registration program 100 include the contents of the first message 103 in the second message 104. This is done in the preferred embodiment, in which case the generating party affixes reference numbers to first messages 103 and keeps a log of the first messages 103. This allows the issuer to audit the generation of first messages 103. The rationale behind the use of a first message 103 is related to subtle weaknesses in cryptographic protocols and their implementations. For instance, if the issuer does not trust the applicant's processor random source 105, PK-Encr should be avoided. With DH-Harn, a passive eavesdropper to the secret key exchange could notice a failure of the applicant's processor random source where the random output would turn out to be constant among a number of instances of secret key exchange. With PEKE, this is not an issue. The issuer may use discipline in the way first messages 103 are generated to ensure absolute uniqueness or freshness of the secret key generated by instances of the secret key exchange. For uniqueness, the issuer should tag each first message 103 with a serial number and make sure any serial number is used only once. For freshness, the issuer should keep a record of creation times for first messages 103 and reject older ones. In the preferred embodiment, the applicant registration program 100 is trusted to timely request a first message 103 on each instance of secret key exchange, and to discard it once used. Also in the preferred embodiment, a system with a trusted random source may generate first messages 103; and no specific tracking of first messages 103 is needed. With PEKE, the presence of the number x.sub.A.fwdarw.B protects the issuer against "chosen ciphertext attacks" known in the prior art, even if the generation of first message 103 is not done by the issuer. The present invention may be practiced with the first message 103 being prepared upon request by an applicant, and including data specific to this applicant. Although this may enhance the security of the applicant registration process, it may also increase the administrative workload for the issuer. An instance of secret key exchange starts with the receipt of the first message 103, if any, and may proceed with the other steps of the applicant registration program 100 whenever triggered by the applicant. The execution of the other steps of the applicant registration program 100 is a controlled computer operation by the applicant. It is the applicant's digital processor that executes the applicant registration program 100. An instance of secret key exchange includes, as part of the applicant registration program 100, the application of integrity mechanism 107 to recover public key 204 from scaled public key 203. This is the reversal of the said transformation that resulted in the "sealed public key" 203. As a consequence of this application of integrity mechanism 107, the applicant registration program 100 may abort the instance of secret key exchange. In cases where the integrity mechanism 107 is not used, the public key 204 is directly available to the applicant registration program 100 as part of the set of parameters. In the case of DH-Harn, an instance of secret key exchange includes, as part of the applicant registration program 100, the verification of the Lein Harn intriguing digital signature, that is the verification that the numbers s and r from the first message 103 satisfy the appropriate verification equation. See the PKC specification table under the row heading "Verification of first message". An instance of secret key exchange also includes, as part of the applicant registration program 100, the receipt of two inputs, respectively pass query 206 and pass reply 209, through keyboard input device 101. According to the spirit of the present invention, the applicant should choose unique and unrelated secret phrases for these two inputs. Without departing from the spirit of the present invention, the pass query 206 and pass reply 209 can be displayed by the applicant registration program 100 instead of being input from the input device 101. Then, randomness and secrecy should surround the generation of the pass query 206 and pass reply 209, to ensure a logical bind or link between this instance of secret key exchange and the displayed values for pass query 206 and pass reply 209. An instance of secret key exchange also includes, as part of the hybrid public/secret key cryptographic processing 106, the local generation of an internal secret key according to the PKC in use. The random source 105 is used to generate at least one secret or private random number. See the PKC specification table under the row headings "Internal secret key" and "Length of internal key". With PK-Encr, the random source 105 directly produces the internal secret key. With DH-Harn, the random source 105 produces a private random number e and the internal secret key is computed as r.sup.e mod p. With PEKE, the random source 105 produces the secret random number x.sub.B, and the internal secret key is computed from x.sub.B, x.sub.A.fwdarw.B, S, C, N, t, and k. In the preferred embodiment, the size of the public key number N is 768 bits and the number k is about 1/3 of that size, hence k=256. The preferred embodiment for the random source 105 includes some pseudo-random number generator (PRNG) with state information. The said PRNG state information is stored on a computer hard disk, protected with the Frogbit data integrity algorithm, and varied (using available truly random data) both before and after the random source 105 usage in an instance of secret key exchange. Still according to the PKC in use and as part of the hybrid public/secret key cryptographic processing 106, the applicant's digital processor prepares some components of the second message 104. See the PKC specification table under the row heading "Second message". With PK-Encr, this second message is the public key encryption of the internal secret key, using public key 204, the ciphertext being included in the second message 104. With DH-Harn, this is the computation of a number f=a.sup.e mod p where a and p were part of the set of parameters, according to the known art of the Diffie-Hellman cryptosystem, the number f being included in the second message 104. There is no signature generation from the applicant's digital processor; in other words the Lein Harn's improvement to the Diffie-Hellman cryptosystem is applied only for the issuer. As is well known in the prior art, the components of the second message 104 prepared in this way allow the issuer data processing center 300 to recover the internal secret key while protecting it from adversaries even if they can eavesdrop on the set of parameters, first message 103, and second message 104. Without departing from the spirit of the present invention, other PKCs may be used for the local generation of the internal secret key. A likely candidate is any PKC that is a secret key establishment cryptosystem using a public key 204. For instance, the original Diffic-Hellman cryptosystem can be used directly with the same public key as for the DH-Harn improvement, in which case the internal secret key is computed as y.sup.e mod p, where e is generated by the random source 105, and y and p were part of the set of parameters. According to the spirit of the present invention, another possible arrangement to obtain the internal secret key would rely on a public/private key 25 pair of the applicant that would not require certification as in the prior art public key cryptography. The presence of this public/private key pair of the applicant would make the random source 105 unnecessary. In this alternate scheme, the issuer public key 204 would be like in the PK-Encr case. The public component of the public/private key pair of the applicant would be encrypted using the issuer public key 204, and then transmitted to the issuer data processing centre 300 where it would be decrypted using the issuer private key 205. Still in the issuer data processing center 300, the function of the random source 105 would be performed, thus generating the internal secret key as if done by the applicant registration program 100 in the PK-Encr case. The internal secret key would then be encrypted using the public component of the public/private key pair of the applicant. The encrypted internal secret key would be sent back to the applicant registration program 100 where the knowledge of the private component of the public/private key pair of the applicant would allow decryption of the internal secret key. It should be clear to one skilled in the art that the confidentiality of the internal secret key is preserved if this instance of secret key establishment is thereafter successfully completed, as long as the private component of the public/private key pair of the applicant remains undisclosed, despite the fact that the issuer has no a-priori knowledge of the public component of the public/private key pair of the applicant. Still according to the PKC in use and as part of the hybrid public/secret key cryptographic processing 106, the applicant's digital processor derives the secret key 201 from part or all of the internal secret key. This derivation may use any unambiguous specification, as long as it uses no input that is not shared with the issuer data processing center 300. For instance, a pseudo-random generator can be used as an "expander of randomness" if the secret key 201 is very large. In the preferred embodiment, the secret key 201 is simply a part of the internal secret key distinct from the two parts used respectively for the MAC and the DES encryption. An instance of secret key exchange includes, as part of the hybrid public/secret key cryptographic processing 106, the cryptographic protection of pass query 206, pass reply 209, and possibly other data 108. This other data 108 may include a serial number of the portable memory device 102, the applicant's name, a conventional PIN (that is a secret PIN known by the applicant and stored in the issuer database) chosen by the applicant at the time of secret key establishment, and the like. This cryptographic protection is done with secret key cryptographic algorithms, possibly with the help of key-less hash functions. This cryptographic protection uses part or all of the internal secret key. For the pass query 206 and the pass reply 209, this cryptographic protection is confidentiality and data integrity protection. For the other data 108, this cryptographic protection may be what is deserved by a particular application. The result of this cryptographic protection is some ciphertext, and possibly some cleartext along with message authentication code, that goes into second message 104. In the preferred embodiment, the cryptographic protection starts with the computation of a Message Authentication Code (MAC) of the pass query 206, the pass reply 209, and the other data 108 if any, using CBC-MAC with the DES algorithm, and using a first part of the internal secret key. Then, DES encryption with the CBC mode of operation is applied to the pass query 206, the pass reply 209, and any portion of the other data 108 that deserves confidentiality protection, using another part of the internal secret key. Thus, the data elements that go into second message 104 as a result of the cryptographic protection are 1) the ciphertext representation of the encrypted data, 2) the unencrypted portion, if any, of the other data 108, and 3) the calculated MAC. An instance of secret key exchange also includes, as part of the applicant registration program 100, the loading of the secret key 201 into the portable memory device 102. This is done by key loader 109 that is any interface, connector, smartcard reader apparatus, operating system software driver needed to write data to the actual memory device in use. The key loader 109 may encompass intrinsic security functions such as requesting a PIN to unlock a smart card, or the key-splitting of secret key 201 into two or more parts. In the preferred embodiment, the key loader 109 splits the secret key 201 into three parts as follows: the key loader 109 accepts a local applicant's PIN (that is not stored in the issuer database) through the keyboard input device 101, the first component is calculated as k1=hash(PIN) where "hash" is a key-less hash function; the key loader gets a component k2 from the random source 105; the third component is computed as k3=secret.sub.-- key XOR k1 XOR k2 where secret.sub.-- key is the secret key 201 and XOR is the exclusive-or operation. The key loader 109 loads the key component k2 into a Dallas Semiconductor DS1992 memory, and loads the key component k3 into a computer file on the local hard disk. This gives three-factor security: access to the secret key 201 requires 1) knowledge of the local applicant's PIN, 2) access to the Dallas Semiconductor DS1992 memory, and 3) access to the computer file. An instance of secret key exchange also includes, as part of the applicant registration program 100, the sending of second message 104 to the issuer data processing center 300, through any ordinary data communications network. Once the second message 104 is received in the issuer data processing center 300, the reversed cryptographic processing 306 may be executed for the instance of secret key exchange characterized by the particular second message 104. The reversed cryptographic processing 306 is essentially the reversal of the hybrid public/secret key cryptographic processing 106. Even if it is a controlled computer operation by the issuer, it can be executed with minimal operator supervision, e.g. as an automated processing upon receipt of an e-mail message containing second message 104. An instance of secret key exchange includes, as part of the reversed cryptographic processing 306, the reversal of the PKC in use, starting with the private key 205 and recovering the value of the said internal secret key. In the case of PEKE, it is possible for this instance of the secret key exchange to be aborted as a consequence of a suspected security breach detected during the reversal of the PKC in use. See the PKC specification table under the row heading "Verification of second message". With PK-Encr, the reversal of the PKC in use is the public key decryption of the ciphertext found in second message 104. Otherwise, see the PKC specification table under the row heading "Recovery of internal secret key". From the internal secret key, the reversed cryptographic processing 306 derives the secret key 202, using the same procedures as the hybrid public/secret key cryptographic processing 106. The recovered secret key 202 is stored in the issuer database 303. The secret key status 305 is set to indicate that the verification of applicant's identity is yet to be done. From the internal secret key, the reversed cryptographic processing 306 moreover reverses the cryptographic protections initially applied to pass query 206, pass reply 209, and possibly other data 108. It is possible for this instance of the secret key exchange to be aborted as a consequence of a suspected security breach detected in this reversal operation. The recovered and verified pass query 207 and pass reply 210 are stored in the issuer database 303. Once the reversed cryptographic processing 306 is complete, the task of verifying the issuer's identity may be undertaken by an issuer's agent. To this end, a display means 301 provides the issuer's agent with the human readable form of the query 208, the human readable form of the reply 211, and some relevant applicant identification data. The display means 301 can be a computer screen or a printer. The issuer agent is also provided with an input means 302, possibly with visual feedback 304, with which the issuer agent may input a signal to update the secret key status 305. The update of the key status 305 may indicate successful verification of applicant's identity, and correspondingly the completion of this instance of secret key exchange according to the present invention. The update of the key status 305 may indicate the failure of this instance of secret key exchange. Since the verification of identity is critical for the bind between the secret key 202 and the applicant, the known art of data processing security should be applied to the provision of the human readable form of the query 208, the provision of the human readable form of the reply 211, and the acceptance of the update of the key status 305 through input means 302. For some uses of the present invention, the computation load of public key cryptography may be a critical design issue, especially if the applicant's digital processor is a low power electronic device. When the PKC is PEKE, the prior art of Montgomery reduction may be applied advantageously in this respect. In this contemplated variant of the present invention, the applicant's processor would do the "modular reduction" operations "mod N" (and respectively "mod S") with the Montgomery algorithm described hereafter. This requires the pre-computation of some values, to be stored by the issuer in the said set of parameters. Let b be the natural computer word size of the applicant's processor, and n be such that b.sup.n >N (and respectively s such that b.sup.s >S). The values to be pre-computed are b.sup.2n mod N (and respectively b.sup.2s mod S) and also N.sub.0 ' (and respectively S.sub.0 ') to be specified hereafter. Another advantageous change is to replace the PEKE equation B.sub.i =x.sub.i mod 2.sup.k by B.sub.i =((x.sub.i .times.(b.sup.n)) mod N) mod 2.sup.k, the latter being more quickly computed by the Montgomery algorithm. Montgomery multiplication, in the multiple precision case as in the present invention, allows fast modular arithmetic for a modulus N relatively prime to b.sup.n, where b.sup.n >N, and arithmetic modulo b is easy (e.g. 2.sup.767 <N<2.sup.768, N is odd, b=2.sup.8, n=96, so b=2.sup.768). Let B=b.sup.n (not to be confused with B.sub.i, a notation proper to the PEKE specification). Given T satisfying 0<=T<=B.times.N, the Montgomery reduction algorithm efficiently computes T.times.(B.sup.-1) mod N. Our focus is the modular multiplication, so let T=x'.times.y' where x'=x.times.B mod N and y'=y.times.B mod N; then the Montgomery reduction algorithm efficiently computes x'.times.y'.times.(B.sup.-1) mod N=x.times.y.times.B mod N. Let us use the notation M.sub.N,B (X,Y) for the result of X.times.Y.times.(B.sup.-1) mod N, using the Montgomery reduction algorithm. Then x.times.y.times.B mod N=M.sub.N,B (x.times.B mod N,y.times.B mod N). To convert an integer x, 0<=x<N, into x.times.B mod N, compute M.sub.N,B (x,B.sup.2 mod N). The value B.sup.2 mod N should be pre-computed once and for all; this must be done with a general purpose division operation. To recover x from x.times.B mod N, compute M.sub.N,B (x.times.B mod N,1). There are two routes to complete a single modular multiplication: M.sub.N,B (M.sub.N,B (x,y),B.sup.2 mod N)=x.times.y mod N, or by pre-computing x'=M.sub.N,B (x,B.sup.2 mod N) and y'=M.sub.N,B (y,B.sup.2 mod N), and then M.sub.N,B (M.sub.N,B (x',y'),1)=x.times.y mod N. Whenever a series of multiplications is performed on a same set of inputs or intermediate results, the latter route is more efficient. This is the case of the PEKE cryptosystem whenever the PEKE parameter t is greater than 1. Moreover, if the PEKE equation is changed as suggested above, the PEKE cryptosystem can be restated as x'=M.sub.N,B (x,B.sup.2 mod N), x.sub.0 '=M.sub.N,B (x',x'), x.sub.i+1 '=M.sub.N,B (x.sub.i ',x.sub.i '), and B.sub.i=x.sbsb.i ' mod 2.sup.k. Now, the internals of the multiprecision Montgomery multiplication algorithm may be stated. There is a need for the value of integer N' such that B.times.(B.sup.-1)-N.times.N'=1, where B.times.(B.sup.-1) mod N=1. Actually, only the least significant part of N' is needed, hence the definition N.sub.0 '=N' mod b. We reproduce below the simple algorithm from the above-mentioned article by Dusse and Kaliski to efficiently find N.sub.0 ' from N.sub.0 and b, when b is an exact power of two. Thus, N.sub.0 ' can be computed once and for all.
______________________________________
modular.sub.-- inverse(N,b)
Let k be such that b=2.sup.k
t:= 1;
for i.rarw.2 to k do
if (N.sub.0 .times. t mod 2.sup.i).gtoreq.2.sup.i-1
t:= t+2.sup.i-1 ;
return b - t;
______________________________________
In the multiprecision Montgomery multiplication algorithm that follows, capital letters are multi-precision variables. The indices are as expected for natural integers, e.g. No is the least significant part of N. The algorithm is an application of the convolution-sum method for the multiplication. The variable c is an accumulator with sufficient capacity for a sum of products and multiple carry bits from the additions (up to 2n of them).
______________________________________
M.sub.N,b,n (X,Y)
N.sub.0 ':= b-(N.sub.0.sup.-1 mod b);
c := 0;
for k.rarw.0 to n-1 do
c := c+.SIGMA..sub.0.ltoreq.i<k (X.sub.i .times. Y.sub.k-i
+Q.sub.i .times. N.sub.k-i);
c := c + X.sub.k .times. Y.sub.0
Q.sub.k := c .times. N.sub.0 ' mod b;
c := c
+Q.sub.k xN.sub.0 ;
c := c/b;
for k.rarw.0 to n-1 do
c := c+.SIGMA..sub.k<i<n (X.sub.i .times. Y.sub.n+k-i +Q.sub.i
.times. N.sub.n+k-i);
R.sub.k := c mod b;
c := .left brkt-bot.c/b.right brkt-bot.;
R.sub.n := c;
if R.gtoreq.N then
R := R-N;
return R;
______________________________________
The variable R.sub.n is actually a local storage area of this algorithm (like Q and lower case variables). Consequently, the storage requirement for R is the same as for X and Y. Moreover, if X and Y are the same variable, as in the modular squaring operation of the PEKE cryptosystem, the storage for X, Y, and R can be the same.
|
Same subclass Same class Consider this |
||||||||||
