Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
Symmetric Cryptanalysis Script
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
koenigl2
Symmetric Cryptanalysis Script
Commits
17a77850
Commit
17a77850
authored
5 years ago
by
koenigl
Browse files
Options
Downloads
Patches
Plain Diff
add stream-algebraic
parent
499b6586
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
main.tex
+225
-8
225 additions, 8 deletions
main.tex
template.tex
+1
-0
1 addition, 0 deletions
template.tex
with
226 additions
and
8 deletions
main.tex
+
225
−
8
View file @
17a77850
...
@@ -1450,7 +1450,7 @@ mehrere kombinieren und eine Auswahlfunktion \(f\) auf die Ausgaben der einzelne
...
@@ -1450,7 +1450,7 @@ mehrere kombinieren und eine Auswahlfunktion \(f\) auf die Ausgaben der einzelne
LFSRs anwenden, die für jedes Output-Bit der Gesamtchiffre spezifiziert, welches
LFSRs anwenden, die für jedes Output-Bit der Gesamtchiffre spezifiziert, welches
LFSR konkret verwendet wird.
LFSR konkret verwendet wird.
Man könnte meinen, dass es reichen würde, schlicht die Rückk
k
opplungskoeffizienten
Man könnte meinen, dass es reichen würde, schlicht die Rückkopplungskoeffizienten
geheimzuhalten. Wir werden nun sehen, dass wir anhand eines Schlüsselstroms ein
geheimzuhalten. Wir werden nun sehen, dass wir anhand eines Schlüsselstroms ein
entsprechendes LFSR bauen können -- dadurch also nichts gewonnen ist. Hierzu
entsprechendes LFSR bauen können -- dadurch also nichts gewonnen ist. Hierzu
betrachten wir nun was es bedeutet, wenn ein LFSR maximale Periode hat um
betrachten wir nun was es bedeutet, wenn ein LFSR maximale Periode hat um
...
@@ -1555,7 +1555,7 @@ Wir wissen also:
...
@@ -1555,7 +1555,7 @@ Wir wissen also:
Hierbei ist
\(
\Tr
(
\alpha
)
\)
die Spur (Trace) von
\(
\alpha
\)
.
Hierbei ist
\(
\Tr
(
\alpha
)
\)
die Spur (Trace) von
\(
\alpha
\)
.
Während
\(
\Tr
\)
unabhängig von jedem LFSR ist, beschreibt die Nullstelle die
Während
\(
\Tr
\)
unabhängig von jedem LFSR ist, beschreibt die Nullstelle die
Rückk
k
opplungskoeffizienten -- und
\(
\theta
\)
den Schlüssel. Was ist aber nun
Rückkopplungskoeffizienten -- und
\(
\theta
\)
den Schlüssel. Was ist aber nun
\(
\theta
\)
? Hierzu nutzen wir die uns bekannten Schlüsselbits und setzen ein:
\(
\theta
\)
? Hierzu nutzen wir die uns bekannten Schlüsselbits und setzen ein:
\begin{align*}
\begin{align*}
0
&
= k
_
0
0
&
= k
_
0
...
@@ -1734,15 +1734,15 @@ korrelieren):
...
@@ -1734,15 +1734,15 @@ korrelieren):
\]
\]
Dann wäre ein known-plaintext Angriff mit bekanntem Ausschnitt des
Dann wäre ein known-plaintext Angriff mit bekanntem Ausschnitt des
Schlüsselstroms
\(
k
_
i,
\dotsc
,k
_{
i
+
t
-
1
}\)
möglich, indem für alle möglichen
Schlüsselstroms
\(
k
_
i,
\dotsc
,k
_{
i
+
t
-
1
}\)
möglich, indem für alle möglichen
Initialwerte
\(
k
_
0
^
1
,
\dotsc
,k
_{
n
_
1
}^
1
\)
des ersten L
S
FRs (Schlüsselexhaustion)
Initialwerte
\(
k
_
0
^
1
,
\dotsc
,k
_{
n
_
1
}^
1
\)
des ersten LF
S
Rs (Schlüsselexhaustion)
die Werte
\(
k
_
i
^
1
,
\dotsc
,k
_{
i
+
t
-
1
}^
1
\)
berechnet werden. Danach berechnet
die Werte
\(
k
_
i
^
1
,
\dotsc
,k
_{
i
+
t
-
1
}^
1
\)
berechnet werden. Danach berechnet
man die Korrelation zwischen den Strömen des ersten L
S
FRs und den bekannten
man die Korrelation zwischen den Strömen des ersten LF
S
Rs und den bekannten
der Gesamtkonstruktion:
der Gesamtkonstruktion:
\[
\[
p' :
=
\frac
{
|
\{
j
\in
{
i,
\dotsc
,i
+
t
-
1
}
\mid
k
_
j
^
1
=
k
_
i
\}
|
}{
2
^
t
}
p' :
=
\frac
{
|
\{
j
\in
{
i,
\dotsc
,i
+
t
-
1
}
\mid
k
_
j
^
1
=
k
_
i
\}
|
}{
2
^
t
}
\]
\]
Ist nun
\(
p'
\approx
p
\)
, dann ist der geratene Teilschlüssel
Ist nun
\(
p'
\approx
p
\)
, dann ist der geratene Teilschlüssel
\(
(
k
_
0
^
1
,
\dotsc
,k
_{
n
_
1
}^
1
)
\)
der korrekte Schlüssel für das erste L
S
FR.
\(
(
k
_
0
^
1
,
\dotsc
,k
_{
n
_
1
}^
1
)
\)
der korrekte Schlüssel für das erste LF
S
R.
Ist jedoch
\(
p'
\approx\frac
{
1
}{
2
}\)
wird der Schlüssel verworfen.
Ist jedoch
\(
p'
\approx\frac
{
1
}{
2
}\)
wird der Schlüssel verworfen.
Damit kann mit einem Aufwand von Schlüsselexhaustion von ca.
\@
\(
2
^{
n
_
1
}\)
Damit kann mit einem Aufwand von Schlüsselexhaustion von ca.
\@
\(
2
^{
n
_
1
}\)
...
@@ -1755,14 +1755,14 @@ den Worten der linearen Kryptoanalyse, haben wir eine lineare Relation
...
@@ -1755,14 +1755,14 @@ den Worten der linearen Kryptoanalyse, haben wir eine lineare Relation
\Pr
(
f
(
x
)=
\langle\alpha
,x
\rangle
)
=
\Pr
(
\langle\beta
,f
(
x
)
\rangle
=
\langle\alpha
,x
\rangle
)
\neq
\frac
{
1
}{
2
}
\Pr
(
f
(
x
)=
\langle\alpha
,x
\rangle
)
=
\Pr
(
\langle\beta
,f
(
x
)
\rangle
=
\langle\alpha
,x
\rangle
)
\neq
\frac
{
1
}{
2
}
\]
\]
Dieser Angriff lässt sich natürlich mit Korrelationen für jedes einzelne
Dieser Angriff lässt sich natürlich mit Korrelationen für jedes einzelne
L
S
FR, also alle
\(
\alpha\in\GF
_
2
^
m
\)
analog durchführen.
LF
S
R, also alle
\(
\alpha\in\GF
_
2
^
m
\)
analog durchführen.
Wir entfernen uns nun von dem Beispiel und gucken uns allgemein eine
Wir entfernen uns nun von dem Beispiel und gucken uns allgemein eine
lineare Relation
\(
\alpha\in\GF
_
2
^
m
\)
mit
\(
\Pr
(
f
(
x
)=
\langle\alpha
,x
\rangle
)
\neq
1
/
2
\)
lineare Relation
\(
\alpha\in\GF
_
2
^
m
\)
mit
\(
\Pr
(
f
(
x
)=
\langle\alpha
,x
\rangle
)
\neq
1
/
2
\)
an, wobei
\(
i
_
1
<i
_
2
<
\dotsb
i
_
t
\)
die Indizes sind, für an denen die Relation
an, wobei
\(
i
_
1
<i
_
2
<
\dotsb
i
_
t
\)
die Indizes sind, für an denen die Relation
\(
1
\)
ist, also
\(
a
_
k
=
1
\leftrightarrow
k
=
i
_
j
\)
. Analog seien
\(
1
\)
ist, also
\(
a
_
k
=
1
\leftrightarrow
k
=
i
_
j
\)
. Analog seien
\(
i'
_
1
<i'
_
2
<
\dotsb
<i'
_{
m
-
t
}\)
die Indizes mit
\(
\alpha
_{
i'
_
j
}
=
0
\)
.
\(
i'
_
1
<i'
_
2
<
\dotsb
<i'
_{
m
-
t
}\)
die Indizes mit
\(
\alpha
_{
i'
_
j
}
=
0
\)
.
Weiterhin sei die Abbildung die sich nur auf die korrelierenden L
S
FRs
Weiterhin sei die Abbildung die sich nur auf die korrelierenden LF
S
Rs
beschränkt:
beschränkt:
\begin{align*}
\begin{align*}
g
_
\alpha
:
&
\;\GF
_
2
^
t
\to
\GF
_
2
\\
g
_
\alpha
:
&
\;\GF
_
2
^
t
\to
\GF
_
2
\\
...
@@ -1779,7 +1779,7 @@ verhindern können.
...
@@ -1779,7 +1779,7 @@ verhindern können.
\begin{definition}
\begin{definition}
Sei
\(
t
\leq
m
\)
. Eine Funktion
\(
f:
\GF
_
2
^
m
\to\GF
_
2
\)
heißt
Sei
\(
t
\leq
m
\)
. Eine Funktion
\(
f:
\GF
_
2
^
m
\to\GF
_
2
\)
heißt
\(
t
\)
-korrelationsimmun, wenn für alle linearen Relationen
\(
\alpha\in\GF
_
2
^
m
\)
\(
t
\)
-korrelationsimmun, wenn für alle linearen Relationen
\(
\alpha\in\GF
_
2
^
m
\)
die maximal
\(
t
\)
L
S
FRs auswählen
\(
1
\leq\sum
\alpha
_
i
\leq
t
\)
gilt:
die maximal
\(
t
\)
LF
S
Rs auswählen
\(
1
\leq\sum
\alpha
_
i
\leq
t
\)
gilt:
\[
\[
\Pr
(
f
(
x
_
1
,
\dotsc
,x
_
m
)
=
\langle\alpha
,x
\rangle
)
=
\frac
{
1
}{
2
}
\Pr
(
f
(
x
_
1
,
\dotsc
,x
_
m
)
=
\langle\alpha
,x
\rangle
)
=
\frac
{
1
}{
2
}
\]
\]
...
@@ -1811,6 +1811,223 @@ entsprechend groß gewählt werden.
...
@@ -1811,6 +1811,223 @@ entsprechend groß gewählt werden.
\subsection
{
Algebraische Angriffe
}
\subsection
{
Algebraische Angriffe
}
Wir werden nun uns einen anderen Angriff auf Stromchiffren widmen.
Wir bezeichnen die Rückkopplungskoeffizienten des
\(
j
\)
-ten LFSRs, mit der
dazugehörigen Rekursionsgleichung
\(
k
_
t
^
j
=
a
_
0
^
j k
_{
t
-
{
n
_
j
}}^
j
+
\dotsb
+
a
_{
n
_
j
-
1
}^
j k
_{
t
-
1
}^
j
\)
.
Haben wir nun einen
\(
n
_
j
\)
langen Ausschnitt des Schlüsselstroms dieses
LFSRs
\(
k
_{
t
-
n
_
i
}^
j,
\dotsc
,k
_{
t
-
1
}^
j
\)
, dann lässt sich darüber der Nachfolger
\(
k
_{
t
-
n
_
i
+
1
}^
j,
\dotsc
,k
_
t
^
j
\)
über folgende Matrixmultiplikation berechnen
bei der jeweils die Koeffizienten den vorherigen Schlüsselwerten zugeordnet
werden:
\[
(
k
_{
t
-
n
_
j
+
1
}^
j,
\dotsc
,k
_
t
^
j
)
=
\begin
{
pmatrix
}
0
&
1
&
0
&
\dotsb
&
0
\\
0
&
0
&
1
&
\dotsb
&
0
\\
\vdots
&
\vdots
&
&
\ddots
&
\vdots
\\
0
&
0
&
0
&
\dotsb
&
1
\\
a
_
0
^
j
&
a
_
1
^
j
&
a
_
2
^
j
&
\dotsb
&
a
_{
n
-
1
}^
j
\end
{
pmatrix
}
\cdot
\begin
{
pmatrix
}
k
_{
t
-
n
_
j
+
0
}^
j
\\
k
_{
t
-
n
_
j
+
1
}^
j
\\
\vdots
\\
k
_{
t
-
2
}^
j
\\
k
_{
t
-
1
}
\end
{
pmatrix
}
\]
Wir bezeichnen mit
\(
L
_
j
\)
die obige Matrix für das
\(
j
\)
-ten LFSR
\@
.
Nutzen wir nun die Projektion auf die
\(
n
_
j
\)
-te Komponente
\(
\pi
_{
n
_
j
}
(
x
_
1
,
\dotsc
,x
_{
n
_
j
}
)
:
=
x
_{
n
_
j
}\)
, können wir schreiben:
\begin{align*}
k
_
t
^
j
&
=
\pi
_{
n
_
j
}
\circ
L
_
j
\cdot
(k
_{
t-n
_
j
}^
j,
\dotsc
,k
_{
t-1
}^
j)
^
T
\\
k
_{
t+1
}^
j
&
=
\pi
_{
n
_
j
}
\circ
L
_
j
\cdot
(k
_{
t-n
_
j+1
}^
j,
\dotsc
,k
_{
t-1+1
}^
j)
^
T
\\
&
=
\pi
_{
n
_
j
}
\circ
L
_
j
\cdot
\left
(L
_
j
\circ
(k
_{
t-n
_
j
}^
j,
\dotsc
,k
_{
t-1
}^
j)
^
T
\right
)
\\
&
=
\pi
_{
n
_
j
}
\circ
L
_
j
^
2
\cdot
(k
_{
t-n
_
j
}^
j,
\dotsc
,k
_{
t-1
}^
j)
^
T
\\
&
\vdots
\end{align*}
Mit Einsetzen können wir den Schlüsselstrom wiefolgt beschreiben:
\begin{align*}
k
_
t = f
&
\left
(
\pi
_{
n
_
1
}
\circ
L
_
1
^
t(k
_
0
^
1,
\dotsc
,k
_{
n
_
1-1
}^
1)
^
T,
\right
.
\\
&
\quad\vdots
\\
&
\;\left
.
\pi
_{
n
_
m
}
\circ
L
_
m
^
t(k
_
0
^
m,
\dotsc
,k
_{
n
_
m-1
}^
m)
^
T
\right
)
\end{align*}
Wir wissen, dass sich unsere boolesche Funktion
\(
f:
\GF
_
2
^
m
\to\GF
_
2
\)
als
über
\(
\GF
_
2
[
X
_
1
,
\dotsc
,X
_
m
]
\)
darstellen lässt, mit einem Maximalgrad
von
\(
1
\)
für alle Unbestimmten (d.
\,
i.
\@
einfache Monome). Wir können
nun eine known-plaintext Attacke durchführen. Angenommen Teilschlüssel
\(
k
_
i,
\dotsc
,k
_{
i
+
t
}\)
sind bekannt, dann müssen wir folgendes
Gleichungssystem lösen:
\begin{align*}
f
\left
(
\pi
_{
n
_
1
}
\circ
L
_
1
^
i(k
_
0
^
1,
\dotsc
,k
_{
n
_
1-1
}^
1)
^
T,
\dotsc
,
\pi
_{
n
_
m
}
\circ
L
_
m
^
i(k
_
0
^
m,
\dotsc
,k
_{
n
_
m-1
}^
m)
^
T
\right
)
&
= k
_
i
\\
&
\;\;\vdots
\\
f
\left
(
\pi
_{
n
_
1
}
\circ
L
_
1
^{
i+t
}
(k
_
0
^
1,
\dotsc
,k
_{
n
_
1-1
}^
1)
^
T,
\dotsc
,
\pi
_{
n
_
m
}
\circ
L
_
m
^{
i+t
}
(k
_
0
^
m,
\dotsc
,k
_{
n
_
m-1
}^
m)
^
T
\right
)
&
= k
_{
i+t
}
\\
\end{align*}
Der Grad des Gleichungssystems ist definiert als
\(
d :
=
\deg
(
f
)
\)
der des
Polynoms. Damit ist der Aufwand zum Lösung ungefähr
\(
(
n
_{
\text
{
tot
}}^
d
)
^
3
\)
mit der Gesamtlänge aller LFSRs
\(
n
_{
\text
{
tot
}}
:
=
\sum
n
_
i
\)
.
Unser Ziel ist es nun, den Grad dieses Gleichungssystems zu reduzieren.
Hierzu betrachten wir zunächst nur die Gleichungen für die Schlüsselbits
unseres bekannten Teilschlüssels
\(
k
_
i,
\dots
,k
_{
i
+
t
}\)
den Wert
\(
1
\)
annehmen, also
\(
k
_
j
=
1
\)
mit
\(
i
\leq
j
\leq
i
+
t
\)
. Finden wir ein
Annihilatorpolynom
\(
g
\)
von
\(
f
\)
mit
\(
\deg
(
g
)
<
\deg
(
f
)
\)
, so, dass
\(
f
\cdot
g
=
0
\)
, d.
\,
i.
\@
wenn
\(
f
(
x
)=
1
\Rightarrow
g
(
x
)=
0
\)
, dann gilt
\[
f
(
x
)
g
(
x
)
=
k
_
j g
(
x
)
\Leftrightarrow
0
=
g
(
x
)
\]
Um unsere Schlüsselkandidaten zu finden, ersetzen wir
\(
f
\)
durch
\(
g
\)
und alle
\(
1
\)
durch
\(
0
\)
.
Betrachten wir das an dem Beispiel
\(
f
(
x
_
1
,x
_
2
)
:
=
x
_
1
x
_
2
\)
, dann ist
\(
g
(
x
_
1
,x
_
2
)
:
=
x
_
1
\xor
x
_
2
\)
Annihilator von
\(
f
\)
.
Analog lässt sich für die Gleichungen mit
\(
k
_
j
=
0
\)
der Grad reduzieren.
Hierfür sei
\(
g'
\)
Annihilator von
\(
f
\xor
1
\)
, also
\[
f
(
x
)
\xor
1
=
1
\Leftrightarrow
f
(
x
)
=
0
\Rightarrow
g'
(
x
)
=
0
\]
Es gilt dann auch wieder
\begin{align*}
&
\;
f(x) g'(x) = k
_
j g'(x)
\\
\Leftrightarrow
&
\;
(f(x)
\xor
1) g'(x) = (k
_
j
\xor
1)g'(x)
\\
\Leftrightarrow
&
\;
0 = g'(x)
\end{align*}
Wie finden wir aber Funktionen, für die solche Angriffe schwierig
umsetzbar sind?
\begin{definition}
Sei
\(
f:
\GF
_
2
^
m
\to\GF
_
2
\)
und die Menge aller Annihilatorkandidaten
\(
A
(
f
)
:
=
\{
g:
\GF
_
2
^
m
\to\GF
_
2
\mid
fg
=
0
\}
\)
, dann ist die
algebraische Immunität definiert als der kleinste Grad aller dieser
Polynome:
\[
\AI
(
f
)
:
=
\min\{\deg
(
g
)
\mid
g
\in
A
(
f
)
\lor
g
\in
A
(
f
\xor
1
)
\}
\]
\end{definition}
Die Bestimmung der algebraischen Immunität im Allgemeinen sehr schwer. wir
können jedoch abschätzen.
\begin{theorem}
[Courtois-Meier, 2003]
\label
{
thm:cm2003
}
Für alle
\(
f:
\GF
_
2
^
m
\to\GF
_
2
\)
ist
\[
\AI
(
f
)
\leq
\left\lceil\frac
{
m
}{
2
}
\right\rceil
\]
\end{theorem}
Für den Beweis benötigen wir erst noch zwei Lemmata.
\begin{lemma}
\label
{
lem:cm2003-1
}
Sei
\(
f:
\GF
_
2
^
m
\to\GF
_
2
\)
. Dann existiert
\(
g:
\GF
_
2
^
m
\to\GF
_
2
\)
mit
\(
g
\neq
0
\)
und
\(
\deg
(
g
)
\leq
\lceil
m
/
2
\rceil
\)
so, dass
\[
\deg
(
f
\cdot
g
)
\leq
\lceil
m
/
2
\rceil
\]
\end{lemma}
\begin{proof}
Wir erinnern uns an zwei Eigenschaften von Binomialkoeffizienten:
\[
\binom
{
m
}{
k
}
=
\frac
{
m
!
}{
(
m
-
k
)!
\cdot
k
!
}
=
\frac
{
m
!
}{
(
m
-
k
)!
\cdot
(
m
-(
m
-
k
))!
}
=
\binom
{
m
}{
m
-
k
}
\\
\]
\[
\sum
_{
k
=
0
}^
m
\binom
{
m
}{
k
}
=
2
^
m
\]
Und wir wissen,
\(
\binom
{
m
}{
k
}\)
ist die Anzahl
\(
k
\)
-elementiger Teilmengen
aus einer
\(
m
\)
-elementigen Menge.
Nun betrachten wir die Menge
\(
A
\)
aller Monome mit einem Grad von Maximal
\(
\lfloor
m
/
2
\rfloor
\)
und die Menge
\(
B
\)
der Multiplikation von
\(
f
\)
und
allen Monomen von Grad Maximal
\(
\lceil
m
/
2
\rceil
\)
:
\begin{align*}
A
&
=
\{
1, x
_
1, x
_
2,
\dotsc
, x
_
1 x
_
2,
\dotsc
\}
\\
B
&
=
\{
f(x), f(x)x
_
1, f(x) x
_
2,
\dotsc
\}
\end{align*}
Dann gilt für die Summe der Mächtigkeiten der Mengen
\begin{align*}
|A|+|B|
&
=
\sum
_{
i=0
}^{
\left\lfloor
\frac
{
m
}{
2
}
\right\rfloor
}
\binom
{
m
}{
i
}
+
\sum
_{
i=0
}^{
\left\lceil
\frac
{
m
}{
2
}
\right\rceil
}
\binom
{
m
}{
i
}
\\
&
=
\sum
_{
i=0
}^
m
\binom
{
m
}{
i
}
+
\binom
{
m
}{
\left\lfloor\frac
{
m
}{
2
}
\right\rfloor
}
\\
&
= 2
^
m +
\binom
{
m
}{
\left\lfloor\frac
{
m
}{
2
}
\right\rfloor
}
> 2
^
m
\end{align*}
Wir wechseln jetzt die Betrachtung und sehen, dass die Menge der
booleschen Funktionen isomorph zu
\(
\Fn
(
\GF
_
2
^
m,
\GF
_
2
)
\cong
\GF
_
2
^{
2
^
m
}\)
einem Vektorraum über
\(
\GF
_
2
\)
ist, da die booleschen Funktionen einem
multivariablem Polynom entsprechen, welches wiederum eindeutig zu Vektoren
abgebildet werden kann. Genauer hat
\(
f:
\GF
_
2
^
m
\to\GF
_
2
\)
eine eindeutige
Darstellung als Polynomfunktion
\[
f
(
x
)
=
\sum
_{
I
\in\GF
_
2
^
m
}
a
_
I x
^
I
\]
mit Koeffizienten
\(
a
_
I
\in\GF
_
2
\)
und
\(
x
^
I
=
x
_
1
^{
i
_
1
}
\cdot\dotsb\cdot
x
_
m
^{
i
_
m
}\)
für einen Potenzvektor
\(
I
=(
i
_
1
,
\dotsc
,i
_
m
)
\)
. Wir können also die
boolesche Funktion mit den Koeffizienten
\(
(
a
_{
(
0
,
\dotsc
,
0
)
}
,
\dotsc
,a
_{
(
1
,
\dotsc
,
1
)
}
)
\in\GF
_
2
^{
2
^
m
}\)
identifizieren.
%TODO bei den vorherigen Kapiteln anpassen, man braucht tatsächlich nur
% Koeffs, nicht I
Damit ist die obige Menge
\(
A
=
\{
(
1
,
0
,
\dotsc
,
0
)
,
(
0
,
1
,
0
,
\dotsc
,
0
)
,
\dotsc\}
\)
linear unabhängig. Wir schreiben abkürzend
\(
m
_
i
\)
als das
\(
i
\)
-te
Monom, also
\(
m
_
1
=
1
\)
,
\(
m
_
2
=
x
_
1
\)
, usw
\@
. Da nun
\(
|A|
+
|B| >
2
^
m
\)
, sind
die Vektoren linear abhängig, d.
\,
h.
\@
es existieren
\[
a
_
1
,
\dotsc
,a
_{
|A|
}
,b
_
1
,
\dotsc
,b
_{
|B|
}
\in\GF
_
2
^{
|A|
+
|B|
}
\setminus\{
(
0
,
\dotsc
,
0
)
\}
\]
mit
\[
\sum
_{
i
=
1
}^{
|A|
}
a
_
i m
_
i
+
\sum
_{
i
=
1
}^{
|B|
}
b
_
i f
(
x
)
m
_
i
\Leftrightarrow
\sum
_{
i
=
1
}^{
|A|
}
a
_
i m
_
i
=
f
(
x
)
\sum
_{
i
=
1
}^{
|B|
}
b
_
i m
_
i
\]
Wir wählen nun
\[
g
=
\sum
_{
i
=
1
}^{
|B|
}
b
_
i m
_
i
\]
Nach Konstruktion der Menge
\(
B
\)
wissen wir, das
\(
\deg
(
g
)
\leq\lceil
m
/
2
\rceil
\)
,
nach der Konstruktion der Menge
\(
A
\)
, dass
\(
\deg
(
fg
)
\leq\lfloor
m
/
2
\rfloor
\)
.
Darüber hinaus ist
\(
A
\)
linear unabhängig, es gilt somit
\[
fg
=
\sum
_{
i
=
1
}^{
|A|
}
a
_
i m
_
i
\neq
0
\]
Und somit auch
\(
g
\neq
0
\)
.
\end{proof}
\begin{lemma}
\label
{
lem:cm2003-2
}
%TODO im Skript steht fg = h != 0,g -- gemeint != 0 und != g?
Seien
\(
f,g,h:
\GF
_
2
^
m
\to\GF
_
2
\)
mit
\(
f
\cdot
g
=
h
\neq
0
\)
und
\(
h
\neq
g
\)
,
sowie für die Grade
\(
\deg
(
g
)
,
\deg
(
h
)
\leq
d
\)
. Dann existiert
\(
g':
\GF
_
2
^
m
\to\GF
_
2
\)
mit
\(
\deg
(
g'
)
\leq
d
\)
und
\(
f
\cdot
g'
=
0
\)
.
\end{lemma}
\begin{proof}
Wegen
\(
f
=
f
^
2
\)
gilt
\[
h
=
f
\cdot
g
=
f
^
2
\cdot
g
=
f
\cdot
(
f
\cdot
g
)
=
f
\cdot
h
\]
Für
\(
g'
=
g
\xor
h
\)
erhalten wir damit
\[
f
\cdot
g'
=
f
\cdot
(
g
\xor
h
)
=
f
\cdot
g
\xor
f
\cdot
h
=
f
\cdot
g
\xor
h
=
0
\]
Wobei
\(
\deg
(
g'
)
\leq
\max\{\deg
(
g
)
,
\deg
(
h
)
\}
\leq
d
\)
.
\end{proof}
\begin{proof}
[Beweis von Satz~
\ref
{
thm:cm2003
}
]
Nach Lemma~
\ref
{
lem:cm2003-1
}
existiert
\(
g
\neq
0
\)
dessen Grad
\(
\deg
(
g
)
\leq
\lceil
m
/
2
\rceil
\)
so, dass
\(
\deg
(
f
\cdot
g
)
\leq\lceil
m
/
2
\rceil
\)
.
Wir unterscheiden nun drei Fälle:
\begin{enumerate}
\item
\(
f
\cdot
g
=
0
\)
. Dann folgt die Behauptung sofort.
\item
\(
h
\neq
f
\cdot
g
\neq
0
\)
und
\(
h
\neq
g
\)
. Dann sind die Voraussetzungen
für Lemma~
\ref
{
lem:cm2003-2
}
gegeben. Da die Grade
\(
\deg
(
g
)
,
\deg
(
h
)
\leq\lceil
m
/
2
\rceil
\)
existiert also ein
\(
g'
\)
mit
\(
\deg
(
g'
)
\leq\lceil
m
/
2
\rceil
\)
und
\(
f
\cdot
g'
=
0
\)
.
\item
Ist nun
\(
h:
=
f
\cdot
g
\neq
0
\)
, jedoch
\(
h
=
g
\)
, dann gilt
\(
f
\cdot
g
=
g
\)
und damit auch
\[
(
f
\xor
1
)
\cdot
g
=
f
\cdot
g
\xor
g
=
g
\xor
g
=
0
\]
Somit ist
\(
g
\)
also ein Annihilator von
\(
f
\xor
1
\)
und es folgt auch
hier die Behauptung.
\end{enumerate}
\end{proof}
\end{document}
\end{document}
This diff is collapsed.
Click to expand it.
template.tex
+
1
−
0
View file @
17a77850
...
@@ -16,6 +16,7 @@
...
@@ -16,6 +16,7 @@
\DeclareMathOperator
{
\Gen
}{
Gen
}
\DeclareMathOperator
{
\Gen
}{
Gen
}
\DeclareMathOperator
{
\Dec
}{
Dec
}
\DeclareMathOperator
{
\Dec
}{
Dec
}
\DeclareMathOperator
{
\Enc
}{
Enc
}
\DeclareMathOperator
{
\Enc
}{
Enc
}
\DeclareMathOperator
{
\AI
}{
AI
}
\newcommand
{
\Diff
}{
\Delta
}
\newcommand
{
\Diff
}{
\Delta
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment