Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сборник задач по дисциплине «Информатика» для ВУЗов. Методические указания к проведению практических занятий по дисциплине «Информатика», для студенто
.pdf
Код маски Соотношение
000
001
010
011
100
101
110
111
В таблице использованы обозначения: j – номер строки матрицы; i –
номер столбца; mod – операция поиска остатка от целочисленного деления;
div – операция деления.
Порядок определения координат модулей иллюстрирует рисунок.
образом: если координаты рассматриваемого
модуля матрицы удовлетворяют данному соотношению, то этот модуль инвертируется.
ний их содержимое бывает самым разнообразным. В од
ные цифры, в другом – буквы и цифры, в
третьем – двоичные цифры, в четвёртом –
иероглифы.
В зависимости от вида используемых данных запись битов в матри-
цу происходит в разных форматах. Вид формата указывается с помощью четырёх битов, расположенных в
области 6.
Следует обратить внимание, что в области 6 ин
формация о формате данных «искажена» маской. Причём в каждом случае маска может быть любой из восьми допустимых. Поэтому для получения истинного значения кода формата данных нужно предварительно определить вид использованной маски.
Порядок нумерации битов показан на рисунке,
причём старший разряд кода формата находится в клетке, отмеченной циф-
1.
рой
ji
i
j
ji
divjdivi
jiji
jiji
Формулы используются следующим
При кодировании конкретных сообще-
ном случае это только десятич-
02mod)(
02mod
03mod
03mod)(
jiji
03mod)(2mod)(
02mod))3()2((
02mod)3mod)(2mod)((
02mod)2mod)(3mod)((
61
-

62
Рассмотрим порядок ручного декодирования матрицы, показанной
на рисунке.
Вначале нужно определить, какой
вид маски использован при её кодировании. В разрядах 12, 11 и 10 системной
строки записано двоичное слово 111. Сложение со статической маской 101 даёт
двоичное число 010. По таблице кодов
маски легко определить формулу, использованную для формирования маски (формы масок показаны в Приложении 3):
.
j
03mod
По этой формуле можно определить
вид расчётной маски (см. рис. а). Этот ри-
сунок нужно трактовать следующим образом: если на маске имеется чёрный пиксель (модуль), то пиксель матрицы с такими же координатами
нужно проинвертировать. У этого правила большое число исключений. На
рис. в) показаны серым цветом модули, которые инвертировать не следует.
Анализируя рисунок в), можно заметить, что от изменения защище-
ны области матрицы, где расположены
указатели ориентации, линии синхронизации, системная информация (серые модули). Скорректированную таким образом
расчётную маску назовём
фактической
маской.
Процесс наложения фактической
маски на декодируемую матрицу показан
на рисунке слева.
Наибольший интерес для декодирования представляет область матрицы, рас-

63
положенная в её правом нижнем углу. Здесь находятся информационные
биты. Рассмотрим детально эту зону. Рисунок а) показывает фрагмент исходной матрицы, который должен быть подвержен обработке. На рисунке
б) выделены модули, которые должны быть проинвертированы. Следует
обратить внимание, что верхняя граница рисунка совпадает с системной
строкой. Результат наложения маски и декодируемой матрицы показан
на
рисунке в).
а) б) в)
Из рисунка в) видно, что модули третьего и шестого столбца справа
были проинвертированы.
Теперь есть возможность выполнить ручное декодирование матрицы. Четыре бита в клетках 1…4 дают код 0100, который говорит о том, что
в данной матрице используется двоичный формат данных.
Порядок считывания декодируемой информации показан на рисунке.
а) б) в)
В соответствии с двоичным форматом данных следующие 8 бит

64
(клетки 5…12) указывают, сколько символов содержится в сообщении.
Двоичное число 00000101 говорит о том, что данное сообщение содержит
пять символов.
В очередных восьми клетках 13…20 (см. рисунок а) размещено двоичное слово 01010000. Перевод этого байта в десятичную систему счисления даёт число 80. По таблице CP-1251 легко определить, что данному коду
соответствует латинская буква «Р».
Следует обратить внимание на порядо
к нумерации модулей. Номера
располагаются друг за другом в виде змейки.
Результаты декодирования сообщения приведены в таблице.
Номера модулей Биты Десятичное число Символ
13…20 01010000 80 P
21…28 01110000 114 r
29…36 01101111 111 o
37…44 01100010 98 b
45…52 01100001 97 a
Таким образом, в результате ручного декодирования было определено, что матрица содержит слово «Proba».
Заметим, что QR-код не является единственным вариантом двухмерного штрих-кода. Известны и другие форматы: DataMatrix, ScanLife EZcode
и Microsoft Tag (Tag).

4. Задания для выполнения практической работы
«QR-коды»
Определить вид маски, использованной в QR-матрице.
4.1.
Извлечь вручную информацию из QR-матриц.
4.2.
Задача QR-матрица Задача QR-матрица
1
2
65
Таблица 9.1
3
5
7
4
6
8

66
Продолжение таблицы 9.1
Задача QR-матрица Задача QR-матрица
9
10
11
12
13
14
15
16
Домашнее задание
Поместить вручную номер своей зачётки в QR-матрицу.

67
Практическая работа № 10
«Шифрование методом гаммирования»
1. Цель работы
Получить представление о криптографических методах защиты ин-
формации с помощью симметричного ключа.
2. Связь с другими темами практических работ
Данная практическая работа опирается на практические работы
«Системы счисления», «Логические основы работы ЭВМ» и позволяет получить представление о формировании криптограмм.
3. Теоретические сведения и расчётные формулы
При шифровании методом гаммирования вначале открытый текст
шифруют методом замены, преобразуя каждую букву в число. Затем к каждому числу прибавляют секретную гамму (псевдослучайную числовую последовательность). Технически добавление гаммы к открытому тексту в
криптографических системах осуществляется поразрядно (поточный
шифр). Процедуру добавления гаммы удобно реализовать с помощью двоичных чисел. При этом на каждый бит открытого текст
секретной гаммы.
Генератор гаммы выдаёт последовательность битов:
Этот поток битов и поток битов открытого текста p
ются поразрядно логической операции Исключающее ИЛИ. В результате
получается поток битов криптограммы:
= pi
c
i
.
i
При расшифровании на приёмной стороне операция Исключающее
ИЛИ выполняется над битами поступившей криптограммы и тем же самым
потоком гаммы:
= c
p
i
.
i
i
Благодаря особенностям логической операции Исключающее ИЛИ на
приёмной стороне операция вычитания заменяется данной логической операцией. Сказанное иллюстрируется примером.
Предположим, что открытый текст Р = 10011001, а гамма G =
11001110. В результате шифрования криптограмма С будет иметь следующий вид:
а накладывается бит
, 2, 3,…, n.
, p2, p3,…, pn подверга-
1
1

68
Р 1 0 0 1 1 0 0 1
G 1 1 0 0 1 1 1 0
C 0 1 0 1 0 1 1 1
На приёмной стороне повторно выполняется логическая операция
Исключающее ИЛИ:
C 0 1 0 1 0 1 1 1
G 1 1 0 0 1 1 1 0
Р 1 0 0 1 1 0 0 1
Из этих таблиц видно, что переданный и принятый байты одинако-
вые.
В ЭВМ преобразование открытого текста в числа происходит естественным путём, так как каждый символ кодируется двоичным числом.
Вид этого преобразования зависит от используемой операционной системы. Для определённости будем считать, что сообщение в ЭВМ кодируется
с помощью кодовой таблицы CP-1251 (см. Прило
жение 1). Итак, будем
считать, что секретная гамма добавляется к открытому тексту по правилу
логической операции Исключающее ИЛИ. Результаты всех преобразований
поместим в таблицу.
Открытый текст
Десятичное число
Двоичное число
Гамма (десятич.)
Гамма (двоич.)
Криптогр. (двоич.)
Криптогр. (десят.)
Криптограмма
Г Д Е А Б Б А
195 196 197 192 193 193 192
11000011 11000100 11000101 11000000 11000001 11000001 11000000
32 18 36 11 61 23 3
00100000 00010010 00100100 00001011 00111101 00010111 00000011
11100011 11010110 11100001 11001011 11111100 11010110 11000011
227 214 225 203 252 214 195
г Ц б Л ь Ц Г
Для наглядности результат шифрования (строка Криптограмма) переведён с помощью таблицы CP-1251 в буквы. Из таблицы видно, что открытый текст был записан прописными буквами, а криптограмма содержит
как прописные, так и строчные буквы. Естественно, что при реальном (а не
учебном) шифровании набор символов в шифрограмме будет ещё богаче.
Кроме русских букв будут присутствовать латинские буквы, знаки препи-
управляющие символы.
нания,
При расшифровании таблицу нужно зеркально перевернуть относительно горизонтальной оси (строка Криптограмма должна стать верхней).

4. Задания для выполнения практической работы
«Шифрование методом гаммирования»
4.1. Расшифровать сообщение (метод гаммирования). При необхо-
димости гамму добавлять циклически.
Задача Гамма Шифрограмма
1 1 5 32 7 ЦЦжЙИЙеГВЛрВЛ
2 6 12 22 5 3 ДЬУЙЬДЭУЙРЧЯТЩЬ
3 34 12 25 5 31 бИЬОЯжЮЩЙЧиЗЩБ
4 4 32 5 25 ЗоБЛМхБЩУаФТМх
5 14 2 17 25 34 ДЙПОуЖЙНФзЛЕСХиО
6 41 2 7 27 33 еЗБЫфъДВЦппВ
7 18 1 2 5 7 ЯДБЛГЙРРЕЧНУВЖЙВД
8 32 33 35 34 оузсмълуомвзжйс
9 3 2 5 35 ММЧнПИНрППАжМТАзЙМЗ
10 7 25 3 4 11 ИЧСБЮЗЭЖПШИЧПБЮЗ
11 3 18 21 7 5 12 ВЧСКЛЭСОШВКВУЬЯ
12 31 17 21 37 5 ЫФШщБСЪЫжЕЭФЯпЛПЯЗлП
13 3 17 2 34 41 ЛЫМойУКИсшГПРжзМЯТщ
14 33 17 32 35 42 лЯмрвмСмжамФвзднФк
15 23 14 32 35 22 ЭЮатЫЧЮефКШАгнФЩЮкнИ
16 21 4 32 38 ЪМшхЗЙейРФокХЧмиЩ
Домашнее задание.
Зашифровать свою фамилию. В качестве гаммы использовать цифры
зачётки.
69
Таблица 10.1

70
Практическая работа № 11
«Асимметричный шифр RSA»
1. Цель работы
Получить представление о криптографических методах защиты ин-
формации с помощью асимметричного шифрования.
2. Связь с другими темами практических работ
Данная практическая работа опирается на практические работы «Логические основы работы ЭВМ», «Шифрование методом гаммирования» и
позволяет получить представление о построение криптосистемы с помощью открытых и закрытых ключей.
3. Теоретические сведения и расчётные формулы
Алгоритмы шифрования с открытым ключом (асимметричные шифры) используют так называемые необратимые или односторонние функции.
Эти функции обладают следующим свойством: при заданном значении аргумента x достаточно просто вычислить значение функции f(x). Однако
если известно значение функции y = f(x), то нет простого пути для вычисления значения аргумента x.
Для реализации криптосистемы с откр
из следующих типов необратимых преобразований.
1. Разложение больших чисел на простые множители (алгоритм
RSA, авторы — Райвест, Шамир и Адлеман — Rivest, Shamir, Adleman).
2. Вычисление логарифма или возведение в степень (алгоритм
авторы — Диффи и Хелман).
3. Вычисление корней алгебраических уравнений.
4. Эллиптические кривые.
Рассмотрим простейший пример «необратимых» функций. Легко в
уме найти произведение двух простых чисел 11 и 13. Сложнее быстро в
уме найти два простых числа, произведение которых равно 437. Подобные
трудности возникают и при использовании ЭВМ для отыскания двух простых сомножителей для очень большого числа: найти сомножители можно,
но потр
один для шифрования сообщения, а второй — отличный от первого, но
связанный с ним — для расшифрования. Ключ шифрования (открытый,
несекретный ключ) основан на произведении двух огромных простых чи-
ебуется много времени.
В алгоритме шифрования RSA используются два разных ключа:
ытым ключом используют один
DH,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
