Ver- und Entschlüsseln

Um Daten zu verschlüsseln, müssen diese zunächst in das Binärsystem übertragen und in Blöcke mit je $i$ Elementen aufgeteilt werden, wobei $i$ die Anzahl der Elemente der Gruppe $\{G_1, G_2, \dots, G_{i - 1},
G_i\}$ ist. Die so erhaltene Menge sei $\{b_1, b_2, \dots, b_{i - 1},
b_i\}$, wobei jedes $b_i$ für ein Bit, also entweder $0$ oder $1$ steht. Werden die beiden Mengen als mehrdimensionale Vektoren interpretiert, so ist das Skalarprodukt der beiden der Cipher-Text $C$:
\begin{displaymath}
\left(
\begin{array}{c} b_1 \\ b_2 \\ \vdots \\ b_i \end{a...
...d{array} \right)
=
(b_1 G_1 + b_2 G_2 + \dots + b_i G_i) = C
\end{displaymath} (8)

Um ,,den Rucksack wieder auszupacken`` benötigt der Empfänger lediglich $d$ und $n$. Mit folgender Rechnung erhält er eine Summe $C'$, die sich aus Elementen der Menge $\{g_1, g_2,
\dots, g_{i - 1}, g_i\}$ zusammensetzt. Da in dieser Menge jedes nächst größere Element größer ist als die Summe aller vorherigen Elemente, kann leicht auf die einzelnen Elemente geschlossen werden.

\begin{displaymath}
C' = (C \cdot d) \bmod n
\end{displaymath} (9)

Nun kann der Empfänger das in 6.1 beschriebene Verfahren nutzen, um aus $C'$ wieder $\{b_1, b_2, \dots, b_i\}$ des Plain-Textes zu bestimmen.

Florian octo Forster, 2003-01-31