ODU Digital Commons Old Dominion University - ODU ...

Page created by Russell Dennis
 
CONTINUE READING
ODU Digital Commons Old Dominion University - ODU ...
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