ODU Digital Commons Old Dominion University - ODU ...
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Old Dominion University ODU Digital Commons 2021 Virtual Undergraduate Research Undergraduate Research Symposium Symposium Mar 20th, 12:00 PM - 12:55 PM Encryption and Decryption with a Raspberry Pi Device Taylor Powell Old Dominion University Follow this and additional works at: https://digitalcommons.odu.edu/undergradsymposium Part of the Information Security Commons Powell, Taylor, "Encryption and Decryption with a Raspberry Pi Device" (2021). Undergraduate Research Symposium. 18. https://digitalcommons.odu.edu/undergradsymposium/2021/sciences/18 This Oral Presentation is brought to you for free and open access by the Student Works at ODU Digital Commons. It has been accepted for inclusion in Undergraduate Research Symposium by an authorized administrator of ODU Digital Commons. For more information, please contact digitalcommons@odu.edu.
Encryption and Decryption with a RasPi Device Taylor Powell ODU Undergraduate Research Symposium 20 March 2021 Leaders For Life This We’ll Defend
Project Overview • Develop a program which allows the user to explore a number of historically significant and simple modern encryption and decryption methods: – Caesar Cipher – A Modified Vigenere Square – Stream Cipher – Steganography Leaders For Life This We’ll Defend
Decision Tree Cipher Choice Caesar Vigenere Stream Encrypt or Decrypt Encrypt Decrypt Input Choice Command .txt File .png Image Prompt Output Choice Command .txt File .png Image Prompt Leaders For Life This We’ll Defend
Decision Tree • The user can choose from: – 3 cipher types – encryption or decryption – 3 input types for encrypted messages (1 input type for unencrypted messages) – 3 output types for encrypted messages (decrypted messages are only printed to the command prompt) • Total of 21 Different User-selected paths Leaders For Life This We’ll Defend
Caesar Cipher • Operates on the principle of shifting letters a set number of values to create a simple encryption. – Relatively insecure and easy to defeat with analysis of common phrases. – Similar in principle to the popular “Cryptogram” game found in newspapers Leaders For Life This We’ll Defend
Caesar Cipher • For this program, I convert each character into its ASCII value and perform the manipulation on this value. – This means the encryption acts on all the standard characters, numerals, punctuation, and special characters encoded with an ASCII value. Leaders For Life This We’ll Defend
Vigenere Square • Similar in principle to the Caesar cipher, however the “shift” is determined by a code word or phrase – More difficult to exploit, especially as the length of the code word or phrase increases – For a randomized code phrase equal in length to the message, the encrypted message is secure as long as the code remains secret Leaders For Life This We’ll Defend
Vigenere Square • As with the Caesar Cipher, this program uses the ASCII values of the message and the key to manipulate the text, resulting in a more complex cipher which is more resistant to frequency analysis decryption methods Leaders For Life This We’ll Defend
Stream Cipher • Works on the principle of bit-by-bit encryption. The characters of the message are broken down into bits, then combined with a bit key in an addition modulo-2 operation (Also known as XOR) • This type of encryption is called a “symmetric key” algorithm, since the message is encrypted and decrypted using the same key Leaders For Life This We’ll Defend
Stream Cipher • For this program, I used Python’s library ‘secrets’ to generate a random sequence of 0’s and 1’s equivalent to the bit-length of the message to encrypt. • This key is then stored for use in the decryption Leaders For Life This We’ll Defend
Steganography • Steganography is the hiding of information in media • Of specific interest, I am subtly manipulating the red pixel value of an image to encode information R G B 11100101 { 0 1 Leaders For Life This We’ll Defend
Steganography • For each pixel, I alter the least significant bit of the red pixel to encode one bit of the encrypted text • It therefore takes 8 pixels to store the text for 1 encrypted character R G B 11100101 { 0 1 Leaders For Life This We’ll Defend
Steganography • To allow the program to know the length of the message, the first 64 pixels are used to store an integer (can handle an integer up to 999,999), which specifies the total length of the encrypted message Leaders For Life This We’ll Defend
Future Ideas • Enhance the security of the encoding into photos with techniques to obscure the information • Implementing a public-key type encryption algorithm • Working with different media types (audio files, Sudoku solution encryption, etc) • Increasing redundancy to accommodate lossy-compression methods such as .jpg Leaders For Life This We’ll Defend
Works Cited • Malik, D. S. C++ Programming: From Problem Analysis to Program Design, Sixth Edition. (2013) • Guzidal, M. J. and B. Ericson. Introduction to Computing and Programming in Python, Third Edition. (2013) • Alex. LearnCpp. www.learncpp.com. • Wikipedia. www.wikipedia.com. • Sunitamamgai. GeeksForGeeks. “Python putpixel() method.” www.geeksforgeeks.com. Leaders For Life This We’ll Defend
You can also read