Mit der MCHash ActiveX DLL können Manipulation Detection
Codes bzw. Hash Codes für beliebige Dateien und Strings erstellt werden.
Diese können dann für verschiedene Zwecke verwendet werden.
Eine Möglichkeit ist beispielsweise beim Inhalt von E-Mail Nachrichten
oder bei deren Datei Anhängen Veränderungen auf dem Weg
zum Empfänger festzustellen.
Nachfolgend findet sich eine Liste und eine Beschreibung der implementierten Codes.
| Algorithmus |
Standard |
Entwickler |
Hash Länge |
Sicherheit |
| SizeHash-32 |
- |
- |
32 bit |
- |
| CRC-16 |
- |
- |
16 bit |
- |
| CRC-16-CCITT |
- |
- |
16 bit |
- |
| CRC-32 |
ANSI X3.66, FIPS PUB 71 |
- |
32 bit |
- |
| FCS-16 |
- |
- |
16 bit |
- |
| FCS-32 |
- |
- |
32 bit |
- |
| GHash (GHash-32-3, GHash-32-5) |
|
|
32 bit |
|
| GOST-Hash |
GOST-R-34.11-94 |
Gosudarstvennyi Standard of Russian Federation |
256 bit |
Niedrig |
| HAVAL (5 passes, 256 bit) |
- |
Zheng, Pieprzyk,
Seberry |
256 bit |
Mäßig |
| MD2 |
RFC
1319 |
Ron
Rivest |
128 bit |
Niedrig |
| MD4 |
RFC
1320 |
Ron
Rivest |
128 bit |
Niedrig |
| MD5 |
RFC
1321 |
Ron
Rivest |
128 bit |
Mäßig |
| SHA-1 |
FIPS
PUB 180-1 |
NIST/NSA |
160 bit |
Hoch |
| SHA224 |
FIPS
PUB 180-2 |
NIST/NSA |
224 bit |
Sehr hoch |
| SHA256 |
FIPS
PUB 180-2 |
NIST/NSA |
256 bit |
Sehr hoch |
| SHA384 |
FIPS
PUB 180-2 |
NIST/NSA |
384 bit |
Sehr hoch |
| SHA512 |
FIPS
PUB 180-2 |
NIST/NSA |
512 bit |
Sehr hoch |
| Tiger |
|
Ross
Anderson, Eli
Biham |
192 bit |
Hoch |
| RIPEMD128 |
EU project RIPE
(RACE Integrity Primitives Evaluation, 1988-1992) |
Hans Dobbertin, Antoon Bosselaers, und Bart Preneel |
128 bit |
Mäßig |
| RIPEMD160 |
Article |
Hans Dobbertin, Antoon Bosselaers, und Bart Preneel |
160 bit |
Hoch |
Tabelle 1: Manipulation Detection Codes und Hash Algorithmen implementiert
in der MCHash ActiveX DLL
Beschreibung
von einigen Hash Algorithmen
CRC und CRC-32
CRC ist ein Akronym für Cyclic Redundancy Check. Ein CRC ist
eine "digitale Signatur" in der Datenrepräsentation.
Der am weitesten verbreitete CRC ist CRC32, in welchem die "digitale
Signatur" als eine 32-bit Zahl dargestellt wird. Die Länge
der Daten über welche die CRC berechnet wird kann beliebig
sein. Als source dient entweder eine Datei oder ein String. Der
CRC Algorithmus hat mehrere für Hash Algorithmen allgemeine
charakteristische Eigenschaften. Erstens, wenn man die CRC mehrmals
von den gleichen Daten berechnet muss man jedes mal das gleiche
Ergebnis erhalten. Zweitens, wenn man die CRC von zwei unterschiedliche
Daten berechnet muss das Ergebnis der CRC sehr unterschiedliche
Werte liefern. Wenn man nun die CRC über die gleichen Daten
zweimal berechnet erhält man die gleiche digitale Signatur.
Jedoch wenn man die CRC von Daten berechnet, die sich auch nur in
einem Byte unterscheiden erhält man zwei sehr unterschiedliche
digitale Signaturen. Mit einer 32-bit CRC gibt es über 4 Milliarden
mögliche CRC Werte. Um dies exakt zu formulieren, es sind 2^32
oder 4294967296 Möglichkeiten. Mit so einer großen Anzahl
an CRC Werten ist es nicht sonderlich schwierig für unterschiedliche
Daten auch einzigartige CRC Werte zu generieren. Aber, es ist möglich,
dass zwei komplett unterschiedliche Datenstücke dieselbe CRC
erhalten. Dies ist dann der Punkt wo sichere Hash Algorithmen eingesetzt
werden.
Warum verwendet
man CRCs?
Die meiste Zeit werden CRCs verwendet um Daten mit einem Integritätscheck
zu vergleichen. Angenommen man möchte zwei Dateien vergleichen
und herausfinden ob diese identisch sind. Wenn die CRC Werte unterschiedlich
sind, dann hat man eine 100%ige Garantie, dass diese Dateien nicht
gleich sind. Wenn die CRC Werte gleich sind, dann kann man zu 99%
sicher sein, dass die Dateien gleich sind.
Message-Digest Algorithmen
(MD)
MD5 ist Teil der Message-digest Algorithmen Familie MD2, MD4 und
MD5 wurden von Ron
Rivest in der Zusammenarbeit mit dem MIT Laboratory for Computer
Science und der RSA Data Security, Inc. entwickelt. MD2
und MD4 sind ältere Versionen, haben Schwächen und sollten
nicht benutzt werden. MD2 ist aus dem Jahre 1989 und MD4 von 1990.
Der MD5-Algorithmus ist seit 1991 bekannt. Der MD5 Algorithmus ist
eine Erweiterung des MD4 Message-digest Algorithmus, zwar etwas
langsamer als MD4, bietet aber auf der anderen Seite eine höhere
Sicherheit. MD5 wird als mäßig sicher betrachtet. Alle
drei Algorithmen verarbeiten eine Nachricht von unbeschränkter
Länge und produzieren einen 128-bit langen Message Digest.
Dies ist eine 39-stellige Dezimalzahl. Bei MD5 ist es nahezu unmöglich,
die Nachricht so zu verändern, dass der Inhalt sich ändert,
aber der Hash-Code gleich bleibt. Sind die Hash Code gleich, aber
die Nachricht unterschiedlich, haben wir das Problem einer Kollision.
Da ein MD5-Hash-Wert 128 Bit lang ist, kann er 2^128 verschiedene
Ausgabewerte annehmen. Zwangsläufig sind unter 2^128 + 1 verschiedenen
Nachrichten mindestens zwei Texte mit gleichem Hash-Wert. Die Wahrscheinlichkeit,
dass eine beliebige Nachricht den gleichen Hash-Wert wie eine vorgegebene
Nachrichten hat, ist 1/(2^128). Die Wahrscheinlichkeit jedoch, dass
zwei beliebig gewählte unterschiedliche Nachrichten den gleichen
Hash-Wert haben, ist deutlich höher.
Ebenso kompliziert gestaltet es sich, eine Botschaft zu generieren,
die einen vorgegebenen Fingerabdruck besitzt. Doch unmöglich
ist das nicht. 1994 haben Paul van Oorschot und Mike Wiener gezeigt,
dass sich in weniger als einem Monat mit einem Budget von etwa zehn
Millionen US-Dollar (Stand 1994) ein 128-Bit-Schlüssel knacken
lässt. Die Kosten halbieren sich etwa alle 18 Monate. Im Durchschnitt
tritt alle 24 Tage eine Kollision bei MD5 auf.
Secure Hash Algorithmen
(SHA)
Der Secure Hash Algorithmus (SHA) spezifiziert im Secure Hash Standard
(SHS), wurde von der NIST entwickelt und publiziert als ein Federal
Information Processing Standard (FIPS
PUB 180). SHA-1 war eine Revision von SHA der im Jahr 1994 präsentiert
wurde. Die Revision korrigierte einen unpublizierte Schwachstelle
in SHA. Das Design ist sehr ähnlich zur MD4 Familie von Hash
Funktionen entwickelt von Ron Rivest. Der SHA-1 Algorithmus produziert
von Nachrichten in beliebiger Länge einen 160-bit Message Digest.
Der Algorithmus ist etwas langsamer als MD5, aber durch den längeren
Message Digest bietet SHA-1 einen höheren Sicherheitsstandard
und macht ihn sicherer gegen brute-force Kollision und Inversion Attacken. Das Forschungsteam von Xiaoyun Wang, Yiqun Lisa Yin, und Hongbo Yu (hauptsächlich von der Shandong Universität in China) haben im September 2005 eine neue Attacke gegen SHA-1 mit der Komplexität 2^63 (statt 2^80 bei brute force) entwickelt. Nun ist die Suche nach Kollisionen bei SHA-1 im Bereich des Möglichen und der Algorithmus ist gebrochen.
Motiviert durch die AES Auswahl, hat die NIST einen Ersatz
des SHA-1 Hash Algorithmus durch SHA-224, SHA-256, SHA-384 und SHA-512
Algorithmen vorgestellt. Diese wurden mit einem Level der Kollisionsfestigkeit
(collision resistance) ausgestattet der äquivalent zur Sicherheit
der jeweiligen AES Schlüssellängen ist. Die Länge
des Message Digest beträgt für SHA-1 160 bit (20 byte).
Die Länge des Message Digest für die neuen SHA-224, SHA-256,
SHA-384, und SHA-512 Algorithmen sind 224 bit (28 byte), 256 bit
(32 byte), 384 bit (48 byte), 512 bit (64 byte). Die Zunahme der
Länge ist signifikant, womit die neuen Algorithmen äußerst
schwierig zu brechen sind. Bisher ist kein Angriff bekannt, der die Nutzung von SHA-2 in Frage
stellt.
Verwandte Themen:
• MCCrypt Pro
• MCCrypt Lite
• MCWipe
• MCSign
• MCVerify
• MCSecureMail
• MCCrypt ActiveX DLL
• MCCipher ActiveX DLL
• MCRijndael ActiveX DLL
• MCMAC ActiveX DLL
• MCWipe ActiveX DLL
|