AGB  ·  Datenschutz  ·  Impressum  







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

Hacken bei RSA-Verfahren

Ein Thema von Meisterschmied · begonnen am 18. Nov 2003 · letzter Beitrag vom 23. Nov 2003
 
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#6

Re: Hacken bei RSA-Verfahren

  Alt 19. Nov 2003, 13:56
Deine Exponentation scheint mir nicht richtig zu sein. Hier mal die beiden möglichen Varianten. Beachte auch das diese Verfahren nur mit M,B < 2^16 korrekt arbeiten können. Wird stattdessen Int64 benutzt so liegt die Schranke bei 2^31. Größere Zahlen erzeugen in den Multiplikationen Überläufe.
Exponent E mus größer 1 sein, es sind also keine speziellen Abfragen drin für E <= 0 !

Delphi-Quellcode:
function ExpModLR(B,E,M: Integer): Integer;
// Bottomup Exponentation, wie im PDF beschrieben
var
  T: Integer;
begin
  Result := 1;
  T := B;
  while E > 1 do
  begin
    T := (T * T) mod M;
    E := E shr 1;
    if Odd(E) then Result := (Result * T) mod M;
  end;
end;

function ExpModRL(B,E,M: Integer): Integer;
// Topdown Exponentation, wie die meisten math. Bibliotheken sie nutzen
// Beachte Basis B bleibt konstant, dadurch sind spezielle Optimierungen möglich.
// Es wird eine Multiplikation weniger durchgeführt als obige Exponentation
// Die Abfragen Log2(E) und IsBitSet(E) sind in math. Bibliotheken sehr effizient
// durchzuführen. Dadurch wird Exponent E ebenfalls konstant.

  function Lg2(V: Cardinal): Integer;
  // Result := Trunc(Log2(V))
  asm
      BSR EAX,EAX
  end;
  {begin
    Result := 0;
    while V > 1 do
    begin
      Inc(Result);
      V := V shr 1;
    end;
  end;}


  function IsBitSet(V: Cardinal; Index: Integer): Boolean;
  asm
     BT EAX,EDX
     SETC AL
  end;
{  begin
    Result := Odd(V shr Index);
  end;}


var
  I: Integer;
begin
  Result := B;
  for I := Lg2(E) -1 downto 0 do
  begin
    Result := (Result * Result) mod M;
    if IsBitSet(E, I) then
      Result := (Result * B) mod M;
  end;
end;
Gruß Hagen
  Mit Zitat antworten Zitat
 


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 08:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz