Originally posted by: Matthias99
"No" is definitely not the answer. Imagine that you have a black box that allows you to feed in an input and get the output. If you feed in every possible input, you should be able to figure out what function is being computed by the black box.
Now, that is likely impractical -- but you generally can narrow things down quickly if you are smart about the inputs you choose (for instance, feeding in an input of all zeroes, or making single-bit changes in the input and seeing how the output changes). It helps a lot to have to have some idea of at least the class of algorithm involved. Well-designed encryption algorithms will have fewer easily discernable patterns (they look more like random data, and even tiny changes in the input will drastically change the output).
Just given a static list of inputs and outputs -- you are very unlikely to be able to determine much of anything unless the list is very large or the algorithm is very simple or badly flawed in some way.
Neal Stephenson's "Cryptonomicon" has some fairly technical treatments of encryption and attacks on encryption.