KR102595938B1 - 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법 - Google Patents
다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법 Download PDFInfo
- Publication number
- KR102595938B1 KR102595938B1 KR1020210170581A KR20210170581A KR102595938B1 KR 102595938 B1 KR102595938 B1 KR 102595938B1 KR 1020210170581 A KR1020210170581 A KR 1020210170581A KR 20210170581 A KR20210170581 A KR 20210170581A KR 102595938 B1 KR102595938 B1 KR 102595938B1
- Authority
- KR
- South Korea
- Prior art keywords
- polynomial
- kth
- matrix
- divisor
- inverse
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Operations Research (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Complex Calculations (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템의 구현을 위해서, 해당 암호화 시스템에서 사용되는 다항식인 와의 관계에서 ''을 만족하는 역원인 를 생성하는 장치 및 방법에 대한 것이다.
Description
본 발명은 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법에 대한 것이다.
최근, 컴퓨터 시스템의 성능이 고도화됨에 따라, 보다 강화된 암호화 시스템에 대한 도입이 필요한 실정이다.
이와 관련해서, 다항식을 이용하여 데이터의 암복호화를 수행함으로써, 해커의 공격에 보다 고차원적으로 대응할 수 있는 암호화 시스템들이 등장하고 있다.
이러한 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템들로는 FALCON, BIKE, NTRU Prime이라는 알고리즘 등이 존재하는데, 그 중 대표적인 시스템으로, NTRU라고 하는 암호화 알고리즘이 적용된 암호화 시스템에 대한 관심이 증가하고 있다.
NTRU는 다항식 환(Polynomial Ring)을 이용한 암호화 알고리즘으로, 빠르고 작은 키 길이를 가지는 장점이 있으며, 여러 가지 공격 기법에 안전한 암호화 알고리즘이다.
NTRU에서는 ''(여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음)로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 어느 하나의 다항식을 선택하여, 상기 선택된 다항식을 기초로 개인키에 해당되는 개인키 다항식 을 생성할 수 있고, 상기 개인키 다항식 가 생성되면, R로부터 임의의 다항식 를 선택한 후 ''를 연산함으로써, 공개키에 해당되는 공개키 다항식 를 생성할 수 있다. 여기서, 는 사전 설정된 정수 형태의 파라미터로, 각 다항식의 계수들은 연산을 통해서 감산된다.
이렇게, 상기 개인키 다항식과 상기 공개키 다항식이 생성되면, NTRU에서의 암호화는 다음과 같이 진행된다. 우선, 메시지를 다항식의 형태인 로 인코딩하고, 로부터 임의의 다항식 를 생성한 후 상기 공개키 다항식인 를 기초로 ''의 연산을 수행함으로써, 암호문에 해당되는 를 생성한다. 그러면, 복호화는 상기 개인키 다항식 를 기초로 ''을 연산함으로써, 수행될 수 있다.
이러한, NTRU에서는 공개키를 생성하기 위해서, 상기 개인키 다항식 의 역원인 을 생성하는 과정이 필요하다. 이러한, 역원은 상기 개인키 다항식 과의 관계에서 ''(여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임)을 만족하는 다항식을 의미한다. 즉, 상기 역원은, 와 를 곱한 다항식에 대해서, 계수를 로 감산하고, 상기 제수 다항식인 로 모듈로 연산을 수행하였을 때의 결과가 ''가 되도록 하는 다항식을 의미한다.
이러한 다항식의 역원을 생성하는 과정은 상기에서 설명한 NTRU 알고리즘 뿐 아니라, 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 대부분 수행되는 과정이다.
따라서, 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템의 구현을 위해서, 해당 암호화 시스템에서 사용되는 다항식인 와의 관계에서 ''을 만족하는 역원인 를 생성하는 기술에 대한 연구가 필요하다.
'양자컴퓨팅 환경을 고려한 현대암호 안전성 연구', 한국인터넷진흥원(2016년 11월 공개)
본 발명은 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템의 구현을 위해서, 해당 암호화 시스템에서 사용되는 다항식인 와의 관계에서 ''을 만족하는 역원인 를 생성하는 장치 및 방법을 제시하고자 한다.
본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치는 '' - 여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 와 상기 제수 다항식 를 기초로, '' - 여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r(r은 자연수)개의 행렬 (n는 1이상 r이하의 자연수임)을 생성하는 행렬 생성부 및 상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정하는 역원 결정부를 포함한다.
또한, 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 방법은 '' - 여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 와 상기 제수 다항식 를 기초로, '' - 여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r(r은 자연수)개의 행렬 (n는 1이상 r이하의 자연수임)을 생성하는 단계 및 상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정하는 단계를 포함한다.
본 발명은 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템의 구현을 위해서, 해당 암호화 시스템에서 사용되는 다항식인 와의 관계에서 ''을 만족하는 역원인 를 생성하는 장치 및 방법을 제시할 수 있다.
도 1은 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 방법을 도시한 순서도이다.
도 2는 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 다항식 역원 생성 장치(110)는 행렬 생성부(111) 및 역원 결정부(112)를 포함한다.
행렬 생성부(111)는 ''(여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음)로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 와 상기 제수 다항식 를 기초로, ''(여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임)을 만족하는 2 x 2 크기를 갖는 r(r은 자연수)개의 행렬 (n는 1이상 r이하의 자연수임)을 생성한다.
역원 결정부(112)는 상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정한다.
이때, 본 발명의 일실시예에 따르면, 행렬 생성부(111)는 상기 제1 다항식 와 상기 제수 다항식 를 기초로 첫 번째 행렬인 을 생성하고, ''을 만족하지 않을 경우, ''으로 연산되는 두 번째 제1 다항식 와 두 번째 제수 다항식 를 생성한 후, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 를 기초로 두 번째 행렬인 를 생성하고, ''을 만족하지 않을 경우, ''로 연산되는 세 번째 제1 다항식 와 세 번째 제수 다항식 를 생성한 후, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 를 기초로 세 번째 행렬인 를 생성하는 방식으로, k번째 제1 다항식 와 k번째 제수 다항식 를 기초로 k번째 행렬인 를 생성하는 과정을, k를 1씩 증가시키면서, ''를 만족할 때까지 반복 수행함으로써, 상기 r개의 행렬 을 생성할 수 있다.
이때, 본 발명의 일실시예에 따르면, 행렬 생성부(111)는 상기 k번째 제1 다항식 와 상기 k번째 제수 다항식 를 기초로 상기 k번째 행렬인 를 생성할 때, ''(여기서, 이고, 는 상기 k번째 제1 다항식 의 상수항, 는 상기 k번째 제수 다항식 의 상수항임)로 연산되는 다항식에서의 최소차수를 라고 하면, ''로 정의되는 k번째 연산 다항식 를 상기 k번째 행렬인 의 1행1열의 성분으로 지정함과 동시에, 를 상기 k번째 행렬인 의 1행2열의 성분으로 지정하고, 상기 k번째 제1 다항식 의 최고차수와 상기 k번째 제수 다항식 의 최고차수를 서로 비교하여, 상기 k번째 제1 다항식 의 최고차수가 상기 k번째 제수 다항식 의 최고차수보다 크거나 같을 경우, 상기 k번째 행렬인 의 2행1열의 성분을 0으로, 2행2열의 성분을 1로 지정하며, 상기 k번째 제1 다항식 의 최고차수가 상기 k번째 제수 다항식 의 최고차수보다 작을 경우, 상기 k번째 행렬인 의 2행1열의 성분을 1로, 2행2열의 성분을 0으로 지정함으로써, 상기 k번째 행렬인 를 생성할 수 있다.
또한, 본 발명의 일실시예에 따르면, 다항식 역원 생성 장치(110)는 검증 수행부(113)를 더 포함할 수 있다.
검증 수행부(113)는 상기 제1 다항식 에 대한 역원인 가 결정되면, 상기 제1 다항식 와 상기 역원인 를 기초로, ''을 만족하는지 여부를 검증한다.
본 발명의 다른 일실시예에 따르면, 다항식 역원 생성 장치(110)는 앞서 설명한, ''의 형태와 같이, 상기 제1 다항식 를 1행, 상기 제수 다항식 를 2행에 쓰고, 상기 r개의 행렬 를 좌측에서 곱하는 형태뿐 아니라, 상기 제1 다항식 를 2행, 상기 제수 다항식 를 1행에 쓰고, 2 x 2 크기의 r개의 행렬 의 첫 번째 열과 두 번째 열의 위치를 서로 바꾼 새로운 행렬 를 좌측에서 곱하는 형태로 변형하여, 상기 제1 다항식 에 대한 역원인 를 찾아내도록 구성될 수도 있다.
이하에서는 본 발명에 따른 다항식 역원 생성 장치(110)의 동작에 대해 예를 들어 상세히 설명하기로 한다.
먼저, 상기 제1 다항식 를 ''라고 하고, 상기 제수 다항식 를 ''이라고 가정하자. 그리고, 각 다항식은 계수가 0 또는 1로 구성되는 이진 다항식인 것으로 가정하자. 이러한 가정 하에서는 다항식의 연산이 수행될 때, 계수를 이진 값으로 감산해야 하기 때문에 값이 '2'로 사전 지정되어 있다고 가정하자. 그리고, 는 '1'인 것으로 가정하자.
이러한 상황에서, 행렬 생성부(111)는 상기 제1 다항식 와 상기 제수 다항식 를 기초로 첫 번째 행렬인 을 생성할 수 있는데, 행렬 생성부(111)는 상기 첫 번째 행렬인 의 각 성분을 아래와 같은 연산을 통해서 지정할 수 있다.
먼저, 행렬 생성부(111)는 ''로 연산되는 다항식에서의 최소차수인 을 찾을 수 있다. 여기서, ''이고, 는 상기 제1 다항식 의 상수항, 는 상기 제수 다항식 의 상수항이므로, 은 '1'이 될 수 있다. 이로 인해, ''를 연산하게 되면, ''이라는 다항식이 산출되게 되고, 이 다항식에서의 최소차수인 은 '4'가 된다.
이렇게, 이 '4'로 찾아지면, 행렬 생성부(111)는 ''으로 정의되는 첫 번째 연산 다항식 ''를 상기 첫 번째 행렬인 의 1행1열의 성분으로 지정할 수 있다.
그리고, 행렬 생성부(111)는 에 해당되는 ''를 상기 첫 번째 행렬인 의 1행2열의 성분으로 지정할 수 있다.
또한, 행렬 생성부(111)는 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수를 서로 비교하여, 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 어떤 최고차수가 더 큰지를 확인할 수 있다.
본 실시예에서는 상기 제수 다항식 의 최고차수가 상기 제1 다항식 의 최고차수보다 크기 때문에, 행렬 생성부(111)는 상기 첫 번째 행렬인 의 2행1열의 성분을 '1'로 지정할 수 있고, 2행2열의 성분을 '0'으로 지정할 수 있다.
이 점을 모두 종합하면, 행렬 생성부(111)는 상기 첫 번째 행렬인 을 하기의 수학식 1과 같이 생성할 수 있다.
이렇게, 상기 첫 번째 행렬인 이 생성되면, 행렬 생성부(111)는 ''을 만족하는지 여부를 확인할 수 있다. 관련해서, ''을 연산하게 되면, ''이 산출되기 때문에, 행렬 생성부(111)는 ''을 만족하지 않는 것으로 확인하고, 두 번째 행렬인 의 생성 과정을 수행할 수 있다. 참고로, 본 실시예에서 사용되는 다항식은 이진 다항식으로, 값이 '2'로 사전 지정되어 있다고 가정하였기 때문에, ''의 연산과 같은 행렬 연산에서는 '' 연산을 통해 다항식 계수에 대한 감산이 수행된다. 관련해서, 본 명세서 상에서 행렬 연산식에 대해서는 수식 표현의 간소화를 위해서 '' 연산에 대한 표기를 생략하였다.
행렬 생성부(111)는 상기 두 번째 행렬인 를 생성하기 위해서, ''으로 연산되는 두 번째 제1 다항식 와 두 번째 제수 다항식 를 기초로 상기 두 번째 행렬인 의 각 성분을 아래의 연산을 통해서 지정할 수 있다.
먼저, 상기 두 번째 제1 다항식 는 ''이고, 상기 두 번째 제수 다항식 는 ''이므로, 행렬 생성부(111)는 ''로 연산되는 다항식에서의 최소차수인 을 찾을 수 있다. 여기서, ''이고, 는 상기 두 번째 제1 다항식 의 상수항, 는 상기 두 번째 제수 다항식 의 상수항이므로, 는 '1'이 될 수 있다. 이로 인해, ''를 연산하게 되면, ''이라는 다항식이 산출되게 되고, 이 다항식에서의 최소차수인 는 '4'가 된다.
이렇게, 가 '4'로 찾아지면, 행렬 생성부(111)는 ''으로 정의되는 두 번째 연산 다항식 ''를 상기 두 번째 행렬인 의 1행1열의 성분으로 지정할 수 있다.
그리고, 행렬 생성부(111)는 에 해당되는 ''를 상기 두 번째 행렬인 의 1행2열의 성분으로 지정할 수 있다.
또한, 행렬 생성부(111)는 상기 두 번째 제1 다항식 의 최고차수와 상기 두 번째 제수 다항식 의 최고차수를 서로 비교하여, 상기 두 번째 제1 다항식 의 최고차수와 상기 두 번째 제수 다항식 의 최고차수 중 어떤 최고차수가 더 큰지를 확인할 수 있다.
본 실시예에서는 상기 두 번째 제수 다항식 의 최고차수가 상기 두 번째 제1 다항식 의 최고차수보다 크기 때문에, 행렬 생성부(111)는 상기 두 번째 행렬인 의 2행1열의 성분을 '1'로 지정할 수 있고, 2행2열의 성분을 '0'으로 지정할 수 있다.
이 점을 모두 종합하면, 행렬 생성부(111)는 상기 두 번째 행렬인 를 하기의 수학식 2와 같이 생성할 수 있다.
이렇게, 상기 두 번째 행렬인 가 생성되면, 행렬 생성부(111)는 ''을 만족하는지 여부를 확인할 수 있다. 관련해서, ''을 연산하게 되면, ''이 산출되기 때문에, 행렬 생성부(111)는 ''을 만족하는 것으로 확인하고, 행렬 의 생성을 종료할 수 있다. 참고로, 본 행렬 연산에서도 이진 다항식이 사용되었고, 값이 '2'로 사전 지정되어 있다고 가정하였기 때문에, ''의 연산에서 '' 연산을 통한 다항식 계수의 감산이 수반된다.
이렇게, 행렬 생성부(111)를 통해 상기 첫 번째 행렬인 과 상기 두 번째 행렬인 가 생성되면, 역원 결정부(112)는 상기 첫 번째 행렬인 과 상기 두 번째 행렬인 및 기설정된 열벡터인 을 기초로 ''의 연산을 수행할 수 있다.
이와 관련해서, ''의 연산('' 연산을 통한 계수 감산도 수행됨)을 수행하게 되면, ''이라는 산출 행렬이 산출될 수 있다.
그러면, 역원 결정부(112)는 상기 산출 행렬에서 1행1열에 위치하는 성분인 ''을 상기 제1 다항식 에 대한 역원인 로 결정할 수 있다.
이렇게, 역원 결정부(112)에 의해 상기 역원인 가 결정되면, 검증 수행부(113)는 상기 역원인 가, ''을 만족하는 역원이 맞는지 여부를 검증할 수 있다.
관련해서, 전술한 예와 같이, 상기 역원이 ''로 결정되었다고 하는 경우, 우선 ''는 하기의 수학식 3과 같이 연산될 수 있다.
이때, 상기 제수 다항식 는 ''이기 때문에, 상기 수학식 3의 연산 결과에서 '' 연산을 수행하게 되면, '1'이 산출되게 된다. 이로 인해, 역원 검증부(113)는 상기 역원인 가, ''을 만족하는 역원이 맞는 것으로 검증할 수 있다.
도 2는 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 방법을 도시한 순서도이다.
단계(S210)에서는 ''(여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음)로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 와 상기 제수 다항식 를 기초로, ''(여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임)을 만족하는 2 x 2 크기를 갖는 r(r은 자연수)개의 행렬 (n는 1이상 r이하의 자연수임)을 생성한다.
단계(S220)에서는 상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정한다.
이때, 본 발명의 일실시예에 따르면, 단계(S210)에서는 상기 제1 다항식 와 상기 제수 다항식 를 기초로 첫 번째 행렬인 을 생성하고, ''을 만족하지 않을 경우, ''으로 연산되는 두 번째 제1 다항식 와 두 번째 제수 다항식 를 생성한 후, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 를 기초로 두 번째 행렬인 를 생성하고, ''을 만족하지 않을 경우, ''로 연산되는 세 번째 제1 다항식 와 세 번째 제수 다항식 를 생성한 후, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 를 기초로 세 번째 행렬인 를 생성하는 방식으로, k번째 제1 다항식 와 k번째 제수 다항식 를 기초로 k번째 행렬인 를 생성하는 과정을, k를 1씩 증가시키면서, ''를 만족할 때까지 반복 수행함으로써, 상기 r개의 행렬 을 생성할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(S210)에서는 상기 k번째 제1 다항식 와 상기 k번째 제수 다항식 를 기초로 상기 k번째 행렬인 를 생성할 때, ''(여기서, ''이고, 는 상기 k번째 제1 다항식 의 상수항, 는 상기 k번째 제수 다항식 의 상수항임)로 연산되는 다항식에서의 최소차수를 라고 하면, ''로 정의되는 k번째 연산 다항식 를 상기 k번째 행렬인 의 1행1열의 성분으로 지정함과 동시에, 를 상기 k번째 행렬인 의 1행2열의 성분으로 지정하고, 상기 k번째 제1 다항식 의 최고차수와 상기 k번째 제수 다항식 의 최고차수를 서로 비교하여, 상기 k번째 제1 다항식 의 최고차수가 상기 k번째 제수 다항식 의 최고차수보다 크거나 같을 경우, 상기 k번째 행렬인 의 2행1열의 성분을 0으로, 2행2열의 성분을 1로 지정하며, 상기 k번째 제1 다항식 의 최고차수가 상기 k번째 제수 다항식 의 최고차수보다 작을 경우, 상기 k번째 행렬인 의 2행1열의 성분을 1로, 2행2열의 성분을 0으로 지정함으로써, 상기 k번째 행렬인 를 생성할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 다항식 역원 생성 방법은 상기 제1 다항식 에 대한 역원인 가 결정되면, 상기 제1 다항식 와 상기 역원인 를 기초로, ''을 만족하는지 여부를 검증하는 단계를 더 포함할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 방법은 도 1을 이용하여 설명한 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 다항식 역원 생성 장치
111: 행렬 생성부
112: 역원 결정부
113: 검증 수행부
111: 행렬 생성부
112: 역원 결정부
113: 검증 수행부
Claims (10)
- 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치에 있어서,
'' - 여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 와 상기 제수 다항식 를 기초로, '' - 여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r(r은 자연수)개의 행렬 (n는 1이상 r이하의 자연수임)을 생성하는 행렬 생성부;
상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정하는 역원 결정부; 및
상기 제1 다항식 에 대한 역원인 가 결정되면, 상기 제1 다항식 와 상기 역원인 를 기초로, ''을 만족하는지 여부를 검증하는 검증 수행부
를 포함하는 다항식 역원 생성 장치. - 제1항에 있어서,
상기 행렬 생성부는
상기 제1 다항식 와 상기 제수 다항식 를 기초로 첫 번째 행렬인 을 생성하고, ''을 만족하지 않을 경우, ''으로 연산되는 두 번째 제1 다항식 와 두 번째 제수 다항식 를 생성한 후, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 를 기초로 두 번째 행렬인 를 생성하고, ''을 만족하지 않을 경우, ''로 연산되는 세 번째 제1 다항식 와 세 번째 제수 다항식 를 생성한 후, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 를 기초로 세 번째 행렬인 를 생성하는 방식으로, k번째 제1 다항식 와 k번째 제수 다항식 를 기초로 k번째 행렬인 를 생성하는 과정을, k를 1씩 증가시키면서, ''를 만족할 때까지 반복 수행함으로써, 상기 r개의 행렬 을 생성하는 것을 특징으로 하는 다항식 역원 생성 장치. - 제2항에 있어서,
상기 행렬 생성부는
상기 k번째 제1 다항식 와 상기 k번째 제수 다항식 를 기초로 상기 k번째 행렬인 를 생성할 때, '' - 여기서, ''이고, 는 상기 k번째 제1 다항식 의 상수항, 는 상기 k번째 제수 다항식 의 상수항임 - 로 연산되는 다항식에서의 최소차수를 라고 하면, ''로 정의되는 k번째 연산 다항식 를 상기 k번째 행렬인 의 1행1열의 성분으로 지정함과 동시에, 를 상기 k번째 행렬인 의 1행2열의 성분으로 지정하고, 상기 k번째 제1 다항식 의 최고차수와 상기 k번째 제수 다항식 의 최고차수를 서로 비교하여, 상기 k번째 제1 다항식 의 최고차수가 상기 k번째 제수 다항식 의 최고차수보다 크거나 같을 경우, 상기 k번째 행렬인 의 2행1열의 성분을 0으로, 2행2열의 성분을 1로 지정하며, 상기 k번째 제1 다항식 의 최고차수가 상기 k번째 제수 다항식 의 최고차수보다 작을 경우, 상기 k번째 행렬인 의 2행1열의 성분을 1로, 2행2열의 성분을 0으로 지정함으로써, 상기 k번째 행렬인 를 생성하는 것을 특징으로 하는 다항식 역원 생성 장치. - 삭제
- 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 방법에 있어서,
'' - 여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 와 상기 제수 다항식 를 기초로, '' - 여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r(r은 자연수)개의 행렬 (n는 1이상 r이하의 자연수임)을 생성하는 단계;
상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정하는 단계; 및
상기 제1 다항식 에 대한 역원인 가 결정되면, 상기 제1 다항식 와 상기 역원인 를 기초로, ''을 만족하는지 여부를 검증하는 단계
를 포함하는 다항식 역원 생성 방법. - 제5항에 있어서,
상기 생성하는 단계는
상기 제1 다항식 와 상기 제수 다항식 를 기초로 첫 번째 행렬인 을 생성하고, ''을 만족하지 않을 경우, ''으로 연산되는 두 번째 제1 다항식 와 두 번째 제수 다항식 를 생성한 후, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 를 기초로 두 번째 행렬인 를 생성하고, ''을 만족하지 않을 경우, ''로 연산되는 세 번째 제1 다항식 와 세 번째 제수 다항식 를 생성한 후, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 를 기초로 세 번째 행렬인 를 생성하는 방식으로, k번째 제1 다항식 와 k번째 제수 다항식 를 기초로 k번째 행렬인 를 생성하는 과정을, k를 1씩 증가시키면서, ''를 만족할 때까지 반복 수행함으로써, 상기 r개의 행렬 을 생성하는 것을 특징으로 하는 다항식 역원 생성 방법. - 제6항에 있어서,
상기 생성하는 단계는
상기 k번째 제1 다항식 와 상기 k번째 제수 다항식 를 기초로 상기 k번째 행렬인 를 생성할 때, '' - 여기서, ''이고, 는 상기 k번째 제1 다항식 의 상수항, 는 상기 k번째 제수 다항식 의 상수항임 - 로 연산되는 다항식에서의 최소차수를 라고 하면, ''로 정의되는 k번째 연산 다항식 를 상기 k번째 행렬인 의 1행1열의 성분으로 지정함과 동시에, 를 상기 k번째 행렬인 의 1행2열의 성분으로 지정하고, 상기 k번째 제1 다항식 의 최고차수와 상기 k번째 제수 다항식 의 최고차수를 서로 비교하여, 상기 k번째 제1 다항식 의 최고차수가 상기 k번째 제수 다항식 의 최고차수보다 크거나 같을 경우, 상기 k번째 행렬인 의 2행1열의 성분을 0으로, 2행2열의 성분을 1로 지정하며, 상기 k번째 제1 다항식 의 최고차수가 상기 k번째 제수 다항식 의 최고차수보다 작을 경우, 상기 k번째 행렬인 의 2행1열의 성분을 1로, 2행2열의 성분을 0으로 지정함으로써, 상기 k번째 행렬인 를 생성하는 것을 특징으로 하는 다항식 역원 생성 방법. - 삭제
- 제5항 내지 제7항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
- 제5항 내지 제7항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210170581A KR102595938B1 (ko) | 2021-12-02 | 2021-12-02 | 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210170581A KR102595938B1 (ko) | 2021-12-02 | 2021-12-02 | 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230082783A KR20230082783A (ko) | 2023-06-09 |
KR102595938B1 true KR102595938B1 (ko) | 2023-10-30 |
Family
ID=86765350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210170581A KR102595938B1 (ko) | 2021-12-02 | 2021-12-02 | 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102595938B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000516733A (ja) * | 1996-08-19 | 2000-12-12 | エヌティーアールユー クリプトシステムズ,インコーポレーテッド | 公開鍵暗号システム方法および装置 |
US20190044719A1 (en) * | 2017-08-07 | 2019-02-07 | Infineon Technologies Ag | Conducting a cryptographic operation |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4786531B2 (ja) * | 2004-05-12 | 2011-10-05 | パナソニック株式会社 | 暗号システム、暗号装置、復号装置、プログラムおよび集積回路 |
KR100742093B1 (ko) | 2007-05-10 | 2007-07-24 | 인하대학교 산학협력단 | 엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산방법 |
-
2021
- 2021-12-02 KR KR1020210170581A patent/KR102595938B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000516733A (ja) * | 1996-08-19 | 2000-12-12 | エヌティーアールユー クリプトシステムズ,インコーポレーテッド | 公開鍵暗号システム方法および装置 |
US20190044719A1 (en) * | 2017-08-07 | 2019-02-07 | Infineon Technologies Ag | Conducting a cryptographic operation |
Also Published As
Publication number | Publication date |
---|---|
KR20230082783A (ko) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6413598B2 (ja) | 暗号処理方法、暗号処理装置、及び暗号処理プログラム | |
KR101942030B1 (ko) | 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법 | |
EP2991264B1 (en) | Encrypted text matching system, method and program | |
KR101913644B1 (ko) | 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법 | |
JP5852518B2 (ja) | 認証暗号化装置、認証復号装置、およびプログラム | |
CN115549891A (zh) | 同态加密方法、同态解密方法、同态计算方法及设备 | |
EP2991265B1 (en) | Encrypted text matching system, method and program | |
JP6916770B2 (ja) | 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム | |
KR102096359B1 (ko) | 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법 | |
EP3633656B1 (en) | Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program | |
KR102444193B1 (ko) | Ring-LWR기반 양자내성 서명 방법 및 그 시스템 | |
CN112434269A (zh) | 文件的零知识证明方法、验证方法、计算设备和存储介质 | |
KR102595938B1 (ko) | 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법 | |
EP2991266B1 (en) | Encrypted text matching system, method, and computer readable medium | |
KR102600166B1 (ko) | 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법 | |
US8036378B2 (en) | System and method of authentication | |
KR101978684B1 (ko) | 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법 | |
US8731187B2 (en) | Computing genus-2 curves using general isogenies | |
KR102364047B1 (ko) | 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치 | |
JP3711821B2 (ja) | 素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体 | |
JP2021081591A (ja) | 安全性評価装置、安全性評価方法及び安全性評価プログラム | |
KR102236242B1 (ko) | 퍼지 추출기를 이용한 공개값 생성 방법 및 그 공개값과 2차 입력값을 입력받아 비밀키를 생성하는 방법 | |
KR102582082B1 (ko) | 공개키를 이용한 agcd 기반 완전동형암호 연산 방법 및 시스템 | |
EP4024755B1 (en) | Secured performance of an elliptic curve cryptographic process | |
KR102451633B1 (ko) | 동형암호를 위한 암호화 처리 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |