APPLICATIONSDIVERS ★ CRYPTO / AMSTRAD MAGAZINE ★

Crypto (Amstrad Magazine)Applications Divers
Si vos disquettes contiennent des données confidentielles (fichiers ASCII, écrans, programmes...) CRYPTO permet de les mettre à l'abri des regards indiscrets. CRYPTO est un programme de codage d'une face complète de disquette : il rend totalement illisible celle-ci, catalogue compris. Ecrit en langage machine, il est rapide (moins de deux minutes pour coder / décoder 178 ko) et accepte les formats DATA ou SYSTEM.

Le principe du codage

Le programme lit une piste de la disquette et récrit dans un tampon en mémoire ; puis il code chacun des octets de ce tampon et recopie ensuite la piste sur le disque. Quand les quarante pistes ont été traitées, les données initiales ont été remplacées par des codes incohérents. Seul un décodage adéquat permet de retrouver les données initiales. Le codage de chaque octet du tampon utilise la fonction logique XOR. Par exemple, pour coder l'octet &4l (correspondant à la lettre A en ASCII) avec la valeur &E6, on calcule : &41 XOR &E6 = &A7. Pour vérifier ce résultat, taper au clavier en mode direct : ? HEX$ (&41 XOR &E6) puis « ENTER », l'ordinateur répond : A7. Pour retrouver l'octet initial il faut savoir que celui-ci a été codé avec la valeur &E6 ; on calcule : &A7 XOR &E6 = &41. (Vérifiez-le !). Ainsi, le même procédé qui a servi au codage sert au décodage. Naturellement, si on codait tous les octets avec la même valeur &E6 le secret serait bien mal gardé ! Pour durcir le code on change cette valeur à chaque octet codé suivant une loi complexe. L'idéal serait d'utiliser une séquence aléatoire (système dit « à clé aléatoire une fois »). Le résultat serait alors totalement inviolable, mais la séquence à retenir pour le décodage aurait même longueur que le message à coder (ici 182 272 caractères !). Pour palier cet inconvénient on utilise un générateur pseudo-aléatoire qui, une fois initialisé par l'utilisateur, va produire une suite de valeurs pour le codage. Le générateur utilisé par CRYPTO est du type à congruence linéaire. Sans être le meilleur au point de vue « imprévisibilité », il a l'avantage d'être rapide et d'avoir une période suffisamment longue pour empêcher une attaque statistique du code.

Le programme BASIC

Pour permettre l'écriture du programme par des lecteurs ne possédant pas d'assembleur, celui-ci est proposé en DATA dans un programme BASIC qui le chargera en mémoire. Le programme vérifie chaque ligne de DATA grâce à une somme de contrôle. Si une erreur est détectée, le programme s'arrête et le numéro de la ligne fautive est affiché. Il faut la corriger avec la commande EDIT puis relancer le programme. Quand tout se déroule bien, le programme demande si l'ordinateur est un CPC 464 ou un 664-6I28. Répondre suivant le cas. Le programme crée alors sur disque le fichier CRYPTO.BIN. Le disque contenant CRYPTO étant dans le lecteur, on le lance par : RUN"CRYPTO « ENTER ». Le programme demande .alors la clé de codage / décodage. C'est une chaîne de caractères alphanumériques (dont il faudra impérativement se souvenir !) qui sert à initialiser le générateur aléatoire. Ensuite, on place dans le lecteur le disque à coder et on appuie sur (ENTER). Le codage commence alors et le numéro de la piste en cours de traitement est affiché. En cas d'erreur le programme affiche un message : suivre alors les indications données. Quand le codage est terminé on retourne sous BASIC. On peut alors demander un catalogue de la disquette ; on obtient généralement n'importe quoi : la disquette est illisible. Pour décoder il suffit de relancer CRYPTO avec exactement la même clé de codage. L'opération terminée, on doit retrouver le catalogue initial et la disquette doit être à nouveau lisible.

Mise en garde

CRYPTO modifiant directement les données sur la disquette, les données initiales figurant sur celle-ci sont effacées. L'auteur ne connait aucun moyen simple pour retrouver ces données si on a oublié la clé ! Amnésiques, abstenez-vous ! En particulier, il est prudent de conserver une disquette « claire » contenant CRYPTO. Pour bien initialiser le générateur aléatoire, il est préférable d'utiliser une clé d'au moins huit caractères. Noter que le programme distingue les majuscules des minuscules el que tous les caractères dont le code ASCII est compris entre 32 et 127 sont valides. Sans être indécryptable par un gros système, CRYPTO permet de protéger efficacement et rapidement vos disquettes. Pour les lecteurs intéressés par la cryptographie signalons les ouvrages suivants :

* David KAHN, « La guerre des codes secrets » 1980 InterEdition Paris. (Une étude historique passionnante, des hiéroglyphes a l'ordinateur...)

* Romain ROUBATY, « ABC de cryptographie avec programmes en basic ». 1984 Masson. (Tous les codes classiques, avec des programmes de décryptement).

* Evangelos KRANAKIS, «Primality and Cryptography». 1986 Wiley-Teubner Séries in Computer Science. (Le point actuel sur la question, en anglais dans le texte, pour ceux que les mathématiques n'effraient pas !).

J.-L. Morel, AMSTRAD MAGAZINE n°20 (Mars 1987)

★ ANNÉE: 1987
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: JL MOREL

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Crypto    FRENCHDATE: 2010-07-02
DL: 256
TYPE: ZIP
SiZE: 6Ko
NOTE: Extended DSK/40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Quick - Calc (CPC Amstrad International)
» Applications » The Landscape Utility
» Applications » Mcrash
» Applications » Puissance 4 (Amstar&CPC)
» Applications » WACCI PD Disc #13
» Applications » Etude du sens de variation pour TOUTES fonctions (CPC Infos)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 199 millisecondes et consultée 1687 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.