KR100674632B1 - Mobile Code Authentication Schemes that Permit Overlapping of Execution and Downloading - Google Patents

Mobile Code Authentication Schemes that Permit Overlapping of Execution and Downloading Download PDF

Info

Publication number
KR100674632B1
KR100674632B1 KR1020040055337A KR20040055337A KR100674632B1 KR 100674632 B1 KR100674632 B1 KR 100674632B1 KR 1020040055337 A KR1020040055337 A KR 1020040055337A KR 20040055337 A KR20040055337 A KR 20040055337A KR 100674632 B1 KR100674632 B1 KR 100674632B1
Authority
KR
South Korea
Prior art keywords
information
code
authentication
mobile terminal
node
Prior art date
Application number
KR1020040055337A
Other languages
Korean (ko)
Other versions
KR20060006370A (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 KR1020040055337A priority Critical patent/KR100674632B1/en
Publication of KR20060006370A publication Critical patent/KR20060006370A/en
Application granted granted Critical
Publication of KR100674632B1 publication Critical patent/KR100674632B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal

Abstract

본 발명은 무선을 통해 응용 서버로부터 모바일/무선 응용 프로그램 또는 데이터(자료)를 제공받아 설치/갱신/실행하기 위한 시스템에 있어서, 제공받는 응용프로그램 또는 데이터의 코드 인증 방법에 관한 것이다. The present invention relates to a method for authenticating a code of a received application or data in a system for receiving, installing, updating, and executing a mobile / wireless application or data (data) from an application server via wireless.

본 발명은 응용 프로그램을 모바일에 전송시 여러 개의 코드 청크(조각)으로 나누어 전송하고, 모바일 장치에서 나뉘어 전송되는 여러 개의 코드 청크를 다운로드받는 즉시 검증하여 수행할 수 있는 효율적인 코드 인증 방법을 제공하고자 하는 것으로, 각각 해쉬 체인 기법과 인증 트리 기법을 기반으로 하며, 코드 조각을 다운받았을 때, 즉시 검증 작업을 수행해서 위조 여부를 검사할 수 있으며, 검사 후 코드 조각을 수행하여 다운로드와 인증 및 수행을 병행할 수 있도록 하는 것을 특징으로 하는 것이다.The present invention is to provide an efficient code authentication method that can be performed by transmitting the application divided into a plurality of code chunks (pieces) when transmitting to the mobile, and immediately verify the plurality of code chunks that are divided and transmitted from the mobile device to be downloaded immediately. It is based on the hash chain technique and the authentication tree technique, respectively, and when the code snippet is downloaded, it can be immediately verified for forgery by checking the forgery. It is characterized by that it can be done.

무선 통신, 인증, 보안, 모바일 응용, 모바일 코드, 유비쿼터스 컴퓨팅 보안Wireless Communications, Authentication, Security, Mobile Applications, Mobile Code, Ubiquitous Computing Security

Description

다운로드와 수행의 병행을 허용하는 이동 단말 장치 코드 인증 방법{Mobile Code Authentication Schemes that Permit Overlapping of Execution and Downloading}Mobile Code Authentication Schemes that Permit Overlapping of Execution and Downloading}

도 1은 본 발명 이동 단말장치 코드 인증방법의 실행을 나타낸 구성도.1 is a block diagram showing the execution of the mobile terminal device code authentication method of the present invention.

도 2는 본 발명에 있어서, 생성되는 인증트리의 일 예를 나타낸 도면.2 is a view showing an example of an authentication tree generated in the present invention.

도 3은 본 발명에 있어서, 인증 트리 생성 알고리즘을 나타낸 도면.3 is a diagram showing an authentication tree generation algorithm in the present invention.

(참고 문헌)(references)

[1] Chandra Krintz, Brad Calder, Urs Hㆆlzle, Reducing Transfer Delay Using Java Class File Splitting and Prefetching, In Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languates, and Applications, pp. 276-291, 1999.[1] Chandra Krintz, Brad Calder, Urs H ㆆ lzle, Reducing Transfer Delay Using Java Class File Splitting and Prefetching, In Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languates, and Applications, pp. 276-291, 1999.

[2] Emin G. Sirer, Arthur J. Gregory, and Brian N. Bershad, A Practical Approach for Improving Startup Latency in Java Applications, In Workshop on Compiler Support for System Software, pp. 47-55, 1999.[2] Emin G. Sirer, Arthur J. Gregory, and Brian N. Bershad, A Practical Approach for Improving Startup Latency in Java Applications, In Workshop on Compiler Support for System Software, pp. 47-55, 1999.

[3] Chandra Krintz, Brad Calder, Han Bok Lee, and Benjamin G. Zorn, Overlapping Execution with Transfer Using Non-Strict Execution for Mobile Programs, In Proceedings of the 8th International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 159-169, 1998.[3] Chandra Krintz, Brad Calder, Han Bok Lee, and Benjamin G. Zorn, Overlapping Execution with Transfer Using Non-Strict Execution for Mobile Programs, In Proceedings of the 8th International Conference on Architectural Support for Programming Languages and Operating Systems, pp . 159-169, 1998.

[4] Dennis Lee, Jean-Loup Baer, Brian Bershad, and Tom Anderson, Reducing Startup Latency in Web and Desktop Applications, In Proceedings of the 3rd USENIX Windows NT Symposium, pp. 165-174, 1999.[4] Dennis Lee, Jean-Loup Baer, Brian Bershad, and Tom Anderson, Reducing Startup Latency in Web and Desktop Applications, In Proceedings of the 3rd USENIX Windows NT Symposium, pp. 165-174, 1999.

[5] Tsutomu Gamou, A Working-Set Approach to Reduce the Download-Execution Time of Mobile Programs, In Proceedings of the 22nd International Conference on Distributed Computing Systems, 2002, pp. 239-248, 2002.[5] Tsutomu Gamou, A Working-Set Approach to Reduce the Download-Execution Time of Mobile Programs, In Proceedings of the 22nd International Conference on Distributed Computing Systems, 2002, pp. 239-248, 2002.

[6] Gray McGraw and Ed Felten, Securing Java: Getting Down to Business with Mobile Code, John Wiley & Sons, Inc., 1999.[6] Gray McGraw and Ed Felten, Securing Java: Getting Down to Business with Mobile Code, John Wiley & Sons, Inc., 1999.

[7] Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone, Handbook of Applied Cryptography, CRC Press, 1997.[7] Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone, Handbook of Applied Cryptography, CRC Press, 1997.

[8] Ralph C. Merkle, A Certified Digital Signature, In CRYPTO'89, pages 218-238, 1989.[8] Ralph C. Merkle, A Certified Digital Signature, In CRYPTO'89, pages 218-238, 1989.

본 발명은 무선을 통해 응용 서버로부터 모바일/무선 응용 프로그램 또는 데이터(자료)를 제공받아 설치/갱신/실행하기 위한 시스템에 있어서, 제공받는 응용프로그램 또는 데이터의 코드 인증 방법에 관한 것이다.The present invention relates to a method for authenticating a code of a received application or data in a system for receiving, installing, updating, and executing a mobile / wireless application or data (data) from an application server via wireless.

무선 네트워크는 대역폭이 작고 전송 에러 및 손실이 빈번히 발생하므로 코드를 완전히 전송받은 후 실행하는 방식은 많은 지연 시간을 요구한다. Because wireless networks have low bandwidth and frequently experience transmission errors and losses, the execution of the code after it is completely transmitted requires a lot of delay.

따라서, 지연 시간을 줄이기 위해 코드의 전송이 완료되기 전에 전송 받은 일부 코드로 수행을 시작하는 방법이 다방면으로 연구되고 있으며 [참고문헌 1,2,3,4,5], 일례로 자바 애플릿은 클래스 별로 코드를 다운로드 후 수행한다 [참고문헌 1].Therefore, in order to reduce the delay time, the method of starting execution with some code received before the code is completed has been studied in various ways. [Refs. 1,2,3,4,5] For example, a Java applet is a class. Download and run the code separately [Ref. 1].

한편, 상업적인 모바일 코드 다운로드 서비스가 널리 사용되기 위해서는 보안이 무엇보다도 중요하다. On the other hand, security is most important for the widespread use of commercial mobile code download services.

일례로, 코드 제공자와 사용자는 임의의 해커가 다운로드되는 코드를 변경하거나 바이러스를 삽입하는 행위를 방지하고 싶어할 것이며, 사용자는 다운로드받은 코드가 코드 제공자가 작성한 것임을 확인하고 싶어할 것이다. 이를 위해, 다운로드된 코드에 대해 코드 제공자의 서명을 확인함으로써 코드를 검증하는 코드 인증 기법이 제안되었다. In one example, the code provider and the user would like to prevent any hacker from changing the downloaded code or inserting a virus, and the user would like to confirm that the downloaded code was written by the code provider. To this end, a code authentication scheme has been proposed that verifies the code by verifying the signature of the code provider against the downloaded code.

일반적으로, Active-X에 주로 적용되는 마이크로소프트 사의 Authenticode, 썬사의 자바 코드 서명 기법 등이 널리 사용되고 있다 [참고문헌 6].In general, Microsoft's Authenticode and Sun's Java code signing techniques, which are mainly applied to Active-X, are widely used [Ref. 6].

하지만, 다운로드와 실행이 병행되는 환경에서 코드 인증 기법을 적용 시, 모바일 장치는 모든 코드 청크(조각)를 다운로드 받기 전에는 전자 서명을 확인할 수 없으며, 검증되지 않은 코드를 실행하는 것은 안전하지 않기 때문에 다운로드와 수행을 병행할 수 없게 된다. However, when applying the code authentication technique in a concurrent download and execution environment, the mobile device cannot verify the digital signature until all code chunks (fragments) have been downloaded, and because it is not safe to run unvalidated code, You will not be able to perform the practice together.

본 발명에서는 응용 프로그램을 모바일에 전송시 여러 개의 코드 청크(조각)으로 나누어 전송하고, 모바일 장치에서 나뉘어 전송되는 여러 개의 코드 청크를 다운로드받는 즉시 검증하여 수행할 수 있는 효율적인 코드 인증 방법을 제공하고자 하는 것으로, 즉 각 코드 청크의 검증 작업이 코드 전체를 다운로드하기 전에 이루어질 수 있도록 하며, 검증 작업시 청크의 위/변조 여부를 확인할 수 있도록 하는 코드 인증 방법을 제안하고자 한 것을 목적으로 한다. The present invention is to provide an efficient code authentication method that can be performed by transmitting the application divided into a plurality of code chunks (pieces) when transmitting to the mobile, and immediately verify the multiple code chunks that are divided and transmitted from the mobile device to perform the download. That is, the purpose of the present invention is to propose a code authentication method that enables verification of each chunk of code before downloading the entire code, and to check whether the chunk is forged / modified during verification.

본 발명은 각각 해쉬 체인 기법과 인증 트리 기법을 기반으로 하며, 코드 조각을 다운받았을 때, 즉시 검증 작업을 수행해서 위조 여부를 검사할 수 있으며, 검사 후 코드 조각을 수행하여 다운로드와 인증 및 수행을 병행할 수 있도록 하는 것을 특징으로 한다. The present invention is based on the hash chain technique and the authentication tree technique, respectively, and when a code snippet is downloaded, it can immediately verify whether a forgery is performed by performing a verification task, and perform a download and authentication and execution by performing a code snippet after the inspection. Characterized in that it can be parallel.

즉, 본 발명은 청크를 전송하는 순서가 미리 고정되어 있는 경우와 프로그램의 실행 도중 결정되는 경우의 2 가지에 대해 각각 해쉬 체이닝(hash chaining) 기법과 인증 트리(authentication trees) 기법을 기반으로 한 모바일 코드 인증 기법 을 제안한 것이다. In other words, the present invention is based on the hash chaining scheme and authentication trees scheme for the two cases where the order of chunk transmission is fixed in advance and determined during the execution of the program. Code authentication scheme is proposed.

본 발명은, 응용프로그램을 여래 개의 청크(조각)으로 나누는 과정과, 생성된 청크에 대해 인증 정보(authentication information)를 생성하는 과정과, 각 청크 조각과 그 청크에 대한 인증 정보로 부터 전송할 정보를 생성하고, 생성된 정보를 이동 단말장치에 전송하는 과정을 포함하는 응용 제공자 서버의 전송 코드 생성과정과,The present invention provides a process of dividing an application into multiple chunks, generating authentication information for the generated chunks, and information to be transmitted from each chunk piece and the authentication information for the chunks. Generating a transmission code of an application provider server, the method comprising generating and transmitting the generated information to a mobile terminal;

응용 제공자로부터 제공받은 청크와 인증정보를 다운로드 받는대로, 청크를 검증(verification)하는 과정과, 검증된 청크를 수행하는 과정을 포함하는 이동 단말 장치의 응용프로그램 코드 인증과정으로 이루어지는 것을 특징으로 한다. As soon as the chunk and the authentication information provided from the application provider are downloaded, the program code authentication process of the mobile terminal device includes verifying the chunk and performing the verified chunk.

모바일 장치에서 응용 프로그램 코드를 다운로드 받아 수행할 때, 코드 인증(authentication)이 매우 중요하다. Code authentication is very important when downloading and performing application code on a mobile device.

본 발명은 모바일 코드의 수행 시간 지연을 줄이기 위해 통상 전체 코드가 다운로드 되기 전에 수신된 일부 코드로 수행이 시작된다. In order to reduce the execution time delay of the mobile code, the present invention usually starts with some code received before the entire code is downloaded.

상기한 특징을 갖는 본 발명에서는 전송될 코드 청크의 순서가 미리 결정되어 있는 경우와 프로그램 실행 도중 동적으로 결정되는 2 가지 경우에 대하여, 일부 코드로 수행을 시작하면서도 인증이 가능한 2 가지 방법을 제시한다. In the present invention having the above-described features, two methods that can be authenticated while starting execution with some codes are provided for two cases in which the order of code chunks to be transmitted is predetermined and two cases dynamically determined during program execution. .

코드 청크의 전송 순서는 프로그램에 따라 다르며, 비교적 간단한 프로그램의 경우 프로그램의 실행 경로(execution path)가 일정하기 때문에 미리 결정될 수 있으며 응용 제공 서버의 프로그램 제작자가 미리 프로그램에 설정하여 놓을 수 있 다 (경우 1). 하지만 비교적 복잡한 프로그램의 경우 사용자의 입력, 주어진 환경에 따라 수행해야할 동적으로 코드 청크가 결정되는 경우가 있으며, 이 때 모바일 장치는 수행해야할 코드 청크를 그때 그때 (on-demand) 요청하게 된다 (경우 2). The order of code chunks varies from program to program, and in the case of a relatively simple program, the execution path of the program is constant, so it may be determined in advance, and the program producer of the application providing server may set the program in advance. One). However, in the case of relatively complex programs, code chunks are determined dynamically according to user input and given environment, and the mobile device then requests on-demand code chunks to be executed (case 2). ).

이와 같은 두 가지 경우에 대한 본 발명을 첨부된 도면에 도시된 실시예를 참조하여 상세히 설명하면 다음과 같다.The present invention for these two cases will be described in detail with reference to the embodiments shown in the accompanying drawings.

(A). 코드 청크의 전송순서가 미리 결정되어 있는 경우(A). When the order of code chunks is determined in advance

모바일 코드 M이 n 개의 코드 청크 M0, M1, ..., Mn-1으로 구성되어 있다고 가정하고, 코드 청크를 전송하는 순서는 M0, M1, ..., Mn-1으로 미리 정해져 있다고 가정한다. Assuming that the mobile code M consists of n code chunks M 0 , M 1 , ..., M n-1 , the order of transmitting the code chunks is M 0 , M 1 , ..., M n-1 Assume that it is predetermined.

여기서, AP : 응용 제공자 서버(Application Provider)Where AP: Application Provider (Application Provider)

MH : 모바일 장치(Mobile Host)        MH: Mobile Host

h(x) : 일방향 해쉬함수(one-way hash function)(참고문헌7)        h (x): one-way hash function (Ref. 7)

SigA(M) : 데이터 M을 서명자 A가 전자서명한 서명값이고, 이와 같은 전자서명값은 모바일 장치(MH)에서 서명자 A의 공개키를 이용하여 SigA(M)을 복호화한 값과 M이 일치하면 M이 성공적으로 검증된다.Sig A (M): A signature value obtained by signer A digitally signing data M. The digital signature value is a value obtained by decrypting Sig A (M) using M's public key in mobile device (MH) and M. If this matches, M is successfully verified.

C||D : 데이터 C와 D를 연결(Concatenate)시킨 것을 의미         C || D: Concatenates data C and D

먼저, 응용제공자 서버(AP)는 임의의 값을 가지는 Hn을 생성한다. First, the AP server generates H n having an arbitrary value.

그 후, 임의의 값 Hn을 이용하여 코드 청크 M0, M1, ..., Mn-1에 대하여 다음의 정보를 생성한다: Hi=h(Hi+1||Mi) (0≤i≤n-1). Then, using the random value H n , generate the following information for the code chunks M 0 , M 1 , ..., M n-1 : H i = h (H i + 1 || M i ) (0 ≦ i ≦ n−1).

응용제공자 서버(AP)는 H0을 서명하여 SigAP(H0)을 생성한 후, 생성된 전자서명값 SigAP(H0)을 포함하는 다음 정보를 모바일 장치(MH)에게 순서대로 보낸다.Application provider server (AP) is sent as the next information including After generating the signature Sig AP (H 0) to H 0, the generated digital signature value Sig AP (H 0) to the mobile device (MH) sequence.

(SigAP(H0), H0), (M0, H1), (M1, H 2), ..., (Mn-1, Hn). (Sig AP (H 0 ), H 0 ), (M 0 , H 1 ), (M 1 , H 2 ), ..., (M n-1 , H n ) .

한편 모바일 장치(MH)는 (SigAP(H0), H0)를 전송 받아 응용제공자(AP)의 공개키를 이용하여 복호화하여 H0를 비교하여 H0를 검증한다. 그 후, MH는 (M0, H1)를 전송 받아 해쉬 함수를 이용하여 H'0=h(H1||M0)를 계산하고, 계산된 H' 0를 H'0 와 비교하여 H1, M0를 검증하게 되는 바, Meanwhile, The mobile device (MH) is verified for the H 0 H 0 as compared to decoding the (AP Sig (H 0), H 0) transmitted by using the received public key of the application provider (AP). Then, MH receives (M 0 , H 1 ) and calculates H ' 0 = h (H 1 || M 0 ) using a hash function, and compares the calculated H' 0 with H ' 0. 1 , M 0 is verified,

H'0=H0이면 H1, M0은 검증된 것이다. If H ' 0 = H 0 , H 1 , M 0 is verified.

검증이 완료되면, 모바일 장치(MH)는 검증된 데이터 M0를 2차 메모리에 저장한다. When the verification is completed, the mobile device MH stores the verified data M 0 in the secondary memory.

모바일 장치(MH)에서는 이와 같은 과정을 전송받은 정보(M1, H2), ..., (Mn-1 , Hn)에 대하여서도 반복 진행하여 검증된 데이터를 메모리에 저장한다.The mobile device MH repeats the information M 1 , H 2 ,..., And M n-1 , H n that have received this process, and stores the verified data in the memory.

즉, (1≤i≤n-1)에 대하여 모바일 장치(MH)는 (Mi, Hi+1)을 전송받아 H'i=h(Hi+1||Mi)를 계산하며 H'i=Hi을 확인하여 Mi를 검증한 후, Mi를 저장한다.That is, for (1≤i≤n-1), the mobile device MH receives (M i , H i + 1 ) and calculates H ′ i = h (H i + 1 || M i ) check the 'i = H i and stores, M i Having examined the M i.

(B). 코드 청크의 전송 순서가 실행도중 결정되는 경우 (B). The order in which the chunks are sent is determined during execution.

(B1). 인증트리(B1). Authentication Tree

먼저, 코드 청크의 전송순서가 실행도중 결정되는 경우에 있어서의 코드 청크 인증방법을 설명하기에 앞서, 이와 같은 경우에 사용하는 인증트리[참고문헌 8]에 대하여 먼저 설명한다.  First, before describing the code chunk authentication method in the case where the transmission order of the code chunks is determined during execution, the authentication tree [Ref. 8] used in such a case will be described first.

서명자 (signer) S와 검증자 (verifier) V가 존재하고, 서명자(S)는 검증자(V)에게 데이터 M0, M1, ...,

Figure 112004031415484-pat00001
(d≥0) 중 임의의 Mi (0≤i<2d)를 보내고 검증자는 받은 데이터를 검증하려고 한다고 가정한다. There is a signer S and a verifier V, and the signer S gives the verifier V the data M 0 , M 1 , ...,
Figure 112004031415484-pat00001
Suppose any M i of ( d ≧ 0) (0 ≦ i <2 d ) and the verifier wants to verify the received data.

이를 위해, 서명자(S)는 M0, M1, ...,

Figure 112004031415484-pat00002
에 대해 인증 트리를 구성한 후, 검증자(V)에게 임의의 Mi와 인증 부가 정보 (다음의 데이터 전송 부분에서 설명)를 보내며, 검증자(V)는 이를 이용하여 Mi를 검증할 수 있다. For this purpose, the signer (S) is M 0 , M 1 , ...,
Figure 112004031415484-pat00002
After constructing the authentication tree for, the verifier V sends arbitrary M i and authentication side information (described in the following data transmission section), and the verifier V can use this to verify M i . .

인증 정보 생성: 인증 트리는 변형된 완전 이진 트리로써, 도 2에서와 같이, 각 잎 노드(node)에 대해 데이터 Mi (0≤i<2d)가 대응된다. Authentication information generation: The authentication tree is a modified full binary tree, and as shown in FIG. 2, data M i (0 ≦ i <2 d ) corresponds to each leaf node.

인증 트리의 각 노드 e에는 하나의 값 E가 연관되어 있다. Each node e in the authentication tree has one value E associated with it.

e가 잎 노드인 경우, ei-i(e0-0)(e1∼1)(e2∼2)(e3∼3 )로 표시하며 이에 연관된 값은 Ei∼i=h(Mi)로 설정한다. If e is a leaf node, e ii (e 0-0) ( e 1~1) (e 2~2) represented by (e 3~3) and its associated value E i~i = h (M i) Set to.

e가 내부 노드인 경우, ek∼k' (k<k')로 표시하며 자식 노드가 각각 ek1∼k1', ek2∼k2' (k1≤k1'<k2≤k2')이라면 k=k1 , k'=k2'로 설정한다. If e is an internal node, it is represented by e k to k ' (k <k'), and the child nodes are e k1 to k1 ' and e k2 to k2' (k 1 k 1 '<k 2 k 2 '). ), Set k = k 1 and k '= k 2 '.

또한, ek∼k'에 연관된 값은 Ek∼k'=h(Ek1∼k1'||Ek2∼k2')이며, Further, the value associated with e k to k ' is E k to k' = h (E k1 to k1 ' || E k2 to k2' ),

예를 들면, 도 2에서 내부 노드 e0∼1에 대하여 잎 노드 e0∼1,e0∼0이므로 E0∼1=h(E0∼0||E1∼1)이다. For example, the leaf nodes e 0-1 and e 0-0 with respect to the internal nodes e 0-1 are E 0 -1 = h (E 0 -0 || E 1-1 ).

우리는 노드 e에서 조상 노드 e'까지 경로 상에 있는 각 노드의 모든 형제 노드와 연관된 값의 집합을 Siblings(e, e')라고 부르며, 일례로, 도 2에서 Siblings(e1∼1, e0∼3)={E0∼0, E2∼3}이다. We call Siblings (e, e ') the set of values associated with all sibling nodes of each node in the path from node e to ancestor node e', for example Siblings (e 1-1 , e in FIG. 0 to 3) = a {E 0~0, E 2~3}.

인증 트리의 생성 방법은 도 3에 도시된 바와 같은 알고리즘 1에 나와있다. The method of generating the authentication tree is shown in Algorithm 1 as shown in FIG.

데이터 전송: 임의의 i (0≤i≤

Figure 112004031415484-pat00003
)에 대하여 서명자는 검증자에게 전자서명정보와 i에 대하여 경로상에 있는 각 노드의 모드 형제노드와 연관된 값의 집합 정보를 포함하는 (Mi, SigS(E0∼
Figure 112004031415484-pat00004
), Siblings(ei∼i, e0∼
Figure 112004031415484-pat00005
))을 전송한다. Data transfer: any i (0≤i≤
Figure 112004031415484-pat00003
For signer, the signer contains the digital signature information and the set of values associated with the mode sibling node of each node in the path for i (M i , Sig S (E 0 ~)
Figure 112004031415484-pat00004
), Siblings (e i to i, e 0 to
Figure 112004031415484-pat00005
Send)).

여기서 Mi는 검증자가 수신하여 검증해야할 데이터이며, 나머지는 검증에 필요한 인증 부가 정보이다.M i is data to be received and verified by the verifier, and the rest is authentication additional information required for verification.

데이터 검증: Mi를 검증하려면 인증 부가 정보를 이용하여 해당 잎 노드 ei∼i부터 루트 노드까지의 경로 상에 있는 각 노드에 연관된 값을 구한 후, 루트 노드 와 연관된 값에 대한 서명값인 SigS(E0∼

Figure 112004031415484-pat00006
)을 검증해야하며 다음과 같은 절차를 따른다. Data Verification: a signature value for the value associated with the root node after obtaining the values associated with each node on the path from the leaf nodes to verify the i~i e M i by using the authentication information added to the root node Sig S (E 0-
Figure 112004031415484-pat00006
), And follow the procedure below.

먼저, Siblings(ei, e0∼

Figure 112004031415484-pat00007
)={E1, E2, E3, ..., Ek, ..., Ed}로 나타낼 수 있으며, Ek는 앞에서 언급한 경로 상에 있는 노드 중, 레벨 k (1≤k≤d)에 있는 노드의 형제 노드에 연관된 값이다. First, Siblings (e i, e 0 to
Figure 112004031415484-pat00007
) = {E 1 , E 2 , E 3 , ..., E k , ..., E d }, where E k is the level k (1≤k among the nodes on the path mentioned above). Is the value associated with the sibling node of the node at &lt; = d).

우선, 검증자(V)는 경로 중 레벨 d에 있는 잎 노드 ei∼i에 연관된 값 E'i∼i=h(Mi)를 구한다. First, the verifier (V) obtains the value E 'i~i = h (M i ) associated with the leaf node e i~i in the level of the path d.

경로 상의 노드 중 레벨 k-1에 있는 내부 노드에 연관된 값은 경로 상의 노드 중 레벨 k에 있는 노드에 연관된 값과 Ek를 이용하여 구할 수 있으며, k 값을 d부터 1까지 차례로 바꾸어 경로 상에 있는 각 노드에 연관된 값을 모두 구한다. The value associated with the internal node at level k-1 among the nodes on the path can be obtained by using E k and the value associated with the node at level k among the nodes on the path. Get all the values associated with each node in the table.

그 후, 서명자(S)의 공개키를 이용하여 SigS(E0∼

Figure 112004031415484-pat00008
)을 복호한 값과 루트 노드와 연관된 값인 E'0∼
Figure 112004031415484-pat00009
이 일치하면 E'0∼
Figure 112004031415484-pat00010
이 성공적으로 검증된 것이며 일방향 해쉬 함수의 성질에 따라 E'0∼
Figure 112004031415484-pat00011
를 계산할 때 사용한 모든 값들이 검증된 것이고, 따라서 Mi가 성공적으로 검증된 것이다.Thereafter, using the public key of the signer S, Sig S (E 0 to E).
Figure 112004031415484-pat00008
) And the value associated with the root node, E ' 0 to
Figure 112004031415484-pat00009
If this matches, E ' 0 to
Figure 112004031415484-pat00010
It will have been successfully validated by the nature of the one-way hash function E '0~
Figure 112004031415484-pat00011
All the values used to calculate are verified, and therefore M i is successfully verified.

도 2의 예를 들어 설명하면 다음과 같다.Referring to the example of Figure 2 as follows.

도 2에서는 잎 노드가 4 (=22) 개로 구성된 인증 트리를 보여주고 있다. Figure 2 shows an authentication tree consisting of 4 (= 2 2 ) leaf nodes.

데이터는 M0, M1, M2 그리고, M3이며, 잎 노드에 연관된 값들은 각각 E0∼0=h(M0), E1∼1=h(M1), E2∼2=h(M2), 그리고 E3∼3=h(M3)이다. The data are M 0 , M 1 , M 2 and M 3 , and the values associated with the leaf nodes are E 0-0 = h (M 0 ), E 1-1 = h (M 1 ), E 2-2 = h (M 2 ) and E 3 to 3 = h (M 3 ).

또한, 내부 노드와 연관된 값은 E0∼1=h(E0∼0||E1∼1), E2∼3=h(E 2∼2||E3∼3), 그리고 E0∼3=h(E0∼1||E2∼3)으로 계산된다. Further, the value associated with the internal node E 0~1 = h (E 0~0 || E 1~1), E 2~3 = h (E 2~2 || E 3~3), and E 0~ 3 = h (E 0-1 || E 2-3 ).

M2를 검증하기 위해 필요한 인증 부가 정보는 SigS(E0∼3)과 Siblings(e 2∼2, e0∼3)={E3∼3,E0∼1}이며, M2를 검증하는 방법은 다음과 같다.The authentication side information necessary for verifying the M 2 is Sig S (E 0~3) and Siblings (e 2~2, e 0~3) = {E 3~3, E 0~1}, verifying the M 2 Here's how.

먼저, 데이터 M2의 잎 노드 e2~2에 연관된 값 E'2∼2=h(M2)를 계산한 후 E3∼3을 이용하여 E'2∼3=h(E'2∼2||E3∼3)을 계산한다. First, the value E ' 2 to 2 = h (M 2 ) associated with the leaf nodes e 2 to 2 of the data M 2 is calculated and then E' 2 to 3 = h (E ' 2 to 2 ) using E 3 to 3 . || E 3-3 ) is calculated.

E0∼1과 E'2∼3을 가지고 E'0∼3=h(E0∼1||E'2∼3)을 만들 수 있으며, SigS(E0∼3)를 공개키로 복호화한 값과 E'0∼3이 같은지 확인하여 M2를 검증한다.E ' 0 ~ 3 = h (E 0 ~ 1 || E' 2 ~ 3 ) can be made with E 0 ~ 1 and E ' 2 ~ 3 , and Sig S (E 0 ~ 3 ) is decrypted with public key. Verify M 2 by confirming that the value and E ' 0 to 3 are equal.

(B2). 인증 트리 기법을 이용한 모바일 코드 인증 방법(B2). Mobile Code Authentication Method Using Authentication Tree Method

먼저 모바일 코드 M이 같은 크기의 n (=2d) 개의 코드 청크 M0, M1, ...,

Figure 112004031415484-pat00012
로 구성되어 있다고 가정하고, 코드 청크를 전송하는 순서는 다운로드시 모바일 장치(MH)에 의해 동적으로 결정된다고 가정한다.First, mobile code M has n (= 2 d ) code chunks of the same size M 0 , M 1 , ...,
Figure 112004031415484-pat00012
Assume that the order of transmitting code chunks is dynamically determined by the mobile device (MH) at the time of download.

이와 같은 경우에 대한 모바일 코드 인증 방법은 다음과 같은 과정에 의해 동작한다.  The mobile code authentication method for such a case operates by the following process.

우선, 응용제공자 서버(AP)는 M에 대한 코드 청크 M0, M1, ...,

Figure 112004031415484-pat00013
에 대해 앞서 설명한 바와 같은 방법으로 인증 트리 A를 생성한다. First, the provider server (AP) is responsible for the code chunks M 0 , M 1 , ...,
Figure 112004031415484-pat00013
Generate an authentication tree A in the same manner as described above.

그 후, 응용제공자 서버(AP)는 생성된 인증트리 A의 루트 노드에 연관된 값 E0∼2d-1를 서명하여 전자서명정보 SigAP(E0∼

Figure 112004031415484-pat00014
)을 생성한다. Thereafter, the application provider server (AP) signs the value E 0-2 d- 1 associated with the root node of the generated authentication tree A, thereby digital signature information Sig AP (E 0-).
Figure 112004031415484-pat00014
)

모바일 장치(MH)가 Mi (0≤i<2d)를 요청할 때마다, 응용제공자 서버(AP)는 (Mi, Siblings(ei∼i, e0∼

Figure 112004031415484-pat00015
), SigAP(E0∼
Figure 112004031415484-pat00016
))을 전송한다. Each time the mobile device (MH) requests the M i (0≤i <2 d) , application provider server (AP) is a (M i, Siblings (e i~i , e 0~
Figure 112004031415484-pat00015
), Sig AP (E 0-
Figure 112004031415484-pat00016
Send)).

이후 모바일 장치(MH)에서는 앞서 설명한 바와 같은 방법으로 Mi를 검증할 수 있게 된다.After that, the mobile device MH can verify M i in the same manner as described above.

이 방식은 인증 트리 기법을 그대로 사용하므로 안전성이 보장되고 간단하지만, 매 코드 청크를 전송할 때마다 하나의 서명값과 log n 개의 해쉬 값을 전송해야하는 단점이 있다. This method uses the authentication tree technique as it is, so it is safe and simple. However, each signature chunk is sent with one signature value and log n hash values.

반면, 인증 트리에서 Siblings(ei∼i, e0∼

Figure 112004031415484-pat00017
), SigAP(E0∼
Figure 112004031415484-pat00018
)을 이용하여 Mi (0≤i<2d)를 검증하면, 트리 내 Mi에 대응하는 잎 노드 ei∼i 에 연관된 값 Ei∼i는 물론 ei∼i의 모든 조상 노드들에 연관된 값들도 모두 검증될 뿐만 아니라, Siblings(ei∼i, e0∼
Figure 112004031415484-pat00019
)들도 모두 검증된다는 장점도 있다.On the other hand, Siblings (e i to i , e 0 to
Figure 112004031415484-pat00017
), Sig AP (E 0-
Figure 112004031415484-pat00018
) To all ancestor nodes of M i (0≤i leaf node associated with the e value i~i i~i E, as well as e i~i corresponding to <2 d), in the tree M i when verifying using Not only the associated values are verified, but Siblings (e i to i , e 0 to
Figure 112004031415484-pat00019
) Also has the advantage of being verified.

다음은 이 성질을 이용한 개선된 코드 인증 방법을 제안한다.Next, we propose an improved code authentication method using this property.

(B3). 인증 트리 기법을 이용한 모바일 코드 인증 방법의 다른 실시예. (B3). Another embodiment of a mobile code authentication method using an authentication tree technique.

우선, 응용 제공자 서버(AP)는 M에 대한 코드 청크 M0, M1, ...,

Figure 112004031415484-pat00020
에 앞서 설명한 바와 같은 방법으로 인증 트리 A를 생성한다.(S-1) First, the application provider server (AP) is responsible for the code chunks M 0 , M 1 , ...,
Figure 112004031415484-pat00020
Authentication tree A is generated in the same manner as described above. (S-1)

이 후, 응용제공자 서버(AP)는 생성된 인증트리 A의 루트 노드에 연관된 값 E0∼

Figure 112004031415484-pat00021
를 서명하여 SigAP(E0∼
Figure 112004031415484-pat00022
)을 생성한다.(S-2) Subsequently, the application server (AP) determines a value E 0 to associated with the root node of the generated authentication tree A.
Figure 112004031415484-pat00021
Sign Sig AP (E 0∼
Figure 112004031415484-pat00022
(S-2)

응용제공자 서버와 모바일장치(AP/MH)는 검증된 값의 집합인 Authenticated를 {}으로 설정한다.(S-3)The application server and the mobile device (AP / MH) set Authenticated, which is a set of verified values, to {} (S-3).

모바일 장치(MH)는 청크 Mi를 AP에게 요청한다.(S-4)The mobile device (MH) requests the chunk M i to the AP (S-4).

응용제공자서버(AP)는 Mi에 연관된 잎 노드 ei∼i로부터 루트 노드 e0∼

Figure 112004031415484-pat00023
까지의 경로 상에 있는 각 노드에 대하여, 연관된 값이 집합 Authenticated에 있는 노드를 찾는다. (S-5)Application provider server (AP) is the root node e 0~ from the leaf node associated with the e i~i M i
Figure 112004031415484-pat00023
For each node on the path up to, find the node whose associated value is in the set Authenticated. (S-5)

만일 존재하면, 이중 가장 레벨이 높은 노드를 ek∼k'라 부르며, 응용 제공자(AP)는 (Mi, Siblings(ei∼i, ek∼k'))를 전송한다. 존재하지 않는 경우, k=0, k'=2d-1 로 정하며, 응용제공자(AP)는 (Mi, Siblings(ei∼i, ek∼k'), SigAP (Ek∼k'))를 전송하고, MH/AP는 SigAP(Ek∼k')를 AP의 공개키로 복호화한 값 Ek∼k'를 집합 Authenticated에 추가한다.(S-6)If present, the node with the highest level is called e k -k ' , and the application provider AP transmits (M i , Siblings (e i-i , e k- k' )). If not present, k = 0, k '= 2 d −1, and the application provider (AP) is (M i , Siblings (e i to i , e k to k' ), Sig AP (E k to k ' )), And the MH / AP adds the values E k to k' obtained by decoding the Sig AP (E k to k ' ) with the AP's public key to the set Authenticated (S-6).

Siblings(ei∼i, ek∼k')={Ed, Ed-1, ..., Ej, ..., Et} (d≥j≥t)로 나타낼 수 있으며, Ej는 해당 잎 노드 ei∼i부터 조상 노드 ek∼k'의 경로 상에 있는 노드 중, 레벨 j에 있는 노드의 형제 노드에 연관된 값이다. Siblings (e i to i , e k to k ' ) = {E d , E d-1 , ..., E j , ..., E t } (d≥j≥t) j is a value associated with the sibling node of the node in level j among the nodes in the path of the leaf nodes e i- i to ancestor nodes e k-k ' .

우선, 모바일 장치(MH)는 경로 중 레벨 d에 있는 잎 노드 ei∼i에 연관된 값 E'i∼i=h(Mi)를 구한다.(S-7)First, the mobile device (MH) obtains the value E 'i~i = h (M i ) associated with the leaf node e i~i in the level of the path d. (S-7)

경로 상의 노드 중 레벨 j-1에 있는 내부 노드에 연관된 값은 경로 상의 노드 중 레벨 j에 있는 노드에 연관된 값과 Ej를 이용하여 구할 수 있으며, j 값을 d부터 t까지 차례로 바꾸어 경로 상에 있는 각 노드에 연관된 값을 모두 구한다. (S-8)The value associated with the internal node at level j-1 among the nodes on the path can be obtained by using E j and the value associated with the node at level j among the nodes on the path. Get all the values associated with each node in the table. (S-8)

그러면, 모바일 장치(MH)는 E'k∼k'를 얻게 된다. 만일 이 값이 Authenticated 집합에 있는 이미 검증된 Ek∼k'와 동일하면, E'k∼k'는 성공적으로 검증된 것이며 일방향 해쉬 함수의 성질에 따라 E'k∼k'를 계산할 때 사용한 모든 값들이 검증된 것이고, 따라서 Mi가 성공적으로 검증된 것이다.(S-9)The mobile device MH then obtains E 'k-k' . If this value is equal to the already validated E k to k ' in the Authenticated set, then E' k to k ' is successfully validated and used to calculate E' k to k ' depending on the nature of the one-way hash function. The values have been verified and M i has been successfully verified (S-9).

응용제공자 서버와 모바일장치(AP/MH)는 Authenticated 집합에 검증된 값인 Siblings(ei∼i, ek∼k')을 추가하고, 검증된 값인 ei∼i로부터 ek∼k' 까지의 경로 상에 있는 각 노드에 연관된 값들을 추가한다.(S-10)The application server and the mobile device (AP / MH) add Siblings (e i to i , e k to k ' ), which are validated values, to the Authenticated set, and from e i to i to e k to k' . Add the values associated with each node in the path (S-10).

상기 (S-10) 과정과 같이 각 노드에 연관된 값들을 추가 한 후(S-4)~(S-10)의 작업을 반복한다.After adding the values associated with each node as in the step (S-10), the operations of (S-4) to (S-10) are repeated.

예를 들어, n=4라고 가정하자. 모바일 코드 M은 4 개의 코드 청크 M0, M1, ...,

Figure 112004031415484-pat00024
로 구성된다. For example, suppose n = 4. Mobile code M has four code chunks M 0 , M 1 , ...,
Figure 112004031415484-pat00024
It consists of.

우선, 응용제공자 서버(AP)는 인증 트리 A를 생성한 후 (도 2 참조), 인증트리 A의 루트 노드에 연관된 값 E0∼

Figure 112004031415484-pat00025
를 서명하여 SigAP(E0∼
Figure 112004031415484-pat00026
)을 생성한다. Authenticated={}이다. First, the application server generates an authentication tree A (see FIG. 2), and then, the value E 0 to the root node of the authentication tree A is generated.
Figure 112004031415484-pat00025
Sign Sig AP (E 0∼
Figure 112004031415484-pat00026
) Authenticated = {}.

모바일 장치(MH)가 M2를 요청하면 응용제공자 서버(AP)는 (M2, Siblings(e2∼2, e0∼3)={E3∼3, E0∼1}, SigAP(E0∼3))을 전송하여 M2를 검증한다. Authenticated={E3∼3, E0∼1, E'2∼2, E'2∼3, E'0∼3}이다. When the mobile device (MH) requests M 2 , the application server (AP) is (M 2 , Siblings (e 2-2 , e 0-3 ) = {E 3-3 , E 0-1 }, Sig AP ( E 0-3 )) to verify M 2 . Authenticated = {E 3-3, E 0-1, E ' 2-2, E' 2-3, E ' 0-3 }.

그 후 모바일 장치(MH)가 M0를 요청하게되면, 응용제공자서버(AP)는 M0에 대응되는 e0∼0부터 루트 노드까지의 경로 상의 노드 중, 연관된 값이 Authenticated에 있는 노드 e0∼1을 찾을 수 있다. When thereafter the mobile device (MH) to request the M 0, the application provider server (AP) is a node in this, the associated values of the nodes on the path to the root node from e 0~0 corresponding to 0 M e 0 Authenticated -1 can be found.

응용제공자 서버(AP)는 (M0, Siblings(e0∼0, e0∼1)={E1∼1})을 전송한다. The application provider server (AP) transmits (M 0 , Siblings (e 0-0 , e 0-1 ) = {E 1-1 }).

모바일 장치(MH)는 이를 수신하여 E'0∼0=h(M0), E'0∼1=h(E'0∼0 ||E1∼1)을 생성한 후, 이 값이 Authenticated에 있는 E0∼1과 같은지 확인하여 M0를 검증한다.After generating the mobile device (MH) is configured to receive this E '0~0 = h (M 0 ), E' 0~1 = h (E '0~0 || E 1~1), the value is Authenticated Verify M 0 by checking E 0 to 1 in .

본 발명을 적용하면, 응용 프로그램이 여러 개의 코드 청크로 나뉘어 전송될 때, 모바일 장치가 다운로드된 코드 청크를 즉시 검증한 후 수행할 수 있으므로, 프로그램의 수행 시작 지연 및 수행 지연 시간이 대폭 줄어듦을 기대할 수 있다.According to the present invention, when the application is divided into multiple code chunks and transmitted, the mobile device can immediately verify the downloaded code chunks and perform them, so that the execution start delay and execution delay time of the program can be greatly reduced. Can be.

Claims (6)

삭제delete 삭제delete 응용프로그램을 여러 개의 청크(조각)으로 나누는 과정과, 생성된 청크에 대해 인증 정보(authentication information)를 생성하는 과정과, 각 청크 조각과 그 청크에 대한 인증 정보로 부터 전송할 정보를 생성하고, 생성된 정보를 이동 단말장치에 전송하는 과정을 포함하는 응용 제공자 서버의 전송 코드 생성과정과, The process of dividing an application into multiple chunks, generating authentication information for the generated chunks, and generating and sending information from each chunk piece and the authentication information for that chunk. A process of generating a transmission code of an application provider server including transmitting the collected information to a mobile terminal device; 응용 제공자로부터 제공받은 청크와 인증정보를 다운로드 받는대로, 청크를 검증(verification)하는 과정과, 검증된 청크를 수행하는 과정을 포함하는 이동 단말 장치 코드 인증 방법에 있어서,  In the mobile terminal device code authentication method comprising the step of verifying the chunk and performing the verified chunk, as soon as the chunk and authentication information provided from the application provider is downloaded, 상기 생성된 청크에 대해 인증정보를 생성하는 과정은, 각 코드 청크에 대하여 인증 트리를 생성하는 과정과, 생성된 인증트리의 루트 노드에 연관된 값을 서명하여 전자서명 정보를 생성하는 과정을 포함하여 이루어지며, Generating authentication information for the generated chunk includes generating an authentication tree for each code chunk, and generating electronic signature information by signing a value associated with a root node of the generated authentication tree. Done, 상기 생성된 정보를 이동 단말장치에 전송하는 과정에 있어서는 이동 단말장치로 부터 전송받을 프로그램 데이터(Mi)에 대한 요청이 있는 가를 판단하고, 이동 단말장치의 프로그램 데이터 Mi의 요청이 있을 경우 해당하는 데이터 Mi과 인증부가정보를 전송하도록 하며,In the process of transmitting the generated information to the mobile terminal device, it is determined whether there is a request for program data M i to be transmitted from the mobile terminal device, and if there is a request of the program data M i of the mobile terminal device, To transmit the data M i and the authentication additional information, 상기 이동 단말장치의 청크를 검증(verification)하는 과정은 응용 제공 서버로 부터 전송되는 인증부가정보를 이용하여 해당 데이터(Mi) 잎 노드 부터 루트 노드까지의 경로상에 있는 각 노드에 연관된 값을 구하고, 루트 노드와 연관된 값에 대한 서명값을 검증하도록 하는 것을 특징으로 하는 다운로드와 수행의 병행을 허용하는 이동 단말 장치 코드 인증 방법.In the process of verifying the chunk of the mobile terminal, the value associated with each node in the path from the corresponding data (M i ) leaf node to the root node is obtained by using the authentication additional information transmitted from the application providing server. Obtaining and verifying a signature value with respect to a value associated with a root node. 제 3항에 있어서, 응용 제공 서버로 부터 이동단말장치에 전송되는 코드 정보는 데이터 (Mi)(0≤i≤2d-1)와, 4. The method of claim 3, wherein the code information transmitted from the application providing server to the mobile terminal device comprises data (M i ) (0 ≦ i ≦ 2 d −1), 인증 부가정보로서 전자서명정보(SigS(E0∼
Figure 112004031415484-pat00027
))와, 데이터(Mi)에 대하여 해당 잎노드로부터 루트노드까지의 경로상에 있는 각 노드의 모드 형제노드와 연관된 값의 집합정보(Siblings(ei∼i, e0∼
Figure 112004031415484-pat00028
))를 포함하는 것을 특징으로 하는 다운로드와 수행의 병행을 허용하는 이동 단말 장치 코드 인증 방법.
Digital signature information (Sig S (E 0 ~)
Figure 112004031415484-pat00027
)) And set information (Siblings (e i to i, e 0 to) of the values associated with the mode sibling nodes of each node on the path from the leaf node to the root node with respect to the data M i .
Figure 112004031415484-pat00028
A method for authenticating a mobile terminal device code allowing parallel download and execution, characterized in that it comprises a)).
응용프로그램을 여러 개의 청크(조각)으로 나누는 과정과, 생성된 청크에 대해 인증 정보(authentication information)를 생성하는 과정과, 각 청크 조각과 그 청크에 대한 인증 정보로 부터 전송할 정보를 생성하고, 생성된 정보를 이동 단말장치에 전송하는 과정을 포함하는 응용 제공자 서버의 전송 코드 생성과정과, The process of dividing an application into multiple chunks, generating authentication information for the generated chunks, and generating and sending information from each chunk piece and the authentication information for that chunk. A process of generating a transmission code of an application provider server including transmitting the collected information to a mobile terminal device; 응용 제공자로부터 제공받은 청크와 인증정보를 다운로드 받는대로, 청크를 검증(verification)하는 과정과, 검증된 청크를 수행하는 과정을 포함하는 이동 단말 장치 코드 인증 방법에 있어서, In the mobile terminal device code authentication method comprising the step of verifying the chunk and performing the verified chunk, as soon as the chunk and authentication information provided from the application provider is downloaded, 상기 생성된 청크에 대해 인증정보를 생성하는 과정은, 각 코드 청크에 대하여 인증 트리를 생성하는 과정과, 생성된 인증트리의 루트 노드에 연관된 값을 서명하여 전자서명 정보를 생성하는 과정과, 검증된 값의 집합 Authenticated를 설정하는 과정과,The process of generating authentication information for the generated chunks includes: generating an authentication tree for each code chunk, generating electronic signature information by signing a value associated with a root node of the generated authentication tree, and verifying Setting up a set of authorized values, Authenticated, 상기 생성된 정보를 이동 단말장치에 전송하는 과정에 있어서는 이동 단말장치로 부터 전송받을 프로그램 데이터(Mi)에 대한 요청이 있는 가를 판단하는 과정과, 이동 단말장치의 프로그램 데이터 Mi의 요청이 있을 경우 해당하는 데이터 Mi에 연관된 잎 노드로 부터 루트 노드까지의 경로 상에 있는 각 노드에 대하여 상기 과정에서 설정되는 연관된 값의 집합 Authenticated에 있는 노드를 찾는 과정과, 설정되는 연관된 값의 집합 Authenticated내의 노드 검색결과에 따라 집합내에 존재하는 경우 전자서명정보를 포함시키지 않고, 존재하지 않는경우 전송할 정보에 전자서명정보를 포함시켜 이동단말 장치에 데이터(Mi)를 전송하는 과정과, 전자서명정보를 포함시켜 전송하는 경우 응용프로그램 서버의 공개키로 전자서명정보를 복호화하여 얻어지는 값을 집합 Authenticated에 추가하는 과정을 포함하여 이루어지며, In the process of transmitting the generated information to the mobile terminal device, there is a process of determining whether there is a request for program data M i to be transmitted from the mobile terminal device, and there is a request for program data M i of the mobile terminal device. In the case of each node on the path from the leaf node associated with the corresponding data M i to the root node, the process of finding a node in the set Authenticated set of associated values set in the above process, and in the set Authenticated set of associated values set If the node search result is present in the set, the electronic signature information is not included. If not, the electronic signature information is included in the information to be transmitted and the data M i is transmitted to the mobile terminal device. In the case of including and transmitting, the value obtained by decrypting the digital signature information with the public key of the application server. Including adding to the set Authenticated, 상기 이동 단말장치의 청크를 검증(verification)하는 과정은 검증된 값의 집합인 Authenticated을 설정하는 과정과, 데이터(Mi)를 요청하는 과정과, 응용 제공 서버로 부터 전송되는 인증 부가정보를 이용하여 해당 데이터(Mi) 잎 노드 부터 루트 노드까지의 경로상에 있는 각 노드에 연관된 값을 구하는 과정과, 구한 값을 Authenticated 집합내에서 검색하여 동일한 검증 값이 있는 가를 찾아 데이터 (Mi)를 검증하는 과정과, 검증된 데이터(Mi)에 연관된 잎 노드로 부터 루트 노드까지의 경로상에 있는 각 노드에 있는 연관된 값들을 Authenticated 집합에 추가 하는 과정을 포함하여 이루어지는 것을 특징으로 하는 다운로드와 수행의 병행을 허용하는 이동 단말 장치 코드 인증 방법. Verification of the chunk of the mobile terminal apparatus may include setting Authenticated, which is a set of verified values, requesting data M i , and using authentication additional information transmitted from an application providing server. and the data (M i) the leaf node from the step to obtain the value associated with each node, and, by searching the calculated value in the Authenticated set to find whether there is the same verification value data (M i) on the route to the root node, And verifying and adding the associated values in each node in the path from the leaf node associated with the verified data (M i ) to the root node to the Authenticated set. Mobile terminal device code authentication method that allows parallelism. 제 5항에 있어서, 응용 제공 서버로 부터 이동단말장치에 전송되는 코드 정보는 데이터 (Mi)(0≤i≤2d-1)와, 6. The method of claim 5, wherein the code information transmitted from the application providing server to the mobile terminal device is data (M i ) (0 ≦ i ≦ 2 d −1), 인증 부가정보로서 검증된 집합 Authenticated 내의 검색결과에 따라전송여 부가 결정되는 전자서명정보(SigS(E0∼
Figure 112004031415484-pat00029
))와, 데이터(Mi)에 대하여 경로상에 있는 각 노드의 모든 형제노드와 연관된 값의 집합정보(Siblings(ei∼i, e0∼
Figure 112004031415484-pat00030
))를 포함하는 것을 특징으로 하는 다운로드와 수행의 병행을 허용하는 이동 단말 장치 코드 인증 방법.
Digital signature information Sig S (E 0 to
Figure 112004031415484-pat00029
) And the set information (Siblings (e i to i, e 0 to ) of the values associated with all sibling nodes of each node in the path with respect to the data M i .
Figure 112004031415484-pat00030
A method for authenticating a mobile terminal device code allowing parallel download and execution, characterized in that it comprises a)).
KR1020040055337A 2004-07-16 2004-07-16 Mobile Code Authentication Schemes that Permit Overlapping of Execution and Downloading KR100674632B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040055337A KR100674632B1 (en) 2004-07-16 2004-07-16 Mobile Code Authentication Schemes that Permit Overlapping of Execution and Downloading

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040055337A KR100674632B1 (en) 2004-07-16 2004-07-16 Mobile Code Authentication Schemes that Permit Overlapping of Execution and Downloading

Publications (2)

Publication Number Publication Date
KR20060006370A KR20060006370A (en) 2006-01-19
KR100674632B1 true KR100674632B1 (en) 2007-01-26

Family

ID=37118073

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040055337A KR100674632B1 (en) 2004-07-16 2004-07-16 Mobile Code Authentication Schemes that Permit Overlapping of Execution and Downloading

Country Status (1)

Country Link
KR (1) KR100674632B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100765602B1 (en) * 2006-02-03 2007-10-09 현대자동차주식회사 System and method for partition transmitting large capacity messaging data in the radio communication environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010106325A (en) * 2001-10-15 2001-11-29 신용태 지동관 Wireless pda ebook contents service method and system with user authentication function for the digital rights management
KR20020045150A (en) * 2000-12-08 2002-06-19 강희태 The System of File Transmission and Management using Voice Verification and the Method thereof
KR20030075224A (en) * 2002-03-16 2003-09-26 삼성전자주식회사 Method of access control in wireless environment and recording medium in which the method is recorded

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020045150A (en) * 2000-12-08 2002-06-19 강희태 The System of File Transmission and Management using Voice Verification and the Method thereof
KR20010106325A (en) * 2001-10-15 2001-11-29 신용태 지동관 Wireless pda ebook contents service method and system with user authentication function for the digital rights management
KR20030075224A (en) * 2002-03-16 2003-09-26 삼성전자주식회사 Method of access control in wireless environment and recording medium in which the method is recorded

Also Published As

Publication number Publication date
KR20060006370A (en) 2006-01-19

Similar Documents

Publication Publication Date Title
EP3665858B1 (en) Verification of interactions system and method
US10083308B2 (en) Methods and apparatus for efficient computation of one-way chains in cryptographic applications
US6766353B1 (en) Method for authenticating a JAVA archive (JAR) for portable devices
CN110268678B (en) PKI-based login method for authentication agent user and server using same
CN110691087B (en) Access control method, device, server and storage medium
EP3693886B1 (en) Optimizations for verification of interactions system and method
KR100955172B1 (en) System for digital content access control
CN111639361A (en) Block chain key management method, multi-person common signature method and electronic device
US20050228998A1 (en) Public key infrastructure scalability certificate revocation status validation
US20080195868A1 (en) Rollback-Resistant Code-Signing
MXPA06004676A (en) Methods and apparatus for providing application credentials.
US20120233457A1 (en) Issuing implicit certificates
CN101964789B (en) Method and system for safely accessing protected resources
JP2002116838A (en) Device for updating code and method for the same
CN1340940A (en) Method for dealing inserted-requested message of business in groups
CN101330524A (en) Method and apparatus for processing download and dispatching file as well as transmission file system
KR100900950B1 (en) Data generating device and control method thereof, data analyzing device and control method thereof, data processing system, and machine-readable storage medium
US20050154899A1 (en) Mobile software authentication and validation
KR20210112359A (en) Browser Cookie Security
US20030167407A1 (en) Authenticated file loader
CN112839328B (en) Close-contact data verification method, client, server and storage medium
US20040133783A1 (en) Method for non repudiation using cryptographic signatures in small devices
KR100674632B1 (en) Mobile Code Authentication Schemes that Permit Overlapping of Execution and Downloading
Yang et al. HHT-based security enhancement approach with low overhead for coding-based reprogramming protocols in wireless sensor networks
Jeong et al. An efficient mobile code authentication scheme that permits overlapping of execution and downloading

Legal Events

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

Payment date: 20130121

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140106

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150106

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150909

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190716

Year of fee payment: 13