Текст для презентации - Компьютерные науки и

advertisement
Текст для презентации.
2)
Сколько существует человечество, столько существует и проблема
обмена информацией. С одной стороны люди стремятся общаться и
обмениваться друг с другом информацией, а с другой стороны стремятся
скрыть от посторонних не только суть информации, но и факт ее передачи.
Поэтому человечество интенсивно развивает как средства передачи, так и
средства сокрытия информации. Для сокрытия информации применяются
методы криптографии и стеганографии.
Криптография – наука о передаче информации
в виде защищенном от
третьих лиц.
Стеганография - система изменения информации с целью скрытия
самого факта существования секретного сообщения.
Стеганографической системой называется четверка <C,M,D,E>, где C –
множество контейнеров, M – множество секретных сообщений, |C| ≥ |M|, E :
C×M→ C – функция сокрытия и D : C → M – функция извлечения, причем
для всех m  M , c  C выполняется (E(c,m)) = m.
3)
Введем основные понятия стеганографии.
Контейнер - любая информация, предназначенная для сокрытия тайных сообщений.
Скрываемое (встраиваемое) сообщение – тайное сообщение, встраиваемое в
контейнер.
Стегоключ - секретный ключ, необходимый для скрытия (шифрования)
информации.
Стегоконтейнер – контейнер, содержащий встроенное сообщение.
Стеганографический канал (стегоканал) - канал скрытой передачи информации.
4)
В современном понимании стеганографическая система (или просто
стегосистема) – это совокупность средств и методов, которые используются
для формирования скрытого канала передачи информации.
Общий процесс стеганографии выражается простой схемой:
Контейнер + скрываемое сообщение + стегоключ = стегоконтейнер
5)
В нашей работе мы рассмотрим стеганографию в файлах изображениях.
Изображения могут храниться либо в векторном, либо в растровом виде.
Ве́кторная
гра́фика
(другое
название
—
геометрическое
моделирование) — это использование геометрических примитивов, таких как
точки, линии, сплайны и полигоны, для представления изображений в
компьютерной
графике.
Растровое
изображение,
цифровое
изображение — это файл данных или структура, представляющая
прямоугольную сетку пикселей или точек цветов на компьютерном
мониторе, бумаге и других отображающих устройствах и материалах.
Растровые изображения в свою очередь подразделяются на изображения с
палитрой и без палитры. Палитра или иначе таблица цветов располагается в начале файла
с изображением и хранит все цвета, используемые в изображении. Каждому цвету в ней
присваивается индекс и дальше каждому пикселю ставится в соответствие уже не цвет, , а
номер цвета в палитре.
Также изображения представляются различными цветовыми моделями.
Цветовая модель RGB
В цветовой модели RGB (от англ. Red, Green, Blue - красный, зеленый, голубой), в
которой спектральная функция представляется как сумма кривых чувствительности для
каждого типа колбочек с неотрицательными весовыми коэффициентами (обычно их
нормируют от 0 до 1), которые так и обозначаются - R, G и B. Эта модель характеризуется
свойством аддитивности (мы складываем цвета для получения новых).
Цветовые модели Y**
Существует несколько тесно связанных цветовых моделей, которые объединяет то,
что в них используется явное разделение информации о яркости и цвете.
Компонента Y соответствует одноименной компоненте в модели CIE
XYZ и отвечает за яркость. U и V отвечают за цветовую информацию и
определяются через преобразование из RGB.
6)
Графический формат BMP — это разработка фирмы Microsoft для
операционной системы Windows (сокращение от слова bitmap), он
представляет собой чрезвычайно простую структуру. Изображение в
формате bmp может быть как с палитрой так и без. Глубина цвета от 1
до 48 бит на пиксель. Возможно сжатие без потерь по алгоритму RLE.
Метод наименее значащих бит. Каждый байт изображения состоит из восьми бит,
каждые 3 байта представляют значения цветов для каждой точки нашего изображения,
первый байт для красного, второй для зеленого и третий для голубого. Биты, которые
составляют байт, идут слева направо в порядке важности для формирования цвета,
который они представляют. Последний бит считается наименее существенным, потому
что его изменение мало влияет на цвет, который представляет байт. Соответственно
меняя эти биты можно скрывать сообщение.
Сжатие без потерь RLE - run-lenght encoding (См. [6]). Идея метода заключается в
том, что последовательность повторяющихся значений заменяется парой чисел: одно из
них указывает длину группы (число повторений данного значения), а другое - собственно
это значение. Это очень общий и очень простой метод сжатия без потерь. В его основе
лежит тот факт, что многие изображения избыточны, поскольку содержат большое
количество смежных пикселей одного цвета. Посмотрим, например, как с помощью
группового кодирования сжимается изображение, в котором встречается подряд 100
пикселей с нулевым значением. Эта последовательность из 100 нулей кодируется парой
чисел (100,0).
7) Формат изображения JPEG (Joint Photographic Experts Group) был
разработан объединенной группой экспертов по машинной обработке
фотографических изображений. В нем используется одноименный
алгоритм сжатия. Алгоритм сжатия JPEG является алгоритмом сжатия
с потерей качества.
Кодирование Хаффмана уменьшает количество бит, используемых для
представления часто встречающихся символов, и увеличивает количество
бит, используемых для редких символов. Он основан на построении дерева
по таблице частоты встречаемости символов. Чтобы построить дерево,
компрессор начинает с двух символов наименьшей вероятности. Затем он
объединяет их как два листа двумя ветвями в узел; этому узлу, в свою
очередь,
назначается
сумма
двух
вероятностей.
Компрессор
затем
рассматривает этот узел вместе с оставшимися символами в списке
вероятностей, и снова выбирает два наименее вероятных элемента. Он
продолжает строить и объединять узлы, пока не построит единое дерево с
вероятностью корня, равной 1. Список ветвей в обратном порядке
описывающий путь от корня до s: это и есть код Хаффмана для данного
символа.
8)
В JPEG изображениях используется переход к пространству яркость/цветность
такому как YUV или YCbCr. После перехода к пространству Y Cb Cr JPEG разбивает
каждую цветовую проекцию на блоки 8  8 пикселей. Затем ко всем блокам применяется
дискретное косинус-преобразование (DCT), На шаге квантования все DCT коэффициенты
делятся на некоторые предопределенные квантизационные значения (см. табл.2) и
округляются до ближайшего целого (согласно фактору качества, квантизационные
значения могут быть взяты константой). Полученные квантизованные DCT коэффициенты
сжимаются, используя энтропийное кодирование (Хаффмана или арифметическое
кодирование).
9)
Перед тем как начнется общение отправитель и получатель должны прийти к
соглашению о расположении 2х DCT коэффициентов, которые будут использованы для
процесса сокрытия. Обозначим их через (u1, v1) и (u2, v2). Один блок кодирует 1, если
Bi(u1, v1) > Bi(u2, v2), иначе 0. При кодирующем шаге коэффициенты меняются, если их
относительная величина не соответствует биту, который должен быть закодирован.
10)
GIF — формат хранения графических изображений (англ. Graphics
Interchange Format). Формат GIF способен хранить сжатые без потерь
изображения в формате до 256 цветов с палитрой, и предназначен, в
основном, для чертежей, графиков и т. д.
Независящий от аппаратного обеспечения формат GIF был
разработан в 1987 году (GIF87a) фирмой CompuServe для передачи
растровых изображений по сетям. В 1989-м формат был модифицирован
(GIF89a), были добавлены поддержка прозрачности и анимации. GIF
использует LZW-компрессию, что позволяет сжимать файлы, в которых
много однородных заливок (логотипы, надписи, схемы).
11)
Алгоритм
Лемпеля-Зива-Уэлча
(Lempel-Ziv-Welch
-
LZW)
был
представлен Уэлчем в 1984 году, в последние несколько лет стал широко
используемым методом. Алгоритм достаточно прост. LZW-сжатие заменяет
строки символов некоторыми кодами Это делается без какого-либо анализа
входного текста. Вместо этого при добавлении каждой новой строки
символов просматривается таблица строк. Сжатие происходит, когда код
заменяет строку символов. Коды, генерируемые LZW-алгоритмом, могут
быть любой длины, но они должны содержать больше бит, чем единичный
символ. Первые 256 кодов (когда используются 8-битные символы) по
умолчанию соответствуют стандартному набору символов. Остальные коды
соответствуют обрабатываемым алгоритмом строкам.
12)
1) Стеганография: Скрывает сообщение в пределах другого сообщения,
которое похоже на нормальный графический, видео, или звуковой файл.
Криптография: сообщение зашифровано и похоже на бессмысленный
набор символов.
2) Стеганография: набор изображений, видео файлов или звуковых
файлов на диске не выглядит подозрительным.
Криптография: собрание случайных символов на диске может
выглядеть подозрительным.
3) Стеганография: умный соглядатай может посчитать подозрительным
внезапную смену формата сообщений (например вместо текста
картинки).
Криптография: умный соглядатай может обнаружить секретную
коммуникацию обнаружив зашифрованное сообщение.
4) Стеганография: требует осторожно относиться к многократному
использованию одних и тех же файлов.
Криптография: требует осторожно относиться к многократному
использованию ключей.
5) Стеганография: нет никаких законов, ограничивающих применение
стеганографии.
Криптография: существуют некоторые законы, запрещающие
криптографию.
13) Конкурс на замену DES был объявлен в 1997 г. Национальным
институтом стандартов и технологий США (NIST - National Institute of
Standards and Technology). На конкурс было представлено 15
алгоритмов-претендентов, разработанных как известными в области
криптографии организациями (RSA Security, Counterpane и т. д.), так и
частными лицами. Итоги конкурса были подведены в октябре 2000 г.:
победителем был объявлен алгоритм Rijndael, разработанный двумя
криптографами из Бельгии, Винсентом Риджменом (Vincent Rijmen) и
Джоан Даймен (Joan Daemen).
Алгоритм Rijndael выполняет четыре преобразования: BS (ByteSub) - табличная
замена каждого байта массива (рис. 5); SR (ShiftRow) - сдвиг строк массива (рис. 6). При
этой операции первая строка остается без изменений, а остальные циклически побайтно
сдвигаются влево на фиксированное число байт, зависящее от размера массива. Например,
для массива размером 4X4 строки 2, 3 и 4 сдвигаются соответственно на 1, 2 и 3 байта.
Далее идет MC (MixColumn) - операция над независимыми столбцами массива (рис. 7),
когда каждый столбец по определенному правилу умножается на фиксированную матрицу
c(x). И, наконец, AK (AddRoundKey) - добавление ключа. Каждый бит массива
складывается по модулю 2 с соответствующим битом ключа раунда, который, в свою
очередь, определенным образом вычисляется из ключа шифрования (рис. 8). Исключения
касаются первого и последнего раундов: перед первым раундом дополнительно
выполняется операция AK, а в последнем раунде отсутствует MC.
15) Наша программа состоит из 3х частей: интерфейсная часть,
стеганографическая часть и криптографическая часть.
При работе программы файл последовательно передается сначала в
криптографическую часть, а затем в стеганографическую часть - при
сокрытии сообщения, и, наоборот, при извлечении сообщения.
Интерфейсная часть реализована на языке C++ с использованием среды
разработки C++Builder 6.
Для стеганографической части написано 3 модуля, для работы с файлами bmp, gif
и jpeg.
Первый модуль также как и интерфейсная часть написан на языке C++ с
использованием среды разработки С++Builder 6. Второй модуль для работы с
изображениями формата jpeg написан на языке C++ с использованием среды разработки
VisualStudio2003, а также бесплатно распространяемой библиотеки IJL – Intel JPEG
Library,разработанной Марком Нельсоном. Третий модуль для работы с изображениями
формата gif был написан на PHP с использованием бесплатно распространяемой
библиотеки GD. Это была единственная найденная бесплатная библиотека, позволяющая
работать с палитрой изображения. Как уже было отмечено выше модуль aes для
криптографической части был написан на языке Python.
16) Последние 2 части реализованы модульно (рис. 11, 12.). Их работа
настраивается с помощью
конфигурационных файлов. В этих файлах
указывается:
1)
в случае стеганографической части:
файлы с каким расширением каким модулем будут обрабатываться.
2)
В случае криптографической части:
какой алгоритм шифрования каким модулем реализован.
Поэтому программа легко поддается расширению.
Download