Что понимается под требованием высокой криптостойкости алгоритма шифрования
Криптографическая стойкость
Криптографическая стойкость (или криптостойкость) — способность криптографического алгоритма противостоять криптоанализу. Стойким считается алгоритм, который для успешной атаки требует от противника недостижимых вычислительных ресурсов, недостижимого объёма перехваченных открытых и зашифрованных сообщений или же такого времени раскрытия, что по его истечению защищенная информация будет уже не актуальна, и т. д. В большинстве случаев криптостойкость нельзя математически доказать, можно только доказать уязвимости криптографического алгоритма.
Содержание
Типы криптостойких систем шифрования
Абсолютно стойкие системы
Доказательство существования абсолютно стойких алгоритмов шифрования было выполнено Клодом Шенноном и опубликовано в работе «Теория связи в секретных системах». [1] Там же определены требования к такого рода системам:
Стойкость этих систем не зависит от того, какими вычислительными возможностями обладает криптоаналитик. Практическое применение систем, удовлетворяющих требованиям абсолютной стойкости, ограничено соображениями стоимости и удобства пользования.
Некоторыми аналитиками утверждается, что Шифр Вернама является одновременно абсолютно криптографически стойким и к тому же единственным [источник не указан 1064 дня] шифром, который удовлетворяет этому условию.
Достаточно стойкие системы
В основном применяются практически стойкие или вычислительно стойкие системы. Стойкость этих систем зависит от того, какими вычислительными возможностями обладает криптоаналитик. Практическая стойкость таких систем базируется на теории сложности и оценивается исключительно на какой-то определенный момент времени и последовательно c двух позиций:
В каждом конкретном случае могут существовать дополнительные критерии оценки стойкости.
Оценка криптостойкости систем шифрования
Начальная оценка
Поскольку атака методом грубой силы (полным перебором всех ключей) возможна для всех типов криптографических алгоритмов, кроме абсолютно стойких «по Шеннону», для вновь созданного алгоритма она может являться единственной существующей. Способы её оценки основываются на вычислительной сложности, которая затем может быть выражена во времени, деньгах, и требуемой производительности вычислительных ресурсов, например, в MIPS. Эта оценка пока является максимальной и минимальной одновременно.
Текущая оценка
Дальнейшее исследование алгоритма с целью поиска слабостей (уязвимостей) (криптоанализ) добавляет оценки стойкости по отношению к известным криптографическим атакам (Линейный криптоанализ, дифференциальный криптоанализ и более специфические) и могут понизить известную стойкость.
Например, для многих симметричных шифров существуют слабые ключи и S-блоки, применение которых снижает криптографическую стойкость. Также важным способом проверки стойкости являются атаки на реализацию, выполняемые для конкретного программно-аппаратно-человеческого комплекса.
Важность длительной проверки и открытого обсуждения
Чем более длительным и экспертным является анализ алгоритма и реализаций, тем более достоверной можно считать его стойкость. В нескольких случаях длительный и внимательный анализ приводил к снижению оценки стойкости ниже приемлемого уровня (например, в черновых версиях FEAL). Недостаточная проверка (по мнению многих криптографов — искусственное ослабление) алгоритма потокового шифрования А5/1 привела к успешной атаке.
Принципы построения блочных шифров с закрытым ключом
Требования к блочному алгоритму шифрования
К современным алгоритмам блочного шифрования предъявляют достаточно жесткие требования, связанные с областью применения, возможностью реализации на различных вычислительных платформах и другими факторами. Рассмотрим основные из требований.
Некоторое уточнение необходимо сделать относительно пункта 1, требующего высокую криптостойкость алгоритма шифрования. Обычно под «высокой криптостойкостью» понимают, что шифр должен быть стоек по отношению к атаке по выбранному тексту. Это автоматически подразумевает его стойкость по отношению к атакам по шифротексту и по известному тексту. Однако известно, что при атаке по выбранному тексту шифр всегда может быть взломан путем перебора ключей. Поэтому требование стойкости шифра можно уточнить следующим образом: » Шифр стоек (при атаке по выбранному тексту), если для него не существует алгоритма взлома, существенно более быстрого, чем прямой перебор ключей». Интересно, что по состоянию на сегодняшний день ни для одного используемого шифра не доказано строго соответствие этому определению стойкости.
Сеть Фейштеля
На рис. 3.1 была представлена общая структура блочного алгоритма шифрования. Понятно, что само преобразование данных выполняется в раундах или шагах шифрования. Какие же действия надо выполнить в одном раунде, чтобы в результате выполнения всего алгоритма получить надежно зашифрованные данные?
Раунд, организованный по сети Фейштеля имеет следующую структуру. Входной блок делится на несколько частей равной длины. Эти части блока называются ветвями. Так, например, если блок имеет длину 64 бита, используются две ветви по 32 бита каждая. Ветви обрабатываются по отдельности, после чего осуществляется циклический сдвиг всех ветвей влево. В случае двух ветвей каждый раунд имеет структуру, показанную на рис. 3.2
В последнее время все чаще используются различные разновидности сети Фейштеля для 128-битного блока с четырьмя ветвями. Увеличение количества ветвей, а не размерности каждой ветви связано с тем, что наиболее популярными до сих пор остаются процессоры с 32-разрядными словами, следовательно, оперировать 32-разрядными словами эффективнее, чем с 64-разрядными.
В следующих лекциях рассматриваются некоторые используемые на практике блочные алгоритмы симметричного шифрования. Их описание в данном курсе лекций нельзя считать абсолютно полным, например, по приведенным описаниям трудно составить программы шифрования/расшифрования. Это связано с ограничением на объем данного учебного пособия. Однако все основные этапы рассматриваемых алгоритмов в учебном пособии приведены, так же как и особенности реализации и применения.
Ключевые термины
Шифр – совокупность заранее оговоренных способов преобразования исходного секретного сообщения с целью его защиты.
Краткие итоги
Блочный алгоритм симметричного шифрования может иметь в своей основе сеть (схему) Фейштеля. В этом случае входной блок делится на несколько частей равной длины (ветви). Ветви обрабатываются по отдельности, после чего осуществляется циклический сдвиг всех ветвей влево.
Принципы построения блочных шифров с закрытым ключом
Требования к блочному алгоритму шифрования
К современным алгоритмам блочного шифрования предъявляют достаточно жесткие требования, связанные с областью применения, возможностью реализации на различных вычислительных платформах и другими факторами. Рассмотрим основные из требований.
Некоторое уточнение необходимо сделать относительно пункта 1, требующего высокую криптостойкость алгоритма шифрования. Обычно под «высокой криптостойкостью» понимают, что шифр должен быть стоек по отношению к атаке по выбранному тексту. Это автоматически подразумевает его стойкость по отношению к атакам по шифротексту и по известному тексту. Однако известно, что при атаке по выбранному тексту шифр всегда может быть взломан путем перебора ключей. Поэтому требование стойкости шифра можно уточнить следующим образом: » Шифр стоек (при атаке по выбранному тексту), если для него не существует алгоритма взлома, существенно более быстрого, чем прямой перебор ключей». Интересно, что по состоянию на сегодняшний день ни для одного используемого шифра не доказано строго соответствие этому определению стойкости.
Сеть Фейштеля
На рис. 3.1 была представлена общая структура блочного алгоритма шифрования. Понятно, что само преобразование данных выполняется в раундах или шагах шифрования. Какие же действия надо выполнить в одном раунде, чтобы в результате выполнения всего алгоритма получить надежно зашифрованные данные?
Раунд, организованный по сети Фейштеля имеет следующую структуру. Входной блок делится на несколько частей равной длины. Эти части блока называются ветвями. Так, например, если блок имеет длину 64 бита, используются две ветви по 32 бита каждая. Ветви обрабатываются по отдельности, после чего осуществляется циклический сдвиг всех ветвей влево. В случае двух ветвей каждый раунд имеет структуру, показанную на рис. 3.2
В последнее время все чаще используются различные разновидности сети Фейштеля для 128-битного блока с четырьмя ветвями. Увеличение количества ветвей, а не размерности каждой ветви связано с тем, что наиболее популярными до сих пор остаются процессоры с 32-разрядными словами, следовательно, оперировать 32-разрядными словами эффективнее, чем с 64-разрядными.
В следующих лекциях рассматриваются некоторые используемые на практике блочные алгоритмы симметричного шифрования. Их описание в данном курсе лекций нельзя считать абсолютно полным, например, по приведенным описаниям трудно составить программы шифрования/расшифрования. Это связано с ограничением на объем данного учебного пособия. Однако все основные этапы рассматриваемых алгоритмов в учебном пособии приведены, так же как и особенности реализации и применения.
Ключевые термины
Шифр – совокупность заранее оговоренных способов преобразования исходного секретного сообщения с целью его защиты.
Краткие итоги
Блочный алгоритм симметричного шифрования может иметь в своей основе сеть (схему) Фейштеля. В этом случае входной блок делится на несколько частей равной длины (ветви). Ветви обрабатываются по отдельности, после чего осуществляется циклический сдвиг всех ветвей влево.
Принципы построения блочных шифров с закрытым ключом
Требования к блочному алгоритму шифрования
К современным алгоритмам блочного шифрования предъявляют достаточно жесткие требования, связанные с областью применения, возможностью реализации на различных вычислительных платформах и другими факторами. Рассмотрим основные из требований.
Некоторое уточнение необходимо сделать относительно пункта 1, требующего высокую криптостойкость алгоритма шифрования. Обычно под «высокой криптостойкостью» понимают, что шифр должен быть стоек по отношению к атаке по выбранному тексту. Это автоматически подразумевает его стойкость по отношению к атакам по шифротексту и по известному тексту. Однако известно, что при атаке по выбранному тексту шифр всегда может быть взломан путем перебора ключей. Поэтому требование стойкости шифра можно уточнить следующим образом: » Шифр стоек (при атаке по выбранному тексту), если для него не существует алгоритма взлома, существенно более быстрого, чем прямой перебор ключей». Интересно, что по состоянию на сегодняшний день ни для одного используемого шифра не доказано строго соответствие этому определению стойкости.
Сеть Фейштеля
На рис. 3.1 была представлена общая структура блочного алгоритма шифрования. Понятно, что само преобразование данных выполняется в раундах или шагах шифрования. Какие же действия надо выполнить в одном раунде, чтобы в результате выполнения всего алгоритма получить надежно зашифрованные данные?
Раунд, организованный по сети Фейштеля имеет следующую структуру. Входной блок делится на несколько частей равной длины. Эти части блока называются ветвями. Так, например, если блок имеет длину 64 бита, используются две ветви по 32 бита каждая. Ветви обрабатываются по отдельности, после чего осуществляется циклический сдвиг всех ветвей влево. В случае двух ветвей каждый раунд имеет структуру, показанную на рис. 3.2
В последнее время все чаще используются различные разновидности сети Фейштеля для 128-битного блока с четырьмя ветвями. Увеличение количества ветвей, а не размерности каждой ветви связано с тем, что наиболее популярными до сих пор остаются процессоры с 32-разрядными словами, следовательно, оперировать 32-разрядными словами эффективнее, чем с 64-разрядными.
В следующих лекциях рассматриваются некоторые используемые на практике блочные алгоритмы симметричного шифрования. Их описание в данном курсе лекций нельзя считать абсолютно полным, например, по приведенным описаниям трудно составить программы шифрования/расшифрования. Это связано с ограничением на объем данного учебного пособия. Однако все основные этапы рассматриваемых алгоритмов в учебном пособии приведены, так же как и особенности реализации и применения.
Ключевые термины
Шифр – совокупность заранее оговоренных способов преобразования исходного секретного сообщения с целью его защиты.
Краткие итоги
Блочный алгоритм симметричного шифрования может иметь в своей основе сеть (схему) Фейштеля. В этом случае входной блок делится на несколько частей равной длины (ветви). Ветви обрабатываются по отдельности, после чего осуществляется циклический сдвиг всех ветвей влево.
Принципы построения блочных шифров с закрытым ключом
Требования к блочному алгоритму шифрования
К современным алгоритмам блочного шифрования предъявляют достаточно жесткие требования, связанные с областью применения, возможностью реализации на различных вычислительных платформах и другими факторами. Рассмотрим основные из требований.
Некоторое уточнение необходимо сделать относительно пункта 1, требующего высокую криптостойкость алгоритма шифрования. Обычно под «высокой криптостойкостью» понимают, что шифр должен быть стоек по отношению к атаке по выбранному тексту. Это автоматически подразумевает его стойкость по отношению к атакам по шифротексту и по известному тексту. Однако известно, что при атаке по выбранному тексту шифр всегда может быть взломан путем перебора ключей. Поэтому требование стойкости шифра можно уточнить следующим образом: » Шифр стоек (при атаке по выбранному тексту), если для него не существует алгоритма взлома, существенно более быстрого, чем прямой перебор ключей». Интересно, что по состоянию на сегодняшний день ни для одного используемого шифра не доказано строго соответствие этому определению стойкости.
Сеть Фейштеля
На рис. 3.1 была представлена общая структура блочного алгоритма шифрования. Понятно, что само преобразование данных выполняется в раундах или шагах шифрования. Какие же действия надо выполнить в одном раунде, чтобы в результате выполнения всего алгоритма получить надежно зашифрованные данные?
Раунд, организованный по сети Фейштеля имеет следующую структуру. Входной блок делится на несколько частей равной длины. Эти части блока называются ветвями. Так, например, если блок имеет длину 64 бита, используются две ветви по 32 бита каждая. Ветви обрабатываются по отдельности, после чего осуществляется циклический сдвиг всех ветвей влево. В случае двух ветвей каждый раунд имеет структуру, показанную на рис. 3.2
В последнее время все чаще используются различные разновидности сети Фейштеля для 128-битного блока с четырьмя ветвями. Увеличение количества ветвей, а не размерности каждой ветви связано с тем, что наиболее популярными до сих пор остаются процессоры с 32-разрядными словами, следовательно, оперировать 32-разрядными словами эффективнее, чем с 64-разрядными.
В следующих лекциях рассматриваются некоторые используемые на практике блочные алгоритмы симметричного шифрования. Их описание в данном курсе лекций нельзя считать абсолютно полным, например, по приведенным описаниям трудно составить программы шифрования/расшифрования. Это связано с ограничением на объем данного учебного пособия. Однако все основные этапы рассматриваемых алгоритмов в учебном пособии приведены, так же как и особенности реализации и применения.
Ключевые термины
Шифр – совокупность заранее оговоренных способов преобразования исходного секретного сообщения с целью его защиты.
Краткие итоги
Блочный алгоритм симметричного шифрования может иметь в своей основе сеть (схему) Фейштеля. В этом случае входной блок делится на несколько частей равной длины (ветви). Ветви обрабатываются по отдельности, после чего осуществляется циклический сдвиг всех ветвей влево.