Implementations and protections of software and hardware cryptographic mechanisms
Implantations et protections de mécanismes cryptographiques logiciels et matériels
Résumé
The protection of cryptographic mechanisms is an important challenge while developing a system
of information because they allow to ensure the security of processed data. Since both hardware
and software supports are used, the protection techniques have to be adapted depending on the
context.
For a software target, legal means can be used to limit the exploitation or the use. Neverthe-
less, it is in general difficult to assert the rights of the owner and prove that an unlawful act had
occurred. Another alternative consists in using technical means, such as code obfuscation, which
make the reverse engineering strategies more complex, modifying directly the parts that need to
be protected. Concerning hardware implementations, the attacks can be passive (observation of
physical properties) or active (which are destructive). It is possible to implement mathematical
or hardware countermeasures in order to reduce the information leakage during the execution of
the code, and thus protect the module against some side channel attacks.
In this thesis, we present our contributions on theses subjects. We study and present the soft-
ware and hardware implementations realised for supporting elliptic curves given in Jacobi Quar-
tic form. Then, we discuss issues linked to the generation of curves which can be used in cryp-
tography, and we propose an adaptation to the Jacobi Quartic form and its implementation. In a
second part, we address the notion of code obfuscation. We detail the techniques that we have
implemented in order to complete an existing tool, and the complexity module which has been
developed.
La protection des mécanismes cryptographiques constitue un enjeu important lors du dévelop-
pement d’un système d’information car ils permettent d’assurer la sécurisation des données trai-
tées. Les supports utilisés étant à la fois logiciels et matériels, les techniques de protection doivent
s’adapter aux différents contextes.
Dans le cadre d’une cible logicielle, des moyens légaux peuvent être mis en oeuvre afin de
limiter l’exploitation ou les usages. Cependant, il est généralement difficile de faire valoir ses
droits et de prouver qu’un acte illicite a été commis. Une alternative consiste à utiliser des moyens
techniques, comme l’obscurcissement de code, qui permettent de complexifier les stratégies de
rétro-conception en modifiant directement les parties à protéger. Concernant les implantations
matérielles, on peut faire face à des attaques passives (observation de propriétés physiques) ou
actives, ces dernières étant destructives. Il est possible de mettre en place des contre-mesures
mathématiques ou matérielles permettant de réduire la fuite d’information pendant l’exécution
de l’algorithme, et ainsi protéger le module face à certaines attaques par canaux cachés.
Les travaux présentés dans ce mémoire proposent nos contributions sur ces sujets tes travaux.
Nous étudions et présentons les implantations logicielle et matérielle réalisées pour le support de
courbes elliptiques sous forme quartique de Jacobi étendue. Ensuite, nous discutons des problé-
matiques liées à la génération de courbes utilisables en cryptographie et nous proposons une
adaptation à la forme quartique de Jacobi étendue ainsi que son implantation. Dans une seconde
partie, nous abordons la notion d’obscurcissement de code source. Nous détaillons les techniques
que nous avons implantées afin de compléter un outil existant ainsi que le module de calcul de
complexité qui a été développé.
Loading...