2 Nov 01:01 2008

### Need For Specific Cryptographic Primitive

yzt <yaserzt <at> gmail.com>

2008-11-02 00:01:20 GMT

2008-11-02 00:01:20 GMT

Hi, In my work, I need a cryptographic primitive (a cipher, to be more specific) with the following attribute: If we define the the encryption function as "E(k,p)" where "k" is the key and "p" is the plain text, I need the cipher to have the property that "E(k2, E(k1, p)) = E(k3, p)". In other words, I need the result of the double encryption of any given plaintext with two different keys, be equal to a single encryption with another key. Obviously, I also need the "k3" above to be computable given "k1" and "k2", but (ideally) neither "k1" nor "k2" should be retrievable given the other two keys. Now, I don't have a strong theoretical background in cryptography, so I don't even know what this property is called, or even whether it has a specific name (that's why I had to choose such a non-descriptive subject,) but as I understand it, this is generally an undesirable property in a cipher. Can such a property be implemented using conventional cryptographic primitives? I would prefer the use of a block cipher, but public key- based solutions wouldn't be too problematic either. Does anyone have any advice as how should I go about implementing this? Does Crypto++ have any features to help me here? I'm not even sure whether this mailing list is the proper place to ask such questions. If so, I'd appreciate to be directed to the proper place to ask this. I apologize if I'm violating any rules or conventions.(Continue reading)