ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО И СПОСОБ

1. Вычислительное устройство (100), выполненное с возможностью выполнения вычислений над элементами кольца (R), сложения в кольце и умножения в кольце, определенных в кольце, причем вычислительное устройство содержит
хранилище (110) операндов, выполненное с возможностью хранения закодированных элементов (112, 114, 116; 212) кольца, причем закодированный элемент кольца представляет собой элемент кольца в закодированной форме,
модуль (120; 220) операторов, содержащий несколько блоков операторов, по меньшей мере один из блоков операторов является бинарным,
блок (122; 222, 224) бинарного оператора, выполненный с возможностью:
приема закодированного элемента кольца и параметра, и
выполнения фиксированного вычисления над упомянутым закодированным элементом кольца и параметром, тем самым создания нового закодированного элемента кольца, и
менеджер (130) вычислений, выполненный с возможностью:
приема первого закодированного элемента кольца и второго закодированного элемента кольца,
выполнения умножения в кольце путем применения последовательности упомянутых нескольких блоков операторов к первому закодированному элементу кольца с использованием параметров, полученных по меньшей мере из второго закодированного элемента кольца, и
выполнения сложения в кольце путем применения последовательности упомянутых нескольких блоков операторов к первому закодированному элементу кольца с использованием параметров, полученных по меньшей мере из второго закодированного элемента кольца, при этом последовательность для умножения в кольце является такой же, как последовательность для сложения в кольце.
2. Вычислительное устройство по п. 1, в котором по меньшей мере один из блоков операторов является унарным
блок унарного оператора выполнен с возможностью:
приема закодированного элемента кольца, и
выполнения фиксированного вычисления над упомянутым закодированным элементом кольца, тем самым создания нового закодированного элемента кольца.
3. Вычислительное устройство по любому из предыдущих пунктов, в котором закодированный элемент (212) () кольца закодирован в виде списка нескольких элементов (213, 215; ) кольца.
4. Вычислительное устройство по п. 3, в котором список содержит два элемента (213, 215) кольца, причем закодированный элемент кольца является разностью между упомянутыми двумя единичными элементами  кольца ().
5. Вычислительное устройство по п. 4, в котором упомянутые два элемента кольца представлены как показатели степени (), эти два элемента кольца являются показателем степени с общим элементом () основания из кольца, возведенным в степень, указанную с помощью показателя степени ().
6. Вычислительное устройство по любому из предыдущих пунктов, в котором менеджер вычислений выполнен с возможностью выполнения вычитания в кольце путем применения последовательности упомянутых нескольких блоков операторов к первому закодированному элементу кольца с использованием параметров, полученных по меньшей мере из второго закодированного элемента кольца, при этом последовательность для вычитания в кольце является такой же, как последовательность для сложения в кольце и последовательность для умножения в кольце.
7. Вычислительное устройство по любому из предыдущих пунктов, в котором
упомянутые несколько блоков операторов содержат блок бинарного оператора «вверх» (, 222), причем блок оператора «вверх» выполнен с возможностью
приема представления для первого элемента () кольца и второго элемента () кольца, причем закодированный элемент () кольца является разностью между первым элементом кольца и вторым элементом кольца (), и приема элемента () кольца, являющегося параметром, и
вычисления произведения в кольце первого элемента кольца на элемент, обратный параметру, (), и вычисления произведения в кольце второго элемента кольца на элемент, обратный параметру, (), новый закодированный элемент () представляется с помощью результатов упомянутых двух вычислений (), и/или
упомянутые несколько блоков операторов содержат блок бинарного оператора «вниз» (, 224), причем блок оператора «вниз» выполнен с возможностью:
приема представления для первого элемента () кольца и второго элемента () кольца, причем закодированный элемент () кольца является разностью между первым элементом кольца и вторым элементом кольца (), и приема элемента () кольца, являющегося параметром, и
вычисления произведения в кольце первого элемента кольца на параметр (), и вычисления произведения в кольце второго элемента кольца на параметр (), новый закодированный элемент () кольца представляется с помощью результатов упомянутых двух вычислений ().
8. Вычислительное устройство по любому из предыдущих пунктов, в котором упомянутые несколько блоков операторов содержат блок унарного оператора «квадрат» (, 226), причем блок оператора «квадрат», выполнен с возможностью
приема представления для первого элемента () кольца и второго элемента () кольца, причем закодированный элемент () кольца является разностью между первым элементом кольца и вторым элементом кольца (),
получения отрицания закодированного элемента (x) кольца плюс фиксированное приращение () в закодированной форме.
9. Вычислительное устройство по любому из предыдущих пунктов, содержащее хранилище, хранящее таблицу поиска, реализующую блок оператора «квадрат».
10. Вычислительное устройство по любому из пп. 7-9, в котором менеджер вычислений выполнен с возможностью
приема представления для первого элемента () первого элемента кольца и второго элемента () первого элемента кольца, причем первый закодированный элемент () кольца является разностью () между первым элементом (a) первого элемента кольца и вторым элементом (b) первого элемента кольца,
приема представления для первого элемента () второго элемента кольца и второго элемента () второго элемента кольца, причем второй закодированный элемент () кольца является разностью () между первым элементом (c) второго элемента кольца и вторым элементом (d) второго элемента кольца, при этом
последовательность для сложения в кольце дается в следующем виде:
блок оператора «вверх» с параметром, являющимся первым элементом () второго элемента кольца,
блок оператора «квадрат»
блок оператора «вниз» с параметром, являющимся первым элементом () второго элемента кольца,
блок оператора «вверх» с параметром, являющимся вторым элементом () второго элемента кольца,
блок оператора «квадрат»
блок оператора «вниз» с параметром, являющимся вторым элементом () второго элемента кольца, и/или
последовательность для умножения в кольце дается в следующем виде:
блок оператора «вверх» с параметром умножения в кольце () из первого элемента () второго элемента кольца, второго элемента () первого элемента кольца и второго элемента () второго элемента кольца
блок оператора «квадрат»
блок оператора «вниз» с параметром умножения в кольце () из второго элемента () первого элемента кольца и второго элемента () второго элемента кольца,
блок оператора «вверх» с параметром умножения в кольце () из первого элемента () первого элемента кольца и второго элемента () второго элемента кольца,
блок оператора «квадрат»
блок оператора «вниз» с параметром умножения в кольце () из первого элемента () первого элемента кольца и второго элемента () второго элемента кольца.
11. Вычислительное устройство по любому из предыдущих пунктов, содержащее блок объединения, причем блок объединения выполнен с возможностью выбора двух последовательных операций блоков операторов, объединения выбранных операций в один новый блок операции и объединения соответствующих параметров соответственно.
12. Вычислительная система, содержащая
вычислительное устройство по любому из предыдущих пунктов, и
блок (140) параметров, отдельный от менеджера вычислений, выполненный с возможностью вычисления параметров, полученных по меньшей мере из второго закодированного элемента кольца для выполнения умножения в кольце и сложения в кольце менеджером вычислений.
13. Вычислительная система по п. 12, содержащая первую схему, являющуюся вычислительным устройством, и вторую схему, являющуюся блоком параметров, причем первая и вторая схема являются отдельными и различными схемами.
14. Способ вычислений, выполненный с возможностью выполнения вычислений над элементами кольца (R), сложения в кольце и умножения в кольце, определенных в кольце, причем способ вычислений содержит
сохранение закодированных элементов кольца, причем закодированный элемент кольца представляет собой элемент кольца в закодированной форме,
несколько операций, причем по меньшей мере одна из операций является бинарной,
бинарные операции, содержащие:
прием закодированного элемента кольца и параметра, и
выполнение фиксированного вычисления над упомянутым закодированным элементом кольца и параметром, тем самым создание нового закодированного элемента кольца,
прием первого закодированного элемента кольца и второго закодированного элемента кольца,
выполнение умножения в кольце путем применения последовательности упомянутых нескольких операций к первому закодированному элементу кольца с использованием параметров, полученных по меньшей мере из второго закодированного элемента кольца, и
выполнение сложения в кольце путем применения последовательности упомянутых нескольких операций к первому закодированному элементу кольца с использованием параметров, полученных по меньшей мере из второго закодированного элемента кольца, при этом последовательность для умножения в кольце является такой же, как последовательность для сложения в кольце.
15. Компьютерная программа (1020), содержащая инструкции компьютерной программы, выполненные с возможностью выполнения способа по п. 14, когда компьютерная программа выполняется на компьютере.
16. Машиночитаемая среда (1000), содержащая компьютерную программу (1020) по п. 15.