I'm trying to reverse an encryption scheme without success. I have several pairs of ciphertext + plaintext and found the encryption method to be something like this:
K = secret key, eg. [a,b,c,d] P = key provided with the ciphertext, eg. [1,2,3,4] Q = provided key bits shuffled around using each entry as an index into the secret key N = Q concatenated with one more byte resulting from state of the previous step (so it also depends on the secret key) O = Has the same elements as the key provided, and each element is made by bitwise OR in this fashion: ( N[i] | N[i+1] ) Then O is xored with the ciphertext to get the plaintext.
I have no experience with cryptography, and as a programmer, my first approach was to reverse the procedure and try to find the key using my ciphertext-plaintext pairs.
Obviously, the first hurdle I encountered is that I can't reverse the OR combination.
I tried looking for information and learn what kind of approach I could try to solve this problem (And even how solvable it is), but I don't even know the terminology I could use to find it.
Any hint or help about how to tackle this, what to look for or where to learn more, would be greatly appreciated.