Skip to content

πŸ”πŸ“œ Dive into cryptography with this OTP (One-Time Pad) encryption tool! πŸ”„ Using substitution ciphers, it shuffles ASCII characters for encryption/decryption. πŸ“‹ Features a menu to generate keys πŸ—οΈ, display mappings πŸ”€, & handle tasks. πŸ› οΈ 🌟 Future: GUI πŸ–±οΈ & key storage! πŸ–₯οΈπŸ”’

Notifications You must be signed in to change notification settings

JasonRafferty/Encryption_Program

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Encryption Program | Project 2

Intro

For my second venture, I'm diving into the world of cryptography with an encryption program! πŸŒπŸ” This program harnesses the power of OTP encryption (One-Time Pad Encryption) πŸ“œβœ¨. OTP is a formidable encryption technique that stands uncrackable πŸ›‘οΈ, but there's a catch! It demands a one-time pre-shared key πŸ”‘ for the magic to happen.

Menu Functionality

The menu denoted in figure 1 presents four distinct options. To initiate the process, a new key must be generated. This key is derived using a substitution cypher that shuffles ASCII characters. Characters between 0 and 31 are excluded from the encryption program as are control characters. These characters are not printable symbols like letters, numbers, or punctuation marks.

Diagram

Figure 1: Encryption Interface

Get Key πŸ—οΈ

In Figure 2, the program clearly displays the original ASCII sequence alongside its shuffled version and can be called at any time using the "Get Key" functionality.

Diagram

Figure 2: ASCII Sequence with Coresponding Encryption

Encryption and Decryption

For encryption, let's consider the example in Figure 3 with the input "Hello World!". The program employs a substitution cypher that relies on the previously generated key πŸ”‘. During the encryption process, the program replaces characters in the input message with corresponding characters from the key. This replacement is determined by the positions of the characters in the original ASCII sequence. The result is a transformed message that's as secure! πŸ”

Diagram

Figure 3: Encryption Demo

During decryption, the process is reversed: characters from the encrypted message are matched with the key and then reverted to their original form. The key is central to both processes, ensuring that only someone with the correct key can accurately decrypt an encrypted message.

Conclusion

This being my second project, I've delved deeper into the intricacies of software development, especially with the inclusion of error handling to ensure a seamless user experience πŸ› οΈ. As I look to the future, I'm excited about the prospect of adding a graphical user interface (GUI) to make the tool even more user-friendly and interactive as I gain more experience. πŸ–₯️ Additionally, I aim to introduce features that enable users to save and retrieve encryption keys, facilitating decryption across different sessions or devices.

About

πŸ”πŸ“œ Dive into cryptography with this OTP (One-Time Pad) encryption tool! πŸ”„ Using substitution ciphers, it shuffles ASCII characters for encryption/decryption. πŸ“‹ Features a menu to generate keys πŸ—οΈ, display mappings πŸ”€, & handle tasks. πŸ› οΈ 🌟 Future: GUI πŸ–±οΈ & key storage! πŸ–₯οΈπŸ”’

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages