Merkle-Hellman-Kryptosystem
aus Wikipedia, der freien Enzyklopädie
Das Merkle-Hellman-Kryptosystem (MH) ist ein asymmetrisches Kryptosystem, basierend auf dem Subset-Sum-Entscheidungsproblem (einem Spezialfall des Rucksackproblems).
Inhaltsverzeichnis |
[Bearbeiten] Anwendung
[Bearbeiten] B möchte an A eine verschlüsselte Nachricht senden
- A wählt einen extra simplen Vektor (bei einem extra simplen Vektor ist der Wert ), auch superwachsende Folge genannt
- A wählt ein beliebiges k, wobei
- A wählt ein w mit der Eigenschaft:
- A berechnet ai = w * gimod k für i = 1,...,n
- A gibt öffentlich bekannt
- Die Nachricht N wird binärkodiert und in Blöcke der Größe n eingeteilt
- Ein Block (x1,...,xn) wird verschlüsselt:
- s wird an den Empfänger gesendet.
Entschlüsseln:
- A berechnet w − 1 mit Hilfe des Euklidischen Algorithmus. Durch Rückverfolgung der einzelnen Zeilen kann man w − 1 ermitteln. w − 1 ist dann der Multiplikator von w.
- Es wird s' berechnet: s' = w − 1 * s
- Der Knapsack kann einfach gelöst werden (da extra simpel).
[Bearbeiten] Beispiel
ai = 73 * gimod 170
z.B.: a1 = 73 * 3mod 170
- Es soll die Nachricht gesendet werden. Dazu wird berechnet:
s = 49 * 0 + 25 * 1 + 123 * 0 + 100 * 1 + 103 * 0 + 109 * 0 = 125
Es wird also s = 125 an den Empfänger geschickt
[Bearbeiten] Entschlüsseln mit Euklidischen Algorithmus mit Rückverfolgung:
Euklidischer Algorithmus:
170 = 73 * 2 + 24
73 = 24 * 3 + 1 ... 1 ist der ggT
24 = 1 * 24 + 0
Rückverfolgung:
1 = 73 − 24 * 3
1 = 73 − (170 − 73 * 2) * 3
1 = 73 − (170 * 3 − 73 * 6)
1 = 73 * 7 − 170 * 3
Daraus folgt: w − 1 = 7
außerdem ist s' = w − 1 * smod k = 7 * 125mod 170 = 25
Danach muss eine Lösung zu K((3,5,11,20,41,83),25) gefunden werden, daher ergibt sich das Nachrichtenwort
Lösung des Problems
Ist an < m, dann ist Lösung an der Stelle n gleich 1. Fahre mit m − an und an − 1 fort, bis m = 0.
Andernfalls ist Lösung an der Stelle n gleich 0. Fahre mit m und an − 1 fort, bis m = 0.
[Bearbeiten] Geschichte
Das auch unter dem Namen Knapsack bekannte Verfahren wurde 1978 von Ralph Merkle und Martin Hellman erfunden. Es schien sich als Konkurrenz zu RSA und dem Diffie-Hellman-Algorithmus zu etablieren, wurde aber 1983 von Adi Shamir und Richard Zippel in Theorie und Praxis (auf einem Apple II) gebrochen.