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 PDF

Info

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
Application number
KR1020110017994A
Other languages
Korean (ko)
Other versions
KR20120101243A (en
Inventor
홍석희
조영인
장남수
김창한
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020110017994A priority Critical patent/KR101214789B1/en
Publication of KR20120101243A publication Critical patent/KR20120101243A/en
Application granted granted Critical
Publication of KR101214789B1 publication Critical patent/KR101214789B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public 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

본 발명은

Figure 112011014618589-pat00121
에서의 메시지 매핑 방법에 관한 것으로서, 메시지의 해쉬 값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입하고, x좌표에 관한 방정식을 풂으로써, 타원곡선 식을 만족하는 x좌표를 연산하되, 타원곡선 식에서 x로 표현되는 항들 각각에 세제곱을 하여 방정식을 푸는 것을 특징으로 하며, 메시지 매핑에 사용되는 행렬의 크기를 줄여 역행렬을 빠르게 계산할 수 있으며, 역행렬을 저장하는데 작은 메모리 공간이 필요하게 된다. The present invention
Figure 112011014618589-pat00121
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)에서의 메시지 매핑 방법 및 이를 이용한 페어링 암호 시스템{Method of mapping messages to points on elliptic curve over GF(3^m) and pairing-based cryptosystem using it}Method of mapping messages to points on elliptic curve over GF (3 ^ m) and pairing-based cryptosystem using it}

본 발명은

Figure 112011014618589-pat00001
(=GF(3^m))에서의 메시지 매핑 방법에 관한 것으로서, 더욱 상세하게는 메시지 매핑에 사용되는 행렬의 크기를 줄여 역행렬을 빠르게 계산할 수 있으며, 역행렬을 저장하기 위해 사용하는 메모리 역시 작은 공간을 사용하는
Figure 112011014618589-pat00002
에서의 메시지 매핑 방법 및 이를 이용한 페어링 암호 시스템에 관한 것이다.The present invention
Figure 112011014618589-pat00001
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
Figure 112011014618589-pat00002
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:

Figure 112011014618589-pat00003
Figure 112011014618589-pat00003

여기서, f(x)는 Fp의 원소를 계수로 갖는 m차의 기약 다항식, Fp[x]는 계수가 Fp의 원소인 모든 다항식의 무한 집합을 말하고,

Figure 112011014618589-pat00004
는 다항식을 f(x)로 나눈 나머지를 대표원소로 하는 유한 집합이다. 그러면 위의 동치 관계에 따라서
Figure 112011014618589-pat00005
의 원소는 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 ,
Figure 112011014618589-pat00004
Is a finite set whose representative elements are the remainder of the polynomial divided by f (x). Then, according to the above equivalence
Figure 112011014618589-pat00005
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.

Figure 112011014618589-pat00006
Figure 112011014618589-pat00006

이진체 또는 소수체 위의 타원곡선만을 사용하는 타원곡선 암호와 달리 페어링 암호는 위수가 3인 삼진체 위의 타원곡선도 이용한다. 삼진체 위에서의 페어링 암호는 다른 유한체 위에서 보다 연산시간이 빠르기 때문에,

Figure 112011014618589-pat00007
(=GF(3^m))에서의 효율적인 페어링 암호 연산 및 이에 사용되는 유한체 연산에 대한 연구가 주목을 받고 있다. 페어링 암호 기반의 암호 프로토콜 구현을 위하여 embedding degree가 상대적으로 작은 초특이 타원곡선이 매우 적합한 것으로 연구되었고,
Figure 112011014618589-pat00008
위의 페어링 연산을 위해서는 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,
Figure 112011014618589-pat00007
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.
Figure 112011014618589-pat00008
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.

Figure 112011014618589-pat00009
위에서의 타원곡선 암호에서는 메시지의 해쉬(Hash) 값을 x 좌표에 대입하고 타원곡선 식을 만족하는 y 좌표를 계산하는 것이 일반적이다.
Figure 112011014618589-pat00010
위에서는 세제곱이 선형연산으로 비교적 가벼운 연산이므로 메시지의 해쉬 값을 y 좌표에 대입하고 타원곡선 식을 만족하는 x 좌표를 찾는 것이 연산량이 적다.
Figure 112011014618589-pat00009
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.
Figure 112011014618589-pat00010
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에서는

Figure 112011014618589-pat00011
위에서의 삼차방정식을 풂으로써 해당 x 좌표를 찾을 수 있도록 하였다. 이 삼차방정식을 풀기 위해서는
Figure 112011014618589-pat00012
의 원소로 이루어진 (m-1)×(m-1) 행렬의 역행렬이 필요하고 이 역행렬을 y2-b의 계수들과 행렬 곱셈을 수행하여 x 좌표를 찾을 수 있게 된다. 따라서 연산량은 역행렬을 구하는 과정과 이 역행렬의 행렬 곱셈을 하는 과정에서 결정된다. 일단 역행렬을 찾은 뒤에는 주어진 y 좌표에 따라 행렬 곱셈만으로 x 좌표를 계산할 수 있으므로 다른 메시지 스트링의 MapToPoint을 위해서 계산된 역행렬은 저장되는 것이 바람직하다.In Document 1
Figure 112011014618589-pat00011
By solving the cubic equation above, we can find the corresponding x coordinate. To solve this cubic equation
Figure 112011014618589-pat00012
An inverse of the matrix (m-1) × (m-1) consisting of the elements of is needed, and the matrix can be found by performing matrix multiplication with the coefficients of y 2 -b. Therefore, the amount of calculation is determined in the process of finding the inverse matrix and performing the matrix multiplication of the inverse matrix. Once the inverse is found, the x-coordinate can be calculated by matrix multiplication according to the given y-coordinate, so the calculated inverse for the MapToPoint of another message string is preferably stored.

문헌 1을 참조하면, Γ(x)=x3-x로 정의되는 매핑을 Γ :

Figure 112011014618589-pat00013
→?
Figure 112011014618589-pat00014
라 할 때, Γ의 kernel이
Figure 112011014618589-pat00015
이므로, Γ 의 랭크는 m-1이 된다. 문헌 1의 매핑방법은 알고리즘 1과 같다.Referring to Document 1, a mapping is defined as Γ (x) = x 3 -x Γ:
Figure 112011014618589-pat00013
→?
Figure 112011014618589-pat00014
In this case, the kernel of Γ
Figure 112011014618589-pat00015
Therefore, the rank of Γ becomes m-1. The mapping method of Document 1 is the same as Algorithm 1.

Figure 112011014618589-pat00016
Figure 112011014618589-pat00016

문헌 1에서는

Figure 112011014618589-pat00017
으로 정의하고 마지막 스텝에서는 τ(0x)<τ(1x)<τ(2x) 을 바탕으로 근을 선택한다.In Document 1
Figure 112011014618589-pat00017
In the final step, root is selected based on τ ( 0 x) <τ ( 1 x) <τ ( 2 x).

정의 1. a∈

Figure 112011014618589-pat00018
의 trace
Figure 112011014618589-pat00019
를 Tr(a)라 한다.Definition 1. a∈
Figure 112011014618589-pat00018
Trace
Figure 112011014618589-pat00019
Is called Tr (a).

알고리즘 1의 스텝 4에서는 삼차방정식을 풀기 위해 Tr(c)=0 을 확인함으로써 먼저 근이 있는지를 판단한다. 근이 있다면, Γ의 랭크가 m-1이므로 (m-1)×(m-1) 크기의 행렬 A를 생성하고 A의 역행렬 A- 1를 계산한다. 삼차방정식의 근은

Figure 112011014618589-pat00020
와 선택된 x0
Figure 112011014618589-pat00021
으로 구한다.Step 4 of Algorithm 1 first determines whether there is a root by checking Tr (c) = 0 to solve the cubic equation. If there is a root, since the rank of Γ is m-1, a matrix A of size (m-1) × (m-1) is generated and the inverse A - 1 of A is calculated. The root of the cubic equation
Figure 112011014618589-pat00020
With x 0 선택된 selected
Figure 112011014618589-pat00021
Obtain as

BLS 스킴에서는

Figure 112011014618589-pat00022
위에서와 동일한 방법을 사용하였기 때문에 MapToPoint의 연산량이 O(m3)으로 비교적 컸으나 문헌 1에서는 MapToPoint의 연산량을 O(m2)으로 줄였다. 그러나 타원곡선 위로 임의의 메시지를 매핑할 때, 메시지 매핑에 사용되는 행렬의 크기를 줄여 역행렬을 보다 더 빠르게 계산할 필요가 있다.In the BLS scheme
Figure 112011014618589-pat00022
Since the same method was used as above, the computation amount of MapToPoint was relatively large as O (m 3 ), but in Document 1, the computation amount of MapToPoint was reduced to O (m 2 ). However, when mapping an arbitrary message over an elliptic curve, we need to calculate the inverse faster than by reducing the size of the matrix used to map the message.

[문헌 1] P. Barreto and H.Y. Kim, “Fast hashing onto elliptic curves over fields of characteristic 3”, Cryptology ePrint Archive, Report 2001/098.Document 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 characteristic 3”, Cryptology ePrint Archive: Report 2004/305, 2004.

[문헌 3] Young In Cho, Nam Su Chang, Chang Han Kim and Seokhie Hong, “Formulas for Cube roots in

Figure 112011014618589-pat00023
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
Figure 112011014618589-pat00023
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.

따라서, 본 발명이 해결하고자 하는 첫 번째 과제는 메시지 매핑에 사용되는 행렬의 크기를 줄여 역행렬을 빠르게 계산할 수 있는

Figure 112011014618589-pat00024
에서의 메시지 매핑 방법을 제공하는 것이다.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
Figure 112011014618589-pat00024
To provide a message mapping method.

본 발명이 해결하고자 하는 두 번째 과제는 메시지 매핑에 사용되는 행렬의 크기를 줄여 역행렬을 빠르게 계산할 수 있는

Figure 112011014618589-pat00025
에서의 페어링 암호 시스템을 제공하는 것이다.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
Figure 112011014618589-pat00025
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로 표현되는 항들 각각에 세제곱을 하여 상기 방정식을 푸는 것을 특징으로 하는

Figure 112011014618589-pat00026
에서의 메시지 매핑 방법을 제공한다.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
Figure 112011014618589-pat00026
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로 표현되는 항들 각각에 세제곱을 하여 상기 방정식을 푸는 것을 특징으로 하는

Figure 112011014618589-pat00027
에서의 페어링 암호 시스템을 제공한다. 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.
Figure 112011014618589-pat00027
Provides a pairing password system.

상기 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된

Figure 112011014618589-pat00028
에서의 메시지 매핑 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다. In order to solve the other technical problem, the present invention described above
Figure 112011014618589-pat00028
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은 본 발명의 바람직한 일 실시예에 따른

Figure 112011014618589-pat00029
에서의 페어링 암호 시스템의 구성도이다.
도 2는 본 발명의 바람직한 일 실시예에 따른
Figure 112011014618589-pat00030
에서의 메시지 매핑 방법의 흐름도이다.
도 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
Figure 112011014618589-pat00029
Is a schematic diagram of a pairing encryption system.
2 is in accordance with a preferred embodiment of the present invention
Figure 112011014618589-pat00030
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.

본 발명의 일 실시예에 따른

Figure 112011014618589-pat00031
에서의 메시지 매핑 방법은 메시지의 해쉬 값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입하는 단계; 및 상기 해쉬 값을 상기 y좌표에 대입한 후, x좌표에 관한 방정식을 풂으로써, 상기 타원곡선 식을 만족하는 x좌표를 연산하는 단계를 포함하고, 상기 타원곡선 식에서 x로 표현되는 항들 각각에 세제곱을 하여 상기 방정식을 푸는 것을 특징으로 한다.According to one embodiment of the present invention
Figure 112011014618589-pat00031
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은 본 발명의 바람직한 일 실시예에 따른

Figure 112011014618589-pat00032
에서의 페어링 암호 시스템의 구성도이다.1 is in accordance with a preferred embodiment of the present invention
Figure 112011014618589-pat00032
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 message receiver 100, a converter 110, a hashing unit 120, and a mapping unit 130.

메시지 수신부(100)는 암호화하고자 하는 임의의 메시지 스트링을 수신한다. The message receiver 100 receives an arbitrary message string to be encrypted.

변환부(110)는 수신된 메시지 스트링을 타원곡선의 좌표값으로 입력할 수 있도록 숫자로 변환한다.The conversion unit 110 converts the received message string into a number so as to be input as a coordinate value of an elliptic curve.

해싱부(120)는 변환된 숫자를 해쉬 함수에 대입하여 해쉬값을 생성한다.The hashing unit 120 generates a hash value by substituting the converted number into a hash function.

매핑부(130)는 상기 해쉬값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입하고, x좌표에 관한 방정식을 풂으로써, 타원곡선 식을 만족하는 x좌표를 연산한다. 이때, 타원곡선 식에서 x로 표현되는 항들 각각에 세제곱을 하여 상기 방정식을 푸는 것이 바람직하다. 결과적으로 매핑부(130)는 메시지 수신부(100)가 수신한 메시지 스트링에 대응하는 타원곡선 위의 좌표값을 생성하게 된다.The mapping unit 130 assigns the hash value to the y-coordinate of the coordinates on the elliptic curve represented by (x, y) and calculates the x-coordinate that satisfies the elliptic curve equation by solving the equation of the x-coordinate. . In this case, it is preferable to solve the equation by performing a cube on each of the terms represented by x in the elliptic curve equation. As a result, the mapping unit 130 generates a coordinate value on the elliptic curve corresponding to the message string received by the message receiving unit 100.

이하에서는 매핑부(130)가 페어링 연산을 위해

Figure 112011014618589-pat00033
위에서 메시지 스트링을 G1의 원소로 매핑하는 과정을 MapToPoint이라 하고 이를 효율적으로 수행할 수 있는 방법을 설명하기로 한다.Hereinafter, the mapping unit 130 for pairing operation
Figure 112011014618589-pat00033
The process of mapping a message string to an element of G 1 is called MapToPoint, and a method of efficiently doing this will be described.

도 2는 본 발명의 바람직한 일 실시예에 따른

Figure 112011014618589-pat00034
에서의 메시지 매핑 방법의 흐름도이다.2 is in accordance with a preferred embodiment of the present invention
Figure 112011014618589-pat00034
Flowchart of message mapping method in.

도 2를 참조하면, 본 실시예에 따른 메시지 매핑 방법은 도 1에 도시된

Figure 112011014618589-pat00035
에서의 페어링 암호 시스템에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 1에 도시된 페어링 암호 시스템에 관하여 이상에서 기술된 내용은 본 실시예에 따른
Figure 112011014618589-pat00036
에서의 메시지 매핑 방법에도 적용된다. Referring to FIG. 2, the message mapping method according to the present embodiment is illustrated in FIG. 1.
Figure 112011014618589-pat00035
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.
Figure 112011014618589-pat00036
The same applies to the message mapping method in.

200 단계에서 페어링 암호 시스템은 메시지의 해쉬값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입한다.In step 200, the pairing encryption system substitutes the hash value of the message into the y coordinate of the coordinates on the elliptic curve represented by (x, y).

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 step 220, the pairing cryptosystem generates coefficients of x from the polynomial and the ternary polynomial for x of the elliptic curve equation.

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 operation 240, the pairing encryption system generates an inverse of the generated matrix.

250 단계에서 페어링 암호 시스템은 생성된 역행렬을 이용하여 수신된 y좌표에 상응하는 x의 좌표를 연산한다.
In operation 250, the pairing encryption system calculates coordinates of x corresponding to the received y-coordinates using the generated inverse matrix.

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으로 정의되는 함수 Γ' :

Figure 112011014618589-pat00037
→?
Figure 112011014618589-pat00038
을 이용한다.
Figure 112011014618589-pat00039
에서는 a
Figure 112011014618589-pat00040
a3 으로의 매핑이 permutation이므로 모든 원소는 유일한 세제곱근을 갖는다. 따라서 (y2-b)1/3=(x3-x)1/3=x-x1/3을 만족하는 d=(y2-b)1/3를 계산할 수 있으며 d=Γ'(x)을 풂으로써 x 좌표를 얻게 된다.Unlike the method of Algorithm 1, in step 210, the cube root of x is used to generate the matrix A in step 230. That is, in Document 1, the cube of x is used for Γ (x) (= x 3 -x), but in step 210 the function Γ 'is defined as Γ' (x) = xx 1/3 :
Figure 112011014618589-pat00037
→?
Figure 112011014618589-pat00038
.
Figure 112011014618589-pat00039
In a
Figure 112011014618589-pat00040
Since the mapping to a 3 is a permutation, every element has a unique cube root. Therefore, we can calculate d = (y 2 -b) 1/3 , which satisfies (y 2 -b) 1/3 = (x 3 -x) 1/3 = xx 1/3 , and d = Γ '(x) By knowing x we get the x coordinate.

Γ'(x)를 위해서 x의 세제곱이 아닌 세제곱근을 이용하는 이유는 생성 삼항기약다항식이

Figure 112011014618589-pat00041
일 때, 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
Figure 112011014618589-pat00041
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 step 220 to step 240 in more detail.

특히, 230 단계에서는 행렬 A를 축소하는 과정을 거치게 된다.In particular, in step 230, the process of reducing the matrix A is performed.

Figure 112011014618589-pat00042
Figure 112011014618589-pat00043
의 생성 삼항기약다항식이라고 할 때,
Figure 112011014618589-pat00044
라 하자.
Figure 112011014618589-pat00045
에서의 세제곱근 연산을 살펴보면, 우선 임의의 자연수 u에 대하여 m=3u라 하자. (m ≡±1 (mod 3)인 경우도 유사하게 적용할 수 있다.) 그러면 x∈
Figure 112011014618589-pat00046
에 대하여 다음의 수학식 1과 같이 표현되고,
Figure 112011014618589-pat00042
end
Figure 112011014618589-pat00043
When we say that the ternary polynomial polynomial of
Figure 112011014618589-pat00044
Let's say.
Figure 112011014618589-pat00045
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∈
Figure 112011014618589-pat00046
With respect to Equation 1,

Figure 112011014618589-pat00047
Figure 112011014618589-pat00047

이고 이 식을 이용한 x의 세제곱 연산식은 다음의 수학식 2와 같다.The cube of x using this equation is the same as the following equation (2).

Figure 112011014618589-pat00048
Figure 112011014618589-pat00048

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이라 하며 실제로 대부분의

Figure 112011014618589-pat00049
위의 페어링 암호 연산 연구에서 이 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
Figure 112011014618589-pat00049
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)의 행렬 표현

Figure 112011014618589-pat00050
를 구한다.Matrix representation of reduced Γ '(x) for each case of m≡1 (mod 3) or m≡2 (mod 3)
Figure 112011014618589-pat00050
.

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).

Figure 112011014618589-pat00051
에서 x3u+1+ax3v +1+b=0이므로, 문헌 2에 의하여
Figure 112011014618589-pat00051
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 Equation 3 below.

Figure 112011014618589-pat00052
Figure 112011014618589-pat00052

이고, 이때,

Figure 112011014618589-pat00053
,
Figure 112011014618589-pat00054
,
Figure 112011014618589-pat00055
,
Figure 112011014618589-pat00056
이다.Where,
Figure 112011014618589-pat00053
,
Figure 112011014618589-pat00054
,
Figure 112011014618589-pat00055
,
Figure 112011014618589-pat00056
to be.

예제를 통하여

Figure 112011014618589-pat00057
를 생성하기 위한 사전계산과정을 설명하기로 한다.By example
Figure 112011014618589-pat00057
The precomputation process for generating the data will be described.

생성 삼항기약다항식이

Figure 112011014618589-pat00058
이라 하면 u=4, v=1이고, s1 /3=s9-s6+s3과 s2 /3=s5+s2를 구할 수 있다. Ternary polynomial
Figure 112011014618589-pat00058
As when u = 4, v = 1, and can obtain the s 1/3 = s 9 -s 6 + s 3 and s 2/3 = s 5 + s 2.

표 1은

Figure 112011014618589-pat00059
일 때, d=Γ'(x)=x-x1/3의 다항식 표현을 나타낸 것이다.Table 1
Figure 112011014618589-pat00059
, The polynomial representation of d = Γ '(x) = xx 1/3 .

Figure 112011014618589-pat00060
Figure 112011014618589-pat00060

표 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

Figure 112011014618589-pat00061
Figure 112011014618589-pat00061

따라서

Figure 112011014618589-pat00062
=
Figure 112011014618589-pat00063
Figure 112011014618589-pat00064
을 만족하는 축소된 행렬
Figure 112011014618589-pat00065
을 구할 수 있고 아래의 수학식 5와 같은 행렬 곱셈을 통하여
Figure 112011014618589-pat00066
을 구할 수 있다.therefore
Figure 112011014618589-pat00062
=
Figure 112011014618589-pat00063
Figure 112011014618589-pat00064
Reduced matrix satisfying
Figure 112011014618589-pat00065
Can be obtained through matrix multiplication as shown in Equation 5 below.
Figure 112011014618589-pat00066
Can be obtained.

Figure 112011014618589-pat00067
Figure 112011014618589-pat00067

마지막으로

Figure 112011014618589-pat00068
을 복원하기 위하여 단지 x1=d1+x3, x10=d10+x4, x11=d11+x7, x12=d12+x10만을 계산하면 된다. 여기서 크기가 12×12인 A 대신에 크기가 8×8인
Figure 112011014618589-pat00069
을 사용함으로써 역행렬 연산 시간 및 저장 공간과 행렬 곱셈 연산량을 줄일 수 있게 된다.
Finally
Figure 112011014618589-pat00068
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
Figure 112011014618589-pat00069
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 Equation 3 It is a chart.

도 3을 참조하면, Part 1과 Part 2의 각 di들은 x의 계수 중 두 원소의 뺄셈으로 이루어진다.Referring to FIG. 3, each of d i of Part 1 and Part 2 consists of the subtraction of two elements of the coefficient of x.

다시 말해서 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).

앞서 보인 예제에서처럼 축소된 행렬

Figure 112011014618589-pat00070
을 생성하기 위한 사전 계산은 Γ'(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
Figure 112011014618589-pat00070
The precomputation to generate is to remove Part 1 and Part 2 from A, the matrix representation of Γ '(x). For example, in Part 1 d 1 = x 1 -x 3 and x 1 is present in d 2v +1 , d u + v + 1 , and d 2u +1 .

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 '). Algorithm 2 is an algorithm that describes the process of removing Part 1. Part 2 removal is very similar.

Figure 112011014618589-pat00071
Figure 112011014618589-pat00071

위의 사전계산 전에 추가적인 연산이 필요할 수 있는데, 만약 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 steps 2 through 6 in Algorithm 2.

사전계산 후에

Figure 112011014618589-pat00072
과 이들의 해당 x 좌표 계수를 얻어
Figure 112011014618589-pat00073
를 생성한다. 다음으로
Figure 112011014618589-pat00074
을 계산함으로써 (xv +1,..., x2u+v)을 구한다. 마지막으로 알고리즘 3의 step 8 ~ 13에서처럼 (x1,...,xv,x2u+v+1,...x3u)을 복원함으로써 x 좌표의 전체 계수를 구한다. 이어서 m ≡ k ≡ 2 (mod 3)인 경우에 대해서도 d=Γ'(x)의 근을 찾도록 한다. 이는 앞서 설명한 과정과 유사하다.After precomputation
Figure 112011014618589-pat00072
And their corresponding x coordinate coefficients
Figure 112011014618589-pat00073
. to the next
Figure 112011014618589-pat00074
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 Algorithm 3. Subsequently, the root of d = Γ ′ (x) is also found for the case of m ≡ k ≡ 2 (mod 3). This is similar to the process described above.

Figure 112011014618589-pat00075

Figure 112011014618589-pat00075

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라 하자.

Figure 112011014618589-pat00076
에서 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).
Figure 112011014618589-pat00076
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.

Figure 112011014618589-pat00077
Figure 112011014618589-pat00077

이고, 이때,

Figure 112011014618589-pat00078
,
Figure 112011014618589-pat00079
,
Figure 112011014618589-pat00080
,
Figure 112011014618589-pat00081
이다.Where,
Figure 112011014618589-pat00078
,
Figure 112011014618589-pat00079
,
Figure 112011014618589-pat00080
,
Figure 112011014618589-pat00081
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.

Figure 112011014618589-pat00082
Figure 112011014618589-pat00082

Figure 112011014618589-pat00083
Figure 112011014618589-pat00083

이상에서는 m≡1(mod 3) 또는 m≡2(mod 3)인 각 경우에 대하여 축소된 Γ'(x)의 행렬 표현

Figure 112011014618589-pat00084
를 구하는 과정에 대하여 살펴보았다.
The matrix representation of reduced Γ '(x) for each case of m≡1 (mod 3) or m≡2 (mod 3).
Figure 112011014618589-pat00084
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로부터

Figure 112011014618589-pat00085
를 얻는 것이 매우 복잡하기 때문에 세제곱을 이용한 방법을 이용하는 것이 유리하다는 것을 의미한다. 세제곱을 이용한다고 하면 생성 삼항 기약다항식에 따라 사전계산이 달라져야 하는 단점이 있으나 마찬가지로 행렬을 축소할 수 있을 것이다.
That is, in the case of using the remaining Irreducible Trinomials (m ≠ k (mod 3)), and m ≠ ± k (mod 3), in Document 3, cube root-friendly trinomial was used on the shifted polynomial basis (SPB). We proposed a method to find the cube root with the same amount of computation. According to Document 3, such as when using cube root-friendly trinomial s 1/ 3 and s 2 / in 3 of a polynomial expression to express in terms of the extremely small number can be applied as a matrix generation and reduction methods discussed above have. -k ≡ m (mod 3) in this case, since the polynomial expression of the 1 s / 3 s and 2/3 have a wherein a large number of the cube root calculation amount is relatively large. From matrix A
Figure 112011014618589-pat00085
Since it is very complicated to obtain, it is advantageous to use the method using the cube. The use of cubes has the disadvantage that the precomputation has to be changed according to the generated ternary term polynomial, but the matrix can be reduced as well.

본 발명의 실시예들에서는 Γ'(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의 연산량은

Figure 112011014618589-pat00086
의 역행렬 계산과
Figure 112011014618589-pat00087
의 행렬 곱셈에서 결정된다. 문헌 4에서는
Figure 112011014618589-pat00088
에서의 유한체 연산을 구현하기 적합한 원소 표현 방법 두 가지를 제안하였다. 이중 Type Ⅱ 표현은
Figure 112011014618589-pat00089
에서의 원소 표현과 유사하며 각 ai
Figure 112011014618589-pat00090
을 ai=
Figure 112011014618589-pat00091
를 만족하는 (
Figure 112011014618589-pat00092
,
Figure 112011014618589-pat00093
) 두 비트로 유일하게 표현하였다. 여기서
Figure 112011014618589-pat00094
Figure 112011014618589-pat00095
는 동시에 1이 아니다. 본 발명의 실시예에서는 이 Type Ⅱ 표현 방법을 이용하여 MapToPoint 방법을 구현하였다.
Figure 112011014618589-pat00096
Figure 112011014618589-pat00097
위의 초특이 타원곡선 E- : y2=x3-x-1,
Figure 112011014618589-pat00098
위의 초특이 타원곡선 E+ : y2=x3-x+1과 cube root-friendly trinomial :
Figure 112011014618589-pat00099
,
Figure 112011014618589-pat00100
,
Figure 112011014618589-pat00101
을 이용하였다. 역행렬 연산은 일반적인 가우스 소거법보다 약 m/4배 빠른 LU 분해 방법을 사용하였다. 문헌 1의 결과와 비교했을 때, 역행렬은 3~5배 가량 빨리 연산 할 수 있으며 이 역행렬을 저장하기 위해서는 4/9(44%)의 메모리만이 필요하였다. 또한 역행렬이 주어졌을 때 MapToPoint를 위한 행렬 곱셈은 2~3배 정도 빠르다. 이들의 구현 결과는 표 3에 주어졌으며 각 연산 시간은 표 2의 연산이 수행되는 동안 측정되었다.In this case, addition to remove Part 1 and Part 2 and addition to restore a part of the x coordinate are very light calculations.
Figure 112011014618589-pat00086
With inverse matrix
Figure 112011014618589-pat00087
Is determined from the matrix multiplication. In Document 4
Figure 112011014618589-pat00088
We propose two element representation methods suitable for implementing finite field operations in. Type II expression is
Figure 112011014618589-pat00089
Similar to the elemental representation of at each a i
Figure 112011014618589-pat00090
A i =
Figure 112011014618589-pat00091
To satisfy (
Figure 112011014618589-pat00092
,
Figure 112011014618589-pat00093
) Only two bits. here
Figure 112011014618589-pat00094
and
Figure 112011014618589-pat00095
Is not 1 at the same time. In the embodiment of the present invention, the MapToPoint method is implemented using this Type II representation method.
Figure 112011014618589-pat00096
and
Figure 112011014618589-pat00097
Second specific elliptic curve of the above E -: y 2 = x 3 -x-1,
Figure 112011014618589-pat00098
The super elliptic curve E + above : y 2 = x 3 -x + 1 and the cube root-friendly trinomial:
Figure 112011014618589-pat00099
,
Figure 112011014618589-pat00100
,
Figure 112011014618589-pat00101
Was used. The inverse matrix operation used LU decomposition method about m / 4 times faster than general Gaussian elimination method. Compared with the results of Literature 1, the inverse matrix can be calculated three to five times faster and only 4/9 (44%) of memory is needed to store the inverse matrix. Also given the inverse, matrix multiplication for MapToPoint is two to three times faster. The results of their implementation are given in Table 3, and each calculation time was measured while the calculations in Table 2 were performed.

Figure 112011014618589-pat00102
Figure 112011014618589-pat00102

Figure 112011014618589-pat00103
Figure 112011014618589-pat00103

한편, 타원곡선위의 점을 전송할 때 대역폭 절약을 위해 (x,y)좌표 모두를 전송하는 대신 둘 중 하나만을 전송한 후 다른 하나는 수신자가 복원하는 방법을 Point Compression이라 한다.

Figure 112011014618589-pat00104
위의 타원곡선 암호에서는 수신자에게 160 비트 이상의 x 좌표와 1 비트의 y 좌표 부호가 주어지고 수신자는 타원곡선 이차식을 만족하는 y좌표를 구하게 된다.
Figure 112011014618589-pat00105
위에서는 x 좌표와 1 비트의 y'=y(mod 2)가 주어진다.
Figure 112011014618589-pat00106
Figure 112011014618589-pat00107
에서의 point compression 방법은 문헌 5에 자세하게 설명되어있다. 본 발명의 실시예에 따른 MapToPoint 방법을
Figure 112011014618589-pat00108
에서의 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.
Figure 112011014618589-pat00104
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.
Figure 112011014618589-pat00105
This gives the x coordinate and one bit y '= y (mod 2).
Figure 112011014618589-pat00106
and
Figure 112011014618589-pat00107
The method of point compression in is described in detail in Literature 5. MapToPoint method according to an embodiment of the present invention
Figure 112011014618589-pat00108
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.

본 발명에서는 임의의 메시지 스트링을

Figure 112011014618589-pat00109
위의 타원곡선 점으로 보다 효율적으로 매핑하는 방법을 제시하고 있다. 덧셈 연산이 다른 연산에 비해 훨씬 가벼우므로 그 횟수를 늘려 MapToPoint을 위한 행렬의 크기를 줄였다. In the present invention, any message string
Figure 112011014618589-pat00109
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)에서

Figure 112011014618589-pat00110
으로 줄임으로써, 역행렬을 3 ~ 5배 빠르게 계산할 수 있으며 역행렬의 크기가 기존에 비해 44%로 작아졌으므로 이를 저장하기 위한 메모리 또한 기존의 44%만 필요하게 된다. 또한 역행렬과 y2-b의 계수의 행렬 곱셈 연산량도 줄어들게 되므로 결과적으로 역행렬이 주어졌을 때 MapToPoint를 2 ~ 3배 정도 빠르게 할 수 있다. 따라서 본 발명에 따른 MapToPoint 방법은 유비쿼터스 환경 등의 제한된 저장 공간과 컴퓨팅 파워를 갖는 장비에 효과적으로 적용가능하다.Specifically, the matrix size used in Document 1 is represented by (m-1) × (m-1)
Figure 112011014618589-pat00110
By reducing the, the inverse matrix can be calculated 3 to 5 times faster, and since the size of the inverse matrix is 44% smaller than before, only 44% of the memory is required to store the inverse matrix. In addition, the matrix multiplication of the inverse and the coefficient of y 2 -b is also reduced, resulting in a 2 to 3 times faster MapToPoint given the inverse. Therefore, the MapToPoint method according to the present invention can be effectively applied to equipment having limited storage space and computing power, such as a ubiquitous environment.

본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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)

(a)메시지의 해쉬 값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입하는 단계; 및
(b)상기 해쉬 값을 상기 y좌표에 대입한 후, 상기 y좌표에 해당하는 상기 타원곡선 위의 x좌표를 연산하는 단계를 포함하고,
상기 (b)단계는 상기 (x,y)로 표현되는 타원곡선의 식에서 x로 표현되는 항들 각각에 세제곱을 하여 상기 식을 상기 x에 관해 풀어 이루어지는 것을 특징으로 하는
Figure 112012099755013-pat00111
에서의 메시지 매핑 방법.
(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
Figure 112012099755013-pat00111
How messages are mapped.
제 1 항에 있어서,
상기 (b)단계는,
(b1)상기 타원곡선의 식의 x에 대한 다항식과 삼항기약다항식으로부터 상기 x의 계수를 생성하는 단계;
(b2)상기 생성된 다항식의 계수 분포를 참조하여, x의 계수를 가장 작게 사용하여 다항식을 표현하는 경우를 제외한 나머지 x의 계수를 이용하여 상기 x좌표를 연산하는 행렬을 생성하는 단계; 및
(b3)상기 생성된 행렬로부터 상기 x의 좌표를 연산하는 단계를 더 포함하는
Figure 112012099755013-pat00112
에서의 메시지 매핑 방법.
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.
Figure 112012099755013-pat00112
How messages are mapped.
제 2 항에 있어서,
상기 (b3)단계는,
(b31)상기 생성된 행렬의 역행렬을 생성하는 단계; 및
(b32)상기 생성된 역행렬을 이용하여 상기 x의 좌표를 연산하는 단계를 포함하는 것을 특징으로 하는
Figure 112012099755013-pat00113
에서의 메시지 매핑 방법.
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;
Figure 112012099755013-pat00113
How messages are mapped.
제 2 항에 있어서,
상기 제외된 x의 계수들은 상기 연산된 x의 계수들로부터 덧셈 연산되는 것을 특징으로 하는
Figure 112011014618589-pat00114
에서의 메시지 매핑 방법.
The method of claim 2,
And the coefficients of the excluded x are added to the calculated coefficients of x.
Figure 112011014618589-pat00114
How messages are mapped.
제 3 항에 있어서,
상기 생성된 역행렬은 저장되어, 입력되는 y좌표에 대응하는 x좌표의 연산에 사용되는 것을 특징으로 하는
Figure 112011014618589-pat00115
에서의 메시지 매핑 방법.
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.
Figure 112011014618589-pat00115
How messages are mapped.
임의의 메시지 스트링을 수신하는 메시지 수신부;
상기 수신된 메시지 스트링을 코드화하는 변환부;
상기 코드화된 메시지 스트링을 해싱하는 해싱부; 및
상기 해싱된 값을 타원곡선 위의 점으로 매핑하는 매핑부를 포함하고,
상기 매핑부는 상기 해싱된 값을 (x,y)로 표현되는 타원곡선 위의 좌표 중 y좌표에 대입하고, 상기 y좌표에 해당하는 상기 타원곡선 위의 x좌표를 연산하되, 상기 (x,y)로 표현되는 타원곡선의 식에서 x로 표현되는 항들 각각에 세제곱을 하여 상기 식을 상기 x에 관해 풀어 상기 x좌표를 연산하는 것을 특징으로 하는
Figure 112012099755013-pat00116
에서의 페어링 암호 시스템.
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.
Figure 112012099755013-pat00116
Pairing password system on.
제 6 항에 있어서,
상기 매핑부는,
상기 타원곡선 식의 x에 대한 다항식과 삼항기약다항식으로부터 상기 x의 계수를 생성하고, 상기 생성된 다항식의 계수 분포를 참조하여, x의 계수를 가장 작게 사용하여 다항식을 표현하는 경우를 제외한 나머지 x의 계수를 이용하여 상기 x좌표를 연산하는 행렬을 생성한 다음, 상기 생성된 행렬로부터 상기 x의 좌표를 연산하는 것을 특징으로 하는
Figure 112011014618589-pat00117
에서의 페어링 암호 시스템.
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
Figure 112011014618589-pat00117
Pairing password system on.
제 7 항에 있어서,
상기 x의 좌표를 연산하는 것은 상기 생성된 행렬의 역행렬을 생성하고, 상기 생성된 역행렬을 이용하여 상기 x의 좌표를 연산하는 것을 특징으로 하는
Figure 112011014618589-pat00118
에서의 페어링 암호 시스템.
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.
Figure 112011014618589-pat00118
Pairing password system on.
제 7 항에 있어서,
상기 제외된 x의 계수들은 상기 연산된 x의 계수들로부터 덧셈 연산되는 것을 특징으로 하는
Figure 112011014618589-pat00119
에서의 페어링 암호 시스템.
The method of claim 7, wherein
And the coefficients of the excluded x are added to the calculated coefficients of x.
Figure 112011014618589-pat00119
Pairing password system on.
제 8 항에 있어서,
상기 생성된 역행렬은 저장되어, 입력되는 y좌표에 대응하는 x좌표의 연산에 사용되는 것을 특징으로 하는
Figure 112011014618589-pat00120
에서의 페어링 암호 시스템.
The method of claim 8,
The generated inverse matrix is stored and used to calculate the x coordinate corresponding to the input y coordinate.
Figure 112011014618589-pat00120
Pairing password system on.
제 1 항 내지 제 5 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. A computer-readable recording medium storing a program for causing a computer to execute the method according to any one of claims 1 to 5.
KR1020110017994A 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 KR101214789B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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