Ich arbeite an meinem Projekt der Elliptic Curve Cryptography, die Programmierung auf binären Feldern erfordert. Es enthält grundlegende Operationen wie Addition, Multiplikation, Inversion usw. w.r.t. ein irreduzibles binäres Polynom.Wie stelle ich ein Binärfeld in der Programmiersprache dar?
Ich suche nach einer Möglichkeit, wie diese binären Polynome in einem Programm gespeichert werden können. Ich arbeite an C und C++ Programmiersprache (mit gmp Bibliothek), so kam der erste Gedanke in den Sinn war es, Strukturen und Bit-Felder zu verwenden. Sie sind jedoch nicht dynamisch und können keine beliebig langen Polynome halten. Mit C++ Vector STL ist möglich, aber es wird nicht effizient sein, da es ein einzelnes Bit in einem einzelnen Wort von 8 oder mehr Bits speichert.
Gibt es eine Möglichkeit der Darstellung, die effizient ist?
Mit "Binärfeld" meinst du Z_2? –
Std :: Vektor Verwendung 1-Bit-Speicher für 1-Bit-Darstellung –
DvoryankinEvgeny
@DvoryankinEvgeny ja, aber Sie können nicht z. effizient 'xor' zwei' std :: vector 's. –