Examen cryptographie m2 protocoles needham schroeder et expo
Télécharger PDFExercice 1 : Protocoles Needham-Schroeder
On étudie le protocole de chiffrement de communications conçu par Needham et Schroeder en 1978 pour les algorithmes de chiffrement symétriques.
Q1. Étape 4 : Pourquoi Alice envoie-t-elle la clé de session KAB à Bob sous forme chiffrée ?
Alice chiffre la clé de session KAB pour garantir sa confidentialité et son intégrité. Cela empêche un attaquant potentiel d’intercepter et d’utiliser cette clé, qui est temporaire et doit rester secrète pour sécuriser la communication entre les deux parties.
Q2. Étape 4 : Comment Alice chiffre-t-elle KAB avec la clé secrète de Bob KB, alors qu’elle ne connaît pas Kg ?
Alice utilise la clé publique de Bob (ou son identité) pour chiffrer KAB avec la clé secrète KB partagée lors des étapes précédentes du protocole. En réalité, elle applique une fonction de chiffrement symétrique avec KB, qu’elle a obtenue lors de l’échange initial de clés.
Q3. Étape 5 : Pourquoi Bob envoie-t-il un nombre aléatoire Rg à Alice ?
Bob envoie Rg pour prouver à Alice qu’il a bien reçu et déchiffré le message précédent. Ce nombre aléatoire est utilisé pour authentifier la session et éviter les attaques par répétition (replay attacks).
Q4. Ce protocole est vulnérable à une certaine attaque. La décrire précisément.
Le protocole Needham-Schroeder est vulnérable à l’attaque par répétition (replay attack) et à l’attaque par l’homme du milieu (man-in-the-middle) si la clé de session n’est pas gérée correctement. Un attaquant peut intercepter et réutiliser des messages chiffrés pour usurper l’identité d’un participant.
Q5. Expliquer comment cette attaque a été circonscrite dans le protocole Kerberos.
Kerberos utilise un ticket de session valable pour une durée limitée et un timestamp pour garantir la fraîcheur des échanges. Chaque ticket est lié à un horodatage, ce qui permet de détecter et rejeter les messages répétés. De plus, Kerberos repose sur un serveur d’autorisation centralisé (KDC) pour distribuer les clés de manière sécurisée.
Exercice 2 : Exponentiation modulo n
La fonction d’exponentiation rapide modulo n combine deux jeux de propriétés : l’efficacité et la récursivité. L’objectif de cet exercice est de les mettre en évidence séparément.
Q1. Écrire en C une fonction récursive qui calcule ap mod n en p étapes.
unsigned long expmod(unsigned long a, unsigned long p, unsigned long n) { if (p == 0) return 1; unsigned long result = expmod(a, p - 1, n) % n; return (a * result) % n; }
Q2. Rappeler la/les propriété(s) du calcul sur les nombres modulo n que cette fonction utilise.
La fonction utilise la propriété de modularité : (a × b) mod n = [(a mod n) × (b mod n)] mod n. Elle exploite également la réduction progressive du calcul pour éviter les dépassements de capacité.
Q3. Écrire en C une fonction récursive qui calcule ap en O(log p) étapes.
unsigned long exprapide(unsigned long a, unsigned long p) { if (p == 0) return 1; if (p % 2 == 0) { unsigned long temp = exprapide(a, p / 2); return temp * temp; } else { return a * exprapide(a, p - 1); } }
Q4. Rappeler la/les propriété(s) du calcul sur les puissances que cette fonction utilise.
Cette fonction utilise la propriété de récursivité exponentielle : ap = (ap/2)2 si p est pair, et ap = a × ap-1 si p est impair. Elle optimise le calcul en divisant le problème par deux à chaque étape.
Q5. Lister les étapes suivies pour calculer 1015.
1. Calculer 108 (car 15 = 8 + 7). 2. Calculer 104 (car 8 = 4 + 4). 3. Calculer 102 (car 4 = 2 + 2). 4. Élever le résultat de 102 au carré pour obtenir 104. 5. Élever le résultat de 104 au carré pour obtenir 108. 6. Multiplier 108 par 107 (calculé récursivement).
FAQ
Qu’est-ce qu’un protocole Needham-Schroeder ?
C’est un protocole d’authentification mutuelle conçu en 1978 pour sécuriser les communications entre deux parties utilisant un chiffrement symétrique.
À quoi sert l’exponentiation modulo n ?
Elle permet de calculer rapidement des grandes puissances sous modulo n, utile en cryptographie (comme dans RSA) pour éviter les nombres trop longs et optimiser les calculs.
Quelle est la différence entre expmod et exprapide ?
expmod calcule directement ap mod n en p étapes, tandis que exprapide utilise une méthode récursive optimisée pour réduire le nombre d’opérations à O(log p).