First of all many thanks to Dominik Reichl for creating KeePass Password Safe (http://www.keepass.info) this plugin would not have existed otherwise
Version 1.0This is a dual cipher model with independent keys that uses AES-256 and 3DES-192 doubling data length random pad following the method as mentioned by Bruce Schneier in his book "Applied Cryptography".
There is no block padding and is filled with random bytes where the true length is indicated in the header, also AES key and IV is provided by keepass and only 3DES Keys and IV are generated.
n = Plaintext Length
m = Random pad of n bytes
b = Block pad length = 32 - n % 32 (but 0 if n%32 is 0)
b1 = block pad = b bytes of random data
b2 = block pad = b bytes of random data
Encrypted data format:
|0x00||0x01||File Version currently 1|
|0x01||0x01||Algorithm (currently 0 - indicates AES+3DES)|
|0x02||0x20||Random master seed for 2nd Cipher|
|0x22||0x20||Random seed to transformation for 2nd Cipher|
|0x42||0x08||Random IV bytes for 2nd Cipher|
|0x4A||0x08||Transformation rounds default 10000 for 2nd Cipher|
|0x56||n+b||AES256(Plaintext XORred with m bytes + b1 bytes)|
|0x56+n+b||n+b||3DES(m bytes + b2 bytes)|
Key Generation:AES Keys are provided by Keepass (Entry made during master password entry screen) and IV.
3DES Keys are generated by combining the keys derived from the second password entered along with SHA256 of (Plaintext XORred with m bytes + b1 bytes).
Click here to download the files
Click here for the Source Code Repository
Bugs/Suggestions? email me email@example.com