KR20100070272A - 유한 확장체에서 제곱근 계산 장치 및 방법 - Google Patents
유한 확장체에서 제곱근 계산 장치 및 방법 Download PDFInfo
- Publication number
- KR20100070272A KR20100070272A KR1020090019873A KR20090019873A KR20100070272A KR 20100070272 A KR20100070272 A KR 20100070272A KR 1020090019873 A KR1020090019873 A KR 1020090019873A KR 20090019873 A KR20090019873 A KR 20090019873A KR 20100070272 A KR20100070272 A KR 20100070272A
- Authority
- KR
- South Korea
- Prior art keywords
- square root
- calculating
- exponent
- calculation
- power
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/723—Modular exponentiation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Abstract
Description
본 발명은 유한 확장체에서 제곱근 계산 장치 및 방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2005-S-088-04, 과제명: 안전한 RFID/USN을 위한 정보보호 기술 개발].
유한 확장체 (여기서 p는 소수, k는 홀수)에서 제곱근을 구하는 문제는, 계산 정수론과 같은 학문에서 고전적인 연구 주제 중에 하나이다. 제곱근을 구하는 알고리즘은 암호 시스템을 구성하는 요소로도 활용된다. 예를 들어, 타원곡선 암호 시스템의 경우, 좌표 표현을 효율적으로 하는데 제곱근을 구하는 알고리즘이 활용된다.
3차 다항식 f(x)에 대한 확장체 에서의 타원곡선 방정식 의 원소는 일반적으로 (a, b)와 같이 2개의 원소로 표현된다. 그러나, 좌표 표현은 a와 한 비트의 추가 정보만을 가지고도 표현될 수 있다. 여기서 한 비트 추가 정보는 예를 들어, b가 좌표 위의 값이면 1, 좌표 아래 값이면 0으로 표현할 수 있다. y의 좌표값 b는 y2 = f(x)의 근 중에서 한 비트 정도를 이용해 쉽게 결정할 수 있다.
제곱근을 구하는 방법은 표수(characteristic) p의 조건에 따라 여러 가지로 구분된다. p ≡ 3(mod 4)인 경우, 완전 제곱수 의 제곱근 x는 한 번의 지수승 x = a(q+1)/4으로 계산된다. 이와 유사하게 p ≡ 5(mod 8)의 경우에도 한 번의 지수승 연산이면 제곱근을 구할 수 있다. 반대로, p ≡ 1(mod 8)의 경우에는 제곱근을 구하는 알고리즘이 좀 더 복잡해진다. 따라서 가장 효율적으로 구하는 방법은 Tonelli-Shanks 또는 Cipolla-Lehmer 알고리즘에 기반한 것들을 이용하는 것이다.
제곱근을 구하는 알고리즘을 효율적으로 개선하기 위해, 제곱근을 구하는 알고리즘의 핵심 연산인 지수승의 지수를 새로운 방법으로 표현하는 연구가 이루어지고 있다. 예를 들어 확장체 에서 p ≡ 3(mod 4) 또는 p ≡ 5(mod 8)의 경우 제곱근 계산에 필요한 지수승의 지수 표현법을 새롭게 함으로써 에서의 계산 복잡도를 에서 으로 감소시켰다.
이 외에도 p ≡ 9(mod 16)의 조건에 활용되는 제곱근 알고리즘의 내부 지수승의 지수에 대한 주기성을 가지는 새로운 표현법을 활용하여 기존 방법보다 효율적으로 제곱근을 구하는 알고리즘이 제안되었다.
예를 들어, 기존 알고리즘의 에서의 계산 복잡도가 인데 반해, 새로운 알고리즘의 것은 이다. 이와 같은 특별한 지수들에 대한 새로운 표현법으로부터 도출된 효율성의 개선은 Itoh-Tsujii 알고리즘에 활용된 분할 및 정복(divide and conquer) 기법과 정규기저의 특성에서 기인한 것이다.
그러나, 지금까지 제안된 제곱근을 효율적으로 계산하는 방법들은 모든 소수 p에 대해 적용이 가능한 것이 아니라, 특정 소수에 대해서만 제안되었다. 특히, 임의의 소수 p에 대해서는 제곱근을 계산할 수 있는 알고리즘에 대해서는, 새로운 효율적인 계산 방법이 제안되고 있지 않다.
따라서, 본 발명은 유한 확장체에서 제곱근을 계산하는 방법을 제공한다. 특히, 임의의 소수 p에 대한 제곱근 계산 시 지수승 연산을 효율적으로 계산하는 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 유한확장체에서 제곱근을 계산하는 방법은,
미리 설정한 조건을 만족하는 원소, 홀수 및 정수를 계산하는 단계; 상기 홀수를 포함하는 제1 지수승 및 제2 지수승의 연산을 수행하는 단계; 및 상기 제1 지 수승 및 제2 지수승의 연산을 토대로 생성된 값을 포함하고 있는 제곱근 값을 계산하는 단계를 포함한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 유한확장체에서 제곱근을 계산하는 장치는,
미리 설정한 조건을 만족하는 원소, 홀수 및 정수를 계산하는 사전 계산부; 상기 홀수를 포함하는 제1 지수승 및 제2 지수승의 연산을 수행하는 주연산부; 및 상기 제1 지수승 및 제2 지수승의 연산을 토대로 생성된 값을 포함하고 있는 제곱근 값을 계산하는 후처리 연산부를 포함한다.
본 발명에 따르면, 지수 연산에 필요한 연산량을 줄일 수 있어 향상된 알고리즘의 효율성을 가질 수 있다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 발명의 실시예에 대하여 설명하기 앞서, 임의의 소수 p에 대해 제곱근을 구하는 Tonelli-Shanks 알고리즘에 대하여 먼저 살펴보기로 한다. Tonelli-Shanks 알고리즘은 다음 표 1에 나타낸 바와 같은 단계로 수행한다.
[표 1]
Input: () = 1을 만족하는 a ∈ Fq Output: x2 = a를 만족하는 x |
1. ()=-1을 만족하는 랜덤한 u ∈ Fq 선택 2. 홀수 t에 대해, q - 1 = 2S·t를 만족하는 S 찾기 3. v←s, z←ut, w←a(t-1)/2, x←a·w, and b←x·w 4. While b≠1 do 5. b2m=1을 만족하는 가장 작은 양의 정수 m 찾기 6. w←, z←w2, b←b·z, x←x·w, v←m 7. end while 8. Return x |
이와 같은 Tonelli-Shanks 알고리즘 중 본 발명의 실시예에 따라 세 번째 단계에서 이루어지는 2개의 지수승 연산 ut와 의 지수에 대한 새로운 표현법을 이용하여 효율적으로 지수승을 계산할 수 있는 제곱근 계산 장치 및 방법에 대하여 도면을 참조로 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 제곱근 계산 장치의 구조도이다.
도 1에 도시된 바와 같이, 제곱근 계산 장치는 사전 계산부(100), 주연산부(200) 및 후처리 연산부(300)를 포함한다.
사전 계산부(100)는 ()=-1을 만족하는 랜덤한 u ∈ Fq 선택한다. 여기서, Fq는 위수 q를 가지는 유한 확장체로, 2가 아닌 소수 p와 홀수 정수 k에 대해 q = pk로 정의한다. 이때, 소수 p는 확장체 Fq의 표수(characteristic)라고 한다. 그리고 ()는 Fq의 원소 a에 대한 이차 유수 증명(quadratic residue test)의 결과를 나타낸다. a가 Fq에서 제곱근을 가지면 ()=1이고, 그렇지 않으면 ()=-1이다.
랜덤한 u ∈ Fq 선택한 후, 임의의 홀수 k에 대해 q = pk를 만족하는 두 정수 q와 p를 q = 2S·t + 1과 p = ·t1 + 1과 같이 표현하면, 이때의 정수 s를 검색한다. 이때, t1과 t는 홀수이다.
후처리 연산부(300)는 주연산부(200)에서 지수 계산을 수행하면, = 1을 만족하는 가장 작은 양의 정수인 m을 찾는다. 그리고, m 값을 이용하여 x2 = a를 만족하는 즉, a의 제곱근 값인 x를 구한다.
이와 같은 구조를 갖는 제곱근 계산 장치를 이용하여 제곱근을 계산하는 방법에 대하여 도 2를 참조로 설명하기로 한다.
도 2는 본 발명의 실시예에 따른 제곱근 계산 방법을 나타낸 흐름도이다.
도 2에 도시된 바와 같이, 먼저, 사전 계산부(100)는 위수 q를 가지는 유한 확장체에서 제곱근을 갖지 않는 원소 u를 선택한다(S100). 여기서 2가 아닌 소수로 정의된 p와, 홀수 정수 k에 대해 q = pk로 정의하며, 소수 p는 확장체 Fq의 표수(characteristic)라고 정의한다. 그리고 사전 계산부(100)는 홀수 t에 대해, q - 1 = 2S·t를 만족하는 정수 s를 찾는다(S110).
사전 계산부(100)가 u, t 및 s를 찾으면, 주연산부(200)는 제1 지수승 연산 및 제2 지수승 연산을 수행한다(S120). 여기서 제1 지수승 연산은 ut의 계산을 제2 지수승 연산은의 계산을 의미하며, 지수승 계산을 위해 본 발명의 실시예에 따른 표현법을 이용하여 수행한다. 이를 위해 홀수 k에 대해 q = pk를 만족하는 두 정수 q와 p를 q = 2s·t + 1과 p = ·t1 + 1과 같이 표현한다고 가정하면, s = s1을 만족한다. 여기서 t와 t1은 홀수이다.
S110 단계에서 구한 홀수 t와 정수 s에 대해 q = pk = 2S·t + 1을 만족한다고 가정하면, 임의의 홀수 x에 대해 p = 2S·x + 1로 표현될 수 있음을 알 수 있다.
이와같은 가정하에서 ut의 지수승에서 지수 t에 본 발명의 실시예에 따른 표현을 활용하여 지수승을 구하면, 지수 t = (pk - 1) / 2S는 다음 수학식 1과 같은 표현으로 바꾸어 표현할 수 있다.
[수학식 1]
수학식 1의 t에 대한 표현법을 이용하면 ut 지수승 계산은 다음 수학식 2와 같이 두 단계로 계산됨을 알 수 있다.
[수학식 2]
1) z1 ← ux
수학식 2를 통해 계산된 z2의 계산 결과가, ut의 결과 값이다.
본 발명의 실시예에서는 수학식 2를 통해 z2를 계산하였으나, 유한확장체를 표현하는 방법을 정규기저(Normal basis) 방법을 이용할 경우, z2를 계산하는 지수승은 Itho-Tsuji에 의해 제안된 방법을 통해서도 계산될 수 있다.
[수학식 3]
[수학식 4]
1) z1 ← aA
2) z2 ← aB
4) z4 ← z1 · z3
여기서 의 계산을 좀 더 효율적으로 하기 위해, z1과 z2의 계산에서 중복되는 연산을 제거할 수도 있다. 다음 수학식 5는 지수 A와 표수 p를 이용해 지수 B를 전개한 것이다.
[수학식 5]
수학식 5를 이용하여 z1과 z2의 계산에서 중복되는 연산을 제거하여 계산하면 다음 표 2와 같다.
[표 2]
Input : a, p, x, s Output : z1, z2 1) z1 ← a(x-1)/2 2) y1 ← z1 · a 3) y2 ← z1 · y1 4) y2 ← 5) y2 ← y1 · y2 6) y1 ← 7) y1 ← y1 · y2 8) z2 ← |
(= a(x+1)/2) (= ax) (= ) (= ) (= ap·(x-1)/2) (= ) (= aB) |
주연산부(200)가 지수승에 대한 계산을 수행하면, 후처리 연산부(300)는 후처리 연산을 수행하여 = 1을 만족하는 가장 작은 양의 정수인 m을 찾고, 이를 이용하여 x2 = a를 만족하는 x를 계산하는 제곱근 값을 계산한다(S130).
이상에서 설명한 방법을 이용하여 표 1의 계산량을 줄일 수 있다. 이에 대해 표 3을 참조로 설명하기로 한다.
[표 3]
표 3은 p ≡ 1(mod 16)을 예로 하며 확장체 의 크기와 확장 차수(extension degree) k의 크기에 따라 계산에 필요한 연산량에 대하여, 표 1에 나타낸 기존의 Tonelli-Shanks 알고리즘을 계산하는데 필요한 연산량과 본 발명의 실시예에 따른 연산량을 나타낸 것이다.
확장 차수 k의 범위는 3에서 15까지로 하며, q = pk의 사이즈를 100비트 간격으로 100비트부터 400비트까지 고려하였다. 그리고 향상율 항목은 개선된 알고리즘의 효율성을 나타내는 것으로, 기존의 알고리즘보다 어느 정보 효율성이 개선되었는지 나타내는 수치이다. 예를 들어, 기존의 Tonelli-Shanks 알고리즘 계산에 필요한 연산량과 본 발명의 실시예에 따른 연산량의 평균을 각각 A와 B라고 하면, 향상율은 (A-B)/A×100으로 계산한다.
표 3에 나타낸 바와 같이, 확장체의 크기 및 k의 값에 관계 없이 본 발명의 실시예에 따른 방법이 효율적임을 알 수 있다. 특히, 동일한 확장 차수에 대해서 확장체의 크기가 클수록 더 효율적임을 알 수 있다. 확장 차수 k는 홀수로 가정하였기 때문에, k = 3인 경우가 가장 작은 효율성 증대를 나타내었지만, 최소 60% 이상 효율성 향상을 가져옴을 알 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
도 1은 본 발명의 실시예에 따른 제곱근 계산 장치의 구조도이다.
도 2는 본 발명의 실시예에 따른 제곱근 계산 방법을 나타낸 흐름도이다.
Claims (9)
- 유한확장체에서 제곱근을 계산하는 방법에 있어서,미리 설정한 조건을 만족하는 원소, 홀수 및 정수를 계산하는 단계;상기 홀수를 포함하는 제1 지수승 및 제2 지수승의 연산을 수행하는 단계; 및상기 제1 지수승 및 제2 지수승의 연산을 토대로 생성된 값을 포함하고 있는 제곱근 값을 계산하는 단계를 포함하는 제곱근 계산 방법.
- 유한확장체에서 제곱근을 계산하는 장치에 있어서,미리 설정한 조건을 만족하는 원소, 홀수 및 정수를 계산하는 사전 계산부;상기 홀수를 포함하는 제1 지수승 및 제2 지수승의 연산을 수행하는 주연산부; 및상기 제1 지수승 및 제2 지수승의 연산을 토대로 생성된 값을 포함하고 있는 제곱근 값을 계산하는 후처리 연산부를 포함하는 제곱근 계산 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080128730 | 2008-12-17 | ||
KR20080128730 | 2008-12-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100070272A true KR20100070272A (ko) | 2010-06-25 |
KR101086046B1 KR101086046B1 (ko) | 2011-11-22 |
Family
ID=42368121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090019873A KR101086046B1 (ko) | 2008-12-17 | 2009-03-09 | 유한 확장체에서 제곱근 계산 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101086046B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240035218A (ko) * | 2022-09-08 | 2024-03-15 | 인하대학교 산학협력단 | 사영직선 위의 유리함수에 기반한 의사난수 생성 장치 및 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005063349A (ja) | 2003-08-20 | 2005-03-10 | Nippon Telegr & Teleph Corp <Ntt> | 拡大体平方根算出装置、拡大体平方根算出方法、拡大体平方根算出プログラム及びそのプログラムを記録した記録媒体 |
-
2009
- 2009-03-09 KR KR1020090019873A patent/KR101086046B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240035218A (ko) * | 2022-09-08 | 2024-03-15 | 인하대학교 산학협력단 | 사영직선 위의 유리함수에 기반한 의사난수 생성 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR101086046B1 (ko) | 2011-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bernstein et al. | On the correct use of the negation map in the Pollard rho method | |
JP5360836B2 (ja) | ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム | |
US8498411B1 (en) | Using multiples above two with running totals and reference values other than 0 and 2 (window size) in elliptic curve cryptography scalar multiplication acceleration tables | |
US8862651B2 (en) | Method and apparatus for modulus reduction | |
US9811318B2 (en) | Montgomery multiplication method for performing final modular reduction without comparison operation and montgomery multiplier | |
CN104065478A (zh) | 基于格密码体系的多项式模乘协处理器 | |
US20200380122A1 (en) | Elliptic curve point multiplication operation method and apparatus | |
白石 | Polynomial selection for the number field sieve | |
JP5553773B2 (ja) | 楕円曲線上の点のスカラー倍を計算する装置及び方法 | |
JP2000010479A (ja) | モンゴメリ・リダクション装置及び記録媒体 | |
Seo et al. | Optimized multi-precision multiplication for public-key cryptography on embedded microprocessors | |
KR101929984B1 (ko) | 모듈러 곱셈기 및 그것의 모듈러 곱셈 방법 | |
KR101086046B1 (ko) | 유한 확장체에서 제곱근 계산 장치 및 방법 | |
US8804952B2 (en) | System and method for securing scalar multiplication against differential power attacks | |
US8626811B2 (en) | Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine | |
Shirase | Condition on composite numbers easily factored with elliptic curve method | |
KR101309797B1 (ko) | 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및암호화 방법 | |
Khabbazian et al. | A new minimal average weight representation for left-to-right point multiplication methods | |
Al Saffar et al. | High performance methods of elliptic curve scalar multiplication | |
Skuratovskii et al. | Criterions of supersinguliarity and groups of Montgomery and Edwards curves in cryptography | |
Lory | Secure distributed multiplication of two polynomially shared values: Enhancing the efficiency of the protocol | |
Golubitsky et al. | A bound for the Rosenfeld–Gröbner algorithm | |
Al-Somani | Performance analysis of the postcomputation-based generic-point parallel scalar multiplication method | |
Eghdamian et al. | A modified left-to-right radix-r representation | |
JP4043119B2 (ja) | 有限体の定義多項式を用いた剰余演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |