WO2022009389A1 - 逆元演算装置、逆元演算方法および逆元演算プログラム - Google Patents

逆元演算装置、逆元演算方法および逆元演算プログラム Download PDF

Info

Publication number
WO2022009389A1
WO2022009389A1 PCT/JP2020/026860 JP2020026860W WO2022009389A1 WO 2022009389 A1 WO2022009389 A1 WO 2022009389A1 JP 2020026860 W JP2020026860 W JP 2020026860W WO 2022009389 A1 WO2022009389 A1 WO 2022009389A1
Authority
WO
WIPO (PCT)
Prior art keywords
calculation result
unit
calculation
equal
inverse element
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2020/026860
Other languages
English (en)
French (fr)
Inventor
健一郎 早坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2022534595A priority Critical patent/JP7158629B2/ja
Priority to DE112020007193.6T priority patent/DE112020007193B4/de
Priority to CN202080102532.XA priority patent/CN115735241A/zh
Priority to PCT/JP2020/026860 priority patent/WO2022009389A1/ja
Publication of WO2022009389A1 publication Critical patent/WO2022009389A1/ja
Priority to US17/987,977 priority patent/US20230076400A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • 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
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/721Modular inversion, reciprocal or quotient calculation
    • 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
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • 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
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system

Definitions

  • the present disclosure relates to a technique that enables high-speed multiplicative inverse element calculation in a subgroup of a finite field.
  • the pairing cipher realizes various highly convenient functions by utilizing the features of the pairing map, which are non-degenerate and bilinear.
  • the calculation of the pairing map consists of operations on a finite field. Therefore, speeding up operations on a finite field is important for improving the efficiency of pairing cryptography.
  • In ate pairing or Optimal ate pairing, which is a calculation algorithm for pairing maps, inverse element calculation and double multiplication can be calculated at higher speed by using the properties of subgroups of finite fields, and pairing cryptography becomes more efficient. It is known that it can be done.
  • the calculation of the pairing map requires the inverse element calculation as follows.
  • Relative body F p consider the following extension field (F p n, F p k ).
  • Extension field F p k and extension field F p n are each enlarged body of the element body F p.
  • the prime field F p , the extension field F p n, and the extension field F p k are each finite.
  • F p n F p [v ] / (v n - ⁇ )
  • F p k F p n [w] / (w 3- v).
  • “K” is the smallest integer that satisfies r
  • “ ⁇ ” is the source of the element body F p.
  • the original set of the extension field F p k whose order is ⁇ 3 (pn) is called a cyclotomic subgroup.
  • This set is referred to as G ⁇ 3 ( pn ).
  • ⁇ m (x) means the mth cyclotomic polynomial.
  • the inverse element a- 1 of the element a of the set G ⁇ 3 (pn ) can be calculated by two Frobenius operations and one multiplication on the extension field F p k.
  • This inverse calculation on the set G ⁇ 3 (p n) have shown that it is possible to calculate at a higher speed than the inverse calculation on the extension field F p k.
  • a -1 (a 0 2 -a 1 a 2 v) + (a 2 2 v-a 0 a 1 ) w + (a 1 2 -a 0 a 2 ) w 2
  • This expression extension field F 3 multiplications on p n (a 1 a 2, a 0 a 1, a 0 a 2) and three squaring (a 0 2, a 2 2 , a 1 2 ) Is included.
  • Inverse arithmetic for pairing mapping requires operations on a finite field, and operations on a finite field become a bottleneck in improving the efficiency of pairing cryptography.
  • multiplication and double multiplication have a larger amount of calculation than addition, subtraction, and fractional multiplication (1/2 multiplication, 1/4 multiplication, etc.).
  • the purpose of this disclosure is to reduce the amount of calculation required for inverse calculation for pairing mapping.
  • the inverse element arithmetic unit of the present disclosure calculates the inverse element a-1 of the element a.
  • the inverse element arithmetic unit is The reception unit that accepts the original a and Using a 0 , a 1 and a 2 , t 1 which is the calculation result of a 0 2 , t 2 which is the calculation result of a 2 2 , t 3 which is the calculation result of a 0 a 1 , and a. 1
  • a pre-calculation unit that calculates t 4 which is the calculation result of a 2 and t 7 which is equal to the calculation result of (a 0 + a 1 ) (a 1- a 2).
  • inverse operation unit for calculating a b 2 equal to a 1 2 -a 0 a 2 calculation results, and It includes an output unit that generates and outputs the inverse element a- 1 using b 0 , b 1 and b 2.
  • the doubling on the finite field for calculating the inverse element a-1 can be reduced from 3 times to 2 times. That is, the amount of calculation required for the inverse element calculation for the pairing map can be reduced. As a result, the pairing encryption can be made more efficient.
  • FIG. 1 The block diagram of the inverse element arithmetic unit 100 in Embodiment 1.
  • FIG. 1 The block diagram of the pre-calculation unit 120 in Embodiment 1.
  • FIG. 2 The block diagram of the inverse element calculation part 230 in Embodiment 2.
  • FIG. 2 The flowchart of the inverse element calculation method in Embodiment 2.
  • Embodiment 1 The form of calculating the inverse element a-1 of the element a of the cyclotomic subgroup will be described with reference to FIGS. 1 to 7.
  • the configuration of the inverse element arithmetic unit 100 is a computer including hardware such as a processor 101, a memory 102, an auxiliary storage device 103, a communication device 104, and an input / output interface 105. These hardware are connected to each other via signal lines.
  • the processor 101 is an IC that performs arithmetic processing and controls other hardware.
  • the processor 101 is a CPU.
  • IC is an abbreviation for Integrated Circuit.
  • CPU is an abbreviation for Central Processing Unit.
  • the memory 102 is a volatile or non-volatile storage device.
  • the memory 102 is also referred to as a main storage device or a main memory.
  • the memory 102 is a RAM.
  • the data stored in the memory 102 is stored in the auxiliary storage device 103 as needed.
  • RAM is an abbreviation for Random Access Memory.
  • the auxiliary storage device 103 is a non-volatile storage device.
  • the auxiliary storage device 103 is a ROM, an HDD, or a flash memory.
  • the data stored in the auxiliary storage device 103 is loaded into the memory 102 as needed.
  • ROM is an abbreviation for Read Only Memory.
  • HDD is an abbreviation for Hard Disk Drive.
  • the communication device 104 is a receiver and a transmitter.
  • the communication device 104 is a communication chip or NIC.
  • NIC is an abbreviation for Network Interface Card.
  • the input / output interface 105 is a port to which an input device and an output device are connected.
  • the input / output interface 105 is a USB terminal
  • the input device is a keyboard and a mouse
  • the output device is a display.
  • USB is an abbreviation for Universal Serial Bus.
  • the inverse element arithmetic unit 100 includes elements such as a reception unit 110, a pre-arithmetic unit 120, an inverse element arithmetic unit 130, and an output unit 140. These elements are realized by software.
  • the auxiliary storage device 103 stores an inverse element calculation program for operating the computer as a reception unit 110, a pre-calculation unit 120, an inverse element calculation unit 130, and an output unit 140.
  • the inverse element arithmetic program is loaded into the memory 102 and executed by the processor 101.
  • the auxiliary storage device 103 further stores the OS. At least a portion of the OS is loaded into memory 102 and executed by processor 101.
  • the processor 101 executes the inverse element arithmetic program while executing the OS.
  • OS is an abbreviation for Operating System.
  • the input / output data of the inverse element arithmetic program is stored in the storage unit 190.
  • the memory 102 functions as a storage unit 190.
  • a storage device such as an auxiliary storage device 103, a register in the processor 101, and a cache memory in the processor 101 may function as a storage unit 190 instead of the memory 102 or together with the memory 102.
  • the inverse element arithmetic unit 100 may include a plurality of processors that replace the processor 101.
  • the inverse element arithmetic program can be recorded (stored) in a non-volatile recording medium such as an optical disk or a flash memory so that it can be read by a computer.
  • a non-volatile recording medium such as an optical disk or a flash memory
  • the configuration of the pre-calculation unit 120 will be described with reference to FIG.
  • the pre-calculation unit 120 includes elements such as a second multiplication unit 121, a first multiplication unit 122, an addition unit 123, a subtraction unit 124, and a second multiplication unit 125. The functions of these elements will be described later.
  • the configuration of the inverse element calculation unit 130 will be described with reference to FIG.
  • the inverse element calculation unit 130 includes elements such as a first calculation unit 131, a second calculation unit 132, and a third calculation unit 133. The functions of these elements will be described later.
  • the extension field F p n and the extension field F p k are expressed by the following equations.
  • F p n F p [v ] / (v n - ⁇ )
  • F p k F p n [w] / (w 3- v).
  • G ⁇ 3 (p n) is, of order is the original set of the extension field F p k is a ⁇ 3 (p n), called a cyclotomic subgroup.
  • ⁇ m (x) is an mth cyclotomic polynomial.
  • A is an element of the set G ⁇ 3 ( pn ). That is, “a” is the source of the cyclotomic subgroup.
  • a -1 is the inverse element of the element a.
  • a 0" and "a 1", “a 2" are each extension field F p n of the original.
  • a a 0 + a 1 w + a 2 w 2 ⁇ G ⁇ 3 ( pn )
  • a -1 (a 0 2 -a 1 a 2 v) + (a 2 2 v-a 0 a 1 ) w + (a 1 2 -a 0 a 2 ) w 2
  • the procedure for operating the inverse element arithmetic unit 100 corresponds to the inverse element arithmetic method. Further, the procedure for operating the inverse element arithmetic unit 100 corresponds to the procedure for processing by the inverse element arithmetic program.
  • step S110 the reception unit 110 receives the element a.
  • the element a is transmitted from the pairing mapping device that performs the calculation of the pairing mapping or the pairing encryption device that performs the calculation of the pairing encryption to the inverse element calculation device 100.
  • the reception unit 110 receives the original a.
  • the element a is input to the inverse element arithmetic unit 100 by the user.
  • the reception unit 110 receives the input element a.
  • step S120 the pre-calculation unit 120 calculates t 1 , t 2 , t 3 , t 4, and t 7 using a 0 , a 1, and a 2 .
  • t 1 is the calculation result of a 0 2.
  • t 2 is a calculation result of a 2 2.
  • t 3 is the calculation result of a 0 a 1.
  • t 4 is the calculation result of a 1 a 2.
  • t 7 is equal to the calculation result of (a 0 + a 1 ) (a 1 ⁇ a 2).
  • the calculation result of X is a value obtained by calculating X.
  • Y which is equal to the calculation result of X, is the same value as the value obtained by calculating X, and is obtained without calculating X. The details of step S120 will be described later.
  • step S130 the inverse operation unit 130, using the t 1 and t 2 and t 3 and t 4 and t 7, to calculate the b 0 and b 1 and b 2.
  • b 0 is equal to the calculation result of a 0 2-
  • b 1 is equal to the calculation result of a 2 2 v-a 0 a 1.
  • b 2 is equal to the calculation result of a 1 2 ⁇ a 0 a 2. The details of step S130 will be described later.
  • step S140 the output unit 140 outputs the inverse element a- 1 .
  • the output unit 140 transmits the inverse element a- 1 to the source of the element a.
  • the output unit 140 writes the inverse element a-1 to the recording medium designated by the user.
  • step S121 the squaring unit 121 performs squaring using a 0. Specifically, squaring unit 121 calculates a 0 2. As a result, t 1 is calculated.
  • t 1 is the calculation result of a 0 2, is expressed as follows. t 1 ⁇ a 0 2
  • step S122 the squaring unit 121 performs squaring using a 2. Specifically, squaring unit 121 calculates a 2 2. As a result, t 2 is calculated.
  • t 2 is the calculation result of a 2 2, are expressed as follows. t 2 ⁇ a 2 2
  • step S123 the first multiplication unit 122 performs multiplication using a 0 and a 1. Specifically, the first multiplication unit 122 calculates a 0 a 1. As a result, t 3 is calculated.
  • t 3 is a calculation result of a 0 a 1 and is expressed as follows. t 3 ⁇ a 0 a 1
  • step S124 the first multiplication unit 122 performs multiplication using a 1 and a 2. Specifically, the first multiplication unit 122 calculates a 1 a 2. As a result, t 4 is calculated.
  • t 4 is the calculation result of a 1 a 2 and is expressed as follows. t 4 ⁇ a 1 a 2
  • step S125 the addition unit 123 performs addition using a 0 and a 1. Specifically, the addition unit 123 calculates a 0 + a 1. As a result, t 5 is calculated.
  • t 5 is a calculation result of a 0 + a 1 and is expressed as follows. t 5 ⁇ a 0 + a 1
  • step S126 the subtraction unit 124 performs a subtraction with a 1 and a 2. Specifically, subtracting unit 124 calculates a 1 -a 2. As a result, t 6 is calculated.
  • t 6 is the calculation result of a 1 ⁇ a 2 , and is expressed as follows. t 6 ⁇ a 1 -a 2
  • step S127 the second multiplication unit 125 performs multiplication using t 5 and t 6. Specifically, the second multiplication unit 125 calculates t 5 t 6. As a result, t 7 is calculated.
  • step S131 the first calculation unit 131 performs subtraction using t 1 and t 4. Specifically, the first calculation unit 131 calculates t 4 v by multiplying t 4 by v. Then, the first calculation unit 131 calculates t 1 ⁇ t 4 v. “V” is a predetermined value. As a result, b 0 is calculated.
  • step S132 the second calculation unit 132 performs subtraction using t 2 and t 3. Specifically, the second calculation unit 132 calculates t 2 v by multiplying t 2 by v. Then, the second calculation unit 132 calculates t 2 vt 3 . As a result, b 1 is calculated.
  • step S133 the third calculation unit 133 performs addition and subtraction using t 3 , t 4, and t 7. Specifically, the third calculation unit 133 calculates t 7 ⁇ t 3 + t 4 . As a result, b 2 is calculated.
  • b 2 is a calculation result of t 7 ⁇ t 3 + t 4 , and is expressed as follows.
  • the inverse element arithmetic unit 100 includes a processing circuit 109.
  • the processing circuit 109 is hardware that realizes the reception unit 110, the pre-calculation unit 120, the inverse element calculation unit 130, and the output unit 140.
  • the processing circuit 109 may be dedicated hardware or may be a processor 101 that executes a program stored in the memory 102.
  • the processing circuit 109 is dedicated hardware, the processing circuit 109 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • ASIC is an abbreviation for Application Specific Integrated Circuit.
  • FPGA is an abbreviation for Field Programmable Gate Array.
  • the inverse element arithmetic unit 100 may include a plurality of processing circuits that replace the processing circuit 109.
  • processing circuit 109 some functions may be realized by dedicated hardware, and the remaining functions may be realized by software or firmware.
  • the function of the inverse element arithmetic unit 100 can be realized by hardware, software, firmware, or a combination thereof.
  • Embodiment 2 The form of calculating the inverse element a-1 of the element a of the cyclotomic subgroup will be described mainly different from the first embodiment with reference to FIGS. 8 to 14.
  • the configuration of the inverse element arithmetic unit 200 corresponds to the inverse element arithmetic unit 100 in the first embodiment.
  • the inverse element arithmetic unit 200 is a computer including hardware such as a processor 201, a memory 202, an auxiliary storage device 203, a communication device 204, and an input / output interface 205. These hardware are connected to each other via signal lines.
  • the processor 201 is an IC that performs arithmetic processing and controls other hardware.
  • the processor 201 is a CPU.
  • Memory 202 is a volatile or non-volatile storage device.
  • the memory 202 is also referred to as a main storage device or a main memory.
  • the memory 202 is a RAM.
  • the data stored in the memory 202 is stored in the auxiliary storage device 203 as needed.
  • the auxiliary storage device 203 is a non-volatile storage device.
  • the auxiliary storage device 203 is a ROM, an HDD, or a flash memory.
  • the data stored in the auxiliary storage device 203 is loaded into the memory 202 as needed.
  • Communication device 204 is a receiver and a transmitter.
  • the communication device 204 is a communication chip or NIC.
  • the input / output interface 205 is a port to which an input device and an output device are connected.
  • the input / output interface 205 is a USB terminal
  • the input device is a keyboard and a mouse
  • the output device is a display.
  • the inverse element arithmetic unit 200 includes elements such as a reception unit 210, a pre-arithmetic unit 220, an inverse element arithmetic unit 230, and an output unit 240. These elements are realized by software.
  • the auxiliary storage device 203 stores an inverse element calculation program for operating the computer as a reception unit 210, a pre-calculation unit 220, an inverse element calculation unit 230, and an output unit 240.
  • the inverse element arithmetic program is loaded into the memory 202 and executed by the processor 201.
  • the auxiliary storage device 203 further stores the OS. At least a portion of the OS is loaded into memory 202 and executed by processor 201.
  • the processor 201 executes the inverse element arithmetic program while executing the OS.
  • the input / output data of the inverse element calculation program is stored in the storage unit 290.
  • the memory 202 functions as a storage unit 290.
  • a storage device such as an auxiliary storage device 203, a register in the processor 201, and a cache memory in the processor 201 may function as a storage unit 290 instead of the memory 202 or together with the memory 202.
  • the inverse element arithmetic unit 200 may include a plurality of processors that replace the processor 201.
  • the inverse element calculation program can be recorded (stored) in a non-volatile recording medium such as an optical disk or a flash memory so that it can be read by a computer.
  • the pre-calculation unit 220 includes elements such as a first second multiplication unit 221, a multiplication unit 222, a first fraction multiplication unit 223, a calculation unit 224, a second second multiplication unit 225, and a second fraction multiplication unit 226. The functions of these elements will be described later.
  • the configuration of the inverse element calculation unit 230 will be described with reference to FIG.
  • the inverse element calculation unit 230 includes elements such as a first calculation unit 231, a second calculation unit 232, and a third calculation unit 233. The functions of these elements will be described later.
  • the procedure for operating the inverse element arithmetic unit 200 corresponds to the inverse element arithmetic method. Further, the procedure for operating the inverse element arithmetic unit 200 corresponds to the procedure for processing by the inverse element arithmetic program.
  • step S210 the reception unit 210 receives the element a.
  • a a 0 + a 1 w + a 2 w 2
  • Step S210 is the same as step S110 in the first embodiment.
  • step S220 the pre-calculation unit 220 calculates t 1 , t 2 , t 3 , t 4, and t 7 using a 0 , a 1, and a 2 .
  • t 1 is the calculation result of a 0 2.
  • t 2 is a calculation result of a 2 2.
  • t 3 is the calculation result of a 0 a 1.
  • t 4 is the calculation result of a 1 a 2.
  • t 7 is equal to a 0 2 + a 1 2 + a 2 2/4 + 2a 0 a 1 -a 0 a 2 -a 1 a 2 a calculation result.
  • t 8 is equal to the calculation result of a 2 2/4. The details of step S220 will be described later.
  • step S230 the inverse operation unit 230, using the t 1 and t 2 and t 3 and t 4 and t 7 and t 8, calculates the b 0 and b 1 and b 2.
  • b 0 is equal to the calculation result of a 0 2-
  • b 1 is equal to the calculation result of a 2 2 v-a 0 a 1.
  • b 2 is equal to the calculation result of a 1 2 ⁇ a 0 a 2.
  • step S240 the output unit 140 outputs the inverse element a- 1 .
  • a -1 (a 0 2 -a 1 a 2 v) + (a 2 2 v-a 0 a 1 ) w + (a 1 2 -a 0 a 2 ) w 2
  • Step S240 is the same as step S140 in the first embodiment.
  • step S220 The pre-calculation process (S220) will be described with reference to FIG.
  • first squaring unit 221 performs squaring using a 0. Specifically, first squaring unit 221 calculates a 0 2. As a result, t 1 is calculated.
  • t 1 is the calculation result of a 0 2, is expressed as follows. t 1 ⁇ a 0 2
  • step S222 first squaring unit 221 performs squaring using a 2. Specifically, the first second multiplication unit 221 calculates a 2 2. As a result, t 2 is calculated.
  • t 2 is the calculation result of a 2 2, are expressed as follows. t 2 ⁇ a 2 2
  • step S223 the multiplication unit 222 performs multiplication using a 0 and a 1. Specifically, the multiplication unit 222 calculates a 0 a 1. As a result, t 3 is calculated.
  • t 3 is a calculation result of a 0 a 1 and is expressed as follows. t 3 ⁇ a 0 a 1
  • step S224 the multiplication unit 222 performs multiplication using a 1 and a 2. Specifically, the multiplication unit 222 calculates a 1 a 2. As a result, t 4 is calculated.
  • t 4 is the calculation result of a 1 a 2 and is expressed as follows. t 4 ⁇ a 1 a 2
  • step S225 the first minute number doubling unit 223 performs 1/2 multiplication with a 2. Specifically, the first minute number doubling unit 223 calculates a 2/2. As a result, t 5 is calculated.
  • t 5 is the calculation result of a 2/2, is represented as follows. t 5 ⁇ a 2/2
  • step S226 the arithmetic unit 224 performs addition and subtraction using a 0 , a 1 and t 5. Specifically, the calculation unit 224 calculates a 0 + a 1 ⁇ t 5 . As a result, t 6 is calculated.
  • step S227 the second squaring unit 225 performs squaring using t 6. Specifically, the second squaring unit 225 calculates the t 6 2. As a result, t 7 is calculated.
  • t 7 is the calculation result of t 6 2, is expressed as follows.
  • step S2208 the second fraction multiplication unit 226 performs 1/4 multiplication using t 2. Specifically, the second minute number doubling unit 226 calculates the t 2/4. As a result, t 8 is calculated.
  • step S232 the second arithmetic unit 232 performs subtraction using t 2 and t 3. Specifically, the second calculation unit 132 calculates t 2 v by multiplying t 2 by v. Then, the second calculation unit 132 calculates t 2 vt 3 . As a result, b 1 is calculated.
  • step S233 the third arithmetic unit 233 performs addition and subtraction using t 1 , t 3 , t 4 , t 7 and t 8. Specifically, the third calculation unit 233 calculates t 7 ⁇ t 1 ⁇ t 8 ⁇ 2 t 3 + t 4 . As a result, b 2 is calculated.
  • b 2 is a calculation result of t 7- t 1- t 8 -2t 3 + t 4 , and is expressed as follows.
  • the inverse element arithmetic unit 200 includes a processing circuit 209.
  • the processing circuit 209 is hardware that realizes the reception unit 210, the pre-calculation unit 220, the inverse element calculation unit 230, and the output unit 240.
  • the processing circuit 209 may be dedicated hardware or may be a processor 201 that executes a program stored in the memory 202.
  • the processing circuit 209 is dedicated hardware, the processing circuit 209 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • the inverse element arithmetic unit 200 may include a plurality of processing circuits that replace the processing circuit 209.
  • processing circuit 209 some functions may be realized by dedicated hardware, and the remaining functions may be realized by software or firmware.
  • the function of the inverse element arithmetic unit 200 can be realized by hardware, software, firmware or a combination thereof.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

受付部(110)は元aを受け付ける。事前演算部(120)は、a0とa1とa2を用いて、a0 2の計算結果であるt1と、a2 2の計算結果であるt2と、a0a1の計算結果であるt3と、a1a2の計算結果であるt4と、(a0+a1)(a1-a2)の計算結果に等しいt7と、を算出する。逆元演算部(130)は、t1とt2とt3とt4とt7を用いて、a0 2-a1a2vの計算結果に等しいb0と、a2 2v-a0a1の計算結果に等しいb1と、a1 2-a0a2の計算結果に等しいb2と、を算出する。出力部(140)は、b0とb1とb2を用いて前記逆元a-1を生成して出力する。

Description

逆元演算装置、逆元演算方法および逆元演算プログラム
 本開示は、有限体の部分群における高速な乗法逆元算を可能とする技術に関するものである。
 有限体上の演算を利用した暗号アルゴリズムは複数存在する。
 有限体の部分群の性質を利用すると、演算の計算量を削減でき、結果として暗号アルゴリズムを効率化できる場合がある。
 ペアリング暗号は、非退化かつ双線形というペアリング写像の特長を利用して利便性の高い様々な機能を実現している。
 ペアリング写像の計算は有限体上の演算で構成される。そのため、有限体上の演算を高速化することは、ペアリング暗号を効率化するうえで重要である。
 ペアリング写像の計算アルゴリズムであるAteペアリングまたはOptimal Ateペアリングなどでは、有限体の部分群の性質を利用することで逆元算および二乗算をより高速に計算でき、ペアリング暗号を効率化できる、ということが知られている。
 ペアリング写像の計算は、以下のように逆元算を必要とする。
 素体Fに対して、次のような拡大体(F ,F )を考える。拡大体F と拡大体F は、それぞれ素体Fの拡大体である。素体Fと拡大体F と拡大体F は、それぞれ有限体である。
 F =F[v]/(v-α),
 F =F [w]/(w-v).
 「k」は、素数rおよび素数pに対してr|(p-1)を満たす最小の整数である。「k」は、整数nに対してk=3nを満たす。
 「α」は、素体Fの元である。
 「v」は、素体F上既約な多項式f(X)=X-αに対してf(v)=0を満たす拡大体F の元である。
 「w」は、拡大体F 上既約な多項式g(X)=X-vに対してg(w)=0を満たす拡大体F の元である。
 位数がΦ3(p)である拡大体F の元の集合をcyclotomic subgroupとよぶ。この集合をGΦ3(p)と記す。ただし、Φm(x)は第m円分多項式を意味する。
 ここで、集合GΦ3(p)の元aを以下の式で表す。「a」と「a」と「a」は、それぞれ拡大体F の元である。
 a=a+aw+a
 この場合、集合GΦ3(p)の元aの逆元a-1は、2回のFrobenius演算と1回の拡大体F 上の乗算で算出できる。
 これは、集合GΦ3(p)上の逆元算が、拡大体F 上の逆元算よりも高速に計算可能であることを示している。
 非特許文献1は、「k=27」の場合において集合GΦ3(p)上の逆元算が可能なことを示している。
 さらに、逆元a-1を以下の式で表す。
 a-1=(a -av)+(a v-a)w+(a -a)w
 この式には、拡大体F 上の3回の乗算(a,a,a)と3回の二乗算(a ,a ,a )が含まれる。
 非特許文献2は、「k=9,15,27」の場合においてこの式による逆元算が可能なことを示している。
X. Zhang and D. Lin, "Analysis of Optimum Pairing Products at High Security Levels," INDOCRYPT 2012, LNCS 7668, pp.412-430, 2012. E. Fouotsa, N. El Mrabet and A. Pecha "Optimal Ate Pairing on Elliptic Curves with Embedding Degree 9, 15 and 27," IACR Cryptology ePrint Archive, 2016/1187, 2016.
 ペアリング写像のための逆元算は有限体上の演算を必要とし、有限体上の演算はペアリング暗号を効率化する上でボトルネックとなる。
 特に、有限体上の演算のうち、乗算および二乗算は、加算、減算および分数倍算(1/2倍算または1/4倍算など)に比べて、計算量が多い。
 本開示は、ペアリング写像のための逆元算に要する計算量を削減できるようにすることを目的とする。
 本開示の逆元演算装置は、元aの逆元a-1を算出する。
 前記元aは、a=a+aw+aで表される。
 前記逆元a-1は、a-1=(a -av)+(a v-a)w+(a -a)wで表される。
 前記逆元演算装置は、
 前記元aを受け付ける受付部と、
 aとaとaを用いて、a の計算結果であるtと、a の計算結果であるtと、aの計算結果であるtと、aの計算結果であるtと、(a+a)(a-a)の計算結果に等しいtと、を算出する事前演算部と、
 tとtとtとtとtを用いて、a -avの計算結果に等しいbと、a v-aの計算結果に等しいbと、a -aの計算結果に等しいbと、を算出する逆元演算部と、
 bとbとbを用いて前記逆元a-1を生成して出力する出力部と、を備える。
 本開示によれば、逆元a-1を算出するための有限体上の二乗算を3回から2回に減らすことができる。つまり、ペアリング写像のための逆元算に要する計算量を削減できる。その結果、ペアリング暗号を効率化することができる。
実施の形態1における逆元演算装置100の構成図。 実施の形態1における事前演算部120の構成図。 実施の形態1における逆元演算部130の構成図。 実施の形態1における逆元演算方法のフローチャート。 実施の形態1における事前演算処理(S120)のフローチャート。 実施の形態1における逆元演算処理(S130)のフローチャート。 実施の形態1における逆元演算装置100のハードウェア構成図。 実施の形態2における逆元演算装置200の構成図。 実施の形態2における事前演算部220の構成図。 実施の形態2における逆元演算部230の構成図。 実施の形態2における逆元演算方法のフローチャート。 実施の形態2における事前演算処理(S220)のフローチャート。 実施の形態2における逆元演算処理(S230)のフローチャート。 実施の形態2における逆元演算装置200のハードウェア構成図。
 実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
 実施の形態1.
 cyclotomic subgroupの元aの逆元a-1を算出する形態について、図1から図7に基づいて説明する。
***構成の説明***
 図1に基づいて、逆元演算装置100の構成を説明する。
 逆元演算装置100は、プロセッサ101とメモリ102と補助記憶装置103と通信装置104と入出力インタフェース105といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ101は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ101はCPUである。
 ICは、Integrated Circuitの略称である。
 CPUは、Central Processing Unitの略称である。
 メモリ102は揮発性または不揮発性の記憶装置である。メモリ102は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ102はRAMである。メモリ102に記憶されたデータは必要に応じて補助記憶装置103に保存される。
 RAMは、Random Access Memoryの略称である。
 補助記憶装置103は不揮発性の記憶装置である。例えば、補助記憶装置103は、ROM、HDDまたはフラッシュメモリである。補助記憶装置103に記憶されたデータは必要に応じてメモリ102にロードされる。
 ROMは、Read Only Memoryの略称である。
 HDDは、Hard Disk Driveの略称である。
 通信装置104はレシーバ及びトランスミッタである。例えば、通信装置104は通信チップまたはNICである。
 NICは、Network Interface Cardの略称である。
 入出力インタフェース105は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース105はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
 USBは、Universal Serial Busの略称である。
 逆元演算装置100は、受付部110と事前演算部120と逆元演算部130と出力部140といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置103には、受付部110と事前演算部120と逆元演算部130と出力部140としてコンピュータを機能させるための逆元演算プログラムが記憶されている。逆元演算プログラムは、メモリ102にロードされて、プロセッサ101によって実行される。
 補助記憶装置103には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ102にロードされて、プロセッサ101によって実行される。
 プロセッサ101は、OSを実行しながら、逆元演算プログラムを実行する。
 OSは、Operating Systemの略称である。
 逆元演算プログラムの入出力データは記憶部190に記憶される。
 メモリ102は記憶部190として機能する。但し、補助記憶装置103、プロセッサ101内のレジスタおよびプロセッサ101内のキャッシュメモリなどの記憶装置が、メモリ102の代わりに、又は、メモリ102と共に、記憶部190として機能してもよい。
 逆元演算装置100は、プロセッサ101を代替する複数のプロセッサを備えてもよい。
 逆元演算プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図2に基づいて、事前演算部120の構成を説明する。
 事前演算部120は、二乗算部121と第1乗算部122と加算部123と減算部124と第2乗算部125といった要素を備える。これらの要素の機能を後述する。
 図3に基づいて、逆元演算部130の構成を説明する。
 逆元演算部130は、第1演算部131と第2演算部132と第3演算部133といった要素を備える。これらの要素の機能を後述する。
***前提の説明***
 逆元演算装置100による逆元算の前提を説明する。
 「p」は、素数である。
 「F」は、要素数がpである体である。
 「k」および「n」は、k=3nを満たす整数である。
 「F 」と「F 」は、それぞれ体Fの拡大体である。
 「α」は、体Fの元である。
 拡大体F と拡大体F は、以下の式で表される。
 F =F[v]/(v-α),
 F =F [w]/(w-v).
 「GΦ3(p)」は、位数がΦ3(p)である拡大体F の元の集合であり、cyclotomic subgroupとよぶ。ただし、Φm(x)は第m円分多項式である。
 「a」は、集合GΦ3(p)の元である。つまり、「a」は、cyclotomic subgroupの元である。
 「a-1」は、元aの逆元である。
 「a」と「a」と「a」は、それぞれ拡大体F の元である。
 元aは、以下の式で表される。
 a=a+aw+a∈GΦ3(p
 逆元「a-1」は、以下の式で表される。
 a-1=(a -av)+(a v-a)w+(a -a)w
***動作の説明***
 逆元演算装置100の動作の手順は逆元演算方法に相当する。また、逆元演算装置100の動作の手順は逆元演算プログラムによる処理の手順に相当する。
 図4に基づいて、逆元演算方法を説明する。
 ステップS110において、受付部110は、元aを受け付ける。
 例えば、元aは、ペアリング写像の演算を行うペアリング写像装置またはペアリング暗号の演算を行うペアリング暗号装置から逆元演算装置100へ送信される。そして、受付部110は、元aを受信する。
 例えば、元aは、利用者によって逆元演算装置100に入力される。そして、受付部110は、入力された元aを受け付ける。
 元aは、aとaとaを含み、以下の式で表される。
 a=a+aw+a
 ステップS120において、事前演算部120は、aとaとaを用いて、tとtとtとtとtを算出する。
 tは、a の計算結果である。
 tは、a の計算結果である。
 tは、aの計算結果である。
 tは、aの計算結果である。
 tは、(a+a)(a-a)の計算結果に等しい。
 Xの計算結果は、Xを計算して得られる値である。
 Xの計算結果に等しいYは、Xを計算して得られる値と同じ値であり、Xを計算せずに得られる。
 ステップS120の詳細を後述する。
 ステップS130において、逆元演算部130は、tとtとtとtとtを用いて、bとbとbを算出する。
 bは、a -avの計算結果に等しい。
 bは、a v-aの計算結果に等しい。
 bは、a -aの計算結果に等しい。
 ステップS130の詳細を後述する。
 ステップS140において、出力部140は、逆元a-1を出力する。
 例えば、出力部140は、元aの送信元へ逆元a-1を送信する。または、出力部140は、利用者に指定された記録媒体に逆元a-1を書き込む。
 逆元a-1は、元aの逆元であり、以下の式で表される。
 a-1=(a -av)+(a v-a)w+(a -a)w
 図5に基づいて、事前演算処理(S120)を説明する。
 ステップS121において、二乗算部121はaを用いて二乗算を行う。具体的には、二乗算部121はa を計算する。これにより、tが算出される。
 tは、a の計算結果であり、以下のように表される。
 t←a
 ステップS122において、二乗算部121はaを用いて二乗算を行う。具体的には、二乗算部121はa を計算する。これにより、tが算出される。
 tは、a の計算結果であり、以下のように表される。
 t←a
 ステップS123において、第1乗算部122は、aとaを用いて乗算を行う。具体的には、第1乗算部122はaを計算する。これにより、tが算出される。
 tは、aの計算結果であり、以下のように表される。
 t←a
 ステップS124において、第1乗算部122は、aとaを用いて乗算を行う。具体的には、第1乗算部122はaを計算する。これにより、tが算出される。
 tは、aの計算結果であり、以下のように表される。
 t←a
 ステップS125において、加算部123は、aとaを用いて加算を行う。具体的には、加算部123はa+aを計算する。これにより、tが算出される。
 tは、a+aの計算結果であり、以下のように表される。
 t←a+a
 ステップS126において、減算部124は、aとaを用いて減算を行う。具体的には、減算部124はa-aを計算する。これにより、tが算出される。
 tは、a-aの計算結果であり、以下のように表される。
 t←a-a
 ステップS127において、第2乗算部125は、tとtを用いて乗算を行う。具体的には、第2乗算部125はtを計算する。これにより、tが算出される。
 tは、tの計算結果であり、以下のように表される。
 t←t=(a+a)(a-a
 図6に基づいて、逆元演算処理(S130)を説明する。
 ステップS131において、第1演算部131は、tとtを用いて減算を行う。
 具体的には、第1演算部131は、tにvを掛けてtvを算出する。そして、第1演算部131はt-tvを計算する。「v」は、あらかじめ決められた値である。
 これにより、bが算出される。
 bは、t-tvの計算結果であり、以下のように表される。
 b←t-tv=a -a
 ステップS132において、第2演算部132は、tとtを用いて減算を行う。
 具体的には、第2演算部132は、tにvを掛けてtvを算出する。そして、第2演算部132はtv-tを計算する。
 これにより、bが算出される。
 bは、tv-tの計算結果であり、以下のように表される。
 b←tv-t=a v-a
 ステップS133において、第3演算部133は、tとtとtを用いて加算および減算を行う。具体的には、第3演算部133はt-t+tを計算する。これにより、bが算出される。
 bは、t-t+tの計算結果であり、以下のように表される。
 b←t-t+t
  =(a+a)(a-a)-a+a
  =a-a+a -a-a+a
  =a -a
***実施の形態1の効果***
 実施の形態1により、逆元a-1を算出するための有限体上の二乗算を3回から2回に減らすことができる。つまり、逆元算の高速化が可能である。その結果、ペアリング暗号の効率化が可能となる。
***実施の形態1の補足***
 図7に基づいて、逆元演算装置100のハードウェア構成を説明する。
 逆元演算装置100は処理回路109を備える。
 処理回路109は、受付部110と事前演算部120と逆元演算部130と出力部140とを実現するハードウェアである。
 処理回路109は、専用のハードウェアであってもよいし、メモリ102に格納されるプログラムを実行するプロセッサ101であってもよい。
 処理回路109が専用のハードウェアである場合、処理回路109は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 ASICは、Application Specific Integrated Circuitの略称である。
 FPGAは、Field Programmable Gate Arrayの略称である。
 逆元演算装置100は、処理回路109を代替する複数の処理回路を備えてもよい。
 処理回路109において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、逆元演算装置100の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 実施の形態2.
 cyclotomic subgroupの元aの逆元a-1を算出する形態について、主に実施の形態1と異なる点を図8から図14に基づいて説明する。
***構成の説明***
 図8に基づいて、逆元演算装置200の構成を説明する。
 逆元演算装置200は、実施の形態1における逆元演算装置100に相当する。
 逆元演算装置200は、プロセッサ201とメモリ202と補助記憶装置203と通信装置204と入出力インタフェース205といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ201は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ201はCPUである。
 メモリ202は揮発性または不揮発性の記憶装置である。メモリ202は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ202はRAMである。メモリ202に記憶されたデータは必要に応じて補助記憶装置203に保存される。
 補助記憶装置203は不揮発性の記憶装置である。例えば、補助記憶装置203は、ROM、HDDまたはフラッシュメモリである。補助記憶装置203に記憶されたデータは必要に応じてメモリ202にロードされる。
 通信装置204はレシーバ及びトランスミッタである。例えば、通信装置204は通信チップまたはNICである。
 入出力インタフェース205は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース205はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
 逆元演算装置200は、受付部210と事前演算部220と逆元演算部230と出力部240といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置203には、受付部210と事前演算部220と逆元演算部230と出力部240としてコンピュータを機能させるための逆元演算プログラムが記憶されている。逆元演算プログラムは、メモリ202にロードされて、プロセッサ201によって実行される。
 補助記憶装置203には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ202にロードされて、プロセッサ201によって実行される。
 プロセッサ201は、OSを実行しながら、逆元演算プログラムを実行する。
 逆元演算プログラムの入出力データは記憶部290に記憶される。
 メモリ202は記憶部290として機能する。但し、補助記憶装置203、プロセッサ201内のレジスタおよびプロセッサ201内のキャッシュメモリなどの記憶装置が、メモリ202の代わりに、又は、メモリ202と共に、記憶部290として機能してもよい。
 逆元演算装置200は、プロセッサ201を代替する複数のプロセッサを備えてもよい。
 逆元演算プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図9に基づいて、事前演算部220の構成を説明する。
 事前演算部220は、第1二乗算部221と乗算部222と第1分数倍算部223と演算部224と第2二乗算部225と第2分数倍算部226といった要素を備える。これらの要素の機能を後述する。
 図10に基づいて、逆元演算部230の構成を説明する。
 逆元演算部230は、第1演算部231と第2演算部232と第3演算部233といった要素を備える。これらの要素の機能を後述する。
***前提の説明***
 逆元演算装置200による逆元算の前提は、実施の形態1における前提と同じである。
***動作の説明***
 逆元演算装置200の動作の手順は逆元演算方法に相当する。また、逆元演算装置200の動作の手順は逆元演算プログラムによる処理の手順に相当する。
 図11に基づいて、逆元演算方法を説明する。
 ステップS210において、受付部210は、元aを受け付ける。
 a=a+aw+a
 ステップS210は、実施の形態1におけるステップS110と同じである。
 ステップS220において、事前演算部220は、aとaとaを用いて、tとtとtとtとtを算出する。
 tは、a の計算結果である。
 tは、a の計算結果である。
 tは、aの計算結果である。
 tは、aの計算結果である。
 tは、a +a +a /4+2a-a-aの計算結果に等しい。
 tは、a /4の計算結果に等しい。
 ステップS220の詳細を後述する。
 ステップS230において、逆元演算部230は、tとtとtとtとtとtを用いて、bとbとbを算出する。
 bは、a -avの計算結果に等しい。
 bは、a v-aの計算結果に等しい。
 bは、a -aの計算結果に等しい。
 ステップS230の詳細を後述する。
 ステップS240において、出力部140は、逆元a-1を出力する。
 a-1=(a -av)+(a v-a)w+(a -a)w
 ステップS240は、実施の形態1におけるステップS140と同じである。
 図12に基づいて、事前演算処理(S220)を説明する。
 ステップS221において、第1二乗算部221は、aを用いて二乗算を行う。具体的には、第1二乗算部221はa を計算する。これにより、tが算出される。
 tは、a の計算結果であり、以下のように表される。
 t←a
 ステップS222において、第1二乗算部221は、aを用いて二乗算を行う。具体的には、第1二乗算部221はa を計算する。これにより、tが算出される。
 tは、a の計算結果であり、以下のように表される。
 t←a
 ステップS223において、乗算部222は、aとaを用いて乗算を行う。具体的には、乗算部222はaを計算する。これにより、tが算出される。
 tは、aの計算結果であり、以下のように表される。
 t←a
 ステップS224において、乗算部222は、aとaを用いて乗算を行う。具体的には、乗算部222はaを計算する。これにより、tが算出される。
 tは、aの計算結果であり、以下のように表される。
 t←a
 ステップS225において、第1分数倍算部223は、aを用いて1/2倍算を行う。具体的には、第1分数倍算部223はa/2を計算する。これにより、tが算出される。
 tは、a/2の計算結果であり、以下のように表される。
 t←a/2
 ステップS226において、演算部224は、aとaとtを用いて加算及び減算を行う。具体的には、演算部224はa+a-tを計算する。これにより、tが算出される。
 tは、a+a-tの計算結果であり、以下のように表される。
 t←a+a-t=a+a-a/2
 ステップS227において、第2二乗算部225は、tを用いて二乗算を行う。具体的には、第2二乗算部225はt を計算する。これにより、tが算出される。
 tは、t の計算結果であり、以下のように表される。
 t←t =(a+a-a/2)
  =a +a-a/2+a+a -a/2-a/2-a/2+a /4
  =a +a +a /4+2a-a-a
 ステップS228において、第2分数倍算部226は、tを用いて1/4倍算を行う。具体的には、第2分数倍算部226はt/4を計算する。これにより、tが算出される。
 tは、t/4の計算結果であり、以下のように表される。
 t←t/4=a /4
 図13に基づいて、逆元演算処理(S230)を説明する。
 ステップS231において、第1演算部231は、tとtを用いて減算を行う。
 具体的には、第1演算部131は、tにvを掛けてtvを算出する。そして、第1演算部131はt-tvを計算する。
 これにより、bが算出される。
 bは、a -avの計算結果であり、以下のように表される。
 b←t-tv=a -a
 ステップS232において、第2演算部232は、tとtを用いて減算を行う。
 具体的には、第2演算部132は、tにvを掛けてtvを算出する。そして、第2演算部132はtv-tを計算する。
 これにより、bが算出される。
 bは、tv-tの計算結果であり、以下のように表される。
 b←tv-t=a v-a
 ステップS233において、第3演算部233は、tとtとtとtとtを用いて加算および減算を行う。具体的には、第3演算部233はt-t-t-2t+tを計算する。これにより、bが算出される。
 bは、t-t-t-2t+tの計算結果であり、以下のように表される。
 b←t-t-t-2t+t
  =a +a +a /4+2a-a-a-a -a /4-2a+a
  =a -a
***実施の形態2の効果***
 実施の形態2により、逆元a-1を算出するための有限体上の乗算を3回から2回に減らすことができる。つまり、逆元算の高速化が可能である。その結果、ペアリング暗号の効率化が可能となる。
***実施の形態2の補足***
 図14に基づいて、逆元演算装置200のハードウェア構成を説明する。
 逆元演算装置200は処理回路209を備える。
 処理回路209は、受付部210と事前演算部220と逆元演算部230と出力部240とを実現するハードウェアである。
 処理回路209は、専用のハードウェアであってもよいし、メモリ202に格納されるプログラムを実行するプロセッサ201であってもよい。
 処理回路209が専用のハードウェアである場合、処理回路209は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 逆元演算装置200は、処理回路209を代替する複数の処理回路を備えてもよい。
 処理回路209において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、逆元演算装置200の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
***実施の形態の補足***
 各実施の形態は、好ましい形態の例示であり、本開示の技術的範囲を制限することを意図するものではない。各実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
 逆元演算装置(100、200)の要素である「部」は、「処理」または「工程」と読み替えてもよい。
 100 逆元演算装置、101 プロセッサ、102 メモリ、103 補助記憶装置、104 通信装置、105 入出力インタフェース、109 処理回路、110 受付部、120 事前演算部、121 二乗算部、122 第1乗算部、123 加算部、124 減算部、125 第2乗算部、130 逆元演算部、131 第1演算部、132 第2演算部、133 第3演算部、140 出力部、190 記憶部、200 逆元演算装置、201 プロセッサ、202 メモリ、203 補助記憶装置、204 通信装置、205 入出力インタフェース、209 処理回路、210 受付部、220 事前演算部、221 第1二乗算部、222 乗算部、223 第1分数倍算部、224 演算部、225 第2二乗算部、226 第2分数倍算部、230 逆元演算部、231 第1演算部、232 第2演算部、233 第3演算部、240 出力部、290 記憶部。

Claims (14)

  1.  元aの逆元a-1を算出する逆元演算装置であり、
     前記元aは、a=a+aw+aで表され、
     前記逆元a-1は、a-1=(a -av)+(a v-a)w+(a -a)wで表され、
     前記逆元演算装置は、
     前記元aを受け付ける受付部と、
     aとaとaを用いて、a の計算結果であるtと、a の計算結果であるtと、aの計算結果であるtと、aの計算結果であるtと、(a+a)(a-a)の計算結果に等しいtと、を算出する事前演算部と、
     tとtとtとtとtを用いて、a -avの計算結果に等しいbと、a v-aの計算結果に等しいbと、a -aの計算結果に等しいbと、を算出する逆元演算部と、
     bとbとbを用いて前記逆元a-1を生成して出力する出力部と、
    を備える逆元演算装置。
  2.  前記事前演算部は、
     aを用いて二乗算を行ってa の計算結果であるtを算出し、aを用いて二乗算を行ってa の計算結果であるtを算出する二乗算部と、
     aとaを用いて乗算を行ってaの計算結果であるtを算出し、aとaを用いて乗算を行ってaの計算結果であるtを算出する第1乗算部と、
     aとaを用いて加算を行ってa+aの計算結果であるtを算出する加算部と、
     aとaを用いて減算を行ってa-aの計算結果であるtを算出する減算部と、
     tとtを用いて乗算を行って(a+a)(a-a)の計算結果に等しいtを算出する第2乗算部と、を備える
    請求項1に記載の逆元演算装置。
  3.  前記第2乗算部は、tを計算することによってtを算出する
    請求項2に記載の逆元演算装置。
  4.  前記逆元演算部は、
     tとtを用いて減算を行ってa -avの計算結果に等しいbを算出する第1演算部と、
     tとtを用いて減算を行ってa v-aの計算結果に等しいbを算出する第2演算部と、
     tとtとtを用いて加算および減算を行ってa -aの計算結果に等しいbを算出する第3演算部と、を備える
    請求項1から請求項3のいずれか1項に記載の逆元演算装置。
  5.  前記第1演算部は、t-tvを計算することによってbを算出し、
     前記第2演算部は、tv-tを計算することによってbを算出し、
     前記第3演算部は、t-t+tを計算することによってbを算出する
    請求項4に記載の逆元演算装置。
  6.  元aの逆元a-1を算出する逆元演算方法であり、
     前記元aは、a=a+aw+aで表され、
     前記逆元a-1は、a-1=(a -av)+(a v-a)w+(a -a)wで表され、
     受付部が、前記元aを受け付け、
     事前演算部が、aとaとaを用いて、a の計算結果であるtと、a の計算結果であるtと、aの計算結果であるtと、aの計算結果であるtと、(a+a)(a-a)の計算結果に等しいtと、を算出し、
     逆元演算部が、tとtとtとtとtを用いて、a -avの計算結果に等しいbと、a v-aの計算結果に等しいbと、a -aの計算結果に等しいbと、を算出し、
     出力部が、bとbとbを用いて前記逆元a-1を生成して出力する
    逆元演算方法。
  7.  元aの逆元a-1を算出するための逆元演算プログラムであり、
     前記元aは、a=a+aw+aで表され、
     前記逆元a-1は、a-1=(a -av)+(a v-a)w+(a -a)wで表され、
     前記逆元演算プログラムは、
     前記元aを受け付ける受付処理と、
     aとaとaを用いて、a の計算結果であるtと、a の計算結果であるtと、aの計算結果であるtと、aの計算結果であるtと、(a+a)(a-a)の計算結果に等しいtと、を算出する事前演算処理と、
     tとtとtとtとtを用いて、a -avの計算結果に等しいbと、a v-aの計算結果に等しいbと、a -aの計算結果に等しいbと、を算出する逆元演算処理と、
     bとbとbを用いて前記逆元a-1を生成して出力する出力処理と、
    をコンピュータに実行させるための逆元演算プログラム。
  8.  元aの逆元a-1を算出する逆元演算装置であり、
     前記元aは、a=a+aw+aで表され、
     前記逆元a-1は、a-1=(a -av)+(a v-a)w+(a -a)wで表され、
     前記逆元演算装置は、
     前記元aを受け付ける受付部と、
     aとaとaを用いて、a の計算結果であるtと、a の計算結果であるtと、aの計算結果であるtと、aの計算結果であるtと、a +a +a /4+2a-a-aの計算結果に等しいtと、a /4の計算結果に等しいtを算出する事前演算部と、
     tとtとtとtとtとtを用いて、a -avの計算結果に等しいbと、a v-aの計算結果に等しいbと、a -aの計算結果に等しいbと、を算出する逆元演算部と、
     bとbとbを用いて前記逆元a-1を生成して出力する出力部と、
    を備える逆元演算装置。
  9.  前記事前演算部は、
     aを用いて二乗算を行ってa の計算結果であるtを算出し、aを用いて二乗算を行ってa の計算結果であるtを算出する第1二乗算部と、
     aとaを用いて乗算を行ってaの計算結果であるtを算出し、aとaを用いて乗算を行ってaの計算結果であるtを算出する乗算部と、
     aを用いて1/2倍算を行ってa/2の計算結果であるtを算出する第1分数倍算部と、
     aとaとtを用いて加算および減算を行ってa+a-a/2の計算結果に等しいtを算出する演算部と、
     tを用いて二乗算を行ってa +a +a /4+2a-a-aの計算結果に等しいtを算出する第2二乗算部と、
     tを用いて1/4倍算を行ってa /4の計算結果に等しいtを算出する第2分数倍算部と、を備える
    請求項8に記載の逆元演算装置。
  10.  前記演算部は、a+a-tを計算することによってtを算出し、
     前記第2二乗算部は、t を計算することによってtを算出し、
     前記第2分数倍算部は、t/4を計算することによってtを算出する
    請求項9に記載の逆元演算装置。
  11.  前記逆元演算部は、
     tとtを用いて減算を行ってa -avの計算結果に等しいbを算出する第1演算部と、
     tとtを用いて減算を行ってa v-aの計算結果に等しいbを算出する第2演算部と、
     tとtとtとtとtを用いて加算および減算を行ってa -aの計算結果に等しいbを算出する第3演算部と、を備える
    請求項8から請求項10のいずれか1項に記載の逆元演算装置。
  12.  前記第1演算部は、t-tvを計算することによってbを算出し、
     前記第2演算部は、tv-tを計算することによってbを算出し、
     前記第3演算部は、t-t-t-2t-tを計算することによってbを算出する
    請求項11に記載の逆元演算装置。
  13.  元aの逆元a-1を算出する逆元演算方法であり、
     前記元aは、a=a+aw+aで表され、
     前記逆元a-1は、a-1=(a -av)+(a v-a)w+(a -a)wで表され、
     受付部が、前記元aを受け付け、
     事前演算部が、aとaとaを用いて、a の計算結果であるtと、a の計算結果であるtと、aの計算結果であるtと、aの計算結果であるtと、a +a +a /4+2a-a-aの計算結果に等しいtと、a /4の計算結果に等しいtを算出し、
     逆元演算部が、tとtとtとtとtとtを用いて、a -avの計算結果に等しいbと、a v-aの計算結果に等しいbと、a -aの計算結果に等しいbと、を算出し、
     出力部が、bとbとbを用いて前記逆元a-1を生成して出力する
    逆元演算方法。
  14.  元aの逆元a-1を算出するための逆元演算プログラムであり、
     前記元aは、a=a+aw+aで表され、
     前記逆元a-1は、a-1=(a -av)+(a v-a)w+(a -a)wで表され、
     前記逆元演算プログラムは、
     前記元aを受け付ける受付処理と、
     aとaとaを用いて、a の計算結果であるtと、a の計算結果であるtと、aの計算結果であるtと、aの計算結果であるtと、a +a +a /4+2a-a-aの計算結果に等しいtと、a /4の計算結果に等しいtを算出する事前演算処理と、
     tとtとtとtとtとtを用いて、a -avの計算結果に等しいbと、a v-aの計算結果に等しいbと、a -aの計算結果に等しいbと、を算出する逆元演算処理と、
     bとbとbを用いて前記逆元a-1を生成して出力する出力処理と、
    をコンピュータに実行させるための逆元演算プログラム。
PCT/JP2020/026860 2020-07-09 2020-07-09 逆元演算装置、逆元演算方法および逆元演算プログラム Ceased WO2022009389A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2022534595A JP7158629B2 (ja) 2020-07-09 2020-07-09 逆元演算装置、逆元演算方法および逆元演算プログラム
DE112020007193.6T DE112020007193B4 (de) 2020-07-09 2020-07-09 Inverses-Element-Operationsvorrichtung, Inverses-Element-Operationsverfahren und Inverses-Element-Operationsprogramm
CN202080102532.XA CN115735241A (zh) 2020-07-09 2020-07-09 逆元运算装置、逆元运算方法以及逆元运算程序
PCT/JP2020/026860 WO2022009389A1 (ja) 2020-07-09 2020-07-09 逆元演算装置、逆元演算方法および逆元演算プログラム
US17/987,977 US20230076400A1 (en) 2020-07-09 2022-11-16 Inverse element operation apparatus and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/026860 WO2022009389A1 (ja) 2020-07-09 2020-07-09 逆元演算装置、逆元演算方法および逆元演算プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/987,977 Continuation US20230076400A1 (en) 2020-07-09 2022-11-16 Inverse element operation apparatus and computer readable medium

Publications (1)

Publication Number Publication Date
WO2022009389A1 true WO2022009389A1 (ja) 2022-01-13

Family

ID=79552327

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/026860 Ceased WO2022009389A1 (ja) 2020-07-09 2020-07-09 逆元演算装置、逆元演算方法および逆元演算プログラム

Country Status (5)

Country Link
US (1) US20230076400A1 (ja)
JP (1) JP7158629B2 (ja)
CN (1) CN115735241A (ja)
DE (1) DE112020007193B4 (ja)
WO (1) WO2022009389A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20250045878A (ko) * 2023-09-26 2025-04-02 삼성전자주식회사 교집합 연산을 위한 장치 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ABDOU TOURE MAHAMADOU, SAMAKE KARIM, TRAORE SINALY: "Optimal Ate Pairing on Elliptic Curves with Embedding Degree 21", INTERNATIONAL JOURNAL OF SCIENCE AND RESEARCH, 1 November 2019 (2019-11-01), XP055894418, Retrieved from the Internet <URL:https://www.ijsr.net/archive/v8i11/ART20203004.pdf> [retrieved on 20220222], DOI: 10.21275/ART20203004 *
EMMANUEL FOUOTSA ; NADIA EL MRABET ; AMINATOU PECHA: "Computing Optimal Ate Pairings on Elliptic Curves with Embedding Degree 9,15 and 27", IACR, INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH, vol. 20181004:125302, 4 October 2018 (2018-10-04), International Association for Cryptologic Research , pages 1 - 27, XP061026322 *

Also Published As

Publication number Publication date
JPWO2022009389A1 (ja) 2022-01-13
CN115735241A (zh) 2023-03-03
DE112020007193T5 (de) 2023-04-13
DE112020007193B4 (de) 2024-08-22
US20230076400A1 (en) 2023-03-09
JP7158629B2 (ja) 2022-10-21

Similar Documents

Publication Publication Date Title
Sousa et al. Combining residue arithmetic to design efficient cryptographic circuits and systems
EP1993086B1 (en) Elliptical curve encryption parameter generation device, elliptical curve encryption calculation device, elliptical curve encryption parameter generation program, and elliptical curve encryption calculation program
CN101061526B (zh) 密码处理运算装置
US8619977B2 (en) Representation change of a point on an elliptic curve
Renes et al. qDSA: small and secure digital signatures with curve-based Diffie–Hellman key pairs
CN101005350B (zh) 加密处理设备和加密处理方法
US8300810B2 (en) Method for securely encrypting or decrypting a message
Parrilla et al. Elliptic curve cryptography hardware accelerator for high-performance secure servers
Granger et al. A comparison of CEILIDH and XTR
Chuengsatiansup et al. PandA: Pairings and arithmetic
Azarderakhsh et al. EdSIDH: supersingular isogeny Diffie-Hellman key exchange on Edwards curves
CN113467752B (zh) 用于隐私计算的除法运算装置、数据处理系统及方法
KR20070057882A (ko) 암호 처리 연산 방법, 및 암호 처리 장치, 및 컴퓨터프로그램
US8374342B2 (en) Scalar multiplier and scalar multiplication program
Fouotsa et al. x-superoptimal pairings on elliptic curves with odd prime embedding degrees: BW 13-P 310 and BW 19-P 286
CN101371285B (zh) 加密处理装置、加密处理方法
JP7158629B2 (ja) 逆元演算装置、逆元演算方法および逆元演算プログラム
JP3820909B2 (ja) 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
Sakamoto et al. High-throughput bilinear pairing processor for server-side FPGA applications
Kalaiarasi et al. A parallel elliptic curve crypto-processor architecture with reduced clock cycle for FPGA platforms: M. Kalaiarasi et al.
Chung et al. Fast, uniform scalar multiplication for genus 2 Jacobians with fast Kummers
Li et al. FPGA implementations of elliptic curve cryptography and Tate pairing over a binary field
WO2025024090A1 (en) Side channel attack resistant cryptographic accelerator
Clancy Analysis of FPGA-based hyperelliptic curve cryptosystems
Huynh et al. An efficient cryptographic accelerators for IoT system based on elliptic curve digital signature

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20944012

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022534595

Country of ref document: JP

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 20944012

Country of ref document: EP

Kind code of ref document: A1