Is it possible to identify the encryption method or atleast rule out some, by looking at the encrypted text?
For example, if you have 3 encrypted strings where the first 10 characters are the same on each of the strings.
|
Is it possible to identify the encryption method or atleast rule out some, by looking at the encrypted text? For example, if you have 3 encrypted strings where the first 10 characters are the same on each of the strings. |
|||
|
Yes, it is possible under certain circumstances to determine the encryption method used purely from ciphertexts. The first question that a cryptanalysis faced with such a problem must answer what general type the cipher is. Does the cipher appear to be a classical cipher, asymmetric cipher, or symmetric cipher?
On the nature of "good" ciphers. Many ciphers currently in use do not fit the definition given above of a good cipher. For example DES has a key size that is smaller than it's block size. Given two ciphers of the small block size and the different key sizes it should be possible in theory to distinguish between them given only ciphertexts. Furthermore, many currently used stream ciphers are designed with ease of implementation in mind and therefore don't use non-linear mappings. For instance GMS system used by many mobile phones uses the a5/1 cipher. This ciphers is merely a LFSR and can not only be distinguished but can be broken in seconds given sufficient pre-computation time. |
|||||||||||||
|
|
If the encryption system is any good, then no. The output of a (symmetric) encryption algorithm is supposed to be indistinguishable from pure random. If you can distinguish encryption output from pure random with probability greater than 1/2 (i.e. you are given two strings of bits, and you can tell which one comes from an encryption system with better success on average than pure luck), then the encryption algorithm is said to be "broken". An example of such an algorithm is RC4 (not that being broken does not mean that decryption without the key is easy; RC4-protected SSL connections still appear to be mostly safe). However, the used encryption algorithm is not generally supposed to be secret information. That algorithm exists as code or specific hardware somewhere; it is amenable to reverse engineering. It is very difficult to know how much algorithm secrecy may resist an attacker, and that's a problem since a good security policy should aim at quantifying things. Secrecy of a symmetric key can be quantified: a 128-bit key is secret up to 2127 (on average) trials. Since such a precise measure cannot be achieved for the algorithm itself, it is usually assumed that the name of the algorithm is known by everybody. Correspondingly, encrypted message formats often begin with an additional header which plainly states which algorithm is used (such a header avoids many maintenance headaches, especially when several distinct algorithms are in use). |
|||||
|
|
No, It's NOT possible. Output of a cryptography algorithm should be like an output of a pseudo random number generator. There is no any identification to identify it. If it's possible the cryptography algorithm is NOT a good cryptography algorithm. |
|||
|
deflatealgorithm guards against a too much inflation, using only a small fixed overhead in case of non-compressible data.) – Paŭlo Ebermann♦ Jul 15 '11 at 15:31