next up previous
Next: 6 Conclusion Up: Comment faire son propre Previous: 4.3 La transposition en

5 Le cryptage de la liaison

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 $\oplus$ 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 $C_i = M_i \oplus S_i$ et, bien sûr, on récupère Mi par l'opération $M_i = C_i \oplus S_i$.

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 $1\leq i\leq n$ et t quelconque) bouclé sur lui-même et de "ou exclusif" (cf figure 5.1), montage qui réalise l'opération $P_t(S)=S_{t,n}\oplus a_{n-1}\cdot S_{t,n-1}\oplus\cdots\oplus a_1\cdot
S_{t,1} \oplus a_0$ à 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 $(A_t) = \left(S_{t,n}, S_{t,n-1}, \cdots,
S_{t,1}\right)$, à chaque instant t) dont la période de réapparition est maximale et égale à 2n-1.



Figure 5.1: Schéma de principe de l'obtention des séquences et du cryptage

 Dans notre cas, nous avons pris autant de bits pour la séquence de cryptage qu'il y en avait pour le codage des données, et le polynôme primitif que nous avons utilisé est donc: $P_t(S)=S_{t,8}\oplus S_{t,6}\oplus S_{t,5}\oplus S_{t,1}$ (ce qui donne une période de 28-1=255 itérations avant de retrouver la même séquence), mais nous aurions pu utiliser d'autres polynômes afin d'augmenter ou de diminuer la période de retour à une valeur donnée de la suite des séquences (At).

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).



Figure 5.2: Schéma de principe du cryptage avec auto-synchronisation

 Pour le montage électrique des circuits permettant le cryptage et le décryptage, nous renvoyons à l'annexe E.

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$\Phi$, 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$\Phi$). É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.


next up previous
Next: 6 Conclusion Up: Comment faire son propre Previous: 4.3 La transposition en
Denis Arnaud
11/25/1997