OVH Cloud OVH Cloud

Simple algo: 3e étape - attaque à clair ou chiffré connu

81 réponses
Avatar
Raymond H.
Bonjour,
avec l'algo suivant il n'est donc pas possible, à partir de l'algo
seulement, de trouver la clef ni le clair.
41 105 71 63 =k
51 52 53 =m
249 281 250 =c

c1=k1+k2+m1+m2
c2=k2+k3+m2+m3
c3=k3+k4+m3+k4 (k4 remplace aussi m4)

Donc,
1- la clef n'est pas trouvable par inversion de l'algo seul ou d'un calcul
quelconque (sans parler d'attaque à clair ou chiffré connu...)
2- le clair n'est pas trouvable par inversion de l'algo seul ou d'un calcul
quelconque (sans parler d'attaque à clair ou chiffré connu...)

J'ajoute donc maintenant un Xor et une addition au calcul de l'algo
ci-avant afin de tenter d'empêcher de trouver la clef ou le clair par le
moyen d'une attaque à clair ou chiffré connu. Voici le nouvel algo:

41 105 71 63 =k
51 52 53 =m
185 199 12 =c

c1=(((k1 + k2 + m1 + m2) xor k2) + k1) Mod 256
c2=(((k2 + k3 + m2 + m3) xor k3) + k2) Mod 256
c3=(((k3 + k4 + m3 + k4 ) xor k4) + k3) Mod 256 (k4 remplace aussi m4)

On fait donc:
c1:
41 + 105 + 51 + 52 = 249
249 xor 105 = 144
144 + 41 = 185
185 Mod 256 = 185 = c1


c2:
105 + 71 + 52 + 53 = 281
281 xor 71 = 350
350 + 105 = 455
455 Mod 256 = 199 = c2

c3:
71 + 63 + 53 + 63 = 250
250 xor 63 = 197
197 + 71 = 268
268 Mod 256 = 12 = c3

Ici on suppose encore qu'on ne fait pas de boucle avec la clef et
qu'elle
serait en réalité une sous chaîne générée par la clef et qu'elle serait de
la même longueur que le clair plus un caractère. Voilà pour cette tentative
d'empêcher de trouver la clef par une attaque à
clair ou chiffré connu.

J'attends donc vos suggestions, et vous donne un test pour trouver soit
la clef (k) ou le clair (2m). Voici donc le clair et son chiffré plus un
autre chiffré crypté avec la même clef que le clair/chiffré. Je n'ai pas eu
besoin d'utiliser le modulo dans 1c ni 2c puisque aucune des valeurs des
deux chiffrés n'ont dépassées 255.

? ? ? ? = k
8 12 21 = 1m
32 51 62 = 1c

? ? ? ? = k
? ? ? = 2m
53 22 44 = 2c

Bon calculs!
Raymond H.

10 réponses

Avatar
Mister Jack
Salut !

Bonjour Mister Jack,
c1[0] = k1[0]^ k2[0] ^ m1[0] ^ m2[0] ^ k2[0] ^ k1[0]
On peut donc simplifier en : c1[0] = m1[0] ^ m2[0].


Juste une question. Pourquoi remplacez-vous les '+' de la ligne
suivante par des 'xor'? Puisque ça ne fait pas le même calcul ni ne donne
le même résultat. Ce pourrait-il que vous pensez que les '+' sont des 'xor'
ici?


Non. Quand vous faites une addition de deux entiers, le premier bit
subit, lui, un simple xor...

54+17 = 110110 + 010001 = 1000111 = 71
^ ^ ^
Vous remarquez bien qu'on a 0^1=1, c'est un xor.

en binaire, quand vous faîtes ab+cdï,
on a f = b^d, et e = a^c^(b.d)

Bonne journée
--
Mister Jack (MJ)
"Linux c'est pas pour les manchots !"
Un don pour les victimes du Tsunami : http://www.croix-rouge.fr/


Avatar
Christophe HENRY

expliqué plus haut fonctionne avec le 'Simple algo' de l'étape 3 qu'on
a pas réussi encore à casser.


Je l'ai fait. J'ai fourni plusieurs clés correspondant à ton clair et
ton chiffré. Avec UN clair et UN chiffré, j'ai trouvé des TAS de clés.


Effectivement, le problème, c'est que de nombreuses clés vont donner le
même chiffré.


C'est justement ce qu'il faut. Il faut qu'il y ait un grand nombre de
clefs possibles. Plus il y en a, plus c'est difficile à trouver.


C'est une belle philosophie Schadok.
A quoi ça sert d'agrandir l'espace des clés d'un ordre de grandeur
(dimension) si c'est pour augmenter les clés similaires d'autant.
Avec une clé de même longueur que le clair, la correspondance est
unique. Dès lors que la clé est plus longue que le clair, il existe
systématiquement des clés équivalentes dans la même proportion.

C'est un peu comme l'euro : mon salaire a été presque divisé par 7. Un
cata. Heureusement, les prix ont été divisés d'autant.


De plus,
vous ne tenez pas compte du fait que ce n'est pas seulement la clef qu'il
vous aurait fallu trouver mais le clair aussi; et cela vous ne l'avez pas
fait.


Là, je reste sur la position que j'avais donné au départ : Avec un
chiffré dont la clé de session (aux contraites qui vont bien :
aléatoire, bien choisie, etc...) n'est utilisée qu'une *unique* fois, je
ne peux strictement rien faire. Si j'ose dire, ni personne ni les maths.

Ce n'est pas que c'est difficile : c'est impossible.


Donc, vos 640 possibilité se sont rien à côté de vrai nombre de
possibilité pour trouve non seulement la clef mais le clair aussi. Car
l'exemple en question, le clair et le chiffré étaient connu. Alors, quelle
est la nécessité de trouver la clef de session si vous avez déjà le clair?


En trouvant la clé de session, on peut cryptanalyser la phrase de passe
selon le même processus puisqu'on a maintenant la clé de session
chiffré et la clé de session en clair.

En notation maison, ça donne :
M = clair
S = clé de Session
P = prase de Passe
C = Chiffré
{}{} = concaténation
/ = chiffrement
= déchiffrement ou cryptanalyse
C = {M/S}[S/P}

C et M sont connus.
De là : S = MC (c'est ce que je cherche à faire)
Le problème revient donc à trouver S/P avec S connu : la phrase de passe
est au bout.


...
Donc, ce n'est pas une clef qui correspond au clair qu'il faudrait
rechercher, mais ce serait plutôt une clef et son clair qui
correspondent au chiffré.


Tout à fait. Du clair et du chiffré global on trouve la clé de session
clair. Par définition on dispose aussi de la clé de session chiffré. De
là, avec clair et chiffré, on tente de trouver la (une) phrase de passe.


16 : K={1,5,213,45}
...
640 : K={198,197,213,45}

* clés déjà données par Henry.

Aucune des clefs que Henry a présentées n'est la bonne. Elle ne

se
trouve pas non plus dans les 17 choix que vous mentionnez ici.


Ces clés répondent au problème suivant :
M=[8;12;21]
C=[32;51;62]
Avec le procédé utilisant le xor.

Si nous nous sommes trompés, merci de vérifier les calculs suivants :
SAxor([1;2;3],[1;2;3;4])=[5;11;13]
SAxor([255;255;255],[255;255;255;255])=[2;2;2]
SAxor([0;0;0],[255;255;255;255])=[0;0;1]
SAxor([255;255;255],[0;0;0;0])=[254;254;255]
SAxor([8;12;21],[1;5;68;225])=[32;51;62]


Je ne
dis pas qu'elle ne fait pas partie des 640. Mais il semble que vous ne
comprenez pas bien la logique de l'algo, car l'exemple que j'ai donné
et que vous faites référence est un exemple dont j'ai donné le clair
et son chiffré; le clair comportait seulement 3 caractères. Imaginez
si le clair avait quelques phrases, donc au dessus de 1000 caractères.


J'imagine assez mal, en fait. L'inspiration divine ne fait pas partie de
mes prérogatives. Je n'ai connaissance que des spécification de
l'algorithme chiffrant 3 octets par une clé de 4 octets pour un chiffré
de 3 octets.


Si vous voulez, faites le test et dites combien de clefs seraient
possible avec un clair de 1000 caractères (ce n'est que quelques
phrases). Je dis ceci mais ce que j'aimerais que vous compreniez c'est
que tout cela ne donne rien d'essayer toutes les clefs pour voir s'il y
en a une qui correspond au clair déjà donné avec son chiffré.


Ben si : avec la clé de session on peut tenter de retrouver la phrase de
passe. Ca dépend quand même du procédé que tu utilises mais que nous
ne connaissons pas.


décrypter d'autres fichiers chiffrés. Alors, 'Non'! Car la clef de
session que vous essayez de trouver n'est générée qu'une seule fois,
même si vous écrivez toujours votre phrase de passe (la clef
personnelle que vous tapez). Ceci, en lisant votre réponse à mon
explication, j'ai vu que vous ne l'avez pas compris ni Henry.


Les spécifications complètes (avec des calculs, sans textes
dythirambiques) sont les bienvenues. J'ose rêver : un code source en
C++ en objet serait un plus. A défaut, le code en algorithmique.


La clef que vous écrivez (la phrase de passe) n'est pas utilisée
pour
crypter les données d'un fichier. Le calcul de la phrase de passe qui
est effectué pour générer le code d'indentification n'est pas
inversible (je n'ai pas donné ce calcul encore); donc, vous ne pourriez
pas trouver la phrase de passe car elle n'est pas enregistrée et ne
parait à nul part dans le chiffré du fichier.


Ca renforce quelque peu le procédé, théoriquement. Il n'est pas
nécessaire de connaître la phrase de passe : il suffit de disposer d'une
phrase équivalente, c'est-à-dire qui produit le même type de
chiffrement. Avec tes spécifications _complètes_, on pourra voir tout
ça.


...
La seule façon de trouver la phrase de passe (votre clef
personnelle
écrite) est de tenter une attaque forcé (taper plusieurs clefs à
l'endroit prévue à cet effet dans le logiciel jusqu'à ce que vous
écriviez la bonne, et ceci peut être tenté dans n'importe lequel des
logiciels de chiffrage: j'explique pour ceux qui lisent et ne
comprennent pas).


Je n'utilise pas de logiciels de chiffrement fermés, dont je n'ai pas le
code source et encore moins l'algorithme. Donc je ne "taperai pas
plusieurs clés".
Et je recommande à "ceux qui lisent et ne comprennent pas" de lorgner du
côté des Logiciels Libres éprouvés et approuvés. La cryptographie
reste un métier. Les Logiciels Libres utilisent des algos parfaitement
connus et les secrets de fabrications renfermés dans le code source du
programme sont ouverts à tout le monde. Tout le monde sans exception,
c'est même l'une des conditions à l'appelation "Logiciel Libre".


...
alors vos 640 possibilités de clefs de session différentes ne
suffiront pas puisqu'il y en aurait une tonne à essayer. Et c'est pour
cela que Henry a dit: "ça n'a pas de sens.", car il a dit cela pour le
2e exemple qui ne comportait pas la clef ni le clair, et pourtant le
clair à trouver ne comportait que 3 caractères non dévoilés.


Je voulais dire qu'à partir d'un chiffré on peut désigner n'importe
quelle clé ou clair pour ensuite retrouver le morceau manquant. Dans
l'exemple 3, n'importe quelle clé aurait convenu. A chaque clé
proposée, il aurait toujours été possible de trouver un clair. Et
vice-versa.


Imaginez maintenant les possibilités pour décrypter un chiffré dont
vous ne connaissez pas le clair ni la clef; et encore pire si votre
texte comporte plus que 3 caractères.


Même pas mal. J'attends juste les spécifications détaillées, précises
et sans trop de blabla.


...
Je vous encouragerais à relire attentivement mes explications dans
mon
message précédent et qui sont assez claires pour être comprises
puisque j'ai aussi mis un exemple expliqué pas à pas.


Je te demande de bien vouloir les produires à nouveau en adoptant un
formalisme adapté à ce type de publication technique.
Je consacre une partie de mon temps à travailler _gratos_ pour la
grandeur de la science, mais bon, il faut quand même m'aider.

--
Christophe HENRY
(sans lkm)
GnuPG : 3922239E60036EC86BF7268A877C52AC 4883C02A




Avatar
Christophe HENRY

en binaire, quand vous faîtes ab+cdï,
on a f = b^d, et e = a^c^(b.d)


T'as l'air de t'y connaitre ;-) T'aurais pas dès fois la formule
complète pour 8 bits ? Ces foutues retenues me retiennent péniblement.

--
Christophe HENRY
(sans lkm)
GnuPG : 3922239E60036EC86BF7268A877C52AC 4883C02A

Avatar
Mister Jack
On peut donc simplifier en : c1[0] = m1[0] ^ m2[0].
On se retrouve avec un simple XOR où la clé n'intervient pas.


Le premier bit du chiffré est ainsi fonction uniquement du clair.


Oui.

Bon, sinon on a déjà 1 bit sur 8 d'inexploité par la clé


Je ne crois pas, dans le cas général. Si changer k1[0] ne change pas
c1[0], une retenue pourra se propager et perturber c1.

Contre-exemple :
M = [8;12;21]
K = [7;8;9;10]
-->SAxor(M,K)
! 50 !
! 67 !
! 65 !
-->SAxor(M,K+[-1;0;0;0])
! 48 !
! 67 !
! 65 !


Oui, il y a bien propagation de retenue, c'est d'ailleurs ce qui
complique rapidement les bits suivants. Mais le bit 0, lui, est fixé par
le clair, et peu importe la clé, il sera toujours le même. Je me suis
mal exprimé, je corrige : "on a déjà un bit sur 8 du chiffré qui est
inexploité par la clé".

Ca m'apprendra, tiens... ;-)
--
Mister Jack (MJ)
"Linux c'est pas pour les manchots !"
Un don pour les victimes du Tsunami : http://www.croix-rouge.fr/


Avatar
Mister Jack
Salut !

en binaire, quand vous faîtes ab+cdï,
on a f = b^d, et e = a^c^(b.d)


T'as l'air de t'y connaitre ;-) T'aurais pas dès fois la formule
complète pour 8 bits ? Ces foutues retenues me retiennent péniblement.


Bah, c'est relativement simple quand on peut faire référnce à une
'retenue', mais formaliser directement le 8ème bit résultat en fonction
de l'ensemble des données présentées, c'est *très* long. C'est pour ça
que j'ai voulu utiliser MappleV pour qu'il me simplifie ça, mais il veut
pas ;-)
Sinon, pour une addition simple de 2 éléments :

a7 a6 a5 a4 a3 a2 a1 a0
+b7 b6 b5 b4 b3 b2 b1 b0
------------------------
Ç c6 c5 c4 c3 c2 c1 c0

on appellera ri les retenues, et d le dépassement;

c0 = a0^b0 ; r0 = a0.b0
c1 = a1^b1^r0 ; r1 = (r0.a1)+(r0.b1)+(a1.b1)
c2 = a2^b2^r1 ; r2 = (r1.a2)+(r1.b2)+(a2.b2)
c3 = a3^b3^r2 ; r3 = (r2.a3)+(r2.b3)+(a3.b3)
c4 = a4^b4^r3 ; r4 = (r3.a4)+(r3.b4)+(a4.b4)
c5 = a5^b5^r4 ; r5 = (r4.a5)+(r4.b5)+(a5.b5)
c6 = a6^b6^r5 ; r6 = (r5.a6)+(r5.b6)+(a6.b6)
c7 = a7^b7^r6 ; d = (r6.a7)+(r6.b7)+(a7.b7)

Exprimer le résultat avec des retenues est assez simple. Sans les
retenues c'est une horreur.
Un bon logiciel de maths saura exprimer les ci à partir des ai et bi
assez facilement si on lui rentre ce qu'il y a ci-dessus.

c0 ^b0
c1¡^b1^a0.b0
c2=((!((a0.b0.a1)+(a1.b1)+(a0.b0.b1)).((!(b2).a2)+(!(a2).b2)))+(!(((!(b2).a2).(!(a2).b2))).((a0.b0.a1)+(a1.b1)+(a0.b0.b1))))
...
mais c'est long... surtout exprimé uniquement avec des AND, NOT et OR
comme ci-dessus.

Je pense que certains logiciels de modélisation en VHDL devraient être
capables de sortir un design en portes NOT, AND et OR à partir d'une
simple addition 8 bits. Ca pourrait aider éventuellement.

Amicalement,
--
Mister Jack (MJ)
"Linux c'est pas pour les manchots !"
Un don pour les victimes du Tsunami : http://www.croix-rouge.fr/


Avatar
Christophe HENRY

T'as l'air de t'y connaitre ;-) T'aurais pas dès fois la formule
complète pour 8 bits ? Ces foutues retenues me retiennent péniblement.


Bah, c'est relativement simple quand on peut faire référnce à une
'retenue', mais formaliser directement le 8ème bit résultat en fonction
de l'ensemble des données présentées, c'est *très* long.


Oui, j'ai commencé à calculer le truc et, rien qu'au deuxième bit c'est
énorme.


c0 ^b0
c1¡^b1^a0.b0
c2=((!((a0.b0.a1)+(a1.b1)+(a0.b0.b1)).((!(b2).a2)+(!(a2).b2)))
+(!(((!(b2).a2).(!(a2).b2))).((a0.b0.a1)+(a1.b1)+(a0.b0.b1))))


Ouf ! Je t'affirme solennelement que les deux premières lignes sont
justes :-o


Je pense que certains logiciels de modélisation en VHDL devraient être
capables de sortir un design en portes NOT, AND et OR à partir d'une
simple addition 8 bits. Ca pourrait aider éventuellement.


Je vais procéder autrement, alors. Ca devient trop dur pour moi.


Merci pour la réponse :-)

--
Christophe HENRY
(sans lkm)
GnuPG : 3922239E60036EC86BF7268A877C52AC 4883C02A


Avatar
Raymond H.
"Christophe HENRY" a écrit dans le
message de news: cs3429$2919$
Effectivement, le problème, c'est que de nombreuses clés vont donner le
même chiffré.


C'est justement ce qu'il faut. Il faut qu'il y ait un grand nombre
de
clefs possibles. Plus il y en a, plus c'est difficile à trouver.


C'est une belle philosophie Schadok.
A quoi ça sert d'agrandir l'espace des clés d'un ordre de grandeur
(dimension) si c'est pour augmenter les clés similaires d'autant.
Avec une clé de même longueur que le clair, la correspondance est
unique. Dès lors que la clé est plus longue que le clair, il existe
systématiquement des clés équivalentes dans la même proportion.


Excusez mon erreur. Ce n'est pas un grand nombre de clefs différentes
pour un clair qui est mieux mais plutôt un grand nombre de clefs et clairs
différents pour un même chiffré. Faut aussi dire que pour 4 caractères à
256 possibilités chacun cela fait plus de 4 milliards de possibilités pour
une clef de 4 caractères. Donc, 4 milliards moins 640 clefs différentes
pour un même clair, les 640 ne sont qu'une poussière à côté.


De plus,
vous ne tenez pas compte du fait que ce n'est pas seulement la clef qu'il
vous aurait fallu trouver mais le clair aussi; et cela vous ne l'avez pas
fait.


Là, je reste sur la position que j'avais donné au départ : Avec un
chiffré dont la clé de session (aux contraites qui vont bien :
aléatoire, bien choisie, etc...) n'est utilisée qu'une *unique* fois, je
ne peux strictement rien faire. Si j'ose dire, ni personne ni les maths.

Ce n'est pas que c'est difficile : c'est impossible.


:-)


Donc, vos 640 possibilité se sont rien à côté de vrai nombre de
possibilité pour trouve non seulement la clef mais le clair aussi. Car
l'exemple en question, le clair et le chiffré étaient connu. Alors,
quelle
est la nécessité de trouver la clef de session si vous avez déjà le
clair?


En trouvant la clé de session, on peut cryptanalyser la phrase de passe
selon le même processus puisqu'on a maintenant la clé de session
chiffré et la clé de session en clair.


D'accord.


En notation maison, ça donne :
M = clair
S = clé de Session
P = prase de Passe
C = Chiffré
{}{} = concaténation
/ = chiffrement
= déchiffrement ou cryptanalyse
C = {M/S}[S/P}

C et M sont connus.
De là : S = MC (c'est ce que je cherche à faire)
Le problème revient donc à trouver S/P avec S connu : la phrase de passe
est au bout.


Ok.

...
Donc, ce n'est pas une clef qui correspond au clair qu'il faudrait
rechercher, mais ce serait plutôt une clef et son clair qui
correspondent au chiffré.


Tout à fait. Du clair et du chiffré global on trouve la clé de session
clair. Par définition on dispose aussi de la clé de session chiffré. De
là, avec clair et chiffré, on tente de trouver la (une) phrase de passe.


Je comprends.



16 : K={1,5,213,45}
...
640 : K={198,197,213,45}

* clés déjà données par Henry.

Aucune des clefs que Henry a présentées n'est la bonne. Elle ne

se
trouve pas non plus dans les 17 choix que vous mentionnez ici.


Ces clés répondent au problème suivant :
M=[8;12;21]
C=[32;51;62]
Avec le procédé utilisant le xor.

Si nous nous sommes trompés, merci de vérifier les calculs suivants :
SAxor([1;2;3],[1;2;3;4])=[5;11;13]
SAxor([255;255;255],[255;255;255;255])=[2;2;2]
SAxor([0;0;0],[255;255;255;255])=[0;0;1]
SAxor([255;255;255],[0;0;0;0])=[254;254;255]
SAxor([8;12;21],[1;5;68;225])=[32;51;62]



Ces 5 exemples sont corrects. Et les clefs de votre autre message antérieur
étaient bonnes aussi même si aucune ne correspondait avec ma clef.


...
alors vos 640 possibilités de clefs de session différentes ne
suffiront pas puisqu'il y en aurait une tonne à essayer. Et c'est pour
cela que Henry a dit: "ça n'a pas de sens.", car il a dit cela pour le
2e exemple qui ne comportait pas la clef ni le clair, et pourtant le
clair à trouver ne comportait que 3 caractères non dévoilés.


Je voulais dire qu'à partir d'un chiffré on peut désigner n'importe
quelle clé ou clair pour ensuite retrouver le morceau manquant.


Quel morceau manquant?

Dans
l'exemple 3, n'importe quelle clé aurait convenu. A chaque clé
proposée, il aurait toujours été possible de trouver un clair.


Mais pas nécessairement le bon clair.

Imaginez maintenant les possibilités pour décrypter un chiffré dont
vous ne connaissez pas le clair ni la clef; et encore pire si votre
texte comporte plus que 3 caractères.


Même pas mal. J'attends juste les spécifications détaillées, précises
et sans trop de blabla.

Bonne journée.

r.h.



Avatar
Mister Jack
Salut !

l'exemple 3, n'importe quelle clé aurait convenu. A chaque clé
proposée, il aurait toujours été possible de trouver un clair.


Mais pas nécessairement le bon clair.


J'ose espérer que l'algo est réversible. Si j'utilise {clé1;clair1} pour
générer chiffré1, on pourra donc, à partir de {chiffré1;clé1} retrouver
clair1.
Ce qui se passe ici c'est qu'il y a beaucoup de clés équivalentes à
clé1. J'ai clé2, clé3,... cléi qui sont équivalentes à clé1 au sens où
toutes ces clés associées à clair1 vont former chiffré1.
Donc chacune de ces clés permet de reformer clair1 à partir de chiffré1.

Ceci, évidemment, indépendamment d'une éventuelle surcouche à votre algo.

D'ailleurs, si vous vouliez bien présenter une spécification complète de
votre algo... c'est difficile de faire tomber une partie de votre algo,
et de vous entendre répondre "mais il n'y a pas que cela", sans savoir
ce qu'est le reste... Si vous ne donnez pas le reste, autant ne rien faire.

Je voulais aussi revenir là-dessus:

Imaginez maintenant les possibilités pour décrypter un chiffré dont
vous ne connaissez pas le clair ni la clef; et encore pire si votre
texte comporte plus que 3 caractères.




Le nombre de caractères n'est pas extrêmement important ici. Vous aviez
une clé de 4 caractères, et je vous assure que mon programme n'a pas
testé les 4milliards et quelques clés possibles pour trouver l'ensemble
des 640 qui fonctionnaient.
il n'en a en fait testé que 0.007%.
Ca peut encore paraitre beaucoup, mais le pourcentage à tester décroit
rapidement avec la taille de la clé...
Disons qu'après quelques centaines de calculs, environ 95% des clés
possibles sont déjà définitivement éliminées.
Et pour casser votre algo, rien ne sert d'avoir l'ensemble des clés
possibles. Une seule suffit.

Cordialement,
--
Mister Jack (MJ)
"Linux c'est pas pour les manchots !"
Un don pour les victimes du Tsunami : http://www.croix-rouge.fr/



Avatar
Raymond H.
"Christophe HENRY" a écrit dans le
message de news: cs07ar$ql9$
Je tiens à remercier 'Christophe HENRY' pour avoir avoué sa limite
actuelle (dans les maths) disant qu'il n'arrive pas casser le 'Simple
algo' à l'étape 3.


Pas de remerciements. C'est normal. Et surtout, ton procédé est
quasi-cryptanalysé. Je souhaite juste en finir avec l'équation triviale
qui me bloque pour obtenir une solution belle et nette comme je les aimes
tant : du genre donner TOUTES les clés possibles plutôt qu'une seule
comme je l'ai fait lorsque tu as passé ta clé sur 4 octets :-*


Plutôt juste avant d'ajouter le 4e octet à la clef...


...
J'aimerais bien qu'un spécialiste en cryptologie ou en mathématique nous
dise son avis sur la possibilité du cassage du 'Simple algo' à l'étape
3.


Marrant de séparer crypto et maths. Autant imaginer un auteur
(ie crypto) de romans français ne parlant (ie maths) pas le français :-/


Je ne vois pas l'utilité de certains commentaires.

Certes. Mais tu négliges un GROS détail : les contributeurs du forums
ont derrière eux les centaines d'années de sciences mathématiques dont
ils se servent pour argumenter. Jusqu'à mes démonstrations et
applications qui ont démontré la faiblesse du procédé. Or, si je
m'avère compétent (à ton sens), les autres le sont au moins autant.



Je dis que vous avez une CERTAINE compétence comme beaucoup ont, y
compris moi. Chacun à son propre niveau. Les uns plus que d'autres.
De plus, je ne néglige pas tout ce que je lis, et je ne met pas pour autant
TOUTES ma confiances dans les scientifiques. Prenez par exemple certaines
'lois de la physique' concernant le mouvement perpétuel, et bien d'autres.
Des professeurs universitaires enseignent que le mouvement perpétuel est
impossible et pourtant on a la preuve du contraire: sans parler de
l'invention en France; regardons la terre qui fait le tour du soleil. Assez
ridicule quelque fois certaines lois non de la physique mais des hommes sur
la physique. Ce n'est qu'un exemple parmi tant d'autres. Aussi, les
inventeurs n'étaient pas tous très instruits. Passons...



Raymond, pourquoi ai-je l'impression que tu implémentes une fonction de
hachage en ce qui concerne nos remarques ?


??? une fonction de hachage!#!!?##? Je ne suis pas sûr de comprendre.


C'est là où je voulais en arriver :



Je ne comprends pas plus votre phrase, pour ajouter les mots '...en ce qui
concerne nos remarques' ?


tu n'as pas les connaissances de
base pour construire ce genre d'algorithme dont les termes élémentaires
t'échappent.



Ce n'est pas parce qu'on n'utilise pas certains termes qu'on ne peut pas
construire la chose elle-même. Soyez un peu plus clair quand vous dites :
"ce genre d'algorithme'.
Il est vrai que j'ai confondu le mot 'hachage' avec ceux de la famille du
mot 'hacker'.

Hacker:
"Celui qui utilise des moyens informatiques immoraux et/ou illégaux pour s'introduire
sur les systèmes informatiques et y commettre éventuellement des dégâts. Il
y aurait parfois une notion de code moral chez le hacker (?!). Terme
français : pirate. "

Mais, concernant le 'hachage' ou 'hash', j'ai déjà parlé du code
d'identification généré par la phrase de passe par un certain calcul.
N'est-ce pas d'une certaine façon en rapport avec le hachage? Puisque c'est
de façon non inversible. Si je prend le MD5, il peut pourtant produire des
collisions et n'est donc plus considéré comme sûr. Voir à
http://fr.wikipedia.org/wiki/Fonction_de_hash à la section 'Fonction de hash
cryptographique'.



Supposons que nous (on dit tous la même chose, donc : nous)
ayons raison. Nous possédons la science nécessaire pour se l'expliquer
entre nous et tout autre personne culturée. Mais tu ne peux pas
comprendre et, c'est le plus génant, accorder de valeur à nos écrits
parce que tu ne les comprends pas. C'est dommage.



Je ne vois vraiment pas le but de ce commentaire. Si vous avez la
science nécessaire pour expliquer, pourquoi ne pas vous faire comprendre
simplement en utilisant des mots communs de tous les jours pour tous? Moi,
je parle français et je ne connais pas tous les mots français, ai-je un
manque de connaissance pour m'expliquer avec d'autres mots plus simples? Par
exemple, je suis guitariste et je ne lis pas les notes de musique et les
notes ne m'intéressent pas non plus. Mais par contre à la fin de
l'adolescence (il y a quelques décennies) je jouais assez bien de la guitare
et je jouais avec un groupe dans des endroits annoncés à la télé et on
disait que j'étais professionnel. Or, je joue à l'oreille. Cela fait-il de
moi un incompétent ou un moins qu'un débutant et de ce fait incapable de
m'adapter avec d'autres guitaristes?
Lisez les premiers messages du 'Simple algo'. J'ai tenté d'expliquer
étape par étape à AMcD le procédé pour trouver le clair à partir de la clef
et du chiffré; j'ai tenté de le faire étape par étape par de simples
calculs, puis vous avez ajouté des calculs plus compliqués (et cela je le
respecte). Cela fait-il de moi un incompétent si je ne peux donner tous les
noms de vos calculs et si j'utilise une méthode plus simple à la portée du
plus grand nombre (même si je ne me souviens pas de tous les noms donnés à
mes parties de calculs ou d'algèbres que j'ai employé)?
Tous ceci pour vous dire que vous pouvez employer un langage plus simple
lorsque vous pensez que moi ou d'autres ne sommes pas à la hauteur de vos
compétences.


...Ces fils sont à la suite justement de l'annonce d'AllCrypter
dans ce groupe de discussion,


Ca s'appelle du SPAM, en violation avec ma petite pensée à moi



Et voilà! Votre pensée. Mais on sait que ce n'est pas du SPAM selon la
définition général (une fois ou deux ou à peu près, et dans un but différent
car j'e suis en plus sur un site traitant de ce sujet).


que j'ai
sur l'usage des forums, et, en violation avec les chartes régissant la
hiérarchie fr.*.


Je ne crois absolument pas puisque c'est le sujet de ce forum et c'était
aussi pour voir certains commentaires. Si j'étais en violation alors une
tonne de personne l'était puisqu'elles ont répondu à mon message, et donc
participé. Or, nous étions dans le sujet de ce groupe.

Tu as d'ailleurs répété l'offense sur au moins un autre forum.



Juste avant, une 'violation' et maintenant une 'offense'. Annoncer un
logiciel de chiffrage sur 2 forums qui traitent du sujet n'est pas du SPAM.
Pourquoi parler de cela maintenant? C'est quoi le but?



Au lieu de dire : "j'ai un algo qui tue, qui veut me le casser ?", tu as
posté un message à caractère commercial crade.



Ca va à part ça? Je dis cela pour vous faire réfléchir sur le pourquoi
vous m'écrivez tout cela. Car ce n'est pas très intéressant de se faire
piquer de temps en temps, surtout à la suite de phrases que j'aurais écrites
pour vous faire plaisir comme en disant que vous n'êtes pas débutant en
matière de cryptologie (et non dans un métier).



et mon but est de
développer ce 'Simple algo' en sorte que je le mette ou m'en inspire
pour la version 3 d'AllCrypter. Je tiens à ce que les gens utilisant
AllCrypter ait un logiciel sur lequel ils peuvent compter. C'est
pourquoi je veille à son amélioration POUR une version 3 interdisant
les attaques à clair ou chiffré connue ou d'autres sortes d'attaques.
Moi, j'y crois, et c'est à quoi je mets mon énergie ici.


Tout ce que tu vas arriver à faire c'est épuiser les compétences (dans
mon cas) et les énergies (de tous les contributeurs). Tout cela est fait
gratos, ne l'oublie pas.



Moi aussi je mets du temps pour expliquer à tous ceux qui nous lisent et
ça instruit du même coup quelques personnes sûrement. J'ai démarré un algo
publiquement ici afin que les gens puissent le développer aussi (s'ils le
désirent) et non moi seul, et cela afin que nous puissions tirer
instructions, les uns des autres, donnée dans ce fil de discussion.

Et moi aussi je le fais gratos. Je dis cela car le mot 'gratos' est
venu plus d'une fois sur le forum. Or, ce n'est pas un forum payant ici.
Il sert à des échanges d'idées et à s'entraider. Alors, pourquoi parler du
mot 'gratos'. Si l'argent ou le temps causent problème à certaines
personnes, et bien ce forum n'est pas obligatoire. Or, ce forum est autant
pour aider les gens sur un logiciel commercial ou non ou autres.


L'énergie totale est limitée et tends à
s'épuiser.


Je vous assure que j'ai pris en considération plusieurs de vos
remarques, même si je n'en fait pas toujours suite. De plus,
j'apprécie grandement vos contributions dans ce fil (étape 1 et 2, et
celle-ci). Dès le début j'ai apprécié la façon dont vous avez fait
vos interventions, même si la profondeur de vos calculs me laissait
quelque fois un peu derrière :-) Vous êtes même celui qui a le plus
souvent contribué et il est évident que vous n'êtes pas un débutant
en la matière.


Tu vas rire : je suis _débutant_ en la matière.


Je ne parlais pas de métier, je parlais de matière comme vous le dite
plus haut. Ça ne fait quand même pas 2 ou 3 semaines, ou 2 ou 3 mois que
vous vous intéressez à la cryptologie. Donc, vous n'êtes pas débutant.
Vous n'êtes pas en train de débuter dans cette science. La cryptologie,
étymologiquement la science du secret.

Ce n'est pas que je sois
modeste, mais juste réaliste. La crypto est pour moi un amusement, pas
mon métier principal. Imagine les autres...
C'est comme si un allemand (parlant très bien l'allemand) te disait
que tu es très fort parce que tu parles français :-o


a+
r.h.



Avatar
Raymond H.
"Mister Jack" a écrit dans le message de news:
41e63aa8$0$10267$
Salut !

l'exemple 3, n'importe quelle clé aurait convenu. A chaque clé
proposée, il aurait toujours été possible de trouver un clair.


Mais pas nécessairement le bon clair.


J'ose espérer que l'algo est réversible.
Bonjour,

Pourquoi? N'est-ce pas mieux qu'il soit non inversible?

Si j'utilise {clé1;clair1} pour générer chiffré1, on pourra donc, à partir
de {chiffré1;clé1} retrouver clair1.
Ce qui se passe ici c'est qu'il y a beaucoup de clés équivalentes à clé1.
J'ai clé2, clé3,... cléi qui sont équivalentes à clé1 au sens où toutes
ces clés associées à clair1 vont former chiffré1.
Donc chacune de ces clés permet de reformer clair1 à partir de chiffré1.

Ceci, évidemment, indépendamment d'une éventuelle surcouche à votre algo.

D'ailleurs, si vous vouliez bien présenter une spécification complète de
votre algo... c'est difficile de faire tomber une partie de votre algo, et
de vous entendre répondre "mais il n'y a pas que cela", sans savoir ce
qu'est le reste... Si vous ne donnez pas le reste, autant ne rien faire.




Je voudrais m'avancer un peu à l'étape 4 (la création et prolongation de
la clef de session). Lorsque j'aurai assez de temps je veux vous faire ça
:-)



Une idée. Je ne sais pas ce que vous en pensez. Au début, la clef de
session initiale est créée, mais c'est la clef de session finale que
l'utilisateur doit se souvenir pour décrypter, en sorte qu'on ne crypte pas
la clef de session finale pour l'enregistrer. Mais le code d'identification
serait toujours crypté et enregistrer juste pour permettre le déchiffrage,
rien d'autre. Ainsi, même si quelqu'un saurait le code d'identification de
'la clef de session', il ne pourrait pas plus déchiffrer sans connaître la
clef de session finale. Autrement dit, ce ne serait pas la phrase de passe
qu'il faudrait retenir, mais la clef de session finale qui apparaît à la fin
du déchiffrage. Avoir le bon code d'identification et ne pas avoir la bonne
clef de session cela chiffrerait autrement les données déjà chiffrées. En
sorte que c'est cette clef de session finale que l'utilisateur doit écrire
comme phrase de passe pour déchiffrer. Je ne sais pas ce que Henry en pense
aussi.


Je voulais aussi revenir là-dessus:

Imaginez maintenant les possibilités pour décrypter un chiffré dont
vous ne connaissez pas le clair ni la clef; et encore pire si votre
texte comporte plus que 3 caractères.




Le nombre de caractères n'est pas extrêmement important ici. Vous aviez
une clé de 4 caractères, et je vous assure que mon programme n'a pas testé
les 4milliards et quelques clés possibles pour trouver l'ensemble des 640
qui fonctionnaient.



J'ai fait un programme et il vient tout juste de terminer d'analyser les
4 milliards de combinaisons possibles. Il a trouvé 640 clefs possibles.
C'est une poussière à côté de 4 milliards.
Je pense qu'en doublant le nombre de caractères dans la clef cela
diminuerait de moitié le nombre de clef possible. Plus tard aujourd'hui je
veux faire le test avec 8 caractères dans la clef et aussi avec 16
caractères. Je veux vous communiquer le résultat. Mais le calcul est très
long en VB. J'ai mis les 640 clefs au bas de ce message, via un
copier/coller.

il n'en a en fait testé que 0.007%.
Ca peut encore paraitre beaucoup, mais le pourcentage à tester décroit
rapidement avec la taille de la clé...
Disons qu'après quelques centaines de calculs, environ 95% des clés
possibles sont déjà définitivement éliminées.


Pas vraiment. Regardez au bas de ce message-ci.

Et pour casser votre algo, rien ne sert d'avoir l'ensemble des clés
possibles. Une seule suffit.


Mais 4 milliards moins les 640 ne fait presque aucune différence.



Cordialement,


:-)
Bonne journée
Raymond H.

N.B.: J'ai créé un programme et j'ai testé toutes les 4 milliards de
combinaisons possibles (précisément 4294967296). Voici les 640 clefs
possibles pour le clair 008-012-021 et le chiffré 032-051-062:
001-005-004-225

001-005-005-013

001-005-020-001

001-005-021-173

001-005-068-225

001-005-069-141

001-005-084-129

001-005-085-045

001-005-132-225

001-005-133-013

001-005-148-001

001-005-149-173

001-005-196-225

001-005-197-141

001-005-212-129

001-005-213-045

001-069-068-225

001-069-069-141

001-069-084-129

001-069-085-045

001-069-196-225

001-069-197-141

001-069-212-129

001-069-213-045

001-133-004-225

001-133-005-013

001-133-020-001

001-133-021-173

001-133-068-225

001-133-069-141

001-133-084-129

001-133-085-045

001-133-132-225

001-133-133-013

001-133-148-001

001-133-149-173

001-133-196-225

001-133-197-141

001-133-212-129

001-133-213-045

001-197-068-225

001-197-069-141

001-197-084-129

001-197-085-045

001-197-196-225

001-197-197-141

001-197-212-129

001-197-213-045

002-004-005-013

002-004-021-173

002-004-069-141

002-004-085-045

002-004-133-013

002-004-149-173

002-004-197-141

002-004-213-045

002-005-004-225

002-005-005-013

002-005-020-001

002-005-021-173

002-005-068-225

002-005-069-141

002-005-084-129

002-005-085-045

002-005-132-225

002-005-133-013

002-005-148-001

002-005-149-173

002-005-196-225

002-005-197-141

002-005-212-129

002-005-213-045

002-068-069-141

002-068-085-045

002-068-197-141

002-068-213-045

002-069-068-225

002-069-069-141

002-069-084-129

002-069-085-045

002-069-196-225

002-069-197-141

002-069-212-129

002-069-213-045

002-132-005-013

002-132-021-173

002-132-069-141

002-132-085-045

002-132-133-013

002-132-149-173

002-132-197-141

002-132-213-045

002-133-004-225

002-133-005-013

002-133-020-001

002-133-021-173

002-133-068-225

002-133-069-141

002-133-084-129

002-133-085-045

002-133-132-225

002-133-133-013

002-133-148-001

002-133-149-173

002-133-196-225

002-133-197-141

002-133-212-129

002-133-213-045

002-196-069-141

002-196-085-045

002-196-197-141

002-196-213-045

002-197-068-225

002-197-069-141

002-197-084-129

002-197-085-045

002-197-196-225

002-197-197-141

002-197-212-129

002-197-213-045

005-005-004-225

005-005-005-013

005-005-020-001

005-005-021-173

005-005-068-225

005-005-069-141

005-005-084-129

005-005-085-045

005-005-132-225

005-005-133-013

005-005-148-001

005-005-149-173

005-005-196-225

005-005-197-141

005-005-212-129

005-005-213-045

005-069-068-225

005-069-069-141

005-069-084-129

005-069-085-045

005-069-196-225

005-069-197-141

005-069-212-129

005-069-213-045

005-133-004-225

005-133-005-013

005-133-020-001

005-133-021-173

005-133-068-225

005-133-069-141

005-133-084-129

005-133-085-045

005-133-132-225

005-133-133-013

005-133-148-001

005-133-149-173

005-133-196-225

005-133-197-141

005-133-212-129

005-133-213-045

005-197-068-225

005-197-069-141

005-197-084-129

005-197-085-045

005-197-196-225

005-197-197-141

005-197-212-129

005-197-213-045

006-004-005-013

006-004-021-173

006-004-069-141

006-004-085-045

006-004-133-013

006-004-149-173

006-004-197-141

006-004-213-045

006-005-004-225

006-005-005-013

006-005-020-001

006-005-021-173

006-005-068-225

006-005-069-141

006-005-084-129

006-005-085-045

006-005-132-225

006-005-133-013

006-005-148-001

006-005-149-173

006-005-196-225

006-005-197-141

006-005-212-129

006-005-213-045

006-068-069-141

006-068-085-045

006-068-197-141

006-068-213-045

006-069-068-225

006-069-069-141

006-069-084-129

006-069-085-045

006-069-196-225

006-069-197-141

006-069-212-129

006-069-213-045

006-132-005-013

006-132-021-173

006-132-069-141

006-132-085-045

006-132-133-013

006-132-149-173

006-132-197-141

006-132-213-045

006-133-004-225

006-133-005-013

006-133-020-001

006-133-021-173

006-133-068-225

006-133-069-141

006-133-084-129

006-133-085-045

006-133-132-225

006-133-133-013

006-133-148-001

006-133-149-173

006-133-196-225

006-133-197-141

006-133-212-129

006-133-213-045

006-196-069-141

006-196-085-045

006-196-197-141

006-196-213-045

006-197-068-225

006-197-069-141

006-197-084-129

006-197-085-045

006-197-196-225

006-197-197-141

006-197-212-129

006-197-213-045

065-069-068-225

065-069-069-141

065-069-084-129

065-069-085-045

065-069-196-225

065-069-197-141

065-069-212-129

065-069-213-045

065-197-068-225

065-197-069-141

065-197-084-129

065-197-085-045

065-197-196-225

065-197-197-141

065-197-212-129

065-197-213-045

066-068-069-141

066-068-085-045

066-068-197-141

066-068-213-045

066-069-068-225

066-069-069-141

066-069-084-129

066-069-085-045

066-069-196-225

066-069-197-141

066-069-212-129

066-069-213-045

066-196-069-141

066-196-085-045

066-196-197-141

066-196-213-045

066-197-068-225

066-197-069-141

066-197-084-129

066-197-085-045

066-197-196-225

066-197-197-141

066-197-212-129

066-197-213-045

069-069-068-225

069-069-069-141

069-069-084-129

069-069-085-045

069-069-196-225

069-069-197-141

069-069-212-129

069-069-213-045

069-197-068-225

069-197-069-141

069-197-084-129

069-197-085-045

069-197-196-225

069-197-197-141

069-197-212-129

069-197-213-045

070-068-069-141

070-068-085-045

070-068-197-141

070-068-213-045

070-069-068-225

070-069-069-141

070-069-084-129

070-069-085-045

070-069-196-225

070-069-197-141

070-069-212-129

070-069-213-045

070-196-069-141

070-196-085-045

070-196-197-141

070-196-213-045

070-197-068-225

070-197-069-141

070-197-084-129

070-197-085-045

070-197-196-225

070-197-197-141

070-197-212-129

070-197-213-045

129-005-004-225

129-005-005-013

129-005-020-001

129-005-021-173

129-005-068-225

129-005-069-141

129-005-084-129

129-005-085-045

129-005-132-225

129-005-133-013

129-005-148-001

129-005-149-173

129-005-196-225

129-005-197-141

129-005-212-129

129-005-213-045

129-069-068-225

129-069-069-141

129-069-084-129

129-069-085-045

129-069-196-225

129-069-197-141

129-069-212-129

129-069-213-045

129-133-004-225

129-133-005-013

129-133-020-001

129-133-021-173

129-133-068-225

129-133-069-141

129-133-084-129

129-133-085-045

129-133-132-225

129-133-133-013

129-133-148-001

129-133-149-173

129-133-196-225

129-133-197-141

129-133-212-129

129-133-213-045

129-197-068-225

129-197-069-141

129-197-084-129

129-197-085-045

129-197-196-225

129-197-197-141

129-197-212-129

129-197-213-045

130-004-005-013

130-004-021-173

130-004-069-141

130-004-085-045

130-004-133-013

130-004-149-173

130-004-197-141

130-004-213-045

130-005-004-225

130-005-005-013

130-005-020-001

130-005-021-173

130-005-068-225

130-005-069-141

130-005-084-129

130-005-085-045

130-005-132-225

130-005-133-013

130-005-148-001

130-005-149-173

130-005-196-225

130-005-197-141

130-005-212-129

130-005-213-045

130-068-069-141

130-068-085-045

130-068-197-141

130-068-213-045

130-069-068-225

130-069-069-141

130-069-084-129

130-069-085-045

130-069-196-225

130-069-197-141

130-069-212-129

130-069-213-045

130-132-005-013

130-132-021-173

130-132-069-141

130-132-085-045

130-132-133-013

130-132-149-173

130-132-197-141

130-132-213-045

130-133-004-225

130-133-005-013

130-133-020-001

130-133-021-173

130-133-068-225

130-133-069-141

130-133-084-129

130-133-085-045

130-133-132-225

130-133-133-013

130-133-148-001

130-133-149-173

130-133-196-225

130-133-197-141

130-133-212-129

130-133-213-045

130-196-069-141

130-196-085-045

130-196-197-141

130-196-213-045

130-197-068-225

130-197-069-141

130-197-084-129

130-197-085-045

130-197-196-225

130-197-197-141

130-197-212-129

130-197-213-045

133-005-004-225

133-005-005-013

133-005-020-001

133-005-021-173

133-005-068-225

133-005-069-141

133-005-084-129

133-005-085-045

133-005-132-225

133-005-133-013

133-005-148-001

133-005-149-173

133-005-196-225

133-005-197-141

133-005-212-129

133-005-213-045

133-069-068-225

133-069-069-141

133-069-084-129

133-069-085-045

133-069-196-225

133-069-197-141

133-069-212-129

133-069-213-045

133-133-004-225

133-133-005-013

133-133-020-001

133-133-021-173

133-133-068-225

133-133-069-141

133-133-084-129

133-133-085-045

133-133-132-225

133-133-133-013

133-133-148-001

133-133-149-173

133-133-196-225

133-133-197-141

133-133-212-129

133-133-213-045

133-197-068-225

133-197-069-141

133-197-084-129

133-197-085-045

133-197-196-225

133-197-197-141

133-197-212-129

133-197-213-045

134-004-005-013

134-004-021-173

134-004-069-141

134-004-085-045

134-004-133-013

134-004-149-173

134-004-197-141

134-004-213-045

134-005-004-225

134-005-005-013

134-005-020-001

134-005-021-173

134-005-068-225

134-005-069-141

134-005-084-129

134-005-085-045

134-005-132-225

134-005-133-013

134-005-148-001

134-005-149-173

134-005-196-225

134-005-197-141

134-005-212-129

134-005-213-045

134-068-069-141

134-068-085-045

134-068-197-141

134-068-213-045

134-069-068-225

134-069-069-141

134-069-084-129

134-069-085-045

134-069-196-225

134-069-197-141

134-069-212-129

134-069-213-045

134-132-005-013

134-132-021-173

134-132-069-141

134-132-085-045

134-132-133-013

134-132-149-173

134-132-197-141

134-132-213-045

134-133-004-225

134-133-005-013

134-133-020-001

134-133-021-173

134-133-068-225

134-133-069-141

134-133-084-129

134-133-085-045

134-133-132-225

134-133-133-013

134-133-148-001

134-133-149-173

134-133-196-225

134-133-197-141

134-133-212-129

134-133-213-045

134-196-069-141

134-196-085-045

134-196-197-141

134-196-213-045

134-197-068-225

134-197-069-141

134-197-084-129

134-197-085-045

134-197-196-225

134-197-197-141

134-197-212-129

134-197-213-045

193-069-068-225

193-069-069-141

193-069-084-129

193-069-085-045

193-069-196-225

193-069-197-141

193-069-212-129

193-069-213-045

193-197-068-225

193-197-069-141

193-197-084-129

193-197-085-045

193-197-196-225

193-197-197-141

193-197-212-129

193-197-213-045

194-068-069-141

194-068-085-045

194-068-197-141

194-068-213-045

194-069-068-225

194-069-069-141

194-069-084-129

194-069-085-045

194-069-196-225

194-069-197-141

194-069-212-129

194-069-213-045

194-196-069-141

194-196-085-045

194-196-197-141

194-196-213-045

194-197-068-225

194-197-069-141

194-197-084-129

194-197-085-045

194-197-196-225

194-197-197-141

194-197-212-129

194-197-213-045

197-069-068-225

197-069-069-141

197-069-084-129

197-069-085-045

197-069-196-225

197-069-197-141

197-069-212-129

197-069-213-045

197-197-068-225

197-197-069-141

197-197-084-129

197-197-085-045

197-197-196-225

197-197-197-141

197-197-212-129

197-197-213-045

198-068-069-141

198-068-085-045

198-068-197-141

198-068-213-045

198-069-068-225

198-069-069-141

198-069-084-129

198-069-085-045

198-069-196-225

198-069-197-141

198-069-212-129

198-069-213-045

198-196-069-141

198-196-085-045

198-196-197-141

198-196-213-045

198-197-068-225

198-197-069-141

198-197-084-129

198-197-085-045

198-197-196-225

198-197-197-141

198-197-212-129

198-197-213-045

Fin