| Cryptography & Encryption Ver- und Entschlüsselung, Algorithmen, Kryptoanalyse ? Kryptographie in der Praxis. Blowfish, Triple-DES, XOR u.a. |
Diskussion: rmd160 und losetup im Forum Cryptography & Encryption, in der Kategorie Security Area; Anzeige Wie ich hier bereits erwähnte, hab ich mir den Source von losetup (util-linux-2.11z-25) angeschaut. Nun hab ich dort folgenden ...
![]() |
| | #1 (permalink) |
| Registriert seit: 01.11.03 ![]() Likes: 0 | Anzeige Wie ich hier bereits erwähnte, hab ich mir den Source von losetup (util-linux-2.11z-25) angeschaut. Nun hab ich dort folgenden Code gefunden: Code: #define HASHLENGTH 20
#define PASSWDBUFFLEN 130 /* getpass returns only max. 128 bytes, see man getpass */
#define LO_NAME_SIZE 64
#define LO_KEY_SIZE 32
struct loop_info {
//:
int lo_encrypt_key_size; /* ioctl w/o */
unsigned char lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
unsigned long lo_init[2];
//:
};
//:
pass = getthepass("Password: ");
strncpy(passwdbuff+1,pass,PASSWDBUFFLEN-1);
passwdbuff[0] = 'A';
rmd160_hash_buffer(keybits,pass,strlen(pass));
rmd160_hash_buffer(keybits+HASHLENGTH,passwdbuff,strlen(pass)+1);
memcpy((char*)loopinfo.lo_encrypt_key,keybits,2*HASHLENGTH);
//:
loopinfo.lo_encrypt_key_size=keylength;//Im Fall von twofish 20
//: Ersteinmal wollte ich fragen, ob dass nicht etwas gewagt ist, einfach 40 byte zu kopieren, die dann in 32-chars und 2 unsigned longs landet, immerhin muss ein unsigned long ja nicht 4 bytes lang sein (oder?). Außerdem noch zum Hash. Es wird ja einmal das Passwort gehasht und dann das Passwort mit einem vorangestellten 'A' gehasht. Ist das nicht etwas unsicher? Es wird in diesem Fall zwar die Key-len auf 20 gesetzt, so das der zweite Hash nur für die inits sind, aber trotzdem! Könnte man die Keylenght nicht hochsetzen, oder wird es dadurch eher unsicherer?! Und noch allgmeinen zu rmd160: Es soll ein Hash sein, der ähnlich md4 ist und wie der Name schon sagt einen 160 bit (=20byte) Hash liefert. Leider habe ich nichts direkt zur Sicherheit gelesen, nur das der Hash "frei" ist. |
| | |
| | #2 (permalink) | |
| Guest Likes: | Auf Linux ist u_long 4 Bytes gross (unter anderen imo auch), solange es sich um 32 bittige systeme handelt. Passwort wird in pass gelesen und dann ab dem 1. element in array passwdbuff gelesen. passwdbuff[0] erhaelt das "A". Das passwort wird nur einmal "gehasht". Zitat:
mfg | |
|
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| losetup + verschlüsselung | lagalopex | Linux/UNIX | 6 | 17.11.03 15:44 |