Initiation à la Cryptographie Exercice 1 Serveur Exercice 2 Calcul

Transcription

Initiation à la Cryptographie Exercice 1 Serveur Exercice 2 Calcul
Initiation à la Cryptographie
ESIAL 2A TRS – examen 2013 – 7 mars 2013, 8h-10h
Tous documents autorisés. La calculatrice est le seul appareil électronique toléré (mais elle ne sert à rien).
Ce sujet comporte cinq exercices distincts, indépendants, et pouvant être traités dans n’importe quel
ordre. Au sein d’un exercice, les questions dépendent généralement les unes des autres (pas tout le temps). On
appréciera les réponses rédigées avec soin et précision.
Exercice 1
Serveur
On considère un serveur dont la tâche est d’offir une connexion VPN (réseau privé virtuel) aux salariés
d’une entreprise lorsque ceux-ci sont en déplacement. Les objectifs sont les suivants.
— L’ensemble des clients (ordinateurs portables des salariés de l’entreprise), lorsqu’ils initient une
connexion avec le serveur VPN, doivent pouvoir s’assurer qu’ils sont bien en contact avec le
bon serveur.
— Le serveur a pour vocation de converser de manière sécurisée avec le client, notamment pour
mener la phase d’authentification du client. Pour celle-ci, le schéma voulu inclut une authentification du client par mot de passe.
— Une fois le client et le serveur authentifiés, l’ensemble des communications entre le client et le
serveur qui transitent par le réseau doivent être chiffrées.
— La sécurité du système ne doit en aucun cas être compromise si l’un des clients est volé (aucune clé secrète globale, par exemple, ne doit être stockée sur les disques durs des ordinateurs
portables).
1.1
On vous demande de désigner quels mécanismes cryptographiques peuvent être employés
pour offrir les trois premières des garanties ci-dessus, étant entendu qu’il faut rester compatible avec
la quatrième. On veillera en particulier à détailler ce qui doit être installé sur les clients garantir
le premier point (l’entreprise gérant son parc informatique, elle est en capacité d’installer ce qu’elle
souhaite sur les machines clientes lorsqu’elles sont «dans la maison»).
Exercice 2
2.1
Calcul mental
Donner les résultats des calculs suivants. Justifier.
— 8164 mod 257 ;
— 2314 mod 4096 ;
Exercice 3
LFSR
On considère un LFSR représenté comme suit :
x0 x1 x2 x3
1 0 1 1
3.1
ki
Quelle est la période maximale que peut avoir un LFSR de cette longueur ?
3.2
Écrire les équations qui donnent l’état interne du LFSR à l’étape n + 1 en fonction de l’état
interne à l’étape n. Écrire la matrice de transition M d’un état interne à l’autre. Quel est le polynôme
caractéristique de la matrice M ?
3.3
Donner la période du LFSR ci-dessus. Est-elle maximale ? Ceci est-il cohérent avec le polynôme
caractéristique que vous avez calculé pour M ?
3.4
Pouvez-vous proposer un exemple de LFSR de longueur 4 dont la période est maximale ?
1
Exercice 4
Collisions de fonction de hachage
Un MAC (Message Authentication Code) est une donnée auxiliaire c transmise en clair en même temps
qu’un message clair m, et ayant pour but de prouver l’authenticité du message. Le MAC associé à m
ne peut être calculé qu’avec une clé secrète k, qui doit donc être connue à la fois de l’émetteur (Alice)
et du récepteur (Bob). On a donc une fonction paramétrée par une clé qu’on note MACk . Diverses
constructions pour MACk peuvent être imaginées.
Pour énoncer les objectifs de sécurité d’un MAC, on considère un attaquant disposant du pouvoir de
faire produire par l’un des acteurs honnêtes (Alice ou Bob) un nombre arbitraire de MACs de message
qu’il choisit, «signés» avec la clé secrète connue uniquement d’Alice et Bob. On appelle ensemble
des requêtes, et on note Q, l’ensemble des messages m pour lesquels l’attaquant a demandé le MAC
correspondant à Alice ou Bob. On inclut en outre dans Q l’ensemble des MAC calculés par Alice et
Bob, et émis sur le canal public, puisque l’attaquant est supposé avoir pu les écouter.
Malgré ce pouvoir, on considère que le MAC est sûr si l’ensemble des tâches suivantes sont irréalisables
pour l’attaquant (qui ne connaît pas k).
— Étant donné m 6∈ Q, calculer MACk (m).
— Étant donné un couple (m, c = MACk (m)) valide, construire un couple (m0 , c = MACk (m))
valide avec m0 6∈ Q, et m0 entretenant un lien quelconque avec m.
— Construire un couple (m, c = MACk (m)) valide avec m 6∈ Q.
4.1
Ordonner les objectifs de sécurité ci-dessus, en expliquant lesquels demandent le plus de travail
à l’attaquant.
4.2
Expliquer pourquoi MACk (m) = H(m) (donc sans utilisation d’une clé) ne convient pas.
Dans ce qui suit, H est une fonction de hachage utilisant le schéma de Merkle-Damgård vu en cours.
4.3
La proposition MACk (m) = H(k||m) peut-elle convenir ? Si non, donner un objectif de sécurité
du MAC qui ne serait pas honoré par cette construction.
4.4
On suppose que la fonction de hachage utilisée a une faiblesse, et que l’attaquant connaît
une collision de cette fonction, sous la forme d’un couple (x 6= x0 ) tel que H(x) = H(x0 ). Dans ce
cas, si on utilise un MAC construit avec MACk (m) = H(m||k), quelle attaque peut être réalisée par
l’attaquant ?
Exercice 5
Double exponentiation
Soit G un groupe. On souhaite s’intéresser à des opérations dans G. L’unité de mesure choisie est le
produit dans G. On dit donc que le coût pour calculer le produit de a et b dans G est 1. De même, le
coût pour calculer a2 est 1.
Les entiers x et y, dans ce qui suit, sont des entiers de k bits.
5.1
Par la méthode naïve consistant à multiplier a par lui-même x fois, quel est le coût du calcul
de ax ?
5.2
Par la méthode d’exponentiation rapide, quel est le coût du calcul de ax (donner une expression
faisant apparaître séparément les carrés et les produits) ?
5.3
Quel est le nombre de chiffres de l’écriture de x en base 4 ? Après le précalcul des grandeurs
{1, a, a2 , a3 }, comment peut-on optimiser le calcul de ak en l’exprimant à l’aide de produits et de
puissances 4-èmes ?
5.4
Soient a et b deux éléments de G. On souhaite calculer ax by plus efficacement qu’en calculant
séparément les deux puissances. Montrer qu’on peut économiser la moitié des calculs de carrés. (On
peut commencer en réfléchissant au calcul de a9 b14 , par exemple. À titre d’indice, cet élément de G
peut être calculé à partir de a4 b7 au moyen d’un produit et d’un carré). Quelle application pouvez-vous
imaginer ?
— fin du sujet —
2