crypto
This commit is contained in:
15
crypto.tex
15
crypto.tex
@@ -175,7 +175,7 @@ Extended versions of \acrshort{DES} such as Triple-DES (or 3DES) are still in us
|
|||||||
|
|
||||||
In \acrshort{DES}, the message is encrypted in 16 rounds, as well as an initial and final permutation (IP and FP),
|
In \acrshort{DES}, the message is encrypted in 16 rounds, as well as an initial and final permutation (IP and FP),
|
||||||
which are inverses. IP and FP were included to facilitate hardware loading of blocks.
|
which are inverses. IP and FP were included to facilitate hardware loading of blocks.
|
||||||
After splitting the 64-Bit message into two 32-Bit blocks left (L) and right (R), the two halves are processed in the
|
After splitting the 64-Bit message into two . 2-Bit blocks left (L) and right (R), the two halves are processed in the
|
||||||
16-round feistel network in a criss-cross pattern as follows:
|
16-round feistel network in a criss-cross pattern as follows:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item derive a 48-Bit \textit{round key} from the original 64-Bit \textit{main key} using a fixed \textit{key schedule}.
|
\item derive a 48-Bit \textit{round key} from the original 64-Bit \textit{main key} using a fixed \textit{key schedule}.
|
||||||
@@ -195,14 +195,21 @@ the underlying algorithm supports any key length that is a multiple of 32.
|
|||||||
Developed as Rijndael, contrary to its predecessor it does not employ a Feistel network,
|
Developed as Rijndael, contrary to its predecessor it does not employ a Feistel network,
|
||||||
though it does use the familiar pattern of substitution and permutation boxes.
|
though it does use the familiar pattern of substitution and permutation boxes.
|
||||||
|
|
||||||
The key size used also specifies the number of rounds, as a round key is derived for each transformation round.
|
The key size used also specifies the number of rounds, as a round key is derived for each transformation round,
|
||||||
|
resulting in 10 (14) rounds for 128-bit (256-bit) keys.
|
||||||
|
First, the round keys are derived and an initial \verb|AddRoundKey| is performed, before iterating over the following steps with
|
||||||
|
a 4x4 byte array termed \textit{the state}:
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item
|
\item \verb|SubBytes| substitutes 8-bit blocks according to a lookup table
|
||||||
|
\item \verb|ShiftRows| transposes the last 3 rows of the state
|
||||||
|
\item \verb|MixColumns| linearly mixes the columns
|
||||||
|
\item \verb|AddRoundKey| adds the round key to the state
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
Then, a final round is performed that only consists of SubBytes, ShiftRows, AddRoundKey.
|
||||||
|
|
||||||
|
|
||||||
Though minor theoretical attacks exist, such as reducing the key search space by a factor of 4,
|
Though minor theoretical attacks exist, such as reducing the key search space by a factor of 4,
|
||||||
the algorithm can be considered secure even to quantum-computing supported attacks halving the key space,
|
the algorithm can be considered secure even to quantum-computing supported attacks only halving the key space,
|
||||||
as simply increasing the key length is a viable mitigation.
|
as simply increasing the key length is a viable mitigation.
|
||||||
\cite{rijndael,enwiki:aes}
|
\cite{rijndael,enwiki:aes}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user