# Given plaintext and ciphertext of the same length, how could one generate potential symmetric keys if encryption algorithm is unknown?

This question is about both encryption and about how and if one could transform data from one given form to another given form and back.

I am given plaintext and ciphertext, both of which are the same length. I need to generate a list of potential symmetric keys that can be used to transform the plaintext into the ciphertext and back via different encryption techniques. The techniques don't have to be complicated or in any way actually secure, they just have to exactly transform the given data using a key.

My problem is that I'm not sure how to go about restructuring encryption algorithms (or any functions for the most part) to give the key given the plaintext and ciphertext. Currently the only function I've found that will transform the data exactly has been XOR:

plaintext = key XOR ciphertext
ciphertext = key XOR plaintext
==>
key = plaintext XOR ciphertext


Are there other techniques that work, and if there are, how would one restructure a given encryption technique to give you the key?