Рейтинг:2

Цепочки сложения-вычитания с дешевым или бесплатным удвоением

флаг ph

Связанная проблема

Стандарт Цепочка сложения-вычитания (ASC) для целого числа $к$ определяет порядок операций сложения/вычитания (удвоения), чтобы $к$ наконец достигается, начиная с $1$. Это особенно полезно в ECC для расчета $k\cdot P$ с помощью добавления/вычитания и удвоения очков EC. Цель состоит в том, чтобы найти как можно короче ASC, так что используется минимальное количество операций сложения/вычитания/удвоения. Например., $(1,2,4,8,16,32,31)$ является ASC для $31$ (со многими добавлениями/удвоениями и окончательным вычитанием). Однако поиск кратчайшего ASC представляется сложной задачей.

Моя проблема

В стандартных ASC сложность удвоения считается эквивалентно сложению/вычитанию, следовательно, длина ASC может быть мерой сложности. Однако в моем сценарии удвоение "бесплатно". Это приводит к обобщению (назовем его ASC²), где цепочка содержит не целые числа, а классы эквивалентности из $\{к, 2к, 2^2к, 2^3к \ldots\} =: [к]$ за $к$ нечетное целое. То есть предыдущий пример можно очень коротко записать в виде $([1],[31])$ поскольку $31 = -1 + 2^5\cdot 1$. Цель явно состоит в том, чтобы найти кратчайший ASC².

Вопросы)

  1. Есть ли/не могли бы вы предложить какие-либо (эвристические) метод поиска «хорошего» ASC²?
  2. Как мог короткие ASC² генерироваться, чтобы их оптимальность гарантировано?
  3. Существует ли между прочим любая литература об этом?

Мотивация

Реализуя арифметику над зашифрованными целыми числами (побитно), ASC² был бы полезен для скалярного умножения (т. Е. Умножения зашифрованного целого числа на целое число открытого текста). В таком представлении удвоение зашифрованного текста действительно дешево: это просто добавление тривиального шифрования нуля в наименее значащую позицию. С другой стороны, добавление очень дорого (поскольку оно использует FHE), поэтому стоит найти наилучший ASC².

Рейтинг:0
флаг ru
  1. я думаю, что метод скользящего окна (И его родственник NAF), используемый для создания хороших представлений ASC, по-прежнему неплох. Если мы отделим действия удвоения от разнородных сложений и вычитаний, скользящие окна не уменьшат количество двойников, а его преимущество заключается в уменьшении количества разнородных сложений и вычитаний из $O(\log k)$ к $O(\log k/\log\log k)$. И наоборот, я думаю, что существует нижняя граница длины ASC.2 из $\лог\логк$ поскольку количество вхождений 01 или 10 в двоичном расширении может, грубо говоря, не более чем удваиваться на каждом шаге.

  2. Оптимальность, вероятно, будет трудно показать. Известно, например, что вычисление оптимальных ASC для набора показателей является NP-трудным (см.Вычисление последовательностей с цепочками сложения", Питер Дауни, Бентон Леонг и Рави Сети).

  3. Более широкая литература по цепям ASC будет охватывать некоторые из них. Я бы рекомендовал начать с авторитетной книги Дональда Кнута «Искусство компьютерного программирования», том. 2 раздел 4.6.3

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.