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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.