Crypto-Gram, aléa et conspirations mathématiques…

J’aime lire les différentes newsletters et blogs sécurité. Depuis plus de deux mois, j’avais la tête sous l’eau avec mes différents dossiers à traiter avant la fin de l’année, mais je commence à en voir le bout. Du coup, je me suis remis à lire les blogs des copains (et experts en sécurité, autant faire son boulot correctement) ainsi que les newsletters reçues depuis quelque temps et attendant patiemment dans mon dossier Inbox.

J’ai bien apprécié les deux derniers numéros de la newsletter que Bruce Schneier publie mensuellement : Crypto-Gram. D’une part car cela me permet de me replonger de temps en temps dans la langue anglaise, et d’autre part car il y a très souvent des débats pouvant être « légèrement » polémiques dans ses articles.

Le mois dernier, il critiquait les décisions de la NSA en matière de choix d’algorithme de génération d’aléa. Comme ceux et celles qui ont suivi les cours d’Eric Filiol en Mastère SSI le savent, il est infiniment complexe de produire un bon aléa (d’ailleurs, qu’est-ce qu’un bon aléa ?) et nombreux sont les risques de se retrouver avec du mauvais aléa au final… mauvais donc mettant en péril toute la chaîne d’outils cryptographiques associés (algorithmes, protocoles, etc.) permettant de garantir qu’un tiers aura à se décarcasser si il veut déchiffrer le message, par exemple.

Bruce Schneier disait donc que l’algorithme proposé et préconisé par la NSA était à la fois lent et comportant à priori une backdoor… Le titre de son article, « Did NSA Put a Secret Backdoor in New Encryption Standard?« est plus qu’explicite, même le journal Le Monde en parle !

Au fait, comment fait-on pour implanter une backdoor (porte dérobée pour les puristes) dans un algorithme ? En deux mots et en racourcissant un peu, c’est en faisant appel à différentes théories mathématiques récentes, on peut fragiliser l’algorithme de manière à ce qu’il renvoie des valeurs qui ressemblent à de l’aléa, qui passent tous les tests statistiques « officiels » (du genre FIPS 140), mais qui soient tout de même biaisés et permettent de retrouver des « séquences » fragilisant les algorithmes de chiffrement utilisé par la suite. Ne m’en demandez pas plus, je ne suis pas mathématicien et loin d’être spécialiste en la matière.

Pour vous rendre compte de la difficulté de la chose, il y a des experts sur Rennes qui donnent des séminaires annuels auxquels je ne comprends absolument rien, mais peut-être que cela vous intéressera, je l’espère ! Et pour illustrer la complexité de la chose, voici par exemple l’intitulé d’une présentation donnée précédemment par une éminente professeure de l’EPFL (honneur à la Suisse !) et pris quasi-au hasard parmi la liste :

« Corps de nombres, réseaux euclidiens et codes espace-temps »

Soit K un corps de nombres algébriques. L’image par le plongement canonique de l’anneau des entiers, et plus généralement de tout idéal de K, est un réseau dans un espace euclidien. Plus généralement, on peut définir une notion de plongement généralisé, qui donne encore lieu à des réseaux euclidiens associés au corps de nombres, et qui permet d’avoir une beaucoup plus grande flexibilité. Cette notion est très utile pour l’étude du corps de nombres, pour construire des réseaux intéressants, et aussi pour obtenir des codes performants à la fois pour le réseau Gaussien et le réseau à évanouissements de Rayleigh. En effet, on obtient des « space-time codes » (codes espace-temps) à partir des réseaux définis comme ci-dessus. Ces réseaux ont une grande diversité, ce qui est avantageux pour obtenir des codes adaptés aux réseaux à évanouissements.

C’est probablement limpide pour les habitués, mais avec ça, ne vous étonnez pas si il est relativement facile d’implémenter toutes les backdoors mathématiques possibles et inimaginables dans tous les algorithmes un peu sophistiqués sans que le commun des mortels s’en rende compte !

Pour en revenir à notre générateur d’aléa biaisé, une étude (bon courage pour la lecture ! sinon il y a le résumé ici) avait déjà été menée il y a moins d’un an, et menant à la découverte de certaines faiblesses dans l’algorithme, sous certaines conditions.

Et le problème vient de ces conditions, justement.

Pour ceux et celles qui ont déjà mis leur nez dans des algorithmes cryptographiques ou de génération d’aléa un tant soit peu sérieux, savent qu’il faut initialiser les S-Boxes et autres vecteurs d’initialisation avec des constantes, ou seeds. Bien souvent, on retrouve ces fameuses constantes dans les algorithmes, sans trop savoir d’où elles proviennent, qui en a choisi les valeurs, et pourquoi ces valeurs plutôt que d’autres… Et c’est là que le bât blesse : c’est bien souvent le bureau des standards américain (FIPS) qui fixe ces valeurs. De là à supposer que la NSA porte conseil dans ces choix, il n’y a qu’un pas que certains ont franchi. Mais n’est ce pas ce même organisme qui avait modifié l’algorithme Lucifer mis au point chez IBM pour en faire le DES, gommant par la même occasion certaines de ses failles… et en réduisant la taille de clef ?

Pour terminer, je citerai (encore) la DCSSI qui a publié des règles claires et précises en matière de choix d’algorithmes, de longueurs de clefs etc… A lire sans modération !

Post Sciptum : Coup de gueule relatif à l’utilisation correcte de la langue française !!

Au moins deux à trois fois par semaine j’entends le terme « cryptage » à la radio, via mes collègues, etc. Il y a même, ô blasphème, des sites se qualifiant de « dictionnaires » qui honteusement définissent le terme de manière incorrecte. Je ne sais pas quel effet cela vous fait, mais en bon francophone et francophile, je ne peux pas rester insensible à cela, chaque référence à ce terme incorrect m’horripile au plus haut point et me rend irrascible durant le reste de la journée…

La Wikipédia et les bons dictionnaires, fort heureusement, font la part belles des choses, et rétablissent la vérité :

On dit Chiffrement et non cryptage !

On dit Chiffrer ou Déchiffrer, et non crypter ou décrypter !

Merci par pitié, pour ceux et celles parmi mes lecteurs et lectrices assidues qui auraient réussi à lire mon article jusqu’ici, de rectifier dans vos esprits l’effroyable erreur s’il vous arrivait de fourcher votre langue jusqu’à ce jour. Je vous en saurai gré, et de nombreux cryptologues (oui, pour ce terme là ça passe !) également. Merci !

9 Comments »

Bruno Kerouanton on décembre 18th 2007 in IT Security

9 Responses to “Crypto-Gram, aléa et conspirations mathématiques…”

  1. Cédric Pernet responded on 19 déc 2007 at 10:50 #

    On parlera aussi des « contes du chiffrement » alors ? Bon ok je sors :-p

  2. Bruno Kerouanton responded on 19 déc 2007 at 17:35 #

    Tiens, tu as eu le courage de lire jusqu’en bas ? Chapeau !

  3. moi responded on 19 déc 2007 at 20:37 #

    Cryptologues et autres cryptanalystes :)
    Mais je suis de ton avis, crypter, decrypter et cryptage me hérissent le poil… Mais si seulement c’étaient les seules fautes faites par nos « amis », cela ne serait pas si grave que cela…

  4. marc responded on 20 déc 2007 at 12:53 #

    Bonjour

    C’est là effectivement un point d’une importance capitale. Car décrypter, m’explique mon petit Larousse ou mon gros Robert, c’est « mettre au jour la signification sous-jacente de quelque chose », tandis que crypter entend que l’on « transforme pour rendre inintelligible un message ou un signal ». Dans tous les cas, le résultat d’un chiffrement est un cryptage, et le décryptage n’est obtenu qu’après un déchiffrement en bonne et due forme (ou bonnet-haut de forme insisterait JME si son chat de Cheshire voulait bien le laisser parler)

    On se trouve ici face à un distinguo sémantique qui consiste à différencier l’acte et la conséquence. Inconsciemment, c’est là une synecdoque relativement courante. Tout comme l’on rencontre fréquemment cette confusion, à mon humble avis considérablement plus horripilante, entre les mots menace, risque, faille, danger et attaque.

    Par le Saint Esprit de Sel, je ne bondit toutefois pas lorsque l’on associe la notion de GnuRadio et une plateforme SDR de type USRP… là, on frise la métonymie :-)

    Marc (qui « chiffre » tout de même plus souvent qu’il ne « crypte », tout en demeurant parfois très cryptique)

  5. Belingard Jean-Pierre responded on 20 déc 2007 at 16:09 #

    Juste pour compléter l’analyse sémantique…

    On dit effectivement, dans notre langue française, « Chiffrement » et « Déchiffrement ».

    « Décrypter » signifie : essayer de « déchiffrer » sans connaître la clé….

    Cordialement

  6. Bruno Kerouanton responded on 20 déc 2007 at 16:22 #

    @{Marc;Jean-Pierre} : Ca me fait toujours plaisir de voir que des collègues et amis qui ne sont pas « experts techniques à 100% » viennent tout de même lire ici, c’est gentil !

    Je rage… je ressors il y a 10mn d’une discussion avec un expert en sécurité, qui a employé à 3 reprises les « mots bannis » en moins de trois phrases… En attendant les deux claques qu’il mérite car d’une part je sais qu’il lit mon blog et d’autre part je sais qu’il aime la langue française, je l’ai renvoyé à ses dictionnaires, niark !

  7. Nono responded on 24 déc 2007 at 21:23 #

    j’emploie cryptage et décryptage lorsque je m’adresse à un public non initié. On me pose pas de question et tout le monde comprend :)
    Maintenant devant un public érudit, j’emploie effectivement chiffrement, déchiffrement. Ca fait genre on cause le meme langage.

    @Jean-Pierre: oui. Parfois même on utilise -par abus- crypter pour désigner un chiffrement dont on ne connait pas la clé (ou de manière temporaire).

  8. fo0 responded on 18 déc 2008 at 10:13 #

    Bonjour, article intéressant me rappelant un chapitre dans le livre de Zimmermann « PGP » sur l’aventure (ephémère) de ‘Clipper’ qui était conseiller par la CIA pour chiffrer les comm. dans les boites sensibles.

  9. Bruno Kerouanton responded on 05 jan 2009 at 14:29 #

    Et oui, il y aura toujours de cela dans l’histoire de nos systèmes… A en voir l’exemple récent de Microsoft qui avait « oublié » un mécanisme pour fragiliser les algorithmes de Windows à l’export en France. Tant que cela ne se sait pas, ça va… mais après, il faut savoir se justifier… ou faire de l’ombre sur l’affaire !

    De toute manière nombre d’algorithmes restent encore propriétaires et malheureusement la sécurité par l’obscurité est très largement implémentée (blu-ray, cartes MyFair, GSM etc…) avec les résultats que l’on connait : tous ces systèmes sont déjà cassés !

Trackback URI | Comments RSS

Laisser un commentaire