Paper 2020/412

Fixslicing: A New GIFT Representation

Alexandre Adomnicai, Zakaria Najm, and Thomas Peyrin


The GIFT family of lightweight block ciphers, published at CHES 2017, offers excellent hardware performance figures and has been used, in full or in part, in several candidates of the ongoing NIST lightweight cryptography competition. However, implementation of GIFT in software seems complex and not efficient due to the bit permutation composing its linear layer (a feature shared with PRESENT cipher). In this article, we exhibit a new non-trivial representation of the GIFT family of block ciphers over several rounds. This new representation, that we call fixslicing, allows extremely efficient software bitsliced implementations of GIFT, using only a few rotations, surprisingly placing GIFT as a very efficient candidate on micro-controllers. Our constant time implementations show that, on ARM Cortex-M3, 128-bit data can be ciphered with only about 800 cycles for GIFT-64 and about 1300 cycles for GIFT-128 (assuming pre-computed round keys). In particular, this is much faster than the impressive PRESENT implementation published at CHES 2017 that requires 2116 cycles in the same setting, or the current best AES constant time implementation reported that requires 1617 cycles. This work impacts GIFT, but also improves software implementations of all other cryptographic primitives directly based on it or strongly related to it.

Note: Resize additional illustrations in Appendix B

Available format(s)
Publication info
A minor revision of an IACR publication in TCHES 2020
GIFTbitslicingfixslicinglightweight encryption
Contact author(s)
alexandre adomnicai @ ntu edu sg
2020-10-08: last of 6 revisions
2020-04-13: received
See all versions
Short URL
Creative Commons Attribution


      author = {Alexandre Adomnicai and Zakaria Najm and Thomas Peyrin},
      title = {Fixslicing: A New GIFT Representation},
      howpublished = {Cryptology ePrint Archive, Paper 2020/412},
      year = {2020},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.