KR19990079414A - 소프트웨어 보호를 위한 프로그램의 암호화 방법 및암호화된 프로그램의 실행 방법 - Google Patents

소프트웨어 보호를 위한 프로그램의 암호화 방법 및암호화된 프로그램의 실행 방법 Download PDF

Info

Publication number
KR19990079414A
KR19990079414A KR1019980012031A KR19980012031A KR19990079414A KR 19990079414 A KR19990079414 A KR 19990079414A KR 1019980012031 A KR1019980012031 A KR 1019980012031A KR 19980012031 A KR19980012031 A KR 19980012031A KR 19990079414 A KR19990079414 A KR 19990079414A
Authority
KR
South Korea
Prior art keywords
program
computer
lock
value
execution
Prior art date
Application number
KR1019980012031A
Other languages
English (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 KR1019980012031A priority Critical patent/KR19990079414A/ko
Publication of KR19990079414A publication Critical patent/KR19990079414A/ko

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

본 발명은 소프트웨어 보호를 위한 프로그램의 암호화 방법 및 암호화된 프로그램의 실행 방법에 관한 것으로, 특히 프로그램의 실행코드를 랜덤한 값으로 암호화시킨 후 특정한 하드웨어 장치를 사용하는 루틴을 통해서만 실행되도록 함으로써 불법 복제 및 해킹 등으로부터 소프트웨어를 보호할 수 있는 방법에 관한 것이다.
프로그램을 컴퓨터에 설치하는 과정에서 복제된 프로그램으로는 설치가 불가능하도록 소프트 웨어적으로 불법 복제를 방지하고 있으나, 이러한 방법은 설치 과정에서 오류가 발생하면 프로그램을 사용할 수 없게 되고, 설치 프로그램의 백업 디스크를 만들 수 없기 때문에 설치 프로그램에 손상이 생기면 복구가 불가능하며, 프로그램 복제 방지에 대한 정보가 담긴 파일이 지워지거나 컴퓨터 바이러스등에 의해 손상되는 경우 복구가 불가능한 단점이 있다.
따라서 본 발명은 위와 같은 프로그램의 설치 과정이 없어도 보다 안전하게 프로그램 또는 귀중한 정보를 보호하기 위해서, 일반적인 환경에서는 사용이 불가능하도록 프로그램을 암호화시키고 특정한 하드웨어 장치를 사용하는 환경에서만 프로그램이 실행되도록 한다.

Description

소프트웨어 보호를 위한 프로그램의 암호화 방법 및 암호화된 프로그램의 실행 방법
본 발명은 소프트웨어(software) 보호(protection)를 위한 프로그램(program)의 암호화 방법 및 암호화된 프로그램의 실행 방법에 관한 것으로, 특히 프로그램의 실행코드를 랜덤(randum)한 값으로 암호화시킨 후 특정한 하드웨어(hardware)를 사용하는 루틴(routine)을 통해서만 실행되도록 함으로써 불법 복제 및 해킹 등으로부터 소프트웨어를 보호할 수 있는 방법에 관한 것이다.
인터넷(internet)을 통하여 하나의 단일권으로 형성된 컴퓨터(computer) 통신망은, 정보 통신의 측면에서 매우 유용한 반면, 불법적인 해킹 행위나 불법 감청 등에 의하여 정보 유출의 위험성이 따른다. 이는 컴퓨터에 접근하기 위하여 사용되는 패스워드(password)가 화면상으로는 보이지 않으나, 통신망에서는 입력한 패스워드 정보가 그대로 전달되므로 불법 감청에 의해 노출될 가능성이 매우 크기 때문이다.
또한 상업용 프로그램의 데이터 용량이 대형화되고 미디어가 발달하면서 현재 사용되고 있는 컴퓨터 시스템의 대부분이 씨디-롬(이하 CD-ROM이라 칭함)으로 프로그램을 공급하고 있는데, CD-ROM 미디어의 자체 특성상 얼마든지 프로그램의 복제가 가능하므로 프로그램 제작 업체에 큰 손실을 주고 있다.
따라서 종래에는 프로그램을 컴퓨터에 설치하는 과정에서 복제된 프로그램으로는 설치가 불가능하도록 소프트 웨어적으로 불법 복제를 방지하고 있으나, 이러한 방법은 다음과 같은 문제점이 발생한다. 즉, 첫 번째로 프로그램을 설치 과정에서 오류가 발생하면 프로그램을 사용할 수 없게 되는 단점이 있다. 두 번째로 설치 프로그램의 백업 디스크(backup disk)를 만들 수 없기 때문에 설치 프로그램에 손상이 생기면 복구가 불가능하며, 컴퓨터 통신을 이용한 프로그램의 전송이 불가능하여 제조 업체의 사후관리(after sevice) 업무가 가중되는 단점이 있다. 또한 세 번째로 프로그램 설치시 일정한 영역에 프로그램 복제 방지에 대한 정보가 담긴 파일(file)을 숨겨두고 있기 때문에, 사용자의 실수에 의해 이 파일이 지워지거나 컴퓨터 바이러스(virus)등에 의해 손상되는 경우 복구가 불가능한 단점이 있다.
따라서 위와 같은 프로그램의 설치 과정이 없어도 보다 안전하게 프로그램 또는 귀중한 정보를 보호하기 위해서는, 일반적인 환경에서 사용이 불가능하도록 프로그램을 암호화시키고 특정한 하드웨어를 사용하는 환경에서만 프로그램이 실행되도록 하는 방법이 필수적이다.
본 발명은 불법 복제 및 해킹 등으로부터 소프트웨어를 보호하는데 그 목적이 있다.
상술한 목적을 달성하기 위한 소프트웨어 보호를 위한 프로그램의 암호화 방법은, 다수의 실행코드로 이루어진 실행파일의 각 실행코드를 각기 다른 기호로 변환시키는 단계와, 상기 변환된 각 기호를 랜덤한 순서로 배열한 후, 상기 실행파일내의 선택된 영역에 상기 실행코드의 변환 및 배열 정보를 저장하는 단계를 포함하여 이루어지는 것을 특징으로 한다.
또한 암호화된 프로그램의 실행 방법은 실행코드가 암호화된 프로그램의 실행시 컴퓨터가 락의 존재를 확인하는 제 1 단계와, 사용자가 입력한 패스워드 및 키 값이 락으로 전송되도록 하는 제 2 단계와, 상기 전송된 패스워드 및 키 값을 설정된 값과 비교한 후, 그 값이 같은 경우 락으로부터 리턴 값이 컴퓨터로 전송되도록 하는 제 3 단계와, 그 값이 다른 경우 상기 프로그램의 실행이 종료되도록 하는 제 4 단계와, 상기 제 3 단계로부터 상기 리턴 값을 이용하여 컴퓨터가 실행코드를 인식할 수 있도록 상기 암호화된 실행코드를 디코딩하는 단계를 포함하여 이루어지는 것을 특징으로 한다.
도 1(a) 및 도 1(b)는 본 발명에 따른 프로그램의 암호화 방법을 설명하기 위해 도시한 실행 파일의 구조도.
도 2는 본 발명에 따른 암호화된 프로그램을 실행시키기 위한 락 시스템.
도 3은 본 발명에 따른 암호화된 프로그램을 실행시키기 위하여 락을 사용하는 루틴을 도시한 순서도.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
도 1(a) 및 도 1(b)는 본 발명에 따른 프로그램의 암호화 방법을 설명하기 위해 도시한 실행 파일의 구조도이다.
도 1(a)는 프로그램 실행파일의 구조도로 순차적으로 실행되는 실행코드로 이루어져 있다. 즉, 프로그램 실행시 컴퓨터는 실행파일의 실행코드를 인식하여 실행코드 '1'을 실행시킨 후, '2', '3', '4', …를 각각 순차적으로 실행시켜 프로그램을 수행한다. 경우에 따라 프로그램의 불법 복제 방지를 위하여 실행파일 내부에 불법 복제 방지 코드를 포함시키고, 프로그램 실행시 이 부분이 먼저 실행되도록 한 후, 불법 복제된 파일이 아닌 경우 실행코드 '1'이 실행되도록 한다. 그러나 이러한 실행파일을 불법적으로 복제한 해커들은, 위와 같은 불법 복제 방지 코드를 제거하여 프로그램 실행시 바로 실행코드 '1'이 실행되도록 할 수 있다.
그러므로 본 발명은 일반적인 컴퓨터가 위와 같은 실행파일의 실행코드, 즉 '1', '2', '3', …을 인식하지 못하도록 랜덤한 기호를 사용하여 암호화 하는 것이다. 즉, 도 1(b)에 도시된 것과 같이, 실행코드 '1'을 랜덤하게 선택한 기호, 예를들어 '@'로 바꾸고, '2'를 '$', '3'을 '&', …등의 기호로 바꾼 후, 실행파일 내에서 그 순서를 랜덤하게 바꾸어 배열시킨다. 따라서 같은 프로그램을 암호화 하더라도 그 실행파일은 항상 다른 형태로 암호화된다. 실행파일의 일정한 영역에는 실행코드를 랜덤한 기호로 암호화시킨 정보를 보관하게 되는데, 이 역시 암호화되어 있다. 따라서 해커들은 프로그램의 암호화 정보를 판독할 수 없을 뿐더러, 이 부분을 제거시켜도 컴퓨터는 실행코드 '1'을 인식하지 못하기 때문에 프로그램을 실행시킬 수 없다.
이와 같이 소프트 웨어의 보호를 위해 암호화된 프로그램은 사용자만이 제공할 수 있는 환경에 의하여 실행되도록 한다.
도 2는 본 발명에 따른 암호화된 프로그램을 실행시킬 수 있는 락(lock) 시스템이다.
락은 컴퓨터의 프린터 포트에 연결되어 컴퓨터와 통신을 할 수 있는 장치로써, 컴퓨터가 전달하는 값에 따라 리턴값을 되돌려 주는 하드웨어이다.
도 3은 본 발명에 따른 암호화된 프로그램을 실행시키기 위하여 락을 사용하는 루틴을 도시한 순서도이다.
도 3에 도시된 것과 같이, 암호화된 프로그램의 실행시 컴퓨터는 락의 존재 유무를 확인 한 후, 락이 존재하면 패스워드 및 키(key) 값을 요구한다. 락이 존재하지 않는 경우에는 에러 메시지(message)를 출력하고 루틴을 종료한다.
사용자가 패스워드 및 키 값을 입력하면 컴퓨터는 락으로 이 값을 전송한다. 키 값이라 함은, 프로그램의 실행코드를 변형시키기 위하여 연산된 값이다. 즉, 예를들어 프로그램의 실행코드가 A, B, C로 이루어진 경우, 각각의 실행코드에 1씩을 더하면 암호화된 실행코드는 B, C, D가 되고 키 값은 +1이 된다. 그러나 본 발명에서는 동일하게 +1이라는 키 값을 사용하더라도 락을 통해 리턴된 값은 랜덤하게 변형된 기호를 사용하므로, 해커들이 키 값을 파악했다고 하더라도 락에서 리턴된 값을 알 수 없어 암호화된 실행코드를 파악할 수 없다.
락으로 전송된 패스워드와 키 값이 올바르면 락은 컴퓨터로 리턴 값을 전송시킨다. 그러나 패스워드 및 키 값이 올바르지 않으면 에러 메시지를 출력하고 루틴을 종료시킨다.
락에서 리턴된 값은 암호화된 프로그램 실행파일의 암호화 정보와 결합하여 실행코드를 디코딩(decording) 시킨다. 즉, 랜덤한 기호로 암호화 되었던 실행코드를 컴퓨터가 인식할 수 있도록 원래의 '1', '2', '3', …으로 복구시켜 프로그램이 실행되도록 한다.
상술한 바와 같이 본 발명에 의하면, 해커가 프로그램 실행파일의 실행코드를 파악하지 못하도록 랜덤한 기호로 암호화 시킨 후, 사용자만이 락을 사용하는 루틴으로 프로그램을 실행시키므로 중요한 정보의 유출 및 프로그램의 불법 복제를 방지할 수 있는 효과가 있다. 또한 프로그램을 설치하는 과정 없이 소프트웨어를 보호할 수 있으므로 프로그램 설치 과정에서 발생되는 문제점을 해결할 수 있는 탁월한 효과가 있다.

Claims (5)

  1. 다수의 실행코드로 이루어진 실행파일의 각 실행코드를 각기 다른 기호로 변환시키는 단계와,
    상기 변환된 각 기호를 랜덤한 순서로 배열한 후, 상기 실행파일내의 선택된 영역에 상기 실행코드의 변환 및 배열 정보를 저장하는 단계를 포함하여 이루어지는 것을 특징으로 하는 소프트웨어 보호를 위한 프로그램의 암호화 방법.
  2. 실행코드가 암호화된 프로그램의 실행시 컴퓨터가 락의 존재를 확인하는 제 1 단계와,
    사용자가 입력한 패스워드 및 키 값이 락으로 전송되도록 하는 제 2 단계와,
    상기 전송된 패스워드 및 키 값을 설정된 값과 비교한 후, 그 값이 같은 경우 락으로부터 리턴 값이 컴퓨터로 전송되도록 하는 제 3 단계와,
    그 값이 다른 경우 상기 프로그램의 실행이 종료되도록 하는 제 4 단계와,
    상기 제 3 단계로부터 상기 리턴 값을 이용하여 컴퓨터가 실행코드를 인식할 수 있도록 상기 암호화된 실행코드를 디코딩하는 단계를 포함하여 이루어지는 것을 특징으로 하는 암호화된 프로그램의 실행 방법.
  3. 제 2 항에 있어서,
    상기 락은 컴퓨터의 프린터 포트에 연결되어 컴퓨터와 통신 할 수 있도록 구성된 것을 특징으로 하는 암호화된 프로그램의 실행 방법.
  4. 제 2 항에 있어서,
    상기 키 값은 실행코드의 암호화 키 값과 동일한 값으로 설정된 것을 특징으로 하는 암호화된 프로그램의 실행 방법.
  5. 제 2 항에 있어서,
    상기 디코딩은 상기 리턴 값 및 실행코드 암호화 정보의 조합에 의해 실행되는 것을 특징으로 하는 암호화된 프로그램의 실행 방법.
KR1019980012031A 1998-04-06 1998-04-06 소프트웨어 보호를 위한 프로그램의 암호화 방법 및암호화된 프로그램의 실행 방법 KR19990079414A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980012031A KR19990079414A (ko) 1998-04-06 1998-04-06 소프트웨어 보호를 위한 프로그램의 암호화 방법 및암호화된 프로그램의 실행 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980012031A KR19990079414A (ko) 1998-04-06 1998-04-06 소프트웨어 보호를 위한 프로그램의 암호화 방법 및암호화된 프로그램의 실행 방법

Publications (1)

Publication Number Publication Date
KR19990079414A true KR19990079414A (ko) 1999-11-05

Family

ID=65860651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980012031A KR19990079414A (ko) 1998-04-06 1998-04-06 소프트웨어 보호를 위한 프로그램의 암호화 방법 및암호화된 프로그램의 실행 방법

Country Status (1)

Country Link
KR (1) KR19990079414A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020044452A (ko) * 2000-12-06 2002-06-15 계영진 데이타지킴이
KR20030050300A (ko) * 2001-12-18 2003-06-25 (주)쉘컴정보통신 공개키 기반 소프트웨어 암호화 기법을 이용한 컴퓨터변조 방지 방법
US7512812B2 (en) 2004-02-18 2009-03-31 Samsung Electronics Co., Ltd. Method of securely erasing data and hard disk drive using the same
KR101042294B1 (ko) * 2009-06-08 2011-06-22 박상진 Usb를 이용한 소프트웨어 락 제어방법 및 락 해제 제어방법
KR101588965B1 (ko) * 2014-08-04 2016-01-26 주식회사 엔씨소프트 실행파일의 실행인증을 통한 보안처리 프로그램을 실행하는 컴퓨팅 디바이스 및 매체에 저장된 컴퓨터 프로그램

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020044452A (ko) * 2000-12-06 2002-06-15 계영진 데이타지킴이
KR20030050300A (ko) * 2001-12-18 2003-06-25 (주)쉘컴정보통신 공개키 기반 소프트웨어 암호화 기법을 이용한 컴퓨터변조 방지 방법
US7512812B2 (en) 2004-02-18 2009-03-31 Samsung Electronics Co., Ltd. Method of securely erasing data and hard disk drive using the same
KR101042294B1 (ko) * 2009-06-08 2011-06-22 박상진 Usb를 이용한 소프트웨어 락 제어방법 및 락 해제 제어방법
KR101588965B1 (ko) * 2014-08-04 2016-01-26 주식회사 엔씨소프트 실행파일의 실행인증을 통한 보안처리 프로그램을 실행하는 컴퓨팅 디바이스 및 매체에 저장된 컴퓨터 프로그램

Similar Documents

Publication Publication Date Title
CN109923548B (zh) 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品
Curry UNIX system security
US5935246A (en) Electronic copy protection mechanism using challenge and response to prevent unauthorized execution of software
US8234638B2 (en) Creating a relatively unique environment for computing platforms
US8225105B2 (en) Method and apparatus for verifying integrity of computer system vital data components
US20060041934A1 (en) Physical encryption key system
US6976167B2 (en) Cryptography-based tamper-resistant software design mechanism
US7093135B1 (en) Software virus detection methods and apparatus
US20040177260A1 (en) System and method for remote code integrity in distributed systems
US6651169B1 (en) Protection of software using a challenge-response protocol embedded in the software
Banescu et al. Software-based protection against changeware
CN102004887A (zh) 程序保护方法和装置
Young et al. Deniable password snatching: On the possibility of evasive electronic espionage
WO2001073533A1 (en) System and method for safeguarding electronic files and digital information in a network environment
KR101042234B1 (ko) 위치 인증을 통한 사용자 프로그램의 기밀문서 판독 방지방법
KR19990079414A (ko) 소프트웨어 보호를 위한 프로그램의 암호화 방법 및암호화된 프로그램의 실행 방법
EP2341458B1 (en) Method and device for detecting if a computer file has been copied
KR101604892B1 (ko) 안드로이드 기반 어플리케이션의 부정사용 방지 방법 및 장치
KR100959638B1 (ko) 키보드 해킹차단 방법 및 그 프로그램을 기록한 기록매체
Iglio Trustedbox: a kernel-level integrity checker
Seltzer Securing your private keys as best practice for code signing certificates
Kupershtein et al. The database-oriented approach to files protection in android operation system
KR102591450B1 (ko) 윈도우 운영체제 중요 정보 탈취 방지를 위한 레지스트리 파서 및 암/복호화 모듈 및 그 운용방법
KR20020051612A (ko) 설치키 관리 서버를 이용한 소프트웨어 불법 사용 방지 방법
Thimbleby Controversy corner: An organizational solution to piracy and viruses

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E601 Decision to refuse application