Цитата(Torpeda @ Mar 12 2013, 11:49)

Вопрос поставлен комплексно конечно....
1) Определить вычислительную трудоемкость алгоритмов, т.е. число тактов процессора для обработки одного байта....
Для определения "число тактов процессора для обработки одного байта" если алгоритм только в виде идеи и блок-схемы существует предложить ничего конкретного не могу... тут математическое моделирование помочь скорее может.
Если алгоритм реализован на уровне RTL - запустите симуляцию и узнаете точно сколько тактов ему нужно.
Во-первых, в этом абзаце речь шла об универсальных процессорах, то-есть система команд дана нам свыше, и ничего менять нельзя. Но эта характеристика тоже важна, поверьте.
Во-вторых, рад бы, но реализация, сами понимаете, авторская, закрытая, исходников нет.
Цитата
2) "Китайци реализовали ГОСТ 28147-89 в 650GE с помощью Synopsys DesignCompiler для библиотеки UMC L180 0.18μm...."
Понятно
"А если эту самую ключевую развертку неким образом модифицировать, насколько "потяжелеет" реализация"?
Что значит потяжелеет? В мире ASIC это означает площадь кристала.
Вам надо сделать оценку площади будущего кристала или всётаки сравнить 2 RTL реализации?
Сравнить. Но при том, что сделать реализацию в синопсисе я не могу за отсутствием синопсиса. Реализации на ПЛИСах, хоть и показывают некую среднюю температуру по больнице, но иногда очень сильно лажают. На СБИСах, похоже, можно сделать гораздо лучше.
Вариант модификации ГОСТа, например, подразумевает наличие двух различных подстановок - по 4 включения каждой на итерацию. Отсюда, видится, нужно добавление одной подстановки плюс демультиплексор, зависящий от конкретного шага алгоритма. Если эта функция тривиальна - 4 верхних подстановки равны, 4 нижних подстановки равны - ну тут все просто элементарно. Но вот по криптоанализу это не всегда есть хорошо ((
Цитата
а) Если сравнить реализации, то получите из ISE репорт про количество тригеров и гейтов и сравнивайте что больше, а что меньше и на сколько %
б) Если надо сделать оценку площади будущего кристала, то тут хуже...
- Достаточно точно можно получить эту оценку отсинтезив проект в Synopsys DesignCompiler в вашей UMC L180 0.18μm.
Площадь всех тригеров и гейтов будет занимать примерно 70% будущего кристала.
- Менее точно можно прикинуть так: Вычисляем сколько гейтов на тригер получилось в предыдущем RTL . Из нового RTL узнаём сколько у вас тригеров. Узнаём сколько получится гейтов (зная сколько гейт\тригер). Находим насколько % больше гейтов и тригеров в новом дизайне. увеличиваем на этот процент площадь....
Как сравнить 30 LUT-ов и 53 FF-ов c 853 GE? что больше?
Повторюсь, нет у меня синопсиса. Был бы (тут молитва к модераторам - пустите на ftp, если у вас валяется!) - сгенерил бы. Пока у меня на ПЛИСах есть ключевая развертка примерно в 700 GE если ключ извне и 160 GE если ключ фиксирован... Площадь не нужна - обычно все меряются именно чистыми GE... Но это и рядом не лежит с 650 GE на всю схему. Т.е. я не могу утверждать, что моя vhdl интерпретация госта идеальна. Можно ведь и на 30 килогейтов написать...
Ну и наверное вопрос по ходу: вот у нас висит внешний (для алгоритма) ключ 256 бит. Из него, в зависимости от такта работы алгоритма шифрования, надо выбрать 32-битное слово, а потом, опять же в зависимости от такта, из этого 32-битного слова надо выбрать 4-битное слово, которое, сложив с 4 битами промежуточных результатов Х (и с carry - мы же по модулю 2^32 работаем!) занести в память по адресу, где лежало Х... Так вот, выборка ключевой информации на ПЛИСах как-нибудь кроме мультиплексоров решается? Если ключ фиксированный, САПР генерит ROM нужных размеров, и там это все очень экономично получается. А в случае, когда ключ - это переменная?
Цитата
Да, а китайци DFT вставили? А-то это есчё площади процентов 50 добавит при ваших 650 GE (тригеров 100 я так полагаю). А-то сюрпризом будет если ASIC сделать....
Я привел ссылку на их работу выше. Более достоверной информации у меня нет. И что это за DFT? Понятно, что не Direct Fourier Transform, но вот дальше гугль заманчиво обширен ))