Search code examples
encryptioncryptographyvigenere

improved Vigenere Cipher


so I understand that Vigenere Cipher can be cracked, without key, by using frequency analysis and there are some clever ways to get the key length. My question is what if we encrypt the ciphertext again with a different set of keys? All methods I've seen at obtaining the key length so far relies on frequency analysis of some sort. The first round of encryption should give a pretty even distribution of letters, so if we encrypt it again, then it should be disable any method that try to decrypt without the key. Would this make it unbreakable?


Solution

  • No, hypothetically we can still apply frequency analysis on the new ciphertext, as the Vigenere cipher is still broken. You simply make it more difficult for an attacker to perform analysis, but all you're adding is a layer of obfuscation. This doesn't magically patch broken ciphers unfortunately.

    Example, say we have a plaintext and encrypt it twice, using different keys

    plaintext  stackoverflow
    key1       heapunderflow
    key2       cryptographic
    ciphertext boygxpezizdku
    

    This would be equal as first encrypting key1 with key2 and then using that output as a key on the plaintext

    key1       heapunderflow
    key2       cryptographic
    key3       jvyenbjvruswy (ciphertext of key1-key2 encryption)
    
    plaintext  stackoverflow
    key3       jvyenbjvruswy
    ciphertext boygxpezizdku
    

    Of course, then we could still apply analysis. When the key is truly random, as long as the plaintext and only used once, only then is the Vigenere cipher hypothetically unbreakable, however, then the key provides the cryptography strength, not the cipher, in which scenario we refer to the system as a one-time pad.