Глоссарий
- Алфавит
- Конечное множество символов, из которых источник составляет сообщения. → статья
- Асимметричный шифр
- Шифр с парой ключей: открытым (для шифрования) и секретным (для расшифрования). Синоним — шифр с открытым ключом. → статья
- Блочный код (n, k)
- Код, переводящий каждые k бит данных в кодовое слово из n бит; скорость кода k/n. → статья
- Вероятностное шифрование
- Шифрование, при котором один и тот же открытый текст даёт разные шифртексты за счёт случайности. → статья
- Группа
- Моноид, в котором у каждого элемента есть обратный. → статья
- Диофантово уравнение
- Уравнение с целыми коэффициентами, решения которого ищутся в целых числах. → статья
- Дискретный логарифм
- Для g, y и модуля p — такое x, что g^x ≡ y (mod p). Вычислительно трудная задача при больших p. → статья
- Избыточность
- Доля «лишних» символов: R = 1 − H / log₂ N для источника или 1 − k/n для блочного кода. Сжатие уменьшает избыточность, помехоустойчивое кодирование намеренно её добавляет. → статья
- Канал связи
- Среда, по которой передаётся закодированное сообщение; в канале с шумом символы могут искажаться. → статья
- Квадратичный вычет
- Число a, для которого сравнение x² ≡ a (mod p) разрешимо. → статья
- Китайская теорема об остатках
- Система x ≡ a_i (mod m_i) с попарно взаимно простыми модулями имеет единственное решение по модулю M = m_1·…·m_k. → статья
- Класс вычетов
- Множество всех целых чисел, сравнимых с данным числом по модулю m. → статья
- Код Адамара
- Код из строк матрицы Адамара и их инверсий; при n = 2^r — код Рида–Маллера первого порядка с расстоянием n/2. → статья
- Код Хаффмана
- Оптимальный префиксный код: дерево строится снизу вверх объединением двух узлов с наименьшими частотами. → статья
- Код Шеннона–Фано
- Префиксный код: отсортированные символы рекурсивно делятся на две группы с близкими суммами частот. → статья
- Корреляционное декодирование
- Выбор кодового слова с наибольшим скалярным произведением с принятым вектором (в ±1-форме). → статья
- Критерий Поклингтона
- Достаточное условие простоты n по известному разложению части F числа n − 1, где F > √n. → статья
- Матрица Адамара
- Квадратная матрица из ±1 с попарно ортогональными строками: H·Hᵀ = n·E. → статья
- Минимальное расстояние
- Наименьшее расстояние Хэмминга между различными кодовыми словами d. Код обнаруживает d − 1 ошибок и исправляет ⌊(d − 1)/2⌋. → статья
- Моноид
- Множество с ассоциативной бинарной операцией и нейтральным элементом. → статья
- Неравенство Крафта
- Префиксный двоичный код с длинами l_1, …, l_N существует тогда и только тогда, когда Σ 2^(−l_i) ≤ 1. → статья
- Первообразный корень
- Элемент g порядка φ(m): его степени пробегают всю приведённую систему вычетов. → статья
- Полугруппа
- Множество с ассоциативной бинарной операцией (нейтральный элемент не требуется). → статья
- Порядок элемента
- Наименьшее d > 0, такое что a^d ≡ 1 (mod m). Всегда делит φ(m). → статья
- Префиксный код
- Код, в котором ни одно кодовое слово не является началом другого. Декодируется однозначно и без разделителей. → статья
- Приведённая система вычетов
- Представители классов вычетов, взаимно простых с m; их ровно φ(m). → статья
- Принцип Керкгоффса
- Стойкость шифра должна определяться только секретностью ключа, а не секретностью алгоритма. → статья
- Простое число
- Натуральное число больше 1, у которого ровно два делителя: 1 и само число. → статья
- Протокол Диффи–Хеллмана
- Выработка общего секрета g^(ab) по открытому каналу: стороны обмениваются g^a и g^b. → статья
- Расстояние Хэмминга
- Число позиций, в которых различаются два слова одинаковой длины. → статья
- Расширенный алгоритм Евклида
- Алгоритм Евклида, который вместе с НОД(a, b) находит коэффициенты Безу s, t. → статья
- Сеансовый ключ
- Случайное одноразовое число k в шифре Эль-Гамаля; делает шифрование вероятностным. Повторное использование k раскрывает сообщения. → статья
- Сертификат простоты
- Данные, по которым простоту числа можно быстро перепроверить, не повторяя поиск (например, цепочка Поклингтона). → статья
- Синдром
- Результат проверки принятого слова проверочными соотношениями. В коде Хэмминга синдром равен номеру позиции ошибки (0 — ошибок нет). → статья
- Совершенный код
- Код, на котором граница Хэмминга достигается с равенством: шары радиуса t вокруг кодовых слов покрывают всё пространство. Пример — коды Хэмминга. → статья
- Соотношение Безу
- Для любых целых a, b существуют целые s, t, такие что a·s + b·t = НОД(a, b). → статья
- Сравнение по модулю
- a ≡ b (mod m) ⇔ m | (a − b): числа дают одинаковые остатки при делении на m. → статья
- Средняя длина кода
- L = Σ p_i·l_i — математическое ожидание длины кодового слова. Для кода Хаффмана H ≤ L < H + 1. → статья
- Тест Миллера–Рабина
- Вероятностный тест простоты: составное число проходит один раунд с вероятностью не больше 1/4. → статья
- Тест Ферма
- Если a^(n−1) ≢ 1 (mod n) для некоторого a, взаимно простого с n, то n составное. Обратное неверно (числа Кармайкла). → статья
- Функция Эйлера
- φ(m) — количество чисел от 1 до m, взаимно простых с m. → статья
- Частотный анализ
- Вскрытие шифра замены по статистике: частоты символов шифртекста повторяют частоты языка. → статья
- Числа Кармайкла
- Составные n, для которых a^(n−1) ≡ 1 (mod n) при всех a, взаимно простых с n. Наименьшее — 561 = 3·11·17. → статья
- Шифр замены
- Шифр, который заменяет каждый символ другим по правилу (ключу); порядок символов сохраняется. → статья
- Шифр перестановки
- Шифр, который меняет порядок символов, не меняя сами символы. → статья
- Энтропия
- Среднее количество информации на символ источника: H = −Σ p_i·log₂ p_i бит. Нижняя граница средней длины любого однозначно декодируемого кода. → статья
Сводка формул
Теория информации
| Количество информации в исходе с вероятностью p | I = −log₂ p бит |
| Энтропия источника | H = −Σ p_i·log₂ p_i, 0 ≤ H ≤ log₂ N |
| Средняя длина кода | L = Σ p_i·l_i |
| Неравенство Крафта | Σ 2^(−l_i) ≤ 1 |
| Теорема Шеннона для оптимального кода | H ≤ L < H + 1 |
| Избыточность кода | R = 1 − H / L |
Помехоустойчивые коды
| Обнаружение и исправление ошибок | обнаруживает d − 1 ошибок, исправляет t = ⌊(d − 1)/2⌋ |
| Код Хэмминга | n = 2^m − 1, k = n − m, d = 3 |
| Граница Хэмминга (t = 1) | 2^k·(n + 1) ≤ 2^n |
| Синдром кода Хэмминга | s = номер позиции ошибки (0 — ошибок нет) |
| Матрица Адамара (Сильвестр) | H_1 = [1], H_(2n) = [[H_n, H_n], [H_n, −H_n]] |
| Ортогональность строк | H·Hᵀ = n·E |
| Код Адамара порядка n = 2^r | k = r + 1 бит, d = n/2, t = ⌊(n/2 − 1)/2⌋ |
Теория чисел
| Соотношение Безу | a·s + b·t = НОД(a, b) |
| Решения ax + by = c | x = x_0 + (b/d)·t, y = y_0 − (a/d)·t, d = НОД(a, b) |
| Малая теорема Ферма | a^(p−1) ≡ 1 (mod p), p ∤ a |
| Теорема Эйлера | a^φ(m) ≡ 1 (mod m), НОД(a, m) = 1 |
| Функция Эйлера | φ(p^k) = p^(k−1)·(p − 1), φ(ab) = φ(a)·φ(b) при НОД(a, b) = 1 |
| Критерий Эйлера | a^((p−1)/2) ≡ 1 ⇔ a — квадратичный вычет по модулю p |
| Первообразный корень | g — первообразный ⇔ g^((p−1)/q) ≢ 1 для всех простых q | p − 1 |
| Китайская теорема | x = Σ a_i·M_i·(M_i⁻¹ mod m_i) mod M, M_i = M / m_i |
Криптография
| Ключи Эль-Гамаля | y = g^x mod p; открытый (p, g, y), секретный x |
| Шифрование Эль-Гамаля | a = g^k mod p, b = y^k·M mod p |
| Расшифрование Эль-Гамаля | M = b·(a^x)⁻¹ mod p |
| Общий секрет Диффи–Хеллмана | K = (g^a)^b = (g^b)^a = g^(ab) mod p |
| Критерий Поклингтона | n − 1 = F·R, F > √n, a^(n−1) ≡ 1, НОД(a^((n−1)/q) − 1, n) = 1 для всех q | F |
Обозначения
| Запись | Смысл |
|---|---|
| a | b | a делит b |
| a ∤ b | a не делит b |
| НОД(a, b) | наибольший общий делитель |
| a ≡ b (mod m) | a и b сравнимы по модулю m |
| a mod m | остаток от деления a на m (от 0 до m − 1) |
| a⁻¹ mod m | обратный элемент: a·a⁻¹ ≡ 1 (mod m) |
| ℤₘ | кольцо вычетов по модулю m |
| ℤₘ* | группа обратимых вычетов по модулю m |
| φ(m) | функция Эйлера |
| ord_m(a) | порядок a по модулю m |
| ⌊x⌋ | целая часть (округление вниз) |
| log₂ | двоичный логарифм |
| ⊕ | сложение по модулю 2 (XOR) |
| d(x, y) | расстояние Хэмминга |
Литература
Теория информации и кодирование
- Shannon C. E. A Mathematical Theory of Communication // Bell System Technical Journal. 1948. Vol. 27. P. 379–423, 623–656.
- Шеннон К. Работы по теории информации и кибернетике. — М.: Издательство иностранной литературы, 1963.
- Cover T. M., Thomas J. A. Elements of Information Theory. — 2nd ed. — Wiley, 2006.
- Huffman D. A. A Method for the Construction of Minimum-Redundancy Codes // Proceedings of the IRE. 1952. Vol. 40, № 9. P. 1098–1101.
- Fano R. M. The Transmission of Information. — Technical Report № 65, MIT Research Laboratory of Electronics, 1949.
Помехоустойчивое кодирование
- Hamming R. W. Error Detecting and Error Correcting Codes // Bell System Technical Journal. 1950. Vol. 29, № 2. P. 147–160.
- Питерсон У., Уэлдон Э. Коды, исправляющие ошибки. — М.: Мир, 1976.
- Мак-Вильямс Ф. Дж., Слоэн Н. Дж. А. Теория кодов, исправляющих ошибки. — М.: Связь, 1979.
Теория чисел и алгебра
- Виноградов И. М. Основы теории чисел. — 9-е изд. — М.: Наука, 1981.
- Бухштаб А. А. Теория чисел. — 2-е изд. — М.: Просвещение, 1966.
- Кострикин А. И. Введение в алгебру. Ч. I. Основы алгебры. — М.: Физматлит, 2000.
- Кнут Д. Э. Искусство программирования. Т. 2. Получисленные алгоритмы. — 3-е изд. — М.: Вильямс, 2000.
Криптография
- Diffie W., Hellman M. E. New Directions in Cryptography // IEEE Transactions on Information Theory. 1976. Vol. 22, № 6. P. 644–654.
- ElGamal T. A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms // IEEE Transactions on Information Theory. 1985. Vol. 31, № 4. P. 469–472.
- Pocklington H. C. The Determination of the Prime or Composite Nature of Large Numbers by Fermat's Theorem // Proceedings of the Cambridge Philosophical Society. 1914. Vol. 18. P. 29–30.
- Maurer U. M. Fast Generation of Prime Numbers and Secure Public-Key Cryptographic Parameters // Journal of Cryptology. 1995. Vol. 8, № 3. P. 123–155.
- Menezes A. J., van Oorschot P. C., Vanstone S. A. Handbook of Applied Cryptography. — CRC Press, 1996. https://cacr.uwaterloo.ca/hac/
- Василенко О. Н. Теоретико-числовые алгоритмы в криптографии. — М.: МЦНМО, 2003.
- Смарт Н. Криптография. — М.: Техносфера, 2005.
- Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. — М.: Триумф, 2002.