HASHMAC

28. Januar 2016

Hiermit können Hash-Werte, MAC-Werte oder Zufallszahlen generiert werden. Verwendete Algorithmen sind MD5, SHA-1 oder AES 128/192/256-Bit. Hashwerte werden z. B. für Kennwortidentifizierung verwendet.

Preis: EUR 400,--  Bestellen
  • screen1
  • screen2

Hash/MAC-Wert generieren (HASHMAC)

- Umgebungen:
  • CL-Programm im Stapel (*BPGM)
  • CL-Programm interaktiv (*IPGM)
- Threadsicher: Nein
Parameter
Beispiele
Fehlernachrichten

Mit diesem Befehl können Hash-Werte, MAC-Werte (Message Authentication Code) nach bestimmten Algorithmen oder eine Zufallszahl generiert werden.

Hash-Werte, auch Streuwerte genannt, erzeugen aus einer üblicherweise großen Quellmenge eine wesentlich kleinere Zielmenge. Ein Hash-Wert kann auch als Fingerabdruck bezeichnet werden. Ein guter Hash-Algorithmus zeichnet sich dadurch aus, dass bei Änderung nur eines einzelnen Bits in der Quellmenge das Ergebnis einen komplett anderen Hash-Wert ergibt.

Hash-Algorithmen sind darauf optimiert, sogenannte Kollisionen zu vermeiden. Eine Kollision tritt dann auf, wenn zwei verschiedenen Quelldaten derselbe Schlüssel zugeordnet wird. Da der Hash-Wert in der Praxis meist kürzer als die originale Quellmenge ist, sind solche Kollisionen prinzipiell unvermeidlich, deshalb gibt es Verfahren zur Kollisionserkennung.

Bei einer Hash-Funktion geht es meistens darum, zu einer Eingabe beliebiger Länge (zum Beispiel ein Text) eine kurze, möglichst eindeutige Identifikation fester Länge (den Hash-Wert des Textes) zu finden.

Das ist etwa dann sinnvoll, wenn man zwei große, ähnliche Dateien vergleichen will: Anstatt die 25 Seiten eines Textes durchzusehen, ob auch wirklich jeder Buchstabe gleich ist, ist anhand der kurzen Hash-Werte der beiden Dokumente sofort zu sehen, ob diese höchstwahrscheinlich gleich oder mit Sicherheit verschieden sind.

Praktische Anwendung ist z.B. das Herunterladen einer Datei, zu der der Autor den Hash-Wert angegeben hat: Um zu prüfen, ob es Übertragungsfehler gegeben hat, braucht die Datei nicht etwa ein zweites Mal komplett heruntergeladen werden, sondern es muss nur der Hash-Wert gebildet und mit der Angabe des Autors verglichen werden.

Hash-Werte sind immer Einweg-Operationen. Aus dem Hash-Wert können die Ursprungsdaten nicht wiederhergestellt werden.


Parameter

Parameter Beschreibung Auswahl Hinweis
INPUT Cl-Var für INPUT (2000) Zeichenwert Erforderlich, Position 1
OUTPUT Cl-Var für OUTPUT (2000) Zeichenwert Erforderlich, Position 2
INPLEN Eingabelänge 1-2000 Erforderlich, Position 3
ALGORITHM Algorithmus *MD5, *SHA1, *AES128, *AES192, *AES256, *RANDOM Erforderlich, Position 4
PWD Kennwort Zeichenwert, *NONE Wahlweise, Position 5

Cl-Var für INPUT (2000) (INPUT)

Gibt den Namen der CL-Variablen im Programm an, in der die Zeichenkette enthalten ist, aus dem ein Hash-Wert erzeugt werden soll.

Dies ist ein erforderlicher Parameter.

Zeichenwert
Die Zeichenkette kann aus mindestens 1 bis maximal 2000 Zeichen bestehen. Als Zeichen können alle 256 Hexwerte verwendet werden.

Cl-Var für OUTPUT (2000) (OUTPUT)

Gibt den Namen der CL-Variablen im Programm an, in der die generierten Daten gestellt werden. Als Ergebnis kann ein Hash-Wert oder eine Zufallszahl geliefert werden.

Dies ist ein erforderlicher Parameter.

Zeichenwert
Im Rückgabewert können alle 256 Hexwerte vorkommen. Je nach gewählten Algorithmus variiert die Länge des Rückgabewertes.

Eingabelänge (INPLEN)

Die Eingabelänge bestimmt, wieviele Zeichen des Parameters INPUT verarbeitet werden sollen.

Dies ist ein erforderlicher Parameter.

Zahl
Wert zwischen 1 und 2000 angeben.

Algorithmus (ALGORITHM)

Hier wird angegeben, nach welchem Verfahren oder Algorithmus ein Hash-Wert generiert werden soll. Die Länge des generierten Wertes ist vom jeweiligen Algorithmus abhängig.

Dies ist ein erforderlicher Parameter.

*MD5
Die Erstellung des Hash-Wertes erfolgt nach dem Message Digest Algorithmus 5 (MD5). Der Rückgabewert besteht immer aus 128 Bits (16 Zeichen) und kann sämtliche Hexzeichen von x'00' bis x'FF' beinhalten.
*SHA1
Die Erstellung des Hash-Wertes erfolgt nach dem Secure Hash Algorithmus (SHA-1). Der Rückgabewert besteht immer aus 160 Bits (20 Zeichen) und kann sämtliche Hexzeichen von x'00' bis x'FF' beinhalten.
*AES128
Die Erstellung des MAC-Wertes erfolgt nach dem Advanced Encryption Standard (AES) Algorithmus mit 128 Bit. Die Eingabelänge muß mindestens 16 oder ein Vielfaches von 16 betragen. Der Rückgabewert besteht immer aus 128 Bits (16 Zeichen) und kann sämtliche Hexzeichen von x'00' bis x'FF' beinhalten.

Für diesen Algorithmus ist das kostenlose Lizenzprogramm 5722-AC3 (Crypto Access Provider 128-bit) bzw. ab i5/OS V5R4M0 das kostenlose Lizenzprogramm 5722-SS1 Option 35 (CCA Cryptographic Service Provider) erforderlich.

*AES192
Die Erstellung des MAC-Wertes erfolgt nach dem Advanced Encryption Standard (AES) Algorithmus mit 192 Bit. Die Eingabelänge muß mindestens 24 oder ein Vielfaches von 24 betragen. Der Rückgabewert besteht immer aus 192 Bits (24 Zeichen) und kann sämtliche Hexzeichen von x'00' bis x'FF' beinhalten.

Für diesen Algorithmus ist das kostenlose Lizenzprogramm 5722-AC3 (Crypto Access Provider 128-bit) bzw. ab i5/OS V5R4M0 das kostenlose Lizenzprogramm 5722-SS1 Option 35 (CCA Cryptographic Service Provider) erforderlich.

*AES256
Die Erstellung des MAC-Wertes erfolgt nach dem Advanced Encryption Standard (AES) Algorithmus mit 256 Bit. Die Eingabelänge muß mindestens 32 oder ein Vielfaches von 32 betragen. Der Rückgabewert besteht immer aus 256 Bits (32 Zeichen) und kann sämtliche Hexzeichen von x'00' bis x'FF' beinhalten.

Für diesen Algorithmus ist das kostenlose Lizenzprogramm 5722-AC3 (Crypto Access Provider 128-bit) bzw. ab i5/OS V5R4M0 das kostenlose Lizenzprogramm 5722-SS1 Option 35 (CCA Cryptographic Service Provider) erforderlich.

*RANDOM
Mit dieser Funktion kann eine Zufallszahl generiert werden. Ein Eingabewert ist für die Generierung nicht erforderlich, jedoch bestimmt die Eingabelänge die Länge der Zufallszahl. Die erstellte Zufallszahl kann aus bis zu 2000 Zeichen bestehen.

Für diese Funktion ist das kostenlose Lizenzprogramm 5722-AC3 (Crypto Access Provider 128-bit) bzw. ab i5/OS V5R4M0 das kostenlose Lizenzprogramm 5722-SS1 Option 35 (CCA Cryptographic Service Provider) erforderlich.

Kennwort (PWD)

Für alle Algorithmen kann für die Generierung des Hash-/MAC-Wertes ein Kennwort angegeben werden.

*NONE
Es wird kein Kennwort für die Generierung des Wertes verwendet. Das Ergebnis ist ein Hash-Wert.
Kennwort
Kennwort angeben, welches für die Generierung des Wertes verwendet werden soll. Das Kennwort kann aus allen Hexzeichen von x'00' bis x'FF' bestehen. Das Ergebnis ist ein MAC-Wert.

Beispiele für HASHMAC

Beispiel 1: Generierung Hash-Wert nach MD5

Mit folgender Anweisung wird aus dem Feldinhalt von &PASSWORD ein Hash-Wert nach MD5 generiert.

 HASHMAC INPUT(&PASSWORD) OUTPUT(&HASHVAL)
         INPLEN(10) ALGORITHM(*MD5)

Beispiel 2: Generierung Hash-Wert mit CALL

Mit folgendem Programmaufruf wird aus dem Feldinhalt von &MESSAGE ein MAC-Wert nach AES 256 Bit generiert. Dabei wird für die Generierung das Kennwort F25lj verwendet.

CALL PGM(HASHMAC) PARM(&MESSAGE &HASHVAL 128 '*AES256' 'F25lj')

Fehlernachrichten

Unbekannt
Kategorien Kryptografie