AAU Student Projects - visit Aalborg University's student projects portal
A professional bachelor's project from Aalborg University
Book cover


Steganography and Cryptography in Digital Images

Translated title

Steganografi og kryptografi i digitale billeder

Authors

; ; ; ;

Term

1. semester

Publication year

2025

Submitted on

Pages

45

Abstract

Denne opgave undersøger, hvordan steganografi og kryptografi kan kombineres i en brugervenlig applikation, der skjuler og henter tekstbaserede beskeder i digitale billeder med fokus på fortrolighed. Udgangspunktet er problemformuleringen om at udvikle et praktisk værktøj, der både skjuler kommunikationens eksistens (via steganografi) og beskytter indholdet (via AES-kryptering). Teorien omfatter LSB-steganografi, billedformater og komprimering med vægt på tabsløse formater som PNG for at bevare data, samt sikkerhedsovervejelser. Implementeringen er udført i Python med biblioteker som Pillow og PyCryptodome; beskeder krypteres med AES og indlejres i PNG-billeder ved brug af LSB. Euclids algoritme anvendes til at fordele de skjulte data på tværs af billedet for at reducere mønstre og sikre pålidelig udtrækning. Projektet bygger på litteratur- og kodereview, objektorienteret udvikling og iterative prototyper (StegoV1 og StegoV2 med forbedret dekodning og tilføjet AES). Rapporten diskuterer afvejninger mellem sikkerhed, detekterbarhed, kapacitet og ydeevne samt peger på begrænsninger og fremtidige forbedringer.

This thesis examines how steganography and cryptography can be combined in a user-friendly application to hide and retrieve text-based messages in digital images, with confidentiality as the central priority. It addresses the problem of securing both the existence and the content of communication by pairing image steganography with AES encryption. The theoretical framework covers LSB techniques, image file formats and compression—favoring lossless PNG for data integrity—and key security considerations. The implementation uses Python with libraries such as Pillow and PyCryptodome; messages are AES-encrypted and embedded into PNG images using LSB. Euclid’s algorithm is applied to distribute hidden bits across the image to reduce detectable patterns while enabling reliable extraction. The project methodology includes literature and code review, object-oriented development, and iterative prototypes (StegoV1 and StegoV2 with improved decoding and added AES). The report discusses trade-offs among security, detectability, capacity, and performance, and outlines limitations and directions for future improvement.

[This abstract was generated with the help of AI]