Browse Source

migration from svn

master
Nicolas Massé 6 years ago
commit
afc8f21107
  1. 155
      Crypto/devoir.tex
  2. 220
      Expose-HashingWithSL2/Résumé/resume.tex
  3. 323
      Expose-HashingWithSL2/Slides/main.tex
  4. BIN
      Expose-HashingWithSL2/Slides/unicaen.png

155
Crypto/devoir.tex

@ -0,0 +1,155 @@
\documentclass[a4paper,10pt,twocolumn]{article}
% To include images
\usepackage{graphicx}
% Change the margins of the document
\usepackage[top=1.5cm,bottom=2cm,left=1.5cm,right=1.5cm]{geometry}
% No indentation but a wider space between the paragraphs
\setlength{\parindent}{0cm}
\setlength{\parskip}{2mm}
% Add a rule between the two columns and enlarge the space
\setlength{\columnseprule}{.5pt}
\setlength{\columnsep}{1cm}
% French language
\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}
% Math extensions
\usepackage{amsfonts}
\usepackage{amstext}
\usepackage{amsmath}
\usepackage{mathbbol}
% Customize theorems
\usepackage{theorem}
\theoremstyle{break}
% Some useful shortcuts
\newcommand{\A}{\mathcal{A}}
\newcommand{\C}{\mathcal{C}}
\newcommand{\F}{\mathbb{F}}
\newcommand{\Poly}{\mathbb{P}}
\newcommand{\FF}{\F_2}
\newcommand{\FFn}[1]{\FF^{#1}}
\newcommand{\Zn}[1]{\mathbb{Z}_{#1}}
\newcommand{\Zp}{\Zn{p}}
\newcommand{\dg}[1]{\mathrm{d}^\circ(#1)}
\newcommand{\cy}[1]{{<}#1{>}}
% Definition of new environments
\newtheorem{mydef}{Définition}
\newtheorem{myprop}{Proposition}
\newtheorem{myth}{Théorème}
\newtheorem{mylemma}{Lemme}
\newtheorem{mycor}{Corolaire}
\newenvironment{note}[1]
{\textbf{#1}:}
{}
\newenvironment{mydem}
{\begin{note}{Démonstration}}
{\end{note}}
\newenvironment{myproof}
{\begin{note}{Preuve}}
{\end{note}}
\newenvironment{remarque}
{\begin{note}{Remarque}}
{\end{note}}
\newenvironment{proprietes}
{\begin{note}{Propriétés}}
{\end{note}}
\newenvironment{exemple}
{\begin{note}{Exemple}}
{\end{note}}
% Metadata
\title{Devoir de Cryptographie}
\author{Nicolas MASSE \\ \texttt{nicolas27.masse@laposte.net}}
\date{2006-2007}
\begin{document}
\maketitle
\section{Preuves de sécurité}
\subsection{Question 1}
Il est possible de vérifier la signature en utilisant la signature, la clé publique et le condensé du message :
$$ P\sigma \stackrel{?}{=} A.H(m) $$
En effet, $P\sigma = P.a.H(m) = A.H(m)$.
\subsection{Question 2}
La sécurité de référence pour un schéma de signature a été présenté par \textsc{Goldwasser}, \textsc{Mirali}
et \textsc{Rivest}. Il s'agit d'EF-CMA (Existential Forgery, Chosen Message Attack). Il s'agit de l'attaque
la plus facile à mener pour un attaquant.
\subsection{Question 4}
Le problème calculatoire Diffie-Hellman (CDH) consiste à retrouver $g^{ab}$ à partir de $g^a$ et $g^b$.
\subsection{Question 5}
L'idée serait d'utiliser la relation $e(aP,bP) = e(P,P)^{ab}$ avec $e(P,P) = g$.
\section{Logarithme composite}
\subsection{Question 1}
On sait que $g \in \Zn{n}^{*}$; c'est à dire que $g$ est inversible. On en déduit alors que
$$pgcd(g,n) = 1$$
Et d'après le théorème d'Euler, on a $g^{\varphi(n)} \equiv 1 \mod n$.
On sait que $g^{\varphi(n)} = 1$. On a donc
\begin{eqnarray*}
g^{\varphi(n)} & = & g^0 \\
g^{(p-1)(q-1)} & = & g^0 \\
g^{pq-p-q+1} & = & g^0 \\
g^{pq+1} g^{-(p+q)} & = & g^0 \\
g^{n+1} & = & g^{p+q}
\end{eqnarray*}
\subsection{Question 2}
On sait que
\begin{eqnarray*}
\varphi(n) & = & (p-1)(q-1) \\
& = & pq -p -q +1 \\
& = & n -(p+q) +1
\end{eqnarray*}
C'est-à-dire que si on connait $n$ et $p+q$, on connait également $\varphi(n)$.
Et à partir de $\varphi(n)$ on peut retrouver $p$ et $q$.
\begin{eqnarray*}
\varphi(n) & = & (p-1)(q-1) \\
\varphi(n) & = & (p-1)(\frac{n}{p}-1) \\
\varphi(n) & = & n - p - \frac{n}{p} + 1 \\
\varphi(n) - n + p + \frac{n}{p} - 1 & = & 0 \\
p^2 + (\varphi(n) - n - 1)p + n & = & 0
\end{eqnarray*}
Et connaissant $p$, il est trivial de trouver $q$.
\subsection{Question 3}
Si $f > p + q$, alors il est possible d'utiliser l'algorithme A pour factoriser $n$:
\begin{eqnarray*}
g^{n + 1} & = & g^{\varphi(n) + (p+q)} \\
& = & g^{\varphi(n)} . g^{p+q} \\
& = & g^{p+q}
\end{eqnarray*}
Le calcul de $\log_{(n,g)}(g^{n+1})$ permet de retrouver $p + q$, et donc de factoriser $n$. La complexité de B est alors équivalente à celle de A.
\subsection{Question 4}
La réciproque, c'est à dire la construction de A à partir de B n'est pas vraie, la factorisation de $n$ ne suffisant pas pour obtenir le logarithme discret.
\end{document}

220
Expose-HashingWithSL2/Résumé/resume.tex

@ -0,0 +1,220 @@
\documentclass[a4paper,10pt]{article}
% To include images
\usepackage{graphicx}
% Change the margins of the document
\usepackage[top=1.5cm,bottom=2cm,left=1.5cm,right=1.5cm]{geometry}
% No indentation but a wider space between the paragraphs
\setlength{\parindent}{0cm}
\setlength{\parskip}{2mm}
% Add a rule between the two columns and enlarge the space
\usepackage{multicol}
\setlength{\columnseprule}{.5pt}
\setlength{\columnsep}{1cm}
% French language
\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}
% Math extensions
\usepackage{amsfonts}
\usepackage{amstext}
\usepackage{amsmath}
\usepackage{mathbbol}
% Customize theorems
\usepackage{theorem}
\theoremstyle{break}
% Some useful shortcuts
\newcommand{\A}{\mathcal{A}}
\newcommand{\C}{\mathcal{C}}
\newcommand{\F}{\mathbb{F}}
\newcommand{\Poly}{\mathbb{P}}
\newcommand{\FF}{\F_2}
\newcommand{\FFn}[1]{\FF^{#1}}
\newcommand{\Zn}[1]{\mathbb{Z}_{#1}}
\newcommand{\Zp}{\Zn{p}}
\newcommand{\dg}[1]{\mathrm{d}^\circ(#1)}
\newcommand{\cy}[1]{{<}#1{>}}
% Definition of new environments
\newtheorem{mydef}{Définition}
\newtheorem{myprop}{Proposition}
\newtheorem{myth}{Théorème}
\newtheorem{mylemma}{Lemme}
\newtheorem{mycor}{Corolaire}
\newenvironment{note}[1]
{\textbf{#1}:}
{}
\newenvironment{mydem}
{\begin{note}{Démonstration}}
{\end{note}}
\newenvironment{myproof}
{\begin{note}{Preuve}}
{\end{note}}
\newenvironment{remarque}
{\begin{note}{Remarque}}
{\end{note}}
\newenvironment{proprietes}
{\begin{note}{Propriétés}}
{\end{note}}
\newenvironment{exemple}
{\begin{note}{Exemple}}
{\end{note}}
% Metadata
\title{Hachage avec $SL_2$}
\author{Nicolas MASSE \\ \texttt{nicolas27.masse@laposte.net}}
\date{2 mars 2007}
\begin{document}
\maketitle
\begin{abstract}
Ce document est un résumé de l'article \og Hashing with $SL_2$~\fg~de Jean-Pierre Tillich et Gilles Zémor de l'ENST.
Ils proposent une nouvelle famille de fonctions de hachage basées sur des calculs sur un corps fini de caractéristique 2.
Ces fonctions peuvent être calculées rapidement, détecter de petites modifications du texte d'entrée, et leur sécurité
est équivalente à un problème mathématique précis. Elles reposent sur l'arithmétique du groupe de matrices $SL_2$.
\end{abstract}
\vspace{1cm}
\begin{multicols}{2}
\section{Introduction}
Une fonction de hachage $H$ fait correspondre un ensemble de textes de longueur variable sur un alphabet $\A$ vers un
ensemble de textes de longueur fixe que l'on nomme \textit{hachés}.
$$ H:\A^* \longmapsto \A^n $$
Une fonction de hachage doit avoir les propriétés suivantes~:
\begin{itemize}
\item Elle doit être facilement calculable
\item Il doit être calculatoirement difficile de trouver des collisions, c'est-à-dire deux textes ayant le même haché.
\end{itemize}
Les fonctions de hachage sont largement utilisées dans les protocoles cryptographiques. Malgré tout le travail réalisé
dans ce domaine, la sécurité de nombreuses propositions s'est révelée être faible et celles dont la sécurité n'a pas encore
été mise en doute, restent toujours formellement non prouvée.
La fonction proposée permet d'obtenir la propriété de sécurité inconditionnelle suivante~: \textit{les petites modifications
du texte d'entrée sont toujours détectées}. Elle dispose également des propriétés suivantes~:
\begin{itemize}
\item L'algorithme peut être aisément implémenté logiciellement en utilisant uniquement des opérations de base sur des corps
finis de caractéristique 2 à $2^n$ éléments ($130 \le n \le 170$), ce qui autorise des calculs rapides.
\item Il est facilement parallélisable.
\item Sa sécurité est équivalente à un problème mathématique précis.
\end{itemize}
\section{Stratégie de conception}
\subsection{Construction générale}
Soient un groupe fini $G$ et un ensemble de générateurs $S$ de la même taille que l'alphabet $\A$.
On choisit une fonction $\pi: \A \longrightarrow S$ qui établit une bijection entre $\A$ et $S$.
Le haché du texte $x_1x_2 \ldots x_k$ est alors l'élément du groupe
$$\pi(x_1)\pi(x_2) \ldots \pi(x_k)$$
Cette construction présente deux avantages : la fonction dispose de la propriété de concaténation et
il est possible d'associer à cette construction un graphe de Cayley dont certains paramètres sont
applicables à la sécurité.
La propriété de concaténation se définit comme suit. \textit{Si $x$ et $y$ sont deux textes, alors leur
concaténation a pour haché $H(xy) = H(x)H(y)$.} Il en résulte que la fonction est aisément parallèlisable
et si certaines parties du message sont connues à l'avance, il est possible de pré-calculer le haché de
ces parties.
Le graphe de Cayley $\C(G,S)$ associé à $G$ permet de déterminer les paramètres de sécurité de la fonction.
\begin{mydef}[Circonférence d'un graphe]
La circonférence $\partial$ d'un graphe $G$ est le plus grand entier tel que, étant donné deux sommets $v$ et $w$,
n'importe quelle paire de chemins joignant $v$ à $w$ est telle qu'un de ces deux chemins a une longueur
de $\partial$ ou plus.
\end{mydef}
En particulier, une large circonférence $\partial$ de $\C(G,S)$ permet de se prémunir des modifications
locales. En effet, si on remplace $k$ symboles consécutifs d'un texte
$$ x = x_1x_2 \ldots x_i \ \boxed{x_{i+1} \ldots x_{i+k}} \ x_{i+k+1} \ldots x_t $$
par une chaine de $h$ symboles telle que le texte résultant
$$ x' = x_1x_2 \ldots x_i \ \boxed{y_{i+1} \ldots y_{i+h}} \ x_{i+k+1} \ldots x_t $$
ait le même haché, alors ${\rm sup}(k, h) \ge \partial$.
Une fonctionnalité importante des fonctions de hachage est l'équidistribution des hachés. Cette propriété
est garantie si le graphe de Cayley $\C(G,S)$ associé satisfait :
\textit{Si $\C(G,S)$ est un graphe de Cayley tel que le PGCD de la longueur de ses cycles vaut 1, alors les hachés de
longueur $n$ de la fonction correspondante tendent vers l'équidistribution lorsque $n$ tend vers l'infini.}
\subsection{Le choix de $SL_2$}
Les groupes $SL_2(\F_q)$ de matrices $2 \times 2$ de déterminant 1 sur un corps fini $\F_q$ semblent être
un choix prometteur pour des fonctions de hachage de qualité et ceci pour deux raisons. Premièrement,
la fonction résultante est facile à calculer. Pour chaque bit du message on effectue quelques additions
sur $\F_q$ (rapide si $q=2^n$). Deuxièmement, il est assez facile avec ces groupes d'obtenir des graphes
de Cayley ayant une large circonférence. Enfin, avec ces groupes la fonction tend rapidement vers
l'équidistribution.
\subsection{Résistance aux collisions}
Une autre fonctionnalité intéressante de ce schéma de hachage est que la résistance aux collisions
peut être exprimé en termes mathématiques. En effet, ce problème se réduit à trouver deux chaines de générateurs
telles que les produits donnent le même résultat dans $G$. C'est à dire trouver $s_1,s_2, \ldots, s_n, \sigma_1,
\sigma_2, \ldots, \sigma_m \in S$ tels que
$$ s_1s_2 \ldots s_n = \sigma_1\sigma_2 \ldots \sigma_m $$
Bien sûr, il existe toujours des factorisations triviales dans un groupe fini ($s^{|G|} = 1, \forall s \in S$).
Cependant, au vu de la taille du groupe considéré ($|G| = 2^{500}$), ces factorisations sont sans objet.
De plus, trouver la plus courte factorisation d'un élément choisi d'un groupe à partir d'un ensemble de générateurs
a été prouvé être Pspace-complet et le choix de $SL_2$ pour $G$ accentue encore la difficulté de ce problème.
\section{Définition}
La fonction de hachage peut être définie de la manière suivante~:
On choisit un polynôme irréductible $P_n(X)$ de degré $n$.
Soient $A$ et $B$ les matrices suivantes.
$$ A = \begin{pmatrix} X & 1 \\ 1 & 0 \end{pmatrix} \hspace{1cm} B = \begin{pmatrix} X & X + 1 \\ 1 & 1 \end{pmatrix} $$
On définit l'application suivante.
\begin{eqnarray*}
\pi : \{0,1\} & \rightarrow & \{A,B\} \\
0 & \mapsto & A \\
1 & \mapsto & B
\end{eqnarray*}
Le haché du message binaire $x_1x_2 \ldots x_k$ est simplement le produit matriciel
$$ \pi(x_1)\pi(x_2) \ldots \pi(x_k) $$
où les calculs sont faits sur le corps fini $\F_{2^n} = \F_2[X] / P_n(X)$ à $2^n$ éléments.
Le hashé est donc un élément du groupe $SL_2(\F_{2^n})$ de matrices $2 \times 2$ ayant un
déterminant égal à 1 sur $\F_{2^n}$. $3n + 1$ bits sont nécessaires pour encoder le haché
(c'est-à-dire 390-510 bits).
\subsection{Protection contre les modifications locales}
On sait qu'un graphe de Cayley ayant une large circonférence protège des modifications
locales. De plus, la circonférence d'un graphe de Cayley $\C(SL_2(\F_{2^n}), A, B)$ est
plus grande que $n$. C'est-à-dire qu'à $n$ fixé, on est sûr de détecter toute modification
d'au plus $n$ bits consécutifs.
\subsection{Résistance aux attaques par densité}
Ces attaques consistent à trouver une chaîne de bits dont le haché est l'identité. La chaîne
ainsi trouvée peut être insérée n'importe où sans changer le haché du message.
Pour mener à bien cette attaque, il faut (étape 1) trouver une matrice $U$ de $SL_2(\F_2[X])$
qui est égale à l'identité modulo $P_n(X)$, puis (étape 2) décomposer cette matrice $U$ sous
forme d'un produit de $A$ et $B$ dans $SL_2(\F_2[X])$ (si possible).
La première étape est plutôt facile, mais la probabilité que l'étape 2 réussisse (c'est-à-dire
que $U$ est décomposable en un produit de $A$ et $B$) est $$O\left(\frac{1}{2^n}\right)$$
\section{Conclusion}
Cette nouvelle famille de fonction de hachage basées sur des calculs dans $SL_2(\F_{2^n})$
est rapide (au plus quelques shifts et XOR de 150 bits,
par bit du message), facilement parallèlisable et sa sécurité est équivalente à un
problème mathématique précis.
\end{multicols}
\end{document}

323
Expose-HashingWithSL2/Slides/main.tex

@ -0,0 +1,323 @@
\documentclass{beamer}
% Copyright 2004 by Till Tantau <tantau@users.sourceforge.net>.
%
% In principle, this file can be redistributed and/or modified under
% the terms of the GNU Public License, version 2.
%
% However, this file is supposed to be a template to be modified
% for your own needs. For this reason, if you use this file as a
% template and not specifically distribute it as part of a another
% package/program, I grant the extra permission to freely copy and
% modify this file as you see fit and even to delete this copyright
% notice.
\newcommand{\A}{\mathcal{A}}
\newcommand{\C}{\mathcal{C}}
\newcommand{\F}{\mathbb{F}}
\mode<presentation>
{
\usetheme{Warsaw}
% or ...
%\setbeamercovered{transparent}
% or whatever (possibly just delete it)
}
\usepackage[french,english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{times}
%\usepackage[T1]{fontenc}
% Or whatever. Note that the encoding and the font should match. If T1
% does not look nice, try deleting the line with the fontenc.
\title{Hachage avec $SL_2$}
\subtitle{Exposé M2-AMI}
\author{N.~MASSE}
\institute
{
M2-AMI\\
Université de CAEN
}
\date{2 Mars 2007}
\subject{Cryptographie}
% If you have a file called "university-logo-filename.xxx", where xxx
% is a graphic format that can be processed by latex or pdflatex,
% resp., then you can add a logo as follows:
\pgfdeclareimage[height=0.5cm]{university-logo}{unicaen}
\logo{\pgfuseimage{university-logo}}
% Delete this, if you do not want the table of contents to pop up at
% the beginning of each subsection:
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{Outline}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
% If you wish to uncover everything in a step-wise fashion, uncomment
% the following command:
%\beamerdefaultoverlayspecification{<+->}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}
\frametitle{Sommaire}
\tableofcontents
% You might wish to add the option [pausesections]
\end{frame}
% Structuring a talk is a difficult task and the following structure
% may not be suitable. Here are some rules that apply for this
% solution:
% - Exactly two or three sections (other than the summary).
% - At *most* three subsections per section.
% - Talk about 30s to 2min per frame. So there should be between about
% 15 and 30 frames, all told.
% - A conference audience is likely to know very little of what you
% are going to talk about. So *simplify*!
% - In a 20min talk, getting the main ideas across is hard
% enough. Leave out details, even if it means being less precise than
% you think necessary.
% - If you omit details that are vital to the proof/implementation,
% just say so once. Everybody will be happy with that.
\section{Introduction}
\begin{frame}
\frametitle{Fonction de Hachage}
\begin{definition}
Une fonction de hachage $H$ fait correspondre un ensemble de textes de longueur variable sur un alphabet $\A$ vers un
ensemble de textes de longueur fixe que l'on nomme \textit{hachés}.
$$ H:\A^* \longmapsto \A^n $$
\end{definition}
\begin{example}
MD5, SHA-1, RIPEMD
\end{example}
\end{frame}
\begin{frame}
\frametitle{Fonction de Hachage (2)}
\begin{itemize}
\item Propriétés
\begin{itemize}
\item Facilement calculable
\item Calculatoirement difficile de trouver des collisions
\end{itemize}
\item En général, pas de preuve formelle de la sécurité
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Fonction proposée}
\begin{itemize}
\item Implémentation simple et rapide
\item Facilement parallèlisable
\item Sécurité équivalente à un problème mathématique précis
\end{itemize}
\end{frame}
\section{Fonctionnement}
\subsection{Construction générale}
\begin{frame}
\frametitle{Construction}
\begin{enumerate}
\item Soient un groupe fini $G$ et un ensemble de générateurs $S$ de la même taille que l'alphabet $\A$.
\pause
\item On choisit une fonction bijective $$ \pi: \A \longrightarrow S$$
\pause
\item Le haché du texte $x_1x_2 \ldots x_k$ est alors l'élément $$ \pi(x_1)\pi(x_2) \ldots \pi(x_k) $$
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Avantages}
\begin{itemize}
\item Propriété de concaténation
\item Paramètres de sécurité définis par le graphe de Cayley
\end{itemize}
\pause
\begin{definition}[Concaténation]
Si $x$ et $y$ sont deux textes, alors leur concaténation a pour haché $H(xy) = H(x)H(y)$.
\end{definition}
\end{frame}
\begin{frame}
\frametitle{Graphe de Cayley}
\begin{definition}[Circonférence d'un graphe]
La circonférence $\partial$ d'un graphe $G$ est le plus grand entier tel que, étant donné deux sommets $v$ et $w$,
n'importe quelle paire de chemins joignant $v$ à $w$ est telle qu'un de ces deux chemins a une longueur
de $\partial$ ou plus.
\end{definition}
\pause
Si on remplace $k$ symboles consécutifs d'un texte
$$ x = x_1x_2 \ldots x_i \ \boxed{x_{i+1} \ldots x_{i+k}} \ x_{i+k+1} \ldots x_t $$
par une chaine de $h$ symboles telle que le texte résultant
$$ x' = x_1x_2 \ldots x_i \ \boxed{y_{i+1} \ldots y_{i+h}} \ x_{i+k+1} \ldots x_t $$
ait le même haché, alors ${\rm sup}(k, h) \ge \partial$.
\end{frame}
\begin{frame}
\frametitle{Équidistribution}
L'équidistribution est garantie si le graphe de Cayley $\C(G,S)$ associé satisfait~:
\begin{theorem}
Si $\C(G,S)$ est un graphe de Cayley tel que le PGCD de la longueur de ses cycles vaut 1, alors les hachés de
longueur $n$ de la fonction correspondante tendent vers l'équidistribution lorsque $n$ tend vers l'infini.
\end{theorem}
\end{frame}
\subsection{Choix de $SL_2$}
\begin{frame}
\frametitle{$SL_2$}
\begin{itemize}
\item $SL_2(\F_q)$ : groupe des matrices $2 \times 2$ \\ de déterminant 1 sur $\F_q$
\item Plusieurs avantages
\begin{itemize}
\item Rapidité de calcul (pour $q=2^n$)
\item Graphe de Cayley de large circonférence
\item Tend rapidement vers l'équidistribution
\end{itemize}
\end{itemize}
\end{frame}
\subsection{Résistance aux collisions}
\begin{frame}
\frametitle{Résistance aux collisions}
\begin{itemize}
\item C'est un problème mathématique !
\item Trouver $s_1,s_2, \ldots, s_n, \sigma_1, \sigma_2, \ldots, \sigma_m \in S$ tels que
$$ s_1s_2 \ldots s_n = \sigma_1\sigma_2 \ldots \sigma_m $$
\pause
\item Les factorisations triviales existent
$$ s^{|G|} = 1, \forall s \in S $$
\pause
\item mais sont futiles car $|G|$ est grand ($|G| = 2^{500}$)
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Complexité}
\begin{block}{Complexité de la factorisation}
Trouver la plus courte factorisation d'un élément choisi d'un groupe à partir d'un ensemble de générateurs
a été prouvé être Pspace-complet et le choix de $SL_2$ pour $G$ accentue encore la difficulté de ce problème.
\end{block}
\end{frame}
\section{Choix des paramètres}
\begin{frame}
\frametitle{Définition de la fonction}
On choisit un polynôme irréductible $P_n(X)$ de degré $n$ ($130 \le n \le 170$).
Soient $A$ et $B$ les matrices suivantes.
$$ A = \begin{pmatrix} X & 1 \\ 1 & 0 \end{pmatrix} \hspace{1cm} B = \begin{pmatrix} X & X + 1 \\ 1 & 1 \end{pmatrix} $$
\pause
On définit l'application suivante.
\begin{eqnarray*}
\pi : \{0,1\} & \rightarrow & \{A,B\} \\
0 & \mapsto & A \\
1 & \mapsto & B
\end{eqnarray*}
\end{frame}
\begin{frame}
\frametitle{Définition de la fonction}
Le haché du message binaire $x_1x_2 \ldots x_k$ est simplement le produit matriciel
$$ \pi(x_1)\pi(x_2) \ldots \pi(x_k) $$
où les calculs sont faits sur le corps fini $\F_{2^n} = \F_2[X] / P_n(X)$ à $2^n$ éléments.
\pause
\begin{block}{Encodage}
$|SL_2(\F_{2^n})| = 2^n(2^{2n} - 1) \Rightarrow 3n + 1$ bits sont nécessaires
pour encoder le haché (c'est-à-dire 390-510 bits).
\end{block}
\end{frame}
\subsection{Protection contre les modifications locales}
\begin{frame}
\frametitle{Protection contre les modifications locales}
\begin{theorem}
La circonférence d'un graphe de Cayley $\C(SL_2(\F_{2^n}), A, B)$ est
plus grande que $n$.
\end{theorem}
$\Longrightarrow$ À $n$ fixé, on est sûr de détecter toute modification d'au plus $n$ bits consécutifs.
\end{frame}
\subsection{Résistance aux attaques par densité}
\begin{frame}
\frametitle{Attaques par densité}
\begin{block}{Description}
\begin{itemize}
\item Trouver une chaîne de bits dont le haché est l'identité
\item Elle peut être insérée n'importe où sans changer le haché du message
\end{itemize}
\end{block}
\pause
\begin{block}{Déroulement de l'attaque}
\begin{enumerate}
\item trouver une matrice $U$ de $SL_2(\F_2[X])$ qui est égale à l'identité modulo $P_n(X)$
\item décomposer cette matrice $U$ sous forme d'un produit de $A$ et $B$ dans $SL_2(\F_2[X])$ (si possible)
\end{enumerate}
\end{block}
\end{frame}
\begin{frame}
\frametitle{Résistance aux attaques par densité}
\begin{itemize}
\item Première étape $\rightarrow$ plutôt facile
\pause
\item la probabilité que l'étape 2 réussisse (c'est-à-dire
que $U$ est décomposable en un produit de $A$ et $B$) est $$O\left(\frac{1}{2^n}\right)$$
\end{itemize}
\end{frame}
\subsection{Conclusion}
\begin{frame}
\frametitle{Conclusion}
Cette nouvelle famille de fonctions de hachage basées sur $SL_2$ sont
\begin{itemize}
\item rapides (quelques shifts/XOR de 150 bits, par bit de message),
\item parallèlisables,
\item et leur sécurité est équivalente à un problème mathématique précis.
\end{itemize}
\end{frame}
\end{document}

BIN
Expose-HashingWithSL2/Slides/unicaen.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

Loading…
Cancel
Save