KR20090024093A - Access control apparatus, access control method and access control program - Google Patents

Access control apparatus, access control method and access control program Download PDF

Info

Publication number
KR20090024093A
KR20090024093A KR1020080086856A KR20080086856A KR20090024093A KR 20090024093 A KR20090024093 A KR 20090024093A KR 1020080086856 A KR1020080086856 A KR 1020080086856A KR 20080086856 A KR20080086856 A KR 20080086856A KR 20090024093 A KR20090024093 A KR 20090024093A
Authority
KR
South Korea
Prior art keywords
data processing
data
command code
access control
recording
Prior art date
Application number
KR1020080086856A
Other languages
Korean (ko)
Other versions
KR101449971B1 (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 교라쿠 인더스트리얼 코포레이션, 리미티드
Publication of KR20090024093A publication Critical patent/KR20090024093A/en
Application granted granted Critical
Publication of KR101449971B1 publication Critical patent/KR101449971B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements

Abstract

An access control apparatus, an access control method and an access control program are provided to control the access of a data processing means to a recoding means based on a predetermined command code. A data processing unit(210) reads a command code recorded in a command code recording unit(240), and then processes various data by a controller(211) according to the command code. A data providing unit(220) generates, produces or acquires, data which is used in the processing of the data processing unit, through an operation unit(221), and then stores the data in a register(222). An access control unit(223) controls the access to data recorded in the register, and monitors the command code executed by the data processing unit to permit the access to data recorded in the register only when a predetermined command code is correctly executed.

Description

액세스 제어장치, 액세스 제어방법 및 액세스 제어 프로그램{Access control apparatus, access control method and access control program}Access control apparatus, access control method and access control program

본 발명은 소정의 명령코드에 기초하여 데이터를 처리하는 데이터 처리수단에 의한 기록수단으로의 액세스를 제어하는 액세스 제어장치, 액세스 제어방법 및 액세스 제어 프로그램에 관한 것이다. The present invention relates to an access control apparatus, an access control method and an access control program for controlling access to recording means by data processing means for processing data based on a predetermined command code.

종래, 회로기판, 회로모듈, 전자기기장치 등의 데이터 처리 디바이스에 의한 부정한 처리를 방지하기 위한 기술이 제안되어 있다. 데이터 처리 디바이스가 부정한 동작을 하는 원인으로서는 예를 들면, 인위적인 행위에 기인하는 것, 및, 전기적·물리적인 에러에 기인하는 것 등이 있다. 인위적인 행위로서는 예를 들면, 제어 프로그램의 개찬이나 인증 데이터의 개찬 등을 들 수 있다. 또한, 인위적인 행위로서는 예를 들면, 데이터 처리 디바이스 내의 칩(LSI 등의 반도체장치)을 부정한 칩으로 교환하거나, 데이터 처리 디바이스 내에 부정한 칩을 추가하는 등의 행위를 들 수 있다. 이들은 주로 부정의 의도를 갖는 사람이, 자기의 이익에 준한 처리를 데이터 처리 디바이스에 행하게 하기 위해서 하는 것이다. Background Art Conventionally, a technique for preventing illegal processing by a data processing device such as a circuit board, a circuit module, an electronic device, or the like has been proposed. As a cause of the illegal operation of the data processing device, for example, it is caused by an artificial action, or is caused by an electrical or physical error. Examples of artificial actions include alteration of a control program, alteration of authentication data, and the like. As an artificial action, for example, an action such as replacing a chip (semiconductor device such as LSI) in the data processing device with an illegal chip, or adding an illegal chip in the data processing device, may be used. These are mainly intended to cause the data processing device to perform a process in accordance with its own interests by a person with intention of negation.

또한, 전기적·물리적인 에러로서는 예를 들면, 명령코드의 판독(패치)시에, 비트 에러 등에 의해서, 칩이 행하는 처리의 명령코드의 코드열이 변화하여 버리는 경우 등을 들 수 있다. 이 경우, 에러에 의해서 데이터 처리 디바이스의 처리가 정지하거나, 데이터 처리 디바이스의 처리가 폭주하여, 사용자의 의도하지 않은 처리가 차례차례 행하여질 가능성이 있다. Examples of electrical and physical errors include a case where the code string of the instruction code of the processing performed by the chip changes due to a bit error or the like at the time of reading the instruction code (patch). In this case, the processing of the data processing device may be stopped due to an error, or the processing of the data processing device may be congested, and unintended processing of the user may be performed sequentially.

이러한 부정한 처리를 방지하기 위해서, 예를 들면, 중앙 처리장치(CPU)가 비교한 결과 인증코드가 일치하지 않았을 때에 애플리케이션 프로그램의 실행 어드레스를 감시하는 수단 또는 애플리케이션 프로그램의 실행시간을 감시하는 수단을 작동시키는 동시에 애플리케이션 프로그램을 실행시키고, 프로그램이 영역을 넘었을 때 또는 프로그램 실행시간이 소정시간 경과하였을 때에 장치의 작동을 정지시키고, 인증코드가 비교에 의해 일치하였을 때에 애플리케이션 프로그램을 실행시키도록 구성된 마이크로프로세서가 제안되어 있다(예를 들면, 하기 특허문헌 1 참조). In order to prevent such illegal processing, for example, when a CPU compares the result of the verification, the means for monitoring the execution address of the application program or the means for monitoring the execution time of the application program is operated. A microprocessor configured to execute an application program at the same time, to stop the operation of the device when the program crosses an area or when the program execution time elapses, and to execute the application program when the authentication code is matched by comparison. Is proposed (for example, refer following patent document 1).

또, 예를 들면, 프로그램 카운터의 값을 레지스터로 유지하는 동시에, 메모리상의 보호영역의 어드레스를 유지하는 테이블, 및 보호영역으로의 액세스가 허가되어 있는 명령의 어드레스를 유지하는 테이블을 유지하여 두고, 액세스 검출회로에 의해서, 명령의 해독 결과, 액세스처의 어드레스와 테이블의 어드레스의 비교 결과에 근거하여, 보호영역으로의 액세스 명령인지의 여부를 판정한다. 그리고, 보호영역으로의 액세스 명령이 검출된 경우, 비교회로에 의해서 레지스터 및 테이블의 어드레스를 비교하여, 보호영역으로의 액세스가 허가되지 않은 에어리어로부터 판독된 명령이라고 판단하였을 때에 금지신호를 출력하고, 부정한 메모리 액세 스를 금지하는 기술이 제안되어 있다(예를 들면, 하기 특허문헌 2 참조). For example, a table holding a value of a program counter in a register, a table holding an address of a protected area on a memory, and a table holding an address of an instruction permitted to access the protected area, The access detection circuit determines whether or not the access command is to the protected area based on the result of the command decryption and the comparison result of the address of the access destination and the address of the table. When an access command to the protected area is detected, the comparison circuit compares the addresses of the register and the table, and outputs a prohibition signal when it is determined that the command is read from an area where access to the protected area is not permitted. A technique for prohibiting unauthorized memory access has been proposed (see, for example, Patent Document 2 below).

[특허문헌 1] 일본 공개특허공보 제(평)6-327831호[Patent Document 1] Japanese Unexamined Patent Publication No. 6-327831

[특허문헌 2] 일본 공개특허공보 제(평)10-228421호[Patent Document 2] Japanese Unexamined Patent Publication No. 10-228421

그러나, 상술한 특허문헌 1에 관계되는 기술에 의하면, 프로그램의 개찬(또는 의도하지 않은 변경, 이하 동일)은 검지할 수 있지만, 마이크로프로세서 자체를 부정한 제품으로 바꾸어 넣거나, 마이크로프로세서의 외부에 부정한 칩 등이 추가된 것을 검지할 수 없다고 하는 문제점이 있다. 부정한 제품으로의 교체나 부정한 칩의 추가는 데이터 처리 디바이스의 소유자 등이라면 비교적 용이하게 행할 수 있다. 이 때문에, 부정한 칩에 대한 교체나 부정한 칩의 추가를 검지할 수 없으면, 칩에 대한 부정 방지의 실효를 도모할 수 없다고 하는 문제점이 있다. However, according to the technique related to Patent Document 1 described above, the alteration of a program (or an unintended change, which is the same below) can be detected, but the microprocessor itself is replaced with an illegal product or an illegal chip outside the microprocessor. There is a problem in that it cannot detect that the back is added. Replacement to an illegal product or addition of an illegal chip can be performed relatively easily by the owner of the data processing device or the like. For this reason, there is a problem that if the replacement of the illegal chip or the addition of the illegal chip cannot be detected, the prevention of the illegality of the chip cannot be achieved.

또, 상술한 특허문헌 1에 관계되는 기술에 의하면, 프로그램 자체를 개찬하는 것은 아니고, 프로그램에 의해서 판독되는 데이터를 개찬하는 부정을 검지할 수 없다고 하는 문제점이 있다. Moreover, according to the technique which concerns on the above-mentioned patent document 1, there is a problem that it is not possible to change a program itself, but to detect the irregularity which alters the data read by a program.

또, 특허문헌 2에 관계되는 기술에 의하면, 명령코드의 해독이나 프로그램 카운터치의 판독을 행하기 위해서, 부정 검출 처리의 공정이 복잡해지고, 개발이나 설계의 난이도가 높아진다는 문제점이 있다. 또한, 특허문헌 2에 관계되는 기술에 의하면, CPU 내에 액세스 제어 기능을 탑재하고 있기 때문에, 기존의 CPU를 사용한 데이터 처리 디바이스에는 적용할 수 없다고 하는 문제점이 있다. Moreover, according to the technique which concerns on patent document 2, there exists a problem that the process of a negative detection process becomes complicated, and the difficulty of development and design becomes high in order to decode an instruction code and read a program counter value. Moreover, according to the technique concerning patent document 2, since the access control function is mounted in a CPU, there exists a problem that it cannot apply to the data processing device using an existing CPU.

본 발명은 상술한 종래 기술에 의한 문제점을 해소하기 위해서, 데이터 처리 디바이스에 의한 부정한 처리를 방지할 수 있는 액세스 제어장치, 액세스 제어방법 및 액세스 제어 프로그램을 제공하는 것을 목적으로 한다. An object of the present invention is to provide an access control apparatus, an access control method, and an access control program which can prevent an illegal process by a data processing device in order to solve the problems caused by the above-described prior art.

상술한 과제를 해결하여, 목적을 달성하기 위해서, 청구항 1의 발명에 관계되는 액세스 제어장치는 소정의 명령코드에 기초하여 데이터를 처리하는 데이터 처리수단에 의한 기록수단으로의 액세스를 제어하는 액세스 제어장치로, 상기 데이터 처리수단이 실행하는 명령코드에 관한 정보를 취득하는 취득수단과, 상기 취득수단에 의해서 취득된 명령코드에 관한 정보에 기초하여, 상기 데이터 처리수단에 의한 상기 기록수단으로의 액세스를 제어하는 제어수단을 구비하는 것을 특징으로 한다. In order to solve the above problems and achieve the object, the access control device according to the invention of claim 1 controls access to recording means by data processing means for processing data based on a predetermined command code. Access to the recording means by the data processing means based on the acquiring means for acquiring the information about the instruction code executed by the data processing means and the information about the instruction code acquired by the acquiring means, by the apparatus It characterized in that it comprises a control means for controlling the.

이 청구항 1의 발명에 의하면, 데이터 처리수단이 실행하는 명령코드에 기초하여, 데이터 처리수단에 의한 기록수단으로의 액세스를 제어할 수 있다. 이것에 의해, 데이터 처리수단의 부정한 처리에 의해서, 기록수단에 기록된 데이터를 부정하게 재기록하거나, 데이터가 부정하게 판독되거나 하는 것을 방지할 수 있다. 데이터 처리는 「데이터의 판독」, 「데이터의 연산」, 「데이터의 기록」을 반복함으로써 행하여진다. 청구항 1의 발명은 「데이터의 판독」 및 「데이터의 기록」을 정당한 명령코드의 실행시에만 행할 수 있도록 제어함으로써, 부정한 처리가 실행되는 것을 방지할 수 있다. According to the invention of claim 1, access to the recording means by the data processing means can be controlled based on the command code executed by the data processing means. In this way, it is possible to prevent the data recorded in the recording means from being illegally rewritten or the data being read incorrectly by the wrong processing of the data processing means. Data processing is performed by repeating "read data", "calculation of data" and "write data". According to the invention of claim 1, control of "reading data" and "writing of data" can be performed only at the time of execution of a valid command code, thereby preventing an illegal process from being executed.

또한, 청구항 2의 발명에 관계되는 액세스 제어장치는 청구항 1에 기재된 발명에 있어서, 상기 취득수단은 상기 데이터 처리수단이 실행하는 명령코드의 코드 열을 취득하고, 상기 제어수단은 상기 코드열이 소정의 코드열인 경우, 상기 기록수단으로의 액세스를 허가하는 것을 특징으로 한다. Further, in the access control apparatus according to the invention of claim 2, in the invention according to claim 1, the acquiring means acquires a code string of an instruction code executed by the data processing means, and the control means has a predetermined code string. In the case of the code string, the access to the recording means is permitted.

이 청구항 2의 발명에 의하면, 데이터 처리수단이 실행하는 명령코드가 소정의 코드열인 경우에만 기록수단으로의 액세스를 가능하게 한다. 이것에 의해, 부정에 의해서 재기록된 명령코드나, 잘못된 데이터 등에 의해서 잘못된 내용의 명령코드가 실행됨으로써, 기록수단에 기록된 데이터가 부정하게 재기록되거나, 데이터가 부정하게 판독되거나 하는 것을 방지할 수 있다. According to the invention of claim 2, it is possible to access the recording means only when the instruction code executed by the data processing means is a predetermined code string. As a result, the command code rewritten by wrong or the wrong code by the wrong data or the like is executed, thereby preventing the data recorded in the recording means from being illegally rewritten or the data being read illegally. .

또한, 청구항 3의 발명에 관계되는 액세스 제어장치는 청구항 1 또는 2에 기재된 발명에 있어서, 상기 명령코드는 명령코드용 기록수단에 기록되어 있고, 상기 취득수단은 상기 데이터 처리부가 실행하는 명령코드의 상기 명령코드용 기록수단에서의 기록 위치정보를 취득하고, 상기 판단수단은 상기 명령코드의 기록 위치가 소정의 위치인 경우, 상기 기록수단으로의 액세스를 허가하는 것을 특징으로 한다. Further, in the access control apparatus according to the invention of claim 3, in the invention according to claim 1 or 2, the command code is recorded in a command code recording means, and the acquiring means is a command code executed by the data processor. The recording position information in the recording means for command code is acquired, and the judging means permits access to the recording means when the recording position of the command code is a predetermined position.

이 청구항 3의 발명에 의하면, 데이터 처리수단이 실행하는 명령코드가, 소정의 위치에 기록된 것인 경우에만 기록수단으로의 액세스를 가능하게 한다. 이것에 의해, 부정한 위치에 기록된 명령코드가 실행됨으로써, 기록수단에 기록된 데이터가 부정하게 재기록되거나, 데이터가 부정하게 판독되거나 하는 것을 방지할 수 있다. According to the invention of claim 3, it is possible to access the recording means only when the instruction code executed by the data processing means is recorded at a predetermined position. In this way, by executing the command code recorded at the wrong position, it is possible to prevent the data recorded in the recording means from being illegally rewritten or the data being read incorrectly.

또한, 청구항 4의 발명에 관계되는 액세스 제어장치는 청구항 1 내지 3 중 어느 하나에 기재된 발명에 있어서, 상기 명령코드는 명령코드용 기록수단에 기록되어 있고, 상기 명령코드용 기록수단에 기록된 명령코드의 적어도 일부를 사용하 여 소정의 연산을 하는 연산수단을 구비하고, 상기 취득수단은 상기 연산수단에 의해서 산출된 산출치를 취득하고, 상기 제어수단은 상기 산출치가 소정의 값인 경우, 상기 기록수단으로의 액세스를 허가하는 것을 특징으로 한다. Further, in the access control apparatus according to the invention of claim 4, in the invention according to any one of claims 1 to 3, the command code is recorded in the command code recording means, and the command recorded in the command code recording means. Computing means for performing a predetermined operation by using at least a part of the code, wherein said acquiring means acquires the calculated value calculated by said computing means, and said control means, when said calculated value is a predetermined value, said recording means. To allow access to the network.

이 청구항 4의 발명에 의하면, 명령코드용 기록수단에 기록된 명령코드가 부정하게 재기록된 것을 검지할 수 있다. According to the invention of claim 4, it is possible to detect that the command code recorded in the command code recording means is illegally rewritten.

또한, 청구항 5의 발명에 관계되는 액세스 제어장치는 청구항 1 내지 3 중 어느 하나에 기재된 발명에 있어서, 상기 명령코드는 명령코드용 기록수단에 기록되어 있고, 상기 명령코드용 기록수단에 기록된 소정의 고정치를 사용하여 소정의 연산을 하는 연산수단을 구비하고, 상기 취득수단은 상기 연산수단에 의해서 산출된 산출치를 취득하고, 상기 제어수단은 상기 산출치가 소정의 값인 경우, 상기 기록수단으로의 액세스를 허가하는 것을 특징으로 한다. Further, in the access control apparatus according to the invention of claim 5, in the invention according to any one of claims 1 to 3, the command code is recorded in the command code recording means, and the predetermined value recorded in the command code recording means. Calculating means for performing a predetermined calculation using a fixed value of?, Wherein said obtaining means obtains the calculated value calculated by said calculating means, and said control means, when said calculated value is a predetermined value, transfers said recording means to said recording means. And permitting access.

이 청구항 5의 발명에 의하면, 명령코드용 기록수단이 부정한 기록수단에 교환된 것을 검지할 수 있다. According to the invention of claim 5, it is possible to detect that the recording means for command code has been replaced with the wrong recording means.

또한, 청구항 6의 발명에 관계되는 액세스 제어장치는 청구항 1 내지 5 중 어느 하나에 기재된 발명에 있어서, 상기 제어수단은 상기 기록수단 중 특정 어드레스공간으로의 액세스를 제어하는 것을 특징으로 한다. Further, the access control apparatus according to the invention of claim 6 is the invention according to any one of claims 1 to 5, wherein the control means controls access to a specific address space of the recording means.

이 청구항 6의 발명에 의하면, 기록수단 중, 기밀정보 등의 중요한 정보가 기록된 어드레스공간으로의 액세스를 제어함으로써, 중요한 정보가 부정하게 재기록되거나, 부정하게 판독되거나 하는 것을 방지할 수 있다. According to the invention of claim 6, by controlling access to the address space in which the important information such as confidential information is recorded among the recording means, it is possible to prevent the important information from being illegally rewritten or read incorrectly.

또한, 청구항 7의 발명에 관계되는 액세스 제어장치는 청구항 1 내지 6 중 어느 하나에 기재된 발명에 있어서, 상기 제어수단에 의한 상기 기록수단으로의 액세스의 제어 상황을 통지하는 통지수단을 구비하는 것을 특징으로 한다. Further, the access control apparatus according to the invention of claim 7 is provided with any one of claims 1 to 6, wherein the access control apparatus is provided with notification means for notifying a control status of access to the recording means by the control means. It is done.

이 청구항 7의 발명에 의하면, 데이터 처리수단에 의한 기록수단으로의 액세스가 거부된 경우, 즉, 데이터 처리수단에 의해서 부정한 액세스가 행하여졌을 가능성이 있는 경우, 그 취지를 사용자 등에게 통지하여, 데이터 처리수단에 의한 부정한 처리를 방지할 수 있다. According to the invention of claim 7, in the case where access to the recording means by the data processing means is denied, that is, when there is a possibility that unauthorized access has been performed by the data processing means, the user or the like is notified of the fact, and the data Unauthorized processing by the processing means can be prevented.

또, 청구항 8의 발명에 관계되는 액세스 제어방법은 소정의 명령코드에 기초하여 데이터를 처리하는 데이터 처리수단에 의한 기록수단으로의 액세스를 제어하는 액세스 제어방법으로, 상기 데이터 처리수단이 실행하는 명령코드에 관한 정보를 취득하는 취득공정과, 상기 취득공정에서 취득된 명령코드에 관한 정보에 기초하여, 상기 데이터 처리수단에 의한 상기 기록수단으로의 액세스를 제어하는 제어공정을 포함한 것을 특징으로 한다. Further, the access control method according to the invention of claim 8 is an access control method for controlling access to recording means by data processing means for processing data based on a predetermined command code, the command being executed by the data processing means. And a control step of controlling access to the recording means by the data processing means based on the acquisition step of acquiring information on the code and the information on the command code acquired at the acquisition step.

이 청구항 8의 발명에 의하면, 데이터 처리수단이 실행하는 명령코드에 기초하여, 데이터 처리수단에 의한 기록수단으로의 액세스를 제어할 수 있다. 이것에 의해, 데이터 처리수단의 부정한 처리에 의해서, 기록수단에 기록된 데이터가 부정하게 재기록되거나, 데이터가 부정하게 판독되거나 하는 것을 방지할 수 있다. 데이터 처리는 「데이터의 판독」, 「데이터의 연산」, 「데이터의 기록」을 반복함으로써 행하여진다. 청구항 8의 발명은 「데이터의 판독」 및 「데이터의 기록」을 정당한 명령코드의 실행시에만 행할 수 있도록 제어함으로써, 부정한 처리가 실행되는 것을 방지할 수 있다. According to the invention of claim 8, access to the recording means by the data processing means can be controlled based on the command code executed by the data processing means. As a result, it is possible to prevent the data recorded in the recording means from being illegally rewritten or the data being read incorrectly by the wrong processing of the data processing means. Data processing is performed by repeating "read data", "calculation of data" and "write data". According to the eighth aspect of the present invention, by controlling the "reading of data" and "writing of data" to be performed only at the time of executing a valid instruction code, it is possible to prevent an illegal process from being executed.

또한, 청구항 9의 발명에 관계되는 액세스 제어 프로그램은 청구항 8에 기재된 액세스 제어방법을 컴퓨터에 실행시키는 것을 특징으로 한다. Moreover, the access control program concerning the invention of Claim 9 makes a computer run the access control method of Claim 8. It is characterized by the above-mentioned.

이 청구항 9의 발명에 의하면, 데이터 처리수단이 실행하는 명령코드에 기초하여, 데이터 처리수단에 의한 기록수단으로의 액세스를 제어할 수 있다. 이것에 의해, 데이터 처리수단의 부정한 처리에 의해서, 기록수단에 기록된 데이터가 부정하게 재기록되거나, 데이터가 부정하게 판독되거나 하는 것을 방지할 수 있다. 데이터 처리는 「데이터의 판독」, 「데이터의 연산」, 「데이터의 기록」을 반복함으로써 행하여진다. 청구항 9의 발명은 「데이터의 판독」 및 「데이터의 기록」을 정당한 명령코드의 실행시에만 할 수 있도록 제어함으로써, 부정한 처리가 실행되는 것을 방지할 수 있다. According to the invention of claim 9, access to the recording means by the data processing means can be controlled based on the command code executed by the data processing means. As a result, it is possible to prevent the data recorded in the recording means from being illegally rewritten or the data being read incorrectly by the wrong processing of the data processing means. Data processing is performed by repeating "read data", "calculation of data" and "write data". According to the invention of claim 9, by controlling the "reading of data" and "writing of data" to be performed only when the legitimate instruction code is executed, it is possible to prevent the illegal processing from being executed.

본 발명에 관계되는 액세스 제어장치, 액세스 제어방법 및 액세스 제어 프로그램에 의하면, 데이터 처리 디바이스에 의한 부정한 처리를 방지할 수 있다. According to the access control apparatus, the access control method, and the access control program according to the present invention, unauthorized processing by the data processing device can be prevented.

이하에 첨부 도면을 참조하여, 본 발명에 관계되는 액세스 제어장치, 액세스 제어방법 및 액세스 제어 프로그램의 적합한 실시형태를 상세하게 설명한다. EMBODIMENT OF THE INVENTION Below, with reference to an accompanying drawing, preferred embodiment of the access control apparatus, an access control method, and an access control program which concern on this invention is described in detail.

(실시형태 1)(Embodiment 1)

(데이터 처리장치(100)의 하드웨어 구성) (Hardware Configuration of Data Processing Apparatus 100)

처음에, 실시형태 1에 관계되는 데이터 처리장치(100)의 하드웨어 구성에 관해서 설명한다. 도 1은 데이터 처리장치의 하드웨어 구성을 도시하는 블록도이다. 이하의 설명에서는 데이터 처리장치(100)의 일례로서 퍼스널컴퓨터에 대하여 본 발명을 적용한 예에 관해서 설명한다. First, a hardware configuration of the data processing apparatus 100 according to the first embodiment will be described. 1 is a block diagram showing a hardware configuration of a data processing apparatus. In the following description, an example in which the present invention is applied to a personal computer as an example of the data processing apparatus 100 will be described.

도 1에 있어서, 데이터 처리장치(100)는 CPU(101)와, ROM(102)과, RAM(103)과, 자기 디스크 드라이브(104)와, 자기디스크(105)와, 광디스크 드라이브(106)와, 광디스크(107)와, 음성 I/F(108; 인터페이스)와, 마이크(109)와, 스피커(110)와, 입력 디바이스(111)와, 영상 I/F(112)와, 디스플레이(113)와, 통신 I/F(114; 인터페이스)와, 외부 접속용 I/F(115)를 구비하고 있다. 또한, 각 구성부(101 내지 115)는 버스(120)에 의해서 각각 접속되어 있다. In FIG. 1, the data processing apparatus 100 includes a CPU 101, a ROM 102, a RAM 103, a magnetic disk drive 104, a magnetic disk 105, and an optical disk drive 106. And an optical disk 107, an audio I / F 108 (interface), a microphone 109, a speaker 110, an input device 111, a video I / F 112, and a display 113 ), A communication I / F 114 (interface), and an external connection I / F 115 are provided. In addition, each component 101-115 is connected by the bus 120, respectively.

우선, CPU(101)는 데이터 처리장치(100)의 전체의 제어를 담당한다. ROM(102)은 부트 프로그램, 통신 프로그램, 데이터 해석 프로그램 등의 프로그램을 기록하고 있다. 또한, RAM(103)은 CPU(101)의 워크 에어리어로서 사용된다. First, the CPU 101 is in charge of controlling the entire data processing apparatus 100. The ROM 102 records programs such as a boot program, communication program, data analysis program, and the like. In addition, the RAM 103 is used as a work area of the CPU 101.

자기 디스크 드라이브(104)는 CPU(101)의 제어에 따라서 자기디스크(105)에 대한 데이터의 판독/기록을 제어한다. 자기디스크(105)는 자기 디스크 드라이브(104)의 제어로 기록된 데이터를 기록한다. 자기디스크(105)로서는 예를 들면, HD(하드디스크)나 FD(플랙시블 디스크)를 사용할 수 있다. The magnetic disk drive 104 controls reading / writing of data to the magnetic disk 105 under the control of the CPU 101. The magnetic disk 105 records data recorded under the control of the magnetic disk drive 104. As the magnetic disk 105, for example, HD (hard disk) or FD (flexible disk) can be used.

광디스크 드라이브(106)는 CPU(101)의 제어에 따라서 광디스크(107)에 대한 데이터의 판독/기록을 제어한다. 광디스크(107)는 광디스크 드라이브(106)의 제어에 따라서 데이터가 판독되는 착탈이 자유로운 기록수단이다. 광디스크(107)는 기록 가능한 기록수단을 이용할 수도 있다. 또한, 이 착탈 가능한 기록수단으로서, 광디스크(107) 외에, MO, 메모리카드 등이어도 좋다. The optical disc drive 106 controls reading / writing of data to the optical disc 107 under the control of the CPU 101. The optical disc 107 is detachable recording means for reading data under the control of the optical disc drive 106. The optical disc 107 may use recordable recording means. The removable recording means may be an MO, a memory card, or the like in addition to the optical disk 107.

음성 I/F(108)는 음성 입력용 마이크(109) 및 음성 출력용의 스피커(110)에 접속된다. 마이크(109)에 수음(受音)된 음성은 음성 I/F(108) 내에서 A/D 변환된다. 또, 스피커(110)로부터는 음성이 출력된다. 또한, 입력 디바이스(111)는 문자, 수치, 각종 지시 등의 입력을 위한 복수의 키를 구비한 리모콘, 키보드, 마우스, 터치 패널 등을 들 수 있다. The voice I / F 108 is connected to a microphone 109 for voice input and a speaker 110 for voice output. The voice picked up by the microphone 109 is A / D converted within the voice I / F 108. In addition, audio is output from the speaker 110. In addition, the input device 111 may include a remote controller, a keyboard, a mouse, a touch panel, and the like having a plurality of keys for inputting characters, numerical values, various instructions, and the like.

영상 I/F(112)는 디스플레이(113)와 접속된다. 영상 I/F(112)는 구체적으로는 예를 들면, 디스플레이(113) 전체의 제어를 하는 그래픽 컨트롤러와, 즉시 표시 가능한 화상정보를 일시적으로 기록하는 VRAM(Video RAM) 등의 버퍼 메모리와, 그래픽 컨트롤러로부터 출력되는 화상 데이터에 기초하여, 디스플레이(113)를 표시 제어하는 제어 IC 등에 의해서 구성된다. Image I / F 112 is connected to display 113. Specifically, the video I / F 112 includes, for example, a graphics controller that controls the entire display 113, a buffer memory such as a VRAM (Video RAM) that temporarily records image information that can be displayed immediately, and graphics. It is comprised by the control IC etc. which display-control the display 113 based on the image data output from a controller.

디스플레이(113)에는 아이콘, 커서, 메뉴, 윈도우, 또는 문자나 화상 등의 각종 데이터가 표시된다. 이 디스플레이(113)는 예를 들면, CRT, TFT 액정 디스플레이, 플라스마 디스플레이 등을 채용할 수 있다. The display 113 displays icons, cursors, menus, windows, and various data such as text and images. This display 113 can employ | adopt a CRT, TFT liquid crystal display, a plasma display, etc., for example.

통신 I/F(114)는 네트워크에 접속되어, 네트워크와 CPU(101)의 인터페이스로서 기능한다. The communication I / F 114 is connected to a network and functions as an interface between the network and the CPU 101.

외부 접속용 I/F(115)는 외부의 기기와 접속하기 위한 인터페이스류이다. 외부 접속용 I/F(115)와 외부의 기기의 접속은 케이블 등을 사용하여 유선으로 하여도 좋고, 무선으로 하여도 좋다. 외부 접속용 I/F(115)는 예를 들면, 전용의 접속 케이블의 포트, 무선통신용 포트 등에 의해서 구성된다. The external connection I / F 115 is an interface for connecting with an external device. The connection between the external connection I / F 115 and an external device may be wired using a cable or the like, or may be wireless. The external connection I / F 115 is configured by, for example, a port of a dedicated connection cable, a port for wireless communication, or the like.

이어서, 데이터 처리장치(100)에서의 데이터 처리 유닛(200)의 기능적 구성 에 관해서 설명한다. 데이터 처리 유닛(200)은 도 1에 도시한 데이터 처리장치(100)의 하드웨어 구성 중, 실질적인 데이터 처리를 하는 구성을 기능적으로 도시한 것이다. 도 2는 실시형태 1에 관계되는 데이터 처리 유닛의 기능적 구성을 도시하는 블록도이다. 데이터 처리 유닛(200)은 데이터 처리부(210), 데이터 제공부(220), 데이터 기록부(230), 명령코드 기록부(240)에 의해서 구성된다. 또, 데이터 처리 유닛(200)의 각 구성은 예를 들면, 동일한 기판상이나 동일한 모듈(반도체 디바이스 등) 내에 구성된다. Next, the functional configuration of the data processing unit 200 in the data processing apparatus 100 will be described. The data processing unit 200 functionally illustrates a configuration for performing substantial data processing among the hardware configurations of the data processing apparatus 100 shown in FIG. 1. 2 is a block diagram showing the functional configuration of a data processing unit according to the first embodiment. The data processing unit 200 is constituted by a data processing unit 210, a data providing unit 220, a data recording unit 230, and a command code recording unit 240. In addition, each structure of the data processing unit 200 is comprised on the same board | substrate or the same module (semiconductor device etc.), for example.

데이터 처리부(210)는 예를 들면, CPU(101)이고, 후술하는 명령코드 기록부(240)에 기록된 명령코드(더욱 상세하게는 명령코드의 코드열)를 판독하고(패치), 명령코드에 따라서 제어부(211)에 의해서 각종의 데이터 처리를 한다. 데이터 처리부(210)는 제어부(211), 연산부(212), 레지스터(213)에 의해서 구성된다. 제어부(211)는 데이터 처리장치(100)의 각 구성부를 연결하는 버스(120)에 신호를 출력하고, 데이터의 판독을 하고, 데이터 처리장치(100) 전체의 동작을 제어한다. 연산부(212)는 후술하는 레지스터(213)에 판독된 데이터에 대하여 각종의 연산을 한다. 레지스터(213)는 연산부(212)에 의해서 처리된 데이터를 일시적으로 유지하거나, 후술하는 명령코드 기록부(240)로부터 판독한 명령코드나, 이것이 기록되어 있는 어드레스를 유지한다. The data processing unit 210 is, for example, the CPU 101, and reads the command code (more specifically, the code string of the command code) recorded in the command code recording unit 240 to be described later (patch), and writes to the command code. Therefore, the control unit 211 performs various data processing. The data processor 210 is configured by a controller 211, a calculator 212, and a register 213. The control unit 211 outputs a signal to the bus 120 connecting the components of the data processing apparatus 100, reads out data, and controls the operation of the entire data processing apparatus 100. The calculation unit 212 performs various operations on the data read in the register 213 described later. The register 213 temporarily holds the data processed by the operation unit 212, or holds the command code read from the command code recording unit 240 to be described later or the address on which it is recorded.

데이터 제공부(220)는 예를 들면, 난수 생성기나 연산회로 등이며, 연산부(221)에 의해서 데이터 처리부(210)에서의 처리에 사용하는 데이터의 생성이나 산출, 취득을 행한다. 데이터 제공부(220)는 연산부(221)에서 생성 또는 산출한 데이터를 기록하는 레지스터(222)를 갖는다. 또한, 레지스터(222)에 기록된 데이터로의 액세스는 액세스 제어부(223)에 의해서 제어된다. The data provider 220 is, for example, a random number generator, arithmetic circuit, or the like, and the calculator 221 generates, calculates, or acquires data for use in the process of the data processor 210. The data provider 220 has a register 222 for recording data generated or calculated by the calculator 221. In addition, access to the data recorded in the register 222 is controlled by the access control unit 223.

액세스 제어부(223)는 레지스터(222)에 기록된 데이터의 판독(액세스)이나, 레지스터(222)에 대한 데이터의 기록을 제어한다. 구체적으로는 액세스 제어부(223)는 데이터 처리부(210)가 실행하는 명령코드를 감시하여, 미리 정해진 명령코드가 올바르게 실행된 경우에만, 레지스터(222)에 기록된 데이터의 판독이나 레지스터(222)에 대한 데이터의 기록을 허가한다. The access control unit 223 controls the reading (access) of data recorded in the register 222 or the writing of data to the register 222. Specifically, the access control unit 223 monitors the command code executed by the data processing unit 210 and reads the data recorded in the register 222 or registers 222 only when the predetermined command code is correctly executed. Permit the recording of data for

더욱 상세하게는 액세스 제어부(223)는 예를 들면, 데이터 처리부(210)가 실행하는 명령 중, 레지스터(222)로의 액세스를 수반하는 명령의 명령코드의 기록원(명령코드 기록부(240)에서의 어드레스) 및 명령코드의 코드열을 감시한다. 그리고, 액세스 제어부(223)는 예를 들면, 데이터 처리부(210)가 실행하는 명령이, 미리 허가된 어드레스에 기록된 명령코드이고, 또한, 미리 허가된 코드열인 경우에, 레지스터(222)에 기록된 데이터로의 액세스나, 레지스터(222)에 대한 데이터의 기록을 허가한다. 또, 액세스 제어부(223)는 어드레스 및 코드열 중, 양쪽을 감시하여도 좋고, 어느 하나만을 감시하여도 좋다. 또한, 허가하는 명령코드로서 정해져 있는 명령코드는 단수이어도 좋고 복수이어도 좋다. More specifically, the access control unit 223 is, for example, the recording source of the command code (the address in the command code recording unit 240) of the command accompanying the access to the register 222 among the commands executed by the data processing unit 210. ) And the code string of the command code. Then, the access control unit 223, for example, in the case where the command executed by the data processing unit 210 is the command code recorded at a previously permitted address and is a code string previously permitted, the register 222 is stored in the register 222. Access to the recorded data and writing of data to the register 222 are allowed. The access control unit 223 may monitor both of an address and a code string, or may monitor only one of them. In addition, the command code determined as an allowable command code may be singular or plural.

데이터 기록부(230)는 ROM(102)이나 자기디스크(105), 광디스크(107) 등이며, 데이터 처리부(210)에 의해서 처리된 데이터나 다른 기기로부터 취득한 데이터, 프로그램 데이터 등을 기록한다. 데이터 기록부(230)는 기록영역(231) 및 액세스 제어부(232)에 의해서 구성된다. 기록영역(231)은 데이터 기록부(230)에 기 록된 데이터를 유지한다. 액세스 제어부(232)는 기록영역(231)에 기록된 데이터로의 액세스나, 기록영역(231)에 대한 데이터의 기록을 제어한다. 구체적으로는 액세스 제어부(232)는 액세스 제어부(223)와 같이, 데이터 처리부(210)가 실행하는 명령코드를 감시한다. 그리고, 액세스 제어부(232)는 미리 정해진 명령코드가 올바르게 실행된 경우에만, 기록영역(231)에 기록된 데이터로의 액세스를 허가한다. The data recording unit 230 is a ROM 102, a magnetic disk 105, an optical disk 107, or the like, and records data processed by the data processing unit 210, data acquired from another device, program data, and the like. The data recording unit 230 is constituted by the recording area 231 and the access control unit 232. The recording area 231 holds data recorded in the data recording unit 230. The access control unit 232 controls access to data recorded in the recording area 231 and recording of data in the recording area 231. Specifically, the access control unit 232, like the access control unit 223, monitors the command code executed by the data processing unit 210. Then, the access control unit 232 permits access to the data recorded in the recording area 231 only when the predetermined command code is correctly executed.

또, 상술한 설명에서는 데이터 제공부(220)와 데이터 기록부(230)를 분리하는 구성으로 하였지만, 이들을 일체로 하는 구성이어도 좋다. 또한, 데이터 제공부(220)와 데이터 기록부(230)와, 각각 액세스 제어부(223, 232)를 형성하는 것으로 하였지만, 어느 하나에만 액세스 제어부를 형성하는 구성으로 하여도 좋다. 또한, 데이터 처리부(210)의 제어부(211)와, 액세스 제어부(223, 232)를 연결하는 경로는 물리적으로 동일한 경로로 하여도 좋고, 이중화된 개별의 경로로 하여도 좋다. In the above description, the data providing unit 220 and the data recording unit 230 are configured to be separated. However, the configuration may be integrated. In addition, although the data providing part 220 and the data recording part 230 and the access control parts 223 and 232 are formed, respectively, you may make it the structure which forms only one access control part. In addition, the path connecting the control unit 211 and the access control units 223 and 232 of the data processing unit 210 may be a physically identical path or may be a redundant individual path.

명령코드 기록부(240)는 ROM(102)이나 자기디스크(105), 광디스크(107) 등이고, 데이터 처리부(210)가 실행하는 명령의 명령코드를 기록한다. 데이터 처리부(210)는 명령코드 기록부(240)에 기록된 명령코드를 판독하여, 명령코드에 따라서 각종의 데이터 처리를 한다. 명령코드 기록부(240)는 도 2에 도시하는 바와 같이, 데이터 처리부(210)와 분리하여 형성되어 있어도 좋고, 데이터 처리부(210)의 내부에 형성되어 있어도 좋다. The command code recording unit 240 is a ROM 102, a magnetic disk 105, an optical disk 107, or the like, and records a command code of a command executed by the data processing unit 210. The data processing unit 210 reads the command code recorded in the command code recording unit 240 and performs various data processing according to the command code. As shown in FIG. 2, the command code recording unit 240 may be formed separately from the data processing unit 210 or may be formed inside the data processing unit 210.

여기에서, 도 3을 사용하여 명령코드 기록부(240)의 구조에 관해서 설명한다. 도 3은 명령코드 기록부의 구조의 일례를 모식적으로 도시하는 설명도이다. 명령코드 기록부(240)의 기록영역(310)에는 소정의 영역마다(예를 들면, 1바이트마다) 어드레스가 할당되어 있다. 도시한 예에서는 기록영역(310)에 어드레스 0x000 내지 0xNNN이 할당되어 있고, 각 어드레스는 1바이트분의 영역을 도시하고 있다. 예를 들면, 어드레스 Ox100으로 나타내지는 영역에는 명령코드열 0xABCDEFGH가 격납되어 있다. 또한, 어드레스 0x104로 나타내지는 영역에는 명령코드열 0xJKLMNOPQ이 격납되어 있다. 데이터 처리부(210)는 지정된 어드레스로부터 시작되는 영역에 격납된 명령코드를 판독하고, 판독한 명령코드에 따라서 처리를 한다. Here, the structure of the command code recording unit 240 will be described with reference to FIG. 3 is an explanatory diagram schematically showing an example of the structure of the command code recording unit. In the recording area 310 of the command code recording unit 240, an address is allocated for each predetermined area (e.g., every 1 byte). In the illustrated example, addresses 0x000 to 0xNNN are allocated to the recording area 310, and each address shows an area for one byte. For example, the instruction code string 0xABCDEFGH is stored in the area indicated by the address Ox100. In the area indicated by the address 0x104, an instruction code string 0xJKLMNOPQ is stored. The data processing unit 210 reads the command code stored in the area starting from the designated address and performs processing in accordance with the read command code.

(데이터 처리부(210)에 의한 데이터 처리의 일례) (Example of data processing by the data processing unit 210)

계속해서, 데이터 처리부(210)가 행하는 데이터 처리의 일례에 관해서 설명한다. 도 4는 데이터 처리부가 행하는 데이터 처리의 일례의 순서를 도시하는 플로차트이다. 데이터 처리부(210)는 각종의 처리를 하지만, 여기에서는 예를 들면, 데이터 처리장치(100)에 접속된 접속기기 등에 대한 인증 처리를 하는 경우를 예로 들어 설명한다. Next, an example of data processing performed by the data processing unit 210 will be described. 4 is a flowchart showing a procedure of an example of data processing performed by a data processing unit. Although the data processing unit 210 performs various types of processing, here, for example, a case of performing authentication processing on a connection device or the like connected to the data processing apparatus 100 will be described as an example.

데이터 처리장치(100)에는 각종의 기기나 디바이스의 접속이 가능하지만, 사용자나 메이커가 승인하지 않은 기기나 디바이스가 부정하게 접속되어, 데이터 처리장치(100)의 오작동을 발생시키거나, 데이터 처리장치(100)에 격납된 데이터가 개찬되거나, 도난당하거나 할 우려가 있다. 이것을 방지하기 위해서, 데이터 처리장치(100)는 데이터 처리장치(100)에 접속된 접속기기 등에 대한 인증 처리를 정기적으로 행한다. Various apparatuses and devices can be connected to the data processing apparatus 100, but apparatuses and devices not approved by the user or the manufacturer are illegally connected, causing malfunction of the data processing apparatus 100, or data processing apparatuses. There is a fear that the data stored in the 100 may be altered or stolen. In order to prevent this, the data processing apparatus 100 periodically performs authentication processing on the connection device or the like connected to the data processing apparatus 100.

도 4의 플로차트에 있어서, 데이터 처리부(210)는 우선, 접속된 기기나 디바 이스(이하, 「접속기기」라고 함)로부터 인증용 데이터를 취득하고(스텝 S401), 취득한 인증용 데이터를 사용하여, 데이터 제공부(220)에 의해서 검증치 V를 생성시킨다(스텝 S402). 검증치 V는 접속기기를 인증할 때에 사용하는 값이다. 데이터 제공부(220)는 연산부(221)에서 검증치 V를 생성하여, 레지스터(222)에 격납한다. 또, 스텝 S401에서 취득한 인증용 데이터를 그대로 검증치 V로 하여도 좋다. In the flowchart of FIG. 4, the data processing unit 210 first obtains authentication data from a connected device or device (hereinafter referred to as a "connected device") (step S401), and uses the obtained authentication data. The verification value V is generated by the data providing unit 220 (step S402). The verification value V is a value used when authenticating a connected device. The data provider 220 generates the verification value V in the calculator 221 and stores the verification value V in the register 222. The authentication data acquired in step S401 may be used as the verification value V as it is.

이어서, 데이터 처리부(210)는 데이터 제공부(220)의 레지스터(222)로부터 검증치 V를 판독한다(스텝 S403). 데이터 처리부(210)는 판독한 검증치 V를 레지스터(213)에 일시 격납한다(스텝 S404). 그리고, 데이터 처리부(210)는 검증치 V를 데이터 기록부(230)의 기록영역(231)에 기록한다(스텝 S405). 계속해서, 데이터 처리부(210)는 데이터 제공부(220)에 의해서 기대치 P를 생성시킨다(스텝 S406). 기대치 P는 검증치 V의 대조용으로 사용하는 값이다. 데이터 제공부(220)는 연산부(221)에서 기대치 P를 생성하여, 레지스터(222)에 격납한다. Subsequently, the data processing unit 210 reads the verification value V from the register 222 of the data providing unit 220 (step S403). The data processing unit 210 temporarily stores the read verification value V in the register 213 (step S404). The data processing unit 210 then records the verification value V in the recording area 231 of the data recording unit 230 (step S405). Subsequently, the data processing unit 210 generates the expected value P by the data providing unit 220 (step S406). Expected value P is a value used as a control of verification value V. The data provider 220 generates the expected value P in the calculator 221 and stores the expected value P in the register 222.

데이터 처리부(210)는 데이터 제공부(220)의 레지스터(222)로부터 기대치 P를 판독하고(스텝 S407), 또, 데이터 기록부(230)의 기록영역(231)으로부터 검증치 V를 판독한다(스텝 S408). 그리고, 데이터 처리부(210)는 검증치 V와 기대치 P를 대조하여(스텝 S409), 대조 결과가 올바른지의 여부를 판단한다(스텝 S410). 대조 결과가 올바른지의 여부는 예를 들면, 검증치 V와 기대치 P의 사이에 소정의 관계가 성립하고 있는지의 여부(예를 들면, 검증치 V=기대치 P 등)에 의해서 판단한다. The data processing unit 210 reads the expected value P from the register 222 of the data providing unit 220 (step S407), and also reads the verification value V from the recording area 231 of the data recording unit 230 (step S408). Then, the data processing unit 210 checks the verification value V and the expected value P (step S409), and determines whether the matching result is correct (step S410). Whether or not the matching result is correct is determined by, for example, whether or not a predetermined relationship is established between the verification value V and the expected value P (for example, verification value V = expected value P).

대조 결과가 올바른 경우(스텝 S410 : Yes), 데이터 처리부(210)는 접속기기를 인증하고(스텝 S411), 본 플로차트에 의한 처리를 종료한다. 한편, 대조 결과 가 올바르지 않은 경우(스텝 S410 : No), 데이터 처리부(210)는 접속기기를 인증하지 않고(스텝 S412), 본 플로차트에 의한 처리를 종료한다. 접속기기를 인증하지 않은 경우, 데이터 처리부(210)는 예를 들면, 데이터 처리장치(100)의 디스플레이(113)에 에러 메시지를 표시시켜, 부정한 기기가 접속되어 있다는 것을 통지하거나, 접속기기와의 접속을 절단하거나 한다. If the matching result is correct (step S410: Yes), the data processing unit 210 authenticates the connected device (step S411), and ends the processing by this flowchart. On the other hand, when the matching result is incorrect (step S410: No), the data processing unit 210 ends the processing by this flowchart without authenticating the connected device (step S412). If the connected device is not authenticated, the data processing unit 210 displays an error message on the display 113 of the data processing device 100, for example, to notify that an illegal device is connected, or to communicate with the connected device. Cut the connection.

이상과 같은 처리에 의해, 데이터 처리부(210)는 데이터 처리장치(100)에 접속된 접속기기 등에 대한 인증 처리를 한다. 그러나, 예를 들면, 악의를 갖는 사람(이하, 「악의자」라고 함)에 의해서, 부정한 기기가 인증되도록 인증 처리를 개찬하여 버리는 경우가 있다. By the above processing, the data processing unit 210 performs authentication processing on the connected device or the like connected to the data processing apparatus 100. However, for example, the authentication process may be altered so that an illegal device is authenticated by a malicious person (hereinafter referred to as "malicious person").

예를 들면, 스텝 S405에서는 데이터 기록부(230)의 기록영역(231)에 대하여 검증치 V가 기록되어 있다. 이 때, 기록영역(231)에 기록되는 것은 본래는 데이터 처리부(210)의 레지스터(213)에 일시 격납되어 있는 검증치 V이다(스텝 S404 참조). 그러나, 부정한 명령코드에 의해서, 기록영역(231)에 기록한 값을 레지스터(213) 이외의 장소(또는 레지스터(213) 중 검증치 V가 격납되어 있는 영역 이외의 영역)에 기록된 값으로 하는 것이 가능해진다. For example, the verification value V is recorded in the recording area 231 of the data recording unit 230 in step S405. At this time, what is recorded in the recording area 231 is originally a verification value V temporarily stored in the register 213 of the data processing unit 210 (see step S404). However, due to an incorrect command code, the value recorded in the recording area 231 is set to a value recorded in a place other than the register 213 (or an area other than the area in which the verification value V is stored in the register 213). It becomes possible.

또, 예를 들면, 스텝 S403에서는 데이터 제공부(220)의 레지스터(222)로부터 검증치 V가 판독되어 있다. 이 때, 판독하는 값을 레지스터(222) 이외의 장소(또는, 레지스터(222) 중 검증치 V가 격납되어 있는 영역 이외의 영역)에 기록된 값으로 하는 것이 가능해진다. 이 부정은 예를 들면, 부정한 패치 등에 의해서 데이터 처리부(210)의 처리를 분기시킴으로써 가능해진다. For example, the verification value V is read from the register 222 of the data providing unit 220 in step S403. At this time, the value to be read can be set to a value recorded in a place other than the register 222 (or an area other than the area in which the verification value V is stored in the register 222). This denial is made possible by, for example, branching the processing of the data processing unit 210 by an illegal patch or the like.

이러한 부정이 행하여지면, 올바른 인증 처리를 할 수 없고, 부정한 기기의 접속이 가능해져 버린다. 이 때문에, 데이터 처리 유닛(200)에서는 데이터 제공부(220)에 액세스 제어부(223)를, 데이터 기록부(230)에 액세스 제어부(232)를 각각 형성하여, 레지스터(222)나 기록영역(231)에 대한 데이터 처리부(210)로부터의 액세스(기록, 판독)를 제어한다. 이것에 의해, 부정한 명령코드의 실행에 의해서, 부정한 기기가 인증되어 버리는 것을 방지하고 있다. If such denial is performed, correct authentication cannot be performed, and connection of an illegal device becomes possible. For this reason, in the data processing unit 200, the access control unit 223 is formed in the data providing unit 220, and the access control unit 232 is formed in the data recording unit 230, respectively, so that the register 222 or the recording area 231 are provided. Control access (write, read) from the data processing unit 210 to the. This prevents the unauthorized apparatus from being authenticated by the execution of the illegal instruction code.

(액세스 제어부(223, 232)에 의한 액세스 제어)(Access Control by Access Control Units 223 and 232)

도 5는 액세스 제어부에 의한 액세스 제어의 개요를 도시하는 설명도이다. 또, 도 5에서는 설명의 편의상, 데이터 처리 유닛(200)의 구성을 일부 생략하고 있다. It is explanatory drawing which shows the outline | summary of access control by an access control part. In addition, in FIG. 5, the structure of the data processing unit 200 is abbreviate | omitted for convenience of description.

도 5에 도시하는 바와 같이, 예를 들면, 데이터 기록부(230)의 액세스 제어부(232)에서 허가하는 명령코드는 명령코드 기록부(240)의 어드레스 0x104에 격납된 코드열 0xJKLMNOPQ(라이트 명령)라고 한다. 이 때, 통상시의 명령코드 기록부(240)에는 어드레스 0x104에 코드열 0xJKLMNOPQ(라이트 명령)가 기록되어 있다. 데이터 처리부(210)가, 통상의 명령코드 기록부(240)의 어드레스 0x104에 격납된 리드 명령의 코드열 0xJKLMNOPQ를 판독하여 실행하는 경우(화살 표시 α), 액세스 제어부(232)는 기록영역(231)에 대한 데이터의 기록을 허가한다. As shown in FIG. 5, for example, the command code permitted by the access control unit 232 of the data recording unit 230 is referred to as code string 0xJKLMNOPQ (write command) stored at address 0x104 of the command code recording unit 240. . At this time, the code string 0xJKLMNOPQ (write command) is recorded in the command code recording unit 240 in the normal time. When the data processing unit 210 reads and executes the code string 0xJKLMNOPQ of the read command stored at the address 0x104 of the normal command code recording unit 240 (arrow display α), the access control unit 232 stores the recording area 231. Allow the recording of data for.

그런데, 예를 들면, 부정예 1과 같이, 명령코드 기록부(240)의 어드레스 0x200에, 부정한 명령코드의 코드열 0xPOIUYTRE(라이트 명령)가 기록된 것으로 한다. 이 경우, 데이터 처리부(210)가, 어드레스 0x200의 코드열 0xPOIUYTRE(라이트 명령)를 판독하여 실행하여도(화살 표시 β), 허가된 어드레스로부터 판독된 명령이 아니기 때문에, 액세스 제어부(232)는 기록영역(231)으로의 액세스를 허가하지 않는다(라이트 명령을 거부한다). By the way, for example, it is assumed that the code string 0xPOIUYTRE (write command) of an illegal command code is recorded in address 0x200 of the command code recording unit 240 as in the case of the negative example 1. In this case, even if the data processing unit 210 reads and executes the code string 0xPOIUYTRE (write command) at address 0x200 (arrow indication β), the access control unit 232 writes because it is not a command read from the permitted address. Do not allow access to the area 231 (deny the write command).

또한, 예를 들면, 부정예 2와 같이, 명령코드 기록부(240)의 어드레스 0x080에, 부정한 명령코드의 코드열 0xLKJHGFDS가 삽입된 것으로 한다. 이 부정한 명령코드는 예를 들면, 기록영역(231)에 기록한 값의 변경 명령이다. 하지만, 이 명령이 삽입됨으로써, 허가되어 있는 명령의 격납 장소가 어긋나, 코드열 0xJKLMNOPQ(라이트 명령)의 격납장소가 어드레스 0x108이 되어 버린다. For example, as in the negative example 2, it is assumed that the code string 0xLKJHGFDS of the invalid command code is inserted into the address 0x080 of the command code recording unit 240. This incorrect command code is, for example, a command for changing a value recorded in the recording area 231. However, when this instruction is inserted, the permitted storage location of the instruction is shifted, and the storage location of the code string 0xJKLMNOPQ (write instruction) becomes the address 0x108.

이 때문에, 데이터 처리부(210)가, 어드레스 0x108의 코드열 0xJKLMNOPQ(라이트 명령)를 판독하여 실행하여도(화살 표시 γ), 허가된 어드레스로부터 판독된 명령이 아니기 때문에, 액세스 제어부(232)는 기록영역(231)으로의 액세스를 허가하지 않는다(라이트 명령을 거부한다). 이것에 의해, 부정한 코드열 0xLKJHGFDS에 의해서 기록치가 변경되었다고 해도, 그 값이 기록영역(231)에 기록되지 않아, 부정한 처리를 방지할 수 있다. For this reason, even if the data processing unit 210 reads and executes the code string 0xJKLMNOPQ (write command) at address 0x108 (arrow indication?), The access control unit 232 writes because it is not a command read from the permitted address. Do not allow access to the area 231 (deny the write command). As a result, even if the recording value is changed by the invalid code string 0xLKJHGFDS, the value is not recorded in the recording area 231, thereby preventing the illegal processing.

또한, 액세스 제어부(223, 232)로부터 레지스터(222) 등으로의 액세스가 거부된 경우, 데이터 처리부(210)는 부정이 행하여졌을 가능성이 있다는 취지를 통지하는 것으로 하여도 좋다. 구체적으로는 예를 들면, 디스플레이(113)에 에러 메시지를 표시하거나, 마이크(109)로부터 에러 메시지를 음성 출력하는 등이다. 또한, 예를 들면, 통신 I/F(114)를 통해서, 데이터 처리장치(100)의 제조원이나 관리자 등에 에러 메시지를 송신하여도 좋다. 이것에 의해, 데이터 처리 유닛(200)에 부 정이 행하여졌을 가능성이 있다는 취지를 사용자 등에게 인식시켜, 조사나 수리 등의 조치를 도모할 수 있다. In addition, when access to the register 222 or the like is denied from the access control units 223 and 232, the data processing unit 210 may be notified that there is a possibility that illegality has been performed. Specifically, for example, an error message is displayed on the display 113, an error message is output from the microphone 109, or the like. For example, an error message may be sent to the manufacturer or manager of the data processing apparatus 100 via the communication I / F 114. As a result, the user or the like may recognize that the data processing unit 200 may have been subjected to an irregularity, and measures such as investigation and repair can be achieved.

도 6은 액세스 제어부에 의한 데이터 인증 처리의 순서를 도시하는 플로차트이다. 여기에서는 도 4의 스텝 S403 내지 S405(검증치 V를 데이터 제공부(220)로부터 판독하여, 데이터 기록부(230)에 기록할 때까지)의 처리에서의, 액세스 제어부(223, 232)의 처리에 관해서 설명한다. 도 6의 플로차트에 있어서, 데이터 제공부(220)의 액세스 제어부(223)는 데이터 처리부(210)가 레지스터(222)에 격납된 데이터(도 4의 스텝 S402에서 생성된 검증치 V)의 리드 명령을 실행할 때까지 대기한다(스텝 S601 : No의 루프). 6 is a flowchart showing a procedure of data authentication processing by the access control unit. Here, the processing of the access control units 223 and 232 in the processing of steps S403 to S405 (until the verification value V is read from the data providing unit 220 and recorded in the data recording unit 230) in FIG. 4. It explains. In the flowchart of FIG. 6, the access control unit 223 of the data providing unit 220 reads the data (verification value V generated in step S402 of FIG. 4) stored in the register 222 by the data processing unit 210. Wait until (Step S601: No loop).

데이터 처리부(210)가 리드 명령을 실행하면(스텝 S601 : Yes), 액세스 제어부(223)는 데이터 처리부(210)가 실행하는 명령이, 허가하는 리드 명령인지의 여부를 판단한다(스텝 S602). 허가하는 리드 명령인지의 여부는 예를 들면, 리드 명령이 격납되어 있던 어드레스(명령 패치시의 어드레스)가 허가한 어드레스인지의 여부나, 데이터 처리부(210)가 실행하는 명령의 코드열이 허가한 명령의 코드열과 일치하는지의 여부에 의해서 판단한다. When the data processing unit 210 executes a read command (step S601: Yes), the access control unit 223 determines whether or not the command executed by the data processing unit 210 is a read command to be allowed (step S602). Whether or not the read command to be permitted is, for example, whether the address in which the read command is stored (the address at the time of the instruction patch) is the permitted address or the code string of the command executed by the data processing unit 210. It is judged by whether or not it matches the code string of the instruction.

데이터 처리부(210)가 실행하는 명령이 허가하는 리드 명령인 경우(스텝 S602 : Yes), 액세스 제어부(223)는 레지스터(222)에 격납된 데이터(검증치 V)를 데이터 처리부(210)에 출력한다(스텝 S603). 출력된 데이터는 데이터 처리부(210)의 레지스터(213)에 일시 격납된다. If the instruction executed by the data processing unit 210 is a read instruction allowed (step S602: Yes), the access control unit 223 outputs the data (verification value V) stored in the register 222 to the data processing unit 210. (Step S603). The output data is temporarily stored in the register 213 of the data processing unit 210.

한편, 데이터 처리부(210)가 실행하는 명령이 허가하는 리드 명령이 아닌 경 우는(스텝 S602 : No), 레지스터(222)에 격납된 데이터(검증치 V)를 데이터 처리부(210)에 출력하지 않고, 스텝 S604로 이행한다. 이 때, 데이터 처리부(210)의 레지스터(213)에는 데이터 제공부(220)로부터의 출력이 없기 때문에, 「0000」 「1111」 등의 정당하지 않은 값이 격납된다. 이 정당하지 않은 값을 소정의 값으로 하여 두고, 그 값이 레지스터(213)에 격납된 경우는 부정이 행하여졌을 가능성이 있다는 취지를 통지하는 것으로 하여도 좋다. 여기에서, 소정의 값은 복수 종류의 고정치군이나, 미리 변동 규칙을 정하여 둔 변동치 등이다. On the other hand, when the instruction executed by the data processing unit 210 is not a read instruction allowed (step S602: No), the data stored in the register 222 (verification value V) is not output to the data processing unit 210. The flow advances to step S604. At this time, since there is no output from the data providing unit 220 in the register 213 of the data processing unit 210, an illegal value such as "0000" or "1111" is stored. This illegal value may be set as a predetermined value, and when the value is stored in the register 213, it may be notified that there is a possibility that negation has been performed. Here, the predetermined value is a group of plural kinds of fixed values, a fluctuation value for which a fluctuation rule has been determined in advance.

또, 부정이 행하여졌을 가능성이 있다는 취지의 통지는 예를 들면, 데이터 처리장치(100)의 디스플레이(113)에 소정의 메시지나 마크 등을 표시시키거나, 마이크(109)로부터 소정의 음성 메시지나 효과음을 출력하는 등이다. 또한, 예를 들면, 통신 I/F(114)나 외부 접속용 I/F(115)를 통해서, 다른 기기에 소정의 메시지를 송신(출력)하거나, 상기와 같은 메시지 표시나 음성 출력을 다른 기기에 행하기 하기 위한 제어신호를 출력하는 것으로 하여도 좋다. In addition, the notification that the illegality has been performed may cause a predetermined message, a mark, or the like to be displayed on the display 113 of the data processing apparatus 100, or a predetermined voice message or the like may be transmitted from the microphone 109. Outputting sound effects. In addition, for example, via a communication I / F 114 or an external connection I / F 115, a predetermined message is transmitted (outputted) to another device, or the other device is used to display the above message or output audio. The control signal may be outputted to the controller.

계속해서, 데이터 기록부(230)의 액세스 제어부(232)는 데이터 처리부(210)가 레지스터(222)에 격납된 데이터(검증치 V)의 라이트 명령을 실행할 때까지 대기한다(스텝 S604 : No의 루프). 데이터 처리부(210)가 라이트 명령을 실행하면(스텝 S604 : Yes), 액세스 제어부(223)는 데이터 처리부(210)가 실행하는 명령이, 허가하는 라이트 명령인지의 여부를 판단한다(스텝 S605). 허가하는 라이트 명령인지의 여부의 판단은 스텝 S602의 판단과 같은 처리에 의해서 행한다. Subsequently, the access control unit 232 of the data recording unit 230 waits until the data processing unit 210 executes a write command of the data (verification value V) stored in the register 222 (step S604: No loop). ). When the data processing unit 210 executes the write command (step S604: Yes), the access control unit 223 determines whether the command executed by the data processing unit 210 is the write command to be allowed (step S605). The determination as to whether or not the write command to be permitted is performed by the same processing as that in step S602.

데이터 처리부(210)가 실행하는 명령이 허가하는 라이트 명령인 경우(스텝 S605 : Yes), 액세스 제어부(232)는 데이터 처리부(210)의 레지스터(213)에 일시 격납되어 있는 데이터를 기록영역(231)에 기록하고(스텝 S606), 본 플로차트에 의한 처리를 종료한다. 한편, 데이터 처리부(210)가 실행하는 명령이 허가하는 라이트 명령이 아닌 경우는(스텝 S605 : No), 기록영역(231)에 데이터를 기록하지 않고, 본 플로차트에 의한 처리를 종료한다. 이 때, 데이터 처리부(210)는 부정이 행하여졌을 가능성이 있다는 취지를 사용자 등에게 통지하는 것으로 하여도 좋다. If the command executed by the data processing unit 210 is a write command permitted (step S605: Yes), the access control unit 232 records the data temporarily stored in the register 213 of the data processing unit 210 in the recording area 231. ), And the process by this flowchart is complete | finished. On the other hand, when the command executed by the data processing unit 210 is not a write command permitted (step S605: No), the processing by this flowchart is terminated without recording data in the recording area 231. FIG. At this time, the data processing unit 210 may notify the user or the like that there is a possibility that illegality has been performed.

이상과 같은 처리에 의해서, 액세스 제어부(223, 232)는 데이터 처리부(210)가 실행하는 명령코드를 감시하여, 부정한 명령코드의 실행에 의한 데이터로의 액세스를 하지 않도록 한다. 이것에 의해, 부정한 명령코드의 실행에 의해서, 부정한 기기가 인증되어 버리는 것을 방지할 수 있다. By the above processing, the access control units 223 and 232 monitor the command codes executed by the data processing unit 210 so as not to access the data by the execution of the wrong command codes. As a result, the unauthorized apparatus can be prevented from being authenticated by the execution of the illegal instruction code.

예를 들면, 데이터 처리 유닛(200)의 각 디바이스가 트랜지스터 레벨로 해석되어 복제되거나, 정규의 명령코드 기록부(240)의 메모리 종별이 해석되어 부정한 명령코드를 기록한 같은 종별의 메모리로 교체되는 부정이 행하여지는 경우가 있다. 통상의 부정 검출방법에서는 이러한 부정을 검출하는 것은 곤란하다. 그러나, 데이터 처리 유닛(200)에서는 명령코드의 코드열이나 격납 어드레스를 감시하고 있기 때문에, 이러한 부정을 검출할 수 있다. For example, a denial in which each device of the data processing unit 200 is interpreted and replicated at the transistor level, or the memory type of the regular command code recording unit 240 is interpreted and replaced with a memory of the same type that records an invalid command code It may be done. It is difficult to detect such negation in a conventional negation detection method. However, since the data processing unit 200 monitors the code string and the storage address of the command code, such an irregularity can be detected.

또한, 데이터 처리 유닛(200)에 의하면, 상술한 바와 같은 인위적인 부정 외에, 잘못된 데이터 등의 전기적인 원인에 의한 데이터 처리장치(100)의 오작동을 방지할 수도 있다. 도 7은 액세스 제어부에 의한 액세스 제어의 다른 예를 도시하는 설명도이다. 예를 들면, 도 7에 도시하는 바와 같이, 데이터 기록부(230)의 액 세스 제어부(232)에서 허가하는 명령코드가, 명령코드 기록부(240)의 어드레스 0x100에 격납된 리드 명령, 및 어드레스 0x104에 격납된 라이트 명령이라고 한다. 또한, 명령코드 기록부(240)의 어드레스 0x100에는 코드열 0xABCDEFGH(리드 명령)가 기록되어 있다. In addition, according to the data processing unit 200, in addition to the artificial denial as described above, malfunction of the data processing apparatus 100 due to electrical causes such as wrong data can be prevented. 7 is an explanatory diagram showing another example of access control by the access control unit. For example, as shown in FIG. 7, the command code allowed by the access control unit 232 of the data recording unit 230 is stored in the read command stored at address 0x100 of the command code recording unit 240 and the address 0x104. This is called a stored write command. The code string 0xABCDEFGH (lead command) is recorded at address 0x100 of the command code recording unit 240.

여기에서, 데이터 처리부(210)가 명령코드를 판독할 때, 명령코드에 잘못된 데이터(「1」이 「0」이 되는 등)가 발생하는 경우가 있다. 이 결과, 데이터 처리부(210)가 어드레스 0x100으로부터 판독한 코드열 0xABCDEFGH(리드 명령)가, 예를 들면, 코드열 0xABCDEFGI(라이트 명령)로 교체되어 버리는 경우가 있다(화살 표시 δ). 이 경우, 데이터 처리장치(100)가 코드열 0xABCDEFGI(라이트 명령)를 실행하면, 데이터 기록부(230)의 데이터가 예기하지 못한 형태로 재기록될 가능성이 있다. Here, when the data processing unit 210 reads the command code, incorrect data ("1" becomes "0", etc.) may occur in the command code. As a result, the code string 0xABCDEFGH (lead command) read by the data processing unit 210 from address 0x100 may be replaced with, for example, the code string 0xABCDEFGI (write instruction) (arrow display?). In this case, when the data processing apparatus 100 executes the code string 0xABCDEFGI (write command), there is a possibility that the data of the data recording unit 230 is rewritten in an unexpected manner.

그러나, 액세스 제어부(232)에서는 데이터 처리부(210)가 실행하는 명령코드를 감시하고 있기 때문에, 라이트 명령으로서 명령 A'가 실행되었다고 해도(화살 표시ε), 그 명령의 패치 어드레스가 0x100이기 때문에, 기록영역(231)에 대한 기록을 허가하지 않는다. 또, 이 때, 패치 어드레스뿐만 아니라, 데이터 처리부(210)가 실행하는 명령코드열을 감시하는 것으로 하여도 좋다. However, since the access control unit 232 monitors the command code executed by the data processing unit 210, even if the command A 'is executed as a write command (arrow display epsilon), the patch address of the command is 0x100. Recording to the recording area 231 is not allowed. In this case, not only the patch address but also the command code string executed by the data processing unit 210 may be monitored.

이상 설명한 바와 같이, 데이터 처리 유닛(200)에 의하면, 명령코드의 판독시에 잘못된 데이터가 생긴 경우에도, 오동작에 의해서 중요한 데이터가 소거되어 버리는 것을 방지할 수 있다. 또한, 상기한 리드 명령에 적용하면, 오작동에 의해 중요한 데이터가 판독되는 것을 방지할 수 있다. As described above, according to the data processing unit 200, it is possible to prevent the important data from being erased due to a malfunction even when erroneous data is generated when the command code is read. In addition, when applied to the above-described read command, important data can be prevented from being read due to malfunction.

또한, 데이터 처리 유닛(200)에 의하면, 명령코드의 해독이나 프로그램 카운터치의 판독을 행하지 않고, 비트 패턴의 비교만을 행하기 때문에, 부정 검출 처리의 공정이 복잡해지지 않고, 개발이나 설계의 난이도를 저감할 수 있다. 또, 데이터 처리 유닛(200)에 의하면, 데이터 처리부(210) 내에는 액세스 제어 기능을 탑재하지 않았기 때문에, 기존의 데이터 처리부(210(CPU 등))를 사용한 데이터 처리 디바이스에도 적용할 수 있다. 또, 데이터 처리 유닛(200)에 의하면, 데이터 처리부(210)에 의해서 액세스되는 측의 구성(데이터 기록부(230) 등)을 주체로 하여 시큐리티 강도를 결정할 수 있다. Further, according to the data processing unit 200, since only the bit pattern is compared without decoding the command code or reading the program counter value, the process of the fraud detection process is not complicated, and the difficulty of development and design is reduced. can do. Moreover, according to the data processing unit 200, since the access control function is not mounted in the data processing unit 210, it can be applied to a data processing device using the existing data processing unit 210 (CPU or the like). In addition, according to the data processing unit 200, the security strength can be determined mainly using the configuration (data recording unit 230, etc.) on the side accessed by the data processing unit 210.

(실시형태 2)(Embodiment 2)

실시형태 1에서는 액세스 제어부는 명령코드나 명령코드의 격납 어드레스를 감시하였다. 이하에 설명하는 실시형태 2에서는 액세스 제어부는 명령코드나 명령코드의 격납 어드레스의 감시에 덧붙여, 명령코드로부터 산출된 체크치를 감시한다. 이것에 의해, 액세스 제어부에 의한 부정 검출의 정밀도를 높일 수 있다. 또, 이하의 설명에 있어서, 실시형태 1과 동일한 구성에 관해서는 동일한 부호를 붙이고, 상세한 설명을 생략한다. In Embodiment 1, the access control part monitored the instruction code or the storage address of the instruction code. In Embodiment 2 described below, in addition to monitoring the command code or the storage address of the command code, the access control unit monitors the check value calculated from the command code. Thereby, the precision of the false detection by an access control part can be improved. In addition, in the following description, about the structure similar to Embodiment 1, the same code | symbol is attached | subjected and detailed description is abbreviate | omitted.

도 8은 실시형태 2에 관계되는 데이터 처리 유닛의 기능적 구성을 도시하는 블록도이다. 실시형태 2에 관계되는 데이터 처리 유닛(800)은 실시형태 1에 관계되는 데이터 처리 유닛(200)과 같이, 도 1에 도시한 데이터 처리장치(100)의 하드웨어 구성 중, 실질적인 데이터 처리를 하는 구성을 기능적으로 도시한 것이다. 데이터 처리 유닛(800)은 데이터 처리부(210), 데이터 제공부(220), 데이터 기록 부(230), 명령코드 기록부(240), 및 체크치 산출부(810)에 의해서 구성된다. 데이터 처리부(210), 데이터 제공부(220), 데이터 기록부(230)의 각 구성은 실시형태 1에 관계되는 데이터 처리 유닛(200)과 같다. 8 is a block diagram showing a functional configuration of a data processing unit according to the second embodiment. The data processing unit 800 according to the second embodiment, like the data processing unit 200 according to the first embodiment, is configured to perform substantial data processing among the hardware configurations of the data processing apparatus 100 shown in FIG. 1. It is functionally illustrated. The data processing unit 800 is constituted by a data processing unit 210, a data providing unit 220, a data recording unit 230, a command code recording unit 240, and a check value calculating unit 810. Each configuration of the data processing unit 210, the data providing unit 220, and the data recording unit 230 is the same as that of the data processing unit 200 according to the first embodiment.

체크치 산출부(810)는 데이터 처리부(210)가 실행하는 명령코드의 코드열을 명령코드 기록부(240)로부터 취득한다. 그리고, 명령코드 기록부(240)로부터 취득한 코드열로부터, 명령코드의 정당성을 검사하는 체크치를 산출한다. 체크치 산출부(810)에 의해서 산출된 체크치는 액세스 제어부(223, 232)에 의한 레지스터(222) 및 기록영역(231)에 대한 데이터의 판독의 제어에 사용된다. The check value calculator 810 acquires the code string of the command code executed by the data processor 210 from the command code recorder 240. Then, a check value for checking the validity of the command code is calculated from the code string obtained from the command code recording unit 240. The check value calculated by the check value calculating unit 810 is used for controlling the reading of data to the register 222 and the recording area 231 by the access control units 223 and 232.

여기에서, 체크치는 예를 들면, 명령코드 기록부(240)에 기록된 모든(또는 일부) 명령코드로부터 산출되는 값이다. 체크치 산출부(810)는 예를 들면, 명령코드 기록부(240)에 기록된 모든 명령코드에 대하여, 해시함수에 의한 연산이나 패리티 체크(parity check), 순회 용장검사(Cyclic Redundancy Check : CRC), 체크섬(checksum) 등의, 오류 검출연산을 하여 체크치를 산출한다. 이와 같이, 체크치은 명령코드 기록부(240)에 실제로 기록되어 있는 명령코드로부터 산출된다. 따라서, 체크치를 사용하여 대조를 행함으로써, 명령코드 기록부(240)에 기록된 명령코드의 부정한 재기록이나, 명령코드 기록부(240)의 부정한 교체 등을 검출할 수 있다. Here, the check value is, for example, a value calculated from all (or part) command codes recorded in the command code recording unit 240. For example, the check value calculating unit 810 may perform calculation, parity check, and cyclic redundancy check (CRC) by a hash function on all command codes recorded in the command code recording unit 240. A check value is calculated by performing an error detection operation such as a checksum. In this way, the check value is calculated from the command code actually recorded in the command code recording unit 240. Therefore, by performing the check using the check value, it is possible to detect an illegal rewrite of the command code recorded in the command code recording unit 240, an illegal replacement of the command code recording unit 240, or the like.

액세스 제어부(223, 232)는 실시형태 1에서 설명한 바와 같이, 데이터 처리부(210)가 실행하는 명령코드를 감시하여, 미리 정해진 명령코드가 올바르게 실행되었는지의 여부를 판단한다. 이것에 덧붙여, 실시형태 2에서는 체크치 산출 부(810)에 의해서 산출된 체크치가 체크치의 기대치와 같은지의 여부(또는, 소정의 관계에 있는지의 여부)를 판단한다. 이와 같이, 명령코드 자체의 대조와, 체크치의 대조를 조합함으로써, 더욱 확실히 부정을 검출할 수 있다. As described in the first embodiment, the access control units 223 and 232 monitor the command code executed by the data processing unit 210 to determine whether the predetermined command code is correctly executed. In addition, in Embodiment 2, it is judged whether the check value calculated by the check value calculation part 810 is equal to the expected value of a check value (or whether it exists in a predetermined relationship). In this way, by combining the collation of the instruction code itself and the collation of the check value, it is possible to more reliably detect an irregularity.

액세스 제어부(223, 232)가 대조에 사용하는 기대치는, 예를 들면, 미리(제조시 등) 액세스 제어부(223, 232)에 기록시켜 둔다. 또한, 액세스 제어부(223, 232)가 대조에 사용하는 기대치를, 다른 구성부로부터 액세스 제어부(223, 232)에 송신하는 것으로 하여도 좋다. 다른 구성부는 예를 들면, 데이터 처리부(210)나 체크치의 기대치를 생성하기 위한 전용의 처리부(이하, 「기대치 산출부」라고 함) 등이다. 데이터 처리부(210)나 기대치 산출부는 미리 기록되어 있는 기대치를 액세스 제어부(223, 232)에 송신하여도 좋고, 대조 처리마다 기대치를 생성하여도 좋다. 또한, 외부 접속용 I/F(115(도 1 참조))를 통해서, 외부의 기기로부터 데이터 처리부(210)나 기대치 산출부에 기대치를 산출하기 위해서 필요한 계수 등을 송신하여도 좋다. 이와 같이, 액세스 제어부(223, 232)에, 미리 체크치용 데이터의 기대치를 기록시키지 않고, 다른 구성부로부터 취득하는 것으로 하면, 명령코드 기록부(240)의 체크치를 후발적으로 변경하는 것이 가능해진다. The expected values used by the access control units 223 and 232 for matching are recorded in advance in the access control units 223 and 232, for example, at the time of manufacture. In addition, the expected values used by the access control units 223 and 232 for matching may be transmitted to the access control units 223 and 232 from other components. The other component is, for example, a data processor 210 or a dedicated processor (hereinafter referred to as an "expected value calculator") for generating an expected value of a check value. The data processor 210 and the expected value calculator may transmit the pre-recorded expected values to the access controllers 223 and 232, or may generate the expected values for each collation process. In addition, the coefficient required for calculating the expected value may be transmitted from the external device to the data processing unit 210 or the expected value calculation unit through an external connection I / F 115 (see FIG. 1). In this way, if the access control units 223 and 232 are acquired from another configuration unit without recording the expected value of the check value data in advance, the check value of the command code recording unit 240 can be changed later.

이어서, 체크치 산출부(810)에 의한 체크치 산출 처리에 관해서 설명한다. 도 9는 체크치 산출부에 의한 체크치 산출 처리의 순서를 도시하는 플로차트이다. 도 9의 플로차트에 있어서, 체크치 산출부(810)는 액세스 제어부(223, 232)로부터 체크치의 취득 요구를 수신할 때까지 대기한다(스텝 S901 : No의 루프). Next, the check value calculation process by the check value calculation unit 810 will be described. 9 is a flowchart showing a procedure of check value calculation processing by the check value calculation unit. In the flowchart of Fig. 9, the check value calculating unit 810 waits until the request for obtaining the check value is received from the access control units 223 and 232 (step S901: No loop).

체크치의 취득 요구를 수신하면(스텝 S901 : Yes), 체크치 산출부(810)는 명 령코드 기록부(240)로부터 모든(또는 일부) 명령코드를 판독하고(스텝 S902), 판독한 값에 대하여 오류 검출용의 연산을 하여 체크치를 산출한다(스텝 S903). 그리고, 체크치 산출부(810)는 스텝 S903에서 행한 연산에 의해서 산출된 값(체크치)을 액세스 제어부(223, 232)에 송신하고(스텝 S904), 본 플로차트에 의한 처리를 종료한다. Upon receiving the request to acquire the check value (step S901: Yes), the check value calculation unit 810 reads all (or part) the command code from the command code recording unit 240 (step S902), and reads the read value. An operation for error detection is performed to calculate a check value (step S903). Then, the check value calculating unit 810 transmits the value (check value) calculated by the operation performed in step S903 to the access control units 223 and 232 (step S904), and ends the processing by this flowchart.

또, 도 9의 플로차트에 있어서, 체크치 산출부(810)는 액세스 제어부(223, 232)로부터 체크치의 취득 요구를 수신한 다음 체크치를 산출하는 것으로 하였지만, 이것에 한하지는 않는다. 예를 들면, 미리 정해진 조건이 성립한 경우 등에, 체크치 산출부(810)가 체크치를 생성하여, 액세스 제어부(223, 232)에 체크치를 송신하도록 하여도 좋다. In the flowchart of Fig. 9, the check value calculating unit 810 receives the request for obtaining the check value from the access control units 223 and 232, but calculates the check value, but is not limited to this. For example, the check value calculating unit 810 may generate a check value and transmit the check value to the access control units 223 and 232 when a predetermined condition is established.

계속해서, 액세스 제어부(223, 232)에 의한 데이터 인증 처리에 관해서 설명한다. 도 10 및 도 11은 액세스 제어부에 의한 데이터 인증 처리의 순서를 도시하는 플로차트이다. 여기에서는 도 6의 플로차트와 같이, 도 4의 스텝 S403 내지 S405(검증치 V를 데이터 제공부(220)로부터 판독하여, 데이터 기록부(230)에 기록할 때까지)의 처리에서의, 액세스 제어부(223, 232)의 처리에 관해서 설명한다. 도 10의 플로차트에 있어서, 데이터 제공부(220)의 액세스 제어부(223)는 데이터 처리부(210)가 레지스터(222)에 격납된 데이터(도 4의 스텝 S402에서 생성된 검증치 V)의 리드 명령을 실행할 때까지 대기한다(스텝 S1001 : No의 루프). Subsequently, data authentication processing by the access control units 223 and 232 will be described. 10 and 11 are flowcharts showing the procedure of data authentication processing by the access control unit. Here, as in the flowchart of FIG. 6, the access control unit (in the processing of steps S403 to S405 (until the verification value V is read from the data providing unit 220 and recorded in the data recording unit 230) of FIG. 4). The processing of 223 and 232 will be described. In the flowchart of FIG. 10, the access control unit 223 of the data providing unit 220 reads the data (verification value V generated in step S402 of FIG. 4) stored in the register 222 by the data processing unit 210. Wait until (Step S1001: No loop).

데이터 처리부(210)가 리드 명령을 실행하면(스텝 S1001 : Yes), 액세스 제어부(223)는 데이터 처리부(210)가 실행하는 명령이, 허가하는 리드 명령인지의 여 부를 판단한다(스텝 S1002). 데이터 처리부(210)가 실행하는 명령이 허가하는 리드 명령인 경우(스텝 S1002 : Yes), 액세스 제어부(223)는 체크치 산출부(810)에 대하여 체크치의 취득 요구를 송신하고(스텝 S1003), 체크치 산출부(810)로부터 체크치를 수신한다(스텝 S1004). 이 때, 액세스 제어부(223)는 복수로 분할된 체크치를 취득하여도 좋다. 이 경우, 액세스 제어부(223)는 복수에 분할된 체크치를 통합하고 나서 나중의 처리를 행한다.When the data processing unit 210 executes a read command (step S1001: Yes), the access control unit 223 determines whether the command executed by the data processing unit 210 is a read command to be allowed (step S1002). If the command executed by the data processing unit 210 is a read command permitted (step S1002: Yes), the access control unit 223 transmits a request for obtaining the check value to the check value calculating unit 810 (step S1003), The check value is received from the check value calculation unit 810 (step S1004). At this time, the access control unit 223 may acquire a plurality of divided check values. In this case, the access control unit 223 performs later processing after integrating a plurality of divided check values.

이어서, 액세스 제어부(223)는 체크치의 기대치를 취득한다(스텝 S1005). 액세스 제어부(223)는 예를 들면, 미리 기록되어 있는 기대치를 판독하거나, 데이터 처리부(210)나 기대치 산출부가 생성한 기대치를 수신함으로써, 기대치를 취득한다. Next, the access control unit 223 obtains the expected value of the check value (step S1005). The access control part 223 acquires an expectation value, for example by reading the expectation value previously recorded, or receiving the expectation value which the data processing part 210 and the expectation value calculation part produced | generated.

그리고, 액세스 제어부(223)는 스텝 S1004에서 수신한 체크치와 스텝 S1005에서 취득한 기대치가 일치하고 있는지의 여부를 판단한다(스텝 S1006). 또, 액세스 제어부(223)는 체크치와 기대치가 일치하고 있는지의 여부가 아니라, 체크치와 기대치가 소정의 관계에 있는지의 여부를 판단하는 것으로 하여도 좋다. 소정의 관계는 예를 들면, 체크치에 소정의 연산을 행한 값이, 기대치와 같다는 등의 관계이다. The access control unit 223 then determines whether or not the check value received in step S1004 and the expected value acquired in step S1005 coincide (step S1006). Further, the access control unit 223 may determine whether the check value and the expected value are in a predetermined relationship, not whether the check value and the expected value match. The predetermined relationship is, for example, a relationship in which a value of performing a predetermined operation on a check value is equal to an expected value.

체크치와 기대치가 일치하고 있는 경우(스텝 S1006 : Yes), 액세스 제어부(223)는 레지스터(222)에 격납된 데이터(검증치 V)를 데이터 처리부(210)에 출력한다(스텝 S1007). 출력된 데이터는 데이터 처리부(210)의 레지스터(213)에 일시 격납된다. 한편, 체크치가 일치하지 않은 경우(스텝 S1006 : No), 또는, 데이터 처리부(210)가 실행하는 명령이 허가하는 리드 명령이 아닌 경우(스텝 S1002 : No), 액세스 제어부(223)는 레지스터(222)에 격납된 데이터(검증치 V)를 데이터 처리부(210)에 출력하지 않고, 스텝 S1008(도 11 참조)로 이행한다. If the check value and the expected value match (step S1006: Yes), the access control unit 223 outputs the data (verification value V) stored in the register 222 to the data processing unit 210 (step S1007). The output data is temporarily stored in the register 213 of the data processing unit 210. On the other hand, when the check values do not match (step S1006: No), or when the instruction executed by the data processing unit 210 is not a read instruction allowed (step S1002: No), the access control unit 223 registers 222. ) Does not output the data (verification value V) to the data processing unit 210, and the process proceeds to step S1008 (see FIG. 11).

도 11의 설명에 비추어, 데이터 기록부(230)의 액세스 제어부(232)는 데이터 처리부(210)가 레지스터(222)에 격납된 데이터(검증치 V)의 라이트 명령을 실행할 때까지 대기한다(스텝 S1008 : No의 루프). 데이터 처리부(210)가 라이트 명령을 실행하면(스텝 S1008 : Yes), 액세스 제어부(223)는 데이터 처리부(210)가 실행하는 명령이, 허가하는 라이트 명령인지의 여부를 판단한다(스텝 S1009). In view of the description of FIG. 11, the access control unit 232 of the data recording unit 230 waits until the data processing unit 210 executes a write command of data (verification value V) stored in the register 222 (step S1008). : No loop). When the data processing unit 210 executes the write command (step S1008: Yes), the access control unit 223 determines whether the command executed by the data processing unit 210 is a write command to be allowed (step S1009).

데이터 처리부(210)가 실행하는 명령이 허가하는 라이트 명령인 경우(스텝 S1009 : Yes), 액세스 제어부(232)는 체크치 산출부(810)에 대하여 체크치의 취득 요구를 송신하고(스텝 S1010), 체크치 산출부(810)로부터 체크치를 수신한다(스텝 S1011). 이어서, 액세스 제어부(232)는 체크치의 기대치를 취득한다(스텝 S1012). If the command executed by the data processing unit 210 is a write command permitted (step S1009: Yes), the access control unit 232 transmits a request for obtaining the check value to the check value calculating unit 810 (step S1010), The check value is received from the check value calculation unit 810 (step S1011). Next, the access control part 232 acquires the expected value of a check value (step S1012).

그리고, 액세스 제어부(223)는 스텝 S1011에서 수신한 체크치와 스텝 S1012에서 취득한 기대치가, 일치하고 있는지의 여부를 판단한다(스텝 S1013). 스텝 S1010 내지 S1013의 처리는 스텝 S1003 내지 S1006(도 10 참조)과 같은 처리에 의해서 행한다. Then, the access control unit 223 determines whether or not the check value received in step S1011 and the expected value acquired in step S1012 coincide (step S1013). The processing of steps S1010 to S1013 is performed by the same processing as that of steps S1003 to S1006 (see FIG. 10).

체크치와 기대치가 일치하고 있는 경우(스텝 S1013 : Yes), 액세스 제어부(232)는 데이터 처리부(210)의 레지스터(213)에 일시 격납되어 있는 데이터를 기록영역(231)에 기록하고(스텝 S1014), 본 플로차트에 의한 처리를 종료한다. 한편, 체크치와 기대치가 일치하지 않은 경우(스텝 S1013 : No), 또는, 데이터 처리 부(210)가 실행하는 명령이 허가하는 라이트 명령이 아닌 경우(스텝 S1009 : No), 기록영역(231)에 데이터를 기록하지 않고, 본 플로차트에 의한 처리를 종료한다. 이 때, 데이터 처리부(210)는 부정이 행하여졌을 가능성이 있다는 취지를 통지하는 것으로 하여도 좋다. If the check value and the expected value match (step S1013: Yes), the access control unit 232 records the data temporarily stored in the register 213 of the data processing unit 210 in the recording area 231 (step S1014). ), The processing by this flowchart is finished. On the other hand, when the check value and the expected value do not match (step S1013: No) or when the command executed by the data processing unit 210 is not a write command permitted (step S1009: No), the recording area 231 The process by this flowchart is complete | finished without recording data in. At this time, the data processing unit 210 may notify that there is a possibility that negation has been performed.

또, 상술한 설명에서는 명령코드로부터 체크치를 산출하는 것으로 하였지만, 명령코드 대신에, 예를 들면, 명령코드 기록부(240)에 기록된 데이터(이하, 「체크치용 데이터」라고 함)를 사용하여 체크치를 산출하는 것으로 하여도 좋다. 체크치용 데이터는 예를 들면, 명령코드 기록부(240)에 기록된 고정 데이터이다. 또, 체크치용 데이터는 고정 데이터에 한하지 않고, 예를 들면, 변동 전후의 데이터치를 정확히 예측 가능한 변동 데이터이어도 좋다. 변동 전후의 데이터치를 정확히 예측 가능하다는 것은 구체적으로는 예를 들면, 변동범위가 정해져 있는 경우나 변동 규칙이 정해져 있는 경우 등을 가리킨다. In the above description, the check value is calculated from the command code. However, instead of the command code, for example, the check value is written using data recorded in the command code recording unit 240 (hereinafter referred to as "check value data"). The value may be calculated. The check value data is fixed data recorded in the command code recorder 240, for example. The check value data is not limited to fixed data, and may be, for example, fluctuation data that can accurately predict data values before and after fluctuation. Specifically, the data value before and after the change can be predicted specifically, for example, when the change range is defined or when the change rule is determined.

체크치 산출부(810)는 명령코드 기록부(240)에 기록된 체크치용 데이터를 판독하여 체크치를 산출한다. 또한, 액세스 제어부(223, 232)는 미리 체크치용 데이터의 기대치를 기록하고 있다. 액세스 제어부(223, 232)는 체크치용 데이터의 기대치로부터 체크치를 산출하여, 체크치 산출부(810)가 산출한 체크치와 일치하는지(또는 소정의 관계에 있는지)의 여부를 판단한다. 또, 명령코드로부터 산출한 체크치와, 체크치용 데이터로부터 산출한 체크치를 모두 사용하여, 부정의 검출을 하여도 좋다. The check value calculator 810 calculates a check value by reading the check value data recorded in the command code recorder 240. In addition, the access control units 223 and 232 record the expected values of the check value data in advance. The access control units 223 and 232 calculate a check value from the expected value of the check value data, and determine whether or not the check value calculation unit 810 coincides with the calculated check value (or is in a predetermined relationship). In addition, a negative value may be detected using both the check value calculated from the command code and the check value calculated from the check value data.

이상 설명한 바와 같이, 실시형태 2에 의하면, 명령코드 자체의 감시(실시형 태 1)에 맞추어, 데이터 처리부(210)가 실행하는 명령코드의 체크치가 체크치 산출부(810)에 의해서 산출된 체크치와 같은지의 여부(또는, 소정의 관계에 있는지의 여부)를 판단한다. 이와 같이, 명령코드 자체의 대조와, 체크치의 대조를 조합함으로써, 더욱 확실히 부정을 검출할 수 있다. As described above, according to the second embodiment, the check value of the command code executed by the data processing unit 210 is calculated by the check value calculation unit 810 in accordance with the monitoring of the command code itself (embodiment state 1). Value or not (or whether it is in a predetermined relationship). In this way, by combining the collation of the instruction code itself and the collation of the check value, it is possible to more reliably detect an irregularity.

또한, 체크치에 의한 부정 검출은 명령코드 자체의 감시(실시형태 1)와 맞추어 행하기 때문에, 체크치의 산출에 비교적 처리 부가가 가벼운 오류 검출방식(예를 들면, 패리티 체크 등)을 사용하여도, 일정한 정밀도를 얻을 수 있다. In addition, since false detection by a check value is performed in accordance with monitoring of the instruction code itself (Embodiment 1), even if the error detection method (for example, parity check etc.) which is comparatively light in processing addition is used for calculation of a check value. , A certain precision can be obtained.

또, 상술한 설명에서는 데이터 처리장치(100)로서 퍼스널 컴퓨터에 대하여 본 발명을 적용한 경우에 관해서 설명하였지만, 본 발명은 예를 들면, 휴대전화 단말, 가정용 게임기기 등의 각종 가정용 전자기기, 자동매표기나 유기기 등의 각종업무용 전자기기에 대해서도 적용할 수 있다. 이 경우, 상술한 설명 중의 데이터 처리장치(100)를 각종 전자기기로 하면 좋다. In the above description, the case where the present invention is applied to a personal computer as the data processing apparatus 100 has been described. However, the present invention is, for example, various home electronic devices such as a mobile phone terminal and a home game machine, an automatic ticket machine. The present invention can also be applied to various business electronic devices such as organic groups. In this case, the data processing apparatus 100 in the above description may be various electronic devices.

또한, 본 실시형태에서 설명한 액세스 제어방법은 미리 준비된 프로그램을 퍼스널 컴퓨터나 워크스테이션 등의 컴퓨터로 실행함으로써 실현할 수 있다. 이 프로그램은 하드디스크, 플랙시블 디스크, CD-ROM, MO, DVD 등의 컴퓨터로 판독 가능한 기록수단에 기록되어, 컴퓨터에 의해서 기록수단으로부터 판독됨으로써 실행된다. 또 이 프로그램은 인터넷 등의 네트워크를 통해서 배포하는 것이 가능한 전송매체이어도 좋다. The access control method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This program is recorded in computer-readable recording means such as a hard disk, a flexible disk, a CD-ROM, a MO, a DVD, and the like, and is executed by reading from the recording means by a computer. The program may be a transmission medium that can be distributed through a network such as the Internet.

이상과 같이, 본 발명에 관계되는 액세스 제어장치, 액세스 제어방법, 액세 스 제어 프로그램은 인증용 정보나 과금정보, 개인정보 등을 기록한 기록매체로의 액세스 제어에 유용하고, 특히, 인증 처리를 하는 인증 서버나 과금 처리를 하는 과금 서버, 개인정보를 취급하는 업무용 단말장치 등에 적합하다. As described above, the access control apparatus, the access control method, and the access control program according to the present invention are useful for access control to a recording medium that records authentication information, billing information, personal information, and the like. It is suitable for an authentication server, a billing server for billing processing, and a work terminal device for handling personal information.

도 1은 데이터 처리장치의 하드웨어 구성을 도시하는 블록도이다. 1 is a block diagram showing a hardware configuration of a data processing apparatus.

도 2는 실시형태 1에 관계되는 데이터 처리 유닛의 기능적 구성을 도시하는 블록도이다. 2 is a block diagram showing the functional configuration of a data processing unit according to the first embodiment.

도 3은 명령코드 기록부의 구조의 일례를 모식적으로 도시하는 설명도이다. 3 is an explanatory diagram schematically showing an example of the structure of the command code recording unit.

도 4는 데이터 처리부가 행하는 데이터 처리의 일례의 순서를 도시하는 플로차트이다. 4 is a flowchart showing a procedure of an example of data processing performed by a data processing unit.

도 5는 액세스 제어부에 의한 액세스 제어의 개요를 도시하는 설명도이다. It is explanatory drawing which shows the outline | summary of access control by an access control part.

도 6은 액세스 제어부에 의한 데이터 인증 처리의 순서를 도시하는 플로차트이다. 6 is a flowchart showing a procedure of data authentication processing by the access control unit.

도 7은 액세스 제어부에 의한 액세스 제어의 다른 예를 도시하는 설명도이다. 7 is an explanatory diagram showing another example of access control by the access control unit.

도 8은 실시형태 2에 관계되는 데이터 처리 유닛의 기능적 구성을 도시하는 블록도이다. 8 is a block diagram showing a functional configuration of a data processing unit according to the second embodiment.

도 9는 체크치 산출부에 의한 체크치 산출 처리의 순서를 도시하는 플로차트이다. 9 is a flowchart showing a procedure of check value calculation processing by the check value calculation unit.

도 10은 액세스 제어부에 의한 데이터 인증 처리의 순서를 도시하는 플로차트이다. 10 is a flowchart showing a procedure of data authentication processing by the access control unit.

도 11은 액세스 제어부에 의한 데이터 인증 처리의 순서를 도시하는 플로차트이다. 11 is a flowchart showing a procedure of data authentication processing by the access control unit.

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

200, 800 : 데이터 처리 유닛200, 800: data processing unit

210 : 데이터 처리부 210: data processing unit

211 : 제어부211: control unit

212 : 연산부212: calculation unit

213 : 레지스터213: register

220 : 데이터 제공부220: data provider

221 : 연산부 221: calculation unit

222 : 레지스터 222: register

223 : 액세스 제어부223: access control unit

230 : 데이터 기록부230: data record

231 : 기록영역 231: recording area

232 : 액세스 제어부232: access control unit

240 : 명령코드 기록부240: command code recorder

810 : 체크치 산출부 810: check value calculator

Claims (9)

소정의 명령코드에 기초하여 데이터를 처리하는 데이터 처리수단에 의한 기록수단으로의 액세스를 제어하는 액세스 제어장치에 있어서, An access control apparatus for controlling access to recording means by data processing means for processing data based on a predetermined command code, 상기 데이터 처리수단이 실행하는 명령코드에 관한 정보를 취득하는 취득수단과, Acquisition means for acquiring information about an instruction code executed by said data processing means; 상기 취득수단에 의해서 취득된 명령코드에 관한 정보에 기초하여, 상기 데이터 처리수단에 의한 상기 기록수단으로의 액세스를 제어하는 제어수단을 구비하는 것을 특징으로 하는, 액세스 제어장치. And control means for controlling access to the recording means by the data processing means based on the information about the command code acquired by the acquiring means. 제 1 항에 있어서,The method of claim 1, 상기 취득수단은 상기 데이터 처리수단이 실행하는 명령코드의 코드열을 취득하고, The acquiring means acquires a code string of an instruction code executed by the data processing means, 상기 제어수단은 상기 코드열이 소정의 코드열인 경우, 상기 기록수단으로의 액세스를 허가하는 것을 특징으로 하는, 액세스 제어장치. And the control means permits access to the recording means when the code string is a predetermined code string. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 명령코드는 명령코드용 기록수단에 기록되어 있고, The command code is recorded in the recording means for command code, 상기 취득수단은 상기 데이터 처리수단이 실행하는 명령코드의 상기 명령코드용 기록수단에서의 기록 위치정보를 취득하고, The acquiring means acquires recording position information in the instruction code recording means of the instruction code executed by the data processing means, 상기 판단수단은 상기 명령코드의 기록 위치가 소정의 위치인 경우, 상기 기록수단으로의 액세스를 허가하는 것을 특징으로 하는, 액세스 제어장치. And the determining means permits access to the recording means when the recording position of the command code is a predetermined position. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서, The method according to any one of claims 1 to 3, 상기 명령코드는 명령코드용 기록수단에 기록되어 있고, The command code is recorded in the recording means for command code, 상기 명령코드용 기록수단에 기록된 명령코드의 적어도 일부를 사용하여 소정의 연산을 하는 연산수단을 구비하고, Computing means for performing a predetermined operation by using at least a part of the command code recorded in the command code recording means, 상기 취득수단은 상기 연산수단에 의해서 산출된 산출치를 취득하고, The acquiring means acquires the calculated value calculated by the computing means, 상기 제어수단은 상기 산출치가 소정의 값인 경우, 상기 기록수단으로의 액세스를 허가하는 것을 특징으로 하는, 액세스 제어장치. And the control means permits access to the recording means when the calculated value is a predetermined value. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서, The method according to any one of claims 1 to 3, 상기 명령코드는 명령코드용 기록수단에 기록되어 있고, The command code is recorded in the recording means for command code, 상기 명령코드용 기록수단에 기록된 소정의 고정치를 사용하여 소정의 연산을 하는 연산수단을 구비하고, Calculating means for performing a predetermined calculation by using a predetermined fixed value recorded in the command code recording means, 상기 취득수단은 상기 연산수단에 의해서 산출된 산출치를 취득하고, The acquiring means acquires the calculated value calculated by the computing means, 상기 제어수단은 상기 산출치가 소정의 값인 경우, 상기 기록수단으로의 액세스를 허가하는 것을 특징으로 하는, 액세스 제어장치. And the control means permits access to the recording means when the calculated value is a predetermined value. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서, The method according to any one of claims 1 to 5, 상기 제어수단은 상기 기록수단 중 특정 어드레스공간으로의 액세스를 제어하는 것을 특징으로 하는, 액세스 제어장치. And said control means controls access to a specific address space of said recording means. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서, The method according to any one of claims 1 to 6, 상기 제어수단에 의한 상기 기록수단으로의 액세스의 제어 상황을 통지하는 통지수단을 구비하는 것을 특징으로 하는, 액세스 제어장치. And an informing means for notifying a control situation of the access to the recording means by the control means. 소정의 명령코드에 기초하여 데이터를 처리하는 데이터 처리수단에 의한 기록수단으로의 액세스를 제어하는 액세스 제어방법에 있어서, An access control method for controlling access to recording means by data processing means for processing data on the basis of a predetermined command code, 상기 데이터 처리수단이 실행하는 명령코드에 관한 정보를 취득하는 취득공정과, An acquisition step of acquiring information about an instruction code executed by the data processing means; 상기 취득공정에서 취득된 명령코드에 관한 정보에 기초하여, 상기 데이터 처리수단에 의한 상기 기록수단으로의 액세스를 제어하는 제어공정을 포함하는 것을 특징으로 하는, 액세스 제어방법. And a control step of controlling access to the recording means by the data processing means based on the information about the command code acquired in the acquiring step. 제 8 항에 기재된 액세스 제어방법을 컴퓨터에 실행시키는 것을 특징으로 하는 액세스 제어 프로그램.An access control program comprising causing a computer to execute the access control method according to claim 8.
KR1020080086856A 2007-09-03 2008-09-03 Access control apparatus, access control method and access control program KR101449971B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2007-00228149 2007-09-03
JP2007228149A JP4562759B2 (en) 2007-09-03 2007-09-03 Access control apparatus, access control method, and access control program

Publications (2)

Publication Number Publication Date
KR20090024093A true KR20090024093A (en) 2009-03-06
KR101449971B1 KR101449971B1 (en) 2014-10-14

Family

ID=40462766

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080086856A KR101449971B1 (en) 2007-09-03 2008-09-03 Access control apparatus, access control method and access control program

Country Status (4)

Country Link
JP (1) JP4562759B2 (en)
KR (1) KR101449971B1 (en)
CN (1) CN101382920B (en)
TW (1) TWI450093B (en)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4981851B2 (en) * 2009-06-29 2012-07-25 京楽産業.株式会社 Game machine, authentication method, program
JP4933586B2 (en) * 2009-06-29 2012-05-16 京楽産業.株式会社 Game machine, authentication method, program
JP5238999B2 (en) * 2009-06-29 2013-07-17 京楽産業.株式会社 Game machine, authentication method, program
JP2011005143A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005072A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005101A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005080A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005140A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005125A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005120A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4933590B2 (en) * 2009-06-29 2012-05-16 京楽産業.株式会社 Game machine, authentication method, program
JP4976451B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP2011005076A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005075A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4976458B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP4976450B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP2011005077A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005100A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005113A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4933591B2 (en) * 2009-06-29 2012-05-16 京楽産業.株式会社 Game machine, authentication method, program
JP4981852B2 (en) * 2009-06-29 2012-07-25 京楽産業.株式会社 Game machine, authentication method, program
JP4933589B2 (en) * 2009-06-29 2012-05-16 京楽産業.株式会社 Game machine, authentication method, program
JP2011005114A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP5156985B2 (en) * 2009-06-29 2013-03-06 京楽産業.株式会社 Game machine, authentication method, program
JP4933592B2 (en) * 2009-06-29 2012-05-16 京楽産業.株式会社 Game machine, authentication method, program
JP5150938B2 (en) * 2009-06-29 2013-02-27 京楽産業.株式会社 Game machine, authentication method, program
JP2011005116A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4976455B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP2011005121A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005108A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005110A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005112A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4976453B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP2011005079A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4976448B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP2011005070A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005104A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4976449B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP2011005105A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4976461B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP4976456B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP4976452B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP5315511B2 (en) * 2009-06-29 2013-10-16 京楽産業.株式会社 Game machine, authentication method, program
JP2011005106A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005071A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005122A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005078A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005139A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005068A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005069A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4976454B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP2011005073A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005142A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005144A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP2011005141A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4933588B2 (en) * 2009-06-29 2012-05-16 京楽産業.株式会社 Game machine, authentication method, program
JP2011005118A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4976460B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP2011005099A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4976457B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP4933587B2 (en) * 2009-06-29 2012-05-16 京楽産業.株式会社 Game machine, authentication method, program
JP2011005124A (en) * 2009-06-29 2011-01-13 Kyoraku Sangyo Kk Game machine, authentication method and program
JP4976459B2 (en) * 2009-06-29 2012-07-18 京楽産業.株式会社 Game machine, authentication method, program
JP6150943B2 (en) * 2014-05-14 2017-06-21 三菱電機株式会社 Control device
CN113204371B (en) * 2021-05-28 2023-09-19 金蝶软件(中国)有限公司 Access control method, related device and storage medium
CN114609985B (en) * 2022-03-11 2024-01-26 傲普(上海)新能源有限公司 Control method, device, medium and equipment of EMS system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1012297B (en) * 1985-11-13 1991-04-03 奥尔凯托N·V公司 Array recognization with internal cellular control and processing
JPH05265866A (en) * 1992-03-19 1993-10-15 Csk Corp Security system for external rom
JPH10228421A (en) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd Memory access control circuit
JP2901149B1 (en) * 1998-01-30 1999-06-07 株式会社画像技研 Computer operation status monitoring device
US20020094111A1 (en) * 2000-05-19 2002-07-18 Puchek Daniel R. Access control method and apparatus
JP3854572B2 (en) * 2002-11-27 2006-12-06 株式会社エルイーテック Microprocessor
AU2003221418A1 (en) * 2003-03-18 2004-10-11 Fujitsu Limited Information access control method, access control program, and external recording medium

Also Published As

Publication number Publication date
KR101449971B1 (en) 2014-10-14
JP4562759B2 (en) 2010-10-13
TW200912646A (en) 2009-03-16
JP2009059303A (en) 2009-03-19
CN101382920A (en) 2009-03-11
CN101382920B (en) 2012-10-10
TWI450093B (en) 2014-08-21

Similar Documents

Publication Publication Date Title
KR101449971B1 (en) Access control apparatus, access control method and access control program
CN105164694B (en) Trusted terminal platform
CN100447776C (en) Embedded safety ship of real-time clock and method for correcting real-time clock thereof
JP4093494B2 (en) System and method for controlling access to confidential information
US8489888B2 (en) Processor apparatus having a security function
WO2007125911A1 (en) Data processing device, method, program, integrated circuit, and program generating device
CN109313690A (en) Self-contained encryption boot policy verifying
WO2007000993A1 (en) Verification method, information processing device, recording medium, verification system, certification program, and verification program
KR100443621B1 (en) Method of authenticating an application for personal digital assistant using a unique ID based a person computer and system using thereof
CN112084484B (en) Equipment hardware safety detection method and device, electronic equipment and storage medium
CN107832589A (en) Software copyright protecting method and its system
JP5365120B2 (en) Information processing apparatus, information processing method, and program
CN112016092A (en) TPM (trusted platform Module) -server-based asset information multilayer protection device and method
JP4724107B2 (en) User authentication method using removable device and computer
KR20170102285A (en) Security Elements
JP2008191942A (en) Authentication device, authentication method and program
CN109891425A (en) Sequence verification
CN113190880A (en) Determining whether to perform an action on a computing device based on an analysis of endorsement information of a security co-processor
JP2006268513A (en) Log-on management device for terminal device
CN109167785B (en) Calling method of virtual trusted root and service server
JP2010160765A (en) System lsi and debugging method thereof
JP4838109B2 (en) Program correction system and program correction device
CN111859313A (en) Verification method and device
JP2014142794A (en) Portable information storage device and method for controlling the same
JP4292842B2 (en) Data reading management system, software installation management system, and software installation management method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee