Autor Beitrag
herr-master
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: So 29.09.13 18:53 
Ich hoffe das hier ist der richtige bereich für dieses theme könnte der entwickler von MPArith es für delphi xe4 anpassen.
Und warum bekomme ich bei mp_mul(mp_p,mp_q,ergebnis);
12 * 13 = 144 ????
12 * 13 ist 156 oder kann ich nicht mehr rechnen.
ausblenden Delphi-Quelltext
1:
2:
mp_rsaep(m,e,n,c);
edit4.text:=mp_adecimal(m);

Bekomme ich das hier zu sehen s_mp_read_radix:invalid number synatx zu sehen.
so sieht der ganse code aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  c, n, e,m: mp_int;
begin
 mp_init4(c,n,e,m);
 mp_read_decimal_str(e,edit1.text);
 mp_read_decimal_str(n,edit2.text);
 mp_rsaep(m,e,n,c);//rsa encrypt??
 mp_read_decimal_str(c,edit3.text);
 edit4.text:=mp_adecimal(m);


Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 29.09.13 19:25 
Hallo,
user profile iconherr-master hat folgendes geschrieben Zum zitierten Posting springen:
könnte der entwickler von MPArith es für delphi xe4 anpassen.

Woran anpassen? MPArith funktioniert tadellos.
user profile iconherr-master hat folgendes geschrieben Zum zitierten Posting springen:
Und warum bekomme ich bei mp_mul(mp_p,mp_q,ergebnis);
12 * 13 = 144 ????
12 * 13 ist 156 oder kann ich nicht mehr rechnen.

Ohne Quelltext kann man nicht viel sagen. Da MPArith fehlerfrei arbeitet, d.h. 12*13 richtig rechnet, nun ja, ...
user profile iconherr-master hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  c, n, e,m: mp_int;
begin
 mp_init4(c,n,e,m);
 mp_read_decimal_str(e,edit1.text);
 mp_read_decimal_str(n,edit2.text);
 mp_rsaep(m,e,n,c);//rsa encrypt??
 mp_read_decimal_str(c,edit3.text);
 edit4.text:=mp_adecimal(m);

Nach der Beschreibung von
ausblenden Quelltext
1:
2:
  procedure mp_rsaep(const m, e, n: mp_int; var c: mp_int);
  {-Basic RSA encryption operation, c=m^e mod n.}

ist c das Ergebnis der Operation. Nach Deinem Quelltext hast Du zwar m initialisiert, aber diesem keinen Wert zugewiesen. Außerdem verwirrt mich mp_read_decimal_str(c,edit3.text). c ist das Ergebnis, warum erhält c den Wert von edit3?
Etwas mehr Quelltext wäre für eine Fehlersuche hilfreich.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
herr-master Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: So 29.09.13 19:48 
Allso wenn ich mparith so verwende in delphi xe4 bekomme ich diese meldung:
[dcc32 Fehler] mp_rc16.pas(242): E2107 Operandengröße stimmt nicht überein allso scheint es ja nicht in delphi xe4 einwandfrei zu functioniren.
So sieht bei mir das mp_mul aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
mp_p, mp_q, ergebnis:mp_int;
begin
mp_init3(mp_p, mp_q, ergebnis);
mp_read_decimal_str(mp_p, Edit1.Text);
mp_read_decimal_str(mp_q, Edit2.Text);
mp_mul(mp_p, mp_q, ergebnis);
Edit3.Text:=mp_adecimal(ergebnis);


Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 29.09.13 20:15 
Hallo,
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button1Click(Sender: TObject);
var mp_p, mp_q, ergebnis:mp_int;
begin
   mp_init3(mp_p, mp_q, ergebnis);
   mp_read_decimal_str(mp_p, edit1.text);
   mp_read_decimal_str(mp_q, edit2.text);
   mp_mul(mp_p, mp_q, ergebnis);
   edit3.text:=mp_adecimal(ergebnis);
   mp_clear3(mp_p, mp_q, ergebnis);
end;

funktioniert problemlos. Für 12 und 13 ergibt sich korrekt 156.
user profile iconherr-master hat folgendes geschrieben Zum zitierten Posting springen:
Allso wenn ich mparith so verwende in delphi xe4 bekomme ich diese meldung:
[dcc32 Fehler] mp_rc16.pas(242): E2107 Operandengröße stimmt nicht überein

Verstehe ich nicht. Bei mir gibt's es keine Fehlermeldung.
An Zeile 242 steht
ausblenden Quelltext
1:
    mov ax,offset @@table					

Kommt bei Dir an dieser Stelle der Fehler?

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
herr-master Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: So 29.09.13 20:26 
ja genau an der stelle kommt der fehler.
hab es mal so gelöst
ausblenden Delphi-Quelltext
1:
mov esi,offset @@table					
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 29.09.13 20:56 
Dass die Zeile etwas vollkommen anderes macht, ist dir aber klar, oder? :shock:

Wenn, dann wohl eher so:
ausblenden Delphi-Quelltext
1:
mov eax,offset @@table					
(ohne den Zusammenhang zu kennen)
herr-master Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: So 29.09.13 21:04 
wenn ich das benutze
ausblenden Delphi-Quelltext
1:
mov eax,offset @@table					

kommt bei 12 * 13 = 144 raus
Sorry mein fehler hatte noch db mit dd ersetzt darum kam 144 raus.

Mal noch eine frage am rande
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
mp_init4(c,n,e,m);
 mp_read_decimal_str(e,edit1.text);
 mp_read_decimal_str(n,edit2.text);
 mp_rsaep(m,e,n,c);//rsa encrypt??
 mp_read_decimal_str(m,edit3.text);
 edit4.text:=mp_adecimal(c);

selbst wenn ich das benutze functioniert es nicht.
E=65537(10er)
n=123457171127564473956360536343713050577(128bits)
Bei fgint ist es ja so
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
FGintRSA.RSAEncrypt
    (
    StringEdt.Text,
    Private_Exp,
    Modulus_N,
    EncryptedString
    );

Warum muss ich bei mparith so viele sachen benutzen für ein rsa encrypt?