Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Сборник задач по дисциплине «Информатика» для ВУЗов. Методические указания к проведению практических занятий по дисциплине «Информатика», для студенто

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать



Код маски Соотношение
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,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]