Cryptography

Description

The concept of making the Cryptography Set was drawn from our members’ interest in encoding/decoding messages sent over connections through special methods, and be made into a competitive environment through “Capture the Flag” competitions in the cyberspace. This is generally known as Cryptography.

Purpose

To spread general knowledge of Cryptography! We will include several sections (modules) for learning the different types of Ciphers and spread knowledge of ciphers to the world so that everyone can learn.

We will include these sections (not limited to):

  • Caesar Ciphers (rot13) # DONE
  • Vigenere Ciphers # ABORT
  • Substitution Ciphers # DONE
  • Hexadecimal encoding
  • Binary
  • SHA1 and SHA256 encryption # REPLACE WITH RSA

ADDED: MORSE

Each section will have explanations of the ciphers, examples, and practice problems.

Additionally, one of our bigger endeavors will be making an AI dedicated and trained to decipher any string of text, regardless of what cipher/hash was used to encrypt the information. The AI will also be able to encode user-given text based on whatever cipher the user wants (this is an easier task).

Technical Elements

Frontend

Frontend will be developed using a Github Pages site, including Utterances comments to be made available and JS Plugins. Each different module will be in its separate ipynb notebook file and be available from the frontpage for easy access.

The Utterances comments will allow users to interact with each other on the site, somewhat like a forum, and ask/answer each other’s questions. JS Plugins/CSS will make the site look more appealing in general, and allow addition of built-in quizzes to test user knowledge after reading through information in the modules.

We will be using numerous buttons and text boxes as well on the site, made wth JS. Users can use these to input text and have options to encode/decode with specific ciphers/hashes.

Backend

As aforementioned, users can input text to be encoded/decoded. From the frontend, the user input will be sent to the Backend running on a Python Flask server. The Flask server will contain all encode/decode Python programs in files to be run when the user submits their requests.

Additionally, the AI model will also run on the backend Flask server, using a .csv data file to be trained on the different ciphers to decode. Then the main AI python file can be run and output can be sent back to the Frontend displayed using JS.

Division of the task

Hayden: Frontend Tarun: Backend Shuban: Backend Deva: Frontend

These are just temporary installations of jobs. If necessary, we may be able to adapt and combine our respective expertise areas to assist each other along the way in this large project.

Testing

After the creation of this project, we will have plenty of test runs with the AI decoding/encoding and make edits as necessary. We will also make sure all the quizzes and modules are working properly to ensure smoother user experience and create aesthetic looks for the site. In addition, we will have connectivity tests to make sure the data is flowing smoothly both ways from Frontend to Backend.

More changes/features will be made as necessary to this plan as we begin to build the project. Once the site is built, we will publish our site for the world to use and gather any comments/reviews to improve on.

Documentation

Errors/Solutions to be added along the way