JBrew sur Flickr
Les codes secrets, ou ciphers, sont un excellent moyen d’enseigner la pensée computationnelle.
Bien que vous puissiez utiliser des ordinateurs pour craquer des codes secrets, également appelés ciphers, ils ne sont pas toujours nécessaires. Et les ordinateurs ne peuvent pas, à eux seuls, décoder les codes secrets. Les ordinateurs ont besoin d’humains pour fournir des indications. Et les humains doivent réfléchir à une série de questions, développer des règles pour les solutions possibles, et décider quand une solution possible doit être abandonnée en faveur d’une autre.
Ce projet vous conduira à travers une méthode de haut niveau pour créer des codes secrets et des chiffrages, ainsi que pour trouver des moyens de les décoder. Évidemment, le domaine des chiffrements est vaste et compliqué. Ce puzzle est tout simplement amusant. J’ai également calqué ce projet sur un plan de cours Google plus compliqué, dont le lien figure ci-dessous. Et j’ai rassemblé un ensemble de liens en ligne pour vous aider à trouver vos propres codes secrets, ainsi que des idées sur la façon de les craquer.
Si vous êtes prêts, commençons.
- Qu’est-ce qu’un code secret ou un chiffre ?
- Comment créer un code secret ou un chiffre ?
- Comment déchiffrer un code secret ou un chiffrement ?
- Essayez votre propre code
- Learn More
- Ciphering a Sentence (Google)
- Cipher (Wikipedia)
- Letter Frequency
- The Secret Language
- Secret Codes for Cubs and Scouts
- Three Secret Codes to Try With Your Kids
- Create Secret Codes and Ciphers (Wiki How)
- Cryptography (Wikipedia)
Qu’est-ce qu’un code secret ou un chiffre ?
Un code secret, ou chiffre, est simplement la substitution d’une lettre de l’alphabet par une autre lettre ou un chiffre. Je peux dire, par exemple, qu’au lieu de taper la lettre E, je vais taper la lettre F à la place. Ainsi, house devient housf.
Un autre type de code secret transpose, ou change, l’ordre des lettres dans un message. Ainsi, house pourrait devenir uoesh.
Une autre façon de créer des codes secrets consiste à placer des mots, des lettres ou des caractères sans signification entre des lettres ou des caractères significatifs. Par exemple, vous pouvez prendre un morceau de carton de la taille du papier à lettres, découper des carrés ou des rectangles, placer une feuille de papier sous votre carton, écrire votre message en utilisant les espaces découpés dans le carton, puis soulever le carton et remplir le reste de votre papier comme s’il s’agissait d’une seule lettre. Ce n’est que lorsque vous replacerez le carton sur votre lettre que vous verrez votre véritable message.
Le processus de codage puis de décodage d’un message est appelé cryptographie. Pour faire de la cryptographie, vous aurez besoin d’un message en texte clair, d’un ensemble de règles (algorithme) pour coder votre message, et d’une clé pour aider à décoder votre message. Dans certains cas, vous spécifierez également le temps pendant lequel l’algorithme et les clés sont en vigueur.
Les cryptogrammes sont légèrement différents des codes. Un chiffrement mélange ou utilise des lettres ou des caractères différents. Un code substitue un mot à un autre mot ou à une phrase. Par exemple, FWIW ou OMG sont des codes, n’est-ce pas ? FWIW remplace pour ce que ça vaut et OMG remplace Oh My God !
Pour ce projet, nous allons nous concentrer sur un modèle simple pour substituer des lettres et des caractères.
Comment créer un code secret ou un chiffre ?
Rappelez-vous mon exemple de remplacement de la lettre E par la lettre F, donc house devient housf ?
Que se passe-t-il si je dis que la lettre E sera remplacée par les lettres F plus les lettres R et K ? Que se passe-t-il si j’ai besoin d’utiliser un mot contenant les lettres F, R ou K ? Créer une phrase de cette façon peut très vite devenir déroutant. La solution consiste à créer un motif, ou un ensemble de règles (appelé algorithme en informatique), utilisé pour traduire toute phrase codée avec votre motif.
Pour commencer, disons que notre motif va simplement déplacer toutes les lettres de l’alphabet de deux espaces vers la droite. Ainsi, la lettre E devient la lettre G, la lettre G devient la lettre I, et ainsi de suite.
Avec ce simple motif, house devient iqwug. Pourriez-vous trouver ce que signifie iqwug ?
Comment déchiffrer un code secret ou un chiffrement ?
Souvenez-vous de notre modèle simple où nous avons décalé les lettres de l’alphabet de deux espaces vers la droite, de sorte que house devient iqwug ? Parlons des façons dont nous pourrions craquer ou décoder ce mot.
Ce que vous pourriez remarquer en premier lieu, c’est que iqwug est un échantillon extrêmement petit, un mot de seulement cinq caractères. Pour craquer n’importe quel code, vous avez besoin d’autant d’exemples de mots, de phrases et de paragraphes codés que possible. Un mot de cinq caractères pourrait être impossible à craquer sans autres exemples.
Lorsque vous avez un grand échantillon de mots et de phrases codés avec le même motif, il devient possible d’appliquer d’autres motifs. Par exemple, dans la langue anglaise, la lettre E est très courante.
Un grand échantillon de mots codés avec notre motif qui décale les lettres de deux espaces, transformant la lettre E en lettre G, aurait probablement plus de G que la plupart ou toutes les autres lettres. Nous pourrions commencer à essayer de décoder notre phrase en changeant la lettre G en E. Ensuite, nous pourrions regarder comment E est devenu G : nous pourrions réaliser que G est deux lettres à gauche de E dans l’alphabet anglais et essayer de décaler les autres lettres de notre message codé de deux espaces vers la gauche.
Décoder et déchiffrer des messages codés nécessite beaucoup de réflexion, ainsi que des essais et des erreurs. C’est un casse-tête amusant à résoudre.
Essayez votre propre code
Si vous vous en souvenez, pour coder et décoder un message, vous aurez besoin :
- D’un message en texte clair.
- D’un modèle ou d’un ensemble de règles pour coder et décoder votre message.
Vous pourriez également utiliser une clé, par exemple, un dictionnaire, et définir une période pendant laquelle votre motif ou votre ensemble de règles est actif avant d’être remplacé par un autre motif utilisé pour coder et décoder les messages. Mais ce sont des étapes facultatives et non obligatoires pour s’amuser un peu avec les codes et la pensée computationnelle.
Pour créer un chiffre de substitution simple, prenez une feuille de papier et écrivez chaque lettre de l’alphabet. À côté de chaque lettre, attribuez une autre lettre, un chiffre ou un caractère pour représenter la lettre d’origine. Vous pouvez les attribuer de manière aléatoire ou selon un schéma précis, par exemple en attribuant le deuxième ou le troisième caractère à droite ou à gauche de la lettre d’origine. Ainsi, A pourrait devenir X si vous déplacez trois caractères vers la gauche.
Une fois que vous avez un message à coder, référez-vous à votre alphabet et réécrivez votre message avec la lettre, le chiffre ou le caractère attribué à chaque lettre.
Pour rendre les choses plus intéressantes, travaillez avec un partenaire pour créer vos propres schémas de substitution et échanger des messages codés. Voyez si vous pouvez trouver la méthode de substitution nécessaire pour décoder le message.
Si vous avez besoin d’un long message, ou si vous n’arrivez pas à penser à un message, copiez le texte d’un livre ou d’une page Web pour le coder et le décoder. Longer plain text will allow you to see how letter frequency might help decode a message.