Links

Tuesday, August 30, 2016

Multicipher Plugin for KeePass

First of all many thanks to Dominik Reichl for creating KeePass Password Safe (http://www.keepass.info) this plugin would not have existed otherwise

Download MultiCipher Plugin for Keepass

This is a dual cipher model with independent keys that uses two ciphers to encrypt the KeePass database doubling the data length with random pad. It follows a method as mentioned by Bruce Schneier in his book "Applied Cryptography".

Please click here for details

Version 2.1 for KeePass >= 2.41

This is a major rework of the original version 1.x of the plugin, it is recommended that older version is no longer used as this version attempts to make sure that the memory is cleared of any sensitive information and provides more choices of encryption algorithm.

For technical details check out the source repository at: https://github.com/titasraha/multicipher

Click here to download source code and other releases

Other Releases (Not Recommended)

Version 1.x - Updated for Keepass Version 2.39x and above

Version 1.0 

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:

PositionLength (Bytes)Content
0x000x01File Version currently 1
0x010x01Algorithm (currently 0 - indicates AES+3DES)
0x020x20Random master seed for 2nd Cipher
0x220x20Random seed to transformation for 2nd Cipher
0x420x08Random IV bytes for 2nd Cipher
0x4A0x08Transformation rounds default 10000 for 2nd Cipher
0x520x04n
0x56n+bAES256(Plaintext XORred with m bytes + b1 bytes)
0x56+n+bn+b3DES(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).


Bugs/Suggestions? email me support@titasraha.com