Digital Cash Protocols:
A Formal Presentation
Delwin F. Lee & Mohamed G.Gouda
The University of Texas at Austin
Presented by
Savitha Krishnamoorthy
CIS 788
The Ohio State University
Outline
Motivation
Contribution
Digital Cash Protocols
Specs of Millicent
Proof of Correctness
Specs of Micropayments
Proof of Correctness
Comments
Motivation
Increasing need for protocols
facilitating online transactions
No existing formal verification of
security of Digital Cash Protocols
Choice of protocols
• Both prominent, largely supported
• Techniques used can be applied to
other protocols
Contribution
No formal verification available for
any security protocol
Presents a formal technique of
proving correctness
Digital Cash Protocols
Tailored to small purchases in microcommerce applications
Need to prove security before
approval
Protocols verified
• Compaq’s Millicent
• IBM’s Micropayments
Concepts & Proof
Proof uses concepts of
• Closure
• Convergence
• Protection
Proves protocol security against
• Forgery
• Modification
• Replay
Abstract Protocol Notation
Each process defined by consts, variables,
parameters, and actions
Guard of action of Process P
• Boolean expression over constants and
vars of p
• A receive guard: rcv<message> from
process q
• Timeout guard (Boolean exp over consts
and vars of every process,contents of all
channels in the protocol
Definitions
State: Function of protocol- assigns
each variable a value from its
domain, to each channel a sequence
of messages
Transition: A pair(p,q) of states,
Guard is true at p, execution of
action when state=p -> state=q
Computation: Infinite sequence of
states (p.0,p.1,p.2,…) s.t. (p.i,p.i+1)
is a transition
Definitions Contd…
Safe state: occurs in any
computation starting from an initial
state of protocol
Error State: State reached when
adversary executes its action
Unsafe state: an error state or
occurs in a computation starting
from an error state
Secure Protocol
Satisfies:
• Closure: In every computation if first
state is safe, every state is safe
• Convergence:Protocol computation
whose first state is unsafe, has a safe
state
• Protection: In each transition whose
first state is unsafe, critical variables of
protocol do not change their value
Technique of Proof
Presentation of protocol in abstract
notation
Identification of Parties involved
Identification of actions executed at each
party
State transformations with every action
Adversary Actions
Convergence from fault span, Protection
To Prove
Convergence of protocol
Protection of protocol
Specs of Millicent
Parties: Customers, Vendors
Customer specific, vendor specific
scrip:
• Identity of customer
• Identity of vendor
• Value of scrip (dollars)
The Millicent Protocol
Value of scrip buy request, scrip
request
Message flow:
Fields of Scrip
Sequence number: detects scrip
replay
Vendor Stamp: detects scrip forgery
Signature: Scrip modification
MD(i|j|val[j]|seq[j]|stamp[j]|newval|sc[j])
Customer Actions
C.0:Send Request, with new scrip
value; Compute signature to be
included in the message
C.1: Receive and verify new scrip
C.2:Time out and retransmit
• If message was sent and channels are
empty
Vendor Actions
Receive request from customer
Compare seq no. to expected
seq no.
s or s-1 is s is the last scrip
s => new request; check
validity of stamp and signature
Reply with scrip message
Proof of Correctness
Safe States:
• S.0: c[i] sends request message
• S.1: v[j] receives request and sends back a
scrip, executing its only action
• S.2: c[i] receives the scrip and protocol
returns to state S.0
Fault Span:
• Message Forgery (F)
• Message Modification (M)
• Message replay (R)
State Transition Diagrams
Adversary Actions
Forgery:
• S.0->U.0: Adversary in collusion with
customer forges a false scrip: cannot
reproduce vendor stamp
• Vendor Returns to S.0
(This means a customer can send his scrip only)
• If valid c.0 is executed at U.0, vendor
returns to S.1
Adversary Actions Contd…
Modification
• C[i]’s request modified, S.1->U.2
• V[j]’s scrip modified, S.2->U.4
• Both fail due to signature (MD Hash)
can be verified by either receiver
• Message discarded, U2 or U4->U6
• C[i] times out, U6->S0
Adversary Actions Contd…
Replay
• Current request message replaced with
earlier request message, S.1->U.3
• Current scrip message replaced with
earlier scrip, S.2->U.5
• Presence of sequence numbers causes
message to be discarded, U.3 or U.5 ->
U.6
• C[i] times out U.6->S.0
Proof of Security
Convergence:
• Any computation with first state =
{U.0,U.1,U.2,U.3,U.4,U.5,U.6} has a
safe state S.0 or S.1
Proof of Security Contd…
Protection: No critical variable is
updated when the protocol starts in
an unsafe state
Critical variables:
• Customer: Seq, val, stamp
• Action updating critical variable: C.1
Scrip is verified before updating
Protection Contd…
Critical Variables for vendor: seq,
val, stamp
Updated by action v
If protocol starts in unsafe state
with rqst message channel
modified/replayed
V[j] invalidates message; leaves
critical variables unchanged
Micropayment
State Diagrams
Interaction b/w
customer and broker:
S.0: Initial State
S.0->S.1: c[i] sends
cert req to broker
S.1->S.2: Broker
action
S.2->S.0: c[i] receives
cert
Adversary Actions
Verification
Forgery
• S.0->U.0: Adversary creates its own
certificate
• Message discarded since broker’s
private key cannot be accessed
• U.0->U.1: c[i] requests at U.0
Verification
Message Modification
• All messages are integrated with
public/private key encryption
Message Replay
• Presence of time stamp
Comments
Recognizes need for only single scrip
for each vendor
Protocol never deals with combining
scrip
Compares two widely used protocols;
Micropayment more resource
intensive and less efficient
Comments
Does not mention key exchange in
millicent; required for signature
Fault Span can include Nonrepudiation
Thank You!
© Copyright 2025 Paperzz