--------------------------------------------------------------------------------------- X. Les Algorithmes MeiK --------------------------------------------------------------------------------------- [ Introducion ] Dans ce court article, je vais tenter d'expliquer ce que sont les algorithmes et comment ils s'appliquent à l'informatique. Ce n'est carrément pas un mauvais tutorial à 3 euros 50 qu'on trouve sur plein de mauvais sites. Si vous voulez vraiment une formation à la cryptographie et aux algorithmes, soit vous lisez crypto-gram, un très bon magazine sur ça, soit vous attendez un peu et quelqu'un fera peut-être un article dans IOC. Je vous conseille également de lire "Applied Cryptography" de Bruce Schneier qui est sans doute le livre de référence dans ce domaine. I. Qu'est-ce qu'un Algorithme ? : _________________________________ Imaginez que vous avez une variable avec une valeur X et que vous voulez que cette valeur devienne Y - vous ferez subir quelques calculs à votre X et à la fin il aura une autre valeur. Eh bien le calcul effectué pour passer de X à Y c'est ça un algorithme. Vous avez tout été en cours de maths en seconde là ou on vous disait au tout début de l'année de prendre un nombre, lui ajouter deux, puis multiplier par trois...bon, eh bien en gros vous aviez affaire à un algorithme déjà à cette époque là. II. Usages de l'Algorithmique en informatique : _______________________________________________ - On utilise par exemple les algorithmes pour manipuler et gérer les milliards de données transitant par le réseau que tout le monde connait : Internet. - La cryptographie et les signatures électroniques dépendent de la théorie des nombres et d'algorithmes spécifiques et déterminés. Si vous voulez un exemple, ça représente une très grande partie de la sécurité d'internet, tout ce qui est commerce électronique en dépend. Mais ce genre de sécurité est décrit en partie par FozZy dans le HZV#11 dans l'article sur la sécurité des banques électroniques. - Les algorithmes sont ensuite utilisés en programmation pour effectuer diverses taches. L'exemple le plus courant réside dans les différentes formes de tri algorithmique, mais je reviendrais beaucoup plus en détail là dessus dans un autre article. Vous voyez que les algorithmes sont quasiment omniprésents en informatique. Les algorithmes doivent être basés sur des fonctions mathématiques très difficiles à prendre à l'envers (factorisation d'entiers, inversion de valeurs exponentielles, tous les entiers écrits en notation scientifique peuvent être facilement représentés mais difficilement découverts, etc.) Le facteur humain, enfin la chose qui utilisera l'algorithme devra garder secrètes toutes les clés et autres codes (enfin, tout ce qui est connu pour devoir rester secret). Là est le plus gros problème - le social engineering a toujours marché, les hackers en sont pleinement conscients et en tirent un avantage certain. L'algorithme doit être construit de sorte que seules les attaques par brute force soient la solution de décryptage. Sinon ça signifie que l'algorithme contient des failles. L'usage le plus répandu de la cryptogrphie reste sans conteste la sécurité sur Internet, mais ça n'est pas l'ultime solution, et à mon avis, il n'y aura jamais de solution efficace. III. Types de Cryptages : _________________________ A. Cryptage symétrique : ________________________ Le but de la cryptographie est quand même que le texte confidentiel est crypté, transformé en un amas informe de caractères incompréhensibles et que seul celui (ou ceux) qui possède la clé peut le décrypter afin de lui rendre une forme déjà plus compréhensible par le commun des mortels. L'algorithme doit donc être fiable, comme je l'ai dit au dessus, mais aussi doit pas être universel et pouvoir être décodé depuis n'importe quel programme de cryptage. Il faut qu'une personne A envoie son message a sa copine la personne B sans que big brother (C) ne puisse le lire. Le cryptage avec des clés publiques intervient ici. Tout le monde connait l'algorithme, mais la clé miraculeuse renferme le secret...En supposant que l'algorithme est sécure, le seul moyen de lire le message immédiatement est d'avoir la clé, clé qui sera préférablement une phrase longue. Cette procédure est utile si on sait que les gens sont confiants entre eux et qu'ils vont pas donner la clé à tout le monde. ça devient plus compliqué si c'est pas le cas, mais le concept reste le même. B. Les MAC, ou Codes d'autentification de Messages : ____________________________________________________ Ce sont les vérificateurs dela cryptographie. Ils n'ont rien d'autre à faire dans ce domaine, mais ils ont leurs propres algorithmes. L'idée derrière le concept des MAC est simple: quand un paquet, une information ... sont envoyés, ils sont marqués d'un code et le MAC reconnait le code donc il peut authentifier la source et confirmer que le paquet vient bien de l'endroit d'où il est supposé venir et qu'il contient bien les informations théoriquement attendues. C. Fonctions de Hashage : _________________________ L'idée des fonctions de Hashage est qu'elles sont mathématiquement des données informatiques qui sont facilement lues pour confirmer quelque chose, mais intraitables avec le Reverse Engineering à moins de forger la source. Cela peut-être utilisé de différentes manières. La manière la plus connue je pense réside dans le vérificateur d'intégrité Tripwire, dont nous reviendront (beaucoup) plus en détail au prochain numéro. [ Conclusion ] Cet article n'est qu'une petite introduction aux usages basiques de la cryptographie. Dans le prochain numéro il y aura certainement les usages les plus avancés ainsi que peut-être un dossier sur Tripwire.