|Publication number||CA2417406 C|
|Application number||CA 2417406|
|Publication date||22 Apr 2014|
|Filing date||19 Jul 2001|
|Priority date||28 Jul 2000|
|Also published as||CA2417406A1, DE60126096D1, DE60126096T2, EP1307863A1, EP1307863B1, US7694332, US8370916, US20020161721, US20100154048, WO2002011091A1|
|Publication number||CA 2417406, CA 2417406 C, CA 2417406C, CA-C-2417406, CA2417406 C, CA2417406C, PCT/2001/22969, PCT/US/1/022969, PCT/US/1/22969, PCT/US/2001/022969, PCT/US/2001/22969, PCT/US1/022969, PCT/US1/22969, PCT/US1022969, PCT/US122969, PCT/US2001/022969, PCT/US2001/22969, PCT/US2001022969, PCT/US200122969|
|Inventors||Xinhong Yuan, Stan J. Simon, Robert W. Pratt, Gregory R. Whitehead, Atul Tulshibagwale|
|Applicant||Verisign, Inc., Xinhong Yuan, Stan J. Simon, Robert W. Pratt, Gregory R. Whitehead, Atul Tulshibagwale|
|Export Citation||BiBTeX, EndNote, RefMan|
|Classifications (16), Legal Events (1)|
|External Links: CIPO, Espacenet|
DIGITAL RECEIPT FOR A TRANSACTION
Inventors: Xinhong Yuan Stan J. Simon Robert W. Pratt Gregory R. Whitehead Ati.11 Tulshibagwale 
BACKGROUND OF THE INVENTION
1. Technical Field  This invention relates generally to public key cryptography, digital signatures and public key infrastructure (PKI). More specifically, it relates to the generation and use of records and digital receipts for transactions.
2. Background Art  As a result of the increasing popularity and acceptance of the computer and the Internet and other forms of networked communications, electronic transactions and documents are increasing in number and significance. For example, the volume of consumer purchases, business to business commerce, and stock trading and other forms of investing which occur over the Internet and/or wireless networks is steadily increasing, as are other forms of online commerce. In addition, the number of documents which are generated or available electronically and the number of documents which exist only in electronic form (e.g., the paperless office) are also steadily increasing.
 The increasing number of electronic transactions and documents leads to a corresponding need for reliable methods for making records of these transactions and documents. For example, when a consumer purchases an item over the Internet using his credit card, it is desirable to make a reliable, non-disputable record of the purchase. If two  One approach to the records problem makes use of cryptography.
The  However, in order to gain widespread acceptance, these approaches should be intuitive and easy to use. One problem with past attempts to create an infrastructure of transaction records is that they were too cumbersome and difficult to use. For example, in  These functions are often performed by separate pieces of software. For example, database software may be used to store the digital signatures and their corresponding software in a large central database. Browser plug-in software may be used to process the correct digital signature once it is located. However, this approach may be both cumbersome and non-another entity, particularly if either entity does not have access to the database at the time. A
similar problem occurs if an entity does not have the correct browser plug-in or does not know how to use the plug-in.
 Thus, there is a need for simple and intuitive approaches to making and using DISCLOSURE OF INVENTION
 In accordance with the present invention, a computer readable medium serves as  In one embodiment, the computer readable medium serves as a record of the existence of a document at a specific time. The digital receipt (700) includes a form in a  In another aspect of the invention, a method (200,400) for creating a record of an occurrence of a transaction includes the following steps. A request to create a digital receipt (300,700) of the transaction is received (210,410). Tamper-proof evidence (320) of the occurrence of the transaction is generated (220,420). A digital receipt (300,700,900) of the transaction is created (230,430). The digital receipt (300,700,900) is suitable for display to humans and includes a description (310,710,720,910,1020) of the transaction, the generated  In another aspect of the invention, a method (250,450) for verifying the past occurrence of the transaction includes the following steps. The digital receipt (300,700,900) 15  The methods (200,250,400,450) in the previous two paragraphs are preferably implemented by software executing on a processor.
 The present invention is particularly advantageous because the digital receipt (300,700,900) includes both a verification prompt (330,740,940,1030) and the tamper-proof evidence (320) to be verified. This makes the digital receipt (300,700,900) easier and more BRIEF DESCRIPTION OF THE DRAWINGS
 The invention has other advantages and features which will be more readily apparent from the following detailed description of the invention and the appended claims, when taken in conjunction with the accompanying drawing, in which:
 FIG. 1 is a block diagram of a system according to the present invention;
 FIGS. 2A and 2B are event traces illustrating a method of operating the system of FIG. 1;
 FIG. 3 is an illustration of a preferred embodiment of a digital receipt of a transaction according to the present invention;
 FIGS. 4A and 4B are event traces illustrating a preferred method of operating the system of FIG. 1;
 FIGS. 5-8 are various forms and dialog boxes illustrating the method of FIG. 4;
 FIG. 9 is a form illustrating an alternate embodiment of the method of FIG. 4;
and  FIG. 10 is a screen shot illustrating yet another embodiment according to the invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
 This invention relates generally to public key cryptography, digital signatures,  Public key cryptography is an approach to secure communications using key pairs. Each key pair includes a public key and a private key, each of which is typically a large available. The public key and private key are mathematically related so that a message encrypted by one key may be decrypted by the other, but the relationship is such that it is computationally infeasible to calculate one key given the other. In other words, if a third party knows an entity's public key (which is typically the case), it is computationally infeasible to deduce the corresponding private key (which is typically held securely by the entity). Well-known public key encryption algorithms include RSA, DSA and EIGamal.
 These key pairs may be used to "digitally sign" documents. An entity "digitally signs" a document by encrypting either the document or a processed version of the document using the entity's private key. This allows a third party to authenticate the document by verifying that (i) it is the entity's private key (rather than some other key) which has been used to digitally sign the document; (ii) the contents of the document have not changed since the document has been digitally signed; and (iii) the entity cannot later deny that he digitally signed the document. The first characteristic is often referred to as "paternity," the second as "integrity," and the third as "non-repudiation."
 Preferably, a document is digitally signed by first producing a one-way hash (see below) of the document, creating what is commonly referred to as a document digest. The document digest is then encrypted using the entity's private key to produce the digital signature for the document. A third party typically receives both the document and corresponding digital signature and then authenticates the document as follows. The third party decrypts the received digital signature using the entity's public key to yield a decrypted document digest, which should be identical to the original document digest.
The third party also generates a one-way hash of the received document, using the same hash function as was used by the entity, to yield a newly generated document digest. The third party then compares the decrypted document digest and the newly generated document digest. If they are identical, the third party has authenticated the document.
 A hash function is a transformation that takes a variable-size input and returns a fixed-size output, which is typically smaller than the input and is referred to as the hash of the input. A one-way function is a transformation that is significantly easier to perform in one direction than in the opposite direction. A one-way hash function is thus a transformation with both of these characteristics. One-way hash functions used to produce digital signatures preferably also produce outputs which are generally smaller in size than the input, are able to handle inputs of any size, and are collision-free to some degree. Hash functions, by their nature, are many-to-one functions, meaning that many inputs may map to the same output.
However, if the hash function is collision free, this potential problem is obviated for all practical purposes. A hash function is weakly collision free if, given an input, it is computationally infeasible to find another input which maps to the same output. A hash function is strongly collision free if it is computationally infeasible to find any two inputs which map to the same output. Well-known one-way hash functions include MD2, MD5 and SHA-1.
 The use of public key cryptography addresses many of the inherent security problems in an open network such as the Internet. However, without more, two significant problems remain. First, parties must be able to access the public keys of many entities in an efficient manner. Second, since communications and transactions are secured by the key pairs and entities are associated with and in some sense identified by their public keys, there must be a secure method for third parties to verify that a certain public key really belongs to a certain entity.
 Digital certificates are one method for addressing both of these problems. A
"digital certificate" is a document which binds a certain public key to a certain entity, such as individuals, legal entities, web servers, and the like, in a trustworthy manner. More specifically, a digital certificate preferably is issued by a trusted third party, commonly refened to as the certification authority (CA). The digital certificate contains information pertaining to the identity of the entity (a.k.a., subscriber of the digital certificate) and the entity's public key, and the digital certificate is digitally signed by the CA.
 The digital certificate documents in a trustworthy manner that the public key in the digital certificate is bound to the certificate's subscriber. Third parties who wish to verify this information may verify the authenticity of the CA's digital signature and the integrity of the contents of the digital certificate in the manner described above. If the third party trusts the CA, then he can also trust that the public key in the digital certificate is bound to the certificate's subscriber. Hence, if an unknown party communicates with the third party using the private key corresponding to the public key in the digital certificate, the third party can further trust that the unknown party is the subscriber named in the digital certificate. If the third party does not have a basis for trusting the CA, the third party will begin to establish such a basis by authenticating the CA's digital certificate. The third party will continue to authenticate digital certificates, traversing up a chain of digital certificates issued to CAs, until it reaches a CA which it trusts, at which point, the third party can trust that the public key in the digital certificate is bound to the certificate's subscriber.
 Digital certificates preferably comply with the format defined by ITT]
Recommendation X.509 (1997 E): Information Technology - Open Systems Interconnection -The Directory: Authentication Framework, June 1997. The digital certificate may be stored on or in any type of computer readable media, including but not limited to hard drives, smart cards, flash memory, magnetic stripes such as on the back of credit cards, or as printed bar codes.
 For security and other reasons, digital certificates typically are valid for a limited period of time only. For example, when digital certificates are issued, they may have an effective date and an expiration date, with the digital certificate being valid only between these dates. Furthermore, if a digital certificate is compromised prior to its expiration date, it may  A PKI is a system for implementing security using public key cryptography and digital certificates. Certain services are used to establish, disseminate, maintain, and service the public keys and associated digital certificates used in a PKI. These services are provided by entities which shall be referred to as service providers. For security, efficiency, and other  FIG. 1 is a block diagram of an example system 100 according to the present  The users 110 and 120 may be individuals, groups of individuals, legal entities provides services associated with the operation of a PICT. In this particular example, service provider 130 provides digital notary services to generate and subsequently verify records of transactions. The service provider 130's records are stored in database 140, which typically is maintained with high security and reliability in order to enhance the trustworthiness of the  The users 110 and 120 communicate with the service provider 130 and may also communicate with each other. The communications connections may be made by any number of means, including over computer networks such as the Internet and/or by wireless connections. The connections need not be permanent or persistent. In a preferred  The requesting user 110 wishes to make a record of a transaction and engages the service provider 130 to do so. The relying user 120 later wants to verify the occurrence of the transaction and does so by relying on the record created by the service provider 130. The  The term "transaction" is used broadly. It includes events, such as an online purchase of goods or the electronic signing of a contract, as well as documents. The example of FIG. 2 is illustrated in the context of creating a record of a "transaction" in the general sense of the term. The preferred embodiment of FIGS. 4-8 uses a notary example, where witnessing  FIGS. 2A and 2B are event traces illustrating operation of system 100. FIG. 2A
illustrates record creation 200, during which the service provider 130 creates a digital record of the transaction for the requesting user 110. FIG. 2B illustrates record verification 250, during which the service provider 130 (which could be a different service provider) verifies the digital  In FIGS. 2A and 2B, each of the dashed boxes 110, 120, and 130 represents one  Referring to FIG. 2A, the requesting user 110 begins by sending 210 to the service provider 130 a request to create a digital record of a transaction.
The request typically includes a description of the transaction in a format understandable by humans. For example, the requesting user 110 might create a short text description of the transaction or send an icon digital certificates or similar information of the signing parties might be included. In the document notary scenario, the document itself might be included.
 The service provider 130 receives 210 both the human-understandable description and the additional information. It processes the additional information to generate 220 tamper-15  The service provider 130 also creates 230 a second digital record of the transaction, an example of which is shown in FIG. 3. For convenience, this digital record will be referred to as a digital receipt. The digital receipt 300 typically includes a description 310 of the transaction. For example, it might include all or part of the human-understandable description received from the requesting user 110. The digital receipt also includes the 320. Referring again to FIG. 2A, after the service provider 130 creates 230 the digital receipt, the digital receipt is transmitted 235 to the requesting user 110, who typically stores 237 it for later use. In one embodiment, the requesting user's software automatically stores 237 the digital receipt, transparent to the requesting user 110.
 FIG. 2B illustrates one example of how a relying user 120 would use the digital receipt 300 to verify the past occurrence of the transaction. The relying user 120 accesses 260 the digital receipt 300. For example, the requesting user 110 might email or otherwise send a copy of the receipt 300 to the relying user 120 or the relying user 120 might request the receipt 300 from service provider 130 or retrieve the receipt 300 from a central database or directory.
Upon display 265 of the receipt 300, the relying user 120 sees the description 310 of the transaction and the verification prompt 330. User 120 may also see the tamper-proof evidence 320, but not necessarily since the evidence 320 preferably is hidden from view. The relying user activates 270 the verification prompt 330, which initiates the verification process. In this particular example, the tamper-proof evidence 320 is extracted from the digital receipt and sent 280 to the service provider 130, which compares 290 the received evidence 320 against the corresponding record in database 140. If there is a match, the evidence 320 is verified.
Otherwise, there is a lack of verification (assuming that the evidence has not been verified by other means). Either way, the result is sent 295 to the relying user 120. In a preferred embodiment, if the evidence 320 is verified, a second verification prompt is displayed.
Activating 202 this prompt allows the relying user 120 to go one step further and verify 204 the underlying transaction (e.g., verify the integrity of the underlying document in the digital notary scenario).
 Note that the digital receipt 300 includes both a verification prompt 330 and the tamper-proof evidence 320 to be verified. Hence, it is fairly self-contained and is in some sense "auto-verifying." This is a significant advantage since it makes the digital receipt 300 much easier and more intuitive to use. For example, there is no need for the requesting user 120 to independently identify Which piece of evidence is to be verified. As another example, if the digital receipt did not include the verification prompt 330, separate software or instructions would be required to verify the evidence 320. This adds extra complexity since the relying user 120 might not know or have access to the required software and instructions, particularly since the relying user 120 and the requesting user 110 likely will be different entities and may use different service providers with incompatible systems. Even if the relying user 120 did use the same software, it simply might not be available at the moment. For example, the software might reside on one computer and the digital receipt 300 on a different one.
By including both the tamper-proof evidence 320 and the verification prompt 330 in the same location, these [00461 FIGS. 4-8 illustrate a preferred embodiment of system 100 and method 200 which occurs over an HTTP-based system, specifically the Internet. The users 110 and 120 [00471 Referring to FIG. 4A, the requesting user 110 begins by sending 410 to the service provider 130 a request to create a digital record of a transaction. In this embodiment, digitally signed by the user 110 and sent to the service provider 130. In addition to the document name 510 and description 520, the document itself is also sent to the service provider 130.
 From the information received from the user 110, the service provider 130  The service provider 130 stores 440 a record of the notarization in its database 140. This record includes the user 110's request for notarization (which was digitally signed  The service provider 130 also creates 430 a digital receipt of the transaction for transmission to the requesting user 110. FIG. 7 shows an example of this digital receipt 700.
It is an HTML document which includes the following as viewable elements: the name 710 and description 720 of the document as received from the requesting user 110, and the time <form method = post action = "https://serviceprovidencom/">
<input type = "hidden" value = "Vl.">
<input type = submit value = "Verify">
"https://serviceprovider.com/" is the SSL URL of the service provider 130. The value "V1"
is the BASE64 encoded version of the time stamp token. Other fields may be used to support additional functionality or provide additional information. For example, the requesting user 110 may also be identified in the digital receipt 700.
 In a preferred embodiment, the digital receipt 700 is not automatically generated and sent to the requesting user 110. Rather, the service provider 130 sends 432 the results of the notarization to the user 110, as shown in FIG. 6. If the notarization was successful, the results screen 600 also prompts the user 110 whether it would like to have a copy of the digital receipt 700. If the user 110 requests 434 a copy (e.g., by clicking on button 610 in this example), the service provider creates 436 and transmits 435 the digital receipt 700 to the user 110. The requesting user 110 stores 437 the digital receipt 700, for example on its local hard drive.
 FIG. 4B illustrates one example of how a relying user 120 would use the digital receipt 700 to verify the notarization. The relying user 120 accesses 460 the digital receipt 700. User 120 might have access to the copy of receipt 700 saved by the requesting user 110.
Alternately, user 120 might receive a copy from the requesting user 110 or from the service provider 130. In an alternate scenario, the requesting user 110 posts both the digital receipt and the underlying document on the Internet. For example, the requesting user 110 might be a company issuing press releases and would post both the press release and the digital receipt on its web site, so that interested parties can verify the authenticity of the press release.
 The relying user 120 opens 465 the digital receipt 700, including the HTML
form, using its web browser. As mentioned previously, the display of the digital receipt includes the name 710 and description 720 of the document, the time 730 for the time stamp, and a "Verify Receipt" button 740.
 Clicking 470 button 740 transmits 480 the time stamp token which is embedded in the HTML form as hidden text to the service provider 130. In this embodiment, the hidden text is POSTed 480 to the service provider 130. The service provider 130 decodes 484 the BASE64 text encoding in order to retrieve the original time stamp token. It verifies 482 the trustworthiness of the time stamp token by examining the digital signature and then compares 490 the recovered time stamp token with those in its own database 140. The time stamp token is verified if it exactly matches the one in the serivce provider 130's database. The service provider 130 sends 495 the results of the comparison to the relying user 120, thus either verifying or not verifying the trustworthiness of the digital receipt 700.
[00551 If the digital receipt 700 is verified, the service provider 130 also sends the requesting user 110's identity, the original name of the document 810, the description of the /0 document 820 and the time 830 for the time stamp, as retrieved from the service provider 130's database 140, as shown in FIG. 8. The response 800 also includes a form with a second verification prompt 840, which allows the relying user 120 to go one step further and verify the underlying document in addition to verifying the notarization.
 Note that so far, only the digital receipt 700 has been verified but the underlying document itself has not been verified. Furthermore, the service provider 130 does not provide a copy of the document nor does it store a copy of the document in this embodiment, although it could do so in alternate embodiments. If the relying user 120 wishes to rely on the contents of the document, it may first want to verify the integrity of those contents.
It can do so by using the "Verify Document" button 840. For example, if it is represented that the document D:\documents\doc-schedules\SalePricelist.doc is the same as the document which was notarized, the relying user 120 identifies the document using the "Browse"
field 850 and then clicks 402 the "Verify Document" button 840. This POSTs 404 the document DAdocuments\doc-schedules\SalePricelist.doc to the service provider 130.
Information used to identify the time stamp token is also POSTed to the service provider 130.
For example, in a preferred embodiment, the serial number of the time stamp token and the hash of the document (as retrieved from the service provider's database) are embedded in the response 800 as hidden form fields and then POSTed to the service provider 130 when the "Verify Document" button 840 is activated. The service provider 130 hashes 406 the received document.
The newly generated hash is compared 408 with the hash in the time stamp token, with the result returned 409 to the relying user 120. If the two hashes match, there is a good basis to believe that the received document is the same as the original. If the hashes do not match, there is reason to believe that the document has been altered.
In this example, the document 910 also serves as a description of the transaction. The form 25 <form method = post action = "https://serviceprovider.com/">
<input type = "hidden" value = "VI.">
<input type = "hidden" value = "V2">
<input type = submit value = "Verify">
is the BASE64 encoded version of the time stamp token and the value "V2" is the BASE64 encoded version of the document 910. In an alternate embodiment, the values "V1" and "V2"
are pointers to the time stamp token and document, respectively, rather than the actual token and document.
 Clicking button 940 POSTs values V1 and V2 (i.e., the BASE64-encoded versions of the time stamp token and document 910) to the service provider 130. The service provider 130 decodes the BASE64 text encoding in order to retrieve the original time stamp token and document 910. It verifies the trustworthiness of the time stamp token by examining the digital signature and compares the recovered time stamp token with those in its own database 140. The service provider 130 also verifies the authenticity of document 910. The service provider 130 sends the results of these comparisons to the relying user 120, thus either verifying or not verifying the trustworthiness of the digital receipt 900, including document 910. In an alternate embodiment, some or all of the computations (e.g., verifying the authenticity of the document 910) may occur locally at the relying user 120's client.
 In a variation of this approach, rather than having the digital receipt contain the timestamp token, the underlying document, and the Verify button, these three elements are posted to the Internet separately, as shown in FIG. 10. In FIG. 10, the underlying document 1010, a press release, is presented in one location. A "notary receipt" 1020, which contains the timestamp token, is presented separately; as is a "seal" 1030, which is a form containing the Verify button 1040 and pointers to the document and the timestamp token. In this example, the physical placement is used to indicate that notary receipt 1020 and seal 1030 correspond to press release 1010. Although the physical placement looks different, activating the Verify button 1040 has the same effect as activating the Verify button in the previous examples.
Specifically, both the timestamp token and the underlying document are POSTed to the service provider 130 for verification. In other words, the seal 1030 in this scenario plays a similar role as the digital receipts 700 and 900 with respect to initiating the verification process.
 Although the invention has been described in considerable detail with reference to certain preferred embodiments thereof, other embodiments will be apparent.
For example, the examples of FIGS. 4-10 were described in the context of HTML documents, but XML and other standard markup languages are equally suitable for use. In one embodiment using XML, a document type for the digital receipt is defined, and element types, attributes, entities and notations for the content in the digital receipt are declared. In an alternate embodiment, binary files may also be used, with fields within the files defined to provide similar functionality. As another example, most of the examples have been discussed in the context of documents and timestamp tokens themselves (or, more generally, in the context of transactions and the corresponding evidence). However, as illustrated in some of the examples, alternate implementations may use references or pointers instead. As a final example, in most of the discussion, the service provider 130 implements the functionality required to verify certain facts. However, some or all of this functionality may also be implemented by clients residing with the users 110,120. In addition, the functionality may be implemented offline or processed in batch mode. Therefore, the scope of the appended claims should not be limited to the description of the preferred embodiments contained herein.
|International Classification||G06Q20/38, G06Q20/04, G06Q20/36, G07F7/12, G06F21/64, G06Q20/00, G06Q30/00, G07G5/00|
|Cooperative Classification||G06Q20/04, G07F7/08, G07F7/12, G06Q20/389, G06Q20/0453, G06Q20/382, G06Q20/3829, G06Q20/367|