KR101360916B1 - 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및 암호화 방법 - Google Patents
성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및 암호화 방법 Download PDFInfo
- Publication number
- KR101360916B1 KR101360916B1 KR1020120084577A KR20120084577A KR101360916B1 KR 101360916 B1 KR101360916 B1 KR 101360916B1 KR 1020120084577 A KR1020120084577 A KR 1020120084577A KR 20120084577 A KR20120084577 A KR 20120084577A KR 101360916 B1 KR101360916 B1 KR 101360916B1
- Authority
- KR
- South Korea
- Prior art keywords
- coefficient
- key
- coefficients
- zero
- encryption
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
성긴 w-NAF 키 생성방법, 이를 이용한 연산 방법 및 암호화 방법이 제공된다. 본 키 생성방법은, 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 계수열을 생성하는 단계 및 생성된 계수열을 키로 출력하는 단계를 포함한다.
Description
본 발명은 키 생성방법에 관한 것으로, 더욱 상세하게는 암호화에 수반되는 연산량을 줄일 수 있는 키를 생성하는 방법 및 이 키를 이용한 연산 방법과 암호화 방법에 관한 것이다.
날이 갈수록 증대되어 온 정보보안의 중요성은, 많은 암호화 방법들을 등장시키게 되었다. Diffie-Hellman(DH) 암호화와 ECC(Elliptic Curve Cryptography)도 보다 효율적인 정보보안을 위해 등장한 암호화 방법들이다.
DH 암호화는 암호화 과정에서 지수승 연산을 수반한다. 그리고, DH 암호화 이외에도 지수승 연산을 수반하는 많은 암호화 방법들이 존재한다.
보다 안정적인 정보보안을 위해서는 지수승 연산에서 지수가 되는 키의 길이가 일정 길이 만큼 길어져야 한다. 그런데, 지수가 되는 키의 길이가 길어지게 되면, 지수승 연산량이 많아지게 되어, 연산속도가 느려지게 되는 결과를 유발하게 된다. 이와 같은 연산속도의 저하는 프로세서의 성능이 낮은 모바일 기기에서 더욱 심각해진다.
한편, ECC는 암호화 과정에서 스칼라 곱(Scalar Multiplication) 연산을 수반한다.
ECC의 경우에도 보다 안정적인 정보보안을 위해서는 스칼라곱 연산에서 좌표에 곱해지는 계수인 키의 길이가 일정 길이 만큼 길어져야 한다. 그런데, 키의 길이가 길어지게 되면, 스칼라곱 연산량이 많아지게 되어, 연산속도가 느려지게 되는 결과를 유발하게 된다. 이와 같은 연산속도의 저하는 프로세서의 성능이 낮은 모바일 기기에서 더욱 심각해짐은, ECC의 경우도 마찬가지이다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 지수승 연산량이나 스칼라곱 연산량을 낮추어 암호화 속도를 향상시킬 수 있는 성긴 w-NAF 키를 생성하는 방법 및 성긴 w-NAF 키를 이용하여 지수승 연산이나 스칼라곱 연산을 수행하고 암호화를 수행하는 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명에 따른, 키 생성방법은, a) 계수들 중 0이 아닌 계수는 2w(w는 2 이상의 자연수) 이하의 양의 홀수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 계수열을 생성하는 단계; 및 b) 생성된 상기 계수열을 키로 출력하는 단계;를 포함한다.
그리고, 상기 a) 단계는, a1) m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 단계; a2) 선택된 상기 t개의 그룹 각각을, 2w 이하의 양의 홀수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및 a3) 선택되지 않은 그룹을 0으로 대체하여 상기 계수열을 생성하는 단계;를 포함하며, 상기 m 및 상기 t는 양의 정수인 것이 바람직하다.
또한, 상기 스트링을 구성하는 상기 2w 이하의 양의 홀수들은, 상기 w-1개의 0 뒤에 나열되는 것이 바람직하다.
그리고, 상기 b) 단계는, 생성된 상기 계수열에서 0이 아닌 최초의 계수의 이전 계수들을 제외한 계수열을 상기 키로 출력할 수 있다.
한편, 본 발명에 따른, 지수승 연산방법은, a) 계수들 중 0이 아닌 계수는 2w(w는 2 이상의 자연수) 이하의 양의 홀수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 생성하는 단계; 및 b) 생성된 상기 키를 지수로 하여 지수승 연산을 수행하는 단계;를 포함한다.
그리고, 상기 a) 단계는, a1) m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 단계; a2) 선택된 상기 t개의 그룹 각각을, 2w 이하의 양의 홀수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및 a3) 선택되지 않은 그룹을 0으로 대체하여 키를 생성하는 단계;를 포함하는 것이 바람직하다.
한편, 본 발명에 따른, 암호화 방법은, a) 계수들 중 0이 아닌 계수는 2w(w는 2 이상의 자연수) 이하의 양의 홀수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 생성하는 단계; b) 생성된 상기 키를 지수로 하여 지수승 연산을 수행하는 단계; 및 c) 수행된 상기 지수승 연산 결과에 대한 암호화를 수행하는 단계;를 포함한다.
그리고, 상기 a) 단계는, a1) m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 단계; a2) 선택된 상기 t개의 그룹 각각을, 2w 이하의 양의 홀수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및 a3) 선택되지 않은 그룹을 0으로 대체하여 키를 생성하는 단계;를 포함하는 것이 바람직하다.
한편, 본 발명에 따른, 키 생성방법은, a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 계수열을 생성하는 단계; 및 b) 생성된 상기 계수열을 키로 출력하는 단계;를 포함한다.
그리고, 상기 a) 단계는, a1) m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 단계; a2) 선택된 상기 t개의 그룹 각각을, 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및 a3) 선택되지 않은 그룹을 0으로 대체하여 상기 계수열을 생성하는 단계;를 포함하며, 상기 m 및 상기 t는 양의 정수인 것이 바람직하다.
또한, 상기 스트링을 구성하는 상기 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들은, 상기 w-1개의 0 뒤에 나열되는 것이 바람직하다.
그리고, 상기 b) 단계는, 생성된 상기 계수열에서 0이 아닌 최초의 계수의 이전 계수들을 제외한 계수열을 상기 키로 출력할 수 있다.
한편, 본 발명에 따른, 스칼라곱 연산방법은, a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 생성하는 단계; 및 b) 생성된 상기 키에 기초하여 스칼라곱 연산을 수행하는 단계;를 포함한다.
그리고, 상기 a) 단계는, a1) m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 단계; a2) 선택된 상기 t개의 그룹 각각을, 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및 a3) 선택되지 않은 그룹을 0으로 대체하여 상기 키를 생성하는 단계;를 포함하며, 상기 m 및 상기 t는 양의 정수인 것이 바람직하다.
한편, 본 발명에 따른, 암호화 방법은, a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 생성하는 단계; b) 생성된 상기 키에 기초하여 스칼라곱 연산을 수행하는 단계; 및 c) 수행된 상기 스칼라곱 연산 결과에 대한 암호화를 수행하는 단계;를 포함한다.
그리고, 상기 a) 단계는, a1) m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 단계; a2) 선택된 상기 t개의 그룹 각각을, 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및 a3) 선택되지 않은 그룹을 0으로 대체하여 상기 키를 생성하는 단계;를 포함하며, 상기 m 및 상기 t는 양의 정수인 것이 바람직하다.
한편, 본 발명에 따른, 컴퓨터로 읽을 수 있는 기록매체는, a) 계수들 중 0이 아닌 계수는 2w(w는 2 이상의 자연수) 이하의 양의 홀수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 계수열을 생성하는 단계; 및 b) 생성된 상기 계수열을 키로 출력하는 단계;를 수행할 수 있는 프로그램이 기록된다.
한편, 본 발명에 따른, 컴퓨터로 읽을 수 있는 기록매체는, a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 계수열을 생성하는 단계; 및 b) 생성된 상기 계수열을 키로 출력하는 단계;를 수행할 수 있는 프로그램이 기록된다.
한편, 본 발명에 따른, 암호화 장치는, 계수들 중 0이 아닌 계수는 2w(w는 2 이상의 자연수) 이하의 양의 홀수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 생성하는 키 생성부; 생성된 상기 키를 지수로 하여 지수승 연산을 수행하는 지수승 연산부; 및 수행된 상기 지수승 연산 결과에 대한 암호화를 수행하는 암호화부;를 포함한다.
한편, 본 발명에 따른, 암호화 장치는, 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 생성하는 키 생성부; 생성된 상기 키에 기초하여 스칼라곱 연산을 수행하는 스칼라곱 연산부; 및 수행된 상기 스칼라곱 연산 결과에 대한 암호화를 수행하는 암호화부;를 포함한다.
도 1은 본 발명의 일 실시예에 따른 암호화 장치의 블럭도,
도 2는 본 발명의 일 실시예에 따른 암호화 방법의 설명에 제공되는 흐름도,
도 3은 본 발명의 다른 실시예에 따른 암호화 장치의 블럭도, 그리고,
도 4는 본 발명의 다른 실시예에 따른 암호화 방법의 설명에 제공되는 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 암호화 방법의 설명에 제공되는 흐름도,
도 3은 본 발명의 다른 실시예에 따른 암호화 장치의 블럭도, 그리고,
도 4는 본 발명의 다른 실시예에 따른 암호화 방법의 설명에 제공되는 흐름도이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 암호화 장치의 블럭도이다. 본 실시예에 따른 암호화 장치는 암호화를 수행함에 있어 필요한 지수승 연산량을 줄일 수 있는 키를 생성하여 이용한다.
도 1에 도시된 바와 같이, 본 실시예 따른 암호화 장치는 키 생성부(100), 지수승 연산부(200) 및 암호화부(300)를 구비한다.
키 생성부(100)는 '부호없는 w-NAF'(Unsigned w-Non Adjacent Form: 부호없는 w-비인접형) 키를 생성한다.
여기서, 'w-NAF 키'는 1) 키를 구성하는 계수들 중 0이 아닌 계수의 절대값이 2w-1(w는 2 이상의 자연수) 이하의 홀수이며, 2) 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 말한다.
0이 아닌 계수의 절대값이 2w-1 이하의 홀수이기에, w-NAF 키를 구성하는 계수들 중에는 음의 홀수가 있을 수 있다. 그리고, 연속된 w개의 계수들 중 0이 아닌 계수는 최대 하나이므로, w-NAF 키를 구성하는 연속된 w개의 계수들 중에서 0이 아닌 계수는 1개 또는 0개이다.
그리고, 부호없는 w-NAF 키는 1) 키를 구성하는 계수들 중 0이 아닌 계수는 2w(w는 2 이상의 자연수) 이하의 양의 홀수이며, 2) 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 말한다.
0이 아닌 계수의 절대값이 아닌 계수 자체의 값이 2w 이하의 양의 홀수라는 점에서, 부호없는 w-NAF 키는 w-NAF 키와 구별된다. 즉, 부호없는 w-NAF 키를 구성하는 계수 중에는 음의 홀수가 없다는 점에서, 계수 중에 음의 홀수가 있을 수 있는 w-NAF 키와 다르다.
지수승 연산부(200)는 키 생성부(100)가 생성한 부호없는 w-NAF 키를 지수로 하여 지수승 연산을 수행하고, 수행된 연산결과를 출력한다.
암호화부(300)는 지수승 연산부(200)에서 출력되는 지수승 연산결과에 대한 암호화를 수행한다.
*이하에서는, 1) 부호없는 w-NAF 키를 생성하는 과정, 2) 부호없는 w-NAF 키를 지수로 하여 지수승 연산을 수행하는 과정 및 3) 지수승 연산결과에 대한 암호화를 수행하는 과정에 대해, 도 2를 참조하여 상세히 설명한다. 도 2는 본 발명의 일 실시예에 따른 암호화 방법의 설명에 제공되는 흐름도이다.
*도 2에 도시된 바와 같이, 먼저 키 생성부(100)는 m-(w-1)*t 개의 그룹들 중 임의의 t개의 그룹을 선택한다(S110). 여기서, 1) m은 생성하고자 하는 부호없는 w-NAF 키를 구성하는 계수들의 개수이고, 2) w는 선택된 그룹을 구성하는 계수들의 개수로서 2 이상의 양의 정수이며, 3) t는 부호없는 w-NAF 키를 구성하는 계수들 중 0이 아닌 계수의 개수로서 양의 정수이다.
부연설명을 위해, m(부호없는 w-NAF 키를 구성하는 계수들의 개수)=20, w(선택된 그룹을 구성하는 계수의 개수)=4, t(부호없는 w-NAF 키를 구성하는 계수들 중 0이 아닌 계수의 개수)=3으로 상정한다.
이 경우, 키 생성부(100)는 m-(w-1)*t(=20-(4-1)*3=11)개의 그룹들(K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11) 중 임의의 t(=3)개의 그룹들을 선택하며, 이때, 선택된 그룹들은 K6, K8, K11인 경우를 가정한다.
이후, 키 생성부(100)는 선택된 t개의 그룹 각각을, 2w 이하의 양의 홀수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체한다(S120). S120단계를 통해 대체되는 스트링은 w-1개의 0 뒤에 2w 이하의 양의 홀수들 중 어느 하나가 나열됨으로서 형성되는 스트링이다.
그리고, 키 생성부(100)는 선택되지 않은 그룹을 0으로 대체한다(S130).
부연설명 하면, S120단계에서 키 생성부(100)는 선택된 t(=3)개의 그룹 각각을, w-1(=4-1=3)개의 0과, 2w 이하의 양의 홀수들(24 이하의 양의 홀수들:1,3,5,7,9,11,13,15) 중 어느 하나가 나열된 스트링으로 대체한다. 예를 들어, 키 생성부(100)는 K6은 0001, K8은 0005, K11은 0003으로 각각 대체할 수 있다.
이후, S130단계에서 키 생성부(100)는 선택되지 않은 그룹인 K1, K2, K3, K4, K5, K7, K9, K10을 0으로 각각 대체한다. S120단계와 S130단계에 의해 "K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11"는 "0 0 0 0 0 0001 0 0005 0 0 0003"의 계수열로 대체되게 된다.
키 생성부(100)는 S110단계 내지 S130단계를 통해 생성된 계수열을 부호없는 w-NAF 키로 출력한다(S140). 부연설명하면, 키 생성부(100)는 계수열 "00000000100005000003"를 부호없는 w-NAF 키로 출력하게 되는 것이다.
이후, 지수승 연산부(200)는 키 생성부(100)가 생성한 부호없는 w-NAF 키를 지수로 하여 지수승 연산을 수행하는데(S210 내지 S260), 이하에서 상세히 설명한다.
먼저, 지수승 연산부(200)는 부호없는 w-NAF 키를 구성하는 계수들 중 0이 아닌 최초의 계수가 지수이고 밑이 g인 값(g0 이 아닌 최초의 계수)을 지수승 값(y)으로 설정한다(S210). 부연하면, 부호없는 w-NAF 키가 "00000000100005000003"인 경우, S210단계에서 지수승 연산부(200)는 "00000000100005000003"에서 0이 아닌 최초의 계수(9번째 계수)인 "1"이 지수이고 밑이 g인 값인 "g1"을 지수승 값(y)으로 설정하게 된다.
그리고, 다음 계수가 0인 것으로 판단되면(S220-Y), 지수승 연산부(200)는 지수승 값을 제곱한 값(y2)을 새로운 지수승 값(y)으로 대체한다(S230).
부연하면, "00000000100005000003"에서 9번째 계수인 "1"의 다음 계수(10번째 계수)는 "0"이므로, 지수승 값(y=g1)은 새로운 지수승 값(y=g2=(g1)2)로 대체된다. 그리고, 다음 계수(11번째 계수) 역시 "0"이므로, 지수승 값(y=g2)은 새로운 지수승 값(y=g4=(g2)2)으로 대체되고, 다음 계수(12번째 계수) 역시 "0"이므로, 지수승 값(y=g4)은 새로운 지수승 값(y=g8=(g4)2)으로 대체되며, 다음 계수(13번째 계수) 역시 "0"이므로, 지수승 값(y=g8)은 새로운 지수승 값(y=g16=(g8)2)으로 대체된다.
한편, 다음 계수가 0이 아닌 것으로 판단되면(S220-N), 지수승 연산부(200)는 지수승 값을 제곱한 값(y2)과 다음 계수가 지수이고 밑이 g인 값(g다음계수)을 승산한 값(y2*g다음계수)을 새로운 지수승 값(y)으로 대체한다(S240).
부연하면, "00000000100005000003"에서 13번째 계수인 "0"의 다음 계수(14번째 계수)는 "5"이므로, 지수승 값(y=g16)은 새로운 지수승 값(y=g37=(g16)2*g5)로 대체된다.
지금까지 설명한 S220단계 내지 S240단계는 다음 계수가 존재하지 않을 때까지 반복된다(S250). 즉, S220단계 내지 S240단계는 부호없는 w-NAF 키의 마지막 계수에 대해 수행될 때까지 계속되게 된다.
다음 계수가 존재하지 않으면(즉, 지수승 연산이 완료되면)(S250-N), 지수승 연산부(200)는 지수승 값(y)을 지수승 연산결과로 출력한다(S260).
그러면, 암호화부(300)는 지수승 연산부(200)에서 출력되는 지수승 연산결과에 대한 암호화를 수행한다(S310).
지금까지, 도 1에 도시된 암호화 장치가, 1) 부호없는 w-NAF 키를 생성하는 과정, 2) 부호없는 w-NAF 키를 지수로 하여 지수승 연산을 수행하는 과정 및 3) 지수승 연산결과에 대한 암호화를 수행하는 과정에 대해, 도 2를 참조하여 상세히 설명하였다.
본 실시예의 S120단계는 선택된 t개의 그룹 각각을 w-1개의 0과 2w 이하의 양의 홀수들 중 어느 하나가 나열된 스트링으로 대체하는 것으로 구현하였다. 그러나, 이와 달리 최초의 스트링에 대해서는 w-1개의 0을 제외시키는 것도 가능하다. 부연하면, 최초의 스트링을 "0001"이 아닌 "1"로 구현하는 경우가 이에 해당한다.
뿐만 아니라, 본 실시예의 S140단계에서는 S110단계 내지 S130단계를 통해 생성된 계수열을 부호없는 w-NAF 키로 출력하는 것으로 구현하였다. 그러나, 이와 달리 S110단계 내지 S130단계를 통해 생성된 계수열에서 0이 아닌 최초의 계수의 이전 계수들을 제외한 계수열을 부호없는 w-NAF 키로 출력도록 구현하는 것도 가능함은 물론이다. 부연하면, S110단계 내지 S130단계를 통해 생성된 계수열인 "00000000100005000003"에서 0이 아닌 최초의 계수인 "1"(9번째 계수)의 이전 계수들인 "0"들(첫번째 계수 ~ 여덟번째 계수)을 제외한 계수열인 "100005000003"을 부호없는 w-NAF 키로 출력도록 구현하는 경우가 이에 해당한다.
이하에서는, 본 발명의 다른 실시예에 대해 도 3과 도4를 참조하여 상세히 설명한다. 도 3은 본 발명의 다른 실시예에 따른 암호화 장치의 블럭도이다. 본 실시예에 따른 암호화 장치는 암호화를 수행함에 있어 필요한 타원 곡선 상의 스칼라곱(Scalar Multiplication) 연산량을 줄일 수 있는 키를 생성하여 이용한다.
도 3에 도시된 바와 같이, 본 실시예 따른 암호화 장치는 키 생성부(400), 스칼라곱 연산부(500) 및 암호화부(600)를 구비한다.
키 생성부(400)는 'τ-adic w-NAF' 키를 생성한다. 'w-NAF'에 대해서는 전술한 바 있으며, 'τ'는 프로베니우스 자기준동형 사상(Frobenius endomorphism map)인 (x,y)→(xq,yq)를 의미한다. 그리고, 'τ-adic w-NAF'는 'τ'와 'w-NAF'를 결합한 형(form)이다.
따라서, 'τ-adic w-NAF' 키는, 1) 키를 구성하는 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 2) 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 말한다.
스칼라곱 연산부(500)는 키 생성부(400)가 생성한 τ-adic w-NAF 키에 기초하여 스칼라곱 연산을 수행하고, 수행된 연산결과를 출력한다.
암호화부(600)는 스칼라곱 연산부(500)에서 출력되는 스칼라곱 연산결과에 대한 암호화를 수행한다.
이하에서는, 1) τ-adic w-NAF 키를 생성하는 과정, 2) τ-adic w-NAF 키에 기초하여 스칼라곱 연산을 수행하는 과정 및 3) 스칼라곱 연산결과에 대한 암호화를 수행하는 과정에 대해, 도 4를 참조하여 상세히 설명한다. 도 4는 본 발명의 다른 실시예에 따른 암호화 방법의 설명에 제공되는 흐름도이다.
도 4에 도시된 바와 같이, 먼저 키 생성부(400)는 m-(w-1)*t 개의 그룹들 중 임의의 t개의 그룹을 선택한다(S410). 여기서, 1) m은 생성하고자 하는 τ-adic w-NAF 키를 구성하는 계수들의 개수와 관련된 정수이고, 2) w는 선택된 그룹을 구성하는 계수의 개수로서 2 이상의 양의 정수이며, 3) t는 τ-adic w-NAF 키를 구성하는 계수들 중 0이 아닌 계수의 개수로서 양의 정수이다.
이후, 키 생성부(400)는 선택된 t개의 그룹 각각을, 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체한다(S420). S420단계를 통해 대체되는 스트링은 w-1개의 0 뒤에 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나가 나열됨으로서 형성되는 스트링이다.
그리고, 키 생성부(400)는 선택되지 않은 그룹을 0으로 대체하고(S430), S410단계 내지 S430단계를 통해 생성된 계수열을 τ-adic w-NAF 키로 출력한다(S440).
이후, 스칼라곱 연산부(500)는 키 생성부(400)가 생성한 τ-adic w-NAF 키에 기초하여 스칼라곱 연산을 수행하는데(S510 내지 S560), 이하에서 상세히 설명한다.
먼저, 스칼라곱 연산부(500)는 τ-adic w-NAF 키를 구성하는 계수들 중 0이 아닌 최초의 계수를 검색하고, [sign(0이 아닌 최초의 계수)]*|0이 아닌 최초의 계수|*P를 중간 결과값(Q)로 설정한다(S510).
여기서, sign(x)는 x의 부호를 나타내는 함수로서, 1) x가 양수이면 sign(x)=1이고, 2) x가 음수이면 sign(x)=-1이고, 3) x가 0이면 sign(x)=0이다. 따라서, 1) 0이 아닌 최초의 계수가 양수이면 sign(0이 아닌 최초의 계수)=1이고, 2) 0이 아닌 최초의 계수가 음수이면 sign(0이 아닌 최초의 계수)=-1이 된다.
이후, 다음 계수가 0인 것으로 판단되면(S520-Y), 스칼라곱 연산부(500)는 중간 결과값(Q)에 대해 프로베니우스 자기준동형 사상을 수행한 값(τQ)을 새로운 중간 결과값(Q)으로 대체한다(S530).
한편, 다음 계수가 0이 아닌 것으로 판단되면(S520-N), 스칼라곱 연산부(500)는 중간 결과값(Q)에 대해 프로베니우스 자기준동형 사상을 수행한 값(τQ)과 [sign(다음 계수)]*|다음 계수|*P의 덧셈값(τQ + [sign(다음 계수)]*|다음 계수|*P)을 새로운 중간 결과값(Q)으로 대체한다(S540).
지금까지 설명한 S520단계 내지 S540단계는 다음 계수가 존재하지 않을 때까지 반복된다(S550). 즉, S520단계 내지 S540단계는 τ-adic w-NAF 키의 마지막 계수에 대해 수행될 때까지 계속되게 된다.
다음 계수가 존재하지 않으면(즉, 스칼라곱 연산이 완료되면)(S550-N), 스칼라곱 연산부(500)는 중간 결과값(Q)을 스칼라곱 연산결과로 출력한다(S560).
그러면, 암호화부(600)는 스칼라곱 연산부(500)에서 출력되는 스칼라곱 연산결과에 대한 암호화를 수행한다(S610).
지금까지, 도 3에 도시된 암호화 장치가, 1) τ-adic w-NAF 키를 생성하는 과정, 2) τ-adic w-NAF 키에 기초하여 스칼라곱 연산을 수행하는 과정 및 3) 스칼라곱 연산결과에 대한 암호화를 수행하는 과정에 대해, 도 4를 참조하여 상세히 설명하였다.
본 실시예의 S420단계는 선택된 t개의 그룹 각각을 w-1개의 0과 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나가 나열된 스트링으로 대체하는 것으로 구현하였다. 그러나, 이와 달리 최초의 스트링에 대해서는 w-1개의 0을 제외시키는 것도 가능하다.
뿐만 아니라, 본 실시예의 S440단계에서는 S410단계 내지 S430단계를 통해 생성된 계수열을 τ-adic w-NAF 키로 출력하는 것으로 구현하였다. 그러나, 이와 달리 S410단계 내지 S430단계를 통해 생성된 계수열에서 0이 아닌 최초의 계수의 이전 계수들을 제외한 계수열을 τ-adic w-NAF 키로 출력도록 구현하는 것도 가능함은 물론이다.
한편, 지금까지 설명한 1) 부호없는 w-NAF 나 τ-adic w-NAF 키와 같은 성긴 w-NAF 키를 생성하는 방법, 2) 성긴 w-NAF 키를 지수로 하여 지수승 연산이나 스칼라곱 연산을 수행하는 방법 및 3) 연산결과에 대한 암호화를 수행하는 방법은 컴퓨터 프로그램으로 구현할 수도 있으며, 당업자라면 위에 설명된 내용을 기초로 용이하게 구현할 수 있을 것이기에, 이에 대한 자세한 설명은 생략하기로 한다.
본 발명은 키 생성, 지수승 연산, 스칼라곱 연산 또는 암호화를 수행할 수 있는 전자기기에 적용가능하며, 이 전자기기에는 연산속도가 낮은 모바일 기기들도 포함될 수 있음은 물론이다.
이상 설명한 바와 같이, 본 발명에 따르면, 0 아닌 계수의 개수가 작은 '부호없는 w-NAF 키' 나 'τ-adic w-NAF 키'와 같은 성긴 w-NAF 키를 이용한 지수승 연산이나 스칼라곱 연산을 통해 암호화를 수행할 수 있게 된다. 이에 따라, 지수승 연산량이나 스칼라곱 연산량을 줄일 수 있게 되어 궁극적으로는 암호화 속도를 높일 수 있게 된다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 키 생성부 200 : 지수승 연산부
300 : 암호화부 400 : 키 생성부
500 : 스칼라곱 연산부 600 : 암호화부
300 : 암호화부 400 : 키 생성부
500 : 스칼라곱 연산부 600 : 암호화부
Claims (10)
- 암호화 장치의 키 생성 방법에 있어서,
a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 계수열을 생성하는 단계; 및
b) 생성된 상기 계수열을 키로 출력하는 단계;를 포함하되,
상기 0이 아닌 계수의 계수 자체의 값은 음의 홀수가 없는 양의 홀수인 것을 특징으로 하는 키 생성방법. - 암호화 장치의 키 생성 방법에 있어서,
a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 계수열을 생성하는 단계; 및
b) 생성된 상기 계수열을 키로 출력하는 단계;를 포함하되,
상기 0이 아닌 계수의 계수 자체의 값은 음의 홀수가 없는 양의 홀수이고,
a1) m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 단계;
a2) 선택된 상기 t개의 그룹 각각을, 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및
a3) 선택되지 않은 그룹을 0으로 대체하여 상기 계수열을 생성하는 단계;를 포함하며,
상기 m 및 상기 t는 양의 정수인 것을 특징으로 하는 키 생성방법. - 암호화 장치의 키 생성 방법에 있어서,
a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 계수열을 생성하는 단계; 및
b) 생성된 상기 계수열을 키로 출력하는 단계;를 포함하되,
상기 0이 아닌 계수의 계수 자체의 값은 음의 홀수가 없는 양의 홀수이며,
스트링을 구성하는 상기 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들은, w-1개의 0 뒤에 나열되는 것을 특징으로 하는 키 생성방법. - 제 1항에 있어서,
상기 b) 단계는,
생성된 상기 계수열에서 0이 아닌 최초의 계수의 이전 계수들을 제외한 계수열을 상기 키로 출력하는 것을 특징으로 하는 키 생성방법. - 암호화 장치의 스칼라곱 연산방법에 있어서,
a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 생성하는 단계; 및
b) 생성된 상기 키에 기초하여 스칼라곱 연산을 수행하는 단계;를 포함하되,
상기 0이 아닌 계수의 계수 자체의 값은 음의 홀수가 없는 양의 홀수인 것을 특징으로 하는 스칼라곱 연산방법. - 암호화 장치의 스칼라곱 연산방법에 있어서,
a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 생성하는 단계; 및
b) 생성된 상기 키에 기초하여 스칼라곱 연산을 수행하는 단계;를 포함하되,
상기 0이 아닌 계수의 계수 자체의 값은 음의 홀수가 없는 양의 홀수이고,
a1) m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 단계;
a2) 선택된 상기 t개의 그룹 각각을, 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및
a3) 선택되지 않은 그룹을 0으로 대체하여 상기 키를 생성하는 단계;를 포함하며,
상기 m 및 상기 t는 양의 정수인 것을 특징으로 하는 스칼라곱 연산방법. - 암호화 장치의 암호화 방법에 있어서,
a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 생성하는 단계;
b) 생성된 상기 키에 기초하여 스칼라곱 연산을 수행하는 단계; 및
c) 수행된 상기 스칼라곱 연산 결과에 대한 암호화를 수행하는 단계;를 포함하되,
상기 0이 아닌 계수의 계수 자체의 값은 음의 홀수가 없는 양의 홀수인 것을 특징으로 하는 암호화 방법. - 암호화 장치의 암호화 방법에 있어서,
a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 생성하는 단계;
b) 생성된 상기 키에 기초하여 스칼라곱 연산을 수행하는 단계; 및
c) 수행된 상기 스칼라곱 연산 결과에 대한 암호화를 수행하는 단계;를 포함하되,
상기 0이 아닌 계수의 계수 자체의 값은 음의 홀수가 없는 양의 홀수이고,
a1) m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 단계;
a2) 선택된 상기 t개의 그룹 각각을, 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및
a3) 선택되지 않은 그룹을 0으로 대체하여 상기 키를 생성하는 단계;를 포함하며,
상기 m 및 상기 t는 양의 정수인 것을 특징으로 하는 암호화 방법. - 암호화 장치의 키 생성 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 있어서,
상기 키 생성 방법은,
a) 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 계수열을 생성하는 단계; 및
b) 생성된 상기 계수열을 키로 출력하는 단계;를 수행하되,
상기 0이 아닌 계수의 계수 자체의 값은 음의 홀수가 없는 양의 홀수가 되도록 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체. - 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 생성하는 키 생성부;
생성된 상기 키에 기초하여 스칼라곱 연산을 수행하는 스칼라곱 연산부; 및
수행된 상기 스칼라곱 연산 결과에 대한 암호화를 수행하는 암호화부;를 포함하되,
상기 0이 아닌 계수의 계수 자체의 값은 음의 홀수가 없는 양의 홀수가 되는 것을 특징으로 하는 암호화 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120084577A KR101360916B1 (ko) | 2012-08-01 | 2012-08-01 | 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및 암호화 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120084577A KR101360916B1 (ko) | 2012-08-01 | 2012-08-01 | 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및 암호화 방법 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060120827A Division KR101309797B1 (ko) | 2006-12-01 | 2006-12-01 | 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및암호화 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120101313A KR20120101313A (ko) | 2012-09-13 |
KR101360916B1 true KR101360916B1 (ko) | 2014-02-11 |
Family
ID=47110512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120084577A KR101360916B1 (ko) | 2012-08-01 | 2012-08-01 | 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및 암호화 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101360916B1 (ko) |
-
2012
- 2012-08-01 KR KR1020120084577A patent/KR101360916B1/ko active IP Right Grant
Non-Patent Citations (2)
Title |
---|
"On Redundant tau-Adic Expansions and Non-adjacent Digit Sets," Selected Areas in Cryptography, Lecture Notes in Computer Science Volume 4356, , 2007, pp 285-301. (1997년) * |
"On Redundant τ-Adic Expansions and Non-adjacent Digit Sets," Selected Areas in Cryptography, Lecture Notes in Computer Science Volume 4356, , 2007, pp 285-301. (1997년) |
Also Published As
Publication number | Publication date |
---|---|
KR20120101313A (ko) | 2012-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Schinianakis et al. | An RNS implementation of an $ F_ {p} $ elliptic curve point multiplier | |
KR20080084500A (ko) | 집합 검증 장치 및 그 방법 | |
EP3035587B1 (en) | Hypersphere-based multivariable public key signature/verification system and method | |
JP2012014203A5 (ko) | ||
Dong et al. | Ec-ecc: Accelerating elliptic curve cryptography for edge computing on embedded gpu tx2 | |
CN101371285A (zh) | 加密处理装置、加密处理方法及计算机程序 | |
KR101309797B1 (ko) | 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및암호화 방법 | |
CN114465728B (zh) | 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 | |
Gonda et al. | Improvements of addition algorithm on genus 3 hyperelliptic curves and their implementation | |
Vijayakumar et al. | Comparative study of hyperelliptic curve cryptosystem over prime field and its survey | |
Deng et al. | Less is More: Hop-Wise Graph Attention for Scalable and Generalizable Learning on Circuits | |
CN102291240B (zh) | Sm2签名的认证方法及系统 | |
CN110113169B (zh) | 基于rsa的协同数字签名方法、装置及电子设备 | |
CN104506316A (zh) | 一种基于sm2基点的点乘运算方法 | |
KR101360916B1 (ko) | 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및 암호화 방법 | |
KR101418686B1 (ko) | 유한체에서 타입 4 가우시안 정규기저를 이용한 이차 미만의 공간 복잡도를 갖는 병렬 곱셈 연산방법 및 그 연산장치 | |
CN114650135B (zh) | 一种软硬件协同的sm2椭圆曲线密码算法实现方法 | |
CN102932147A (zh) | 基于隐马尔科夫模型的椭圆曲线密码计时攻击方法 | |
Lee et al. | Efficient $ M $-ary exponentiation over $ GF (2^{m}) $ using subquadratic KA-based three-operand Montgomery multiplier | |
Bernstein et al. | Faster elliptic-curve discrete logarithms on FPGAs | |
CN114868175A (zh) | 最终幂计算装置、配对运算装置、加密处理装置、最终幂计算方法和最终幂计算程序 | |
Zhao et al. | Exploring the speed limit of SM2 | |
Hossain et al. | Efficient FPGA Implementation of unified point operation for twisted Edward curve cryptography | |
Eghdamian et al. | An Improved Signed Digit Representation of Integers | |
Youssef et al. | A low-resource 32-bit datapath ECDSA design for embedded applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170117 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180117 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20200120 Year of fee payment: 7 |