Skip to content

htr-tech/Vigenere-Decoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Vigenère Cipher Decoder
Decode / Bruteforce Vigenere cipher text using the Flag Format!!

Demo

~$ time

Script & Source Time Taken
Brutes Each Char (example Dir) 60 Minutes
Vigenère Cipher Decoder (This) 0.484 Seconds

vigenere.py -c "RymJHS{XQ_MOWF_TTXU_DBHQBIZR?}" -t "CatCTF"

~$ cat usage.txt:

  • Simply clone the repository. Only python should be installed in your system.

    $ git clone https://github.com/htr-tech/Vigenere
    $ cd Vigenere
    $ python vigenere.py

    Ouput (Interactive Menu)

     _    _ _
    | |  | (_)
    | |  | |_  ____  ____ ____   ____  ____ ____
     \ \/ /| |/ _  |/ _  )  _ \ / _  )/ ___) _  )
      \  / | ( ( | ( (/ /| | | ( (/ /| |  ( (/ /
       \/  |_|\_|| |\____)_| |_|\____)_|   \____)
             (_____|                @htr-tech
    
    Input Cipher Text: RymJHS{XQ_MOWF_TTXU_DBHQBIZR?}
    Known/Flag Format: CatCTF
    
    Possible Key: python
    Possible Flag: CatCTF{IS_THIS_EVEN_POSSIBLE?}
    
  • You can also use command line argument to run this script.

    usage: vigenere.py [-h] [-c CIPHER] [-t TEXT]
    
    options:
      -h, --help            show this help message and exit
      -c CIPHER, --cipher CIPHER
                            cipher text
      -t TEXT, --text TEXT  known text / flag format

~ $ cat faq.txt

  • What is Vigenère Cipher:

    Vigenère cipher is a polyalphabetic encryption algorithm. It is a method of encrypting alphabetic text using a series of different Caesar ciphers based on the letters of a keyword.

    It is considered a stronger cipher than the Caesar cipher because it uses longer keys that allow the letters to be encrypted in multiple ways, making frequency analysis less effective.

  • What does this script do?

    This script allows you to decrypt a Vigenere cipher by providing the known part of the plaintext or flag format. It uses a Decoder class to decode the ciphered text with a given key, and a BruteForcer class to attempt to find the decryption key by comparing the flag format with the decrypted text. More details are commented inside the script.

  • More to be added...

~$ ./social: