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

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

Info

Publication number
KR20230082789A
KR20230082789A KR1020210170593A KR20210170593A KR20230082789A KR 20230082789 A KR20230082789 A KR 20230082789A KR 1020210170593 A KR1020210170593 A KR 1020210170593A KR 20210170593 A KR20210170593 A KR 20210170593A KR 20230082789 A KR20230082789 A KR 20230082789A
Authority
KR
South Korea
Prior art keywords
polynomial
inverse
divisor
matrix
generating
Prior art date
Application number
KR1020210170593A
Other languages
English (en)
Other versions
KR102600166B1 (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

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)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Operations Research (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

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

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에서는 '
Figure pat00001
'(여기서,
Figure pat00002
는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고,
Figure pat00003
는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인
Figure pat00004
로 감산되도록 설정되어 있음)로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 어느 하나의 다항식을 선택하여, 상기 선택된 다항식을 기초로 개인키에 해당되는 개인키 다항식
Figure pat00005
을 생성할 수 있고, 상기 개인키 다항식
Figure pat00006
가 생성되면, R로부터 임의의 다항식
Figure pat00007
를 선택한 후 '
Figure pat00008
'를 연산함으로써, 공개키에 해당되는 공개키 다항식
Figure pat00009
를 생성할 수 있다. 여기서,
Figure pat00010
는 사전 설정된 정수 형태의 파라미터로, 각 다항식의 계수들은
Figure pat00011
연산을 통해서 감산된다.
이렇게, 상기 개인키 다항식과 상기 공개키 다항식이 생성되면, NTRU에서의 암호화는 다음과 같이 진행된다. 우선, 메시지를 다항식의 형태인
Figure pat00012
로 인코딩하고,
Figure pat00013
로부터 임의의 다항식
Figure pat00014
를 생성한 후 상기 공개키 다항식인
Figure pat00015
를 기초로 '
Figure pat00016
'의 연산을 수행함으로써, 암호문에 해당되는
Figure pat00017
를 생성한다. 그러면, 복호화는 상기 개인키 다항식
Figure pat00018
를 기초로 '
Figure pat00019
'을 연산함으로써, 수행될 수 있다.
이러한, NTRU에서는 공개키를 생성하기 위해서, 상기 개인키 다항식
Figure pat00020
의 역원인
Figure pat00021
을 생성하는 과정이 필요하다. 이러한, 역원은 상기 개인키 다항식
Figure pat00022
과의 관계에서 '
Figure pat00023
'(여기서,
Figure pat00024
는 p가 1보다 큰 정수라 할 때 '
Figure pat00025
'(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임)을 만족하는 다항식을 의미한다. 즉, 상기 역원은,
Figure pat00026
Figure pat00027
를 곱한 다항식에 대해서, 계수를
Figure pat00028
로 감산하고, 상기 제수 다항식인
Figure pat00029
로 모듈로 연산을 수행하였을 때의 결과가 '
Figure pat00030
'가 되도록 하는 다항식을 의미한다.
이러한 다항식의 역원을 생성하는 과정은 상기에서 설명한 NTRU 알고리즘 뿐 아니라, 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 대부분 수행되는 과정이다.
따라서, 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템의 구현을 위해서, 해당 암호화 시스템에서 사용되는 다항식인
Figure pat00031
와의 관계에서 '
Figure pat00032
'을 만족하는 역원인
Figure pat00033
를 생성하는 기술에 대한 연구가 필요하다.
대한민국 등록특허공보 제10-0742093호(2007.07.24)
'양자컴퓨팅 환경을 고려한 현대암호 안전성 연구', 한국인터넷진흥원(2016년 11월 공개)
본 발명은 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템의 구현을 위해서, 해당 암호화 시스템에서 사용되는 다항식인
Figure pat00034
와의 관계에서 '
Figure pat00035
'을 만족하는 역원인
Figure pat00036
를 생성하는 장치 및 방법을 제시하고자 한다.
본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치는 '
Figure pat00037
' - 여기서,
Figure pat00038
는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고,
Figure pat00039
는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인
Figure pat00040
로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식
Figure pat00041
에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식
Figure pat00042
의 최고차수와 상기 제수 다항식
Figure pat00043
의 최고차수 중 최대 값의 최고차수를 확인하는 차수 확인부, 상기 제1 다항식
Figure pat00044
의 최고차수와 상기 제수 다항식
Figure pat00045
의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, '
Figure pat00046
' - 여기서,
Figure pat00047
는 p가 1보다 큰 정수라 할 때 '
Figure pat00048
'(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r개의 행렬
Figure pat00049
(n는 1이상 r이하의 자연수임)을 생성하는 행렬 생성부 및 상기 r개의 행렬
Figure pat00050
이 생성되면, 상기 r개의 행렬
Figure pat00051
과 기설정된 열벡터인
Figure pat00052
을 기초로 '
Figure pat00053
'의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식
Figure pat00054
에 대한 역원인
Figure pat00055
로 결정하는 역원 결정부를 포함한다.
또한, 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 방법은 '
Figure pat00056
' - 여기서,
Figure pat00057
는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고,
Figure pat00058
는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인
Figure pat00059
로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식
Figure pat00060
에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식
Figure pat00061
의 최고차수와 상기 제수 다항식
Figure pat00062
의 최고차수 중 최대 값의 최고차수를 확인하는 단계, 상기 제1 다항식
Figure pat00063
의 최고차수와 상기 제수 다항식
Figure pat00064
의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, '
Figure pat00065
' - 여기서,
Figure pat00066
는 p가 1보다 큰 정수라 할 때 '
Figure pat00067
'(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r개의 행렬
Figure pat00068
(n는 1이상 r이하의 자연수임)을 생성하는 단계 및 상기 r개의 행렬
Figure pat00069
이 생성되면, 상기 r개의 행렬
Figure pat00070
과 기설정된 열벡터인
Figure pat00071
을 기초로 '
Figure pat00072
'의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식
Figure pat00073
에 대한 역원인
Figure pat00074
로 결정하는 단계를 포함한다.
본 발명은 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템의 구현을 위해서, 해당 암호화 시스템에서 사용되는 다항식인
Figure pat00075
와의 관계에서 '
Figure pat00076
'을 만족하는 역원인
Figure pat00077
를 생성하는 장치 및 방법을 제시할 수 있다.
도 1은 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 역원 생성 장치(110)는 차수 확인부(111), 행렬 생성부(112) 및 역원 결정부(113)를 포함한다.
차수 확인부(111)는 '
Figure pat00078
'(여기서,
Figure pat00079
는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고,
Figure pat00080
는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인
Figure pat00081
로 감산되도록 설정되어 있음)로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식
Figure pat00082
에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식
Figure pat00083
의 최고차수와 상기 제수 다항식
Figure pat00084
의 최고차수 중 최대 값의 최고차수를 확인한다.
행렬 생성부(112)는 상기 제1 다항식
Figure pat00085
의 최고차수와 상기 제수 다항식
Figure pat00086
의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, '
Figure pat00087
'(여기서,
Figure pat00088
는 p가 1보다 큰 정수라 할 때 '
Figure pat00089
'(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임)을 만족하는 2 x 2 크기를 갖는 r개의 행렬
Figure pat00090
(n는 1이상 r이하의 자연수임)을 생성한다.
역원 결정부(113)는 상기 r개의 행렬
Figure pat00091
이 생성되면, 상기 r개의 행렬
Figure pat00092
과 기설정된 열벡터인
Figure pat00093
을 기초로 '
Figure pat00094
'의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식
Figure pat00095
에 대한 역원인
Figure pat00096
로 결정한다.
이때, 본 발명의 일실시예에 따르면, 행렬 생성부(112)는 상기 제1 다항식
Figure pat00097
와 상기 제수 다항식
Figure pat00098
를 기초로 첫 번째 행렬인
Figure pat00099
을 생성한 후, '
Figure pat00100
'으로 연산되는 두 번째 제1 다항식
Figure pat00101
와 두 번째 제수 다항식
Figure pat00102
를 생성하고, 상기 두 번째 제1 다항식
Figure pat00103
와 상기 두 번째 제수 다항식
Figure pat00104
가 생성되면, 상기 두 번째 제1 다항식
Figure pat00105
와 상기 두 번째 제수 다항식
Figure pat00106
를 기초로 두 번째 행렬인
Figure pat00107
를 생성한 후, '
Figure pat00108
'로 연산되는 세 번째 제1 다항식
Figure pat00109
와 세 번째 제수 다항식
Figure pat00110
를 생성하고, 상기 세 번째 제1 다항식
Figure pat00111
와 상기 세 번째 제수 다항식
Figure pat00112
가 생성되면, 상기 세 번째 제1 다항식
Figure pat00113
와 상기 세 번째 제수 다항식
Figure pat00114
를 기초로 세 번째 행렬인
Figure pat00115
를 생성하는 방식으로, k번째 제1 다항식
Figure pat00116
와 k번째 제수 다항식
Figure pat00117
를 기초로 k번째 행렬인
Figure pat00118
를 생성하는 과정을, k를 1씩 증가시키면서, k가 r이 될 때까지 반복 수행함으로써, 상기 r개의 행렬
Figure pat00119
을 생성할 수 있다.
이때, 본 발명의 일실시예에 따르면, 행렬 생성부(112)는 상기 k번째 제1 다항식
Figure pat00120
와 상기 k번째 제수 다항식
Figure pat00121
를 기초로 상기 k번째 행렬인
Figure pat00122
를 생성할 때, 하기의 표 1에 따른 행렬 생성 조건에 따라 상기 k번째 행렬인
Figure pat00123
를 생성할 수 있다.
전제 (1) 첫 번째 행렬인
Figure pat00124
을 생성하기 위한 g값과 f값의 초기 값을 모두 r-1로 지정하되, 아래의 조건 1 내지 9 중 어느 하나의 조건 따라 상기 k번째 행렬인
Figure pat00125
가 생성되면, 상기 어느 하나의 조건에 지정된 g값과 f값의 갱신 방식에 따라, k+1번째 행렬인
Figure pat00126
을 생성하기 위한 g값과 f값을 갱신함.
(2) '1' 또는 '0'의 값을 갖는
Figure pat00127
를 정의하되, g값이 f값보다 작거나 같을 경우에 '1', g값이 f값보다 클 경우에 '0'이 되도록
Figure pat00128
를 정의함.
(2) 상기 k번째 제1 다항식
Figure pat00129
의 상수를
Figure pat00130
, 1차항의 계수를
Figure pat00131
이라고 하고, 상기 k번째 제수 다항식
Figure pat00132
의 상수를
Figure pat00133
, 1차항의 계수를
Figure pat00134
이라고 하였을 때, '1' 또는 '0'의 값을 갖는
Figure pat00135
를 정의하되, '
Figure pat00136
'일 경우에 '1', '
Figure pat00137
'일 경우에 '0'이 되도록
Figure pat00138
를 정의함.
(3)
Figure pat00139
,
Figure pat00140
,
Figure pat00141
,
Figure pat00142
,
Figure pat00143
,
Figure pat00144
의 값을 기초로, 아래의 조건 1 내지 9에 따라 상기 k번째 행렬인
Figure pat00145
를 생성함.(이때, 상기 k번째 행렬인
Figure pat00146
를 구성하는 각 성분은 모두
Figure pat00147
로 감산됨.(즉,
Figure pat00148
연산이 수행됨))
조건 1
Figure pat00149
일 때,
Figure pat00150
이면, 상기 k번째 행렬인
Figure pat00151
는 '
Figure pat00152
'로 생성함.(이때, g값은 g-2로 갱신하고, f값은 그대로 유지함.)
조건 2
Figure pat00153
일 때,
Figure pat00154
이고,
Figure pat00155
이면, 상기 k번째 행렬인
Figure pat00156
는 '
Figure pat00157
'로 생성함.(이때, g값은 그대로 유지하고, f값은 f-2로 갱신함.)
조건 3
Figure pat00158
일 때,
Figure pat00159
이고,
Figure pat00160
이면, 상기 k번째 행렬인
Figure pat00161
는 '
Figure pat00162
'로 생성함.(이때, g값은 g-2로 갱신하고, f값은 그대로 유지함.)
조건 4
Figure pat00163
일 때,
Figure pat00164
이고,
Figure pat00165
이며,
Figure pat00166
이면, 상기 k번째 행렬인
Figure pat00167
는 '
Figure pat00168
'로 생성함.(이때, g값은 g-1로 갱신하고, f값은 f-1로 갱신함.)
조건 5
Figure pat00169
일 때,
Figure pat00170
이면, 상기 k번째 행렬인
Figure pat00171
는 '
Figure pat00172
'로 생성함.(이때, g값은 f값으로 갱신하고, f값은 g-2로 갱신함.)
조건 6
Figure pat00173
일 때,
Figure pat00174
이고,
Figure pat00175
이면, 상기 k번째 행렬인
Figure pat00176
는 '
Figure pat00177
'로 생성함.(이때, g값은 그대로 유지하고, f값은 f-2로 갱신함.)
조건 7
Figure pat00178
일 때,
Figure pat00179
이고,
Figure pat00180
이며,
Figure pat00181
이면, 상기 k번째 행렬인
Figure pat00182
는 '
Figure pat00183
'로 생성함.(이때, g값은 그대로 유지하고, f값은 f-2로 갱신함.)
조건 8
Figure pat00184
일 때,
Figure pat00185
이고,
Figure pat00186
이며,
Figure pat00187
이면, 상기 k번째 행렬인
Figure pat00188
는 '
Figure pat00189
'로 생성함.(이때, g값은 g-1로 갱신하고, f값은 f-1로 갱신함.)
조건 9
Figure pat00190
일 때,
Figure pat00191
이고,
Figure pat00192
이며,
Figure pat00193
이면, 상기 k번째 행렬인
Figure pat00194
는 '
Figure pat00195
'로 생성함.(이때, g값은 g-1로 갱신하고, f값은 f-1로 갱신함.)
이때, 상기 표 1과 같은 행렬 생성 조건에 따라 생성되는 상기 k번째 행렬인
Figure pat00196
를 수식으로 표현하면, 하기의 수학식 1과 같이 나타낼 수 있다.
Figure pat00197
여기서, 상기 수학식 1에서의
Figure pat00198
,
Figure pat00199
,
Figure pat00200
,
Figure pat00201
,
Figure pat00202
,
Figure pat00203
,
Figure pat00204
,
Figure pat00205
,
Figure pat00206
,
Figure pat00207
,
Figure pat00208
은 하기의 표 2와 같이 정의될 수 있다.
Figure pat00209
상기 표 2에서 "
Figure pat00210
", "
Figure pat00211
"와 같이 굵은 글자로 표시되지 않은 값은, 해당 값이 '0'인 경우 '0'으로 지정되고, 해당 값이 '0'이 아닌 경우 '1'로 지정되는 2진 값을 의미하는 것으로, 예컨대, 상기 k번째 제1 다항식
Figure pat00212
에서의 상수 값인
Figure pat00213
가 '0'인 경우에는 '0'으로 지정되고, '0'이 아닌 경우에는 '1'로 지정된다. 그리고, "
Figure pat00214
", "
Figure pat00215
"와 같이 굵은 글자로 표시된 값은 해당 값의 원본 값을 의미하는 것으로, 예컨대, 상기 k번째 제1 다항식
Figure pat00216
에서의 상수 값인
Figure pat00217
가 '3'인 경우에는 그 원본 값인 '3'이 그대로 사용된다. 그리고, "&"는 'AND'에 해당되는 논리 연산자를 의미하고, "
Figure pat00218
"는 'OR'에 해당되는 논리 연산자를 의미한다.
또한, 본 발명의 일실시예에 따르면, 역원 생성 장치(110)는 검증 수행부(114)를 더 포함할 수 있다.
검증 수행부(114)는 상기 제1 다항식
Figure pat00219
에 대한 역원인
Figure pat00220
가 결정되면, 상기 제1 다항식
Figure pat00221
와 상기 역원인
Figure pat00222
를 기초로, '
Figure pat00223
'을 만족하는지 여부를 검증한다.
본 발명의 다른 일실시예에 따르면, 역원 생성 장치(110)는 앞서 설명한, '
Figure pat00224
'의 형태와 같이, 상기 제1 다항식
Figure pat00225
를 2행, 상기 제수 다항식
Figure pat00226
를 1행에 쓰고, 상기 r개의 행렬
Figure pat00227
를 좌측에서 곱하는 형태뿐 아니라, 상기 제1 다항식
Figure pat00228
를 1행, 상기 제수 다항식
Figure pat00229
를 2행에 쓰고, 2 x 2 크기의 r개의 행렬
Figure pat00230
의 첫 번째 열과 두 번째 열의 위치를 서로 바꾼 새로운 행렬
Figure pat00231
를 좌측에서 곱하는 형태로 변형하여, 상기 제1 다항식
Figure pat00232
에 대한 역원인
Figure pat00233
를 찾아내도록 구성될 수도 있다.
이하에서는 본 발명에 따른 역원 생성 장치(110)의 동작에 대해 예를 들어 상세히 설명하기로 한다.
먼저, 상기 제1 다항식
Figure pat00234
를 '
Figure pat00235
'라고 하고, 상기 제수 다항식
Figure pat00236
를 '
Figure pat00237
'이라고 가정하자. 그리고, 각 다항식은 계수가 0 또는 1로 구성되는 2진 다항식인 것으로 가정하자. 이러한 가정 하에서는 다항식의 연산이 수행될 때, 계수를 2진 값으로 감산해야 하기 때문에
Figure pat00238
값이 '2'로 사전 지정되어 있다고 가정하자. 그리고,
Figure pat00239
는 '1'인 것으로 가정하자.
이러한 상황에서, 차수 확인부(111)는 상기 제1 다항식
Figure pat00240
의 최고차수와 상기 제수 다항식
Figure pat00241
의 최고차수 중 최대 값의 최고차수가 어떤 값인지 확인할 수 있다.
본 실시예에서는 상기 제1 다항식
Figure pat00242
의 최고차수와 상기 제수 다항식
Figure pat00243
의 최고차수가 모두 '4'이기 때문에, 차수 확인부(111)는 최대 값의 최고차수를 '4'로 확인할 수 있다.
그러면, 행렬 생성부(112)는 상기 제1 다항식
Figure pat00244
와 상기 제수 다항식
Figure pat00245
를 기초로 상기 표 1과 같은 행렬 생성 조건에 따라, '
Figure pat00246
'을 만족하는 2 x 2 크기를 갖는 5개의 행렬
Figure pat00247
,
Figure pat00248
,
Figure pat00249
,
Figure pat00250
,
Figure pat00251
를 생성할 수 있다.
우선, 행렬 생성부(112)는 첫 번째 행렬인
Figure pat00252
을 생성하기 위해, g값과 f값의 초기 값을 모두 '4'로 지정할 수 있다.
그러고 나서, 행렬 생성부(112)는
Figure pat00253
Figure pat00254
를 정의할 수 있다. 관련해서, g값과 f값은 모두 '4'로 서로 동일하기 때문에, 행렬 생성부(112)는
Figure pat00255
를 '1'로 정의할 수 있다. 그리고, 상기 제1 다항식
Figure pat00256
에서의 상수인
Figure pat00257
는 '1'이고, 1차항의 계수인
Figure pat00258
은 '1'이며, 상기 제수 다항식
Figure pat00259
에서의 상수인
Figure pat00260
는 '1'이고, 1차항의 계수인
Figure pat00261
은 '1'로서,
Figure pat00262
,
Figure pat00263
,
Figure pat00264
,
Figure pat00265
을 기초로 연산되는 '
Figure pat00266
'가 '0'이 되기 때문에, 행렬 생성부(112)는
Figure pat00267
를 '0'으로 정의할 수 있다.
결국,
Figure pat00268
,
Figure pat00269
,
Figure pat00270
,
Figure pat00271
,
Figure pat00272
,
Figure pat00273
이므로, 행렬 생성부(112)는 상기 표 1에서의 조건 7에 따라, 상기 첫 번째 행렬인
Figure pat00274
을 하기의 수학식 2와 같이 생성할 수 있다.
Figure pat00275
이렇게, 상기 첫 번째 행렬인
Figure pat00276
이 생성되면, 행렬 생성부(112)는 '
Figure pat00277
'을 연산함으로써, 두 번째 제1 다항식
Figure pat00278
를 '
Figure pat00279
'로 생성할 수 있고, 두 번째 제수 다항식
Figure pat00280
을 '
Figure pat00281
'으로 생성할 수 있다. 참고로, 본 실시예에서 사용되는 다항식은 이진 다항식으로,
Figure pat00282
값이 '2'로 사전 지정되어 있다고 가정하였기 때문에, '
Figure pat00283
'의 연산과 같은 행렬 연산에서는 '
Figure pat00284
' 연산을 통해 다항식 계수에 대한 감산이 수행된다. 관련해서, 본 명세서 상에서 행렬 연산식에 대해서는 수식 표현의 간소화를 위해서 '
Figure pat00285
' 연산에 대한 표기를 생략하였다.
이렇게, 상기 두 번째 제1 다항식
Figure pat00286
와 상기 두 번째 제수 다항식
Figure pat00287
가 생성되면, 행렬 생성부(112)는 상기 두 번째 제1 다항식
Figure pat00288
와 상기 두 번째 제수 다항식
Figure pat00289
를 기초로 상기 표 1과 같은 행렬 생성 조건에 따라, 두 번째 행렬인
Figure pat00290
를 생성할 수 있다.
우선, 행렬 생성부(112)는 상기 두 번째 행렬인
Figure pat00291
를 생성하기 위해, 조건 7에 지정된 g값과 f값의 갱신 방식에 따라, 두 번째 행렬인
Figure pat00292
를 생성하기 위한 상기 g값과 f값을 갱신할 수 있는데, 행렬 생성부(112)는 상기 조건 7에 따라 g값은 그대로 '4'로 유지하고, f값은 '2'로 갱신할 수 있다.
그러고 나서, 행렬 생성부(112)는
Figure pat00293
Figure pat00294
를 정의할 수 있다. 관련해서, g값이 f값보다 작기 때문에, 행렬 생성부(112)는
Figure pat00295
를 '0'으로 정의할 수 있다. 그리고, 상기 두 번째 제1 다항식
Figure pat00296
에서의 상수인
Figure pat00297
는 '1'이고, 1차항의 계수인
Figure pat00298
은 '1'이며, 상기 두 번째 제수 다항식
Figure pat00299
에서의 상수인
Figure pat00300
는 '1'이고, 1차항의 계수인
Figure pat00301
은 '1'로서,
Figure pat00302
,
Figure pat00303
,
Figure pat00304
,
Figure pat00305
을 기초로 연산되는 '
Figure pat00306
'가 '0'이 되기 때문에, 행렬 생성부(112)는
Figure pat00307
를 '0'으로 정의할 수 있다.
결국,
Figure pat00308
,
Figure pat00309
,
Figure pat00310
,
Figure pat00311
,
Figure pat00312
,
Figure pat00313
이므로, 행렬 생성부(112)는 상기 표 1에서의 조건 3에 따라, 상기 두 번째 행렬인
Figure pat00314
를 하기의 수학식 3과 같이 생성할 수 있다.
Figure pat00315
이렇게, 상기 두 번째 행렬인
Figure pat00316
가 생성되면, 행렬 생성부(112)는 '
Figure pat00317
'을 연산함으로써, 세 번째 제1 다항식
Figure pat00318
를 '
Figure pat00319
'로 생성할 수 있고, 세 번째 제수 다항식
Figure pat00320
을 '
Figure pat00321
'으로 생성할 수 있다. 참고로, 본 행렬 연산에서도 이진 다항식이 사용되었고,
Figure pat00322
값이 '2'로 사전 지정되어 있다고 가정하였기 때문에, '
Figure pat00323
'의 연산에서 '
Figure pat00324
' 연산을 통한 다항식 계수의 감산이 수반된다.
이렇게, 상기 세 번째 제1 다항식
Figure pat00325
와 상기 세 번째 제수 다항식
Figure pat00326
가 생성되면, 행렬 생성부(112)는 상기 세 번째 제1 다항식
Figure pat00327
와 상기 세 번째 제수 다항식
Figure pat00328
를 기초로 상기 표 1과 같은 행렬 생성 조건에 따라, 세 번째 행렬인
Figure pat00329
을 생성할 수 있다.
우선, 행렬 생성부(112)는 상기 세 번째 행렬인
Figure pat00330
을 생성하기 위해, 조건 3에 지정된 g값과 f값의 갱신 방식에 따라, 상기 세 번째 행렬인
Figure pat00331
를 생성하기 위한 상기 g값과 f값을 갱신할 수 있는데, 행렬 생성부(112)는 상기 조건 3에 따라 g값은 '2'로 갱신하고, f값은 '2'로 유지할 수 있다.
그러고 나서, 행렬 생성부(112)는
Figure pat00332
Figure pat00333
를 정의할 수 있다. 관련해서, g값과 f값이 '2'로 서로 동일하기 때문에, 행렬 생성부(112)는
Figure pat00334
를 '1'으로 정의할 수 있다. 그리고, 상기 세 번째 제1 다항식
Figure pat00335
에서의 상수인
Figure pat00336
는 '1'이고, 1차항의 계수인
Figure pat00337
은 '1'이며, 상기 세 번째 제수 다항식
Figure pat00338
에서의 상수인
Figure pat00339
는 '1'이고, 1차항의 계수인
Figure pat00340
은 '1'로서,
Figure pat00341
,
Figure pat00342
,
Figure pat00343
,
Figure pat00344
을 기초로 연산되는 '
Figure pat00345
'가 '0'이 되기 때문에, 행렬 생성부(112)는
Figure pat00346
를 '0'으로 정의할 수 있다.
결국,
Figure pat00347
,
Figure pat00348
,
Figure pat00349
,
Figure pat00350
,
Figure pat00351
,
Figure pat00352
이므로, 행렬 생성부(112)는 상기 표 1에서의 조건 7에 따라, 상기 세 번째 행렬인
Figure pat00353
를 하기의 수학식 4와 같이 생성할 수 있다.
Figure pat00354
이렇게, 상기 세 번째 행렬인
Figure pat00355
가 생성되면, 행렬 생성부(112)는 '
Figure pat00356
'을 연산함으로써, 네 번째 제1 다항식
Figure pat00357
를 '
Figure pat00358
'로 생성할 수 있고, 네 번째 제수 다항식
Figure pat00359
를 '
Figure pat00360
'으로 생성할 수 있다. 참고로, 본 행렬 연산에서도 이진 다항식이 사용되었고,
Figure pat00361
값이 '2'로 사전 지정되어 있다고 가정하였기 때문에, '
Figure pat00362
'의 연산에서 '
Figure pat00363
' 연산을 통한 다항식 계수의 감산이 수반된다.
이렇게, 상기 네 번째 제1 다항식
Figure pat00364
와 상기 네 번째 제수 다항식
Figure pat00365
가 생성되면, 행렬 생성부(112)는 상기 네 번째 제1 다항식
Figure pat00366
와 상기 네 번째 제수 다항식
Figure pat00367
를 기초로 상기 표 1과 같은 행렬 생성 조건에 따라, 네 번째 행렬인
Figure pat00368
을 생성할 수 있다.
우선, 행렬 생성부(112)는 상기 네 번째 행렬인
Figure pat00369
를 생성하기 위해, 조건 7에 지정된 g값과 f값의 갱신 방식에 따라, 상기 네 번째 행렬인
Figure pat00370
를 생성하기 위한 상기 g값과 f값을 갱신할 수 있는데, 행렬 생성부(112)는 상기 조건 7에 따라 g값은 '2'로 유지하고, f값은 '0'으로 갱신할 수 있다.
그러고 나서, 행렬 생성부(112)는
Figure pat00371
Figure pat00372
를 정의할 수 있다. 관련해서, g값이 f값보다 크기 때문에, 행렬 생성부(112)는
Figure pat00373
를 '0'으로 정의할 수 있다. 그리고, 상기 네 번째 제1 다항식
Figure pat00374
에서의 상수인
Figure pat00375
는 '1'이고, 1차항의 계수인
Figure pat00376
은 '0'이며, 상기 네 번째 제수 다항식
Figure pat00377
에서의 상수인
Figure pat00378
는 '1'이고, 1차항의 계수인
Figure pat00379
은 '1'로서,
Figure pat00380
,
Figure pat00381
,
Figure pat00382
,
Figure pat00383
을 기초로 연산되는 '
Figure pat00384
'가 '0'이 아니기 때문에, 행렬 생성부(112)는
Figure pat00385
를 '1'로 정의할 수 있다.
결국,
Figure pat00386
,
Figure pat00387
,
Figure pat00388
,
Figure pat00389
,
Figure pat00390
,
Figure pat00391
이므로, 행렬 생성부(112)는 상기 표 1에서의 조건 3에 따라, 상기 네 번째 행렬인
Figure pat00392
를 하기의 수학식 5와 같이 생성할 수 있다.
Figure pat00393
이렇게, 상기 네 번째 행렬인
Figure pat00394
가 생성되면, 행렬 생성부(112)는 '
Figure pat00395
'을 연산함으로써, 다섯 번째 제1 다항식
Figure pat00396
를 '
Figure pat00397
'로 생성할 수 있고, 다섯 번째 제수 다항식
Figure pat00398
를 '
Figure pat00399
'으로 생성할 수 있다. 참고로, 본 행렬 연산에서도 이진 다항식이 사용되었고,
Figure pat00400
값이 '2'로 사전 지정되어 있다고 가정하였기 때문에, '
Figure pat00401
'의 연산에서 '
Figure pat00402
' 연산을 통한 다항식 계수의 감산이 수반된다.
이렇게, 상기 다섯 번째 제1 다항식
Figure pat00403
와 상기 다섯 번째 제수 다항식
Figure pat00404
가 생성되면, 행렬 생성부(112)는 상기 다섯 번째 제1 다항식
Figure pat00405
와 상기 다섯 번째 제수 다항식
Figure pat00406
를 기초로 상기 표 1과 같은 행렬 생성 조건에 따라, 다섯 번째 행렬인
Figure pat00407
를 생성할 수 있다.
우선, 행렬 생성부(112)는 상기 다섯 번째 행렬인
Figure pat00408
를 생성하기 위해, 조건 3에 지정된 g값과 f값의 갱신 방식에 따라, 다섯 번째 행렬인
Figure pat00409
를 생성하기 위한 상기 g값과 f값을 갱신할 수 있는데, 행렬 생성부(112)는 상기 조건 3에 따라 g값은 '0'으로 갱신하고, f값은 '0'으로 유지할 수 있다.
그러고 나서, 행렬 생성부(112)는
Figure pat00410
Figure pat00411
를 정의할 수 있다. 관련해서, g값과 f값이 '0'으로 서로 동일하기 때문에, 행렬 생성부(112)는
Figure pat00412
를 '1'로 정의할 수 있다. 그리고, 상기 다섯 번째 제1 다항식
Figure pat00413
에서의 상수인
Figure pat00414
는 '1'이고, 1차항의 계수인
Figure pat00415
은 '0'이며, 상기 다섯 번째 제수 다항식
Figure pat00416
에서의 상수인
Figure pat00417
는 '1'이고, 1차항의 계수인
Figure pat00418
은 '0'으로서,
Figure pat00419
,
Figure pat00420
,
Figure pat00421
,
Figure pat00422
을 기초로 연산되는 '
Figure pat00423
'가 '0'이 되기 때문에, 행렬 생성부(112)는
Figure pat00424
를 '0'로 정의할 수 있다.
결국,
Figure pat00425
,
Figure pat00426
,
Figure pat00427
,
Figure pat00428
,
Figure pat00429
,
Figure pat00430
이므로, 행렬 생성부(112)는 상기 표 1에서의 조건 7에 따라, 상기 다섯 번째 행렬인
Figure pat00431
를 하기의 수학식 6과 같이 생성할 수 있다.
Figure pat00432
이렇게, 상기 다섯 번째 행렬인
Figure pat00433
가 생성되면, 행렬 생성부(112)는 '
Figure pat00434
'을 연산함으로써, 5개의 행렬
Figure pat00435
,
Figure pat00436
,
Figure pat00437
,
Figure pat00438
,
Figure pat00439
의 생성을 완료할 수 있다.
이렇게, 행렬 생성부(112)에 의해 5개의 행렬인
Figure pat00440
,
Figure pat00441
,
Figure pat00442
,
Figure pat00443
,
Figure pat00444
의 생성이 완료되면, 역원 결정부(113)는 5개의 행렬인
Figure pat00445
,
Figure pat00446
,
Figure pat00447
,
Figure pat00448
,
Figure pat00449
와 기설정된 열벡터인
Figure pat00450
을 기초로 '
Figure pat00451
'의 연산을 수행함으로써, 하기의 수학식 7과 같은 산출 행렬을 산출할 수 있다.
Figure pat00452
이렇게, 상기 산출 행렬이 산출되면, 역원 결정부(112)는 상기 산출 행렬에서의 1행1열에 위치하는 성분인 '
Figure pat00453
'을 상기 제1 다항식
Figure pat00454
에 대한 역원인
Figure pat00455
로 결정할 수 있다.
이렇게, 역원 결정부(113)에 의해 상기 역원인
Figure pat00456
가 결정되면, 검증 수행부(114)는 상기 역원인
Figure pat00457
가, '
Figure pat00458
'을 만족하는 역원이 맞는지 여부를 검증할 수 있다.
관련해서, 전술한 예와 같이, 상기 역원이 '
Figure pat00459
'로 결정되었다고 하는 경우, 우선 '
Figure pat00460
'는 하기의 수학식 8과 같이 연산될 수 있다.
Figure pat00461
이때, 상기 제수 다항식
Figure pat00462
는 '
Figure pat00463
'이기 때문에, 상기 수학식 8의 연산 결과에서 '
Figure pat00464
' 연산을 수행하게 되면, '1'이 산출되게 된다. 이로 인해, 역원 검증부(114)는 상기 역원인
Figure pat00465
가, '
Figure pat00466
'을 만족하는 역원이 맞는 것으로 검증할 수 있다.
도 2는 본 발명의 일실시예에 따른 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 방법을 도시한 순서도이다.
단계(S210)에서는 '
Figure pat00467
'(여기서,
Figure pat00468
는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고,
Figure pat00469
는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인
Figure pat00470
로 감산되도록 설정되어 있음)로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식
Figure pat00471
에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식
Figure pat00472
의 최고차수와 상기 제수 다항식
Figure pat00473
의 최고차수 중 최대 값의 최고차수를 확인한다.
단계(S220)에서는 상기 제1 다항식
Figure pat00474
의 최고차수와 상기 제수 다항식
Figure pat00475
의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, '
Figure pat00476
'(여기서,
Figure pat00477
는 p가 1보다 큰 정수라 할 때 '
Figure pat00478
'(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임)을 만족하는 2 x 2 크기를 갖는 r개의 행렬
Figure pat00479
(n는 1이상 r이하의 자연수임)을 생성한다.
단계(S230)에서는 상기 r개의 행렬
Figure pat00480
이 생성되면, 상기 r개의 행렬
Figure pat00481
과 기설정된 열벡터인
Figure pat00482
을 기초로 '
Figure pat00483
'의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식
Figure pat00484
에 대한 역원인
Figure pat00485
로 결정한다.
이때, 본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 제1 다항식
Figure pat00486
와 상기 제수 다항식
Figure pat00487
를 기초로 첫 번째 행렬인
Figure pat00488
을 생성한 후, '
Figure pat00489
'으로 연산되는 두 번째 제1 다항식
Figure pat00490
와 두 번째 제수 다항식
Figure pat00491
를 생성하고, 상기 두 번째 제1 다항식
Figure pat00492
와 상기 두 번째 제수 다항식
Figure pat00493
가 생성되면, 상기 두 번째 제1 다항식
Figure pat00494
와 상기 두 번째 제수 다항식
Figure pat00495
를 기초로 두 번째 행렬인
Figure pat00496
를 생성한 후, '
Figure pat00497
'로 연산되는 세 번째 제1 다항식
Figure pat00498
와 세 번째 제수 다항식
Figure pat00499
를 생성하고, 상기 세 번째 제1 다항식
Figure pat00500
와 상기 세 번째 제수 다항식
Figure pat00501
가 생성되면, 상기 세 번째 제1 다항식
Figure pat00502
와 상기 세 번째 제수 다항식
Figure pat00503
를 기초로 세 번째 행렬인
Figure pat00504
를 생성하는 방식으로, k번째 제1 다항식
Figure pat00505
와 k번째 제수 다항식
Figure pat00506
를 기초로 k번째 행렬인
Figure pat00507
를 생성하는 과정을, k를 1씩 증가시키면서, k가 r이 될 때까지 반복 수행함으로써, 상기 r개의 행렬
Figure pat00508
을 생성할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 k번째 제1 다항식
Figure pat00509
와 상기 k번째 제수 다항식
Figure pat00510
를 기초로 상기 k번째 행렬인
Figure pat00511
를 생성할 때, 상기 표 1에 따른 행렬 생성 조건에 따라 상기 k번째 행렬인
Figure pat00512
를 생성할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 역원 생성 방법은 상기 제1 다항식
Figure pat00513
에 대한 역원인
Figure pat00514
가 결정되면, 상기 제1 다항식
Figure pat00515
와 상기 역원인
Figure pat00516
를 기초로, '
Figure pat00517
'을 만족하는지 여부를 검증하는 단계를 더 포함할 수 있다.
이상, 도 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. 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치에 있어서,
    '
    Figure pat00518
    ' - 여기서,
    Figure pat00519
    는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고,
    Figure pat00520
    는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인
    Figure pat00521
    로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식
    Figure pat00522
    에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식
    Figure pat00523
    의 최고차수와 상기 제수 다항식
    Figure pat00524
    의 최고차수 중 최대 값의 최고차수를 확인하는 차수 확인부;
    상기 제1 다항식
    Figure pat00525
    의 최고차수와 상기 제수 다항식
    Figure pat00526
    의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, '
    Figure pat00527
    ' - 여기서,
    Figure pat00528
    는 p가 1보다 큰 정수라 할 때 '
    Figure pat00529
    '(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r개의 행렬
    Figure pat00530
    (n는 1이상 r이하의 자연수임)을 생성하는 행렬 생성부; 및
    상기 r개의 행렬
    Figure pat00531
    이 생성되면, 상기 r개의 행렬
    Figure pat00532
    과 기설정된 열벡터인
    Figure pat00533
    을 기초로 '
    Figure pat00534
    '의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식
    Figure pat00535
    에 대한 역원인
    Figure pat00536
    로 결정하는 역원 결정부
    를 포함하는 역원 생성 장치.
  2. 제1항에 있어서,
    상기 행렬 생성부는
    상기 제1 다항식
    Figure pat00537
    와 상기 제수 다항식
    Figure pat00538
    를 기초로 첫 번째 행렬인
    Figure pat00539
    을 생성한 후, '
    Figure pat00540
    '으로 연산되는 두 번째 제1 다항식
    Figure pat00541
    와 두 번째 제수 다항식
    Figure pat00542
    를 생성하고, 상기 두 번째 제1 다항식
    Figure pat00543
    와 상기 두 번째 제수 다항식
    Figure pat00544
    가 생성되면, 상기 두 번째 제1 다항식
    Figure pat00545
    와 상기 두 번째 제수 다항식
    Figure pat00546
    를 기초로 두 번째 행렬인
    Figure pat00547
    를 생성한 후, '
    Figure pat00548
    '로 연산되는 세 번째 제1 다항식
    Figure pat00549
    와 세 번째 제수 다항식
    Figure pat00550
    를 생성하고, 상기 세 번째 제1 다항식
    Figure pat00551
    와 상기 세 번째 제수 다항식
    Figure pat00552
    가 생성되면, 상기 세 번째 제1 다항식
    Figure pat00553
    와 상기 세 번째 제수 다항식
    Figure pat00554
    를 기초로 세 번째 행렬인
    Figure pat00555
    를 생성하는 방식으로, k번째 제1 다항식
    Figure pat00556
    와 k번째 제수 다항식
    Figure pat00557
    를 기초로 k번째 행렬인
    Figure pat00558
    를 생성하는 과정을, k를 1씩 증가시키면서, k가 r이 될 때까지 반복 수행함으로써, 상기 r개의 행렬
    Figure pat00559
    을 생성하는 것을 특징으로 하는 역원 생성 장치.
  3. 제2항에 있어서,
    상기 행렬 생성부는
    상기 k번째 제1 다항식
    Figure pat00560
    와 상기 k번째 제수 다항식
    Figure pat00561
    를 기초로 상기 k번째 행렬인
    Figure pat00562
    를 생성할 때, 하기의 표 1에 따른 행렬 생성 조건에 따라 상기 k번째 행렬인
    Figure pat00563
    를 생성하는 것을 특징으로 하는 역원 생성 장치.
    [표 1]
    Figure pat00564

    Figure pat00565
  4. 제1항에 있어서,
    상기 제1 다항식
    Figure pat00566
    에 대한 역원인
    Figure pat00567
    가 결정되면, 상기 제1 다항식
    Figure pat00568
    와 상기 역원인
    Figure pat00569
    를 기초로, '
    Figure pat00570
    '을 만족하는지 여부를 검증하는 검증 수행부
    를 더 포함하는 역원 생성 장치.
  5. 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 방법에 있어서,
    '
    Figure pat00571
    ' - 여기서,
    Figure pat00572
    는 임의의 정수들을 계수로 갖는 모든 다항식들의 집합이고,
    Figure pat00573
    는 사전 설정된 제수(divisor) 다항식이며, 다항식들의 계수가 사전 지정된 정수인
    Figure pat00574
    로 감산되도록 설정되어 있음 - 로 정의되는 다항식 환(Polynomial Ring)을 구성하는 다항식들의 집합으로부터 선택된 어느 하나의 다항식인 제1 다항식
    Figure pat00575
    에 대한 역원 생성 명령이 인가되면, 상기 제1 다항식
    Figure pat00576
    의 최고차수와 상기 제수 다항식
    Figure pat00577
    의 최고차수 중 최대 값의 최고차수를 확인하는 단계;
    상기 제1 다항식
    Figure pat00578
    의 최고차수와 상기 제수 다항식
    Figure pat00579
    의 최고차수 중 최대 값의 최고차수가 r-1(r은 2이상의 자연수)로 확인되면, '
    Figure pat00580
    ' - 여기서,
    Figure pat00581
    는 p가 1보다 큰 정수라 할 때 '
    Figure pat00582
    '(즉, 0이상 p미만의 모든 양의 정수의 집합)에서 역원이 존재하는 0이상 p미만의 임의의 정수임 - 을 만족하는 2 x 2 크기를 갖는 r개의 행렬
    Figure pat00583
    (n는 1이상 r이하의 자연수임)을 생성하는 단계; 및
    상기 r개의 행렬
    Figure pat00584
    이 생성되면, 상기 r개의 행렬
    Figure pat00585
    과 기설정된 열벡터인
    Figure pat00586
    을 기초로 '
    Figure pat00587
    '의 연산을 수행하였을 때 산출되는 산출 행렬에서의 1행1열에 위치하는 성분을, 상기 제1 다항식
    Figure pat00588
    에 대한 역원인
    Figure pat00589
    로 결정하는 단계
    를 포함하는 역원 생성 방법.
  6. 제5항에 있어서,
    상기 생성하는 단계는
    상기 제1 다항식
    Figure pat00590
    와 상기 제수 다항식
    Figure pat00591
    를 기초로 첫 번째 행렬인
    Figure pat00592
    을 생성한 후, '
    Figure pat00593
    '으로 연산되는 두 번째 제1 다항식
    Figure pat00594
    와 두 번째 제수 다항식
    Figure pat00595
    를 생성하고, 상기 두 번째 제1 다항식
    Figure pat00596
    와 상기 두 번째 제수 다항식
    Figure pat00597
    가 생성되면, 상기 두 번째 제1 다항식
    Figure pat00598
    와 상기 두 번째 제수 다항식
    Figure pat00599
    를 기초로 두 번째 행렬인
    Figure pat00600
    를 생성한 후, '
    Figure pat00601
    '로 연산되는 세 번째 제1 다항식
    Figure pat00602
    와 세 번째 제수 다항식
    Figure pat00603
    를 생성하고, 상기 세 번째 제1 다항식
    Figure pat00604
    와 상기 세 번째 제수 다항식
    Figure pat00605
    가 생성되면, 상기 세 번째 제1 다항식
    Figure pat00606
    와 상기 세 번째 제수 다항식
    Figure pat00607
    를 기초로 세 번째 행렬인
    Figure pat00608
    를 생성하는 방식으로, k번째 제1 다항식
    Figure pat00609
    와 k번째 제수 다항식
    Figure pat00610
    를 기초로 k번째 행렬인
    Figure pat00611
    를 생성하는 과정을, k를 1씩 증가시키면서, k가 r이 될 때까지 반복 수행함으로써, 상기 r개의 행렬
    Figure pat00612
    을 생성하는 것을 특징으로 하는 역원 생성 방법.
  7. 제6항에 있어서,
    상기 생성하는 단계는
    상기 k번째 제1 다항식
    Figure pat00613
    와 상기 k번째 제수 다항식
    Figure pat00614
    를 기초로 상기 k번째 행렬인
    Figure pat00615
    를 생성할 때, 하기의 표 1에 따른 행렬 생성 조건에 따라 상기 k번째 행렬인
    Figure pat00616
    를 생성하는 것을 특징으로 하는 역원 생성 방법.
    [표 1]
    Figure pat00617

    Figure pat00618
  8. 제5항에 있어서,
    상기 제1 다항식
    Figure pat00619
    에 대한 역원인
    Figure pat00620
    가 결정되면, 상기 제1 다항식
    Figure pat00621
    와 상기 역원인
    Figure pat00622
    를 기초로, '
    Figure pat00623
    '을 만족하는지 여부를 검증하는 단계
    를 더 포함하는 역원 생성 방법.
  9. 제5항 내지 제8항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  10. 제5항 내지 제8항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
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 true KR20230082789A (ko) 2023-06-09
KR102600166B1 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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000516733A (ja) * 1996-08-19 2000-12-12 エヌティーアールユー クリプトシステムズ,インコーポレーテッド 公開鍵暗号システム方法および装置
KR20070011293A (ko) * 2004-05-12 2007-01-24 마쯔시다덴기산교 가부시키가이샤 암호 시스템, 암호 장치, 복호 장치, 프로그램 및 집적회로
KR100742093B1 (ko) 2007-05-10 2007-07-24 인하대학교 산학협력단 엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산방법
US8719324B1 (en) * 2005-04-28 2014-05-06 Cetin K. Koc Spectral modular arithmetic method and apparatus
US20190044719A1 (en) * 2017-08-07 2019-02-07 Infineon Technologies Ag Conducting a cryptographic operation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000516733A (ja) * 1996-08-19 2000-12-12 エヌティーアールユー クリプトシステムズ,インコーポレーテッド 公開鍵暗号システム方法および装置
KR20070011293A (ko) * 2004-05-12 2007-01-24 마쯔시다덴기산교 가부시키가이샤 암호 시스템, 암호 장치, 복호 장치, 프로그램 및 집적회로
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 인하대학교 산학협력단 엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산방법
US20190044719A1 (en) * 2017-08-07 2019-02-07 Infineon Technologies Ag Conducting a cryptographic operation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
'양자컴퓨팅 환경을 고려한 현대암호 안전성 연구', 한국인터넷진흥원(2016년 11월 공개)

Also Published As

Publication number Publication date
KR102600166B1 (ko) 2023-11-08

Similar Documents

Publication Publication Date Title
CN110363030B (zh) 用于执行基于格的密码操作的方法和处理设备
JP6413598B2 (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
GB2549981A (en) A public key cryptosystem based on the partitioning of elements of vectors
KR101942030B1 (ko) 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법
KR101913644B1 (ko) 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법
US9882712B2 (en) Encrypted text matching system, method, and computer readable medium
KR20200143197A (ko) 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법
TW201702864A (zh) 加密計算方法、裝置以及電腦軟體產品
EP2991265B1 (en) Encrypted text matching system, method and program
KR102096359B1 (ko) 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법
CN112434269A (zh) 文件的零知识证明方法、验证方法、计算设备和存储介质
KR102600166B1 (ko) 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법
KR101978684B1 (ko) 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법
KR102595938B1 (ko) 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법
EP2991266B1 (en) Encrypted text matching system, method, and computer readable medium
KR102541388B1 (ko) Mdf 기반 ntt를 이용한 링-lwe 암호프로세서 장치 및 방법
US20210152348A1 (en) Method and apparatus for public-key cryptography based on structured matrices
US7085791B2 (en) Method and apparatus for generating a pseudo random number
JP3711821B2 (ja) 素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体
KR20090004625A (ko) 공개 키 암호화 연산의 순서 변경 방법
KR101219191B1 (ko) 휘발성 메모리 내 키 정보 보호 장치 및 그 방법
JP2021081591A (ja) 安全性評価装置、安全性評価方法及び安全性評価プログラム
CN117992989B (zh) 一种解密方法、系统、装置及存储介质
JP2001134178A (ja) メッセージ回復型署名システム及びそのプログラム記録媒体
KR102404223B1 (ko) 키 의존적 레이어를 이용한 암호 생성 장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램

Legal Events

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