Einzelnen Beitrag anzeigen

brushmate

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

Problem mit undefinierten Bezeichnern

  Alt 17. Mär 2009, 18:47
Hi,

ich bin gerade dabei das RSA-Verfahren zu programmieren:

Delphi-Quellcode:
unit mRSA;

interface

uses
  Math;

type
  TRSA = class(TObject)
    private
      p, q: Integer;
      phi, e: Extended;
      function isPrime(x: Integer): Boolean;
      function ggT(x, y: Extended): Extended;
      function modulo(x, y: Extended): Extended;
    public
      n, d: Extended;
      constructor create();
      function crypt(x: Extended): Extended;
      function encrypt(x: Extended): Extended;
      destructor destroy();
  end;

implementation

constructor TRSA.create();
var help: Integer;
begin
  randomize;
  repeat
    help := random(46340);
  until isPrime(help);
  p := help;
  repeat
    repeat
      help := random(46340);
    until isPrime(help);
    q := help;
  until p <> q;
  N := p*q;
  phi := (p-1)*(q-1);
  repeat
    e := random*(N-1);
  until (e > 1) and ((ggT(e, N)) = 1);
  repeat
    d := random*N;
  until modulo((e*d), phi) = 1;
  p := 0;
  q := 0;
  phi := 0;
end;

function TRSA.isPrime(x: Integer): Boolean;
var i: Integer;
begin
  result := true;
  for i := 2 to (x - 1) do begin
    if x mod i = 0 then result := false
  end;
end;

function TRSA.ggT(x, y: Extended): Extended;
var help: Extended;
begin
  if y > x then begin
    help := x;
    x := y;
    y := help;
  end;
  if y = 0 then result := x
  else result := ggT(y, modulo(x, y));
end;

function TRSA.modulo(x, y: Extended): Extended;
begin
  result := x;
  while x >= y do begin
    x := x - y;
    result := x;
  end;
end;

function crypt(x: Extended): Extended;
begin
  result := modulo(power(x, d), n);
end;

function encrypt(x: Extended): Extended;
begin
  result := modulo(power(x, e), n);
end;

destructor destroy();
begin
  n := 0;
  d := 0;
  e := 0;
  inherited;
end;

end.
Beim kompilieren zeigt mir Delphi bei den Funktionen crypt und encrypt folgende Fehler an:
[Fehler] mRSA.pas(85): Undefinierter Bezeichner: 'modulo'
[Fehler] mRSA.pas(85): Undefinierter Bezeichner: 'd'
[Fehler] mRSA.pas(90): Undefinierter Bezeichner: 'modulo'
[Fehler] mRSA.pas(90): Undefinierter Bezeichner: 'e'
[Fehler] mRSA.pas(93): Undefinierter Bezeichner: 'destroy'
[Fehler] mRSA.pas(95): Undefinierter Bezeichner: 'n'
[Fehler] mRSA.pas(96): Undefinierter Bezeichner: 'd'
[Fehler] mRSA.pas(97): Undefinierter Bezeichner: 'e'

Vor diesen Zeilen hat er keine Probleme mit den Funktionen und Variablen...
Wodran liegt's?
  Mit Zitat antworten Zitat