← Derniers articles
💻 informatique

A High-Throughput DSP-Free PRNG for FPGA based on Xoshiro128** and Integer Chaotic Mixing

Cet article présente un PRNG hybride à haut débit, sans DSP et entièrement pipeliné, optimisé en ressources pour la plateforme Xilinx Zynq-7000, qui combine Xoshiro128**, des séquences de Weyl et une application de la tente entière afin d'atteindre un débit élevé (5,82 Gbps) et de réussir des tests statistiques rigoureux tout en maintenant une empreinte réduite adaptée aux applications embarquées.

Auteurs originaux : Milad Mohammadian, Bahadin Azizinasab, Abobakr Mohammadian, Mahrokh G. Shayesteh, Mohammad Saeed khayati, Sheida Mohammadpour, Mosleh yousefi

Publié 2026-11-09
📖 6 min de lecture🧠 Analyse approfondie

Auteurs originaux : Milad Mohammadian, Bahadin Azizinasab, Abobakr Mohammadian, Mahrokh G. Shayesteh, Mohammad Saeed khayati, Sheida Mohammadpour, Mosleh yousefi

Article original sous licence CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). ✨ Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

Dans le monde numérique, de nombreux systèmes reposent sur des séquences de nombres qui semblent complètement aléatoires pour fonctionner correctement. Ces séquences sont essentielles pour sécuriser les communications, simuler des systèmes physiques complexes et exécuter des protocoles cryptographiques. Cependant, il est difficile de générer une véritable aléatorité avec une machine, c'est pourquoi les ingénieurs utilisent des algorithmes pour créer des nombres « pseudo-aléatoires ». Ce sont des séquences déterministes qui paraissent aléatoires pour un observateur mais qui sont en réalité produites par un ensemble spécifique de règles à partir d'une graine (seed) initiale. Le défi pour les concepteurs de matériel est de créer ces séquences rapidement et efficacement sans consommer trop de puissance ou prendre trop de place sur une puce informatique. Lorsque ces générateurs sont intégrés dans des puces spécialisées appelées FPGA, qui sont du matériel reconfigurable souvent utilisé dans les systèmes embarqués, l'objectif est d'atteindre une grande vitesse tout en gardant la conception petite et économe en énergie, en évitant l'utilisation de composants coûteux et gourmands en énergie qui sont généralement réservés aux calculs mathématiques lourds.

Une équipe de chercheurs issus d'universités iraniennes a développé une nouvelle façon de construire un tel générateur qui fonctionne sur un FPGA. Leur travail se concentre sur la création d'un dispositif capable de produire un flux massif de nombres d'apparence aléatoire sans utiliser les unités mathématiques de haute performance standard présentes sur la plupart des puces. Au lieu de s'appuyer sur ces composants spécialisés, qui sont souvent limités en nombre et consomment une puissance significative, l'équipe a conçu un système qui n'utilise que des portes logiques de base et des registres de mémoire standard. Le résultat est un générateur capable de produire des données à un débit de 5,82 gigabits par seconde, une vitesse qui rivalise avec des conceptions beaucoup plus complexes, tout en utilisant une très petite quantité des ressources de la puce et en consommant un minimum d'énergie.

Le cœur de cette nouvelle conception est une approche hybride qui combine trois méthodes différentes de mélange de nombres. Le moteur principal est un algorithme bien connu appelé Xoshiro128**, qui sert de source principale de la séquence. Ce moteur est efficace et possède un cycle très long avant de se répéter, mais il présente une structure mathématique prévisible qui pourrait être exploitée par un attaquant qualifié. Pour corriger cela, les chercheurs ont ajouté deux couches de mélange supplémentaires. La première couche utilise un processus additif simple qui décale les valeurs d'une manière qui crée un type de motif différent. La seconde couche utilise une carte « tente » (tent map), une méthode qui étire et replie les nombres, de la même manière qu'un boulanger pourrait plier de la pâte, bien que dans ce cas, le pliage se fasse par une manipulation mathématique entière simple plutôt que par une manipulation physique. Ces couches sont conçues pour travailler ensemble afin de briser les motifs prévisibles du moteur principal, rendant la sortie finale beaucoup plus difficile à rétro-concevoir.

Les chercheurs ont construit ce système en utilisant un outil de synthèse de haut niveau, qui traduit automatiquement une description logicielle de la logique en la disposition physique de la puce. Ils ont testé la conception sur un type de puce spécifique connue sous le nom de Xilinx Zynq-7000. L'implémentation a été un succès dans tous les paramètres importants pour les applications embarquées. La conception finale n'a occupé que 934 petits blocs logiques sur la puce et a utilisé 1 071 registres, une empreinte très compacte. Crucialement, elle n'a utilisé aucun des tranches de traitement numérique du signal (DSP) spécialisées et aucun bloc de mémoire dédiée, prouvant qu'une génération de nombres aléatoires à haute vitesse est possible sans recourir à ces ressources lourdes. Le système fonctionnait à une fréquence de 181,82 mégahertz, délivrant le débit élevé mentionné précédemment. En termes de puissance, la puce ne consommait que 2 9 milliwatts de puissance dynamique pendant le fonctionnement, un chiffre qui représente une estimation de la limite inférieure et suggère que la conception est extrêmement économe en énergie.

Pour s'assurer que les nombres produits étaient suffisamment aléatoires pour un usage sérieux, l'équipe a soumis la sortie à une batterie de tests statistiques rigoureux. Ces tests, qui incluent des suites standards utilisées par des agences gouvernementales et des chercheurs indépendants, vérifient la présence de motifs, de biais et de corrélations qui indiqueraient un manque d'aléatorité. Le générateur a réussi tous les tests, y compris les plus exigeants qui recherchent des défauts subtils dans la séquence. Les chercheurs ont également analysé la sensibilité du système aux changements de ses conditions initiales. Ils ont constaté que le fait de changer ne serait-ce qu'un seul bit dans la configuration initiale entraînait une divergence complète de la sortie, une propriété connue sous le nom de sensibilité aux conditions initiales. Cela garantit que deux dispositifs partant de graines légèrement différentes produiront des séquences entièrement différentes, ce qui est vital pour la sécurité.

L'étude comprenait également une décomposition détaillée de la contribution de chaque partie du système. Les chercheurs ont constaté que le moteur Xoshiro128** principal était déjà statistiquement assez fort pour passer les tests à lui seul. Les couches ajoutées n'ont pas amélioré la qualité statistique des nombres, mais elles ont fait autre chose d'important : elles ont supprimé la structure mathématique linéaire qui rendait le moteur principal prévisible. En ajoutant ces couches, les chercheurs ont rendu la tâche nettement plus difficile pour un attaquant cherchant à comprendre l'état interne du générateur simplement en regardant la sortie. Alors que le moteur principal seul pouvait être rétro-conçu relativement rapidement, le système hybride complet nécessite un effort beaucoup plus complexe et chronophage pour être cassé, sécurisant ainsi efficacement le générateur contre certains types d'attaques sans sacrifier la vitesse ou l'efficacité.

Ce travail suggère qu'il est possible de construire des générateurs de nombres aléatoires de haute performance pour des environnements à ressources contraintes sans dépendre de composants matériels lourds. La conception offre un compromis pratique, équilibrant la vitesse, l'utilisation des ressources et la sécurité. Bien que les chercheurs notent que les étapes mathématiques utilisées dans la couche de pliage ne sont pas algébriquement complexes, leur combinaison avec les autres couches crée un système robuste. Les conclusions indiquent que cette approche est bien adaptée aux systèmes embarqués où l'espace et la puissance sont des priorités, fournissant une source fiable d'aléatorité qui peut être intégrée dans une large gamme d'appareils. Les chercheurs ont rendu leur code et leurs données disponibles pour que d'autres puissent vérifier et s'appuyer dessus, garantissant que les résultats peuvent être reproduits et que la conception peut être adaptée aux besoins futurs.

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →