La monnaie cryptographique à l’épreuve des programmes de “quantum computing”

Il y’a peu, nous apprenions par Edward Snowden que la NSA travaillait pour construire un ordinateur quantique. Le Washington Post a révélé l’affaire avec le titre plutôt sensationnaliste “La NSA cherche à construire un ordinateur quantique capable de venir à bout de la plupart des types de cryptage”.

Naturellement, cela a soulevé beaucoup d’inquiétude parmi les nouveaux amateurs de monnaie cryptographique. La réalité, cependant, est qu’il n’a pas été révélé beaucoup plus que ce que nous savions déjà. Nous savons que la NSA a ouvertement parrainé des projets informatiques quantiques dans le passé. Le fait qu’il existe un projet interne appelé “Penetrating Hard Targets (Pénétration de cibles difficiles)” est nouveau, mais pas inattendu de la part de cette agence. Nous avons appris que ce projet dispose d’un budget 79,7 millions de dollars, ce n’est pas un budget énorme en comparaison à d’autres projets. Enfin, comme indiqué par The Post, les documents ne révèlent pas l’état d’avancée de leurs recherches.

Cela semble être un bon moment pour discuter ensemble des implications de l’informatique quantique à l’égard de l’avenir de Bitcoin.

Commençons avec une petite introduction pour ceux qui sont peu familiers avec l’informatique quantique. Aujourd’hui, les ordinateurs codent l’information en morceaux – chiffres binaires, soit “0” ou “1”. Ces bits sont généralement stockés sur le disque dur de votre ordinateur en changeant la polarité de l’aimantation sur une petite section d’un disque magnétique, ou stockés dans la mémoire RAM ou mémoire flash représenté par deux différents niveaux de charge dans un condensateur. Les chaînes de bits peuvent être combinées pour produire des données qui sont lisibles par l’homme. Par exemple, 01000001 représente la lettre A dans la table ASCII étendue. Tous les calculs qui doivent être effectuées avec les bits sont effectuées un à la fois.

Les ordinateurs quantiques, aussi appelés ordinateurs à photons, d’autre part, utilisent les différents états de particules quantiques pour représenter des “bits quantiques” (qubits). Par exemple, une filature de photons verticale pourrait représenter un 1, alors que la filature de photons horizontale pourrait représenter un 0. Mais les photons peuvent également exister dans un état appelé de superposition. Cela signifie qu’en plus de pouvoir tourner en 3 dimensions verticalement, horizontalement et en diagonale, ils peuvent aussi tourner dans toutes ces directions en même temps. C’est en d’autres termes le monde étrange de la mécanique quantique.


images

Ce que cela signifie d’un point de vue pratiques est qu’un ordinateur traditionnel peut effectuer un seul calcul à la fois, un ordinateur quantique pourrait théoriquement effectuer des millions de calculs à la fois.

Lorsque les journalistes rapportent “dans des boîtes métalliques de la taille d’une grande pièce sécurisés contre les fuites électromagnétiques, la National Security Agency est en course pour construire un ordinateur qui pourrait briser presque tous les types de cryptage utilisés pour protéger les banques, les secrets d’affaires et les dossiers des gouvernements du monde entier”, nous pensons naturellement que c’est la fin de la cryptographie telle que nous la connaissons. Or ce n’est pas le cas.

Prenons l’attaque de type la plus classique, la force brute “brute force”. Autrement dit, un enchaînement de combinaisons, aussi nombreuses que nécéssaires, pour découvrir un mot de passe jusqu’à trouver le bon. Si vous aviez assez de temps, vous pourriez décrypter n’importe quel mot de passe. Le problême est qu’il faudrait des milliards ou des trillions d’années pour un ordinateur moderne afin de découvrir une clef chiffrée complexe. Nous pensons alors qu’un ordinateur quantique pourrait résoudre ce problême en un temps plus court.


Voici un extrait de Cryptographie appliquée par Bruce Schneier (1996) :

“Une des conséquences de la seconde loi de la thermodynamique est que d’une certaine quantité d’énergie est nécessaire pour représenter de l’information. Enregistrer un seul bit en modifiant l’état d’un système nécessite une quantité d’énergie non inférieure à kT, où T est la température absolue du système et k est la constante de Boltzman. (Restez avec moi, la leçon de physique est presque terminée)

Étant donné que k = 1,38 × 10 puissance 16 erg / ° Kelvin, et que la température ambiante de l’univers est de 3,2 ° Kelvin, un ordinateur idéal cadencé à 3,2 ° K consommerait 4,4 × 10 puissance 16 ergs chaque fois qu’il a posé ou enlevé un bit. Pour exécuter un ordinateur plus froid que le rayonnement cosmique exigerait une énergie supplémentaire pour faire fonctionner une pompe à chaleur.

Maintenant, la production annuelle d’énergie de notre soleil est d’environ 1,21 × 10 puissance 41 ergs. C’est assez pour alimenter environ 2,7 × 10 puissance 56 changements de bit unique sur notre ordinateur idéal. Si nous avons construit une sphère de Dyson autour du soleil et capturé toute son énergie depuis 32 ans, sans aucune perte, nous pourrions alimenter un ordinateur pour compter jusqu’à 2 puissance 192.

Mais la soleil étant juste une petite étoile dans l’univers, prenons une supernova typique qui libère quelque chose comme 10 puissance 51 ergs. (Environ une centaine de fois plus d’énergie serait libérée sous forme de neutrinos, mais laissons-les aller pour l’instant.) Si toute cette énergie pouvait être canalisée dans une seul gigantesque orgie de calcul, nous pourrions parfaire un cycle de comptage de 219 bits.”

Ces chiffres n’ont rien à voir avec la technologie de quelconque dispositif; ils sont les maximums que la thermodynamique permettra. Ils impliquent que les attaques par force brute contre des clés de 256 bits sera irréalisable jusqu’à ce que des ordinateurs soient construits à partir de quelque chose d’autre que la matière et qu’ils occupent autre chose que de l’espace.

Pour récapituler, si vous pouviez exploiter toute l’énergie d’une supernova et la canaliser dans un ordinateur, vous ne pourriez toujours pas venir à bout d’une clé de chiffrement typique par force brute. Pour briser des algorithmes de cryptage tels qu’on trouve dans le commerce, il va falloir s’attaquer aux maths.

Aujourd’hui, la plupart des algorithmes de chiffrement à clé publique s’appuient soit sur la difficulté de factorisation entier (RSA) ou la difficulté logarithmique (DSA / El Gamal, et Elliptic Curve Cryptography). En 1994, le mathématicien Peter Shor a démontré un algorithme quantique efficace pour l’affacturage et le calcul de logarithmes qui brise les encryptions lorsqu’il est utilisé avec un ordinateur quantique. Ce ne serait cependant pas briser tous les types de cryptographie. Les fonctions traditionnelles de cryptographie à clé symétrique et hachage cryptographique seraient encore bien hors de portée des algorithmes de recherche quantique.

MS-DOS
L’impact sur la monnaie cryptographique

Le Bitcoin utilise plusieurs algorithmes cryptographiques – Le Elliptic Curve Digital Signature Algorithm (ECDSA) pour les opérations de signature et les fonctions de hachage SHA-256 et RIPEMD160. Si la NSA réussit à développer un ordinateur quantique cryptologically utile, ECDSA tomberait tandis que SHA-256 et RIPEMD160 resteraient sécurisé.

Les bonnes nouvelles sont que ECDSA devrait être relativement facile à substituer si sa sécurité devait être comprise. Ce serait bien pire si SHA-256 devait être substitué. Si vous n’êtes pas à l’écoute de la mécanique de Bitcoin, SHA-256 est utilisé dans l’exploitation minière Bitcoin. À l’heure actuelle, des milliards de dollars ont été dépensés sur des puces informatiques personnalisés qui ne font rien hormis effectuer des calculs SHA-256. Si SHA-256 était percé, ces puces seraient transformées en presse-papiers coûteux. Si cela se produisait soudainement (par opposition à une transition en douceur vers une autre fonction de hachage), il serait assez catastrophique. La sécurité du protocole Bitcoin repose sur le fait qu’il serait trop difficile et coûteux pour quelconque attaquant de commander plus de 51% de la puissance de traitement dans le réseau. Un passage soudain à une autre fonction de hachage compromettrait considérablement la sécurité et serait susceptible de causer une importante chute de prix. Mais comme je l’ai mentionné, les amateurs de monnaie cryptographique peuvent dormir tranquille parce que SHA-256 n’est pas menacée par les ordinateurs quantiques. Ceci ne signifie pas, toutefois, que personne ne puisse jamais trouver d’autre moyen d’attaque sur cet algorithme.

Retour à ECDSA. Cet algorithme génère une paire de clés publiques / privées. Dans Bitcoin, vous gardez secrète la clé privée qui sera utilisée pour signer vos transactions, prouvant au réseau que vous possédez les fonds associés à une adresse particulière. Le réseau vérifie votre signature en utilisant la clé publique correspondante. Un ordinateur quantique en fonction permettrait à la NSA pour dériver la clé privée de toute personne de leur clé publique. Donc, cela revient-il à dire que la NSA serait capable de voler l’argent de chacun d’entre nous ? Pas exactement.

Voici la chose, dans le protocole Bitcoin votre clé publique n’est pas (initialement) rendue publique. Alors que vous partagez votre adresse Bitcoin avec les autres afin qu’ils puissent vous envoyer de l’argent, votre adresse est seulement un hachage de votre clé publique, pas la clé publique elle-même. Qu’est-ce que cela veut dire ? Une fonction de hachage est une fonction cryptographique à sens unique qui prend une entrée et le transforme en une sortie cryptographique. En un sens, cela signifie que vous ne pouvez pas obtenir l’entrée à partir de la sortie. Ce serait comme encrypter quelque chose avant d’en perdre la clé.
Pour le démontrer, calculons le hash RIPEMD160 de “Hello world”.

  • Hello world ==> a830d7beb04eb7549ce990fb7dc962e499a27230

Une adresse Bitcoin est calculée en exécutant votre clé publique à travers plusieurs fonctions de hachage comme suit:

address

Tout ceci est une façon compliquée de dire que, même si un attaquant avec un ordinateur quantique pourrait dériver la clé privée de la clé publique, il ne pouvait pas obtenir la clé publique de l’adresse Bitcoin puisque la clé publique fut executée divers fonctions de hachages à sens unique.

Cependant, chacun doit diffuser sa clé publique sur le réseau afin de faire une transaction, auquel cas il n’y a aucun moyen de vérifier votre signature. Ce que cela implique, c’est que pour un ordinateur quantique NSA toutes les adresses Bitcoin devraient être considérées comme des adresses à usage unique. Chaque fois que vous effectuez une transaction, vous devriez envoyer tout excès vers une adresse nouvellement générée. Si vous ne retiriez pas la totalité du solde de votre adresse, la NSA pourrait alors voler le reste. Bien que ce ne soit pas pratique, cela donnerait le temps nécéssaire aux développeurs pour échanger ECDSA avec un système de signature numérique résistant au quantique.


Signatures numériques Post-Quantum

Cette section va être un peu technique, mais j’espère ne pas trop difficile à suivre pour les débutants. Il existe plusieurs types de systèmes de chiffrement à clé publique post-quantique: à base de treillis, à base de code, multivariée-quadratique, et basé sur du hachage. Comme je l’ai déjà mentionné, les fonctions de hachage cryptographique sont présumés être résistantes au quantique. Compte tenu de cela, il devrait être possible de construire un système en remplacement de la signature numérique pour ECDSA utilisant uniquement des fonctions de hachage. Jetons un oeil à ces systèmes à base de hachage, car ils sont faciles à comprendre et les fonctions de hachage sur lesquels ils sont basés sont déjà largement utilisé.

Lamport One-Time schéma de signature (LOTSS)

Pour commencer, nous voulons utiliser une fonction de hachage avec au moins une sortie de 160 bits pour assurer la sécurité adéquate. RIPEMD160 ou SHA-1 devraient remplir ce rôle. Pour générer la paire de clés publiques / privées, nous allons commencer en générant 160 paires de nombres aléatoires (320 numéros au total). Cet ensemble de nombres aléatoires servira de clé privée.


Paire # clé privée

1 / e9e515b332cf1ce01299497e9e94b7df353ff022
ce56dcfdb7038e6ab0b37c383dbfda8cb45d60ea
2 / 811f71c5cf7639a40df7b9b187bf768016791cf8
1094b13455a133d2d11898cfa30916e12be3e0ab

… …

159 / bc6a1eb98148850dd2b32ae632005f5472c06a70
c10f4ac3d645d891d9b5dc0fa0b7294ad14ac3df
160 / 585801c9da7ce0d562f375338b456ba9f10be3f6
3c3363ed7273f1ef9c1aed3fc5a7433002b668f8

Pour générer la clé publique nous prendrons le hachage RIPEMD160 de chacun des 320 nombres aléatoires. (Note: Je vais devoir réduire le nombre de moitié pour les adapter dans ce tableau)


Paire # clé privée / clé publique

1 / e9e515b332cf1ce01299 / d7c3e127380fbbbe37b9
ce56dcfdb7038e6ab0b3 / 4ddf29fb200aa0fd90b1
2 / 811f71c5cf7639a40df7 / 1094b13455a133d2d118
f84a8e5a0dce682e48c5 / 4a88310f694329b9ab97

… … …

159 / bc6a1eb98148850dd2b3 / 7d5c0e19c4dc9077be6c
c10f4ac3d645d891d9b5 / ffbbe97612e581f073b6
160 / 585801c9da7ce0d562f3 / 3c3363ed7273f1ef9c1a
38ed36c30ee72c95c598 / a546f885e8210c61767d

Maintenant, pour signer un message avec une signature Lamport, nous allons d’abord créer un message digéré en hachant le message avec RIPEMD160 (dans Bitcoin nous hacherions la transaction) puis en convertissant la sortie en binaire. Nous utilisons une nouvelle fois “Bonjour tout le monde» comme exemple.


  • Bonjour tout le monde ==> a830d7beb04eb7549ce990fb7dc962e499a27230 ==>1010100000110000110101111011111010110000010011101011011101010100100111001110100110010000111110110111110111001001011000101110010010011001101000100111001000110000

Ensuite, nous vous offrons jusqu’à chaque chiffre binaire avec chaque paire dans notre clé privée. Si le bit est 0, nous ajoutons le premier numéro de la paire à notre signature, si elle est une, nous allons ajouter la seconde.


Paire # Digest / Clef privée / Signature

1 / 1 e9e515b332cf1ce01299
ce56dcfdb7038e6ab0b3 / ce56dcfdb7038e6ab0b3
2 / 0 811f71c5cf7639a40df7
1094b13455a133d2d118 / 811f71c5cf7639a40df7

… … … …

159 / 0 / bc6a1eb98148850dd2b3
bc6a1eb98148850dd2b3 c10f4ac3d645d891d9b5
160 / 0 / 585801c9da7ce0d562f3
3c3363ed7273f1ef9c1a 585801c9da7ce0d562f3

Enfin pour vérifier que la signature est bien valide, vous devez d’abord créer un condensé de message en utilisant le même procédé que ci-dessus. Puis hacher chacun des numéros 160 à la signature avec RIPEMD160. Enfin, assurez-vous que ces hachages correspondent aux valeurs de hachage de la clé publique qui correspondent avec le résumé de message.


Paire # Hash de signature / Digest / Clé publique

1 / 4ddf29fb200aa0fd90b1 / 1 / d7c3e127380fbbbe37b9
4ddf29fb200aa0fd90b1
2 / f84a8e5a0dce682e48c5 / 0 / f84a8e5a0dce682e48c5
4a88310f694329b9ab97

… … … …

159 / 7d5c0e19c4dc9077be6c / 0 / 7d5c0e19c4dc9077be6c
ffbbe97612e581f073b6
160 / 38ed36c30ee72c95c598 / 0 / 38ed36c30ee72c95c598
a546f885e8210c61767d

Voilà donc un système de signature numérique résistant au quantique, en utilisant uniquement des fonctions de hachage. Seule la personne en possession des 320 nombres aléatoires à la clé privée aurait pu générer une signature qui se hache de la clé publique par rapport à la “digestion”. Cependant, alors que ce schéma fonctionne en pratique, il n’est pas sans problèmes. D’abord, comme son nom l’indique, les signatures LOTSS ne peuvent être utilisés qu’une seule fois. La raison est que vous divulguez la moitié de votre clé privée avec chaque signature. Si vous deviez signer plusieurs messages, votre clé privée serait complètement compromise. Si cela était utilisé pour le protocole Bitcoin, vous pourriez toujours utiliser uniquement chaque adresse une fois.

Tout aussi problématique, les tailles et les signatures de clés sont ridiculement grandes. Les clés privées et publiques sont 6400 octets par rapport à 32 et 64 pour les clés privées et publiques ECDSA. Et la signature est 3200 octets par rapport à 71 à 73 octets. Bitcoin a déjà des problèmes d’évolutivité, de plus en plus les tailles de clé et de signature rendraient les problèmes bien pires.

La clé privée Lamport peut être considérablement réduite en taille en générant des nombres aléatoires à partir d’une seule seed aléatoire. Pour ce faire, nous prendrons simplement RIPEMD160 (seed + n) où n commence à 1 et s’ incrémente à 320. Malheureusement, la taille de la clé privée n’est pas tant le problème que la taille de la clé publique et de la signature. Il existe un autre schéma de signature unique appelé Winternitz, signatures qui a le potentiel de réduire la taille de clé mais au prix des opérations de hachage. Heureusement, nous n’avons pas encore fini.


Schéma Merkle-Signature (MSS)

Le schéma de signature Merkle combine le schéma de signature unique (soit Lamport ou Winternitz) avec un arbre de Merkle (aussi appelé arbre de hachage). Cela nous permet d’utiliser une clé publique pour signer de nombreux messages sans se soucier de compromettre la sécurité. Voyons comment cela fonctionne.

Nous allons commencer par générer un certain nombre de paires de clés Lamport. Le nombre généré sera égal au nombre de signatures que nous voulons extraire d’une clé publique unique. Prenons huit comme un exemple. Ensuite, nous allons calculer un arbre de Merkle utilisant chacune des clés publiques huit Lamport. Pour ce faire, les clés publiques sont jumelés, haché, puis les valeurs de hachage sont enchaînés ensemble et hachés nouveau. Ce processus est répété jusqu’à ce que quelque chose ressemblant à un support Tournoi NCAA est formé.

Merkle-Tree

Le hachage au sommet de l’arbre (la racine Merkle) est la clé publique Merkle. Cela réduit massivement la taille de clé publique de 6400 octets dans la signature Lamport à seulement 20 octets, la longueur d’un seul hachage RIPEMD160.

Pour calculer une signature, vous sélectionnez une de vos paires de clés Lamport et signez le message comme avant. Cette fois, la signature sera la signature Lamport plus chacune des feuilles de l’arbre de Merkle menant de la clé publique à la racine.

Merkle-Signature

Dans le schéma ci-dessus la signature serait:

  • sig ‘|| H (Y [i = 2]) || A [0] || auth [0] || A [1] || auth [1] || A [2] || auth [2] | | A [3]

Pour vérifier la signature Merkle on vient vérifier la signature Lamport, alors assurez-vous que les feuilles hachent vers la clé publique Merkle. Si tel est le cas, la signature est valide.

Il ya plusieurs avantages de la MSS par rapport au LOTSS. Tout d’abord, les clés publiques et privées sont réduites de 6400 octets à 20 octets. En outre, vous pouvez créer plusieurs signatures par clé publique. Mais il ya toujours un inconvénient majeur. Plus les messages que vous souhaitez signer avec votre clé publique sont nombreux, plus l’arbre de Merkle devra être large. Finalement, la signature commence à devenir démesurément grande, en particulier pour une utilisation dans une monnaie cryptographique. Cela nous amène au schéma final de signature post-quantique dont nous parlerons.


CMSS Et GMSS

9783540887010
Le MSS est connu depuis plus de 30 ans et demeure essentiellement indemne malgré de nombreuses et très poussées crypto-analyses. Cependant, la plupart des améliorations dont il a bénéficié ont été faites au cours des cinq dernières années. Dans ma brève revue de la littérature, il semble qu’un couple de schémas de signature par Buchmann, Dahmen, Klintsevich, et. al., soient les plus prometteuses du lot. Ceux-ci sont les Improve Merkle Signature Scheme (CMSS) et Generalized Merkle Signature Scheme (GMSS) (liens vers les documents universitaires peuvent être trouvés ici et ici). Deux des cryptographes derrière ce schéma de signature sont les auteurs d’un manuel sur la cryptographie post-quantique.

Les deux CMSS et GMSS offrent une capacité de signature sensiblement améliorée avec des longueurs de signature des les délais de vérification raisonnables. GMSS en particulier offre une capacité pratiquement illimitée de signature à 280 signatures mais avec une baisse des performances dans d’autres domaines par rapport à CMSS. Ils accomplit cette mission en cassant le système en arbres de Merkle séparés de feuilles 2n. Une signature de la racine est utilisée pour signer la clé publique de l’arbre du dessous, qui signe à son tour l’arbre du dessous, et ainsi de suite.

Generalized-Merkle-Signature-Scheme

Il semble donc que l’un de ces schémas de signature puisse devenir un candidat sérieux pour remplacer l’ECDSA de Bitcoin dans un monde post-quantique. Mais pourquoi ne pas simplement aller de l’avant et le mettre en œuvre dès maintenant plutôt que d’attendre une mauvaise suprise ? Faisons une petite comparaison et jetez un oeil au temps (t) et la mémoire (M) que chacun exigerait. Les variantes de CMSS ont des capacités de signature de 220, 230 et 240 tandis que le GMSS dispose de capacités de signature de 240 et 280. Nous pouvons supposer que 240 ou même 230 seraient suffisantes pour Bitcoin à moins d’imaginer que quelqu’un puisse faire plus d’un milliard d’opérations à partir d’une seule adresse. En outre, GMSS peut être optimisée pour réduire les délais de vérification, mais au détriment d’une signature qui sera 25% plus grande.


eeeeeeeee
mPrivKey, mPubKey, MSIG, tKeygen, tSign, tVerify

ECDSA  //  32bytes, 64bytes, 71 à 73bytes, 9,6 millisecondes, 100 ms, 8,53 ms
CMSS20  //   1900bytes, 46bytes, 2128bytes, 4,1 secondes, 12,5 ms,2,0 ms
CMSS30  //   2788bytes, 46bytes, 2328bytes, 2 minutes, 17,0 ms, 2,0 ms
CMSS40  //   3668bytes 46bytes, 2528bytes,  62,3 minutes, 21,7 ms, 2,0 ms
GMSS40  //   1640bytes, 20bytes, 1860bytes, 723 minutes, 26,0 ms, 19,6 ms
GMSS40′  //   1680bytes, 20bytes, 2340bytes, 390 minutes, 10,7 ms, 10,7 ms

Nous voyons ici que CMSS et GMSS ont effectivement de meilleurs résultats que l’ECDSA en taille de clé et de signature. Cependant, dans la variable critique qui affectera l’évolutivité, et la taille de la signature, ils ne fonctionneront pas aussi bien. Les délais de vérification pour le CMSS sont significativements meilleurs que ceux de l’ECDSA qui améliorererait l’évolutivité et la variante optimisée du GMSS est relativement proche de ces résultats, mais la taille de la signature sera certainement un problème pour les deux. Songez à ces estimations très approximatives: la taille moyenne des transactions est actuellement d’environ 500 octets, le CMSS ou GMSS décupleraient ce chiffre jusqu’à plus de 4000 octets. Cela signifie qu’une augmentation de 700%. de la chaîne de bloc serait à prévoir. Pour information, la chaîne de blocs du Bitcoin est actuellement à 13 Gigaoctets. Si Bitcoin avait employé un de ces régimes de signature depuis le début, sa taille dépasserait aujourd’hui 100 gigaoctets. La taille de la clé et de la signature et taille de la clé n’est pas un problème unique aux régimes de signatures basés sur le hash. La plupart des autres sont dans le même ordre.

En outre, vous noterez le temps fou de Keygen pour le GMSS. Si vous aviez quitté votre ordinateur allumé pendant 24 heures, vous auriez seulement généré 3 adresses et ce en utilisant la variante optimisée avec de plus grandes signatures. Je soupçonne cependant qu’un portefeuille basé sur une technologie ASIC permettrait d’améliorer significativement les performances de Keygen du CMSS. Ce qui n’est pas si mal que ça.

Donc, en d’autres termes, Bitcoin ne peut adopter l’un de ces schémas de signature au moment si nous voulons à l’échelle au-delà de la capacité actuelle. Cependant, au moment où les ordinateurs quantiques deviennent viables, la loi de Moore aura probablement apporté le coût du stockage et de la puissance de traitement jusqu’au point où le CMSS, GMSS ou l’un des autres types de schémas de signature post-quantique pourraient facilement être fusionnés au protocole Bitcoin. Jusque-là, ne perdons pas de vue les objectifs du programme Pénétration de Cibles Difficiles.

Aucun commentaire