summaryrefslogtreecommitdiff
path: root/Doc
diff options
context:
space:
mode:
authorakuchling <akuchling@rivest.dlitz.net>2003-12-19 15:30:49 -0700
committerakuchling <akuchling@rivest.dlitz.net>2003-12-19 15:30:49 -0700
commitc65c8d64df38a000524dbd0556b166d70e19442c (patch)
tree0afb5ba448171a293cfbf3efbe57c0177754e3b2 /Doc
parentc44bccd5616c491931bea1e1c4631b1efc3bc285 (diff)
downloadpycrypto-c65c8d64df38a000524dbd0556b166d70e19442c.tar.gz
[project @ akuchling-20031219223049-bf90798eb5c70ac5]
[project @ 2003-12-19 14:30:49 by akuchling] Document SHA256; rename SHA to SHA1 in the text
Diffstat (limited to 'Doc')
-rw-r--r--Doc/pycrypt.tex27
1 files changed, 16 insertions, 11 deletions
diff --git a/Doc/pycrypt.tex b/Doc/pycrypt.tex
index 5724548..955574c 100644
--- a/Doc/pycrypt.tex
+++ b/Doc/pycrypt.tex
@@ -120,7 +120,7 @@ difficult to find two messages with the same hash value, or to find a
message with a given hash value. The simple additive hash function
fails this criterion miserably and the hash functions described below
meet this criterion (as far as we know). Examples of
-cryptographically secure hash functions include MD2, MD5, and SHA.
+cryptographically secure hash functions include MD2, MD5, and SHA1.
Hash functions can be used simply as a checksum, or, in association with a
public-key algorithm, can be used to implement digital signatures.
@@ -132,7 +132,8 @@ The hashing algorithms currently implemented are:
\lineii{MD4}{128 bits}
\lineii{MD5}{128 bits}
\lineii{RIPEMD}{160 bits}
-\lineii{SHA}{160 bits}
+\lineii{SHA1}{160 bits}
+\lineii{SHA256}{256 bits}
\end{tableii}
All hashing modules share the same interface. After importing a given
@@ -222,24 +223,28 @@ the three rounds have been cryptanalyzed, but the attack can't be
extended to the full algorithm. MD5 is a strengthened version of MD4
with four rounds; an attack against one round has been found XXX
update this. MD5 is still believed secure at the moment, but people
-are gravitating toward using SHA in new software because there are no
-known attacks against SHA. The MD5 implementation is moderately
+are gravitating toward using SHA1 in new software because there are no
+known attacks against SHA1. The MD5 implementation is moderately
well-optimized and thus faster on x86 processors, running at 35,500
K/sec. MD5 may even be faster than MD4, depending on the processor
and compiler you use.
-All the MD\var{n} algorithms produce 128-bit hashes; SHA produces a
+All the MD\var{n} algorithms produce 128-bit hashes; SHA1 produces a
larger 160-bit hash, and there are no known attacks against it. The
first version of SHA had a weakness which was later corrected; the
code used here implements the second, corrected, version. It operates
-at 21,000 K/sec. RIPEMD also has a 160-bit output, and operates at
-17,600 K/sec.
+at 21,000 K/sec. SHA256 is about as half as fast as SHA1. RIPEMD has
+a 160-bit output, the same output size as SHA1, and operates at 17,600
+K/sec.
\subsection{Credits}
-The MD2 and MD4 implementations were written by A.M. Kuchling,
-and the MD5 code was implemented by Colin Plumb. The SHA code was
-originally written by Peter Gutmann. The RIPEMD code was written by
-Antoon Bosselaers, and adapted for the toolkit by Hirendra Hindocha.
+The MD2 and MD4 implementations were written by A.M. Kuchling, and the
+MD5 code was implemented by Colin Plumb. The SHA1 code was originally
+written by Peter Gutmann. The RIPEMD code was written by Antoon
+Bosselaers, and adapted for the toolkit by Hirendra Hindocha. The
+SHA256 code was written by Tom St.~Denis and is part of the
+LibTomCrypt library (\url{http://www.libtomcrypt.org/}); it was
+adapted for the toolkit by Jeethu Rao and Taylor Boon.
%======================================================================