Zum Inhalt springen

Wolfs

Mitglieder
  • Gesamte Inhalte

    4
  • Benutzer seit

  • Letzter Besuch

  1. Wolfs

    Kryptieren mit RSA

    ah ok. Kennste ein gutes mathe forum? hoffe auf baldige antwort
  2. Wolfs

    Kryptieren mit RSA

    hi, hat den keiner eine ahnung wie die Rechnung funktioniert? D = E mod (phi(N)) mit den erweiterten euklidischen algorithmus? bitte dankeshön
  3. hallo, da ich eigendlich ein Newby bin weis ich nicht ob das hier das richtige Forum ist um die Frage zu stellen da es aber um Datensicherung geht dachte ich es sei ok um meine Frage hier zu stellen. Ich schreibe gerade ein Referat das ueber Kryptographie geht und haenge bei den Erweiterten Euklidischen Alghorithmus. nehmen wir das beispiel von Wikipedia: Vorarbeiten ----------- Die oben genannten Schritte sollen nun an einem vollständigen Beispiel erläutert werden. Um einen Text zu verschlüsseln, müssen zunächst Buchstaben in Zahlen umgewandelt werden. Dazu verwendet man in der Praxis zum Beispiel den ASCII-Code. Hier sei willkürlich die folgende Zuordnung gewählt: A=01 B=02 C=03 usw. (00 = Leerzeichen) Darüber hinaus sei angenommen, dass jeweils drei Zeichen zu einer Zahl zusammengefasst werden. Die Buchstabenfolge AXT wird also zu 012420. Die kleinste zu verschlüsselnde Zahl ist dann 000000 (drei Leerzeichen), die größte 262626 (ZZZ). Der Modulus N = p \cdot q muss also größer 262626 sein. Klartext: W I K I P E D I A Kodierung: 230911 091605 040901 Schlüsselerzeugung ------------------ Zunächst werden geheim zwei Primzahlen gewählt, beispielsweise p = 307 und q = 859. Damit ergibt sich: N = p * q = 263713 phi(N) = (p-1) * (q-1) = 262548 e = 1721 (zufällig, teilerfremd zu phi(N)) d = 1373 (das multiplikative Inverse zu e mod phi(N) mit Hilfe des Erweiterten euklidischen Algorithmus) Öffentlicher Schlüssel: e = 1721 und N = 263713 Geheimer Schlüssel: d = 1373 und N = 263713 Verschlüsselung --------------- Cn = Kne mod N für n=1,2,3(,...) C1 = 2309111721 mod 263713 = 001715 C2 = 0916051721 mod 263713 = 184304 C3 = 0409011721 mod 263713 = 219983 Entschlüsselung --------------- Kn = Cnd mod N für n=1,2,3(,...) K1 = 0017151373 mod 263713 = 230911 K2 = 1843041373 mod 263713 = 091605 K3 = 2199831373 mod 263713 = 040901 Die Frage die sich mir jetzt stellt ist wie berechne ich das d? Ich verstehe die Formel nicht waere erfreut wenn sich jemand diesem Problem stellt und mir eine Antwort geben kann die ich verstehe. Vielen dank schon einmal im Voraus.
  4. hi, ich weis nicht ob es hier welche gibt die sich noch mit Pascal Auskennen ich rechne mit dem Sieb alle Primzahlen zwischen 2-400mio innerhalb einer minute und schreibe dabei noch alle Primzahlen die ich finde in externe textdateien ich brauch mehr dateien dar 450MB grosse dateien durch keinen Reader geoffnet werden koennen. ich benutze 11 dateien dar diese dann jedesmal nur 45 mb gross sind. das Programm ist im delphi geschrieben. program Primzahlen; {$APPTYPE CONSOLE} uses SysUtils, windows; var All : array [2..400000000] of integer; I,J,NextPrim,count:integer; start,stop:tDateTime; f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11:textFile; begin {$M 10000000} J:=2; start:=Now(); //Zeit starten um zu rechnen wie lange das fuellen dauert for I:= 2 to 400000000 do //array fuellen mit werten 2-400mio All:=I; stop:=now(); //zeit stoppen writeln('Array mit allen Werten von 2-400.000.000 fuellen dauert -> ',round((stop-start)*86400),'s'); //zeit rausschreiben start:=Now(); //zeit starten um die zeit des suchens zu berechnen. NextPrim:=0; while NextPrim <= round(sqrt(400000000)) do //kucken ob Nextprim nicht ueber 20.000 geht mehr durchgaenge wer ueberfluessig begin NextPrim:=0; while NextPrim=0 do begin if All[J]<>0 then //erstbeste Primzahl suchen NextPrim:=J; inc(J); end; I:=NextPrim; //alle vorherigen moeglichkeiten sind schon getestet while NextPrim*I<=400000000 do //solange loeschen bis das die nexte zahl ueber 400mio geht begin All[NextPrim*I]:=0; inc(I); end; end; stop:=now(); //zeit Stoppen writeln('Alle Primzahlen zwischen 2-400.000.000 rechnen dauert -> ',round((stop-start)*86400),'s'); //zeit des berechnens rausschreiben start:=Now(); //Zeit fuer in dateien zu schreiben count:=1; assign(F1,'Prim01 2-2mio.txt'); assign(F2,'Prim02 2mio1-4mio.txt'); assign(F3,'Prim03 4mio1-6mio.txt'); assign(F4,'Prim04 6mio1-8mio.txt'); assign(F5,'Prim05 8mio1-10mio.txt'); assign(F6,'Prim06 10mio1-12mio.txt'); assign(F7,'Prim07 12mio1-14mio.txt'); assign(F8,'Prim08 14mio1-16mio.txt'); assign(F9,'Prim09 16mio1-18mio.txt'); assign(F10,'Prim10 18mio1-20mio.txt'); assign(F11,'Prim11 20mio1-21mio.txt'); rewrite(f1); rewrite(f2); rewrite(f3); rewrite(f4); rewrite(f5); rewrite(f6); rewrite(f7); rewrite(f8); rewrite(f9); rewrite(f10); rewrite(f11); for I:= 2 to 400000000 do //alle felder ueberpruefen um in dateien zu schreiben case Count of 1..2000000: if All<>0 then begin writeln(F1,count,' <= ',All); inc(Count) end; 2000001..4000000: if All<>0 then begin writeln(F2,count,' <= ',All); inc(Count) end; 4000001..6000000: if All<>0 then begin writeln(F3,count,' <= ',All); inc(Count) end; 6000001..8000000: if All<>0 then begin writeln(F4,count,' <= ',All); inc(Count) end; 8000001..10000000: if All<>0 then begin writeln(F5,count,' <= ',All); inc(Count) end; 10000001..12000000: if All<>0 then begin writeln(F6,count,' <= ',All); inc(Count) end; 12000001..14000000: if All<>0 then begin writeln(F7,count,' <= ',All); inc(Count) end; 14000001..16000000: if All<>0 then begin writeln(F8,count,' <= ',All); inc(Count) end; 16000001..18000000: if All<>0 then begin writeln(F9,count,' <= ',All); inc(Count) end; 18000001..20000000: if All<>0 then begin writeln(F10,count,' <= ',All); inc(Count) end; 20000001..22000000: if All<>0 then begin writeln(F11,count,' <= ',All); inc(Count) end; end; closeFile(f1); closeFile(f2); closeFile(f3); closeFile(f4); closeFile(f5); closeFile(f6); closeFile(f7); closeFile(f8); closeFile(f9); closeFile(f10); closefile(f11); stop:=now(); /zeit stoppen writeln('Alle Primzahlen zwischen 2-400.000.000 in Dateien zu schreiben dauert -> ',round((stop-start)*86400),'s'); //zeit rausschreiben fuer alle primzahlen in dateien zu schreiben readln; //damit das programm nicht automatish stoppt. end. ich bin anfaenger mach erst 3 Jahre programmation und bin 19 Jahre alt wenn irgendwer eine methode findet wie man dieses Programm schneller kriegt soll er/sie sich melden. mfg Wolfs

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...