Message 2.1: C → M: {St(s)}
PubKM
, where
St(s) = (Resp, Sid, SigPG(Resp, Sid, Price, NC))
with Resp = Y ES. M decrypts it, checks PG’s sig-
nature and checks if it has already stored this digital
receipt. If all checks are successful, then M sends to
C the decryption key K of the product ordered in s.
Message 2.2: M → C: {Sid, K, SigM(Sid, K)}
PubKC
Upon receiving, C decrypts it, recovers the key K,
checks M’s signature, and uses K to obtain the digital
product P by decrypting {P}
K
from PCert.
Resolution 3 Sub-protocol. If C sends in message
2.1 the digital receipt for the payment of product or-
dered in s, but he does not receive message 2.2, or
receives an invalid decryption key, then an unfair case
appears: C sends the payment for product and it was
processed, but C did not receive the corresponding de-
cryption key for product’s decryption. In this case, a
timeout t3 is defined, in which C waits message 2.2
from M. If t3 expires and C does not receive mes-
sage 2.2 from M or receives an invalid decryption key,
then C initiates the Resolution 3 sub-protocol with
PG. The message 2.3 is build from PO, the state of
s, and the product’s certificate PCert, all of them en-
crypted with PubKPG.
Message 2.3: C→PG:{PO, St(s), PCert)}
PubKPG
,
with St(s) = (Resp, Sid, SigPG(Resp, Sid, Price, NC))
and Resp = Y ES. PG decrypts it and recovers PO,
St(s) and PCert. PG checks the signature of C from
PO, his signature from St(s), and if Sid and Price
from PO, respectively St(s) are the same. If these
checks are satisfied, then PG is ensured that the
digital receipt from St(s) corresponds to the product
ordered by C in PO. PG checks CA’s signature
from PCert, and if the product identifier Pid from
PCert is identical with the one from PO. Then, PG
has the guarantee that the digital receipt from St(s)
corresponds to the product (ordered in PO) that has
the digital certificate PCert. PG decrypts {K}
PubKPG
(from PCert) with his private key and recovers the
key K that will send to C in the message 2.4.
Message 2.4: PG → C:
{Sid, K, SigPG(Sid, K)}
PubKC
C decrypts it, recovers K and uses it to obtain P.
5 SECURITY ANALYSIS
In what follows, we will analyze the security require-
ments stated in section 3 for our MPPDP.
Effectiveness. If every party involved in MPPDP be-
haves according to the protocol’s steps, does not want
to prematurely terminate the protocol and there are no
network communication delays/errors, then MPPDP
assures that C receives the digital products from mer-
chants, and each merchant receives his payment from
C without TTP involvement.
Fairness. MPPDP consists of the Payment sub-
protocol followed by the Delivery sub-protocol. Fair
exchange of payments for digital products in com-
plex transactions in MPPDP is obtained from fair ex-
change of payments for digital receipts in complex
transactions in Payment and fair exchange of digital
receipts for decryption keys of digital products in De-
livery.
Payment uses SPayment. Fairness in SPayment is
obtained by a similarly analysis with the one from
(B
ˆ
ırjoveanu and B
ˆ
ırjoveanu, 2018) for fairness of
STP protocol.
To obtain fairness in Payment, two requirements
must be ensured in addition to fairness in SPayment.
First, for any optional transaction from the complex
transaction, C obtains exactly one digital receipt for
the payment of only one product, and corresponding
merchant obtains the payment for product, or none of
them obtains nothing. This requirement is satisfied in
Payment from the way in which the node state cor-
responding to ∨ operator is computed (Table 2). Sec-
ondly, for any aggregate transaction from the complex
transaction, C obtains the digital receipts for the pay-
ments of all products, and each merchant obtains the
payment for product, or none of them obtains nothing.
In Payment, the node state for a node corresponding
to the ∧ operator is computed as follows: if all sub-
transactions from all node states of all children of the
node ∧ have successfully finished SPayment, then the
node state of ∧ is the sequence of node states of its
children. Otherwise, an unfair scenario can occur for
C if the entire aggregate transaction is not successful,
but C has paid for certain products and he received
the digital receipts for these. To obtain fairness in
this case, the AggregateAbort sub-protocol is applied
to abort any subtransaction that successfully finished
SPayment and that belongs to the unsuccessful aggre-
gate transaction. So, fair exchange of payments for
digital receipts in Payment is provided.
If after Payment all subtransactions from Ns(t −
root) are aborted, then Delivery is not applied and
fairness in MPPDP is obtained from fairness of Pay-
ment: C does not obtain any digital receipt for pay-
ment and no merchant receives the payment. If after
Payment all subtransactions from Ns(t) successfully
completed SPayment, then for each of these subtrans-
actions the Delivery sub-protocol is executed. In De-
livery, the fairness for C is not insured only in one
case: in some subtransaction from Ns(t), C sends the
digital receipt for payment to M in message 2.1, but
he does not receive the corresponding decryption key
in message 2.2. In this case, C waits for the message
ICE-B 2019 - 16th International Conference on e-Business
170