Криптография - Лекция 2
.pdfСимметричная криптография. Потоковые
шифры
Егор Никуленков
ВГУ
2013
Свойства операции xor
a (b c) = (a b) c
a a = 0
a b = c ) a c = b
Симметричная криптография
Протокол передачи зашифрованного сообщения
1 Алиса и Боб выбирают систему шифрования
2 Алиса и Боб выбирают ключ
3Алиса шифрует открытый текст с использованием алгоритма шифрования и ключа
4 Алиса посылает шифрованное сообщение Бобу
5Боб дешифрует шифротекст с использованием того же алгоритма и ключа
Определение шифра
Опр: Шифром, определенным на (K; M; C), называется пара ¾эффективно¿ вычислимых алгоритмов (E; D), где
E : K M ! C
D : K C ! M;
s:t: 8m 2 M; k 2 K : D(k; E(k; m)) = m
Шифрование с помощью одноразовых блокнотов (one time pad)
Множества, на которых определен шифр:
M = C = f0; 1gn; K = f0; 1gn
Функция шифрования:
E(k; m) = k m
Функция дешифрования:
D(k; c) = k c
Шифрование с помощью одноразовых блокнотов (one time pad)
Преимущества
Высокая скорость шифрования и дешифрования
Недостатки
Размер ключа равен размеру шифруемого текста
Насколько хорош алгоритм с точки зрения безопасности?
Совершенная безопасность шифра
Основная идея: По известному шифротексту невозможно извлечь какую-либо информацию об открытом тексте.
Опр: Шифр (E; D), определенный на (K; M; C) имеет совершенную безопасность, если
8m0; m1 2 M : jm0j = jm1j и 8c 2 C
Pr[E(k; m0) = c] = Pr[E(k; m1) = c],
где k R K
Совершенная безопасность шифра
Шифрование с помощью одноразовых блокнотов имеет совершенную безопасность
Для того, чтобы шифр имел совершенную безопасность, необходимо, чтобы jKj jMj, поэтому использование шифров с совершенной безопасностью на практике затруднено
Потоковые шифры
Основная идея: Замена "случайного"ключа на "псевдослучайный"ключ.
Для этого используются генераторы псевдослучайных чисел (ГПЧ).
G : f0; 1gs 7!0f; 1gn; n s
Потоковые шифры
Так как ГПЧ может генерировать псевдослучайные строки большой длины, то можно создать шифр, аналогичный шифру с одноразовыми блокнотами. Главное отличие - длина ключа фиксирована и много меньше, чем длина сообщения.
Функция шифрования:
E(k; m) = m G(k)
Функция дешифрования:
D(k; c) = c G(k)