Method to determine encryption algorithm used?

BG4533

Golden Member
Oct 15, 2001
1,892
0
71
Lets say I have a list of strings and the corresponding output after an encryption algorithm is applied. The encryption algorithm yields the same result for a given input every time. Is there a formal method to determine the algorithm?

This is mainly an academic exercise, but not school related. Articles, equations, source code, programs, etc are welcome.
 

Aves

Lifer
Feb 7, 2001
12,232
29
101
You'd pretty much just have to try all possible encryption algorithms via brute force.
 

Cooler

Diamond Member
Mar 31, 2005
3,835
0
0
No method I know of other then studing many differnt encryption algorithms and looking for patterns.
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
"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.
 

smack Down

Diamond Member
Sep 10, 2005
4,507
0
0
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.

You could define a function (well an infinite number of function) between the input and output. If you can really input every input then you can find one possible functions.
 

classy

Lifer
Oct 12, 1999
15,219
1
81
Originally posted by: BG4533
Lets say I have a list of strings and the corresponding output after an encryption algorithm is applied. The encryption algorithm yields the same result for a given input every time. Is there a formal method to determine the algorithm?

This is mainly an academic exercise, but not school related. Articles, equations, source code, programs, etc are welcome.

If I understand correctly what your asking then the answer is no. Its is impossible to tell what algorithm is used based on output. As a matter of fact you can test you own theory to be honest. You can capture packets from two different streams of data using two different algorithms and look at them all day. They will look the same. But the more complex the encryption the more times you'll have to decrypt. Let me clarify by saying my answer is based on computer based encryption.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |