DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Організація

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2018
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Захист інформації в комп’ютерних системах

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки Національний університет „Львівська політехніка” Кафедра EОМ Звіт з лабораторної роботи № 4 з дисципліни: “ Захист інформації в комп’ютерних системах ” Організація стегоканалу в BMP-файлі Варіант 3 2018 Тема: Організація стегоканалу в BMP-файлі Мета: Ознайомитися з поняттям стеганографії та проаналізувати можливості організації стегоканалу в ВМР-файлі Завдання: Створити програму, що реалізує довільний перестановочний шифр. Підготувати і захистити звіт, в якому обов’язково навести алгоритм роботи даного перестановочного шифру. Хід роботи: Код реалізації алгоритму package sample; import javafx.scene.image.PixelReader; import javafx.scene.image.PixelWriter; import javafx.scene.image.WritableImage; import javafx.scene.paint.Color; public class ImageWorker { public enum State { Hiding, Filling_With_Zeros }; public static WritableImage embedText(String text, WritableImage bmp) { State state = State.Hiding; int charIndex = 0; int charValue = 0; int pixelElementIndex = 0; int zeros = 0; double R, G, B; for (int i = 0; i < bmp.getHeight(); i++) { for (int j = 0; j < bmp.getWidth(); j++) { PixelReader pixelReader = bmp.getPixelReader(); Color pixel = pixelReader.getColor(j, i); R = pixel.getRed() - pixel.getRed() % 2; G = pixel.getGreen() - pixel.getGreen() % 2; B = pixel.getBlue() - pixel.getBlue() % 2; for (int n = 0; n < 3; n++) { if (pixelElementIndex % 8 == 0) { if (state == State.Filling_With_Zeros && zeros == 8) { if ((pixelElementIndex - 1) % 3 < 2) { PixelWriter pxl = bmp.getPixelWriter(); pxl.setColor(j, i, Color.color(R, G, B)); } return bmp; } if (charIndex >= text.length()) { state = State.Filling_With_Zeros; } else { charValue = text.charAt(charIndex++); } } switch (pixelElementIndex % 3) { case 0: { if (state == State.Hiding) { R += charValue % 2; charValue /= 2; } } break; case 1: { if (state == State.Hiding) { G += charValue % 2; charValue /= 2; } } break; case 2: { if (state == State.Hiding) { B += charValue % 2; charValue /= 2; } PixelWriter pxl = bmp.getPixelWriter(); pxl.setColor(j, i, Color.color(R, G, B)); } break; } pixelElementIndex++; if (state == State.Filling_With_Zeros) { zeros++; } } } } return bmp; } public static String extractText(WritableImage bmp) { int colorUnitIndex = 0; double charValue = 0; String extractedText = new String(); for (int i = 0; i < bmp.getHeight(); i++) { for (int j = 0; j < bmp.getWidth(); j++) { PixelReader pixelReader = bmp.getPixelReader(); Color pixel = pixelReader.getColor(j, i); for (int n = 0; n < 3; n++) { switch (colorUnitIndex % 3) { case 0: { charValue = charValue * 2 + pixel.getRed() % 2; } break; case 1: { charValue = charValue * 2 + pixel.getGreen() % 2; } break; case 2: { charValue = charValue * 2 + pixel.getBlue() % 2; } break; } colorUnitIndex++; if (colorUnitIndex % 8 == 0) { charValue = reverseBits((int)charValue); if (charValue == 0) { return extractedText; } char c = (char)charValue; extractedText += c; } } } } return extractedText; } public static int reverseBits(int n) { int result = 0; for (int i = 0; i < 8; i++) { result = result * 2 + n % 2; n /= 2; } return result; } } / Рис. 1. Процес приховування тексту в зображенні / Рис. 2. Текст після декодування Висновок На даній лабораторній роботі я ознайомився з поняттям стеганографії та проаналізував можливості організації стегоканалу в ВМР-файлі, також я розробив програмну реалізацію стегоканалу використовуючи LSB-метод.
Антиботан аватар за замовчуванням

24.11.2018 18:51

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!