KR20010054357A - Method for controlling Universal Serial Bus security module using crypto-chip - Google Patents

Method for controlling Universal Serial Bus security module using crypto-chip Download PDF

Info

Publication number
KR20010054357A
KR20010054357A KR1019990055152A KR19990055152A KR20010054357A KR 20010054357 A KR20010054357 A KR 20010054357A KR 1019990055152 A KR1019990055152 A KR 1019990055152A KR 19990055152 A KR19990055152 A KR 19990055152A KR 20010054357 A KR20010054357 A KR 20010054357A
Authority
KR
South Korea
Prior art keywords
security module
usb
error
key
code
Prior art date
Application number
KR1019990055152A
Other languages
Korean (ko)
Other versions
KR100310445B1 (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 KR1019990055152A priority Critical patent/KR100310445B1/en
Publication of KR20010054357A publication Critical patent/KR20010054357A/en
Application granted granted Critical
Publication of KR100310445B1 publication Critical patent/KR100310445B1/en

Links

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • G06F2212/2146Solid state disk being detachable, e.g.. USB memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Abstract

PURPOSE: A method for controlling a USB security module using a password chip based on a PC is provided to prevent an illegal user from illegally copying and correcting software or data by providing a USB security module to a lock, and by controlling a crypto-chip using a USB port. CONSTITUTION: A device driver is opened(S1). In case that there's no error(S2), an ID of the device is required(S3). In case that there's no error(S4), a key is transmitted to a USB(Universal Serial Bus) security module(S5). In case that there's no error(S6), a discramble code encoded is transmitted to the USB security module(S7). The discramble code decoded from the USB security module is sent back to a control program(S8). In case that there's no error(S9), a CRC of the discramble code is checked(S10). An error is checked(S11). An execution code encoded is transmitted to the USB security module(S12). The execution code encoded is encoded and sent back(S13). In case that there's no error(S14), the execution code is discrambled in a discrambling procedure of the control program(S15). It is checked whether the CRC is properly decoded(S16). An error is checked(S17). An error message for the device is outputted(S19). An error message for decoding is outputted(S20).

Description

PC 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어 방법{Method for controlling Universal Serial Bus security module using crypto-chip}Method for controlling Universal Serial Bus security module using crypto-chip

본 발명은 PC 기반의 암호칩을 사용한 USB(Universal Serial Bus) 보안모듈 제어 방법에 관한 것으로써, 특히 소프트웨어 복제 방지 및 불법 사용자의 접근 차단을 위해 사용자 인증 및 데이터 암·복호화 알고리즘을 내장한 USB 보안 모듈을 제어하는 제어 프로그램에 의해 PC 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어 방법에 관한 것이다.The present invention relates to a USB (Universal Serial Bus) security module control method using a PC-based encryption chip, in particular USB security with built-in user authentication and data encryption and decryption algorithms for software copy protection and illegal user access blocking The present invention relates to a method of controlling a U.S. non-security module using a PC-based encryption chip by a control program for controlling a module.

일반적으로, 정보와 통신 기술이 발달함에 따라 개발된 소프트웨어의 무단 복제 및 불법 접근으로 인해 소프트웨어 개발자들은 많은 곤란을 격고 있으며, 소프트웨어 무단 복제에 대한 피해액은 국내에서만 무려 5억 달러가 넘으며, 소프트웨어 가격상승의 원인이 되었으며, 국내에서도 소프트웨어 기술력이 부족하여 국내 민간업체에서도 전용 보안칩이 거의 개발되지 않고 있다.In general, software developers are faced with many difficulties due to the unauthorized copying and illegal access of software developed with the development of information and communication technology. Due to the lack of software technology in Korea, private security chips are rarely developed in domestic private companies.

이러한 소프트웨어적인 방지 대책은 무단 복제 및 변경 가능성을 항상 가지고 있기 때문에 전세계의 보안 및 보호 장비 개발 회사들은 보안성 및 인증성이 훨씬 우수하고 복제가 불가능한 일반 신용카드 크기에 암호화된 신분을 증명할 수 있는 내용과 기타 정보를 포함하면서도 복제나 해킹이 불가능한 것으로 알려져 있다.Since these software protections always have the potential for unauthorized copying and alteration, security and protection equipment developers around the world are able to prove their identity to a much higher level of security and authenticity and non-replicable common credit card sizes. And other information, but are not known to be copied or hacked.

실제로 락(Lock)의 기능은 소프트웨어나 하드웨어로 구현하게 되는데, 락을 탑재한 응용 프로그램은 락과 정해진 방법으로 통신(lock checking)함으로써 락의 유무나 오류 등을 결정하게 된다. 도 1에 도시된 바와 같이, 락(Lock)이 처음 출현할 때에도 락의 내부에 시리얼 넘버(Serial Number)나 고유 ID등이 쉽게 노출되어지는 단점 때문에 하드웨어 락으로 발전하게 되었다.In fact, the function of the lock is implemented by software or hardware. An application equipped with a lock determines whether a lock is present or an error by locking checking with the lock in a predetermined manner. As shown in FIG. 1, even when a lock first appears, the lock has been developed into a hardware lock because a serial number or a unique ID is easily exposed inside the lock.

하드웨어 락은 대체적으로 EEPROM형식과 ASIC 형식으로 분류될 수 있다. EEPROM 형식은 롬 라이터(ROM writer)로 락에 고유한 값(시리얼 넘버나 고유 ID)을 기록(write)하는 방법으로써 복제 및 수정이 용이하며, ASIC칩으로 구성되어 있는 락(Lock)은 제조 당시를 제외하고는 그 값을 복제하거나 수정할 수 없다. 그래서 EEPROM일 경우에는 제 3 자에 의해 시리얼 넘버를 임의적으로 락(Lock)에 부여할 수 있지만 ASIC에 의해 제작된 칩일 경우에는 제작 당시에 동일하지 않은 시리얼 넘버를 가지게 되며, ASIC의 제작자와의 인증된 경로를 통해서만 동일한 시리얼 넘버를 갖는 락을 생산할 수 있다. 따라서, ASIC 칩으로 락을 제작하였을 경우에는 락 자체를 복제하는 것이 거의 불가능하게 되어 있다. 그러나, 이 방법 또한 락 시뮬레이터 등을 이용하여 송수신되는 자료를 체크하고 프로그램 기계어 코드로 변환하여 락을 무력화시켜 프로그램을 무단 복제할 수 있다. 현재, 우리 나라에서 시판 중인 락은 하드웨어 락이 대부분을 차지하고 있다.Hardware locks can generally be classified into EEPROM and ASIC formats. EEPROM format is a ROM writer that writes a unique value (serial number or unique ID) to the lock, making it easy to copy and modify. The lock, which consists of ASIC chips, is manufactured at the time of manufacture. You cannot duplicate or modify the value except for. Therefore, in case of EEPROM, serial number can be arbitrarily locked by a third party, but in case of chip made by ASIC, it has the same serial number at the time of manufacture. Only paths can produce locks with the same serial number. Therefore, when a lock is made of an ASIC chip, it is almost impossible to duplicate the lock itself. However, this method also checks the transmitted and received data using a lock simulator or the like and converts the program into machine code so that the lock can be disabled to copy the program without permission. Currently, most of the locks on the market in our country are hardware locks.

그러나, 하드웨어 락은 제조비용에 대한 복제 방지 능력이 소프트웨어 락의 복제 방지 능력과 별로 차이가 없기 때문에 정식 프로그램을 구매하는 것보다 무단복제를 많이 사용하는 나라에서는 판매량이 많은 소프트웨어일수록 소프트웨어 락이나 기능제한을 적용한 사용자 등록제(User Registration) 등의 방법을 이용하여 사후 관리의 차별화로 구매를 유도하는 경향이 두드러지고 있다. 그래서 국내외의 락 제조회사들은 제조비용 대 복제방지 능력을 높이기 위한 방법을 여러 가지로 강구하고 있다. 그 중 한가지가 실행 파일이나 데이터 파일을 암호화하고, 암호화에사용된 키(key)를 락에서 가져오는 방식을 사용하는 것이다(HASP). 이 방식은 NSTL(National Software Testing Laboratories)에서 우수 평가를 받은 방식이지만 락 체크의 빈도에 프로그램의 수행 시간이 많은 영향을 받는 것이 단점으로 지적되고 있다. 또한, 보안등급이나 유연성 면에서 높이 평가를 함에도 불구하고 소프트웨어에 의한 제어 구조이기 때문에 기계어 수준의 디버깅으로 불법 복제가 가능한 단점이 있다.However, hardware lock does not differ much from software lock copy protection because of the manufacturing cost, so in countries where more copies are used than in regular programs, more software is sold or restricted. There is a tendency to induce purchases by differentiation of post management by using a method such as user registration. Therefore, domestic and overseas lock manufacturers are looking for ways to increase manufacturing costs versus copy protection. One of them is to encrypt the executable or data file and to get the key used for encryption from the lock (HASP). This method has been well-received by National Software Testing Laboratories (NSTL), but it is pointed out that the program execution time is greatly affected by the frequency of lock checks. In addition, despite the high evaluation in terms of security level and flexibility, because of the control structure by software, illegal copying is possible by debugging at the machine level.

그러나, 단순하게 락(Lock) 내부에 마이크로 프로세서를 두어 락(Lock)이나 프로그램의 존재 및 일치 여부를 서로 체크하는 방법으로 되어 있어, 소프트웨어에 한 번 설정된 락(Lock)은 재활용이 불가능하거나 어렵고, 소프트웨어에 의한 데이터 암호화 등을 수행하므로 지원되는 부가 기능의 속도가 느리며, 단순 암호화 알고리즘 사용으로 비도가 낮으며, 소프트웨어 복제방지 기능만 존재하여 다양한 부가 기능을 넣기가 힘들며, 1 개의 락으로 1개의 소프트웨어만을 보호하므로 다수 소프트웨어에 맞는 락(Lock)을 전부 연결해야 하기 때문에 연결 공간 부족 문제나 프린터 등의 주변기기 인식 오류를 유발하고, 각각 소프트웨어에 락(Lock)이 따로 존재하므로 소프트웨어 구입가격이 인상 요인이 발생하며, 단품에 의한 판매에 그치게 되므로 개발자는 소프트웨어마다 락(Lock)을 필요로 하고 사용자는 구입한 소프트웨어의 락을 따로 관리해야 하는 단점이 있다.However, it is simply a method of placing a microprocessor inside the lock to check the existence and matching of the lock or the program, so that the lock set once in the software is impossible or difficult to recycle. Since data encryption by software is performed, the speed of supported additional functions is slow, and the cost is low by using simple encryption algorithm.It is difficult to put various additional functions because there is only software copy protection function. Since only the locks for multiple software must be connected, all the locks need to be connected, which causes problems of lack of connection space or errors in the recognition of peripheral devices such as printers, and there are separate locks in the software. And only sells separately. Need to lock (Lock) for each word, and the user has the disadvantage that must be managed separately rock of the software purchased.

본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 제안된 것으로써, 본 발명의 목적은 공개키 기반의 비대칭 암호화 알고리즘인 RSA 알고리즘과, 개선된DES 암호화 알고리즘인 KSE96 알고리즘 등 다양한 암복호화 알고리즘을 내장한 암호칩(Crypto-chip)을 복제방지용 락에 내장시키고 USB 포트를 이용하여 제어함으로써 PC 기반의 USB 인터페이스를 가지는 USB 보안 모듈과 암호칩을 사용한 정보 보호 장치를 제어하기 위한 제어 프로그램에 의해 PC의 불법 사용자에 의해 소프트웨어나 데이터의 불법적인 복제 및 수정을 방지하기 위한 PC 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어 방법을 제공한다.The present invention has been proposed to solve the above problems of the prior art, and an object of the present invention is to embed various encryption / decryption algorithms such as RSA algorithm, which is a public key-based asymmetric encryption algorithm, and KSE96 algorithm, which is an improved DES encryption algorithm. By embedding a crypto-chip in a copy protection lock and controlling it using a USB port, the PC is controlled by a USB security module having a PC-based USB interface and a control program for controlling an information protection device using a crypto chip. Provides a method for controlling a non-security module using PC-based encryption chips to prevent illegal copying and modification of software or data by illegal users.

도 1a와 1b는 종래의 실시예에 의한 프로그램 복제 방지 장치의 개략도.1A and 1B are schematic views of a program copy protection device according to a conventional embodiment.

도 2a는 본 발명의 무단 복제 및 불법 접근을 차단하기 위해 암ㆍ복호화에 의한 정보보호 시스템 개념도.Figure 2a is a conceptual diagram of an information protection system by encryption and decryption to block unauthorized copying and illegal access of the present invention.

도 2b는 본 발명에 따른 PC 기반의 USB를 이용한 보안 모듈.Figure 2b is a security module using a PC-based USB according to the present invention.

도 3은 본 발명에 의한 USB 보안 모듈과 프로그램 복제 방지 방법을 설명한 개략도.Figure 3 is a schematic diagram illustrating a USB security module and program copy protection method according to the present invention.

도 4는 본 발명에 의한 USB 보안 모듈과 제어 프로그램과의 동작을 나타낸 흐름도.4 is a flowchart showing the operation of the USB security module and the control program according to the present invention.

도 5a 내지 도 5c는 USB 보안 모듈내의 동작을 나타낸 흐름도.5A-5C are flow diagrams illustrating operations within the USB security module.

* 도면의 주요 부분에 대한 부호 설명 *Explanation of symbols on the main parts of the drawings

10 : 컴퓨터 7 : USB 탭10: Computer 7: USB Tab

17 : 제어 프로그램 20 : USB 보안 모듈17: control program 20: USB security module

23 : USB제어기 27 : 암호화칩23: USB controller 27: encryption chip

USB : 범용 직렬 버스(Universal Serial Bus)USB: Universal Serial Bus

상기한 목적을 달성하기 위해 본 발명은 제어 프로그램에 의해 디바이스 드라이버를 오픈하고(S1) 에러가 없으면(S2) USB 보안모듈의 시리얼 넘버인 장치 ID를 요청하고(S3) 에러가 없으면(S4) 상기 USB 보안모듈로 키를 전송하는 단계(S5); S5 과정에서 에러가 없으면(S6) 상기 USB 보안모듈로 소프트웨어에 존재하는 암호화된 디스크램블 코드(E(Discramble) code)를 전송하고(S7), 상기 USB 보안모듈로부터 복호화된 디스크램블 코드(Discramble code)를 제어프로그램으로 회송한(S8) 후 에러가 없으면(S9) 상기 디스크램블 코드의 CRC를 체크하는 단계(S10); CRC 체크 후, 에러를 체크하여(S11) 에러가 없으면 상기 USB 보안모듈로 키 KM을 사용하여 암호화되어 있는 실행 코드(EKM(Exe) 코드)를 전송하고(S12), 상기 USB 보안모듈로부터 키 KSR을 사용하여 암호화한 실행 코드(EKSR(Exe) 코드)를 회송하며(S13) 에러가 없으면(S14) 상기 EKSR(Exe) 코드를 제어 프로그램의 디스크램블링 프로시쥬어에서 디스크램블링(Discrambling)하여(S15) 제대로 복호화되어 있는지 CRC 검사하는 단계(S16); 및 S16 과정의 CRC 검사 후 에러를 체크하여(S17) 에러가 없으면 원래 프로그램의 위치로 점프 후 실행하며(S18), S2, S4, S6, S9 및 S14 과정에서 에러가 있으면 장치 오류 메시지를 출력하고(S19), S11 및 S17 과정에서 에러가 있으면 복호화 오류 메시지를 출력한(S20) 후 종료하는 단계로 구성되는 것을 특징으로 하는 PC 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어 방법을 제공한다.In order to achieve the above object, the present invention opens the device driver by the control program (S1) and if there is no error (S2) requests the device ID which is the serial number of the USB security module (S3) and if there is no error (S4) Transmitting a key to the USB security module (S5); In step S5, if there is no error (S6), an encrypted descramble code (E (Discramble) code) existing in software is transmitted to the USB security module (S7), and the descramble code (Discramble code) decrypted from the USB security module. Check the CRC of the descramble code if there is no error (S9) after returning the control program to the control program (S8); After the CRC check, the error is checked (S11) and if there is no error, the execution code (E KM (Exe) code) encrypted using the key KM is transmitted to the USB security module (S12), and the key is received from the USB security module. The execution code (E KSR (Exe) code) encrypted using the KSR is returned (S13) and if there is no error (S14), the E KSR (Exe) code is descrambled in the descrambling procedure of the control program (Sc). S15) CRC checking whether it is properly decoded (S16); And checks the error after the CRC check in step S16 (S17), if there is no error, jumps to the original program location and executes it (S18). (S19), if there is an error in the process S11 and S17 provides a method for controlling the U.S. non-security module using a PC-based encryption chip, characterized in that the step of outputting a decryption error message (S20) and ends. do.

이하, 첨부한 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2a는 무단 복제 및 불법 접근을 차단하기 위해 암ㆍ복호화에 의한 정보보호 시스템 개념도이다.2A is a conceptual diagram of an information protection system by encryption / decryption to prevent unauthorized copying and illegal access.

도 2b를 참조하면, PC 기반의 USB 보안 모듈(20)은 USB 제어기(USB Controller)(23)와 암호화칩(Crypto-chip)(27)으로 구성되며, 컴퓨터(10)의 USB 탭(7)에 연결되며 제어 프로그램(17)에 의해 제어된다.Referring to FIG. 2B, the PC-based USB security module 20 includes a USB controller 23 and a crypto-chip 27, and a USB tab 7 of the computer 10. Is controlled by the control program 17.

USB(Universal Serial Bus) 인터페이스는 PC의 전원의 ON/OFF에 관계없이 삽입이나 제거가 가능하며, 고속의 데이터 전송속도를 가지고 있기 때문에 PC 환경에서 USB 탭(7)에 연결된 USB 인터페이스를 내장한 상기 USB 보안 모듈(20)은 인증 및 데이터 보호 시스템으로 활용하기에 적합하다. 참고로, USB는 PC의 표준 입출력 인터페이스로써 PC의 주변기기에 국한되지 않고 팩스 같은 통신 기기에서 스피커(Speaker)까지 채택되고 있다.The USB (Universal Serial Bus) interface can be inserted or removed regardless of the PC's power on / off, and because it has a high data transfer speed, the USB interface connected to the USB tab 7 in the PC environment is built-in. The USB security module 20 is suitable for use as an authentication and data protection system. For reference, USB is a standard input / output interface of a PC, and is not limited to a PC peripheral device, but also a speaker from a communication device such as a fax machine.

본 발명은 세계 최초로 새로운 인터페이스 규격인 USB를 이용한 소프트웨어의 접근 통제 및 정보보호 그리고 사용자 인증 기능 및 암ㆍ복호화 기능을 갖도록상기 USB 보안모듈(20)내의 암호화칩(27)에 구현하고, 컴퓨터(10)에 내장된 USB 포트에 인터페이스하기 위한 커넥터인 USB 탭(7)에 상기 USB 보안 모듈(20)을 꽂아야만 사용이 가능하고 컴퓨터(10)에 제어 프로그램(17)을 설치하여 사용한다.The present invention is embodied in the encryption chip 27 in the USB security module 20 so as to have the world's first access control and information protection of software using USB, a new interface standard, a user authentication function, and an encryption / decryption function. Only when the USB security module 20 is plugged into the USB tab 7 which is a connector for interfacing to the built-in USB port, the control program 17 is installed and used in the computer 10.

상기 암호화칩(27)에는 암호 및 인증 알고리즘을 ASIC으로 제작하고, 개선된 DES 알고리즘인 비밀키 기반의 대칭 암호화 알고리즘인 KSE 96알고리즘과, 공개키 기반의 비대칭 암호화 알고리즘인 RSA 알고리즘 등 암호화 기능을 갖는 보안 모듈(Security Module)을 제작하여 데이터의 보호 및 소프트웨어의 무단 복제를 방지할 수 있으며, PC의 접근 통제 및 제어하는 기능을 포함한다.The encryption chip 27 has an encryption function such as a cryptographic and authentication algorithm made of ASIC, KSE 96 algorithm, which is an improved DES algorithm, a secret key based symmetric encryption algorithm, and an RSA algorithm, which is an asymmetric encryption algorithm based on a public key. Security Modules can be created to protect data and prevent unauthorized copying of software, and to include access control and control of PCs.

상기 제어 프로그램(17)은 보호되어지고 있는 소프트웨어와 상기 USB 보안 모듈(20) 사이에는 디바이스 드라이버(device driver)가 존재하며 상기 USB 보안 모듈(20)을 제어하는 역할을 한다. 이 때, PC상에서의 프로그램의 노출을 방지하기 위하여 상기 USB 보안 모듈(20)에서 상기 디바이스 드라이버를 통하여 PC의 상태를 감시하게 되며, 어떠한 디버거(debugger)를 포함한 모니터링 프로그램이 존재가 감지되면 그 즉시 실행을 중지하는 회로인 모드 체커(Mode Checker)를 상기 USB 보안 모듈 내에 탑재한다.The control program 17 has a device driver between the protected software and the USB security module 20 and controls the USB security module 20. At this time, in order to prevent the exposure of the program on the PC, the USB security module 20 monitors the state of the PC through the device driver and immediately detects the presence of a monitoring program including any debugger. A mode checker, a circuit for stopping execution, is mounted in the USB security module.

따라서, 본 발명에 의한 PC 기반의 USB 모듈 제어 프로그램은 상용 복제방지 제품에 비해 월등히 견고한 시스템이며 다음 기능을 가진다.Therefore, the PC-based USB module control program according to the present invention is a much more robust system than commercial copy protection products and has the following functions.

■소프트웨어의 무단 복제 및 불법 접근을 차단한다.■ Prevent unauthorized copying and illegal access of the software.

본 발명은 국내외적으로 사용하고 있는 기존의 일반적인 복제방지 락과는 차별성을 가지는 새로운 복제방지 방식으로 구현하여 복제방지 되어 있는 소프트웨어는 상기 USB 보안 모듈(20)이 존재시에만 수행할 수 있으며, 단순히 모듈의 존재 여부에 따라 소프트웨어의 수행을 결정하는 기존 방식과는 완전히 다른 방식이다.The present invention is implemented in a new copy protection method having a distinction from the existing general copy protection locks used at home and abroad can be carried out only when the USB security module 20 is present, the copy protection software, simply It is a completely different approach from the traditional way of determining the performance of software based on the presence of modules.

무단 복제 및 불법접근을 차단하는 시스템의 구성도는 도 2b에 도시한 바와 같이 실행 소프트웨어가 상기 USB 보안 모듈(20)에 의해서 암호화되어 판매되고, 사용자는 정당한 구매를 통해 사용자의 인증을 받은 상기 USB 보안 모듈(20)이 존재해야만 소프트웨어를 실행할 수 있으므로 소프트웨어의 불법적인 복제 및 접근이 방지된다.The configuration diagram of a system for preventing unauthorized copying and illegal access is shown in FIG. 2B, and the execution software is encrypted and sold by the USB security module 20, and the user receives the user's authentication through a legitimate purchase. Since the security module 20 must be present to execute the software, illegal copying and access of the software is prevented.

상기 실행 소프트웨어는 USB 보안 모듈에 의해 보호되고 있는 부분(E(code))을 상기 USB 보안 모듈(20)로 사용 가능하게 수정을 가하며, 필요에 따라 생성된 데이터의 암·복호화 작업을 상기 USB 보안모듈(20)을 이용하여 수행할 수 있다. 따라서, 상기 USB 보안 모듈(20)에 의해 보호된 데이터의 제 3자에 의한 유출은 같은 보안 모듈(Security Module)내에 존재하지 않는 한 불가능하게 된다.The execution software modifies the portion E (code) protected by the USB security module so that the USB security module 20 can be used, and encrypts / decrypts data generated as necessary. This can be done using the module 20. Therefore, the leakage by the third party of the data protected by the USB security module 20 becomes impossible unless it is in the same Security Module.

■사용자 인증을 수행한다.■ Perform user authentication.

사용자에게 발급되는 상기 USB 보안 모듈(20)은 내부에 유일한 ID를 가지고 있으며, 그에 따른 암호화 알고리즘이 내장되어 있어 견고한 인증 기능을 가지며, 상기 USB 보안 모듈(20)에 의해 암호화된 데이터는 같은 보안 모듈이나 허가된 ID를 갖는 모듈에서만 복호화가 이루어지므로 접근통제가 가능하다.The USB security module 20 issued to a user has a unique ID therein and has a built-in encryption algorithm, thereby having a robust authentication function, and the data encrypted by the USB security module 20 is the same security module. However, access control is possible because the decryption is performed only in the module with the authorized ID.

■데이터의 암ㆍ복호화 기능을 갖는다.■ It has a function of encrypting / decrypting data.

상기 USB 보안모듈(20)은 데이터의 고속 암ㆍ복호화 작업을 수행하게 되며, 상기 USB 보안 모듈(20)에 내장된 상기 KSE96 암호화 알고리즘이나 RSA 암호화 알고리즘은 필요에 따라 테이블을 변환할 수 있다. 따라서, 유일한 알고리즘으로 동작하게 되기 때문에 암호화에 이용한 모듈 없이는 복호화되지 않으므로 강력한 데이터 보호 기능을 발휘한다.The USB security module 20 performs a fast encryption / decryption operation of data, and the KSE96 encryption algorithm or the RSA encryption algorithm built in the USB security module 20 may convert a table as necessary. Therefore, since it operates with a unique algorithm, it cannot be decrypted without a module used for encryption, thus exhibiting a strong data protection function.

상기 USB 탭(7)은 컴퓨터(10)의 뒷면에 설치된 USB 커넥터의 연장형이며, 허브(HUB)의 기능을 같이 겸한다. 상기 USB 보안모듈(20)은 내부에 자체 설계하고 ASIC으로 제작하게 될 상기 암호칩(27)을 내장하고 있다. 사용자는 상기 USB 보안모듈(20)을 이용하여 PC에 접근할 수 있으며 또한 상기 USB 보안모듈(20)에 따른 접근 권한에 의해서 응용 프로그램의 수행 가능여부가 제한될 수 있다.The USB tab 7 is an extension of a USB connector installed on the back of the computer 10, and also serves as a hub. The USB security module 20 has a built-in encryption chip 27 to be designed in-house and ASIC. A user may access a PC using the USB security module 20 and may be limited whether or not an application program can be executed by an access right according to the USB security module 20.

○ 기능 및 규격○ Function and standard

▷ USB 보안모듈을 이용한 사용자 로그인/로그아웃 기능▷ User login / logout function using USB security module

인증 기능을 제공하는 기 상용 제품들은 자동 로그인/로그아웃(login/logout) 기능을 제공하지 않으며 사용자 환경을 분리해서 관리하지 않는다.Commercially available products that provide authentication do not provide automatic login / logout and do not manage user environments separately.

▷ 분리된 사용환경 설정 기능▷ Separate environment setting function

자동 로그인(login) 후 사용자에 따라 설정된 환경이 자동 셋팅된다. 또한, 로그아웃(logout)시 자동 저장되어 다음 로그인 시에 복구되어 진다.After the automatic login (login), the environment set by the user is automatically set. It is also automatically saved at logout and restored at the next login.

▷ 소프트웨어별 사용권한의 설정 및 접근통제 기능▷ Permission setting and access control function by software

클래스 아이디(Class ID)로 암호화되어 배급받은 S/W는 같은 Class ID를 내장한 USB 보안 모듈에 의해 수행 가능해 진다. 따라서, 같은 사무실내에서만 사용이 허가된 경우 사무실의 공통 Class ID를 이용하여 S/W를 보호할 수 있다.S / W encrypted with Class ID can be executed by USB security module with same Class ID. Therefore, if the use is allowed only in the same office, the S / W can be protected using the common Class ID of the office.

▷ 휴대의 간편성▷ Easy to carry

USB 보안모듈은 일반 도장 정도(60 mm x 15mm x 7mm)의 크기에 불과하며 휴대가 간편하고 동작 시스템 및 물리적 환경의 거의 영향을 받지 않는다.The USB security module is only about the size of a normal paint (60mm x 15mm x 7mm), is easy to carry and is hardly affected by the operating system and the physical environment.

▷ 복제의 불가능▷ No replication

기존의 복제 방지 시스템(Lock)의 문제점을 요약하면, 기존의 락은 접근하기 쉬운 소프트웨어에 락의 유무를 체크하는 기능이 있기 때문에 소프트웨어의 변경만으로 락의 기능을 제거할 수 있었다, 그러나 본 발명에서 적용한 알고리즘은 소프트웨어 실행시 수행해야 할 실행 코드(Execution code)를 암호화함으로써 근본적으로 소프트웨어의 변경을 불가능하게 하고 있다.Summarizing the problems of the existing copy protection system (Lock), since the existing lock has a function of checking the presence or absence of a lock in accessible software, the function of the lock can be removed only by changing the software. The applied algorithm encrypts execution code that must be executed when the software is executed, thereby making it impossible to change the software.

ㆍ 고속의 데이터 처리 기능 : 1.5 Mbps, 12 Mbpsㆍ High speed data processing function: 1.5 Mbps, 12 Mbps

ㆍ USB 표준 규격 지원 : V 1.1ㆍ USB standard specification support: V 1.1

ㆍ 다중 언어(language) 지원 :Multilanguage support:

C, C++, Clipper, Pascal,Visual Basic, Power Builder, DelphiC, C ++, Clipper, Pascal, Visual Basic, Power Builder, Delphi

ㆍ 자동 설치(install) 기능Automatic installation function

ㆍ 소프트웨어 복제방지 기능(Copy Protection)ㆍ Software Copy Protection

ㆍ 데이터 암호화ㆍ복호화 기능(Encryption/Decryption)ㆍ Data encryption / decryption function (Encryption / Decryption)

ㆍ 보안모듈 자동 보호 기능(Security Module Auto Protection)ㆍ Security Module Auto Protection

ㆍ 보안모듈 제어용 소프트웨어 crack 방지 기능ㆍ Software crack prevention function for security module control

(anti debugging, Tamper Resistance)(anti debugging, Tamper Resistance)

ㆍUSB 인터페이스 지원 장치와의 충돌 회피 기능ㆍ Collision avoidance with USB interface device

▷ USB 보안 모듈▷ USB Security Module

- 보안 모듈의 개발-Development of security modules

ㆍ암호칩 : 데이터의 암ㆍ복호화 기능, 사용자 인증기능ㆍ Chip Chip: Data encryption / decryption function, user authentication function

ㆍ인터페이스 보드 : USB 포트를 이용한 입출력, 전송 데이터의 보호 기능ㆍ Interface board: Protection of I / O and transmission data using USB port

ㆍUSB 보안모듈 제어기 : 데이터 보호 기능을 내장한 장치제어기 프로그램ㆍ USB Security Module Controller: Device controller program with built-in data protection

ㆍ실행형 데이터의 자동보호 TOOL : 실행 파일 및 데이터의 자동 락킹 툴ㆍ Automatic protection tool of executable data: Automatic locking tool of executable file and data

ㆍ실행형 데이터의 수동구현 Library :ㆍ Manual implementation library of executable data:

실행 파일의 소스를 적용한 라이브러리Library with source of executable

ㆍ개발자용 KIT : USB 보안모듈의 적용을 쉽게 하기 위한 개발자용 DKㆍ KIT for developers: DK for developers to easily apply USB security module

ㆍ모듈 Programmer : 모듈의 제작시 프로그래밍을 위한 H/W 기반의 툴ㆍ Module Programmer: H / W based tool for programming during module manufacturing

ㆍ모듈 테스터 : 보안기능이 있는 USB 보안 모듈 검증 H/W 툴ㆍ Module tester: USB security module verification H / W tool with security function

- 관리망의 개발-Development of management network

ㆍ모듈관리 P/G : 모듈 key값 관리를 위한 DB 관리ㆍ Module management P / G: DB management for module key value management

ㆍ인증 코드(Auth. Code) 제작 P/G : 보안기능이 있는 인증코드 발행 P/Gㆍ Authentication code (Auth. Code) production P / G: Authentication code issue with security function P / G

ㆍ최종 사용자의 접속을 위한 웹 사이트 설계ㆍ Web site design for end user access

현재 기 상용제품 중 인증을 위한 제품으로 스마트 카드(smart card), IC 카드, 자기띠 카드 그리고 생체인식 시스템 등이 있으며, 데이터 보호 및 소프트웨어 복제장치로는 HardLock과 Sentinel Lock 등과 같은 물리적인 제품이 많이 판매되고 있다. 다음 표 1은 타 제품과 본 발명의 개발품과 특성을 비교한 것이다.Currently, products for certification include smart cards, IC cards, magnetic stripe cards, and biometric systems, and there are many physical products such as HardLock and Sentinel Lock as data protection and software duplication devices. It is sold. Table 1 compares the developed products and the characteristics of other products and the present invention.

종류Kinds 타제품Other products 본 발명의 개발품Development of the present invention 인증Smart CardCertification Smart Card 복제방지장치지능형 락(smart lock)Copy protection intelligent lock 설치형태Type of installation 전화카드 형태Phone card form ㆍ내장: ISA 슬롯 삽입ㆍ외장: LPT 삽입ㆍ Internal: ISA slot insertion ・ External: LPT insertion 외장: USB 포트 삽입External: Insert USB Port 동작방법How it works 카드내의 암호화 알고리즘이 사용자에게 데이터 및 정보를 암호화해서 전송 및 보관Encryption algorithm in card encrypts data and information to user for transmission and storage 락(lock) 내부에 마이크로프로세서를 두어 lock과 프로그램의 존재여부를 서로 체크하는 방법How to check the existence of a lock and a program by placing a microprocessor inside the lock 보안모듈내에 마이크로 프로세서를 내장한 암호화 칩을 두어 고속의 암호화 작업 및 복제방지 작업을 수행High speed encryption and copy protection by placing an encryption chip with a microprocessor in the security module 장단점pros and cons ㆍ락의 복제가 어렵다ㆍ휴대하기 간편하다ㆍ인증기능 및 데이터 보관 기능만을 제공ㆍ추가적인 입력 장치가 필요하다ㆍ데이타 암호화 기능이 없다ㆍ It is difficult to duplicate locks · Easy to carry · Provides only authentication and data archiving functions • Needs additional input device · No data encryption ㆍ단순형에 비해 기능이 많다ㆍ재활용 불가능ㆍ지원 소프트웨어에 의한 데이터 암호화를 수행하므로 지원되는 부가 기능의 속도가 느리다ㆍ암호화 데이터의 비도가 낮다ㆍ More functions than simple type, not recyclable, slow speed of additional functions supported due to data encryption by supporting software, and low ratio of encrypted data ㆍ원칩으로 이루어진 암호칩에 의해 암호화를 수행하므로 복제가 불가능하다ㆍ재활용이 가능하다ㆍ다양한 부가기능이 있다ㆍ암호화 수행속도가 빨라서 초고속 통신망에 적용이 가능하다ㆍ암호화 데이터의 비도가 높다ㆍ추가적인 입력장치가 필요없다ㆍ It is impossible to copy because it is encrypted by one-chip encryption chip, and it is possible to reuse it.It has various additional functions.It is applicable to high-speed communication networks due to the speed of encryption.It has a high rate of encryption data. No device needed 제품및회사Product and Company ㆍMegaLock (한도)ㆍHASP (Alladin)ㆍSentinel (Rainbow)ㆍHard LockMegaLock (limit), HASP (Alladin), Sentinel (Rainbow), Hard Lock 전세계적으로 개발되어 있지 않음Not developed worldwide

암ㆍ복호화 알고리즘 및 인증 알고리즘을 ASIC으로 제작한 암호칩(Crypto chip)에 암호화 기능을 갖는 USB 보안 모듈에 데이터의 보호 및 소프트웨어의 무단 복제를 방지하고, 암호칩을 이용하여 PC의 접근 통제 및 제어하는 사용자 인증 기능을 제공한 PC 기반의 USB 모듈을 제어 프로그램에 의해 제어한다.Protects data and prevents unauthorized copying of software in a USB security module that encrypts encryption / decryption algorithms and authentication algorithms with cryptographic chips made with ASICs, and controls and controls PC access using cryptographic chips. The PC-based USB module that provides the user authentication function is controlled by the control program.

도 3은 본 발명에 의한 USB 보안 모듈과 프로그램 복제 방지 방법을 설명한 개략도이다. 프로그램 제작자가 상기 USB 보안모듈(20)의 키테이블(22)에 저장되어 있는 키를 이용하여 프로그램의 실행 코드나 데이터를 암호화하여 보조저장매체(12)에 저장한다.3 is a schematic diagram illustrating a USB security module and a program copy protection method according to the present invention. The program maker encrypts the execution code or data of the program using the key stored in the key table 22 of the USB security module 20 and stores the encrypted code in the auxiliary storage medium 12.

상기 컴퓨터(10)는 제어 프로그램(17)에 따라 동작하여 상기 보조저장매체(12)에 저장된 암호화된 실행코드나 데이터와 디버그 모드 판별 비트를 함께 디바이스 드라이버(device driver)를 통하여 상기 USB 보안모듈(20)로 전송한다.The computer 10 operates in accordance with the control program 17 to share the encrypted execution code or data and the debug mode determination bits stored in the auxiliary storage medium 12 through a device driver. 20).

상기 USB 보안모듈(20)은 상기 컴퓨터(10)로부터 암호화된 실행코드나 데이터와 디버그 모드 판별 비트를 입력받아, 디버그 모드가 아닐 경우에만 암호화된 실행코드나 데이터를 미리 저장되어 있는 특정 키를 사용하여 복호화한 다음 상기 컴퓨터(10)로 전송한다.The USB security module 20 receives the encrypted execution code or data and the debug mode determination bit from the computer 10, and uses a specific key that stores the encrypted execution code or data in advance only in the debug mode. Then decrypt and transmit to the computer 10.

상기 모드 검사기(mode checker)(24)는 상기 버퍼를 통해 상기 컴퓨터(10)로부터 디버그 모드 판별 비트를 입력받아 디버그 모드인지 여부를 판별하여 디버그 모드가 아닐 경우에만 암ㆍ복호화 과정을 수행하도록 키테이블(22)에 저장된 특정 키를 암ㆍ복호화기(26)로 출력하도록 되어 있다.The mode checker 24 receives a debug mode determination bit from the computer 10 through the buffer, determines whether the mode is in the debug mode, and performs the encryption / decryption process only when the debug mode is not in the debug mode. The specific key stored in (22) is outputted to the encryption / decryptor 26.

상기 암ㆍ복호화기(26)는 상기 특정 키를 입력받아 상기 버퍼를 통해 입력되는 암호화된 실행코드나 데이터를 복호화하여 상기 컴퓨터(10)로 출력한다.The encryption / decryptor 26 receives the specific key and decrypts the encrypted execution code or data input through the buffer and outputs the decrypted execution code or data to the computer 10.

이때, 상기 키테이블(22)과 상기 모드 검사기(24) 및 상기 암ㆍ복호화기(26)는 하나의 응용 주문형 집적회로(ASIC)로 구현되어 상기 USB 보안모듈(20)에 내장되며, 상기 키 테이블(22)은 쓰기(write)만 가능한 형태로 제작되어 제작자 외에는 키를 알 수 없도록 하며, 필요에 따라 다수개의 프로그램에 대한 복제 방지를 동시에 지원하기 위해 다수개의 키가 저장될 수 있다.In this case, the key table 22, the mode checker 24 and the encryption / decryptor 26 are implemented as an application specific integrated circuit (ASIC) is embedded in the USB security module 20, the key The table 22 is made in a write-only form so that the key is unknown to the producer, and a plurality of keys may be stored to simultaneously support copy protection for a plurality of programs.

상기 보조저장매체(12)에 저장된 프로그램은 제어 프로그램과 상기 USB 보안모듈(20)의 키테이블(22)에 저장되어 있는 키를 이용하여 암호화된 실행코드나 데이터 및, 암호화되지 않은 실행코드나 데이터로 이루어져 있다. 상기 컴퓨터(10)의응용프로그램에 의해 상기 보조저장매체(12)에 저장된 프로그램을 실행하면 제어프로그램이 상기 컴퓨터(10)의 메모리에 저장되고, 상기 컴퓨터(10)는 상기 제어프로그램에 따라 암호화된 실행코드 및 데이터에 대한 위치 정보를 디바이스 드라이버(14)로 출력한다. 즉, 상기 응용 프로그램이 실행파일을 실행할 때에는 먼저 실행이 가능한 파일인지를 체크하고 실행 가능한 파일이면 실행 규칙에 따라 실행되는데, 프로그램이 실행되기 위해 먼저 프로그램을 적재할 수 있을 정도의 메모리가 존재하는지를 체크하고, 존재한다면 메모리에 실행모듈을 적재한다. 그리고, 실행파일의 내용중 재배치 정보를 읽어 실행모듈의 특정 부분들을 재배치한 다음 이후 상기 컴퓨터(10)의 CPU 레지스터에 시작 위치 등의 정보를 설정한다.The program stored in the secondary storage medium 12 is an executable code or data encrypted using a control program and a key stored in the key table 22 of the USB security module 20, and an unencrypted executable code or data. Consists of When a program stored in the auxiliary storage medium 12 is executed by an application program of the computer 10, a control program is stored in the memory of the computer 10, and the computer 10 is encrypted according to the control program. Position information on the execution code and data is output to the device driver 14. That is, when the application program executes an executable file, it is first checked whether the executable file is executable. If the executable file is executable, the program is executed according to an execution rule. In order to execute the program, it is checked whether there is enough memory to load the program. If it does exist, it loads the execution module into memory. Then, the relocation information is read from the contents of the executable file to reposition specific parts of the execution module, and then information such as a start position is set in the CPU register of the computer 10.

이와 같이, 실행 모듈의 특정 부분을 재배치함에 따라 메모리에 적재되어 있는 실행 모듈을 파일로 다시 저장하는 방법으로 복제하는 것이 불가능해진다.As such, repositioning a specific portion of an execution module makes it impossible to duplicate the execution module loaded in the memory by storing the file again as a file.

도 4는 본 발명에 의한 USB 보안 모듈과 제어 프로그램과의 동작을 나타낸 흐름도이다.4 is a flowchart showing the operation of the USB security module and the control program according to the present invention.

상기 제어 프로그램(17)에 의해 디바이스 드라이버를 오픈하고(단계 S1) 에러가 없으면(S2) USB 보안모듈(20)의 시리얼 넘버인 장치 ID를 요청하고(단계 S3) 에러가 없으면(단계 S4) 상기 USB 보안모듈(20)로 키를 전송한다(단계 S5).If the device driver is opened by the control program 17 (step S1) and there is no error (S2), the device ID which is the serial number of the USB security module 20 is requested (step S3), and if there is no error (step S4) The key is transmitted to the USB security module 20 (step S5).

S5 과정에서 에러가 없으면(단계 S6) 상기 USB 보안모듈(20)로 소프트웨어에 존재하는 암호화된 디스크램블 코드(E(Discramble) code)를 전송하고(단계 S7), 상기 USB 보안모듈(20)로부터 복호화된 디스크램블 코드(Discramble code)를 제어프로그램으로 회송한(단계 S8) 후 에러가 없으면(단계 S9) 상기 디스크램블 코드의CRC를 체크한다(단계 S10).If there is no error in step S5 (step S6), the encrypted descrambling code (E (Discramble) code) existing in the software is transmitted to the USB security module 20 (step S7), and from the USB security module 20 After the decoded descramble code is returned to the control program (step S8), if there is no error (step S9), the CRC of the descramble code is checked (step S10).

CRC 체크 후, 에러를 체크하여(단계 S11) 에러가 없으면 상기 USB 보안모듈(20)로 키 KM을 사용하여 암호화되어 있는 실행 코드(EKM(Exe) 코드)를 전송하고(단계 S12), 상기 USB 보안모듈로부터 키 KSR을 사용하여 암호화한 실행 코드(EKSR(Exe) 코드)를 암호화하여 회송하며(단계 S13) 에러가 없으면(단계 S14) 상기 EKSR(Exe) 코드를 제어 프로그램의 디스크램블링 프로시쥬어에서 디스크램블링(Discrambling)하여(단계 S15) 제대로 복호화되어 있는지 CRC 검사한다(단계 S16).After the CRC check, the error is checked (step S11) and if there is no error, the execution code (E KM (Exe) code) encrypted using the key KM is transmitted to the USB security module 20 (step S12). Encrypts and returns the executable code (E KSR (Exe) code) encrypted using the key KSR from the USB security module (step S13). If there is no error (step S14), the descrambling of the E KSR (Exe) code is performed. The procedure descrambling (discrambling) (step S15) and checks whether the CRC is correctly decoded (step S16).

S16 과정의 CRC 검사 후 에러를 체크하여(단계 S17) 에러가 없으면 원래 프로그램의 위치로 점프 후 실행하며(단계 S18), S2, S4, S6, S9 및 S14 과정에서 에러가 있으면 장치 오류 메시지를 출력하고(단계 S19), S11 및 S17 과정에서 에러가 있으면 복호화 오류 메시지를 출력한(단계 S20) 후 종료한다.Check the error after the CRC check in step S16 (step S17). If there is no error, jump to the original program position and then execute it (step S18). If there is an error in steps S2, S4, S6, S9, and S14, output an error message. (Step S19), if there is an error in steps S11 and S17, the decoding error message is output (step S20) and then terminated.

도 5a 내지 도 5c는 USB 보안 모듈내의 동작을 나타낸 흐름도이다.5A-5C are flow charts illustrating the operation within the USB security module.

컴퓨터의 운영체제에서 상기 USB 보안 모듈(20)로 사용허가를 요청하여(단계 S21) 허가되면(단계 S22) 상기 USB 보안모듈(20)내 제어기의 내부 레지스터를 초기화하고(단계 S23) 데이터가 입력인지를 체크하여(단계 S24) 데이터 입력이 아니면 장치가 제거되었는지를 체크하여(단계 S25) 제거되면 종료하고 제거되지 않았으면 데이터 입력을 다시 체크한다.The operating system of the computer requests permission to use the USB security module 20 (step S21), and if permission is granted (step S22), initializes an internal register of the controller in the USB security module 20 (step S23). Check (step S24), if it is not a data input, check whether the device has been removed (step S25). If it is removed, it ends. If not, it checks the data input again.

상기 데이터 입력이면 제어워드를 분석하고(단계 S26) 모듈 정보요청인지를체크하여(단계 S27) 모듈 정보이면 USB 포트를 통해 모듈 ID를 반환한(단계 S28) 후 S24 과정을 반복하고, 모듈 정보가 아니면 디버거 명령인지를 체크한다(단계 S29).If the data is input, the control word is analyzed (step S26) and the module information request is checked (step S27). If the module information is returned, the module ID is returned through the USB port (step S28). Otherwise, it is checked whether it is a debugger command (step S29).

상기 디버거 명령이면 입력값과 디버그 정보 테이블(Debug Info table)을 비교하고(단계 S30) 디버거 존재를 체크하여(단계 S31) 디버거가 존재하지 않으면 S24 단계로 귀환하고 디버거가 존재하면 USB 포트를 통해 에러를 반환하고(단계 S32) 상기 USB 보안모듈(20)을 강제로 정지한다(단계 S33).The debugger command compares the input value with the debug info table (step S30) and checks for the presence of the debugger (step S31). If the debugger does not exist, it returns to step S24. If the debugger exists, an error is detected through the USB port. Return (step S32) and forcibly stop the USB security module 20 (step S33).

상기 디버거 명령이 아니면 키 셋팅 명령인지를 체크하여(단계 S34) 키셋팅이 아니면 데이터 입출력 명령인지를 체크하여(단계 S35) 입출력 명령이 아니면 S24 과정으로 복귀한다.If it is not the debugger command, it is checked whether it is a key setting command (step S34). If it is not a key setting, it is checked whether it is a data input / output command (step S35).

상기 제어워드 분석결과가 상기 키 셋팅 명령이면 내부키 셋팅인지를 체크하여(단계 S36) 내부 키 셋팅이면 모듈 ID와 입력값으로 내부키를 생성하고(단계 S37) 내부 키를 셋팅하고(단계 38) S24 단계로 복귀한다.If the control word analysis result is the key setting command, it is checked whether it is an internal key setting (step S36). If an internal key setting, an internal key is generated using a module ID and an input value (step S37), and an internal key is set (step 38). Return to step S24.

상기 제어워드 분석결과가 상기 내부키 셋팅이 아니면 외부키 셋팅인지를 체크하여(단계 S39) 외부키 셋팅 이면 입력값으로 외부키를 셋팅한(단계 S40) 후 S24 단계로 복귀하고 외부키 셋팅이 아니면 스크램블키 셋팅인지를 체크하여(단계 S41) 모듈 ID와 입력값으로 스크램블키 생성함으로써(단계 S42) 스크램블키를 셋팅하고(단계 S43) S24 단계로 복귀하고, 스크램블키 셋팅이 아니면 S24 단계로 복귀한다.If the result of the control word analysis is not the internal key setting or the external key setting (step S39), if the external key setting is set, the external key is set as an input value (step S40), and then returns to step S24. By checking whether the scrambled key is set (step S41) and generating a scrambled key with the module ID and the input value (step S42), the scrambled key is set (step S43) and the process returns to step S24, and if not the scrambled key setting, returns to step S24. .

상기 제어워드 분석 후, 상기 제어워드 분석결과가 상기 데이터 입출력 명령이면 암호화인지를 체크하여(단계 S44) 암호화이면 상기 내부키 인지를 체크하여(단계 S45) 상기 내부키이면 내부키로 입력값을 암호화하고(단계 S46) 상기 내부키 이용이 아니면 상기 외부키로 입력값을 암호화한다(단계 S47).After the control word analysis, if the control word analysis result is the data input / output command, it is checked whether it is encryption (step S44). If it is encryption, it is checked whether it is the internal key (step S45). (Step S46) If the internal key is not used, the input value is encrypted with the foreign key (step S47).

S44 과정에서 암호화가 아니면 내부키 이용인지를 체크하여(단계 S48) 내부키 이용이면 내부키로 입력값을 복호화하고(단계 S49) 내부키 이용이 아니면 외부키로 입력값을 복호화한다(단계 S50).In step S44, it is checked whether the encryption is an internal key or not (step S48). If the internal key is used, the input value is decrypted with the internal key (step S49). If the internal key is not used, the input value is decrypted with the external key (step S50).

암호화 및 복호화 과정 후, 상기 제어 워드내에 설정되어 있는 플래그(flag) 비트에 의해 스크램블(Scramble)을 수행하는 지를 체크하여(단계 S51) 스크램블을 수행하면 결과값의 스크램블을 수행한(단계 S52) 후 USB 보안모듈(20)의 스크램블러, 버퍼, 디바이스 드라이버를 통해 상기 제어 프로그램(17)으로 결과값을 반환한(단계 S53) 다음 S24 단계로 복귀하고, 스크램블을 수행하지 않으면 곧바로 결과값을 반환한 다음 S24 단계로 복귀한다.After the encryption and decryption process, it is checked whether or not to perform scramble by the flag bit set in the control word (step S51), and then scrambles to perform scramble of the result value (step S52). After returning the result value to the control program 17 through the scrambler, buffer, and device driver of the USB security module 20 (step S53), the process returns to step S24, and if the scramble is not performed, the result value is immediately returned. Return to step S24.

따라서, 사용자 인증 및 데이터 암·복호화 알고리즘을 내장한 USB 보안 모듈의 제어 프로그램에 의해 PC 기반의 USB 암호칩을 제어하여 소프트웨어 복제 방지 및 불법 사용자의 접근을 차단할 수 있다.Therefore, the PC-based USB encryption chip can be controlled by the control program of the USB security module incorporating user authentication and data encryption / decryption algorithms, thereby preventing software copying and preventing unauthorized users from accessing.

상술한 바와 같이, 본 발명에 의한 PC 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어 방법은 USB 인터페이스에 연결된 제어 프로그램에 의해 RSA 암호화 알고리즘, KSE96알고리즘, 스크램블러(Scrambler) 등 암·복호화 알고리즘이 ASIC으로 내장된 암호화 칩을 포함한 USB 보안모듈을 제어함으로써 사용자 인증, 암호화칩을 이용하여 PC의 중요 데이터의 접근 통제 및 제어, USB 보안 모듈을 이용하여 중요 데이터의 암호화 및 복호화에 의해 소프트웨어 무단 복제 및 불법 접근을 차단할 수 있는 효과가 있다.As described above, the U.S. non-security module control method using a PC-based encryption chip according to the present invention is an encryption / decryption algorithm such as an RSA encryption algorithm, a KSE96 algorithm, a scrambler, and the like by a control program connected to a USB interface. By controlling the USB security module including the encryption chip built into this ASIC, user authentication, access control and control of important data on the PC using the encryption chip, and unauthorized copying of the software by encrypting and decrypting the important data using the USB security module And it is effective to block illegal access.

또한, 실행 소프트웨어는 USB 보안 모듈의 암호화 알고리즘 같은 알고리즘으로 암호화되어 판매되고 제어 프로그램은 실행 소프트웨어 중 암호화되어 있는 부분을 복호화 후 실행하며, 복호화된 S/W의 불법적인 크랙킹(Cracking) 방지를 위한 실행 종료 시점의 메모리 관리, 디버깅 툴 등 불투명한 실행 감지시 S/W의 수행 중지 기능과 USB 보안 모듈에는 클래스 아이디(Class ID)와 개인 아이디(Private ID)가 각각 10개 저장되며, 단일 모듈에 의한 다수개의 소프트웨어 보호 기능을 가지며 EEPROM을 사용함으로써 모듈의 재활용 및 사용 범위를 확대할 수 있다.In addition, the execution software is encrypted and sold with an algorithm such as an encryption algorithm of the USB security module, and the control program executes after decrypting the encrypted portion of the execution software, and executes to prevent illegal cracking of the decrypted S / W. When opaque execution is detected such as memory management and debugging tool at the end, S / W execution stop function and USB security module store 10 Class ID and Private ID, respectively. With multiple software protection features and the use of EEPROMs, the module can be reused and extended.

새로운 복제 방지 알고리즘이 내장된 암호화 칩은 USB 모듈뿐만 아니라 기존의 PCI 및 ISA 인터페이스 규격의 보안 카드나 복제 방지 시스템으로 적용할 수 있으며, USB 보안 모듈은 USB 포트를 통하여 PC에 꼽으면 절전기능의 복구와 함께 자동 로그인(login)을 수행하며 보안모듈이 제거되면 자동 로그 아웃(logout) 후 절전기 능이 가동되고 철저한 사용자 관리와 아울러 절전 효과를 가지며, USB 모안 모듈을 이용한 사용자 인증 기술은 기존의 패스워드를 이용한 소프트웨어 인증 기술 보다 인증 강도가 월등하다.The encryption chip with the new copy protection algorithm can be applied not only to the USB module but also to the security card or copy protection system of the PCI and ISA interface standard, and the USB security module can be restored to the power saving function by plugging it into the PC through the USB port. When the security module is removed and the security module is removed, the power saving function is activated after the automatic logout, and the user management with thorough user management is saved. The user authentication technology using the USB security module uses the existing password software. Certification strength is superior to certification technology.

상기에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art will be able to variously modify and change the present invention without departing from the spirit and scope of the invention described in the claims below. It will be appreciated.

Claims (3)

컴퓨터에 USB 인터페이스되는 USB 탭과 USB 보안모듈을 구비한 정보보호 시스템에 있어서:In an information protection system with a USB tab and a USB security module that are USB interfaced to a computer: (a) 제어 프로그램에 의해 디바이스 드라이버를 오픈하고(S1) 에러가 없으면(S2) USB 보안모듈의 시리얼 넘버인 장치 ID를 요청하고(S3) 에러가 없으면(S4) 상기 USB 보안모듈로 키를 전송하는 단계(S5);(a) Open the device driver by the control program (S1) and if there is no error (S2) request the device ID which is the serial number of the USB security module (S3) and if there is no error (S4) send the key to the USB security module. Step S5; (b) S5 과정에서 에러가 없으면(S6) 상기 USB 보안모듈로 소프트웨어에 존재하는 암호화된 디스크램블 코드(E(Discramble) code)를 전송하고(S7), 상기 USB 보안모듈로부터 복호화된 디스크램블 코드(Discramble code)를 제어프로그램으로 회송한(S8) 후 에러가 없으면(S9) 상기 디스크램블 코드의 CRC를 체크하는 단계(S10);(b) If there is no error in step S5 (S6), the encrypted descramble code (E (Discramble) code) existing in the software is transmitted to the USB security module (S7), and the descramble code decrypted from the USB security module. Checking the CRC of the descramble code if there is no error after returning (Discramble code) to the control program (S8) (S10); (c) CRC 체크 후, 에러를 체크하여(S11) 에러가 없으면 상기 USB 보안모듈로 키 KM을 사용하여 암호화되어 있는 실행 코드(EKM(Exe) 코드)를 전송하고(S12), 상기 USB 보안모듈로부터 키 KSR을 사용하여 암호화한 실행 코드(EKSR(Exe) 코드)를 회송하며(S13) 에러가 없으면(S14) 상기 EKSR(Exe) 코드를 제어 프로그램의 디스크램블링 프로시쥬어에서 디스크램블링(Discrambling)하여(S15) 제대로 복호화되어 있는지 CRC 검사하는 단계(S16); 및(c) After checking the CRC, check the error (S11) and if there is no error, transmit the encrypted execution code (E KM (Exe) code) using the key KM to the USB security module (S12), and the USB security The execution code (E KSR (Exe) code) encrypted using the key KSR is returned from the module (S13) and if there is no error (S14), the E KSR (Exe) code is descrambled in the descrambling procedure of the control program. (S15) CRC check whether it is correctly decoded (S16); And (d) S16 과정의 CRC 검사 후 에러를 체크하여(S17) 에러가 없으면 원래 프로그램의 위치로 점프 후 실행하며(S18), S2, S4, S6, S9 및 S14 과정에서 에러가 있으면 장치 오류 메시지를 출력하고(S19), S11 및 S17 과정에서 에러가 있으면 복호화 오류 메시지를 출력한(S20) 후 종료하는 단계로 구성되는 것을 특징으로 하는 PC 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어 방법.(d) Check the error after CRC check in step S16 (S17). If there is no error, jump to the original program position and execute it (S18). If there is an error in S2, S4, S6, S9, and S14, the device error message is displayed. Outputting (S19) and outputting a decryption error message if there is an error in steps S11 and S17 (S20) and ending using a PC based encryption chip, characterized in that the control method using a non-security module. . 제 1 항에 있어서,The method of claim 1, 컴퓨터의 운영체제에서 상기 USB 보안 모듈로 사용허가를 요청하여(S21) 허가되면(S22) 상기 USB 보안 모듈내 제어기의 내부 레지스터를 초기화하고(S23) 데이터가 입력인지를 체크하여(S24) 데이터 입력이 아니면 장치가 제거되었는지를 체크하여(S25) 제거되면 종료하고 제거되지 않았으면 데이터 입력을 다시 체크하는 단계;When the operating system of the computer requests permission to use the USB security module (S21), and when it is permitted (S22), it initializes an internal register of the controller in the USB security module (S23) and checks whether data is input (S24). Checking whether the device has been removed (S25), if it is removed, ending; if not, checking the data input again; 상기 데이터 입력이면 제어워드를 분석하고(S26) 모듈 정보요청인지를 체크하여(S27) 모듈 정보이면 USB 포트를 통해 모듈 ID를 반환한(S28) 후 S24 과정을 반복하고, 모듈 정보가 아니면 디버거 명령인지를 체크하는(S29) 단계;If the data is input, the control word is analyzed (S26) and the module information request is checked (S27). If the module information is returned through the USB port module ID (S28), the process is repeated S24, and if not the module information, the debugger command Checking the recognition (S29); 상기 디버거 명령이면 입력값과 디버그 정보 테이블(Debug Info table)을 비교하고(S30) 디버거 존재를 체크하여(S31) 디버거가 존재하지 않으면 S24 단계로 귀환하고 디버거가 존재하면 USB 포트를 통해 에러를 반환하고(S32) 상기 USB 보안 모듈을 강제로 정지하는 단계(S33);The debugger command compares the input value with the debug info table (S30) and checks the existence of the debugger (S31). If the debugger does not exist, the process returns to step S24 and if the debugger exists, an error is returned through the USB port. (S32) forcibly stopping the USB security module (S33); 상기 디버거 명령이 아니면 키 셋팅 명령인지를 체크하여(S34) 키셋팅이 아니면 데이터 입출력 명령인지를 체크하여(S35) 입출력 명령이 아니면 S24 과정으로복귀하는 단계;Checking whether it is a key setting command if it is not the debugger command (S34), and checking whether it is a data input / output command if it is not a key setting (S35), and returning to step S24 if it is not an input / output command; 상기 제어워드 분석결과가 상기 키 셋팅 명령이면 내부키 셋팅인지를 체크하여(S36) 내부 키 셋팅이면 모듈 ID와 입력값으로 내부키를 생성하고(S37) 내부 키를 셋팅하고(S38) S24 단계로 복귀하는 단계;If the control word analysis result is the key setting command, the internal key setting is checked (S36). If the internal key setting is performed, an internal key is generated using a module ID and an input value (S37), and an internal key is set (S38). Returning; 상기 제어워드 분석결과가 상기 내부키 셋팅이 아니면 외부키 셋팅인지를 체크하여(S39) 외부키 셋팅 이면 입력값으로 외부키를 셋팅한(S40) 후 S24 단계로 복귀하고 외부키 셋팅이 아니면 스크램블키 셋팅인지를 체크하여(S41) 모듈 ID와 입력값으로 스크램블키 생성함으로써(S42) 스크램블키를 셋팅하고(S43) S24 단계로 복귀하고, 스크램블키 셋팅이 아니면 S24 단계로 복귀하는 단계;If the result of the control word analysis is not the internal key setting or the external key setting (S39), if the external key setting is set, the external key is set as an input value (S40), and then the process returns to step S24. Setting the scramble key (S42) by checking whether it is set (S41) by generating a module ID and an input value (S42), and returning to step S24, and returning to step S24 if the scramble key is not set; 상기 제어워드 분석 후, 상기 제어워드 분석결과가 상기 데이터 입출력 명령이면 암호화인지를 체크하여(S44) 암호화이면 상기 내부키 인지를 체크하여(S45) 상기 내부키이면 내부키로 입력값을 암호화하고(S46) 상기 내부키 이용이 아니면 상기 외부키로 입력값을 암호화하는 단계(S47);After the control word analysis, if the control word analysis result is the data input / output command, it is checked whether it is encryption (S44). If it is encryption, it is checked whether it is the internal key (S45). Encrypting an input value with the external key if the internal key is not used (S47); S44 과정에서 암호화가 아니면 내부키 이용인지를 체크하여(S48) 내부키 이용이면 내부키로 입력값을 복호화하고(S49) 내부키 이용이 아니면 외부키로 입력값을 복호화하는(S50) 단계;In step S44, if it is not an encryption or an internal key, it is checked (S48). If the internal key is used, the input value is decrypted with the internal key (S49). If the internal key is not used, the input value is decrypted with the external key (S50); 암호화 및 복호화 과정 후, 상기 제어 워드내에 설정되어 있는 플래그 비트에 의해 스크램블(Scramble)을 수행하는 지를 체크하여(S51) 스크램블을 수행하면 결과값의 스크램블을 수행한(S52) 후 USB 보안모듈의 스크램블러, 버퍼, 디바이스 드라이버를 통해 상기 제어 프로그램으로 결과값을 반환한(S53) 다음 S24 단계로복귀하고, 스크램블을 수행하지 않으면 곧바로 결과값을 반환한 다음 S24 단계로 복귀하는 단계로 구성되는 것을 특징으로 하는 PC 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어 방법.After the encryption and decryption process, it is checked whether the scramble is performed by the flag bit set in the control word (S51). If the scramble is performed, the scrambler of the USB security module is performed after the scramble is performed (S52). Returning the result value to the control program through the buffer and the device driver (S53), and then returning to step S24, and if the scramble is not performed, returning the result value immediately and returning to step S24. A method of controlling a U.S. non-security module using a PC-based encryption chip. 컴퓨터에 USB 인터페이스되는 USB 탭과 USB 보안모듈을 구비한 정보보호 시스템에 있어서 상기 컴퓨터에 상기 기능 (a), 상기 기능 (b), 상기 기능 (c) 및 상기 기능 (d)을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A program for realizing the function (a), the function (b), the function (c) and the function (d) in the computer in an information protection system having a USB tab and a USB security module which are USB interfaced to a computer. A computer-readable recording medium that records the data.
KR1019990055152A 1999-12-06 1999-12-06 Method for controlling Universal Serial Bus security module using crypto-chip KR100310445B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990055152A KR100310445B1 (en) 1999-12-06 1999-12-06 Method for controlling Universal Serial Bus security module using crypto-chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990055152A KR100310445B1 (en) 1999-12-06 1999-12-06 Method for controlling Universal Serial Bus security module using crypto-chip

Publications (2)

Publication Number Publication Date
KR20010054357A true KR20010054357A (en) 2001-07-02
KR100310445B1 KR100310445B1 (en) 2001-09-28

Family

ID=19623731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990055152A KR100310445B1 (en) 1999-12-06 1999-12-06 Method for controlling Universal Serial Bus security module using crypto-chip

Country Status (1)

Country Link
KR (1) KR100310445B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030084373A (en) * 2002-04-26 2003-11-01 주식회사 아이오셀 Method for transmitting and receiving e-mail using usb memory device
KR100734168B1 (en) * 2005-07-11 2007-07-02 케이비 테크놀러지 (주) Secure data storage apparatus with memory card interface
KR101043255B1 (en) * 2008-10-31 2011-06-21 (주)엠티아이코리아 Usb hub device for providing datasecurity and method for providing datasecurity using the same
KR101049472B1 (en) * 2009-11-09 2011-07-15 주식회사 프라이머스코즈 A portable USB security module device, a method of registering and querying a document file using the portable USB security module device, and a program recording medium for executing the method
CN115457687A (en) * 2022-09-15 2022-12-09 深圳奇迹智慧网络有限公司 Safety configuration method and system for intelligent pole

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI442258B (en) 2008-12-31 2014-06-21 Giga Byte Tech Co Ltd A system operating method using a hardware lock, and an electronic device that is started with a hardware lock
CN109239941B (en) 2018-10-22 2020-04-10 徐源佑 Novel frameless glasses

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030084373A (en) * 2002-04-26 2003-11-01 주식회사 아이오셀 Method for transmitting and receiving e-mail using usb memory device
KR100734168B1 (en) * 2005-07-11 2007-07-02 케이비 테크놀러지 (주) Secure data storage apparatus with memory card interface
KR101043255B1 (en) * 2008-10-31 2011-06-21 (주)엠티아이코리아 Usb hub device for providing datasecurity and method for providing datasecurity using the same
KR101049472B1 (en) * 2009-11-09 2011-07-15 주식회사 프라이머스코즈 A portable USB security module device, a method of registering and querying a document file using the portable USB security module device, and a program recording medium for executing the method
CN115457687A (en) * 2022-09-15 2022-12-09 深圳奇迹智慧网络有限公司 Safety configuration method and system for intelligent pole

Also Published As

Publication number Publication date
KR100310445B1 (en) 2001-09-28

Similar Documents

Publication Publication Date Title
US7516331B2 (en) Tamper-resistant trusted java virtual machine and method of using the same
US5473692A (en) Roving software license for a hardware agent
KR100889099B1 (en) Data storage device security method and apparatus
US20040030911A1 (en) Contents distribution scheme using tamper-resistant processor
KR19990028931A (en) Software protection against unauthorized use
EP1449048B1 (en) Method, system, device and computer program for mutual authentication and content protection
US7603566B2 (en) Authenticated process switching on a microprocessor
KR100358705B1 (en) An apparatus for information protection using Universal Serial Bus(USB) security module and crypto-chip based on PC
JP2007257626A (en) Method and device for temporarily using content using temporary license
US20040255136A1 (en) Method and device for protecting information against unauthorised use
KR100310445B1 (en) Method for controlling Universal Serial Bus security module using crypto-chip
KR100361869B1 (en) The Installing and Executing Method To Use The Chiper Key
JP2009080772A (en) Software starting system, software starting method and software starting program
US8479014B1 (en) Symmetric key based secure microprocessor and its applications
US20190044709A1 (en) Incorporating software date information into a key exchange protocol to reduce software tampering
KR101711024B1 (en) Method for accessing temper-proof device and apparatus enabling of the method
CN111523127B (en) Authority authentication method and system for password equipment
KR100423506B1 (en) method of preventing an illegal software copy on-line using an IC chip installed card
KR100298506B1 (en) System for preventing illegal installation according to cooperation between integrated circuit card and program
KR19990064448A (en) A Preventive Measure of Illegal Software Copy using the Smart Card
CN117763587A (en) Algorithm encryption processing method, device, equipment and medium
CN116432195A (en) Encryption method and device, encryption lock, electronic equipment and storage medium
KR20000032464A (en) Apparatus and method for preventing program copy
CN114257877A (en) Key deployment and use method and device for broadband digital video protection (HDCP)
WO2005092060A2 (en) Apparatus and method for intellectual property protection using the microprocessor serial number

Legal Events

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

Payment date: 20060919

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee