Sto lavorando al mio progetto di Crittografia a curve ellittiche che richiede la programmazione su campi binari. Include operazioni di base come addizione, moltiplicazione, inversione, ecc. un polinomio binario irriducibile.Come rappresentare un campo binario nel linguaggio di programmazione?
Sto cercando un modo in cui questi polinomi binari possono essere memorizzati in un programma. Sto lavorando al linguaggio di programmazione C e C++ (con la libreria gmp) quindi il primo pensiero mi è venuto in mente di utilizzare strutture e campi di bit. Ma non sono dinamici e non possono tenere polinomi arbitrariamente lunghi. Usare STL di vettore C++ è possibile ma non sarà efficiente, poiché memorizza un singolo bit in una singola parola di 8 o più bit.
Esiste un modo di rappresentazione che sia efficiente?
Per "campo binario" intendi Z_2? –
std :: vector utilizza 1 bit di memoria per la rappresentazione a 1 bit –
DvoryankinEvgeny
@DvoryankinEvgeny si ma non è possibile ad es. efficientemente 'xor' two' std :: vector 's. –