KR101817879B1 - Device and method for high-speed non-adjacent form conversion - Google Patents
Device and method for high-speed non-adjacent form conversion Download PDFInfo
- Publication number
- KR101817879B1 KR101817879B1 KR1020160154192A KR20160154192A KR101817879B1 KR 101817879 B1 KR101817879 B1 KR 101817879B1 KR 1020160154192 A KR1020160154192 A KR 1020160154192A KR 20160154192 A KR20160154192 A KR 20160154192A KR 101817879 B1 KR101817879 B1 KR 101817879B1
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- window
- value
- naf
- public key
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
- H03M7/04—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being two
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5332—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
본 발명은 고속의 NAF 변환 장치 및 고속의 NAF 변환 방법에 관한 것이다. 본 발명에 따른 고속의 NAF 변환 장치는, 윈도우의 값을 설정하는 설정부 및 공개키의 LSB(Least Significant Bit)를 기준으로, 상기 설정된 값을, 길이로 갖는 윈도우를, 상기 공개키의 적어도 일부에 제1 세팅하고, 상기 공개키 내 암호화 대상이 되는 타깃 비트가, 상기 윈도우의 밖에 있는 경우, 상기 타깃 비트가 포함되도록 상기 윈도우를, ω-비트 오른쪽 이동(ω-bit right shift)(상기 ω은 자연수)시켜, 상기 윈도우를 제2 세팅하는 처리부를 포함할 수 있다.The present invention relates to a high-speed NAF conversion apparatus and a high-speed NAF conversion method. The high-speed NAF conversion apparatus according to the present invention is characterized in that a window having the set value as a length is divided into at least a part of the public key by a setting unit for setting a window value and a LSB (Least Significant Bit) Bit right shift (when the target bit to be encrypted in the public key is outside the window, the target bit is shifted to a right-shifted direction And a processing unit for setting the window to the second setting.
Description
본 발명은 고속의 NAF 변환 장치 및 고속의 NAF 변환 방법에 관한 것이다.The present invention relates to a high-speed NAF conversion apparatus and a high-speed NAF conversion method.
종래 기술에서의 비밀키 암호 방식은 하나의 암호화키를 사용하여 암호화 및 복호화 함으로써, 암호화키에 대한 유출 가능성이 매우 높다. 반면 공개키 암호 방식은 공개키와 비밀키를 사용하여 암호화함으로써, 키 교환에 대한 안정성을 보장하고 높은 보안 강도를 제공한다. 종래 기술에서의 대표적인 공개키 암호 방식은 RSA(Rivest, Shamir, Adleman)와 ECC(Elliptic Curve Cryptography)가 있다.The secret key cryptosystem in the prior art is highly likely to leak out to the encryption key by encrypting and decrypting using one encryption key. On the other hand, the public key cryptosystem uses a public key and a secret key to encrypt, thereby assuring stability of the key exchange and providing high security strength. Typical public key cryptosystems in the prior art are RSA (Rivest, Shamir, Adleman) and ECC (Elliptic Curve Cryptography).
먼저, RSA는 소인수분해의 어려움에 기초한 알고리즘으로, 두 개의 소수들의 곱과 추가 연산을 통해 공개키 및 비밀키를 구할 수 있다. 즉, RSA는 핵심 기능으로 암호화, 복호화 과정에서 모듈러 멱승 연산을 사용한다. 예를 들면, RSA의 경우에서, 는 소수이고, 는 이며, 이다(비밀키=, 공개키=). 만일, 공개키가 {7, 187}이고, 비밀키가 {23, 17, 11}일 때 메시지 이라면, 암호화된 메시지 는 가 되고, 를 복호화하면 이므로 처음 메시지 가 구해질 수 있다. 이 때, 과 을 구하고 을 계산하는 것은 아주 많은 연산을 요구할 수 있다.First, RSA is an algorithm based on the difficulty of subdivision decomposition. The public key and secret key can be obtained by multiplying two prime numbers and performing additional operations. In other words, RSA uses modular exponentiation in encryption and decryption as a core function. For example, in the case of RSA, Is a prime number, The Lt; (Secret key = , Public key = ). If the public key is {7, 187} and the secret key is {23, 17, 11} , The encrypted message The Lt; / RTI & Decrypts First message Can be obtained. At this time, and And Can require a great deal of computation.
해당 연산은 RSA의 속도에 큰 영향을 미치기 때문에 모듈러 곱셈 최적화, 모듈러 곱셈 횟수 최적화에 대한 다양한 연구가 이루어지고 있다. Since the computation has a great influence on the speed of the RSA, various studies have been conducted on the optimization of the modular multiplication and the optimization of the modular multiplication frequency.
다음으로, ECC는 타원곡선 이론에 기초한 공개키 암호 방식으로, 유한체 상에 정의된 타원곡선 에서의 이산로그문제에 기초한다. ECC는 핵심 기능으로 유한체 상에 정의된 타원곡선 위의 점 를 양의 정수 만큼 더한 를 계산하는 연산인 스칼라 곱셈을 사용한다. 스칼라 곱셈은 타원곡선 상의 점에 대한 연산인 포인트 더블링(point doubling) 연산과 포인트 에디션(point addition) 연산으로 구성되어 있다.Next, ECC is a public key cryptosystem based on elliptic curve theory, Elliptic curve defined on Based on the discrete log problem in ECC is a core function, Elliptic curve defined on Above point Positive integer As much as Which is a computation for computing the scalar multiplication. Scalar multiplication consists of a point doubling operation and a point addition operation, which is an operation on a point on an elliptic curve.
이때, ECC의 속도는 스칼라 곱셈 연산 속도에 큰 영향을 받을 수 있다. 그래서, ECC의 속도를 향상시키기 위해서, 스칼라 곱셈 연산 속도를 향상시키는 연구가 요구된다.At this time, the speed of the ECC may be greatly affected by the scalar multiplication operation speed. Therefore, in order to improve the speed of the ECC, research for improving the scalar multiplication operation speed is required.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, RSA의 모듈러 멱승 연산에서의 모듈러 곱셈 횟수와 ECC의 스칼라 곱셈 연산에서의 포인트 에디션 횟수를 감소시키도록 NAF(Non-Adgacetnt Form) 변환 과정의 속도를 향상시킬 수 있는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been conceived to solve the above problems, and it is an object of the present invention to provide a non-additive form (NAF) conversion process for reducing the number of modular multiplications in the modular exponentiation operation of RSA and the number of point editions in scalar multiplication operation of ECC So that the speed can be improved.
상기의 목적을 이루기 위한 고속의 NAF 변환 장치는, 윈도우의 값을 설정하는 설정부 및 공개키의 LSB(Least Significant Bit)를 기준으로, 상기 설정된 값을, 길이로 갖는 윈도우를, 상기 공개키의 적어도 일부에 제1 세팅하고, 상기 공개키 내 암호화 대상이 되는 타깃 비트가, 상기 윈도우의 밖에 있는 경우, 상기 타깃 비트가 포함되도록 상기 윈도우를, ω-비트 오른쪽 이동(ω-bit right shift)(상기 ω은 자연수)시켜, 상기 윈도우를 제2 세팅하는 처리부를 포함할 수 있다.In order to achieve the above-mentioned object, a high-speed NAF conversion apparatus includes a setting unit for setting a value of a window and a window having the length of the set value as a length, based on a LSB (Least Significant Bit) of a public key, Bit right shifting (? -Bit right shift) so that the target bit is included if the target bit to be encrypted in the public key is outside the window And the processing unit for setting the window to the second setting.
또한, 상기 목적을 달성하기 위한 기술적 방법으로서, 고속의 NAF 변환 방법은, 윈도우의 값을 설정하는 단계, 공개키의 LSB(Least Significant Bit)를 기준으로, 상기 설정된 값을, 길이로 갖는 윈도우를, 상기 공개키의 적어도 일부에 제1 세팅하는 단계, 및 상기 공개키 내 암호화 대상이 되는 타깃 비트가, 상기 윈도우의 밖에 있는 경우, 상기 타깃 비트가 포함되도록 상기 윈도우를, ω-비트 오른쪽 이동(ω-bit right shift)(상기 ω은 자연수)시켜, 상기 윈도우를 제2 세팅하는 단계를 포함하여 구성할 수 있다.According to another aspect of the present invention, there is provided a high-speed NAF conversion method comprising: setting a value of a window; setting a window having the set value as a length based on an LSB (Least Significant Bit) Bit key to the left of the window so that the target bit is included in the target key when the target bit to be encrypted in the public key is outside the window, and a step of setting the window to the second state by setting the ω-bit right shift (ω is a natural number).
본 발명의 일실시예에 따르면, RSA의 모듈러 멱승 연산에서의 모듈러 곱셈 횟수와 ECC의 스칼라 곱셈 연산에서의 포인트 에디션 횟수를 감소시키도록 NAF 변환 과정의 속도를 향상시킬 수 있다.According to an embodiment of the present invention, the speed of the NAF conversion process can be improved so as to reduce the number of modular multiplications in the modular exponentiation operation of the RSA and the number of point editions in the scalar multiplication operation of the ECC.
또한, 본 발명의 일실시예에 따르면, 번의 비교 연산 과정을 수행함으로써, 번의 비트 비교 연산 과정을 수행하는 알고리즘의 연산 처리 속도를 최적화 할 수 있다(은 양의 정수 의 이진수 변환에 따른 비트 수, 는 윈도우 크기).Further, according to an embodiment of the present invention, By performing the comparison operation of the number of times, Bit comparison operation It is possible to optimize the processing speed of the algorithm ( Is a positive integer The number of bits according to the binary conversion, Window size).
또한, 본 발명의 일실시예에 따르면, NAF 변환 시, (은 양의 정수 의 이진수 변환에 따른 비트 수)이 증가하거나 홀수인 경우를 발생시키는 패턴이 많이 존재하는 경우에 NAF 변환 시간을 단축할 수 있다.Further, according to an embodiment of the present invention, in NAF conversion, ( Is a positive integer The number of bits in accordance with the binary conversion of the number of bits) increases or the number of patterns that generate an odd number is large, the NAF conversion time can be shortened.
도 1a 내지 도 1f는 본 발명의 일실시예에 따른 RSA 또는 ECC에서 사용하는 알고리즘을 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 따른 고속의 NAF 변환 장치를 나타내는 블록도이다.
도 3은 본 발명의 일실시예에 따른 고속의 NAF 변환 장치를 이용한 구현예를 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 고속의 NAF 변환 장치를 이용한 구현예를 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 고속의 NAF 변환 장치를 구현하기 위한 알고리즘을 도시한 도면이다.
도 6 내지 도 11은 본 발명의 일실시예에 따른 고속의 NAF 변환 장치를 구현하기 위한 알고리즘의 성능 평가를 설명하기 위한 도면이다.
도 12는 본 발명의 일실시예에 따른 고속의 NAF 변환 방법을 구체적으로 도시한 작업 흐름도이다.FIGS. 1A to 1F are diagrams for explaining an algorithm used in RSA or ECC according to an embodiment of the present invention.
2 is a block diagram showing a high-speed NAF conversion apparatus according to an embodiment of the present invention.
3 is a view for explaining an implementation example using a high-speed NAF conversion apparatus according to an embodiment of the present invention.
4 is a view for explaining an implementation example using a high-speed NAF conversion apparatus according to an embodiment of the present invention.
5 is a diagram illustrating an algorithm for implementing a high-speed NAF conversion apparatus according to an embodiment of the present invention.
FIGS. 6 to 11 are diagrams for explaining performance evaluation of an algorithm for implementing a high-speed NAF conversion apparatus according to an embodiment of the present invention.
12 is a workflow diagram specifically illustrating a high-speed NAF conversion method according to an embodiment of the present invention.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to or limited by the embodiments. Like reference symbols in the drawings denote like elements.
본 명세서에서 설명되는 고속의 NAF 변환 장치 및 고속의 NAF 변환 방법은 RSA의 모듈러 멱승 연산과 ECC의 스칼라 곱셈 연산 등에서 필수적으로 사용하는 양의 정수 에 대한 NAF() 변환 과정의 속도를 향상시킬 수 있다.The high-speed NAF conversion apparatus and the high-speed NAF conversion method described in this specification are based on a positive integer which is essentially used in the modular exponentiation operation of RSA and the scalar multiplication operation of ECC. NAF for ) The speed of the conversion process can be improved.
명세서 상에서 설명의 이해를 돕기 위하여, 도 1a 내지 도 1f를 참조하여 RSA 또는 ECC에서 사용하는 알고리즘에 대하여 설명하고자 한다.To facilitate understanding of the description on the specification, an algorithm used in RSA or ECC will be described with reference to FIGS. 1A through 1F.
도 1a 내지 도 1f는 본 발명의 일실시예에 따른 RSA 또는 ECC에서 사용하는 알고리즘을 설명하기 위한 도면이다.FIGS. 1A to 1F are diagrams for explaining an algorithm used in RSA or ECC according to an embodiment of the present invention.
도 1a는 스퀘어 앤드 멀티플라이(Square and Multiply) 기법을 설명하기 위한 도면이다. 도 1a의 (가)는 스퀘어 앤드 멀티플라이 기법을 위한 제1 알고리즘으로서, RSA의 모듈러 멱승 연산에서 연산량을 줄이기 위해서 사용되는 알고리즘일 수 있다. 형태의 계산에 있어서, 종래에는 를 십진수로 표현하였지만, 도 1a의 (가)에 도시된 바와 같은, 제1 알고리즘은 형태의 이진수로 표현할 수 있다. 제1 알고리즘의 항목(1)에서, 는 0으로 초기화되어 알고리즘이 종료될 때는 값이 될 수 있으며, 는 값을 저장하는 변수일 수 있다. 항목(2)에서 확인할 수 있듯이, 스퀘어 앤드 멀티플라이 기법은 를 부터 0까지 감소시키며 의 각 비트(bit)들을 왼쪽-오른쪽(Left-to-Right) 방식으로 1-비트씩 이동(Shift)하며 확인할 수 있다. 이 때, 스퀘어 앤드 멀티플라이 기법은 연산을 수행하면서(항목(2.1)), 의 번째 비트인 가 1인 경우에는 추가적으로 과 연산을 수행할 수 있다(항목(2.2)). 따라서, 스퀘어 앤드 멀티플라이 기법은 에서 1의 개수를 줄인다면 모듈러 곱셈 연산 횟수를 줄일 수 있다. 도 1a의 (나)는 스퀘어 앤드 멀티플라이 기법을 이용한 연산 예를 나타내는 도면이다.1A is a diagram for explaining a Square and Multiply technique. 1a is a first algorithm for the square-and-multiply scheme, which may be an algorithm used to reduce the amount of computation in modular exponentiation of RSA. In the calculation of the form, conventionally Is represented by a decimal number, but the first algorithm, as shown in Fig. 1A (a) It can be expressed as a binary number of the form. In item (1) of the first algorithm, Is initialized to 0 and the algorithm is terminated Value, The It can be a variable that stores a value. As can be seen in item (2), the square-and- To To 0 Bit by 1 bit in the left-to-right manner. At this time, the square-and- While performing the operation (item (2.1)), of
도 1b는 바이너리(Binary)기법을 설명하기 위한 도면이다. 바이너리 기법은 ECC의 를 계산하는 스칼라 곱셈에서 가장 일반적으로 사용될 수 있다. 도 1b에 도시된, 바이너리 기법을 위한 제2 알고리즘의 항목(1)에 나타낸 바와 같이, 바이너리 기법은 의 각 비트들을 왼쪽-오른쪽(Left-to-Right) 또는 오른쪽-왼쪽(Right-to-Left) 방식으로 1-비트씩 이동하며 확인할 수 있다. 이 때, 바이너리 기법은 항목(2.1)과 같이 각 비트마다 한 번의 포인트 더블링(point doubling) 연산을 수행할 수 있다. 비트가 0이 아닌 경우, 바이너리 기법은 항목(2.2)와 같이 추가적인 포인트 에디션(point addition) 연산을 수행하도록 0이 아닌 비트의 수만큼 포인트 에디션 연산을 수행할 수 있다. 따라서, 바이너리 기법은 에서 1의 개수를 줄인다면 스칼라 곱셈 연산 속도를 향상시킬 수 있다. 1B is a diagram for explaining a binary technique. Binary technique is ECC Can be most commonly used in scalar multiplication. As shown in item (1) of the second algorithm for the binary technique shown in FIG. 1B, the binary technique Bit by bit in the left-to-right or right-to-left manner. At this time, the binary technique can perform a point doubling operation for each bit as shown in the item (2.1). If the bit is non-zero, the binary scheme may perform a point edition operation on the number of non-zero bits to perform an additional point addition operation, as in item (2.2). Thus, the binary technique The number of scalar multiplication operations can be improved by decreasing the number of 1's.
바이너리 기법의 예시를 들어 설명하면, 일 때, 7P = 2(2(P)+P)+P 일 수 있고, 일 때, 6P = 2(2(P)+P) 일 수 있다.To illustrate an example of a binary technique, (2 (P) + P) + P, < / RTI > 6P = 2 (2 (P) + P).
도 1c는 NAF 기법을 설명하기 위한 도면이다. RSA의 모듈러 멱승 연산을 최적화하기 위한 스퀘어 앤드 멀티플라이 기법과, ECC의 스칼라 곱셈에 사용되는 바이너리 기법은 에서 0이 아닌 비트의 수가 많을수록 모듈러 곱셈 연산, 포인트 에디션 연산 횟수가 증가할 수 있다. 알고리즘은 의 각 비트에 부호가 있는 숫자를 사용할 수 있다. 알고리즘은 0이 아닌 숫자가 연속된 부분을 제거하여 보다 0이 아닌 숫자의 평균 밀도를 감소시킴으로써, RSA의 모듈러 멱승 연산에서는 모듈러 곱셈의 횟수를 줄이기 위해서 사용될 수 있다. 또한, 알고리즘은 ECC의 스칼라 곱셈에서는 포인트 에디션 연산의 수를 줄이기 위해서 사용될 수 있다. 일반적으로 길이가 인 를 와 같이 표현할 수 있다. 이 때, 일 수 있다.1C is a diagram for explaining the NAF technique. The square-and-multiply technique for optimizing modular exponentiation of RSA and the binary technique for scalar multiplication of ECC The number of modular multiplication operations and the number of point edition operations may increase as the number of non-zero bits increases. The algorithm A number with a sign can be used for each bit of. The algorithm removes consecutive non-zero digits By reducing the average density of nonzero numbers, RSA modular exponentiation can be used to reduce the number of modular multiplications. Also, The algorithm can be used to reduce the number of point edition operations in ECC scalar multiplication. In general, sign To As shown in Fig. At this time, Lt; / RTI >
도 1c의 (가)에 도시된 바와 같이, 제3 알고리즘은 을 로 변환하는 알고리즘일 수 있다. 제3 알고리즘은 양의 정수 와 윈도우 크기(window size)인 를 입력 받아 의 이진 표현인 에서 0이 아닌 정수인 비트 수가 줄어들도록 변환한 를 반환할 수 있다. NAF 기법은 제3 알고리즘의 항목(2)와 같이, 조건을 만족하면 와일(While)문을 반복하여 수행할 수 있고, 가 홀수일 때(즉, LSB(Least Significant Bit)가 1일 때) 의 값은 가 되도록 할 수 있다(항목(2.1). 이 때, NAF 기법은 앞서 구한 가 보다 크거나 같으면 값은 가 되도록 하고, 그렇지 않을 경우에는 앞에서 구한 값을 사용할 수 있다(항목(2.1.1). 또한, NAF 기법은 에 를 빼줄 수 있다(항목(2.1.2)). 항목(2.2)에 나타낸 바와 같이, 가 짝수일 경우(즉, LSB가 0일 경우) 값은 0이 될 수 있다. 항목(2.3)에서, NAF 기법은 에서 는 값을 2로 나누는 수행을 할 수 있고, 이 과정이 오른쪽으로 1-비트 이동하는 동작일 수 있다. 예를 들어, 십진수 7을 이진수로 나타내면 이고, 7을 2로 나누면 실제로는 3.5이지만, 제3 알고리즘에서 변수 가 정수(Integer)로 선언되어있기 때문에 값은 소수점을 제외한 3이 되고, 이를 이진수로 나타내면 이 될 수 있다. 따라서, NAF 기법은 가장 오른쪽 비트를 없애고 모든 비트가 오른쪽으로 한 칸씩 이동하도록 할 수 있다. NAF 기법은 의 길이가 이므로, 번의 비트 비교 연산 과정을 수행할 수 있다. 도 1c의 (나)는 NAF 기법을 이용한 연산 예를 나타내는 도면이다.As shown in (a) of Figure 1c, the third algorithm of To convert Algorithm. The third algorithm is a positive integer And the window size Take input Binary representation of The number of bits that are non-zero integers in . ≪ / RTI > The NAF scheme, like item (2) of the third algorithm, If the condition is satisfied, it is possible to perform the while statement repeatedly, (That is, when the LSB (Least Significant Bit) is 1) The value of (Section 2.1). At this time, the NAF technique is a end If greater than or equal to The value is (See Section 2.1.1). In addition, the NAF technique may be used on Can be subtracted (item 2.1.2). As shown in item (2.2) Is an even number (i.e., when the LSB is 0) The value can be zero. In item (2.3), the NAF technique in The You can do this by dividing the value by 2, and this can be a one-bit move to the right. For example, if you represent a
도 1d는 레코딩 바이너리(Recording Binary) 기법을 설명하기 위한 도면이다. 레코딩 바이너리 기법은 알고리즘을 사용하여 모듈러 멱승 연산을 수행하는 알고리즘일 수 있다. 항목(2.3)과 같이, 가 -1인 경우를 처리하는 과정을 추가한다는 점과 를 사용한다는 점을 제외하면 스퀘어 앤드 멀티플라이 기법과 동일할 수 있다. 제4 알고리즘은 에서 의 곱셈에 대한 역원인 가 미리 계산될 수 있다. 레코딩 바이너리 기법의 상세 동작 과정은 도 1d의 (가)에서의 제4 알고리즘에 나타낸 바와 같고, 도 1d의 (나)는 레코딩 바이너리 기법을 이용한 연산 예를 나타내는 도면이다. FIG. 1D is a diagram for explaining a recording binary technique. The recording binary technique Algorithm to perform a modular exponentiation operation. As in item 2.3, The process of processing the case of -1 is added Can be the same as the square-and-multiple technique. The fourth algorithm in The reverse cause of the multiplication of Can be calculated in advance. The detailed operation procedure of the recording binary technique is as shown in the fourth algorithm in FIG. 1D, and FIG. 1D is a diagram showing an operation example using the recording binary technique.
도 1e는 윈도우 NAF(Window NAF) 기법을 설명하기 위한 도면이다. 윈도우 NAF 기법은 알고리즘을 사용하여 스칼라 곱셈을 수행하는 알고리즘일 수 있다. 또한, 윈도우 NAF 기법은 바이너리 기법에 알고리즘을 활용하여 포인트 에디션 연산을 줄일 수 있다. 윈도우 NAF 기법은, 에 해당하는 타원곡선 상의 점들을 미리 계산하여 저장할 수 있다. 따라서 윈도우 NAF 기법은 의 크기에 따라 미리 계산한(pre-computation) 값들을 저장할 메모리가 요구될 수 있다. 윈도우 NAF 기법의 상세 동작 과정은 도 1e의 제5 알고리즘에 나타낸 바와 같다. 윈도우 NAF 기법을 이용한 연산 예로서, 일 때, 이고, 7P = 2(2(2(P)))-P 일 수 있다. 또한, 윈도우 NAF 기법을 이용한 연산 예로서, 일 때, 이고, 6P = 2(2(2(P))-P) 일 수 있다.1E is a view for explaining a window NAF (Window NAF) technique. Windows NAF technique Algorithm to perform a scalar multiplication. In addition, the window NAF technique uses binary techniques Algorithms can be used to reduce point edition operations. The Windows NAF technique, The points on the elliptic curve corresponding to Eq. Therefore, A memory may be required to store pre-computation values depending on the size of the memory. The detailed operation procedure of the window NAF scheme is as shown in the fifth algorithm of FIG. As an operation example using the window NAF technique, when, , And 7P = 2 (2 (2 (P))) - P. As an operation example using the window NAF technique, when, , And 6P = 2 (2 (2 (P)) - P).
도 1f는 슬라이딩 윈도우(Sliding Window) 기법을 설명하기 위한 도면이다. 슬라이딩 윈도우 기법은 에 대한 와 타원곡선 상의 점 을 미리 계산하여 결과를 저장하기 때문에 에 따라 미리 계산한(pre- computation) 값들을 저장할 메모리가 요구될 수 있다. 그리고 슬라이딩 윈도우 기법은 부터 윈도우 NAF 기법에 비해 미리 계산한 값(pre-computation)이 많은 단점이 있지만, 일반적으로 사용하는 크기인 인 경우에 포인트 에디션 연산 횟수가 줄어든다는 장점이 있을 수 있다. 또한, 슬라이딩 윈도우 기법은 0,1로만 표현되는 일반적인 이진 표현을 사용할 수 있지만 이 경우는 타원곡선 상의 점 을 미리 계산하기 때문에 메모리 요구가 훨씬 증가할 수 있다. 따라서, 슬라이딩 윈도우 기법은 를 로 변환하여 사용함으로써, 효율을 증가시킬 수 있다. 슬라이딩 윈도우 기법의 상세 동작 과정은 도 1f의 제6 알고리즘에 나타낸 바와 같다.1F is a view for explaining a sliding window technique. The sliding window technique For And points on the elliptic curve And stores the result A memory may be required to store the pre-computation values according to the pre-computation values. And the sliding window technique Although there are many disadvantages in pre-computation compared to the window NAF technique, The size The number of point edition operations may be reduced. In addition, although the sliding window technique can use a general binary representation expressed only as 0,1, in this case, the point on the elliptic curve The memory requirements can be much increased. Thus, the sliding window technique To It is possible to increase the efficiency. The detailed operation process of the sliding window technique is as shown in the sixth algorithm of FIG. 1F.
도 2는 본 발명의 일실시예에 따른 고속의 NAF 변환 장치를 나타내는 블록도이다.2 is a block diagram showing a high-speed NAF conversion apparatus according to an embodiment of the present invention.
본 발명의 고속의 NAF 변환 장치(200, 이하, NAF 변환 장치)는 설정부(210) 및 처리부(220)를 포함할 수 있다. 또한, 실시예에 따라, NAF 변환 장치(200)는 변경부(230), 연산부(240) 및 판단부(250)를 추가하여 구성할 수 있다.The high-speed NAF converting apparatus 200 (hereinafter, NAF converting apparatus) of the present invention may include a
설정부(210)는 윈도우의 값을 설정한다. 즉, 설정부(210)는 양의 정수인 윈도우의 값을 설정할 수 있다. 예를 들면, 설정부(210)는 2 이상의 정수 중 적어도 하나의 값을 윈도우의 값으로 설정할 수 있다.The
처리부(220)는 공개키의 LSB(Least Significant Bit)를 기준으로, 상기 설정된 값을, 길이로 갖는 윈도우를, 상기 공개키의 적어도 일부에 제1 세팅한다. 즉, 처리부(220)는 제1 세팅으로서, 설정부(210)에 의해 설정된 값만큼 공개키의 일부분에 윈도우를 세팅할 수 있다. 예를 들면, 윈도우의 값이 3으로 설정된 경우, 처리부(220)는 공개키 중 LSB로부터 3 비트만큼을 제1 세팅할 수 있다.The
또한, 처리부(220)는 상기 공개키 내 암호화 대상이 되는 타깃 비트가, 상기 윈도우의 밖에 있는 경우, 상기 타깃 비트가 포함되도록 상기 윈도우를, ω-비트 오른쪽 이동(ω-bit right shift)(상기 ω은 자연수)시켜, 상기 윈도우를 제2 세팅한다. 즉, 처리부(220)는 타깃 비트를 윈도우에 포함시키기 위하여, 윈도우의 값인 ω-비트만큼 이동시켜 윈도우를 제2 세팅할 수 있다. 예를 들면, 윈도우의 값이 3으로 설정된 경우, 처리부(220)는 윈도우를 3-비트 이동시켜 타깃 비트가 포함되도록 세팅할 수 있다.If the target bit to be encrypted in the public key is outside the window, the
설명의 이해를 돕기 위하여, 이하 도 3 및 도 4를 참조하면서 도 2에서의 NAF 변환 장치(200)를 설명하고자 한다.In order to facilitate understanding of the explanation, the
도 3은 본 발명의 일실시예에 따른 고속의 NAF 변환 장치를 이용한 구현예를 설명하기 위한 도면이다.3 is a view for explaining an implementation example using a high-speed NAF conversion apparatus according to an embodiment of the present invention.
도 3에 도시된 바와 같이, 처리부(220)는 에 대해 으로 설정되면, 알고리즘에서 가 홀수인 경우(즉, LSB가 1인 경우)의 윈도우를, 제1 세팅할 수 있다(회색 음영 부분, 311).As shown in FIG. 3, the
변경부(230)는 상기 제1 세팅된 윈도우에 포함되는, 상기 공개키 내 비트를 모두 '0'으로 변경할 수 있다. 즉, 변경부(230)는 제1 세팅된 비트에 대하여 모두 '0'으로 변경할 수 있다. 도 3의 (a)의 일례에서, 변경부(230)는 윈도우에 포함된(즉, 회색 음영 부분) 비트를 모두 '0'으로 변경할 수 있다(312). The changing
연산부(240)는 상기 제1 세팅된 윈도우에 포함되는, 상기 공개키 내 비트에 대한 환산값을 산출할 수 있다. 도 3의 (a)의 일례에서, 연산부(240)는 가장 오른쪽의 3-비트가 011이라면 제3 알고리즘에서의 항목(2.1)인 에 대하여 을 산출할 수 있다. The
이때, 변경부(230)는 산출된 상기 환산값이 선정된 기준값을 넘는지를 확인하여, 정해진 수를 가산 또는 감산하여, 상기 환산값을 '0'으로 만들 수 있다. 예를 들어, 기준값이 로 선정된다면, 변경부(230)는 환산값 가 인지를 확인할 수 있다. 도 3의 (a)의 일례에서, 변경부(230)는 값이 제3 알고리즘에서의 항목(2.1.1)의 를 만족시키지 않으므로, 를 수행할 수 있다. 이때, 변경부(230)는 가 3이므로 을 수행하여 가장 오른쪽의 3-비트가 000이 되도록 할 수 있다(312).At this time, the changing
이때, 처리부(220)는 상기 ω을 '1'로 결정하고, 상기 윈도우를, 1-비트 오른쪽 이동(1-bit right shift)시키되, 상기 타깃 비트가 상기 윈도우에 포함될 때까지 상기 1-비트 오른쪽 이동을 반복하여 상기 제2 세팅할 수 있다. 도 3의 (a)의 일례에서, 처리부(220)는 제3 알고리즘의 항목(2.3)을 수행하여 값을 2로 나누어 오른쪽으로 1-비트 이동시킬 수 있다(313). 즉, 도 3의 (a)에 도시된 바와 같이, 가장 오른쪽 3-비트를 표시하는 회색 음영은 이동될 수 있다.At this time, the
여기서, NAF 변환 장치(200)는 알고리즘을 통해, 도 3과 같은 동작을 수행한 후 오른쪽으로 1-비트 이동시키는 과정에서, 현재 번째 비트를 본다고 가정할 때 번째 비트부터 번째 비트는 모두 0으로 바뀌는 것을 알 수 있다.Here, the
또한, 처리부(220)는 상기 윈도우의 1-비트 오른쪽 이동에 연동하여, 상기 공개키의 LSB를 이동할 수 있다. 도 3의 (a)에 도시된 바와 같이, 처리부(220)는 값을 1 증가시킴으로써, LSB를 가리키는 화살표를 이동시킬 수 있다. In addition, the
또한, 처리부(220)는 상기 1-비트 오른쪽 이동 후, 상기 윈도우에서 이탈되는 비트값 '0'의 비트를 제거할 수 있다. 즉, 처리부(220)는 이전에(단계311, 312) LSB로 지정되었던 비트를 실제로 사라지도록 제거할 수 있다. 예를 들면, 도 3의 (a)에서, 단계(313)에 도시된 바와 같이, 처리부(220)는 윈도우에서 이탈된 부분(회색 음영이 아닌 부분)의 비트값을 제거할 수 있다.In addition, the
도 3의 (b) 일례에 대해 설명하면, 먼저, 단계(311)에서 설명한 바와 같이 처리부(220)는으로 설정되면, 윈도우를 제1 세팅할 수 있다(회색 음영 부분, 321). 다음으로, 변경부(230)는 가장 오른쪽의 3-비트가 101이라면 제3 알고리즘에서의 항목(2.1)인 에 대하여 으로 할 수 있다. 이때, 변경부(230)는 값이 항목(2.1.1)의 를 만족시키므로, 값이 인 -3이 되고, 항목(2.1.2)의 를 수행할 수 있다. 변경부(230)는 가 -3이므로 을 수행하면 가장 오른쪽의 3-비트가 000이 되도록 할 수 있는데(322), 이때 전환(carry)이 발생할 수 있다. 본 명세서에서, 전환이 발생하는 것은 0 또는 1(0 or 1)이 1 또는 0(1 or 0)으로 바뀌는 것으로 표현하지만, 이에 한정되지는 않는다.3 (b), first, as described in
그 다음으로, 처리부(220)는 제3 알고리즘의 항목(2.3)을 수행하여 값을 2로 나누어 오른쪽으로 1-비트 이동시킬 수 있다(323). 또한, 처리부(220)는 값을 1증가시킴으로써, LSB를 가리키는 화살표를 이동시킬 수 있다.Next, the
실시예에 따라, NAF 변환 장치(200)는 알고리즘에 슬라이딩 윈도우 개념을 적용하고, 알고리즘에서 의 값이 반드시 보다 작은 양의 홀수가 된다는 특성을 활용할 수 있다. 예를 들어, 인 경우, NAF 변환 장치(200)는 001 및 011인 1 및 3만이 의 값이 될 수 있다는 특성을 활용할 수 있다. 또한, NAF 변환 장치(200)는 010, 100 및 110과 같은 짝수의 경우, LSB가 1이 될 때까지 오른쪽으로 이동하여 001 및 011의 형태가 되고, 101 및 111의 경우에는 전환(carry)가 발생하여 1000이 된 다음 LSB가 1이 될 때까지 오른쪽으로 이동하여 001의 형태가 될 수 있다는 특성을 활용할 수 있다. 따라서, NAF 변환 장치(200)는 의 값이 반드시 보다 작은 양의 홀수가 되는 특성을 활용할 수 있다. According to the embodiment, the
도 4는 본 발명의 일실시예에 따른 고속의 NAF 변환 장치를 이용한 구현예를 설명하기 위한 도면이다.4 is a view for explaining an implementation example using a high-speed NAF conversion apparatus according to an embodiment of the present invention.
도 4에 도시된 바와 같이, 처리부(220)는 에 대해 으로 설정되면, 알고리즘에서 가 홀수인 경우(즉, LSB가 1인 경우)의 윈도우를, 제1 세팅할 수 있다(회색 음영 부분, 411, 421).As shown in FIG. 4, the
판단부(250)는 산출된 상기 환산값이 선정된 기준값을 넘는지를 판단할 수 있다. 즉, 연산부(240)에 의해 산출된 환산값에 대하여, 판단부(250)는 기준값을 기준으로 판단할 수 있다. 예를 들면, 판단부(250)는 기준값 을 기준으로, 환산값이 기준값을 넘는지를 판단할 수 있다.The
이때, 처리부(220)는 상기 판단 결과, 넘지 않는 경우, 상기 윈도우를 상기 ω-비트 오른쪽 이동시켜, 상기 윈도우의 세팅 위치를 상기 타깃 비트로 조정할 수 있다. 즉, 처리부(220)는 기준값 보다 환산값이 작은 경우, 제1 세팅된 윈도우 크기(ω)만큼을, ω 비트만큼 오른쪽 이동시킬 수 있다. 도 4의 (a)에 도시된 바와 같이, 처리부(220)는 인 경우 오른쪽으로 -비트 이동시킬 수 있다(413). 단계(413)에서, ω-비트 이동한 후, NAF 변환 장치(200)는 윈도우가 이동한 비트의 값을 체크할 수 있다. 즉, 처리부(220)는 윈도우 크기가 3으로 제1 세팅된 경우, 윈도우 크기가 3인 윈도우를 3-비트만큼 오른쪽 이동시킬 수 있다. 3-비트 이동한 후, NAF 변환 장치(200)는 윈도우에 포함된 비트에 대하여, 0 또는 1 중 하나를 비트값으로 체크할 수 있다. 이 과정에서, 처리부(220)는 알고리즘의 연산 과정을 생략할 수 있다.At this time, if the result of the determination is negative, the
또한, 처리부(220)는 상기 판단 결과, 넘는 경우, 상기 타깃 비트의 비트값을 전환(carry)하고, 상기 윈도우를 상기 ω-비트 오른쪽 이동시켜, 상기 윈도우의 세팅 위치를 상기 타깃 비트로 조정할 수 있다. 즉, 처리부(220)는 전환(caryy)을 발생시킴에 따라, 대신 를 수행할 수 있다(422). 또한, 처리부(220)는 비트값을 전환한 후, 도 4의 (b)에 도시된 바와 같이, 윈도우 크기가 ω인 윈도우를 ω 비트만큼 오른쪽 이동시킬 수 있다(423). 단계(423)에서, ω-비트 이동한 후, NAF 변환 장치(200)는 윈도우가 이동한 비트의 값을 체크할 수 있다. 예를 들면, 처리부(220)는 제1 세팅된 윈도우 크기가 3인 윈도우를 3-비트만큼 오른쪽 이동시킬 수 있다. 3-비트 이동한 후, NAF 변환 장치(200)는 윈도우에 포함된 비트에 대하여, 0 또는 1 중 하나를 비트값으로 체크할 수 있다.As a result of the determination, if the
또한, 처리부(220)는 상기 윈도우의 ω-비트 오른쪽 이동에 연동하여, 상기 공개키의 LSB를 상기 타깃 비트로 조정할 수 있다. 즉, 도 4의 (a) 및 (b)에 도시된 바와 같이, 처리부(220)는 오른쪽으로 -비트 이동을 하여 번째 비트로 이동함으로써, LSB를 가리키는 화살표를 이동시킬 수 있다.In addition, the
이러한, NAF 변환 장치(200)는 번의 비교 연산 과정을 수행함으로써, 번의 비트 비교 연산 과정을 수행하는 알고리즘의 연산 처리 속도를 최적화 할 수 있다.The
또한, NAF 변환 장치(200)는 NAF 변환 시, (은 양의 정수 의 이진수 변환에 따른 비트 수)이 증가하거나 홀수인 경우를 발생시키는 패턴이 많이 존재하는 경우에 NAF 변환 시간을 단축할 수 있다(은 양의 정수 의 이진수 변환에 따른 비트 수, 는 윈도우 크기).Further, the
도 5는 본 발명의 일실시예에 따른 고속의 NAF 변환 장치를 구현하기 위한 알고리즘을 도시한 도면이다.5 is a diagram illustrating an algorithm for implementing a high-speed NAF conversion apparatus according to an embodiment of the present invention.
도 5에 도시된 바와 같이, NAF 변환 장치(200)는 제7 알고리즘( 알고리즘)으로서 수도 코드(pseudo code)로 표현될 수 있다. NAF 변환 장치(200)는 제7 알고리즘의 항목(2)에서의 While문의 수행 조건을 으로 설정하지 않을 수 있다. 그 이유는, 의 값이 반드시 보다 작은 양의 홀수가 되므로 NAF 변환 장치(200)는 와일(While)문의 중단 여부를 항목(2.3.1)에서만 판단하도록 할 수 있다. 항목(2.1)의 와일(While)문은 연속된 0을 빠르게 처리하기 위한 코드일 수 있다. 와일(While)문을 빠져 나와 항목(2.2)에 왔을 때는 는 반드시 홀수인 정수가 될 수 있다.As shown in Fig. 5, the
제7 알고리즘에서의 항목(2.3.2)는 도 4의 (a)의 동작 과정을 코드로 표현한 것이다. 이때, NAF 변환 장치(200)는 제3 알고리즘의 항목(2.1.2)과 '0임을 확신할 수 있는 -비트에 대한 1-비트씩 이동(shift) 하는 과정'을 생략할 수 있다. 즉, NAF 변환 장치(200)는 를 만큼 증가시키고 를 만큼 오른쪽으로 이동할 수 있다. Item (2.3.2) in the seventh algorithm is a code representation of the operation process of FIG. 4 (a). At this time, the
제7 알고리즘에서의 항목(2.4)는 도 4의 (b)의 동작 과정을 코드로 표현한 것이다. 이 경우, NAF 변환 장치(200)는 알고리즘에서 전환(carry)이 발생하기 때문에 를 수행할 수 있다. NAF 변환 장치(200)는 나머지 부분에 대하여 항목(2.3.2)와 같이 수행할 수 있다.Item (2.4) in the seventh algorithm is a code representation of the operation process of (b) in FIG. In this case, since
도 6 내지 도 11은 본 발명의 일실시예에 따른 고속의 NAF 변환 장치를 구현하기 위한 알고리즘의 성능 평가를 설명하기 위한 도면이다.FIGS. 6 to 11 are diagrams for explaining performance evaluation of an algorithm for implementing a high-speed NAF conversion apparatus according to an embodiment of the present invention.
알고리즘(제7 알고리즘)의 성능 평가를 도시한 도면이다. 알고리즘에 대한 성능 평가는 입력 값 와 에 대해 를 계산하는 데에 걸리는 사이클 카운터(Cycle Counter)를 알고리즘과 비교하는 방식으로 평가할 수 있다. 알고리즘과 알고리즘은 의 길이 이 늘어나면 전체 사이클 카운터가 증가할 수 있다. 두 알고리즘은 오른쪽 이동(right shift)하는 과정에서 홀수인 경우가 증가할수록 사이클 카운터가 증가할 수 있다. (Seventh algorithm) according to an embodiment of the present invention. The performance evaluation of the algorithm is based on the input value Wow About The cycle counter (Cycle Counter) And can be evaluated in a manner of comparing with an algorithm. Algorithm and The algorithm Length The total cycle counter can be increased. Both algorithms can increase the cycle counter as the odd number increases in the right shift process.
예를 들면, 의 길이가 8이고 가 2일 때, 은 홀수인 경우가 1번 발생하지만 와 은 홀수인 경우가 4번 발생하기 때문에 사이클 카운터가 더 클 수 있다. 이 홀수인 경우가 4번이 되는 이유는 도 6에 도시된 바와 같이, 일 때 발생하는 전환(Carry)에 의해 -비트 앞에 1이 발생하기 때문일 수 있다.For example, Is 8 in length Is 2, The odd number occurs once Wow Since the odd number occurs four times, the cycle counter may be larger. The reason why the odd number is 4 is that, as shown in Fig. 6, By the conversion that occurs when - It may be because 1 occurs before the bit.
따라서, 본원의 성능 평가에서는 의 길이 에 대한 사이클 카운터 비교를 할 수 있다. 그뿐만 아니라, 본원의 성능 평가에서는 홀수의 경우가 발생하는 횟수에 대한 비교도 포함할 수 있다. 즉, 본원의 성능 평가에서는 0과 1로 조합되는 0,1,01,001,011,101 등과 같은 패턴들의 반복 횟수에 대해서 크기가 2인 경우와 3인 경우를 저성능 8-비트 마이크로프로세서 아트메가128(ATmega128)에서 구현하고 사이클 카운터를 측정하여 성능 평가를 수행할 수 있다.Therefore, in the performance evaluation of the present invention Length Can be compared to the cycle counter. In addition, the performance evaluation of the present invention may include a comparison of the number of occurrences of the odd number. That is, in the performance evaluation of the present invention, the number of repetitions of patterns such as 0,1,01,001,011,101, It is possible to implement 2 and 3 cases in the low performance 8-bit microprocessor Artmega 128 (ATmega128) and measure the cycle counter to perform the performance evaluation.
의 이진수 비트수는 RSA에서 1024-비트 이상, ECC에서 160-비트 이상이 사용되며, 이러한 비트들은 0과 1에 의한 다양한 패턴들의 반복이라고 볼 수 있다. 따라서, 도 7에 도시된 바와 같이, 3-비트 이하에서 발생 가능한 다양한 반복 패턴에 따른 알고리즘 대비 알고리즘의 평균 및 편차 이득을 요약하여 도시한다. 알고리즘에 비해 알고리즘의 평균 사이클 카운터가 약 20% 정도 감소하고 편차 또한 30% 이상 감소한 것을 확인할 수 있다. 특히, 알고리즘은 알고리즘에 비해 편차에서 우수한 성능을 나타낼 수 있다. 이는, 알고리즘이 의 길이 이 늘어나더라도 사이클 카운터 증가량이 알고리즘 보다 작아서 다양한 입력 패턴에 대해 일정한 성능을 나타낼 수 있음을 의미할 수 있다. The number of binary bits in RSA is more than 1024-bit, and the number of bits in RSC is more than 160-bit in ECC. These bits can be regarded as repetition of various patterns by 0 and 1. Therefore, as shown in FIG. 7, in accordance with various repetitive patterns that can be generated in 3-bit or less Algorithm contrast The mean and variance gains of the algorithm are summarized. Compared to the algorithm The average cycle counter of the algorithm is reduced by about 20% and the deviation is also decreased by 30% or more. Especially, The algorithm It can exhibit excellent performance in deviation from the algorithm. this is, The algorithm Length The cycle counter increment is It can be said that it is possible to show a constant performance for various input patterns because it is smaller than the algorithm.
또한, 본원에서는 두 알고리즘의 성능에 영향을 미치는 주요한 반복 패턴인 1과 01 비트 패턴에서의 반복 횟수에 따른 두 알고리즘의 사이클 카운터를 상세히 분석한 결과를 도 8 및 도 9에 도시한다. 도 8 및 도 9에 도시된 바와 같이, 알고리즘은 알고리즘에 비해 각각 평균 이득이 18.6%와 19.4%, 편차 이득이 31.3%와 31.8% 성능 향상을 나타낼 수 있다. 또한, 도 10 및 도 11에 도시된 바와 같이, 알고리즘은 알고리즘에 비해 각각 평균 이득이 11.8%와 14.3%, 편차 이득이 26.7%와 29.9% 성능 향상을 나타낼 수 있다. 8 and 9 show results of a detailed analysis of the cycle counter of the two algorithms according to the number of repetitions in the 1 and 01 bit patterns, which are the main repetitive patterns affecting the performance of the two algorithms. As shown in Figs. 8 and 9, The algorithm The average gain is 18.6% and 19.4%, the deviation gain is 31.3%, and the performance improvement is 31.8%, respectively. Further, as shown in Figs. 10 and 11, The algorithm The average gain is 11.8% and 14.3%, and the deviation gain is 26.7% and 29.9%, respectively, compared with the algorithm.
도 11에 도시된 바와 같이, 반복 회수가 2에서 3으로(또는, 5에서 6으로) 증가함에 따라 클락 카운터(Clock Counter)가 증가하지 않는 이유는 -비트 이동(shift) 횟수가 동일하기 때문일 수 있다. 예를 들어, 일 때, 0101은 전환(carry)이 발생해 1000로 변환된 후 3 오른쪽 이동(right shift)을 한 다음 0001을 처리하기 때문에 한 번의 -비트 이동(shift)이 발생할 수 있다. 010101도 전환(carry)이 발생해 011000으로 변환된 후 오른쪽으로 3-비트 이동(shift)을 한 다음 011을 처리하기 때문에 이동(shift)이 한 번 발생할 수 있다. 반면에, 01010101은 전환(carry)이 발생하여 01011000으로 변환된 후 오른쪽으로 3-비트 이동(shift)을 한 다음 01011이 되고, 다시 01000으로 변환된 후 오른쪽으로 3-비트 이동(shift)을 하여 01을 처리하기 때문에 이동(shift)이 두 번 발생할 수 있다. 따라서, 01의 연속 횟수가 2번일 때와 3번일 때의 사이클 카운터는 동일하지만 4번일 때는 사이클 카운터가 증가하게 될 수 있다.As shown in FIG. 11, the reason why the clock counter does not increase as the number of repetitions increases from 2 to 3 (or from 5 to 6) - It may be because the number of bit shifts is the same. E.g, , 0101 generates a carry, converts it to 1000, performs 3 right shifts, and then processes 0001, - Bit shift may occur. 010101 may also shift once because a carry occurs and is converted to 011000 and then shifted to the right by three bits and then processed by 011. On the other hand, a 01010101 shifts to 01011000 after a carry occurs, shifts 3-bit to the right, and then shifts to 01011. After shifting to 01000, it shifts to 3 bits to the right 01, the shift may occur twice. Therefore, the cycle counter of 01 and 2 is 3 and the cycle counter is the same, but when it is 4, the cycle counter may be increased.
도 12는 본 발명의 일실시예에 따른 고속의 NAF 변환 방법을 구체적으로 도시한 작업 흐름도이다.12 is a workflow diagram specifically illustrating a high-speed NAF conversion method according to an embodiment of the present invention.
우선 본 실시예에 따른 고속의 NAF 변환 방법은 상술한 NAF 변환 장치(200)에 의해 수행될 수 있다.First, the high-speed NAF conversion method according to this embodiment can be performed by the
먼저, NAF 변환 장치(200)는 윈도우의 값을 설정한다(1210). 즉, 단계(1210)는 양의 정수인 윈도우의 값을 설정하는 과정일 수 있다. 예를 들면, NAF 변환 장치(200)는 2 이상의 정수 중 적어도 하나의 값을 윈도우의 값으로 설정할 수 있다.First, the
다음으로, NAF 변환 장치(200)는 공개키의 LSB(Least Significant Bit)를 기준으로, 상기 설정된 값을, 길이로 갖는 윈도우를, 상기 공개키의 적어도 일부에 제1 세팅한다(1220). 즉, 단계(1220)는 제1 세팅으로서, 단계(1210)에서 설정된 값만큼 공개키의 일부분에 윈도우를 세팅할 수 있다. 예를 들면, 윈도우의 값이 3으로 설정된 경우, NAF 변환 장치(200)는 공개키 중 LSB로부터 3 비트만큼을 제1 세팅할 수 있다.Next, the
다음으로, NAF 변환 장치(200)는 상기 공개키 내 암호화 대상이 되는 타깃 비트가, 상기 윈도우의 밖에 있는 경우, 상기 타깃 비트가 포함되도록 상기 윈도우를, ω-비트 오른쪽 이동(ω-bit right shift)(상기 ω은 자연수)시켜, 상기 윈도우를 제2 세팅한다(1230). 즉, NAF 변환 장치(200)는 타깃 비트를 윈도우에 포함시키기 위하여, 윈도우의 값인 ω-비트만큼 이동시켜 윈도우를 제2 세팅할 수 있다. 예를 들면, 윈도우의 값이 3으로 설정된 경우, NAF 변환 장치(200)는 윈도우를 3-비트 이동시켜 타깃 비트가 포함되도록 세팅할 수 있다.Next, when the target bit to be encrypted in the public key is located outside the window, the
실시예에 따라, NAF 변환 장치(200)는 상기 제1 세팅된 윈도우에 포함되는, 상기 공개키 내 비트를 모두 '0'으로 변경할 수 있다. 즉, NAF 변환 장치(200)는 제1 세팅된 비트에 대하여 모두 '0'으로 변경할 수 있다.According to the embodiment, the
실시예에 따라, NAF 변환 장치(200)는 상기 제1 세팅된 윈도우에 포함되는, 상기 공개키 내 비트에 대한 환산값을 산출할 수 있다. 예를 들면, NAF 변환 장치(200)는 가장 오른쪽의 3-비트가 011이라면 제3 알고리즘에서의 항목(2.1)인 에 대하여 을 산출할 수 있다. According to the embodiment, the
상기 '0'으로 변경하는 단계는, 산출된 상기 환산값이 선정된 기준값을 넘는지를 확인하여, 정해진 수를 가산 또는 감산하여, 상기 환산값을 '0'으로 만드는 과정일 수 있다. 예를 들어, 기준값이 로 선정된다면, NAF 변환 장치(200)는 환산값 가 인지를 확인할 수 있다. NAF 변환 장치(200)는 값이 제3 알고리즘에서의 항목(2.1.1)의 를 만족시키지 않으므로, 를 수행할 수 있다. 이때, NAF 변환 장치(200)는 가 3이므로 을 수행하여 가장 오른쪽의 3-비트가 000이 되도록 할 수 있다.The step of changing to '0' may be a process of checking whether the calculated conversion value exceeds a predetermined reference value, and adding or subtracting a predetermined number to convert the conversion value to '0'. For example, The
이때, 단계(1230)는 상기 ω을 '1'로 결정하고, 상기 윈도우를, 1-비트 오른쪽 이동(1-bit right shift)시키되, 상기 타깃 비트가 상기 윈도우에 포함될 때까지 상기 1-비트 오른쪽 이동을 반복하여 상기 제2 세팅하는 과정일 수 있다. 예를 들면, NAF 변환 장치(200)는 제3 알고리즘의 항목(2.3)을 수행하여 값을 2로 나누어 오른쪽으로 1-비트 이동시킬 수 있다.At this time, the
또한, 단계(1230)는 상기 1-비트 오른쪽 이동 후, 상기 윈도우에서 이탈되는 비트값 '0'의 비트를 제거하는 과정일 수 있다. 즉, NAF 변환 장치(200)는 이전에 LSB로 지정되었던 비트를 실제로 사라지도록 제거할 수 있다. 예를 들면, NAF 변환 장치(200)는 윈도우에서 이탈된 부분의 비트값을 제거할 수 있다.In addition, the
또한, 단계(1230)는 상기 윈도우의 1-비트 오른쪽 이동에 연동하여, 상기 공개키의 LSB를 이동하는 과정일 수 있다. 예를 들면, NAF 변환 장치(200)는 값을 1 증가시킴으로써, LSB를 이동할 수 있다.In addition,
실시예에 따라, NAF 변환 장치(200)는 산출된 상기 환산값이 선정된 기준값을 넘는지를 판단할 수 있다. 즉, 상기 환산값을 산출하는 단계에서 산출된 환산값에 대하여, NAF 변환 장치(200)는 기준값을 기준으로 판단할 수 있다. 예를 들면, NAF 변환 장치(200)는 기준값 을 기준으로, 환산값이 기준값을 넘는지를 판단할 수 있다.According to the embodiment, the
실시예에 따라, NAF 변환 장치(200)는 상기 판단 결과, 넘지 않는 경우, 상기 윈도우를 상기 ω-비트 오른쪽 이동시켜, 상기 윈도우의 세팅 위치를 상기 타깃 비트로 조정할 수 있다. 즉, NAF 변환 장치(200)는 기준값 보다 환산값이 작은 경우, 제1 세팅된 윈도우 크기(ω)만큼을 ω 비트만큼 오른쪽 이동시킬 수 있다. NAF 변환 장치(200)는 인 경우 오른쪽으로 -비트 이동시킬 수 있다. ω-비트 이동한 후, NAF 변환 장치(200)는 윈도우가 이동한 비트의 값을 체크할 수 있게 된다. 예를 들면, NAF 변환 장치(200)는 윈도우 크기가 3으로 제1 세팅된 경우, 윈도우 크기가 3인 윈도우를 3-비트만큼 오른쪽 이동시킬 수 있다. 3-비트 이동한 후, NAF 변환 장치(200)는 윈도우에 포함된 비트에 대하여, 0 또는 1 중 하나를 비트값으로 체크할 수 있다. 이 과정에서, NAF 변환 장치(200)는 알고리즘의 연산 과정을 생략할 수 있다.According to the embodiment, the
실시예에 따라, NAF 변환 장치(200)는 상기 판단 결과, 넘는 경우, 상기 타깃 비트의 비트값을 전환(carry)하고, 상기 윈도우를 상기 ω-비트 오른쪽 이동시켜, 상기 윈도우의 세팅 위치를 상기 타깃 비트로 조정할 수 있다. 즉, NAF 변환 장치(200)는 전환(caryy)을 발생시킴에 따라, 대신 를 수행할 수 있다. 또한, NAF 변환 장치(200)는 비트값을 전환한 후, 윈도우 크기가 ω인 윈도우를 ω 비트만큼 오른쪽 이동시킬 수 있다. ω-비트 이동한 후, NAF 변환 장치(200)는 윈도우가 이동한 비트의 값을 체크할 수 있다. 예를 들면, NAF 변환 장치(200)는 제1 세팅된 윈도우 크기가 3인 윈도우를 3-비트만큼 오른쪽 이동시킬 수 있다. 3-비트 이동한 후, NAF 변환 장치(200)는 윈도우에 포함된 비트에 대하여, 0 또는 1 중 하나를 비트값으로 체크할 수 있다.According to the embodiment, the
실시예에 따라, NAF 변환 장치(200)는 상기 윈도우의 ω-비트 오른쪽 이동에 연동하여, 상기 공개키의 LSB를 상기 타깃 비트로 조정할 수 있다. 예를 들면, NAF 변환 장치(200)는 오른쪽으로 -비트 이동을 하여 번째 비트로 이동함으로써, LSB를 가리키는 화살표를 이동시킬 수 있다.According to the embodiment, the
이러한, NAF 변환 방법은 번의 비교 연산 과정을 수행함으로써, 번의 비트 비교 연산 과정을 수행하는 알고리즘의 연산 처리 속도를 최적화 할 수 있다(은 양의 정수 의 이진수 변환에 따른 비트 수, 는 윈도우 크기).This NAF conversion method By performing the comparison operation of the number of times, Bit comparison operation It is possible to optimize the processing speed of the algorithm ( Is a positive integer The number of bits according to the binary conversion, Window size).
또한, NAF 변환 방법은 NAF 변환 시, (은 양의 정수 의 이진수 변환에 따른 비트 수)이 증가하거나 홀수인 경우를 발생시키는 패턴이 많이 존재하는 경우에 NAF 변환 시간을 단축할 수 있다.In the NAF conversion method, ( Is a positive integer The number of bits in accordance with the binary conversion of the number of bits) increases or the number of patterns that generate an odd number is large, the NAF conversion time can be shortened.
본 발명의 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment of the present invention may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
200 : 고속의 NAF 변환 장치
210 : 설정부 220 : 처리부
230 : 변경부 240 : 연산부
250 : 판단부200: High-speed NAF converter
210: setting unit 220:
230: changing section 240:
250:
Claims (16)
공개키의 LSB(Least Significant Bit)를 기준으로, 상기 설정된 값을, 길이로 갖는 윈도우를, 상기 공개키의 적어도 일부에 제1 세팅하고, 상기 공개키 내 암호화 대상이 되는 타깃 비트가, 상기 윈도우의 밖에 있는 경우, 상기 타깃 비트가 포함되도록 상기 윈도우를, ω-비트 오른쪽 이동(ω-bit right shift)(상기 ω은 자연수)시켜, 상기 윈도우를 제2 세팅하는 처리부
를 포함하는 고속의 NAF 변환 장치.A setting unit for setting a value of a window;
Setting a window having the set value as a length on at least a part of the public key based on a least significant bit (LSB) of a public key, and setting, as a target bit to be encrypted in the public key, Bit right shift (the "?&Quot; is a natural number) so that the target bit is included in the window,
And a high-speed NAF converter.
상기 제1 세팅된 윈도우에 포함되는, 상기 공개키 내 비트를 모두 '0'으로 변경하는 변경부
를 더 포함하고,
상기 처리부는,
상기 ω을 '1'로 결정하고, 상기 윈도우를, 1-비트 오른쪽 이동(1-bit right shift)시키되, 상기 타깃 비트가 상기 윈도우에 포함될 때까지 상기 1-비트 오른쪽 이동을 반복하여 상기 제2 세팅하는
고속의 NAF 변환 장치.The method according to claim 1,
And changing the bits in the public key included in the first set window to ' 0 '
Further comprising:
Wherein,
Bit right shifting until the target bit is included in the window, and the second bit is shifted to the right by 1-bit right shifting (1-bit right shift) Setting
High speed NAF converter.
상기 처리부는,
상기 1-비트 오른쪽 이동 후, 상기 윈도우에서 이탈되는 비트값 '0'의 비트를 제거하는
고속의 NAF 변환 장치.3. The method of claim 2,
Wherein,
After the 1-bit right shift, the bit of the bit value '0' which is deviated from the window is removed
High speed NAF converter.
상기 처리부는,
상기 윈도우의 1-비트 오른쪽 이동에 연동하여, 상기 공개키의 LSB를 이동하는
고속의 NAF 변환 장치.3. The method of claim 2,
Wherein,
The LSB of the public key is moved in conjunction with the 1-bit right shift of the window
High speed NAF converter.
상기 공개키를 구성하는 비트 중, 상기 제1 세팅된 윈도우에 포함되는 비트에 대한 정수의 환산값을 산출하는 연산부
를 더 포함하고,
상기 변경부는,
산출된 상기 정수의 환산값이 선정된 기준값을 넘는지를 확인하여, 정해진 수를 가산 또는 감산하여, 상기 제1 세팅된 윈도우에 포함되는 비트를 모두 '0'으로 만드는
고속의 NAF 변환 장치.3. The method of claim 2,
Calculating a converted value of an integer with respect to bits included in the first set window among the bits constituting the public key,
Further comprising:
The changing unit may change,
And the number of bits included in the first set window is made to be '0' by checking whether the calculated conversion value of the integer exceeds the predetermined reference value, adding or subtracting a predetermined number,
High speed NAF converter.
상기 공개키를 구성하는 비트 중, 상기 제1 세팅된 윈도우에 포함되는 비트에 대한 정수의 환산값을 산출하는 연산부; 및
산출된 상기 정수의 환산값이 선정된 기준값을 넘는지를 판단하는 판단부
를 더 포함하고,
상기 처리부는,
상기 판단 결과, 넘지 않는 경우,
상기 윈도우를 상기 ω-비트 오른쪽 이동시켜, 상기 윈도우의 세팅 위치를 상기 타깃 비트로 조정하는
고속의 NAF 변환 장치.The method according to claim 1,
An operation unit for calculating an integer conversion value of bits included in the first set window among bits constituting the public key; And
A determination unit for determining whether the calculated conversion value of the integer exceeds a predetermined reference value,
Further comprising:
Wherein,
As a result of the determination,
Moves the window to the right by the? -Bit, and adjusts the setting position of the window to the target bit
High speed NAF converter.
상기 판단 결과, 넘는 경우,
상기 처리부는,
상기 타깃 비트의 비트값이 0이면 1로, 또는 상기 타깃 비트의 비트값이 1이면 0으로 바뀌어 전환(carry)하고, 상기 윈도우를 상기 ω-비트 오른쪽 이동시켜, 상기 윈도우의 세팅 위치를 상기 타깃 비트로 조정하는
고속의 NAF 변환 장치.The method according to claim 6,
As a result of the determination,
Wherein,
1 if the bit value of the target bit is 0, or 0 if the bit value of the target bit is 1, and moves the window to the right by the? -Bit so as to set the setting position of the window to the target Bit-adjusted
High speed NAF converter.
상기 처리부는,
상기 윈도우의 ω-비트 오른쪽 이동에 연동하여, 상기 공개키의 LSB를 상기 타깃 비트로 조정하는
고속의 NAF 변환 장치.8. The method according to claim 6 or 7,
Wherein,
The LSB of the public key is adjusted to the target bit in conjunction with the ω-bit right shift of the window
High speed NAF converter.
공개키의 LSB(Least Significant Bit)를 기준으로, 상기 설정된 값을, 길이로 갖는 윈도우를, 상기 공개키의 적어도 일부에 제1 세팅하는 단계; 및
상기 공개키 내 암호화 대상이 되는 타깃 비트가, 상기 윈도우의 밖에 있는 경우,
상기 타깃 비트가 포함되도록 상기 윈도우를, ω-비트 오른쪽 이동(ω-bit right shift)(상기 ω은 자연수)시켜, 상기 윈도우를 제2 세팅하는 단계
를 포함하는 고속의 NAF 변환 방법.Setting a value of a window;
Setting a window having the set value as a length based on a LSB (Least Significant Bit) of a public key to at least a part of the public key; And
If the target bit to be encrypted in the public key is outside the window,
Setting the window to a second state by making ω-bit right shift (ω is a natural number) the window so that the target bit is included;
/ RTI >
상기 제1 세팅된 윈도우에 포함되는, 상기 공개키 내 비트를 모두 '0'으로 변경하는 단계
를 더 포함하고,
상기 제2 세팅하는 단계는,
상기 ω을 '1'로 결정하는 단계; 및
상기 윈도우를, 1-비트 오른쪽 이동(1-bit right shift)시키되, 상기 타깃 비트가 상기 윈도우에 포함될 때까지 상기 1-비트 오른쪽 이동을 반복하여 상기 제2 세팅하는 단계
를 포함하는 고속의 NAF 변환 방법.10. The method of claim 9,
Changing all bits in the public key included in the first set window to ' 0 '
Further comprising:
Wherein the second setting comprises:
Determining? As '1'; And
Bit right shift until the target bit is included in the window, and repeating the 1-bit right shift until the target bit is included in the window,
/ RTI >
상기 제2 세팅하는 단계는,
상기 1-비트 오른쪽 이동 후, 상기 윈도우에서 이탈되는 비트값 '0'의 비트를 제거하는 단계
를 더 포함하는 고속의 NAF 변환 방법.11. The method of claim 10,
Wherein the second setting comprises:
Removing the bit of the bit value '0' deviating from the window after the 1-bit right shift,
Further comprising the steps of:
상기 제2 세팅하는 단계는,
상기 윈도우의 1-비트 오른쪽 이동에 연동하여, 상기 공개키의 LSB를 이동하는 단계
를 더 포함하는 고속의 NAF 변환 방법.11. The method of claim 10,
Wherein the second setting comprises:
Moving the LSB of the public key in conjunction with the 1-bit right shift of the window
Further comprising the steps of:
상기 NAF 변환 방법은,
상기 공개키를 구성하는 비트 중, 상기 제1 세팅된 윈도우에 포함되는 비트에 대한 정수의 환산값을 산출하는 단계
를 더 포함하고,
상기 '0'으로 변경하는 단계는,
산출된 상기 정수의 환산값이 선정된 기준값을 넘는지를 확인하여, 정해진 수를 가산 또는 감산하여, 상기 제1 세팅된 윈도우에 포함되는 비트를 모두 '0'으로 만드는 단계
를 포함하는 고속의 NAF 변환 방법.11. The method of claim 10,
In the NAF conversion method,
Calculating an integer conversion value of bits included in the first set window among the bits constituting the public key,
Further comprising:
The step of changing to '0'
Checking whether the calculated conversion value of the integer exceeds the predetermined reference value, adding or subtracting a predetermined number to make all the bits included in the first set window '0'
/ RTI >
상기 공개키를 구성하는 비트 중, 상기 제1 세팅된 윈도우에 포함되는, 비트에 대한 정수의 환산값을 산출하는 단계;
산출된 상기 정수의 환산값이 선정된 기준값을 넘는지를 판단하는 단계; 및
상기 판단 결과, 넘지 않는 경우,
상기 윈도우를 상기 ω-비트 오른쪽 이동시켜, 상기 윈도우의 세팅 위치를 상기 타깃 비트로 조정하는 단계
를 더 포함하는 고속의 NAF 변환 방법.10. The method of claim 9,
Calculating an integer conversion value of bits included in the first set window among the bits constituting the public key;
Determining whether the calculated conversion value of the integer exceeds a predetermined reference value; And
As a result of the determination,
Shifting the window to the right ω-bit and adjusting the setting position of the window to the target bit
Further comprising the steps of:
상기 판단 결과, 넘는 경우,
상기 타깃 비트의 비트값이 0이면 1로, 또는 상기 타깃 비트의 비트값이 1이면 0으로 바뀌어 전환(carry)하는 단계; 및
상기 윈도우를 상기 ω-비트 오른쪽 이동시켜, 상기 윈도우의 세팅 위치를 상기 타깃 비트로 조정하는 단계
를 더 포함하는 고속의 NAF 변환 방법.15. The method of claim 14,
As a result of the determination,
If the bit value of the target bit is 0, the bit is changed to 1 or if the bit value of the target bit is 1, the bit is changed to 0 and carry; And
Shifting the window to the right ω-bit and adjusting the setting position of the window to the target bit
Further comprising the steps of:
상기 윈도우의 ω-비트 오른쪽 이동에 연동하여, 상기 공개키의 LSB를 상기 타깃 비트로 조정하는 단계
를 더 포함하는 고속의 NAF 변환 방법.16. The method according to claim 14 or 15,
Adjusting the LSB of the public key to the target bit in conjunction with? -Bit right shift of the window
Further comprising the steps of:
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020160154192A KR101817879B1 (en) | 2016-11-18 | 2016-11-18 | Device and method for high-speed non-adjacent form conversion |
| PCT/KR2017/001113 WO2018092981A2 (en) | 2016-11-18 | 2017-02-02 | High-speed naf conversion device and high-speed naf conversion method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020160154192A KR101817879B1 (en) | 2016-11-18 | 2016-11-18 | Device and method for high-speed non-adjacent form conversion |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR101817879B1 true KR101817879B1 (en) | 2018-01-11 |
Family
ID=61004065
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020160154192A Expired - Fee Related KR101817879B1 (en) | 2016-11-18 | 2016-11-18 | Device and method for high-speed non-adjacent form conversion |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR101817879B1 (en) |
| WO (1) | WO2018092981A2 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150012743A1 (en) | 2012-02-14 | 2015-01-08 | Nokia Corporation | Device to device security using naf key |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020057796A1 (en) * | 1998-12-24 | 2002-05-16 | Lambert Robert J. | Method for accelerating cryptographic operations on elliptic curves |
| KR101309797B1 (en) * | 2006-12-01 | 2013-09-23 | 삼성전자주식회사 | Method for generating sparse w-NAF key, method for processing and method for encrypting thereof |
| CA2631276C (en) * | 2008-05-14 | 2014-12-09 | Patrick Longa | Exponentiation method using multibase number representation |
| US8549299B2 (en) * | 2011-02-28 | 2013-10-01 | Certicom Corp. | Accelerated key agreement with assisted computations |
| FR3001315B1 (en) * | 2013-01-18 | 2016-05-06 | Inside Secure | CRYPTOGRAPHY METHOD COMPRISING A SCALAR OR EXPONENTIATION MULTIPLICATION OPERATION |
-
2016
- 2016-11-18 KR KR1020160154192A patent/KR101817879B1/en not_active Expired - Fee Related
-
2017
- 2017-02-02 WO PCT/KR2017/001113 patent/WO2018092981A2/en not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150012743A1 (en) | 2012-02-14 | 2015-01-08 | Nokia Corporation | Device to device security using naf key |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2018092981A3 (en) | 2018-08-02 |
| WO2018092981A2 (en) | 2018-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102136911B1 (en) | Cryptography method comprising an operation of multiplication by a scalar or an exponentiation | |
| US6920473B2 (en) | Method and apparatus for modular multiplying and calculating unit for modular multiplying | |
| Knezevic et al. | Faster interleaved modular multiplication based on Barrett and Montgomery reduction methods | |
| KR101326078B1 (en) | Modular Arithmetic Method, Modular Multiplier and Cryptosystem having the same | |
| US7908641B2 (en) | Modular exponentiation with randomized exponent | |
| KR101590322B1 (en) | Modulated multiplier with reduced computational threshold path and computational critical path reduction method | |
| US20020174155A1 (en) | Method for calculating arithmetic inverse over finite fields for use in cryptography | |
| JP2000010479A (en) | Montgomery reduction device and recording medium | |
| KR101817879B1 (en) | Device and method for high-speed non-adjacent form conversion | |
| US20060222175A1 (en) | Computation method, computing device and computer program | |
| CN108418687B (en) | Rapid modular reduction method and medium suitable for SM2 algorithm | |
| US8909689B2 (en) | Arithmetic device | |
| JP6457911B2 (en) | Scalar multiplier | |
| KR20140089230A (en) | Mutiplication method and modular multiplier using redundant form recoding | |
| KR101707334B1 (en) | Apparatus for efficient elliptic curve cryptography processor and method for the same | |
| Anagreh et al. | Parallel method for computing elliptic curve scalar multiplication based on MOF. | |
| KR101548174B1 (en) | Method for calculating negative inverse of modulus | |
| Al Saffar et al. | Speeding up the Elliptic Curve Scalar Multiplication Using the Window-w Non Adjacent Form. | |
| Nedjah et al. | Parallel computation of modular exponentiation for fast cryptography | |
| JP4182226B2 (en) | Remainder calculation method, apparatus and program | |
| Knezevic et al. | Modular reduction without precomputational phase | |
| US12500736B2 (en) | Montgomery multiplier architecture | |
| JP3959076B2 (en) | Finite field square computing method and square computing device | |
| KR101423947B1 (en) | Modular multiplication and modular exponentiation using extended NIST prime | |
| JP3626315B2 (en) | Remainder calculation apparatus, information processing apparatus, and remainder calculation method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 7 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20250106 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| H13 | Ip right lapsed |
Free format text: ST27 STATUS EVENT CODE: N-4-6-H10-H13-OTH-PC1903 (AS PROVIDED BY THE NATIONAL OFFICE); TERMINATION CATEGORY : DEFAULT_OF_REGISTRATION_FEE Effective date: 20250106 |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20250106 |