AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RSA-Verschlüsselung

Ein Thema von brushmate · begonnen am 17. Mär 2009 · letzter Beitrag vom 20. Mär 2009
Antwort Antwort
Seite 2 von 3     12 3      
fortuneNext

Registriert seit: 11. Aug 2007
Ort: Neuss
133 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: RSA-Verschlüsselung

  Alt 18. Mär 2009, 16:41
Schon lustig, eine Facharbeit schreibe ich auch über Kryptographie, aber RSA ist bei mir nur einer der 5 behandelten Algorithmen
Bei mir ist jetzt aber auch ein winzig kleines Problem aufgetaucht, und ich bin mir nicht sicher, ob ich ein neues Topic eröffnen soll... Der Titel trifts hier eigentlich ganz gut

Und zwar:
p = 7
q = 13
N = 91
Eul N = 72
e = 23
d = 47
Klartext = 1337
Verschlüsselt: 84
Entschlüsselt: 63

Das macht doch keinen Sinn.
Das Problem liegt scheinbar in der modularen Exponentation. Ist normal, dass ein solch falsches Ergebnis herauskommt? Ich kann es mir ja im Prinzip vorstellen, denn mod 91 auf eine 1337 anzuwenden kann ja nicht zum gewünschten Ergebnis führen...
Gut, dass mir der Fehler jetzt schon auffällt - Abgabe am Montag.
:-O

Delphi-Quellcode:
function ExpMod(b, x, m: integer): integer;
var
  quad, halb: integer;
begin
  quad := b;
  halb := x;
  Result := 1;
  while halb > 0 do
  begin
    if halb mod 2 > 0 then
      Result := (Result * quad) mod m;
    quad := (quad * quad) mod m;
    halb := halb div 2;
  end;
end;
Delphi-Quellcode:
function TRSA.Decrypt(text:String; d, N:integer):string;
var
  x, temp:integer;
begin {
  temp := 1;
  for x := 1 to d do
    temp := (temp * StrToInt(text) mod N);
  Result := IntToStr(temp);              }

  Result := IntToStr(ExpMod(StrToInt(text), d, N));
end;
(Das im Kommentar bringt dasselbe Ergebniss, ist auch dieselbe Methode wie zum Verschlüsseln. So ganz hab ich noch nicht verstabden, wozu die Exponentation gebraucht wird, man kann es ja auch einfach berechnen...
Auf jeden Fall weiss ich nicht ob ich was falsch gemacht habe, oder ob ich vielleicht nur schlechte Zahlen gewählt habe?
Danke!

Grüße
fortuneNext
Tim
"Hilfe & Support konnte nicht geöffnet werden. Bitte öffnen sie Hilfe & Support, um das Problem zu beheben."
"No Keyboard found. Press F1 to continue."
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: RSA-Verschlüsselung

  Alt 18. Mär 2009, 16:57
Zitat von fortuneNext:
So ganz hab ich noch nicht verstanden, wozu die Exponentation gebraucht wird, man kann es ja auch einfach berechnen...
Überlege Dir doch mal wie groß die Zahlen werden wenn p und q mal etwas größer werden.
Das schaft der Wertebereich von Power nicht mehr,

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: RSA-Verschlüsselung

  Alt 18. Mär 2009, 17:30
@brushmate

.. könnte der Fehler/das Problem hier liegen?

e := random*(N-1); Laut der delphi Hilfe liefert random ein float Wert zurück.
Zitat von DelphiHilfe:
Random returns a random number within the range 0 <= X < Range. If Range is not specified, the result is a real-type random number within the range

0 <= X < 1.
Dann wird es später schwierig mit der ggT Funktion
und dann hast Du eine wunderbare Endlosschleife.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
brushmate

Registriert seit: 19. Dez 2008
Ort: Kempen
20 Beiträge
 
Delphi 7 Personal
 
#14

Re: RSA-Verschlüsselung

  Alt 18. Mär 2009, 17:43
Das habe ich jetzt mit round behoben funktioniert auch recht schnell...allerdings kommt dann in der nächsten repeat-Schleife wieder dasselbe Problem. round hilft dabei auch nicht

Ich hab mal mit einer for schleife alle werte ausprobiert die e annehmen könnte(aus dem von mir definierten Zahlenbereich) passen aber irgendwie alle nicht bei dem d*e mod phi = 1
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: RSA-Verschlüsselung

  Alt 18. Mär 2009, 17:47
.. warum multiplizierst Du denn random mit einem Wert?
Willst Du nicht einen zufälligen Wert aus einem Wertebereich?

also anstelle
e:= random*(N-1) so
e:=random(N-1) ?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
brushmate

Registriert seit: 19. Dez 2008
Ort: Kempen
20 Beiträge
 
Delphi 7 Personal
 
#16

Re: RSA-Verschlüsselung

  Alt 18. Mär 2009, 17:52
In der Delphi-Hilfe steht, dass random ohne Paramater einen Wert 0 < x <= 1 zurückgibt (einen float-wert). Als Parameter kann nur Integer übergeben werden N ist aber Extended. Durch die Multiplikation kann der Zufallswert also höchstens N-1 werden
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#17

Re: RSA-Verschlüsselung

  Alt 18. Mär 2009, 18:23
Zitat von brushmate:
In der Delphi-Hilfe steht, dass random ohne Paramater einen Wert 0 < x <= 1 zurückgibt (einen float-wert). Als Parameter kann nur Integer übergeben werden N ist aber Extended. Durch die Multiplikation kann der Zufallswert also höchstens N-1 werden
.. aber auch wieder ein extended Wert und so weit ich weiß fußt RSA
auf Ganzzahloperationen.

Wieso ist N extended
p (integer) mit q(integer) multipliziert ergibt doch wieder einen, wenn auch großen, Integerwert.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
brushmate

Registriert seit: 19. Dez 2008
Ort: Kempen
20 Beiträge
 
Delphi 7 Personal
 
#18

Re: RSA-Verschlüsselung

  Alt 18. Mär 2009, 18:28
Das mit den ganzen Zahlen besteht ja auch weiterhin. durch das round wird der Wert für e ja ganzzahlig.

Ich speichere p*q in N und N ist Extended. Integerwerte kann man ja in Float Variablen speichern.
  Mit Zitat antworten Zitat
brushmate

Registriert seit: 19. Dez 2008
Ort: Kempen
20 Beiträge
 
Delphi 7 Personal
 
#19

Re: RSA-Verschlüsselung

  Alt 18. Mär 2009, 18:45
So funktioniert jetzt...kann allerdings nur die 1 verschlüsseln ansonsten kommt ein Overflow Fehler
Angehängte Dateien
Dateityp: zip rsa_152.zip (206,6 KB, 20x aufgerufen)
  Mit Zitat antworten Zitat
fortuneNext

Registriert seit: 11. Aug 2007
Ort: Neuss
133 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: RSA-Verschlüsselung

  Alt 18. Mär 2009, 21:04
Zitat von Klaus01:
Zitat von fortuneNext:
So ganz hab ich noch nicht verstanden, wozu die Exponentation gebraucht wird, man kann es ja auch einfach berechnen...
Überlege Dir doch mal wie groß die Zahlen werden wenn p und q mal etwas größer werden.
Das schaft der Wertebereich von Power nicht mehr,

Grüße
Klaus
Hmmm kann es sein, dass der kommentierte Code schon diese Exponentation ist? x_X Dann hab ich die nämlich gemacht, ohne zu wissen, was das ist
Fraglich ist dann für mich noch, warum das laut Wikipedia nicht auch bei der Verschlüsselung gemacht wird, dort kommen doch ähnlich hohe Wert vor...
Und ob das richtig so ist mit der Verschlüsselung ist mir noch unklar, aber dafür mach ich mal nen eigenes Topic auf

http://www.delphipraxis.net/internal...015915#1015915
Tim
"Hilfe & Support konnte nicht geöffnet werden. Bitte öffnen sie Hilfe & Support, um das Problem zu beheben."
"No Keyboard found. Press F1 to continue."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz