Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cryptanalyse de la machine Enigma : entre espionnage et mathématiques

Cryptanalyse de la machine Enigma : entre espionnage et mathématiques

Tout le monde connait la machine à chiffrer Enigma, utilisée par les armées allemandes lors de la seconde guerre mondiale et dont le code fut cassé par Alan Turing. Beaucoup moins nombreux sont ceux qui connaissent Marian Rejewski et ses premiers travaux sur Enigma en Pologne dans les années 30.
Comment les secrets d'Enigma ont été percés est une histoire bien plus longue et rocambolesque qu'on le croit. Entre espions, rendez-vous secrets et agents doubles, mais aussi mathématiques, groupes de permutation et probabilités, laissez-moi vous raconter comment la machine Enigma fut cassée plusieurs fois par les alliés et comment elle fit rentrer la cryptographie dans l'ère moderne.

Jean-Christophe Sirot

April 25, 2022
Tweet

Other Decks in Science

Transcript

  1. #DevoxxFR
    Cryptanalyse de la machine Enigma :
    entre espionnage et mathématiques
    Jean-Christophe Sirot @jcsirot
    1
    v1.0

    View Slide

  2. Jean-Christophe Sirot
    Staff Engineer chez
    2
    ೔ຊޠΛษڧ͍ͯ͠·͢
    Passionné de Cryptographie
    Gamer

    View Slide

  3. Préambule
    Au lendemain de
    la Grande Guerre
    3

    View Slide

  4. Acte I
    Le douanier
    et le fonctionnaire
    4

    View Slide

  5. Gare Centrale de Varsovie, 1929

    View Slide

  6. La machine Enigma
    6
    Batterie
    électrique
    Clavier
    Rotors & ré
    fl
    ecteur
    Lampes
    Tableau des
    connexions

    View Slide

  7. View Slide

  8. Schéma de la machine Enigma
    8
    Q W E R

    View Slide

  9. Schéma de la machine Enigma
    9
    Q
    W E R

    View Slide

  10. Dénombrement
    10
    3 rotors, 26 positions = 105456
    6 paires de 2 lettres = 100391791500
    10586916764424000 « clés »
    1 combinaison / seconde → > 300 millions d’années

    View Slide

  11. Acte II
    L’espion et le mathématicien
    11

    View Slide

  12. Pariser Platz, 1931
    Hans-Thilo Schmidt
    Gustave Bertrand

    View Slide

  13. Verviers
    Rodolphe Lemoine

    alias Rex

    View Slide

  14. View Slide

  15. Marian Rejewski
    Henryk Zygalski
    Jerzy Różycki

    View Slide

  16. Protocole de chiffrement
    16
    1. Sélectionner les 3 rotors à placer dans la machine
    2. Régler les rotors sur leur position du jour
    3. Brancher les
    fi
    ches sur le tableau des connexions
    4. Choisir une clé de « message » composée de 3 lettres
    5. Taper 2 fois la clé de message
    6. Régler les rotors sur la clé de message
    7. Taper le message à transmettre

    View Slide

  17. Protocole de chiffrement
    17
    Exemple de chiffrement :


    Clé de message « HBR »

    Message à chiffrer : « ICH BIN EIN KARTOFFELSALAT »
    Message en clair HBRHBR ICHBINEINKARTOFFELSALAT
    Message chiffré YQYAVY JRRLAYUOLWTHASTVVPMLOMB
    Rotors I / A II / Q III / L
    Fiches BQ CR DI EJ KW MT OS PX UZ GH

    View Slide

  18. Permutations
    18

    View Slide

  19. Permutations
    19

    View Slide

  20. Permutations
    20
    σ ( )=

    View Slide

  21. Permutations
    21
    σ ( )=

    View Slide

  22. Cycles d’une permutation
    22
    0 1 2 3 4 5 6 7 8 9
    8 0 1 3 2 6 4 9 5 7
    0→8→5→6→4→2→1→0 7→9→7 3→3
    0 1 2 3 4 5 6 7 8 9
    8 0 1 3 2 6 4 9 5 7
    0 1 2 3 4 5 6 7 8 9
    8 0 1 3 2 6 4 9 5 7
    0→8
    0→8→5
    0 1 2 3 4 5 6 7 8 9
    8 0 1 3 2 6 4 9 5 7
    0→8→5→6
    0 1 2 3 4 5 6 7 8 9
    8 0 1 3 2 6 4 9 5 7
    0 1 2 3 4 5 6 7 8 9
    8 0 1 3 2 6 4 9 5 7
    Théorème : toute permutation est la composée de cycles à
    supports disjoints qui forment une partition de l’ensemble
    σ = (0856421)(79)(3)

    View Slide

  23. Modèle mathématique
    d’Enigma
    23
    Si le message en clair est M0M1M2 et le message chiffré C0C1C2


    C0 = σ0(M0)

    C1 = σ1(M1)

    C2 = σ2(M2)

    Où σi est la permutation caractérisée par la con
    fi
    guration des rotors
    et du tableau de connexions après i lettres tapées

    View Slide

  24. Modèle mathématique
    d’Enigma
    24
    Intuition de Rejewski : les lettres répétées de l’indicateur permettent
    de trouver des informations sur la clé journalière
    σi = p o ri o p-1
    ri = permutation des rotors
    p = permutation du tableau des connexions

    par exemple (bt)(ap)(mi)(xe)(kc)

    View Slide

  25. Modèle mathématique
    d’Enigma
    25
    Tous les messages commencent par un indicateur de 3 lettres
    tapées 2 fois par l’opérateur : ⍺βɣ
    Tableau des
    connexions
    Rotors &
    Réfecteurs
    Tableau des
    connexions
    ⍺βɣ⍺βɣ YQYAVY

    View Slide

  26. Cryptanalyse polonaise
    26
    Idée de Rejewski : brancher 2 machines Enigma en série

    en positions 0 et 3
    Tableau des
    connexions
    Rotors &
    Réfecteurs
    Pos. 0
    Tableau des
    connexions
    Tableau des
    connexions
    Rotors &
    Réfecteurs
    Pos. 3
    Tableau des
    connexions
    Y ⍺ A
    p r0 p-1 p r3 p-1
    Σ0 = p r0 p-1 p r3 p-1

    View Slide

  27. Cryptanalyse polonaise
    27
    Idée de Rejewski : brancher 2 machines Enigma en série

    en positions 0 et 3
    Tableau des
    connexions
    Rotors &
    Réfecteurs
    Pos. 0
    Tableau des
    connexions
    Tableau des
    connexions
    Rotors &
    Réfecteurs
    Pos. 3
    Tableau des
    connexions
    Y ⍺ A
    p r0 p-1 p r3 p-1
    Σ0 = p (r0 r3) p-1
    Σ0(Y) = A

    View Slide

  28. Cryptanalyse polonaise
    28
    YQYAVY… MOULKI…

    XLJNHG… NNVKAB…

    TZWMQS… AZDCQZ…

    JDWGZS… HWLDCV…

    IEOZIP… WTVUBB…

    UKDHUZ… DXZFDL…

    FWZECL… HTJDBG…

    CUITJF… PAWJYS…
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    __________________________

    View Slide

  29. Cryptanalyse polonaise
    29
    YQYAVY… MOULKI…

    XLJNHG… NNVKAB…

    TZWMQS… AZDCQZ…

    JDWGZS… HWLDCV…

    IEOZIP… WTVUBB…

    UKDHUZ… DXZFDL…

    FWZECL… HTJDBG…

    CUITJF… PAWJYS…
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    ________________________A_

    View Slide

  30. Cryptanalyse polonaise
    30
    YQYAVY… MOULKI…

    XLJNHG… NNVKAB…

    TZWMQS… AZDCQZ…

    JDWGZS… HWLDCV…

    IEOZIP… WTVUBB…

    UKDHUZ… DXZFDL…

    FWZECL… HTJDBG…

    CUITJF… PAWJYS…
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    _______________________NA_

    View Slide

  31. Cryptanalyse polonaise
    31
    YQYAVY… MOULKI…

    XLJNHG… NNVKAB…

    TZWMQS… AZDCQZ…

    JDWGZS… HWLDCV…

    IEOZIP… WTVUBB…

    UKDHUZ… DXZFDL…

    FWZECL… HTJDBG…

    CUITJF… PAWJYS…
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    C_TF_E_DZG__LK_J___M__UNA_

    View Slide

  32. Cryptanalyse polonaise
    32
    YQYAVY… MOULKI…

    XLJNHG… NNVKAB…

    TZWMQS… AZDCQZ…

    JDWGZS… HWLDCV…

    IEOZIP… WTVUBB…

    UKDHUZ… DXZFDL…

    FWZECL… HTJDBG…

    CUITJF… PAWJYS…
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    CPTFREQDZGIXLKSJWBOMHYUNAV
    (ACTMLXNKIZVY)(BPJGQWUHDFER)(OS)

    View Slide

  33. Cryptanalyse polonaise
    33
    On réalise la même opération pour les 2 autres lettres de l’indicateur pour déterminer
    les 3 permutations
    Σ0 = p (r0 r3) p-1 (ACTMLXNKIZVY)(BPJGQWUHDFER)(OS)
    Σ1 = p (r1 r4) p-1 (AYRMSTBFN)(DZQVPGEIX)(CLHW)(JOKU)
    Σ2 = p (r2 r5) p-1 (ADZLVBOPX)(FJGHQWSUI)(EK)(MT)(C)(N)(R)(Y)

    View Slide

  34. Cryptanalyse polonaise
    34
    Théorème : les permutations conjuguées de σ (c.a.d de la forme
    ⍴σ⍴-1) ont la même structure de décomposition en produits de cycles à
    supports disjoints : le même nombre de cycles de chaque longueur

    View Slide

  35. Cryptanalyse polonaise
    35
    Théorème : les permutations conjuguées de σ (c.a.d de la forme
    ⍴σ⍴-1) ont la même structure de décomposition en produits de cycles à
    supports disjoints : le même nombre de cycles de chaque longueur
    Exemple : σ = (ACD)(EF)(B), ⍴ = (AF)(BD)(CE)

    View Slide

  36. Cryptanalyse polonaise
    36
    Théorème : les permutations conjuguées de σ (c.a.d de la forme
    ⍴σ⍴-1) ont la même structure de décomposition en produits de cycles à
    supports disjoints : le même nombre de cycles de chaque longueur
    Exemple : σ = (ACD)(EF)(B), ⍴ = (AF)(BD)(CE)
    ⍴ σ ⍴-1

    ABCDEF → FDEBCA → EAFBDC → CFADBE
    ⍴σ⍴-1 = (EF)(ACD)(B)

    σ = (AC)(BFE)(D)

    View Slide

  37. Cryptanalyse polonaise
    37
    Théorème : les permutations conjuguées de σ (c.a.d de la forme
    ⍴σ⍴-1) ont la même structure de décomposition en produits de cycles à
    supports disjoints : le même nombre de cycles de chaque longueur
    Donc…
    p (r0 r3) p-1 et (r0 r3) ont la même structure de cycles qui ne dépend
    pas des branchements du tableau des connexions
    Idée de Rejewski : lister dans un catalogue les structures des cycles
    caractérisées par toutes les positions possibles des rotors (ri ri+3)


    View Slide

  38. Cryptanalyse polonaise
    38
    p (r0 r3) p-1

    reconstitué à partir des
    messages interceptés
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    CPTFREQDZGIXLKSJWBOMHYUNAV
    r0 r3

    calculé dans le catalogue de
    Rejewski
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    RKQUHJIBFCZPTWSNXMOLVYDEAG
    (ACTMLXNKIZVY)(BPJGQWUHDFER)(OS)

    (MTLPNWDUVYAR)(QXEHBKZGIFJC)(SO)

    View Slide

  39. Cryptanalyse polonaise
    39
    p (r0 r3) p-1

    reconstitué à partir des
    messages interceptés
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    CPTFREQDZGIXLKSJWBOMHYUNAV
    r0 r3

    calculé dans le catalogue de
    Rejewski
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    RKQUHJIBFCZPTWSNXMOLVYDEAG
    (ACTMLXNKIZVY)(BPJGQWUHDFER)(OS)

    (RMTLPNWDUVYA)(QXEHBKZGIFJC)(SO)

    View Slide

  40. Cryptanalyse polonaise
    40
    p (r0 r3) p-1

    reconstitué à partir des
    messages interceptés
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    CPTFREQDZGIXLKSJWBOMHYUNAV
    r0 r3

    calculé dans le catalogue de
    Rejewski
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    RKQUHJIBFCZPTWSNXMOLVYDEAG
    (ACTMLXNKIZVY)(BPJGQWUHDFER)(OS)

    (ARMTLPNWDUVY)(QXEHBKZGIFJC)(SO)

    View Slide

  41. Cryptanalyse polonaise
    41
    p (r0 r3) p-1

    reconstitué à partir des
    messages interceptés
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    CPTFREQDZGIXLKSJWBOMHYUNAV
    r0 r3

    calculé dans le catalogue de
    Rejewski
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    RKQUHJIBFCZPTWSNXMOLVYDEAG
    (ACTMLXNKIZVY)(BPJGQWUHDFER)(OS)

    (ARMTLPNWDUVY)(QXEHBKZGIFJC)(SO)

    View Slide

  42. Cryptanalyse polonaise
    42
    (ACTMLXNKIZVY)(BPJGQWUHDFER)(OS)

    (ARMTLPNWDUVY)(QXEHBKZGIFJC)(SO)
    (AYRMSTBFN)(DZQVPGEIX)(CLHW)(JOKU)

    (AYCTOMQFN)(BVXHJDPIU)(RLGK)(ESWZ)
    (ADZLVBOPX)(FJGHQWSUI)(EK)(MT)(C)(N)(R)(Y)

    (AIULVQSXP)(BKOZDFEHG)(JW)(MT)(C)(N)(R)(Y)
    C-R M-T P-X K-W D-I U-Z B-Q E-J G-H O-S

    View Slide

  43. Acte III
    L’équipe de Bletchley Park
    43

    View Slide

  44. Conférence de Munich, 1938

    View Slide

  45. Alastair Denniston
    Alfred Dillwyn Dilly Knox
    Alan Turing

    View Slide

  46. Bletchley Park


    siège du GC&CS

    View Slide

  47. Cryptanalyse britannique
    47
    Idée de Turing : attaque à texte clair connu
    Principe : rechercher dans un texte chiffré un endroit probable où
    peut se placer un morceau de texte en clair connu « crib »
    Exemple :
    QFZWRWIVTYRESXBFOGKUHQBAISEZ


    View Slide

  48. Cryptanalyse britannique
    48
    Idée de Turing : attaque à texte clair connu
    Principe : rechercher dans un texte chiffré un endroit probable où
    peut se placer un morceau de texte en clair connu « crib »
    Exemple :
    QFZWRWIVTYRESXBFOGKUHQBAISEZ

    WETTERVORHERSAGEBISKAYA

    View Slide

  49. Cryptanalyse britannique
    49
    Idée de Turing : attaque à texte clair connu
    Principe : rechercher dans un texte chiffré un endroit probable où
    peut se placer un morceau de texte en clair connu « crib »
    Exemple :
    QFZWRWIVTYRESXBFOGKUHQBAISEZ

    WETTERVORHERSAGEBISKAYA

    View Slide

  50. Cryptanalyse britannique
    50
    Idée de Turing : attaque à texte clair connu
    Principe : rechercher dans un texte chiffré un endroit probable où
    peut se placer un morceau de texte en clair connu « crib »
    Exemple :
    QFZWRWIVTYRESXBFOGKUHQBAISEZ

    WETTERVORHERSAGEBISKAYA

    View Slide

  51. Cryptanalyse britannique
    51
    Idée de Turing : attaque à texte clair connu
    Principe : rechercher dans un texte chiffré un endroit probable où
    peut se placer un morceau de texte en clair connu « crib »
    Exemple :
    QFZWRWIVTYRESXBFOGKUHQBAISEZ

    WETTERVORHERSAGEBISKAYA

    View Slide

  52. Cryptanalyse britannique
    52
    Idée de Turing : attaque à texte clair connu
    Principe : rechercher dans un texte chiffré un endroit probable où
    peut se placer un morceau de texte en clair connu « crib »
    Exemple :
    QFZWRWIVTYRESXBFOGKUHQBAISEZ

    WETTERVORHERSAGEBISKAYA

    View Slide

  53. Cryptanalyse britannique
    53
    Idée de Turing : attaque à texte clair connu
    Principe : rechercher dans un texte chiffré un endroit probable où
    peut se placer un morceau de texte en clair connu « crib »
    Exemple :
    QFZWRWIVTYRESXBFOGKUHQBAISEP

    WETTERVORHERSAGEBISKAYA

    View Slide

  54. Cryptanalyse britannique
    54
    Choisir une con
    fi
    guration des rotors et construire un « menu »
    RWIVTYRESXBFOGKUHQBAISE

    WETTERVORHERSAGEBISKAYA

    View Slide

  55. Cryptanalyse britannique
    55
    Choisir une con
    fi
    guration des rotors et construire un « menu »
    RWIVTYRESXBFOGKUHQBAISE

    WETTERVORHERSAGEBISKAYA

    View Slide

  56. Cryptanalyse britannique
    56
    Choisir une con
    fi
    guration des rotors et construire un « menu »
    RWIVTYRESXBFOGKUHQBAISE

    WETTERVORHERSAGEBISKAYA

    View Slide

  57. Cryptanalyse britannique
    57
    Choisir une con
    fi
    guration des rotors et construire un « menu »
    RWIVTYRESXBFOGKUHQBAISE

    WETTERVORHERSAGEBISKAYA

    View Slide

  58. Cryptanalyse britannique
    58

    View Slide

  59. Cryptanalyse britannique
    59
    K
    K

    View Slide

  60. Cryptanalyse britannique
    60
    K
    K


    View Slide

  61. Cryptanalyse britannique
    61
    K
    K


    β
    β Ɣ
    Ɣ

    View Slide

  62. Cryptanalyse britannique
    62
    K
    K


    β
    β Ɣ
    Ɣ
    K = Ɣ ?

    View Slide

  63. La bombe de Turing
    63

    View Slide

  64. La bombe de Turing
    64

    View Slide

  65. La bombe de Turing
    65
    Registre
    de test


    1 ligne activée = 👍

    View Slide

  66. La bombe de Turing
    66
    Registre
    de test


    2+ lignes activées = ☠

    View Slide

  67. La bombe de Turing

    View Slide

  68. Conclusion
    68

    View Slide

  69. La cryptographie c’est des maths
    La cryptographie c’est compliqué
    69

    View Slide

  70. Ressources
    70
    Enigma, Dermott Turing
    Notre espion chez Hitler, Paul Paillole
    Histoire des codes secrets, Simon Singh
    Seizing the Enigma, David Kahn

    View Slide

  71. Ressources
    71
    How Polish Mathematicians Deciphered the Enigma, Marian Rejewski

    https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.692.9386&rep=rep1&type=pdf
    The Enigma and the Bombe

    http://www.ellsbury.com/enigmabombe.htm
    Polish Mathematicians Finding Patterns in Enigma Messages, Chris
    Christensen

    https://www.maa.org/programs/maa-awards/writing-awards/polish-mathematicians-
    fi
    nding-
    patterns-in-enigma-messages

    View Slide

  72. View Slide