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 DefendProject 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 DefendDecision 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 DefendDecision 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 DefendCaesar 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 DefendCaesar 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 DefendVigenere 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 DefendVigenere 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 DefendStream 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 DefendStream 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 DefendSteganography
• 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 DefendSteganography
• 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 DefendSteganography
• 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 DefendFuture 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 DefendWorks 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 DefendYou can also read