KR102190469B1 - 보안 회로 및 이를 포함하는 보안 시스템 - Google Patents
보안 회로 및 이를 포함하는 보안 시스템 Download PDFInfo
- Publication number
- KR102190469B1 KR102190469B1 KR1020130150366A KR20130150366A KR102190469B1 KR 102190469 B1 KR102190469 B1 KR 102190469B1 KR 1020130150366 A KR1020130150366 A KR 1020130150366A KR 20130150366 A KR20130150366 A KR 20130150366A KR 102190469 B1 KR102190469 B1 KR 102190469B1
- Authority
- KR
- South Korea
- Prior art keywords
- signal
- test
- circuit
- security
- test data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/84—Protecting input, output or interconnection devices output devices, e.g. displays or monitors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Semiconductor Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
보안 회로는 기능 회로 및 하드웨어 테스트 제어부를 포함한다. 기능 회로는 하드웨어의 기능을 검증하기 위해 복수의 플립 플롭들을 연결한 테스트 체인을 포함하고, 테스트 제어 신호, 하드웨어 테스트 모드 신호 및 테스트 체인에 기초하여 테스트 데이터 입력 신호를 암호화하여 테스트 데이터 출력 신호를 생성한다. 하드웨어 테스트 제어부는 테스트 제어 신호, 테스트 데이터 입력 신호 및 하드웨어 테스트 모드 신호를 생성하고, 테스트 데이터 출력 신호에 기초하여 인증 결과를 생성한다.
Description
본 발명은 보안 회로에 관한 것으로, 보다 상세하게는 인증 절차를 수행하는 보안 회로 및 이를 포함하는 보안 시스템에 관한 것이다.
보안 시스템은 보안 시스템과 연결된 보안 제품과 인증 절차를 거쳐 보안 제품의 진품 여부를 확인한다. 인증 절차는 일반적인 컴퓨터 구조의 프로세서 상에서 인증 알고리즘, 예를 들어 RSA(Rivest Shamir Adleman) 알고리즘, 을 수행하는 방법 또는 인증 알고리즘을 하드웨어로 구현한 회로를 이용하는 방법으로 수행될 수 있다. 보안 제품에 포함된 보안 회로가 변경되었거나 복제된 보안 제품을 사용하는 경우, 인증 절차의 상기 수행 방법들은 보안 제품의 진품 여부를 올바르게 판단하지 못하는 문제점을 가진다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 하드웨어의 기능을 검증하기 위한 테스트 체인을 이용하여 인증 절차를 수행하는 보안 회로 및 보안 시스템을 제공하는 데 있다.
상기 일 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 보안 회로는 기능 회로 및 하드웨어 테스트 제어부를 포함한다. 상기 기능 회로는 하드웨어의 기능을 검증하기 위해 복수의 플립 플롭들을 연결한 테스트 체인을 포함하고, 테스트 제어 신호, 하드웨어 테스트 모드 신호 및 상기 테스트 체인에 기초하여 테스트 데이터 입력 신호를 암호화하여 테스트 데이터 출력 신호를 생성한다. 상기 하드웨어 테스트 제어부는 상기 테스트 데이터 입력 신호, 상기 테스트 제어 신호 및 상기 하드웨어 테스트 모드 신호를 생성하고, 상기 테스트 데이터 출력 신호에 기초하여 인증 결과를 생성한다.
일 실시예에 있어서, 상기 하드웨어 테스트 제어부는 신호 생성부, 데이터 저장부 및 비교부를 포함할 수 있다. 상기 신호 생성부는 인증 데이터 신호에 기초하여 상기 테스트 데이터 입력 신호를 할 수 있다. 상기 데이터 저장부는 상기 테스트 데이터 입력 신호에 상응하는 예상 테스트 데이터 출력 신호를 저장할 수 있다. 상기 비교부는 상기 테스트 데이터 출력 신호와 상기 예상 테스트 데이터 출력 신호를 비교하여 상기 인증 결과를 생성할 수 있다.
일 실시예에 있어서, 상기 신호 생성부는 외부에서 인가되는 인증 커맨드 신호 또는 상기 신호 생성부에서 주기적으로 발생하는 테스트 시작 신호에 기초하여, 상기 테스트 조절 신호 및 상기 하드웨어 테스트 모드 신호를 생성할 수 있다.
일 실시예에 있어서, 상기 데이터 저장부는 상기 인증 데이터 신호를 저장하고, 상기 신호 생성부에 상기 인증 데이터 신호를 전달할 수 있다.
일 실시예에 있어서, 상기 기능 회로는 상기 플립 플롭들의 저장 값들 및 조합 논리 회로 입력 신호에 기초하여 상기 기능 회로의 연산을 수행하는 복수의 조합 논리 회로들(Combinational logic circuits)을 더 포함할 수 있다.
일 실시예에 있어서, 상기 하드웨어 테스트 제어부는 상기 인증 데이터 신호에 기초하여 상기 조합 논리 회로 입력 신호를 생성할 수 있다.
일 실시예에 있어서, 상기 기능 회로는 상기 조합 논리 회로 입력 신호에 기초하여 상기 테스트 데이터 입력 신호를 암호화하여 상기 테스트 데이터 출력 신호를 생성할 수 있다.
일 실시예에 있어서, 상기 하드웨어 테스트 제어부는 상기 인증 결과가 인증 실패를 나타내는 경우, 상기 보안 회로를 비활성화하거나, 상기 보안 회로를 보호 모드로 동작하게 할 수 있다.
일 실시예에 있어서, 상기 하드웨어 테스트 제어부는 상기 기능 회로의 초기화 동작 기간 또는 런타임(Run time) 기간에 상기 하드웨어 테스트 모드 신호를 활성화 할 수 있다.
상기 일 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 보안 시스템은 보안 회로를 구비한 보안 제품 및 제어부를 포함한다. 상기 보안 회로는 기능 회로 및 하드웨어 테스트 제어부를 포함한다. 상기 기능 회로는 하드웨어의 기능을 검증하기 위해 복수의 플립 플롭들을 연결한 테스트 체인을 포함하고, 테스트 제어 신호, 하드웨어 테스트 모드 신호 및 상기 테스트 체인에 기초하여 테스트 데이터 입력 신호를 암호화하여 테스트 데이터 출력 신호를 생성한다. 상기 하드웨어 테스트 제어부는 인증 커맨드 신호에 기초하여 상기 테스트 제어 신호 및 상기 하드웨어 테스트 모드 신호를 생성하고, 인증 데이터 신호에 기초하여 상기 테스트 데이터 입력 신호를 생성한다. 상기 제어부는 상기 인증 커맨드 신호 및 상기 인증 데이터 신호를 생성하고, 상기 보안 제품의 동작을 제어한다.
일 실시예에 있어서, 상기 제어부는 데이터 저장부 및 비교부를 포함할 수 있다. 상기 데이터 저장부는 상기 테스트 데이터 입력 신호에 상응하는 예상 테스트 데이터 출력 신호를 저장할 수 있다. 상기 비교부는 상기 테스트 데이터 출력 신호와 예상 테스트 데이터 출력 신호를 비교하여 인증 결과를 생성할 수 있다.
일 실시예에 있어서, 상기 제어부는 상기 인증 결과가 인증 실패를 나타내는 경우, 상기 보안 제품을 비활성화할 수 있다.
일 실시예에 있어서, 상기 제어부는 상기 인증 결과가 인증 실패를 나타내는 경우, 상기 보안 회로를 비활성화하거나, 상기 보안 회로를 보호 모드로 동작하게 할 수 있다.
일 실시예에 있어서, 상기 하드웨어 테스트 제어부는 신호 생성부, 데이터 저장부 및 비교부를 포함할 수 있다. 상기 신호 생성부는 상기 인증 커맨드 신호에 기초하여 상기 테스트 조절 신호 및 상기 하드웨어 테스트 모드 신호를 생성하고, 상기 인증 데이터 신호에 기초하여 상기 테스트 데이터 입력 신호를 생성할 수 있다. 상기 데이터 저장부는 상기 테스트 데이터 입력 신호에 상응하는 예상 테스트 데이터 출력 신호를 저장할 수 있다. 상기 비교부는 상기 테스트 데이터 출력 신호와 상기 예상 테스트 데이터 출력 신호를 비교하여 인증 결과를 생성할 수 있다.
일 실시예에 있어서, 상기 제어부는 상기 하드웨어 테스트 제어부로부터 제공되는 상기 인증 결과가 인증 실패를 나타내는 경우, 상기 보안 제품을 비활성화할 수 있다.
일 실시예에 있어서, 상기 하드웨어 테스트 제어부로부터 제공되는 상기 인증 결과가 인증 실패를 나타내는 경우, 상기 보안 회로를 비활성화하거나, 상기 보안 회로를 보호 모드로 동작하게 할 수 있다.
본 발명의 일 실시예에 따른 보안 회로는 테스트 체인을 이용한 암호화를 통해 보안 회로에 포함되는 기능 회로의 변경 여부 및 보안 회로를 포함하는 보안 제품의 복제 여부를 판단할 수 있다.
본 발명의 일 실시예에 따른 보안 시스템은 테스트 체인을 이용한 암호화를 통해 보안 시스템과 연결된 보안 회로에 포함되는 기능 회로의 변경 여부 및 보안 회로를 포함하는 보안 제품의 복제 여부를 판단할 수 있다.
대부분의 기능 회로는 수율을 높이기 위해 테스트 체인을 포함한다. 이미 존재하는 기능 회로의 테스트 체인을 이용하여 추가적인 하드웨어를 필요로 하지 않고 보안 회로 및 보안 시스템을 구축할 수 있다.
도 1은 본 발명의 일 실시예에 따른 보안 회로를 나타내는 블록도이다.
도 2a 및 2b는 도 1의 보안 회로에 포함되는 하드웨어 테스트 제어부의 실시예들을 나타내는 블록도들이다.
도 3은 본 발명의 일 실시예에 따른 보안 회로를 나타내는 블록도이다.
도 4는 도 1의 보안 회로에 포함되는 기능 회로를 나타내는 블록도이다.
도 5는 도 4의 기능 회로의 신호들을 나타내는 타이밍도이다.
도 6은 도 1의 보안 회로에 포함되는 기능 회로를 복제한 기능 회로를 나타내는 블록도이다.
도 7은 도 6의 복제된 기능 회로의 신호들을 나타내는 타이밍도이다.
도 8은 도 1의 보안 회로에 포함되는 기능 회로가 물리적 공격을 받은 경우를 나타내는 블록도이다.
도 9는 도 8의 물리적 공격을 받은 기능 회로의 신호들을 나타내는 타이밍도이다.
도 10은 도 1의 보안 회로에 포함되는 기능 회로가 물리적 공격을 받은 경우를 나타내는 블록도이다.
도 11은 도 10의 물리적 공격을 받은 기능 회로의 신호들을 나타내는 타이밍도이다.
도 12 및 13은 본 발명의 실시예들에 따른 보안 시스템들을 나타내는 블록도들이다.
도 14 및 15는 도 12 및 13의 보안 시스템들의 인증 절차들을 나타내는 순서도들이다.
도 16은 도 14 및 15의 인증 절차들이 수행되는 시간을 나타내는 그래프이다.
도 2a 및 2b는 도 1의 보안 회로에 포함되는 하드웨어 테스트 제어부의 실시예들을 나타내는 블록도들이다.
도 3은 본 발명의 일 실시예에 따른 보안 회로를 나타내는 블록도이다.
도 4는 도 1의 보안 회로에 포함되는 기능 회로를 나타내는 블록도이다.
도 5는 도 4의 기능 회로의 신호들을 나타내는 타이밍도이다.
도 6은 도 1의 보안 회로에 포함되는 기능 회로를 복제한 기능 회로를 나타내는 블록도이다.
도 7은 도 6의 복제된 기능 회로의 신호들을 나타내는 타이밍도이다.
도 8은 도 1의 보안 회로에 포함되는 기능 회로가 물리적 공격을 받은 경우를 나타내는 블록도이다.
도 9는 도 8의 물리적 공격을 받은 기능 회로의 신호들을 나타내는 타이밍도이다.
도 10은 도 1의 보안 회로에 포함되는 기능 회로가 물리적 공격을 받은 경우를 나타내는 블록도이다.
도 11은 도 10의 물리적 공격을 받은 기능 회로의 신호들을 나타내는 타이밍도이다.
도 12 및 13은 본 발명의 실시예들에 따른 보안 시스템들을 나타내는 블록도들이다.
도 14 및 15는 도 12 및 13의 보안 시스템들의 인증 절차들을 나타내는 순서도들이다.
도 16은 도 14 및 15의 인증 절차들이 수행되는 시간을 나타내는 그래프이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 안 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성 요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 보안 회로를 나타내는 블록도이다.
도 1을 참조하면, 보안 회로(100)는 기능 회로(FC; 110) 및 하드웨어 테스트 제어부(HTC; 120)를 포함한다. 기능 회로(110)는 하드웨어의 기능을 검증하기 위해 복수의 플립 플롭들을 연결한 테스트 체인을 포함하고, 테스트 제어 신호(TCS), 하드웨어 테스트 모드 신호(HTME) 및 상기 테스트 체인에 기초하여 테스트 데이터 입력 신호(TDI)를 암호화하여 테스트 데이터 출력 신호(TDO)를 생성한다. 하드웨어 테스트 제어부(120)는 테스트 데이터 입력 신호(TDI), 테스트 제어 신호(TCS) 및 하드웨어 테스트 모드 신호(HTME)를 생성하고, 테스트 데이터 출력 신호(TDO)에 기초하여 인증 결과를 생성한다. 하드웨어 테스트 제어부(120)는 인증 데이터 신호(ADS)에 기초하여 조합 논리 회로 입력 신호(CI)를 생성할 수 있다. 조합 논리 회로 입력 신호(CI)는 기능 회로(110)에 전달 될 수 있다.
기능 회로(110)가 포함하는 상기 복수의 플립 플롭들을 연결한 테스트 체인의 구조는 도 4를 참조하여 후술한다. 하드웨어 테스트 제어부(120)는 도 2a 및 도 2b를 참조하여 후술한다.
도 2a 및 2b는 도 1의 보안 회로에 포함되는 하드웨어 테스트 제어부의 실시예들을 나타내는 블록도들이다.
도 1의 보안 회로(100)에 포함되는 하드웨어 테스트 제어부(120)는 다양한 방법을 통해 구현될 수 있다. 도 2a 및 2b의 하드웨어 테스트 제어부들(120a, 120b)은 도 1의 하드웨어 테스트 제어부(120)의 실시예들이며, 하드웨어 테스트 제어부(120)는 예시된 하드웨어 테스트 제어부들(120a, 120b)로 한정되지 않는다.
도 2a를 참조하면, 하드웨어 테스트 제어부(120a)는 신호 생성부(SG), 데이터 저장부(DS) 및 비교부(CMP)를 포함할 수 있다. 신호 생성부(SG)는 인증 데이터 신호(ADS)에 기초하여 테스트 데이터 입력 신호(TDI)를 생성할 수 있다. 데이터 저장부(DS)는 테스트 데이터 입력 신호(TDI)에 상응하는 예상 테스트 데이터 출력 신호(ETDO)를 저장할 수 있다. 비교부(CMP)는 테스트 데이터 출력 신호(TDO)와 예상 테스트 데이터 출력 신호(ETDO)를 비교하여 상기 인증 결과(AR)를 생성할 수 있다. 신호 생성부(SG)는 외부에서 인가되는 인증 커맨드 신호(AC) 또는 신호 생성부(SG)에서 주기적으로 발생하는 테스트 시작 신호에 기초하여 테스트 조절 신호(TCS) 및 하드웨어 테스트 모드 신호(HTME)를 생성할 수 있다.
신호 생성기(SG)는 인증 데이터 신호(ADS)를 변경 없이 테스트 입력 신호(TDI)로서 출력할 수 있다. 인증 데이터 신호(ADS)가 인증 번호인 경우, 신호 생성기(SG)는 상기 인증 번호에 기초하여 테스트 입력 신호(TDI)를 생성할 수 있다.
인증 커맨드 신호(AC)는 보안 회로(100)를 포함하는 보안 제품의 진품 여부의 확인을 요구하는 진위 확인 커맨드 신호일 수 있고, 보안 회로(100)가 물리적 공격을 받았는지 여부를 판단하는 회로 변경 확인 커맨드 신호일 수 있다. 상기 진위 확인 커맨드 신호 및 상기 회로 변경 확인 커맨드 신호에 따른 보안 회로(100) 및 보안 회로를 포함하는 보안 시스템의 인증 절차에 대하여 도 14 및 15를 참조하여 후술한다.
하드웨어 테스트 제어부(120a)는 인증 결과(AR)가 인증 실패를 나타내는 경우, 보안 회로(100)를 비활성화하거나, 보안 회로(100)를 보호 모드로 동작하게 할 수 있다.
예상 테스트 데이터 출력 신호(ETDO)는 기능 회로(100)의 테스트 기간에 인증 데이터 신호(ADS)에 상응하는 데이터 입력 신호(TDI)에 응답하여 기능 회로(110)가 생성한 데이터 출력 신호(TDO)를 미리 저장한 값을 말한다.
비교기(CMP)는 테스트 데이터 출력 신호(TDO)와 예상 테스트 데이터 출력 신호(TDI)가 동일한 경우, 인증 결과(AR)로서 인증 성공을 나타내는 신호를 출력한다. 인증 결과(AR)가 디지털 신호인 경우, 상기 인증 성공을 나타내는 신호 값은 활성화 레벨일 수도 있고, 비활성화 레벨일 수도 있다. 비교기(CMP)는 테스트 데이터 출력 신호(TDO)와 예상 테스트 데이터 출력 신호(TDI)가 상이한 경우, 인증 결과(AR)로서 인증 실패를 나타내는 신호를 출력한다. 상기 인증 실패를 나타내는 신호 값은, 상기 인증 성공을 나타내는 신호 값과 상보적으로, 비활성화 레벨일 수도 있고, 활성화 레벨일 수도 있다.
활성화 레벨은 논리값 1 또는 논리값 0을 가질 수 있고, 비활성화 레벨은 활성화 레벨과 상보적으로 논리값 0 또는 논리값 1을 가질 수 있다.
도 2b를 참조하면, 데이터 저장부(DS)는 인증 데이터 신호(ADS)를 저장하고, 신호 생성부(SG)에 인증 데이터 신호(ADS)를 전달할 수 있다. 도 2b의 하드웨어 테스트 제어부(120b)에 포함되는 신호 생성부(SG) 및 비교기(CMP)는 도 2a의 하드웨어 테스트 제어부(120a)에 포함되는 신호 생성부(SG) 및 비교기(CMP)와 동일하다.
인증 데이터 신호(ADS)는 도 2a의 하드웨어 테스트 제어부(120a)의 경우에서와 같이 보안 회로(100)의 외부에서 인가 될 수 있다. 인증 데이터 신호(ADS)는 도 2b의 하드웨어 테스트 제어부(120b)의 경우에서와 같이 데이터 저장부(DS)에 하드웨어 테스트 기간 전에 미리 저장되어 있을 수 있으며, 인증 데이터 신호(ADS)는 보안 회로(100)의 외부에서 인가되지 않고, 데이터 저장부(DS)에서 제공될 수 있다.
도 3은 본 발명의 일 실시예에 따른 보안 회로를 나타내는 블록도이다.
도 3을 참조하면, 보안 회로(100a)는 기능 회로(110a) 및 하드웨어 테스트 제어부(120)를 포함한다. 기능 회로(110a)는 테스트 제어 신호(TCS), 하드웨어 테스트 모드 신호(HTME) 및 상기 테스트 체인에 기초하여 테스트 데이터 입력 신호(TDI)를 암호화하여 테스트 데이터 출력 신호(TDO)를 생성한다. 하드웨어 테스트 제어부(120)는 테스트 데이터 입력 신호(TDI) 및 하드웨어 테스트 모드 신호(HTME)를 생성하고, 테스트 데이터 출력 신호(TDO)에 기초하여 인증 결과를 생성한다.
기능 회로(110a)는 특정한 기능을 수행하는 모든 종류의 집적 회로를 포함할 수 있다. 기능 회로(110a)는 일반적인 컴퓨터 구조를 가질 수 있다. 일 실시예로, 기능 회로(110a)는 보안 감지기(SECURITY DETECTOR), 암호화 엔진(CRYPTO ENGINE), 프로세서(CPU), 메모리(MEMORY), 입출력부(IO), 주변 블록부(PERI BLOCKS), 난수 생성기(TRNG), 인터럽트 제어부(INTERRUPT CONTROLLER) 및 이들을 연결하는 버스(Bus) 구조를 포함할 수 있다.
보안 감지기(SECURITY DETECTOR)는 보안 회로(100)에 집속 이온 빔(Focused Ion Beam; FIB), 레이저 오류 주입(Laser Fault Injection; LFI) 또는 회로 구조를 변경하기 위한 와이어(Wire)를 이용한 물리적 변경이 가해진 경우, 보안 회로(100)의 동작 환경의 변화, 예를 들어, 보안 회로(100)의 특정 노드의 전류량의 변화 또는 전압값의 변화를 감지할 수 있다.
기능 회로(110a)는 프로세서(CPU) 상에서 인증 알고리즘을 수행하는 방법 또는 인증 알고리즘을 하드웨어로 구현한 회로인 암호화 엔진(CRYPTO ENGINE)을 이용하는 방법을 통해 인증 절차를 수행할 수 있다. 본 발명에 의하면 기능 회로(110a)에 이미 구현되어 있는 테스트 체인을 이용하여 테스트 데이터 입력 신호(TDI)를 암호화하기 때문에 추가적인 하드웨어를 필요로 하지 않고 새로운 보안 회로를 구축할 수 있다.
도 4는 도 1의 보안 회로에 포함되는 기능 회로를 나타내는 블록도이다.
도 4를 참조하면, 기능 회로(200)는 도 1의 보안 회로(100)에 포함되는 기능 회로(100)의 일 실시예이다. 기능 회로(200)는 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6), 복수의 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6) 및 멀티플렉서들(211 내지 216)을 포함할 수 있다.
기능 회로(200)는 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6) 및 복수의 멀티플렉서들(211 내지 216)을 연결하는 테스트 체인을 포함한다. 테스트 체인은 테스트 제어 신호(TCS)에 기초하여 테스트 데이터 입력 신호(TDI)를 입력 받아 테스트 데이터 출력 신호(TDO)를 생성할 수 있다. 조합 논리 회로 입력 신호(CI)는 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6)에 전달 될 수 있다. 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6)은 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6)의 저장 값들(FF1OUT. FF2OUT, FF3OUT, FF4OUT, FF5OUT, FF6OUT) 및 조합 논리 회로 입력 신호(CI)에 기초하여 기능 회로(200)의 연산을 수행할 수 있다.
기능 회로(200)는 하드웨어 테스트 모드 신호(HTME)에 기초하여 하드웨어 테스트 모드 혹은 정상 모드로 동작할 수 있다. 하드웨어 테스트 모드 신호(HTME)가 활성화 레벨을 가지는 경우, 기능 회로(200)는 상기 테스트 체인을 이용하여 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6)과 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6)의 기능을 검증하는 상기 하드웨어 테스트 모드로 동작한다. 하드웨어 테스트 모드 신호(HTME)가 비활성화 레벨을 가지는 경우, 기능 회로(200)는 상기 테스트 체인을 이용하지 않고, 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6)과 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6)만을 이용하여 기능 회로(200)의 고유의 기능을 수행한다.
하드웨어 테스트 모드 신호(HTME)가 활성화 레벨을 가지고 테스트 조절 신호(TCS)가 활성화 레벨을 가지는 경우, 제1 멀티플렉서(211)는 제1 플립 플롭(FF1)의 저장 값(FF1OUT)을 출력하고, 제1 멀티플렉서(211)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제2 플립 플롭(FF2)에 저장된다. 제2 멀티플렉서(212)는 제2 플립 플롭(FF2)의 저장 값(FF2OUT)을 출력하고, 제2 멀티플렉서(212)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제3 플립 플롭(FF3)에 저장된다. 제3 멀티플렉서(213)는 제3 플립 플롭(FF3)의 저장 값(FF3OUT)을 출력하고, 제3 멀티플렉서(213)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제6 플립 플롭(FF6)에 저장된다. 제6 멀티플렉서(216)는 제6 플립 플롭(FF6)의 저장 값(FF6OUT)을 출력하고, 제6 멀티플렉서(216)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제5 플립 플롭(FF5)에 저장된다. 제5 멀티플렉서(215)는 제5 플립 플롭(FF5)의 저장 값(FF5OUT)을 출력하고, 제5 멀티플렉서(215)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제4 플립 플롭(FF3)에 저장된다. 제4 멀티플렉서(214)는 제4 플립 플롭(FF4)의 저장 값(FF4OUT)을 테스트 데이터 출력 신호(TDO)로서 출력한다.
하드웨어 테스트 모드 신호(HTME)가 활성화 레벨을 가지고 테스트 조절 신호(TCS)가 비활성화 레벨을 가지는 경우, 제1 멀티플렉서(211)는 제1 조합 논리 회로(LOGIC1)의 출력 신호를 선택하여 출력하고, 제1 멀티플렉서(211)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제2 플립 플롭(FF2)에 저장된다. 제2 멀티플렉서(212)는 제2 조합 논리 회로(LOGIC2)의 출력 신호를 선택하여 출력하고, 제2 멀티플렉서(212)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제3 플립 플롭(FF3)에 저장된다. 상기 제3 멀티플렉서(213)는 제3 조합 논리 회로(LOGIC3)의 출력 신호를 선택하여 출력하고, 제3 멀티플렉서(213)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제6 플립 플롭(FF6)에 저장된다. 제6 멀티플렉서(216)는 제6 조합 논리 회로(LOGIC6)의 출력 신호를 선택하여 출력하고, 제6 멀티플렉서(216)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제5 플립 플롭(FF5)에 저장된다. 제5 멀티플렉서(215)는 제5 조합 논리 회로(LOGIC5)의 출력 신호를 선택하여 출력하고, 제5 멀티플렉서(215)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제4 플립 플롭(FF3)에 저장된다. 제4 멀티플렉서(214)는 제4 조합 논리 회로(LOGIC4)의 출력 신호를 선택하여 테스트 데이터 출력 신호(TDO)로서 출력한다.
기능 회로(200)는 조합 논리 회로 입력 신호(CI)에 기초하여 테스트 데이터 입력 신호(TDI)를 암호화하여 테스트 데이터 출력 신호(TDO)를 생성할 수 있다.
조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6)에 전달되는 신호들은 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6)을 통해 전달되는 제1 신호들과 기능 회로(200)의 외부로부터 직접 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6)로 전달되는 제2 신호들로 나뉠 수 있다. 상기 제2 신호들을 조합 논리 회로 입력 신호(CI)라 칭한다.
도 5는 도 4의 기능 회로의 신호들을 나타내는 타이밍도이다.
도 5, 7, 9 및 11의 타이밍도들은 활성화 레벨이 논리값 1인 경우에 대해서 설명한다. 이 경우, 하드웨어 테스트 모드 신호(HTME)가 논리값 1을 가질 때에 도 4, 6, 8 및 10의 기능 회로들은 하드웨어 테스트 모드로 동작하고, 하드웨어 테스트 모드 신호(HTME)가 논리값 0을 가질 때에 도 4, 6, 8 및 10의 기능 회로들은 정상 모드로 동작한다. 상기 활성화 레벨이 논리값 0인 경우는 상기 활성화 레벨이 논리값 1인 경우에 기초하여 이해할 수 있으므로 설명을 생략한다.
도 5를 참조하면, 하드웨어 테스트 모드 신호(HTME)가 활성화 레벨을 가지는 제1 시점(311)부터 제6 시점(316)까지 기능 회로(200)는 하드웨어 테스트 모드로 동작한다.
테스트 제어 신호(TCS)가 활성화 레벨을 유지하는 제2 시점(312)부터 제3 시점(313)까지, 도 4의 테스트 체인은 클럭 신호(CLK)의 상승 에지(Rising edge)마다 저장 값을 이동시키는 쉬프터(Shifter)로 동작한다. 제1 플립 플롭(FF1)을 통해 제6 입력 데이터(I6), 제5 입력 데이터(I5), 제4 입력 데이터(I4), 제3 입력 데이터(I3), 제2 입력 데이터(I2) 및 제1 입력 데이터(I1)가 순차적으로 테스트 입력 신호(TDI)로서 상기 테스트 체인에 입력된다. 입력 데이터들(I1, I2, I3, I4, I5, I6)의 각각은 클럭 신호(CLK)의 상승 에지마다 상기 테스트 체인 상의 다음 플립 플롭으로 이동한다.
제3 시점(313)에서 제1 플립 플롭(FF1)은 제1 입력 데이터(I1)를 저장하고, 제2 플립 플롭(FF2)은 제2 입력 데이터(I2)를 저장하고, 제3 플립 플롭(FF3)은 제3 입력 데이터(I3)를 저장하고, 제6 플립 플롭(FF6)은 제4 입력 데이터(I4)를 저장하고, 제5 플립 플롭(FF5)은 제5 입력 데이터(I5)를 저장하고, 제4 플립 플롭(FF4)은 제6 입력 데이터(I6)를 저장한다.
테스트 제어 신호(TCS)가 비활성화 레벨을 유지하는 제3 시점(313)부터 제5 시점(315)까지, 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6)의 각각은 클럭 신호(CLK)의 상승 에지마다 전단의 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6)의 각각의 출력을 저장한다.
클럭 신호(CLK)의 상승 에지인 제4 시점(314)에서, 제1 조합 논리 회로(LOGIC1)가 제1 플립 플롭(FF1)에 저장된 제1 입력 데이터(I1)를 이용하여 제1 출력 데이터(O1)를 생성한다. 제2 플립 플롭(FF2)은 제1 출력 데이터(O1)를 제4 시점(314)에서 제5 시점(315)까지에 걸쳐 저장한다. 제4 시점(314)에서 제2 조합 논리 회로(LOGIC2)가 제2 플립 플롭(FF2)에 저장된 제2 입력 데이터(I2)를 이용하여 제2 출력 데이터(O2)를 생성한다. 제3 플립 플롭(FF3)은 제2 출력 데이터(O2)를 제4 시점(314)에서 제5 시점(315)까지에 걸쳐 저장한다. 제4 시점(314)에서 제3 조합 논리 회로(LOGIC3)가 제3 플립 플롭(FF3)에 저장된 제3 입력 데이터(I3)를 이용하여 제3 출력 데이터(O3)를 생성한다. 제6 플립 플롭(FF6)은 제3 출력 데이터(O3)를 제4 시점(314)에서 제5 시점(315)까지에 걸쳐 저장한다. 제4 시점(314)에서 제6 조합 논리 회로(LOGIC6)가 제6 플립 플롭(FF6)에 저장된 제4 입력 데이터(I4)를 이용하여 제6 출력 데이터(O6)를 생성한다. 제5 플립 플롭(FF5)은 제6 출력 데이터(O6)를 제4 시점(314)에서 제5 시점(315)까지에 걸쳐 저장한다. 제4 시점(314)에서 제5 조합 논리 회로(LOGIC5)가 제5 플립 플롭(FF5)에 저장된 제5 입력 데이터(I5)를 이용하여 제5 출력 데이터(O5)를 생성한다. 제4 플립 플롭(FF4)은 제5 출력 데이터(O5)를 제4 시점(314)에서 제5 시점(315)까지에 걸쳐 저장한다. 제4 시점(314)에서 제4 조합 논리 회로(LOGIC4)가 제4 플립 플롭(FF4)에 저장된 제6 입력 데이터(I6)를 이용하여 제4 출력 데이터(O4)를 생성한다. 제 4 출력 데이터(O4)는 테스트 데이터 출력 신호(TDO)로서 출력된다.
테스트 제어 신호(TCS)가 활성화 레벨을 유지하는 제5 시점(315)부터 제6 시점(316)까지, 도 4의 테스트 체인은 클럭 신호(CLK)의 상승 에지마다 저장 값을 이동시키는 쉬프터로 동작한다.
제5 시점(315)부터 제6 시점(316)까지 제4 출력 데이터(O4), 제5 출력 데이터(O5), 제6 출력 데이터(O6), 제3 출력 데이터(O3), 제2 출력 데이터(O2) 및 제1 출력 데이터(O1)가 순차적으로 테스트 데이터 출력 신호(TDO)로서 출력된다.
도 6은 도 1의 보안 회로에 포함되는 기능 회로를 복제한 기능 회로를 나타내는 블록도이다.
도 6을 참조하면, 복제된 기능 회로(400)의 연산 기능은 도 4의 기능 회로(200)의 연산 기능과 동일하나, 복제된 기능 회로(400)를 구성하는 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6) 및 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6)의 레이아웃(Layout)이 도 4의 기능 회로(200)를 구성하는 조합 논리 회로들 및 플립 플롭들의 레이아웃과 상이하다.
도 4의 기능 회로(200)에 포함되는 제2 조합 논리 회로(LOGIC2) 및 제2 플립 플롭(FF2)이 존재하는 위치에 도 6의 복제된 기능 회로(400)에 포함되는 제3 조합 논리 회로(LOGIC3) 및 제3 플립 플롭(FF3)이 위치한다. 도 4의 기능 회로(200)에 포함되는 제3 조합 논리 회로(LOGIC3) 및 제3 플립 플롭(FF3)이 존재하는 위치에 도 6의 복제된 기능 회로(400)에 포함되는 제5 조합 논리 회로(LOGIC5) 및 제5 플립 플롭(FF5)이 위치한다. 도 4의 기능 회로(200)에 포함되는 제4 조합 논리 회로(LOGIC4) 및 제4 플립 플롭(FF4)이 존재하는 위치에 도 6의 복제된 기능 회로(400)에 포함되는 제2 조합 논리 회로(LOGIC2) 및 제2 플립 플롭(FF2)이 위치한다. 도 4의 기능 회로(200)에 포함되는 제5 조합 논리 회로(LOGIC5) 및 제5 플립 플롭(FF5)이 존재하는 위치에 도 6의 복제된 기능 회로(400)에 포함되는 제4 조합 논리 회로(LOGIC4) 및 제3 플립 플롭(FF4)이 위치한다.
기능 회로들(200, 400)의 레이아웃 과정의 특성 상, 기능 회로(200)의 레이아웃과 복제된 기능 회로(400)의 레이아웃이 동일하고 기능 회로(200)에 포함되는 테스트 체인을 구성하는 플립 플롭의 순서와 복제된 기능 회로(400)에 포함되는 테스트 체인을 구성하는 플립 플롭의 순서가 동일할 확률은 극히 미미하다.
하드웨어 테스트 모드 신호(HTME)가 활성화 레벨을 가지고 테스트 조절 신호(TCS)가 활성화 레벨을 가지는 경우, 제1 멀티플렉서(411)는 제1 플립 플롭(FF1)의 저장 값(FF1OUT)을 출력하고, 제1 멀티플렉서(411)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제3 플립 플롭(FF3)에 저장된다. 제2 멀티플렉서(412)는 제3 플립 플롭(FF3)의 저장 값(FF3OUT)을 출력하고, 제2 멀티플렉서(412)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제5 플립 플롭(FF5)에 저장된다. 제3 멀티플렉서(413)는 제5 플립 플롭(FF5)의 저장 값(FF5OUT)을 출력하고, 제3 멀티플렉서(413)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제6 플립 플롭(FF6)에 저장된다. 제6 멀티플렉서(416)는 제6 플립 플롭(FF6)의 저장 값(FF6OUT)을 출력하고, 제6 멀티플렉서(416)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제4 플립 플롭(FF4)에 저장된다. 제5 멀티플렉서(415)는 제4 플립 플롭(FF4)의 저장 값(FF4OUT)을 출력하고, 제5 멀티플렉서(415)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제2 플립 플롭(FF2)에 저장된다. 제4 멀티플렉서(414)는 제2 플립 플롭(FF2)의 저장 값(FF2OUT)을 테스트 데이터 출력 신호(TDO)로서 출력한다.
하드웨어 테스트 모드 신호(HTME)가 활성화 레벨을 가지고 테스트 조절 신호(TCS)가 비활성화 레벨을 가지는 경우, 제1 멀티플렉서(411)는 제1 조합 논리 회로(LOGIC1)의 출력 신호를 선택하여 출력하고, 제1 멀티플렉서(411)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제3 플립 플롭(FF3)에 저장된다. 제2 멀티플렉서(412)는 제3 조합 논리 회로(LOGIC3)의 출력 신호를 선택하여 출력하고, 제2 멀티플렉서(412)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제5 플립 플롭(FF5)에 저장된다. 제3 멀티플렉서(413)는 제5 조합 논리 회로(LOGIC5)의 출력 신호를 선택하여 출력하고, 제3 멀티플렉서(413)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제6 플립 플롭(FF6)에 저장된다. 제6 멀티플렉서(416)는 제6 조합 논리 회로(LOGIC6)의 출력 신호를 선택하여 출력하고, 제6 멀티플렉서(416)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제4 플립 플롭(FF4)에 저장된다. 제5 멀티플렉서(415)는 제4 조합 논리 회로(LOGIC4)의 출력 신호를 선택하여 출력하고, 제5 멀티플렉서(415)의 출력 신호는 다음 클럭 신호(CLK)의 상승 에지에서 제2 플립 플롭(FF2)에 저장된다. 제4 멀티플렉서(414)는 제2 조합 논리 회로(LOGIC2)의 출력 신호를 선택하여 테스트 데이터 출력 신호(TDO)로서 출력한다.
도 7은 도 6의 복제된 기능 회로의 신호들을 나타내는 타이밍도이다.
도 7을 참조하면, 제1 시점(511)의 이전의 신호들의 동작은 도 5의 타이밍도에 기초하여 이해할 수 있으므로 설명을 생략한다.
제1 시점(511)에서 제1 플립 플롭(FF1)은 제1 입력 데이터(I1)를 저장하고, 제3 플립 플롭(FF3)은 제2 입력 데이터(I2)를 저장하고, 제5 플립 플롭(FF5)은 제3 입력 데이터(I3)를 저장하고, 제6 플립 플롭(FF6)은 제4 입력 데이터(I4)를 저장하고, 제4 플립 플롭(FF4)은 제5 입력 데이터(I5)를 저장하고, 제2 플립 플롭(FF2)은 제6 입력 데이터(I6)를 저장한다.
테스트 제어 신호(TCS)가 비활성화 레벨을 유지하는 제1 시점(511)부터 제3 시점(513)까지, 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6)의 각각은 클럭 신호(CLK)의 상승 에지마다 전단의 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6)의 각각의 출력을 저장한다.
클럭 신호(CLK)의 상승 에지인 제2 시점(512)에서, 제1 조합 논리 회로(LOGIC1)가 제1 플립 플롭(FF1)에 저장된 제1 입력 데이터(I1)를 이용하여 제1 출력 데이터(O1)를 생성한다. 제3 플립 플롭(FF3)은 제1 출력 데이터(O1)를 제2 시점(512)에서 제3 시점(513)까지에 걸쳐 저장한다. 제2 시점(512)에서 제3 조합 논리 회로(LOGIC3)가 제3 플립 플롭(FF3)에 저장된 제2 입력 데이터(I2)를 이용하여 변형된 제3 출력 데이터(O3P)를 생성한다. 제5 플립 플롭(FF5)은 변형된 제3 출력 데이터(O3P)를 제2 시점(512)에서 제3 시점(513)까지에 걸쳐 저장한다. 제2 시점(512)에서 제5 조합 논리 회로(LOGIC5)가 제5 플립 플롭(FF5)에 저장된 제3 입력 데이터(I3)를 이용하여 변형된 제5 출력 데이터(O5P)를 생성한다. 제6 플립 플롭(FF6)은 변형된 제5 출력 데이터(O5P)를 제2 시점(512)에서 제3 시점(513)까지에 걸쳐 저장한다. 제2 시점(512)에서 제6 조합 논리 회로(LOGIC6)가 제6 플립 플롭(FF6)에 저장된 제4 입력 데이터(I4)를 이용하여 제6 출력 데이터(O6)를 생성한다. 제4 플립 플롭(FF4)은 제6 출력 데이터(O6)를 제2 시점(512)에서 제3 시점(513)까지에 걸쳐 저장한다. 제2 시점(512)에서 제4 조합 논리 회로(LOGIC4)가 제4 플립 플롭(FF4)에 저장된 제5 입력 데이터(I5)를 이용하여 변형된 제4 출력 데이터(O4P)를 생성한다. 제2 플립 플롭(FF2)은 변형된 제4 출력 데이터(O4P)를 제2 시점(512)에서 제3 시점(513)까지에 걸쳐 저장한다. 제2 시점(512)에서 제2 조합 논리 회로(LOGIC2)가 제2 플립 플롭(FF2)에 저장된 제6 입력 데이터(I6)를 이용하여 변형된 제2 출력 데이터(O2P)를 생성한다. 변형된 제 2 출력 데이터(O2P)는 테스트 데이터 출력 신호(TDO)로서 출력된다
테스트 제어 신호(TCS)가 활성화 레벨을 유지하는 제3 시점(513) 이후에는, 도 6의 테스트 체인은 클럭 신호(CLK)의 상승 에지마다 저장 값을 이동시키는 쉬프터로 동작한다. 변형된 제2 출력 데이터(O2P), 변형된 제4 출력 데이터(O4P), 제6 출력 데이터(O6), 변형된 제5 출력 데이터(O5P), 변형된 제3 출력 데이터(O3P) 및 제1 출력 데이터(O1)가 순차적으로 테스트 데이터 출력 신호(TDO)로서 출력된다.
제6 입력 데이터(I6), 제5 입력 데이터(I5), 제4 입력 데이터(I4), 제3 입력 데이터(I3), 제2 입력 데이터(I2) 및 제1 입력 데이터(I1)가 순차적으로 도 4의 기능 회로(200)에 테스트 데이터 입력 신호(TDI)로서 입력된 경우, 제4 출력 데이터(O4), 제5 출력 데이터(O5), 제6 출력 데이터(O6), 제3 출력 데이터(O3), 제2 출력 데이터(O2) 및 제1 출력 데이터(O1)가 순차적으로 테스트 데이터 출력 신호(TDO)로서 출력된다. 제6 입력 데이터(I6), 제5 입력 데이터(I5), 제4 입력 데이터(I4), 제3 입력 데이터(I3), 제2 입력 데이터(I2) 및 제1 입력 데이터(I1)가 순차적으로 동일하게 도 6의 복제된 기능 회로(400)에 테스트 데이터 입력 신호(TDI)로서 입력된 경우, 변형된 제2 출력 데이터(O2P), 변형된 제4 출력 데이터(O4P), 제6 출력 데이터(O6), 변형된 제5 출력 데이터(O5), 변형된 제3 출력 데이터(O3P) 및 제1 출력 데이터(O1)가 순차적으로 테스트 데이터 출력 신호(TDO)로서 출력된다. 동일한 테스트 데이터 입력 신호(TDI)에 대하여 도 4의 기능 회로(200)와 도 4의 기능 회로(200)와 동일한 기능을 수행하지만 레이아웃이 상이한 도 6의 기능 회로(400)는 상이한 테스트 데이터 출력 신호(TDO)를 생성한다.
도 2a의 하드웨어 테스트 제어부(120a)에 포함되는 저장부(DS)는 상기 도 4의 기능 회로(200)에 테스트 데이터 입력 신호(TDI)를 입력한 경우의 테스트 데이터 출력 신호(TDO)를 예상 테스트 데이터 출력 신호(ETDO)로서 저장할 수 있다.
도 2a의 하드웨어 테스트 제어부(120a)에 포함되는 비교부(CMP)가 도 6의 복제된 기능 회로(400)에 대하여 인증 절차를 수행할 때에는, 예상 테스트 데이터 출력 신호(ETDO)와 도 6의 복제된 기능 회로(400)의 테스트 데이터 출력 신호(TDO)와 비교할 수 있다. 예상 테스트 데이터 출력 신호(ETDO)와 도 6의 복제된 기능 회로(400)의 테스트 데이터 출력 신호(TDO)는 상이한 값을 가지므로, 도 2a의 하드웨어 테스트 제어부(120a)는, 인증 실패를 나타내는 인증 결과(AR)를 생성하고 도 6의 복제된 기능 회로(400)는 진품(Genuine product)이 아님을 확인할 수 있다.
도 8은 도 1의 보안 회로에 포함되는 기능 회로가 물리적 공격을 받은 경우를 나타내는 블록도이다.
도 8을 참조하면, 도 8의 물리적 공격을 받은 기능 회로(600)의 구조 는 도 4의 기능 회로(200)의 구조와 동일하다. 도 8의 물리적 공격을 받은 기능 회로(600)에 전달되는 테스트 데이터 입력 신호(TDI)는 도 4의 기능 회로(200)에 전달되는 테스트 데이터 입력 신호(TDI)와 동일하다.
보안 회로(100)에 대한 물리적 공격은 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6)이 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6)의 저장 값들에 기초하여 연산을 수행하기 전에 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6)의 저장 값들의 일부를 레이저 오류 주입(LFI) 또는 집속 이온 빔(FIB)을 이용하여 변경하는 방법으로 수행될 수 있다. 레이저 오류 주입(LFI) 또는 집속 이온 빔(FIB)을 이용하여 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6)의 저장 값들을 활성화 레벨에서 비활성화 레벨로 변경시킬 수 있고, 반대로 플립 플롭들(FF1, FF2, FF3, FF4, FF5, FF6)의 저장 값들을 비활성화 레벨에서 활성화 레벨로 변경시킬 수 있다.
물리적 공격을 받은 기능 회로(600)는 레이저 오류 주입을 이용하여 제6 조합 논리 회로(LOGIC6)가 제6 플립 플롭(FF6)의 저장 값을 이용하여 연산을 수행하기 전에, 제6 플립 플롭(FF6)의 저장 값을 변경하는 방법으로 물리적 공격이 가해진 경우를 도시한다.
도 9는 도 8의 물리적 공격을 받은 기능 회로의 신호들을 나타내는 타이밍도이다.
도 9를 참조하면, 제1 시점(711)의 이전의 신호들의 동작은 도 5의 타이밍도에 기초하여 이해할 수 있으므로 설명을 생략한다.
클럭 신호(CLK)의 상승 에지인 제1 시점(711)에서, 제1 조합 논리 회로(LOGIC1)가 제1 플립 플롭(FF1)에 저장된 제1 입력 데이터(I1)를 이용하여 제1 출력 데이터(O1)를 생성한다. 제2 플립 플롭(FF2)은 제1 출력 데이터(O1)를 제1 시점(711)에서 제2 시점(712)까지에 걸쳐 저장한다. 제1 시점(711)에서 제2 조합 논리 회로(LOGIC2)가 제2 플립 플롭(FF2)에 저장된 제2 입력 데이터(I2)를 이용하여 제2 출력 데이터(O2)를 생성한다. 제3 플립 플롭(FF3)은 제2 출력 데이터(O2)를 제1 시점(711)에서 제2 시점(712)까지에 걸쳐 저장한다. 제1 시점(711)에서 제3 조합 논리 회로(LOGIC3)가 제3 플립 플롭(FF3)에 저장된 제3 입력 데이터(I3)를 이용하여 제3 출력 데이터(O3)를 생성한다. 제6 플립 플롭(FF6)은 제3 출력 데이터(O3)를 제1 시점(711)에서 제2 시점(712)까지에 걸쳐 저장한다. 제1 시점(711)에서 제6 조합 논리 회로(LOGIC6)가 제6 플립 플롭(FF6)에 저장된 제4 입력 데이터(I4)가 레이저 오류 주입에 의해 변형된 제4 입력 데이터(I4P)를 이용하여 변형된 제6 출력 데이터(O6P)를 생성한다. 제5 플립 플롭(FF5)은 변형된 제6 출력 데이터(O6P)를 제1 시점(711)에서 제2 시점(712)까지에 걸쳐 저장한다. 제1 시점(711)에서 제5 조합 논리 회로(LOGIC5)가 제5 플립 플롭(FF5)에 저장된 제5 입력 데이터(I5)를 이용하여 제5 출력 데이터(O5)를 생성한다. 제4 플립 플롭(FF4)은 제5 출력 데이터(O5)를 제1 시점(711)에서 제2 시점(712)까지에 걸쳐 저장한다. 제1 시점(711)에서 제4 조합 논리 회로(LOGIC4)가 제4 플립 플롭(FF4)에 저장된 제6 입력 데이터(I6)를 이용하여 제4 출력 데이터(O4)를 생성한다. 제 4 출력 데이터(O4)는 테스트 데이터 출력 신호(TDO)로서 출력된다.
테스트 제어 신호(TCS)가 활성화 레벨을 유지하는 제2 시점(711) 이후에는 도 8의 테스트 체인은 클럭 신호(CLK)의 상승 에지마다 저장 값을 이동시키는 쉬프터로 동작한다.
제2 시점(711) 이후에는 제4 출력 데이터(O4), 제5 출력 데이터(O5), 변형된 제6 출력 데이터(O6P), 제3 출력 데이터(O3), 제2 출력 데이터(O2) 및 제1 출력 데이터(O1)가 순차적으로 테스트 데이터 출력 신호(TDO)로서 출력된다.
도 2a의 하드웨어 테스트 제어부(120a)에 포함되는 비교부(CMP)가 도 8의 물리적 공격을 받은 기능 회로(600)에 대하여 인증 절차를 수행할 때에는, 테스트 데이터 입력 신호(TDI)에 대한 도 4의 기능 회로(200)의 응답인 예상 테스트 데이터 출력 신호(ETDO)와 도 8의 물리적 공격을 받은 기능 회로(600)의 테스트 데이터 출력 신호(TDO)와 비교할 수 있다. 도 5의 타이밍도 상의 테스트 데이터 출력 신호(TDO)인 예상 테스트 데이터 출력 신호(ETDO)와 도 8의 물리적 공격을 받은 기능 회로(600)의 테스트 데이터 출력 신호(TDO)는 상이한 값을 가지므로, 도 2a의 하드웨어 테스트 제어부(120a)는, 인증 실패를 나타내는 인증 결과(AR)를 생성하고 도 8의 물리적 공격을 받은 기능 회로(600)가 물리적 공격을 받았음을 확인할 수 있다.
도 10은 도 1의 보안 회로에 포함되는 기능 회로가 물리적 공격을 받은 경우를 나타내는 블록도이다.
도 10을 참조하면, 도 10의 물리적 공격을 받은 기능 회로(800)의 구조는, 제2 조합 논리 회로(LOGIC2)에 포함되는 한 노드와 제5 조합 논리 회로(LOGIC5)에 포함되는 한 노드를 전기적으로 연결한 와이어(Wire)를 제외하고, 도 4의 기능 회로(200)의 구조와 동일하다. 도 10의 물리적 공격을 받은 기능 회로(800)에 전달되는 테스트 데이터 입력 신호(TDI)는 도 4의 기능 회로(200)에 전달되는 테스트 데이터 입력 신호(TDI)와 동일하다.
보안 회로(100)에 대한 물리적 공격은 보안 회로(100)에 포함되는 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6) 에 포함되는 제1 노드와 제2 노드를 전기적으로 단락(Short)시키는 와이어를 강제적으로 끊어서 상기 제1 노드와 상기 제2 노드를 전기적으로 개방(Open)시키는 방법으로 수행될 수 있다. 보안 회로(100)에 대한 물리적 공격은 보안 회로(100)에 포함되는 조합 논리 회로들(LOGIC1, LOGIC2, LOGIC3, LOGIC4, LOGIC5, LOGIC6)에 포함되는 제3 노드와 제4 노드가 전기적으로 개방된 경우, 상기 제3 노드와 상기 제4 노드를 와이어를 이용하여 전기적으로 단락시키는 방법으로 수행될 수 있다.
물리적 공격을 받은 보안 회로(800)는 전기적으로 개방된 제2 조합 논리 회로(LOGIC2)에 포함되는 한 노드와 제5 조합 논리 회로(LOGIC5)에 포함되는 한 노드를 와이어(811)를 이용하여 전기적으로 단락시키는 방법으로 물리적 공격을 받은 경우를 도시한다.
도 11은 도 10의 물리적 공격을 받은 기능 회로의 신호들을 나타내는 타이밍도이다.
도 11을 참조하면, 제1 시점(911)의 이전의 신호들의 동작은 도 5의 타이밍도에 기초하여 이해할 수 있으므로 설명을 생략한다.
클럭 신호(CLK)의 상승 에지인 제1 시점(911)에서, 제1 조합 논리 회로(LOGIC1)가 제1 플립 플롭(FF1)에 저장된 제1 입력 데이터(I1)를 이용하여 제1 출력 데이터(O1)를 생성한다. 제2 플립 플롭(FF2)은 제1 출력 데이터(O1)를 제1 시점(911)에서 제2 시점(912)까지에 걸쳐 저장한다. 제1 시점(911)에서 제2 조합 논리 회로(LOGIC2)가 제2 플립 플롭(FF2)에 저장된 제2 입력 데이터(I2)를 이용하여 제2 출력 데이터(O2)를 생성한다. 제3 플립 플롭(FF3)은 제2 출력 데이터(O2)를 제1 시점(911)에서 제2 시점(912)까지에 걸쳐 저장한다. 제1 시점(911)에서 제3 조합 논리 회로(LOGIC3)가 제3 플립 플롭(FF3)에 저장된 제3 입력 데이터(I3)를 이용하여 제3 출력 데이터(O3)를 생성한다. 제6 플립 플롭(FF6)은 제3 출력 데이터(O3)를 제1 시점(911)에서 제2 시점(912)까지에 걸쳐 저장한다. 제1 시점(911)에서 제6 조합 논리 회로(LOGIC6)가 제6 플립 플롭(FF6)에 저장된 제4 입력 데이터(I4)를 이용하여 제6 출력 데이터(O6)를 생성한다. 제5 플립 플롭(FF5)은 제6 출력 데이터(O6)를 제1 시점(911)에서 제2 시점(912)까지에 걸쳐 저장한다. 제1 시점(911)에서 제2 조합 논리 회로(LOGIC2)의 한 노드와 전기적으로 연결된 와이어(811)에 의해 변형된 제5 조합 논리 회로(LOGIC5)가 제5 플립 플롭(FF5)에 저장된 제5 입력 데이터(I5)를 이용하여 변형된 제5 출력 데이터(O5P)를 생성한다. 제4 플립 플롭(FF4)은 변형된 제5 출력 데이터(O5P)를 제1 시점(911)에서 제2 시점(912)까지에 걸쳐 저장한다. 제1 시점(911)에서 제4 조합 논리 회로(LOGIC4)가 제4 플립 플롭(FF4)에 저장된 제6 입력 데이터(I6)를 이용하여 제4 출력 데이터(O4)를 생성한다. 제 4 출력 데이터(O4)는 테스트 데이터 출력 신호(TDO)로서 출력된다.
테스트 제어 신호(TCS)가 활성화 레벨을 유지하는 제2 시점(911) 이후에는 도 10의 테스트 체인은 클럭 신호(CLK)의 상승 에지마다 저장 값을 이동시키는 쉬프터로 동작한다.
제2 시점(911) 이후에는 제4 출력 데이터(O4), 변형된 제5 출력 데이터(O5P), 제6 출력 데이터(O6), 제3 출력 데이터(O3), 제2 출력 데이터(O2) 및 제1 출력 데이터(O1)가 순차적으로 테스트 데이터 출력 신호(TDO)로서 출력된다.
도 2a의 하드웨어 테스트 제어부(120a)에 포함되는 비교부(CMP)가 도 10의 물리적 공격을 받은 기능 회로(800)에 대하여 인증 절차를 수행할 때에는, 테스트 데이터 입력 신호(TDI)에 대한 도 4의 기능 회로(200)의 응답인 예상 테스트 데이터 출력 신호(ETDO)와 도 10의 물리적 공격을 받은 기능 회로(800)의 테스트 데이터 출력 신호(TDO)와 비교할 수 있다. 도 5의 타이밍도 상의 테스트 데이터 출력 신호(TDO)인 예상 테스트 데이터 출력 신호(ETDO)와 도 10의 물리적 공격을 받은 기능 회로(800)의 테스트 데이터 출력 신호(TDO)는 상이한 값을 가지므로, 도 2a의 하드웨어 테스트 제어부(120a)는, 인증 실패를 나타내는 인증 결과(AR)를 생성하고 도 10의 물리적 공격을 받은 기능 회로(800)가 물리적 공격을 받았음을 확인할 수 있다.
도 12 및 13은 본 발명의 실시예들에 따른 보안 시스템들을 나타내는 블록도들이다.
도 12를 참조하면, 제1 보안 시스템(1000a)은 보안 회로(1020a)를 구비한 보안 제품(1010a) 및 제어부(1030a)를 포함한다. 보안 회로(1020a)는 기능 회로(FC) 및 하드웨어 테스트 제어부(HTC)를 포함한다. 기능 회로(FC)는 하드웨어의 기능을 검증하기 위해 복수의 플립 플롭들을 연결한 테스트 체인을 포함하고, 테스트 제어 신호(TCS), 하드웨어 테스트 모드 신호(HTME) 및 상기 테스트 체인에 기초하여 테스트 데이터 입력 신호(TDI)를 암호화하여 테스트 데이터 출력 신호(TDO)를 생성한다. 하드웨어 테스트 제어부(HTC)는 인증 커맨드 신호(AC)에 기초하여 테스트 제어 신호(TCS) 및 하드웨어 테스트 모드 신호(HTME)를 생성하고, 인증 데이터 신호(ADS)에 기초하여 테스트 데이터 입력 신호(TDI)를 생성한다. 제어부(1030a)는 인증 커맨드 신호(AC) 및 인증 데이터 신호(ADS)를 생성하고, 보안 제품(1010a)의 동작을 제어한다.
하드웨어 테스트 제어부(HTC) 및 기능 회로(FC)를 포함하는 보안 회로(1020a)에 대해서 도 1 내지 11을 참조하여 전술하였으므로 설명을 생략한다.
제어부(1030a)는 데이터 저장부(DS) 및 비교부(CMP)를 포함할 수 있다. 데이터 저장부(DS)는 테스트 데이터 입력 신호(TDI)에 상응하는 예상 테스트 데이터 출력 신호(ETDO)를 저장할 수 있다. 비교부(CMP)는 테스트 데이터 출력 신호(TDO)와 예상 테스트 데이터 출력 신호(ETDO)를 비교하여 인증 결과를 생성할 수 있다.
비교부(CMP) 및 데이터 저장부(DS)는 도 2a 및 2b를 참조하여 전술하였으므로 설명을 생략한다.
제어부(1030a)는 상기 인증 결과가 인증 실패를 나타내는 경우, 보안 제품(1010a)을 비활성화할 수 있다. 제어부(1030a)는 상기 인증 결과가 인증 실패를 나타내는 경우, 보안 회로(1020a)를 비활성화하거나, 보안 회로(1020a)를 보호 모드로 동작하게 할 수 있다.
상기 인증 결과에 기초하여 제어부(1030a)는 보안 제품 제어 신호(CS)를 생성한다. 보안 제품(1010a)에 포함되는 보안 제품 제어부(PC)는 보안 제품 제어 신호(CS)에 기초하여 보안 제품(1010a) 및 보안 회로(1020a)를 비활성화하거나, 보안 제품(1010a) 및 보안 회로(1020a)가 보호 모드로 동작하도록 제어할 수 있다.
보안 회로(1020a)가 복제되어 상기 인증 결과가 인증 실패를 나타내는 경우는 도 6 및 7을 참조하여 전술한 바와 같고, 보안 회로(1020a)가 물리적 공격을 받아 상기 인증 결과가 인증 실패를 나타내는 경우는 도 8 내지 11을 참조하여 전술한 바와 같다.
일 실시예로서, 상기 보안 제품은 프린터 드럼이고, 상기 보안 회로는 상기 프린터 드럼에 포함되는 보안 회로일 수 있다. 상기 프린터 드럼의 기능, 예를 들어 잉크를 출력하는 기능, 을 정지시킴으로서 상기 프린터 드럼을 비활성화시킬 수 있다. 상기 프린터 드럼에 포함되는 보안 회로의 전기적 동작을 정지시킴으로서 상기 보안 회로를 비활성화시킬 수 있다. 상기 프린터 드럼에 포함되는 보안 회로가 비활성화되면 상기 프린터 드럼 또한 비활성화될 수 있다.
상기 보호 모드는 보안 제품(1010a) 및 보안 회로(1020a)의 정상 모드가 아닌, 제품 및 회로의 보호를 위해 동작하는 모드를 말한다. 보안 제품(1010a)이 상기 프린터 드럼이고, 보안 회로(1020a)가 상기 프린터 드럼에 포함된 보안 회로인 경우, 상기 프린터 드럼은 잉크를 출력하는 정상 모드가 아닌 알람을 울리는 보호 모드로 동작할 수 있고, 상기 프린터 드럼에 포함되는 보안 회로는 인증 절차를 수행하는 정상 모드가 아닌 상기 프린터 드럼에 포함되는 보안 회로의 일부만을 동작시켜 보안 관련 정보가 유출되지 않도록 동작하는 보호 모드로 동작할 수 있다.
도 13을 참조하면, 제2 보안 시스템(1000b)은 보안 회로(1020b)를 구비한 보안 제품(1010b) 및 제어부(1030b)를 포함한다. 보안 회로(1020b)는 기능 회로(FC) 및 하드웨어 테스트 제어부(HTC)를 포함한다. 기능 회로(FC)는 하드웨어의 기능을 검증하기 위해 복수의 플립 플롭들을 연결한 테스트 체인을 포함하고, 테스트 제어 신호(TCS), 하드웨어 테스트 모드 신호(HTME) 및 상기 테스트 체인에 기초하여 테스트 데이터 입력 신호(TDI)를 암호화하여 테스트 데이터 출력 신호(TDO)를 생성한다. 하드웨어 테스트 제어부(HTC)는 인증 커맨드 신호(AC)에 기초하여 테스트 제어 신호(TCS) 및 하드웨어 테스트 모드 신호(HTME)를 생성하고, 인증 데이터 신호(ADS)에 기초하여 테스트 데이터 입력 신호(TDI)를 생성하고, 테스트 데이터 출력 신호(TDO)에 기초하여 인증 결과(AR)를 생성한다. 하드웨어 테스트 제어부(HTC)는 신호 생성부, 데이터 저장부 및 비교부를 포함할 수 있다. 상기 신호 생성부는 인증 커맨드 신호(AC)에 기초하여 테스트 조절 신호(TCS) 및 하드웨어 테스트 모드 신호(HTME)를 생성하고, 인증 데이터 신호(ADS)에 기초하여 테스트 데이터 입력 신호(TDI)를 생성할 수 있다. 상기 데이터 저장부는 테스트 데이터 입력 신호(TDI)에 상응하는 예상 테스트 데이터 출력 신호(ETDO)를 저장할 수 있다. 상기 비교부는 테스트 데이터 출력 신호(TDO)와 예상 테스트 데이터 출력 신호(ETDO)를 비교하여 인증 결과(AR)를 생성할 수 있다. 제어부(1030b)는 인증 커맨드 신호(AC) 및 인증 데이터 신호(ADS)를 생성하고, 보안 제품(1010b)의 동작을 제어한다.
하드웨어 테스트 제어부(HTC)에 포함되는 상기 신호 생성부, 상기 데이터 저장부 및 상기 비교부는 도 2a 및 2b를 참조하여 설명한 신호 생성부(SG), 데이터 저장부(DS) 및 비교부(CMP)와 동일하므로, 상기 신호 생성부, 상기 데이터 저장부 및 상기 비교부에 대한 설명은 생략한다.
제어부(1030b)는 하드웨어 테스트 제어부(HTC)로부터 제공되는 인증 결과(AR)가 인증 실패를 나타내는 경우, 보안 제품(1010b) 또는 보안 회로(1020b)를 비활성화하거나 보안 회로(1020b)를 보호 모드로 동작하게 할 수 있다.
도 14 및 15는 도 12 및 13의 보안 시스템들의 인증 절차들을 나타내는 순서도들이다.
도 12 및 14를 참조하면, 먼저 진위 확인 커맨드 신호 및 인증 데이터 신호를 생성한다(단계 S110). 도 12의 보안 시스템(1000a)에 포함된 제어부(1030a)는 보안 제품(1010a)의 진위 여부를 확인하는 커맨드 신호를 생성할 수 있다. 진위 여부 확인 커맨드 신호는 인증 커맨드 신호의 일종이다.
다음으로, 상기 진위 확인 커맨드 신호 및 상기 인증 데이터 신호에 기초하여 테스트 데이터 입력 신호, 테스트 제어 신호 및 하드웨어 테스트 모드 신호를 생성한다(단계 S120). 도 12의 보안 시스템(1000a)에 포함된 하드웨어 테스트 제어부(HTC)는, 상기 진위 확인 커맨드 신호 및 인증 데이터 신호(ADS)에 기초하여 테스트 데이터 입력 신호(TDI), 테스트 조절 신호(TCS) 및 하드웨어 테스트 모드 신호(HTME)를 생성할 수 있다. 도 12의 보안 시스템(1000a)에 포함된 기능 회로(FC)는 테스트 조절 신호(TCS) 및 하드웨어 테스트 모드 신호(HTME)에 응답하여 하드웨어 테스트 모드에 진입할 수 있다.
다음으로, 상기 테스트 데이터 입력 신호를 암호화하여 테스트 데이터 출력 신호를 생성한다(단계 S130).
상기 테스트 데이터 출력 신호가 예상 테스트 데이터 출력 신호와 동일한 경우(단계 S140: YES), 보안 회로 또는 상기 보안 회로를 포함하는 보안 제품을 활성화한다(단계 S160).
상기 테스트 데이터 출력 신호가 예상 테스트 데이터 출력 신호와 상이한 경우(단계 S140: NO), 상기 보안 회로 또는 상기 보안 제품을 비활성화한다(단계 S150).
상기 테스트 데이터 출력 신호를 생성하는 단계(S130), 상기 테스트 데이터 출력 신호가 예상 테스트 데이터 출력 신호와 동일한지 여부를 판단하는 단계(S140), 상기 보안 제품을 활성화하는 단계(S160) 및 상기 보안 제품을 비활성화하는 단계(S150)는 도 4 내지 11을 참조하여 이해할 수 있으므로 설명을 생략한다.
도 12 및 15를 참조하면, 먼저 회로 변경 확인 커맨드 신호 및 인증 데이터 신호를 생성한다(단계 S210). 도 12의 보안 시스템(1000a)에 포함된 제어부(1030a)는 보안 제품(1010a)에 포함된 보안 회로(1020a)의 변경 여부를 확인하는 커맨드 신호를 생성할 수 있다. 회로 변경 확인 커맨드 신호는 인증 커맨드 신호의 일종이다.
다음으로, 상기 회로 변경 확인 커맨드 신호 및 상기 인증 데이터 신호에 기초하여 테스트 데이터 입력 신호, 테스트 제어 신호 및 하드웨어 테스트 모드 신호를 생성한다(단계 S220). 도 12의 보안 시스템(1000a)에 포함된 하드웨어 테스트 제어부(HTC)는, 상기 회로 변경 확인 커맨드 신호 및 인증 데이터 신호(ADS)에 기초하여 테스트 데이터 입력 신호(TDI), 테스트 조절 신호(TCS) 및 하드웨어 테스트 모드 신호(HTME)를 생성할 수 있다.
다음으로, 상기 테스트 데이터 입력 신호를 암호화하여 테스트 데이터 출력 신호를 생성한다(단계 S230).
상기 테스트 데이터 출력 신호가 예상 테스트 데이터 출력 신호와 동일한 경우(단계 S240: YES), 보안 회로 또는 상기 보안 회로를 포함하는 보안 제품을 활성화한다(단계 S260).
상기 테스트 데이터 출력 신호가 예상 테스트 데이터 출력 신호와 상이한 경우(단계 S240: NO), 상기 보안 회로 또는 상기 보안 제품을 비활성화하거나 상기 보안 회로를 보호 모드로 동작시킨다(단계 S250).
상기 테스트 데이터 출력 신호를 생성하는 단계(S230), 상기 테스트 데이터 출력 신호가 예상 테스트 데이터 출력 신호와 동일한지 여부를 판단하는 단계(S240), 상기 보안 제품을 활성화하는 단계(S260) 및 상기 보안 회로를 보호 모드로 동작시키는 단계(S250)는 도 4 내지 11을 참조하여 이해할 수 있으므로 설명을 생략한다.
도 16은 도 14 및 15의 인증 절차들이 수행되는 시간을 나타내는 그래프이다.
도 16을 참조하면, 도 12 및 13의 보안 회로들(1000a, 1000b)에 포함되는 하드웨어 테스트 제어부들(1030a, 1030b)은 도 12 및 13의 보안 회로들(1000a, 1000b)에 포함되는 기능 회로들(1020a, 1020b)의 초기화 동작 기간 또는 런타임(Run time) 기간에 하드웨어 테스트 모드 신호(HTME)를 활성화 할 수 있다.
도 14 및 15의 인증 절차들(S110 내지 S160 및 S210 내지 S260; AS)은 보안 시스템들(1000a, 1000b)의 제조자가 보안 시스템들(1000a, 1000b)의 성능을 테스트하는 테스트 기간(TESTING TIME)에 수행될 수 있다. 인증 절차들(AS) 내에서 하드웨어 테스트 모드 신호(HTME)가 활성화 될 수 있다.
인증 절차들(AS)은 사용자가 보안 시스템들(1000a, 1000b)을 사용할 때, 보안 시스템들(1000a, 1000b)의 초기화 동작 기간(SETUP TIME)에 수행될 수 있다.
인증 절차들(AS)은 사용자가 보안 시스템들(1000a, 1000b)을 상기 초기화 동작 기간(SETUP TIME) 이후에 정상적으로 사용하는 런타임 기간(RUN TIME)에 수행될 수 있다.
본 발명은 인증 절차를 구현하는 보안 시스템에 널리 사용될 수 있다. 자세하게는 보안 제품을 포함하는 보안 시스템이 보안 제품의 진품 여부, 및 보안 제품의 변경 여부를 판단하는 인증 절차에 사용될 수 있다.
보안 제품이 프린터 드럼인 경우, 프린터 드럼에 상응하는 보안 시스템은 프린터 시스템일 수 있다. 보안 제품이 엔진 부품인 경우, 엔진 부품에 상응하는 보안 시스템은 자동차 시스템일 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.
Claims (10)
- 복수의 플립 플롭들을 연결한 테스트 체인을 포함하고, 테스트 제어 신호, 하드웨어 테스트 모드 신호 및 상기 테스트 체인에 기초하여 테스트 데이터 입력 신호를 암호화하여 테스트 데이터 출력 신호를 생성하는 기능 회로(상기 복수의 플립플롭들은 회로 변경 확인 커맨드에 따라 상기 기능 회로의 변경 여부를 확인함); 및
상기 테스트 데이터 입력 신호, 상기 테스트 제어 신호 및 상기 하드웨어 테스트 모드 신호를 생성하고, 상기 테스트 데이터 출력 신호에 기초하여 인증 결과를 생성하는 하드웨어 테스트 제어부를 포함하는 보안 회로. - 제1 항에 있어서, 상기 하드웨어 테스트 제어부는
인증 데이터 신호에 기초하여 상기 테스트 데이터 입력 신호를 생성하는 신호 생성부;
상기 테스트 데이터 입력 신호에 상응하는 예상 테스트 데이터 출력 신호를 저장하는 데이터 저장부; 및
상기 테스트 데이터 출력 신호와 상기 예상 테스트 데이터 출력 신호를 비교하여 상기 인증 결과를 생성하는 비교부를 포함하는 것을 특징으로 하는 보안 회로. - 제2 항에 있어서, 상기 기능 회로는
상기 플립 플롭들의 저장 값들 및 조합 논리 회로 입력 신호에 기초하여 상기 기능 회로의 연산을 수행하는 복수의 조합 논리 회로들(Combinational logic circuits)을 더 포함하는 것을 특징으로 하는 보안 회로. - 제3 항에 있어서
상기 하드웨어 테스트 제어부는 상기 인증 데이터 신호에 기초하여 상기 조합 논리 회로 입력 신호를 생성하는 것을 특징으로 하는 보안 회로. - 제4 항에 있어서,
상기 기능 회로는 상기 조합 논리 회로 입력 신호에 기초하여 상기 테스트 데이터 입력 신호를 암호화하여 상기 테스트 데이터 출력 신호를 생성하는 것을 특징으로 하는 보안 회로. - 제1 항에 있어서, 상기 하드웨어 테스트 제어부는
상기 인증 결과가 인증 실패를 나타내는 경우, 상기 보안 회로를 비활성화하거나, 상기 보안 회로를 보호 모드로 동작하게 하는 것을 특징으로 하는 보안 회로. - 보안 회로를 구비한 보안 제품 및 제어부를 포함하는 보안 시스템으로서,
상기 보안 회로는,
복수의 플립 플롭들을 연결한 테스트 체인을 포함하고, 테스트 제어 신호, 하드웨어 테스트 모드 신호 및 상기 테스트 체인에 기초하여 테스트 데이터 입력 신호를 암호화하여 테스트 데이터 출력 신호를 생성하는 기능 회로(상기 복수의 플립플롭들은 진위 확인 커맨드에 따라 상기 기능 회로의 진위 여부를 확인함); 및
인증 커맨드 신호에 기초하여 상기 테스트 제어 신호 및 상기 하드웨어 테스트 모드 신호를 생성하고, 인증 데이터 신호에 기초하여 상기 테스트 데이터 입력 신호를 생성하는 하드웨어 테스트 제어부를 포함하고,
상기 제어부는 상기 인증 커맨드 신호 및 상기 인증 데이터 신호를 생성하고, 상기 보안 제품의 동작을 제어하는 보안 시스템. - 제7 항에 있어서, 상기 제어부는
상기 테스트 데이터 입력 신호에 상응하는 예상 테스트 데이터 출력 신호를 저장하는 데이터 저장부; 및
상기 테스트 데이터 출력 신호와 예상 테스트 데이터 출력 신호를 비교하여 인증 결과를 생성하는 비교부를 포함하는 것을 특징으로 하는 보안 시스템. - 제7 항에 있어서, 상기 하드웨어 테스트 제어부는
상기 인증 커맨드 신호에 기초하여 상기 테스트 제어 신호 및 상기 하드웨어 테스트 모드 신호를 생성하고, 상기 인증 데이터 신호에 기초하여 상기 테스트 데이터 입력 신호를 생성하는 신호 생성부;
상기 테스트 데이터 입력 신호에 상응하는 예상 테스트 데이터 출력 신호를 저장하는 데이터 저장부; 및
상기 테스트 데이터 출력 신호와 상기 예상 테스트 데이터 출력 신호를 비교하여 인증 결과를 생성하는 비교부를 포함하는 것을 특징으로 하는 보안 시스템. - 제9 항에 있어서, 상기 제어부는
상기 하드웨어 테스트 제어부로부터 제공되는 상기 인증 결과가 인증 실패를 나타내는 경우, 상기 보안 회로 또는 상기 보안 제품을 비활성화하거나, 상기 보안 회로를 보호 모드로 동작하게 하는 것을 특징으로 하는 보안 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130150366A KR102190469B1 (ko) | 2013-12-05 | 2013-12-05 | 보안 회로 및 이를 포함하는 보안 시스템 |
US14/499,724 US9436833B2 (en) | 2013-12-05 | 2014-09-29 | Security circuits and security systems including the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130150366A KR102190469B1 (ko) | 2013-12-05 | 2013-12-05 | 보안 회로 및 이를 포함하는 보안 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150065253A KR20150065253A (ko) | 2015-06-15 |
KR102190469B1 true KR102190469B1 (ko) | 2020-12-11 |
Family
ID=53271478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130150366A KR102190469B1 (ko) | 2013-12-05 | 2013-12-05 | 보안 회로 및 이를 포함하는 보안 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9436833B2 (ko) |
KR (1) | KR102190469B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11055409B2 (en) * | 2019-01-06 | 2021-07-06 | Nuvoton Technology Corporation | Protected system |
US20200401690A1 (en) * | 2019-06-21 | 2020-12-24 | Kameleonsec Inc. | Techniques for authenticating and sanitizing semiconductor devices |
US11394702B2 (en) * | 2019-09-23 | 2022-07-19 | T-Mobile Usa, Inc. | Authentication system when authentication is not functioning |
KR102640110B1 (ko) | 2023-02-28 | 2024-02-23 | 전남대학교산학협력단 | 침투 공격 검출이 가능한 초소형 온칩 보안 회로 장치 및 그 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070239995A1 (en) * | 2006-04-07 | 2007-10-11 | Honeywell International Inc. | External key to provide protection to devices |
US20090300371A1 (en) * | 2008-05-28 | 2009-12-03 | Yoshiya Fumio | Semiconductor integrated device and method of testing semiconductor integrated device |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5574693A (en) * | 1993-08-10 | 1996-11-12 | Texas Instruments Incorporated | Semiconductor memory device |
JP4957936B2 (ja) * | 2001-03-16 | 2012-06-20 | ソニー株式会社 | コンテンツ信号再生装置、コンテンツ信号再生方法 |
JP2003107132A (ja) | 2001-09-28 | 2003-04-09 | Toshiba Microelectronics Corp | 半導体集積回路 |
JP3671948B2 (ja) | 2002-09-24 | 2005-07-13 | ソニー株式会社 | 半導体集積回路とその試験方法 |
JP2004272312A (ja) | 2003-03-05 | 2004-09-30 | Fuji Electric Device Technology Co Ltd | テスト装置及びテスト方法 |
KR100659182B1 (ko) | 2006-06-23 | 2006-12-20 | 쓰리에이로직스(주) | 난수 발생기와 난수 발생 방법 |
US7958419B2 (en) | 2007-06-07 | 2011-06-07 | Texas Instruments Incorporated | Entering a shift-DR state in one of star connected components |
JP2009093496A (ja) | 2007-10-10 | 2009-04-30 | Toshiba Microelectronics Corp | 半導体集積回路の検証方法及び検証装置 |
EP2251813A1 (en) | 2009-05-13 | 2010-11-17 | Nagravision S.A. | Method for authenticating access to a secured chip by a test device |
JP2011107930A (ja) | 2009-11-17 | 2011-06-02 | Sony Corp | 半導体集積回路、情報処理装置、およびデータ処理方法、並びにプログラム |
JP5793978B2 (ja) | 2011-06-13 | 2015-10-14 | 富士通セミコンダクター株式会社 | 半導体装置 |
JP2013036874A (ja) | 2011-08-09 | 2013-02-21 | Renesas Electronics Corp | スキャンパタン作成手法、プログラム、スキャンパタン作成装置、テスタ、及びテスト方法 |
-
2013
- 2013-12-05 KR KR1020130150366A patent/KR102190469B1/ko active IP Right Grant
-
2014
- 2014-09-29 US US14/499,724 patent/US9436833B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070239995A1 (en) * | 2006-04-07 | 2007-10-11 | Honeywell International Inc. | External key to provide protection to devices |
US20090300371A1 (en) * | 2008-05-28 | 2009-12-03 | Yoshiya Fumio | Semiconductor integrated device and method of testing semiconductor integrated device |
Also Published As
Publication number | Publication date |
---|---|
US20150161416A1 (en) | 2015-06-11 |
KR20150065253A (ko) | 2015-06-15 |
US9436833B2 (en) | 2016-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6377865B2 (ja) | リング発振器ベースの物理的複製不可関数および年齢検知回路を使用した集積回路識別およびディペンダビリティ検証 | |
US10256983B1 (en) | Circuit that includes a physically unclonable function | |
KR102190469B1 (ko) | 보안 회로 및 이를 포함하는 보안 시스템 | |
EP2923214B1 (en) | Unique and unclonable platform identifiers using data-dependent circuit path responses | |
EP3503466B1 (en) | Countermeasures to frequency alteration attacks on ring oscillator based physical unclonable functions | |
CN103733204A (zh) | 处理器中的状态之间的转移 | |
JP6952102B2 (ja) | 被保護システム及び保護方法 | |
CN107533607B (zh) | 通过信号延迟监测来进行攻击检测 | |
JP7005576B2 (ja) | 小型オーバーヘッドランダムプリチャージを使用してサイドチャネル攻撃を防犯する電子デバイス | |
CN110861600A (zh) | 保障x模块冗余 | |
CN110175478A (zh) | 一种主板上电方法、***及可编程器件 | |
US20160056953A1 (en) | Data generating device, communication device, mobile object, data generating method, and computer program product | |
WO2016064898A1 (en) | Autonomous control systems and methods | |
US20140049359A1 (en) | Security device and integrated circuit including the same | |
US10459732B2 (en) | Method for operating a system on chip comprising a bootable processor to provide protection of confidential information on the system on chip | |
US20160219079A1 (en) | Autonomous control systems and methods for protecting infrastructure | |
KR102220662B1 (ko) | 테스트 모드에서 데이터 보호 장치 및 방법 | |
US9003520B2 (en) | Securing a storage element for a binary datum, control register and chip card | |
US20200235917A1 (en) | Shared secret generation | |
JP2019161645A (ja) | 情報処理システム、情報処理装置、及び情報処理装置の制御方法 | |
Konganapalle et al. | SMASh: A State Encoding Methodology Against Attacks on Finite State Machines | |
EP4213443A1 (en) | Method for detecting a fault injection in a data processing system | |
US20200401690A1 (en) | Techniques for authenticating and sanitizing semiconductor devices | |
WO2016073751A1 (en) | Autonomous control systems and methods for protecting infrastructure | |
CN117240459A (zh) | 密码运算方法、密码运算模块、芯片及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |