Симметричные криптосистемы
«Ядро» криптосистем
Проблемы практического шифрования
Проблемы практического шифрования
Проблемы практического шифрования
Проблемы практического шифрования
Проблемы практического шифрования
Проблемы практического шифрования
Проблемы практического шифрования
Криптосистема
1. Получение одинакового шифра для одинаковых исходных данных
Метод «Электронной кодовой книги» (ECB)
Метод «Сцепления блоков шифра» (CBC)
Метод «Обратная связь по шифроблоку» (CFB)
Метод «Обратная связь по выходу» (ОFB)
2. Длина шифруемых данных может быть не кратной длине блока
2. Длина шифруемых данных может быть не кратной длине блока
3. Генерация случайной последовательности
Генерация с участием человека
Аппаратные генераторы случайных величин
4. Сжатие исходных данных
5. Запоминание ключа человеком
Получение хеш-значений
Получение хеш-значений
6. Создание хорошего ключа шифрования
7. Зашифрованное сообщение содержит непечатные символы
7. Зашифрованное сообщение содержит непечатные символы
Система Base64
496.00K
Category: informaticsinformatics

Симметричные криптосистемы. Проблемы практического применения блочных шифров и пути их решения

1. Симметричные криптосистемы

Проблемы практического
применения блочных шифров и
пути их решения

2. «Ядро» криптосистем

Современные симметричные системы
шифрования основаны на
применении
блочных криптоалгоритмов

3. Проблемы практического шифрования

1. Получение одинакового шифра для
одинаковых исходных данных
Длина данных кратна длине 1 блока
Х0
Х1
Х2
Исходные данные
Z0
Z1
Z2
Шифрованные данные
Но, если блоки исходного текста одинаковы, то и
блоки шифротекста будут одинаковы – снижается
криптостойкость

4. Проблемы практического шифрования

2. Длина шифруемых данных может быть не
кратна длине блока
Длина данных не кратна длине 1 блока
Х0
Х1
а) Не шифровать
последний блок
Z0
Z1
В шифротексте
хранятся данные
в открытом виде
Х2
Х2
б) Дополнить оставшиеся байты
чем-либо (при дешифровании
их не учитывать)
Х0
Х1
Х2 ??
Z0
Z1
Z2
Чем заполнять? Как хранить
длину исходных данных?

5. Проблемы практического шифрования

3. Генерация случайной последовательности (для
генерации ключей, рандомизации сообщений)
Частое шифрование данных фиксированного формата одним и
тем же ключом (передача информации или команд в АСУ,
банковские операции)
приведет к мало отличающимся шифротекстам
Введение случайных бит в
шифруемые данные с
игнорированием их на
принимающей стороне
Для шифрования очередных
данных использовать
случайный ключ (ключ
сеанса)
Как получать случайные (псевдослучайные) последовательности?

6. Проблемы практического шифрования

4. Сжатие исходных данных
В криптоанализе доказано, что вероятность взлома
криптосхемы при наличии корреляции (связи) между
блоками исходных данных значительно выше, чем
без таковой.
Алгоритмы сжатия (архивации) данных устраняют
избыточность данных, то есть корреляцию между
исходными данными.
Дополнительно уменьшается объем зашифрованных
данных

7. Проблемы практического шифрования

5. Запоминание ключа человеком
Обеспечение секретности ключа:
• пользователь запоминает ключ
• хранение ключа в защищенном месте
Ключ 128 бит = 16 байт = 32 шестнадцатеричные цифры
Предел запоминаемости человека = 8÷12 случайных
символов
Человеку проще запомнить осмысленную фразу, слово, а
не последовательность цифр
Использовать метод преобразующий осмысленную строку
произвольной длины (пароль) в ключ заданной длины.

8. Проблемы практического шифрования

6. Создание хорошего ключа шифрования
• Проблема подбора пароля пользователя
• Некоторые из блочных криптоалгоритмов (в
частности, DES) имеют потенциально слабые
ключи, используя которые получающийся
шифротекст недостаточно криптостоек
Решения:
• Поручить генерацию ключей ЭВМ
• Проверять пароли пользователя на
защищенность

9. Проблемы практического шифрования

1. Получение одинакового шифра для
одинаковых исходных данных
2. Длина шифруемых данных может быть не
кратной длине блока
3. Генерация случайной последовательности
(для генерации ключей, рандомизации
сообщений)
4. Сжатие исходных данных
5. Запоминание ключа человеком
6. Создание хорошего ключа шифрования

10. Криптосистема

– комплексная модель, способная
зашифровывать и расшифровывать данные
произвольного объема и подтверждать время
отправки сообщения, обладающая механизмом
преобразования паролей и ключей, системой
транспортного кодирования.
Основные функции криптосистемы :
• усиление защищенности данных,
• облегчение работы с криптоалгоритмом со стороны
человека
• обеспечение совместимости потока данных с
другим программным обеспечением.

11. 1. Получение одинакового шифра для одинаковых исходных данных

Идея: Шифрование очередного блока сделать
зависящим от соседнего блока (цепочка
зависимостей) или от его позиции
Методы создания цепочек:
Электронная кодовая книга (Electronic Code Book, ECB)
Сцепление блоков шифра (Cipher Block Chaining, CBC)
Обратная связь по шифроблоку (Cipher FeedBack, CFB)
Обратная связь по выходу (Output FeedBack, OFB)

12. Метод «Электронной кодовой книги» (ECB)

Исходные данные шифруются поблочно –
каждый блок не зависимо от других
Метод применялся в
простых портативных
устройствах шифрования –
шифрокнижках
Недостаток: для одинаковых блоков исходных
данных получаются одинаковые шифроблоки
Используется для коротких данных без одинаковых
блоков (ключи шифрования, пароли, …)

13. Метод «Сцепления блоков шифра» (CBC)

На очередной блок накладывается (через XOR)
шифр предыдущего блока, после чего
результат шифруется
Для хранения шифра
предыдущего блока
используется блок
«памяти» (Initial
Value, IV)
Шифрование отдельного блока зависит от всех
предыдущих блоков

14. Метод «Обратная связь по шифроблоку» (CFB)

На очередной блок накладывается (через XOR)
шифр предыдущего блока, получая готовый
шифр
Шифрование отдельного блока зависит от всех
предыдущих блоков

15. Метод «Обратная связь по выходу» (ОFB)

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

16. 2. Длина шифруемых данных может быть не кратной длине блока

Для последнего блока следует выполнить
расширение – дополнить до размера целого
блока
Значения дополняемых байт:
Значения каждого байта равно количеству
дополняемых байт
д д д д д д 2 2
Значения определяются генератором
псевдослучайных чисел д д д д д д 9 44
Значения равно хеш-сумме передаваемого
текста
д д д д д д х х

17. 2. Длина шифруемых данных может быть не кратной длине блока

При использовании методов создания
цепочек CFB (обратная связь по
шифроблоку) и OFB (обратная связь по
выходу) нет необходимости расширять
последний блок данных

18. 3. Генерация случайной последовательности

Программные процедуры генерируют
псевдослучайные величины (из-за
конечного множества состояний ЭВМ)
Источниками настоящих случайных
величин – внешние объекты
(человек, аппаратура)

19. Генерация с участием человека

Набор бессмысленных букв на клавиатуре человеком
1. Над приведенными символами
х х х х х х х х
(байтами) производят действия,
повышающие случайность
Результат
+
2. Фиксируют интервалы
времени (32 бита) между
нажатиями клавиш
0-8 бит
28-14 бит
4-10 бит
Результат
Использование манипулятора мыши
1. Используется величины смещения указателя мыши
2. Используется псевдослучайные последовательности
в момент нажатия кнопок (перемещения) мыши

20. Аппаратные генераторы случайных величин

В криптосистемах военного назначения
используются генераторы чисел,
основанные на физических процессах
Они представляют собой платы, внешние
устройства, подключаемые к ЭВМ
Основные источники белого Гауссовского
шума – высокоточное измерение тепловых
флуктуаций, запись радиоэфира на
частоте, свободной от радиовещания

21. 4. Сжатие исходных данных

Современные форматы данных удобны
для быстрого прочтения и работы. При
этом они имеют объем больший, чем
требуется для их хранения
Основные методы архивации
Сжатие байт не
связанных между собой
(Алгоритм Хаффмена)
Сжатие последовательности
байт неоднократно
встречаемых в тексте
(Алгоритм Лемпела-Зива)

22. 5. Запоминание ключа человеком

Хеширование паролей – метод преобразующий
осмысленную строку произвольной длины
(пароль) в ключ заданной длины
Свойства хеш-функций:
1. Хеш-функция имеет бесконечную область
определения (любые символы пароля);
2. Хеш-функция имеет конечную область значений
(0..2N-1, N – длина ключа в битах);
3. Она необратима (по выходу нельзя определить вход);
4. Изменение на входе одного бита меняет около
половины всех бит выхода (результата хеш-функции).

23. Получение хеш-значений

Требования 3 (необратимость) и 4 (сильная
зависимость выхода от входа) предъявляются
и к блочным криптоалгоритмам. Можно
использовать блочный шифр для получения
ключа, шифруя строку-пароль

24. Получение хеш-значений

Если пароль короткий, то будет выполнено
мало криптопреобразований
Решения:
1) Повторить строку-пароль до желаемой длины;
2) Модифицировать схему криптоалгоритма, чтобы
материал строки-пароля «медленнее» тратился.

25. 6. Создание хорошего ключа шифрования

Создание ключа (пароля) пользователем
Поручить генерацию ключей ЭВМ
Проверять пароли пользователя на
защищенность
Наличие слабых ключей у
криптоалгоритма
Хранить слабые ключи и проверять их
при очередной генерации ключа

26. 7. Зашифрованное сообщение содержит непечатные символы

Отдельный байт шифротекста может
принимать все 256 возможных значений, а
для передачи допустимы около 68 символов
1) Запись каждого байта двумя 16-ричными
цифрами:
байт со значением 255 = «FC»
байт со значением 13 = «0D»
Недостаток – слишком избыточно, в каждом
байте только 4 бита информации

27. 7. Зашифрованное сообщение содержит непечатные символы

Отдельный байт шифротекста может
принимать все 256 возможных значений, а
для передачи допустимы около 68 символов
2) Кодировать 3 байта данных 4-мя байтами
печатных символов. Для кодирования 64
символов достаточно 6 битов.
3 байта исходных * 8 бит = 4 байта печатных * 6 бит
Система Base64 – стандарт на уровне
протоколов сети Интернет

28. Система Base64

Алфавит Base64
• ЗАГЛАВНЫЕ ’A’ – ’Z’ (26 символов)
• строчные ’a’ – ’z’ (26 символов)
• цифры ’0’ – ’9’ (10 символов)
• ’+’, ’/’ (2 символа)
• ’=’ – символ-заполнитель
Символы вне алфавита должны быть проигнорированы
декодером
Если в хвосте потока данных осталось менее 24 битов,
то вместо недостающих 6-ти битных групп записывается
символ-заполнитель «=»
English     Русский Rules