OVH Cloud OVH Cloud

question béocienne

3 réponses
Avatar
CEO
Imaginons que pour communiquer mon code de CB par MSN j'utilise la formule
suivant :

2*code² - 3*code + 1016541940012 = ton code de telephone

Evidement la personne a qui j'ecris connais parfaitement son de code PIN.

C'est crackable ca ?

3 réponses

Avatar
Ludovic FLAMENT
Imaginons que pour communiquer mon code de CB par MSN j'utilise la formule
suivant :

2*code² - 3*code + 1016541940012 = ton code de telephone

Evidement la personne a qui j'ecris connais parfaitement son de code PIN.

C'est crackable ca ?


Bonjour,

La première question a se poser est : Est-ce que la formule permet de
communiquer quelque chose ? Il semble que non, dans la mesure ou votre
'code' est figé et le pin code du correspondant l'est également !

Si vous vouliez dire (ce que je pense), envoie d'un secret définie par
: secret = 2*c² - 3c + 1016541940012 - PIN, le problème est que même
dans ce cas, le correspondant n'est pas forcément en mesure de retrouver
la valeur 'code'.
En effet le correspondant doit résoudre une équation du second degré
(2c² - 3c + X = 0), avec X = (secret-1016541940012+PIN), qui n'a pas
forcément de solution entière et unique.

Remarque : seul les calculs modulaires vous garantissent des résultats
entiers.

Cordialement,
--
Ludovic FLAMENT
http://ludovic.flament.free.fr


Avatar
Christophe HENRY

Imaginons que pour communiquer mon code de CB par MSN j'utilise la formule
suivant :
2*code² - 3*code + 1016541940012 = ton code de telephone
Evidement la personne a qui j'ecris connais parfaitement son de code PIN.

C'est crackable ca ?


Je suppose que le "code de téléphone" est le "code PIN" dont tu as
parlé la ligne d'après.

L'algorithme est public puisque quiconque peut voir le calcul. La clé est
le "code de téléphone", sorte de clé partagée connue de vous deux
seuls.

On peut revoir ton calcul de manière conventionnelle :
m : le clair, ici le "code".
k : la klé, ici le "code de téléphone" ou le "code PIN"
c : le chiffré, pour l'exemple c'est le "1016541940012".

Concrètement. Muni de m et connaissant k, tu chiffres :
c = k - 2*m² + 3*m

Tu transmet c (ainsi que l'algo lui-même, le calcul).

Ton correspondant fait ensuite la résolution de l'équation en m :
-2*m² + 3*m + k-c = 0
pour retrouver le clair, m. La somme des racines faisant -1.5, elles sont
quasiment opposées. En rejetant la valeur négative, on peut dire qu'il y
a (quasiment) correspondance exacte m <--> 2*m²+3*m, une bijection donc.

Si on dit : M = -2*m²+3*m, sachant que de m on a M et qu'à partir de M
on peut trouver m. On remplace :

M + k = c

Ton chiffrement revient à faire une addition, ou un xor. Si tu ne
l'utilises qu'une fois, on ne devrait pas pouvoir retrouver. En cas de
répétition, les défauts seraient les mêmes qu'un cassage de Vigenère.
Dans ces conditions, autant passer par un xor des familles...

Par ailleurs, l'utilisation d'un polynome du second degré affaiblit le
calcul :
On a l'équation -2*m² + 3*m + c - k = 0 à résoudre. m et k sont
inconnus. Toute solution de m est entière. Cela revient à dire que le
déterminant de l'équation est un carré parfait :

ie, SQRT( 9 + 8*(k-c) ) est un entier. On a déjà un test d'arrêt
sur le code pin du téléphone, k.

Donc : utilise une fois (autant faire du masque jetable), et une seule
fois.

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

Avatar
CEO
ouais, c'est clair que c'est nul comme codage !

Merci les gars.