1 \documentclass[compress]{beamer}
3 \usetheme[compress]{Ilmenau}
4 \setbeamertemplate{items}[ball]
5 \usenavigationsymbolstemplate{}
8 \usepackage[LY1]{fontenc}
9 \usepackage[utf8]{inputenc}
18 \usepackage[francais]{babel}
20 \usepackage{algorithm2e}
23 \graphicspath{{Figures/}}
25 %\includeonlyframes{1,2,3,4,5,6,7,8,9,10,11,15,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,bibliocont,bibliodisc}
26 %\includeonlyframes{6}
29 \setboolean{acroread}{true}
30 \newcommand{\Bool}[0]{\ensuremath{\mathds{B}}}
31 \newcommand{\N}{\mathbb N}
32 \newcommand{\R}{\mathbb R}
33 \newcommand{\Z}{\mathbb Z}
34 \newcommand{\Q}{\mathbb Q}
35 \newcommand{\C}{\mathbb C}
37 \newcommand{\attention}{%
38 \settowidth{\tl}{$\triangle$}%
39 \makebox[0pt][l]{$\triangle$}%
40 \makebox[\tl][c]{\raisebox{.2ex}{\tiny\string!}}}
41 \newcommand{\hauteur}[2]{\raisebox{0pt}[#1][-#1]{#2}}
42 \def\oeuvre{\oe uvre }
43 \def\oeuvrepv{\oe uvre}
44 \newcommand{\bleu}[1]{\color{blue}{#1}}
46 %\newenvironment{myitemize}[1]{
47 %% \setlength{\topsep}{#1mm}
49 %% \setlength{\partopsep}{#1mm}
50 % \setlength{\itemsep}{#1}
55 %\newcounter{selection}
56 %\setcounter{selection}{0}
60 \newcommand{\frameselect}[2]{
61 % \addtocounter{num}{1}
62 \ifthenelse{\boolean{#1}}%\value{selection}=0 \or
63 % \value{num}=\value{selection}}
69 \newenvironment{algo}[0] {
72 \hspace{5mm}\=\hspace{5mm}\=\hspace{5mm}\=\hspace{5mm}\= \kill} %
73 { \end{tabbing}\end{quotation}}
75 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
77 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
78 \author{Sylvain Contassot-Vivier$^1$ et Jean-François Couchot$^2$}
80 \title{Construction de codes de Gray équilibrés \\et forme canonique}
81 %\subtitle{Habilitation à Diriger des Recherches}
83 \date{1 - Équipe Simbiot - LORIA - Université de Lorraine\\
84 2 - Équipe AND - FEMTO-ST - Univ. Bourgogne Franche-Comté
90 \begin{frame}[label=1]
95 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
99 \section{Introduction}
103 \frametitle{Pseudo Random Number Generation}
106 \item Fields of Applications:
109 \item Security: hash function, steganography, cryptography
110 \item Time Synchronization: GPS
111 \item Numerical simulations: Monte-Carlo algorithms
113 \item Some requirements:
116 \item For cryptography: cryptographically secure
117 \item Successful pass on PRNG batteries of tests:
118 NIST\footnote{E.~Barker and A.~Roginsky.
119 Draft {N}{I}{S}{T} special publication 800-131 recommendation for the
120 transitioning of cryptographic algorithms and key sizes, 2010.},
121 DieHARD\footnote{G.~Marsaglia.
122 DieHARD: a battery of tests of randomness.
123 {\em http://stat.fsu.edu/~geo/diehard.html}, 1996}
124 \item Should have chaos properties
132 \frametitle{Our PRNG}
133 \begin{block}{PRNG $\chi_{\textit{14Secrypt}}$}
136 \KwIn{a function $f$, an iteration number $b$, a \textit{Random} PRNG, an initial configuration $x^0$ ($n$ bits)}
137 \KwOut{a configuration $x$ ($n$ bits)}
139 \For{$i=0,\dots,b-1$}
141 $s\leftarrow{\textit{Random}(n)}$\;
142 $x\leftarrow{F_f(s,x)}$\;
149 F_f: \Bool^{{\mathsf{N}}} \times \llbracket1;{\mathsf{N}} \rrbracket \to \Bool^{\mathsf{N}},
150 F_f(x,i)=(x_1,\dots,x_{i-1},f_i(x),x_{i+1},\dots,x_{\mathsf{N}}).
157 \frametitle{Random Walk in a modified $\mathsf{N}$-cube}
161 \item ${\mathsf{N}}=3$, $f^*: \Bool^3 \rightarrow \Bool^3$ s.t.
164 (x_2 \oplus x_3, \overline{x_1}\overline{x_3} + x_1\overline{x_2},
165 \overline{x_1}\overline{x_3} + x_1x_2)$$
166 \item Iteration graph $\Gamma(f^*)$ of this function:
167 \includegraphics[width=0.45\textwidth]{images/iter_f0c}
176 \frametitle{Chaotic PRNG with verified statistical properties}
178 \begin{exampleblock}{Previous work}
179 To provide a PRNG with the properties of Devaney's chaos and of succeeding NIST test: a (non-chaotic) PRNG + iterating a Boolean maps~\footnote{J. Bahi, J.-F. Couchot, C. Guyeux, and A. Richard.
180 On the link between strongly connected iteration graphs and chaotic
181 Boolean discrete-time dynamical systems, {\em
182 Fundamentals of Computation Theory}, volume 6914 of {\em LNCS}, pages 126--137. Springer, 2011.}:
184 \item with strongly connected iteration graph $\Gamma(f)$
185 \item with doubly stochastic Markov probability matrix
194 \frametitle{A solution to find ``good'' $\Gamma(f)$}
197 Let $\Gamma$ be the $n$-cube in which an Hamiltonian cycle is removed:
198 $\Gamma$ is strongly connected and the
199 resulting Markov matrix is doubly stochastic.
203 \begin{block}{We are then left to }
205 \item Focus on the generation of Hamiltonian cycles in the
207 \item Find cyclic Gray codes.
210 \footnote{Couchot, J., Héam, P., Guyeux, C., Wang, Q., Bahi, J. M. [2014]
211 Pseudorandom number generators with balanced gray codes,
212 SECRYPT 2014 - Proceedings of the 11th International Conference on
213 Security and Cryptography, Vienna, Austria, 28-30 August, 2014, pp. 469--475}
219 \frame{\frametitle{Outline}\tableofcontents[hideallsubsections]}
223 \section{Codes de Gray équilibrés}
224 \frame{\frametitle{Outline}\tableofcontents[currentsection,hideallsubsections]}
227 \begin{frame}[label=2]
228 \frametitle{Méthode R-C de construction de CG}
230 Méthode de Robinson-Cohn :
232 \item Méthode inductive
233 \item Produit un CG à N bits à partir d'un CG à N-2 bits
235 \item Séquence connue de transitions $S_{N-2} = (s_1,...,s_{2^{N-2}})$
236 \item Codées par la dimension empruntée lors de chaque déplacement du code\\
237 $\Rightarrow$ $1\le s_i \le N-2$
243 \item $u^R$ est le renversé de la séquence $u$
244 \item $u'(u, x, y) = (u,x,u^R,y,u)$
251 \frametitle{Méthode R-C de construction de CG}
254 \item Pour $l$ un entier pair, décomposer $S_{N-2}$ en une séquence :\\
255 \centerline{$(s_{i_1}, \underline{u_0}, s_{i_2}, \underline{u_1}, s_{i_3}, \underline{u_2}, \dots , s_{i_l-1}, \underline{u_{l-2}}, s_{i_l}, \underline{v})$}
256 où les $u_i$ sont des ss-séqs éventuellement vides de $S_{N-2}$\\
257 et $u_0 = \emptyset$, $i_1 = 1$, $i_2 = 2$ et $v$ éventuellement $\emptyset$.
258 \item Obtenir une nouvelle séquence $U$ en remplaçant :
260 \item $u_0$ par $N-1$
261 \item $u_{2i+1}$ par $u'(u_{2i+1},N-1,N)$
262 \item $u_{2i}$ par $u'(u_{2i},N,N-1)$
264 \item Construire les séquences :\\
267 \item $W=(N-1,S_{N-2},N)$
268 \item $W'=(w_2,w_1,W_{[3:]})$ \hfill(inversion des 2 1ers élts de $W$)
270 \item $S_{N} = (U^R, V, W')$
277 \frametitle{Méthode R-C de construction de CG}
278 \textbf{Exemple 1} : $N = 5$ et $S_3 = (1,2,1,3,1,2,1,3)$
280 \item le choix $l=2$ implique : $S_3=(s_{1}, \underline{u_0}, s_{2},v)$\\
281 avec $v = (s_3,...,s_{2^{N-2}}) = (1,3,1,2,1,3)$
282 \item on obtient $U = (s_1, 4, s_2, s_3,...,s_{2^{N-2}}) = (1,4,2,1,3,1,2,1,3)$
283 \item et les séquences :\\
285 \item $V= (v^R,N,v) = (3,1,2,1,3,1,5,1,3,1,2,1,3)$
286 \item $W=(N-1,S_{N-2},N)=(4,1,2,1,3,1,2,1,3,5)$
287 \item $W'=(w_2,w_1,W_{[3:]})=(1,4,2,1,3,1,2,1,3,5)$
289 \item $S_{N} = (U^R, V, W')=(\underline{3,1,2,1,3,1,2,4,1},$\\
290 \hspace{9em} $3,1,2,1,3,1,5,1,3,1,2,1,3,$\\
291 \hspace{9em} $1,4,2,1,3,1,2,1,3,5)$
294 Fréquences = 14, 6, 8, 2, 2
300 \frametitle{Méthode R-C de construction de CG}
301 \textbf{Exemple 2} : $N = 5$ et $S_3 = (1,2,1,3,1,2,1,3)$
303 \item le choix $l=4$ implique : $S_3=(s_{1}, \underline{u_0}, s_{2}, \underline{u_1}, s_{i_3}, \underline{u_2}, s_{i_4},v)$\\
304 on choisit $u_1=(1,3)$, donc $s_{i_3}=1$\\
305 et $u_2=(2)$, donc $s_{i_4}=1$ et $v =(3)$
306 \item on a $u'(u_1,4,5) = (1,3,4,3,1,5,1,3)$\\
307 et $u'(u_2,5,4) = (2,5,2,4,2)$\\
308 et donc $U = (1,4,2,\underline{1,3,4,3,1,5,1,3},1,\underline{2,5,2,4,2},1,3)$
309 \item et les séquences :\\
311 \item $V= (v^R,N,v) = (3,5,3)$
312 \item $W$ et $W'$ comme précédemment
314 \item $S_{N} = (U^R, V, W')=(\underline{3,1,2,4,2,5,2,1,3,1,5,1,3,4,3,}$\\
315 \hspace{9em} $\underline{1,2,4,1},3,5,3,$\\
316 \hspace{9em} $1,4,2,1,3,1,2,1,3,5)$
319 Fréquences = 10, 6, 8, 4, 4
325 \frametitle{Problématique des CG équilibrés}
327 L'algo précédent n'est pas \textbf{constructif}\\
328 $\rightarrow$ pas d'indication sur le choix de $l$ et des $u_i$ !
331 Formalisation de l'équilibre d'un CG :
333 \item Soit $TC_N : \{1,\dots, N\} \rightarrow \{0, \ldots, 2^N\}$\\
334 nb d'occurrences d'une dimension dans une séquence
335 \item un CG est \textbf{équilibré} ssi :\\
336 \centerline{$\forall i,j\in \{1,...,N\},~|TC_N(i) - TC_N(j)|\le 2$}
337 \item il est \textbf{totalement équilibré} ssi:\\
338 \centerline{$\forall i\in \{1,...,N\},~TC_N(i) = \frac{2^N}{N}$}
342 On a montré qu'il existe au moins un choix de $(u_i)$ dans l'algo RC qui
343 donne un CG équilibré.
349 \frametitle{Construction de CG équilibrés}
353 \item Compter pour chaque dimension, les occurrences générées par l'algo RC :
355 \item Pour les dimensions $N-1$ et $N$ on arrive à $l$
356 \item Pour les autres, on établit une formulation dépendant :
358 \item des occurrences dans la séquence initiale $S_{N-2}$
359 \item des choix d'inclusion ou non dans les $s_{i_j}$, $u_i$ et $v$ :
360 $TC_N(k)=TC(k, \cup_j(s_{i_j})) + 3\times ( TC(k, \cup_iu_i) + TC(k, v)) + TC_{N-2}(k)$\\
363 \item Appliquer la contrainte d'équilibre aux formulations obtenues
367 $\Rightarrow$ On en déduit le nombre d'occurrences de chaque dimension à
368 insérer dans les $s_{i_j}$, $u_i$ et $v$
375 \frametitle{Construction de CG équilibrés}
377 Exemple : $S_2 = (1,2,1,2)$
379 \item Pour avoir l'équilibre final, $l$ doit valoir 4
380 \item On en déduit une décomposition de la forme :\\
381 $S_2 = (s_{i_1},u_0,s_{i_2},u_1,s_{i_3},u_2,s_{i_4},v)$ et $s_{i_1}=1$, $u_0=\emptyset$, $s_{i_2}=2$
382 \item Or, on a : $TC_2(1) = 2$ et $TC_2(2)=2$
383 \item Et pour $k=1$ et $k=2$, il faut vérifier :
384 $TC(k, \cup_j(s_{i_j})) + 3\times ( TC(k, \cup_iu_i) + TC(k, v)) + TC_2(k)=4$\\
385 $TC(k, \cup_j(s_{i_j})) + 3\times ( TC(k, \cup_iu_i) + TC(k, v))=2$\\
386 $\Rightarrow TC(k, \cup_iu_i) + TC(k, v) = 0$\\
387 $\Rightarrow TC(k, \cup_j(s_{i_j}))=2$
388 \item Donc $u_0,u_1,u_2$ et $v$ doivent être vides !
395 \frametitle{Construction de CG équilibrés}
397 Comme $u_0,u_1,u_2$ et $v$ sont vides, on a :
399 \item $u'(u_1,3,4) = (3,4)$
400 \item $u'(u_2,4,3) = (4,3)$
401 \item $U = (1,3,2,3,4,1,4,3,2)$
402 \item $V= (v^R,N,v) = (4)$
403 \item $W=(N-1,S_{N-2},N)=(3,1,2,1,2,4)$
404 \item $W'=(w_2,w_1,W_{[3:]})=(1,3,2,1,2,4)$
405 \item $S_{4} = (U^R, V, W')=(2,3,4,1,4,3,2,3,1,4,1,3,2,1,2,4)$
408 $\Rightarrow$ Fréquences = 4, 4, 4, 4
415 \frametitle{Algo de construction de CG équilibrés}
417 Une fois déterminés les nombres d'occurrences à placer dans les $u_i$, il
418 faut construire la séquence :
420 \item Parcours exhaustif :
422 \item [$\frownie$] Coûteux
423 \item [$\smiley$] Produit tous les CG équilibrés atteignables par cette méthode
425 \item Algorithme glouton :
427 \item Construction des $u_i$ dans l'ordre
428 \item Choix glouton pour chaque $u_i$ :\\
429 sous-séquence maximale de $S_{N-2}$ vérifiant les nombres totaux
430 d'occurrences déterminés pour les $u_i$
432 \item [$\frownie$] Ne produit pas tous les CGE possibles !
433 \item [$\smiley$] Produit rapidement un CG pour n'importe quelle dimension !\\
434 (à partir des dimensions 2 et 3)
441 \frametitle{Algo de construction de tous les CG équilibrés}
443 Algo basé sur la méthode de M.~Wild :
445 \item Basé sur le principe d'exclusion
446 \item Liste des arêtes du N-cube
447 \item Chaque arête prend un état dans l'ensemble $\{0,1,2,g,d\}$ :
449 \item 0 pour supprimée, 1 pour incluse, 2 pour indéterminé (initial)
450 \item $g$ pour un ensemble d'arêtes dont une seule est incluse
451 \item $d$ pour un ensemble d'arêtes dont deux sont incluses
453 \item Ajouts successifs des noeuds en appliquant :
455 \item Condition locale (chaque noeud) : degré 2
456 \item Conditions globales : \\
457 cycle max : nb arêtes à 1 = nb sommets\\
458 cycles inf : pas de cycles < nb sommets
459 \item [$\Rightarrow$] élagage dès qu'une contrainte n'est pas vérifiée
467 \frametitle{Exemple sur le 3-cube}
471 \includegraphics[width=.3\textwidth]{3-cube.pdf}
480 \begin{array}[h]{c|cccccccccccc}
481 \text{arêtes} & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\
483 \text{init} & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 \\
485 \text{ajout a} & d_1 & d_1 & 2 & 2 & d_1 & 2 & 2 & 2 & 2 & 2 & 2 & 2 \\
487 \text{ajout b} & \alert{1} & \bleu{g_1} & 2 & \bleu{g_2} & \bleu{g_1} & 2 & 2 & 2 & 2 & 2 & \bleu{g_2} & 2 \\
488 & \alert{0} & \bleu{1} & 2 & \bleu{1} & \bleu{1} & 2 & 2 & 2 & 2 & 2 & \bleu{1} & 2 \\
490 \text{ajout c} & 1 & \alert{1} & \bleu{g_3} & g_2 & \bleu{0} & 2 & \bleu{g_3} & 2 & 2 & 2 & g_2 & 2 \\
491 & 1 & \alert{0} & \bleu{1} & g_2 & \bleu{1} & 2 & \bleu{1} & 2 & 2 & 2 & g_2 & 2 \\
492 & 0 & 1 & \bleu{g_3} & 1 & 1 & 2 & \bleu{g_3} & 2 & 2 & 2 & 1 & 2 \\
502 \frametitle{Adaptation au contexte de N-cube}
505 \item Ajout de la contrainte d'équilibre dans l'élagage
506 \item Utilisation d'une forme canonique des CG :\\
508 \item [$\Rightarrow$] Unicité des représentants
509 \item [$\Rightarrow$] Ordre global sur les représentants :
511 \item Détection efficace des doublons
512 \item Stockage minimal
521 \frametitle{Forme canonique des CG}
524 \item Alignement sur début d'une sous-séquence avec \textbf{écart max} :
526 \item Plus grand intervalle entre 2 occurrences d'une même dimension
528 \item Écart max sur l'ensemble des dimensions = \textbf{équilibre local}
529 \item Renumérotation des dimensions :
531 \item Affectation dans l'ordre croissant des no \hfill$\Rightarrow$ débuts = (1,2)
532 \item Équivalent à des isomorphismes du N-cube
533 \item Donne un ordre global \hfill$\Rightarrow$ tri possible
535 \item Travaux en cours :
537 \item Unicité de la forme canonique pour une classe d'isomorphismes
538 \item Deux formes canoniques distinctes ne sont pas isomorphes
542 $\Rightarrow$ Génération exhaustive en accord avec la théorie (dims $\le$ 5)
548 \section{Temps de mélange pour une distribution uniforme}
549 \frame{\frametitle{Outline}\tableofcontents[currentsection,hideallsubsections]}
554 \frametitle{Mixing time upper bound}
556 \item Evaluated in a (lazy) context
557 \item $t_{\rm mix}(\varepsilon)$: the steps required to be sure to be $\varepsilon$-close
558 to the stationary uniform distribution
559 \item Theoretical result: $t_{\rm mix}\leq 32N^2+16N\ln (N+1)=O(N^2)$
560 \item In practice: in $N\ln(N)$
566 \section{Experiments}
567 \frame{\frametitle{Outline}\tableofcontents[currentsection,hideallsubsections]}
573 \frametitle{Functions with DSCC Matrix and smallest MT}
576 \begin{tabular}{|c|c|c|c|}
578 Function $f$ & $f(x)$, for $x$ in $(0,1,2,\hdots,2^n-1)$ & $\mathsf{N}$ & $b$
582 $\textcircled{a}$&[13,10,9,14,3,11,1,12,15,4,7,5,2,6,0,8]&4&64\\
586 [29, 22, 25, 30, 19, 27, 24, 16, 21, 6, 5, 28, 23, 26, 1, 17, & 5 & 78 \\
588 31, 12, 15, 8, 10, 14, 13, 9, 3, 2, 7, 20, 11, 18, 0, 4]
593 [55, 60, 45, 44, 58, 62, 61, 48, 53, 50, 52, 36, 59, 34, 33, 49,
596 15, 42, 47, 46, 35, 10, 57, 56, 7, 54, 39, 37, 51, 2, 1, 40, 63,
599 26, 25, 30, 19, 27, 17, 28, 31, 20, 23, 21, 18, 22, 16, 24, 13,
602 12, 29, 8, 43, 14, 41, 0, 5, 38, 4, 6, 11, 3, 9, 32]
607 [111, 124, 93, 120, 122, 114, 89, 121, 87, 126, 125, 84, 123, 82,
609 &112, 80, 79, 106, 105, 110, 75, 107, 73, 108, 119, 100, 117, 116,
611 &103, 102, 101, 97, 31, 86, 95, 94, 83, 26, 88, 24, 71, 118, 69,
613 &68, 115, 90, 113, 16, 15, 76, 109, 72, 74, 10, 9, 104, 7, 6, 65,
615 $\textcircled{d}$ &70, 99, 98, 64, 96, 127, 54, 53, 62, 51, 59, 56, 60, 39, 52, 37, &7 &99\\
616 &36, 55, 58, 57, 49, 63, 44, 47, 40, 42, 46, 45, 41, 35, 34, 33,
618 &38, 43, 50, 32, 48, 29, 28, 61, 92, 91, 18, 17, 25, 19, 30, 85,
620 &22, 27, 2, 81, 0, 13, 78, 77, 14, 3, 11, 8, 12, 23, 4, 21, 20,
628 $\textcircled{e}$& \ldots &8&109\\
638 \frametitle{Nist Test Results}
640 \item Embedded PRNG \textit{Random}: Mersenne Twister algorithm~\footnote{Mersenne twister: a 623-dimensionally
641 equidistributed uniform pseudo-random number generator, (TOMACS) 8 , 3--30}
642 \item Adding chaos properties for Mersenne Twister algorithm: security is not reduced w.r.t. NIST
653 \item Chaos properties can be added to PRNGs
654 \item Iterated map: built by removing from a $\mathsf{N}$-cube a balanced Hamiltonian cycle
655 \item Efficient method to compute balanced Hamiltonian cycles
656 \item Upper bound (quadratic) on the number of iterations
657 that is sufficient to obtain an uniform distribution of the output
658 \item The first time a full automatic method to provide chaotic PRNGs is given
666 \frametitle{Perspectives}
668 \item Actuellement: si le cycle hamiltonien
669 change le $l^{\textrm{ème}}$ bit entre les n{\oe}uds $X$ et $Y$, alors
670 le $l^{\textrm{ème}}$ bit entre $Y$ et $Z$, ne peut pas être changé.
671 \item Si le cycle hamiltonien est globalement équilibré:
672 la probabilité de changer un bit $l'$, $ l' \neq l$, entre $Y$ et $Z$
673 est $\frac{1}{\mathsf{N}-1}$ $\leadsto$ à intégrer.
674 \item Actuellement: marcher dans une partie d'un $\mathsf{N}$-cube
675 \item Futur: modifier plusieurs bits en une seule itération (sauter dans cette partie du $\mathsf{N}$-cube)