summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rappels-maths.tex380
1 files changed, 380 insertions, 0 deletions
diff --git a/rappels-maths.tex b/rappels-maths.tex
new file mode 100644
index 0000000..badb046
--- /dev/null
+++ b/rappels-maths.tex
@@ -0,0 +1,380 @@
+%% This is a LaTeX document. Hey, Emacs, -*- latex -*- , get it?
+\documentclass[12pt]{article}
+\usepackage[francais]{babel}
+\usepackage[latin1]{inputenc}
+\usepackage{times}
+% A tribute to the worthy AMS:
+\usepackage{amsmath}
+\usepackage{amsfonts}
+\usepackage{amssymb}
+\usepackage{amsthm}
+%
+\usepackage{mathrsfs}
+\usepackage{wasysym}
+\usepackage{url}
+%
+\theoremstyle{definition}
+\newtheorem{comcnt}{Tout}[subsection]
+\newcommand\thingy{%
+\refstepcounter{comcnt}\smallbreak\noindent\textbf{\thecomcnt.} }
+\newtheorem{defn}[comcnt]{D�finition}
+\newtheorem{prop}[comcnt]{Proposition}
+\newtheorem{lem}[comcnt]{Lemme}
+\newtheorem{thm}[comcnt]{Th�or�me}
+\newtheorem{cor}[comcnt]{Corollaire}
+\newtheorem{rmk}[comcnt]{Remarque}
+\newtheorem{exmps}[comcnt]{Exemples}
+\newcommand{\limp}{\mathrel{\Rightarrow}}
+\newcommand{\liff}{\mathrel{\Longleftrightarrow}}
+\newcommand{\pgcd}{\operatorname{pgcd}}
+\newcommand{\ppcm}{\operatorname{ppcm}}
+\newcommand{\signe}{\operatorname{signe}}
+\renewcommand{\qedsymbol}{\smiley}
+%
+%
+%
+\begin{document}
+\title{Rappels maths pour crypto}
+\author{David A. Madore}
+\maketitle
+{\footnotesize
+\begin{center}
+CVS: \verb=$Id: rappels-maths.tex,v 1.1 2008-09-29 18:58:04 david Exp $=
+\end{center}
+\par}
+\pretolerance=10000
+\tolerance=8000
+%
+%
+%
+\section{Entiers}
+
+\subsection{L'anneau des entiers}
+
+$\mathbb{Z}=\{\ldots,-3,-2,-1,0,1,2,3,\ldots\}$ ensemble des
+entiers relatifs. Sous-ensemble�$\mathbb{N}$.
+
+Op�rations�: $+$, $\times$.
+
+Rappeler�: $(\mathbb{Z},0,+)$ est un groupe ab�lien,
+$(\mathbb{Z},0,+,1,\times)$ est un anneau commutatif.
+
+Mieux�: anneau int�gre.
+
+�l�ments inversibles�: $1$ et $-1$.
+
+Relation d'ordre...
+
+%
+\subsection{�criture $b$-adique}
+
+Si $b\geq 2$ est un entier naturel, tout entier naturel $A$ s'�crit de
+fa�on unique $A = \sum_{i=0}^{+\infty} a_i b^i$ avec $0\leq a_i<b$
+entiers naturels ��presque tous nuls�� (expliquer).
+
+�criture usuelle�: $b=10$. Informatique�: $b=2$. Un nombre ��de $n$
+bits�� signifie�: inf�rieur �$2^n$.
+
+Multiplier par $b$ revient � d�caler tous les chiffres d'un cran vers
+la gauche.
+
+On passe pour l'instant sur l'�criture des nombres n�gatifs.
+
+%
+\subsection{Remarques sur la complexit� des op�rations}
+
+Addition de nombres de $n$ bits�: algorithme na�f en $O(n)$.
+
+Multiplication�: plus compliqu�.
+
+Algorithme na�f en $O(n^2)$.
+
+\emph{Multiplication de Karatsuba}�: utilise r�cursivement
+l'identit� ${(a_1 w + a_0)} \penalty0 {(b_1 w + b_0)} = a_1 b_1 w^2 +
+[(a_1+a_0)(b_1+b_0)-a_1 b_1-a_0 b_0] w + a_0 b_0$ pour une complexit�
+en $O(n^{\frac{\log 3}{\log 2}})$ (soit $O(n^{1.58\ldots})$). Facile
+� impl�menter.
+
+\emph{Multiplication de Strassen}�: par transform�e de Fourier
+rapide, complexit� en $O(n\,\log^2 n)$, difficile � impl�menter.
+Am�lioration de Sch�nhage�: $O(n\,\log n\,\log\log n)$ ---
+compl�tement th�orique.
+
+%
+\subsection{Divisiblit� (exacte)}
+
+D�finition. R�flexive, transitive. Pas tout � fait antisym�trique
+(mais vrai dans les entiers naturels).
+
+Note�: Les entiers $1$ et $-1$ divisent tous les entiers. L'entier
+$0$ est divisible par tous les entiers.
+
+%
+\subsection{Nombres premiers}
+
+Un \textbf{nombre premier} $p$ est un entier (par convention�:
+positif) divisible seulement par $1$, $-1$, lui-m�me et son oppos�;
+mais par convention, $1$ et $-1$ (et $0$...) ne sont pas premiers.
+
+Sur leur r�partition�:
+
+Il y en a une infinit� (Euclide).
+
+Pour tout $x>1$, il y a toujours un nombre premier $p$ tel que
+$x\leq p < 2x$ (\v Ceby\v s�v�: ��postulat de Bertrand��).
+
+Le nombre $\pi(x)$ de nombres premiers $\leq x$ est �quivalent �
+$\frac{x}{\ln x}$ lorsque $x\to +\infty$ (Hadamard \& de�la�Vall�e
+Poussin�: ��th�or�me des nombres premiers��).
+
+\textbf{Lemme de Gauߠ:} pour $p$ premier, si $p$ divise $ab$ alors
+$p$ divise�$a$ ou $p$ divise�$b$.
+
+%
+\subsection{D�composition en facteurs premiers}
+
+Pour tout entier $n$ \emph{non nul}, il existe une �criture
+\emph{unique} (� l'ordre pr�s) de $n$ comme produit d'une \emph{unit�}
+($1$�ou�$-1$) et de nombres premiers�: en regroupant les facteurs
+premiers�$p$,
+\[
+n = u\, 2^{v_2(n)} \, 3^{v_3(n)} \cdots p^{v_p(n)}\cdots
+\]
+
+Ici, $v_p(n)$ (un entier naturel) est l'exposant de la plus grande
+puissance de $p$ qui divise�$n$�: on l'appelle \emph{valuation
+$p$-adique} de�$n$. Presque tous ces nombres sont nuls, ce qui permet
+de donner un sens au produit infini. Dire que $b|a$ signifie $v_p(b)
+\leq v_p(a)$ pour tout�$p$.
+
+Quant � $u$, c'est simplement le signe de�$n$.
+
+%
+\subsection{Remarques sur la complexit�}
+
+Toujours pour des nombres de $n$ bits.
+
+\textbf{Tests de primalit�:} \emph{polynomiaux}. Un test polynomial
+\emph{d�terministe} est connu depuis seulement r�cemment
+(Agrawal-Kayal-Saxena), d�montrablement en $O(n^{12})$, sans doute
+meilleur ($O(n^3)$�?). En pratique, des tests probabilistes sont
+suffisants et plus efficaces (p.e., Miller-Rabin ��pratiquement�� en
+$O(n^2)$) �ventuellement compl�t�s par des certificats de primalit�
+(p.e., test d'Atkin).
+
+\textbf{Algorithmes de factorisation�:} \emph{lents}. Font appel �
+des r�sultats difficiles de th�orie alg�brique et analytique des
+nombres. La meilleure m�thode connue (��m�thode du crible g�n�ral de
+corps de nombres��) a une complexit� ��attendue�� (et heuristique) en
+$O(e^{n^{1/3}\,(\log n)^{2/3}\,(\textrm{cte}+o(1))})$ (avec
+$\textrm{cte} \approx 2$).
+
+On ne pourra donc pas envisager d'utiliser la d�composition en
+facteurs premiers pour calculer les pgcd.
+
+%
+\subsection{Valuation $p$-adique}
+
+Si $n$ est un entier et $p$ un nombre premier, $v_p(n)$ est l'exposant
+de la plus grande puissance de $p$ qui divise $n$. Si $a/b$ est un
+rationnel, on pose $v_p(a/b) = v_p(a)-v_p(b)$ (ne d�pend pas de la
+repr�sentation $a/b$ choisie). Par convention, $v_p(0) = +\infty$.
+
+Quelle est la valuation $2$-adique de $192$�? $3$-adique�?
+$5$-adique�? Quelles sont les valuations $p$-adiques de
+$-\frac{24}{11}$, pour tous les $p$ possibles�?
+
+Propri�t�s de $v_p$�: produit (cf.�lemme de Gau�), in�galit� sur la
+somme (et cas d'�galit�)... Dire que $x \in \mathbb{Q}$ est entier
+signifie exactement $v_p(x) \geq 0$ pour tout�$p$.
+
+%
+\subsection{Division euclidienne}
+
+Si $a$ est un entier relatif et $b$ un entier naturel \emph{non nul},
+il existe un unique couple $(q,r)$ tel que�:
+\begin{itemize}
+\item $q$ est un entier relatif,
+\item $r$ est un entier naturel tel que $0\leq r<b$, et
+\item $a = bq + r$.
+\end{itemize}
+On dit que $q$ est le \emph{quotient} et $r$ le \emph{reste} de la
+\textbf{division euclidienne} de $a$ par�$b$. (On appelle aussi $a$
+le \emph{dividende} et $b$ le \emph{diviseur}.)
+
+Si $b\geq 2$, dans l'�criture $b$-adique de $a$, le dernier chiffre
+($a_0$�avec les notations pr�c�dentes) est �gal au reste $r$ de la
+division euclidienne de $a$ par�$b$.
+
+Dire que $r=0$ signifie exactement que $b$ divise�$a$ (la division
+euclidienne est alors \emph{exacte}).
+
+\medbreak
+
+\textbf{Algorithme na�f�:} (celui de l'�cole primaire) en $O(n^2)$.
+
+\textbf{Algorithme sophistiqu�:} en $O(n\,\log n\,\log\log n)$ avec
+Sch�nhage-Strassen + m�thode de Newton (+�subtilit�s).
+
+M�thode de Newton�: on inverse $b$ (en pr�cision fixe) en it�rant $x
+\leftarrow 2x - bx^2$.
+
+Souvent impl�ment�e \textbf{en mat�riel} pour certaines tailles
+d'entiers (p.�ex., division enti�re de 128 bits par 64 bits).
+
+%
+\subsection{PGCD}
+
+Si $m_1,\ldots,m_\ell$ sont des entiers, on dit qu'un entier $c$ est
+un \textbf{plus grand commun diviseur} (en abr�g�: \emph{pgcd}) des
+$m_i$ lorsque�:
+\begin{itemize}
+\item $c$ divise chaque $m_i$ (i.e, $c$ est un diviseur commun
+ des�$m_i$), et
+\item tout entier $d$ qui divise chaque $m_i$ (i.e., tout diviseur
+ commun des $m_i$) divise aussi $c$.
+\end{itemize}
+En principe, le pgcd des $m_i$ est d�fini au signe pr�s (si $c$ est un
+pgcd des $m_i$ alors $-c$ l'est aussi)�: en imposant qu'il soit
+positif il devient unique et on parle alors \emph{du} pgcd des�$m_i$.
+
+Exemple�: le pgcd de $6$ et $10$ est�$2$�; le pgcd de
+ $6$, $10$ et $15$ est�$1$.
+
+\medbreak
+
+Le pgcd \emph{existe} toujours�: on peut le trouver � partir de la
+d�composition en facteurs premiers par
+\[
+v_p(\pgcd(m_1,\ldots,m_\ell)) = \min(v_p(m_1),\ldots,v_p(m_\ell))
+\]
+(pour tout nombre premier�$p$). Mais ce n'est pas une m�thode
+efficace de calcul�!
+
+\textbf{Notation�:} Parfois $m_1\wedge \cdots \wedge m_\ell$, mais
+cette notation peut �tre utilis�e pour d'autres sortes de bornes inf.
+Certains textes anglais utilisent $(m,m')$ pour le pgcd de deux
+entiers. La notation $\pgcd(\cdots)$ est �videmment la plus claire.
+
+\medbreak
+
+\textbf{Quelques propri�t�s�:}
+\begin{itemize}
+\item le pgcd d'un seul entier $m$ est lui-m�me (et le pgcd de z�ro
+entiers est�$0$),
+\item le pgcd est associatif (par exemple\\
+ $\pgcd(m_1,m_2,m_3) = \pgcd(\pgcd(m_1,m_2),m_3)$),
+\item le produit est distributif sur le pgcd\\
+ ($\pgcd(cm_1,\ldots,cm_\ell) = |c|\,\pgcd(m_1,\ldots,m_\ell)$),
+\item on peut toujours effacer des�$0$ d'un pgcd,
+\item d�s qu'un des entiers est�$1$ ou $-1$, le pgcd est�$1$,
+\item le pgcd d'une famille infinie se d�finit sans difficult�.
+\end{itemize}
+
+%
+\subsection{Entiers premiers entre eux}
+
+Lorsque $\pgcd(m_1,\ldots,m_\ell)=1$, on dit que les $m_i$ sont
+\textbf{premiers entre eux} \emph{dans leur ensemble}.
+
+Lorsque $\pgcd(m_i,m_j)=1$ pour tous $i\neq j$, on dit que les $m_i$
+sont premiers entre eux \emph{deux � deux}.
+
+\textbf{Lemme de Gau� am�lior�:} Si $m$ et $n$ sont premiers entre
+eux, �tre multiple de $m$ et de $n$ �quivaut � �tre multiple de $mn$.
+
+\textbf{Dirichlet�:} La probabilit� pour que deux entiers ��tir�s au
+ hasard�� soient premiers entre eux est $\frac{6}{\pi^2}$.
+
+%
+\subsection{PPCM}
+
+D�finition analogue au PGCD. Exemple�: le ppcm de $6$ et $10$
+est�$30$�; le ppcm de $6$, $10$ et $15$ est aussi�$30$. Lien avec la
+DFP (pour un nombre fini d'entiers). Le ppcm d'une famille infinie
+d'entiers est d�fini, mais parfois surprenant (quel est le PPCM de
+tous les nombres premiers�?).
+
+%
+\subsection{Relation de B�zout}
+
+Si $a$ et $b$ sont premiers entre eux (c'est-�-dire $\pgcd(a,b) = 1$)
+il existe des entiers $u$ et $v$ tels que $au + bv = 1$ (on verra
+pourquoi plus loin)�: on appelle cette �galit� une \textbf{relation de
+ B�zout}\footnote{�tienne B�zout (1730--1783), avec un accent aigu.}
+entre $a$ et�$b$.
+
+R�ciproquement, l'existence d'une relation de B�zout entre $a$ et�$b$
+implique que $a$ et�$b$ sont premiers entre eux (et alors les
+coefficients, $u$ et�$v$, sont aussi premiers entre eux). En effet,
+tout diviseur commun de $a$ et $b$ doit diviser $au+bv$.
+
+Exemple�: $42\times 38 - 55 \times 29 = 1$ constitue une relation de
+B�zout entre $42$ et $55$. On verra plus loin comment obtenir une
+relation de B�zout.
+
+Naturellement, ajouter $b$ �$u$ et $-a$ �$v$ donne une nouvelle
+relation de B�zout entre $a$ et�$b$. Donc il n'y a pas unicit�.
+
+Si $au + bv = \pm 1$ on dit parfois que les rationnels $a/b$ et $-v/u$
+(�crits sous forme irr�ductible) sont \emph{adjacents}.
+
+%
+\subsection{Algorithme d'Euclide}
+
+Soit � calculer le pgcd de deux entiers $a$ et $b$.
+\textbf{L'algorithme d'Euclide} pour ce faire est le suivant�:
+\begin{itemize}
+\item Initialiser�: $(m,n) \leftarrow (|a|,|b|)$.
+\item Tant que $n\neq 0$, r�p�ter�:
+\begin{itemize}
+\item Faire $(m,n) \leftarrow (n,r)$ o� $r$ est le reste de la division
+ euclidienne $m=nq+r$ de $m$ par $n$.
+\end{itemize}
+\item Renvoyer $m$ (le pgcd recherch�).
+\end{itemize}
+
+\smallskip
+\textbf{Invariant�:} $\pgcd(m,n) = \pgcd(a,b)$ (constant)
+
+\medbreak
+Exemple�: soit � calculer le pgcd de $a=98$ et
+$b=77$�:
+\begin{itemize}
+\item $(m,n)=(98,77)$�; division euclidienne $98 = 77\times 1 + 21$�;
+\item $(m,n)=(77,21)$�; division euclidienne $77 = 21\times 3 + 14$�;
+\item $(m,n)=(21,14)$�; division euclidienne $21 = 14\times 1 + 7$�;
+\item $(m,n)=(14,7)$�; division euclidienne $14 = 7\times 2 + 0$�;
+\item $(m,n)=(7,0)$�; on renvoie $7$.
+\end{itemize}
+
+\medbreak
+\textbf{Algorithme d'Euclide ���tendu��}�: L'id�e est
+de ��remonter�� les coefficients dans l'algorithme d'Euclide�: la
+derni�re division $m=nq+1$ donne une relation $1 = m-nq$ puis on
+remplace $n$ (qui est lui-m�me un reste de division euclidienne) et
+ainsi de suite jusqu'� trouver une relation entre les entiers $a$ et
+$b$ de d�part.
+
+En m�moire constante, cela donne�:
+
+Soit � calculer une relation de B�zout entre deux entiers $a$ et $b$
+(premiers entre eux)�:
+\begin{itemize}
+\item $(m,n,u,v,u',v') \leftarrow (|a|,|b|,\signe(a),0,0,\signe(b))$.
+\item Tant que $n\neq 0$, r�p�ter�:
+\begin{itemize}
+\item Division euclidienne de $m$ par $n$�: soit $m =
+nq+r$.
+\item Remplacer $(m,n,u,v,u',v') \leftarrow (n,r,u',v',u-qu',v-qv')$.
+\end{itemize}
+\item V�rifier $m=1$ (le pgcd est bien�$1$).
+\item Les coefficients recherch�s sont $u$ et $v$ (on a $au+bv = 1$).
+\end{itemize}
+
+\textbf{Invariants�:} $au+bv=m$ et $au'+bv'=n$.
+
+%
+%
+%
+\end{document}