Articles sur Blog

La machine Enigma

Je me rappelle d’avoir entendu parler pour la première fois de la machine Enigma en introduction du cours de cryptographie, tout informaticien normalement devrait connaître au moins de nom cette machine, elle a un lourd pesant historique et technologique. Historiquement c’est la première machine et la plus célèbre à avoir initié la cryptographie moderne, inventée par les Allemands au début du XX-ième siècle, elle était considérée très en avance en son temps, c’était même la machine principale utilisée par l’armée Allemande en Seconde Guerre mondiale pour le cryptage de ses communications, elle était considérée par les Allemands comme la machine infaillible. Et pourtant les Anglais ont réussi à la craquer, essentiellement grâce aux efforts du brillant mathématicien aujourd’hui considéré comme le père de l’informatique Alan Turing. Pour beaucoup d’historiens, le détournement du cryptage d’Enigma avait contribué énormément à basculer la balance en faveur des alliés dans la Seconde Guerre mondiale, et cet exploit intellectuel de Turing l’a propulsé au rang de héros national, et même son histoire avec Enigma est actuellement réinterprétée dans plusieurs romans et réalisations cinématographiques.

Machine Enigma

Sincèrement, la machine m’a subjugué ces derniers jours, personnellement et pour beaucoup d’autres je suppose, la machine reste d’après son nom une machine énigmatique, mystique, et incompréhensible, mais en réalité loin de là, c’est une machine très simple à utiliser, sur la vidéo en haut de la chaîne Numberphile, une brève démonstration de comment cette machine fonctionne est exposée, son utilisation reste assez simple et plus que ça encore, son fonctionnement interne à base de circuits électriques et engrenages mécaniques n’est pas si difficile à comprendre non plus, une petite recherche sur Google devrait suffire pour comprendre comment la machine fonctionne en interne dans ses moindres détails.

Malgré cela, il ne suffit pas de comprendre son fonctionnement pour pouvoir la craquer, spécialement avec les moyens de l’époque, Turing a dû exploiter plusieurs brèches pour détourner son chiffrement, la principale est sans doute le fait que la machine mécaniquement lui est impossible de crypter une lettre par la lettre elle-même, elle doit impérativement changer de lettre après chiffrement, il a aussi utilisé une brèche dans le protocole de communication Nazie, le fait d’utiliser les mêmes mots pour chaque message, comme par exemple  »heil Hitler », ou le fait aussi que la machine n’arrive pas mélanger l’ordre des lettres dans un message, ça réduit énormément l’espace de recherche lors du décryptage du code. Dans la vidéo aussi on peut suivre le développement du calcul probabiliste sur les différents cas initiaux possibles de la machine, les chiffres évoqués sont impressionnants, et ils le sont réellement avec les moyens de l’époque, mais de nos jours ces nombres sont ridicules en comparaison avec les algorithmes de cryptages actuels, je me demande combien de temps faudra-il pour craquer le code d’Enigma en brute force avec les machines modernes ?

Enigma en papier

J’ai aussi réussi à trouver une vidéo très intéressante montant avec le minimum de moyens, dans ce cas une feuille de papier imprimée et une boîte cylindrique de chips, de pouvoir répliquer le fonctionnement interne de la machine d’Enigma. Sans doute ce genre de procédé est utilisé pour des fins éducatifs, ça devrait permettre aux étudiants d’avoir un aperçu réel sur le fonctionnement d’une machine réel de cryptage. Le PDF pour la reconstruction des rotors de la machine est disponible juste ci-dessous :

enigma-rotors-sheet

Steve Wozniak et le droit à la réparation

Une bataille juridique fait rage entre les constructeurs technologiques et industriels et les associations de consommateurs à l’heure qu’il est, ça se passe principalement aux États Unis et en Europe, malgré que ce problème normalement concerne le monde entier. Le droit à la réparation est la prescription des lois visant principalement à contrer les fabricants et constructeurs exigeant de leurs clients l’utilisation exclusive de leurs services pour la réparation ou la maintenance du produit acheté, sous prétexte qu’ils se considèrent comme les mieux placés pour connaître leurs technologies. Il y a quelques années de cela, la première loi pour le droit à la réparation était prononcée en 2012 aux États Unis contre les constructeurs automobiles leurs exigeant la fourniture de documents et d’information techniques au client lui permettant la réparation soi-même ou à travers un tiers indépendant de sa propre voiture.

Steve Wozniak sur le droit à la réparation

Si vous ne l’avez pas encore reconnu, la personne sur la vidéo en haut est Steve Wozniak. Avec Steve Jobs, les deux ont fondé la firme à la pomme Apple, dans le duo Jobs était le génie du marketing et du management, alors que Wozniak était le génie de l’électronique et de la programmation, ça revient à lui en grande partie la création des machines Apple I, Apple II, et plusieurs technologies et programmes utilisés dans les produits Apple. Dans cette vidéo Steve Wozniak prend parti contre Apple (il n’est plus dans la firme) pour leur stratégie de fermer les spécifications de leurs produits et réserver la réparation qu’à quelques partenaires exclusifs, mais le plus intéressent à mon sens dans la vidéo, est de voir que dans l’histoire d’Apple et la technologie dans les années 70-80, les constructeurs et Apple en faisait partie, publiaient les schémas électroniques de leurs machines et même le code open source de leurs programmes d’une façon tout à fait normale, une pratique qui est devenue aujourd’hui impensable.

Le plus simple circuit pour mémoriser 1 bit

La vidéo de la chaîne Youtube Computerphile est un simple exemple de démonstration de comment peut construire une cellule mémoire qui peut sauvegarder 1 bit. Le circuit est construit à base de portes logiques (d’ailleurs on a déjà fait un article sur ces composants), ce sont des composants électroniques numériques pour faire le traitement sur un signal binaire à base de 0 et 1. C’est une démonstration parfaite pour avoir un aperçu sur comment la mémoire est construite à l’intérieur d’une machine.

Mémoire sur 1 bit

Produire gratuitement sa propre puce (sur silicium)

Si en navigant sur internet j’eus à parcourir un titre semblable à celui de cet article, je serais probablement perplexe et incertain de la véracité de l’information, mais pourtant c’est vrai, du moins avec un peu de chance, parce que cette offre est limitée dans le nombre. Pour comprendre la situation revenant quelques années en arrière, la fabrication de puce électronique est un business avec un chiffre d’affaires très élevé de plusieurs centaines de milliards de dollars, réserver pour une pogné d’entreprises aux U.S.A et en Asie, principalement la Chine et la Corée du sud, ce qui limitait énormément l’ouverture de cette technologie aux petites entreprises et aux particuliers, cette industrie est aussi très fermée et très opaque, accessible uniquement avec des chèques à plusieurs millions, ce qui a rendu son apprentissage difficile, seules quelques universités prestigieuses ont les moyens d’offrir à leurs étudiants le privilège de tester leurs créations sur silicium (silicon en Anglais), ce qui se traduit par des problèmes de monopole industriel, technologique, et sécuritaire.

Il faut savoir que la production de puces est souvent une production à grand échelle de plusieurs millions pour permettre aux sociétés de baisser le prix de l’unité, d’ailleurs jusqu’à aujourd’hui, le seul moyen aux particuliers pour pouvoir réduire le prix de production et de partager la galette de silicium (c’est le support de production) sur plusieurs projets, qui permet la réduction du prix à dix milles ou quinze mille dollars pour une centaine de puces sur une technologie ancienne de gravure, ça reste excessivement coûteux pour les étudiants et les hobbyistes, surtout dans des pays en voie de développement.

De zéro à ASIC

La vidéo en haut est une présentation faite sur la chaîne Hack A Day par Matt Venn, ingénieur et éducateur en électronique de profession, il fait un workshop sur Google/Skywater PDK et Google/Skywater Shuttle, un workshop ou parfois appelé atelier en français, est une présentation académique dans lequel le présentant ne fait pas qu’une présentation théorique du sujet mais aussi une démonstration pratique souvent en suivant un exemple concret. À vrai dire Matt Venn fait une démonstration de A à Z de construction d’un ASIC (puce personnalisée sur silicon), il va tout au long de la vidéo utiliser et faire la démonstration de plusieurs outils logiciels open source dans le processus de construction de puces, les plus importants sont MAGIC et OpenLane, le premier pour le dessin et la visualisation des traces microscopiques du circuit interne aux puces, et le deuxième est une pile logicielle de plusieurs applications couvrant et automatisant la majeure partie du processus de conception d’une puce.

OpenLane en soi utilise Google/Skywater PDK qui représente le Process Design Kit de 150 nanomètres open source proposé par Google, un PDK est généralement la partie la plus fermée dans le processus de construction des puces, effectivement c’est une bibliothèque de composants de base comme les portes logiques, les cellules mémoire, les registres…etc, préalablement conçus pour être fabriqués sur un process de 150 nanomètres (technologie de gravure des années 2000), puisque appartement on ne peut pas directement dessiner le circuit sur le silicon, mais il faut utiliser cette bibliothèque déjà testée et approuvée. C’est déjà un très bon move fait ici par Google, et en plus elle a lancé le programme Google/Skywater Shuttle permettant la prise en charge et la production sur silicon d’une quarantaine de projets de particuliers gratuitement si la nature des projets et publique et 100% open source, d’après Google c’est à programmer deux ou trois fois par an.

Pour un ingénieur, un chercheur, ou un simple amateur de conception hardware, c’est un rêve le plus souvent difficilement accessible de pouvoir réaliser sa propre puce, les personnes travaillant dans ce domaine généralement se contentent de la simulation ou réalisation sur FPGA (des puces reprogrammables beaucoup moins performantes que les puces sur silicon). Moi personnellement la première idée qui me vienne à l’esprit pour un projet sur puce est celui d’une puce graphique pour le rendu 2D avec des tiles et des sprites, la communauté de concepteur de consoles ou machines en 2D souvent se plaignent du manque de ces puces, car les puces actuelles sont dans la plupart des cas des puces en 3D souvent inadaptées et compliquées à programmer, ou intégrés dans des SoC le plus souvent surpuissant pour des simples machines en 2D, J’ai vraiment hâte de mettre les mains sur un projet semblable.

100 intégrales en vidéo

Ça faisait longtemps que je n’ai pas mentionné de vidéo sur le professeur avec le pseudonyme BlackPenRedPen, c’est un enseignant de mathématique qui adore faire des vidéos de mathématique sur la résolution de séries d’exercices sur des problèmes en algèbre et en analyse, cette fois-ci c’est les intégrales. Moi personnellement j’adore, malgré que se sont des connaissances très lointaines pour moi, et que j’ai rarement besoin de les utiliser actuellement. Par contre pour les étudiants, et surtout en première et deuxième années, c’est une mine d’or dans laquelle je vous conseille d’en profiter au maximum. Bon visionnage.

100 intégrales en vidéo

25 expériences en Chimie

Mon entourage le plus proche sait très bien que je suis un fervent militant de l’expérience et la pratique dans l’éducation et la pédagogie, et par hasard je suis tombé sur une vidéo sur YouTube d’un enseignant en chimie qui arrive à faire 25 expériences pédagogiques en chimie en moins de 15 minutes. Malgré que je suis très favorable pour ces pratiques pédagogiques, je pense que les expériences exposées dans la vidéo ci-dessous frôlent le danger et la limite de l’acceptable, elles sont si spectaculaires qu’on se croirait dans numéro de magie ou d’illusion. L’exposant en question est appelé Andrew Szydlo, enseignant Anglais bien connu mondialement par ses méthodes d’enseignement hors normes, cette vidéo était une intervention dans TEDx.

25 expériences en chimie

Mécanique simplifiée d’une voiture

Cette vidéo m’a particulièrement plu pour sa simplicité et son aisance à faire comprendre la mécanique des voitures au commun des mortels, en à peine dix minutes l’essentiel de la mécanique automobile est exposé, et cela même en touchant des mécanismes externes au moteur, comme le freinage, le refroidissent et la boîte à vitesses. Bon visionnage.

La mécanique d’une voiture.

Simulateur de montage et de réparation PC

C’est un très bon simulateur/jeux vidéo nommé PC building Simulator , il met le joueur dans la peau d’un réparateur PC, et avec le temps et suivant les jobs demandés, lui faire apprendre au fur et à mesure à construire, acheter et réparer des PC. Il n’est pas 100% fidèle à la réalité mais à mon sens, il est très réaliste et représente une très bonne introduction pour des personnes qui veulent comprendre comment la réparation et le montage des PC s’effectue, et en même assimiler le jargon et les termes techniques utilisés dans ce domaine. La vidéo en bas est une session de jeu d’une personne qui joue pour 30 minutes.

session de jeu sur PC Building Simulator

Le jeu d’instruction des processeurs x86

Les processeurs x86 représentent tous les processeurs des ordinateurs PC qu’on utilise normalement dans nos maisons, bureaux, travail…etc, ça inclut les processeurs des deux firmes Intel et AMD, ces processeurs sont différent des processeurs se trouvant dans nos smartphones et nos tablettes, qui eux utilisent des processeurs ARM. Les processeurs d’Intel et AMD utilisent un jeu d’instruction commun nommé x86, qui leur permet d’être compatible et permet aux logiciels de fonctionner sur des processeurs d’Intel comme sur des processeurs d’AMD malgré d’être des processeurs différents. Le jeu d’instruction (ou ISA : Instruction Set Architecture en Anglais) est par définition la liste de toutes les instructions ou commandes de bas-niveau qu’un processeur peut exécuter, de bas-niveau signifie en langage machine (en binaire) ou en assembleur, l’assembleur étant un langage symbolique au langage binaire, en d’autres termes, ça veut dire qu’au-lieu d’utiliser du pur binaire 0 et 1 pour programmer, l’assembleur utilise des symboles et des mnémoniques équivalents aux instructions en binaire. J’ai pu trouver la liste apparemment complète du jeu d’instruction x86 sans les extensions MMX, AVX, SSE, 3Dnow…etc, les extensions étant des instructions spécifiques pour un domaine donné, comme les applications multimédia, la 3D…etc. Le jeu d’instruction est sur le PDF en bas, ou directement accessible sur le lien de la source originelle.

x86-ISA

L’IA qui programme

Il est clair et bien observé dans la communauté scientifique que la technologie qui produit des avancées considérables et importantes est sans doute l’IA (l’intelligence artificielle), tous les jours il y a des publications scientifiques de partout dans le monde, et tous les jours des barrières qui semblaient au préalable infranchissables pour l’IA tombent actuellement l’une après l’autre. Pas encore dans le domaine public, mais dans le monde de la recherche, on sait bien que l’IA peut rivaliser avec les meilleurs artistes dans pratiquement tous les domaines artistiques, l’IA bat haut la main les meilleurs joueurs de jeux de plateau comme le jeu d’échec ou le jeu Go, dans les jeux vidéo aussi l’IA peut rivaliser avec les meilleurs joueurs professionnels. L’IA est aussi très avancé dans la compréhension et le traitement du langage naturel humain, dans la vision et la reconnaissance des objets dans des images ou des vidéos, aussi dans la simulation des phénomènes physiques réputés difficiles par les méthodes classiques, le deepfake…etc. Mais il y avait deux domaines où l’IA aurait du retard par rapport à l’intelligence humaine, c’est les mathématiques et la programmation, deux exercices de réflexion où selon les chercheurs exige un grand degré abstraction par l’humain. Mais apparemment, c’est plus le cas selon la vidéo en bas, la vidéo présente une revue sur l’IA nommé Codex, très bien présenté par un chercheur et un scientifique très actif sur Youtube, ça chaîne est nommée Two Minute Papers.

L’IA Codex