/Cipher-Sphere

πŸ•΅οΈβ€β™€οΈ an implementation of the Dell Hackathon game steganography

Primary LanguageJupyter NotebookMIT LicenseMIT

Cipher Sphere

logo

β€πŸ¦Š Fox VS Eagle πŸ¦…β€œ


Table of Contents


Overview

  • Our solution for Dell Hacktrick 2024
  • This project ranked 5th place among 35 teams in leaderboard.
  • Built using Python.
  • Game Description
    • Firstly: The Fox. Mischievous, and sly, the Fox uses all its tactics to fool the Eagle and try to send the message through to the parrot using steganography. As the Fox, you’ll have the opportunity to invest your time wisely into honing your skills and creating distractions to increase your chances of evading the Eagle’s watchful gaze.
    • Second: The Eagle. Sharp-eyed and vigilant, the Eagle uses its attentiveness to try to intercept and decode the messages sent without getting fooled. Beware of the Fox’s devious tricks, for Fake messages may cross your path. Your mission is to distinguish truth from deception, ensuring that only genuine messages are intercepted while avoiding costly mistakes. The parrot represents the game administrator that receives the messages and scores both ends accordingl


How To Run

pip install -r requirements.txt
  • Folder Structure
β”œβ”€β”€β”€ data
β”œβ”€β”€β”€ Documentation
β”‚   β”œβ”€β”€ API Documentation.pdf
β”‚   β”œβ”€β”€ Hackathon General Documentation.pdf
β”‚   └─── Riddles Documentation.pdf
β”œβ”€β”€β”€ Eagle
β”‚   β”œβ”€β”€ eagle.py
β”‚   β”œβ”€β”€ Eagle_submission_script.ipynb
β”‚   β”œβ”€β”€ BiLstm_code.ipynb
β”‚   └─── GRU_code.ipynb
β”œβ”€β”€β”€ Solvers
β”‚   β”œβ”€β”€β”€ fox_submission_solver.py
β”‚   └─── eagle_submission_solver.py
....

Modules

Fox Module

  1. The primary objective for the Fox is to send the secret message to the parrot, encoded through steganography, while devising a strategic game plan to outsmart the Eagle and prevent it from intercepting the message.
  2. For each game, you will be provided with a message of a specific length and an image to use for encoding the messages. During the first phase, the message length is fixed to 20 characters.
  3. The game is played in chunks (anything between 1 and 20). In every chunk, there are 3 channels that concurrently carry your messages. The messages can be one of the following 3 types:
    • Real: These messages are part of the original message intended for transmission.
    • Empty: These are Empty messages.
    • Fake: These are Fake messages used to deceive the Eagle. Unlocking this feature requires solving riddles

  4. logo

  5. Riddles: Whenever you successfully solve a riddle, you will receive a specific reward based on the difficulty level of the riddle. The rewards for each difficulty are as follows:
    Riddle Type Budget
    Easy A budget of 1 Fake message
    Medium A budget of 2 Fake message
    Hard A budget of 3 Fake message
    There is a total of 10 different riddles:
    • 2 Security Riddles (medium and hard).
    • 3 Computer Vision Riddles (easy, medium, and hard difficulties)
    • 2 Machine Learning Riddles (easy and medium difficulties).
    • 3 Problem Solving Riddles (easy, medium, and hard difficulties).

  6. logo

Eagle Module

  1. As previously mentioned, there are three channels through which messages are sent simultaneously at a time. The channels receive messages in the same order sent by the Fox. However, you can only intercept one channel at a time, which means you will miss the messages sent on the other two channels.
  2. To assist in this identification process, you receive three footprints at a time, with each footprint corresponding to one of the three channels. These footprints indicate whether the message on a specific channel is Real, Fake, or Empty. By analyzing the footprints, you can determine which message is genuine and request it from that channel. However, be cautious, as requesting a message that is Empty or Fake would result in a penalty and could lead to missing a Real message altogether!
  3. Each footprint is a visual representation of an audio file, one for each channel. Your task is to identify the word represented, being one of: ”Dell”, Fooled, or just an Empty audio with some random noise. Rather than working directly with raw audio files, we’ve transformed them into spectrograms with fixed dimensions (Tx, Nfreq).

  4. logo

  5. Once you have requested and received a message, you need to decode it using the Least Significant Bit (LSB) method explained earlier and submit the decoded message. The accuracy of the submitted message will be verified and contribute to your score. It is crucial to remember that after requesting a message, you must submit a message in response. Failure to do so will cause the game to enter a frozen state until the timeout is reached, and the game ends.

  6. logo

Contributors


Nour Almulhem


Ahmed Madbouly


Ahmed Hany


Mohamed Nasser


Eslam Ashraf

πŸ”’ License

Note: This software is licensed under MIT License, See License for more information Β©nouralmulhem.