`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:
`
`21 FEB 2012
`
`Page 1 of 544
`
`UNITED SERVICES AUTOMOBILE ASSOCIATION
`Exhibit 1008
`
`
`
`.._.—
`
`
`
`E |
`on
`E_..
`§gr; I
`E3
`an
`E3
`%
`
`I-
`_
`:3
`LB
`E
`:2
`6
`3
`3
`-
`
`-.
`
`
`
`PREPARED Ann APPROVED FOR ISSUE
`
`ISSUING CLASIFICATION
`
`5I
`
`FILED wrrn: E DISK {CFIFJ .|:|FIcHE
`«.
`_{Ana:hqcIinpod:alonrigrn':_saidaflaPl
`
`‘»
`
`
`
`CLAIMS ALLOWED
`
`'PriI1t Qlgim WU-G.
`
`TERMINAL
`
`
`
`DISCLAI MEH A DRAWINGS
`Sheergfifilvg.
`FIg§,Drwg.
`P|;infFig.
`Total CIairn§_,_-
`/
`'3’
`/.7_
`‘/
`7%/6
`. " NOTICE or ALLOWANCE IJAILED
`J a}Thatern1 of this patent
`subsequent in
`(date)
`
`has been disciaimed.
`.:| b) The term 01 this palant shalt
`not extend beyond the expiration data
`of U.S Palant. Nu.
`
`
`
` CI c) The 1'.ermirIa|
`rnomhs of
`this patent have been disclaimed.
`
`
`
`WAR MING:
`The iniormalion disclosed herein may be restriclad. Unaulhorlzed disclosure may be prohibited by me Unified States
`Poassssion outside me US. Parent 8. Trademark Oflica is rsstncied to authorized enwployees and contractors only.
`Form Pro-ma
`(Rev. 1049?]
`
`
`
`
`FFF [M |:|L(EBELAi‘-IEA)
`
`
`
`FormaiBtaVnn§%L4-—5m‘}‘“-**
`
`
`
`{FACE}
`
`.-
`
`Page 2 of 544
`
`
`
`METHOD,(cid:3)APPARATUS,(cid:3)SYSTEM(cid:3)AND(cid:3)FIRMWARE(cid:3)FOR(cid:3)SECURE(cid:3)TRANSACTIONS(cid:3)
`
`6,105,013(cid:3)
`
`Transaction(cid:3)History(cid:3)
`
`Transaction(cid:3)Description(cid:3)
`Date(cid:3)(cid:3)
`3/10/1998(cid:3)Information(cid:3)Disclosure(cid:3)Statement(cid:3)(IDS)(cid:3)Filed(cid:3)
`3/10/1998(cid:3)Information(cid:3)Disclosure(cid:3)Statement(cid:3)(IDS)(cid:3)Filed(cid:3)
`3/10/1998(cid:3)Preliminary(cid:3)Amendment(cid:3)
`3/16/1998(cid:3)Initial(cid:3)Exam(cid:3)Team(cid:3)nn(cid:3)
`3/23/1998(cid:3)IFW(cid:3)Scan(cid:3)&(cid:3)PACR(cid:3)Auto(cid:3)Security(cid:3)Review(cid:3)
`4/1/1998(cid:3)Application(cid:3)Dispatched(cid:3)from(cid:3)OIPE(cid:3)
`4/10/1998(cid:3)Case(cid:3)Docketed(cid:3)to(cid:3)Examiner(cid:3)in(cid:3)GAU(cid:3)
`6/24/1998(cid:3)Case(cid:3)Docketed(cid:3)to(cid:3)Examiner(cid:3)in(cid:3)GAU(cid:3)
`7/30/1998(cid:3)Non(cid:882)Final(cid:3)Rejection(cid:3)
`8/3/1998(cid:3)Mail(cid:3)Non(cid:882)Final(cid:3)Rejection(cid:3)
`11/9/1998(cid:3)Response(cid:3)after(cid:3)Non(cid:882)Final(cid:3)Action(cid:3)
`11/9/1998(cid:3)Request(cid:3)for(cid:3)Extension(cid:3)of(cid:3)Time(cid:3)(cid:882)(cid:3)Granted(cid:3)
`11/16/1998(cid:3)Date(cid:3)Forwarded(cid:3)to(cid:3)Examiner(cid:3)
`12/16/1998(cid:3)Mail(cid:3)Ex(cid:3)Parte(cid:3)Quayle(cid:3)Action(cid:3)(PTOL(cid:3)(cid:882)(cid:3)326)(cid:3)
`12/16/1998(cid:3)Quayle(cid:3)action(cid:3)
`1/11/1999(cid:3)Response(cid:3)after(cid:3)Ex(cid:3)Parte(cid:3)Quayle(cid:3)Action(cid:3)
`1/20/1999(cid:3)Date(cid:3)Forwarded(cid:3)to(cid:3)Examiner(cid:3)
`1/25/1999(cid:3)Mail(cid:3)Notice(cid:3)of(cid:3)Allowance(cid:3)
`1/25/1999(cid:3)Notice(cid:3)of(cid:3)Allowance(cid:3)Data(cid:3)Verification(cid:3)Completed(cid:3)
`4/16/1999(cid:3)Workflow(cid:3)(cid:882)(cid:3)Drawings(cid:3)Finished(cid:3)
`4/16/1999(cid:3)Workflow(cid:3)(cid:882)(cid:3)Drawings(cid:3)Matched(cid:3)with(cid:3)File(cid:3)at(cid:3)Contractor(cid:3)
`4/16/1999(cid:3)Workflow(cid:3)(cid:882)(cid:3)Drawings(cid:3)Received(cid:3)at(cid:3)Contractor(cid:3)
`4/16/1999(cid:3)Workflow(cid:3)(cid:882)(cid:3)Drawings(cid:3)Sent(cid:3)to(cid:3)Contractor(cid:3)
`6/25/1999(cid:3)Miscellaneous(cid:3)Incoming(cid:3)Letter(cid:3)
`7/21/1999(cid:3)Date(cid:3)Forwarded(cid:3)to(cid:3)Examiner(cid:3)
`7/21/1999(cid:3)Withdrawal(cid:3)of(cid:3)Notice(cid:3)of(cid:3)Allowance(cid:3)
`7/22/1999(cid:3)Withdrawal(cid:3)of(cid:3)Allowance(cid:3)Action(cid:3)Count(cid:3)
`7/23/1999(cid:3)Mail(cid:3)Non(cid:882)Final(cid:3)Rejection(cid:3)
`7/23/1999(cid:3)Non(cid:882)Final(cid:3)Rejection(cid:3)
`10/25/1999(cid:3)Informal(cid:3)or(cid:3)Non(cid:882)Responsive(cid:3)Amendment(cid:3)after(cid:3)Examiner(cid:3)Action(cid:3)
`10/28/1999(cid:3)Date(cid:3)Forwarded(cid:3)to(cid:3)Examiner(cid:3)
`11/1/1999(cid:3)Mail(cid:3)Notice(cid:3)of(cid:3)Informal(cid:3)or(cid:3)Non(cid:882)Responsive(cid:3)Amendment(cid:3)
`11/22/1999(cid:3)Response(cid:3)after(cid:3)Non(cid:882)Final(cid:3)Action(cid:3)
`
`Page 3 of 544
`
`
`
`11/26/1999(cid:3)Date(cid:3)Forwarded(cid:3)to(cid:3)Examiner(cid:3)
`1/12/2000(cid:3)Mail(cid:3)Notice(cid:3)of(cid:3)Allowance(cid:3)
`1/12/2000(cid:3)Notice(cid:3)of(cid:3)Allowance(cid:3)Data(cid:3)Verification(cid:3)Completed(cid:3)
`2/2/2000(cid:3)Workflow(cid:3)(cid:882)(cid:3)File(cid:3)Sent(cid:3)to(cid:3)Contractor(cid:3)
`4/14/2000(cid:3)Issue(cid:3)Fee(cid:3)Payment(cid:3)Verified(cid:3)
`4/14/2000(cid:3)Workflow(cid:3)(cid:882)(cid:3)Drawings(cid:3)Finished(cid:3)
`4/14/2000(cid:3)Workflow(cid:3)(cid:882)(cid:3)Drawings(cid:3)Matched(cid:3)with(cid:3)File(cid:3)at(cid:3)Contractor(cid:3)
`4/14/2000(cid:3)Workflow(cid:3)(cid:882)(cid:3)Drawings(cid:3)Received(cid:3)at(cid:3)Contractor(cid:3)
`4/14/2000(cid:3)Workflow(cid:3)(cid:882)(cid:3)Drawings(cid:3)Sent(cid:3)to(cid:3)Contractor(cid:3)
`5/3/2000(cid:3)Workflow(cid:3)(cid:882)(cid:3)Complete(cid:3)WF(cid:3)Records(cid:3)for(cid:3)Drawings(cid:3)
`6/30/2000(cid:3)Workflow(cid:3)(cid:882)(cid:3)Complete(cid:3)WF(cid:3)Records(cid:3)for(cid:3)Drawings(cid:3)
`7/2/2000(cid:3)Application(cid:3)Is(cid:3)Considered(cid:3)Ready(cid:3)for(cid:3)Issue(cid:3)
`7/28/2000(cid:3)Issue(cid:3)Notification(cid:3)Mailed(cid:3)
`8/15/2000(cid:3)Recordation(cid:3)of(cid:3)Patent(cid:3)Grant(cid:3)Mailed(cid:3)
`9/29/2004(cid:3)Post(cid:3)Issue(cid:3)Communication(cid:3)(cid:882)(cid:3)Certificate(cid:3)of(cid:3)Correction(cid:3)
`(cid:3)
`
`Page 4 of 544
`
`
`
`PATtEN.'i5*:At=PL|CkIl0N
`mmmummmmummm
`nanazuau
`
`_l
`
`__
`
`.
`
`CONTENTS
`_ Date race-lured
`(Incl. C. of M.)
`or
`Date Hailed
`
`,
`
`,
`If
`
`W;Ls
`
`'<
`
`_
`
`- -
`-
`
`Date received
`(Incl. C. of III.)
`or
`Date Mailed
`
`L
`t
`N
`
`.\
`
`
`
`72.
`
`__..TR,._._
`
`Page 5 of 544
`
`
`
`
`
`
`
`
`
`
`
` (RIGHT OUTSIDE]
`
`sEAncHEI 5%””%if
`
`L
`
`NOTES
`
`(INCLUDING SEARCH STRATEGY)
`
`Page 6 of 544
`
`
`
`ISS7.
`
`*‘ SLIP STAPLE AREA (fbr édditional cross references)
`
`POSITION
`
`FEE DETERMINATION.
`O.l.P.E. cunssu-nan
`FOFIMALITY nswew
`
`INDEX OF CLAIMS
`
`Rejected
`Allowed
`— [Through numeral) Canceled
`Hestrlcted
`
`Non-elected
`Interference
`Appeal
`. . . Obie cted
`
`mC
`
` _m_E_a..o1..M
`
`B
`
`55
`
`m...
`
`E__.....IIIIII
`
`mC
`m
`
`
`Tirm...I
`in
`
`._%..N\NI»fl—u
`
`B|.....1.I.l‘l_-fll‘.I....I...l.I1.I
`......u1.u“““_.mm."..u:I..mvp.EII
`‘.___-=__.-EEEEE
`.
`
`_-=-
`
`—=
`
`IIIIIIIIIIIImIIIIIIIIIII
`IIIIIIIIIIIIIIIIIIII
`
`IIIIIIIIII
`
`HEM
`
`_-BE.¢
`
`—E__—EEEEEE,E
`fl
`
`7 of 544
`
`If more than 150 claims or 10 actions
`staple additional sheet here
`
`(LEFT INSIDE)
`
`Page 7 of 544
`
`
`
`
`
`
`
`
`
`
`
`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.
`
`Page 8 of 544
`
`
`
`United States Patent
`[191
`Curry et at.
`
`1111111111111111 �I IIIII 11111111111111111
`
`US006105013A
`6,105,013
`Potent Number:
`[111
`Aug. 15, 2000
`Date of Patent:
`(45]
`
`[54] METHO(), APPARATUS, SYSTEM AND
`OTIIER PUBl.JCATIONS
`
`Federal Information Processing Standards Publication,
`FIRMWARE FOR SECURE TRANSACI'IONS
`
`(FIPS PUB) 186, DigiJaJ Signatur Standard (DDS), Issued:
`Stephen M. Curry, Dallas; Donald W.
`[751 Inventors:
`May 19, 1994.
`Processing Standards Publication, Federal Information
`
`Loo mis, Coppell; Christopher W. Fox,
`
`
`(FJPS PUB) 190-1, Secun� Hash Standard, Issued: May 31,
`Dallas, aU of Tex.
`1994.
`[73] Assignee: Dalla9 Semiconductor Corporation,
`Microsoft O>rporation's Secure Transaction Technology,
`
`
`511' Wire Fonnats and Protoc version 0.902, Oct. 5, 1995.
`Dallas, Tex.
`Matonis, Jon W., Digital Cash and Monetary Freedom,
`http://www .info.i.soc.org/HMP!PAPER/136/htmVpa
`
`per.btml, as of Apr. 1995.
`MasterCard, Secure Electronic Paymenl Protocol, Draft
`
`
`Version 1.1, Sep. 29, 1995.
`
`
`Ma�1erCard, Secure Electronic Payment Protocol, Part 2;
`Related U.S. Application Data
`
`Functional SpecifiCations, Draft Version 1.1, Sep. 29, 1995.
`
`No. 08/594,983, Continuation of application Jan. 31, 19%,
`
`MasterCard, Secure Electronic Payment Proloco� Part 3;
`[631
`
`
`Payment
`
`System Specification, Draft Version 1.1, Sep. 29,
`Put No. 5,748,740.
`application No. 60/004,510, Sep.
`1995.
`(60]
`79, 1995.
`Provisional
`MasterCard,
`Secure Electronic Paymenl Prolocol, Part 4;
`
`Tnt. Cl.' ................................. H04L 9!00; H04L
`9/30
`[51]
`
`Certificate Management Specification, Draft Version 1.1,
`U.S. Cl. .............................. 705/65; 2351379; 380!30;
`[52)
`Sep. 29, 1995.
`
`
`1osns; 7131156; 713!173; 713/174
`SGS-Thorru;on Microelectronics, CMOS Crypto-Computer
`
`Field of Search ............................... 380/4, 9, 21, 23,
`
`Family, Advance Datasheet ST16xF74, Oct., 1993.
`(58)
`CMOS MCU Based Safe·
`SGS-Thomsoo Microelectronics,
`380/24, 25, 30, 46, 49, 50; 2351379, 380;
`guarded Smarrcarri /C with Modular Arilmetic Proc essor,
`705/64, 65, 66, 67, 68, 69, 75; 713/155,
`Advanced Data Sheet, ST16CF54, Scp. 1994.
`156, 157, 158, 168, 172, 173, 174
`
`Micro Card, CP8® Products Crypto Card, Jan. 25, 1995.
`Wayner, Peter, Digital Ca$h, Commerce on the Net, Cbpt. 3
`& 10 and Appendix B, Jun. 1995.
`
`Schneier, Bruce, Applied Cryptography, Cbpl. 19, pp.
`461-482, 1996.
`r--Be cnacr E. Gregory
`Primary Examine
`Agent, or Firm -J enkens & Gilchrist
`Attorney,
`ABSTRACf
`(57]
`
`The present invention relates to an electronic module used
`
`
`for secure transactions. More specifically, the electtonic
`
`module is capable of passing information back and forth
`equipment via a se,cure, between a service provider's
`
`1mcrypted techniqu e so that money and other valuable
`data
`The module is capable
`
`can be securely passed electronically.
`of being programmed, keeping track of realtime, recording
`for later R:view, aod creating encryption
`transaction.s
`
`key
`pairs.
`
`(21] Appl. No.: 09/041,190
`[22] Filed: Mar. 10, 1998
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,73t,842 3/1988 Smith
`380124
`
`5,577,120 11/1996 Peozi .. ..................................... 380/23
`5,748,740 5/1998 Curry et al . .............................. 380125
`
`........................................
`
`FOREIGN PATENT DOCUMENTS
`
`0172b70A2 2/1986 European Pat. OfT . .
`0186981A2 7/1986 European Pat. Off . .
`0194839A2 9/1986 European Pat. Off ..
`12/1988 European Pat. Off ..
`0794248A1
`03371&SA2 10/1989 European Pat. Off ..
`045806A2 11/1991 European Pat. Off . .
`0624014A2 ll/t994 European
`Pol Off ..
`9/1995 Gem1any .
`4406602A1
`W093/0&S45 4/1993 WIPO.
`
`16 Claims, 8 Drawing Sheet�
`
`12
`
`16
`
`?4
`lO
`2l
`
`J2
`
`lUI<IOUEIONUoatRl /"''"
`I
`
`..
`
`16
`
`22
`20
`21
`
`34
`
`IIOilO.U
`
`Page 9 of 544
`
`
`
`U.S. Patent Aug. 15, 2000 Sheet 1
`of 8
`
`6,105,013
`
`12
`......
`...........
`
`1-
`
`14
`
`16
`
`22
`20
`24
`
`34
`
`CIRCUITRY
`
`I UNIQUE 10 NU�BER I
`'
`MICRO PROCESSOR 1 CLOCK�
`t 1 CLOCK r--1-
`-
`...........
`I.IICRO PROCESSOR � � RO� H __,
`18
`......
`- -
`I r - -
`I NVRAM
`r--.. '
`.....
`r-... OUTPUT BUFFER
`28
`r-.. r..... INPUT BUFFER
`.....
`I ENERGY h 1-
`30
`¥
`r--..
`.....
`26
`......
`r-... r..... ONE-WIRE
`32
`
`INTERFACE
`
`I.IOOULE
`
`FIG. 1
`
`CREATE TRANSACTION GROUP
`
`Sl
`
`GENERATE KEYS AND LOAD 52
`
`INTO A TRANSACTION GROUP
`
`S3
`PRNATIZE DECRYPTION EXPONEN
`
`
`CREATE TRANSACTION SCRIPT 54
`
`LOCK TRANSACTION
`
`GROUP ss
`FIG. 2
`
`Page 10 of 544
`
`
`
`U.S. Patent Aug. 15, 2000
`
`Sheet 2 or 8
`
`6,105,013
`
`FIG. 3
`
`USER RECEWES SECURE E-M�L Al
`AND ENCRYPTED IDEA KEY
`
`MODULE RECE�S ENCRYPTED
`IDEA KEY IN AN INPUT
`OBJECT OF A TRANSACTION GROUP
`
`TRANSACTION SCRIPT DECRYPTS A3
`THE IDEA KEY
`
`DECRYPTED IDEA KEY IS PLACED A4
`IN AN OUTPUT DATA OBJECT
`
`IDEA KEY IS USED TO DECRYPT A5
`THE SECURE E-�L
`
`CREATE TRANSACTION GROUP FOR 81
`
`PERFORMING ELECTRONIC
`NOTARY FUNCTIONS
`
`CREATE OBJECT($) FOR
`
`RSA ENCRYPTION KEYS
`
`82
`
`OBJECT (COUNTER)
`
`CREATE OBLECT FOR TIMEKEEPING 83
`FIG. 4 CREATE TRANSACTION SEQUENCE 84
`CREATE A TRANSACTION SCRIPT THAT CREATES 85
`A CERTIFICATE
`
`BY COt.lBINING AN INPUT DATA
`OBJECT WlTH THE TRUE TIME, THE VALUE Of
`
`THE TRANSACTION COUNTER AND A UNIQUE
`
`NUMBER ASSOCIATED TO THE MODULE, THEN
`SIGNS THE CERTIFICATE
`
`PRIVATE OBJECTS
`
`
`
`LOCK TRANSACTION GROUP
`
`86
`
`87
`
`Page 11 of 544
`
`
`
`U.S. Patent Aug. 15, 2000 Sheet 3 of 8
`
`6,105,013
`
`C1
`
`MESSASGE IS PLACED IN AN
`INPUT DATA OBJECT
`•
`SIGNS THE COMBINATION
`
`C2
`
`TRANSACTION SCRIPT COMBINES
`MESSAGE WITH OTHER DATA AND
`WITH A
`PRIVATE KEY CREATING AN
`ENCRYPTED CERTIFICATE
`
`v- ,-
`
`�
`CAN BE READ AT A
`-
`THE CERTIFICATE
`LATER TIME BY DECRYPTING
`WITH THE PUBLIC KEY
`t
`,--
`DOCUMENT CAN BE
`FIG. 5
`PREPARE
`MODULE
`CREATE TRANSACTION GROUP
`
`COMPRISING: MONEY OBJECT
`
`TRANSACTION COUNT OBJECT
`PRIVATE KEY AND
`
`C3
`
`IT
`
`C4
`THE CERTIFICATE AND ORIGINAL
`
`
`
`STORED ELECTRONICALLY
`
`01
`
`PUBLIC KEY OBJECTS ETC.
`PRIVATIZE PRIVATE KEY RELATED OBJECT{S)
`
`02
`
`CREATE TRANSACTION SCRIPT TO
`
`
`PERFORM MONElARY TRANSACTION
`
`D3
`
`04
`
`05
`
`LOCK TRANSACTION GROUP
`
`PUBUSH PUBLIC KEY
`
`FIG. 6
`
`Page 12 of 544
`
`
`
`U.S. Patent Aug. 15, 2000 Sheet 4 of 8
`
`6,105,013
`
`BANK/.SERVICE PROVIDER
`
`
`E2
`
`E12
`
`USER WANTS TO MAKE __] READS MODULE'S
`US£B
`MERCHANT
`A PURCHASE --L ID NUMBER
`USING A MODULE �---,tr-----'
`E,J CREATES DATA PACKET
`y E3
`THAT INCLUDES A
`'RANDOM SALT' AND
`MODULE ID NUMBER
`t
`CREATES A SIGNED !---E4
`E
`MERCHANT CERTIFICAT
`
`BY ENCRYPTING DATA
`PACKET WITH
`
`MERCHANT'S PRIVATE KEY
`t
`ATIACHES PURCHASE !---E5
`SUBTRACT PURCHASE
`AMOUNT FROM
`PRICE TO MERCHANT'S
`-
`MONEY REGISTER
`SIGNED CERTIFICATE
`t
`E7
`t
`COMBINE TRANSACTION 1--EB
`SIGNED MODULE !---E9
`COUNT WITH MERCHANT'S
`SIGNED CERTIFICATE RECEIVED
`THEN ENCRYPT WITH r- USING SERVICE PROVIDER'S
`
`AND PURCHASE AMOUNT; CERTIFICATE AND DECRYPT
`. \.
`SERVICE PROVIDER'S PUBLIC KEY
`\
`t
`PRIVATE KEY THEREBY
`CREATING A SIGNED
`MODULE CERTIFICATE CONFIRM THAT: H RECEIVE t.lOOULE'S
`RECEIVE ITEM L IS CORRECT
`1) AMOUNT OF PURCHASE SIGNED CERTIFICATE
`t
`SERVICE PURCHASED 12) DATA IN MERCHANT'S
`,
`)
`DECRYPT MODULES
`
`CERTIFICATE IS THE
`ERVICE
`
`SAME AS ORIGINALLY SENT CERTIFICATE WITH S
`/ 1_..., PROVIDER'S PUBLIC KEY
`t
`E13
`DECRYPT MODULE'S
`
`CERTIFICATE WITH
`MERCHANT'S PUBLIC KEY
`t
`E14
`FIG. 7
`IF BOTH CERTIFICATES ARE
`
`OK THEN ADD PURCHASE
`. _,- AMOUNT TO MERCHANT'S
`E15--
`BANK BALANCE
`
`INCREMENT
`TRANSACTION COUNT
`
`E11
`
`E10
`
`Page 13 of 544
`
`
`
`U.S. Patent Aug. 15, 2000 Sheet 5 of 8
`
`6,105,013
`
`USER
`WANTS TO ADO AN
`AMOUNT
`Of CASH
`TO MODULE
`
`CREATE RANDOM
`
`SALT NUMBER
`
`PRO�DER
`BANK/SE�CE
`READ UOOULE 10
`F2
`NUMBER AND AMOUNT
`OF CASH REQUESTED
`
`REQUEST MODULE TO
`
`PRODUCE A RANDOM SALT
`
`Fl
`
`F3
`
`F5
`
`FIG. 8
`
`COMBINE SALT, ID NUMBER
`
`AND CASH AMOUNT AND
`F4
`WITH SERVICE
`ENCRYPT
`DECRYPT SIGNED SERVICE
`
`
`PRO�DER'S PRIVATE KEY,
`
`PROVIDER CERTIFICATE
`
`
`THEREBY CREATING A
`
`WITH SERVICE PRO�DER'S
`
`SIGNED SER�CE
`
`PUBLIC KEY AND CHECK
`
`PROVIDER CERTIFICATE
`THE 10 NUMBER AND
`RANDOM SALT NUMBER
`IF THE 10 NUMBER
`AND RANDOM SALT NUMBER
`
`IS UNCHANGED THEN ADD
`THE CASH AMOUNT TO THE
`MONEY REGISTER
`OF THE MODULE
`
`EXAMPLE OF
`
`
`TRANSFER FROM USER'S MODULE TO MERCHANT'S MODULE
`---
`MERCHANT
`/�
`USER/PAYER
`
`1. CREATE RANDOM SALT
`SALT AND
`RECEIVE
`/ Gl
`
`2. DETERMINE-AMOUNT OF
`
`REQUEST FOR MONEY
`MONEY TO BE
`
`SUBTRACT REQUESTED RECEIVED FROM PAYER
`G2 �
`MONEY AMOUNT FROM
`-�
`A MONEY REGISTER
`
`
`CREATE SIGNED PAYMENT RECEIVE SIGNED PAYMENT
`v G3
`CERTIFICATE
`BY COMBINING CERTIFICATE
`AND DECRYPT
`
`SALT WITH PAYMENT USING SERVICE PROVIDER'S
`
`AMOUNT THEN ENCRYPTING PUBLIC KEY
`WITH BANKER/SERVICE '
`
`
`PROVIDER'S ORIVATE KEY
`v G4
`�GAINST ORIGINALLY
`= MERCHANT CHECK DECRYPTED SALT
`
`SENT SALl
`PAYEE
`
`PAYER = USER
`IF THEY ARE THE
`
`SAME ADD PAYMENT AMOUNT
`TO MONEY REGISTER
`FIG. 9
`
`Page 14 of 544
`
`
`
`U.S. Patent Aug. 15, 2000
`
`Sheet 6 of 8
`
`6,105,013
`
`TRANSACTION OVER A NElWORK WITH A MODULE
`
`MERCHANT/PAYEE
`
`
`
`PROVIDER'S PUBLIC KEY
`
`Hl
`
`H3
`
`H4
`
`H5
`
`RECEIVE PAYER SALT AND
`CREATE RANDOM
`COUBINE WITH AMOUNT OF
`PAYER SALT
`MONEY TO BE RECEIVED, AND v
`H2
`+
`NCLUDE A PAYEE SALT, THEN
`ENCRYPT WITH SERVICE
`'""'\ RECEIVE FIRST DATA PACKET
`AND DECRYPT WITH SERVICE �REATE A FIRST DATA PACKET
`
`PROVIDER'S PRIVATE KEY TO
`J
`COMPARE DECRYPTED
`PAYER SALT WITH ORIGINAL
`PAYER SALT
`IF TMEY ARE THE SAME,
`""" ::sUBTRACT AMOUNT OF MONEY
`TO BE SENT FROM
`PAYER t.AONEY REGISTER
`t
`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
`
`AND DECRYPT WITH SERVICE
`PROVIDER'S PUBUC KEY
`
`H6
`
`t
`RECEIVE SECOND DATA PACKET v-
`+
`EXTRACT DECRY PTED PAYEE
`SALT AND COMPARE WITH
`PAYEE SALT PROVIDED EARLIER
`IF BOTH ARE THE SAME ADD �
`H7
`
`FIG. 10
`
`MONEY AMOUNT TO
`PAYEE MONEY REGISTER
`
`Page 15 of 544
`
`
`
`U.S. Patent
`
`Aug. 15, 2000
`
`Sheet 7 of 8
`
`6,105,013
`
`_
`
`10
`MODULE
`
`PIN
`MATCH
`
`r-
`
`READ/WRITE OBJECT COMMANDS
`LOCKED �.-Ao
`TRANSACTION
`GROUP 1-42
`4\ rlo�E�s(o)t
`H SCRIPTS �HPRIVATE (P) r !--42
`OBJECTS 4 LOCKED (L) t 1--42
`OBJECTS
`READ-ONLY
`OBJECT COMMAND
`
`READ/WRITE OBJECT COMt.tANDS
`LOCKED �40
`TRANSACTION
`GROUP
`4\ rl o�E��s (o) I
`IRE
`,...,... COMt.IAND r-f-
`DATA
`PIN
`"'""" INTER-
`H SCRIPTS �H PRIVATE (P) I
`TRANSPORT
`I.IATCH
`PRETER
`OBJECTS 4 LOCKED ( ) I
`LAYER
`L
`OBJECTS
`OBJECT COMMAND
`READ-ONLY
`OBJECT COMMANDS
`READ/WRITE
`,....40
`LOCKED
`TRANSACTION
`GROUP
`
`H\ rlo�E�s<o>l
`PIN
`t.IATCH
`
`�SCRIPTS �HI PRIVATE (P) I
`OBJECTS
`�'LOCKED
`(L) I
`OBJECTS
`READ-ONLY OBJECT COMMAND
`
`'---
`�
`
`.____
`
`-
`
`.___
`
`1-W 1/0 - r-
`
`FIG. 11
`
`Page 16 of 544
`
`
`
`U.S. Patent Aug. 15, 2000 Sheet 8 or 8
`
`6,105,013
`
`1/0 DATA BUffERS
`
`SYSTEM DATA
`COMMON PIN, RANDOIA
`
`NUMBER REGISTER, ETC ...
`
`TRANSACTION GROUP
`GROUP NAME,
`PASSWORD AND ATTRIBUTES
`OBJECT
`
`OUTPUT DATA OBJECT ,, I
`OUTPUT DATA OBJECT #2
`1 ,..-42
`
`WORKING REGISTER
`L....--.---...J
`40 .............
`OBJECT 2 . . .
`GROUP 1
`TRANSACTION
`.............
`. . .
`
`TRANSACTION GROUP 2
`OBJECT N / 42
`
`40
`
`
`
`TRANSACTION GROUP N
`
`AUDIT TRAIL•
`
`CIRCUlAR BUFFER OF
`
`
`TRANSACTION RECORDS
`
`''THE AUDIT TRAJL DOES
`NOT EXIST UNTIL THE
`MICRO-IN-A-CANn.t
`
`HAS BEEN LOCKED I
`
`ONCE LOCKED ALL
`UNUSED RAM IS
`
`ALLOCATED FOR
`...._ ___ TH...:.E_A...:.UD:......
`IT_T.,...RA.,...IL:...__-J
`FIG. 12
`
`Page 17 of 544
`
`
`
`2
`
`1
`
`6,105,013
`METHOD, APPARATUS, SYSTEM AND
`BRIEF DESCRIP1lON OF TilE DRAWINGS
`of tbe method and appa
`A more complete undcrsraoding
`FlRMWARF. FOR SECURF. TRANSACTIONS
`Detailed Oescriplion when taken in oonjuoction
`
`ratus of the present invention may be ba.d by reference to the
`of application Ser. No.
`
`RELATED APPLJCATIONS
`witb the occompanyiog
`following
`08/S94,983 6ledJao. 31, 1996, now U.S. Pat. No. 5,748,740,
`
`This application is a continuation
`Drawings wherein;
`No.
`aod claims
`
`FIG. 1 is a block diagram of an embodiment of a module;
`FIG. 2 is an exemplary
`process for creating
`the benefit of U.S. ProvisioMl Application
`a transaction
`601004 ,510, filed Sep. 29, 1995.
`of common assit,\llte contain
`group;
`by ref· 10 related subject matter and are hereby incorporated
`The foUowing applicatioos
`IDCSSSIJ!ej
`FIG. 3 is an exemplary technique for receiving an E·mail
`
`
`ere nee:
`FlO. 4 is an exemplary tecbnique for preparing
`filed Jan. 31, 1996, entitled
`for ootary functions;
`a module
`METHOD, APPARATUS, AND
`Ser. No.: 08/595,014,
`SYSTEM FOR TRANS·
`
`FIG. 5 is an exemplary technique for usiog the module as
`JS a notary;
`FERRlNG UNITS OF VALUE, now U.S. Pat. No. 5,805,
`702;
`FIG. 6 is an exemplary technique
`a module
`for preparing
`
`Ser. No.: 08/594,975, filed Jan. 31, 1996, entitled
`to perform a money transaction;
`BETWEEN A SEC URE MODULE AND ANOTHER
`TRANSFER OF VALUABLE INFORMATION
`20 transac tion using a module;
`
`FIG. 7 is an exemplary technique for performing a money
`MODULE, now pendiog.
`
`FIG. 8 is an exemplary technique for performing a money
`BACKGROUND OF TilE INVENTION
`
`tranuction using a module;
`J. Technical Field of the Invention
`
`
`
`is ao exemplary technique for performing a money
`relates to 1 metbod, apparatus and
`FIG. 9
`
`transaction u.�ing a module;
`!'I G. 10 is an exemplary technique for passing dau over
`Jirmwar� used for l;CCUre lrln�c
`lbe present invention
`tioos. lo par1icular, in an 25
`a network;
`organization of tbc software aod
`ured to provide at least secure data transfers,
`electromc module based system, the module can be coofig·
`FIG. 11 is an exemplary
`
`digital signa
`tures or to authorize
`firmware within a module; and
`monetary trans.actions.
`2. Description
`30
`firmwa"" within a module.
`
`FlO. 12 is an exemplary configuration of software and
`of Related Art
`Prese_ntly, c�it cards that bave
`ated wllb tbcm, are a preferred
`a magnetic strip associ
`medium in tbe market place. A card user can take tbe card
`monetary trao.saction
`DETAILED DllSCRIPTI
`ON OF A PRESEN11.Y
`PREFERRED EXEMPLARY EMBODIMENT
`
`to an automatic easb machine, a local store or a bank and
`In many instances the card is 35
`FlO. 1 depicts a block diagram of an exemplary module
`make monetary transactions.
`10 that incorporates ao exemplary embodiment of the
`The magnetic strip card is u.o:ed 10 help identify the card and
`
`
`used via a telephone interface to make monetary exchanges.
`circuit. It is uoderstood that the module 10 could
`
`
`present i.ovention. Tbe module circuitry can be a single
`
`user of the card. Tbe card provides a relatively low level of
`also be on multiple integrated or dcscrete clement circuits
`integralcd
`security for the transfer.
`Regardless, tbe card enables a card
`
`bolder 10 buy products, pay deb!& and make monetary 40
`Ces&nr 12, a real time clock 14, control circuitry .16, a math
`
`combined together. Tbe module 10 comprises a micropro·
`
`exchanges between separate bank accouniS.
`
`
`coprocessor 18, memory circuitry 20, input/output circuitry
`lmprovc!D<OniS bavc been made to the magnetic strip card.
`26, and an energy circuit.
`magnetic strips. In general the microcilcu
`There bave been cards created with microcircuits instead of
`1be module 10 could be made smaU enough to be
`of objects including. but not
`
`strip, is used to enable a card-reader to perfonn a rransaction. 45
`it,like a magnetic
`limited to a token, a card, a ring, a computer, a wallet, a key
`incorporated
`into a variety
`any object I bat can
`
`fob, badge, jewelry, Slamp, or practicaUy
`SUMMARY OF 111E INVENTION
`
`be grasped and/or articulated by a user of tbe object.
`
`
`The present invention is an apparatus, system and method
`so microproocs.'lDr, but could be 16, 32. 64 or any operable
`
`
`The microprocessor 12 is preferably an S·bit
`
`
`for communicating encrypted information between a pref·
`number of bits. The clock 14 provide$ timing for the: module
`The in,•ention comprises a module, that bL< a unique
`
`erably portable module aod a service provider's equipmeo�
`There can also be separate clock circuitry
`that •� capable of creatiog a random number,
`circuitry.
`14 that
`identification,
`provides a continuously running realtime clock.
`Co� example, a SALT, and pa.'l.<ing the random number, along
`
`wttb, for example, a request to exchange money, to a service
`handle very large oumbers. In par1icular, tbe coprocc&'!Or
`
`Tbe math coprocessor circuitry 18 is designed and used to
`prov�er's equipment Tbe service provider's equipment ss
`will handle the complex mathematics of RSAcocryption and
`may m return eocrypt the random number with a private
`public key {depending on the type nfuansa ction) elong with
`or
`decryption.
`The memory circuitry 20 may contain both rcad-ooly·
`
`
`other information aod pass the eocryptcd info�ation back
`
`10 the module as a signed certificate. 1lle module, upon
`one of ordinary skill in the: art would under·
`
`memory and non-volatile random-access-memory.
`60 Furthermore,
`
`rccciviog tho signed c.;rtificatc, will
`on the type of
`memory, EPROM, SRAM aod a variety
`docrypt the certificate
`could be used 10 create an
`stand that volatile
`of
`tramactioo) and compare the decrypted
`with a public or private key (depeoding
`original random niUDber. Furthermore, if the numbetli arc the
`other types of memory circuitry
`number with the
`
`equivalent device.
`same tbcn IlK transaction that was requested may be deemed
`secure and thereby proceeds. The module is capable of time
`
`Control circuitry 16 provides timing, latebiog and various
`stamping and storing in memory information about the
`
`6S necessary control functions !or the entire circuit.
`An inpuVoutput
`
`
`circuit 26 enables bidirectional commu
`with the module 10. The iopuVoutput
`
`transaction for later review.
`nication
`
`circuitry 26
`
`Page 18 of 544
`
`
`
`prefenbly
`
`input buffer. For commwtication
`
`3
`
`
`
`output circuitry 26.
`
`Service Providers
`bus, one·
`number aod complexity
`transaction group 40. Example$ of
`
`that can be defined within a ttansactioo group 40 are tbe
`the
`following:
`
`RSAModi>M
`RSA E:lpooc.lt
`1butd.OO Script
`Tnu•csklo Couou:r
`Money RcJilttr
`DeiiNdor
`
`Clocl O«oct Raado .. SALT
`Coollp•tlo• o. ..
`lnpUI Dolo
`Outpul o. ..
`
`circuitry in the module 10. The energy circuit
`
`capacitor,
`or any other equivalent
`energy producing circuit or means.
`The firmware architect
`ure of a prefem:d embodiment
`module and a series of sample applica
`
`[earure set of
`
`
`
`
`
`for
`
`intended to be used first by
`
`examples
`the module 10 and to explain
`otrers. These applications
`tbe capabilities
`Within each transaction group 40 tbe module 10 will
`
`
`of tbe invention, but instead bring to light a sampling of its
`
`initially aa::ept certain commands which have an irreversible
`capabilities.
`
`effect. Once any of these irreversible commands are
`gtOup 40, they remain in effect
`
`6,105,013
`4
`comprises at least an output buffer 28 aod an
`via a one-wire
`vices in tbc same module 10. The number of independent
`that can be supported depends on tbe
`wire interface circuitry 32 can be included with the input/
`of tbe objects 42 defined in each
`some of the objects 42
`All ener&Y circu it 34 may be occessuy to maintain
`memory circuitry 20 and/or aid in powering the other
`34 could
`consist of a batlcry,
`RIC circuit, pbotovoltaie cell,
`of a 10
`secure transaction
`tions using tbe module 10 will now be di'ICOSSC d. The.�
`are intended to illu.� rate a preferred
`
`the services that the module
`IS
`by no means limit
`executed in a transaction
`20 until the end of the module's
`useful life or until tbe lr811S·
`I. OVERVIEW OP Till! PREFERRED MODULE
`AND ITS liiRMWARE DESIGN
`action group 40, to wbicb it applies, is deleted from the
`
`
`effect untillbe cod o£ the module's life
`
`The module 10 preferably contains a general-purpose,
`
`
`
`module 10. In addition, there are certain commands which
`
`8051-compatiblc micro controller 12 or a reasonably similar
`
`
`for large integers 25
`have an irrever:sil,le
`clock 14, a high
`
`
`product, a continuously ruo.ning real·time
`(math coprocesso r) 18, input and output
`or until a master erase command is issued to erase !he entire
`
`
`cussed funbcr below.
`
`
`spec:<� modular exponentiation accelerator
`
`contents of the module 10. The.5C commands will be dis
`buffers 28, 30 with
`Kbytes of ROM memory 22 with pre programmed
`
`These commands are essential to give
`data, 32
`a one-wire interface 32 for sending and receiving
`e RAM) 24 for storage of
`the Service Provider the necessary control over the opera·
`some of the irreversible
`oommands are:
`firmware,
`
`of lions that can be performed by tbe End User. Examples
`
`16 that enables the micro 30
`8 Kbytes of NVRAM (non-volatil
`
`critical data, and control circuitry
`
`
`
`controller 12 to be powered up to interpret and act on the
`Loci: Object
`l'rivolizoObj«t
`data placed in an input cirocuitry 26. The module 10 draws
`loct M�I•A-O.t,...
`12, clock 14, memory 20, buffers 28, 30, one-wire
`Loclt 'rn.ocsioo Oroop
`
`it$ operating power from the one-wire line. The micro
`
`lerator 18, and 35 -------------------
`controller
`Jfi are preferably
`ceotcrs on its abiliry to
`Since much of the module's
`front-end 32, moc.lular exponentiation aa::e
`
`
`in a stainless steel microcao using
`control circuitry
`integrated on a single
`utility
`
`silicon cbip and packaged
`
`keep a sccn:t, lbe Privatiu comm�d is a very imponant
`
`techniques which make it virlllally impossible to
`packaging
`Once the module 10, u a wbolc, is locked, the remaining
`
`irreversible command.
`for u.� 40
`
`probe tbe data in the NVRAM 24 without destroying the
`NVRAM memory 24 is allocated for 1 circular buJrer
`sucb as tbose described below. One
`
`data. Initially, most of the NVRAM 24 is available
`
`an audit trail of previous tra.usactioos. Each of tbe
`slciU will understand that there are many com·
`to $Upport applications
`balding
`of ordia.ry
`memory can be used, or an interface
`transactioos
`ate ideot.iJicd by the number of the transaction
`
`
`parable variations
`of the module design. For example,
`could be used. The silicon cbip can be packaged in 45
`
`group, the number of the transaction script 40 within the
`volatile
`other than a
`card.�. rings etc.
`
`group, and the date/time stamp.
`specified
`one-wire
`44 in
`'lbe module 10 is preferably
`
`
`
`The fundamental concept implemented by the firmware is
`credit
`wbo loads the module 10 with data to
`scripts
`
`tbal tbe Service Provider can store transaction
`among objects that he wishes the End User 10 be able to
`
`
`a transaction group 40 to perform only those operations
`a Service Provider
`
`The Service Provider
`User who issues commauds to tbe module 10 to perform
`
`
`enable it to perform useful functions, and second by an End
`keys) that allow the module JO
`can also store and privatize
`so perfonn.
`
`RSAkey or keys (encryption
`operations
`for the benefit on behalf of the Service Provider
`
`
`thereby guaranteeing their authenticity.
`
`to "sign" traosactioos on behalf of the Service Provider,
`or the End User. For this reason, the module 10 offers
`
`By privatizing and/
`
`
`
`
`functions to support the Service Provider in setting up tbe
`offered by the 55
`
`or locking one or more objects 42 in tbe transaction group
`
`
`module for an intended application. It also offers functions
`
`to do on his behalf. The End User
`Scrvi<:<: Provider.
`
`
`40, the Service Provider maintains control over what the
`
`
`to allow tbc l!nd User to invoke the services
`scripts 44 and is therefore
`can reserve a block of NVRAM
`module 10 is allowed
`42 that can be performed
`cannot add new traMactinn
`Each Service Provider
`
`to FIGS. U and 12). A transaction
`
`
`limited l o the operations on objects
`memory to suppon its services by creating a uansaclioo
`
`
`with the transaction scripts 44 programmed
`is simply a set of objects 42 that arc defined by the Service 60
`by the Service
`group 40 (refer
`group 40
`
`These objects 42 inc lude both data objects
`Provider.
`This section presents a serie& of practica.l
`lime stamps, etc.) and transaction saipls 44 which specify
`the module 10, ranging from the simplest
`oomplex. Each of tbese applications
`
`creates his own transaction group 40, 6S
`to make it clear why tbe module 10 is tbe central
`
`Provider.
`
`(encryption
`
`keys, trausaction counts, money amounts. date/
`
`II. USAGE MODELS OF ·rnE MODULE
`
`
`bow to combine tbe data objects in useful ways. Eacb
`
`Service Provider
`detail
`which is independent of every other transaction group 40.
`
`
`
`enabling tecboolo gy for tbat application.
`
`
`
`Hcocc, multiple Service Providers can offer different ser·
`
`applications of
`
`to the most
`is described in eoough
`
`Page 19 of 544
`
`
`
`
`
`
`
`provider's computer for new ma.il. The ma.il R:$ides on the
`
`transaction
`loads it into three objects
`group 40 (ooe
`
`
`
`objects, E RSA modulus object, N, and two RSA exponent
`
`and D). He thea privatizes the decryption
`Finally,
`
`
`placed in the input data objc;ct, encrypt it with the modulus
`
`a
`
`transaction
`
`any additional
`
`retric;ve
`
`provides the password when it polls the provider's com·
`calls the transaction saipt
`puler.
`place the decrypted
`n:sult in the output data object A4. He
`It is Cro;qu�ntly
`
`
`IDEA key from the output data
`configuration
`then reads the decrypted
`mail £rom a different computer.
`distribution of the e-mail in plain t�xt form and the wcaknc..-.�
`impos.�ible for anyone, including
`as very
`of password prolcelion,
`mail without
`
`physical possession
`having
`iMecure.
`To oounter this pr