MCSoft Security Solutions
 
MCSoft MCHash ActiveX DLL
 
 
 Produkt Download
 Kontaktieren Sie uns

Generierung des Manipulation Detection Codes und des Hash Codes mit MCHash

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