|
Массивный брутфорс на FPGA, Криптография |
|
|
|
May 9 2008, 07:43
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 1-03-08
Из: Kiev, Ukraine
Пользователь №: 35 519

|
Настало время и мне сделать брутфорсер на FPGA. В общем, девайс который бы перебирал все доступные ключи, подавал их на вход некоего крипто-алгоритма (в моем случае алгоритм это DES в режиме CBC + еще кое-что специфическое), сверял результат с эталонным, и если не сошелся, шел дальше. Всё параллельно, блоков, которые проверяют свой ключ может быть много, вплоть до 100 и больше, сколько влезет в чип или в несколько чипов сразу. То есть, чем больше блоков, тем больше ключей мы можем проверить за еденицу времени. Тут всё понятно. Наступил вопрос, как это всё сделать наиболее дешево. Выяснилось, что по соотношению цена-скорость лучше всего Altera Cyclone или Xilinx Spartan. При этом, в случае с Циклонами, наиболее оптимальны чипы EP3C40 и EP3C25, а остальные "выбиваются" из фен-шуя. Например вот эти люди сделали на 120-и чипах Спартан: http://www.copacobana.org/faq.html... потому что подсчитали, что так будет дешевле всего. Теперь, собственно, вопросы. 1. Зачем тогда вообще нужны high-end чипы вроде Stratix/Virtex? Только для тех дизайнов где нужно много ног или где дизайн нельзя "размазать" по нескольким чипам? 2. Тираж моих девайсов будет крайне небольшим, аж несколько штук, может 5 или 10. Во сколько может оказаться заказ плат таким количеством, если туда нужно будет установить штук 8 Циклонов, DDR, флеш-память, MAX2 или EPCS для загрузки, DC-DC конвертор, прочая мелочь вроде USB-разьемов и пары светодиодов? Правильно ли я думаю, что проще найти где-то готовые платы с нужными мне критериями чем заказывать свои? Если да, то где их правильно искать? И не получится ли так, что купить простой dev kit для Stratix II у Altera за килобакс будет дешевле чем городить "городуху" с пачкой Циклонов и заказывать плату для них? Да, насчет бюджета на всю электронику - не более $1000. Хочется за эти деньги получить возможный максимум. Извините зараннее если написал что не так.
|
|
|
|
|
May 9 2008, 08:07
|
Местный
  
Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723

|
Цитата(drop669 @ May 9 2008, 10:43)  Да, насчет бюджета на всю электронику - не более $1000. Хочется за эти деньги получить возможный максимум. Извините зараннее если написал что не так. Стоимость только разработки многократно выше этой цифры. Обсуждать цену дивайсов при этом бессмысленно. Надо брать готовую плату.
|
|
|
|
|
May 9 2008, 08:09
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 1-03-08
Из: Kiev, Ukraine
Пользователь №: 35 519

|
Цитата(SIA @ May 9 2008, 11:07)  Стоимость только разработки многократно выше этой цифры. Обсуждать цену дивайсов при этом бессмысленно. Надо брать готовую плату. Допустим. Так что, лучше не морочить голову и сосредоточиться на какой-нибудь готовой плате с Stratix/Virtex или таки задуматься о пачке Cyclone/Spartan?
|
|
|
|
|
May 9 2008, 09:09
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(drop669 @ May 9 2008, 17:09)  Допустим. Так что, лучше не морочить голову и сосредоточиться на какой-нибудь готовой плате с Stratix/Virtex или таки задуматься о пачке Cyclone/Spartan? у меня дурацкий вопрос а может сначала помоделировать, посинтезировать под разные кристаллы и семейства а потому уже определится что лучше и какой кристал и т.д.?
--------------------
Cogito ergo sum
|
|
|
|
|
May 9 2008, 09:36
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 1-03-08
Из: Kiev, Ukraine
Пользователь №: 35 519

|
Цитата(Postoroniy_V @ May 9 2008, 12:09)  у меня дурацкий вопрос а может сначала помоделировать, посинтезировать под разные кристаллы и семейства а потому уже определится что лучше и какой кристал и т.д.? Уже просинтезировал  Осталось выбрать оптимальную цену-качество. Ну вот, например, в EP3C40 можно всунуть X блоков. И стоит она по онлайновому прайсу Альтеры, самая дешевая, $80 А вот есть EP3C80, туда можно всунуть 2*X блоков, грубо говоря. Но по тому же прайсу, самая дешевая, стоит $220. Таким образом, дешевле взять пару EP3C40 за $160 чем одну EP3C80. Я пытаюсь решить: морочить ли мне голову с этой ценовой калькуляцией и дальше, а затем решать, искать ли готовую борду с пачкой Циклонов или заказать свою борду где-то. Или лучше и проще для головной боли забить на это и заюзать один Stratix II. Кстати у Stratix II соотношение цена-скорость в контексте моей задачки еще хуже.
|
|
|
|
|
May 9 2008, 10:09
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(drop669 @ May 9 2008, 13:36)  Уже просинтезировал  Осталось выбрать оптимальную цену-качество. Ну вот, например, в EP3C40 можно всунуть X блоков. И стоит она по онлайновому прайсу Альтеры, самая дешевая, $80 А вот есть EP3C80, туда можно всунуть 2*X блоков, грубо говоря. Но по тому же прайсу, самая дешевая, стоит $220. Таким образом, дешевле взять пару EP3C40 за $160 чем одну EP3C80. Я пытаюсь решить: морочить ли мне голову с этой ценовой калькуляцией и дальше, а затем решать, искать ли готовую борду с пачкой Циклонов или заказать свою борду где-то. Или лучше и проще для головной боли забить на это и заюзать один Stratix II. Кстати у Stratix II соотношение цена-скорость в контексте моей задачки еще хуже. Критерий простой - все в одном кристалле. Вы же что то про DDR еще говорили. Протоколы обмена, возможность обменав по различным интерфейсам, наличие контактов ввода вывода по различные уровни сигналов, встроенное pll - циклоны не катят. Если можно купить, дешевле купить, человеки часы при таких объемах все перевесят.
|
|
|
|
|
May 9 2008, 10:54
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Безусловно самомому сделать будет дешевле. В 1000$ железо легко умещается. Работу не считаем, хорошее дело можно и в кредит сделать На самом деле архитектура здесь примитивная до безобразия. В Altium Designer схему буквально за день можно накидать. Самая трудоемкая часть здесь, это обеспечить чтоб все чипы хорошо припаялись и война с паяльщиками. А где купить такую конструкцию готовую даже не представляю. С одной стороны ее задача предельно примитивная, а KIT-ы всетаки заточены на универсализм. С другой стороны должна быть обеспечена специфическая масштабируемость чего KIT-ы даже в мыслях не имеют. Цитата(drop669 @ May 9 2008, 11:13)  Настало время и мне сделать брутфорсер на FPGA. В общем, девайс который бы перебирал все доступные ключи, подавал их на вход некоего крипто-алгоритма (в моем случае алгоритм это DES в режиме CBC + еще кое-что специфическое), сверял результат с эталонным, и если не сошелся, шел дальше. Всё параллельно, блоков, которые проверяют свой ключ может быть много, вплоть до 100 и больше, сколько влезет в чип или в несколько чипов сразу. То есть, чем больше блоков, тем больше ключей мы можем проверить за еденицу времени. Тут всё понятно. Наступил вопрос, как это всё сделать наиболее дешево. Выяснилось, что по соотношению цена-скорость лучше всего Altera Cyclone или Xilinx Spartan. При этом, в случае с Циклонами, наиболее оптимальны чипы EP3C40 и EP3C25, а остальные "выбиваются" из фен-шуя. Например вот эти люди сделали на 120-и чипах Спартан: http://www.copacobana.org/faq.html... потому что подсчитали, что так будет дешевле всего. Теперь, собственно, вопросы. 1. Зачем тогда вообще нужны high-end чипы вроде Stratix/Virtex? Только для тех дизайнов где нужно много ног или где дизайн нельзя "размазать" по нескольким чипам? 2. Тираж моих девайсов будет крайне небольшим, аж несколько штук, может 5 или 10. Во сколько может оказаться заказ плат таким количеством, если туда нужно будет установить штук 8 Циклонов, DDR, флеш-память, MAX2 или EPCS для загрузки, DC-DC конвертор, прочая мелочь вроде USB-разьемов и пары светодиодов? Правильно ли я думаю, что проще найти где-то готовые платы с нужными мне критериями чем заказывать свои? Если да, то где их правильно искать? И не получится ли так, что купить простой dev kit для Stratix II у Altera за килобакс будет дешевле чем городить "городуху" с пачкой Циклонов и заказывать плату для них? Да, насчет бюджета на всю электронику - не более $1000. Хочется за эти деньги получить возможный максимум. Извините зараннее если написал что не так.
|
|
|
|
|
May 9 2008, 17:52
|
Знающий
   
Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737

|
Цитата(drop669 @ May 9 2008, 11:43)  1. Зачем тогда вообще нужны high-end чипы вроде Stratix/Virtex? Только для тех дизайнов где нужно много ног или где дизайн нельзя "размазать" по нескольким чипам? У вас задача очень специфичная. Части между собой практически не связаны. В большинстве дизайнов такого нет. Цитата(drop669 @ May 9 2008, 13:36)  Ну вот, например, в EP3C40 можно всунуть X блоков. И стоит она по онлайновому прайсу Альтеры, самая дешевая, $80 А вот есть EP3C80, туда можно всунуть 2*X блоков, грубо говоря. Надеюсь вы учли стоимость дополнительных блоков. Например памяти. Вот, к примеру, в вас на плате 4 ПЛИС, а ОЗУ к каждой своя? Или поток как-то шиной передается? Что будет ограничивать частоту устройства? Цитата(sazh @ May 9 2008, 14:09)  встроенное pll - циклоны не катят. Вопрос не по теме, но почему "не катят"? Цитата(AlexandrY @ May 9 2008, 14:54)  Безусловно самомому сделать будет дешевле. В 1000$ железо легко умещается. Работу не считаем, хорошее дело можно и в кредит сделать  Не так уж и безусловно. Опять же память, частота работы с памятью, правильно развести все это хозяйство. Работу в стоимости надо учитывать. Обязательно. А еще отладку. А еще ... Кстати, если взлом разовый, то в время взлома надо включить и время разработки.
|
|
|
|
|
May 9 2008, 18:12
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 1-03-08
Из: Kiev, Ukraine
Пользователь №: 35 519

|
Цитата(dvladim @ May 9 2008, 20:52)  Вот, к примеру, в вас на плате 4 ПЛИС, а ОЗУ к каждой своя? Или поток как-то шиной передается? Что будет ограничивать частоту устройства? ОЗУ нужно только для софтпроцессора, Nios или MicroBlaze. Да и то не обязательно DDR, и не обязательно большое, может что-то простое, может небольшая SRAM. Часть флеш-памяти тоже для содержания в себе проги для софтпроца. Другая часть флеш-памяти для бута ПЛИС. Софтпроцессор нужен для сервисных дел: решить в каких пределах перебирать ключ, "раздавать" каждому блоку свои ключи, ждать пока у какого-то блока сработает бит на выходе компаратора, который сравнивает то что выходит с блока с эталоном, ну и связь с юзером. Софтпроцессор вообще может быть экономичный и медленный. Частота устройства ограничивается временем (propagation delay) начиная от регистра содержащего ключ, затем через весь блок, затем до выхода компаратора. Чтобы не морочить голову, поставлю вопрос так: сколько может стоить в RU или UA разводка платы где будет 6-8 ПЛИС в корпусах PQFP/TQFP от 100 до 200 контактов каждая + разная обвязка вроде памяти и разьемов и сколько будет стоить это всё туда запаять, если учитывать что нужно будет всего 10 или 20 экземпляров? И сильно ли изменится цена, если корпуса будут FBGA?
|
|
|
|
|
May 9 2008, 19:06
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
На вскидку будет стоить 1500-1600$ по нынешнему курсу. Сюда войдет трассировка, изготовление PCB, шаблона, пайка. Корпуса чипов значения не имеют. Может только у TQFP частотные характеристики будут похуже, разогнать будет сложнее. ИМХО. Удельно софтпроцессор на FPGA обойдется раза в два дороже и раза в 4-е медленнее нормального ARM-а с нормальным JTAG отладчиком, эффективной средой разработки и наработанными либами. Цитата(drop669 @ May 9 2008, 21:42)  ОЗУ нужно только для софтпроцессора, Nios или MicroBlaze. Да и то не обязательно DDR, и не обязательно большое, может что-то простое, может небольшая SRAM. Часть флеш-памяти тоже для содержания в себе проги для софтпроца. Другая часть флеш-памяти для бута ПЛИС. Софтпроцессор нужен для сервисных дел: решить в каких пределах перебирать ключ, "раздавать" каждому блоку свои ключи, ждать пока у какого-то блока сработает бит на выходе компаратора, который сравнивает то что выходит с блока с эталоном, ну и связь с юзером. Софтпроцессор вообще может быть экономичный и медленный. Частота устройства ограничивается временем (propagation delay) начиная от регистра содержащего ключ, затем через весь блок, затем до выхода компаратора.
Чтобы не морочить голову, поставлю вопрос так: сколько может стоить в RU или UA разводка платы где будет 6-8 ПЛИС в корпусах PQFP/TQFP от 100 до 200 контактов каждая + разная обвязка вроде памяти и разьемов и сколько будет стоить это всё туда запаять, если учитывать что нужно будет всего 10 или 20 экземпляров? И сильно ли изменится цена, если корпуса будут FBGA?
|
|
|
|
|
May 9 2008, 20:13
|

Electrical Engineer
     
Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778

|
Цитата(drop669 @ May 9 2008, 11:43)  Настало время и мне сделать брутфорсер на FPGA. .. Всё параллельно, блоков, которые проверяют свой ключ может быть много, вплоть до 100 и больше, сколько влезет в чип или в несколько чипов сразу. .. То есть, чем больше блоков, тем больше ключей мы можем проверить за еденицу времени. Тут всё понятно. .. Тираж моих девайсов будет крайне небольшим, аж несколько штук, может 5 или 10. .. Да, насчет бюджета на всю электронику - не более $1000. не в службу а в дружбу: я бы сначала всёже сел с калькулятором и прикинул 1. исходя из бюджета число плат и плис (и тип плис) 2. исходя из конкретной плис - утилизацию кристалла и быстродействие (это можно сделать вообще без железа - имея только описанный в терминах синтезируемого hdl алгоритм декриптовки - оценка будет грубой, но позволит прикинуть хотя бы порядок итоговой цифры) 3. время, необходимое вашему конструируемому железу для перебора всех (или части) комбинаций, учитывая вышеприведенные факторы и число тактов, затрачиваемые вашим engine на обработку. а то может очень даже статься, что с таким бюджетом целесообразность заморачиваться с этим маленькая((( (в своё время по просьбе занимался оценкой подобной задачи для keeloq - там что-то совсем невесёлое по ресурсам получалось (правда там ключ 64бита + *2 использование ресурсов из-за особенностей метода нахождения ключа - в итоге что-то такое же монстроидальное как copacobana вырисовывалось.. хотя сегодня, учитывая цены на low-cost FPGA, это уже не те деньги, что были тогда.. )
|
|
|
|
|
May 10 2008, 16:56
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 1-03-08
Из: Kiev, Ukraine
Пользователь №: 35 519

|
Цитата(AlexandrY @ May 9 2008, 22:06)  На вскидку будет стоить 1500-1600$ по нынешнему курсу. Сюда войдет трассировка, изготовление PCB, шаблона, пайка. Корпуса чипов значения не имеют. Может только у TQFP частотные характеристики будут похуже, разогнать будет сложнее. А сколько из этих денег - сама разработка, и сколько будет стоить изготовление каждой платы? Если учесть что тираж 10-20?
|
|
|
|
|
May 10 2008, 19:45
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Насколько знаю запросы наших трасировщиков меньше чем 900$ за две недели работы не попросят. А цену PCB можно посчитать у каких нибудь китайцев. Например у этих - http://www.pcbcart.com/Думаю хватит 6-и слойной платы с нормой 0.1 мм и двумя классами межслойных via Цитата(drop669 @ May 10 2008, 20:26)  А сколько из этих денег - сама разработка, и сколько будет стоить изготовление каждой платы? Если учесть что тираж 10-20?
|
|
|
|
|
May 10 2008, 20:08
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 1-03-08
Из: Kiev, Ukraine
Пользователь №: 35 519

|
Цитата(AlexandrY @ May 10 2008, 22:45)  Насколько знаю запросы наших трасировщиков меньше чем 900$ за две недели работы не попросят. А цену PCB можно посчитать у каких нибудь китайцев. Например у этих - http://www.pcbcart.com/Думаю хватит 6-и слойной платы с нормой 0.1 мм и двумя классами межслойных via Спасибо! Это я и хотел понять.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|