Paper 2021/900

ANS-based Compression and Encryption with 128-bit Security

Seyit Camtepe, Jarek Duda, Arash Mahboubi, Pawel Morawiecki, Surya Nepal, Marcin Pawlowski, and Josef Pieprzyk


The bulk of Internet interactions is highly redundant and also security sensitive. To reduce communication bandwidth and provide a desired level of security, a data stream is first compressed to squeeze out redundant bits and then encrypted using authenticated encryption. This generic solution is very flexible and works well for any pair of (compression, encryption) algorithms. Its downside, however, is the fact that the two algorithms are designed independently. One would expect that designing a single algorithm that compresses and encrypts (called compcrypt) should produce benefits in terms of efficiency and security. The work investigates how to design a compcrypt algorithm using the ANS compression. First, we examine basic properties of ANS and show that a plain ANS with a hidden encoding table can be broken by statistical attacks. Next, we study ANS behaviour when its states are chosen at random. Our compcrypt algorithm is built using ANS with randomised state jumps and a sponge MonkeyDuplex encryption. Its security and efficiency are discussed. The design provides 128-bit security for both confidentiality and integrity/authentication. Our implementation experiments show that our compcrypt algorithm processes symbols with a rate up to 269 MB/s (with a slight loss of compression rate).

Available format(s)
Secret-key cryptography
Publication info
Preprint. MINOR revision.
EncryptionCompressionSponge Structure
Contact author(s)
josef pieprzyk @ gmail com
josef pieprzyk @ csiro au
2021-07-01: received
Short URL
Creative Commons Attribution


      author = {Seyit Camtepe and Jarek Duda and Arash Mahboubi and Pawel Morawiecki and Surya Nepal and Marcin Pawlowski and Josef Pieprzyk},
      title = {{ANS}-based Compression and Encryption with 128-bit Security},
      howpublished = {Cryptology ePrint Archive, Paper 2021/900},
      year = {2021},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.