Twofish Encryption in Microgaming Practice

There are a lot of encryption methods to be implemented in online products (like gambling games or software) and each of them has its pros and cons. Microgaming uses different options to build a strong and reliable security system that includes the most efficient encryption methods to protect sensitive information (financial data and personal info of casino customers) from being easily accessible by unauthorized parties.
twofish encryption for Microgaming
The Twofish is an effective method that works in Microgaming’s projects. The description of it is below.


When IT technologies started developing, the need for creating a standard for ciphering data has emerged. The National Bureau of Standards started worrying about this problem in 1972. And soon after such an algorithm as DES appeared, but then it became insecure due to the short key length. In 1997 it was replaced by AES that is still prevalent today (it fully complies with NIST requirements, but of course more advanced technologies has appeared nowadays).

Such method as Microgaming Twofish also meets all necessary conditions and remains secure and reliable. It supports 128-bit block, cross-platform usage, 128-256 key size and etc. So with this algorithm, you can encrypt large blocks of data using differently sized keys (that proves its flexibility and fast speed).

Design of Twofish

It was made in compliance with AES design requirements of NIST. These include:

• Cross-platform usage
• 128-256-bit chain length
• Symmetric block ciphering (128 bits)
• Flexibility (being able to support other key sizes)
• Supporting different functions (hash, MAC)
• Fast process of encrypting information
• Being easily implemented
• Efficiency on different microprocessor
• Being used as a stream cipher
• And etc.

Building Blocks

In next paragraphs, we will describe the building blocks of TF ciphering method. They are Feistel Network, Whitening, S-boxes, MDS Matrices, Key Schedule and Pseudo-Hadamard Transforms.
microgaming with twofish technology

Feistel Network

The FN is a special method for altering any function ƒ in the permutation. The TF has sixteen rounds of the transformation of the FN.


This is a substantial part of the TF security, as whitening is a sophisticated protection measure that implies XORing key arrays before the 1st stage and right after the last one. Such technique enhances the safety level by hiding the initial data on the 1st and last stages of altering ƒ function. So the XORed subkeys are only for securing the inputs, and they won’t appear in the encoding process again.


S-boxes is a standard operation for substituting data with other values. This is widely used in the majority of modern block ciphering methods. In TF there are 4 S-Boxes (all different, key-correlated, bijective, 8×8 bits).

MDS Matrices

It is also one of the components of TF encryption, which is calculated as a matrix using maximum distances (separable) from one element to another, that results in getting a vector a+b. The described encoding algorithm uses 4×4 MDS matrix.

Key Schedule

The key schedule helps to set the order for creating proper key rounds from array bits. The result is then used by cipher in the consecutive encryption processes.
Microgaming uses twofish

Pseudo-Hadamard Transforms

The PHT is a technique that is popular in a block cipher design. The main goal of it is to maintain cryptographic scattering (diffusion) by shuffling values.

How Algorithm Works for Microgaming Company

Microgaming is well-known in the online gambling industry as a company with strong and high-security standards that makes it so beloved by gamers. For maintaining the best security system the TF encoding algorithm is used. Each step of ciphering operation sets addition protection level of the info and in the end, there are no easy breaking keys that allow hacking the initial info. The encoded personal data of customers and transaction info (credit card numbers, bank accounts and etc.) is under protection from common attacks and shows strong resistance to unknown threads.