KR102600166B1 - 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법 - Google Patents

다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법 Download PDF

Info

Publication number
KR102600166B1
KR102600166B1 KR1020210170593A KR20210170593A KR102600166B1 KR 102600166 B1 KR102600166 B1 KR 102600166B1 KR 1020210170593 A KR1020210170593 A KR 1020210170593A KR 20210170593 A KR20210170593 A KR 20210170593A KR 102600166 B1 KR102600166 B1 KR 102600166B1
Authority
KR
South Korea
Prior art keywords
polynomial
matrix
inverse
divisor
generating
Prior art date
Application number
KR1020210170593A
Other languages
English (en)
Other versions
KR20230082789A (ko
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 KR1020210170593A priority Critical patent/KR102600166B1/ko
Publication of KR20230082789A publication Critical patent/KR20230082789A/ko
Application granted granted Critical
Publication of KR102600166B1 publication Critical patent/KR102600166B1/ko

Links

Images

Classifications

    • 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
    • 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • H04L9/3093Public 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

Abstract

본 발명은 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템의 구현을 위해서, 해당 암호화 시스템에서 사용되는 다항식인 와의 관계에서 ''을 만족하는 역원인 를 생성하는 장치 및 방법에 대한 것이다.

Description

다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법{INVERSE GENERATING APPARATUS AND METHOD FOR GENERATING THE INVERSE OF A POLYNOMIAL USED IN AN ENCRYPTION SYSTEM THAT PERFORMS ENCRYPTION/DECRYPTION OF DATA USING A POLYNOMIAL}
본 발명은 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법에 대한 것이다.
최근, 컴퓨터 시스템의 성능이 고도화됨에 따라, 보다 강화된 암호화 시스템에 대한 도입이 필요한 실정이다.
이와 관련해서, 다항식을 이용하여 데이터의 암복호화를 수행함으로써, 해커의 공격에 보다 고차원적으로 대응할 수 있는 암호화 시스템들이 등장하고 있다.
이러한 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템들로는 FALCON, BIKE, NTRU Prime이라는 알고리즘 등이 존재하는데, 그 중 대표적인 시스템으로, NTRU라고 하는 암호화 알고리즘이 적용된 암호화 시스템에 대한 관심이 증가하고 있다.
NTRU는 다항식 환(Polynomial Ring)을 이용한 암호화 알고리즘으로, 빠르고 작은 키 길이를 가지는 장점이 있으며, 여러 가지 공격 기법에 안전한 암호화 알고리즘이다.
NTRU에서는 ''(여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음)로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 어느 하나의 다항식을 선택하여, 상기 선택된 다항식을 기초로 개인키에 해당되는 개인키 다항식 을 생성할 수 있고, 상기 개인키 다항식 가 생성되면, R로부터 임의의 다항식 를 선택한 후 ''를 연산함으로써, 공개키에 해당되는 공개키 다항식 를 생성할 수 있다. 여기서, 는 사전 설정된 정수 형태의 파라미터로, 각 다항식의 계수들은 연산을 통해서 감산된다.
이렇게, 상기 개인키 다항식과 상기 공개키 다항식이 생성되면, NTRU에서의 암호화는 다음과 같이 진행된다. 우선, 메시지를 다항식의 형태인 로 인코딩하고, 로부터 임의의 다항식 를 생성한 후 상기 공개키 다항식인 를 기초로 ''의 연산을 수행함으로써, 암호문에 해당되는 를 생성한다. 그러면, 복호화는 상기 개인키 다항식 를 기초로 ''을 연산함으로써, 수행될 수 있다.
이러한, NTRU에서는 공개키를 생성하기 위해서, 상기 개인키 다항식 의 역원인 을 생성하는 과정이 필요하다. 이러한, 역원은 상기 개인키 다항식 과의 관계에서 ''(여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임)을 만족하는 다항식을 의미한다. 즉, 상기 역원은, 를 곱한 다항식에 대해서, 계수를 로 감산하고, 상기 제수 다항식인 로 모듈로 연산을 수행하였을 때의 결과가 ''가 되도록 하는 다항식을 의미한다.
이러한 다항식의 역원을 생성하는 과정은 상기에서 설명한 NTRU 알고리즘 뿐 아니라, 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 대부분 수행되는 과정이다.
따라서, 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템의 구현을 위해서, 해당 암호화 시스템에서 사용되는 다항식인 와의 관계에서 ''을 만족하는 역원인 를 생성하는 기술에 대한 연구가 필요하다.
대한민국 등록특허공보 제10-0742093호(2007.07.24)
'양자컴퓨팅 환경을 고려한 현대암호 안전성 연구', 한국인터넷진흥원(2016년 11월 공개)
본 발명은 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템의 구현을 위해서, 해당 암호화 시스템에서 사용되는 다항식인 와의 관계에서 ''을 만족하는 역원인 를 생성하는 장치 및 방법을 제시하고자 한다.
본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치는 '' - 여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수를 확인하는 차수 확인부, 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, '' - 여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r개의 행렬 (n는 1이상 r이하의 자연수임)을 생성하는 행렬 생성부 및 상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정하는 역원 결정부를 포함한다.
또한, 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 방법은 '' - 여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수를 확인하는 단계, 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, '' - 여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r개의 행렬 (n는 1이상 r이하의 자연수임)을 생성하는 단계 및 상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정하는 단계를 포함한다.
본 발명은 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템의 구현을 위해서, 해당 암호화 시스템에서 사용되는 다항식인 와의 관계에서 ''을 만족하는 역원인 를 생성하는 장치 및 방법을 제시할 수 있다.
도 1은 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 역원 생성 장치(110)는 차수 확인부(111), 행렬 생성부(112) 및 역원 결정부(113)를 포함한다.
차수 확인부(111)는 ''(여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음)로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수를 확인한다.
행렬 생성부(112)는 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, ''(여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임)을 만족하는 2 x 2 크기를 갖는 r개의 행렬 (n는 1이상 r이하의 자연수임)을 생성한다.
역원 결정부(113)는 상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정한다.
이때, 본 발명의 일실시예에 따르면, 행렬 생성부(112)는 상기 제1 다항식 와 상기 제수 다항식 를 기초로 첫 번째 행렬인 을 생성한 후, ''으로 연산되는 두 번째 제1 다항식 와 두 번째 제수 다항식 를 생성하고, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 가 생성되면, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 를 기초로 두 번째 행렬인 를 생성한 후, ''로 연산되는 세 번째 제1 다항식 와 세 번째 제수 다항식 를 생성하고, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 가 생성되면, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 를 기초로 세 번째 행렬인 를 생성하는 방식으로, k번째 제1 다항식 와 k번째 제수 다항식 를 기초로 k번째 행렬인 를 생성하는 과정을, k를 1씩 증가시키면서, k가 r이 될 때까지 반복 수행함으로써, 상기 r개의 행렬 을 생성할 수 있다.
이때, 본 발명의 일실시예에 따르면, 행렬 생성부(112)는 상기 k번째 제1 다항식 와 상기 k번째 제수 다항식 를 기초로 상기 k번째 행렬인 를 생성할 때, 하기의 표 1에 따른 행렬 생성 조건에 따라 상기 k번째 행렬인 를 생성할 수 있다.
전제 (1) 첫 번째 행렬인 을 생성하기 위한 g값과 f값의 초기 값을 모두 r-1로 지정하되, 아래의 조건 1 내지 9 중 어느 하나의 조건 따라 상기 k번째 행렬인 가 생성되면, 상기 어느 하나의 조건에 지정된 g값과 f값의 갱신 방식에 따라, k+1번째 행렬인 을 생성하기 위한 g값과 f값을 갱신함.
(2) '1' 또는 '0'의 값을 갖는 를 정의하되, g값이 f값보다 작거나 같을 경우에 '1', g값이 f값보다 클 경우에 '0'이 되도록 를 정의함.
(2) 상기 k번째 제1 다항식 의 상수를 , 1차항의 계수를 이라고 하고, 상기 k번째 제수 다항식 의 상수를 , 1차항의 계수를 이라고 하였을 때, '1' 또는 '0'의 값을 갖는 를 정의하되, ''일 경우에 '1', ''일 경우에 '0'이 되도록 를 정의함.
(3) , , , , , 의 값을 기초로, 아래의 조건 1 내지 9에 따라 상기 k번째 행렬인 를 생성함.(이때, 상기 k번째 행렬인 를 구성하는 각 성분은 모두 로 감산됨.(즉, 연산이 수행됨))
조건 1 일 때, 이면, 상기 k번째 행렬인 는 ''로 생성함.(이때, g값은 g-2로 갱신하고, f값은 그대로 유지함.)
조건 2 일 때, 이고, 이면, 상기 k번째 행렬인 는 ''로 생성함.(이때, g값은 그대로 유지하고, f값은 f-2로 갱신함.)
조건 3 일 때, 이고, 이면, 상기 k번째 행렬인 는 ''로 생성함.(이때, g값은 g-2로 갱신하고, f값은 그대로 유지함.)
조건 4 일 때, 이고, 이며, 이면, 상기 k번째 행렬인 는 ''로 생성함.(이때, g값은 g-1로 갱신하고, f값은 f-1로 갱신함.)
조건 5 일 때, 이면, 상기 k번째 행렬인 는 ''로 생성함.(이때, g값은 f값으로 갱신하고, f값은 g-2로 갱신함.)
조건 6 일 때, 이고, 이면, 상기 k번째 행렬인 는 ''로 생성함.(이때, g값은 그대로 유지하고, f값은 f-2로 갱신함.)
조건 7 일 때, 이고, 이며, 이면, 상기 k번째 행렬인 는 ''로 생성함.(이때, g값은 그대로 유지하고, f값은 f-2로 갱신함.)
조건 8 일 때, 이고, 이며, 이면, 상기 k번째 행렬인 는 ''로 생성함.(이때, g값은 g-1로 갱신하고, f값은 f-1로 갱신함.)
조건 9 일 때, 이고, 이며, 이면, 상기 k번째 행렬인 는 ''로 생성함.(이때, g값은 g-1로 갱신하고, f값은 f-1로 갱신함.)
이때, 상기 표 1과 같은 행렬 생성 조건에 따라 생성되는 상기 k번째 행렬인 를 수식으로 표현하면, 하기의 수학식 1과 같이 나타낼 수 있다.
여기서, 상기 수학식 1에서의 , , , , , , , , , , 은 하기의 표 2와 같이 정의될 수 있다.
상기 표 2에서 "", ""와 같이 굵은 글자로 표시되지 않은 값은, 해당 값이 '0'인 경우 '0'으로 지정되고, 해당 값이 '0'이 아닌 경우 '1'로 지정되는 2진 값을 의미하는 것으로, 예컨대, 상기 k번째 제1 다항식 에서의 상수 값인 가 '0'인 경우에는 '0'으로 지정되고, '0'이 아닌 경우에는 '1'로 지정된다. 그리고, "", ""와 같이 굵은 글자로 표시된 값은 해당 값의 원본 값을 의미하는 것으로, 예컨대, 상기 k번째 제1 다항식 에서의 상수 값인 가 '3'인 경우에는 그 원본 값인 '3'이 그대로 사용된다. 그리고, "&"는 'AND'에 해당되는 논리 연산자를 의미하고, ""는 'OR'에 해당되는 논리 연산자를 의미한다.
또한, 본 발명의 일실시예에 따르면, 역원 생성 장치(110)는 검증 수행부(114)를 더 포함할 수 있다.
검증 수행부(114)는 상기 제1 다항식 에 대한 역원인 가 결정되면, 상기 제1 다항식 와 상기 역원인 를 기초로, ''을 만족하는지 여부를 검증한다.
본 발명의 다른 일실시예에 따르면, 역원 생성 장치(110)는 앞서 설명한, ''의 형태와 같이, 상기 제1 다항식 를 2행, 상기 제수 다항식 를 1행에 쓰고, 상기 r개의 행렬 를 좌측에서 곱하는 형태뿐 아니라, 상기 제1 다항식 를 1행, 상기 제수 다항식 를 2행에 쓰고, 2 x 2 크기의 r개의 행렬 의 첫 번째 열과 두 번째 열의 위치를 서로 바꾼 새로운 행렬 를 좌측에서 곱하는 형태로 변형하여, 상기 제1 다항식 에 대한 역원인 를 찾아내도록 구성될 수도 있다.
이하에서는 본 발명에 따른 역원 생성 장치(110)의 동작에 대해 예를 들어 상세히 설명하기로 한다.
먼저, 상기 제1 다항식 를 ''라고 하고, 상기 제수 다항식 를 ''이라고 가정하자. 그리고, 각 다항식은 계수가 0 또는 1로 구성되는 2진 다항식인 것으로 가정하자. 이러한 가정 하에서는 다항식의 연산이 수행될 때, 계수를 2진 값으로 감산해야 하기 때문에 값이 '2'로 사전 지정되어 있다고 가정하자. 그리고, 는 '1'인 것으로 가정하자.
이러한 상황에서, 차수 확인부(111)는 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수가 어떤 값인지 확인할 수 있다.
본 실시예에서는 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수가 모두 '4'이기 때문에, 차수 확인부(111)는 최대 값의 최고차수를 '4'로 확인할 수 있다.
그러면, 행렬 생성부(112)는 상기 제1 다항식 와 상기 제수 다항식 를 기초로 상기 표 1과 같은 행렬 생성 조건에 따라, ''을 만족하는 2 x 2 크기를 갖는 5개의 행렬 , , , , 를 생성할 수 있다.
우선, 행렬 생성부(112)는 첫 번째 행렬인 을 생성하기 위해, g값과 f값의 초기 값을 모두 '4'로 지정할 수 있다.
그러고 나서, 행렬 생성부(112)는 를 정의할 수 있다. 관련해서, g값과 f값은 모두 '4'로 서로 동일하기 때문에, 행렬 생성부(112)는 를 '1'로 정의할 수 있다. 그리고, 상기 제1 다항식 에서의 상수인 는 '1'이고, 1차항의 계수인 은 '1'이며, 상기 제수 다항식 에서의 상수인 는 '1'이고, 1차항의 계수인 은 '1'로서, , , , 을 기초로 연산되는 ''가 '0'이 되기 때문에, 행렬 생성부(112)는 를 '0'으로 정의할 수 있다.
결국, , , , , , 이므로, 행렬 생성부(112)는 상기 표 1에서의 조건 7에 따라, 상기 첫 번째 행렬인 을 하기의 수학식 2와 같이 생성할 수 있다.
이렇게, 상기 첫 번째 행렬인 이 생성되면, 행렬 생성부(112)는 ''을 연산함으로써, 두 번째 제1 다항식 를 ''로 생성할 수 있고, 두 번째 제수 다항식 을 ''으로 생성할 수 있다. 참고로, 본 실시예에서 사용되는 다항식은 이진 다항식으로, 값이 '2'로 사전 지정되어 있다고 가정하였기 때문에, ''의 연산과 같은 행렬 연산에서는 '' 연산을 통해 다항식 계수에 대한 감산이 수행된다. 관련해서, 본 명세서 상에서 행렬 연산식에 대해서는 수식 표현의 간소화를 위해서 '' 연산에 대한 표기를 생략하였다.
이렇게, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 가 생성되면, 행렬 생성부(112)는 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 를 기초로 상기 표 1과 같은 행렬 생성 조건에 따라, 두 번째 행렬인 를 생성할 수 있다.
우선, 행렬 생성부(112)는 상기 두 번째 행렬인 를 생성하기 위해, 조건 7에 지정된 g값과 f값의 갱신 방식에 따라, 두 번째 행렬인 를 생성하기 위한 상기 g값과 f값을 갱신할 수 있는데, 행렬 생성부(112)는 상기 조건 7에 따라 g값은 그대로 '4'로 유지하고, f값은 '2'로 갱신할 수 있다.
그러고 나서, 행렬 생성부(112)는 를 정의할 수 있다. 관련해서, g값이 f값보다 작기 때문에, 행렬 생성부(112)는 를 '0'으로 정의할 수 있다. 그리고, 상기 두 번째 제1 다항식 에서의 상수인 는 '1'이고, 1차항의 계수인 은 '1'이며, 상기 두 번째 제수 다항식 에서의 상수인 는 '1'이고, 1차항의 계수인 은 '1'로서, , , , 을 기초로 연산되는 ''가 '0'이 되기 때문에, 행렬 생성부(112)는 를 '0'으로 정의할 수 있다.
결국, , , , , , 이므로, 행렬 생성부(112)는 상기 표 1에서의 조건 3에 따라, 상기 두 번째 행렬인 를 하기의 수학식 3과 같이 생성할 수 있다.
이렇게, 상기 두 번째 행렬인 가 생성되면, 행렬 생성부(112)는 ''을 연산함으로써, 세 번째 제1 다항식 를 ''로 생성할 수 있고, 세 번째 제수 다항식 을 ''으로 생성할 수 있다. 참고로, 본 행렬 연산에서도 이진 다항식이 사용되었고, 값이 '2'로 사전 지정되어 있다고 가정하였기 때문에, ''의 연산에서 '' 연산을 통한 다항식 계수의 감산이 수반된다.
이렇게, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 가 생성되면, 행렬 생성부(112)는 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 를 기초로 상기 표 1과 같은 행렬 생성 조건에 따라, 세 번째 행렬인 을 생성할 수 있다.
우선, 행렬 생성부(112)는 상기 세 번째 행렬인 을 생성하기 위해, 조건 3에 지정된 g값과 f값의 갱신 방식에 따라, 상기 세 번째 행렬인 를 생성하기 위한 상기 g값과 f값을 갱신할 수 있는데, 행렬 생성부(112)는 상기 조건 3에 따라 g값은 '2'로 갱신하고, f값은 '2'로 유지할 수 있다.
그러고 나서, 행렬 생성부(112)는 를 정의할 수 있다. 관련해서, g값과 f값이 '2'로 서로 동일하기 때문에, 행렬 생성부(112)는 를 '1'으로 정의할 수 있다. 그리고, 상기 세 번째 제1 다항식 에서의 상수인 는 '1'이고, 1차항의 계수인 은 '1'이며, 상기 세 번째 제수 다항식 에서의 상수인 는 '1'이고, 1차항의 계수인 은 '1'로서, , , , 을 기초로 연산되는 ''가 '0'이 되기 때문에, 행렬 생성부(112)는 를 '0'으로 정의할 수 있다.
결국, , , , , , 이므로, 행렬 생성부(112)는 상기 표 1에서의 조건 7에 따라, 상기 세 번째 행렬인 를 하기의 수학식 4와 같이 생성할 수 있다.
이렇게, 상기 세 번째 행렬인 가 생성되면, 행렬 생성부(112)는 ''을 연산함으로써, 네 번째 제1 다항식 를 ''로 생성할 수 있고, 네 번째 제수 다항식 를 ''으로 생성할 수 있다. 참고로, 본 행렬 연산에서도 이진 다항식이 사용되었고, 값이 '2'로 사전 지정되어 있다고 가정하였기 때문에, ''의 연산에서 '' 연산을 통한 다항식 계수의 감산이 수반된다.
이렇게, 상기 네 번째 제1 다항식 와 상기 네 번째 제수 다항식 가 생성되면, 행렬 생성부(112)는 상기 네 번째 제1 다항식 와 상기 네 번째 제수 다항식 를 기초로 상기 표 1과 같은 행렬 생성 조건에 따라, 네 번째 행렬인 을 생성할 수 있다.
우선, 행렬 생성부(112)는 상기 네 번째 행렬인 를 생성하기 위해, 조건 7에 지정된 g값과 f값의 갱신 방식에 따라, 상기 네 번째 행렬인 를 생성하기 위한 상기 g값과 f값을 갱신할 수 있는데, 행렬 생성부(112)는 상기 조건 7에 따라 g값은 '2'로 유지하고, f값은 '0'으로 갱신할 수 있다.
그러고 나서, 행렬 생성부(112)는 를 정의할 수 있다. 관련해서, g값이 f값보다 크기 때문에, 행렬 생성부(112)는 를 '0'으로 정의할 수 있다. 그리고, 상기 네 번째 제1 다항식 에서의 상수인 는 '1'이고, 1차항의 계수인 은 '0'이며, 상기 네 번째 제수 다항식 에서의 상수인 는 '1'이고, 1차항의 계수인 은 '1'로서, , , , 을 기초로 연산되는 ''가 '0'이 아니기 때문에, 행렬 생성부(112)는 를 '1'로 정의할 수 있다.
결국, , , , , , 이므로, 행렬 생성부(112)는 상기 표 1에서의 조건 3에 따라, 상기 네 번째 행렬인 를 하기의 수학식 5와 같이 생성할 수 있다.
이렇게, 상기 네 번째 행렬인 가 생성되면, 행렬 생성부(112)는 ''을 연산함으로써, 다섯 번째 제1 다항식 를 ''로 생성할 수 있고, 다섯 번째 제수 다항식 를 ''으로 생성할 수 있다. 참고로, 본 행렬 연산에서도 이진 다항식이 사용되었고, 값이 '2'로 사전 지정되어 있다고 가정하였기 때문에, ''의 연산에서 '' 연산을 통한 다항식 계수의 감산이 수반된다.
이렇게, 상기 다섯 번째 제1 다항식 와 상기 다섯 번째 제수 다항식 가 생성되면, 행렬 생성부(112)는 상기 다섯 번째 제1 다항식 와 상기 다섯 번째 제수 다항식 를 기초로 상기 표 1과 같은 행렬 생성 조건에 따라, 다섯 번째 행렬인 를 생성할 수 있다.
우선, 행렬 생성부(112)는 상기 다섯 번째 행렬인 를 생성하기 위해, 조건 3에 지정된 g값과 f값의 갱신 방식에 따라, 다섯 번째 행렬인 를 생성하기 위한 상기 g값과 f값을 갱신할 수 있는데, 행렬 생성부(112)는 상기 조건 3에 따라 g값은 '0'으로 갱신하고, f값은 '0'으로 유지할 수 있다.
그러고 나서, 행렬 생성부(112)는 를 정의할 수 있다. 관련해서, g값과 f값이 '0'으로 서로 동일하기 때문에, 행렬 생성부(112)는 를 '1'로 정의할 수 있다. 그리고, 상기 다섯 번째 제1 다항식 에서의 상수인 는 '1'이고, 1차항의 계수인 은 '0'이며, 상기 다섯 번째 제수 다항식 에서의 상수인 는 '1'이고, 1차항의 계수인 은 '0'으로서, , , , 을 기초로 연산되는 ''가 '0'이 되기 때문에, 행렬 생성부(112)는 를 '0'로 정의할 수 있다.
결국, , , , , , 이므로, 행렬 생성부(112)는 상기 표 1에서의 조건 7에 따라, 상기 다섯 번째 행렬인 를 하기의 수학식 6과 같이 생성할 수 있다.
이렇게, 상기 다섯 번째 행렬인 가 생성되면, 행렬 생성부(112)는 ''을 연산함으로써, 5개의 행렬 , , , , 의 생성을 완료할 수 있다.
이렇게, 행렬 생성부(112)에 의해 5개의 행렬인 , , , , 의 생성이 완료되면, 역원 결정부(113)는 5개의 행렬인 , , , , 와 기설정된 열벡터인 을 기초로 ''의 연산을 수행함으로써, 하기의 수학식 7과 같은 산출 행렬을 산출할 수 있다.
이렇게, 상기 산출 행렬이 산출되면, 역원 결정부(112)는 상기 산출 행렬에서의 1행1열에 위치하는 성분인 ''을 상기 제1 다항식 에 대한 역원인 로 결정할 수 있다.
이렇게, 역원 결정부(113)에 의해 상기 역원인 가 결정되면, 검증 수행부(114)는 상기 역원인 가, ''을 만족하는 역원이 맞는지 여부를 검증할 수 있다.
관련해서, 전술한 예와 같이, 상기 역원이 ''로 결정되었다고 하는 경우, 우선 ''는 하기의 수학식 8과 같이 연산될 수 있다.
이때, 상기 제수 다항식 는 ''이기 때문에, 상기 수학식 8의 연산 결과에서 '' 연산을 수행하게 되면, '1'이 산출되게 된다. 이로 인해, 역원 검증부(114)는 상기 역원인 가, ''을 만족하는 역원이 맞는 것으로 검증할 수 있다.
도 2는 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 방법을 도시한 순서도이다.
단계(S210)에서는 ''(여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음)로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수를 확인한다.
단계(S220)에서는 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, ''(여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임)을 만족하는 2 x 2 크기를 갖는 r개의 행렬 (n는 1이상 r이하의 자연수임)을 생성한다.
단계(S230)에서는 상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정한다.
이때, 본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 제1 다항식 와 상기 제수 다항식 를 기초로 첫 번째 행렬인 을 생성한 후, ''으로 연산되는 두 번째 제1 다항식 와 두 번째 제수 다항식 를 생성하고, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 가 생성되면, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 를 기초로 두 번째 행렬인 를 생성한 후, ''로 연산되는 세 번째 제1 다항식 와 세 번째 제수 다항식 를 생성하고, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 가 생성되면, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 를 기초로 세 번째 행렬인 를 생성하는 방식으로, k번째 제1 다항식 와 k번째 제수 다항식 를 기초로 k번째 행렬인 를 생성하는 과정을, k를 1씩 증가시키면서, k가 r이 될 때까지 반복 수행함으로써, 상기 r개의 행렬 을 생성할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 k번째 제1 다항식 와 상기 k번째 제수 다항식 를 기초로 상기 k번째 행렬인 를 생성할 때, 상기 표 1에 따른 행렬 생성 조건에 따라 상기 k번째 행렬인 를 생성할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 역원 생성 방법은 상기 제1 다항식 에 대한 역원인 가 결정되면, 상기 제1 다항식 와 상기 역원인 를 기초로, ''을 만족하는지 여부를 검증하는 단계를 더 포함할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 방법은 도 1을 이용하여 설명한 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 NTRU 알고리즘에서의 개인키에 해당되는 다항식의 역원을 생성하기 위한 역원 생성 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 역원 생성 장치
111: 차수 확인부
112: 행렬 생성부
113: 역원 결정부
114: 검증 수행부

Claims (10)

  1. 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치에 있어서,
    '' - 여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수를 확인하는 차수 확인부;
    상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, '' - 여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r개의 행렬 (n는 1이상 r이하의 자연수임)을 생성하는 행렬 생성부;
    상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정하는 역원 결정부; 및
    상기 제1 다항식 에 대한 역원인 가 결정되면, 상기 제1 다항식 와 상기 역원인 를 기초로, ''을 만족하는지 여부를 검증하는 검증 수행부
    를 포함하는 역원 생성 장치.
  2. 제1항에 있어서,
    상기 행렬 생성부는
    상기 제1 다항식 와 상기 제수 다항식 를 기초로 첫 번째 행렬인 을 생성한 후, ''으로 연산되는 두 번째 제1 다항식 와 두 번째 제수 다항식 를 생성하고, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 가 생성되면, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 를 기초로 두 번째 행렬인 를 생성한 후, ''로 연산되는 세 번째 제1 다항식 와 세 번째 제수 다항식 를 생성하고, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 가 생성되면, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 를 기초로 세 번째 행렬인 를 생성하는 방식으로, k번째 제1 다항식 와 k번째 제수 다항식 를 기초로 k번째 행렬인 를 생성하는 과정을, k를 1씩 증가시키면서, k가 r이 될 때까지 반복 수행함으로써, 상기 r개의 행렬 을 생성하는 것을 특징으로 하는 역원 생성 장치.
  3. 제2항에 있어서,
    상기 행렬 생성부는
    상기 k번째 제1 다항식 와 상기 k번째 제수 다항식 를 기초로 상기 k번째 행렬인 를 생성할 때, 하기의 표 1에 따른 행렬 생성 조건에 따라 상기 k번째 행렬인 를 생성하는 것을 특징으로 하는 역원 생성 장치.
    [표 1]

  4. 삭제
  5. 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 방법에 있어서,
    '' - 여기서, 는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고, 는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인 로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식 에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수를 확인하는 단계;
    상기 제1 다항식 의 최고차수와 상기 제수 다항식 의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, '' - 여기서, 는 p가 1보다 큰 정수라 할 때 ''(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r개의 행렬 (n는 1이상 r이하의 자연수임)을 생성하는 단계;
    상기 r개의 행렬 이 생성되면, 상기 r개의 행렬 과 기설정된 열벡터인 을 기초로 ''의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식 에 대한 역원인 로 결정하는 단계; 및
    상기 제1 다항식 에 대한 역원인 가 결정되면, 상기 제1 다항식 와 상기 역원인 를 기초로, ''을 만족하는지 여부를 검증하는 단계
    를 포함하는 역원 생성 방법.
  6. 제5항에 있어서,
    상기 생성하는 단계는
    상기 제1 다항식 와 상기 제수 다항식 를 기초로 첫 번째 행렬인 을 생성한 후, ''으로 연산되는 두 번째 제1 다항식 와 두 번째 제수 다항식 를 생성하고, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 가 생성되면, 상기 두 번째 제1 다항식 와 상기 두 번째 제수 다항식 를 기초로 두 번째 행렬인 를 생성한 후, ''로 연산되는 세 번째 제1 다항식 와 세 번째 제수 다항식 를 생성하고, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 가 생성되면, 상기 세 번째 제1 다항식 와 상기 세 번째 제수 다항식 를 기초로 세 번째 행렬인 를 생성하는 방식으로, k번째 제1 다항식 와 k번째 제수 다항식 를 기초로 k번째 행렬인 를 생성하는 과정을, k를 1씩 증가시키면서, k가 r이 될 때까지 반복 수행함으로써, 상기 r개의 행렬 을 생성하는 것을 특징으로 하는 역원 생성 방법.
  7. 제6항에 있어서,
    상기 생성하는 단계는
    상기 k번째 제1 다항식 와 상기 k번째 제수 다항식 를 기초로 상기 k번째 행렬인 를 생성할 때, 하기의 표 1에 따른 행렬 생성 조건에 따라 상기 k번째 행렬인 를 생성하는 것을 특징으로 하는 역원 생성 방법.
    [표 1]

  8. 삭제
  9. 제5항 내지 제7항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  10. 제5항 내지 제7항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020210170593A 2021-12-02 2021-12-02 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법 KR102600166B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210170593A KR102600166B1 (ko) 2021-12-02 2021-12-02 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210170593A KR102600166B1 (ko) 2021-12-02 2021-12-02 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20230082789A KR20230082789A (ko) 2023-06-09
KR102600166B1 true KR102600166B1 (ko) 2023-11-08

Family

ID=86765320

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210170593A KR102600166B1 (ko) 2021-12-02 2021-12-02 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102600166B1 (ko)

Citations (2)

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100535962C (zh) * 2004-05-12 2009-09-02 松下电器产业株式会社 加密系统、加密装置、解密装置和集成电路
US8719324B1 (en) * 2005-04-28 2014-05-06 Cetin K. Koc Spectral modular arithmetic method and apparatus
KR100742093B1 (ko) 2007-05-10 2007-07-24 인하대학교 산학협력단 엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
KR20230082789A (ko) 2023-06-09

Similar Documents

Publication Publication Date Title
JP6413598B2 (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
US7912212B2 (en) Symmetric cryptosystem using cascaded chaotic maps
JP2009010531A (ja) 秘密分散装置、方法及びプログラム
US11349668B2 (en) Encryption device and decryption device
KR101942030B1 (ko) 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법
KR102295263B1 (ko) 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법
EP2991264B1 (en) Encrypted text matching system, method and program
KR101913644B1 (ko) 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법
US10256970B2 (en) Secure data transformations
JP2014002230A (ja) 認証暗号化装置、認証復号装置、およびプログラム
US11824993B2 (en) MAC tag list generation apparatus, MAC tag list verification apparatus, method, and program
KR102096359B1 (ko) 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법
CN112434269A (zh) 文件的零知识证明方法、验证方法、计算设备和存储介质
KR102600166B1 (ko) 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법
US8325913B2 (en) System and method of authentication
KR102595938B1 (ko) 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법
KR101978684B1 (ko) 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법
EP2991266B1 (en) Encrypted text matching system, method, and computer readable medium
US20220150064A1 (en) Encryption device, decryption device, encryption method, decryption method, and computer program products
US11616994B2 (en) Embedding information in elliptic curve base point
US20210152348A1 (en) Method and apparatus for public-key cryptography based on structured matrices
JP3711821B2 (ja) 素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体
KR102236242B1 (ko) 퍼지 추출기를 이용한 공개값 생성 방법 및 그 공개값과 2차 입력값을 입력받아 비밀키를 생성하는 방법
KR102326527B1 (ko) 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법
US20230195943A1 (en) Processor architecture and related techniques

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right