1 \documentclass[a4paper,
10pt
]{article
}
3 \usepackage[francais
]{babel
}
4 \usepackage[utf8
]{inputenc}
5 \usepackage[T1]{fontenc}
13 \usepackage[usenames,dvipsnames
]{xcolor
}
15 \title{ICR - Labo \
#3 :
\textit{Attaque par faute contre RSA-CRT
}}
26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
27 \section{Introduction
}
31 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
34 \subsection{Implémentation
}
36 L'implémentation utilise le langage
\emph{C++
11}, le compilateur
\emph{GCC
} 4.9.1, la
\emph{library
} \emph{GMP
} 6.0.0 ainsi que la système de
\emph{build
} \emph{QBS
}~
\footnote{\url{http://qt-project.org/wiki/qbs
}}.
38 Le fichier
\emph{*.qbs
} peut-être ouvert à l'aide de l'environnement de développement
\emph{Qt Creator
}~
\footnote{\url{http://qt-project.org/wiki/Category:Tools::QtCreator
}}.
41 \subsubsection*
{Question
1.1 : Comment s'assure-t-on que les routines implémentées fonctionnent correctement ?
}
43 Pour chaque version, standard et restes chinois, une paire de clefs est générée puis trois messages sont testés avec des valeurs différentes correspondantes à $n$, $n-
1$ et $n /
2$. Pour le premier cas la vérification de la signature ne doit pas fonctionner car le
\emph{plaintext
} est trop grand, dans les deux autres cas, on vérifie la signature ainsi qu'une signature altérée (incrémentée de
1).
45 Les tests peuvent être lancés avec la commande suivante :
52 \subsubsection*
{Question
1.2 : Quel est le gain en terme de temps d'exécution lors de la création d'une signature avec
\emph{RSA-CRT
} par rapport à la version standard ?
}
54 Les mesures sont réalisées en générant $
20'
000$ signatures. Vingt paires de clefs différentes sont utilisées.
56 Les temps sont mesurés à l'aide de la commande suivante :
59 qbs run release -- time-measures
63 \item \emph{RSA
} standard : $
14'
800\, ms$ ($
740\,
\mu s$ par signature).
64 \item \emph{RSA CRT
} : $
4'
466\, ms$ ($
223,
\mu s$ par signature).
67 La génération de signature avec
\emph{RSA CRT
} est en moyenne
3.25 fois plus rapide.
70 \subsubsection*
{Question
1.3 : Quels sont les valeurs que l'on peut pré-calculer est stocker hormis $n$ et $d$ afin d'améliorer la vitesse de calcul d'une signature avec
\emph{RSA-CRT
} ?
}
75 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
76 \section{L'attaque de
\emph{Boneh-DeMillo-Lipton
}}
78 \subsection{Fonctionnement
}
80 http://crypto.stanford.edu/~dabo/abstracts/faults.html
84 \subsubsection*
{Question
2.1 : En pratique, comment est-il possible d'introduire des fautes dans l'implémentation d'un algorithme cryptographique ?
}
88 \subsubsection*
{Est-ce que cette attaque fonctionne dans le cas d'un bourrage non détérministe ?
}
91 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
92 \section{Le
\flqq truc
\frqq de
\emph{Shamir
}}
94 \subsection{Fonctionnement
}
98 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
102 % http://en.wikipedia.org/wiki/RSA_%28cryptosystem%29
104 %\bibliographystyle{plain}