title: Attaque par matériel personnalisé
text: # Attaque par matériel personnalisé
  
  En cryptographie, une attaque par matériel personnalisé est une attaque qui utilise un circuit intégré à application spécifique conçu spécialement pour déchiffrer des messages chiffrés.
  
  Le montage d'une attaque par force brute nécessite un grand nombre de calculs similaires : typiquement, l'essai d'une clé, puis la vérification du résultat obtenu et ensuite le même processus avec la clé suivante. Les ordinateurs peuvent effectuer ces calculs à un rythme de millions par seconde, et des milliers d'ordinateurs peuvent être exploités ensemble dans un réseau de calcul distribué pour accélérer les calculs. Mais le nombre de calculs requis en moyenne croît de façon exponentielle avec la taille de la clé et pour de nombreux problèmes les ordinateurs standards ne sont pas assez rapides. D'autre part, de nombreux algorithmes cryptographiques se prêtent à une implémentation dans le matériel, c'est-à-dire au moyen de fonctions logiques (souvent appelées portes). Les circuits intégrés sont construits à partir de ces fonctions logiques et peuvent souvent exécuter des algorithmes cryptographiques des centaines de fois plus rapidement qu'un ordinateur à usage général.
  
  Chaque circuit intégré peut contenir un grand nombre de fonctions logiques (des milliards en 2016) et le nombre continue de croître selon la loi de Moore. Ainsi, un circuit de déchiffrement peut être répliqué des milliers de fois sur un circuit intégré. Les exigences de communication pour ces circuits intégrés sont très simples. Chacun doit être initialement chargé avec un point de départ dans la liste des clés à tester, et, dans certaines situations, avec une valeur attendue pour le message à déchiffrer (voir l'attaque à texte clair connu). La sortie consiste en un signal indiquant que le circuit intégré a trouvé une solution et la clé trouvée.
  
  Puisque les circuits intégrés se prêtent à la production de masse, des milliers ou même des millions de circuits peuvent être appliqués à un même problème. Les circuits intégrés peuvent être montés sur des circuits imprimés.
  
  Une autre approche consiste à utiliser des circuits logiques programmables (field-programmable gate arrays ou FPGA). Ils sont plus lents et plus chers par fonction logique, mais ils peuvent être reprogrammés pour des problèmes différents. COPACOBANA (Cost-Optimized Parallel COde Breaker) est une de ces machines ; elle est composée de 120 circuits logiques programmables de type Xilinx Spartan3-1000 fonctionnant en parallèle.
  
  ## Histoire
  
  La première attaque par matériel personnalisé a probablement été le Bombe utilisée pour casser les clés des machines Enigma allemandes durant la Seconde Guerre mondiale.
  
  En 1998, une attaque par matériel personnalisé a été montée contre le chiffrement DES (Data Encryption Standard) par l'Electronic Frontier Foundation. Leur machine Deep Crack a coûté 250 000 $ US à construire et a déchiffré le message de test du DES Challenge II-2 en 56 heures.
  
  Le seul autre crackeur confirmé de DES est le COPACOBANA (Cost-Optimized PArallel COde Breaker) construit en 2006. Contrairement à Deep Crack, COPACOBANA est constitué de circuits logiques programmables disponibles dans le commerce. COPACOBANA coûte environ 10 000 $ à construire et récupère une clé DES en moins de 6,4 jours en moyenne. La diminution du coût d'un facteur de 25 comparativement à Deep Crack est un exemple impressionnant de l'amélioration continue du matériel numérique.
  
  Depuis 2007, SciEngines GmbH, une compagnie fondée par deux partenaires du projet COPACABANA, a développé des successeurs de COPACOBANA. En 2008, COPACABANA RIVYERA a réduit le temps nécessaire pour craquer DES à moins d'une journée, en utilisant 128 Spartan-3 5000.
  
  On croit généralement que les grandes organisations gouvernementales de craquage de code, comme la National Security Agency (NSA), utilisent largement des attaques par matériel personnalisé, mais, en 2005, aucun exemple de telles attaques n'a encore été déclassifié.
  
  