A method for activating a device by authentication, comprising:
- modifying, by a server, a message digest method, by modifying an n-state switching function using p bitwise XOR functions with n=2p, and n an integer greater than 2,
- wherein the message digest method is selected from a group of message digest methods consisting of MD5, MD6, SHA-1, SHA-2, SHA-3, BLAKE, Blue Midnight Wish, GOST, Grostl, Haval, CubeHash, ECHO, Fugue, Grostl, Hamsi, JH, Keccak, LANE, Luffa, Polyl305, Shabal, SHAvite-3, RIPEMD, SIMD, VMAC, UMAC, Snefru, RADIOGATUN, Whirlpool, Skein, Matyas-Meyer-Oseas, Davies-Meyer, Miyaguchi-Preneel and Merkle-Damgard;
- generating, by the server, a plurality of hashing configurations from the modified message digest method;
- distributing, by the server, the plurality of hashing configurations to a first computing device and a second computing device;
- storing, by a processor of the first computing device, the plurality of hashing configurations on a memory of the first computing device;
- storing, by a processor of the second computing device, the plurality of hashing configurations on a memory of the second computing device;
- obtaining a message data, by the first computing device;
- retrieving, by the processor of the first computing device, and from the memory of the first computing device, a first hashing configuration from the plurality of hashing configurations;
- generating, by the processor of the first computing device, a first hash value from the message data, by executing the first hashing configuration on the message data;
- transmitting, by the first computing device, the message data and the first hash value to the second computing device, via a communication channel;
- receiving, by the second computing device, the message data and the first hash value;
- retrieving, by the processor of the second computing device, the first hashing configuration from the memory of the second computing device;
- generating, by the processor of the second computing device, a second hash value, by executing the first hashing configuration on the received message data;
- comparing, by the processor of the second computing device, the first hash value with the second hash value;
- activating the device, by the second computing device, based on the comparing;
- and
- upon activating the device,
- disabling, by the processor of the first computing device, access by the first computing device, to the first hashing configuration, and
- disabling, by the processor of the second computing device, access by the second computing device, to the first hashing configuration.