ЭЛЕКТРОННОЕ ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО

1. Электронное вычислительное устройство (100; 200), выполненное с возможностью выполнения обфускационных арифметических операций в коммутативном кольце ), определенном комбинированным модулем (; ) в системе остаточных классов, причем система остаточных классов определена для ряда модулей (), где каждый модуль определяет коммутативное кольцо (), так что для каждого модуля () данного ряда существует ассоциированный с ним базовый элемент (), удовлетворяющий условию, заключающемуся в том, что каждый остаток от деления элемента () кольца на модуль () может быть выражен в виде целочисленного списка (), так что элементы кольца равны линейной комбинации степеней базового элемента (- ), где каждая степень имеет показатель, определяемый упомянутым целочисленным списком, причем вычислительное устройство содержит
хранилище (110) операндов, приспособленное для хранения одного или более остатков от деления операндов (101, 106) на комбинированный модуль () в виде одного или более рядов остатков от деления элементов кольца на модули, причем каждый элемент кольца ряда ассоциирован с соответствующим модулем из ряда модулей, где по меньшей мере один элемент кольца из упомянутого ряда закодирован в виде целочисленного списка,
вычислительный блок (130; 230), выполненный с возможностью сложения и/или умножения первого и второго операнда из хранилища операндов согласно системе остаточных классов.
2. Вычислительное устройство по п.1, в котором комбинированный модуль и модули в ряде модулей являются целыми числами или многочленами с модулярными коэффициентами.
3. Вычислительное устройство по любому из предшествующих пунктов, в котором вычислительный блок производит действия над упомянутым целочисленным списком, каковые действия содержат операции нахождения остатка от деления на порядок базовых элементов, где порядок по меньшей мере двух базовых элементов, ассоциированных с двумя разными модулями ряда модулей, одинаков.
4. Вычислительное устройство по любому из предшествующих пунктов, в котором порядок всех базовых элементов, ассоциированных с модулями ряда модулей, одинаков.
5. Вычислительное устройство по любому из предшествующих пунктов, в котором комбинированный модуль равен наименьшему общему кратному модулей () в ряде модулей.
6. Вычислительное устройство по любому из предшествующих пунктов, содержащее:
хранилище (120) таблиц, приспособленное для хранения, для каждого из модулей в упомянутом ряде, таблицы () приращений, определенной для элемента (-1; 1; ) приращения, ассоциированной с модулем из ряда модулей,
при этом таблица приращений отображает входной элемент () кольца на выходной целочисленный список (), кодирующий выходной элемент () кольца, так что выходной элемент кольца равен элементу приращения, добавленному к входному элементу () кольца, причем выходной элемент кольца равен линейной комбинации степеней базового элемента (), каковые степени имеют показатели, определяемые выходным целочисленным списком.
7. Вычислительное устройство по п.6, в котором вычислительный блок (130; 230) выполнен с возможностью осуществления арифметических операций над первым и вторым элементом кольца в качестве первого и второго операндов операции нахождения остатка от деления на один и тот же модуль и представленных в виде целочисленного списка, причем арифметические операции включают в себя операцию нахождения остатка от деления на порядок базового элемента, ассоциированного с упомянутым одним и тем же модулем, и выполнен с возможностью применения ассоциированной таблицы приращений, хранящейся для этого одного и того же модуля.
8. Вычислительное устройство по любому из пп.6 и 7, в котором вычислительный блок содержит:
блок (130) сложения, выполненный с возможностью осуществления для каждого модуля из ряда:
приема первого целочисленного списка () ввода в сложение, кодирующего первый элемент кольца ввода в сложение, и второй целочисленный список () ввода в сложение, кодирующий второй элемент кольца ввода в сложение,
определения целочисленного списка вывода из сложения, кодирующего элемент кольца вывода из сложения, путем применения таблицы приращений к элементам кольца, определенным из первого и второго целочисленных списков ввода в сложение, причем элемент кольца вывода из сложения равен модулярному сложению первого элемента кольца ввода в сложение и второго элемента ввода в сложение.
9. Вычислительное устройство по п.8, в котором определение целочисленного списка вывода из сложения содержит
определение промежуточного целочисленного списка () сложения, кодирующего промежуточный элемент кольца сложения, путем первого применения таблицы приращений к элементу () кольца, являющемуся линейной комбинацией степеней одного или более базовых элементов, каковые степени определяются из первого и второго целочисленных списков ввода в сложение, () и операции нахождения остатка от деления на базовый элемент,
определение целочисленного списка вывода из сложения, содержащее второе применение таблицы приращений к элементам кольца, определенным из промежуточного целочисленного списка сложения и определенным из второго целочисленного списка ввода в сложение и операции нахождения остатка от деления на порядок базового элемента.
10. Вычислительное устройство по п.9, в котором определение промежуточного целочисленного списка () сложения дополнительно содержит сложение целого числа, определенного из первого и второго целочисленных списков ввода в сложение, с целыми числами в целочисленном списке, получившемся в результате первого применения операции нахождения остатка от деления на порядок базового элемента.
11. Вычислительное устройство по любому из пп.9-10, в котором:
таблицу приращений применяют к элементу (; ) кольца, сформированному одним или более базовыми элементами () кольца, возведенными в степень первого целого числа из первого целочисленного списка () минус первое целое число из второго целочисленного списка () плюс или минус базовый элемент кольца (), возведенный в степень второго целого числа из первого целочисленного списка () минус первое целое число из второго целочисленного списка (); и/или
таблицу приращений применяют к элементу (; ) кольца, сформированному одним или более базовыми элементами () кольца, возведенными в степень первого целого числа из первого целочисленного списка () минус второе целое число из первого целочисленного списка () плюс или минус базовый элемент () кольца, возведенный в степень первого целого числа из второго целочисленного списка () минус второе целое число из первого целочисленного списка (); и/или
таблицу приращений применяют к элементу (; ) кольца, сформированному одним или более базовыми элементами () кольца, возведенными в степень второго целого числа из первого целочисленного списка () минус первое целое число из первого целочисленного списка () плюс или минус базовый элемент () кольца, возведенный в степень первого целого числа из второго целочисленного списка () минус первое целое число из первого целочисленного списка ().
12. Вычислительное устройство по любому из пп.9-11, в котором над промежуточным элементом кольца сложения, представленным промежуточным целочисленным списком сложения, выполняют операцию отрицания перед вторым применением таблицы приращений.
13. Вычислительное устройство по любому из пп.6-11, в котором вычислительное устройство содержит блок (140) умножения, выполненный с возможностью:
приема первого целочисленного списка () ввода в умножение, кодирующего первый элемент кольца ввода в умножение, и второго целочисленного списка () ввода в умножение, кодирующего второй элемент кольца ввода в умножение,
определения целочисленного списка вывода из умножения, кодирующего элемент кольца выхода умножения, путем применения таблицы приращений к элементам кольца, определенным из первого и второго целочисленных списков ввода в умножение, причем элемент кольца вывода из умножения равен модулярному умножению первого элемента кольца ввода в умножение и второго элемента кольца ввода в умножение.
14. Способ электронного вычисления для выполнения обфускационных арифметических операций нахождения остатка от деления на комбинированный модуль () в системе остаточных классов, причем система остаточных классов определена для ряда модулей (), где каждый модуль определяет коммутативное кольцо (), так что для каждого модуля () данного ряда существует ассоциированный с ним базовый элемент (), удовлетворяющий условию, заключающемуся в том, что каждый остаток от деления  элемента () кольца на модуль () может быть выражен в виде целочисленного списка (), так что элементы кольца равны линейной комбинации степеней базового элемента (- ), где каждая степень имеет показатель, определяемый целочисленным списком, причем способ содержит:
сохранение одного или более остатков от деления операндов на комбинированный модуль () в виде одного или более рядов остатков от деления элементов кольца на модули, причем каждый элемент кольца ряда ассоциирован с соответствующим модулем из ряда модулей, где по меньшей мере один элемент кольца из упомянутого ряда закодирован в виде целочисленного списка,
сложение и/или умножение первого и второго операнда из хранилища операндов согласно системе остаточных классов.
15. Компьютерная программа, содержащая команды компьютерной программы, выполненные с возможностью осуществления способа по п.14 при исполнении компьютерной программы на программируемом устройстве.
16. Компьютерная программа по п.15, воплощенная на машиночитаемом носителе.