
- •Декодер с вылавливанием ошибок.
- •Коды Боуза-Чоудхури-Хоквингвема.
- •Алгоритм декодирования Питерсона-Горенштейна-Цирлера.
- •Коды Рида-Соломона.
- •Декодирование при помощи алгоритма Берлекемпа-Месси.
- •Декодирование с помощью алгоритма Евклида.
- •Концепция теоретической криптостойкости.
- •Классические алгоритмы шифрования.
- •Системы подстановок
- •Подстановка Цезаря
- •Многоалфавитные системы.
- •Система шифрования Вижинера
- •Аффинные системы шифрования
- •Гаммирование
- •Поточные алгоритмы шифрования.
- •Блочные алгоритмы шифрования. Основные режимы работы.
- •Алгоритмы криптографического преобразования данных стандарта des, aes, гост 28147-89.
- •Атака на алгоритмы шифрования методом «грубой силы». Атаки класса «встреча посередине».
- •Дифференциальный криптоанализ.
- •Линейный криптоанализ.
- •Ассиметричные методы криптографического преобразования данных. Алгоритм rsa.
- •Алгоритмы на базе эллиптических кривых.
- •Криптосистема Диффи-Хеллмана.
- •Криптосистема Эль-Гамаля.
- •Обеспечение целостности данных и аутентификация.
- •Распределение ключей в системах pki.
Классические алгоритмы шифрования.
Перестановкой ρ набора целых чисел (0, 1, ... , N - 1) называется его
переупорядочение. Для того чтобы показать, что целое перемещено из позиции i в позицию ρ(i), где 0 ≤ (i) < n, можно использовать запись
ρ = ( ρ (0), ρ(1), ... , ρ(N - 1) ).
Число перестановок из (0, 1, ... , N - 1) равно n!
Пример. Перестановка с фиксированным периодом d. Сообщение делится
на группы символов длины d и к каждой группе применяется одна и та же
перестановка. Эта перестановка является ключом: она может быть задана
некоторой перестановкой первых d целых чисел. Так, для d = 7 в качестве
перестановки можно взять 7352146, при этом сообщение
m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 m11 m12 m13 m14 …переходит в
m7 m3 m5 m2 m1 m4 m6 m14 m10 m12 m9 m8 m11 m13… .
Последовательное применение двух или более перестановок называется
составной перестановкой. Если периоды этих перестановок d1, … , dk, то
результирующая перестановка будет иметь период d = НОК( d1, … , dk).
Системы подстановок
Подстановкой S на алфавите Zm называется автоморфизм Zm, при котором
буквы исходного текста t замещаются буквами шифрованного текста π(t):
Набор всех подстановок образует симметрическую группу Gs(Zm).
Ключом подстановки K для Zm называется последовательность элементов
симметрической группы Zm:
Подстановка Цезаря
Шифрование с помощью подстановки Цезаря делается в соответствии с
простой схемой нумерации. Если в русском алфавите пронумеровать буквы
цифрами от 0 до 32, то, задав какое-либо число в этом интервале, скажем 7,
можно прибавлять его к числу, соответствующему каждой букве открытого
текста. Получаемые суммы будут представлять собой номера букв
шифротекста. Если какая-нибудь сумма окажется больше 32, то, вычтя из нее
33, получим число, принадлежащее диапазону от 0 до 32.
Например, буква под номером 27 (это Ь) будет шифроваться буквой за
номером 1 (это Б), потому что 27+7=34 = 1 mod 33.
Многоалфавитные системы.
Слабая криптостойкость моноалфавитных подстановок преодолевается с
применением подстановок многоалфавитных.
Многоалфавитная подстановка определяется ключом, содержащим не
менее двух различных подстановок.
Пример. Примем в качестве ключа текст «БЕСКОНЕЧНАЯ _ ЛЕНТА....», в
алфавите добавим символ «пробел», расположив его на 33 позиции (т.е.
операции выполняются по модулю 34).
Система шифрования Вижинера
Зададим конечную последовательность чисел (ключ пользователя)
K = (k0 ,k1 ,...,kn-1),
и продлим ее, повторяя цепочку r раз. В результате получим
последовательность (рабочий ____/TT1 1 ключ ), состоящую из (r - 1)n символовKr = (k0 ,k1 ,...,kn-1), … ;kj, … kj = k(j mod n) , 0 ≤ j < (r - 1)n .
Например, при n = 7, r = ∞, и ключе пользователя 15 8 2 10 11 4 18 рабочий
ключ будет периодической последовательностью:
15 8 2 10 11 4 18 15 8 2 10 11 4 18 15 8 2 10 11 4 18 ...
Подстановка Вижинера SV, k определяется как
SV, k : ( x0, x1, ..., xm-1 ) → ( y0, y1, ..., ym-1 ) =
= ( x0 + ko, x1 + k1, ... , xj + kj (mod n), … , xm – 1 + km-1(mod n) ) mod M ,
Аффинные системы шифрования
Криптосистема, которая для шифрования использует преобразование
множеств Z/NZ вида
С ≡ a P + b mod N, ( 3 )
где a и b - фиксированные целые числа, образующие ключ шифрования,
называется аффинной.
Зашифруем сообщение “PAYMENQW”, используя 26 - значный алфавит
английского языка (N = 26). Ключи шифрования a = 7, b = 12.
Оцифровка сообщения дает код : (15 0 24 12 4 13 14 22),
Преобразование по правилу ( 3 ) приводит к шифротексту (13 12 24 18 14
25 6 10) или в буквенном эквиваленте (N M Y S O Z G K).
Чтобы расшифровать сообщение, необходимо сначала найти
P ≡ a` C + b` mod N,
где a` - обратное к a по mod N и b` = - a -1 b.