KR102325430B1 - Method for managing software license - Google Patents

Method for managing software license Download PDF

Info

Publication number
KR102325430B1
KR102325430B1 KR1020170180106A KR20170180106A KR102325430B1 KR 102325430 B1 KR102325430 B1 KR 102325430B1 KR 1020170180106 A KR1020170180106 A KR 1020170180106A KR 20170180106 A KR20170180106 A KR 20170180106A KR 102325430 B1 KR102325430 B1 KR 102325430B1
Authority
KR
South Korea
Prior art keywords
license
information
arrangement
client
present
Prior art date
Application number
KR1020170180106A
Other languages
Korean (ko)
Other versions
KR20190078273A (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 KR1020170180106A priority Critical patent/KR102325430B1/en
Publication of KR20190078273A publication Critical patent/KR20190078273A/en
Application granted granted Critical
Publication of KR102325430B1 publication Critical patent/KR102325430B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 소프트웨어 라이센스 관리 방법으로서, 보다 상세하게는 소프트웨어 라이센스에 대한 부호화 및 복호화 방법에 관한 것이다.
본 발명에 따른 소프트웨어 라이센스 관리 방법은 클라이언트로부터 고유 정보를 수신하는 단계 및 고유 정보와 라이센스 만료 기간 정보를 이용하여 라이센스를 생성하고, 별도의 암호 키 없이 암호화하여 전송하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 따른 소프트웨어 라이센스 관리 방법은 서버로부터 라이센스를 수신하는 단계 및 라이센스에 대하여 암호화 키 없이 복호화를 수행하는 단계를 포함하는 것을 특징으로 한다.
The present invention relates to a software license management method, and more particularly, to a software license encoding and decoding method.
The software license management method according to the present invention is characterized in that it comprises the steps of receiving unique information from a client, generating a license using the unique information and the license expiration period information, and encrypting and transmitting the license without a separate encryption key. .
A software license management method according to the present invention is characterized in that it includes the steps of receiving a license from a server and performing decryption without an encryption key on the license.

Description

소프트웨어 라이센스 관리 방법{METHOD FOR MANAGING SOFTWARE LICENSE}METHOD FOR MANAGING SOFTWARE LICENSE

본 발명은 소프트웨어 라이센스 관리 방법으로서, 보다 상세하게는 소프트웨어 라이센스에 대한 부호화 및 복호화 방법에 관한 것이다. The present invention relates to a software license management method, and more particularly, to a software license encoding and decoding method.

종래 기술에 따른 소프트웨어 라이센스 발급 방식은 익명의 클라이언트 기반의 라이센스 발급 방법과, 시리얼키 기반의 라이센스 발급 방법이 제안되었는데, 이러한 라이센스 관리 방법은 별도의 암호화 알고리즘을 사용하여 라이센스를 암호화하고, 이를 다시 복호화하는 별도의 과정이 필요하고, 상용 라이센스 모듈에서 사용되어 별도의 비용이 발생하는 단점이 있으며, 중소 소프트웨어 업체에서는 가격적인 부담으로 인해 기술 사용에 대한 제약사항이 발생하는 문제점이 있다. As a software license issuance method according to the prior art, an anonymous client-based license issuance method and a serial key-based license issuance method have been proposed. These license management methods encrypt the license using a separate encryption algorithm and decrypt it again. There are disadvantages in that a separate process is required, a separate cost is incurred because it is used in a commercial license module, and there is a problem in that small and medium software companies have restrictions on the use of technology due to a price burden.

본 발명은 전술한 문제점을 해결하기 위하여 제안된 것으로, 기존의 상용 라이센스 관리 모듈을 사용하지 않으면서(즉 라이센스 생성 이후 별도의 암호화 알고리즘을 사용하지 않으면서), 복잡도가 낮고 가격이 비교적 저렴한 유틸리티 소프트웨어를 대상으로 비교적 간단하게 라이센스를 관리하는 것이 가능한 소프트웨어 라이센스 관리 방법을 제공하는 데 그 목적이 있다. The present invention has been proposed to solve the above problems, and without using the existing commercial license management module (that is, without using a separate encryption algorithm after license creation), low complexity and relatively inexpensive utility software The purpose of the present invention is to provide a software license management method that enables relatively simple license management for users.

본 발명에 따른 소프트웨어 라이센스 관리 방법은 클라이언트로부터 고유 정보를 수신하는 단계 및 고유 정보와 라이센스 만료 기간 정보를 이용하여 라이센스를 생성하고, 별도의 암호 키 없이 암호화하여 전송하는 단계를 포함하는 것을 특징으로 한다. The software license management method according to the present invention is characterized in that it comprises the steps of receiving unique information from a client, generating a license using the unique information and license expiration period information, and encrypting and transmitting the license without a separate encryption key. .

본 발명에 따른 소프트웨어 라이센스 관리 방법은 서버로부터 라이센스를 수신하는 단계 및 라이센스에 대하여 암호화 키 없이 복호화를 수행하는 단계를 포함하는 것을 특징으로 한다. A software license management method according to the present invention is characterized in that it includes the steps of receiving a license from a server and performing decryption without an encryption key on the license.

본 발명의 실시예에 따르면, 라이센스 생성 이후 별도의 암호화 알고리즘 및 암호화 키를 활용한 암호화 과정이 불필요하게 되므로, 상용 라이센스 모듈과 비교하여 볼 때 별도의 비용이 발생되지 않아, 간단한 유틸리티 소프트웨어에 적용하기 적합한 효과가 있다. According to an embodiment of the present invention, since an encryption process using a separate encryption algorithm and encryption key is unnecessary after license generation, no additional cost is incurred compared to a commercial license module, so that it can be applied to simple utility software has a suitable effect.

본 발명의 효과는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to those mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 본 발명의 실시예에 따른 소프트웨어 라이센스 관리 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예에 따른 부호화 과정 시의 MAC 주소 변환을 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 복호화 과정 시의 MAC 주소 변환을 나타내는 도면이다.
1 is a flowchart illustrating a software license management method according to an embodiment of the present invention.
2 is a diagram illustrating MAC address conversion during an encoding process according to an embodiment of the present invention.
3 is a diagram illustrating MAC address conversion during a decoding process according to an embodiment of the present invention.

본 발명의 전술한 목적 및 그 이외의 목적과 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. The above and other objects, advantages and features of the present invention, and a method of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings.

그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 목적, 구성 및 효과를 용이하게 알려주기 위해 제공되는 것일 뿐으로서, 본 발명의 권리범위는 청구항의 기재에 의해 정의된다. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms, and only the following examples are provided to those of ordinary skill in the art to which the present invention pertains to the purpose of the invention, It is only provided to easily inform the configuration and effect, and the scope of the present invention is defined by the description of the claims.

한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자가 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가됨을 배제하지 않는다.On the other hand, the terms used herein are for the purpose of describing the embodiments and are not intended to limit the present invention. As used herein, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, "comprises" and/or "comprising" means that a referenced element, step, operation and/or element is the presence of one or more other elements, steps, operations and/or elements. or added.

이하에서는, 당업자의 이해를 돕기 위하여 본 발명이 제안된 배경에 대하여 먼저 서술하고, 본 발명의 실시예에 대하여 서술하기로 한다. Hereinafter, in order to facilitate the understanding of those skilled in the art, the background to which the present invention is proposed will be first described, and embodiments of the present invention will be described.

종래 기술에 따른 소프트웨어 라이센스 발급 방식으로는 익명의 클라이언트 기반의 라이센스 발급 방식과, 시리얼 넘버 기반 라이센스 발급 방식이 있다. As a software license issuance method according to the prior art, there are an anonymous client-based license issuance method and a serial number-based license issuance method.

익명의 클라이언트 기반 라이센스 발급 방식은 익명의 클라이언트로부터 수신한 CPU ID, MAC 주소와 같은 고유한 ID를 이용하여 서버에서 라이센스를 생성하고, 개인키로 암호화한다. 이후, 클라이언트에서는 암호화된 라이센스를 공개키로 다시 복호화한다. The anonymous client-based license issuance method creates a license on the server using a unique ID such as CPU ID and MAC address received from an anonymous client, and encrypts it with a private key. After that, the client decrypts the encrypted license again with the public key.

MS Windows 제품에서 사용하는 시리얼 넘버 기반 라이센스 발급 방식은 기존의 라이센스 방식에다 시리얼 키를 별도로 추가하는 것으로, 서버에서 인증을 하고난 후 라이센스가 생성되면, 이를 클라이언트에 내려주는 방식이다. The serial number-based license issuance method used in MS Windows products adds a serial key to the existing license method. After authentication on the server, when a license is created, it is delivered to the client.

종래 기술에 따른 라이센스 관리 방법은 별도의 암호화 알고리즘을 사용하여 라이센스를 암호화하고, 이를 다시 복호화하는 별도의 과정을 거치도록 되어 있으며, 상용 라이센스 모듈에서 사용하고 있어 별도의 비용이 발생하는 단점이 있고, 중소 소프트웨어 업체에서는 가격적인 부담으로 기술 사용에 제약이 발생하는 문제점이 있다. The license management method according to the prior art encrypts the license using a separate encryption algorithm and undergoes a separate process of decrypting it again. Small and medium-sized software companies have a problem in that the use of technology is restricted due to the cost burden.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위하여 제안된 것으로, 라이센스 생성 이후 별도의 암호화 알고리즘을 사용하지 않고 비교적 간단하게 부호화/복호화를 수행하며 라이센스를 관리할 수 있는 방법을 제안한다. The present invention has been proposed to solve the above-described problems of the prior art, and proposes a method capable of managing a license while performing encoding/decryption relatively simply without using a separate encryption algorithm after license generation.

도 1은 본 발명의 실시예에 따른 소프트웨어 라이센스 부호화 및 복호화 방법을 나타내는 도면이다. 1 is a diagram illustrating a software license encoding and decoding method according to an embodiment of the present invention.

클라이언트(200)가 서버(100)로부터 신규 라이센스를 발급받기 위해서는, 도 1에 도시한 바와 같은 라이센스 관리 절차가 수행된다. In order for the client 200 to receive a new license from the server 100, a license management procedure as shown in FIG. 1 is performed.

클라이언트(200)는 라이센스가 인스톨 될 컴퓨터의 고유아이디(CPU ID, MAC 주소 등)를 서버로 전송하여, 라이센스를 요청한다(S100). The client 200 transmits the unique ID (CPU ID, MAC address, etc.) of the computer on which the license is to be installed to the server, and requests the license (S100).

서버(100)는 컴퓨터 고유아이디와 라이센스 만료기간을 정보를 이용하여 라이센스를 생성하고 암호 키 없이 암호화한 후 다시 클라이언트(200)에 전송한다(S200).The server 100 generates a license using the computer unique ID and license expiration period information, encrypts it without an encryption key, and then transmits it to the client 200 again (S200).

클라이언트(200)는 복호화 키 없이 컴퓨터 고유아이디와 라이센스 만료기간을 복호화하고 이러한 정보를 기반으로 소프트웨어 실행 여부를 판단한다.The client 200 decrypts the computer unique ID and license expiration period without a decryption key, and determines whether to execute the software based on this information.

이하, 라이센스 부호화 과정에 대하여 서술한다. Hereinafter, the license encoding process will be described.

본 발명의 실시예에 대한 당업자의 이해를 돕기 위하여, Mac 주소는 18-D2-38-A1-C9-02 (16진수)이고, CPU ID는 24A83 (16진수)이고, 만료기간은 2017년 8월 31 (ToOaDate 함수 이용하면 42978임)이고, 프로그램코드는 1234-5678-9111-1121 (16진수)임을 가정하여 설명한다. In order to help those skilled in the art to understand the embodiment of the present invention, the Mac address is 18-D2-38-A1-C9-02 (hexadecimal), the CPU ID is 24A83 (hexadecimal), and the expiration period is 8, 2017 It is assumed that the month is 31 (42978 when using the ToOaDate function) and the program code is 1234-5678-9111-1121 (hexadecimal).

전술한 ToOaDate는 해당 날짜를 OLE 자동화 날짜로 변환시키는 함수로서, OLE 자동화 날짜는 1899년 12월 30일을 기준으로, 해당 날짜가 이전이나 이후로 얼마나 지났는지 일수로 나타내는 함수이다. The aforementioned ToOaDate is a function that converts the corresponding date into an OLE automation date, and the OLE automation date is a function indicating how many days have passed since December 30, 1899, before or after the corresponding date.

예컨대, 1900년 1월 1일은 기준일로부터 이틀의 시간이 지났으므로 2이고, 1899년 12월29일은 기준일로부터 하루 전이므로 -1이다.For example, January 1, 1900 is 2 because two days have elapsed from the base date, and December 29, 1899 is -1 because it is one day before the base date.

이하, 저장되어 있는 프로그램 코드를 이용하여 라이센스를 생성하는 과정을 설명한다. Hereinafter, a process of generating a license using the stored program code will be described.

서버(100)는 전술한 바와 같이 클라이언트의 MAC 주소, CPU ID를 수신하고, 각 클라이언트(200)들마다 만료 기간을 정하며, 만료 기간을 암호화에 이용한다. As described above, the server 100 receives the client's MAC address and CPU ID, sets an expiration period for each client 200 , and uses the expiration period for encryption.

서버(100)는 도 2에 도시한 바와 같이, 클라이언트(200)로부터 수신한 12자리의 MAC 주소의 1번째와 맨 끝 자리를 이용하여 6자리의 수를 만든다. As shown in FIG. 2 , the server 100 creates a 6-digit number using the first and last digits of the 12-digit MAC address received from the client 200 .

이어서, 서버(100)는 아래 [표 1]과 같이, MAC 주소와 CPU ID 및 만료기간을 이용하여 16자리의 수(정보 배열)를 만든다. Next, the server 100 creates a 16-digit number (information arrangement) using the MAC address, CPU ID, and expiration period, as shown in [Table 1] below.

Figure 112017129348919-pat00001
Figure 112017129348919-pat00001

이어서, 서버(100)는 아래 [표 2]와 같이, 정보 배열의 MAC 주소 값들을 정보 배열에 저장시킨다. Then, the server 100 stores the MAC address values of the information array in the information array as shown in [Table 2] below.

Figure 112017129348919-pat00002
Figure 112017129348919-pat00002

이어서, 서버(100)는 아래 [표 3]과 같이, 정보 배열의 순서에 대하여, 4개의 정보를 하나의 묶음으로 기준을 두어, 1→2→3→4의 순서를 2→1→4→3의 순서로 변경시킨다. Then, as shown in Table 3 below, the server 100 sets four pieces of information as a standard for the order of information arrangement, and converts the order of 1→2→3→4 to 2→1→4→ Change in the order of 3.

Figure 112017129348919-pat00003
Figure 112017129348919-pat00003

이어서, 서버(100)는 아래 [표 4]와 같이, 새로운 정보 배열의 CPU ID 2부분부터 프로그램 코드를 곱한다. Then, the server 100 multiplies the program code from the CPU ID 2 part of the new information array as shown in [Table 4] below.

Figure 112017129348919-pat00004
Figure 112017129348919-pat00004

이어서, 서버(100)는 아래 [표 5]와 같이, 정보 배열의 순서에 대하여, 전체를 역순으로 변경시킨다. Next, the server 100 changes the entire order of the information arrangement in the reverse order as shown in [Table 5] below.

Figure 112017129348919-pat00005
Figure 112017129348919-pat00005

이어서, 서버(100)는 아래 [표 6]과 같이, MAC 주소를 제외한 정보 배열의 각 자리에 기설정 수(59)를 더한다. Next, the server 100 adds a preset number 59 to each digit of the information array except for the MAC address, as shown in Table 6 below.

Figure 112017129348919-pat00006
Figure 112017129348919-pat00006

이어서, 서버(100)는 아래 [표 7]과 같이, 정보 배열의 순서에 대하여, 4개의 정보를 하나의 묶음으로 기준을 두어, 1→2→3→4의 순서를 4→1→2→3의 순서로 변경시킨다. Then, as shown in Table 7 below, the server 100 sets the four pieces of information as a bundle for the order of information arrangement, and sets the order of 1→2→3→4 to 4→1→2→ Change in the order of 3.

Figure 112017129348919-pat00007
Figure 112017129348919-pat00007

이어서, 서버(100)는 아래 [표 8]과 같이, 255에서 각 정보 배열을 차연산한다. Next, the server 100 calculates the difference between each information array at 255, as shown in [Table 8] below.

Figure 112017129348919-pat00008
Figure 112017129348919-pat00008

이어서, 서버(100)는 아래 [표 9] 및 [표 10]과 같이, 정보 배열의 각 자리를 기설정 수(16)으로 나누어 몫과 나머지를 구한 후, 라이센스 배열에 이를 저장한다. Next, the server 100 divides each digit of the information array by a preset number 16 to obtain a quotient and a remainder as shown in [Table 9] and [Table 10] below, and then stores the quotient and remainder in the license array.

Figure 112017129348919-pat00009
Figure 112017129348919-pat00009

Figure 112017129348919-pat00010
Figure 112017129348919-pat00010

이어서, 서버(100)는 아래 [표 11]과 같이, 새로 만든 라이센스 배열의 순서를 4개의 단위 묶음을 기준으로, 1→2→3→4의 순서를 4→2→3→1의 순서로 변경시킨다. Then, as shown in [Table 11] below, the server 100 sets the order of the newly created license arrangement in the order of 1 → 2 → 3 → 4 in the order of 4 → 2 → 3 → 1 based on the 4 unit bundles. change it

Figure 112017129348919-pat00011
Figure 112017129348919-pat00011

전술한 과정을 거친 최종 라이센스 결과는 DBBB24CB-1CC7A4BC-4DB7F8CA-3E2756ED이 된다. The final license result after the above process is DBBB24CB-1CC7A4BC-4DB7F8CA-3E2756ED.

이하에서는, 클라이언트(200)의 라이센스 복호화 과정을 설명한다. Hereinafter, the license decryption process of the client 200 will be described.

클라이언트(200)는 복호화 키 없이 컴퓨터 고유 아이디와 라이센스 만료 기간을 복호화한다. The client 200 decrypts the computer unique ID and license expiration period without a decryption key.

먼저, 클라이언트(200)는 아래 [표 12]와 같이, 입력 받은 라이센스를 라이센스 배열에 저장한다. First, the client 200 stores the received license in the license array as shown in [Table 12] below.

Figure 112017129348919-pat00012
Figure 112017129348919-pat00012

이어서, 클라이언트(200)는 라이센스 배열의 순서에 대하여, 아래 [표 13]과 같이, 4개의 정보를 하나의 묶음으로 기준을 두어, 1→2→3→4의 순서를 4→2→3→1의 순서로 변경시킨다. Next, with respect to the order of the license arrangement, the client 200 sets the four pieces of information as a bundle as shown in [Table 13] below, and converts the sequence of 1→2→3→4 to 4→2→3→ change in the order of 1.

Figure 112017129348919-pat00013
Figure 112017129348919-pat00013

이어서, 클라이언트(200)는 아래 [표 14]와 같이, 라이센스의 배열의 값을 이용하여 정보 배열을 복구시켜 저장한다. Next, the client 200 restores and stores the information array using the value of the license array as shown in [Table 14] below.

Figure 112017129348919-pat00014
Figure 112017129348919-pat00014

이어서, 클라이언트(200)는 아래 [표 15]와 같이, 새로 만든 정보 배열에 대해 기설정 수(255)에서 차연산한다. Next, the client 200 calculates the difference from the preset number 255 for the newly created information array, as shown in [Table 15] below.

Figure 112017129348919-pat00015
Figure 112017129348919-pat00015

이어서, 클라이언트(200)는 정보 배열의 순서에 대하여, 아래 [표 16]과 같이, 4개의 정보를 하나의 묶음으로 기준을 두어, 1→2→3→4의 순서를 2→3→4→1의 순서로 변경시킨다. Next, with respect to the order of information arrangement, the client 200 sets the standard for four pieces of information as one bundle as shown in [Table 16] below, and sets the order of 1→2→3→4 to 2→3→4→ change in the order of 1.

Figure 112017129348919-pat00016
Figure 112017129348919-pat00016

이어서, 클라이언트(200)는 아래 [표 17]과 같이, 새로운 정보 배열에서 기설정 수(59)를 차연산하되, MAC 주소(뒤에서 6자리)는 이러한 연산에서 제외된다.Then, as shown in [Table 17] below, the client 200 subtracts the preset number 59 from the new information array, but the MAC address (last 6 digits) is excluded from this operation.

Figure 112017129348919-pat00017
Figure 112017129348919-pat00017

이어서, 클라이언트(200)는 아래 [표 18]와 같이, 정보 배열의 순서에 대하여, 전체를 역순으로 변경시킨다. Next, the client 200 changes the entire order of the information arrangement in the reverse order as shown in [Table 18] below.

Figure 112017129348919-pat00018
Figure 112017129348919-pat00018

이어서, 클라이언트(200)는 처음 6자리의 MAC 주소의 부분은 제외하고, 정보 배열에 대해 아래 [표 19]처럼 프로그램 코드를 나누어 준다. Next, the client 200 divides the program code as shown in [Table 19] below for the information arrangement, excluding the part of the MAC address of the first 6 digits.

Figure 112017129348919-pat00019
Figure 112017129348919-pat00019

이어서, 클라이언트(200)는 정보 배열의 순서에 대하여, 아래 [표 20]과 같이, 4개의 정보를 하나의 묶음으로 기준을 두어, 1→2→3→4의 순서를 2→1→4→3의 순서로 변경시킨다. Next, with respect to the order of information arrangement, the client 200 sets the standard for four pieces of information as a bundle as shown in [Table 20] below, and converts the order of 1→2→3→4 to 2→1→4→ Change in the order of 3.

Figure 112017129348919-pat00020
Figure 112017129348919-pat00020

이어서, 클라이언트(200)는 아래 [표 21]과 같이, 각 정보배열을 MAC 주소, CPU ID, 만료 기간에 맞게 변경시킨다. Next, the client 200 changes each information arrangement according to the MAC address, CPU ID, and expiration period as shown in [Table 21] below.

Figure 112017129348919-pat00021
Figure 112017129348919-pat00021

이어서, 클라이언트(200)는 아래 [표 22]와 같이, MAC 주소, CPU ID 및 만료 기간을 출력 형식에 맞게 변환한다. Next, the client 200 converts the MAC address, CPU ID, and expiration period according to the output format as shown in [Table 22] below.

Figure 112017129348919-pat00022
Figure 112017129348919-pat00022

이어서, 클라이언트(200)는 도 3에 도시한 바와 같이, MAC 주소를 18 - D2 - 38- A1 - C9 -02로 복호화하고, CPU ID를 아래 [표 23]과 같이 24A83으로 복호화하고, 만료 기간을 아래 [표 24]와 같이 복호화하되, 이는 FromOaDate 함수를 사용하여, 2017년 8월 31일로 복호화한다. Next, as shown in FIG. 3 , the client 200 decrypts the MAC address as 18-D2-38-A1-C9 -02, and decrypts the CPU ID as 24A83 as shown in [Table 23] below, and the expiration period is decrypted as shown in [Table 24] below, but it is decrypted to August 31, 2017 using the FromOaDate function.

Figure 112017129348919-pat00023
Figure 112017129348919-pat00023

Figure 112017129348919-pat00024
Figure 112017129348919-pat00024

이제까지 본 발명의 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다. So far, the embodiments of the present invention have been mainly looked at. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments are to be considered in an illustrative rather than a restrictive sense. The scope of the present invention is indicated in the claims rather than the foregoing description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.

100: 서버 200: 클라이언트100: server 200: client

Claims (7)

(a) 클라이언트로부터 고유 정보를 수신하는 단계;
(b) 상기 고유 정보 및 라이센스 만료 기간 정보를 이용하여 기설정된 자리의 정보 배열을 생성하고, 상기 정보 배열의 순서를 변경시키고 기설정 자리수부터 프로그램 코드를 이용하여 라이센스 결과를 생성하고, 별도의 암호 키 없이 암호화하여 전송하는 단계;
(c) 서버로부터 라이센스를 수신하는 단계; 및
(d) 복호화 키 없이 상기 라이센스의 배열의 순서를 변경시키고, 상기 라이센스의 배열의 값을 이용하여 정보 배열을 복구시켜, MAC 주소, CPU ID 및 만료 기간을 포함하는 상기 정보 배열을 획득하는 단계
를 포함하는 소프트웨어 라이센스 관리 방법.
(a) receiving unique information from a client;
(b) using the unique information and license expiration period information to generate an information arrangement of a preset digit, change the order of the information arrangement, generate a license result using a program code from a preset digit, and separate encryption encrypting and transmitting without a key;
(c) receiving a license from a server; and
(d) changing the order of the arrangement of the licenses without a decryption key, recovering the arrangement of information using the value of the arrangement of the licenses, to obtain the arrangement of information including MAC address, CPU ID and expiration period;
How to manage software licenses, including.
삭제delete 제1항에 있어서,
상기 (b) 단계는 ToOaDate 함수를 이용하여 만료 기간 정보를 라이센스 생성에 적용하는 것
인 소프트웨어 라이센스 관리 방법.
According to claim 1,
The step (b) is to apply the expiration period information to license generation using the ToOaDate function.
How to manage software licenses.
삭제delete 삭제delete 제1항에 있어서,
상기 (d) 단계는 상기 정보 배열을 획득함에 있어서, 상기 프로그램 코드 정보를 이용하는 것
인 소프트웨어 라이센스 관리 방법.
According to claim 1,
The step (d) is to use the program code information in obtaining the information arrangement.
How to manage software licenses.
제1항에 있어서,
상기 (d) 단계는 FromOaDate 함수를 이용하여 상기 만료 기간에 대한 정보를 확인하는 것
인 소프트웨어 라이센스 관리 방법.
According to claim 1,
The step (d) is to check the information on the expiration period using the FromOaDate function
How to manage software licenses.
KR1020170180106A 2017-12-26 2017-12-26 Method for managing software license KR102325430B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170180106A KR102325430B1 (en) 2017-12-26 2017-12-26 Method for managing software license

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170180106A KR102325430B1 (en) 2017-12-26 2017-12-26 Method for managing software license

Publications (2)

Publication Number Publication Date
KR20190078273A KR20190078273A (en) 2019-07-04
KR102325430B1 true KR102325430B1 (en) 2021-11-12

Family

ID=67259297

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170180106A KR102325430B1 (en) 2017-12-26 2017-12-26 Method for managing software license

Country Status (1)

Country Link
KR (1) KR102325430B1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002169620A (en) * 2000-12-01 2002-06-14 Konami Co Ltd Management system for game device, game device, control method, software recording medium
KR100361869B1 (en) * 2001-03-02 2002-11-22 정지혜 The Installing and Executing Method To Use The Chiper Key
KR100917312B1 (en) * 2007-09-27 2009-09-11 (주) 엘지텔레콤 System and Method for Renewal Information of DRM Contents for Repurchase and Recording Medium for Recording Function Therefore
KR20150053277A (en) * 2013-10-29 2015-05-18 주식회사 현대케피코 Method And Apparatus for Controlling Software execution
KR101545940B1 (en) * 2013-11-26 2015-08-20 한국과학기술정보연구원 License management Apparatus, license management systmem, license management method and storage medium

Also Published As

Publication number Publication date
KR20190078273A (en) 2019-07-04

Similar Documents

Publication Publication Date Title
US11658814B2 (en) System and method for encryption and decryption based on quantum key distribution
US20190318356A1 (en) Offline storage system and method of use
KR100308322B1 (en) Method and apparatus for performing strong encryption or decryption of data using special encryption functions
JP2020513183A (en) Data tokenization
JP5846577B2 (en) System for detecting whether the client state matches a predetermined state
CN104426973A (en) Cloud database encryption method, system and device
WO2005002133A1 (en) Device authentication information installation system
CN109635573A (en) System, method, apparatus, electronic equipment and the medium of data distribution formula encryption and decryption
JP2010514000A (en) Method for securely storing program state data in an electronic device
JP6049914B2 (en) Cryptographic system, key generation device, and re-encryption device
KR102143525B1 (en) Method for function encryption supporting set intersection operation and apparatus using the same
WO2021095384A1 (en) Information processing device, terminal device, and search method
CN109842589A (en) A kind of cloud storage encryption method, device, equipment and storage medium
WO2017033843A1 (en) Searchable cryptograph processing system
WO2018017168A2 (en) System and method for encryption and decryption based on quantum key distribution
CN107689957A (en) A kind of digital certificate management method, electronic equipment, storage medium
US11431489B2 (en) Encryption processing system and encryption processing method
CN113326518B (en) Data processing method and device
KR102325430B1 (en) Method for managing software license
WO2016078382A1 (en) Hsm enciphered message synchronization implementation method, apparatus and system
JPH11161167A (en) Device and method for ciphering and recording medium which records ciphering program
KR20090000587A (en) Encoding/decoding method for restriction of receiver
CN112528309A (en) Data storage encryption and decryption method and device
JP5677194B2 (en) Content sales management apparatus, content sales system, computer program, and content sales management method
JP2018519585A5 (en)

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right