KR100564599B1 - Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code - Google Patents
Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code Download PDFInfo
- Publication number
- KR100564599B1 KR100564599B1 KR1020030096216A KR20030096216A KR100564599B1 KR 100564599 B1 KR100564599 B1 KR 100564599B1 KR 1020030096216 A KR1020030096216 A KR 1020030096216A KR 20030096216 A KR20030096216 A KR 20030096216A KR 100564599 B1 KR100564599 B1 KR 100564599B1
- Authority
- KR
- South Korea
- Prior art keywords
- random number
- inverse
- bits
- input
- computer
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/726—Inversion; Reciprocal calculation; Division of elements of a finite field
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/728—Methods 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 using Montgomery reduction
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체이다. 상기 역원 계산 회로는 제1난수 및 제2난수를 발생하는 난수 발생기; 및 유한체의 제1원소를 표현하는 다수개의 제1비트들을 제1입력으로 수신하고 유한체의 제2원소를 표현하는 다수개의 제2비트들을 제2입력으로 수신하고, 상기 제1난수 및 상기 제2난수에 응답하여 상기 제1원소의 역원을 표현하는 다수개의 제3비트들을 출력하는 인버터를 구비한다. 상기 제1난수는 DPA를 방지하기 위한 난수이고, 상기 제2난수는 시간 공격을 방지하기 위한 난수이다. The present invention is a computer-readable recording medium having recorded thereon an inverse calculation circuit, an inverse calculation method, and a program for executing the inversion calculation method. The inverse calculating circuit includes a random number generator for generating a first random number and a second random number; And receiving a plurality of first bits representing a first element of a finite body as a first input, and receiving a plurality of second bits representing a second element of a finite body as a second input, wherein the first random number and the And an inverter for outputting a plurality of third bits representing the inverse of the first element in response to a second random number. The first random number is a random number for preventing DPA, and the second random number is a random number for preventing a time attack.
몽고메리 역원 알고리즘, 역원Montgomery inverse algorithm, inverse
Description
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.The detailed description of each drawing is provided in order to provide a thorough understanding of the drawings cited in the detailed description of the invention.
도 1은 본 발명의 실시예에 따른 역원계산 회로의 블락도를 나타낸다. 1 shows a block diagram of an inverse calculating circuit according to an embodiment of the present invention.
도 2는 도 1에 도시된 인버터의 회로도를 나타낸다. FIG. 2 shows a circuit diagram of the inverter shown in FIG. 1.
본 발명은 암호 응용 회로에 관한 것으로, 보다 상세하게는 시간공격 (timing attack)과 차동전력해석(DPA: Differential Power Analysis) 공격에 강한 역원 계산회로, 역원계산 방법 및 상기 역원계산 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to a cryptographic application circuit, and more particularly, to the inverse calculation circuit, the inverse calculation method, and the inverse calculation method, which are resistant to a timing attack and a differential power analysis (DPA) attack. A computer readable recording medium having recorded a program.
암호(cryptography)는 원래 국가의 비밀을 보안할 목적으로 군사·외교분야에서 사용되었다. 그리고 금융기관들은 전자자금이동(Electronic Funds Transfer) 을 위하여 암호를 사용했다. 따라서 암호는 경제, 금융분야에서 널리 사용된 이래, 동일성의 인증(Authentication), 암호화 키에 대한 관리(Key Management), 디지탈 서명(Digital Signature), 및 신원확인(Identity Verification) 등 광범위하게 사용되고 있다.Cryptography was originally used in the military and diplomatic fields for the purpose of securing the secrets of the state. And financial institutions used cryptography for Electronic Funds Transfer. Therefore, since cryptography has been widely used in the economic and financial fields, it has been widely used, such as authentication of identity, key management of digital keys, digital signature, and identity verification.
암호해독은 해독키의 관리소홀, 비밀번호의 예측가능성, 또는 통신망에서 키보드 입력에 대한 모니터링 등으로도 가능하다. 여기서 암호해독은 암호해독행위자가 암호문만을 가지고 평문에 대한 해독을 감행하는 방법(소위 무작정공격; Bruteforce Attack)이 아니라 평문의 암호화에 사용된 알고리즘의 종류, 사용된 운영체제 등 시스템에 대한 모든 정보를 알고있는 상태에서 암호화에 사용된 키만 모르는 경우에 그 키를 찾아내어 암호문을 평문으로 해독하려는 행위를 지칭한다.Decryption can also be done by neglecting decryption keys, predictability of passwords, or monitoring of keyboard input on the network. Here, decryption is not a method in which the decryption agent decrypts plain text using only the ciphertext (so-called bruteforce attack), but knows all the information about the system such as the type of algorithm used for encryption of the plaintext and the operating system used. If you do not know only the key used for encryption, it refers to the act of finding the key and decrypting the ciphertext into plain text.
암호를 해독하는 기술로는 단순 암호문 공격(Ciphertext Only Attack), 이미 알고 있는 평문공격(Known Plaintext Attack), 선택 평문공격(Chosen Plaintext Attack), 최적 선택 평문 공격(Adaptively Chosen Plaintext Attack), 시간 공격 (timing attack) 및 DPA(또는 전력분석 공격이라고도 한다.) 등이 있다.Decryption techniques include Ciphertext Only Attack, Known Plaintext Attack, Chosen Plaintext Attack, Adaptive Chosen Plaintext Attack, and Time Attack. timing attack) and DPA (also known as power analysis attack).
시간 공격은 암호 알고리즘의 연산 수행시간 정보를 이용하여 특정한 비트의 값이 0인지 또는 1인지를 판단하고, 이에 따라 암호를 해독하는 방법을 말한다. 그리고 차동전력해석 공격은 입력 비트값에 따라 암호 알고리즘이 사용하는 전력량을 분석하고, 이에 따라 비밀키의 비트값을 알아냄으로서 암호를 해독하는 방법을 말한다.Time attack refers to a method of determining whether a value of a specific bit is 0 or 1 by using operation execution time information of an encryption algorithm, and thus decrypting a cipher. The differential power analysis attack analyzes the amount of power used by the encryption algorithm according to the input bit value, and accordingly, refers to a method of decrypting the password by finding the bit value of the secret key.
이진 유한체(binary finite field, GF(2n))에서 정의되는 타원곡선 암호법 (elliptic curve cryptography)은 아핀 좌표계(affine coordinate)를 이용한 암호법과 사영 좌표계(projective coordinate)를 이용한 암호법으로 나뉜다. Elliptic curve cryptography, defined in the binary finite field (GF (2 n )), is divided into cryptography using affine coordinates and cryptography using projective coordinates.
아핀 좌표계는 타원곡선 상의 좌표를 (x, y)로 표현하고, 사영 좌표계는 타원곡선 상의 좌표를 (X, Y, Z)로 표현한다. 따라서 아핀 좌표계의 타원곡선 상의 점과 사영 좌표계의 타원곡선 상의 점의 관계는 수학식 1로 표현된다.The affine coordinate system expresses the coordinates on the elliptic curve as (x, y), and the projective coordinate system expresses the coordinates on the elliptic curve as (X, Y, Z). Therefore, the relationship between the point on the elliptic curve of the affine coordinate system and the point on the elliptic curve of the projective coordinate system is expressed by
타원곡선에서의 연산은 덧셈(addition) 연산과 더블링(doubling) 연산이 있다. 덧셈 연산은 더하는 두 점들이 서로 다를 때 사용되고, 더블링 연산은 더하는 두 점들이 서로 같은 때 사용된다. Operations on elliptic curves include addition and doubling operations. The addition operation is used when the two points to add are different, and the doubling operation is used when the two points to add are the same.
이진 유한체(GF(2n))에서 정의된 아핀 좌표계에서의 연산식은 수학식 2와 같다.The equation in the affine coordinate system defined in the binary finite field GF (2 n ) is shown in
수학식 2에서 보는 바와 같이 유한체(GF(2n))에서 정의된 타원곡선에서의 덧셈 연산과 더블링 연산은 유한체(GF(2n))들의 연산(즉, 덧셈, 제곱, 곱셈, 역원계산)으로 이루어진다. 각 타원곡선에서의 덧셈 연산과 더블링 연산에 필요한 연산의 수와 종류는 표 1과 같다.Add operation and doubling operations on the elliptic curve defined on the finite field (GF (2 n)), as shown in equation (2) is a finite field operation of the (GF (2 n)) (i.e., add, square, multiplication and inverse Calculation). Table 1 shows the number and types of operations required for addition and doubling operations in each elliptic curve.
여기서 I는 유한체(GF(2n))의 역원계산을 나타내고, M은 유한체(GF(2n))의 곱셈을 나타내고, S는 유한체(GF(2n))의 제곱을 나타낸다. 유한체(GF(2n))의 덧셈은 비트끼리의 배타논리합(bitwise XOR)으로 구현될 수 있으므로, 유한체(GF(2n))의 덧셈을 구현하는 것과 유한체(GF(2n))의 덧셈의 연산속도는 무시할 수 있으므로, 유한체(GF(2n))의 덧셈은 표 1로부터 제외했다. Where I denotes the inverse calculation of the finite field (GF (2 n)), M denotes a multiplication in the finite field (GF (2 n)), S denotes the power of the finite field (GF (2 n)). Finite field (GF (2 n)) addition is may be implemented by an exclusive-OR (bitwise XOR) between the bit and the finite field (GF (2 n)) as finite field (GF (2 n) to implement the addition of the Since the computation speed of the addition of) is negligible, the addition of the finite field GF (2 n ) is excluded from Table 1.
유한체(GF(2n))의 역원계산은 유한체(GF(2n))의 곱셈과 유한체(GF(2n))의 제 곱에 비하여 타원곡선 암호법에서 많은 비중을 차지하는 연산이다. 따라서 타원곡선 암호법에서 역원계산을 필요로하지 않는 사영 좌표계서의 연산이 사용되는 경우도 있다. Finite field calculate inverses of (GF (2 n)) is a finite field is a calculation takes up a large share of the elliptic curve cryptography, compared to the product of the multiplier and the finite field (GF (2 n)) of the (GF (2 n)) . Therefore, in elliptic curve cryptography, calculations of projective coordinate systems are sometimes used that do not require inverse calculation.
그런데 아핀 좌표계를 이용한 타원곡선에서의 덧셈 연산과 더블링 연산이 부채널 공격(side channel attack)에 취약하게 된다면, 타원곡선 암호법의 안전성은 감소한다. However, if the addition and doubling operations in the elliptic curve using the affine coordinate system are vulnerable to side channel attack, the safety of the elliptic curve cryptography is reduced.
따라서 본 발명이 이루고자 하는 기술적인 과제는 시간 공격과 차동전력해석공격에 강한 역원계산회로를 제공하는 것이다.Therefore, the technical problem to be achieved by the present invention is to provide a reverse circuit calculation circuit resistant to time attack and differential power analysis attack.
상기 기술적 과제를 달성하기 위한 역원 계산 회로는 제1난수 및 제2난수를 발생하는 난수 발생기; 및 유한체의 제1원소를 표현하는 다수개의 제1비트들을 제1입력으로 수신하고 유한체의 제2원소를 표현하는 다수개의 제2비트들을 제2입력으로 수신하고, 상기 제1난수 및 상기 제2난수에 응답하여 상기 제1원소의 역원을 표현하는 다수개의 제3비트들을 출력하는 인버터를 구비한다.The reverse source calculation circuit for achieving the technical problem comprises a random number generator for generating a first random number and a second random number; And receiving a plurality of first bits representing a first element of a finite body as a first input, and receiving a plurality of second bits representing a second element of a finite body as a second input, wherein the first random number and the And an inverter for outputting a plurality of third bits representing the inverse of the first element in response to a second random number.
상기 제1난수는 DPA를 방지하기 위한 난수이고, 상기 제2난수는 시간 공격을 방지하기 위한 난수이다.The first random number is a random number for preventing DPA, and the second random number is a random number for preventing a time attack.
상기 기술적 과제를 달성하기 위한 역원 계산 방법은 제1난수 및 제2난수를 발생하는 단계; 및 유한체의 제1원소를 표현하는 다수개의 제1비트들을 제1입력으로 수신하고 유한체의 제2원소를 표현하는 다수개의 제2비트들을 제2입력으로 수신 하고, 상기 제1난수 및 상기 제2난수에 응답하여 상기 제1원소의 역원을 표현하는 다수개의 제3비트들을 출력하는 단계를 구비한다.Inverter calculation method for achieving the technical problem comprises the steps of generating a first random number and a second random number; And receiving a plurality of first bits representing a first element of a finite body as a first input and receiving a plurality of second bits representing a second element of a finite body as a second input, wherein the first random number and the And outputting a plurality of third bits representing the inverse of the first element in response to a second random number.
상기 기술적 과제를 달성하기 위한 컴퓨터로 읽을 수 있는 기록매체는 제1난수 및 제2난수를 발생하는 단계; 및 유한체의 제1원소를 표현하는 다수개의 제1비트들을 제1입력으로 수신하고 유한체의 제2원소를 표현하는 다수개의 제2비트들을 제2입력으로 수신하고, 상기 제1난수 및 상기 제2난수에 응답하여 상기 제1원소의 역원을 표현하는 다수개의 제3비트들을 출력하는 단계를 실행시키기 위한 프로그램을 기록한다. The computer-readable recording medium for achieving the technical problem is a step of generating a first random number and a second random number; And receiving a plurality of first bits representing a first element of a finite body as a first input, and receiving a plurality of second bits representing a second element of a finite body as a second input, wherein the first random number and the A program for executing the step of outputting a plurality of third bits representing the inverse of the first element in response to a second random number is recorded.
상기 제1난수는 상기 제2난수보다 늦게 발생되는 것이 바람직하다. 상기 제1난수는 2비트로 구성되고, 상기 제2난수는 2n보다 크고 3n보다 작은 값을 갖고, 상기 n은 유한체의 차수이다.Preferably, the first random number is generated later than the second random number. The first random number is composed of 2 bits, the second random number has a value larger than 2n and smaller than 3n, and n is an order of finite field.
상기 다수개의 제1비트들과 상기 다수개의 제3비트들이 n비트로 구성되는 경우, 상기 다수개의 제2비트들은 (n+1)비트로 구성되는 것이 바람직하다. When the plurality of first bits and the plurality of third bits are composed of n bits, the plurality of second bits may be configured of (n + 1) bits.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.
The 9th IEEE Internal Conference on Electronics, Circuit and System에서 "Architectures for unified field inversion with application in elliptic curve cryptography"란 제목으로 E. Savas, C. K. Koc에 의하여 제시된 유한체(GF(2n))에서 몽고메리 역원 알고리즘(Montgomery inverse algorithm)은 다음과 같다.Montgomery inverse algorithm in the finite body (GF (2 n )) presented by E. Savas, CK Koc, entitled "Architectures for unified field inversion with application in elliptic curve cryptography" at The 9th IEEE Internal Conference on Electronics, Circuit and System. Montgomery inverse algorithm is as follows.
Input: a(x) and p(x), where deg(a(x)) < deg(p(x)) Input : a (x) and p (x), where deg (a (x)) <deg (p (x))
Output: r(x) and k, where r = a(x)-1xk (mod p(x)) Output : r (x) and k, where r = a (x) -1 x k (mod p (x))
and deg(a(x)) ≤ k ≤ deg(p(x)) + deg(a(x)) + 1 and deg (a (x)) ≤ k ≤ deg (p (x)) + deg (a (x)) + 1
1: u(x) := p(x), v(x):= a(x), r(x):= 0, and s(x):= 11: u (x): = p (x), v (x): = a (x), r (x): = 0, and s (x): = 1
2: k := 02: k: = 0
3: while (v(x) != 0)3: while (v (x)! = 0)
4: if u(0) = 0 then u(x) := u(x)/x, s(x) := x·s(x)4: if u (0) = 0 then u (x): = u (x) / x, s (x): = xs (x)
5: else if v(0) = 0 then v(x) := v(x)/x, r(x) := x·r(x) 5: else if v (0) = 0 then v (x): = v (x) / x, r (x): = xr (x)
6: else if deg(u(x)) > deg(v(x)) then6: else if deg (u (x))> deg (v (x)) then
u(x) := (u(x) + v(x)) / xu (x): = (u (x) + v (x)) / x
r(x) := r(x) + s(x)r (x): = r (x) + s (x)
s(x) := xs(x)s (x): = xs (x)
7: else v(x) := (v(x) + u(x)) / x7: else v (x): = (v (x) + u (x)) / x
s(x) := s(x) + r(x)s (x): = s (x) + r (x)
r(x) := xr(x)r (x): = xr (x)
8: k := k + 18: k: = k + 1
9: if deg(r(x)) = deg(p(x)) then r(x) := r(x) + p(x)9: if deg (r (x)) = deg (p (x)) then r (x): = r (x) + p (x)
10: return r(x) and k10: return r (x) and k
여기서 a(x)는 유한체(GF(2n))의 원소이고 (n-1)차 다항식이다. 또한, p(x)는 모듈러 연산을 위한 n차 다항식이다. r(x)는 a(x)의 역원이고 (n-1)차 다항식이다. 여기서 a(x)의 차수(deg(a(x)))는 p(x)의 차수(deg(p(x)))보다 작다. 상기 몽고메리 역원 알고리즘은 유한체 (GF(2n))의 원소 a(x)에 대해 a(x)-1xk 를 계산한다. 이때 k의 조건은 다음과 같다.Where a (x) is an element of finite body (GF (2 n )) and a (n-1) order polynomial. Also, p (x) is an n th order polynomial for modular operation. r (x) is the inverse of a (x) and is the (n-1) order polynomial. Here, the order of a (x) deg (a (x)) is smaller than the order of p (x) deg (p (x)). The Montgomery inverse algorithm calculates a (x) -1 x k for element a (x) of the finite field GF (2 n ). The condition of k is as follows.
deg(a(x) ≤ k ≤ deg(p(x)) + deg(a(x)) + 1,deg (a (x) ≤ k ≤ deg (p (x)) + deg (a (x)) + 1,
즉, n이 유한체(GF(2n))의 차수일때 k ≤ 2n이다.That is, when n is the order of the finite body GF (2 n ), k ≦ 2n.
상기 몽고메리 역원 알고리즘에서 역원계산을 위한 연산시간 및 k는 유한체(GF(2n))의 원소 a(x)에 따라 다르다. 그러나 상기 몽고메리 역원 알고리즘을 구현한 역원 계산회로로 동일한 유한체(GF(2n))의 원소 a(x)를 반복하여 입력하는 경우, 상기 원소 a(x)의 역원을 계산하기 위한 연산 시간을 동일하다. 따라서 상기 역원계산 회로는 시간공격에 취약하다.In the Montgomery inverse algorithm, the computation time and k for inverse calculation depend on the element a (x) of the finite field GF (2 n ). However, when repeatedly inputting elements a (x) of the same finite body (GF (2 n )) as an inverse calculation circuit implementing the Montgomery inverse algorithm, the calculation time for calculating the inverse of the element a (x) is determined. same. Thus, the inverse calculating circuit is vulnerable to time attack.
따라서 시간공격에 강하도록 종래의 몽고메리 역원 알고리즘을 개선한 몽고메리 알고리즘(이하 '제1 몽고메리 역원 알고리즘'이라 한다.)은 다음과 같다. Therefore, the Montgomery algorithm (hereinafter referred to as 'the first Montgomery inverse algorithm') that improves the conventional Montgomery inverse algorithm to be resistant to time attack is as follows.
1. Input a(x) and p(x), where deg(a(x)) < deg(p(x)) 1.Input a (x) and p (x), where deg (a (x)) <deg (p (x))
2. u(x) ← p(x), v(x)← a(x), r(x)← 0, and s(x)← 1U (x) ← p (x), v (x) ← a (x), r (x) ← 0, and s (x) ← 1
3. m ← random value, 2n ≤m ≤ 3n 3.m ← random value, 2n ≤m ≤ 3n
4. while (k < m)While (k <m)
4.1 if (v(x) ≠ 0)4.1 if (v (x) ≠ 0)
4.1.1 if(u0 ≠ 0) u(x) ← u(x)/x, s(x) ← x·s(x)4.1.1 if (u 0 ≠ 0) u (x) ← u (x) / x, s (x) ← xs (x)
4.1.2 else if (v0 ≠ 0) v(x) ← v(x)/x, r(x) ← x·r(x)4.1.2 else if (v 0 ≠ 0) v (x) ← v (x) / x, r (x) ← xr (x)
4.1.3 else if (deg(u(x)) > deg(v(x))) then4.1.3 else if (deg (u (x))> deg (v (x))) then
u(x) ← (u(x) + v(x))/xu (x) ← (u (x) + v (x)) / x
r(x) ← r(x) + s(x)r (x) ← r (x) + s (x)
s(x) ← x·s(x)s (x) ← xs (x)
4.1.4 else v(x) ← (v(x) + u(x))/x4.1.4 else v (x) ← (v (x) + u (x)) / x
s(x) ← s(x) + r(x)s (x) ← s (x) + r (x)
r(x) ← x·r(x)r (x) ← xr (x)
4.2 else4.2 else
4.2.1 if (rn = 1) r(x) ← r(x) + p(x)4.2.1 if (r n = 1) r (x) ← r (x) + p (x)
4.2.2 r(x) ← x·r(x)4.2.2 r (x) ← xr (x)
4.3 k ← k + 14.3 k ←
5. if (deg(r(x)) = deg(p(x))) r(x) ← r(x) + p(x)5.if (deg (r (x)) = deg (p (x))) r (x) ← r (x) + p (x)
6. OUTPUT r(x), k 6.OUTPUT r (x), k
상기 제1 몽고메리 역원 알고리즘(또는 제1 몽고메리 역원 알고리즘을 구현 한 하드웨어)은 몽고메리 역원 알고리즘에 난수(random number; m)를 도입했다. 난수(m)의 범위는 2n과 3n사이의 임의의 수이다. 여기서 n은 유한체(GF(2n))의 차수를 의미한다. The first Montgomery inverse algorithm (or hardware implementing the first Montgomery inverse algorithm) introduced a random number (m) in the Montgomery inverse algorithm. The range of random numbers (m) is any number between 2n and 3n. N is the order of the finite body (GF (2 n )).
몽고메리 역원 알고리즘은 (v(x) != 0)동안만 역원계산을 한다. 또한, 상기 제1 몽고메리 역원 알고리즘은 (v(x) ≠ 0)일때 단계 4.1을 수행하나, v(x)가 0이되면 단계 4.2를 수행한다. The Montgomery inverse algorithm calculates inverses only for (v (x)! = 0). Further, the first Montgomery inverse algorithm performs step 4.1 when (v (x) ≠ 0), but performs step 4.2 when v (x) is zero.
따라서 단계 4.2는 단계 4에서 정의된 난수(m)가 될 때까지 역원계산을 수행하므로, 제1 몽고메리 역원 알고리즘은 동일한 입력(예컨대, 역원을 구하고자하는 유한체(GF(2n))의 원소)에 대하여도 상기 입력에 대한 역원을 계산하는 시간이 서로 다르다. 따라서 제1 몽고메리 역원 알고리즘은 시간 공격에 강한다.Therefore, step 4.2 performs inverse calculation until the random number m defined in step 4 is obtained, so that the first Montgomery inverse algorithm uses elements of the same input (e.g., finite field GF ( 2n ) to obtain inverse sources). ), The time for calculating the inverse for the input is also different. Thus, the first Montgomery inverse algorithm is resistant to time attack.
이 때 몽고메리 역원 알고리즘에서 a(x)-1xk의 k는 2n보다 작은 수이고, 제1 몽고메리 역원 알고리즘에서 a(x)-1xm의 m은 2n보다 크고 3n보다 작은 수이다. In this Montgomery inverse algorithm, k of a (x) -1 x k is smaller than 2n, and m of a (x) -1 x m in the first Montgomery inverse algorithm is larger than 2n and smaller than 3n.
a(x)-1xk와 a(x)-1xm의 관계는 제1 몽고메리 역원 알고리즘에서 단계 4.1이 끝난 경우 단계 4.2가 수행되므로 다음과 같은 관계가 있다.The relationship between a (x) -1 x k and a (x) -1 x m has the following relationship since step 4.2 is performed when step 4.1 is completed in the first Montgomery inverse algorithm.
a(x)-1xm = a(x)-1xkx(m-k) a (x) -1 x m = a (x) -1 x k x (mk)
따라서 제1 몽고메리 역원 알고리즘은 v(x) = 0이 되기 전에 항상 단계 4.1을 수행한다. 따라서 제1 몽고메리 역원 알고리즘은 DPA에 취약하다.Thus, the first Montgomery inverse algorithm always performs step 4.1 before v (x) = 0. Thus, the first Montgomery inverse algorithm is vulnerable to DPA.
따라서 시간공격 및 DPA에 강하도록 제1 몽고메리 역원 알고리즘을 개선한 본 발명의 실시예에 따른 알고리즘(이하 '제2 몽고메리 역원 알고리즘'라 한다.)은 다음과 같다. Therefore, the algorithm according to the embodiment of the present invention which improves the first Montgomery inverse algorithm to be resistant to time attack and DPA (hereinafter, referred to as a 'second Montgomery inverse algorithm') is as follows.
1. Input a(x) and p(x), where deg(a(x)) < deg(p(x)) 1.Input a (x) and p (x), where deg (a (x)) <deg (p (x))
2. u(x) ← p(x), v(x)← a(x), r(x)← 0, and s(x)← 1U (x) ← p (x), v (x) ← a (x), r (x) ← 0, and s (x) ← 1
3. m ← random value, 2n ≤m ≤ 3n 3.m ← random value, 2n ≤m ≤ 3n
4. while (k < m or v(x) ≠ 0)While (k <m or v (x) ≠ 0)
4.1 R ← random value, 0 ≤ R ≤ 3 4.1 R ← random value, 0 ≤ R ≤ 3
4.2 if (v(x) ≠ 0 and R ≠ 0)4.2 if (v (x) ≠ 0 and R ≠ 0)
4.2.1 if(u0 ≠ 0) u(x) ← u(x)/x, s(x) ← x·s(x)4.2.1 if (u 0 ≠ 0) u (x) ← u (x) / x, s (x) ← xs (x)
4.2.2 else if (v0 ≠ 0) v(x) ← v(x)/x, r(x) ← x·r(x)4.2.2 else if (v 0 ≠ 0) v (x) ← v (x) / x, r (x) ← xr (x)
4.2.3 else if (deg(u(x)) > deg(v(x))) then4.2.3 else if (deg (u (x))> deg (v (x))) then
u(x) ← (u(x) + v(x))/xu (x) ← (u (x) + v (x)) / x
r(x) ← r(x) + s(x)r (x) ← r (x) + s (x)
s(x) ← x·s(x)s (x) ← xs (x)
4.2.4 else v(x) ← (v(x) + u(x))/x4.2.4 else v (x) ← (v (x) + u (x)) / x
s(x) ← s(x) + r(x)s (x) ← s (x) + r (x)
r(x) ← x·r(x)r (x) ← xr (x)
4.3 else4.3 else
4.3.1 if (rn = 1) r(x) ← r(x) + p(x)4.3.1 if (r n = 1) r (x) ← r (x) + p (x)
4.3.2 r(x) ← x·r(x)4.3.2 r (x) ← xr (x)
4.3.3 if (sn = 1) s(x) ← s(x) + p(x)4.3.3 if (s n = 1) s (x) ← s (x) + p (x)
4.3.4 s(x) ← x·s(x)4.3.4 s (x) ← xs (x)
4.4 k ← k + 14.4 k ←
5. if (deg(r(x)) = deg(p(x))) r(x) ← r(x) + p(x)5.if (deg (r (x)) = deg (p (x))) r (x) ← r (x) + p (x)
6. OUTPUT r(x), k 6.OUTPUT r (x), k
본 발명에 따른 제2 몽고메리 역원 알고리즘에는 난수(R)를 도입하었다. 난수(R)는 매 반복(iteration)마다 0과 3사이의 임의 값을 갖는다. v(x)가 0이 아니고 R이 0이 아닌 경우, 단계 4.2가 수행된다. 즉, v(x)가 0이 아니고 R이 0인 경우, 단계 4.3이 수행된다. 따라서 본 발명에 따른 제2 몽고메리 역원 알고리즘은 동일한 입력에 대하여도 동일한 연산을 수행하지 않는다. In the second Montgomery inverse algorithm according to the present invention, a random number R is introduced. The random number R has a random value between 0 and 3 in every iteration. If v (x) is not zero and R is not zero, step 4.2 is performed. That is, if v (x) is not zero and R is zero, step 4.3 is performed. Thus, the second Montgomery inverse algorithm according to the present invention does not perform the same operation on the same input.
난수(R)는 0부터 3사이의 임의의 값을 갖고, v(x)가 0이 아니고 R이 0인 경우에만 단계 4.3이 수행되므로, 1/4의 확률로 단계 4.3이 수행된다. 만일 난수(R)가 0과 1중에서 하나만 선택되는 경우, 단계 4.2와 단계 4.3은 각각 1/2의 확률로 수행된다.Since the random number R has a random value between 0 and 3, and step 4.3 is performed only when v (x) is not 0 and R is 0, step 4.3 is performed with a probability of 1/4. If only one random number R is selected from 0 and 1, steps 4.2 and 4.3 are performed with a probability of 1/2 respectively.
본 발명에 따른 역원계산 회로는 제2 몽고메리 역원 알고리즘을 구현한 것으로, 상기 역원계산 회로는 도 1 및 도 2를 참조하여 상세히 설명된다. The inverse calculating circuit according to the present invention implements a second Montgomery inverse algorithm, which is described in detail with reference to FIGS. 1 and 2.
도 1은 본 발명의 실시예에 따른 역원계산 회로의 블락도를 나타낸다. 도 1 을 참조하면, 역원계산 회로(100)는 인버터(200) 및 난수 발생기(400)를 구비한다.1 shows a block diagram of an inverse calculating circuit according to an embodiment of the present invention. Referring to FIG. 1, the
난수 발생기(400)는 제1난수(R) 및 제2난수(m)을 발생한다. 제1난수(R)는 DPA를 방지하기 위한 난수이다. 본 발명에 따른 난수 발생기에서 발생되는 제1난수(R)의 범위는 0부터 3까지이므로, 제1난수(R)의 값은 2비트로 표현될 수 있다. 그러나 본 발명에 따른 제1난수(R)의 범위는 0부터 3까지로 한정되는 것이 아니다.The random number generator 400 generates a first random number R and a second random number m. The first random number R is a random number for preventing DPA. Since the range of the first random number R generated by the random number generator according to the present invention is from 0 to 3, the value of the first random number R may be represented by 2 bits. However, the range of the first random number R according to the present invention is not limited to 0 to 3.
제2난수(m)는 시간공격을 방지하기 위한 난수이다. 제2난수(m)는 2n보다 크고 3n보다 작은 값을 갖는다. 여기서 n은 유한체(GF(2n))의 차수를 나타낸다.The second random number m is a random number for preventing a time attack. The second random number m has a value larger than 2n and smaller than 3n. Where n represents the order of the finite body (GF (2 n )).
인버터(200)는 a(x) 및 p(x)를 수신하고, 제1난수(R) 및 제2난수(m)에 응답하여, r(x)를 출력한다. 여기서 a(x)는 역원을 구하고자 하는 유한체(GF(2n))의 원소를 나타낸다. a(x)는 (n-1)차 다항식이고, n비트들로 표현된다. The
p(x)는 모듈러 연산을 위한 n차 다항식이고, (n+1)비트들로 표현된다. r(x)는 a(x)의 역원으로 (n-1)차 다항식이고, n비트들로 표현된다. p (x) is an nth order polynomial for modular operation, represented by (n + 1) bits. r (x) is the inverse of a (x), which is a (n-1) order polynomial, represented by n bits.
도 2는 도 1에 도시된 인버터의 회로도를 나타낸다. 도 1, 제2 몽고메리 역원 알고리즘, 및 도 2를 참조하여 인버터의 구조 및 동작이 상세히 설명된다.FIG. 2 shows a circuit diagram of the inverter shown in FIG. 1. The structure and operation of the inverter are described in detail with reference to FIG. 1, the second Montgomery inverse algorithm, and FIG. 2.
각 레지스터(201, 203, 205, 및 207)는 u(x), v(x), s(x), 및 r(x)를 저장한다. Each
오른쪽 쉬프트 레지스터들(209, 211, 및 213)각각은 입력 데이터를 수신하고, 상기 데이터를 오른쪽으로 1비트씩 이동(shift)시키고, 각 MSB(most significant bit)에 0을 저장한다. 예컨대 레지스터(201)로부터 출력되는 데이터가 00011인 경우, 오른쪽 쉬프트 레지스터(209)는 00011을 수신하고 00001을 출력한다. Each of the right shift registers 209, 211, and 213 receives input data, shifts the data one bit to the right, and stores zeros in each most significant bit (MSB). For example, when the data output from the
그러나, 오른쪽 쉬프트 레지스터(215)는 입력 데이터를 수신하고, 상기 데이터를 오른쪽으로 1비트씩 이동시키고, MSB에 1을 저장한다. 따라서 레지스터(233)로부터 출력되는 데이터가 11000인 경우, 오른쪽 쉬프트 레지스터(215)는 11000을 수신하고 11100을 출력한다. However, the
왼쪽 쉬프트 레지스터들(217, 219, 221, 및 223)각각은 입력 데이터를 수신하고, 상기 데이터를 왼쪽으로 1비트씩 이동시키고, 각 LSB(least significant bit)에 0을 저장한다.Each of the
배타 논리합 게이트(225, 227, 231, 및 229)는 두 개의 입력 데이터를 비트단위(bitwise)로 배타 논리합 연산을 수행한다. 예컨대 배타 논리합 게이트(225)는 레지스터(201)로부터 출력되는 데이터와 레지스터(203)으로부터 출력되는 데이터를 비트단위로 배타 논리합 한다. The exclusive OR
레지스터(233)는 유한체(GF(2n))의 차수를 저장하기 위한 레지스터로, 연산초기에 1000...0으로 설정된다. u(x)가 유한체(GF(2n))이고, degU(x)가 (degUn,degUn-1,..., degU1, degU0)이라고 가정하면, degU
n=1이고, degUn-1 = degU1 = degU0 = 0이다. 논리곱 회로(235)는 레지스터(203)로부터 출력되는 데이터와 레지 스터(233)으로부터 출력되는 데이터를 수신하고, 이들을 비트단위로 논리곱한다.The
제어 로직 유닛(300)은 레지스터(201)의 LSB(u0), 레지스터(203)의 LSB(v0), 레지스터(207)의 MSB(rn), 및 논리곱 회로(235)의 출력신호에 기초하여 제어신호들을 발생한다. 상기 제어신호들 각각은 대응되는 먹스(237, 239, 241, 및 243)와 대응되는 레지스터(201, 203, 205, 및 207)로 입력된다. 각 레지스터(201, 203, 205, 및 207)는 대응되는 제어신호에 응답하여 저장된 데이터를 갱신한다. The
도 2는 제2 몽고메리 역원 알고리즘을 구현한 것으로, 각 단계와 대응되는 회로를 설명하면 다음과 같다.2 is an implementation of the second Montgomery inverse algorithm, the circuit corresponding to each step is as follows.
단계 4.2.1는 레지스터(209)와 먹스(237), 및 레지스터(217)와 먹스(241)로 구현된다. 단계 4.2.2는 레지스터(213)와 먹스(239), 및 레지스터(219)와 먹스 (243)로 구현된다. Step 4.2.1 is implemented with
단계 4.2.3에서 u(x) ← (u(x) + v(x))/x는 배타 논리합 게이트(XOR1; 225), 오른쪽 쉬프트 레지스터(RSHT2; 211) 및 먹스(MUX1; 237)로 구현되고, r(x) ← r(x) + s(x)는 배타 논리합 게이트(XOR2; 227), 및 먹스(MUX4; 243)로 구현되고, s(x) ← x·s(x)는 왼쪽 쉬프트 레지스터(217) 및 먹스(MUX3; 241)로 구현된다.In step 4.2.3 u (x) ← (u (x) + v (x)) / x is implemented with an exclusive OR gate (XOR1; 225), right shift register (RSHT2; 211) and mux (MUX1; 237). R (x) ← r (x) + s (x) are implemented with an exclusive OR gate (XOR2; 227), and a mux (MUX4; 243), and s (x) ← x · s (x) is left It is implemented with a
단계 4.2.4에서 v(x) ← (v(x) + u(x))/x는 배타 논리합 게이트(XOR1; 225), 오른쪽 쉬프트 레지스터(211) 및 먹스(MUX2; 239)로 구현되고, s(x) ← s(x) + r(x)는 배타 논리합 게이트(XOR2; 227) 및 먹스(MUX3; 241)로 구현되고, r(x) ← x·r(x)는 왼쪽 쉬프트 레지스터(219) 및 먹스(MUX4; 243)로 구현된다.In step 4.2.4 v (x) ← (v (x) + u (x)) / x is implemented with an exclusive OR gate (XOR1; 225),
단계 4.3.1과 단계 4.3.2는 XOR3(231), 왼쪽 쉬프트 레지스터(219), 왼쪽 쉬프트 레지스터(221) 및 먹스(243)로 구현된다.Steps 4.3.1 and 4.3.2 are implemented with
단계 4.3.3와 단계 4.3.4는 왼쪽 쉬프트 레지스터(217), 왼쪽 쉬프트 레지스터(223) 및 먹스(241)로 구현된다. Steps 4.3.3 and 4.3.4 are implemented with a
단계 4.2.3에서 deg(u(x)) > deg(v(x))는 레지스터(233)와 AND회로(235)에 의하여 다음과 같이 구현된다.In step 4.2.3, deg (u (x))> deg (v (x)) is implemented by the
연산을 시작할 때, 레지스터(233)에 저장된 데이터는 100...0이다. 단계 4.2.1또는 단계 4.2.3의 u(x) ← (u(x) + v(x))/x가 수행되고, 레지스터(201)에 저장된 데이터가 갱신될 때마다 u(x)의 차수는 감소한다. 상기 차수가 감소될 때 마다 레지스터(233)는 레지스터(215)로부터 출력되는 데이터를 수신하고 저장한다. 이 때 u(x)의 차수가 v(x)의 차수보다 큰 경우 논리합 회로(235)에 저장되는 데이터는 000,,,0이다. At the start of the operation, the data stored in
예컨대, 유한체(GF(24))에서 초기에 레지스터(233)에 저장된 데이터는 (10000)이고 v(x)는 (00111)이라고 가정하면, v(x)의 차수는 2차이다. For example, assuming that the data initially stored in the
단계 4.2.1이 수행되고 레지스터(201)에 저장된 데이터가 갱신된다면, u(x)의 차수는 3차이다. 이때 레지스터(233)의 데이터는 (11000)이 된다. 논리곱 회로(235)에 의하여 논리곱이 수행되면, 그 결과는 (00000)이다. 이 경우 u(x)는 실질적으로 3차이고 v(x)는 2차이다. If step 4.2.1 is performed and the data stored in the
단계 4.2.1이 다시 수행된다면, u(x)는 2차가 되고 레지스터(233)에는 (11100)이 저장된다. 이때 논리곱 회로(235)에는 (00100)이 저장된다. 제어로직 유닛(300)은 저장된 정보를 이용하여 단계 4.2.4를 수행한다. 본 발명에 따른 역원계산 회로는 스마트 카드 등의 암호화 장치에 사용될 수 있다.If step 4.2.1 is performed again, u (x) becomes secondary and 11100 is stored in
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
상술한 바와 같이 본 발명에 따른 역원계산 회로, 역원계산 방법 및 상기 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체는 시간 공격과 차동 전력해석공격에 강하다.As described above, the computer-readable recording medium that records the inverse calculating circuit, the inverse calculating method, and the program for executing the method according to the present invention is resistant to time attack and differential power analysis attack.
Claims (11)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020030096216A KR100564599B1 (en) | 2003-12-24 | 2003-12-24 | Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code |
| US11/021,351 US7680272B2 (en) | 2003-12-24 | 2004-12-23 | Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020030096216A KR100564599B1 (en) | 2003-12-24 | 2003-12-24 | Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20050064645A KR20050064645A (en) | 2005-06-29 |
| KR100564599B1 true KR100564599B1 (en) | 2006-03-29 |
Family
ID=36583871
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020030096216A Expired - Lifetime KR100564599B1 (en) | 2003-12-24 | 2003-12-24 | Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US7680272B2 (en) |
| KR (1) | KR100564599B1 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2880149B1 (en) * | 2004-12-23 | 2007-03-30 | Oberthur Card Syst Sa | DATA PROCESSING METHOD AND ASSOCIATED DEVICE |
| JP5147412B2 (en) | 2005-01-21 | 2013-02-20 | サーティコム コーポレーション | Elliptic curve random number generation |
| WO2006112114A1 (en) * | 2005-03-31 | 2006-10-26 | Matsushita Electric Industrial Co., Ltd. | Data encryption device and data encryption method |
| KR101548174B1 (en) | 2008-12-02 | 2015-09-07 | 삼성전자주식회사 | Method for calculating negative inverse of modulus |
| US8924740B2 (en) * | 2011-12-08 | 2014-12-30 | Apple Inc. | Encryption key transmission with power analysis attack resistance |
| CN106548806B (en) * | 2016-10-13 | 2019-05-24 | 宁波大学 | A kind of shift register that DPA can be defendd to attack |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3855497T2 (en) | 1988-10-18 | 1997-03-13 | Philips Electronics Nv | Data processing device for calculating a multiplicatively inverted element of a finite body |
| US6088453A (en) * | 1997-01-27 | 2000-07-11 | Kabushiki Kaisha Toshiba | Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation |
| US6038581A (en) | 1997-01-29 | 2000-03-14 | Nippon Telegraph And Telephone Corporation | Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed |
| JPH1152851A (en) | 1997-07-31 | 1999-02-26 | Nippon Telegr & Teleph Corp <Ntt> | Group operation unit on elliptic curve |
| EP0917047B1 (en) * | 1997-11-04 | 2004-10-13 | Nippon Telegraph and Telephone Corporation | Apparatus for modular inversion for information security |
| US5982895A (en) * | 1997-12-24 | 1999-11-09 | Motorola, Inc. | Finite field inverse circuit for use in an elliptic curve processor |
| JP2002519722A (en) * | 1998-06-03 | 2002-07-02 | クリプターグラフィー リサーチ インコーポレイテッド | Improved DES and other cryptographic processes for smart cards and other cryptographic systems to minimize leakage |
| US6578061B1 (en) * | 1999-01-19 | 2003-06-10 | Nippon Telegraph And Telephone Corporation | Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon |
| US6298135B1 (en) | 1999-04-29 | 2001-10-02 | Motorola, Inc. | Method of preventing power analysis attacks on microelectronic assemblies |
| JP4354609B2 (en) * | 1999-07-16 | 2009-10-28 | パナソニック株式会社 | Simultaneous equation solving apparatus and inverse element computing apparatus on finite field |
| CA2298990A1 (en) * | 2000-02-18 | 2001-08-18 | Cloakware Corporation | Method and system for resistance to power analysis |
| US7050579B1 (en) * | 2000-03-31 | 2006-05-23 | State Of Oregon Acting By And Through The State Board Of Education On Behalf Of Oregon State University | Cryptographic methods and apparatus using word-wise montgomery multiplication |
| JP3950638B2 (en) | 2001-03-05 | 2007-08-01 | 株式会社日立製作所 | Tamper resistant modular processing method |
| KR20020086005A (en) | 2001-05-10 | 2002-11-18 | 학교법인 정석학원 | Inverse operator for elliptic curve cryptosystems |
| KR20030003435A (en) | 2001-06-30 | 2003-01-10 | 주식회사 시큐리티테크놀로지스 | Optimal finite field inversion method and device for use in a elliptic curve cryptosystem |
| TW557636B (en) * | 2002-03-26 | 2003-10-11 | Ind Tech Res Inst | Random number generator |
| KR100720726B1 (en) * | 2003-10-09 | 2007-05-22 | 삼성전자주식회사 | Security maintenance system using RSA algorithm and method |
| KR101061906B1 (en) * | 2004-02-19 | 2011-09-02 | 삼성전자주식회사 | Basic Computing Device and Method Safe for Power Analysis Attack |
| US7386027B2 (en) * | 2004-03-31 | 2008-06-10 | Matsushita Electric Industrial Co., Ltd. | Methods and apparatus for generating and processing wideband signals having reduced discrete power spectral density components |
-
2003
- 2003-12-24 KR KR1020030096216A patent/KR100564599B1/en not_active Expired - Lifetime
-
2004
- 2004-12-23 US US11/021,351 patent/US7680272B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| KR20050064645A (en) | 2005-06-29 |
| US20060126828A1 (en) | 2006-06-15 |
| US7680272B2 (en) | 2010-03-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7864951B2 (en) | Scalar multiplication method with inherent countermeasures | |
| Courtois | Higher order correlation attacks, XL algorithm and cryptanalysis of Toyocrypt | |
| KR100585119B1 (en) | Encryption apparatus, encryption method and recording medium thereof | |
| US9772821B2 (en) | Cryptography method comprising an operation of multiplication by a scalar or an exponentiation | |
| JP4671571B2 (en) | Secret information processing device and memory for storing secret information processing program | |
| CN109039640B (en) | An encryption and decryption hardware system and method based on RSA cryptographic algorithm | |
| US20050283714A1 (en) | Method and apparatus for multiplication in Galois field, apparatus for inversion in Galois field and apparatus for AES byte substitution operation | |
| JP2008252299A (en) | Cryptographic processing system and cryptographic processing method | |
| JP2001337599A (en) | Scalar multiplication method and device in elliptic curve cryptography, and storage medium | |
| US11824986B2 (en) | Device and method for protecting execution of a cryptographic operation | |
| KR100442218B1 (en) | Power-residue calculating unit using montgomery algorithm | |
| JP4668931B2 (en) | Encryption processor with tamper resistance against power analysis attacks | |
| KR20060116612A (en) | Encryption method and apparatus for increasing complexity of power decryption using random point representation in binary field ECC | |
| EP3776305B1 (en) | Using cryptographic blinding for efficient use of montgomery multiplication | |
| JP2004304800A (en) | Prevention of side channel attacks in data processing equipment | |
| KR100574965B1 (en) | Finite Field Multiplier | |
| KR20210067961A (en) | Device and method for operation of encrypted data using fully homomorphic encryption | |
| US20060212506A1 (en) | Scalar multiplication apparatus and method | |
| KR100564599B1 (en) | Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code | |
| US7983415B2 (en) | Method for performing iterative scalar multiplication which is protected against address bit attack | |
| EP4297330A1 (en) | Method and system for protecting cryptographic operations against side-channel attacks | |
| Banik et al. | Image encryption based on module learning with error using dynamic S-boxes | |
| Li et al. | Power Analysis Attacks against QUAD. | |
| Monfared et al. | Secure and efficient exponentiation architectures using Gaussian normal basis | |
| JP2024540262A (en) | White-box processing for encoding large integer values |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20031224 |
|
| PA0201 | Request for examination | ||
| PG1501 | Laying open of application | ||
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20050831 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20060220 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20060321 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20060322 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration | ||
| PR1001 | Payment of annual fee |
Payment date: 20090309 Start annual number: 4 End annual number: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 20100315 Start annual number: 5 End annual number: 5 |
|
| PR1001 | Payment of annual fee |
Payment date: 20110302 Start annual number: 6 End annual number: 6 |
|
| PR1001 | Payment of annual fee |
Payment date: 20120229 Start annual number: 7 End annual number: 7 |
|
| FPAY | Annual fee payment |
Payment date: 20130228 Year of fee payment: 8 |
|
| PR1001 | Payment of annual fee |
Payment date: 20130228 Start annual number: 8 End annual number: 8 |
|
| FPAY | Annual fee payment |
Payment date: 20140618 Year of fee payment: 9 |
|
| PR1001 | Payment of annual fee |
Payment date: 20140618 Start annual number: 9 End annual number: 9 |
|
| FPAY | Annual fee payment |
Payment date: 20150224 Year of fee payment: 10 |
|
| PR1001 | Payment of annual fee |
Payment date: 20150224 Start annual number: 10 End annual number: 10 |
|
| FPAY | Annual fee payment |
Payment date: 20160218 Year of fee payment: 11 |
|
| PR1001 | Payment of annual fee |
Payment date: 20160218 Start annual number: 11 End annual number: 11 |
|
| FPAY | Annual fee payment |
Payment date: 20170220 Year of fee payment: 12 |
|
| PR1001 | Payment of annual fee |
Payment date: 20170220 Start annual number: 12 End annual number: 12 |
|
| FPAY | Annual fee payment |
Payment date: 20180219 Year of fee payment: 13 |
|
| PR1001 | Payment of annual fee |
Payment date: 20180219 Start annual number: 13 End annual number: 13 |
|
| PR1001 | Payment of annual fee |
Payment date: 20230223 Start annual number: 18 End annual number: 18 |
|
| PC1801 | Expiration of term |
Termination date: 20240624 Termination category: Expiration of duration |