Article Index

1°) Historique

code de césar
x = (x+3)%26
tableau -> études statistique

La cryptographie est l'art de caché des messages, rendre incompréhenssibles les messages sans connaitre une manière non-ambigue de le déchiffrer. Par exemple on veut :

  • l'impossibilité de décrypté un message crypté
  • l'impossibilité de décrypté même si on dispose de plusieur messages cryptés
  • l'impossibilité de décrypté même si on dispose des messages en claires
  • l'impossibilité de décrypté même si on peut gnéré des messages cryptés

2°) Le bloc note à usage unique

C'est le seul code crypto sûre:
on ne réutilise pas les bits de la clé
clé: suite de bit aléatoires (long)
on xor le message avec la clé pour crypté
problème:
  • il faut transmettre la clée (physiquement au mieux)
  • la clé à la même taille que le message
  • la clé doit être aléatoire (pas de générateur pseudo-aléatoire)
certain générateur peuvent être utilisé et sont en pratique suffisament sûre (RC4)on initialise avec une clé de taille 255 (ou moin)
avantage: taille de la clé <= 255 octéts
c'est ce générateur qui est utilisé dans le codage WEP qui n'est pas sûre

3°) crytpographie symetrique

le seul secret partagé par Alice et Bob est une clé (secète) de petite taille
ex: générateur aléatoire + xor (RC4) = DES / AES (très rapide)
problème de transmission de la clé: échange de clés de Diffie-Hellman 1976
cette méthode permet l'échange de clé même si un attaquent écoute toutes les communications, il ne pourras pas craquer la clée

4°) crypto clé publique/privé, arithmétique

a°) rappels

def: m est multiple de n si n = n*a
on it aussi que n divise m, on note m|n
  • On note pgcd(n,m) pour le plus grand diviseur commun de n et m
  • si n et m sont des nombres entiers alors il existe un unique quotient et
    un unique r apartenant à [0,m] telque n = q*m + r

b°) euclide : pgcd

pgcd(0, n) = n ; pgcd(m, n) = pgcd(n%m, m) si m <= n, pgcd(m, n) = pgcd(m, n) sinon

exemple

pgcd(15, 12) = pgcd(12, 15) =
pgcd(15%12, 12) = pgcd(12%3, 3) =
pgcd(0, 3) = 3

c°) bézout : euclide étendue

theoreme: si a est le pgcd de n et m alors on peut trouver x et y telque m*x + n*y = a (x et y peuvent être négatif)

exemple

pgcd(14, 22)
= pgcd(8, 14) car 22 = 1*14 + 8 | x = -3 et y = 2
= pgcd(6, 08) car 14 = 1*08 + 6 | 2 = 2*(22-14) - 1*14 = -3*14 + 22*2
= pgcd(2, 06) car 08 = 1*06 + 2 | 2 = 8*1 - (14-1*8)*1 = 2*8 - 1*14
= pgcd(0, 02) car 06 = 3*02 + 0 | 2 = 8 - 6*1
= 2, on remonte: -------------------------/

d°) nombre premier

def: un nombre est premier si il a exactement 2 diviseur, 1 et lui même
theoreme: tout entier se décompose de manière unique en produit de nombres premier
theoreme: il y a une infinité de nombre premier pow(2, 43112609) et 43112609 sont premier
constation/conjecture: on ne sait pas trouver les facteurs premiers d'un nombre en temps raisonable
theoreme: la proportion de nombre premier entre 1 et n est environ n/ln(n)

e°) calcule modulo

on note a ≡ d%n quand m | (a-d), ou, a%m = b%m
theoreme: {a≡b%m ; a'≡b'%m} ⇒
a+a' ≡ (b+b')%m
a*a' ≡ (b*b')%m
a-a' ≡ (b-b')%m
pow(a, k) ≡ pow(b, k)%m
⇒ pow(a, a') ≢ pow(b, b')%m (en général)
remarque: division modulo, si a et m sont premier entre eux alors on peut diviser par a%m

methode

on cherche x et y telque ax+my=1
on a ax+bm ≡ 1%m ⇒ ax ≡ 1%m
on dit que x est l'inversse de a%m, la division est donc la multiplication par l'inversse de a : x
si m est un nombre premier, on peut diviser par 1..m-1 ; on dit que {0, ..., n-1} forme on corp, noté ℤ/nℤ
theoreme euleur: si p est premier alors pow(a, p-1) ≡ 1%p
si p et q sont premier alors pow(a, (p-1)*(q-1)) ≡ 1%p

f°) problème du logarithme discret

si p est premier alors un élément générateur est un nombre a telque
{a⁰=1, a¹=a, ..., a^(p-2)} = {1, 2, ..., p-1} c à d les puissances de a engendre tout les nombres %p sauf 0
Si a est générateur, la fonction n➝pow(a,n)%p est facile à calculer, mais on ne sait pas faire l'inversse en temps raisonable
c'est le problème du logarithme discret⎡ X1 = ( aX + c)%m
⎢ X2 = (aX1 + c)%m
⎣ X3 = (aX2 + c)%m
a = (X3-X2) / (X2-X1)
c = X2 - aX1