<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de NSI/Terminale/Sécurisation des communications</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Chiffrement symétrique (clé secrète) et asymétrique (clés<br/>
publique/privée), fonctions de hachage cryptographiques,<br/>
signature numérique, certificats, protocole TLS, principes<br/>
fondamentaux de la cryptographie moderne.</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q01 : Définition du chiffrement</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que désigne précisément le <strong>chiffrement</strong> d'un message ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cryptologie = cryptographie (chiffrement, signature) +<br/>
cryptanalyse (cassage des codes). Le terme « cryptage »<br/>
est un anglicisme à éviter en français : on dit<br/>
« chiffrement ».</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La compression d'un fichier pour gagner de la place</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la compression et le chiffrement sont des<br/>
opérations distinctes. La compression réduit la<br/>
taille, le chiffrement protège la confidentialité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Rendre le message illisible sans la clé</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le chiffrement protège la<br/>
<strong>confidentialité</strong>. Le message « clair » devient un<br/>
« chiffré » ou « cryptogramme ». Seul le détenteur<br/>
de la clé peut le déchiffrer.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La signature d'un document</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la signature numérique est une autre<br/>
opération cryptographique, qui garantit l'authenticité<br/>
(qui ?) et l'intégrité (a-t-il été modifié ?), pas la<br/>
confidentialité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La transformation du message en chiffres uniquement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : confusion possible avec le mot « chiffres ».<br/>
Le chiffrement transforme un message en une forme<br/>
illisible sans la bonne clé, mais pas spécifiquement<br/>
en chiffres.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q02 : Chiffrement symétrique</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'est-ce qu'un chiffrement <strong>symétrique</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>AES est aujourd'hui le chiffrement symétrique le plus utilisé. Comme dans le chiffrement de César, bien plus ancien et facile à casser, la même clé secrète sert à chiffrer et à déchiffrer.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un chiffrement où l'on utilise deux clés différentes : une publique et une privée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la définition du chiffrement<br/>
<strong>asymétrique</strong>, pas symétrique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un chiffrement où la même clé sert au chiffrement et au déchiffrement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le chiffrement de César ou AES en sont des exemples. La clé doit être partagée entre l'expéditeur et le destinataire avant l'échange. C'est rapide mais pose le problème de la <strong>distribution</strong> de la clé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un chiffrement qui ne nécessite aucune clé</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un chiffrement sans clé serait facilement<br/>
déchiffrable par toute personne connaissant<br/>
l'algorithme. Ce serait un encodage, pas un<br/>
chiffrement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un chiffrement qui inverse l'ordre des caractères</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est une simple transposition, qui n'est<br/>
pas un chiffrement moderne (et ne nécessite pas de<br/>
clé).</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q03 : Chiffrement asymétrique</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel est le principe du chiffrement <strong>asymétrique</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le chiffrement asymétrique résout le problème de la<br/>
distribution des clés : pour qu'Alice envoie un message<br/>
chiffré à Bob, elle utilise simplement la clé publique<br/>
de Bob, qu'il a déjà publiée. Pas besoin d'échange<br/>
préalable secret.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le message est chiffré et déchiffré avec la même clé</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la définition du chiffrement<br/>
<strong>symétrique</strong>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Deux algorithmes de chiffrement différents sont utilisés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : « asymétrique » fait référence à<br/>
l'asymétrie des clés (publique vs privée), pas des<br/>
algorithmes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>On utilise deux algorithmes simultanément pour plus de sécurité</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport. L'asymétrie concerne les clés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une clé publique chiffre, une clé privée déchiffre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on génère un <strong>couple</strong> (clé publique,<br/>
clé privée). La clé publique peut être diffusée<br/>
librement ; tout le monde peut chiffrer pour vous.<br/>
Seul le détenteur de la clé privée peut déchiffrer.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q04 : RSA</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Sur quelle difficulté mathématique repose la sécurité de<br/>
l'algorithme <strong>RSA</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>RSA (Rivest-Shamir-Adleman, $1977$) est l'algorithme<br/>
asymétrique le plus connu. La sécurité dépend de la<br/>
taille de $N$ : aujourd'hui, on recommande au moins<br/>
$2048$ bits.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Factoriser un grand nombre en facteurs premiers</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la clé publique contient le produit<br/>
$N = p \cdot q$ de deux grands nombres premiers. Si<br/>
on savait factoriser $N$ rapidement, on pourrait<br/>
retrouver la clé privée. Pour des $N$ de plusieurs<br/>
milliers de bits, c'est encore impossible avec les<br/>
ordinateurs classiques.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La difficulté de calculer la racine carrée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la racine carrée se calcule en temps<br/>
polynomial. RSA repose sur d'autres problèmes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La difficulté de trier de grandes listes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le tri n'a aucun rapport avec RSA. Le tri<br/>
est un problème facile.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La difficulté de calculer le produit de deux nombres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la <strong>multiplication</strong> est facile (polynomial),<br/>
c'est l'opération inverse qui est difficile.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q05 : Une clé publique qui circule en clair</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Au début d'une connexion HTTPS, le serveur envoie sa <strong>clé publique</strong> au navigateur sans la chiffrer. Un espion qui se contente d'observer le réseau peut donc la lire. Est-ce un problème pour la confidentialité des échanges ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une clé publique est faite pour être diffusée : la connaître ne donne aucun moyen de déchiffrer. Toute la sécurité repose sur la clé privée, qui ne quitte jamais le serveur.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Non, cette clé permet de chiffrer mais pas de déchiffrer</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ce que la clé publique chiffre, seule la clé privée du serveur peut le déchiffrer. L'espion qui la connaît peut chiffrer des messages pour le serveur, mais pas lire ceux que le navigateur lui envoie.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Oui, l'espion peut déchiffrer la clé de session avec elle</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la clé de session est chiffrée avec la clé publique, et seule la clé privée correspondante permet de la déchiffrer. La clé publique ne sert à rien pour cette opération.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Oui, il faudrait l'envoyer chiffrée avec une clé symétrique</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le navigateur et le serveur ne partagent encore aucune clé symétrique à ce stade. Le chiffrement asymétrique sert justement à se passer de ce secret commun préalable.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Non, car l'espion ne peut pas lire les paquets d'une connexion HTTPS</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un espion placé sur le réseau voit passer tous les paquets. HTTPS rend leur contenu illisible, mais la clé publique, envoyée en clair, est bel et bien lisible.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q06 : Un algorithme de chiffrement rendu public</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Les algorithmes de chiffrement utilisés sur Internet sont publiés en détail et étudiés par des chercheurs du monde entier. Pourquoi cette publicité ne compromet-elle pas la sécurité des messages chiffrés ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un bon chiffrement reste sûr même quand l'adversaire connaît tout de son fonctionnement : seule la clé doit rester secrète. À l'inverse, le chiffrement de César n'est pas cassé parce que sa méthode est connue, mais parce qu'il n'offre que $26$ clés possibles.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les algorithmes publiés sont modifiés chaque jour par leurs auteurs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un algorithme de chiffrement reste stable pendant des années, pour que tous les logiciels puissent l'utiliser de la même façon. C'est la clé qui change d'un échange à l'autre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Seuls les chercheurs autorisés ont le droit de lire ces publications</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ces publications sont accessibles à tous, attaquants compris. La sécurité ne peut donc pas reposer sur leur confidentialité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La sécurité repose sur le secret de la clé, pas sur l'algorithme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : connaître l'algorithme ne suffit pas pour déchiffrer, il faut aussi la clé. Publier l'algorithme permet en outre à de nombreux experts d'y chercher des failles avant les attaquants.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La sécurité repose sur un algorithme publié de façon incomplète</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'algorithme est publié en entier. Un chiffrement dont la sécurité dépend du secret de son fonctionnement est fragile, car ce secret finit toujours par être découvert.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q07 : Rôle du TLS</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>À quoi sert le protocole <strong>TLS</strong> sur le web ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>TLS combine chiffrement asymétrique, pour échanger une clé symétrique, et chiffrement symétrique, rapide, pour le gros des données.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À accélérer le chargement des pages</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : TLS introduit au contraire un léger<br/>
surcoût initial (établissement de la connexion).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À rendre le site web compatible avec tous les navigateurs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : TLS n'a pas de rôle de compatibilité. Son<br/>
rôle est la sécurité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À traduire les noms de domaines en adresses IP</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le rôle du DNS, pas de TLS.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Sécuriser la communication entre navigateur et serveur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : TLS (Transport Layer Security) chiffre les données échangées en HTTPS. Il succède à SSL.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q08 : Chiffrer son propre disque dur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Camille veut chiffrer le disque dur de son ordinateur portable pour que ses fichiers restent illisibles en cas de vol. Elle sera la seule à chiffrer et à déchiffrer ces données. Quel type de chiffrement convient le mieux ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'asymétrique résout un problème précis : communiquer avec quelqu'un sans secret partagé au préalable. Quand la même personne chiffre et déchiffre, ce problème n'existe pas, et le symétrique, plus rapide, s'impose.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un chiffrement asymétrique, car il est plus rapide sur de gros volumes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse, l'asymétrique est bien plus lent que le symétrique. On le réserve à de petites données, comme une clé à transmettre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un chiffrement symétrique, avec une clé secrète qu'elle seule connaît</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : une seule personne chiffre et déchiffre, donc aucune clé n'est à transmettre et le problème de la distribution des clés ne se pose pas. Le symétrique est de plus bien plus rapide pour traiter de gros volumes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucun chiffrement, un mot de passe de session suffit à protéger le disque</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le mot de passe de session protège l'accès au système, pas les données du disque. Un voleur qui branche le disque sur un autre ordinateur lit les fichiers sans rien saisir.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un chiffrement asymétrique, pour publier sa clé privée en toute sécurité</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une clé privée ne se publie jamais, c'est la clé publique qui se diffuse. Et sans destinataire à qui écrire, l'asymétrique n'apporte rien ici.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q09 : Allonger une clé d'un bit</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Une clé secrète de $40$ bits laisse $2^{40}$ clés possibles à un attaquant qui les essaie toutes. On passe à une clé de $41$ bits. Comment évolue le nombre de clés à essayer ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Avec $n$ bits, il existe $2^n$ clés. Ajouter $10$ bits multiplie le nombre de clés par $2^{10} = 1024$ : allonger modestement une clé suffit à rendre la force brute impraticable.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il augmente de $1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ajouter un bit ne crée pas 1 clé(s) supplémentaire(s). Chaque clé de $40$ bits se prolonge de $2$ façons, ce qui donne $2$ clés de $41$ bits.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il est multiplié par $41$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on passe de $2^{40}$ à $2^{41}$, et non de $2^{40}$ à $41 \times 2^{40}$. Le nombre de bits est un exposant, pas un facteur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il est élevé au carré</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : élever $2^{40}$ au carré donnerait $2^{80}$, ce qui correspond à doubler la longueur de la clé, pas à lui ajouter un bit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Il est multiplié par $2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $2^{41} = 2 \times 2^{40}$. Chaque bit ajouté double le nombre de clés, et donc la durée d'une attaque par force brute.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q10 : Clé privée perdue</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Lina a publié sa clé publique, et plusieurs amis l'utilisent pour lui écrire. Son ordinateur tombe en panne et elle perd sa <strong>clé privée</strong>, dont elle n'avait aucune copie. Quelle est la conséquence ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En asymétrique, la clé privée est le seul moyen de déchiffrer. La perdre rend illisibles tous les messages chiffrés pour son propriétaire, qui doit repartir d'une nouvelle paire de clés.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle retrouve sa clé privée à partir de sa clé publique, qui est connue</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : si l'on pouvait déduire la clé privée de la clé publique, n'importe qui pourrait le faire et le chiffrement asymétrique ne protégerait rien.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Ses amis peuvent lui renvoyer une copie de sa clé privée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ses amis n'ont jamais eu la clé privée de Lina, qui ne quitte pas son propriétaire. Ils ne possèdent que sa clé publique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle ne peut plus lire les messages chiffrés avec sa clé publique</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : seule la clé privée associée déchiffre ce que la clé publique a chiffré. Lina doit générer une nouvelle paire de clés et diffuser sa nouvelle clé publique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Rien ne change, car sa clé publique suffit pour déchiffrer</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la clé publique sert à chiffrer, pas à déchiffrer. Si elle permettait de lire les messages, tous ceux qui la connaissent pourraient le faire.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q11 : Chiffrement hybride</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pourquoi TLS combine-t-il un chiffrement asymétrique et<br/>
un chiffrement symétrique (chiffrement « hybride ») ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>AES sur $128$ bits offre un niveau de sécurité<br/>
équivalent à RSA sur environ $3072$ bits, mais bien<br/>
plus vite. C'est pour cela qu'on échange juste une clé<br/>
AES via RSA, puis qu'on chiffre les données avec AES.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>L'asymétrique sert à échanger une clé symétrique rapide</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on prend le meilleur des deux<br/>
mondes. L'asymétrique résout l'échange initial<br/>
(sans secret partagé préalable), le symétrique fait<br/>
le gros du chiffrement avec efficacité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Parce que le chiffrement symétrique serait nettement moins sûr</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les deux sont sûrs avec des clés<br/>
adéquates. Le chiffrement symétrique est même plus<br/>
rapide à clés équivalentes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pour respecter une réglementation européenne</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est un choix purement technique, pas<br/>
réglementaire.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pour la beauté technique</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est un choix d'ingénierie pour combiner<br/>
les avantages des deux approches.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q12 : Déchiffrer avec la fonction de chiffrement</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On dispose de la fonction suivante, qui chiffre par décalage un mot écrit en majuscules :</p>
<pre><code>def chiffrer(mot, k):
    res = ""
    for c in mot:
        res = res + chr((ord(c) - 65 + k) % 26 + 65)
    return res</code></pre>
<p>L'appel <code>chiffrer("NSI", 3)</code> renvoie <code>"QVL"</code>. Quel appel redonne <code>"NSI"</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le chiffrement de César est symétrique : la clé $k$ sert à chiffrer, et le décalage $26 - k$, qui s'en déduit immédiatement, sert à déchiffrer. Grâce au modulo $26$, un décalage négatif comme <code>-3</code> fonctionne aussi, à condition de l'appliquer au message chiffré.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>chiffrer("QVL", 3)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cet appel décale une seconde fois de $3$ et renvoie <code>"TYO"</code>. Pour annuler le chiffrement, il faut un décalage qui compense le premier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>chiffrer("QVL", 23)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : décaler de $23$ revient à reculer de $3$, car $3 + 23 = 26$ et le calcul se fait modulo $26$. L'appel renvoie bien <code>"NSI"</code> : la même fonction chiffre et déchiffre, avec deux clés liées.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>chiffrer("NSI", -3)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cet appel recule bien de $3$, mais il part du mot clair et renvoie <code>"KPF"</code>. C'est le message chiffré <code>"QVL"</code> qu'il faut déchiffrer.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>chiffrer("QVL", 26)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un décalage de $26$ fait un tour complet de l'alphabet et laisse le texte inchangé : l'appel renvoie <code>"QVL"</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q13 : Chiffrement affine d'une lettre</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans le chiffrement affine de clé $(a, b) = (3, 5)$, on numérote les lettres de $0$ pour A à $25$ pour Z. La lettre de rang $x$ est remplacée par la lettre de rang $(3x + 5)$ modulo $26$. Par quelle lettre la lettre C est-elle chiffrée ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le chiffrement affine généralise celui de César, qui correspond au cas $a = 1$. C'est un chiffrement symétrique : la clé $(a, b)$, partagée par les deux correspondants, sert aussi à déchiffrer.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>O</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : tu numérotes à partir de $1$ et donnes à C le rang $3$, d'où $3 \times 3 + 5 = 14$, qui mène à O. Avec la numérotation de l'énoncé, C a le rang $2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>V</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : tu ajoutes $5$ avant de multiplier, en calculant $3 \times (2 + 5) = 21$, qui mène à V. La formule multiplie d'abord le rang par $3$, puis ajoute $5$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>G</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : tu oublies d'ajouter $b = 5$ et t'arrêtes à $3 \times 2 = 6$, qui mène à G. La clé comporte deux nombres, et les deux interviennent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>L</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : C a le rang $2$, et $3 \times 2 + 5 = 11$, rang de la lettre L. Le résultat est inférieur à $26$, le modulo ne change donc rien ici.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q14 : Deux César successifs</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pour renforcer la sécurité, Hugo chiffre un message par César avec un décalage de $3$, puis chiffre le résultat par César avec un décalage de $5$. Que penser de cette précaution ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Enchaîner deux chiffrements n'ajoute de la sécurité que si le résultat n'est pas lui-même un chiffrement du même type avec une autre clé. Deux décalages successifs forment un seul décalage : la protection reste celle, très faible, d'un César.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle multiplie par $26$ le nombre de clés possibles</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les deux décalages se combinent en un seul, compris entre $0$ et $25$. L'attaquant ne cherche pas le couple $(3, 5)$, seulement le décalage total, parmi $26$ possibilités.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Inutile : cela revient à un César de décalage $8$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : décaler de $3$ puis de $5$ revient à décaler de 8 en une fois. Par exemple, <code>NSI</code> devient <code>VAQ</code> dans les deux cas. Un attaquant n'a toujours que $26$ décalages à essayer.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle rend l'analyse de fréquences impossible</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque lettre est toujours remplacée par la même lettre, décalée de $8$. Les fréquences du français se retrouvent donc intactes dans le chiffré.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle empêche de déchiffrer, même avec les deux clés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Hugo et son destinataire déchiffrent en reculant de $5$ puis de $3$, ou directement de $8$. Le message n'est pas perdu.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q15 : Nombre de clés d'un Vigenère</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le chiffrement de César n'offre que $26$ clés. Pour un chiffrement de Vigenère dont la clé est un mot de <strong>trois</strong> lettres majuscules, combien de clés différentes un attaquant doit-il envisager ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Chaque lettre de clé ajoutée multiplie le nombre de clés par $26$ : une clé de $n$ lettres en offre $26^n$. Cet espace grandit vite, mais reste modeste pour un ordinateur, qui essaie $17576$ clés en une fraction de seconde.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$78$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : tu additionnes les possibilités des trois lettres, $26 + 26 + 26 = 78$. Les choix se combinent : pour chaque première lettre, il y a $26$ deuxièmes lettres, et ainsi de suite, il faut donc multiplier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$676$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $676 = 26^{2}$ correspond à une clé de 2 lettre(s). Avec trois lettres, il faut multiplier encore par $26$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$15600$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $26 \times 25 \times 24 = 15600$ suppose trois lettres toutes différentes. Rien n'interdit une clé qui répète une lettre, comme <code>AAB</code> ou <code>ZZZ</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$17576$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chacune des trois lettres peut prendre $26$ valeurs, indépendamment des autres, soit $26 \times 26 \times 26 = 17576$ clés.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q16 : Chiffrement de bout en bout</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que signifie le <strong>chiffrement de bout en bout</strong> dans une<br/>
messagerie comme Signal ou WhatsApp ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le chiffrement E$2$E est devenu la norme dans les<br/>
messageries modernes. Il a un coût : si on perd ses<br/>
clés, on perd l'accès à ses anciens messages. Mais il<br/>
offre une sécurité bien supérieure aux serveurs<br/>
« curieux ».</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le message est chiffré jusqu'au serveur, qui le déchiffre puis le rechiffre vers le destinataire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce n'est pas du chiffrement « de bout en<br/>
bout ». Avec ce modèle, le serveur peut lire les<br/>
messages.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Tous les messages sont automatiquement effacés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucun rapport avec l'éphémérité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Chiffré par l'expéditeur, déchiffrable seulement par le destinataire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est précisément ce qui distingue<br/>
le chiffrement E$2$E. Même un serveur compromis ne<br/>
peut pas révéler le contenu des messages, faute de<br/>
clé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le message est chiffré une fois sur l'ordinateur et une fois sur le téléphone</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce n'est pas la définition du E$2$E. Le<br/>
chiffrement reste basé sur des clés des <strong>utilisateurs</strong>,<br/>
pas sur la diversité des appareils.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q17 : Établir une clé sur un canal public</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel principe permet à deux personnes qui n'ont<br/>
jamais communiqué auparavant d'établir une <strong>clé secrète commune</strong> sur un canal pourtant <strong>public</strong> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'échange asymétrique d'une clé symétrique est au<br/>
cœur du protocole HTTPS. Il combine la robustesse<br/>
de l'asymétrique (pas besoin de canal sûr<br/>
préalable) avec la rapidité du symétrique pour le<br/>
reste de la communication.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Combiner sa clé privée avec la clé publique de l'autre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est l'apport fondamental de<br/>
la cryptographie asymétrique. Un attaquant<br/>
qui écoute le canal voit seulement les clés<br/>
publiques, ce qui ne lui permet pas de<br/>
retrouver le secret partagé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Chiffrer la clé avec elle-même</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on aurait alors besoin de la clé pour<br/>
déchiffrer la clé. Ce n'est pas réalisable.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Faire entièrement confiance au fournisseur d'accès Internet</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la sécurité ne doit pas reposer sur<br/>
un acteur particulier du réseau.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Envoyer la clé en clair, mais très rapidement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la vitesse d'envoi ne change rien à<br/>
l'interception possible.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q18 : HTTPS et confidentialité</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quand vous visitez un site en HTTPS, qu'est-ce qui reste<br/>
visible pour votre fournisseur d'accès Internet (FAI) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Même en HTTPS, l'adresse IP du serveur contacté reste visible, puisque les routeurs en ont besoin pour acheminer les paquets. Seul le contenu des échanges est chiffré.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Rien du tout</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : HTTPS chiffre le contenu mais laisse<br/>
visible certaines métadonnées.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Tout le contenu complet de la page que vous consultez</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : non, le contenu HTTP est chiffré par TLS.<br/>
Le FAI ne voit pas les requêtes ni les réponses.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le nom de domaine, l'IP et le volume échangé</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : même en HTTPS, le FAI peut voir<br/>
<strong>quel</strong> site vous visitez (mais pas <strong>quoi</strong> vous y<br/>
faites précisément), à quelle heure, et combien de<br/>
données vous échangez.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Vos identifiants de connexion uniquement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les identifiants sont chiffrés par TLS, le<br/>
FAI ne les voit pas.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q19 : Chiffrement de César</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le <strong>chiffrement de César</strong> (décalage de chaque lettre<br/>
d'un certain nombre de positions dans l'alphabet) est-il<br/>
sûr ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le César est facile à casser, mais il a une utilité<br/>
pédagogique : il introduit les notions de clé,<br/>
chiffrement, déchiffrement, cryptanalyse. La famille<br/>
des chiffrements <strong>par substitution</strong> est généralement<br/>
faible.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Non, seulement $26$ clés possibles, vite cassable</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le chiffrement de César est un<br/>
exemple historique pédagogique mais pas un chiffrement<br/>
sérieux. L'analyse des fréquences ou la simple<br/>
énumération suffit à le casser.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Cela dépend de la longueur du message</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la sécurité du chiffrement de César ne<br/>
dépend pas de la longueur du message.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Oui, il est très sûr s'il utilise un grand décalage</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le décalage est borné par la taille de<br/>
l'alphabet ($26$ pour le français). Il y a donc<br/>
seulement $26$ clés possibles.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Oui, à condition de changer la clé chaque jour</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : même avec changement quotidien, chaque jour<br/>
la clé peut être trouvée en quelques secondes.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q20 : Chiffrement de Vernam (masque jetable)</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le chiffrement de <strong>Vernam</strong> (ou masque jetable) combine chaque bit du message avec un bit de la clé par un ou exclusif (XOR). À quelles conditions sur la clé ce chiffrement est-il impossible à casser ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Limitation pratique : la clé doit être aussi longue que<br/>
le message et utilisée <strong>une seule fois</strong> (« one-time<br/>
pad »). Échanger des clés aussi longues que les<br/>
messages est rarement faisable, sauf pour des<br/>
communications très sensibles à très faible volume.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Plus courte que le message, pour être facile à transmettre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une clé plus courte devrait être répétée, et ces répétitions laissent des régularités exploitables par un attaquant, comme dans le chiffrement de Vigenère.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Aléatoire, aussi longue que le message et utilisée une seule fois</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : avec une telle clé, tous les messages clairs de même longueur sont également possibles pour un chiffré donné, qui n'apprend donc rien à l'attaquant. Ce chiffrement a été utilisé pour le téléphone rouge entre Washington et Moscou.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Réutilisée pour chaque message, afin d'être bien mémorisée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : réutiliser le masque est la faute fatale. Le XOR de deux messages chiffrés avec la même clé fait disparaître celle-ci et donne le XOR des deux messages clairs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Choisie parmi les mots du dictionnaire, connus des deux correspondants</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un mot du dictionnaire n'est pas aléatoire, et un attaquant peut essayer très rapidement tous les mots d'un dictionnaire.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q22 : Que faire avec une clé publique ?</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Alice veut envoyer un message confidentiel à Bob.<br/>
Bob a publié sa <strong>clé publique</strong>. Que doit faire<br/>
Alice ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Mémo : pour la <strong>confidentialité</strong> vers Bob, on<br/>
chiffre avec <strong>la clé publique de Bob</strong>. Pour<br/>
<strong>prouver</strong> qu'on est bien Alice, Alice signe<br/>
avec <strong>sa propre clé privée</strong>. Les deux usages<br/>
sont complémentaires.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Envoyer le message en clair, puisque Bob a une clé publique</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la clé publique seule ne sécurise<br/>
rien. Encore faut-il que le message soit<br/>
chiffré avec.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Envoyer la clé publique de Bob avec le message</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la clé publique de Bob est… déjà<br/>
publique. Cela n'apporte aucune sécurité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Chiffrer le message avec la clé publique de Bob</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est l'usage de base du<br/>
chiffrement asymétrique pour la<br/>
confidentialité. La clé publique sert à<br/>
chiffrer, la clé privée à déchiffrer.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Chiffrer son message avec sa propre clé privée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce procédé existe mais correspond à<br/>
la <strong>signature</strong> (authentification de<br/>
l'émetteur), pas à la confidentialité.<br/>
N'importe qui pourrait déchiffrer avec la<br/>
clé publique d'Alice.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q23 : Que se passe-t-il si une clé fuite ?</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans un système de chiffrement <strong>asymétrique</strong>, si<br/>
la <strong>clé privée</strong> de Bob est volée par un<br/>
attaquant, quelle conséquence est correcte ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La sécurité d'un système asymétrique repose<br/>
entièrement sur la confidentialité de la clé<br/>
privée. En cas de compromission, on doit<br/>
<strong>révoquer</strong> la clé compromise et en générer une<br/>
nouvelle. C'est l'un des rôles des autorités de<br/>
certification.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>L'attaquant peut déchiffrer les messages destinés à Bob</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la clé privée est ce qui<br/>
permet de déchiffrer ; sa fuite compromet<br/>
immédiatement la confidentialité des messages<br/>
destinés à Bob. C'est pourquoi la clé privée<br/>
doit être protégée avec le plus grand soin.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il faut juste générer une nouvelle clé symétrique</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la clé symétrique n'a aucun lien avec<br/>
la clé privée asymétrique compromise. Il faut<br/>
générer une nouvelle paire (publique, privée)<br/>
et faire republier la clé publique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>L'attaquant peut chiffrer mais pas déchiffrer</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse, chiffrer se fait<br/>
avec la clé <strong>publique</strong> (que tout le monde<br/>
a) ; déchiffrer requiert la clé privée que<br/>
l'attaquant vient justement de voler.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Aucune conséquence, puisque la clé publique reste secrète</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la clé publique n'est <strong>pas</strong><br/>
secrète, c'est précisément ce qui la<br/>
distingue de la clé privée. Et la fuite de<br/>
la clé privée est très grave.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q24 : Les clés du navigateur après l'échange HTTPS</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Une connexion HTTPS vient de s'établir entre un navigateur et un serveur : le navigateur a reçu la clé publique du serveur, a choisi une clé de session et l'a transmise chiffrée, puis les données circulent chiffrées de manière symétrique. Quelles clés le <strong>navigateur</strong> connaît-il alors ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>À la fin de l'échange, le serveur possède sa paire de clés et la clé de session ; le navigateur, la clé publique du serveur et la clé de session ; un espion, uniquement la clé publique et des données chiffrées. La clé de session est le seul secret partagé, et elle n'a jamais circulé en clair.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La clé privée du serveur et la clé de session</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la clé privée ne quitte jamais le serveur. C'est avec elle que le serveur, et lui seul, déchiffre la clé de session reçue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La clé publique du serveur et la clé de session</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le navigateur a reçu la clé publique du serveur, puis a choisi la clé de session qu'il a chiffrée avec elle. Il chiffre et déchiffre ensuite les échanges avec cette clé de session.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Uniquement la clé publique du serveur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le navigateur connaît aussi la clé de session, puisque c'est lui qui l'a choisie. Sans elle, il ne pourrait pas déchiffrer les pages envoyées par le serveur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les deux clés du serveur, mais pas la clé de session</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le navigateur ne reçoit jamais la clé privée du serveur. En revanche, il connaît la clé de session, indispensable au chiffrement symétrique des échanges.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q25 : Sécurité et facteur humain</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel est généralement le maillon le plus faible dans la<br/>
sécurité d'un système ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La sécurité n'est jamais acquise une fois pour toutes : l'aspect humain (formation, hygiène numérique, processus organisationnels) est aussi crucial que les algorithmes.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La taille de la clé utilisée par l'algorithme de chiffrement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : avec des tailles de clés modernes ($2048$<br/>
bits pour RSA, $256$ pour AES), aucune attaque par<br/>
force brute n'est faisable.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le facteur humain, c'est-à-dire les erreurs des utilisateurs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les meilleurs systèmes<br/>
cryptographiques sont contournés par des erreurs<br/>
humaines : mots de passe faibles ou réutilisés, clic<br/>
sur un mail de hameçonnage, mots de passe collés sur<br/>
un post-it, mauvaise configuration de serveur. La<br/>
formation des utilisateurs est aussi importante que<br/>
la technique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le langage de programmation dans lequel le système a été écrit</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le langage n'est pas le problème principal,<br/>
même si certains langages aident à éviter des<br/>
vulnérabilités courantes (gestion de mémoire,<br/>
types).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>L'algorithme de chiffrement choisi pour protéger les données</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les algorithmes modernes (AES, RSA, etc.)<br/>
sont très solides quand correctement utilisés. Les<br/>
attaques réussies passent presque toujours par<br/>
ailleurs.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q26 : Échange de clés Diffie-Hellman</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le protocole de <strong>Diffie-Hellman</strong> permet à deux personnes d'établir une clé secrète commune en n'échangeant que des valeurs publiques. On l'illustre avec les petits nombres publics $p = 23$ et $g = 5$ :<br/>
- Alice choisit en secret $a = 3$ et envoie $A$, reste de la division de $g^a$ par $p$, soit $A = 10$ ;<br/>
- Bob choisit en secret $b = 2$ et envoie $B$, reste de la division de $g^b$ par $p$, soit $B = 2$ ;<br/>
- Alice calcule le reste de la division de $B^a$ par $p$, Bob celui de $A^b$ par $p$.<br/>
Quelle clé commune obtiennent-ils ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Chacun combine la valeur publique reçue avec son propre secret, et les deux calculs mènent au même résultat. L'espion connaît $p$, $g$, $A$ et $B$, mais ni $a$ ni $b$ : avec de très grands nombres, il ne sait pas retrouver la clé commune en un temps raisonnable.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$10$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $10$ est la valeur publique envoyée par Alice, que tout espion voit passer. La clé commune doit au contraire rester inconnue de l'espion.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$8$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : Alice calcule $2^{3} = 8$, dont le reste dans la division par $23$ vaut $8 - 0 \times 23 = 8$ ; Bob calcule $10^{2} = 100$, dont le reste vaut $100 - 4 \times 23 = 8$. Les deux obtiennent la même valeur sans l'avoir jamais transmise.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$20$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $20$ est le produit $10 \times 2$ des deux valeurs publiques, calcul que n'importe quel espion peut faire. La clé s'obtient en élevant la valeur reçue à la puissance de son propre secret.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$100$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $100$ est bien $10^{2}$, mais il manque la réduction modulo $23$. Le reste de la division de $100$ par $23$ vaut $8$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q28 : Chiffrement et encodage</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On confond souvent <strong>chiffrement</strong> et <strong>encodage</strong> (par exemple l'écriture hexadécimale). Quelle est la différence fondamentale ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Erreur classique en pratique : croire qu'un mot de passe converti en hexadécimal est en sécurité. N'importe qui peut le reconvertir en quelques secondes. Pour la confidentialité, il faut un véritable chiffrement avec une clé secrète. L'encodage est utile pour d'autres raisons : transport, lisibilité, compatibilité de format.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le chiffrement a une clé secrète, l'encodage non</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : l'écriture hexadécimale représente chaque octet par deux caractères, selon une règle connue de tous. N'importe qui peut revenir aux octets d'origine : ce n'est pas un chiffrement. Confondre les deux est une erreur fréquente (et dangereuse) dans la pratique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>L'encodage est un chiffrement plus rapide</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce n'est pas une question de<br/>
vitesse. Un encodage ne <strong>protège</strong> rien : il<br/>
ne suffit pas à rendre des données<br/>
confidentielles, même si lent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le chiffrement est gratuit, l'encodage est<br/>
payant</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune notion de coût financier<br/>
n'intervient dans cette distinction. C'est<br/>
purement technique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le chiffrement transforme en lettres,<br/>
l'encodage en chiffres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la nature des caractères de sortie<br/>
(lettres, chiffres, symboles) ne joue aucun<br/>
rôle dans la définition. La distinction est<br/>
la présence ou l'absence d'une clé secrète.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q29 : Trace de RSA avec petits nombres</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On choisit deux nombres premiers $p = 5$ et<br/>
$q = 11$, donc $N = p \cdot q = 55$ et<br/>
$\varphi(N) = (p-1)(q-1) = 40$. On choisit<br/>
$e = 3$ (premier avec $40$). Alors<br/>
$d = 27$ vérifie $e \cdot d \equiv 1<br/>
\pmod{40}$ (car $3 \cdot 27 = 81 = 2 \cdot 40<br/>
+ 1$). Pour chiffrer $m = 4$ avec la clé<br/>
publique $(N, e) = (55, 3)$, on calcule<br/>
$c = m^e \mod N = 4^3 \mod 55 = 64 \mod 55$.<br/>
Quelle est la valeur du chiffré $c$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Cet exemple illustre concrètement le<br/>
principe de RSA. Avec de vrais nombres<br/>
premiers de plusieurs centaines de<br/>
chiffres, le calcul $m^e \mod N$ devient<br/>
coûteux pour quelqu'un qui ne connaît pas<br/>
$d$ (sauf à factoriser $N$, problème<br/>
réputé difficile). C'est cette<br/>
asymétrie entre la facilité du<br/>
chiffrement et la difficulté de la<br/>
factorisation qui fonde la sécurité de<br/>
RSA.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$9$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $4^{3} = 64$, et $64 \mod 55 = 64 - 1 \times 55 = 9$. Le message chiffré est donc $9$. Pour vérifier le déchiffrement avec la clé privée $d = 27$, on calcule $c^d \mod N = 9^{27} \mod 55 = 4$ : le message original est bien retrouvé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$12$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur de calcul : $4^{3} = 64$, et<br/>
$64 - 1 \times 55 = 9$, pas $12$. Vérifier<br/>
attentivement que $5 \cdot 11 = 55$,<br/>
pas autre chose.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$64$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $64$ est la valeur de $m^e$<br/>
<strong>avant</strong> la réduction modulo $N$. Or<br/>
le chiffré doit appartenir à<br/>
$\{0, 1, \ldots, N-1\} = \{0, 1, \ldots, 54\}$.<br/>
Il faut donc appliquer le modulo : $64<br/>
- 1 \times 55 = 9$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$4$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $4$ est le <strong>message clair</strong>, pas<br/>
le chiffré. Le chiffrement applique<br/>
l'opération $m^e \mod N$, qui transforme<br/>
$4$ en autre chose. Refaire le calcul :<br/>
$4^{3} = 64$, et $64 \mod 55$ vaut $9$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q30 : Chiffrement de Vigenère</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le <strong>chiffrement de Vigenère</strong> consiste à<br/>
utiliser une <strong>clé</strong> de plusieurs lettres et<br/>
à décaler chaque lettre du message clair selon<br/>
la lettre correspondante de la clé (répétée<br/>
cycliquement). Avec la clé <code>"BC"</code> et le<br/>
message <code>"HELLO"</code>, quel est le message<br/>
chiffré ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Vigenère a longtemps été considéré comme<br/>
« le chiffre indéchiffrable », jusqu'à ce<br/>
que Babbage et Kasiski montrent au $XIX^{e}$<br/>
siècle qu'il pouvait être cassé en<br/>
cherchant la <strong>longueur de la clé</strong> par<br/>
analyse des répétitions, puis en<br/>
appliquant l'analyse des fréquences sur<br/>
chaque sous-séquence. Aujourd'hui, c'est<br/>
un chiffre purement pédagogique.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>"BCBCB"</code> (la clé répétée)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la clé répétée n'est qu'un<br/>
intermédiaire de calcul, pas le<br/>
chiffré. On combine cette clé avec le<br/>
message clair pour produire le<br/>
chiffré.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>"HELLO"</code> (la clé n'a aucun effet)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la clé décale bien chaque<br/>
lettre. Avec une clé non triviale, le<br/>
chiffré est obligatoirement différent<br/>
du clair.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>"IGMNO"</code> (un décalage par lettre, mais avec un oubli sur la dernière)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le calcul est correct<br/>
jusqu'à l'avant-dernière lettre.<br/>
<code>H+B</code> (décalage de $1$) donne <code>I</code>,<br/>
<code>E+C</code> (décalage de $2$) donne <code>G</code>,<br/>
<code>L+B</code> donne <code>M</code>, <code>L+C</code> donne <code>N</code>.<br/>
Mais pour la dernière lettre, <code>O+B</code><br/>
(décalage de $1$) donne <code>P</code>, pas<br/>
<code>O</code>. Le chiffré est donc <code>"IGMNP"</code>,<br/>
pas <code>"IGMNO"</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>"IGMNP"</code> (chaque lettre décalée selon la clé)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la clé <code>"BC"</code> est<br/>
répétée pour donner <code>"BCBCB"</code> à mettre<br/>
en correspondance avec <code>"HELLO"</code>.<br/>
<code>B</code> correspond à un décalage de $1$<br/>
(car <code>A</code> = $0$, <code>B</code> = $1$), <code>C</code> à un<br/>
décalage de $2$. Donc :<br/>
<code>H+1=I</code>, <code>E+2=G</code>, <code>L+1=M</code>, <code>L+2=N</code>,<br/>
<code>O+1=P</code>. Résultat : <code>"IGMNP"</code>. Vigenère<br/>
est plus solide que César car la même<br/>
lettre du clair peut être chiffrée<br/>
différemment selon sa position.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q31 : Cryptanalyse de César par fréquences</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On intercepte un long texte chiffré par<br/>
<strong>César</strong> (décalage inconnu). Dans le texte<br/>
français, la lettre <code>'E'</code> est de loin la<br/>
plus fréquente (environ $17 \%$ des<br/>
occurrences). Dans le chiffré, la lettre la<br/>
plus fréquente est <code>'H'</code>. Quel est, très<br/>
probablement, le décalage utilisé ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'<strong>analyse des fréquences</strong> est une<br/>
attaque puissante contre tous les<br/>
chiffrements par substitution monoalphabétique<br/>
(où chaque lettre est toujours remplacée<br/>
par la même autre lettre). C'est ce qui<br/>
les rend tous obsolètes pour de vrais<br/>
usages cryptographiques. La parade<br/>
historique a été le chiffrement<br/>
polyalphabétique (Vigenère), puis les<br/>
chiffrements modernes (AES) qui<br/>
détruisent toute corrélation entre<br/>
fréquences du clair et du chiffré.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : si <code>E</code> (rang $4$ dans<br/>
l'alphabet, en comptant à partir de $0$)<br/>
a été chiffrée en <code>H</code> (rang $7$), le<br/>
décalage est $7 - 4 = 3$. Pour<br/>
déchiffrer, on applique le décalage<br/>
inverse $-3$ (ou équivalent $+23$) à<br/>
chaque lettre du chiffré.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un décalage de $5$<br/>
transformerait <code>E</code> en <code>J</code>, pas en <code>H</code>.<br/>
Calculer la différence entre la<br/>
position de la lettre la plus fréquente<br/>
du chiffré (<code>H</code>) et celle attendue<br/>
dans le clair (<code>E</code>).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$7$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la position de <code>H</code> dans<br/>
l'alphabet (<code>A</code>=0, ..., <code>H</code>=7), pas le<br/>
décalage. Le décalage est la<br/>
<strong>différence</strong> entre la position dans<br/>
le chiffré (<code>H</code> = $7$) et la position<br/>
dans le clair (<code>E</code> = $4$).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$13$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $13$ est le décalage de<br/>
ROT$13$, qui transformerait <code>E</code> en <code>R</code>,<br/>
pas en <code>H</code>. ROT$13$ est cependant une<br/>
variante célèbre de César, utilisée<br/>
jadis sur Usenet pour cacher les<br/>
plaisanteries grivoises ou les<br/>
divulgations.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q32 : Déchiffrement RSA avec petits nombres</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Avec RSA, Bob a pour clé publique $(N, e) = (33, 3)$ et pour clé privée $(N, d) = (33, 7)$. Il reçoit le message chiffré $c = 2$. Pour le déchiffrer, il calcule le reste de la division de $c^d$ par $N$. Quel message clair $m$ obtient-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Bob est le seul à pouvoir faire ce calcul, car lui seul connaît $d$. N'importe qui peut chiffrer avec $(33, 3)$, mais retrouver $d$ à partir de la clé publique est hors de portée quand $N$ compte des centaines de chiffres.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$128$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $128$ est la valeur de $2^{7}$ <strong>avant</strong> la réduction modulo $33$. Le message clair doit être compris entre $0$ et $32$ : il faut retirer $3 \times 33 = 99$, ce qui donne $29$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$8$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $8 = 2^{3}$ utilise l'exposant public $e = 3$, qui sert à chiffrer. Pour déchiffrer, il faut l'exposant privé $d = 7$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$29$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $2^{7} = 128$ et $128 - 3 \times 33 = 29$. Vérification : $29^{3} = 24389$, dont le reste dans la division par $33$ vaut bien $2$, le message chiffré reçu.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$14$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $14 = 2 \times 7$ multiplie le chiffré par $d$ au lieu de l'élever à la puissance $d$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q33 : Signer un message</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Alice veut que Bob soit certain qu'un message vient d'elle. Avec<br/>
quelle clé le signe-t-elle, et avec quelle clé Bob vérifie-t-il<br/>
la signature ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Chiffrer et signer utilisent la même paire de clés dans deux sens<br/>
opposés : clé publique pour chiffrer, clé privée pour signer.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Sa clé privée pour signer, sa clé publique pour vérifier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : seule Alice détient sa clé privée, donc seule<br/>
Alice a pu produire la signature ; tout le monde peut la<br/>
vérifier avec sa clé publique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Sa clé publique pour signer, sa clé privée pour vérifier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : n'importe qui connaît la clé publique d'Alice et<br/>
pourrait alors signer à sa place.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La clé publique de Bob pour signer, la clé privée de Bob pour vérifier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le schéma du chiffrement, qui protège la<br/>
confidentialité, pas l'origine.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La clé privée de Bob pour signer, la clé publique d'Alice pour vérifier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Alice ne possède pas la clé privée de Bob, et les deux<br/>
clés doivent venir de la même paire.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q34 : Un message pour deux destinataires</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Alice envoie le même message confidentiel à Bob et à Carole, qui<br/>
possèdent chacun leur paire de clés. Comment procède-t-elle ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une clé publique ne sert qu'à chiffrer pour son propriétaire : un<br/>
destinataire, un chiffrement.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle chiffre une copie avec la clé publique de chacun</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la copie chiffrée avec la clé publique de Bob<br/>
n'est lisible que par Bob, celle de Carole que par Carole.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle chiffre une seule fois avec sa propre clé privée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce que chiffre la clé privée d'Alice se déchiffre avec<br/>
sa clé publique, connue de tous.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle chiffre avec la clé publique de Bob, Carole la connaissant aussi</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : connaître la clé publique de Bob ne permet pas de<br/>
déchiffrer, il faut sa clé privée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle chiffre avec les deux clés publiques l'une après l'autre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il faudrait alors les deux clés privées pour lire, et<br/>
ni Bob ni Carole ne lirait seul.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q35 : Des clés RSA bien plus longues</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Une clé symétrique de $128$ bits est jugée sûre, alors qu'une clé<br/>
RSA doit compter au moins $2048$ bits. Pourquoi cette différence ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La longueur d'une clé se juge à la meilleure attaque connue : force<br/>
brute pour le symétrique, factorisation pour RSA.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>L'attaque de RSA est une factorisation, pas un essai de toutes les clés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : casser RSA revient à factoriser le nombre $n$ de<br/>
la clé publique, et les algorithmes de factorisation sont bien<br/>
plus efficaces que l'essai exhaustif. Il faut donc un $n$<br/>
beaucoup plus grand pour résister.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les clés RSA contiennent deux nombres, il faut donc deux fois plus de bits</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la taille indiquée est celle de $n$ seul, et le<br/>
rapport dépasse largement deux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le chiffrement symétrique est plus récent et donc mieux conçu que RSA</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'ancienneté n'explique rien ; les deux reposent sur<br/>
des problèmes différents.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une clé RSA doit être au moins aussi longue que les messages chiffrés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : RSA chiffre de petits blocs, souvent une clé de<br/>
session, pas des messages entiers.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q36 : Le rôle de l'autorité de certification</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Lors d'une connexion HTTPS, le navigateur reçoit la clé publique<br/>
du site dans un certificat signé par une autorité de<br/>
certification. À quoi sert cette signature ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le chiffrement protège contre l'écoute ; le certificat protège<br/>
contre l'usurpation, en liant une clé publique à une identité.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>À garantir que cette clé publique appartient bien au site visité</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : l'autorité a vérifié l'identité du site avant<br/>
de signer. Le navigateur, qui connaît les clés publiques des<br/>
autorités, vérifie la signature et peut alors faire confiance à<br/>
la clé reçue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À chiffrer les données échangées entre le navigateur et le site</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le chiffrement des données utilise une clé de session,<br/>
pas la signature du certificat.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À prouver que le site ne contient aucun logiciel malveillant</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le certificat atteste une identité, pas le contenu<br/>
des pages.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>À transmettre au navigateur la clé privée du site, en sécurité</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la clé privée ne quitte jamais le serveur.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q37 : L'attaque de l'homme du milieu</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Sans certificat, un attaquant placé entre le navigateur et le site<br/>
intercepte l'échange de clés. Que fait-il pour lire les échanges<br/>
chiffrés ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Un échange de clés sur un canal public n'est sûr que si chacun peut<br/>
vérifier à qui appartient la clé reçue : c'est le rôle des<br/>
certificats.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Il remplace la clé publique du site par la sienne et relaie tout</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le navigateur chiffre pour l'attaquant en<br/>
croyant chiffrer pour le site ; l'attaquant déchiffre, lit,<br/>
rechiffre pour le vrai site et relaie. Rien ne le trahit sans<br/>
certificat.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il casse le chiffrement par force brute pendant la connexion</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les clés actuelles rendent la force brute hors de<br/>
portée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il devine la clé privée du site à partir de sa clé publique</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : retrouver la clé privée est précisément ce que la<br/>
taille des clés rend impossible.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il bloque la connexion pour forcer un échange sans chiffrement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : bloquer empêche la communication, cela ne la révèle<br/>
pas.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Sécurisation des communications — Q38 : Le nombre de clés secrètes dans un groupe</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans un groupe de $5$ personnes, chaque paire veut communiquer<br/>
avec sa propre clé symétrique secrète. Combien de clés faut-il en<br/>
tout ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le nombre de clés symétriques croît comme le carré du nombre de<br/>
participants : c'est ce problème de distribution que le<br/>
chiffrement asymétrique résout.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$10$, une par paire de personnes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque personne partage une clé avec chacune des<br/>
$4$ autres, et chaque clé est comptée deux fois, d'où<br/>
$5 \times 4 / 2 = 10$ clés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$5$, une par personne</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une clé par personne serait connue de tous ses<br/>
correspondants, qui pourraient lire les messages des autres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$4$, une par correspondant</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est le nombre de clés d'une seule personne, pas du<br/>
groupe.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$25$, une par couple ordonné</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la clé d'Alice vers Bob sert aussi de Bob vers Alice.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
