An important class of cryptographic algorithms is Message Authentication Codes (MAC) algorithms. Such algorithms are designed to ensure message integrity and authentication of their source. To do this, the MAC produced by such an algorithm is added to the message – a binary set depending on the message and on the secret key. Algorithms for the development of MAC are devoted to a large number of different sources. Increasing demands on the throughput and security of communication systems and networks lead to the need to develop new cryptographic algorithms with high performance.

In this regard, the use of generalized cellular automata is of great interest. Crypto algorithms based on generalized cellular automata show very high performance in hardware implementation. A Message Authentication Codes (MAC) is a sequence of data of a fixed length, which is generated according to a certain rule from open data and a key, either before encrypting the message or in parallel with encryption.

The MAC are transmitted via the communication channel or to the computer memory after the encrypted data. The development of an imitation MAC provides protection against the imposition of false data, the probability of non-detection of which is dependent on the duration of the imitation. The received encrypted data is decrypted, and a new imitation insert is generated from the received data blocks, which is then compared with the imitation MAC received from the communication channel or from the computer memory. In the event of a mismatch between the insets, all decrypted data is considered false.

A hash function is a mathematical or other function that, for a string of arbitrary length, calculates some integer value or some other string of fixed length. The main purpose of the hash function is to calculate the characteristic feature of the inverse image, which can be considered as a value of the hash function. This value usually has a certain fixed size, for example, 64 or 128 bits. The hash code can be further analyzed to solve a problem. Thus, for example, hashing can be used to compare data: if two data arrays have different hash codes, the arrays are guaranteed to differ. If they are the same, the arrays are most likely the same.

In general, there is a lack of instances of unambiguous correspondence among the source data and the hash code, because the hash function number and values is always smaller than the data options of the input directory. Therefore, there are many input messages that give the same hash codes. The probability of collisions plays an important role in evaluating the quality of hash functions. It is important to note that it is highly difficult to determine the message M, because the latter does not possess a similar hash value as the first message.

Therefore, it challenging to define the pair mechanism of two random messages, which have the same x -function. A block cipher is a type of symmetric cipher that operates with groups of bits of a fixed-length — blocks whose characteristic size varies between 64–256 bits. If the source text or its remainder is smaller than the size of a block, it is supplemented before encryption. In fact, a block cipher is a substitution in the alphabet of blocks, which, as a result, can be mono- or polyalphabetic. Block cipher is an important component of many cryptographic protocols and is widely used to protect data transmitted over the network.