Написание потокового шифра для DCPU-16, на чем я должен сосредоточиться, учитывая его ограничения?
Для забавы я пишу потоковый шифр в сборке для DCPU-16 (вымышленный процессор для игры 0x10c). Процессор имеет только 16-битные регистры и работает на частоте 100 кГц. Однако на данный момент доступ к памяти и такие вещи, как умножение и деление, непристойно быстры (DIV
использование двух косвенных обращений к памяти занимает всего 5 циклов).
С такими ограничениями, каким будет мой лучший вариант? Я рассматривал RC4, однако я обеспокоен тем, что другие люди, использующие мой код, не будут использовать его правильно, и у нас может быть еще одна катастрофа WEP. Я чувствую, что мне нужно будет сделать что-то более сложное, чем RC4, чтобы защитить других программистов от самих себя, однако меня беспокоят алгоритмы, использующие магические числа или предварительно вычисленные таблицы, которые ожидают 8-битные байты в качестве наименьшей единицы вместо 16-битных слов.
1 ответ
"Однако я обеспокоен тем, что другие люди, использующие мой код, не будут использовать его правильно, и у нас может случиться еще одна катастрофа WEP"
Это было бы верно для любого шифра - RC4 должен работать просто отлично.
Вы также можете проверить шифры eStream. В частности, Grain утверждает, что он "предназначен для аппаратных сред с ограниченным доступом". У меня нет опыта работы с ним, поэтому я не знаю, насколько легко было бы реализовать это в программном обеспечении.