KR102335203B1 - 부채널 공격에 대응하는 전자 장치 - Google Patents

부채널 공격에 대응하는 전자 장치 Download PDF

Info

Publication number
KR102335203B1
KR102335203B1 KR1020150134291A KR20150134291A KR102335203B1 KR 102335203 B1 KR102335203 B1 KR 102335203B1 KR 1020150134291 A KR1020150134291 A KR 1020150134291A KR 20150134291 A KR20150134291 A KR 20150134291A KR 102335203 B1 KR102335203 B1 KR 102335203B1
Authority
KR
South Korea
Prior art keywords
setting
special function
basic operation
control
function registers
Prior art date
Application number
KR1020150134291A
Other languages
English (en)
Other versions
KR20170018752A (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 US15/219,271 priority Critical patent/US10210350B2/en
Publication of KR20170018752A publication Critical patent/KR20170018752A/ko
Application granted granted Critical
Publication of KR102335203B1 publication Critical patent/KR102335203B1/ko

Links

Images

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
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]

Abstract

전자 장치는 컨트롤 아이피(intellectual property; IP), 기본 연산 아이피, 중앙 처리 장치(central processing unit; CPU) 및 난수 발생기를 포함한다. 상기 컨트롤 아이피는 복수의 제1 특수 기능 레지스터들을 포함한다. 상기 기본 연산 아이피는 복수의 제2 특수 기능 레지스터들을 포함한다. 상기 중앙 처리 장치는 상기 컨트롤 아이피 및 상기 기본 연산 아이피와 버스를 통하여 연결되고, 상기 컨트롤 아이피의 동작을 설정하는 제어 신호를 상기 버스를 통하여 상기 제1 특수 기능 레지스터에 제공한다. 상기 난수 발생기는 상기 컨트롤 아이피에 랜덤 신호를 출력한다. 상기 컨트롤 아이피는 상기 랜덤 신호에 응답하여 상기 기본 연산 아이피와 직접적으로 연결되는 제1 설정 경로와 상기 기본 연산 아이피와 상기 버스를 경유하는 제2 설정 경로 중 하나를 랜덤하게 선택하여 상기 제2 특수 기능 레지스터들을 설정한다.

Description

부채널 공격에 대응하는 전자 장치{ELECTRONIC DEVICE AGAINST SIDE CHANNEL ATTACK}
본 발명은 전자 장치에 관한 것으로, 보다 상세하게는 전자 장치의 보안에 관한 것이다.
최근 모바일 디바이스(mobile device)와 같은 전자 시스템에 다양한 기능이 탑재됨에 따라, 전자 시스템에서 개인 정보, 암호키(cryptographic key) 등과 같은 보안 데이터(security data)를 처리하는 빈도가 증가하고 있다.
그런데 전자 시스템의 구성 요소들 사이에서 보안 데이터를 처리하는 과정에서 상기 보안 데이터가 외부로 유출될 가능성이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 보안 데이터의 유출을 방지할 수 있는 부채널 공격에 대응하는 전자 장치를 제공하는 것이다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 부채널 공격에 대응하는 전자 장치는 컨트롤 아이피(intellectual property; IP), 기본 연산 아이피, 중앙 처리 장치(central processing unit; CPU) 및 난수 발생기를 포함한다. 상기 컨트롤 아이피는 복수의 제1 특수 기능 레지스터들을 포함한다. 상기 기본 연산 아이피는 복수의 제2 특수 기능 레지스터들을 포함한다. 상기 중앙 처리 장치는 상기 컨트롤 아이피 및 상기 기본 연산 아이피와 버스를 통하여 연결되고, 상기 컨트롤 아이피의 동작을 설정하는 제어 신호를 상기 버스를 통하여 상기 제1 특수 기능 레지스터에 제공한다. 상기 난수 발생기는 상기 컨트롤 아이피에 랜덤 신호를 출력한다. 상기 컨트롤 아이피는 상기 랜덤 신호에 응답하여 상기 기본 연산 아이피와 직접적으로 연결되는 제1 설정 경로와 상기 기본 연산 아이피와 상기 버스를 경유하는 제2 설정 경로 중 하나를 랜덤하게 선택하여 상기 제2 특수 기능 레지스터들을 설정한다.
예시적인 실시예에 있어서, 상기 컨트롤 아이피는 상기 제1 설정 경로를 통하여 상기 기본 연산 아이피에 상기 제2 특수 기능 레지스터들을 설정하는 제1 설정 신호와 상기 제1 설정 신호를 선택하기 위한 선택 신호를 제공하고, 상기 제2 설정 경로를 통하여 상기 기본 연산 아이피에 상기 제2 특수 기능 레지스터들을 설정하는 제2 설정 신호를 제공할 수 있다.
상기 기본 연산 아이피는 연산 로직 및 복수의 멀티플렉서들을 포함할 수 있다. 상기 연산 로직은 상기 제2 특수 기능 레지스터들에 저장된 데이터에 따라 덧셈, 뺄셈 및 곱셈 중 적어도 하나의 기본 연산을 수행할 수 있다. 상기 복수의 멀티플렉서들은 상기 선택 신호에 응답하여 상기 제1 설정 신호와 상기 제2 설정 신호 중 하나를 선택하고 선택된 설정 신호를 상기 제2 특수 기능 레지스터들에 제공할 수 있다.
상기 연산 로직은 복수의 연산 유효 구간들 각각에서 상기 기본 연산을 수행하고, 상기 제2 특수 기능 레지스터들은 상기 유효 연산 구간들 사이의 설정 구간들 각각에서 상기 선택된 설정 신호에 따라 설정될 수 있다.
상기 컨트롤 아이피는 상기 랜덤 신호에 따라 상기 제1 설정 경로와 상기 제2 설정 경로 중 하나를 랜덤하게 선택하고 상기 제2 특수 기능 레지스터들을 설정하여 상기 설정 구간들에서 상기 기본 연산 아이피의 파워 패턴을 랜덤화할 수 있다.
상기 제1 설정 신호는 상기 연산 로직의 동작과 관련된 데이터를 포함하고, 상기 제2 설정 신호는 상기 연산 로직의 동작과 데이터와 상기 제2 특수 기능 레지스터들 중 하나를 지정하는 어드레스를 포함할 수 있다.
상기 제1 설정 경로를 통하여 상기 제2 특수 기능 레지스터들이 설정되는 경우, 상기 제2 특수 기능 레지스터들은 동시에 설정될 수 있다.
상기 제2 설정 경로를 통하여 상기 제2 특수 기능 레지스터들이 설정되는 경우, 상기 제2 특수 기능 레지스터들은 순차적으로 설정될 수 있다.
예시적인 실시예에 있어서, 상기 컨트롤 아이피는 상기 제어 신호를 상응하는 버스 프로토콜에 따르는 내부 제어 신호로 변환하고, 상기 내부 제어 신호를 상기 제1 특수 기능 레지스터들에 제공하는 버스 인터페이스를 더 포함할 수 있다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 전자 장치는 컨트롤 아이피(intellectual property; IP), 기본 연산 아이피 및 중앙 처리 장치(central processing unit; CPU)를 포함한다. 상기 컨트롤 아이피는 복수의 제1 특수 기능 레지스터들을 포함한다. 상기 기본 연산 아이피는 복수의 제2 특수 기능 레지스터들을 포함한다. 상기 중앙 처리 장치는 상기 컨트롤 아이피 및 상기 기본 연산 아이피와 버스를 통하여 연결되고, 상기 컨트롤 아이피의 동작을 설정하는 제어 신호를 상기 버스를 통하여 상기 제1 특수 기능 레지스터에 제공한다. 상기 컨트롤 아이피는 상기 기본 연산 아이피와 직접적으로 연결되는 직접 설정 경로를 통하여 상기 제2 특수 기능 레지스터들을 설정한다.
예시적인 실시예에 있어서, 상기 기본 연산 아이피는 상기 제2 특수 기능 레지스터들에 저장된 데이터에 따라 덧셈, 뺄셈 및 곱셈 중 적어도 하나의 기본 연산을 수행하는 연산 로직을 더 포함할 수 있다.
상기 연산 로직은 복수의 연속된 연산 유효 구간들에서 상기 기본 연산을 수행할 수 있다.
상기 제2 특수 기능 레지스터들은 상기 연산 유효 구간들 이전의 설정 구간에서 상기 컨트롤 아이피로부터의 설정 신호에 따라 동시에 설정될 수 있다.
상기 컨트롤 아이피는 상기 직접 설정 경로를 통하여 상기 제2 특수 기능 레지스터들을 직접적으로 설정함으로써 상기 연산 유효 구간들 사이의 설정 구간이 나타나지 않도록 할 수 있다.
예시적인 실시예에 있어서, 상기 기본 연산 아이피는 상기 제2 특수 기능 레지스터들에 저장된 데이터에 따라 암호화 및 복호화 연산을 수행할 수 있다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 컨트롤 아이피(intellectual property), 상기 컨트롤 아이피와 버스를 통하여 연결되는 기본 연산 아이피 및 난수 발생기를 포함하는 전자 장치의 사이드 채널 공격에 대한 대응 방법에서는, 제어 신호에 따라 상기 컨트롤 아이피의 제1 특수 기능 레지스터들을 설정하고, 상기 컨트롤 아이피가 상기 난수 발생기로부터의 랜덤 신호에 따라 상기 기본 연산 아이피와 직접적으로 연결되는 제1 설정 경로와 상기 버스를 경유하는 제2 설정 경로 중 하나를 랜덤하게 선택하여 상기 기본 연산 아이피의 제2 특수 기능 레지스터들을 설정하고, 상기 기본 연산 아이피의 연산 로직이 상기 제2 특수 기능 레지스터들에 저장된 데이터에 따라 기본 연산을 수행한다.
예시적인 실시예에 있어서, 상기 연산 로직은 복수의 연산 유효 구간들 각각에서 상기 기본 연산을 수행하고, 상기 제2 특수 기능 레지스터들은 상기 유효 연산 구간들 사이의 설정 구간들 각각에서 상기 선택된 설정 신호에 따라 설정될 수 있다.
상기 컨트롤 아이피는 상기 랜덤 신호에 따라 상기 제1 설정 경로와 상기 제2 설정 경로 중 하나를 랜덤하게 선택하고 상기 제2 특수 기능 레지스터들을 설정하여 상기 설정 구간들에서 상기 기본 연산 아이피의 파워 패턴을 랜덤화할 수 있다.
예시적인 실시예에 있어서, 상기 컨트롤 아이피는 상기 제1 설정 경로를 통하여 상기 기본 연산 아이피에 상기 제2 특수 기능 레지스터들을 설정하는 제1 설정 신호와 상기 제1 설정 신호를 선택하기 위한 선택 신호를 제공하고, 상기 제2 설정 경로를 통하여 상기 기본 연산 아이피에 상기 제2 특수 기능 레지스터들을 설정하는 제2 설정 신호를 제공할 수 있다.
상기 제1 설정 신호는 상기 연산 로직의 동작과 관련된 데이터를 포함하고, 상기 제2 설정 신호는 상기 연산 로직의 동작과 데이터와 상기 제2 특수 기능 레지스터들 중 하나를 지정하는 어드레스를 포함할 수 있다.
본 발명의 실시예들에 따른 전자 장치는, 기본 연산 아이피의 특수 기능 레지스터들의 기능을 설정하는 설정 신호가 제공되는 설정 경로를 랜덤화함으로써 기본 연산 아이피가 기본 연산을 수행하는 경우의 기본 연산 아이피의 파워 패턴을 랜덤화하여 외부의 사이드 채널 공격에 대응할 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 2는 본 발명의 실시예에 따른 도 1의 전자 장치에서 컨트롤 IP와 기본 연산 IP를 상세히 나타낸다.
도 3은 본 발명의 실시예들에 따른 도 2의 특수 기능 레지스터들 중 하나의 구성을 나타내는 블록도이다.
도 4는 도 3의 저장 엘리먼트와 업데이트 로직의 동작을 설명하기 위한 블록도이다.
도 5a는 도 2의 전자 장치에서 제1 설정 경로를 사용하지 않고 제2 설정 경로를 사용하고, 기본 연산 IP에서 기본 연산을 수행하는 경우 기본 연산 IP의 파워 패턴을 나타낸다.
도 5b는 도 2의 전자 장치에서 제1 설정 경로를 사용하지 않고 제2 설정 경로를 사용하는 경우, 사이드 채널 공격에 대한 대응의 예를 나타낸다.
도 5c는 도 2의 전자 장치에서 제1 설정 경로를 사용하지 않고 제2 설정 경로를 사용하는 경우, 사이드 채널 공격에 대한 대응의 예를 나타낸다.
도 6 및 도 7은 도 2의 전자 장치에서 제1 설정 경로와 제2 설정 경로 중 하나를 랜덤하게 선택하고, 기본 연산 IP에서 기본 연산을 수행하는 경우 기본 연산 IP의 파워 패턴을 나타낸다.
도 8은 본 발명의 실시예들에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 9는 도 8의 전자 장치에서 기본 연산 IP에서 기본 연산을 수행하는 경우 기본 연산 IP의 파워 패턴을 나타낸다.
도 10은 본 발명의 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 11은 본 발명의 실시예들에 따른 도 10의 전자 장치에서 어플리케이션 프로세서의 구성을 나타내는 블록도이다.
도 12는 본 발명의 실시예들에 따른 전자 장치의 사이드 채널 공격에 대한 대응 방법을 나타내는 흐름도이다.
도 13은 본 발명의 실시예들에 따른 전자 장치의 사이드 채널 공격에 대한 대응 방법을 나타내는 흐름도이다.
도 14는 본 발명의 일 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 15는 도 14의 전자 시스템이 스마트폰으로 구현되는 일 예를 나타내는 도면이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 1을 참조하면, 전자 장치(10a)는 CPU(central processing unit, 중앙 처리 장치; 100), 메모리(200), 컨트롤 아이피(intellectual property, 이하 IP)(300), 기본 연산 IP(400) 및 난수 발생기(500)를 포함하여 구성될 수 있다.
CPU(100), 메모리(200), 컨트롤 IP(300) 및 기본 연산 IP(400)는 시스템 버스(20)를 통하여 서로 연결될 수 있다. 본 발명이 속하는 기술 분야에서, IP(Intellectual Property)는 반도체 설계와 제조 공정에 적용되는 설계 자산으로써, 시스템 온 칩(System on Chip; SOC) 등의 반도체 장치 내에 구현되기 위해 미리 정의된 기능 블록을 나타낸다. 본 명세서에서는, IP를 반도체 장치 내에서 특정 기능을 수행하는 개개의 회로 블록으로 정의하여 설명하기로 한다.
CPU(100)는 전자 장치(10a)의 동작을 전반적으로 제어할 수 있다. 예를 들어, CPU(100)는 메모리(200), 컨트롤 IP(300) 및 기본 연산 IP(400)의 동작을 직/간접적으로 제어할 수 있다.
CPU(100)는 메모리(200)에 저장된 어플리케이션(210)을 실행시킬 수 있다. CPU(100)는 또한 제어 신호(CTL)를 통하여 컨트롤 IP(300)의 특수 기능 레지스터들을 통하여 전자 장치(10a)의 동작을 제어 또는 설정할 수 있다. 실시예에 있어서, CPU(100)는 싱글 코어, 또는 멀티-코어로 구현될 수 있다. 상기 멀티-코어는 두 개 또는 그 이상의 독립적인 코어들을 갖는 컴퓨팅 컴포넌트(computing component)이다.
메모리(200)는 어플리케이션(210)을 저장할 수 있다. 메모리(200)는 휘발성 메모리 장치 또는 비휘발성 메모리 장치로 구현될 수 있다.
상기 휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM (static random access memory), TRAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.
상기 비휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive bridging RAM(CBRAM), FeRAM (Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM: RRAM), 나노 튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로-그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
어플리케이션(210)은 CPU(100)의 제어에 따라 실행되고, 전자 장치(10a)의 동작을 제어할 수 있다.
난수 발생기(500)는 랜덤 신호(RS)를 생성하고, 생성된 랜덤 신호(RS)를 컨트롤 IP(300)에 출력할 수 있다.
컨트롤 IP(300)는 랜덤 신호(RS)에 응답하여 기본 연산 IP(400)와 직접 연결되는 제1 설정 경로(SPTH1) 및 기본 연산 IP(400)와 시스템 버스(20)를 통하여 연결되는 제2 설정 경로(SPTH2) 중 하나를 랜덤하게 선택하여 기본 연산 IP(400)에 포함되는 특수 기능 레지스터들의 기능을 설정할 수 있다. 컨트롤 IP(300)는 제1 설정 경로(SPTH1)를 통하여 기본 연산 IP(400)에 제1 설정 신호(STS1)와 선택 신호(SS)를 제공할 수 있다. 컨트롤 IP(300)는 또한 제2 설정 경로(SPTH2)를 통하여 기본 연산 IP(400)에 제2 설정 신호(STS2)를 제공할 수 있다.
기본 연산 IP(400)는 제1 설정 신호(STS1) 또는 제2 설정 신호(STS2)에 따라 내부의 특수 기능 레지스터들을 설정하고, 특수 기능 레지스터들에 저장된 데이터에 따라 덧셈, 뺄셈 및 곱셈과 관련된 기본 연산을 수행할 수 있다. 상기 기본 연산 IP(400)는 소인수 분해 문제(integer factorization problem)의 어려움에 기반한 RSA와 타원곡선 이산대수 문제(elliptic curve discrete logarithm problem: ECDLP)의 어려움에 기반한 타원곡선 암호시스템(ecliptic curve cryptosystem: ECC)와 같은 공개키 암호 알고리즘을 구성하는 기본 연산을 수행할 수 있다. 즉 기본 연산 IP(400)는 공개키 암호 알고리즘을 수행하여 보안 데이터에 대한 암호화 및 복호화를 수행할 수 있다.
컨트롤 IP(300)가 랜덤 신호(RS)에 응답하여 제1 설정 경로(SPTH1)와 제2 설정 경로(SPTH2) 중 하나를 랜덤하게 선택하여 기본 연산 IP(400)에 포함되는 특수 기능 레지스터들의 기능을 설정함으로써 기본 연산 IP(400)가 기본 연산을 수행할 때 발생하는 기본 연산 IP(400)의 파워 패턴을 랜덤화시켜 외부로부터의 사이드 채널 공격에 대응할 수 있다.
도 2는 본 발명의 실시예에 따른 도 1의 전자 장치에서 컨트롤 IP와 기본 연산 IP를 상세히 나타낸다.
도 2를 참조하면, 컨트롤 IP(300)는 복수의 제1 특수 기능 레지스터들(special function register; SFR)(310~3n0, n은 2 이상의 자연수) 및 버스 인터페이스(305)를 포함할 수 있고, 기본 연산 IP(400)는 복수의 제2 특수 기능 레지스터들(411~41k, k는 2 이상의 자연수), 복수의 멀티플렉서들(421~42k) 및 연산 로직(430)을 포함할 수 있다.
제1 특수 기능 레지스터들(310~3n0) 각각과 제2 특수 기능 레지스터들(411~41k)들 각각은 상응하는 IP의 특정 기능을 수행하기 위한 데이터를 저장하도록 구성된다. 예를 들어, 제1 특수 기능 레지스터들(310~3n0) 각각과 제2 특수 기능 레지스터들(411~41k)들 각각은, 입출력 제어 레지스터(I/O control register), 타이머(timer), 스택 포인터(stack pointer), 프로그램 카운터(program counter), 리턴 어드레스 레지스터(return address register), 상태 레지스터(status register), 컨디션 코드 레지스터(condition code register) 등으로 사용될 수 있다.
버스 인터페이스(305)는 CPU(100)로부터의 제어 신호(CTL)를 버스 프로토콜에 맞는 내부 제어 신호로 변경하고 내부 제어 신호를 제1 특수 기능 레지스터들(310~3n0)에 저장할 수 있다. 제1 특수 기능 레지스터들(310~3n0)은 저장된 내부 제어 신호의 설정 값(또는 데이터)에 따라서 제1 설정 신호(STS1)와 선택 신호(SS)를 제1 설정 경로(SPTH1)를 통하여 기본 연산 IP(400)에 제공하고, 제2 설정 신호(STS2)를 제2 설정 경로(SPTH2)를 통하여 기본 연산 IP(400)에 제공할 수 있다.
제1 특수 기능 레지스터들(310~3n0)은 난수 발생기(500)로부터의 랜덤 신호(RS)에 따라 제1 설정 경로(SPTH1) 및 제2 설정 경로(SPTH2) 중 하나를 랜덤하게 선택할 수 있다. 예를 들어, 랜덤 신호(RS)가 하나 이상의 랜덤 비트들로 구성되는 경우에, 랜덤 비트가 제1 로직 레벨인 경우에는 제1 설정 경로(SPTH1)를 통하여 기본 연산 IP(400)에 제1 설정 신호(STS1)와 선택 신호(SS)를 제공하고, 랜덤 비트가 제2 로직 레벨인 경우에는 제2 설정 경로(SPTH2)를 통하여 기본 연산 IP(400)에 제2 설정 신호(STS2)를 제공할 수 있다. 따라서 제1 설정 경로(SPTH1)의 이용이 랜덤 신호(RS)에 따라 랜덤하게 결정되므로 기본 연산 IP(400)가 기본 연산을 수행할 때 발생하는 기본 연산 IP(400)의 파워 패턴을 랜덤화시킬 수 있다.
제1 설정 신호(STS1)는 제2 특수 기능 레지스터들(411~41k)의 기능을 설정하기 위한 설정 데이터를 포함할 수 있고, 제2 설정 신호(STS2)는 제2 특수 기능 레지스터들(411~41k)중 하나의 기능을 설정하기 위한 설정 데이터와 제2 특수 기능 레지스터들(411~41k)중 하나를 지정하는 어드레스를 포함할 수 있다.
멀티플렉서들(421~42k) 각각은 선택 신호(SS)에 응답하여 제1 설정 신호(STS1) 및 제2 설정 신호(STS2) 중 하나를 선택하고, 선택된 하나를 제2 특수 기능 레지스터들(411~41k)에 제공할 수 있다. 예를 들어, 랜덤 신호(RS)의 랜덤 비트가 제1 로직 레벨인 경우에는 선택 신호(SS)는 제1 로직 레벨을 가질 수 있다. 따라서, 멀티플렉서들(421~42k) 각각은 제1 설정 신호(STS1)를 선택하여 제2 특수 기능 레지스터들(411~41k)에 제공하고, 제2 특수 기능 레지스터들(411~41k)에는 설정 데이터가 저장될 수 있다. 상기 설정 데이터에 따라 연산 로직(430)이 기본 연산을 수행할 수 있다.
예를 들어, 랜덤 신호(RS)의 랜덤 비트가 제2 로직 레벨인 경우에는 선택 신호(SS)는 제2 로직 레벨을 가질 수 있다. 따라서, 멀티플렉서들(421~42k) 각각은 제2 설정 신호(STS2)를 선택하여 제2 특수 기능 레지스터들(411~41k)에 제공하고, 제2 특수 기능 레지스터들(411~41k)에는 설정 데이터가 저장될 수 있다. 상기 설정 데이터에 따라 연산 로직(430)이 기본 연산을 수행할 수 있다.
실시예에 있어서, CPU(100)는 난수 발생기(500)에 보안 모드 신호(SMS)를 제공하여, 난수 발생기(500)를 선택적으로 활성화시킬 수 있다. 예를 들어, 보안 모드 신호(SMS)가 제1 로직 레벨인 경우에, 난수 발생기(500)는 보안 모드 신호(SMS)에 응답하여 활성화되고, 랜덤 신호(RS)를 컨트롤 IP(300)에 제공할 수 있다. 컨트롤 IP(300)는 랜덤 신호(RS)에 응답하여 제1 설정 경로(SPTH1)와 제2 설정 경로(SPTH2) 중 하나를 랜덤하게 선택하여 상술한 바와 같이 기본 연산 IP(400)의 제2 특수 기능 레지스터들(421~42k)의 기능을 설정함으로써 외부의 사이드 채널 공격에 대응할 수 있다. 난수 발생기(500)가 보안 모드 신호(SMS)에 응답하여 비활성화되는 것은 전자 장치(10a)가 전자 서명을 생성하고 비밀 키를 교환하는 경우에 적용될 수 있다.
예를 들어, 보안 모드 신호(SMS)가 제2 로직 레벨인 경우에, 난수 발생기(500)는 보안 모드 신호(SMS)에 응답하여 비활성화되어 랜덤 신호(RS)를 컨트롤 IP(300)에 출력하지 않을 수 있다. 난수 발생기(500)가 랜덤 신호(RS)를 출력하지 않는 경우에, 컨트롤 IP(300)는 제1 설정 경로(SPTH1)를 통하여 기본 연산 IP(400)의 제2 특수 기능 레지스터들(421~42k)의 기능을 동시에 설정함으로써 외부의 사이드 채널 공격에 대응할 수 있다. 난수 발생기(500)가 보안 모드 신호(SMS)에 응답하여 활성화되는 것은 전자 장치(10a)가 전자 서명을 검증하는 경우에 적용될 수 있다.
도 3은 본 발명의 실시예들에 따른 도 2의 특수 기능 레지스터들 중 하나의 구성을 나타내는 블록도이다.
도 3에서는 특수 기능 레지스터(310)의 구성을 나타내었으나, 다른 특수 기능 레지스터들(320~3n0, 411~41k) 각각은 특수 기능 레지스터(310)와 실질적으로 동일하거나 유사한 구성을 가질 수 있다.
도 3을 참조하면, 특수 기능 레지스터(310)는 버스 모니터 로직(311; bus monitor logic), 버스 인터페이스 로직(312; bus interface logic), 리드 액세스 로직(313; read access logic), 라이트 액세스 로직(314; write access logic), 레퍼런스 로직(315; reference logic), 저장 엘리먼트(316; storage elements) 및 업데이트 로직(317; update logic)을 포함할 수 있다.
리드 액세스 로직(313)은 저장 엘리먼트(316)에 저장된 데이터를 리드(read)할 수 있도록 구성된다. 리드 액세스 로직(313)은 버스(20)를 통한 리드 액세스(read access)를 처리한다. 이를 위해, 리드 액세스 로직(313)은 저장 엘리먼트(316)로부터 리드된 데이터를 버스 인터페이스 로직(312)에 송신할 수 있다.
라이트 액세스 로직(314)은 저장 엘리먼트(316)에 데이터를 라이트(write)할 수 있도록 구성된다. 라이트 액세스 로직(314)은 버스를 통한 라이트 액세스(write access)를 처리한다. 이를 위해, 라이트 액세스 로직(314)은 저장 엘리먼트(316)에 라이트하기 위한 데이터를 버스 인터페이스 로직(312)으로부터 수신할 수 있다.
버스 인터페이스 로직(312)은 리드 액세스 로직(313)과 버스(20) 사이, 또는 라이트 액세스 로직(314)과 버스(20) 사이를 인터페이싱 하도록 구성된다. 버스 인터페이스 로직(312)은 리드 액세스 로직(313)과 버스(20) 사이를 인터페이싱 하는 제1 버스 인터페이스 로직(312)과, 라이트 액세스 로직(314)과 버스(20) 사이를 인터페이싱 하는 제2 버스인터페이스 로직(312)을 포함하는 복수 개의 로직으로 구성될 수도 있다.
버스 모니터 로직(311)은 버스의 액세스(access)를 검출하고, 버스의 액세스가 검출되는 때에 리드 액세스 로직(313), 라이트 액세스 로직(314), 또는 버스 인터페이스 로직(312)에 클록(clock)을 제공하여, 클록 게이팅(clock gating)을 수행하도록 구성될 수 있다.
버스 모니터 로직(311)은 버스가 IP 장치(100)에 리드 액세스(read access) 하는 때에, 버스 인터페이스 로직(312)과 리드 액세스 로직(313)에 클록을 제공하고, 버스가 IP 장치(100)에 라이트 액세스(write access) 하는 때에, 버스 인터페이스 로직(312)과 라이트 액세스 로직(314)에 클록을 제공한다. 그리고, 버스가 액세스 하지 않는 때에는, 리드 액세스 로직(313)과, 라이트 액세스 로직(314)과, 버스 인터페이스 로직(312)에 클록을 제공 하지 않는다.
버스 모니터 로직(311)에는 모니터 동작을 위한 클록이 지속적으로 제공될 수 있다. 버스 모니터 로직(311)은 상술한 버스 인터페이스 로직(312)에 대응되어 복수 개의 로직으로 구성될 수도 있다. 버스 모니터 로직(311)은 버스의 종류에 따라 특유하게(specific) 구성될 수 있다.
저장 엘리먼트(316)는 특수 기능 레지스터(110)의 내부에서 실질적으로 데이터를 저장하는 저장 공간에 해당한다. 저장 엘리먼트(316)는 데이터를 저장하기 위한 복수의 저장 셀(storage cell)을 포함한다. 예시적으로 저장 셀은 적어도 하나의 플립플롭(flipflop)에 대응될 수 있으나, 이에 한정되는 것은 아니다.
레퍼런스 로직(315)은 저장 엘리먼트(316)에 저장된 데이터를 참조하도록 구성된다. 레퍼런스 로직(315)은 저장 엘리먼트(316)의 모든 저장 셀에 대하여 액세스(access)할 수 있다. 레퍼런스 로직(315)은 저장 엘리먼트(316)에 저장된 데이터를 리드 액세스 로직(313) 또는 컨트롤 IP(300)의 내부 로직에 제공할 수 있다.
도 4는 도 3의 저장 엘리먼트와 업데이트 로직의 동작을 설명하기 위한 블록도이다.
도 4를 참조하면, 저장 엘리먼트(316)는 갱신 속성에 따라 적어도 하나의 그룹으로 분리되어 구성될 수 있다. 예를 들어, 저장 엘리먼트(316)는 버스 업데이트 저장 엘리먼트(316a; bus update storage elements), 싱크 업데이트 저장 엘리먼트(316b; sync update storage elements), 제1 특수 업데이트 저장 엘리먼트(316c; special update storage elements 1), 제2 특수 업데이트 저장 엘리먼트(316d; special update storage elements 2)를 포함할 수 있다.
예시적으로, 업데이트 로직(317)은 저장 엘리먼트(316)에 대응되어, 버스 업데이트 로직(317a; bus update logic), 싱크 업데이트 로직(317b; sync update logic), 제1 특수 업데이트 로직(317c; special update logic 1), 제2 특수 업데이트 로직(317d; special update logic 2)을 포함할 수 있다.
버스 업데이트 로직(317a)은 버스 업데이트 저장 엘리먼트(316a)에 저장된 데이터를 업데이트하고, 싱크 업데이트 로직 (317b)은 싱크 업데이트 저장 엘리먼트(316b)에 저장된 데이터를 업데이트할 수 있다. 그 밖에 제1 특수 업데이트 로직(317c), 제2 특수 업데이트 로직(317d)은 각각 제1 특수 업데이트 저장 엘리먼트(316c), 제2 특수 업데이트 저장 엘리먼트(316d)에 저장된 데이터를 업데이트할 수 있다.
버스 업데이트 저장 엘리먼트(316a)는 버스의 라이트 액세스(write access)에 따라 업데이트될 수 있고, 싱크 업데이트 저장 엘리먼트(316b)는 프레임 싱크 신호와 같은 동기 신호에 따라 업데이트될 수 있다. 특히, 멀티미디어(multimedia)용 전자 장치(10)의 쉐도우 레지스터(shadow register)들은 상술한 프레임 싱크 신호에 따라 업데이트된다.
그 밖에 일부 업데이트 저장 엘리먼트들은 인터럽트(interrupt)나 오토클리어(auto-clear)에 따라 고유한 업데이트 조건을 가지고 업데이트될 수 있다.
도 5a는 도 2의 전자 장치에서 제1 설정 경로를 사용하지 않고 제2 설정 경로를 사용하고, 기본 연산 IP에서 기본 연산을 수행하는 경우 기본 연산 IP의 파워 패턴을 나타낸다.
도 5a를 참조하면, 파워 패턴이 낮은 레벨을 가지는 설정 구간(SI)에는 제2 특수 기능 레지스터들(411~41k)의 기능이 설정되고, 파워 패턴이 높은 레벨을 가지는 연산 유효 구간(OI)에는 연산 로직(430)이 제2 특수 기능 레지스터들(411~41k)에 저장된 데이터에 기초하여 기본 연산을 수행한다. 설정 구간(SI)의 길이는 연산 유효 구간(OI)에서 처리되는 비밀 키의 값에 따라 달라질 수 있다. 예를 들어, 도 5a에서 S1은 연산 특수 기능 레지스터를 설정하는 구간에 해당할 수 있고, S0는 입력 특수 기능 레지스터를 설정하는 구간에 해당할 수 있다. 따라서 도 5a에서 S1과 연산 유효 구간(OI)의 합은 비밀 키 '0'에 해당할 수 있고, S1, 연산 유효 구간(OI), S0, S1 및 연산 유효 구간(OI)의 합은 비밀 키 '1'에 해당할 수 있다. 따라서 도 3의 전자 장치에서 제1 설정 경로를 사용하지 않고 제2 설정 경로를 사용하는 경우에 기본 연산 IP(400)의 파워 패턴을 분석하면 비밀 키들의 값을 알아낼 수 있다.
도 5b는 도 2의 전자 장치에서 제1 설정 경로를 사용하지 않고 제2 설정 경로를 사용하는 경우, 사이드 채널 공격에 대한 대응의 예를 나타낸다.
도 5b를 참조하면, 도 5a에서와 같이 비밀 키들의 값이 누출되는 것을 방지하기 위하여 설정 구간(SI)에 더미 설정 구간(NOP)을 삽입하여 설정 구간(SI)을 등화할 수 있다. 이렇게 더미 설정 구간(NOP)을 삽입하여 설정 구간(SI)을 등화하면, 연산 유효 구간들(OI) 사이의 설정 구간(SI)이 실질적으로 동일한 길이를 가질 수 있다.
도 5c는 도 2의 전자 장치에서 제1 설정 경로를 사용하지 않고 제2 설정 경로를 사용하는 경우, 사이드 채널 공격에 대한 대응의 예를 나타낸다.
도 5c를 참조하면, 도 5a에서와 같이 비밀 키들의 값이 누출되는 것을 방지하기 위하여 설정 구간(SI)에 더미 설정 구간(NOP)을 랜덤으로 삽입하여 설정 구간(SI)의 길이를 랜덤화할 수 있다. 이렇게 더미 설정 구간(NOP)을 랜덤으로 삽입하여 설정 구간(SI)의 길이를 랜덤화하면, 기본 연산 IP(400)의 파워 패턴을 분석하여도 비밀 키 값을 알 수 없다.
도 6 및 도 7은 도 2의 전자 장치에서 제1 설정 경로와 제2 설정 경로 중 하나를 랜덤하게 선택하고, 기본 연산 IP에서 기본 연산을 수행하는 경우 기본 연산 IP의 파워 패턴을 나타낸다.
도 2, 도 6 및 도 7을 참조하면, 컨트롤 IP(300)가 랜덤 신호(RS)에 따라 제1 설정 경로(SPTH1) 및 제2 설정 경로(SPTH2) 중 하나를 랜덤하게 선택하여 제2 특수 기능 레지스터들(411~41k)의 기능을 설정하고, 연산 로직(430)이 제2 특수 기능 레지스터들(411~41k)에 저장된 데이터에 기초하여 기본 연산을 수행하는 경우에, 기본 연산 IP(400)의 파워 패턴은 기본 연산을 수행할 때마다 랜덤화되는 것을 알 수 있다. 따라서, 외부의 사이드 채널 공격에 대한 대응책이 될 수 있다.
또한 동일한 연산을 수행하는 경우에도 랜덤 신호(RS)에 따라 제1 설정 경로(SPTH1) 및 제2 설정 경로(SPTH2) 중 하나가 랜덤하게 선택되므로 도 7과 도 8에서와 같이 기본 연산 IP(400)의 파워 패턴이 서로 달라서 연산의 대상이 되는 비밀 키의 값을 외부에 대하여 숨길 수 있다.
도 8은 본 발명의 실시예들에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 8의 전자 장치(10b)는 난수 발생기(500)를 포함하지 않고, 컨트롤 IP(300)가 기본 연산 IP(400)와 직접 연결되는 제1 설정 경로(또는 직접 설정 경로; SPTH1)를 통하여 기본 연산 IP(400)의 제2 특수 기능 레지스터들(411~41k)의 기능을 설정한다는 것이 도 1 및 도 2의 전자 장치(10a)와 차이가 있다.
즉, 컨트롤 IP(300)는 제1 설정 경로(SPTH1)를 통하여 기본 연산 IP(400)에 제1 설정 신호(STS1)와 선택 신호(SS)를 제공하고, 멀티플렉서들(421~42k)은 선택 신호(SS)에 응답하여 제1 설정 신호(STS1)를 선택하여 제2 특수 기능 레지스터들(411~41k)에 제공할 수 있다. 여기서 멀티플렉서들(421~42k)의 신호가 입력되지 않는 입력은 플로팅 상태일 수 있다. 컨트롤 IP(300)는 제1 설정 경로(SPTH1)를 통하여 기본 연산 IP(400)에 제1 설정 신호(STS1)와 선택 신호(SS)를 직접 제공함으로써 제2 특수 기능 레지스터들(411~41k)의 기능을 동시에 설정할 수 있다. 따라서, 제2 특수 기능 레지스터들(411~41k)을 설정하는 설정 타임이 감소될 수 있으므로 기본 연산 IP(400)가 기본 연산을 수행하는 시간을 감소시킬 수 있어, 전자 장치(10b)의 성능을 향상시킬 수 있다.
도 8의 전자 장치(10b)의 구성은 전자 장치(10b)가 전자 서명을 검증하는 경우에 적용될 수 있다.
실시예에 따라서, 기본 연산 IP(400)는 멀티플렉서들(421~42k)을 포함하지 않을 수 있고, 이 경우에, 컨트롤 IP(400)는 제1 설정 신호(STS1)만을 제1 설정 경로(SPTH1)를 통하여 기본 연산 IP(400)의 제2 특수 기능 레지스터들(411~41k)에 직접 제공할 수 있다.
도 9는 도 8의 전자 장치에서 기본 연산 IP에서 기본 연산을 수행하는 경우 기본 연산 IP의 파워 패턴을 나타낸다.
도 8 및 도 9를 참조하면, 제1 설정 경로(SPTH1) 만을 이용하는 경우, 설정 구간(SI)에서 제2 특수 기능 레지스터들(411~41k)의 기능을 동시에 설정하고, 연산 유효 구간(OIT)에서 연산 로직(430)이 제2 특수 기능 레지스터들(411~41k)에 저장된 데이터에 기초하여 기본 연산을 연속적으로 수행할 수 있다. 따라서 연산 유효 구간(OIT)에는 설정 구간(SI)이 포함되지 않으므로, 연산의 대상이 되는 비밀 키의 값이 누출되지 않고, 연산 로직(430)이 연산 수행에 필요로 하는 시간이 감소되므로 성능이 향상될 수 있다.
도 10은 본 발명의 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 10을 참조하면, 전자 장치(600)는 어플리케이션 프로세서(610), 프로세서(630), 센서(640) 및 시큐어 엘리먼트(650)를 포함할 수 있다. 실시예에 따라, 전자 장치(600)는 난수 발생기(660)를 더 포함할 수 있다.
어플리케이션 프로세서(610), 프로세서(630) 및 시큐어 엘리먼트(650)는 버스(605)를 통하여 서로 연결될 수 있다. 어플리케이션 프로세서(610)는 도 2의 전자 장치(10a)의 CPU(100)에 해당하거나 도 1의 CPU(100)를 내부에 포함할 수 있다. 프로세서(630)는 도 2의 전자 장치(10a)의 컨트롤 IP(300)에 해당할 수 있고, 시큐어 엘리먼트(650)는 도 2의 전자 장치(10a)의 기본 연산 IP(400)에 해당할 수 있다.
프로세서(630)는 제1 특수 기능 레지스터들(631)을 포함할 수 있고, 시큐어 엘리먼트(650)는 제2 특수 기능 레지스터들(651)과 멀티플렉서들(653)을 포함할 수 있고, 도시되지는 않았으나 연산 로직을 포함할 수 있다.
시큐어 엘리먼트(650)는 인증기관(Certificate Authority; CA)이 발행한 시큐어 엘리먼트(650)에 상응하는 제1 인증서(CT1), 상기 인증기관의 공개키(CA_PB) 및 시큐어 엘리먼트(650)의 제1 개인키(PR1)를 저장한다. 제1 개인키(PR1)에 대응되는 제1 공개키(PB1)는 제1 인증서(CT1)에 포함된다.
실시예에 있어서, 시큐어 엘리먼트(650)는 외부로부터의 공격, 예를 들면, 랩 어택(lab attack)을 방어할 수 있는 기능을 포함할 수 있다. 시큐어 엘리먼트(650)에 포함되는 외부로부터의 공격을 방어하는 기능은 다양한 형태로 구현될 수 있다. 따라서 제1 인증서(CT1), 인증기관의 공개키(CA_PB) 및 제1 개인키(PR1)는 시큐어 엘리먼트(650)에 안전하게 저장될 수 있다.
프로세서(630) 및 시큐어 엘리먼트(650)는 하나의 패키지로 형성될 수 있다. 예를 들어, 프로세서(630) 및 시큐어 엘리먼트(650)는 시스템-인-패키지(System in package; SiP), 관통 실리콘 비아(Through Silicon Via; TSV), 멀티칩 패키지(Multi Chip Package; MCP), 패키지-온-패키지(Package on Package; PoP) 등을 통해 하나의 패키지로 형성될 수 있다.
어플리케이션 프로세서(610)는 상기 인증기관의 공개키(CA_PB), 상기 인증기관이 발행한 어플리케이션 프로세서(610)에 상응하는 제2 인증서(CT2) 및 어플리케이션 프로세서(610)의 제2 개인키(PR2)를 저장한다. 제2 개인키(PR2)에 대응되는 제2 공개키(PB2)는 제2 인증서(CT2)에 포함된다.
센서(640)는 센싱 데이터(SSD)를 생성하여 프로세서(630)에 제공한다.
실시예에 있어서, 센서(640)는 신체 정보(biometric information)를 감지하는 바이오 센서일 수 있다. 예를 들어, 센서(640)는 지문, 홍체 패턴, 핏줄 패턴, 심박수, 혈당 등을 감지하고, 감지된 정보에 상응하는 센싱 데이터(SSD)를 생성하여 프로세서(630)에 제공할 수 있다. 그러나 본 명세서에서 센서(640)는 바이오 센서에 한정되지 않으며, 센서(640)는 조도(illuminance) 센서, 음향 센서, 가속도 센서 등과 같은 임의의 센서일 수 있다.
실시예에 따라서, 프로세서(630), 시큐어 엘리먼트(650) 및 센서(640)는 하나의 패키지로 형성될 수 있다.
프로세서(630)와 시큐어 엘리먼트(650)는 센서(640)로부터 제공되는 센싱 데이터(SSD)를 암호화하여 어플리케이션 프로세서(610)에 전송하고, 어플리케이션 프로세서(610)는 시큐어 엘리먼트(650)로부터 제공되는 암호화된 센싱 데이터를 복호화하여 센싱 데이터(SSD)를 획득함으로써, 전자 장치(600)에서 데이터 전송의 보안 레벨을 향상시킬 수 있다.
또한 전자 장치(600)가 암호화 및 복호화를 수행하는 경우에, 어플리케이션 프로세서(610)는 제어 신호(CTL)를 통하여 제1 특수 기능 레지스터들(631)의 기능을 설정하고, 제1 특수 기능 레지스터들(631)은 저장된 제어 신호의 설정 값(또는 데이터)에 따라서 제1 설정 신호(STS1)와 선택 신호(SS)를 제1 설정 경로(SPTH1)를 통하여 시큐어 엘리먼트(650)에 제공하고, 제2 설정 신호(STS2)를 제2 설정 경로(SPTH2)를 통하여 시큐어 엘리먼트(650)에 제공할 수 있다.
제1 특수 기능 레지스터들(631)은 난수 발생기(660)로부터의 랜덤 신호(RS)에 따라 제1 설정 경로(SPTH1) 및 제2 설정 경로(SPTH2) 중 하나를 랜덤하게 선택할 수 있다. 따라서 제1 설정 경로(SPTH1)의 이용이 랜덤 신호(RS)에 따라 랜덤하게 결정되므로 시큐어 엘리먼트(650)가 보안 연산을 수행할 때 발생하는 시큐어 엘리먼트(650)의 파워 패턴을 랜덤화시킬 수 있다.
도 11은 본 발명의 실시예들에 따른 도 10의 전자 장치에서 어플리케이션 프로세서의 구성을 나타내는 블록도이다.
도 11을 참조하면, 어플리케이션 프로세서(610)는 신뢰된 실행 환경(trusted execution environment; TEE) 및 리치 OS 실행 환경(rich operating system execution environment; REE)을 갖는 어플리케이션 프로세서로 구현될 수 있다. 예를 들어, 신뢰된 실행 환경(TEE)은 ARM사의 트러스트존(TrustZone)을 사용하여 구현될 수 있다.
리치 OS 실행 환경(REE)에서는, 안드로이드(Android) 등과 같은 일반 운영 체제(RICH OS)(612) 상에서 일반 어플리케이션(NORMAL APP)(611)이 구동되고, 신뢰된 실행 환경(TEE)에서는, 보안 운영 체제(SECURE OS)(622) 상에서 프로세서(630) 및 시큐어 엘리먼트(650)와 통신을 수행하는 미리 정해진 보안 어플리케이션(TRUSTED APP)(621)이 구동될 수 있다.
또한, 어플리케이션 프로세서(610)는 신뢰된 실행 환경(TEE)에 포함되는 보안 저장 장치(623)를 포함할 수 있다. 예를 들어, 보안 저장 장치(623)는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(Flash Memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 또는 이와 유사한 메모리로 구현될 수 있다.
상기 인증기관의 공개키(CA_PB), 상기 인증기관이 발행한 어플리케이션 프로세서(610)에 상응하는 제2 인증서(CT2) 및 어플리케이션 프로세서(610)의 제2 개인키(PR2)는 보안 저장 장치(623)에 저장될 수 있다.
보안 저장 장치(623)는 신뢰된 실행 환경(TEE)에서 동작하므로, 보안 저장 장치(623)는 신뢰된 실행 환경(TEE)에서 동작하는 보안 어플리케이션(621)을 통해서만 접근 가능할 수 있다. 즉, 리치 OS 실행 환경(REE)에서 동작하는 일반 어플리케이션(611)은 보안 저장 장치(623)에의 접근이 차단될 수 있다.
보안 어플리케이션(621)은 보안 저장 장치(623)에 저장된 상기 인증기관의 공개키(CA_PB), 제2 인증서(CT2) 및 제2 개인키(PR2)를 사용하여 암호화 및 복호화 동작을 수행함으로써 프로세서(630) 및 시큐어 엘리먼트(650)로부터 센싱 데이터(SSD)를 안전하게 획득할 수 있다.
도 12는 본 발명의 실시예들에 따른 전자 장치의 사이드 채널 공격에 대한 대응 방법을 나타내는 흐름도이다.
도 1, 도 2, 도 6, 도 7 및 도 12를 참조하면, 컨트롤 IP(300), 컨트롤 IP(300)와 버스(20)를 통하여 연결되는 기본 연산 IP(400) 및 난수 발생기(500)를 포함하는 전자 장치(10a)의 사이드 채널 공격에 대한 대응 방법에서는 CPU(100)가 제어 신호(CTL)를 이용하여 컨트롤 IP(300)의 제1 특수 기능 레지스터들(310~3n0)의 기능을 설정한다(S710). 컨트롤 IP(300)는 난수 발생기로(500)부터의 랜덤 신호(RS)에 따라 기본 연산 IP(400)와 직접적으로 연결되는 제1 설정 경로(SPTH1)와 버스(20)를 경유하는 제2 설정 경로(SPTH1) 중 하나를 랜덤하게 선택하여 기본 연산 IP(400)의 제2 특수 기능 레지스터들(411~4lk)의 기능을 설정한다(S720). 기본 연산 IP(400)의 연산 로직(430)이 제2 특수 기능 레지스터들(411~4lk)에 저장된 데이터에 따라 기본 연산을 수행한다(S730).
컨트롤 IP(300)는 랜덤 신호(RS)에 따라 제1 설정 경로(SPTH1)와 제2 설정 경로(SPTH2) 중 하나를 랜덤하게 선택하고 제2 특수 기능 레지스터들(411~41k)을 설정하여 설정 구간들에서 기본 연산 아이피의 파워 패턴을 랜덤화할 수 있다. 따라서 외부의 사이드 채널 공격에 대하여 연산 로직(430)에서 처리되는 비밀 키의 값을 숨길 수 있다.
도 13은 본 발명의 실시예들에 따른 전자 장치의 사이드 채널 공격에 대한 대응 방법을 나타내는 흐름도이다.
도 8, 도 9 및 도 13을 참조하면, 컨트롤 IP(300), 컨트롤 IP(300)와 버스(20)를 통하여 연결되는 기본 연산 IP(400)를 포함하는 전자 장치(10b)의 사이드 채널 공격에 대한 대응 방법에서는 CPU(100)가 제어 신호(CTL)를 이용하여 컨트롤 IP(300)의 제1 특수 기능 레지스터들(310~3n0)의 기능을 설정한다(S810). 컨트롤 IP(300)는 기본 연산 IP(400)와 직접적으로 연결되는 제1 설정 경로(SPTH1)만을 이용하여 기본 연산 IP(400)의 제2 특수 기능 레지스터들(411~4lk)의 기능을 직접적으로 설정한다(S820). 기본 연산 IP(400)의 연산 로직(430)이 제2 특수 기능 레지스터들(411~4lk)에 저장된 데이터에 따라 기본 연산을 수행한다(S830).
따라서 기본 연산 IP(400)의 제2 특수 기능 레지스터들(411~4lk)의 기능이 동시에 설정될 수 있으므로 외부의 사이드 채널 공격에 대하여 연산 로직(430)에서 처리되는 비밀 키의 값을 숨길 수 있다.
도 14는 본 발명의 일 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 14를 참조하면, 전자 시스템(900)은 시큐어 모듈(910), 어플리케이션 프로세서(920), 저장 장치(STORAGE DEVICE)(930), 메모리 장치(MEMORY DEVICE)(940), 입출력 장치(950), 전원 장치(960) 및 센서(970)를 포함한다. 또한, 도 14에는 도시되지 않았지만, 전자 시스템(900)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다.
어플리케이션 프로세서(920)는 전자 시스템(900)의 전반적인 동작을 제어한다. 어플리케이션 프로세서(920)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 실시예에 따라, 어플리케이션 프로세서(920)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 어플리케이션 프로세서(920)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다. 또한, 실시예에 따라, 어플리케이션 프로세서(920)는 내부 또는 외부에 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.
시큐어 모듈(910)은 프로세서(911), 시큐어 엘리먼트(912) 및 난수 발생기(913)를 포함할 수 있다. 프로세서(911), 시큐어 엘리먼트(912) 및 난수 발생기(913)를 포함하는 시큐어 모듈(910)은 하나의 패키지로 형성될 수 있다. 시큐어 엘리먼트(912)는 외부로부터의 공격, 예를 들면, 랩 어택(lab attack)을 방어할 수 있는 기능을 포함할 수 있다. 프로세서(911)와 시큐어 엘리먼트(912)는 각각 버스(905)와 연결될 수 있다.
센서(970)는 신체 정보(biometric information)를 감지하는 바이오 센서일 수 있다. 예를 들어, 센서(970)는 지문, 홍체 패턴, 핏줄 패턴, 심박수, 혈당 등을 감지하고, 감지된 정보에 상응하는 센싱 데이터를 생성하여 시큐어 모듈(910)에 포함되는 프로세서(911)에 제공할 수 있다. 그러나 센서(970)는 바이오 센서에 한정되지 않으며, 센서(970)는 조도(illuminance) 센서, 음향 센서, 가속도 센서 등과 같은 임의의 센서일 수 있다.
도 14의 전자 시스템(900)에 포함되는 시큐어 모듈(910), 어플리케이션 프로세서(920) 및 센서(970)는 각각 도 10의 전자 장치(600)에 포함되는 프로세서(630)와 시큐어 엘리먼트(650), 어플리케이션 프로세서(610) 및 센서(660)로 구현될 수 있다. 도 14의 전자 장치(900)에 포함되는 시큐어 모듈(100), 컨트롤러(200) 및 센서(300)의 구성 및 동작에 대해서는 도 10을 참조하여 상세히 설명하였으므로 여기서는 시큐어 모듈(910), 어플리케이션 프로세서(920) 및 센서(970)에 대한 상세한 설명은 생략한다.
저장 장치(930)는 전자 시스템(900)을 부팅하기 위한 부트 이미지를 저장할 수 있다. 예를 들어, 저장 장치(930)는 플래시 메모리 장치(flash memory device), 솔리드 스테이트 드라이브(Solid State Drive; SSD) 등과 같은 비휘발성 메모리 장치를 포함할 수 있다.
메모리 장치(940)는 전자 시스템(900)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들어, 메모리 장치(940)는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM) 등과 같은 휘발성 메모리 장치를 포함할 수 있다.
입출력 장치(950)는 터치패드, 키패드, 입력 버튼 등과 같은 입력 수단 및 디스플레이, 스피커 등과 같은 출력 수단을 포함할 수 있다. 전원 장치(960)는 전자 시스템(900)의 동작에 필요한 동작 전압을 공급할 수 있다.
실시예에 따라, 전자 시스템(900)은 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(Personal Digital Assistant; PDA), 휴대형 멀티미디어 플레이어(Portable Multimedia Player; PMP), 디지털 카메라(Digital Camera), 음악 재생기(Music Player), 휴대용 게임 콘솔(Portable Game Console), 네비게이션(Navigation) 시스템, 랩탑 컴퓨터(laptop computer) 등과 같은 임의의 모바일 시스템일 수 있다.
도 15는 도 14의 전자 시스템이 스마트폰으로 구현되는 일 예를 나타내는 도면이다.
도 14 및 15를 참조하면, 스마트폰(900)에 포함되는 시큐어 엘리먼트(912)는 사용자의 신체 정보(biometric information)에 상응하는 보안 데이터를 미리 저장할 수 있다.
예를 들어, 스마트폰(900)에 포함되는 센서(SR)(970)가 사용자의 지문을 감지하는 지문 센서인 경우, 시큐어 엘리먼트(912)에 저장되는 상기 보안 데이터는 사용자의 지문 정보에 상응할 수 있다.
현재 사용자의 지문을 사용하여 상기 현재 사용자가 허용된 사용자인지를 판단하고자 하는 경우, 시큐어 모듈(910), 어플리케이션 프로세서(920) 및 센서(970)는 도 10을 참조하여 상술한 바와 같은 동작을 수행하여 센서(970)로부터 생성되는 상기 현재 사용자의 지문 정보에 상응하는 센싱 데이터를 시큐어 모듈(910)을 통해 어플리케이션 프로세서(920)에 안전하게 전송할 수 있다. 어플리케이션 프로세서(920)는 시큐어 모듈(910)로부터 전송되는 상기 센싱 데이터와 상기 보안 데이터가 서로 일치하는지 여부에 기초하여 상기 현재 사용자가 허용된 사용자인지 여부를 효과적으로 판단할 수 있다.
또한 도 1 내지 도 7 및 도 10을 참조하여 설명한 바와 같이, 시큐어 모듈(910)이 암호화 및 복호화를 수행할 때, 프로세서(911)는 난수 발생기(913)로부터의 랜덤 신호(RS)에 따라 시큐어 엘리먼트(912)에 직접 연결되는 제1 설정 경로와 버스(905)를 경유하는 제2 설정 경로 중 하나를 랜덤하게 선택하여 시큐어 엘리먼트(912)에 포함되는 특수 기능 레지스터들의 기능을 설정함으로써 시큐어 엘리먼트(912)가 보안 연산을 수행할 때의 파워 패턴을 랜덤화할 수 있다. 프로세서(911)는 제1 설정 경로를 통하여 제1 설정 신호(STS1)와 선택 신호(SS)를 시큐어 엘리먼트(912)에 제공할 수 있고, 제2 설정 경로를 통하여 제2 설정 신호(STS2)를 시큐어 엘리먼트(912)에 제공할 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10a, 10b, 600: 전자 장치 100: CPU
300: 컨트롤 IP 400: 기본 연산 IP
500: 난수 발생기 900: 전자 시스템

Claims (10)

  1. 부채널 공격(side channel attack)에 대응하는 전자 장치로서,
    복수의 제1 특수 기능 레지스터들을 포함하는 컨트롤(control) 아이피(intellectual property; IP);
    복수의 제2 특수 기능 레지스터들을 포함하는 기본 연산(basic operation) 아이피;
    상기 컨트롤 아이피 및 상기 기본 연산 아이피와 버스를 통하여 연결되고, 상기 컨트롤 아이피의 동작을 설정하는 제어 신호를 상기 버스를 통하여 상기 제1 특수 기능 레지스터에 제공하는 중앙 처리 장치(central processing unit; CPU); 및
    상기 컨트롤 아이피에 랜덤 신호를 출력하는 난수 발생기를 포함하고,
    상기 컨트롤 아이피는 상기 랜덤 신호에 응답하여 상기 기본 연산 아이피와 직접적으로 연결되는 제1 설정 경로와 상기 버스를 경유하여 상기 기본 연산 아이피와 연결되는 제2 설정 경로 중 하나를 랜덤하게 선택하고, 상기 랜덤하게 선택된 경로를 통하여 상기 제2 특수 기능 레지스터들을 설정하여 상기 기본 연산 IP의 파워 패턴을 랜덤화하는 전자 장치.
  2. 제1항에 있어서,
    상기 컨트롤 아이피는 상기 제1 설정 경로를 통하여 상기 기본 연산 아이피에 상기 제2 특수 기능 레지스터들을 설정하는 제1 설정 신호와 상기 제1 설정 신호를 선택하기 위한 선택 신호를 제공하고, 상기 제2 설정 경로를 통하여 상기 기본 연산 아이피에 상기 제2 특수 기능 레지스터들을 설정하는 제2 설정 신호를 제공하는 전자 장치.
  3. 제2항에 있어서, 상기 기본 연산 아이피는
    상기 제2 특수 기능 레지스터들에 저장된 데이터에 따라 덧셈, 뺄셈 및 곱셈 중 적어도 하나의 기본 연산을 수행하는 연산 로직; 및
    상기 선택 신호에 응답하여 상기 제1 설정 신호와 상기 제2 설정 신호 중 하나를 선택하고 선택된 설정 신호를 상기 제2 특수 기능 레지스터들에 제공하는 복수의 멀티플렉서들을 더 포함하고,
    상기 연산 로직은 복수의 연산 유효 구간들 각각에서 상기 기본 연산을 수행하고,
    상기 제2 특수 기능 레지스터들은 상기 유효 연산 구간들 사이의 설정 구간들 각각에서 상기 선택된 설정 신호에 따라 설정되는 전자 장치.
  4. 제3항에 있어서,
    상기 컨트롤 아이피는 상기 설정 구간들에서 상기 기본 연산 아이피의 상기 파워 패턴을 랜덤화하는 전자 장치.
  5. 제3항에 있어서,
    상기 제1 설정 신호는 상기 연산 로직의 동작과 관련된 데이터를 포함하고,
    상기 제2 설정 신호는 상기 연산 로직의 동작과 데이터와 상기 제2 특수 기능 레지스터들 중 하나를 지정하는 어드레스를 포함하는 전자 장치.
  6. 제2항에 있어서,
    상기 제1 설정 경로를 통하여 상기 제2 특수 기능 레지스터들이 설정되는 경우, 상기 제2 특수 기능 레지스터들은 동시에 설정되고,
    상기 제2 설정 경로를 통하여 상기 제2 특수 기능 레지스터들이 설정되는 경우, 상기 제2 특수 기능 레지스터들은 순차적으로 설정되는 전자 장치.
  7. 제1항에 있어서, 상기 컨트롤 아이피는
    상기 제어 신호를 상응하는 버스 프로토콜에 따르는 내부 제어 신호로 변환하고, 상기 내부 제어 신호를 상기 제1 특수 기능 레지스터들에 제공하는 버스 인터페이스를 더 포함하는 전자 장치.
  8. 부채널 공격(side channel attack)에 대응하는 전자 장치로서,
    복수의 제1 특수 기능 레지스터들을 포함하는 컨트롤(control) 아이피(intellectual property; IP);
    복수의 제2 특수 기능 레지스터들을 포함하는 기본 연산(basic operation) 아이피; 및
    상기 컨트롤 아이피 및 상기 기본 연산 아이피와 버스를 통하여 연결되고, 상기 컨트롤 아이피의 동작을 설정하는 제어 신호를 상기 버스를 통하여 상기 제1 특수 기능 레지스터에 제공하는 중앙 처리 장치(central processing unit; CPU)를 포함하고,
    상기 컨트롤 아이피는 상기 기본 연산 아이피와 직접적으로 연결되는 직접 설정 경로를 통하여 상기 제2 특수 기능 레지스터들을 설정하고,
    상기 기본 연산 아이피는 상기 제2 특수 기능 레지스터들에 저장된 데이터에 따라 암호화 및 복호와 연산을 수행하는 전자 장치.
  9. 제8항에 있어서, 상기 기본 연산 아이피는
    상기 제2 특수 기능 레지스터들에 저장된 데이터에 따라 덧셈, 뺄셈 및 곱셈 중 적어도 하나의 기본 연산을 수행하는 연산 로직을 더 포함하고,
    상기 연산 로직은 복수의 연속된 연산 유효 구간들 각각에서 상기 기본 연산을 수행하는 전자 장치.
  10. 제9항에 있어서,
    상기 제2 특수 기능 레지스터들은 상기 연산 유효 구간들 이전의 설정 구간에서 상기 컨트롤 아이피로부터의 설정 신호에 따라 동시에 설정되고,
    상기 컨트롤 아이피는 상기 직접 설정 경로를 통하여 상기 제2 특수 기능 레지스터들을 직접적으로 설정함으로써 상기 연산 유효 구간들 사이의 설정 구간이 나타나지 않도록 하는 전자 장치.
KR1020150134291A 2015-08-10 2015-09-23 부채널 공격에 대응하는 전자 장치 KR102335203B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/219,271 US10210350B2 (en) 2015-08-10 2016-07-25 Electronic device against side channel attacks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20150112429 2015-08-10
KR1020150112429 2015-08-10

Publications (2)

Publication Number Publication Date
KR20170018752A KR20170018752A (ko) 2017-02-20
KR102335203B1 true KR102335203B1 (ko) 2021-12-07

Family

ID=58265357

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150134291A KR102335203B1 (ko) 2015-08-10 2015-09-23 부채널 공격에 대응하는 전자 장치

Country Status (1)

Country Link
KR (1) KR102335203B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036833A1 (en) * 2002-12-12 2006-02-16 Piry Frederic Claude M Processing activity masking in a data processing system
US20080126766A1 (en) * 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539210B2 (en) * 2007-11-30 2013-09-17 Microchip Technology Incorporated Context switching with automatic saving of special function registers memory-mapped to all banks
KR101993626B1 (ko) * 2012-12-11 2019-06-28 삼성전자 주식회사 특수 기능 레지스터를 포함하는 시스템 온 칩 및 그 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036833A1 (en) * 2002-12-12 2006-02-16 Piry Frederic Claude M Processing activity masking in a data processing system
US20080126766A1 (en) * 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering

Also Published As

Publication number Publication date
KR20170018752A (ko) 2017-02-20

Similar Documents

Publication Publication Date Title
US10949546B2 (en) Security devices, electronic devices and methods of operating electronic devices
Suh et al. Aegis: A single-chip secure processor
KR20210005871A (ko) 암호화 카드, 전자 디바이스 및 암호화 서비스 방법
US10826710B2 (en) Technologies for robust computation of elliptic curve digital signatures
US20160364570A1 (en) Automatic measuring boot process using an automatic measuring processor coupled to a memory
US10210350B2 (en) Electronic device against side channel attacks
US11222127B2 (en) Processor hardware and instructions for SHA3 cryptographic operations
CN107924444B (zh) 安全的模幂运算处理器、方法、系统和指令
WO2019240861A1 (en) Integrated-chip -based data processing method, computing device, and storage media
CN105095097B (zh) 随机化的存储器访问
US10404459B2 (en) Technologies for elliptic curve cryptography hardware acceleration
US20130151842A1 (en) Encryption key transmission with power analyis attack resistance
US11516012B2 (en) System, apparatus and method for performing a plurality of cryptographic operations
US20200110906A1 (en) Encryption circuit for performing virtual encryption operations
US10891396B2 (en) Electronic circuit performing encryption/decryption operation to prevent side- channel analysis attack, and electronic device including the same
KR20220078155A (ko) 암호 프로세서, 암호 프로세서의 동작 방법 및 이를 포함한 전자 장치
US20150161401A1 (en) Processor having a variable pipeline, and system-on-chip
Xiong et al. SecNDP: Secure Near-Data Processing with Untrusted Memory
KR20230029113A (ko) 전자 장치
US20150222434A1 (en) Crt-rsa encryption method and apparatus
KR20160065716A (ko) 전자 장치의 데이터 전송 방법
KR102335203B1 (ko) 부채널 공격에 대응하는 전자 장치
Ahn et al. Countermeasure against side-channel attack in shared memory of trustzone
JP6262085B2 (ja) データ処理装置及び復号処理方法
KR102028657B1 (ko) 부채널 공격에 대한 방어대책을 갖는 모바일 장치

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