International Association for Cryptologic Research

International Association
for Cryptologic Research

Transactions on Symmetric Cryptology, Volume 2026

Differential-Linear Cryptanalysis and Cube Attacks on ChiLow


README

      # Cryptanalysis-ChiLow
This is the repository for the paper "Differential-Linear Cryptanalysis and Cube Attacks on ChiLow". This repository contains three folders, each corresponding to one of the three results (three chapters) in the paper.

- Differential and Linear Trails
  - diff_trail_search.cpp: The C++ code for searching the differential trails, which requires the use of Gurobi.    
  - linear_trail_search.cpp: The C++ code for searching the linear trails, which requires the use of Gurobi.
  - differential trails.txt: We have listed the good differential trails that we have found.
  - linear trails.txt: We have listed the good linear trails that we have found.

- Differential-Linear Distinguishers
  - calculate_correlation.cpp: The C++ code is used to calculate the correlation of a given differential-linear pair. The use of OpenMP enables the program to be parallelized.
  - Distinguishers D32.txt: We have listed the good distinguishers for D32.
  - Distinguishers D40.txt: We have listed the good distinguishers for D40.

The search for the entire distinguisher is divided into three parts: the differential trail, the middle connection part, and the linear trail. 
The search for the differential trail and linear trail can be accomplished by diff_trail_search.cpp and linear_trail_search.cpp respectively. 
For the search of the intermediate part, it actually involves calculating the correlation of a differential linear pair, which can be done through calculate_correlation.cpp.

- Cube Attacks
  - Statistics_K (calculate ANF).cpp: The C++ code is used to calculate the ANF of Chilow. The most direct function is to count the key variables that multiply with cube variables after one round.