commit afc8f21107d3eaba062d4c5e5b8e3cb1503fdbcf Author: Nicolas MASSE Date: Wed Sep 11 11:45:39 2019 +0200 migration from svn diff --git a/Crypto/devoir.tex b/Crypto/devoir.tex new file mode 100755 index 0000000..9e361ea --- /dev/null +++ b/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} + diff --git a/Expose-HashingWithSL2/Résumé/resume.tex b/Expose-HashingWithSL2/Résumé/resume.tex new file mode 100755 index 0000000..c3b1e30 --- /dev/null +++ b/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} + diff --git a/Expose-HashingWithSL2/Slides/main.tex b/Expose-HashingWithSL2/Slides/main.tex new file mode 100755 index 0000000..13df518 --- /dev/null +++ b/Expose-HashingWithSL2/Slides/main.tex @@ -0,0 +1,323 @@ +\documentclass{beamer} + +% Copyright 2004 by Till Tantau . +% +% 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 +{ + \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} + \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} + + diff --git a/Expose-HashingWithSL2/Slides/unicaen.png b/Expose-HashingWithSL2/Slides/unicaen.png new file mode 100755 index 0000000..d32dae2 Binary files /dev/null and b/Expose-HashingWithSL2/Slides/unicaen.png differ