Accès membres : identifiez-vous !     Dernière remise à jour du site : le Mar. 11 Novembre 2014 à 14:51:19

wxFrantz's Concept

Codes Morse et dérivés

Dans la page relative au code Morse, nous avons vu qu'il était facile de transformer un message en points et en tirets, alors pourquoi ne pas pousser la réflexion en essayant de transformer ce message en quelque chose qui ressemblerait à du langage machine ?
Il suffirait par exemple de remplacer ces points et tirets par des 0 et des 1 et on obtiendrait du pseudo-binaire. A partir de là, on peut tout à fait coder ce pseudo-binaire en octal ou en hexadécimal, et là, tout est possible : créer un ficher binaire, un fichier image BitMap ...

En bas de cette page, je vous propose un script vous permettant d'effectuer ces différents types de codage.

Très bref rappel sur les systèmes de numérotation

- Le système binaire est un système de numération utilisant la base 2 (0 ou 1).
- Le système octal est un système de numération utilisant la base 8 (8=23) (sur 3 bits).
- Le système hexadécimal est un système de numération utilisant la base 16 (16=24) (sur 4 bits).

Code en base
10 2 8 16
000000000
010001011
020010022
030011033
040100044
050101055
060110066
070111077
 
Code en base
10 2 8 16
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Code pseudo-binaire à partir de code Morse

Supposition : nous nous basons sur un message codé en Morse, puis nous remplaçons les points et les tirets par des 0 et des 1 de la façon suivante :

  • - Le point sera codé par 10 ;
  • - Le tiret sera codé par 110 ;
  • - L'espace entre les lettres par 0 ;
  • - L'espace entre les mots par 00.

Ainsi le message "Ceci est le message à chiffrer en codes dérivés du Morse" sera codé :

  • - en Morse : "-.-. . -.-. .. . ... - .-.. . -- . ... ... .- --. . .- ---- .. ..-. ..-. .-. . .-. . -. -.-. --- -.. . ... -.. . .-. .. ...- . ... -.. ..- -- --- .-. ... ." ;
  • - puis en pseudo-binaire : 110 1011 0100 1001 1010 1101 0010 1000 1001 0101 0011 0001 0110 1010 0100 0110 1100 1001 0101 0010 1010 0101 1001 1011 0100 1000 1011 0001 1011 0110 1100 1010 0101 0110 1001 0101 1010 0101 1010 0100 1011 0100 0100 1101 0001 1010 1101 0011 0110 1100 1101 0100 1001 0101 0001 1010 1001 0010 1101 0010 1001 0101 0110 0100 1010 1000 1101 0100 1010 1100 0110 1100 1101 1011 0010 1101 0010 1010 0100. Pour plus de lisibilité nous avons regrouper la chaine binaire par groupe de 4 bits en partant de la fin (bit de poid faible).

Inconvéniant majeur que vous remarquez aisément : la taille du message codé :

  • - La chaine "Ceci est le message à chiffrer en codes dérivés du Morse" : 56 caractères ;
  • - en Morse : 165 caractères ;
  • - en pseudo-binaire : 315 caractères soit une augmentation de 5,63 fois la taille du message original.

Code octal ou hexadécimal

Alors, pourquoi ne pas essayer de convertir cette chaine pseudo-binaire en octal (divise par 3 la longueur de la chaine binaire), ou mieux en hexadécimal (divise par 4 la longueur de la chaine binaire).

Ce qui nous donnerait :

  • - en octal : 655 115 322 422 514 265 106 622 512 454 664 426 155 545 126 453 226 445 504 643 264 666 324 452 152 226 451 254 452 152 254 331 554 551 244 (105 caractères, soit 1,88 fois la taille du message original) ;
  • - en hexadécimal : 6B4 9AD2 8953 16A4 6C95 2A59 B48B 1B6C A569 5A5A 4B44 D1AD 36CD 4951 A92D 2956 4A8D 4AC6 CDB2 D2A4 (79 caractères, soit 1,41 fois la taille du message original).

Nous arrivons ainsi à ne presque pas augmenter la longueur du message initial.

Avant de concrétiser la chose avec le script ci-dessous, sachez que nous pouvons diviser la longueur du message encore par deux en codant le message dans un fichier ou une image.

Script de chiffrage / déchiffrage

Dernière modification de cette page le 04 décembre 2012 à 21:55
Sauf mention contraire, le contenu de cette page est sous licence Creative Commons Paternité et Conditions de partage à l'identique
Page générée en 84.624 millisecondes | Votre adresse IP : 3.141.41.187 | Me contacter

             
Impossible de se connecter : Access denied for user 'wxfrantz'@'172.20.245.55' (using password: YES)