Vectorised-Neural-key-exchange Implementation of a Tree parity machine for key exchange using Neural Networks. Followed by encryption of a message using HMAC