Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#4

Re: Rijnadel in Delphi nicht gleich wie das in PHP

  Alt 14. Feb 2008, 20:19
Doch er nutzt einen IV, geht garnicht anders da man immer einen IV benutzt sobald ein CipherMode <> cmECB benutzt wird
Der Standard-InitVector im DEC ist die Wiederholung von $FF.

Möchtest du $00 als IV benutzten dann benutze .Init('Passwort', '', $00); Dabei wird der zb. 8/16 Bytes große IV mit dem Byte $00 gefüllt.
Möchtest du einen komplett individuellen IV benutzt dann geht das mit .Init('Passwort', TFormat_HEX.Decode('0102030405060708...')); oder mit .Init(Password[1], Length(Password), IV, SizeOf(IV)); wobei dann IV eine Datenstruktur ist die exakt Cipher.Context.BlockSize Bytes groß sein muß.
Es gehen also alle Kombinationen mit fast allen datentypen.

Kryptographisch betrachtet sollte man dem IV aber nicht allzuviel Bedeutung beimessen. Es ist besser, statt einem Zufalls-IV, diese Zufallsdatenblock vor die Nachricht zu hängen und dann alles mit festen IV, zb. $FFFFFFFFFFF...FFF, zu verschlüsseln. Der Zufallsdatenblock der also am Anfang der Nachricht steht hat die exakt gleiche Wirkung wie ein externer IV, nur mit dem Untewrschied das er eben verschlüsselt übertragen wird. Ein normaler IV wird unverschlüsselt übertragen. Ergo: die methode den Zufalls-Datenblock in die zu verschl. Naricht einzubetten muß sicherer sein.


Gruß Hagen
  Mit Zitat antworten Zitat