Message Authenticator Algorithm


The Message Authenticator Algorithm was one of the first cryptographic functions for computing a Message Authentication Code. It was designed in 1983 by Donald Davies and David Clayden at the National Physical Laboratory in response to a request of the UK Bankers Automated Clearing Services. The MAA was one of the first Message Authentication Code algorithms to gain widespread acceptance.

Development and standardization

The original specification of the MAA was given in a combination of natural language and tables, complemented by two implementations in C and BASIC programming languages.
The MAA was adopted by ISO in 1987 and became part of international standards ISO 8730 and ISO 8731-2 intended to secure the authenticity and integrity of banking transactions.

Attacks

Later, cryptanalysis of MAA revealed various weaknesses, including feasible brute-force attacks, existence of collision clusters, and key-recovery techniques. For this reason, MAA was withdrawn from ISO standards in 2002.

Formal specifications of the MAA

The MAA has been used as a prominent case study for assessing various formal methods.
In the early 90s, the NPL developed three formal specifications of the MAA: one in Z, one in LOTOS, and one in VDM. The VDM specification became part of the 1992 revision of the International Standard 8731-2, and three implementations in C, Miranda, and Modula-2 were manually derived from that latter specification.
Other formal models of the MAA have been developed. In 2017, a complete formal specification of the MAA as a large term rewriting system was published; From this specification, have been generated automatically.
In 2018, two new formal specifications of the MAA, in LOTOS and LNT, have been published.