Настоящая статья основана на работе "Initial
SRAM State as a Fingerprint and Source of True Random Numbers for RFID Tags"
,
написанной Деном Холкомбом. В ней
рассказывается о новом способе генерации
действительно случайных чисел и некоторых
интересных особенностях компьютерного
железа.

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

Новая техника применима к большинству из
современных устройств — начиная от
настольных компьютеров и заканчивая
дешевыми RFID-метками. Причем, что
замечательно, некоторые устройства не
потребуют апргрейда, достаточно будет
только нового софта.

Как это работает?

Как известно, при выключении компьютера
его память теряет всю информацию. Но что
происходит с ней при включении? Ответ на
этот вопрос и принес идею нового генератора
— состояние каждого бита оперативной памяти
перед первой записью в ходе включения,
зависит в основном от того, как транзисторы
были отпечатаны в ходе производства. Все
биты можно разделить на три категории:

  1. изначально (почти всегда) 0
  2. изначально 0 или 1
  3. изначально (почти всегда) 1

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

Таким образом, на основе SRAM можно легко
создать новую систему идентификации или
использовать память для генерации
случайных чисел. Это особенно важно для
максимально дешевых устройств — например,
тех же RFID-меток (сейчас идентификаторы
закладываются в метку на стадии
производства при помощи, например, EPROM или
EEPROM, что, соответственно, требует затрат на
производство, да и места на микросхеме для
размещения памяти). Используя описанный
метод, можно без дополнительных модулей и
дешево, практически не изменяя железную
часть, реализовать криптографические
алгоритмы для идентификации или
использовать полученные данные для
генерации действительно случайных чисел.

Оставить мнение

Check Also

Страдания с ReactOS. Почему в заменителе Windows работают трояны, но не работает Word

Сегодня в нашей кунсткамере демонстрируется необычайный организм — двадцатилетний зародыш …