The transaction procedure is as follows: When a customer wants to make a
transaction, she establishes a connection to the merchant by invoking the
client software. This software asks the customer to type the secret p,
and establishes a connection
to the merchant. Then the merchant generates
a transaction identifier t and sends it back to the customer.
This value is a nonce for preventing from replay attacks, and it consists of
transaction time, date, and a serial number. After reading the random number
from the diskette
, the software calculates
,
and sends
to the merchant.
It should be guaranteed that the client program does not send
the customer secret p to the merchant.
The merchant looks up his database with searching key C, and
checks validity of for customer authentication.
If it is valid, the merchant calculates
,
and sends it to the customer with an acknowledgement.
After accepting the acknowledgement, the customer checks the hash value with
for merchant authentication.
When the customer makes an order, the merchant requests her to pay, and sends
a payment serial number y and payment amount u.
The customer generates a nonce , calculates
,
and confirms payment to the merchant by sending
.
The merchant asks the bank B to clear the amount, by
sending
.
If
is correct, the bank transfers
the money to the merchant with an acknowledgement
including
.
The value
is used by the merchant to generate an acknowledgement
ticket for the customer.
The bank has to store
's that it has received for a pre-defined period
in order to detect replays. In current credit card systems, the merchant must request that
the bank clear transactions within a specified period from the transaction date -
such as 21 days in UEPS/VISA COPAC [And92] -
otherwise payment will not be made.
The storage of
does not require much resource.
After receiving the acknowledgement from the bank, the merchant
calculates
and sends this value as an
acknowledgement to the customer.
The customer checks this value, which can be used as a proof of the purchase order
and of a proof of payment in case of dispute.
We may consider a false merchant who wants to cause problems for
the real merchant by taking orders and not delivering.
Since contains
,
he cannot gain monetarily.
Furthermore, he has to send
containing
back to the customer,
so that the customer can check the eligibility of the merchant.
Such a false merchant cannot step into the transaction.