Перейти к содержанию
    

остаётся только загнать этот код в ПЛИСину - и вытащить наружу эти биты, а потом обсчитать - и будет ясно насколько случайна эта последовательность :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

остаётся только загнать этот код в ПЛИСину - и вытащить наружу эти биты, а потом обсчитать - и будет ясно насколько случайна эта последовательность :)

 

Боюсь, что качество последовательности может меняться в зависимости от конкретного экземпляра ПЛИСины. :( Но для рассматриваемых целей защиты прошивки ПЛИС это не будет иметь решающего значения, т.к. на сколько я понимаю, для решения этой задачи нужно иметь каждый раз разные вектора для проверки и разрешения работы прошивки ПЛИС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Боюсь, что качество последовательности может меняться в зависимости от конкретного экземпляра ПЛИСины. :( Но для рассматриваемых целей защиты прошивки ПЛИС это не будет иметь решающего значения, т.к. на сколько я понимаю, для решения этой задачи нужно иметь каждый раз разные вектора для проверки и разрешения работы прошивки ПЛИС.

 

это даже хорошо, что оно будет меняться от ПЛИСа к ПЛИСу - это даже очень хорошо. Главное в этом деле непредсказуемость :tongue:

.... но надо провести эксперимент, у меня есть парочка отладочных плат на Спартане-3, попробую что-нибудь сделать, но не гарантирую что ответ будет в ближайшую неделю :unsure:

вообщем, кто заинтересован - может распределить фронт работ :)

На неделе узнаю у математиков сколько им надо случайного числа, чтобы оценить его качество для такой задачи

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Послушайте, а почему не использовать встроенный в, например Virtex/Stratix/ProASIC алгоритм? Ставится батарейка (а в ProASIC и без батарейки), с помощью нее в ПЛИС поддерживаются ключи декодирования, зашитые туда разработчиком. Прошивка кодируется парным ключом и зашивается в обычное конфигурационное PROM. Перехватывайте на здоровье, ключ - 128 бит. Батарейки хватает на десятилетия. Или я пропустил место в обсуждениях, где это было отметено?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Послушайте, а почему не использовать встроенный в, например Virtex/Stratix/ProASIC алгоритм? Ставится батарейка (а в ProASIC и без батарейки), с помощью нее в ПЛИС поддерживаются ключи декодирования, зашитые туда разработчиком. Прошивка кодируется парным ключом и зашивается в обычное конфигурационное PROM. Перехватывайте на здоровье, ключ - 128 бит. Батарейки хватает на десятилетия. Или я пропустил место в обсуждениях, где это было отметено?

Всё дело в цене микросхем (для Xilinx) - Actel это несколько другая архитектура.

Посмотрите цены на Spartan-3E и Virtex - и всё станет ясно ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Степень "случайности" генерируемой последовательности для конкретно этой задачи значения не имеет. Если два соседних числа отличаются хотя бы одним битом, то SHA1 даст абсолютно разные решения. Даже если генерируемая последовательность будет не вполне "случайна", то период ее все равно будет много больше реально "перебираемых" вариантов.

 

Гораздо более серьезным вопросом является возможность считывания кода из EEPROM под электронным микроскопом. Если верить моим знакомым, то здесь за ATmega с битом защиты у них просили около 10-12k$ - не думаю, что далласовская EEPROM-ка будет стоить намного дороже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость Pruga

Сегодня разбирался с ГСЧ (RND.vhd). Загрузил весь проект в ISE, создал тестбенч для RND.vhd, на вход клока подал 50 МГц, а с выхода снимал случайную последовательность. При функциональном моделировании получается некоторая последовательность, (на случайность не проверял).

 

to 3.14

 

Ключ есть, полином есть, а сколько тактов это крутится?? Я так думаю каждый раз одинаковое количество раз. :)

 

to Pruga

 

код я посмотрел - там полином и... указание и маршрут разводки 2-х цепей :cranky:

и, что там есть неопределённость?

и ещё ... cRING1<=transport TO01(RING1) after tNET1+tILOX-100 ps;

это как понимать? :blink:

Похоже эти задержки моделируют реальные, для выполнения функционального моделирования. В комментарии написано: "--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 сигнала, состояние которых в каждый момент времени неизвестно, чем видимо и обеспечивается "истинно" случайная последовательность.

 

 

Послушайте, а почему не использовать встроенный в, например Virtex/Stratix/ProASIC алгоритм? Ставится батарейка (а в ProASIC и без батарейки), с помощью нее в ПЛИС поддерживаются ключи декодирования, зашитые туда разработчиком. Прошивка кодируется парным ключом и зашивается в обычное конфигурационное PROM. Перехватывайте на здоровье, ключ - 128 бит. Батарейки хватает на десятилетия. Или я пропустил место в обсуждениях, где это было отметено?
Однако в Спартанцах никаких встроенных средств защиты нет. Поэтому приходится мудрить. Кстати Вы пробовали метод с батарейкой на практике?? Не было ли сбоев, связанных с порчей прошивки??

 

 

Степень "случайности" генерируемой последовательности для конкретно этой задачи значения не имеет. Если два соседних числа отличаются хотя бы одним битом, то SHA1 даст абсолютно разные решения. Даже если генерируемая последовательность будет не вполне "случайна", то период ее все равно будет много больше реально "перебираемых" вариантов.

 

Гораздо более серьезным вопросом является возможность считывания кода из EEPROM под электронным микроскопом. Если верить моим знакомым, то здесь за ATmega с битом защиты у них просили около 10-12k$ - не думаю, что далласовская EEPROM-ка будет стоить намного дороже.

Это значит, что если стоимость защищаемой информации меньше, чем эта сумма то защита хорошая :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проект с полином работает - проверил на 3-х платах со Спартаном-3 (200т.вентилей)

на выходе при каждом включении-выключении -появляются разные значения :)

"качество" шума не обсчитывал, еепромку не подключал...

...так, что ... работает B) мона пользовать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребята, дык в любом случае, по проволочке будет бпродить как адрес так и сами "секретные" данные. Тут никакого микроскопа не надо, чтобы за "миллион" включений платы всю ПЗУ скопировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребята, дык в любом случае, по проволочке будет бпродить как адрес так и сами "секретные" данные. Тут никакого микроскопа не надо, чтобы за "миллион" включений платы всю ПЗУ скопировать.

по каким проводам?

Вместо далласовской еепромки, можно свой микроконтроллер ставить со своим алгоритмом аутентифткации

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по каким проводам?
Это шарада такая :) ?

Вместо далласовской еепромки, можно свой микроконтроллер ставить со своим алгоритмом аутентифткации
Прелесь сего, что ничего изобретать самому не надо. Если уж контроллер ставить, дык и такой метод не к чему. Ну а "истинное" случайное зерно можно другими способами рожать, например фиксировать значение счетчика (тактирующегося от глобальной тактовой) по активации LOCK у DLL/DCM ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по каким проводам?
Это шарада такая :) ?

:blink:

Вместо далласовской еепромки, можно свой микроконтроллер ставить со своим алгоритмом аутентифткации
Прелесь сего, что ничего изобретать самому не надо. Если уж контроллер ставить, дык и такой метод не к чему. Ну а "истинное" случайное зерно можно другими способами рожать, например фиксировать значение счетчика (тактирующегося от глобальной тактовой) по активации LOCK у DLL/DCM ...

 

Лучше иметь случайность которая не зависит от внешних воздействий (частота и т.д.) -

температура тут не всчёт, так как такой генератор наверное будет от неё зависить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребята, дык в любом случае, по проволочке будет бпродить как адрес так и сами "секретные" данные. Тут никакого микроскопа не надо, чтобы за "миллион" включений платы всю ПЗУ скопировать.

 

почему ? ИМХО все дело будет в длинне ключа и длинне последовательности, которая для этого используеться.

Хотя я солидарен с фразой

Если стоимость защищаемой информации меньше, чем эта сумма на взлом информаци, то можно считать что задача выполнена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Maksim

Время за которое DLL "захватывает" входной сигнал, зависит и от напряжения и от температуры и от фазы луны :)

 

почему ? ИМХО все дело будет в длинне ключа и длинне последовательности, которая для этого используеться.

Хотя я солидарен с фразой

Разве EEPROM может чего то шифровать? Она просто выдает свое содержимое (или я что упустил?) ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость Pruga
проект с полином работает - проверил на 3-х платах со Спартаном-3 (200т.вентилей)

на выходе при каждом включении-выключении -появляются разные значения :)

"качество" шума не обсчитывал, еепромку не подключал...

...так, что ... работает B) мона пользовать

Скажите пожалуйста какую тактовую частоту Вы подавали на вход?? И какой длины получалется выходная последовательность??

 

2 Maksim

Время за которое DLL "захватывает" входной сигнал, зависит и от напряжения и от температуры и от фазы луны :)

 

почему ? ИМХО все дело будет в длинне ключа и длинне последовательности, которая для этого используеться.

Хотя я солидарен с фразой

Разве EEPROM может чего то шифровать? Она просто выдает свое содержимое (или я что упустил?) ...
Может. EEPROM имеет на борту блок, осуществляющий шифрование по алгоритму SHA-1. На нем все и держится.
Изменено пользователем Pruga

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...