постоянная реализация переменной скорости шифрования RC6 - PullRequest
0 голосов
/ 14 января 2019

RC6 вики использует переменное значение левого поворота, которое зависит от логарифмического значения. Я заинтересован в том, чтобы найти способ реализовать код RC6 с постоянным временем. Есть ли с открытым исходным кодом или идея о том, как реализовать переменную левого вращения в коде с постоянным временем.

1 Ответ

0 голосов
/ 14 января 2019

Этот пункт рассматривается в разделе 4.1 https://pdfs.semanticscholar.org/bf3e/23be81385817319524ee6bb1d62e9054d153.pdf. Краткое резюме:

  • Большинству процессоров требуется постоянное время для ротаций, включая зависимые от данных вращения (это был случай, когда rc6 был предложен в любом случае)

  • Даже если время выполнения для сдвига k битов пропорционально k циклам, то для кругового поворота влево вам необходимо сдвинуть левые k-биты, а затем сдвинуть вправо 32-k биты, чтобы получить постоянное время 32 цикла.

Я не знаю мелких деталей современных архитектур, но, полагаю, я бы перевернул вопрос и попросил привести пример, где эта логика неверна.

...