Maksim 0 4 июня, 2006 Опубликовано 4 июня, 2006 · Жалоба остаётся только загнать этот код в ПЛИСину - и вытащить наружу эти биты, а потом обсчитать - и будет ясно насколько случайна эта последовательность :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 220 4 июня, 2006 Опубликовано 4 июня, 2006 · Жалоба остаётся только загнать этот код в ПЛИСину - и вытащить наружу эти биты, а потом обсчитать - и будет ясно насколько случайна эта последовательность :) Боюсь, что качество последовательности может меняться в зависимости от конкретного экземпляра ПЛИСины. :( Но для рассматриваемых целей защиты прошивки ПЛИС это не будет иметь решающего значения, т.к. на сколько я понимаю, для решения этой задачи нужно иметь каждый раз разные вектора для проверки и разрешения работы прошивки ПЛИС. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maksim 0 4 июня, 2006 Опубликовано 4 июня, 2006 · Жалоба Боюсь, что качество последовательности может меняться в зависимости от конкретного экземпляра ПЛИСины. :( Но для рассматриваемых целей защиты прошивки ПЛИС это не будет иметь решающего значения, т.к. на сколько я понимаю, для решения этой задачи нужно иметь каждый раз разные вектора для проверки и разрешения работы прошивки ПЛИС. это даже хорошо, что оно будет меняться от ПЛИСа к ПЛИСу - это даже очень хорошо. Главное в этом деле непредсказуемость :tongue: .... но надо провести эксперимент, у меня есть парочка отладочных плат на Спартане-3, попробую что-нибудь сделать, но не гарантирую что ответ будет в ближайшую неделю :unsure: вообщем, кто заинтересован - может распределить фронт работ :) На неделе узнаю у математиков сколько им надо случайного числа, чтобы оценить его качество для такой задачи Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 5 июня, 2006 Опубликовано 5 июня, 2006 · Жалоба Послушайте, а почему не использовать встроенный в, например Virtex/Stratix/ProASIC алгоритм? Ставится батарейка (а в ProASIC и без батарейки), с помощью нее в ПЛИС поддерживаются ключи декодирования, зашитые туда разработчиком. Прошивка кодируется парным ключом и зашивается в обычное конфигурационное PROM. Перехватывайте на здоровье, ключ - 128 бит. Батарейки хватает на десятилетия. Или я пропустил место в обсуждениях, где это было отметено? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maksim 0 5 июня, 2006 Опубликовано 5 июня, 2006 · Жалоба Послушайте, а почему не использовать встроенный в, например Virtex/Stratix/ProASIC алгоритм? Ставится батарейка (а в ProASIC и без батарейки), с помощью нее в ПЛИС поддерживаются ключи декодирования, зашитые туда разработчиком. Прошивка кодируется парным ключом и зашивается в обычное конфигурационное PROM. Перехватывайте на здоровье, ключ - 128 бит. Батарейки хватает на десятилетия. Или я пропустил место в обсуждениях, где это было отметено? Всё дело в цене микросхем (для Xilinx) - Actel это несколько другая архитектура. Посмотрите цены на Spartan-3E и Virtex - и всё станет ясно ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
v_mirgorodsky 0 6 июня, 2006 Опубликовано 6 июня, 2006 · Жалоба Степень "случайности" генерируемой последовательности для конкретно этой задачи значения не имеет. Если два соседних числа отличаются хотя бы одним битом, то SHA1 даст абсолютно разные решения. Даже если генерируемая последовательность будет не вполне "случайна", то период ее все равно будет много больше реально "перебираемых" вариантов. Гораздо более серьезным вопросом является возможность считывания кода из EEPROM под электронным микроскопом. Если верить моим знакомым, то здесь за ATmega с битом защиты у них просили около 10-12k$ - не думаю, что далласовская EEPROM-ка будет стоить намного дороже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость Pruga 6 июня, 2006 Опубликовано 6 июня, 2006 · Жалоба Сегодня разбирался с ГСЧ (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-ка будет стоить намного дороже. Это значит, что если стоимость защищаемой информации меньше, чем эта сумма то защита хорошая :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maksim 0 6 июня, 2006 Опубликовано 6 июня, 2006 · Жалоба проект с полином работает - проверил на 3-х платах со Спартаном-3 (200т.вентилей) на выходе при каждом включении-выключении -появляются разные значения :) "качество" шума не обсчитывал, еепромку не подключал... ...так, что ... работает B) мона пользовать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 6 июня, 2006 Опубликовано 6 июня, 2006 · Жалоба Ребята, дык в любом случае, по проволочке будет бпродить как адрес так и сами "секретные" данные. Тут никакого микроскопа не надо, чтобы за "миллион" включений платы всю ПЗУ скопировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maksim 0 6 июня, 2006 Опубликовано 6 июня, 2006 · Жалоба Ребята, дык в любом случае, по проволочке будет бпродить как адрес так и сами "секретные" данные. Тут никакого микроскопа не надо, чтобы за "миллион" включений платы всю ПЗУ скопировать. по каким проводам? Вместо далласовской еепромки, можно свой микроконтроллер ставить со своим алгоритмом аутентифткации Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 6 июня, 2006 Опубликовано 6 июня, 2006 · Жалоба по каким проводам?Это шарада такая :) ? Вместо далласовской еепромки, можно свой микроконтроллер ставить со своим алгоритмом аутентифткацииПрелесь сего, что ничего изобретать самому не надо. Если уж контроллер ставить, дык и такой метод не к чему. Ну а "истинное" случайное зерно можно другими способами рожать, например фиксировать значение счетчика (тактирующегося от глобальной тактовой) по активации LOCK у DLL/DCM ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maksim 0 6 июня, 2006 Опубликовано 6 июня, 2006 · Жалоба по каким проводам?Это шарада такая :) ? :blink: Вместо далласовской еепромки, можно свой микроконтроллер ставить со своим алгоритмом аутентифткацииПрелесь сего, что ничего изобретать самому не надо. Если уж контроллер ставить, дык и такой метод не к чему. Ну а "истинное" случайное зерно можно другими способами рожать, например фиксировать значение счетчика (тактирующегося от глобальной тактовой) по активации LOCK у DLL/DCM ... Лучше иметь случайность которая не зависит от внешних воздействий (частота и т.д.) - температура тут не всчёт, так как такой генератор наверное будет от неё зависить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 7 июня, 2006 Опубликовано 7 июня, 2006 · Жалоба Ребята, дык в любом случае, по проволочке будет бпродить как адрес так и сами "секретные" данные. Тут никакого микроскопа не надо, чтобы за "миллион" включений платы всю ПЗУ скопировать. почему ? ИМХО все дело будет в длинне ключа и длинне последовательности, которая для этого используеться. Хотя я солидарен с фразой Если стоимость защищаемой информации меньше, чем эта сумма на взлом информаци, то можно считать что задача выполнена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 7 июня, 2006 Опубликовано 7 июня, 2006 · Жалоба 2 Maksim Время за которое DLL "захватывает" входной сигнал, зависит и от напряжения и от температуры и от фазы луны :) почему ? ИМХО все дело будет в длинне ключа и длинне последовательности, которая для этого используеться. Хотя я солидарен с фразой Разве EEPROM может чего то шифровать? Она просто выдает свое содержимое (или я что упустил?) ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость Pruga 7 июня, 2006 Опубликовано 7 июня, 2006 (изменено) · Жалоба проект с полином работает - проверил на 3-х платах со Спартаном-3 (200т.вентилей) на выходе при каждом включении-выключении -появляются разные значения :) "качество" шума не обсчитывал, еепромку не подключал... ...так, что ... работает B) мона пользовать Скажите пожалуйста какую тактовую частоту Вы подавали на вход?? И какой длины получалется выходная последовательность?? 2 Maksim Время за которое DLL "захватывает" входной сигнал, зависит и от напряжения и от температуры и от фазы луны :) почему ? ИМХО все дело будет в длинне ключа и длинне последовательности, которая для этого используеться. Хотя я солидарен с фразой Разве EEPROM может чего то шифровать? Она просто выдает свое содержимое (или я что упустил?) ... Может. EEPROM имеет на борту блок, осуществляющий шифрование по алгоритму SHA-1. На нем все и держится. Изменено 7 июня, 2006 пользователем Pruga Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться