CS07552 Rowan University Steganography Coding in Python Project

User Generated




Rowan University


I am looking for a python 3.0 code that can run on jupyter notebook. The task is to encrypt a message using AES algorithm and hide it in an image using a LSB method and random key generator. In order to retrieve the hidden message and decrypt it, use AES to decrypt and same LSB and Random key generator to get back the message.

Please find the attached spec.There are links for the papers and youtube videos.

Unformatted Attachment Preview

Steganography Extended AES Project Specifications Benny Liang, Pawan Yajaman Lakshminarayan, Rithu Priya Tirupathi October 22, 2019 CS07552 - Cryptographic Algorithms Page 1 of 9 Table of Contents Overview…………………………………………………………………………………. 3 Encoding and Decoding Diagrams……………………………………………………. 4 Project Specifications…………………………………………………………………... 6 Sources Explored……………………………………………………………………….. 8 Page 2 of 9 Overview In this modern age, where data breaches seem to happen every other day, there are times when a person wants their data and their messages to be hidden. The obvious solution to this is to use encryption and obscure the message so preferably only the sender and the intended receiver can read it. However even with this obscuration, it is still possible (given enough time and resources) to decipher the message and intercept the contents. If someone has some message or some data that they do not want anyone else seeing, a good way to conceal it would be to hide it in plain sight. The purpose of this application is to conceal a secret message within an image in such a way that it is indiscernible to both the human eye and to common statistical analysis techniques. The application itself primarily uses a combination of the AES encryption and LSB steganography to distribute an encrypted message throughout an image. Although this method can be limited in the amount of information it can store, it should make it difficult to detect or break which is beneficial for smaller messages or data. Page 3 of 9 Encoding Diagram Page 4 of 9 Decoding Diagram Page 5 of 9 Project Specifications The project itself will be coded in python 3.7 using Jupyter Notebook. The libraries that will be used include PIL, NumPy, PyCrypto, Matplotlib, Scipy and OpenCV. In terms of concealing a message, the input will be an image (a 24 bit color JPEG was used for testing), a 32 byte key, and a message to conceal. The image itself will be evenly broken up into 8x8 pixel blocks and modifications will be done on a block by block basis. If the image does not break up exactly into 8x8 blocks, then the extra pixels will be skipped and unused. The message will be put through AES encryption using the key prior to being embedded into the image. That same 32 byte key will go through several transformations before feeding a permutation algorithm to determine which LSBs are used to embed the encrypted message. The transformations on the key serve two purposes. By using data from the image itself in these transformations and/or permutations, using the same key on different images will produce different results; reducing the predictability of this application. Secondly, this allows the message to be essentially cleared or erased if the image is ever edited. Although this makes the technique useless for digital watermarking applications, it could be seen as beneficial for passing secure messages. It should also be noted that since AES requires a block size of 128 bits, messages will need to be padded (probably with spaces at the end). This process can be done by the program but in doing so, it could remove data at the end of a message if it is the same as the padding character. For instance, the message “hello world” would be padded with 5 spaces at the end. However if the intended message was “hello world “ (with a space at the end), then it could be removed from the message if it was padded with spaces. Although the actual algorithm for permutation is yet to be decided. It will be an important part of this project as it will be choosing which 8x8 block to modify and which bytes to modify within it. It is necessary for this algorithm to produce seemingly random locations with a fairly even distribution. After the permutation algorithm selects a block, if it is appropriate and has not been modified, then it will embed an x number of bits using the LSB technique, as specified by the permutation. During this process, the program will keep track of the distribution of LSBs in the block and attempt to rebalance them at the end of a block. Page 6 of 9 Compared to the hiding of the message, the recovery should be fairly trivial. The input will be the modified image and the original 32 byte key. The key will be put through the same transformations used in the concealment and feed the same permutation algorithm to retrieve the embedded AES encoded message. The original 32 byte key is then used to decrypt the encoded message resulting in the original message. Page 7 of 9 Sources Explored Publications Ali, U A Md Ehsan & Sohrawordi, Md & Uddin, Md. Palash. (2019). A Robust and Secured Image Steganography using LSB and Random Bit Substitution. Hamid, Nagham & Yahya, Abid & Ahmad, R.Badlishah & Al-qershi, Osamah. (2012). Image Steganography Techniques: An Overview. International Journal of Computer Science and Security. 6. 168-187. Karim, S. M. Masud & Rahman, Md & Hossain, Md. (2011). A new approach for LSB based image steganography using secret key. 286-291. 10.1109/ICCITechn.2011.6164800. Nosrati, Masoud & Karimi, Ronak & Nosrati, Hamed & Nosrati, Ali. (2019). Embedding stego-text in cover images using linked list concepts and LSB technique. P. Marwaha and P. Marwaha. (2010). Visual cryptographic steganography in images. 2010 Second International conference on Computing, Communication and Networking Technologies, Karur, 1-6. Sumathi, C.P. & Santanam, T. & Umamaheswari, G.. (2014). A Study of Various Steganographic Techniques Used for Information Hiding. International Journal of Computer Science & Engineering Survey. 4. 10.5121/ijcses.2013.4602. Page 8 of 9 Websites/Videos https://www.geeksforgeeks.org/image-based-steganography-using-python/ https://stackoverflow.com/questions/12524994/encrypt-decrypt-using-pycrypto-aes-256 https://inst.eecs.berkeley.edu/~ee123/sp16/Sections/JPEG_DCT_Demo.html https://www.youtube.com/watch?v=BQPkRlbVFEs https://www.youtube.com/watch?v=TWEXCYQKyDc Links to the publications: Robust and Secured Image Steganography using LSB and Random Bit Substitution Image Steganography Techniques: An Overview A new approach for LSB based image steganography using secret key Embedding stego-text in cover images using linked list concepts and LSB technique Visual cryptographic steganography in images A Study of Various Steganographic Techniques Used for Information Hiding Python libraries PIL / Pillow NumPy PyCrypto Matplotlib Scipy OpenCV Page 9 of 9
Purchase answer to see full attachment
User generated content is uploaded by users for the purposes of learning and should be used following Studypool's honor code & terms of service.

Explanation & Answer

Attached is the answer for this question....

Just what I was looking for! Super helpful.