Можно ли реализовать так алгоритм AES? Всем привет.
Меня интересует возможность реализации х86 инструкции процессора intel AESENC, которая выполняет 1 раунд шифрования AES при помощи строк по 16 байт, то есть 128 бит.
Ведь AESENC принимает два 128 битных инта как параметры - состояние и ключ раунда. Затем возвращает состояние, также в виде 128 бит инта...
Возможно ли реализовать в PHP функцию, которая бы делала 1 раунд шифрования используя только строки, без массивов?
Бенчмарки показывают, что доступ к значениям индексов, изменение значений в массивах, ксоры, сдвиги - все это очень долго.
К примеру, чтобы сксорить состояние с ключем, можно написать $state ^= $key; для строк - этого достаточно, каждый байт состояния будет заксорен с ключем... но вот как быть с теми функциями, где происходят перестановки?
подскажите....

21 Авг 2019 в 07:11
247 +1
0
Ответы
1

На PHP нет возможности напрямую использовать инструкции процессора Intel, таких как AESENC. Однако, в PHP можно реализовать шифрование AES на уровне алгоритма, без использования специфических инструкций процессора.

Вы можете использовать стандартные операции XOR, сдвиги и другие для реализации алгоритма AES. Чтобы обойти проблемы с доступом к значениям индексов и изменениями значений в массивах, можно работать с строками как с последовательностью байтов.

Например, для реализации перестановок в алгоритме AES, вы можете использовать операции сдвига, XOR и логические операции. Необходимо будет внимательно изучить алгоритм AES и преобразовать его операции в операции над строками в PHP.

В целом, возможно реализовать шифрование AES на PHP без использования массивов, но это потребует тщательной разработки и оптимизации кода.

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир