INFO006

Transcription

INFO006
INFO006 (ex INFO913) - Cryptologie et Sécurité
Informatique
Master 2 ISC
Jacques-Olivier Lachaud1
1 Laboratoire
de Mathématiques — Université de Savoie
janvier 2011
J.-O. Lachaud (LAMA)
INFO006
1 / 183
Introduction
INFO006 : Cryptologie et sécurité informatique
Eléments abordés
I
I
introduction à la sécurité informatique
cryptologie : principes et mise en oeuvre
Evaluation
1
2
contrôle continu : 2 TPs
exposé sur un thème précis
Déroulement : Cours (8 × 1, 5h), TD (2 × 1, 5h), TP (3 × 3h)
http ://www.lama.univ-savoie.fr, et rajouter /wiki, suivre INFO006
J.-O. Lachaud (LAMA)
INFO006
2 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
Définitions et exemples
Sécurité
Criminalité informatique
Apports de la cryptographie à la sécurité
2
Cryptosystèmes et science de la cryptologie
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
3 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
Définitions et exemples
Sécurité
Criminalité informatique
Apports de la cryptographie à la sécurité
2
Cryptosystèmes et science de la cryptologie
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
4 / 183
Sécurité informatique
Ensemble des moyens techniques, organisationnels, juridiques et
humains nécessaires et mis en place pour conserver, rétablir, et
garantir la sécurité de l’information, du système d’information et des
systèmes et ressources informatiques.
Notamment, on veut préserver
I
I
I
l’intégrité de l’information
la confidentialité de l’information
la disponiblité des systèmes
Systèmes informatiques soumis à des menaces
I
I
I
I
utilisateur du système
personne malveillante
programme malveillant
sinistre (vol, incendie, dégât des eaux)
J.-O. Lachaud (LAMA)
INFO006
5 / 183
Cryptographie et cryptanalyse
[Source Wikipedia]
Definition (Cryptographie)
La cryptographie est une des disciplines de la cryptologie s’attachant à
protéger des messages (assurant confidentialité, authenticité et intégrité)
en s’aidant souvent de secrets ou clés.
Definition (Cryptanalyse)
La cryptanalyse s’oppose, en quelque sorte, à la cryptographie. En effet, si
déchiffrer consiste à retrouver le clair au moyen d’une clé, cryptanalyser
c’est tenter de se passer de cette dernière.
Cryptographie : outil pour la sécurité informatique
J.-O. Lachaud (LAMA)
INFO006
6 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
Définitions et exemples
Sécurité
Criminalité informatique
Apports de la cryptographie à la sécurité
2
Cryptosystèmes et science de la cryptologie
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
7 / 183
Critères de sécurité
Mise en place de solutions de sécurité pour satisfaire
disponibilité : probabilité de bon fonctionnement, accessibilité, continuité
de service
intégrité : certification de la non-altération des données, traitements et
services
confidentialité : protection des données contre une divulgation non
autorisée
authentification : vérification de l’identité de l’utilisateur et de ses
autorisations
non-répudiation : imputabilité, traçabilité, auditabilité
J.-O. Lachaud (LAMA)
INFO006
8 / 183
Domaines d’intervention de la sécurité
sécurité physique
environnement humain (politique de sécurité, éducation, charte)
environnement matériel (incendie, dégâts des eaux, protection des
salles, sauvegardes, alimentations électriques)
sécurité de l’exploitation
hôte (système d’exploitation à jour, authentification)
sécurité logique
données (accès aux fichiers, autorisations, chiffrements, sauvegarde)
sécurité applicative
applications (virus, chevaux de troie, espiogiciels, spam, restrictions et
localisations des applications)
sécurité des télécommunications
réseau interne (protocoles sécurisés, dimensionnement)
alentours (pare-feu, vpn, nomadisme)
J.-O. Lachaud (LAMA)
INFO006
9 / 183
Menaces informatiques
menace : action susceptible de nuire
vulnérabilité ou faille : niveau d’exposition face à une menace dans un
certain contexte
contre-mesure ou parade : ensemble des actions mises en oeuvres en
prévention d’une menace
attaque : exploitation d’une faille (d’un syst info) à des fins non
connus de l’exploitant du système et généralement
préjudiciables
en permanence sur Internet par machines infectées
rarement pirates
J.-O. Lachaud (LAMA)
INFO006
10 / 183
Motivations des attaques
intrusion dans le système
vol d’informations industrielles (brevets), personnelles (bancaires),
commerciales (contrats), organisationnelles
troubler le bon fonctionnement d’un service (déni de service, defacing)
utiliser le système comme rebond pour une autre attaque
utiliser les ressources d’un système (ex : bonne bande passante)
J.-O. Lachaud (LAMA)
INFO006
11 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
Définitions et exemples
Sécurité
Criminalité informatique
Apports de la cryptographie à la sécurité
2
Cryptosystèmes et science de la cryptologie
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
12 / 183
Crime informatique, cybercrime
Crime informatique : délit où le système informatique est l’objet du
délit et/ou le moyen de le réaliser.
Cybercrime : forme du crime informatique qui utilise Internet
en 2007, la cybercriminalité pèse 7,1 milliards de dollars aux USA
en 2009, assignement en justice pour 559 millions de dollars aux USA
(×2 en deux ans)
Typologie : malveillance, erreur, accident
Cibles : états, organisations, individus
Vol d’identité, Chantage, Fraude financière, détournements de fonds,
vol de biens virtuels, atteinte à la dignité, dénonciation calomnieuses,
espionnage, cyberterrorisme, désinformation, apologies de crimes,
escroqueries, atteinte aux mineurs, atteinte à la vie privée, incitation à
la haine raciale, . . .
J.-O. Lachaud (LAMA)
INFO006
13 / 183
Internet : un facteur aggravant
dématérialisation des acteurs du délit, des objets du délit
vulnérabilité : complexité des infrastructures informatique et réseaux
automatisation, réalisation à grande échelle ⇒ ubiquité, anonymat
immatérialité : information numérique peut être détruite, modifiée,
usurpée
disponibilité d’outils, paradis numériques
dépendance des états/organisations à l’informatique ⇒ facteur de
risque ⇒ cyberterrorisme
J.-O. Lachaud (LAMA)
INFO006
14 / 183
Typologie des attaques
accès physique : coupure électricité, vol de disque dur, écoute traffic
réseau, récupération de matériels
interception de communications : vol de session, usurpation d’identité,
détournement de messages
polupostage ou spam (98 % des mails)
dénis de services : faiblesse de protocoles TCP/IP, vulnérabilité de
logiciels serveurs
intrusions : maliciels (virus, vers, chevaux de Troie), balayage de ports,
élévation de privilèges, débordements de tampon
trappes : porte dérobée dans un logiciel
ingénierie sociale : contact direct de l’utilisateur
attention aux attaques par rebond : l’utilisateur “complice” peut voir
sa responsabilité engagée.
J.-O. Lachaud (LAMA)
INFO006
15 / 183
Logiciels malveillants : Virus, Vers, troyens I
Virus Tout programme capable d’infecter un autre programme en le
modifiant de façon à ce qu’il puisse se reproduire
Brain (premier sur PC en 1986), Netsky (2004, lit fichiers
EML, HTML pour se propager par email), Sobig-F (2003,
contient un serveur SMTP)
Infecte : Programmes, documents, secteurs de boot
Ver (Worm) Programme se propageant à travers le réseau
Blaster (Août 2003, faiblesse RPC Windows), Welchia (qqs
jours après, élimine Blaster)
Troyen ou Cheval de Troie Programme à l’apparence utile mais cachant du
code pour créer une faille dans le système (backdoor)
BackOrifice, GrayBird (soi-disant nettoyeur de Blaster)
Porte dérobée (ou backdoor) Fonctionnalité inconnue de l’utilisateur, qui
donne un accès secret au logiciel/système
Trusting Trust (1984), noyau Linux (2003)
J.-O. Lachaud (LAMA)
INFO006
16 / 183
Logiciels malveillants : Virus, Vers, troyens II
Machine zombie ordinateur contrôlé à l’insu de son utilisateur par un pirate
informatique (suite à une infection par ver/cheval de troie).
Sert de rebond.
Botnet Réseau de machines zombies. Utile pour lancer des attaques
de déni de service ou spams
Bombes logiques Programme se déclencheant suite à un événement
particulier (date, signal distant)
CIH/Chernobyl (déclenchement 26 avril 1999, 26 avril 1986)
Virus mutants réécriture de virus existants
Virus polymorphes modifie son apparence, pour ne pas être reconnu
Rétro-Virus attaque les signatures des antivirus
Virus boot Virus s’installant sur un secteur d’amorçage (disquette,
disque)
J.-O. Lachaud (LAMA)
INFO006
17 / 183
Logiciels malveillants : Virus, Vers, troyens III
Virus d’applications (ou de document/macros) Programme infectant un
document contenant des macros, exécutable par une
application : VBScript
Concept (1995), Bubbleboy (1999, affichage du mail)
Antivirus Logiciel de détection et d’éradication de virus et vers
Méthodes : dictionnaires, heuristiques, comportements
suspects, émulation (bac-à-sable)
scanneurs sur accès : examine les fichiers/programmes à
chaque accès
scanneurs à la demande : examine les
disques/fichiers/programmes suite à une demande
J.-O. Lachaud (LAMA)
INFO006
18 / 183
Spywares : espiogiciels I
Espiogiciel Programme collectant des données sur un utilisateur, les
envoyant à une société en général pour du profilage
souvent avec des freewares ou sharewares
intégrés (PKZip, KaZaA, Real Player) ou externes
souvent légaux (dans la licence)
parades : ne pas installer de logiciels ( !), antisypwares,
firewall
keylogger enregistreur de touches : enregistrement des touches à l’insu
de l’utilisateur. dispositif d’espionnage. Souvent un logiciel.
J.-O. Lachaud (LAMA)
INFO006
19 / 183
Spywares : espiogiciels II
dongle version hardware (ex : KeyKatch)
J.-O. Lachaud (LAMA)
INFO006
20 / 183
Logiciels malveillants : Quelques statistiques I
[Source Rapport Sophos 2005 sur la gestion des menaces à la sécurité]
I
I
I
I
I
I
vandalisme ludique cède la place à la criminalité organisée
1 message sur 44 infecté par un virus (fin nov 2005, 1 sur 12, ver
Sober-Z)
Fin décembre 2005 : BD Virus Sophos a 114000 virus, vers et autres,
15900 nouveaux en 2005
Méthodes de propagation : connexion directe via le réseau 66,8 %,
pièces jointes 15,1%, chat 9,2 %, poste à poste (P2P) 4,5%,
navigation web 2,4%
Windows est la cible (plus que) majoritaire
Ordinateur équipé de Windows sans protection : risque de
contamination 95% au bout d’une heure (SOPHOS)
http://www.sophos.com/security/top-10/
http://www.symantec.com/
J.-O. Lachaud (LAMA)
INFO006
21 / 183
Quelques questions relatives à la sécurité I
Quels sont vos droits et devoirs vis-à-vis du système informatique de
l’université ? Participez-vous à sa sécurité ?
Quelles sont les données ou applications les plus critiques de
l’université ?
Y a-t-il un risque d’infection en laissant simplement son ordinateur
allumé connecté par Internet ?
Pourquoi ne peut-on fermer une machine à toute communication
extérieure ?
Est-ce qu’un téléphone mobile peut être infecté ?
Est-ce qu’un routeur peut être infecté ?
Est-ce qu’une télévision peut être infectée ?
Comment un programme malicieux fait-il pour se rendre invisible après
infection ?
J.-O. Lachaud (LAMA)
INFO006
22 / 183
Quelques questions relatives à la sécurité II
Comment un virus fait-il pour ne pas infecter deux fois le même
fichier ?
Quelles sont les motivations qui conduisent une personne à écrire un
logiciel malveillant ?
J.-O. Lachaud (LAMA)
INFO006
23 / 183
Menaces nouvelles I
Social engineering usage de ressorts psychologiques pour obtenir d’un tiers
information ou données ⇒ fraude, intrusion réseau,
espionnage industriel, vol d’identité.
Phishing/hameçonnage Arnaques via internet, usurper une identité fiable
(genre banque), redirection vers site pirate ⇒ données
bancaires, mots de passe
J.-O. Lachaud (LAMA)
INFO006
24 / 183
Menaces nouvelles II
http://[email protected]/
http://www.mabanque.com.unsite.net/
Pharming (empoisonnement DNS) exploite une vulnérabilité pour
rediger le trafic Internet d’un site Web vers un autre.
Complémentaire de chevaux de Troie, spywares et phishing.
Exemple : americanexpress.com, fedex.com, msn.com,
Trendmicro.com (vulnérabilités dans le serveur DNS de
Windows NT4 et Windows 2000, depuis corrigées).
Slamming fausse facture de renouvellement de nom de domaine et
contrainte pour l’achat de noms de domaines proches, faux
annuaires professionnels
J.-O. Lachaud (LAMA)
INFO006
25 / 183
Menaces nouvelles III
Vishing (VoIP + phishing). Serveurs VoIP appelant des numéros
fixes, redirection vers boîte vocale informant d’anomalie,
invitation à contacter un serveur vocal où il donnera ses
coordonnées bancaires.
Ransomwares code malveillant (virus ou cheval de troie) cryptant certaines
données, exige une rançon après pour le déchiffrement.
Exemple : Gpcode, scanne .xls .doc .txt .rtf ...
Cross Site Scripting (XSS) vulnérabilités dans serveur/app WEB pour
insérer du code dans une page html renvoyée dynamiquement
Redirection vers un autre site, vol d’identifiant de session
Injection de code vulnérabilités dans serveurs/apps (SQL, WEB/XSS,
LDAP
SELECT * FROM utilisateurs WHERE nom="\$nom";
// Saisie de : toto" OR 1=1 OR nom="titi
SELECT * FROM utilisateurs WHERE nom="toto" OR 1=1 OR nom="titi";
J.-O. Lachaud (LAMA)
INFO006
26 / 183
Organismes liés à la sécurité informatique I
CERTs : Computer Emergency Response Team
CERTA : Centre d’Expertise Gouvernemental de Réponse et de
Traitement des Attaques informatiques
[http ://www.certa.ssi.gouv.fr]
Publie des alertes, ainsi que des bulletins hebdomadaires d’actualité
Exemple de bulletin d’alerte
[http ://www.certa.ssi.gouv.fr/site/CERTA-2009-ALE-016/CERTA-2009-ALE-016.html]
Portail gouvernemental de la sécurité
[http ://www.securite-informatique.gouv.fr]
J.-O. Lachaud (LAMA)
INFO006
27 / 183
Chiffres et évolutions des menaces I
Pertes et typologie des plaintes référencées par l’I3C (USA)
J.-O. Lachaud (LAMA)
INFO006
28 / 183
Chiffres et évolutions des menaces II
J.-O. Lachaud (LAMA)
INFO006
29 / 183
Chiffres et évolutions des menaces III
I
I
Plus de 60% des plaintes portent sur moins de 1000 $ (en 2009)
Plus de 87% des plaintes portent sur moins de 5000 $ (en 2009)
J.-O. Lachaud (LAMA)
INFO006
30 / 183
Chiffres et évolutions des menaces IV
Evolution des menaces informatiques dans le monde de 2004 à 2005
Menaces
Attaques 2004 Attaques 2005
Phishing
18,0 %
25,0 %
Virus et vers
68,6 %
66,6 %
[Source CompTIA]
Nombres d’incidents rapportés au CERT
1998 1999
2000
2001
2002
2003
5000 11000 22000 53000 85000 138000
vulnérabilités répertoriées par les CERTs
2003 2004 2005 2006 2007
nombre
3784 3780 5990 8064 7236
rapports directs 191
170
213
345
357
Parades :
I
I
I
I
2008
6058
310
Formation utilisateurs
Antivirus et/ou antispyware
Filtre antiphishing
Contrôler les certificats des sites
J.-O. Lachaud (LAMA)
INFO006
31 / 183
Politique de sécurité
Politique de sécurité
Gestion des identités, des profils utilisateurs, des
droits d’accès
Prévention des intrusions et malveillances, gestion des
vulnérabilités, dissuasion, etc.
Gestion des crises, des sinistres, des plans de continuité, de reprise, d’intervention, de poursuite, . . .
Audit, évaluation, optimisation, contrôle, surveillance
sensibilisation
Politique
de
contrôle d’accès
Politique de protection
Politique de réaction
Politique de suivi
Politique d’assurance
+ respect des contraintes réglementaires et législations
+ équilibre coût, performance, convivialité
Méthodes standards : Marion, Méhari cf. CLUSIF
[http ://www.clusif.asso.fr]
J.-O. Lachaud (LAMA)
INFO006
32 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
Définitions et exemples
Sécurité
Criminalité informatique
Apports de la cryptographie à la sécurité
2
Cryptosystèmes et science de la cryptologie
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
33 / 183
Cryptographie et critères de sécurité
Satisfaire les objectifs de sécurité via la cryptographie : confidentialité,
intégrité, Authentification, non-répudiation, disponibilité ?
Outils
1
2
3
4
chiffrements à clé secrète partagée
chiffrements à clé public
signatures
fonctions de hachage
Applications : sécurité logique (données), sécurité des transmissions,
sécurité de l’exploitation
peu en sécurité applicative
J.-O. Lachaud (LAMA)
INFO006
34 / 183
Chiffrement symétrique ou à clé secrète I
Chiffrement symétrique ou à clé secrète
confidentialité : clé secrète K partagée entre 2 personnes
chiffrer : transforme un message clair M en un message chiffré
C = eK (M) avec K
déchiffrer : transforme un message chiffré C en un message clair
M = dK (C ) avec K
algorithmes chiffrement e / déchiffrement d publics
contraintes : difficile de déduire M de C sans K
en clair
J.-O. Lachaud (LAMA)
chiffré
INFO006
35 / 183
Chiffrement symétrique ou à clé secrète II
confidentialité des données pour une personne
authentification de l’expéditeur si K est resté secret
Exemples : DES, 3DES, blowfish, IDEA, AES
Utilisés dans : SSH, SSL/TLS, WiFi (IEEE 802.11i), VPN/IPsec
Avantages
Inconvénients
J.-O. Lachaud (LAMA)
rapidité du chiffrement/déchiffrement
échange de K par un autre canal, dialogue
entre n personnes nécessitent bcp de clés
INFO006
36 / 183
Cryptographie asymétrique ou à clé publique I
Chiffrement asymétrique ou à clé publique
confidentialité : vers tout destinataire (clé publique P, clé secrète S)
chiffrer : message clair M en message chiffré C avec clé publique eP
déchiffrer : message chiffré C en message clair M avec clés dP,S
algorithmes chiffrement e / déchiffrement d publics
Chiffrement asymétrique : une communication non secrète permet de
véhiculer une information que seul le destinataire peut comprendre.
idée [Diffie-Hellman 1976], RSA [Rivest, Shamir, Adleman 1977]
Contrainte : difficile de déduire dP,S de eP
J.-O. Lachaud (LAMA)
INFO006
37 / 183
Cryptographie asymétrique ou à clé publique II
Avantages
Inconvénients
une seule clé secrète pour n expéditeurs, pas
de canal secret
lenteur, pas d’authentification de la source,
attaque Man-In-The-Middle
Très utile pour échanger les clés pour ouvrir un tunnel de
communication chiffré (VPN, TLS/SSL). Uilisés aussi dans PGP.
Nécessité de protocoles d’échanges de clé (IKE pour IPsec)
Exemples : RSA [1977] (factorisation), chiffrement ElGamal [1985]
(logarithme discret), Merkle-Hellman [1978] (sac-à-dos)
J.-O. Lachaud (LAMA)
INFO006
38 / 183
Signatures numériques I
Signature ou sceau [Diffie et Hellman (1976)]
prouver identité de l’expéditeur (non-répudiation) et intégrité du
message
expéditeur (clé publique P, clé privée S)
signer (privé) : fonction sigP,S . Signature S ← sigP,S (M) où M est un
message ou un défi
vérifier (public) : fonction verP . Booléen b ← verP (M, S).
contraintes : empêcher l’usurpation, la non-reconnaissance
I
I
I
I
calculable par le signataire ∀M
le destinataire (et tout individu) peut vérifier la signature
non falsifiable
non imitable
Exemple : signature RSA
J.-O. Lachaud (LAMA)
INFO006
39 / 183
Signatures numériques II
I
I
signer sigP,S est le déchiffrement dP,S
L’expéditeur donne M et S ← sigP,S (M).
vérifier verP est le chiffrement eP suivi d’une comparaison
Le destinataire calcule M 0 ← eP (S) = eP (dP,S (M)) et vérifie M = M 0
Exemples : PGP, RSA, signature ElGamal/DSA
Utilisation : SSL, S-MIME
Avantages
Inconvénients
J.-O. Lachaud (LAMA)
non-répudiation d’un message. En théorie, découpage en blocs d’un message + signatures
de chaque bloc garantit l’intégrité.
Trop coûteux en pratique.
INFO006
40 / 183
Fonctions de hachage et empreinte I
fonction de hachage et empreinte
garantir l’intégrité d’un message M par calcul d’une empreinte
hachage : message M hachée en une empreinte E = h(M) de taille
fixée
vérification intégrité : message reçu M 0 , h(M 0 ) = E ?
contraintes : hachage rapide, à sens unique et à collision difficile
Exemples : MD5, SHA-1, DSA
Utilisation : garantir l’intégrité d’une communication (SSL), de mails
(S-MIME), de fichiers ou du système (antivirus)
J.-O. Lachaud (LAMA)
INFO006
41 / 183
Fonctions de hachage et empreinte II
Intégrité et authentification
message M d’un expéditeur de clés (P,S)
signature de l’empreinte Z ← sigP,S (h(M))
vérification de l’intégrité par le destinataire
1
2
3
Recevoir M 0 ,
le hacher h(M 0 ),
puis vérifier verP (h(M 0 ), Z ) = vrai
J.-O. Lachaud (LAMA)
INFO006
42 / 183
Authentification I
Attaque Man-in-the-Middle (chiffrement asymétrique)
Authentification : vérifier identité présumée d’une personne
J.-O. Lachaud (LAMA)
INFO006
43 / 183
Authentification II
Authentification par Autorité de Certification (AC)
autorité de certification (AC) : organisme garant (clés PAC , SAC )
légitimer la clé publique PA d’une personne
1
2
3
émetteur A émet son identité IdA et sa clé publique PA à une AC
AC vérifie l’identité de A
calcule et publie un certificat signé par l’AC :
ZA,AC ← sigPAC ,SAC (h(IdA , PA ))
authentification de A par l’utilisateur B
1
2
3
4
B reçoit identifiants, clé publique de A0
compare ce qu’il reçoit : h(IdA0 , PA0 )
et l’autorité de certification : verPAC (h(IdA0 , PA0 ), ZA,AC )
et teste l’égalité
évite Man-in-the-Middle
Mais quid de l’autorité de certification ?
J.-O. Lachaud (LAMA)
INFO006
44 / 183
Disponibilité I
cryptologie : influence indirecte sur la disponibilité
Contraintes fortes peu conciliables
I
I
architecture sécurisée transparente : confidentialité sans mot de passe !
QoS implique rapidité des mécanismes de chiffrement et déchiffrement
Gains possibles de qualité de service :
I
en identifiant mieux les sources/demandeurs de ressource
J.-O. Lachaud (LAMA)
INFO006
45 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
Définitions et objectifs
Cryptographie historique
Sûreté d’un chiffrement, Théorie de Shannon, secret parfait
Cryptosystèmes à clé secrète partagée
Cryptosystèmes à clé publique
Hachages et schémas de signatures
Certificats, gestion des clés
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
46 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
Définitions et objectifs
Cryptographie historique
Sûreté d’un chiffrement, Théorie de Shannon, secret parfait
Cryptosystèmes à clé secrète partagée
Cryptosystèmes à clé publique
Hachages et schémas de signatures
Certificats, gestion des clés
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
47 / 183
cryptosystème I
J.-O. Lachaud (LAMA)
INFO006
48 / 183
cryptosystème II
Definition (cryptosystème)
Un système cryptographique est un quintuplet (P, C, K, E, D) où
1
P : ensemble des textes clairs possibles,
2
C : ensemble des textes chiffrés possibles,
3
K : espace des clés, ensemble des clés possibles,
4
Pour toute clé K dans K, il existe une règle de chiffrement eK ∈ E et
une règle de déchiffrement correspondante dK ∈ D.
I
I
I
eK : P → C
dK : C → P
Pour tout texte clair x ∈ P, dK (eK (x)) = x.
Chaque fonction de chiffrement doit être injective. Pourquoi ?
Si P = C, chaque fonction de chiffrement est une permutation.
J.-O. Lachaud (LAMA)
INFO006
49 / 183
Principe de la cryptographie, cryptanalyse I
Considérations pratiques
I
I
I
les fonctions eK et dK doivent pouvoir se calculer efficacement
un opposant observant les messages chiffrés y ne peut déterminer K ou
x
cryptanalyse : rechercher K à partir de y. Donnera aussi x
algorithme public, clé cachée : principe de Kerckhoffs (1883)
I
I
I
I
la sécurité d’un cryptosystème ne repose que sur le secret de la clé.
autres paramètres connus (e et d )
exprimé aussi par Shannon : l’adversaire connaît le système
chiffres civils suivent le principe de Kerckhoffs. Militaires utilisent des
systèmes secrets. NB : chiffrage A5/1 des mobiles GSM non divulgué
au début (1987), divulgué en 1994.
le nombre de clés possibles doit être grand.
Pourquoi de tels principes pour la sécurité informatique ?
J.-O. Lachaud (LAMA)
INFO006
50 / 183
Résumé des outils I
arithmétique modulo (ex : caractères modulo 26, bits modulo 2)
chiffrement eK , déchiffrement dK à clé secrète K
chiffrement public eK , déchiffrement privé dK
signature privée sigK , vérification publique verK
fonction de hachage h publique, empreinte privée sigK (h(x))
J.-O. Lachaud (LAMA)
INFO006
51 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
Définitions et objectifs
Cryptographie historique
Sûreté d’un chiffrement, Théorie de Shannon, secret parfait
Cryptosystèmes à clé secrète partagée
Cryptosystèmes à clé publique
Hachages et schémas de signatures
Certificats, gestion des clés
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
52 / 183
Chiffrements monoalphabétiques I
quelques grands noms : Al-Kindi (801-873), Alberti (1404-1472),
Vigenère (1523-1596), Porta (1535-1615), Babbage (1792-1872),
Kerckhoffs (1835-1903), Turing (1912-1954)
chiffre de substitution : remplacer les lettres ou les mots par d’autres
symboles
On appelle chiffrement monoalphabétique ou substitution simple, un
chiffre où chaque lettre est remplacée par une autre lettre ou symbole.
chiffre de César (cf. Vies des douze Césars de Suétone)
a b c d e f g h i j k l m n o p q r s t u v w x y z
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
chiffredecesar
FKLIIUHGHFHVDU
J.-O. Lachaud (LAMA)
INFO006
53 / 183
Chiffrements monoalphabétiques II
Si on code A − Z dans Z26 , alors y = x + 3 mod 26 et x = y − 3
mod 26.
Definition (Cryptosystème par décalage)
Soient P = C = K = Z26 . Pour 0 ≤ K < 26, on définit
eK (x) = x + K mod 26, dK (y ) = y − K mod 26.
Exercices :
I
I
Quelle est l’espace des clés du chiffre par décalage ?
Quel est le texte clair de TMKBM CZXIQ AQJTM MBJCK WTQYC
M?
J.-O. Lachaud (LAMA)
INFO006
54 / 183
Chiffrements monoalphabétiques III
Chiffrement par substitution
Definition (Cryptosystème par substitution)
Soient P = C = Z26 . Soit K l’ensemble des permutations sur les nombres
0, 1, . . . , 25. Pour chaque π ∈ K, on définit
eK (x) = π(x), dK (y ) = π −1 (y ).
Exercices :
I
I
Quelle est l’espace des clés de ce chiffrement ?
Est-ce qu’une recherche exhaustive est envisageable ?
Un autre exemple est le chiffrement affine eK (x) = ax + b mod 26,
pour des clés K = (a, b) avec pgcd(a, 26) = 1.
I
I
Montrez que résoudre ax + b ≡ y (mod 26) est équivalent à résoudre
ax ≡ y (mod 26)
Supposez pgcd(a, 26) = d > 1 et montrez que ax ≡ 0(mod 26) a au
moins deux solutions. eK peut-il être alors injectif ?
J.-O. Lachaud (LAMA)
INFO006
55 / 183
Chiffrements monoalphabétiques IV
I
I
I
Supposez pgcd(a, 26) = 1 et supposez ∃x1 , x2 tq ax1 ≡ ax2 (mod 26).
En déduire 26 divise (x1 − x2 ), ce qui montre que x1 ≡ x2 (mod 26). ek
est-il alors injectif ?
En déduire que l’équation ax ≡ y (mod 26) admet une solution unique.
Le chiffrement affine est bien un cryptosystème.
Si a−1 est l’inverse de a, en déduire que dK (y ) ≡ a−1 (y − b)(mod 26)
Exercices :
I
I
Montrer que K = (7, 3) induit un chiffrement affine dans Z26 . Quel est
sa fonction de déchiffrement ?
Combien y a-t-il de clés possibles ?
J.-O. Lachaud (LAMA)
INFO006
56 / 183
Chiffrements polyalphabétiques I
Un chiffrement polyalphabétique peut remplacer une lettre par une autre
lettre qui n’est pas toujours la même. Cryptanalyse plus difficile.
Definition
Chiffrement de Vigenère Soit m > 0 et P = C = K = (Z26 )m . Pour la clé
K = (k1 , k2 , . . . , km ), on définit
eK (x1 , x2 , . . . , xm ) = (x1 + k1 , x2 + k2 , . . . , xm + km )
dK (y1 , y2 , . . . , ym ) = (y1 − k1 , y2 − k2 , . . . , ym − km )
On note que le message clair est découpé en bloc de m lettres. Les clés
comme les messages sont traduits de l’alphabet a-z vers les nombres 0-25.
jadoree couterl aradiot outelaj ournee
+ MUSIQUE MUSIQUE MUSIQUE MUSIQUE MUSIQU
= VUVWHYI OIMBULP MLSLYIX AOLMBUN AOJVUY
J.-O. Lachaud (LAMA)
INFO006
57 / 183
Chiffrements polyalphabétiques II
chiffrement par permutation (mélange de m lettres consécutives par
une permutation/clé)
chiffrement de Hill (multiplication par une matrice m × m inversible
dans Z26 )
J.-O. Lachaud (LAMA)
INFO006
58 / 183
Cryptanalyse et analyse des fréquences I
Cryptanalyse : déterminer la clé K connaissant l’algorithme
I
I
I
I
texte chiffré connu (y ) : écoute
texte clair connu (x,y ) : écoute + message connu (ex : protocole de
communication)
texte clair choisi (accès à la machine chiffrante émettrice)
texte chiffré choisi (accès à la machine déchiffrante réceptrice)
Cryptanalyse par analyse des fréquences (Al Kindi)
A
08,40
J
0,31
S
08,08
B
01,06
K
0,05
T
07,07
C
03,03
L
06,01
U
05,74
D
04,18
M
02,96
V
01,32
E
17,26
N
07,13
W
0,04
F
01,12
O
05,26
X
0,45
G
01,27
P
03,01
Y
0,30
H
0,92
Q
0,99
Z
0,12
I
07,34
R
06,55
Fig.: Fréquences des lettres en français (non accentué)
I
lettres (fr) : E, (A, S), (I,N,T,R), LUODCPMVGFBQHXJYZKW
J.-O. Lachaud (LAMA)
INFO006
59 / 183
Cryptanalyse et analyse des fréquences II
I
I
I
I
I
I
I
bigrammes (fr) : ES, (DE, LE, EN), (RE, NT, ON, ER, TE), . . .
trigrammes (fr) : ENT, LES, (EDE, DES, QUE), AIT, . . .
S’applique aux chiffrements mono-alphabétiques
Chiffre par décalage en deux trois essais
Chiffre affine en quelques essais aussi.
Chiffre par substitution si texte suffisamment long. On utilise aussi les
bigrammes, trigrammes pour orienter la recherche.
http://www.lexique.org/listes
J.-O. Lachaud (LAMA)
INFO006
60 / 183
Cryptanalyse du chiffre de Vigenère I
KQOWE
NCMUE
YGFFN
GUYTS
FVJPU
KQCTE
SXCSE
MTFFS
JUUNU
SWREE
YNCTS
HNUOC
KGLME
KOYSS
SPNTU
ZGMRU
KJINM
IWCTU
JNYTG
WEYTR
WUXFQ
AXYOT
GWZGR
GKMEE
MKJBG
APXPL
WUUNE
DCTVR
WRLFN
WPNTC
JUUQE
ECFBD
FGHUD
GOJBG
APYME
JQCUS
WUUMB
FQHTD
KQHUI
WVBPN
SVLPS
WXIZA
DUXFP
...
[Test de Kasiski (1863)]
Si m est la longueur de la clé, alors une même partie du texte à δ
d’intervalle est chiffrée de la même manière ssi δ ≡ 0(mod m).
On cherche des paires de segments de taille suffisante (≥ 3) : δ1 , δ2 , . . .
Il est probable que leur pgcd est m ou un multiple de m.
On peut vérifier a posteriori cette valeur par l’indice de coïncidence.
J.-O. Lachaud (LAMA)
INFO006
61 / 183
Cryptanalyse du chiffre de Vigenère II
[Source http ://www.apprendre-en-ligne.net]
J.-O. Lachaud (LAMA)
INFO006
62 / 183
Cryptanalyse du chiffre de Vigenère III
J.-O. Lachaud (LAMA)
INFO006
63 / 183
Cryptanalyse du chiffre de Vigenère IV
Souvent pour s’amuser les hommes d’équipage prennent des albatros, vastes oiseaux des mers, qui suivent, indolents
compagnons de voyage, le navire glissant sur les gouffres amers. A peine les ont-ils déposés sur les planches que ces
rois de l’azur, maladroits et honteux, laissent piteusement leurs grandes ailes blanches, comme des avirons, traîner à
côté d’eux. Ce voyageur ailé, comme il est gauche et veule, lui naguère si beau, qu’il est comique et laid. L’un agace
son bec avec un brûle-gueule, l’autre mime en boitant l’infirme qui volait. Le poète est semblable au prince des
nuées, qui hante la tempête et se rit de l’archer.
Definition (Indice de coïncidence (Friedman 1920))
Soit x = x1 x2 . . . xn une chaîne de n lettres. L’indice de coïncidence de x,
noté Ic (x) est la probabilité que deux lettres aléatoires de x soit identique.
Espace des tirages X = {{xi , xj }, i 6= j}
Card(X ) = n2
Evénement Ea : xi et xj valent la même lettre a
Si le nombre d’occurence de a dans x est fa , alors Card(Ea ) =
J.-O. Lachaud (LAMA)
INFO006
fa
2
64 / 183
Cryptanalyse du chiffre de Vigenère V
Probabilité de Ea : Pr[Ea ] =
D’où Ic (x) =
P25
a=0 Pr[Ea ]
=
P
{xi ,xj }∈Ea
Pr[{xi , xj }] =
fa
2
×
1
(n2)
fa (fa −1)
a=0 n(n−1) .
P25
En utilisant les tables de fréquences, fa ≈ nPr[a]
fr : Ic (x) = 0.074, en : Ic (x) = 0.065
1 2
Si texte aléatoire uniforme : Ic ≈ 26( 26
) ≈ 0, 038
Invariance de Ic (x) par tout chiffrement mono-alphabétique
J.-O. Lachaud (LAMA)
INFO006
65 / 183
Cryptanalyse du chiffre de Vigenère VI
Attaque du chiffre de Vigenère
Soit le texte chiffré y. Pour tout m, on forme
y1 = y1 ym+1 y2m+1 . . .
y2 = y2 ym+2 y2m+2 . . .
...
ym = ym y2m y3m . . .
Si m est la longueur de la clé, alors ∀i, 1 ≤ i ≤ m, Ic (yi ) ≈ Ic (langue)
Sinon Ic (yi ) ≈ 0, 038
Détermine la longueur de la clé
J.-O. Lachaud (LAMA)
INFO006
66 / 183
Cryptanalyse du chiffre de Vigenère VII
Definition (Indice de coïncidence mutuel)
L’indice de coïncidence mutuel de deux chaînes x et x’ de même longueur
P
fa fa0
n est Ic (x, x’) = 25
a=0 n n .
Clé de Vigenère à m connu
Soit ei (x) = x + i mod 26
On forme M(i) = Ic (ei (y), y’)
y’ est un texte clair (fr)
Si y est un texte chiffré par décalage K , alors e26−K (y) est un texte
clair (fr)
L’indice M(26 − K ) vaut à peu près Ic (fr ). Les autres sont inférieures
Calcul de 26 − Kl pour chaque yl : K1 . . . Km est la clé de Vigenère
Note historique : machines ENIGMA de la seconde guerre mondiale
J.-O. Lachaud (LAMA)
INFO006
67 / 183
Cryptanalyse du chiffre de Vigenère VIII
Machines à 3 rotors (ou plus)
Les rotors codent une substitution des lettres.
A chaque frappe, le premier avance. Tous les 26, le deuxième, Tous les
676, le troisième.
autres dispositifs : reflecteurs, connecteurs
chiffre de Vigenère avec très longue période
J.-O. Lachaud (LAMA)
INFO006
68 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
Définitions et objectifs
Cryptographie historique
Sûreté d’un chiffrement, Théorie de Shannon, secret parfait
Cryptosystèmes à clé secrète partagée
Cryptosystèmes à clé publique
Hachages et schémas de signatures
Certificats, gestion des clés
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
69 / 183
Sûreté d’un chiffrement I
Sécurité sémantique : un attaquant ne récupère aucune information
sur le texte clair à partir du texte chiffré. (attaque passive)
Sécurité calculatoire : système sûr au sens de la théorie de la
complexité si le meilleur algorithme pour le casser nécessite N
opérations, où N est un nombre trop grand.
Sécurité prouvée : la sécurité se réduit à un problème réputé difficile.
Exemple : le système X est sûr si un entier n donné ne peut être
factorisé.
J.-O. Lachaud (LAMA)
INFO006
70 / 183
Sécurité sémantique ou inconditionnelle I
L’éventualité “texte clair choisi = x” a une probabilité a priori Pr[x].
L’éventualité “clé choisie = K ” a une probabilité a priori Pr[K ].
Definition (Secret parfait)
La condition du secret parfait est que ∀x ∈ P, y ∈ C, Pr[x|y ] = Pr[x].
Un tel cryptosystème est dit sémantiquement sûr ou de sécurité
inconditionnelle.
attaquant ne peut attribuer deux clairs à deux chiffrés.
cryptosystème soumis à une attaque passive.
Pour un message d’une lettre, le chiffrement par décalage assure un
secret parfait.
P
NB : on utilise Pr[Y = y ] = k:y ∈C (k) Pr[K = k]Pr[X = dk (y )], si
C (K ) est l’ensemble des textes chiffrés par K .
J.-O. Lachaud (LAMA)
INFO006
71 / 183
Sécurité sémantique ou inconditionnelle II
Theorem (Secret parfait)
Si C = P = K, alors ce système assure un secret parfait ssi chaque clé est
utilisée avec la même probabilité 1/|K| et ∀x ∈ P, y ∈ C, il existe une clé
unique K telle que eK (x) = y .
Definition (Chiffre de Vernam (1917) ou à masque jetable)
Soit n ≥ 1 et C = P = K = (Z2 )n . Pour tout K ∈ K, on définit eK et dK
comme le ou-exclusif de x ∈ P et K .
Le Théorème 10 assure le secret parfait de ce cryptosystème, si la clé
n’est utilisée qu’une fois et n’est pas plus courte que le message.
Utilisée au niveau diplomatique (téléphone rouge).
J.-O. Lachaud (LAMA)
INFO006
72 / 183
Cryptographie quantique I
[C. Bennett, G. Brassard 1984]
Cryptographie quantique = seul chiffrement inconditionnellement sûr ?
J.-O. Lachaud (LAMA)
INFO006
73 / 183
Cryptographie quantique II
Création d’un masque jetable par effet quantique
1
une ligne photonique permet de véhiculer un masque jetable
2
ce masque jetable sert de clé secrète à un chiffrement symétrique
3
une ligne normale (espionnable) véhicule les informations chiffrées
J.-O. Lachaud (LAMA)
INFO006
74 / 183
Cryptographie quantique III
bits aléatoires
polarisation des photons : →, ↑, %, 2 filtres seulement : + et ×
Protocole de création du masque jetable
1
A → B (photons) : émission aléatoire de 2N photons selon 4 polarités,
réception avec choix aléatoire du filtre
2
B → A (normal) : polarisations choisies par B
3
A → B (normal) : liste des bonnes polarisations ≈ N
4
A → B (normal) : sacrifice de n bits dont la valeur est donnée
5
Pr[Détection espionnage] = 1 − (3/4)n
6
si pas espionné, masque jetable avec ≈ N − n bits, sinon, on refait un
masque
NB : effectif ! (e.g. SQDefender de SmartQuantum)
J.-O. Lachaud (LAMA)
INFO006
75 / 183
Théorie de Shannon, Entropie I
X est une vad (à nombre fini n de valeurs xi ), de probabilités
Pr[X = xi ] = pi .
Definition (Entropie)
P
L’entropie (ou incertitude) d’une vad X est H(X ) = − i pi log2 pi .
Mesure l’incertitude sur l’issue avant une observation de X . Approche aussi
le nombre de bits moyen pour coder les éléments de X .
0 ≤ H(X ) ≤ log2 n.
H(X ) = 0 ssi un seul pi vaut 1 : incertitude minimale
H(X ) = log2 n ssi ∀i, pi =
1
n
: incertitude maximale
Codage de Huffman : la longueur moyenne l du codage d’une chaîne
à valeurs dans xi , tirée aléatoirement selon X , est entre H(X ) et
H(X ) + 1.
J.-O. Lachaud (LAMA)
INFO006
76 / 183
Théorie de Shannon, Entropie II
Definition (Entropie jointe, conditionnelle)
entropie jointeP
:
H(X , Y ) = − x,yPPr[X = x, Y = y ] log2 Pr[X = x, Y = y ].
H(X |Y = y ) = − x Pr[X = x|Y =Py ] log2 Pr[X = x|Y = y ].
entropie conditionnelle : H(X |Y ) = y Pr[Y = y ]H(X |Y = y ).
H(X |Y ) mesure l’incertitude restant sur X sachant l’observation de Y
H(X |Y ) ≥ 0 et H(X |X ) = 0
H(X , Y ) = H(X ) + H(Y |X ) = H(Y ) + H(X |Y )
H(X |Y ) ≤ H(X ) avec égalité seulement si X et Y indépendant
J.-O. Lachaud (LAMA)
INFO006
77 / 183
Théorie de Shannon, Entropie III
Corollary
Si X est une vad sur P et Y une vad sur C, la condition du secret parfait
est que H(X |Y ) = H(X ).
Theorem
Soit un cryptosystème muni des vads X sur P, K sur K, Y sur C.
H(K |Y ) = H(K ) + H(X ) − H(Y ).
On développe H(K , X , Y ) = H(Y |K , X ) +H(K , X ) et
| {z }
0
H(K , X , Y ) = H(X |K , Y ) +H(K , Y ).
| {z }
0
J.-O. Lachaud (LAMA)
INFO006
78 / 183
Entropie d’une langue, clés parasites, distance d’unicité I
Entropie d’un texte quelconque −
1
x∈a−z 26
P
log2
1
26
≈ 4, 70
Entropie d’une
P lettre dans texte anglais
h(P) = − x∈a−z Pr[x] log2 Pr[x] ≈ 4, 19
lettres non indépendantes
Definition (Entropie d’une langue donnée)
Soit un langage naturel L. Son entropie est HL = limn→+∞
La redondance de L : RL = 1 − logHL|P| .
H(P n )
n .
2
Pour l’anglais, 1 ≤ HL ≤ 1, 5, redondance 75%. Pour une langue aléatoire,
redondance nulle.
Definition
On appelle clé parasite une clé qui déchiffre un texte chiffré y sous forme
d’un message compréhensible, alors que la clé utilisée était autre.
J.-O. Lachaud (LAMA)
INFO006
79 / 183
Entropie d’une langue, clés parasites, distance d’unicité II
WNAJW, codé par décalage a deux clés F(5) et W(22) tels que
d22 (WNAJW ) = river et d5 (WNAJW ) = arena : une est parasite.
Theorem
Le nombre moyen s n de clés parasites sur un texte chiffré de longueur n (n
assez grand) vérifie
|K|
− 1.
sn ≥
|P|nRL
distance d’unicité n0 : plus petite valeur de n telle que s n ≈ 0
Chiffrement par substitution : |P| = 26, |K| = 26!. Avec RL = 0, 75,
n0 ≈ 88, 4/(0, 75 ∗ 4, 7) ≈ 25.
Chiffrement de vigenère de taille m : n0 ≈ m/0, 75.
On peut donc tenter des attaques par recherche exhaustive sur des
messages de longueur ≥ n0 . Si on tombe sur un clair, c’est le bon.
J.-O. Lachaud (LAMA)
INFO006
80 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
Définitions et objectifs
Cryptographie historique
Sûreté d’un chiffrement, Théorie de Shannon, secret parfait
Cryptosystèmes à clé secrète partagée
Cryptosystèmes à clé publique
Hachages et schémas de signatures
Certificats, gestion des clés
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
81 / 183
Système cryptographique produit I
Soient deux cryptosystèmes S1 = (P, P, K1 , E1 , D1 ) et
S2 = (P, P, K2 , E2 , D2 ), tels que P = C.
Definition (Système cryptographique produit)
Le système cryptographique produit S1 × S2 est le cryptosystème
(P, P, K1 × K2 , E, D) et
chiffrement e(K1 ,K2 ) (x) = eK2 (eK1 )(x)
déchiffrement d(K1 ,K2 ) (x) = dK1 (dK2 )(x)
sert à fabriquer des cryptosystèmes plus complexes à partir de
cryptosystèmes simples
Si S × S × · · · × S, on le note S n (cryptosystème itéré)
Si S 2 est équivalent à S, alors S idempotent. Itéré S ne complexifie
pas S.
J.-O. Lachaud (LAMA)
INFO006
82 / 183
Système cryptographique produit II
Chiffrement par décalage, par substitution, affine, Hill, Vigenère,
permutation sont idempotents !
Montrez que si S1 et S2 sont tels que S1 × S2 est équivalent à S2 × S1
et sont tous deux idempotents, alors S1 × S2 est idempotent.
Chiffrements par substitution et par permutation ne commutent pas :
AES
J.-O. Lachaud (LAMA)
INFO006
83 / 183
Algorithme de chiffrement itéré par bloc I
chiffrement par bloc à clé secrète K (longueur fixée)
systèmes cryptographiques produits (permutation, substitution)
chiffrement par Ne étages successifs identiques
diversification de K en Ne clés (d’étage)
algorithme de chiffrement fixé et public
w0
← x
1
← g (w 0 , K 1 )
w2
← g (w 1 , K 2 )
w
...
w
Ne
← g (w Ne −1 , K Ne )
déchiffrement en sens inverse, g injective
J.-O. Lachaud (LAMA)
INFO006
84 / 183
Algorithme de chiffrement itéré par bloc II
Exemples :
I
réseaux de substitution/permutation
F
F
I
I
I
substitution par blocs
permutation entre bits
schéma de Feistel, DES (1976)
AES/Rijndael (2001)
IDEA (dans PGP), blocs de 64b, clé 128b (⊕, + et · modulo 216 + 1)
J.-O. Lachaud (LAMA)
INFO006
85 / 183
Data Encryption Standard (DES) I
créé par IBM en 1975 pour la NSA, standard en 1976
Caractéristiques :
I
I
I
système à clef secrète (clef de 56 bits)
chiffrage itéré 16 fois par blocs (64 bits)
standard communications gouvernementales non secrètes (USA)
J.-O. Lachaud (LAMA)
INFO006
86 / 183
Data Encryption Standard (DES) II
permutation initiale
étage i, (Li , Ri ) = g (Li−1 , R i−1 , K i )
où Li = R i−1 ,
R i = Li−1 ⊕ f (R i−1 , K i )
clé K diversifiée (56b) en 16 clés (48b)
déchiffrement : f n’a même pas besoin
d’être inversible !
J.-O. Lachaud (LAMA)
INFO006
87 / 183
Data Encryption Standard (DES) III
E : Expansion de 32b à 48b
on ajoute la clé d’étage
Sj : réduction par blocs 6 bits vers 4
bits.
on permute le résultat par P
J.-O. Lachaud (LAMA)
INFO006
88 / 183
Critiques de DES I
seules les Sj ne sont pas linéaires
espace des clés faibles : 256 ≈ 7, 2 · 1016
attaque à texte clair par force brut
1
2
3
machine de Wiener 1993 : 5e 7 clés/s
DES cracker 1998 : 88e 9 clés/s, 1536 puces, 1 clé en 56h
DES cracker + réseau mondial (100000 machines) : 1 clé en 22h
cryptanalyse différentielle (Biham, Shamir)
1
2
3
4
5
6
7
attaque à texte clair choisi
grand nombre de quadruplets (x, x ∗ , y , y ∗ ), avec x ⊕ x ∗ = x 0 fixé
fabriquer des différentiels ∆x = x ⊕ x ∗ qui maximise des différentiels
∆y = y ⊕ y ∗
par S-boîte, on analyse le nombre de paires avec ou-exclusif d’entrée
égal à x 0 et ou-exclusif de sortie égal à y 0
indépendant de la clé par S-boîte car K s’élimine avec ⊕.
on choisit la paire de différentiels la plus fréquente
on construit une piste de différentiels en reliant les S-boîtes.
J.-O. Lachaud (LAMA)
INFO006
89 / 183
Critiques de DES II
8
9
avec beaucoup de couples, on estime quelques bits de la clé, le reste
par balayage exhaustif
pas effectif pour DES : 258 paires, soit plus que l’attaque exhaustive.
J.-O. Lachaud (LAMA)
INFO006
90 / 183
Critiques de DES III
cryptanalyse linéaire (Matsui 1994)
1
2
3
4
5
6
7
attaque à texte clair choisi
analyse les biais entre les probabilités d’avoir une sortie étant donné
une entrée.
sur une S-boîte, observe Xi1 ⊕ · · · ⊕ Xim ⊕ Yj1 ⊕ · · · ⊕ Yjn
si espérance 6= 21 , alors il y a un biais
trace ainsi un chemin de l’entrée vers la sortie, dont les variables
aléatoires ont un biais (qui dépend de la clé).
on chiffre beaucoup de messages, pour retrouver les bits de clé
effectif : 243 paires, 40 jours pour génération, 10 jours pour trouver K .
Evolution de DES : 3DES. Surchiffrement avec deux clés K1 , K2 .
I
I
I
y = eK1 ,K2 (x) = eK1 (eK2 (eK1 (x))).
y = dK1 ,K2 (x) = dK1 (dK2 (dK1 (y ))).
efficace car DES n’est pas idempotent !
Nouveaux algorithmes (qualifiés de “sûr”)
I
I
IDEA (128bits)
AES (ou Rijndael) (128, 192, 256 bits ; 10, 12 ou 14 étages)
J.-O. Lachaud (LAMA)
INFO006
91 / 183
Critiques de DES IV
I
caractéristiques : taille de la clé plus grande, boîtes de substitutions
obtenues par inversion dans un corps fini plus grand (8bits), mélange
de colonnes pour diffuser les pistes différentielles
J.-O. Lachaud (LAMA)
INFO006
92 / 183
Modes opératoires I
Soit K une clé secrète initiale, IV un nombre
ECB electronic codebook mode
simple chiffrement indépendant des
blocs
CBC cipher block chaining mode :
y0 = IV , yi+1 = eK (yi ⊕ xi+1 )
Chiffrement à clé constante. Texte
clair additionné à la sortie précédente.
J.-O. Lachaud (LAMA)
INFO006
93 / 183
Modes opératoires II
original
DES ECB
DES CBC
CFB cipher feedback mode : Initialisation y0 = IV puis yi+1 = eK (yi )⊕xi+1
Chiffrement par addition du chiffrement de la sortie précédente.
J.-O. Lachaud (LAMA)
INFO006
94 / 183
Modes opératoires III
OFB output feedback mode : clés
successives indépendantes de l’entrée,
z0 = IV , zi+1 = eK (zi ), yi = zi ⊕ xi
Suite de clés successives obtenue par
chiffrement par clé K . Addition de
ces clés au texte clair. Chiffrement du
texte indépendant du chiffrement du
texte précédent.
J.-O. Lachaud (LAMA)
INFO006
95 / 183
Modes opératoires IV
Exemples d’utilisation
formation de Message Authentication Code (MAC).
Dans un échange entre deux programmes A et B, les modes CBC ou
CFB permettent d’avoir une communication secrète où le chiffrement
dépend non seulement d’une clé secrète mais d’un paramètre
supplémentaire sur lequel les deux parties se sont mises d’accord (un
IV donné).
le calcul d’une empreinte MD5 ou SHA d’un fichier suit le principe
CBC, où l’empreinte se calcule par une séquence de chiffrement par
blocs de 512 bits, par addition de l’empreinte du bloc précédent au
texte clair suivant.
J.-O. Lachaud (LAMA)
INFO006
96 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
Définitions et objectifs
Cryptographie historique
Sûreté d’un chiffrement, Théorie de Shannon, secret parfait
Cryptosystèmes à clé secrète partagée
Cryptosystèmes à clé publique
Hachages et schémas de signatures
Certificats, gestion des clés
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
97 / 183
Principe des cryptosystèmes à clé publique I
Alice
Message M
y = eK (M)
Oscar
y
−→
Bob
(K , K 0 )
M = dK 0 (y)
RSA, système El Gamal, Merkle Hellman
J.-O. Lachaud (LAMA)
INFO006
98 / 183
Principe des cryptosystèmes à clé publique II
fonction à sens unique : fonction pour laquelle le problème préimage
ne peut être résolu de manière efficace.
Problème de la préimage
Soient une fonction f : P 7→ C et y ∈ C.
Trouver x ∈ P tel que f (x) = y .
I
I
fonctions pas à sens unique : f (x) = a ∗ x + b mod n, f (x) = x −1
mod n
fonctions à sens unique : f (x) = ax mod n (logarithme discret)
Problème : difficile de déchiffrer !
fonction à sens unique à trappe : la fonction à sens unique devient
facile à déchiffrer avec une information secrète supplémentaire
clé publique : fonction à sens unique, clé privée : la trappe de cette
fonction.
NB : chiffrement public ⇒ attaque passive toujours possible avec
texte clair choisi.
J.-O. Lachaud (LAMA)
INFO006
99 / 183
Chiffrement RSA I
Definition (Cryptosystème RSA)
Soit n = pq, p et q premiers. Soit P = C = Zn . Soit
K = {(n, p, q, a, b) tq ab ≡ 1(mod φ(n))}.
Pour K = (n, p, q, a, b)
1
(n, b) forment la clé publique.
2
(p, q, a) forment la clé privée.
3
chiffrement : eK (x) = x b mod n
4
déchiffrement : dK (y ) = y a mod n
5
entiers premiers p et q de l’ordre de 10100
6
NB : φ(n) = (p − 1)(q − 1), et pgcd(a, φ(n)) = 1
7
typiquement le message x est un mot de 512 bits (≤ n)
J.-O. Lachaud (LAMA)
INFO006
100 / 183
Chiffrement RSA II
Exemple
Bob choisit p = 17, q = 11, n = 187, φ(n) = 160 = 25 × 5.
Il prend a = 39 = 3 × 13, b = 119 ≡ a−1 (mod 160) car
39 × 119 = 4641 = 29 × 160 + 1.
Alice
x = 100
eKbob (x) = x b mod n
= 100119 mod 187 = 144 ⇒
J.-O. Lachaud (LAMA)
INFO006
Bob Kbob = (n, p, q, a, b)
y = 144 reçu
dKbob (y ) = y a mod n
= 14439 mod 187 = 100
101 / 183
Mise en œuvre de RSA I
Génération des paramètres RSA
1
Générer deux grands nombres premiers p et q.
2
n ← pq, et φ(n) ← (p − 1)(q − 1).
3
Choisir b aléatoire (1 < b < φ(n)) avec pgcd(b, φ(n)) = 1
4
a ← b−1 mod φ(n)
5
La clé publique est (n, b) et la clé privée est (p, q, a).
J.-O. Lachaud (LAMA)
INFO006
102 / 183
Mise en œuvre de RSA II
Difficultés pratiques
1
Primalité. Trouver des grands nombres premiers (≈ 512bits)
I
I
plus grand nombre factorisé environ 200 chiffres
n ≈ 1024bits ≈ 300 chiffres
2
Calculs rapides. +, −, ×, ÷, pgcd, exp, inverse
3
tout algorithme linéaire en n est trop lent
4
algorithmes polynomiaux en k = log2 n
J.-O. Lachaud (LAMA)
INFO006
103 / 183
Tests de primalité I
Primalité ou non Factorisabilité
Primalité : problème de décision 6= Trouver une factorisation
Inversement, factorisation de n résoud primalité de n
Primalité par tests de
√
k
n diviseurs en Ω(2 2 )
Crible d’Eratosthène, trop lent, trop de mémoire
Definition (Algorithme de Monte-Carlo positif)
Algorithme probabiliste qui résout un problème de décision tel que “oui” est
toujours correct et si “non” peut être incorrect avec probabilité max .
J.-O. Lachaud (LAMA)
INFO006
104 / 183
Tests de primalité II
Test de Miller Rabin
J.-O. Lachaud (LAMA)
INFO006
105 / 183
Tests de primalité III
Miller-Rabin : Monte-Carlo positif pour primalité avec = 1/4
probablement premier composite
n premier
1
0
1
3
n composite
4
4
Algorithme peut répondre “premier” alors que le nombre est en fait
composite ⇒ a est un menteur
Algorithme ne peut répondre “composite” si le nombre est premier
Pour n composite, moins d’un
des menteurs
1
4
des valeurs a entre 1 et n − 1 sont
On appelle plusieurs fois l’algorithme pour être de plus en plus sûr
On calcule
I
I
I
I
a : nombre n de taille donnée est composite
b : l’algorithme se trompe m fois en disant n premier
353
Pr[a|b] ≤ 353+2
2m+1 , pour n de 512 bits
Probabilité de se tromper 44 fois est 2−80 .
J.-O. Lachaud (LAMA)
INFO006
106 / 183
Tests de primalité IV
Autres test : Test de Solovay-Strassen, basé sur les symboles de
Legendre et Jacobi
J.-O. Lachaud (LAMA)
INFO006
107 / 183
Calculs rapides sur grands entiers I
k = log2 n
addition, soustraction
I
naïf. Somme bit à bit plus retenue. O(k)
multiplication, division O(k 2 )
I
naïf. On pose k sommes bit à bit plus retenue. O(k 2 )
I
Karatsuba. O(k log 2 ) = O(k 1.584 )
log 3
(a×2m +b)(c ×2m +d ) = ac ×22m +(ac +bd −(a−b)(c −d ))×2m +bd
I
I
Toom Cook O(k (1+) )
Transformée de Fourier Rapide, Fühler, proche de O(k log k)
J.-O. Lachaud (LAMA)
INFO006
108 / 183
Calculs rapides sur grands entiers II
pgcd O(k 3 )
I
Algorithme d’Euclide. O(k 3 ) (en fait O(k 2 ))
int pgcd(int m, int n) {
while ( n != 0 ) {
int r = m mod n;
m = n;
n = r;
}
return m;
}
J.-O. Lachaud (LAMA)
INFO006
109 / 183
Calculs rapides sur grands entiers III
inverse modulo n
I
Algorithme d’Euclide étendu. O(k 3 ) (en fait O(k 2 ))
Fct EuclideEtendu( a, b : entier ) {
r[0] = a; r[1] = b;
s[0] = 1; s[1] = 0;
t[0] = 0; t[1] = 1;
q = r[0] div r[1];
r[2] = r[0] - q*r[1];
i = 2;
Tant que r[i] > 0
s[i] = s[i-2] - q*s[i-1];
t[i] = t[i-2] - q*t[i-1];
q = r[i-1] div r[i];
i = i+1;
r[i] = r[i-2] - q*r[i-1];
Fin tant que
Retourner r[i-1],s[i-1],t[i-1]
// r[i-1]=pgcd(a,b)
// et a*s[i-1]+b*t[i-1]=r[i-1]
}
J.-O. Lachaud (LAMA)
INFO006
pgcd(120, 23) ?
mod 120 ?
et
23−1
r
= s ∗a+
t
120
1
120
0
23
0
120
1
5
1
120
-5
3
-4 120
21
2
5
120 -26
1
-9 120 47
Montrez ∀i, ri = asi + bti
∗b
23
23
23
23
23
23
110 / 183
Calculs rapides sur grands entiers IV
Exp. modulaire rapide dePc. O(log2 c × k 2 )
P
i
i ci
c = i ci 2i alors bc = b i ci 2 = Πi (b2 ) , ssi
k−1
bc = (b)c0 · (b2 )c1 · (b4 )c2 · · · · · ·(b(2 ) )ck−1
Fonction Exp( b, c, n : entier ) : entier
r = 1;
Tant que c > 0
si c & 1 > 0 r = (r*b) mod n;
c = c >> 1;
b = (b*b) mod n;
Fin tant que
retourner r;
RSA peut donc être mis en œuvre efficacement.
J.-O. Lachaud (LAMA)
INFO006
111 / 183
Sécurité de RSA I
Attaques possibles sur RSA
Factorisation de n
I
I
I
Si n factorisé en pq par Oscar, alors φ(n) se calcule immédiatement, et
donc l’inverse de b se calcule√par Euclide étendu
algorithme naïf trop lent O( n)
Algorithme p − 1 de Pollard et B-friabilité.
Un nombre x est B-friable si ses facteurs sont inférieurs à B.
Fct Fact_Pollard_p-1( n, B )
a = 2^(B!) mod n;
d = pgcd( a-1, n );
Si 1<d<n alors retourner d;
sinon Echec;
I
⇒ Bien choisir ses p et q non B-friables !
Algorithme ρ de Pollard O(n1/4 ) : on cherche une collision x 6= x 0
tq le pgcd x − x 0 et n est différent de 1.
si x ≡ x 0 (mod p) alors p ≤ pgcd(x − x 0 , n) < n
J.-O. Lachaud (LAMA)
INFO006
112 / 183
Sécurité de RSA II
I
I
I
I
Algorithme de Dixon x 2 ≡ y 2 (mod n) alors (x − y ) ou (x + y )
peuvent être des facteurs de n√
crible quadratique O(e (1+o(1)) √ln n ln ln n )
courbes elliptiques O(e (1+o(1)) 2 ln p ln ln p )
1/3
2/3
crible algébrique O(e (1,92+o(1))(ln n) (ln ln n) )
Attaque àφ(n) connu
n = pq
Résoudre
φ(n) = (p − 1)(q − 1)
Ou p 2 − (n − φ(n) + 1)p + n = 0
Les deux racines sont p et q
Attaque à a connu. On peut trouver p,q
J.-O. Lachaud (LAMA)
INFO006
113 / 183
Sécurité de RSA III
1/4
Attaque de Wiener. Trouve a dès que a < n 3 et q < p < 2q
ab ≡ 1(mod φ(n)) ⇔ ∃t, ab − tφ(n) = 1
√
De plus,
pq > q 2 , d’où 0 < n − φ(n) < 3 n
b n =
√
D’où n − at < a3t
n
Comme t < a et hypothèse 3t < 3a < n1/4 , bn − at < an11/4 < 3a12
Et donc t/a est une réduite du dvp en fraction continue de b/n.
Moralité
Choisir n grand ≈ 21024
Choisir p et q, ni trop proches, ni trop éloignés
Rejeter les p et q tels que p − 1 et q − 1 ont des petits facteurs
Choisir a pas trop petit devant n
J.-O. Lachaud (LAMA)
INFO006
114 / 183
OAEP – Système à clé publique sûr I
Definition
OAEP / Optimal Asymmetric Encryption Padding [Bellare, Rogaway 94]
standard OAEP / IEEE P1363
P = C = {0, 1}m , k0 = k − m
f un chiffrement publique sur {0, 1}k , f −1 son déchiffrement privé.
G : {0, 1}k0 → {0, 1}m et H : {0, 1}m → {0, 1}k0 fonctions aléatoires
clé K = (f , f −1 , G , H), r aléatoire sur {0, 1}k0
eK (x) = f (x ⊕ G (r )kr ⊕ H(x ⊕ G (r )))
f −1 (y ) = x1 kx2 , avec x1 ∈ {0, 1}m , x2 ∈ {0, 1}k0
puis r = x2 ⊕ H(x1 ) et dK (y ) = G (r ) ⊕ x1
Lorsque f et f −1 sont le chiffrement RSA, on parle de RSA-OAEP.
Chaque clair a 2k0 chiffrement distincts.
J.-O. Lachaud (LAMA)
INFO006
115 / 183
OAEP – Système à clé publique sûr II
Theorem
RSA-OAEP est sémantiquement sûr ssi les fonctions aléatoires G et H sont
des oracles aléatoires.
G est un oracle aléatoire si le fait d’avoir fait déjà N calculs de G
n’augmente pas la probabilité Pr[G (x) = y ] pour tout x non déjà calculé et
y.
OAEP : prétraitement à RSA
peu coûteux : de l’ordre de 128 bits supplémentaires
G et H sont par exemple SHA-1
théoriquement beaucoup plus sûr car r induit un “bruit” considérable
J.-O. Lachaud (LAMA)
INFO006
116 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
Définitions et objectifs
Cryptographie historique
Sûreté d’un chiffrement, Théorie de Shannon, secret parfait
Cryptosystèmes à clé secrète partagée
Cryptosystèmes à clé publique
Hachages et schémas de signatures
Certificats, gestion des clés
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
117 / 183
Fonction de hachage et intégrité I
1
Fonction de hachage h simple
I
I
I
I
2
donnée x stockée/transmise dans/par un endroit peu sûr
fonction h transformant x en un nombre court y (empreinte, condensé,
digest)
y stocké/transmis dans/par un endroit sûr
intégrité : comparaison h(x) = y ?
famille de fonction de hachage hK
I
I
I
I
I
I
paramétrée par clé secrète K
donnée x et y = hK (x) stockée/transmise dans/par un endroit peu sûr
intégrité : comparaison hK (x) = y ?
code d’authentification de message ou MAC
authentifie aussi l’émetteur
fonction de hachage h = famille à une seule clé possible
J.-O. Lachaud (LAMA)
INFO006
118 / 183
Sécurité des fonctions de hachage I
Soient une fonction h : P 7→ C. M = |C| Trois problèmes doivent être
difficiles à résoudre
Problème de la préimage
Soit y ∈ C. Trouver x ∈ P tel que h(x) = y .
Problème de la seconde préimage
Soit x ∈ P. Trouver x 0 ∈ P tel que x 0 6= x et h(x 0 ) = h(x).
Problème de la collision
Trouver x, x 0 ∈ P tel que x 0 6= x et h(x 0 ) = h(x).
Definition (Oracle aléatoire / hachage idéal)
Le fait d’avoir fait déjà N calculs de h n’augmente pas la probabilité
Pr[h(x) = y ] = 1/M pour tout x non déjà calculé et y .
J.-O. Lachaud (LAMA)
INFO006
119 / 183
Sécurité des fonctions de hachage II
Algorithme PreImage sur h : X → Y
Fonction Trouver_PreImage(h,y,q)
Choisir un X0 sous-ensemble de X, |X0|=q
Pour tout x dans X0 Faire
Si h(x)==y alors retourner x;
retourner ‘‘Echec’’
En moyenne, Pr[Succès] = 1 − (1 − 1/M)q
Algorithme 2ndPreImage
Fonction 2ndPreImage(h,x,q)
y=h(x)
Choisir un X0 sous-ensemble de X, |X0|=q-1
Pour tout x dans X0 Faire
Si h(x)==y alors retourner x;
retourner ‘‘Echec’’
J.-O. Lachaud (LAMA)
INFO006
120 / 183
Sécurité des fonctions de hachage III
En moyenne, Pr[Succès] = 1 − (1 − 1/M)q−1
Algorithme Collision
Fonction Collision(h,q)
Choisir un X0 sous-ensemble de X, |X0|=q
Pour tout x dans X0 Faire
y_x = h(x)
Si y_x == y_x’ pour x != x’ alors
retourner (x,x’)
retourner ‘‘Echec’’
M−q+1
M−2
En moyenne, Pr[Succès] = 1 − ( M−1
)
M )( M ) . . . (
M √
Nb : Paradoxe des anniversaires. Pour = 0.5, q ≈ 1.17 M
Borne
minimale sur la taille minimale de l’empreinte. Il faut observer
√
M
J.-O. Lachaud (LAMA)
INFO006
121 / 183
Construction de Merkle-Damgård I
MD5, SHA-0, SHA-1, SHAx, . . . , RIPEMD
Fonction de hachage itérée, avec zip : {0, 1}m+t → {0, 1}m
1
2
Soit x, |x| > m + t + 1. On construit y tq |y | ≡ 0(mod t)
y = y1 ky2 k · · · kyr
y souvent construit par bourrage de x : y = xkpad (x)
Soit IV public de longueur m
z0
←
IV
z1
←
zip(z0 ky1 )
z2
←
zip(z1 ky2 )
...
zr
3
←
zip(zr −1 kyr ).
Parfois g : {0, 1}m → {0, 1}l publique, alors
h(x) = g (zr )
J.-O. Lachaud (LAMA)
INFO006
122 / 183
Construction de Merkle-Damgård II
Construction de Merkle-Damgård
1
2
3
4
On divise x en k blocs de t − 1, le dernier complété par des 0. On
rajoute un bloc donnant le nombre de zero rajouté.
z1 ← zip(0m+1 ky1 )
Pour i de 1 à k, zi+1 ← zip(zi k1kyi+1 )
Retourner h(x) = zk+1
Theorem
si zip résistante aux collisions, t ≥ 2 alors h est résistante aux collisions.
Conclusion
Il suffit donc de définir une fonction de compression de
{0, 1}m+t → {0, 1}m résistante aux collisions pour avoir une fonction de
hachage résistante aux collisions.
J.-O. Lachaud (LAMA)
INFO006
123 / 183
Un exemple : SHA-1 I
Empreinte ou condensat de 160 bits
Bourrage SHA : message M découpé en blocs de 512 bits
M1
. . . Mk−1
Mk 10 · · · 0 l (M)
Compression 512 bits vers 160 bits
16 mots de Mi Wt = ROTL1(Wt−3 ⊕ Wt−8 ⊕ Wt−14 ⊕ Wt−16 )
W0 · · · W15 W16 · · · · · · · · · · · · · · ·
W79
I
80 itérations du calcul
I
Les fonctions Ft (B, C , D) sont de
la forme
0 ≤ t ≤ 19 (B ∧ C ) ∨ ((¬B) ∨ D)
20 ≤ t ≤ 39 B ⊕ C ⊕ D
40 ≤ t ≤ 59 (B ∧ C ) ∨ (B ∧ D) ∨
(C ∧ D)
60 ≤ t ≤ 79 B ⊕ C ⊕ D
K constantes
J.-O. Lachaud (LAMA)
I
i
INFO006
124 / 183
Un exemple : SHA-1 II
chaque condensat de bloc est l’initialisation du bloc suivant
J.-O. Lachaud (LAMA)
INFO006
125 / 183
Hachage et génération aléatoire I
bonnes fonctions de hachage = bons générateurs aléatoires
$$> let x=0; \
while test $x -le 9; do \
echo $x | sha1; let x=x+1; \
done
09d2af8dd22201dd8d48e5dcfcaed281ff9422c7
e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e
7448d8798a4380162d4b56f9b452e2f6f9e24e7a
a3db5c13ff90a36963278c6a39e4ee3c22e2a436
9c6b057a2b9d96a4067a749ee3b3b0158d390cf1
5d9474c0309b7ca09a182d888f73b37a8fe1362c
ccf271b7830882da1791852baeca1737fcbe4b90
d3964f9dad9f60363c81b688324d95b4ec7c8038
136571b41aa14adc10c5f3c987d43c02c8f5d498
J.-O. Lachaud (LAMA)
INFO006
126 / 183
Hachage et génération aléatoire II
$> let x=1; let y=0; \
while test $x -le 10; do \
y=‘echo $y | sha1‘; echo $y; let x=x+1; \
done
09d2af8dd22201dd8d48e5dcfcaed281ff9422c7
00f7c7d8a69f4228724ce25e4993aa87b789433b
1e4dab666517568b861e1ebd3749405916e48506
46f4d6c2a816fb7dc6a7686dbb3d7f1f27ee5d12
1d9c4099519d4feea51d97bc33a265be5c41f1a7
7d5c9566dd41309b057f4dee18dbe65942eb2ef3
3aa4393fd13818fa130441b16303ed6ab6dbd94d
f9057849c84eadd1e33b80b73b8461c8ec017434
b052986d891ae86a7606f5cf195b03961b1411c8
bb5ab12bf139a43f44ec2f1a1c679a11fb34cd46
les fonctions de hachage se conduisent statistiquement comme des
générateurs aléatoires
J.-O. Lachaud (LAMA)
INFO006
127 / 183
Schémas de signature I
Signature numérique 6= signature conventionnelle
I
I
I
pas de lien physique message/signature ⇒ “collage”
vérification beaucoup plus sûre
un document électronique signé = ∞ copies signées ⇒ dater les
documents/signatures
Objectifs : authentification, non-répudiation, intégrité
Definition (Schéma de signature)
2 Familles de fonctions paramétrées par une clé K
I
signer sigK (privé) : S ← sigK (M) où M est un message ou un défi
I
vérifier verK (public) : verK : (M, S) 7→ {vrai, faux}
Il faut
I
non-répudiation : s’assurer qu’il est difficile de forger une fausse
signature sur un document (image et préimage)
J.-O. Lachaud (LAMA)
INFO006
128 / 183
Schémas de signature II
I
I
I
non-répudiation : vérifier qu’on ne peut créer deux documents ayant
même signature valide (collision)
intégrité : vérifier qu’on ne peut falsifier les données signées (seconde
préimage)
authentification : s’assurer que personne numérique et personne
physique sont les mêmes (certificats)
J.-O. Lachaud (LAMA)
INFO006
129 / 183
Quelques schémas de signature I
Signature RSA
1
2
3
4
Alice signe M, sa clé K = (n, p, q, a, b)
signer S = sigK (M) = dK (M) = M a mod n
Bob vérifie que S est la signature de M avec clé publique d’Alice
vérifier verK (M, S) = (eK (S) == M) = ((S b mod n) == M)
Défauts
1
2
Tout le monde peut forger une signature d’Alice !
Signature déterministe ⇒ favorise les collisions
J.-O. Lachaud (LAMA)
INFO006
130 / 183
Quelques schémas de signature II
Signature ElGamal
1
2
3
Alice signe M, sa clé K = (p, α, β, a), β ≡ αa (mod p)
Alice tire k au hasard dans Z?p−1
signer S = sigK (M, k) = (γ, δ), avec
F
F
4
5
γ = αk mod p,
δ = (M − aγ)k −1 mod (p − 1)
Bob vérifie que S = (γ, δ) est la signature de M avec clé publique
d’Alice
vérifier verK (M, (γ, δ)) = (β γ γ δ ≡ αM (mod p)).
Défauts
1
2
3
On peut fabriquer de faux couples (message, fausse signature)
l’entier aléatoire ne doit pas être révélé
l’entier aléatoire ne doit pas être utilisé plusieurs fois
Néanmoins pas d’attaque à message choisi
J.-O. Lachaud (LAMA)
INFO006
131 / 183
Quelques schémas de signature III
Principes généraux de signature
On ne signe qu’une empreinte
I
I
car signature longue en temps et mémoire
et rend difficile la forge de signature
Toujours signer avant le chiffrement
Mélange intégrité, et non-répudiation,
J.-O. Lachaud (LAMA)
INFO006
132 / 183
Quelques schémas de signature IV
Communication d’un message chiffré sous gpg
J.-O. Lachaud (LAMA)
INFO006
133 / 183
Quelques schémas de signature V
Communication d’un message chiffré et signé sous gpg
J.-O. Lachaud (LAMA)
INFO006
134 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
Définitions et objectifs
Cryptographie historique
Sûreté d’un chiffrement, Théorie de Shannon, secret parfait
Cryptosystèmes à clé secrète partagée
Cryptosystèmes à clé publique
Hachages et schémas de signatures
Certificats, gestion des clés
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
135 / 183
Certificats et authentification I
S’assurer que personne physique et numérique sont les mêmes
Principe : infrastructure de gestion de clés (IGC, PKI) qui
I
I
I
I
I
I
stockent les clés publiques
garantissent la conformité clé/personne
gère la durée de vie de la clé, sa révocation
autorité de certification : signe les demandes de certificats et les
révocations
autorité d’enregistrement : génère certificats, vérifie identité/unicité
autorité de dépôt : stocke les certificats et les listes de révocations
certificats X509, PGP/OpenPGP/GnuPG
AC : Thawte, Certinomis, Baltimore, Certplus, Entrust.net, Verisign,
GlobalSign, Cybertrust
J.-O. Lachaud (LAMA)
INFO006
136 / 183
Certificats et authentification II
Structure d’un certificat
* Version
* Numéro de série
* Algorithme de signature du certificat
* Signataire du certificat
* Validité (dates limite)
o Pas avant
o Pas après
* Détenteur du certificat
* Informations sur la clé publique
o Algorithme de la clé publique
o Clé publique
* Identifiant unique du signataire (Facultatif)
* Identifiant unique du détenteur du certificat (Facultatif)
* Extensions (Facultatif)
J.-O. Lachaud (LAMA)
INFO006
137 / 183
Cas d’étude : GnuPG I
PGP [Zimmermann 1991], OpenPGP (RFC4880)
Implémentation Gnu Privacy Guard (GnuPG)
Chiffrement symétrique/asymétrique
Signatures
Certificats, Certification par réseau social
S’associe bien avec toute application de messagerie (e.g. thunderbird)
J.-O. Lachaud (LAMA)
INFO006
138 / 183
Cas d’étude : GnuPG II
1
Informations sur gpg
$ gpg –version
...
Home: ~/.gnupg
Algorithmes supportés:
Clé publique: RSA, RSA-E, RSA-S, ELG-E, DSA
Chiffrement: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Hachage: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Non-compressé, ZIP, ZLIB, BZIP2
J.-O. Lachaud (LAMA)
INFO006
139 / 183
Cas d’étude : GnuPG III
2
Créer sa clé publique
$ gpg –gen-key
...
Sélectionnez le type de clé désiré:
(1) DSA et Elgamal (par défaut)
(2) DSA (signature seule)
(5) RSA (signature seule)
Votre choix ?
1
La paire de clés DSA fera 1024 bits.
les clés ELG-E peuvent faire entre 1024 et 4096 bits de longueur.
...
Vous avez besoin d’un nom d’utilisateur pour identifier votre clé; le
programme le construit à partir du nom réel, d’un commentaire et d’une
adresse e-mail de cette manière:
Heinrich Heine (Der Dichter) <[email protected]>
Nom réel : Jean Bon
Adresse e-mail : [email protected]
Commentaire : Comme du bon pain
J.-O. Lachaud (LAMA)
INFO006
140 / 183
Cas d’étude : GnuPG IV
Vous avez sélectionné ce nom d’utilisateur:
"Jean Bon (Comme du bon pain) <[email protected]>"
Un grand nombre d’octets aléatoires doit être généré.
...
gpg: clé AAF48B9E marquée comme ayant une confiance ultime.
les clés publique et secrète ont été créées et signées.
gpg: vérifier la base de confiance
gpg: 3 marginale(s) nécessaires, 1 complète(s) nécessaires, modèle
de confiance PGP
gpg: profondeur: 0 valide:
2 signé:
0
confiance: 0-. 0g. 0n. 0m. 0f. 2u
gpg: la prochaine vérification de la base de confiance aura lieu le 2013-02-04
pub
1024D/AAF48B9E 2008-02-06
Empreinte de la clé = 8B59 5F66 F3E0 28F3 15FF 20DF 10BC 6865 AAF4 8B9E
uid
Jean Bon (Comme du bon pain) <[email protected]>
sub
2048g/85B0C9A7 2008-02-06
clé publique de Jean Bon (8 derniers octets) : AAF48B9E
3
Voir les clés que l’on connait
$ gpg –list-keys
J.-O. Lachaud (LAMA)
INFO006
141 / 183
Cas d’étude : GnuPG V
/home/lachaud/.gnupg/pubring.gpg
-------------------------------pub
1024D/C294834D 2008-02-06 [expire: 2013-02-04]
uid
Jacques-Olivier Lachaud <jacques-olivier.lachaud@univ-sav
sub
2048g/31BC7EF2 2008-02-06 [expire: 2013-02-04]
pub
uid
sub
1024D/FE3AAF25 2007-03-15 [expire: 2008-10-07]
David Coeurjolly <[email protected]>
2048g/DF839ABF 2007-03-15 [expire: 2008-03-19]
...
pub
uid
sub
4
1024D/AAF48B9E 2008-02-06
Jean Bon (Comme du bon pain) <[email protected]>
2048g/85B0C9A7 2008-02-06
Créer un certificat de révocation
$ gpg –gen-revoke bon
J.-O. Lachaud (LAMA)
INFO006
142 / 183
Cas d’étude : GnuPG VI
sec
1024D/AAF48B9E 2008-02-06 Jean Bon (Comme du bon pain) <[email protected]>
Générer un certificat de révocation pour cette clé ? (o/N) o
choisissez la cause de la révocation:
0 = Aucune raison spécifiée
1 = La clé a été compromise
...
Vous avez besoin d’une phrase de passe pour déverrouiller la
clé secrète pour l’utilisateur: Jean Bon (Comme du bon pain) <[email protected]>
***************
clé de 1024 bits DSA, ID AAF48B9E, créée le 2008-02-06
sortie avec armure ASCII forcée.
Certificat de révocation créé.
Déplacez-le dans un support que vous pouvez cacher ; si Mallory a
accès à ce certificat il peut l’utiliser pour rendre votre clé
inutilisable.
Une bonne idée consiste à imprimer ce certificat puis à le stocker
ailleurs, au cas où le support devient illisible. Mais attention :
le système d’impression de votre machine pourrait stocker ces
données et les rendre accessibles à d’autres personnes !
J.-O. Lachaud (LAMA)
INFO006
143 / 183
Cas d’étude : GnuPG VII
-----BEGIN PGP PUBLIC KEY BLOCK----Version: GnuPG v1.4.6 (GNU/Linux)
Comment: A revocation certificate should follow
iFsEIBECABsFAkeq4MIUHQJNb3QgZGUgcGFzc2UgcGVyZHUACgkQELxoZar0i548
FwCgoHbQzsn9/CKYcbJPe9ooWvCnoGEAnjrXsgyUQQsAW2d7oupgr7VQ63VG
=utF/
-----END PGP PUBLIC KEY BLOCK-----
J.-O. Lachaud (LAMA)
INFO006
144 / 183
Cas d’étude : GnuPG VIII
5
S’enregistrer auprès d’un serveur de clés
$ gpg –keyserver pool.sks-keyservers.net –send-keys AAF48B9E
gpg: envoi de la clé AAF48B9E au serveur hkp pool.sks-keyservers.net
6
Quelques public key servers
J.-O. Lachaud (LAMA)
INFO006
145 / 183
Cas d’étude : GnuPG IX
pool.sks-keyservers.net
pgp.mit.edu
pgp.nic.ad.jp
keyserver.veridis.com
pgp.uni-mainz.de
J.-O. Lachaud (LAMA)
INFO006
146 / 183
Cas d’étude : GnuPG X
7
Chercher une clé sur un serveur
$ gpg –keyserver pool.sks-keyservers.net –search-keys sarkozy
(1)
Csongor Sarkozy <[email protected]>
1024 bit DSA key C3507937, créé: 1999-10-10
Keys 1-1 of 1 for "sarkozy". Entrez le(s) nombre(s), S)uivant, ou Q)uitter >
gpg: requête de la clé C3507937 du serveur hkp pool.sks-keyservers.net
gpg: clé C3507937: clé publique « Csongor Sarkozy <[email protected]> » import
gpg: 3 marginale(s) nécessaires, 1 complète(s) nécessaires, modèle
de confiance PGP
gpg: profondeur: 0 valide:
1 signé:
0
confiance: 0-. 0g. 0n. 0m. 0f. 1u
gpg: la prochaine vérification de la base de confiance aura lieu le 2013-02-04
gpg: Quantité totale traitée: 1
gpg:
importée: 1
J.-O. Lachaud (LAMA)
INFO006
147 / 183
Cas d’étude : GnuPG XI
8
Chiffrer un message
$ gpg -a –encrypt -r bon message.txt
$ cat message.txt.asc
-----BEGIN PGP MESSAGE----Version: GnuPG v1.4.6 (GNU/Linux)
hQIOA+DxU5+FsMmnEAf/ZDPOVmVlsfTCi578OwWz+uxxexTBYQxmBDBzDob7B+8P
MWAMC6S1GYBfiwagch+GFCtZQwiBkUT4USJ8mV1XB4ScuCWJAsmoP1wV+p07j7n/
3WaiHglmWZKb0cPJe9zPP+XFDsWX8KNafuBtlUq3KRVb68giohlDDbb3yT/+JYQG
7Lq1k71czSlebKrtk1Hf5vw/mpCEN3Ig/JR8jGlHcGaR3n/RHLykvs8s0dSiyOa9
TfZ1snn3LQFWGauRm3Ylbw6dp9NPXTVpJHxCNZzFzTEllXKuwqP8iSvP7XCIaJzI
ZXdJl36GL+iEPPOgzl2LqIrCVeLrRLVRTiQ6/JVBOwf/TxSV+ZrUlw+7fXGIAPb8
8eqleP4OLDZ+9NG2jaSZDyQxuycg4aOlvsFWP4mraIHD0TItulLkz+171hl96I6X
rK4ezOjdPSLN13dQjf2+PP7dti/hylxgOfOLiMqI7MN524JxA+g/BCcwcY08FB+P
lF8lIeyZvhrPweC8b31Cb2mKQA6w10+CbUAEtugJ3H3tx0vuW0W20d45qKcfy06r
CBd8+oBBYMvw6Lmr3u9iNd46pC5ESHKv7jPn92Th9/ML2EEz3UV8gjtKUMlOCgD3
Cbk7vhmORxtsPX8Zc52zSa7D3Ma93PObb1a04YdP6JuR60/8/dcTgwXs6bbh6X4P
uNJ7AY8xk2Nu8T1SBdkbqRYFj7PrL/uLg6q7th6Y6KxGkahTESfGQ+wZuRwGwSaH
2I/IRgDBQ0lR8hxKUUGsE876RLfgfb6eQOdMr87G8pCIZPo9cZJKZ5D7K8J4IMlx
KwVAg3rG+Ih4qZ+RfReh7jupcgvOkouRwot+lSau
=Q3L9
-----END PGP MESSAGE----J.-O. Lachaud (LAMA)
INFO006
148 / 183
Cas d’étude : GnuPG XII
J.-O. Lachaud (LAMA)
INFO006
149 / 183
Cas d’étude : GnuPG XIII
9
Déchiffrer un message
$ gpg message.txt.asc
Vous avez besoin d’une phrase de passe pour déverrouiller la
clé secrète pour l’utilisateur: Jean Bon (Comme du bon pain) <[email protected]>
clé de 2048 bits ELG-E, ID 85B0C9A7, créée le 2008-02-06 (ID clé principale AA
gpg: chiffré avec une clé de 2048 bits ELG-E, ID 85B0C9A7, créée le 2008-02-06
Jean Bon (Comme du bon pain) <[email protected]>
*****************
$ cat message.txt
Ceci est mon message.
--JOL
J.-O. Lachaud (LAMA)
INFO006
150 / 183
Cas d’étude : GnuPG XIV
10
Signer le message message.txt
$ gpg -a –detach-sign -u bon message.txt
Vous avez besoin d’une phrase de passe pour déverrouiller la
clé secrète pour l’utilisateur: Jean Bon (Comme du bon pain) <[email protected]>
clé de 1024 bits DSA, ID AAF48B9E, créée le 2008-02-06
*****************
$ cat message.txt.asc
-----BEGIN PGP SIGNATURE----Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQBHqy2TELxoZar0i54RAsC3AKCyGjvMsOHw/lZ4WjQD2j/MRpiRtACdHe69
EMjIUL4ZYw47NfkXVkADqlw=
=KJCN
-----END PGP SIGNATURE-----
J.-O. Lachaud (LAMA)
INFO006
151 / 183
Cas d’étude : GnuPG XV
11
Vérifier que message.txt.asc est bien la signature de message.txt
$ gpg –verify message.txt.asc message.txt
gpg: Signature faite le jeu 07 fév 2008 17:10:59 CET avec la clé DSA ID AAF48B
gpg: Bonne signature de Jean Bon (Comme du bon pain) <[email protected]>
$ gpg –verify message.txt.asc message2.txt
gpg: Signature faite le jeu 07 fév 2008 17:10:59 CET avec la clé DSA ID AAF48B
gpg: MAUVAISE signature de Jean Bon (Comme du bon pain) <[email protected]>
J.-O. Lachaud (LAMA)
INFO006
152 / 183
Cas d’étude : GnuPG XVI
12
Chiffrer pour lachaud et signer par Bon le message message.txt
$ gpg -a –sign -u bon –encrypt -r lachaud message.txt
Vous avez besoin d’une phrase de passe pour déverrouiller la
clé secrète pour l’utilisateur: Jean Bon (Comme du bon pain) <[email protected]>
clé de 1024 bits DSA, ID AAF48B9E, créée le 2008-02-06
*****************
On note que Jean Bon ne peut pas déchiffrer son propre message, et que seul JO Lachaud
peut le faire :
$ gpg message.txt.asc
Vous avez besoin d’une phrase de passe pour déverrouiller la
clé secrète pour l’utilisateur: Jacques-Olivier Lachaud <jacques-olivier.lacha
clé de 2048 bits ELG-E, ID 31BC7EF2, créée le 2008-02-06 (ID clé principale C2
*****************
gpg: chiffré avec une clé de 2048 bits ELG-E, ID 31BC7EF2, créée le 2008-02-06
Jacques-Olivier Lachaud <[email protected]>
gpg: Signature faite le jeu 07 fév 2008 17:41:24 CET avec la clé DSA ID AAF48B
gpg: Bonne signature de Jean Bon (Comme du bon pain) <[email protected]>
J.-O. Lachaud (LAMA)
INFO006
153 / 183
Cas d’étude : GnuPG XVII
13
Lorsque
votre clé ne sert plus, on la révoque en utilisant le certificat de révocation
$ gpg –import
-----BEGIN PGP PUBLIC KEY BLOCK----Version: GnuPG v1.4.6 (GNU/Linux)
Comment: A revocation certificate should follow
iFsEIBECABsFAkeq4MIUHQJNb3QgZGUgcGFzc2UgcGVyZHUACgkQELxoZar0i548
FwCgoHbQzsn9/CKYcbJPe9ooWvCnoGEAnjrXsgyUQQsAW2d7oupgr7VQ63VG
=utF/
-----END PGP PUBLIC KEY BLOCK----gpg: clé AAF48B9E: Jean Bon (Comme du bon pain) <[email protected]>
certificat de révocation importé
$ gpg –list-keys
...
pub
uid
1024D/AAF48B9E 2008-02-06 [revoqué: 2008-02-07]
Jean Bon (Comme du bon pain) <[email protected]>
J.-O. Lachaud (LAMA)
INFO006
154 / 183
Cas d’étude : GnuPG XVIII
$ gpg –keyserver pool.sks-keyservers.net –send-keys AAF48B9E
gpg: envoi de la clé AAF48B9E au serveur hkp pool.sks-keyservers.net
$ gpg –delete-secret-keys bon
$ gpg –delete-keys bon
J.-O. Lachaud (LAMA)
INFO006
155 / 183
Cas d’étude : GnuPG XIX
J.-O. Lachaud (LAMA)
INFO006
156 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
157 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
Arithmétiques modulo
Théorème de Fermat ; Algorithme(s) d’Euclide
Probabilités discrètes
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
158 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
Arithmétiques modulo
Théorème de Fermat ; Algorithme(s) d’Euclide
Probabilités discrètes
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
159 / 183
Congruence, anneau Zm I
Definition (Congruence, module)
Si a, b et m sont des entiers, m > 0, on écrit a ≡ b(mod m) si m divise
b − a (noté m|(b − a)). C’est une relation d’équivalence appelée
congruence modulo m. L’entier m est appelé module.
Si on divise a et b par m, on obtient des quotients et des restes. On vérifie
que a et b sont congrus ssi leurs restes sont égaux. Leurs restes sont entre
0 et m − 1.
Le reste de la division de a par m sera noté a mod m.
Montrer que la congruence est une relation d’équivalence
Montrer que les 4 définitions ci-dessous sont équivalentes :
1
2
3
4
la différence a − b est divisible par m ;
le reste de la division euclidienne de a par m est égal à celui de la
division de b par m, ie a mod m = b mod m
il existe un entier k tel que a − b = km,
a − b ∈ nZ, l’idéal de tous les entiers divisibles par n.
J.-O. Lachaud (LAMA)
INFO006
160 / 183
Congruence, anneau Zm II
Montrer que 101 ≡ 3(mod 7)
La congruence modulo n étant une relation d’équivalence sur l’ensemble
des entiers, on peut donc diviser cet ensemble en classes d’équivalences.
La classe d’équivalence de l’entier a est l’ensemble des entiers a0 tels que
a ≡ a0 (mod m). On la note [a]m , ou a + mZ, ou encore, tout simplement,
ȧ quand on sait de quel m on parle.
L’ensemble quotient de Z par la congruence modulo m est l’ensemble
{[a]m |a ∈ Z}, noté encore Z/mZ ou Zm .
Definition (Anneau commutatif Zm , m > 0)
On définit une addition et une multiplication sur Zm ainsi
[a]m + [b]m = [a + b]m
[a]m × [b]m = [a × b]m
On obtient ainsi les propriétés d’un anneau commutatif : addition interne,
commutative, associative, 0 neutre pour +, opposé de a est m − a,
J.-O. Lachaud (LAMA)
INFO006
161 / 183
Congruence, anneau Zm III
multiplication interne, commutative, associative, 1 neutre pour ×,
distributivité de × sur +.
On peut faire des soustractions par addition d’opposé
Exemple : [8]12 × [3]12 + [6]12 = [6]12
Calculer ab mod 26, pour b = 2, 3, 4, 5, . . . et a quelconque entre 0 et
25.
Quand est-ce que tous les entiers de Z26 sont générés ?
Vérifier que (a mod m)(b mod m) ≡ ab(mod m). En déduire que (a
mod m)n ≡ an (mod m).
J.-O. Lachaud (LAMA)
INFO006
162 / 183
Inverse dans Zm, corps Zp avec p premier I
Theorem
L’équation ax ≡ b(mod m) admet une solution unique x ∈ Zm pour tout
b ∈ Zm ssi pgcd(a, m) = 1.
Soit a ∈ Zm. Un inverse de a est un élément a−1 ∈ Zm tel que
aa−1 ≡ a−1 a ≡ 1(mod m).
Exercices :
S’il existe, cet inverse est unique.
D’après le théorème précédent, a admet un inverse modulo m ssi
pgcd(a, m) = 1.
Vérifier que pour m premier, Zm est alors un corps.
J.-O. Lachaud (LAMA)
INFO006
163 / 183
Inverse dans Zm, corps Zp avec p premier II
Definition (fonction indicatrice d’Euler φ)
Soient des entiers a ≥ 1 et m ≥ 2. Si pgcd(a, m) = 1, on dit que a et m
sont premiers entre eux. Le nombre des entiers de Zm qui sont premiers
avec m est noté φ(m), et φ est la fonction indicatrice d’Euler.
Fig.: 1000 premières valeurs de φ.
J.-O. Lachaud (LAMA)
INFO006
164 / 183
Inverse dans Zm, corps Zp avec p premier III
On rappelle que tout nombre m > 1 se factorise de manière unique en
produits de puissances de nombres premiers [Théorème fondamental de
l’arithmétique] (e.g. 98 = 2 × 72 ).
Theorem
Si m = Πni=1 piei , où les pi sont premiers distincts. Alors
φ(m) = Πni=1 (piei − piei −1 ).
Démonstration.
On utilise le fait que si u et v sont premiers entre eux et strictements
positifs, alors φ(uv ) = φ(u)φ(v ). On montre ensuite par récurrence sur m
que φ(m) = Πni=1 φ(piei ), en utilisant le caractère multiplicatif de φ. Puis
φ(piei ) = piei − piei −1 , car les entiers 1 × pi , 2 × pi , . . . , piei −1 × pi sont les
seuls entiers non premiers avec piei , ce qui conclut.
Exercices :
J.-O. Lachaud (LAMA)
INFO006
165 / 183
Inverse dans Zm, corps Zp avec p premier IV
φ(40) = φ(5 · 23 ) = (5 − 1)(23 − 22 ) = 16 = 40(1 − 1/5)(1 − 1/2) =
160/10.
Si m premier, que vaut φ(m) ?
Montrez que φ(m) = mΠni=1 (1 −
J.-O. Lachaud (LAMA)
1
pi ).
INFO006
166 / 183
Quelques propriétés asymptotiques de primalité I
il y a une infinité de nombres premiers.
Soit π(n) le nombre de nombres premiers inférieurs à n.
π(n)
= 1.
n→+∞ n/ ln n
lim
∀n ≥ 5, φ(n) ≥
J.-O. Lachaud (LAMA)
n
6 ln ln n
INFO006
167 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
Arithmétiques modulo
Théorème de Fermat ; Algorithme(s) d’Euclide
Probabilités discrètes
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
168 / 183
Théorème de Fermat et autres
Z∗n : Ensemble des résidus modulo n premiers avec n. (|Z∗n | = φ(n))
Z∗5 = {1, 2, 3, 4}, Z∗6 = {1, 5}
L’ordre d’un élément g dans un groupe multiplicatif est le plus petit m > 0
tel que g m = 1.
Theorem (Lagrange)
Si G est un groupe multiplicatif à n éléments et si g ∈ G , alors l’ordre de g
divise n.
Corollary (Petit théorème de Fermat)
Si a ∈ Z et p premier, alors ap ≡ a(mod p).
Corollary (Euler)
Si b ∈ Z∗n , alors bφ(n) ≡ 1(mod n).
Exemples : 46 mod 7 = 1, 36 mod 7 = 1, 52 mod 6 = 1, etc
J.-O. Lachaud (LAMA)
INFO006
169 / 183
Calcul du pgcd
Algorithme d’Euclide de calcul du pgcd
INPUT: a, b dans Z, a >= b >= 0
OUTPUT: pgcd(a,b)
1. Tant que b != 0 faire
1.1 r := a mod b, a := b, b := r
2. Retourner a
Complexité : O((log n)3 ) opérations de bits.
(analyse précise : O((log n)2 ))
J.-O. Lachaud (LAMA)
INFO006
170 / 183
Algorithme d’Euclide étendu
Algorithme d’Euclide étendu
INPUT: a, b dans Z, a >= b >= 0
OUTPUT: d = pgcd(a,b), x et y tq a*x+b*y=d.
1. Si b = 0 alors
1.1 d := a, x := 1, y := 0.
1.2 retourner (d,x,y)
2. x2 := 1, x1 := 0, y2 := 0, y1 := 1.
3. Tant que b > 0, faire
3.1 q := a div b, r := a - q*b.
3.2 x := x2 - q*x1, y := y2 - q*y1.
3.3 a := b, b := r.
3.4 x2 := x1, x1 := x, y2 := y1, y1 := y.
4. d := a, x := x2, y := y2.
5. retourner (d, x, y );
Complexité : O((log n)2 ) opérations de bits
Montrez
qu’à tout passage de INFO006
3.4, on a r = a0 x + b0 y . (point fixe
J.-O.
Lachaud (LAMA)
171de
/ 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
Arithmétiques modulo
Théorème de Fermat ; Algorithme(s) d’Euclide
Probabilités discrètes
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
172 / 183
Expérience, probabilité I
expérience : procédure qui a une issue (événement simple s1 , s2 , . . . ) parmi
un ensemble d’issues possibles (univers S)
distribution de probabilités P sur S : suite de nombres positifs pi associée à
chaque si , de somme 1. pi est la probabilité que l’événement si soit l’issue
de l’expérimentation.
Definition (Evénement)
événement E : sous-ensemble de S. La probabilité de E est la somme
P des
probabilités de chaque événement élémentaire de E , i.e. Pr[E ] = si ∈E pi .
O ≤ Pr[E ] ≤ 1. Pr[S] = 1 et Pr[∅] = 0.
Pr[E ] = 1 − Pr[E ].
Si les pi sont identiques, Pr[E ] =
|E |
|S| .
Pr[E1 ∩ E2 ] est la probabilité mutuelle de E1 et E2 . Deux événements sont
mutuellement exclusifs ssi Pr[E1 ∩ E2 ] = 0
J.-O. Lachaud (LAMA)
INFO006
173 / 183
Expérience, probabilité II
si E1 ⊆ E2 alors Pr[E1 ] ≤ Pr[E2 ]
Pr[E1 ∪ E2 ] + Pr[E1 ∩ E2 ] = Pr[E1 ] + Pr[E2 ].
Montrez que l’événement “deux jets de pièces donnent un pile et un
face” a une probabilité 1/2.
Montrez que l’événement “la somme de deux jets de dés vaut 3” a une
probabilité 1/12. On utilisera une expérience définie sur
{1, 2, 3, 4, 5, 6} × {1, 2, 3, 4, 5, 6}.
En déduire que la somme d’une paire de dés est une expérience. Quelle
est sa distribution de probabilités ?
J.-O. Lachaud (LAMA)
INFO006
174 / 183
Expérience, probabilité III
Definition (Probabilité conditionnelle)
Si E1 et E2 sont deux événements, Pr[E2 ] > 0. La probabilité conditionnelle
de E1 étant donné E2 est
Pr[E1 |E2 ] =
Pr[E1 ∩ E2 ]
.
Pr[E2 ]
Cela mesure la probabilité que E1 se réalise, sachant que E2 s’est réalisé.
Les événements E1 et E2 sont indépendants ssi Pr[E1 ∩ E2 ] = Pr[E1 ]Pr[E2 ].
Theorem (Théorème de Bayes)
Soient E1 et E2 deux événements. Si Pr[E2 ] > 0, on a
]Pr[E2 |E1 ]
Pr[E1 |E2 ] = Pr[E1Pr[E
.
2]
En déduire que E1 et E2 sont indépendants ssi Pr[E1 |E2 ] = Pr[E1 ].
J.-O. Lachaud (LAMA)
INFO006
175 / 183
Variable aléatoire I
Definition (Variable aléatoire discrète)
Une variable aléatoire discrète X est une fonction de S vers un espace T
(souvent R).
La probabilité que X se réalise en x est la probabilité de l’événement E tel
que E = {s ∈ S, X (s) = x}.
Pr[X = x] = Pr[X −1 (x)] =
X
si ∈S,X (si )=x
Pr[{si }] =
X
pi
si ∈S,X (si )=x
.
La fonction “valeur d’un dé” est une vad de {1, 2, 3, 4, 5, 6} vers R
(qui prend seulement 6 valeurs)
La fonction “somme de deux dés” est une vad de
{1, 2, 3, 4, 5, 6} × {1, 2, 3, 4, 5, 6} vers R (qui prend seulement 11
valeurs). Que vaut Pr[X = 11] ?
J.-O. Lachaud (LAMA)
INFO006
176 / 183
Variable aléatoire II
Soit X la vad “somme de deux dés” et soit Y la vad qui prend la
valeur 1 si les dés forment un double, 0 sinon. Déterminez d’abord
Pr[Y = 1] et Pr[Y = 0]. Calculer ensuite Pr[Y = 1|X = 4] et
Pr[X = 4|Y = 1]. Vérifier la relation de Bayes.
Definition (Espérance)
Si X est P
une vad sur S, l’espérance de X (ou moyenne de X ) est
E (X ) = si ∈S X (si )Pr[si ].
Montrez que E (X ) =
P
x∈T
xPr[X = x].
Quelles sont les espérances de “valeur d’un dé”, “somme de deux dés”,
“double vaut 1, sinon 0” ?
Montrez la linéarité de l’espérance, i.e. si X1 et X2 sont des vad sur S,
alors E (a1 X1 + a2 X2 ) = a1 E (X1 ) + a2 E (X2 ).
J.-O. Lachaud (LAMA)
INFO006
177 / 183
Variable aléatoire III
Definition (Evénement identifié d’une expérience)
Une expérience sur un espace des échantillons X sera souvent noté X. Par
abus, l’événement “l’expérience X a eu pour issue l’éventualité x” sera noté
par X = x, où x ∈ X . Sa probabilité est Pr X = x = Pr x.
Ainsi si X = {1, 2, 3, 4, 5, 6}, les expériences “premier jet de dé vaut j”
et “deuxième jet de dé vaut 7 − j” sont notées X1 = j et X2 = 7 − j.
Leur probabilités sont 1/6 pour tout j.
Par abus, on peut les voir comme des variables aléatoires discrètes
triviales, qui sont des fonctions identité (cf plus loin).
J.-O. Lachaud (LAMA)
INFO006
178 / 183
Plan
1
Introduction à la sécurité et à la cryptologie
2
Cryptosystèmes et science de la cryptologie
3
Sécurité informatique et réseaux
4
Mathématiques utiles pour la cryptologie
5
Bibliographie
J.-O. Lachaud (LAMA)
INFO006
179 / 183
Références et lectures I
Cryptologie
D. Stinson.
Cryptographie – Théorie et pratique.
Vuibert, Paris, 2003.
B. Martin.
Codage, cryptologie et applications.
Presses Polytechniques Universitaires Romandes, Lausanne, 2004.
Sécurité informatique
J.-F. Pillou.
Tout sur la sécurité informatique.
Dunod, Paris, 2005.
L. Bloch and C. Wolfhugel.
Sécurité informatique – Principes et méthodes.
Eyrolles, Paris, 2007.
J.-O. Lachaud (LAMA)
INFO006
180 / 183
Références et lectures II
B. Favre and P.-A. Goupille.
Guide pratique de sécurité informatique – Mise en œuvre sous
Windows et Linux.
Dunod, Paris, 2005.
Réseaux et Sécurité
S. Ghernaouti-Hélie.
Sécurité informatique et réseaux.
Dunod, Paris, 2006.
G. Pujolle.
Les réseaux.
Eyrolles, Paris, 6ème édition, 2007.
J.-O. Lachaud (LAMA)
INFO006
181 / 183
Webographie I
Sites généraux sur la cryptologie et les mathématiques
I
I
I
Wikipedia [http ://fr.wikipedia.org/wiki/Cryptologie]
MathWorld [http ://mathworld.wolfram.com]
Appprendre En Ligne
[http ://www.apprendre-en-ligne.net/crypto/menu/index.html]
I
Handbook of applied cryptography
[http ://www.cacr.math.uwaterloo.ca/hac/]
Organismes liés à la sécurité sur Internet
I
I
Internet Crime Complaint Center (IC3) [http ://www.ic3.gov]
les RFCs de l’Internet Engineering Task Force (IETF) [www.ietf.org]
Entreprises prenant part à la sécurité
I
Bulletins sécurité de Microsoft [http ://www.microsoft.com/technet/security/]
Organismes liés à la sécurité des réseaux universitaires
I
I
CERT Renater [http ://www.renater.fr/rubrique.php3 ?id_rubrique=19]
Bulletins de vulnérabilités du CERT Renater
[http ://sites.univ-provence.fr/wcri/d_serv/d_reseau/d_cert/courant/index.html]
I
CRU Comité Réseau des Universités [http ://www.cru.fr]
J.-O. Lachaud (LAMA)
INFO006
182 / 183
Webographie II
Magazines en ligne sur la sécurité
I
I
Journal du Net [http ://www.journaldunet.com/solutions/securite/]
CommentCaMarche.Net [http ://www.commentcamarche.net]
Entreprises spécialisées (proposant des informations en ligne)
I
I
SOPHOS [http ://www.sophos.fr]
Symantec [http ://www.symantec.com]
PGP et GnuPG
I
I
I
I
Site officiel de PGP [http ://www.pgp.com]
Site officiel de GnuPG [http ://www.gnupg.org]
Introduction à GnuPG [http ://gpglinux.free.fr/]
GnuPG pour Thunderbird / EnigMail
[http ://enigmail.mozdev.org/home/index.php]
I
RFC 4880 sur OpenPGP [http ://www.ietf.org/rfc/rfc4880.txt]
J.-O. Lachaud (LAMA)
INFO006
183 / 183

Documents pareils