KR20150116339A - System and Method for multi-precision Squaring for Public Key Cryptography - Google Patents

System and Method for multi-precision Squaring for Public Key Cryptography Download PDF

Info

Publication number
KR20150116339A
KR20150116339A KR1020140041475A KR20140041475A KR20150116339A KR 20150116339 A KR20150116339 A KR 20150116339A KR 1020140041475 A KR1020140041475 A KR 1020140041475A KR 20140041475 A KR20140041475 A KR 20140041475A KR 20150116339 A KR20150116339 A KR 20150116339A
Authority
KR
South Korea
Prior art keywords
multiplication
result value
value
partial
memory
Prior art date
Application number
KR1020140041475A
Other languages
Korean (ko)
Other versions
KR101562323B1 (en
Inventor
김호원
서화정
Original Assignee
부산대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 부산대학교 산학협력단 filed Critical 부산대학교 산학협력단
Priority to KR1020140041475A priority Critical patent/KR101562323B1/en
Publication of KR20150116339A publication Critical patent/KR20150116339A/en
Application granted granted Critical
Publication of KR101562323B1 publication Critical patent/KR101562323B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/552Powers or roots, e.g. Pythagorean sums

Abstract

The present invention relates to a multiple square operation apparatus and method for encryption of a public key wherein the invention divides an entire multiple square operation into a portion for deriving same result values and a portion excluding the portion and thereby enables to effectively reduce a multiplying operation for an unnecessary portion. The invention comprises: a factor value read unit for loading a factor value from low-order bits stored in a memory at an initial state of operation to a register and loading an intermediate value in the middle of operation to a register; an intermediate result value operation unit for performing one multiplying operation for a repeating multiplying portion positioned in a same row from low-order bits and for storing an intermediate value in the memory; an operation confirmation unit for determining whether a multiplying operation for all repeating rows is performed by the intermediate result value operation unit and for determining whether a final result value operation is performed for all rows; an intermediate result value additional operation unit for, if it is determined that an intermediate result value operation is performed, loading a calculated intermediate value calculated previously from low-order bits and for performing a one-bit logical left shift or an add operation for the intermediate value; and a final result value operation unit for performing a multiplying operation for a portion which is position in the same row as the intermediate value and for which a multiplying operation is performed only once and then for storing a final result value in the memory.

Description

공개키 암호를 위한 다중 제곱 연산 장치 및 방법{System and Method for multi-precision Squaring for Public Key Cryptography}FIELD OF THE INVENTION [0001] The present invention relates to an apparatus and method for multi-precision squaring for public key cryptography,

본 발명은 공개키 암호화에 관한 것으로, 구체적으로 전체 제곱 연산 중 동일한 결과값을 도출하는 부분과 그렇지 않은 부분을 나누어 계산하여 불필요한 부분 곱셈 연산을 효과적으로 줄일 수 있도록 한 공개키 암호를 위한 다중 제곱 연산 장치 및 방법에 관한 것이다.The present invention relates to public key cryptography, and more particularly, to a public key cryptosystem for a public key cryptosystem in which a part for deriving the same result value during a whole squared operation and a part for deriving the same result value are divided to effectively reduce an unnecessary partial multiplication operation. And methods.

일반적으로, 공개키 암호화 기술은 보안을 유지하기 위한 암호 방식 중 암호화와 복호화 과정에서 서로 다른 키를 사용하는 비대칭 방식을 말한다.Generally, public key cryptography refers to asymmetric cryptography that uses different keys during encryption and decryption to maintain security.

타인이 메시지를 암호화할 때 사용하는 공개키(Public Key)와 암호문을 원래의 메시지로 복원할 때 쓰는 비밀키(Private key)로 구성돼 있어 두 개의 키를 사용한다. 메시지를 보낼 때 메시지에 비밀키를 이용해 암호화 알고리즘에 의해 계산된 값을 첨부해 보내면 수신자는 공개키를 이용해 역으로 계산하여 이 메시지의 진위 여부를 확인하는 것이다.It consists of the public key used by others to encrypt the message and the private key used to restore the ciphertext to the original message, using two keys. When sending a message, when the message is appended with the value computed by the encryption algorithm using the secret key, the recipient computes the identity of the message using the public key.

최근 임베디드 마이크로 프로세서를 이용한 네트워크 기술은 WSN(Wireless Sensor Network), IoT(Internet of Things), M2M(Machine to Machine)과 같은 미래 기술에 적용되어 그 중요성이 높아지고 있다.Recently, network technology using embedded microprocessor has been applied to future technologies such as WSN (Wireless Sensor Network), IoT (Internet of Things) and M2M (Machine to Machine).

하지만, 해당 서비스에서 전송되는 패킷이 악의적인 공격자에 의해 노출되게 된다면 사용자의 정보가 악용될 수 있는 문제가 있다.However, if a packet transmitted from the service is exposed by a malicious attacker, the user's information may be exploited.

이를 방지하기 위해 다양한 암호화 기술이 제안 및 적용되고 있으며 특히 대표적인 공개키 암호화 기술인 RSA(Rivest, Shamir, and Adleman), ECC(Elliptic curve cryptography) 그리고 페어링(Pairing) 기법은 활발히 연구가 진행되고 있다.Various encryption technologies have been proposed and applied to prevent this. Especially, RSA (Rivest, Shamir, and Adleman), Elliptic curve cryptography (ECC) and pairing techniques are being studied actively.

하지만, 공개키 암호화 기술을 임베디드 프로세서에서 구현하여 사용하는 것은 현실적으로 어렵다. 그 이유는 공개키 암호화 기술은 높은 연산 복잡도를 가지고 임베디드 장비의 컴퓨팅 파워가 낮아 연산 속도가 매우 느리기 때문이다.However, it is difficult to implement the public key encryption technology in the embedded processor. The reason is that public key encryption technology has a high computational complexity and the computational power of the embedded device is low and the computation speed is very slow.

따라서, 보다 실용적인 적용을 위해서는 연산을 가속화하기 위한 기법이 제안 및 적용되어야 한다.Therefore, for more practical applications, techniques for accelerating computation must be proposed and applied.

현재 이러한 곱셈 및 제곱 연산에 대한 선행 기술 문헌에는 대한민국 공개특허 제10-2003-0049712호, 대한민국 공개특허 제10-2004-0055550호, 대한민국 공개특허 제10-2008-0056036호 등이 있다.Currently, prior art documents for such multiplication and squaring operations include Korean Patent Laid-Open Nos. 10-2003-0049712, Korean Patent Laid-Open No. 10-2004-0055550, and Korean Patent Laid-Open No. 10-2008-0056036.

해당 특허 공개 문헌에서는 하드웨어 단에서의 곱셈기의 설계를 효율적으로 하기 위한 기법들이 주로 제시되었으며, 하드웨어에 적합한 바이너리 필드와 일반적인 곱셈기를 개선하는 방안이 제시되었다.In this patent publication, techniques for efficiently designing a multiplier in a hardware stage are mainly proposed, and a method for improving a binary field suitable for hardware and a general multiplier has been proposed.

RSA, ECC, Pairing과 같은 공개키 암호화 기법은 높은 연산 복잡도로 인해 임베디드 마이크로 프로세서와 같은 자원 한정적인 환경에서는 실질적인 적용이 어렵다.Public key encryption schemes such as RSA, ECC, and Pairing are difficult to implement in resource-constrained environments such as embedded microprocessors due to high computational complexity.

따라서, 효율적으로 암호화가 가능한 기법에 대한 연구가 활발히 진행되고 있다. 해당 공개키 암호화 기법은 많은 산술 연산으로 구성되며 그 중에서도 특히 높은 부하가 발생하는 곳은 곱셈과 제곱연산이다.Therefore, studies on efficient encryption techniques have been actively conducted. The public key cryptosystem consists of many arithmetic operations. Especially, places where high load is generated are multiplication and square operation.

해당 연산을 기본적인 연산 기법으로 처리하게 될 경우에는 많은 메모리 접근과 산술연산으로 인해 속도가 현저히 떨어지는 문제가 있다. 이를 극복하기 위해서는 보다 최적화된 구현 기법이 제안되어야 한다.If the operation is to be treated as a basic operation method, there is a problem in that the speed is significantly reduced due to a lot of memory accesses and arithmetic operations. To overcome this, a more optimized implementation technique should be proposed.

대한민국 공개특허 제10-2003-0049712호Korean Patent Publication No. 10-2003-0049712 대한민국 공개특허 제10-2004-0055550호Korean Patent Publication No. 10-2004-0055550 대한민국 공개특허 제10-2008-0056036호Korean Patent Publication No. 10-2008-0056036

본 발명은 이와 같은 종래 기술의 공개키 암호화 기술의 문제를 해결하기 위한 것으로, 전체 제곱 연산 중 동일한 결과값을 도출하는 부분과 그렇지 않은 부분을 나누어 계산하여 불필요한 부분 곱셈 연산을 효과적으로 줄일 수 있도록 한 공개키 암호를 위한 다중 제곱 연산 장치 및 방법을 제공하는데 그 목적이 있다.In order to solve the problem of the public key encryption technique of the prior art as described above, the present invention is a public key encryption technique in which unnecessary partial multiplication operations can be effectively reduced by dividing a portion where the same result value is derived and a portion where the same result value is derived, It is an object of the present invention to provide a multi-arithmetic operation apparatus and method for key encryption.

본 발명은 왼쪽 논리적 1-bit shift 혹은 덧셈 연산을 이용하여 곱하기 2연산과 동일한 결과값을 도출하며 이전에 계산되지 않은 부분 곱셈 영역을 동시에 처리하는 방법을 통해 메모리에 대한 접근을 줄이고 산술 연산 횟수를 효율적으로 줄일 수 있도록 한 공개키 암호를 위한 다중 제곱 연산 장치 및 방법을 제공하는데 그 목적이 있다.The present invention derives the same result as the multiplication 2 operation using the left logical 1-bit shift or addition operation, and reduces the access to the memory and reduces the number of arithmetic operations And more particularly, to a multi-arithmetic operation apparatus and method for public-key cryptography.

본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.

이와 같은 목적을 달성하기 위한 본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 장치는 연산 초기에 메모리에 저장된 하위 비트에서부터 인자값을 레지스터로 불러오고, 연산 중간에 중간 결과값을 레지스터로 불러오는 인자값 리드부;하위 비트에서부터 같은 열에 위치한 중복 곱셈 부분에 대해 부분 곱셈 연산을 한번 수행하고 중간 결과값을 메모리에 저장하는 중간 결과값 연산부;모든 중복 열에 대한 곱셈 연산이 중간 결과값 연산부에서 이루어졌는지 판단하고, 모든 열에 대하여 최종 결과값 연산이 이루어졌는지 판단하는 연산 확인부;중간 결과값 연산이 이루어진 것으로 판단되면 하위 비트부터 이전에 계산된 중간 결과값을 불러와서 해당 중간값에 대한 1-비트 논리적 왼쪽 이동 또는 더하기 연산을 수행하는 중간 결과값 추가 연산부;해당 중간값과 동일한 열에 위치한 한번만 곱셈이 수행되는 부분에 대해 곱셈 연산을 하여 최종 결과값을 메모리에 저장하는 최종 결과값 연산부;를 포함하는 것을 특징으로 한다.In order to accomplish the above object, a multi-arithmetic and logic unit for public-key cryptography according to the present invention is characterized in that at a beginning of an operation, an argument value is called from a lower bit stored in a memory to a register, and an intermediate value An intermediate result value operation unit for performing a partial multiply operation on the redundant multiply operation unit located in the same column from the lower bit and storing the intermediate result value in a memory, judges whether a multiplication operation for all redundant columns is performed in the intermediate result value operation unit An operation confirmation unit for determining whether a final result value operation has been performed on all the columns; if it is determined that the intermediate result value operation has been performed, a previously calculated intermediate result value is fetched from a lower bit and a 1-bit logical left shift An intermediate result value addition operation unit for performing an addition operation or a addition operation; And a final result arithmetic unit for performing a multiplication operation on a part where the multiplication is performed only once in the same column as the intermediate value and storing the final result value in a memory.

여기서, 다중 제곱 연산을 위한 곱셈 연산 구조는, 부분 곱셈 순서를 나타내는 블록과, 중복되는 부분 곱셈이 필요한 블록과, 왼쪽 논리적 1-bit shift 혹은 덧셈 연산을 이용하여 곱하기 2연산이 수행되는 영역과,한 번의 부분 곱셈이 필요한 블록과, 한 번의 곱셈이 필요한 영역과, 곱셈 결과값 인자를 나타내는 부분과, 곱셈 입력 인자를 나타내는 부분과, 한 번의 부분 곱셈이 필요한 영역과, 한 번의 곱셈이 필요한 영역과, 두 번의 부분 곱셈이 필요한 영역과, 왼쪽 논리적 1-bit shift를 통한 곱하기 2연산이 수행되는 영역으로 구성되는 것을 특징으로 한다.Here, the multiply operation structure for the multiple-squared operation includes a block indicating a partial-multiply order, a block requiring overlapping partial multiplication, a region where a multiplication 2 operation is performed using the left logical 1-bit shift or addition operation, A block that requires one partial multiplication, a region that requires a single multiplication, a portion that represents a multiplication result value factor, a portion that represents a multiplication input factor, a region that requires one partial multiplication, a region that requires a single multiplication, , An area where two partial multiplications are required, and an area where a multiplication 2 operation is performed through the left logical 1-bit shift.

다른 목적을 달성하기 위한 본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 방법은 연산 초기에 메모리에 저장된 하위 비트에서부터 인자값을 레지스터로 불러와서 하위 비트에서부터 같은 열에 위치한 중복 곱셈 부분에 대해 부분 곱셈 연산을 한번 수행하고 중간 결과값을 메모리에 저장하는 단계;모든 중복 열에 대한 곱셈 연산이 이루어졌는지 판단하는 단계;중간 결과값 연산이 이루어진 것으로 판단되면 하위 비트부터 이전에 계산된 중간 결과값을 불러오는 단계;중간 결과값 추가 연산을 위하여 해당 중간값에 대한 1-비트 논리적 왼쪽 이동 또는 더하기 연산을 수행하는 단계;최종 결과값 연산을 위하여 해당 중간값과 동일한 열에 위치한 한번만 곱셈이 수행되는 부분에 대해 곱셈 연산을 하여 최종 결과값을 메모리에 저장하는 단계;를 포함하는 것을 특징으로 한다.In order to accomplish the above object, a multiple-square operation method for public-key cryptography according to the present invention includes the steps of loading a lower-order bit stored in a memory into a register, Storing intermediate result values in a memory, determining whether a multiplication operation has been performed on all redundant columns, and if the intermediate result value operation has been performed, fetching a previously calculated intermediate result value from a lower bit; Performing a 1-bit logical left shift or addition operation on the corresponding intermediate value to perform an intermediate result addition operation, and performing a multiplication operation on a portion of the same value in the same column as the corresponding intermediate value, And storing the final result value in a memory; And it characterized in that.

여기서, 최종 결과값 연산을 하여 메모리에 저장하고, 모든 열에 대하여 최종 결과값 연산이 이루어졌는지 판단하여, 중간 결과값 연산 및 최종 결과값 연산을 반복하는 것을 특징으로 한다.Here, the final result value calculation is performed and stored in the memory, and it is determined whether the final result value calculation has been performed for all the columns, and the intermediate result value calculation and the final result value calculation are repeated.

그리고 다중 제곱 연산을 위한 곱셈 과정에서, 중복되는 곱셈의 영역을 나타내는 부분에 위치한 부분곱셈에 대한 곱셈을 수행하는 단계에서의 곱셈 수행 순서는 중복되는 부분 곱셈의 가장 하위 부분(A[0]*A[1])부터 상위 부분(A[6]*A[7])으로 이동해가며 수행하고, 중복되는 부분 곱셈이 수행되는 부분에서는 동일한 열에 대한 부분 곱셈을 먼저 수행하는 것을 특징으로 한다.In the multiplication for multiply-multiply operation, the multiplication operation in the multiplication for the partial multiplication located in the portion indicating the area of the overlapping multiplication is performed in the order of the lowest part (A [0] * A (A [6] * A [7]) to the upper part (A [6] * A [7]). In the part where the overlapping partial multiplication is performed, partial multiplication of the same column is performed first.

이와 같은 본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 장치 및 방법은 다음과 같은 효과를 갖는다.The multi-arithmetic operation apparatus and method for public-key cryptography according to the present invention have the following effects.

첫째, 제곱 연산을 효율적으로 수행하기 위해 전체 제곱 연산 중 동일한 결과값을 도출하는 부분과 그렇지 않은 부분을 나누어 계산함으로써 불필요한 부분 곱셈 연산을 효과적으로 줄일 수 있다. First, in order to efficiently perform the squaring operation, it is possible to effectively reduce unnecessary partial multiplication operations by dividing the portion where the same result is derived and the portion where the same result is derived in the whole squaring operation.

둘째, 이전에 계산되지 않은 부분 곱셈 영역을 동시에 처리하는 방법을 통해 메모리에 대한 접근을 줄이고 산술 연산 횟수를 효율적으로 줄일 수 있다.Second, it is possible to reduce access to memory and reduce the number of arithmetic operations efficiently by simultaneously processing the previously uncomputed partial multiplication areas.

셋째, 다중제곱연산으로 공개키 연산을 수행하여 해당 연산을 최적화하여 암호화 연산 속도를 효과적으로 높일 수 있다.Third, it is possible to effectively increase the encryption operation speed by optimizing the corresponding operation by performing a public key operation by a multiple square operation.

넷째, 제곱 연산이 곱셈 연산과 달리 동일한 인자에 대한 곱셈 연산을 수행하는 것을 이용하여 인자에 대한 접근 횟수를 줄이고 중복되는 부분 곱셈에 보다 효율적인 연산 구조를 선택할 수 있어 연산 복잡도를 낮출 수 있다.
Fourth, the complexity of computation can be reduced by reducing the number of accesses to the factor and choosing a more efficient operation structure for the overlapping partial multiplication by using the multiplication operation for the same factor unlike the multiplication operation.

도 1은 본 발명에 따른 다중 제곱 연산의 순서를 세모 형 표기 방식으로 나타낸 구성도
도 2는 본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 장치의 구성도
도 3은 본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 방법을 나타낸 플로우 차트
FIG. 1 is a block diagram showing a sequence of multiple square operations according to the present invention in a triplet notation system
2 is a block diagram of a multi-arithmetic unit for public key encryption according to the present invention.
FIG. 3 is a flowchart illustrating a multiple-square operation method for public-key cryptography according to the present invention.

이하, 본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 장치 및 방법의 바람직한 실시 예에 관하여 상세히 설명하면 다음과 같다.Hereinafter, a preferred embodiment of a multi-arithmetic operation apparatus and method for public-key cryptography according to the present invention will be described in detail.

본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 장치 및 방법의 특징 및 이점들은 이하에서의 각 실시 예에 대한 상세한 설명을 통해 명백해질 것이다.The features and advantages of the apparatus and method of multiple squaring for public key cryptography according to the present invention will be apparent from the detailed description of each embodiment below.

도 1은 본 발명에 따른 다중 제곱 연산의 순서를 세모 형 표기 방식으로 나타낸 구성도이다.FIG. 1 is a diagram showing a sequence of a multiple square operation according to the present invention in a triplet notation system.

그리고 도 2는 본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 장치의 구성도이다.And FIG. 2 is a block diagram of a multiple-squaring computing device for public-key cryptography according to the present invention.

본 발명에서 제시하는 다중제곱연산은 공개키 연산을 수행하기 위한 핵심적인 부분으로써 해당 연산을 최적화는 암호화 연산 속도를 효과적으로 높일 수 있는 방안이다.The multi-arithmetic operation proposed in the present invention is a core part for performing a public key operation, and optimization of the operation is an effective way to increase the encryption operation speed.

이를 위하여, 본 발명에서는 임베디드 마이크로 프로세서상에서 다중 제곱연산을 효율적으로 처리하기 위한 연산 방법을 제안한다.To this end, the present invention proposes an operation method for efficiently performing a multiple-square operation on an embedded microprocessor.

제곱 연산은 곱셈 연산과 달리 동일한 인자에 대한 곱셈 연산을 수행하게 된다. 이러한 특성을 이용하여 인자에 대한 접근 횟수를 줄이고 중복되는 부분 곱셈에 보다 효율적인 연산 구조를 선택하게 된다면 연산 복잡도를 낮출 수 있다.The squaring operation performs a multiplication operation on the same factor as the multiplication operation. By using these characteristics, it is possible to lower the computational complexity by reducing the number of accesses to the factor and selecting a more efficient operation structure for the overlapping partial multiplication.

예를 들어, 제곱 연산을 인자 A에 대해서 취한다고 생각하고 해당 인자의 크기(l)는 다시 마이크로 프로세서의 워드 사이즈(w)로 나눈 값(n=l/w)으로 표기하면 A=(A[n-1], ..., A[1], A[0])과 같이 나누어 생각해 볼 수 있다.For example, suppose that we take a square operation with respect to a factor A, and the magnitude (l) of the factor is again divided by the word size (w) of the microprocessor (n = l / w) n-1], ..., A [1], A [0].

여기서, A[0]*A[1] 결과값은 A[1]*A[0]과 동일하다.Here, the result value of A [0] * A [1] is the same as A [1] * A [0].

따라서, 중복되는 부분 중 한쪽 부분 곱셈만을 같은 열에 위치한 결과값을 같이 수행하는 곱셈기법으로 계산한다.Therefore, only one partial multiplication among the overlapping parts is calculated by a multiplication technique that performs a result value located in the same column together.

여기서 도출된 결과값에 곱하기 2를 하여 동일한 결과값을 도출하게 되며 이는 왼쪽 논리적 1-bit shift 혹은 덧셈 연산을 전체 결과값에 대하여 수행하여 계산할 수 있다.The resulting value is multiplied by 2 to yield the same result, which can be calculated by performing the left logical 1-bit shift or addition on the total result.

이때 A[0]*A[0]과 같이 한번만 연산이 수행되어야 하는 부분 곱셈 영역이 최종 결과값에 더해지게 된다.In this case, a partial multiplication area to be operated only once, such as A [0] * A [0], is added to the final result value.

도 1은 본 발명에서 제안하는 다중 제곱 연산의 구성을 나타낸 것이다.FIG. 1 shows a configuration of a multi-squaring operation proposed in the present invention.

도 1에서와 같이, 곱셈 연산 구조도(100)는 네모 도형을 통해 부분 곱셈 순서를 나타내는 블록(110), 중복되는 부분 곱셈이 필요한 블록(120), 왼쪽 논리적 1-bit shift 혹은 덧셈 연산을 이용하여 곱하기 2연산이 수행되는 영역(130), 한 번의 부분 곱셈이 필요한 블록(140), 한 번의 곱셈이 필요한 영역(150), 곱셈 결과값 인자(160), 곱셈 입력 인자(170), 한 번의 부분 곱셈이 필요한 영역(180), 한 번의 곱셈이 필요한 영역(190), 두 번의 부분 곱셈이 필요한 영역(200), 왼쪽 논리적 1-bit shift를 통한 곱하기 2연산이 수행되는 영역(210)으로 구성된다.As shown in FIG. 1, the multiplication operation structure diagram 100 includes a block 110 indicating a partial multiplication order through a square, a block 120 requiring overlapping partial multiplication, a left logical 1-bit shift or an addition operation A multiplication result input field 170, a multiplication result input field 170, and a multiplication result input field 170. The multiplication result input field 170 includes a region 130 in which a multiplication 2 operation is performed, a block 140 in which a partial multiplication is required, an area 150 in which a single multiplication is required, An area 190 requiring partial multiplication, an area 190 requiring a single multiplication, an area 200 requiring two partial multiplications, and an area 210 performing a multiplication 2 operation through a left logical 1-bit shift do.

곱셈 연산 구조도(100)는 블록도와 세모꼴 표기 방법을 이용하여 부분 곱셈 연산의 순서와 방법을 효과적으로 표기한 것이다.The multiplication operation structure diagram 100 effectively represents the order and method of the partial multiplication operation using the block and triplet notation methods.

부분 곱셈 순서를 나타내는 블록(110)은 부분 곱셈 연산 순서를 직관적으로 표기하기 위해 사용되며, 작은 네모 도형은 한 번의 부분 곱셈을 나타내며 회색 바탕은 곱하기 2연산이 필요한 영역 흰색 바탕은 필요하지 않은 영역으로 구분된다. The block 110 representing the partial multiplication order is used to intuitively indicate the partial multiplication operation order, the small square shape represents one partial multiplication, and the gray background is multiplication. Respectively.

곱셈 순서는 위에서부터 아래로 순차적으로 수행된다.The order of multiplication is performed sequentially from top to bottom.

그리고 중복되는 부분 곱셈이 필요한 블락(120)은 A[0]*A[1] 과 A[1]*A[0]과 같이 동일한 결과값을 만들어 내는 부분에 대해 표기로써 한 번의 부분 곱셈 후 곱하기 2연산이 수행된다.The block 120, which requires overlapping partial multiplication, is a representation of a portion that produces the same result as A [0] * A [1] and A [1] * A [0] 2 operation is performed.

회색으로 표기된 중복되는 부분 곱셈이 필요한 영역(130)은 중복되는 부분 곱셈 결과를 얻기 위해 곱하기 2연산을 논리적 왼쪽 shift 혹은 덧셈연산을 이용하여 동일한 결과값을 얻을 수 있다.The gray area 130, which requires overlapping partial multiplication, can obtain the same result value by using a logical left shift or addition operation to obtain a duplicate partial multiplication result.

여기서, 점선은 곱하기 2연산을 효율적으로 수행하기 위해 한 번에 수행되는 계산 영역을 나누어 표기한다.Here, the dotted line represents the division of the calculation area performed at one time in order to efficiently perform the multiplication 2 calculation.

한번만 수행되는 곱셈 블록(140)은 A[0]*A[0]과 A[1]*A[1]과 같이 전체 곱셈 연산에서 한번만 계산을 하면 되는 부분 곱셈을 의미한다.The multiplication block 140, which is executed only once, means a partial multiplication that requires calculation only once in the entire multiplication operation such as A [0] * A [0] and A [1] * A [1].

한번만 부분 곱셈이 필요한 영역(150)은 전체 곱셈 연산에서 한 번만 부분 곱셈 연산이 수행되는 부분을 나타낸다.The area 150, which requires partial multiplication only once, represents the part where the partial multiplication operation is performed only once in the whole multiplication operation.

결과값의 인덱스(160)를 나타내는 표기로써 괄호 안의 숫자는 해당 결과값의 인덱스를 나타낸다. 세모꼴의 오른쪽부터 하위 비트를 나타내며 왼쪽은 상위 비트를 나타낸다. 도면에 나타난 세모꼴에서는 세로축을 기준으로 동일한 부분곱셈 결과값이 도출되도록 설계되어 있다.The number in parentheses indicates the index of the result value. The triangle indicates the lower bit from the right and the left indicates the upper bit. In the triplet shown in the figure, the same partial multiplication result value is designed based on the vertical axis.

부분곱셈의 입력 인자의 인덱스(170)를 나타내는 표기로써 두 개의 A인자의 인덱스는 부분 곱셈에 들어가는 입력 인자를 표기한다. 세모 꼴에서 한 줄씩 위로 올라가거나 밑으로 내려가면 인자의 인덱스가 증가하게 된다.The indices of the two multiplication factors, index 170, represent the input factors for the partial multiplication. If you go up or down one line at a triangle, the index of the factor increases.

한번만 부분곱셈이 수행되는 곳(180)을 나타내는 흰색 원은 한 번의 부분 곱셈만이 필요한 부분을 나타낸다.A white circle indicating where the partial multiplication is performed once (180) indicates a portion where only one partial multiplication is required.

한번만 부분곱셈이 수행되는 영역(190)을 나타내는 점선은 한 번의 부분 곱셈이 필요한 영역을 표기한다.The dotted line representing the area 190 in which the partial multiplication is performed only indicates an area requiring one partial multiplication.

중복되는 부분 곱셈이 수행되는 곳(200)을 나타내는 검은색 원은 중복되는 부분 곱셈이 필요한 부분을 나타낸다.A black circle indicating where the overlapping partial multiplication is performed (200) indicates a portion where overlapping partial multiplication is required.

그리고 중복되는 부분 곱셈이 수행되는 영역(210)을 나타내는 회색 부분은 중복되는 곱셈이 수행되는 영역을 나타내며 나누어진 회색 부분은 수행되는 곱하기 2연산이 여러 번으로 나누어져서 수행됨을 나타낸다.The gray portion indicating the area 210 where the overlapping partial multiplication is performed represents the area where the overlapping multiplication is performed and the divided gray part indicates that the multiplication 2 operation performed is divided into several operations.

도 2는 본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 장치를 나타낸 것으로, 연산 초기에 메모리에 저장된 하위 비트에서부터 인자값을 레지스터로 불러오고, 연산 중간에 중간 결과값을 레지스터로 불러오는 인자값 리드부(20)와, 하위 비트에서부터 같은 열에 위치한 중복 곱셈 부분에 대해 부분 곱셈 연산을 한번 수행하고 중간 결과값을 메모리에 저장하는 중간 결과값 연산부(21)와, 모든 중복 열에 대한 곱셈 연산이 중간 결과값 연산부(21)에서 이루어졌는지 판단하고, 모든 열에 대하여 최종 결과값 연산이 이루어졌는지 판단하는 연산 확인부(22)와, 중간 결과값 연산이 이루어진 것으로 판단되면 하위 비트부터 이전에 계산된 중간 결과값을 불러와서 해당 중간값에 대한 1-비트 논리적 왼쪽 이동 또는 더하기 연산을 수행하는 중간 결과값 추가 연산부(23)와, 해당 중간값과 동일한 열에 위치한 한번만 곱셈이 수행되는 부분에 대해 곱셈 연산을 하여 최종 결과값을 메모리에 저장하는 최종 결과값 연산부(24)를 포함한다.FIG. 2 is a block diagram of a multi-arithmetic operation apparatus for public key encryption according to the present invention. Referring to FIG. 2, An intermediate result value operation unit 21 for performing a partial multiply operation on the redundant multiply operation unit located in the same column from the lower bit and storing the intermediate result value in a memory, Value operation unit 21 and determining whether a final result value operation has been performed on all the columns; and a computation confirmation unit 22 for determining whether an intermediate result value operation has been performed for all the columns, To add an intermediate result value that performs a 1-bit logical left shift or addition operation on the corresponding intermediate value And a final result value operation unit 24 for performing a multiplication operation on the part where the multiplication is performed only once in the same column as the intermediate value and storing the final result value in a memory.

이와 같은 본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 장치에서의 다중 제곱 연산의 곱셈 순서는 중복되는 곱셈의 영역을 나타내는(130, 210)부분에 위치한 부분곱셈(120, 200)에 대한 곱셈을 수행한다.The multiplication order of the multiple squaring operation in the multiple squaring operation for the public key cryptosystem according to the present invention is a multiplication operation for the partial multipliers 120 and 200 located in the portions 130 and 210 representing the overlapping multiplication regions .

곱셈 수행 순서는 부분 곱셈 순서를 나타내는 블록(110)에 나타난 블록들과 같이 중복되는 부분 곱셈의 가장 하위 부분(A[0]*A[1], 도면의 상위부분)부터 상위 부분(A[6]*A[7], 도면의 하위부분)으로 이동해가며 수행한다.The order of performing the multiplication is determined from the lowest part (A [0] * A [1], upper part of the figure) of the overlapping partial multiplication to the upper part A [6 ] * A [7], the lower part of the figure).

그리고 계산된 중복되는 부분(130, 210)에 대해 곱하기 2연산을 하면서 한번만 부분곱셈이 수행되는 부분(180,190)에 대해 하위 부분(A[0]*A[0])부터 상위 부분(A[7]*A[7])으로 이동해가며 수행한다.A [0] * A [0] to the upper portion A [0] * A [0] for the portion 180,190 where the partial multiplication is performed only once while performing the multiplication 2 operation on the calculated overlapping portions 130 and 210 ] * A [7]).

그리고 중복되는 부분 곱셈이 수행되는 부분(130, 210)에서는 동일한 열에 대한 부분 곱셈이 먼저 수행한다.In the portions 130 and 210 where the partial multiplication is performed, the partial multiplication of the same column is performed first.

예를 들어, C[5]의 위치에 결과값이 위치하는 부분곱셈 A[0]*A[5], A[1]*A[4], A[2]*A[3]은 한 번에 수행되며 그 다음에는 C[6]의 위치에 결과값이 위치하는 부분곱셈 A[0]*A[6], A[1]*A[5], A[2]*A[4]가 수행되는 방식으로 하위부분에서 상위부분으로 이동해 가며 수행한다.For example, partial multiplication A [0] * A [5], A [1] * A [4], A [2] * A [3] where the result is located at position C [ A [6], A [1] * A [5], A [2] * A [4] where the result is located at position C [6] It is performed by moving from the lower part to the upper part in the manner that is performed.

그리고 계산된 중복되는 부분(130, 210)에 대한 곱하기 2연산은 계산 결과값에 대해 논리적 왼쪽 shift연산 혹은 결과 값 자체를 두 번 더함으로써 동일한 계산 결과를 수행한다.And the multiplication 2 operation on the calculated overlapping portions 130 and 210 performs the same calculation by adding the logical left shift operation or the result value itself twice to the calculation result value.

예를 들어, 중간 결과값이 3인 경우 곱하기 2연산을 해서 (3*2)=6이라는 결과값을 얻어 올 수도 있지만 shift연산을 통해 3<<1=6을 계산하는 것이 가능하다.For example, if the intermediate result is 3, you can get the result of (3 * 2) = 6 by multiplying by 2 operations, but it is possible to calculate 3 << 1 = 6 through the shift operation.

또한, 덧셈을 통해 3+3=6을 계산하는 것이 가능하고, 본 발명에서는 중복된 계산 결과값에 대해 덧셈과 shift 연산을 통해 계산한다.Also, it is possible to calculate 3 + 3 = 6 through addition, and in the present invention, calculation of the duplicated calculation result value is performed through addition and shift operation.

그리고 중복된 계산 결과값을 나타내는 부분(210)의 경우는 세모 형식으로 나타난 예시에서 총 3부분으로 나누어지는데, 해당 나눔은 한 번에 수행하는 곱하기 2연산과 한번만 부분곱셈이 수행되는 부분을 나타낸다.In the case of the portion 210 indicating the duplicated calculation result value, the division is divided into three parts in the example shown in the triangle format, and the division shows a portion in which a multiplication 2 operation performed at one time and a partial multiplication is performed only once.

이렇게 나누어서 계산하는 이유는 임베디드 프로세서는 주어진 레지스터의 수가 한정적이기 때문에 모든 인자들의 값을 한 번에 계산하는 것이 불가능하기 때문이다. 따라서, 곱하기 2연산과 한번만 부분곱셈이 수행되는 부분을 레지스터 자원에 따라 나누어 계산한다.This is because the embedded processor is limited in the number of registers given, so it is impossible to calculate the values of all the arguments at once. Therefore, the division where the multiplication 2 operation and the partial multiplication are performed only once is divided by the register resource.

이와 같은 본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 장치에서의 다중 제곱 연산 과정을 설명하면 다음과 같다.The multi-arithmetic operation in the multi-arithmetic unit for public-key cryptography according to the present invention will now be described.

도 3은 도 1에서 나타낸 곱셈 연산 구조도(100)를 따라 수행되는 것으로, 전체 제곱연산을 수행하기 위해 부분곱셈과 메모리에 대한 접근 순서를 설명하기 위한 것이다.FIG. 3 is performed according to the multiplication operation structure diagram 100 shown in FIG. 1, and is for explaining a partial multiplication and a memory access sequence in order to perform a full square operation.

먼저, 인자값 리드부(20)에서 연산 초기에 메모리에 저장된 하위 비트에서부터 인자값을 레지스터로 불러온다.(S301)First, in the print value read unit 20, a print value is loaded into a register from a lower bit stored in a memory at the beginning of the operation (S301)

그리고 중간 결과값 연산부(21)에서 하위 비트에서부터 같은 열에 위치한 중복 곱셈 부분에 대해 부분 곱셈 연산을 한번 수행하고 중간 결과값을 메모리에 저장한다.(S302)The intermediate result value operation unit 21 performs a partial multiplication operation on the redundant multiplication unit located in the same column from the lower bit and stores the intermediate result value in the memory (S302).

연산 확인부(22)에서 모든 중복 열에 대한 곱셈 연산이 이루어졌는지 판단하고(S303), 중간 결과값 연산이 이루어진 것으로 판단되면 인자값 리드부(20)에서 하위 비트부터 이전에 계산된 중간 결과값을 불러온다.(S304)If it is determined in step S303 that the multiplication operation has been performed for all the redundant columns in the operation confirmation unit 22 and the intermediate result value operation has been performed, (S304)

이어, 중간 결과값 추가 연산부(23)에서 해당 중간값에 대한 1-비트 논리적 왼쪽 이동 또는 더하기 연산을 수행한다.(S305)Subsequently, the intermediate result value addition operation unit 23 performs a 1-bit logical left shift or addition operation on the corresponding intermediate value (S305).

그리고 최종 결과값 연산부(24)에서 해당 중간값과 동일한 열에 위치한 한번만 곱셈이 수행되는 부분에 대해 곱셈 연산을 하여 최종 결과값을 메모리에 저장하고(S306), 연산 확인부(22)에서 모든 열에 대하여 최종 결과값 연산이 이루어졌는지 판단한다.(S307)Then, the final result value operation unit 24 performs a multiplication operation on the part where the only one-time multiplication is performed in the same column as the corresponding intermediate value, and stores the final result value in the memory (S306). Then, in the operation confirmation unit 22, It is determined whether the final result value calculation has been performed (S307)

이와 같은 본 발명에 따른 공개키 암호를 위한 다중 제곱 연산 장치 및 방법은 왼쪽 논리적 1-bit shift 혹은 덧셈 연산을 이용하여 곱하기 2연산과 동일한 결과값을 도출하며 이전에 계산되지 않은 부분 곱셈 영역을 동시에 처리하는 방법을 통해 메모리에 대한 접근을 줄이고 산술 연산 횟수를 효율적으로 줄일 수 있도록 한 것이다.The multi-arithmetic operation apparatus and method for public-key cryptography according to the present invention derive the same result as the multiplication 2 arithmetic operation using the left logical 1-bit shift or addition operation, This approach reduces memory access and reduces the number of arithmetic operations efficiently.

이상에서의 설명에서와 같이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 본 발명이 구현되어 있음을 이해할 수 있을 것이다.As described above, it will be understood that the present invention is implemented in a modified form without departing from the essential characteristics of the present invention.

그러므로 명시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 하고, 본 발명의 범위는 전술한 설명이 아니라 특허청구 범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.It is therefore to be understood that the specified embodiments are to be considered in an illustrative rather than a restrictive sense and that the scope of the invention is indicated by the appended claims rather than by the foregoing description and that all such differences falling within the scope of equivalents are intended to be embraced therein It should be interpreted.

20. 인자값 리드부 21. 중간 결과값 연산부
22. 연산 확인부 23. 중간 결과값 추가 연산부
24. 최종 결과값 연산부
20. Argument value lead section 21. Intermediate result value calculating section
22. Operation confirmation unit 23. Intermediate result value addition operation unit
24. Final result value calculation unit

Claims (5)

다중 연산 제곱을 위하여,
연산 초기에 메모리에 저장된 하위 비트에서부터 인자값을 레지스터로 불러오고, 연산 중간에 중간 결과값을 레지스터로 불러오는 인자값 리드부;
하위 비트에서부터 같은 열에 위치한 중복 곱셈 부분에 대해 부분 곱셈 연산을 한번 수행하고 중간 결과값을 메모리에 저장하는 중간 결과값 연산부;
모든 중복 열에 대한 곱셈 연산이 중간 결과값 연산부에서 이루어졌는지 판단하고, 모든 열에 대하여 최종 결과값 연산이 이루어졌는지 판단하는 연산 확인부;
중간 결과값 연산이 이루어진 것으로 판단되면 하위 비트부터 이전에 계산된 중간 결과값을 불러와서 해당 중간값에 대한 1-비트 논리적 왼쪽 이동 또는 더하기 연산을 수행하는 중간 결과값 추가 연산부;
해당 중간값과 동일한 열에 위치한 한번만 곱셈이 수행되는 부분에 대해 곱셈 연산을 하여 최종 결과값을 메모리에 저장하는 최종 결과값 연산부;를 포함하는 것을 특징으로 하는 공개키 암호를 위한 다중 제곱 연산 장치.
For multiple-arithmetic squares,
An argument value reading unit for reading an argument value from a lower bit stored in a memory at an initial stage of the operation into a register and calling an intermediate result value into a register in the middle of the operation;
An intermediate result value operator for performing a partial multiplication operation on the redundant multiplication part located in the same column from the lower bit and storing the intermediate result value in a memory;
An operation confirmation unit for determining whether a multiplication operation for all redundant columns has been performed in the intermediate result value operation unit and for determining whether a final result value operation has been performed for all the columns;
An intermediate result adding operation unit for calling a previously calculated intermediate result value from a lower bit and performing a 1-bit logically leftward shift or addition operation on the corresponding intermediate value if it is determined that the intermediate result value operation has been performed;
And a final result value operation unit for performing a multiplication operation on a part where a multiplication is performed only once in the same column as the corresponding intermediate value and storing the final result value in a memory.
제 1 항에 있어서, 다중 제곱 연산을 위한 곱셈 연산 구조는,
부분 곱셈 순서를 나타내는 블록과, 중복되는 부분 곱셈이 필요한 블록과, 왼쪽 논리적 1-bit shift 혹은 덧셈 연산을 이용하여 곱하기 2연산이 수행되는 영역과,한 번의 부분 곱셈이 필요한 블록과, 한 번의 곱셈이 필요한 영역과, 곱셈 결과값 인자를 나타내는 부분과, 곱셈 입력 인자를 나타내는 부분과, 한 번의 부분 곱셈이 필요한 영역과, 한 번의 곱셈이 필요한 영역과, 두 번의 부분 곱셈이 필요한 영역과, 왼쪽 논리적 1-bit shift를 통한 곱하기 2연산이 수행되는 영역으로 구성되는 것을 특징으로 하는 공개키 암호를 위한 다중 제곱 연산 장치.
2. The method of claim 1, wherein the multiply operation structure for the multiple-
A block indicating a partial multiplication order, a block requiring overlapping partial multiplication, a region for performing a multiplication 2 operation using a left logical 1-bit shift or addition operation, a block requiring a partial multiplication, A region indicating a multiplication result factor, a portion indicating a multiplication input factor, a region requiring one partial multiplication, a region requiring a single multiplication, a region requiring two partial multiplication, a left logical And an area where a multiplication 2 operation through a 1-bit shift is performed.
다중 연산 제곱을 위하여,
연산 초기에 메모리에 저장된 하위 비트에서부터 인자값을 레지스터로 불러와서 하위 비트에서부터 같은 열에 위치한 중복 곱셈 부분에 대해 부분 곱셈 연산을 한번 수행하고 중간 결과값을 메모리에 저장하는 단계;
모든 중복 열에 대한 곱셈 연산이 이루어졌는지 판단하는 단계;
중간 결과값 연산이 이루어진 것으로 판단되면 하위 비트부터 이전에 계산된 중간 결과값을 불러오는 단계;
중간 결과값 추가 연산을 위하여 해당 중간값에 대한 1-비트 논리적 왼쪽 이동 또는 더하기 연산을 수행하는 단계;
최종 결과값 연산을 위하여 해당 중간값과 동일한 열에 위치한 한번만 곱셈이 수행되는 부분에 대해 곱셈 연산을 하여 최종 결과값을 메모리에 저장하는 단계;를 포함하는 것을 특징으로 하는 공개키 암호를 위한 다중 제곱 연산 방법.
For multiple-arithmetic squares,
Fetching a factor value from a lower bit stored in a memory at a beginning of an operation to a register, performing a partial multiplication operation on a redundant multiplication portion located in the same column from a lower bit, and storing an intermediate result value in a memory;
Determining whether a multiplication operation has been performed on all redundant columns;
If it is determined that the intermediate result value operation has been performed, fetching the previously calculated intermediate result value from the lower bit;
Performing a 1-bit logical left shift or addition operation on the intermediate value for the intermediate result value addition operation;
And performing a multiplication operation on a part where a multiplication is performed only once in the same column as the intermediate value for the final result value operation and storing the final result value in a memory. Way.
제 3 항에 있어서, 최종 결과값 연산을 하여 메모리에 저장한 이후에,
모든 열에 대하여 최종 결과값 연산이 이루어졌는지 판단하여, 중간 결과값 연산 및 최종 결과값 연산을 반복하는 것을 특징으로 하는 공개키 암호를 위한 다중 제곱 연산 방법.
4. The method of claim 3, wherein after the final result value calculation is performed and stored in the memory,
Determining whether a final result value operation has been performed on all the columns, and repeating the intermediate result value operation and the final result value operation.
제 3 항에 있어서, 다중 제곱 연산을 위한 곱셈 과정에서,
중복되는 곱셈의 영역을 나타내는 부분에 위치한 부분곱셈에 대한 곱셈을 수행하는 단계에서의 곱셈 수행 순서는 중복되는 부분 곱셈의 가장 하위 부분(A[0]*A[1])부터 상위 부분(A[6]*A[7])으로 이동해가며 수행하고,
중복되는 부분 곱셈이 수행되는 부분에서는 동일한 열에 대한 부분 곱셈을 먼저 수행하는 것을 특징으로 하는 공개키 암호를 위한 다중 제곱 연산 방법.

4. The method of claim 3, wherein in the multiplication for multiply-
The sequence of performing the multiplication for the partial multiplication located at the portion indicating the overlapping multiplication area is the order from the lowest portion (A [0] * A [1]) of the overlapping partial multiplication to the upper portion (A [ 6] * A [7]),
Wherein partial multiplication of the same column is performed first in a portion in which overlapping partial multiplication is performed.

KR1020140041475A 2014-04-07 2014-04-07 System and Method for multi-precision Squaring for Public Key Cryptography KR101562323B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140041475A KR101562323B1 (en) 2014-04-07 2014-04-07 System and Method for multi-precision Squaring for Public Key Cryptography

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140041475A KR101562323B1 (en) 2014-04-07 2014-04-07 System and Method for multi-precision Squaring for Public Key Cryptography

Publications (2)

Publication Number Publication Date
KR20150116339A true KR20150116339A (en) 2015-10-15
KR101562323B1 KR101562323B1 (en) 2015-10-21

Family

ID=54356945

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140041475A KR101562323B1 (en) 2014-04-07 2014-04-07 System and Method for multi-precision Squaring for Public Key Cryptography

Country Status (1)

Country Link
KR (1) KR101562323B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101974779B1 (en) * 2018-04-16 2019-05-02 고려대학교 세종산학협력단 Pipelined squarer for unsigned integers of up to 16 bits

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101974779B1 (en) * 2018-04-16 2019-05-02 고려대학교 세종산학협력단 Pipelined squarer for unsigned integers of up to 16 bits

Also Published As

Publication number Publication date
KR101562323B1 (en) 2015-10-21

Similar Documents

Publication Publication Date Title
KR100891323B1 (en) Method and apparatus to increase complexity of power analysis based on random point representation in binary field Elliptic Curve CryptographyECC
KR101194837B1 (en) Cryptographic apparatus and method for fast computation of blinding-exponent DPA countermeasure
US20230379133A1 (en) Multiplicative masking for cryptographic operations
CN109039640B (en) Encryption and decryption hardware system and method based on RSA cryptographic algorithm
CN112988237B (en) Paillier decryption system, chip and method
US20220085999A1 (en) System and method to optimize decryption operations in cryptographic applications
US11902432B2 (en) System and method to optimize generation of coprime numbers in cryptographic applications
US10721056B2 (en) Key processing method and device
CN104917608A (en) Key anti-power attack method
KR20210081471A (en) Non-transitory computer-readable medium storing program code, decryption device, and communication system including encryption device and decryption device
US20220085998A1 (en) System and method to generate prime numbers in cryptographic applications
Dong et al. Ec-ecc: Accelerating elliptic curve cryptography for edge computing on embedded gpu tx2
US11522669B2 (en) Using cryptographic blinding for efficient use of Montgomery multiplication
EP3202079B1 (en) Exponent splitting for cryptographic operations
Chen et al. Integer arithmetic over ciphertext and homomorphic data aggregation
Seo et al. Performance enhancement of TinyECC based on multiplication optimizations
KR101562323B1 (en) System and Method for multi-precision Squaring for Public Key Cryptography
Vollala et al. Efficient modular exponential algorithms compatible with hardware implementation of public‐key cryptography
JP2010139544A (en) Apparatus and method for calculating remainder
CN104579651A (en) Method and device for elliptic curve cryptography point multiplication operation
CN110493003B (en) Rapid encryption system based on four-base binary system bottom layer modular operation
Nykolaychuk et al. Residue Number System Asymmetric Cryptoalgorithms
CN113612799A (en) Block chain hash encryption method and device based on SM2 algorithm
KR100974624B1 (en) Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it
CN113467752B (en) Division operation device, data processing system and method for private calculation

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
FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 4