- •Методические материалы
- •1. Основные понятия
- •2. Традиционные криптосистемы
- •2.1. Некоторые особенности криптосистем. Примеры традиционных криптосистем
- •2.2. Теоретическая стойкость криптосистем 2
- •2.2.1. Системы с совершенной секретностью
- •2.2.2. Шифр Вернама
- •2.2.3. Элементы теории информации
- •2.2.4. Расстояние единственности шифра с секретным ключом
- •2.3. Современные криптосистемы с секретным ключом 4
- •2.3.1. Основные положения
- •2.3.2. Блоковые шифры
- •2.3.2.1. Общие положения
- •2.3.2.2. Блоковый шифр гост 28147-89
- •2.3.2.3. Режимы функционирования блоковых шифров
- •2.3.3. Потоковые шифры
- •2.3.3.1. Общие положения
- •2.3.3.2. Режим ofb блокового шифра
- •2.3.3.3. Режим ctr блокового шифра
- •2.3.3.4. Алгоритм rc4 6
- •3. Криптосистемы с открытым ключом 7
- •3.1. Основные положения
- •3.2. Криптосистема Диффи-Хеллмана
- •3.3. Шифр Шамира
- •3.4. Шифр Эль-Гамаля
- •3.5. Шифр rsa. Односторонняя функция с "лазейкой"
- •3.6. Цифровая (электронная) подпись
- •3.6.1. Криптографические хеш-функции
- •3.6.2. Цифровая подпись rsa
- •3.6.3. Цифровая подпись на базе шифра Эль-Гамаля
- •3.6.4. Стандарты на цифровую подпись
- •3.7. Криптографические протоколы
- •3.7.1. Протокол для доказательства с нулевым знанием
- •3.7.2. Протокол для поддержки электронных денег
- •Рекомендуемая литература
2.2.3. Элементы теории информации
К.Шенноном доказано, что любая совершенно секретная система должна иметь ключ, длина которого не меньше, чем длина сообщения. Однако, как мы уже отмечали, это может привести к серьезным затруднениям в организации системы секретной связи. Поэтому во многих практических ситуациях приходится использовать ключи небольшой длины.
Достаточно общие выводы о свойствах таких систем можно сделать в рамках разработанной К.Шенноном теории информации.
Далее мы кратко рассмотрим основные понятия этой теории.
Пусть дана дискретная случайная величина , принимающая значения a1, a2, … ar с вероятностями P1, P2, … Pr.
Определение. Энтропия случайной величины определяется равенством
H() = , (2.11)
где полагается 0log0 = 0.
Если в этом определении используется двоичный логарифм, то энтропия измеряется в битах – этот вариант общепринят в криптографии, теории информации и в компьютерных науках.
Если логарифм натуральный – то единица измерения энтропии называется нат, в случае десятичных логарифмов – дит.
При r = 2, полагая P1 = p, P2 = 1 p, энтропию можно представить в виде:
H() = (plogp + (1 p)log(1 p)). (2.12)
График энтропии для этого случая показан на рис. 2.1.
H()
1
0 0,5 1 p
Рис. 2.1.
Рассмотрим некоторые свойства энтропии.
Теорема 2.3. Энтропия обладает следующими свойствами:
1) H() 0;
2) H() logr;
3) H() = logr при Pi = 1/r, i = 1,2,...,r.
Д о к а з а т е л ь с т в о.
Первое свойство очевидно.
Второе и третье свойства докажем для случая r = 2. Общий случай анализируется аналогично.
Исследуем график энтропии H(p), предполагая, что логарифм натуральный.
Первая производная H/p = lnp + ln(1p) принимает нулевое значение при р = 0,5. Вторая производная 2H/p2 = (p1 + (1p)1) отрицательна, следовательно, в указанной точке достигается максимум.
Вернемся к логарифму по основанию 2 (очевидно, что это не уменьшает общности рассуждений). Получим: maxH(p) = H(0,5) = = = log2 = =1.
Физический смысл энтропии состоит в том, что она может рассматриваться в качестве меры неопределенности.
Проиллюстрируем этот тезис примером. Рассмотрим три случайные величины 1, 2, 3 при r=2. Это может соответствовать, например, такой ситуации: есть три источника сообщений, которые порождают случайные последовательности букв двухбуквенного алфавита {a1, a2}. Генерация каждой очередной буквы данной i-ой последовательности осуществляется независимо от других букв и интерпретируется как получение очередного значения величины i. Пусть вероятности появления различных букв в этих трех последовательностях таковы:
1 : Р(a1) = 1; Р(a2) = 0;
2 : Р(a1) = 0,5; Р(a2) = 0,5;
1 : Р(a1) = 0,01; Р(a2) = 0,99;
Интуитивно ясно, что неопределенность величины 1 равна 0. Формальное соотношение (2.12) приводит к тому же результату.
Также интуитивно ясно, что неопределенность величины 2 должна быть больше неопределенности величины 3. Расчет по формуле (2.12) подтверждает это:
H(2) = 1 бит; H(3) 0,08 бит.
Указанная интерпретация энтропии идет от интерпретации аналогичных понятий, вводимых в классической термодинамике и статистической физике. В то же время в рамках теории информации этому понятию можно дать существенно более широкую трактовку (см. ниже).
Подобно (2.11), определение энтропии можно дать для многомерной случайной величины. Пусть рассматривается векторная случайная величина = (1, ..., n) при условии, что i-ый компонент вектора (его можно рассматривать как отдельную случайную величину) принимает значения (состояния) из дискретного множества мощности ri. Тогда:
H(1, ..., n) = (2.13)
где индекс ji перебирает множество номеров состояний компонента i, а вероятность реализации соответствующего набора состояний.
Рассмотрим двухмерный случай. Пусть множество значений величины 1 – (а1, ..., аr), а величины 2 – (b1, ..., bs). Пусть при оценке значения случайной величины 2 значение случайной величины 1 известно. Тогда можно определить условную энтропию:
H(2 | 1) = (2.13а)
где .
Прокомментируем соотношение (2.13а). Если реализуется конкретное событие 1 = аi (i фиксировано), то условные вероятности реализации событий 2 = bj, j = 1,..., s равны . Отсюда по общим принципам расчета энтропии получим энтропию для условного процесса – когда i фиксировано (внутренняя сумма в (2.13а)). После этого усредняем эту условную энтропию (внешняя сумма).
Теорема 2.4. Свойства двухмерной энтропии:
H(1, 2) = H(1) + H(2 | 1), (2.14)
в частности, для независимых случайных величин:
H(1, 2) = H(1) + H(2). (2.15)
Интерпретация теоремы: пусть в первом опыте порождаются значения величины 1, а во втором – величины 2. Тогда общая неопределенность должна быть равна неопределенности первого опыта плюс условная неопределенность второго опыта. В случае независимости опытов знание результатов одного опыта не несет никакой информации о другом опыте, что и отображено в формуле (2.15).
Рассмотрим теперь n-мерную случайную величину. Тогда аналогичные (2.14) и (2.15) соотношения имеют вид:
общий случай: H(1, ..., n) = H(1) + H(2 | 1) + H(3 | 1, 2) + H(n | 1, ..., n1); (2.16)
для независимых случайных величин: H(1, ..., n) = . (2.17)
Последовательность случайных величин 1, ..., n, где i A, A = {а1, ..., аr} – некоторый алфавит, можно рассматривать как некоторый стационарный процесс (в узком смысле). Тогда свойства энтропии можно изучать, пользуясь теорией таких процессов.
Введем понятие удельной (на одну букву) энтропии n-го порядка.
h+n = H(1, ..., n)/n. (2.18)
Определим также величину
hn = H(n | 1, ..., n1). (2.19)
Можно доказать следующие свойства введенных величин:
h +n h+n1 , n > 1;
hn h+n (2.20)
hn hn1 , n > 1;
Если рассматривается процесс без памяти (то есть величины 1, ..., n независимы), то h+n = hn = h.
Теорема 2.5. Для стационарного случайного процесса существуют пределы h+n и hn, причем эти пределы равны. Далее этот предел будем обозначать символом h.
Для процесса без памяти maxH(i) = logr.
Поэтому, с учетом теоремы 2.5, соотношений (2.17), (2.18) и неравенств (2.20), получим
maxh = logr, (2.21)
причем максимум достигается для процессов без памяти, у которых все буквы порождаются с равными вероятностями 1/r.
Введем величину:
R = logr h, (2.22)
называемую избыточностью на одну букву сообщения.
Неформально эту величину можно интерпретировать как меру неиспользованной части алфавита, а точнее, это мера взаимной зависимости символов и их "неравновероятности".
В связи с введением этой величины вспомним пример, в котором алгоритм шифрования задавался соотношением (2.3), а сообщениями были пятизначные десятичные числа. В этом примере все цифры сообщения были независимы и равновероятны. Поэтому избыточность R = 0 и именно поэтому даже такой примитивный шифр оказался невскрываемым (далее мы достаточно строго докажем правомерность этого утверждения – см. комментарий к теореме 2.6).