It's more a theoretical question of how would you approach it. All you know about the ciphertext it's was generated with a historical cipher. The ciphertext appears to be random, BUT it's divided into sets of six letters. By historical ciphers I mean: mono (Ceasar), polyalphabetic (Vigenere), homophonic or polygraphic ciphers (Playfair, HillCipher).

I interested what methods would you use (Kasiski, Friedman, what else) and why and in what order to make the attack the most efficient (Friedman first?)

  • 1
    $\begingroup$ Do you know, for example, that the plaintext is english language? Or could be plaintext be anything? $\endgroup$
    – mikeazo
    Apr 24, 2013 at 11:23
  • $\begingroup$ Yes it's definitely English, only letters. $\endgroup$
    – Adam
    Apr 24, 2013 at 11:29

1 Answer 1


If you don't know the system, you just check one after the other:

  • frequency analysis of bigrams detects Ceasar and Playfair. Try Caesar first then Playfair.
  • Auto correlation method for Vigenere (for each x: count the number of occurances, where letter at position i and i+x are equal. For the correct codeword length, it will spike)
  • If you have a Hill cipher, you lost.
  • $\begingroup$ I'd do them in a slightly different order, just based on ease of the tasks: Caesar first, then Vigenere, then looking at bigrams for Playfair. I hope he has a lot of ciphertext if it's Playfair. $\endgroup$ Apr 26, 2013 at 18:51
  • 2
    $\begingroup$ The Hill cipher isn't exactly unbreakable either. (Mind you, that question concerns a known-plaintext attack, but you could always do crib-dragging. Actually, it might be possible to use frequency analysis and linear algebra for a direct ciphertext-only attack... need to think about that a bit more.) $\endgroup$ Apr 27, 2013 at 17:33
  • 2
    $\begingroup$ >> If you have a Hill cipher, you lost. see this article for Hill: eprint.iacr.org/2015/802 $\endgroup$
    – user26165
    Aug 15, 2015 at 8:20

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.