\documentclass[a4paper,10pt]{article}

\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{graphicx}
\usepackage{listings}
\usepackage{url}
\usepackage{upquote} 
\usepackage{color}
\usepackage[usenames,dvipsnames]{xcolor}

\title{ICR - Labo \#3 : \textit{Attaque par faute contre RSA-CRT}}
\author{G.Burri}


\begin{document}

\nocite{*}

\maketitle


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{RSA-CRT}

\subsection{Implémentation}

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}}.

Le fichier \emph{*.qbs} peut-être ouvert à l'aide de \emph{Qt Creator}~\footnote{\url{http://qt-project.org/wiki/Category:Tools::QtCreator}}


\subsubsection*{Question 1.1 : Comment s'assure-t-on que les routines implémentées fonctionnent correctement ?}

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 message 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).

Les tests peuvent être lancés avec la commande suivante :

\begin{verbatim}
qbs run -- tests 
\end{verbatim}


\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 ?}

Les mesures sont réalisées en générant $20'000$ signatures. Vingt paires de clefs différentes sont utilisées.

Les temps sont mesurés à l'aide de la commande suivante :

\begin{verbatim}
qbs run release -- time-measures 
\end{verbatim}

\begin{itemize}
   \item \emph{RSA} standard : $14'800\, ms$ ($740\, \mu s$ par signature).
   \item \emph{RSA CRT} : $4'466\, ms$ ($223, \mu s$ par signature).
\end{itemize}

La génération de signature avec \emph{RSA CRT} est en moyenne 3.25 fois plus rapide.


\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} ?}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{L'attaque de \emph{Boneh-DeMillo-Lipton}}

\subsection{Fonctionnement}

(maths)

\subsubsection*{Question 2.1 : En pratique, comment est-il possible d'introduire des fautes dans l'implémentation d'un algorithme cryptographique ?}

\subsubsection*{Est-ce que cette attaque fonctionne dans le cas d'un bourrage non détérministe ?}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Le \flqq truc \frqq de \emph{Shamir}}

\subsection{Fonctionnement}

(maths)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Conclusion}


% http://en.wikipedia.org/wiki/RSA_%28cryptosystem%29

%\bibliographystyle{plain}
%\bibliography{main}

\end{document}
