Wenn man das Untersummen-Problem zum Verschlüsseln nutzen möchte, muss
man zunächst sicherstellen, dass stets eine eindeutige Lösung existiert.
Zu diesem Zweck bedient man sich des folgenden Tricks: Jedes neue Element
muss größer sein, als die Summe aller bisheriger Elemente. Mathematisch
ausgedrückt:
|
(6) |
Damit ist eine Lösung des Problems einfach und das Verfahren ähnelt dem
Übertragen einer Dezimalzahl in das Binärsystem: Ist das Gesamtgewicht
größer oder gleich dem schwersten Einzelgewicht, so muss sich dieses Gewicht
im Rucksack befinden, da alle anderen Gewichte zusammen leichter als das
schwerste Gewicht, demzufolge auch leichter als das Gesamtgewicht sind.
Nun wird das schwerste Gewicht gegebenenfalls vom Gesamtgewicht abgezogen
und das Verfahren für das nächstschwerere Gewicht wiederholt.
Das Problem ist, dass es für einen Angreifer ebenso einfach ist wie für
den Empfänger, an die Nachricht heran zu kommen. Schliesslich kann er das
selbe Prinzip verwenden. Deswegen wird aus dieser Menge
noch eine neue Menge
gebildet, bei der dieses Prinzip nicht mehr funktioniert. Eine
algebraische Summe von
Elementen der neuen Menge kann so umgewandelt werden, so dass
sie sich aus Elementen der ursprünglichen Menge zusammensetzt.
Um
zu bilden wird noch eine beliebige Zahl
benötigt, welche
lediglich größer als die Summe aller sein muss. Ausserdem braucht
man noch eine zu teilerfremde Zahl . Nun berechnet man für jedes
das zugehörige nach folgendem Algorithmus:
|
(7) |
Die so gewonnene Menge
ist der
public key.
Florian octo Forster, 2003-01-31