UPD cryptographic API
This commit is contained in:
@@ -1,4 +1,157 @@
|
||||
% Device Drivers (15)
|
||||
% since 6.13.8
|
||||
|
||||
%18
|
||||
\section{Cryptographic API \texorpdfstring{$\longrightarrow$}{->}}
|
||||
\textit{(Kryptografische API)}
|
||||
\textit{(Kryptografische API)}\\*
|
||||
CONFIG\_CRYPTO [=y] \textbf{[Y]}\\
|
||||
Diese Option stellt die zentrale kryptografische API bereit.
|
||||
\english{This option provides the core Cryptographic API.}
|
||||
|
||||
%18.1
|
||||
\subsection{Crypto core or helper \texorpdfstring{$\longrightarrow$}{->}}
|
||||
\textit{Krypto-Kern oder Hilfsmittel}
|
||||
|
||||
%18.1.1
|
||||
\subsubsection{Cryptographic algorithm manager}
|
||||
CONFIG\_CRYPTO\_MANAGER [=y] \textbf{[Y]}\\
|
||||
Erstellen Sie Standardinstanziierungen von kryptografischen Vorlagen wie cbc(aes).
|
||||
\english{Create default cryptographic template instantiations such as cbc(aes).}
|
||||
|
||||
\subsubsection{Userspace cryptographic algorithm configuration}
|
||||
CONFIG\_CRYPTO\_USER [=m] \textbf{[M]}\\
|
||||
Userspace-Konfiguration für kryptographische Instanziierungen wie cbc(aes).
|
||||
\english{Userspace configuration for cryptographic instantiations such as cbc(aes).}
|
||||
|
||||
\subsubsection{Disable run-time self tests}
|
||||
CONFIG\_CRYPTO\_MANAGER\_DISABLE\_TESTS [=y] \textbf{[Y]}\\
|
||||
Deaktivieren Sie Laufzeit-Selbsttests, die normalerweise bei der Algorithmusregistrierung stattfinden.
|
||||
\english{Disable run-time self tests that normally take place at algorithm registration.}
|
||||
|
||||
\subsubsection{Null algorithms}
|
||||
CONFIG\_CRYPTO\_NULL [=m] \textbf{[M]}\\
|
||||
Dies sind \glqq Null\grqq{}-Algorithmen, die von IPsec verwendet werden und nichts bewirken.
|
||||
\english{These are `Null' algorithms, used by IPsec, which do nothing.}
|
||||
|
||||
\subsubsection{Parallel crypto engine}
|
||||
CONFIG\_CRYPTO\_PCRYPT [=m] \textbf{[M]}\\
|
||||
Damit wird ein beliebiger Kryptoalgorithmus in einen parallelen Algorithmus umgewandelt, der in Kernel-Threads ausgeführt wird.
|
||||
\english{This converts an arbitrary crypto algorithm into a parallel algorithm that executes in kernel threads.}
|
||||
|
||||
\subsubsection{Software async crypto daemon}
|
||||
CONFIG\_CRYPTO\_CRYPTD [=m] \textbf{[M]}\\
|
||||
Dies ist ein generischer asynchroner Software-Krypto-Daemon, der einen beliebigen synchronen Software-Krypto-Algorithmus in einen
|
||||
asynchronen Algorithmus umwandelt, der in einem Kernel-Thread ausgeführt wird.
|
||||
\english{This is a generic software asynchronous crypto daemon that converts an arbitrary synchronous software crypto algorithm
|
||||
into an asynchronous algorithm that executes in a kernel thread.}
|
||||
|
||||
\subsubsection{Authenc support}
|
||||
CONFIG\_CRYPTO\_AUTHENC [=m] \textbf{[M]}\\
|
||||
Authenc: Kombinierter Modus-Wrapper für IPsec.\\
|
||||
Dies ist für IPSec ESP (XFRM\_ESP) erforderlich.
|
||||
\english{Authenc: Combined mode wrapper for IPsec.\\
|
||||
This is required for IPSec ESP (XFRM\_ESP).}
|
||||
|
||||
\subsubsection{Testing module}
|
||||
CONFIG\_CRYPTO\_TEST [=m] \textbf{[M]}\\
|
||||
Schnelles und schmutziges Krypto-Testmodul.
|
||||
\english{Quick \& dirty crypto test module.}
|
||||
|
||||
%18.2
|
||||
\subsection{Public-key cryptography \texorpdfstring{$\longrightarrow$}{->}}
|
||||
\textit{Kryptographie mit öffentlichem Schlüssel}
|
||||
|
||||
\subsubsection{RSA (Rivest-Shamir-Adleman)}
|
||||
CONFIG\_CRYPTO\_RSA [=y] \textbf{[Y]}\\
|
||||
RSA (Rivest-Shamir-Adleman) Algorithmus für öffentliche Schlüssel (RFC8017)
|
||||
\english{RSA (Rivest-Shamir-Adleman) public key algorithm (RFC8017)}
|
||||
|
||||
\subsubsection{DH (Diffie-Hellman)}
|
||||
CONFIG\_CRYPTO\_DH [=y] \textbf{[Y]}\\
|
||||
DH (Diffie-Hellman)-Schlüsselaustauschalgorithmus
|
||||
\english{DH (Diffie-Hellman) key exchange algorithm}
|
||||
|
||||
\paragraph{RFC~7919 FFDHE groups}\mbox{}\\
|
||||
CONFIG\_CRYPTO\_DH\_RFC7919\_GROUPS [=y] \textbf{[Y]}\\
|
||||
FFDHE (Finite-Field-based Diffie-Hellman Ephemeral) Gruppen, definiert in RFC7919.\\
|
||||
Unterstützung dieser Finite-Field-Gruppen im DH-Schlüsselaustausch:\\
|
||||
-- \texttt{ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192}\\
|
||||
Wenn Sie unsicher sind, sagen Sie N.
|
||||
\english{FFDHE (Finite-Field-based Diffie-Hellman Ephemeral) groups defined in RFC7919.\\
|
||||
Support these finite-field groups in DH key exchanges:\\
|
||||
-- ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192\\
|
||||
If unsure, say N.}
|
||||
|
||||
\subsubsection{ECDH (Elliptic Curve Diffie-Hellman)}
|
||||
CONFIG\_CRYPTO\_ECDH [=y] \textbf{[Y]}\\
|
||||
ECDH (Elliptic Curve Diffie-Hellman)-Schlüsselaustauschalgorithmus unter Verwendung der Kurven \texttt{P-192},
|
||||
\texttt{P-256} und \texttt{P-384 (FIPS 186)}
|
||||
\english{ECDH (Elliptic Curve Diffie-Hellman) key exchange algorithm using curves P-192, P-256, and P-384 (FIPS 186)}
|
||||
|
||||
\subsubsection{ECDSA (Elliptic Curve Digital Signature Algorithm)}
|
||||
CONFIG\_CRYPTO\_ECDSA [=y] \textbf{[Y]}\\
|
||||
ECDSA (Elliptic Curve Digital Signature Algorithm) (\texttt{FIPS 186}, \texttt{ISO/IEC 14888-3}) unter Verwendung der Kurven
|
||||
\texttt{P-192}, \texttt{P-256}, \texttt{P-384} und \texttt{P-521}\\
|
||||
Es ist nur eine Signaturprüfung implementiert.
|
||||
\english{ECDSA (Elliptic Curve Digital Signature Algorithm) (FIPS 186, ISO/IEC 14888-3) using curves P-192, P-256, P-384 and P-521\\
|
||||
Only signature verification is implemented.}
|
||||
|
||||
\subsubsection{EC-RDSA (Elliptic Curve Russian Digital Signature Algorithm)}
|
||||
CONFIG\_CRYPTO\_ECRDSA [=m] \textbf{[M]}\\
|
||||
Russischer digitaler Signaturalgorithmus mit elliptischer Kurve (\texttt{GOST R 34.10-2012}, \texttt{RFC 7091},
|
||||
\texttt{ISO/IEC 14888-3})\\
|
||||
Einer der russischen kryptografischen Standardalgorithmen (GOST-Algorithmen genannt). Es ist nur eine Signaturprüfung implementiert.
|
||||
\english{Elliptic Curve Russian Digital Signature Algorithm (GOST R 34.10-2012, RFC 7091, ISO/IEC 14888-3)\\
|
||||
One of the Russian cryptographic standard algorithms (called GOST algorithms). Only signature verification is implemented.}
|
||||
|
||||
\subsubsection{Curve25519}
|
||||
CONFIG\_CRYPTO\_CURVE25519 [=m] \textbf{[M]}\\
|
||||
Elliptische Kurve 25519 (RFC7748)
|
||||
\english{Curve25519 elliptic curve (RFC7748)}
|
||||
|
||||
%18.3
|
||||
\subsection{Block ciphers \texorpdfstring{$\longrightarrow$}{->}}
|
||||
\textit{Blockchiffren}
|
||||
|
||||
\subsubsection{AES (Advanced Encryption Standard)}
|
||||
CONFIG\_CRYPTO\_AES [=y] \textbf{[Y]}\\
|
||||
AES-Verschlüsselungsalgorithmen (Rijndael) (\texttt{FIPS-197}, \texttt{ISO/IEC 18033-3})\\
|
||||
Rijndael scheint sowohl in der Hardware als auch in der Software in einem breiten Spektrum von Computerumgebungen
|
||||
durchweg sehr gut zu funktionieren, unabhängig davon, ob er im Feedback- oder im Nicht-Feedback-Modus verwendet wird.
|
||||
Die Einrichtungszeit für Schlüssel ist ausgezeichnet, und seine Schlüsselagilität ist gut.
|
||||
Aufgrund seines sehr geringen Speicherbedarfs eignet sich Rijndael sehr gut für Umgebungen mit eingeschränktem Speicherplatz,
|
||||
in denen es ebenfalls eine hervorragende Leistung zeigt.
|
||||
Die Operationen von Rijndael gehören zu den am einfachsten zu verteidigenden gegen Energie- und Timing-Angriffe.\\
|
||||
Der AES sieht drei Schlüsselgrößen vor: \qtylist[list-units=single]{128;192;256}{\bit}.
|
||||
\english{AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3)\\
|
||||
Rijndael appears to be consistently a very good performer in both hardware and software across a wide range of computing
|
||||
environments regardless of its use in feedback or non-feedback modes.
|
||||
Its key setup time is excellent, and its key agility is good.
|
||||
Rijndael's very low memory requirements make it very well suited for restricted-space environments, in which it also
|
||||
demonstrates excellent performance.
|
||||
Rijndael's operations are among the easiest to defend against power and timing attacks.\\
|
||||
The AES specifies three key sizes: 128, 192 and 256 bits}
|
||||
|
||||
\subsubsection{AES (Advanced Encryption Standard) (fixed time)}
|
||||
CONFIG\_CRYPTO\_AES\_TI [=m] \textbf{[M]}\\
|
||||
AES-Verschlüsselungsalgorithmen (Rijndael) (\texttt{FIPS-197}, \texttt{ISO/IEC 18033-3})\\
|
||||
Dies ist eine generische Implementierung von AES, die versucht, datenabhängige Latenzen so weit wie möglich zu eliminieren,
|
||||
ohne die Leistung zu stark zu beeinträchtigen.
|
||||
Sie ist für die Verwendung durch die generischen CCM- und GCM-Treiber und andere CTR- oder CMAC/XCBC-basierte Modi vorgesehen,
|
||||
die sich ausschließlich auf die Verschlüsselung stützen (obwohl auch die Entschlüsselung unterstützt wird,
|
||||
allerdings mit einem drastischeren Leistungseinbruch).
|
||||
Anstelle von 16 Nachschlagetabellen mit je 1 KB (8 für die Verschlüsselung und 8 für die Entschlüsselung) verwendet diese
|
||||
Implementierung nur zwei S-Boxen mit je 256 Byte und versucht, datenabhängige Latenzen zu eliminieren,
|
||||
indem die gesamte Tabelle zu Beginn eines jeden Blocks in den Cache vorgeladen wird.
|
||||
Unterbrechungen sind ebenfalls deaktiviert, um Wettläufe zu vermeiden, bei denen Cache-Zeilen verdrängt werden,
|
||||
wenn die CPU unterbrochen wird, um etwas anderes zu tun.
|
||||
\english{AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3)\\
|
||||
This is a generic implementation of AES that attempts to eliminate data dependent latencies as much as possible
|
||||
without affecting performance too much.
|
||||
It is intended for use by the generic CCM and GCM drivers, and other CTR or CMAC/XCBC based modes that rely solely on encryption
|
||||
(although decryption is supported as well, but with a more dramatic performance hit)\\
|
||||
Instead of using 16 lookup tables of 1 KB each, (8 for encryption and 8 for decryption), this implementation only uses
|
||||
just two S-boxes of 256 bytes each, and attempts to eliminate data dependent latencies by prefetching the entire table
|
||||
into the cache at the start of each block.
|
||||
Interrupts are also disabled to avoid races where cachelines are evicted when the CPU is interrupted to do something else.}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user