Lightweight Cryptography Primitives
 All Data Structures Files Functions Variables Typedefs Macros Pages
Macros
internal-gift128-config.h File Reference

Configures the variant of GIFT-128 to use. More...

Go to the source code of this file.

Macros

#define GIFT128_VARIANT_FULL   0
 Select the full variant of GIFT-128. More...
 
#define GIFT128_VARIANT_SMALL   1
 Select the small variant of GIFT-128. More...
 
#define GIFT128_VARIANT_TINY   2
 Select the tiny variant of GIFT-128. More...
 
#define GIFT128_VARIANT   GIFT128_VARIANT_FULL
 Selects the default variant of GIFT-128 to use on this platform.
 
#define GIFT128_VARIANT_ASM   0
 Defined to 1 if the GIFT-128 implementation has been replaced with an assembly code version.
 

Detailed Description

Configures the variant of GIFT-128 to use.

Macro Definition Documentation

#define GIFT128_VARIANT_FULL   0

Select the full variant of GIFT-128.

The full variant requires 320 bytes for the key schedule and uses the fixslicing method to implement encryption and decryption.

#define GIFT128_VARIANT_SMALL   1

Select the small variant of GIFT-128.

The small variant requires 80 bytes for the key schedule. The rest of the key schedule is expanded on the fly during encryption.

The fixslicing method is used to implement encryption and the slower bitslicing method is used to implement decryption. The small variant is suitable when memory is at a premium, decryption is not needed, but encryption performance is still important.

#define GIFT128_VARIANT_TINY   2

Select the tiny variant of GIFT-128.

The tiny variant requires 16 bytes for the key schedule and uses the bitslicing method to implement encryption and decryption. It is suitable for use when memory is very tight and performance is not critical.