Описание тега montgomery-multiplication

Алгоритм модульного умножения, изобретенный Монтгомери, который позволяет эффективно выполнять модульную арифметику при большом модуле (обычно несколько сотен бит).
0 ответов

Умножение Монтгомери - 32-битный регистр против 64-битного регистра

Мне нужно рассчитать разницу в скорости между выполнением страницы умножения Монтгомери 602-603 с размером слова / регистром размера 32 против 64. Пока это то, что я понимаю: x и y представлены массивами из нескольких слов длиной n, где n = m/w, а w…
1 ответ

Частота множителя Монтгомери

Я разработал множитель 16*16 Монтгомери. Код использует множитель 16*16 для выполнения трех умножений. Умножения выполняются одно за другим с использованием одного и того же умножителя, и результат каждого умножения сохраняется в регистрах. Одиночны…
16 фев '17 в 12:54
2 ответа

Как преобразовать массив UInt64 в массив UInt16 для выполнения умножения с множественной точностью?

Мне нужно выполнить быструю арифметику Галуа в моем приложении. У меня есть функция умножения, написанная на ассемблере, которая была оптимизирована для моей платформы, микроконтроллера MSP430. Эта функция вычисляет произведение двух больших чисел п…
2 ответа

Аппаратная реализация RSA: проблемы умножения Radx-2 Montgomery

Я реализую RSA 1024 на аппаратном уровне (xilinx ZYNQ FPGA) и не могу выяснить несколько любопытных вопросов. В частности, я обнаружил, что моя реализация работает только для определенных комбинаций база / экспонента / модуль, но не нашел никакой пр…
10 янв '17 в 22:48
1 ответ

Умножение в GF(p)

Я занимаюсь разработкой программного обеспечения на JavaCard для добавления точек в ECC. проблема в том, что мне нужны некоторые базовые операции, поэтому на данный момент мне нужны умножение и инверсия, у меня уже есть сложение и вычитание. Я пытал…
1 ответ

Код Verilog - компилируется нормально, но симуляция не запускается

У меня был довольно хороший опыт структурного моделирования в Verilog, но у меня почти нет опыта работы с другими методами моделирования. Так что, будь добр, помоги мне. Код компилируется нормально, но при симуляции просто зависает. Ничего не произо…
02 ноя '14 в 18:27
1 ответ

Умножение Монтгомери в RSA: c=m^e%n

Как работает Montgomery Multiplication в ускорении процесса шифрования для вычисления c=m^e%n, используемого в шифровании RSA? Я понимаю, что умножение Монтгомери может эффективно умножить a * b% n, но при попытке найти m ^ e% n существует ли более …
0 ответов

Монтгомери Умножение

Я хочу решить модульный продукт с использованием умножения Монтгомери. Что-то вроде этого: a * a mod m Например, а = 3567730065637 м = 5524112124451 a * a mod m -> 12728697821250192328215769 % 5524112124451 = 822276999119 Если я сделаю сокращение…
26 ноя '18 в 13:19
1 ответ

Bizzare идентичные неверные результаты в разных алгоритмах MWR2MM для умножения Монтгомери RSA

Фон Я пытаюсь реализовать RSA 2048 в аппаратном обеспечении (xilinx ZYNQ FPGA), используя различные методы Монтгомери. Я реализую алгоритм с использованием Xilinx HLS (по сути код C++, который синтезируется в аппаратное обеспечение). Примечание: ра…
1 ответ

Алгоритм умножения Монтгомери на Python

Я пытаюсь Алгоритм умножения Монтгомери на Python 3.x. Этот алгоритм псевдокода приведен ниже: Input: Modulus N(n bit), gcd(n, 2) = 1, Multipler: A (n bit), Multiplicant: B (n bit) Output: R = (A x B x 2 ^ (-n)) mod N R = 0 for (i = 0; i < n; i++…
1 ответ

Окончательное вычитание в модульном умножении Монтгомери для криптосистемы RSA

Я запутался в том, как можно предположительно обойти окончательное вычитание модуля в модульном умножении Монтгомери с основанием радикса-2 при использовании в модульном алгоритме возведения в степень. Следующие две статьи выдвигают условия для обхо…
1 ответ

Редукционная форма Монтгомери с использованием библиотеки OpenSSL

У меня N 1024 бит. Мне нужно преобразовать сообщение M ( 512 бит) в форму сокращения Монтгомери, как показано ниже. M '= M * R ^ {- 1} мод N где R = 2 ^ 512 (мод N) Как я могу достичь результата?
0 ответов

Сокращение использования LUT в проекте Vivado HLS (криптосистема RSA с использованием умножения Монтгомери)

Вопрос / проблема для всех, кто имел опыт работы с Xilinx Vivado HLS и FPGA: Мне нужна помощь в уменьшении числа использованных проектов в пределах HLS (то есть я не могу просто переделать проект в HDL). Я нацеливаюсь на Zedboard (Zynq 7020). Я пыта…
1 ответ

Можно ли использовать умножение Монтгомери для ускорения вычислений (большое число)! % (некоторые простые)

Этот вопрос возникает из комментария, который я почти написал ниже этого вопроса, где Зак вычисляет факториал большого числа по модулю большого числа (которое мы будем считать основным для этого вопроса). Зак использует традиционное вычисление факто…
0 ответов

Что n представляет в K= 2^2n mod m

Я немного изучаю реализацию алгоритма RSA с использованием модульного множителя Монтгомери, и я не уверен, что означает 2^2n, это n количество бит сообщения или 2^2n количество бит сообщения или это что-то еще. страница 6 в этом pdf: http://www.jour…
04 сен '19 в 23:39
0 ответов

Путаница вокруг добавления точек на secp256k1

Я использую https://github.com/HareInWeed/gec для добавления точек на secp256k1. Код ниже добавляет две точки на кривую secp256k1 и отображает результаты. #include <gec/utils/macros.hpp> #include <gec/bigint.hpp> #include <gec/curve.h…