KR101685633B1 - 메모리 시스템 - Google Patents

메모리 시스템 Download PDF

Info

Publication number
KR101685633B1
KR101685633B1 KR1020090000393A KR20090000393A KR101685633B1 KR 101685633 B1 KR101685633 B1 KR 101685633B1 KR 1020090000393 A KR1020090000393 A KR 1020090000393A KR 20090000393 A KR20090000393 A KR 20090000393A KR 101685633 B1 KR101685633 B1 KR 101685633B1
Authority
KR
South Korea
Prior art keywords
instruction
processing unit
central processing
error correction
code value
Prior art date
Application number
KR1020090000393A
Other languages
English (en)
Other versions
KR20100081110A (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 삼성전자주식회사
Priority to KR1020090000393A priority Critical patent/KR101685633B1/ko
Priority to US12/632,384 priority patent/US8528081B2/en
Priority to DE102009060807.9A priority patent/DE102009060807B4/de
Publication of KR20100081110A publication Critical patent/KR20100081110A/ko
Application granted granted Critical
Publication of KR101685633B1 publication Critical patent/KR101685633B1/ko

Links

Images

Classifications

    • 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
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명에 따른 메모리 시스템은, 복수의 인스트럭션들을 저장하는 저장 장치, 및 상기 저장 장치로부터 패치된 인스트럭션에 따라 동작을 수행하는 중앙처리장치를 포함하되, 상기 중앙처리장치는 인스트럭션 처리 과정에서 상기 패치된 인스트럭션의 변경 유무를 감지한다.
Figure R1020090000393
보안, 인스트럭션, 데이터 버스, 에러정정코드

Description

메모리 시스템{MEMORY SYSTEM}
본 발명은 메모리 시스템에 관한 것이다.
스마트 카드(Smart Card)는 마이크로프로세서, 카드운영체제, 보안 모듈, 메모리 등을 갖춤으로써 특정 업무를 처리할 수 있는 능력을 가진 집적회로 칩을 내장한 신용카드 크기의 플라스틱 카드로서, 보안성이 뛰어나며 휴대가 간편하다는 장점과 교통, 의료보건, 신분확인, 유통, 공공민원 등 일상생활에서 다양하게 활용될 수 있는 특성 때문에 정보화 시대의 대표적인 기술로 주목을 받고 있다.
스마트 카드 산업은 카드와 단말기 그리고 응용 S/W가 유기적으로 결합하여 금융 계통은 물론 교통카드, 보건카드로도 활용되고 있을 뿐만 아니라 이동전화 부문에도 널리 쓰이고 있다. 특히, 최근 인터넷과 전자상거래의 급속한 발전은 스마트 카드의 활용을 더욱 촉진시킬 것으로 예상하고 있는데, 이는 스마트 카드의 이동성과 보안기능이 급속히 발전하고 있는 전자상거래와 온라인 서비스에 적합하기 때문이다.
보안은 스마트 카드에 있어 매우 중요한 특징이며, 이를 구현하기 위한 기술은 중요한 요소기술의 하나이다. 스마트 카드는 가시적 보안 특징들 뿐 아니라 칩, 운영체제, 네트워크, 애플리케이션 등에 있어서 보안 기능을 가지며, 스마트 카드 시스템의 보안 원칙에는 프라이버시, 부인방지, 인증, 무결성, 검증 등이 있다.
스마트 카드에서 가장 중요하게 고려되는 문제는 해킹에 저항성이 얼마나 높은지이다. 현재 물리적인 해킹 방지 기술로는 라이트 검출기(Light detector), 내부 절연 제거 검출기(Inner insulation removal detector), 활성화 보호막 제거 검출기(Active shield removal detector)가 사용되고 있다. 이들은 모두 칩의 물리적인 보호막이 제거되는 것을 감지해서 칩이 동작 불능 상태로 만든다.
그런데 라이트 검출기의 경우에 특수한 빛을 이용할 경우 감지가 안 되는 단점이 있다. 또한 내부 절연 검출기 및 활성화 보호막 제거 검출기는 해커가 칩에 대한 어느 정도의 정보를 갖고 충분한 시간을 갖고 해킹을 시도할 경우 해킹될 우려가 있다.
본 발명의 목적은 보호 기능이 향상된 메모리 시스템을 제공하는데 있다.
본 발명의 또 다른 목적은 레이저 공격 혹은 글리치 공격으로부터 보호할 수 있는 메모리 시스템을 제공하는데 있다.
본 발명에 따른 메모리 시스템은: 복수의 인스트럭션들을 저장하는 저장 장치; 및 상기 저장 장치로부터 패치된 인스트럭션에 따라 동작을 수행하는 중앙처리장치를 포함하되, 상기 중앙처리장치는 인스트럭션 처리과정에서 상기 패치된 인스트럭션의 변경 유무를 감지한다.
실시 예에 있어서, 상기 중앙처리장치는 보안 인스트럭션 셋을 처리함으로써 인스트럭션의 변경 유무를 감지하되, 상기 보안 인스트럭션 셋은, 인스트럭션; 상기 중앙처리장치에 이미 저장된 인스트럭션과 다음에 상기 중앙처리장치로 패치될 인스트럭션을 비교하게 하는 비교 인스트럭션; 및 상기 인스트럭션의 에러정정코드 값을 차례로 포함한다.
실시 예에 있어서, 상기 저장 장치로부터 패치된 인스트럭션이 상기 비교 인스트럭션일 때, 상기 중앙처리장치는 상기 패치된 인스트럭션을 저장하고, 상기 패치된 인스트럭션에 따라 동작을 수행한다.
실시 예에 있어서, 상기 저장 장치로부터 패치된 인스트럭션이 상기 비교 인스트럭션이 아닐 때, 상기 중앙처리장치는 상기 저장 장치로부터 다음 인스트럭션을 패치하고, 상기 저장된 인스트럭션과 상기 패치된 다음 인스트럭션을 비교함으로써 인스트럭션에 대한 공격 여부를 판별한다.
실시 예에 있어서, 상기 저장 장치는 상기 보안 인스트럭션 셋을 적어도 하나 이상 갖되, 상기 보안 인스트럭션 셋은 인스트럭션 프로그램의 코드 컴파일 동작시 자동으로 생성된다.
실시 예에 있어서, 상기 복수의 인스트럭션들 각각은, 실질적인 인스트럭션 정보를 갖는 (N-M) 비트의 리얼 인스트럭션; 및 상기 리얼 인스트럭션에 대한 M 비트의 에러정정코드 값을 포함하되, 상기 중앙처리장치는 인스트럭션 패치 동작시 상기 패치된 인스트럭션의 (N-M) 비트의 리얼 인스트럭션의 에러정정코드 값을 계 산하고, 상기 계산된 에러정정코드 값과 상기 패치된 인스트럭션의 M 비트의 에러정정코드 값을 비교함으로써 인스트럭션에 대한 공격 여부를 판별한다.
실시 예에 있어서, 상기 중앙처리장치는 상기 인스트럭션의 변경을 감지하면 리셋 동작을 수행한다.
본 발명에 따른 다른 메모리 시스템은: 데이터를 저장하고, 읽기 동작시 읽기 데이터에 대한 에러정정코드 값을 계산하고 상기 읽기 데이터 및 상기 계산된 제 1 에러정정코드 값을 동시에 전송하는 메모리; 상기 메모리부터 전송된 상기 읽기 데이터의 에러정정코드 값을 계산하고 상기 계산된 제 2 에러정정코드 값과 상기 메모리로부터 전송된 제 1 에러정정코드 값을 비교함으로써 읽기 데이터의 변경 유무를 판별하는 중앙처리장치; 및 상기 중앙처리장치와 상기 메모리 사이에 인터페이싱을 수행하는 인터페이스를 포함한다.
실시 예에 있어서, 상기 제 1 에러정정코드 값은 사용되지 않은 데이터 버스를 이용하여 전송되되, 상기 사용되지 않는 데이터 버스는 바이트 단위의 읽기 동작시 사용되는 바이트 단위의 버스를 제외한 나머지 사용되지 않는 바이트 단위의 버스이다.
본 발명에 따른 또 다른 메모리 시스템은: 바이트 단위의 쓰기 동작시 쓰기 데이터의 제 1 에러정정코드 값을 계산하고, 상기 쓰기 데이터 및 상기 계산된 제 1 에러정정코드 값을 동시에 전송하는 중앙처리장치; 상기 중앙처리장치로부터 전송된 상기 쓰기 데이터의 제 2 에러정정코드 값을 계산하고, 상기 중앙처리장치로부터 전송된 상기 제 1 에러정정코드 값과 상기 계산된 제 2 에러정정코드 값을 비 교함으로써 쓰기 데이터의 변경 유무를 판별하고, 상기 중앙처리장치로부터 전송된 상기 쓰기 데이터를 저장하는 메모리; 및 상기 중앙처리장치와 상기 메모리 사이에 인터페이싱을 수행하는 인터페이스를 포함하되, 상기 제 1 및 제 2 에러정정코드 값은 바이트 단위이다.
본 발명에 따른 메모리 시스템은 인스트럭션 및 데이터에 변경 유무를 감지함으로써 보다 향상된 보안 기능을 갖게 된다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.
본 발명에 따른 메모리 시스템은 레이저 공격 혹은 글리치 공격으로 인한 인스트럭션 및 데이터 변경을 감지할 수 있도록 구현된다. 이로써, 본 발명의 메모리 시스템은 종래의 그것보다 향상된 보안 기능을 제공하게 된다. 특히, 본 발명의 메모리 시스템은 인스트럭션의 처리 과정에서 패치된 인스트럭션의 변경 유무를 감지하고, 이러한 감지 결과에 따라 리셋 여부를 결정한다.
(제 1 실시 예)
본 발명은 레이저 공격이나 글리치 공격으로 프로그램 데이터를 변경하거나 혹은 파워 글리치를 발생시킬 때 프로그램 데이터의 비교 방법을 이용하여 변경된 프로그램 데이터를 감지하게 된다. 여기서 프로그램 데이터는 인스트럭션 값이다.
도 1은 본 발명에 따른 메모리 시스템에 대한 제 1 실시 예를 보여주는 도면이다. 도 1을 참조하면, 메모리 시스템(100)은 중앙처리장치(120), 인터페이스(140), 및 메모리/주변회로(160)를 포함한다. 본 발명의 메모리 시스템(100)은 인스트럭션과 그것의 에러정정코드(Error Detector Code) 값을 비교하는 비교 인스트럭션을 갖도록 구현된다.
중앙처리장치(120)는 메모리 시스템(100)의 전체적인 동작을 제어한다. 중앙처리장치(120)는 비교 인스트럭션을 처리하도록 구현된다. 중앙처리장치(120)는 비교 인스트럭션에 따라 중앙처리 장치(120)는 인스트럭션과 그것의 에러정정코드 값을 비교한다. 여기서 비교 동작은 에러정정코드 값이 인스트럭션의 에러정정코드 값인지를 확인하는 과정이다.
예를 들어, 에러정정코드 값이 인스트럭션의 반전 값으로 정의된다면, 중앙처리장치(120)는 비교 인스트럭션에 따라 인스트럭션의 반전 값과 에러정정코드 값이 동일한 지를 비교한다. 만약, 인스트럭션의 반전 값과 에러정정코드 값이 동일하다면, 인스트럭션의 해킹 시도는 없다고 판별된다 반면에, 인스트럭션의 반전 값과 에러정정코드 값이 동일하지 않다면, 인스트럭션의 해킹 시도가 있다고 판별된다. 해킹 시도가 판별되면, 중앙처리장치(120)는 메모리 시스템(100)의 모든 회로들을 리셋하거나 파워 오프시킨다.
인터페이스(140)는 중앙처리장치(120)와 메모리/주변회로(160) 사이의 인터페이싱을 수행한다. 인터페이스(140)는 인스트럭션 패치 동작시 16 비트 버스를 통하여 중앙처리장치(120)로 프로그램 데이터(PD)를 전송한다. 여기서 프로그램 데이 터는 메모리/주변회로(160)의 프로그램 데이터 영역(162)으로부터 패치된 인스트럭션을 의미한다. 또한 인터페이스(140)는 사용자 데이터 영역(164)의 쓰기 동작시 16 비트 버스를 통하여 중앙처리장치(120)로부터 쓰기 데이터(WD)을 전송받고, 사용자 데이터 영역(164)의 읽기 동작시 16 비트 버스를 통하여 중앙처리장치(120)로 읽기 데이터(RD)를 전송한다.
메모리/주변회로(160)는 데이터를 저장하기 위한 영역이다. 메모리/주변회로(160)는 프로그램 데이터 영역(162) 및 사용자 데이터 영역(164)을 포함한다. 프로그램 데이터 영역(162)은 메모리 시스템(100)을 구동하기 위한 인스트럭션들을 저장하는 영역이다. 메모리/주변회로(160)는 인스트럭션 패치 동작시 16 비트 버스를 통하여 인터페이스(140)로 프로그램 데이터(PD)을 전송한다.
또한 메모리/주변회로(160)는 사용자 데이터 영역(164)의 쓰기 동작시 16 비트 버스를 통하여 인터페이스(140)로부터 쓰기 데이터(WD)를 전송받고, 사용자 데이터 영역(164)의 읽기 동작시 16 비트 버스를 통하여 인터페이스(140)로 읽기 데이터(RD)를 전송한다.
메모리/주변회로(160)는 프로그램 데이터 영역(162) 및 중앙처리장치(120)의 구동시 발생되는 데이터를 저장하는 사용자 데이터 영역(164)을 포함한다. 본 발명의 메모리/주변회로(160)는 메모리 장치이거나 혹은 데이터를 저장할 수 있는 회로이다. 이러한 메모리 장치에는 휘발성 메모리 장치(예를 들어, DRAM, SRAM, 등) 혹은 비휘발성 메모리 장치(NAND FLASH, NOR FLASH, PRAM, FRAM, MRAM 등)일 수 있다.
본 발명의 프로그램 데이터 영역(162)은 인스트럭션, 그것의 EDC 값, 그리고 비교 인스트럭션(Compare PD Instruction)을 갖는 보안 인스트럭션 셋(163)을 포함한다. 여기서 보안 인스트럭션 셋(163)은 사용자가 인스트럭션들을 프로그래밍한 뒤에 코드 컴파일(code compile)할 때 자동적으로 생성된다. 즉, 컴파일 동작시 자동적으로 비교 인스트럭션이 삽입된다. 사용자는 이러한 비교 인스트럭션을 사용하지 못한다.
이러한 비교 인스트럭션의 자동 삽입은 사용자가 컴파일 옵션을 통해 조정이 가능하다. 예를 들어, 인스트럭션의 해킹 우려가 많다면, 사용자는 모든 인스트럭션에 대하여 비교 인스트럭션이 삽입되도록 컴파일 옵션을 선택한다. 반면에, 인스트럭션의 해킹 우려가 적다면, 빈도가 낮은 인스트럭션들에 대하여만 비교 인스트럭션이 삽입되도록 컴파일 옵션을 선택한다.
코드 컴파일 동작시 비교 인스트럭션이 삽입된 후에는 비교 인스트럭션 이전의 인스트럭션의 에러정정코드 값이 자동적으로 삽입된다. 이러한 에러정정코드 값은 인스트럭션의 반전 값이 이용될 수 있다. 상술 된 바와 같이, 코드 컴파일 동작시 인스트럭션, 비교 인스트럭션 및 에러정정코드 값 즉 인스트럭션의 반전 값인 보안 인스트럭션 셋이 형성된다.
사용자는 코드 컴파일 동작시 비교 인스트럭션을 어느 부분에 몇 % 삽인할지를 입력한다. 이에 따라 코드 컴파일 동작시 컴파일러는 자동적으로 비교 인스트럭션을 삽입한다. 이때 컴파일러는 전체 코드 사이즈를 판단하여 균일하게 비교 인스트럭션을 삽입한다.
도 2는 본 발명의 메모리 시스템에서 인스트럭션을 저장하는 방법에 대한 흐름도이다. 도 1 및 도 2를 참조하면, 인스트럭션 저장 방법은 아래와 같다.
사용자는 메모리 시스템(100)에서 구동될 인스트럭션들을 프로그램한다(S110). 컴파일러는 사용자에 의해 프로그램된 인스트럭션 프로그램을 컴파일하면서 동시에 자동으로 임의의 인스트럭션에 대하여 비교 인스트럭션 및 인스트럭션의 에러정정코드 값을 삽입하다(S120). 이로써, 인스트럭션 프로그램에 대한 컴파일이 완료되면, 컴파일된 인스트럭션들을 메모리/주변회로(160)의 프로그램 데이터 영역(162)에 저장한다. 본 발명의 프로그램 데이터 영역(162)에는 인스트럭션의 데이터 변경을 감지할 수 있는 복수의 보안 인스트럭션 셋들이 존재한다.
도 3은 본 발명의 메모리 시스템에 인스트럭션 처리 방법에 대한 흐름도이다. 도 1 및 도3을 참조하면, 인스트럭션 처리 방법은 아래와 같다.
파워 업시 중앙처리장치(120)은 인스트럭션 패치를 위한 시작 어드레스를 메모리/주변회로(160)로 전송한다(S210). 메모리/주변회로(160)는 시작 어드레스에 대응하는 인스트럭션을 읽는다. 여기서 읽혀진 인스트럭션은 인터페이스(140)을 통하여 중앙처리장치(120)로 전송된다. 이로써, 인스트럭션 패치 동작이 시작된다(S220). 중앙처리장치(120)는 패치된 인스트럭션을 디코딩하고, 디코딩된 인스트럭션이 비교 인스트럭션이인 지를 판별한다(S230).
만일 현재 패치된 인스트럭션이 비교 인스트럭션이 아니면, 현재 패치된 인스트럭션은 레지스터에 저장된다(S240). 이후, 패치된 인스트럭션에 따라 중앙처리장치(120)는 처리된다(S250). 이후, 다음 인스트럭션이 패치되도록 S230 단계로 진 행된다.
만일 현재 패치된 인스트럭션이 비교 인스트럭션이면, 중앙처리장치(120)는 프로그램 데이터 영역(162)로부터 다음 인스트럭션을 패치한다. 이때 패치된 인스트럭션은 레지스터에 레지스터에 저장된 인스트럭션의 에러정정코드 값이다(S260).
중앙처리장치(120)는 다음 인스트럭션이 저장된 인스트럭션의 반전 값과 동일한지를 판별한다(S270). 만일 다음 인스트럭션과 레지스터에 저장된 인스트럭션의 반전 값과 동일한다면, 인스트럭션에 대한 데이터 변경이 발생되지 않은 것으로 결정된다. 이에 그 다음 인스트럭션이 패치되도록 S220 단계로 진행된다.
반면에 다음 인스트럭션이 레지스터에 저장된 인스트력선의 반전된 값이 동일하지 않다면, 인스트럭션에 대한 데이터 변경이 발생된 것으로 결정된다. 따라서, 메모리 시스템(100)은 해킹 공격시 대처하는 루틴에 따라 리셋 동작을 수행하거나 혹은 급속 인터럽트 요청(FIQ: Fast Interrupt Request)을 수행한다.
도 4는 비교 인스트럭션이 삽입된 프로그램 순서를 보여주는 실시 예이다. 도 4를 참조하면, 비교 인스트럭션은 제 1 인스트럭션(Instruction1), 제 2 인스트럭션(Instruction5), 제 7 인스트럭션(Instruction7), 제 13 인스트럭션(Instruction13), 제 2 인터럽트 인스트럭션(Instruction_interrupt2), 제 30 인스트럭션(Instruction30) 다음에 비교 인스트럭션(Compare PD)이 삽입되고, 삽입된 비교 인스트럭션(Compare PD) 다음에 각각의 인스트럭션의 에러정정코트 값이 삽입된다.
본 발명의 메모리 시스템(100)은 비교 인스트럭션 삽입 시 해킹 공격에 의한 오동작인 경우를 제외하고는 정상적인 동작이 수행되도록 구현된다. 중앙처리장치(120)는 본 발명의 비교 인스트럭션을 수행할 수 있도록 하드웨어적으로 설계된다. 컴파일러는 프로그램 상으로 비교 인스트럭션 삽입 및 비교 인스트럭션 삽입 후에 인스트럭션의 에러정정코드 값을 삽입할 수 있도록 프로그램된다.
도 1에 도시된 메모리 시스템(100)은 16 비트의 데이터 버스를 기준으로 설계되었다. 그러나 본 발명의 메모리 시스템(100)이 반드시 16 비트의 데이터 버스에 국한될 필요가 없다. 본 발명의 메모리 시스템(100)은 32 비트 혹은 그 이상의 비트의 데이터 버스를 기준으로 설계될 수 있다.
본 발명의 메모리 시스템(100)은 인스트럭션의 데이터 변경 유무를 감지할 수 있도록 비교 인스트럭션을 구비한다. 이러한 비교 인스트럭션이 처리됨으로써, 인스트럭션의 데이터가 변경되었는지 여부를 판별하게 된다.
(제 2 실시 예)
본 발명은 레이저 공격이나 글리치 공격에 의해 데이터 값을 변경하거나 파워 글리치를 발생시킬 때, 사용하지 않는 버스를 이용한 보호 방법으로 공격을 감지한다.
도 5은 본 발명에 따른 메모리 시스템에 대한 제 2 실시 예를 보여주는 도면이다. 도 2을 참조하면, 메모리 시스템(200)은 중앙처리장치(220), 인터페이스(240), 및 메모리/주변회로(260)를 포함한다. 본 발명의 메모리 시스템(200)은 하프 워드 억세스(half word access) 동작시 혹은 바이트 억세스(byte access) 동작시 사용되지 않는 버스를 이용하여 에러정정코드 데이터(WEDC,REDC)를 전송하도 록 구현된다. 중앙처리장치(220) 및 메모리/주변회로(260)는 하프 워드 억세스 동작 혹은 바이트 억세스 동작시 에러정정코드 알고리즘에 따라 억세스 데이터의 에러정정코드 값을 계산하도록 구현된다.
본 발명의 메모리 시스템(200)은 16 비트의 데이터 버스로 구현된다. 메모리 시스템(200)은 기본적으로 16 비트 억세스 즉, 워드 억세스 동작이 수행된다. 경우에 따라서 메모리 시스템은 하프 워드 억세스 혹은 바이트 억세스 동작이 수행될 수 있다. 메모리 시스템(200)은 하프 워드 억세스 혹은 바이트 억세스 동작시 사용되지 않는 8 비트의 버스를 이용하여 에러정정코드 데이터를 전송한다.
아래에서는 바이트 읽기 동작시 데이터 해킹 동작을 차단하는 방법을 설명하도록 하겠다. 바이트 읽기 동작시, 메모리/주변회로(260)으로부터 8비트의 버스를 통하여읽기 데이터(RD)가 전송되고, 사용되지 않은 8비트의 버스를 통하여 읽기 데이터(RD)의 에러정정코드 값(REDC)이 동시에 전송된다. 여기서 에러정정코드 값(REDC)은 메모리/주변회로(260)로부터 계산된 읽기 데이터(RD)의 에러정정코드 값이다.
중앙처리장치(220)는 워드바이트신호(WBS)에 응답하여 메모리/주변회로(260)으로부터 전송된 읽기 데이터(RD)의 에러정정코드 값을 계산한다. 여기서 워드바이트신호(WBS)는 워드 억세스 동작인지 혹은 바이트 억세스 동작인지를 알려주는 신호이다. 중앙처리장치(220)는 계산된 에러정정코드 값(RDEDC)과 전송된 에러정정코드 값(REDC)이 동일한지를 판별하여 공격감지신호(ADS)를 생성한다.
이때, 계산된 에러정정코드 값(RDEDC)과 전송된 에러정정코드 값(REDC)이 동 일하다면, 데이터에 대한 해킹 공격이 없다고 결정된다. 반면에, 계산된 에러정정 코드 값(RDEDC)과 전송된 에러정정코드 값(REDC)이 동일하다면, 데이터에 대한 해킹 공격이 있다고 결정된다. 해킹 공격이 있다고 결정되면, 더 이상 해킹을 수행할 수 없도록 메모리 시스템(200)은 리셋되거나 특정 모드로 변경된다.
아래에서는 바이트 쓰기 동작시 데이터 해킹 동작을 차단하는 방법을 설명하도록 하겠다. 바이트 쓰기 동작시, 중앙처리장치(220)는 8비트의 버스를 통하여 쓰기 데이터(WD)를 전송하고, 사용되지 않은 8비트의 버스를 통하여 쓰기 데이터(WD)의 에러정정코드 값(WEDC)을 동시에 전송한다. 여기서 에러정정코드 값(WEDC)은 중앙처리장치(220)로부터 계산된 쓰기 데이터(WD)의 에러정정코드 값이다.
한편 메모리/주변회로(260)는 워드바이트신호(WBS)에 응답하여 전송된 쓰기 데이터(WD)의 에러정정코드 값을 계산한다. 메모리/주변회로(260)는 계산된 에러정정코드 값(WDEDC)과 전송된 에러정정코드 값(WEDC)이 동일한지를 판별하여 공격감지신호(ADS)를 생성한다.
이때, 계산된 에러정정코드 값(WDEDC)과 전송된 에러정정코드 값(WEDC)이 동일하다면, 데이터에 대한 해킹 공격이 없다고 결정된다. 반면에, 계산된 에러정정 코드 값(WDEDC)과 전송된 에러정정코드 값(WEDC)이 동일하다면, 데이터에 대한 해킹 공격이 있다고 결정된다. 해킹 공격이 있다고 결정되면, 더 이상 해킹을 수행할 수 없도록 메모리 시스템(200)은 리셋되거나 특정 모드로 변경된다.
도 6은 본 발명에 따른 메모리 시스템의 데이터 전송 방법에 대한 흐름도이 다. 도 5 및 도 6을 참조하면, 데이터 전송 방법은 다음과 같다.
송신기(중앙처리장치(220) 혹은 메모리/주변회로(260))는 바이트 억세스시 사용하는 버스로 데이터를 전송하고, 사용되지 않는 버스로 전송할 데이터의 에러정정코드 값을 수신기(메모리/주변회로(260) 혹은 중앙처리장치(220))전송한다(S310). 여기서 송신기는 바이트 억세스시 데이터에 대한 에러정정코드 값을 계산한다. 수신기는 전송된 데이터로부터 에러정정코드 값을 계산한다(S320).
이후 수신기는 계산된 에러정정코드 값이 전송된 에러정정코드 값과 동일한지를 판별한다(S330). 이때, 계산된 에러정정코드 값과 전송된 에러정정 코드 값이 동일하면, 수신기는 데이터 해킹 시도가 없는 것으로 판별하고, 데이터 전송이 완료된다(S350). 반면에, 계산된 에러정정 값과 전송된 에러정정 코드 값이 동일하지 않다면, 수신기는 데이터 해킹 시도가 있는 것으로 판별한다. 이때 메모리 시스템(200)는 리셋 동작이 수행되거나 별도의 모드로 진입하게 된다(S350).
도 5에 도시된 메모리 시스템(300)은 16 비트 버스로 구현되었다. 본 발명의 메모리 시스템은 16 비트 버스로 구현된다고 국한될 필요는 없다. 본 발명의 메모리 시스템은 32 비트의 버스로 구현될 수 있다.
본 발명의 메모리 시스템은 처리 비트의 개수가 선택적일 수 있다. 예를 들어, 메모리 시스템은 16 비트로 처리되거나 혹은 32 비트로 처리될 수 있다. ARM 프로세서의 경우에는 32 비트로 처리되는 ARM 모드 및 16 비트로 처리되는 THUMB 모드가 있다. 이러한 메모리 시스템의 경우에는 선택적으로 인스트럭션의 비트 수가 조절된다. 메모리 시스템은 인스트럭션의 패치시 사용되지 않는 버스에 패치될 인스트럭션의 에러정정코드 값을 동시에 전송하도록 구현될 수 있다.
도 7은 본 발명의 또 다른 메모리 시스템(300)을 보여주는 도면이다. 도 7을 참조하면, 메모리 시스템(300)은 16 비트 혹은 32 비트로 선택적 처리가능한 시스템이다. 즉, 메모리 시스템(300)의 처리 모드에는 32 비트 모드 혹은 16 비트 모드가 있다. 16 비트 모드시 메모리 시스템(300)의 경우에는 16비트의 인스트럭션 패치 동작시 사용되지 않는 16 비트의 버스를 통하여 인스트럭션에 대한 에러정정코드 값이 같이 전송된다.
아래에서는 인스트럭션 패치 동작시 데이터 해킹 동작을 차단하는 방법을 설명하도록 하겠다. 인스트럭션 패치 동작시, 메모리/주변회로(360)으로부터 16비트의 버스를 통하여 인스트럭션(PD)가 전송되고, 사용되지 않은 16비트의 버스를 통하여 인스트럭션(PD)의 에러정정코드 값(PEDC)이 동시에 전송된다. 여기서 에러정정코드 값(PEDC)은 메모리/주변회로(360)로부터 계산된 인스트럭션(PD)의 에러정정코드 값이다. 이로써 인스트럭션 패치 동작이 수행된다.
중앙처리장치(320)는 프로세싱모드타입신호(ATS)에 응답하여 메모리/주변회로(360)으로부터 패치된 인스트럭션(PD)의 에러정정코드 값을 계산한다. 여기서 프로세서비트신호(ATS)는 메모리 시스템(30)이 32비트 프로세싱 모드인지 혹은 16비트 프로세싱 모드인지를 알려주는 신호이다. 중앙저리장치(320)는 계산된 에러정정코드 값(PDEDC)과 전송된 에러정정코드값(PEDC)이 동일한지를 판별하여 공격감지신호(ADS)를 생성한다.
이때, 계산된 에러정정코드 값(PDEDC)과 전송된 에러정정코드 값(PEDC)이 동 일하다면, 인스트럭션에 대한 해킹 공격이 없다고 결정된다. 반면에, 계산된 에러정정 코드 값(PDEDC)과 전송된 에러정정코드 값(PEDC)이 동일하다면, 인스트럭션에 대한 해킹 공격이 있다고 결정된다. 해킹 공격이 있다고 결정되면, 더 이상 해킹을 수행할 수 없도록 메모리 시스템(300)은 리셋되거나 특정 모드로 변경된다.
도 7에 도시된 메모리 시스템(300)은 인스트럭션에 대한 공격시도를 감지하였다. 본 발명의 메모리 시스템은 인스트럭션에 대한 공격 시도뿐 아니라 도 5에 도시된 데이터에 대한 공격 시도도 감지하도록 구현될 수 있다.
도 8은 도 7에 도시된 메모리 시스템의 인스트럭션 처리과정에 대한 흐름도이다. 도 7 및 도 8을 참조하면, 인스트럭션 처리과정은 다음과 같다.
16 비트 프로세싱 모드의 메모리 시스템(300)이 파워-업되면, 중앙처리장치(320)는 인스트럭션을 패치하기 위하여 프로그램 어드레스를 메모리/주변회로(360)으로 전송한다(S410). 메모리/주변회로(360)는 프로그램 어드레스에 대응하는 인스트럭션을 읽고, 읽혀진 인스트럭션을 16 비트 버스를 통하여 중앙처리장치(320)로 전송한다. 이때, 메모리/주변회로(360)은 나머지 16 비트 버스로는 읽혀진 인스트럭션의 에러정정코드 값을 같이 전송한다. 이로써 하나의 인스트럭션에 대한 패치동작이 완료된다(S420).
중앙처리장치(320)는 전송된 인스트럭션의 에러정정코드 값을 계산한다(S430). 이후 중앙처리장치(320)는 계산된 에러정정코드 값과 전송된 에러정정코드 값이 동일한지를 판별한다(S440). 만일, 계산된 에러정정코드 값과 전송된 에러정정코드 값이 동일하다면, 인스트럭션에 대한 공격 시도는 없는 것으로 판별되고, 해당 인스트럭션이 처리된다(S450). 이후에는 그 다음 인스트럭션이 패치되도록 S420 단계로 진입된다. 만일, 계산된 에러정정코드 값과 전송된 에러정정코드 값이 동일하지 않다면, 인스트럭션에 대한 공격 시도가 있는 것으로 판별된다. 이에 따라 메모리 시스템(300)은 리셋 동작을 수행하거나 별도의 모드로 진입하게 된다(S460).
도 5 내지 도 8에 도시된 메모리 시스템은 사용되지 않는 버스를 에러정정코드의 전송통로로 이용하였다. 이로써, 본 발명의 메모리 시스템은 해킹 시도에 대하여 좀더 향상된 보안 대책을 구비하게 된다.
(제 3 실시 예)
본 발명은 레이저 공격이나 글리치 공격에 의해 데이터가 변경되거나 파워 글리치를 발생시킬 때 에러정정코드 인스트럭션 보호방법으로 공격을 감지하게 된다. 메모리 시스템의 경우에는 중앙처리장치의 프로그램 데이터에 대한 보호가 중요하다. 이에 본 발명의 메모리 시스템은 모든 인스트럭션에 대하여 에러정정코드 값을 삽입하도록 구현된다.
도 9는 본 발명의 메모리 시스템에 따른 인스트럭션을 보여주는 도면이다. 도 9을 참조하면, 인스트럭션의 크기는 N 비트이다. 인스트럭션은 적어도 1 이상의 M 비트의 에러정정코드 값을 할당한다. 따라서, 실제로 사용되는 인스트럭션의 크기는 (N-M) 비트이다.
중앙처리장치의 경우에는 도 10에 도시된 바와 같이 인스트럭션의 사용 비트 크기에 따라 N 비트 크기의 인스트럭션 셋을 갖는다. 각 인스트럭션들은 하나의 N 비트씩 매핑된다. (N-M) 비트로 모든 인스트럭션을 매핑하기 때문에 종래의 인스트럭션의 개수를 줄여야 한다. 보안이 중요하다면, 사용 빈도가 적은 인스트럭션을 줄여 메모리 시스템의 보안을 향상시키는 것이 바람직하다.
도 11은 본 발명에 따른 메모리 시스템에 대한 제 3 실시 예이다. 도 11을 참조하면, 메모리 시스템(400)은 중앙처리장치(420), 인터페이스(440), 및 메모리/주변회로(460)을 포함한다. 메모리 시스템(400)은 N 비트로 처리된다. 메모리/주변회로(360)의 프로그램 데이터 영역(462)에 저장된 인스트럭션은 (N-M) 비트의 실제 인스트럭션과 M 비트의 에러정정코드 값으로 구성된다. 중앙처리장치(420)는 인스트럭션 패치 동작시 전송된 (N-M) 비트의 리얼 인스트럭션의 에러정정코드 값을 계산하고, 계산된 에러정정코드 값과 전송된 인스트럭션의 M 비트의 에러정정코드 값이 동일한지를 판별한다. 이러한 판별결과로써, 본 발명의 메모리 시스템(400)은 인스트럭션에 대한 공격 시도가 있었는지를 감지하게 된다.
본 발명의 중앙처리장치(420)는 에러정정코드 값을 갖는 인스트럭션을 처리가능하도록 구현된다. 또한, 중앙처리장치(420)는 패치된 인스트럭션을 디코딩하고, 전달된 실제 인스트럭션의 에러정정코드 값을 계산하고, 계산된 에러정정코드 값과 전송된 에러정정코드 값을 비교하도록 하드웨어적으로 구현된다.
도 12는 도 11에 도시된 메모리 시스템(400)의 인스트럭션 셋이 저장되는 과정을 보여주는 흐름도이다. 도 12을 참조하면, 인스트럭션 셋이 저장되는 과정은 다음과 같다. 사용자는 (N-M) 비트의 리얼 인스트럭션을 프로그램한다(S510). 컴파일러는 컴파일 동작시 (N-M) 비트의 리얼 인스트럭션에 대응하는 M 비트의 에러정 정코드 값을 리얼 인스트럭션에 덧붙여 N 비트의 인스트럭션을 생성한다(S520). 이로써, 본 발명의 인스트럭션 셋이 생성된다. 이후 생성된 인스트럭션 셋은 메모리/주변회로(460)의 프로그램 데이터 영역(462)에 저장된다(S530). 이로써, 인스트럭션 셋의 저장이 완료된다.
도 13는 본 발명의 메모리 시스템의 인스트럭션 처리과정을 보여주는 흐름도이다. 도 11 및 도 13을 참조하면, 인스트럭션 처리과정은 아래와 같다.
메모리 시스템(400)이 파워-업되면, 중앙처리장치(420)는 인스트럭션을 패치하기 위하여 프로그램 어드레스를 메모리/주변회로(460)으로 전송한다(S610). 메모리/주변회로(460)는 프로그램 어드레스에 대응하는 인스트럭션을 읽고, 읽혀진 인스트럭션을 N 비트 버스를 통하여 중앙처리장치(420)로 전송한다. 이때, 전송되는 인스트럭션은 (N-M) 비트의 실제 인스트럭션과 M 비트의 에러정정코드 값으로 구성된다. 이로써 하나의 인스트럭션에 대한 패치동작이 완료된다(S620).
중앙처리장치(420)는 패치된 인스트럭션의 (N-M) 비트의 실제 인스트럭션의 에러정정코드 값을 계산한다(S630). 이후 중앙처리장치(420)는 계산된 에러정정코드 값과 전송된 M 비트의 에러정정코드 값이 동일한지를 판별한다(S640). 만일, 계산된 에러정정코드 값과 전송된 에러정정코드 값이 동일하다면, 인스트럭션에 대한 공격 시도는 없는 것으로 판별되고, 해당 인스트럭션이 처리된다(S650). 이후에는 그 다음 인스트럭션이 패치되도록 S620 단계로 진입된다. 만일, 계산된 에러정정코드 값과 전송된 에러정정코드 값이 동일하지 않다면, 인스트럭션에 대한 공격 시도가 있는 것으로 판별된다. 이에 따라 메모리 시스템(400)은 리셋 동작을 수행하거 나 별도의 모드로 진입하게 된다(S660).
본 발명의 메모리 시스템(400)은 에러정정코드를 저장하기 위하여 추가의 메모리 사용을 필요치 않게 된다. 따라서 메모리 시스템(400)은 코드 메모리 크기를 증가시키지 않으면서 메모리/주변회로(460)로부터 중앙처리장치(420)까지의 인스트럭션 패치 과정을 보호할 수 있게 된다.
도 14는 본 발명에 따른 메모리 시스템을 이용한 스마트 카드에 대한 블록도이다. 도 14를 참조하면, 스마트 카드(10)는 시스템 버스(11), 중앙처리장치(12), 운용체계를 저장하는 ROM(13), 처리과정 중에 발생되는 데이터를 임시로 저장하는 RAM(14), 낸드 플래시 메모리에 적합한 인터페이싱을 수행하는 메모리 인터페이스(15), 낸드 플래시 메모리(16), 스마트 카드(10) 내의 데이터를 보호하기 위하여 암호화시키는 보안 로직(18), 해킹 공격을 감지하는 공격 검출기(18), 및 해킹 공격이 감지되면 리셋 동작을 수행하는 리셋 로직(19)을 포함한다.
본 발명의 스마트 카드(10)에서 중앙처리장치(12)는 도 1, 도 5, 도 7, 및 도 11에 도시된 중앙처리장치와 동일한 구성을 갖고, 메모리 인터페이스(15)는 도 1, 도 5, 도 7 및 도 11에 도시된 인터페이스와 동일한 구성을 갖고, 낸드 플래시 메모리(16)는 도 1, 도 5, 도 7 및 도 11에 도시된 메모리/주변회로와 동일한 구성을 갖는다.
본 발명의 리셋 로직(19)은 도 1, 도 5, 도 7 및 도 11의 중앙처리장치 혹은 메모리/주변회로로부터 발생되는 공격감지신호에 응답하여 리셋 동작을 수행하거나 혹은 공격 감지기(18)로 감지된 공격감지신호에 응답하여 리셋 동작을 수행한다.
본 발명의 공격 감지기(18)는 라이트 감지기(Light Detector), 내부 절연 제거 감지기(Inner Insulation Removal Detector), 활성 방어막 제거 감지기(Active Shield Removal Detector) 등 다양한 공격 감지기로 구현될 수 있다. 한편 공격 감지기(18)는 낸드 플래시 메모리(16)에 조사된 빛을 감지하도록 구현될 수도 있다.
상술 된 메모리 시스템에서는 중앙처리장치와 메모리/주변회로 사이에 인터페이스를 구비하고 있다. 그러나 본 발명의 메모리 시스템이 반드시 여기에 국한될 필요는 없다. 본 발명의 메모리 시스템은 중앙처리장치와 메모리/주변회로 사이에 인터페이스를 필요치 않게 설계될 수도 있다.
본 발명의 메모리 시스템은 보안이 필요한 메모리 카드에도 적용가능하다. 이러한 메모리 카드에는 MMC 혹은 SD 등이 될 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명에 따른 메모리 시스템에 대한 제 1 실시 예를 보여주는 도면이다.
도 2는 본 발명의 메모리 시스템에서 인스트럭션을 저장하는 방법에 대한 흐름도이다.
도 3은 본 발명의 메모리 시스템에 인스트럭션 처리 방법에 대한 흐름도이다.
도 4는 비교 인스트럭션이 삽입된 프로그램 순서를 보여주는 실시 예이다.
도 5은 본 발명에 따른 메모리 시스템에 대한 제 2 실시 예를 보여주는 도면이다.
도 6은 본 발명에 따른 메모리 시스템의 데이터 전송 방법에 대한 흐름도이다.
도 7은 본 발명의 또 다른 메모리 시스템을 보여주는 도면이다.
도 8은 도 7에 도시된 메모리 시스템의 인스트럭션 처리과정에 대한 흐름도이다.
도 9는 본 발명의 메모리 시스템에 따른 인스트럭션을 보여주는 도면이다.
도 10은 본 발명에 따른 인스트럭션 셋을 보여주는 도면이다.
도 11은 본 발명에 따른 메모리 시스템에 대한 제 3 실시 예이다.
도 12는 도 11에 도시된 메모리 시스템의 인스트럭션 셋이 저장되는 과정을 보여주는 흐름도이다.
도 13는 본 발명의 메모리 시스템의 인스트럭션 처리과정을 보여주는 흐름도이다.
도 14는 본 발명에 따른 메모리 시스템을 이용한 스마트 카드에 대한 블록도이다.
*도면의 주요부분에 대한 부호의 설명*
100,200,300,400: 메모리 시스템 120,220,320,420: 중앙처리장치
140,240,340,440: 인터페이스 160,260,360,460: 메모리/주변회로
162: 프로그램 데이터 영역 164: 사용자 데이터 영역
163: 보안 인스트럭션 셋
10: 스마트 카드

Claims (10)

  1. 복수의 인스트럭션들을 저장하는 저장 장치; 및
    상기 저장 장치로부터 패치된 인스트럭션에 따라 동작을 수행하는 중앙처리장치를 포함하되,
    상기 중앙처리장치는 인스트럭션 처리 과정에서 상기 패치된 인스트럭션의 변경 유무를 감지하는,
    상기 중앙처리장치는 보안 인스트럭션 셋을 처리함으로써 상기 패치된 인스트럭션의 변경유무를 감지하되,
    상기 보안 인스트럭션 셋은,
    제 1 인스트럭션;
    상기 제 1 인스트럭션의 변경 유무의 판별을 지시하는 제 2 인스트럭션; 및
    상기 제 1 인스트럭션의 에러정정코드 값을 갖는 제 3 인스트럭션을 차례로 포함하고,
    상기 저장 장치는 상기 보안 인스트럭션 셋을 적어도 하나 이상 갖되,
    상기 보안 인스트럭션 셋은 인스트럭션 프로그램의 코드 컴파일 동작시 자동으로 생성되고,
    상기 중앙처리장치는 상기 제 2 인스트럭션에 응답하여 상기 제 3 인스트럭션을 상기 저장 장치로부터 입력 받고, 상기 제 3 인스트럭션에 포함된 상기 에러정정코드 값을 이용하여 상기 제 1 인스트럭션의 변경 유무를 판별하는 메모리 시스템.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 저장 장치로부터 패치된 인스트럭션을 디코딩하고,
    상기 디코딩된 인스트럭션이 상기 제 2 인스트럭션일 때, 상기 중앙처리장치는 상기 패치된 인스트럭션을 저장하고, 상기 저장된 인스트럭션에 따라 동작을 수행하는 메모리 시스템.
  4. 제 1 항에 있어서,
    상기 저장 장치로부터 패치된 인스트럭션이 상기 제 2 인스트럭션이 아닐 때, 상기 중앙처리장치는 상기 저장 장치로부터 다음 인스트럭션을 패치하는 메모리 시스템.
  5. 삭제
  6. 복수의 보안 인스트럭션 셋들을 저장하는 저장 장치; 및
    상기 저장 장치로부터 패치된 인스트럭션에 따라 동작을 수행하는 중앙처리장치를 포함하고,
    상기 복수의 보안 인스트럭션 셋들 각각은,
    실질적인 인스트럭션 정보를 갖는 (N-M) 비트의 제 1 인스트럭션;
    상기 제 1 인스트럭션의 변경 유무에 대한 판별을 지시하는 제 2 인스트럭션; 및
    상기 제 1 인스트럭션에 대한 M 비트의 에러정정코드 값을 갖는 제 3 인스트럭션을 포함하되,
    상기 중앙처리장치는 인스트럭션 패치 동작시 상기 패치된 인스트럭션의 (N-M) 비트의 제 1 인스트럭션의 에러정정코드 값을 계산하고, 상기 계산된 에러정정코드 값과 상기 패치된 인스트럭션의 M 비트의 에러정정코드 값을 비교함으로써 인스트럭션에 대한 공격 여부를 판별하는 메모리 시스템.
  7. 제 1 항에 있어서,
    상기 중앙처리장치는 상기 패치된 인스트럭션의 변경을 감지하면 리셋 동작을 수행하는 메모리 시스템.
  8. 삭제
  9. 삭제
  10. 삭제
KR1020090000393A 2009-01-05 2009-01-05 메모리 시스템 KR101685633B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090000393A KR101685633B1 (ko) 2009-01-05 2009-01-05 메모리 시스템
US12/632,384 US8528081B2 (en) 2009-01-05 2009-12-07 Memory system
DE102009060807.9A DE102009060807B4 (de) 2009-01-05 2009-12-31 Speichersystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090000393A KR101685633B1 (ko) 2009-01-05 2009-01-05 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20100081110A KR20100081110A (ko) 2010-07-14
KR101685633B1 true KR101685633B1 (ko) 2016-12-12

Family

ID=42234819

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090000393A KR101685633B1 (ko) 2009-01-05 2009-01-05 메모리 시스템

Country Status (3)

Country Link
US (1) US8528081B2 (ko)
KR (1) KR101685633B1 (ko)
DE (1) DE102009060807B4 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2919146A1 (en) * 2014-03-14 2015-09-16 Nxp B.V. An apparatus for enforcing control flows
KR102316279B1 (ko) * 2015-10-19 2021-10-22 삼성전자주식회사 비휘발성 메모리 장치 및 이를 포함하는 에스에스디

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060288223A1 (en) * 2003-09-18 2006-12-21 Perry Kiehtreiber Method and Apparatus for Incremental Code Signing

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3440763B2 (ja) * 1996-10-25 2003-08-25 富士ゼロックス株式会社 暗号化装置、復号装置、機密データ処理装置、及び情報処理装置
US6708274B2 (en) * 1998-04-30 2004-03-16 Intel Corporation Cryptographically protected paging subsystem
AUPO799197A0 (en) * 1997-07-15 1997-08-07 Silverbrook Research Pty Ltd Image processing method and apparatus (ART01)
JP2000115183A (ja) 1998-10-02 2000-04-21 Toshiba Corp 携帯可能電子装置
JP2002328845A (ja) * 2001-05-07 2002-11-15 Fujitsu Ltd 半導体集積回路及びicカードのセキュリティー保護方法
US7020809B2 (en) * 2002-09-25 2006-03-28 International Business Machines Corporation System and method for utilizing spare bandwidth to provide data integrity over a bus
US20040143739A1 (en) * 2003-01-16 2004-07-22 Sun Mircosystems, Inc., A Delaware Corporation Run time code integrity checks
US7500098B2 (en) * 2004-03-19 2009-03-03 Nokia Corporation Secure mode controlled memory
JP4637526B2 (ja) 2004-07-28 2011-02-23 ルネサスエレクトロニクス株式会社 メモリカードおよび不揮発性記憶装置
KR20060067584A (ko) 2004-12-15 2006-06-20 삼성전자주식회사 해킹 방지 기능이 있는 스마트 카드
JP2007011591A (ja) 2005-06-29 2007-01-18 Toshiba Corp 携帯可能電子装置およびicカード
KR101197556B1 (ko) 2006-01-09 2012-11-09 삼성전자주식회사 불 휘발성 메모리의 프로그램 동작을 검증하는 장치 및방법, 그리고 그 장치를 포함한 메모리 카드
KR100837270B1 (ko) 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
DE102007026977B4 (de) 2006-06-07 2012-03-08 Samsung Electronics Co., Ltd. Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt
US7519830B2 (en) * 2006-08-03 2009-04-14 Motorola, Inc. Secure storage of data
US7644322B2 (en) * 2006-11-21 2010-01-05 Atmel Corporation Hardware flow control monitor
KR20090000393A (ko) 2007-06-28 2009-01-07 엘지전자 주식회사 단말기 및 그 멀티미디어 재생 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060288223A1 (en) * 2003-09-18 2006-12-21 Perry Kiehtreiber Method and Apparatus for Incremental Code Signing

Also Published As

Publication number Publication date
US20100174888A1 (en) 2010-07-08
DE102009060807B4 (de) 2022-05-05
US8528081B2 (en) 2013-09-03
DE102009060807A1 (de) 2010-07-08
KR20100081110A (ko) 2010-07-14

Similar Documents

Publication Publication Date Title
US10089470B2 (en) Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US7853798B2 (en) Program tamper detecting apparatus, method for program tamper detection, and program for program tamper detection
US9183394B2 (en) Secure BIOS tamper protection mechanism
US9129113B2 (en) Partition-based apparatus and method for securing bios in a trusted computing system during execution
US20040123132A1 (en) Enhancing data integrity and security in a processor-based system
US9507942B2 (en) Secure BIOS mechanism in a trusted computing system
US9727755B2 (en) Processing information
KR101977772B1 (ko) 데이터 처리 장치 및 이를 포함하는 보안 메모리 장치
US10019579B2 (en) Embedded controller for safety booting and method thereof
US20150134974A1 (en) Apparatus and method for securing bios in a trusted computing system
US10223117B2 (en) Execution flow protection in microcontrollers
US20060219796A1 (en) Integrated circuit chip card capable of determining external attack
US10049217B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
KR101685633B1 (ko) 메모리 시스템
US20170046514A1 (en) Programmable secure bios mechanism in a trusted computing system
US20100031088A1 (en) Method and system for processing information
CN111581674A (zh) 芯片的程序加密方法和存储介质
US10055588B2 (en) Event-based apparatus and method for securing BIOS in a trusted computing system during execution
CN112948863B (zh) 敏感数据的读取方法、装置、电子设备及存储介质
JP2008287449A (ja) データプロセッサ
US10095868B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
CN113496036A (zh) 安全组件和预加载方法
CN106919856B (zh) 安全移动终端
JP2002055725A (ja) コード管理biosチップとそのコード管理方法
WO2016160762A1 (en) Sd card license mechanism

Legal Events

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