KR100434836B1 - 데이타 암호화 장치 및 불법 변경 방지 시스템 - Google Patents

데이타 암호화 장치 및 불법 변경 방지 시스템 Download PDF

Info

Publication number
KR100434836B1
KR100434836B1 KR10-1999-0045001A KR19990045001A KR100434836B1 KR 100434836 B1 KR100434836 B1 KR 100434836B1 KR 19990045001 A KR19990045001 A KR 19990045001A KR 100434836 B1 KR100434836 B1 KR 100434836B1
Authority
KR
South Korea
Prior art keywords
block
data
encryption key
encryption
blocks
Prior art date
Application number
KR10-1999-0045001A
Other languages
English (en)
Other versions
KR20000029146A (ko
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 닛본 덴끼 가부시끼가이샤
Publication of KR20000029146A publication Critical patent/KR20000029146A/ko
Application granted granted Critical
Publication of KR100434836B1 publication Critical patent/KR100434836B1/ko

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 불법 사용자에 의해 프로그램 코드와 같은 데이타를 변경하는 시도나 불법적인 사용을 방지할 수 있는 암호화 장치 및 불법 변경 방지 시스템을 제공한다. 암호화 프로그램 기억부 내에는, 암호화된 프로그램 코드가 복수의 블럭으로 분할되어 저장된다. 암호키 산출부는 주기억부상에 현재 존재하고 있는 프로그램 코드의 해시 함수와 같은 일방향 함수를 이용하여, 암호화 프로그램 기억부에 저장되어 있는 다음 실행될 블럭의 암호화된 프로그램 코드의 암호해제에 이용되는 암호키를 산출한다. 소프트웨어를 불법적으로 이용하기 위해 프로그램 코드의 일부를 변경하면, 이후로 정확한 암호키를 얻을 수 없으며, 프로그램의 실행이 중지된다.

Description

데이타 암호화 장치 및 불법 변경 방지 시스템{DATA ENCIPHERMENT APPARATUS AND ILLEGAL ALTERATION PREVENTION SYSTEM}
본 발명은 소프트웨어나 데이타를 불법적으로 이용(불법 복사 등)하고자 하는 불법 이용자에 의한 컴퓨터 소프트웨어나 데이타의 변경을 방지하기 위한 데이타 암호화 장치 및 불법 변경 방지 시스템에 관한 것이다.
컴퓨터 소프트웨어의 불법 복사를 방지하는 기술이 이미 알려져 있고, 예를 들면 명칭이 "복제 판별 방법 및 판독 장치"인 일본 특개평 9-231137호가 개시되어 있다. 상기 장치에 따르면, 특정 에러율 K를 갖는 키코드가 CD-ROM의 일부에 기록된다. 에러율 K는, CD-ROM의 판독 장치에 제공되는 에러 정정 코딩-디코딩 장치에 의해 완벽하게 정정되는 것이 불가능한 값으로 선택된다. CD-ROM이 불법적으로 복제된다면, 키코드의 에러율이 변화한다. 이러한 종래 기술의 장치는 상기한 현상을 이용하여, 이 장치에 장착된 CD-ROM이 불법적으로 복제된 CD-ROM인지 판별하고 장착된 CD-ROM이 불법적으로 복제된 CD-ROM인 경우에는 판독 장치를 동작하지 않게 한다.
유사한 형태의 불법 복사 방지 기술로서, 특정 키를 갖는 단순한 하드웨어가 시스템에 부가되고, 프로그램의 실행시 키가 정상값인지를 판별하여 키가 정상값인 경우에만 프로그램의 실행이 허용되는 시스템이 주지되어 있다.
상기한 종래 기술 장치 및 시스템은 이하의 문제점을 가지고 있다.
제1 문제점은 프로그램 코드를 분석하여 어떤 메카니즘에 의해 불법 복사가 판정되는지를 조사하는 것이 용이하다는 점이다. 그 이유는 역어셈블러와 같은 분석 툴을 이용하여 프로그램 코드를 분석하고, 그 분석에 기초하여 프로그램을 변경함으로써 프로그램의 불법 사용을 수행할 수 있기 때문이다.
제2 문제점은 프로그램 코드가 변경되면 매체상으로의 복사 실행이 방지될 수 없다는 점이다. 그 이유는 복사된 매체의 판별에 이용되는 프로그램 부분의 프로그램 코드가 그 매체가 복사된 매체임에도 원래 매체인것으로 정상적으로 나타내도록 변경된다면, 복사된 매체로 소프트웨어를 실행하는 것이 방지될 수 없기 때문이다. 동일한 문제가 단지 프로그램 뿐만 아니라 데이타에서도 발생할 가능성이 있다.
본 발명의 목적은 불법 사용자에 의한 프로그램 코드와 같은 데이타의 불법 사용이나 변경 시도를 방지할 수 있는 암호화 장치 및 불법 변경 방지 시스템을 제공하는 것이다.
상기 기술한 목적을 달성하기 위해, 본 발명의 하나의 형태에 따르면, 데이타를 제1 내지 제 n+1 블럭으로 분할하는 분할 수단 - n은 1보다 크거나 같은 정수임 -, 제1 내지 제n 블럭의 데이타를 기초로하여 각각 제1 내지 제n 암호키를 순차적으로 생성하는 암호키 생성 수단, 제1 내지 제n 암호키로 각각 제2 내지 제 n+1 블럭을 순차적으로 암호화하는 암호화 수단, 및 암호화되지 않은 제1 블럭 및 암호화된 제2 내지 제n+1 블럭을 순차적으로 출력하는 출력 수단을 포함하는 데이타 암호화 장치가 제공된다.
출력 수단은 미리 결정된 제0 암호키를 기초로 하여 제1 블럭을 암호화하고 암호화된 제1 블럭을 출력하는 것도 가능하다.
본 발명의 또 하나의 형태에 따르면, 데이타 처리 장치, 파일 장치, 및 파일 장치에 기록될 데이타를 생성하기 위한 암호화 장치를 포함하고, 암호화 장치는, 데이타를 제1 내지 제 n+1 블럭으로 분할하는 분할 수단 - n은 1보다 크거나 같은 정수임 -, 제1 내지 제n 블럭의 데이타를 기초로 하여 각각 제1 내지 제n 암호키를 순차적으로 생성하는 암호키 생성 수단, 제1 내지 제n 암호키로 각각 제2 내지 제 n+1 블럭을 순차적으로 암호화하는 암호화 수단, 및 암호화되지 않은 제1 블럭 및 암호화된 제2 내지 제n+1 블럭을 순차적으로 출력하는 출력 수단을 포함하는 데이타의 불법 변경 방지 시스템이 제공된다.
본 발명의 또 다른 형태에 따르면, 데이타 처리 장치와, 데이타의 최상위 블럭을 저장하기 위한 제1 기억 영역 및 최상위 블럭에 후속하는 n개 블럭을 저장하기 위한 제2 기억 영역을 포함하는 파일 장치 - n은 1보다 크거나 같은 정수임 - 와, 파일 장치에 기록될 데이타를 생성하기 위한 암호화 장치 - 상기 암호화 장치는 제1 기억 영역의 데이타에 기초하여 첫번째 암호키를 생성하고, 이 첫번째 암호키로 상기 n개 블럭 중 첫번째 블럭을 암호화하며, 상기 n개 블럭 중 i-1번째 블럭(제i 블럭)의 데이타에 기초하여 i번째 암호키(제i 암호키)를 순차적으로 생성하며, 상기 i번째 암호키로 상기 n개 블럭 중 i번째 블럭을 순차적으로 암호화하되, i는 2보다는 크거나 같고 n보다는 작거나 같음 - 를 포함하고, 상기 데이타 처리 장치는, 제1 기억 영역의 데이타를 판독하기 위한 제1 판독 수단, 제2 기억 영역의 데이타를 순차적으로 판독하기 위한 제2 판독 수단, 제2 판독 수단에 의해 순차적으로 판독되는 n개 블럭 중 i번째 블럭(제i+1 블럭)을 순차적으로 공급되는 암호키 중 i번째 암호키(제i 암호키)로 순차적으로 암호해제하기 위한 암호해제 수단, 및 제1 판독 수단의 출력에 기초하여 첫번째 암호키를 생성하고, 이 첫번째 암호키를 암호해제 수단에 공급하며, 암호해제 수단으로부터의 i-1번째 블럭(제i 블럭)의 암호해제된 출력에 기초하여 i번째 암호키(제i 암호키)를 순차적으로 생성하고, 이 i번째 암호키를 암호해제 수단에 순차적으로 공급하기 위한 암호키 산출 수단을 포함하는 데이타의 불법 변경 방지 시스템이 제공된다.
데이타의 불법 변경 방지 시스템은, 미리 결정된 제0 암호키로 암호화된 데이타의 최상위 블럭을 제1 기억 영역에 저장하며, 제1 판독 수단이 제1 기억 영역에 저장된 데이타를 제0 암호키로 암호해제하여 암호해제된 데이타를 출력하도록 구성될 수도 있다.
암호키 산출 수단은 일방향 함수를 이용하여 제1 내지 제n 암호키를 생성하는 것이 가능하다.
데이타 암호화 장치 및 불법 변경 방지 시스템에서, 대부분의 프로그램 코드가 암호화되므로, 역어셈블 툴과 같은 분석 툴을 이용하여 프로그램 코드를 분석하기가 어렵다. 또한, 현재 실행되고 있는 프로그램 코드의 일방향 함수가 암호키 산출 수단에 의한 암호해제키로 이용되고, 다음에 실행되는 프로그램 코드의 암호해제에 이용되므로, 프로그램 코드를 변경하고 불법적으로 이용하는 것이 어렵다.
본 발명의 상기 목적 및 이외의 목적, 특징 및 장점은 유사 부분이나 요소는유사한 참조 부호를 붙인 첨부 도면을 참조한 이하의 설명과 첨부 특허 청구 범위에서 명백하게 될 것이다.
도 1은 본 발명이 적용되는 불법 사용 방지 시스템의 블럭 다이어그램.
도 2는 도 1의 불법 사용 방지 시스템의 동작을 설명하는 플로우 차트.
도 3은 불법 사용자에 의해 프로그램 코드를 변경하는 시도가 수행되지 않은 경우에, 도 1의 불법 사용 방지 시스템의 동작을 설명하는 플로우 차트.
도 4는 도 1의 불법 사용 방지 시스템의 파일 장치에 기록될 데이타를 생성하기 위한 암호화 장치의 구성을 도시한 블럭 다이어그램.
<도면의 주요 부분에 대한 부호의 설명>
100 : 데이타 처리 장치
101 : 비암호 프로그램 판독부
102 : 암호키 산출부
103 : 암호화 프로그램 판독부
104 : 암호해제부
110 : 파일 장치
111 : 비암호 프로그램 기억부
112 : 암호화 프로그램 기억부
120 : 암호화 장치
201 : 분기 회로
203 : 지연 회로
204 : 암호화 유닛
우선, 도 1을 참조하면, 본 발명이 적용되는 소프트웨어의 불법 사용 방지 시스템을 도시한다. 도시된 불법 사용 방지 시스템은 프로그램 제어하에 동작하는 데이타 처리 장치(100), 파일 장치(110), 및 암호화 장치(120)를 포함한다. 데이타 처리 장치(100)는 비암호 프로그램 판독부(101), 암호키 산출부(102), 암호화 프로그램 판독부(103), 및 암호해제부(104)를 포함한다. 파일 장치(110)는 비암호 프로그램 기억부(111)와 암호화 프로그램 기억부(112)를 포함한다.
비암호 프로그램 기억부(111)에는 암호화되어 있지 않은 프로그램 코드가 저장되어 있다. 암호화 프로그램 기억부(112)에는 암호화된 프로그램 코드가 복수의 블록 또는 프로그램 1, 2, 3, ..., n으로 분할 저장되어 있다. 암호화되어 있지 않은 프로그램 코드와 암호화된 프로그램 코드는, 비암호 프로그램 기억부(111)에 저장된 암호화되어 있지 않은 프로그램 코드, 암호화된 블럭 1, 2, ..., n의 순서로, 데이타 처리 장치(100)로 판독된다.
비암호 프로그램 판독부(101)는 비암호 프로그램 기억부(111)로부터 암호화되어 있지 않은 프로그램 코드를 읽어들여 주기억부(도시되지 않음)로 보낸다.
암호키 산출부(102)는 주기억부상에 존재하는 프로그램 코드의 해시(hash) 함수와 같은 일방향 함수를 이용하여, 판독되는 암호화된 프로그램 코드 블럭을 평문으로 변환하는데 이용되는 암호키를 생성한다. 암호화 프로그램 판독부(103)는 다음에 실행될 암호화된 프로그램 코드를 암호화 프로그램 기억부(112)로부터 주기억부로 읽어 들인다. 암호해제부(104)는 암호키 산출부(102)에 의해 산출된 암호키를 이용하여, 암호화된 프로그램 코드를 암호해제한다.
파일 장치(110)상에 기록될 데이타를 생성하기 위한 암호화 장치(120)를, 그 구조가 도시된 도 4를 참조하여 이하에 설명한다.
파일 장치(110)상에 저장될 프로그램 코드가 분기 회로(201)에 공급된다. 분기 회로(201)는 공급된 프로그램 코드를 n+1개 블럭으로 분할하고, 그 블럭중 최상위 블럭을 도 1에 도시된 비암호 프로그램 기억부(111)에 기록하며, 또한 그것을 암호키 산출부(102)에도 공급한다. 최상위 블럭이 출력된 후, 분기 회로(201)는 최상위 블럭(또는 제1 블럭)을 제외한 나머지 n개의 블럭을 지연 회로(203) 및 암호키 산출부(102)에 순차적으로 출력한다.
최상위 블럭을 분기 회로로부터 수신한 경우, 암호키 산출부(102)는 최상위 블럭의 프로그램 코드의 해시 함수와 같은 일방향 함수를 이용하여, 최상위 또는 제1 블럭의 다음 블럭(제2 블럭)의 데이타 암호화에 이용되는 제1 암호키를 산출한다. 제1 암호키가 출력된 후, 제2 블럭(상기 n개 블럭 중 첫번째 블럭), 제3 블럭, ..., 제n+1 블럭이 순차적으로 암호키 산출부(102)에 공급되고, 제2 암호키, ..., 제n 암호키가 순차적으로 암호키 산출부(102)로부터 출력되어 암호화 유닛(204)에 공급된다.
한편, 지연 회로(203)는 분기 회로(201)로부터 순차적으로 공급되는 제2 내지 제n+1 블럭을 하나의 블럭 간격으로 순차적으로 지연시켜, 지연된 블럭을 공급한다. 그 결과, 제2 블럭이 제1 블럭의 데이타로부터 생성된 제1 암호키로 암호화되어 도 1에 도시된 암호화 프로그램 기억부(112)에 저장된다. 동일한 방식으로, 제i+1 블럭은 제i 블럭의 데이타로부터 생성된 제i 암호키로 암호화되어 도 1에 도시된 암호화 프로그램 기억부(112)에 저장된다.
이러한 방식으로, 암호화되어 있지 않은 프로그램 코드는 비암호 프로그램 기억부(111)에 저장되고, 암호화된 프로그램 코드는 암호화 프로그램 기억부(112)에 복수의 블럭 1, 2, ..., n으로 분할되어 저장된다.
이제, 도 2의 플로우 차트를 참조하여 전체 불법 사용 방지 시스템의 동작을 상세하게 설명한다.
암호화 프로그램 기억부(112)에서, 비암호 프로그램 기억부(111)에 저장된 프로그램 코드에 후속하는 프로그램 코드가 복수의 블럭에 저장되는데, 각 블럭은 그 블럭에 선행하는 다른 블럭의 프로그램 코드의 해시값을 암호키로서 이용하여 암호화된 프로그램 코드를 포함한다.
우선, 단계 A1에서, 비암호 프로그램 판독부(101)는 비암호 프로그램 기억부(111)로부터 주기억부로 암호화되어 있지 않은 프로그램 코드를 읽어 들여 프로그램 코딩의 실행을 개시한다. 통상 이와 같은 처리는 오퍼레이팅 시스템의 프로그램 실행 메카니즘에 의해 관리된다.
그리고나서, 단계 A2에서, 암호키 산출부(102)는 비암호 프로그램 판독부(101)에 의해 주기억부에서 읽어들인 프로그램 코드를 해시 함수와 같은 일방향 함수로 변환하여 암호키를 생성한다.
단계 A3에서, 암호화 프로그램 판독부(103)는 후속하여 실행될, 암호화된 프로그램 코드를 암호화 프로그램 기억부(112)로부터 주기억부로 읽어들인다.
단계 A4에서, 암호해제부(104)는 암호키 산출부(102)에 의해 산출된 암호키를 이용하여 암호화된 프로그램 코드를 암호해제한다.
단계 A5에서, 암호키 산출부(102)는 암호해제된 프로그램 코드의 해시값을 산출하여, 후속 암호해제에 이용되는 암호키로 이용한다.
그리고나서, 단계 A6에서, 주기억부상에 현재 존재하는 암호해제 프로그램 코드가 실행된다. 이 처리 중에, 불법 복사 등의 판별이 수행된다.
단계 A7에서, 단계 A3 내지 A6의 처리를 암호화 프로그램 기억부(112)에 저장된 모든 블럭의 프로그램 코드에 대해 수행했는지 여부를 판별한다. 아직 처리가 수행되지 않는 일부 블럭의 프로그램 코드가 남아 있다면, 데이타 처리 장치의 제어는 단계 A3로 복귀한다.
도 3은 불법 사용자에 의해 프로그램 코드를 변경하려는 시도가 수행되지 않은 경우 불법 사용 방지 시스템의 동작의 플로우를 도시한다. 프로그램 코드에 어떠한 변경도 수행되지 않았다면, 암호화된 프로그램 코드의 암호해제에 이용되는 암호키 a, b, 및 c에 정확한 값이 얻어진다.
비암호 프로그램 기억부(111)에 저장된 암호화되어 있지 않은 프로그램 코드 1이 변경된 경우, 단계 A2에서 산출된 암호키는 원래 암호키 a와 전혀 다른 값을 갖게 된다. 그러므로, 단계 A4에서 암호해제된 프로그램 코드 2는 원래 프로그램 코드와 전혀 다르게 되고, 그러므로 프로그램 코드는 정상적으로 동작하지 않는다. 또한, 암호화 프로그램 기억부(112) 내의 프로그램 코드가 변경된 경우, 변경된 프로그램 코드에 후속하는 블럭은, 단계 A4에서 암호해제되어도, 원래 프로그램 코드와는 전혀 다르게 되고, 변경된 프로그램에 후속하는 프로그램은 정상적으로 동작하지 않는다.
이러한 방식에서, 어느 프로그램 코드이든지 변경된 경우, 변경된 프로그램 코드의 후속 프로그램이 정상적으로 동작하도록 하기 위해서는, 모든 후속 블럭의 암호키들을 어떤 수단으로 획득하고, 이 암호키들이 암호해제부(104)에 의해 사용되는 암호키로서 사용될 수 있도록 후속 블럭의 프로그램 코드를 변경할 필요가 있다. 블럭수가 증가할수록 불법 사용자에게 효과적인 변경의 어려움이 증가된다.
본 발명의 불법 사용 방지 시스템은 프로그램 코드의 변경을 검출하지만, 또한 암호키의 생성시 데이타 영역의 일방향 함수를 이용하여 데이타의 변경을 검출할 수도 있다. 이 경우에는 상기 설명에서의 "프로그램"을 "데이타"로 바꿔 읽어야 한다.
또한, 본 발명의 불법 사용 방지 시스템의 상기 설명에서 비암호 프로그램 기억부(111)내의 프로그램 코드 또는 데이타는 암호화되지 않은 평문의 형태로 저장되었지만, 비암호 프로그램 기억부(111)내의 프로그램 코드 또는 데이타는 소정 암호키로 암호화된 프로그램 코드 또는 데이타의 형태로 다르게 저장될 수도 있다. 이 예로서, 도 1의 비암호 프로그램 판독부(101)는 소정 암호키를 기초로 비암호 프로그램 기억부(111)내의 암호화된 데이타를 암호해제하는 기능을 가지고 있다.
본 발명의 양호한 실시예를 특정 용어를 이용하여 기술했지만, 그러한 기술은 단지 설명을 위한 것이며, 본 발명의 변화나 변경은 이하의 청구 범위의 사상과 범주를 벗어나지 않고 행해질 수 있다.
본 발명에서는 프로그램 코드의 대부분이 암호화되어 있으므로, 역어셈블 툴 등의 해석 툴로 프로그램 코드를 해석하는 것 자체가 곤란하다. 또한, 본 발명에서는 암호키 산출 수단(102)이 현재 실행하고 있는 프로그램 코드의 일방향 함수를 암호해제키로서 산출하고, 다음에 실행하는 프로그램 코드의 암호화 해제에 사용하고 있으므로, 프로그램 코드를 변경하여 불법 이용하는 것이 곤란하다.

Claims (7)

  1. 데이타 암호화 장치에 있어서,
    데이타를 n+1개 블럭(제1 내지 제n+1 블럭)으로 분할하는 분할 수단 - 상기 n은 1보다 크거나 같은 정수임 -;
    상기 n+1개 블럭 중 제1 내지 제n 블럭의 데이타를 기초로 하여 각각 제1 내지 제n 암호키를 순차적으로 생성하는 암호키 생성 수단;
    상기 제1 내지 제n 암호키로 각각 제2 내지 제n+1 블럭을 순차적으로 암호화하는 암호화 수단; 및
    암호화되지 않은 상기 제1 블럭 및 암호화된 상기 제2 내지 제n+1 블럭을 순차적으로 출력하는 출력 수단
    을 포함하고,
    상기 암호키 생성 수단에서 상기 n+1개 블럭 중 i번째 블럭(제i 블럭) 데이터에 기초하여 제i 암호키(i는 1 ≤i ≤n 범위인 정수)를 생성하고, 상기 암호화 수단에서 상기 n+1개 블럭 중 i+1번째 블럭(제i+1 블럭)의 데이터를 상기 암호키 생성 수단으로부터 공급되는 상기 제i 암호키로 암호화하며, 상기 출력 수단이 암호화된 제i+1 블럭을 출력하는 것을 특징으로 하는 데이타 암호화 장치.
  2. 제1항에 있어서, 상기 출력 수단은, 미리 결정된 제0 암호키를 기초로 하여 상기 제1 블럭을 암호화하고 상기 암호화된 제1 블럭을 출력하는 것을 특징으로 하는 데이타 암호화 장치.
  3. 데이타의 불법 변경 방지 시스템에 있어서,
    데이타 처리 장치;
    파일 장치; 및
    상기 파일 장치에 기록될 데이타를 생성하기 위한 암호화 장치
    를 포함하고,
    상기 암호화 장치는,
    데이타를 n+1개 블럭(제1 내지 제n+1 블럭)으로 분할하는 수단 - 상기 n은 1보다 크거나 같은 정수임 -;
    상기 n+1개 블럭 중 제1 내지 제n 블럭의 데이타를 기초로 하여 각각 제1 내지 제n 암호키를 순차적으로 생성하는 암호키 생성 수단;
    상기 제1 내지 제n 암호키로 각각 제2 내지 제n+1 블럭을 순차적으로 암호화하는 암호화 수단; 및
    암호화되지 않은 상기 제1 블럭 및 암호화된 제2 내지 제n+1 블럭을 순차적으로 출력하는 출력 수단
    을 포함하며,
    상기 암호키 생성 수단에서 상기 n+1개 블럭 중 i번째 블럭(제i 블럭) 데이터에 기초하여 제i 암호키(i는 1 ≤i ≤n 범위인 정수)를 생성하고, 상기 암호화 수단에서 상기 n+1개 블럭 중 i+1번째 블럭(제i+1 블럭)의 데이터를 상기 암호키 생성 수단으로부터 공급되는 상기 제i 암호키로 암호화하며, 상기 출력 수단이 암호화된 제i+1 블럭을 출력하는 것을 특징으로 하는 데이타의 불법 변경 방지 시스템.
  4. 데이타의 불법 변경 방지 시스템에 있어서,
    데이타 처리 장치;
    데이타의 최상위 블럭(제1 블럭)을 저장하기 위한 제1 기억 영역, 및 상기 최상위 블럭에 후속하는 n개의 데이터 블럭(제2 내지 제n+1 블럭)을 저장하기 위한 제2 기억 영역을 포함하는 파일 장치 - 상기 n은 1보다 크거나 같은 정수임 -;
    상기 파일 장치에 기록될 데이타를 생성하기 위한 암호화 장치 - 상기 암호화 장치는, 상기 제1 기억 영역의 데이타(제1 블럭)에 기초하여 첫번째 암호키(제1 암호키)를 생성하고, 상기 첫번째 암호키로 상기 n개 블럭 중 첫번째 블럭(제2 블럭)을 암호화하며, 상기 n개의 블럭 중 i-1번째 블럭(제i 블럭)(i는 2 ≤i ≤n인 정수)의 데이타에 기초하여 i번째 암호키(제i 암호키)를 순차적으로 생성하고, 상기 n개 블럭 중 i번째 블럭(제i+1 블럭)을 상기 i번째 암호키(제i 암호키)로 순차적으로 암호화하도록 작동됨 -
    를 포함하고,
    상기 데이타 처리 장치는,
    상기 제1 기억 영역의 데이타를 판독하기 위한 제1 판독 수단;
    상기 제2 기억 영역의 데이타를 순차적으로 판독하기 위한 제2 판독 수단;
    상기 제2 판독 수단에 의해 순차적으로 판독되는 블럭 중 첫번째 블럭(제2 블럭)을 순차적으로 공급되는 암호키 중 첫번째 암호키(제1 암호키)로 암호해제하고, 상기 제2 판독 수단에 의해 순차적으로 판독되는 블럭 중 i번째 블럭(제i+1 블럭)을 순차적으로 공급되는 암호키 중 i번째 암호키(제i 암호키)로 순차적으로 암호해제하기 위한 암호해제 수단; 및
    상기 제1 판독 수단의 출력(제1 블럭)에 기초하여 첫번째 암호키(제1 암호키)를 생성하고, 상기 첫번째 암호키(제1 암호키)를 상기 암호해제 수단에 공급하며, 상기 암호해제 수단으로부터의 i-1번째 블럭(제i 블럭)의 암호해제된 출력에 기초하여 i번째 암호키(제i 암호키)를 순차적으로 생성하고, 상기 i번째 암호키(제i 암호키)를 상기 암호해제 수단에 순차적으로 공급하는 암호키 산출 수단
    을 포함하는 것을 특징으로 하는 데이타의 불법 변경 방지 시스템.
  5. 제4항에 있어서, 상기 데이타는 프로그램 코드인 것을 특징으로 하는 데이타의 불법 변경 방지 시스템.
  6. 제4항에 있어서, 상기 제1 기억 영역은 미리 결정된 제0 암호키로 암호화된 데이타의 최상위 블럭을 저장하고, 상기 제1 판독 수단은 상기 제1 기억 영역에 저장된 데이타를 상기 제0 암호키로 암호해제하고 상기 암호해제된 데이타를 출력하는 것을 특징으로 하는 데이타의 불법 변경 방지 시스템.
  7. 제4항에 있어서, 상기 암호키 산출 수단은 일방향 함수를 이용하여 제1 내지 제n 암호키를 생성하는 것을 특징으로 하는 데이타의 불법 변경 방지 시스템.
KR10-1999-0045001A 1998-10-19 1999-10-18 데이타 암호화 장치 및 불법 변경 방지 시스템 KR100434836B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP29708198A JP3481470B2 (ja) 1998-10-19 1998-10-19 データ等の不正改竄防止システム及びそれと併用される暗号化装置
JP1998-297081 1998-10-19

Publications (2)

Publication Number Publication Date
KR20000029146A KR20000029146A (ko) 2000-05-25
KR100434836B1 true KR100434836B1 (ko) 2004-06-07

Family

ID=17841964

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-0045001A KR100434836B1 (ko) 1998-10-19 1999-10-18 데이타 암호화 장치 및 불법 변경 방지 시스템

Country Status (4)

Country Link
US (1) US6742122B1 (ko)
JP (1) JP3481470B2 (ko)
KR (1) KR100434836B1 (ko)
TW (1) TW461996B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101216995B1 (ko) 2010-12-03 2012-12-31 충남대학교산학협력단 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG143976A1 (en) * 2001-02-16 2008-07-29 Sony Corp Data processing method and its apparatus
JP2002244868A (ja) * 2001-02-16 2002-08-30 Sony Corp データ処理方法、半導体回路およびプログラム
CN1941694B (zh) 2001-07-17 2011-04-20 夏普株式会社 生成用于检测在处理期间加密数据的虚假改造的数据的设备及方法
KR100940202B1 (ko) * 2002-08-29 2010-02-10 삼성전자주식회사 일방향 함수를 사용하여 계층적으로 암호화하는 장치 및방법
KR100924773B1 (ko) * 2002-09-16 2009-11-03 삼성전자주식회사 메타데이터 암호화 및 복호화 방법과 암호화된 메타데이터관리 방법 및 그 시스템
JP2004320711A (ja) 2003-03-31 2004-11-11 Victor Co Of Japan Ltd データ処理装置及び改竄判定装置並びにデータ処理プログラム及び改竄判定プログラム
JP2006238154A (ja) * 2005-02-25 2006-09-07 Sony Corp データ処理方法
KR20080018683A (ko) * 2006-08-25 2008-02-28 삼성전자주식회사 실행 프로그램의 변조 방지 방법 및 그 장치
KR101405915B1 (ko) * 2007-04-26 2014-06-12 삼성전자주식회사 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법
EP2153365A1 (en) 2007-05-22 2010-02-17 Koninklijke Philips Electronics N.V. Data security
JP4470982B2 (ja) 2007-09-19 2010-06-02 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
JP2009171253A (ja) * 2008-01-16 2009-07-30 Trinity Security Systems Inc 鍵共有方法、認証方法、認証プログラム、記録媒体および通信システム
US8634549B2 (en) * 2008-05-07 2014-01-21 Red Hat, Inc. Ciphertext key chaining
US8396209B2 (en) * 2008-05-23 2013-03-12 Red Hat, Inc. Mechanism for chained output feedback encryption
JP6168894B2 (ja) * 2013-07-25 2017-07-26 サイプレス セミコンダクター コーポレーション システム、エミュレータ、デバッグシステムおよびデバッグシステムにおける方法
KR101638790B1 (ko) * 2014-09-29 2016-07-12 김영후 데이터 위변조 방지 및 위변조 검증 장치
JP6478724B2 (ja) * 2015-03-09 2019-03-06 Kddi株式会社 情報処理装置、情報処理方法、及びコンピュータプログラム
US11151265B2 (en) * 2019-04-29 2021-10-19 International Business Machines Corporation Secure data storage based on obfuscation by distribution

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2680892A1 (fr) 1991-09-03 1993-03-05 Gemplus Card Int Procede d'authentification de donnees.
JPH06259011A (ja) 1993-03-03 1994-09-16 Nippon Telegr & Teleph Corp <Ntt> 公開鍵暗号化装置および復号装置
JPH06282227A (ja) 1993-03-29 1994-10-07 Nippon Telegr & Teleph Corp <Ntt> 公開鍵暗号化装置及び公開鍵復号装置
US5606616A (en) * 1995-07-03 1997-02-25 General Instrument Corporation Of Delaware Cryptographic apparatus with double feedforward hash function
JPH09231137A (ja) 1996-02-21 1997-09-05 Kao Corp 複製判定方法および読出装置
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6438235B2 (en) * 1998-08-05 2002-08-20 Hewlett-Packard Company Media content protection utilizing public key cryptography

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101216995B1 (ko) 2010-12-03 2012-12-31 충남대학교산학협력단 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법

Also Published As

Publication number Publication date
US6742122B1 (en) 2004-05-25
JP2000122861A (ja) 2000-04-28
JP3481470B2 (ja) 2003-12-22
TW461996B (en) 2001-11-01
KR20000029146A (ko) 2000-05-25

Similar Documents

Publication Publication Date Title
KR100434836B1 (ko) 데이타 암호화 장치 및 불법 변경 방지 시스템
EP1440535B1 (en) Memory encrytion system and method
US7222232B2 (en) License-based cryptographic technique particularly suited for use in a digital rights management system for controlling access and use of bore resistant software objects in a client computer
US6801999B1 (en) Passive and active software objects containing bore resistant watermarking
EP0583140B1 (en) System for seamless processing of encrypted and non-encrypted data and instructions
US8281115B2 (en) Security method using self-generated encryption key, and security apparatus using the same
US6976167B2 (en) Cryptography-based tamper-resistant software design mechanism
CA2771080A1 (en) Secure media path methods, systems, and architecture
CN102163268A (zh) 在执行期间验证软件代码的完整性的方法和设备
US8392723B2 (en) Information processing apparatus and computer readable medium for preventing unauthorized operation of a program
EP1449048B1 (en) Method, system, device and computer program for mutual authentication and content protection
KR101269089B1 (ko) 자가암호화를 이용한 소프트웨어 변조방지 방법
JPH0383132A (ja) ソフトウェア保護制御方式
JP2002244989A (ja) デバイスドライバ作動方法
JPWO2006046484A1 (ja) 認証方法
JPH02110491A (ja) 記憶装置
KR20080096054A (ko) 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법
US20020029344A1 (en) System and method for decrypting encrypted computer program
JP2011123229A (ja) プログラムコード暗号化装置及びプログラム
JP4604523B2 (ja) データの移管方法およびデータの保管装置
JPS6358538A (ja) ソフトウエア保護方式
JP4474267B2 (ja) 暗号処理装置
KR100865774B1 (ko) 디지털 권리 관리
JPH0728406A (ja) スクランブル方法
JP2001166997A (ja) ディジタルデータの不正コピー防止システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20020627

Effective date: 20040419

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130503

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140502

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160427

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee