`US 6,105,013
`
`6,105,013
`PATENT:
`INVENTORS: Curry, Stephen M.
`Loomis, Donald W.
`Fox, Christopher W.
`
`TITLE:
`
`Method, apparatus, system and firmware
`for secure transactions
`
`APPLICATION
`NO:
`FILED:
`ISSUED:
`
`US199841190A
`
`10 MAR 1998
`15 AUG 2000
`
`COMPILED:
`
`12 JAN 2012
`
`COMPASS EXH. 1001 - Page 1 of 341
`
`
`
`-
`
`-lop__
`
`mr
`
`U.S. UTILITY PATEN,T-APPLIcATION
`
`SCANNEDPEG..
`
`PATENT DATE
`
`I
`
`SECTOR
`
`ICLASS
`
`SUBCLASS
`
`:7C
`
`ART UNIT
`
`EAINER((
`
`FILED WITH: []DISK (CRF),f FICHE
`(ARtached in pocket on dght Inade flap)
`
`-
`
`PREPARED AND APPROVED FOR ISSUE
`
`ORIGINAL
`
`ISSUING CLASSIFICATION
`CROSS REFERENCE(S)
`
`SUBCLASS
`
`CLASS
`7o5§
`t5_
`INTERNATIONAL CLASSIFICATION
`
`CLASS
`
`Z33
`3 O
`
`SUBCLASS (ONE SUBCLASS PER BLOCK)
`
`739
`30
`
`_
`
`_
`
`_
`
`_
`
`_
`
`__
`
`___
`
`___
`
`__________
`
`1
`
`-
`
`-
`
`4
`
`//
`
`T3__
`
`__
`
`___
`
`it]Y
`
`-
`
`-El
`
`Continued on issue Slip inside File Jacket
`
`o TERMINAL
`DISCLAIMER
`
`SheetsDf wg,
`
`,DRAWINGS
`Figs., Drwg.
`
`Pinttig.
`
`CLAIMS ALLOWED
`Total Claims,,
`Print Claim for 0.0.
`
`_____ ____
`
`_
`
`LH a) The term of this patent
`subsequent to ________(date)
`has been disclaimed.
`Hb) The term of this patent shall
`not extend beyond the expiration date
`of U.S Patent. No.
`
`V
`
`i 12-
`
`_______________
`
`_
`
`______________
`(Asisint Examniner)
`KtIin.tJY
`
`NOTICE OF ALLOWANCE MAILED
`
`(Dale)
`
`Z
`
`-Y6L
`
`Amount Due
`
`I
`
`ate P id
`
`ISSUE FEE__
`
`jPnmary Exannine?
`
`(Date)T
`
`-_months of
`L1c) The terminal
`this patent have been disclaimed.
`
`I //YOO
`J
`
`(Date)
`
`ISSU E B,EATCHW
`
`l
`-
`
`4
`
`.
`
`"ntumnExaminr
`
`WARNING:
`The information disclosed herein may be restricted. Unauthorized disclosure may be prohibited by the 'United Stales
`Possession outside the U.S. Patent & Trademark Office is restricted to authorized employees and contractors only.
`Form PT0-436A
`(Re, 10t97)
`
`Fov"At~ wMil~%loli-80 se
`ISSUEF
`FFII
`PIEBEL AREA)
`
`(FACE)
`
`de"Title 35, Sections 122, 181 and 368.
`
`'s~ifrrrI Ela
`
`COMPASS EXH. 1001 - Page 2 of 341
`
`
`
`METHOD, APPARATUS, SYSTEM AND FIRMWARE FOR SECURE TRANSACTIONS
`
`6,105,013
`
`Transaction History
`
`Transaction Description
`Date
`Information Disclosure Statement (IDS) Filed
`3/10/1998
`Information Disclosure Statement (IDS) Filed
`3/10/1998
`3/10/1998 Preliminary Amendment
`3/16/1998
`Initial Exam Team nn
`3/23/1998
`IFW Scan & PACR Auto Security Review
`4/1/1998 Application Dispatched from OIPE
`4/10/1998 Case Docketed to Examiner in GAU
`6/24/1998 Case Docketed to Examiner in GAU
`7/30/1998 Non‐Final Rejection
`8/3/1998 Mail Non‐Final Rejection
`11/9/1998 Response after Non‐Final Action
`11/9/1998 Request for Extension of Time ‐ Granted
`11/16/1998 Date Forwarded to Examiner
`12/16/1998 Mail Ex Parte Quayle Action (PTOL ‐ 326)
`12/16/1998 Quayle action
`1/11/1999 Response after Ex Parte Quayle Action
`1/20/1999 Date Forwarded to Examiner
`1/25/1999 Mail Notice of Allowance
`1/25/1999 Notice of Allowance Data Verification Completed
`4/16/1999 Workflow ‐ Drawings Finished
`4/16/1999 Workflow ‐ Drawings Matched with File at Contractor
`4/16/1999 Workflow ‐ Drawings Received at Contractor
`4/16/1999 Workflow ‐ Drawings Sent to Contractor
`6/25/1999 Miscellaneous Incoming Letter
`7/21/1999 Date Forwarded to Examiner
`7/21/1999 Withdrawal of Notice of Allowance
`7/22/1999 Withdrawal of Allowance Action Count
`7/23/1999 Mail Non‐Final Rejection
`7/23/1999 Non‐Final Rejection
`10/25/1999
`Informal or Non‐Responsive Amendment after Examiner Action
`10/28/1999 Date Forwarded to Examiner
`11/1/1999 Mail Notice of Informal or Non‐Responsive Amendment
`11/22/1999 Response after Non‐Final Action
`11/26/1999 Date Forwarded to Examiner
`1/12/2000 Mail Notice of Allowance
`
`COMPASS EXH. 1001 - Page 3 of 341
`
`
`
`1/12/2000 Notice of Allowance Data Verification Completed
`2/2/2000 Workflow ‐ File Sent to Contractor
`4/14/2000
`Issue Fee Payment Verified
`4/14/2000 Workflow ‐ Drawings Finished
`4/14/2000 Workflow ‐ Drawings Matched with File at Contractor
`4/14/2000 Workflow ‐ Drawings Received at Contractor
`4/14/2000 Workflow ‐ Drawings Sent to Contractor
`5/3/2000 Workflow ‐ Complete WF Records for Drawings
`6/30/2000 Workflow ‐ Complete WF Records for Drawings
`7/2/2000 Application Is Considered Ready for Issue
`7/28/2000
`Issue Notification Mailed
`8/15/2000 Recordation of Patent Grant Mailed
`9/29/2004 Post Issue Communication ‐ Certificate of Correction
`
`
`COMPASS EXH. 1001 - Page 4 of 341
`
`
`
`IOU. S. PTO
`
`PATENT APPLICK TION
`
`09041 l90
`
`CONTENTS
`Date received
`(Inc. C. of M.)
`or
`Date Mailed
`
`INITIALS
`
`-
`
`.____
`
`Date received
`(Inicl. C. of M.)
`or
`Date Mailed
`
`papers.
`
`'p-Vt
`3 A-V-i
`
`43.
`
`44. _
`
`47.
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`48. _
`t-3 49.
`50. _
`
`_
`
`611
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`1
`
`52.
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`.53
`
`_
`
`_
`
`91.
`
`12.
`A13.
`14.
`
`15.
`
`20..-
`
`21..
`
`22..-
`23..
`
`24..
`
`25..
`
`26..
`27..
`
`28.,
`
`29..
`30..
`31.
`
`32.
`33.
`
`34.
`F35.
`36.
`
`37.
`
`38.
`
`39.
`
`40.
`
`41'.
`
`o~~~7 ~54.
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`55.
`
`56.
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`Ij_610
`
`el-L A57.
`
`V(60.
`61.
`62.
`
`-t
`
`63.
`
`64.
`
`65.
`66.
`
`67.
`
`68.
`
`69.
`
`70.
`71.
`72.
`
`73.
`
`74.
`
`75.
`76.
`77.
`
`78.
`
`79.
`
`80.
`81,
`
`82.
`
`(FRONT)
`
`COMPASS EXH. 1001 - Page 5 of 341
`
`
`
`SEARCHED
`
`Class
`
`Sub.
`
`Date
`
`Exmr.
`
`Z3)?
`
`rSEAM NOTES
`
`I(INCLUOING SEARCH STRATEGY)
`
`Exmr.
`
`'$7
`
`P44
`
`A4
`
`,CZ7~ /26 d
`A.; -Zi~~
`c4~A 4r~1cn.X)
`
`u4/z'-s -
`
`a
`-A-n ,,&~r
`A-' n- ~
`o4q34&
`7c4/9t ~44- 9i*;
`
`//Z
`
`INTERFERENCE SEARCHED
`Class
`Sub.
`Date
`Ex
`F?o
`
`31
`
`??)
`
`5i,
`
`/
`
`z3f 2 79-
`3 ?o
`'
`
`/56/17/0
`
`(RIGHT OUTSIDE)
`
`COMPASS EXH. 1001 - Page 6 of 341
`
`
`
`ISSUEW SLIP STAPLE AREA (for additional cross references)
`
`POSITION
`
`~INITIALSIDN.AT
`POSITION
`
`ID NO.
`
`DATE
`
`FEE DETERMINATION
`O.I.P.E. CLASSIFIER
`FORMALITY REVIEW
`
`I_____
`(PoIA_ f-
`
`SA/757;'_
`
`INDEX OF CLAIMS
`.... ...................... Rejected
`.... ....................... Allowed
`(Through numeral) Canceled
`
`. .. ........I .
`............ Restricted
`
`Non-elected
`.................................
`Interference
`I., ....................
`..........
`Appeal
`.. ............
`I ..................
`Objected
`.................................
`
`Claim
`
`Date
`
`Claim
`
`Date
`
`115
`116
`117
`
`110
`
`115
`116
`117
`118
`19
`
`117
`112
`119
`
`122
`123
`116
`117
`
`118
`
`129
`
`121
`12
`13
`124
`125
`236
`127
`128
`239
`1401
`141
`
`14
`13
`13"
`
`f45
`141
`147
`
`LN 6
`o T3
`
`54
`55
`56
`57
`581
`591
`
`64
`65
`
`66
`67
`
`69
`
`70
`71
`721
`
`74
`75
`76 1
`
`77
`8
`
`7081
`
`82
`
`84
`85
`86
`87
`88
`89
`
`901
`91
`2
`
`93
`
`94
`
`96
`97
`
`99
`
`10
`
`1
`
`1
`
`1
`
`.
`
`.
`
`.
`
`.
`
`.
`
`if more than 150 claims or 10 actions
`staple additional sheet here
`
`(LEFT INSIDE)
`
`COMPASS EXH. 1001 - Page 7 of 341
`
`
`
`
`File History Report
`
`
`
`While copying your file we noticed that there are one or
`more ‘Other Publications’ missing from the contents of the
`file wrapper. At your request, we will attempt to obtain the
`missing publication(s) from alternative resources. Please
`note that additional charges will apply to this service.
`
`COMPASS EXH. 1001 - Page 8 of 341
`
`
`
`United States Patent [19
`Curry et al.
`
`[54] METHOD, APPARATUS, SYSTEM AND
`FIRMWARE FOR SECURE TRANSACTIONS
`
`[75]
`
`Inventors: Stephen M. Curry, Dallas; Donald W.
`Loomis, Coppell; Christopher W. Fox,
`Dallas, all of Tex.
`
`[73] Assignee: Dallas Semiconductor Corporation,
`Dallas, Tex.
`
`[21] Appl. No.: 09/041,190
`
`[22] Filed:
`
`Mar. 10, 1998
`
`Related U.S. Application Data
`
`[63] Continuation of application No. 08/594,983, Jan. 31, 1M9,
`Pat. No. 5,748,740.
`provisional application No. 60/004,510, Sep, 29, 1995.
`[60]
`.......... . . . . . . . . . . . . H04L 9/00; H-04L 9/30
`Int. Cl1.
`[51]
`[52] U.S. Cl ......................
`705/65; 235/379; 380/30;
`70517S; 713/156; 713/173; 713/174
`[58] Field of Search...................380/4, 9, 21, 23,
`380/24. 25, 30, 46, 49, 50; 235/379, 380;
`705/64, 65, 66, 67, 68, 69, 75; 713/155,
`156, 157, 158, 168, 172, 173, 174
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`3/1988 Smith.............................
`4,731,842
`5,577,120 11/1996 Penzias...........................
`5,748,740
`5/1998 Curry et al ......................
`
`380/24
`380/23
`380/25
`
`FOREIGN PATENT DOCUMENTS
`
`0172670A2
`0186981A2
`0194839A2
`0294248A1
`0337 185A2
`045 806A2
`06 240 14A2
`4406602A1
`W09 3/08545
`
`European Pat. Off..
`European Pat. off. .
`European Pat, Off. .
`European Pat. Off. .
`European Pat. Off. .
`European Pal. Off. .
`European Pat. Off..
`Germany
`WIPO.
`
`I ul
`IIlIl IIlul
`
`US006105013A
`[ill Patent Number:
`[45] Date of Patent:
`
`liiIIII11111
`
`6,105,013
`Aug. 15,2000
`
`OTHER PUBLICATIONS
`Information Processing Standards Publication,
`Federal
`(FIPS PUB) 186, Digital Signatur Standard (DDS), Issued:
`May 19, 1994.
`Information Processing Standards Publication,
`Federal
`(FIPS PUB) 190-1, Secure Hash Standard, Issued: May 31,
`1994.
`Microso,ft Corporation's Secure Transaction Technology,
`SlIT Wire Formats and Proloc version 0.902, Oct. 5, 1995.
`Matonis, Jon W., Digital Cash and Monetary Freedom,
`http;//www.info,isoc.org/HMP/PAPER/136/htmlpa-
`per.html, as of Apr. 1995.
`MasterCard, Secure Electronic Payment Protocol, Draft
`Version 1.1, Sep. 29, 1995.
`MasterCard, Secure Electronic Payment Protocol, Part 2;
`Functioanal Specifications, Draft Version 1.1, Sep. 29, 1995.
`MasterCard, Secure Electronic Payment Protocol, Part 3;
`Payment System Specification, Draft Version 1.1, Sep, 29,
`1995.
`MasterCard, Secure Electronic Payment Protocol, Part 4;
`Certificate Management Specification, Draft Version 1.1,
`Sep. 29, 1995.
`SGS-Thomnson Microelectronics, CMOS Crypto-Computer
`Family, Advance Datasheet ST16xF74, Oct., 1993.
`SGS-Tbornson Microelectronics, CMOS MCU Based Safe-
`guarded Smartcard IC with Modular Aritmetic Processor,
`Advanced Data Sheet, ST16CF54, Sep. 1994.
`Micro Card, CP80 Products Cryato Card, Jan. 25, 1995.
`Wayner, Peter,Digital Ca$h, Commerce on the Net, Chpt. 3
`& 10 and Appendix B, Jun. 1995.
`Schneier, Bruce, Applied Cryptography Chpt. 19, pp.
`461-482, 1996.
`Primary Examiner-Bernarr E_ Gregory
`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 information back and forth
`between a service provider's equipment via a secure,
`encrypted technique so that money and other valuable 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 encryption key
`pairs.
`
`16 Claims, 8 Drawing Sheets
`
`-15
`
`22
`
`24
`
`COMPASS EXH. 1001 - Page 9 of 341
`
`
`
`U.S. Patent
`
`Aug. 15,2000
`
`Sheet 1 of 8
`
`6,105,013
`
`12
`
`18.
`
`28
`30
`
`26
`
`321
`
`10
`
`14
`
`16
`
`22
`20
`24
`
`.34
`
`FIG. 1
`
`CREATE TRANSACTION GROUP
`
`V Si
`
`GENERATE KEYS AND LOAD
`INTO A TRANSACTION GROUP
`
`t S2
`
`1PRIVATIZE DECRYPTION
`
`CREATE TRANSACTION
`
`~~yTrS 4
`V S
`
`LOCK TRANSACTION GROUP
`
`FIG. 2
`
`COMPASS EXH. 1001 - Page 10 of 341
`
`
`
`U.S. Patent
`
`Aug. 15, 2040
`
`Sheet 2 of 8
`
`6,105,013
`
`USER RECEIVES SECURE E-MAI
`IDEA KEY
`AND ENCRYPTED
`
`-Al
`
`MODULE RECEIVES ENCRYPTED
`INPUT
`IDEA KEY IN AN
`OBJECT OF A TRANSACTIONGRU
`
`JrA
`
`FIG. 3
`
`TRANSACTION SCRIPT DECRYPTS
`
`IDEA KEY IS USED TO DECRYPT
`THE SECURE E-M4AIL
`
`CREATE TRANSACTION GROUP FOR
`PERFORMING ELECTRONI
`NOTARY FUNCTIONS
`
`CREATE OBJECT(S) FOR
`RSA ENCRYPTION KEYS
`
`CREATE OBLECT FOR TIMEKEEPING
`
`FIG. 4
`
`CREATE TRANSACTION SEQUENCE
`(COUNTER)
`OBJECT
`
`-A4
`
`kB3
`BK 4
`
`CREATE A TRANSACTION SCRIPT THAT CREATES
`INPUT DATA
`A CERTIFICATE BY COMBINING AN
`OBJECT WITH THE TRUE TIME, THE VALUE OF
`THE TRANSACTION COUNTER AND A UNIQUE
`NUMBER ASSOCIATED TO THE MODULE, THEN
`SIGNS THE CERTIFICATE
`
`6-- 5
`
`PRIVATE OBJECTS
`
`I
`LOCK TRANSACTION GROUP
`
`V B6
`
`B7
`
`COMPASS EXH. 1001 - Page 11 of 341
`
`
`
`U.S. Patent
`
`Ag 5 00
`Aug. 15,2000
`
`Sheet 3 of 8
`Set3o
`
`691059013
`,0,1
`
`Cl
`
`k1Z
`
`ItC3
`
`C4
`
`MESSASGE IS PLACED IN AN
`INPUT DATA OBJECT
`
`TRANSACTION SCRIPT COMBINE
`MESSAGE WITH OTHER DATA AND
`SIGNS THE COMBINATION WITH A
`PRIVATE KEY CREATING AN
`ENCRYPTED CERTIFICATE
`
`THE CERTIFICATE AND ORIGINAL
`DOCUMENT CAN BE
`STORED ELECTRONICALLY
`
`FIG. 5
`
`PREPARE MODULE
`CREATE TRANSACTION GROUP
`COMPRISING: MONEY OBJECT
`TRANSACTION COUNT OBJECT
`PRIVATE KEY AND
`PUBLIC KEY OBJECTS ETC.
`
`, -Dl1
`
`PRIVATIZE PRIVATE KEY RELATED OBJECT(S)D2
`
`I-03
`V04
`
`CREATE TRANSACTION SCRIPT TO
`PERFORM MONETARY TRANSACTION
`
`LOCK TRANSACTION GROUP
`
`PUBUISH PUBLIC KEY
`
`FIG. 6
`
`COMPASS EXH. 1001 - Page 12 of 341
`
`
`
`U.S. Patent
`
`Aug. 15,2000
`
`Sheet 4 of 8
`
`6,105,013
`
`USER WANTS TO MAKJE
`A PURCHASE
`USING A MODULE
`
`ME-RCHANT
`READS MODULE'S
`ID NUMBER
`
`CREATES DATA PACKET
`INCLUDES A
`THAT
`'RANDOM SALT' AND
`MODULE ID NUMBER
`
`CREATES A SIGNED
`MERCHANT CERTIFICATE
`BY ENCRYPTING DATA
`PACKET WITH
`MERCHANT'S PRIVATE KEY
`
`SUBTRACT PURCHASE
`AMOUNT FROM
`MONEY REGISTER
`
`ATTACHES PURCHS
`PRICE TO MERCHANT'
`SIGNED CERTIFICATE
`
`INCREMENT
`TRANSACTION COUNT
`
`7
`
`rhE
`
`BANK/SERVICE PROVIDER
`
`VE2
`
`K4
`
`~E5
`
`COMBINE TRANSACTION
`COUNT WITH MERCHANT'S
`SIGNED CERTIFICATE
`AND PURCHASE AMOUNT;
`THEN ENCRYPT WITH
`SERVICE PROVIDER'S
`PRIVATE KEY THEREBY
`CREATING A SIGNED
`MODULE CERTIFICATE
`
`RECEIVE
`ITEM
`SERVICE PURCHASED
`
`RECEIVED SIGNED MODULE L-E9
`CERTIFICATE AND DECRYPT
`USING SERVICE PROVIDER'S
`PUBLIC KEY
`
`CONFIRM THAT:
`1) AMOUNT OF PURCR S
`ASE
`IS CORRECT
`le
`2) DATA IN MERCHANT'
`IS THE
`CERTIFICATE
`SAME AS ORIGINALLY
`
`E13
`
`E14f
`
`E15
`
`FIG. 7
`
`RECEIVE MODULE'S
`SIGNED CERTIFICATE
`
`SET CERTIFICATE WITH SERVICE
`PRVDRSPBIKE
`
`CERTIFICATE WITH
`MERCHANT'S PUBLIC KEY
`
`IF BOTH CERTIFICATES ARE
`OK THEN ADD PURCHASE
`AMOUNT TO MERCHANT'S
`BN BAANCE
`
`COMPASS EXH. 1001 - Page 13 of 341
`
`
`
`U.S. Patent
`
`Aug. 15,2000
`
`Sheet 5 of 8
`
`6,105,013
`
`WANTS TO ADD AN
`AMOUNT OF CASH
`TO MODULE
`
`F3j
`
`CREATE RANDOM
`SALT NUMBER
`
`DECRYPT SIGNED SERVICE
`PROVIDER CERTIFICATE
`WITH SERVICE PROVIDER'S
`PUBLIC KEY AND CHECK
`THE ID NUMBER AND
`RANDOM SALT NUMBER
`
`IF THE ID NUMBER
`AND RANDOM SALT NUMBER
`IS UNCHANGED THEN ADD
`THE CASH AMOUNT TO THE
`MONEY REGISTER
`OF THE MODULE
`
`BANK/SERVICE PROVIDER
`
`READ MODULE ID
`NUMBER AND AMOUNT
`OF CASH REQUESTED
`
`7F2
`
`REQUEST MODULE TO
`PRODUCE A RANDOM SALT
`
`COMBINE SALT, ID NUMBER
`AND CASH AMOUNT AND
`ENCRYPT WITH SERVICE
`PROVIDER'S PRIVATE KEY,
`THEREBY CREATING A
`SIGNED SERVICE
`PROVIDER CERTIFICATE
`
`4
`
`FIG. 8
`
`F5
`
`G2>
`
`EXAMPLE OF
`TRANSFER FROM USER'S MODULE TO
`USER/PAYER
`
`MERCHANT'S MODULE
`MERCHAN/MMxE
`
`RECEIVE SALT AND
`REQUEST FOR MONEY
`
`SUBTRACT REQUESTED
`MONEY AMOUNT FROM
`A MONEY REGISTER
`
`CREATE SIGNED PAYMENT
`CERTIFICATE BY COMBINING
`SALT WITH PAYMENT
`AMOUNT THEN ENCRYPTING
`WITH BANKER/SERVICE
`PROVIDER'S ORIVATE KEY
`
`PAYER = USER
`FIG. 9
`
`1. CREATE RANDOM SALT
`2. DETERMINE-AMOUNT OF
`MONEY TO BE
`RECEIVED FROM PAYER
`
`l
`KG
`
`RECEIVE SIGNED PAYMENT
`CERTIFICATE AND DECRYPT
`USING SERVICE PROVIDER'S
`PUBLIC KEY
`
`CHECK DECRYPTED SALT
`AGAINST ORIGINALLY SENT SALT
`IF THEY ARE THE
`SAME ADD PAYMENT AMOUNT
`TO MONEY REGISTER
`
`_
`
`VG3
`
`VG4
`
`COMPASS EXH. 1001 - Page 14 of 341
`
`
`
`U.S. Patent
`
`Aug. 15,2000
`
`Sheet 6 of 8
`
`6,105,013
`
`TRANSACTION OVER A NETWORK WITH A MODULE
`
`HI
`
`USER/PAYER
`
`CREATE RANDOM
`PAYER SALT
`
`RECEIVE FIRST DATA PACKET
`AND DECRYPT WfHSEVC
`PROVIDER'S PULI KE
`
`COMPARE DECRYPTED
`PAYER SALT WNTH ORIGINAL
`PAYER SALT
`IF THEY ARE THE SAME.
`SUBTRACT AMOUNT OF MONEY
`TO BE SENT FROM
`PAYER MONEY REGISTER
`
`GENERATE A SECOND DATA
`PACKET CONSISTING OF
`PAYEE'S SALT AND THE
`AMOUNT OF MONEY TO
`BE SENT AND ENCRYPT
`USING SERVICE
`PROVIDER'S PRIVATE KEY
`
`H4
`
`H5<
`
`FIG. 10
`
`MERCHANTPAEE
`
`RECEIVE PAYER SALT AND
`COMBINE WITH AMOUNT OF
`MONEY TO BE RECEIVED, AND
`:NCLUDE A PAYEE SALT, THEN
`ENCRYPT WITH SERICE
`PROVIDER'S PRIVATE KEY TO
`CREATE A FIRST DATA PACKET
`
`RECEIVE SECOND DATA PACKErr H6
`AND DECRYPT WITl EVC
`PROVIDER'S PULIKE
`
`EXTRACT DECRYPTED PAYEE
`SALT AND COMPARE WITH
`PAYEE SALT PROVIDED EARLIER
`IF BOTH ARE THE SAME ADD
`MONEY AMOUNT TO
`PAYEE MONEY REGISTER
`
`H7
`
`COMPASS EXH. 1001 - Page 15 of 341
`
`
`
`U.S. Patent
`
`Aug. 15, 2000
`
`Sheet 7 of 8
`
`6,105,013
`
`1 -WIRE
`1/0
`
`r
`
`COMPASS EXH. 1001 - Page 16 of 341
`
`
`
`U.S. Patent
`
`Aug. 15, 2000
`
`Sheet 8 of 8
`
`6,105,013
`
`1/0 DATA BUFFERS
`
`SYSTEM DATA
`COMMON PIN, RANDOM
`NUMBER REGISTER, ETC...
`
`OUTPUT DATA OBJECT #1
`OUTPUT DATA OBJECT #2
`WORKING REGISTER
`
`4O
`40~
`
`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-IN-A-CANTM
`HAS BEEN LOCKED
`
`ONCE LOCKED ALL
`UNUSED RAM IS
`ALLOCATED FOR
`THE AUDIT TRAIL
`
`FIG. 12
`
`TRANSACTION GROUP
`GROUP NAME,
`PASSWORD AND ATTRIBUTES
`OBJECT 1
`OBJECT 2
`
`OBJECT N
`
`TRANSACTION RECORD
`
`COMPASS EXH. 1001 - Page 17 of 341
`
`
`
`6,105,013
`
`to
`
`25
`
`45
`
`1
`METHOD, APPARATUS, SYSThM AND
`FIRMWARE FOR SECURE TRANSACTIONS
`RELATED APPLICAT'IONS
`'This application is a continuation of application Ser. No.
`08/594,983 filed Jan. 31, 1996, now U.S. Pat. No. 5,748,740,
`and claims the benefit of U.S. Provisional Application No.
`60/004,510, filed Sep- 29, 1995.
`The following applications of common assignee contain
`related subject matter and are hereby incorporated by ref-
`erence;
`filed Jan. 31, 1996, entitled
`Ser. No.; 08/595,014,
`METHOD, APPARATUS, AND SYSTEM FOR TRANS-
`FERRING UNITS OF VALUE, now U.S. Pat, No. 5,805,
`702;
`filed Jan, 31, 1996, entitled
`Ser. No.; 08/594,975,
`TRANSFER OF VALUABLE
`INFORMATION
`BETWEEN A SECURE MODULE AND ANOTHER
`MODULE, now pending.
`
`BACKGROUND OF THE INVENTION
`1. Technical Field of the Invention
`The present invention relates to a method, apparatus and
`firmware used for secure transactions. In particular, in an
`electronic module based system, the module can be config-
`ured to provide at least secure data transfers, digital signa-
`tures 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
`to buy products, pay debts and make monetary
`holder
`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 TIlE 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 transction), 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.
`
`2
`BRIEF DESCRIPTION OF THE DRAWINGS
`A more complete understanding of the method and appa-
`ratus of the present invention may he had by reference to the
`5following 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
`15 a notary;
`HIG. 6 is an exemplary technique for preparing a module
`to perform a money transaction;
`FIG. 7 is an exemplary technique for performing a money
`2transaction using a module;
`FIG. 8 is an exemplary technique for performing a money
`transaction uising 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
`30 firmware within a module.
`DETAILED DESCRIPTION OF A PRESENTL-Y
`PREFERRED EXEMPLARY EMBODIMENT
`HIG. 1 depicts a block diagram of an exemplary module
`35 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 together. The module 10 comprises a microipro-
`40 cessor 12, a real time clock 14, control circuitry 16, a math
`coprocessor 18, memory circuitry 20, input/output circuitry
`26, and an energy circuit.
`to be
`The module 19 could be made small enough
`into a variety of objects including, but not
`incorporated
`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.
`is preferably an S-bit
`The microprocessor 12
`50 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
`55 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.
`60 Furthermore, one of ordinary skill in the art would under-
`st.and 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
`65 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
`
`COMPASS EXH. 1001 - Page 18 of 341
`
`
`
`3
`preferably comprises at least an output buffer 28 and an
`input buffer. For communication via a one-wire bus, one-
`wile interface circuitry 32 can be included with the input/
`output circuitry 26.
`An energy circuit 34 may be necessary to maintain the
`the other
`memory circuitry 20 and/or aid in powering
`in the module 10. The energy circuit 34 could
`circuitry
`consist of a battery, capacitor. R/G 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.
`
`I. OVERVIEW OF THE PREFERRED MODULE
`AN]) ITS FIRMWARE DESIGN
`The module 19 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 circcuitry 26. The module 10 draws
`the one-wire
`line. The micro
`its operating power from
`controller 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 definied by the Service
`include both data objects
`Provider. These objects 42
`(encryption keys, transaction counts, money amounts, date!
`imne 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-
`
`6,105,013
`
`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
`5that can be defined within a transaction group 40 are the
`following:
`
`10
`
`RSA Modulus
`RSA Exponent
`Transaction Script
`Transactionr Counter
`Money Register
`Destructor
`
`Clock Offset
`Random SALT
`Conifiguration Dama
`Input Dan
`Output Data
`
`15
`
`Within each transaction group 40 the module 10 will
`initially accept certain commands which have an irreversible
`irreversible commands are
`effect. Once any of these
`executed in a transaction group 40, they remain in effect
`20 until the end of the module's useful life or until the trans-
`action group 40, to which it applies, is deleted from the
`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
`25 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:
`
`30
`
`35
`
`Privatize Object
`Lock Transaction Group
`
`Lock Object
`Lock Micro-In-A-Can
`
`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
`40 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.
`45 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
`50 perfoarm. 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
`5540, 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
`60 Provider.
`11. USAGE MODELS OF THE MODULE
`This section presents a series of practical applications of
`the module 10, ranging from the simplest to
`the most
`65 complex. Each of these applications is described in enough
`detal to make it clear why the module 10 is the central
`enabling technology for that application.
`
`COMPASS EXH. 1001 - Page 19 of 341
`
`
`
`6,105,013
`
`5
`A. Background of Secure E-Mail
`In this section we provide an example of how a module 19
`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
`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 problemn, the security system known as
`P.G.P. (Pretty Good Privacy) was devised. To use PGP., 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 PGP. public keys. He stores his
`in a
`private key on his own personal computer, perhaps
`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 c-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 anid 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 PGP. 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 co