CRYPTOGRAPHIE PAR ENCAPSULATION DANS UN NOMBRE ALEATOIRE - C.E.N.A

Le
Philippe Lheureux
CRYPTOGRAPHIE
PAR
ENCAPSULATION
DANS UN NOMBRE
ALEATOIRE
(C.E.N.A)

Une idée de Philippe Lheureux

L’idée de base est de produire un chiffre insensible à toute autre attaque
que celle à la force brute.

Principe de base.

Grâce à une première clé utilisant des intervalles de longueurs variables,
chaque caractère ascii à chiffrer est chiffrable avec plus de 3000 valeurs
différentes comportant 6 chiffres.
Grace une deuxième clé variable en longueur, les 6 chiffres du nombre
extrait de l’intervalle sont ensuite mélangés puis incorporés chiffre par
chiffre à l’intérieur d’un nombre aléatoire de 16 chiffres.
A chaque caractère chiffré, la première clé et la deuxième clé sont soumises
à une évolution pour assurer l’invulnérabilité du chiffre produit.

Principe de fonctionnement.

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-100000‰9999 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
intervalle, 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 de 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.

XX5XX43XX6X1XX2X ( clé 1)
156XXXXXXXXX342X ( clé 2)
XX216XXXXXXXX543 (clé 3)
Etc ..

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é finale se composera donc de la table associant caractères ASCII avec
intervalles + x fois la clé d’ordre et de position permettant l’extraction
de ce qui a été incorporé dans l’aléatoire.


Votre avis concernant les attaques possibles sur ce genre de chiffre sont
les bienvenues.
Est ce compressible au final ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
remy
Le #22518811
Philippe Lheureux a écrit :

bonjour

donc si je te comprends bien

1) tu prends une image d'un code ascii a3456,b%4889,...
2) tu prends du hasard
3) tu incorpores ton image dans le hasard
4) tu effectues une rotation ou permutation (les clés 1,clé2,cl é3...)

à froid, je rentre juste de vacances donc ...
ton incorporation et ta (rotation,permutation) effectuées par tes
différentes clés, peuvent être vues comme une seule opé ration
et la résistance de ton algo se résume à ta quantité de clés

à mon avis, il devient donc possible de détecter le hasard
de l'image du code ascii

prendre les blocs de n bit puis faire des tests sur la répartition
en recherchant le hasard

...............
...............
...............
...............
...............

colonne 1 hasard ok colonne 5 pas hasard
en gros


remy





--
http://remyaumeunier.chez-alice.fr/
Philippe Lheureux
Le #22521591
Bonjour , je réponds entre tes lignes

"> 1) tu prends une image d'un code ascii a3456,b%4889,...

oui .. dans des intervalles irréguliers , chaque code étant représenté par
plus de 3000 numéros a 6 chiffres possibles


2) tu prends du hasard



10 numéro entre 0 et 9 au hasard qui seront rajoutés plus tard aux 6
correspondants au caractère ASCII

3) tu incorpores ton image dans le hasard



oui mais je mélange l'ordre des chiffres avant de l'incorporer


4) tu effectues une rotation ou permutation (les clés 1,clé2,clé3...)




la rotation s'effectue sur la clé contenant les intervalles et aussi sur
celles contenant l'ordre et la position des chiffres a l'intérieur du numéro
aléatoire. Le but est de ne plus pouvoir distinguer l'aléatoire du




à froid, je rentre juste de vacances donc ...
ton incorporation et ta (rotation,permutation) effectuées par tes
différentes clés, peuvent être vues comme une seule opération
et la résistance de ton algo se résume à ta quantité de clés



Une clé basé sur des intervalles irréguliers doit être plus difficile a
casser qu'une basée sur des intervalles réguliers , d'autre part , le
mélange de l'ordre et de la position des chiffres du numéro extrait puis son
incorporation avec d'autres nombres , augmente encore la taille de la clé.
Le tout est de savoir si la rotation des clés et le mélange avec des numéros
pris au hasard masque correctement la clé.



à mon avis, il devient donc possible de détecter le hasard
de l'image du code ascii




Sauf si la rotation des clés et le nombre impressionnant de combinaisons
possibles arrivent a brouiller les pistes.


prendre les blocs de n bit puis faire des tests sur la répartition
en recherchant le hasard



Pas facile car le numéro réel est incorporé non pas dans un numéro a 16
chiffres générés par un générateur de hasard mais complété avec 10 numéros
pris au hasard a chaque fois entre 0 et 9




...............
...............
...............
...............
...............

colonne 1 hasard ok colonne 5 pas hasard
en gros



essaye encore en intégrant les explications que je viens de te fournir
Bonne chance
Phil



remy





--
http://remyaumeunier.chez-alice.fr/

__________ Information provenant d'ESET NOD32 Antivirus, version de la
base des signatures de virus 5409 (20100830) __________

Le message a �t� v�rifi� par ESET NOD32 Antivirus.

http://www.eset.com



Pierre Vandevenne
Le #22523021
On 30 août, 18:20, "Philippe Lheureux"
Le OTP (One Time Pad) est sûr.
Le problème du OTP, c'est que la clé est aussi longue que le message.

Ce que tu essayes de faire ici, c'est en fait d'allonger la clé, ce
qui est d'autant moins souhaitable que tu ne le fais pas d'une façon
économique et facilement formalisable. Les gesticulations pseudo
aléatoires que nous offre ta vague description ne sont que de la
complexité illusoire. De façon économique, tu prends des bits et
essaye de faire compter chacun d'entre eux. Et puis tu essaies de
démontrer qu'il n'y a pas de meilleure approche que l'attaque par
force brute. Si c'est le cas (ou si l'on a un niveau très élevé de
certitude que c'est le cas et que la description formelle de
l'algortithme est publique), on ne peut pas faire mieux.

Par ailleurs, la conception de ton algorithme montre clairement que si
tu aimes les "codes secrets", tu n'as absolument aucune notion de
cryptanalyse, même classique. Je te conseille de lire "Cryptanalysis"
de Helen Fouche Gaines pour une introduction à la cryptanalyse des
algorithmes classiques (pre WWII en gros) et bien sûr "Decrypted
Secrets" de Bauer pour aller plus loin. Comprendre comment on attaque
les "codes secrets" est peut-être utile avant d'en concevoir un.

Le minimum indispensable pour dépasser le niveau Pif Gadget.
Philippe Lheureux
Le #22526441
Le OTP (One Time Pad) est sûr.
Le problème du OTP, c'est que la clé est aussi longue que le message.
Ce que tu essayes de faire ici, c'est en fait d'allonger la clé, ce
qui est d'autant moins souhaitable que tu ne le fais pas d'une façon
économique et facilement formalisable. Les gesticulations pseudo
aléatoires que nous offre ta vague description ne sont que de la
complexité illusoire. De façon économique, tu prends des bits et
essaye de faire compter chacun d'entre eux. Et puis tu essaies de
démontrer qu'il n'y a pas de meilleure approche que l'attaque par
force brute. Si c'est le cas (ou si l'on a un niveau très élevé de
certitude que c'est le cas et que la description formelle de
l'algortithme est publique), on ne peut pas faire mieux.



tsss tsss ..on parle toujours d'OTP comme le seul système invulnérable mais
te rappelles tu de la simple feuille de papier trouée à certains endroits et
que l'on pose sur un texte en clair de manière a ne visualiser que certaines
lettres du texte ! Mon système reproduit une sorte de feuille trouée posée
sur un texte .. sauf que la , a la place du texte en clair , c'est une autre
grille codée : Celle des intervalles.
Le seul problème ... le code des trous dans la feuille est il prédictible ou
pas ! moi je pense que non à cause des rotations de clé et du rajout de
caractères aléatoire. Je pense que l'on obtient de cette manière quelque
chose de bien résistant.
Si le numéro de l'intervalle est 791256 pour coder B
on mélange et on positionne
1 X X 9 X X 5 2 X X X X 5 X 6 7
puis on remplace chaque X un par un par un chiffre aléatoire compris entre 0
et 9
1 2 1 9 7 2 5 2 8 0 0 3 5 8 6 7

bien entendu la clé qui montre l'ordre et la position des bons chiffres a
extraire pour reconstituer le numéro varie aussi a chaque caractère

Par ailleurs, la conception de ton algorithme montre clairement que si
tu aimes les "codes secrets", tu n'as absolument aucune notion de
cryptanalyse, même classique. Je te conseille de lire "Cryptanalysis"
de Helen Fouche Gaines pour une introduction à la cryptanalyse des
algorithmes classiques (pre WWII en gros) et bien sûr "Decrypted
Secrets" de Bauer pour aller plus loin. Comprendre comment on attaque
les "codes secrets" est peut-être utile avant d'en concevoir un.



Faux , même si je ne connais pas toutes les attaques , je connais la
plupart des attaques possibles , je me suis pas mal documenté sur internet.
Bref de mon coté , je pense que mon système est simple a mettre en ouvre ,
les seuls défauts que je lui trouve c'est que le chiffrage va être ralenti
par tous les accès à l'aléatoire et que celui-ci va forcement engendrer un
chiffre de plus grande taille que le texte clair.

Le minimum indispensable pour dépasser le niveau Pif Gadget.
Philippe Lheureux
Le #22527071
Avant de conclure sur la sécurité de CENA , il faut prendre en compte que
chaque caractère peut être chiffré par 3500 nombres différents à chaque fois
qu'il change d'intervalle.
Etant donnée qu'il y a 256 caractères et une rotation de la grille faisant
qu'un caractère chiffré avance a chaque fois d'un intervalle , cela fait 1
chance sur 256x3500 = 896000 de renvoyer 6 chiffres sur 6 ... rien que pour
la clé a intervalles. Entre temps , d'autres combinaisons peuvent renvoyer
des chiffres identiques et placés aux mêmes endroits , exemple 125866 et
259866 renvoient aussi trois chiffres identiques alors qu'ils n'ont aucun
rapport avec un retour de la clé dans le même intervalle. Bref il y a
tellement de faux signaux parasites que la sécurité est assurée.
Stephane CARPENTIER
Le #22527091
Philippe Lheureux a écrit:

Bref
il y a tellement de faux signaux parasites que la sécurité est as surée.



:))))))))))))))))))))))))))))))))))
Philippe Lheureux
Le #22531081
Bref
il y a tellement de faux signaux parasites que la sécurité est assurée.



:))))))))))))))))))))))))))))))))))



Ben oui quoi , c'est exactement ce qui se passe si l'on veut essayer de
comparer les numéros à 16 chiffres entre eux pour essayer de trouver la
clé.
Stephane CARPENTIER
Le #22532201
Désolé les gens, je ne peux pas m'en empêcher, je ne lui fait qu' une
réponse.

Philippe Lheureux a écrit:

Bref
il y a tellement de faux signaux parasites que la sécurité est assurée.



:))))))))))))))))))))))))))))))))))



Ben oui quoi , c'est exactement ce qui se passe si l'on veut essayer de
comparer les numéros à 16 chiffres entre eux pour essayer de tro uver la
clé.



Ce qui me fait marrer, c'est que ta phrase résume que tu n'as toujour s rien
compris à ce qui t'était reproché et que tu en es fier. Tu enfume s, mais tu
ne sécurises pas. Lorsque quelqu'un te montre que ton algo est troué , tu
obscurcis, mais tu ne le rends pas plus sûr.

Si tu vois qu'une porte a une serrure faible, rajouter du chatterton su r ta
serrure la cachera. Ça compliquera un peu la tâche de celui qui veu t
crocheter la serrure, mais ça ne rend pas la serrure plus solide. La
personne qui veut entrer enlèverra le chatterton. Et toi, tu vas alor s
mettre deux bouts de chatterton. Les gens d'ici vont enlever les deux b outs
de chatterton et toi, tu vas en rajouter un troisième.

Une fois que tu auras mis quinze bouts de chatterton, les plus tenaces vont
abandonner parce que ça ne sert à rien et que c'est chiant au bout d'un
moment. Comme tu n'auras rien compris à la raison pour laquelle ils l aissent
tomber, tu vas fanfaronner en disant que quinze bouts de chatterton
sécurisent une serrure.

Mais c'est faux. Une pléthore de faux signaux parasites ne sécurise rien du
tout. Ça complexifie la tâche de l'attaquant, ce qui n'est pas un m al si ce
que tu embrouilles est performant. Mais c'est inutile si tu embrouilles
quelque chose de faible.
Pierre Vandevenne
Le #22532251
On 1 sep, 18:12, "Philippe Lheureux"
>> Bref
>> il y a tellement de faux signaux parasites que la sécurité est ass urée.

> :))))))))))))))))))))))))))))))))))

Ben oui quoi , c'est exactement ce qui se passe si l'on veut essayer de
comparer les numéros à 16 chiffres entre eux pour essayer de  trouv er la
clé.



Il es mignon monsieur Pignon...

Ce "numéro" ci te dis quelque chose?

115792089237316195423570985008687907853269984665640564039457584007913129639 936
Philippe Lheureux
Le #22534731
Ce "numéro" ci te dis quelque chose?

115792089237316195423570985008687907853269984665640564039457584007913129639936



Oui , c'est exactement le genre de cote qu'on obtiendrait avec mon principe
de crypto CENA .. pourquoi cette question ?
Publicité
Poster une réponse
Anonyme