Все о геологии :: на главную страницу! Геовикипедия 
wiki.web.ru 
Поиск  
  Rambler's Top100 Service
 Главная страница  Конференции: Календарь / Материалы  Каталог ссылок    Словарь       Форумы        В помощь студенту     Последние поступления
   Геология | Курсы лекций
 Обсудить в форуме  Добавить новое сообщение
Вперед Вверх Назад Содержание Предметный указатель
Вперед: 9.2.4 Ускоренное вычисление A^e modulo N Вверх: 9.2 Алгоритмические проблемы реализации и применения криптографических протоколов на интеллектуальных карточках Назад: 9.2.2 Ускоренное вычисление A*B modulo N   Содержание   Предметный указатель

9.2.3 Методы ускорения операции сложения

Из всего многообразия методов ускорения операций суммирования, наибольший интерес представляет параллельное суммирование при избыточном кодировании. Если имеется возможность построить $ n$-разрядный параллельный сумматор, то удобнее всего организовать суммирование как это делается в алгоритме B. Тогда кодирование в случае CSAs заключается в представлении 0 как $ (0,0)$, 1 как $ (1,0)$ или $ (0,1)$ и 2 как $ (1,1)$. Таким образом, операнд, участвующий в сложении, представляется парой составляющих, имеющих обычный неизбыточный алфавит ($ P_s$ и $ P_c$ в алгоритме B). Причем операнд в избыточной форме может складываться с обыкновенным двоичным числом ($ A$ и $ N$ в алгоритме B), а получающийся при этом результат носит тот же избыточный характер. Представление отрицательных чисел (образование поразрядных дополнений) производится как простая инверсия двоичных разрядов. Использование такой избыточной системы позволяет значительно ускорить выполнение операции суммирования за счет сокращения распространения переносов, причем быстродействие не зависит от длины операндов, однако увеличивается объем памяти для хранения данных и количество вентилей, реализующих суммирование.

Если бы удалось сконструировать такой параллельный сумматор (для алгоритма B), то, как показано в [Se], время выполнения операции модулярного умножения можно было бы уменьшить с $ O\left(n^2\right)$ (если использовать процессор с фиксированной длиной слова) до $ О(n)$. В самом деле, пусть время выполнения цикла FOR алгоритма B равно $ t_{\text{ц}}$ , тогда время выполнения всего алгоритма действительно не превысит $ t_{\text{ц}}*n+t_\Sigma$, где $ t_\Sigma$ -- задержка на нормализацию, приведение $ P$ из избыточной к нормальной форме и избавление от отрицательного остатка.

В случае, если в интеллектуальной карточке используется сумматор с фиксированной длиной слова, лучше обратиться к алгоритму P. Если на сумматоре нет возможности организовать умножение, то можно прибегнуть к гибридной схеме, где операнд $ B$ представляется двоичным числом, а суммирование операндов с фиксированной длиной слова (вместо умножения типа "вектор-скаляр") происходит по выбранному основанию $ r$. Тогда алгоритм B можно реализовать микропрограммно. При этом сложение CSAs нужно заменить на процедуру сложения двух многоразрядных чисел.

Представление отрицательных чисел на процессоре с фиксированной длиной слова при $ r=2^{\lambda/2}$ организуется как дополнение до $ r^m$, т. е. каждый элемент массива $ A$ дополняется до $ 2^{\lambda/2}-1$, а $ A[m]$ -- последний элемент -- до $ 2^{\lambda/2}$.


Вперед Вверх Назад Содержание Предметный указатель
Вперед: 9.2.4 Ускоренное вычисление A^e modulo N Вверх: 9.2 Алгоритмические проблемы реализации и применения криптографических протоколов на интеллектуальных карточках Назад: 9.2.2 Ускоренное вычисление A*B modulo N   Содержание   Предметный указатель


Проект осуществляется при поддержке:
Геологического факультета МГУ,
РФФИ
   
TopList Rambler's Top100