throbber
United States Patent
`
`[19]
`
`[11] Patent Number:
`
`5,805,702
`
`Curry et al.
`
`[45] Date of Patent:
`
`Sep. 8, 1998
`
`US005805702A
`
`[54] METHOD, APPARATUS, AND SYSTEM FOR
`TRANSFERRING UNITS OF VALUE
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`[75]
`
`Inventors: Stephen M. Curry, Dallas; Donald W.
`Loomis, Coppell; Christopher W. Fox,
`Dallas, all of Tex.
`
`12/1986 White .................................... .. 364/408
`4,630,201
`
`5,077,792 12/1991 Herring ......... ..
`5,577,121
`11/1996 Davis et al.
`............................ .. 380/24
`
`[73] Assignee: Dallas Semiconductor Corporation,
`Dallas, Tex.
`
`[21] Appl. No.: 595,014
`
`[22]
`
`Filed:
`
`Jan. 31, 1996
`
`Related U.S. Application Data
`
`[60]
`
`Provisional application No. 60/004,510, Sep. 29, 1995.
`
`Int. Cl.6 ...................................................... .. H04L 9/00
`[51]
`[52] U.S. Cl.
`.............................................................. .. 380/24
`[58] Field of Search ................................ .. 380/23, 24, 25
`380/30; 364/717, 464.02
`
`Primary Examiner—Thomas H. Tarcza
`Assistant Examiner—Carmen D. White
`
`Attorney, Agent, or Firm—Jenkens & Gilchrist
`
`[57]
`
`ABSTRACT
`
`The present invention relates to an electronic module used
`for secure transactions. More specifically,
`the electronic
`module is capable of passing encrypted information back
`and forth between a service provider’s equipment via a
`secure, encrypted technique so that money and other valu-
`able data can be securely passed electronically. The module
`is capable of being programmed, keeping track of real time,
`recording transactions for later review, and creating encryp-
`tion key pairs.
`
`15 Claims, 8 Drawing Sheets
`
`USER
`
`BANK/SERVICE PROVIDER
`
`F2
`
`
`
`
`
`READ MODULE ID
`
`NUMBER AND AMOUNT
`OF CASH REQUESTED
`
`
`
`
`F1
`
`WANTS TO ADD AN
`
`AMOUNT OF CASH
`TO MODULE
`
`
`
`
`REQUEST MODULE TO
`PRODUCE A RANDOM SALT
`
`
`
`
`
`
`F3
`
`CREATE RANDOM
`SALT NUMBER
`
`
`ID NUMBE
`OMBINE SALT,
`
`AND CASH AMOUNT AND
` F4
`ENCRYPT WITH SERVICE
`PROVIDERS PRIVATE KEY,
`
`THEREBY CREATING A
`SIGNED SERVICE
`PROVIDER CERTIFICATE
`
`
`
`
`
`
`
`DECRYPT SIGNE SERVICE
`PROVIDER CERTIFICATE
`WITH SERVICE PROV|DER'S
`PUBLIC KEY AND CHECK
`TH ID NUMBER AND
`RANDOM SALT NUMBER
`
`
`
`
`
`GROUPON - EXHIBIT 1001
`
`F5
`
`
`
`
`IF THE ID NUMBER AND
`RANDOM SALT NUMBER
`IS UNCHANGED THEN ADD
`HE CASH AMOUNT To TH
`MONEY REGISTER or
`
`THE MODULE
`
`
`
`
`
`
`
`GROUPON - EXHIBIT 1001
`
`

`
`U.S. Patent
`
`Sep.8,1998
`
`Sheet 1 of8
`
`5,805,702
`
`UNIQUE ID NUMBER
`
`MICRO PROCESSOR
`
`CLOCK
`
`10
`
`/1/
`
`14
`
`MATH COPROCESSOR
`
`-
`OUTPUT BUFFER
`
`' INPUT BUFFER
`
`ONE-WIRE
`
`INTERFACE
`
`CONTROL
`
`16
`
`22
`I NVRAM I 20
`
`24
`
`34
`
`ENERGY
`CIRCUITRY
`
`CREATE TRANSACTION GROUP
`
`GENERATE KEYS AND LOAD
`
`INTO A TRANSACTION GROUP
`
`PRIVATIZE DECRYPTION EXPONENT
`
`
`
`CREATE TRANSACTION SCRIPT
`
`LOCK TRANSACTION GROUP
`
`FIG. 2
`
`

`
`U.S. Patent
`
`Sep.8,1998
`
`Sheet 2 of8
`
`5,805,702
`
`USER RECEIVES SECURE E-MAIL
`AND ENCRYPTED IDEA KEY
`
`
`
`MODULE RECEIVES ENCRYPTED
`IDEA KEY IN AN INPUT OBJECT
`OF A TRANSACTION GROUP
`
`
`
`A3
`
`TRANSACTION SCRIPT DECRYPTS
`THE IDEA KEY
`
`DECRYPTED IDEA KEY IS PLACED
`IN AN OUTPUT DATA OBJECT
`
`IDEA KEY IS USED TO DECRYPT
`THE SECURE E-MAIL
`
` A4
`
`
`
`
`
`
`FIG. 3
`
`CREATE TRANSACTION GROUP FOR
`PERFORMING ELECTRONIC
`NOTARY FUNCTIONS
`
`
`
`
`CREATE OBJECT(S) FOR
`RSA ENCRYPTION KEYS
`
`CREATE OBJECT FOR IIMEKEEPING
`
`CREATE TRANSACTION SEQUENCE
`OBJECT (COUNTER)
`
`CREATE A TRANSACTION SCRIPT THAT CREATES A
`CERTIFICATE BY COMBINING AN INPUT DATA OBJECT
`WITH THE TRUE TIME. THE VALUE OF THE TRANSACTION
`COUNTER AND A UNIQUE NUMBER ASSOCIATED TO THE
`MODULE. THEN SIGNS THE CERTIFICATE
`
`
`B5
`
`B6
`
`
`
`
`PRIVATIZE OBJECTS
`
`LOCK TRANSACTION GROUP
`
`
`
`
`

`
`U.S. Patent
`
`Sep. 8, 1998
`
`Sheet 3 of 8
`
`5,805,702
`
`MESSAGE IS PLACED IN AN
`INPUT DATA OBJECT
`
`
`
`
`
`
`TRANSACTION SCRIPT COMBINES
`MESSAGE WITH OTHER DATA AND
`SIGNS THE COMBINATION WITH A
`PRIVATE KEY CREATING AN
`ENCRYPTED CERTIFICATE
`
`
`
`FIG. 5
`
`
`
`
`
`THE CERTIFICATE CAN BE READ
`AT A LATER TIME BY ENCRYPTING
`IT WITH THE PUBLIC KEY
`
`
`
`
`THE CERTIFICATE AND ORIGINAL
`DOCUMENT CAN BE
`STORED ELECTRONICALLY
`
`
`
`
`
`C2
`
`C3
`
`C4
`
`
`
`PREPARE MODULE
`
`
`
`CREATE TRANSACTION GROUP
`COMPRISING: MONEY OBJECT
`
`TRANSACTION COUNT OBJECT
`PRIVATE KEY AND
`
`PUBLIC KEY OBJECTS ETC.
`
`
`
`FIG. 6
`
`D2
`
`
`
`D3
`
`D4
`
`D5
`
`
`
`
`
`
`
`RSA ENCRYPTION KEYS
`
`
`
`
`
`

`
`U.S. Patent
`
`Sep.8,1998
`
`Sheet 4 of8
`
`5,805,702
`
`USER
`
`MERCHANT
`
`BANK/SERVICE PROVIDER
`
`E2
`
`E5
`
`E4
`
`E5
`
`E9
`
`E12
`RECEIVE MODULES
`SIGNED CERTIFICATE
`
`DECRYPT MODULES
`ceanncnz WITH sERvICE
`PROV|DER'S PUBLIC KEY
`
`DECRYPT MERCHANT'S
`CERTIFICATE wITH
`MERCHANT's PUBUC KEY
`
`E13
`
`E”
`
`IF BOTH CERTIFICATES
`ARE OK THEN ADD
`PURCHASE AMOUNT TO
`
`MERCHANT'S BANK BALANCE
`
`USER WANTS TO MAKE
`A PURCHASE
`USING A MODULE
`
`.
`REIBSNIIIBEIE”
`
`5‘
`
`
`
`
`CREATE DATA PACKET
`
`THAT INCLUDES A
`'RANDOM SALT’ AND
`
`MODULE ID NUMBER
`
`
`
`CREATE A SIGNED
`
`MERCHANT CERTIFICATE
`
`BY ENCRYPTING DATA
`
`PACKET WITH
`MERCHANT'S PRIVATE KEY
`
`
`
`
`
`E6
`
`
`
`SUBTRACT PURCHASE
`AMOUNT FROM
`MoNEY REGISTER
`
`AITACHES PURCHASE
`PRICE To MERCHANT'S
`SIGNED CERTIFICATE
`
`INCREMENT
`TRANSACTION AMOUNT
`
`E7
`
`COMBINE TRANSACTION
`COUNT WITH MERCHANT's
`5,GNED CERHHCATE
`AND PURCHASE AMOUNT;
`aw-=Twm«
`sERvICE PRovIDER's
`PRIVATE KEY THEREBY
`CREATING A SIGNED
`MODULE CERTIFICATE
`
`INCREMENT
`
`TR"”SA°“°” A”'°”'"
`E11
`
`RECEIVE SIGNED MODULE
`CERTIFICATE AND DECRYPT
`pRoII’§I'Ifs5§Se“I?§ KEY
`
`
`OONFIRM THAT;
`1) AMOUNT OF PURCHASE
`
`
`IS CORRECT
`2) DATA IN MERCHANTS
`
`
`CERTIFICATE IS THE
`
`
`SAME As ORIGINALLY SENT
`E10
`
`FIG. 7
`
`

`
`U.S. Patent
`
`Sep.8,1998
`
`Sheet 5 of8
`
`5,805,702
`
`[ER
`
`BANK/SERVICE PROVIDER
`
`
`
`
`READ MODULE ID
`NUMBER AND AMOUNT
`OF CASH REQUESTED
`
`
`
`WANTS TO ADD AN
`AMOUNT OF CASH
`TO MODULE
`
`
`F2
`
`F4
`
`
`REQUEST MODULE TO
`CREATE RANDOM
`PRODUCE A RANDOM SALT
`
`SALT NUMBER
`
`
`
`OMBINE SALT.
`ID NUMBE
`AND CASH AMOUNT AND
`
`DECRYPT 5|GNE SERVICE
`ENCRYPT WITH SERVICE
`
`PROVIDER CERTIFICATE
`PROVIDER'S PRIVATE KEY,
`
`WITH SERVICE PROV|DER'S
`THEREBY CREATING A
`PUBLIC KEY AND CHECK
`SIGNED SERVICE
`
`TH ID NUMBER AND
`PROVIDER CERTIFICATE
`RANDOM SALT NUMBER
`
`
`
`
`
`F5
`
`IF THE ID NUMBER AND
`RANDOM SALT NUMBER
`Is UNCHANGED THEN ADD
`HE CASH AMOUNT To TH
`MONEY REGISTER or
`THE MODULE
`
`
`
`
`F3
`
`EXAMPLE OF
`TRANSFER FROM USER'S MODULE TO MERCHANT'S MODULE
`
`USER/PAYER
`
`RECEIVE SALT AND
`
`MERCHANT/PAYEE
`
`1. CREATE RANDOM SALT
`REQUEST FOR MONEY
`2. DETERMINE AMOUNT OF
`MONEY TO BE
`RECEIVED FROM PAYER
`
`
`
`
`
`
`
`
`SUBTRACT REQUESTED
`MONEY AMOUNT FROM
`A MONEY REGISTER
`
` CREATE SIGNED PAYMENT
`ERTIFICATE BY COMBININ
`SALT WITH PAYMENT
`
`
`
`
`
`
`RECEIVED SIGNED PAYMENT
`
`CERTIFICATE AND DECRYPT
`PUBLIC KEY
` WITH BANK/SERVICE
`USING SERVICE PROVIDERS
`
`PROVlDER'S PRIVATE KEY
`
`
`G3
`
`G4
`
`
`
`
`PAYEE=MERCHANT
`pAYER=UsER
`CHECK DECRYPTED SALT
`AGAINST ORIGINALLY SENT SALT
`
`IF THEY ARE THE SAME
`ADD PAYMENT AMOUNT
`TO MONEY REGISTER
`
`
`FIG. 9
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Sep.8,1998
`
`Sheet 6 of8
`
`5,805,702
`
`TRANSACTION OVER A NETWORK WITH A MODULE
`
`USER/PAYER
`
`MERCHANT/PAYEE
`
`
`RECEIVE PAYER SALT AND
`COMBINE WITH AMOUNT OF
`
`
`
`
`H1
`
`CREATE RANDOM
`PAYER SALT
`
`MONEY TO BE RECEIVED, AND
`INCLUDE A PAYEE SALT, THEN
`ENCRYPT WITH SERVICE
`PRovIDER'S PRIVATE KEY TO
`CREATE A FIRST DATA PACKE'|'
`
`
`
`
`
`
`
`H2
`
`
`
`
`
`
`
`RECEIVE SECOND DATA PACKET
`AND DECRYPT USING SERVICE
`PRoVIDER'S PUBLIC KEY
`
`EXTRACT DECRYPTED PAYEE
`
`SALT AND COMPARE WITH
`PAYEE SALT PROVIDED EARLIER
`
`H6
`
`H7
`
`H3
`
`RECEIVE FIRST DATA PACKET
`AND DECRYPT wITH SERVICE
`PRoVIDER'S PUBLIC KEY
`
`COMPARE ENCRYPTED
`PAYER SALT WITH ORIGINAL
`PAYER SALT
`
`IF THEY ARE THE SAME,
`SUBTRACT AMOUNT OF MONEY
`TO BE SENT FROM
`PAYER To REGISTER
`
`
`
`H4
`
`GENERATE A sECoND DATA
`PACKET CONSISTING or
`PAYEE'S SALT AND THE
`AMOUNT or MONEY T0
`
`BE SENT AND ENCRYPT
`USING SERVICE
`PROV|DER’S PRIVATE KEY
`
`H5
`
`FIG. 10
`
`
`
`IF BOTH ARE THE SAME ADD
`
`MONEY AMOUNT T0
`PAYEE MONEY REGISTER
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Sep. 8, 1998
`
`Sheet 7 of 8
`
`COMMAND
`
`LOCKED
`TRANSACTION
`GROUP
`
`READ ONLY OBJECT COMMAND
`
`READ/WRITE OBJECT COMMANDS
`
`TRANSACTION
`GROUP
`
`READ ONLY OBJECT COMMAND
`
`READ/WRITE OBJECT COMMANDS
`
`TRANSACTION
`GROUP
`
`LOCKED
`OBJECTS (L)
`
`

`
`U.S. Patent
`
`Sep.8,1998
`
`Sheet 8 of8
`
`5,805,702
`
`I/O DATA BUFFERS
`
`TRANSACTION GROUP
`
`GROUP NAME,
`PASSWORD AND ATTRIBUTES
`
`OBJECT 1
`
`
`
`SYSTEM DATA
`
`COMMON PIN, RANDOM
`NUMBER REGISTER, ETC...
`
`OUTPUT DATA OBJECT #1
`
`OUTPUT DATA OBJECT #2
`
`WORKING REGISTER
`
`
`
`
`
`OBJECT 2
`
`
`
`OBJECT N
`
`TRANSACTION RECORD
`
`GROUP OBJECT
`ID
`ID
`
`DATE/TIME
`STAMP
`
`
`
`TRANSACTION GROUP 1
`
`TRANSACTION GROUP 2
`
`TRANSACTION GROUP N
`
`AUDIT TRAIL‘
`
`CIRCULAR BUFFER OF
`TRANSACTION RECORDS
`
`‘THE AUDIT TRAIL DOES
`NOT EXIST UNTIL THE
`MICRO—lN—A—CAN
`HAS BEEN LOCKED
`
`THE AUDIT TRAIL
`
`ONCE LOCKED ALL
`UNUSED RAM IS
`ALLOCATED FOR
`
`FIG. 12
`
`

`
`5,805,702
`
`1
`
`METHOD, APPARATUS, AND SYSTEM FOR
`TRANSFERRING UNITS OF VALUE
`
`BACKGROUND OF THE INVENTION
`
`1. Technical Field of the Invention
`
`The present invention relates to a method, apparatus and
`system for transferring money or its equivalent electroni-
`cally. In particular, in an electronic module based system, the
`module can be configured to provide at least secure data
`transfers or to authorize monetary transactions.
`2. Description of Related Art
`Presently, credit cards that have a magnetic strip associ-
`ated with them, are a preferred monetary transaction
`medium in the market place. A card user can take the card
`to an automatic cash machine, a local store or a bank and
`make monetary transactions. In many instances the card is
`used via a telephone interface to make monetary exchanges.
`The magnetic strip card is used to help identify the card and
`user of the card. The card provides a relatively low level of
`security for the transfer. Regardless, the card enables a card
`holder to buy products, pay debts and make monetary
`exchanges between separate bank accounts.
`Improvements have been made to the magnetic strip card.
`There have been cards created with microcircuits instead of
`
`magnetic strips. In general the microcircuit, like a magnetic
`strip, is used to enable a card-reader to perform a transaction.
`SUMMARY OF THE INVENTION
`
`The present invention is an apparatus, system and method
`for communicating encrypted information between a pref-
`erably portable module and a service provider’s equipment.
`The invention comprises a module,
`that has a unique
`identification, that is capable of creating a random number,
`for example, a SALT, and passing the random number, along
`with, for example, a request to exchange money, to a service
`provider’s equipment. The service provider’s equipment
`may in return encrypt the random number with a private or
`public key (depending on the type of transaction), along with
`other information and pass the encrypted information back
`to the module as a signed certificate. The module, upon
`receiving the signed certificate, will decrypt the certificate
`with a public or private key (depending on the type of
`transaction) and compare the decrypted number with the
`original random number. Furthermore, if the numbers are the
`same then the transaction that was requested may be deemed
`secure and thereby proceeds. The module is capable of time
`stamping and storing in memory information about
`the
`transaction for later review.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`A more complete understanding of the method and appa-
`ratus of the present invention may be had by reference to the
`following Detailed Description when taken in conjunction
`with the accompanying Drawings wherein:
`FIG. 1 is a block diagram of an embodiment of a module;
`FIG. 2 is an exemplary process for creating a transaction
`group;
`
`FIG. 3 is an exemplary technique for receiving an E-mail
`message;
`FIG. 4 is an exemplary technique for preparing a module
`for notary functions;
`FIG. 5 is an exemplary technique for using the module as
`a notary;
`FIG. 6 is an exemplary technique for preparing a module
`to perform a money transaction;
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`FIG. 7 is an exemplary technique for performing a money
`transaction using a module;
`FIG. 8 is an exemplary technique for performing a money
`transaction using a module;
`FIG. 9 is an exemplary technique for performing a money
`transaction using a module;
`FIG. 10 is an exemplary technique for passing data over
`a network;
`FIG. 11 is an exemplary organization of the software and
`firmware within a module; and
`FIG. 12 is an exemplary configuration of software and
`firmware within a module.
`
`DETAILED DESCRIPTION OF A PRESENTLY
`PREFERRED EXEMPLARY EMBODIMENT
`
`FIG. 1 depicts a block diagram of an exemplary module
`10 that
`incorporates an exemplary embodiment of the
`present invention. The module circuitry can be a single
`integrated circuit. It is understood that the module 10 could
`also be on multiple integrated or descrete element circuits
`combined combined together. The module 10 comprises a
`microprocessor 12, a real time clock 14, control circuitry 16,
`a math coprocessor 18, memory circuitry 20, input/output
`circuitry 26, and an energy circuit.
`The module 10 could be made small enough to be
`incorporated into a variety of objects including, but not
`limited to a token, a card, a ring, a computer, a wallet, a key
`fob, badge, jewelry, stamp, or practically any object that can
`be grasped and/or articulated by a user of the object.
`The microprocessor 12 is preferably an 8-bit
`microprocessor, but could be 16, 32, 64 or any operable
`number of bits. The clock 14 provides timing for the module
`circuitry. There can also be separate clock circuitry 14 that
`provides a continuously running real time clock.
`The math coprocessor circuitry 18 is designed and used to
`handle very large numbers. In particular, the coprocessor
`will handle the complex mathematics of RSA encryption and
`decryption.
`The memory circuitry 20 may contain both read-only-
`memory and non-volatile random-access-memory.
`Furthermore, one of ordinary skill in the art would under-
`stand that volatile memory, EPROM, SRAM and a variety of
`other types of memory circuitry could be used to create an
`equivalent device.
`Control circuitry 16 provides timing, latching and various
`necessary control functions for the entire circuit.
`An input/output circuit 26 enables bidirectional commu-
`nication with the module 10. The input/output circuitry 26
`preferably comprises at least an output buffer 28 and an
`input buffer. For communication via a one-wire bus, one-
`wire interface circuitry 32 can be included with the input/
`output circuitry 26.
`An energy circuit 34 may be necessary to maintain the
`memory circuitry 20 and/or aid in powering the other
`circuitry in the module 10. The energy circuit 34 could
`consist of a battery, capacitor, R/C circuit, photovoltaic cell,
`or any other equivalent energy producing circuit or means.
`The firmware architecture of a preferred embodiment of a
`secure transaction module and a series of sample applica-
`tions using the module 10 will now be discussed. These
`examples are intended to illustrate a preferred feature set of
`the module 10 and to explain the services that the module
`offers. These applications by no means limit the capabilities
`of the invention, but instead bring to light a sampling of its
`capabilities.
`
`

`
`5,805,702
`
`3
`I. OVERVIEW OF THE PREFERRED MODULE
`AND ITS FIRMWARE DESIGN
`
`The module 10 preferably contains a general-purpose,
`8051-compatible micro controller 12 or a reasonably similar
`product, a continuously running real-time clock 14, a high-
`speed modular exponentiation accelerator for large integers
`(math coprocessor) 18, input and output buffers 28, 30 with
`a one-wire interface 32 for sending and receiving data, 32
`Kbytes of ROM memory 22 with preprogrammed firmware,
`8 Kbytes of NVRAM (non-volatile RAM) 24 for storage of
`critical data, and control circuitry 16 that enables the micro
`controller 12 to be powered up to interpret and act on the
`data placed in an input circuitry 26. The module 10 draws its
`operating power from the one-wire line. The micro control-
`ler 12, clock 14, memory 20, buffers 28, 30, one-wire
`front-end 32, modular exponentiation accelerator 18, and
`control circuitry 16 are preferably integrated on a single
`silicon chip and packaged in a stainless steel microcan using
`packaging techniques which make it virtually impossible to
`probe the data in the NVRAM 24 without destroying the
`data. Initially, most of the NVRAM 24 is available for use
`to support applications such as those described below. One
`of ordinary skill will understand that there are many com-
`parable variations of the module design. For example,
`volatile memory can be used, or an interface other than a
`one-wire could be used. The silicon chip can be packaged in
`credit cards, rings etc.
`The module 10 is preferably intended to be used first by
`a Service Provider who loads the module 10 with data to
`
`enable it to perform useful functions, and second by an End
`User who issues commands to the module 10 to perform
`operations on behalf of the Service Provider for the benefit
`of the End User. For this reason,
`the module 10 offers
`functions to support the Service Provider in setting up the
`module for an intended application. It also offers functions
`to allow the End User to invoke the services offered by the
`Service Provider.
`Each Service Provider can reserve a block of NVRAM
`
`memory to support its services by creating a transaction
`group 40(refer to FIGS. 11 and 12). A transaction group 40
`is simply a set of objects 42 that are defined by the Service
`Provider. These objects 42 include both data objects
`(encryption keys, transaction counts, money amounts, date/
`time stamps, etc.) and transaction scripts 44 which specify
`how to combine the data objects in useful ways. Each
`Service Provider creates his own transaction group 40,
`which is independent of every other transaction group 40.
`Hence, multiple Service Providers can offer different ser-
`vices in the same module 10. The number of independent
`Service Providers that can be supported depends on the
`number and complexity of the objects 42 defined in each
`transaction group 40. Examples of some of the objects 42
`that can be defined within a transaction group 40 are the
`following:
`RSA Modulus Clock Offset
`
`RSA Exponent Random SALT
`Transaction Script Configuration Data
`Transaction Counter Input Data
`Money Register Output Data
`Destructor
`
`Within each transaction group 40 the module 10 will
`initially accept certain commands which have an irreversible
`effect. Once any of these irreversible commands are
`executed in a transaction group 40, they remain in effect
`until the end of the module’s useful life or until the trans-
`
`4
`to which it applies, is deleted from the
`action group 40,
`module 10. In addition, there are certain commands which
`have an irreversible effect until the end of the module’s life
`or until a master erase command is issued to erase the entire
`contents of the module 10. These commands will be dis-
`
`cussed further below. These commands are essential to give
`the Service Provider the necessary control over the opera-
`tions that can be performed by the End User. Examples of
`some of the irreversible commands are:
`
`Privatize Object Lock Object
`Lock Transaction Group Lock Micro-In-A-CanTM
`Since much of the module’s utility centers on its ability to
`keep a secret, the Privatize command is a very important
`irreversible command.
`
`Once the module 10, as a whole, is locked, the remaining
`NVRAM memory 24 is allocated for a circular buffer for
`holding an audit trail of previous transactions. Each of the
`transactions are identified by the number of the transaction
`group, the number of the transaction script 40 within the
`specified group, and the date/time stamp.
`The fundamental concept implemented by the firmware is
`that the Service Provider can store transaction scripts 44 in
`a transaction group 40 to perform only those operations
`among objects that he wishes the End User to be able to
`perform. The Service Provider can also store and privatize
`RSA key or keys (encryption keys) that allow the module 10
`to “sign” transactions on behalf of the Service Provider,
`thereby guaranteeing their authenticity. By privatizing and/
`or locking one or more objects 42 in the transaction group
`40, the Service Provider maintains control over what the
`module 10 is allowed to do on his behalf. The End User
`
`cannot add new transaction scripts 44 and is therefore
`limited to the operations on objects 42 that can be performed
`with the transaction scripts 44 programmed by the Service
`Provider.
`
`II. USAGE MODELS OF THE MODULE
`
`This section presents a series of practical applications of
`the module 10, ranging from the simplest
`to the most
`complex. Each of these applications is described in enough
`detail to make it clear why the module 10 is the central
`enabling technology for that application.
`
`A. BACKGROUND OF SECURE E-MAIL
`
`In this section we provide an example of how a module 10
`could be used to allow anyone to receive his or her own
`e-mail securely at any location.
`1. Standard E-Mail
`
`In a standard e-mail system, a user’s computer is con-
`nected to a provider of Internet services, and the user’s
`computer provides an e-mail password when polling the
`provider’s computer for new mail. The mail resides on the
`provider’s computer in plain text form, where it can be read
`by anyone working there. In addition, while traveling from
`its source, the mail passes through many computers and was
`also exposed at these locations. If the user receives his mail
`from his provider over a local area network, anyone else on
`the same network can capture and read the mail. Finally,
`with many e-mail systems that do not require the user to
`enter the password, anyone sitting at the user’s computer can
`retrieve and read his mail, since his computer automatically
`provides the password when it polls the provider’s com-
`puter.
`It is frequently also possible to copy the password from a
`configuration file in the user’s computer and use it to read his
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`

`
`5,805,702
`
`5
`mail from a different computer. As a result of this broad
`distribution of the e-mail in plain text form and the weakness
`of password protection, standard e-mail is regarded as very
`insecure.
`
`To counter this problem, the security system known as
`P.G.P. (Pretty Good Privacy) was devised. To use P.G.P., a
`user generates a complete RSA key set containing both a
`public and private component. He makes his public key
`widely available by putting it in the signature block of all his
`e-mail messages and arranging to have it posted in publicly
`accessible directories of P.G.P. public keys. He stores his
`private key on his own personal computer, perhaps in a
`password-protected form. When someone wishes to send
`private e-mail to this user, he generates a random IDEA
`encryption key and encrypts the entire message with the
`IDEA encryption algorithm. He then encrypts the IDEA key
`itself using the public key provided by the intended recipi-
`ent. He e-mails both the message encrypted with IDEA and
`the IDEA key encrypted with the user’s public key to the
`user. No one that sees this transmission can read it except the
`intended recipient because the message is encrypted with
`IDEA and the IDEA key is encrypted with the intended
`recipient’s public key. The recipient’s computer contains the
`corresponding private key, and hence can decrypt the IDEA
`key and use the decrypted IDEA key to decrypt the message.
`This provides security from those who might try to read the
`user’s mail remotely, but it is less effective when the user’s
`computer is accessible to others because the computer, itself,
`contains the private key. Even if the private key is password
`protected, it is often easy to guess the user’s password or
`eavesdrop on him when he enters it, so the user’s computer
`provides little security. In addition,
`the user can receive
`secure e-mail only at his own computer because his private
`key is stored in that computer and is not available elsewhere.
`Therefore, the weakness of P.G.P. is that it is tied strongly to
`the user’s computer where the private key resides.
`2. Module Protected E-Mail
`
`With the exemplary module 10 being used to protect
`e-mail, a user could have his e-mail forwarded to him
`wherever he goes without fear that it would be read by others
`or that his PC would be the weak link that compromises the
`security of his mail. The module protected e-mail system is
`similar to the P.G.P. system, except that the private key used
`for decrypting the IDEA key is stored in a privatized object
`in a transaction group of the module 10 instead of in a PC.
`The module protected e-mail system operates as follows:
`a. Referring to FIGS. 2, 11 and 12, the user creates a
`transaction group 40, S1, generates an RSA key set S2
`and loads it into three objects 42 of the transaction
`group 40 (one RSA modulus object, N, and two RSA
`exponent objects, E and D). He then privatizes the
`decryption exponent S3, D. Finally, he creates a trans-
`action script 44, S4 to take data placed in the input data
`object, encrypt
`it with the modulus N and private
`exponent D and place the result in the output data
`object. He locks the group S5 to prevent any additional
`transaction scripts 44 from being added. He “forgets”
`the value of D and publishes the values of E and N in
`public directories and in the signature blocks of his
`e-mail messages. Since he has forgotten D and since the
`D exponent object has been privatized, there is no way
`that anyone will ever find out the value of D.
`b. Referring to FIG. 3, to send secure e-mail to the user,
`the P.G.P. system is used. When the user receives the
`secure e-mail A1, he transmits the encrypted IDEA key
`into the input data object of the transaction group 40,
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`A2 and then calls the transaction script 44 to decrypt
`this key A3 and place the decrypted result in the output
`data object A4. He then reads the decrypted IDEA key
`from the output data object and uses it to decrypt his
`mail A5. Note that it is now impossible for anyone,
`including the user, to read any new mail without having
`physical possession of the module 10. There is there-
`fore no way that a user’s mail can be read without his
`knowledge, because the module 10 must be physically
`present on the computer where the mail is read. The
`user can carry his module 10 wherever he goes and use
`it
`to read his forwarded mail anywhere. His home
`computer is not the weak point in the security system.
`Secure e-mail, as described above, is the simplest possible
`module application, requiring only one RSA key and one
`transaction script 44. It is unnecessary even to store the
`public key E in the module 10, but it is a good idea to do so
`because the public key is supposed to be publicly accessible.
`By storing E in an exponent object and not privatizing that
`object or the modulus object, N, the user insures that the
`public key can always be read from the module 10. There are
`no transaction scripts 44 involving E because the module 10
`will never be required to perform an encryption.
`B. DIGITAL NOTARY SERVICE
`
`This section describes a preferred notary service using the
`module 10.
`
`1. Background of a Standard Notary Service
`A conventional Notary Service Provider receives and
`examines a document from an End User and then supplies an
`uncounterfeitable mark on the document signifying that the
`document was presented to the notary on a certain date, etc.
`One application of such a notary service could be to record
`disclosures of new inventions so that the priority of the
`invention can later be established in court if necessary. In
`this case, the most important service provided by the notary
`is to certify that the disclosure existed in the possession of
`the inventor on a certain date. (The traditional method for
`establishing priority is the use of a lab notebook in which
`inventors and witnesses sign and date disclosures of signifi-
`cant inventions.)
`2. Electronic Notary Service Using The Module
`A company, hereafter referred to as the Service Provider,
`decides to go into business to supply a notary service
`(strictly, a priority verification service) for its customers,
`hereafter referred to as the End Users. The Service Provider
`
`chooses to do this by using the module 10 as its “agents” and
`gives them the authority to authenticate (date and sign)
`documents on his behalf. The preferred operation of this
`system is as follows:
`a. Referring to FIGS. 4, 11 and 12, the Service Provider
`creates a transaction group 40 for performing electronic
`notary functions in a “registered lot” of modules 10,
`B1.
`
`b. The Service Provider uses a secure computing facility
`to generate an RSA key set and program the set into
`every module 10 as a set of three objects 42, a modulus
`object and two exponent objects B2. The public part of
`the key set is made known as widely as possible, and
`the private part is forgotten completely by the Service
`Provider. The private exponent object is privatized to
`prevent it from being read back from the modules 10.
`c. The Service Provider reads the real-time clock 14 from
`
`each module 10 and creates a clock offset object that
`contains the difference between the reading of the
`real-time clock 14 and some convenient reference time
`
`

`
`5,805,702
`
`7
`
`(e.g., 12:00 a.m. Jan. 1, 1970). The true time can then
`be obtained from any module 10 by adding the value of
`the clock offset object to the real-time clock B3.
`d. The Service Provider creates a transaction sequence
`counter object initialized to zero B4.
`e. The Service Provider creates a transaction script 44
`which appends the contents of the input data object to
`the true time (sum of real-time clock 14 and the value
`of the clock offset object) followed by the value of the
`transaction counter followed by the unique lasered
`registration number. The transaction script 44 then
`specifies that all of this data be encrypted with the
`private key and placed in the output data object. The
`instructions to perform this operation are stored in the
`transaction group 40 as a transaction script object B5.
`f. The Service Provider privatizes any other objects 42
`that
`it does not wish to make directly readable or
`writable B6.
`
`g. The Service Provider locks the transaction group 40,
`preventing any additional transaction scripts 44 from
`being added B7.
`h. Referring to FIG. 5, now the Service Provider distrib-
`utes the modules to paying customers (End Users) to
`use for notary services. Anytime an End User wishes to
`have a document certified, the End User performs the
`Secure Hash Algorithm (Specified in the Secure Hash
`Standard, FIPS Pub. 180) to reduce the entire document
`to a 20 byte message digest. The End User then
`transmits the 20 byte message digest to the input data
`object C1 and calls on the transaction script 44 to bind
`the message digest with the true time,
`transaction
`counter, and unique lasered serial number and to sign
`the resulting packet with the private key C2.
`i. The End User checks the certificate by decrypting it
`with the public key and checking the message digest,
`true time stamp, etc. to make sure they are correct C3.
`The End User then stores this digital certificate along
`with the original copy of the document in digital form
`C4. The Service Provider will attest to the authenticity
`of the certificates produced by its modules.
`j. After a period of time specified by the Service Provider,
`the user returns his module 10, pays a fee, and gets a
`new module containing a new private key. The old
`modules can be recycled by erasing the entire transac-
`tion group and reprogramming them. The Service Pro-
`vider maintains an archive of all the public keys it has
`ever used so that
`it can testify as needed to the
`authenticity of old certificates.
`
`C. DIGITAL CASH DISPENSER
`
`This exemplary usage model focuses on the module 10 as
`a cash reservoir from which payments can be made for
`goods or services. (To simplify the discussion, the subject of
`refilling the module 10 with cash is postponed until later). In
`this case the Service Provider is a bank or other financial
`institution, the End User is the bank’s customer who wishes
`to use the module 10 to make purchases, and the Merchant
`is the provider of the purchased goods or services. The roles
`of the Service Provider, the Merchant, and the End User in
`these transactions are explained in detail below.
`The fundamental concept of the digital cash purse as
`implemented in the module 10 is that the module 10 initially
`contains a locked money object containing a given cash
`value, and the module 10 can generate, on demand, certifi-
`cates which are essentially signed documents attesting to the
`
`8
`fact that the amount of money requested was subtracted
`from the value of the money object. These signed documents
`are equivalent to cash, since they attest to the fact that the
`internal money object was decreased in value by an amount
`corres

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket