Практическая реализация стеганографических методов на уроках по изучению программирования

Задачи и цели изучения стеганографических методов при изучении программирования. Компьютерная стеганография на основе использование регистра букв. Метод сокрытия информации в служебных полях формата. Способы обнаружения скрытой информации в системах.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 21.02.2018
Размер файла 17,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Саратовский государственный университет им Н. Г. Чернышевского

Практическая реализация стеганографических методов на уроках по изучению программирования

кандидат наук, доцент, доцент Векслер Виталий Абрамович

Аннотация

В статье рассматриваются задачи и цели изучения стеганографических методов при изучении программирования. Приводится пример работ реализующих принципы LSB-стеганографии.

Стеганография -- это междисциплинарная наука и искусство передавать сокрытые данные, внутри других, не сокрытых данных. Скрываемые данные обычно называют стегосообщением, а данные, внутри которых находится стегосообщение называют контейнером [1].

Изучение стеганографии проходит в рамках дисциплин связанных с программированием и разбором криптографических принципов шифрования.

Классическая задача стеганографии -- передать данные таким образом, чтобы противник не догадался о самом факте появления сообщения и именно это и отличает ее от криптографии, в рамках которых известно что сообщение существует.

Учащиеся узнают, что на сегодняшний день учеными разработаны и опробованы различные алгоритмы и методы стеганографии, среди которых особо выделим следующие:

Компьютерная стеганография на основе использование регистра букв. Если нам необходимо спрятать букву "А" в тексте "stenography". Для этого берем двоичное представление кода символа "А" -- "01000001". Пускай для обозначения бита содержащего единицу используется символ нижнего регистра, а для нуля -- верхнего. Поэтому после накладывания маски "01000001" на текст "stenography", результат будет "sTenogrAphy". Окончание "phy" нами не использовано поскольку для сокрытия одного символа используется 8 байт (по биту на каждый символ), а длинна строки 11 символов, вот и получилось, что последние 3 символа "лишние". Исспользуя такую технологию можно спрятать в текст длинной N, сообщение из N/8 символов) [2].

LSB-стеганография (сообщение скрывается в младших битах (возможно использование одного или нескольких младших бит) контейнера. Чем меньше бит задействовано, тем меньше артефактов получает оригинальный контейнер после внедрения.

Метод, основанный на сокрытии данных в коэффициентах дискретного косинусного преобразования (далее ДКП) -- разновидность предыдущего метода, которая активно используется, например, при внедрении сообщения в контейнер формата JPEG. При прочих равных, такой контейнер имеет несколько меньшую емкость чем в предыдущем методе, в том числе за счет того, что коэффициенты «0» и «1» остаются неизменными-- внедрение сообщения в них невозможно.

Метод сокрытия информации при помощи младших бит палитры-- этот метод по сути является вариантом общего метода LSB, но информация встраивается не в наименее значащие биты контейнера, а в наименее значащие биты палитры, очевидный недостаток такого метода -- низкая емкость контейнера.

Метод сокрытия информации в служебных полях формата -- довольно простой метод, основанный на использовании служебных полей заголовка контейнера для хранения сообщения. Очевидные минусы -- низкая емкость контейнера и возможность обнаружения внедренных данных при помощи обычных программ для просмотра изображения (которые иногда позволяют видеть содержимое служебных полей).

Метод встраивания сообщения -- заключается в том, что сообщение встраивается в контейнер, затем при помощи схемы, известной обеим сторонам, извлекается. Можно встроить несколько сообщений в один контейнер, при условии, что способы их внедрения ортогональны.

Широкополосные методы, которые подразделяются на: метод псевдослучайной последовательности; используется секретный сигнал, который моделируется псевдослучайным сигналом; метод прыгающих частот: частота несущего сигнала меняется по определенному псевдослучайному закону.

Метод оверлея -- по сути не является настоящей стеганографией, основан на том, что некоторые форматы содержат в заголовке размер данных, или же обработчик этих форматов будет читать файл до маркера конца данных. Примером такого метода является хорошо известный метод «rar-jpeg», который основан на конкатенации графического файла в формате JREG и RAR-архива. ПО для просмотра JPEG будет считывать информацию до границы, указанной в заголовке файла, а RAR-архиватор откинет все, что находится до сигнатуры «RAR!», которая обозначает начало архива. Таким образом, если такой файл открыть в просмотрщике графических файлов -- мы увидим картинку, а если в RAR-архиваторе -- содержимое RAR-архива. Очевидные минусы такого подхода заключаются в том, что оверлей, добавленный к контейнеру, легко выделяем при визуальном исследовании такого файла [3]. компьютерный стеганография сокрытие информация

Цель изучения стеганографии в рамках дисциплин по программированию состоит в формировании знаний о современных принципах и методах сокрытия информации, умении применять полученные знания на практике, то есть обнаруживать скрытую информацию в различного рода системах, в том числе в аудио, видео и текстовой информации. В процессе изучения студент должен осознать современную роль стеганографических методов и важность комплексной защиты информации в работе организации или предприятия, а значит и ответственность, возлагаемую на персонал [4].

Учащимся третьего курса технических специальностей в рамках изучения дисциплины «Технология программирования» была предложена следующая задача.

Постановка задачи: Разработайте приложение на языке программирование C# для осуществления хранение информации методом стеганографии. Факт существования сообщения не должен привлекать к себе внимание.

Цель: Отработка практических навыков программирования. Создание криптографических и стеганографических моделей для решения поставленной задачи.

Базовый алгоритм: Разложение текста по последним битам красной кодировки (LSB-стеганография). Внедрение сообщения в графическое изображение.

Студенты выполнили предложенное задание. Приведем пример самой интересной реализации.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.IO;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace crypto

{

public partial class Form1 : Form

{

Bitmap bmp;

Bitmap bmpCry;

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e) //OPEN

{

// выбор рисунка в котором будет храниться информация

OpenFileDialog dialog = new OpenFileDialog();

dialog.Filter = "Image files (*.BMP, *.JPG, *.GIF, *.TIF, *.PNG, *.ICO, *.EMF, *.WMF)|*.bmp;*.jpg;*.gif; *.tif; *.png; *.ico; *.emf; *.wmf";

if (dialog.ShowDialog() == DialogResult.OK)

{

if (bmp != null)

{

bmp.Dispose();

pictureBox1.Image.Dispose();

}

if (bmpCry != null)

{

bmpCry.Dispose();

pictureBox2.Image.Dispose();

}

Image image = Image.FromFile(dialog.FileName);

int width = image.Width;

int height = image.Height;

bmp = new Bitmap(image, width, height);

pictureBox1.Image = bmp;

}

}

private void button2_Click(object sender, EventArgs e) //save

{

// сохранение рисунка с внедренным текстом

SaveFileDialog savedialog = new SaveFileDialog();

savedialog.Title = "Сохранить...";

savedialog.OverwritePrompt = true;

savedialog.CheckPathExists = true;

savedialog.Filter =

"Bitmap File(*.bmp)|*.bmp|" +

"GIF File(*.gif)|*.gif|" +

"JPEG File(*.jpg)|*.jpg|" +

"TIF File(*.tif)|*.tif|" +

"PNG File(*.png)|*.png";

if (savedialog.ShowDialog() == DialogResult.OK)

{

string fileName = savedialog.FileName;

bmpCry.Save(fileName);

}

}

// кодирование

private void button3_Click(object sender, EventArgs e)

{

// считывание текста для внедрение

string txt = textBox1.Text;

int len = Math.Min(txt.Length, 255);

bmpCry = (Bitmap)bmp.Clone();

if (len != 0 && bmp != null)

{

int n = bmp.Height;

int m = bmp.Width;

for (int i = 0; i < 8; i++)

{

Color p = bmp.GetPixel(i, n -- 1);

int a = p.A;

int r = p.R;

int g = p.G;

int b = p.B;

// внедрение бита в последний бит байта красного цвета

r = ((r & 254) | ((len & (1 << i)) > 0 ? 1 : 0));

p = Color.FromArgb(a, r, g, b);

bmpCry.SetPixel(i, n -- 1, p);

}

int x = 8;

int y = n -- 1;

for (int i = 0; i < len; i++)

{

int c = txt[i];

for (int j = 0; j < 8; j++)

{

if (x >= m)

{

y-;

x = 0;

}

Color p = bmp.GetPixel(x, y);

int a = p.A;

int r = p.R;

int g = p.G;

int b = p.B;

r = ((r & 254) | ((c & (1 << j)) > 0 ? 1 : 0));

p = Color.FromArgb(a, r, g, b);

bmpCry.SetPixel(x, y, p);

x++;

}

}

pictureBox2.Image = bmpCry;

}

}

//декодирование

private void button4_Click(object sender, EventArgs e)

{

string txt = "";

int len = 0;

bmpCry = (Bitmap)bmp.Clone();

if (bmp != null)

{

int n = bmp.Height;

int m = bmp.Width;

// вытаскиваем биты текста

for (int i = 0; i < 8; i++)

{

Color p = bmp.GetPixel(i, n -- 1);

int r = p.R;

len = len | ((r & 1) << i);

}

int x = 8;

int y = n -- 1;

for (int i = 0; i < len; i++)

{

int c = 0;

for (int j = 0; j < 8; j++)

{

if (x >= m)

{

y-;

x = 0;

}

Color p = bmp.GetPixel(x, y);

int r = p.R;

c = c | ((r & 1) << j);

x++;

}

txt += (char)(c);

}

txt.Reverse();

label1.Text = len.ToString() + " " + txt;

}

}

}

}

Таким образом, стеганография служит одним из ярких примеров «особого» шифрования который может быть использован на уроках по изучению программирования. В результате обучающийся начинает понимать методику сокрытия информации при передаче её по открытому каналу, методы и средства обнаружения скрытой информации, реализует представленные методы и алгоритмы на языке программирования, используя существующий инструментарий для обнаружения скрытой информации.

Список литературы

1. Стеганография // ВикипедиЯ. Свободная энциклопедия. URL: https://ru.wikipedia.org/wiki/Стеганография (дата обращения 02.11.2017)

2. Халилова С.Н., Гончарова О.Н. Современная стеганография// Проблемы информационной безопасности: Труды III Международной П781 научно-практической конференции, Симферополь-Гурзуф, 16-18 февраля 2017 г. Симферополь : ИП Зуева Т.В., 2017. 190 с.

3. Шульмин А., Крылова Е. Стегонография в современных киберотаках // Securelist. URL: https://securelist.ru/steganography-in-contemporary-cyberattacks/79090/ (дата обращения 07.11.2017)

4. Векслер В.А. Cодержание и организация обучения взрослых основам информационных технологий в системе дополнительного образования: региональный аспект // диссертация на соискание ученой степени кандидата педагогических наук / амур. гуманитар.-пед. гос. ун-т. Комсомольск-на-Амуре, 2009

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.