aboutsummaryrefslogtreecommitdiffstats
path: root/buch/papers/mceliece/aufbau.tex
diff options
context:
space:
mode:
authorfabioviecelli <80270098+fabioviecelli@users.noreply.github.com>2021-09-08 09:23:56 +0200
committerfabioviecelli <80270098+fabioviecelli@users.noreply.github.com>2021-09-08 09:23:56 +0200
commit910a4f556d89d75ee07384a2a3fb963334552264 (patch)
tree53f346e2de59d4bf1365535b709f0a2e8ebffba1 /buch/papers/mceliece/aufbau.tex
parentErgänzungen (diff)
parenteditorial edits clifford (diff)
downloadSeminarMatrizen-910a4f556d89d75ee07384a2a3fb963334552264.tar.gz
SeminarMatrizen-910a4f556d89d75ee07384a2a3fb963334552264.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to '')
-rw-r--r--buch/papers/mceliece/aufbau.tex131
1 files changed, 23 insertions, 108 deletions
diff --git a/buch/papers/mceliece/aufbau.tex b/buch/papers/mceliece/aufbau.tex
index 200cb7b..64c0cb3 100644
--- a/buch/papers/mceliece/aufbau.tex
+++ b/buch/papers/mceliece/aufbau.tex
@@ -6,156 +6,71 @@
\section{Aufbau\label{mceliece:section:Aufbau}}
\rhead{Aufbau}
Das McEliece-Kryptosystem besteht aus folgenden Elementen:
+Nachfolgend sind alle Bestandteile für das McEliece-Kryptosystem aufgelistet,
+wobei alle Vektoren und Matrizen sowie die Rechenoperationen damit
+im binären Raum $\mathbb{F}_2$ stattfinden.
+\index{F2@$\mathbb{F}_2$}%
\subsection{Datenvektor $d_k$
\label{mceliece:subsection:d_k}}
In diesem Vektor der Länge $k$ sind die zu verschlüsselnden Daten enthalten.
-Beispiel:
-\[d_4=
-\begin{pmatrix}
- 1\\
- 1\\
- 1\\
- 0
-\end{pmatrix}
-\]
-
\subsection{Binäre Zufallsmatrix $S_k$
\label{mceliece:subsection:s_k}}
-$S_k$ ist eine Binäre Zufallsmatrix der Grösse $k \times k$.
+$S_k$ ist eine binäre Zufallsmatrix der Grösse $k \times k$.
Auch muss diese Matrix in $\mathbb{F}_2$ invertierbar sein.
Für kleine Matrizen kann durchaus jedes Matrizenelement zufällig generiert werden,
wobei danach mithilfe des Gauss-Algorithmus deren Inverse bestimmt werden kann.
+\index{Gauss-Algorithmus}%
+\index{inverse Matrix}%
Da eine solche Matrix möglicherweise singulär ist, muss in diesem Fall eine neue Zufallsmatrix erzeugt werden.
+\index{Zufallsmatrix}%
Für grössere Matrizen existieren bessere Methoden, auf welche hier nicht weiter eingegangen wird \cite{mceliece:GenerationRandMatrix}.
-Beispiel:
-\[S_4=
- \begin{pmatrix}
- 0 & 0 & 1 & 1\\
- 0 & 0 & 0 & 1\\
- 0 & 1 & 0 & 1\\
- 1 & 0 & 0 & 1
- \end{pmatrix}
-\]
-
-\[
- S_4^{-1}=
- \begin{pmatrix}
- 0 & 1 & 0 & 1\\
- 0 & 1 & 1 & 0\\
- 1 & 1 & 0 & 0\\
- 0 & 1 & 0 & 0\\
- \end{pmatrix}
-\]
-
\subsection{Linear-Code-Generatormatrix $G_{n,k}$
\label{mceliece:subsection:g_nk}}
+\index{Generator-Matrix}%
+\index{Linear-Code}%
Das wichtigste Element des McEliece-Systems ist ein fehlerkorrigierender Code,
der in der Lage ist, $t$ Fehler zu korrigieren.
+\index{fehlerkorrigierender Code}%
Im Zusammenhang mit McEliece werden dabei meist binäre Goppa-Codes \cite{mceliece:goppa} verwendet,
-es können prinzipiell auch andere Codes wie beispielsweise Reed-Solomon verwendet werden,
+\index{Goppa-Code}%
+es können prinzipiell auch andere Codes wie beispielsweise Reed-Solomon (Kapitel~\ref{chapter:reedsolomon}) verwendet werden,
+\index{Reed-Solomon-Code}%
jedoch besitzen einige (unter anderem auch Reed-Solomon) Codes Schwachstellen \cite{mceliece:lorenz}.
-Das Codieren mit diesem linearen Code kann mithilfe dessen Generatormatrix $G_{n,k}$ erfolgen.
+Das Codieren mit diesem linearen Code kann mithilfe seiner Generatormatrix $G_{n,k}$ erfolgen.
Da es sich um einen fehlerkorrigierenden Code handelt,
wird das Codewort länger als das Datenwort,
es wird also Redundanz hinzugefügt,
+\index{Redundanz}%
um die Fehlerkorrektur möglich zu machen.
-Beispiel
-\[
- G_{7,4}=
- \begin{pmatrix}
- 1 & 0 & 0 & 0\\
- 1 & 1 & 0 & 0\\
- 0 & 1 & 1 & 0\\
- 1 & 0 & 1 & 1\\
- 0 & 1 & 0 & 1\\
- 0 & 0 & 1 & 0\\
- 0 & 0 & 0 & 1
- \end{pmatrix}
-\]
-
\subsection{Permutations-Matrix $P_n$
\label{mceliece:subsection:p_n}}
-Mit der zufällig generierten Permutationsmatrix $P_n$ wird die Reihenfolge der Bits geändert.
+Mit der zufällig generierten Permutationsmatrix $P_n$ (Abschnitt~\ref{buch:section:permutationsmatrizen}) wird die Reihenfolge der Bits geändert.
+\index{Permutationsmatrix}
Mit der Inversen $P_n^{-1}$ kann die Bitvertauschung rückgängig gemacht werden.
-Beispiel
-\[
- P_7=
- \begin{pmatrix}
- 0 & 1 & 0 & 0 & 0 & 0 & 0\\
- 0 & 0 & 0 & 0 & 0 & 0 & 1\\
- 0 & 0 & 0 & 0 & 0 & 1 & 0\\
- 0 & 0 & 1 & 0 & 0 & 0 & 0\\
- 0 & 0 & 0 & 1 & 0 & 0 & 0\\
- 1 & 0 & 0 & 0 & 0 & 0 & 0\\
- 0 & 0 & 0 & 0 & 1 & 0 & 0
- \end{pmatrix}
-\]
-,
-\[
- P_7^{-1}=P_7^t=
- \begin{pmatrix}
- 0 & 0 & 0 & 0 & 0 & 1 & 0\\
- 1 & 0 & 0 & 0 & 0 & 0 & 0\\
- 0 & 0 & 0 & 1 & 0 & 0 & 0\\
- 0 & 0 & 0 & 0 & 1 & 0 & 0\\
- 0 & 0 & 0 & 0 & 0 & 0 & 1\\
- 0 & 0 & 1 & 0 & 0 & 0 & 0\\
- 0 & 1 & 0 & 0 & 0 & 0 & 0
- \end{pmatrix}
-\]
-
\subsection{Public-Key $K_{n,k}$
\label{mceliece:subsection:k_nk}}
Der öffentliche Schlüssel, welcher zum Verschlüsseln verwendet wird,
-berechnet sich aus den bereits bekannten Matrizen wiefolgt:
-\[
- K_{n,k}=P_{n}\cdot G_{n,k}\cdot S_{k}\,.
-\]
-
-Beispiel
+berechnet sich aus den bereits bekannten Matrizen wie folgt:
\[
- K_{7,4}=
- \begin{pmatrix}
- 0 & 0 & 1 & 0\\
- 1 & 0 & 0 & 1\\
- 0 & 0 & 1 & 1\\
- 1 & 1 & 1 & 1\\
- 0 & 1 & 0 & 1\\
- 0 & 1 & 0 & 0\\
- 1 & 0 & 0 & 0
- \end{pmatrix}
+ K_{n,k}=P_{n}\cdot G_{n,k}\cdot S_{k}.
\]
\subsection{Fehler-Vektor $e_n$
\label{mceliece:subsection:e_n}}
Dieser Vektor der Länge $n$ besteht aus $t$ Einsen, welche zufällig innerhalb des Vektors angeordnet sind,
alle anderen Einträge sind Null.
-Dieser Fehlervektor besitzt also gleich viele Einer,
+Dieser Fehlervektor besitzt also gleich viele Einsen
wie die Anzahl Fehler, die der Linearcode der Generatormatrix $G_{n,k}$ zu korrigieren vermag.
-Beispiel
-\[
- E_7=
- \begin{pmatrix}
- 0\\
- 0\\
- 1\\
- 0\\
- 0\\
- 0\\
- 0
- \end{pmatrix}
-\]
-
\subsection{Daten-Vektor $d_k$
\label{mceliece:subsection:d_k}}
-In diesem Vektor der länge $k$ ist die Nachricht (oder einen Teil davon) enthalten.
+In diesem Vektor der Länge $k$ ist die Nachricht oder ein Teil davon enthalten.
\subsection{Code-Vektor $c_n$
\label{mceliece:subsection:c_n}}
-In diesem Vektor der länge $n$ ist die verschlüsselte Nachricht (oder einen Teil davon) enthalten. \ No newline at end of file
+In diesem Vektor der Länge $n$ ist die verschlüsselte Nachricht oder ein Teil davon enthalten.