Beispiel eines asymmetrischen Algorithmus: RSA. Es gibt verschiedene asymmetrische Algorithmen. Eines der bekanntesten ist das RSA (aufgrund seiner Entwickler). Dieser Algorithmus wird häufig in Browsern, für sichere Websites und zum Verschlüsseln von E-Mails verwendet. Es ist in Domain Öffentlichkeit

Beispiel für einen asymmetrischen Algorithmus: RSA zum Verschlüsseln

Um eine Nachricht zu verschlüsseln, gehen wir wie folgt vor: c = m ^ e mod n

Um es zu entziffern: m = c ^ d mod nm = Klartext

c = verschlüsselte Nachricht

(im) = öffentlicher Schlüssel

(d, n) = privater Schlüssel

nicht = ist das Produkt zweier Primzahlen

^ = ist die Exponentiationsoperation (a ^ b: die Potenz b)

mod = ist die Modulo-Operation (Rest der Ganzzahldivision)

Erstellen Sie ein Schlüsselpaar

Es ist sehr einfach, aber seien Sie vorsichtig bei der Auswahl y, d y nicht. Und wissen Sie, dass die Berechnung dieser drei Zahlen schwierig ist.

So geht's:

1. Sammeln Sie zwei Primzahlen p y dass (ungefähr gleich groß). Berechnen n = warum.

2. Sammeln Sie eine Nummer y es hat keinen gemeinsamen Faktor mit (p-1) (q-1).

3. Berechnen d als ed mod (p-1) (q-1) = 1.

Das Paar (im) Es ist der öffentliche Schlüssel. (d, n) Es ist der private Schlüssel.

Beispiel:

Erstellen wir zunächst unser Schlüsselpaar:

Nimm zufällig zwei Primzahlen auf: p = 29, q = 37

berechnen n = pq = 29 · 37 = 1073

y muss zufällig ausgewählt werden, damit y habe keine gemeinsamen Faktoren mit (p-1) (q-1):

(p-1) (q-1) = (29-1) (37-1) = 1008

Abholen e = 71

Zu wählen d als 71 * dmod 1008 = 1

Lass uns finden d = 1079

Jetzt haben wir unsere Schlüssel:

  • Der öffentliche Schlüssel ist (e, n) = (71.1073) (= Verschlüsselungsschlüssel)
  • Der private Schlüssel ist (d, n) = (1079.1073) (= Entschlüsselungsschlüssel)

Verschlüsseln wir die Nachricht «Hallo". Lassen Sie uns das bekommen ASCII-Code von jedem Buchstaben und legen Sie sie nebeneinander:

m = 7269767679

Wir müssen die Nachricht also in Blöcke schneiden, die weniger Ziffern als enthalten nicht. nicht Es hat 4 Ziffern, also schneiden Sie unsere Nachricht in dreistellige Blöcke:

726 976 767 900

(komplett mit Nullen)

Dann werden wir jeden Block verschlüsseln:

726 ^ 71 mod 1073 = 436

976 ^ 71 mod 1073 = 822

767 ^ 71 mod 1073 = 825

900 ^ 71 mod 1073 = 552

Die verschlüsselte Nachricht lautet 436 822 825 552. Es kann mit gras> d entschlüsselt werden:

436 ^ 1079 mod 1073 = 726

822 ^ 1079 mod 1073 = 976

825 ^ 1079 mod 1073 = 767

552 ^ 1079 mod 1073 = 900

Das heißt, die Folge von Zahlen. 726976767900.

Wir haben unsere Nachricht im Klartext gefunden 72 69 76 76 79: «HALLO».

In der Praxis

In der Praxis ist das Programmieren nicht so einfach:

  • Sie müssen große Primzahlen finden (dies kann zu lang sein, um berechnet zu werden).
  • Sie müssen Primzahlen erhalten p y dass zufällig (was nicht einfach ist).
  • Sie verwenden keine so kleinen Blöcke wie im obigen Beispiel - Sie sollten in der Lage sein, Leistungen und Module mit sehr großen Zahlen zu berechnen.

Tatsächlich werden asymmetrische Algorithmen niemals zum Verschlüsseln aller Daten verwendet, da die Berechnung zu lange dauert: Die Daten werden mit einem symmetrischen Algorithmus verschlüsselt, dessen Schlüssel zufällig ausgewählt wird, und dieser Schlüssel wird mit einem asymmetrischen Algorithmus wie RSA entschlüsselt.

Software zum Verschlüsseln von Dateien

Wenn Sie Ihre Dateien verschlüsseln möchten, empfehle ich die hervorragende Software PGP (Ziemlich gute Privatsphäre) oder GPG (GNU Privacy Guard).

Es gibt andere asymmetrische Algorithmen, einschließlich ECC (Kryptosysteme mit elliptischer Kurve nach elliptischer Kurve). Dieses System basiert auf einer parametrischen Kurve, die eine bestimmte Anzahl von ganzzahligen Koordinatenpunkten durchläuft. Es ist noch nicht gut entwickelt, aber es ist vielversprechend.

Es gibt auch die Diffie-Hellman wird zunehmend gegenüber RSA bevorzugt. (Diffie-Hellman wurde schnell von der Open-Source-Community übernommen, als RSA noch nicht öffentlich zugänglich war.)