Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS4264782 A
Publication typeGrant
Application numberUS 06/053,589
Publication date28 Apr 1981
Filing date29 Jun 1979
Priority date29 Jun 1979
Also published asCA1121014A1, DE3066956D1, EP0021401A1, EP0021401B1
Publication number053589, 06053589, US 4264782 A, US 4264782A, US-A-4264782, US4264782 A, US4264782A
InventorsAlan G. Konheim
Original AssigneeInternational Business Machines Corporation
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Method and apparatus for transaction and identity verification
US 4264782 A
Abstract
A method and apparatus whereby the senders and receivers of messages sent over a transmission system including a Host CPU may guarantee the integrity of the data content of the message and also the absolute identity of the sender. Each user of the system as well as the Host CPU contains an identical key-controlled block-cipher cryptographic device with data chaining for encrypting and decrypting messages as required, wherein each user has knowledge of only his own cryptographic key and wherein the Host CPU has access to the unique cryptographic keys of all users of the system stored in a high security storage area available only to said CPU. Stated very generally, the originator of a message A sends a message to a receiver B which includes a transaction or message portion X and a unique digital signature portion Y which is a function both of the message and the senders unique cryptographic key KA. The receiver then communicates with the CPU for verification of the signature Y. The CPU accesses the sender's key KA from a secure memory and computes the digital signature Y utilizing the message portion X received from B and the key KA. Upon a successful verification of the signatures by the CPU, the CPU notifies B via an additional message that the signature of A is valid based on the data content of the message and the key KA. Based on the information received from the CPU, B may be certain that the signature and message originated with A and A may not later deny having sent the message as it would be virtually impossible for the signature to be forged since it is a complex function of the message content itself. A may also be assured that B cannot alter the message as the signature would no longer be valid.
According to other aspects of the invention the interrupting of communications between A and B by an eavesdropper and the subsequent sending of stale messages is prevented. As a still further feature of the invention, an eavesdropper is prevented from sending the "forged" approval from the CPU to the receiver B.
Images(13)
Previous page
Next page
Claims(17)
Having thus described my invention, what I claim as new, and desire to secure by Letters Patent is:
1. A method for effecting a high security transaction verification operation in a computer based communications system comprising a central Host CPU which includes a high security Verify Unit (VAULT) therein said system including at least two remotely located terminals selectively connectable to said Host CPU and wherein said Verify Unit and each of said terminals includes substantially identical key-controlled block cipher cryptographic devices with block chaining included therein said method comprising:
User A (originator) at a first terminal sending User B (receiver) at a second terminal a message M having a data portion (X) and a signature portion (Y) said signature portion being a block cipher function of A's key KA and the data portion (X), such that M=(X,Y);
User B on receipt of the message (X,Y) reencrypting same under his own key KB to form a message U, sending said message U to the Host CPU together with the identities of User A and User B (originator, receiver), and requesting a verification operation from said Host CPU,
the Host CPU, after receiving said message, obtaining the keys KA and KB from a secure storage means and decrypting U under key KB to obtain message U which presumptively comprises a message portion U1 and a signature portion U2 ;
the Host CPU then forming a signature utilizing U1 as the data input and KA as the key input to the cryptographic device and comparing this signature with the signature value U2 received from User B, and
the Host CPU returning an accept/reject signal to User B depending upon whether or not the two signatures are identical.
2. A method as set forth in claim 1 wherein, after determining the validity of the received signature U2 the Host CPU then generating a new signature V for the received message U which is a predetermined function of the key KB and the previously decrypted message U depending upon the result of said signature comparison operation, and
sending the message V to User B;
User B on receipt of the message V computing a signature V' which is a predetermined function of his own key KB and the message (X,Y) initially received from User A and comparing same with the message V for correspondence.
3. A transaction verification method as set forth in claim 2, including said Verify Unit utilizing the data ˜U (the logical complement of U) for generating the signature message V when a valid signature from User A is to be acknowledged and utilizing the data U to produce the signature V when the signature for User A is found to be incorrect, and said User B utilizing the data ˜(X,Y) (the logical complement of X,Y) to produce the signature message V' and comparing V' with the signature message V received from Host CPU.
4. A transaction verification method as set forth in claim 2 whereby the security of the individual user keys KZ is maintained by storing all said individual user keys in the Host CPU under a master system key KHV and accessing a particular encrypted key KZ * belonging to an identified User Z from the Host CPU memory and decrypting same under said master key KHV in the said Verify Unit.
5. A transaction verification method as set forth in claim 4 including utilizing a master system transmission key KT for all communications between Users and between any User and the Host CPU subject to eavesdropping and wherein said transmission encryption operation is superimposed upon all messages between such system entities wherein all messages must first be encrypted under the system transmission key KT before transmission and decrypted under said transmission key KT upon receipt from another unit.
6. A method for transaction verification as set forth in claim 4 including forming all signatures in the present system by selecting as said signatures a predetermined final number of bytes of the block chained encryption of the full data input to said key controlled block-cipher cryptographic device with chaining wherein said signature is a direct function of and fully dependent upon the entire content of the data input to said cryptographic device.
7. A transaction verification method as set forth in claim 2 including the User A forming the initial message M utilizing the unique counter value from his own terminal (CTorig) a unique counter value (CTrec) obtained from the receiver's (User B) terminal and, the current date and utilizing this information as a header on the message (X) and said User B, upon receiving said initial message, checking the date, and the value of the counter CTrec for correspondence with a stored value which was previously sent User A upon the initial contact between User A and User B and aborting said transaction if either of said values fails to agree.
8. A transaction verification method for use in a computer based communication system comprising a central Host CPU which includes a high security Verify Unit therein said system including a plurality of remotely located terminals selectively connectable to each other and to said Host CPU via said communications system and wherein said Verify Unit and each of said terminals includes substantially identical key-controlled block-cipher cryptographic devices with block chaining, said method comprising User A (originator), at a first terminal sending User B (receiver) at a second terminal a message M having a data (X) portion and a signature portion (Y) said signature portion being a block-cipher function of User A's key KA and the data portion (X) such that: M=(X,Y);
User B on receipt of said message M reencrypting said entire message M under his own key KB to form a message U, sending said message U to the Host CPU together with the identities of User A and User B and requesting a verification operation from said Host CPU;
the Host CPU, upon receipt of said message from User B, requesting a verify operation from its associated Verify Unit and providing the message information U to said Verify Unit;
said Verify Unit obtaining the keys KA and KB from a secure storage means located in said Host CPU and decrypting U under key KB to obtain message U which comprises a data portion U1 and a signature portion U2, the Verify Unit then forming a signature utilizing the data portion U1 as the data input and the key KA as the key input to its associated cryptographic device and comparing the signature so generated with the signature value U2 received from User B, said Verify Unit after determining the validity of the received signature U2 then generating a new signature V for the message U which signature is a predetermined function of the key KB and the previously decrypted message U the particular function being dependent upon the result of said signature comparison operation and sending the message V to User B;
User B upon receipt of the message V computing a signature V' which is a predetermined function of his own key KB and the message (X,Y) initially received from User A and comparing same with the message V for correspondence; and
wherein all signature generation operations in the previous enumerated signature generating steps comprise selecting as said signatures a predetermined final number of bytes of the block chained encryption of the full data input to said associated key-controlled block-cipher cryptographic devices with chaining wherein each said signature is a direct function of and fully dependent upon the entire data content supplied to said cryptographic device.
9. A transaction verification method as set forth in claim 8 wherein the individual User keys KZ are stored in the Host CPU system memory in encrypted form under a Verify Unit master key KHV and said individual keys are obtained from said Host CPU by the Verify Unit by accessing said Host at addresses derived from the identities of the Users A and B supplied to said Verify Unit, and decrypting said keys under the master key KHV to obtain the original User's keys KA and KB.
10. A transaction verification method as set forth in claim 9 including User B supplying to User A a counter value CTrec when User B is first contacted for a transaction by User A, and User B concurrently storing in a local memory said counter value CTrec, User A forming the initial message M utilizing the unique counter value from his own terminal CTorig, the counter value CTrec previously obtained from User B's terminal and the current date as a header on the transaction message (X) and said User B, upon receiving said initial message M, checking the date and the value of the counter CTrec for correspondence with said stored value and aborting such transaction if either the date or the counter values fail to agree.
11. A computer based communications system having a high security transaction verification feature incorporated therein, said system comprising a Host CPU which includes a high security Verify Unit therein, said system further including a plurality of remotely located terminals including means for selectively connecting each terminal to said Host CPU or to another terminal via the communications network associated therewith, said Verify Unit and each of said terminals including substantially identical key-controlled block-cipher cryptographic devices equipped with a block chaining feature, each terminal including means actuable when said terminal is used as an originating device (Terminal A) in a transaction to send a message M to another terminal acting as a receiver (Terminal B) said message M having a data portion (X) and a signature portion (Y), means for actuating the cryptographic device located in said terminal to form said signature (Y) as a block-cipher function of Terminal A's key KA and the data portion (X) such that M=(X,Y);
means in the receiving terminal (Terminal B) actuable on receipt of the message M from (Terminal A) for reencrypting said message under the terminal's own key KB to form a message U and means for sending said message U to the Host CPU together with the identities of the originating and receiving terminals (Terminal A and Terminal B) and means for requesting a verification operation from said Host CPU;
means in said Host CPU actuable upon the receipt of said message for obtaining the keys KA and KB from memory and for requesting a verify operation from the Verify Unit associated therewith;
means in said Verify Unit for decrypting the message U under terminal B's key KB to obtain a decrypted message U which comprises a message portion U1 and a signature portion U2, means in said Verify Unit for forming a signature utilizing U1 as a data input and the originating terminal's key KA as the key input to the cryptographic device contained therein and means for comparing the signature so generated with the signature value U2 received from terminal B;
means in said Verify Unit for returning an accept/reject signal to receiving terminal B depending upon whether the two signatures are identical.
12. A communication system as set forth in claim 11 wherein said means in said Verify Unit for returning an accept/reject signal to the receiving terminal B comprises means for generating a signature V including means for supplying the decrypted data message U, previously received from terminal B as the data input to the cryptographic device in the Verify Unit, and for supplying the key KB as the key input to said cryptographic device and means for transmitting said derived signature V to the terminal B;
means in said terminal actuable on receipt of the signature V to generate a signature V' using the logical complement of the original message M as the data input to said terminal's cryptographic device and the terminal B's key KB as the key input to said device and means for comparing the generated signature V' with the signature V received from the Verify Unit.
13. A communication system as set forth in claim 12 wherein said means for generating the signature V within the Verify Unit comprises means actuable in response to the comparison between the signatures U2 and that generated from U1 and KA to supply the logical complement of U to the encryption device in the Verify Unit upon a successful comparison and for supplying the true value of U to said encryption device if said comparison is unsuccessful.
14. A communication system as set forth in claim 13 including key storage means in the Host CPU for storing all of the individual user keys KZ in system memory in encrypted form under a master storage key KHV which is resident in a high security storage means within the Verify Unit;
means for generating key storage addresses based on the identity of the particular terminals involved in a given transaction and for transmitting accessed, encrypted keys KZ to the Verify Unit and means operative therein to decrypt said keys to obtain the actual keys for use in the transaction verification operations.
15. A communication system as set forth in claim 14 including transmission encryption means resident in all terminals of said system and in the Host CPU for encrypting all messages transmitted between terminals and between a terminal and the Host CPU under a master transmission key KT and means for decrypting all received messages under said same encryption key KT.
16. A communication system as set forth in claim 14 including means associated with the cryptographic device in said terminals and said Host CPU for forming all signatures utilized within the system by selecting a predetermined final number of bytes of the encrypted output of said cryptographic devices said output being derived from the entire data message input to said cryptographic device whereby said signatures are dependent upon the entire data message being encrypted.
17. A communication system as set forth in claim 12 including counter means resident in each terminal for producing a time dependent count value and means for including a predetermined current count value of the counters in both the originating and receiving terminals as a part of a message header which is incorporated in the data portion (X) of the message M transmitted from the originating terminal A to the receiving terminal B, means resident in each terminal for placing a quantity indicative of the date of a particular transaction as a portion of the header in any message M transmitted to another terminal, and means within each terminal for verifying the proper relationship of the count values and date for any received message wherein a transaction verification is to be requested.
Description
DESCRIPTION

1. Technical Field

The present invention relates to a high security communication system including a plurality of users or terminals connected to each other via a common communication link which is in turn connected to a Host CPU. By means of the present system it is possible for a sender A to communicate a specific transaction to a user B with an extremely high degree of integrity or confidence in the transaction. Utilizing the present system the following threats to transaction integrity may be substantially eliminated.

The first threat is reneging, wherein the sender engages in a transaction with a receiver sending data which he may subsequently attempt to disown. Thus, the receiver must know with certainty that the sender sent the specific message which fact may be proven subsequently.

A second possible threat to such a system is forgery, wherein the receiver may allege that he received a message from a given sender, which message is a fabrication, thus, it must be possible for the sender to prove that the supposed message was in fact a forgery.

A third threat is similar to forgery namely that of alteration, wherein the receiver might alter the message in a material way which would do some financial or other harm to the alleged sender. Thus, any alteration of such a message must be identifiable by the alleged sender.

A still further threat is where a sender or other person by penetrating the communication system would attempt to fool a receiver into accepting a transaction as valid from some sender by manipulation of the operating system, such as by eavesdropping and the capture and resending of stale messages or the fabrication of "approval" signals from the CPU, etc. The system must thereby guarantee B that such penetration is not possible. A final threat is masquerading, wherein a user on the system would attempt to masquerade as a different user to a third party. This would normally be done by means of a combination of the above threats.

It must be assumed that all users are linked to the host telecommunication system in common and that their messages are enciphered by a common encipherment process. Accordingly, the integrity of the communication's security, or lack of it, will play no role in the verification of transactions.

There are many potential uses for such a system in the modern business community. Potential applications are in the area of stock market transactions carried out over the communications systems, automatic banking transactions, electronic mail and/or any other system in which digitalized messages are sent and received over public communications channels and wherein the integrity of both the messages and the originators must be absolutely guaranteed.

It is accordingly a primary object of the present invention to provide such a high security communication system wherein both the transaction content and the signatures of senders may be completely verified and wherein all of the above enumerated threats may be substantially eliminated.

It is a further object to provide such a system utilizing readily available communications and computational hardware organized and operated in the manner set forth herein to produce such a system.

Other objects, features and advantages of the system will be apparent from the subsequent description of the system and claims.

2. Background Art

The following publications all relate to various types of electronic or digital signature systems generally using various types of approaches to achieve data and/or message integrity. The systems disclosed in these publications differ considerably in both approach and results to the system disclosed herein. (1) M. O. Rabin, "Signature and Certification by Coding," IBM Technical Disclosure Bulletin, Vol. 20, No. 8, pp. 3337-8, (January 1978). (2) W. Diffie, M. Hellman, "New Directions in Cryptography," IEEE Trans. on Information Theory (November 1976). (3) R. L. Rivest, A. Shamir and L. Adleman, "On Digital Signatures and Public-Key Crypto-Systems," M.I.T. Laboratory for Computer Science Report, MIT/LCS/TM-82 (April 1977).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 comprises an overall block diagram of the high security communication system of the present invention.

FIG. 2 comprises a functional block diagram of a preferred embodiment of one of the terminal blocks illustrated in FIG. 1.

FIG. 3 comprises an organizational drawing for FIGS. 3A and 3B.

FIGS. 3A and 3B comprise a functional block diagram of the Verify Unit block attached to the Host CPU block shown in FIG. 1.

FIG. 4 comprises an organizational drawing for FIGS. 4A and 4B.

FIGS. 4A and 4B comprise a detailed functional block diagram of the Verify Unit Controller block shown in FIG. 3B.

FIG. 5 comprises an organizational drawing for FIGS. 5A through 5G.

FIGS. 5A through 5G comprise a detailed operational flow chart illustrating the operation of the herein disclosed high security communications system.

DISCLOSURE OF INVENTION

For a better comprehension of the invention there will follow a general discussion of the underlying principles, first of a general transaction and identity verfication system, and then, a discussion of the broad application of these principles to the presently disclosed system. Finally there will follow a detailed description of the presently disclosed hardware which constitutes the best mode configuration.

As stated generally above, a transaction verification system having a high degree of integrity or security must incorporate a number of particular features. Suppose a User A (the originator of the transaction) wishes to send a data block D to a User B (the recipient of the transaction), the architectural requirements of the transaction verification system and the protocols which said system must follow must include the following features. The User A must provide with the message D some information, which is referred to herein as the signature (S), which signature must be dependent both on the data and the particular user. The system must be such that a valid signature S based on data D by User A must be essentially impossible for User B to construct. Similarly, no other person having access to the system should be able to construct said signature. Further, the system must include a mechanism whereby the User B can verify that S is a proper signature for the data D by the User A. The system must also provide a mechanism whereby the data content of a message validly received by B cannot subsequently be denied by the originator A. Further, the verification process must be uneffected by penetration of the operating system. Finally, the verification process must have some time dependence to prevent the reuse of stale messages obtained validly by, for example, the recipient B, or by some third party eavesdropping on the system.

The following describes a system architecture and protocol which accomplishes the above enumerated features.

It should first be understood that the present system utilizes a key-controlled block-cipher cryptographic system referred to hereinafter as DES and in the formulas and drawings by the symbol π. A preferred embodiment of such an encryption device is that set forth in the National Bureau of Standards Federal Information processing standard entitled, "Encryption Algorithm for Computer Data Protection." The standard together with a complete technical description is contained in the publication, "Data Encryption Standard," Federal Information Processing Standard (FIPS), Publication 46, National Bureau of Standards, U.S. Department of Commerce (January 1977). While other key-controlled block-cipher cryptographic systems could be utilized in the invention, the above-referenced system is preferred.

Further, the particular cryptographic system used must incorporate data chaining. Chaining is introduced to make each bit of the signature S functionally dependent upon each bit of the data. For the description of such a block-chaining system, reference is made to U.S. Pat. No. 4,078,152 of L. B. Tuckerman entitled, "Block-Cipher Cryptographic System with Chaining."

The encryption algorithm or the operation performed by the π block utilized in the present embodiment performs an operation represented by the formula:

cleartext D→π(K,D) ciphertext

This denotes the encipherment of the (cleartext) data D (of a fixed length of at least 8 bytes) by the DES encryption system using chaining with the key K. In the following description the subscript A in (KA) denotes the particular private key of the User A. The inverse operation or decipherment (π-1) is denoted by the following formula:

ciphertext π(K,D)←π-1 (K,π(K,D))=D cleartext

The following description is essentially a description of the protocol involved or method by which the present invention is realized. For purposes of this description FIG. 1 may be referred to. It will be noted that the overall system shows a number of terminals or users connected over a data communication network to a Host CPU. It will further be noted that the Host CPU is partitioned into the Host and a Verify Unit which is a high security device accessible only to the operating system and high security personnel who would be authorized to handle the various User Keys KX as well as the master Verify Unit key which will be denoted subsequently as KHV.

At the system initialization time, the Host operating system enciphers each user key according to the following formula:

KA ←π(KHV,KA)=KA * 

In the above formula symbol KA refers to User A's personal key and KHV is the Verify Unit master key as indicated above. The result of all computations are stored in the regular Host CPU's memory in the following format:

______________________________________A           ←   → KA *B           ←   → KB *       .       .       .Z           ←   → KZ *______________________________________ *TABLE-

In the above * Table and in the system it is assumed that an address into the * Table may be derived from the User's ID, i.e. A through Z.

In the present system it is assumed that the signature for data D by any User A which is denoted by the symbol S(KA,D) is the final 8 bytes of the encipherment of the message D by the DES encryption system using chaining with the key KA. As will be apparent later, the data D is a composite of a number of different items including both user ID's, the date, both user time stamps and the message in a predetermined format which will be set forth more fully subsequently.

There will now follow a description of the transaction protocol. It is assumed that each terminal is fitted with a DES encipherment box. Also, each terminal has a programmable timer or "clock" which continuously increments for at least a 24 hour period.

The verification device which is denoted herein as the Verify Unit is located in the Host CPU and is equipped with the specific functional units shown in FIGS. 3A and 3B which consist essentially of a number of special registers for holding signatures and user keys, as well as a DES encipherment box.

A transaction from User A (the originator) to User B (the recipient) proceeds in the following manner. It should first be noted, however, that the following description of the transaction presumes the existence of the above-referenced data stamp mechanisms, counters, etc. A much less secure system could be built without the re-use of same, however, the use of previously verified or stale messages would be impossible to detect without these features. Proceeding now with a description of a typical transaction.

(i) User A and User B establish a link upon the request of User A and User B supplies to User A the current counter value CTrec at user B's terminal. At the same time User B stores this counter value at his own terminal for later checking.

(ii) User A constructs a valid signature represented as follows:

S(KA,D)

wherein the data D is defined by the following formula:

D←→"User A to User B on Feb. 28, 1977, CTori, CTrec --Buy 100 shares of . . . " Upon completion of the generation of the signature S, A sends the pair:

(D,S(KA, D))

to User B.

As implied by the definition of the data value D, the actual message data is prefixed by the sequence of parameter values which are the identity of the originator and the recipient of the transaction, i.e., A and B; the date of the transaction, i.e., Feb. 2, 1977; the current counter value CTori at User A's terminal and the received counter value CTrec from User B's terminal.

In the following description for ease of reference, the message pair which A sends to B denoted by the above formula (D,S(KA,D)) will be referred to subsequently as the message pair (X,Y). In this pair value X corresponds to the data message D as defined above, and the value Y corresponds to the Signature S(KA,D).

Proceeding now with the description of the protocol, the User B receives a pair (X,Y) which is presumptively equal to the previous message (D,S(KA,D)). At this point, the User B examines the prefix portion of the message (X,Y) denoted by X. As will be remembered, this prefix portion contains the User A and B identities, dates, and the two counter values, CTori and CTrec. The verification process will continue only under the following conditions.

The data information is current.

User B is identified in the prefix as the recipient.

The counter value in the prefix, i.e., CTrec agrees with the value forwarded to User A by User B when User A requested a link and which was subsequently stored at User B's terminal.

Assuming all of these tests are met, User B then enciphers the entire message pair (X,Y) with User B's own individual key KB to form a message U, which is defined as:

U= (KB,(X,Y))

After enciphering the message U, User B transmits same to the Host together with the names A and B of the originator and recipient of the transaction.

The special purpose verify hardware resident in the CPU when supplied with the parameters A, B and U which have just been received from the User B will proceed to perform the following operations.

Utilizing the identities A and B the CPU will cause the values KA * and KB * to be accessed from * Table in the CPU memory. It will be remembered from the previous description that KA * = (KHV,KA) and KB * = (KHV,KB) from the * Table. Utilizing the KA * and the KB * and the known Verify Unit key, KHV, the Verify Unit associated with the CPU will decipher the two values and determine the user keys KA and KB internally of the Verify Unit and appropriately store these in holding registers therefor, as will be explained subsequently.

The Verify Unit next deciphers the message U under its original encipherment key KB internally. This is represented by the formula U= -1 (KB,U). The system then treats the deciphered message U as two different parts U1 and U2 wherein

U1 =U[1,n]

U2 =U[n+1,n+8]

In the above formulas it will be noted that U1 is the first n bytes which correspond to the data portion of the message X as originally transmitted and the portion U2 is equal to the last eight bytes of the message U which it will be remembered corresponds to the signature portion Y. At this point in time the system computes the signature of U1 utilizing the key KA and compares with the actual received signature U2. Utilizing a compare variable C, if C=1 it is assumed that there is a complete agreement of the signatures and if C=0 it is assumed that there is no such agreement.

Assuming C=1 the verify portion of the system will cause a signature to be derived for the logical complement of the concatenation (U1,U2), this logical complement being denoted by ˜(U1,U2), using the DES encryption system under chaining with the key KB. The resulting verification message V will be returned to User B wherein:

V=S(KB,˜(U1,U2))

or if C=0, the verify portion of the system will cause a signature to be derived for the concatenation (U1,U2) using the DES encryption system under chaining with the key KB. The resulting message V will be returned to User B wherein:

V=S(KB,(U1,U2))

At this point it should be noted that the operation of the Verify Unit is shown as performing a comparison of signatures to determine whether a successful or correct signature has been received from the User A. However, a further decision is made by the User B based on the message V returned to the User B by the CPU and the Verify Unit.

As previously stated, regardless of the result of the comparison, i.e., C=1 or C=0, the Verify Unit will derive a signature V based on (U1,U2) utilizing DES and the key KB. The resulting verify message V will be returned to User B. User B, using the verify message V, can now determine if the message (X,Y) from User A (presumptively equal to (D,S(KA,D)) was properly signed.

Upon receipt of the message V, User B will calculate a new signature defined by the following formula:

V'=S(KB,˜(X,Y))

It will be noted that if everything is proper the newly calculated signature V' will equal and correspond exactly to the message V, which the CPU has returned to User B.

Thus, in summary, User B will accept the transaction if and only if the data information in X is current, the "counter" values in X agree with the stored counter values which operations were done previously upon receipt of the initial transaction from User A. The final requirement, and the most critical is the receipt of a valid verify signal from the CPU, i.e., V=V'.

It should be noted that in each case the signatures V and V' are the last 8 bytes of the total encryption of the indicated data contents of said signatures under the key KB.

In the case of a dispute between the originator, User A and the recipient User B, User B will be required to produce the pair (X,Y) where Y is claimed to be the signature of X by User A. The arbiter will decide that the transaction is valid if and only if:

Y=S(KA,X)

which again is the signature for the putative data message X using User A's key KA.

Only one transaction with the same counter values will be declared valid on a given date. The role of the counter or time value is to protect against the re-use of a previously verified transaction; for example, User C, masquerading as User A, retransmits a previously verified (and accepted) transaction to User B. The "time stamp" imposes the protocol that no two messages will be accepted if they have identical time stamps, thus, eliminating this attempt at subversion of the transaction system.

BEST MODE FOR CARRYING OUT THE INVENTION

Having generally described the herein disclosed method for establishing a transaction protocol in accordance with the teachings of the present invention a description will follow of a best mode hardware configuration capable of performing this protocol.

FIG. 1, as stated briefly before, comprises a broad functional block diagram of the overall system wherein a plurality of terminals are shown connected via a data communication system to a centrally located Host CPU. A Verify Unit (VAULT) is directly connected to the Host CPU and may in fact be embedded therein. It is referred to as the VAULT to indicate the very high security nature of the hardware contained therein, it being clearly understood that only the system manager with special authorization should ever have access to any of the internal information stored in said VAULT and that the security of the system is limited by the security of the personnel having access thereto. This will be well understood since the various user keys stored in the * Tables in main memory would be decipherable to anyone having access to the Verify Unit's master key KHV which is not accessible, it being loaded into the VAULT at the time of system initialization by the system manager. The principal functioning units of the Verify Unit will be set forth subsequently in the description of FIGS. 3A and 3B. The details of the Verify Unit Controller are shown in FIGS. 4A and 4B.

FIG. 2 shows the structure of a typical remote terminal suitable for use with the present system. The majority of the blocks of the terminal are completely conventional in nature and operate in a straightforward way. For example, the MODEM block is a modulator/demodulator well known in the art for connecting the terminal to the data bus. The CRT Display and Display Controller perform the obvious function of displaying information keyed into the terminal via the keyboard, accessed from the system memory, or received from the CPU. The keyboard is a conventional unit for entering alphanumeric data and for purposes of the present invention it should be understood that the user keys KA or KB could either be entered via the keyboard or could be stored in the System Memory uniquely accessible via a special code enterable at the keyboard by a particular user. Thus, a number of different users having different user keys KX could utilize a single terminal in accordance with the teachings of the present invention it being understood that their particular keys would either have to be entered at the keyboard or suitably accessed from the System Memory. The unique devices required of the terminal for practicing the present invention are a Programmable Timer which would be utilized to produce the counter values CTrec and CTori mentioned in the previous description of the present transaction verification system. The DES Module shown in the terminal is identical to that shown as the DES unit in FIGS. 3A and 3B and comprises a standard key controlled block cipher encryption box with chaining. The best known example being the previously referenced U.S. Pat. No. 4,078,152, of L. B. Tuckerman.

It will be noted that the encryption system denoted herein by the symbol (π) in the formulas of FIGS. 5A through 5G, operate in a straightforward manner when provided with an encryption key K and a data block to be encrypted. Given this data the DES block will automatically produce encrypted (π) or decrypted (π-1) data in its output. The System Memory Controls are so configured that when the particular data message D is being encrypted, the last 8 bytes thereof may be automatically accessed as they comprise the unique digital signatures of the present system as described in detail previously. The block marked File Controller is a back up storage device associated with the terminal unit and would be used for example to store messages when the terminal is used as an originator, i.e., User A, or as a recipient, i.e., User B. In this case it should be clearly understood that User A and User B in the present description, refer to the originator and recipient of a particular transaction respectively.

The operation of such terminals under control of a suitable microprocessor is well known in the art and will not be gone into in greater detail since the performance of the various operations required of the terminals are extremely straightforward and well known as is the case with the Programmable Timer and also the Data Security Module.

Referring now to FIGS. 3A and 3B, the primary functional units of the Verify Unit are disclosed. The S-Register stores derived signatures generated in the Verify Unit. The contents of the S-Register may be sent to the Comparator or to the Host CPU as the case requires. The DES Unit, as stated previously with respect to the description of FIG. 2, is a key controlled block cipher encryption device with chaining of the type described previously with respect to the DES Module of FIG. 2. This unit receives three data items, namely an encryption key, the data, either to be encrypted or decrypted, and finally, an indication of whether an encryption or decryption cycle is required. Control lines C13, C14 and C15 control the loading of key data, message data, select the mode of operation and initiate the cryptographic conversion process. The Register is for the purpose of specifically storing the originator's key, either in clear (KA) form or in encrypted (KA *) form. The B-Register stores the receiver's (User B) key in either clear or encrypted form.

The block entitled, Read Write Memory (RWM), essentially stores the received complete messages transmitted by the system. The KHV Register stores the Verify Unit's master key under which all of the user keys KX are stored in the Host CPU's master memory, in encrypted form in the previously described * Table. When these encrypted keys are sent to the Verify Unit they are decrypted utilizing the master encryption key KHV to access the actual keys, i.e., KA and KB in the present illustration.

The Comparator block performs the exclusive function of comparing signatures on demand and will produce a one (1) or a zero (0) on its output line, depending upon whether or not the comparison is successful.

The Verify Unit Controller shown at the bottom of FIG. 3B, as is apparent, controls the operation of the Verify Unit wherein the various signals utilized are shown on the left side of the block and the handshake output signals, both to the Host and to its own circuitry, are shown emanating from the right side of the block. No commands as such are received by the Verify Unit Controller from the outside. The only signals received by the Verify Unit Controller are two status signals (S1, S2) and five handshake signals (RQVRF, . . . ,URDY). The Verify Unit is under control of the command structure set up in the microprogram memory (FIG. 4A) and is independent of external commands thereby precluding any external attempts to modify the operating sequences of the hardware resources within the Verify Unit. The Verify Unit Controller is shown in more detailed form in FIGS. 4A and 4B.

The functional units in the Verify Unit designated as CP1 through CP18 are referred to by digital design engineers as control points. Their operational sequences are quite complex in that they may perform both a gating function and a multiplexing or demultiplexing operation depending upon whether they are gating byte serial data into the various registers or out of said registers. From a functional standpoint, however, they may be simply considered as gate circuits having the multiplexing function indicated by the bit configurations entering and emanating from each control point. Each of the control points CP1 through CP18 are indicated as being controlled by control line C1 through C18. For example, control point CP2 takes seven consecutive 8 bit bytes and places them in seven consecutive 8 bit storage registers in the functional unit denoted as the A-Register (a total of 56 bits). Similarly, the control point CP6 does just the opposite. That is, it takes 7 consecutive 8 bit bytes from the A-Register and reconverts them into a series of seven 8 bit bytes which it places serially on the CD bus. It will be noted that the two control points designated as CP5 and CP17 convert from 8 bits to 64 bits since the S-Register utilizes an 8 byte signature. It will be remembered that, by definition, the signature is the last 8 bytes of the appropriately encoded message. Also, the control point CP10 is a selective inverter. That is, depending upon whether a 1 or 0 appears on control line C10, then 8 data bits passing through same will be inverted or pass through in true form. Control point CP11 merely performs a gating function. It will be noted that the Read/Write Memory (RWM) is organized in 8 bit storage locations, accordingly the control points, CP4, CP10 and CP11 need not perform any multiplexing/demultiplexing functions as described previously.

The details of the Control Point Units are not specifically shown as they would be obvious to a digital design engineer and moreover, could take a number of different design forms and still perform the required function.

The following table clearly indicates the specific functions performed by each of the Control Point Units.

______________________________________VERIFY UNIT CONTROL POINTFUNCTIONAL DEFINITION TABLE Func- tionalCon-  Unittrol  Con-Signal trolled  Operation Controlled______________________________________C1    CP1      INPUT BUS ← HOST CPU DATAC2    CP2      A-REG ← INPUT BUS DATAC3    CP3      B-REG ← INPUT BUS DATAC4    CP4      RWM ← INPUT BUS DATAC5    CP5      S-REG ← INPUT BUS DATAC6    CP6      C-D BUS ← A-REG DATAC7    CP7      CLEAR A-, B-REGS TO ZEROC8    CP8      C-D BUS ← B-REG DATAC9    CP9      READ/WRITE MODE AND ENABLE          CONTROLC10   CP10     PASS/INVERT RWM OUTPUT DATAC11   CP11     C-D BUS ← RWM DATAC12   CP12     C-D BUS ← KHV REG DATAC13   DES      LOAD DES KEY BUFFER FROM C-D          BUSC14   DES      LOAD DES DATA BUFFER FROM C-D          BUSC15   DES      CONVERT DATA (CRYPTOGRAPHIC          PROCESSING)-SELECT MODE -          INITIATE OPERATIONC16   CP16     INPUT BUS ← DES OUTPUT DATAC17   CP17     OUTPUT BUS ← S-REGISTER DATA          COMPARATOR ← S-REGISTER DATAC18   CP18     HOST CPU ← OUTPUT BUS DATA______________________________________

Referring now to FIGS. 4A and 4B the details of the hardware configuration of the Verify Unit Controller are shown. The controller follows the well known architecture of a small microprogrammed controller, such as is well known in the art. Part of the controller is of course the Micro Program Memory wherein the various operational sequences are stored. Particular addresses in the Micro Program Memory selected for particular operations are determined, as will be well understood, by the Micro Program Controller 12. As a given sequence is running the next address to the Micro Program Memory 10 comes from an internal microprogram counter which is incremented unless a branch to another location in the microprogram memory is required whereupon the branch address is loaded into the microprogram controller from the branch address field of the control word register. The various conditions which control operation of the Micro Program Controller are received from the Input Multiplexer wherein the various status and/or handshaking control signals will allow a particular sequence to proceed or be terminated. The particular line of the Input Multiplexor 14 utilized for controlling a given sequence is selected by the 3 bit IMPX Address field in the Control Word Register which is connected to the IMPX 14 address input port.

The following Host CPU/Verify Unit Handshake Control Definition Table is included for convenience of reference.

______________________________________HOST CPU/VERIFY UNIT INTERFACEDEFINITION TABLEHandshakeSignal     Function______________________________________RQVRF      Inform VU of request for verificationRQV        Inform VU of request for derived sig-      nature VKA*RDY     Inform VU that KA* data are ready for      transferKB*RDY     Inform VU that KB* data are ready for      transferURDY       Inform VU that U data are ready for      transferBUSY       A flag indicating Verify Unit statusRQKA*      Inform CPU of request for KA* dataRQKB*      Inform CPU of request for KB* dataRQU        Inform CPU of request for U dataVRDY       Inform CPU derived signature V is ready      for transfer______________________________________

The Control Word Register clearly indicates the format of the instructions stored in Micro Program Memory and utilized by the system. The six specified fields are believed to be self-explanatory. The next address select, IMPX address, and branch address have just been described. The handshake control field comprises six bits, three of which address the five bit addressable latch 16. The 3 bit address lines selects an output line; "data" line is supplied with a binary value (0 or 1) that is desired at the selected output line; the "enable" line causes the binary value on the "data line" to be "latched" and thereby appear on the selected output line. The "clear" line clears all output lines to zero. For example, if you wish to set "RQU" to 1 (as in block 10 of Verify Unit Flow Chart). RQU is associated with output line 3 of the 5-bit addressable latch. The 3 "address" lines are set to "011" (binary 3), the "data" line is set to 1, and the "enable" line is set to 1 (momentarily) thereby causing output line 3 to take on the binary value of 1. Thus, RQU=1, informing the Host CPU of a request for U data.

The Data Path control field of the Control Word Register controls the various Control Point Units described previously. These signals are used to either control the data flow paths between the various registers or to control the operation of functional units such as the RWM and the DES unit of the Verify Unit as will be well understood. It will be noted on FIG. 3 that 18 Data Paths Control Lines are indicated. This is in essence a functional number of the Control Point Units requiring a plurality of inputs. Finally, the R/W Memory Address Generation field, has a five bit field which controls the R/W Memory Address Generator block 18. This block actually contains two functional units, a twelve bit bidirectional counter and a storage register for saving desired counter settings or addresses. The counter supplies an ascending sequence of memory addresses to the RWM unit to enable it to store the remaining string of message bytes making up a particular message which are received by the Verify Unit. The upper input to the generator 18, from the clock generator, produces a pulse each time a data byte is received by the system. The five bits coming from R/W Memory Address generation field of the Control Word Register perform selectively the following functions.

The "reset" line causes the counter to be reset to all zeros. The "load" line causes the current contents of the storage register mentioned previously to be loaded into the counter. The "count" line is essentially an enable line which allows the clock pulses to increment or decrement the counter as determined by the "up/down" line which controls whether, depending on the given operational sequence the counter is being incremented or decremented respectively. When the save line is actuated it causes the contents of the counter to be stored into the register. It will be noted that the 12 bit output R/W Memory Address cable emanating from the generator 18 comes directly from the counter stages. It is these consecutive addresses which cause a given message to be stored in consecutive storage locations in the R/W Memory shown in FIG. 3B of the Verify Unit. The two units designated 3 state buffers 20 are in effect gate circuits which will selectively gate to the Micro Program Controller either the data on the 12 bit cable emanating from the branch address field of the Control Word Register or from the R/W Memory Address Generator 18.

This essentially completes the general description of the presently disclosed transaction verification system. It should be noted that the various operations required of the Host CPU would conventionally be performed by straightforward programming means. The functions required of the CPU are essentially those of setting up communication paths between the user A and user B, requesting service from the resident Verify Unit and for providing requested entries from the * Table to the Verify Unit.

Reference to the Operational Sequence Charts for the Verify Unit together with the following description of the overall flow chart of FIGS. 5A through 5G will clearly explain the detailed operation of the present system. It should be understood that the User A and the User B flow charts are both present in any given terminal, however, depending upon whether a given user is an originator or a recipient, the "originating" or "receiving" operational sequence will be activated.

In the flow chart of FIGS. 5A through 5G, it will be noted that there are a number of dashed lines terminating in an arrow implying a direction of communication between the various operational sequences comprising the present transaction verification system. Each of these arrows in effect represents a handshaking operation which is required of the present system, wherein control passes from one operational sequence to the other as the need arises. These handshaking operations take place between the CPU and the Verify Unit Controller and utilize the handshaking control signal lines for that purpose. The occurrence of the handshaking operations is clearly apparent in the operational sequence charts.

Referring now to the system flow diagram which describes a complete Transaction Verification Operation, reference will first be made to FIG. 5, which is an organizational diagram for FIGS. 5A through 5G. By arranging the figures in this fashion a single flow chart for the operation of the entire system is shown. Referring to the flow chart, each of the operational sequences is clearly labeled as occurring within the terminal of User A or User B, the Host CPU, or the Verify Unit. It should be noted that on FIG. 5B there are six blocks which are the terminal portion of the User B operational sequence. This is specifically labeled on FIG. 5G.

Before proceeding with the specific description of the flow chart, the following is a Definition of Terms Table setting forth the formulas and their definitions as used in the flow chart and in the prior general description of the overall operational protocol of the system. It is believed that reference to this table of definitions will greatly facilitate an understanding of the following description of the flow chart.

______________________________________DEFINITION OF TERMS TABLE______________________________________1.     M: message (i.e., Busy 50 shares RDQ common . . .)2.     D:data: (A, B, date, CTorig, CTrec, M)3.     S(KA, D): Signature of data D: S(KA, D): last  eight bytes of the chained encipherment of D  by DES using the key KA.4.     (X,Y): the message received from User A,  presumptively equal to (D,S(KA,D).5.     CT: a current counter value at a particular  terminal (orig/rec)6.     KA : User A's key - KB : User B's key7.     KHV : Verify Unit's master key8.     KZ *: π(KHV, KZ), i.e., for any user Z9.     π/π-1 : encryption/decryption under an encryption  key10.    U = π(KB, (X, Y))11.     --U = π-1 (KB,U) = ( --U1, --U2)12.     --U1  =  --U[1,n]: -  --U2  =  --U[n + 1,n + 8]13.    V = S(KB, --Uor S(KB, ˜ --U)  = last eight bytes  of  the chained encipherment of U by DES using the  key KB14.    If S(KB, ˜ --U) = S(KB ˜(X,Y)) then  signature of A  is valid for message X.______________________________________

Referring now to the flow chart it will first be noted that the successive blocks in each of the separate sequences are numbered consecutively for ease of reference.

In may be assumed, beginning in FIG. 5A that User A wishes to initiate a transaction utilizing the present transaction verification system. User A's terminal begins operation as indicated in block 1 and a determination is made as to whether a transaction is being initiated. If not the system proceeds to block 2 where a test is made as to whether a transaction request has been received, if so the operation sequence would branch downwardly into the "receiver" mode. It will be noted, as indicated in the figure, that the operational procedure would be the same from this point on, as is shown for User B. Thus, the "originator"/"receiver" modes are both present in every terminal although only one would be operative during any given transaction.

If the answer to the test made in block 2 is "no" the system would branch back to the beginning and continue cycling through blocks 1 and 2 in a "wait" state until either User A decides to initiate a transaction or receives a transaction request from another user which will cause the operational sequence to proceed in the appropriate manner. Assuming at this point that User A is the initiator of a transaction the system proceeds to block 3 and a link is established via the Data Communication Network with User B's terminal and control switches to block 1 of User B. As will be apparent a branch to block 2 will then occur when it is determined that a transaction request has been received from User A. At this point the User B sequence proceeds to block 3 which, in fact, establishes a link to User A over the Data Communication Network. At this point User B sends his current counter value CTrec, and at the same time causes the data: "indentity of A and CTrec " to be saved in his local memory for subsequent comparison purposes and at this point control is transferred back to User A. At this same time it is determined whether or not the counter value from User B has been received (CTrec).

Next, User A's sequence proceeds to block 5 which causes A's signature to be generated. The formula for this signature is set forth clearly in line 3 of the Definition of Terms Table (Definition Table). The sequence proceeds then to block 6 wherein each transaction message for transmission to User B is constructed which comprises the message pair (X,Y) the specific contents of which are clearly shown and defined in lines 2, 3, 4, 5 and 6 of the Definition Table. At this point, control transfers to the User B sequence, Block 4.

The receipt of the complete transaction message from User A causes the system to proceed to blocks 5, 6 and 8 wherein three straightforward data content tests are made, i.e., for the date, the correct addressee, i.e., User B and the proper counter value which it will be remembered was saved by User B in block 3. If any of these tests are negative the transaction will immediately abort or terminate as shown in block 7 and the sequence will proceed no further. If everything is correct however, the system proceeds to block 9 wherein the user key KB is provided to User B's DES Module which is a key-controlled block cipher cryptographic unit as described previously and similarly the message pair (X,Y) is made available to the encryption unit as the data to be encrypted, and the entire message pair (X,Y) is encrypted under User B's key to produce the message U, which is defined in line 10 of the Definition Table. The system then proceeds to block 10 wherein User B transmits to the Host CPU the message A, B, U. The portion of the message defined as A, B defines the originator and recipient of the message which is being sent to the CPU for verification. As will be remembered the data A and B provide entries to the * Table where the keys KA * and KB * are stored.

At this point control transfers over to the Host CPU sequence. It will first be assumed that in the start operation, the system is initialized and all handshake lines to the Verify Unit are effectively cleared to zero. In block 1 the "request for verification" signal is received from User B. The sequence proceeds to block 2 wherein the message A, B, U, is received and appropriately stored in the CPU memory.

In block 3 a test is made of the "busy" status of Verify Unit and if "busy" the system will wait until it is not busy and can proceed to block 4 wherein a request for a new transaction verification operation (RQVRF) is sent to the Verify Unit. Control then transfers the Verify Unit, specifically, block 2. It will be assumed that the start block causes the requisite handshake control output lines to be appropriately set to zero. Upon the receipt of a "request verification" signal the system proceeds to block 3 in the Verify Unit sequence wherein the "busy" flag at the Verify Unit handshake control outputs is set to a "1" which will advise the CPU that the Vertify Unit is "busy" in case it should attempt to request a further transaction verification operation.

The system then proceeds to block 4 wherein a request is made for KA *. This request goes back to the Host CPU where it will be remembered the various user keys are encrypted under the system master key KHV in the * Table. This request will cause the RQKA* handshake control output line from the Verify Unit to be set to a one. At this point control is shifted back to the Host CPU and specifically block 5 thereof. In block 5 the request for KA * is acknowledged and the system proceeds to block 6 of the Host CPU sequence. In this block, the previously received value A, identifying the originator of the transaction, is used as an address into the * Table and the data referred to as KA * is accessed and KA* RDY handshake line proceeding to the Verify Unit input handshake control is set to a one, indicating to the Verify Unit, that the KA * data is ready. In block 7 the KA * data is transmitted to the Verify Unit and the KA* RDY handshake line is reset to a zero. At this point control transfers back to block 5 of the Verify Unit sequence.

Block 5 acknowledges the signal, which causes KA * to be read into the A register of the Verify Unit and at this point the RQKA* handshake control output line is reset to zero. Control now proceeds to block 7 wherein a request is made for the KB * data. At this point it will be noted that blocks 7, 8 and 9 of the Verify Unit are essentially identical functionally to blocks 4, 5 and 6 of the Verify Unit with the exception that at the end of this sequence the data KB * is now loaded in the B register of the Verify Unit. Similarly, blocks 8, 9 and 10 in the Host CPU sequence are essentially identical to blocks 5, 6 and 7 thereof with the exception that in this case the data KB * is extracted from the * Table and sent to the Verify Unit. Assuming now that the data KB * is resident in the B register, the system will proceed to block 10 of the Verify Unit sequence wherein a request is made for the data U which has been stored in the Host CPU memory. At the same time the handshake control RQU is set to a "1" in the output from the Verify Unit and control transfers back to block 11 of the Host CPU which receives the request. The Verify Unit waits until the CPU is ready to send U. When the CPU is ready, it then sets URDY line to 1. In the meanwhile the Verify Unit is waiting and monitoring the URDY line. It is assumed here that U is available and accordingly the handshake control indicated as URDY is set to a one which informs the Verify Unit that the message segment U is available for transmission.

In block 13 of the Host CPU sequence, the message segment U is sent to the Verify Unit and the URDY handshake input line to the Verify Unit is reset to a "zero". Referring now to block 12 of the Verify Unit the message segment U is read from the Host CPU and stored in the RWM of the Verify Unit and the handshake control output line RQU is reset to a "zero". Block 13 of the Verify Unit causes the originator key KA to be deciphered from the value KA * currently stored in the A register by transmitting KA * plus the system master key KHV to the DES Unit whereby User A's encryption key KA is decrypted and stored in the A register for further verification operations. The system then proceeds to block 14 where precisely the same operation is performed for the value KB * to produce the User B's key, KB, which is stored in the B register.

At this point the Verify Unit sequence proceeds to block 15 wherein the message U is deciphered under the user key KB and the results are stored in the RWM as U. The definition or specification of the data content of the deciphered message U is shown in block 15A and is indicated as U1 and U2 which are the first n bytes of the deciphered message and the last 8 bytes of the deciphered message respectively. As will be remembered from the prior definition of the signature, these last 8 bytes or U2, are presumptively equal to the signature of User A. To verify this in block 16 the Verify Unit now causes the signature of User A under key KA to be constructed at this time utilizing the value U1 as the data source for the signature. Thus, if U1 has been truly received as the original message X, set by User A to User B and then enciphered under key KB and sent to CPU, then the last 8 bytes of this encipherment as performed in block 16, should be equal to the value U2. This comparison is made in block 17 and if the comparison is successful the Verify Unit will have determined that the signature for User A is valid. After this comparison the Verify Unit sequence may either branch to blocks 18 or 19 where construction of an "invalid" or "valid" message to be transmitted back to the User B is performed. In order to insure the secrecy and integrity of the return message, rather than just sending back a simple yes or no signal, which could be easily synthesized by an interloper on the line, blocks 18 and 19 cause a complex message defined as the signature V of U or of ˜U under the key KB to be generated. Thus, depending upon whether the comparison in block 17 was or was not successful, the signature V is derived utilizing ˜U, the logical complement of U or U as the data source. In block 20 the VRDY handshake line from the handshake control outputs of the Verify Unit is set to a "1" which when detected by the Host CPU activates block 14 of the Host CPU which is informed that the signature V is now ready in the Verify Unit. In block 15 of the Host CPU, V is requested by setting the handshake control input line RQV to a "1" which actuates block 20 in the Verify Unit. In block 22 of the Verify Unit and block 16 of the Host CPU the message V is sent from the Verify Unit to the CPU and in block 17 of the CPU's sequence the derived signature V is transmitted directly to User B. This terminates the Host CPU operational sequence for this particular verification request and in effect returns same to the state of block 1.

Returning breifly to the Verify Unit operational sequence, transmission of the signature V to the Host CPU ends the active role of the Verify Unit operational sequence in the overall verification procedure, it being noted that block 23 and block 24 are merely clearing and resetting operations for removing stale data from the operational registers and resetting the various handshake lines to their standby or wait condition in block 2.

In block 11 of the User B sequence on FIG. 5G, the terminal of User B is appropriately notified that the verification message V is ready to be transmitted from the Host CPU. At this point, appropriate control is actuated and the message V is in effect read from the Host CPU in block 12 and in block 13, User B constructs the signature of the logical complement of (X,Y) denoted by ˜(X,Y) under his own key KB which as will be remembered, comprises the last 8 bytes of the encryption of message ˜(X,Y) under the key KB. This generated signature is compared with the message V, which was received from the Host CPU in block 14 of the User B sequence. The test made in this block and its consequences are implied in line 14 of the Definition Table.

It should be noted in passing that, providing the entire system is operating properly, and no messages have been erroneously transmitted or fraudulently transmitted, then U which is the decipherment of U under the key KB should be equal to the original message (X,Y). Thus, a successful comparison in block 14 indicates that the signature Y which User B originally received from User A is correct and proper for the message portion X. It will be further noted that in addition to User B now having confidence that he has been communicating with the true User A and further that he has received a valid message X, User A is similarly protected because of the absolute dependence of his valid signature on the content of the message X. This was explained previously with respect to the arbitration procedure possible in the present system and is repeated here for purposes of emphasis only.

Having thus described the operation of the present system from the flow charts of FIGS. 5A through 5G it is believed that the overall operational characteristics will be well understood by those skilled in the art.

There will now follow a detailed exposition of the operation of the Verify Unit controls in the form of an Operational Sequence List for the Verify Unit. This list comprises a sequence of the individual operations which would conventionally be performed by micro code stored in the microprogram memory of the Verify Unit which operations must be performed to practice the herein disclosed preferred embodiment of the invention. Referring to these operational sequence lists which are numbered in accordance with the blocks of the flow chart the discrete operations carried out and the manner in which the various units of hardware shown specifically in FIGS. 3A, 3B, 4A and 4B, operate will be readily understood. A list of definitions appears at the beginning of the Operational Sequence List which defines the various acronyms or abbreviations utilized.

______________________________________Operational Sequence Listfor Verify Unit______________________________________DefinitionsRWM:    Read/Write MemoryRWMAG:  Read/Write Memory Address GeneratorIMPX:   Input MultiplexerDES Unit:   Data Encryption Standard Unit(Ci):   i-th Control Point, activation ofRESET:  RWMAG set to zeroLOAD:   Contents of internal storage register are   loaded into RWMAGCOUNT:  Enables RWMAG to countU/--D:  Up (1) /down (0) count-mode control for RWMAGSAVE:   Contents of RWMAG are saved in internal storage   registerCLEAR:  All handshake control output lines are   cleared to zeroSTEP1       CLEAR2       Set IMPX ADDRESS to 2    TEST RQVRF:    If 0, hold;    If 1, continue3       Set BUSY to 14       Set RQKA* to 15       Set IMPX ADDRESS to 4    TEST KA*RDY:    If 0, hold    If 1, continue6.1     Load A-Register with KA* from Host CPU. (C1,C2)6.2     Clear RQKA* to 07       Set RQKB* to 18       Set IMPX ADDRESS to 599.1     Load B-Register with KB* from Host CPU. (C1,C2)9.2     Clear RQKB* to 010      Set RQU to 111      Set IMPX ADDRESS to 6   Test URDY:    If 0, hold    If 1, continue1212.1    RESET12.2    Set U/--Dto 112.3    Set RWM for write operation (C9)12.4    Set IMPX ADDRESS to 612.5    Load one data byte of U from Host CPU to RWM   via Input-Bus (C1,C4)12.6    Test URDY:    If 1, increment RWMAG and go to step 12.5;    If 0, continue12.7    Clear RQU to 012.8    SAVE1313.1    Load key KHV into DES Unit (C12,C13)13.2    Load data from A-Register (KA*) into DES Unit   (C6,C14)13.3    Decipher data (C15)13.4    Read 7 bytes of data (KA) from DES Unit into   A-Register (C16,C2)1414.1    Load key KHV into DES Unit (C12,C13)14.2    Load data from B-Register (KB*) into DES Unit   (C8,C14)14.3    Decipher data (C15)14.4    Read 7 bytes of data (KB) from DES Unit into   B-Register (C16,C3)1515.1    Load N + 8 into Microprogram Controller15.2    Load Key KB into DES Unit (C8,C13)15.3    Set U/--Dto 115.4    RESET15.5    SAVE15.6    Set RWM for read operation (C9,C10)15.7    Load 8 bytes of U data from RWM into DES Unit   (C11,C14)15.8    Decipher data (C15)15.9    LOAD15.10   Set RWM for write operation (C4, C9)15.11   Store 8 bytes of  --Udata from DES Unit in   RWM (C16,C4)Repeat steps 15.5 through 15.11 as necessaryuntil N + 8 bytes of U data have been processed.1616.1    Decrement RWMAG by 8 (RWMAG ← N)16.2    SAVE16.3    Load N into Microprogram Controller16.4    RESET16.5    Set U/--Dto 116.6    Load Key KA into DES Unit (C6,C13)16.7    Set RWM for non-inverting read operation   (C9,C10)16.8    Load 8 bytes of  --U1 data from RWM into DES Unit   (C11,C14)16.9    Encipher data (C15)Steps 16.8 and 16.9 are repeated as necessary untila total of N bytes of data ( --U1) have been processedfrom RWM. (A short block, if one occurs, and chain-ing linkages are handled internally by the DES Unit). -  16.10     Read final 8 bytes of data from the DES Unit  into the S-Register (C16,C5)  [S-REGISTER ← S(KA, --U)]1717.1  LOAD (RWMAG ← N)17.2  Set U/-- D to 117.3  Set RWM for non-inverting read operation  (C9,C14)17.4  Set IMPX ADDRESS to 117.5  Increment RWMAG17.6  Read data byte from RWM to comparator Q input  (C11)17.7  Read data byte from S-Register to comparator P  input (C17)17.8  Test S2 (S2 = O), go to step 17.5 if additional  bytes of S(KA, --U1) remain to be tested; else,  go to step 191818.1  LOAD (RWMAG ← N)18.2  Increment RWMAG by 8 (RWMAG ← N + 8)18.3  Load N + 8 into Microprogram Controller18.4  RESET (RWMAG ← 0)18.5  Load Key KB into DES Unit (C8,C13)18.6  Set RWM for non-inverting read operation  (C9,C10)18.7  Load 8 bytes of  --Udata from RWM into DES Unit  (C11,C14)18.8  Encipher data (C15)Steps 18.7 and 18.8 are repeated as necessary untilN + 8 bytes of  --Udata have been processed. (A shortblock, if one occurs, and chaining linkages arehandled internally by the DES Unit).18.9    Read final 8 bytes from DES Unit into the   S-Register (C16,C5)   [S-REGISTER ← S(KB, --U)]1919.1    LOAD (RWMAG ← N)19.2    Increment RWMAG by 8 (RWMAG ← N + 8)19.3    Load N + 8 into Microprogram Controller19.4    RESET19.5    Set U/--Dto 119.6    Load key KB into DES Unit (C8,C13)19.7    Set RWM for inverting read operation (C9,C10)19.8    Load 8 bytes of inverted  --Udata from RWM into   DES Unit (C11,C14)19.9    Encipher data (C15)Steps 19.8 and 19.9 are repeated as necessaryuntil N + 8 bytes of  --Udata have been processed.(A short block, if one occurs, and chaininglinkages are handled internally by the DESUnit).19.10   READ FINAL 8 bytes from DES Unit into the   S-Register (C16,C5)   [S-REGISTER ← S(KB,˜ -- U)]20      Set VRDY to 121      Set IMPX ADDRESS to 3   Test RQV:    If 0, hold    If 1, continue22      Read 8 bytes of V data from S-Register to   Host CPU (C17,C18)23      Clear A- and B-Registers (C7)2424.1    CLEAR (Handshake control output lines cleared   to 0)24.2    Go to step 2______________________________________

From the above detailed Operational Sequence List for the Verify Unit, it is believed that the operation of the overall system will be clearly apparent to those skilled in the art. Specific Operational Sequence Lists were not given for the Terminal Unit or for the Host CPU since these units are essentially well known in the art. Similarly, how to program such hardware to perform the various operations set forth in the flow chart of FIGS. 5A through 5G is well known. For example, within the terminals, the various operations required could easily be controlled by hardware dedicated keyboard operations or could be done via a microprogram controller such as utilized in the Verify Unit.

Similarly, within the Host CPU, the actual operations performed are a relatively simple and straightforward list of fetches, data requests and the transmitting of messages between the User B and the Host upon command and it is believed that such functions are notoriously old per se and that, given the present flow charts, programming for such a verification routine would be extremely straightforward and would vary only with the particular Host CPU architecture, program language, etc., involved.

INDUSTRIAL APPLICABILITY

The uses of the herein disclosed transaction verification in the modern day business environment could be manifold. As has been reiterated herein, the system assures virtually a foolproof method of guaranteeing both the identity of the sender or originator of a message insofar as a receiver is concerned, while at the same time guaranteeing the integrity of the message to the original sender. This allows the utilization of long distance telecommunications facilities for the real time completion of transactions which could only be performed in the past utilizing much more time consuming and conventional methods, such as electronic mail or by actually having people meet to consummate various transactions.

Thus for example, legally binding contracts could be effected by having both parties to the contract send an additional data or message portion to the other, each having his own unique signature appended thereto, plus each party to the transaction would have his own resident copy of the contract, electronically signed by the other party and wherein the actual wording of the contract would be verifiable at any time in the future, if a conflict arose and allegations were made that the wordings were at variance.

Similarly, long distance highly verifiable purchase orders could be made between individuals where, due to the nature of the transaction, or the amount of money involved were great, the receiver of such a message would not normally act until the identity of the sender were irrevocably established.

The system could also have applicability for such a commercial purpose as telephone ordering (i.e., local terminal) by an individual from a large, centrally located store, wherein both ordering and funds transfer could be handled in a highly reliable manner utilizing various aspects of the presently disclosed system.

In short, any area where the identity of the sender and the actual content of the transmitted message must both be firmly established would be possible candidates for use of the present invention.

In summary, the present system, as disclosed, prevents masquerading by any party (not having access to the secret keys) even though he has access to eavesdropping equipment over the line. It also prevents the gathering of any useful information via eavesdropping which could be subsequently used to bypass the present security system. The only actual data which could be obtained by an eavesdropper which might or might not prove useful would be the actual message content of the unencrypted portions of the message, i.e., from User A to the Host CPU during the initialization portion of the procedure. It will be readily understood that this could be easily avoided by utilizing further cryptographic transmission security via the system hardware already present in the system. In such cases all messages would be transmitted using an overall system message transmission key (KT) known to all users and the CPU but not presumptively to an eavesdropper. Such encryption would be superimposed on the message protocol described herein as will be well understood by those skilled in the art.

It should also be understood that while the present invention has been specifically set forth and described with reference to a preferred embodiment, it will be readily appreciated by those skilled in the art that many changes in form and detail may be made without departing from the spirit and scope of the present invention as set forth in the appended claims.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US4123747 *20 May 197731 Oct 1978International Business Machines CorporationIdentity verification method and apparatus
US4182933 *14 Feb 19698 Jan 1980The United States Of America As Represented By The Secretary Of The ArmySecure communication system with remote key setting
US4186871 *1 Mar 19785 Feb 1980International Business Machines CorporationTransaction execution system with secure encryption key storage and communications
Non-Patent Citations
Reference
1 *"Design and Specification of Cryptographic Capabilities", Campbell, Jr., Preprint for Conference on Computer Security and the Data Encryption Standard, Feb. 15, 1977.
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US4326098 *2 Jul 198020 Apr 1982International Business Machines CorporationHigh security system for electronic signature verification
US4386233 *29 Sep 198031 May 1983Smid Miles ECrytographic key notarization methods and apparatus
US4393269 *29 Jan 198112 Jul 1983International Business Machines CorporationMethod and apparatus incorporating a one-way sequence for transaction and identity verification
US4411017 *14 Mar 198018 Oct 1983Harris CorporationSecure mobile telephone system
US4433207 *10 Sep 198121 Feb 1984Best Robert MCryptographic decoder for computer programs
US4438824 *22 Apr 198127 Mar 1984Siemens CorporationApparatus and method for cryptographic identity verification
US4458109 *5 Feb 19823 Jul 1984Siemens CorporationMethod and apparatus providing registered mail features in an electronic communication system
US4467139 *12 Mar 198121 Aug 1984Compagnie Internationale Pour L'informatique Cii Honeywell BullProcess and system for transmission of signed messages
US4525712 *18 Feb 198225 Jun 1985Hitachi, Ltd.Transaction processing system
US4598367 *9 Nov 19831 Jul 1986Financial Design Systems, Inc.Financial quotation system using synthesized speech
US4633037 *21 Feb 198430 Dec 1986British Telecommunications Public Limited CompanyGeneration of identification keys
US4638120 *21 Jan 198620 Jan 1987Compagnie Internationale Pour L'informatique Cii Honeywell BullMethod and system for transmission of confidential data
US4638356 *27 Mar 198520 Jan 1987General Instrument CorporationApparatus and method for restricting access to a communication network
US4652698 *13 Aug 198424 Mar 1987Ncr CorporationMethod and system for providing system security in a remote terminal environment
US4652990 *27 Oct 198324 Mar 1987Remote Systems, Inc.Protected software access control apparatus and method
US4654792 *30 Apr 198431 Mar 1987Corban International, Ltd.Data processing system including data input authorization
US4656474 *20 Nov 19857 Apr 1987Compagnie Internationale Pour L'informatique Cii-Honeywell Bull (Societe Anonyme)Process and apparatus for authenticating the signature of a signed message
US4658093 *11 Jul 198314 Apr 1987Hellman Martin ESoftware distribution system
US4672572 *21 May 19849 Jun 1987Gould Inc.Protector system for computer access and use
US4720859 *5 Apr 198219 Jan 1988U.S. Philips CorporationMethod and system for the mutual encyphered indentification between data communicating stations and stations for use with such method and system
US4733345 *29 Jul 198522 Mar 1988Anderson Paul DComputer-telephone security device
US4780828 *26 Dec 198525 Oct 1988Pitney Bowes Inc.Mailing system with random sampling of postage
US4797920 *1 May 198710 Jan 1989Mastercard International, Inc.Electronic funds transfer system with means for verifying a personal identification number without pre-established secret keys
US4823388 *5 Feb 198718 Apr 1989Kabushiki Kaisha ToshibaCommunications network using an enciphering and deciphering device
US4850018 *1 Jul 198618 Jul 1989Baker Industries, Inc.Security system with enhanced protection against compromising
US4885777 *11 Apr 19885 Dec 1989Hitachi, Ltd.Electronic transaction system
US4891838 *4 Nov 19852 Jan 1990Dental Data Service, Inc.Computer accessing system
US4903201 *3 Nov 198320 Feb 1990World Energy Exchange CorporationAutomated futures trading exchange
US4914698 *24 Jul 19893 Apr 1990David ChaumOne-show blind signature systems
US4916738 *5 Nov 198610 Apr 1990International Business Machines Corp.Remote access terminal security
US4926480 *24 May 198815 May 1990David ChaumCard-computer moderated systems
US4926481 *5 Dec 198815 May 1990The United States Of America As Represented By The Administrator Of The National Aeronautics And Space AdministrationComputer access security code system
US4980826 *19 Mar 198425 Dec 1990World Energy Exchange CorporationVoice actuated automated futures trading exchange
US4994985 *21 Jul 198919 Feb 1991International Business Machines CorporationMethods of appending a reply in an electronic mail system
US5001752 *13 Oct 198919 Mar 1991Fischer Addison MPublic/key date-time notary facility
US5007083 *16 Jan 19859 Apr 1991Constant James NSecure computer
US5093918 *22 Dec 19883 Mar 1992International Business Machines CorporationSystem using independent attribute lists to show status of shared mail object among respective users
US5095421 *17 Aug 198910 Mar 1992International Business Machines CorporationTransaction processing facility within an operating system environment
US5136643 *20 Dec 19904 Aug 1992Fischer Addison MPublic/key date-time notary facility
US5136648 *5 Sep 19904 Aug 1992Octel Communications CorporationMessage storage security system
US5163098 *6 Sep 199010 Nov 1992Dahbura Abbud SSystem for preventing fraudulent use of credit card
US5182554 *18 Dec 199026 Jan 1993International Business Machines CorporationThird party evavesdropping for bus control
US5191613 *15 Nov 19912 Mar 1993Graziano James MKnowledge based system for document authentication
US5202997 *6 Sep 199013 Apr 1993Isolation Systems LimitedDevice for controlling access to computer peripherals
US5226079 *16 Oct 19916 Jul 1993International Business Machines CorporationNon-repudiation in computer networks
US5231570 *11 Dec 199027 Jul 1993Lee Gerritt S KCredit verification system
US5267314 *17 Nov 199230 Nov 1993Leon StamblerSecure transaction system and method utilized therein
US5276735 *17 Apr 19924 Jan 1994Secure Computing CorporationData enclave and trusted path system
US5276884 *1 Apr 19914 Jan 1994Amdahl CorporationControlling the initiation of logical systems in a data processing system with logical processor facility
US5313580 *19 Oct 199217 May 1994Remion Michael JTelecommunications interface apparatus and method
US5363296 *28 Oct 19938 Nov 1994Matsushita Electric Industrial Co., Ltd.Electronic cash register having macro-keys
US5428745 *25 Jul 199427 Jun 1995Dow Benelux N.V.Secure communication system for re-establishing time limited communication between first and second computers before communication time period expiration using new random number
US5491752 *2 Sep 199413 Feb 1996Digital Equipment Corporation, Patent Law GroupSystem for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens
US5499297 *20 Dec 199412 Mar 1996Secure Computing CorporationSystem and method for trusted path communications
US5502766 *26 Oct 199326 Mar 1996Secure Computing CorporationData enclave and trusted path system
US5519603 *12 Jul 199421 May 1996The Dow Chemical CompanyIntelligent process control communication system and method having capability to time align corresponding data sets
US5524073 *14 Sep 19934 Jun 1996Stambler; LeonSecure transaction system and method utilized therein
US5555303 *22 May 199510 Sep 1996Stambler; LeonSecure transaction system and method utilized therein
US5561770 *21 Feb 19951 Oct 1996The Dow Chemical CompanySystem and method for determining whether to transmit command to control computer by checking status of enable indicator associated with variable identified in the command
US5596718 *10 Jul 199221 Jan 1997Secure Computing CorporationSecure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor
US5608800 *17 Mar 19934 Mar 1997Siemens AktiengesellschaftProcess for detecting unauthorized introduction of any data transmitted by a transmitter to a receiver
US5644710 *13 Feb 19951 Jul 1997Eta Technologies CorporationIn a communications system
US5646998 *22 May 19958 Jul 1997Stambler; LeonSecure transaction system and method utilized therein
US5680470 *7 Jun 199521 Oct 1997Moussa; Ali MohammedMethod of automated signature verification
US5734819 *12 Oct 199431 Mar 1998International Business Machines CorporationMethod and apparatus for validating system operation
US5793302 *12 Nov 199611 Aug 1998Stambler; LeonMethod for securing information relevant to a transaction
US5805810 *27 Apr 19958 Sep 1998Maxwell; Robert L.Apparatus and methods for converting an electronic mail to a postal mail at the receiving station
US5870543 *11 Mar 19979 Feb 1999Digital River, Inc.System for preventing unauthorized copying of active software
US5872917 *8 Oct 199716 Feb 1999America Online, Inc.Authentication using random challenges
US5883954 *7 Jun 199516 Mar 1999Digital River, Inc.Self-launching encrypted try before you buy software distribution system
US5883955 *7 Jun 199516 Mar 1999Digital River, Inc.On-line try before you buy software distribution system
US5887060 *14 Jul 199723 Mar 1999Digital River, Inc.Central database system for automatic software program sales
US5903647 *7 Jun 199511 May 1999Digital River, Inc.Self-launching encrypted digital information distribution system
US5903878 *20 Aug 199711 May 1999Talati; Kirit K.Method and apparatus for electronic commerce
US5907617 *14 Jul 199725 May 1999Digital River, Inc.Try before you buy software distribution and marketing system
US5915024 *17 Jun 199722 Jun 1999Kabushiki Kaisha ToshibaElectronic signature addition method, electronic signature verification method, and system and computer program product using these methods
US5933498 *5 Nov 19973 Aug 1999Mrj, Inc.System for controlling access and distribution of digital property
US5936541 *10 Jun 199710 Aug 1999Stambler; LeonMethod for securing information relevant to a transaction
US5956409 *29 Apr 199621 Sep 1999Quintet, Inc.Secure application of seals
US5964835 *7 Jun 199512 Oct 1999Tandem Computers IncorporatedStorage access validation to data messages using partial storage address data indexed entries containing permissible address range validation for message source
US5974148 *13 May 199726 Oct 1999Stambler; LeonMethod for securing information relevant to a transaction
US5991401 *6 Dec 199623 Nov 1999International Business Machines CorporationMethod and system for checking security of data received by a computer system within a network environment
US6023619 *18 Nov 19968 Feb 2000Airtouch Communications, Inc.Method and apparatus for exchanging RF signatures between cellular telephone systems
US6058301 *27 Nov 19962 May 2000Airtouch Communications, Inc.Cellular fraud prevention using selective roaming
US6145004 *2 Dec 19967 Nov 2000Walsh; Stephen KellyIntranet network system
US6213391 *10 Sep 199710 Apr 2001William H. LewisPortable system for personal identification based upon distinctive characteristics of the user
US628587112 Oct 19994 Sep 2001Cellco PartnershipCellular fraud prevention using selective roaming
US631440926 Oct 19986 Nov 2001Veridian Information SolutionsSystem for controlling access and distribution of digital property
US642791216 Aug 20006 Aug 2002Coin Acceptors, Inc.Off-line credit card transaction system and method for vending machines
US644269221 Jul 199827 Aug 2002Arkady G. ZilbermanSecurity method and apparatus employing authentication by keystroke dynamics
US64776453 Feb 19995 Nov 2002Intel CorporationAuthority and integrity check in systems lacking a public key
US6594692 *29 Apr 199615 Jul 2003Richard R. ReismanMethods for transacting electronic commerce
US6678666 *5 Jun 200013 Jan 2004Van W. BoulwareMethod of conducting anti-fraud electronic bank security transactions having price-date-time variables and calculating apparatus thereof
US6725459 *9 Feb 200120 Apr 2004Scientific-Atlanta, Inc.Descrambling device for use in a conditional access system
US6760440 *11 Dec 19996 Jul 2004Honeywell International Inc.One's complement cryptographic combiner
US685979529 Jul 199922 Feb 2005Cyphermint, Inc.Method for carrying out transactions and device for realizing the same
US696142818 Feb 20001 Nov 2005Chao LiuMethod of videotext information encryption and security transmission in a network
US7000117 *12 Nov 200114 Feb 2006Sonera Smarttrust OyMethod and device for authenticating locally-stored program code
US7039805 *20 May 19982 May 2006Messing John HElectronic signature method
US705859711 Aug 19996 Jun 2006Digital River, Inc.Apparatus and method for adaptive fraud screening for electronic commerce transactions
US705880816 Jun 19996 Jun 2006Cyphermint, Inc.Method for making a blind RSA-signature and apparatus therefor
US716505122 Feb 200516 Jan 2007Digital River, Inc.Electronic commerce system and method for detecting fraud
US718101725 Mar 200220 Feb 2007David FelsherSystem and method for secure three-party communications
US737623529 Jul 200220 May 2008Microsoft CorporationMethods and systems for frustrating statistical attacks by injecting pseudo data into a data system
US741547610 Mar 200319 Aug 2008Authentidate Holding Corp.Digital file management and imaging system and method including secure file marking
US744800829 Aug 20064 Nov 2008International Business Machines CorporationMethod, system, and program product for automated verification of gating logic using formal verification
US75873685 Jul 20018 Sep 2009David Paul FelsherInformation record infrastructure, system and method
US761712427 Jan 200010 Nov 2009Digital River, Inc.Apparatus and method for secure downloading of files
US76536878 Jun 200726 Jan 2010Reisman Richard RMethod for distributing content to a user station
US7669100 *8 Mar 200723 Feb 2010Freescale Semiconductor, Inc.System and method for testing and providing an integrated circuit having multiple modules or submodules
US770136411 Jul 200720 Apr 2010Zilberman Arkady GUser input authentication and identity protection
US7743248 *16 Jul 200322 Jun 2010Eoriginal, Inc.System and method for a remote access service enabling trust and interoperability when retrieving certificate status from multiple certification authority reporting components
US775211630 Oct 20026 Jul 2010Nasdaq Liffe Markets, LlcLiquidity engine for futures trading exchange
US7761908 *24 Jun 200520 Jul 2010Ricoh Company, Ltd.Network apparatus
US7853525 *15 Jul 200314 Dec 2010Microsoft CorporationElectronic draft capture
US788197212 Oct 20061 Feb 2011Digital River, Inc.Electronic commerce system and method for detecting fraud
US797116615 Jun 200828 Jun 2011International Business Machines CorporationMethod, system, and program product for automated verification of gating logic using formal verification
US797954212 Mar 200912 Jul 2011Intertrust Technologies CorporationMethods and systems for transaction record delivery using thresholds and multi-stage protocol
US800574317 Sep 200223 Aug 2011Intercontinentalexchange, Inc.Electronic trading confirmation system
US802439931 Aug 200620 Sep 2011Twintech E.U., Limited Liability CompanySoftware distribution over a network
US805098029 Sep 20091 Nov 2011Digital River, Inc.Secure downloading of a file from a network system and method
US806552522 Sep 200522 Nov 2011Bekad Mgmt. Ii, LlcDevice with built-in user authentication and method for user authentication and identity theft protection
US806920431 Aug 200629 Nov 2011Twintech E.U., Limited Liability CompanyProviding and receiving content over a wireless communication system
US813188320 Apr 20006 Mar 2012Intellectual Ventures I, Limited Liability CompanyMethod for distributing content to a user station
US819051322 Oct 200829 May 2012Fraud Control Systems.Com CorporationMethod of billing a purchase made over a computer network
US820095928 Jun 200712 Jun 2012Cisco Technology, Inc.Verifying cryptographic identity during media session initialization
US822984422 Oct 200824 Jul 2012Fraud Control Systems.Com CorporationMethod of billing a purchase made over a computer network
US827139612 Oct 200618 Sep 2012Digital River, Inc.Electronic commerce system and method for detecting fraud
US83214998 Jun 200727 Nov 2012Intellectual Ventures I LlcMethod for distributing content to a user station
US83269835 Jul 20114 Dec 2012Intertrust Technologies Corp.Methods and systems for transaction record delivery using thresholds and multi-stage protocol
US84076821 Oct 200426 Mar 2013Intellectual Ventures I LlcSoftware and method that enables selection of one of a plurality of online service providers
US841794231 Aug 20079 Apr 2013Cisco Technology, Inc.System and method for identifying encrypted conference media traffic
US849903020 Apr 200030 Jul 2013Intellectual Ventures I LlcSoftware and method that enables selection of one of a plurality of network communications service providers
US853346211 Jun 201210 Sep 2013Cisco Technology, Inc.Verifying cryptographic identity during media session initialization
US855465918 Jan 20018 Oct 2013Tradecapture Otc Corp.System for trading commodities and the like
US860083016 Jul 20103 Dec 2013Steven M. HoffbergSystem and method for providing a payment to a non-winning auction participant
US863094222 Oct 200814 Jan 2014Fraud Control Systems.Com CorporationMethod of billing a purchase made over a computer network
US863527220 Apr 201221 Jan 2014Intellectual Ventures I LlcMethod for distributing a list of updated content to a user station from a distribution server wherein the user station may defer installing the update
US866713415 Nov 20124 Mar 2014Intertrust Technologies CorporationMethods and systems for transaction record delivery using thresholds and multi-stage protocol
US871933921 Jul 20106 May 2014Intellectual Ventures I LlcSoftware and method that enables selection of one of a plurality of online service providers
US87668239 Mar 20101 Jul 2014Bekad Mgmt. Ii, Llc.Keyboard configurations
US20110078083 *2 Nov 201031 Mar 2011Microsoft CorporationElectronic draft capture
US20110307708 *14 Jun 201015 Dec 2011International Business Machines CorporationEnabling access to removable hard disk drives
DE3303846A1 *4 Feb 198310 Nov 1983Siemens AgVerfahren zum "einschreiben" elektronischer post in einem elektronischen kommunikationssystem und anordnung zur durchfuehrung des verfahrens
DE3841393A1 *8 Dec 198829 Jun 1989Pitney Bowes IncZuverlaessiges system zur feststellung der dokumentenechtheit
DE3841393C2 *8 Dec 198819 Feb 1998Pitney Bowes IncZuverlässiges System zur Feststellung der Dokumentenechtheit
EP0491569A2 *18 Dec 199124 Jun 1992International Business Machines CorporationCommunication systems
EP0741375A22 May 19966 Nov 1996Pitney Bowes Inc.Closed loop transaction based mail accounting and payment system with carrier payment through a third party initiated by mailing information release
EP1110347A1 *30 Jul 199927 Jun 2001Xircom, Inc.Unique digital signature
WO1989008957A1 *15 Mar 198921 Sep 1989David ChaumOne-show blind signature systems
WO1996042154A1 *6 Jun 199627 Dec 1996Wave Sys CorpSecure communication system with cross-linked cryptographic codes
WO2000025246A1 *20 Oct 19994 May 2000Receipt Com IncMethod and apparatus for establishing electronic transactions
WO2000031644A1 *25 Nov 19992 Jun 2000Commw Of AustraliaHigh assurance digital signatures
Classifications
U.S. Classification705/75, 726/16, 380/281, 713/170, 713/176, 726/3, 380/37, 340/5.73, 380/277
International ClassificationG06F13/00, G07B17/00, H04L9/00, G06F21/22, H04L12/22, H04L29/06, G07F7/10, H04L9/32, G06F21/20
Cooperative ClassificationH04L9/3271, H04L9/0625, H04L9/3247, G07B2017/00741, G07F7/1016, G07B17/00733, G07B2017/00766, H04L2209/56, G06Q20/401
European ClassificationG06Q20/401, H04L9/06D2, H04L9/32N, H04L9/32R, G07F7/10E, G07B17/00G
Legal Events
DateCodeEventDescription
25 Jun 1985CCCertificate of correction