[gelöst] Hausübung 1. Aufgabe: nur manchmal D(E(m))=m

m2c1
Windoof-User
Windoof-User
Beiträge: 41
Registriert: 20. Dez 2010 10:39

[gelöst] Hausübung 1. Aufgabe: nur manchmal D(E(m))=m

Beitrag von m2c1 »

Guten Abend,

ich benutze Javas BigIntegers für die 1. Aufgabe der Hausübung. Eigenartigerweise erhalte ich aber nur manchmal (alle paar Programmausführungen) wieder m, wenn ich das m aus der Aufgabenstellung erst ver- und dann wieder entschlüssle. Bei Beispielen mit kleineren Zahlen tritt dieses Problem scheinbar (ich habe nur wenige Testfälle) nicht auf.
Ich dachte zunächst daran, dass ich die certainty für die Zufallsprimzahlen p und q zu gering gewählt habe, aber eine Änderung derselben bringt keinen Änderung des Ergebnisses. Habt Ihr Ideen, woran das liegen könnte?


Update: [gelöst]
Zuletzt geändert von m2c1 am 28. Dez 2011 11:29, insgesamt 1-mal geändert.

cwb38
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 125
Registriert: 4. Okt 2010 15:53

Re: Hausübung 1. Aufgabe: nur manchmal D(E(m))=m

Beitrag von cwb38 »

Prüfe mal, ob im Fehlerfall dein d vielleicht negativ oder 1 ist. In diesen Fällen kann es zu dem von dir beschriebenen Effekt kommen. Eine Lösung für negative d wäre diese modulo phi(n) zu nehmen...

Benutzeravatar
olg
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 297
Registriert: 1. Okt 2008 19:24

Re: Hausübung 1. Aufgabe: nur manchmal D(E(m))=m

Beitrag von olg »

Die BigIntegers von Java werden intern - wie alle anderen Datentypen als signed behandelt. Du musst daher entweder aufpassen, deine eigenen Methoden so anzupassen, dass sie damit umgehen können, oder alternativ phi(n) addieren (bzw. cwb38's Rat befolgen)
"To Perl, or not to Perl, that is the kvetching." ~Larry Wall

m2c1
Windoof-User
Windoof-User
Beiträge: 41
Registriert: 20. Dez 2010 10:39

Re: Hausübung 1. Aufgabe: nur manchmal D(E(m))=m

Beitrag von m2c1 »

Vielen Dank cwb38 und olg! Eigentlich hatte ich eure Tipps von Anfang an befolgt, aber eben nur eigentlich: bei der Generierung von e habe ich bei der Verknüpfung der Anforderungen UND mit ODER verwechselt. :| Aber dank euch hab' ich's mir jetzt wenigstens nochmal genauer angesehen und den Fehler entdeckt.

Antworten

Zurück zu „Archiv“