Forum: FPGA, VHDL & Co. Polynomdivision GF(2^M) mit VHDL


von Lenni (Gast)


Lesenswert?

Moin,

ich versuche eine Polynomdivision für das ECDSA-Verfahren auf einem FPGA 
zu implementieren. Dabei habe ich für erste Tests die Implementierung 
von der folgenden Seite genommen:

http://arithmetic-circuits.org/finite-field/vhdl_codes.htm

Ich erhalte nun die folgenden Werte:
x = 00001101
y = 11001010
z = 10101010 ( x / y mod f with f=100011011 )

x = 00110100
y = 00101010
z = 10010011 ( x / y mod f with f=100011011)

Wenn ich nun die Probe z * y = x mache, so erhalte ich korrekte 
Ergebnisse. Die Werte scheinen also erstmal gültig zu sein. Wenn ich 
allerdings die Polynomdivision per Hand mache, komme ich auf andere 
Ergebnisse:

00001101 / 11001010 = 0 R 1101 mod 100011011 = 0
00110100 / 00101010 = 1 R 11110 mod 100011011 = 1

Zur Sicherheit habe ich noch eine zweite Implementierung über 
Multiplikation mit dem Inversen gemacht. Dabei erhalte ich die gleichen 
Ergebnisse wie bei der ersten Implementierung.

Kann mir jemand sagen, wo mein Denkfehler? Danke!

Grüße
Lenni

von Michael W. (Gast)


Lesenswert?

Bin nicht mehr ganz sicher, Studium zu lange her :-)

Du musst im Binären immer noch eine versteckte 1 vorne mitführen, glaube 
Ich.  Die wird nie hingeschrieben, muss aber hilfsweise bemüht werden. 
Sowas Ähnliches hatte ich kürzlich bei einem CRC-Thema: Die 
Polynomdivision im Binären ist irgendwie nicht ganz vergleichbar der im 
integer-Bereich.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.