Практическая реализация стеганографических методов на уроках по изучению программирования
Задачи и цели изучения стеганографических методов при изучении программирования. Компьютерная стеганография на основе использование регистра букв. Метод сокрытия информации в служебных полях формата. Способы обнаружения скрытой информации в системах.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 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
...Подобные документы
Принципы компьютерной стеганографии. Классификация методов сокрытия информации. Популярность метода замены наименьшего значащего бита. Сущность методов расширения палитры и блочного сокрытия. Применение методов в GIF изображениях. Реализация алгоритмов.
курсовая работа [589,7 K], добавлен 17.02.2013Классическое, компьютерное и цифровое направления стенографии. Использование зарезервированных полей компьютерных форматов файлов. Алгоритмы встраивания скрытой информации. Стеганография и цифровые водяные знаки. Документация программного продукта.
курсовая работа [37,7 K], добавлен 22.06.2011Проблема защиты информации от несанкционированного доступа, основные направления ее решения (криптография и стеганография). Методы классической и цифровой стеганографии, стегосистемы. Классификация методов компьютерной стеганографии и их характеристика.
курсовая работа [332,3 K], добавлен 26.11.2013Понятие и сущность стеганографии, использование свойств формата файла-контейнера. Классификация методов стеганографии. Компьютерные вирусы и стеганография, гарантированное уничтожение информации. Методы воздействия на средства защиты информации.
контрольная работа [80,2 K], добавлен 02.01.2018Создание работоспособного приложения, обеспечивающего сокрытие информации произвольного размера в файле формата JPEG и доступ к уже имеющейся информации. Определение основных понятий стеганографии. Структура файла формата JPEG. Метод сокрытия данных.
курсовая работа [57,5 K], добавлен 30.03.2009Изучение понятия и основных задач стеганографии - науки, изучающей способы и методы сокрытия информации. Характеристика метода замены наименее значащих битов для bmp файлов. Реализация метода замены НЗБ для bmp файлов на языке программирования Java.
курсовая работа [149,2 K], добавлен 13.02.2013Решение задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях. Компьютерная реализация выбранных задач нелинейного программирования в среде пакетов Excel и Matlab.
дипломная работа [2,9 M], добавлен 25.01.2013Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal.
курсовая работа [275,9 K], добавлен 22.12.2011Получение изображения объекта с помощью оптико-электронных систем, построенных на основе ПЗС-приемника. Методы обработки первичной измерительной информации. Реализация алгоритма обработки графической информации с помощью языка программирования Python.
лабораторная работа [1,1 M], добавлен 30.05.2023Особенности задач линейного программирования. Симплексный метод решения задач линейного программирования. Обоснование выбора языка, инструментария программирования, перечень идентификаторов и блок-схема алгоритма. Логическая схема работы программы.
дипломная работа [2,4 M], добавлен 13.08.2011Особенности решения задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях нелинейного программирования. Общая характеристика классических и числовых методов решения.
дипломная работа [2,4 M], добавлен 20.01.2013Векторная компьютерная графика. Графические примитивы. Графические возможности языка программирования Pascal. Методические рекомендации к изучению графики в языке программирования Pascal. Построение графиков функций.
курсовая работа [28,3 K], добавлен 13.06.2007Оптимизационная задача линейного программирования. Виды задач линейного программирования. Принятие решений на основе количественной информации об относительной важности критериев. Выбор средств разработки. Программный комплекс векторной оптимизации.
дипломная работа [1,3 M], добавлен 27.03.2013Изучение символьных и строковых типов данных, алгоритма задачи на языке программирования Паскаль. Описания получения и установки отдельного символа строки, изменения регистра символов. Анализ создания и просмотра файла, поиска и сортировки информации.
курсовая работа [440,7 K], добавлен 13.06.2011Цели и задачи дисциплины "Технология программирования". Программные средства ПК. Состав системы программирования и элементы языка. Введение в систему программирования и операторы языка Си. Организация работы с файлами. Особенности программирования на С++.
методичка [126,3 K], добавлен 07.12.2011Изучение методов обеспечения безопасности информации. Основные подходы к построению и анализу защищенных систем. Описание комплекса организационно-технологических и программно-технических мер по обеспечению защищенности информации в компьютерной системе.
реферат [1,1 M], добавлен 16.11.2010Применение методов линейного программирования для решения оптимизационных задач. Основные понятия линейного программирования, свойства транспортной задачи и теоремы, применяемые для ее решения. Построение первичного опорного плана и системы потенциалов.
курсовая работа [280,8 K], добавлен 17.11.2011Основы теории численной оптимизации переменной метрики. Создание модуля, содержащего реализацию методов переменной метрики (метод Бройдена, метод Дэвидона – Флетчера – Пауэлла), практическая реализация программы для работы с исследуемым модулем.
курсовая работа [308,0 K], добавлен 17.03.2013Представление числовой информации с помощью систем счисления. Кодирование символьной, текстовой, числовой и графической информации. Устройство жесткого диска; дисковод компакт-дисков CD-ROM. Использование главного меню Windows; языки программирования.
контрольная работа [62,9 K], добавлен 16.03.2015Изучение классов и методов языка программирования C#. Реализация программирования математических задач. Поиск корня на монотонном интервале квадратичного полинома. Ручной подсчёт отладочного варианта. Заполнение массива, хранящего информацию о студентах.
курсовая работа [752,1 K], добавлен 27.02.2015