Message Authenticator Algorithm

The Message Authenticator Algorithm (MAA) was one of the first cryptographic functions for computing a message authentication code (MAC).

History
It was designed in 1983 by Donald Davies and David Clayden at the National Physical Laboratory (United Kingdom) 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 but continued to be used as a prominent case study for assessing various formal methods.

Formal specifications of the MAA
The MAA has been used as a prominent case study for assessing various formal methods.

In the early 1990s, 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 were manually derived from that latter specification: C, Miranda, and Modula-2.

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, implementations of the MAA in fifteen different languages have been generated automatically. In 2018, two new formal specifications of the MAA, in LOTOS and LNT, have been published.