From 1460003bdb4a6c4a91c11bc4dd5f37c35e0028af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 19 Oct 2021 20:18:07 +0200 Subject: fixes for chapter 10 --- buch/chapters/90-crypto/aes.tex | 18 ++++++++++-------- buch/chapters/90-crypto/arith.tex | 2 +- buch/chapters/90-crypto/chapter.tex | 2 +- buch/chapters/90-crypto/elliptisch.tex | 11 ++++++----- buch/chapters/90-crypto/ff.tex | 5 +++-- 5 files changed, 21 insertions(+), 17 deletions(-) (limited to 'buch/chapters/90-crypto') diff --git a/buch/chapters/90-crypto/aes.tex b/buch/chapters/90-crypto/aes.tex index 0ece6b1..66b9b07 100644 --- a/buch/chapters/90-crypto/aes.tex +++ b/buch/chapters/90-crypto/aes.tex @@ -6,7 +6,7 @@ \section{Advanced Encryption Standard -- AES \label{buch:section:aes}} \rhead{Advanced Encryption Standard} -Eine wichtige Forderung bei der Konzeption des damals neuen +Eine wichtige Forderung bei der Konzeption des im Jahre 2001 neuen Advanced Encryption Standard war, dass darin keine ``willkürlich'' erscheinenden Operationen geben darf, bei denen der Verdacht entstehen könnte, dass sich dahinter nicht offengelegtes Wissen @@ -19,7 +19,7 @@ Die Gerüchteküche wollte wissen, dass die NSA die Konstanten aus dem ursprünglichen Vorschlag abgeändert habe, und dass dies geschehen sei, um den Algorithmus durch die NSA angreifbar zu machen. -Eine weiter Forderung war, dass die Sicherheit des neuen +Eine weitere Forderung war, dass die Sicherheit des neuen Verschlüsselungsstandards ``skalierbar'' sein soll, dass man also die Schlüssellänge mit der Zeit von 128~Bit auf 196 oder sogar 256~Bit steigern kann. @@ -142,7 +142,7 @@ und ebenso nur 256 mögliche Werte. \label{buch:subsection:block-operationen}} Die zu verschlüsselnden Daten werden in in Blöcke aufgeteilt, deren Länge Vielfache von $32$ bit sind. -Die kleinste Blockgrösse ist 128\,Bit, die grösste ist 256\,Bit. +Die kleinste im Standard spezifizierte Blockgrösse ist 128\,Bit, die grösste ist 256\,Bit. Die Bytes eines Blockes werden dann in einem Rechteck angeordnet als \begin{equation} @@ -173,7 +173,7 @@ Die bisher beschriebenen Operationen operieren immer nur auf einzelnen Bytes während die im nächsten Abschnitt beschriebene Spalten-Mischoperation nur auf Spalten wirkt. -Die Zeilen\-misch\-ope\-ra\-tion permutiert die Zeilen in den vier Zeilen +Die Zeilen\-misch\-ope\-ra\-tion permutiert die vier Zeilen eines Blocks zyklisch, die erste Zeile bleibt an Ort, die zweite Zeile wird um ein Byte rotiert, die dritte um zwei und die letzte um 3 Bytes, wie in Abbildung~\ref{buch:crypto:fig:shift} @@ -206,7 +206,9 @@ nur multiplizieren zu können, was in diesem Fall sehr leicht möglich ist, weil kein Überlauf entsteht. Dabei hilft es zu beachten, dass die Multiplikation mit $\texttt{02}_{16}$ nur eine Einbit-Shiftoperation nach links ist. -Nur die Multiplikation $\texttt{03}_{16}\cdot\texttt{03}_{16}=\text{05}_{16}$ +Nur die Multiplikation $\texttt{03}_{16}\cdot\texttt{03}_{16} += +\texttt{06}_{16}+\texttt{03}_{16}=\texttt{05}_{16}$ gibt etwas mehr zu überlegen. Mit geeigneten Zeilen-Operationen kann man die Berechnung der Determinante von $C$ mit dem Entwicklungssatz etwas vereinfachen. @@ -420,9 +422,9 @@ Eine einzelne Runde besteht dabei aus folgenden Schritten: \begin{enumerate} \item Wende die $S$-Box auf alle Bytes des Blocks an. \item Führe den Zeilenshift durch. -\item Mische die Spalten (wird in der letzten Runde) -\item Erzeuge den nächsten Rundenschlüssel -\item Addiere den Rundenschlüssel +\item Mische die Spalten (wird in der letzten Runde). +\item Erzeuge den nächsten Rundenschlüssel. +\item Addiere den Rundenschlüssel. \end{enumerate} Der AES-Verschlüsselungsalgorithmus beginnt damit, dass der Schlüssel zum Datenblock addiert wird. diff --git a/buch/chapters/90-crypto/arith.tex b/buch/chapters/90-crypto/arith.tex index 4b0828b..d3bb542 100644 --- a/buch/chapters/90-crypto/arith.tex +++ b/buch/chapters/90-crypto/arith.tex @@ -42,7 +42,7 @@ Für kryptographische Anwendungen ist $G$ die multiplikative Gruppe eines endlichen Körpers oder eine elliptische Kurve (siehe Abschnitt~\ref{buch:section:elliptische-kurven}). -Zur Berechnung von $a^k$ in $\mathbb{F}_p$ sind bei einer naiven Vorgehen +Zur Berechnung von $a^k$ in $\mathbb{F}_p$ sind bei einer naiven Vorgehensweise $k-1$ Multiplikationen nötig, immer sofort gefolgt von einer Reduktion modulo $p$ um sicherzustellen, dass die Resultate nicht zu gross werden. diff --git a/buch/chapters/90-crypto/chapter.tex b/buch/chapters/90-crypto/chapter.tex index d7e248a..bcd41db 100644 --- a/buch/chapters/90-crypto/chapter.tex +++ b/buch/chapters/90-crypto/chapter.tex @@ -23,7 +23,7 @@ In diesem Abschnitt soll dies an einigen Beispielen illustriert werden. \input{chapters/90-crypto/aes.tex} %\input{chapters/90-crypto/rs.tex} -\section*{Übungsaufgaben} +\section*{Übungsaufgabe} \rhead{Übungsaufgaben} \aufgabetoplevel{chapters/90-crypto/uebungsaufgaben} \begin{uebungsaufgaben} diff --git a/buch/chapters/90-crypto/elliptisch.tex b/buch/chapters/90-crypto/elliptisch.tex index f5bf579..fb7563a 100644 --- a/buch/chapters/90-crypto/elliptisch.tex +++ b/buch/chapters/90-crypto/elliptisch.tex @@ -10,7 +10,7 @@ Das Diffie-Hellman-Verfahren basiert auf der Schwierigkeit, in einem Körper $\mathbb{F}_p$ die Gleichung $a^x=b$ nach $x$ aufzulösen. Die Addition in $\mathbb{F}_p$ wird dazu nicht benötigt. -Es reicht, eine Menge mit einer Multiplikation zu haben, fir die +Es reicht, eine Menge mit einer Multiplikation zu haben, für die die Gleichung $a^x=b$ schwierig nach $x$ aufzulösen ist. Ein Halbgruppe wäre also durchaus ausreichend. @@ -33,7 +33,7 @@ Der Einheitskreis ist die Lösungsmenge der Gleichung $x^2+y^2=1$ für reelle Koordinaten $x$ und $y$, doch Rundungsunsicherheiten verunmöglichen den Einsatz in einem Verfahren ähnlich dem Diffie-Hellman-Verfahren. -Dieses Problem kann gelöst werden, indem für die Variablen Werte +Dieses Problem kann gelöst werden, indem für die Variablen $x$ und $y$ Werte aus einem endlichen Körper verwendet werden. Gesucht ist also eine Gleichung in zwei Variablen, deren Lösungsmenge in einem endlichen Körper eine Gruppenstruktur trägt. @@ -93,7 +93,7 @@ Y^2 + XY + \frac14X^2 &= X^3+\frac14 X^2 +aX+b v^2&=X^3+\frac14X^2+aX+b, \label{buch:crypto:eqn:ell2} \end{align} -indem man $v=Y+\frac12X$ setzt. +wenn man $v=Y+\frac12X$ setzt. Man beachte, dass man diese Substition nur machen kann, wenn $\frac12$ definiert ist. In $\mathbb{R}$ ist dies kein Problem, aber genau über den Körpern @@ -307,7 +307,8 @@ tP(x_1,y_1) 0. \end{align*} Die Klammerausdrücke verschwinden, da sie gleichbedeutend damit sind, -dass die Punkte Lösungen von \eqref{buch:crypto:eqn:grupopgl} sind. +dass die Punkte $g_1$ und $g_2$ Lösungen von +\eqref{buch:crypto:eqn:grupopgl} sind. Dies bestätigt nochmals, dass der Rest $r(t)=0$ ist, dass $p(t)$ also durch $t(1-t)$ teilbar ist. @@ -354,7 +355,7 @@ Die Gleichungen \eqref{buch:crypto:eqn:x3} und \eqref{buch:crypto:eqn:y3} -ermöglichen also, das Element $g_1g_2^{-1}$ zu berechnen. +ermöglichen also, das Element $(g_1g_2)^{-1}$ zu berechnen. Interessant daran ist, dass in den Formeln die Konstanten $a$ und $b$ gar nicht vorkommen. diff --git a/buch/chapters/90-crypto/ff.tex b/buch/chapters/90-crypto/ff.tex index 3cdc748..41aa4cb 100644 --- a/buch/chapters/90-crypto/ff.tex +++ b/buch/chapters/90-crypto/ff.tex @@ -114,7 +114,8 @@ sie effizient durchführbar. \begin{beispiel} Man berechne die Potenz $7^{2021}$ in $\mathbb{F}_p$. -Die Binärdarstellung von 2021 ist $2021_{10}=\texttt{11111100101}_2$. +Die Binärdarstellung der Dezimalzahl 2021 ist +$2021_{10}=\texttt{11111100101}_2$. Wir stellen die nötigen Operationen des Algorithmus~\ref{buch:crypto:teile-und-hersche} in der Tabelle~\ref{buch:crypto:fig:f1291} @@ -132,7 +133,7 @@ $x\mapsto g^x$ in $\mathbb{F}_p$ heisst der {\em diskrete Logarithmus}. \index{diskreter Logarithmus}% Tatsächlich ist der diskrete Logarithmus ähnlich schwierig zu bestimmen wie das Faktorisieren von Zahlen, die das Produkt grosser -Primafaktoren ähnlicher Grössenordnung wie $p$ sind. +Primfaktoren ähnlicher Grössenordnung wie $p$ sind. Die Funktion $x\mapsto g^x$ ist die gesuchte, schwierig zu invertierende Funktion. -- cgit v1.2.1