Армянское Радио: ну тогда надо начать с того, что массив нулевого размера в структуре -- это вообще не по стандарту. По стандарту (с99) -- массив с пустыми скобками (четвёртое, кстати, место). Неопределённое поведение возникает при обращении за пределы объекта на который "наложена" такая структура.
xEpozZ: похоже на модифицированный uBoot. Подозреваю, что надо после ресета роутера жать escape или ^C чтобы оно остановилось и реально дало выбрать пункт из меню.
Kurag: лучше всего -- стандартные способы, реализованные в соответствии с рекомендациями по их реализации, людьми, имеющими опыт разработки криптографических систем. Если вам важен результат, конечно.
Если важен процесс -- то можно делать что угодно, надо только трезво смотреть на вещи, и быть готовым к тому, что в итоге с высокой вероятностью может получиться решето.