Расширяя пределы: самое компактное пороговое исполнение AES

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:51, 27 сентября 2015.
Pushing the Limits: A Very Compact and a Treshold Implementation of AES
Pushing title.png
Авторы Amir Moradi [@: 1]
Christof Paar [@: 2]
Axel Poschmann [@: 3]
San Ling[@: 4]
Huaxiong Wang[@: 5]
Опубликован 2011 г.
Перевели коллектив проекта «Gir»
Год перевода 2011 г.
Скачать оригинал

__NUMBEREDHEADINGS__

Аннотация Наша статья состоит из двух частей: сначала мы опишем самую компактную аппаратную реализацию AES-128, для которой требуется лишь 2400 GE[прим. 1](23224,8 мкм²). Насколько нам известно, в настоящий момент она является наименьшей по занимаемой площади среди всех других аппаратных реализаций, о которых сообщалось ранее. Затем мы применим пороговое противодействие (Никова (Nikova) и др.) к S-блоку AES и раскроем подробности реализации AES, повышающей уровень сопротивления к базовым атакам по побочным каналам. Результаты проведенных нами экспериментов в условиях реальных мощностей показывают, что, хотя наше исполнение обеспечивает дополнительную защиту, все же оно уязвимо к некоторым изощренным атакам, обладающим достаточным количеством измерений.
Ключевые слова: атаки по побочным каналам, контрмеры, разделение секрета, лекговесная, ASIC.

Введение

Массовое применение проникающих во все сферы жизни устройств обещает немалые преимущества, среди прочих равных например, такие, как снижение издержек по логистике, более высокая степень разбиения процессов, оптимизированные каналы поставок или сервисы, основанные на определении местонахождения[прим. 2]. С другой стороны, в повсеместно распространяющейся вычислительной обработке неизбежные риски: многие проектируемые решения (такие, как беспроводные сенсорные сети для военных, финансовых или автомобильных приложений) уязвимы с точки зрения безопасности. В таких ситуациях при условии наличия широко распространенных встраиваемых компьютеров вопросы безопасности крайне важны, так как потенциальный урон от злонамеренных атак возрастает. Усугубляющий фактор заключается в том, что обычно проникающие во все сферы жизни устройства применяются не в контроллируемой, а в агрессивной среде, т.е. там, где злоумышленник имеет физический доступ к устройству или непосредственный контроль над ним. Это добавляет все физические атаки к уже имеющимся сценариям потенциальных угроз. Наиболее заметными здесь являются атаки по побочным каналам, в особенности обычный, разностный и корреляционный криптоанализ питания [1][2].

Обзор существующих работ

В работах [3] и [4] были описаны малопотребляющие энергию и занимающие малую площадь реализации AES, требующие 3100 GE и 160 циклов синхронизации, а также 3400 GE и 1032 циклов синхронизации соответственно. Обе данные реализации используют 8-битовые сериализованные данные и исполняют только четверть операции. В первом дизайне, [3], созданы 2 S-блока и выполняются параллельно операции тракта данных и ключевого расписания, в то время, как во втором дизайне применяется RAM-подобная архитектура, и он является полностью последовательным.

Кенрайт (Canright) очень тщательно изучил вопрос аппаратной реализации AES с минимальными требованиями к объему занимаемой площади [5]. С другой стороны было предложено несколько маскирующих схем для создания маскирующего AES S-блока при помощи мультипликативного или аддитивного подходов. Общий метод для аддитивной маскирующей схемы заключается в рассмотрении представления в виде поля-расширения вследствие линейности инверсии в . В примерах [6] и [7], являющихся вроде доказательно надежными, на практике были выявлены тривиальные утечки первого порядка [8]. Позднее Кенрайт (Canright) и др. [9], применив идею из [7] к своему очень компактному S-блоку, получили в результате наиболее компактный маскированный S-блок. Однако, как и ожидалось, его аппаратная реализация по-прежнему содержит утечки первого порядка [10].

Наша работа

Наш первый вклад состоит в описании наименьшей из известных на сегодняшний день аппаратных реализаций AES. Единственной целью нашего проектирования было сокращение занимаемой площади, вследствие чего мы могли варировать требуемые расходы по времени и энергии в угоду более компактной по сравнению с [4] и [3] апппаратной реализации. Чтобы добиться нашей цели, мы выбрали единый подход, оптимизирующий весь дизайн в целом, а не каждый компонент в отдельности. В итоге нам удалось достичь такой реализации, которая требует лишь 2400 GE и 226 циклов синхронизации, что является, насколько нам известно, на 23% меньше любой ранее опубликованной реализации.

Своим вторым вкладом мы считаем изучение конртмер утечкам по побочным каналам в легковесных реализациях AES. Оказывается, что при использовании представления Кенрайта, единственным нелинейным преобразованием является произведение в . Пример разделения данной функции при наличии трех долей был описан Никова (Nikova) и др. в [11]. Исходя из этих соображений, мы применили контрмеры к нашему незащищенной AES-реализации. Для данной архитектуры мы провели полную оценку утечек по побочным каналам при условии наличия реальных шин питания, полученных нами из SASEBO. Мы осуществили различные атаки анализа мощности для исследования достигнутого нами уровня устойчивости к DPA-атакам первого уровня, даже в случае способности атакующего измерять показания со 100 миллионов шин питания.

Содержание статьи

Вначале, в следующем разделе, мы кратко опишем Разностный Анализ Питания (Differential Power Analysis) и противодействующие ему меры. Общий обзор продолжит более подробное рассмотрение маскирующих схем, представленных в [12] [11] и использованных нами для экспериментальных оценок. Далее, в разделе 3, кратко освежим в памяти AES и оптимизированый Кенрайтом S-блок перед тем, как рассказать о разделяемом AES S-блоке. Основываясь на данных сведениях, в разделе 4 мы предложим две аппаратные архитектуры AES-128 - незащищенную и защищенную - и осуществим DPA-атаку на реальных шинах питания в разделе 5. В заключении, в разделе 6, мы подведем итоги статьи.

Введение в DPA

Криптографические преобразования, выполняемые в смарт-картах и другие виды всюду используемых устройствах, оказались серьезно компрометированы криптоанализом по побочным каналам. Несколько публикаций, например [13], особо подчеркивали, что подобные физические атаки являются крайне мощным инструментом раскрытия секретов незащищенных криптографических устройств. По сути, эти атаки используют информацию, утекающую по побочным каналам, и применяются в точных вычислениях для раскрытия ключевого материала.

Среди известных побочных каналов и соответствующих им атак наиболее заметными являются атаки анализа питания [2]. Были описаны многие различные виды атак анализа питания, например, простой и дифференциальный анализ питания (SPA и DPA) [2], атаки на основе шаблонов [14], анализ совместно используемой информации [15], каждая со своими преимуществами, и подходящая для осуществления при своих конкретных условиях. Однако корреляционный анализ питания (CPA) [1], представляющая собой более общую форму DPA, обратила на себя гораздо больше внимания, так как оказалась способной к раскрытию секретов путем сравнения измерений с расчетами, полученными из теоретической модели питания, удовлетворяющей характеристикам целевой реализации.

Контрмеры

Вообще говоря, цель контмер DPA состоит в том, чтобы предотвратить зависимость между потреблением мощности криптографического устройства и характеристиками исполняемого алгоритма, к примеру, промежуточными значениями, выполняемыми операциями, выбранными ветвями хода алгоритма [16]. Среди контрмер, предлагаемых на различных уровнях дизайна и абстракции, Маскирующие методы, базирующиеся на придании случайного характера зависимым от ключа и обрабатываемым в ходе выполнения шифрования промежуточным значениям, являются наиболее часто используемыми как на алгоритмическом уровне [7], так и на уровне вентилей [17]. Технология маскирования порядка , в сущности, является схемой разделения секрета [18] [19], где для работы требуются все доли секрета.

Как правило, если алгоритмическая схема маскирования применяется на микропроцессорной платформе, то она дополняется перемешиванием (shuffling) [20], делающим порядок операций произвольным. Использование схемы маскирования в программном исполнении (микропроцессор) может оказаться бесполезным в случае осуществления атак более высокого уровня [21][22]. Однако, эксперименты на практике, подобные [8], выявили наличие по-прежнему утечек первого порядка в случае защиты аппаратного обеспечения (ASIC или FPGA) схемой маскирования на алгоритмическом уровне. Эти утечки могут быть использованы в изощренных схемах питания, например, в модели отсчитывающего тумблера (toggle-count model) или в DPA-атаке на базе шаблона.

Коротко говоря, на текущий момент не существует идеальной защиты от DPA-атак. СС другой стороны, применение подходящих контрмер способно усложнить и сделать более дорогой задачу атакующего. Чари (Chari) и др. показали в [23], что DPA-атака n-ого порядка может быть предотвращена использованием n масок. Следуя в данном направлении, Никова (Nikova) и др. расширили идею маскирования с более, чем двумя частями в [12] для предупреждения атак с применением изощренных схем питания, к примеру, подсчитывающих импульсы при изменении входа сложной комбинационной схемы. Они показали, что нелинейные функции, реализованные таким образом, достигают доказуемой безопасности от DPA-атак первого порядка, а также способны противоятоять атакам более высокого порядка, основанным на сравнении малого потребления мощности. Расчеты в случае аппаратного исполнения этих идей представлены в [11], в то время, как S-блок в шифре Ноэкеона (Noekoen) [24] рассматривается, как объект исследования без практической оценки его устойчивости к DPA-атакам. Впоследствии, тот же самый подход пименялся к S-блоку шифра PRESENT [25], а его устойчивость к атакам превого порядка подтверждена в [26]. Так как он является многообещающим кандидатом на легковесное и устойчивое к утечкам по побочным каналам исполнение, то мы выбрали именно эту схему для реализации S-блока AES и для проведения сравнения (по его утечкам первого порядка) с маскированными S-блоками AES, предложенными к настоящему времени, например, [9] и [7].

Разделяемое вычисление S-блоков AES с применением составных полей

В данном разделе, сначала, будет дано алгоритмическое описание AES, прежде чем будет описан S-блок AES, так как это сделал Кенрайт (Canright). В конце, к S-блоку AES Кенрайта (Canright) будет применена пороговая контрмера Никова (Nikova) и др., которая будет использована в следующем разделе для защищенного исполнения AES.

Алгоритмическое описание AES

В ноябре 2001 года в качестве Улучшенного Стандарта Шифрования (Advanced Encryption Standard, AES) Национальным Институтом по Cтандартов и Технологий (National Institute of Standards and Technology, NIST) был выбран алгоритм Rijndael [27]. AES - симметричный блочный шифр, обрабатывающий блоки по 128 бит. Определено три различных длины ключа: 128, 192 и 256 бит, соответствующие 10, 12 и 14 циклам шифрования. В зависимости от длины ключа AES также называют AES-128, AES-192 и AES-256, и в оставшейся части статьи мы сосредоточимся на процессе зашифрования AES-128.

В начале алгоритма входные данные копируются в массив состояния (State array), состоящий из 16 байтов, организованных в виде 4 рядов и 4 столбцов (4Х4-Матрицы). В конце работы массив состояния (State array) копируется в выходные данные.

Байты состояния (State) интерпретируются, как коэффициенты полинома в конечном поле . Значения всех байтов в дальнейшем будем записывать в шестнадцатиричном виде . В режиме зашифрования, в самом начале (в исходном цикле) исходный ключ добавляется к входному значению. Затем следуют 9 итераций обычного цикла, оканчивающиеся все слегка модифицированным финальным циклом. Во время одного обычного цикла производятся следующие операции в указанном порядке: Замена Байтов (SubBytes), Сдвиг Рядов (ShiftRows), Перемешиваие столбцов (MixColumns), Сложение с Цикловым ключом (AddRoundkey). Финальный цикл является обычным циклом, но без стадии премешивания столбцов (MixColumns).

Замена Байтов (SubBytes) - нелинейная, инвертирующая подстановка байтов, которая состоит из двух преобразований, выполняемых независомо над каждым байтом: вначале, каждый байт заменяется обратным ему по умножению в поле (если такой существует), элемент переходит сам в себя. Затем применяется следующее аффинное преобразование над полем : для , где ый бит байта .

Сдвиг строк (ShiftRows) циклически сдвигает каждую строку cостояния (State) на свою определенную величину. Нулевая строка совсем не сдвигается, первая строка сдвигается на один, вторая - на два, и третья - на три байта влево.

Перемешивание столбцов (MixColumns) обрабатывает один столбец Состояния (State) за единицу времени. Байты интерпретируются как коэффициенты полинома третьей степени над . Каждый столбец умножается по модулю на фиксированный многочлен . В матричном виде это может быть записано следующим образом:

для .

где .

Сложение с цикловым ключом (AddRoundKey) складывает 128-битный цикловой ключ (round key), получаемый из расширения ключа (KeyExpansion), с 128-битным состоянием (State). Это представляет собой простую операцию сложения по модулю 2 циклового ключаи состояния (State).

Расширение Ключа (KeyExpansion) вырабатывает из ключа шифрования за определенное количество итераций 10 цикловых ключей. Ключ формируется из 4 слов , каждое состоящее из четырех байт. циклически сдвигается влево на один байт. К результат применяется побайтовая замена посредством S-блока, а затем он складывается по модулю 2 с цикловой константой . Наконец, результат складывается по модулю 2 с , что дает . получается путем сложения по модулю 2 с и . Новое состояние ключа или цикловой ключ формируется так: . Цикловые константы генерируются по следующему правилу: , где обозначает номер цикла, , и неприводимый многочлен. Дальнейшие подробности по AES интересующийся читатель найдет в [28].

Fig1 aes.png
Рис. 1. Представление AES S-блока на основе составного поля, как описано в [5]. Прямоугольники с выделенной жирным границей обозначают умножители в - единственные нелинейные элементы.

Представление AES S-блока Кенрайта

Кенрайт очень тщательно исследовал в [5] аппаратные требования AES S-блока. Он предложил очень компактный S-блок, составленный из меньших полей. Как видно из Рис. 1, вход S-блока преобразуется линейным отображением, меняющим базис с на (пожалуйста, пока не обращайте внимания на процессы передачи по каналам (pipelining) и обозначения регистров - эти аспекты будут рассмотрены в разделе 3.3 и разделе 5). Выход трансформируется линейным отображением, сочетающим обратное возвращение к базису и обратное отображение AES S-блока. Помимо двух 4-битных XOR, еще требуются инвертор (центральный модуль) и три умножителя (справа и и слева внизу).

Архитектура аппаратного обеспечения

Этот раздел посвящен описанию различных параметров аппаратной части, на которые мы в последующих разделах будем осуществлять атаки. С этой целью, перед тем, как мы опишем в подробностях аппаратную архитектуру, сначала представим уже ранее примененную модель потоков (передачи данных), а в завершение суммируем результаты реализации.

Модель потоков

Мы использовали Mentor Graphics ModelSimXE 6.4b и Synopsys DesignCompiler версии A-2007.12-SP1 для функционального моделирования и синтеза моделей для стандартной библиотеки элементов UMCL18G212T3, Virtual Silicon (VST)[29], основой которой являются логические элементы UMC L180 0.18μm 1P6M, работающие с типовым напряжением 1.8 В. Для расчета потребления питания нашей реализации на ASIC мы использовали Synopsys Power Compiler версии A-2007.12-SP1. Для синтеза и расчета питания мы указали компилятору сохранять иерархию и использовать тактовую частоту 100 КГц, которая является широко используемой рабочейчастотой для приложений RFID. Обратите внимание, что применялась модель wire-load; хотя она и является наименьшей доступной для данной библиотеки, тем не менее, она позволяет моделировать загрузку данных (wire-load) на плату, размером порядка 10 000 GE.

Для воплощения наших заявлений о действенности предложенных контрмер, мы реализовали ядра ASIC на SASEBO для получения и оценки реальных power traces. Для синтеза модели, реализации и конфигурации на SASEBO мы применяли Xilinx ISE v10.1.03 WebPACK. В типичном приложении криптографическим ядром может быть часть интегрированной ASIC, поэтому для измерения питания на SASEBO мы встроили криптографическое ядро в каркас, управляющий взаимодействием между двумя FPGA.

Крайне компактная реализация AES

Как правило, большая часть пространства платы отдается под хранилище промежуточного состояния, так как обычно используются триггеры, требующие немало площади.В примененной нами технологии, с единственным входом, D-триггер, срабатывающий по фронту, требует 5 GE и может хранить 1 бит. Если имеется более одного входа, например, выходы с этапов Замены Байтов (SubBytes), Сдвига Строк (ShiftRow) или Перемешивания столбцов (MixColumns), то тогда необходимы мультиплексоры. Мультиплексоры выбора из двух входов на один выход, 2-1 MUX, стоят 2.33 GE на 1 бит. Сканирующие триггеры, сочетающие в себе D-триггер и 2-1 MUX, соответствуют 6 GE на 1 бит. Они позволяют сэкономить 1.33 GE на 1 бит хранилища. Для AES это дает выигрыш до 340 GE. Сканирующие триггеры использовались и ранее, например, в реализациях PRESENT[30] и KATAN/KTANTAN[7].

Fig2 aes.png
Рис. 2. Аппаратные архитектуры обеих реализаций последовательного ядра зашифрования AES-128

Опираясь на свойства сканирующих триггеров (2 входа - "за бесплатно"), мы сконструировали архитектуру для нашей крошечной реализации AES. Как видно из рис. 3, и массив состояния (State), и массив ключа (Key) состоят из 16 стадий, представляющих собой 8-битовые регистры сдвига. Каждая стадия включает 8 сканирующих триггеров (ячейки от 00 до 33) с двумя входами. На один вход подается выход с предыдущей стадии, в то время, как другой содержит результат Сдвига Строк (ShiftRows), организация которого в нашей архитектуре ничего не стоит, так как сдвиг выполняется соответствующим соединением проводов. Вместо добавления одного 2-1 MUX для каждой ячейки массива состояния (State), благодаря смоделированной нами архитектуре потребуется только один дополнительный MUX для каждого ряда. То есть, 4 2-1 MUX (каждый шириной 8 бит) по правую сторону от ячеек с (03) по (33), исходя из 75 GE вместо 300 GE. Данный выбор жестко связан с решением по распараллеливанию операции Перемешивания Столбцов (MixColumns). В обеих работах [4] и [14] Перемешивание Столбцов (MixColumns) реализуется последовательным способом, так, что расчет одного столбца занимает 4 цикла синхронизации. Мы предпочли реализовать MixColumns не последовательным способом, потому что, как мы собираемся показать далее, скрытые накладные расходы больше, чем предполагаемая экономия.

Fig3 aes.png
Рис. 3. Архитектура модулей хранилищ для массивов состояния (слева) и ключа (справа)

Массив ключа (Key) состоит из подобного 128-битового триггерного массива, как и массив состояния (State), но соединение между регистрами отличается. Имеется два направления сдвига: горизонтальное и вертикальное. Текущая 8-битовая порция циклового ключа является выходом при горизонтальном сдвиге, тогда как во время вертикального сдвига выполняется просмотр S-блоков для ключевого расписания. Обратите внимание, что операция RotWord производится при взятии выхода с ячейки (13) вместо ячейки (03) как входа для просмотра S-блоков. Выход S-блока суммируется по модулю 2 с цикловой константой Rcon и выходом ячейки (00). Как только все 4 просмотра S-блоков будут выполнены, первый столбец состояния ключа уже содержит новый цикловой ключ, в то время, как другие три столбца еще нет. Оставшиеся шаги по обновлению ключа выполняются в процессе вывода порции циклового ключа посредством сложения по модулю 2 выхода с ячейки (00) и выхода с ячейки (01), что дает новый вход ячейкии (00). Как только выведен весь ряд, т.е. каждый четвертый цикл синхронизации, обратная связь сложением по модулю 2 не требуется, и поэтому выход с ячейки (00) пропускается логическим "И". Обратите внимание, что сверх стоимости хранилища (768 GE), а также схемы вычисления и хранения цикловой константы (89 GE), в нашей реализации все ключевое расписание требует только 8-битное логическое "И" (11 GE), 8-битовый элемент XOR с двумя входами (19 GE) и 8-битовый XOR с тремя входами (35 GE). Мы полагаем, что наши результаты очень близки к теоретически оптимальным. Это отражается и в экономии площади по сравнению с предыдущими результатами: 924 GE против 1076 в [3]. [4] использует RAM-подобные хранилища, которые содержат сразу и массив состояния, и массив ключа. Поэтому, справедливости ради, следует сложить два модуля вместе: 1678 GE против 2040 GE в [4].

В нашей архитектуре MixColumns реализуется четырьмя экземплярами модуля col, который дает на выход результат первого ряда матрицы MixColumns. Так как применяемая матрица является циркулянтной, то можно использовать тот же самый модуль и только сменять по очереди соответствующим образом входные данные. Обратите внимание, что аппаратное чередование может быть реализовано обычным соединением проводов и обходится практически бесплатно. Делая MixColumns последовательной, можно сэкономить 75% площади (280 GE). Также, 3 из 4 мультиплексора, по правую сторону от каждого из рядов, могут быть удалены, и 32-разрядный 2-1 MUX (75 GE), расположенный справа от пунктирной линии на Рис. 3, может быть сжат до 8-разрядного 2-1 MUX (19 GE), что дает выигрыш в 112 GE. В сумме, потенциальная экономия всей конструкции (не только MixColumns) составляет 392 GE. С другой стороны, необходимо временно хранить, по крайней мере, 3 выходных байта, потому что нельзя перезаписывать входные байты перед тем, как будут вычислены все выходные. Накладные расходы на это хранилище будут равны GE. Так как матрица MixColumns циркулянтна, то сменять вход модуля col следует с разным смещением для каждого выходного байта. Это может быть организовано простой прокладкой проводов (см. правую сторону col на рис. 3) в совокупности с 32-разрядным 4-1 MUX (192 GE) для выбора корректного входа. В итоге, в данном случае потенциальная экономия уменьшаеся до 80 GE, в то время, как требуется более сложная логика управления подачей управляющих сигналов на мультиплексоры и дополнительное временное триггерное хранилище (см. ниже).

Вместо того, чтобы использовать конечный автомат (КА), мы решили потратить значительное количество времени и усилий с целью сокращения требуемой для логики управления площади (в случае незащищенной версии, Профиль 1). Сигналы управления поступают с 5-битового линейного регистра сдвига со съемами с 1-го и 5-го битов и длиной цикла 21. Это в точности совпадает с количеством тактов для совершения одного раунда AES и алгоритма ключевого расписания: 16 циклов синхронизации на AddRoundKey, 1 на ShiftRows (в течение которой состояние Key не тактируется) и 4 для параллельного исполнения MixColumns и SubWord. Всякий раз по окончании цикла синхронизации генерируется импульс для управления мультиплексорами и логикой тактирования. Для выработки всех управляющих сигналов из данного импульса применяется обычная булева логика таким образом, что в итоге на управляющую логику требуется лишь 73 GE. В [3] не дается никаких подробностей о логике управления, и 220 GE требуется в целом и на логику управления, и на "остальное". Поэтому честнее было бы сравнивать 80 GE против 220 GE. Следствием исключительно последовательной реализации, RAM-подобного хранилища и применения КА является в [4] необходимость в 400 GE на логику управления (включая выработку цикловых констант) по сравнению со 162 GE нашей реализации. Подобно [3] мы использование описание AES S-блока Кенрайта[5], являющееся наименьшим из известных нам.

Контакты авторов материала

  1. Horst Görtz Institute for IT Security, Ruhr University Bochum, Germany. E-mail:[1]
  2. Horst Görtz Institute for IT Security, Ruhr University Bochum, Germany. E-mail:[2]
  3. Division of Mathematical Sciences, School of Physical and Mathematical Sciences, Nanyang Technological University, Singapore. E-mail:[3]
  4. Division of Mathematical Sciences, School of Physical and Mathematical Sciences, Nanyang Technological University, Singapore. E-mail:[4]
  5. Division of Mathematical Sciences, School of Physical and Mathematical Sciences, Nanyang Technological University, Singapore. E-mail:[5]

Примечания

  1. GE (Gate Equivalent) = 9.677 мкм²
  2. Т.е. обладающие способностью отслеживать местонахождение пользователей и доставлять им информацию, имеющую отношение к конкретной зоне, где они в данный момент находятся.

Литература

  1. 1,0 1,1 Brier, E., Clavier, C., Olivier, F.: Correlation Power Analysis with a Leakage Model. In: Joye, M., Quisquater, J.-J. (eds.) CHES 2004. LNCS, vol. 3156, pp. 16–29. Springer, Heidelberg (2004)
  2. 2,0 2,1 2,2 Kocher, P.C., Jaffe, J., Jun, B.: Differential Power Analysis. In: Wiener, M. (ed.) CRYPTO 1999. LNCS, vol. 1666, pp. 388–397. Springer, Heidelberg (1999)
  3. 3,0 3,1 3,2 3,3 3,4 3,5 Hämäläinen, P., Alho, T., Hännikäinen, M., Hämäläinen, T.D.: Design and Implementation of Low-Area and Low-Power AES Encryption Hardware Core. In: DSD, pp. 577–583 (2006)
  4. 4,0 4,1 4,2 4,3 4,4 4,5 Feldhofer, M., Wolkerstorfer, J., Rijmen, V.: AES Implementation on a Grain of Sand. IEE Proceedings of Information Security 152(1), 13–20 (2005)
  5. 5,0 5,1 5,2 5,3 Canright, D.: A Very Compact S-Box for AES. In: Rao, J.R., Sunar, B. (eds.) CHES 2005. LNCS, vol. 3659, pp. 441–455. Springer, Heidelberg (2005)
  6. Blömer, J., Guajardo, J., Krummel, V.: Provably Secure Masking of AES. In: Handschuh, H., Hasan, M.A. (eds.) SAC 2004. LNCS, vol. 3357, pp. 69–83. Springer, Heidelberg (2004)
  7. 7,0 7,1 7,2 7,3 7,4 Oswald, E., Mangard, S., Pramstaller, N., Rijmen, V.: A Side-Channel Analysis Resistant Description of the AES S-Box. In: Gilbert, H., Handschuh, H. (eds.) FSE 2005. LNCS, vol. 3557, pp. 413–423. Springer, Heidelberg (2005)
  8. 8,0 8,1 Mangard, S., Pramstaller, N., Oswald, E.: Successfully Attacking Masked AES Hardware Implementations. In: Rao, J.R., Sunar, B. (eds.) CHES 2005. LNCS, vol. 3659, pp. 157–171. Springer, Heidelberg (2005)
  9. 9,0 9,1 Canright, D., Batina, L.: A Very Compact “Perfectly Masked” S-Box for AES. In: Bellovin, S.M., Gennaro, R., Keromytis, A.D., Yung, M. (eds.) ACNS 2008. LNCS, vol. 5037, pp. 446–459. Springer, Heidelberg (2008), the corrected version is available at Cryptology ePrint Archive, Report 2009/011 [6]
  10. Moradi, A., Mischke, O., Eisenbarth, T.: Correlation-Enhanced Power Analysis Collision Attack. In: Mangard, S., Standaert, F.-X. (eds.) CHES 2010. LNCS, vol. 6225, pp. 125–139. Springer, Heidelberg (2010)
  11. 11,0 11,1 11,2 Nikova, S., Rijmen, V., Schläffer, M.: Secure Hardware Implementation of Nonlinear Functions in the Presence of Glitches. In: Lee, P.J., Cheon, J.H. (eds.) ICISC 2008. LNCS, vol. 5461, pp. 218–234. Springer, Heidelberg (2009)
  12. 12,0 12,1 Nikova, S., Rechberger, C., Rijmen, V.: Threshold Implementations Against Side-Channel Attacks and Glitches. In: Ning, P., Qing, S., Li, N. (eds.) ICICS 2006. LNCS, vol. 4307, pp. 529–545. Springer, Heidelberg (2006)
  13. Eisenbarth, T., Kasper, T., Moradi, A., Paar, C., Salmasizadeh, M., Shalmani, M.T.M.: On the Power of Power Analysis in the Real World: A Complete Break of the KeeLoq Code Hopping Scheme. In: Wagner, D. (ed.) CRYPTO 2008. LNCS, vol. 5157, pp. 203–220. Springer, Heidelberg (2008)
  14. 14,0 14,1 Agrawal, D., Rao, J.R., Rohatgi, P.: Multi-channel Attacks. In: Walter, C.D., Koç, Ç.K., Paar, C. (eds.) CHES 2003. LNCS, vol. 2779, pp. 2–16. Springer, Heidelberg (2003)
  15. Gierlichs, B., Batina, L., Tuyls, P., Preneel, B.: Mutual Information Analysis. In: Oswald, E., Rohatgi, P. (eds.) CHES 2008. LNCS, vol. 5154, pp. 426–442. Springer, Heidelberg (2008)
  16. Mangard, S., Oswald, E., Popp, T.: Power Analysis Attacks: Revealing the Secrets of Smart Cards. Springer, Heidelberg (2007)
  17. Popp, T., Mangard, S.: Masked Dual-Rail Pre-charge Logic: DPA-ResistanceWithout Routing Constraints. In: Rao, J.R., Sunar, B. (eds.) CHES 2005. LNCS, vol. 3659, pp. 172–186. Springer, Heidelberg (2005)
  18. Blakley, G.R.: Safeguarding Cryptographic Keys. In: National Computer Conference, pp. 313–317 (1979)
  19. Shamir, A.: How to Share a Secret. Communications of the ACM 22(11), 612–613 (1979)
  20. Herbst, C., Oswald, E., Mangard, S.: An AES Smart Card Implementation Resistant to Power Analysis Attacks. In: Zhou, J., Yung, M., Bao, F. (eds.) ACNS 2006. LNCS, vol. 3989, pp. 239–252. Springer, Heidelberg (2006)
  21. Coron, J.-S., Prouff, E., Rivain, M.: Side Channel Cryptanalysis of a Higher Order Masking Scheme. In: Paillier, P., Verbauwhede, I. (eds.) CHES 2007. LNCS, vol. 4727, pp. 28–44. Springer, Heidelberg (2007)
  22. Waddle, J., Wagner, D.: Towards Efficient Second-Order Power Analysis. In: Joye, M., Quisquater, J.-J. (eds.) CHES 2004. LNCS, vol. 3156, pp. 1–15. Springer, Heidelberg (2004)
  23. Chari, S., Jutla, C.S., Rao, J.R., Rohatgi, P.: Towards Sound Approaches to Counteract Power-Analysis Attacks. In: Wiener, M. (ed.) CRYPTO 1999. LNCS, vol. 1666, pp. 398–412. Springer, Heidelberg (1999)
  24. Daemen, G.J., Peeters, M., Rijmen, V.: The Noekeon Block Cipher. In: First Open NESSIE Workshop (2000)
  25. Bogdanov, A., Leander, G., Knudsen, L., Paar, C., Poschmann, A., Robshaw, M., Seurin, Y., Vikkelsoe, C.: PRESENT: An Ultra-Lightweight Block Cipher. In: Paillier, P., Verbauwhede, I. (eds.) CHES 2007. LNCS, vol. 4727, pp. 450–466. Springer, Heidelberg (2007)
  26. Poschmann, A., Moradi, A., Khoo, K., Lim, C.-W., Wang, H., Ling, S.: Side-Channel Resistant Crypto for less than 2,300 GE. Journal of Cryptology (2010) (in press), doi: 10.1007/s00145-010-9086-6
  27. National Institute of Standards and Technology (NIST). Announcing the Advanced Encryption Standard (AES). Federal Information Processing Standards Publication 197 (November 2001)
  28. Poschmann, A., Moradi, A., Khoo, K., Lim, C.-W., Wang, H., Ling, S.: Side-Channel Resistant Crypto for less than 2,300 GE. Journal of Cryptology (2010) (in press), doi: 10.1007/s00145-010-9086-6
  29. Virtual Silicon Inc. 0.18 μm VIP Standard Cell Library Tape Out Ready, Part Number: UMCL18G212T3, Process: UMC Logic 0.18 μm Generic II Technology: 0.18μm (July 2004)
  30. Rolfes C., Poschmann A., Leander G., Paar C.: Ultra-Lightweight Implementations for Smart Devices – Security for 1000 Gate Equivalents. In: Grimaud, G., Standaert, F.-X. (eds.) CARDIS 2008. LNCS, vol. 5189, pp. 89–103. Springer, Heidelberg (2008)