$$ \gdef\block#1#2#3#4#5{ \begin{aligned} &\texttt{#1 } #4 \texttt{ #2} \\ &\enspace \left#3 \enspace \begin{aligned} #5 \end{aligned} \right. \end{aligned} } \gdef\if#1#2{\block{si}{alors}{|}{#1}{#2}} \gdef\eif#1#2{\block{si}{alors}{\lfloor}{#1}{#2}} \gdef\elif#1#2{\block{sinon si}{alors}{|}{#1}{#2}} \gdef\eelif#1#2{\block{sinon si}{alors}{\lfloor}{#1}{#2}} \gdef\else#1{\block{sinon}{}{\lfloor}{}{#1}} \gdef\for#1#2{\block{pour}{faire}{\lfloor}{#1}{#2}} \gdef\foreach#1#2{\block{pour tout}{faire}{\lfloor}{#1}{#2}} $$

Improving scalability and reusability of differential cryptanalysis models using constraint programming

Manuscript Cite
AES
Constraint Programming
Cryptanalysis
Differential
Feistel
Related-Key
SPN
WARP

Abstract

English

In this thesis, we are interested in the use of constraint programming (CP) for solving differential cryptanalysis problems. In particular, we are interested in differential (related or single key) characteristic search problems for the symmetric encryption algorithms Rijndael, AES and Midori. We have also modelled boomerang attacks for Rijndael and generalized this method to Feistel schemes. This new modelling has been tested on WARP, Twine and LBlock-s encryption. To solve these different problems, we have proposed new techniques combining SAT and CP solvers. We have also introduced a new global constraint to more efficiently propagate a set of XOR constraints when searching for truncated differential characteristics. These new models have allowed us to improve the performance of existing solutions and to discover new distinguishers for WARP (23 rounds), Twine (15 and 16 rounds) and LBlock-s (16 rounds). We also found new attacks on Rijndael (9 rounds with the 128-160 version, 12 rounds with the 128-224 and 160-256 versions) and on WARP (26 rounds).

Français

Dans cette thèse, nous nous intéressons à l’utilisation de la programmation par contraintes (CP) pour la résolution de problèmes de cryptanalyse différentielle. Nous nous intéressons plus particulièrement aux problèmes de recherche de caractéristiques différentielles (à clés liées ou non) pour les algorithmes de chiffrement symétriques Rijndael, AES et Midori. Nous avons également modélisé des attaques boomerangs pour Rijndael et généralisé cette méthode aux schémas Feistel. Cette nouvelle modélisation a été expérimentée sur les chiffrements WARP, Twine et LBlock-s. Pour résoudre ces différents problèmes, nous avons proposé de nouvelles techniques combinant des solveurs SAT et CP. Nous avons également introduit une nouvelle contrainte globale permettant de propager plus efficacement un ensemble de contraintes XOR lors de la recherche de caractéristiques différentielles tronquées. Ces nouveaux modèles nous ont permis d’améliorer les performances de solutions existantes et de découvrir de nouveaux distingueurs pour WARP (23 tours), Twine (15 et 16 tours) ainsi que pour LBlock-s (16 tours). Nous avons également trouvé de nouvelles attaques sur Rijndael (9 tours avec la version 128-160, 12 tours avec les versions 128-224 et 160-256) et sur WARP (26 tours).