KR100476892B1 - 데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템 - Google Patents

데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템 Download PDF

Info

Publication number
KR100476892B1
KR100476892B1 KR10-2002-0023429A KR20020023429A KR100476892B1 KR 100476892 B1 KR100476892 B1 KR 100476892B1 KR 20020023429 A KR20020023429 A KR 20020023429A KR 100476892 B1 KR100476892 B1 KR 100476892B1
Authority
KR
South Korea
Prior art keywords
data
clock signal
memory
address
cycle
Prior art date
Application number
KR10-2002-0023429A
Other languages
English (en)
Other versions
KR20030085236A (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 KR10-2002-0023429A priority Critical patent/KR100476892B1/ko
Priority to US10/397,742 priority patent/US6965977B2/en
Priority to IT000824A priority patent/ITMI20030824A1/it
Priority to DE10319585A priority patent/DE10319585B4/de
Priority to FR0305115A priority patent/FR2843466B1/fr
Publication of KR20030085236A publication Critical patent/KR20030085236A/ko
Application granted granted Critical
Publication of KR100476892B1 publication Critical patent/KR100476892B1/ko

Links

Classifications

    • 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
    • G06F21/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • 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
    • G06F21/77Protecting 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 in smart cards

Abstract

본 발명의 부정조작 방지방법은 소정의 어드레스에 의해서 지정된 메모리의 소정 영역으로부터 제 1 데이터를 독출하는 단계와; 상기 어드레스에 의해서 지정된 상기 메모리의 소정 영역으로부터 제 2 데이터를 독출하는 단계와; 상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 갖는 지의 여부를 판별하는 단계와; 그리고 상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 가질 때 프로세서로 하여금 상기 제 1 데이터와 상기 제 2 데이터 중 어느 하나를 가져가게 하는 단계를 포함한다.

Description

데이터의 부정조작을 방지하는 방법 및 그것을 이용한 데이터 처리 시스템{TAMPER-RESISTANT METHOD AND DATA PROCESSING SYSTEM USING THE SAME}
본 발명은 데이터 처리 시스템에 관한 것으로, 좀 더 구체적으로는 글리치 어택 (glitch attach)을 이용한 부정조작을 방지할 수 있는 데이터 처리 시스템에 관한 것이다.
1920년대에 신용카드가 처음 출현한 이래 현금카드, 신용카드, 신분증, 증권카드, 백화점 카드 등으로 카드의 이용이 확산되고 있으며, 근래에는 사용자의 편리성, 안정성, 다용도성 등으로 인해 소형 컴퓨터라 불리는 IC(integrated circuit) 카드에 대한 관심이 증가하고 있다.
IC 카드는, 신용카드 크기의 플라스틱 카드에 얇은 반도체 소자를 부착한 형태로서, 기존의 자기 띠를 붙여 사용하는 카드에 비해 안전성이 높고, 데이터가 지워질 염려가 없을 뿐만 아니라, 보안성이 높아 차세대 멀티미디어 정보매체로 급부상하고 있다. IC 카드는 신용카드 크기와 두께를 가지는 플라스틱에 0.5mm 두께의 반도체 칩이 COB(Chip On Board) 형태로 이루어져 있다.
IC 카드는 기존의 마그네틱 스트립 카드(magnetic stripe card)와 같은 모양과 크기를 가지며, 접촉형 IC 카드와, 두 종류의 무선형 비접촉식 카드 CICC(Contactless IC Card) 및 RCCC(Remote Coupling Communication Card)가 있다. CICC는 미국 AT&T에서 개발한 것으로, 감지거리가 1/2 인치 범위이고, RCCC는 700cm 정도의 거리에서 카드를 인식할 수 있는 카드로서, ISO DIS 10536으로 표준화가 이루어지고 있다.
IC 카드의 종류를 다르게 구분하면, 마이크로프로세서가 내장된 IC 카드를 스마트 카드라 하며, 마이크로프로세서를 내장하지 않은 비접촉식 카드와 메모리 카드는 '비접촉식 IC카드, 메모리 카드'라는 별도의 명칭으로 불리어진다. 스마트 카드는 중앙 처리 장치, 응용프로그램을 저장하는 EEPROM, ROM, RAM으로 이루어져 있다. 스마트 카드가 갖고 있는 가장 기본적인 장점은 고신뢰성/보안성, 대용량 데이터의 저장, 전자지갑(E-purse) 기능과 더불어 다양한 어플리케이션을 탑재할 수 있다는 것이다. 이 스마트 카드는, 쌍방향 통신, 분산처리, 정보의 안전 보호 등 정보의 입출력이 가능해 금융, 유통, 공장 자동화, 사무 자동화, 의료, 교통, 산업, 사회보장, 이동 통신, 공중전화, 케이블 TV, 전력, 가스, 수도, 교육, 신용카드, 직불카드, 선불카드, 도시가스 관리, 정보 보안, 홈뱅킹 등으로 그 적용 분야 또한 비약적으로 발전하고 있다. 그리고, 상기와 같은 서비스들은 하나의 카드로 통합되어가고 있는 추세이다. 이러한 추세에 부응하여, 금융 결재 수단 등으로 사용되는 스마트 카드를 보다 편리하게 구비하여 사용할 수 있고, 상기 스마트 카드와 결부된 다양한 서비스를 사용자에게 보다 편리하게 제공할 수 있는 장치 및 그것을 위한 서비스 방법이 요구되고 있다.
앞서 설명된 바와 같이, 스마트 카드 내부에 저장된 데이터는 안전한 보관이 주 목적이며, 외부로 유출시에는 사용자에게나 시스템 운영자에게도 커다란 위험 인자가 된다. 스마트 카드의 승인되지 않은 접근은 "부정조작" (tampering)이라 불리며, 스마트카드에 대한 부정조작은 일반적으로 행해지고 있다. 부정조작 기술은 크게 4가지 중요한 어택 기술들 즉, 마이크로프로브 기술 (microprobing technique), 소프트웨어 어택 기술 (software attack technique), 도청 기술 (eavesdropping technique), 그리고 오류 생성 기술 (fault generation technique)로 구분될 수 있다.
상기 마이크로프로브 기술은 칩 표면을 직접 액세스하기 위해 사용될 수 있다. 상기 소프트웨어 어택 기술은 프로세서의 일반적인 통신 인터페이스를 이용하며 프로토콜에서 발생되는 보안 취약점 (security vulnerability), 암호 알고리즘, 또는 알고리즘 실행을 활용한다. 도청 기술은 모든 공급 및 인터페이스 접속들의 아날로그 특성들과 정상적인 동작 동안 프로세서에 의해서 생성되는 전자기 방사를 측정한다. 오류 생성 기술은 비정상적인 환경 조건을 이용하여 추가적인 접근을 제공하는 프로세서의 오동작을 생성한다. 상기 마이크로프로브 기술은 직접적인 어택 (invasive attack technique)이며, 이 기술은 많은 시간을 필요로 한다. 나머지 기술들은 간접적인 어택 기술 (non-invasive attack technique)이다.
상기 간접적인 어택 기술로서, 글리치 어택 (glitch attach) 기술은 스마트 카드가 예측 불가능하게 동작되도록 외부에서 인가되는 신호 또는 전원에 이상한 신호를 가함으로써 스마트 카드를 마음대로 해킹하는 것을 말한다. 해커가 글리치로 대체하고자 하는 관심있는 명령은 조건 분기 명령 (conditional jump instruction) 또는 조건 분기 이전의 테스트 명령이다. 상기한 글리치는 많은 보안 어플리케이션의 처리 단계에서 취약한 틈을 생성하며, 이는 해커가 승인 시도가 실패했음을 검출하기 위한 코드의 실행을 방지함으로써 복잡한 암호 장벽을 바이패스하게 한다. 명령 글리치는 또한 루프의 실행 시간을 증가시키거나 감소시키기 위해서 사용될 수 있다. 결론적으로, 데이터 처리 시스템으로서 스마트 카드에 저장된 데이터 정보가 상술한 글리치 어택에 의해서 조작된다.
본 발명의 목적은 글리치 어택에 의한 부정조작을 방지할 수 있는 데이터 처리 시스템 및 그 방법을 제공하는 것이다.
상술한 제반 목적을 달성하기 위한 본 발명의 특징에 따르면, 메모리와 프로세서를 포함하는 데이터 처리 시스템의 부정조작을 방지하는 방법이 제공된다. 먼저, 소정의 어드레스에 의해서 지정된 상기 메모리의 소정 영역으로부터 제 1 데이터가 독출되고, 계속해서 상기 어드레스에 의해서 지정된 상기 메모리의 소정 영역으로부터 제 2 데이터가 독출된다. 상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 갖는 지의 여부가 판별된다. 상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 가질 때 상기 프로세서는 상기 제 1 데이터와 상기 제 2 데이터 중 어느 하나를 가져간다.
이 실시예에 있어서, 상기 제 1 데이터가 상기 제 2 데이터와 다른 값을 가질 때, 상기 프로세서는 상기 제 1 및 제 2 데이터 중 어느 것도 가져가지 않는다.
이 실시예에 있어서, 상기 프로세서가 외부 클록 신호에 동기되어 동작할 때, 상기 제 1 데이터와 상기 제 2 데이터는 상기 외부 클록 신호의 한 사이클 동안 동일한 어드레스에 의해서 상기 메모리로부터 연속적으로 독출된다.
본 발명의 다른 특징에 따르면, 메모리와 프로세서를 포함하는 데이터 처리 시스템의 부정조작을 방지하는 방법은 외부 클록 신호에 동기된 내부 클록 신호를 발생하는 단계와; 상기 내부 클록 신호의 주기는 상기 외부 클록 신호의 반주기에 대응하며; 상기 내부 클록 신호에 동기되어, 소정의 어드레스에 의해서 지정된, 상기 메모리의 소정 영역으로부터 제 1 데이터를 독출하는 단계와; 상기 내부 클록 신호에 동기되어, 상기 어드레스에 의해서 지정된, 상기 메모리의 소정 영역으로부터 제 2 데이터를 독출하는 단계와; 상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 갖는 지의 여부를 판별하는 단계와; 그리고 상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 가질 때 상기 프로세서로 하여금 상기 제 1 데이터와 상기 제 2 데이터 중 어느 하나를 가져하게 하는 단계를 포함한다. 상기 제 1 데이터와 상기 제 2 데이터는 상기 외부 클록 신호의 한 사이클 동안 상기 내부 클록 신호에 동기되어 연속적으로 독출된다.
이 실시예에 있어서, 상기 제 1 데이터가 상기 제 2 데이터와 다른 값을 가질 때, 상기 프로세서는 상기 제 1 및 제 2 데이터 중 어느 것도 가져가지 않는다.
본 발명의 또 다른 특징에 따르면, 데이터 처리 시스템은 제 1 클록 신호에 동기되어 어드레스를 발생하는 프로세서 코어와; 상기 제 1 클록 신호의 반주기에 대응하는 주기를 갖는 제 2 클록 신호를 발생하는 클록 발생 회로와; 상기 제 2 클록 신호에 동기되어 동작하며, 상기 프로세서 코어로부터 전달되는 어드레스에 응답하여 데이터를 출력하는 메모리와; 그리고 상기 제 2 클록 신호에 응답하여 상기 메모리로부터 출력되는 데이터를 받아들이고, 상기 제 1 클록 신호의 한 사이클 동안 입력된 데이터 값들을 비교하는 부정조작 방지회로를 포함한다. 상기 프로세서 코어는 상기 제 1 클록 신호의 제 1 반주기 동안 상기 부정조작 방지회로부터 전달되는 데이터가 상기 제 1 클록 신호의 제 2 반주기 동안 상기 부정조작 방지회로부터 전달되는 데이터와 동일할 때에만 상기 부정조작 방지회로부터의 데이터를 로드한다.
이 실시예에 있어서, 상기 부정조작 방지회로는 상기 제 1 클록 신호의 한 사이클 동안 입력된 데이터 값들이 동일한 지의 여부를 나타내는 플래그 신호를 발생한다. 상기 프로세서 코어는 상기 플래그 신호에 응답하여 상기 부정조작 방지회로로부터의 데이터를 선택적으로 받아들인다.
예를 들면, 상기 프로세서 코어는 상기 제 1 클록 신호의 한 사이클 동안 입력된 데이터 값들이 동일함을 나타내는 플래그 신호에 응답하여 상기 부정조작 방지회로로부터의 데이터를 받아들인다. 이와 반대로, 상기 프로세서 코어는 상기 제 1 클록 신호의 한 사이클 동안 입력된 데이터 값들이 다름을 나타내는 플래그 신호에 응답하여 상기 부정조작 방지회로로부터의 데이터를 받아들이지 않는다.
이 실시예에 있어서, 상기 부정조작 방지회로는 제 1 및 제 2 버퍼들과; 상기 제 2 클록 신호에 응답하여 상기 메모리로부터 출력되는 데이터를 상기 제 1 및 제 2 버퍼들로 멀티플렉싱하는 멀티플렉서와; 그리고 상기 제 1 및 제 2 버퍼들로부터 출력되는 출력 신호들을 비교하여 비교 결과로서 상기 플래그 신호를 출력하는 비교기를 포함한다.
이 실시예에 있어서, 상기 부정조작 방지회로는 상기 제 2 클록 신호에 동기되어 동작하며, 상기 제 1 클록 신호의 제 1 및 제 2 반주기들 동안 상기 메모리로부터 연속적으로 출력되는 제 1 및 제 2 데이터를 저장하는 쉬프트 레지스터와; 그리고 상기 쉬프트 레지스터로부터 출력되는 제 1 데이터와 제 2 데이터를 비교하여 비교 결과로서 상기 플래그 신호를 출력하는 비교기를 포함한다.
본 발명의 바람직한 실시예가 참조 도면들에 의거하여 이하 상세히 설명될 것이다.
도 1은 본 발명의 제 1 실시예에 따른 데이터 처리 시스템을 보여주는 블록도이다. 도 1을 참조하면, 본 발명에 따른 데이터 처리 시스템 (100)은 코어 (core) (110), 메모리 (memory) (120), 입출력 장치 (input/output device) (130), 클록 발생 회로 (clock generating circuit) (140), 그리고 부정조작 방지 회로 (tampering-resistant circuit) (150)를 포함한다. 데이터 처리 시스템의 구성 요소들은 외부에서 공급되는 전원 전압에 의해서 동작된다. 상기 코어 (110)는 프로세서로서 입출력 장치 (130)를 통해 외부와 통신하며, 프로그램 카운터 (PC)를 포함한다. 상기 프로그램 카운터 (PC)는 소정의 주기를 갖는 외부 클록 신호 (XCLK)에 동기되어 어드레스를 발생하며, 상기 어드레스는 어드레스 버스를 통해 메모리 (120)로 전달된다.
상기 클록 발생 회로 (140)는 외부 클록 신호 (XCLK)를 받아들여 내부 클록 신호 (ICLK)를 발생한다. 상기 내부 클록 신호 (ICLK)의 주기는, 도 2에 도시된 바와 같이, 외부 클록 신호 (XCLK)의 반주기와 같다. 즉, 외부 클록 신호 (XCLK)의 한 사이클 동안 2 사이클의 내부 클록 신호 (ICLK)가 생성된다. 상기 클록 발생 회로 (140)에서 생성되는 내부 클록 신호 (ICLK)는 메모리 (120)와 부정조작 방지회로 (150)에 공급된다. 상기 메모리 (120)는 ROM 또는 EEPROM과 같은 불휘발성 메모리 또는 RAM과 같은 휘발성 메모리이며, 상기 클록 발생 회로 (140)로부터의 내부 클록 신호 (ICLK)에 동기되어 동작한다.
이상의 내용으로부터 알 수 있듯이, 상기 코어 (110)는 외부 클록 신호 (XCLK)에 동기되어 동작하고, 상기 메모리 (120)는 내부 클록 신호 (ICLK)에 동기되어 동작한다. 이는 코어 (110)로부터 어드레스가 입력될 때 메모리 (120)가 2번의 읽기/쓰기 동작을 수행되게 한다. 프로그램 카운터 (PC)는 외부 클록 신호 (XCLK)에 동기되어 어드레스를 생성하고, 메모리 (120)는 내부 클록 신호 (ICLK)에 동기되어 상기 어드레스를 받아들여 읽기/쓰기 동작을 수행한다. 그러므로, 메모리 (120)는 외부 클록 신호 (XCLK)의 반주기 동안 내부 클록 신호 (ICLK)에 동기되어 상기 어드레스에 대응하는 데이터를 출력하고, 외부 클록 신호 (XCLK)의 나머지 반주기 동안 내부 클록 신호 (ICLK)에 동기되어 상기 어드레스에 대응하는 데이터를 다시 한번 출력한다. 즉, 동일한 어드레스를 이용하여 2번 연속적으로 읽기 동작이 수행된다.
계속해서 도 1을 참조하면, 상기 메모리 (120)에서 출력되는 데이터는 코어 (110)로 직접 전달되지 않고 상기 부정조작 방지회로 (150)를 통해 코어 (110)로 전달된다. 부정조작 방지회로 (150)는 외부 클록 신호 (XCLK)의 한 주기 동안 상기 메모리 (120)에서 연속적으로 출력되는 제 1 데이터와 제 2 데이터를 받아들여 임시적으로 저장한다. 여기서, 제 1 데이터와 제 2 데이터는 동일한 어드레스에 의해서 출력되는 데이터이다. 상기 부정조작 방지회로 (150)는 상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 갖는 지의 여부를 판별한다. 상기 부정조작 방지회로 (150)는 상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 갖는 지의 여부를 나타내는 플래그 신호 (Flag)를 코어 (110)로 출력한다. 코어 (110)는 플래그 신호 (Flag)에 응답하여 상기 부정조작 방지회로 (150)에 임시적으로 저장된 데이터를 선택적으로 가져간다. 예를 들면, 만약 상기 제 1 데이터가 상기 제 2 데이터와 다른 값을 가지면, 상기 코어 (110)는 현재 액세스된 데이터 즉, 상기 부정조작 방지회로 (150)에 임시적으로 저장된 데이터를 가져가지 않는다. 만약 상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 가지면, 상기 코어 (110)는 현재 액세스된 데이터 즉, 상기 부정조작 방지회로 (150)에 임시적으로 저장된 데이터를 가져간다.
도 1에 도시된 바와 같이, 상기 부정조작 방지회로 (150)는 멀티플렉서 (151), 제 1 버퍼 (152), 제 2 버퍼 (153), 그리고 비교기 (154)를 포함한다. 상기 멀티플렉서 (151)는 내부 클록 신호 (ICLK)에 응답하여 메모리 (120)로부터의 데이터를 상기 제 1 버퍼 (152)와 상기 제 2 버퍼 (153)로 멀티플렉싱한다. 예를 들면, 상기 멀티플렉서 (151)는 상기 외부 클록 신호 (XCLK)의 하이 구간 동안 액세스된 데이터를 내부 클록 신호 (ICLK)에 응답하여 상기 제 1 버퍼 (152)로 전달하고, 상기 외부 클록 신호 (XCLK)의 로우 구간 동안 액세스된 데이터를 내부 클록 신호 (ICLK)에 응답하여 상기 제 2 버퍼 (153)로 전달한다. 상기 제 1 버퍼 (152)의 출력은 코어 (110)에 연결되어 있다. 상기 비교기 (154)는 상기 제 1 버퍼 (152)로부터 출력되는 제 1 데이터와 상기 제 2 버퍼 (153)로부터 출력되는 제 2 데이터를 비교하여 상기 플래그 신호 (Flag)를 출력한다. 상기 플래그 신호 (Flag)는 상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 갖는 지의 여부를 나타낸다.
도 2는 도 1에 사용되는 클록 신호들, 어드레스, 그리고 데이터의 파형을 보여주는 파형도이고, 도 3은 본 발명에 따른 데이터 처리 시스템의 읽기 동작을 설명하기 위한 흐름도이다. 본 발명에 따른 데이터 처리 시스템의 읽기 동작이 참조 도면들에 의거하여 이하 상세히 설명될 것이다.
메모리 (120)에 저장된 데이터를 읽기 위해서, 코어 (110)의 프로그램 카운터 (PC)는 외부 클록 신호 (XCLK)에 동기되어 어드레스 (ADD1)를 생성한다. 그렇게 생성되는 어드레스 (ADD1)는 메모리 (120)로 전달된다. 상기 메모리 (120)는 내부 클록 신호 (ICLK)에 동기되어 상기 어드레스 (ADD1)에 대응하는 데이터 (D1a)를 출력한다 (S100). 그렇게 출력되는 데이터 (D1a)는 멀티플렉서 (151)를 통해 제 1 버퍼 (152)에 임시적으로 저장된다. 그 다음에, 상기 메모리 (120)는 내부 클록 신호 (ICLK)에 동기되어 상기 어드레스 (ADD1)에 대응하는 데이터 (D1b)를 다시 한번 출력한다 (S110). 그렇게 출력되는 데이터 (D1b)는 멀티플렉서 (151)를 통해 제 2 버퍼 (153)에 임시적으로 저장된다.
상기 부정조작 방지회로 (150)의 비교기 (154)는 상기 제 1 버퍼 (152)로부터 출력되는 데이터 (D1a)가 상기 제 2 버퍼 (153)로부터 출력되는 데이터 (D1b)와 동일한 값을 갖는 지의 여부를 판별한다 (S120). 상기 비교기 (154)로부터의 플래그 신호 (Flag)가 상기 제 1 버퍼 (152)로부터 출력되는 데이터 (D1a)가 상기 제 2 버퍼 (153)로부터 출력되는 데이터 (D1b)와 동일한 값을 가짐을 나타낼 때, 코어 (110)는 상기 제 1 버퍼 (152)의 출력 데이터 (D1a)를 가져간다 (S130). 이와 반대로, 상기 비교기 (154)로부터의 플래그 신호 (Flag)가 상기 제 1 버퍼 (152)로부터 출력되는 데이터 (D1a)가 상기 제 2 버퍼 (153)로부터 출력되는 데이터 (D1b)와 동일한 값을 갖지 않음을 나타낼 때, 코어 (110)는 상기 제 1 버퍼 (152)의 출력 데이터 (D1a)를 가져가지 않는다 (S140). 상술한 과정들 (S130, S140) 이후에, 모든 데이터가 로드되었는 지의 여부가 판별된다 (S150). 만약 그렇지 않으면, 처리 절차는 단계 (S100)로 진행한다. 만약 그렇다면, 읽기 동작은 종료된다.
본 발명에 따른 데이터 처리 시스템 (100)의 경우, 외부 클록 신호 (XCLK)의 한 주기 동안 메모리 (120)에 저장된 데이터가 연속해서 2번 읽혀진다. 이러한 읽기 방식을 사용함에 따라 전원 전압 단자에 가해지는 글리치 어택으로 인해서 생기는 데이터 처리 시스템 (100)의 오동작을 방지할 수 있다. 좀 더 구체적으로 설명하면 다음과 같다.
상기 글리치 어택은, 앞서 설명된 바와 같이, 외부 클록 신호 (XCLK)의 주기보다 작고 전원 전압보다 높거나 낮은 레벨을 갖는 펄스 신호를 전원 전압 단자에 가하는 것을 말한다. 읽기 동작이 수행될 때 전원 전압이 글리치 어택을 받으면, 메모리 (120)로부터 읽혀진 데이터는 변형될 수 있다. 앞서 설명된 바와 같이, 글리치 어택에 사용되는 펄스 신호가 외부 클록 신호의 주기보다 작기 때문에, 시스템은 외부 클록 신호 (XCLK)의 하이 구간 또는 로우 구간에서만 글리치 어택을 받는다. 예를 들면, 글리치 어택에 의해서 변형된 데이터가 외부 클록 신호 (XCLK)의 제 1 주기 (하이 구간) 동안 읽혀진 데이터이고 임시 저장 장소에 저장된다고 가정하자. 외부 클록 신호 (XCLK)의 제 2 주기 (로우 구간) 동안 동일한 위치에서 데이터가 다시 한번 읽혀지며, 그렇게 읽혀진 데이터는 다른 임시 저장 장소에 저장될 것이다. 외부 클록 신호 (XCLK)의 제 2 주기 (로우 구간) 동안 수행되는 읽기 동작이 글리치 어택을 받지 않기 때문에, 코어 (110)는 데이터 비교 결과를 이용하여 현재 액세스된 데이터를 사용하거나 사용하지 않는다. 그러므로, 전원 전압 단자에 가해지는 글리치 어택으로 인해서 생기는 데이터 처리 시스템 (100)의 오동작을 방지할 수 있다.
도 4는 본 발명의 제 2 실시예에 따른 데이터 처리 시스템을 보여주는 블록도이다. 도 4에 있어서, 도 1에 도시된 구성 요소들과 동일한 기능을 수행하는 구성 요소들은 동일한 참조 번호들로 표기되며, 그것에 대한 설명은 그러므로 생략된다. 제 2 실시예는 부정조작 방지회로 (210)를 제외하면 제 1 실시예와 실질적으로 동일하다. 제 2 실시예에 따른 부정조작 방지회로 (210)는 쉬프트 레지스터 (220)와 비교기 (230)를 포함한다.
상기 쉬프트 레지스터 (220)는 메모리 (120)로부터 출력되는 데이터를 내부 클록 신호 (ICLK)에 응답하여 순차적으로 저장한다. 상기 쉬프트 레지스터 (220)는 내부 클록 신호 (ICLK)의 2 사이클 동안 읽혀진 데이터를 저장할 수 있다. 예를 들면, 외부 클록 신호 (XCLK)의 제 1 주기 (하이 구간) 동안 액세스된 제 1 데이터가 쉬프트 레지스터 (220)에 저장되고, 외부 클록 신호 (XCLK)의 제 2 주기 (로우 구간) 동안 액세스된 제 2 데이터가 다시 쉬프트 레지스터 (220)에 저장된다. 제 1 데이터는 제 2 데이터의 입력에 의해서 쉬프트되며, 상기 제 1 데이터와 상기 제 2 데이터는 비교기 (230)로 전달된다. 여기서, 제 1 데이터와 제 2 데이터는 동일한 어드레스에 의해서 액세스된 데이터이다. 상기 비교기 (230)는 상기 쉬프트 레지스터 (220)로부터 출력되는 제 1 데이터와 제 2 데이터를 비교하여 플래그 신호 (Flag)를 출력한다. 상기 플래그 신호 (Flag)는 코어 (110)로 전달되며, 상기 코어 (110)는 상기 플래그 신호 (Flag)에 응답하여 상기 쉬프트 레지스터 (220)에 임시 저장된 제 1 데이터를 선택적으로 가져간다.
제 2 실시예에 따른 데이터 처리 시스템의 읽기 동작은 제 1 실시예에 따른 데이터 처리 시스템의 그것과 동일하게 수행되며, 그것에 대한 설명은 그러므로 생략된다. 그리고, 제 2 실시예에 따른 데이터 처리 시스템이 제 1 실시예에 따른 데이터 처리 시스템과 동일한 효과를 가짐은 자명하다. 이 실시예에 있어서, 데이터 처리 시스템은 스마트카드, 마이크로 프로세서 유니트, 등을 포함한다. 이상에서, 본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
상술한 바와 같이, 소정 어드레스에 대응하는 메모리 영역에서 연속적으로 2번 데이터를 독출하고, 독출된 데이터를 비교함으로써 글리치 어택으로 인해서 생기는 데이터 처리 시스템의 오동작을 방지할 수 있다.
도 1은 본 발명의 제 1 실시예에 따른 데이터 처리 시스템을 보여주는 블록도;
도 2는 도 1의 외부 클록 신호와 내부 클록 신호의 관계를 보여주는 도면;
도 3은 본 발명에 따른 데이터 처리 시스템의 부정조작 방지 방법을 설명하기 위한 흐름도; 그리고
도 4는 본 발명의 제 2 실시예에 따른 데이터 처리 시스템을 보여주는 블록도이다.
* 도면의 주요 부분에 대한 부호 설명 *
100, 200 : 데이터 처리 시스템 110 : 코어
120 : 메모리 130 : 입출력 장치
140 : 클록 발생 회로 150, 210 : 부정조작 방지회로
151 : 멀티플렉서 152, 153 : 버퍼
154, 230 : 비교기 220 : 쉬프트 레지스터

Claims (12)

  1. 메모리와 프로세서를 포함하는 데이터 처리 시스템의 부정조작을 방지하는 방법에 있어서:
    소정의 어드레스에 의해서 지정된 상기 메모리의 소정 영역으로부터 제 1 데이터를 독출하는 단계와;
    소정의 시간차를 두고 상기 어드레스와 동일한 어드레스에 의해 지정된 상기 메모리의 동일 영역으로부터 제 2 데이터를 연속하여 독출하는 단계와;
    상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 갖는 지의 여부를 판별하는 단계와; 그리고
    상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 가질 때 상기 프로세서로 하여금 상기 제 1 데이터와 상기 제 2 데이터 중 어느 하나를 가져하게 하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 데이터가 상기 제 2 데이터와 다른 값을 가질 때, 상기 프로세서는 상기 제 1 및 제 2 데이터 중 어느 것도 가져가지 않는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 프로세서가 외부 클록 신호에 동기되어 동작할 때, 상기 제 1 데이터와 상기 제 2 데이터는 상기 외부 클록 신호의 한 사이클 동안 동일한 어드레스에 의해서 상기 메모리로부터 연속적으로 독출되는 것을 특징으로 하는 방법.
  4. 메모리와 프로세서를 포함하는 데이터 처리 시스템의 부정조작을 방지하는 방법에 있어서:
    외부 클록 신호에 동기된 내부 클록 신호를 발생하는 단계와;
    상기 내부 클록 신호의 주기는 상기 외부 클록 신호의 반주기에 대응하며;
    상기 내부 클록 신호에 동기되어, 소정의 어드레스에 의해서 지정된, 상기 메모리의 소정 영역으로부터 제 1 데이터를 독출하는 단계와;
    상기 내부 클록 신호에 동기되어, 상기 어드레스와 동일한 어드레스에 의해서 지정된, 상기 메모리의 동일 영역으로부터 제 2 데이터를 독출하는 단계와;
    상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 갖는 지의 여부를 판별하는 단계와; 그리고
    상기 제 1 데이터가 상기 제 2 데이터와 동일한 값을 가질 때 상기 프로세서로 하여금 상기 제 1 데이터와 상기 제 2 데이터 중 어느 하나를 가져하게 하는 단계를 포함하며, 상기 제 1 데이터와 상기 제 2 데이터는 상기 외부 클록 신호의 한 사이클 동안 상기 내부 클록 신호에 동기되어 연속적으로 독출되는 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서,
    상기 제 1 데이터가 상기 제 2 데이터와 다른 값을 가질 때, 상기 프로세서는 상기 제 1 및 제 2 데이터 중 어느 것도 가져가지 않는 것을 특징으로 하는 방법
  6. 제 1 클록 신호에 동기되어 어드레스를 발생하는 프로세서 코어와;
    상기 제 1 클록 신호의 반주기에 대응하는 주기를 갖는 제 2 클록 신호를 발생하는 클록 발생 회로와;
    상기 제 2 클록 신호에 동기되어 동작하며, 상기 프로세서 코어로부터 전달되는 어드레스에 응답하여 데이터를 출력하는 메모리와; 그리고
    상기 제 2 클록 신호에 응답하여 상기 메모리로부터 출력되는 데이터를 받아들이고, 상기 제 1 클록 신호의 한 사이클 동안 입력된 데이터 값들을 비교하는 부정조작 방지회로를 포함하며,
    상기 프로세서 코어는 상기 제 1 클록 신호의 제 1 반주기 동안 상기 부정조작 방지회로부터 전달되는 데이터가 상기 제 1 클록 신호의 제 2 반주기 동안 상기 부정조작 방지회로부터 전달되는 데이터와 동일할 때에만 상기 부정조작 방지회로부터의 데이터를 로드하는 데이터 처리 시스템.
  7. 제 6 항에 있어서,
    상기 부정조작 방지회로는 상기 제 1 클록 신호의 한 사이클 동안 입력된 데이터 값들이 동일한 지의 여부를 나타내는 플래그 신호를 발생하는 데이터 처리 시스템.
  8. 제 7 항에 있어서,
    상기 프로세서 코어는 상기 플래그 신호에 응답하여 상기 부정조작 방지회로로부터의 데이터를 선택적으로 받아들이는 데이터 처리 시스템.
  9. 제 8 항에 있어서,
    상기 프로세서 코어는 상기 제 1 클록 신호의 한 사이클 동안 입력된 데이터 값들이 동일함을 나타내는 플래그 신호에 응답하여 상기 부정조작 방지회로로부터의 데이터를 받아들이는 데이터 처리 시스템.
  10. 제 8 항에 있어서,
    상기 프로세서 코어는 상기 제 1 클록 신호의 한 사이클 동안 입력된 데이터 값들이 다름을 나타내는 플래그 신호에 응답하여 상기 부정조작 방지회로로부터의 데이터를 받아들이지 않는 데이터 처리 시스템.
  11. 제 7 항에 있어서,
    상기 부정조작 방지회로는,
    제 1 및 제 2 버퍼들과;
    상기 제 2 클록 신호에 응답하여 상기 메모리로부터 출력되는 데이터를 상기 제 1 및 제 2 버퍼들로 멀티플렉싱하는 멀티플렉서와; 그리고
    상기 제 1 및 제 2 버퍼들로부터 출력되는 출력 신호들을 비교하여 비교 결과로서 상기 플래그 신호를 출력하는 비교기를 포함하는 데이터 처리 시스템.
  12. 제 7 항에 있어서,
    상기 부정조작 방지회로는
    상기 제 2 클록 신호에 동기되어 동작하며, 상기 제 1 클록 신호의 제 1 및 제 2 반주기들 동안 상기 메모리로부터 연속적으로 출력되는 제 1 및 제 2 데이터를 저장하는 쉬프트 레지스터와; 그리고
    상기 쉬프트 레지스터로부터 출력되는 제 1 데이터와 제 2 데이터를 비교하여 비교 결과로서 상기 플래그 신호를 출력하는 비교기를 포함하는 데이터 처리 시스템.
KR10-2002-0023429A 2002-04-29 2002-04-29 데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템 KR100476892B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR10-2002-0023429A KR100476892B1 (ko) 2002-04-29 2002-04-29 데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템
US10/397,742 US6965977B2 (en) 2002-04-29 2003-03-26 Tamper-resistant method and data processing system using the same
IT000824A ITMI20030824A1 (it) 2002-04-29 2003-04-18 Procedimento resistente alla manomissione e sistema di
DE10319585A DE10319585B4 (de) 2002-04-29 2003-04-24 Manipulationsgeschütztes Datenverarbeitungssystem und zugehöriges Verfahren zum Manipulationsschutz
FR0305115A FR2843466B1 (fr) 2002-04-29 2003-04-25 Procede pour empecher la falsification d'un systeme de traitement de donnees, et ce systeme

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0023429A KR100476892B1 (ko) 2002-04-29 2002-04-29 데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템

Publications (2)

Publication Number Publication Date
KR20030085236A KR20030085236A (ko) 2003-11-05
KR100476892B1 true KR100476892B1 (ko) 2005-03-17

Family

ID=29244807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0023429A KR100476892B1 (ko) 2002-04-29 2002-04-29 데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템

Country Status (5)

Country Link
US (1) US6965977B2 (ko)
KR (1) KR100476892B1 (ko)
DE (1) DE10319585B4 (ko)
FR (1) FR2843466B1 (ko)
IT (1) ITMI20030824A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3880933B2 (ja) * 2003-01-21 2007-02-14 株式会社東芝 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
KR100618051B1 (ko) 2005-09-08 2006-08-30 삼성전자주식회사 전압 글리치를 검출하기 위한 장치와 검출방법
EP1818846B1 (fr) 2006-02-10 2009-10-07 St Microelectronics S.A. Vérification d'intégrité de programmes ou de séquencement d'une machine d'états
US20080086781A1 (en) * 2006-10-06 2008-04-10 Stephane Rodgers Method and system for glitch protection in a secure system
WO2009034490A1 (en) * 2007-09-10 2009-03-19 Nxp B.V. Integrated circuit with data line monitoring and alarm signal
FR2923923B1 (fr) * 2007-11-19 2009-12-04 St Microelectronics Sa Verification de donnees lues en memoire
FR2925968B1 (fr) * 2007-12-26 2011-06-03 Ingenico Sa Procede de securisation d'un microprocesseur, programme d'ordinateur et dispositif correspondants
US8726042B2 (en) * 2008-02-29 2014-05-13 Microsoft Corporation Tamper resistant memory protection
CN102027482A (zh) * 2008-05-15 2011-04-20 Nxp股份有限公司 用于安全数据读取的方法和数据处理系统
US20100132047A1 (en) * 2008-11-24 2010-05-27 Honeywell International Inc. Systems and methods for tamper resistant memory devices
US8378710B1 (en) 2011-09-20 2013-02-19 Nxp B.V. Secure device anti-tampering circuit
EP2690579A1 (en) * 2012-07-27 2014-01-29 Gemalto SA Method and device for protecting against fault attack(s) an electronic device using a cache memory
KR101711024B1 (ko) * 2013-12-19 2017-02-28 한국전자통신연구원 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
EP3057027B1 (en) * 2015-02-16 2018-06-13 Nxp B.V. Method for secure data reading, computer program product and data handling system
CN108073805A (zh) * 2016-11-15 2018-05-25 华为技术有限公司 一种数据读取方法和存储器
EP3882798A1 (en) * 2020-03-20 2021-09-22 Thales Dis Design Services Sas Method for securely accessing a memory component
US20230124622A1 (en) * 2021-10-14 2023-04-20 Arm Limited Alarm Systems and Circuits

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63165936A (ja) * 1986-12-26 1988-07-09 Toshiba Corp 集積回路カ−ド
US5467396A (en) * 1993-10-27 1995-11-14 The Titan Corporation Tamper-proof data storage
KR100232086B1 (ko) * 1994-03-07 1999-12-01 미쉘 꼴롱브 보안성 메모리 카드
KR20020039374A (ko) * 1999-10-19 2002-05-25 바누치 유진 지. 상이한 메모리 기술 특성을 갖는 분할 메모리 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6140652A (ja) 1984-08-01 1986-02-26 Yaskawa Electric Mfg Co Ltd メモリの書込み保護方法及び回路
JP2941817B2 (ja) * 1988-09-14 1999-08-30 株式会社日立製作所 ベクトル処理装置
JP3035828B2 (ja) 1989-12-28 2000-04-24 甲府日本電気株式会社 情報処理装置
GB2293469A (en) * 1994-09-22 1996-03-27 Secr Defence Error detection in arithmetic circuit.
JPH10228772A (ja) * 1997-02-18 1998-08-25 Mitsubishi Electric Corp 同期型半導体記憶装置
US6247151B1 (en) * 1998-06-30 2001-06-12 Intel Corporation Method and apparatus for verifying that data stored in a memory has not been corrupted
JP3389186B2 (ja) * 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63165936A (ja) * 1986-12-26 1988-07-09 Toshiba Corp 集積回路カ−ド
US5467396A (en) * 1993-10-27 1995-11-14 The Titan Corporation Tamper-proof data storage
KR100232086B1 (ko) * 1994-03-07 1999-12-01 미쉘 꼴롱브 보안성 메모리 카드
KR20020039374A (ko) * 1999-10-19 2002-05-25 바누치 유진 지. 상이한 메모리 기술 특성을 갖는 분할 메모리 장치

Also Published As

Publication number Publication date
US6965977B2 (en) 2005-11-15
DE10319585B4 (de) 2005-08-04
US20030204696A1 (en) 2003-10-30
FR2843466B1 (fr) 2006-04-21
ITMI20030824A1 (it) 2003-10-30
DE10319585A1 (de) 2003-11-20
KR20030085236A (ko) 2003-11-05
FR2843466A1 (fr) 2004-02-13

Similar Documents

Publication Publication Date Title
KR100476892B1 (ko) 데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템
US9665870B1 (en) Multi-input tamper detection system
US8378710B1 (en) Secure device anti-tampering circuit
JPS6325393B2 (ko)
US20030154355A1 (en) Methods and apparatus for providing a memory challenge and response
US9799180B1 (en) Multiplexed tamper detection system
Rankl Smart Card Applications: Design models for using and programming smart cards
US20140195429A1 (en) Method for protecting cardholder data in a mobile device that performs secure payment transactions and which enables the mobile device to function as a secure payment terminal
US10474846B1 (en) Processor power supply glitch detection
WO2013155562A1 (en) Nfc card lock
US20100235629A1 (en) Information storage medium, authentication data generation method, and medium authentication system
EP1588314B1 (en) Detection of tampering of a smart card interface
US20060289656A1 (en) Portable electronic apparatus and data output method therefor
KR101074778B1 (ko) 센서 태그 장치 및 그 인증 방법
Hassler Java Card for e-payment Applications
KR200401587Y1 (ko) 원 타임 패스워드 생성용 스마트카드 리더 장치
US7647506B2 (en) Method and configuration for the transmission of signals from generating functional units to processing functional units of electrical circuits
Mayes et al. An introduction to smart cards and rfids
Kose et al. A SECURE DESIGN ON MIFARE CLASSIC CARDS FOR ENSURING CONTACTLESS PAYMENT AND CONTROL SERVICES
JP2020013249A (ja) Icチップ及びicカード
KR100727866B1 (ko) 원 타임 패스워드 생성용 스마트카드 리더 장치
JP5293113B2 (ja) 半導体装置、半導体装置の制御方法および半導体装置の制御プログラム
KR19980065912A (ko) 원격 하드웨어 보안모듈(sam)을 이용한 전자상거래 방법
Kose et al. ADVANCES IN CYBER-PHYSICAL SYSTEMS Vol. 7, Num. 1, 2022 A SECURE DESIGN ON MIFARE CLASSIC CARDS FOR ENSURING CONTACTLESS PAYMENT AND CONTROL SERVICES
Yuan et al. Application of Smart Card security technology in manufacturing

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: 20130228

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170228

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20180228

Year of fee payment: 14