|
|
  |
Защита данных FPGA, Кто подскажет где почитать? |
|
|
|
Jun 4 2006, 11:45
|

Частый гость
 
Группа: Свой
Сообщений: 164
Регистрация: 27-06-04
Пользователь №: 194

|
Цитата(makc @ Jun 4 2006, 15:34)  Боюсь, что качество последовательности может меняться в зависимости от конкретного экземпляра ПЛИСины.  Но для рассматриваемых целей защиты прошивки ПЛИС это не будет иметь решающего значения, т.к. на сколько я понимаю, для решения этой задачи нужно иметь каждый раз разные вектора для проверки и разрешения работы прошивки ПЛИС. это даже хорошо, что оно будет меняться от ПЛИСа к ПЛИСу - это даже очень хорошо. Главное в этом деле непредсказуемость .... но надо провести эксперимент, у меня есть парочка отладочных плат на Спартане-3, попробую что-нибудь сделать, но не гарантирую что ответ будет в ближайшую неделю вообщем, кто заинтересован - может распределить фронт работ На неделе узнаю у математиков сколько им надо случайного числа, чтобы оценить его качество для такой задачи
--------------------
qwerty
|
|
|
|
|
Jun 5 2006, 13:07
|

Частый гость
 
Группа: Свой
Сообщений: 164
Регистрация: 27-06-04
Пользователь №: 194

|
Цитата(DmitryR @ Jun 5 2006, 15:15)  Послушайте, а почему не использовать встроенный в, например Virtex/Stratix/ProASIC алгоритм? Ставится батарейка (а в ProASIC и без батарейки), с помощью нее в ПЛИС поддерживаются ключи декодирования, зашитые туда разработчиком. Прошивка кодируется парным ключом и зашивается в обычное конфигурационное PROM. Перехватывайте на здоровье, ключ - 128 бит. Батарейки хватает на десятилетия. Или я пропустил место в обсуждениях, где это было отметено? Всё дело в цене микросхем (для Xilinx) - Actel это несколько другая архитектура. Посмотрите цены на Spartan-3E и Virtex - и всё станет ясно
--------------------
qwerty
|
|
|
|
|
Jun 6 2006, 07:31
|
Местный
  
Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804

|
Степень "случайности" генерируемой последовательности для конкретно этой задачи значения не имеет. Если два соседних числа отличаются хотя бы одним битом, то SHA1 даст абсолютно разные решения. Даже если генерируемая последовательность будет не вполне "случайна", то период ее все равно будет много больше реально "перебираемых" вариантов. Гораздо более серьезным вопросом является возможность считывания кода из EEPROM под электронным микроскопом. Если верить моим знакомым, то здесь за ATmega с битом защиты у них просили около 10-12k$ - не думаю, что далласовская EEPROM-ка будет стоить намного дороже.
--------------------
WBR, V. Mirgorodsky
|
|
|
|
Guest_Pruga_*
|
Jun 6 2006, 15:00
|
Guests

|
Сегодня разбирался с ГСЧ (RND.vhd). Загрузил весь проект в ISE, создал тестбенч для RND.vhd, на вход клока подал 50 МГц, а с выхода снимал случайную последовательность. При функциональном моделировании получается некоторая последовательность, (на случайность не проверял). Цитата(Maksim @ Jun 3 2006, 23:54)  to 3.14 Ключ есть, полином есть, а сколько тактов это крутится?? Я так думаю каждый раз одинаковое количество раз. to Pruga код я посмотрел - там полином и... указание и маршрут разводки 2-х цепей и, что там есть неопределённость? и ещё ... cRING1<=transport TO01(RING1) after tNET1+tILOX-100 ps; это как понимать?  Похоже эти задержки моделируют реальные, для выполнения функционального моделирования. В комментарии написано: "--timing simulation values for 2VP-6" Вообщем работу этого генератора я себе представляю следующим образом: генерация случайных чисел базируется на создании М-последовательности (20-ти разрядный регистр (соответствующий примитивному полиному x^20+x^3+1), с обратными связями от 20 и 3 разряда, заведенными на вход через XOR4 элемент (выполненным на LUT)). Однако регистры с линейными обратными связями генерируют псевдослучайные последовательности, с периодом 2^n-1 (n-число разрядов), и то если соответсвующий многочлен примитивен, поэтому как я понял к обратной связи (2 оставшимся входам элемента XOR), подсоединяются 2 сигнала Ring1 и Ring2, которые представляют собой замкнутые петли (сигнал с выхода инвертора подается на его вход), о чем мне и сообщил синтезатор. Цепи Ring1 и Ring2 оттрасированы специальным образом (наверно для того, чтобы задержка была примерно известна). Таким образом к М-последовательности подмешиваются 2 сигнала, состояние которых в каждый момент времени неизвестно, чем видимо и обеспечивается "истинно" случайная последовательность. Цитата(DmitryR @ Jun 5 2006, 14:15)  Послушайте, а почему не использовать встроенный в, например Virtex/Stratix/ProASIC алгоритм? Ставится батарейка (а в ProASIC и без батарейки), с помощью нее в ПЛИС поддерживаются ключи декодирования, зашитые туда разработчиком. Прошивка кодируется парным ключом и зашивается в обычное конфигурационное PROM. Перехватывайте на здоровье, ключ - 128 бит. Батарейки хватает на десятилетия. Или я пропустил место в обсуждениях, где это было отметено? Однако в Спартанцах никаких встроенных средств защиты нет. Поэтому приходится мудрить. Кстати Вы пробовали метод с батарейкой на практике?? Не было ли сбоев, связанных с порчей прошивки?? Цитата(v_mirgorodsky @ Jun 6 2006, 10:31)  Степень "случайности" генерируемой последовательности для конкретно этой задачи значения не имеет. Если два соседних числа отличаются хотя бы одним битом, то SHA1 даст абсолютно разные решения. Даже если генерируемая последовательность будет не вполне "случайна", то период ее все равно будет много больше реально "перебираемых" вариантов. Гораздо более серьезным вопросом является возможность считывания кода из EEPROM под электронным микроскопом. Если верить моим знакомым, то здесь за ATmega с битом защиты у них просили около 10-12k$ - не думаю, что далласовская EEPROM-ка будет стоить намного дороже. Это значит, что если стоимость защищаемой информации меньше, чем эта сумма то защита хорошая
|
|
|
|
|
Jun 6 2006, 18:56
|

Частый гость
 
Группа: Свой
Сообщений: 164
Регистрация: 27-06-04
Пользователь №: 194

|
проект с полином работает - проверил на 3-х платах со Спартаном-3 (200т.вентилей) на выходе при каждом включении-выключении -появляются разные значения "качество" шума не обсчитывал, еепромку не подключал... ...так, что ... работает  мона пользовать
--------------------
qwerty
|
|
|
|
|
Jun 6 2006, 19:46
|

Частый гость
 
Группа: Свой
Сообщений: 164
Регистрация: 27-06-04
Пользователь №: 194

|
Цитата(3.14 @ Jun 6 2006, 23:30)  Ребята, дык в любом случае, по проволочке будет бпродить как адрес так и сами "секретные" данные. Тут никакого микроскопа не надо, чтобы за "миллион" включений платы всю ПЗУ скопировать. по каким проводам? Вместо далласовской еепромки, можно свой микроконтроллер ставить со своим алгоритмом аутентифткации
--------------------
qwerty
|
|
|
|
|
Jun 6 2006, 19:54
|

Их либе дих ...
     
Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609

|
Цитата по каким проводам? Это шарада такая  ? Цитата Вместо далласовской еепромки, можно свой микроконтроллер ставить со своим алгоритмом аутентифткации Прелесь сего, что ничего изобретать самому не надо. Если уж контроллер ставить, дык и такой метод не к чему. Ну а "истинное" случайное зерно можно другими способами рожать, например фиксировать значение счетчика (тактирующегося от глобальной тактовой) по активации LOCK у DLL/DCM ...
--------------------
Усы, борода и кеды - вот мои документы :)
|
|
|
|
|
Jun 6 2006, 20:10
|

Частый гость
 
Группа: Свой
Сообщений: 164
Регистрация: 27-06-04
Пользователь №: 194

|
Цитата(3.14 @ Jun 6 2006, 23:54)  Цитата по каким проводам? Это шарада такая  ? Цитата Вместо далласовской еепромки, можно свой микроконтроллер ставить со своим алгоритмом аутентифткации Прелесь сего, что ничего изобретать самому не надо. Если уж контроллер ставить, дык и такой метод не к чему. Ну а "истинное" случайное зерно можно другими способами рожать, например фиксировать значение счетчика (тактирующегося от глобальной тактовой) по активации LOCK у DLL/DCM ... Лучше иметь случайность которая не зависит от внешних воздействий (частота и т.д.) - температура тут не всчёт, так как такой генератор наверное будет от неё зависить
--------------------
qwerty
|
|
|
|
|
Jun 7 2006, 12:43
|

Их либе дих ...
     
Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609

|
2 Maksim Время за которое DLL "захватывает" входной сигнал, зависит и от напряжения и от температуры и от фазы луны  Цитата почему ? ИМХО все дело будет в длинне ключа и длинне последовательности, которая для этого используеться. Хотя я солидарен с фразой Разве EEPROM может чего то шифровать? Она просто выдает свое содержимое (или я что упустил?) ...
--------------------
Усы, борода и кеды - вот мои документы :)
|
|
|
|
Guest_Pruga_*
|
Jun 7 2006, 16:12
|
Guests

|
Цитата(Maksim @ Jun 6 2006, 21:56)  проект с полином работает - проверил на 3-х платах со Спартаном-3 (200т.вентилей) на выходе при каждом включении-выключении -появляются разные значения "качество" шума не обсчитывал, еепромку не подключал... ...так, что ... работает  мона пользовать Скажите пожалуйста какую тактовую частоту Вы подавали на вход?? И какой длины получалется выходная последовательность?? Цитата(3.14 @ Jun 7 2006, 15:43)  2 Maksim Время за которое DLL "захватывает" входной сигнал, зависит и от напряжения и от температуры и от фазы луны  Цитата почему ? ИМХО все дело будет в длинне ключа и длинне последовательности, которая для этого используеться. Хотя я солидарен с фразой Разве EEPROM может чего то шифровать? Она просто выдает свое содержимое (или я что упустил?) ... Может. EEPROM имеет на борту блок, осуществляющий шифрование по алгоритму SHA-1. На нем все и держится.
Сообщение отредактировал Pruga - Jun 7 2006, 16:14
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|