Как современные 64-битные процессоры обычно обрабатывают 128-битное / 256-битное шифрование? - PullRequest
0 голосов
/ 11 марта 2019

Из того, чему меня учили, для меня это означает, что 64-битный компьютер будет иметь 64-битный регистр, но если это так, как можно обрабатывать шифрование и т. Д., Для обработки которых требуется 128-битные ключи или более иликакая-то другая операция, для которой требуется больше битов, чем может обрабатывать регистр процессора?

1 Ответ

1 голос
/ 12 марта 2019

Прочтите это Q / A , чтобы узнать, как обращаться с целыми числами произвольного размера (без знака).

Тем не менее, просто в 2 или 4 раза больше, более вероятно, что будет более простая комбинация. Например, для 128-битного (модульного) сложения Z = X + Y (mod 2^128):

  1. lowZ = lowX + lowY (mod 2 ^ 64);
  2. lowC = lowZ < lowX ? 1 : 0 (другими словами: если перенос не доступен напрямую, его необходимо рассчитать);
  3. hiZ = hiX + hiY + lowC (мод 2 ^ 64);
  4. hiC = hiZ < hiX ? 1 : 0 (но обычно перенос просто отбрасывается).

lowX, lowY и lowZ - это всего лишь 64 младших значащих бита значения X, Y и Z. hiX, hiY и hiZ - это всего лишь 64 старших разряда значения X, Y и Z.

.

Вы можете сделать это и для других операций. Такие вещи, как битовые операции, сдвиги и т. Д. Довольно просты. Умножение сложнее, а деление / остаток - сука. Откуда мне знать? Итак, - это пример 32-битных вычислений для Java Card, системы, которая в основном предполагает 16-битные операции . Его было немного сложнее программировать, потому что Java не использует вычисления без знака.

Довольно забавно, сама Java-карта обычно работает на 8-битных процессорах (хотя это быстро меняется). Так что на самом деле происходит двойное преобразование 8 бит в 16 бит и 16 бит в 32 бит. Достаточно уместно, что 8-битная архитектура процессора является прямым предшественником процессоров, используемых в карманных калькуляторах. Этот вид преобразования был известен с рассвета информационных технологий и, вероятно, до этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...