KR102000914B1 - 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법 - Google Patents
자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법 Download PDFInfo
- Publication number
- KR102000914B1 KR102000914B1 KR1020170184759A KR20170184759A KR102000914B1 KR 102000914 B1 KR102000914 B1 KR 102000914B1 KR 1020170184759 A KR1020170184759 A KR 1020170184759A KR 20170184759 A KR20170184759 A KR 20170184759A KR 102000914 B1 KR102000914 B1 KR 102000914B1
- Authority
- KR
- South Korea
- Prior art keywords
- equation
- natural number
- negative
- prime
- quot
- Prior art date
Links
Images
Classifications
-
- 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/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Operations Research (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 소수인지 합성수인지를 결정론 방식으로 고속으로 판단할 수 있으며, 주어진 자연수가 합성수로 판단되는 경우에 해당 합성수의 소인수분해 결과를 확인할 수 있는 소수판별 및 소인수분해 방법에 관한 것이다.
본 발명에 의하면, 모든 자연수에 대해 적용 가능하고, 무조건적으로 증명되지 않은 가설에 기반하지 않으며, 결정론 방식에 의해 소수인지 합성수인지를 고속으로 판단할 수 있는 장점이 있다. 또한, 상기 소수판별 결과에 따라 합성수로 판별되는 경우 소수 판별과정에서 사용된 미지수의 검출결과를 활용한 소인수분해에 따른 소인수를 상수시간 복잡도의 추가 시간으로 제공할 수 있는 장점이 있다.
본 발명에 의하면, 모든 자연수에 대해 적용 가능하고, 무조건적으로 증명되지 않은 가설에 기반하지 않으며, 결정론 방식에 의해 소수인지 합성수인지를 고속으로 판단할 수 있는 장점이 있다. 또한, 상기 소수판별 결과에 따라 합성수로 판별되는 경우 소수 판별과정에서 사용된 미지수의 검출결과를 활용한 소인수분해에 따른 소인수를 상수시간 복잡도의 추가 시간으로 제공할 수 있는 장점이 있다.
Description
본 발명은 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법에 관한 것으로서, 더욱 상세하게는 판별 대상 홀수 자연수를 임의의 수로 나눈 나머지에 따라 합성수를 가정한 복수의 그룹으로 분류하고, 각각의 그룹별로 판별 대상 홀수 자연수에 따라 정해지는 복수의 순차 계산 단계로 구분하며, 각각의 순차 계산 단계에 대응하여 주어지는 부정방정식을 만족하는 정수 해를 등호 양변의 나머지 비교를 통해 구하고, 상기 정수 해의 존재 여부에 따라 소수인지 합성수인지를 결정론 방식으로 판단할 수 있으며, 주어진 자연수가 합성수로 판단되는 경우 해당 합성수의 소인수분해 결과를 고속으로 확인할 수 있는 소수판별 및 소인수분해 방법에 관한 것이다.
비대칭 공개키 방식인 RSA의 공개키 n은 합성수(composite number)로 유사하거나 동일한 길이의 2개 소수(prime number) p, q를 선택하여 곱한 값으로 n=pㅧq로 결정된다. 또한, 대칭 비밀키 방식인 DES(Data Encryption Standard)는 소수 p를 사용한다. 따라서 비대칭이나 대칭키 암호를 생성하기 위해서는 선택된 수가 소수인지 여부를 판별하는 과정이 수행되어야 한다.
임의의 자연수가 소수인지 합성수인지 판별하는 소수판별법과 합성수인 경우 어떤 수의 곱으로 이루어졌는지 확인하는 소인수분해법은 서로 달리 구분된다.
소수판별법은 일반적으로 모든 자연수에 적용 가능한 방식과 특정 부류의 수에 제한적으로 적용 가능한 방식으로 구분되고, 증명되지 않은 특정 가설에 기반한 조건적인 방식과 가설을 기반하지 않은 무조건적인 방식으로 구분된다. 또한, 높은 확률로 소수 또는 합성수를 판단하는 확률론 방식과 결정적으로 소수 또는 합성수를 판단하는 결정론 방식으로 구분된다. 이때, 소수판별을 위한 계산시간 복잡도에 따라 지수시간, 다항식시간 등의 판별법으로 구분한다.
확률적 방법은 가장 일반적으로 사용되고 있으며, 페르마 (Fermat), Lucas, Solovay-Strassen, 밀러-라빈 (Miller-Rabin) 방법 등이 있다.
페르마(Fermat) 방법은 다중 소인수로 구성된 카마이클 수(Carmichael number)를 소수로 잘못 판별하는 단점이 있다. Solovay-Strassen 방법은 2-k, 밀러-라빈 방법은 4-k의 판별 오류 확률을 갖고 있다.
소수를 판별하는 방법으로, 공개특허공보 제10-2010-0066309호에 소수 판정 방법이 개시되어 있다.
상기 종래 기술은 소수 여부를 판정할 난수를 생성하고 생성된 난수보다 작은 수를 선택한 뒤, 모듈라 연산을 통해 제1 모듈라 값을 산출하여 사전에 설정된 제1 설정값과 동일하면 카마이클 수의 오류 존재 여부를 판정하는 카마이클 수 배제 과정을 수행하고, 제1 모듈라 값이 제1 설정값과 상이하면 제2 모듈라 연산을 수행하여 제2 모듈라 값을 산출하며, 제2 모듈라 값이 사전에 설정된 제2 설정값과 동일하거나, 카마이클 수 배제 과정을 통해 산출되는 제3 모듈라 값이 사전에 설정된 제3 설정값과 동일하면, 생성된 난수를 소수로 판정하는 것을 특징으로 한다.
그러나 상기의 기술도 카마이클 수(Carmichael number)를 소수로 잘못 판별하는 문제점이 발생된다.
한편, 종래의 소수 판별 방식은 다항식 시간복잡도의 소수 판별 방식에 부가하여 자연수를 소인수 분해하고, 소인수 분해에 따라 소인수를 검출하는 기능이 적용된 사례가 없었다.
즉, 소수 판별과 소인수 분해에 따른 소인수 검출은 별도의 기술로 알려져 있으며, 합성수를 소인수 분해하는데 걸리는 시간복잡도는 소수판별을 위한 시간복잡도에 비해 더 높은 것으로 알려져 있다.
본 발명은 상기 종래 기술이 갖는 문제점을 해결하기 위하여 안출된 것으로서, 본 발명에서 해결하고자 하는 과제는 모든 자연수에 대해 적용 가능하고, 증명되지 않은 가설에 기반하지 않고 무조건적이며, 결정론 방식에 의해 소수인지 합성수인지를 판단할 수 있는 소수판별 및 소인수분해 방법을 제공하는 데 있다.
또한, 본 발명에서 해결하고자 하는 과제는 입력 자연수가 합성수로 판별되는 경우, 상수시간 복잡도로 소인수분해 결과에 따라 두 개의 소인수를 확인할 수 있는 소수판별 및 소인수분해 방법을 제공하는 데 있다.
상기 과제를 해결하기 위하여 본 발명에 따른 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법은 소수 판별 대상의 자연수를 입력받는 자연수 입력단계(S10); 상기 자연수 입력단계(S10)에서 입력된 입력 자연수가 홀수인 경우, 다음의 수학식 1 및 수학식 2로 구별되는 2가지 그룹 중에서 어느 그룹에 속하는지를 판별하는 그룹 판별단계(S20); 상기 입력 자연수가 판별된 그룹에 해당하며 다음의 수학식 3으로 정의되는 부정방정식을 검출하는 부정방정식 검출단계(S30); 및 상기 부정방정식 검출단계(S30)를 통해 검출되는 부정방정식의 정수 해를 구하기 위해 상기 입력 자연수에 따라 정해지는 복수의 단계로 구분하고, k번째 단계에서 상기 입력 자연수가 합성수라는 가정 하에 다음의 수학식 4와 같이 정해지는 2차 부정방정식과 연계하여 다음의 수학식 5와 같이 정해지는 1차 부정방정식을 산출하고, 상기 수학식 5와 같이 산출된 1차 부정방정식의 등호 양변의 나머지를 비교하여 다음의 수학식 6을 만족하는 마지막 단계까지 순차적으로 계산한 결과에 따라 상기 입력 자연수가 소수인지를 검출하는 소수판별단계(S40)를 포함하여 이루어지는 것을 특징으로 한다.
[수학식 1]
U = wK + 1
[수학식 2]
U = wK - 1
여기서, U는 입력 자연수, K는 입력 자연수를 w로 나눈 몫, w는 설정 자연수 이다.
[수학식 3]
aMN + bM + cN = d
여기서, a, b, c 및 d는 상수 계수, M과 N는 미지수이다.
[수학식 4]
a(k)M(k)N(k) + b(k)M(k) + c(k)N(k) = d(k)
여기서 k는 순차계산의 순서를 나타내는 수이고, a(k), b(k), c(k) 및 d(k)는 k번째 상수 계수, M(k)과 N(k)는 k번째 미지수이다.
[수학식 5]
b(k)α(k+1) + c(k)β(k+1) = d(k) mod L(k)
여기서, L(k)는 k번째 순차계산 단계에서 수학식 4의 상수계수 a(k)와 동일한 값으로 정해지는 자연수이고, b(k) 및 c(k)는 수학식 4의 상수계수이며, α(k+1) 및 β(k+1)는 각각 수학식 4의 미지수 M(k) 및 N(k)를 L(k)로 나눈 나머지이다. 또한 mod는 모듈로 연산자를 나타내는 수학기호이다.
[수학식 6]
d(k)<L(k)
또한, 상기 소수판별단계(S40) 이후에, 상기 소수판별단계(S40)의 결과 입력 자연수가 합성수로 판별된 경우, 상기 소수판별단계(S40)를 통해 산출된 결과와 연계하여 상기 입력 자연수의 소인수를 검출하는 소인수분해단계(S50)를 더 포함하는 것을 특징으로 한다.
본 발명에 의하면, 모든 자연수에 대해 적용 가능하고, 증명되지 않은 가설에 기반하지 않고 무조건적이며, 결정론 방식에 의해 소수인지 합성수인지를 판단할 수 있는 장점이 있다.
또한, 상기 소수판별 결과에 따라 합성수로 판별되는 경우 소수 판별과정에서 사용된 미지수의 검출결과를 활용한 소인수분해에 따른 소인수를 상수시간 복잡도의 추가 시간으로 제공할 수 있는 장점이 있다.
도 1은 본 발명에 따른 자연수에 적용가능하며 무조건적이며 결정론적인 소수판별 및 소인수분해 방법의 과정을 나타낸 흐름도.
도 2는 본 발명에 따른 자연수에 적용가능하며 결정론 방식을 이용한 소수판별 및 소인수분해 방법에서 소수판별단계(S40)의 과정을 나타낸 흐름도.
도 3은 본 발명에 따른 자연수에 적용가능하며 결정론 방식을 이용한 소수판별 및 소인수분해 방법에서 소인수분해단계(S50)의 과정을 나타낸 흐름도.
도 2는 본 발명에 따른 자연수에 적용가능하며 결정론 방식을 이용한 소수판별 및 소인수분해 방법에서 소수판별단계(S40)의 과정을 나타낸 흐름도.
도 3은 본 발명에 따른 자연수에 적용가능하며 결정론 방식을 이용한 소수판별 및 소인수분해 방법에서 소인수분해단계(S50)의 과정을 나타낸 흐름도.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 더욱 상세하게 설명한다.
본 발명은 임의의 홀수 자연수에 대하여 소수인지 합성수인지를 무조건적이며 결정론 방식으로 판단할 수 있으며, 주어진 자연수가 합성수로 판단되는 경우에 해당 합성수의 소인수분해를 통해 소인수를 상수시간 복잡도의 추가 시간으로 제공할 수 있는 소수판별 및 소인수분해 방법에 관한 것이다.
여기서, 본 발명에 따른 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법은 적어도 하나의 프로세서, 저장장치, 출력장치 및 디스플레이장치를 포함하는 개별 장치가 구비되는 컴퓨터에 설치되는 자연수 연산에이전트에 의해 이루어질 수 있다.
이때, 상기 자연수 연산에이전트에는 본 발명의 소수판별 및 소인수분해 방법을 구현하기 위한 알고리즘이 컴퓨터에서 실행가능한 언어로 작성된 프로그램이 포함되게 되며, 상기 자연수 연산에이전트의 구동에 따라 컴퓨터에 설치된 프로세서, 저장장치, 출력장치 및 디스플레이장치가 구동되면서 본 발명의 일련의 과정이 수행될 수 있게 된다.
본 발명의 소수판별 및 소인수분해 방법을 구현하기 위한 상기 프로그램은 상기 자연수 연산에이전트에 포함되어 구동되는 것이 바람직하나, 필요에 따라 외장하드 또는 USB 등을 포함하는 외부 저장매체에 저장된 상태, 상기 외부 저장매체가 컴퓨터에 접속된 상태, 또는 인터넷의 클라우드시스템에 연결된 상태에서도 이루어질 수 있다.
요약하면, 자연수 연산에이전트가 컴퓨터에서 구동되면서, 컴퓨터를 구성하는 프로세서, 저장장치, 출력장치 및 디스플레이장치와 연계된 상태에서, 알고리즘이 구현된 프로그램에 따라 소수판별 및 소인수분해를 통해 자연수를 분석하게 된다.
도 1은 본 발명에 따른 임의의 홀수 자연수에 적용가능하며 무조건적이며 결정론적인 소수판별 및 소인수분해 방법의 과정을 나타낸 흐름도이다.
첨부된 도 1을 참조하면, 본 발명에 따른 임의의 홀수 자연수에 적용가능하며 무조건적이고 결정론적인 방식을 이용한 소수판별 및 소인수분해 방법은 자연수 입력단계(S10), 그룹 판별단계(S20), 부정방정식 검출단계(S30), 소수판별단계(S40) 및 소인수분해단계(S50)를 포함하여 이루어진다.
1. 자연수 입력단계(S10)
자연수 입력단계(S10)는 소수 판별 대상의 자연수를 입력받는 단계로서, 자연수의 입력은 입력장치를 통해 입력받을 수 있다. 이때, 입력장치는 컴퓨터의 키보드 또는 원격지의 클라이언트로부터 입력받을 수 있다. 설계조건에 따라서, 상기 자연수는 모바일 기기를 이용하여 입력받을 수 있도록 구성될 수 있다.
또한, 설계조건에 따라, 상기 자연수는 데이터베이스 또는 파일에 접근하여 1개 이상의 자연수 값을 읽는 소프트웨어를 통해 입력받을 수 있다.
또한 설계조건에 따라, 상기 자연수는 사물인터넷(Internet of things)의 센서, 제어용 장치, 가전제품 및 가상공간의 아바타, 스마트폰, 개인용 컴퓨터, 노트북, 서버 등을 포함하는 사물에 내장된 소프트웨어를 통해 난수표 또는 일정한 수학식을 통해 생성될 수도 있다.
여기서, 사물인터넷은 사물에 센서를 부착하여 상기 센서에서 검출된 데이터를 인터넷으로 주고 받는 기술이나 환경을 일컫는 것으로서, 가전제품, 전자기기뿐만 아니라 헬스케어, 원격검침, 스마트홈 및 스마트카, 스마트폰, 개인용 컴퓨터, 노트북, 서버 등 다양한 분야에서 사물을 네트워크로 연결해 정보를 공유할 수 있는 환경을 의미한다.
즉, 자연수는 이러한 사물인터넷이 적용된 장치(또는 시스템)의 소프트웨어에서 발생되는 난수표에 의해서 생성되거나 또는 일정한 수학식(또는 수학 알고리즘(Algorithm))을 통해 생성될 수 있다.
본 발명에 의하면, 상기와 같이 사물인터넷에 적용된 소프트웨어에서 발생되는 난수표 또는 수학적 알고리즘을 통해 생성된 자연수에 대한 수학적 의미를 파악할 수 있는 장점이 있다.
2. 그룹 판별단계(S20)
그룹 판별단계(S20)는 상기 입력단계(S10)에서 입력된 자연수(이하 입력 자연수 한다)가 홀수인 경우, 복수의 그룹 중에서 어느 그룹에 속하는지를 판별하는 단계이다. 여기서 상기 복수의 그룹은 상기 입력 자연수를 설정 자연수로 나눈 나머지로 구분한다. 상기 나누는 설정 자연수를 4로 정하는 경우, 각각 두 가지 그룹으로 구분할 수 있고, 상기 나누는 특정수를 4 이외의 다른 수로 정하는 것도 가능하다.
일 실시 예로서, 상기 입력자연수(U)를 4로 나누고 나머지로 그룹을 구분하는 경우 제1-1 그룹과 제1-2 그룹으로 구성된다.
이때, 제1-1 그룹은 상기 입력 자연수가 홀수이면서, 상기 입력 자연수를 4로 나눈 몫이 제1 자연수(K)이고 나머지가 1인 경우에 해당되는 그룹이다.
또한, 제1-2 그룹은 상기 입력 자연수가 홀수이면서, 상기 입력 자연수를 4로 나눈 몫이 제1 자연수(K)이고 나머지가 -1 또는 3인 경우에 해당하는 그룹이다.
즉, 제1-1 그룹은 식 1-1로 정의되며, 제1-2 그룹은 식 1-2로 정의된다.
식 1-1)
U = 4K + 1
식 1-2)
U = 4K - 1
여기서, U는 입력 자연수, K는 입력 자연수를 4로 나눈 몫의 제1 자연수이다.
상기에서 설정 자연수에 대한 입력 자연수를 복수의 그룹으로 구분하는 일반적인 식은 식 2-1로 정의된다.
식 2-1)
U = wK + r
여기서, U는 입력 자연수, w는 설정 자연수, K는 U를 w로 나눈 몫, r은 U를 w로 나눈 나머지이다.
본 발명에 의하면, 상기 설정 자연수는 4로 구성될 수 있으며, r은 1 또는 -1로 이루어진다.
3. 부정방정식 검출단계(S30)
부정방정식 검출단계(S30)는 상기 입력 자연수가 판별된 그룹에 해당하는 부정방정식을 검출하는 단계이다.
여기서, 상기 부정방정식은 식 3으로 정의된다.
식 3)
aMN + bM + cN = d
여기서, a, b, c, d는 각각 상수 계수, M 및 N은 미지수이다.
상기 부정방정식 검출단계(S30)를 통해 검출되는 부정방정식은 일 실시 예로서, 상기 입력 자연수를 4로 나누는 경우 나머지에 따라 제1-1 그룹과 제1-2 그룹으로 구분하여 각 그룹별로 정해진다.
3.1 제1-1 그룹의 부정방정식
상기 입력 자연수(U)가 제1-1 그룹에 속하고 합성수인 경우를 가정하면 식 4-1 또는 식 4-2와 같이 2가지 형태로 1이 아닌 두 자연수의 곱으로 정의될 수 있다.
식 4-1)
U=(4M+1)(4N+1)=4(4MN+M+N)+1
식 4-2)
U=(4M-1)(4N-1)=4(4MN-M-N)+1
여기서, M과 N은 임의의 자연수이다.
식 4-1 및 식 4-2를 식 1-1과 비교하면 각각 식 4-3 및 식 4-4와 같은 2차 부정방정식으로 나타낸다.
식 4-3)
4MN+M+N=K
식 4-3과 식 3을 비교하면, 상수 계수는 각각 a=4, b=1, c=1 및 d=K이고, K는 제1 자연수이다.
식 4-4)
4MN-M-N=K
식 4-4와 식 3을 비교하면, 상수 계수는 각각 a=4, b=1, c=1 및 d=K이고, K는 제1 자연수이다.
3.2. 제1-2 그룹의 부정방정식
상기 입력 자연수(U)가 제1-2 그룹에 속하고 합성수인 경우를 가정하면 식 4-5와 같은 형태로 1이 아닌 두 자연수의 곱으로 정의될 수 있다.
식 4-5)
U=(4M-1)(4N+1)=4(4MN+M-N)+1
여기서, M과 N은 임의의 자연수이다.
식 4-5를 식 1-2와 비교하면 식 4-6과 같이 얻어진다.
식 4-6)
4MN+M-N=K
식 4-6과 식 3을 비교하면 부정방정식의 상수 계수는 각각 a=4, b=1, c=-1, d=K이고, K는 제1 자연수이다.
4. 소수판별단계(S40)
소수판별단계(S40)는 상기 부정방정식 검출단계(S30)를 통해 검출되는 부정방정식의 해를 구하여 상기 입력 자연수가 소수인지를 판별하는 단계이다.
즉, 소수판별단계(S40)는 상기 부정방정식 검출단계(S30)를 통해 검출되는 2차 부정방정식의 정수 해를 구하기 위해 상기 입력 자연수에 따라 정해지는 복수의 단계로 구분하고, k번째 단계에서 상기 입력 자연수가 합성수라는 가정 하에 1차 부정방정식을 산출하고, 상기 산출된 1차 부정방정식의 등호 양변의 나머지를 비교하여 마지막 단계까지 순차적으로 계산한 결과에 따라 상기 입력 자연수가 소수인지를 검출하는 단계이다.
도 2는 본 발명에 따른 자연수에 적용가능하며 결정론 방식을 이용한 소수판별 및 소인수분해 방법에서 소수판별단계(S40)의 과정을 나타낸 흐름도이다.
첨부된 도 2를 참조하면, 상기 소수판별단계(S40)는 부정방정식 선택단계(S41), 초기값 설정단계(S42), 양변의 나머지 비교단계(S43), 합성수 가능성 판별단계(S45), 합성수로 확인단계(S47) 및 소수로 확인단계(S49)를 포함하여 이루어진다.
4-1. 부정방정식 선택단계(S41)
부정방정식 선택단계(S41)는 상기 입력 자연수(U)에 대응하여 판별된 그룹에서 상기 부정방정식 검출단계(S30)에서 선택된 하나 이상의 2차 부정방정식을 1가지씩 차례로 선택하는 단계이다. 즉, 상기 입력 자연수(U)에 대응하여 판별된 그룹에 대응하여 검출된 상기 2차 부정방정식을 순차적으로 선택하는 단계이다.
예를 들어, 상기 입력 자연수(U)가 대그룹 중에서 제1-1 그룹에 속하는 경우 식 4-3 및 식 4-4로 정의된 2가지 부정방정식이 순차적으로 선택된다.
또한, 상기 입력 자연수(U)가 대그룹 중에서 제1-2 그룹에 속하는 경우 식 4-6에 주어진 부정방정식이 선택된다.
4-2. 초기값 설정단계(S42)
초기값 설정단계(S42)는 상기 부정방정식 선택단계(S41)에서 선택된 부정방정식의 상수 계수 a, b, c 및 d를 식 5-1과 같이 순차적 계산을 위한 해당 부정방정식의 초기값으로 설정하는 단계이다.
식 5-1)
a(0)M(0)N(0)+b(0)M(0)+c(0)N(0)=d(0)
여기서, a(0), b(0), c(0) 및 d(0)는 초기단계의 상수 계수로 각각 식 5-2, 식 5-3, 식 5-4, 및 식 5-5와 같이 정의되고, M(0) 및 N(0)는 초기단계의 미지수로 각각 M 및 N과 동일하다.
식 5-2)
a(0)=a
식 5-3)
b(0)=b
식 5-4)
c(0)=c
식 5-5)
d(0)=d
4-3. 양변의 나머지 비교단계(S43)
양변의 나머지 비교단계(S43)는 상기 초기값 설정단계(S42)에서 식 5-1과 같이 정해진 부정방정식을 만족하는 정수 M(0)와 N(0)가 존재하는지 검사하기 위해 나머지를 비교하는 단계이다. 즉, 상기 초기값 설정단계(S41)에서 초기값으로 설정된 상수계수로 구성되는 2차 부정방정식의 정수해를 구하기 위해 상기 입력 자연수(U)에 따라 정해지는 복수의 단계로 구분된 각각의 순차계산 단계별로 수학식 5와 같이 정해지는 1차 부정방정식에 대하여 정수 해를 구하기 위해 각각의 단계 별로 등호 양변의 나머지를 비교하는 단계이다.
여기서, 시간 복잡도를 낮추기 위한 방안으로서, 순차적으로 계산하기 위해 k=0 번째 순차계산에서 M(0)와 N(0)을 각각 식 5-6과 식 5-7로 정의한다.
식 5-6)
M(0)=L(0)M(1)+α(1)
식 5-7)
N(0)=L(0)N(1)+β(1)
여기서, M(1) 및 α(1)은 각각 M(0)을 L(0)로 나눈 몫과 나머지이며, N(1) 및 β(1)는 각각 N(0)를 L(0)로 나눈 몫과 나머지다.
이에, 상기 식 5-6 및 식 5-7에 따른 α(1) 및 β(1)은 0보다 크거나 같고 L(0)보다 작은 정수이다. 이때, L(0)은 식 5-8과 같이 정의할 수 있다.
식 5-8)
L(0)=a(0)
만일, 입력 자연수(U)가 합성수인 경우 식 5-1을 만족하는 M(0) 및 N(0)의 정수 해가 존재하고, 이 경우 식 5-1의 등호 양변을 L(0)로 나눈 나머지가 같게 되므로 식 5-9를 만족한다.
식 5-9)
a(0)M(0)N(0)+b(0)M(0)+c(0)N(0)=d(0) mod L(0)
d(0)를 L(0)로 나눈 나머지 d(0) mod L(0)를 ρ(1)이라고 정의하고 몫을 η(1)으로 정의하면 식 5-10과 같이 나타낼 수 있다. 여기서, mod는 모듈로 연산자를 나타내는 수학기호이다.
식 5-10)
d(0)=L(0)η(1)+ρ(1)
또한, 식 5-6 및 식 5-7을 식 5-9에 대입하여 정리하면, 식 5-9를 만족하는 M(0) 및 N(0)를 L(0)로 나눈 각각의 나머지 α(1) 및 β(1)은 식 5-11을 만족한다.
식 5-11)
a(0)α(1)β(1)+b(0)α(1)+c(0)β(1)=d(0) mod L(0)
식 5-8에 의해 L(0)=a(0)이고, 식 5-11의 a(0)α(1)β(1)항은 L(0)로 나누어지므로, b(0)α(1)+c(0)β(1)을 σ(0)이라고 정의하면 식 5-12와 같이 나타낼 수 있다.
식 5-12)
σ(0)=b(0)α(1)+c(0)β(1)=d(0) mod L(0)
여기서, mod는 모듈로 연산자 나타내는 수학기호이고 식 5-12의 등호 양변에 모두 적용된다. α(1) 및 β(1) 각각에 대하여 0보다 크고 L(0)보다 작은 정수를 순차적으로 1차 부정방정식인 식 5-12에 대입하여 식 5-12를 만족하는 α(1) 및 β(1)이 존재하는 경우 해당 α(1) 및 β(1)을 소인수분해 등을 포함하여 차후에 활용을 위해 저장한다. 이제, 식 5-12의 σ(0)를 L(0)로 나눈 몫을 γ(1)이라고 하면 나머지는 ρ(1)과 같으므로 식 5-13과 같이 나타낼 수 있다.
식 5-13)
σ(0)=L(0)γ(1)+ρ(1)
또한, 식 5-6과 식 5-7을 식 5-1에 대입하여 정리하고 식 5-13과 연립하여 계산하면, 식 5-14와 같은 k=1 번째 순차 단계의 부정방정식이 유도된다.
식 5-14)
a(1)M(1)N(1)+b(1)M(1)+c(1)N(1)=d(1)
여기서, d(1)은 식 5-15와 같이 주어지고 η(1)은 식 5-10으로부터 구할 수 있으며, α(1) 및 β(1)은 식 5-12를 만족하는 해이고, γ(1)은 식 5-13으로부터 구할 수 있다.
식 5-15)
d(1)=η(1)-α(1)β(1)-γ(1)
또한, 상수 계수 a(1), b(1) 및 c(1)은 식 5-16, 식 5-17 및 식 5-18과 같이 구해진다. 식 5-16에서는 식 5-8에서 정의된 L(0)=a(0)를 적용하였다.
식 5-16)
a(1)=a(0)L(0)=a(0)2
식 5-17)
b(1)=a(0)β(1)+b(0)
식 5-18)
c(1)=a(0)α(1)+c(0)
여기서, α(1) 및 β(1)은 0보다 크거나 같고 L(0)보다 작은 정수 중에서 식 5-12를 만족하는 수이다.
k=0번째 순차적인 계산단계에서 α(1) 및 β(1) 각각에 대해 0보다 크고 L(0)보다 작은 정수를 순차적으로 대입하여 특정 α(1) 및 β(1)이 식 5-12를 만족하는 경우, 해당 α(1) 및 β(1)를 1개의 쌍으로 메모리, 파일 또는 데이터베이스 등의 저장공간에 저장하여 관리한다.
다음으로, 상기 d(0)을 L(0)와 비교한다. 이때, d(0)이 L(0)보다 작은 경우는 다음의 합성수 가능성 판별단계(S45)를 수행한다.
만일, d(0)이 L(0)보다 크거나 같은 경우, 순차 회수를 나타내는 k 값에 1을 증가시킨다. 이후 상위 순차 회수가 k인 경우 d(k)가 L(k)보다 작은 순차 회수에 이를 때까지 반복해서 k의 값을 증가시키고 상기 양변의 나머지 비교단계(S43)를 반복 수행한다.
만일, 해당 α(1) 및 β(1)가 식 5-12를 만족하지 않는 경우, 해당 α(1) 및 β(1)은 저장하지 않는다. 이 경우에는 합성수일 가능성이 없으므로 이후 상위 순차 회수 단계의 양변 나누기 비교단계를 중단하고, 양변 나머지 비교단계(S43)를 수행하지 않은 α(1) 및 β(1)에 대해 양변 나머지 비교단계(S43)를 수행한다.
상기 식 5-14는 k 번째 순차계산에서 2차 부정방정식으로 일반화하여 나타내면, 식 5-19와 같이 주어진다.
식 5-19)
a(k)M(k)N(k)+b(k)M(k)+c(k)N(k)=d(k)
여기서, a(k), b(k), c(k) 및 d(k)는 각각 식 5-20, 식 5-21, 식 5-22, 및 식 5-23과 같이 k-1번째 순차계산에서 얻어진 결과와 연계되어 정의되고, M(k) 및 N(k)는 k번째 순차계산의 미지수에 해당한다. 식 5-20에서는 L(k-1)=a(k-1)를 적용하였다.
식 5-20)
a(k)=a(k-1)L(k-1)=a(k-1)2
식 5-21)
b(k)=a(k-1)β(k)+b(k-1)
식 5-22)
c(k)=a(k-1)α(k)+c(k-1)
식 5-23)
d(k)=η(k)-α(k)β(k)-γ(k)
여기서, η(k)은 식 5-24로부터 구할 수 있고 γ(k)는 식 5-25으로부터 구할 수 있다. 또한, α(k) 및 β(k)는 식 5-26과 식 5-27을 만족하는 정수이다.
식 5-24)
d(k-1)=L(k-1)η(k)+ρ(k)
여기서, ρ(k)은 d(k-1)를 L(k-1)로 나눈 나머지 d(k-1) mod L(k-1)에 해당하고, η(k)는 그 몫이다.
식 5-25)
σ(k-1)=L(k-1)γ(k)+ρ(k)
여기서, a(k-1), b(k-1), c(k-1), d(k-1) 및 σ(k-1)는 k-1번째 순차 계산에서 산출된 결과로 식 5-20에서 식 5-25까지의 식으로 정의된다. 또한 σ(k-1)은 식 5-26과 같이 주어진다.
식 5-26)
σ(k-1)=b(k-1)α(k)+c(k-1)β(k)
여기서, α(k) 및 β(k)는 각각 M(k-1) 및 N(k-1)을 L(k-1)로 나눈 나머지에 해당하고, α(k) 및 β(k) 각각에 대하여 0보다 크거나 같고 L(k-1)보다 작은 정수를 순차적으로 식 5-26에 대입하여 σ(k-1)을 산출한다. 만일 산출된 σ(k-1)에 대응하여 식 5-27을 만족하는 α(k) 및 β(k)가 존재하는 경우, 해당 α(k) 및 β(k)을 저장공간에 저장하여 관리한다. 이 때의 σ(k-1)에 대하여 식 5-25로부터 γ(k)을 구할 수 있다.
식 5-27)
ρ(k)=σ(k-1) mod L(k-1)
여기서, ρ(k)는 식 5-24로부터 d(k-1) mod L(k-1)과 같이 산출된다.
또한, L(k-1)은 식 5-28과 같이 정의된다.
식 5-28)
L(k-1) = a(k-1)
이제, k번째 순차계산에서 양변의 나머지를 비교하기 위해 M(k)와 N(k)를 각각 식 5-29와 식 5-30과 같이 정의한다.
식 5-29)
M(k)=L(k)M(k+1)+α(k+1)
식 5-30)
N(k)=L(k)N(k+1)+β(k+1)
여기서, L(k)은 식 5-31과 같이 식 5-19에 주어진 부정방정식의 상수 계수 a(k)로 정의되며, M(k+1) 및 α(k+1)은 M(k)를 L(k)로 나눈 몫과 나머지이고, N(k+1) 및 β(k+1)는 N(k)를 L(k)로 나눈 몫과 나머지다. 따라서 α(k+1) 및 β(k+1)은 0보다 크거나 같고 L(k)보다 작은 정수이다.
식 5-31)
L(k)=a(k)
만일, 입력 자연수(U)가 합성수인 경우 식 5-19을 만족하는 M(k) 및 N(k)의 정수 해가 존재하고, 이 경우 식 5-19의 등호 양변을 L(k)로 나눈 나머지가 같게 되므로 식 5-32를 만족한다.
식 5-32)
a(k)M(k)N(k)+b(k)M(k)+c(k)N(k)=d(k) mod L(k)
d(k)를 L(k)로 나눈 나머지 d(k) mod L(k)를 ρ(k+1)이라고 정의하고 몫을 η(k+1)으로 정의하면 식 5-33과 같이 나타낼 수 있다.
식 5-33)
d(k)=L(k)η(k+1)+ρ(k+1)
또한, 식 5-29, 식 5-30을 식 5-32에 대입하여 정리하면, 식 5-32를 만족하는 M(k) 및 N(k)를 L(k)로 나눈 각각의 나머지 α(k+1) 및 β(k+1)은 식 5-34를 만족한다.
식 5-34)
a(k)α(k+1)β(k+1)+b(k)α(k+1)+c(k)β(k+1)=d(k) mod L(k)
식 5-31에 따라 L(k)=a(k)이므로 식 5-34에서 a(k)α(k+1)β(k+1)항은 L(0)로 나누어지고, 상기 α(k+1) 및 β(k+1)을 식 5-34의 등호 왼쪽 항 중 b(k)α(k+1)+c(k)β(k+1)에 대입한 값을 σ(k)라고 정의하면 식 5-35와 같이 1차 부정방정식으로 나타낼 수 있다. α(k+1) 및 β(k+1) 각각에 대하여 0보다 크고 L(k)보다 작은 정수를 순차적으로 식 5-35에 대입하여 식 5-35를 만족하는 α(k+1) 및 β(k+1)이 존재하는 경우 해당 α(k+1) 및 β(k+1)을 소인수분해 등을 포함하여 차후에 필요한 경우 활용을 위해 저장한다.
식 5-35)
σ(k)=b(k)α(k+1)+c(k)β(k+1)=d(k) mod L(k)
이제, 식 5-35의 σ(k)를 L(k)로 나눈 몫을 γ(k+1)이라고 하면 나머지는 ρ(k+1)=d(k) mod L(k)와 같으므로 식 5-36과 같이 나타낼 수 있다.
식 5-36)
σ(k)=L(k)γ(k+1)+ρ(k+1)
또한, 식 5-29와 식 5-30을 식 5-19에 대입하여 정리하고 식 5-35 및 식 5-36과 연립하여 계산하면, 식 5-37과 같은 k+1번째 순차계산의 부정방정식이 유도된다. 식 5-38에서는 식 5-31에서 정의된 L(k)=a(k)를 적용하였다.
식 5-37)
a(k+1)M(k+1)N(k+1)+b(k+1)M(k+1)+c(k+1)N(k+1)=d(k+1)
여기서, 상수 계수 a(k+1), b(k+1) 및 c(k+1)은 식 5-38, 식 5-39 및 식 5-40과 같이 구해진다.
식 5-38)
a(k+1)=a(k)L(k)=a(k)2
식 5-39)
b(k+1)=a(k)β(k+1)+b(k)
식 5-40)
c(k+1)=a(k)α(k+1)+c(k)
또한, d(k+1)는 식 5-41과 같이 정의된다.
식 5-41)
d(k+1)=η(k+1)-α(k+1)β(k+1)-γ(k+1)
여기서, η(k+1)은 식 5-33으로부터 구할 수 있고 γ(k+1)은 식 5-36으로부터 구할 수 있다. 이때, α(k+1) 및 β(k+1)은 0보다 크거나 같고 L(k)보다 작은 정수 중에서 식 5-35를 만족하는 수이다.
k번째 순차적인 계산단계에서 α(k+1) 및 β(k+1) 각각에 대해 0보다 크고 L(k)보다 작은 정수를 순차적으로 대입하여 특정 α(k+1) 및 β(k+1)가 식 5-35를 만족하는 경우, 해당 α(k+1) 및 β(k+1)를 1개의 쌍으로 필요한 경우 활용하기 위해 메모리, 화일 또는 데이터베이스 등의 저장공간에 저장하여 관리한다.
다음으로, 상기 d(k)을 L(k)와 비교한다. 이때, d(k)가 L(k)보다 작은 경우는 다음의 합성수 가능성 판별단계(S45)를 수행한다.
만일, d(k)가 L(k)보다 크거나 같은 경우, 순차 회수를 나타내는 k 값에 1을 증가시킨다. 이후 d(k)가 L(k)보다 작은 순차 회수에 이를 때까지 반복해서 k의 값을 증가시키고, 상기 양변의 나머지 비교단계(S43)를 반복 수행한다.
만일, 해당 α(k+1) 및 β(k+1)가 식 5-35를 만족하지 않는 경우 저장하지 않는다. 이 경우에는 합성수일 가능성이 없으므로 이후 상위 순차 회수 단계의 양변의 나머지 비교단계(S43)를 중단하고, 양변 나머지 비교단계(S43)를 수행하지 않은 α(k+1) 및 β(k+1)에 대해 양변 나머지 비교단계(S43)를 수행한다.
4-4. 합성수 가능성 판별단계(S45)
합성수 가능성 판별 단계(S45)는 k번째 순차계산에서 d(k)<L(k)인 경우, 상기 양변의 나머지 비교단계(S43)의 결과 입력 자연수(U)가 합성수일 가능성이 있는지를 판별하는 단계이다.
k번째 순차계산에서 d(k)<L(k)인 경우, 식 5-33으로부터 η(k+1)=0이므로 d(k+1), α(k+1)β(k+1) 및 γ(k+1)가 모두 0보다 같거나 크다는 조건을 만족하기 위해서는 식 5-41로부터 d(k+1)=0, α(k+1)β(k+1)=0 및 γ(k+1)=0 이 된다.
따라서, d(k)는 η(k+1)=0을 적용하면, 식 5-33으로부터 식 5-42를 만족한다.
식 5-42)
d(k)=ρ(k+1)
또한, σ(k)는 γ(k+1)=0을 적용하면 식 5-36으로부터 식 5-43과 같이 구해진다.
식 5-43)
σ(k)=ρ(k+1)
식 5-43과 식 5-35에 주어진 관계식 σ(k)=b(k)α(k+1)+c(k)β(k+1)를 연립하여 풀면 식 5-44가 얻어진다.
식 5-44)
ρ(k+1)=b(k)α(k+1)+c(k)β(k+1)
여기서, ρ(k+1)는 d(k)를 L(k)로 나눈 나머지이므로 0보다 크거나 같고 L(k)보다 작은 정수이다.
또한, 식 5-44에서 ρ(k+1), b(k), 및 c(k)는 값을 알고 있는 정수이고, α(k+1) 및 β(k+1)는 미지수이다. 만일 식 5-44를 만족하는 α(k+1) 및 β(k+1)가 동시에 정수인 경우가 1쌍 이상 존재하면, 상기 입력 자연수(U)가 합성수로 판별된다.
이제, 식 5-44에서 주어진 부정방정식을 만족하는 α(k+1) 및 β(k+1)는 k번째 순차계산에서 d(k)<L(k)인 경우, α(k+1)β(k+1)=0 조건을 만족하기 위해서는 α(k+1)=0 이거나 β(k+1)=0 이어야 한다. 만일 α(k+1)=0인 경우 식 5-45를 만족하는 β(k+1)가 0보다 같거나 크고 L(k)보다 작은 정수이거나, 또는 β(k+1)=0 인 경우 식 5-46을 만족하는 α(k+1)가 0보다 같거나 크고 L(k)보다 작은 정수인 경우 상기 입력자연수(U)가 합성수로 판별된다.
식 5-45)
ρ(k+1)=c(k)β(k+1)
식 5-46)
ρ(k+1)=b(k)α(k+1)
여기서, k번째 순차계산에서는 L(k)의 크기에 무관하게 α(k+1)=0 이거나 β(k+1)=0인 경우에 해당하는 두 번의 계산만 요구된다.
4-5. 합성수로 확인단계(S47)
상기 합성수 가능성 판별단계(S45)에서 상기 입력 자연수(U)에 대응하여 선택된 그룹에 대응하여 검출된 모든 부정방정식 중 어느 하나의 부정방정식에 대한 순차계산 과정에서 식 5-35를 만족하는 자연수 α(k+1) 및 β(k+1)의 쌍이 하나 이상 존재하는 경우, 상기 입력 자연수(U)는 합성수로 판별된다.
또한, 합성수로 확인된 경우, 상기 입력 자연수(U)에 따라 선택된 그룹에 대응하여 검출된 모든 부정방정식 중 상기 부정방정식 선택단계(S41)에서 선택되지 않은 부정방정식이 남아 있는 경우일지라도 더 이상의 계산을 생략하고 소인수분해단계(S50)로 진행될 수 있다.
4-6. 소수로 확인단계(S49)
상기 입력 자연수(U)에 따라 선택된 그룹에 대응하여 검출된 모든 부정방정식 중의 어느 하나의 부정방정식에서도 식 5-35를 만족하는 정수 α(k+1) 및 β(k+1) 쌍이 존재하지 않는 경우, 상기 입력 자연수(U)는 소수로 판별된다.
5. 소인수분해단계(S50)
소인수분해단계(S50)는 상기 소수판별단계(S40)의 결과 입력 자연수가 합성수로 판별된 경우, 상기 소수판별단계(S40)를 통해 산출된 결과와 연계하여 상기 입력 자연수의 소인수를 검출하는 단계이다.
도 3은 본 발명에 따른 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법에서 소인수분해단계(S50)의 과정을 나타낸 흐름도이다.
첨부된 도 3을 참조하면, 상기 소인수분해단계(S50)는 상기 합성수 확인단계(S47)에서 상기 입력 자연수가 합성수로 판별된 경우, d(k)가 L(k)보다 작은 k 번째부터 역순으로 1씩 가감한 순서에 따라 상기 M을 계산하는 미지수 M 계산단계(S53); 상기 합성수 확인단계(S47)에서 상기 입력 자연수가 합성수로 판별된 경우, k번째부터 역순으로 1씩 가감한 순서에 따라 상기 미지수 N을 계산하는 미지수 N 계산단계(S54); 상기 k번째부터 역순으로 1씩 가감한 순서가 1인 경우, 상기 미지수 M과 N이 구해지고, 상기 부정방정식에 대응되는 그룹 구분에 따라 상기 구해진 M과 N에 의해 소인수가 정해지면, 상기 구해진 M과 N에 의해 그룹 구분에 따라 정해지는 소인수를 도출하는 소인수 도출단계(S57); 및 상기 소인수 도출 단계(S57)에서 도출된 소인수를 제공하는 소인수 제공단계(S58)를 포함하여 이루어진다.
상기 소인수분해단계(S50)를 자세히 설명한다.
상기 소수판별단계에서 입력자연수(U)가 합성수로 판별된 경우, k번째 순차계산에서 d(k)<L(k)이고 또한, 식 5-33으로부터 η(k+1)=0이며, 식 5-41로부터 d(k+1)=0, α(k+1)β(k+1)=0 및 γ(k+1)=0인 경우에 해당한다.
따라서 식 5-37로부터 M(k+1)=0 및 N(k+1)=0이 된다.
또한, 식 5-35를 만족하는 α(k+1) 및 β(k+1) 정수 해에 대하여 M(k) 및 N(k)는 식 6-1 및 6-2와 같이 구해진다.
식 6-1)
M(k)=α(k+1)
식 6-2)
N(k)=β(k+1)
이어서, 순차계산 순번을 j라고 정의(S51)하면, j=k부터 1씩 빼면서 j=1이 될 때까지 식 6-3과 식 6-4와 같이 M(j-1) 및 N(j-1)을 계산(S52, S53)한다.
식 6-3)
M(j-1)=L(j-1)M(j)+α(j)
식 6-4)
N(j-1)=L(j-1)N(j)+β(j)
순차계산에서 j=1인 경우, M=M(0) 및 N=N(0)이 구해진다.
만일, 합성수로 확인된 부정방정식이 제1-1 그룹에 속하고 식 4-1에 주어진 U=(4M+1)(4N+1)에 대응되는 경우, 4M+1 및 4N+1이 소인수가 된다.
또한, 만일 합성수로 확인된 부정방정식이 제1-1 그룹에 속하고 식 4-2에 주어진 U=(4M-1)(4N-1)에 대응되는 경우, 4M-1 및 4N-1이 소인수가 된다.
또한, 합성수로 확인된 부정방정식이 제1-2 그룹에 속하는 경우, 식 4-6에 주어진 U=(4M-1)(4N+1)에 대응되므로 4M-1 및 4N+1이 소인수가 된다.
즉, 상기의 부정방정식이 제1-1 그룹 또는 제1-2 그룹에 속하는 경우, 입력 자연수(U)가 합성수로 확인되면, 소인수는 4M+1 과 4M-1로 이루어지는 군에서 선택된 하나와 4N+1 과 4N-1로 이루어지는 군에서 선택된 하나의 조합으로 소인수가 결정된다.
이상에서 본 발명의 바람직한 실시 예를 설명하였으나, 본 발명의 권리범위는 이에 한정되지 아니하며 본 발명의 실시 예와 실질적으로 균등한 범위에 있는 것까지 본 발명의 권리범위가 미치는 것으로 이해되어야 하며, 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능하다.
S10: 자연수 입력단계
S20: 그룹 판별단계
S30: 부정방정식 검출단계
S40: 소수판별단계
S50: 소인수분해단계
S20: 그룹 판별단계
S30: 부정방정식 검출단계
S40: 소수판별단계
S50: 소인수분해단계
Claims (6)
- 적어도 하나의 프로세서, 저장장치, 출력장치 및 디스플레이장치를 포함하는 개별 장치가 구비되는 컴퓨터에 설치되는 자연수 연산에이전트에 의해 이루어지는 소수판별 및 소인수분해 방법에 있어서,
상기 자연수 연산에이전트가 소수 판별 대상의 자연수를 입력받는 자연수 입력단계(S10);
상기 자연수 연산에이전트가 상기 입력단계(S10)에서 입력된 입력 자연수가 홀수인 경우, 다음의 수학식 1 및 수학식 2로 구별되는 2가지 그룹 중에서 어느 그룹에 속하는지를 판별하는 그룹 판별단계(S20);
상기 자연수 연산에이전트가 상기 입력 자연수에 대해 판별된 그룹에 해당하며 다음의 수학식 3으로 정의되는 부정방정식을 검출하는 부정방정식 검출단계(S30); 및
상기 자연수 연산에이전트가 상기 부정방정식 검출단계(S30)를 통해 검출되는 부정방정식의 정수 해를 구하기 위해 상기 입력 자연수에 따라 정해지는 복수의 단계로 구분하고, k번째 단계에서 상기 입력 자연수가 합성수라는 가정 하에 다음의 수학식 4와 같이 정해지는 2차 부정방정식과 연계하여 다음의 수학식 5와 같이 정해지는 1차 부정방정식을 산출하고, 상기 수학식 5와 같이 산출된 1차 부정방정식의 등호 양변의 나머지를 비교하여 다음의 수학식 6을 만족하는 마지막 단계까지 순차적으로 계산한 결과에 따라 상기 입력 자연수가 소수인지를 검출하는 소수판별단계(S40);
를 포함하여 이루어지는 것을 특징으로 하는 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법.
[수학식 1]
U = wK + 1
[수학식 2]
U = wK - 1
여기서, U는 입력 자연수, K는 입력 자연수를 w로 나눈 몫, w는 설정 자연수 이다.
[수학식 3]
aMN + bM + cN = d
여기서, a, b, c 및 d는 상수 계수, M과 N는 미지수이다.
[수학식 4]
a(k)M(k)N(k) + b(k)M(k) + c(k)N(k) = d(k)
여기서 k는 순차계산의 순서를 나타내는 수이고, a(k), b(k), c(k) 및 d(k)는 k번째 상수 계수, M(k)과 N(k)는 k번째 미지수이다.
[수학식 5]
b(k)α(k+1) + c(k)β(k+1) = d(k) mod L(k)
여기서, L(k)는 순차계산 단계에서 수학식 4의 상수계수 a(k)와 동일하게 정해지는 자연수이고, b(k) 및 c(k)는 수학식 4의 상수계수이며, α(k+1) 및 β(k+1)는 각각 수학식 4의 미지수 M(k) 및 N(k)를 L(k)로 나눈 나머지이다. 또한 mod는 모듈로 연산자를 나타내는 수학기호이다.
[수학식 6]
d(k)<L(k)
- 청구항 1에 있어서,
상기 소수판별단계(S40) 이후에,
상기 소수판별단계(S40)의 결과 입력 자연수가 합성수로 판별된 경우, 상기 소수판별단계(S40)를 통해 산출된 결과와 연계하여 상기 입력 자연수의 소인수를 검출하는 소인수분해단계(S50);
를 더 포함하는 것을 특징으로 하는 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법.
- 청구항 1에 있어서,
상기 소수판별단계(S40)는,
상기 입력 자연수(U)에 대응하여 판별된 그룹에 대응하여 검출된 상기 2차 부정방정식을 순차적으로 선택하는 부정방정식 선택단계(S41);
상기 선택된 2차 부정방정식에 대응되는 상수 계수를 대입하여 상기 부정방정식의 초기값으로 설정하는 초기값 설정단계(S42);
상기 초기값 설정단계(S42)에서 초기값으로 설정된 상수계수로 구성되는 2차 부정방정식의 정수해를 구하기 위해 상기 입력 자연수(U)에 따라 정해지는 복수의 단계로 구분된 각각의 순차계산 단계별로 수학식 5와 같이 정해지는 1차 부정방정식에 대하여 정수 해를 구하기 위해 각각의 단계별로 등호 양변의 나머지를 비교하는 양변의 나머지 비교단계(S43);
초기단계로부터 순차적으로 이어진 모든 단계를 포함하여 상기 양변의 나머지 비교단계(S43)의 결과 상기 수학식 5와 같이 정해지는 1차 부정방정식을 만족하는 정수 해가 존재하는 경우 이어지는 다음 계산단계가 상기 수학식 6을 만족하는 마지막 단계인 경우 상기 마지막 단계에서 수학식 5와 같이 정해지는 1차 부정방정식에 대하여 두 개의 미지수 중 어느 하나에 0을 대입하고 다른 하나의 계산 결과가 정수인 경우 상기 입력 자연수를 합성수로 판별하는 합성수 가능성 판별단계(S45);
상기 합성수 가능성 판별단계(S45)를 통해 마지막 단계의 계산결과 선택된 부정방정식를 만족하는 정수 해가 존재하는 경우, 상기 입력 자연수를 합성수로 판별하는 합성수로 확인단계(S47); 및
상기 선택된 부정방정식 중에서 어느 하나의 부정방정식에도 만족하는 정수 해가 존재하지 않는 경우, 상기 입력 자연수를 소수로 판별하는 소수로 확인단계(S49);
로 이루어지는 것을 특징으로 하는 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법.
- 청구항 2에 있어서,
상기 설정 자연수 w가 4인 경우, 상기 소인수분해단계(S50)는,
상기 입력 자연수가 합성수로 판별된 경우, k번째부터 역순으로 1씩 가감한 순서에 따라 다음의 수학식 7을 이용하여 상기 미지수 M을 계산하는 미지수 M 계산단계(S53);
상기 입력 자연수가 합성수로 판별된 경우, k번째부터 역순으로 1씩 가감한 순서에 따라 다음의 수학식 8을 이용하여 상기 미지수 N을 계산하는 미지수 N 계산단계(S54);
상기 k번째 역순으로 1씩 가감한 순서가 1인 경우, 상기 미지수 M과 N의 그룹 구분에 따라 4M+1 과 4M-1로 이루어지는 군에서 선택된 하나와 4N+1 과 4N-1로 이루어지는 군에서 선택된 하나의 조합으로 하여 소인수를 도출하는 소인수 도출단계(S57); 및
상기 소인수 도출 단계(S57)에서 도출된 소인수를 제공하는 소인수 제공단계(S58);
로 이루어지는 것을 특징으로 하는 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법.
[수학식 7]
M(k) = L(k)M(k+1) + α(k+1)
여기서, M(k)는 k번째 계산단계에서 두 개의 미지수 중 어느 하나이고 L(k)는 a(k)와 동일하게 정해지는 자연수이며, M(k+1)과 α(k+1)는 각각 M(k)를 L(k)로 나눈 몫과 나머지이다.
[수학식 8]
N(k) = L(k)N(k+1) + β(k+1)
여기서 N(k)는 k번째 계산단계에서 두 개의 미지수 중 다른 하나이며 L(k)는 a(k)와 동일하게 정해지는 자연수이며 N(k+1)과 β(k+1)는 각각 N(k)를 L(k)로 나눈 몫과 나머지이다.
- 청구항 1에 있어서,
상기 자연수 입력단계(S10)에서 입력받는 자연수는,
사물인터넷(Internet of things)의 센서, 제어용 장치, 가전제품 및 가상공간의 아바타, 스마트폰, 개인용 컴퓨터, 서버를 포함하는 사물에 내장된 소프트웨어의 난수표에 의해서 생성되거나 또는 일정한 수학식을 통해 생성되는 자연수인 것을 특징으로 하는 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법.
- 청구항 3에 있어서,
양변의 나머지 비교단계(S43)는,
a) 상기 수학식 5와 같이 정해지는 상기 1차 부정방정식의 미지수 중 어느 1개의 상수계수를 모듈로(modulo)로 선택하여 상기 선택된 미지수가 제거되도록 하여 미지수가 1개인 모듈로 수학식으로 변환하고,
b) 상기 변환된 모듈로 수학식을 만족하는 미지수의 나머지 정수해를 구하며,
c) 상기 구해진 미지수의 나머지 정수해를 이용하여 해당 미지수의 몫을 구하고,
d) 상기 수학식 5에서 선택되지 않은 다른 1개의 미지수 계수를 모듈로(modulo)로 선택하여 상기 선택된 미지수가 제거된 모듈로 수학식으로 변환하고,
e) 상기 변환된 수학식을 만족하는 미지수의 나머지 정수해를 산출하며,
f) 상기 구해진 미지수의 나머지 정수해를 이용하여 해당 미지수의 몫을 산출하는 과정으로,
등호 양변의 나머지를 비교하는 것을 특징으로 하는 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170184759A KR102000914B1 (ko) | 2017-12-29 | 2017-12-29 | 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170184759A KR102000914B1 (ko) | 2017-12-29 | 2017-12-29 | 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190081904A KR20190081904A (ko) | 2019-07-09 |
KR102000914B1 true KR102000914B1 (ko) | 2019-07-17 |
Family
ID=67260968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170184759A KR102000914B1 (ko) | 2017-12-29 | 2017-12-29 | 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102000914B1 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101731921B1 (ko) | 2017-02-20 | 2017-05-02 | 국방과학연구소 | 하드웨어 타입 소수 판별 장치 및 그 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100066309A (ko) | 2008-12-08 | 2010-06-17 | 한국전자통신연구원 | 소수 판정 방법 |
-
2017
- 2017-12-29 KR KR1020170184759A patent/KR102000914B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101731921B1 (ko) | 2017-02-20 | 2017-05-02 | 국방과학연구소 | 하드웨어 타입 소수 판별 장치 및 그 방법 |
Non-Patent Citations (1)
Title |
---|
Carl Pomerance, "Primality testing: variations on a theme of Lucas" (2010) |
Also Published As
Publication number | Publication date |
---|---|
KR20190081904A (ko) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101467719B1 (ko) | 서명 생성 장치 및 서명 생성 방법 및, 컴퓨터 판독 가능한 기록 매체 | |
CN113761469B (zh) | 一种保护数据隐私的最高位进位计算方法 | |
Haider et al. | An Innovative approach towards image encryption by using novel PRNs and S-boxes Modeling techniques | |
JP6777816B2 (ja) | 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム | |
JP6585846B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
Kafetzis et al. | A 1D coupled hyperbolic tangent chaotic map with delay and its application to password generation | |
Haider et al. | A novel pseudo-random number generator based on multivariable optimization for image-cryptographic applications | |
KR102000914B1 (ko) | 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법 | |
JPWO2012121152A1 (ja) | 代理計算システム、方法、依頼装置及びプログラム | |
AU2020472445A1 (en) | Hidden decision tree test device, hidden decision tree test system, hidden decision tree test method, and program | |
JP2007187908A (ja) | サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法 | |
Cristiani et al. | Fit the joint moments: how to attack any masking scheme | |
CN111461178A (zh) | 数据处理方法、系统及装置 | |
JP2015135452A (ja) | ペアリング演算装置、マルチペアリング演算装置、プログラム | |
Çalık | Computing cryptographic properties of Boolean functions from the algebraic normal orm representation | |
Wang et al. | Fast Implementation of Multiplication on Polynomial Rings | |
KR101423947B1 (ko) | 확장된 nist 소수를 이용한 모듈러 곱셈 및 모듈러 지수승 방법 | |
RU2369974C1 (ru) | Способ формирования и проверки подлинности электронной цифровой подписи, заверяющей электронный документ | |
Monfared et al. | Secure and efficient exponentiation architectures using Gaussian normal basis | |
RU2572423C2 (ru) | Способ формирования s-блоков с минимальным количеством логических элементов | |
JP3329440B2 (ja) | 事前計算を用いた複数生成元に対する演算装置及びそのプログラム記録媒体 | |
JP3768888B2 (ja) | 離散対数検証方法、この方法を実施する装置、プログラムおよびプログラムを記憶した記憶媒体 | |
Khalimov et al. | Analysis of the implementation complexity of cryptosystem based on the Suzuki Group | |
US20210105134A1 (en) | Apparatus and method for performing matrix multiplication operation being secure against side channel attack | |
Zadiraka et al. | Security estimates updating of asymmetric cryptosystems for modern computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant |