KR101214789B1 - Method of mapping messages to points on elliptic curve over GF(3^m) and pairing-based cryptosystem using it - Google Patents
Method of mapping messages to points on elliptic curve over GF(3^m) and pairing-based cryptosystem using it Download PDFInfo
- Publication number
- KR101214789B1 KR101214789B1 KR1020110017994A KR20110017994A KR101214789B1 KR 101214789 B1 KR101214789 B1 KR 101214789B1 KR 1020110017994 A KR1020110017994 A KR 1020110017994A KR 20110017994 A KR20110017994 A KR 20110017994A KR 101214789 B1 KR101214789 B1 KR 101214789B1
- Authority
- KR
- South Korea
- Prior art keywords
- coordinate
- elliptic curve
- matrix
- polynomial
- generated
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Operations Research (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 에서의 메시지 매핑 방법에 관한 것으로서, 메시지의 해쉬 값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입하고, x좌표에 관한 방정식을 풂으로써, 타원곡선 식을 만족하는 x좌표를 연산하되, 타원곡선 식에서 x로 표현되는 항들 각각에 세제곱을 하여 방정식을 푸는 것을 특징으로 하며, 메시지 매핑에 사용되는 행렬의 크기를 줄여 역행렬을 빠르게 계산할 수 있으며, 역행렬을 저장하는데 작은 메모리 공간이 필요하게 된다. The present invention A method of mapping a message in, wherein a hash value of a message is substituted into the y coordinate among the coordinates on the elliptic curve represented by (x, y), and the equation of the x coordinate is solved to satisfy the elliptic curve expression. Calculate the coordinates, solve the equation by cubed each of the terms represented by x in the elliptic curve equation, it is possible to quickly calculate the inverse matrix by reducing the size of the matrix used for message mapping, and to save the inverse matrix This is necessary.
Description
본 발명은 (=GF(3^m))에서의 메시지 매핑 방법에 관한 것으로서, 더욱 상세하게는 메시지 매핑에 사용되는 행렬의 크기를 줄여 역행렬을 빠르게 계산할 수 있으며, 역행렬을 저장하기 위해 사용하는 메모리 역시 작은 공간을 사용하는 에서의 메시지 매핑 방법 및 이를 이용한 페어링 암호 시스템에 관한 것이다.The present invention Message mapping method in (= GF (3 ^ m)). More specifically, it is possible to quickly calculate the inverse by reducing the size of the matrix used for the message mapping. The memory used to store the inverse is also small. Using The present invention relates to a message mapping method and a pairing encryption system using the same.
유한체(finite field)는 원소의 개수가 유한한 체(field)를 뜻한다. 체는 0으로 나누는 것을 제외한 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 자유롭게 할 수 있는 집합을 말한다. 따라서 자연수나 정수의 집합은 나눗셈의 결과가 원래의 집합에 항상 포함되는 것은 아니므로 체가 될 수 없고, 유리수, 실수는 체이기는 하지만 무한 집합이므로 유한체는 아니다. A finite field is a field in which the number of elements is finite. A sieve is a set that can freely perform arithmetic operations (addition, subtraction, multiplication, division) except division by zero. Therefore, the set of natural numbers or integers cannot be sieve because the result of division is not always included in the original set. The rational numbers and real numbers are not finite because they are sieves but infinite sets.
유한체는 표수(characteristic)에 따라서 그 특성이 결정된다. 표수는 유한체가 기본적으로 가지고 있는 모듈라 연산에서 법으로 사용되는 수로서 반드시 소수이다. 표수를 p라고 할 때, 유한체의 원소의 개수는 표수의 거듭제곱의 꼴이 되며, q=pm(m≥1)개의 원소를 가지고 있는 유한체를 Fq라고 나타낸다.Finite bodies are characterized by their characteristics. A surface number is a prime number that is used by law in the modular operations that finite bodies have. When the surface number is p, the number of elements of the finite body becomes the power of the surface water, and a finite body having q = p m ( m ≧ 1) elements is denoted by F q .
가장 간단한 형태의 유한체는 m=1일때로서, Fq={0,1,2,...,p-1}로 나타낼 수 있으며, 원소들 사이의 사칙 연산은 p를 법으로 하는 모듈라 연산을 사용한다.The simplest form of finite field is when m = 1, which can be expressed as F q = {0,1,2, ..., p-1}, and the arithmetic operation between the elements is a modular operation using p as the law. Use
m>1인 경우는 원소를 정수로만 표현할 수 없을 때 다항식으로 표현한다. 유한체와 다항식의 집합 사이에는 다음과 같은 동치관계가 있다. If m> 1, the element is expressed as a polynomial when it cannot be expressed as an integer only. There is an equivalence between finite bodies and sets of polynomials:
여기서, f(x)는 Fp의 원소를 계수로 갖는 m차의 기약 다항식, Fp[x]는 계수가 Fp의 원소인 모든 다항식의 무한 집합을 말하고, 는 다항식을 f(x)로 나눈 나머지를 대표원소로 하는 유한 집합이다. 그러면 위의 동치 관계에 따라서 의 원소는 m-1차 이하의 다항식과 일대일 관계에 있으며, 다항식으로 표현된 원소들 사이의 연산은 f(x)를 법으로 하는 모듈라 연산이다. 즉, m차 이상의 다항식은 f(x)로 나눈 나머지를 유한체의 원소로 간주한다. Where f (x) is the m-th order contracting polynomial having the elements of F p as a coefficient, and F p [x] refers to the infinite set of all polynomials whose coefficients are elements of F p , Is a finite set whose representative elements are the remainder of the polynomial divided by f (x). Then, according to the above equivalence The elements of have a one-to-one relationship with the polynomial below m-1 order, and the operation between the elements represented by the polynomial is a modular operation using f (x) as a method. That is, a polynomial of m or more orders considers the remainder divided by f (x) as a finite element.
한편, 페어링 암호 시스템(Pairing-based cryptosystem)은 최근 가장 활발하게 연구되는 분야로서 페어링 기반 암호 시스템은 타원곡선 위의 두 개의 점을 하나의 유한체 원소로 보내는 양방향 겹선형성(Bilinearity)을 가지는 페어링 함수를 기반으로 구성되는 암호 시스템이다. Meanwhile, pairing-based cryptosystem is one of the most actively researched fields in recent years. Pairing-based cryptosystem has a pairing function with bilinearity that sends two points on an elliptic curve as a finite element. It is a cryptographic system that is configured based on.
페어링 암호 연산 시간을 개선하려는 여러 노력에도 불구하고 페어링 암호의 구현은 페어링 기반 암호 시스템들을 구현하는데 있어 가장 큰 연산 부담을 주고 있다.Despite efforts to improve pairing cryptographic computation time, the implementation of pairing cryptography is the largest computational burden for implementing pairing based cryptographic systems.
페어링 함수는 소수 위수 q를 갖는 타원곡선 점들의 그룹 G1과 G2에서 유한체 원소들의 그룹 GT로의 함수이다. P1과 P2를 각각 G1과 G2의 생성자라 할 때, G1, G2, 그리고 GT의 이산 대수 문제(DLP)를 풀기 어렵다고 가정한다. 그러면 아래의 두 조건을 만족하는 함수 e : G1×G1 →G2는 암호에 사용될 수 있는 겹선형 함수인 페어링 함수가 된다.The pairing function is a function of groups G 1 and G 2 of elliptic curve points with decimal order q to group G T of finite element elements. When the P 1 and P 2 can grow each G 1 and the creation of G 2, it is assumed G 1, G 2, and G T difficulty of solving the discrete logarithm problem (DLP). Then, the function e: G 1 × G 1 → G 2, which satisfies the following two conditions, becomes a pairing function, which is a parallel function that can be used for cryptography.
이진체 또는 소수체 위의 타원곡선만을 사용하는 타원곡선 암호와 달리 페어링 암호는 위수가 3인 삼진체 위의 타원곡선도 이용한다. 삼진체 위에서의 페어링 암호는 다른 유한체 위에서 보다 연산시간이 빠르기 때문에, (=GF(3^m))에서의 효율적인 페어링 암호 연산 및 이에 사용되는 유한체 연산에 대한 연구가 주목을 받고 있다. 페어링 암호 기반의 암호 프로토콜 구현을 위하여 embedding degree가 상대적으로 작은 초특이 타원곡선이 매우 적합한 것으로 연구되었고, 위의 페어링 연산을 위해서는 embedding degree가 6 이며, E± : y2=x3-x±1로 정의된 초특이 타원곡선이 사용된다. 이 초특이 타원곡선을 이용하여 페어링 암호 연산을 수행하기 위해서는 먼저 주어진 메시지를 타원곡선 위의 점으로 작은 메모리를 이용하면서도 빠른 속도로 매핑하기 위한 과정이 필요하다.Unlike elliptic curves that use only elliptic curves over binary or decimal bodies, pairing ciphers also use elliptic curves over ternary numbers with a rank of 3. Because pairing ciphers on ternary are faster than on other finite bodies, Efficient pairing cipher operations at (= GF (3 ^ m)) and finite field operations used in them are receiving attention. A super elliptic curve with a relatively small embedding degree is well suited to implement a cryptographic protocol based on pairing cryptography. For the above pairing operation, the embedding degree is 6 and the super elliptic curve defined by E ± : y 2 = x 3- x ± 1 is used. In order to perform pairing encryption operation using this super elliptic curve, first, a process for mapping a given message to a point on the elliptic curve while using a small memory is required.
위에서의 타원곡선 암호에서는 메시지의 해쉬(Hash) 값을 x 좌표에 대입하고 타원곡선 식을 만족하는 y 좌표를 계산하는 것이 일반적이다. 위에서는 세제곱이 선형연산으로 비교적 가벼운 연산이므로 메시지의 해쉬 값을 y 좌표에 대입하고 타원곡선 식을 만족하는 x 좌표를 찾는 것이 연산량이 적다. In the elliptic curve cipher above, it is common to substitute a hash value of a message in x coordinates and calculate a y coordinate satisfying an elliptic curve expression. In the above, since the cube is a linear operation, it is less computational to substitute the hash value of the message for the y coordinate and find the x coordinate that satisfies the elliptic curve.
문헌 1에서는 위에서의 삼차방정식을 풂으로써 해당 x 좌표를 찾을 수 있도록 하였다. 이 삼차방정식을 풀기 위해서는 의 원소로 이루어진 (m-1)×(m-1) 행렬의 역행렬이 필요하고 이 역행렬을 y2-b의 계수들과 행렬 곱셈을 수행하여 x 좌표를 찾을 수 있게 된다. 따라서 연산량은 역행렬을 구하는 과정과 이 역행렬의 행렬 곱셈을 하는 과정에서 결정된다. 일단 역행렬을 찾은 뒤에는 주어진 y 좌표에 따라 행렬 곱셈만으로 x 좌표를 계산할 수 있으므로 다른 메시지 스트링의 MapToPoint을 위해서 계산된 역행렬은 저장되는 것이 바람직하다.In
문헌 1을 참조하면, Γ(x)=x3-x로 정의되는 매핑을 Γ : →?라 할 때, Γ의 kernel이 이므로, Γ 의 랭크는 m-1이 된다. 문헌 1의 매핑방법은 알고리즘 1과 같다.Referring to
문헌 1에서는 으로 정의하고 마지막 스텝에서는 τ(0x)<τ(1x)<τ(2x) 을 바탕으로 근을 선택한다.In
정의 1. a∈의 trace 를 Tr(a)라 한다.
알고리즘 1의 스텝 4에서는 삼차방정식을 풀기 위해 Tr(c)=0 을 확인함으로써 먼저 근이 있는지를 판단한다. 근이 있다면, Γ의 랭크가 m-1이므로 (m-1)×(m-1) 크기의 행렬 A를 생성하고 A의 역행렬 A- 1를 계산한다. 삼차방정식의 근은 와 선택된 x0∈으로 구한다.Step 4 of
BLS 스킴에서는 위에서와 동일한 방법을 사용하였기 때문에 MapToPoint의 연산량이 O(m3)으로 비교적 컸으나 문헌 1에서는 MapToPoint의 연산량을 O(m2)으로 줄였다. 그러나 타원곡선 위로 임의의 메시지를 매핑할 때, 메시지 매핑에 사용되는 행렬의 크기를 줄여 역행렬을 보다 더 빠르게 계산할 필요가 있다.In the BLS scheme Since the same method was used as above, the computation amount of MapToPoint was relatively large as O (m 3 ), but in
[문헌 1] P. Barreto and H.Y. Kim, “Fast hashing onto elliptic curves over fields of characteristic 3”, Cryptology ePrint Archive, Report 2001/098.
[문헌 2]P. Barreto, “A note on efficient computation of cube roots in characteristic 3”, Cryptology ePrint Archive: Report 2004/305, 2004.[Document 2] P. Barreto, “A note on efficient computation of cube roots in
[문헌 3] Young In Cho, Nam Su Chang, Chang Han Kim and Seokhie Hong, “Formulas for Cube roots in with Reduced Hamming weight”, submitted to Elsevier Discrete Applied Mathematics.[3] Young In Cho, Nam Su Chang, Chang Han Kim and Seokhie Hong, “Formulas for Cube roots in with Reduced Hamming weight ”, submitted to Elsevier Discrete Applied Mathematics.
[문헌 4] K. Harrison, D. Page andN. Smart, “Software implementation of finite fields of characteristic three, for use in pairing-based cryptosystems”, LMS Journal of Computation and Mathematics, vol. 5, pp. 181-193, 2002.[4] K. Harrison, D. Page and N. Smart, “Software implementation of finite fields of characteristic three, for use in pairing-based cryptosystems”, LMS Journal of Computation and Mathematics, vol. 5, pp. 181-193, 2002.
[문헌 5] IEEE P1363. Standard specifications for public key cryptography, 2000. http://grouper.ieee.org/groups/1363/index.html.[Reference 5] IEEE P1363. Standard specifications for public key cryptography, 2000. http://grouper.ieee.org/groups/1363/index.html.
따라서, 본 발명이 해결하고자 하는 첫 번째 과제는 메시지 매핑에 사용되는 행렬의 크기를 줄여 역행렬을 빠르게 계산할 수 있는 에서의 메시지 매핑 방법을 제공하는 것이다.Therefore, the first problem to be solved by the present invention is to reduce the size of the matrix used for message mapping to quickly calculate the inverse matrix To provide a message mapping method.
본 발명이 해결하고자 하는 두 번째 과제는 메시지 매핑에 사용되는 행렬의 크기를 줄여 역행렬을 빠르게 계산할 수 있는 에서의 페어링 암호 시스템을 제공하는 것이다.The second problem to be solved by the present invention is to reduce the size of the matrix used for message mapping to quickly calculate the inverse matrix To provide a pairing password system.
또한, 상기된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.Further, the present invention provides a computer-readable recording medium having recorded thereon a program for executing the above method on a computer.
본 발명은 상기 첫 번째 과제를 달성하기 위하여, 메시지의 해쉬 값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입하는 단계; 및 상기 해쉬 값을 상기 y좌표에 대입한 후, x좌표에 관한 방정식을 풂으로써, 상기 타원곡선 식을 만족하는 x좌표를 연산하는 단계를 포함하고, 상기 타원곡선 식에서 x로 표현되는 항들 각각에 세제곱을 하여 상기 방정식을 푸는 것을 특징으로 하는 에서의 메시지 매핑 방법을 제공한다.The present invention comprises the steps of substituting the hash value of the message to the y coordinate of the coordinates on the elliptic curve represented by (x, y) to achieve the first object; And substituting the hash value into the y-coordinate, and then subtracting an equation relating to the x-coordinate to calculate an x-coordinate that satisfies the elliptic curve, wherein each term represented by x in the elliptic curve equation is calculated. The cube is solved by solving the equation Provides a message mapping method in.
본 발명의 일 실시예에 의하면, 상기 x좌표를 연산하는 단계는, 상기 타원곡선 식의 x에 대한 다항식과 삼항기약다항식으로부터 상기 x의 계수를 생성하는 단계; 상기 생성된 다항식의 계수 분포를 참조하여, x의 계수를 가장 작게 사용하여 다항식을 표현하는 경우를 제외한 나머지 x의 계수를 이용하여 상기 x좌표를 연산하는 행렬을 생성하는 단계; 및 상기 생성된 행렬로부터 상기 x의 좌표를 연산하는 단계를 더 포함할 수 있다.According to an embodiment of the present invention, the calculating of the x coordinate comprises: generating a coefficient of x from a polynomial and a ternary polynomial for x of the elliptic curve equation; Generating a matrix for calculating the x-coordinate by using the coefficients of x except for expressing the polynomial by using the coefficient of x as the smallest by referring to the coefficient distribution of the generated polynomial; And calculating the coordinates of the x from the generated matrix.
또한, 상기 x의 좌표를 연산하는 단계는, 상기 생성된 행렬의 역행렬을 생성하는 단계; 및 상기 생성된 역행렬을 이용하여 상기 x의 좌표를 연산하는 단계를 포함할 수 있다.The computing of the coordinates of x may include generating an inverse of the generated matrix; And calculating coordinates of the x using the generated inverse matrix.
또한, 상기 제외된 x의 계수들은 상기 연산된 x의 계수들로부터 덧셈 연산되는 것이 바람직하다.Further, it is preferable that the coefficients of the excluded x are added to the calculated coefficients of x.
본 발명의 다른 실시예에 의하면, 상기 생성된 역행렬은 저장되어, 입력되는 y좌표에 대응하는 x좌표의 연산에 사용되는 것이 바람직하다.According to another embodiment of the present invention, the generated inverse matrix is preferably stored and used for the calculation of the x coordinate corresponding to the input y coordinate.
본 발명은 상기 두 번째 과제를 달성하기 위하여, 임의의 메시지 스트링을 수신하는 메시지 수신부; 상기 수신된 메시지 스트링을 코드화하는 변환부; 상기 코드화된 메시지 스트링을 해싱하는 해싱부; 및 상기 해싱된 값을 타원곡선 위의 점으로 매핑하는 매핑부를 포함하고, 상기 매핑부는 상기 해싱된 값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입하고, x좌표에 관한 방정식을 풂으로써, 상기 타원곡선 식을 만족하는 x좌표를 연산하되, 상기 타원곡선 식에서 x로 표현되는 항들 각각에 세제곱을 하여 상기 방정식을 푸는 것을 특징으로 하는 에서의 페어링 암호 시스템을 제공한다. The present invention to achieve the second object, the message receiving unit for receiving an arbitrary message string; A conversion unit encoding the received message string; A hashing unit hashing the coded message string; And a mapping unit that maps the hashed value to a point on an elliptic curve, wherein the mapping unit substitutes the hashed value into a y coordinate among coordinates on an elliptic curve expressed by (x, y) and attaches to the x coordinate. By computing the equations, the x coordinates satisfying the elliptic curve equation are calculated, and the cube is solved by performing a cube on each of the terms represented by x in the elliptic curve equation. Provides a pairing password system.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 에서의 메시지 매핑 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다. In order to solve the other technical problem, the present invention described above A computer readable recording medium having recorded thereon a program for executing a message mapping method in a computer is provided.
본 발명에 따르면, 메시지 매핑에 사용되는 행렬의 크기를 줄여 역행렬을 빠르게 계산할 수 있으며, 역행렬을 저장하는데 작은 메모리 공간이 필요하게 된다. According to the present invention, an inverse matrix can be quickly calculated by reducing the size of a matrix used for message mapping, and a small memory space is required to store the inverse matrix.
도 1은 본 발명의 바람직한 일 실시예에 따른 에서의 페어링 암호 시스템의 구성도이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 에서의 메시지 매핑 방법의 흐름도이다.
도 3은 수학식 3의 차수에 따른 Γ'(x)의 도표이다.
도 3은 m ≡ k ≡ 1(mod 3)일 때의 차수에 따른 Γ'(x)(=x-x1/3)의 도표를 도시한 것이다.
도 4는 m ≡ k ≡ 2(mod 3)일 때의 차수에 따른 Γ'(x)(=x-x1/3)의 도표를 도시한 것이다.1 is in accordance with a preferred embodiment of the present invention Is a schematic diagram of a pairing encryption system.
2 is in accordance with a preferred embodiment of the present invention Flowchart of message mapping method in.
3 is a diagram of Γ '(x) according to the order of Equation (3).
FIG. 3 shows a plot of Γ '(x) (= xx 1/3 ) according to order when m ≡ k ≡ 1 (mod 3).
FIG. 4 shows a plot of Γ '(x) (= xx 1/3 ) according to order when m ≡ k ≡ 2 (mod 3).
본 발명에 관한 구체적인 내용의 설명에 앞서 이해의 편의를 위해 본 발명이 해결하고자 하는 과제의 해결 방안의 개요 혹은 기술적 사상의 핵심을 우선 제시한다.Prior to the description of the specific contents of the present invention, for the convenience of understanding, the outline of the solution of the problem to be solved by the present invention or the core of the technical idea will be presented first.
본 발명의 일 실시예에 따른 에서의 메시지 매핑 방법은 메시지의 해쉬 값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입하는 단계; 및 상기 해쉬 값을 상기 y좌표에 대입한 후, x좌표에 관한 방정식을 풂으로써, 상기 타원곡선 식을 만족하는 x좌표를 연산하는 단계를 포함하고, 상기 타원곡선 식에서 x로 표현되는 항들 각각에 세제곱을 하여 상기 방정식을 푸는 것을 특징으로 한다.According to one embodiment of the present invention Message mapping method in the step of assigning a hash value of the message to the y coordinate of the coordinates on the elliptic curve represented by (x, y); And substituting the hash value into the y-coordinate, and then subtracting an equation relating to the x-coordinate to calculate an x-coordinate that satisfies the elliptic curve, wherein each term represented by x in the elliptic curve equation is calculated. It is characterized by solving the equation by cubes.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명한다. 그러나 이들 실시예는 본 발명을 보다 구체적으로 설명하기 위한 것으로, 본 발명의 범위가 이에 의하여 제한되지 않는다는 것은 당업계의 통상의 지식을 가진 자에게 자명할 것이다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, these examples are intended to illustrate the present invention in more detail, it will be apparent to those skilled in the art that the scope of the present invention is not limited thereby.
본 발명이 해결하고자 하는 과제의 해결 방안을 명확하게 하기 위한 발명의 구성을 본 발명의 바람직한 실시예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명 그리고 그 이외의 제반 사항이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다.The configuration of the invention for clarifying the solution to the problem to be solved by the present invention will be described in detail with reference to the accompanying drawings based on the preferred embodiment of the present invention, the operation principle for the preferred embodiment of the present invention in detail In the description, when it is determined that the detailed description of the known function or configuration and other matters unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한 어떤 구성 요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.In addition, throughout the specification, when a part is 'connected' to another part, it is not only 'directly connected' but also 'indirectly connected' with another element in between. Include. In addition, the term 'comprising' a certain component means that the component may be further included, without excluding the other component unless specifically stated otherwise.
도 1은 본 발명의 바람직한 일 실시예에 따른 에서의 페어링 암호 시스템의 구성도이다.1 is in accordance with a preferred embodiment of the present invention Is a schematic diagram of a pairing encryption system.
도 1을 참조하면, 본 실시예에 따른 페어링 암호 시스템은 메시지 수신부(100), 변환부(110), 해싱부(120), 및 매핑부(130)로 구성된다.Referring to FIG. 1, the pairing encryption system according to the present embodiment includes a
메시지 수신부(100)는 암호화하고자 하는 임의의 메시지 스트링을 수신한다. The
변환부(110)는 수신된 메시지 스트링을 타원곡선의 좌표값으로 입력할 수 있도록 숫자로 변환한다.The
해싱부(120)는 변환된 숫자를 해쉬 함수에 대입하여 해쉬값을 생성한다.The
매핑부(130)는 상기 해쉬값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입하고, x좌표에 관한 방정식을 풂으로써, 타원곡선 식을 만족하는 x좌표를 연산한다. 이때, 타원곡선 식에서 x로 표현되는 항들 각각에 세제곱을 하여 상기 방정식을 푸는 것이 바람직하다. 결과적으로 매핑부(130)는 메시지 수신부(100)가 수신한 메시지 스트링에 대응하는 타원곡선 위의 좌표값을 생성하게 된다.The
이하에서는 매핑부(130)가 페어링 연산을 위해 위에서 메시지 스트링을 G1의 원소로 매핑하는 과정을 MapToPoint이라 하고 이를 효율적으로 수행할 수 있는 방법을 설명하기로 한다.Hereinafter, the
도 2는 본 발명의 바람직한 일 실시예에 따른 에서의 메시지 매핑 방법의 흐름도이다.2 is in accordance with a preferred embodiment of the present invention Flowchart of message mapping method in.
도 2를 참조하면, 본 실시예에 따른 메시지 매핑 방법은 도 1에 도시된 에서의 페어링 암호 시스템에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 1에 도시된 페어링 암호 시스템에 관하여 이상에서 기술된 내용은 본 실시예에 따른 에서의 메시지 매핑 방법에도 적용된다. Referring to FIG. 2, the message mapping method according to the present embodiment is illustrated in FIG. 1. It consists of the steps that are processed in a time series in a pairing cryptosystem. Therefore, even if omitted below, the contents described above with respect to the pairing encryption system shown in FIG. 1 are according to the present embodiment. The same applies to the message mapping method in.
200 단계에서 페어링 암호 시스템은 메시지의 해쉬값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입한다.In
210 단계에서 페어링 암호 시스템은 타원곡선 식에서 x로 표현되는 항들 각각에 세제곱을 한다. 이때, y로 표현되는 항과 상수항은 같이 계산된 후, 전체에 대하여 세제곱을 한다. 즉, 타원 곡선이 y2=x3-x+b로 표현되는 경우, (y2-b)1/3=(x3-x)1/3=x-x1/3이 된다.In step 210, the paired cryptographic system cubes each of the terms represented by x in the elliptic curve equation. In this case, the term expressed by y and the constant term are calculated together, and then cubed over the whole. That is, when the elliptic curve is represented by y 2 = x 3 -x + b, (y 2 -b) 1/3 = (x 3 -x) 1/3 = xx 1/3 .
220 단계에서 페어링 암호 시스템은 타원곡선 식의 x에 대한 다항식과 삼항기약다항식으로부터 x의 계수를 생성한다. In
230 단계에서 페어링 암호 시스템은 생성된 다항식의 계수 분포를 참조하여, x의 계수를 가장 작게 사용하여 다항식을 표현하는 경우를 제외한 나머지 x의 계수를 이용하여 상기 x좌표를 연산하는 행렬을 생성한다.In operation 230, the pairing encryption system generates a matrix for calculating the x-coordinate by using the coefficients of x except for expressing the polynomial using the smallest coefficient of x by referring to the coefficient distribution of the generated polynomial.
240 단계에서 페어링 암호 시스템은 생성된 행렬의 역행렬을 생성한다. In
250 단계에서 페어링 암호 시스템은 생성된 역행렬을 이용하여 수신된 y좌표에 상응하는 x의 좌표를 연산한다.
In
210 단계를 보다 상세하게 살펴보면 다음과 같다.Looking at step 210 in more detail as follows.
알고리즘 1의 방법과 달리 210 단계에서는 230 단계의 행렬 A를 생성하기 위해서 x의 세제곱근을 사용한다. 즉, 문헌 1에서는 Γ(x)(=x3-x)을 위해 x의 세제곱을 사용했으나 210 단계에서는 Γ'(x)=x-x1/3으로 정의되는 함수 Γ' : →?을 이용한다. 에서는 aa3 으로의 매핑이 permutation이므로 모든 원소는 유일한 세제곱근을 갖는다. 따라서 (y2-b)1/3=(x3-x)1/3=x-x1/3을 만족하는 d=(y2-b)1/3를 계산할 수 있으며 d=Γ'(x)을 풂으로써 x 좌표를 얻게 된다.Unlike the method of
Γ'(x)를 위해서 x의 세제곱이 아닌 세제곱근을 이용하는 이유는 생성 삼항기약다항식이 일 때, x의 세제곱을 계산할 때는 m과 k의 값에 따라 x의 계수가 서로 다르게 분포되지만 x의 세제곱근을 계산할 때는 m≡k(mod 3) 인 경우에 같은 패턴으로 x의 계수가 분포되기 때문이다. 이로 인해 Γ'(x)의 행렬 표현 A를 보다 편리하게 축소시킬 수 있게 된다.
The reason for using the cube root rather than the cube of x for Γ '(x) is that the resulting ternary polynomial polynomial Since the coefficients of x are distributed differently according to the values of m and k when calculating the cube of x, but the coefficients of x are distributed in the same pattern when m≡k (mod 3) when calculating the cube root of x. to be. This makes it possible to more conveniently reduce the matrix representation A of Γ '(x).
220 단계 내지 240 단계를 보다 상세하게 살펴보면 다음과 같다.Looking at
특히, 230 단계에서는 행렬 A를 축소하는 과정을 거치게 된다.In particular, in step 230, the process of reducing the matrix A is performed.
가 의 생성 삼항기약다항식이라고 할 때, 라 하자. 에서의 세제곱근 연산을 살펴보면, 우선 임의의 자연수 u에 대하여 m=3u라 하자. (m ≡±1 (mod 3)인 경우도 유사하게 적용할 수 있다.) 그러면 x∈에 대하여 다음의 수학식 1과 같이 표현되고, end When we say that the ternary polynomial polynomial of Let's say. Looking at the cube root operation at, let m = 3 u for any natural number u. (The same applies to the case of m ≡ ± 1 (mod 3).) Then x∈ With respect to
이고 이 식을 이용한 x의 세제곱 연산식은 다음의 수학식 2와 같다.The cube of x using this equation is the same as the following equation (2).
s1 /3과 s2 /3가 사전계산 되었다면, 수학식 2를 이용하여 단지 두 번의 다항식 곱셈만으로 세제곱근을 계산할 수 있다. 이 다항식 곱셈을 할 때, s1 /3과 s2 /3의 다항식 표현이 작은 개수의 항을 갖는다면 보다 효율적으로 연산이 이루어진다. m≡k (mod 3)인 경우 s1 /3과 s2 /3의 다항식 표현이 매우 작은 개수의 항을 가지므로 가장 효율적으로 세제곱 연산을 할 수 있다.The 1 s / 3 s and 2/3 if the pre-computation, we can calculate the cube root of only just two polynomial multiplication by using the equation (2). When the polynomial multiplication, s, if having a 1/3 and s 2/3, wherein the polynomial expression is of a small number is made more efficient operation. If the m≡k (mod 3), so 1 s / 3 and a polynomial representation of s 2/3, wherein the two kinds of very small number may be the cubic operation most efficiently.
m≡k (mod 3)인 형태의 삼항 기약다항식을 cube root-friendly trinomial이라 하며 실제로 대부분의 위의 페어링 암호 연산 연구에서 이 cube root-friendly trinomial을 고려하고 있다. 이를 이용할 경우, 같은 값에 대하여 세제곱 보다 세제곱근 연산이 더 적은 덧셈 연산을 필요로 하게 된다. 본 발명에서는 세제곱근 연산에 유리한 cube root-friendly trinomial을 대상으로 MapToPoint를 전개하나 이에 한정되지 아니하며, non-cube root friendly irreducible trinomial에 대해서도 MapToPoint 방법을 이용할 수 있다.
Ternary polynomials of the form m≡k (mod 3) are called cube root-friendly trinomial The cube root-friendly trinomial is considered in the pairing cryptographic study above. Using this, the addition of fewer cube root operations than the cube of the same value requires. In the present invention, MapToPoint is developed for a cube root-friendly trinomial, which is advantageous for cube root calculation, but the present invention is not limited thereto. The MapToPoint method may be used for non-cube root friendly irreducible trinomial.
우선, 첫번째로 Cube root friendly irreducible trinomials(m ≡ k mod 3)를 이용하여 Γ'(x)의 행렬 표현 A를 축소시키는 방법과 이것의 역행렬을 구하는 방법을 살펴본다.First, we look at how to reduce the matrix representation A of Γ '(x) and find its inverse using Cube root friendly irreducible trinomials (m 과 k mod 3).
m≡1(mod 3) 또는 m≡2(mod 3)인 각 경우에 대하여 축소된 Γ'(x)의 행렬 표현 를 구한다.Matrix representation of reduced Γ '(x) for each case of m≡1 (mod 3) or m≡2 (mod 3) .
m ≡ k ≡ 1?(m ≡ k ≡ 1? ( modmod 3)인 경우 3)
m ≡ 1?(mod 3), k ≡ 1 (mod 3)이라 하면 임의의 양수 u와 v에 대하여(u>v) m=3u+1이고, k=3v+1라 하자.If m ≡ 1? (mod 3) and k ≡ 1 (mod 3), let m = 3u + 1 and k = 3v + 1 for any positive u and v (u> v).
에서 x3u+1+ax3v +1+b=0이므로, 문헌 2에 의하여 X 3u + 1 + ax 3v +1 + b = 0,
s1 /3=s2u +1-αsu +v+1+s2v +1과 s2 /3=-βsu +1-αβsv + 1를 구할 수 있다. 따라서 Γ'(x)는 다음의 수학식 3과 같이 표현된다. 1 s / 3 s = 2u u + v +1 -αs + 1 + 2v +1 s and s 2/3 = -βs u +1 -αβs v + 1 can be determined. Therefore, Γ '(x) is expressed as
이고, 이때, , , , 이다.Where, , , , to be.
예제를 통하여 를 생성하기 위한 사전계산과정을 설명하기로 한다.By example The precomputation process for generating the data will be described.
생성 삼항기약다항식이 이라 하면 u=4, v=1이고, s1 /3=s9-s6+s3과 s2 /3=s5+s2를 구할 수 있다. Ternary polynomial As when u = 4, v = 1, and can obtain the s 1/3 = s 9 -s 6 +
표 1은 일 때, d=Γ'(x)=x-x1/3의 다항식 표현을 나타낸 것이다.Table 1 , The polynomial representation of d = Γ '(x) = xx 1/3 .
표 1에서 d0=0이고, 각 d1, d10, d11, d12는 x의 계수 중 두 원소의 뺄셈으로 이루어졌다. 이제 이들을 제거하여 행렬 A를 축소하는 과정을 살펴본다. In Table 1, d 0 = 0, and each of d 1 , d 10 , d 11 , and d 12 consisted of the subtraction of two elements of the coefficient of x. Now let's take a look at the process of shrinking matrix A by removing them.
x1은 d1, d3, d6, d9에 나타나고 d3'=d3+d1, d6'=d6-d1, 그리고 d9'=d9+d1을 계산하고, (d3, d6, d9)를 (d3', d6', d9')으로 교체함으로써 표 1에서 x1을 삭제하고 d1을 제거할 수 있다. 다음으로 x10은 d6, d9, d10, d12에 나타나고 x10을 삭제하기 위해 d6'=d6'+d10, d9'=d9'-d10, d12'=d12+d10을 계산한다. 그리고 d12을 d12′으로 교체한다. 유사한 과정을 x11과 x12에 수행하면 다음의 수학식 4를 얻는다.x 1 appears in d 1 , d 3 , d 6 , d 9 and calculates d 3 '= d 3 + d 1 , d 6 ' = d 6 -d 1 , and d 9 '= d 9 + d 1 , By replacing (d 3 , d 6 , d 9 ) with (d 3 ′, d 6 ′, d 9 ′), x 1 can be deleted from Table 1 and d 1 can be removed. Next, x 10 appears in d 6 , d 9 , d 10 , d 12 and d 6 '= d 6 ' + d 10 , d 9 '= d 9 ' -d 10 , d 12 '= to delete x 10 . Calculate d 12 + d 10 . And replace d 12 with d 12 ′. Performing a similar process on x 11 and x 12 yields
따라서 = 을 만족하는 축소된 행렬 을 구할 수 있고 아래의 수학식 5와 같은 행렬 곱셈을 통하여 을 구할 수 있다.therefore = Reduced matrix satisfying Can be obtained through matrix multiplication as shown in Equation 5 below. Can be obtained.
마지막으로 을 복원하기 위하여 단지 x1=d1+x3, x10=d10+x4, x11=d11+x7, x12=d12+x10만을 계산하면 된다. 여기서 크기가 12×12인 A 대신에 크기가 8×8인 을 사용함으로써 역행렬 연산 시간 및 저장 공간과 행렬 곱셈 연산량을 줄일 수 있게 된다.
Finally To reconstruct, only x 1 = d 1 + x 3 , x 10 = d 10 + x 4 , x 11 = d 11 + x 7 , x 12 = d 12 + x 10 . Where the size is 8x8 instead of the 12x12 A By using, the inverse matrix operation time, storage space, and matrix multiplication computation can be reduced.
이제 일반적인 경우에 대하여 행렬 A를 축소하는 방법을 살펴본다. Now let's look at how to reduce the matrix A for the general case.
도 3은 m ≡ k ≡ 1(mod 3)일 때의 차수에 따른 Γ'(x)(=x-x1/3)의 도표를 도시한 것으로, 수학식 3의 차수에 따른 Γ'(x)의 도표이다. FIG. 3 is a diagram of Γ '(x) (= xx 1/3 ) according to the order when m ≡ k ≡ 1 (mod 3), and Γ' (x) according to the order of
도 3을 참조하면, Part 1과 Part 2의 각 di들은 x의 계수 중 두 원소의 뺄셈으로 이루어진다.Referring to FIG. 3, each of d i of
다시 말해서 Part 1에는 di=xi-x3i(i=0,....,v), Part 2에는 d2u +v+j=x2u+v+j-x3v+3j+1(j=1,....,u-v)가 존재한다.In other words, in Part 1 d i = x i -x 3i (i = 0, ...., v) and in Part 2 d 2u + v + j = x 2u + v + j -x 3v + 3j + 1 ( j = 1, ...., uv).
앞서 보인 예제에서처럼 축소된 행렬 을 생성하기 위한 사전 계산은 Γ'(x)의 행렬 표현인 A에서 Part 1과 Part 2를 제거하는 것이다. 예를 들어 Part 1의 d1=x1-x3이고 x1은 d2v +1, du +v+1, 그리고 d2u +1에 존재한다.Reduced matrix as in the previous example The precomputation to generate is to remove
d2v +1'=d2v +1+d1, du +v+1'=du +v+1-α·d1, 그리고 d2u +1'=d2u +1+d1을 계산함으로써, x1을 삭제하고 d1을 제거할 수 있다. 이러한 과정을 (d2,...,dv,d2u +v+1,..., d3u)에 대하여 반복하고, (d2,...,dv,d2u +v+1,..., d3u)을 (d2',...,dv',d2u +v+1',..., d3u')으로 교체한다. 알고리즘 2는 Part 1을 제거하는 과정을 알고리즘으로 표현한 것이다. Part 2 제거 또한 매우 유사하게 이루어진다. Calculate d 2v +1 '= d 2v +1 + d 1 , d u + v + 1 ' = d u + v + 1 -α · d 1 , and d 2u +1 '= d 2u +1 + d 1 By deleting x 1 , d 1 can be removed. Repeat this process for (d 2 , ..., d v , d 2u + v + 1 , ..., d 3u ), and (d 2 , ..., d v , d 2u + v + 1 , ..., d 3u ) is replaced by (d 2 ', ..., d v ', d 2u + v + 1 ', ..., d 3u ').
위의 사전계산 전에 추가적인 연산이 필요할 수 있는데, 만약 d1=x1-x3과 d3=x3-x9가 모두 Part 1에 속해 있다면 x1을 삭제하는 과정에서 x3이 d2u +1, du +v+1, 그리고 d2v +1에 더해지거나 빼지게 된다. 따라서 예상하지 않던 위치에 x3이 생기게 되고 그러면 d3을 제거하는 과정에서 x3의 삭제가 복잡하게 된다. 이런 상황을 방지하기 위하여 d1'=d1+d3=x1-x9을 계산하여 d1과 d1′을 교체한 후 사전계산을 시작한다. 사전 계산 전의 이러한 추가적인 연산은 알고리즘 2의 step 2 ~ 6에 해당한다.There is an additional operation may be required before pre-calculated above, if the d 1 = x 1 -x 3 and d 3 = x 3 -x 9 x 3 are both in the process of deleting the x 1 if belonging to Part 1 d 2u + It is added to or subtracted from 1 , d u + v + 1 , and d 2v +1 . Thus, x 3 is created in an unexpected position, which complicates the deletion of x 3 in the process of removing d 3 . To avoid this situation, calculate d 1 '= d 1 + d 3 = x 1 -x 9 , replace d 1 and d 1 ′ and start precalculation. These additional operations before precomputation correspond to
사전계산 후에 과 이들의 해당 x 좌표 계수를 얻어 를 생성한다. 다음으로 을 계산함으로써 (xv +1,..., x2u+v)을 구한다. 마지막으로 알고리즘 3의 step 8 ~ 13에서처럼 (x1,...,xv,x2u+v+1,...x3u)을 복원함으로써 x 좌표의 전체 계수를 구한다. 이어서 m ≡ k ≡ 2 (mod 3)인 경우에 대해서도 d=Γ'(x)의 근을 찾도록 한다. 이는 앞서 설명한 과정과 유사하다.After precomputation And their corresponding x coordinate coefficients . to the next Find (x v +1 , ..., x 2u + v ) by calculating. Finally, we compute the total coefficient of x coordinate by restoring (x 1 , ..., x v , x 2u + v + 1 , ... x 3u ) as in steps 8 to 13 of
m ≡ k ≡ 2?(m ≡ k ≡ 2? ( modmod 3)인 경우 3)
m ≡ 2?(mod 3), k ≡ 2 (mod 3)이라 하면 임의의 양수 u와 v에 대하여(u>v) m=3u+2이고, k=3v+2라 하자. 에서 x3u+2+ax3v +2+b=0이므로, 문헌 2에 의하여 s1 /3=-βsu +1-αβsv +1과 s2 /3=s2u +2-αsu +v+2+s2v +2를 구할 수 있다. 따라서 Γ'(x)는 다음의 수학식 6과 같이 표현된다.If m ≡ 2? (mod 3) and k ≡ 2 (mod 3), then m = 3u + 2 and k = 3v + 2 for any positive u and v (u> v). In x 3u + 2 + ax 3v +2 + b = 0 , so, by literature 2 s 1/3 = -βs u +1 -αβs v +1 and s 2/3 = s 2u +2 -αs u + v +2 + s 2v +2 Therefore, Γ '(x) is expressed as in Equation 6 below.
이고, 이때, , , , 이다.Where, , , , to be.
도 4는 m ≡ k ≡ 2(mod 3)일 때의 차수에 따른 Γ'(x)(=x-x1/3)의 도표를 도시한 것이다. 알고리즘 4는 Part1 제거 과정을 나타내고 알고리즘 5는 MapToPoint을 나타낸다.FIG. 4 shows a plot of Γ '(x) (= xx 1/3 ) according to order when m ≡ k ≡ 2 (mod 3). Algorithm 4 represents the Part1 removal process and Algorithm 5 represents MapToPoint.
이상에서는 m≡1(mod 3) 또는 m≡2(mod 3)인 각 경우에 대하여 축소된 Γ'(x)의 행렬 표현 를 구하는 과정에 대하여 살펴보았다.
The matrix representation of reduced Γ '(x) for each case of m≡1 (mod 3) or m≡2 (mod 3). We looked at the process of obtaining.
이하에서는 생성 삼항기약다항식이 cube root-friendly trinomial이 아닌 경우 Γ'(x)의 행렬 표현 A를 축소시키는 방법을 대략적으로 설명한다. Hereinafter, the method of reducing the matrix representation A of Γ '(x) will be described in general when the generated ternary polynomial is not a cube root-friendly trinomial.
즉, 나머지 Irreducible Trinomials(m≠k(mod 3)) 이용한 경우로서, m ≠ ± k(mod 3)인 경우에 대하여 문헌 3에서는 Shifted polynomial basis(SPB)를 이용하여 cube root-friendly trinomial을 사용했을 때와 같은 연산량으로 세제곱근을 구할 수 있는 방법을 제안하였다. 문헌 3에 따르면 cube root-friendly trinomial을 사용했을 때와 같이 s1 /3과 s2 /3의 다항식 표현을 매우 작은 개수의 항으로 표현할 수 있으므로 이상에서 살펴본 행렬 생성과 축소 방법을 그대로 적용할 수 있다. m ≡ -k(mod 3)인 경우에는 s1 /3과 s2 /3의 다항식 표현이 많은 개수의 항을 가지므로 세제곱근 연산량이 비교적 크게 된다. 이는 행렬 A로부터 를 얻는 것이 매우 복잡하기 때문에 세제곱을 이용한 방법을 이용하는 것이 유리하다는 것을 의미한다. 세제곱을 이용한다고 하면 생성 삼항 기약다항식에 따라 사전계산이 달라져야 하는 단점이 있으나 마찬가지로 행렬을 축소할 수 있을 것이다.
That is, in the case of using the remaining Irreducible Trinomials (m ≠ k (mod 3)), and m ≠ ± k (mod 3), in
본 발명의 실시예들에서는 Γ'(x)의 행렬 표현을 축소하여 MapToPoint를 효율적으로 수행할 수 있는 방법을 제시하고 있다.Embodiments of the present invention propose a method of efficiently performing MapToPoint by reducing a matrix representation of Γ '(x).
이때, Part 1과 Part 2을 제거하기 위한 덧셈과 x 좌표의 일부를 복원하기 위한 덧셈은 매우 가벼운 연산이므로 MapToPoint의 연산량은 의 역행렬 계산과 의 행렬 곱셈에서 결정된다. 문헌 4에서는 에서의 유한체 연산을 구현하기 적합한 원소 표현 방법 두 가지를 제안하였다. 이중 Type Ⅱ 표현은 에서의 원소 표현과 유사하며 각 ai∈을 ai=를 만족하는 (,) 두 비트로 유일하게 표현하였다. 여기서 과 는 동시에 1이 아니다. 본 발명의 실시예에서는 이 Type Ⅱ 표현 방법을 이용하여 MapToPoint 방법을 구현하였다. 과 위의 초특이 타원곡선 E- : y2=x3-x-1, 위의 초특이 타원곡선 E+ : y2=x3-x+1과 cube root-friendly trinomial : , , 을 이용하였다. 역행렬 연산은 일반적인 가우스 소거법보다 약 m/4배 빠른 LU 분해 방법을 사용하였다. 문헌 1의 결과와 비교했을 때, 역행렬은 3~5배 가량 빨리 연산 할 수 있으며 이 역행렬을 저장하기 위해서는 4/9(44%)의 메모리만이 필요하였다. 또한 역행렬이 주어졌을 때 MapToPoint를 위한 행렬 곱셈은 2~3배 정도 빠르다. 이들의 구현 결과는 표 3에 주어졌으며 각 연산 시간은 표 2의 연산이 수행되는 동안 측정되었다.In this case, addition to remove
한편, 타원곡선위의 점을 전송할 때 대역폭 절약을 위해 (x,y)좌표 모두를 전송하는 대신 둘 중 하나만을 전송한 후 다른 하나는 수신자가 복원하는 방법을 Point Compression이라 한다. 위의 타원곡선 암호에서는 수신자에게 160 비트 이상의 x 좌표와 1 비트의 y 좌표 부호가 주어지고 수신자는 타원곡선 이차식을 만족하는 y좌표를 구하게 된다. 위에서는 x 좌표와 1 비트의 y'=y(mod 2)가 주어진다. 과 에서의 point compression 방법은 문헌 5에 자세하게 설명되어있다. 본 발명의 실시예에 따른 MapToPoint 방법을 에서의 point compression에 효과적으로 적용할 수 있는데 이때는 y 좌표와 x0 및 복원할 x 좌표의 부호까지 모두 3 비트가 추가로 주어져야 하며, point decompression시에 적합한 x 좌표를 연산하는데 있어 가장 빠른 알고리즘을 제공할 수 있다.Meanwhile, instead of transmitting all of the (x, y) coordinates in order to save bandwidth when transmitting a point on an elliptic curve, a method of restoring the other by the receiver is called Point Compression. In the above elliptic curve cipher, the receiver is given more than 160 bits of x coordinate and 1 bit of y coordinate code, and the receiver finds the y coordinate satisfying the elliptic curve quadratic. This gives the x coordinate and one bit y '= y (mod 2). and The method of point compression in is described in detail in Literature 5. MapToPoint method according to an embodiment of the present invention It can be effectively applied to the point compression at. In this case, additional 3 bits should be given to the y coordinate, x 0 and the sign of the x coordinate to be restored, which will provide the fastest algorithm for calculating the appropriate x coordinate during point decompression. Can be.
본 발명에서는 임의의 메시지 스트링을 위의 타원곡선 점으로 보다 효율적으로 매핑하는 방법을 제시하고 있다. 덧셈 연산이 다른 연산에 비해 훨씬 가벼우므로 그 횟수를 늘려 MapToPoint을 위한 행렬의 크기를 줄였다. In the present invention, any message string We present a more efficient mapping method to the elliptic curve points above. Since the addition operation is much lighter than other operations, we increased the number of times to reduce the size of the matrix for MapToPoint.
구체적으로 문헌 1에서 사용된 행렬 크기를 (m-1)×(m-1)에서 으로 줄임으로써, 역행렬을 3 ~ 5배 빠르게 계산할 수 있으며 역행렬의 크기가 기존에 비해 44%로 작아졌으므로 이를 저장하기 위한 메모리 또한 기존의 44%만 필요하게 된다. 또한 역행렬과 y2-b의 계수의 행렬 곱셈 연산량도 줄어들게 되므로 결과적으로 역행렬이 주어졌을 때 MapToPoint를 2 ~ 3배 정도 빠르게 할 수 있다. 따라서 본 발명에 따른 MapToPoint 방법은 유비쿼터스 환경 등의 제한된 저장 공간과 컴퓨팅 파워를 갖는 장비에 효과적으로 적용가능하다.Specifically, the matrix size used in
본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Embodiments of the present invention may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. In the present invention as described above has been described by the specific embodiments, such as specific components and limited embodiments and drawings, but this is provided to help a more general understanding of the present invention, the present invention is not limited to the above embodiments. For those skilled in the art, various modifications and variations are possible from these descriptions.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .
공개키 암호 시스템, 페어링 암호 시스템 등에 사용될 수 있다.It can be used for public key cryptosystem, pairing cryptosystem, etc.
Claims (11)
(b)상기 해쉬 값을 상기 y좌표에 대입한 후, 상기 y좌표에 해당하는 상기 타원곡선 위의 x좌표를 연산하는 단계를 포함하고,
상기 (b)단계는 상기 (x,y)로 표현되는 타원곡선의 식에서 x로 표현되는 항들 각각에 세제곱을 하여 상기 식을 상기 x에 관해 풀어 이루어지는 것을 특징으로 하는 에서의 메시지 매핑 방법.(a) assigning a hash value of the message to a y coordinate of coordinates on an elliptic curve represented by (x, y); And
(b) assigning the hash value to the y-coordinate, and then calculating an x-coordinate on the elliptic curve corresponding to the y-coordinate,
Step (b) is a cube of each of the terms represented by x in the equation of the elliptic curve represented by the (x, y) is characterized in that the equation is solved with respect to x How messages are mapped.
상기 (b)단계는,
(b1)상기 타원곡선의 식의 x에 대한 다항식과 삼항기약다항식으로부터 상기 x의 계수를 생성하는 단계;
(b2)상기 생성된 다항식의 계수 분포를 참조하여, x의 계수를 가장 작게 사용하여 다항식을 표현하는 경우를 제외한 나머지 x의 계수를 이용하여 상기 x좌표를 연산하는 행렬을 생성하는 단계; 및
(b3)상기 생성된 행렬로부터 상기 x의 좌표를 연산하는 단계를 더 포함하는 에서의 메시지 매핑 방법.The method of claim 1,
The step (b)
(b1) generating a coefficient of x from a polynomial and a ternary polynomial with respect to x in the elliptic curve;
(b2) generating a matrix for calculating the x-coordinate by using the remaining coefficients of x except for expressing the polynomial using the smallest coefficient of x with reference to the generated coefficient distribution of the polynomial; And
(b3) further comprising calculating coordinates of the x from the generated matrix. How messages are mapped.
상기 (b3)단계는,
(b31)상기 생성된 행렬의 역행렬을 생성하는 단계; 및
(b32)상기 생성된 역행렬을 이용하여 상기 x의 좌표를 연산하는 단계를 포함하는 것을 특징으로 하는 에서의 메시지 매핑 방법.The method of claim 2,
Step (b3),
(b31) generating an inverse of the generated matrix; And
(b32) calculating the coordinates of the x using the generated inverse matrix; How messages are mapped.
상기 제외된 x의 계수들은 상기 연산된 x의 계수들로부터 덧셈 연산되는 것을 특징으로 하는 에서의 메시지 매핑 방법.The method of claim 2,
And the coefficients of the excluded x are added to the calculated coefficients of x. How messages are mapped.
상기 생성된 역행렬은 저장되어, 입력되는 y좌표에 대응하는 x좌표의 연산에 사용되는 것을 특징으로 하는 에서의 메시지 매핑 방법.The method of claim 3, wherein
The generated inverse matrix is stored and used to calculate the x coordinate corresponding to the input y coordinate. How messages are mapped.
상기 수신된 메시지 스트링을 코드화하는 변환부;
상기 코드화된 메시지 스트링을 해싱하는 해싱부; 및
상기 해싱된 값을 타원곡선 위의 점으로 매핑하는 매핑부를 포함하고,
상기 매핑부는 상기 해싱된 값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입하고, 상기 y좌표에 해당하는 상기 타원곡선 위의 x좌표를 연산하되, 상기 (x,y)로 표현되는 타원곡선의 식에서 x로 표현되는 항들 각각에 세제곱을 하여 상기 식을 상기 x에 관해 풀어 상기 x좌표를 연산하는 것을 특징으로 하는 에서의 페어링 암호 시스템.A message receiver for receiving an arbitrary message string;
A conversion unit encoding the received message string;
A hashing unit hashing the coded message string; And
A mapping unit for mapping the hashed value to a point on an elliptic curve,
The mapping unit substitutes the hashed value into y coordinates among the coordinates on the elliptic curve represented by (x, y), and calculates the x coordinate on the elliptic curve corresponding to the y coordinate, wherein (x, y In the equation of the elliptic curve expressed by), a cube is applied to each of the terms represented by x to solve the equation with respect to x to calculate the x coordinate. Pairing password system on.
상기 매핑부는,
상기 타원곡선 식의 x에 대한 다항식과 삼항기약다항식으로부터 상기 x의 계수를 생성하고, 상기 생성된 다항식의 계수 분포를 참조하여, x의 계수를 가장 작게 사용하여 다항식을 표현하는 경우를 제외한 나머지 x의 계수를 이용하여 상기 x좌표를 연산하는 행렬을 생성한 다음, 상기 생성된 행렬로부터 상기 x의 좌표를 연산하는 것을 특징으로 하는 에서의 페어링 암호 시스템.The method according to claim 6,
The mapping unit,
Except for generating a coefficient of x from a polynomial and a ternary polynomial of x of the elliptic curve formula, and referring to the coefficient distribution of the generated polynomial, the coefficient of x is used to represent the polynomial with the smallest x. After generating a matrix for calculating the x-coordinate using the coefficient of, and calculates the coordinate of the x from the generated matrix Pairing password system on.
상기 x의 좌표를 연산하는 것은 상기 생성된 행렬의 역행렬을 생성하고, 상기 생성된 역행렬을 이용하여 상기 x의 좌표를 연산하는 것을 특징으로 하는 에서의 페어링 암호 시스템.The method of claim 7, wherein
Computing the coordinates of x generates an inverse of the generated matrix, and calculates the coordinates of the x using the generated inverse matrix. Pairing password system on.
상기 제외된 x의 계수들은 상기 연산된 x의 계수들로부터 덧셈 연산되는 것을 특징으로 하는 에서의 페어링 암호 시스템.The method of claim 7, wherein
And the coefficients of the excluded x are added to the calculated coefficients of x. Pairing password system on.
상기 생성된 역행렬은 저장되어, 입력되는 y좌표에 대응하는 x좌표의 연산에 사용되는 것을 특징으로 하는 에서의 페어링 암호 시스템.The method of claim 8,
The generated inverse matrix is stored and used to calculate the x coordinate corresponding to the input y coordinate. Pairing password system on.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110017994A KR101214789B1 (en) | 2011-02-28 | 2011-02-28 | Method of mapping messages to points on elliptic curve over GF(3^m) and pairing-based cryptosystem using it |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110017994A KR101214789B1 (en) | 2011-02-28 | 2011-02-28 | Method of mapping messages to points on elliptic curve over GF(3^m) and pairing-based cryptosystem using it |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120101243A KR20120101243A (en) | 2012-09-13 |
KR101214789B1 true KR101214789B1 (en) | 2012-12-26 |
Family
ID=47110481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110017994A KR101214789B1 (en) | 2011-02-28 | 2011-02-28 | Method of mapping messages to points on elliptic curve over GF(3^m) and pairing-based cryptosystem using it |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101214789B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339546B (en) * | 2020-03-20 | 2023-12-01 | 苏州链原信息科技有限公司 | Method for generating data tag, electronic device and computer storage medium |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100954579B1 (en) | 2008-02-20 | 2010-04-26 | 고려대학교 산학협력단 | Serial apparatus and method for finite field multiplication using polynomial basis |
KR100954584B1 (en) | 2008-04-26 | 2010-04-26 | 고려대학교 산학협력단 | Apparatus and Method for MSD first GF3^m serial multiplication and Recording medium using this |
-
2011
- 2011-02-28 KR KR1020110017994A patent/KR101214789B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100954579B1 (en) | 2008-02-20 | 2010-04-26 | 고려대학교 산학협력단 | Serial apparatus and method for finite field multiplication using polynomial basis |
KR100954584B1 (en) | 2008-04-26 | 2010-04-26 | 고려대학교 산학협력단 | Apparatus and Method for MSD first GF3^m serial multiplication and Recording medium using this |
Also Published As
Publication number | Publication date |
---|---|
KR20120101243A (en) | 2012-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5957120B1 (en) | Secret sharing method, secret sharing system, distribution apparatus, and program | |
US20170324554A1 (en) | Public Key Cryptosystem Based On Partitioning Of Galois Field Elements | |
US10038561B2 (en) | Method and device for generating digital signature | |
CN111492615B (en) | Encryption device with updatable shared matrix | |
JP6095792B2 (en) | Secret bit decomposition apparatus, secret modulus conversion apparatus, secret bit decomposition method, secret modulus conversion method, program | |
CN104156283B (en) | Data reconstruction method, device and storage system | |
JP2007086170A (en) | Device, method, program for calculating universal hash function family, and shared key generation system | |
US10581616B1 (en) | Managing nodes of a cryptographic hash tree in a hash-based digital signature scheme | |
Buhler et al. | Lattice basis reduction, Jacobi sums and hyperelliptic cryptosystems | |
CN109547160B (en) | Cyclic shift network coding construction method | |
KR101214789B1 (en) | Method of mapping messages to points on elliptic curve over GF(3^m) and pairing-based cryptosystem using it | |
CN107463849B (en) | Privacy information restoration methods based on single server | |
Hu et al. | On the $2 $-adic complexity and the $ k $-error $2 $-adic complexity of periodic binary sequences | |
Ustimenko et al. | On Noncommutative Cryptography and homomorphism of stable cubical multivariate transformation groups of infinite dimensional affine spaces | |
JP4861369B2 (en) | Recovery signature system, signature generation device, signature verification device, method and program thereof | |
JP5268066B2 (en) | Conversion operation device, method, program, and recording medium | |
CN112486412A (en) | Information dispersion method and system based on distributed object storage system security | |
JP2006178125A (en) | Method and apparatus for computing elliptic curve tate pairing | |
Praveen et al. | A more efficient and faster pairing computation with cryptographic security | |
Hong et al. | A Miniature CCA public key encryption scheme based on non-abelian factorization problem in finite groups of lie type | |
Kamarulhaili | Generating Elliptic Curves Modulo p for Cryptography Using Mathematica Software | |
Chen et al. | Self-pairings on supersingular elliptic curves with embedding degree three | |
JP5514345B2 (en) | Expression conversion device, arithmetic device, expression conversion method, and program | |
KR102028192B1 (en) | Format-Preserving Encryption Method | |
Zhang et al. | A Secret Sharing Algorithm Based on Regenerating Codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160928 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |