0% ont trouvé ce document utile (0 vote)
10 vues7 pages

4 Ics 4

Ics reseau

Transféré par

Amadou Ba
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • Calcul de hachage,
  • Propriété d'unicité,
  • SHA,
  • Confiance dans les AC,
  • Identité numérique,
  • Algorithme de vérification,
  • Norme X509,
  • Toile de confiance,
  • Taille de l'image,
  • Digital Signature Algorithm
0% ont trouvé ce document utile (0 vote)
10 vues7 pages

4 Ics 4

Ics reseau

Transféré par

Amadou Ba
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • Calcul de hachage,
  • Propriété d'unicité,
  • SHA,
  • Confiance dans les AC,
  • Identité numérique,
  • Algorithme de vérification,
  • Norme X509,
  • Toile de confiance,
  • Taille de l'image,
  • Digital Signature Algorithm

Hachage

Signature utilisable seulement pour des petis messages.


Solution naïve : découper le message à signer en blocs (de
160 bits) et signer chaque bloc.
Plusieurs problèmes :
Hachage et certification • taille de la signature
• lenteur des algos de signatures

Contenu Solution par le hachage


Utiliser une fonction de hachage cryptographique, rapide à
calculer, qui transforme un message de longueur arbitraire en
une empreinte numérique de taille fixe. On signe l’empreinte :

message m longueur arbitraire


Hachage #
empreinte z = h(m) 160 bits
#
signature s = sigsk (z) 320 bits
Certification
Principe : Bob signe m :
• il calcule l’empreinte z = h(m)
• signe en s = sigsk (z) et transmet (m, s).
N’importe qui vérifie (m, s) en recalculant l’empreinte ẑ = h(m)
puis en utilisant le procédé de vérification de verpk (ẑ, s).
Conditions à satisfaire Q Q
On approche ki=11 1 ni par ki=11 e n car
2
i

x3
e x = 1 x + x2! 3! · · · , donc e
x ⇡1 x si x est petit (ce
Une fonction de hachage h calcule i i
qui est notre cas). Donc 1 n ⇡e n .
z = h(m)
Q Q i 1 Pk 1 (k 1)k
pour m message de taille arbitraire et z, empreinte de taille fixe. q = ki=11 1 ni ⇡ ki=11 e n =e n i=1 i
=e 2n

On veut que h soit être à sens unique, i.e. ln q ⇡ (k 2n1)k


2n ln( q1 ) ⇡ k 2
• h(m) doit être facile à calculer à partir de m q
• z doit être difficile à inverser. 2n ln( 1 1 p ) ⇡ k

Collision de h : couple de mots distincts (x, x 0 ) tq h(x) = h(x 0 ). p


p = 1/2, proba d’avoir au moins une collision pour k ⇡ 2n ln 2
h est
• faiblement résistante aux collisions si, pour un x donné, il Exemple : n = 365, k = 23 personnes ; on a plus d’une chance
est difficile de calculer une collision. sur deux que deux personnes aient le même jour anniversaire.
• fortement résistante aux collisions s’il est difficile de Utilité : trouver la taille n de l’image parpla fonction de hachage
calculer la moindre collision (x, x 0 ). pour éviter les collisions. On a k en O( n).

Paradoxe des anniversaires Attaque basée sur le paradoxe


Donnée : B = (b1 , . . . , bk ) 2 {1, 2, . . . , n}k . Calculer et trier autant de couples (x, h(x)) que possible. Détecter
Problème : proba p d’avoir 2 éléments de B identiques ? une (ou plusieurs) collisions.
On prend k messages mi tirés aléatoirement avec i 2 [1, k ] et Il y a 2n valeurs qui correspondent aux «jours anniversaires» ; .
on étudie la proba pour que deux mi aient la même image. On suppose que les images par h suivent une distribution uniforme.
zi = h(mi ). En considérant k entrées on a plus d’une chance sur deux d’avoir
n
Complémentaire= Proba que les zi soient tous différents : une collision avec k ⇡ 2 2 . En passant au logarithme,

k 1 kY1 ✓ ◆ ✓ ◆ ✓ ◆ n 50 100 150 200


1 Y i 1 k 1 log2 k 25, 24 50, 24 75, 24 100, 24
1 p=q= (n i) = 1 =1 1 ··· 1
nk n n n
i=0 i=1
Ainsi, en calculant un peu plus que 2n/2 images par h, on trouve une
collision avec une probabilité > 1/2.
Où 1 est la proba de tirer z1 , (1 n1 ) celle de tirer z2 6= z1 (car il
Pour h fortement résistante, on choisit n pour que le calcul de 2n/2
y a une chance sur n que z1 = z2 ),. . . , (1 ni ) celle de tirer
images par h soit irréaliste. A ce jour, n 160.
zi 6= z1 , . . . , zi 1 .
Hachage par compression Fonction de compression
A partir de ek : {0, 1}n ⇥ {0, 1}n ! {0, 1}n
on construit g, fonction de compression
Dans MD5, SHA, découper m en n blocs de longueur fixe puis :
g : {0, 1}n ⇥ {0, 1}n ! {0, 1}n pour n 2 N
message
dont la taille de l’image par la fonction de hachage est n.
bloc 1 bloc 2 bloc n La fonction de chiffrement est utilisée soit directement si elle
est résistante aux collisions soit en la «perturbant» :
valeur valeur
initiale MD5 MD5 MD5 hachée
g(k , x) = ek (x) x
g(k , x) = ek (x) x k
g(k , x) = ek (x k ) x
g(k , x) = ek (x k ) x k

Construire une fonction de hachage Fonction de hachage


Merkle : construction de fonction de hachage à partir d’une
fonction de compression g : {0, 1}m ! {0, 1}n .
Partir de ek , chiffre sym., construire une fonction de Soit r = m n > 1. On veut construire h : {0, 1}? ! {0, 1}n .
compression Soit x 2 {0, 1}? et ` sa longueur en binaire.
• compléter x avec des "0" : u = 0i x t.q. |u| ⌘ 0 mod r
m n
g : {0, 1} ! {0, 1} pour m, n 2 N, m>n compléter ` avec des "0" : y = 0j ` t.q. |y | ⌘ 0 mod r
• 1
On utilise g pour construire une fonction de hachage : • découper y en blocs de r 1 bits et ajouter un "1" au
début de chacun des blocs pour former le mot v
h : {0, 1}? ! {0, 1}n pour n 2 N • construire w = u0r v composé de t blocs de longueur r .
Exemple : r = 4, x = 11101, ` = 101. u = 0001 1101, v = 1101.
Proposition
h est résistante aux collisions si g l’est aussi. w = 0001 1101 0000 1101 = w1 w2 w3 w4 (t = 4)

H définie ind. : H0 = 0n et Hi = g(Hi 1 wi ), 1i t

h(x) = Ht
Fonctions de hachage efficaces Plan de l’exposé

Les fonctions de hachages utilisées en pratique sont


construites comme précédemment. Les plus courantes : Hachage
nom bits tours⇥étapes vitesse relative
MD5 128 4⇥16 1
SHA 160 4⇥20 0,28 Certification

Application à DSA Certificat de clé publique


Un certificat de clé publique de B garantit la relation entre IdB
et pkB , signée par un tiers de confiance, Ivan.
Utilité : déjouer l’attaque de l’homme du milieu
Un certificat de la clé publique de B contient
Digital Signature Algorithm : standard de signature qui combine
une fonction de hachage (SHA) et DSS, qui améliore le schéma • sa clé publique
de signature d’El Gamal (en travaillant dans un sous-groupe). • des infos concernant B (nom, e-mail. . . )
• la signature d’un tiers de confiance Ivan
Ivan signe à la fois
• la clé
• les infos concernant B
Ivan certifie la relation entre la clé publique et l’identité de B.
Réalisation «asymétrique» Certification & Vérification
IdS,PKS hachage SignAC SignAC(h(IdS,PKS))
h

Certification réalisée au moyen d’un schéma de signature.


IdS,PKS
Celui-ci consiste en [1] : AC Clé de S
IdS,PKS certifiée par AC SignAC(h(IdS,PKS))
• une signature après hachage cryptographique
• une opération de vérification correspondant à la signature.
Exemple : si le contenu du message est celui décrit par la
norme X509, on fournit de cette manière un identificateur IdS,PKS hachage h(IdS,PKS)
h
numérique ou Digital ID, sorte de carte d’identité numérique. AC Clé de S
IdS,PKS certifiée par AC
Algorithme public
SignAC(h(IdS,PKS)) VerAC de vérification de AC

oui/non

Certificat (X.509) Paradoxe


Associe une clé publique à l’identité d’un sujet ; comprend :
• Subject : Nom Distingué, Clé publique
• Issuer : Nom Distingué, Signature
• Period of Validity : date de début, date de fin Comment connaît-on l’algorithme de vérification
de l’autorité de certification ?
• Administrative Information : version, numéro de série
Quel est le modèle de confiance ?
• Extended Information :
L’information « Nom Distingué » comprend : • confiance directe

• Common Name : nom à certifier Bruno Martin • confiance hiérarchique (le plus utilisé)

• Organization| Company : contexte U. Côte d’Azur • toile de confiance (web of trust)

• Organizational Unit : contexte spécifique Deptinfo


• City/Locality : ville Sophia Antipolis
• State/Province : pour US PACA
• Country : code pays fr
Chaîne de certification Rupture dans la chaîne

ACr
IdACr,KACr

AC peut aussi fournir un


certificat à une autre AC. ACr
IdB,cléB
ACr
IdAC1,KAC1
ACr
IdC,cléC
Alice peut ainsi remonter
une chaîne de certification
AC1
jusqu’à trouver une AC en IdAC,KAC

qui elle a confiance.


AC
IdS,PKS

Mauvaise AC : attaques possibles (2011 : DigiNotar)

Création d’une AC «racine» Toile de confiance


Tentative de concilier les modes directs et hiérarchiques.
La confiance est accordée par l’utilisateur selon le principe que
Problème des chaînes de certification : il faut une AC «racine». plus on dispose d’information, meilleure est la confiance. On
Celle-ci ne peut se faire certifier. Dans ce cas, le certificat est accorde sa confiance directement ou au moyen d’une chaîne
auto-signé par l’AC racine. L’entité qui délivre le certificat est de certification qui remonte jusqu’à un tiers connu selon le
identique au sujet certifié. La confiance réside dans une large principe :
distribution de la clé publique de l’AC.
• Jean signe l’identifiant Paul dans le certificat de Paul ;
Les systèmes d’exploitation sont configurés pour faire
• lorsque Marie veut vérifier que Jean a signé Paul, elle
confiance à certaines AC par défaut, comme CertiSign ou utilise la clé publique de Jean pour vérifier sa signature
VeriSign utilisés par des autorités intermédiaires comme dans le certificat de Paul ;
Let’s Encrypt.
Ces sociétés proposent des techniques pour demander des • Marie fait confiance à Jean. Elle reçoit un message signé
de Paul. Elle vérifie la validité de la signature de Paul (clé
certificats, ont des procédures de vérification de l’information,
récupérée depuis un serveur de clés). Comme elle fait
délivrent et gèrent des certificats.
pleinement confiance à Jean, elle valide de plus le fait que
c’est bien Paul qui a signé ce message.
C’est le système utilisé par OpenPGP, GnuPG ou PGP.
Bibliographie

RSA Laboratories.
PKCS ]1 v2.0, RSA cryptography standard.
Technical report, RSA Data Security, 1998.

Vous aimerez peut-être aussi