Vous êtes sur la page 1sur 321

Intgrit I : partir de cls secrtes

4e cours Louis Salvail (hiver 2014)

vendredi 24 janvier 14

Quest-ce que lintgrit?

vendredi 24 janvier 14

Quest-ce que lintgrit?


Nous avons vu comment des participants qui partagent une cl secrte peuvent schanger des messages labri des oreilles indiscrtes.

vendredi 24 janvier 14

Quest-ce que lintgrit?


Nous avons vu comment des participants qui partagent une cl secrte peuvent schanger des messages labri des oreilles indiscrtes. Supposons que Bob reoive un message chiffr C quil suppose provenir dAlice. Il le dchiffre avec la cl K quils partagent pour obtenir le message M.

vendredi 24 janvier 14

Quest-ce que lintgrit?


Nous avons vu comment des participants qui partagent une cl secrte peuvent schanger des messages labri des oreilles indiscrtes. Supposons que Bob reoive un message chiffr C quil suppose provenir dAlice. Il le dchiffre avec la cl K quils partagent pour obtenir le message M. Est-ce certain quAlice a vraiment crit M pour Bob?

vendredi 24 janvier 14

Quest-ce que lintgrit?


Nous avons vu comment des participants qui partagent une cl secrte peuvent schanger des messages labri des oreilles indiscrtes. Supposons que Bob reoive un message chiffr C quil suppose provenir dAlice. Il le dchiffre avec la cl K quils partagent pour obtenir le message M. Est-ce certain quAlice a vraiment crit M pour Bob? Est-ce que M est un nouveau message dAlice pour Bob?
vendredi 24 janvier 14

Quest-ce que lintgrit?


Nous avons vu comment des participants qui partagent une cl secrte peuvent schanger des messages labri des oreilles indiscrtes. Supposons que Bob reoive un message chiffr C quil suppose provenir dAlice. Il le dchiffre avec la cl K quils partagent pour obtenir le message M.

Est-ce que M est un nouveau message dAlice pour Bob?


vendredi 24 janvier 14

NO

N!

Est-ce certain quAlice a vraiment crit M pour Bob?

Quest-ce que lintgrit?

vendredi 24 janvier 14

Quest-ce que lintgrit?

vendredi 24 janvier 14

Quest-ce que lintgrit?

vendredi 24 janvier 14

Quest-ce que lintgrit?

vendredi 24 janvier 14

Quest-ce que lintgrit?

vendredi 24 janvier 14

Quest-ce que lintgrit?

M M

vendredi 24 janvier 14

Quest-ce que lintgrit?

M M

vendredi 24 janvier 14

Quest-ce que lintgrit?


?????????

M M

vendredi 24 janvier 14

Quest-ce que lintgrit?

M M

vendredi 24 janvier 14

Quest-ce que lintgrit?


K K

M M

vendredi 24 janvier 14

Quest-ce que lintgrit?


K K

M M

vendredi 24 janvier 14

Quest-ce que lintgrit?


K K

M s SK(M)

M M

K
vendredi 24 janvier 14

Quest-ce que lintgrit?


K K

M s SK(M)

(M,s) M M

K
vendredi 24 janvier 14

Quest-ce que lintgrit?


K K

M s SK(M)

(M,s) M M

K
vendredi 24 janvier 14

Quest-ce que lintgrit?


K K

M s SK(M)

(M,s) M M (M,s)

K
vendredi 24 janvier 14

Quest-ce que lintgrit?


K K

M s SK(M)

(M,s) M M

(M,s)

K
vendredi 24 janvier 14

Quest-ce que lintgrit?


K K

M s SK(M)

(M,s) M M

(M,s)

K
vendredi 24 janvier 14

Quest-ce que lintgrit?


K K

M s SK(M)

(M,s) M M

(M,s) oui/non

VK(M,s)

K
vendredi 24 janvier 14

Intgrit partir de cls secrtes

vendredi 24 janvier 14

Intgrit partir de cls secrtes


Un tel systme (appel code dauthentication de message) consiste en :

vendredi 24 janvier 14

Intgrit partir de cls secrtes


Un tel systme (appel code dauthentication de message) consiste en :
Un algorithme S (ou mthode ou programme) qui gnre un code dauthentication partir de la cl et du message. Le code dauthentication (CAM ou MAC) est dni par SK(M).

vendredi 24 janvier 14

Intgrit partir de cls secrtes


Un tel systme (appel code dauthentication de message) consiste en :
Un algorithme S (ou mthode ou programme) qui gnre un code dauthentication partir de la cl et du message. Le code dauthentication (CAM ou MAC) est dni par SK(M). Un algorithme V qui vrie le code dauthentication et le message partir de la cl. Cest--dire que

vendredi 24 janvier 14

Intgrit partir de cls secrtes


Un tel systme (appel code dauthentication de message) consiste en :
Un algorithme S (ou mthode ou programme) qui gnre un code dauthentication partir de la cl et du message. Le code dauthentication (CAM ou MAC) est dni par SK(M). Un algorithme V qui vrie le code dauthentication et le message partir de la cl. Cest--dire que VK(M,SK(M))=1,

vendredi 24 janvier 14

Intgrit partir de cls secrtes


Un tel systme (appel code dauthentication de message) consiste en :
Un algorithme S (ou mthode ou programme) qui gnre un code dauthentication partir de la cl et du message. Le code dauthentication (CAM ou MAC) est dni par SK(M). Un algorithme V qui vrie le code dauthentication et le message partir de la cl. Cest--dire que VK(M,SK(M))=1, Vk(M,s)=0 si s!SK(M).
vendredi 24 janvier 14

Intgrit partir de cls secrtes


Un tel systme (appel code dauthentication de message) consiste en :
Un algorithme S (ou mthode ou programme) qui gnre un code dauthentication partir de la cl et du message. Le code dauthentication (CAM ou MAC) est dni par SK(M). Un algorithme V qui vrie le code dauthentication et le message partir de la cl. Cest--dire que VK(M,SK(M))=1, Vk(M,s)=0 si s!SK(M).
vendredi 24 janvier 14

Proprits des CAM/MAC

vendredi 24 janvier 14

Proprits des CAM/MAC


Un adversaire ignorant la cl secrte ne peut trouver un CAM valide pour un message qui na pas dj t authenti par lexpditeur.

vendredi 24 janvier 14

Proprits des CAM/MAC


Un adversaire ignorant la cl secrte ne peut trouver un CAM valide pour un message qui na pas dj t authenti par lexpditeur. Ceci implique que ladversaire ne peut pas modier un message et esprer que le destinataire laccepte comme provenant de lexpditeur dsign.

vendredi 24 janvier 14

Proprits des CAM/MAC


Un adversaire ignorant la cl secrte ne peut trouver un CAM valide pour un message qui na pas dj t authenti par lexpditeur. Ceci implique que ladversaire ne peut pas modier un message et esprer que le destinataire laccepte comme provenant de lexpditeur dsign. Notez que lintgrit na rien voir avec la condentialit :

vendredi 24 janvier 14

Proprits des CAM/MAC


Un adversaire ignorant la cl secrte ne peut trouver un CAM valide pour un message qui na pas dj t authenti par lexpditeur. Ceci implique que ladversaire ne peut pas modier un message et esprer que le destinataire laccepte comme provenant de lexpditeur dsign. Notez que lintgrit na rien voir avec la condentialit : Un message intgre na pas tre condentiel,

vendredi 24 janvier 14

Proprits des CAM/MAC


Un adversaire ignorant la cl secrte ne peut trouver un CAM valide pour un message qui na pas dj t authenti par lexpditeur. Ceci implique que ladversaire ne peut pas modier un message et esprer que le destinataire laccepte comme provenant de lexpditeur dsign. Notez que lintgrit na rien voir avec la condentialit : Un message intgre na pas tre condentiel, Un message condentiel na pas tre intgre.

vendredi 24 janvier 14

Proprits des CAM/MAC


Un adversaire ignorant la cl secrte ne peut trouver un CAM valide pour un message qui na pas dj t authenti par lexpditeur. Ceci implique que ladversaire ne peut pas modier un message et esprer que le destinataire laccepte comme provenant de lexpditeur dsign. Notez que lintgrit na rien voir avec la condentialit : Un message intgre na pas tre condentiel, Un message condentiel na pas tre intgre. Lintgrit dun message ne veut pas dire quil est frais!
vendredi 24 janvier 14

Intgrit nest pas fracheur!

vendredi 24 janvier 14

Intgrit nest pas fracheur!


Les redites sont trs faciles faire aprs avoir vu un message m avec son CAM s.

vendredi 24 janvier 14

Intgrit nest pas fracheur!


Les redites sont trs faciles faire aprs avoir vu un message m avec son CAM s.

(Nattaquons pas!, s)

vendredi 24 janvier 14

Intgrit nest pas fracheur!


Les redites sont trs faciles faire aprs avoir vu un message m avec son CAM s.
K K
(Nattaquons pas!, s)

vendredi 24 janvier 14

Intgrit nest pas fracheur!


Les redites sont trs faciles faire aprs avoir vu un message m avec son CAM s.
K

OK

(Nattaquons pas!, s)

vendredi 24 janvier 14

Intgrit nest pas fracheur!


Les redites sont trs faciles faire aprs avoir vu un message m avec son CAM s.
K

OK

(Nattaquons pas!, s)

vendredi 24 janvier 14

Intgrit nest pas fracheur!


Les redites sont trs faciles faire aprs avoir vu un message m avec son CAM s.
K

OK

(Nattaquons pas!, s)
s) , s!

qu a t at N (

pa s on

vendredi 24 janvier 14

Intgrit nest pas fracheur!


Les redites sont trs faciles faire aprs avoir vu un message m avec son CAM s.
K

OK

OK
(Nattaquons pas!, s)
s) , s!

qu a t at N (

pa s on

vendredi 24 janvier 14

viter les redites

vendredi 24 janvier 14

Une faon dviter les redites est dajouter au message un indice i :

viter les redites

vendredi 24 janvier 14

Une faon dviter les redites est dajouter au message un indice i : m-> (i,m) -> ((i,m), Sk((i,m))), o i est un nouvel indice.

viter les redites

vendredi 24 janvier 14

Une faon dviter les redites est dajouter au message un indice i : m-> (i,m) -> ((i,m), Sk((i,m))), o i est un nouvel indice. Le destinataire vrie quaucun message avec le mme index i na t reu prcdemment...

viter les redites

vendredi 24 janvier 14

Une faon dviter les redites est dajouter au message un indice i : m-> (i,m) -> ((i,m), Sk((i,m))), o i est un nouvel indice. Le destinataire vrie quaucun message avec le mme index i na t reu prcdemment... Demande de ranger les indices reus.

viter les redites

vendredi 24 janvier 14

Une faon dviter les redites est dajouter au message un indice i : m-> (i,m) -> ((i,m), Sk((i,m))), o i est un nouvel indice. Le destinataire vrie quaucun message avec le mme index i na t reu prcdemment... Demande de ranger les indices reus. Une autre faon consiste ajouter le moment o le message est envoy :

viter les redites

vendredi 24 janvier 14

Une faon dviter les redites est dajouter au message un indice i : m-> (i,m) -> ((i,m), Sk((i,m))), o i est un nouvel indice. Le destinataire vrie quaucun message avec le mme index i na t reu prcdemment... Demande de ranger les indices reus. Une autre faon consiste ajouter le moment o le message est envoy : m -> (28/01/09:17, m) -> ((28/01/09:17,m), Sk((28/01/09:17,m)))

viter les redites

vendredi 24 janvier 14

Une faon dviter les redites est dajouter au message un indice i : m-> (i,m) -> ((i,m), Sk((i,m))), o i est un nouvel indice. Le destinataire vrie quaucun message avec le mme index i na t reu prcdemment... Demande de ranger les indices reus. Une autre faon consiste ajouter le moment o le message est envoy : m -> (28/01/09:17, m) -> ((28/01/09:17,m), Sk((28/01/09:17,m))) Accepte si le temps coul nest pas trop grand. Permet seulement les redites rapides!!!!
vendredi 24 janvier 14

viter les redites

Intgrit inconditionnelle

vendredi 24 janvier 14

Intgrit inconditionnelle
Comme pour le chiffrement, il y a des CAM qui sont inconditionnellement srs.

vendredi 24 janvier 14

Intgrit inconditionnelle
Comme pour le chiffrement, il y a des CAM qui sont inconditionnellement srs. Comme pour le chiffrement, ces solutions sont plutt inutiles dans la pratique.

vendredi 24 janvier 14

Intgrit inconditionnelle
Comme pour le chiffrement, il y a des CAM qui sont inconditionnellement srs. Comme pour le chiffrement, ces solutions sont plutt inutiles dans la pratique. Nous allons voir comment y parvenir avec une solution particulirement inefcace...

vendredi 24 janvier 14

Intgrit inconditionnelle
Comme pour le chiffrement, il y a des CAM qui sont inconditionnellement srs. Comme pour le chiffrement, ces solutions sont plutt inutiles dans la pratique. Nous allons voir comment y parvenir avec une solution particulirement inefcace... Supposons que lexpditeur, Oblix, veut transmettre un message M parmi lensemble {M1,M2,...,ML} et rien de plus.
vendredi 24 janvier 14

CAM inconditionnelle

vendredi 24 janvier 14

CAM inconditionnelle

vendredi 24 janvier 14

CAM inconditionnelle
M1 M2 s1 s2

k=

...
Mi

...
si

...
ML

...
sL

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

k=

...
Mi

...
si

...
ML

...
sL

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

k=

...
Mi

...
si

...
ML

...
sL

Mi

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

k=

...
Mi

...
si

...
ML

...
sL

Mi

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

M1 M2

s1 s2

k=

...
Mi

...
si

...
Mi

...
si

=k

...
ML

...
sL

...
ML

...
sL

Mi

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

M1 M2

s1 s2

k=

...
Mi

...
si

...
Mi

...
si

=k

...
ML

...
sL

...
ML

...
sL

Mi

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

M1 M2

s1 s2

k=

...
Mi

...
si

...
Mi

...
si

=k

...
ML

...
sL

...
ML

...
sL

Mi

(Mi,si)

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

M1 M2

s1 s2

k=

...
Mi

...
si

...
Mi

...
si

=k

...
ML

...
sL

...
ML

...
sL

Mi

(Mi,si)

(Mi,si)

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

M1 M2

s1 s2

k=

...
Mi

...
si

...
Mi

...
si

=k

...
ML

...
sL

...
ML

...
sL

Mi

(Mi,si)

(Mi,si)

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

M1 M2

s1 s2

k=

...
Mi

...
si

...
Mi

...
si

=k OK!

...
ML

...
sL

...
ML

...
sL

Mi

(Mi,si)

(Mi,si)

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

M1 M2

s1 s2

k=

...
Mi

...
si

...
Mi

...
si

=k OK!

...
ML

...
sL

...
ML

...
sL

Mi

(Mi,si)

(Mi,si)

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

M1 M2

s1 s2

k=

...
Mi

...
si

...
Mi

...
si

=k OK!

...
ML

...
sL

...
ML

...
sL

Mi

(Mi,si) (M,s)

(Mi,si)

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

M1 M2

s1 s2

k=

...
Mi

...
si

...
Mi

...
si

=k OK!

...
ML

...
sL

...
ML

...
sL

Mi

(Mi,si) (M,s)

(M,s) (M i,si)

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

M1 M2

s1 s2

k=

...
Mi

...
si

...
Mi

...
si

=k OK!

...
ML

...
sL

La probabilit que Csar russisse faire accepter (M,s) par Astrix est 2-t.

...
ML

...
sL

Mi

(Mi,si) (M,s)

(M,s) (M i,si)

vendredi 24 janvier 14

La liste des messages possibles.

CAM inconditionnelle
s1 s2

M1 M2

chaque si est une chane alatoire de t bits.

M1 M2

s1 s2

k=

...
Mi

...
si

...
Mi

...
si

=k NON! OK!

...
ML

...
sL

La probabilit que Csar russisse faire accepter (M,s) par Astrix est 2-t.

...
ML

...
sL

Mi

(Mi,si) (M,s)

(M,s) (M i,si)

vendredi 24 janvier 14

Limites des systmes inconditionnels

vendredi 24 janvier 14

Limites des systmes inconditionnels


Il y a des systmes inconditionnels qui demandent des cls plus courtes...

vendredi 24 janvier 14

Limites des systmes inconditionnels


Il y a des systmes inconditionnels qui demandent des cls plus courtes... Cependant, ces systmes ont tous le mme problme. La longueur des cls dpend du nombre de messages qui peuvent tre envoys.

vendredi 24 janvier 14

Limites des systmes inconditionnels


Il y a des systmes inconditionnels qui demandent des cls plus courtes... Cependant, ces systmes ont tous le mme problme. La longueur des cls dpend du nombre de messages qui peuvent tre envoys. Ceci est inacceptable, car partager des cls normes est quelque chose de trs difcile mettre en place.

vendredi 24 janvier 14

Limites des systmes inconditionnels


Il y a des systmes inconditionnels qui demandent des cls plus courtes... Cependant, ces systmes ont tous le mme problme. La longueur des cls dpend du nombre de messages qui peuvent tre envoys. Ceci est inacceptable, car partager des cls normes est quelque chose de trs difcile mettre en place. Il ny a aucun moyen dviter ce problme pour ces systmes.
vendredi 24 janvier 14

Lintgrit dans la pratique (I)

vendredi 24 janvier 14

Lintgrit dans la pratique (I)


La table que nous avons vue prcdemment serait beaucoup trop grande pour tre une solution viable.

vendredi 24 janvier 14

Lintgrit dans la pratique (I)


La table que nous avons vue prcdemment serait beaucoup trop grande pour tre une solution viable. Nous voulons des systmes qui ncessitent des cls secrtes courtes et rutilisables.

vendredi 24 janvier 14

Lintgrit dans la pratique (I)


La table que nous avons vue prcdemment serait beaucoup trop grande pour tre une solution viable. Nous voulons des systmes qui ncessitent des cls secrtes courtes et rutilisables. En dnitive, nous voulons que le nombre de cls possibles soit indpendant du nombre de messages pouvant tre authentis.

vendredi 24 janvier 14

Lintgrit dans la pratique (I)


La table que nous avons vue prcdemment serait beaucoup trop grande pour tre une solution viable. Nous voulons des systmes qui ncessitent des cls secrtes courtes et rutilisables. En dnitive, nous voulons que le nombre de cls possibles soit indpendant du nombre de messages pouvant tre authentis. Mais ceci cause un problme supplmentaire...

vendredi 24 janvier 14

Lintgrit dans la pratique (II)

vendredi 24 janvier 14

Lintgrit dans la pratique (II)

Ceci implique quaprs avoir vu quelques messages avec leur CAM, la cl est trs probablement uniquement dtermine. Une seule cl est compatible avec tous les CAM observs.

vendredi 24 janvier 14

Lintgrit dans la pratique (II)

Ceci implique quaprs avoir vu quelques messages avec leur CAM, la cl est trs probablement uniquement dtermine. Une seule cl est compatible avec tous les CAM observs. Ladversaire peut donc essayer de produire les CAM pour les messages vus, et ce, pour toutes les cls jusqu ce que ceux observs soient produits.

vendredi 24 janvier 14

Lintgrit dans la pratique (II)

Ceci implique quaprs avoir vu quelques messages avec leur CAM, la cl est trs probablement uniquement dtermine. Une seule cl est compatible avec tous les CAM observs. Ladversaire peut donc essayer de produire les CAM pour les messages vus, et ce, pour toutes les cls jusqu ce que ceux observs soient produits. Pour sassurer que cette attaque nest pas raliste pour ladversaire le plus patient, une cl de longueur sufsante doit tre utilise ("128 bits comme pour AES) pour exclure la fouille exhaustive de cls.

vendredi 24 janvier 14

Lintgrit dans la pratique (II)

Ceci implique quaprs avoir vu quelques messages avec leur CAM, la cl est trs probablement uniquement dtermine. Une seule cl est compatible avec tous les CAM observs. Ladversaire peut donc essayer de produire les CAM pour les messages vus, et ce, pour toutes les cls jusqu ce que ceux observs soient produits. Pour sassurer que cette attaque nest pas raliste pour ladversaire le plus patient, une cl de longueur sufsante doit tre utilise ("128 bits comme pour AES) pour exclure la fouille exhaustive de cls. De plus, le CAM doit tre de longueur sufsante pour se prmunir contre les adversaires chanceux ("64 bits).

vendredi 24 janvier 14

CAM partir dun systme de chiffrement cl secrte

vendredi 24 janvier 14

AES, DES, ou nimporte quel autre systme de chiffrement peut tre utilis cette n.

CAM partir dun systme de chiffrement cl secrte

vendredi 24 janvier 14

AES, DES, ou nimporte quel autre systme de chiffrement peut tre utilis cette n. Lefcacit de la gnration et vrication de CAM sont les mmes que pour le chiffrement et le dchiffrement. Puisque ces oprations sont efcaces pour bien des systmes de chiffrement (p.ex. AES, DES), les oprations pour garantir lintgrit le seront aussi.

CAM partir dun systme de chiffrement cl secrte

vendredi 24 janvier 14

AES, DES, ou nimporte quel autre systme de chiffrement peut tre utilis cette n. Lefcacit de la gnration et vrication de CAM sont les mmes que pour le chiffrement et le dchiffrement. Puisque ces oprations sont efcaces pour bien des systmes de chiffrement (p.ex. AES, DES), les oprations pour garantir lintgrit le seront aussi. Puisque des chiffrements cls courtes sont connus, lintgrit pourra tre garantie avec des cls courtes pouvant authentier un trs grand nombre de messages.

CAM partir dun systme de chiffrement cl secrte

vendredi 24 janvier 14

AES, DES, ou nimporte quel autre systme de chiffrement peut tre utilis cette n. Lefcacit de la gnration et vrication de CAM sont les mmes que pour le chiffrement et le dchiffrement. Puisque ces oprations sont efcaces pour bien des systmes de chiffrement (p.ex. AES, DES), les oprations pour garantir lintgrit le seront aussi. Puisque des chiffrements cls courtes sont connus, lintgrit pourra tre garantie avec des cls courtes pouvant authentier un trs grand nombre de messages. Lintgrit est obtenue en utilisant le mode de fonctionnement CBC des systmes de chiffrement.
vendredi 24 janvier 14

CAM partir dun systme de chiffrement cl secrte

CBC-MAC

vendredi 24 janvier 14

CBC-MAC
Le message M est spar en blocs de la taille ncessaire pour le chiffrement par blocs :

vendredi 24 janvier 14

CBC-MAC
Le message M est spar en blocs de la taille ncessaire pour le chiffrement par blocs : M=M1,M2,...,ML

vendredi 24 janvier 14

CBC-MAC
Le message M est spar en blocs de la taille ncessaire pour le chiffrement par blocs : M=M1,M2,...,ML M1
C0=

M2

ML

K C1
vendredi 24 janvier 14

K C2

K CL

CBC-MAC
Le message M est spar en blocs de la taille ncessaire pour le chiffrement par blocs : M=M1,M2,...,ML M1
C0=

M2

ML

K C1
vendredi 24 janvier 14

K C2

E peut tre DES, AES, etc.

K CL

CBC-MAC
Le message M est spar en blocs de la taille ncessaire pour le chiffrement par blocs : M=M1,M2,...,ML M1
C0=

M2

ML

K C1
vendredi 24 janvier 14

K C2

E peut tre DES, AES, etc.

K CAM= CL

CBC-MAC
Le message M est spar en blocs de la taille ncessaire pour le chiffrement par blocs : M=M1,M2,...,ML M1
C0=

(M,CL) ML

M2

K C1
vendredi 24 janvier 14

K C2

E peut tre DES, AES, etc.

K CAM= CL

CBC-MAC
Le message M est spar en blocs de la taille Une variante est le standard utilis par le ncessaire pour le chiffrement par blocs : monde bancaire. Nous y M=M1,M2,...,ML M1
C0=
reviendrons...

(M,CL) ML

M2

K C1
vendredi 24 janvier 14

K C2

E peut tre DES, AES, etc.

K CAM= CL

CBC-MAC (II)

vendredi 24 janvier 14

M1

CBC-MAC (II)
M2

ML

vendredi 24 janvier 14

M1

CBC-MAC (II)
M2

ML

Processus optionnel Rduction optionnelle

CL

vendredi 24 janvier 14

M1

CBC-MAC (II)
M2

ML

n bits

n bits

n bits

Processus optionnel Rduction optionnelle

CL

vendredi 24 janvier 14

M1

CBC-MAC (II)
M2

ML

n bits

n bits

n bits

Processus optionnel Rduction optionnelle

CL

m bits

vendredi 24 janvier 14

M1

CBC-MAC (II)
M2

ML

n bits

n bits

n bits

CBC-MAC a certaines faiblesses qui peuvent tre vites laide de fonctions optionnelles (nous y reviendrons). Diffrentes fonctions optionnelles donnent diffrentes saveurs de CBC-MAC. Il y a 6 standards ISO pour CBC-MAC.
vendredi 24 janvier 14

Processus optionnel Rduction optionnelle

CL

m bits

Remplissage
M=
10001110 10011001

...

10011001 1001

vendredi 24 janvier 14

Remplissage
M=
10001110 10011001

...

10011001 1001

Il y a 3 manires habituelles de faire le remplissage :

vendredi 24 janvier 14

Remplissage
M=
10001110 10011001

...

10011001 1001

Il y a 3 manires habituelles de faire le remplissage : 1. Lajout au message du nombre minimum de 0 an que sa longueur soit un multiple de la longueur dun bloc.

vendredi 24 janvier 14

Remplissage
M=
10001110 10011001

...

10011001 1001

Il y a 3 manires habituelles de faire le remplissage : 1. Lajout au message du nombre minimum de 0 an que sa longueur soit un multiple de la longueur dun bloc. 2.Lajout dun 1 suivi de sufsamment de 0 comme dans le cas prcdent.

vendredi 24 janvier 14

Remplissage
M=
10001110 10011001

...

10011001 1001

Il y a 3 manires habituelles de faire le remplissage : 1. Lajout au message du nombre minimum de 0 an que sa longueur soit un multiple de la longueur dun bloc. 2.Lajout dun 1 suivi de sufsamment de 0 comme dans le cas prcdent. 3.Lajout de 0 comme dans le cas 1). De plus, un bloc est ajout au dbut du message indiquant sa longueur.
vendredi 24 janvier 14

Remplissage
M=
10001110 10011001

Le remplissage nest pas fait sur M lorsque transmis en clair!!!

...

10011001 1001

Il y a 3 manires habituelles de faire le remplissage : 1. Lajout au message du nombre minimum de 0 an que sa longueur soit un multiple de la longueur dun bloc. 2.Lajout dun 1 suivi de sufsamment de 0 comme dans le cas prcdent. 3.Lajout de 0 comme dans le cas 1). De plus, un bloc est ajout au dbut du message indiquant sa longueur.
vendredi 24 janvier 14

Remplissage
M=
10001110 10011001

Le remplissage nest pas fait sur M lorsque transmis en clair!!!

...

10011001 1001

0000

Il y a 3 manires habituelles de faire le remplissage : 1. Lajout au message du nombre minimum de 0 an que sa longueur soit un multiple de la longueur dun bloc. 2.Lajout dun 1 suivi de sufsamment de 0 comme dans le cas prcdent. 3.Lajout de 0 comme dans le cas 1). De plus, un bloc est ajout au dbut du message indiquant sa longueur.
vendredi 24 janvier 14

Remplissage
M=
10001110 10011001

Le remplissage nest pas fait sur M lorsque transmis en clair!!!

...

10011001 1001

0000

Il y a 3 manires habituelles de faire le remplissage : 1. Lajout au message du nombre minimum de 0 an que sa longueur soit un multiple de la longueur dun Permet des contrefaons (ajouter/retirer des 0 la n) bloc. 2.Lajout dun 1 suivi de sufsamment de 0 comme dans le cas prcdent. 3.Lajout de 0 comme dans le cas 1). De plus, un bloc est ajout au dbut du message indiquant sa longueur.
vendredi 24 janvier 14

Remplissage
M=
10001110 10011001

Le remplissage nest pas fait sur M lorsque transmis en clair!!!

...

10011001 1001

0000 1000

Il y a 3 manires habituelles de faire le remplissage : 1. Lajout au message du nombre minimum de 0 an que sa longueur soit un multiple de la longueur dun Permet des contrefaons (ajouter/retirer des 0 la n) bloc. 2.Lajout dun 1 suivi de sufsamment de 0 comme dans le cas prcdent. 3.Lajout de 0 comme dans le cas 1). De plus, un bloc est ajout au dbut du message indiquant sa longueur.
vendredi 24 janvier 14

Remplissage
M=
10001110 10011001

Le remplissage nest pas fait sur M lorsque transmis en clair!!!

...

10011001 1001

0000 1000

Il y a 3 manires habituelles de faire le remplissage : 1. Lajout au message du nombre minimum de 0 an que sa longueur soit un multiple de la longueur dun Permet des contrefaons (ajouter/retirer des 0 la n) bloc. 2.Lajout dun 1 suivi de sufsamment de 0 comme dans le cas prcdent. vite les attaques prcdentes. En
permet dautres... nous y reviendrons

3.Lajout de 0 comme dans le cas 1). De plus, un bloc est ajout au dbut du message indiquant sa longueur.
vendredi 24 janvier 14

Remplissage
M=
10001110 10011001

Le remplissage nest pas fait sur M lorsque transmis en clair!!!

...

10011001 1001

0000

Il y a 3 manires habituelles de faire le remplissage : 1. Lajout au message du nombre minimum de 0 an que sa longueur soit un multiple de la longueur dun Permet des contrefaons (ajouter/retirer des 0 la n) bloc. 2.Lajout dun 1 suivi de sufsamment de 0 comme dans le cas prcdent. vite les attaques prcdentes. En
permet dautres... nous y reviendrons

3.Lajout de 0 comme dans le cas 1). De plus, un bloc est ajout au dbut du message indiquant sa longueur.
vendredi 24 janvier 14

Remplissage
M=
|M|

Le remplissage nest pas fait sur M lorsque transmis en clair!!!

10001110

10011001

...

10011001 1001

0000

Il y a 3 manires habituelles de faire le remplissage : 1. Lajout au message du nombre minimum de 0 an que sa longueur soit un multiple de la longueur dun Permet des contrefaons (ajouter/retirer des 0 la n) bloc. 2.Lajout dun 1 suivi de sufsamment de 0 comme dans le cas prcdent. vite les attaques prcdentes. En
permet dautres... nous y reviendrons

3.Lajout de 0 comme dans le cas 1). De plus, un bloc est ajout au dbut du message indiquant sa longueur.
vendredi 24 janvier 14

Remplissage
M=
|M|

Le remplissage nest pas fait sur M lorsque transmis en clair!!!

10001110

10011001

...

10011001 1001

0000

Il y a 3 manires habituelles de faire le remplissage : 1. Lajout au message du nombre minimum de 0 an que sa longueur soit un multiple de la longueur dun Permet des contrefaons (ajouter/retirer des 0 la n) bloc. 2.Lajout dun 1 suivi de sufsamment de 0 comme dans le cas prcdent. vite les attaques prcdentes. En
permet dautres... nous y reviendrons

3.Lajout de 0 comme dans le cas 1). De plus, un bloc est ajout au dbut du message indiquant sa longueur.
Ceci correspond lajout dun processus optionnel en mode CBC.
vendredi 24 janvier 14

Hachage cryptographique

vendredi 24 janvier 14

Hachage cryptographique
Nous allons voir une autre faon de construire des CAM base sur un outil cryptographique appel fonction de hachage cryptographique.

vendredi 24 janvier 14

Hachage cryptographique
Nous allons voir une autre faon de construire des CAM base sur un outil cryptographique appel fonction de hachage cryptographique. La fonction h(.) est une fonction de hachage cryptographique si :

vendredi 24 janvier 14

Hachage cryptographique
Nous allons voir une autre faon de construire des CAM base sur un outil cryptographique appel fonction de hachage cryptographique. La fonction h(.) est une fonction de hachage cryptographique si : 1. h(.) accepte des messages de nimporte quelle longueur;

vendredi 24 janvier 14

Hachage cryptographique
Nous allons voir une autre faon de construire des CAM base sur un outil cryptographique appel fonction de hachage cryptographique. La fonction h(.) est une fonction de hachage cryptographique si : 1. h(.) accepte des messages de nimporte quelle longueur; 2.h(.) produit en sortie une chane de longueur constante (des bits la plupart du temps);

vendredi 24 janvier 14

Hachage cryptographique
Nous allons voir une autre faon de construire des CAM base sur un outil cryptographique appel fonction de hachage cryptographique. La fonction h(.) est une fonction de hachage cryptographique si : 1. h(.) accepte des messages de nimporte quelle longueur; 2.h(.) produit en sortie une chane de longueur constante (des bits la plupart du temps); 3.h(.) peut tre value efcacement;

vendredi 24 janvier 14

Hachage cryptographique
Nous allons voir une autre faon de construire des CAM base sur un outil cryptographique appel fonction de hachage cryptographique. La fonction h(.) est une fonction de hachage cryptographique si : 1. h(.) accepte des messages de nimporte quelle longueur; 2.h(.) produit en sortie une chane de longueur constante (des bits la plupart du temps); 3.h(.) peut tre value efcacement; 4.Il est difcile de produire x!y, tels que h(x)=h(y).
vendredi 24 janvier 14

vendredi 24 janvier 14

1. h(.) accepte en entr des messages de


nimporte quelle longueur,

2. h(.) produit en sortie une chane de longueur


constante (des bits la plupart du temps),

3. h(.) peut tre value efcacement, 4. Il est difcile de produire x!y, tels que
h(x)=h(y).

vendredi 24 janvier 14

1. h(.) accepte en entr des messages de


nimporte quelle longueur,

2. h(.) produit en sortie une chane de longueur


constante (des bits la plupart du temps),

3. h(.) peut tre value efcacement, 4. Il est difcile de produire x!y, tels que
h(x)=h(y).

Noter que 1. et 2. impliquent que des collisions existent. Il suft que celles-ci soient difciles trouver! Lexistence de telles fonctions nest que conjecture.

vendredi 24 janvier 14

1. h(.) accepte en entr des messages de


nimporte quelle longueur,

2. h(.) produit en sortie une chane de longueur


constante (des bits la plupart du temps),

3. h(.) peut tre value efcacement, 4. Il est difcile de produire x!y, tels que
h(x)=h(y).

Noter que 1. et 2. impliquent que des collisions existent. Il suft que celles-ci soient difciles trouver! Lexistence de telles fonctions nest que conjecture.

Noter que pour satisfaire 4., il est ncessaire que la taille de la sortie soit sufsamment grande. Mais de quelle taille???

vendredi 24 janvier 14

1. h(.) accepte en entr des messages de


nimporte quelle longueur,

2. h(.) produit en sortie une chane de longueur


constante (des bits la plupart du temps),

3. h(.) peut tre value efcacement, 4. Il est difcile de produire x!y, tels que
h(x)=h(y).

Noter que 1. et 2. impliquent que des collisions existent. Il suft que celles-ci soient difciles trouver! Lexistence de telles fonctions nest que conjecture.

Les fonctions de hachage cryptographiques fonctionnent habituellement en divisant le message hacher en blocs dune certaine taille (512 pour MD5 et SHA-1) Elles rptent ensuite une fonction de compression de longueur xe (de 512 bits 128 et 160 bits pour MD5 et SHA-1 respectivement). La taille de la sortie est la mme que la taille de la sortie de la fonction de compression.
vendredi 24 janvier 14

Noter que pour satisfaire 4., il est ncessaire que la taille de la sortie soit sufsamment grande. Mais de quelle taille???

HMAC

vendredi 24 janvier 14

HMAC
Voici un standard pour la gnration de CAM partir dune fonction de hachage cryptographique h(.) :

vendredi 24 janvier 14

HMAC
Voici un standard pour la gnration de CAM partir dune fonction de hachage cryptographique h(.) : SK(M) = h( K!opad || h(K!ipad || M) ),

vendredi 24 janvier 14

HMAC
Voici un standard pour la gnration de CAM partir dune fonction de hachage cryptographique h(.) : SK(M) = h( K!opad || h(K!ipad || M) ), VK(M,s) := [h(K!opad || h(K!ipad || M))==s].

vendredi 24 janvier 14

HMAC
Voici un standard pour la gnration de CAM partir dune fonction de hachage cryptographique h(.) : SK(M) = h( K!opad || h(K!ipad || M) ), VK(M,s) := [h(K!opad || h(K!ipad || M))==s]. opad= 0x5c5c5c...5c5c

vendredi 24 janvier 14

HMAC
Voici un standard pour la gnration de CAM partir dune fonction de hachage cryptographique h(.) : SK(M) = h( K!opad || h(K!ipad || M) ), VK(M,s) := [h(K!opad || h(K!ipad || M))==s]. opad= 0x5c5c5c...5c5c ipad = 0x363636...3636

vendredi 24 janvier 14

HMAC
Voici un standard pour la gnration de CAM partir dune fonction de hachage cryptographique h(.) : SK(M) = h( K!opad || h(K!ipad || M) ), VK(M,s) := [h(K!opad || h(K!ipad || M))==s]. opad= 0x5c5c5c...5c5c ipad = 0x363636...3636 opad et ipad ont t choisis pour que les deux valeurs associes la cl K soient sufsamment diffrentes.

vendredi 24 janvier 14

HMAC
Voici un standard pour la gnration de CAM partir dune fonction de hachage cryptographique h(.) : SK(M) = h( K!opad || h(K!ipad || M) ), VK(M,s) := [h(K!opad || h(K!ipad || M))==s]. opad= 0x5c5c5c...5c5c ipad = 0x363636...3636 opad et ipad ont t choisis pour que les deux valeurs associes la cl K soient sufsamment diffrentes. Rappel : la taille du CAM est de 128 et 160 bits pour MD5 et SHA-1 respectivement.
vendredi 24 janvier 14

HMAC
Voici un standard pour la gnration de CAM partir dune fonction de hachage cryptographique h(.) :
concatnation

SK(M) = h( K!opad || h(K!ipad || M) ), VK(M,s) := [h(K!opad || h(K!ipad || M))==s]. opad= 0x5c5c5c...5c5c ipad = 0x363636...3636 opad et ipad ont t choisis pour que les deux valeurs associes la cl K soient sufsamment diffrentes. Rappel : la taille du CAM est de 128 et 160 bits pour MD5 et SHA-1 respectivement.
vendredi 24 janvier 14

HMAC
Voici un standard pour la gnration de CAM partir K doit tre remplie dune fonction de hachage avec des 0 cryptographique droite h(.) : SK(M) = h( K!opad || h(K!ipad || M) ), VK(M,s) := [h(K!opad || h(K!ipad || M))==s]. opad= 0x5c5c5c...5c5c ipad = 0x363636...3636 opad et ipad ont t choisis pour que les deux valeurs associes la cl K soient sufsamment diffrentes. Rappel : la taille du CAM est de 128 et 160 bits pour MD5 et SHA-1 respectivement.
vendredi 24 janvier 14

jusqu la taille des blocs de h(.)

concatnation

HMAC
Voici un standard pour la gnration de CAM partir K doit tre remplie dune fonction de hachage avec des 0 cryptographique droite h(.) : SK(M) = h( K!opad || h(K!ipad || M) ), VK(M,s) := [h(K!opad || h(K!ipad || M))==s].
de la taille des blocs de h(.) opad= 0x5c5c5c...5c5c ipad = 0x363636...3636 opad et ipad ont t choisis pour que les deux valeurs associes la cl K soient sufsamment diffrentes. Rappel : la taille du CAM est de 128 et 160 bits pour MD5 et SHA-1 respectivement.

jusqu la taille des blocs de h(.)

concatnation

vendredi 24 janvier 14

HMAC
jusqu la taille des blocs de h(.)

Voici un standard pour la gnration de CAM partir K doit tre remplie dune fonction de hachage avec des 0 cryptographique droite h(.) :
concatnation

SK(M) = h( K!opad || h(K!ipad || M) ), VK(M,s) := [h(K!opad || h(K!ipad || M))==s].


de la taille des blocs de h(.) opad= 0x5c5c5c...5c5c ipad = 0x363636...3636 opad et ipad ont t choisis pour que les deux valeurs associes la cl K soient sufsamment diffrentes. Rappel : la taille du CAM est de 128 et 160 bits pour MD5 et SHA-1 respectivement.

ns da SL S s ili & U t se c IP

vendredi 24 janvier 14

Le paradoxe des anniversaires

vendredi 24 janvier 14

Le paradoxe des anniversaires


Rappelons-nous que la fonction de hachage cryptographique doit avoir la proprit de rsistance aux collisions :

vendredi 24 janvier 14

Le paradoxe des anniversaires


Rappelons-nous que la fonction de hachage cryptographique doit avoir la proprit de rsistance aux collisions : Il est difcile de trouver x!y t.q. h(x)=h(y).

vendredi 24 janvier 14

Le paradoxe des anniversaires


Rappelons-nous que la fonction de hachage cryptographique doit avoir la proprit de rsistance aux collisions : Il est difcile de trouver x!y t.q. h(x)=h(y). Voici un algorithme un peu grossier pour trouver une collision :

vendredi 24 janvier 14

Le paradoxe des anniversaires


Rappelons-nous que la fonction de hachage cryptographique doit avoir la proprit de rsistance aux collisions : Il est difcile de trouver x!y t.q. h(x)=h(y). Voici un algorithme un peu grossier pour trouver une collision :
i0, zialatoire dans le domaine de h(.), Vu{}

vendredi 24 janvier 14

Le paradoxe des anniversaires


Rappelons-nous que la fonction de hachage cryptographique doit avoir la proprit de rsistance aux collisions : Il est difcile de trouver x!y t.q. h(x)=h(y). Voici un algorithme un peu grossier pour trouver une collision :
i0, zialatoire dans le domaine de h(.), Vu{} Rpter

vendredi 24 janvier 14

Le paradoxe des anniversaires


Rappelons-nous que la fonction de hachage cryptographique doit avoir la proprit de rsistance aux collisions : Il est difcile de trouver x!y t.q. h(x)=h(y). Voici un algorithme un peu grossier pour trouver une collision :
i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))}

vendredi 24 janvier 14

Le paradoxe des anniversaires


Rappelons-nous que la fonction de hachage cryptographique doit avoir la proprit de rsistance aux collisions : Il est difcile de trouver x!y t.q. h(x)=h(y). Voici un algorithme un peu grossier pour trouver une collision :
i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)

vendredi 24 janvier 14

Le paradoxe des anniversaires


Rappelons-nous que la fonction de hachage cryptographique doit avoir la proprit de rsistance aux collisions : Il est difcile de trouver x!y t.q. h(x)=h(y). Voici un algorithme un peu grossier pour trouver une collision :
i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.) Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

vendredi 24 janvier 14

Le paradoxe des anniversaires


Rappelons-nous que la fonction de hachage cryptographique doit avoir la proprit de rsistance aux collisions : Il est difcile de trouver x!y t.q. h(x)=h(y). Voici un algorithme un peu grossier pour trouver une collision :
i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.) Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu Retourner (zi,zj) t.q. (zj!zi) et (zj,h(zi))"Vu.
vendredi 24 janvier 14

Le paradoxe des anniversaires


Rappelons-nous que la fonction de hachage cryptographique doit avoir la proprit de rsistance aux collisions : Il est difcile de trouver x!y t.q. h(x)=h(y). Voici un algorithme un peu grossier pour trouver une collision :
i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.) Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu Retourner (zi,zj) t.q. (zj!zi) et (zj,h(zi))"Vu.
vendredi 24 janvier 14

Si le MAC a t bits de long, alors aprs combien ditrations lalgorithme retournera-til une collision?

Digression

vendredi 24 janvier 14

Digression
Pensez-vous que dans une classe de 30 tudiants les chances sont bonnes pour que 2 tudiants soient ns le mme jour?

1. 10% ou moins 2. 20% 3. 30% 4. 50% ou plus

vendredi 24 janvier 14

Digression
Pensez-vous que dans une classe de 30 tudiants les chances sont bonnes pour que 2 tudiants soient ns le mme jour?

1. 10% ou moins 2. 20% 3. 30% 4. 50% ou plus


Que pensez-vous tre la rponse?

vendredi 24 janvier 14

Digression
Pensez-vous que dans une classe de 30 tudiants les chances sont bonnes pour que 2 tudiants soient ns le mme jour?

1. 10% ou moins 2. 20% 3. 30% 4. 50% ou plus


Que pensez-vous tre la rponse?

vendredi 24 janvier 14

Digression
Pensez-vous que dans une classe de 30 tudiants les chances sont bonnes pour que 2 tudiants soient ns le mme jour?

1. 10% ou moins 2. 20% 3. 30% 4. 50% ou plus


Que pensez-vous tre la rponse? Ceci est appel le paradoxe des anniversaires. Ce nest pas un paradoxe, mais simplement quelque chose de surprenant.

vendredi 24 janvier 14

Digression
Pensez-vous que dans une classe de 30 tudiants les chances sont bonnes pour que 2 tudiants soient ns le mme jour?

1. 10% ou moins 2. 20% 3. 30% 4. 50% ou plus


Que pensez-vous tre la rponse? Ceci est appel le paradoxe des anniversaires. Ce nest pas un paradoxe, mais simplement quelque chose de surprenant. Quel rapport ceci a-t-il avec lintgrit offerte par HMAC?
vendredi 24 janvier 14

Le paradoxe des anniversaires


Considrons lexprience suivante :
Gnralisation du paradoxe des anniversaires Supposons quil y a N boules dans lurne. Combien de boules faut-il tirer au hasard et remettre dans lurne pour esprer en prendre au moins une deux fois?

Rponse : environ #N pour une probabilit de succs dau moins !.

vendredi 24 janvier 14

Le paradoxe des anniversaires


Considrons lexprience suivante :
Gnralisation du paradoxe des anniversaires Supposons quil y a N boules dans lurne. Combien de boules faut-il tirer au hasard et remettre dans lurne pour esprer en prendre au moins une deux fois?

Rponse : environ #N pour une probabilit de succs dau moins !.

vendredi 24 janvier 14

Le paradoxe des anniversaires


Considrons lexprience suivante :
Gnralisation du paradoxe des anniversaires Supposons quil y a N boules dans lurne. Combien de boules faut-il tirer au hasard et remettre dans lurne pour esprer en prendre au moins une deux fois?

Rponse : environ #N pour une probabilit de succs dau moins !.

N boules

vendredi 24 janvier 14

Le paradoxe des anniversaires


Considrons lexprience suivante :
Gnralisation du paradoxe des anniversaires Supposons quil y a N boules dans lurne. Combien de boules faut-il tirer au hasard et remettre dans lurne pour esprer en prendre au moins une deux fois?

Rponse : environ #N pour une probabilit de succs dau moins !.

vendredi 24 janvier 14

Le paradoxe des anniversaires


Considrons lexprience suivante :
Gnralisation du paradoxe des anniversaires Supposons quil y a N boules dans lurne. Combien de boules faut-il tirer au hasard et remettre dans lurne pour esprer en prendre au moins une deux fois?

Rponse : environ #N pour une probabilit de succs dau moins !.

vendredi 24 janvier 14

Le paradoxe des anniversaires


Considrons lexprience suivante :
Gnralisation du paradoxe des anniversaires Supposons quil y a N boules dans lurne. Combien de boules faut-il tirer au hasard et remettre dans lurne pour esprer en prendre au moins une deux fois?

Rponse : environ #N pour une probabilit de succs dau moins !.

vendredi 24 janvier 14

vendredi 24 janvier 14

i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)
Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

vendredi 24 janvier 14

i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)
Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

h(.)

vendredi 24 janvier 14

i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)
Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

h(.)

vendredi 24 janvier 14

i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)
Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

h(.)
Supposons que la sortie de h(.) est de t bits. Si h(.) est utilise dans HMAC, alors les empreintes seront de t bits.

vendredi 24 janvier 14

i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)
Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

Une urne de 2t lments

h(.)
Supposons que la sortie de h(.) est de t bits. Si h(.) est utilise dans HMAC, alors les empreintes seront de t bits.

vendredi 24 janvier 14

i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)
Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

Une urne de 2t lments

h(.)
Supposons que la sortie de h(.) est de t bits. Si h(.) est utilise dans HMAC, alors les empreintes seront de t bits.

vendredi 24 janvier 14

i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)
Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

Une urne de 2t lments

h(.)
Supposons que la sortie de h(.) est de t bits. Si h(.) est utilise dans HMAC, alors les empreintes seront de t bits.

vendredi 24 janvier 14

i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)
Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

Une urne de 2t lments

h(.)
Supposons que la sortie de h(.) est de t bits. Si h(.) est utilise dans HMAC, alors les empreintes seront de t bits.

vendredi 24 janvier 14

i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)
Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

Une urne de 2t lments

h(.)
Supposons que la sortie de h(.) est de t bits. Si h(.) est utilise dans HMAC, alors les empreintes seront de t bits.

vendredi 24 janvier 14

i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)
Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

Une urne de 2t lments

h(.)
Supposons que la sortie de h(.) est de t bits. Si h(.) est utilise dans HMAC, alors les empreintes seront de t bits.

vendredi 24 janvier 14

i0, zialatoire dans le domaine de h(.), Vu{} Rpter Vu Vu + {(zi,h(zi))} i i+1, zi alatoire dans le domaine de h(.)
Jusqu ce que (*,h(zi))"Vu et (zi,*) napparat pas dans Vu

Par le paradoxe des anniversaires, 2t/2 valuations de h(.) sont sufsantes pour trouver une collision avec bonne probabilit.

Une urne de 2t lments

h(.)
Supposons que la sortie de h(.) est de t bits. Si h(.) est utilise dans HMAC, alors les empreintes seront de t bits.

vendredi 24 janvier 14

Pourquoi 128 bits?

vendredi 24 janvier 14

Pourquoi 128 bits?


Si 64 bits de cls pour le chiffrement semblent offrir un bon niveau de scurit, alors pourquoi 128 bits sont-ils ncessaires pour HMAC (ou bien nimporte quel autre CAM)?

vendredi 24 janvier 14

Pourquoi 128 bits?


Si 64 bits de cls pour le chiffrement semblent offrir un bon niveau de scurit, alors pourquoi 128 bits sont-ils ncessaires pour HMAC (ou bien nimporte quel autre CAM)? La rponse est que lalgorithme vu prcdemment parviendrait trouver une collision en temps raisonnable si des CAM de moins de 128 bits taient utiliss :

vendredi 24 janvier 14

Pourquoi 128 bits?


Si 64 bits de cls pour le chiffrement semblent offrir un bon niveau de scurit, alors pourquoi 128 bits sont-ils ncessaires pour HMAC (ou bien nimporte quel autre CAM)? La rponse est que lalgorithme vu prcdemment parviendrait trouver une collision en temps raisonnable si des CAM de moins de 128 bits taient utiliss : Une collision sur des CAM de 64 bits pourrait tre trouve aprs 264/2=232 valuations de h(.)!

vendredi 24 janvier 14

Pourquoi 128 bits?


Si 64 bits de cls pour le chiffrement semblent offrir un bon niveau de scurit, alors pourquoi 128 bits sont-ils ncessaires pour HMAC (ou bien nimporte quel autre CAM)? La rponse est que lalgorithme vu prcdemment parviendrait trouver une collision en temps raisonnable si des CAM de moins de 128 bits taient utiliss : Une collision sur des CAM de 64 bits pourrait tre trouve aprs 264/2=232 valuations de h(.)! Si les CAM ont au moins 128 bits, alors une collision par lalgorithme vu prcdemment ncessite 2128/2=264 valuations de h(.).

vendredi 24 janvier 14

Pourquoi 128 bits?


Si 64 bits de cls pour le chiffrement semblent offrir un bon niveau de scurit, alors pourquoi 128 bits sont-ils ncessaires pour HMAC (ou bien nimporte quel autre CAM)? La rponse est que lalgorithme vu prcdemment parviendrait trouver une collision en temps raisonnable si des CAM de moins de 128 bits taient utiliss : Une collision sur des CAM de 64 bits pourrait tre trouve aprs 264/2=232 valuations de h(.)! Si les CAM ont au moins 128 bits, alors une collision par lalgorithme vu prcdemment ncessite 2128/2=264 valuations de h(.). quivalent une fouille exhaustive des cls de 64 bits pour les systmes de chiffrement.
vendredi 24 janvier 14

Scurit de HMAC

vendredi 24 janvier 14

Scurit de HMAC

La rsistance aux collisions est-elle ncessaire pour que HMAC soit sr?

vendredi 24 janvier 14

Scurit de HMAC

La rsistance aux collisions est-elle ncessaire pour que HMAC soit sr?

HMAC est construite partir dune fonction de compression rsistante aux collisions h(k,y).

vendredi 24 janvier 14

Scurit de HMAC

La rsistance aux collisions est-elle ncessaire pour que HMAC soit sr?

HMAC est construite partir dune fonction de compression rsistante aux collisions h(k,y). Il a t montr par Bellare (2006) que si h(k,.), lorsque k est gnre alatoirement, est une fonction pseudo-alatoire, alors HMAC est une fonction pseudo-alatoire.

vendredi 24 janvier 14

Scurit de HMAC

La rsistance aux collisions est-elle ncessaire pour que HMAC soit sr?

HMAC est construite partir dune fonction de compression rsistante aux collisions h(k,y). Il a t montr par Bellare (2006) que si h(k,.), lorsque k est gnre alatoirement, est une fonction pseudo-alatoire, alors HMAC est une fonction pseudo-alatoire. Si HMAC est une fonction PA, alors elle se comporte comme le premier exemple vu, qui nous donnait un CAM inconditionnellement sr.

vendredi 24 janvier 14

Scurit de HMAC

La rsistance aux collisions est-elle ncessaire pour que HMAC soit sr?

HMAC est construite partir dune fonction de compression rsistante aux collisions h(k,y). Il a t montr par Bellare (2006) que si h(k,.), lorsque k est gnre alatoirement, est une fonction pseudo-alatoire, alors HMAC est une fonction pseudo-alatoire. Si HMAC est une fonction PA, alors elle se comporte comme le premier exemple vu, qui nous donnait un CAM inconditionnellement sr. Cest--dire que HMAC est sre contre les adversaires qui fonctionnent en temps polynomial par rapport la taille de lentre.

vendredi 24 janvier 14

Scurit de HMAC

La rsistance aux collisions est-elle ncessaire pour que HMAC soit sr?

HMAC est construite partir dune fonction de compression rsistante aux collisions h(k,y). Il a t montr par Bellare (2006) que si h(k,.), lorsque k est gnre alatoirement, est une fonction pseudo-alatoire, alors HMAC est une fonction pseudo-alatoire. Si HMAC est une fonction PA, alors elle se comporte comme le premier exemple vu, qui nous donnait un CAM inconditionnellement sr. Cest--dire que HMAC est sre contre les adversaires qui fonctionnent en temps polynomial par rapport la taille de lentre. Cette condition sur la fonction de compression est plus faible que la rsistance aux collisions.

vendredi 24 janvier 14

Standards pour lintgrit

vendredi 24 janvier 14

Standards pour lintgrit


CBC-MAC partir de chiffrement cl secrte :

vendredi 24 janvier 14

Standards pour lintgrit


CBC-MAC partir de chiffrement cl secrte :
Sr pour des messages de taille xe et multiple de la taille des blocs pour le chiffrement.

vendredi 24 janvier 14

Standards pour lintgrit


CBC-MAC partir de chiffrement cl secrte :
Sr pour des messages de taille xe et multiple de la taille des blocs pour le chiffrement. Faiblesses : Il est possible de contrefaire des CAM (en travaillant) si les messages sont de tailles variables (2n/2 messages-CAM pour des CAM de longueur n). XCBC-MAC rgle ce problme...

vendredi 24 janvier 14

Standards pour lintgrit


CBC-MAC partir de chiffrement cl secrte :
Sr pour des messages de taille xe et multiple de la taille des blocs pour le chiffrement. Faiblesses : Il est possible de contrefaire des CAM (en travaillant) si les messages sont de tailles variables (2n/2 messages-CAM pour des CAM de longueur n). XCBC-MAC rgle ce problme...

Fonctions de hachage cryptographiques

vendredi 24 janvier 14

Standards pour lintgrit


CBC-MAC partir de chiffrement cl secrte :
Sr pour des messages de taille xe et multiple de la taille des blocs pour le chiffrement. Faiblesses : Il est possible de contrefaire des CAM (en travaillant) si les messages sont de tailles variables (2n/2 messages-CAM pour des CAM de longueur n). XCBC-MAC rgle ce problme...

Fonctions de hachage cryptographiques


Algos MD4, MD5 RIPEMD
RIPEMD 128/256

longueur empreinte 128 128 128,256 160 160 256/224

taille des blocs 128,512 512 512 512 512 512

collisions oui oui non oui faiblesses non

SHA-0 SHA-1 SHA-256/224


vendredi 24 janvier 14

Standards pour lintgrit


CBC-MAC partir de chiffrement cl secrte :
Sr pour des messages de taille xe et multiple de la taille des blocs pour le chiffrement. Faiblesses : Il est possible de contrefaire des CAM (en travaillant) si les messages sont de tailles variables (2n/2 messages-CAM pour des CAM de longueur n). XCBC-MAC rgle ce problme...

Fonctions de hachage cryptographiques


Algos MD4, MD5 RIPEMD
RIPEMD 128/256

longueur empreinte 128 128 128,256 160 160 256/224

taille des blocs 128,512 512 512 512 512 512

collisions oui oui non


69 oui2 valuations

SHA-0 SHA-1 SHA-256/224


vendredi 24 janvier 14

faiblesses non

Standards pour lintgrit


CBC-MAC partir de chiffrement cl secrte :
Sr pour des messages de taille xe et multiple de la taille des blocs pour le chiffrement. Faiblesses : Il est possible de contrefaire des CAM (en travaillant) si les messages sont de tailles variables (2n/2 messages-CAM pour des CAM de longueur n). XCBC-MAC rgle ce problme...

Fonctions de hachage cryptographiques


Algos MD4, MD5 RIPEMD Le plus RIPEMD 128/256 SHA-0 SHA-1 SHA-256/224
vendredi 24 janvier 14

longueur empreinte 128 128 utilis! 128,256 160 160 256/224

taille des blocs 128,512 512 512 512 512 512

collisions oui oui non


69 oui2 valuations

faiblesses non

Attention CBC-MAC

vendredi 24 janvier 14

Attention CBC-MAC
M1

M2

ML

vendredi 24 janvier 14

Attention CBC-MAC
M1

M2

ML

Nous avons dj vu que remplir (padding) le dernier bloc (incomplet) avec des 0 permet de contrefaire des CAM (en retirant ou en ajoutant des 0 la n du message).

vendredi 24 janvier 14

Attention CBC-MAC
M1

M2

ML

Nous avons dj vu que remplir (padding) le dernier bloc (incomplet) avec des 0 permet de contrefaire des CAM (en retirant ou en ajoutant des 0 la n du message). Pour cette raison, il a t suggr de terminer le message par un 1 suivi de sufsamment de 0 pour complter le dernier bloc.

vendredi 24 janvier 14

Attention CBC-MAC
M1

M2

ML

Nous avons dj vu que remplir (padding) le dernier bloc (incomplet) avec des 0 permet de contrefaire des CAM (en retirant ou en ajoutant des 0 la n du message). Pour cette raison, il a t suggr de terminer le message par un 1 suivi de sufsamment de 0 pour complter le dernier bloc. Cette approche permet galement de contrefaire des messages!

vendredi 24 janvier 14

Retour sur le remplissage

vendredi 24 janvier 14

Supposons que les blocs de la mthode de chiffrement sont de taille 4:

Retour sur le remplissage

vendredi 24 janvier 14

Supposons que les blocs de la mthode de chiffrement sont de taille 4:


M1=100101 M2=1001010 M3=10010101

Retour sur le remplissage

vendredi 24 janvier 14

Supposons que les blocs de la mthode de chiffrement sont de taille 4:


M1=100101 M2=1001010 M3=10010101
Remplissage avec des 0

Retour sur le remplissage

Remplissage avec un 1 suivi de 0

vendredi 24 janvier 14

Supposons que les blocs de la mthode de chiffrement sont de taille 4:


M1=100101 M2=1001010 M3=10010101
Remplissage avec des 0 M1
1001 0100

Retour sur le remplissage

Remplissage avec un 1 suivi de 0

vendredi 24 janvier 14

Supposons que les blocs de la mthode de chiffrement sont de taille 4:


M1=100101 M2=1001010 M3=10010101
Remplissage avec des 0 M1 M2
1001 1001 0100 0100

Retour sur le remplissage

Remplissage avec un 1 suivi de 0

vendredi 24 janvier 14

Supposons que les blocs de la mthode de chiffrement sont de taille 4:


M1=100101 M2=1001010 M3=10010101
Remplissage avec des 0 M1 M2 M3
1001 1001 1001 0100 0100 0101

Retour sur le remplissage

Remplissage avec un 1 suivi de 0

vendredi 24 janvier 14

Supposons que les blocs de la mthode de chiffrement sont de taille 4:


M1=100101 M2=1001010 M3=10010101
Remplissage avec des 0 M1 M2 M3
1001 1001 1001 0100 0100 0101

Retour sur le remplissage

Remplissage avec un 1 suivi de 0

produit le mme CAM

vendredi 24 janvier 14

Supposons que les blocs de la mthode de chiffrement sont de taille 4:


M1=100101 M2=1001010 M3=10010101
Remplissage avec des 0 M1 M2 M3
1001 1001 1001 0100 0100 0101

Retour sur le remplissage

Remplissage avec un 1 suivi de 0 M1


1001 0110

produit le mme CAM

vendredi 24 janvier 14

Supposons que les blocs de la mthode de chiffrement sont de taille 4:


M1=100101 M2=1001010 M3=10010101
Remplissage avec des 0 M1 M2 M3
1001 1001 1001 0100 0100 0101

Retour sur le remplissage

Remplissage avec un 1 suivi de 0 M1 M2


1001 1001 0110 0101

produit le mme CAM

vendredi 24 janvier 14

Supposons que les blocs de la mthode de chiffrement sont de taille 4:


M1=100101 M2=1001010 M3=10010101
Remplissage avec des 0 M1 M2 M3
1001 1001 1001 0100 0100 0101

Retour sur le remplissage

Remplissage avec un 1 suivi de 0 M1 M2 M3


1001 1001 1001 0110 0101 0101 1000

produit le mme CAM

vendredi 24 janvier 14

Supposons que les blocs de la mthode de chiffrement sont de taille 4: Ce remplissage na pas le problme prcdent.
M1=100101 M2=1001010 M3=10010101
Remplissage avec des 0 M1 M2 M3
1001 1001 1001 0100 0100 0101 Il ny a pas de manire de modier la n dun message pour obtenir un autre message avec la mme empreinte. Est-ce que ceci signie que cette mthode est sre?

Retour sur le remplissage

Remplissage avec un 1 suivi de 0 M1 M2 M3


1001 1001 1001 0110 0101 0101 1000

produit le mme CAM

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M1
0

!
E
t1

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M1
0

!
E
t1

(M1,t1)

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M1
0

M2

!
E
t1 K

!
E
t2

(M1,t1)

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M1
0

M2
0

!
E
t1 K

!
E
t2

(M1,t1)

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M1
0

M2
0

!
E
t1 K

!
E
t2

(M1,t1)

(M2,t2)

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M=
0

M1

M2
0

!
E
t1 K

!
E
t2

(M1,t1)

(M2,t2)

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M=
0

M1

M2 !t1
0

!
E
t1 K

!
E
t2

(M1,t1)

(M2,t2)

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M=
0

M1

M2 !t1

!
E
t1 K

!
E
t2

(M1,t1)

(M2,t2)

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M=
0

M1

M2 !t1

!
E
t1 K

!
E
t2

(M1,t1)

(M2,t2)

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M=
0

M1

M2 !t1

!
E
t1 K

!
E
t2

(M1,t1)

(M2,t2)

M ((M1 || M2!t1),t2)

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M=
0

M1

M2 !t1

!
E
t1 K

!M2
E
t2

(M1,t1)

(M2,t2)

M ((M1 || M2!t1),t2)

vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M=
0

M1

M2 !t1

!
E
t1 K

!M2
E
t2

(M1,t1)

(M2,t2)

M ((M1 || M2!t1),t2)

OK!!
vendredi 24 janvier 14

Attaque contre le second remplissage


Supposons que CBC-MAC de deux messages M1 et M2 dun seul bloc chacun sont reus :
M=
0

M1

M2 !t1

!
E
t1 K

!M2
E
t2

Ces contrefaons (souvent appeles couper-coller) sont dangereuses contre peu prs tous les remplissages. Cest pourquoi le type 3 vu prcdemment est utilis (c.--d. celui avec la taille de M au dbut).

(M1,t1)

(M2,t2)

M ((M1 || M2!t1),t2)

OK!!
vendredi 24 janvier 14

Scurit de CBC-MAC

vendredi 24 janvier 14

Scurit de CBC-MAC
CBC-MAC est une mthode considre sre pour la gnration de CAM pour autant que la longueur des messages authentis soit connue et xe.

vendredi 24 janvier 14

Scurit de CBC-MAC
CBC-MAC est une mthode considre sre pour la gnration de CAM pour autant que la longueur des messages authentis soit connue et xe. Cest--dire que si la mthode de chiffrement utilise est sre (selon une certaine dnition formelle), alors il nest pas possible de contrefaire des messages par CBC-MAC.

vendredi 24 janvier 14

Scurit de CBC-MAC
CBC-MAC est une mthode considre sre pour la gnration de CAM pour autant que la longueur des messages authentis soit connue et xe. Cest--dire que si la mthode de chiffrement utilise est sre (selon une certaine dnition formelle), alors il nest pas possible de contrefaire des messages par CBC-MAC. CBC-MAC est beaucoup plus problmatique lorsque la longueur des messages est variable. Pourtant, cette proprit de pouvoir calculer des empreintes pour des messages de toutes les longueurs est trs importante dans la pratique.
vendredi 24 janvier 14

Processus optionnel

vendredi 24 janvier 14

Processus optionnel
Il y plusieurs standards de CBC-MAC utiliss dans la pratique.

vendredi 24 janvier 14

Processus optionnel
Il y plusieurs standards de CBC-MAC utiliss dans la pratique. Ils consistent en la spcication de processus optionnels.

vendredi 24 janvier 14

Processus optionnel
Il y plusieurs standards de CBC-MAC utiliss dans la pratique. Ils consistent en la spcication de processus optionnels. Parmi ces standards, il y a :

vendredi 24 janvier 14

Processus optionnel
Il y plusieurs standards de CBC-MAC utiliss dans la pratique. Ils consistent en la spcication de processus optionnels. Parmi ces standards, il y a : SMAC : CBC-MAC sans fonctionnalit optionnelle.

vendredi 24 janvier 14

Processus optionnel
Il y plusieurs standards de CBC-MAC utiliss dans la pratique. Ils consistent en la spcication de processus optionnels. Parmi ces standards, il y a : SMAC : CBC-MAC sans fonctionnalit optionnelle. EMAC : CBC-MAC avec un chiffrement supplmentaire de lempreinte produite. Ncessite une cl de plus.

vendredi 24 janvier 14

Processus optionnel
Il y plusieurs standards de CBC-MAC utiliss dans la pratique. Ils consistent en la spcication de processus optionnels. Parmi ces standards, il y a : SMAC : CBC-MAC sans fonctionnalit optionnelle. EMAC : CBC-MAC avec un chiffrement supplmentaire de lempreinte produite. Ncessite une cl de plus. ARMAC : Le dernier bloc dchiffr (lempreinte) et ensuite chiffr. Ncessite une cl de plus.
vendredi 24 janvier 14

La cl est maintenant (K,K) :

EMAC

vendredi 24 janvier 14

La cl est maintenant (K,K) : M1 M2

EMAC
ML

vendredi 24 janvier 14

La cl est maintenant (K,K) : M1 M2

EMAC
ML

Processus optionnel

vendredi 24 janvier 14

La cl est maintenant (K,K) : M1 M2

EMAC
ML

vendredi 24 janvier 14

La cl est maintenant (K,K) : M1 M2

EMAC
ML

vendredi 24 janvier 14

La cl est maintenant (K,K) : M1 M2

EMAC
ML

Cette construction possde une preuve de scurit avec les remplissages 2) ou 3).

vendredi 24 janvier 14

La cl est maintenant (K,K) : M1 M2

EMAC
ML

Cette construction possde une preuve de scurit avec les remplissages 2) ou 3). Prfrable pour les chiffrements par blocs avec des cls assez longues.

vendredi 24 janvier 14

La cl est maintenant (K,K) : M1 M2

EMAC
ML

Cette construction possde une preuve de scurit avec les remplissages 2) ou 3). Prfrable pour les chiffrements par blocs avec des cls assez longues. Pour DES, cette mthode nest pas plus sre que CBC-MAC contre la fouille exhaustive de cls (semblable lattaque contre DES deux cls). La cl peut tre trouve aprs environ 256 oprations pour 112 bits de cls.
vendredi 24 janvier 14

La cl est maintenant (K,K) :

ARMAC

vendredi 24 janvier 14

La cl est maintenant (K,K) :

ARMAC
M2 ML

M1

vendredi 24 janvier 14

La cl est maintenant (K,K) :

ARMAC
M2 ML

M1

K K

D E

vendredi 24 janvier 14

La cl est maintenant (K,K) :

ARMAC
M2 ML

M1

E K Pas de preuve de scurit, mais conu pour tre utilis avec DES.

vendredi 24 janvier 14

La cl est maintenant (K,K) :

ARMAC
M2 ML

M1

E K Pas de preuve de scurit, mais conu pour tre utilis avec DES.
Les attaques pour retrouver la cl semblent beaucoup plus difciles quavec EMAC.

vendredi 24 janvier 14

La cl est maintenant (K,K) :

ARMAC
M2 ML

M1

E K Pas de preuve de scurit, mais conu pour tre utilis avec DES.
Les attaques pour retrouver la cl semblent beaucoup plus difciles quavec EMAC. Trouver la cl avec DES peut tre fait avec le bris de 3DES (2112 chiffrements+2112 de mmoire) ou un bris de DES et 264/2 CAMs valides.
vendredi 24 janvier 14

XCBC

vendredi 24 janvier 14

XCBC
Est diffrent des autres, car il ne peut pas tre dni comme une fonctionnalit optionnelle.

vendredi 24 janvier 14

XCBC
Est diffrent des autres, car il ne peut pas tre dni comme une fonctionnalit optionnelle. Possde une preuve de scurit tant donn un chiffrement sr.

vendredi 24 janvier 14

XCBC
Est diffrent des autres, car il ne peut pas tre dni comme une fonctionnalit optionnelle. Possde une preuve de scurit tant donn un chiffrement sr. Utilise 3 cls : K une cl pour la mthode de chiffrement. Cls K1 et K2 de la longueur des blocs.

vendredi 24 janvier 14

XCBC
Est diffrent des autres, car il ne peut pas tre dni comme une fonctionnalit optionnelle. Possde une preuve de scurit tant donn un chiffrement sr. Utilise 3 cls : K une cl pour la mthode de chiffrement. Cls K1 et K2 de la longueur des blocs. Utilise le remplissage 2) si ncessaire et aucun remplissage sinon.

vendredi 24 janvier 14

XCBC
Est diffrent des autres, car il ne peut pas tre dni comme une fonctionnalit optionnelle. Possde une preuve de scurit tant donn un chiffrement sr. Utilise 3 cls : K une cl pour la mthode de chiffrement. Cls K1 et K2 de la longueur des blocs. Utilise le remplissage 2) si ncessaire et aucun remplissage sinon. Les ambiguts sont limines en utilisant K1 sil y a remplissage et K2 sinon.

vendredi 24 janvier 14

XCBC
Est diffrent des autres, car il ne peut pas tre dni comme une fonctionnalit optionnelle. Possde une preuve de scurit tant donn un chiffrement sr. Utilise 3 cls : K une cl pour la mthode de chiffrement. Cls K1 et K2 de la longueur des blocs. Utilise le remplissage 2) si ncessaire et aucun remplissage sinon. Les ambiguts sont limines en utilisant K1 sil y a remplissage et K2 sinon. Utilise le mme nombre de chiffrements que SMAC, ce qui est optimal.

vendredi 24 janvier 14

XCBC
Est diffrent des autres, car il ne peut pas tre dni comme une fonctionnalit optionnelle. Possde une preuve de scurit tant donn un chiffrement sr. Utilise 3 cls : K une cl pour la mthode de chiffrement. Cls K1 et K2 de la longueur des blocs. Utilise le remplissage 2) si ncessaire et aucun remplissage sinon. Les ambiguts sont limines en utilisant K1 sil y a remplissage et K2 sinon. Utilise le mme nombre de chiffrements que SMAC, ce qui est optimal. Demande cependant une longue cl (384 bits avec AES)!
vendredi 24 janvier 14

K=(K1,K2,K3)

vendredi 24 janvier 14

Variantes de XCBC

vendredi 24 janvier 14

Variantes de XCBC
Il y a deux autres variantes de XCBC qui utilisent moins de cls.

vendredi 24 janvier 14

Variantes de XCBC
Il y a deux autres variantes de XCBC qui utilisent moins de cls. TMAC a une preuve de scurit. Ncessite deux cls (K,K). Les cls K1 et K2 pour XCBC sont calcules partir de K.

vendredi 24 janvier 14

Variantes de XCBC
Il y a deux autres variantes de XCBC qui utilisent moins de cls. TMAC a une preuve de scurit. Ncessite deux cls (K,K). Les cls K1 et K2 pour XCBC sont calcules partir de K. OMAC possde une preuve de scurit et est bas sur TMAC avec seulement une cl K. K dans TMAC est calcul comme K=EK(0n). TMAC est alors utilis avec (K,K).

vendredi 24 janvier 14

Variantes de XCBC
Il y a deux autres variantes de XCBC qui utilisent moins de cls. TMAC a une preuve de scurit. Ncessite deux cls (K,K). Les cls K1 et K2 pour XCBC sont calcules partir de K. OMAC possde une preuve de scurit et est bas sur TMAC avec seulement une cl K. K dans TMAC est calcul comme K=EK(0n). TMAC est alors utilis avec (K,K). OMAC est pressenti pour tre le prochain standard NIST pour lauthentication de messages partir dun chiffre par bloc.
vendredi 24 janvier 14

Chiffrement authenti

vendredi 24 janvier 14

Chiffrement authenti
Il est habituel quune application demande la fois condentialit et intgrit.

vendredi 24 janvier 14

Chiffrement authenti
Il est habituel quune application demande la fois condentialit et intgrit. Il y a plusieurs faons dy parvenir partir dun chiffrement (EK,DK) et dun CAM (SK,VK).

vendredi 24 janvier 14

Chiffrement authenti
Il est habituel quune application demande la fois condentialit et intgrit. Il y a plusieurs faons dy parvenir partir dun chiffrement (EK,DK) et dun CAM (SK,VK). En voici quelques-unes partir du message m :

vendredi 24 janvier 14

Chiffrement authenti
Il est habituel quune application demande la fois condentialit et intgrit. Il y a plusieurs faons dy parvenir partir dun chiffrement (EK,DK) et dun CAM (SK,VK). En voici quelques-unes partir du message m :
Chiffre-et-Authentie : Transmet (c,t) avec c=EK(m) et t=SK(m). Le vricateur dchiffre m=DK(c) et vrie VK(m,t).

vendredi 24 janvier 14

Chiffrement authenti
Il est habituel quune application demande la fois condentialit et intgrit. Il y a plusieurs faons dy parvenir partir dun chiffrement (EK,DK) et dun CAM (SK,VK). En voici quelques-unes partir du message m :
Chiffre-et-Authentie : Transmet (c,t) avec c=EK(m) et t=SK(m). Le vricateur dchiffre m=DK(c) et vrie VK(m,t). Authentie-puis-Chiffre : Transmet c avec t=SK(m) et c=EK(m,t). Le vricateur dchiffre (m,t)=DK(c) et vrie VK(m,t). (SSL)

vendredi 24 janvier 14

Chiffrement authenti
Il est habituel quune application demande la fois condentialit et intgrit. Il y a plusieurs faons dy parvenir partir dun chiffrement (EK,DK) et dun CAM (SK,VK). En voici quelques-unes partir du message m :
Chiffre-et-Authentie : Transmet (c,t) avec c=EK(m) et t=SK(m). Le vricateur dchiffre m=DK(c) et vrie VK(m,t). Authentie-puis-Chiffre : Transmet c avec t=SK(m) et c=EK(m,t). Le vricateur dchiffre (m,t)=DK(c) et vrie VK(m,t). (SSL) Chiffre-puis-Authentie : Transmet (c,t) avec c=EK(m) et t=SK(c). Le vricateur dchiffre m=DK(c) et vrie VK(c,t).
vendredi 24 janvier 14

Scurit

vendredi 24 janvier 14

Scurit
Chiffre-et-Authentie nest pas sr quels que soient le CAM et le chiffre. La raison est quun CAM nest pas ncessairement condentiel.

vendredi 24 janvier 14

Scurit
Chiffre-et-Authentie nest pas sr quels que soient le CAM et le chiffre. La raison est quun CAM nest pas ncessairement condentiel. Donc, (c,t) avec c=EK(m) et t=SK(m) peut tre tel que t
donne de linformation sur m!!!!

vendredi 24 janvier 14

Scurit
Chiffre-et-Authentie nest pas sr quels que soient le CAM et le chiffre. La raison est quun CAM nest pas ncessairement condentiel. Donc, (c,t) avec c=EK(m) et t=SK(m) peut tre tel que t
donne de linformation sur m!!!!

Authentie-puis-Chiffre nest pas sr non plus pour

un CAM et un chiffre arbitraires.

vendredi 24 janvier 14

Scurit
Chiffre-et-Authentie nest pas sr quels que soient le CAM et le chiffre. La raison est quun CAM nest pas ncessairement condentiel. Donc, (c,t) avec c=EK(m) et t=SK(m) peut tre tel que t
donne de linformation sur m!!!!

Authentie-puis-Chiffre nest pas sr non plus pour

un CAM et un chiffre arbitraires.

Chiffre-puis-Authentie: Cette mthode fonctionne avec un CAM et un chiffre srs. Pourrait tre moins efcace que le prcdent, mais sr!
vendredi 24 janvier 14

Le standard CCM

vendredi 24 janvier 14

Le standard CCM
Des modes pour des chiffrements authentis ont t proposs partir de chiffres par blocs.

vendredi 24 janvier 14

Le standard CCM
Des modes pour des chiffrements authentis ont t proposs partir de chiffres par blocs. Le standard CCM utilise 2 cls et est de la forme authentie-puis-chiffre. Les cls sont videmment des cls pour le chiffre par blocs.

vendredi 24 janvier 14

Le standard CCM
Des modes pour des chiffrements authentis ont t proposs partir de chiffres par blocs. Le standard CCM utilise 2 cls et est de la forme authentie-puis-chiffre. Les cls sont videmment des cls pour le chiffre par blocs. Le standard CCM est utilis dans IPsec et est bas sur lauthentication CBC-MAC et le mode CTR pour le chiffrement.

vendredi 24 janvier 14

Le standard CCM
Des modes pour des chiffrements authentis ont t proposs partir de chiffres par blocs. Le standard CCM utilise 2 cls et est de la forme authentie-puis-chiffre. Les cls sont videmment des cls pour le chiffre par blocs. Le standard CCM est utilis dans IPsec et est bas sur lauthentication CBC-MAC et le mode CTR pour le chiffrement. Possde une preuve de scurit.

vendredi 24 janvier 14

Fonctionnement

vendredi 24 janvier 14

Fonctionnement
Cl=(k,Key)

vendredi 24 janvier 14

Fonctionnement
Cl=(k,Key)
1) CBC-MAC de M=M1,...,ML

vendredi 24 janvier 14

Fonctionnement
Cl=(k,Key)
1) CBC-MAC de M=M1,...,ML
M1

M2

ML

vendredi 24 janvier 14

Fonctionnement
Cl=(k,Key)
1) CBC-MAC de M=M1,...,ML
M1

M2

ML

2) Chiffrement de (t,M) en mode CTR

vendredi 24 janvier 14

Fonctionnement
Cl=(k,Key)
1) CBC-MAC de M=M1,...,ML
M1

M2

ML

2) Chiffrement de (t,M) en mode CTR

vendredi 24 janvier 14

Fonctionnement
Cl=(k,Key)
1) CBC-MAC de M=M1,...,ML
M1

M2

ML

2) Chiffrement de (t,M) en mode CTR


Un Nonce et un vecteur frais alatoire de la taille du bloc

t
Nonce+1 Nonce+2 Nonce+L+1

vendredi 24 janvier 14

Fonctionnement
Cl=(k,Key)
1) CBC-MAC de M=M1,...,ML
M1

M2

ML

2) Chiffrement de (t,M) en mode CTR


Un Nonce et un vecteur frais alatoire de la taille du bloc

t
Nonce+1 Nonce+2 Nonce+L+1

(t,M)=(t,M1,M2,...,ML)

vendredi 24 janvier 14

Fonctionnement
Cl=(k,Key)
1) CBC-MAC de M=M1,...,ML
M1

M2

ML

2) Chiffrement de (t,M) en mode CTR


Un Nonce et un vecteur frais alatoire de la taille du bloc

t
Nonce+1 Nonce+2 Nonce+L+1

(t,M)=(t,M1,M2,...,ML)

C1
vendredi 24 janvier 14

C2

CL+1

Fonctionnement
Cl=(k,Key)
1) CBC-MAC de M=M1,...,ML
M1

M2

ML

La transmission consiste en lenvoi de (Nonce,C1,C2,...,CL+1)

2) Chiffrement de (t,M) en mode CTR


Un Nonce et un vecteur frais alatoire de la taille du bloc

t
Nonce+1 Nonce+2 Nonce+L+1

(t,M)=(t,M1,M2,...,ML)

C1
vendredi 24 janvier 14

C2

CL+1

SHA-1

vendredi 24 janvier 14

SHA-1
SHA-1 est une fonction de hachage qui peut servir de hachage cryptographique dans la pratique.

vendredi 24 janvier 14

SHA-1
SHA-1 est une fonction de hachage qui peut servir de hachage cryptographique dans la pratique. SHA-1 produit des empreintes de 160 bits.

vendredi 24 janvier 14

SHA-1
SHA-1 est une fonction de hachage qui peut servir de hachage cryptographique dans la pratique. SHA-1 produit des empreintes de 160 bits. Cest le successeur de SHA-0. SHA-0 a t remplace par le NIST puisquelle tait souponne de contenir des failles permettant de trouver des collisions. Faiblesses releves par le NSA!

vendredi 24 janvier 14

SHA-1
SHA-1 est une fonction de hachage qui peut servir de hachage cryptographique dans la pratique. SHA-1 produit des empreintes de 160 bits. Cest le successeur de SHA-0. SHA-0 a t remplace par le NIST puisquelle tait souponne de contenir des failles permettant de trouver des collisions. Faiblesses releves par le NSA! SHA-1 pourrait aussi avoir des faiblesses caches.

vendredi 24 janvier 14

SHA-1
SHA-1 est une fonction de hachage qui peut servir de hachage cryptographique dans la pratique. SHA-1 produit des empreintes de 160 bits. Cest le successeur de SHA-0. SHA-0 a t remplace par le NIST puisquelle tait souponne de contenir des failles permettant de trouver des collisions. Faiblesses releves par le NSA! SHA-1 pourrait aussi avoir des faiblesses caches. SHA-256 a t propose pour remdier la situation.
vendredi 24 janvier 14

Principe gnral

vendredi 24 janvier 14

Principe gnral
SHA-1 et MD5 sont construites sur le mme principe. Elles invoquent une fonction de compression f(mi,s) qui prend un bloc du message mi et une valeur s pour fournir une empreinte de la taille dsire.

vendredi 24 janvier 14

Principe gnral
SHA-1 et MD5 sont construites sur le mme principe. Elles invoquent une fonction de compression f(mi,s) qui prend un bloc du message mi et une valeur s pour fournir une empreinte de la taille dsire. mi est un bloc du message de 512 bits tandis que s contient 160 bits.

vendredi 24 janvier 14

Principe gnral
SHA-1 et MD5 sont construites sur le mme principe. Elles invoquent une fonction de compression f(mi,s) qui prend un bloc du message mi et une valeur s pour fournir une empreinte de la taille dsire. mi est un bloc du message de 512 bits tandis que s contient 160 bits. Au dpart, le message m est divis en t+1 blocs de 512 bits chacun. Un remplissage de 0 suivi de la longueur de m en binaire est ajout.

vendredi 24 janvier 14

Principe gnral
SHA-1 et MD5 sont construites sur le mme principe. Elles invoquent une fonction de compression f(mi,s) qui prend un bloc du message mi et une valeur s pour fournir une empreinte de la taille dsire. mi est un bloc du message de 512 bits tandis que s contient 160 bits. Au dpart, le message m est divis en t+1 blocs de 512 bits chacun. Un remplissage de 0 suivi de la longueur de m en binaire est ajout. La valeur s0=cste, et pour chaque bloc i=1..t+1 la valeur si=f(mi,si-1) est calcule. La valeur nale est st+1. Soit H la fonction rsultante.

vendredi 24 janvier 14

Principe gnral
SHA-1 et MD5 sont construites sur le mme principe. Elles invoquent une fonction de compression f(mi,s) qui prend un bloc du message mi et une valeur s pour fournir une empreinte de la taille dsire. mi est un bloc du message de 512 bits tandis que s contient 160 bits. Au dpart, le message m est divis en t+1 blocs de 512 bits chacun. Un remplissage de 0 suivi de la longueur de m en binaire est ajout. La valeur s0=cste, et pour chaque bloc i=1..t+1 la valeur si=f(mi,si-1) est calcule. La valeur nale est st+1. Soit H la fonction rsultante. Trouver une collision sur la fonction totale H implique quune collision peut tre trouve pour f.

vendredi 24 janvier 14

Principe gnral
SHA-1 et MD5 sont construites sur le mme principe. Elles invoquent une fonction de compression f(mi,s) qui prend un bloc du message mi et une valeur s pour fournir une empreinte de la taille dsire. mi est un bloc du message de 512 bits tandis que s contient 160 bits. Au dpart, le message m est divis en t+1 blocs de 512 bits chacun. Un remplissage de 0 suivi de la longueur de m en binaire est ajout. La valeur s0=cste, et pour chaque bloc i=1..t+1 la valeur si=f(mi,si-1) est calcule. La valeur nale est st+1. Soit H la fonction rsultante. Trouver une collision sur la fonction totale H implique quune collision peut tre trouve pour f. Sil est difcile de trouver une collision pour f alors il est aussi difcile den trouver une pour H...
vendredi 24 janvier 14

Fonctionnement de SHA-1

vendredi 24 janvier 14

Fonctionnement de SHA-1

vendredi 24 janvier 14

Fonctionnement de SHA-1

160 bits

vendredi 24 janvier 14

Fonctionnement de SHA-1
Au dpart, A,B,C,D,E sont des constantes de 32 bits. F est une fonction non linaire (il y en a 4) et <<<<n indique un dcalage gauche de n positions.

160 bits

vendredi 24 janvier 14

Fonctionnement de SHA-1
Au dpart, A,B,C,D,E sont des constantes de 32 bits. F est une fonction non linaire (il y en a 4) et <<<<n indique un dcalage gauche de n positions. Dbute en ajoutant un 1 la n suivi de 0 et de la longueur du message. Le nombre de 0 permet davoir un multiple de 512 bits. L'algorithme travaille successivement sur les blocs de 512 obtenus.

160 bits

vendredi 24 janvier 14

Fonctionnement de SHA-1
Au dpart, A,B,C,D,E sont des constantes de 32 bits. F est une fonction non linaire (il y en a 4) et <<<<n indique un dcalage gauche de n positions. Dbute en ajoutant un 1 la n suivi de 0 et de la longueur du message. Le nombre de 0 permet davoir un multiple de 512 bits. L'algorithme travaille successivement sur les blocs de 512 obtenus. SHA-1 fonctionne en 80 rondes. La fonction non linaire F applique dpend du numro de squence de la ronde.

160 bits

vendredi 24 janvier 14

Fonctionnement de SHA-1
Au dpart, A,B,C,D,E sont des constantes de 32 bits. F est une fonction non linaire (il y en a 4) et <<<<n indique un dcalage gauche de n positions. Dbute en ajoutant un 1 la n suivi de 0 et de la longueur du message. Le nombre de 0 permet davoir un multiple de 512 bits. L'algorithme travaille successivement sur les blocs de 512 obtenus. SHA-1 fonctionne en 80 rondes. La fonction non linaire F applique dpend du numro de squence de la ronde. Les valeurs A,B,C,D,E sont modies en fonction des 512 bits de lentre courante Wt. Kt est la constante de ronde. Les additions (carres) sont modulo 232.

160 bits

vendredi 24 janvier 14

Vous aimerez peut-être aussi