[go: up one dir, main page]

RU2018125606A - Вычислительное устройство и способ - Google Patents

Вычислительное устройство и способ Download PDF

Info

Publication number
RU2018125606A
RU2018125606A RU2018125606A RU2018125606A RU2018125606A RU 2018125606 A RU2018125606 A RU 2018125606A RU 2018125606 A RU2018125606 A RU 2018125606A RU 2018125606 A RU2018125606 A RU 2018125606A RU 2018125606 A RU2018125606 A RU 2018125606A
Authority
RU
Russia
Prior art keywords
ring
encoded
parameter
block
operator
Prior art date
Application number
RU2018125606A
Other languages
English (en)
Other versions
RU2018125606A3 (ru
Inventor
Хендрик Ян Йозеф Хубертус ШЕПЕРС
Матиас Хубертус Мехтилдис Антониус ГОРИССЕН
Леандро МАРИН
Original Assignee
Конинклейке Филипс Н.В.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Конинклейке Филипс Н.В. filed Critical Конинклейке Филипс Н.В.
Publication of RU2018125606A publication Critical patent/RU2018125606A/ru
Publication of RU2018125606A3 publication Critical patent/RU2018125606A3/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Technology Law (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Claims (62)

1. Вычислительное устройство (100), выполненное с возможностью выполнения вычислений над элементами кольца (R), сложения в кольце и умножения в кольце, определенных в кольце, причем вычислительное устройство содержит
хранилище (110) операндов, выполненное с возможностью хранения закодированных элементов (112, 114, 116; 212) кольца, причем закодированный элемент кольца представляет собой элемент кольца в закодированной форме,
модуль (120; 220) операторов, содержащий несколько блоков операторов, по меньшей мере один из блоков операторов является бинарным,
блок (122; 222, 224) бинарного оператора, выполненный с возможностью:
приема закодированного элемента кольца и параметра, и
выполнения фиксированного вычисления над упомянутым закодированным элементом кольца и параметром, тем самым создания нового закодированного элемента кольца, и
менеджер (130) вычислений, выполненный с возможностью:
приема первого закодированного элемента кольца и второго закодированного элемента кольца,
выполнения умножения в кольце путем применения последовательности упомянутых нескольких блоков операторов к первому закодированному элементу кольца с использованием параметров, полученных по меньшей мере из второго закодированного элемента кольца, и
выполнения сложения в кольце путем применения последовательности упомянутых нескольких блоков операторов к первому закодированному элементу кольца с использованием параметров, полученных по меньшей мере из второго закодированного элемента кольца, при этом последовательность для умножения в кольце является такой же, как последовательность для сложения в кольце.
2. Вычислительное устройство по п. 1, в котором по меньшей мере один из блоков операторов является унарным
блок унарного оператора выполнен с возможностью:
приема закодированного элемента кольца, и
выполнения фиксированного вычисления над упомянутым закодированным элементом кольца, тем самым создания нового закодированного элемента кольца.
3. Вычислительное устройство по любому из предыдущих пунктов, в котором закодированный элемент (212) (
Figure 00000001
) кольца закодирован в виде списка нескольких элементов (213, 215;
Figure 00000002
) кольца.
4. Вычислительное устройство по п. 3, в котором список содержит два элемента (213, 215) кольца, причем закодированный элемент кольца является разностью между упомянутыми двумя единичными элементами кольца (
Figure 00000003
).
5. Вычислительное устройство по п. 4, в котором упомянутые два элемента кольца представлены как показатели степени (
Figure 00000004
), эти два элемента кольца являются показателем степени с общим элементом (
Figure 00000005
) основания из кольца, возведенным в степень, указанную с помощью показателя степени (
Figure 00000006
).
6. Вычислительное устройство по любому из предыдущих пунктов, в котором менеджер вычислений выполнен с возможностью выполнения вычитания в кольце путем применения последовательности упомянутых нескольких блоков операторов к первому закодированному элементу кольца с использованием параметров, полученных по меньшей мере из второго закодированного элемента кольца, при этом последовательность для вычитания в кольце является такой же, как последовательность для сложения в кольце и последовательность для умножения в кольце.
7. Вычислительное устройство по любому из предыдущих пунктов, в котором
упомянутые несколько блоков операторов содержат блок бинарного оператора «вверх» (
Figure 00000007
, 222), причем блок оператора «вверх» выполнен с возможностью
приема представления для первого элемента (
Figure 00000008
) кольца и второго элемента (
Figure 00000009
) кольца, причем закодированный элемент (
Figure 00000001
) кольца является разностью между первым элементом кольца и вторым элементом кольца (
Figure 00000003
), и приема элемента (
Figure 00000010
) кольца, являющегося параметром, и
вычисления произведения в кольце первого элемента кольца на элемент, обратный параметру, (
Figure 00000011
), и вычисления произведения в кольце второго элемента кольца на элемент, обратный параметру, (
Figure 00000012
), новый закодированный элемент (
Figure 00000013
) представляется с помощью результатов упомянутых двух вычислений (
Figure 00000014
), и/или
упомянутые несколько блоков операторов содержат блок бинарного оператора «вниз» (
Figure 00000015
, 224), причем блок оператора «вниз» выполнен с возможностью:
приема представления для первого элемента (
Figure 00000008
) кольца и второго элемента (
Figure 00000009
) кольца, причем закодированный элемент (
Figure 00000001
) кольца является разностью между первым элементом кольца и вторым элементом кольца (
Figure 00000003
), и приема элемента (
Figure 00000010
) кольца, являющегося параметром, и
вычисления произведения в кольце первого элемента кольца на параметр (
Figure 00000016
), и вычисления произведения в кольце второго элемента кольца на параметр (
Figure 00000017
), новый закодированный элемент (
Figure 00000013
) кольца представляется с помощью результатов упомянутых двух вычислений (
Figure 00000018
).
8. Вычислительное устройство по любому из предыдущих пунктов, в котором упомянутые несколько блоков операторов содержат блок унарного оператора «квадрат» (
Figure 00000019
, 226), причем блок оператора «квадрат», выполнен с возможностью
приема представления для первого элемента (
Figure 00000008
) кольца и второго элемента (
Figure 00000009
) кольца, причем закодированный элемент (
Figure 00000001
) кольца является разностью между первым элементом кольца и вторым элементом кольца (
Figure 00000003
),
получения отрицания закодированного элемента (x) кольца плюс фиксированное приращение (
Figure 00000020
) в закодированной форме.
9. Вычислительное устройство по любому из предыдущих пунктов, содержащее хранилище, хранящее таблицу поиска, реализующую блок оператора «квадрат».
10. Вычислительное устройство по любому из пп. 7-9, в котором менеджер вычислений выполнен с возможностью
приема представления для первого элемента (
Figure 00000008
) первого элемента кольца и второго элемента (
Figure 00000009
) первого элемента кольца, причем первый закодированный элемент (
Figure 00000001
) кольца является разностью (
Figure 00000003
) между первым элементом (a) первого элемента кольца и вторым элементом (b) первого элемента кольца,
приема представления для первого элемента (
Figure 00000010
) второго элемента кольца и второго элемента (
Figure 00000021
) второго элемента кольца, причем второй закодированный элемент (
Figure 00000001
) кольца является разностью (
Figure 00000022
) между первым элементом (c) второго элемента кольца и вторым элементом (d) второго элемента кольца, при этом
последовательность для сложения в кольце дается в следующем виде:
блок оператора «вверх» с параметром, являющимся первым элементом (
Figure 00000010
) второго элемента кольца,
блок оператора «квадрат»
блок оператора «вниз» с параметром, являющимся первым элементом (
Figure 00000010
) второго элемента кольца,
блок оператора «вверх» с параметром, являющимся вторым элементом (
Figure 00000021
) второго элемента кольца,
блок оператора «квадрат»
блок оператора «вниз» с параметром, являющимся вторым элементом (
Figure 00000021
) второго элемента кольца, и/или
последовательность для умножения в кольце дается в следующем виде:
блок оператора «вверх» с параметром умножения в кольце (
Figure 00000023
) из первого элемента (
Figure 00000010
) второго элемента кольца, второго элемента (
Figure 00000009
) первого элемента кольца и второго элемента (
Figure 00000021
) второго элемента кольца
блок оператора «квадрат»
блок оператора «вниз» с параметром умножения в кольце (
Figure 00000024
) из второго элемента (
Figure 00000009
) первого элемента кольца и второго элемента (
Figure 00000021
) второго элемента кольца,
блок оператора «вверх» с параметром умножения в кольце (
Figure 00000025
) из первого элемента (
Figure 00000008
) первого элемента кольца и второго элемента (
Figure 00000021
) второго элемента кольца,
блок оператора «квадрат»
блок оператора «вниз» с параметром умножения в кольце (
Figure 00000025
) из первого элемента (
Figure 00000008
) первого элемента кольца и второго элемента (
Figure 00000021
) второго элемента кольца.
11. Вычислительное устройство по любому из предыдущих пунктов, содержащее блок объединения, причем блок объединения выполнен с возможностью выбора двух последовательных операций блоков операторов, объединения выбранных операций в один новый блок операции и объединения соответствующих параметров соответственно.
12. Вычислительная система, содержащая
вычислительное устройство по любому из предыдущих пунктов, и
блок (140) параметров, отдельный от менеджера вычислений, выполненный с возможностью вычисления параметров, полученных по меньшей мере из второго закодированного элемента кольца для выполнения умножения в кольце и сложения в кольце менеджером вычислений.
13. Вычислительная система по п. 12, содержащая первую схему, являющуюся вычислительным устройством, и вторую схему, являющуюся блоком параметров, причем первая и вторая схема являются отдельными и различными схемами.
14. Способ вычислений, выполненный с возможностью выполнения вычислений над элементами кольца (R), сложения в кольце и умножения в кольце, определенных в кольце, причем способ вычислений содержит
сохранение закодированных элементов кольца, причем закодированный элемент кольца представляет собой элемент кольца в закодированной форме,
несколько операций, причем по меньшей мере одна из операций является бинарной,
бинарные операции, содержащие:
прием закодированного элемента кольца и параметра, и
выполнение фиксированного вычисления над упомянутым закодированным элементом кольца и параметром, тем самым создание нового закодированного элемента кольца,
прием первого закодированного элемента кольца и второго закодированного элемента кольца,
выполнение умножения в кольце путем применения последовательности упомянутых нескольких операций к первому закодированному элементу кольца с использованием параметров, полученных по меньшей мере из второго закодированного элемента кольца, и
выполнение сложения в кольце путем применения последовательности упомянутых нескольких операций к первому закодированному элементу кольца с использованием параметров, полученных по меньшей мере из второго закодированного элемента кольца, при этом последовательность для умножения в кольце является такой же, как последовательность для сложения в кольце.
15. Компьютерная программа (1020), содержащая инструкции компьютерной программы, выполненные с возможностью выполнения способа по п. 14, когда компьютерная программа выполняется на компьютере.
16. Машиночитаемая среда (1000), содержащая компьютерную программу (1020) по п. 15.
RU2018125606A 2015-12-14 2016-12-05 Вычислительное устройство и способ RU2018125606A (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
NL2015955A NL2015955B1 (en) 2015-12-14 2015-12-14 Calculating device and method.
NL2015955 2015-12-14
PCT/EP2016/079694 WO2017102392A1 (en) 2015-12-14 2016-12-05 Calculating device and method

Publications (2)

Publication Number Publication Date
RU2018125606A true RU2018125606A (ru) 2020-01-16
RU2018125606A3 RU2018125606A3 (ru) 2020-04-16

Family

ID=56027124

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2018125606A RU2018125606A (ru) 2015-12-14 2016-12-05 Вычислительное устройство и способ

Country Status (8)

Country Link
US (1) US20200264872A1 (ru)
EP (1) EP3391264B1 (ru)
JP (1) JP6522860B2 (ru)
CN (1) CN108369613A (ru)
BR (1) BR112018011790A2 (ru)
NL (1) NL2015955B1 (ru)
RU (1) RU2018125606A (ru)
WO (1) WO2017102392A1 (ru)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347432B (zh) * 2019-06-17 2021-09-14 海光信息技术股份有限公司 处理器、分支预测器及其数据处理方法、分支预测方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009024520A1 (en) * 2007-08-17 2009-02-26 International Business Machines Corporation Method and system for atomicity for elliptic curve cryptosystems
US8160247B2 (en) * 2007-09-27 2012-04-17 Adobe Systems Incorporated Providing local storage service to applications that run in an application execution environment
US10180824B2 (en) * 2012-12-21 2019-01-15 Koninklijke Philips N.V. Computing device comprising a table network
JP6173904B2 (ja) * 2013-12-13 2017-08-02 株式会社東芝 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム
CN104917536B (zh) * 2014-03-11 2019-11-12 中兴通讯股份有限公司 一种支持低码率编码的方法及装置
US10536262B2 (en) * 2014-12-12 2020-01-14 Koninklijke Philips N.V. Electronic generation device
TR201907713T4 (tr) * 2014-12-22 2019-06-21 Koninklijke Philips Nv Elektronik hesaplama cihazı.

Also Published As

Publication number Publication date
JP2019506031A (ja) 2019-02-28
EP3391264A1 (en) 2018-10-24
RU2018125606A3 (ru) 2020-04-16
WO2017102392A1 (en) 2017-06-22
CN108369613A (zh) 2018-08-03
US20200264872A1 (en) 2020-08-20
BR112018011790A2 (pt) 2018-12-04
EP3391264B1 (en) 2020-02-12
JP6522860B2 (ja) 2019-05-29
NL2015955B1 (en) 2017-06-28

Similar Documents

Publication Publication Date Title
Dujmović et al. Layered separators in minor-closed graph classes with applications
PH12017501364A1 (en) Order allocation system and method
GB2553994A (en) Modeling personal entities
MX2016000873A (es) Banco de pruebas virtuales de respuesta autonoma.
JP2018522291A5 (ru)
CN106575246A8 (zh) 机器学习服务
WO2013066756A3 (en) SOFTWARE DIGITAL FRONT END (SoftDFE) SIGNAL PROCESSING
MY194851A (en) Aggregating Service Data For Transmission And Risk Analysis
RU2017122260A (ru) Электронное вычислительное устройство для выполнения замаскированных арифметических действий
EP4006723A3 (en) Fast data operations and finite state machine for machine learning
EP3462386A3 (en) Learning data selection program, learning data selection method, and learning data selection device
EP2998876A3 (en) Calculator, recording medium and compute server
EP2940576A3 (en) Approximating functions
CN107408011A8 (zh) 将多个屏幕动态地合并到一个视口
MY186664A (en) Multimedia file management method, electronic device, and graphical user interface
EP3093757A3 (en) Multi-dimensional sliding window operation for a vector processor
Dehghan et al. On a new family of radial basis functions: Mathematical analysis and applications to option pricing
JP2020537270A5 (ja) 情報処理装置、情報処理方法、及びプログラム
RU2017126055A (ru) Электронное вычислительное устройство
JP2017533458A5 (ru)
US20170076211A1 (en) Feature-converting device, feature-conversion method, learning device, and recording medium
EP2889758A3 (en) Functional unit for instruction execution pipeline capable of shifting different chunks of a packed data operand by different amounts
RU2016129282A (ru) Безопасные преобразования данных
RU2018125606A (ru) Вычислительное устройство и способ
JP2015099999A5 (ru)

Legal Events

Date Code Title Description
FA92 Acknowledgement of application withdrawn (lack of supplementary materials submitted)

Effective date: 20200827