Цифровой журнал «Компьютерра» 2013 № 38 (191) - страница 32

Шрифт
Интервал

стр.

Георг Беккер (Georg T. Becker) из университета штата Массачусетс вместе с коллегами из Швейцарии и Германии в рамках доказательства концепции создал две версии «трояна аппаратного уровня», нарушающего работу генератора (псевдо)случайных чисел (ГПСЧ) в криптографическом блоке процессоров Intel архитектуры Ivy Bridge. Создаваемые с помощью изменённого ГПСЧ криптографические ключи для любой системы шифрования окажутся легко предсказуемыми.


>Троян аппаратного уровня занимает ничтожно малую часть даже на отдельных элементах логической схемы (изображение: Georg T. Becker et al.).

Наличие аппаратной закладки никак не определяется ни специально разработанными для этого встроенными тестами, ни при внешнем осмотре процессора. Как же такое могло произойти? Для ответа на этот вопрос необходимо вернуться к истории появления аппаратного ГПСЧ и ознакомиться с базовыми принципами его работы.

При создании криптографических систем требуется устранить возможность быстрого подбора ключей. Их длина и мера непредсказуемости непосредственно влияют на число вариантов, которые пришлось бы перебрать атакующей стороне. Длину можно задать прямо, а вот добиться уникальности вариантов ключей и их равной вероятности гораздо сложнее. Для этого во время создания ключей используют случайные числа.

В настоящее время принято считать, что за счёт только программных алгоритмов нельзя получить истинно случайный поток чисел с их равномерным хаотическим распределением по всему указанному множеству. Они всегда будут иметь большую частоту встречаемости в каких-то частях диапазона и оставаться до некоторой степени предсказуемыми. Поэтому большинство применяемых на практике генераторов чисел следует воспринимать как псевдослучайные. Они редко оказываются достаточно надёжными в криптографическом смысле.

Для снижения эффекта предсказуемости любому генератору чисел требуется надёжный источник случайного начального заполнения — random seed. Обычно в качестве него используются результаты измерений каких-то хаотических физических процессов. Например, флуктуации интенсивности световых колебаний или регистрация радиочастотного шума. Такой элемент случайности (да и весь аппаратный ГПСЧ) было бы технически удобно использовать в компактном варианте, а в идеале — сделать встроенным.

Компания Intel встраивает генераторы (псевдо)случайных чисел в свои чипы начиная с конца девяностых. Раньше их природа была аналоговой. Случайные значения на выходе получались за счёт влияния трудно прогнозируемых физических процессов — тепловых шумов и электромагнитных помех. Аналоговые генераторы было сравнительно просто реализовать в виде отдельных блоков, но трудно интегрировать в новые схемы. По мере уменьшения технологического процесса требовались новые и длительные этапы калибровки. К тому же закономерное снижение напряжение питания ухудшало соотношение сигнал/шум в таких системах. ГПСЧ работали постоянно и потребляли значительное количество энергии, а скорость их работы оставляла желать лучшего. Эти недостатки накладывали ограничения на возможные сферы применения.

Идея генератора (псевдо)случайных чисел с полностью цифровой природой долгое время казалась странной, если не абсурдной. Ведь состояние любой цифровой схемы всегда жёстко детерминировано и предсказуемо. Как внести в неё необходимый элемент случайности, если нет аналоговых компонентов?

Попытки получить желанный хаос на базе только цифровых элементов предпринимались инженерами Intel с 2008 года и увенчались успехом через пару лет изысканий. Работа была представлена в 2010 году на летнем симпозиуме VLSI в Гонолулу и произвела маленькую революцию в современной криптографии. Впервые полностью цифровой, быстрый и энергоэффективный ГПСЧ был реализован в серийно выпускаемых процессорах общего назначения.


>Процессор Сore i7-3770K архитектуры Ivy Bridge со встроенным генератором (псевдо)случайных чисел (фото: thg.ru).

Его первое рабочее название было Bull Mountain. Затем его переименовали в Secure Key. Этот криптографический блок состоит из трёх базовых модулей. Первый генерирует поток случайных битов с относительно медленной скоростью — 3 Гбит/с. Второй оценивает их дисперсию и объединяет в блоки по 256 бит, которые используются как источники случайного начального заполнения. После ряда математических процедур в третьем блоке с более высокой скоростью генерируется поток случайных чисел длиной 128 бит. На их основе с помощью новой инструкции RdRand при необходимости создаются и помещаются в специально отведённый регистр случайные числа требуемой длины: 16, 32 или 64 бита, которые в итоге и передаются запросившей их программе.


стр.

Похожие книги