9 votes

Mise en œuvre de l'arithmétique des champs de Galois

Connaissez-vous une implémentation de Champ de Galois arithmétique en C++ ? Au moins les cas comme GF(2 16 ) et GF(2 32 ) doivent être couverts. La performance est une préoccupation, donc l'implémentation devrait avoir réfléchi à l'optimisation de ses opérations.

Je préférerais une bibliothèque commune de calcul ou une petite bibliothèque dédiée à cette seule tâche. En l'absence de ces bibliothèques, j'apprécierais également un code source lisible.

8voto

MvG Points 22342

J'ai trouvé un lien vers un Bibliothèque d'arithmétique des champs de Galois par Arash Partow dans l'article de Wikipedia sur Arithmétique des corps finis .

À première vue, le code semble presque totalement dépourvu de commentaires, mais il est écrit de manière structurée et donc vraisemblablement compréhensible. Les performances ne semblent pas être un critère de conception important, cependant : l'utilisation des fonctions inlined est plutôt limitée, et en général, il semble qu'une notation directe des mathématiques théoriques a été jugée plus importante que l'exploration de raccourcis de calcul. J'énumère tout cela pour être complet, afin que vous puissiez y jeter un coup d'œil, vous faire votre propre opinion, et voter ou commenter en conséquence.

2voto

jxh Points 32720

Vous pouvez peut-être utiliser le code qui implémente Mode GCM en crypto++ (en particulier, gcm.cpp ). Crypto++ est une bibliothèque C++ gratuite qui implémente de nombreux schémas de cryptage. Parmi eux, le GCM qui utilise l'arithmétique des champs de Galois.

Selon le licence La bibliothèque elle-même est protégée par des droits d'auteur, tandis que les fichiers sources individuels sont du domaine public.

0voto

Joker_vD Points 2313

Il y a une bibliothèque appelée NTL : http://www.shoup.net/ntl/ . Bien que son code source ne soit pas tout à fait "lisible".

0voto

MvG Points 22342

En cherchant des nombres algébriques, je suis tombé sur cette réponse qui suggère Givaro . Et en regardant cela, j'ai constaté que cela fait GF( p k ) arithmétique également. Le site documentation est mince, mais le site sources montrent un peu de code et d'effort. Je n'ai pas encore creusé dans les détails, mais j'ai pensé que je devais l'inclure dans ma liste ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X