Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

please help and add comments, Thank you Encryption is a process of converting a message, image, or any other form of data into encoded data

please help and add comments, Thank you image text in transcribed
image text in transcribed
image text in transcribed
Encryption is a process of converting a message, image, or any other form of data into encoded data that can only be decoded by someone who can decrypt the message (usually with a key or the like). The science of writing secret codes is called cryptography. For thousands of years, cryptography has made secret messages that only the sender and recipient could read, even if someone captured the messenger and read the coded message. A secret code system is called a cipher. A good encryption algorithm should produce output that looks random to a bystander but is easily decipherable with the correct key. Thus, encryption algorithms make use of pseudo-random encryption keys. Let's start with some definitions: - Encryption or Enciphering: the process of encoding messages to make them unreadable. This algorithm has two inputs: a plaintext and a secret key. - Decryption or deciphering: making encrypted messages readable again by decoding them (recovering the plaintext from ciphertext). - Cipher: an algorithm for performing encryption and decryption. - Plaintext: the original message. - Ciphertext: the encrypted message. Note: a ciphertext still contains all of the original message information, even if it looks nonsense. - Secret key: the same key used for encryption and decryption. - Cryptography: the science of studying ciphers. For this project, you need to develop a game that converts normal English words into secret codes. In order to convert, the program randomly applies an encryption algorithm to any given message. The algorithms you need to implement include Substitution Playfair Caesar Iransposition Product, and RSA ciphers. 1. Substitution cipher: replacing each letter of the alphabet in the plaintext with a different letter in the ciphertext. For example, if you want to encrypt the word 'Cat', you need to come up with a substitution for each plaintext letter to a ciphertext letter. For example, you may substitute the letter ' a ' with the letter ' o '. The rule is that the letter we substitute can only be used once. So, the letter ' o ' is crossed off as it has already been used. The same would be applied to all alphabetic letters. You can also substitute a letter with itself. If you are not familiar with this cipher, please visit: Substitution cipher The program contains different classes, such as a Message class with two derived classes, plaintextMsg, and ciphertextMsg. You may need to include more classes, methods, and attributes. The Message class contains attributes and methods that could be used to apply a cipher to a string, either to encrypt or to decrypt a message. The plaintextMsg class has attributes and methods to encrypt a message. The ciphertextMsg class contains a method used to decrypt a message. Once the encryption is performed your program needs to display the original message and the encrypted version of it. The program keeps asking the user for different messages to encrypt until the user inputs 'Stop'. Once the user asks for STOP, the program displays all the plaintext messages, the encrypted versions, and the applied method. Important Notes: - Make sure your program follows proper OOP rules (pythonic) that you learned in the course. Note that procedure-based programs are NOT accepted. - Please note that you never want to directly access attributes outside a class; thus, you need to define properties in order to work with attributes. Make sure you include proper exception-handling mechanisms when required. - The program needs to include all the concepts learned in the course (e.g., inheritance, operator overloading, exception handling, etc.). - Names chosen for classes, methods, and variables should effectively convey the purpose and meaning of the named entity. - The layout of your code should be readable and consistent. This means things like indentation, wrapping of long lines, the layout of parameter lists, etc. - Code duplication should be avoided by factoring out common code into separate methods. - Your program should handle exceptions correctly. The program contains different classes, such as a Message class with two derived classes, plaintextMsg, and ciphertextMsg. You may need to include more classes, methods, and attributes. The Message class contains attributes and methods that could be used to apply a cipher to a string, either to encrypt or to decrypt a message. The plaintextMsg class has attributes and methods to encrypt a message. The ciphertextMsg class contains a method used to decrypt a message. Once the encryption is performed your program needs to display the original message and the encrypted version of it. The program keeps asking the user for different messages to encrypt until the user inputs 'Stop'. Once the user asks for STOP, the program displays all the plaintext messages, the encrypted versions, and the applied method. Important Notes: - Make sure your program follows proper OOP rules (pythonic) that you learned in the course. Note that procedure-based programs are NOT accepted. - Please note that you never want to directly access attributes outside a class; thus, you need to define properties in order to work with attributes. Make sure you include proper exception-handling mechanisms when required. - The program needs to include all the concepts learned in the course (e.g., inheritance, operator overloading, exception handling, etc.). - Names chosen for classes, methods, and variables should effectively convey the purpose and meaning of the named entity. - The layout of your code should be readable and consistent. This means things like indentation, wrapping of long lines, the layout of parameter lists, etc. - Code duplication should be avoided by factoring out common code into separate methods. - Your program should handle exceptions correctly

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

The Database Management Systems

Authors: Patricia Ward, George A Dafoulas

1st Edition

1844804526, 978-1844804528

More Books

Students also viewed these Databases questions

Question

Write the code in R to compute misclassification error.

Answered: 1 week ago