Cryptographie
|
Principes de la CryptographieSignatures numériquesQuelques algorithmes de clef-publique peuvent être utilisés pour produire des signatures numériques. Une signature numérique est une petite quantité de données qui a été créée utilisant quelque clef- privée, et une clef-publique qui peut être utilisée pour vérifier que la signature a été produite utilisant vraiment la clef-privée correspondante. L'algorithme produisant la signature doit être telle que sans savoir la clef-privée il n'est pas possible de créer une signature qui vérifierait comme valide. Les signatures numériques sont utilisées pour vérifier qu'un message vient vraiment de l'envoyeur prétendu (assumant seulement que l'envoyeur sait la clef-privée qui correspond à sa clef-publique). Elles peuvent aussi être utilisées à estamper les documents avec le cachet du temps: quelqu'un de confiance signe le document et son cachet du temps avec sa clef-privée, donc il témoigne que le document a existé au temps énoncé. Les signatures numériques peuvent aussi être utilisées pour témoigner (ou certifier) qu'une clef-publique appartient à une personne particulière. Cela est fait en signant la combinaison de la clef-publique et l'information au sujet de son propriétaire par une clef-privée de quelqu'un de confiance. La signature numérique par un troisième parti (le propriétaire de la clef-privée de confiance), la clef-publique et l'information au sujet du propriétaire de la clef-publique sont souvent appelées des certificats. La raison pour avoir la confiance en la clef du troisième parti est qu'elle peut encore être signée par une autre clef-privée de confiance. Finalement quelque clef doit être une racine de la hiérarchie de confiance (vous n'avez pas la confiance car la clef-publique a été signé par quelqu'un, mais car vous croyez a priori que vous pouvez avoir la confiance en celui qui a signé la clef-publique). Dans une infrastructure centralisée il y a très peu des clefs racines dans le réseau de la confiance (par exemple, les agences de confiance du gouvernement; les telles clefs racines sont aussi appelées les autorités de la certification). Dans une infrastructure distribuée là vous n'ayez pas besoin d'avoir des clefs racines acceptées universellement, et chaque parti peut avoir des clefs racines de confiance différentes (comme votre propre clef et toutes les clefs signées par vous). C'est le concept du tissu de la confiance utilisé, par exemple, par PGP. Une signature numérique d'un document arbitraire est créée typiquement en calculant un abrégé du message du document, et y enchaînant l'information au sujet du signataire, un cachet du temps, etc. La ficelle résultante est codée utilisant alors la clef-privée du signataire qui utilise un algorithme convenable. Le résultant bloc codé de bits est la signature. Il est souvent distribué avec l'information au sujet de la clef-publique qui a été signée. Pour vérifier une signature, le destinataire détermine en premier s'il a confiance en que la clef appartient à la personne qu'elle est supposée appartenir (utilisant le tissu de confiance ou a priori sa connaissance), et alors il décrypte la signature utilisant la clef-publique de la personne. Si la signature décrypte correctement et est égale à l'information du message (abrégé du message adéquat etc.), la signature est acceptée comme valide. Plusieurs méthodes pour faire et vérifier des signatures numériques sont disponibles librement. L'algorithme le plus largement connu est RSA. Fonctions du Hachis cryptographiqueLes fonctions du hachis cryptographique sont utilisées dans plusieurs contextes, par exemple pour calculer l'abrégé du message quand on fait une signature numérique. Une fonction du hachis comprime les bits d'un message à une valeur du hachis de dimension fixe par un moyen qui distribue également les messages possibles parmi les valeurs du hachis possibles. Une fonction du hachis cryptographique fait ceci par un moyen qui le rend extrêmement difficile de le remonter avec un message qui hacherait à une valeur du hachis particulière. Le hachis cryptographique produit typiquement valeurs du hachis de 128 ou plus de bits. Ce nombre (2128) est vastement plus grand que le nombre de messages différents possible d'être échangé dans le monde durant son existence. La raison pour exiger plus que 128 bits sont basés sur le paradoxe d'anniversaire. Le paradoxe d'anniversaire déclare en gros que donné une fonction du hachis qui crée un abrégé du hachis du message de 128-bits, nous pouvons attendre que le même abrégé du hachis du message sera calculé deux fois quand 264 messages sélectionné aléatoirement ont été hachés. Comme les puces de mémoire meilleur marché pour les ordinateurs deviennent disponible il peut devenir nécessaire d'exiger plus grand abrégé du hachis du message que 128-bits (tel que 160-bits comme est devenu standard récemment). Beaucoup de bonnes fonctions du hachis cryptographique sont disponibles librement. Les fonctions du hachis cryptographique les plus célèbres sont de la famille MD, en particulier MD4 et MD5. MD4 a été cassé, et MD5, en usage répandu, devrait être encore considéré comme certain jusqu'à la preuve du contraire. SHA-1 et RipeMD-160 sont deux exemples qui sont considérés la pointe du progrès. Générateurs du Nombre Aléatoires CryptographiquesLes générateurs du nombre aléatoires cryptographiques produisent des nombres aléatoires pour l'usage dans les applications cryptographiques, tel que pour faire les clefs. Les générateurs du nombre aléatoires conventionnels disponible dans la majorité des langages de programmation ne sont pas convenable pour usage dans les applications cryptographiques (ils sont conçus pour être aléatoire statistiquement, ne pas pour résister à la prédiction par la cryptanalyse). Dans le cas optimal, les nombres aléatoires sont basés sur sources physiques aléatoires vraies qui ne peut pas être prédites. Les telles sources peuvent inclure le bruit d'un appareil du semi-conducteur, les bits moins considérables d'une entrée sonore ou les intervalles entre les interruptions d'appareil ou les touches d'utilisateur. Le bruit obtenu d'une source physique est distillé alors par une fonction du hachis cryptographique pour faire chaque bit dépendre de chaque autre bit. Tout à fait souvent une grande piscine (plusieurs mille bits) est utilisée pour contenir l'aléatoire, et chaque bit de la piscine est fait pour dépendre de chaque bit du bruit d'entrée de chaque autre bit de la piscine par un moyen cryptographique fort. Quand les nombres physiques aléatoires vrais ne sont pas disponibles, les nombres faux-aléatoires doivent être utilisés. Cette situation est indésirable, mais souvent survient sur les ordinateurs d'usage général. C'est toujours désirable d'obtenir quelque bruit de l'environnement - même d'état latent de l'appareil, les statistiques d'utilisation de la ressource, les statistiques du réseau ou l'interrompt du clavier ou quoi que ce soit. Le point est que les données doivent être imprévisibles pour tout observateur externe; pour accomplir ceci, la piscine aléatoire doit contenir au moins 128-bits d'entropie vraie. Les générateurs du nombre faux-aléatoires cryptographiques ont typiquement une grande piscine ("la valeur de graine") contenant aléatoire. Les bits sont extraits de cette piscine en prenant les données de la piscine, en les passant facultativement à travers une fonction du hachis cryptographique pour éviter de révéler le contenu de la piscine. Quand plus de bits sont exigés, la piscine est remuée en codant son contenu par un chiffre convenable avec une clef aléatoire (cela peut être pris d'une partie non retournée de la piscine) dans un mode qui fait chaque bit de la piscine dépend de chaque autre bit de la piscine. Le nouveau bruit de l'environnement devrait être mélangé dans la piscine avant de remuer pour faire plus impossible de prédire même des valeurs antérieures ou futures. Bien que les générateurs cryptographiques du nombre aléatoire fort ne sont pas très difficiles construire si conçu correctement, ils sont souvent négligés. L'importance du générateur du nombre aléatoire doit être accentuée - s'il est fait mal, il deviendra facilement le point le plus faible du système. Plusieurs exemples des générateurs du nombre aléatoires cryptographiques sont disponibles publiquement. [INDEX La Page Précédente La Prochaine Page] Information:
Outilles:
Jouets:
adapté par ing. Rafal Swiecki courrier Novembre, 2004 |