L'intervalle général de travail à prendre en compte se situe entre 100000 et
999999 compris. Ce qui fait 999999-100000=899999 possibilités d'utiliser un
chiffre compris entre 100000 et 999999 pour coder l'ensemble des 256
caractères ASCII.
La moyenne par caractères ASCII est donc de 899999/256 =3515.62
possibilités de chiffrage différents.
Le premier but à atteindre est la création d'un tableau à deux dimensions
faisant coïncider chacun des caractères ASCII avec un intervalle bien
précis.
Afin de compliquer la cryptanalyse, les intervalles doivent être variables
et les cases du tableau des caractères ASCII remplis avec un ordre
ALEATOIRE.
La variabilité d'un intervalle est de 515 numéros.
Remplir le tableau de 0 a 255 avec un algorithme fixant la valeur BORN_MAX
de chaque intervalle.
La valeur de départ étant : 100000
BORN_MAX(0)= 100000 + 3000 + (un chiffre pris au hasard entre 0 et 515)
BORN_MAX(1)= BORN_MAX(0) + 3000 + (un chiffre pris au hasard entre 0 et 515)
Et ainsi de suite
Jusqu'à BORN_MAX(254)
La 256 eme case du tableau (qui va de l'indice 0 à l'indice 255) contiendra
donc plus de 3515 possibilités de chiffrage.
BORN_MAX(255)= forcement 999999
En ce qui concerne la répartition des caractères ASCII affectés à chaque
intervalles, il faut aussi que les cases soient remplies au hasard
Exemple :
CARACTERE(0)=195 ( 195 est le code du caractère ASCII )
CARACTERE(1)=62
CARACTERE(2)=69
CARACTERE(3)=47
Et ainsi de suite jusqu'à ce que les 256 cases soient remplies avec des
valeurs différentes.
Pour remplir le tableau de manière aléatoire, utilisez la méthode qui vous
semblera la plus appropriée.
En général on fait deux boucles, une avance dans l'indice du tableau et l'autre
sélectionne aléatoirement un numéro qui n'a pas déjà été pris précédemment.
Dans notre exemple, le caractère ASCII 195 pourra être écrit de
BORN_MAX(0) -100000 manières différentes.
Une fois le tableau crée, n'importe quel caractère ASCII pourra être chiffré
par une des valeurs prise au hasard entre les BORN_MAX .
Admettons que le caractère B corresponde a un indice du tableau situé entre
258967 et 262367 , tous les chiffres compris entre 258697 et 262367-1
pourront servir pour le chiffrer.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Philippe Lheureux
CRYPTOGRAPHIE PAR ENCAPSULATION HASARDEUSE (CEH)
Une idée de Philippe Lheureux
1 – Création d’une première partie de clé
L’intervalle général de travail à prendre en compte se situe entre 100000 et 999999 compris. Ce qui fait 999999-1000009999 possibilités d’utiliser un chiffre compris entre 100000 et 999999 pour coder l’ensemble des 256 caractères ASCII.
La moyenne par caractères ASCII est donc de 899999/256 515.62 possibilités de chiffrage différents.
Le premier but à atteindre est la création d’un tableau à deux dimensions faisant coïncider chacun des caractères ASCII avec un intervalle bien précis.
Afin de compliquer la cryptanalyse, les intervalles doivent être variables et les cases du tableau des caractères ASCII remplis avec un ordre ALEATOIRE.
La variabilité d’un intervalle est de 515 numéros.
Remplir le tableau de 0 a 255 avec un algorithme fixant la valeur BORN_MAX de chaque intervalle.
La valeur de départ étant : 100000
BORN_MAX(0)= 100000 + 3000 + (un chiffre pris au hasard entre 0 et 515) BORN_MAX(1)= BORN_MAX(0) + 3000 + (un chiffre pris au hasard entre 0 et 515) Et ainsi de suite Jusqu'à BORN_MAX(254) La 256 eme case du tableau (qui va de l’indice 0 à l’indice 255) contiendra donc plus de 3515 possibilités de chiffrage. BORN_MAX(255)= forcement 999999
En ce qui concerne la répartition des caractères ASCII affectés à chaque intervalles, il faut aussi que les cases soient remplies au hasard
Exemple : CARACTERE(0)5 ( 195 est le code du caractère ASCII ) CARACTERE(1)b CARACTERE(2)i CARACTERE(3)G
Et ainsi de suite jusqu'à ce que les 256 cases soient remplies avec des valeurs différentes.
Pour remplir le tableau de manière aléatoire, utilisez la méthode qui vous semblera la plus appropriée. En général on fait deux boucles, une avance dans l’indice du tableau et l’autre sélectionne aléatoirement un numéro qui n’a pas déjà été pris précédemment.
Dans notre exemple, le caractère ASCII 195 pourra être écrit de BORN_MAX(0) -100000 manières différentes.
Une fois le tableau crée, n’importe quel caractère ASCII pourra être chiffré par une des valeurs prise au hasard entre les BORN_MAX .
Admettons que le caractère B corresponde à un indice du tableau situé entre 258967 et 262367, tous les chiffres compris entre 258697 et 262367-1 pourront servir pour le chiffrer.
2- Brouillage du numéro extrait dans l’intervalle.
Le numéro à 6 chiffres (extrait le plus possible au hasard dans l’intervalle des 3000 numéros minimum possibles correspondants au caractère ASCII à chiffrer ) va maintenant subir une série de transformations destinées a brouiller les pistes.
Le principe de base consiste à mélanger l’ordre des 6 chiffres extraits puis d’incorporer ceux-ci dans un numéro aléatoire composé de 16 chiffres.
Exemple de transformation du numéro 548973
A : Création d’une clé de 16 caractères montrant l’ordre et la position de la séquence de chiffres du numéro extrait a l’intérieur d’un numéro aléatoire
XX5XX43XX6X1XX2X
Les X sont destinés à être remplacés par des chiffres aléatoires entre 0 et 9
1 correspond a la position du 1 er chiffre du numéro extrait (5) 2 correspond a la position du 2 ème chiffre du numéro extrait (4) 3 correspond a la position du 3 ème chiffre du numéro extrait (8) 4 correspond a la position du 4 ème chiffre du numéro extrait (9) 5 correspond a la position du 5 ème chiffre du numéro extrait (7) 6 correspond a la position du 6 ème chiffre du numéro extrait (3)
B : incorporation
XX5XX43XX6X1XX2X
Devient donc après injection des chiffres du numéro extrait
XX7XX98XX3X5XX4X
C : masquage aléatoire
Puis
4770698113450747
Ou
1578198473950040
En remplaçant les X par de l’aléatoire. Bien entendu, celui qui a la clé pourra facilement extraire puis remettre en ordre les chiffres du numéro extrait dans l’intervalle.
Sans la clé, XX5XX43XX6X1XX2X l’opération s’avère délicate
Cette clé sera bien sur rajoutée a la clé 1 contenant la position des caractères ASCII et les intervalles.
A ce stade, il reste encore une petite faiblesse liée au fait que compte tenu des numéros extraits dans les intervalles, presque 3 ou 4 chiffres sur 6 restent identiques pour un même caractère chiffré en continu. Même incorporés dans de l’aléatoire , on pourrait finir par les repérer statistiquement. Cela ne donnerait pas l’ordre pour autant mais autant ne laisser aucune trace exploitable.
3 – Masquage définitif
Afin d’éviter de pouvoir repérer les 3 ou 4 chiffres qui restent identiques à chaque même caractère chiffré, il suffit d’appliquer deux principes complémentaires.
A : Premier principe
A chaque caractère chiffré, il faut décaler le tableau de base pour que le caractère qui vient d’être chiffré saute d’un intervalle. Au bout de 256 caractères, il revient en position d’origine.
Le but est de faire en sorte que les premiers chiffres des numéros extraits dans les intervalles varient constamment.
Ceci dit, on pourrait encore repérer statistiquement cet accroissement progressif de certains numéros
B : Deuxième principe
Au lieu de générer une simple clé de 16 caractères gérant l’ordre et la position des chiffres incorporés, on va fabriquer une clé de X fois 16 caractères
X en fonction du degré de sécurité choisi.
Admettons que vous mettiez X à 21, cela créera une clé comportant 21 séquences différentes de 16 positions + ordre.
Le premier caractère chiffré utilise la clé 1, le deuxième la clé 2, le 21 ème , la clé 21 et le 22 ème , la clé 1
C’est ce changement de clé permanent associé au décalage de la table qui va engendrer la sécurité du chiffre produit.
La clé de déchiffrage se composera donc de la table des intervalles et des caractères ASCII associés + la clé a X fois 16 caractères.
CRYPTOGRAPHIE
PAR
ENCAPSULATION HASARDEUSE
(CEH)
Une idée de Philippe Lheureux
1 – Création d’une première partie de clé
L’intervalle général de travail à prendre en compte se situe entre 100000 et
999999 compris. Ce qui fait 999999-1000009999 possibilités d’utiliser un
chiffre compris entre 100000 et 999999 pour coder l’ensemble des 256
caractères ASCII.
La moyenne par caractères ASCII est donc de 899999/256 515.62
possibilités de chiffrage différents.
Le premier but à atteindre est la création d’un tableau à deux dimensions
faisant coïncider chacun des caractères ASCII avec un intervalle bien
précis.
Afin de compliquer la cryptanalyse, les intervalles doivent être variables
et les cases du tableau des caractères ASCII remplis avec un ordre
ALEATOIRE.
La variabilité d’un intervalle est de 515 numéros.
Remplir le tableau de 0 a 255 avec un algorithme fixant la valeur BORN_MAX
de chaque intervalle.
La valeur de départ étant : 100000
BORN_MAX(0)= 100000 + 3000 + (un chiffre pris au hasard entre 0 et 515)
BORN_MAX(1)= BORN_MAX(0) + 3000 + (un chiffre pris au hasard entre 0 et 515)
Et ainsi de suite
Jusqu'à BORN_MAX(254)
La 256 eme case du tableau (qui va de l’indice 0 à l’indice 255) contiendra
donc plus de 3515 possibilités de chiffrage.
BORN_MAX(255)= forcement 999999
En ce qui concerne la répartition des caractères ASCII affectés à chaque
intervalles, il faut aussi que les cases soient remplies au hasard
Exemple :
CARACTERE(0)5 ( 195 est le code du caractère ASCII )
CARACTERE(1)b
CARACTERE(2)i
CARACTERE(3)G
Et ainsi de suite jusqu'à ce que les 256 cases soient remplies avec des
valeurs différentes.
Pour remplir le tableau de manière aléatoire, utilisez la méthode qui vous
semblera la plus appropriée.
En général on fait deux boucles, une avance dans l’indice du tableau et l’autre
sélectionne aléatoirement un numéro qui n’a pas déjà été pris précédemment.
Dans notre exemple, le caractère ASCII 195 pourra être écrit de
BORN_MAX(0) -100000 manières différentes.
Une fois le tableau crée, n’importe quel caractère ASCII pourra être chiffré
par une des valeurs prise au hasard entre les BORN_MAX .
Admettons que le caractère B corresponde à un indice du tableau situé entre
258967 et 262367, tous les chiffres compris entre 258697 et 262367-1
pourront servir pour le chiffrer.
2- Brouillage du numéro extrait dans l’intervalle.
Le numéro à 6 chiffres (extrait le plus possible au hasard dans l’intervalle
des 3000 numéros minimum possibles correspondants au caractère ASCII à
chiffrer ) va maintenant subir une série de transformations destinées a
brouiller les pistes.
Le principe de base consiste à mélanger l’ordre des 6 chiffres extraits puis
d’incorporer ceux-ci dans un numéro aléatoire composé de 16 chiffres.
Exemple de transformation du numéro 548973
A : Création d’une clé de 16 caractères montrant l’ordre et la position de
la séquence de chiffres du numéro extrait a l’intérieur d’un numéro
aléatoire
XX5XX43XX6X1XX2X
Les X sont destinés à être remplacés par des chiffres aléatoires entre 0 et
9
1 correspond a la position du 1 er chiffre du numéro extrait (5)
2 correspond a la position du 2 ème chiffre du numéro extrait (4)
3 correspond a la position du 3 ème chiffre du numéro extrait (8)
4 correspond a la position du 4 ème chiffre du numéro extrait (9)
5 correspond a la position du 5 ème chiffre du numéro extrait (7)
6 correspond a la position du 6 ème chiffre du numéro extrait (3)
B : incorporation
XX5XX43XX6X1XX2X
Devient donc après injection des chiffres du numéro extrait
XX7XX98XX3X5XX4X
C : masquage aléatoire
Puis
4770698113450747
Ou
1578198473950040
En remplaçant les X par de l’aléatoire. Bien entendu, celui qui a la clé
pourra facilement extraire puis remettre en ordre les chiffres du numéro
extrait dans l’intervalle.
Sans la clé, XX5XX43XX6X1XX2X l’opération s’avère délicate
Cette clé sera bien sur rajoutée a la clé 1 contenant la position des
caractères ASCII et les intervalles.
A ce stade, il reste encore une petite faiblesse liée au fait que compte
tenu des numéros extraits dans les intervalles, presque 3 ou 4 chiffres sur
6 restent identiques pour un même caractère chiffré en continu. Même
incorporés dans de l’aléatoire , on pourrait finir par les repérer
statistiquement. Cela ne donnerait pas l’ordre pour autant mais autant ne
laisser aucune trace exploitable.
3 – Masquage définitif
Afin d’éviter de pouvoir repérer les 3 ou 4 chiffres qui restent identiques
à chaque même caractère chiffré, il suffit d’appliquer deux principes
complémentaires.
A : Premier principe
A chaque caractère chiffré, il faut décaler le tableau de base pour que le
caractère qui vient d’être chiffré saute d’un intervalle.
Au bout de 256 caractères, il revient en position d’origine.
Le but est de faire en sorte que les premiers chiffres des numéros extraits
dans les intervalles varient constamment.
Ceci dit, on pourrait encore repérer statistiquement cet accroissement
progressif de certains numéros
B : Deuxième principe
Au lieu de générer une simple clé de 16 caractères gérant l’ordre et la
position des chiffres incorporés, on va fabriquer une clé de X fois 16
caractères
X en fonction du degré de sécurité choisi.
Admettons que vous mettiez X à 21, cela créera une clé comportant 21
séquences différentes de 16 positions + ordre.
L’intervalle général de travail à prendre en compte se situe entre 100000 et 999999 compris. Ce qui fait 999999-1000009999 possibilités d’utiliser un chiffre compris entre 100000 et 999999 pour coder l’ensemble des 256 caractères ASCII.
La moyenne par caractères ASCII est donc de 899999/256 515.62 possibilités de chiffrage différents.
Le premier but à atteindre est la création d’un tableau à deux dimensions faisant coïncider chacun des caractères ASCII avec un intervalle bien précis.
Afin de compliquer la cryptanalyse, les intervalles doivent être variables et les cases du tableau des caractères ASCII remplis avec un ordre ALEATOIRE.
La variabilité d’un intervalle est de 515 numéros.
Remplir le tableau de 0 a 255 avec un algorithme fixant la valeur BORN_MAX de chaque intervalle.
La valeur de départ étant : 100000
BORN_MAX(0)= 100000 + 3000 + (un chiffre pris au hasard entre 0 et 515) BORN_MAX(1)= BORN_MAX(0) + 3000 + (un chiffre pris au hasard entre 0 et 515) Et ainsi de suite Jusqu'à BORN_MAX(254) La 256 eme case du tableau (qui va de l’indice 0 à l’indice 255) contiendra donc plus de 3515 possibilités de chiffrage. BORN_MAX(255)= forcement 999999
En ce qui concerne la répartition des caractères ASCII affectés à chaque intervalles, il faut aussi que les cases soient remplies au hasard
Exemple : CARACTERE(0)5 ( 195 est le code du caractère ASCII ) CARACTERE(1)b CARACTERE(2)i CARACTERE(3)G
Et ainsi de suite jusqu'à ce que les 256 cases soient remplies avec des valeurs différentes.
Pour remplir le tableau de manière aléatoire, utilisez la méthode qui vous semblera la plus appropriée. En général on fait deux boucles, une avance dans l’indice du tableau et l’autre sélectionne aléatoirement un numéro qui n’a pas déjà été pris précédemment.
Dans notre exemple, le caractère ASCII 195 pourra être écrit de BORN_MAX(0) -100000 manières différentes.
Une fois le tableau crée, n’importe quel caractère ASCII pourra être chiffré par une des valeurs prise au hasard entre les BORN_MAX .
Admettons que le caractère B corresponde à un indice du tableau situé entre 258967 et 262367, tous les chiffres compris entre 258697 et 262367-1 pourront servir pour le chiffrer.
2- Brouillage du numéro extrait dans l’intervalle.
Le numéro à 6 chiffres (extrait le plus possible au hasard dans l’intervalle des 3000 numéros minimum possibles correspondants au caractère ASCII à chiffrer ) va maintenant subir une série de transformations destinées a brouiller les pistes.
Le principe de base consiste à mélanger l’ordre des 6 chiffres extraits puis d’incorporer ceux-ci dans un numéro aléatoire composé de 16 chiffres.
Exemple de transformation du numéro 548973
A : Création d’une clé de 16 caractères montrant l’ordre et la position de la séquence de chiffres du numéro extrait a l’intérieur d’un numéro aléatoire
XX5XX43XX6X1XX2X
Les X sont destinés à être remplacés par des chiffres aléatoires entre 0 et 9
1 correspond a la position du 1 er chiffre du numéro extrait (5) 2 correspond a la position du 2 ème chiffre du numéro extrait (4) 3 correspond a la position du 3 ème chiffre du numéro extrait (8) 4 correspond a la position du 4 ème chiffre du numéro extrait (9) 5 correspond a la position du 5 ème chiffre du numéro extrait (7) 6 correspond a la position du 6 ème chiffre du numéro extrait (3)
B : incorporation
XX5XX43XX6X1XX2X
Devient donc après injection des chiffres du numéro extrait
XX7XX98XX3X5XX4X
C : masquage aléatoire
Puis
4770698113450747
Ou
1578198473950040
En remplaçant les X par de l’aléatoire. Bien entendu, celui qui a la clé pourra facilement extraire puis remettre en ordre les chiffres du numéro extrait dans l’intervalle.
Sans la clé, XX5XX43XX6X1XX2X l’opération s’avère délicate
Cette clé sera bien sur rajoutée a la clé 1 contenant la position des caractères ASCII et les intervalles.
A ce stade, il reste encore une petite faiblesse liée au fait que compte tenu des numéros extraits dans les intervalles, presque 3 ou 4 chiffres sur 6 restent identiques pour un même caractère chiffré en continu. Même incorporés dans de l’aléatoire , on pourrait finir par les repérer statistiquement. Cela ne donnerait pas l’ordre pour autant mais autant ne laisser aucune trace exploitable.
3 – Masquage définitif
Afin d’éviter de pouvoir repérer les 3 ou 4 chiffres qui restent identiques à chaque même caractère chiffré, il suffit d’appliquer deux principes complémentaires.
A : Premier principe
A chaque caractère chiffré, il faut décaler le tableau de base pour que le caractère qui vient d’être chiffré saute d’un intervalle. Au bout de 256 caractères, il revient en position d’origine.
Le but est de faire en sorte que les premiers chiffres des numéros extraits dans les intervalles varient constamment.
Ceci dit, on pourrait encore repérer statistiquement cet accroissement progressif de certains numéros
B : Deuxième principe
Au lieu de générer une simple clé de 16 caractères gérant l’ordre et la position des chiffres incorporés, on va fabriquer une clé de X fois 16 caractères
X en fonction du degré de sécurité choisi.
Admettons que vous mettiez X à 21, cela créera une clé comportant 21 séquences différentes de 16 positions + ordre.