Théorie de la complexité (informatique théorique)vignette|Quelques classes de complexité étudiées dans le domaine de la théorie de la complexité. Par exemple, P est la classe des problèmes décidés en temps polynomial par une machine de Turing déterministe. La théorie de la complexité est le domaine des mathématiques, et plus précisément de l'informatique théorique, qui étudie formellement le temps de calcul, l'espace mémoire (et plus marginalement la taille d'un circuit, le nombre de processeurs, l'énergie consommée ...) requis par un algorithme pour résoudre un problème algorithmique.
Complexité en espaceEn algorithmique, la complexité en espace est une mesure de l'espace utilisé par un algorithme, en fonction de propriétés de ses entrées. L'espace compte le nombre maximum de cases mémoire utilisées simultanément pendant un calcul. Par exemple le nombre de symboles qu'il faut conserver pour pouvoir continuer le calcul. Usuellement l'espace que l'on prend en compte lorsque l'on parle de l'espace nécessaire pour des entrées ayant des propriétés données est l'espace nécessaire le plus grand parmi ces entrées ; on parle de complexité en espace dans le pire cas.
Réseau de FeistelUn réseau de Feistel est une construction utilisée dans les algorithmes de chiffrement par bloc, nommée d'après le cryptologue d'IBM, Horst Feistel. Elle a été utilisée pour la première fois dans Lucifer et DES. Cette structure offre plusieurs avantages, le chiffrement et le déchiffrement ont une architecture similaire voire identique dans certains cas. L'implémentation matérielle est aussi plus facile avec un tel système même si les choses ont passablement changé depuis la fin des années 1970.
Complexité en moyenne des algorithmesLa complexité en moyenne d'un algorithme est la quantité d'une ressource donnée, typiquement le temps, utilisée par l'algorithme lors de son exécution pour traiter une entrée tirée selon une distribution donnée. Il s'agit par conséquent d'une moyenne de la complexité, pondérée entre les différentes entrées possibles selon la distribution choisie. Le plus souvent, on ne précise pas la distribution et on utilise implicitement une distribution uniforme (i.e.
Attaque par canal auxiliaireDans le domaine de la sécurité informatique, une attaque par canal auxiliaire ( ou SCA) est une attaque informatique qui, sans remettre en cause la robustesse théorique des méthodes et procédures de sécurité, recherche et exploite des failles dans leur implémentation, logicielle ou matérielle. En effet, une sécurité « mathématique » ne garantit pas forcément une sécurité lors de l'utilisation en « pratique ». Une attaque est considérée comme utile dès lors qu'elle présente des performances supérieures à une attaque par force brute.
Complexité paramétréeEn algorithmique, la complexité paramétrée (ou complexité paramétrique) est une branche de la théorie de la complexité qui classifie les problèmes algorithmiques selon leur difficulté intrinsèque en fonction de plusieurs paramètres sur les données en entrée ou sur la sortie. Ce domaine est étudié depuis les années 90 comme approche pour la résolution exacte de problèmes NP-complets. Cette approche est utilisée en optimisation combinatoire, notamment en algorithmique des graphes, en intelligence artificielle, en théorie des bases de données et en bio-informatique.
Chiffrement de fluxvignette|Schéma du A5/1 et ses trois registres à décalage, un chiffrement par flot utiliser pour chiffrer les communications téléphoniques mobiles. Le chiffrement de flux, chiffrement par flot ou chiffrement en continu (en anglais stream cipher) est une des deux grandes catégories de chiffrements modernes en cryptographie symétrique, l'autre étant le chiffrement par bloc. Un chiffrement par flot arrive à traiter les données de longueur quelconque et n'a pas besoin de les découper.
Key schedulevignette|Key schedule dans l'algorithme DES: 16 sous-clés de 48 bits sont créées. En cryptographie, le key schedule (préparation des clés) consiste à créer des sous-clés à partir de la clé principale pour un algorithme de chiffrement par bloc. Le terme est également employé dans le cadre des fonctions de hachage cryptographiques même si la notion de clé est ici différente (la clé provenant en général du message à hacher). Certains chiffrements ont des algorithmes de préparation relativement simples.
Chiffre (cryptologie)En cryptologie, un chiffre est une manière secrète d'écrire un message à transmettre, au moyen de caractères et de signes disposés selon une convention convenue au préalable. Plus précisément, le chiffre est l’ensemble des conventions et des symboles (lettres, nombres, signes, etc.) employés pour remplacer chaque lettre du message à rendre secret. Avec un chiffre, on transforme un message en clair en message en chiffres, ou message chiffré, ou encore cryptogramme.
Histoire de la cryptologieCet article résume l’histoire de la cryptologie de l’Antiquité à aujourd'hui. La cryptologie regroupe à la fois la cryptographie, associée aux techniques de chiffrement d’un message clair, et la cryptanalyse qui concerne l’analyse et le déchiffrement du message codé. Le premier « document » chiffré connu remonte à l'Antiquité. Il s'agit d'une tablette d'argile, retrouvée en Irak, et datant du Un potier y avait gravé sa recette secrète en supprimant des consonnes et en modifiant l'orthographe des mots.