Merchant’s terminal. A merchant owns a terminal equipped with a memory and a
processor in order to run loyalty programs. A terminal may host several loyalty pro-
grams so that the merchant can choose, when a customer can benefit from an advantage
and which loyalty strategy is the best or the most relevant. Terminals are equipped
with some means to interact with the customers’ loyalty device, such as a smart card
reader, or NFC device. In the remainder, we also assume that terminals are able to
authenticate themselves with customer’s devices, using standard techniques such as a
PKI. Terminal authentication is required to control access to the memory of the loyalty
devices. The terminal’s memory stores, in a secure way (e.g. using a TPM) a set of tu-
ples P = {(M
1
, M
K
s
1
, M
K
p
1
, M
K
1
), · · · , (M
n
, M
K
s
n
, M
K
p
n
, M
K
n
)}, where M
i
is a
partnership identifier, M
K
s
i
is the partnership’s shared signature key, M
K
p
i
is the cor-
responding verification public key and M
K
i
is the partnership’s symmetric encryption
key. P contains at least one such triple, composed of merchant’s personal identifier and
keys. Creation of the shared keys can either be performed by a designated server or by
the participation of all the merchants [4].
Transaction records. A transaction record is a quadruple (M
i
, m, c, σ), where M
i
is
the partnership identity under which the transaction is made (chosen by the merchant),
m is the transaction encrypted with M
K
i
so that the merchant and his partners only
have access to the transactions made with the customer, not to other transactions, c is
the transaction encrypted with C
K
so that the loyalty device owner has access to all his
transactions and σ is the signature of the transaction produced by M
K
s
i
in order for
merchants to authenticate the transaction. This signature also provides non repudiation
and integrity of the transaction (non forgeability).
3.2 Procedures
In this section, we describe how a new transaction is stored in the loyalty card, how a
loyalty program is executed so that a customer obtains an advantage and how a customer
can check her transaction. For each procedure, we assume that the customer has to make
an action (such as entering a PIN code or pressing the keypad of the reader) before each
interaction with the merchant’s terminal. This is a way to “authenticate” the customer
and to prevent attacks such as denial of service.
Writing a new transaction. The recording protocol between the loyalty device and the
merchant’s terminal is sketched in Figure 1. When a customer makes a transaction T
with a merchant M
i
, the merchant’s terminal first requests the customer’s pseudonym
C
M
i
to the loyalty device by providing M
i
to it. If necessary, the loyalty device gener-
ates a new pseudonym and records it. Upon reception of C
M
i
, the terminal compiles the
new transaction t = (T , C
M
i
, M
i
, 0, · · · ), where “· · · ” denotes the additional transac-
tion attributes, such as the amount of the transaction and the goods identifiers. The
terminal then performs the following tasks:
1. Signs the transaction t using M
K
s
i
to obtain σ.
2. Encrypts the transaction t and the signature σ using the chosen M
K
i
to obtain m.
3. Authenticates himself with the loyalty card.