1. A method of securing communications between a first device and a second device, wherein the method comprises: sending, from the first device to the second device, a first set of security vectors and a first message authentication code (MAC) to the second device to provide, on the second device, a stored first set of security vectors and a stored first MAC, wherein the first set of ecurity vectors and the first MAC are unique to the first device; generating, by the first device, a first transformation matrix from the first set of security vectors; generating, by the first device, a first derivative transformation matrix from the first transformation matrix using an initialization program; encrypting, by the first device, data and the first MAC using the first derivative transformation matrix to provide encrypted data and an encrypted first MAC; sending, from the first device to the second device, the encrypted data and the encrypted first MAC; generating, by the second device, a second transformation matrix from the stored first set of security vectors; generating, by the second device, a second derivative transformation matrix from the second transformation using the initialization program; decrypting, by the second device, the encrypted data and the encrypted first MAC using the second derivative transformation matrix to provide decrypted data and a decrypted first MAC; comparing the decrypted first MAC to the stored first MAC; and releasing the decrypted data if the decrypted first MAC is equivalent to the stored first MAC.