KR20070077052A - 마이크로콘트롤러와 그 인증 방법 및 인증 프로그램 - Google Patents
마이크로콘트롤러와 그 인증 방법 및 인증 프로그램 Download PDFInfo
- Publication number
- KR20070077052A KR20070077052A KR1020060128519A KR20060128519A KR20070077052A KR 20070077052 A KR20070077052 A KR 20070077052A KR 1020060128519 A KR1020060128519 A KR 1020060128519A KR 20060128519 A KR20060128519 A KR 20060128519A KR 20070077052 A KR20070077052 A KR 20070077052A
- Authority
- KR
- South Korea
- Prior art keywords
- authentication code
- processor
- program
- authentication
- generating means
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 11
- 230000004044 response Effects 0.000 claims description 9
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 238000005520 cutting process Methods 0.000 claims description 3
- 230000005856 abnormality Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 102220465380 NF-kappa-B inhibitor beta_S23A_mutation Human genes 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 102220471758 Proteasome subunit alpha type-7_S24A_mutation Human genes 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
마이크로컴퓨터에 있어서의 프로그램의 부정이용을 간단한 구성으로 방지한다. 프로그램 안에, 인증코드 생성모듈(6)에 임의의 값을 기록하는 스텝 S23과, 인증코드 생성모듈(6)로부터 인증 코드를 읽어내어 스텝 S23에서 기록한 값에 일치하는 지 여부를 판정하는 스텝 S24를 짜 넣어 둔다. 이 프로그램을, 인증코드 생성모듈(6)을 구비한 정규의 마이크로컴퓨터로 실행하면, 정상적인 처리가 행해진다. 만약, 이 프로그램을 인증코드 생성모듈(6)을 구비하지 않은 별도의 마이크로컴퓨터로 실행하면, 인증 코드를 읽어낼 수 없으므로, 처리의 속행이 불가능하게 되어 부정이용을 방지할 수 있다.
인증코드 생성모듈, 인증코드, 마이크로콘트롤러, 인증코드 레지스터
Description
도 1은 본 발명의 실시예 1을 나타내는 마이크로콘트롤러의 설명도,
도 2는 종래의 마이크로콘트롤러의 설명도,
도 3은 본 발명의 실시예 2를 나타내는 마이크로콘트롤러의 설명도,
도 4는 본 발명의 실시예 3을 나타내는 인증코드 레지스터의 구성도,
도 5는 도 4안의 설정부의 변형예를 도시하는 구성도이다.
[도면의 주요부분에 대한 부호의 설명]
1 : CPU 2 : ROM
3 : 버스 4 : 입출력 모듈
6 : 인증코드 생성모듈 7 : 인증코드 레지스터
BIF : 버스 인터페이스 SEL : 셀렉터
RG : 레지스터 FV, FG : 휴즈
R : 저항 W : 본딩 와이어
본 발명은, 마이크로콘트롤러용으로 개발된 프로그램의 부정이용 방지기술에 관한 것이다.
도 2(a), 도 2(b)는, 종래의 마이크로콘트롤러의 설명도이며, 동 도면(a)는 하드웨어 구성도 및 동 도면(b)는 소프트웨어에 의한 동작 플로이다.
이 마이크로콘트롤러는, 도 2(a)에 나타나 있는 바와 같이 프로그램에 따라 처리 및 제어를 행하는 중앙처리 유닛(이하, 「CPU」라고 한다)(1)과, 그 프로그램이 격납된 읽기전용 메모리(이하, 「ROM」이라고 한다)(2)를 가지고, 이들의 CPU(1)와 ROM(2)이 버스(3)를 통해 접속되고 있다. 버스(3)에는, 또한 예를 들면 외부 메모리(10)등과의 사이에서 데이터 송수신을 행하는 입출력 모듈(4)이나, 그 밖의 기능 모듈(5)이 접속되어 있다.
한편, 이 마이크로콘트롤러의 동작을 규정하는 소프트웨어는, 도 2(b)에 나타나 있는 바와 같이, 마이크로콘트롤러의 기능에 따라 전체의 처리 흐름을 제어하는 메인프로그램과, 이 메인프로그램으로부터 기동되어 개개의 정돈된 처리를 행하는 함수 프로그램과 같은 하위 프로그램으로 구성되어 있다.
예를 들면 메인프로그램의 스텝 S1에서, CPU(1)은 입출력 모듈(4)을 통해 외부 메모리(1O)로부터 데이터를 읽어들인다. 다음에 스텝 S2에서 하위 프로그램을 기동하여, 그 데이터를 넘겨준다.
이에 따라 하위 프로그램의 동작이 개시되어, 스텝 S11에 있어서, 읽어들인 데이터(입력 데이터)의 인도가 행해지고, 스텝 S12에서 입력 데이터에 따른 연산 처리가 행해진다. 스텝 S12의 연산 처리가 완료하면, 스텝 S13에서 연산 처리 결과의 데이터(출력 데이터)가 생성되고, 메인프로그램으로 되돌아온다.
그리고, 메인프로그램의 스텝 S3에 있어서, CPU(1)는 하위 프로그램에서 생성된 출력 데이터를 받아, 입출력 모듈(4)을 통해 외부 메모리(10)에 그 데이터를 쓰기 시작한다.
[특허문헌 1] 일본국 공개특허공보 특개평11-345117호 공보
[특허문헌 2] 일본국 공개특허공보 특개2001-209584호 공보
[특허문헌 3] 일본국 공개특허공보 특개2003-150457호 공보
상기 특허문헌 1에는, 일반적인 처리·제어용의 명령 외에 실행 허가 명령을 설정하여, 프로세서에 고유한 프로세서 ID와 실행해야 할 프로그램에 고유의 소프트웨어 ID에 의거하여 인증 동작을 행하고, 인증 동작이 성공 리에 끝났을 때 그 프로그램의 실행을 할 수 있도록 구성한 프로그램의 부정실행 방지기능이 있는 프로세서가 기재되어 있다.
특허문헌 2에는, PC의 하드 디스크 등의 내부기억매체에 기억되어 있는 데이터를, CD(Compact Disc)등의 외부기억매체에 복사할 때에, 그 PC에 설정된 고유 정보에 따라 데이터를 암호화하여 복사하고, 암호화된 외부기억매체를 읽을 때에는 그 고유정보에 따라 복호화하도록 구성한 정보 암호화 장치가 기재되어 있다. 이에 따라 복사된 외부기억매체를 다른 PC에서 판독하는 것을 방지할 수 있다.
특허문헌 3에는, 소프트웨어 등의 전자 데이터가 격납된 데이터 영역과, 고 쳐쓰기 가능한 식별 ID를 격납하는 보호 영역을 구비한 저작권보호기능 내장매체를 사용하여, 전자 데이터의 부정이용을 방지하는 기술이 기재되어 있다. 이 특허문헌 3에 기재된 전자 데이터 이용 기기에서는, 외부 메모리 장착 슬롯에 장착된 저작권보호기능 내장매체의 보호 영역으로부터 식별 ID를 읽어내어, 그 식별 ID가 이 전자 데이터 이용 기기에 설정된 고유 ID와 일치하고 있거나 또는 범용 ID의 경우에 전자 데이터를 읽어내는 것이 가능하게 되어, 읽어낸 후에 저작권보호기능 내장매체의 보호 영역에 그 고유 ID를 기록하도록 하고 있다. 이에 따라 일단, 어느 전자 데이터 이용 기기로 읽혀진 저작권보호기능 내장매체에는, 최초에 읽어낸 전자 데이터 이용 기기의 고유 ID가 기록되므로, 그 후에 다른 전자 데이터 이용 기기로 판독할 수 없게 된다.
그러나, 도 2에 나타낸 종래의 마이크로콘트롤러의 하위 프로그램은, 예를 들면 함수 프로그램과 같이 기능마다 모아, 그 외 전혀 다른 제어를 행하는 메인프로그램 하에서도 동작하도록 호환성을 가지는 구성으로 하는 경우가 많다. 이 때문에, ROM(2)으로부터 하위 프로그램이 부정으로 복사되어, 다른 마이크로콘트롤러의 하위 프로그램으로서 전용되었을 경우, CPU의 명령 코드 체계가 동일하면(마이크로콘트롤러용의 CPU의 종류는 한정되어 있으므로, 그 가능성은 높다), 아무런 문제도 없이 동작하게 된다. 특히, 대규모인 함수 프로그램 등의 하위 프로그램의 개발에는, 엄청난 개발 기간과 비용이 필요하므로, 도용되었을 경우의 피해는 막대 하다.
한편, 특허문헌 1에 기재된 프로세서는, 프로그램의 부정사용의 방지가 도모되고 있지만, 프로세서 자체의 개발에 엄청난 비용이 들며 또한, 지금까지의 CPU를 전제로 하여 개발되어 온 하드웨어나 소프트웨어 자산을 활용할 수 없게 될 우려가 있어, 현실적인 해결 수단으로는 생각할 수 없다. 또한 특허문헌 2, 3에 기재된 부정사용 방지기술은, 소프트웨어의 입출력을 전제로 한 외부기억매체를 가지는 PC를 대상으로 한 것으로, 제어용의 마이크로콘트롤러로의 적용은 곤란하다.
본 발명은, 프로그램의 부정이용을 간단한 구성으로 방지할 수 있는 마이크로컴퓨터와 그 인증 방법 및 인증 프로그램을 제공하는 것을 목적으로 하고 있다.
본 발명의 마이크로콘트롤러의 인증 방법은, 프로그램이 기억된 메모리와, 상기 메모리에 기억된 프로그램에 따라 연산 제어를 행하는 프로세서를 구비한 마이크로콘트롤러에, 상기 프로세서로부터 액세스되어 인증 코드를 출력하는 인증코드 생성수단을 설치하고, 상기 프로그램에 의해 상기 인증코드 생성수단으로부터 상기 인증 코드를 읽어내어, 상기 읽어낸 인증 코드가 정상인 지 여부를 판정하는 것을 특징으로 한다.
또한 본 발명의 마이크로콘트롤러는, 프로그램이 기억된 메모리와, 상기 메모리에 기억된 프로그램에 따라 연산 제어를 행하는 프로세서와, 상기 프로세서에 의해 기록된 데이터를 인증 코드로서 유지하여, 상기 프로세서로부터의 읽어내기 요구에 따라 상기 인증 코드를 출력하는 인증코드 생성수단을 구비한 것을 특징으로 한다.
본 발명의 상기 및 그 밖의 목적과 신규 특징은, 다음 바람직한 실시예의 설명을 첨부된 도면과 대조해서 읽으면, 보다 완전하게 밝혀질 것이다. 단, 도면은, 단지 해설을 위한 것으로, 본 발명의 범위를 한정하는 것은 아니다.
실시예
1
도 1(a), 도 1(b)는, 본 발명의 실시예 1을 나타내는 마이크로콘트롤러의 설명도이며, 동 도면 (a)는 하드웨어 구성도 및 동 도면 (b)는 소프트웨어에 의한 동작 플로이다. 이들의 도 1(a), 도 1(b)에 있어서, 도 2안의 요소와 공통 요소에는 공통의 부호가 붙여지고 있다.
이 마이크로콘트롤러는, 도 1(a)에 나타나 있는 바와 같이 프로그램에 따라 처리 및 제어를 행하는 CPU(1)와, 그 프로그램이 격납된 ROM(2)을 가지고, 이들의 CPU(1)와 ROM(2)이 버스(3)를 통해 접속되어 있다. 버스(3)에는, 또한 예를 들면 외부 메모리(10)등과의 사이에서 데이터 송수신을 행하는 입출력 모듈(4), 인증코드 생성모듈(6) 및 그 밖의 기능 모듈(5)이 접속되어 있다.
인증코드 생성모듈(6)은, CPU(1)로부터 버스(2)를 통해 읽고 쓰기가 가능한 레지스터로 구성되어 있다. 즉, CPU(1)로부터 기록된 임의의 값을 유지하고, 이 CPU(1)로부터 읽어내기 요구가 있었을 때, 그 유지한 값을 인증 코드로서 출력하는 것이다. 또한, 인증코드 생성모듈(6)은, 거기에 액세스하는 시간을 가능한 한 작 게 하기 위해, 고속 버스 위에 배치하는 것이 바람직하다.
다음에 동작을 설명한다.
이 마이크로콘트롤러의 동작을 규정하는 소프트웨어는, 도 1(b)에 나타나 있는 바와 같이 마이크로콘트롤러의 기능에 따라 전체의 처리 흐름을 제어하는 메인프로그램과, 이 메인프로그램으로부터 기동되어 개개의 정리된 처리를 행하는 함수 프로그램과 같은 하위 프로그램으로 구성되어 있다.
메인프로그램의 스텝 S1에 있어서, CPU(1)는 입출력 모듈(4)을 통해 외부 메모리(10)로부터 데이터를 읽어 들인다. 다음에 스텝 S2에서 하위 프로그램을 기동하고, 그 데이터를 넘겨준다.
이에 따라 하위 프로그램의 동작이 개시되어, 스텝 S21에 있어서, 하위 프로그램에 입력된 데이터(입력 데이터)의 인도가 행해지고, 스텝 S22에서 입력 데이터에 따른 연산 처리가 행해진다. 스텝 S22의 연산 처리가 완료하면, 스텝 S23에서 인증코드 생성모듈(6)에 임의의 값(인증 코드)을 기록한다. 그 후에 스텝 S24에서 인증코드 생성모듈(6)에 기록한 인증 코드를 읽어내어, 스텝 S23에서 기록한 값과 일치하고 있는지 여부를 판정한다.
스텝 S24에 있어서 인증 코드가 정상이라고 판정되면, 스텝 S25로 진행되어 연산 처리 결과의 데이터(출력 데이터)가 생성되어, 메인프로그램으로 되돌아온다. 그리고, 메인프로그램의 스텝 S3에 있어서, CPU(1)는 하위 프로그램에서 생성된 출력 데이터를 받아, 출력 모듈(4)을 통해 외부 메모리(10)에 그 데이터를 쓰기 시작한다.
만약, 스텝 S24에 있어서 인증 코드가 이상이라고 판정되면, 처리의 속행이 불가능하게 되어, 프로그램이 폭주하게 된다. 또한, 스텝 S24에 있어서 인증 코드가 이상이라고 판정되었을 때, 프로그램의 실행을 종료시키거나, 출력 데이터를 생성하지 않고 메인프로그램으로 되돌리도록 구성할 수도 있다.
이상과 같이, 이 실시예 1의 마이크로콘트롤러는, CPU(1)로부터 기록된 임의의 값을 인증 코드로서 유지하고, 읽어내기 요구에 따라 이 인증 코드를 출력하는 인증코드 생성모듈(6)을 가지고, 또한 ROM(2)에 격납된 하위 프로그램 안에, 인증코드 생성모듈(6)에 인증 코드를 기록해서 읽어내어, 일치하는지 여부를 판정하는 처리(스텝 S23, S24)를 짜 넣고 있다.
이에 따라 인증코드 생성모듈(6)을 갖지 않는 도 2(a)의 구성과 같은 마이크로콘트롤러에, 도 1(a)안의 ROM(2)에서 도 1(b)의 소프트웨어를 부정으로 빼내 복사해서 동작시켰을 경우, 스텝 S23에 있어서 기록 대상의 인증코드 생성모듈이 존재하지 않으므로, 스텝 S24의 판정 처리에 있어서 정상적인 인증 코드를 읽어낼 수 없게 된다. 이 때문에, 프로그램이 이상종료(ABEND)하여, 원하는 처리를 행할 수 없게 된다. 따라서, 프로그램의 부정이용을 간단한 구성으로 방지할 수 있다는 이점이 있다.
[실시예 2]
도 3(a), 도 3(b)는, 본 발명의 실시예 2를 나타내는 마이크로콘트롤러의 설명도이며, 동 도면(a)는 하드웨어 구성도 및 동 도면(b)는 소프트웨어에 의한 동작 플로이다. 이들의 도 3(a), 도 3(b)에 있어서, 도 1중의 요소와 공통 요소에는 공 통 부호가 붙여지고 있다.
이 마이크로콘트롤러는, 도 1(a)의 마이크로콘트롤러의 인증코드 생성모듈(6)대신에 인증코드 레지스터(7)를 설치함과 동시에, 도 1(b)의 하위 프로그램 안의 스텝 S23, S24대신에 처리 내용이 약간 다른 스텝 S23A, S24A를 설정하고 있다.
인증 코드 레지스터(7)는, 미리 소정의 값이 인증 코드로서 기억된 ROM으로 구성되어, CPU(1)로부터 버스(3)를 통해 읽어내기가 가능한 레지스터이다.
스텝 S23A는, 인증코드 레지스터(7)에서 인증 코드를 읽어내는 처리 스텝이며, 스텝 S24A는, 스텝 S23A에서 읽어낸 인증 코드가 정상인지 여부를 판정하는 처리 스텝이다. 그 밖의 구성은, 도 1과 같다.
이 마이크로콘트롤러의 동작은, 하위 프로그램에서 인증 코드의 기록을 행하지 않고, 인증코드 레지스터(7)로부터 인증 코드를 읽어내어 판정하는 것이 다른 외에는, 도 1의 마이크로콘트롤러의 동작과 같다.
이상과 같이, 이 실시예 2의 마이크로콘트롤러는, 미리 정해진 인증 코드가 기록된 인증코드 레지스터(7)를 가지고, 또한 ROM(2)에 격납된 하위 프로그램안에, 인증코드 레지스터(7)를 읽어내어, 정상인지 여부를 판정하는 처리(스텝 S23A, S24A)를 짜 넣고 있다.
이에 따라 인증코드 레지스터(7)를 가지지 않는 도 2(a)의 구성과 같은 마이크로콘트롤러에, 도 3(a)안의 ROM(2)으로부터 도 3(b)의 소프트웨어를 부정으로 빼내 복사하여 동작시켰을 경우, 스텝 S23A에 있어서 정상적인 인증 코드를 읽어낼 수 없기 때문에, 스텝 S24A의 판정 처리에 있어서 이상이라고 판정된다. 이 때문에, 프로그램이 이상종료(ABEND)하여, 원하는 처리를 행할 수 없게 된다. 따라서, 실시예 1과 같은 이점이 있다.
또한, 실시예 1의 인증코드 생성모듈(6)의 경우, 그 어드레스가 도 2(a)의 마이크로콘트롤러에 있어서, 가끔가끔 읽고 쓰기가 가능한 레지스터에 할당되어 있는 경우, 하위 프로그램은 정상으로 동작하지만, 이 실시예 2에서는, 인증코드 레지스터(7)를 읽어내기 전용으로 하고 있기 때문에, 이 인증코드 레지스터(7)에 대응하는 어드레스로부터 읽어낸 값이 인증 코드에 일치할 우연성은 극히 작다. 또한 인증 코드를 연속하는 복수의 어드레스에 격납해 두면, 인증 코드가 일치할 확률은 더욱 작아진다.
[실시예 3]
도 4(a), 도 4(b)는, 본 발명의 실시예 3을 나타내는 인증코드 레지스터의 구성도이며, 도 3안의 인증코드 레지스터(7) 대신에 설치되는 것이다.
도 4(a)의 인증코드 레지스터는, 각각 고유의 값이 인증 코드로서 기억된 ROM등으로 이루어지는 복수의 레지스터 RGO∼RG7, 이들의 레지스터 RGO∼RG7을 선택신호 SL0∼SL2에 따라 선택하는 셀렉터 SEL, 이 셀렉터 SEL에서 선택된 레지스터의 값을 CPU(1)로부터의 읽어내기 요구에 따라 버스(3)에 출력하는 버스 인터페이스 BIF 및 선택신호 SLO∼SL2를 출력하는 설정부로 구성되어 있다.
설정부는, 선택신호 SLO∼SL2가 출력되는 노드 NO∼N2를 가지고, 이들의 노드 NO∼N2와 전원전위 VDD 사이가, 각각 휴즈 FVO∼FV2로 접속되고, 노드 NO∼N2와 접지전위 GND 사이가, 각각 휴즈 FGO∼FG2로 접속되도록 되어 있다. 이 설정부에서는, 1대의 휴즈(FVO, FGO), (FV1, FG1), (FV2, FG2) 안의 어느 한쪽이, 제조 단계에서 레이저빔 등에 의해 절단되고, 노드 NO∼N2에 레벨 “H” 또는 레벨 “L”의 선택신호 SLO∼SL2가 출력되도록 되어 있다.
한편, 도 4(b)의 인증코드 레지스터는, 예를 들면 16비트의 인증 코드를 출력하는 노드 NO∼N15를 가지는 설정부와, 이 노드 NO∼N15로부터 출력되는 인증 코드를 CPU(1)로부터 읽어내기 요구에 따라 버스(3)에 출력하는 버스 인터페이스 BIF로 구성되어 있다. 설정부의 구성은, 도 4(a)안의 설정부와 같다.
이러한 도 4(a), 도 4(b)의 인증코드 레지스터에서는, 설정부의 설정값을 바꿈으로써, 다른 인증 코드를 설정할 수 있다. 따라서, 예를 들면 먼저 구입한 하드웨어와 같이 인증코드 레지스터를 가지는 개량판으로서의 정규의 하드웨어를 신규구입하고, 먼저 구입한 하드웨어로부터 부정으로 빼낸 하위 프로그램에서, 신규로 구입한 하드웨어를 동작시켰을 경우, 하위 프로그램안에 설정되어 있는 인증 코드와 일치하지 않으므로, 정상적인 동작을 행할 수 없게 된다. 즉, 휴즈 등의 내부의 형성에 의해 고객마다 인증 코드를 바꿀 수 있으므로, 동일한 하드웨어를 구입했다고 해도, 프로그램을 구입하지 않은 고객에 대한 부정입수 프로그램에서의 사용을 방지할 수 있다. 단, 제조자로서는, 하드웨어에 설정한 인증 코드마다, 대응하는 하위 프로그램을 준비해 둘 필요가 있다.
또한, 본 발명은, 상기 실시예에 한정되지 않고, 여러가지의 변형이 가능하다. 이 변형예로서는, 예를 들면 다음과 같은 것이 있다.
(1)도 1(b)와 도 3(b)의 하위 프로그램에서는, 연산 처리를 행한 후, 인증 코드의 판정을 행하고 있지만, 연산 처리전에 인증 코드의 판정을 행하도록 해도 좋다.
(2)도 1(b)와 도 3(b)에서는, 프로그램을 메인프로그램과 하위 프로그램으로 분할하여, 하위 프로그램에서 인증 코드의 판정을 행하도록 하고 있지만, 메인프로그램에서 인증 코드의 판정을 행해도 좋고, 또한 프로그램을 메인프로그램과 하위 프로그램으로 구분할 필요도 없다.
(3)인증 코드의 비트수는 임의이다.
(4)인증코드 생성모듈(6)은, 주어진 임의의 값을 그대로 인증 코드로서 출력하고 있지만, 주어진 임의의 값에 대하여 소정의 연산을 행해서 인증 코드를 생성하도록 구성해도 좋다.
(5)도 4안의 설정부는, 휴즈의 절단에 의해 선택신호나 인증 코드를 설정하도록 구성되어 있지만, 마스크 패턴에 의해 선택신호나 인증 코드를 설정하도록 구성해도 좋다.
(6)설정부의 구성은 도 4에 예시한 것에 한정되지 않는다. 도 5(a)∼ 도 5(c)는, 도 4안의 설정부의 변형예를 도시하는 구성도이다.
도 5(a)의 설정부는, 노드 NO, N1과 전원전위 VDD의 사이를 각각 휴즈 FVO, FV1로 접속하고, 이 노드 NO, N1과 접지전위 GND 사이를 각각 고저항 RO, R1으로 접속하며, 휴즈를 절단함으로써 노드를 접지전위 레벨인 “L”에 풀다운 하도록 구성하고 있다.
도 5(b)의 설정부는, 도 5(a)와는 반대로, 노드 NO, N1과 전원전위 VDD 사이를 각각 고저항 RO, R1로 접속하고, 이 노드 NO, N1과 접지전위 GND 사이를 각각 휴즈 FVO, FV1로 접속하고, 휴즈를 절단함으로써 노드를 전원전위 레벨인 “H”에 풀업하도록 구성하고 있다.
또한 도 5(c)의 설정부는, 노드 NO, N1에 본딩 패드를 설치하고, 본딩 와이어 W에 의해 패키지의 리드프레임의 전원전위 VDD 또는 접지전위 GND에 접속하도록 하고 있다. 이 본딩 와이어 W에 의한 설정부에서는 휴즈를 사용하지 않으므로, 레이저 트리밍 장치 등의 특별한 장치를 필요로 하지 않고, 일반적인 와이어 본딩 장치로 임의의 값을 설정할 수 있다는 이점이 있다.
본 발명에서는, 프로세서로부터의 읽어내기 요구에 따라 인증 코드를 출력하는 인증코드 생성수단을 가지고 있으므로, 읽어낸 인증 코드를 체크 함으로써, 정규의 하드웨어와 소프트웨어의 조합 인지의 여부를 판정하는 것이 가능하게 되어, 프로그램의 부정 이용을 간단한 구성으로 방지할 수 있다는 효과가 있다.
Claims (9)
- 프로그램이 기억된 메모리와, 상기 메모리에 기억된 프로그램에 따라 연산 제어를 행하는 프로세서를 구비한 마이크로콘트롤러의 인증 방법으로서,상기 프로세서로부터 액세스되어 인증 코드를 출력하는 인증코드 생성수단을 설치하고,상기 프로그램에 의해 상기 인증코드 생성수단으로부터 상기 인증 코드를 읽어 내고,상기 읽어낸 인증 코드가 정상인지 여부를 판정하는 것을 특징으로 하는 마이크로콘트롤러의 인증방법.
- 제 1항에 있어서,상기 인증코드 생성수단은, 상기 프로세서에 의해 기록된 데이터를 상기 인증 코드로서 유지하고, 상기 프로세서로부터의 읽어내기 요구에 따라 상기 인증 코드를 출력하는 것을 특징으로 하는 마이크로콘트롤러의 인증 방법.
- 제 1항에 있어서,상기 인증코드 생성수단은, 미리 정해진 인증 코드를 유지하고, 상기 프로세 서로부터의 읽어내기 요구에 따라 상기 인증 코드를 출력하는 것을 특징으로 하는 마이크로콘트롤러의 인증 방법.
- 프로그램이 기억된 메모리와,상기 메모리에 기억된 프로그램에 따라 연산 제어를 행하는 프로세서와,상기 프로세서에 의해 기록된 데이터를 인증 코드로서 유지하고, 상기 프로세서로부터의 읽어내기 요구에 따라 상기 인증 코드를 출력하는 인증코드 생성수단을 구비한 것을 특징으로 하는 마이크로콘트롤러.
- 프로그램이 기억된 메모리와,상기 메모리에 기억된 프로그램에 따라 연산 제어를 행하는 프로세서와,상기 프로세서로부터의 읽어내기 요구에 따라 미리 정해진 인증 코드를 출력하는 인증코드 생성수단을 구비한 것을 특징으로 하는 마이크로콘트롤러.
- 제 5항에 있어서,상기 인증코드 생성수단은,각각 미리 정해진 인증 코드가 설정된 복수의 레지스터와,설정부에 설정된 선택신호에 의거하여 상기 복수의 레지스터로부터 하나를 선택하여 상기 레지스터에 설정된 상기 인증 코드를 출력하는 셀렉터와,상기 프로세서로부터의 요구에 따라서 상기 셀렉터로부터 출력되는 상기 인증 코드를 출력하는 버스 인터페이스를 구비한 것을 특징으로 하는 마이크로콘트롤러.
- 제 5항에 있어서,상기 인증코드 생성수단은,마스크 패턴, 휴즈의 절단 또는 와이어 배선에 의해 복수 비트의 신호를 고정적으로 설정하는 설정부와,상기 프로세서로부터의 요구에 따라 상기 설정부에 설정된 복수 비트의 신호를 상기 인증 코드로서 출력하는 버스 인터페이스를 구비한 것을 특징으로 하는 마이크로콘트롤러.
- 프로그램이 기억된 메모리와, 상기 메모리에 기억된 프로그램에 따라 연산 제어를 행하는 프로세서와, 상기 프로세서로부터 액세스되어 인증 코드를 출력하는 인증코드 생성수단을 구비한 마이크로콘트롤러의 인증 프로그램으로서,상기 인증코드 생성수단으로부터 상기 인증 코드를 읽어내는 스텝과,상기 읽어낸 인증 코드가 정상인지 여부를 판정하는 스텝을 가지는 것을 특징으로 하는 마이크로콘트롤러의 인증 프로그램.
- 프로그램이 기억된 메모리와, 상기 메모리에 기억된 프로그램에 따라 연산 제어를 행하는 프로세서와, 상기 프로세서에 의해 기록된 데이터를 인증 코드로서 유지하고, 상기 프로세서로부터의 읽어내기 요구에 따라 상기 인증 코드를 출력하는 인증코드 생성수단을 구비한 마이크로콘트롤러의 인증 프로그램으로서,상기 인증코드 생성수단에 임의의 데이터를 기록하는 스텝과,상기 인증코드 생성수단으로부터 상기 인증 코드를 읽어내는 스텝과,상기 읽어낸 인증 코드가 상기 기록한 임의의 데이터와 일치했을 때에 정상이라고 판정하여 처리를 속행하고, 불일치할 때는 이상이라고 판정하여 그 이후의 처리를 정지하는 스텝을 가지는 것을 특징으로 하는 마이크로콘트롤러의 인증 프로그램.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2006-00010641 | 2006-01-19 | ||
JP2006010641A JP4783163B2 (ja) | 2006-01-19 | 2006-01-19 | マイクロコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070077052A true KR20070077052A (ko) | 2007-07-25 |
Family
ID=38370284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060128519A KR20070077052A (ko) | 2006-01-19 | 2006-12-15 | 마이크로콘트롤러와 그 인증 방법 및 인증 프로그램 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20070192831A1 (ko) |
JP (1) | JP4783163B2 (ko) |
KR (1) | KR20070077052A (ko) |
CN (1) | CN101004775B (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8554090B2 (en) * | 2009-10-30 | 2013-10-08 | Ui Technologies, Inc. | Replacement printer cartridge chip with a microcontroller with an encrypted memory device |
JP6208492B2 (ja) * | 2013-08-07 | 2017-10-04 | 株式会社ミツトヨ | 情報処理装置、情報処理方法、プログラム、及び情報処理システム |
US11269986B2 (en) * | 2018-10-26 | 2022-03-08 | STMicroelectronics (Grand Ouest) SAS | Method for authenticating a program and corresponding integrated circuit |
CN112269980B (zh) * | 2020-10-30 | 2024-07-30 | 大唐高鸿信安(浙江)信息科技有限公司 | 处理器架构 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08314715A (ja) * | 1995-05-17 | 1996-11-29 | Tec Corp | データ処理装置 |
US5757914A (en) * | 1995-10-26 | 1998-05-26 | Sun Microsystems, Inc. | System and method for protecting use of dynamically linked executable modules |
JPH10127915A (ja) * | 1996-11-01 | 1998-05-19 | Takasago Electric Ind Co Ltd | 電子遊戯機 |
US5946713A (en) * | 1997-08-18 | 1999-08-31 | Intel Corporation | Memory attribute palette |
US6032257A (en) * | 1997-08-29 | 2000-02-29 | Compaq Computer Corporation | Hardware theft-protection architecture |
JP2000181898A (ja) * | 1998-12-14 | 2000-06-30 | Nec Corp | フラッシュメモリ搭載型シングルチップマイクロコンピュータ |
DE19944991B4 (de) * | 1999-09-20 | 2004-04-29 | Giesecke & Devrient Gmbh | Verfahren zur Sicherung eines Programmablaufs |
JP2001285476A (ja) * | 2000-03-28 | 2001-10-12 | Fujitsu Ltd | Ip端末収容方法及びそのゲートウェイ装置及びゲートキーパー装置及びip端末 |
JP2004005830A (ja) * | 2002-05-31 | 2004-01-08 | Sony Corp | 情報読み出し装置、情報書き込み装置、情報読み出し方法、情報書き込み方法、プログラムおよび記憶媒体 |
CN1553315A (zh) * | 2003-06-06 | 2004-12-08 | 微软公司 | 在安全引导装载程序中使用散列技术 |
KR100718614B1 (ko) * | 2003-10-24 | 2007-05-16 | 야마하 가부시키가이샤 | 용량 소자와 퓨즈 소자를 구비한 반도체 장치 및 그 제조방법 |
-
2006
- 2006-01-19 JP JP2006010641A patent/JP4783163B2/ja not_active Expired - Fee Related
- 2006-12-15 KR KR1020060128519A patent/KR20070077052A/ko not_active Application Discontinuation
- 2006-12-20 CN CN2006101692081A patent/CN101004775B/zh not_active Expired - Fee Related
-
2007
- 2007-01-18 US US11/654,691 patent/US20070192831A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2007193550A (ja) | 2007-08-02 |
US20070192831A1 (en) | 2007-08-16 |
JP4783163B2 (ja) | 2011-09-28 |
CN101004775B (zh) | 2011-01-19 |
CN101004775A (zh) | 2007-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3074639B2 (ja) | システム動作の妥当性検査の方法および装置 | |
US9547767B2 (en) | Event-based apparatus and method for securing bios in a trusted computing system during execution | |
US7340614B2 (en) | Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method | |
US9183394B2 (en) | Secure BIOS tamper protection mechanism | |
US9129113B2 (en) | Partition-based apparatus and method for securing bios in a trusted computing system during execution | |
EP2874092B1 (en) | Recurrent BIOS verification with embedded encrypted hash | |
US9367689B2 (en) | Apparatus and method for securing BIOS in a trusted computing system | |
KR20070077052A (ko) | 마이크로콘트롤러와 그 인증 방법 및 인증 프로그램 | |
US10049217B2 (en) | Event-based apparatus and method for securing bios in a trusted computing system during execution | |
US9798880B2 (en) | Fuse-enabled secure bios mechanism with override feature | |
US9779242B2 (en) | Programmable secure bios mechanism in a trusted computing system | |
JP2002268764A (ja) | Icカードによるソフトウェアライセンス管理システム | |
US20170046516A1 (en) | Fuse-enabled secure bios mechanism in a trusted computing system | |
US10055588B2 (en) | Event-based apparatus and method for securing BIOS in a trusted computing system during execution | |
EP3316168B1 (en) | Fuse-enabled secure bios mechanism in a trusted computing system | |
EP3316167B1 (en) | Programmable secure bios mechanism in a trusted computing system | |
JP2009506416A (ja) | プロセッサハードウェアおよびソフトウェア | |
US9767288B2 (en) | JTAG-based secure BIOS mechanism in a trusted computing system | |
JP5124244B2 (ja) | 半導体集積回路、機密保護方法、機密保護プログラム及び記録媒体 | |
KR20040097435A (ko) | Usb 휴대용 저장장치를 이용한 소프트웨어 불법복제방지장치 및 방지방법 | |
EP3316170B1 (en) | Fuse-enabled secure bios mechanism with override feature | |
EP3316169B1 (en) | Jtag-based secure bios mechanism in a trusted computing system | |
KR20230147993A (ko) | Etcs와 관련된 보안 방법 | |
US20170098081A1 (en) | Event-based apparatus and method for securing bios in a trusted computing system during execution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E601 | Decision to refuse application |