KR100619657B1 - 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치 - Google Patents

메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치 Download PDF

Info

Publication number
KR100619657B1
KR100619657B1 KR1020047015085A KR20047015085A KR100619657B1 KR 100619657 B1 KR100619657 B1 KR 100619657B1 KR 1020047015085 A KR1020047015085 A KR 1020047015085A KR 20047015085 A KR20047015085 A KR 20047015085A KR 100619657 B1 KR100619657 B1 KR 100619657B1
Authority
KR
South Korea
Prior art keywords
code
memory
processor
verification
management unit
Prior art date
Application number
KR1020047015085A
Other languages
English (en)
Other versions
KR20040105794A (ko
Inventor
준 가마다
다까유끼 하세베
소우이찌 오까다
다께히꼬 하야시
Original Assignee
후지쯔 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Publication of KR20040105794A publication Critical patent/KR20040105794A/ko
Application granted granted Critical
Publication of KR100619657B1 publication Critical patent/KR100619657B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information

Abstract

코드가 저장되는 메모리(2)를 관리하여, 코드를 프로세서(1)에 의해서 실행시키기 위해서, 해당 실행 대상이 되는 코드가 기억되어 있는 메모리(2)가 유효함을 설정하는 메모리 관리 유닛(10)은, 코드의 정당성을 검증하기 위해서 이용되는 검증 키를 검증 키 유지부(15)에 저장한다. 그리고, 코드가 메모리(2)에 저장되어 프로세서(1)에 의한 실행이 가능하게 된 경우에, 검증 키 유지부(15)에 저장된 검증 키 및 코드에 부여된 검증 정보를 이용하여 코드의 정당성을 검증하여, 정당성이 검증된 경우에는 메모리(2)가 유효함을 설정하고, 정당성이 검증되지 않은 경우에는 메모리(2)가 유효함을 설정하지 않도록 제어한다.
메모리 관리 유닛, 검증 키, 코드 검증, 코드 복호, 암호화

Description

메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치{MEMORY MANAGING UNIT, CODE VERIFYING DEVICE, AND CODE DECODER}
본 발명은 퍼스널 컴퓨터나 이동체 통신 단말기 등의 정보 처리 장치에 구비되는 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치에 관한 것으로, 특히, 프로세서나 메모리의 아키텍쳐를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증할 수 있는 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치에 관한 것이다.
종래부터, 퍼스널 컴퓨터나 이동체 통신 단말기 등의 정보 처리 장치에서는, 정당성이 보증된 안전한 코드(기계어에 의해서 기술되고, CPU에 의해서 해석되어 실행되는 프로그램)가 장치상에서 실행되는 것이 요구되고 있다. 즉, 하드디스크 등으로의 인스톨 전 혹은 인스톨 후에 악의를 가진 제삼자에 의해서 개찬되고, 안전성에 문제가 있는 코드가 메모리에 저장되어 장치상에서 실행되는 일이 없도록 할 필요가 있다.
그리고, 이러한 필요성에 대한 종래 기술로서, (1)정보 처리 장치에 검증용 소프트웨어를 추가하고, 코드에 미리 부여되어 있는 검증 정보를 이용하여 코드 실행전에 코드의 정당성을 검증하는 방법이나, (2)정보 처리 장치에 복호용 소프트웨 어를 추가하고, 미리 암호화된 코드를 실행전에 복호함으로써 코드의 정당성을 담보하는 방법이 종래부터 일반적으로 행해지고 있다.
그러나, 상기 종래 기술은 소프트웨어에 의해서 코드의 정당성을 검증 또는 담보하는 것이기 때문에, 검증용 소프트웨어나 복호용 소프트웨어 자체가 개찬될 위험성이 상당히 크고, 반드시 정당성이 보증된 안전한 코드를 정보 처리 장치상에서 실행할 수는 없다고 하는 문제점이 있었다.
즉, 검증용 소프트웨어 자체가 개찬된 경우에는 검증의 성부에 관계없이 코드가 실행될 우려가 있고, 또한, 복호용 소프트웨어 자체가 개찬된 경우에는 복호한 코드가 실행전에 개찬될 우려가 있기 때문에, 상기 종래 기술에서는 반드시 정당성이 보증된 안전한 코드를 정보 처리 장치상에서 실행할 수는 없었다.
이 소프트웨어에 의한 문제점을 해결하기 위해서, (1)정보 처리 장치 내의 메모리에 부가한 특별한 검증용 하드웨어에 의해, 프로세서의 메모리 할당 단위인 페이지마다 페이지상에 배치된 코드를 검증하는 방법이나, (2)정보 처리 장치 내의 프로세서에 부가한 특별한 복호용 하드웨어에 의해, 페치한 코드를 복호하는 방법도 생각할 수 있는데, 이러한 하드웨어를 간단히는 개발할 수 없다고 하는 문제점이 있다.
즉, 메모리에 특별한 검증용 하드웨어를 부가하는 것이나 프로세서에 특별한 복호용 하드웨어를 부가하는 것은, 바꿔 말하면, 메모리의 체크 부분이나 프로세서의 입구 부분에 새로운 인텔리젠스를 추가하는 것이기 때문에, 프로세서나 메모리의 아키텍처를 대폭 변경할 필요가 발생하여 간단히 개발할 수는 없었다.
이처럼, 퍼스널 컴퓨터나 이동체 통신 단말기 등의 정보 처리 장치에서는 어떻게 해서 정당성이 보증된 안전한 코드를 장치상에서 실행할지가 매우 중요한 과제가 되고 있고, 바람직하게는, 프로세서나 메모리의 아키텍처를 변경하지 않고, 이를 간단하고 확실하게 해결할 수 있는 하드웨어가 필요하다.
그래서, 본 발명은 상술한 종래 기술에 따른 문제점을 해결하기 위해서 이루어진 것으로, 프로세서나 메모리의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증할 수 있는 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치를 제공하는 것을 목적으로 하고 있다.
[발명의 개시]
본 발명은 코드가 저장되는 메모리를 관리하여, 코드를 프로세서에 의해 실행시키기 위해, 해당 실행 대상이 되는 코드가 기억되어 있는 메모리가 유효함을 설정하는 메모리 관리 유닛으로서, 코드의 정당성을 검증하기 위해서 이용되는 검증 키를 검증 키 저장 수단에 저장한다. 그리고, 코드가 메모리에 저장되어 프로세서에 의한 실행이 가능해진 경우에, 검증 키 저장 수단에 의해 저장된 검증 키 및 코드에 부여된 검증 정보를 이용하여 코드의 정당성을 검증하여, 정당성이 검증된 경우에는 메모리가 유효함을 설정하고, 정당성이 검증되지 않은 경우에는 메모리가 유효함을 설정하지 않도록 제어한다.
이 때문에, 본 발명에 따르면, 인스톨 전 혹은 인스톨 후에 악의를 가진 제삼자에 의해서 개찬되었기 때문에, 안전성에 문제가 있는 코드에 대해서는 코드의 실행 직전(즉, 가상 페이지로부터 물리 페이지로의 어드레스 변환을 유효로 하는 타이밍)에서, 악의를 가진 제삼자에게는 손이 닿지 않는 하드웨어인 메모리 관리 유닛에 의해 코드가 정당하지 않음이 확실하게 검증되기 때문에, 프로세서에 의한 실행을 회피할 수 있다. 또한, 이러한 검증 기능을 갖는 메모리 관리 유닛은 프로세서나 메모리의 아키텍처를 변경할 필요가 없기 때문에, 검증 기능을 갖는 프로세서나 메모리를 개발하는 것에 비해 간단히 개발할 수 있다. 따라서, 프로세서나 메모리의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능해진다.
또한, 본 발명은 코드가 저장되는 메모리를 관리하고, 코드를 프로세서에 의해 실행시키기 위해, 해당 실행 대상이 되는 코드가 기억되어 있는 메모리가 유효함을 설정하는 메모리 관리 유닛으로서, 암호화된 코드를 복호하기 위해서 이용되는 복호 키를 복호 키 저장 수단에 저장한다. 그리고, 암호화된 코드가 메모리에 저장된 경우에, 해당 메모리로부터 암호화된 코드를 판독하고, 복호 키 저장 수단에 의해서 저장된 복호 키를 이용하여 복호하고, 메모리에 재저장하고, 또한, 복호된 코드가 재저장된 메모리가 유효함을 설정한다.
이 때문에, 본 발명에 따르면, 코드의 실행 직전에서, 악의를 가진 제삼자에게는 손이 닿지 않는 하드웨어인 메모리 관리 유닛에 따라, 암호화된 코드가 복호되기 때문에, 복호된 코드에 대해서는 정당성이 담보된 코드(인스톨 전 혹은 인스톨 후에 있어서의 악의를 가진 제삼자에 의한 개찬이 없던 코드)로서 실행할 수 있다. 또한, 이러한 복호 기능을 갖는 메모리 관리 유닛은 프로세서나 메모리의 아키텍처를 변경할 필요가 없기 때문에, 복호 기능을 갖는 프로세서나 메모리를 개발 하는 것에 비해 간단히 개발할 수 있다. 따라서, 프로세서나 메모리의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능해진다.
또한, 본 발명의 메모리 관리 유닛은 프로세서에 의한 코드의 실행 시에, 해당 프로세서로부터 입력된 가상 어드레스를 메모리 상의 어드레스인 물리 어드레스로 변환하여, 해당 변환한 물리 어드레스를 메모리에 대하여 출력하는 것이다.
이 때문에, 본 발명에 따르면, 퍼스널 컴퓨터, 워크 스테이션 또는 이동체 통신 단말기 등, 가상 어드레스로부터 물리 어드레스로의 어드레스 변환을 행하는 정보 처리 장치에 적용하여, 이러한 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능해진다.
또한, 본 발명의 메모리 관리 유닛은 프로세서에 의한 코드의 실행 시에, 해당 프로세서로부터 입력된 가상 어드레스를 메모리 상의 어드레스인 물리 어드레스로서 메모리에 대하여 출력하는 것이다.
이 때문에, 본 발명에 따르면, PHS 단말기, 휴대 단말기 또는 PDA 등, 가상 어드레스로부터 물리 어드레스로의 어드레스 변환을 행하지 않는 정보 처리 장치에 적용하여, 이러한 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능해진다.
또한, 본 발명에서 코드는 기계어에 의해서 기술되고, 프로세서로서의 CPU에 의해 해석되어 실행되는 프로그램이다.
이 때문에, 본 발명에 따르면, 정보 처리 장치상에서 기본 소프트웨어로서 실행되는 매우 중요한 코드에 대하여 프로세서나 메모리의 아키텍처를 변경하지 않고, 정당성을 간단하고 확실하게 보증하는 것이 가능해진다.
또한, 본 발명은 메모리에 저장되어 프로세서에 의해 실행되는 코드의 정당성을 해당 코드에 부여된 검증 정보에 기초하여 검증하는 코드 검증 장치에서, 코드의 정당성을 검증하기 위해서 검증 정보에 대응하여 이용되는 검증 키를 검증 키 저장 수단에 저장한다. 그리고, 코드가 메모리에 저장되어 프로세서에 의한 실행이 가능해진 경우에, 검증 키 저장 수단에 의해서 저장된 검증 키 및 코드에 부여된 검증 정보를 이용하여 코드의 정당성을 검증하여, 정당성이 검증된 경우에는 프로세서에 의한 코드의 실행을 허가하고, 정당성이 검증되지 않은 경우에는 프로세서에 의한 코드의 실행을 거절한다.
이 때문에, 본 발명에 따르면, 프로세서나 메모리의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능해진다.
또한, 본 발명은 메모리에 저장되어 있는 암호화된 코드를 프로세서에 의해 실행시키기 위해 복호하는 코드 복호 장치로서, 암호화된 코드를 복호하기 위해 이용되는 복호 키를 복호 키 저장 수단에 저장한다. 그리고, 암호화된 코드가 메모리에 저장된 경우에 해당 메모리로부터 암호화된 코드를 판독하고, 복호 키 저장 수단에 의해서 저장된 복호 키를 이용하여 복호하여 메모리에 재저장하고, 또한, 복호되어 메모리에 재저장된 코드를 실행하도록 프로세서를 제어한다.
이 때문에, 본 발명에 따르면, 프로세서나 메모리의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능해진다.
도 1은 본 실시 형태 1에 따른 메모리 관리 유닛이 적용되는 시스템의 구성을 도시하는 블록도.
도 2는 본 실시 형태 1에 따른 메모리 관리 유닛의 구성을 도시하는 블록도.
도 3은 본 실시 형태 1에 있어서의 어드레스 공간을 설명하기 위한 도면.
도 4는 본 실시 형태 1에 있어서의 시스템의 처리를 설명하기 위한 흐름도.
도 5는 본 실시 형태 2에 따른 메모리 관리 유닛의 구성을 도시하는 블록도.
도 6은 본 실시 형태 2에 있어서의 어드레스 공간을 설명하기 위한 도면.
도 7은 본 실시 형태 3에 따른 메모리 관리 유닛이 적용되는 시스템의 구성을 도시하는 블록도.
도 8은 본 실시 형태 3에 따른 메모리 관리 유닛의 구성을 도시하는 블록도.
도 9는 본 실시 형태 3에 있어서의 시스템의 처리를 설명하기 위한 흐름도.
도 10은 본 실시 형태 4에 따른 메모리 관리 유닛의 구성을 도시하는 블록도.
<발명을 실시하기 위한 최량의 형태>
이하, 첨부 도면을 참조하여, 본 발명에 따른 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치의 바람직한 실시 형태를 상세히 설명한다. 또한, 이하에 서는, 실시 형태 1~4로서, 본 발명에 따른 메모리 관리 유닛에 대해 여러가지 실시 형태를 설명한 후에, 다른 실시 형태로서 본 발명에 따른 코드 검증 장치 및 코드 복호 장치 및 여러가지 변형예를 설명하고, 마지막으로 본 발명의 효과를 설명한다.
(실시 형태 1)
본 실시 형태 1에서는, 퍼스널 컴퓨터, 워크스테이션 또는 이동체 통신 단말기 등의 정보 처리 단말기에 통상 탑재되는 메모리 관리 유닛(MMU : Memory Management Unit)에 프로세서에 의해 실행되는 코드의 정당성을 검증하기 위한 검증 기능을 추가한 경우를 설명한다. 또한, 여기서는, 본 실시 형태 1에 따른 메모리 관리 유닛이 적용되는 시스템의 개요 및 주된 특징을 설명한 후에, 메모리 관리 유닛의 구성을 설명하고, 마지막으로, 이 시스템에 따른 처리 순서를 설명하는 것으로 한다.
[실시 형태 1: 시스템의 개요 및 주된 특징]
우선 최초로, 본 실시 형태 1에 따른 메모리 관리 유닛이 적용되는 시스템의 개요 및 주된 특징을 설명한다. 도 1은 본 실시 형태 1에 따른 메모리 관리 유닛이 적용되는 시스템의 구성을 나타내는 블록도이다. 도 1에 도시한 바와 같이, 이 시스템은 퍼스널 컴퓨터, 워크 스테이션 또는 이동체 통신 단말기 등의 정보 처리 단말기의 일부분으로서, 프로세서(1)와, 메모리(2) 및 검증 정보용 메모리(3) 사이에 메모리 관리 유닛(10)을 설치하고, 이들을 어드레스 버스(4) 및 데이터 버스(5)에 의해서 접속하여 구성된다.
이 중, 프로세서(1)는 메모리(2)에 저장된 코드(기계어에 의해서 기술되고, CPU에 의해서 해석되어 실행되는 프로그램)를 실행하고, 이 실행 시에, 메모리(2)에 저장된 데이터를 기입 및 판독하는 처리부(예를 들면, CPU 등)이다. 또한, 메모리(2)는 프로세서(1)가 사용하는 코드나 데이터를 저장하는 기억부이다. 또한, 메모리 관리 유닛(10)은 메모리(2)를 관리하여, 주로, 코드를 프로세서(1)에 의해서 실행시키기 위해, 해당 실행 대상이 되는 코드가 기억되어 있는 메모리(2)가 유효함을 설정하는 처리부이다. 또한, 검증 정보용 메모리(3)는 후술하는 검증 정보를 저장하는 기억부이다.
여기서, 이 시스템에 따른 개략적인 처리의 흐름을 간단히 설명하면, 우선 최초로, 프로세서(1)는 메모리 관리 유닛(10)을 통해 메모리 할당 단위인 소정의 페이지(예를 들면, 4kbytes)마다 코드를 메모리(2)에 저장한다. 이어서, 메모리 관리 유닛(10)에 의해서 해당 코드가 저장된 메모리가 유효함이 설정되면, 프로세서(1)는 해당 코드에 대응하는 가상 어드레스를 메모리 관리 유닛(10)에 출력한다. 그리고, 메모리 관리 유닛(10)은 프로세서(1)로부터 입력된 가상 어드레스를 메모리(2)상의 어드레스인 물리 어드레스로 변환하여 메모리(2)에 대하여 출력하고, 이에 의해, 메모리(2)상의 대응하는 코드가 프로세서(1)에 의해서 실행되게 된다.
이처럼, 도 1에 도시한 시스템은 개략적으로, 메모리(2)에 저장된 코드를 프로세서(1)에 의해서 실행하는 것이지만, 이 코드에는 코드의 정당성을 검증하기 위해 이용되는 검증 정보(예를 들면, 전자 서명이나 전자 증명서 등)가 부여되어 있다. 즉, 이 시스템은 메모리 관리 유닛(10)이 코드에 부여된 검증 정보를 이용하 여 코드의 정당성을 검증함으로써, 프로세서(1)나 메모리(2)의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증할 수 있도록 하고 있는 점에 주된 특징이 있다.
이 주된 특징을 간단히 설명하면, 메모리 관리 유닛(10)은 코드의 정당성을 검증하기 위해 이용되는 검증 키를 미리 기억하고 있다. 그리고, 프로세서(1)는 메모리(2)에 코드를 저장할 때, 해당 코드에 부여된 검증 정보를 검증 정보용 메모리(3)에 저장한다. 이렇게 하여, 메모리(2)에 저장된 코드에 대하여 프로세서(1)에 의한 실행이 가능해진 경우에, 메모리 관리 유닛(10)은 미리 기억한 검증 키 및 검증 정보용 메모리(3)에 저장된 검증 정보를 이용하여 코드의 정당성을 검증한다. 그리고, 정당성이 검증된 경우에는 메모리(2)가 유효함을 설정하고, 정당성이 검증되지 않은 경우에는 메모리(2)가 유효함을 설정하지 않도록 제어한다.
이 때문에, 인스톨 전 혹은 인스톨 후에 악의를 가진 제삼자에 의해서 개찬되었기 때문에, 안전성에 문제가 있는 코드에 대해서는 코드의 실행 직전(즉, 가상 페이지로부터 물리 페이지로의 어드레스 변환을 유효로 하는 타이밍)에, 악의를 가진 제삼자에게는 손이 닿지 않는 하드웨어인 메모리 관리 유닛(10)에 의해서 코드가 정당하지 않음이 확실하게 검증되기 때문에, 프로세서(1)에 의한 실행을 회피할 수 있다. 또한, 이러한 검증 기능을 갖는 메모리 관리 유닛(10)은 프로세서(1)나 메모리(2)의 아키텍처를 변경할 필요가 없기 때문에, 검증 기능을 갖는 프로세서(1)나 메모리(2)를 개발하는 것에 비해 간단히 개발할 수 있다.
이러한 것으로부터, 본 실시 형태 1에 따른 메모리 관리 유닛(10)에 따르면, 프로세서(1)나 메모리(2)의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증할 수 있다고 하는 상기한 주된 특징이 발휘되게 된다.
여기서, 메모리 관리 유닛(10)의 구성의 설명에 들어가기 전에, 본 실시 형태 1에 있어서의 어드레스 공간을 간단히 설명한다. 도 3은 본 실시 형태 1에 있어서의 어드레스 공간을 설명하기 위한 도면이다. 본 실시 형태 1에 따른 메모리 관리 유닛(10)은 프로세서(1)에 의한 코드의 실행 시에, 프로세서(1)로부터 입력된 가상 어드레스를 메모리(2)상의 어드레스인 물리 어드레스로 변환하여, 해당 변환한 물리 어드레스를 메모리(2)에 대하여 출력하는 것이다. 즉, 본 실시 형태 1에 따른 메모리 관리 유닛(10)이 적용되는 정보 처리 장치는 퍼스널 컴퓨터, 워크스테이션 또는 이동체 통신 단말기 등, 가상 어드레스로부터 물리 어드레스로의 어드레스 변환을 행하는 시스템이다.
그리고, 본 실시 형태 1에 있어서의 어드레스 공간은 예를 들면, 도 3에 도시한 바와 같이, 가상 어드레스 공간의 상위 절반이, 어드레스 변환된 후에 메모리(2)에 할당되고(예를 들면, 4kbytes 마다 할당되고), 가상 어드레스 공간의 하위 절반이 어드레스 변환되지 않고서, 검증 정보용 메모리(3)에 할당됨으로써 형성된다. 단, 도 3에서는, 설명의 편의를 위해 가상 어드레스 공간을 상위와 하위 절반으로 나누고 있고, 또한, 통상은 어드레스 변환되지 않고서 메모리(2)상에 위치하는 OS(Operating System)를 생략하고 있다.
또한, 도 1에 도시한 시스템에 있어서는, 메모리(2)와 검증 정보용 메모리 (3)를 따로따로 설치하고 있는데, 특정한 I/0 포트에 값을 출력함으로써 메모리(2)의 일부가 검증 정보용 메모리(3)로 교체되도록(즉, 뱅크 전환 형식으로서), 시스템을 구성하도록 해도 좋고, 또한, 검증 정보용 메모리(3)를 메모리 공간이 아닌 I/0 공간에 할당하도록 구성해도 된다.
또한, 본 실시 형태 1에서는, 메모리(2)의 할당 단위인 단위 메모리를 4kbytes 고정 길이의 페이지로서 설명하고 있는데, 이 단위 메모리를 가변 길이로 하여도 되고, 또한, 메모리(2) 전체를 하나의 단위 메모리로서 해도 된다.
[실시 형태 1: 메모리 관리 유닛의 구성]
이어서, 도 1에 도시한 메모리 관리 유닛(10)의 구성을 설명한다. 도 2는 본 실시 형태 1에 따른 메모리 관리 유닛(10)의 구성을 나타내는 블록도이다. 도시한 바와 같이, 이 메모리 관리 유닛(10)은 페이지 테이블(11)과, 어드레스 변환부(12)와, 실행/유효 비트 설정부(13)와, 검증 키 설정부(14)와, 검증 키 유지부(15)와, 검증부(16)로 이루어진다. 또, 검증 키 유지부(15)는 청구의 범위에 기재된 「검증 키 저장 수단」에 대응하고, 검증부(16)는 청구의 범위에 기재된 「검증 수단」에 대응하고, 실행/유효 비트 설정부(13)는 청구의 범위에 기재된 「 제어 수단」에 대응한다.
이 중, 페이지 테이블(11)은 프로세서(1)에 의한 코드의 저장에 있어서, 프로세서(1)에 획득되는 복수의 엔트리로 이루어지는 테이블이다. 그리고, 이 엔트리는 메모리 할당 단위인 4kbytes의 페이지마다 준비되고, 도 2에 도시한 바와 같이, 시점 가상 어드레스, 시점 물리 어드레스, 실행 비트 및 유효 비트로 이루어진 다.
즉, 엔트리란, 「시점 물리 어드레스」로부터 시작되는 4kbytes의 물리 페이지가 「시점 가상 어드레스」로부터 시작되는 4kbytes의 가상 페이지에 대응되고 있는 것을 나타내는 것이다. 그리고, 「실행 비트」는 대응하는 물리/가상 페이지에 데이터가 아닌 코드가 저장되어 있는 것을 나타내고, 또한, 「유효 비트」는 대응하는 물리/가상 페이지가 유효함을 나타내는 것이다. 또한, 페이지는 고정 길이가 아닌 가변 길이어도 되는데, 이 경우에는 엔트리에 사이즈를 나타내는 정보를 저장하게 된다.
어드레스 변환부(12)는 페이지 테이블(11)에 따라서 가상 어드레스를 물리 어드레스로 변환하는 처리부이다. 구체적으로는, 프로세서(1)에 의한 코드의 실행 시에, 프로세서(1)로부터 입력된 가상 어드레스에 해당하는 엔트리를 페이지 테이블(11)로부터 검색하고, 해당하는 엔트리가 존재하는 경우에는 대응하는 물리 어드레스로 변환하여 메모리(2)에 대하여 출력하고, 한편, 해당하는 엔트리가 존재하지 않는 경우에는 프로세서(1)에 대하여 어드레스 변환 예외를 통지한다.
또한, 페이지 테이블(11)의 해당 엔트리에서, 실행 비트 및 유효 비트가 설정되어 있는 경우에는 대응하는 물리/가상 페이지로의 코드(기계어 명령) 페치를 위한 판독만을 허가하고, 기입이나 데이터 액세스를 위한 기입 및 판독은 허가하지 않도록 동작한다.
실행/유효 비트 설정부(13)는 후술하는 검증부(16)에 의한 검증 결과에 따라, 페이지 테이블(11)의 대응하는 엔트리 내의 실행 비트 및 유효 비트를 설정하 는 처리부이다. 구체적으로는, 검증부(16)에 의해서 코드의 정당성이 검증된 경우에는 실행 비트 및 유효 비트가 설정되고(검증 대상의 코드가 저장된 물리/가상 페이지가 유효함이 설정되고), 프로세서(1)에 의한 코드의 실행이 허가된다. 또한, 검증부(16)에 의해서 코드의 정당성이 검증되지 않은 경우에는 실행 비트 및 유효 비트는 설정되지 않고, 프로세서(1)에 의한 코드의 실행은 거절되게 된다.
검증 키 설정부(14)는 검증 키 유지부(15)에 대하여, 메모리 관리 유닛(10)의 외부로부터 검증 키의 출납을 행하는 처리부이고, 검증 키 유지부(15)는 검증부(16)에 의한 코드의 검증에 이용되는 검증 키를 유지하는 기억부이고, 검증부(16)는 코드가 메모리(2)에 저장되어 프로세서(1)에 의한 실행이 가능하게 된 경우에, 검증 키 유지부(15)에 기억된 검증 키 및 검증 정보용 메모리(3)에 저장된 검증 정보를 이용하여 코드의 정당성을 검증하는 처리부이다.
즉, 검증부(16)는 페이지 테이블(11)의 소정의 엔트리에 대하여, 프로세서(1)로부터 실행/유효 비트의 설정 지시를 받으면, 메모리(2)의 대응하는 물리 페이지 상의 코드에 부여되어 있는 검증 정보를 검증 정보용 메모리(3)로부터 판독함과 함께, 이 코드에 대응하는 검증 키를 검증 키 유지부(15)로부터 판독하고, 이 검증 정보 및 검증 키를 이용하여 정당성이 보증된 안전한 코드인지의 여부를 검증한다. 또, 검증 방식이나 검증 키에 대해서는, 예를 들면, 공개 키 기술에 기초하는 전자 서명이나 증명서에 포함되는 공개 키 등, 코드가 제삼자에 의해서 개찬되어 있지 않음을 보증할 수 있는 모든 방법을 채용할 수 있다.
그리고, 검증부(16)는 코드가 정당함을 검증한 경우에는, 실행/유효 비트 설 정부(13)에 대하여 실행/유효 비트의 설정을 지시하고, 한편, 코드가 정당함이 검증되지 않은 경우에는, 실행/유효 비트 설정부(13)에 대하여 실행/유효 비트의 설정을 지시하지 않고, 프로세서(1)에 대하여 예외를 통지한다. 이와 같이, 프로세서(1)에 예외가 통지된 경우에는 프로세서(1)에 의한 코드의 실행은 거절되게 된다.
또, 최근의 시스템은 복수의 태스크(프로그램)를 외관상은 병행하여, 즉 멀티 태스크로 동작시키는 경우가 많은데, 이러한 경우에는 태스크의 전환시에 검증 키 설정부(14)의 제어에 의해서, 검증 키 유지부(15)에 저장되어 있는 검증 키를 태스크에 따른 검증 키로 교체하게 된다.
[실시 형태 1: 시스템에 따른 처리 순서]
이어서, 본 실시 형태 1에 있어서의 시스템에 따라 실행되는 처리 순서를 설명한다. 또, 여기서는, 시스템의 처리로서 프로세서(1)에 의해서 코드가 메모리(2)에 저장되고, 메모리 관리 유닛(10)에 의해서 실행/유효 비트가 설정되기까지의 처리를 설명한다.
도 4는 본 실시 형태 1에 있어서의 시스템의 처리를 설명하기 위한 흐름도이다. 도 4에 도시한 바와 같이, 우선 최초로, 프로세서(1)는 메모리 관리 유닛(10)의 페이지 테이블(11)로부터 미사용 엔트리를 획득함과 함께, 메모리(2)로부터는 미사용 물리 페이지를 획득한다(단계 S401 및 S402). 그리고, 프로세서(1)는 획득한 엔트리에 시점 가상 어드레스 및 시점 물리 어드레스를 설정한다(단계 S403).
이어서, 프로세서(1)는 하드디스크 등의 데이터 기억부(디스크)로부터 코드 를 판독하고, 이 코드를 단계 S402에서 획득한 물리 페이지에 저장함과 함께, 이 코드에 부여되어 있는 검증 정보를 검증 정보용 메모리(3)에 저장한다(단계 S 404 및 S405). 그리고, 프로세서(1)는 메모리 관리 유닛(10)에 대하여, 실행/유효 비트의 설정을 지시한다(단계 S406).
한편, 이러한 설정 지시를 받은 메모리 관리 유닛(10)은 설정 지시에 따른 코드에 대응하는 검증 정보를 검증 정보용 메모리(3)로부터 판독함과 동시에, 이 검증 정보에 대응하는 검증 키를 검증 키 유지부(15)로부터 판독한다(단계 S407 및 S408). 그리고, 메모리 관리 유닛(10)의 검증부(16)는 판독한 검증 정보 및 검증 키를 이용하여 설정 지시에 따른 코드의 정당성을 검증한다(단계 S409).
이 검증에 의해서, 코드가 정당함이 검증된 경우에는(단계 S410 긍정), 검증부(16)는 실행/유효 비트 설정부(13)에 대하여 실행/유효 비트의 설정을 지시하고, 실행/유효 비트 설정부(13)는 검증 대상의 코드에 관한 페이지 테이블(11) 내의 엔트리에 있어서, 실행 비트 및 유효 비트를 설정한다(단계 S411). 이에 따라, 검증 대상인 코드에 대하여 프로세서(1)에 의한 실행이 허가되게 된다.
이와는 반대로, 코드가 정당함이 검증되지 않은 경우에는(단계 S410 부정), 검증부(16)는 실행/유효 비트 설정부(13)에 대하여 실행/유효 비트의 설정을 지시하지 않고, 프로세서(1)에 대하여 예외를 통지한다(단계 S412). 이에 따라, 검증 대상인 코드에 대하여 프로세서(1)에 의한 실행이 거절되게 된다.
상술한 바와 같이, 본 실시 형태 1에 따르면, 메모리 관리 유닛(10)은 코드의 정당성을 검증하기 위해서 이용되는 검증 키를 검증 키 유지부(15)에 저장한다. 그리고, 코드가 메모리(2)에 저장되어 프로세서(1)에 의한 실행이 가능하게 된 경우에, 검증 키 유지부(15)에 저장된 검증 키 및 코드에 부여된 검증 정보(검증 정보용 메모리(3)에 저장된 검증 정보)를 이용하여 코드의 정당성을 검증하여, 정당성이 검증된 경우에는 메모리(2)가 유효함을 설정하고, 정당성이 검증되지 않은 경우에는 메모리(2)가 유효함을 설정하지 않도록 제어한다. 따라서, 프로세서(1)나 메모리(2)의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능해진다.
(실시 형태 2)
그런데, 상기한 실시 형태 1에서는, 프로세서(1)에서 입력된 가상 어드레스를 물리 어드레스로 변환하여 메모리(2)에 대하여 출력하는 메모리 관리 유닛(10)을 설명하였는데, 본 발명은 이에 한정되는 것이 아니고, 프로세서(1)로부터 입력된 가상 어드레스를 변환하지 않고, 물리 어드레스로서 메모리(2)에 대하여 출력하는 메모리 관리 유닛에 대해서도 동일하게 적용할 수 있다.
즉, 상기 실시 형태 1에서는 퍼스널 컴퓨터, 워크스테이션 또는 이동체 통신 단말기 등, 가상 어드레스로부터 물리 어드레스로의 어드레스 변환을 행하는 정보 처리 장치에 적용되는 메모리 관리 유닛(10)을 설명했는데, PHS 단말기, 휴대 단말기 또는 PDA 등, 가상 어드레스로부터 물리 어드레스로의 어드레스 변환을 행하지 않는 정보 처리 장치에 대해서도 동일하게 적용할 수 있다.
그래서, 본 실시 형태 2에서는, 가상 어드레스로부터 물리 어드레스에의 어드레스 변환을 행하지 않는 시스템에 대하여 적용되는 메모리 관리 유닛을 설명한 다. 도 5는 본 실시 형태 2에 따른 메모리 관리 유닛의 구성을 나타내는 블록도이고, 도 6은 본 실시 형태 2에 있어서의 어드레스 공간을 설명하기 위한 도면이다. 또, 상기 실시 형태 1에 도시한 각 부와 같은 기능을 갖는 부위에는 동일 부호를 붙임으로써 그 상세한 설명을 생략한다.
본 실시 형태 2에 따른 메모리 관리 유닛(20)은 상기한 바와 같이, 프로세서(1)로부터 입력된 가상 어드레스를 변환하지 않고, 물리 어드레스로서 메모리(2)에 대하여 출력하는 것이다. 즉, 도 6에 도시한 바와 같이, 본 실시 형태 2에 있어서의 어드레스 공간은 도 2에 도시한 실시 형태 1에 있어서의 어드레스 공간과 상이하고, 가상 어드레스와 물리 어드레스가 일치하고 있다.
또한, 메모리 관리 유닛(20)은 도 5에 도시한 바와 같이, 가상 어드레스를 물리 어드레스로 변환하는 처리부(도 2에 도시한 어드레스 변환부(12))가 존재하지 않고, 페이지 테이블(21)의 각 엔트리에 있어서도 시점 가상 어드레스가 존재하지 않고, 시점 물리 어드레스만이 존재한다. 페이지 테이블(21) 내의 엔트리는 물리 페이지의 개수만큼 존재하게 된다.
따라서, 이 메모리 관리 유닛(20)은 프로세서(1)에 의한 코드의 실행 시에, 프로세서(1)로부터 입력된 가상 어드레스를 메모리(2)상의 어드레스인 물리 어드레스로서 메모리(2)에 대하여 출력하게 된다. 이 메모리 관리 유닛(20)에 의한 검증 처리는 도 4에 도시한 메모리 관리 유닛(10)에 의한 처리(단계 S407∼S412)와 동일하다.
이와 같이, 본 실시 형태 2에 따른 메모리 관리 유닛(20)에 따르면, PHS 단 말기, 휴대 단말기 또는 PDA 등, 가상 어드레스로부터 물리 어드레스로의 어드레스 변환을 행하지 않는 정보 처리 장치에 대해서도, 프로세서(1)나 메모리(2)의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능해진다.
(실시 형태 3)
그런데, 상기한 실시 형태 1 및 2에서는, 코드의 실행전에 코드의 정당성을 검증하는 메모리 관리 유닛(10 또는 20)에 의해 코드의 정당성을 간단하고 확실하게 보증하는 경우를 설명하였는데, 미리 암호화된 코드를 실행전에 복호함으로써도 실시 형태 1 및 2과 같이 코드의 정당성을 간단하고 확실하게 보증할 수 있다.
그래서, 본 실시 형태 3에서는, 미리 암호화된 코드를 실행전에 복호함으로써, 코드의 정당성을 간단하고 확실하게 보증하는 메모리 관리 유닛을 설명한다. 또, 여기서는, 본 실시 형태 3에 따른 메모리 관리 유닛이 적용되는 시스템의 개요 및 주된 특징을 설명한 후에, 메모리 관리 유닛의 구성을 설명하고, 마지막으로, 이 시스템에 따른 처리 순서를 설명하기로 한다.
[실시 형태 3: 시스템의 개요 및 주된 특징]
우선 최초로, 본 실시의 형태 3에 따른 메모리 관리 유닛이 적용되는 시스템의 개요 및 주된 특징을 설명한다. 도 7은 본 실시 형태 3에 따른 메모리 관리 유닛이 적용되는 시스템의 구성을 나타내는 블록도이다. 도 7에 도시한 바와 같이, 이 시스템은, 프로세서(1)와 메모리(2) 사이에 메모리 관리 유닛(30)을 설치하고, 이들을 어드레스 버스(4) 및 데이터 버스(5)에 의해서 접속하여 구성된다. 또한, 상기 실시 형태 1에 나타낸 각 부와 같은 기능을 갖는 부위에는 동일 부호를 붙임으로써 그 상세한 설명을 생략한다.
이 도 7에 도시한 시스템은 개략적으로는, 도 1에 도시한 시스템과 같이, 메모리(2)에 저장된 코드를 프로세서(1)에 의해 실행하는 것이지만, 도 1에 도시한 시스템에 비해 검증 정보용 메모리(3)가 존재하지 않는 점과, 도시한 메모리 관리 유닛(10)과는 기능이 다른 메모리 관리 유닛(30)을 구비하는 점이 상이하다. 즉, 본 실시의 형태 3에서는, 코드가 미리 암호화되어 있고, 메모리 관리 유닛(30)이 미리 암호화된 코드를 복호함으로써, 프로세서(1)나 메모리(2)의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증할 수 있도록 하고 있는 점에 주된 특징이 있다.
이 주된 특징을 간단히 설명하면, 메모리 관리 유닛(30)은 암호화된 코드를 복호하기 위한 복호 키를 미리 기억하고, 프로세서(1)가 메모리(2)에 암호화된 코드를 저장한 경우에는 이 저장된 코드에 대하여 복호 키에 의한 복호를 시행한다. 그리고, 이 복호된 코드를 메모리(2)에 재저장함과 함께, 메모리(2)가 유효함을 설정함으로써 프로세서(1)에 의한 코드의 실행을 허가한다. 또, 암호화된 코드가 복호되지 않은 경우에는 메모리(2)가 유효함이 설정되지 않고, 프로세서(1)에 의한 코드의 실행은 거절되게 된다.
이 때문에, 코드의 실행 직전(즉, 가상 페이지로부터 물리 페이지로의 어드레스 변환을 유효로 하는 타이밍)에서, 악의를 가진 제삼자에게는 손이 닿지 않는 하드웨어인 메모리 관리 유닛(30)에 의해서 암호화된 코드가 복호되기 때문에, 복 호된 코드에 대해서는 정당성이 담보된 코드(인스톨 전 혹은 인스톨 후에 있어서의 악의를 가진 제삼자에 의한 개찬이 되지 않은)로서 실행하는 것이 가능하다. 또한, 이러한 복호 기능을 갖는 메모리 관리 유닛(30)은 프로세서(1)나 메모리(2)의 아키텍처를 변경할 필요가 없기 때문에, 복호 기능을 갖는 프로세서(1)나 메모리(2)를 개발하는 것에 비해 간단히 개발할 수 있다.
이러한 것에 의해, 본 실시 형태 3에 따른 메모리 관리 유닛(30)에 따르면, 프로세서(1)나 메모리(2)의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증할 수 있다고 하는 상기 주된 특징이 실시 형태 1 및 2에 따른 메모리 관리 유닛(10, 20)과 같이 발휘되게 된다.
또한, 본 실시의 형태 3에 따른 메모리 관리 유닛(30)은 상기 실시 형태 1에 따른 메모리 관리 유닛(10)과 마찬가지로, 프로세서(1)로부터 입력된 가상 어드레스를 물리 어드레스로 변환하여 메모리(2)에 대하여 출력하는 것이다. 즉, 이 메모리 관리 유닛(30)은 퍼스널 컴퓨터, 워크스테이션 또는 이동체 통신 단말기 등, 가상 어드레스로부터 물리 어드레스에의 어드레스 변환을 행하는 정보 처리 장치에 적용되고, 본 실시 형태 3에 있어서의 어드레스 공간은 도 3에 도시한 것과 같이 된다.
[실시 형태 3: 메모리 관리 유닛의 구성]
이어서, 도 7에 도시한 메모리 관리 유닛(30)의 구성을 설명한다. 도 8은 본 실시 형태 3에 따른 메모리 관리 유닛(30)의 구성을 나타내는 블록도이다. 도시한 바와 같이, 이 메모리 관리 유닛(30)은 페이지 테이블(31)과, 어드레스 변환 부(32)와, 실행/유효 비트 설정부(33)와, 복호 키 설정부(34)와, 복호 키 유지부(35)와, 복호부(36)로 이루어진다. 또한, 복호 키 유지부(35)는 청구의 범위에 기재된 「복호 키 저장 수단」에 대응하고, 복호부(36)는 청구의 범위에 기재된 「복호 수단」에 대응하고, 실행/유효 비트 설정부(33)는 청구의 범위에 기재된 「제어 수단」에 대응한다.
이 중, 페이지 테이블(31) 및 어드레스 변환부(32)는 상기 실시 형태 1로 설명한 페이지 테이블(11) 및 어드레스 변환부(12)와 각각 동일한 기능을 완수하는 것이다.
실행/유효 비트 설정부(33)도, 상기 실시 형태 1에서 설명한 실행/유효 비트 설정부(13)와 거의 동일한 기능을 완수하는 것이지만, 복호부(36)의 처리에 따라, 페이지 테이블(31)의 대응하는 엔트리 내의 실행 비트 및 유효 비트를 설정하는 점이 서로 다르다. 즉, 실행/유효 비트 설정부(33)는 복호부(36)에 의해서 코드가 복호되고, 복호된 코드가 메모리(2)에 재저장되면, 페이지 테이블(31)의 대응하는 엔트리 내의 실행 비트 및 유효 비트를 설정한다(복호된 코드가 저장된 물리/가상페이지가 유효함을 설정한다).
복호 키 설정부(34)는 복호 키 유지부(35)에 대하여, 메모리 관리 유닛(30)의 외부로부터 복호 키의 입출력을 행하는 처리부이고, 복호 키 유지부(35)는 암호화된 코드의 복호에 이용되는 복호 키를 유지하는 기억부이고, 복호부(36)는 암호화된 코드가 메모리(2)에 저장된 경우에, 복호 키 유지부(35)에 기억된 복호 키를 이용하여 암호화된 코드를 복호하는 처리부이다.
즉, 복호부(36)는 페이지 테이블(31)의 소정의 엔트리에 대하여, 프로세서(1)로부터 실행/유효 비트의 설정 지시를 받으면, 메모리(2)의 대응하는 물리 페이지상의 암호화된 코드를 판독함과 함께, 이 코드에 대응하는 복호 키를 복호 키 유지부(35)로부터 판독하여, 암호화된 코드를 복호 키를 이용하여 복호한다. 또, 암호화 및 복호화의 방식에 대해서는, 예를 들면, 소위 공통 키 암호 방식, 공개 키 암호 방식 등, 임의의 방법을 채용할 수 있다.
그리고, 복호부(36)는 코드를 복호한 경우에는 복호한 코드를 메모리(2)에 재저장함과 함께, 실행/유효 비트 설정부(33)에 대하여, 실행/유효 비트의 설정을 지시한다.
또한, 최근의 시스템은 복수의 태스크(프로그램)을 외관상은 병행하여, 즉 멀티 태스크로 동작시키는 경우가 많은데, 이러한 경우에는 태스크의 전환 시에 복호 키 설정부(34)의 제어에 의해서, 복호 키 유지부(35)에 저장되어 있는 복호 키를 태스크에 따른 복호 키로 교체하는 것이 된다.
[실시 형태 3: 시스템에 따른 처리 순서]
이어서, 본 실시 형태 3에 있어서의 시스템에 따라 실행되는 처리 순서를 설명한다. 또, 여기서는, 시스템의 처리로서, 암호화된 코드가 프로세서(1)에 의해서 메모리(2)에 저장되고, 메모리 관리 유닛(30)에 의해서 실행/유효 비트가 설정되기까지의 처리를 설명한다.
도 9는 본 실시 형태 3에 있어서의 시스템의 처리를 설명하기 위한 흐름도이다. 도 9에 도시한 바와 같이, 우선 최초로, 프로세서(1)는 메모리 관리 유닛(30) 의 페이지 테이블(31)로부터 미사용의 엔트리를 획득함과 함께, 메모리(2)로부터는 미사용의 물리 페이지를 획득한다(단계 S901 및 S902). 그리고, 프로세서(1)는 획득한 엔트리에 시점 가상 어드레스 및 시점 물리 어드레스를 설정한다(단계 S903).
이어서, 프로세서(1)는 하드디스크 등의 데이터 기억부(디스크)로부터 암호화된 코드를 판독하고, 이 암호화된 코드를 단계 S902에서 획득한 물리 페이지에 저장한다(단계 S904). 그리고, 프로세서(1)는 메모리 관리 유닛(30)에 대하여 실행/유효 비트의 설정을 지시한다(단계 S905).
한편, 이러한 설정 지시를 받은 메모리 관리 유닛(3O)은 설정 지시에 따른 코드에 대응하는 메모리(2)상의 물리 페이지로부터, 암호화된 코드를 판독함과 함께, 이 코드에 대응하는 복호 키를 복호 키 유지부(35)로부터 판독한다(단계 S906 및 S907). 그리고, 메모리 관리 유닛(30)의 복호부(36)는 암호화되어 있는 코드를 복호 키를 이용하여 복호한다(단계 S908).
이어서, 메모리 관리 유닛(30)의 복호부(36)는 복호한 코드를 메모리(2)에 재저장함과 함께, 실행/유효 비트 설정부(33)에 대하여, 실행/유효 비트의 설정을 지시하고(단계 S909), 실행/유효 비트 설정부(33)는 복호 대상의 코드에 관한 페이지 테이블(31) 내의 엔트리에서, 실행 비트 및 유효 비트를 설정한다(단계 S910). 이에 따라, 복호 대상인 코드에 대하여 프로세서(1)에 의한 실행이 허가되게 된다.
상술한 바와 같이, 본 실시 형태 3에 따르면, 메모리 관리 유닛(30)은 암호화된 코드를 복호하기 위해서 이용되는 복호 키를 복호 키 유지부(35)에 저장한다. 그리고, 암호화된 코드가 프로세서(1)에 따라 메모리(2)에 저장된 경우에, 메모리 (2)로부터 암호화된 코드를 판독하고, 복호 키 유지부(35)에 저장된 복호 키를 이용하여 복호하여 메모리(2)에 재저장하고, 또한, 복호된 코드가 재저장된 메모리(2)가 유효함을 설정한다. 따라서, 상기한 실시 형태 1 및 2와 같이, 프로세서(1)나 메모리(2)의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능해진다.
(실시 형태 4)
그런데, 상기한 실시 형태 3에서는, 프로세서(1)로부터 입력된 가상 어드레스를 물리 어드레스로 변환하여 메모리(2)에 대하여 출력하는 메모리 관리 유닛(30)을 설명했지만, 본 발명은 이에 한정되는 것이 아니고, 프로세서(1)로부터 입력된 가상 어드레스를 변환하지 않고, 물리 어드레스로서 메모리(2)에 대하여 출력하는 메모리 관리 유닛에 대해서도 동일하게 적용할 수 있다. 즉, 상기 본 실시 형태 2와 같이, PHS 단말기, 휴대 단말기 또는 PDA 등, 가상 어드레스로부터 물리 어드레스로의 어드레스 변환을 행하지 않는 정보 처리 장치에 대해서도 동일하게 적용할 수 있다.
그래서, 본 실시 형태 4에서는, 가상 어드레스로부터 물리 어드레스로의 어드레스 변환을 행하지 않는 시스템에 대하여 적용되는 메모리 관리 유닛으로서, 상기 실시 형태 3과 마찬가지의 효과를 발휘하는 메모리 관리 유닛을 설명한다. 도 10은 본 실시 형태 4에 따른 메모리 관리 유닛의 구성을 나타내는 블록도이다. 또한, 상기 실시 형태 3에 나타낸 각 부와 같은 기능을 갖는 부분에는 동일 부호를 붙임으로써 그 상세한 설명을 생략한다.
본 실시 형태 4에 따른 메모리 관리 유닛(40)은 상기한 바와 같이, 프로세서(1)로부터 입력된 가상 어드레스를 변환하지 않고, 물리 어드레스로서 메모리(2)에 대하여 출력하는 것이다. 즉, 도 6에 도시한 바와 같이 본 실시 형태 4에 있어서의 어드레스 공간은 가상 어드레스와 물리 어드레스가 일치한 것이 된다.
또한, 메모리 관리 유닛(40)은 도 10에 도시한 바와 같이, 가상 어드레스를 물리 어드레스로 변환하는 처리부(도 8에 도시한 어드레스 변환부(32))가 존재하지 않고, 페이지 테이블(41)의 각 엔트리에서도, 시점 가상 어드레스가 존재하지 않고, 시점 물리 어드레스만이 존재한다. 또한, 페이지 테이블(41) 내의 엔트리는 물리 페이지의 개수만큼 존재하게 된다.
따라서, 이 메모리 관리 유닛(40)은 상기한 실시 형태 2에 따른 메모리 관리 유닛(20)과 같이, 프로세서(1)에 의한 코드의 실행 시에, 프로세서(1)로부터 입력된 가상 어드레스를 메모리(2)상의 어드레스인 물리 어드레스로서, 메모리(2)에 대하여 출력하게 된다. 또한, 이 관리 유닛(40)에 의한 복호 처리는 도 9에 도시한 메모리 관리 유닛(30)(실시 형태 3에 따른 메모리 관리 유닛(30))에 의한 처리(단계 S906∼S910)와 동일하다.
이와 같이, 본 실시 형태 4에 따른 메모리 관리 유닛(40)에 따르면, PHS 단말기, 휴대 단말기 또는 PDA 등, 가상 어드레스로부터 물리 어드레스로의 어드레스 변환을 행하지 않는 정보 처리 장치에 대해서도 상기한 실시 형태 3과 같이, 프로세서(1)나 메모리(2)의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능해진다.
(다른 실시 형태)
그런데, 지금까지 본 발명의 실시 형태에 대하여 설명했는데, 본 발명은 상술한 실시 형태 이외에도, 청구의 범위에 기재한 기술적 사상의 범위 내에서 여러가지 다른 실시 형태로서 실시되어도 되는 것이다.
예를 들면, 본 실시 형태 1 및 2에서는 메모리 관리 유닛(10 또는 20)에 검증 기능을 추가한 경우를 설명했는데, 본 발명은 이에 한정되는 것이 아니고, 검증 기능만을 담당하는 하드웨어(청구의 범위에 기재된 「코드 검증 장치」에 대응함)를 메모리 관리 유닛(10 또는 20)과는 별개로 설치하고, 이러한 하드웨어가 메모리 관리 유닛(10 또는 20)의 동작과 협동하여 코드의 검증을 행하도록 해도 된다.
이와 마찬가지로, 본 실시의 형태 3 및 4에서는 메모리 관리 유닛(30 또는 40)에 복호 기능을 추가한 경우를 설명했는데, 본 발명은 이에 한정되는 것이 아니고, 복호 기능만을 담당하는 하드웨어(청구의 범위에 기재된 「코드 복호 장치」에 대응함)를 메모리 관리 유닛(30 또는 40)과는 별개로 설치하고, 이러한 하드웨어가 메모리 관리 유닛(30 또는 40)의 동작과 협동하여 코드의 검증을 행하도록 해도 된다.
또한, 본 실시 형태에 있어서 설명한 각 처리 중, 자동적으로 행해지는 것으로서 설명한 처리의 전부 또는 일부를 수동적으로 행할 수도 있고, 혹은, 수동적으로 행해지는 것으로서 설명한 처리의 전부 또는 일부를 공지 방법으로 자동적으로 행할 수도 있다. 이 외에, 상기 설명이나 도면에 도시한 처리 순서, 제어 순서, 구체적 명칭, 각종 데이터나 파라미터를 포함하는 정보에 대해서는 특별히 언급하 는 경우를 제외하고 임의로 변경할 수 있다. 마찬가지로, 각종 입력용 화면의 내용에 대해서도 임의로 변경할 수 있다.
또한, 도시한 각 장치의 각 구성 요소는 기능 개념적인 것이고, 반드시 물리적으로 도시한 바와 같이 구성되어 있는 것을 요하지는 않는다. 즉, 각 장치의 분산·통합의 구체적 형태는 도시한 것에 한정되지 않고, 그 전부 또는 일부를 각종 부하나 사용 상황 등에 따라서 임의의 단위로 기능적 또는 물리적으로 분산·통합하여 구성할 수 있다. 또한, 각 장치에서 행해지는 각 처리 기능은 그 전부 또는 임의의 일부가 CPU 및 해당 CPU에서 해석 실행되는 프로그램으로서 실현되고, 혹은, 와이어드 로직에 의한 하드웨어로서 실현될 수 있다.
이상 설명한 바와 같이, 본 발명에 따르면, 인스톨 전 혹은 인스톨 후에 악의를 가진 제삼자에 의해서 개찬되었기 때문에, 안전성에 문제가 있는 코드에 대해서는 코드의 실행 직전(즉, 가상 페이지로부터 물리 페이지로의 어드레스 변환을 유효로 하는 타이밍)에 있어서, 악의를 가진 제삼자에게는 손이 닿지 않는 하드웨어인 메모리 관리 유닛에 따라서 코드가 정당하지 않음이 확실하게 검증되기 때문에, 프로세서에 의한 실행을 회피할 수 있다. 또한, 이러한 검증 기능을 갖는 메모리 관리 유닛은 프로세서나 메모리의 아키텍처를 변경할 필요가 없기 때문에, 검증 기능을 갖는 프로세서나 메모리를 개발하는 것에 비해 간단히 개발할 수 있다. 따라서, 프로세서나 메모리의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능한 메모리 관리 유닛이 얻어진다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, 코드의 실행 직전에서, 악의를 가진 제삼자에게는 손이 닿지 않는 하드웨어인 메모리 관리 유닛에 따라서 암호화된 코드가 복호되기 때문에, 복호된 코드에 대해서는 정당성이 담보된 코드(인스톨 전 혹은 인스톨 후에 있어서의 악의를 가진 제삼자에 의한 개찬이 없는 코드)로서 실행할 수 있다. 또한, 이러한 복호 기능을 갖는 메모리 관리 유닛은 프로세서나 메모리의 아키텍처를 변경할 필요가 없기 때문에, 복호 기능을 갖는 프로세서나 메모리를 개발하는 것에 비해 간단히 개발할 수 있다. 따라서, 프로세서나 메모리의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능한 메모리 관리 유닛이 얻어진다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, 퍼스널 컴퓨터, 워크스테이션 또는 이동체 통신 단말기 등, 가상 어드레스로부터 물리 어드레스로의 어드레스 변환을 행하는 정보 처리 장치에 적용하고, 이러한 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능한 메모리 관리 유닛이 얻어진다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, PHS 단말기, 휴대 단말기 또는 PDA 등, 가상 어드레스로부터 물리 어드레스로의 어드레스 변환을 행하지 않는 정보 처리 장치에 적용하고, 이러한 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능한 메모리 관리 유닛이 얻어진다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, 정보 처리 장치상에서 기본 소프트웨어로서 실행되는 매우 중요한 코드에 대하여, 프로세서나 메모리의 아키텍처를 변경하지 않고, 정당성을 간단하고 확실하게 보증하는 것이 가능한 메모리 관리 유닛이 얻어진다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, 프로세서나 메모리의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능한 코드 검증 장치가 얻어진다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, 프로세서나 메모리의 아키텍처를 변경하지 않고, 정보 처리 장치상에서 실행되는 코드의 정당성을 간단하고 확실하게 보증하는 것이 가능한 코드 복호 장치가 얻어진다고 하는 효과를 발휘한다.
이상과 같이, 본 발명에 따른 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치는, 퍼스널 컴퓨터, 워크스테이션, PHS 단말기, 휴대 단말기, 이동체 통신 단말기 또는 PDA 등, 프로세서에 의해 실행되는 코드의 정당성을 보증할 필요가 있는 정보 처리 장치에 적합하다.

Claims (7)

  1. 코드가 저장되는 메모리를 관리하고, 상기 코드를 프로세서에 의해 실행시키기 위해, 해당 실행 대상이 되는 코드가 기억되어 있는 메모리가 유효함을 설정하는 메모리 관리 유닛으로서,
    상기 코드의 정당성을 검증하기 위해 이용되는 검증 키를 저장하는 검증 키 저장 수단과,
    상기 코드가 상기 메모리에 저장되어 상기 프로세서에 의한 실행이 가능해진 경우, 상기 검증 키 저장 수단에 의해 저장된 검증 키 및 상기 코드에 부여된 검증 정보를 이용하여 상기 코드의 정당성을 검증하는 검증 수단과,
    상기 검증 수단에 의해 정당성이 검증된 경우에는 상기 메모리가 유효함을 설정하고, 상기 검증 수단에 의해 정당성이 검증되지 않은 경우에는 상기 메모리가 유효함을 설정하지 않도록 제어하는 제어 수단
    을 구비하는 것을 특징으로 하는 메모리 관리 유닛.
  2. 코드가 저장되는 메모리를 관리하고, 상기 코드를 프로세서에 의해 실행시키기 위해, 해당 실행 대상이 되는 코드가 기억되어 있는 메모리가 유효함을 설정하는 메모리 관리 유닛으로서,
    암호화된 코드를 복호하기 위해 이용되는 복호 키를 저장하는 복호 키 저장 수단과,
    상기 암호화된 코드가 상기 메모리에 저장된 경우에, 해당 메모리로부터 상기 암호화된 코드를 판독하고, 상기 복호 키 저장 수단에 의해 저장된 복호 키를 이용하여 복호하여 상기 메모리에 재저장하는 복호 수단과,
    상기 복호 수단에 의해 복호된 코드가 재저장된 상기 메모리가 유효함을 설정하는 제어 수단
    을 구비하는 것을 특징으로 하는 메모리 관리 유닛.
  3. 제1항 또는 제2항에 있어서,
    상기 메모리 관리 유닛은 상기 프로세서에 의한 코드의 실행 시에, 해당 프로세서로부터 입력된 가상 어드레스를 상기 메모리상의 어드레스인 물리 어드레스로 변환하여, 해당 변환된 물리 어드레스를 상기 메모리에 대해 출력하는 것을 특징으로 하는 메모리 관리 유닛.
  4. 제1항 또는 제2항에 있어서,
    상기 메모리 관리 유닛은 상기 프로세서에 의한 코드의 실행 시에, 해당 프로세서로부터 입력된 가상 어드레스를 상기 메모리상의 어드레스인 물리 어드레스로서 상기 메모리에 대해 출력하는 것을 특징으로 하는 메모리 관리 유닛.
  5. 제1항 또는 제2항에 있어서,
    상기 코드는 기계어에 의해 기술되고, 상기 프로세서로서의 CPU에 의해 해석 되어 실행되는 프로그램인 것을 특징으로 하는 메모리 관리 유닛.
  6. 메모리에 저장되어 프로세서에 의해 실행되는 코드의 정당성을, 해당 코드에 부여된 검증 정보에 기초하여 검증하는 코드 검증 장치로서,
    상기 코드의 정당성을 검증하기 위해 상기 검증 정보에 대응하여 이용되는 검증 키를 저장하는 검증 키 저장 수단과,
    상기 코드가 상기 메모리에 저장되어 상기 프로세서에 의한 실행이 가능해진 경우, 상기 검증 키 저장 수단에 의해 저장된 검증 키 및 상기 코드에 부여된 검증 정보를 이용하여 상기 코드의 정당성을 검증하는 검증 수단과,
    상기 검증 수단에 의해 정당성이 검증된 경우에는 상기 프로세서에 의한 상기 코드의 실행을 허가하고, 상기 검증 수단에 의해 정당성이 검증되지 않은 경우에는 상기 프로세서에 의한 상기 코드의 실행을 거절하는 제어 수단
    을 구비하는 것을 특징으로 하는 코드 검증 장치.
  7. 메모리에 저장되어 있는 암호화된 코드를 프로세서에 의해 실행시키기 위해 복호하는 코드 복호 장치로서,
    상기 암호화된 코드를 복호하기 위해 이용되는 복호 키를 저장하는 복호 키 저장 수단과,
    상기 암호화된 코드가 상기 메모리에 저장된 경우에, 해당 메모리로부터 상기 암호화된 코드를 판독하고, 상기 복호 키 저장 수단에 의해 저장된 복호 키를 이용하여 복호하여 상기 메모리에 재저장하는 복호 수단과,
    상기 복호 수단에 의해 복호되어 상기 메모리에 재저장된 코드를 실행하도록 상기 프로세서를 제어하는 제어 수단
    을 구비하는 것을 특징으로 하는 코드 복호 장치.
KR1020047015085A 2002-06-05 2002-06-05 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치 KR100619657B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/005564 WO2003104948A1 (ja) 2002-06-05 2002-06-05 メモリ管理ユニット、コード検証装置およびコード復号装置

Publications (2)

Publication Number Publication Date
KR20040105794A KR20040105794A (ko) 2004-12-16
KR100619657B1 true KR100619657B1 (ko) 2006-09-08

Family

ID=29727315

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047015085A KR100619657B1 (ko) 2002-06-05 2002-06-05 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치

Country Status (7)

Country Link
US (1) US7908450B2 (ko)
EP (1) EP1510899B1 (ko)
JP (1) JP4074620B2 (ko)
KR (1) KR100619657B1 (ko)
CN (1) CN1296790C (ko)
AU (1) AU2002306257A1 (ko)
WO (1) WO2003104948A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2849233B1 (fr) * 2002-12-24 2005-05-20 Trusted Logic Procede de securisation des systemes informatiques par confinement logiciel
US7444523B2 (en) * 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
US7350040B2 (en) * 2005-03-03 2008-03-25 Microsoft Corporation Method and system for securing metadata to detect unauthorized access
WO2007004219A2 (en) * 2005-07-04 2007-01-11 Discretix Technologies Ltd. System, device and method of verifying that a code is executed by a processor
US20070083770A1 (en) * 2005-09-17 2007-04-12 Technology Group Northwest Inc. System and method for foiling code-injection attacks in a computing device
US7657754B2 (en) * 2005-12-08 2010-02-02 Agere Systems Inc Methods and apparatus for the secure handling of data in a microcontroller
KR100969758B1 (ko) * 2007-01-22 2010-07-13 삼성전자주식회사 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치
US20090031142A1 (en) * 2007-07-25 2009-01-29 Shai Halevi System, Method and Computer Program Product for Processing a Memory Page
US8438385B2 (en) * 2008-03-13 2013-05-07 Fujitsu Limited Method and apparatus for identity verification
JP5374751B2 (ja) * 2008-07-31 2013-12-25 株式会社ハイパーテック メモリ管理方法
US20120331303A1 (en) * 2011-06-23 2012-12-27 Andersson Jonathan E Method and system for preventing execution of malware
TWI566564B (zh) * 2012-04-25 2017-01-11 Samton International Development Technology Co Ltd Virtual reality authentication circuit, system and electronic consumption method
US9715591B2 (en) * 2012-07-30 2017-07-25 Hewlett-Packard Development Company, L.P. Code validation
CN102999663B (zh) * 2012-11-19 2015-04-15 福州瑞芯微电子有限公司 一种soc芯片中的mmu的验证方法
JP6162652B2 (ja) 2014-06-20 2017-07-12 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP6584823B2 (ja) 2014-06-20 2019-10-02 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP6181004B2 (ja) 2014-06-20 2017-08-16 株式会社東芝 メモリ管理装置、プログラム、及び方法
US10303621B1 (en) * 2017-03-07 2019-05-28 Amazon Technologies, Inc. Data protection through address modification
JP2020027341A (ja) 2018-08-09 2020-02-20 キオクシア株式会社 ストレージ装置およびデータ改ざん検証方法
US11748271B2 (en) * 2020-04-15 2023-09-05 Micron Technology, Inc. Data security for memory and computing systems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4847902A (en) * 1984-02-10 1989-07-11 Prime Computer, Inc. Digital computer system for executing encrypted programs
JP3585510B2 (ja) * 1993-07-20 2004-11-04 株式会社東芝 プログラム実行管理装置及びプログラム実行管理方法
US5892944A (en) 1993-07-20 1999-04-06 Kabushiki Kaisha Toshiba Program execution and operation right management system suitable for single virtual memory scheme
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
GB9626241D0 (en) * 1996-12-18 1997-02-05 Ncr Int Inc Secure data processing method and system
JP3072722B2 (ja) * 1997-06-20 2000-08-07 ソニー株式会社 フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体
JP3593241B2 (ja) * 1997-07-02 2004-11-24 株式会社日立製作所 計算機の再起動方法
US5974536A (en) * 1997-08-14 1999-10-26 Silicon Graphics, Inc. Method, system and computer program product for profiling thread virtual memory accesses
US6003117A (en) 1997-10-08 1999-12-14 Vlsi Technology, Inc. Secure memory management unit which utilizes a system processor to perform page swapping
JP3713141B2 (ja) * 1998-05-19 2005-11-02 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムの不正実行防止方法
JP4051510B2 (ja) * 1998-07-16 2008-02-27 ソニー株式会社 データ記憶装置およびデータ記憶方法
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6745306B1 (en) * 1999-07-29 2004-06-01 Microsoft Corporation Method and system for restricting the load of physical address translations of virtual addresses
US6983374B2 (en) 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
JP3801833B2 (ja) * 2000-02-14 2006-07-26 株式会社東芝 マイクロプロセッサ
US6473844B1 (en) * 2000-04-29 2002-10-29 Hewlett-Packard Company System and method to protect vital memory space from non-malicious writes in a multi domain system
US7136982B2 (en) * 2001-11-09 2006-11-14 Danger, Inc. Apparatus and method for allocating memory blocks
US7080220B2 (en) * 2003-07-03 2006-07-18 International Business Machines Corporation Page replacement with a re-reference indicator

Also Published As

Publication number Publication date
CN1296790C (zh) 2007-01-24
EP1510899A1 (en) 2005-03-02
CN1625725A (zh) 2005-06-08
US7908450B2 (en) 2011-03-15
EP1510899A4 (en) 2007-06-27
JP4074620B2 (ja) 2008-04-09
EP1510899B1 (en) 2011-12-07
US20050033973A1 (en) 2005-02-10
WO2003104948A1 (ja) 2003-12-18
JPWO2003104948A1 (ja) 2005-10-13
KR20040105794A (ko) 2004-12-16
AU2002306257A1 (en) 2003-12-22

Similar Documents

Publication Publication Date Title
KR100619657B1 (ko) 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치
RU2456663C2 (ru) Прогрессивная начальная загрузка для беспроводного устройства
JP5175856B2 (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
US20190278583A1 (en) Method for updating firmware, terminal and computer readable non-volatile storage medium
US9652635B2 (en) Secure processor and a program for a secure processor
KR100692347B1 (ko) 플랫폼 구성 레지스터를 리세트하기 위한 시스템 및 방법
CN109800050B (zh) 一种虚拟机的内存管理方法、装置、相关设备及系统
CN100578473C (zh) 嵌入式系统和增加嵌入式系统安全性的方法
JP4850830B2 (ja) コンピュータシステム及びプログラム生成装置
US20080010686A1 (en) Confidential Information Processing Device
JPH10171648A (ja) アプリケーションを認証する装置
EP2151763A1 (en) Method and apparatus for obfuscating virtual to physical memory mapping
US7610488B2 (en) Data processing device and method and program of same
KR20090007123A (ko) 보안 부팅 방법 및 그 방법을 사용하는 반도체 메모리시스템
JP4551231B2 (ja) プログラム実行保護システム、プログラム実行保護方法
JP2004038394A (ja) 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
CN111201553B (zh) 一种安全元件及相关设备
US20090193261A1 (en) Apparatus and method for authenticating a flash program
JP4591163B2 (ja) バスアクセス制御装置
CN111382425B (zh) 多签名机制下的应用安装管理方法、智能终端及存储介质
JP2007109053A (ja) バスアクセス制御装置
JP2005149394A (ja) 情報処理装置および情報処理方法、プログラム、並びに記録媒体
CN117272377A (zh) 权限数据处理方法、装置及电子设备
CN116450237A (zh) Mcu上tee可信应用的多实例动态加载方法及装置
CN117852105A (zh) 基于硬件增强的芯片安全管理方法、装置、终端及介质

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
FPAY Annual fee payment

Payment date: 20120802

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130801

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140808

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee