Pourquoi est-ce qu’il est nécessaire d’utiliser un code d'écriture secret?
Chiffrement
Bien que le chiffrement puisse rendre secret le sens d'un document, d'autres techniques cryptographiques sont nécessaires pour communiquer de façon sûre. Pour vérifier l'intégrité ou l'authenticité d'un document, on utilise respectivement un "Message Authentication Code (MAC)" ou une signature numérique. On peut aussi prendre en considération l'analyse de trafic dont la communication peut faire l'objet, puisque les motifs provenant de la présence de communications peuvent faire l'objet d'une reconnaissance de motifs. Pour rendre secrète la présence de communications, on utilise la stéganographie. La sécurité d'un système de chiffrement doit reposer sur le secret de la clé de chiffrement et non sur celui de l'algorithme. Le principe de Kerckhoffs suppose en effet que l'ennemi (ou la personne qui veut déchiffrer le message codé) connaisse l'algorithme utilisé.
Extended Binary Coded Decimal Interchange Code
Les bits de poids fort sont apparus après et ont permis de coder dans une colonne supplémentaire de perforation les distinctions entre chiffres et lettres, ou entre minuscules et majuscules. Le jeu était conçu pour qu’à chaque caractère corresponde aussi au moins un trou, afin de permettre la synchronisation des lecteurs de bandes perforées, c’est pourquoi la était à l’origine inutilisée pour les lettres, les chiffres ayant un trou dédié supplémentaire correspondant à un bit de poids fort. Unicode
Toutefois, cette transformation possède deux schémas de codage incompatibles qui dépendent de l'ordonnancement des octets dans la représentation d'entiers sur . Pour résoudre cette ambiguïté et permettre la transmission entre systèmes hétérogènes, il est nécessaire d'adjoindre une information indiquant le schéma de codage utilisé (UTF-16BE ou UTF-16LE), ou bien de préfixer le texte codé avec la représentation du point de code valide U+FEFF (assigné au caractère « espace insécable de largeur nulle », un caractère aujourd'hui réservé à ce seul usage en tant que marqueur d'ordonnancement des octets), puisque le point de code « renversé » U+FFFE valide est un non-caractère, interdit dans les textes conformes à Unicode et . Fonction de hachage
En cryptographie les contraintes sont plus exigeantes et la taille des empreintes est généralement bien plus longue que celle des données initiales ; un mot de passe dépasse rarement une longueur de 15 caractères, mais son empreinte peut atteindre une longueur de plus de 100 caractères. La priorité principale est de protéger l'empreinte contre une attaque par force brute, le temps de calcul de l'empreinte passant au second plan. Programmation lettrée
La documentation d'un programme lettré fait partie de l'écriture du programme. Au lieu de commentaires proposés comme des petites notes sur le code source, un programme lettré contient les explications des concepts à chaque niveau, les niveaux les plus bas étant relégués à une place appropriée, ce qui permet une meilleure communication des idées. Les extraits du codice_2 lettré ci-dessus montrent comment l'explication du code et sa source sont entremêlés. Une telle exposition des idées crée un flux de pensée qui se rapproche d'un travail littéraire. Knuth a écrit une « nouvelle » qui explique le code du jeu de stratégie "Colossal Cave Adventure". Règles de codage
Les règles de codage s'articulent autour de plusieurs thèmes, les plus courants étant : Les règles de codage permettent d'assurer une meilleure lisibilité du code en utilisant le même style de codage et en évitant les constructions qui rendent le code difficile à lire ou à modifier. Elles permettent également d'éviter les erreurs liées au langage pouvant donner des résultats incorrects, pouvant entraîner des crashs systèmes ou des failles de sécurité. Certaines règles sont également liées aux buts poursuivis par le projet logiciel : portabilité, contraintes mémoires, criticité, etc. Histoire des codes secrets
Histoire des codes secrets est un livre écrit par Simon Singh (titre original en anglais : "The Code Book") publié pour la première fois en 1999. Le livre se décompose en 8 parties chacune passant en revue l'évolution de la cryptographie des pharaons, passant par Marie Stuart, reine d'Écosse et la machine Enigma, jusqu'à l'ordinateur quantique. Chiffrement
Le chiffrement (ou cryptage) est un procédé de cryptographie grâce auquel on souhaite rendre la compréhension d'un document impossible à toute personne qui n'a pas la clé de (dé)chiffrement. Ce principe est généralement lié au principe d'accès conditionnel. Code commercial (cryptologie)
On désigne sous le nom de code commercial des procédés destinés à chiffrer pour dissimuler le sens et à réduire le coût des télécommunications télégraphiques, utilisés aux . Actuellement ces codes ne sont plus destinés à protéger le secret de la correspondance. Point de code
La notion de point de code est utilisée pour l'abstraction, pour distinguer à la fois : Cette abstraction permet ainsi : Pour Unicode, la séquence particulière des bits est appelée une "code unit" – pour le jeu de caractères codés UCS-4, les points de code sont toujours encodés avec des nombres binaires de 4 octets, alors que pour UTF-8, les points de code sont encodés avec des séquences de 1 à 4 octets. Pour plus d'information, voir UTF. Les points de code sont assignés à des caractères abstraits. Un caractère "abstrait" n'est pas un glyphe graphique mais une unité de donnée textuelle. Cependant, les points de code peuvent aussi ne pas être utilisés, et réservés pour des utilisations futures (la majorité de l'espace de code Unicode n'est pas utilisé), ou affectés à d'autres utilisations. Telnet
Une des utilisations majeures de la commande codice_1 était de se connecter à des serveurs telnet, qui demandaient un identifiant, puis un mot de passe, et donnaient une ligne de commande sur la machine distante en échange. Pour cela elle nécessitait le lancement d'un démon sur la machine hôte, souvent appelé codice_2. Cette utilisation est progressivement devenue marginale car le protocole Telnet n'est pas sécurisé (cf. Sécurité). Forteresse digitale
Susan Fletcher, qui est à la tête de la division Cryptologie de la NSA (National Security Agency), se trouve face à un problème sans précédent. Le superordinateur TRANSLTR (comprendre TRANSLATOR) à deux milliards de dollars et trois millions de microprocesseurs utilisé par la NSA pour casser tous les codes qui chiffrent les communications mondiales (courriels, etc.) se trouve devant une impasse lorsqu'un ancien cryptologue de la NSA, Ensei Tankado dévoile l'existence d'un nouvel algorithme. Alors qu’il faut habituellement quelques minutes pour qu’un fichier soit déchiffré, ce superordinateur recherche toujours la solution après déjà 15 heures, ce qui ne peut être expliqué que par l’existence d’un code incassable, la Forteresse Digitale. AxCrypt
Le fichier-clé est en fait un document txt sur lequel est écrit un code qui permet d'ouvrir le fichier. On peut aussi utiliser un fichier déjà existant pour chiffrer un fichier ou un dossier. Pour pouvoir l'ouvrir, il suffit de sélectionner ce fichier pour l'ouvrir. Code-barres
Pour décoder un code-barres, il faut un lecteur relié à un ordinateur. Les premières technologies utilisaient le port RS-232, puis l'USB s'est imposé. La lecture se fait le plus souvent grâce à un rayon laser qui permet le déchiffrage des zones claires et sombres, et ainsi de l'information codée. Télégraphe optique prussien
Les livres de codes utilisaient des tables arrangées thématiquement pour le codage des concepts, des lettres et des chiffres. Si possible, pour le chiffrage d'un message, on utilisait des concepts correspondant à des codes, pour éviter la transmission coûteuse en temps des lettres successives - cela n'était nécessaire que pour la transmission de noms propres, ou plus rarement de concepts non contenus dans le livre de code. Si nécessaire, le texte de la dépêche était ajusté à des concepts codables sans en changer le sens. Pour économiser le temps, on éliminait du texte avant le codage les longues formules de politesse et titres de noblesse habituels dans les lettres écrites - d'ailleurs, il fallait au déchiffrage d'une dépêche rajouter un minimum d'apparat. Les messages arrivaient donc rarement mot à mot comme ils avaient été expédiés ; des raccourcis de formulations débordantes pouvaient couramment atteindre jusqu'à la moitié du texte fourni. Les ponctuations n'étaient transmises que quand elles étaient nécessaires à la compréhension de la phrase. Code noir
À la fin du , dans son livre d'analyse sur le Code noir et ses applications, publié en 1987, le philosophe Louis Sala-Molins, professeur émérite de philosophie politique à Paris-I, estime que le Code noir est . Selon lui, le Code noir sert un double objectif : à la fois réaffirmer et créer des conditions favorables au commerce de la canne à sucre. . Phrase secrète
Une phrase secrète d'une vingtaine de caractères peut donner un faux sentiment de sécurité à un utilisateur qui peut penser qu'une phrase secrète de 20 caractères est beaucoup plus sécuritaire qu'un mot de passe de 8 caractères. En effet, l'entropie d'un texte en anglais étant de 1 à 2 bits par caractère, certaines phrases secrètes peuvent être relativement peu robustes. Le (NIST) a estimé que la phrase secrète de 23 caractères "IamtheCapitanofthePina4" a une entropie de seulement 45 bits. (Notez que ce calcul ne tient pas compte du fait que cette phrase est une citation bien connue tirée de l'opérette "HMS Pinafore". Un hachage MD5 de cette phrase secrète peut être déchiffré en quatre secondes à l'aide du site de cassage de mot de passe crackstation.net, indiquant que la phrase se trouve dans sa base de données de cassage de mot de passe.) ProtonMail
ProtonMail utilise une combinaison de cryptographie asymétrique (clé privée et clé publique) et de chiffrement symétrique pour offrir un chiffrement de bout en bout. Lorsqu'un utilisateur crée un compte ProtonMail, son navigateur web génère une paire de clés RSA (une publique et une privée). La clé publique est utilisée pour chiffrer les messages destinés à l'utilisateur. La clé privée, qui sert à déchiffrer les messages chiffrés reçus par l'utilisateur, est chiffrée dans le navigateur au moyen du mot de passe de messagerie en utilisant l’algorithme AES-256. Cette clé privée chiffrée et la clé publique sont stockées sur les serveurs de ProtonMail. Ainsi, la clé de déchiffrement (la clé privée) étant stockée sur les serveurs de ProtonMail en format chiffré, les développeurs de ProtonMail ne peuvent décoder les messages chiffrés ni la révéler à un utilisateur qui l'aurait oubliée. La clé publique peut être téléchargée par l'utilisateur pour être publiée sur le réseau des serveurs de clés publics, permettant à tout un chacun de lui envoyer des messages chiffrés de bout en bout. Logiciels de cryptographie
Les codes à clé symétrique (ou clé secrète) utilisent une seule et même clé pour le chiffrement et le déchiffrement. Ainsi, pour que les messages chiffrés avec une clé symétrique restent sécurisés, la clé doit rester secrète. Ces systèmes de chiffrement sont privilégiés pour le stockage d'informations sensibles. Les codes à clé symétrique peuvent, à leur tour, être subdivisés en deux catégories : le chiffrement de flux et le chiffrement par bloc. Histoire de la cryptologie
En raison des caractéristiques des fonctions à sens unique, la plupart des clés possibles sont de mauvais choix comme clés de chiffrement ; seule une petite fraction des clés possibles est acceptable. Conséquemment, les algorithmes de chiffrement asymétrique nécessitent des clés très longues pour atteindre le même niveau de sécurité que les clés de chiffrement symétrique qui sont relativement plus courtes. La nécessité de générer des paires de clés très longues et d'effectuer les opérations de chiffrement et de déchiffrement en utilisant ces longues clés rendent les algorithmes de chiffrement asymétrique coûteux en calcul comparativement à la plupart des algorithmes de chiffrement symétrique. Étant donné que ceux-ci peuvent utiliser comme clé secrète n'importe quelle suite de bits (au hasard, ou du moins imprévisibles), une clé secrète jetable peut être rapidement générée pour utilisation à court terme dans une seule session. Par conséquent, il est de pratique courante d'utiliser de longues clés asymétriques pour échanger une clé symétrique jetable beaucoup plus courte (mais tout aussi forte). L'algorithme de chiffrement asymétrique lent envoie, en toute sécurité, une clé de session symétrique ; l'algorithme de chiffrement symétrique, plus rapide, prend ensuite le relais pour le reste de la communication. Logarithme discret
Le logarithme discret est utilisé pour la cryptographie à clé publique, typiquement dans l'échange de clés Diffie-Hellman et le chiffrement El Gamal. La raison est que, pour un certain nombre de groupes, on ne connait pas d'algorithme efficace pour le calcul du logarithme discret, alors que celui de la réciproque, l'exponentiation, se réalise en un nombre de multiplications logarithmique en la taille de l'argument (voir exponentiation rapide), Syndrome du plat de spaghettis
Le code spaghetti est parfois créé intentionnellement par son auteur dans le but de rendre le code impénétrable par offuscation et lutter notamment contre la rétro-ingénierie. L'opération se fait à l'aide d'un logiciel qui transformera un code source ordonné et facile à lire en un plat de spaghettis incompréhensible dont la logique est identique au code original. La Grande Maison
Pourquoi écrire ? et surtout pourquoi le faire dans la langue de l'autre ? Unicode
Unicode est en 2016 le standard leader pour le codage informatique des caractères. Il sert à l'interopérabilité de logiciels, et permet par exemple de copier des textes utilisant des caractères de différents alphabets entre des logiciels différents, même n'ayant pas été spécifiquement conçus pour eux (par exemple un programme en caractères APL dans un texte LibreOffice ou dans un courriel sous Gmail). Tous les textes Unicode ne sont cependant pas codés de la même manière. Suivant la normalisation Unicode adoptée, un même signe graphique peut parfois être codé de différentes manières. Certains textes utilisent la convention , d'autres la convention Et le standard n'interdit pas de mélanger plusieurs conventions dans un même texte. Il en va de même des logiciels. Shellcode
Un shellcode est une chaîne de caractères qui représente un code binaire exécutable. À l'origine destiné à lancer un shell ('/bin/sh' sous Unix ou command.com sous DOS et Microsoft Windows par exemple), le mot a évolué pour désigner tout code malveillant qui détourne un programme de son exécution normale. Un shellcode peut être utilisé par un hacker voulant avoir accès à une interface en ligne de commande. UTF-8
Ce n'est pas toujours le cas des codages contextuels (qui utilisent généralement la compression de données, par exemple SCSU défini dans la note technique standard UTS#6 optionnelle complétant le standard Unicode) et qui peuvent nécessiter de lire le texte complètement depuis le début, ni des codages basés sur plus d'une seule variable d'état (ou qui incorporent des codes supplémentaires de redondance) ; au mieux certains de ces codages peuvent demander d'utiliser des algorithmes complexes de resynchronisation, basés souvent sur des heuristiques qui peuvent échouer ou conduire à de fausses interprétations si on ne lit pas le texte depuis le début (par exemple BOCU-1). Code stabilisateur
On a montré que pour pouvoir corriger les deux types d'erreurs pouvant affecter un seul qubit, un code correcteur formé par une combinaison de plusieurs qubits nécessitait un codage comprenant au minimum 5 qubits. Capables de corriger 1 qubit à l'aide de 5, ils sont un type particulier de code stabilisateur (5,1), permettant de conserver et transmettre de façon efficace un seul qubit d'information de façon fiable "(et avec un taux résiduel d'erreur qui peut être ensuite réduit de façon arbitraire, selon des principes similaires au fameux théorème d'échantillonnage de Nyquist-Shannon pour les bits d'information des ordinateurs classiques)". Code Éternité
Il y a un texte caché dans ce tome, qu’on peut déchiffrer, contrairement aux deux tomes antécédents, voici une rapide description: chaque bas de page, on trouve une suite de symboles composés de barres horizontales qui ne peuvent pas dépasser les 12 barres. Sur chaque page, on peut donc lire un mot, et quelquefois deux ou trois mots. Une des plus grandes difficultés qu’on rencontre pour déchiffrer est due au manque de certaines lettres repères dans les mots (telles que le E qui vaut 12 barres et qui représente donc un des seuls repères qu’on peut avoir). Pour déchiffrer le long message, il faut utiliser la phrase qui explique à qui est dédié ce livre (dans une des premières pages du roman). Cette phrase est traduite dans un langage en « barres horizontales ». Grâce à cet outil, on peut constituer un alphabet incomplet(qu’on peut compléter peu après par déduction), mais qui nous aide à déchiffrer le long texte. Le début est : « UN MESSAGE SIGNE ARTEMIS FOWL CRYPTE. MON CHER NOUVEL ALLIE SI TU AS DECHIFFRE CE CODE ALORS TU AS UNE INTELLIGENCE SUFFISANTE POUR AIDER A MA MISSION. TU AS ENTENDU PARLER DE LA FAMILLE FOWL ET TU IMAGINES CETTE MISSION COMME ILLEGALE OU MEME DANGEREUSE. SOIS EN CERTAIN CE N’E PAS LE CAS. IL TE SERA SIMPLEMENT DEMANDÉ TON AIDE POUR GARDER MES SOUVENIRS LÀ OÙ ILS DOIVENT RESTER. DANS MA TÊTE. OU IL Y A CERTAINES FORCES ACHARNÉES À ME PRIVER DE SOUVENIRS POURTANT LÉGITIMEMENT MIENS. OU CES FORCES VEULENT EFFACER CERTAINS FAITS DE MON CERVEAU, DES FAITS EXTRÊMEMENT IMPORTANTS ET MÊME PRÉCIEUX. OR CES FORCES SONT DES FÉES DOTÉES DE MAGIE ET APPELLEES LE PEUPLE. ON PEUT AISÉMENT DEVINER TES PENSÉES : « CE CHER ARTÉMIS FOWL A SÛREMENT PERDU LA TÊTE. DES FÉES IL NE PEUT PAS ME FAIRE CROIRE CES SOTTISES. » IL Y A DEUX ANS MA RÉACTION AURAIT ÉTÉ EXACTEMENT LA MÊME. MAIS BEAUCOUP DE CHOSES CHANGENT EN DEUX ANS. ». Code (information)
En sciences et techniques, notamment en informatique et en théorie de l'information, un code est une règle de transcription qui, à tout symbole d'un jeu de caractères (alphabet source) assigne de manière univoque un caractère ou une chaîne de caractères pris dans un jeu de caractères éventuellement différent (alphabet cible). Un exemple est le code morse qui établit une relation entre lettres de l'alphabet latin et des séquences de sons courts et longs. Shellcode
L'écriture de shellcodes est soumise à des contraintes. En effet, un shellcode est une chaîne de caractères qui va être injectée en mémoire car elle sera en dehors de l'espace normalement alloué. Or les chaînes de caractères, dans la plupart des langages de programmation, ont l'octet nul (0x00) comme marqueur de fin. Par exemple la fonction strcpy en C arrête la copie de chaine dès qu'elle rencontre cet octet. Un shellcode ne peut donc pas contenir d'octet 0x00, sinon, il ne sera pas entièrement copié. Signature électronique manuscrite
Pourquoi en 2020 une telle solution de signature électronique manuscrite faiblement sécurisée persiste t-elle est un mystère. On peut envisager en toute objectivité que le manque de sécurité donnera du travail supplémentaire aux avocats et juristes. Chiffre (cryptologie)
En revanche, un code opère sur les mots ou les phrases du message, et sur leur signification. Dans le code des "emoticons" dérivés des "smileys", par exemple, JE SUIS CONTENT s'écrira :-) mais il sera plus difficile d'écrire JE PENSE DONC JE SUIS, car cette phrase n'est pas définie dans les tables de références usuelles des "smiley"s. Si deux personnes veulent échanger des messages où cette phrase apparaît secrètement sous forme de "smiley", elles devront en définir la représentation ; de même pour tout autre mot ou phrase qu'elles souhaiteraient échanger de cette façon. L'ensemble de ces conventions peut être réuni dans un livre de code, équivalent d'un dictionnaire qui permet la conversion entre les deux représentations. Le Grand Chiffre utilisé à l'époque de Louis XIV est un exemple de code basé sur un système à répertoires. Codage des caractères
L’Union soviétique quant à elle, n’a pas accès officiellement aux systèmes d’exploitation développés essentiellement aux États-Unis en raison de l’embargo technologique à la fin de la Guerre froide (et donc pas aux discussions et décisions liées à leur développement) et développe sa propre norme KOI8-R pour l’écriture cyrillique en russe, et parvient à l'imposer en Bulgarie et en ex-Yougoslavie pour l’écriture cyrillique du serbo-croate, ainsi que dans d’autres pays utilisant cette écriture. Pour l’Ukraine elle crée une variante KOI8-U destinée à la langue ukrainienne, au départ utilisés sur les systèmes gouvernementaux bien avant que les PC s’imposent chez les particuliers. Ces jeux de caractères codés auront finalement (et ont encore) plus de succès que les pages de codes pour DOS développées par IBM et Microsoft, même dans les pays non soumis à l’embargo américain et qui commencent à utiliser aussi les PC d’IBM et MS-DOS, ou les jeux de caractères cyrilliques utilisés sur les premiers Macintosh d’Apple (souvent encore trop chers pour ces marchés). Longueur de clé
Les clés de chiffrement sont utilisées pour contrôler le fonctionnement d'un algorithme de chiffrement, afin que seule la clé adéquate permette la conversion du texte chiffré vers le texte en clair. Les algorithmes de chiffrement actuels font reposer leur fiabilité sur le fait qu'ils soient connus publiquement. Ainsi, seule la difficulté d'obtention de la clé détermine la sécurité du système, pourvu qu'il n'existe pas d'attaque analytique (une faiblesse de conception de l'algorithme ou du protocole considéré), et en supposant que la clé n'est pas accessible d'une autre façon (vol, extorsion, ou compromission du système informatique). Ce principe aujourd'hui largement admis que la sécurité d'un système devrait dépendre uniquement du secret de la clé a été explicitement formulé par Auguste Kerckhoffs à la fin du et par Claude Shannon dans les années 1940. Ils sont respectivement connus sous les noms de principe de Kerckhoffs et de maxime de Shannon. Mode d'opération (cryptographie)
En cryptographie, un mode d'opération est la manière de traiter les blocs de texte clairs et chiffrés au sein d'un algorithme de chiffrement par bloc. Historiquement, les modes d'opération ont été abondamment étudiés pour leur propriétés de propagation d'erreurs lors de divers scénarios de modification de données durant le chiffrement.  Les développements suivants ont considéré que la protection de l'intégrité était un objectif à atteindre par des moyens complètement différents. Mais aujourd'hui il existe des modes d'opérations qui associent chiffrement et authentification de manière efficace. Livre-code
En cryptographie, un livre-code est un document utilisé pour chiffrer un message. Il contient une table de correspondance qui sert à la fois pour coder et décoder. Au , les livres-codes ne sont pratiquement plus utilisés, remplacés avantageusement par les algorithmes cryptographiques implantés sur ordinateurs. Signature de code
La signature de code () est la signature numérique de fichiers exécutables et de scripts pour confirmer l’identité de l’auteur du code et garantir que le code n’a pas été modifié ou corrompu depuis qu’il a été signé. La signature de code se fait au moyen d’une fonction de hachage cryptographique. Code correcteur
La théorie des codes correcteurs s'intéresse à des perturbations aléatoires ou suivant une distribution particulière. Il n'y a pas d'« intelligence » dans ce bruit dans le sens où il ne s'agit pas d'une tentative frauduleuse de perturbation de ligne mais le résultat d'un phénomène physique inhérent au canal de transmission. Les codes d'authentification sont au contraire utilisés pour contrer un adversaire intelligent qui va tenter de modifier les données selon une procédure particulière qui s'éloigne du bruit sur la ligne. Les buts et les conditions de fonctionnement sont donc différents. Le premier concept est lié à la théorie de l'information alors que le deuxième est du ressort de la cryptologie et ne vise pas à rétablir l'information, tout au plus confirmer que l'information est valide. Shoulder surfing
En général, les techniques évoquées ne sont pas utilisées pour cacher le code secret étant donnée qu'il n'est pas affiché pendant la saisie. Un moyen d’éviter son observation pendant celle-ci est de disposer un cache autour du clavier ou à défaut de celui-ci, d'abriter le clavier sous une main. Écriture non déchiffrée
Au-delà de ces systèmes normés à grande échelle, il existe des ensembles de caractères utilisés par de petits comités. Parmi eux, l'alphabet des sorcières, utilisé jusqu'au pour coder rendez-vous, recettes et autres incantations par celles et ceux qui craignaient à la fois censure et espionnage. Cependant, on est parvenu à le déchiffrer sans mal, grâce à la trahison de certains de ses utilisateurs. Par contre, certains de ces systèmes de chiffrement demeurent totalement mystérieux, comme le manuscrit de Voynich. Archivage électronique
L’archivage électronique doit être sécuritaire. Le document d’archive ne doit être visible que par les personnes ayant le droit d'accès. Un cryptage est utilisé pour que les données ne soient lues que par les personnes autorisées. Tout ceci afin d'assurer la confidentialité des données archivées. Phrase secrète
Les recommandations usuelles sur le choix d'une phrase secrète sont :L'utilisation de codage (par exemple, remplacer les lettres l par des chiffres 1 ou les lettres o par des chiffres 0) augmente la sécurité d'une phrase secrète. Noyau Linux
Alors que la plupart des applications sont développées pour travailler avec des codages de caractères particuliers, la conception du noyau Linux est telle que le codage des caractères utilisé n'est pas connu. En particulier, comme dans les anciens Unix, le nom des fichiers est considéré comme une chaîne d'octets, sans qu'il soit possible de savoir de manière déterministe quel texte spécifique elle représente, en l'absence de la connaissance du codage de caractères utilisés. Binary Ordered Compression for Unicode
Le codage différentiel des autres points de code dotés d’une valeur scalaire (caractères ou non-caractères) doit permettre de coder distinctement des différences positives ou négatives entre tout point de code possible et celui contenu dans la variable d’état : les petites différences (valeurs de "delta" positives ou négatives) nécessitent moins d’octets que les grandes différences. UTF-8
UTF-8 ne peut représenter le caractère de contrôle nul (U+0000) qu'avec un seul octet nul, ce qui pose des problèmes de compatibilité avec le traitement de chaînes qui ne codifient pas séparément leur longueur effective car cet octet nul ne représente alors aucun caractère mais la fin de chaîne (cas très courant en langage C ou C++ et dans les API des systèmes d'exploitation). Si un caractère nul doit être stocké dans un texte sur de tels systèmes, il sera nécessaire de recourir à un système d'échappement, spécifique de ce langage ou système avant de coder en UTF-8 le texte ainsi transformé. En pratique, aucun texte valide ne devrait contenir ce caractère. Une autre solution est d'utiliser une des séquences interdites dans le codage UTF-8 standard afin de coder le caractère par cette séquence ; mais le texte ainsi codé ne sera pas conforme au codage UTF-8 standard, même si le codage ainsi modifié reste un format de transformation universelle conforme (qui ne doit cependant pas être désigné comme « UTF-8 »). Voir la section ci-dessous relative aux variantes non standards basées sur UTF-8. Phrase secrète
Une phrase secrète ou phrase de passe (en ) est un mot de passe d'un nombre important de caractères. On parle de "phrase de passe" plutôt que de "mot de passe" parce que la phrase de passe contient souvent des suites de mots qui ressemblent parfois à une phrase pour des raisons mnémotechniques. Erreur HTTP 451
Cependant, afin de masquer la censure, certains gouvernements, notamment le Royaume-Uni, interdisent l'usage de ce code, en utilisant une obligation de silence. Proposé en 2012 peu après la mort de Ray Bradbury, ce code HTTP fait directement référence à son roman de science-fiction dystopique ", dont le thème est la violente censure des œuvres littéraires reposant sur l'autodafé. Le nombre 451 fait référence à la température en degrés Fahrenheit à laquelle le papier s'enflamme sans besoin d'une flamme extérieure. Codage binaire tronqué
Le codage binaire tronqué est utilisé pour coder un alphabet dont la taille n'est pas une puissance de 2, lorsque la longueur du code est critique. Dans le cas général (lorsque la vitesse est plus importante que la longueur du code), le codage binaire est préféré car il est plus simple et plus rapide à manipuler (notamment car sa taille fixe permet un indiçage immédiat). Chiffrement
Le « code » dans le sens cryptographique du terme travaille au niveau de la sémantique (les mots ou les phrases). Par exemple, un code pourra remplacer le mot « avion » par un numéro. Le chiffrement travaille sur des composantes plus élémentaires du message, les lettres ou les bits, sans s'intéresser à la signification du contenu. Un code nécessite une table de conversion, aussi appelée « dictionnaire » ("codebook" en anglais). Ceci étant, « code » et « chiffrement » sont souvent employés de manière synonyme malgré cette différence. Shellcode
Dans ces deux cas, la technique est la même que précédemment : écrire un « décodeur » avec ces contraintes qui transforme (en mémoire) le véritable code malveillant encodé précédemment. L'écriture du cœur du code malveillant (on parle de "payload") est alors plus facile et indépendante du type de contraintes de la cible. Ainsi, il existe actuellement de véritables bibliothèques de construction de shellcodes permettant de l'assembler par type de fonction à réaliser et par contraintes (par "codeur" à intégrer). Code d'authentification de message
Le MAC assure non seulement une fonction de vérification de l'intégrité du message, comme le permettrait une simple fonction de hachage mais de plus authentifie l’expéditeur, détenteur de la clé secrète. Il peut également être employé comme un chiffrement supplémentaire (rare) et peut être calculé avant ou après le chiffrement principal, bien qu’il soit généralement conseillé de le faire après (Encrypt-then-MAC, on chiffre d'abord le message, puis on transmet le message chiffré ainsi que son MAC). Shellcode
L'écriture d'un shellcode demande alors de n'avoir recours à aucune instruction assembleur contenant un octet nul (à l'exception du dernier). La tâche étant ardue, les concepteurs de shellcodes importants écrivent initialement un « chargeur » de shellcode servant à transformer un code assembleur (pouvant contenir des octets nuls) en un code ne contenant pas d'octet nul (le code du chargeur devant à son tour être écrit sans caractère nul). Une technique classique consiste à transformer chaque octet du code par une opération « ou exclusif » (XOR) : cette opération est simple, réversible, et on peut généralement (quoique pas à coup sûr) trouver une « clé » à appliquer au « ou exclusif » permettant d'éviter les caractères nuls. E-business
Le but d'un certificat numérique est d'identifier le propriétaire d'un document. De cette façon, le destinataire sait qu'il s'agit d'un document authentique. Les entreprises peuvent utiliser ces certificats de différentes manières. Ils peuvent être utilisés en remplacement des noms d'utilisateur et des mots de passe. Chaque employé peut les recevoir pour accéder aux documents dont il a besoin, où qu'il se trouve. Ces certificats utilisent également le cryptage. Cependant, ils sont un peu plus compliqués que le cryptage normal. Ils ont en fait utilisé des informations importantes dans le code. Ils le font afin d'assurer l'authenticité des documents ainsi que la confidentialité et l'intégrité des données qui accompagnent toujours le cryptage. Les certificats numériques ne sont pas couramment utilisés car ils sont source de confusion pour les gens à mettre en œuvre. Il peut y avoir des complications lors de l'utilisation de différents navigateurs, ce qui signifie qu'ils doivent utiliser plusieurs certificats. Le processus est en train d'être ajusté pour être plus facile à utiliser. ROT13
Le ROT13 () est un cas particulier du chiffre de César, un algorithme simpliste de chiffrement de texte. Comme son nom l’indique, il s’agit d’un décalage de de chaque lettre du texte à chiffrer. Son principal aspect pratique est que le codage et le décodage se font exactement de la même manière. Bitcoin
Ces scripts sont écrits dans un langage interne conçu par Nakamoto. Ce langage est volontairement minimaliste et non Turing-complet afin notamment d'éviter que le système ne puisse s'engager dans des boucles infinies. L'utilisation des scripts doit permettre au logiciel de s'adapter aisément à des évolutions ultérieures et permettre la prise en charge de fonctionnalités avancées telles que les transactions impliquant plusieurs signatures ou les contrats intelligents. HyperText Transfer Protocol Secure
En bref : serveur et client se sont reconnus, ont choisi une manière de chiffrer la communication et se sont passés de manière chiffrée un code (clé de chiffrement symétrique) pour dialoguer de manière secrète. Xerox Character Code Standard
Le Character Code Standard (XCCS) est un codage de caractère sur 16 bits, créé par Xerox en 1980, pour l’échange d’information entre les éléments du Xerox Network Services, dans le but de coder les caractères nécessaires pour les langues utilisant l’écriture latine, l’écriture arabe, l’hébreux, l’écriture grecque, l’écriture coréenne, l’écriture cyrillique, écritures japonaises, l’écriture chinoise, ainsi que des symboles techniques. Discret 11
Il y a aussi le « code universel », c'est-à-dire celui qui est programmé à l'émission entre le dernier jour du mois à minuit et le premier lundi du mois suivant à 9 heures du matin. Ce code particulier ne nécessite pas d'entrer un code particulier dans le mois en cours.  À l'arrivée le décodeur détecte, après analyse du signal vidéo, la présence de lignes forcées au niveau du noir et du blanc sur les dernières lignes (310 et 622), la ligne 310 est mise au blanc toutes les 6 trames et permet au décodeur de se synchroniser et d'enclencher le déchiffrement, quant à la ligne 622 elle sert au décodeur à calculer le polynôme à utiliser (6 possibles) pour initialiser le générateur pseudo-aléatoire. Cryptographie multivariée
Pour déchiffrer, il faut posséder comme clé secrète un moyen d'inverser formula_6, noté généralement formula_7. Ce moyen est spécifique au chiffrement multivarié considéré, et c'est souvent en étudiant la manière dont formula_6 et son inverse sont choisis qu'une attaque a été découverte : en effet, il s'agit souvent d'une opération aisément inversible « masquée » par deux transformations, de manière tout à fait analogue à l'approche utilisée pour les chiffrements à base de codes, tels que le cryptosystème de McEliece, pour cacher le code. Histoire de la cryptologie
Le code de César a été utilisé sur des forums Internet sous le nom de ROT13 (rotation de 13 lettres ou A → N…). Le ROT13 n'a pas pour but de rendre du texte confidentiel, mais plutôt d'empêcher la lecture involontaire (d'une réponse à une devinette, ou de l'intrigue d'un film). Son utilisation est simple : il suffit de rechiffrer un texte, codé en ROT13, une deuxième fois pour obtenir le texte en clair. Chiffrement RSA
Une condition indispensable est qu'il soit « calculatoirement impossible » de déchiffrer à l'aide de la seule clé publique, en particulier de reconstituer la clé privée à partir de la clé publique, c'est-à-dire que les moyens de calcul disponibles et les méthodes connues au moment de l'échange (et le temps que le secret doit être conservé) ne le permettent pas. UTF-8
Cependant il peut exister des systèmes utilisant une telle extension de l'UTF-8 (ou de l'UTF-32) de façon interne et privée, mais qui n'est pas destinée aux échanges de textes standards entre systèmes interopérables. Ce type de codage est plutôt destiné à une utilisation intermédiaire nécessaire aux traitements internes dans certaines bibliothèques de code ou des formats de fichiers ou sérialisation spécifiques souhaitant encapsuler de façon universelle autre chose que du texte (par exemple des objets binaires, du code exécutable, des images, des marques spéciales, des métadonnées, des jeux de caractères privés ou non encore normalisés et faisant l'objet de tests ou d'évaluation au sein d'un groupe limité d'utilisateurs utilisant un accord privé spécifique entre eux, etc.). Chiffrement du courrier électronique
Pourquoi chiffrer le courrier électronique ? Il faut savoir que lorsqu'un message électronique est envoyé, celui-ci transite par plusieurs ordinateurs (le message est enregistré sur le disque dur de ce qu'on appelle des serveurs relais) avant d'arriver sur l'ordinateur du destinataire. Ce « voyage » n'est pas sans péril. En effet, ces ordinateurs appartiennent à des entreprises, des administrations ou des personnes qui peuvent ne pas s'embarrasser de scrupules et lire ce courriel. Celui-ci, de par sa conception même et les protocoles qu'il utilise, circule en clair, c'est-à-dire non chiffré, comme une carte postale sans enveloppe. L'intérêt du chiffrement est là car même si le risque d'interception est faible, il augmente régulièrement. De plus, même si celui qui fait transiter le message a une déontologie professionnelle et une éthique qui lui interdisent de le lire, il peut être important de cacher son contenu, pour protéger d'éventuels secrets professionnels ou tout simplement son intimité. Lempel-Ziv-Welch
Afin d'éviter au dictionnaire de croître démesurément (le nombre de bit à écrire par code devient rédhibitoire pour conserver une compression efficace) il peut être prévu un nombre d'entrées maximum dans le dictionnaire. Lorsque ce nombre est atteint, le codeur insère un code spécial et vide complètement le dictionnaire. Le processus de codage recommence alors comme pour le premier caractère. Le décodeur purgera son dictionnaire quand il rencontrera ce code spécial. Code secret (film)
En avril 1917, l'ancien journaliste William Gordon est engagé dans l'armée américaine. La veille de son départ de Washington pour la France, il rencontre Joel Carter une mondaine lors d'une réunion d'ambassade. Le couple passe la journée ensemble où Gordon confie que parce qu'il a autrefois écrit un livre sur la cryptographie sous un nom de plume, l'armée le recherche pour le faire travailler derrière un bureau, mais qu'il est impatient d'aller au combat. Juste avant de monter dans son train, Gordon reçoit l'ordre de se présenter au secrétaire adjoint à la Guerre John Carter. Malgré ses objections, Carter affecte Gordon à la salle de décryptage pour l'aider à déchiffrer un message allemand intercepté que le major Brennan, un cryptologue britannique expérimenté, n'a pas réussi à déchiffrer. Gordon apprend que Carter est l'oncle de Joel, et qu'elle a révélé sa véritable identité pour le garder à Washington. Histoire de la cryptologie
Pour que deux utilisateurs d'un algorithme à clés asymétriques puissent communiquer en toute sécurité sur un canal non sécurisé, chaque utilisateur doit connaître sa clé publique et sa clé privée ainsi que la clé publique de l'autre utilisateur. Voici un scénario de base : Alice et Bob ont chacun une paire de clés qu'ils ont possiblement utilisées pendant des années avec de nombreux autres utilisateurs. Au début de leur conversation, ils échangent leurs clés publiques en clair sur un canal non sécurisé. Alice chiffre ensuite un message en utilisant sa clé privée, puis chiffre à nouveau le résultat en utilisant la clé publique de Bob. Le message doublement chiffré est ensuite envoyé d'Alice à Bob sur un canal non sécurisé. Bob reçoit le flux de bits et le décrypte en utilisant sa propre clé privée, puis le décrypte de nouveau en utilisant la clé publique d'Alice. Si le résultat final est reconnaissable comme un message, Bob est certain que le message provient de quelqu'un qui connaît la clé privée d'Alice (probablement Alice elle-même si elle a bien protégé sa clé privée), et que quiconque a écouté le message sur le canal non sécurisé n'a pu déchiffrer le message parce qu'il n'avait pas la clé privée de Bob. Code PIN
Un code PIN (de l'anglais '), code NIP ("numéro d'identification personnel") ou code confidentiel est un code comportant au moins , destiné à authentifier le titulaire d'une carte bancaire, d'une carte SIM ou d'une carte à puce. Au contraire des mots de passe, le code PIN est restreint aux seuls caractères numériques, car le clavier sur lequel il est composé se limite généralement aux touches numériques (terminal de paiement électronique, clavier téléphonique…). Le Code Rebecca
Dans la tentative d’interception l’espion a été obligé de détruire son code de ses communications secrètes. Il doit donc se rendre dans le désert, auprès de ses cousins pour en trouver une copie. Pour se couvrir il prend en otage l’espionne britannique et le fils de Vandam. Néanmoins ce dernier ne va pas se laisser déborder. Il sait en effet que l’espion est en possession de données sensibles qui peuvent faire basculer la guerre. Il faut a tout prix l’empêcher d’émettre et de les transmettre à Rommel. Cryptologie
Toutes deux visent à assurer la confidentialité de l'information, mais la cryptographie à clef secrète nécessite au préalable la mise en commun entre les destinataires d'une certaine information : la clef (symétrique), nécessaire au chiffrement ainsi qu'au déchiffrement des messages. Dans le cadre de la cryptographie à clef publique, ce n'est plus nécessaire. En effet, les clefs sont alors différentes, ne peuvent se déduire l'une de l'autre, et servent à faire des opérations opposées, d'où l"'asymétrie" entre les opérations de chiffrement et de déchiffrement. Code secret (film)
Brennan soupçonne sa maîtresse, Olivia Karloff, d'avoir volé son code. Il la prend en flagrant délit, mais elle tire sur lui et le tue dans la panique. Ses supérieurs, mécontents, lui ordonnent de détourner les Américains du réseau d'espionnage. Bien qu'il fasse envoyer à Olivia une circulaire contenant un message écrit à l'encre invisible, et qu'il la fasse venir pour l'interroger, Gordon la libère pour qu'elle le mène au reste des espions. Joel pense à tort qu'il a été enchanté par ses ruses de séduction. Olivia prévient secrètement le capitaine Nicholas Nieterstein, un attaché d'ambassade étranger qui fait partie du réseau d'espionnage, que les Américains ont la circulaire, qui nécessite l'utilisation d'un réactif pour révéler le message. Olivia apprend que le réseau d'espionnage va trahir Nieterstein pour tromper les Américains et leur permettre de transmettre le lieu de rendez-vous au convoi de troupes. Règles de codage
Les règles de codage participent à la qualité logicielle. Ainsi, plus l'importance des développements est élevée, plus les besoins en règles de codages sont nécessaires. Ainsi, les normes DO-178B pour l'avionique et MISRA C pour l'automobile imposent un ensemble d'objectifs à atteindre sur le logiciel selon la criticité qui lui est attribuée. Cette criticité est déterminée par les contraintes soumises au logiciel (mémoire et CPU disponible, fiabilité, robustesse, etc.) et les risques liés à l'utilisation de ce logiciel (risques humains, risques financiers, etc.). Les règles de codage sont adaptées en conséquence. Par exemple, un logiciel embarqué disposant de peu de mémoire ne devra pas utiliser l'allocation dynamique de mémoire. Autre exemple : le logiciel redondant d'une fusée doit être développé par une équipe totalement indépendante et séparée (pas de partage de code, pas de partage de la conception, etc.) de l'équipe développant le logiciel redondé, le développement devant se faire avec les mêmes contraintes pour les deux équipes. Cryptographie symétrique
Cette notion de sécurité calculatoire pose la question de la sécurité absolue. On sait depuis Claude Shannon et son article (1949) que le chiffrement de Gilbert Vernam qui consiste à ajouter au message en clair une clé de la même longueur (voir XOR) est parfaitement sûr. C'est le seul pour lequel nous soyons capables de prouver une telle chose. L'inconvénient est que pour chiffrer un message de , il faut au préalable avoir échangé une clé de avec le destinataire du message, et cela par une voie absolument sûre, sinon chiffrer devient inutile. Très peu de cas nécessitent un tel système, mais c'était toutefois le système utilisé pour le Téléphone rouge entre le Kremlin et la Maison-Blanche. Cryptex
Cryptex est un néologisme utilisé par Dan Brown dans son roman "Da Vinci Code" pour désigner une sorte de coffre fort portable conçu pour cacher des messages secrets. Il est aussi utilisé par Sarah Fincher et Ryan McCray dans la drague à "Skeleton Creek". Page de code
La "démocratisation"/massification de la mise en réseau internationale des ordinateurs vers les années 1995-2000, et l'augmentation des échanges internationaux de données textuelles, ont fait naître le besoin d'une unification du codage des caractères afin de dépasser les problématiques des pages de code. En 2010 dans les nouveaux logiciels, les pages de code ont tendance à tomber en désuétude, au profit d'Unicode. Pour des raisons notamment techniques, culturelles, ou économiques, certains logiciels plus anciens continuent cependant à fonctionner avec une logique de pages de code. Cryptologie
Le pendant de cette confidentialité se trouve dans la cryptanalyse. Évidemment, depuis l'existence de ces codes secrets, on a cherché à les "casser", à comprendre les messages chiffrés bien que l'on n'en soit pas le destinataire légitime, autrement dit "décrypter". Si la cryptanalyse du système de César est aisée (un indice : les propriétés statistiques de la langue, en français, le "e" est la lettre la plus fréquente), des systèmes beaucoup plus résistants ont vu le jour. Certains ont résisté longtemps, celui de Vigenère ("Le traité des secrètes manières d'écrire" 1586) par exemple, n'ayant été cassé par Charles Babbage qu'au milieu du . D'autres, bien que n'ayant pas de "faille" exploitable, ne sont plus utilisés car ils sont à la portée des puissances de calcul modernes. C'est le cas du DES avec sa clef de 56 bits jugée trop courte car elle peut être trouvée par recherche exhaustive ("force brute"). Nom de code
Le nom de code est une expression qui permet de désigner un mot, une phrase, un concept, une personne, une opération de manière concise, non ambiguë et confidentielle. Les noms de code sont principalement employés dans l'armée, les services secrets, l'industrie ou le commerce pour garantir le secret. Code secret (film)
Les États-Unis sont profondément préoccupés par la menace que font peser les U-boat sur leurs convois de troupes et de ravitaillement en direction de l'Europe. Pour vaincre cette menace, des escortes britanniques iront à la rencontre des transports américains avant qu'ils n'entrent dans la zone la plus dangereuse. Le point de rendez-vous ne sera donné aux navires que la veille de leur rencontre, transmis par radio dans un nouveau code conçu par le major Brennan. Un navire de munitions est envoyé en premier pour tester le nouveau système. Cependant, un réseau d'espions allemands dans la ville a déjà eu accès au code et laisse passer le navire pour attirer des transports de troupes plus précieux dans leur piège à sous-marins. Gordon déchiffre le message intercepté et réalisant que le code a été compromis, alerte ses supérieurs. Un convoi de troupes a déjà pris la mer et dans trois jours, ils devront lui envoyer le lieu de rendez-vous dans le code qui n'est plus secret. Codage entropique
Un code doit respecter certaines propriétés pour être utile: une concaténation de mots de code doit avoir un décodage unique, aisé, et permettre la plus grande compression possible. Certaines conditions sont imposées au code pour satisfaire ces propriétés. Code binaire
En informatique et en télécommunications, les codes binaires sont utilisés pour diverses méthodes de codage de données, telles que des chaînes de caractères, en chaînes de bits. Ces méthodes peuvent utiliser des chaînes à largeur fixe ou à largeur variable. Dans un code binaire à largeur fixe, chaque lettre, chiffre ou autre caractère est représenté par une chaîne de bits de même longueur; cette chaîne de bits, interprétée comme un nombre binaire , est généralement affichée dans les tables de codes en notation octale, décimale ou hexadécimale. Il existe de nombreux jeux de caractères et de nombreux codages de caractères pour ceux-ci. Turbo code
Le principe des turbo codes, comme tout code correcteur d'erreur, est d'introduire une redondance dans le message afin de le rendre moins sensible aux bruits et perturbations subies lors de la transmission. Le codage consiste à utiliser deux codeurs simples, dont les entrées ont été entrelacées ; ainsi, chaque codeur voit une série d'informations différentes à son entrée. Code source
Pour éviter ces écueils, et puisqu'une traduction est toujours nécessaire, l'être humain écrit un code textuel afin qu'il soit plus lisible, plus compréhensible et plus simple à maintenir : c'est le code source écrit dans un langage de programmation. Il est, dans la plupart des cas, plus lisible, plus simple à écrire et indépendant du système cible. Un programme tiers (compilateur, interpréteur ou machine virtuelle) se charge de la traduction du code source en code binaire exécutable par la cible. Âge sombre numérique
Le chiffrement peut exacerber le problème de la préservation des données, car le décodage ajoute de la complexité même lorsque le logiciel adéquat est disponible. Historiquement, les données cryptées sont assez rares, mais même les moyens très simples disponibles à travers l'histoire ont fourni de nombreux exemples de documents qui ne peuvent être lus qu'avec beaucoup d'effort. Par exemple, il a fallu la capacité d'un projet de calcul distribué pour briser le code généré mécaniquement d'un message tactique sous-marin de la Seconde Guerre mondiale. Le chiffrement moderne est utilisé dans de nombreux autres documents et médias en raison des éditeurs qui veulent la protection promise par la gestion des droits numériques Code impénétrable
Il s’agit également d’un hobby pour certains programmeurs. Ce loisir consiste en l'écriture de code source dont la fonction est difficile à déterminer. L'usage d'une syntaxe illisible, de particularités sémantiques peu connues ou peu recommandables du langage utilisé ou d'algorithmes peu naturels sont différentes techniques d'obscurcissement. Signature de code
De nombreuses implémentations de signature de code utilisent une paire de clés, une clé publique et une clé privée, similaire au processus employé par SSL ou SSH. Par exemple, dans le cas de .NET, le développeur utilise une clé privée pour signer ses bibliothèques logicielles et ses fichiers exécutables chaque fois qu’il les modifie. Cette clé sera unique à un développeur ou un groupe de développeurs. Le développeur peut générer cette clé lui-même ou l’obtenir d'une autorité de certification de confiance. Microsoft Excel
En effet, à cause d'un niveau chiffrement faible, de nombreux logiciels permettent de découvrir instantanément le mot de passe utilisé par Excel, quelle que soit sa longueur ou le jeu de caractères utilisé. Il est conseillé de choisir au moment de la création/sauvegarde du fichier, l'option qui propose un chiffrement plus fort que celui assigné par défaut. Chiffrement par bloc
Par exemple, un algorithme de chiffrement par bloc peut prendre un bloc de 128 bits de texte en clair comme entrée, et produire un bloc de 128 bits de texte chiffré correspondant. La transformation exacte est contrôlée à l'aide d'une deuxième entrée - la clé secrète. Le décryptage est similaire : l'algorithme de décryptage prend, dans cet exemple, un bloc de 128 bits de texte chiffré avec la clé secrète, et donne le bloc de 128 bits de texte en clair d'origine. Cryptographie post-quantique
La cryptographie sur les codes est une autre solution pour concevoir des cryptosystèmes post-quantiques introduite en 1978 par Robert McEliece. Le problème difficile sous-jacent venant de la théorie des codes provient du fait qu’il est difficile, étant donné une famille de codes, de déterminer quel code a été utilisé pour le codage, la clef privée étant la matrice génératrice du code (permettant de corriger l'erreur), et la clef publique étant une version "randomisée" de cette matrice (pour le cryptosystème de McEliece), permettant de générer des mots du code, sans pouvoir décoder. Ainsi pour chiffrer un message, l'expéditeur rajoute une erreur à son message encodé, ce qui le rend inintelligible pour une personne ne disposant pas de la matrice génératrice. Signature de code
La clé publique utilisée pour authentifier la signature de code doit être traçable à une autorité de certification de confiance, de préférence en utilisant une infrastructure à clés publiques sécurisée. Cela ne garantit pas que l'on peut faire confiance au code lui-même, mais seulement que le code vient de la source indiquée (ou plus précisément, de quelqu'un qui possède la clé privée de la source (c'est-à-dire la source elle-même si celle-ci a bien protégé sa clé privée). Une autorité de certification fournit un niveau de confiance et est en mesure de transmettre ce niveau de confiance aux autres par procuration. Si un utilisateur fait confiance à une autorité de certification, il peut faire confiance au code qui est signé avec une clé validée par cette autorité. De nombreux systèmes d'exploitation reconnaissent et acceptent une ou plusieurs autorités de certification (comme , VeriSign / Symantec, DigiCert, TC TrustCenter, , GoDaddy et ). Parfois, de grandes organisations implantent des autorités de certification privées, internes à l'organisation, qui ont les mêmes caractéristiques que les autorités de certification publiques, mais ne sont reconnues qu'au sein de l'organisation. Le Code secret
Richard Duvall est un policier américain qui travaille à Paris pour les services secrets français. Il y rencontre Grace Ellicot, américaine elle aussi, et en tombe amoureux. Le jour de leur mariage, on lui assigne une nouvelle mission, retrouver un code secret caché dans une tabatière en ivoire. Il se rend en Angleterre pour y rencontrer l'ambassadeur de France, à qui appartenait cet objet. Il apprend alors que le domestique de l'ambassadeur a été tué et que le code disparu met en grave péril la France en guerre. Sécurité par l'obscurité
Un message chiffré par exemple avec ROT13, ne peut rester secret que si la méthode utilisée pour chiffrer reste inconnue de l'adversaire. Si l'attaquant « connaît le système » alors il sera capable de déchiffrer le message. Les cryptologues prônent la transparence en matière de processus et de conception de primitives cryptographiques. Une telle pratique permet de mieux évaluer la sécurité des algorithmes. Pseudo-code
L'écriture en pseudo-code permet souvent de bien prendre toute la mesure de la difficulté de la mise en œuvre de l'algorithme, et de développer une démarche structurée dans la construction de celui-ci. En effet, son aspect descriptif permet de décrire avec plus ou moins de détail l'algorithme, permettant de ce fait de commencer par une vision très large et de passer outre temporairement certains aspects complexes, ce que n'offre pas la programmation directe. Code de Hamming (7,4)
L'objectif du code est la protection contre une erreur. Étudions le cas où le bit de donnée "d" est altéré durant le transfert. Le message reçu n'est plus "c" = 0110011 mais "x" = 011011. Deux conditions, correspondant au cercles rouge et verts, ne sont plus remplies. Le vecteur "x" ne peut passer le test de la matrice de contrôle : formula_7 L'erreur est donc détectée, la matrice de contrôle présente un vecteur non nul, correspondant à la valeur 101 en binaire, soit "cinq". La valeur de "H"."X" est appelée syndrome. La correction associée correspond au mot "e" composé de sept lettres égales à "zéro" sauf une, la "cinquième" est égale à "un". Le décodage, dans le cas d'un syndrome non nul correspond à soustraire (ce qui revient à additionner dans un code binaire) l'erreur "e" = 000000. On obtient : formula_8 Quelle que soit l'erreur, à partir du moment où elle n'intervient que sur un bit, la matrice de contrôle fournit en binaire le numéro de la colonne fautive. Code parfait et code MDS
Les codes correcteurs ont leur source dans un problème très concret lié à la transmission de données. Dans certains cas, une transmission de données se fait en utilisant une voie de communication qui n'est pas entièrement fiable. Les données, lorsqu'elles circulent sur cette voie, sont susceptibles d'être altérées. L'objectif d'un code correcteur est l'apport d'une redondance de l'information de manière que l'erreur puisse être détectée ou corrigée. Ascii85
Le besoin fondamental d'un encodage binaire vers texte provient du besoin de communiquer des données binaires quelconques sur des protocoles de communication préexistants qui ont été conçus pour transporter uniquement du texte lisible par un être humain et écrit en anglais. Ces protocoles de communication peuvent ne fonctionner correctement qu'avec des octets sur (voire ne pas supporter certains codes de contrôle ASCII) ; ils peuvent ne pas supporter des lignes de texte trop longues, imposant alors l'insertion de sauts de ligne à intervalle régulier ; enfin, ils peuvent supprimer les espaces. Ainsi, seuls les peuvent de manière « sure » être utilisés pour transmettre des données. Advanced Encryption Standard process
Comme la spécification de AES n’est pas secrète et qu’elle ne se limite pas aux États-Unis (cela était également le cas pour DES et 3DES), ce chiffrement est destiné à diverses utilisations, entre autres :Les exigences sur le nouveau standard étaient élevées car il est destiné à une utilisation intensive jusqu’en 2050, date à laquelle on estime que sa sécurité sera limitée de par les avancées technologiques et les recherches en cryptanalyse. On peut toutefois émettre des doutes quant à cette longévité optimiste en matière d’informatique. ROT13
Bien qu'il ne soit pas évident de lire un texte une fois qu’il est chiffré avec ROT13, ce chiffrement est inapproprié pour conserver des secrets en sécurité. Il est plutôt utilisé dans les pages web pour ne pas dévoiler à tous des solutions de jeux, des fins de films ou pour ne pas divulgâcher l’intrigue d’une série… Le Réseau Kinakuta
Lawrence Waterhouse tente de percer le secret du message trouvé dans le sous-marin qui s'est échoué sur les côtes britanniques. Il a beau tenter de casser le code, il n'y parvient pas. Il s'en ouvre à Alan Turing. Lorsque ce dernier regarde les pages manuscrites de code, il reconnaît avec surprise l'écriture de son ancien ami Rudolph von Hacklheber. Pourquoi celui-ci a-t-il pris la peine d'écrire lui-même le code ? Binary Ordered Compression for Unicode
Il offre un meilleur taux de compression (comparable à celui offert par SCSU) qu’UTF-8 et bien meilleur qu’UTF-16 pour les langues utilisant d’autres écritures qui utilisent la plupart du temps un nombre réduit de caractères, pris soit dans un même bloc de 128 points de code, soit parmi les codes de contrôles C0 et l’espace standard, en obtenant des taux également comparables aux codes des pages de codes et jeux de caractères 8 bits ou multioctets qui ont été développés dans le passé pour certaines langues ou familles de langues, tout en permettant d’être compatible avec la totalité du répertoire universel de l’UCS. C’est le cas de toutes les écritures alphabétiques simples, notamment l’écriture grecque (pour la transcription du grec moderne monotonique ou l’ancien grec classique, mais aussi pour le grec polytonique), cyrillique (pour la transcription du russe, bulgare, ukrainien, etc.), ou les abjads sémitiques (arabe, hébreu), et la plupart des abugidas brahmiques (comme la dévanagari pour la transcription de l’hindi ou du sanscrit, l’écriture tamoule, les écritures thaïe, khmère, lao, les écritures philippines, etc.) Wi-Fi Protected Access
En avril 2019, cette attaque met à mal WPA3 sans condamner définitivement cette version. Elle rappelle cependant le besoin constant d'amélioration de la sécurité des réseaux sans fils et la nécessité de mettre à jour les équipements existants avec les normes les plus avancées. Le mode "pre-shared key" (PSK, aussi connu comme "Personal mode") a été conçu pour les réseaux individuels ou de PME qui ne peuvent se permettre le coût et la complexité d'une solution utilisant un serveur d'identification 802.1X. Chaque utilisateur doit saisir une phrase secrète pour accéder au réseau. La phrase secrète peut contenir de 8 à 63 caractères ASCII ou 64 symboles hexadécimaux (256 bits). Si une phrase secrète sous forme de caractères ASCII est utilisée, elle sera au préalable convertie vers une clé de 256 bits que l'on nomme "Pairwise Master Key" ou "PMK" en appliquant une fonction de dérivation de clé PBKDF2 qui utilise le SSID comme sel et 4096 itérations de HMAC-SHA1. Codage des caractères
En télécommunications et en informatique, un jeu de caractères codés est un code qui associe un jeu de caractères abstraits d’un ou plusieurs systèmes d’écriture (comme des alphabets ou des syllabaires) utilisés pour transcrire des langues naturelles avec une représentation numérique pour chaque caractère de ce jeu, ce nombre pouvant lui-même avoir des représentations numériques différentes. Par exemple, le code Morse (qui associe l’alphabet latin à une série de pressions longues et de pressions courtes sur le manipulateur morse du télégraphe) et le code ASCII (qui code les lettres, les chiffres et d'autres symboles comme des entiers codés sur 7 bits) sont des jeux de caractères codés. Codes 10
À l'automne 2005, à la suite de problèmes de communication entre les différents corps policiers lors de l'opération de sauvetage à la suite du passage de l'ouragan Katrina, la "Federal Emergency Management Agency" (FEMA) a découragé l'utilisation des codes 10 et des autres mots codés à cause d'une trop grande différence dans les définitions. Le "département de la Sécurité intérieure" aurait des plans pour mettre fin à l'utilisation de tels codes en faveur de mots en anglais, alors que l' les interdit explicitement.