AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

RSA verschlüsselung

Ein Thema von NicNacMan · begonnen am 20. Jul 2005 · letzter Beitrag vom 29. Mär 2006
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von NicNacMan
NicNacMan

Registriert seit: 28. Mai 2004
Ort: Hamburg
98 Beiträge
 
Delphi 2005 Personal
 
#1

RSA verschlüsselung

  Alt 20. Jul 2005, 14:55
hi,

ich suche eine function/komponente, mit der ich eine zahl mit rsa verschlüsseln kann.
ich hab schon mehrere komponenten gefunden und ausprobiert,
aber die waren alle zu komplex, oder funktionierten nicht.
ich hab schon public keys, brauche also nichts, um gültige keys zu generieren.

kennt ja jemand was?
thx schonmal
The Double-Crunch-Peanuts!
SwapIt:
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: RSA verschlüsselung

  Alt 20. Jul 2005, 15:03
Hagen fragen!

... oder nach DEC suchen
  Mit Zitat antworten Zitat
Benutzerbild von NicNacMan
NicNacMan

Registriert seit: 28. Mai 2004
Ort: Hamburg
98 Beiträge
 
Delphi 2005 Personal
 
#3

Re: RSA verschlüsselung

  Alt 20. Jul 2005, 16:29
hab mir das DEC runter geladen, aber nichts mit rsa gefunden.
oder ist das da nur unter nem anderen namen enthalten (habs nicht so mit verschlüsselungen)?

thx nicnacman
The Double-Crunch-Peanuts!
SwapIt:
  Mit Zitat antworten Zitat
Phistev
(Gast)

n/a Beiträge
 
#4

Re: RSA verschlüsselung

  Alt 20. Jul 2005, 16:45
Soweit ich weiß, sind beim DEC auch Funktionen zum Rechnen mit großen Zahlen dabei. Damit kann man sich die RSA-Verschlüsselung selber bauen
  Mit Zitat antworten Zitat
Benutzerbild von NicNacMan
NicNacMan

Registriert seit: 28. Mai 2004
Ort: Hamburg
98 Beiträge
 
Delphi 2005 Personal
 
#5

Re: RSA verschlüsselung

  Alt 20. Jul 2005, 16:52
jo, aber da hab ich sonst auch schon welche (u.a. von den kompos, die ich schon ausprobiert hab).
das problem ist bei mir aber, dass ich nicht so die ahnung von rsa hab.
ich weiß zwar inzwischen, wie das funzt, aber immer wenn ich das mal selbst probiert hab, kam was anderes raus^^
The Double-Crunch-Peanuts!
SwapIt:
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#6

Re: RSA verschlüsselung

  Alt 20. Jul 2005, 17:01
turbopower bei sf suchen...

http://sourceforge.net/projects/tplockbox/
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von NicNacMan
NicNacMan

Registriert seit: 28. Mai 2004
Ort: Hamburg
98 Beiträge
 
Delphi 2005 Personal
 
#7

Re: RSA verschlüsselung

  Alt 20. Jul 2005, 17:04
thx, lockbox hatte ich schon probiert.
ich habs aber nicht hinbekommen, meinen eigenen key verwenden zu können,
er hat immer welche generiert.

edit: habts mit den beispielen, und der hilfe versucht, aber nichts darüber gefunden.
gibt es vll noch weitere beispiele mit turbopower?
The Double-Crunch-Peanuts!
SwapIt:
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: RSA verschlüsselung

  Alt 20. Jul 2005, 17:06
Also wenn du die Keys schon hast (3 Werte) dann ist das ganz einfach...

erstmal die RSA Verschlüsselung als Java-Programm:

Code:
import java.math.BigInteger;
import java.util.Random;
public class RSA {
   private BigInteger n,e,d;
   private int pubkey, privkey;
   RSA(){
      BigInteger p = BigInteger.probablePrime(512, new Random());
      BigInteger q = BigInteger.probablePrime(512, new Random());
      n=p.multiply(q);
      BigInteger f = p.multiply(q).subtract(p).subtract(q).add(BigInteger.ONE);
      e=new BigInteger("3");
      while(f.gcd(e).doubleValue()!=1.0)
         e=new BigInteger(String.valueOf(prim(e.intValue()+1)));
      d=e.modInverse(f);
   }

   public BigInteger encode(BigInteger t){
      return t.modPow(e,n);
   
   }
   
   public BigInteger decode(BigInteger c){
      return c.modPow(d,n);
   }

      private int prim(int a) {
         boolean isprim=true;
         for(int i=a;i<10000;i++){
            for(int j=2;j<i;j++){
               if(i%j==0)
                  isprim=false;
            }
            if(isprim)
               return i;
            isprim=true;
         }
         return 0;
      }
}
vielleicht kannst du da was mit anfangen.

Anosnten musst du nur wissen, dass zur verschlüsselung von werten mit dem RSA-public key du nichts anderes machen musst
als deinen Wert mit E potenzieren und MOD N nehmen musst. Welches davon die werte sind, die du brauchst, musst du wissen, du hast ja die Schlüssel.
Zum entschlüsseln das gleiche allerdings mit dem privaten Teil des Schlüssels D.
also:

X (zu entschlüsselnder Wert) mit D potenzieren und MOD N nehmen.

Das wars.

Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von NicNacMan
NicNacMan

Registriert seit: 28. Mai 2004
Ort: Hamburg
98 Beiträge
 
Delphi 2005 Personal
 
#9

Re: RSA verschlüsselung

  Alt 20. Jul 2005, 17:23
erstmal danke für den code.
muss gleich mal sehen wie ich den gebrauchen kann.

also die public keys sind:
N = 26967259745684484909271072928592253020339168682042 2133286759
e = 5456431

wenn ich jetzt als code c z.b. 123456 nehme,
dann müsste ich ja c^e mod N rechnen, oder?

ich werds mal probieren, sonst komm ich wieder^^
thx soweit
The Double-Crunch-Peanuts!
SwapIt:
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

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

Re: RSA verschlüsselung

  Alt 20. Jul 2005, 21:47
Im offiziellen DEC sind keine asymmetrischen Algos enthalten, ich habe aber hier http://www.delphipraxis.net/internal...ct.php?t=14699 meinen inoffiziellen Part II des DEC gepostet.
Damit kannst du schon mal mit sehr großen Zahlen rechnen. Du lädst dir dort deine benötigte Version runter -> D5,D6 oder D7.

Um nun mit deinem Beispiel zu rechnen erweiterst du folgendes im Test Projekt

Delphi-Quellcode:

unit TestUnit;

interface

uses Windows, ConsoleForm.....;

implementation

.....blabla

procedure TestRSA;
var
  N,E,M,C: IInteger;
begin
// Zuweisungen
  NSet(N, '269672597456844849092710729285922530203391686820422133286759');
  NSet(E, '5456431');
  NSet(M, 123456);

// modular Potenzieren
  NPowMod(C, M, E, N); // C = M^E mod N -> CipherText = Message^Exponent mod Modulus

// Ausgabe
  WriteLn('N: ', NStr(N));
  WriteLn('E: ', NStr(E));
  WriteLn('M: ', NStr(M));
  WriteLn('C: ', NStr(C));
end;


initialization
  RegisterProc('\Test\RSA', '', TestRSA, vk_F8);

....blabla
end.
dann kompilierst du das Projekt, startest das Projekt und drückst F8, in der Console sollten dann deine Ausgaben stehen.

Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:10 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