General
Je cherche une bibliothèque capable d'effectuer des calculs exacts sur de grands champs finis tels que GF(2). 128 )/ 2 <sup>128 </sup> et GF(2 256 )/ 2 <sup>256 </sup> . J'ai listé ci-dessous les fonctionnalités dont j'ai besoin et celles qui seraient cool. Évidemment, la bibliothèque doit être aussi rapide que possible :-). Ah, puisque je ne suis pas un maître du C++ (et que probablement la plupart des bibliothèques sont en C++), un exemple de code de disons générer un élément aléatoire/une constante et le multiplier par son inverse multiplicatif
Caractéristiques indispensables
- Ajout d'éléments de terrain
- Multiplication de l'élément de champ
- Trouver l'inverse multiplicatif d'un élément de champ
Caractéristiques utiles
- Support des vecteurs/matrices
- Support des éléments aléatoires
Les bibliothèques que j'ai déjà regardées et qui seront probablement no travail
- FFLAS/FFPACK semble ne pas fonctionner avec des champs finis aussi grands.
- Givaro semble ne pas fonctionner sur des champs finis aussi grands.
Les bibliothèques, j'ai déjà regardé ça pourrait fonctionnent (mais je n'ai pas pu les utiliser)
NTL je n'ai pas réussi à inverser un élément, mais cela devrait fonctionner puisque SAGE semble utiliser cette bibliothèque lors de la définition de GF(2^256) et là, un élément peut être inversé en utilisantx^(-1)
- PARI/GP Je n'ai pas réussi à trouver tout ce dont j'ai besoin dans la documentation, mais la documentation de SAGE indique que cela devrait fonctionner.
Autres notes
- J'écris un programme Haskell et j'interfacerai cette bibliothèque plus tard, donc un interfaçage Haskell plus facile est préférable :-)