KR101977733B1 - 오류 기반 공격의 검출 방법 - Google Patents

오류 기반 공격의 검출 방법 Download PDF

Info

Publication number
KR101977733B1
KR101977733B1 KR1020120076105A KR20120076105A KR101977733B1 KR 101977733 B1 KR101977733 B1 KR 101977733B1 KR 1020120076105 A KR1020120076105 A KR 1020120076105A KR 20120076105 A KR20120076105 A KR 20120076105A KR 101977733 B1 KR101977733 B1 KR 101977733B1
Authority
KR
South Korea
Prior art keywords
error
memory device
secure memory
payload data
injected
Prior art date
Application number
KR1020120076105A
Other languages
English (en)
Other versions
KR20140008829A (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 KR1020120076105A priority Critical patent/KR101977733B1/ko
Priority to US13/939,792 priority patent/US9092621B2/en
Publication of KR20140008829A publication Critical patent/KR20140008829A/ko
Application granted granted Critical
Publication of KR101977733B1 publication Critical patent/KR101977733B1/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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

오류 기반 공격을 검출하기 위하여, 보안 메모리 장치에 포함되는 복수의 임시 레지스터들에 저장된 페이로드 데이터의 일관성 여부를 판단하여 페이로드 데이터를 선택적으로 초기화시킨다. 보안 메모리 장치에 저장된 보안 데이터에 대한 처리 동작 도중에 외부로부터 오류가 주입되는지 여부를 검출하여 페이로드 데이터에 포함된 카운트 값을 선택적으로 증가시킨다. 카운트 값 및 문턱 값에 기초하여 외부로부터 주입된 오류가 오류 기반 공격에 의해 발생한 것인지 여부를 판단한다.

Description

오류 기반 공격의 검출 방법{METHOD OF DETECTING FAULT ATTACK}
본 발명은 데이터의 보안에 관한 것으로서, 더욱 상세하게는 오류 기반 공격의 검출 방법에 관한 것이다.
스마트 카드와 같은 보안 메모리 장치는 암호키(cryptographic key), 주요 데이터(sensitive data), 주요 코드 등의 보안이 필요한 데이터를 처리할 수 있으며, 외부로부터의 불온한 공격 또는 보안 메모리 장치의 자체적인 문제로 인하여 상기 보안이 필요한 데이터에 에러가 발생할 수 있다. 예를 들어, 레이저나 엑스레이 등을 이용하여 오류가 반복적으로 주입되는 오류 기반 공격(fault attack)에 의하여 보안 메모리 장치에 저장된 데이터가 유출되거나 변질될 수 있고, 보안 메모리 장치의 동작 환경 등에 따라 일시적으로 발생하는 싱글 이벤트 업셋(single event upset; SEU)에 의해서 보안 메모리 장치에 저장된 데이터가 변경될 수 있다.
본 발명의 일 목적은 오류 기반 공격과 싱글 이벤트 업셋을 효율적으로 구별할 수 있는 오류 기반 공격의 검출 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 오류 기반 공격의 검출 방법에서는, 보안 메모리 장치에 포함되는 복수의 임시 레지스터(ephemeral register)들에 저장된 페이로드 데이터(payload data)의 일관성 여부를 판단하여 상기 페이로드 데이터를 선택적으로 초기화시키고, 상기 보안 메모리 장치에 저장된 보안 데이터에 대한 처리 동작 도중에 외부로부터 오류가 주입되는지 여부를 검출하여 상기 페이로드 데이터에 포함된 카운트 값을 선택적으로 증가시키며, 상기 카운트 값 및 문턱 값에 기초하여 상기 외부로부터 주입된 오류가 오류 기반 공격(fault attack)에 의해 발생한 것인지 여부를 판단한다.
상기 페이로드 데이터는 상기 카운트 값에 상응하는 에러 검출 코드 값을 더 포함할 수 있다. 상기 페이로드 데이터를 선택적으로 초기화시키는데 있어서, 상기 카운트 값에 포함되는 복수의 카운트 비트들 중 제1 비트와, 상기 에러 검출 값에 포함되는 복수의 에러 검출 코드 비트들 중 상기 제1 비트에 상응하는 제2 비트들이 서로 일치하는지 판단할 수 있다.
상기 페이로드 데이터를 선택적으로 초기화시키는데 있어서, 상기 제1 비트와 상기 제2 비트들이 모두 동일한 경우에 상기 페이로드 데이터를 이전 논리 상태로 유지할 수 있다. 상기 제1 비트와 상기 제2 비트들이 동일하지 않은 경우에 상기 페이로드 데이터를 초기화시킬 수 있다.
상기 보안 메모리 장치가 상기 복수의 임시 레지스터들의 데이터 보유 시간 이내에 파워 온(power on) 된 경우에 상기 페이로드 데이터는 상기 이전 논리 상태로 유지되고, 상기 보안 메모리 장치가 상기 복수의 임시 레지스터들의 데이터 보유 시간을 초과하여 파워 온 된 경우에 상기 페이로드 데이터는 초기화될 수 있다.
상기 카운트 값을 선택적으로 증가시키는데 있어서, 상기 외부로부터 오류가 주입되지 않은 경우에 상기 카운트 값을 이전 값으로 유지할 수 있다. 상기 외부로부터 오류가 주입된 경우에 상기 카운트 값을 증가시킬 수 있다.
상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것인지 여부를 판단하는데 있어서, 상기 카운트 값이 상기 문턱 값보다 작거나 같은 경우에 상기 외부로부터 주입된 오류가 싱글 이벤트 업셋(single event upset; SEU)에 의해 발생한 것으로 판단할 수 있다. 상기 카운트 값이 상기 문턱 값보다 큰 경우에 상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것으로 판단할 수 있다.
일 실시예에서, 기준 시간 동안 상기 외부로부터 오류가 주입되지 않은 경우에 상기 페이로드 데이터를 초기화시킬 수 있다.
일 실시예에서, 상기 보안 메모리 장치의 동작을 선택적으로 종료시킬 수 있다.
상기 보안 메모리 장치의 동작을 선택적으로 종료시키는데 있어서, 상기 외부로부터 주입된 오류가 싱글 이벤트 업셋에 의해 발생한 것으로 판단된 경우에 상기 보안 메모리 장치의 동작을 리셋시킬 수 있다. 상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것으로 판단된 경우에 상기 보안 메모리 장치의 동작을 종료시킬 수 있다.
일 실시예에서, 상기 보안 메모리 장치는 보안 검출기 및 프로세서를 포함할 수 있다. 상기 보안 검출기는 상기 외부로부터 오류가 주입되는지 검출하여 검출 신호를 발생하고, 상기 오류 기반 공격을 나타내기 위한 경보 신호를 발생할 수 있다. 상기 프로세서는 상기 보안 메모리 장치의 동작을 제어하고, 상기 검출 신호에 기초하여 상기 카운트 값을 증가시키며, 상기 경보 신호에 기초하여 상기 보안 메모리 장치의 동작을 종료시킬 수 있다.
일 실시예에서, 상기 보안 메모리 장치는 보안 검출기, 레지스터 제어기 및 프로세서를 포함할 수 있다. 상기 보안 검출기는 상기 외부로부터 오류가 주입되는지 검출하여 검출 신호를 발생할 수 있다. 상기 레지스터 제어기는 상기 검출 신호에 기초하여 상기 카운트 값을 증가시키며, 상기 오류 기반 공격을 나타내기 위한 경보 신호를 발생할 수 있다. 상기 프로세서는 상기 보안 메모리 장치의 동작을 제어하고, 상기 경보 신호에 기초하여 상기 보안 메모리 장치의 동작을 종료시킬 수 있다.
상기 복수의 임시 레지스터들 각각은 저장 블록, 제1 다이오드, 제2 다이오드 및 전원 공급 블록을 포함할 수 있다. 상기 저장 블록은 상기 페이로드 데이터에 포함된 복수의 비트들 중 적어도 하나를 저장할 수 있다. 상기 제1 다이오드는 상기 저장 블록과 제1 전압 사이에 연결될 수 있다. 상기 제2 다이오드는 상기 저장 블록과 제2 전압 사이에 연결될 수 있다. 상기 전원 공급 블록은 상기 저장 블록과 병렬로 연결되어 상기 저장 블록에 전원을 공급할 수 있다.
상기 저장 블록은 플립플롭 또는 래치를 포함하며, 상기 전원 공급 블록은 커패시터를 포함할 수 있다.
상기 저장 블록의 구조 및 상기 전원 공급 블록의 전하 저장 특성에 기초하여 상기 복수의 임시 레지스터들 각각의 데이터 보유 시간이 결정될 수 있다.
상기 일 목적을 달성하기 위해, 본 발명의 다른 실시예에 따른 오류 기반 공격의 검출 방법에서는, 보안 메모리 장치에 포함되는 복수의 제1 임시 레지스터(ephemeral register)들에 저장된 제1 페이로드 데이터(payload data)의 일관성 여부를 판단하여 상기 제1 페이로드 데이터를 선택적으로 초기화시키고, 상기 보안 메모리 장치에 저장된 보안 데이터에 대한 처리 동작 도중에 외부로부터 오류가 주입되는지 여부를 검출하여 상기 제1 페이로드 데이터에 포함된 제1 카운트 값을 선택적으로 증가시키며, 상기 제1 카운트 값 및 제1 문턱 값에 기초하여 상기 외부로부터 주입된 오류가 오류 기반 공격(fault attack)에 의해 발생한 것인지 여부를 판단하여 제1 판단 결과를 발생한다. 상기 보안 메모리 장치에 포함되고 상기 복수의 제1 임시 레지스터들과 데이터 보유 시간이 다른 복수의 제2 임시 레지스터들에 저장된 제2 페이로드 데이터의 일관성 여부를 판단하여 상기 제2 페이로드 데이터를 선택적으로 초기화시키고, 상기 보안 데이터에 대한 처리 동작 도중에 상기 외부로부터 오류가 주입되는지 여부를 검출하여 상기 제2 페이로드 데이터에 포함된 제2 카운트 값을 선택적으로 증가시키며, 상기 제2 카운트 값 및 상기 제1 문턱 값과 다른 제2 문턱 값에 기초하여 상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것인지 여부를 판단하여 제2 판단 결과를 발생한다. 상기 제1 판단 결과 및 상기 제2 판단 결과에 기초하여 상기 보안 메모리 장치의 동작을 선택적으로 종료시킨다.
상기와 같은 본 발명의 실시예들에 따른 오류 기반 공격의 검출 방법에서는, 전원 공급이 차단되더라도 상대적으로 짧은 시간 동안 데이터를 유지할 수 있는 복수의 임시 레지스터들에 저장된 페이로드 데이터를 이용함으로써, 오류 기반 공격과 싱글 이벤트 업셋을 효율적으로 구별할 수 있다. 또한 보안 메모리 장치에 전원이 공급되기 시작할 때마다 및/또는 보안 메모리 장치가 리셋될 때마다 페이로드 데이터의 선택적 초기화 동작, 카운트 값의 선택적 증가 동작, 및 오류 기반 공격 여부의 판단 동작을 반복 수행함으로써(즉, 보안 메모리 장치의 파워 온/오프 동작의 횟수를 추적함으로써), 오류 기반 공격과 싱글 이벤트 업셋을 효율적으로 구별할 수 있다.
도 1은 본 발명의 일 실시예에 따른 오류 기반 공격의 검출 방법을 나타내는 순서도이다.
도 2는 본 발명의 일 실시예에 따른 보안 메모리 장치를 포함하는 시스템을 나타내는 블록도이다.
도 3은 도 2의 시스템의 보안 메모리 장치에 포함되는 임시 레지스터의 일 예를 나타내는 도면이다.
도 4는 본 발명의 다른 실시예에 따른 보안 메모리 장치를 포함하는 시스템을 나타내는 블록도이다.
도 5는 도 1의 오류 기반 공격의 검출 방법의 일 예를 나타내는 순서도이다.
도 6a, 6b 및 6c는 도 5의 오류 기반 공격의 검출 방법을 설명하기 위한 도면들이다.
도 7은 도 1의 오류 기반 공격의 검출 방법의 다른 예를 나타내는 순서도이다.
도 8은 본 발명의 다른 실시예에 따른 오류 기반 공격의 검출 방법을 나타내는 순서도이다.
도 9는 도 8의 오류 기반 공격의 검출 방법의 일 예를 나타내는 순서도이다.
도 10은 본 발명의 또 다른 실시예에 따른 오류 기반 공격의 검출 방법을 나타내는 순서도이다.
도 11은 본 발명의 또 다른 실시예에 따른 보안 메모리 장치를 포함하는 시스템을 나타내는 블록도이다.
도 12는 본 발명의 실시예들에 따른 보안 메모리 장치를 모바일 기기에 응용한 예를 나타내는 도면이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 오류 기반 공격의 검출 방법을 나타내는 순서도이다.
본 발명의 실시예들에 따른 오류 기반 공격의 검출 방법은, 보안이 필요한 데이터를 처리하는 스마트 카드와 같은 보안 메모리 장치에서, 해커에 의한 반복적인 오류 기반 공격(fault attack)과 일시적인 싱글 이벤트 업셋(single event upset; SEU)을 구별하기 위하여 이용될 수 있다. 이하, 스마트 카드를 중심으로 본 발명의 실시예들을 설명하지만, 본 발명의 실시예들에 따른 오류 기반 공격의 검출 방법은 보안이 필요한 데이터를 처리하는 임의의 보안 메모리 장치 및/또는 집적 회로에서도 이용될 수 있다. 보안 메모리 장치의 구체적인 구성에 대해서는 도 2, 4 및 11의 예를 참조하여 후술하도록 한다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 오류 기반 공격의 검출 방법에서는, 보안 메모리 장치에 전원이 공급되거나 상기 보안 메모리 장치의 동작이 리셋된 경우에, 페이로드 데이터(payload data)의 일관성(consistent) 여부를 판단하여 상기 페이로드 데이터를 선택적으로 초기화시킨다(단계 S100). 상기 페이로드 데이터는 상기 보안 메모리 장치에 포함되는 복수의 임시 레지스터(ephemeral register)들에 저장되며, 상기 오류 기반 공격을 검출하는데 이용될 수 있다. 도 2 및 3을 참조하여 후술하는 바와 같이, 상기 임시 레지스터는 일반적인 휘발성 메모리와 다르게 전원 공급이 차단되더라도 미리 정해진 데이터 보유 시간(data retention time) 동안 데이터를 저장할 수 있다. 상기 임시 레지스터의 데이터 보유 시간은 일반적인 비휘발성 메모리의 데이터 보유 시간보다 짧을 수 있다.
상기 보안 메모리 장치에 저장된 보안 데이터에 대한 처리 동작 도중에 외부로부터 오류가 주입되는지 여부를 검출하여 상기 페이로드 데이터에 포함된 카운트 값을 선택적으로 증가시키고(단계 S200), 상기 카운트 값 및 문턱 값에 기초하여 상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것인지 여부를 판단한다(단계 S300). 예를 들어, 미리 정해진 횟수를 초과하여 오류가 주입된 경우에 상기 보안 메모리 장치는 상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것으로 판단할 수 있다. 상기 미리 정해진 횟수 이하의 오류가 주입된 경우에 상기 보안 메모리 장치는 상기 외부로부터 주입된 오류가 상기 싱글 이벤트 업셋에 의해 발생한 것으로 판단할 수 있다.
보안 메모리 장치는 보안이 필요한 데이터(즉, 보안 데이터)를 저장하고 이를 처리하므로, 해커들에 의해 다양한 공격을 받기 쉽다. 예를 들어, 보안 메모리 장치는 레이저나 엑스레이 등을 이용하여 오류가 반복적으로 주입되는 오류 기반 공격을 받을 수 있다. 일반적으로 오류 기반 공격이 시도되는 경우에 매우 많은 개수의 오류가 보안 메모리 장치에 주입되며, 해커들은 오류 주입 시도의 사이마다 보안 메모리 장치에 전원 공급을 차단하거나 보안 메모리 장치의 동작을 리셋하여 사용자가 해킹 시도를 알아차리지 못하도록 할 수 있다. 이러한 오류 기반 공격은 보안 데이터를 유출시키거나 변질시킬 수 있으므로, 보안 메모리 장치는 외부로부터의 공격이나 오류를 방지할 수 있는 수단 및 이미 발생한 데이터의 오류를 검출하여 후속 조치(예를 들어, 데이터 처리의 중지 또는 데이터의 삭제)를 취할 수 있는 수단을 구비할 필요가 있다. 한편, 오류 기반 공격 이외에 보안 메모리 장치의 동작 환경 등에 따라 일시적으로 발생하는 싱글 이벤트 업셋에 의해서 보안 데이터가 변경될 수 있으나, 싱글 이벤트 업셋에 의한 데이터의 에러는 보안 메모리 장치의 정상적인 동작에 있어서 무시할 수 있을 정도로 영향이 작다. 따라서, 싱글 이벤트 업셋에 의해 에러가 발생될 때마다 후속 조치를 취하는 경우에 보안 메모리 장치의 동작 성능이 저하되는 문제가 있었다.
오류 기반 공격과 싱글 이벤트 업셋을 구별하기 위하여, 종래의 보안 메모리 장치는 하나의 회로를 이용하여 동일한 연산을 적어도 2회 반복하고 이를 비교하는 시간 리던던시(time redundancy) 방식 또는 적어도 두 개의 동일한 회로를 이용하여 동일한 연산을 수행하고 이를 비교하는 하드웨어 리던던시(hardware redundancy) 방식을 이용하였다. 하지만, 상기 시간 리던던시 방식은 보안 메모리 장치의 동작 속도가 감소하고, 상기 하드웨어 리던던시 방식은 보안 메모리 장치의 크기가 증가하며, 상기 두 가지 방식 모두 전력 소모가 증가하는 문제가 있었다.
본 발명의 실시예들에 따른 오류 기반 공격의 검출 방법에서는, 전원 공급이 차단되더라도 상대적으로 짧은 시간 동안 데이터를 유지할 수 있는 상기 복수의 임시 레지스터들에 저장된 상기 페이로드 데이터에 기초하여 상기 오류 기반 공격과 상기 싱글 이벤트 업셋을 구별할 수 있다. 따라서, 반복적인 전원의 차단/공급을 통하여 상기 오류 기반 공격이 시도되더라도 상기 오류 기반 공격과 상기 싱글 이벤트 업셋을 효율적으로 구별할 수 있다. 또한 동작 속도의 감소, 크기 증가 및/또는 전력 소모의 증가없이 효율적으로 상기 오류 기반 공격과 상기 싱글 이벤트 업셋을 구별하는 보안 메모리 장치를 구현할 수 있다.
이하에서는 보안 메모리 장치의 구성의 예들을 참조하여, 본 발명의 실시예들에 따른 오류 기반 공격의 검출 방법을 더욱 상세하게 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 보안 메모리 장치를 포함하는 시스템을 나타내는 블록도이다.
도 2를 참조하면, 시스템(100)은 호스트(200) 및 보안 메모리 장치(300)를 포함한다.
보안 메모리 장치(300)는 호스트 인터페이스(310), 주프로세서(320), 보안 프로세서(330), 휘발성 메모리(340), 비휘발성 메모리(350), 보안 검출기(360), 타이머(370) 및 레지스터부(390)를 포함한다. 상기 구성요소들은 내부 버스(301)를 통하여 서로 전기적으로 연결되어 신호들을 주고받을 수 있다. 예를 들어, 보안 메모리 장치(300)는 스마트 카드일 수 있다.
호스트 인터페이스(310)는 호스트(200)와 연결된다. 주프로세서(320)는 호스트 인터페이스(310)를 통하여 호스트(200)와 통신할 수 있다. 예를 들어, 호스트 인터페이스(310)는 USB(Universal Serial Bus), MMC(Multi-Media Card), PCI-E(Peripheral Component Interconnect-Express), SAS(Serial-attached SCSI), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 호스트(200)와 통신하도록 구성될 수 있다.
주프로세서(320)는 보안 메모리 장치(300)의 전반적인 동작을 제어한다. 예를 들어, 주프로세서(320)는 휘발성 메모리(340), 비휘발성 메모리(350), 보안 검출기(360), 타이머(370) 및 레지스터부(390) 등의 동작을 제어하고, 명령어(Instruction) 또는 데이터를 페치하고 페치된 명령어 또는 데이터를 처리할 수 있으며, 특정 계산들 또는 태스크들과 같은 다양한 기능들을 실행할 수 있다. 주프로세서(320)는 마이크로프로세서 또는 중앙 처리 장치(Central Processing Unit; CPU)일 수 있다.
보안 프로세서(330)는 마이크로프로빙(Microprobing), 소프트웨어 공격(Software Attack), 도청(Eavesdropping), 오류 주입(Fault Injection) 등과 같은 부정 조작(Tampering) 공격으로부터 보호되도록 부정 조작 방지(Tamper-Resistant) 기능을 가질 수 있다. 일 실시예에서, 주프로세서(320) 및 보안 프로세서(330)는 서로 다른 집적 회로들 또는 칩들로 구현될 수 있다. 다른 실시예에서, 보안 프로세서(330)는 주프로세서(320)의 프로세싱 블록으로서 주프로세서(320) 내에 집적될 수 있다.
주프로세서(320) 및/또는 보안 프로세서(330)는 암호키(cryptographic key), 주요 데이터(sensitive data), 주요 코드 등의 보안 데이터를 처리할 수 있다. 상기와 같은 보안 데이터에 대한 처리 동작 도중에, 싱글 이벤트 업셋에 의해 오류가 주입되면 주프로세서(320)는 보안 메모리 장치(300)의 동작을 리셋시키고, 오류 기반 공격에 의해 오류가 주입되면 주프로세서(320)는 보안 메모리 장치(300)의 동작을 종료시킬 수 있다.
휘발성 메모리(340)는 주프로세서(320)에 대한 캐시 메모리(Cache Memory) 또는 작업 메모리(Working Memory)로 동작할 수 있다. 예를 들어, 휘발성 메모리(340)는 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM) 등과 같은 랜덤 액세스 메모리로 구현될 수 있다.
비휘발성 메모리(350)는 보안 메모리 장치(300)에 전원이 공급될 때 실질적으로 가장 먼저 실행되는 부트 이미지를 저장하거나, 보안 데이터 및/또는 그 밖의 일반 데이터를 저장할 수 있다. 예를 들어, 비휘발성 메모리(350)는 OTP 메모리, 마스크 ROM, PROM, EPROM, EEPROM, 플래시 메모리 등으로 구현될 수 있다.
보안 검출기(360)는 상기 외부로부터 오류가 주입되는지 검출하여 검출 신호(DS)를 발생하고, 상기 오류 기반 공격을 나타내기 위한 경보 신호(AS)를 발생할 수 있다. 예를 들어, 보안 검출기(360)는 오류 검출기(Fault Detector), 파워 글리치 검출기(Power Glitch Detector), 레이저 검출기(Laser Detector), 비정상 조건 검출기(Abnormal Condition Detector), 리셋 검출기(Reset Detector), 메탈 쉴드(Metal Shield), 데이터 경로 암호화(Data Path Encryption), 실난수 발생 장치(True Random Number Generator), 또는 이와 유사한 장치를 포함할 수 있다. 일 실시예에서, 보안 프로세서(330) 및 보안 검출기(360)는 서로 다른 집적 회로들 또는 칩들로 구현될 수 있다. 다른 실시예에서, 보안 검출기(360)는 보안 프로세서(330)의 검출 블록으로서 보안 프로세서(330) 내에 집적될 수 있다.
레지스터부(390)는 상기 오류 기반 공격을 검출하기 위하여 이용되는 상기 페이로드 데이터를 저장하며, 복수의 임시 레지스터들(392a, 392b, ..., 392n)을 포함할 수 있다. 도 6a, 6b 및 6c를 참조하여 후술하는 바와 같이, 상기 페이로드 데이터는 카운트 값 및 상기 카운트 값에 상응하는 에러 검출 코드 값을 포함하는 복수의 비트들로 구성되며, 복수의 임시 레지스터들(392a, 392b, ..., 392n) 각각은 상기 페이로드 데이터에 포함된 상기 복수의 비트들 중 적어도 하나를 저장할 수 있다. 예를 들어, 복수의 임시 레지스터들(392a, 392b, ..., 392n)은 상기 페이로드 데이터의 하나의 비트를 각각 저장할 수 있으며, 이 경우 복수의 임시 레지스터들(392a, 392b, ..., 392n)의 개수는 상기 페이로드 데이터의 비트 수와 실질적으로 동일할 수 있다.
일 실시예에서, 주프로세서(320)는 검출 신호(DS)에 기초하여 상기 페이로드 데이터에 포함된 상기 카운트 값을 증가시킬 수 있다. 또한 상기 카운트 값이 상기 문턱 값을 초과하여 경보 신호(AS)가 활성화된 경우에, 주프로세서(320)는 상기 보안 데이터의 처리를 중지하거나 상기 보안 데이터를 삭제하는 것과 같이 보안 메모리 장치(300)의 동작을 종료시킬 수 있다.
실시예에 따라서, 도 7을 참조하여 후술하는 바와 같이, 기준 시간 동안 상기 외부로부터 오류가 주입되지 않은 경우에 상기 페이로드 데이터가 초기화될 수 있다. 이 경우, 타이머(370)는 상기 기준 시간을 측정하기 위하여 이용될 수 있다.
한편, 도시하지는 않았지만, 보안 메모리 장치(300)는 휘발성 메모리(340) 및 비휘발성 메모리(350)를 제어하기 위한 별도의 메모리 컨트롤러를 더 포함할 수 있다.
도 3은 도 2의 시스템의 보안 메모리 장치에 포함되는 임시 레지스터의 일 예를 나타내는 도면이다.
도 3을 참조하면, 임시 레지스터(392)는 저장 블록(394), 제1 다이오드(D1), 제2 다이오드(D2) 및 전원 공급 블록(396)을 포함할 수 있다.
저장 블록(394)은 상기 페이로드 데이터에 포함된 복수의 비트들 중 적어도 하나를 저장할 수 있다. 예를 들어, 저장 블록(394)은 클럭 신호(CLK)에 응답하여 입력 신호(DI)를 래치하여 출력 신호(DO)를 발생하는 플립플롭(FF1)을 포함하여 구현될 수 있다. 실시예에 따라서, 플립플롭(FF1)의 셋(set) 입력 및 리셋(reset) 입력은 사용되지 않을 수 있으며, 이 경우 저장 블록(394)은 플립플롭(FF1) 대신에 래치를 포함하여 구현될 수 있다. 한편, 도시하지는 않았지만, 저장 블록(394)은 적어도 하나의 비트를 저장할 수 있는 임의의 메모리 또는 메모리 어레이의 형태로 구현될 수도 있다.
제1 다이오드(D1)는 저장 블록(394)과 제1 전압(VDD, 즉 전원 전압) 사이에 연결되며, 제2 다이오드(D2)는 저장 블록(394)과 제2 전압(VSS, 즉 접지 전압) 사이에 연결될 수 있다. 전원 공급 블록(396)은 저장 블록(394)과 병렬로 연결되어 저장 블록(394)에 전원을 공급할 수 있다. 예를 들어, 전원 공급 블록(396)은 커패시터(C1)를 포함하여 구현될 수 있다. 한편, 도시하지는 않았지만, 전원 공급 블록(396)은 임의의 내장 배터리(embedded battery)의 형태로 구현될 수도 있다.
상술한 바와 같이, 임시 레지스터(392)는 일반적인 휘발성 메모리와 다르게 전원 공급이 차단되더라도 미리 정해진 데이터 보유 시간 동안 상기 페이로드 데이터에 포함된 복수의 비트들 중 적어도 하나를 저장할 수 있다. 즉, 보안 메모리 장치(300)에 전원이 공급되는 동안에 저장 블록(394)은 전원 전압(VDD)에 기초하여 안정적으로 전원을 제공받아 상기 페이로드 데이터에 포함된 복수의 비트들 중 적어도 하나를 저장할 수 있으며, 보안 메모리 장치(300)에 전원 공급이 차단된 후에 저장 블록(394)은 전원 공급 블록(396)으로부터 제공되는 전원에 기초하여 상기 데이터 보유 시간 동안 상기 페이로드 데이터에 포함된 복수의 비트들 중 적어도 하나를 저장할 수 있다. 이를 위하여, 제1 다이오드(D1)는 애노드 단자가 전원 전압(VDD)과 연결되고, 제2 다이오드(D2)는 캐소드 단자가 접지 전압(VSS)과 연결될 수 있다.
일 실시예에서, 임시 레지스터(392)의 상기 데이터 보유 시간은 저장 블록(394)의 구조 및 전원 공급 블록(396)의 전하 저장 특성에 기초하여 결정될 수 있다. 예를 들어, 상기 데이터 보유 시간은 전원 공급 블록(396)의 전하 저장 용량이 커질수록 증가할 수 있으며, 저장 블록(394)의 구체적인 구조에 따라 다양하게 변경될 수 있다. 예를 들어, 상기 데이터 보유 시간은 약 1초 이상에서 약 10분 이하로 결정될 수 있다.
도 4는 본 발명의 다른 실시예에 따른 보안 메모리 장치를 포함하는 시스템을 나타내는 블록도이다.
도 4를 참조하면, 시스템(100a)은 호스트(200) 및 보안 메모리 장치(300a)를 포함한다.
보안 메모리 장치(300a)는 호스트 인터페이스(310), 주프로세서(321), 보안 프로세서(330), 휘발성 메모리(340), 비휘발성 메모리(350), 보안 검출기(361), 타이머(370), 레지스터부(390) 및 레지스터 제어기(391)를 포함한다. 상기 구성요소들은 내부 버스(301)를 통하여 서로 전기적으로 연결되어 신호들을 주고받을 수 있다.
도 4의 보안 메모리 장치(300a)는 레지스터 제어기(391)를 더 포함하는 것을 제외하면 도 1의 보안 메모리 장치(300)와 실질적으로 동일할 수 있으며, 중복되는 설명은 생략하도록 한다.
보안 검출기(361)는 상기 외부로부터 오류가 주입되는지 검출하여 검출 신호(DS)를 발생할 수 있다. 레지스터 제어기(391)는 검출 신호(DS)에 기초하여 상기 페이로드 데이터에 포함된 상기 카운트 값을 증가시키며, 상기 오류 기반 공격을 나타내기 위한 경보 신호(AS)를 발생할 수 있다. 주프로세서(321)는 상기 카운트 값이 상기 문턱 값을 초과하여 경보 신호(AS)가 활성화된 경우에 보안 메모리 장치(300a)의 동작을 종료시킬 수 있다.
도 4의 보안 메모리 장치(300a)는 레지스터부(390)를 제어하고 경보 신호(AS)를 발생하는 별도의 레지스터 제어기(391)를 포함함으로써, 주프로세서(321)의 부하가 감소될 수 있다.
도 5는 도 1의 오류 기반 공격의 검출 방법의 일 예를 나타내는 순서도이다.
도 1 내지 5를 참조하면, 상기 페이로드 데이터를 선택적으로 초기화시키는데 있어서(도 1의 단계 S100), 상기 보안 메모리 장치에 전원이 공급되거나 상기 보안 메모리 장치의 동작이 리셋된 경우에 상기 페이로드 데이터의 일관성 여부를 판단할 수 있다(단계 S110). 상술한 바와 같이, 상기 페이로드 데이터는 카운트 값 및 상기 카운트 값에 상응하는 에러 검출 코드 값을 포함할 수 있다. 주프로세서(도 2의 320) 또는 레지스터 제어기(도 4의 391)는 상기 카운트 값에 포함되는 복수의 카운트 비트들 중 제1 비트와, 상기 에러 검출 값에 포함되는 복수의 에러 검출 코드 비트들 중 상기 제1 비트에 상응하는 제2 비트들이 서로 일치하는지 판단할 수 있다.
도 6a, 6b 및 6c는 도 5의 오류 기반 공격의 검출 방법을 설명하기 위한 도면들이다.
도 6a 및 6c를 참조하면, 상기 페이로드 데이터의 카운트 값은 복수의 카운트 비트들(BITA, BITB)을 포함하며, 상기 페이로드 데이터의 상기 에러 검출 코드 값은 복수의 에러 검출 코드 비트들(BIT1, BIT2, BIT3, BIT4)을 포함할 수 있다. 제1 카운트 비트(BITA)는 제1 에러 검출 코드 비트들(BIT1, BIT2)에 상응하며, 제2 카운트 비트(BITB)는 제2 에러 검출 코드 비트들(BIT3, BIT4)에 상응할 수 있다.
일 실시예에서, 상기 에러 검출 코드 비트는 상응하는 카운트 비트를 복사하여 생성될 수 있으며, 따라서 정상적인 경우에 상기 에러 검출 코드 비트와 상기 상응하는 카운트 비트는 실질적으로 동일할 수 있다. 예를 들어, 도 6a에 도시된 것처럼 상기 카운트 값이 '00'인 경우에, 제1 카운트 비트(BITA)인 '0'을 복사하여 제1 에러 검출 코드 비트들(BIT1, BIT2)을 생성하고, 제2 카운트 비트(BITB)인 '0'을 복사하여 제2 에러 검출 코드 비트들(BIT3, BIT4)을 생성할 수 있다. 또한, 도 6c에 도시된 것처럼 상기 카운트 값이 '01'인 경우에, 제1 카운트 비트(BITA)인 '0'을 복사하여 제1 에러 검출 코드 비트들(BIT1, BIT2)을 생성하고, 제2 카운트 비트(BITB)인 '1'을 복사하여 제2 에러 검출 코드 비트들(BIT3, BIT4)을 생성할 수 있다. 따라서, 제1 카운트 비트(BITA)는 제1 에러 검출 코드 비트들(BIT1, BIT2)과 실질적으로 동일하고, 제2 카운트 비트(BITB)는 제2 에러 검출 코드 비트들(BIT3, BIT4)과 실질적으로 동일할 수 있으며, 이러한 경우에 상기 페이로드 데이터가 일관성이 있는 것으로 판단될 수 있다.
도 6b를 참조하면, 상기 보안 메모리 장치에 전원 공급이 차단된 후 임시 레지스터(392)의 데이터 보유 시간을 초과하여 상기 보안 메모리 장치에 전원이 공급된 경우에, 상기 에러 검출 코드 비트와 상기 상응하는 카운트 비트는 서로 동일하지 않을 수 있다. 즉, 상기 데이터 보유 시간이 초과됨에 따라 임시 레지스터(392)에 저장된 값이 변경될 수 있다. 예를 들어, 도 6b에 도시된 것처럼 제1 카운트 비트(BITA)는 '0'이지만, 상기 데이터 보유 시간의 초과에 따라 상기 제1 에러 검출 코드 비트들 중 하나(BIT2)가 제1 카운트 비트(BITA)와 다른 '1'일 수 있으며, 이러한 경우에 상기 페이로드 데이터가 일관성이 없는 것으로 판단될 수 있다.
도 6a, 6b 및 6c에서는 상기 카운트 값이 2비트의 데이터이고 하나의 카운트 비트가 두 개의 에러 검출 코드 비트들에 대응하는 것으로 도시하였지만, 실시예에 따라서 상기 카운트 값 및 상기 에러 검출 값은 임의의 비트의 데이터일 수 있다.
다시 도 5를 참조하면, 상기 페이로드 데이터가 일관성이 있는 것으로 판단된 경우에(단계 S110: 예), 즉 상기 카운트 비트와 상기 상응하는 에러 검출 코드 비트들이 실질적으로 동일한 경우에, 주프로세서(도 2의 320) 또는 레지스터 제어기(도 4의 391)는 상기 페이로드 데이터를 이전 논리 상태로 유지할 수 있다(단계 S120).
상기 페이로드 데이터가 일관성이 없는 것으로 판단된 경우에(단계 S110: 아니오), 즉 상기 카운트 비트와 상기 상응하는 에러 검출 코드 비트들이 동일하지 않은 경우에, 주프로세서(도 2의 320) 또는 레지스터 제어기(도 4의 391)는 상기 페이로드 데이터를 초기화시킬 수 있다(단계 S130). 예를 들어, 도 6a에 도시된 것처럼 상기 카운트 값을 '00'으로 초기화하고 상기 카운트 값에 상응하도록 상기 에러 검출 코드 값을 생성하여 상기 페이로드 데이터가 초기화될 수 있다.
다시 말하면, 본 발명의 실시예들에 따른 오류 기반 공격의 검출 방법에서는, 상기 보안 메모리 장치가 파워 오프(power off) 된 후 임시 레지스터(392)의 데이터 보유 시간 이내에 파워 온(power on) 된 경우에 상기 페이로드 데이터가 상기 이전 논리 상태로 유지되며, 상기 보안 메모리 장치가 파워 오프 된 후 임시 레지스터(392)의 데이터 보유 시간을 초과하여 파워 온 된 경우에 상기 페이로드 데이터가 초기화될 수 있다.
상기 카운트 값을 선택적으로 증가시키는데 있어서(도 1의 단계 S200), 주프로세서(도 2의 320 또는 도 4의 321) 및/또는 보안 프로세서(330)는 상기 보안 데이터에 대한 처리 동작을 수행할 수 있다(단계 S210). 보안 검출기(도 2의 360 또는 도 4의 361)는 상기 보안 데이터에 대한 처리 동작 도중에 외부로부터 오류가 주입되는지 여부를 검출할 수 있으며(단계 S220), 검출 신호(DS)를 발생할 수 있다.
상기 외부로부터 오류가 주입되지 않은 경우에(단계 S220: 아니오), 즉 검출 신호(DS)가 비활성화된 경우에, 주프로세서(도 2의 320) 또는 레지스터 제어기(도 4의 391)는 상기 카운트 값을 이전 값으로 유지할 수 있으며(단계 S230), 주프로세서(도 2의 320 또는 도 4의 321) 및/또는 보안 프로세서(330)는 상기 보안 데이터에 대한 처리 동작을 계속 수행할 수 있다.
상기 외부로부터 오류가 주입된 경우에(단계 S220: 예), 즉 검출 신호(DS)가 활성화된 경우에, 주프로세서(도 2의 320) 또는 레지스터 제어기(도 4의 391)는 상기 카운트 값을 증가시킬 수 있다(단계 S240). 예를 들어, 상기 이전 값이 '00'인 경우에, 상기 카운트 값은 도 6c에 도시된 것처럼 '01'로 증가되고, 이에 따라 상기 페이로드 데이터는 '010011'의 값을 가질 수 있다. 상기 이전 값이 '01'인 경우에, 도시하지는 않았지만 상기 카운트 값은 '10'으로 증가되고, 이에 따라 상기 페이로드 데이터는 '101100'의 값을 가질 수 있다.
상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것인지 여부를 판단하는데 있어서(도 1의 단계 S300), 보안 검출기(도 2의 360) 또는 레지스터 제어기(도 4의 391)는 상기 카운트 값과 상기 문턱 값을 비교할 수 있으며(단계 S310), 경보 신호(AS)를 발생할 수 있다.
상기 카운트 값이 상기 문턱 값보다 큰 경우에(단계 S310: 예), 즉 상기 보안 메모리 장치에 미리 정해진 횟수를 초과하여 오류가 주입되어 경보 신호(AS)가 활성화된 경우에, 주프로세서(도 2의 320 또는 도 4의 321)는 상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것으로 판단할 수 있다(단계 S320). 상기 카운트 값이 상기 문턱 값보다 작거나 같은 경우에(단계 S310: 아니오), 즉 상기 보안 메모리 장치에 상기 미리 정해진 횟수 이하의 오류가 주입되어 경보 신호(AS)가 비활성화된 경우에, 주프로세서(도 2의 320 또는 도 4의 321)는 상기 외부로부터 주입된 오류가 상기 싱글 이벤트 업셋에 의해 발생한 것으로 판단할 수 있다(단계 S330).
일 실시예에서, 상기 문턱 값은 상기 보안 메모리 장치의 소프트 에러율(soft error rate: SER)에 따라 결정될 수 있다. 예를 들어, 상기 문턱 값이 증가할수록 상기 오류 기반 공격에 대한 허위 경보(false alarm)의 발생이 감소될 수 있다.
상술한 바와 같이, 도 5의 오류 기반 공격의 검출 방법에서는, 전원 공급이 차단되더라도 상대적으로 짧은 시간 동안 데이터를 유지하는 상기 복수의 임시 레지스터들에 저장된 상기 페이로드 데이터를 이용함으로써, 상기 오류 기반 공격과 상기 싱글 이벤트 업셋을 효율적으로 구별할 수 있다. 또한 상기 보안 메모리 장치에 전원이 공급되기 시작할 때마다 및/또는 상기 보안 메모리 장치가 리셋될 때마다 상기 페이로드 데이터의 선택적 초기화 동작, 상기 카운트 값의 선택적 증가 동작, 및 상기 오류 기반 공격 여부의 판단 동작을 반복 수행함으로써(즉, 상기 보안 메모리 장치의 파워 온/오프 동작의 횟수를 추적함으로써), 상기 오류 기반 공격과 상기 싱글 이벤트 업셋을 효율적으로 구별할 수 있다.
도 7은 도 1의 오류 기반 공격의 검출 방법의 다른 예를 나타내는 순서도이다.
도 7의 오류 기반 공격의 검출 방법은, 기준 시간 동안 상기 외부로부터 오류가 주입되지 않은 경우에 상기 페이로드 데이터를 초기화시키는 단계를 더 포함하는 것을 제외하면, 도 5의 오류 기반 공격의 검출 방법과 실질적으로 동일할 수 있다. 즉, 도 7의 단계 S110, S120, S130, S210, S220, S230, S240, S310, S320 및 S330은 각각 도 5의 단계 S110, S120, S130, S210, S220, S230, S240, S310, S320 및 S330과 실질적으로 동일할 수 있다.
도 7을 참조하면, 상기 보안 데이터에 대한 처리 동작 도중에 상기 외부로부터 오류가 주입되지 않아(단계 S220: 아니오) 상기 카운트 값이 이전 값으로 유지(단계 S230)된 이후에, 타이머(370)는 상기 기준 시간이 초과되었는지 여부를 판단하며(단계 S410), 시간 초과 신호를 발생할 수 있다.
상기 기준 시간이 초과되지 않은 경우에(단계 S410: 아니오), 즉 상기 시간 초과 신호가 비활성화된 경우에, 주프로세서(도 2의 320 또는 도 4의 321) 및/또는 보안 프로세서(330)는 상기 보안 데이터에 대한 처리 동작을 계속 수행할 수 있다.
상기 기준 시간이 초과된 경우에(단계 S410: 예), 즉 상기 기준 시간 동안 상기 외부로부터 오류가 주입되지 않아 상기 시간 초과 신호가 활성화된 경우에, 주프로세서(도 2의 320) 또는 레지스터 제어기(도 4의 391)는 상기 페이로드 데이터를 초기화시키고(단계 S130) 주프로세서(도 2의 320 또는 도 4의 321) 및/또는 보안 프로세서(330)는 상기 보안 데이터에 대한 처리 동작을 계속 수행할 수 있다.
오류 기반 공격이 시도될 때, 오류 주입 시도의 사이마다 보안 메모리 장치에 전원 공급을 차단하거나 보안 메모리 장치의 동작을 리셋하는 경우가 많으나, 보안 메모리 장치에 전원이 지속적으로 공급되는 도중에 오류 기반 공격이 시도될 수도 있다. 상기와 같이 보안 메모리 장치가 지속적으로 파워 온 된 경우에, 상대적으로 짧은 시간 동안에 오류 주입이 복수 회 검출된다면 오류 기반 공격이 시도되고 있을 확률이 상대적으로 높다. 하지만 오류 주입 시도 사이의 간격이 길어지면 상기 주입된 오류는 싱글 이벤트 업셋에 의해 발생되었을 확률이 높으며, 도 5에 도시된 것처럼 누적적으로 카운트 값을 증가시키는 경우에는 상기 오류 기반 공격에 대한 허위 경보가 발생할 수 있다.
도 7의 오류 기반 공격의 검출 방법에서는, 상기 기준 시간 동안 상기 외부로부터 오류가 주입되지 않은 경우에 상기 페이로드 데이터 및 상기 페이로드 데이터에 포함된 상기 카운트 값을 초기화시키는 단계를 더 포함함으로써, 보안 메모리 장치가 지속적으로 파워 온 된 상태에서도 상기 오류 기반 공격에 대한 허위 경보의 발생이 감소될 수 있다.
도 8은 본 발명의 다른 실시예에 따른 오류 기반 공격의 검출 방법을 나타내는 순서도이다.
도 8을 참조하면, 본 발명의 다른 실시예에 따른 오류 기반 공격의 검출 방법에서는, 페이로드 데이터의 일관성 여부를 판단하여 상기 페이로드 데이터를 선택적으로 초기화시키고(단계 S100), 보안 메모리 장치에 저장된 보안 데이터에 대한 처리 동작 도중에 외부로부터 오류가 주입되는지 여부를 검출하여 상기 페이로드 데이터에 포함된 카운트 값을 선택적으로 증가시키고(단계 S200), 상기 카운트 값 및 문턱 값에 기초하여 상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것인지 여부를 판단하며(단계 S300), 상기 판단 결과에 기초하여 상기 보안 메모리 장치의 동작을 선택적으로 종료시킨다(단계 S500).
도 8의 오류 기반 공격의 검출 방법은, 상기 보안 메모리 장치의 동작을 선택적으로 종료시키는 단계를 더 포함하는 것을 제외하면, 도 1의 오류 기반 공격의 검출 방법과 실질적으로 동일할 수 있다. 즉, 도 8의 단계 S100, S200 및 S300은 각각 도 1의 단계 S100, S200 및 S300과 실질적으로 동일할 수 있다.
도 9는 도 8의 오류 기반 공격의 검출 방법의 일 예를 나타내는 순서도이다.
도 9의 단계 S110, S120, S130, S210, S220, S230, S240, S310, S320 및 S330은 각각 도 5의 단계 S110, S120, S130, S210, S220, S230, S240, S310, S320 및 S330과 실질적으로 동일할 수 있다.
도 8 및 9를 참조하면, 상기 보안 메모리 장치의 동작을 선택적으로 종료시키는데 있어서(도 8의 단계 S500), 상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것으로 판단된 경우에, 주프로세서(도 2의 320 또는 도 4의 321)는 상기 보안 메모리 장치의 동작을 종료시킬 수 있다(단계 S510). 예를 들어, 주프로세서(도 2의 320 또는 도 4의 321)는 상기 보안 데이터의 처리를 중지하거나 상기 보안 데이터를 삭제할 수 있다.
상기 외부로부터 주입된 오류가 싱글 이벤트 업셋에 의해 발생한 것으로 판단된 경우에, 주프로세서(도 2의 320 또는 도 4의 321)는 상기 보안 메모리 장치의 동작을 리셋시킬 수 있으며(단계 S520), 상기 보안 메모리 장치는 상기 페이로드 데이터의 선택적 초기화 동작, 상기 카운트 값의 선택적 증가 동작, 및 상기 오류 기반 공격 여부의 판단 동작을 다시 수행할 수 있다. 상기 싱글 이벤트 업셋이 발생된 경우에, 상기 주입된 오류로 인하여 상기 보안 데이터에 에러가 발생하고, 이에 따라 상기 보안 데이터에 대한 처리 동작이 성공적으로 수행될 수 없으므로, 상기 오류 기반 공격의 검출 방법을 처음부터 다시 수행하여 상기 보안 데이터에 대한 처리 동작이 성공적으로 수행되도록 할 수 있다.
실시예에 따라서, 도 9의 오류 기반 공격의 검출 방법은, 도 7을 참조하여 상술한 기준 시간 동안 상기 외부로부터 오류가 주입되지 않은 경우에 상기 페이로드 데이터를 초기화시키는 단계를 더 포함할 수 있다.
도 10은 본 발명의 또 다른 실시예에 따른 오류 기반 공격의 검출 방법을 나타내는 순서도이다.
도 10을 참조하면, 본 발명의 또 다른 실시예에 따른 오류 기반 공격의 검출 방법에서는, 제1 페이로드 데이터의 일관성 여부를 판단하여 상기 제1 페이로드 데이터를 선택적으로 초기화시키고, 보안 데이터에 대한 처리 동작 도중에 외부로부터 오류가 주입되는지 여부를 검출하여 상기 제1 페이로드 데이터에 포함된 제1 카운트 값을 선택적으로 증가시키며, 상기 제1 카운트 값 및 제1 문턱 값에 기초하여 상기 외부로부터 주입된 오류가 오류 기반 공격에 의해 발생한 것인지 여부를 판단하여 제1 판단 결과를 발생한다(단계 S600). 상기 제1 페이로드 데이터는 보안 메모리 장치에 포함되는 복수의 제1 임시 레지스터들에 저장되며, 상기 오류 기반 공격을 검출하는데 이용될 수 있다. 도 10의 단계 S600은 상기 제1 페이로드 데이터 및 상기 제1 문턱 값을 이용하는 것을 제외하면 도 1의 오류 기반 공격의 검출 방법과 실질적으로 동일할 수 있으며, 도 5 또는 도 7에 도시된 실시예들과 같이 수행될 수 있다.
제2 페이로드 데이터의 일관성 여부를 판단하여 상기 제2 페이로드 데이터를 선택적으로 초기화시키고, 보안 데이터에 대한 처리 동작 도중에 외부로부터 오류가 주입되는지 여부를 검출하여 상기 제2 페이로드 데이터에 포함된 제2 카운트 값을 선택적으로 증가시키며, 상기 제2 카운트 값 및 제2 문턱 값에 기초하여 상기 외부로부터 주입된 오류가 오류 기반 공격에 의해 발생한 것인지 여부를 판단하여 제2 판단 결과를 발생한다(단계 S700). 상기 제2 페이로드 데이터는 보안 메모리 장치에 포함되는 복수의 제2 임시 레지스터들에 저장되며, 상기 오류 기반 공격을 검출하는데 이용될 수 있다. 상기 제2 임시 레지스터들의 데이터 보유 시간은 상기 제1 임시 레지스터들의 데이터 보유 시간과 다르고, 상기 제2 문턱 값은 상기 제1 문턱 값과 다르다. 도 10의 단계 S700은 상기 제2 페이로드 데이터 및 상기 제2 문턱 값을 이용하는 것을 제외하면 도 1의 오류 기반 공격의 검출 방법과 실질적으로 동일할 수 있으며, 도 5 또는 도 7에 도시된 실시예들과 같이 수행될 수 있다. 도 10의 단계 S600 및 S700은 실질적으로 동시에 수행될 수 있다.
상기 제1 판단 결과 및 상기 제2 판단 결과에 기초하여 상기 보안 메모리 장치의 동작을 선택적으로 종료시킨다(단계 S800). 예를 들어, 단계 S600에서 상기 오류 기반 공격이 시도된 것으로 판단된 경우, 단계 S700에서 상기 오류 기반 공격이 시도된 것으로 판단된 경우, 및 단계 S600과 S700 모두에서 상기 오류 기반 공격이 시도된 것으로 판단된 경우에 상기 보안 메모리 장치의 동작이 종료될 수 있다.
도 10의 오류 기반 공격의 검출 방법에서는, 데이터 보유 시간이 다른 제1 및 제2 임시 레지스터들에 저장되고 서로 다른 제1 및 제2 페이로드 데이터를 이용하며, 특히 상기 제1 및 제2 페이로드 데이터에 포함되고 서로 다른 제1 및 제2 카운트 값과 서로 다른 제1 및 제2 문턱 값을 이용하여 오류 기반 공격을 검출한다. 다시 말하면, 상기 오류 기반 공격과 상기 싱글 이벤트 업셋을 구별하기 위한 서로 다른 두 가지 조건을 설정하고, 상기 두 가지 조건 중에서 적어도 하나의 조건을 만족하는 경우에 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생된 것으로 판단함으로써, 상기 오류 기반 공격에 대한 허위 경보의 발생이 감소되고 상기 오류 기반 공격과 상기 싱글 이벤트 업셋을 효율적으로 구별할 수 있다.
한편, 도시하지는 않았지만, 실시예에 따라서 서로 다른 복수 개의 페이로드 데이터에 각각 포함되는 복수 개의 카운트 값들 및 서로 다른 복수 개의 문턱 값을 이용하여 오류 기반 공격을 검출할 수 있다. 즉, 상기 오류 기반 공격과 상기 싱글 이벤트 업셋을 구별하기 위한 서로 다른 복수 개의 조건을 설정하고, 상기 복수 개의 조건 중에서 적어도 하나의 조건을 만족하는 경우에 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생된 것으로 판단할 수 있다.
도 11은 본 발명의 또 다른 실시예에 따른 보안 메모리 장치를 포함하는 시스템을 나타내는 블록도이다.
도 11을 참조하면, 시스템(100b)은 호스트(200) 및 보안 메모리 장치(300b)를 포함한다.
보안 메모리 장치(300b)는 호스트 인터페이스(310), 주프로세서(320), 보안 프로세서(330), 휘발성 메모리(340), 비휘발성 메모리(350), 보안 검출기(360), 타이머(370), 제1 레지스터부(410) 및 제2 레지스터부(420)를 포함한다. 상기 구성요소들은 내부 버스(301)를 통하여 서로 전기적으로 연결되어 신호들을 주고받을 수 있다.
도 11의 보안 메모리 장치(300b)는 두 개의 레지스터부들(410, 420)을 포함하는 것을 제외하면 도 1의 보안 메모리 장치(300)와 실질적으로 동일할 수 있다.
제1 레지스터부(410)는 상기 오류 기반 공격을 검출하기 위하여 도 10의 단계 S600에서 이용되는 상기 제1 페이로드 데이터를 저장하며, 복수의 제1 임시 레지스터들(412a, 412b, ..., 412n)을 포함할 수 있다. 제2 레지스터부(420)는 상기 오류 기반 공격을 검출하기 위하여 도 10의 단계 S700에서 이용되는 상기 제2 페이로드 데이터를 저장하며, 복수의 제2 임시 레지스터들(422a, 422b, ..., 422n)을 포함할 수 있다.
제1 임시 레지스터들(412a, 412b, ..., 412n)의 데이터 보유 시간과 제2 임시 레지스터들(422a, 422b, ..., 422n)의 데이터 보유 시간은 서로 다를 수 있다. 예를 들어, 제2 임시 레지스터들(422a, 422b, ..., 422n)의 데이터 보유 시간이 제1 임시 레지스터들(412a, 412b, ..., 412n)의 데이터 보유 시간보다 길 수 있으며, 이 경우 상기 제2 문턱 값이 상기 제1 문턱 값보다 클 수 있다.
실시예에 따라서, 상기 보안 메모리 장치는 도 4에 도시된 것처럼 레지스터 제어기를 더 포함하여 구현될 수도 있다. 한편, 도시하지는 않았지만, 서로 다른 복수 개의 페이로드 데이터를 이용하여 오류 기반 공격을 검출하는 경우에, 상기 보안 메모리 장치는 복수 개의 레지스터부를 포함하여 구현될 수 있다.
도 12는 본 발명의 실시예들에 따른 보안 메모리 장치를 모바일 기기에 응용한 예를 나타내는 도면이다.
도 12를 참조하면, 시스템은 모바일 기기(700) 및 보안 메모리 장치(800)를 포함한다.
보안 메모리 장치(800)는 복수의 접속 핀들(810) 및 임시 레지스터(820)를 포함한다. 도시하지는 않았지만, 보안 메모리 장치(800)는 내부 버스, 호스트 인터페이스, 주프로세서, 보안 프로세서, 휘발성 메모리, 비휘발성 메모리, 보안 검출기, 타이머를 더 포함할 수 있다.
모바일 기기(700)와 보안 메모리 장치(800) 사이에 신호들이 송수신되도록 복수의 접속 핀들(810)은 모바일 기기(700)에 연결될 수 있다. 복수의 접속 핀들(810)은 클럭 핀, 커맨드 핀, 데이터 핀 및/또는 리셋 핀을 포함할 수 있다.
임시 레지스터(820)는 오류 기반 공격을 검출하기 위하여 이용되는 페이로드 데이터를 저장한다. 보안 메모리 장치(800)는 도 1 내지 11을 참조하여 상술한 것처럼, 보안 메모리 장치(800)에 전원이 공급되기 시작할 때마다, 보안 메모리 장치(800)가 리셋될 때마다, 및/또는 보안 메모리 장치(800)가 지속적으로 파워 온 된 상태에서 상기 페이로드 데이터의 선택적 초기화 동작, 상기 페이로드 데이터에 포함된 카운트 값의 선택적 증가 동작, 및 상기 오류 기반 공격 여부의 판단 동작을 반복 수행하여 상기 오류 기반 공격과 상기 싱글 이벤트 업셋을 효율적으로 구별할 수 있다.
보안 메모리 장치(800)는 멀티미디어 카드(MultiMedia Card; MMC), 임베디드 멀티미디어 카드(embedded MultiMedia Card; eMMC), 하이브리드 임베디드 멀티미디어 카드(hybrid embedded MultiMedia Card; hybrid eMMC), SD(Secure Digital) 카드, 마이크로 SD 카드, 메모리 스틱(Memory Stick), ID 카드, PCMCIA(Personal Computer Memory Card International Association) 카드, 칩 카드(Chip Card), USB 카드, 스마트 카드(Smart Card), CF 카드(Compact Flash Card)등과 같은 다양한 형태의 메모리 카드로 구현될 수 있다.
실시예에 따라서, 모바일 기기(700)는 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 태블릿(Tablet) PC, 노트북(Laptop Computer), 개인 정보 단말기(personal digital assistant; PDA), 휴대형 멀티미디어 플레이어(portable multimedia player; PMP), 디지털 카메라(Digital Camera), 음악 재생기(Music Player), 휴대용 게임 콘솔(portable game console), 네비게이션(Navigation) 등과 같은 임의의 모바일 기기일 수 있다.
이상, 임시 레지스터에 저장된 페이로드 데이터를 이용하여 반복적인 전원의 차단 공급을 통하여 시도되는 오류 기반 공격의 검출 방법에 대하여 설명하였으나, 임시 레지스터를 이용하여 전원의 변동(perturbation) 없이 정상적인 조건에서 시도되는 부채널 분석(side channel analysis) 및/또는 사전 공격(dictionary attack)과 같은 다양한 종류의 공격을 검출하고 방어할 수 있다. 예를 들어, 임시 레지스터를 카운터로 사용하여 주요 데이터가 사용될 때마다 카운트 값을 증가시키고, 상기 카운트 값이 미리 정해진 기준 값을 초과하여 매우 큰 값을 가지는 경우에, 미리 정해진 시간 동안 보안 메모리 장치의 동작 속도를 감소시키거나 보안 메모리 장치를 슬립(sleep) 상태로 동작시킬 수 있다. 따라서, 부채널 분석 및/또는 사전 공격을 수행하는데 필요한 정보를 모으는 시간을 증가시켜 이를 효율적으로 방어할 수 있다.
본 발명은 보안 데이터를 처리하고 보안이 요구되는 다양한 장치 및 시스템에 적용될 수 있다. 예를 들어, 본 발명은 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 태블릿(Tablet) PC, 노트북(Laptop Computer), 개인 정보 단말기(personal digital assistant; PDA), 휴대형 멀티미디어 플레이어(portable multimedia player; PMP), 디지털 카메라(Digital Camera), 음악 재생기(Music Player), 휴대용 게임 콘솔(portable game console), 네비게이션(Navigation) 등과 같은 임의의 모바일 기기에 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 보안 메모리 장치에 전원이 공급되거나 상기 보안 메모리 장치의 동작이 리셋된 경우에, 상기 보안 메모리 장치에 포함되는 복수의 임시 레지스터(ephemeral register)들에 저장된 페이로드 데이터(payload data)의 일관성 여부를 판단하여 상기 페이로드 데이터를 선택적으로 초기화시키는 단계;
    상기 보안 메모리 장치에 저장된 보안 데이터에 대한 처리 동작 도중에 외부로부터 오류가 주입되는지 여부를 검출하여 상기 페이로드 데이터에 포함된 카운트 값을 선택적으로 증가시키는 단계; 및
    상기 카운트 값 및 문턱 값에 기초하여 상기 외부로부터 주입된 오류가 오류 기반 공격(fault attack)에 의해 발생한 것인지 여부를 판단하는 단계를 포함하고,
    상기 보안 메모리 장치가 파워 오프(power off) 된 후 상기 복수의 임시 레지스터들의 데이터 보유 시간을 초과하여 파워 온(power on) 된 경우에, 상기 페이로드 데이터가 일관성이 없는 것으로 판단하여 상기 페이로드 데이터를 초기화시키는 오류 기반 공격의 검출 방법.
  2. 제 1 항에 있어서, 상기 페이로드 데이터는 상기 카운트 값에 상응하는 에러 검출 코드 값을 더 포함하고, 상기 페이로드 데이터를 선택적으로 초기화시키는 단계는,
    상기 카운트 값에 포함되는 복수의 카운트 비트들 중 제1 비트와, 상기 에러 검출 코드 값에 포함되는 복수의 에러 검출 코드 비트들 중 상기 제1 비트에 상응하는 제2 비트들이 서로 일치하는지 판단하는 단계를 포함하는 것을 특징으로 하는 오류 기반 공격의 검출 방법.
  3. 제 2 항에 있어서, 상기 페이로드 데이터를 선택적으로 초기화시키는 단계는,
    상기 제1 비트와 상기 제2 비트들이 모두 동일한 경우에 상기 페이로드 데이터를 이전 논리 상태로 유지하는 단계; 및
    상기 제1 비트와 상기 제2 비트들이 동일하지 않은 경우에 상기 페이로드 데이터를 초기화시키는 단계를 더 포함하는 것을 특징으로 하는 오류 기반 공격의 검출 방법.
  4. 제 1 항에 있어서, 상기 카운트 값을 선택적으로 증가시키는 단계는,
    상기 외부로부터 상기 오류가 주입되지 않은 경우에 상기 카운트 값을 이전 값으로 유지하는 단계; 및
    상기 외부로부터 상기 오류가 주입된 경우에 상기 카운트 값을 증가시키는 단계를 포함하는 것을 특징으로 하는 오류 기반 공격의 검출 방법.
  5. 제 1 항에 있어서, 상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것인지 여부를 판단하는 단계는,
    상기 카운트 값이 상기 문턱 값보다 작거나 같은 경우에 상기 외부로부터 주입된 오류가 싱글 이벤트 업셋(single event upset; SEU)에 의해 발생한 것으로 판단하는 단계; 및
    상기 카운트 값이 상기 문턱 값보다 큰 경우에 상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 오류 기반 공격의 검출 방법.
  6. 제 1 항에 있어서,
    기준 시간 동안 상기 외부로부터 상기 오류가 주입되지 않은 경우에 상기 페이로드 데이터를 초기화시키는 단계를 더 포함하는 것을 특징으로 하는 오류 기반 공격의 검출 방법.
  7. 제 1 항에 있어서,
    상기 보안 메모리 장치의 동작을 선택적으로 종료시키는 단계를 더 포함하는 것을 특징으로 하는 오류 기반 공격의 검출 방법.
  8. 제 7 항에 있어서, 상기 보안 메모리 장치의 동작을 선택적으로 종료시키는 단계는,
    상기 외부로부터 주입된 오류가 싱글 이벤트 업셋에 의해 발생한 것으로 판단된 경우에 상기 보안 메모리 장치의 동작을 리셋시키는 단계; 및
    상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것으로 판단된 경우에 상기 보안 메모리 장치의 동작을 종료시키는 단계를 포함하는 것을 특징으로 하는 오류 기반 공격의 검출 방법.
  9. 제 1 항에 있어서, 상기 복수의 임시 레지스터들 각각은,
    상기 페이로드 데이터에 포함된 복수의 비트들 중 적어도 하나를 저장하는 저장 블록;
    상기 저장 블록과 제1 전압 사이에 연결되는 제1 다이오드;
    상기 저장 블록과 제2 전압 사이에 연결되는 제2 다이오드; 및
    상기 저장 블록과 병렬로 연결되어 상기 저장 블록에 전원을 공급하는 전원 공급 블록을 포함하는 것을 특징으로 하는 오류 기반 공격의 검출 방법.
  10. 보안 메모리 장치에 전원이 공급되거나 상기 보안 메모리 장치의 동작이 리셋된 경우에 상기 보안 메모리 장치에 포함되는 복수의 제1 임시 레지스터(ephemeral register)들에 저장된 제1 페이로드 데이터(payload data)의 일관성 여부를 판단하여 상기 제1 페이로드 데이터를 선택적으로 초기화시키고, 상기 보안 메모리 장치에 저장된 보안 데이터에 대한 처리 동작 도중에 외부로부터 오류가 주입되는지 여부를 검출하여 상기 제1 페이로드 데이터에 포함된 제1 카운트 값을 선택적으로 증가시키며, 상기 제1 카운트 값 및 제1 문턱 값에 기초하여 상기 외부로부터 주입된 오류가 오류 기반 공격(fault attack)에 의해 발생한 것인지 여부를 판단하여 제1 판단 결과를 발생하는 단계;
    상기 보안 메모리 장치에 전원이 공급되거나 상기 보안 메모리 장치의 동작이 리셋된 경우에 상기 보안 메모리 장치에 포함되고 상기 복수의 제1 임시 레지스터들과 데이터 보유 시간이 다른 복수의 제2 임시 레지스터들에 저장된 제2 페이로드 데이터의 일관성 여부를 판단하여 상기 제2 페이로드 데이터를 선택적으로 초기화시키고, 상기 보안 데이터에 대한 처리 동작 도중에 상기 외부로부터 상기 오류가 주입되는지 여부를 검출하여 상기 제2 페이로드 데이터에 포함된 제2 카운트 값을 선택적으로 증가시키며, 상기 제2 카운트 값 및 상기 제1 문턱 값과 다른 제2 문턱 값에 기초하여 상기 외부로부터 주입된 오류가 상기 오류 기반 공격에 의해 발생한 것인지 여부를 판단하여 제2 판단 결과를 발생하는 단계; 및
    상기 제1 판단 결과 및 상기 제2 판단 결과에 기초하여 상기 보안 메모리 장치의 동작을 선택적으로 종료시키는 단계를 포함하고,
    상기 보안 메모리 장치가 파워 오프(power off) 된 후 상기 복수의 제1 임시 레지스터들의 데이터 보유 시간을 초과하여 파워 온(power on) 된 경우에, 상기 제1 페이로드 데이터가 일관성이 없는 것으로 판단하여 상기 제1 페이로드 데이터를 초기화시키는 오류 기반 공격의 검출 방법.
KR1020120076105A 2012-07-12 2012-07-12 오류 기반 공격의 검출 방법 KR101977733B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120076105A KR101977733B1 (ko) 2012-07-12 2012-07-12 오류 기반 공격의 검출 방법
US13/939,792 US9092621B2 (en) 2012-07-12 2013-07-11 Method of detecting fault attack

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120076105A KR101977733B1 (ko) 2012-07-12 2012-07-12 오류 기반 공격의 검출 방법

Publications (2)

Publication Number Publication Date
KR20140008829A KR20140008829A (ko) 2014-01-22
KR101977733B1 true KR101977733B1 (ko) 2019-05-13

Family

ID=49915212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120076105A KR101977733B1 (ko) 2012-07-12 2012-07-12 오류 기반 공격의 검출 방법

Country Status (2)

Country Link
US (1) US9092621B2 (ko)
KR (1) KR101977733B1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160031533A (ko) * 2013-07-16 2016-03-22 미쓰비시덴키 가부시키가이샤 반도체 장치
CN104700053B (zh) * 2014-04-18 2017-11-03 杭州萤石网络有限公司 进行摄像机音视频数据处理的方法及摄像机
US9774614B2 (en) 2014-06-24 2017-09-26 Qualcomm Incorporated Methods and systems for side channel analysis detection and protection
US9509707B2 (en) * 2014-06-24 2016-11-29 Qualcomm Incorporated Methods and systems for thwarting side channel attacks
CN104992126B (zh) * 2015-06-24 2018-08-03 深圳先进技术研究院 一种抗错误注入攻击的安全芯片加固方法及装置
US10300766B2 (en) 2016-06-30 2019-05-28 Emerson Climate Technologies, Inc. System and method of controlling passage of refrigerant through eutectic plates and an evaporator of a refrigeration system for a container of a vehicle
US10562377B2 (en) 2016-06-30 2020-02-18 Emerson Climate Technologies, Inc. Battery life prediction and monitoring
US10328771B2 (en) 2016-06-30 2019-06-25 Emerson Climated Technologies, Inc. System and method of controlling an oil return cycle for a refrigerated container of a vehicle
US10414241B2 (en) 2016-06-30 2019-09-17 Emerson Climate Technologies, Inc. Systems and methods for capacity modulation through eutectic plates
US10569620B2 (en) 2016-06-30 2020-02-25 Emerson Climate Technologies, Inc. Startup control systems and methods to reduce flooded startup conditions
US10828963B2 (en) 2016-06-30 2020-11-10 Emerson Climate Technologies, Inc. System and method of mode-based compressor speed control for refrigerated vehicle compartment
US10532632B2 (en) 2016-06-30 2020-01-14 Emerson Climate Technologies, Inc. Startup control systems and methods for high ambient conditions
CN108073831B (zh) * 2016-11-15 2020-07-24 华为技术有限公司 一种检测安全芯片工作状态的方法及检测电路
CN108267752B (zh) * 2016-12-15 2022-01-18 苏州宝时得电动工具有限公司 自移动设备的工作区域的分区方法、装置和电子设备
FR3070076B1 (fr) * 2017-08-09 2019-08-09 Idemia Identity And Security Procede de protection d'un dispositif electronique contre des attaques par injection de faute
US20220269645A1 (en) * 2019-08-13 2022-08-25 Neuroblade Ltd. Memory mat as a register file
US11621036B2 (en) * 2020-07-14 2023-04-04 Taiwan Semiconductor Manufacturing Company, Ltd. Method of operating an integrated circuit and integrated circuit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000341278A (ja) 1999-05-31 2000-12-08 Oki Electric Ind Co Ltd Atmセル処理回路
US20060026457A1 (en) * 2004-07-27 2006-02-02 International Business Machines Corporation Error correcting logic system
JP2007141185A (ja) * 2005-11-22 2007-06-07 Hitachi Ltd 記憶制御装置及び記憶制御装置のエラー情報管理方法
JP2011003189A (ja) * 2009-06-16 2011-01-06 Stmicroelectronics (Rousset) Sas メモリ・デバイス上の故障注入による攻撃を検知する方法、及び対応するメモリ・デバイス

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085350A (en) 1998-03-04 2000-07-04 Motorola, Inc. Single event upset tolerant system and method
JP3895118B2 (ja) 2001-02-23 2007-03-22 三菱電機株式会社 シングルイベントアップセット補償回路
US20080094220A1 (en) 2006-10-19 2008-04-24 Joseph Foley Methods and Systems for Improving RFID Security
JP2009003785A (ja) 2007-06-22 2009-01-08 Toshiba Corp データ移送用リムーバブルメディア
US8387129B2 (en) * 2008-06-09 2013-02-26 Qualcomm Incorporated Method and apparatus for verifying data packet integrity in a streaming data channel
US8694862B2 (en) * 2012-04-20 2014-04-08 Arm Limited Data processing apparatus using implicit data storage data storage and method of implicit data storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000341278A (ja) 1999-05-31 2000-12-08 Oki Electric Ind Co Ltd Atmセル処理回路
US20060026457A1 (en) * 2004-07-27 2006-02-02 International Business Machines Corporation Error correcting logic system
JP2007141185A (ja) * 2005-11-22 2007-06-07 Hitachi Ltd 記憶制御装置及び記憶制御装置のエラー情報管理方法
JP2011003189A (ja) * 2009-06-16 2011-01-06 Stmicroelectronics (Rousset) Sas メモリ・デバイス上の故障注入による攻撃を検知する方法、及び対応するメモリ・デバイス

Also Published As

Publication number Publication date
US20140020097A1 (en) 2014-01-16
US9092621B2 (en) 2015-07-28
KR20140008829A (ko) 2014-01-22

Similar Documents

Publication Publication Date Title
KR101977733B1 (ko) 오류 기반 공격의 검출 방법
KR101110994B1 (ko) 에러 동작으로부터 집적 회로를 보호하는 방법 및 장치
KR101977772B1 (ko) 데이터 처리 장치 및 이를 포함하는 보안 메모리 장치
US9940457B2 (en) Detecting a cryogenic attack on a memory device with embedded error correction
US7953913B2 (en) Peripheral device locking mechanism
CN110998578B (zh) 用于在异构存储器环境内进行引导的***和方法
US10380341B2 (en) Adaptive systems and procedures for defending a processor against transient fault attacks
US9343162B2 (en) Protection against side-channel attacks on non-volatile memory
CN111552434B (zh) 保护计算***的存储器设备的方法、计算***及存储介质
US9697354B2 (en) System and method for secure SMI memory services
JP6518798B2 (ja) 安全な集積回路状態を管理する装置およびその方法
US20060219796A1 (en) Integrated circuit chip card capable of determining external attack
CN115659425A (zh) 固态硬盘及其限次访问控制方法、电子设备
EP4315123A1 (en) Fuse based replay protection with aggressive fuse usage and countermeasures for fuse voltage cut attacks
EP4315122A1 (en) Fuse based replay protection with dynamic fuse usage and countermeasures for fuse voltage cut attacks
EP3663952B1 (en) Tamper protection of memory devices on an integrated circuit
CN113495804A (zh) 数据处理***中冷启动存储器攻击的检测
US11216593B2 (en) Data protection circuit of chip, chip, and electronic device
CN218333137U (zh) 固态硬盘及电子设备
CN111737773A (zh) 具有se安全模块功能的嵌入式安全存储器
EP1435558A1 (en) On-device random number generator
US9483426B2 (en) Locking a system management interrupt (SMI) enable register of a chipset
McGregor et al. Braving the cold: New methods for preventing cold boot attacks on encryption keys
TWI818126B (zh) 微處理器電路以及其記憶體的資料保護方法
US20230273670A1 (en) Operational change control action

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