Resources Contact Us Home
Browse by: INVENTOR PATENT HOLDER PATENT NUMBER DATE
 
 
Method and apparatus for verifying secure document timestamping
RE41960 Method and apparatus for verifying secure document timestamping
Patent Drawings:Drawing: RE41960-4    Drawing: RE41960-5    Drawing: RE41960-6    
« 1 »

(3 images)

Inventor: Walker, et al.
Date Issued: November 23, 2010
Application: 11/293,790
Filed: December 2, 2005
Inventors: Walker; Jay S. (Ridgefield, CT)
Schneier; Bruce (Minneapolis, MN)
Jorasch; James A. (New York, NY)
Alderucci; Dean P. (Westport, CT)
Assignee: Walker Digital, LLC (Stamford, CT)
Primary Examiner: Heneghan; Matthew
Assistant Examiner:
Attorney Or Agent: Fincham Downs LLC
U.S. Class: 713/178; 380/243; 705/51
Field Of Search: 380/243; 380/244; 380/246; 713/178
International Class: H04L 9/00
U.S Patent Documents:
Foreign Patent Documents: 0 132 782; 0 132 782; 0 154 972; 0 331 352; 0 440 021; 0 547 837; 0 684 575; 0 684 575; 0 647 925; 0 727 894; 2 065 030; 03185551
Other References: GJ. Simmons, "Verification of Treaty Compliance--Revisited"; Proceedings of the 1983 Symposium on Security and Privacy, Apr. 25-27, 1983 (7pgs). cited by other.
"Parallax Security Introduces [EXROY] the New Concept", PR Newswire, Apr. 28, 1988. (1 pg). cited by other.
Miller, S.P. et al., "Kerberos Authentication and Authorization System", Project Athena Technical Plan, Oct. 27, 1988. (33 pgs). cited by other.
Bayer, David et al., "Improving the Efficency and Reliability of Digital Time-Stamping", Sequence II: Methods in Communication, Security, and Computer Science, eds., Mar. 1992 at pp. 329-334. (6 pgs). cited by other.
"Bellcore Spins Off New Company Digital Notary .TM. (SM) Service", Corporate Communications, Mar. 22, 1994. (2 pgs). cited by other.
Haber et al., "How do Digital Time-Stamps Support Digital Signatures?", Cryptobytes--The Technical Newsletter of RSA Laboratories, Autumn 1995, pp. 14-15 (2 pgs). cited by other.
"First Fully Authenticated Digital Video Surveillance System Features Advanced RSA Security Technology", Press Release printed from http://www.rsa.com (RSA Data Security, Inc. World Wide Web site), Oct. 23, 1995. (2 pgs). cited by other.
Resnik, W.M., "Technology Track, Digital Image Authentication", Aquila Technologies Group, Inc., email: bresnik@aquilagroup com, Jan. 17, 1996. (7 pgs). cited by other.
"Solana develops `digital watermark`technology", Miller Freeman PLC, ProSound News Europe, Mar. 1997 at Pg. 38. (2 pgs). cited by other.
"Digimarc watermarking technology receives U.S. patent", M2 Presswire, Jun. 16, 1997. (3 pgs). cited by other.
"Keeping Messages Secret", The McGraw-Hill Companies, Inc., Federal Technology Report, Jul. 17, 1997, Technology Watch section at pg. 18. (1 pg). cited by other.
Herrigel, A. et al., "Optical/digital identification/verification system based on digital watermarking technology", Digital Copyright Technologies, Copyright 2000. (1 pg). cited by other.
Kay, Russell, "Sharing a Secret: How Kerberos Works", Computerworld, Jul. 3, 2000, Tech-Quickstudy section at pg. 52. (2 pgs). cited by other.
"VeranceCorporation", (www verance com/technology html), download date: Sep. 26, 2000 (2 pgs). cited by other.
"Patent Overviews", (www surety com/home/patents html), download date: Jul. 25, 2001, (2 pgs). cited by other.
"Trust in Time", Timestamp.com, (http //www timestamp com/about/index html), download date: Sep. 19, 2001. (5 pgs). cited by other.
Simmons, Gustavus J., "Contemporary Cryptology--The Science ofInformation Inegrity", The Institute of Electrical and Electronics Engineers, Inc., Copyright 1992, Chapter 13, pp. 615-630. (18 pgs). cited by other.
Scneier, Bruce, "Applied Cryptography--Protocols, Algorithms and Source code inC", John Wiley & Sons, Inc., Copyright 1996, pp. 75-79. (8 pgs). cited by other.
Office Action for U.S. Appl. No. 11/541/520 mailed Jun. 3, 2010, 4 pp. cited by other.
Office Action for U.S. Appl. No. 11/870,489 mailed Apr. 7, 2010, 26 pp. cited by other.
Notice of Allowance for U.S. Appl. No. 09/907,112 mailed Jul. 27, 2007. 4 pp. cited by other.
Notice of Allowance for U.S. Appl. No. 09/907,112 mailed May 9, 2005, 3 pp. cited by other.
Notice of Allowance for U.S. Appl. No. 09/907,112 mailed Jul. 27, 2007, 6 pp. cited by other.
Notice of Allowance for U.S. Appl. No. 11/541,522 mailed Jul. 27, 2007, 8 pp. cited by other.
Office Action for U.S. Appl. No. 11/541,522 mailed Sep. 10, 2008, 10 pp. cited by other.
Office Action for U.S. Appl. No. 11/541,522 mailed Jun. 16, 2008. 7 pp. cited by other.
Office Action for U.S. Appl. No. 11/870,489 mailed Sep. 3, 2009, 16 pp. cited by other.
Notice of allowability for U.S. Appl. No. 08/622,034 mailed Feb. 20, 1998, 4 pp. cited by other.
Office Action for U.S. Appl. No. 08/622,034 mailed Dec. 22, 1997, 4 pp. cited by other.
Notice of allowability for U.S. Appl. No. 09/149,024, mailed Mar. 27, 2001 pg. cited by other.
Notice of allowability for U.S. Appl. No. 09/149,024 mailed Dec. 18,2000, 2 pp. cited by other.









Abstract: According to one embodiment of the invention, a method is provided for receiving a timestamp from a caller via a telephone connection; receiving a device identifier from the caller, in which the device identifier identifies a device; determining a cryptographic key based on the device identifier; determining an indication of a time based on the timestamp and the cryptographic key; providing the indication of the time to the caller; determining an account; and charging a fee to the account.
Claim: What is claimed is:

1. A method.Iadd., .Iaddend.comprising: receiving.Iadd., by a central controller, .Iaddend.a timestamp from a caller via a telephone connection; receiving.Iadd., by acentral controller, .Iaddend.a device identifier from the caller, in which the device identifier identifies a device; determining.Iadd., by a central controller, .Iaddend.a cryptographic key based on the device identifier; determining.Iadd., by acentral controller, .Iaddend.a representation of a time based on the timestamp and the cryptographic key; providing.Iadd., by a central controller, .Iaddend.the representation of the time to the caller; determining.Iadd., by a central controller,.Iaddend.an account; and charging.Iadd., by a central controller, .Iaddend.a fee to the account.

.[.2. The method of claim 1, in which the timestamp is optically detectable on a physical document..].

3. The method of claim 1, in which receiving the timestamp comprises: receiving the timestamp at a central controller.

4. The method of claim 1, further comprising: receiving a telephone call from the caller.

5. The method of claim 1, in which receiving the timestamp comprises: receiving a sequence of DTMF signals; and determining the timestamp based on the DTMF signals.

6. The method of claim 5, in which the sequence is entered by the caller at a keypad.

7. The method of claim 1, in which receiving the timestamp comprises: receiving a sequence of signals via an interactive response unit (IRU) .Iadd.in communication with the central controller.Iaddend..

8. The method of claim 1, in which receiving the timestamp comprises: receiving the timestamp via a toll-based telephone line.

9. The method of claim 8, in which the toll-based telephone line is associated with a 900 number.

10. The method of claim 1, in which the timestamp comprises a sequence of alphanumeric characters.

11. The method of claim 1, in which determining the account comprises: receiving an account identifier that identifies the account.

12. The method of claim 1, in which the timestamp comprises an account identifier that identifies the account.[.:.]. .Iadd.. .Iaddend.

13. The method of claim 1, in which the account is associated with the caller.

14. The method of claim 1, in which the account is associated with a third party.

15. The method of claim 1, in which determining the account comprises: determining the account based on the device identifier.

16. The method of claim 1, in which the account is a prepaid account.

17. The method of claim 1, in which charging the fee comprises: debiting the account based on the fee.

18. The method of claim 1, in which determining the representation of the time comprises: performing a cryptographic operation on the timestamp.

19. The method of claim 1, in which determining the representation of the time comprises: decrypting the timestamp based on the cryptographic key.

20. The method of claim 1, in which providing the representation of the time comprises: transmitting the representation of the time to the caller.

21. The method of claim 1, in which providing the representation of the time comprises: displaying the representation of the time to the caller.

22. The method of claim 1, in which determining the cryptographic key comprises: selecting a database record based on the device identifier, in which the database record comprises the device identifier.

23. A method.Iadd., .Iaddend.comprising: receiving.Iadd., by an interactive response unit .Iaddend.(IRU).Iadd., .Iaddend.a sequence of DTMF signals from a caller via a telephone connection; determining.Iadd., by a central controller incommunication with the IRU, .Iaddend.a timestamp based on the DTMF signals; receiving.Iadd., by the IRU, .Iaddend.a device identifier from the caller, in which the device identifier identifies a device; determining.Iadd., by the central controller,.Iaddend.a cryptographic key based on the device identifier; determining.Iadd., by the central controller, .Iaddend.a representation of a time based on the timestamp and the cryptographic key; providing the representation of the time to the caller; determining.Iadd., by the central controller, .Iaddend.an account; and charging.Iadd., by the central controller, .Iaddend.a fee to the account.

24. A method.Iadd., .Iaddend.comprising: receiving.Iadd., by a central controller, .Iaddend.a timestamp from a timestamp recipient via an Internet connection; receiving.Iadd., by the central controller, .Iaddend.a device identifier via theInternet connection, in which the device identifier identifies a device; determining.Iadd., by the central controller, .Iaddend.a cryptographic key based on the device identifier; determining.Iadd., by the central controller, .Iaddend.a representationof a time based on the timestamp and the cryptographic key; providing.Iadd., by the central controller, .Iaddend.the representation of the time to the timestamp recipient via the Internet connection; determining.Iadd., by the central controller,.Iaddend.an account; and charging.Iadd., by the central controller, .Iaddend.a fee to the account.

.Iadd.25. A computer readable memory storing instructions operable to direct a processor to perform a method, the method comprising: receiving a timestamp from a caller via a telephone connection; receiving a device identifier from the caller,in which the device identifier identifies a device; determining a cryptographic key based on the device identifier; determining a representation of a time based on the timestamp and the cryptographic key; providing the representation of the time tothe caller; determining an account; and charging a fee to the account. .Iaddend.

.Iadd.26. An apparatus comprising: a processor; and a storage device in communication with the processor, the storage device storing a program for directing the processor to perform a method, the method comprising: receiving a timestamp from acaller via a telephone connection; receiving a device identifier from the caller, in which the device identifier identifies a device; determining a cryptographic key based on the device identifier; determining a representation of a time based on thetimestamp and the cryptographic key; providing the representation of the time to the caller; determining an account; and charging a fee to the account. .Iaddend.

.Iadd.27. A method, comprising: receiving, by a central controller, a timestamp; receiving, by the central controller, a device identifier, in which the device identifier identifies a device; determining, by the central controller, acryptographic key based on the device identifier; determining, by the central controller, a time based on the timestamp and the cryptographic key; transmitting, by the central controller, an indication of the time; and charging, by the centralcontroller, a fee to an account. .Iaddend.

.Iadd.28. A computer readable memory storing instructions operable to direct a processor to perform a method, the method comprising: receiving a timestamp; receiving a device identifier, in which the device identifier identifies a device; determining a cryptographic key based on the device identifier; determining a time based on the timestamp and the cryptographic key; transmitting an indication of the time; and charging a fee to an account. .Iaddend.

.Iadd.29. An apparatus comprising: a processor; and a storage device in communication with the processor, the storage device storing a program for directing the processor to perform a method, the method comprising: receiving a timestamp; receiving a device identifier, in which the device identifier identifies a device; determining a cryptographic key based on the device identifier; determining a time based on the timestamp and the cryptographic key; transmitting an indication of thetime; and charging a fee to an account. .Iaddend.
Description: BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to methods and apparatuses for document timestamping. More particularly, the invention relates to secure and authenticable timestamping of documents in such a way that the timestamp can be verified by aparty who was not necessarily present during the timestamping.

2. Background

In many instances where timestamped documents are to be communicated to a temporally or spatially distant recipient, one would like to be able to verify the authenticity the integrity of the timestamp. For example, consider the problem ofproving document creation in the course of business transactions. Both the author and the recipient would like to be able to timestamp the document in a manner that demonstrates to others that it was stamped; 1) by the timestamping device (i.e., knowingwhich device generated the timestamp), and 2) at the indicated time (i.e., that the timestamp has not been modified during or subsequent to timestamping). The first requirement relates to timestamping device authentically, while the second requirementrelates to time integrity. Either or both of these requirements may exist anytime documents are created by one party (or at one location) not under the direct control of the recipient. Common examples include timestamps at the top of fax pages,timestamps at the bottoms of printouts, and postage marks as evidence of mailing. Besides documents, other examples include timeclocks for hourly employees, or for parking garage patrons, for recording the date/time of entry onto the premises.

As indicated by the above examples, many timestamping applications are associated primarily with physical (e.g., paper-based) applications rather than electronic (e.g., digital) applications. This is especially true for document generationwhere, despite the almost universal use of computer word processing, the majority of documents are still used and stored on paper because of its advantages over electronic media. Such advantages include: 1) ease of document creation (e.g., takinghandwritten notes), 2) ease of document retrieval (e.g., without computers or other specialized document readers and no worries about evolving diskette or word processing file formats), 3) long-term stability of paper (e.g., degradation of magneticmedia), 4) low cost, and 5) portability. Therefore, a timestamping device for everyday usage should be particularly suitable for use with paper-based documents.

Traditionally, timestamping devices have relied on mechanical inaccessibility, fixed location, and public display to suggest the accuracy of timestamps produced thereby. Many contemporary electronic timestamping devices provide even lessassurance than mechanical devices because their timestamping mechanisms are user-acceptable, user-resettable, and hidden from public view. Examples include camera date recorders to timestamp pictures, answering machine/voicemail date/time recorders, andcomputer clocks to timestamp file creation and output such timestamps on document trailers.

Whether mechanical or electronic, each of the above-mentioned examples is prone to resetting of the clock prior to timestamping, or modification of the timestamp after timestamping. For example, the ability to reset the internal date/time isbuilt into almost all personal computer operating systems. Furthermore, the purely electronic devices are especially prone to tampering because of the ease with which a purely electronic document to be timestamped can be accessed and manipulated. Suchease of manipulation has led to the creation of devices which cryptographically certify the authenticity and integrity of electronic documents. Examples of such devices may be seen in several US patents (U.S. Pat. Nos. 5,189,700; 5,157,726;5,136,647; 5,136,646; 5,022,080; 5,001,752; and 4,786,940) disclosing devices that input digital data, cryptographically certify the digital data, and output a digital message. In addition, certain of these devices optionally add time from a secureinternal clock to the digital message.

The aforementioned devices are directed at applications whose primary goal is digital data certification, and any associated timestamping is an adjacent to that goal. In contrast, in many document timestamping applications, the primary goal istime certification rather than data certification. Although the data certification devices can be used for timestamping, such usage would be relatively complicated, expensive, and ill-suited for paper-based timestamping applications because the documentdata must be digitized. For example, the use of data certification devices with paper documents would require the addition of a document scanner to generate a digital representation of the document for input to the device, leading to increased devicecost and complexity.

Furthermore, because data representing the document would be included in the cryptographic message, one wishing to verify the message (e.g., by recomputing the timestamp) would also have to create a digital representation of the message--a costlyand possibly infeasible operation for those with limited capabilities. It is often inefficient to timestamp a paper document such that verification of the timestamp requires the timestamp recipient to re-digitize the paper document.

Therefore, there exists a need for a simple, inexpensive, easy-to-use device that generates an accurate and unalterable timestamp, for application to physical media such as paper documents, that can be easily verified by the document recipient.

SUMMARY OF THE INVENTION

According to one embodiment of the invention, a method is provided for receiving a timestamp from a caller via a telephone connection; receiving a device identifier from the caller, in which the device identifier identifies a device; determininga cryptographic key based on the device identifier; determining an indication of a time based on the timestamp and the cryptographic key; providing the indication of the time to the caller; determining an account; and charging a fee to the account.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates the basic component of a device for secure timestamping.

FIG. 2A illustrates a bottom view of a timestamp printer for use with paper documents.

FIG. 2B illustrates an end view of a timestamp printer for use with paper documents.

FIG. 3 illustrates a system for verifying a timestamp.

DETAILED DESCRIPTION OF THE INVENTION

Various embodiments of the present invention provide for verifying a timestamp. As used throughout this document, the term "timestamp" shall be understood to correspond to any representation of a date, time, day-of-week, or any other measurementproduced by a chronographic device. In many cases, such measurements are effectively synonymous; for example, many computer clocks record time as the number of seconds, elapsed since Jan. 1, 1900, which is easily converted to date and day-of-weekformats. The timestamp may include a cleartext portion, a ciphertext portion or both. A timestamp could be used to record the time at which a document was printed, a photocopy was made, or a facsimile was received.

In this disclosure, certain ancillary elements used in conjunction with the timestamping device are well understood to those skilled in the art and are not shown. For example, the design and construction of clocks, computer memories, andsoftware or hardware cryptographic algorithms, are well known to those skilled in the art and will not be described in detail herein.

In accordance with various embodiments of the present invention, a recipient of the timestamp can determine timestamping device authenticity and time integrity by verifying the cryptographic operation used to generate the timestamp. For example,the recipient could provide the timestamp and a timestamp device identifier to a third party for verification. The third party could use the device identifier to determine the cryptographic operation used to generate the timestamp, and/or to determinethe key used in the cryptographic operation. The third party could then perform an appropriate cryptographic operation to verify the authenticity of the timestamping device and the integrity of the timestamp presented. For example, the third partycould decrypt a ciphertext portion of a timestamp having both a ciphertext portion and a cleartext portion, in order to confirm that the ciphertext portion represented the same time as the cleartext portion.

If the timestamp was encrypted with a device private key, the recipient could use the corresponding device public key to decrypt and verify the timestamp. The public key could either be obtained from a public database or distributed usingdigital certificates within the timestamp. Alternatively, instead of public/private key pairs, the timestamping device could use a symmetric key--either alone or in combination with public key cryptography. Or, in the case of a hashed time, therecipient can verify the timestamp by recomputing the hash of the cleartext time and comparing it with the received hash (the ciphertext portion of the timestamp). The hash could even by a keyed operation to provide greater security.

Timestamping Device and Timestamping Operations

Referring now to FIG. 1, there is shown one embodiment of a timestamping device including a cryptoprocessor 10, a clock 20, random access memory (RAM) 30, nonvolatile memory 40 and output device 100. The cryptoprocessor 10 can be a generalpurpose processor (e.g., an Intel CPU) receiving instructions from RAM 30 or memory 40, or it can be a special purpose processor optimized for performing cryptographic operations (e.g., a National Semiconductor iPower SPU). That is, the cryptoprocessormay comprise any hardware or software engine capable of performing cryptographic operations on a given quantity. As described in greater detail below, such operations may include both keyless and keyed operations, as well as various combinationsthereof. The cryptoprocessor 10 and clock 20 are powered by external power source 50, with standby battery 60 to ensure operability during replacement or absence of external power source 50. Thus, external power source 50 could be an user-replaceablebattery or an AC power source. Alternatively, the device could be powered by internal battery 60 alone (in which case the device stops functioning at battery death) or external power source 50 alone (necessitating resetting the clock from a trustedexternal time source--e.g., the GPS satellite signals discussed below--upon powerup).

The cryptographic 10, clock 20, RAM 30, memory 40 and the control signals for output device 100 are contained within secure perimeter 70, making these components resistant to external tampering. Secure perimeter 70 may include physical,electronic, or a combination of physical and electronic features to resist tampering. For example, physical features could include encapsulation, electronic features could include a silicon firewall, and combination features could includeself-zeroizing, or otherwise volatile,, RAM 30 or memory 40 which electrically modifies its contents upon detection of tampering. Such tampering might include physically stressing the device, attempting to change the clock rate by replacing externalpower source 50 with a battery outside allowable current or voltage ranges, or attempting to change the clock rate by replacing external power source 50 with an AC power source outside an allowable frequency range. Alternatively, secure perimeter 70could be merely tamper-evident. In that case, the process of timestamp verification should include checking the timestamping device for evidence of tampering. As will be appreciated by those skilled in the art, a great variety of tamper-resistanttamper-evident techniques can be deployed, and will not be enumerated in detail herein. Therefore, as a matter of convenience, terms such as "tamper resistant" or "secure" shall be understood to refer to any of the aforementioned or other securitymeasures throughout this discussion.

In one embodiment of the invention, the timestamping device generates a time from clock 20 and outputs a timestamp (or message) consisting of the cleartext time plus a one-way function representative of the time. As used herein, a one-wayfunction is one that outputs a unique representation of an input such that a given output is likely only to have come from its corresponding input, and such that the input could be readily deduced from the output. Thus, the term one-way functionincludes hashes, message authenticity codes (MACs--keyed one-way functions), cyclic redundancy checks (CRCs), and other techniques that are well known to those skilled in the art. See, for example, Bruce Schneier, "Applied Cryptography: Protocols,Algorithms, and Source Code in C," 2nd ed., John Wiley & Sons, Inc., 1996. As a matter of convenience, the term "hash" will be understood to represent any of the aforementioned or other one-way functions throughout this discussion. Typically, the hashwould be performed by cryptoprocessor 10 using a hardwired hashing, algorithm or one stored in RAM 30 or memory 40. The hash may either be a keyed or keyless operation.

Furthermore, a unique device identification number, stored in RAM 30 or memory 40, can be added to the hash to provide assurance of message authenticity. A recipient wishing to verify the time would read the time and device ID, then perform anidentical hashing algorithm to recompute the hash. If the received and recomputed hashes agree, the recipient is assured that the timestamp came from the timestamping device and had not been altered subsequent to timestamping.

Where the timestamping device is used to timestamp a sequence of messages, a chain of hashes--where each timestamp also include representations of one or more previous messages--provides an additional degree of message assurance. For example,RAM 30 or memory 40 could store a hash of the last three time stamps to be incorporated into the current timestamp, as shown in the following example. Imagine that timestamping is performed once monthly, with the latest four dates being: 11/19, 12/15,1/13, 2/24. The hash for the last timestamp could be Hash.sub.--2/24=Hash("2/24")+Hash.sub.--11/19+Hash.sub.--12/15+Hash.sub.-- -1/13, with the hashes for the November, December and January dates relating to their respective previous three months in asimilar fashion. The chained hashes discourage fraudulent modification of a timestamp as described below.

Suppose a forger discovers the device private key and uses it to change both the cleartext and hashed portions of the 11/19 timestamp to read 11/19. A suspicious party could challenge the temporally altered 11/19 timestamp by using it torecompute the subsequent three timestamps, and comparing them with their known values. If the known and recomputed timestamps disagree, the 11/19 timestamp is demonstrated to have been altered. When tampering is generally suspected but no specifictimestamp is in question, an altered timestamp can be discovered by recomputing the most recent timestamp and continuing backward until three successive unconfirmable timestamps are found, indicating that the next timestamp in sequence has been altered. Of course, the forger could theoretically change all the timestamps in the chained hash, but this would require more effort than changing just the desired one, and would increase the chances of detection.

Still greater assurance of integrity and authenticity can be obtained by encrypting part or all of the timestamp in cryptoprocessor 10 using a key stored in memory 40. For example, instead of hashing, the time might be encrypted with adevice-specific private key if authenticity is required, and possibly also with a recipient-specific public key, if confidentiality is desired.

Certain well-known enhancements to public key cryptography can also be used to provide greater assurance. For example, the message could include digital certificates for public key distribution to a party that does not know the device public keyneeded to verify a timestamp encrypted with the device private key. In a digital certificate, the device public key is encrypted (and vouched for) by the private key of a trusted certifier (e.g., a well-known manufacturer of the timestamping device)whose public key is known to the recipient. The recipient uses the certifier's public key to decrypt the device public key, then uses the device public key to verify the timestamp. Alternatively, the recipient could simply obtain the device public keyfrom a publicly accessible database, eliminating the need for digital certification.

To this point, asymmetric (public key) encryption has been discussed in the context of the various cryptographic operations. However, symmetric key (e.g., DES) key encryption is also possible, either as a replacement for, or adjunct to (e.g., asymmetric session key transmitted using public key cryptography) public key cryptography.

Another commonly used cryptographic technique, the so-called challenge-response protocol (CRP), may be used to ensure to a recipient that a timestamp is current, i.e., not a copy of a previously used timestamp. In the CRP, a timestamp requesterchallenges the timestamping device by transmitting a datum to the timestamping device, and checking for the same datum in the received response. Thus, reused timestamps are prevented (or at least detectable) because a reused timestamp would contain adatum corresponding to a previous request/reply pair, rather than the current datum. Those skilled in the art will appreciate that the challenge can use any datum whose value cannot be predicted by the recipient; random numbers happen to be aparticularly convenient choice. Alternatively, the timestamping device could include a random number generator 18 to generate random numbers internally. In this somewhat weaker version of the CRP, the recipient would not necessarily know that thetimestamp was unique, but only that he had not been sent a copy of a timestamp he himself had previously received.

Although certain exemplary cryptographic operations (hashing, asymmetric encryption, symmetric encryption, digital certificates, and challenge-response protocols) have been disclosed for use slightly or in specified combinations, those skilled inthe art will appreciate that many other combinations of these basic operations may be used, depending on the needs of the specified application.

As discussed herein, the timestamp may be generated and/or outputted at a variety of frequencies and/or in response to a variety of requests, including: 1) at predetermined times, 2) upon request of either the user or the recipient, 3) uponpresentation of a request encrypted in a public key corresponding to the private key of the timestamping device, 4) upon production of data by an output device (e.g., a document production device), or 5) under control of a broadcast signal.

The timestamp can be created and outputted upon receipt of a timestamping request at input device 12. Input device 12 might be a simple I/O port for receiving an external electronic signal, or could include a push-button or other mechanicaldevice to generate the timestamp request. In the case of an electronic signal, the cryptoprocessor 10 might only accept a request encrypted with a public, private, or symmetric key, and the cryptoprocessor 10 would then verify the timestamp requestprior to providing the requested timestamp. The external electronic signal could be generated by a remote location which broadcasts or otherwise transmits the timestamp request to the timestamping device.

Alternatively, the time request could be internally generated under control of the cryptoprocessor 10, according to a predetermined schedule, having either regular or irregular intervals, loaded in RAM 30 or memory 40. Timestamping in responseto a predetermined schedule, rather than requester control, would be useful in applications such as remote monitoring or event logging. The schedule could either be factory loaded (and unalterable) or loadable through input device 12. In the lattercase, a request to load the schedule would preferably be encrypted in the device public key, as described above with respect to requestor timestamping. As yet another alternative, timestamping could be dynamically controlled using an algorithm in whicha future timestamp is set in response to one or more previous timestamps. For example, in certain monitoring applications, a normally infrequent timestamping schedule could be accelerated in response to detection of targeted events.

The timestamp is outputted through output device 100. For use in document timestamping, the output device 100 might be a printer for recording the timestamp onto a piece of paper. FIGS. 2A and 2B illustrate bottom and end views, respectively,of an exemplary printwheel device 100. Printwheel device 100 rotates rubber-stamp wheels 110 using geared motors 120 under control of an electrical control signal at input port 130. The wheels 110 have teeth 140 around their circumference to print analphanumeric code when a selected sequence of teeth 140 is in contact with substrate 150. The teeth 140 receive ink from an ink supply 160. As mentioned previously, the timestamp would typically include some cryptographic function of the time, such asa hash or encrypted code, which one could use to verify the integrity and/or authenticity of the time. If used as a stand-alone device, the timestamping command could be given via a push button or could be generated automatically by pushing down on aspring-loaded housing enclosing printwheel device 100, much like currently available handheld devices for document stamping. Access to the timestamping device could optionally be controlled by requiring an authorized password (e.g., via an alphanumerickeypad) before timestamping will occur.

Regardless of the configuration of the device, signal flows between the cryptoprocessor and the output device could be secured to provide additional assurance.

Timestamp operations may be limited and/or controlled based on specified criteria. For example, the timestamp device may be allowed to generate only a specified number of timestamps, or, alternatively, may be allowed to use a specifiedcryptographic key or algorithm only a specified number of times. Thus, one embodiment of the present invention comprises determining a maximum number of timestamps stored in RAM 30 or memory 40 and comparing the maximum number to a total number oftimestamps produced stored in RAM 30 or memory 40. If the number of timestamps produced is greater than the maximum number of timestamps, cryptoprocessor 10 may be prohibited from producing another timestamp. The comparing process described above maybe performed by the cryptoprocessor 10 itself or by an external source that then transmits a command signal to the cryptoprocessor 10, thereby prohibiting the production of further timestamps. The comparing process may be performed in response to arequest for a timestamp or according to a predetermined schedule.

A user may be prompted to "recharge" the timestamping device by purchasing, for example, an additional number of timestamp generations, or additional use of the present cryptographic key. Alternatively, a new cryptographic key may be transmittedto the timestamping device and stored in RAM 30 or memory 40 in exchange for a fee.

The production of timestamps may be limited based on an amount of funds in an account associated with the timestamping device. For example, the account may be charged a fee each time a timestamp is generated by the timestamping device. According to one embodiment, a process for generating a timestamp may include a step of determining an amount of funds associated with the account and determining the fee charged for generating the timestamp. If the amount of funds in the account isless than the fee amount, the timestamp will not be generated. A user may then be informed that the timestamp request is desired, and may further be prompted to increase the amount of funds in the account.

Timestamp Verification

Generating and outputting a timestamp enables a party who did not necessarily witness the timestamping to verify the authenticity of the timestamp and/or the integrity of the time represented by the timestamp. In general, the recipient willverify the timestamp by performing some combination of hashing and decryption appropriate to the particular combination of cryptographic operations used to create the timestamp.

For example, in cases where the timestamp is generated by hashing, the recipient need only read the cleartext time and recompute a hash value of the clearest time to verify the timestamp. If the received and recomputed hash values agree, therecipient may be confident that the timestamp has not been altered.

In cases where the timestamp is encrypted with a corresponding device private key, the recipient can then simply decrypt the timestamp and perform any other cryptographic operations needed to verify the timestamp. The recipient would look up thecorresponding public key from a public database, read the timestamp from the document, decrypt the timestamp using the public key, and determine and verify the document creation time. Alternatively, as suggested earlier, digital certificates could beused to distribute the device public key to a timestamp recipient.

In certain situations, the above procedures may not be possible--for example: 1) when public key cryptography is not used, 2) when it is desired to keep the cryptographic algorithms confidential from the recipient, or 3) when the recipient lacksthe capability to perform cryptographic verifications.

In such cases, a third-party certifier may provide the recipient with verification. For example, the verification can be provided by a central controller 200 accessible through a communications network 300 by a recipient using a communicationdevice 400. The communication device 400 and the communications network may employ at least one of a variety of well-known communication means, including a telephone connection, an Internet connection, a wireless connection, or a website. Verificationand/or access to the central controller 200 may be free or toll-based. According to one embodiment of the present invention, a caller would use the touch-tone keypad of a telephone to enter the date (or other representation of a time) and thetimestamping device ID number after connecting to the central controller 200 via a 900 number. The caller could also provide the information verbally in response to prompts from an interactive response unit (IRU). Alternatively, a recipient with anInternet connection could enter any necessary information into a form displayed on a website, using a keyboard or other input device, such as a wireless handheld device. The central controller 200 would use the device ID number to look up the databaserecord for that particular device in a database and retrieve its cryptographic key. The central controller 200 would then use the cryptographic key to perform the appropriate cryptographic operation (e.g., hashing, device-specific key encryption, etc.)necessary to verify the received timestamp. For example, the central controller 200 could recompute a hash value of the data and provide the hash value to the caller. The communication to the recipient could be via any well-known communication means,including the telephone connection, email, facsimile, or via a displayed webpage. The caller could then compare the recomputed hash value to his received hash value.

Alternatively, the caller could provide the received timestamp (either instead of or in addition to the date) and the device ID number to the central controller 200. The central controller 200 would then use the determined cryptographic key toperform an appropriate cryptographic operation on the timestamp. For example, the central controller 200 could decrypt the received timestamp and provide the decrypted date to the caller. The caller could then verify the timestamp by comparing thedecrypted date to the cleartext portion of the received timestamp. If the caller also provided a received cleartext date to the central controller 200, the central controller 200 could compare the determined date to the received cleartext date andprovide a confirmation to the caller.

The party desiring to verify the timestamp may be charged a fee by the central controller 200 in exchange for providing verification of the timestamp. Such a fee may be based on a predetermined flat fee, the connection (or duration of theconnection) to the central controller 200, or a subscription. The central controller 200 could also (or alternatively) charge a fee to the party that generated the timestamp. For example, the device ID number might be used by the central controller 200to identify an account associated with the party that generated the timestamp. A fee could then be charged to this account.

Alternative Time Sources

It was mentioned previously that the time is generated via an internal clock 20. In another embodiment of the invention, the timestamping device could obtain time from an external source via signal receiver 24 disposed inside the secureperimeter 70. The signal receiver 24 could receive time signals from ground stations (e.g., the US Naval Observatory atomic clock), from orbiting satellites, or from any other trusted external time source. External time signals are especiallyadvantageous for deterring hacking of an internal clock.

In the satellite example, the timestamping device could receive timing signals from the American Global Positioning System (GPS), for which sensors (receivers) are widely available on the commercial market. Alternatively, the receiver couldreceive signals from the Russian Glonass system. Although GPS is primarily used for location finding, those skilled in the art will appreciate that the same timing signal can also be used as an accurate time source. Consequently, the signal receiver 24may be as an alternative time generator to clock 20. These basic operating principles of satellite ranging systems are well known (e.g., Herring, "The Global Positioning System," Scientific American, February 1996, pp. 44-50; and "How Does GPS Work?,"Jane's Intl. Defense Review, Dec. 31, 1994, p. 147) but will be briefly summarized below to illustrate the dual location- and time-determining capabilities of GPS.

Any signal sent from a satellite to a terrestrial receiver is delayed by an amount proportional to the distance from the satellite to the receiver. Therefore, the difference between a clock signal sent from a satellite and a receiver's localclock (typically a few hundreds of a second) will determine the distance from the satellite to the receiver. Knowing this distance establishes that the receiver is located somewhere on the surface of a sphere, of radius equal to the determined distance,centered about the satellite. However, the receiver's exact location--a particular point on the surface of that sphere--remains undetermined. By receiving signals from several orbiting satellites, the receiver's exact three-dimensional location on thesurface of the earth can be determined as the point of intersection of all their locating spheres.

In practice, the receiver clock is cheaper, and therefore less accurate, than the satellite's highly accurate atomic clocks. This means that all of the locating spheres will be slightly smaller or larger than their true values, depending onwhether the receiver clock runs slow or fast, respectively. Consequently, the location spheres may not intersect at a single point. This difficulty is overcome by adjusting the receiver clock by an arbitrary amount, which in turn changes each of thelocation radii by the same amount, and to check for a single point of intersection of the locating spheres. If not, the receiver clock is readjusted, in an iterative process, until a single point of intersection is found. That is, the inaccuratereceiver clock provides a good initial guess regarding the point of intersection, and the fact that the locating spheres must intersect at a single point corresponding to the receiver's terrestrial location is used to improve the initial guess. Taken toits extreme, such iteration could be performed without requiring a receiver clock at all--this would simply require more iterations than if the receiver clock had been available to provide an initial guess.

The end result of the iterations process is a determination of both the exact location of the receiver and the correct time. This time can then be used as part of the timestamping process. Of course, if high time accuracy is not required (thereceived GPS time is only off by a few hundredths of a second), the timestamping device could simply accept the received satellite clock signal (or an averaging of several such signals) as an approximation to the correct time without performing theiterative process described above.

Finally, as is currently done for certain military applications, the received signals could be encrypted in the time transmitter's private key, or in the receiver's public key, as an extra measure of assurance that an imposter has not substitutedan incorrect time for that of the broadcast source. In the latter example, the broadcasted time signal may be thought of as narrowcasted because only a specific recipient can decrypt the time. In such applications, the cryptoprocessor 10, RAM 30 andmemory 40 may be used to perform the necessary decrypting (or other decoding). It will be advantageous to dispose the receiver within the secure perimeter to prevent insertion of fraudulent signals. Alternatively, an encrypted time could be certifiedwithout prior decryption, with this step to be performed by the recipient during subsequent verification.

As the foregoing illustrates, the signal receiver 24 could either supplement or replace the clock 20. In certain embodiments, the clock 20 could be used to double-check the received time (or vice-versa) by comparing the received time against theinternal clock time--which could have been set at the factory or by a previous radio broadcast. The received time would be deemed accurate provided the two times agreed to within the cumulative inaccuracies of the received signal (external time sourceinaccuracy plus any uncorrected transmission delay) and the internal clock 20. Such double-checking might be especially useful where the GPS signals are broadcast in slightly degraded form (e.g., the Standard Positioning mode used in many commercialapplications).

Authenticated Location

In certain cases, it will be desired to certify both the time and geographical location at which the document was timestamped. For example, it might be desired to certify the time zone in which the document was timestamped. As discussed abovewith respect to external time, the GPS signal receiver 24 is also ideally suited to provide the necessary location signals. Such signals would be incorporated into the timestamp, either as cleartext and/or cryptographic form.

Alternative Output Devices

More sophisticated printers can also be used in addition to the simple printwheel mechanism described above. For example, the printer could include traditional dot-based (e.g., laser, bubble, inkjet, or line printers) or character-based computerprinters (e.g., daisywheel), as well as dot-based document printers (e.g., facsimile machines, photocopies, or even barcode printers), or any other document production device. Each of these devices could send a timestamping request through input 12,either automatically upon document printing or manually upon operator request (e.g., a "certify" button to be used manually upon printing a page). Furthermore, manual or automatic operation could be selectable via an on-off timestamp toggle.

Many other output devices are possible, especially when the timestamp is not required to be directly printed on a paper substrate. For example, the output device could print a special, difficult-to-forge label to be applied to the surface of apaper document or other substrate. Furthermore, the timestamp has been described previously as a human-readable alphanumeric code, but this is not necessary. Any machine-readable, optically-detectable code would serve equally well, and might bepreferred to deter casual snooping. For example, the timestamp could be a fine mesh of dots in a geometric pattern covering the entire document. The dots would be small enough to allow easy viewing of the document while at the same time making it muchmore difficult to change any of the words in the document since the dots would be laid over the text. The dots could be laid down using any arbitrary machine-readable coding scheme. For example, the distance between individual dots could represent thedigits of the coded portion of the timestamp. Such an embodiment is most practically performed by a timestamping device connected to a printer or fax machine which is easily capable of setting down such a fine mesh of dots.

Machine-readable, optically-detectable codes are also appropriate when the output device is a recorder used for writing the timestamp to a non-paper medium. Certain of these media, such as optical data recording devices, have an added advantageof being write-only, which can provide extra assurance against timestamp modification. For example, a laser could write to optical media (e.g., CD-ROM or magneto-optical disk). Like paper, such write-only media are often permanent or semi-permanent innature.

Finally, the timestamp need not be written to a permanent or semi-permanent media, but could be displayed for transient viewing on an electronic or other display in human- or machine-readable form.

Finally, the output device need not be physically located with the rest of the timestamping device. For example, a centrally located timestamping device could have one or more remotely located output devices accessible via broadcast signals ordata or voice networks. Such configuration would be especially useful for remote time notarization applications.

Note that, just as with conventional timestamping devices, the timestamp, according to some embodiments, may not attest to the authenticity of the timestamped document, but only to when the timestamp was appended. For example, a fraudulent usercould still copy a legitimate timestamp from a first document to a second document and present the falsely timestamped second document to an unsuspecting recipient.

Nevertheless, by providing added assurance as to the timestamp, the timestamping device disclosed herein represents a distinct improvement over conventional timestamping devices which provide assurance of neither the timestamp nor the document. Timestamp copying can be further discouraged by the use of special measures such as write-once media (as discussed above) for timestamping electronic documents or uncopyable inks for timestamping paper documents. Examples of uncopyable (but ultimatelyoptically detectable) inks include: 1) specially colored inks that cannot be detected by photocopy machines, 2) so-called "invisible" inks that appear upon application of a chemical or ultraviolet developer, and 3) delayed-visibility inks that areinitially invisible but develop slowly over time in response to aging or light exposure. The term "uncopyable inks" could also include timestamps that can be copied with less than full fidelity, e.g. inks that fade, change color, or change contrast uponcopying. Finally, the timestamping device could print "uncopyable patterns" that exhibit interference patterns or other optical distortions upon copying. Such uncopyable inks or uncopyable patterns would be especially useful where timestamped documentsare to be transmitted via an unsecured courier. Those skilled in the art will appreciate that these and other types of anti-counterfeiting measures can increase the difficulty of successfully copying an original timestamp onto another document.

Yet another type of fraud involves modifying the document data rather than the timestamp--for example, timestamping a document and later altering the document content, or pre-timestamping blank pages to be printed at a later time. Such fraud canbe discouraged by the use of inks or patterns whose physical characteristics (e.g., reflectivity, refractivity, contrast, color or hue) depend on whether the timestamp is applied on top of printing, or printing is done on top of a timestamp. Preferably,the timestamp will normally be applied over portions of the printed document to be protected, and any attempt to overprint the timestamp with other printing will be optically detectable. The timestamp could even be restricted to only the printed portionof a page, to discourage the addition of new text atop a previously timestamped but otherwise blank portion of the page. Restricting the timestamp to only the printed portion of the page could easily be implemented in connection with a facsimileprinter, computer printer, or any other device capable of outputting a timestamp of arbitrary size. If the timestamping device produces a timestamp of fixed size, and a single timestamp is smaller than the portion of the printed document that is to beprotected, multiple applications of the timestamp may be used. Alternatively, the printwheel device of FIG. 2 could be adapted to operate in a continuous fashion (e.g., a roller) for timestamping atop text of arbitrary size. Any of the aforementionedfraud detection techniques shall be referred to as "overprint detection."

Augmented Timestamps

The aforementioned techniques--uncopyable inks, uncopyable patterns and overprint detection--are examples of physical techniques, informational techniques may also be used to deter fraud. Informational techniques involve incorporatinginformation about the document, in the form of 1) content identifiers, 2) witness identifiers, or 3) time bracketing into the timestamp.

In a simple form of content identifier, a timestamping device operator could count the number of words on the document to be timestamped and then enter this number into the timestamping device. Data input could be conducted through a numerickeypad attached to the device. When the timestamp was then generated by the cryptographic processor, the coded portion of the timestamp would include an encrypted version of the number of words in addition to the date. Other data elements that could beincorporated into the timestamp include the number of lines of text, the number of instances of a particular word, the largest dollar amount, the number of pages in the document, etc. Such information incorporated into the timestamp makes it increasinglydifficult for anyone to undetectably modify the original document. The memory of each timestamping device could contain a database of 100 data element categories as described above. A printed copy would be available to the timestamping device user. The user would simply decide which data element to incorporate, enter the index number of the data element database, and then enter the numeric value of the data element. Upon authentication of the timestamp, the data element would be revealed.

The content identifier could also include information about the document in the form of various timestamp color schemes. A blue timestamp, for instance, could indicate a financial document while red was reserved for legal documents. Thetimestamping device operator would enter a code such as 01 for finance, 02 for legal, 03 for contracts, etc. The timestamping device would incorporate this information into the color of the timestamp, perhaps using separate colors for the clear text andcoded text portions of the timestamp. As shown by the foregoing examples, those skilled in the art will appreciate that any identifiable datum reflective of document content can be used as the content identifier.

In addition to providing a degree of document integrity, timestamps could include information about those individuals present at the time the timestamp was affixed to the document. In a simple form of witness identifier, each witness to theevent enters a unique private identifier (such as his private key or personal ID number) into the timestamping device before the timestamp is affixed to the document. The private identifier is then incorporated into the coded portion of the timestamp. The private identifier could be entered manually via a keypad, or automatically via touch memory buttons (described in more detail below), PCMCIA cards, or other portable personal access tokens.

If greater levels of security are required, a challenge-response protocol can be used to verify that none of the event witnesses had stolen another person's private identifier. After entering his private identifier, a witness would be challengedthe timestamping device to enter an additional piece of information, such as his mother's maiden name. The response would be compared against its expected value stored in a database in the memory of the timestamping device when the private identifierwas first registered with the device. Incorrect responses would invalidate the previously entered private identifier.

In the above embodiments, users must be careful when entering private identifiers to ensure that they are not stolen by other users of the timestamping device. To make this process more secure, tokens such as the touch Memory device manufacturedby Dallas Semiconductor can be used. Each timestamping device user would have his private identifier stored in a Touch Memory button which consists of a computer chip housed within a small button shaped stainless steel case. The case may be ring-shapedand worn around a user's finger. The chip contains up to 64 kb of RAM or EPROM, sufficient to store a plurality of cryptographic keys. The device transmits data bi-directionally at 16.3 kb per second when placed into contact with a reader device, whichwould reside within the timestamping device. The user touches the button device to the reader each time that he wants his private identifier incorporated into the timestamp. Each chip contains a unique serial number that is laser-etched into the chipat the time of manufacture. The DS147 configuration includes a tamper-resistant real-time clock that may be utilized as a supplementary audit trail, so that authenticatable information could be stored in the user's Touch Memory button in addition tobeing incorporated into the coded portion of the timestamp.

Still greater levels of security can be obtained if biometric readers are built into the timestamping device for incorporating biometric data (e.g., fingerprint, retinal pattern or any other unique physiological parameter) into the coded portionof the timestamp. Biometric readers could also be used to authenticate the private identifiers that are entered by all witnesses.

Yet another informational technique would be used to temporarily bracket access by the timestamp operator. In this technique, a timestamp would indicate an open date and a close date, creating a virtual open parenthesis or closed parenthesiswithin the coded portion of the timestamp. For example, a professional working on a document might need to show the starting and ending times in order to determine billable hours. The timestamping device could have separate buttons labeled start andstop. The start button would be pressed before stamping a document, with such indication being incorporated into the coded portion of the timestamp. The document would then be changed, and the close timestamp would be placed over the open timestamp.

As described above, the device ID may be incorporated into the timestamp. According to some embodiments, the device ID may serve as an account identifier, and, as described above, may be used by a verification service to bill an account. Thoseskilled in the art will recognize that many various types of identifiers may be used to identify an account associated with the timestamp. For example, a witness identifier or financial account identifier (such as a bank account number or credit cardnumber) may be incorporated into a timestamp and used by a verification service to identify an account to be charged when a recipient of a timestamp requests verification of the timestamp.

Alternate Timestamping Commands

It was mentioned previously that output device 100 could generate the timestamp upon external command. Although such an external command will often be a request from a timestamp recipient, it could also be generated automatically upon detectionof an event (or measurement) external to the timestamping device by an appropriate sensor acting as input device 12. Such an event could be any normal or abnormal occurrence whose time of occurrence is to be recorded.

For example, in automobile applications, normal events might include entering an automated toll road or a police car passing a prescribed checkpoint, while abnormal events might include a rental car leaving an authorized operating area or air baginflation during an accident. In any of the aforementioned examples, a sensor would detect the triggering event and automatically order the timestamping generation. The sensor could take many different forms, ranging from a simple photodiode (e.g.,detecting a laser beam marking a boundary) of a GPS receiver (e.g., used as a location finder subject to predetermined alarm limits). In addition, the sensor could be located either within the timestamping device (e.g., analogous to a "flightrecorder"), or externally (e.g., a central monitoring station). Where the sensor is external, it would transmit a timestamp request to a receiver, disposed within the timestamping device, acting as input device 12. In a variation of the above-mentionedlocation finder, the GPS receiver could be linked to a transmitter for broadcasting the car's location upon receipt of an authorized command at a sensor. Considered together, the GPS receiver, transmitter, and airbag sensor could be regarded as atransponder. The actual transmitters, receivers, and sensors needed for such location transmitters will not be discussed in detail, as those skilled in the art will appreciate that all the necessary components are widely commercially available. Forexample, the Lojak car anti-theft system uses such components--but without cryptograhically assured timestamping--to transmit a stolen car's location upon command of a radio signal. Finally, the timestamping device could be augmented withelectromechanical circuitry to take additional action automatically upon detecting the triggering event. For example, a common application might be an automatic cut-off (a kind of "dead man'switch") to disable an engine in the event of emergency orstraying outside a prescribed region.

Although the above examples have been given primarily in the document production and automotive contexts, those skilled in the art will appreciate that the same technology can be used in any other monitoring applications where the time ofoccurrence of an event is to be recorded.

For purposes of illustration only, and not to limit generality, the present invention has been explained with reference to various examples of time sources, cryptographic operations, output devices, and sensors. However, one skilled in the artwill appreciate that the invention is not limited to the particular illustrated embodiments or applications, but includes many others that operate in accordance with the principles disclosed herein.

* * * * *
 
 
  Recently Added Patents
Spray drying vancomycin
Method and apparatus for controllable communication
Opioid-nornicotine codrugs combinations for pain management
Data processor with virtual machine management
Dynamic trunk distribution on egress
Crystalline solvates of 6-(piperidin-4-yloxy)-2H-isoquinolin-1-one hydrochloride
Method of manufacturing acrylic film, and acrylic film
  Randomly Featured Patents
Programmable logic devices with silicon-germanium circuitry and associated methods
Process for radioisotope recovery and system for implementing same
Film image projecting apparatus for handling a roll film containing a plurality of rows of frames
Dust and scratch detection for an image scanner
Position detecting device, autonomous mobile device, method, and computer program product
Multi-reel, multi-line bonus game for a casino base game having game features and method therefor
Shoe upper
Flat knitting machine
Flex interconnect module
Thermographic recording system