Что означает шифрование и дешифровка на лету
Шифрование/дешифрование данных на стороне клиента в web-ориентированных системах
В наши дни всё больше программ переводятся в так называемый «web-ориентированный» вид, то есть используется принцип клиент-сервер, что позволяет хранить данные удалённо и получать к ним доступ через тонкий клиент (браузер).
Одновременно с удобством использования остро встаёт вопрос о защищённости этих данных. Конфиденциальная информация может стать доступна другим людям несколькими путями. Во-первых, к пользователю могут быть применены физические меры для выпытывания. Во-вторых, при передаче данные могут быть перехвачены различными снифферами. И, в-третьих, на сервер могут быть произведены хакерские атаки, что позволит злоумышленникам похитить информацию, либо недобросовестный администратор сервера воспользуется ею в личных целях.
Задача
Реализация
Тот факт, что обработка данных должна производиться исключительно на стороне клиента, ограничивал выбор средств для реализации. На начальной стадии разработки была опробована связка «Java-апплет – Java-сервлет», но через какое-то время пришлось искать другой способ, потому что были трудности в отладке и передаче данных между апплетом и сервлетом.
Я остановился на использовании возможностей HTML5 и JavaScript-объекта «XmlHttpRequest Level 2» в частности, потому что они позволили с меньшими усилиями реализовать необходимый функционал.
Работа с текстом
Работа с файлами
Работа с изображениями
Немного ключевого исходного кода для работы с файлами:
Исходный код для работы с изображениями:
Я не стал здесь приводить реализацию функций XOREncrypt, XORDecrypt и класса Base64, чтобы не загромождать и без того длинный листинг. Их можно посмотреть в прилагаемом архиве с исходным кодом.
Код Java-апплета для вывода диалога сохранения файла.
Шифрование дисков «на лету»: как защитить конфиденциальную информацию
Как отмечалось в статье «Как управлять рисками утечки критичных данных», бизнес вынужден постоянно снижать уровень риска утечки конфиденциальной информации. Наиболее простой и сравнительно недорогой способ – это использование систем прозрачного шифрования. Основное достоинство прозрачного шифрования заключается в том, что от пользователя не требуется никакого участия в процессах, все они происходят в фоновом режиме «на лету».
От постановки требований к системе зависит многое
Системы прозрачного шифрования, представленные на рынке, имеют, на первый взгляд, много общего: ведь все они решают одну и ту же задачу. Но у бизнеса всегда есть свои специфические требования. Ниже приведен список наиболее актуальных из них.
Требования, предъявляемые к системам прозрачного шифрования
№ | Описание требований | |
---|---|---|
1 | Стойкость шифрования | Стойкость защиты должна быть такой, чтобы секретность не нарушалась даже в том случае, когда злоумышленнику становится известен метод шифрования |
2 | Надежность алгоритмов шифрования | Используемый алгоритм шифрования не должен иметь слабых мест, которыми могли бы воспользоваться криптоаналитики |
3 | Безопасное использование ключей | Ключ шифрования должен быть недоступен для злоумышленника. Несоблюдение принципов безопасного использования ключей шифрования может поставить под угрозу защищенность информации, даже при том, что в системе будут реализованы самые криптостойкие алгоритмы |
4 | «Прозрачность» шифрования | Шифрование должно происходить максимально «прозрачно» для пользователя – он не замечает процесса зашифрования и расшифрования данных во время работы |
5 | Устойчивость к ошибкам | Система должна быть максимально устойчива к случайным ошибкам и неправильным действиям пользователей |
6 | Многофакторная аутентификация | Выполнение проверки прав пользователей на доступ к защищаемым данным должно быть реализовано на основе средств многофакторной аутентификации |
7 | Дополнительный функционал для работы в чрезвычайных ситуациях | В чрезвычайных ситуациях, когда становится известно о попытке физического доступа или попытке изъятия серверного оборудования, крайне полезным инструментом защиты становится возможность экстренного прекращения доступа к данным |
8 | Защита от инсайдеров | Все пользователи системы, включая системных администраторов и технический персонал, должны иметь доступ к физической файловой системе исключительно в рамках своих полномочий, прописанных в ИБ-политиках компании |
Источник: «Аладдин Р.Д.», 2016
Как защититься от системного администратора?
Злоумышленники, интересующиеся приватными данными, могут находиться и внутри компании. Серьезную угрозу, от которой не спасет криптография, представляют технические специалисты и системные администраторы компании. Но при всем при этом они, в силу своих должных обязанностей, обязаны следить за работоспособностью систем, обеспечивающих безопасность на каждом компьютере.
В условиях текущей непростой экономической ситуации у ряда сотрудников, включая системных администраторов, возникает желание скопировать корпоративную информацию для ее продажи на черном рынке или в качестве дополнительного преимущества перед конкурентами-соискателями при устройстве на новую работу. Это обостряет отношения между руководством и персоналом компаний.
А значит, выбираемая система прозрачного шифрования просто обязана иметь механизмы, реализующие комплекс требований по защите от системного администратора, что нашло свое место в списке требований к решению.
Виртуальная файловая система – важный компонент защиты
Так какой же механизм лежит в основе лучших в своем классе систем прозрачного шифрования, позволяющий реализовать многочисленные требования, представленные выше? На практике он выражается простой формулой: файл для владельца информации доступен в расшифрованном виде, а для всех остальных – только в зашифрованном виде без доступа к ключам. Специалисты называют этот функционал «одновременностью доступа».
«Но если на компьютере пользователя установлена ОС Windows, что в РФ практически стало корпоративным стандартом, то достижение «одновременности доступа» – задача не из простых. Виной тому эффект когерентности Windows: файл в ней может иметь свои копии, помимо файловой системы, в менеджере памяти или кэше. Поэтому приходится решать и проблему «одновременности существования» файлов», – рассказывает Илья Щавинский, менеджер по развитию бизнеса компании «Аладдин Р.Д.». А проблема решается оригинальным способом при помощи совместной работы «виртуальной файловой системы» (ВФС) и фильтра драйвера файловых систем, схема работы которых приведена ниже.
Виртуальная файловая система
Источник: «Аладдин Р.Д.», 2016
Как видно из схемы, диспетчер кэша «считает», что работает с двумя разными файлами. Для этого ВФС формирует дополнительную парную структуру описателей файлов. Специальный драйвер файловых систем обеспечивает постоянное обновление зашифрованного файла в реальной файловой системе, вслед за изменением его незашифрованной копии в ВФС. Таким образом, находящиеся на диске данные всегда зашифрованы.
Для ограничения доступа к файлам драйвер файловых систем при обращении к защищенным ресурсам загружает в оперативную память ключи шифрования. Сама же ключевая информация защищена ключевой парой сертификата пользователя и хранится в криптохранилище.
В результате авторизованный пользователь видит одну файловую систему, виртуальную с расшифрованными файлами, а неавторизованные в то же самое время будут видеть физическую (реальную) файловую систему, где имена и содержимое файлов зашифрованы.
Системные администраторы и другие технические специалисты, у которых нет возможности получить ключи шифрования в расшифрованном виде, будут работать с реальной, надежно зашифрованной файловой системой. При этом у них сохраняется возможность корректно выполнять свои служебные обязанности, например создавать резервные копии зашифрованной информации, не нарушая конфиденциальности самой информации. Тем самым выполнятся важное требование о защите информации от инсайдеров.
Без многофакторной аутентификации риски не снизить
Для многофакторной аутентификации пользователей для загрузки операционной системы и для доступа к зашифрованным данным обычно применяют токен или смарт-карту – устройство, на которых хранится сертификат открытого ключа этого пользователя и соответствующий ему закрытый ключ.
Централизованная система управления и хранения ключей шифрования защищает от потери этих ключей ‐ они находятся на защищенном сервере и передаются пользователю лишь по мере необходимости. Также компания контролирует доступ сотрудников к принадлежащим им данным и в любой момент может запретить его. Кроме того, возможен мониторинг событий доступа к защищенным данным, а также включение режима шифрования всех данных, отправляемых на флэш-накопители и т.д.
Состав типичной системы прозрачного шифрования
Источник: «Аладдин Р.Д.», 2016
За выполнение операций с зашифрованными дисками, с сертификатами пользователей, а также за управление учетными записями, лицензиями и компьютерами отвечает сервер бизнес-логики. Вся ключевая информация хранится в криптохранилище, расположенном в базе данных MS SQL. Данные о ресурсах (компьютерах, ноутбуках), а также учетные записи пользователей хранятся в MS Active Directory.
Шлюз клиентов выполняет аутентификацию и перенаправляет запросы от клиентского агента к серверу бизнес-логики. Для управления системой и ее аудита предусмотрена рабочая станция администратора, который обладает строго определенным набором привилегий. Все это отражено на схеме выше.
При отключении токена доступ к защищенным данным автоматически блокируется, а без него и знания пароля невозможно получить доступ к защищенной информации во время отсутствия владельца персонального компьютера.
В случае случайной поломки или пропажи токена пользователю достаточно сообщить об этом администратору безопасности. При этом происходит генерация новых паролей и сертификатов, а также выдача нового токена. При первом запуске с этим ключом компьютер пользователя после ручного ввода ключа шифрования системного диска произведет полное перешифрование соответствующих данных на накопителе.
Следование стандартам ИБ – лучшее средство защиты информации
Но встает вопрос «А каким образом происходит загрузка операционной системы и драйверов, если диск зашифрован полностью?». Есть несколько решений, одно из которых заключается в том, что осуществляется переименование средствами ПО клиентского агента загрузчика Windows и запись с реальным именем ссылки на другой загрузчик, предоставляемый вендором системы шифрования.
В дальнейшем при запуске компьютера используется новый загрузчик, который, в свою очередь, расшифровывает и загружает исходный загрузчик операционной системы Windows. «За внешней простотой скрыта очень непростая технология. Ведь для совместимости с парком оборудования многочисленных производителей «железа» приходится обеспечивать поддержку разных версий BIOS и UEFI. Кроме того, производители программного обеспечения должны быть готовы практически к любым, пусть и недокументированным действиям операционной системы и ее трансформациям», – уточняет Владимир Милишников, главный специалист ДИБ КЦ ПАО «Ростелеком».
Подводя итоги, необходимо отметить, что системы прозрачного шифрования дисков – высокотехнологичный наукоемкий продукт, разработка и поддержка которого доступна весьма ограниченному кругу компаний. Но свою основную функцию – снижение уровня риска утечки конфиденциальной информации – они выполняют неплохо. А ведь скомпрометированные данные сейчас стоят намного дороже «железа», на котором они хранятся и обрабатываются, а также самих средств защиты вместе взятых.
PRESENT — ультралегкое блочное шифрование (перевод оригинальной статьи PRESENT: An Ultra-Lightweight Block Cipher)
Привет, Хабр! Привожу тут перевод оригинальной статьи «PRESENT: An Ultra-Lightweight Block Cipher» за авторством Robert B. Weide Богданова, Лендера, Паара, Пошмана, Робшава, Сеурина и Виккелсоя.
Аннотация
1. Введение
Основной курс в IT текущего столетия — развитие малых вычислительных устройств, причем применяемых не только потребительских товарах, но и формирующих неотъемлемую — и незаметную — часть окружения — инфраструктуру связи. Уже выявлено, что подобные внедрения создают целый спектр весьма конкретных угроз безопасности. В то же время, подручные криптографические решения, даже довольно примитивные, зачастую не подходят для использования в сильно ограниченных по ресурсам окружениях.
Пожалуй, здесь стоит пояснить, почему мы вообще решили разрабатывать новый блочный шифр, ведь общепризнанный факт заключается в том, что поточные шифры, потенциально, более компактны. Действительно, в начале мы приложили усилия по пониманию устройства компактных поточных шифров в процессе работы над проектом eSTREAM, а так же нескольких других многообещающих предположений, кажущихся быстродейственными. Но мы заметили несколько причин, по которым выбрали все-таки блочный шифр. Во-первых, блочное шифрование универсально и примитивно, а при использовании его в режиме шифрования, т.е. используя уже зашифрованные блоки для шифровки следующих, мы получаем потоковое шифрование. Во-вторых, и, пожалуй, в-главных, тонкости принципов работы блочных шифров кажутся лучше исследованными, нежели чем принципы работы поточных шифрующих алгоритмов. К примеру, в то время как есть обширная теория на базе использования регистров сдвига с линейной обратной связью, не так просто объединить эти блоки так, чтобы получить безопасное предложение. Мы предполагаем, что аккуратно спроектированный блочный шифр может быть более безопасен, нежели чем свежесозданный поточный шифр. Таким образом, получаем, что блочный шифр, требующий столько же ресурсов железа, сколько и компактный поточный шифр, может быть весьма интересен.
Важно отметить, что создавая новый блочный шифрующий алгоритм, особенно с выделяющейся производительностью, мы не просто гонимся за инновациями. Напротив, разработка и реализация шифра идут рука об руку, выявляя некоторые фундаментальные пределы и присущие ограничения. Например, заданный уровень безопасности накладывает ограничения на минимальную длину ключа и блока. Даже обработка 64-битного состояния 80-битным ключом ограничивает минимальный размер устройства. Также можно заметить, что воплощение в «железо» — в особенности же компактность аппаратной реализации — способствует повторяемости. Даже малые изменения могут негативно сказаться на объеме устройства. Однако, криптоаналитики так же ценят повторяемость и ищут математические структуры, которые легко размножаются во многих раундах. Так как много простых повторяющихся структур можно использовать, не подрывая безопасность системы?
Итак, в данной статье будет описан компактный блочный шифр PRESENT. После короткого ревью существующей литературы, всю остальную статью мы оформили в стандартном виде. Шифр описан в секции 3, в секции 4 описаны проектные решения. В 5 секции мы рассмотрим безопасность, тогда как секция 6 будет содержать в себе детальный анализ производительности. Завершается же данный труд нашими выводами.
2. Существующие труды
В то время, как объем работ, посвященных дешевой криптографии непрерывно растет, количество статей посвященных сверх-легким шифрам на удивление мало. Переводя фокус на устройство протокола, мы перестанем ссылаться на работы по дешевым протоколам связи и идентификации. Одна из наиболее обширных работ по компактной реализации в настоящий момент связана с проектом eSTREAM. В рамках одной из частей этого проекта были предложены новые поточные шифры, приспособленные к эффективному воплощению в «железе». По ходу данной работы намечаются многообещающие кандидаты. Пока соотношения примерны, но из брошюр по внедрению следует, что для компактных шифров проекта eSTREAM потребуется порядка 1300-2600 GE (Gate equivalents).
Среди блочных шифров, один из широко известных, а именно DES был создан с учетом эффективности по оборудованию. Помятуя о весьма ограниченном состоянии полупроводников в начале 1970-х, не удивительно, что DES обладает весьма конкурентноспособными свойствами в реализации. Во время разработки, на DES исполнение было затрачено 3000GE, а после сериализации это число опустилось до 2300GE. Однако длина ключа DES ограничивает его полезность во многих приложениях и приводит к тому, что на его основе разрабатываются специализированные модификации, например, с повышенной криптостойкостью или удлиненным ключом.
Касательно современных блочных шифров, в этой статье приводится тщательный анализ дешевого в исполнении AES. Однако, на его реализацию требуется порядка 3600 GE, что является непрямым следствием проектировки штфра под 8- и 32-битные процессоры. Системные требования TEA не известны, однако по прикидкам требуют около 2100 GE. Есть и еще 4 решения, заточенных под дешевое оборудование: mCRYPTON (имеет точное исполнение в 2949 GE), HIGHT (около 3000 GE), SEA (порядка 2280 GE) и CGEN (так же около 2280 GE), несмотря на то, что последний и не был задуман как блочный шифр.
3. Блочный шифр PRESENT
PRESENT — частный случай SP-сети и состоит из 31 раунда. Длина блока составляет 64 бита, а ключи поддерживаются в 2 вариантах, 80- и 128-битные. Такого уровня защиты должно вполне хватать для низкозащищенных приложений, обычно используемых для развертывания на основе тегов, а кроме того, что важнее, PRESENT во многом совпадает своими конструтивными особенностями с поточными шифрами проекта eSTREAM, заточенными на эффективную реализацию в железе, что позволяет нам адекватно сравнивать их.
Требования по безопасности и эксплуатационные свойства 128-битных версий предоставлены в приложении к оригинальной статье.
Каждый из 31 раундов состоит из операции XOR, чтобы ввести ключ Ki для 1 ≤ i ≤ 32, где K32 используется для «отбеливания» ключа, линейной побитовой перестановки и нелинейного слоя замещения (или, попросту говоря, увеличения стойкости шифрования). Нелинейный слой использует раздельные 4-битные S-блоки, которые применяются параллельно 16 раз на каждом раунде. Шифр, описанный псевдо-кодом представлен на рисунке:
Теперь каждая стадия определяется по очереди. Обоснования конструкции приведены в 4 разделе, а биты всюду нумеруются с нуля, начиная с правого в блоке или слове.
Добавление раундового ключа (addRoundKey). Задан раундовый ключ Ki = k i 63… k i 0, где 1 ≤ i ≤ 32, а так же текущее состояние b63… b0. Добавление раундового ключа к текущему состоянию происходит по модулю 2 (bj = bj ⊕ k i j, где 0 ≤ j ≤ 63).
Слой S-блоков (sBoxlayer). Используемые в PRESENT S-блоки отображают 4-битные блоки в 4-битные блоки. Действие этого блока в шестнадцатеричной системе счисления приведено в следующей таблице:
Для слоя S-блоков текущее состояние b63… b0 представляет из себя 16 4-битных слов w15… w0, где wi = b4*i+3 || b4*i+2 || b4*i+1 || b4*i для 0 ≤ i ≤ 15. Выход рамки S[wi] выдает обновленные значения состояний очевидным образом.
Слой перестановки (pLayer). Побитовая перестановка, используемая в PRESENT задается следующей таблицей (бит i состояния смещается на позицию P(i)):
Преобразование ключа (The key schedule). PRESENT может использовать 80- и 128-битные ключи, однако сосредоточимся на 80-битной версии. Предоставляемый пользователем ключ хранится в регистре ключей K, представленный в виде k79k78… k0. На i-ом раунде 64-битный раундовый ключ Ki = k63k62… k0, состоящий из 64 левых битов текущего содержимого регистра K. Таким образом, на i-ом раунде имеем:
Ki = k63k62… k0 = k79k78… k16.
Следовательно, регистр ключа сдвигается на 61 позицию влево, 4 крайних левых бита, прошедших через S-блок и round_counter значение i складывается по модулю 2 с битами k19k18k17k16k15 из K с наименьшим значащим битом из round_counter справа.
Преобразование ключа для 128-битного алгоритма можно найти в приложении к оригинальной статье.
4. Конструктивные особенности PRESENT
Помимо безопасности и эффективной реализации, основное достижение PRESENT — его простота. по этому не удивительно, что похожие проекты были приняты в других обстоятельствах, и даже были использованы как учебное пособие для студентов. В данной секции мы обоснуем решения, принятые нами при проектировке PRESENT. Однако, в первую очередь, опишем ожидаемые прикладные требования.
4.1. Цели и среда применения
При проектировке блочного шифра, применимого в жестко ограниченных окружениях, важно понять, что мы не создаем блочный шифр, который, непременно, будет применим во многих ситуациях — для этого существует AES. Наоборот, мы нацелены на весьма специфичное применение, для которого AES не подходит. Вышесказанное предопределяет нам следующие характеристики.
В литературе есть множество примеров атак компромисса между временем, датой и памятью, или атак с использованием парадокса дней рождения при шифровке больших объемов данных. Однако, данные атаки зависят только от параметров шифра и не используют внутреннюю структуру. Наша цель состоит в том, чтобы эти атаки были лучшим, что могут применить против нас. Атаки стороннего канала и атаки с непосредственным взломом чипа угрожают PRESENT в той же мере, как и прочим криптографическим примитивам. Однако для вероятных применений, умеренные требования безопасности делают выгоду, получаемую злоумышленником на практике, весьма ограниченной. В оценке рисков, подобные угрозы не воспринимаются как существенный фактор.
4.2. Перестановочный слой
При выборе слоя смешивания ключа, наше внимание к аппаратной эффективности требует наличия линейного слоя, который может быть реализован с минимальным количеством управляющих элементов (например, транзисторов). это приводит к побитовой перестановке. Уделяя внимание простоте, мы выбрали регулярную битовую перестановку, что помогает провести прозрачный анализ безопасности(см. 5 раздел).
4.3. S-блоки.
В PRESENT мы используем раздельные S-блоки, переводящие 4 бита в 4 бита (F 4 2→F 4 2). Это прямое следствие нашего стремления к аппаратной эффективности, при этом реализация такого S-блока обычно намного компактнее, чем у 8-битного S-блока. Поскольку мы используем битовую перестановку для линейного диффузионного слоя, AES-подобные диффузионные технологии не являются вариантом для нашего шифра. Поэтому мы помещаем некоторые дополнительные условия на S-блоки, чтобы уменьшить так называемый «лавинный эффект». Точнее, S-блоки для PRESENT удовлетворяют следующим условиям, где мы обозначим коэффициент Фурье S через
1. Для любого фиксированного ненулевого входного смещения ∆I ∈ F 4 2 и любого фиксированного ненулевого входного смещения ∆O ∈ F 4 2 внутри S-блока требуем
#
2. Для любой фиксированной ненулевой входной разнице ∆I ∈ F 4 2 и любой фиксированной ненулевой выходной разнице ∆O ∈ F 4 2, такой что wt(∆I) = wt(∆O) = 1, имеем
3. Для всех ненулевых a ∈ F 4 2 и всех ненулевых b ∈ F4 выполняется что |S W b(a)| ≤ 8
4. Для всех ненулевых a ∈ F 4 2 и всех ненулевых b ∈ F4, таких что wt(a) = wt(b) = 1 выполняется S W b(a) = ± 4
Как станет ясно из секции 5, эти условия гарантируют, что PRESENT устойчив к дифференциальным и линейным атакам. Используя классификацию всех 4-битных S-блоков, удовлетворяющих вышеприведенным условиям, мы выбрали S-блок, который особенно хорошо подходит для эффективной аппаратной реализации.
5. Анализ безопасности
А теперь мы представим результаты анализа безопасности PRESENT.
Дифференциальный и линейный криптоанализ
Дифференциальный и линейный криптоанализ являются одними из самых мощных методов, доступных криптоаналитику. Чтобы измерить сопротивление PRESENT дифференциальному и линейному криптоанализу, мы задаем нижнюю границу числа так называемых активных S-блоков, участвующих в дифференциальной (или линейной) характеристике.
Дифференциальный криптоанализ
Случай дифференциального криптоанализа охвачен следующей теоремой.
Теорема 1. Любая пятиконтурная дифференциальная характеристика PRESENT имеет минимум 10 активных S-блоков.
Теорема 1 доказывается в 3 приложении оригинальной статьи, а мы продолжим наблюдения. Разделим 16 S-блоков в 4 группы:
Числа на входе (сверху) обозначают номер S-блока на предыдущем шаге, а на выходе (снизу) — на последующем
Практическое подтверждение
Мы можем определить характеристики, которые включают в себя десять S-блоков в течение пяти раундов. Следующая двухраундовая итерационная характеристика включает в себя два S-блока за раунд и держится с вероятностью 2 −25 за пять раундов.
Линейный криптоанализ
Случай линейного криптоанализа PRESENT рассматривается следующей теоремой, в которой мы анализируем наилучшее линейное приближение к четырем раундам PRESENT.
Поэтому в предположении, что криптоаналитику нужно только приблизительно 28 из 31 раунда в PRESENT, чтобы инициировать атаку восстановления ключа, линейный криптоанализ шифра потребует порядка 2 84 известных открытых текстов / шифротекстов. Такие требования к данным превышают доступный текст.
Некоторые продвинутые дифференциальные / линейные атаки
Структура PRESENT позволяет нам рассмотреть некоторые выделенные формы атак. Однако ни одна из них не привела к атаке, требующей меньше текста, чем нижняя граница требований к тексту для линейного криптоанализа. Среди выделенных атак мы рассматривали одну, использующую палиндромные различия, так как симметричные различия сохраняются с вероятностью один (т.е. всегда) над диффузионным слоем, и некоторые продвинутые варианты дифференциально-линейных атак. Хотя атаки казались многообещающими в течение нескольких раундов, они очень быстро потеряли свою практическую ценность и вряд ли будут полезны в криптоанализе PRESENT. Мы также установили, что усеченный дифференциальный криптоанализ, вероятно, будет иметь ограниченное значение, хотя следующие два раунда.
Усеченное расширение выполняется с вероятностью один.
Даже при использовании для уменьшения длины уже идентифицированных дифференциальных характеристик требования к данным остаются чрезмерными. Ранкированное расширение выполняется с вероятностью один.
5.2. Структурные атаки
Структурные атаки, такие как интегральный криптоанализ и анализ бутылочного горлышка, хорошо подходят для анализа AES-подобных шифров. Такие шифры имеют сильные словоподобные структуры, где слова обычно являются байтами.Однако конструкция представления почти исключительно побитовая, и хотя операция перестановки несколько регулярна, развитие и распространение словесных структур нарушаются побитовыми операциями, используемыми в шифре.
5.3. Алгебраические атаки
Алгебраические атаки имели больший успех, когда применялись к потоковым шифрам, чем к блочным. Тем не менее, простая структура PRESENT означает, что они заслуживают серьезного изучения. S-блок PRESENT описывается 21 квадратичным уравнением для восьми входных / выходных битовых переменных над полем G(2). Это неудивительно, поскольку хорошо известно, что любой четырехбитный S-блок может быть описан по крайней мере 21 таким уравнением. Затем весь шифр может быть описан квадратными уравнениями e=n×21 в переменных v=n×8, где n-число S-блоков в алгоритме шифрования и преобразования ключей.
Для PRESENT мы имеем n = (31×16) + 31 таким образом, вся система состоит из 11 067 квадратных уравнений в 4 216 переменных.Общая задача решения системы многомерных квадратных уравнений является NP-трудной. Однако системы, полученные для блочных шифров, очень редки, так как они состоят из n небольших систем, Соединенных простыми линейными слоями. Тем не менее, неясно, можно ли использовать этот факт в так называемой алгебраической атаке. Были предложены некоторые специализированные методы, такие как XL и XSL, хотя были обнаружены недостатки в обоих методах. Вместо этого единственные практические результаты по алгебраическому криптоанализу блочных шифров были получены путем применения алгоритмов Бухбергера и F4 в рамках Magma. Моделирование на маломасштабных версиях AES показало, что для всех, кроме самых маленьких SP-сетей, быстро возникают трудности как во времени, так и в сложности памяти. То же самое относится и к PRESENT.
Практическое подтверждение. Мы провели моделирование на мелкомасштабных версиях, используя алгоритм F4 в Magma. Когда есть один S-блок, то есть очень маленький блок размером в четыре бита, то Magma может решить полученную систему уравнений за много раундов. Однако при увеличении размера блока и добавлении S-блоков, наряду с соответствующим вариантом линейного диффузионного слоя, система уравнений вскоре становится слишком большой. Даже при рассмотрении системы, состоящей из семи S-блоков, т. е. имея размер блока 28 бит, мы не смогли в разумные сроки получить решение для прошедшего два раунда варианта сокращенного шифра. Наш анализ показывает, что алгебраические атаки вряд ли представляют угрозу для PRESENT.
5.4. Атаки с преобразованием ключа
Поскольку не существует никаких установленных руководящих принципов для разработки преобразований ключа, существует как большое разнообразие проектов, так и большое разнообразие атак, исходя из особенностей проекта. Наиболее эффективные атаки подпадают под общую рубрику атака на связанных ключах и сдвиговая атака, и обе основаны на построении идентифицируемых соотношений между различными наборами суб-ключей. Чтобы противостоять этой угрозе, мы используем раунд-зависимый счетчик, так что наборы суб-ключей не могут быть легко «сдвинуты», и мы используем нелинейную операцию для смешивания содержимого ключевого регистра K. В частности:
6. Производительность «железа»
Мы реализовали PRESENT-80 в VHDL и адаптировали его для стандартной библиотеки ячеек Virtual Silicon (VST) на основе UMC L180 0.18 μ 1P6M Logic. Мы использовали Mentor Graphics Modelsim SE PLUS 5.8 c для моделирования и Synopsys Design Compilerversion Y-2006.06 для синтеза и моделирования мощности потребления. Были использованы типичные для литейного производства значения (1,8 Вольта для напряжения сердечника и 25°C для температуры), а для моделирования мощности применена предложенная модель проволочной нагрузки. Обратите внимание, что подобное моделирование преназначено для конструкций около 10 000 GE, поэтому результаты мощности будут пессимистичными для значительно меньших конструкций. На рисунке
показан путь данных оптимизированного по пространству PRESENT-80 без возможности дешифровки (encryption-only), который выполняет один раунд за один такт, т. е. путь данных 64-разрядной ширины. Обратите внимание, что на этапе проектирования PRESENT мы используем один и тот же S-блок 16 раз вместо того, чтобы иметь 16 различных S-блоков, и это облегчает дальнейшую сериализацию проекта, т. е. с 4-битным каналом передачи данных. Наша реализация требует 32 тактовых цикла для шифрования 64-битного открытого текста с 80-битным ключом, занимает 1570 GE и имеет в модуляции энергопотребление 5 мкВт.
Пространственные требования PRESENT
Большую часть площади занимают триггеры для хранения ключа и состояния данных, за которыми следуют S-слой и отдел XOR’ирования ключа. Битовые перестановки простой проводки увеличат площадь только тогда, когда реализация дойдет до этапа place&route. Заметим, что основной целью нашей реализации был небольшой объем аппаратного обеспечения, однако мы также синтезировали оптимизированный по мощности процесс. Для дополнительных 53 GE мы достигаем энергопотребления всего 3,3 мкВт, а нынешний-128 будет занимать оценочную площадь 1886 GE. Помимо очень малого размера PRESENT имеет довольно высокую пропускную способность, дающую хорошую энергию на бит. Сравнение с другими шифрами приведено в таблице:
7. Заключение
В этой статье мы описали новый блочный шифр PRESENT. Нашей целью был сверхлегкий шифр, который обеспечивает уровень безопасности, соизмеримый с размером 64-битного блока и 80-битным ключом. В итоге, PRESENT имеет требования к реализации, аналогичные многим компактным потоковым шифрам. Поэтому мы считаем, что он представляет как теоретический, так и практический интерес. Как и все новые предложения, мы не поощряем немедленное развертывание PRESENT, но настоятельно призываем к его анализу.