Thema: Delphi RSA verschlüsselung

Einzelnen Beitrag anzeigen

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, 16: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