Maintenant que la transmission est établie, l'on peut se pencher sur un
point optionnel, à savoir le cryptage des données. L'intérêt de cette
dernière étape consiste en la sécurisation de la liaison, en rendant
illisibles les données à quiconque ne possédant pas une clé de
déchiffrement.
Lorsque l'information se voit transmise par voie analogique, l'on peut bien
sûr la brouiller à l'aide de signaux ayant l'apparence de bruit. Mais ces
techniques de brouillage se montrent rapidement limitées, aussi apparaît là
un autre avantage de la conversion numérique, à savoir celui de pouvoir
appliquer de puissants algorithmes de cryptage, celui de pouvoir
relativement facilement manipuler les messages numériques.
Il a été retenu pour cette étude un principe de cryptage assez simple, du
moins dans sa mise en oeuvre, puisqu'il suffit de modifier
pseudo-aléatoirement un à un les bits que l'on transmet, et de modifier en
sens inverse les bits que l'on reçoit à l'aide de la même séquence
pseudo-aléatoire: si désigne l'addition binaire (addition modulo 2
ou, ce qui est équivalent, le "ou exclusif") et si Mi, Si et Ci
représentent respectivement les bits à l'instant t=i du message en clair,
de la séquence pseudo-aléatoire et du message crypté, on a et, bien sûr, on récupère Mi par l'opération .
La séquence selon laquelle les bits sont modifiés est pseudo-aléatoire, et
non complètement aléatoire, justement parce que l'on connaît à l'avance
par calcul cette séquence, mais qu'elle "paraît" aléatoire à tous ceux qui
ne connaissent pas la manière de la générer. Elle est réalisée à l'aide
d'un système de registre binaire à décalage (de n bits, contenant les
bits St,i pour et t quelconque) bouclé sur lui-même
et de "ou exclusif" (cf figure 5.1), montage qui réalise
l'opération à chaque instant t (le registre doit être à
décalage car à (t+1), l'on doit avoir: St+1,n=Pt(S)).
En effet, l'on peut montrer que ce polynôme, s'il est primitif, génère une suite (At) de séquences de n bits (les séquences , à chaque instant t) dont la période de réapparition est maximale et égale à 2n-1.
Ce mode de cryptage est parfaitement inversible, mais un problème se pose toutefois pour décrypter un message: la nécessité d'une synchronisation entre les bits Si de l'émetteur qui cryptent les bits du message, et les bits Si du récepteur qui le décryptent. S'il y a le moindre décalage, le message crypté ne pourra plus être lu, et le possesseur de la clé de cryptage (la clé est le polynôme Pt(S)) n'aura alors plus aucun avantage sur ceux qui ne la connaissent pas... Aussi, pour palier ce problème, il suffit de modifier légèrement l'installation précédente afin de rendre le circuit du côté récepteur "auto-synchronisable", i.e. dont les séquences At deviennent identiques au bout d'un certain temps (dont le maximum correspond à un passage de n bits, ce qui est très faible en général, n étant le nombre de bits dans une séquence At) à celles du circuit côté émetteur (cf figure 5.2).
L'inconvénient, certes majeur, de cette solution, est qu'il devient facile
de décrypter les messages dès lors que l'on connaît le nombre de bits d'une
séquence et que l'on sait que la méthode de cryptage employée est celle-là.
En effet, pour un nombre donné de bits dans une séquence, il n'y a qu'un
polynôme irréductible, bien connu, et comme le système récepteur est
auto-synchronisable, il se configurera tout seul sans besoin d'une
quelconque autre clé inconnue. Le système de cryptage devient donc, dans
cette configuration, plutôt un système de brouillage...
Le circuit crypteur doit se placer en amont de la phase de
codage-modulation-transposition, là où le signal demeure sous forme
numérique NRZ (0 ou 1 pendant toute la période d'horloge). Ainsi, même les
mots de synchronisation seront cryptés! Mais tels que se présentent les
boîtiers de traitement numérique, il n'y a pas d'autre solution. D'autre
part, le circuit décrypteur devrait normalement se placer en aval de la
partie traitant la récupération du signal numérique (récupération du signal
d'horloge) et en amont de la synchronisation par mots de 24 bits (pour que
ces derniers soient en clair, sans quoi le boîtier, ne "connaissant" pas la
clé de cryptage, ne pourra jamais les reconnaître). Mais, à cet endroit, le
signal est sous forme Bi, ce qui le rend inexploitable par le circuit
de décryptage. Pour ce problème, on n'a trouvé qu'une solution: monter en
série, l'un derrière l'autre, les deux circuits de cryptage et de
décryptage, au niveau du dispositif émetteur, juste avant l'opération de
codage numérique (passage de la forme NRZ à la forme Bi). Évidemment,
l'intérêt pratique de cette solution s'avère limité, si ce n'est qu'elle
nous a permis de nous familiariser avec les techniques de cryptage, et d'en
mettre une complètementen oeuvre, ce qui n'est tout de même déjà pas trop
mal!
Afin d'obtenir un système sans auto-synchronisation, il faudrait pouvoir installer le circuit de cryptage en amont du codage de Hamming et donc de la synchronisation (sur le dispositif d'émission), et celui de décryptage en aval de la synchronisation et de la correction d'erreurs (sur le dispositif de réception). Dès lors, l'on pourrait insérer, aux côtés du circuit de synchronisation, un système permettant d'émettre des mots d'initialisation des séquences de cryptage: à chaque fois que ces mots seraient émis, du côté de l'émetteur, la séquence de cryptage serait réinitialisée, et à chaque fois qu'ils seraient lus, du côté du récepteur, la séquence de décryptage subirait le même sort que sa cons¦ur de cryptage. Cette réinitialisation (occurant à une certaine fréquence, par exemple 1Hz) permettrait donc de synchroniser les séquences de cryptage et de décryptage, au cas où ces dernières n'agiraient plus de concert, à la suite par exemple d'un bit transmis erroné mais non détecté comme tel. Avec une fréquence de réinitialisation de 1Hz, la durée maximale de conversation non convenablement décryptée serait de 1s, ce qui semble honnête. Remarquons, enfin, qu'initialiser les séquences de cryptage avec une fréquence de 1Hz revient à modifier 1 série de séquences toutes les 10000/255 = 39 (par seconde, il y a transmission de 10000 bits, et une série contient normalement 255 séquences de cryptage, ce qui correspond donc à 255 décalages de 1 bit), ce qui est encore assez peu pour que les séquences ne puissent plus être considérées comme aléatoires.