KR100388059B1 - Data encryption system and its method using asymmetric key encryption algorithm - Google Patents

Data encryption system and its method using asymmetric key encryption algorithm Download PDF

Info

Publication number
KR100388059B1
KR100388059B1 KR10-2000-0080993A KR20000080993A KR100388059B1 KR 100388059 B1 KR100388059 B1 KR 100388059B1 KR 20000080993 A KR20000080993 A KR 20000080993A KR 100388059 B1 KR100388059 B1 KR 100388059B1
Authority
KR
South Korea
Prior art keywords
message
value
bits
equation
pseudo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
KR10-2000-0080993A
Other languages
Korean (ko)
Other versions
KR20020051597A (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-2000-0080993A priority Critical patent/KR100388059B1/en
Publication of KR20020051597A publication Critical patent/KR20020051597A/en
Application granted granted Critical
Publication of KR100388059B1 publication Critical patent/KR100388059B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 비대칭 암호 알고리즘을 이용한 효율적인 데이터 암호화에 관한 것으로, 특히 데이터 기밀성, 데이터 무결성, 디지털 서명 등을 비롯한 정보 보호 서비스의 핵심 요소로서 사용될 수 있다.The present invention relates to efficient data encryption using an asymmetric cryptographic algorithm, and in particular can be used as a key element of information protection services, including data confidentiality, data integrity, digital signature, and the like.

본 발명의 목적은 기존의 널리 알려진 해쉬 함수와 비대칭키 암호 알고리즘을 이용하여 안전하면서 구현이 용이하고 빠른 속도로 대량의 데이터를 암호화/복호화하며, 또한 데이터의 무결성을 함께 제공하는 것이다. 본 발명은 정보 보호 서비스의 핵심요소로서 사용되는 비대칭키 암호 알고리즘과 해쉬 함수를 사용하며, 해쉬 함수를 이용하여 입력 데이터를 스크램블링하는 all-or-noting 변환 부분과 비대칭키 암호 알고리즘을 이용하여 데이터를 암호화하는 부분으로 구성된 것을 특징으로 한다.It is an object of the present invention to encrypt / decrypt a large amount of data in a secure, easy-to-implement, and fast manner by using existing well-known hash functions and asymmetric key cryptographic algorithms, and also provide data integrity together. The present invention uses an asymmetric key cryptography algorithm and a hash function that are used as key elements of information protection services, and uses an all-or-noting transform portion and an asymmetric key cryptographic algorithm to scramble input data using a hash function. It is characterized by consisting of a portion to encrypt.

Description

비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템 및 그 방법 {Data encryption system and its method using asymmetric key encryption algorithm}Data encryption system using asymmetric key encryption algorithm and method thereof {Data encryption system and its method using asymmetric key encryption algorithm}

본 발명은 비대칭키를 이용한 데이터 암호화 및 복호화 방법에 관한 것으로, 특히, 데이터 기밀성, 디지털 서명, 무결성 등을 비롯한 정보 보호 서비스의 핵심 요소로서 사용될 수 있는 비대칭키 암호 알고리즘을 이용한 효율적인 데이터 암호화 시스템 및 그 방법에 관한 것이다.The present invention relates to a data encryption and decryption method using an asymmetric key, and more particularly, to an efficient data encryption system using an asymmetric key cryptographic algorithm that can be used as a key element of information protection services including data confidentiality, digital signature, integrity, and the like. It is about a method.

종래의 데이터 암호화 기법들은 블록 암호(Block Cipher)와 스트림 암호(Stream Cipher)와 같은 대칭키 암호 알고리즘(Symmetric Key Encryption algorithm)을 대부분 사용하고 있으며, 거의 드물게 RSA(Rivest, Shamir, Adleman)와 같은 비대칭키 암호 알고리즘(Asymmetric Key Encryption Algorithm)을 이용하고 있다.Conventional data encryption techniques mostly use symmetric key encryption algorithms such as block ciphers and stream ciphers, and are rarely asymmetric like RSA (Rivest, Shamir, Adleman). Asymmetric Key Encryption Algorithm is used.

정보 보호 기술에서 응용 가능한 데이터 암호화 기법은 암호학적으로 안전하고, 고속으로 동작해야 한다. 데이터 암호화 기법의 안전성 측면에서 고려해야 할 척도로는 충분히 긴 키 길이, 출력의 난수성, 구조적 취약성 유무, 기존의 알려진 공격 기법에 대한 안전성 등을 들 수 있다.Data encryption techniques applicable to information protection technology must be cryptographically secure and operate at high speed. Measures to consider in terms of the security of data encryption techniques include sufficiently long key lengths, randomness of output, presence of structural vulnerabilities, and safety against known known attack techniques.

현재 대부분의 응용에서 데이터 암호화를 위해서는 DES(Data Encryption Standard, 데이터 암호화 표준)와 같은 블록 암호를 사용하거나 RC4(Ron's Code 4)와 같은 스트림 암호를 사용한다. 이와 같은 대칭키 암호 기법을 이용하여 데이터를 암호화하기 위해서는 데이터를 주고 받는 두 당사자들이 항상 비밀키를 안전하게 공유하고 있어야 한다. 비밀키를 공유한 두 당사자를 제외한 다른 사용자들은 비밀키를 알지 못하기 때문에 암호화된 데이터의 내용을 알 수가 없다. 대칭키 암호 기법은 처리 속도가 매우 빠르기 때문에 현재 대부분의 정보 보호 응용에서는 데이터를 암호화하기 위해 대칭키 암호 기법을 사용한다. 하지만, 대칭키 암호 기법을 사용하는 경우에는 항상 키를 안전하게 공유하고 관리해야 하는 문제가 발생한다. 또한, 관리해야 하는 키의 개수가 통신하려는 당사자의 수의 제곱만큼 증가하게 된다.In most applications, data encryption uses block ciphers, such as the Data Encryption Standard (DES), or stream ciphers, such as Ron's Code 4 (RC4). In order to encrypt data using this symmetric key cryptography, the two parties sending and receiving data must always share the secret key securely. Other than the two parties who shared the secret key, the other users do not know the secret key and therefore cannot know the contents of the encrypted data. Since symmetric key cryptography is very fast, most information protection applications use symmetric key cryptography to encrypt data. However, when symmetric key cryptography is used, there is a problem of always sharing and managing keys securely. In addition, the number of keys to be managed is increased by the square of the number of parties to communicate with.

RSA와 같은 비대칭키 암호 기법을 사용하여 데이터를 암호화하는 경우에는 위의 대칭키 암호 기법에서의 키 공유와 키 개수의 증가 문제가 해결된다. 사용자는 항상 두 개의 키, 즉, 공개키(Public Key)와 비밀키(Private Key)의 쌍을 가진다. 공개키는 공개 디렉토리에 공개하고, 비밀키는 다른 사용자들이 알지 못하게 안전하게 유지한다. 사용자 A가 데이터를 암호화하여 사용자 B에게 전달하려고 하는 경우, 사용자 A는 데이터를 사용자 B의 공개키를 사용하여 암호화하여 전송한다. 사용자 B가 암호화된 데이터를 수신하면, 자신의 비밀키를 사용하여 데이터를 복호화하여 볼 수 있다. 다른 사용자들은 사용자의 A의 비밀키를 알지 못하기 때문에 암호화된 데이터의 내용을 알 수가 없다. 하지만, 비대칭키 암호 기법은 대칭키 암호 기법에 비해 처리 속도가 1000 배이상 느리기 때문에 대량의 데이터를 암호화하는 응용에는 거의 사용되지 않는다.In case of encrypting data using an asymmetric key cryptography such as RSA, the problem of key sharing and increase in the number of keys in the symmetric key cryptography is solved. A user always has two pairs of keys, a public key and a private key. Public keys are published in public directories, and private keys are kept secret from other users. When user A wants to encrypt data and deliver it to user B, user A encrypts the data using user B's public key and transmits the data. When user B receives the encrypted data, the user B can decrypt the data using his private key. Other users do not know the private key of user A, and therefore cannot know the contents of the encrypted data. However, asymmetric key cryptography is rarely used in applications that encrypt a large amount of data because the processing speed is 1000 times slower than symmetric key cryptography.

위의 대칭키와 비대칭키 암호 기법의 장단점으로 현재 대부분의 응용에서는 이 두 기법을 결합한 하이브리드(Hybrid) 기법을 사용한다. 먼저, 사용자 A와 사용자 B는 비대칭키 암호 기법을 사용하여 대칭키 암호에 적용할 비밀키(Secret Key)를 공유한다. 즉, 사용자 A가 하나의 비밀키를 생성하여 이를 사용자 B의 공개키를 이용하여 비대칭키 암호 기법에 적용하여 암호화하여 사용자 B에게 전달한다. 사용자 B는 수신한 암호문을 자신의 비밀키로 복호화하여 사용자 A와의 공유 비밀키를 얻게 된다. 이렇게 사용한 비밀키를 공유한 후, 이 키를 대칭키 암호에 적용하여 데이터를 암호화하여 전달한다. 하지만, 하이브리드 기법은 데이터를 송수신하기 전에 항상 공유 비밀키를 교환하는 단계를 거쳐야 한다. 또한, 구현시에는 대칭키 암호 기법과 비대칭키 암호 기법 모두를 구현해야 한다.As a pros and cons of the above symmetric and asymmetric key cryptography, most applications currently use a hybrid scheme that combines these two techniques. First, user A and user B share a secret key to be applied to symmetric key cryptography using asymmetric key cryptography. That is, user A generates one secret key, applies it to asymmetric key cryptography using user B's public key, and encrypts it to user B. User B decrypts the received cipher text with its private key to obtain a shared secret key with user A. After sharing the secret key used, this key is applied to the symmetric key cipher to transmit the data encrypted. However, the hybrid scheme must always exchange shared secret keys before sending or receiving data. In addition, the implementation must implement both symmetric key cryptography and asymmetric key cryptography.

이러한 선행 기술들을 간략하게 살펴 보면 다음과 같은 것들이 있다.A brief look at these prior arts includes:

먼저 대칭키 블록 암호 알고리즘 관련 기술로는, 출원인이 '주식회사 텔리맨'이고, 발명의 명칭이 '파이스텔 네트워크를 이용한 데이터 암호화 방법'(공개번호 : 10-2000-21130)인 선행 기술이 있다.First, as a technology related to the symmetric key block encryption algorithm, the applicant is' Teleman Co., Ltd., and the prior art that the name of the invention is' data encryption method using the Feistel network '(public number: 10-2000-21130).

상기 선행 기술은 데이터의 암호화 방법에 관한 것으로, 공개된 통신 선로를 통한 데이터의 송수신에서 제 3 자의 공격에 강력히 대응하여 비밀성을 유지할 수 있도록 하고, 라운드키의 독립적인 생성으로 적은 메모리를 사용하도록 하며, 데이터의 저장시 기밀성이 안정되게 유지되도록 하기 위하여 파이스텔 구조의 대칭키 블록 암호 알고리즘에 있어서, 암호화를 위한 평문 X와 소정의 연산을 통해 생성한 라운드 키 Kr을 입력값으로 하여 배타적 논리합과 (2n + 1)을 법으로 하는 곱셈 연산, 2n을 법으로 하는 덧셈 연산 및 대치 함수가 소정의 상태로 배열된 라운드 함수 F가 라운드 함수값 Y를 생성하는 것을 특징으로 한다.The prior art relates to a method of encrypting data, which allows strong protection against third-party attacks in the transmission and reception of data over public communication lines, and uses less memory with independent generation of round keys. In order to keep confidentiality stable when storing data, in the symmetric key block encryption algorithm of the Feistel structure, an exclusive logical sum is obtained using the plaintext X for encryption and the round key K r generated through a predetermined operation as input values. And a round function F in which a multiplication operation using (2n + 1) as a law, an addition operation using 2n as a law, and a substitution function are arranged in a predetermined state.

따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 종래의 해쉬 함수와 비대칭키 암호 알고리즘을 사용하여 안전하면서 구현이 용이하고 별도의 공유 비밀키 교환 단계없이 대량의 메시지를 빠른 속도로 암호화하여 데이터 기밀성과 데이터 무결성을 함께 제공하는 암호화 시스템 및 그 방법을 제공하기 위한 것이다.Accordingly, the present invention is to solve the problems of the prior art as described above, the object of the present invention using a conventional hash function and asymmetric key cryptographic algorithm is safe and easy to implement and without a separate shared secret key exchange step Is to provide an encryption system and method for providing both data confidentiality and data integrity by encrypting a message at a high speed.

도 1은 본 발명의 일 실시예에 따른 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템의 개략적인 블록도이고,1 is a schematic block diagram of a data encryption system using an asymmetric key encryption algorithm according to an embodiment of the present invention,

도 2는 도 1에 도시된 All-or-nothing 변환부(105, AONT)에서 일어나는 알고리즘을 나타낸 블록이고,FIG. 2 is a block diagram illustrating an algorithm occurring in the all-or-nothing converter 105 (AONT) shown in FIG.

도 3은 도 1에 도시된 최적 비대칭 암호화부(OAE)에서 일어나는 알고리즘을 나타낸 블록도이고,3 is a block diagram illustrating an algorithm occurring in an optimal asymmetric encryption unit (OAE) shown in FIG. 1,

도 4는 도 3에 도시된 G 함수(303)의 적용 알고리즘을 나타낸 블록도이다.FIG. 4 is a block diagram illustrating an application algorithm of the G function 303 illustrated in FIG. 3.

※ 도면의 주요부분에 대한 부호의 설명 ※※ Explanation of code about main part of drawing ※

101 : s 개의 n 비트 입력 메시지 블록 102 : 랜덤한 n 비트 난수101: s n-bit input message block 102: random n-bit random number

103 : 암호 해쉬 함수 104 : 해쉬 함수의 출력103: password hash function 104: output of the hash function

105 : all-or-nothing 변환부 106 : 의사(Pseudo) 메시지105: all-or-nothing conversion unit 106: pseudo message

107 : 전송자의 공개키107: public key of sender

108 : 두 스트링의 연결(Concatenate)108: concatenate two strings

109 : 비트별 xor 연산 110 : 마지막 의사 메시지 블록109: Bitwise xor operation 110: Last pseudo message block

111 : 최적 비대칭 암호화부(OAE: Optimal Asymmetric Encryption)111: Optimal Asymmetric Encryption (OAE)

112 : 수신자의 공개키 113 : 111의 암호화된 결과112: recipient's public key 113: 111 encrypted result

201 : (i-1) 번째 n 비트 의사 메시지 블록201: (i-1) th n-bit pseudo message block

202 : 104에서 계산된 n 비트 값N-bit value calculated at 202: 104

203 : (i-1) 번째 n 비트 입력 메시지 블록203: (i-1) th n-bit input message block

204 : I 번째 n 비트 입력 메시지 블록204: I th n bit input message block

205 : I 번째 n 비트 의사 메시지 블록205: I th n-bit pseudo message block

301 : (s+1) 번째 n 비트 의사 메시지 블록301: (s + 1) th n-bit pseudo message block

302 : t 비트의 '0'302: '0' of t bits

303 : G 함수 304 : 102에서의 난수303: Random number at G function 304: 102

305 : 비대칭키 암호 알고리즘 306 : 301의 암호화된 결과305: asymmetric key encryption algorithm 306: encrypted result of 301

상기한 목적을 달성하기 위한 본 발명에 따른 암호화 시스템은, 입력 메시지 X를 임의의 개수로 분할한 후, 상기 분할된 X와 n 비트 랜덤 넘버인 N을 해쉬 함수를 이용하여 중간 생성물 K 값을 계산하는 제1 수단; 상기 중간 생성물 K 값으로부터 All-or-nothing 방법을 이용하여 의사 메시지를 계산하고, 전송자의 공개키와 상기 의사 메시지를 이용하여 마지막 의사 메시지 블록인 n비트의 값을 계산하는 제2 수단; 및 상기 제2 수단의 출력인 마지막 의사 메시지 블록인 n비트의 값과, 상기 랜덤 넘버 및 수신자의 공개키를 이용해 비대칭키 암호 알고리즘을 통해 암호화하는 비대칭 암호화 수단을 포함한다.또한, 본 발명에 따른 복호화 시스템은, 암호화된 데이터(C)를 입력받아 비밀키 Rs로 상기 입력받은 암호화된 데이터를 복호화하여 의사 메시지(Y)의 마지막 블록 LB 및 랜덤 넘버 N'를 계산하는 수단; 상기 의사 메시지(Y)를 다수(s개)의 n 비트 블록으로 분할하는 수단; 상기 분할된 의사 메시지, 상기 의사 메시지의 마지막 블록 LB 및 랜덤 넘버 N'를 입력받아, 송신자의 공개키(Kp)를 n 비트로 분할한 후, 배타적 논리합 연산을 수행하여 중간 생성값 K를 계산하는 수단; 및 상기 중간 생성값 K를 입력받아 All-or-nothing 역변환을 수행하여 원래의 메시지(X)로 복구하는 수단을 포함한다.또한, 본 발명에 따른 암호화 방법은, 입력 메시지 X를 임의의 개수로 분할한 후, 상기 분할된 X와 n 비트 랜덤 넘버인 N을 해쉬 함수를 이용하여 중간 생성물 K 값을 계산하는 제1 단계; 상기 제1 단계의 중간 생성물 K 값으로부터 All-or-nothing 방법을 이용하여 의사 메시지를 계산하는 제2 단계; 전송자의 공개키와 상기 제2 단계에서 계산된 의사 메시지를 이용하여 마지막 의사 메시지 블록인 n비트의 값을 계산하는 제3 단계; 및 상기 제3 단계에서 계산된 마지막 의사 메시지 블록인 n비트의 값과, 상기 랜덤 넘버 및 수신자의 공개키를 이용해 비대칭키 암호 알고리즘을 통해 암호화하는 제4 단계를 포함한다.또한, 본 발명에 따른 복호화 방법은, 암호화된 데이터(C)를 입력받아 비밀키 Rs로 상기 입력받은 암호화된 데이터를 복호화하여 의사 메시지(Y)의 마지막 블록 LB 및 랜덤 넘버 N'를 계산하는 제1 단계; 상기 의사 메시지(Y)를 다수(s개)의 n 비트 블록으로 분할하는 제2 단계; 상기 분할된 의사 메시지, 상기 의사 메시지의 마지막 블록 LB 및 랜덤 넘버 N'를 입력받아, 송신자의 공개키(Kp)를 n 비트로 분할한 후, 배타적 논리합 연산을 수행하여 중간 생성값 K를 계산하는 제3 단계; 및 상기 중간 생성값 K를 입력받아 All-or-nothing 역변환을 수행하여 원래의 메시지(X)로 복구하는 제4 단계를 포함한다.또한, 본 발명은 컴퓨터에서, 입력 메시지를 암호화하기 위해, 입력 메시지 X를 임의의 개수로 분할한 후, 상기 분할된 X와 n 비트 랜덤 넘버인 N을 해쉬 함수를 이용하여 중간 생성물 K 값을 계산하는 제1 단계; 상기 제1 단계의 중간 생성물 K 값으로부터 All-or-nothing 방법을 이용하여 의사 메시지를 계산하는 제2 단계;전송자의 공개키와 상기 제2 단계에서 계산된 의사 메시지를 이용하여 마지막 의사 메시지 블록인 n비트의 값을 계산하는 제3 단계; 및 상기 제3 단계에서 계산된 마지막 의사 메시지 블록인 n비트의 값과, 상기 랜덤 넘버 및 수신자의 공개키를 이용해 비대칭키 암호 알고리즘을 통해 암호화하는 제4 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체와,컴퓨터에서 암호화된 데이터를 복호화하기 위해, 암호화된 데이터(C)를 입력받아 비밀키 Rs로 상기 입력받은 암호화된 데이터를 복호화하여 의사 메시지(Y)의 마지막 블록 LB 및 랜덤 넘버 N'를 계산하는 제1 단계; 상기 의사 메시지(Y)를 다수(s개)의 n 비트 블록으로 분할하는 제2 단계; 상기 분할된 의사 메시지, 상기 의사 메시지의 마지막 블록 LB 및 랜덤 넘버 N'를 입력받아, 송신자의 공개키(Kp)를 n 비트로 분할한 후, 배타적 논리합 연산을 수행하여 중간 생성값 K를 계산하는 제3 단계; 및 상기 중간 생성값 K를 입력받아 All-or-nothing 역변환을 수행하여 원래의 메시지(X)로 복구하는 제4 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.The encryption system according to the present invention for achieving the above object, after dividing the input message X into an arbitrary number, and calculates the intermediate product K value of the divided X and N, which is an n-bit random number, by using a hash function First means for making; Second means for calculating a pseudo message from the intermediate product K value by using an all-or-nothing method and calculating a value of n bits as a final pseudo message block using the sender's public key and the pseudo message; And asymmetric encryption means for encrypting through an asymmetric key cryptographic algorithm using a value of n bits, which is the last pseudo message block output from the second means, and the random number and the public key of the receiver. The decryption system comprises: means for receiving the encrypted data (C) and decrypting the received encrypted data with a secret key R s to calculate the last block LB and random number N 'of the pseudo message (Y); Means for dividing the pseudo message (Y) into a plurality (s) of n bit blocks; Receiving the divided pseudo message, the last block LB of the pseudo message, and a random number N ', dividing the sender's public key K p by n bits, and performing an exclusive OR operation to calculate an intermediate value K; Way; And means for receiving the intermediate generated value K and performing an all-or-nothing inverse transformation to recover the original message X. [0024] The encryption method according to the present invention further includes the number of input messages X in any number. After dividing, a first step of calculating an intermediate product K value of the divided X and N, which is an n-bit random number, by using a hash function; A second step of calculating a pseudo message from the intermediate product K value of the first step using an All-or-nothing method; A third step of calculating a value of n bits which is the last pseudo message block by using the sender's public key and the pseudo message calculated in the second step; And a fourth step of encrypting through an asymmetric key cryptographic algorithm using the value of n bits, which is the last pseudo message block calculated in the third step, and the random number and the public key of the receiver. The decryption method may include: a first step of receiving encrypted data C and decrypting the received encrypted data with a secret key R s to calculate a last block LB and a random number N 'of a pseudo message (Y); Dividing the pseudo message (Y) into a plurality (s) of n bit blocks; Receiving the divided pseudo message, the last block LB of the pseudo message, and a random number N ', dividing the sender's public key K p by n bits, and performing an exclusive OR operation to calculate an intermediate value K; Third step; And a fourth step of receiving the intermediate generated value K and performing an all-or-nothing inverse transformation to restore the original message X. In addition, the present invention provides a computer with an input for encrypting an input message. Splitting the message X into any number and then calculating the intermediate product K value of the divided X and n, which is an n-bit random number, using a hash function; A second step of calculating a pseudo message from the intermediate product K value of the first step by using an all-or-nothing method; and a final pseudo message block using the sender's public key and the pseudo message calculated in the second step. calculating a value of n bits; And a program for executing a fourth step of encrypting through an asymmetric key cryptographic algorithm using the value of n bits, the last pseudo message block calculated in the third step, and the random number and the public key of the receiver. In order to decrypt the encrypted data in the computer and the computer, the encrypted data C is input, the secret key R s is used to decrypt the inputted encrypted data with the last block LB and random of the pseudo message Y. Calculating a number N '; Dividing the pseudo message (Y) into a plurality (s) of n bit blocks; Receiving the divided pseudo message, the last block LB of the pseudo message, and a random number N ', dividing the sender's public key K p by n bits, and performing an exclusive OR operation to calculate an intermediate value K; Third step; And a computer-readable recording medium having recorded thereon a program for executing the fourth step of receiving the intermediate generated value K and performing an all-or-nothing inverse transformation to recover the original message X.

이하 첨부 도면을 참조하여 본 발명의 일 실시예에 따른 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템 및 그 방법을 상세히 설명한다.Hereinafter, a data encryption system using asymmetric key cryptographic algorithm and its method will be described in detail with reference to the accompanying drawings.

본 발명에서는 세션키에 대한 키 교환 과정없이 비대칭키 암호 알고리즘을 이용하여 대량의 데이터를 암호화하여 전달하는 기법을 제안한다. 제안된 기법은 해쉬 함수(Hash Function)를 사용한 all-or-nothing 변환을 통해 입력 메시지를 의사 메시지로 변환한 후, 변환된 의사 메시지의 일부분만을 비대칭키 암호 알고리즘을 사용하여 암호화한다. 제안된 기법은 해쉬 함수와 비대칭키 암호 알고리즘만을 이용하고 적은 오버헤드를 가지고 메시지 기밀성(Confidentiality)과 메시지 무결성(Integrity)을 제공할 수 있다. 구체적인 알고리즘의 동작은 다음과 같다.The present invention proposes a method of encrypting and transmitting a large amount of data using an asymmetric key cryptographic algorithm without a key exchange process for a session key. The proposed technique converts the input message into a pseudo message by using an all-or-nothing transformation using a hash function, and then encrypts only a part of the converted pseudo message using an asymmetric key encryption algorithm. The proposed scheme uses only hash function and asymmetric key encryption algorithm and can provide message confidentiality and message integrity with little overhead. The operation of the specific algorithm is as follows.

도 1은 본 발명의 일 실시예에 따른 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템의 개략적인 블록도이고, 도 2는 도 1에 도시된 All-or-nothing 변환부(105, AONT)에서 일어나는 알고리즘을 나타낸 블록이며, 도 3은 도 1에 도시된 최적 비대칭 암호화부(OAE)부에서 일어나는 알고리즘을 나타낸 블록도이고, 도 4는 도 3에 도시된 G 함수(303)의 적용 알고리즘을 나타낸 블록도로서, 이를 상세히 설명하면 다음과 같다.1 is a schematic block diagram of a data encryption system using an asymmetric key cryptographic algorithm according to an embodiment of the present invention, and FIG. 2 is an algorithm occurring in the all-or-nothing converter 105 (AONT) shown in FIG. 3 is a block diagram showing an algorithm occurring in an optimal asymmetric encryption unit (OAE) shown in FIG. 1, and FIG. 4 is a block diagram showing an application algorithm of the G function 303 shown in FIG. As it will be described in detail as follows.

먼저, 전송측의 암호화 동작을 살펴 보면, 입력 메시지 X를 s개의 n비트 블록(X1, X2, ... Xs)으로 분할한 후, X1Λs(101)와 n-bit nonce(랜덤 넘버 : Random Number)인 N(102)을 해쉬 함수 hIV(103, 이는 미리 정하여져 있는 해쉬 함수임.)에 대입하여 아래의 [수학식 1]과 같은 중간 생성물 K 값(104)을 구한다. 한편, n은 해쉬 함수의 출력 비트수이고, (1 Λ s)는 1부터 s까지의 정수를 의미한다.First, look at the encryption operation of the transmission side, after dividing the input message X into s n-bit blocks (X 1 , X 2 , ... X s ), X 1Λs (101) and n-bit nonce (random) Numerical value N (102) is substituted into the hash function h IV (103, which is a predetermined hash function) to obtain the intermediate product K value 104 as shown in Equation 1 below. On the other hand, n is the number of output bits of the hash function, (1 Λ s) means an integer from 1 to s.

이어서, all-or-nothing 변환부(105)를 통하여 입력된 중간 생성물 K 값으로부터 의사 메시지 Y1Λs(106)를 아래의 [수학식 2]에 의하여 계산한다. 이는 도 2에 도식화되어 있다.Subsequently, the pseudo message Y 1Λs 106 is calculated from Equation 2 below from the intermediate product K value input through the all-or-nothing conversion unit 105. This is illustrated in FIG. 2.

i = 1, 2, ..., si = 1, 2, ..., s

이어서, 전송자의 공개키인 Kp(107)와 의사 메시지 Y1Λs(106)를 입력받아 아래의 [수학식 3]에 의하여 마지막 의사 메지지 블록인 n 비트의 Ys+1(110)을 계산한다. 예를 들어 1024 비트 공개키를 사용하는 경우에는 n 비트로 분할한 후, 이들을 배타적 논리합(xor) 연산 과정을 수행한다.Subsequently, K p (107), which is the sender's public key, and the pseudo message Y 1Λs (106) are input to calculate Y ns + 1 (110) of n bits, which is the last pseudo message block, using Equation 3 below. do. For example, in the case of using a 1024-bit public key, after dividing into n bits, they perform an exclusive OR operation.

, ,

이어서, 상기 Ys+1(110), 랜덤 넘버 N(102) 및 수신자의 공개키 Rp를 이용하여 최적 비대칭 암호화부(OAE: Optimal Asymmetric Encryption)(111)에서 아래의 [수학식 4]와 같이 최종으로 암호화된 C(113)를 생성한다. 이는 도 3에 도식화되어 있다.Subsequently, in the optimal asymmetric encryption unit (OAE) 111 using the Y s + 1 110, the random number N 102, and the public key R p of the receiver, Equation 4 below is used. Finally, C 113 is encrypted. This is illustrated in FIG. 3.

여기서, AE는 RSA와 같은 비대칭키 암호 알고리즘이고, t는 (l - 2n)이며, l은 공개키의 비트 길이이다.Where AE is an asymmetric key cryptographic algorithm such as RSA, t is (l-2n), and l is the bit length of the public key.

한편, 함수 G는 n 비트를 (l - n) 비트로 사상시키는 일방향 함수(One-way Function)로, 도 4에 도식화되어 있듯이, 아래의 [수학식 5]처럼 구성된다.On the other hand, the function G is a one-way function that maps n bits into (l-n) bits. As illustrated in FIG. 4, the function G is configured as shown in Equation 5 below.

여기서 t1이고, h의 적용 회수는 (l - n)/n 번 적용한다.Where t 1 is And the number of applications of h is applied (l-n) / n times.

이어서, ()를 수신자에게 전송함으로써, 암호화 동작은 종료하게 된다.next, ( ) Is sent to the receiver, thereby ending the encryption operation.

한편, 수신자가 상기 (Y || C)를 수신하면, 다음의 절차에 의해 원래의 메시지로 복호화할 수 있다.On the other hand, when the receiver receives the (Y || C), it can be decrypted to the original message by the following procedure.

먼저, 수신자가 (Y || C)을 수신하면, 아래의 [수학식 6]에 의하여 자신의 비밀키 Rs로 C를 복호화함으로써, 의사 메시지의 마지막 블록 LB와 nonce N'을 얻는다.First, when the receiver receives (Y || C), the final block LB and nonce N 'of the pseudo message are obtained by decrypting C with its secret key R s according to Equation 6 below.

b ≠ 0t이면, 거절(reject)한다.If b ≠ 0 t , reject.

여기서, P는 상기 [수학식 4]에서을 의미한다. 또한, Q는 상기 [수학식 4]에서을 의미하고, b는 0t을 의미한다.Where P is in Equation 4 Means. In addition, Q is represented by Equation 4 B means 0 t .

이어서, 메시지 Y를 s개의 n 비트 블록으로 분할한(Y1, Y2, ... Ys) 후, 중간 생성물 K 값을 아래의 [수학식 7]에 의하여 복원한다.Then, after dividing the message Y into s n-bit blocks (Y 1 , Y 2 ,... Y s ), the intermediate product K value is restored by Equation 7 below.

, ,

이어서, 원래 메시지 X = (X1, X2, ... Xs)를 아래의 [수학식 8]에 의하여 복구한다.Then, the original message X = (X 1 , X 2 , ... X s ) is recovered by Equation 8 below.

, ,

이어서, 복구된 원래 메시지 X가 정확한지를 아래의 [수학식 9]에 의하여 확인함으로써, 복호화 과정이 종료된다.Subsequently, by confirming whether the recovered original message X is correct by Equation 9 below, the decoding process is terminated.

인지 확인. Check if it is.

제안된 발명은 기존의 잘 알려진 해쉬 함수와 RSA와 같은 비대칭키 암호 알고리즘을 사용하여 구성된다. 입력 메시지는 먼저 해쉬 함수를 사용한 상기 all-or-nothing 변환부를 통해 의사 메시지로 변환되고, 변환된 의사 메시지 중에서 마지막 한 블록만을 비대칭키 암호 알고리즘을 사용하여 암호화한다. 이때, all-or-nothing 변환 자체는 비밀키 요소를 가지지 않는 공개된 변환이므로 송수신자 사이에 비밀 세션키 교환 과정이 필요없게 된다.The proposed invention is constructed using the well-known hash function and asymmetric key cryptographic algorithm such as RSA. The input message is first converted into a pseudo message through the all-or-nothing conversion unit using a hash function, and only the last one block of the converted pseudo message is encrypted using an asymmetric key encryption algorithm. At this time, since the all-or-nothing transformation itself is a public transformation having no secret key element, there is no need for a secret session key exchange process between the sender and receiver.

제안된 기법의 안전성을 고려해보면, 공격자는 원래의 평문을 알기 위해서는 K를 알아야 한다. 이를 위해 먼저 공격자가 전달되는 메시지 (Y``||C``)에서 C의 복호화를 시도한다. 이 경우, 공격자는 수신자의 비밀키를 알지 못하기 때문에 C를 복호화할 수 없다. C를 복호화하지 못하면, Ys+1을 알지 못하게 되고, 결국 K를 알지 못한다. 그러므로, 이 공격에 대해 제안된 기법은 사용된 비대칭키 암호 알고리즘의 안전성에 의존한다.Considering the safety of the proposed technique, the attacker must know K to know the original plaintext. To do this, the attacker first attempts to decrypt C in the message (Y`` || C ''). In this case, the attacker can't decrypt C because he doesn't know the recipient's private key. If you don't decode C, you don't know Y s + 1 , and eventually you don't know K. Therefore, the proposed scheme for this attack depends on the security of the asymmetric key cryptographic algorithm used.

K를 알지 못하는 공격자가 C를 복호화하지 않고 평문을 알기 위해서는 아래의 [수학식 10]을 계산해야 한다.To know the plaintext without decrypting C, an attacker who doesn't know K must compute Equation 10 below.

상기 [수학식 10]을 풀기 위해서는 공격자는값을 추측하거나 K 값을 추측해야 한다. 이 경우, K는 평문의 해쉬값이고, 원 평문을 알지 못하기 때문에, 공격자는 단지 K를 추측할 수 밖에 없다. 의사 난수 성질을 만족하는 해쉬 함수를 사용한다면, 공격이 성공할 확률은 2-n이다. 160 비트 출력을 가지는 해쉬 함수를 사용한다면, 공격이 성공할 확률은 2-160으로 충분한 안전성을 제공한다.In order to solve Equation 10, the attacker Guess the value or guess the K value. In this case, since K is the hash value of the plain text and the original plain text is not known, the attacker can only guess K. If you use a hash function that satisfies the pseudorandom number property, the probability of a successful attack is 2 -n . If you use a hash function with a 160-bit output, the probability of a successful attack is 2 -160 , which provides sufficient security.

또한, K를 계산하는 과정에서 nonce N이 사용되고, 공개키 암호화의 적용 부분인연산이 Bellare 등에 의해 제안된 OAE(Optimal Asymmetric Encryption)의 형태이다.In addition, nonce N is used to calculate K, which is an application of public key cryptography. The operation is a form of Optimal Asymmetric Encryption (OAE) proposed by Bellare et al.

상기 OAE 기법은 아래의 [수학식 11]과 같다.The OAE technique is shown in Equation 11 below.

여기서, f는 k 비트를 k 비트로 사상시키는 트랩 도어 치환(예, RSA)이고, 메시지 x의 길이 n은 (k - k0- k1) 비트이며, G는 k0비트를 (n + k) 비트로 사상시키는 일방향 함수이고, H는 (n + k1) 비트를 k0비트로 사상시키며, r은 k0비트 난수이다.Where f is a trap door replacement (e.g., RSA) that maps k bits to k bits, length n of message x is (k-k 0 -k 1 ) bits, and G is k 0 bits (n + k) Is a one-way function that maps to bits, H maps (n + k 1 ) bits to k 0 bits, and r is a k 0 bit random number.

상기 OAE는 Semantic Security를 만족하고, Non - Malleability와 Chosen - Ciphertext Security를 함축한다. 따라서, 제안된 기법은 OAE 기법의 안전성 분석에 기반하여 Semantic Security, Chosen - Ciphertext Security, Non - Malleability를 함축한다.The OAE satisfies Semantic Security and implies Non-Malleability and Chosen-Ciphertext Security. Therefore, the proposed technique implies Semantic Security, Chosen-Ciphertext Security, and Non-Malleability based on the safety analysis of OAE technique.

일반적으로 시큐리티 메커니즘의 안전성을 높이기 위해서는 빈번한 키 변경이 요구된다. 즉, 같은 키를 여러 번 반복해서 사용하지 않고 세션마다(또는 메시지마다) 비밀키를 새롭게 설정함으로써 안전성을 높이게 된다. 이런 점을 고려해보면, 제안된 기법은 평문의 해쉬값이 비밀키로 작용하기 때문에 키는 메시지마다 한 번만 사용되게 된다. 따라서, 공격자는 새로운 메시지가 전달될 때마다 K를 추측하는 작업을 반복해야 한다. 이것은 송수신측이 각 메시지를 교환할 때마다 사용할 비밀키를 교환하는 것과 비교하면 상당한 통신 오버헤드를 절약하게 된다.In general, frequent key changes are required to increase the security of the security mechanism. In other words, by setting a new secret key for each session (or for each message) without using the same key over and over again, safety is increased. Considering this, the proposed scheme uses a hash key of plaintext as a secret key, so the key is used only once per message. Therefore, the attacker must repeat the task of guessing K every time a new message is delivered. This saves considerable communication overhead compared to exchanging a secret key to be used by the sender and receiver for each message exchange.

또한, 보통의 대칭키 암호 알고리즘이 메시지의 무결성을 제공하지 않지만 제안된 기법은 수신된 메시지에 대한 무결성을 검사한다.Also, although the normal symmetric key cryptographic algorithm does not provide the integrity of the message, the proposed scheme checks the integrity of the received message.

제안된 기법을 펜티엄(Pentium) III 750MHz, 256M RAM, Visual C++ 6.0 환경에서 시뮬레이션한 결과, 1024 비트 RSA와 SHA-1(Secure Hash Algorithm -1)을 사용한 제안된 기법은 약 82.38Mbits/sec의 성능을 보인다. RC5 블록 암호 알고리즘을 이용한 메시지 암호화의 경우에는 약 87.15Mbits/sec의 성능을 보이고, RSA 공개키 암호 알고리즘를 이용한 암호화의 경우에는 약 0.396Mbits/sec의 성능을 보인다. 이와 같은 결과는 스크램블 함수로 사용된 해쉬 함수의 특징 중의 하나가 빠른 성능을 가진다는 것을 고려하면, 제안된 기법이 성능 면에서 기존의 기법들과 비교할 때 이점을 가지는 것을 알 수 있다. 더욱이 블록 암호 알고리즘을 이용한 경우에는 추가적으로 비대칭키 암호 알고리즘을 이용한 세션키 교환 절차가 필요하고, 안전성을 높이기 위해 빈번한 세션키 갱신을 수행하는 경우에는 이를 처리하기 위한 성능 저하가 추가적으로 발생한다는 것을 고려하면, 제안된 기법이 성능 관점에서 장점을 가짐을 알 수 있다.The proposed method is simulated in Pentium III 750MHz, 256M RAM, Visual C ++ 6.0 environment. Seems. In the case of message encryption using RC5 block encryption algorithm, the performance is about 87.15Mbits / sec, and in case of encryption using RSA public key encryption algorithm, the performance is about 0.396Mbits / sec. This result, considering that one of the characteristics of the hash function used as a scramble function has a fast performance, it can be seen that the proposed method has an advantage compared to the existing methods in terms of performance. Furthermore, considering that a block cipher algorithm requires an additional session key exchange procedure using an asymmetric key cipher algorithm, and in case of frequent session key update to increase safety, there is an additional performance degradation to deal with this. It can be seen that the proposed scheme has advantages in terms of performance.

위에서 양호한 실시예에 근거하여 이 발명을 설명하였지만, 이러한 실시예는 이 발명을 제한하려는 것이 아니라 예시하려는 것이다. 이 발명이 속하는 분야의 숙련자에게는 이 발명의 기술 사상을 벗어남이 없이 위 실시예에 대한 다양한 변화나 변경 또는 조절이 가능함이 자명할 것이다. 그러므로, 이 발명의 보호 범위는 첨부된 청구 범위에 의해서만 한정될 것이며, 위와 같은 변화예나 변경예 또는 조절예를 모두 포함하는 것으로 해석되어야 할 것이다.While the invention has been described above based on the preferred embodiments thereof, these embodiments are intended to illustrate rather than limit the invention. It will be apparent to those skilled in the art that various changes, modifications, or adjustments to the above embodiments can be made without departing from the spirit of the invention. Therefore, the protection scope of the present invention will be limited only by the appended claims, and should be construed as including all such changes, modifications or adjustments.

이상과 같이 본 발명에 의하면, 기존의 제안되어있는 해쉬 함수와 비대칭키 암호 알고리즘을 사용하여 안전하면서 구현이 용이하고 별도의 공유 비밀키 교환 단계없이 대량의 메시지를 빠른 속도로 암호화하여 메시지의 기밀성과 무결성을 함께 제공하는 효과가 있다.As described above, according to the present invention, it is safe and easy to implement using the existing proposed hash function and asymmetric key encryption algorithm, and encrypts a large amount of messages at high speed without a separate shared secret key exchange step, thereby ensuring the confidentiality of the message. This has the effect of providing integrity together.

또한, 본 발명은 비대칭키 암호 기법을 사용한 대량의 메시지 암호화에 효율적으로 적용할 수 있고, 계산 능력이 떨어지는 스마트 카드를 이용한 암호화와 디지털 서명 등에 효율적으로 이용될 수 있다.In addition, the present invention can be efficiently applied to a large amount of message encryption using asymmetric key cryptography, and can be efficiently used for encryption and digital signature using smart cards with low computational power.

Claims (26)

삭제delete 입력 메시지 X를 임의의 개수로 분할한 후, 상기 분할된 X와 n 비트 랜덤 넘버인 N을 해쉬 함수를 이용하여 중간 생성물 K 값을 계산하는 제1 수단;First means for dividing an input message X into any number and then calculating an intermediate product K value of the divided X and n, which is an n-bit random number, using a hash function; 상기 중간 생성물 K 값으로부터 All-or-nothing 방법을 이용하여 의사 메시지를 계산하고, 전송자의 공개키와 상기 의사 메시지를 이용하여 마지막 의사 메시지 블록인 n비트의 값을 계산하는 제2 수단; 및Second means for calculating a pseudo message from the intermediate product K value by using an all-or-nothing method and calculating a value of n bits as a final pseudo message block using the sender's public key and the pseudo message; And 상기 제2 수단의 출력인 마지막 의사 메시지 블록인 n비트의 값과, 상기 랜덤 넘버 및 수신자의 공개키를 이용해 비대칭키 암호 알고리즘을 통해 암호화하는 비대칭 암호화 수단을 포함하는 것을 특징으로 하는 암호화 시스템.And asymmetric encryption means for encrypting by means of an asymmetric key cryptographic algorithm using a value of n bits, the last pseudo-message block that is the output of the second means, and the random number and the public key of the receiver. 제 2 항에 있어서,The method of claim 2, 상기 중간 생성물 K 값을 계산하는 제1 수단은,First means for calculating the intermediate product K value, 입력 메시지 X를 s개의 n비트 블록(X1, X2, ... Xs)으로 분할한 후, 상기 분할된 X1Λs와 n 비트 랜덤 넘버인 N을 해쉬 함수 hIV에 대입하여 아래의 [식 1]과 같은 중간 생성물 K 값을 구하는 것을 특징으로 하는 암호화 시스템.After dividing the input message X into s n-bit blocks (X 1 , X 2 , ... X s ), the divided X 1Λs and n, which is a random number N, are substituted into the hash function h IV . An encryption system characterized by obtaining an intermediate product K value such as [Equation 1]. [식 1][Equation 1] 여기서, n은 해쉬 함수의 출력 비트수이고, (1 Λ s)는 1부터 s까지의 정수를 의미한다.Here, n is the number of output bits of the hash function, (1 Λ s) means an integer from 1 to s. 제 2 항 또는 제 3 항에 있어서,The method of claim 2 or 3, 상기 제2 수단은,The second means, 상기 중간 생성물 K 값으로부터 의사 메시지 Y1Λs를 아래의 [식 2]에 의하여 계산하고, 이후 전송자의 공개키 Kp와 상기 의사 메시지를 이용해 아래의 [식 3]에 의하여 마지막 의사 메시지 블록인 n 비트의 YS+1를 계산하는 것을 특징으로 하는 암호화 시스템.From the intermediate product K value, pseudo message Y 1Λs is calculated by Equation 2 below, and then n bits which are the last pseudo message block by Equation 3 below using the sender's public key K p and the pseudo message. The encryption system, characterized in that to calculate the Y S +1 . [식 2][Equation 2] i = 1, 2, ..., si = 1, 2, ..., s [식 3][Equation 3] , , 삭제delete 삭제delete 제 4 항에 있어서,The method of claim 4, wherein 상기 비대칭 암호화 수단은,The asymmetric encryption means, 상기 마지막 의사 메시지 블록인 n비트의 Ys+1, 랜덤 넘버 N 및 수신자의 공개키 Rp를 이용하여 아래의 [식 4]를 통해 최종으로 암호화된 C를 생성하는 것을 특징으로 하는 암호화 시스템.And a final encrypted C is generated by using Equation 4 below using the last pseudo message block, n bits of Y s + 1 , a random number N, and the recipient's public key R p . [식 4][Equation 4] 여기서, AE는 RSA와 같은 비대칭키 암호 알고리즘이고, t는 (l - 2n)이며, l은 공개키의 비트 길이이고, 함수 G는 n 비트를 (l - n) 비트로 사상시키는 일방향 함수(One-way Function)이다.Where AE is an asymmetric key cryptographic algorithm such as RSA, t is (l-2n), l is the bit length of the public key, and function G is a one-way function that maps n bits to (l-n) bits. way Function). 삭제delete 암호화된 데이터(C)를 입력받아 비밀키 Rs로 상기 입력받은 암호화된 데이터를 복호화하여 의사 메시지(Y)의 마지막 블록 LB 및 랜덤 넘버 N'를 계산하는 수단;Means for receiving an encrypted data (C) and decrypting the received encrypted data with a secret key R s to calculate a last block LB and a random number N 'of a pseudo message (Y); 상기 의사 메시지(Y)를 다수(s개)의 n 비트 블록으로 분할하는 수단;Means for dividing the pseudo message (Y) into a plurality (s) of n bit blocks; 상기 분할된 의사 메시지, 상기 의사 메시지의 마지막 블록 LB 및 랜덤 넘버 N'를 입력받아, 송신자의 공개키(Kp)를 n 비트로 분할한 후, 배타적 논리합 연산을 수행하여 중간 생성값 K를 계산하는 수단; 및Receiving the divided pseudo message, the last block LB of the pseudo message, and a random number N ', dividing the sender's public key K p by n bits, and performing an exclusive OR operation to calculate an intermediate value K; Way; And 상기 중간 생성값 K를 입력받아 All-or-nothing 역변환을 수행하여 원래의 메시지(X)로 복구하는 수단;Means for receiving the intermediate value K and performing an all-or-nothing inverse transformation to recover the original message (X); 을 포함하는 것을 특징으로 하는 복호화 시스템.Decryption system comprising a. 제 9 항에 있어서,The method of claim 9, 상기 의사 메시지(Y)의 마지막 블록 LB 및 랜덤 넘버 N'를 계산하는 수단은,Means for calculating the last block LB and random number N 'of the pseudo message (Y), 아래의 [식 6]에 의하여 각 값을 계산하는 것을 특징으로 하는 복호화 시스템.Decoding system, characterized in that for calculating each value according to the following [Equation 6]. [식 6][Equation 6] b ≠ 0t이면, 거절하고, 여기서, P는을 의미하고, G 함수는 n 비트를 (l - n) 비트로 사상시키는 일방향 함수(One-way Function)이며, h는 미리 정하여진 해쉬 함수이고, AE는 RSA와 같은 비대칭키 암호 알고리즘이며, Q는을 의미하며, b는 0t을 의미한다.If b ≠ 0 t , we reject, where P is Where G is a one-way function that maps n bits into (l-n) bits, h is a predetermined hash function, AE is an asymmetric key cryptographic algorithm such as RSA, and Q is B means 0 t . 제 9 항에 있어서,The method of claim 9, 상기 중간 생성값 K를 계산하는 수단은,The means for calculating the intermediate generation value K, 아래의 [식 7]에 의하여 상기 중간 생성값을 계산되는 것을 특징으로 하는 복호화 시스템.The intermediate system calculates the intermediate value according to Equation 7 below. [식 7][Equation 7] , , 제 9 항에 있어서,The method of claim 9, 상기 원래의 메시지(X)로 복구하는 수단은,Means for recovering the original message (X), 아래의 [식 8]에 의하여 상기 원래의 메시지를 계산되는 것을 특징으로 하는 복호화 시스템.Decoding system, characterized in that to calculate the original message by the following equation (8). [식 8][Equation 8] i = 1, 2, ..., si = 1, 2, ..., s 삭제delete 입력 메시지 X를 임의의 개수로 분할한 후, 상기 분할된 X와 n 비트 랜덤 넘버인 N을 해쉬 함수를 이용하여 중간 생성물 K 값을 계산하는 제1 단계;Dividing an input message X into an arbitrary number and calculating an intermediate product K value of the divided X and n, which is an n-bit random number, by using a hash function; 상기 제1 단계의 중간 생성물 K 값으로부터 All-or-nothing 방법을 이용하여 의사 메시지를 계산하는 제2 단계;A second step of calculating a pseudo message from the intermediate product K value of the first step using an All-or-nothing method; 전송자의 공개키와 상기 제2 단계에서 계산된 의사 메시지를 이용하여 마지막 의사 메시지 블록인 n비트의 값을 계산하는 제3 단계; 및A third step of calculating a value of n bits which is the last pseudo message block by using the sender's public key and the pseudo message calculated in the second step; And 상기 제3 단계에서 계산된 마지막 의사 메시지 블록인 n비트의 값과, 상기 랜덤 넘버 및 수신자의 공개키를 이용해 비대칭키 암호 알고리즘을 통해 암호화하는 제4 단계를 포함하는 것을 특징으로 하는 암호화 방법.And a fourth step of encrypting by using an asymmetric key cryptographic algorithm using a value of n bits, which is the last pseudo message block calculated in the third step, and the random number and the recipient's public key. 제 14 항에 있어서,The method of claim 14, 상기 제1 단계는,The first step, 입력 메시지 X를 s개의 n비트 블록(X1, X2, ... Xs)으로 분할한 후, 상기 분할된 X1Λs와 n 비트 랜덤 넘버 N을 해쉬 함수 hIV에 대입하여 아래의 [식 9]에 의하여 중간 생성물 K 값을 계산하는 것을 특징으로 하는 암호화 방법.After dividing the input message X into s n-bit blocks (X 1 , X 2 , ... X s ), the divided X 1Λs and n-bit random number N are substituted into the hash function h IV . 9] to calculate the intermediate product K value. [식 9][Equation 9] 여기서, n은 해쉬 함수의 출력 비트수이고, (1 Λ s)는 1부터 s까지의 정수를 의미한다.Here, n is the number of output bits of the hash function, (1 Λ s) means an integer from 1 to s. 제 14 항 또는 제 15 항에 있어서,The method according to claim 14 or 15, 상기 제2 단계는,The second step, 상기 중간 생성물 K 값으로부터 의사 메시지 Y1Λs를 아래의 [식 10]에 의하여 계산하는 것을 특징으로 하는 암호화 방법.And a pseudo message Y 1Λs is calculated from Equation 10 below from the intermediate K value. [식 10][Equation 10] , , 삭제delete 제 16 항에 있어서,The method of claim 16, 상기 제3 단계는,The third step, 전송자의 공개키인 Kp와 상기 의사 메시지 Y1Λs를 입력받아 아래의 [식 11]에 의하여 마지막 의사 메지지 블록인 n 비트의 Ys+1을 계산하는 것을 특징으로 하는 암호화 방법.The encryption method characterized in that it receives the input public key K p and the pseudo message Y 1 Λs and calculates n s Y s + 1 of the last pseudo message block according to Equation 11 below. [식 11][Equation 11] , , 제 18 항에 있어서,The method of claim 18, 상기 제4 단계는,The fourth step, 상기 마지막 의사 메시지 블록인 n비트의 Ys+1, 랜덤 넘버 N 및 수신자의 공개키 Rp를 이용하여 아래의 [식 12]에 의하여 최종으로 암호화된 C를 생성하는 것을 특징으로 하는 암호화 방법.And a final encrypted C is generated by the following [Equation 12] by using the last pseudo message block, n bits of Y s + 1 , a random number N, and the recipient's public key R p . [식 12][Equation 12] 여기서, AE는 RSA와 같은 비대칭키 암호 알고리즘이고, t는 (l - 2n)이며, l은 공개키의 비트 길이이고, 함수 G는 n 비트를 (l - n) 비트로 사상시키는 일방향 함수(One-way Function)이다.Where AE is an asymmetric key cryptographic algorithm such as RSA, t is (l-2n), l is the bit length of the public key, and function G is a one-way function that maps n bits to (l-n) bits. way Function). 삭제delete 암호화된 데이터(C)를 입력받아 비밀키 Rs로 상기 입력받은 암호화된 데이터를 복호화하여 의사 메시지(Y)의 마지막 블록 LB 및 랜덤 넘버 N'를 계산하는 제1 단계;A first step of receiving encrypted data (C) and decrypting the received encrypted data with a secret key R s to calculate a last block LB and a random number N 'of a pseudo message (Y); 상기 의사 메시지(Y)를 다수(s개)의 n 비트 블록으로 분할하는 제2 단계;Dividing the pseudo message (Y) into a plurality (s) of n bit blocks; 상기 분할된 의사 메시지, 상기 의사 메시지의 마지막 블록 LB 및 랜덤 넘버 N'를 입력받아, 송신자의 공개키(Kp)를 n 비트로 분할한 후, 배타적 논리합 연산을 수행하여 중간 생성값 K를 계산하는 제3 단계; 및Receiving the divided pseudo message, the last block LB of the pseudo message, and a random number N ', dividing the sender's public key K p by n bits, and performing an exclusive OR operation to calculate an intermediate value K; Third step; And 상기 중간 생성값 K를 입력받아 All-or-nothing 역변환을 수행하여 원래의 메시지(X)로 복구하는 제4 단계를 포함하는 것을 특징으로 하는 복호화 방법.And a fourth step of receiving the intermediate generation value K and performing an all-or-nothing inverse transformation to recover the original message (X). 제 21 항에 있어서,The method of claim 21, 상기 제1 단계에서, 의사 메시지(Y)의 마지막 블록 LB 및 랜덤 넘버 N'는 아래의 [식 14]에 의하여 계산되는 것을 특징으로 하는 복호화 방법.In the first step, the last block LB and the random number N 'of the pseudo message (Y) is calculated by the following equation (14). [식 14][Equation 14] b ≠ 0t이면, 거절하고, 여기서, P는을 의미하고, G 함수는 n 비트를 (l - n) 비트로 사상시키는 일방향 함수(One-way Function)이며, h는 미리 정하여진 해쉬 함수이고, AE는 RSA와 같은 비대칭키 암호 알고리즘이며, Q는을 의미하며, b는 0t을 의미한다.If b ≠ 0 t , we reject, where P is Where G is a one-way function that maps n bits into (l-n) bits, h is a predetermined hash function, AE is an asymmetric key cryptographic algorithm such as RSA, and Q is B means 0 t . 삭제delete 삭제delete 컴퓨터에서, 입력 메시지를 암호화하기 위해,On the computer, to encrypt the input message: 입력 메시지 X를 임의의 개수로 분할한 후, 상기 분할된 X와 n 비트 랜덤 넘버인 N을 해쉬 함수를 이용하여 중간 생성물 K 값을 계산하는 제1 단계;Dividing an input message X into an arbitrary number and calculating an intermediate product K value of the divided X and n, which is an n-bit random number, by using a hash function; 상기 제1 단계의 중간 생성물 K 값으로부터 All-or-nothing 방법을 이용하여 의사 메시지를 계산하는 제2 단계;A second step of calculating a pseudo message from the intermediate product K value of the first step using an All-or-nothing method; 전송자의 공개키와 상기 제2 단계에서 계산된 의사 메시지를 이용하여 마지막 의사 메시지 블록인 n비트의 값을 계산하는 제3 단계; 및A third step of calculating a value of n bits which is the last pseudo message block by using the sender's public key and the pseudo message calculated in the second step; And 상기 제3 단계에서 계산된 마지막 의사 메시지 블록인 n비트의 값과, 상기 랜덤 넘버 및 수신자의 공개키를 이용해 비대칭키 암호 알고리즘을 통해 암호화하는 제4 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer program having recorded thereon a program for executing a fourth step of encrypting through an asymmetric key cryptographic algorithm using the random number and the recipient's public key, the value of n bits which is the last pseudo message block calculated in the third step. Recording media. 컴퓨터에서 암호화된 데이터를 복호화하기 위해,To decrypt encrypted data on your computer: 암호화된 데이터(C)를 입력받아 비밀키 Rs로 상기 입력받은 암호화된 데이터를 복호화하여 의사 메시지(Y)의 마지막 블록 LB 및 랜덤 넘버 N'를 계산하는 제1 단계;A first step of receiving encrypted data (C) and decrypting the received encrypted data with a secret key R s to calculate a last block LB and a random number N 'of a pseudo message (Y); 상기 의사 메시지(Y)를 다수(s개)의 n 비트 블록으로 분할하는 제2 단계;Dividing the pseudo message (Y) into a plurality (s) of n bit blocks; 상기 분할된 의사 메시지, 상기 의사 메시지의 마지막 블록 LB 및 랜덤 넘버 N'를 입력받아, 송신자의 공개키(Kp)를 n 비트로 분할한 후, 배타적 논리합 연산을 수행하여 중간 생성값 K를 계산하는 제3 단계; 및Receiving the divided pseudo message, the last block LB of the pseudo message, and a random number N ', dividing the sender's public key K p by n bits, and performing an exclusive OR operation to calculate an intermediate value K; Third step; And 상기 중간 생성값 K를 입력받아 All-or-nothing 역변환을 수행하여 원래의 메시지(X)로 복구하는 제4 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium having recorded thereon a program for executing the fourth step of receiving the intermediate generated value K and performing an all-or-nothing inverse transformation to recover the original message (X).
KR10-2000-0080993A 2000-12-23 2000-12-23 Data encryption system and its method using asymmetric key encryption algorithm Expired - Fee Related KR100388059B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0080993A KR100388059B1 (en) 2000-12-23 2000-12-23 Data encryption system and its method using asymmetric key encryption algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0080993A KR100388059B1 (en) 2000-12-23 2000-12-23 Data encryption system and its method using asymmetric key encryption algorithm

Publications (2)

Publication Number Publication Date
KR20020051597A KR20020051597A (en) 2002-06-29
KR100388059B1 true KR100388059B1 (en) 2003-06-18

Family

ID=27685171

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0080993A Expired - Fee Related KR100388059B1 (en) 2000-12-23 2000-12-23 Data encryption system and its method using asymmetric key encryption algorithm

Country Status (1)

Country Link
KR (1) KR100388059B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100599159B1 (en) * 2005-03-03 2006-07-12 삼성전자주식회사 Digital signature generation and verification methods and apparatus
KR102180029B1 (en) * 2014-02-03 2020-11-17 삼성전자 주식회사 CRT-RSA encryption method and apparatus and computer readable storage medium therefore
CN111279307B (en) * 2017-11-07 2023-05-12 谷歌有限责任公司 random number generator
KR101894566B1 (en) * 2017-11-22 2018-09-04 동국대학교 산학협력단 Data transmission apparatus and method for encoding by integrating authentication and error correction
KR102104873B1 (en) * 2019-10-22 2020-04-27 배희진 Email encryption method
CN114398651B (en) * 2021-12-29 2023-07-28 张海滨 Secret data sharing method and distributed system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980050938A (en) * 1996-12-21 1998-09-15 양승택 How to Send Encrypted Documents on the Internet
JPH11215117A (en) * 1997-10-20 1999-08-06 Sun Microsyst Inc Method and device for key encoding and recovery
KR20000021130A (en) * 1998-09-25 2000-04-15 김용만 Symmetrical key block encryption algorithm
KR20000024419A (en) * 2000-02-12 2000-05-06 배민관 A new public key cryptosystem : BMG
US6111952A (en) * 1996-01-26 2000-08-29 Bull Cp8 Asymmetrical cryptographic communication method and portable object therefore
US6160891A (en) * 1997-10-20 2000-12-12 Sun Microsystems, Inc. Methods and apparatus for recovering keys

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111952A (en) * 1996-01-26 2000-08-29 Bull Cp8 Asymmetrical cryptographic communication method and portable object therefore
KR19980050938A (en) * 1996-12-21 1998-09-15 양승택 How to Send Encrypted Documents on the Internet
JPH11215117A (en) * 1997-10-20 1999-08-06 Sun Microsyst Inc Method and device for key encoding and recovery
US6160891A (en) * 1997-10-20 2000-12-12 Sun Microsystems, Inc. Methods and apparatus for recovering keys
KR20000021130A (en) * 1998-09-25 2000-04-15 김용만 Symmetrical key block encryption algorithm
KR20000024419A (en) * 2000-02-12 2000-05-06 배민관 A new public key cryptosystem : BMG

Also Published As

Publication number Publication date
KR20020051597A (en) 2002-06-29

Similar Documents

Publication Publication Date Title
US11831764B2 (en) End-to-end double-ratchet encryption with epoch key exchange
CN114095170B (en) Data processing method, device, system and computer readable storage medium
US7110539B1 (en) Method and apparatus for encrypting and decrypting data
Koko et al. Comparison of Various Encryption Algorithms and Techniques for improving secured data Communication
Sharma et al. Study on cryptography and techniques
CA2819211C (en) Data encryption
Shankar et al. Hybrid cryptographic technique using rsa algorithm and scheduling concepts
KR20040009766A (en) Apparatus and method for transmitting and receiving in encryption system
Padhiar et al. A comparative study on symmetric and asymmetric key encryption techniques
Gobi et al. A Comparative Study on the Performance and the Security of RSA and ECC Algorithm
KR100396740B1 (en) Provably secure public key encryption scheme based on computational diffie-hellman assumption
US20070183600A1 (en) Secure Cryptographic Communication System Using Kem-Dem
Djordjevic Conventional cryptography fundamentals
KR100388059B1 (en) Data encryption system and its method using asymmetric key encryption algorithm
KR100551992B1 (en) Application data encryption and decryption method
JP2004246350A (en) Encryption device and decryption device, and encryption system, encryption method and decryption method provided with them
EP1456997B1 (en) System and method for symmetrical cryptography
JP2000047581A (en) Encryption method, encryption / decryption device, and encryption communication system
JP2000004223A (en) Encryption / authentication system
Young et al. A subliminal channel in secret block ciphers
KR100323799B1 (en) Method for the provably secure elliptic curve public key cryptosystem
Almuhammadi et al. Double-hashing operation mode for encryption
JP3518671B2 (en) Encryption communication method
EP4123956A1 (en) Method for securely transferring data elements values
Agrawal et al. Analysis of different cryptography algorithms

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 10

FPAY Annual fee payment

Payment date: 20130527

Year of fee payment: 11

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 11

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 12

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 12

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20150605

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20150605

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000