KR20040050742A - Apparatus for public key cryptography on the prime field - Google Patents

Apparatus for public key cryptography on the prime field Download PDF

Info

Publication number
KR20040050742A
KR20040050742A KR1020020077902A KR20020077902A KR20040050742A KR 20040050742 A KR20040050742 A KR 20040050742A KR 1020020077902 A KR1020020077902 A KR 1020020077902A KR 20020077902 A KR20020077902 A KR 20020077902A KR 20040050742 A KR20040050742 A KR 20040050742A
Authority
KR
South Korea
Prior art keywords
public key
rsa
register
cryptographic
data
Prior art date
Application number
KR1020020077902A
Other languages
Korean (ko)
Other versions
KR100498754B1 (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 KR10-2002-0077902A priority Critical patent/KR100498754B1/en
Publication of KR20040050742A publication Critical patent/KR20040050742A/en
Application granted granted Critical
Publication of KR100498754B1 publication Critical patent/KR100498754B1/en

Links

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
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Abstract

PURPOSE: A public key encryption apparatus based on the prime field is provided, which improves the efficiency of the system as well is commonly utilized in various system required to operate encryption operation. CONSTITUTION: A public key encryption apparatus(100) based on the prime field includes a register(110), an RSA operational block(160), a modular inverse element calculation block(175), an ellipse curve calculation block(180), a modular operational block(170) and a controller(130). The register(110) stores the various data for the encryption operation. The RSA operational block(160) performs the RSA public key encryption operation. The modular inverse element calculation block(175) calculates the inverse element of the data based on the prime field. The ellipse curve calculation block(180) performs the ellipse curve public key encryption operation. The modular operational block(170) performs the repeat operation in the unit of the 32 bits so as to perform the RSA/ellipse curve encryption operations. And, the controller(130) reads/writes the data required to the encryption operation from the register(110) and controls the operations of each block to perform the encryption operation.

Description

소수체를 기반으로 하는 공개키 암호장치{APPARATUS FOR PUBLIC KEY CRYPTOGRAPHY ON THE PRIME FIELD}Public key cryptography based on primes {APPARATUS FOR PUBLIC KEY CRYPTOGRAPHY ON THE PRIME FIELD}

본 발명은 공개키 암호장치에 관한 것으로, 특히 시스템에서 개인 정보를 보호하고 내부 정보를 보호하기 위한 인증, 키 교환 및 전자서명 매커니즘을 위해 널리 사용되는 공개키 암호 알고리즘 중 RSA 공개키 암호알고리즘과 타원곡선 암호알고리즘을 동일한 시스템에서 모두 수행하는 공개키 암호장치 및 그 방법에 관한 것이다.The present invention relates to a public key cryptography device, and in particular, RSA public key cryptography algorithm and ellipse among public key cryptography algorithms widely used for authentication, key exchange and digital signature mechanisms to protect personal information and internal information in the system. The present invention relates to a public key cryptography device and a method for performing curved cryptographic algorithms all on the same system.

근래 정보화 사회에서 음성, 화상 및 각종 데이터들을 이용한 정보의 공유 및 저장을 위한 시스템에서 데이터의 신뢰성과 안전성은 필수적이며, 이러한 신뢰성을 제공하기 위한 목적으로 다양한 암호 알고리즘이 사용되어지고 있다. 이러한 암호 알고리즘 중, 공개키 암호 알고리즘은 다양한 공개키 기반 시스템에서 인증, 키 교환 및 전자서명과 같은 보안 특성을 제공한다.Recently, reliability and safety of data are essential in a system for sharing and storing information using voice, video, and various data in an information society, and various cryptographic algorithms have been used for the purpose of providing such reliability. Among these cryptographic algorithms, public key cryptographic algorithms provide security features such as authentication, key exchange and digital signature in various public key based systems.

공개키 암호 알고리즘 중 RSA 암호 알고리즘은 큰 수에 대하여 소인수 분해가 어렵다는 사실에 안전성의 기반을 두고 있다. 이러한 RSA 공개키 암호 알고리즘은 인증, 키 교환 및 전자 서명을 위해 가장 널리 쓰이는 공개키 암호 알고리즘이며, SET(Secure Electronic Transaction) 프로토콜과 같이 카드를 이용한 전자 상거래 및 각종 출입 통제 시스템 등에 채택되어 사용되어지고 있다.Among public key cryptographic algorithms, the RSA cryptographic algorithm is based on the safety that the factorization of large numbers is difficult. These RSA public key cryptographic algorithms are the most widely used public key cryptographic algorithms for authentication, key exchange, and digital signature, and are adopted and used in electronic commerce and various access control systems using cards such as the SET (Secure Electronic Transaction) protocol. have.

일반적으로 RSA 공개키 암호회로는 RSA 암, 복호 연산을 수행하기 위해, 아래의 [수학식 1]에서와 같은 모듈러 멱승 연산을 수행한다. 하기 [수학식 1]에서 X는 암호화 할 데이터, C 는 암호화 연산을 수행한 암호문, e 는 공개키, d 는 비밀키, M 은 모듈러스 값을 각각 나타낸다.In general, the RSA public key cryptographic circuit performs a modular power operation as shown in Equation 1 below to perform an RSA encryption and decryption operation. In Equation 1, X denotes data to be encrypted, C denotes a ciphertext that performs an encryption operation, e denotes a public key, d denotes a secret key, and M denotes a modulus value.

RSA 암호화 연산 : C = Xemod MRSA encryption operation: C = X e mod M

RSA 복호화 연산 : X = Cdmod MRSA decryption operation: X = C d mod M

상기 [수학식 1]에서와 같이 RSA 암호 알고리즘의 연산을 위한 모듈러 멱승을 위해서는 반복적인 모듈러스 M을 법으로 하는 곱셈 연산이 필요하다.As shown in Equation 1, a multiplication operation based on a repetitive modulus M is required for the modular power of the RSA cryptographic algorithm.

타원 곡선 암호 알고리즘은 타원곡선 상의 점들의 이산 대수의 어려움에 안전성의 근간을 두고 있으며, 기존의 RSA 공개키 암호보다 비트 당 안전성이 높으므로 Diffie-Hellman 키 교환 및 ECDSA, DSS와 같은 디지털 서명 프로토콜이나 암호화 프로토콜을 다른 공개키 암호 알고리즘에 비해 상대적으로 작은 크기의 키 값으로 제공할 수 있다.The elliptic curve cryptographic algorithm is based on the difficulty of the discrete logarithm of the points on the elliptic curve.It is more secure per bit than the existing RSA public key cryptography, so it can be used for digital signature protocols such as Diffie-Hellman key exchange and ECDSA, DSS. Encryption protocols can be provided with key values that are relatively small in size compared to other public key cryptographic algorithms.

상기 [수학식 1]에서와 같이 모듈러 멱승 연산이 RSA 공개키 암호 알로리즘의 연산의 핵심이 되는 경우, 타원곡선 암호 알로리즘의 성능은 스칼라 곱셈 연산에 의해 결정된다. 스칼라 곱셈 연산은 임의의 랜덤 수 k와 타원곡선 위의 한 점 P의 곱셈 연산으로 정의되며, 타원곡선 위의 점 P의 k 번 반복된 포인터의 덧셈 연산으로 정의된다. 이때 타원곡선의 덧셈연산은 다시 타원곡선위의 점이 되도록 아래의 [수학식 2]에서와 같이 정의되어야 한다.As shown in Equation 1, when the modular power operation becomes the core of the RSA public key cryptographic algorithm, the performance of the elliptic curve cryptographic algorithm is determined by the scalar multiplication operation. A scalar multiplication operation is defined as the multiplication operation of a random number k and a point P on an elliptic curve, and the addition operation of a pointer repeated k times of a point P on an elliptic curve. At this time, the addition operation of the elliptic curve should be defined as shown in [Equation 2] below to be a point on the elliptic curve.

이때, p>3 이고 소수인 소수체 ZP상의 타원곡선 y2=x3+ax+b 는 y2≡x3+ax+b(mod p)를 만족하는 모든 (x, y)∈ZP×ZP들의 집합으로 정의된다. 상기에서 a, b는 4a3+27b2 0(mod p)를 만족하는 a, b ∈ ZP인 상수이다.At this time, the elliptic curve y 2 = x 3 + ax + b on the hydrophobic Z P with a p> 3 minority satisfies all (x, y) ∈Z P satisfying y 2 ≡x 3 + ax + b (mod p) X is defined as a set of Ps . In the above, a, b is 4a 3 + 27b 2 Constant for a, b ∈ Z P that satisfies 0 (mod p).

상기 [수학식 2]에서 x3, y3그리고 λ의 연산은 모두 소수 p를 법으로 하는 모듈러 연산으로 나타내어 진다.In Equation 2, the operations of x 3 , y 3 and λ are all represented by a modular operation using a prime number p as a method.

그러나 상기 종래 RSA 공개키 암호 알고리즘은 안전성의 문제로 사용하는 키의 길이를 1024 비트 이상되는 큰 데이터를 사용하여 연산하며, 타원곡선의 경우에는 163 비트 이상 되는 키와 데이터를 사용한다. 더욱이 타원곡선 암호 알고리즘은 사용하는 기저체(base field)를 소수를 사용하는 경우와 다항식을 사용하는 경우에 따라 암호 연산 장치를 구현하는 방법이 달라지게 된다.However, the conventional RSA public key cryptographic algorithm calculates the length of a key used as a security problem using large data of 1024 bits or more, and in the case of an elliptic curve, it uses keys and data of 163 bits or more. Moreover, the elliptic curve cryptographic algorithm differs in how the cryptographic computing device is implemented according to the case of using a prime number and a polynomial.

이러한 키 길이의 차이에 의해 발생하는 데이터 처리량의 차이와 암호 장치를 구성하는 요소의 차이 때문에 RSA암호 연산을 위한 암호 장치와 타원곡선 암호 알고리즘 연산을 위한 암호 장치는 각각 개별적인 모듈로 제작되어 사용되고 있으며, 시스템의 호환성 및 효율성을 저하시키게 되는 문제점이 있었다.Because of the difference in data throughput caused by the difference in key length and the difference in the elements constituting the encryption device, the encryption device for RSA encryption operation and the encryption device for elliptic curve encryption algorithm operation are manufactured and used as separate modules. There was a problem that would degrade the compatibility and efficiency of the system.

따라서, 본 발명의 목적은 시스템의 보안성과 기밀성을 제공하기 위한 공개키 암호장치에 있어서, 소수체를 기반으로 연산을 수행하는 RSA 암호 알고리즘과 소수체 기반 타원곡선 암호 알고리즘을 모두 구동 가능하도록 구현된 소수체 기반 공개키 암호장치를 제공함에 있다.Accordingly, an object of the present invention is to provide a public key cryptographic apparatus for providing security and confidentiality of a system, and to implement both an RSA cryptographic algorithm and a hydrophobic-based elliptic curve cryptographic algorithm that perform operations based on a prime. The present invention provides a hydrophobic-based public key cryptography device.

상술한 목적을 달성하기 위한 본 발명은 소수체를 기반으로 하는 공개키 암호장치에 있어서, 암호 연산을 위한 각종 데이터를 저장하는 레지스터부와; RSA 공개키 암호 연산을 수행하는 RSA 연산부와; 소수체를 기반으로 하는 연산에서 데이터의 역원을 계산하는 모듈러 역원 연산부와; 타원곡선 공개키 암호 연산을 수행하는 타원곡선 연산부와; 상기 RSA/타원곡선 암호 연산을 수행하기 위해 내부 연산의 구성을 32비트 단위로 구성하여 반복 연산을 수행하는 모듈러 연산부와; 상기 레지스터부로부터 암호 연산을 위해 필요한 데이터를 리드/라이트하며, 상기 RSA 연산부와 타원곡선 연산부를 제어하여 RSA 공개키 암호 연산과 소수체에서의 타원곡선 공개키 암호 연산을 수행하고, 상기 암호 연산을 위한 각 부의 동작을 제어하는 제어부;를 포함하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a public key cryptographic apparatus based on a prime, comprising: a register unit for storing various data for cryptographic operation; An RSA operation unit performing an RSA public key cryptographic operation; A modular inverse calculating unit for calculating an inverse of data in a hydrophobic-based operation; An elliptic curve calculator configured to perform an elliptic curve public key cryptographic operation; A modular operation unit configured to perform an iterative operation by configuring an internal operation in 32-bit units to perform the RSA / elliptic curve cryptographic operation; Read / write data necessary for cryptographic operation from the register unit, control the RSA calculator and an elliptic curve operator to perform RSA public key cryptography and elliptic curve public key cryptography in the prime, and perform the cryptographic operation. And a controller for controlling the operation of each unit.

도 1은 본 발명의 실시 예에 따른 소수체 기반 공개키 암호장치 블록구성도,1 is a block diagram of a hydrophobic-based public key cryptography apparatus according to an embodiment of the present invention;

도 2는 본 발명의 실시 예에 따른 제어 레지스터의 구조도,2 is a structural diagram of a control register according to an embodiment of the present invention;

도 3은 본 발명의 실시 예에 따른 키/데이터 레지스터의 상세 블록 구성도,3 is a detailed block diagram of a key / data register according to an embodiment of the present invention;

도 4는 본 발명의 실시 예에 따른 모듈러 연산부의 상세 블록 구성도,4 is a detailed block diagram of a modular calculation unit according to an embodiment of the present invention;

도 5는 본 발명의 실시 예에 따른 공개키 연산회로 모듈 구성도.5 is a block diagram of a public key calculation circuit module according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예의 동작을 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail the operation of the preferred embodiment according to the present invention.

도 1은 본 발명의 실시 예에 따른 소수체를 기반으로 하는 공개키 암호장치의 블록 구성을 도시한 것으로, 상기 [수학식 1]에 나타낸 RSA 공개키 암호 알고리즘과 [수학식 2]에 나타낸 타원곡선 암호 알고리즘을 모두 지원하도록 설계된다.1 is a block diagram of a public key cryptographic apparatus based on a hydrophobic according to an embodiment of the present invention. The RSA public key cryptographic algorithm shown in [Equation 1] and the ellipse shown in [Equation 2] are shown in FIG. It is designed to support both curve cryptographic algorithms.

상기 도 1을 참조하면, 본 발명의 공개키 암호장치(100)는 제어 레지스터(110), 인터페이스부(120), 제어부(130), 키 레지스터(140), 데이터 레지스터(150), RSA 연산부(160), 모듈러 연산부(170), 모듈러 역원 연산부(175), 타원곡선 연산부(180) 및 시스템 버스(190)로 구성된다.Referring to FIG. 1, the public key cryptography apparatus 100 of the present invention includes a control register 110, an interface unit 120, a controller 130, a key register 140, a data register 150, and an RSA calculator ( 160, a modular operator 170, a modular inverse operator 175, an elliptic curve operator 180, and a system bus 190.

상기 제어 레지스터(110)는 본 발명에 따른 소수체를 기반으로 하는 공개키 암호장치의 연산을 제어하는 제어신호를 입력받아 지정된 비트 위치에 저장하고, 연산이 끝난 경우, 연산이 종료되었음을 알려주는 인터럽틀 설정하기 위한 데이터를 지정한다. 인터페이스부(120)는 암호 연산을 위해 시스템 버스를 통해 공개키 암호장치로 전송되는 데이터와 제어신호를 입력받아 공개키 암호장치 내부로 전송하거나 처리하며, 공개키 암호장치에서 수행한 데이터를 순차적으로 시스템 버스(190)로 전송시킨다.The control register 110 receives a control signal for controlling the operation of the public key cryptographic apparatus based on the hydrophobic according to the present invention and stores it in a designated bit position. Specifies the data to set the rupture. The interface unit 120 receives data and control signals transmitted to the public key cryptographic device through a system bus for cryptographic operation and transmits or processes them into the public key cryptographic device, and sequentially performs data performed by the public key cryptographic device. To the system bus 190.

제어부(130)는 공개키 암호장치에서 RSA 공개키 암호 연산과 소수체에서의 타원곡선 공개키 암호 연산을 수행하기 위한 제어신호를 생성하여 상기 구성부들에 인가하며, RSA 암호연산 또는 타원곡선 암호연산을 수행하기 위해 키 레지스터(140)나 데이터 레지스터(150)로부터 데이터를 읽고, 쓰는 동작을 위한 일련의 제어신호를 발생시키고, 인터페이스부(120)를 통해 입력되어 제어 레지스터(110)에 저장되는 동작 제어신호에 따라 연산의 수행에 필요한 제어신호를 발생시킨다.The control unit 130 generates a control signal for performing the RSA public key cryptography operation and the elliptic curve public key cryptography operation in the hydrophobic in the public key cryptography device and applies it to the components, and performs the RSA cryptographic operation or the elliptic curve cryptographic operation. To generate a series of control signals for reading and writing data from the key register 140 or the data register 150 to perform the operation, and is input through the interface unit 120 and stored in the control register 110 Generates a control signal for performing the operation according to the control signal.

즉, 상기 제어부(130)는 RSA 또는 타원곡선 암호연산의 수행을 위해 키 레지스터(140)와 데이터 레지스터(150)에 데이터를 읽기 위한 제어신호를 키 레지스터(140)나 데이터 레지스터(150)에 제공하며, 키 레지스터(140)나 데이터 레지스터(150)에서 암호 연산의 수행을 위해 RSA 연산부(160), 타원곡선 연산부(180) 또는 모듈러 연산부(170)로 입력되는 데이터들의 적절한 경로를 설정하는데 필요한 제어신호들을 인가하고, 이들 연산부에서 수행된 연산의 결과값을 데이터 레지스터(150)에 쓰기 위한 제어신호를 생성하며, 암호연산이 종료되었음을 알리는 인터럽트 신호를 제어 레지스터에 설정하는 일련의 모든 작업들을 제어한다.That is, the controller 130 provides a control signal for reading data to the key register 140 and the data register 150 to the key register 140 or the data register 150 to perform RSA or elliptic curve cryptography. The control required to set an appropriate path of data input to the RSA operator 160, the elliptic curve operator 180, or the modular operator 170 to perform cryptographic operations in the key register 140 or the data register 150. Apply a signal, generate a control signal for writing the result value of the operation performed in these arithmetic operation to the data register 150, and controls all a series of operations to set an interrupt signal in the control register to indicate that the encryption operation is completed .

키 레지스터(140)는 공개키 암호장치에서 수행하는 RSA 암호연산과 타원곡선암호연산을 수행하기 위한 키 데이터를 저장한다. 서로 다른 두 개의 암호 알고리즘은 사용되는 키 길이도 서로 다르므로, 호환성을 제공하기 위해 하위 워드부터 키 값을 저장하여 사용한다. 이때 상기 키 레지스터(140)에 데이터를 저장하기 위한 모든 제어신호는 상기 제어부(130)로부터 제공된다. 데이터 레지스터(150)는 공개키 암호장치에서 수행하는 RSA 암호연산과 타원 곡선 암호연산을 수행하기 위한 데이터를 저장하며, 제어부(130)에서 제공되는 제어신호에 따라 RSA 연산부(160), 모듈러 역원 연산부(175), 타원곡선 연산부(180) 및 모듈러 연산부(170)에 순차적으로 제공하며, 상기 연산부들에서 계산되어진 중간값과 결과값들을 저장한다. 데이터 레지스터(150) 역시 키 레지스터(140)와 같이 두 개의 공개키 암호 알고리즘의 데이터를 모두 사용할 수 있어야 하므로 입력되는 데이터는 하위 워드의 위치부터 저장하여 사용한다.The key register 140 stores key data for performing an RSA encryption operation and an elliptic curve encryption operation performed by the public key encryption apparatus. The two different encryption algorithms use different key lengths, so the key value is stored and used from the lower word to provide compatibility. In this case, all control signals for storing data in the key register 140 are provided from the controller 130. The data register 150 stores data for performing an RSA encryption operation and an elliptic curve encryption operation performed by the public key cryptographic device, and according to a control signal provided from the control unit 130, the RSA operation unit 160 and the modular reverse source operation unit. In operation 175, the elliptic curve calculator 180 and the modular calculator 170 are sequentially provided and store intermediate values and result values calculated by the calculators. Since the data register 150 should also be able to use the data of both public key cryptographic algorithms like the key register 140, the input data is stored and used from the position of the lower word.

상기 RSA 연산부(160)는 제어 레지스터에 설정된 값에 의해 공개키 암호장치에서 수행되는 RSA 공개키 암호연산을 수행한다. 제어 레지스터(110)에 RSA 공개키 암호 연산을 수행하는 명령이 설정되면, 제어부(130)는 RSA 연산부(160)에 암호/복호 연산 중 어느 연산을 지정하는지 연산의 종류와, 연산의 시작을 알리는 제어신호를 인가한다. 즉, 상기 RSA 연산부(160)는 상기 [수학식 1]에 나타난 바와 같이 모듈러 연산부(170)를 이용하여 반복적인 모듈러 연산을 수행하고, 연산이 끝나는 경우 연산의 종료를 알리는 신호를 다시 제어부(130)로 전송한다.The RSA operator 160 performs an RSA public key cryptography operation performed in the public key cryptography by a value set in a control register. When an instruction for performing an RSA public key cryptographic operation is set in the control register 110, the controller 130 notifies the RSA operator 160 which operation of encryption / decryption operation is specified, and indicates the type of operation and the start of the operation. Apply the control signal. That is, the RSA calculation unit 160 performs a repetitive modular operation using the modular operation unit 170 as shown in Equation 1, and when the operation is completed, the control unit 130 again signals a signal indicating the end of the operation. To send).

모듈러 연산부(170)는 상기 [수학식 1]과 [수학식 2]에 공통적으로 사용되는 모듈러 연산을 수행하며, RSA 암호연산과 타원곡선 암호연산을 위해 선택적으로 사용되어 질 수 있다. 또한 상기 모듈러 연산부(170)는 RSA 암호 알고리즘과 타원곡선 암호 알고리즘 모두의 연산을 수행하기 위해 내부 연산의 구성을 32 비트 단위로 구성하여 반복 연산을 수행하며, 각 알고리즘에서 사용하는 키의 길이에 따라 반복하는 연산의 회수는 RSA 연산부(160)와 타원곡선 연산부(180)에서 별도로 제어한다.The modular operator 170 performs a modular operation commonly used in [Equation 1] and [Equation 2], and may be selectively used for the RSA encryption operation and the elliptic curve encryption operation. In addition, the modular operation unit 170 performs an iterative operation by configuring the configuration of the internal operation in units of 32 bits to perform operations of both the RSA encryption algorithm and the elliptic curve encryption algorithm, and according to the length of the key used in each algorithm. The number of repetitive operations is controlled separately by the RSA calculator 160 and the elliptic curve calculator 180.

모듈러 역원 연산부(175)는 소수체에서 모듈러 연산을 수행하기 위해 필요한 데이터의 역원을 구하는 회로로써, RSA 암호연산과 타원곡선 암호연산 모두에 필요한 모듈러스 M 또는 p를 법으로 하는 연산을 수행하며, 제어부(130)에서 제공되어지는 제어신호에 의해 연산의 수행이 이루어지게 된다. 상기 타원곡선 연산부(180)는 제어 레지스터(130)에 설정된 값에 의해 공개키 암호장치에서 수행되는 타원곡선 공개키 암호연산을 수행한다. 타원곡선 암호연산을 수행하기 위해서는 상기 [수학식 2]에 나타낸 타원곡선의 포인트 덧셈을 이용하여 임의의 k 번의 반복적인 타원곡선 상의 포인트 덧셈을 수행해야 하며, 타원곡선 연산부(180)는 이러한 포인트 덧셈의 수행을 위한 연산의 시작신호를 제어부(130)로부터 입력받고, 타원곡선 암호연산 수행에 필요한 계산을 상기 모듈러 연산부(170)를 이용하여 반복적으로 수행하고, 연산이 끝난 후에는 종료를 알리는 제어신호를 상기 제어부(130)로 전송시킨다.The modular inverse operator 175 is a circuit for obtaining an inverse of data necessary for performing a modular operation on a prime, and performs an operation using a modulus M or p required for both an RSA encryption operation and an elliptic curve encryption operation. The operation is performed by the control signal provided at 130. The elliptic curve calculator 180 performs an elliptic curve public key cryptographic operation performed by the public key cryptographic apparatus according to a value set in the control register 130. In order to perform an elliptic curve cryptographic operation, point addition on an arbitrary k iterative elliptic curve should be performed by using point addition of an elliptic curve shown in Equation 2, and the elliptic curve calculator 180 adds such points. Receiving a start signal of the operation for performing the operation from the control unit 130, repeatedly performing the calculation necessary to perform the elliptic curve cryptographic operation using the modular operation unit 170, and after the operation is completed a control signal for notifying the end It transmits to the control unit 130.

도 2는 상기 도 1의 제어 레지스터(110)내 저장되는 데이터 구조를 도시한 것이다. 상기 도 2를 참조하면, 제어 레지스터(110)는 공개키 암호장치가 수행해야 하는 연산의 종류, 동작의 시작 및 연산의 종류를 위한 데이터를 해당 비트에 설정함으로써 공개키 암호장치의 전반적인 동작을 제어한다. 상기 도 2의 제어 레지스터(110)에서 최하위 비트는 공개키 암호장치의 동작 시작을 나타낸다. 두 번째 비트는 공개키 암호장치가 수행해야 하는 연산의 종류를 설정할 수 있다. 즉, 예를 들어 두 번째 비트의 값이 "0"이면 RSA 공개키 암호연산을, "1"이면 타원곡선 암호연산의 수행을 의미한다. 또한, 세 번째 비트는 두 번째 비트에서 설정한 각 공개키 암호연산의 암호화 또는 복호화 연산을 지시한다. 즉, 하위 3개의 비트 값이 001이면, RSA 공개키 암호 알고리즘의 암호화 연산의 시작을 의미하고, 101이면 RSA 공개키 암호 알고리즘의 복호화 연산의 시작을 지시한다. 마찬가지로 011이면 타원곡선 공개키 암호 알고리즘의 암호화 연산을 시작함을 지시하고, 111 이면 타원곡선 공개키 암호 알고리즘의 복호화 연산의 수행을 지시한다. 그리고 임의의 상위 n 번째 비트를 공개키 암호장치에서 수행하는 연산이 끝났음을 알리는 비트로 사용함으로써, 연산이 종료된 경우 인터럽트를 발생하여 공개키 암호장치에서 수행한 연산의 결과를 이용할 수 있도록 한다.FIG. 2 illustrates a data structure stored in the control register 110 of FIG. Referring to FIG. 2, the control register 110 controls the overall operation of the public key cryptographic apparatus by setting data for the type of operation that should be performed by the public key cryptographic apparatus, the start of the operation, and the type of operation to the corresponding bit. do. The least significant bit in the control register 110 of FIG. 2 indicates the start of the operation of the public key cryptography. The second bit can set the kind of operation that the public key cryptography must perform. That is, for example, if the value of the second bit is "0", it means RSA public key cryptography, and if "1", elliptic curve cryptography is performed. In addition, the third bit indicates an encryption or decryption operation of each public key cryptographic operation set in the second bit. That is, if the lower three bit values are 001, it means the start of the encryption operation of the RSA public key cryptographic algorithm, and if it is 101, it indicates the start of the decryption operation of the RSA public key cryptographic algorithm. Similarly, 011 indicates that the encryption operation of the elliptic curve public key encryption algorithm is started, and 111 indicates the execution of the decryption operation of the elliptic curve public key encryption algorithm. By using a certain upper n-th bit as a bit indicating that the operation performed by the public key cryptography device is completed, an interrupt is generated when the operation is completed so that the result of the operation performed by the public key cryptography device can be used.

상기와 같은 도 2의 설명은 제어 레지스터 구성의 일례를 든 것일 뿐, 상기와 같이 시스템의 제어를 목적으로 사용하는 다른 모든 응용에 이러한 구성이 적용 가능하다.The above description of FIG. 2 is merely an example of a control register configuration, and this configuration is applicable to all other applications used for the purpose of controlling the system as described above.

도 3은 상기 도 1의 키 레지스터(140)와 데이터 레지스터(150)의 상세 블록 구성을 도시한 것이다. 상기 도 3을 참조하면, 상기 레지스터는 입력 데이터 선택기(320), 32비트 레지스터(330) 및 출력 데이터 선택기(340)로 구성되어 진다.3 illustrates a detailed block configuration of the key register 140 and the data register 150 of FIG. Referring to FIG. 3, the register is composed of an input data selector 320, a 32-bit register 330, and an output data selector 340.

상기 [수학식 1]에 나타낸 RSA 공개키 암호 알고리즘은 충분한 안전성을 제공하기 위해 1024비트 이상의 키와 데이터를 사용하며, 타원곡선 암호알고리즘은 163 비트 이상의 키를 사용하고 있다. 이러한 키 길이의 차이로 두 가지 알고리즘을 모두 사용하기 위해서는 32 비트의 데이터를 저장하는 레지스터를 여러 개 사용하여 하위 워드의 위치부터 데이터를 저장하여 사용하는 것이 더 효율적이다. 또한 여러 개의 32 비트 레지스터에 데이터를 저장하고, 읽어내는 일련의 작업들은 각각 입력 데이터의 선택을 위한 입력 데이터 선택기(320)와 출력 데이터 선택기(340)를 통해서 이루어지며, 각 데이터 선택기에 인가되는 데이터를 선택하기 위해 제어부(130)로부터 입력데이터 선택신호(360)와 출력데이터 선택신호(380)가 인가되어진다. 상기 도 3의 32비트 레지스터들은 각 암호 알고리즘을 위한 연산에서 발생하는 중간값과 결과값을 필요에 따라 순차적으로 저장하며, 이때 필요한 데이터 로드신호(370) 역시 상기 제어부(130)에서 인가된다.The RSA public key cryptographic algorithm shown in [Equation 1] uses keys and data of 1024 bits or more to provide sufficient security, and the elliptic curve cryptographic algorithm uses keys of 163 or more bits. In order to use both algorithms due to the difference in key length, it is more efficient to store data from the position of the lower word by using several registers that store 32 bits of data. In addition, a series of operations of storing and reading data in a plurality of 32-bit registers are performed through an input data selector 320 and an output data selector 340 for selecting input data, respectively. The input data selection signal 360 and the output data selection signal 380 are applied from the control unit 130 to select. The 32-bit registers of FIG. 3 sequentially store intermediate values and result values generated in operations for each encryption algorithm as needed, and the necessary data load signal 370 is also applied by the controller 130.

도 4는 상기 도 1의 모듈러 연산부(170)의 상세 블록 구성을 도시한 것이다. 소수체를 기반으로 하는 RSA 공개키 암호알고리즘과 타원곡선 암호알고리즘을 수행하기 위해서는 기본적으로 모듈러 연산의 수행이 필요하다. 소수체에서 수행되는 모듈러 연산은 아래의 [수학식 3]에서와 같은 모듈러 곱셈 연산이 주로 수행되는데,4 illustrates a detailed block configuration of the modular operation unit 170 of FIG. 1. In order to perform the RSA public key cryptographic algorithm and the elliptic curve cryptographic algorithm based on the prime, it is basically necessary to perform the modular operation. Modular operations performed on primes are mainly performed by modular multiplication operations as shown in [Equation 3] below.

상기 [수학식 3]에서와 같은 모듈러스 M을 법으로 하는 모듈러 곱셈 연산은RSA 공개키 암호 알고리즘의 수행에 필수적인 연산을 수행하며 소수체를 기반으로 하는 타원곡선 암호 알고리즘의 연산에도 모듈러스 p를 법으로 하는 중요한 연산 기능이다.Modular multiplication operation using modulus M as shown in [Equation 3] performs an operation necessary for performing RSA public key cryptographic algorithm, and modulus p is used for operation of elliptic curve cryptographic algorithm based on prime. Is an important computational function.

이하 상기 도 4를 참조하면, 모듈러 연산부(170)는 데이터 선택기(410,440), 곱셈기(420), 덧셈기(430), 곱셈 레지스터(450) 및 리덕션장치(460)로 구성된다. 상기 도 4에서 연산에 필요한 입력 데이터를 선택하기 위해 데이터 선택기(410)가 사용되었으며, 두 개의 다정도 정수의 곱셈 연산을 수행하기 위해 곱셈기(420)를 사용하였다. 모듈러 연산에서 곱셈 연산 다음으로 많이 사용되는 모듈러 덧셈 연산을 위해 덧셈기(430)를 사용하여 연산을 수행한다. 상기 도 4의 곱셈기(420)와 덧셈기(430)는 RSA 공개키 암호 알고리즘과 타원곡선 암호알고리즘을 모두 지원하는 공개키 암호장치의 특성을 고려해서 32 비트 연산장치로 구현할 수 있으며, 더 큰 길이의 데이터를 처리하는 RSA 공개키 암호알고리즘을 처리할 수 있도록 설계해서 사용해도 될 것이다. 만일 곱셈과 덧셈 연산을 32 비트 연산기로 구현한다면, 연산의 수행을 위해 더 많은 연산을 반복해서 구현해야 한다. 곱셈기(420)와 덧셈기(430)에서 연산된 데이터는 연산의 중간값을 저장하는 곱셈 레지스터(450)에 저장되어 계속되는 연산에 재 사용될 수도 있으며, 곱셈 연산 또는 덧셈 연산이 끝난 경우 결과값으로 출력될 수도 있다. 32비트 연산기로 데이터의 곱셈과 덧셈을 계산하는 경우 매 연산마다 발생하는 데이터를 곱셈 레지스터(450)의 적절한 위치에 저장할 필요가 있는데, 저장될 데이터의 해당 위치를 선택하기 위해 데이터 선택기(440)를 사용하였다.Referring to FIG. 4, the modular operator 170 includes a data selector 410 and 440, a multiplier 420, an adder 430, a multiplication register 450, and a reduction device 460. In FIG. 4, a data selector 410 is used to select input data required for an operation, and a multiplier 420 is used to perform a multiplicative operation of two poly integers. In the modular operation, the adder 430 is used for the modular addition operation that is used next to the multiplication operation. The multiplier 420 and the adder 430 of FIG. 4 may be implemented as a 32-bit computing device in consideration of the characteristics of the public key cryptographic device supporting both the RSA public key cryptographic algorithm and the elliptic curve cryptographic algorithm. It may be designed and used to handle RSA public key cryptographic algorithms that process data. If you implement multiply and add operations with 32-bit operators, you'll have to implement more operations over and over to perform the operation. The data calculated by the multiplier 420 and the adder 430 may be stored in the multiplication register 450 that stores the intermediate value of the operation, and may be reused in subsequent operations. The multiplier 420 and the adder 430 may be output as result values when the multiplication operation or the addition operation is completed. It may be. When calculating multiplication and addition of data with a 32-bit operator, it is necessary to store the data generated at each operation in an appropriate location of the multiplication register 450. The data selector 440 is selected to select the corresponding location of the data to be stored. Used.

리덕션 장치(460)는 모듈러 연산의 기본적인 연산으로, [수학식 3]에서 볼 수 있듯이 두 개의 다정도 정수의 곱셈 결과에서 모듈러 값 M을 빼주는 연산을 수행한다. 이때 리덕션 장치(460)에서 리덕션 연산을 수행할지 여부는 곱셈 레지스터(450)의 결과와 모듈러 값 M의 크기를 비교하여 그 결과를 이용하여 제어부(130)에서 리덕션 연산의 수행 여부를 결정한다.The reduction device 460 is a basic operation of a modular operation. As shown in [Equation 3], the reduction device 460 performs an operation of subtracting the modular value M from the multiplicative result of two multiplicity integers. At this time, whether to perform the reduction operation in the reduction device 460 is compared with the size of the result of the multiplication register 450 and the size of the modular value M and determines whether to perform the reduction operation by using the result.

도 5는 공개키 암호장치에서 수행하는 RSA 공개키 암호연산과 타원곡선 공개키 암호연산을 수행하는 부분의 구성을 도시하였다. 제어 레지스터(110)에 의해 상기 [수학식 1]과 같은 RSA 공개키 암호연산의 수행이 지시되면, 제어부(130)는 RSA 제어회로(530)에 RSA 암호연산을 시작할 것을 지시한다. RSA 암호연산의 시작을 지시 받은 RSA 제어회로(530)는 연산에 필요한 데이터 중 암호화 또는 복호화 연산에 필요한 키의 길이를 키 길이 추출회로(510)에서 추출하여 카운터(520)에 설정한다. 카운터(520)에 설정된 값은 모듈러 연산부(170)에서 수행되는 암호화 연산 또는 복호화 연산의 반복 회수를 지정하며, 한 번의 연산이 끝나면 자동적으로 카운터(520)의 값을 1씩 감소시킨다. RSA 제어회로(530)는 카운터(520)의 값을 조사하여 반복 연산의 끝이 아니면 각 반복되는 모듈러 연산을 위해 필요한 제어신호를 모듈러 연산부(170)에 인가한다. 이때 인가되는 제어신호들은 타원곡선 암호연산을 수행하는 경우와 구별하여 인가되어야 하므로 데이터 선택기(550)를 통과하여 모듈러 연산부(170)로 인가된다. RSA 제어회로(530)는 매 반복되는 연산마다 카운터(520)의 값을 조사하여 '0'으로 되면 필요한 연산이 모두 수행되었음을 알고 반복되는 모듈러 연산을 종료하며, RSA 암호연산이 종료하였음을 알리는 신호를 제어부(130)에 인가한다.5 is a block diagram illustrating a configuration of an RSA public key cryptographic operation and an elliptic curve public key cryptographic operation performed by a public key cryptographic apparatus. When the control register 110 is instructed to perform the RSA public key cryptography operation as shown in [Equation 1], the controller 130 instructs the RSA control circuit 530 to start the RSA cryptography operation. The RSA control circuit 530 which has been instructed to start the RSA encryption operation extracts the length of the key required for the encryption or decryption operation among the data required for the operation from the key length extraction circuit 510 and sets it in the counter 520. The value set in the counter 520 designates the number of repetitions of the encryption operation or the decryption operation performed by the modular operation unit 170, and automatically decrements the value of the counter 520 by one after one operation is completed. The RSA control circuit 530 examines the value of the counter 520 and applies a control signal necessary for each repeated modular operation to the modular operation unit 170 unless it is the end of the repeated operation. In this case, since the control signals are to be applied separately from the case of performing the elliptic curve encryption operation, the control signals are applied to the modular operation unit 170 through the data selector 550. The RSA control circuit 530 examines the value of the counter 520 for every repetitive operation, and when it becomes '0', the RSA control circuit 530 knows that all necessary operations have been performed and ends the repeated modular operation, and signals that the RSA cryptographic operation has ended. Is applied to the controller 130.

제어부(130)는 RSA 암호 연산이 종료되었음을 알리는 제어신호가 인가되면 다음에 수행할 연산을 고려하여 연산의 결과를 읽어서 다시 사용하거나 다른 레지스터에 저장한다.When a control signal indicating that the RSA cryptographic operation is completed is applied, the controller 130 reads the result of the operation and uses it again or stores it in another register in consideration of the next operation to be performed.

동일한 방법으로 소수체를 기반으로 하는 타원곡선 암호연산도 수행되어진다. 제어 레지스터에 의해 타원곡선 암호연산의 시작을 인가 받은 제어부(130)는 RSA 연산의 경우와 같이 타원곡선 제어회로(540)에 연산의 시작을 알리는 제어신호를 인가한다. 타원곡선 암호연산의 시작을 지시 받은 타원곡선 제어회로(540)는 키 값으로부터 키 길이를 추출하여 포인트 덧셈 연산을 몇 번 수행할 것인지를 지시하는 값을 카운터(520)에 설정한다. 타원곡선 제어회로(540)는 상기 [수학식 2]에 나타내 포인터 덧셈연산을 반복적으로 수행하면서 카운터(520)의 값을 '1' 씩 감소시키고 타원곡선 암호 연산을 수행하기 위한 제어 신호들을 모듈러 연산부(170)에 인가한다. 이때 인가되는 제어 신호들은 RSA 암호 알고리즘을 수행하는 제어 신호들과 구별해서 인가할 필요가 있으므로 데이터 선택기(550)를 거쳐서 인가되어진다. 반복되는 연산이 끝나서 카운터의 값이 0이 되면, 타원곡선 제어회로(540)는 요청된 타원곡선 암호연산이 종료되었음을 제어부(130)에 알리며, 제어부(130)는 다음 연산을 수행하게 된다.In the same way, an elliptic curve cryptographic operation based on hydrophobics is performed. The control unit 130 receiving the start of the elliptic curve cryptographic operation by the control register applies a control signal for notifying the start of the operation to the elliptic curve control circuit 540 as in the case of the RSA operation. The elliptic curve control circuit 540 instructed to start the elliptic curve cryptographic operation extracts the key length from the key value and sets a value in the counter 520 indicating how many times the point addition operation is to be performed. The elliptic curve control circuit 540 modulates control signals for decreasing the value of the counter 520 by '1' and performing an elliptic curve cryptographic operation by repeatedly performing a pointer addition operation as shown in Equation 2 above. To (170). In this case, since the control signals to be applied need to be distinguished from the control signals for performing the RSA encryption algorithm, they are applied through the data selector 550. When the value of the counter is zero because the repetitive operation is completed, the elliptic curve control circuit 540 notifies the controller 130 that the requested elliptic curve cryptographic operation is completed, and the controller 130 performs the next operation.

상기한 바와 같이 본 발명의 공개키 암호장치는 서로 상이한 두 개의 공개키 암호알고리즘인 RSA 암호 알고리즘과 타원곡선 암호 알고리즘을 연산하기 위해 개별적인 장치가 필요 없이, 한 개의 시스템에서 연산할 수 있도록 구성하여 효율적인 연산을 가능하게 하여 시스템의 효율성을 증가시키며, 다양한 시스템에 적용이 가능하게 한다.As described above, the public key cryptography apparatus of the present invention is configured to operate in one system without requiring a separate apparatus for computing two different public key cryptographic algorithms, the RSA cryptographic algorithm and the elliptic curve cryptographic algorithm. It enables the operation to increase the efficiency of the system, and can be applied to various systems.

한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.Meanwhile, in the above description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the invention should be determined by the claims rather than by the described embodiments.

이상에서 설명한 바와 같이, 본 발명은 공개키 암호장치에 있어서, 시스템 사용자에게 보안성과 기밀성을 제공하는 공개키 암호 알고리즘 중 가장 많이 사용되는 RSA 공개키 암호 알고리즘과 타원곡선 암호 알고리즘을 동일한 장치에서 동시에 지원할 수 있으므로, 시스템의 효율성을 향상시킬 수 있으며, 암호 연산을 필요로 하는 많은 시스템에 범용적으로 사용되어 질 수 있는 이점이 있다.As described above, in the public key cryptography apparatus, the present invention can simultaneously support the RSA public key cryptography algorithm and elliptic curve cryptography algorithm, which are the most widely used public key cryptography algorithms that provide security and confidentiality to system users. As a result, the efficiency of the system can be improved, and it can be used universally in many systems requiring cryptographic operations.

Claims (19)

소수체를 기반으로 하는 공개키 암호장치에 있어서,In public key cryptography based on prime, 암호 연산을 위한 각종 데이터를 저장하는 레지스터부와;A register unit for storing various data for cryptographic operation; RSA 공개키 암호 연산을 수행하는 RSA 연산부와;An RSA operation unit performing an RSA public key cryptographic operation; 소수체를 기반으로 하는 연산에서 데이터의 역원을 계산하는 모듈러 역원 연산부와;A modular inverse calculating unit for calculating an inverse of data in a hydrophobic-based operation; 타원곡선 공개키 암호 연산을 수행하는 타원곡선 연산부와;An elliptic curve calculator configured to perform an elliptic curve public key cryptographic operation; 상기 RSA/타원곡선 암호 연산을 수행하기 위해 내부 연산의 구성을 32비트 단위로 구성하여 반복 연산을 수행하는 모듈러 연산부와;A modular operation unit configured to perform an iterative operation by configuring an internal operation in 32-bit units to perform the RSA / elliptic curve cryptographic operation; 상기 레지스터부로부터 암호 연산을 위해 필요한 데이터를 리드/라이트하며, 상기 RSA 연산부와 타원곡선 연산부를 제어하여 RSA 공개키 암호 연산과 소수체에서의 타원곡선 공개키 암호 연산을 수행하고, 상기 암호 연산을 위한 각 부의 동작을 제어하는 제어부;를 포함하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.Read / write data necessary for cryptographic operation from the register unit, control the RSA calculator and an elliptic curve operator to perform RSA public key cryptography and elliptic curve public key cryptography in the prime, and perform the cryptographic operation. A control unit for controlling the operation of each unit for; public key cryptographic apparatus based on a hydrophobic body comprising a. 제1항에 있어서,The method of claim 1, 상기 암호장치는, 상기 레지스터부에 연결되며, 시스템 버스를 통해 외부로부터 암호장치 내부로 암호 연산을 위한 데이터와 제어신호를 전송하고, 상기 암호장치에서 수행된 데이터를 순차적으로 상기 시스템 버스로 전송하는 인터페이스부;를 더 포함하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The encryption device is connected to the register unit and transmits data and control signals for encryption operation from the outside to the encryption device through a system bus, and sequentially transmits data performed by the encryption device to the system bus. A public key cryptographic apparatus based on a hydrophobic body, further comprising an interface unit. 제1항에 있어서,The method of claim 1, 상기 레지스터부는, 상기 암호 장치의 연산을 제어하는 제어신호를 입력받아 지정된 위치에 저장하는 제어 레지스터와;The register unit may include a control register configured to receive a control signal for controlling the operation of the cryptographic device and store the same in a designated location; 암호 연산을 위해 입력되는 키 데이터를 저장하는 키 레지스터와;A key register for storing key data input for cryptographic operation; 암호 연산을 위해 입력되는 데이터를 저장하는 데이터 레지스터;를 포함하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.And a data register for storing data input for cryptographic operation. 제1항에 있어서,The method of claim 1, 상기 제어부는, 상기 RSA 암호 연산과 타원곡선 암호연산을 수행하기 위한 상기 키 레지스터나 데이터 레지스터의 데이터 리드/라이트 동작을 제어하며, RSA 암호연산과 소수체에서의 타원곡선 공개키 암호 연산을 위한 제어신호를 생성하여 상기 RSA 연산부 및 타원곡선 연산부로 인가하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The control unit controls data read / write operations of the key register or data register for performing the RSA cryptographic operation and the elliptic curve cryptographic operation, and controls for the RSA cryptographic operation and the elliptic curve public key cryptographic operation in the prime. A public key cryptographic device based on a prime, characterized in that for generating a signal and applying it to the RSA calculator and the elliptic curve calculator. 제3항에 있어서,The method of claim 3, 상기 제어부는, 상기 RSA 또는 타원곡선 암호 연산의 수행을 위해 상기 키 레지스터와 데이터 레지스터로부터 데이터를 읽어들이기 위한 제어신호를 생성시키며, 상기 RSA 연산부와 타원곡선 연산부로부터 수행된 암호 연산 결과값을 상기 데이터 레지스터에 쓰기위한 제어신호를 생성시키는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The control unit generates a control signal for reading data from the key register and the data register for performing the RSA or elliptic curve cryptographic operation, and calculates a result of the cryptographic operation performed by the RSA calculator and the elliptic curve cryptographic operation. A hydrophobic-based public key cryptography device which generates a control signal for writing to a register. 제5항에 있어서,The method of claim 5, 상기 제어부는, 상기 키 레지스터나 데이터 레지스터에서 RSA 또는 타원곡선 암호 연산의 수행을 위해 상기 RSA 연산부나 타원곡선 연산부 또는 모듈러 연산부로 입력되는 데이터들의 경로 설정을 위한 제어신호를 생성시키는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The control unit may generate a control signal for setting a path of data input to the RSA calculator, the elliptic curve calculator, or the modular calculator for performing RSA or elliptic curve cryptography in the key register or the data register. Sieve-based public key cryptography. 제3항에 있어서,The method of claim 3, 상기 제어 레지스터는, 상기 공개키 암호장치의 연산을 제어하는 제어 신호를 입력받아 지정된 비트 위치에 저장하고, 연산이 끝나는 경우, 연산이 종료되었음을 알려주는 인터럽트를 설정하기 위한 데이터를 지정하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The control register receives a control signal for controlling the operation of the public key cryptographic device and stores it in a designated bit position, and when the operation is completed, designates data for setting an interrupt indicating that the operation is completed. Public key cryptography based on primes. 제7항에 있어서,The method of claim 7, wherein 상기 제어 레지스터는, 상기 공개키 암호장치가 수행해야 하는 연산의 종류, 동작의 시작 및 연산의 종료를 위한 제어 데이터를 해당 비트에 저장하고 있으며, 최하위 비트에는 상기 공개키 암호장치의 동작 시작 제어신호가, 두 번째 비트에는 연산의 종류 제어신호를 저장하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The control register stores, in a corresponding bit, control data for the type of operation to be performed by the public key cryptographic device, the start of the operation, and the end of the operation, and in the least significant bit, the operation start control signal of the public key cryptographic device. A second key is a public key cryptographic device based on a prime, characterized in that for storing the operation type control signal. 제3항에 있어서,The method of claim 3, 상기 키 레지스터는, 각 암호 알고리즘을 위한 연산에서 발생하는 중간값과 결과값을 필요에 따라 순차적으로 저장하는 32비트 레지스터와;The key register may include: a 32-bit register sequentially storing intermediate values and result values generated in operations for each cryptographic algorithm as necessary; 상기 제어부로부터의 입력 데이터 선택신호에 따라 상기 32비트 레지스터의 데이터 라이트 동작을 수행하는 입력 데이터 선택기와;An input data selector configured to perform a data write operation of the 32-bit register according to an input data selection signal from the controller; 상기 제어부로부터의 출력 데이터 선택신호에 따라 상기 32비트 레지스터의 데이터 리드 동작을 수행하는 출력 데이터 선택기;를 포함하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.And an output data selector for performing a data read operation of the 32-bit register according to the output data selection signal from the control unit. 제3항에 있어서,The method of claim 3, 상기 RSA 연산부는, 상기 제어 레지스터에 설정된 값에 의해 공개키 암호장치에서 수행되는 RSA 공개키 암호연산을 수행하며, 아래의 [수학식]에 나타난 바와 같이 모듈러 연산부를 이용하여 반복적인 모듈러 연산을 수행하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The RSA operation unit performs an RSA public key cryptography operation performed by a public key cryptographic apparatus according to a value set in the control register, and performs a repetitive modular operation using a modular operation unit as shown in [Equation] below. Public key cryptography based on a prime, characterized in that the. [수학식][Equation] RSA 암호화 연산 : C = Xemod MRSA encryption operation: C = X e mod M RSA 복호화 연산 : X = Cdmod MRSA decryption operation: X = C d mod M X : 암호화 할 데이터,X: the data to encrypt, C : 암호화 연산을 수행한 암호문,C: ciphertext that performs encryption operation, e : 공개키,e: public key, d : 비밀키,d: secret key, M : 모듈러스 값M: Modulus value 제10항에 있어서,The method of claim 10, 상기 제어부는, 상기 제어 레지스터에 RSA 공개키 암호 연산을 수행하는 명령이 설정되는 경우, 상기 RSA 연산부로 RSA 암/복호화 연산 중 명령된 연산의 종류와 연산의 시작을 알리는 제어신호를 인가시켜 RSA 공개키 암호/복호화가 수행되도록 하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The control unit, when an instruction for performing an RSA public key cryptographic operation is set in the control register, applies the control signal informing the start of the operation and the type of operation commanded during the RSA encryption / decryption operation to the RSA operation unit to disclose the RSA. A hydrophobic-based public key cryptographic device, characterized in that key cryptography / decryption is performed. 제1항에 있어서,The method of claim 1, 상기 모듈러 역원 연산부는, 상기 RSA 암호연산과 타원곡선 암호연산에 모두 필요한 모듈러스 M 또는 p를 법으로 하는 연산을 수행하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The modular inverse operator is a hydrophobic-based public key cryptographic apparatus, characterized in that for performing the operation by modulus M or p required for both the RSA encryption operation and the elliptic curve encryption operation. 제1항에 있어서,The method of claim 1, 상기 타원곡선 연산부는, 상기 제어 레지스터에 설정된 값에 의해 타원곡선 공개키 암호연산을 수행하며, 아래의 [수학식]에 나타난 바와 같이 타원곡선의 포인트 덧셈을 이용하여 타원곡선 위의 점 P의 k 번 반복된 포인트 덧셈을 수행하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The elliptic curve calculator performs an elliptic curve public key cryptographic operation based on a value set in the control register, and k of the point P on the elliptic curve using the point addition of the elliptic curve as shown in [Equation] below. A hydrophobic-based public key cryptographic device, characterized in that it performs a point addition that is repeated once. [수학식][Equation] 제13항에 있어서,The method of claim 13, 상기 타원곡선 연산부는, 상기 포인트 덧셈의 수행을 위한 연산 시작 제어신호를 제어부로부터 인가받아 타원곡선 암호연산 수행에 필요한 계산을 상기 모듈러 연산부를 통해 반복 수행하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The elliptic curve calculation unit is public based on a hydrophobic body, characterized in that it repeatedly receives the calculation operation control signal for performing the point addition from the control unit to perform the calculation necessary to perform the elliptic curve cryptographic operation through the modular operation unit Key cryptography. 제1항에 있어서,The method of claim 1, 상기 모듈러 연산부는, 상기 RSA 및 타원곡선 암호 연산을 수행하기 위해 내부 연산의 구성을 32비트 단위로 구성하여 반복 연산을 수행하는 것을 특징으로 하는 것을 소수체를 기반으로 하는 공개키 암호장치.The modular operation unit is a hydrophobic-based public key cryptographic apparatus, characterized in that for performing the iterative operation by configuring the configuration of the internal operation in 32-bit units to perform the RSA and the elliptic curve cryptographic operation. 제15항에 있어서,The method of claim 15, 상기 모듈러 연산부는, 상기 RSA 암호 연산 및 타원곡선 암호 연산 알고리즘에서 사용되는 키의 길이에 따라 연산의 회수가 해당 RSA 연산부 및 타원곡선 연산부에서 별도로 제어되는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The modular operation unit is a public key based on a prime number, characterized in that the number of operations are separately controlled by the RSA operation unit and the elliptic curve operation unit according to the length of the key used in the RSA encryption operation and the elliptic curve encryption algorithm Encryption device. 제16항에 있어서,The method of claim 16, 상기 모듈러 연산부는, 입력 데이터를 선택하기 위한 데이터 선택기와;The modular operation unit includes a data selector for selecting input data; 상기 데이터 선택기로부터 선택 입력되는 두 개의 다정도 정소의 곱셈 연산을 수행하는 곱셈기와;A multiplier for performing two multiplicative multiplication operations that are selectively input from the data selector; 모듈러 덧셈 연산을 수행하는 덧셈기와;An adder for performing a modular addition operation; 상기 곱셈기 및 덧셈기에서 연산된 데이터의 중간값을 저장하는 곱셈 레지스터와;A multiplication register for storing intermediate values of the data calculated by the multiplier and the adder; 상기 곱셈기/덧셈기와 곱셈레지스터간 위치되어 상기 데이터 중간값이 저장될 곱셈 레지스터의 위치를 선택하는 데이터 위치 선택기와;A data position selector positioned between the multiplier / adder and a multiplication register to select a position of a multiplication register in which the data intermediate value is to be stored; 상기 두 개의 다정도 정수의 곱셈 결과에서 모듈러 값 M을 감산하는 리덕션 장치;를 포함하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.And a reduction device for subtracting a modular value M from the multiplication result of the two multiplicative integers. 제17항에 있어서,The method of claim 17, 상기 곱셈기와 덧셈기는, RSA 암호 알고리즘과 타원곡선 암호 알고리즘의 동시 지원을 위한 32비트 연산장치로 구현되는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The multiplier and the adder, a hydrophobic-based public key cryptographic apparatus, characterized in that implemented as a 32-bit computing device for the simultaneous support of the RSA encryption algorithm and the elliptic curve encryption algorithm. 제17항에 있어서,The method of claim 17, 상기 리덕션 장치는, 아래의 [수학식]에서와 같이 모듈러 연산의 기본적인 연산으로 상기 두 개의 다정도 정수의 곱셈결과에서 모듈러 값 M을 감산하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치.The reduction apparatus is a hydrophobic-based public key cryptographic apparatus, characterized in that the modular value M is subtracted from the multiplication result of the two multiplicative integers as the basic operation of the modular operation as shown in the following Equation. . [수학식][Equation]
KR10-2002-0077902A 2002-12-09 2002-12-09 Apparatus for public key cryptography on the prime field KR100498754B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0077902A KR100498754B1 (en) 2002-12-09 2002-12-09 Apparatus for public key cryptography on the prime field

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0077902A KR100498754B1 (en) 2002-12-09 2002-12-09 Apparatus for public key cryptography on the prime field

Publications (2)

Publication Number Publication Date
KR20040050742A true KR20040050742A (en) 2004-06-17
KR100498754B1 KR100498754B1 (en) 2005-07-01

Family

ID=37344872

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0077902A KR100498754B1 (en) 2002-12-09 2002-12-09 Apparatus for public key cryptography on the prime field

Country Status (1)

Country Link
KR (1) KR100498754B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101136972B1 (en) * 2008-12-11 2012-04-19 한국전자통신연구원 method for evaluating Elliptic Curve Cryptosystem
CN106211108A (en) * 2016-07-13 2016-12-07 西安邮电大学 A kind of message encryption method based on RSA PKI
CN112685758A (en) * 2020-12-31 2021-04-20 南方电网科学研究院有限责任公司 Data encryption system based on elliptic curve encryption algorithm
CN117014208A (en) * 2023-08-09 2023-11-07 海光信息技术股份有限公司 Data encryption method, device, system, electronic equipment and storage medium
CN117234457A (en) * 2023-11-10 2023-12-15 蓝象智联(杭州)科技有限公司 Data subtraction operation method for privacy calculation

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101136972B1 (en) * 2008-12-11 2012-04-19 한국전자통신연구원 method for evaluating Elliptic Curve Cryptosystem
CN106211108A (en) * 2016-07-13 2016-12-07 西安邮电大学 A kind of message encryption method based on RSA PKI
CN112685758A (en) * 2020-12-31 2021-04-20 南方电网科学研究院有限责任公司 Data encryption system based on elliptic curve encryption algorithm
CN112685758B (en) * 2020-12-31 2024-02-06 南方电网科学研究院有限责任公司 Data encryption system based on elliptic curve encryption algorithm
CN117014208A (en) * 2023-08-09 2023-11-07 海光信息技术股份有限公司 Data encryption method, device, system, electronic equipment and storage medium
CN117014208B (en) * 2023-08-09 2024-04-09 海光信息技术股份有限公司 Data encryption method, device, system, electronic equipment and storage medium
CN117234457A (en) * 2023-11-10 2023-12-15 蓝象智联(杭州)科技有限公司 Data subtraction operation method for privacy calculation
CN117234457B (en) * 2023-11-10 2024-01-26 蓝象智联(杭州)科技有限公司 Data subtraction operation method for privacy calculation

Also Published As

Publication number Publication date
KR100498754B1 (en) 2005-07-01

Similar Documents

Publication Publication Date Title
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
US6434585B2 (en) Computationally efficient modular multiplication method and apparatus
US6876745B1 (en) Method and apparatus for elliptic curve cryptography and recording medium therefore
EP0199620B1 (en) Encryption apparatus and methods for raising a large unsigned integer to a large unsigned integer power modulo a large unsigned integer
JPWO2004055756A1 (en) Tamper resistant elliptic curve cryptography using secret key
KR100442218B1 (en) Power-residue calculating unit using montgomery algorithm
US7197141B2 (en) RSA cryptographic processing apparatus for IC card
EP1068565B1 (en) Acceleration and security enhancements for elliptic curve and rsa coprocessors
US7167559B2 (en) Information security device, exponentiation device, modular exponentiation device, and elliptic curve exponentiation device
Aoki et al. Elliptic curve arithmetic using SIMD
KR100498754B1 (en) Apparatus for public key cryptography on the prime field
EP1273124A1 (en) Cryptographic methods and apparatus using word-wise montgomery multiplication
Koc et al. Fast software exponentiation in GF (2/sup k/)
KR20020094256A (en) Apparatus and method of finite-field inversion and multiplication based on elliptic curve cryptography
EP1419436B1 (en) Apparatus and method for performing a cryptographic algorithm
KR100564599B1 (en) Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code
JP2002358010A (en) Exponentiation remainder computing element
RU2188513C2 (en) Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks
WO2008013154A1 (en) Extension filed multiplication program and extension filed multiplication device
KR100399048B1 (en) Apparatus of Elliptic Curve Cryptosystem
KR100840944B1 (en) MixColum block device and method of multiplication calculation thereof
CN112487448A (en) Encrypted information processing device and method and computer equipment
WO2008069386A2 (en) Mixcolumn block device and method of performing multiplication calculation using the same
KR100808953B1 (en) Modular multiplication method and smart card using the method
KR100406724B1 (en) A multiplicative inverse operator for modulo n and data encryption apparatus including the same operator

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110609

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee