Уважаемый Maksim, все к сожалению ен так просто. Если читать
сертификат, то там заявлено исключительно о качестве алгоритомв
шифрования и подписи и не слова о качестве алгоритма управления
ключами и и качестве их генерации.
Это... забавно.
До сегоднящнего дня ключевая структура Вербы в полном изложении
загрифована и получить ее у ТИК или остатков МО ПНИЭИ официально
практически невозможно.
NIL. По крайней мере для "Вербы-О" все опубликовано в прошлогодней
книжке Домашева и др.
Наличие грифа не позволяет к сожаленнию публиковать все.
NIL. Ст.15.3 ФЗ "О правовой охране программ..." специально оговаривает
этот случай: "Лицо, правомерно владеющее экземпляром программы ...
вправе без согласия правообладателя ... декомпилировать или поручать
декомпилирование программы [если] информация, необходимая для
взаимодействия независимо разработанной данным лицом программы ... с
другими программами, недоступна из других источников". Ровно твой
случай: вопрос совместимости (возможности взаимодействия).
Однако направление в котором надо копать следующее. ВЗЯТЬ ВЕРБУ
ИЛИ КРИПТОН И ПРОВЕРИТЬ СТАТИСТИЧЕСКОЕ КАЧЕСТВО КЛЮЧЕЙ
(СЛУЧАЙНОСТЬ, РАВНОВЕРОЯТНОСТЬ И САМОЕ ГЛАВНОЕ ОЦЕНИТЬ КОЛИЧЕСТВО
КЛЮЧЕЙ, КОТОРОЕ МОЖЕТ БЫТЬ СГНЕНЕРИРОВАНО ОДНИМ ДЕВАЙСОМ ТИПА
КРИПТОН ИЛИ ОДНИМ АРМ ГЕНЕРАЦИИ ТИПА ВЕРБА).
Смотри, допустим я хочу зарезать ключевое пространство ГОСТ в восемь
раз, чтобы оставить себе возможность атаки перебором 2^32 вариантов.
Если я не полный идиот, я напишу что-то вроде (извини псевдокод):
keygen(key) {
int key[3];
const FAPSI_key[3] = blablabla;
key[0] = rand();
for (i=1, i<=3, i++)
{key[i] = upperhalf(gostblock(key[i-1]*2^32+key[i-1]), FAPSI_key);}
return(key);
};
И это простейший случай, а можно ведь и биты перемешать :)
Какой длины прогон надо сделать, чтобы оценить статистическое качество
ключей? Я так понимаю, порядка 2^mid(32,64). Это на поллимона
машинного времени.