Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-10-2007, 22:04   #1 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
Verschlüsselung mit RSA

Hab mich heute mal drangesettzt und diese kleine Applikation geschrieben,
die einen String zuerst Zeichen für Zeichen ausliest.

Die Zeichen werden in die entsprechenden CharCodes umgewandelt,
diese dann per RSA verschlüsselt und können dann nur mit dem
privaten Key wieder entschlüsselt werden.

Das ganze zu sehen:
Demo

- Text eingeben (Mittleres Feld)
- Verschlüsseln
- Privaten Key oben eingeben
- Verschlüsselten Text kopiren und einfügen
- Entschlüsseln

Werde mich morgen mal dransetzen und es Klassifizieren ^^

Wie das ganze funktioniert kann man ja bei Wikipedia nachlesen.
Ich versuche es nun grad so zu optimieren, dass es sauber und schnell läuft und Primzahlen verwendet werden können von mehreren (und damit mein ich wirklich mehreren ^^ ) Dezimalstellen.

Source gibts dann morgen als Klasse

Code:
  1. // Diskrete Exponentialfunktion
  2. function mod_exp(b : int, x : int, m : int) : int
  3. {
  4.     var erg : int = 1;
  5.     while(x > 0)
  6.     {
  7.         if(x & 1) erg = (erg * b) % m;
  8.         b = (b * b) % m;
  9.         x = x >> 1;
  10.     }
  11.     return erg;
  12. }
  13.  
  14. // Erweiterter euklidischer Algorithmus
  15. function extendedEuclid(b : uint, n : uint) : uint
  16. {
  17.     var b0 : uint = b;
  18.     var n0 : uint = n;
  19.     var t0 : uint  = 0;
  20.     var t : uint  = 1;
  21.     var q : uint = Math.floor(n0 / b0);
  22.     var r : uint = n0 - q * b0;
  23.     while(r > 0)
  24.     {
  25.         var temp : Number = t0 - q * t;
  26.         if(temp >= 0) temp = temp % n;
  27.         if(temp < 0) temp = n - ((-temp) % n);
  28.         t0 = t;
  29.         t = temp;
  30.         n0 = b0;
  31.         b0 = r;
  32.         q = Math.floor(n0 / b0);
  33.         r = n0 - q * b0;
  34.     }
  35.     if(b0 != 1) b = 1;
  36.     else b = t % n;
  37.     return b;
  38. }

Code:
  1. // Beispiel
  2. var p : uint = 11;
  3. var q : uint = 13;
  4.  
  5. // RSA-Modul
  6. var N : uint = p * q; // 143
  7.  
  8. // eulersche phi-funktion
  9. var i : uint = (p - 1) * (q - 1); // 120
  10.  
  11. // teilerfremde Zahl e
  12. var e : uint = 23; // Beispiel
  13.  
  14. // erweiterter euklidischer Algorithmus
  15. var d : uint = extendedEuclid(e, i); // 47
  16.  
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi

Geändert von _crypto_ (25-10-2007 um 22:19 Uhr)
_crypto_ ist offline   Mit Zitat antworten
Alt 25-10-2007, 22:16   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.345
Very nice!
Omega Psi ist gerade online   Mit Zitat antworten
Alt 26-10-2007, 21:34   #3 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
Sry habs heute ncoht nciht geschaft. kommt aber am Wochenende!!
Hab nämlich Metroid Prime 3 heute bekommen
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 26-10-2007, 21:49   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.345
****, das kommt ja auch nun... viel Spass! Das muss ich auch noch checken.
Omega Psi ist gerade online   Mit Zitat antworten
Alt 29-10-2007, 08:02   #5 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg
Beiträge: 4.385
Wow, fette Sache!
Das werde ich mir auch mal reinziehen müssen.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 29-10-2007, 13:06   #6 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
sry das mit der klasse wird erstmal nix ... Metroid sucht
lad heir mal den sourcecode hoch.
Angehängte Dateien
Dateityp: rar RSA-Kryptosystem.rar (9,6 KB, 32x aufgerufen)
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele