Les Newsletters Interstices
    Niveau avancé
    Niveau 3 : Avancé

    Comment voler un sous-marin

    Sécurité & Vie privée
    Le Dr Jacob Ecco, le détective qui résout des énigmes en s'inspirant des méthodes mathématiques et informatiques, est de retour ! Le mystère entoure cette nouvelle affaire. Ecco parviendra-t-il à déjouer le complot dans lequel il se retrouve embarqué ? Et vous, en seriez-vous capables ?
    « Qu’est-ce que l’histoire sinon une fable sur laquelle on s’accorde ? »
    (Napoléon Bonaparte)

     

    À mi-chemin du vol qui nous ramenait à New York, le capitaine fit une annonce : « Mesdames et Messieurs, en raison d’une circulation aérienne importante à New York, nous sommes dirigés vers Washington D.C. Nous atterrirons et ferons le plein avant de redécoller en direction de la Grande Pomme (The Big Apple, appellation familière de New York, NdT). »

    Je grognai, mais Ecco s’inclina en arrière et regarda d’un air rêveur le voyant qui s’était allumé et nous signalait d’attacher nos ceintures.
    « Étrange, dit-il. Notre avion devrait avoir une réserve suffisante de carburant pour tourner, si nécessaire, au-dessus de New York. »

    Juste avant d’atterrir, une hôtesse tendit une note à Ecco.
    « Nous venons de recevoir ce message radio pour vous, Monsieur », dit-elle.

    Ecco me le montra : « Ecco, Baskerhound est réapparu. Nous avons besoin de votre aide. Descendez à Washington. Nous vous attendons. »
    Le message n’était pas signé… Benjamin Baskerhound était un ancien professeur de Princeton que l’amour immodéré des énigmes avait conduit au crime.

    Les deux officiers qui nous avaient accueillis, le professeur Evangeline Goode et moi-même, Justin Scarlet, après notre sauvetage dans la jungle, nous attendaient à la porte d’arrivée. Quelques semaines plus tôt, Evangeline et moi étions partis à la recherche du Dr Ecco qui était retenu prisonnier depuis près de deux ans par Baskerhound. Je fis les présentations : « Capitaine Nicholas Chase, commandant Victor Shaw, voici le Dr Ecco », dis-je.

    Les officiers nous escortèrent en silence jusqu’à la limousine d’usage. Dans la voiture, le capitaine Chase nous exposa la situation.
    « Lors de sa mission dans les îles, le commandant Shaw a bel et bien trouvé des indices indiquant la présence de l’USS Freedom en Micronésie : un dock abandonné comportant quelques installations modernes sur les îles Marshall, une importante facture de carburant non réglée due à quelques marins anglais inconnus et deux ou trois autres choses », dit-il.
    « Mais le navire était déjà parti, apparemment déguisé en bateau de pêche. Il a, au moins encore une fois, changé de camouflage. Il y a quelques jours, un vieux Trident II, l’USS Groton, l’a pris pour un ravitailleur, bateau dont la fonction est de réparer les sous-marins en mer. Le Groton a fait surface et l’équipage du Freedom est monté à l’abordage et en a pris le contrôle. »

    « Vous voulez dire que Baskerhound ou les siens contrôle maintenant un sous-marin nucléaire balistique ? », m’écriai-je.

    « C’est exact, Professeur Scarlet », dit le capitaine. « Ils savent même comment lancer les missiles. Les services secrets disent que le sous-marin n’a qu’un équipage très réduit, mais ils n’ont besoin que de cinq hommes pour envoyer des missiles. »

    « Où et quand ont-ils capturé le sous-marin ? », demanda Ecco.

    Le capitaine répondit : « Il y a deux jours, près de notre base navale sur l’île de Diego Garcia dans l’océan Indien. »

    Je jetai un coup d’œil à Ecco. Il esquissa un sourire. Avait-il deviné que les choses se passeraient ainsi ? En savait-il davantage ? Je m’interrogeai.

    La limousine nous conduisit à toute vitesse jusqu’au Pentagone, où l’amiral Trober et le Directeur nous attendaient. L’amiral parla sans ambage : « D’une façon ou d’une autre, Baskerhound a trompé un sous-marin, lui faisant croire que son petit bateau espion était un ravitailleur de sous-marins d’un type nouveau. Docteur Ecco, nous avons besoin de votre aide pour déterminer comment il s’y est pris. Tout ce que nous savons est qu’il a dû utiliser notre dernier protocole d’authentification ».

    « Qu’est-ce que c’est ? », demanda Ecco.

    « Un protocole d’authentification permet de prouver qu’un agent est bien celui qu’il prétend être. Tous nos protocoles fonctionnent ainsi : si A veut communiquer avec B, A envoie un message que tous les bateaux d’une zone entendent, mais que seul B comprend. B peut répondre en émettant un signal dirigé uniquement sur A de sorte qu’aucun autre bateau ne l’entend. C’est ce qu’on appelle un « signal privé ».
    Après quelques messages, désignés sous le nom de défis et de réponses, chacun des bateaux est convaincu que l’autre n’est pas un imposteur, ou, si vous voulez, qu’il est authentique. Sauf pour la première transmission radio, toutes les autres transmissions utilisent des signaux privés. Nous pensions que nous avions un protocole empêchant un imposteur éventuel de se faire passer pour un navire N, soit en écoutant une transmission radio impliquant N, soit en participant à un échange avec N. »

    « Le schéma de base que nous utilisons se nomme encryptage de la clé publique. Nous avons pensé que c’était le moyen le plus sûr : même si nos ennemis capturent un bateau, ils ignorent la clé privée de tout autre bateau. Voici comment fonctionne l’encryptage de la clé publique. Pour chaque agent A, il y a une clé secrète, SA, que seul A connaît, et une clé publique, PA, dont tous les bateaux ont connaissance. Le livre des clés publiques était à bord du navire espion dont Baskerhound s’est emparé près des falaises de Moher. S’y trouvait également sa propre clé privée. Les clés publique et privée se combinent ainsi : si m est un message en clair, c’est-à-dire un message que tout le monde peut comprendre, le fait de lui appliquer l’une ou l’autre de ces deux clés rend le message inintelligible. Nous représentons l’application de SA au message m par SA (m). De même, PA (m) représente l’application de PA à m. Cependant, si SA est appliqué à PA (m), donnant SA (PA (m)), le résultat est simplement m. De même, PA (SA (m)) = m. Nous avons arrangé les codes de manière à ce qu’il soit impossible de déduire SA étant donné PA. Il est même impossible de deviner SA étant donné SA (m) et m… »

    L’amiral poursuivit : « Le premier protocole que nous avons mis au point permettait à A de transmettre à B le message SA (PB (Je suis A)). Selon la force de la transmission, de nombreux bateaux pouvaient entendre ce message. Mais seul A était capable de faire cette déclaration et seul B était capable de la décoder en appliquant PA puis SB. L’idée était qu’ensuite B enverrait un signal privé en direction de A. »

    « L’un de mes mathématiciens a rapidement trouvé une faille », dit le Directeur avec une satisfaction évidente.

    Voyez-vous une faille ?

    L’amiral ne se laissa pas démonter et poursuivit : « Un imposteur C pourrait se faire passer pour B simplement en répondant au message de A. Notre deuxième protocole a résolu ce problème en faisant répondre par B : SB (PA (Je suis B)). »

    Le Directeur gloussa : « Là encore, il y avait une faille. »

    Voyez-vous la faille ?

    « Je pense que je vois », dit Ecco.
    « Un imposteur C pouvait simplement se souvenir du premier message envoyé par A et l’utiliser ultérieurement. Quand C transmet ce message, l’agent B croit qu’il répond à A alors qu’en fait il répond à C. »

    Imperturbable, l’amiral poursuivit : « C’est exact. Notre idée fut alors d’utiliser des nonces. » Remarquant nos regards intrigués, il s’apprêtait à nous fournir quelques éclaircissements mais le Directeur intervint brutalement.

    « Et moi qui pensais que vous étiez un homme cultivé, Ecco ! Un nonce est un grand nombre qui est choisi de manière aléatoire et n’est utilisé qu’une fois par un agent unique. Comme il encode également le numéro d’identification du bateau, deux bateaux n’utilisent jamais le même nonce. Vu ? »

    Ecco échangea un regard avec l’amiral. Ce dernier rougit un instant puis reprit : « Voici ce que notre protocole est devenu, n étant un nonce :
    i. A envoie à B par radio : SA (PB (Je suis A))
    ii. B répond à A (en privé) : SB (n, PA (Je suis B))
    iii. A envoie à B (en privé) : PB (SA (n))
    .

    « Nous pensons vraiment que ce dernier protocole est sûr. L’imposteur ne peut en aucune façon copier le troisième message. Voyez-vous la moindre faille ? »

    Je vis le Directeur sourire.

    Ecco réfléchit un moment puis demanda quelques petits gâteaux. Un aide de camp en apporta. Il croqua un biscuit et dit : « Même en acceptant votre supposition selon laquelle les codes ne peuvent être déchiffrés, je vois comment un imposteur pourrait gagner la confiance d’autres bateaux qui s’enverraient assez souvent des messages. »

    1. Comment ?

    Désignez l’imposteur par C. Quand C parle à B, C veut que B croie qu’il parle à A. Supposez qu’il y a beaucoup d’échanges entre A, B et C. C attend d’être contacté par A.

    i. A → C (transmission) : SA (PC (Je suis A))

    C ne répond pas immédiatement à A ; il repasse un ancien message radiodiffusé de A à B à une puissance suffisamment basse pour que A ne l’entende pas.

    ii. C → B (transmission à basse puissance) : SA (PB (Je suis A))

    B finit par répondre à C. Et il répond comme s’il parlait à A.

    iii. B → C (privé) : SB (n, PA (Je suis B))

    C applique PB à ce message et ontient ainsi n. C est enfin prêt à répondre à la demande de A.

    iv. C → A (privé) : SC (n, PA (Je suis C))

    A pense qu’il parle avec C – et c’est ce qu’il fait réellement. Il répond donc poliment par :

    v. A → C (privé) : PC (SA (n))

    C peut désormais prendre cette réponse et appliquer les opérations suivantes :

    PB (SC (PC (SA (n)))) = PB (SA (n))

    C’est ce dont C a besoin pour convaincre B que lui, C, est A.

    vi. C → B (privé) : PB (SA (n).

    C a réussi à se faire passer pour A auprès de B.

    « C’est sûrement ce que Baskerhound est parvenu à faire », dit l’amiral.

    Je repensai au théâtre de Punta Ballena et aux tours de magie. Est-ce à cela que Baskerhound faisait référence lorsqu’il avait dit à Ecco : « Vous venez de changer le cours de l’histoire » ?

    « Dites-moi, Docteur Ecco, dit l’amiral, en supposant que nous sortions de cette crise, pouvez-vous concevoir un protocole qui fonctionne ? Nous disposons d’un nouvel outil : un réseau de satellites qui envoient des signaux chronométrés toutes les micro-secondes. Chaque bateau reçoit les signaux à la vitesse de la lumière. »

    « Combien de temps faut-il au minimum pour qu’un bateau reçoive un signal puis le transmette à d’autres bateaux ? », demanda Ecco.

    « Pour des raisons techniques que je ne puis dévoiler, répondit l’amiral, une telle retransmission nécessite au moins une seconde. »

    « Alors c’est simple », dit Ecco.

    2. Pouvez-vous imaginer, dans ce cas, un plan bon marché et inaccessible aux imposteurs ? Pourquoi le délai d’une seconde est-il important ?

    Toutes les attaques menées jusqu’à présent dépendaient d’une variété d’attaques en riposte : l’imposteur se souvient d’un message transmis et le retransmet. Une manière de contrer de telles attaques est d’utiliser des tampons dateurs. Le nouveau protocole ne nécessite que deux messages. Dans chaque cas, disons que « chrono » représente l’écriture du temps où le message est envoyé.

    i. A envoie à B par radio : B, SA (chrono, Je suis A)).

    ii. B répond à A en privé : SB (PA chrono, Je suis B)).

    Étant donné que tout le monde partage un chronomètre global, les ripostes ne seront pas crues sauf si elles peuvent exploiter les petites différences dans les temps où les différents bateaux reçoivent les signaux chronométrés. Le délai de une seconde pour la riposte est important parce qu’un imposteur éventuel C ne peut pas exploiter ces différences de temps, étant donné que deux bateaux ne seront jamais à plus d’une fraction de seconde-lumière de distance.

    L’amiral sembla satisfait de la solution.
    « Nous allons commencer à utiliser ce protocole dès demain, dit-il. Nous ne tenons vraiment pas à perdre un second sous-marin. »

    Pendant que nous roulions vers l’aéroport pour reprendre notre vol et rentrer à New York, le Directeur nous fit la leçon.
    « Docteur Ecco, Professeur Scarlet, ce que vous avez entendu aujourd’hui est ultraconfidentiel », dit-il.

    « Seule une poignée de personnes au Pentagone et au gouvernement est au courant. Le pays deviendra incontrôlable si les gens apprennent qu’ils sont menacés par un sous-marin errant. Les mesures d’urgence que nous avons commencé à prendre n’y feront rien. Révéler ce que vous venez d’entendre à qui que ce soit, même au Dr Goode, serait considéré comme une trahison. Est-ce clair ? »

    Des menaces similaires avaient dû être faites ailleurs car tout le monde garda le silence et aucune nouvelle du sous-marin kidnappé ne parut dans les journaux les quatre jours suivants. Le cinquième jour, Baskerhound était à New York et convoquait une conférence de presse.

    Cette énigme a été publiée dans le livre Codes, mystères et complots, Éditions Odile Jacob, nouvelle édition mai 2007.

    Newsletter

    Le responsable de ce traitement est Inria. En saisissant votre adresse mail, vous consentez à recevoir chaque mois une sélection d'articles et à ce que vos données soient collectées et stockées comme décrit dans notre politique de confidentialité

    Niveau de lecture

    Aidez-nous à évaluer le niveau de lecture de ce document.

    Si vous souhaitez expliquer votre choix, vous pouvez ajouter un commentaire (Il ne sera pas publié).

    Votre choix a été pris en compte. Merci d'avoir estimé le niveau de ce document !

    Dennis Shasha

    Chercheur en informatique et en intelligence artificielle à l'institut de mathématiques de l'Université de New York.
    Voir le profil