KR20090122029A - Ecc authentication method using public key generation time coordinates - Google Patents
Ecc authentication method using public key generation time coordinates Download PDFInfo
- Publication number
- KR20090122029A KR20090122029A KR1020080048224A KR20080048224A KR20090122029A KR 20090122029 A KR20090122029 A KR 20090122029A KR 1020080048224 A KR1020080048224 A KR 1020080048224A KR 20080048224 A KR20080048224 A KR 20080048224A KR 20090122029 A KR20090122029 A KR 20090122029A
- Authority
- KR
- South Korea
- Prior art keywords
- public key
- mobile terminal
- server
- coordinate
- generation time
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Abstract
Description
본 발명은 두 개체의 상호인증에 관한 정보 보안 기술로서, 특히 타원곡선을 이용하여 공개키 생성 시 인증절차를 처리하는 두 통신기기 사이에 공개키 생성시간좌표를 이용하여 공개키를 생성하고 생성된 공개키 및 상대 통신기기로부터 전송된 공개키를 이용하여 데이터를 암호화하여 인증절차를 처리하는 ECC 인증방법에 관한 것이다.The present invention is an information security technology for mutual authentication of two entities, in particular, a public key is generated and generated using a public key generation time coordinate between two communication devices that process an authentication procedure when generating a public key using an elliptic curve. An ECC authentication method for processing an authentication procedure by encrypting data using a public key and a public key transmitted from a counterpart communication device.
최근 이동성을 제공하는 네트워크 단말기인 PDA, 휴대폰, 노트북 등의 보급과 확산으로 인해 데이터 통신의 수요가 증폭되고 있다. 따라서 데이터의 안전한 송,수신의 관심이 증폭되고 있으며 특히 개인 정보(주민등록번호, 공인인증서 등) 보호를 위한 연구가 활발히 진행 중이다. Recently, the demand for data communication is increasing due to the spread and diffusion of PDAs, mobile phones, laptops, etc., which provide mobility. Therefore, the interest in the safe transmission and reception of data has been amplified, and research for protecting personal information (resident registration number, public certificate, etc.) is actively underway.
정보의 암호화/복호화 기술은 '키' 값을 이용하여 암호화하여 전송하고 수신자는 복호화 과정을 통해 원래의 정보를 추출하는 방법으로 제3자가 암호화된 정보 를 가로채도 원래의 정보를 알 수 없도록 하는 것이다. The encryption / decryption technique of information is encrypted and transmitted using the 'key' value, and the receiver extracts the original information through the decryption process so that the third party cannot know the original information even if the third party intercepts the encrypted information. .
암호화/복호화 방식은 대칭키(Symmetric Key) 방식과 비대칭키(Asymmetric Key) 방식이 있으며, 대칭키에 기반한 암호 알고리즘은 암호화될 때의 키와 복호화될 때의 키가 같은 키가 사용된다. 이러한 대칭키 암호기술은 암호화와 복호화에서 빠른 속도를 가지는 장점이 있으나, 키 관리 및 키 분배에 어려움이 있고, 각각의 송수신자가 다른 키를 가지고 있어야 하므로 관리하는 키의 숫자가 많아지고 키가 전달되는 과정에서 노출될 가능성이 큰 문제가 있다. Encryption / decryption methods include a symmetric key method and an asymmetric key method. In an encryption algorithm based on a symmetric key, a key having the same key when encrypted and a key when decrypted is used. This symmetric key cryptography has the advantages of high speed in encryption and decryption, but it is difficult in key management and key distribution, and because each transceiver must have a different key, the number of keys to be managed increases and the keys are transmitted. There is a problem that is likely to be exposed in the process.
따라서 효율적인 키 관리 및 분배 기법이 필요하게 되었고, 적은 수의 키로 다수의 상대방과 안전한 통신을 가능하게 하고 전자서명 용도로도 활용할 수 있는 효율적인 암호기법이 필요하게 된 것이다. 이와 같은 배경에서 등장한 암호화 기법이 공개키 방식이다. Therefore, an efficient key management and distribution technique is needed, and an efficient encryption technique that enables secure communication with a large number of counterparts with a small number of keys and can also be used for digital signatures is required. The encryption technique that appeared in such a background is the public key method.
공개키 암호기술은 공개키(Public Key)와 개인키(Private Key)를 사용해서 인증과 서명 및 암호화를 수행하며, 암호키와 복호키가 다르기 때문에 비대칭 암호화라고도 불린다. 공개키 암호기술로는 RSA(Rivest Shamir Adleman), DES(Data Encryption Standard), AES(Advanced Encryption Standard) 등의 암호 알고리즘이 개발되어 표준화되었다.Public key cryptography uses public and private keys to perform authentication, signing, and encryption, and is also called asymmetric encryption because encryption and decryption keys are different. As public key encryption technology, encryption algorithms such as RSA (Rivest Shamir Adleman), DES (Data Encryption Standard) and AES (Advanced Encryption Standard) have been developed and standardized.
종래에 가장 널리 사용해왔던 암호 알고리즘은 RSA로, RSA는 암호화 및 복호화를 위해 막대한 계산량이 필요한 것은 물론 처리속도가 느리다는 단점이 있고, RSA를 이용해 공개키 암호시스템을 구축하기 위해 CPU, 메모리 등의 하드웨어의 고급화를 수반한다. 더욱이 개인이 하나씩의 공개키를 취득하게 되는 이동형 단말 장 치(Mobile Appliance)를 이용하고자 할 때, 처리용량 및 속도 개선은 불가피한 것이다. The most widely used cryptographic algorithm is RSA, which requires a large amount of computation for encryption and decryption as well as a slow processing speed.In order to build a public key cryptosystem using RSA, CPU, memory, etc. It entails an advanced hardware. Furthermore, when an individual wants to use a mobile appliance that acquires one public key, improvement in processing capacity and speed is inevitable.
이에 대응하는 새로운 공개키 방식이 제시되고 있는데 바로 타원 곡선의 원리를 이용한 타원곡선 암호화기법이다. A new public key method has been proposed. The elliptic curve encryption method using the elliptic curve principle is proposed.
타원곡선 암호시스템(Elliptic Curve Crypto-system: ECC)은 Neal Kobliz와 Victor Miller에 의해 1985년에 제안된 이후로 공개키 암호 시스템으로서 많은 연구가 수행되어 왔다. 이 암호 시스템은 타원곡선 상의 점들의 이산대수의 어려움에 기반한 것으로, 같은 안전도에서 비교할 때 기존의 공캐키 암호시스템으로 널리 활용되는 RSA(Rivest-Shamir-Adleman)/DSA(Digital Signature Algorithm)보다 빠르고, 키의 크기가 작다는 장점이 있다. 예를 들어, 약 160비트의 키 크기를 가지는 ECC의 안전도는 키 크기가 1024비트인 RSA의 안전도와 동일하다고 알려져 있다. Elliptic Curve Crypto-system (ECC) has been studied as a public key cryptosystem since it was proposed in 1985 by Neal Kobliz and Victor Miller. This cryptographic system is based on the difficulty of discrete logarithms of points on an elliptic curve, which is faster than the RSA (Rivest-Shamir-Adleman) / Digital Signature Algorithm (DSA), which is widely used as a conventional public-caching cryptosystem when compared at the same level of security. The advantage is that the size of the key is small. For example, the safety of an ECC having a key size of about 160 bits is known to be the same as that of an RSA with a key size of 1024 bits.
타원곡선 암호시스템은 스칼라 곱셈(scalar multiplication)연산을 바탕으로 공개키 분배 및 디지털 서명 등의 기능을 수행하며,상기 타원곡선 암호에서의 연산은 타원곡선 위의 점들의 연산으로 구성되는데, 이 타원곡선 위의 점의 연산들은 유한체의 덧셈, 유한체 뺄셈, 유한체 곱셈, 유한체 나눗셈 등의 조합으로 이루어 지며, 유한체의 곱셈의 경우 시간이 많이 소요되고 부하가 많이 걸리는 문제점이 있다. 따라서, 타원곡선에 기반을 둔 암호화 방법은 공개키 생성시 유한체의 곱셈 연산을 감소시킬 필요가 있다. The elliptic curve cryptographic system performs functions such as public key distribution and digital signature based on scalar multiplication, and the operation in the elliptic curve cryptography consists of the operation of points on the elliptic curve. The operation of the above points consists of a combination of finite field addition, finite field subtraction, finite field multiplication, and finite field division, and the multiplication of the finite field takes a lot of time and load. Therefore, the encryption method based on the elliptic curve needs to reduce the finite field multiplication operation in generating the public key.
본 발명은 전술한 문제점을 해소하기 위하여 안출된 것으로서, 본 발명의 목적은 인증절차를 처리하는 양 통신기기간에 공개키 전송에 소요되는 시간값 차를 이용하여 암호키를 생성함으로써, 종래의 암호키 생성시 연산에 사용되는 유한체의 곱셈 연산 수를 감소시켜 통신 속도를 개선하고 매 인증시마다 다른 공개키를 생성하며, 상기 공개키 생성 시간값 차가 일정 시간 범위를 초과하게 되면 인증절차가 진행되지 않도록 인증실패결정을 하여 안전하게 메시지를 전송하는 공개키 생성 시간좌표를 이용한 ECC 인증방법을 제안하는데 그 목적이 있다.The present invention has been made to solve the above-described problems, an object of the present invention is to generate an encryption key by using the time value difference required for the transmission of the public key in both communication periods processing the authentication procedure, the conventional encryption key Improve the communication speed by reducing the number of multiply operations of the finite body used in the generation, and generate a different public key for every authentication.If the difference in the public key generation time exceeds a certain time range, the authentication procedure does not proceed. The purpose of this paper is to propose an ECC authentication method using public key generation time coordinates to securely transmit a message by determining authentication failure.
상기의 과제를 해결하기 위하여, 본 발명의 일실시예에 따르면 유한체상에서 파라미터를 생성하는 타원곡선 GF(p)인 연산자가 서버 및 모바일단말기에 설치되고, 임의로 생성되어 미리 설정된 파라미터 a, b, p가 상기 GF(p)에 입력되어 타원곡선상의 임의의 점의 좌표 파라미터 G를 생성하여 공유하는 단계와 서버는 상기 모바일단말기로부터 서비스 요청 신호가 수신되면, 상기 생성된 타원곡선상의 G점의 좌표 (XG, YG) 및 상기 서버의 공개키 생성시간값을 좌표로 나타낸 시간좌표 T를 상기 타원곡선상의 덧셈연산을 수행하여 서버 공개키 R을 생성하고, 상기 서버 공개키 R을 모바일단말기로 전송하는 단계와 모바일단말기 는 전송받은 서버 공개키에 대하여 상기 타원곡선상의 G의 역원과 덧셈연산을 수행하여 상기 서버 공개키 생성시간좌표 T를 복원하고, 상기 복원된 서버 공개키 생성시간좌표 T를 모바일단말기 공개키 시간값과 통합하여 모바일단말기 공개키 생성시간좌표 T'를 생성하는 단계와 모바일단말기는 상기 모바일단말기 공개키 생성시간좌표 T' 및 상기 생성된 타원곡선 위의 G점의 좌표 (XG, YG)에 대하여 타원곡선상의 덧셈연산을 수행하여 모바일단말기 공개키 C를 생성하고, 상기 서버로 전송하는 단계와 서버는 전송받은 상기 모바일단말기 공개키 C에 대하여 타원곡선상의 G의 역원과 덧셈연산을 수행하여 상기 모바일단말기 공개키의 생성시간좌표 T'를 복원하는 단계와 상기 서버와 모바일단말기에서 모바일단말기 공개키 생성시간좌표로부터 상기 서버 공개키 생성시간과 상기 모바일단말기 공개키 생성시간 차의 절대값을 계산하여 배수k로 지정하는 단계와 상기 서버와 모바일단말기에서 상기 프로그램된 타원곡선 위의 G점의 좌표 (XG, YG)에 배수k 만큼 타원곡선상의 덧셈연산을 이용한 스칼라 곱을 하여 암호키 Q를 생성하고 암호키의 역원인 복호키 Q'를 생성하는 단계와 상기 암호키 Q와 전송할 데이터 M을 타원곡선상의 덧셈연산을 수행하여 데이터를 암호화하는 단계 및 상기 전송된 암호화된 데이터 M' 및 복호키 Q'를 타원곡선상의 덧셈연산을 수행하여 암호화된 데이터를 복호화하는 단계를 포함하는 공개키 생성 시간 좌표를 이용한 ECC 인증방법에 관한 것이다.In order to solve the above problems, according to an embodiment of the present invention is an elliptic curve GF (p) that generates a parameter on a finite body The operator is installed in the server and the mobile terminal, and the randomly generated preset parameters a, b, p are input to the GF (p) to generate and share the coordinate parameter G of any point on the elliptic curve and the server When the service request signal is received from the mobile terminal, an addition operation on the elliptic curve is a time coordinate T representing the coordinates (X G , Y G ) of the G point on the generated elliptic curve and the public key generation time value of the server. Generating a server public key R, transmitting the server public key R to a mobile terminal, and performing the addition operation with the inverse of G on the elliptic curve with respect to the received server public key. Restoring a key generation time coordinate T and integrating the restored server public key generation time coordinate T with a mobile terminal public key time value to generate a mobile terminal public key Between the coordinates T 'phase and a mobile terminal for generating is the mobile terminal's public key generation time coordinate T' performs the addition operation on the elliptic curve with respect to and the coordinates (X G, Y G) of G points on the generated elliptic curve Generating a mobile terminal public key C, and transmitting the generated public key C to the server; and the server performs an addition operation with the inverse of G on an elliptic curve with respect to the received mobile terminal public key C. Restoring T 'and calculating an absolute value of the difference between the server public key generation time and the mobile terminal public key generation time from the mobile terminal public key generation time coordinates at the server and the mobile terminal, and assigning a multiple k; A scalar using the addition operation on the elliptic curve by multiples k to the coordinates (X G , Y G ) of the G point on the programmed elliptic curve in the server and the mobile terminal. Generating an encryption key Q by performing a multiplication, generating a decryption key Q 'which is an inverse of the encryption key, and performing an encryption operation on the elliptic curve of the encryption key Q and the data M to be transmitted, and encrypting the transmitted data. The present invention relates to an ECC authentication method using public key generation time coordinates comprising performing an addition operation on an elliptic curve of an encrypted data M 'and a decryption key Q'.
이상 설명한 바와 같이, 본 발명은 종래의 ECC 암호화 방법이 주로 스칼라곱을 위주로 연산을 수행하여 많은 부하가 발생하고 인증속도가 느려지는 점을 개선하기 위해 인증절차를 처리하는 통신기기 사이의 공개키 전송에 소요되는 시간값 차이의 절대값을 암호키 생성에 활용하여 스칼라 곱 수행 횟수를 줄이고, 새로운 데이터를 전달할 때마다 새로운 공개키 생성이 가능하며, 공개키의 도청이 있어도 일정 시간 범위를 초과한 공개키 전송의 경우에는 인증절차를 처리하지 못하도록 설정할 수 있으므로 제3자의 공격에 의한 데이터 유출이 불가능하게 되는 효과가 있다. As described above, the present invention provides a public key transmission between communication devices that process authentication procedures to improve the conventional ECC encryption method is mainly performed on the scalar product to generate a lot of load and slow down the authentication speed. By using the absolute value of the difference in time value to generate the encryption key, it is possible to reduce the number of scalar multiplications, and to generate a new public key every time new data is transmitted. In the case of transmission, the authentication procedure can be set so that data leakage due to a third-party attack is impossible.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일실시예에 따른 공개키 생성시간좌표를 이용한 ECC 인증방법에 대한 흐름도로서, 상기 공개키 생성시간좌표를 이용한 ECC 인증방법은 다음과 같은 단계로 이루어진다.1 is a flowchart illustrating an ECC authentication method using a public key generation time coordinate according to an embodiment of the present invention. The ECC authentication method using the public key generation time coordinate is performed as follows.
서버와 모바일단말기에 유한체상에서 파라미터를 생성하는 타원곡선 GF(p) 인 연산자가 설치되고, 임의로 생성되어 미리 설정된 파라미터 a, b, p가 상기 GF(p)에 입력되어 타원곡선상의 임의의 점의 좌표 파라미터 G를 생성하여 공유하는 단계(S10)와, 서버는 모바일단말기로부터 서비스 요청 신호 가 수신되면 상기 생성된 타원곡선상의 G점의 좌표 (XG, YG) 및 상기 서버의 공개키 생성시간값을 좌표로 나타낸 시간좌표 T를 상기 타원곡선상의 덧셈연산을 수행하여 서버 공개키 R을 생성하고, 상기 서버 공개키 R을 모바일단말기로 전송하는 단계(S20)와, 모바일단말기는 전송받은 서버공개키에 대하여 상기 타원곡선상의 G의 역원과 덧셈연산을 수행하여 상기 서버 공개키 생성시간좌표 T를 복원하고, 상기 복원된 서버 공개키 생성시간좌표 T를 모바일단말기 공개키 시간값과 통합하여 모바일단말기 공개키 생성시간좌표 T'를 생성하는 단계(S30)와 모바일단말기는 상기 모바일단말기 공개키 생성시간좌표 T' 및 상기 생성된 타원곡선 위의 G점의 좌표 (XG, YG)에 대하여 타원곡선상의 덧셈연산을 수행하여 모바일단말기 공개키 C를 생성하고, 상기 서버로 전송하는 단계(S40)와 서버는 전송받은 상기 모바일단말기 공개키 C에 대하여 타원곡선상의 G의 역원과 덧셈연산을 수행하여 상기 모바일단말기 공개키의 생성시간좌표 T'를 복원하는 단계(S50)와 상기 서버와 모바일단말기에서 모바일단말기 공개키 생성시간좌표로부터 상기 서버 공개키 생성시간과 상기 모바일단말기 공개키 생성시간 차의 절대값을 계산하여 배수k로 지정하는 단계(S60)와 상기 서버와 모바일단말기에서 상기 프로그램된 타원곡선상의 G점의 좌표(XG, YG)에 배수k 만큼 타원곡선상의 덧셈연산을 이용한 스칼라 곱을 하여 암호키 Q를 생성하고 암호키의 역원인 복호키 Q'를 생성하는 단계(S70)와 상기 암호키 Q와 전송할 데이터 M을 타원곡선상의 덧셈연산을 수행하여 데이터를 암호화하는 단계 및 상기 전송된 암호화된 데이터 M' 및 복호키 Q'를 타원곡선상의 덧셈연산을 수행하여 암호화된 데이터를 복호화하는 단계(S80)로 이루어져 ECC 인증절차를 수행한다. An elliptic curve GF (p) that generates a parameter on a finite field in a server and a mobile terminal. An operator is installed, and randomly generated and preset parameters a, b and p are inputted to the GF (p) to generate and share the coordinate parameter G of an arbitrary point on the elliptic curve (S10), and the server is a mobile terminal. When the service request signal is received from the elliptic curve, an addition operation on the elliptic curve is performed on the coordinate (X G , Y G ) of the G point on the generated elliptic curve and the time coordinate T representing the public key generation time value of the server. Generating a server public key R and transmitting the server public key R to a mobile terminal (S20), and the mobile terminal performs an addition operation with an inverse of G on the elliptic curve with respect to the received server public key; Restoring a public key generation time coordinate T and integrating the restored server public key generation time coordinate T with a mobile terminal public key time value to generate a mobile terminal public key generation time coordinate T '; Step (S30) and the mobile terminal by performing the addition operation on the elliptic curve on the mobile terminal public key generation time coordinate T 'and the coordinate (X G , Y G ) of the G point on the generated elliptic curve to reveal the mobile terminal Generating the key C, and transmitting to the server (S40) and the server performs the addition operation with the inverse of the G on the elliptic curve on the received mobile terminal public key C coordinate time T of the mobile terminal public key Restoring (S50) and calculating the absolute value of the difference between the server public key generation time and the mobile terminal public key generation time from the mobile terminal public key generation time coordinates in the server and the mobile terminal, and assigning a multiple k. (S60) and the server and the coordinates of the point G on the elliptic curve program (X G, Y G) scalar multiplication using the addition operation on an elliptic curve by k drain on a mobile terminal Generating an encryption key Q and generating a decryption key Q 'which is an inverse of the encryption key (S70), performing an addition operation on an elliptic curve of the encryption key Q and the data M to be transmitted, and encrypting the data; An encryption operation is performed on the encrypted data M 'and the decryption key Q' by performing an addition operation on an elliptic curve (S80) to perform an ECC authentication procedure.
상기 각 단계(S10 내지 S80)에 대하여 도 2에 도시된 공개키 생성시간좌표를 이용한 ECC 인증방법의 단계별 처리과정을 도시한 데이터 흐름도와 함께 보다 상세하게 설명하면 다음과 같다. Each of the steps S10 to S80 will be described in more detail together with a data flow diagram illustrating a step-by-step process of the ECC authentication method using the public key generation time coordinate shown in FIG. 2.
서버와 모바일단말기에 유한체상에서 파라미터를 생성하는 타원곡선 GF(p)인 연산자가 설치되고, 임의로 생성되어 미리 설정된 파라미터 a, b, p가 상기 GF(p)에 입력되어 타원곡선상의 임의의 점의 좌표인 파라미터 G를 생성하여 공유하는 단계(S10)는, 유한체상의 타원곡선인 GF(p)에 파라미터 a, b, p를 대입하여 상기 방정식을 만족시키는 타원곡선상의 점의 좌표들 중 임의의 점의 좌표가 상기 파라미터 G로 설정되고 양 통신기기에 공유된다. 따라서, 양 통신기기는 파라미터 a, b, p, G를 공유하도록 프로그램 설치 시 동기화된다. 상기 GF(p)는 [수학식 1]과 같다.An elliptic curve GF (p) that generates a parameter on a finite field in a server and a mobile terminal. An operator is provided, and randomly generated and preset parameters a, b, and p are input to the GF (p) to generate and share a parameter G which is a coordinate of an arbitrary point on an elliptic curve (S10). Coordinates of any of the coordinates of the points on the elliptic curve satisfying the above equation by substituting the parameters a, b and p into the elliptic curve GF (p) are set to the parameter G and shared by both communication devices. Thus, both communication devices are synchronized at program installation to share the parameters a, b, p, G. The GF (p) is the same as [Equation 1].
a, b, p : 임의로 생성되는 서버에 미리 설정된 파라미터(단, p는 3보다 큰 소수임)a, b, p: pre-set parameters for randomly generated servers (where p is a prime number greater than 3)
x, y : 좌표x, y: coordinate
따라서, 상기 [수학식 1]을 적용하여 파라미터 G를 검증하기 위한 단순화된 예는 다음과 같다.Therefore, a simplified example for verifying the parameter G by applying the
즉, GF(p) :에서 파라미터가 p=11, a=3, b=2 일 경우, 타원곡선상의 점의 좌표 (x, y)는 다음과 같이 생성된다.GF (p): For p = 11, a = 3, and b = 2, the coordinates (x, y) of the points on the elliptic curve are generated as follows.
(2, 4) , (2, 7) , (3, 4) , (3, 7) , (4, 1) , (4, 10) , (6, 4) , (6, 7) , (7, 5) , (7, 6) , (10, 3) , (10, 8) (2, 4), (2, 7), (3, 4), (3, 7), (4, 1), (4, 10), (6, 4), (6, 7), (7 , 5), (7, 6), (10, 3), (10, 8)
이와 같이 생성된 임의의 점의 좌표 중에서 미리 설정된 점의 좌표 파라미터 G가 상기 타원곡선상의 점의 좌표(x, y)로 설정되며, 상기 파라미터 a, b, p, G를 상기 타원곡선 방정식에 대입하여 검증한다.The coordinate parameter G of a predetermined point among the coordinates of the arbitrary points generated as described above is set as the coordinate (x, y) of the point on the elliptic curve, and the parameters a, b, p, and G are substituted into the elliptic curve equation. To verify.
상기 서버 및 모바일단말기는 생성된 파라미터 G를 인증절차에 사용하는 파라미터로 공유한다. The server and the mobile terminal share the generated parameter G as a parameter used in the authentication procedure.
즉, 상기 서버에 설정된 a, b, p 및 G 파라미터는 인증절차를 처리하는 동안 일정한 값으로 고정되며, 모바일단말기에도 동일한 파라미터 값을 공유한다.That is, the a, b, p, and G parameters set in the server are fixed to a constant value during the authentication process, and share the same parameter values in the mobile terminal.
예컨대, 상기 a, b, p 값에 대한 타원곡선상의 점의 좌표 G는 12개의 값을 가질 수 있고, 데이터를 송수신하는 서버 및 모바일단말기가 동일한 G의 좌표를 갖도록 상기 서버 및 모바일단말기에 설정된 G의 좌표가 공유된다. For example, the coordinate G of the point on the elliptic curve with respect to the a, b, and p values may have 12 values, and the server G and the mobile terminal configured to transmit and receive data have the same G coordinates. The coordinates of are shared.
서버가 상기 생성된 타원곡선상의 점의 좌표 G(XG, YG) 및 상기 서버의 공개키 생성시간값을 좌표로 나타낸 시간좌표 T를 타원곡선상의 덧셈연산을 수행하여 서버 공개키 R을 생성하고, 상기 서버 공개키 R을 모바일단말기로 전송하는 단계(S20)는, 상기 생성된 파라미터 G의 좌표와 공개키 생성시간값을 좌표로 표시한 시간좌표 T로부터 공개키를 생성한다. 상기 서버 공개키 생성시간좌표 T는 x좌 표값은 "0"이고, y좌표값은 "서버 내에서 생성되는 시간값 t"로 설정된다.The server generates the server public key R by performing an addition operation on the elliptic curve with the coordinate G (X G , Y G ) of the generated point on the elliptic curve and the time coordinate T representing the public key generation time value of the server. In operation S20, the server public key R is transmitted to the mobile terminal. The public key is generated from the time coordinate T indicating the coordinates of the generated parameter G and the public key generation time value. The server public key generation time coordinate T is set to x coordinate value "0", and the y coordinate value is set to "time value t generated in the server".
상기 타원곡선상의 덧셈연산은 아래 [수학식 2], [수학식 3]이 적용되며, 타원곡선상의 덧셈연산의 결과 좌표값 (X3, Y3)는 아래와 같다.The addition operation on the elliptic curve is applied to the following [Equation 2], [Equation 3], the coordinate values (X 3 , Y 3 ) of the result of the addition operation on the elliptic curve is as follows.
단순한 예시를 들어보면, (X1, Y1)=(2, 4), (X2, Y2)=(6, 7), (X1, Y1)+(X2, Y2)=(2, 4)+(6,7)에서 x1 은 2이고, x2 는 6이므로 [수학식 2]가 적용된다. For a simple example, (X 1 , Y 1 ) = (2, 4), (X 2 , Y 2 ) = (6, 7), (X 1 , Y 1 ) + (X 2 , Y 2 ) = In (2, 4) + (6, 7) x 1 is 2, x 2 is 6 so that Equation 2 is applied.
[수학식 2]에 의해 먼저 k를 계산하면, k=3/4 이 되고, 상기 k값을 구하기 위하여 타원곡선상의 "/"연산 대신 유클리드 알고리즘을 이용하여 역원을 구한다. When k is first calculated by Equation 2, k = 3/4, and the inverse is obtained by using the Euclidean algorithm instead of the “/” operation on the elliptic curve to obtain the k value.
상기 160비트 이상의 파라미터의 "/" 연산은 프로그램상 계산의 오차를 발생시킬 수 있으므로 "/" 연산을 하지 않고, 역원을 구해 "*" 연산을 하여 "/" 연산과 같은 결과를 얻을 수 있도록 유클리드 알고리즘을 이용한다. The "/" operation of the 160-bit or more parameter may cause a programmatic error, so Euclid can obtain the same result as the "/" operation by obtaining the inverse and performing the "*" operation without performing the "/" operation. Use an algorithm.
상기 유클리드 알고리즘을 이용하여 k값을 구하면, 4x=1 (mod 11)을 만족하는 x=3 (mod 11) 이므로 k값은 9가 되고, [수학식 2]에서 X3, Y3 를 계산하면,If k is calculated using the Euclidean algorithm, x = 3 (mod 11) that satisfies 4x = 1 (mod 11), and thus k is 9, and when X 3 and Y 3 are calculated in Equation 2, ,
X3 = 81 - 2 - 6 (mod 11) = 7X 3 = 81-2-6 (mod 11) = 7
Y3 = 9(2 -7) - 4 (mod 11) = 6Y 3 = 9 (2 -7)-4 (mod 11) = 6
즉, 결과값 (X3, Y3)=(7, 6)이 된다.In other words, the result (X 3 , Y 3 ) = (7, 6).
상기 수학식에 의해 생성된 서버 공개키 R은 서비스를 요청한 모바일단말기로 전송되고, 상기 모바일단말기는 전송받은 서버 공개키에 대하여 상기 타원곡선상의 G의 역원과 덧셈연산을 수행하여 서버 공개키 생성시간좌표 T를 복원하고, 상기 복원된 서버 공개키 생성시간좌표 T를 모바일단말기 공개키 시간값과 통합하여 모바일단말기 공개키 생성시간좌표 T'를 생성한다(S30). The server public key R generated by the above equation is transmitted to the mobile terminal requesting the service, and the mobile terminal performs addition operation with the inverse of G on the elliptic curve with respect to the received server public key to generate the server public key. Coordinate T is restored, and the restored server public key generation time coordinate T is integrated with the mobile terminal public key time value to generate a mobile terminal public key generation time coordinate T '(S30).
상기 모바일단말기 공개키 생성시간좌표 T'를 생성하는 단계(S30)에서 상기 서버 공개키 생성시간좌표 T(0, t)와 모바일단말기 공개키 시간값 t'를 통합하는 것은 상기 서버 공개키 생성시간좌표 T의 y좌표값 t를 상기 모바일단말기 공개키 생성시간좌표 T'의 x좌표값으로 설정하고, 상기 모바일단말기 공개키 시간값 t'를상기 모바일단말기 공개키 생성시간좌표 T'의 y좌표값으로 설정하는 것으로, 상기 모바일단말기 공개키 생성시간좌표 T'에는 서버 공개키 생성시간과 모바일단말기 공개키 생성시간이 모두 포함된다. In the step S30 of generating the mobile terminal public key generation time coordinate T ', integrating the server public key generation time coordinate T (0, t) and the mobile terminal public key time value t' is the server public key generation time. The y coordinate value t of coordinate T is set to the x coordinate value of the mobile terminal public key generation time coordinate T ', and the mobile terminal public key time value t' is the y coordinate value of the mobile terminal public key generation time coordinate T '. In this case, the mobile terminal public key generation time coordinate T 'includes both a server public key generation time and a mobile terminal public key generation time.
즉, 상기 모바일단말기 공개키 생성시간좌표 T'는 (t, t')이고, t: 서버 공개키 생성시간값, t': 모바일단말기 공개키 생성시간을 의미한다. That is, the mobile terminal public key generation time coordinate T 'is (t, t'), t: server public key generation time value, and t ': mobile terminal public key generation time.
상기 타원곡선상의 점 G좌표의 역원인 G'는 G좌표와 x값은 동일하고 y값만 다른 좌표값으로 쉽게 구할 수 있으며, 상기 서버 공개키와 G좌표의 뺄셈연산 대신 서버 공개키와 상기 G'좌표의 덧셈연산을 수행하여 서버 공개키 생성시간 좌표 T를 복원할 수 있다. G ', the inverse of the point G coordinate on the elliptic curve, can be easily obtained with the same coordinate value as the G coordinate and the x value, and the server public key and the G' instead of the subtraction operation of the server public key and the G coordinate. Coordinate addition operation may be performed to restore the server public key generation time coordinate T.
또한, 모바일단말기는 상기 모바일단말기 공개키 생성시간좌표 T' 및 상기 생성된 타원곡선상의 G점의 좌표에 대하여 타원곡선사의 덧셈연산을 수행하여 모바일단말기 공개키 C를 생성하여 서버로 전송한다(S40). In addition, the mobile terminal performs addition operation of an elliptic curve on the mobile terminal public key generation time coordinate T 'and the coordinates of the generated G point on the elliptic curve to generate a mobile terminal public key C and transmit it to the server (S40). ).
상기 모바일단말기 공개키 C를 전송받은 서버가 상기 모바일단말기 공개키의 생성시간좌표 T'를 복원하는 단계(S50)는 모바일단말기 공개키 C와 타원곡선상의 점 G의 역원 G'를 덧셈연산을 수행하여 모바일단말기 공개키의 생성시간좌표 T'를 구할 수 있다.The server receiving the mobile terminal public key C restores the generated time coordinate T 'of the mobile terminal public key (S50) to perform an addition operation on the inverse G' of the mobile terminal public key C and the point G on the elliptic curve. By using this method, the generation time coordinate T 'of the mobile terminal public key can be obtained.
상기 서버와 모바일단말기에서 모바일단말기 공개키 생성시간좌표로부터 상기 서버 공개키 생성시간과 상기 모바일단말기 공개키 생성시간의 차를 계산하여 배수k로 지정하는 단계(S60)는 상기 서버와 모바일단말기 사이의 공개키 전송에 소요되는 시간값 차이의 절대값이 배수 k로 지정된다. The step of calculating the difference between the server public key generation time and the mobile terminal public key generation time from the mobile terminal public key generation time coordinates in the server and the mobile terminal and assigning a multiple k (S60) between the server and the mobile terminal The absolute value of the time difference for public key transmission is specified as a multiple of k.
상기 배수k 값이 미리 설정된 공개키 수신대기시간값을 초과하는 경우, 상기 서버 또는 모바일 단말기로 ECC 인증절차의 상대 측 통신기기에서 생성된 공개키가 2번 이상 전송된 경우 인증실패결정을 내리는 단계를 더 포함할 수 있으며, 이는 제3자에 의한 공개키 유출을 방지하기 위함이다.When the multiple k value exceeds a preset public key reception waiting time value, when the public key generated by the communication device of the counterpart of the ECC authentication procedure is transmitted to the server or the mobile terminal two or more times, making an authentication failure determination It may further include, which is to prevent the public key leakage by a third party.
상기 서버로부터 인증실패결정을 전송받은 모바일단말기는 인증절차를 처음부터 다시 수행해야하며, 서버로부터 새로운 공개키 생성시간값에 대응되는 새로운 공개키를 전송받게 된다.The mobile terminal receiving the authentication failure decision from the server must perform the authentication procedure again from the beginning and receive a new public key corresponding to the new public key generation time value from the server.
상기 서버와 모바일단말기에서 생성되어 공유된 타원곡선 위의 G점의 좌표 (XG, YG)에 배수k 만큼 스칼라 곱을 하여 암호키 Q를 생성하고 암호키의 역원인 복호키 Q'를 생성하는 단계(S70)는, 상기 배수 k만큼 G점의 좌표를 타원곡선상의 덧셈연산을 수행하여 스칼라 곱을 수행하여 암호키 Q를 생성한다.A cryptographic key Q is generated by scalar multiplying the coordinates (X G , Y G ) of the G point on the shared elliptic curve generated by the server and the mobile terminal by a multiple of k and generating a decryption key Q 'which is the inverse of the cryptographic key. In operation S70, an encryption operation Q is generated by performing a scalar product by performing an addition operation on an elliptic curve of the coordinates of the point G by the multiple k.
상기 암호키/복호키 생성 단계는 상기 서버와 모바일단말기 사이의 공개키 전송 시간을 암호키/복호키 생성에 이용하는 것으로서 새로운 인증절차가 진행되는 경우에는 공개키 생성 및 전송 시간이 상이하여 동일한 서버와 모바일단말기 사이에서도 다른 암호키/복호키 생성이 가능하다. The encryption key / decryption key generation step uses the public key transmission time between the server and the mobile terminal to generate an encryption key / decryption key. When a new authentication procedure is performed, the public key generation and transmission time are different from the same server. It is possible to generate different encryption / decryption keys between mobile terminals.
상기 암호키 Q와 전송할 데이터 M을 타원곡선상의 덧셈연산을 수행하여 데이 터를 암호화하는 단계 및 상기 전송된 암호화된 데이터 M' 및 복호키 Q'를 타원곡선상의 덧셈연산을 수행하여 암호화된 데이터를 복호화하는 단계(S80)는, 상기 생성된 암호키/복호키와 타원곡선상의 점 G좌표를 덧셈연산을 수행하여 암호화 또는 복호화한다. Encrypting the data by performing an addition operation on an elliptic curve of the encryption key Q and the data M to be transmitted, and performing an addition operation on an elliptic curve of the transmitted encrypted data M 'and the decryption key Q' to encrypt the encrypted data. In the step of decrypting (S80), the generated encryption key / decryption key and the point G coordinate on the elliptic curve are added to perform encryption or decryption.
본 발명에 의한 ECC 알고리즘을 실제 서버 및 모바일 단말기에 적용한 예시데이터인 도 3a 및 도 3b를 참조하여 공개키 생성 및 암호화/복호화 과정을 살펴본다.The public key generation and encryption / decryption process will now be described with reference to FIGS. 3A and 3B, which are exemplary data applying the ECC algorithm according to the present invention to a real server and a mobile terminal.
상기 프로토콜 구현을 위해 160bit 정수의 사칙 연산이 가능한 함수를 구현하고, 유한체상에서 파라미터를 생성하는 타원곡선 연산자가 서버 및 모바일단말기에 설치되고, 임의로 생성되어 미리 설정된 파라미터 a, b, p 및 타원곡선상의 점 G(XG, YG)의 좌표는 아래와 같이 설정된다. An elliptic curve for generating a parameter on a finite field by implementing a function capable of arithmetic of 160-bit integers for the protocol implementation. The operator is installed in the server and the mobile terminal, and the coordinates of the arbitrarily generated and preset parameters a, b, p and the point G (X G , Y G ) on the elliptic curve are set as follows.
a : 1461501637330902918203684832716283019653785059324a: 1461501637330902918203684832716283019653785059324
b : 618161358937170673988121756987436237099350920727b: 618161358937170673988121756987436237099350920727
p : 1461501637330902918203684832716283019653785059327p: 1461501637330902918203684832716283019653785059327
XG : 1168983055804381306122964739888353823030159703303X G : 1168983055804381306122964739888353823030159703303
YG : 591673640518579811944247307252990789873540735386Y G : 591673640518579811944247307252990789873540735386
타원곡선상의 점 G의 좌표는 상기 파라미터 XG , YG 값으로 주어지고 서버 공개키 생성시간좌표 T는 (0, 20080201155622731)이며, 상기 서버 공개키 R= G+T이므 로, 타원곡선상의 덧셈정리를 수 행하면 서버 공개키 R(XR , YR)은 아래와 같다.The coordinate of the point G on the elliptic curve is the parameter X G , Y G Given a value, the server public key generation time coordinate T is (0, 20080201155622731), and the server public key R = G + T. Therefore, when the addition of the elliptic curve is performed, the server public key R (X R , Y R ) is
XR : 0705252251986122734508705059871883404525479711286X R : 0705252251986122734508705059871883404525479711286
YR : 0644247137415270048652035102962775188137242407276)Y R : 0644247137415270048652035102962775188137242407276)
상기 서버 공개키가 모바일단말기로 전송되면, 상기 모바일단말기에서는 서버 공개키 R과 G좌표의 역원 G'를 덧셈연산을 수행하여 서버 공개키 생성시간좌표 T를 복원한다. When the server public key is transmitted to the mobile terminal, the mobile terminal adds the inverse G 'of the server public key R and the G coordinate to restore the server public key generation time coordinate T.
즉, G좌표의 역원 G'은 상기 식을 만족하는 타원곡선상의 점으로 G좌표와 x값이 동일하고 y값만 다른 x축 대칭인 점의 좌표를 의미하며, G'( XG' , YG')는 아래와 같다. That is, the inverse G 'of the G coordinate is Point on an elliptic curve that satisfies the equation. It means the coordinate of the point of x-axis symmetry where G coordinate and x value are the same and only y value is different. G '(X G ' , Y G ') is
XG' : 1168983055804381306122964739888353823030159703303X G '' 1168983055804381306122964739888353823030159703303
YG' : 0869827996812323106259437525463292229780244323941Y G '': 0869827996812323106259437525463292229780244323941
따라서, 모바일단말기에서 상기 서버 공개키 생성시간좌표 T를 이용하여 모바일단말기 공개키 생성시간좌표 T'를 생성하며, T'의 x값은 T의 y값을 대입하고, T'의 y값은 모바일단말기 공개키 생성시간값을 대입한다.Accordingly, the mobile terminal generates the mobile terminal public key generation time coordinate T 'using the server public key generation time coordinate T, wherein the x value of T' is substituted for the y value of T and the y value of T 'is mobile. Substitute the public key generation time value of the terminal.
예시데이터에 의하면, T'(20080201155622731, 20080201155623028)이고, 모바일단말기 공개키 C(XC, YC)는 T'와 G좌표의 덧셈연산을 수행한 결과이다. According to the example data, T '(20080201155622731, 20080201155623028), and the public terminal C (X C , Y C ) of the mobile terminal is the result of performing the addition operation of the T' and the G coordinate.
XC : 0626596640431141068978076944865888931528156503616X C : 0626596640431141068978076944865888931528156503616
YC : 0827394782815803576352611169962912872087600192540Y C : 0827394782815803576352611169962912872087600192540
상기 모바일단말기의 공개키를 전송받은 서버는 C와 G'를 덧셈연산을 수행하고 상기 모바일단말기의 공개키 생성시간좌표 T'를 복원한다. 또한, T와 T'의 y값의 차이의 절대값인 공개키 전송 소요 시간은 배수 k로 설정되며, 배수 k는 암호키/복호키를 생성하는데 이용된다. The server receiving the public key of the mobile terminal adds C and G 'and restores the public key generation time coordinate T' of the mobile terminal. Also, the time required for public key transmission, which is the absolute value of the difference between the y values of T and T ', is set to a multiple k, and the multiple k is used to generate an encryption key / decryption key.
도 3b는 배수 k값을 이용하여 암호키 및 복호키를 생성하는 예시데이터로서, k = t'-t = 297 이고, 암호키 Q = kG , 복호키 Q' 는 암호키 Q의 역원에 해당된다. 3B illustrates exemplary data for generating an encryption key and a decryption key using multiple k values, where k = t'-t = 297, and encryption key Q = kG and decryption key Q 'correspond to inverses of encryption key Q. .
상기 암호키를 구하기 위해서 배수 k와 타원곡선상의 좌표 G를 스칼라 곱해야 하며 스칼라 곱 kG는 G를 k번 덧셈연산을 수행한 결과와 동일하고 암호키 Q(XQ ,YQ) 및 복호키 Q'(XQ' ,YQ')는 아래와 같다.In order to obtain the encryption key, the multiple k must be scalar multiplied by the coordinate G on the elliptic curve, and the scalar product kG is the same as the result of performing k addition operation of G and the encryption key Q (X Q , Y Q ) and the decryption key Q '(X Q ', Y Q ') is as below.
XQ : 515327075141625540374921420100707238148949856626X Q : 515327075141625540374921420100707238148949856626
YQ : 1182027462271984850465029530203563033444554787779Y Q : 1182027462271984850465029530203563033444554787779
XQ': 515327075141625540374921420100707238148949856626X Q ': 515327075141625540374921420100707238148949856626
YQ': 0279474175058918067738655302512719986209230271548Y Q ': 0279474175058918067738655302512719986209230271548
전송하려는 데이터 M = (99999999999999999999, 11111111111111111111) 인 경우, 암호화 된 데이터 M' = M + Q 이며, M'(XM' ,YM')는 M과 Q를 타원곡선상의 덧셈연산을 수행한 결과이고, 원래의 데이터를 복원하기 위해 암호화된 데이터 M'와 복호키 Q'를 타원곡선상의 덧셈연산을 수행하여 원래의 데이터 M을 복원할 수 있다. If the data to be transmitted is M = (99999999999999999999, 11111111111111111111), the encrypted data M '= M + Q, and M' (X M ', Y M ') is the result of the addition operation on the elliptic curve of M and Q. In order to restore the original data, the original data M may be restored by performing an addition operation on the elliptic curve of the encrypted data M 'and the decryption key Q'.
XM': 0454068423475932379563533708930611396466396473756X M ': 0454068423475932379563533708930611396466396473756
YM': 0193236021908021304983022885552075820014564013044Y M ': 0193236021908021304983022885552075820014564013044
한편, 본 발명의 공개키 생성시간좌표를 이용한 ECC 인증방법은 아래의 공개키 생성시간좌표를 이용한 ECC 인증모듈에 의해서 수행될 수 있다.Meanwhile, the ECC authentication method using the public key generation time coordinate of the present invention may be performed by the ECC authentication module using the following public key generation time coordinate.
공개키 생성시간좌표를 이용한 ECC 인증모듈은 유한체상에서 파라미터를 생성하는 타원곡선 연산자가 설치되고, 파라미터 a, b, p 및 타원곡선상의 점 G의 좌표가 설정된 인증절차를 처리하는 통신기기의 인증모듈에 있어서, 송신측 통신기기로부터 전송된 공개키와 상기 설정된 타원곡선상의 점 G의 좌표로부터 송신측 공개키 생성 시간좌표를 복원하고, 상기 G의 좌표와 상기 공개키를 수신받은 통신기기의 공개키 시간좌표로부터 수신측 공개키를 생성하고, 상기 G의 좌표, 상기 수신측 공개키 시간좌표 및 송신측 공개키 시간좌표를 이용하여 메시지를 암호화/복호화하는 공개키생성/암호화/복호화부와 상기 송신측으로부터 전송된 암호화된 데이터를 복호화하기 위해 복호키 Q'를 생성하는 ECC 키변환부와 상기 ECC 키변환부, 공개키생성/암호화/복호화부의 공개키, 암호키, 복호키 생성 및 시간좌표 값 복원을 위해 타원곡선상의 160비트 사칙연산을 수행하는 오퍼레이션부와 상기 오퍼레이션부의 사칙연산을 단순화시키기 위해 유클리드 알고리즘을 이용하여 정수의 역원을 구하는 역원산출부와 상기 암호화된 데이터와 함께 전송된 데이터 인증코드를 산출하고 데이터의 변조사실을 검사하는 데이터인증부와 상기 데이터인증부와 공개키생성/암호화/복호화부를 구분하여 연동되도록 제어하는 제어부 및 상기 제어부의 제어신호에 따라 인증절차를 처리하는 상대 인증모듈과 서비스 요청신호, 공개키, 암호화된 데이터를 송수신하는 송수신부를 포함한다.An ECC authentication module using public key generation time coordinates creates an elliptic curve that generates a parameter on a finite body. An authentication module of a communication device for processing an authentication procedure in which an operator is provided and the parameters a, b, p, and coordinates of a point G on an elliptic curve are set, the public module transmitted from the transmitting side communication device and the point on the set elliptic curve A transmitter-side public key generation time coordinate is restored from a coordinate of G, and a receiver-side public key is generated from a coordinate of the G and a public key time coordinate of the communication device receiving the public key. A public key generation / encryption / decryption unit that encrypts / decrypts a message using the public key time coordinate and the public key time coordinate of the sender, and an ECC that generates a decryption key Q 'for decrypting the encrypted data transmitted from the sender. 160-bit arithmetic on the elliptic curve for generating the public key, encryption key, decryption key and restoring time coordinates In order to simplify the arithmetic operation of the operation unit and the operation unit to calculate the data authentication code transmitted with the inverse calculation unit for obtaining the inverse of the integer using the Euclidean algorithm and the encrypted data and to check the fact that the data is tampered with A control unit for controlling the data authentication unit, the data authentication unit and the public key generation / encryption / decryption unit to interoperate, and a counterpart authentication module for processing the authentication process according to the control signal of the control unit, a service request signal, a public key, and an encrypted key. It includes a transceiver for transmitting and receiving data.
도 4는 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증모듈의 구성도로서, 공개키생성/암호화/복호화부(110, 210), ECC 키변환부(120, 220), 오퍼레이션부(130, 230), 역원산출부(140, 240), 데이터인증부(150, 250), 제어부(160, 260) 및 송수신부(170, 270)를 포함한다. 4 is a configuration diagram of an ECC authentication module using a public key generation time coordinate according to the present invention. The public key generation / encryption / decryption unit (110, 210), ECC key conversion unit (120, 220), the
상기 공개키생성/암호화/복호화부(110, 210)는 공개키 생성, 전송할 데이터의 암호화 및 전송받은 데이터를 복호화한다. The public key generation / encryption /
상기 공개키 생성은 공개키 생성시간좌표를 이용하며, 매 인증절차마다 새로운 공개키가 생성된다. 상기 공개키 생성 과정은 수신측 통신기기의 서비스 요청에 의해 송신측 통신기기로부터 전송된 공개키 R 및 설정된 파라미터 값을 대입하여 생성된 타원곡선 위의 점 G의 역원 G'의 좌표를 타원곡선상의 덧셈연산을 수행하여 송신측 공개키 생성시간좌표 T를 복원하고, 송신측 공개키 생성시간좌표로부터 수신측 공개키 생성시간좌표 T'를 생성한다. 여기서 송신측 공개키 생성시간좌표는 T(0, t)로 t는 송신측 공개키 생성시간값이다. The public key generation uses a public key generation time coordinate, and a new public key is generated for each authentication procedure. The public key generation process is an elliptic curve generated by substituting the public key R and the set parameter value transmitted from the transmitting communication device by the service request of the receiving communication device. Perform the addition operation on the elliptic curve of the inverse G 'of the point G above to restore the sender public key generation time coordinate T, and generate the receiver public key generation time coordinate T' from the sender public key generation time coordinate. do. Here, the transmission time public key generation time coordinate is T (0, t), and t is the transmission time public key generation time value.
또한, 상기 생성된 수신측 공개키 생성시간좌표 T'와 타원곡선상의 점 G좌표 를 덧셈연산을 수행하여 수신측 공개키 C를 생성한다. 여기서, 수신측 공개키 생성시간좌표 T'의 x값은 송신측 공개키생성시간좌표의 y값을 대입하고, 수신측 공개키 생성시간좌표의 y값은 수신측 공개키 생성시간값을 대입하며, T'는 (t, t')로 나타낸다.In addition, the receiving side public key C is generated by performing an addition operation on the generated receiving side public key generation time coordinate T 'and the point G coordinate on the elliptic curve. Here, the x value of the receiving side public key generation time coordinate T 'substitutes the y value of the sending side public key generation time coordinate, and the y value of the receiving side public key generation time coordinate substitutes the receiving side public key generation time value. , T 'is represented by (t, t').
상기 암호화 과정은 공개키 생성시간좌표 T, T'의 y값인 t, t'의 차와 타원곡선상의 점 G의 좌표를 스칼라 곱하여 암호키 Q를 생성하고, 전송할 데이터 M과 암호키 Q를 덧셈연산하여 암호화 데이터 M'를 생성한다. The encryption process generates an encryption key Q by scalar multiplying the difference between t and t ', which are y values of the public key generation time coordinates T and T', and the coordinates of the point G on the elliptic curve, and adds the data M to be transmitted and the encryption key Q. To generate encrypted data M '.
상기 암호키는 공개키 전송시간 차이를 반영된 것으로 새로운 데이터를 전송할 때마다 암호키가 갱신되므로 공격자에 대비할 수 있다. The encryption key reflects the difference in public key transmission time, and the encryption key is updated every time new data is transmitted, thereby preparing for an attacker.
또한, 상기 공개키 전송시간 차이가 일정시간을 초과한 경우(예를 들어, 1분을 초과한 경우)에는 인증실패결정을 내리고 다시 처음부터 인증절차를 수행하도록 제어할 수 있으며, 동일한 공개키가 두 번 수신되는 경우에도 인증실패결정을 하여 정보 유출을 방지할 수 있다. In addition, when the difference in the public key transmission time exceeds a predetermined time (for example, when more than 1 minute), it is possible to control to make an authentication failure decision and to perform the authentication procedure again from the beginning. Even if it is received twice, authentication failure can be determined to prevent information leakage.
상기 복호화 과정은 상기 ECC 키변환부(120, 220)로부터 생성된 복호키를 이용하며, 암호화된 데이터 M'와 복호키 Q'를 덧셈연산을 수행하여 원래의 데이터 M을 복원한다. The decryption process uses a decryption key generated from the ECC
상기 오퍼레이션부(130, 230)는 ECC 키변환부(120, 230), 공개키생성/암호화/복호화부(110, 210)의 공개키, 암호키, 복호키 생성 및 시간좌표값 복원을 위해 160비트 사칙연산을 수행하며, 상기 역원산출부(140, 240)는 유클리드 알고리즘을 이용하여 정수의 역원을 구하며, 상기 오퍼레이션부(130, 230)의 사칙연산을 단순 화시키기 위해 제공된다. The operation unit (130, 230) 160 to generate the public key, encryption key, decryption key of the ECC key conversion unit (120, 230), public key generation / encryption / decryption unit (110, 210) and restore the time coordinate
상기 역원산출부(140, 240)에서 유클리드 알고리즘을 이용하여 정수의 역원을 구하는 단순한 예를 들어 설명하면, 1/2=1(mod 11) 을 계산하기 위해 2의 역원을 구한다. In a simple example of obtaining the inverse of an integer using the Euclidean algorithm in the
즉, 2x=1 (mod 11) 을 만족하는 x=6 (mod 11)이므로 2의 역원은 6이 된다.In other words, since x = 6 (mod 11) satisfying 2x = 1 (mod 11), the inverse of 2 becomes 6.
상기 유클리드 알고리즘을 이용하면 타원곡선상의 사칙연산을 타원곡선상의 덧셈연산으로 전환할 수 있으므로 계산을 단순화시킬 수 있다. By using the Euclidean algorithm, the arithmetic operation on the elliptic curve can be converted into the addition operation on the elliptic curve, thereby simplifying the calculation.
상기 데이터인증부(150, 250)는 암호화된 데이터와 함께 전송된 데이터 인증코드를 산출하고 데이터의 변조 여부를 검사하며, 상기 제어부(160, 260)에 의해 상기 공개키생성/암호화/복호화부(110, 210)와 구분하여 연동되도록 제어되며, 상기 송수신부(170, 270)는 상기 제어부(160, 260)의 제어신호에 따라 인증절차를 처리하는 상대 인증모듈과 서비스 요청신호, 공개키, 암호화된 데이터를 송수신한다. The
검토한 바와 같이, 본 발명에 의한 암호화 방법은 공개키가 생성되는 시간값에 따라 공개키를 갱신하여 암호키/복호키를 생성하고 배수를 공유할 수 있도록 구성하며, 공격자에 의해 공개키의 도청이 있어도 일정 시간 값의 범위를 초과하면 공격을 감지할 수 있도록 하고, 각 파라미터 값, ECC 연산방법 및 프로토콜의 패턴을 알지 못할 경우 공격자는 인증메시지를 알 수 없으므로 정보 보안유지를 강화하는 효과가 있다. As discussed above, the encryption method according to the present invention is configured to update the public key according to the time value at which the public key is generated, to generate an encryption key / decryption key, and to share multiples. Even if there is a certain time value, the attack can be detected. If the user does not know each parameter value, ECC calculation method, and protocol pattern, the attacker cannot know the authentication message. .
또한, 본 발명에 의한 암호화 방법은 일반적으로 사용하는 ECC 암호화 방법에 비해 스칼라 곱 연산을 반으로 줄이면서 보안강도를 동일하게 유지하므로 시스 템 부하를 줄이는데 효과적이다.In addition, the encryption method according to the present invention is effective to reduce the system load because it maintains the same security strength while reducing the scalar product operation in half compared to the commonly used ECC encryption method.
본 발명의 범위는 상기 상세한 설명에 의하여 제한되지 않으며, 후술하는 특허청구범위에 의하여 나타내어지며,특허청구범위의 의미 및 범위는 특허청구범위에 기재된 사항과 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다. The scope of the present invention is not limited by the above detailed description, which is represented by the following claims, and the meaning and scope of the claims are all changes or modifications derived from the matters described in the claims and their equivalent concepts. It should be construed that the form is included in the scope of the present invention.
도 1은 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증방법의 흐름도이다.1 is a flowchart of an ECC authentication method using a public key generation time coordinate according to the present invention.
도 2는 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증방법의 단계별 처리과정을 도시한 것이다.2 illustrates a step-by-step process of the ECC authentication method using a public key generation time coordinate according to the present invention.
도 3a는 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증방법의 공개키 생성결과를 도시한 것이다.3a shows a public key generation result of an ECC authentication method using a public key generation time coordinate according to the present invention.
도 3b는 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증방법의 메시지 암호화 및 복호화 결과를 도시한 것이다. 3b shows a message encryption and decryption result of an ECC authentication method using a public key generation time coordinate according to the present invention.
도 4는 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증장치의 구성도이다. 4 is a block diagram of an ECC authentication apparatus using a public key generation time coordinate according to the present invention.
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080048224A KR101035394B1 (en) | 2008-05-23 | 2008-05-23 | ECC Authentication method using Public Key Generation Time Coordinates |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080048224A KR101035394B1 (en) | 2008-05-23 | 2008-05-23 | ECC Authentication method using Public Key Generation Time Coordinates |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090122029A true KR20090122029A (en) | 2009-11-26 |
KR101035394B1 KR101035394B1 (en) | 2011-05-20 |
Family
ID=41604876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080048224A KR101035394B1 (en) | 2008-05-23 | 2008-05-23 | ECC Authentication method using Public Key Generation Time Coordinates |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101035394B1 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004139125A (en) | 1993-06-18 | 2004-05-13 | Matsushita Electric Ind Co Ltd | Signature by elliptic curve, authentication, and secret communication system |
CN1235446A (en) * | 1998-03-05 | 1999-11-17 | 松下电器产业株式会社 | Elliptical curve converting device and device and system for use thereof |
DE60311507T2 (en) | 2002-10-26 | 2007-11-08 | The Additional Director (Ipr), Defence Research & Development Organisation | METHOD FOR ELLIPTIC CURVE ENCRYPTION |
KR20070003292A (en) * | 2005-07-01 | 2007-01-05 | 주식회사 아이킨 | Remote controlling method in use elliptic curve algorithm |
-
2008
- 2008-05-23 KR KR1020080048224A patent/KR101035394B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR101035394B1 (en) | 2011-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10187207B2 (en) | Re-encryption key generator, re-encryption apparatus, encryption apparatus, decryption apparatus, and storage medium | |
WO2018236908A1 (en) | Secure communications providing forward secrecy | |
US10374797B2 (en) | Public-key encryption system | |
CN101931529B (en) | Data encryption method, data decryption method and nodes | |
US11870891B2 (en) | Certificateless public key encryption using pairings | |
US9166790B2 (en) | Commission information generator for making processes on communication performed by another computer | |
EP1471680A1 (en) | Identifier-Based Encryption method and apparatus | |
KR101516114B1 (en) | Certificate-based proxy re-encryption method and its system | |
US20170272244A1 (en) | Public-key encryption system | |
US11658815B2 (en) | System and method for performing key operations during a multi-party computation process | |
CN110784314A (en) | Certificateless encrypted information processing method | |
Sarwar et al. | Lightweight ECC with Fragile Zero-Watermarking for Internet of Things Security | |
US20190294417A1 (en) | Method and system for deriving deterministic prime number | |
US20050021973A1 (en) | Cryptographic method and apparatus | |
US20220038267A1 (en) | Methods and devices for secured identity-based encryption systems with two trusted centers | |
KR20040009766A (en) | Apparatus and method for transmitting and receiving in encryption system | |
US8484471B2 (en) | Multi-party distributed multiplication device, multi-party distributed multiplication system and method | |
CN101296077A (en) | Identity authentication system based on bus type topological structure | |
KR20030047148A (en) | Method of messenger security based on client/server using RSA | |
KR101035394B1 (en) | ECC Authentication method using Public Key Generation Time Coordinates | |
JP2005176144A (en) | Terminal device, communication system and communication method | |
CN109905232B (en) | Signature decryption method, system, equipment and computer readable storage medium | |
JP3694242B2 (en) | Signed cryptographic communication method and apparatus | |
KR20070003292A (en) | Remote controlling method in use elliptic curve algorithm | |
CN114285580B (en) | Online and offline signcryption method from certificate-free to public key infrastructure |
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: 20140227 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150312 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160502 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |