Implement Needham-Schroeder symmetric key protocol, both original version and fixed version using python.
The term Needham-Schroeder protocol will refer to one of the two communication protocols intended for use over an insecure network, both proposed by Roger Needham and Michael Schroeder.
These are:
- The Needham-Schroeder Symmetric Key Protocol is based on a symmetric encryption algorithm. It creates the basis for the Kerberos protocol. This protocol aims to establish a session key between two parties on a network, typically to protect further communication.
- The Needham-Schroeder Public-Key Protocol, based on public-key cryptography. This protocol is intended to provide mutual authentication between two parties communicating on a network, but in its proposed form is insecure.