Загрузка данных


Реферат по теме № 28: «Кодирование информации: символьное и смысловое кодирование в криптографических системах»

Ниже представлен полный комплект материалов: текст реферата (структурированный по требованиям, объёмом ориентировочно 18–20 страниц при оформлении), список источников по ГОСТ, а также план-конспект презентации на 14 слайдов. Материал готов к оформлению в Word с соблюдением указанных параметров (Times New Roman 14 пт, интервал 1,5, поля 2 см, отступ 1,25 см).

---

РЕФЕРАТ

ТИТУЛЬНЫЙ ЛИСТ

(Оформляется по образцу учебного заведения: наименование ОУ, тема, ФИО студента, группа 441/442, ФИО руководителя, город, год)

СОДЕРЖАНИЕ

Введение ……………………………………………………………………… 3

Глава 1. Теоретические основы кодирования информации ………………. 5
1.1. Понятие кодирования и его отличие от шифрования …………………. 5
1.2. Классификация способов кодирования ……………………………….. 7

Глава 2. Символьное кодирование в криптографических системах …… 9
2.1. Двоичное представление и таблица ASCII как базис машинного кодирования ………………………………………………………………… 9
2.2. Unicode и проблемы совместимости кодировок ……………………… 11
2.3. Применение символьного кодирования в алгоритмах шифрования …. 12

Глава 3. Смысловое (семантическое) кодирование и сжатие данных … 14
3.1. Сущность смыслового кодирования ………………………………….. 14
3.2. Методы сжатия без потерь: код Хаффмана и арифметическое кодирование ……………………………………………………………………… 15
3.3. Взаимосвязь сжатия и криптографической защиты …………………. 17

Глава 4. Практические аспекты взаимодействия кодирования и криптографии ………………………………………………………………… 18
4.1. Кодирование как этап подготовки данных к шифрованию (на примере Base64) ……………………………………………………………………… 18
4.2. Стеганографическое кодирование и цифровые водяные знаки ………. 19

Заключение …………………………………………………………………. 20

Список использованных источников ……………………………………. 21

ВВЕДЕНИЕ

Актуальность темы. В современных автоматизированных системах информация циркулирует в форме, пригодной для машинной обработки. Прежде чем быть зашифрованной, переданной по каналу связи или сохранённой на носителе, она должна быть определённым образом закодирована. Кодирование и шифрование традиционно рассматриваются как смежные, но принципиально различные дисциплины: если кодирование решает задачу представления информации в удобной для системы форме, то шифрование обеспечивает её конфиденциальность. Однако на практике эти процессы тесно переплетены. Выбор способа кодирования (символьного или смыслового) непосредственно влияет на эффективность последующего шифрования, а некоторые методы кодирования (например, Base64) routinely используются в криптографических протоколах как промежуточный этап. Непонимание различий между кодированием и шифрованием может приводить к ошибкам проектирования защищённых систем.

Цель работы — исследовать методы символьного и смыслового кодирования информации и определить их роль и место в криптографических системах защиты информации.

Задачи:

1. Рассмотреть понятие кодирования и провести разграничение между кодированием и шифрованием.
2. Проанализировать символьное кодирование (ASCII, Unicode, двоичное представление) и его применение в криптоалгоритмах.
3. Изучить смысловое кодирование и методы сжатия данных (код Хаффмана, арифметическое кодирование).
4. Выявить взаимосвязи между сжатием, кодированием и криптографической защитой, включая известные атаки на совместное применение сжатия и шифрования.
5. Рассмотреть практические примеры использования кодирования в криптографических системах (Base64, стеганография).

Анализ источников. При подготовке реферата использованы учебники по криптографическим методам защиты информации для СПО [1, 2], фундаментальные работы по теории кодирования и сжатия данных, а также актуальные научные публикации, освещающие проблемы безопасности при совместном применении сжатия и шифрования [3].

ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ КОДИРОВАНИЯ ИНФОРМАЦИИ

1.1. Понятие кодирования и его отличие от шифрования

Кодирование определяется как преобразование информации в форму, удобную для передачи, хранения или автоматической обработки. В узком смысле кодирование — это наделение информационного объекта кодовым условным обозначением — знаком или группой знаков, представленных по определённой системе правил [4]. При кодировании преследуется цель компактного и однозначного представления данных; семантика сообщения при этом сохраняется и остаётся доступной для любого, кто знает применённый код.

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

Представляется важным подчеркнуть, что кодирование не обеспечивает конфиденциальности. Распространённое заблуждение, будто кодирование Base64 «скрывает» данные, является опасным: Base64 — это обратимое кодирование, и любой, кто получил такую строку, может легко восстановить исходные байты [5].

1.2. Классификация способов кодирования

В контексте защиты информации целесообразно выделять три класса кодирования:

· Символьное кодирование — сопоставление каждому символу алфавита фиксированной битовой последовательности (ASCII, Unicode, КОИ-8).
· Смысловое (семантическое) кодирование — преобразование, учитывающее статистические или структурные свойства сообщения с целью сокращения его объёма (сжатие). К этому классу относятся код Хаффмана, арифметическое кодирование, алгоритмы LZ.
· Помехоустойчивое кодирование — введение избыточности для обнаружения и исправления ошибок при передаче (коды Хэмминга, Рида–Соломона). В рамках данной работы подробно не рассматривается, поскольку относится преимущественно к канальному уровню.

Автор полагает, что именно первые два класса имеют непосредственное отношение к криптографическим системам: символьное кодирование обеспечивает «перевод» данных в машинную форму перед шифрованием, а смысловое кодирование (сжатие) может как повышать эффективность шифрования, так и создавать уязвимости.

ГЛАВА 2. СИМВОЛЬНОЕ КОДИРОВАНИЕ В КРИПТОГРАФИЧЕСКИХ СИСТЕМАХ

2.1. Двоичное представление и таблица ASCII как базис машинного кодирования

Любая криптографическая система оперирует с последовательностями битов. Для того чтобы текстовое сообщение могло быть зашифровано, каждый его символ должен быть преобразован в числовое значение. Исторически первой массовой стандартизированной кодировкой стала таблица ASCII (American Standard Code for Information Interchange), в которой 128 символов (латинские буквы, цифры, знаки препинания, управляющие коды) сопоставлены 7-битным числам. Расширенные версии ASCII используют 8 бит (один байт), что позволяет представить 256 символов.

Для криптографических алгоритмов, работающих с блоками фиксированной длины (DES — 64 бита, AES — 128 бит, ГОСТ 28147-89 / «Магма» — 64 бита, «Кузнечик» — 128 бит), текстовое сообщение дополняется до размера блока и представляется как последовательность байтов. Например, при использовании AES сообщение разбивается на блоки по 16 байт (128 бит), каждый из которых затем подвергается серии раундовых преобразований [6].

2.2. Unicode и проблемы совместимости кодировок

С развитием глобальных коммуникаций 8-битных кодировок стало недостаточно. Unicode представляет собой универсальный набор символов, включающий более 140 000 знаков. Формы кодирования Unicode (UTF-8, UTF-16, UTF-32) определяют способ представления кодовых точек в виде байтовых последовательностей. UTF-8 является доминирующей кодировкой в веб-пространстве, поскольку для символов ASCII она совместима с ними (один символ — один байт) и эффективна для латиницы.

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

2.3. Применение символьного кодирования в алгоритмах шифрования

В асимметричных криптосистемах, таких как RSA, сообщение перед шифрованием преобразуется в целое число. Процедура pkcs#1 (Public-Key Cryptography Standards) описывает методы кодирования сообщений перед применением RSA, включая добавление случайного заполнения (padding) для предотвращения атак на основе детерминированного шифрования. Таким образом, символьное кодирование здесь неразрывно связано с обеспечением стойкости: неправильное кодирование сообщения перед RSA может скомпрометировать всю систему.

В симметричных системах кодирование текста в байты и дополнение (padding) до размера блока также являются обязательными этапами. Например, в ГОСТ Р 34.13-2015 определены режимы работы блочных шифров, предполагающие процедуры дополнения последнего неполного блока [6].

ГЛАВА 3. СМЫСЛОВОЕ (СЕМАНТИЧЕСКОЕ) КОДИРОВАНИЕ И СЖАТИЕ ДАННЫХ

3.1. Сущность смыслового кодирования

Смысловое кодирование, в отличие от символьного, учитывает содержание сообщения — точнее, его статистические характеристики. Цель состоит в сокращении избыточности: символы, встречающиеся часто, получают более короткие коды, редкие — более длинные. Такой подход позволяет уменьшить среднюю длину кодового слова и, следовательно, объём данных.

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

3.2. Методы сжатия без потерь: код Хаффмана и арифметическое кодирование

Код Хаффмана обеспечивает минимальную среднюю длину кодового слова среди всех префиксных кодов для заданного распределения частот. Однако он имеет ограничение: длина кода каждого символа должна быть целым числом битов. Арифметическое кодирование преодолевает это ограничение, представляя всё сообщение как одно число — дробь в интервале [0, 1). Каждому символу сопоставляется подинтервал, ширина которого пропорциональна его вероятности; по мере обработки сообщения интервал сужается. Результат кодируется как двоичное представление числа из финального интервала. Арифметическое кодирование асимптотически приближается к теоретическому пределу сжатия, определяемому энтропией Шеннона [8].

На практике широко применяются также словарные методы (LZ77, LZ78, deflate), которые заменяют повторяющиеся последовательности ссылками на предыдущие вхождения. Эти методы лежат в основе форматов gzip, zip и широко используются в веб-серверах.

3.3. Взаимосвязь сжатия и криптографической защиты

Совместное применение сжатия и шифрования (парадигма compress-then-encrypt) долгое время считалось естественным: сжатие уменьшает объём данных, что снижает нагрузку на канал и вычислительную сложность шифрования. Однако в 2002 году Келси указал на теоретическую опасность такой комбинации, а в 2012 году Риззо и Дуонг продемонстрировали практическую атаку CRIME на протоколы SSL/TLS [3].

Суть уязвимости состоит в следующем: длина сжатого текста зависит от его содержания. Если злоумышленник может внедрить в запрос свой текст, содержащий угадываемый секрет (например, cookie-токен), и наблюдать длину зашифрованного ответа, он может определить, присутствует ли угадываемая строка в секрете. При правильном угадывании сжатие «поглощает» совпадающие символы, и длина ответа уменьшается на несколько байт. Итеративно перебирая символы, атакующий восстанавливает секрет.

Аналогичная атака BREACH (2013) эксплуатирует сжатие HTTP-ответов на уровне приложения. Представляется, что эти примеры убедительно демонстрируют: смысловое кодирование (сжатие) не является нейтральным по отношению к безопасности этапом; при проектировании защищённых систем необходимо учитывать взаимодействие сжатия и шифрования.

ГЛАВА 4. ПРАКТИЧЕСКИЕ АСПЕКТЫ ВЗАИМОДЕЙСТВИЯ КОДИРОВАНИЯ И КРИПТОГРАФИИ

4.1. Кодирование как этап подготовки данных к шифрованию (на примере Base64)

Base64 — это схема кодирования двоичных данных в текстовый формат, использующая 64 символа (A–Z, a–z, 0–9, +, /). Каждые 3 байта исходных данных (24 бита) разбиваются на четыре 6-битных группы, каждая из которых сопоставляется одному символу алфавита Base64. Если длина исходных данных не кратна 3, применяется дополнение символом «=».

Base64 широко используется в криптографических протоколах и форматах: для кодирования сертификатов X.509 (PEM-формат), для передачи бинарных данных в JSON и XML, в HTTP-заголовках аутентификации (Basic Auth), в составе JWT (JSON Web Tokens). Важно понимать, что Base64 не является шифрованием и не обеспечивает защиты; его функция — представление произвольных байтов в виде символов, допустимых в текстовых протоколах. В криптографических системах Base64 обычно применяется после шифрования (для «упаковки» шифртекста) или до него (для преобразования бинарных данных в текст перед передачей) [9].

4.2. Стеганографическое кодирование и цифровые водяные знаки

Стеганография решает задачу скрытия самого факта передачи сообщения. В компьютерной стеганографии информация встраивается в безобидные на вид контейнеры: изображения, аудиофайлы, видео. Методы встраивания (например, модификация младших значащих битов пикселей — LSB) можно рассматривать как разновидность смыслового кодирования, поскольку встраиваемые данные предварительно сжимаются и/или шифруются, а затем распределяются по контейнеру.

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

ЗАКЛЮЧЕНИЕ

Проведённое исследование позволяет сформулировать следующие выводы.

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

Во-вторых, символьное кодирование (ASCII, Unicode) является необходимым этапом подготовки данных к шифрованию. От корректности выбора кодировки и процедур дополнения (padding) зависит как совместимость реализаций, так и стойкость криптосистемы.

В-третьих, смысловое кодирование (сжатие) не является нейтральным по отношению к безопасности. Парадигма compress-then-encrypt, долгое время считавшаяся безопасной, порождает побочные каналы утечки информации, практическая эксплуатация которых продемонстрирована в атаках CRIME и BREACH. Проектирование защищённых систем должно учитывать это взаимодействие.

В-четвёртых, кодирование находит широкое применение в криптографических системах как вспомогательный этап: Base64 обеспечивает представление бинарных криптографических данных в текстовых протоколах, стеганографические методы кодирования позволяют скрывать сам факт передачи защищаемой информации.

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Бабаш А. В., Баранова Е. К. Криптографические методы и средства защиты информации : учебник. — Москва : КноРус, 2025. — 224 с. — ISBN 978-5-406-11653-1.
2. Прохорова О. В. Информационная безопасность и защита информации : учебник для СПО. — 5-е изд., стер. — Санкт-Петербург : Лань, 2024. — 124 с. — ISBN 978-5-507-47517-9.
3. Song Y., Mareková L., Paterson K. G. Criminology: Refined Techniques for Compression Side-Channel Attacks // Cryptology ePrint Archive. — 2026. — Paper 2026/1972. — URL: https://eprint.iacr.org/2026/1972 (дата обращения: 19.10.2026).
4. Пунченко О. П. Кодирование информации как интеллектуальный процесс перевода мысли в знак // Труды БГТУ. Серия 6. — 2020. — № 1. — С. 113–117.
5. Rahim R., Sumarno S., Multazam M. T. et al. Combination Base64 and GOST algorithm for security process // Journal of Physics: Conference Series. — 2019. — Vol. 1196, № 6. — P. 066054.
6. ГОСТ Р 34.12-2015. Информационная технология. Криптографическая защита информации. Блочные шифры. — Москва : Стандартинформ, 2016.
7. Data Structures: Section Q: Huffman Code Trees // University of North Dakota. — URL: http://undcemcs01.und.edu/~wen.chen.hu/book/DS/books/book4/secq.html (дата обращения: 19.10.2026).
8. Wolfram S. Notes for Data Compression // A New Kind of Science. — P. 1071. — URL: https://www.wolframscience.com/nks/p1071--data-compression/ (дата обращения: 19.10.2026).
9. Rahim R. et al. Combination Base64 and GOST algorithm for security process // Journal of Physics: Conference Series. — 2019. — Vol. 1196. — P. 066054.