/Digital-Cash

Digital cash transaction system - centralized banking system with anonymity in payments, using blind signature, secret splitting and commitment protocol

Primary LanguagePython

Digital-Cash

Digital Cash Implementation Authors - Rathna Ramesh

Submitted for class project, Network security, SJSU Instructed by Dr. Gokay Saldamli

Language: Python2.7 (3.x compatible with minor changes)

Dependencies: BitVector, random, pycrypto, socket, hashlib

Protocols implemented: Blind signature, Secret Spliting, commitment protocol (using keyed hash - hmac)

The BankServer.py, CustomerModule.py and MerchantServer.py modules are run. Can be run in different machines by replacing the localhost addresses stored in the code to the IP of the systems they are run in.

The UnusedMO.txt file holds the digital cash singed by the bank to be spent. The amount is displayed before the '---' string. The topmost MO is sent to the merchant always.

The UsedMO.txt file holds the digital cash already sent out the merchant.(To check double spending detection, place one of the digital cash from this folder as the top element of the UnusedMO.txt and send the MO over. The transaction will not pass. The bank would raise 'MO already spent' message)