KR20020095776A - Method and apparatus for generating one-time secrete code - Google Patents

Method and apparatus for generating one-time secrete code Download PDF

Info

Publication number
KR20020095776A
KR20020095776A KR1020010033971A KR20010033971A KR20020095776A KR 20020095776 A KR20020095776 A KR 20020095776A KR 1020010033971 A KR1020010033971 A KR 1020010033971A KR 20010033971 A KR20010033971 A KR 20010033971A KR 20020095776 A KR20020095776 A KR 20020095776A
Authority
KR
South Korea
Prior art keywords
random number
number sequence
sequence
client
secret key
Prior art date
Application number
KR1020010033971A
Other languages
Korean (ko)
Other versions
KR100390526B1 (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-2001-0033971A priority Critical patent/KR100390526B1/en
Publication of KR20020095776A publication Critical patent/KR20020095776A/en
Application granted granted Critical
Publication of KR100390526B1 publication Critical patent/KR100390526B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

PURPOSE: A method and a device for generating a disposable secrete key are provided to make a server and a client share the disposable secrete key for encrypting and decrypting the information in the real-time while not passing a transmission process using a communication network. CONSTITUTION: A transmitting/receiving part(110) performs the data communication with the client(200). A process generating part(130) generates a random number modification process for modifying a random number string transferred from the client and a secrete key generating process, and transmits the processes to the client. A random number string managing part(110) generates the first modified random number string and a partial random number string. A random number string comparing part(120) compares the second modified random number string with the first modified random number string by receiving the second modified random number string information from the client(200). A secrete key generating part(150) generates the disposable secrete key by manipulating a partial common random number string of the first and the second modified random number string if the comparison is accorded.

Description

일회용 비밀키 생성 방법 및 그 장치{Method and apparatus for generating one-time secrete code}Method and apparatus for generating one-time secrete code

본 발명은 일회용 비밀키 생성 방법 및 그 장치에 관한 것이다.The present invention relates to a method and apparatus for generating a disposable secret key.

최근 정보통신 분야의 급속한 성장과 함께 통신망을 이용한 정보의 전달이 일반화되고 있는 현실이다.Recently, with the rapid growth of the information communication field, the transmission of information using a communication network is becoming a reality.

그러나, 이와 같이 통신망을 이용하여 정보를 전달하고자 할 경우, 전화망의 '도청' 또는 인터넷상의 '해킹'등으로 인해 그 정보의 보안 유지가 사실상 어렵다는 단점이 있다.However, when the information is to be transmitted using the communication network in this way, it is difficult to maintain the security of the information due to 'tapping' or 'hacking' on the Internet.

따라서, 이러한 '도청'이나 '해킹'으로부터 정보를 안전하게 보호하기 위해, 정보를 전달하는 측에서 정보에 대한 암호화를 수행하고, 그 정보의 수신하는 측에서 해당 정보를 해독하는 과정을 거침으로써, 해당 정보의 유출을 방지하고자 하는 기술이 발달하고 있다.Therefore, in order to secure the information from such 'tapping' or 'hacking', the information transmitting side performs encryption on the information, and the receiving side of the information undergoes a process of decrypting the information, Techniques for preventing the leakage of information are developing.

이러한 기술을 일반적으로 암호 알고리즘이라고 하며, 도 1에 일반적인 암호 알고리즘에 대한 절차도가 나타나 있다.This technique is commonly referred to as a cryptographic algorithm, and a procedure diagram for a general cryptographic algorithm is shown in FIG.

도 1은 서버/클라이언트 구조에서 임의의 클라이언트가 서버로부터 원하는 서비스를 제공받기 위해, 자신의 신상 정보 등과 같이 보안이 요구되는 정보를 서버측으로 전송하고자 하는 경우 그 정보에 대한 암호 알고리즘을 나타낸다.FIG. 1 illustrates an encryption algorithm for information when a certain client wants to transmit information requiring security such as his / her personal information to a server in order to receive a desired service from a server in a server / client structure.

즉, 임의의 클라이언트(10)가 서버(20)측으로 전송할 정보를 생성(s10)하여,그 정보를 암호화한 후(s20) 암호화된 정보를 서버측으로 전송하면(s30), 서버(20)는 그 암호화된 정보를 복호화하여(s40) 그 내용을 해독한다.That is, if any client 10 generates information to be sent to the server 20 (s10), encrypts the information (s20) and then transmits the encrypted information to the server side (s30), the server 20 The encrypted information is decrypted (s40) and its contents are decrypted.

이러한 암호 알고리즘은 해당 정보를 암호화하고 복호화하는 키의 종류에 따라 암호화 및 복호화 시 동일키를 사용하는 비밀키 암호 알고리즘과, 암호화 및 복호화 시 서로 다른 키를 사용하는 공개키 암호 알고리즘으로 구분된다.These encryption algorithms are classified into a secret key encryption algorithm using the same key for encryption and decryption and a public key encryption algorithm using different keys for encryption and decryption, depending on the type of key that encrypts and decrypts the information.

본 발명은 이들 중 비밀키 암호 알고리즘에 관한 것으로서, 비밀키 암호 알고리즘은 암호화 및 복호화 시 동일키를 사용한다는 특징으로 인해 대칭키 암호 알고리즘 또는 단일키 알고리즘이라고도 칭한다. 비밀키 암호 알고리즘은 오랜 역사를 지니고 있어 이미 존재하는 많은 정보 기술과 상호 운용이 쉽고 데이터 처리량이 강력하며, 시스템 환경에 맞는 적절한 암호 알고리즘을 쉽게 개발할 수 있다는 특징이 있다. 하지만, 정보 교환 당사자간에 동일한 키를 공유하여야 하므로 여러 사람과의 정보 교환시 많은 키를 유지 관리해야 하는 단점이 있다. 즉, 비밀키 암호 알고리즘은 암호화 및 복호화 과정시 사용되는 키(이하, '비밀키'라 칭함)가 간단한 치환과 순열의 조합에 의해 생성됨으로써, 암호화 및 복호화의 속도가 빠르며, 비밀키의 길이가 짧다는 장점이 있는 반면, 사용자의 증가에 따라 관리해야할 키의 수가 상대적으로 많고, 키 변화의 빈도가 높다는 단점이 있다.The present invention relates to a secret key cryptographic algorithm, which is also referred to as a symmetric key cryptographic algorithm or a single key algorithm due to the feature of using the same key in encryption and decryption. The secret key cryptographic algorithm has a long history, and it is easy to interoperate with many existing information technologies, powerful data throughput, and easy to develop an appropriate cryptographic algorithm for the system environment. However, since the same key must be shared between the information exchange parties, there is a disadvantage in that a large number of keys must be maintained when exchanging information with multiple people. In other words, the secret key encryption algorithm generates a key used in the encryption and decryption process (hereinafter referred to as a "secret key") by a simple substitution and permutation combination, so that the encryption and decryption speed is fast, and the length of the secret key is increased. On the other hand, the number of keys to be managed is increased according to the increase of users, and the frequency of key changes is high.

따라서, 최근에는 이러한 단점을 보완하기 위해 정보 교환 당사자간에 필요한 비밀키를 실시간으로 생성하고 제공하는 이른바 일회용 비밀키 방식이 채택되고 있다. 하지만 이러한 일회용 비밀키 방식의 경우 통신망을 이용하여 일회용 비밀키를 공유하도록 함으로써, 그 비밀키가 '도청'이나 '해킹'으로 인해 제3자에게 유출될 수 있다는 위험 부담을 안고 있다. 특히, 회원들에게 금융 거래 서비스 또는 전자 상거래 관련 서비스 등을 제공하기 위한 서버와 해당 회원(클라이언트)들 사이에 금융 거래 정보를 송/수신 하고자 하는 경우 이러한 위험 부담은 서버 및 회원(클라이언트)들 모두에게 치명적이다.Therefore, in recent years, a so-called one-time secret key scheme has been adopted to generate and provide a secret key necessary for information exchange parties in real time. However, in the case of such a one-time secret key method to share the one-time secret key using a communication network, there is a risk that the secret key can be leaked to a third party due to 'tapping' or 'hacking'. In particular, in the case of sending / receiving financial transaction information between a server and a member (client) for providing a financial transaction service or an e-commerce related service to a member, such a risk is borne by both the server and the member (client). Fatal to

따라서, 본 발명은 상기한 바와 같은 종래의 제반 문제점을 해결하기 위해 안출된 것으로서, 통신망을 이용한 전송 과정을 거치지 않고, 정보의 암호화 및 복호화를 위한 일회용 비밀키를 서버와 클라이언트가 실시간으로 공유할 수 있도록 하는 일회용 비밀키 생성 방법 및 그 장치를 제공하는 것을 목적으로 한다.Accordingly, the present invention has been made to solve the above-mentioned conventional problems, the server and the client can share in real time a one-time secret key for encryption and decryption of information without going through a transmission process using a communication network An object of the present invention is to provide a method and apparatus for generating a disposable secret key.

도 1은 일반적인 암호 알고리즘에 대한 절차도,1 is a process diagram for a general encryption algorithm,

도 2는 본 발명의 일 실시예에 따른 일회용 비밀키 생성 방법에 대한 흐름도,2 is a flowchart illustrating a method for generating a disposable secret key according to an embodiment of the present invention;

도 3은 본 발명의 일 실시예에 따른 암호 알고리즘에 대한 절차도,3 is a process diagram for an encryption algorithm according to an embodiment of the present invention;

도 4는 본 발명의 일 실시예에 따라 일회용 비밀키를 생성하는 과정에서 발생되는 난수열들에 대한 예시도,4 is an exemplary diagram of random numbers generated in the process of generating a disposable secret key according to an embodiment of the present invention;

도 5는 본 발명의 일 실시예에 따른 일회용 비밀 생성 장치에 대한 개략적인 블록도,5 is a schematic block diagram of a disposable secret generating device according to an embodiment of the present invention;

도 6 및 도 6a는 초기 난수열에 대한 변형 프로세스 구조에 대한 실시예를 도시한 도면,6 and 6A illustrate an embodiment of a deformation process structure for an initial random number sequence;

도 7 및 도 7a는 부분 난수열에 의해 비밀키를 생성하는 프로세스 구조에 대한 실시예를 도시한 도면.7 and 7A illustrate an embodiment of a process structure for generating a secret key by partial random sequence;

♣ 도면의 주요 부분에 대한 부호의 설명 ♣♣ Explanation of symbols for the main parts of the drawing ♣

100 : 일회용 비밀키 생성 110 : 난수열 관리부100: disposable secret key generation 110: random number management unit

120 : 난수열 130 : 프로세스 생성부120: random number sequence 130: process generation unit

140 : 송/수신기150 : 비밀키 생성부140: transmitter / receiver 150: secret key generation unit

상기 목적을 달성하기 위한 본 발명의 일회용 비밀키 생성 방법은 서버와 클라이언트간 정보 전달 요청이 발생한 경우 임의의 난수열을 발생시켜, 그 난수열(N)을 클라이언트와 서버가 공유하도록 하는 제1 과정과, 서버 및 클라이언트가 공유하고 있는 동일 난수 변형 프로세스(P1)에 의해, 서버와 클라이언트가 상기 난수열을 변형시킨 변형 난수열(Ms, Mc)을 각각 생성하는 제2 과정과, 상기 서버 및 클라이언트가 통신망을 통해 상기 변형 난수열(Ms, Mc) 정보를 교환함으로써, 각 변형 난수열(Ms, Mc)의 일치성 여부를 확인하는 제3 과정과, 상기 제3 과정에서 각 변형 난수열(Ms, Mc)이 일치한다고 확인된 경우, 상기 서버 및 클라이언트가 해당변형 난수열(Ms, Mc)중 공통 부분 난수열(CSs, CSc)을 각각 선택하는 제4 과정과, 상기 서버 및 클라이언트가 공유하고 있는 동일 비밀키 생성 프로세스(P2)에 의해, 공통 부분 난수열(CSs, CSc)을 조작하여 동일 비밀키(KEYs, KEYc)를 각각 생성하는 제5 과정을 포함하는 것을 특징으로 한다.In order to achieve the above object, the method for generating a disposable secret key of the present invention generates a random random sequence when a request for information transfer between a server and a client occurs, thereby allowing the random sequence N to be shared between the client and the server. And a second process of respectively generating a modified random number sequence M s and M c by which the server and the client transform the random number sequence by the same random number modification process P1 shared between the server and the client, and the server And a third process of checking whether the modified random number sequences M s and M c are identical by exchanging information on the modified random number sequences M s and M c through a communication network, and in the third process. When it is confirmed that each modified random number sequence (M s , M c ) matches, the server and the client respectively select the common partial random sequence (CS s , CS c ) among the corresponding modified random sequence (M s , M c ). Fourth process, the server and the client A fifth step of generating the same secret key (KEY s , KEY c ) by manipulating the common partial random sequence (CS s , CS c ) by the same secret key generation process (P2) It features.

또한, 상기 목적을 달성하기 위한 본 발명의 일회용 비밀키 생성 장치는 통신망으로 연결된 외부 클라이언트와의 정보 송/수신 명령이 발생한 경우, 그 정보의 암호화 및 복호화를 위한 일회용 비밀키를 생성하는 장치에 있어서, 해당 정보의 송/수신 대상이 되는 클라이언트와 데이터 송/수신을 수행하는 송/수신부와, 다수개의 난수를 포함하는 난수열을 발생하고, 그 난수열(N)을 해당 클라이언트에게 전송하는 난수열 발생부와, 상기 난수열(N)을 변형시키기 위한 난수 변형 프로세스(P1) 및 일회용 비밀키 생성을 위한 비밀키 생성 프로세스(P2)를 생성하고, 그 난수 변형 프로세스(P1) 및 비밀키 생성 프로세스(P2)를 해당 클라이언트에게 전송하는 프로세스 생성부와, 상기 난수 변형 프로세스(P1)에 의거하여 상기 난수열(N)을 변형시켜 제1 변형 난수열(MS)을 생성하고, 그 제1 변형 난수열(MS)에 의한 일회용 비밀키 생성을 위해 필요한 부분 난수열을 생성하는 난수열 관리부와, 상기 클라이언트로부터 상기 난수 변형 프로세스(P1)에 의한 난수열(N)의 변형 난수열인 제2 변형 난수열(MC) 정보를 수신하여, 제2 변형 난수열(MC)과 상기 제1 변형 난수열(MS)의 일치성 여부를 판별하는 난수열 비교부와, 상기 난수열 비교부의판별 결과 제1 변형 난수열(MS)과 제2 변형 난수열(MC)이 일치하는 경우, 상기 비밀키 생성 프로세스(P2)에 의해 상기 제1 변형 난수열(MS)과 제2 변형 난수열(MC)의 공통 부분 난수열을 조작하여 일회용 비밀키를 생성하는 비밀키 생성부를 포함하는 것을 특징으로 한다.In addition, the apparatus for generating a disposable secret key of the present invention for achieving the above object in the apparatus for generating a disposable secret key for encrypting and decrypting the information when an information transmission / reception command with an external client connected via a communication network occurs; , A random number sequence generating a random number sequence including a plurality of random numbers and a transmitting / receiving unit performing data transmission / reception, a plurality of random numbers, and transmitting the random number sequence (N) to the corresponding client. A generator generates a random number transformation process P1 for transforming the random number sequence N and a secret key generation process P2 for generating a disposable secret key, and generates the random number transformation process P1 and the secret key generation process. A process generation unit for transmitting (P2) to the corresponding client, and the first modified random number sequence M S by modifying the random number sequence N based on the random number transformation process P1. ) And a random number sequence management unit for generating a partial random number sequence necessary for generating a disposable secret key by the first modified random number sequence (M S ), and a random number sequence (by the random number transformation process (P1) from the client). receiving a modified random number sequence of a second modified random number sequence (M C) information of N), the second modified random number sequence (M C) and the first variation I i which determines the correspondence if the sequence (M S) sequence In the case where the comparison unit and the random number sequence comparison unit determine that the first modified random number sequence M S and the second modified random number sequence M C coincide with each other, the first modified eggs are generated by the secret key generation process P2. And a secret key generation unit for generating a disposable secret key by manipulating a common partial random number sequence of the sequence MS and the second modified random number sequence MC.

이하, 본 발명에 따른 일회용 비밀키 생성 방법 및 그 장치에 대한 바람직한 실시예를 첨부된 도면에 의거하여 상세하게 설명한다.Hereinafter, a preferred embodiment of a disposable secret key generation method and apparatus according to the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 일 실시예에 따른 일회용 비밀키 생성 방법에 대한 흐름도이다. 도 2를 참조하면, 서버와 클라이언트간에 정보 전달 요청이 발생한 경우 우선 임의의 난수열(N)을 발생시켜(s110), 그 난수열(N)을 클라이언트와 서버가 공유하도록 한다(s120). 이 때, 난수열(N)은 다수개의 난수를 포함하며, 클라이언트, 서버 또는 별도의 난수 발생 장치에서 발생한 후, 통신망을 이용하여 상기 서버 및 클라이언트에게 전송하여 공유하도록 한다.2 is a flowchart illustrating a method for generating a disposable secret key according to an embodiment of the present invention. Referring to FIG. 2, when an information transfer request is generated between a server and a client, a random random number N is first generated (S110), and the random number N is shared between the client and the server (S120). In this case, the random number sequence N includes a plurality of random numbers, and occurs in a client, a server, or a separate random number generating device, and then is transmitted and shared to the server and the client by using a communication network.

이와 같이 임의의 난수열(N)을 서버 및 클라이언트가 공유하게 되면, 서버 및 클라이언트는 상호 공유하고 있는 동일 난수 변형 프로세스(P1)에 의해, 그 난수열(N)을 변형하여 변형 난수열(Ms: 서버측 변형 난수열, Mc: 클라이언트측 변형 난수열)을 각각 생성한다(s130). 이 때, 서버와 클라이언트는 동일한 난수 변형 프로세스(P1)를 사전에 공유하고 있을 수도 있고, 서버와 클라이언트간 정보 전달 요청에 의한 일회용 비밀키 생성시, 서버측에서 난수 변형 프로세스(P1)를 새롭게 생성하거나 기 생성된 다수의 난수 변형 프로세스 들 중 하나의 난수 변형프로세스(P1)를 무작위로 선택한 후, 클라이언트측으로 전송하도록 할 수도 있다. 이와 같이 서버측에서 클라이언트측으로 프로세스(P1)를 전송할 때 일반 통신망을 이용하는데, 일반적으로 프로세스는 통신망을 통해 도청이나 해킹이 난해하므로 이로 인한 비밀키의 유출은 거의 불가능하다고 볼 수 있다.When the random number string N is shared by the server and the client as described above, the random number string M is modified by modifying the random number string N by the same random number modification process P1 shared between the server and the client. s: a server-side modified random number sequence, M c: generate a client-side modified random number sequence), respectively (s130). At this time, the server and the client may share the same random number transformation process (P1) in advance, and when generating a disposable secret key by requesting information transfer between the server and the client, the server side generates a new random number transformation process (P1). Alternatively, one of the randomly generated random number transformation processes P1 may be randomly selected and then transmitted to the client side. In this way, a general communication network is used to transmit the process P1 from the server side to the client side. In general, since the process is difficult to eavesdrop or hack through the communication network, the leakage of the secret key is almost impossible.

한편, 서버와 클라이언트 각 측에서 변형 난수열(Ms, Mc)을 각각 생성하였으면, 그 변형 난수열(Ms, Mc)이 서로 일치하는 지를 확인하는 과정(s140)을 수행하는데, 이 때, 서버와 클라이언트는 각 변형 난수열(Ms, Mc)의 정보를 교환한다. 즉, 서버측에서 해당 변형 난수열(Ms)에 대한 부분 난수열(Ss)을 무작위로 선택하고, 클라이언트측에서 해당 변형 난수열(Mc)에 대한 부분 난수열(Sc)을 무작위로 선택한 후, 클라이언트측 변형 난수열(Mc)에 서버측의 부분 난수열(Ss)이 포함되는 지와, 서버측 변형 난수열(Ms)에 클라이언트측의 부분 난수열(Sc)이 포함되는지의 여부를 확인한다.On the other hand, if each of the modified random number sequence (M s , M c ) generated by each server and client side, and performs a process (s140) to check whether the modified random number sequence (M s , M c ) match each other, At that time, the server and the client exchange information of each modified random number sequence (M s , M c ). That is, the server randomly selects a partial random number sequence (S s ) for the corresponding modified random number sequence (M s ), and the client side randomly selects a partial random sequence (S c ) for the corresponding modified random sequence (M c ). Is selected, the client-side modified random number sequence (M c ) includes the server-side partial random number sequence (S s ), and the server-side modified random number sequence (M s ) includes the client-side partial random number sequence (S c ). Check whether this is included.

상기 과정(s140)에 의해 서버와 클라이언트 각각의 변형 난수열(Ms, Mc)이 일치한다고 확인된 경우, 상기 서버 및 클라이언트가 해당 변형 난수열(Ms, Mc) 중 서로 공통되는 부분 난수열(CSs, CSc)을 각각 선택한다(s150). 즉, 서버 및 클라이언트가 각각 생성한 변형 난수열(Ms, Mc) 각각에서 부분 난수열(Ss, Sc)을 모두 제거하고 남은 잔여 난수열을 상기 서버와 클라이언트의 공통 부분 난수열(CSs, CSc)로 선택한다.When it is confirmed by the process s140 that the modified random number sequences M s and M c of the server and the client match each other, the server and the client have a common part among the modified random number sequences M s and M c . Random sequences CS s and CS c are respectively selected (s150). That is, the partial random number sequences S s and S c are removed from each of the modified random numbers M s and M c generated by the server and the client, respectively. CS s , CS c ).

그리고, 서버 및 클라이언트가 상호 공유하고 있는 동일 비밀키 생성 프로세스(P2)에 의해, 공통 부분 난수열(CSs, CSc)을 조작하여 동일 비밀키(KEYs, KEYc)를 각각 생성한다(s160). 이 때, 서버와 클라이언트는 난수 변형 프로세스(P1)의 경우와 마찬가지로, 동일한 비밀키 생성 프로세스(P2)를 사전에 공유하고 있을 수도 있고, 정보 전달 요청에 의한 비밀키 생성시, 서버측에서 클라이언트측으로 전송하도록 할 수도 있는데, 후자의 경우 서버는 비밀키 생성 프로세스(P2)를 새롭게 생성하거나 기 생성된 다수의 비밀키 생성 프로세스들 중 하나의 비밀키 생성 프로세스(P2)를 무작위로 선택한 후, 그 비밀키 생성 프로세스(P2)를 클라이언트측으로 전송하도록 한다. 이 경우도 통신망을 통한 비밀키 생성 프로세스(P2)의 도청이나 해킹이 난해하므로 이로 인한 비밀키의 유출은 거의 불가능하다.Then, by the same secret key generation process P2 shared between the server and the client, the common partial random number sequences CS s and CS c are operated to generate the same secret keys KEY s and KEY c , respectively ( s160). At this time, the server and the client may share the same secret key generation process P2 in advance, as in the case of the random number transformation process P1, or when the secret key is generated by the information transfer request, the server side and the client side. In the latter case, the server generates a new secret key generation process (P2) or randomly selects one of a plurality of pre-generated secret key generation processes (P2) and then selects the secret. The key generation process P2 is sent to the client side. In this case, since the eavesdropping or hacking of the secret key generation process P2 through the communication network is difficult, the leakage of the secret key is almost impossible.

도 3은 본 발명의 일 실시예에 따른 암호 알고리즘에 대한 절차도이고, 도 4는 본 발명의 일 실시예에 따라 일회용 비밀키를 생성하는 과정에서 발생되는 난수열들에 대한 예시도이다.3 is a flowchart illustrating a cryptographic algorithm according to an embodiment of the present invention, and FIG. 4 is a diagram illustrating random numbers generated in the process of generating a disposable secret key according to an embodiment of the present invention.

도 3 및 도 4를 참조하여 본 발명의 일 실시예에 따른 암호 알고리즘을 보다 상세히 설명하면 다음과 같다.The encryption algorithm according to an embodiment of the present invention will be described in more detail with reference to FIGS. 3 and 4 as follows.

도 3의 경우는 비밀키 생성을 위한 초기 난수열(N)을 클라이언트(10)가 발생하는 경우에 대한 예를 나타낸다. 하지만, 초기 난수열(N)은 서버(20)에서 발생하거나, 별도의 난수 발생 장치를 이용하여 발생하도록 하는 것도 가능하다.3 illustrates an example of a case where the client 10 generates an initial random number N for generating a secret key. However, the initial random number sequence N may occur in the server 20 or may be generated using a separate random number generator.

도 3을 참조하면, 우선 클라이언트(10)가 난수열(N)을 발생한 후(s201), 그 난수열(N)을 서버(20)에게 전송하여 서버(20)측으로 전송될 정보가 있음을 알린다(s202). 이 때, 발생된 난수열(N)은 설명의 편의를 위해 도 4(a)와 같이 도시될 수 있다. 즉, 난수열(N)은 n개의 난수를 포함하며, 그 난수들은 N1, N2, …, Nn이다.Referring to FIG. 3, first, the client 10 generates a random number sequence N (s201), and then transmits the random number sequence N to the server 20 to inform that there is information to be transmitted to the server 20 side. (s202). In this case, the generated random number N may be illustrated as shown in FIG. 4A for convenience of description. That is, the random number sequence N includes n random numbers, and the random numbers N 1 , N 2 ,... , N n .

그러면, 서버(20)는 그 난수열(N)을 변형시키기 위한 난수 변형 프로세스(P1)를 선정하여, 클라이언트(10)에게 전송한다(s203, s204). 이 때, 만일 클라이언트(10)와 서버(20)가 동일한 난수 변형 프로세스(P1)를 사전에 공유하는 경우 상기 과정(s203, s204)은 생략 가능하다.Then, the server 20 selects the random number modification process P1 for transforming the random number sequence N, and transmits it to the client 10 (s203 and s204). In this case, if the client 10 and the server 20 share the same random number transformation process P1 in advance, the processes s203 and s204 may be omitted.

이와 같이 서버(20)와 클라이언트(10)가 동일 난수 변형 프로세스(P1)를 공유하게 되면, 서버(20)와 클라이언트(10)는 그 난수 변형 프로세스(P1)에 의거하여 변형된 난수열(M)을 각각 발생한다(s205, s206). 이 때, 변형된 난수열(Ms: 서버측에서 변형된 난수열, Mc: 클라이언트측에서 변형된 난수열)은 설명의 편의를 위해 도 4(b)와 같이 도시될 수 있다. 즉, 서버측 변형 난수열(Ms)은 'n-1'개의 난수들을 포함하며, 그 난수들은 M1, M2, …, Mn-1이다. 클라이언트측 변형 난수열(Mc)도 이와 같이 구성된다.When the server 20 and the client 10 share the same random number transformation process P1 in this manner, the server 20 and the client 10 modify the random number sequence M based on the random number transformation process P1. Are generated respectively (s205 and s206). At this time, the modified random number sequence can be shown as (M s: a random number sequence modifications on the client side: the server-side I variant in sequence, M c) are also for convenience of explanation, 4 (b). That is, the server-side modified random number sequence M s includes 'n-1' random numbers, and the random numbers are M 1 , M 2 ,... , M n-1 . The client-side modified random number sequence M c is thus constructed.

이 때, 초기 난수열(N)에서 변형 난수열(Ms, Mc)로 변형되는 과정에서 그 난수의 수가 'n'개에서 'n-1'개로 줄어들었는데, 서버와 클라이언트간 난수 전송시 난수의 시작과 끝을 알리기 위해 초기 난수열(N)의 마지막 난수가 사용되었기 때문이며, 이는 하나의 예시에 불과하므로, 그 난수열의 개수 변화는 무시해도 무관하다.At this time, the number of random numbers decreased from 'n' to 'n-1' during the transformation from the initial random number (N) to the modified random number (M s , M c ). This is because the last random number of the initial random number (N) is used to indicate the start and end of the random number, which is just one example, so the change in the number of the random numbers can be ignored.

상기 과정(s205, s206)과 같이 서버(20)와 클라이언트(10) 양측에서 변형 난수열(Ms, Mc)을 각각 생성하였으면, 그 변형 난수열(Ms, Mc)의 일치성 여부를 판별하기 위한 일련의 과정(s207 내지 s210)을 수행한다.If the modified random number sequences M s and M c are generated at both sides of the server 20 and the client 10 as in the processes s205 and s206, respectively, whether the modified random number sequences M s and M c are identical A series of processes s207 to s210 are performed to determine.

우선, 서버(20)는 해당 변형 난수열(Ms)에 대한 부분 난수열(Ss)을 선택하여(s207), 그 부분 난수열(Ss)을 클라이언트측으로 전송한다(s208). 그러면, 클라이언트(10)는 해당 변형 난수열(Mc)에 그 부분 난수열(Ss)이 포함되었는지의 여부를 판별하여 상기 부분 난수열(Ss)이 해당 변형 난수열(Mc)에 포함된 경우, 변형 난수열(Mc)에서 임의의 부분 난수열(Sc)로 선택하여(s209), 그 부분 난수열(Sc)을 서버(20)로 전송한다(s210). 그리고 나서, 클라이언트(10)는 해당 변형 난수열(Mc)에서 상기 부분 난수열(Ss, Sc)을 제거한 잔여 난수열을 공통 부분 난수열(CSc)로 선택한다(s211).First, the server 20 selects a partial random number sequence S s for the modified random number sequence M s (s207), and transmits the partial random number sequence S s to the client side (s208). Then, the client 10 has the modified random number sequence (M c) that part random number sequence (S s) random number sequence (S s) is the strain the portion to determine whether or not including a random number sequence (M c) to If included, the random random sequence (S c ) is selected as the random random sequence (S c ) from the modified random number sequence (M c ), and the partial random sequence (S c ) is transmitted to the server 20 (s210). Then, the client 10 selects the residual random number sequence from which the partial random number sequences S s and S c are removed from the modified random number sequence M c as the common partial random number sequence CS c (S211).

도 4(c)는 서버측 변형 난수열(Ms)에서 i개(M1,…,Mi) 의 부분 난수열(Ss)을 무작위로 선택하고, 그 부분 난수열(Ss)이 클라이언트측 변형 난수열(Mc)에 포함되는지의 여부를 판별하는 과정을 나타내고, 도 4(d)는 클라이언트측 변형 난수열(Mc)에서 임의의 난수 j개(Mi+1,…, Mi+j)로 구성된 부분 난수열(Sc)을 무작위로 선택하고, 그 부분 난수열(Sc)이 서버측 변형 난수열(Ms)에 포함되는지의 여부를 판별하는 과정을 나타낸다.4 (c) randomly selects i (M 1 ,.., M i ) partial random number sequences (S s ) from the server-side modified random number sequence (M s ), and the partial random number sequence (S s ) is represents the step of determining whether or not the client-side modification I comprising the sequence (M c), Figure 4 (d) is a client-side modified random number sequence (M c) any random number j dog (M i + 1, in ..., portion consisting of M i + j) i selected as the sequence (S c) a random, and represents that part I process determines whether or not a sequence (S c), the server-side modification I comprising the sequence (M s).

한편, 서버(20)는 해당 변형 난수열(Ms)에 클라이언트(10)로부터 전송된 부분 난수열(Sc)이 포함되었는지의 여부를 판별하여 상기 부분 난수열(Sc)이 해당 변형 난수열(Ms)에 포함된 경우, 해당 변형 난수열(Ms)에서 상기 부분 난수열(Ss, Sc)을 제거한 잔여 난수열을 공통 부분 난수열(CSs)로 선택한다(s212).On the other hand, the server 20 is the modified random number sequence (M s), the part-random number sequence (S c) said portion to determine whether or not including a random number sequence (S c) is the transmission from client 10 to a modified I selects in sequence (M s) of the case, the modified random number sequence (M s) the partial random number sequence (s s, s c) to remove residual I intersection of random number sequence to sequence (CS s) in contained in (s212) .

도 4(e)는 서버측 변형 난수열(Ms)에서 상기 부분 난수열(Ss, Sc)(M1,…,Mi,Mi+1,…,Mi+j)을 제거한 잔여 난수열을 공통 부분 난수열(CSs)로 선택하는 과정을 나타내고, 도 4(f)는 클라이언트측 변형 난수열(Mc)에서 상기 부분 난수열(Ss, Sc)(M1,…,Mi,Mi+1,…,Mi+j)을 제거한 잔여 난수열을 공통 부분 난수열(CSc)로 선택하는 과정을 나타낸다.FIG. 4 (e) removes the partial random number sequences S s , S c (M 1 ,... M i , M i + 1 ,..., M i + j ) from the server-side modified random number sequence M s . the remaining I denotes the process of selecting a common partial random number sequence (CS s) the sequence, Fig. 4 (f) is a client-side modified random number sequence random number sequence the portion of the (M c) (S s, S c) (M 1, The process of selecting the residual random sequence from which ..., M i , M i + 1 , ..., M i + j ) is removed as the common partial random sequence CS c is shown.

이 때, 클라이언트측 변형 난수열(Mc)에 서버측 부분 난수열(Ss)이 포함되지 않거나, 서버측 변형 난수열(Ms)에 클라이언트측 부분 난수열(Ss)이 포함되지 않은 경우는 비밀키 생성 과정을 종료한다.At this time, the server-side modified random number sequence (M c ) does not include the server-side partial random number sequence (S s ), or the server-side modified random number sequence (M s ) does not include the client-side partial random number sequence (S s ). The case terminates the secret key generation process.

이와 같이, 서버(20)와 클라이언트(10)측에서 공통 부분 난수열(CSs, CSc)이 선택되었으면, 서버(20)는 그 공통 부분 난수열(CSs, CSc)을 조작하여 비밀키를 생성하기 위한 비밀키 생성 프로세스(P2)를 선정하여(s213) 클라이언트(10)에게 전송한다(s214). 이 때, 만일 클라이언트(10)와 서버(20)가 동일한 비밀키 생성 변형 프로세스(P2)를 사전에 공유하는 경우 상기 과정(s213, s214)은 생략 가능하다.As such, when the common partial random number sequences CS s and CS c are selected on the server 20 and the client 10 side, the server 20 manipulates the common partial random number sequences CS s and CS c to secret it. A secret key generation process P2 for generating a key is selected (s213) and transmitted to the client 10 (s214). In this case, if the client 10 and the server 20 share the same secret key generation modification process (P2) in advance, the processes (s213, s214) can be omitted.

그러면, 클라이언트(10)와 서버(20)는 상호 공유하는 동일 비밀키 생성 프로세스(P2)에 의해 동일 비밀키(KEYs, KEYc)를 각각 생성한다(s214, s215).Then, the client 10 and the server 20 generate the same secret keys KEY s and KEY c by the same secret key generation process P2 shared with each other (s214 and s215).

그리고, 클라이언트(10)가 그 비밀키(KEYc)를 이용하여 정보를 암호화한 후(s217), 그 암호화된 정보를 서버(20)에게 전송하면(s218), 서버(20)는 그 암호화된 정보를 상기 생성된 비밀키(KEYS)를 이용하여 해독한다(s219).After the client 10 encrypts the information using the secret key KEY c (s217), and transmits the encrypted information to the server 20 (s218), the server 20 encrypts the encrypted information. Information is decrypted using the generated secret key KEY S (s219).

도 5는 본 발명의 일 실시예에 따른 비밀키 생성 장치에 대한 개략적인 블록도이다. 도 5를 참조하면, 상기와 같은 일회용 비밀키 생성 방법을 처리하기 위한 일회용 비밀키 생성 장치(100)는 서버측에 설치되며, 난수열 관리부(110), 난수열 비교부(120), 프로세스 생성부(130), 송/수신기(140) 및 비밀키 생성부(150)를 포함한다.5 is a schematic block diagram of an apparatus for generating a secret key according to an embodiment of the present invention. Referring to FIG. 5, the one-time secret key generation device 100 for processing the one-time secret key generation method as described above is installed at a server side, and the random number sequence management unit 110, the random number sequence comparison unit 120, and process generation are provided. The unit 130, the transmitter / receiver 140 and the secret key generation unit 150.

이 때, 클라이언트측(200)에서도 서버로부터 전달된 난수 변형 프로세스(P1) 및 비밀키 생성 프로세스(P2)에 의한 비밀키 생성 작업이 독자적으로 수행되어야 하므로, 내부에 난수열 관리부(210), 난수열 비교부(220), 비밀키 생성부(230) 및송수신기(240) 및 난수열 발생부(250)를 포함한다.At this time, since the secret key generation operation by the random number transformation process P1 and the secret key generation process P2 transmitted from the server must also be independently performed on the client side 200, the random number sequence management unit 210, an internal partition, The sequence comparator 220, the secret key generator 230, the transmitter and receiver 240, and the random number generator 250 are included.

난수열 발생부(250)는 비밀키 생성의 기초가 되는 난수열(N)을 발생시켜 서버측으로 전송하기 위한 장치이고, 나머지 장치들(210 내지 240)은 그 난수에 의거하여 서버와 동일한 일회용 비밀키를 생성하기 위한 장치로서, 각각의 동작은 서버측(100)에 포함된 해당 장치의 기능과 유사하므로, 그 구체적인 설명은 생략한다.The random number generation unit 250 is a device for generating and transmitting the random number sequence N, which is the basis of secret key generation, to the server side, and the remaining devices 210 to 240 are the same disposable secrets as the server based on the random number. As a device for generating a key, each operation is similar to that of the corresponding device included in the server side 100, and thus a detailed description thereof will be omitted.

이 때, 서버와 클라이언트간의 모든 데이터 송/수신은 송/수신기(150)를 통해 이루어지며, 이하에서는 송/수신기(150)의 언급을 생략한다.At this time, all data transmission / reception between the server and the client is made through the transmitter / receiver 150, and the description of the transmitter / receiver 150 will be omitted below.

프로세스 생성부(140) 일회용 비밀키 생성을 위해 클라이언트로부터 전송된 난수열(N)을 변형시키기 위한 난수 변형 프로세스(P1) 및 일회용 비밀키 생성을 위한 비밀키 생성 프로세스(P2)를 생성하고, 그 난수 변형 프로세스(P1) 및 비밀키 생성 프로세스(P2)를 해당 클라이언트에게 전송한다. 이 때, 프로세스 생성부(140)는 새로운 난수 변형 프로세스(P1) 및 비밀키 생성 프로세스(P2)를 생성하거나, 기 생성된 다수의 난수 변형 프로세스(P1) 및 비밀키 생성 프로세스(P2)들 중 각각 하나의 프로세스를 무작위로 선택하여 클라이언트에게 전송한다.Process generation unit 140 generates a random number transformation process (P1) for modifying the random number sequence (N) transmitted from the client for generating a disposable secret key and a secret key generation process (P2) for generating a disposable secret key, and The random number transformation process P1 and the secret key generation process P2 are transmitted to the corresponding client. At this time, the process generating unit 140 generates a new random number modification process (P1) and a secret key generation process (P2), or among a plurality of pre-generated random number transformation process (P1) and secret key generation processes (P2) Each one process is randomly selected and sent to the client.

난수열 관리부(120)는 프로세스 생성부(140)에서 생성되거나 선택된 난수 변형 프로세스(P1)에 의거하여 난수열(N)을 변형시켜 제1 변형 난수열(MS)을 생성하고, 그 제1 변형 난수열(MS)에 의한 일회용 비밀키 생성을 위해 필요한 부분 난수열을 생성한다. 즉, 제1 변형 난수열(MS)과 클라이언트에서 생성된 제2 변형 난수열(MC)과의 일치성 여부를 판별하기 위해 클라이언트에게 전송될 제1 부분 난수열과, 제1 변형 난수열(MS)과 상기 제2 변형 난수열(MC)이 일치하는 경우 제1 변형 난수열(MS)과 제2 변형 난수열(MC)의 공통 부분 난수열인 제2 부분 난수열을 생성한다. 비밀키 생성부(160)에서는 이 중 제2 부분 난수열을 조작하여 원하는 일회용 비밀키를 생성한다.The random number sequence manager 120 transforms the random number sequence N based on the random number transformation process P1 generated or selected by the process generator 140 to generate a first modified random number sequence M S , and generates the first modified random number sequence M S. Generate a partial random number sequence required for generation of a disposable secret key by the modified random number sequence (M S ). That is, the first partial random number sequence to be transmitted to the client to determine whether the first modified random number (M S ) and the second modified random number sequence (M C ) generated by the client and the first modified random number sequence ( M S ) and when the second modified random number sequence M C coincides with each other, a second partial random number sequence that is a common partial random sequence of the first modified random sequence M S and the second modified random sequence M C is generated. do. The secret key generator 160 manipulates the second partial random number sequence to generate a desired disposable secret key.

난수열 비교부(130)는 클라이언트로부터 난수 변형 프로세스(P1)에 의한 난수열(N)의 변형 난수열인 제2 변형 난수열(MC) 정보를 수신하여, 제2 변형 난수열(MC)과 제1 변형 난수열(MS)의 일치성 여부를 판별한다. 즉, 제2 변형 난수열(MC)에 상기 제1 부분 난수열이 포함되었음을 확인한 클라이언트가 제2 변형 난수열(MC)로부터 제1 부분 난수열과는 상이한 부분 난수열인 제3 부분 난수열을 선택하여 전송하면, 난수열 비교부(130)는 제3 부분 난수열이 제1 변형 난수열(MS)에 포함되었는지의 여부를 판별하여, 제3 부분 난수열이 제1 변형 난수열(MS)에 포함되는 경우 제1 변형 난수열(MS)과 제2 변형 난수열(MC)이 일치한다고 판별한다.The random number comparison unit 130 receives second modified random number sequence M C , which is a modified random number sequence of the random number sequence N by the random number transformation process P1, from the client, and receives the second modified random number sequence M C. ) And the first modified random number sequence (M S ) is determined. That is, the second modified random number sequence (M C), the client confirming that the first section I comprises a sequence a second modification to the random number sequence (M C) a first portion random number sequence are different partial random number sequence in the third portion random number sequence from the In this case, the random number comparing unit 130 determines whether the third partial random number sequence is included in the first modified random number sequence M S , and the third partial random number sequence includes the first modified random number sequence ( When it is included in M S ), it is determined that the first modified random number sequence M S and the second modified random number sequence M C match.

비밀키 생성부(160)는 난수열 비교부(130)의 판별 결과 제1 변형 난수열(MS)과 제2 변형 난수열(MC)이 일치하는 경우, 비밀키 생성 프로세스(P2)에 의해 상기 제1 변형 난수열(MS)과 제2 변형 난수열(MC)의 공통 부분 난수열(CS)(예컨대, 난수열 관리부(120)에서 생성된 제2 부분 난수열)을 조작하여 일회용 비밀키를 생성한다.Secret key generation unit 160, if the first modified random number (M S ) and the second modified random number sequence (M C ) matched as a result of the determination of the random number sequence comparison unit 130, the secret key generation process (P2) By manipulating a common partial random number sequence CS (for example, the second partial random number sequence generated by the random number sequence manager 120) of the first modified random number sequence M S and the second modified random number sequence M C. Create a disposable secret key.

도 6 및 도 6a는 초기 난수열에 대한 변형 프로세스(P1)(215) 구조에 대한 실시예를 도시한 도면이고, 도 7 및 도 7a는 부분 난수열에 의해 비밀키를 생성하는 프로세스(P2)(245) 구조에 대한 실시예를 도시한 도면이다.6 and 6A show an embodiment of the structure of the deformation process (P1) 215 for the initial random number sequence, and FIGS. 7 and 7A show a process (P2) for generating a secret key by partial random number sequence. 245 is a diagram showing an embodiment of the structure.

먼저, 도 6을 참조하면, 초기 난수열이 '7'개의 난수를 포함하는 경우에 대한 실시예로서, '7'개의 난수들 중 마지막 하나의 난수는 해당 난수열의 처음과 끝을 식별하기 위해 사용되었으므로, 도 6에 도시된 바와 같이 최종적으로 난수 변형 프로세스(P1)(215)로 입력되는 난수는 6개(N1,…,N6)가 되고,그 처리 결과 출력되는 변형 난수열(M) 역시 6개의 난수(M1,…,M6)를 포함한다. 도 6a는 이러한 난수 변형 프로세스(P1)(215)의 구성예로서, 도 6a에 도시된 예를 참조하면, 난수 변형 프로세스(P1)는 16byte로 구성된 각 난수(ASC코드)들을 ASC2BIN()함수를 통해 8byte의 바이너리 코드로 변환한 후, 도 6a에 도시된 바와 같은 다수개의 논리회로(XOR)들을 거쳐 변형된 난수열을 생성한다. 그리고, 그 난수열을 다시 BIN2ASC()함수를 거쳐 16byte의 아스키 코드로 변환하여 출력한다. 이 때, 도 6a에 도시된 난수 변형 프로세스(P1)(215)는 하나의 실시예에 불과한 것으로서, 다양한 회로로 구성된 난수 변형 프로세스(P1)(215)를 적용하는 것이 가능하다. 즉, 입력되는 난수의 비트열을 변환시키는 난수 변형 프로세스들을 거의 무한 개수에 가깝게 생성할 수 있으며, 그러한 난수 변형 프로세스들 중 하나를 선택하여 사용하는 것이 가능하다.First, referring to FIG. 6, as an example of a case where the initial random number sequence includes '7' random numbers, the last one of the '7' random numbers is used to identify the beginning and end of the random number sequence. As shown in FIG. 6, the random number finally inputted to the random number transformation process P1 215 is six (N 1 ,..., N 6 ), and the modified random number sequence M output as a result of the processing. ) Also contains six random numbers (M 1 ,…, M 6 ). FIG. 6A is a configuration example of such a random number transformation process (P1) 215. Referring to the example shown in FIG. 6A, the random number transformation process (P1) uses the ASC2BIN () function for each random number (ASC code) composed of 16 bytes. After converting the binary code into 8 bytes, the modified random number sequence is generated through a plurality of logic circuits (XOR) as shown in FIG. 6A. The random sequence is then converted to 16-byte ASCII code via the BIN2ASC () function and output. At this time, the random number deformation process (P1) 215 shown in Figure 6a is only one embodiment, it is possible to apply a random number deformation process (P1) 215 composed of various circuits. In other words, it is possible to generate almost infinite number of random number transformation processes for converting the bit stream of the input random number, it is possible to select and use one of such random number transformation processes.

한편, 도 7을 참조하면, 비밀키 생성 프로세스(P2)(245)는 서버와 클라이언트에서 공통적으로 선택된 'm'개의 공통 부분 난수열(CS)이 입력될 경우 그 입력된 난수열의 개수와 관계없이 공통적으로 32byte의 비밀키를 생성하며, 도 7a에 이러한 비밀키 생성 프로세스(P2)(245)의 구성예가 나타나 있다. 도 7a에 도시된 예를 참조하면, 비밀키 생성 프로세스(P2)(245)는 우선 공통 부분 난수열(CS)에 포함되어 입력되는 'm'개의 16byte의 난수들에 대한 40byte 해쉬를 생성(H)한다. 그리고, 그 40byte의 해쉬를 5개의 8byte로 나누어(D) 비트 조작을 하는데, 우선 5개의 8byte의 아스키 코드들을 ASC2BIN()함수에 의해 4byte의 바이너리 코드로 변환한다. 그 4byte의 바이너리 코드 5개는 도 7a에 도시된 바와 같은 다수개의 논리회로(XOR)들을 거쳐 비트 조작된 후, 다시 BIN2ACS()함수에 의해 8byte의 ASC 코드 4개(A, B, C, D)가 생성된다. 따라서, 이들 4개의 ASC 코드들(A, B, C, D)을 결합하면 32byte의 비밀키가 생성되는 것이다.On the other hand, referring to Figure 7, the secret key generation process (P2) 245 is related to the number of the input random number sequence when the 'm' common partial random number sequence (CS) selected in common at the server and the client is input A 32-byte secret key is generated in common, and a configuration example of the secret key generation process (P2) 245 is shown in FIG. 7A. Referring to the example illustrated in FIG. 7A, the secret key generation process (P2) 245 first generates a 40-byte hash for 'm' 16-byte random numbers that are included in the common partial random number sequence (CS) (H). )do. The 40-byte hash is divided into five 8 bytes (D) for bit manipulation. First, five 8-byte ASCII codes are converted into four-byte binary codes by the ASC2BIN () function. The four 4-byte binary codes are bit-manipulated through a number of logic circuits (XORs) as shown in FIG. 7A, and then again the four 8-byte ASC codes (A, B, C, D) by the BIN2ACS () function. ) Is generated. Therefore, when these four ASC codes (A, B, C, D) are combined, a 32-byte secret key is generated.

이 때, 도 7a에 도시된 비밀키 생성 프로세스(P2)(245)의 경우도, 하나의 실시예에 불과한 것으로서, 다양한 회로로 변형하는 것이 가능하다.At this time, the secret key generation process (P2) 245 shown in FIG. 7A is also just one embodiment and can be modified into various circuits.

이상의 설명은 하나의 실시예를 설명한 것에 불과하고, 본 발명은 상술한 실시예에 한정되지 않으며 첨부한 특허청구범위 내에서 다양하게 변경 가능한 것이다. 예를 들어 본 발명의 실시예에 구체적으로 나타난 각 구성 요소의 형상 및 구조는 변형하여 실시할 수 있는 것이다.The above description is only for explaining one embodiment, and the present invention is not limited to the above-described embodiment and can be variously changed within the scope of the appended claims. For example, the shape and structure of each component specifically shown in the embodiment of the present invention can be modified.

상기와 같은 본 발명의 일회용 비밀키 생성 방법 및 그 장치는 서버와 클라이언트가 동일 비밀키 생성을 위한 동일 프로세스를 공유하여, 클라이언트와 서버가 정보의 전달이 이루어질 때, 그 동일 프로세스에 의해 서버 및 클라이언트 각 측에서 전달될 정보의 암호화 및 복호화를 수행할 동일 비밀키를 생성함으로써, 통신망을 통해 비밀키를 직접 송수신하지 않고도 서버와 클라이언트가 동일 비밀키를 공유할 수 있다는 효과가 있다. 따라서, 전화망의 도청이나 인터넷의 해킹 등에 의해 비밀키가 제3자에게 유출되는 것을 방지할 수 있는 것이다.In the method and apparatus for generating a disposable secret key of the present invention as described above, the server and the client share the same process for generating the same secret key, so that when the client and the server transfer information, the server and the client by the same process By generating the same secret key for encrypting and decrypting the information to be transmitted from each side, there is an effect that the server and the client can share the same secret key without directly transmitting and receiving the secret key through the communication network. Therefore, the secret key can be prevented from leaking to third parties due to eavesdropping on the telephone network, hacking on the Internet, or the like.

특히, 통신망을 통해 프로세스를 도청하는 것은 상당히 난해하므로, 상기 서버 및 클라이언트가 동일 프로세스를 공유하도록 하기 위해, 일측(예컨대, 서버)에서 생성된 프로세스를 통신망을 이용하여 전송하도록 구현하는 경우에도 비밀키에 대한 보안은 유지할 수가 있다.In particular, since eavesdropping a process through a communication network is quite difficult, a secret key may be implemented to transmit a process generated at one side (eg, a server) using a communication network so that the server and the client share the same process. Security can be maintained.

Claims (11)

서버와 클라이언트간 전달되는 정보의 암호화 및 복호화를 위한 일회용 비밀키 생성 방법에 있어서,In the one-time secret key generation method for encrypting and decrypting information transmitted between the server and the client, 서버와 클라이언트간 정보 전달 요청이 발생한 경우 임의의 난수열을 발생시켜, 그 난수열(N)을 클라이언트와 서버가 공유하도록 하는 제1 과정과,A first process of generating a random random sequence when a request for information transfer between the server and the client occurs, and sharing the random sequence N between the client and the server; 서버 및 클라이언트가 공유하고 있는 동일 난수 변형 프로세스(P1)에 의해, 서버와 클라이언트가 상기 난수열을 변형시킨 변형 난수열(Ms, Mc)을 각각 생성하는 제2 과정과,A second process of generating a modified random number sequence M s and M c by which the server and the client transform the random number sequence by the same random number modification process P1 shared between the server and the client, and 상기 서버 및 클라이언트가 통신망을 통해 상기 변형 난수열(Ms, Mc) 정보를 교환함으로써, 각 변형 난수열(Ms, Mc)의 일치성 여부를 확인하는 제3 과정과,A third process of checking whether the modified random number sequences M s and M c coincide by exchanging the modified random number sequences M s and M c through the communication network; 상기 제3 과정에서 각 변형 난수열(Ms, Mc)이 일치한다고 확인된 경우, 상기 서버 및 클라이언트가 해당 변형 난수열(Ms, Mc)중 공통 부분 난수열(CSs, CSc)을 각각 선택하는 제4 과정과,When it is confirmed that each modified random number sequence M s and M c matches in the third process, the server and the client share a common partial random number sequence CS s and CS c among the corresponding modified random number sequences M s and M c . 4th process of selecting each), 상기 서버 및 클라이언트가 공유하고 있는 동일 비밀키 생성 프로세스(P2)에 의해, 공통 부분 난수열(CSs, CSc)을 조작하여 동일 비밀키(KEYs, KEYc)를 각각 생성하는 제5 과정을 포함하는 것을 특징으로 하는 일회용 비밀키 생성 방법.A fifth step of generating the same secret key (KEY s , KEY c ) by manipulating the common partial random sequence (CS s , CS c ) by the same secret key generation process (P2) shared between the server and the client Disposable secret key generation method comprising a. 제1항에 있어서, 상기 제1 과정은The method of claim 1, wherein the first process is 다수개의 난수를 포함하는 난수열을 클라이언트, 서버 또는 별도의 난수 발생 장치에서 발생한 후, 통신망을 이용하여 상기 서버 및 클라이언트에게 전송하는 것을 특징으로 하는 일회용 비밀키 생성 방법.And generating a random number sequence including a plurality of random numbers from a client, a server, or a separate random number generator, and transmitting the random number sequence to the server and the client using a communication network. 제1항에 있어서, 상기 제2 과정은The method of claim 1, wherein the second process 서버가 난수 변형 프로세스(P1)를 생성하거나, 기 생성된 다수의 난수 변형 프로세스들 중 하나의 난수 변형 프로세스(P1)를 무작위로 선택한 후, 그 난수 변형 프로세스(P1)를 클라이언트에게 전송하는 과정을 더 포함하는 것을 특징으로 하는 일회용 비밀키 생성 방법.After the server generates a random number transformation process (P1) or randomly selects a random number transformation process (P1) of one of a plurality of pre-generated random number transformation processes, and sends the random number transformation process (P1) to the client Disposable secret key generation method characterized in that it further comprises. 제1항에 있어서, 상기 제3 과정은The method of claim 1, wherein the third process is 상기 서버 및 클라이언트가 상기 제2 과정에서 생성한 변형 난수열(Ms, Mc)에 대한 서로 다른 부분 난수열(Ss, Sc)을 각각 선택한 후, 그 부분 난수열(Ss, Sc)을 교환하여 그 부분 난수열(Ss, Sc)이 상대방 변형 난수열(Mc, Ms)에 각각 포함되는 지의 여부를 확인하는 것을 특징으로 하는 일회용 비밀키 생성 방법.After the server and the client select different partial random numbers (S s , S c ) for the modified random numbers (M s , M c ) generated in the second process, respectively, the partial random numbers (S s , S) c ) exchanging and checking whether the partial random number sequence (S s , S c ) is included in the other modified random number sequence (M c , M s ), respectively. 제1항 또는 제4항에 있어서, 상기 제3 과정은The method of claim 1 or 4, wherein the third process 상기 부분 난수열(Ss, Sc)을 교환하여 그 부분 난수열(Ss, Sc)이 상대방 변형난수열(Mc, Ms)에 각각 포함되는 지의 여부를 확인하는 과정을 일회 이상 수행하는 것을 특징으로 하는 일회용 비밀키 생성 방법.The partial random number sequence (S s, S c) to exchange with the part-random number sequence (S s, S c) is the other modified random number sequence than the process of confirming whether or not included, respectively (M c, M s) once Disposable secret key generation method, characterized in that performed. 제1항 또는 제4항에 있어서, 상기 제4 과정은The method of claim 1 or 4, wherein the fourth process 상기 서버 및 클라이언트가 각각 생성한 변형 난수열(Ms, Mc) 각각에서 상기 부분 난수열(Ss, Sc)을 모두 제거하고 남은 잔여 난수열을 상기 서버와 클라이언트의 공통 부분 난수열(CSs, CSc)로 선택하는 것을 특징으로 하는 일회용 비밀키 생성 방법.After removing all of the partial random numbers (S s , S c ) from each of the modified random numbers (M s , M c ) generated by the server and the client, the remaining partial random numbers sequence is a common partial random number sequence of the server and the client ( CS s , CS c ) The one-time secret key generation method characterized in that the selection. 제1항에 있어서, 상기 제5 과정은The method of claim 1, wherein the fifth process 서버가 상기 비밀키 생성 프로세스(P2)를 생성하거나, 기 생성된 다수의 비밀키 생성 프로세스들 중 하나의 비밀키 생성 프로세스(P2)를 무작위로 선택한 후, 그 비밀키 생성 프로세스(P2)를 클라이언트에게 전송하는 과정을 더 포함하는 것을 특징으로 하는 비밀키 생성 방법.After the server generates the secret key generation process (P2) or randomly selects a secret key generation process (P2) of one of a plurality of pre-generated secret key generation processes, the client generates the secret key generation process (P2). Secret key generation method further comprising the step of transmitting to. 통신망으로 연결된 외부 클라이언트와의 정보 송/수신 명령이 발생한 경우, 그 정보의 암호화 및 복호화를 위한 일회용 비밀키를 생성하는 장치에 있어서,An apparatus for generating a disposable secret key for encrypting and decrypting information when an information transmission / reception command with an external client connected to a communication network occurs, 해당 정보의 송/수신 대상이 되는 클라이언트와 데이터 송/수신을 수행하는 송/수신부와,A transmission / reception unit that performs data transmission / reception with a client that is the target of transmission / reception of the information, 일회용 비밀키 생성을 위해 클라이언트로부터 전송된 난수열(N)을 변형시키기 위한 난수 변형 프로세스(P1) 및 일회용 비밀키 생성을 위한 비밀키 생성 프로세스(P2)를 생성하고, 그 난수 변형 프로세스(P1) 및 비밀키 생성 프로세스(P2)를 해당 클라이언트에게 전송하는 프로세스 생성부와,Generate a random number modification process P1 for transforming the random number sequence N sent from the client for generation of the disposable secret key and the secret key generation process P2 for generating the disposable secret key, and the random number transformation process P1. And a process generating unit for transmitting the secret key generation process (P2) to the client, 상기 난수 변형 프로세스(P1)에 의거하여 상기 난수열(N)을 변형시켜 제1 변형 난수열(MS)을 생성하고, 그 제1 변형 난수열(MS)에 의한 일회용 비밀키 생성을 위해 필요한 부분 난수열을 생성하는 난수열 관리부와,Based on the random number deformation process (P1) to modify the random number sequence (N) to generate a first modified random number sequence (M S ), to generate a disposable secret key by the first modified random number sequence (M S ) A random sequence manager that generates a partial random sequence required; 상기 클라이언트로부터 상기 난수 변형 프로세스(P1)에 의한 난수열(N)의 변형 난수열인 제2 변형 난수열(MC) 정보를 수신하여, 제2 변형 난수열(MC)과 상기 제1 변형 난수열(MS)의 일치성 여부를 판별하는 난수열 비교부와,The second modified random number sequence M C , which is a modified random number sequence of the random number sequence N by the random number transformation process P1, is received from the client, thereby receiving a second modified random number sequence M C and the first modified sequence. A random sequence comparison unit for determining whether or not the random sequence (M S ) is identical, 상기 난수열 비교부의 판별 결과 제1 변형 난수열(MS)과 제2 변형 난수열(MC)이 일치하는 경우, 상기 비밀키 생성 프로세스(P2)에 의해 상기 제1 변형 난수열(MS)과 제2 변형 난수열(MC)의 공통 부분 난수열을 조작하여 일회용 비밀키를 생성하는 비밀키 생성부를 포함하는 것을 특징으로 하는 일회용 비밀키 생성 장치.As a result of the determination of the random number comparing unit, when the first modified random number sequence (M S ) and the second modified random number sequence (M C ) match, the first modified random number sequence (M S ) is performed by the secret key generation process (P2). And a secret key generator for generating a disposable secret key by manipulating a common partial random number sequence of the second modified random number sequence (M C ). 제8항에 있어서, 상기 프로세스 생성부는The method of claim 8, wherein the process generating unit 기 생성된 다수의 난수 변형 프로세스(P1) 및 비밀키 생성 프로세스(P2)들 중 각각 하나의 프로세스를 무작위로 선택하여 클라이언트에게 전송하는 것을 특징으로 하는 일회용 비밀키 생성 장치.One-time secret key generation device, characterized in that for each randomly selected one of the plurality of random number transformation process (P1) and the secret key generation process (P2) generated in advance to transmit to the client. 제8항에 있어서, 상기 난수열 관리부는The method of claim 8, wherein the random number management unit 상기 제1 변형 난수열(MS)과 상기 제2 변형 난수열(MC)의 일치성 여부를 판별하기 위해 클라이언트에게 전송될 제1 부분 난수열과, 상기 제1 변형 난수열(MS)과 상기 제2 변형 난수열(MC)이 일치하는 경우 제1 변형 난수열(MS)과 제2 변형 난수열(MC)의 공통 부분 난수열인 제2 부분 난수열을 생성하는 것을 특징으로 하는 일회용 비밀키 생성 장치.A first partial random number sequence to be transmitted to a client to determine whether the first modified random number sequence (M S ) and the second modified random number sequence (M C ) match each other; and the first modified random number sequence (M S ); When the second modified random number sequence (M C ) coincides, a second partial random number sequence, which is a common partial random sequence of the first modified random sequence (M S ) and the second modified random number sequence (M C ), is generated. Disposable secret key generation device. 제8항 또는 제10항에 있어서, 상기 난수열 비교부는The method of claim 8 or 10, wherein the random sequence comparison unit 상기 제2 변형 난수열(MC)에 상기 제1 부분 난수열이 포함되었음을 확인한 클라이언트로부터 상기 제1 부분 난수열과는 상이한 제2 변형 난수열(MC)의 부분 난수열인 제3 부분 난수열을 수신하여, 상기 제3 부분 난수열이 상기 제1 변형 난수열(MS)에 포함되는 경우 상기 제1 변형 난수열(MS)과 제2 변형 난수열(MC)이 일치한다고 판별하는 것을 특징으로 하는 일회용 비밀키 생성 장치.The second modified random number sequence partial random number sequence in the third part-random number sequence of (M C) of the first portion I from the client finds that it contains the sequence of the first partial random number sequence are different from the second modified random number sequence (M C) to receives the third partial random number sequence is the first modified random number sequence of the first variant, if included in the (M S) random number sequence (M S) and second modified random number sequence (M C) to determine that a match Disposable secret key generating device, characterized in that.
KR10-2001-0033971A 2001-06-15 2001-06-15 Method and apparatus for generating one-time secrete code KR100390526B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0033971A KR100390526B1 (en) 2001-06-15 2001-06-15 Method and apparatus for generating one-time secrete code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0033971A KR100390526B1 (en) 2001-06-15 2001-06-15 Method and apparatus for generating one-time secrete code

Publications (2)

Publication Number Publication Date
KR20020095776A true KR20020095776A (en) 2002-12-28
KR100390526B1 KR100390526B1 (en) 2003-07-07

Family

ID=27709484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0033971A KR100390526B1 (en) 2001-06-15 2001-06-15 Method and apparatus for generating one-time secrete code

Country Status (1)

Country Link
KR (1) KR100390526B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100737173B1 (en) * 2006-05-09 2007-07-10 경북대학교 산학협력단 One time passwrod generator and the authentication apparatus using said one time password generator
KR100763464B1 (en) * 2003-12-16 2007-10-04 김기호 Method of exchanging secret key for secured communication
KR100830969B1 (en) * 2006-04-21 2008-05-20 주식회사 프럼나우 Method and System for Implementing Financial Transactions Using OTP

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100763464B1 (en) * 2003-12-16 2007-10-04 김기호 Method of exchanging secret key for secured communication
KR100830969B1 (en) * 2006-04-21 2008-05-20 주식회사 프럼나우 Method and System for Implementing Financial Transactions Using OTP
KR100737173B1 (en) * 2006-05-09 2007-07-10 경북대학교 산학협력단 One time passwrod generator and the authentication apparatus using said one time password generator

Also Published As

Publication number Publication date
KR100390526B1 (en) 2003-07-07

Similar Documents

Publication Publication Date Title
US6105133A (en) Bilateral authentication and encryption system
US8401186B2 (en) Cloud storage data access method, apparatus and system based on OTP
CN100388244C (en) Method for long-distance changing of communication cipher code
EP1876748B1 (en) Privacy-preserving concatenation of strings
CN106790223B (en) Data transmission method, equipment and system
US20060195402A1 (en) Secure data transmission using undiscoverable or black data
KR101747888B1 (en) Method for generating an encryption/ decryption key
KR960701410A (en) METHOD FOR PROVIDING MUTUAL AUTHENTICATION OF A USER AND A SERVER ON A NETWORK
EP1876749B1 (en) Privacy-preserving substring creation
US20050033963A1 (en) Method and system for authentication, data communication, storage and retrieval in a distributed key cryptography system
CA2294170A1 (en) Bilateral authentication and encryption system
EP1079565A2 (en) Method of securely establishing a secure communication link via an unsecured communication network
JPH09312643A (en) Key sharing method and ciphering communication method
CN113098675B (en) Binary data encryption system and method based on polynomial complete homomorphism
KR100390526B1 (en) Method and apparatus for generating one-time secrete code
JPH08335208A (en) Method and system for proxy authorization
CN106972928B (en) Bastion machine private key management method, device and system
KR102377265B1 (en) Apparatus in network
KR101808313B1 (en) Method of encrypting data
CN112398818B (en) Software activation method and related device thereof
RU2819174C1 (en) Method of determining source of data packets in telecommunication networks
KR100458255B1 (en) Methode for key distribution using proxy server
KR102151309B1 (en) algorithm defense technology application method
US7327845B1 (en) Transmission of encrypted messages between a transmitter and a receiver utilizing a one-time cryptographic pad
CN117411727B (en) Encryption method, device and storage medium for symmetric encryption of communication transmission

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee