
Optimisations pour la cryptographie basée sur les appariements
Ce dépôt contient le code Rust fonctionnel correspondant à une série continue d'articles de blog couvrant les optimisations de la cryptographie basée sur les couplages, avec BLS12-381 comme courbe de référence.
Veuillez noter : Ce code est fourni à des fins éducatives, n'a pas fait l'objet d'un audit de sécurité et ne convient pas à une utilisation en production. Utilisation à vos propres risques.
Cet article couvrira l'arithmétique modulaire de Montgomery de bout en bout, y compris le contexte, les alternatives, la théorie et un code Rust pratique et fonctionnel 9 fois plus rapide qu'une implémentation générique de Big Integer. Le prochain article de blog optimisera davantage la routine de multiplication (relativement) lourde en langage assembleur x86-64 bare-metal.
mont1 : https://github.com/nccgroup/pairing/tree/main/mont1Ce deuxième article pousse encore plus loin l'algorithme de multiplication de Montgomery développé en Rust afin d'atteindre les performances maximales qu'une machine x86-64 moderne peut offrir avec une implémentation écrite à la main en langage assembleur. Plusieurs instructions spécialisées et fonctionnalités micro-architecturales avancées permettant un parallélisme accru font que la routine de multiplication de Montgomery s'exécute plus de 15 fois plus vite qu'une implémentation générique de Big Integer.
mont2 : https://github.com/nccgroup/pairing/tree/main/mont2Copyright 2021 Eric Schorn ; Sous licence BSD à 3 clauses.