eCash

Submit your source code
of your solution. You must
do this homework
individually
.
[100 points]
This programming assignment is based on the protocol number 4 (Chapter 6.4 Digital Cash), described in Applied Cryptography, 2nd edition by Schneier; the protocol implements an electronic cash system, in which the digital cash cannot be copied and reused more than once and the privacy of the customers identity is guaranteed. Using your preferred programming language, you need to implement an e-cash system, which allows money transaction between three parties: Customer, Merchant, and Bank
.  The electronic cash
(e-cash) used during these transaction is a file which contains:

The amount of the transaction involved

An uniqueness string number

Identity strings that contain the identity of the customer (this information remains secret unless
the customer tries to use the e-cash illicitly more than once)

Banks signature
The services for each party are described as follows:
Customer

Generates N orders for each money order the customer wants to make and assigns a di