Throughout history, some cryptographic systems were broken by finding patterns in encrypted messages (like frequent chars in a particular language), and thereby discovering the cipher. These classic systems, which relied on algorithms unknown to the attacker, were broken by analyzing the messages and detecting patterns. This allowed attackers to induce the algorithm that was used.

The security of modern cryptography is based on a large key and applying non-reversible mathematics to a message to obtain an encrypted message. In these modern systems it is impossible to apply reverse engineering to a message because it requires more computational capacity than available.

Since there is currently a lot of storage capacity to store an giant amount of encrypted messages, knowing that it was generated with the same key and the same algorithm, it is not possible to analyze them, for instance by finding repetitive patterns, to be able to deduce the key?

  • 1
    $\begingroup$ In general, if the design of the algorithm is right, you can not find patterns, for instance in AES (until now), no such pattern was found. But, there are algorithms, for instance in RC4, where such patterns exist (see en.wikipedia.org/wiki/RC4). The "giant" store that you can make today I don't think that is really giant and capable for the cryptanalysis of modern cryptosystems. $\endgroup$
    – 111
    Jan 21, 2017 at 13:07
  • 1
    $\begingroup$ If you try really hard I can see $2^{64}$ (128 EiB) cipher texts being stored for analysis. However chances are you'll never see that many under a single key. Though this storage may be useful for some time-memory trade-offs chances are there are easier ways to get where you want (eg by "hacking" the participants or htting them with a wrench). $\endgroup$
    – SEJPM
    Jan 21, 2017 at 13:21

1 Answer 1


In general, no, you won't be able to find the key. The amounts of possible permutations that may be used by a block cipher is staggering. It's much higher than the key space itself. So without somehow breaking the algorithm you're out of luck.

Many cryptographic attacks require staggering amounts of storage to be even reasonably successful in bringing down the security of a cipher significantly. In that regard the increase of storage capacity is certainly beneficial. More storage capacity can certainly aid cryptanalysis. But that's something different as having a lot of pre-generated ciphertext.

Having lots of ciphertext can certainly aid attacks. Those attacks are however not so much on the block cipher itself - and, by implication the key - but on the mode of operation. Many modes of operation have maximum inputs or restrictions on their use. There are certainly protocols do not sufficiently take these into account. This can lead to repetition of blocks being used as input for the block cipher; this information can be used to leak information about the plaintext (rather than the key).

Stream ciphers are possibly more vulnerable against this kind of attack. There is no proof that these ciphers are secure so finding a pattern in a stream cipher may be somewhat easier than finding one in a block cipher. It's still not all that likely that you'd find a key though, other properties (such as the key stream being biased) are more likely to fail first.

It's very unlikely that you can find the key without performing an explicit attack on the cipher. Just looking for patterns isn't going to help you. Mercury isn't rising.

  • 1
    $\begingroup$ Mercury rising for those who didn't get it. ;) $\endgroup$
    – Biv
    Jan 22, 2017 at 0:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.