KR102515381B1 - 반복적인 사이드 채널 공격 대응책 - Google Patents
반복적인 사이드 채널 공격 대응책 Download PDFInfo
- Publication number
- KR102515381B1 KR102515381B1 KR1020217003705A KR20217003705A KR102515381B1 KR 102515381 B1 KR102515381 B1 KR 102515381B1 KR 1020217003705 A KR1020217003705 A KR 1020217003705A KR 20217003705 A KR20217003705 A KR 20217003705A KR 102515381 B1 KR102515381 B1 KR 102515381B1
- Authority
- KR
- South Korea
- Prior art keywords
- signal
- computing device
- coupled
- storage unit
- input 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/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
- G06F21/77—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 in smart cards
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/567—Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
-
- 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
- G06F21/72—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 in cryptographic circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
반복적인 사이드 채널 공격(SCA) 대응책을 포함하는 컴퓨팅 장치는, 적절한 대응 조치를 시작하는 데 사용할 수 있는 활동 검출 신호를 송신함으로써 잠재적인 반복 기반 공격을 통지하는 용량성 지연 회로 및 타이머 회로를 포함할 수 있다. 추가적으로 또는 독립적으로, 반복적인 SCA 대응책을 포함하는 컴퓨팅 장치는 인입 입력 신호를 저장할 수 있는 적어도 하나의 저장 유닛, 인입 입력 신호를 다른 신호와 비교하고 매칭을 나타내는 적어도 하나의 비교기 및 매칭이 있으면 증분되는 카운터를 포함할 수 있다. 카운터가 지정된 한도에 도달하면, 잠재적인 반복 기반 공격을 알려 적절한 대응 조치를 개시하도록 하기 위한 한도 초과 신호가 송신될 수 있다.
Description
스마트 카드는, 민감한 정보를 안전하게 전달하고, 보안 거래를 가능하게 하며, 보안 시스템 내에서 개인의 신원을 확인하고, 정보 요청자가 카드의 정보에 액세스할 권한이 있는지 검증할 수 있는 휴대용 개인 보안 컴퓨팅 장치이다. 스마트 카드는 카드에 저장된 정보의 무결성을 유지하고 전체 시스템과의 안전한 상호작용에 이 정보를 사용할 수 있도록 구성된다.
사이드 채널 공격(SCA)은 스마트 카드 또는 다른 컴퓨팅 장치의 보안을 훼손시키는 데 사용될 수 있는 일련의 공격 기술을 지칭한다. SCA는 일반적으로 타이밍 정보, 전력 소비, 전자기 누출 및 소리를 포함하여 암호화 시스템의 물리적 구현으로부터 얻은 정보에 기초한 공격을 포함한다. 반복적인 SCA는, 예를 들어 스마트 카드의 전원 핀 또는 신호 라인으로부터 정보를 캡처하기 위해 입력 신호를 인가하는 것에 관한 반복적인 활동을 포함한다.
SCA에 대한 대응책은 탐지 컴포넌트 및 응답 컴포넌트를 포함할 수 있다. 탐지 컴포넌트는 가능한 공격이 발생하고 있음을 판단하는(예를 들면, 트립되는 공격 상태의 이진 판단 또는 신뢰도 값을 제공할 확률이 있는 판단일 수 있음) 하드웨어 및/또는 소프트웨어를 포함한다. 응답 컴포넌트는, (특정 수준의 신뢰도 유무에 관계없이) 공격이 발생하고 있음을 나타내는 탐지 컴포넌트에 대한 응답으로 동작을 수행하는 하드웨어 및/또는 소프트웨어를 포함한다. 응답 컴포넌트는, 암호화 엔진을 리셋하거나 종료하는 스위치일 수 있으며, 일부 예로서 장치의 특성을 변경하는 훨씬 더 복잡한 회로일 수도 있다.
본 명세서에서는 컴퓨팅 장치에 대한 반복적인 SCA 대응책을 설명한다. 설명하는 대응책은 반복적인 공격 동작이 발생함에 따라 사이드 채널 공격으로부터 보호하는 데 적합하다.
반복적인 사이드 채널 공격(SCA) 대응책을 갖는 컴퓨팅 장치는 타이머 회로와, 계산 엔진을 리셋하거나 또는 다른 적절한 대응 조치를 수행하는데 사용될 수 있는 활동 검출 신호를 송신함으로써 잠재적인 반복 기반 공격을 통지하는 용량성 지연 회로를 포함할 수 있다.
타이머 회로는 컴퓨팅 장치의 클록 신호 및 리셋 신호를 수신하고 컴퓨팅 장치 회로의 계산 엔진에 타이머 온(timer-on) 통지를 출력하고 용량성 지연 회로에 지연 캡처(delay-capture) 신호를 출력할 수 있다. 용량성 지연 회로는, 컴퓨팅 장치가 전력 인가 또는 리셋 후 지정된 시간 내에 전력 인가되거나 또는 리셋된 것에 응답하여 활동 검출 신호를 출력하도록 구성될 수 있다. 일부 경우에는, 컴퓨팅 장치에 통상의 작업보다 더 짧은 시간 동안 전력이 공급될 때 활동 검출 신호가 출력될 수 있다. 용량성 지연 회로는 커패시터, 증폭기 및 래치 또는 플립플롭 게이트를 포함할 수 있다. 커패시터는 컴퓨팅 장치의 전원(VDD)과 접지(VSS 또는 GND) 사이에 결합될 수 있다. 증폭기가 커패시터에 연결되어 커패시터의 전하를 감지하고 래치 또는 플립플롭 게이트에 신호를 출력할 수 있다. 래치 또는 플립플롭 게이트는 타이머 회로로부터 지연 캡처 신호를 수신하여, 타이머 회로로부터의 클록이 온일 때 지연 캡처 신호가 출력되고 증폭기로부터의 신호가 충분히 높은 값을 가질 때, 활동 검출 신호를 계산 엔진에 출력한다.
반복적인 SCA 대응책을 포함하는 컴퓨팅 장치는 인입 입력 신호를 컴퓨팅 장치의 계산 엔진에 저장할 수 있는 적어도 하나의 저장 유닛, 그 다음의 인입 입력 신호를 저장 유닛에 저장된 이전의 인입 신호와 비교하고 매칭을 나타내는 적어도 하나의 비교기와, 매칭 시에 증분되는 카운터를 포함할 수 있다. 카운터가 지정된 한도에 도달하면, 잠재적인 반복 기반 공격을 알리고 적절한 대응 조치를 개시하도록 하기 위한 한도 초과 신호가 송신될 수 있다.
일부 경우에, 반복적인 신호에 대해 일련의 입력 신호가 분석될 수 있도록 다수의 비교기 및 저장 유닛이 제공될 수 있다. 하나 이상의 카운터가 다수의 비교기에 결합될 수 있다.
본 요약부는 아래의 상세한 설명에서 추가로 기술되는 개념들의 선택을 단순화된 형식으로 소개하도록 제공된다. 본 요약부는 청구 대상의 중요 특성 또는 기본 특성을 밝히기 위한 것이 아니며, 청구 대상의 범주를 제한하는데 도움이 되도록 사용하기 위한 것도 아니다.
도 1a는 본 명세서에 설명된 임의의 하드웨어 대응책을 포함할 수 있는 스마트 카드 칩에 대한 예시적인 스마트 카드 핀아웃을 도시한 것이다.
도 1b는 스마트 카드를 도시한 도면이다.
도 2는 용량성 지연을 사용하는 반복적인 SCA 대응책의 하드웨어 구현예를 보여준다.
도 3은 비교기를 사용하는 반복적인 SCA 대응책의 구현예를 보여준다.
도 4a 및 4b는 다중 입력 반복 공격에 적합한 반복 SCA 대응책의 구현예를 보여준다.
도 5는 하나 이상의 비교기를 사용하는 반복적인 SCA 대응책에 의해 수행될 수 있는 방법을 도시한 것이다.
도 6은 반복적인 SCA 대응책을 구현하는 스마트 카드를 도시한 도면이다.
도 1b는 스마트 카드를 도시한 도면이다.
도 2는 용량성 지연을 사용하는 반복적인 SCA 대응책의 하드웨어 구현예를 보여준다.
도 3은 비교기를 사용하는 반복적인 SCA 대응책의 구현예를 보여준다.
도 4a 및 4b는 다중 입력 반복 공격에 적합한 반복 SCA 대응책의 구현예를 보여준다.
도 5는 하나 이상의 비교기를 사용하는 반복적인 SCA 대응책에 의해 수행될 수 있는 방법을 도시한 것이다.
도 6은 반복적인 SCA 대응책을 구현하는 스마트 카드를 도시한 도면이다.
본 명세서에서는 컴퓨팅 장치에 대한 반복적인 사이드 채널 공격(SCA)을 설명한다. 설명하는 대응책은 반복적인 공격 동작이 발생함에 따라 사이드 채널 공격으로부터 보호하는 데 적합하다. 컴퓨팅 장치의 한 예는 스마트 카드의 일부로서 구현될 수 있는 암호화 엔진이다.
하나의 반복적인 사이드 채널 공격 시나리오에서, 스마트 카드는 그 사이에 리셋에 의해 다른 신호가 인가된다. 반복적인 SCA 대응책을 포함하는 스마트 카드(또는 이러한 사이드 채널 공격 시나리오의 영향을 받는 다른 컴퓨팅 장치)는 타이머 회로와, 적절한 대응 조치를 수행하는데 사용될 수 있는 활동 검출 신호를 송신함으로써 잠재적인 반복 기반 공격을 통지하는 용량성 지연 회로를 포함할 수 있다. 예를 들어, 활동 검출 신호는, 스마트 카드가 통상의 작동을 위해 필요한 시간보다 더 짧은 시간 동안 전력이 공급될 경우 또는 이전의 전력 인가 또는 리셋 후 지정된 시간 내에 스마트 카드에 전력이 공급되거나 리셋되는 것에 응답하여, 스마트 카드의 암호화 엔진을 리셋하거나 또는 다른 적절한 대응 조치를 수행하는 데 사용될 수 있다.
또 다른 반복적인 사이드 채널 공격 시나리오에서는, 동일한 입력 신호가 스마트 카드에 반복적으로 인가된다. 반복적인 SCA 대응책을 포함하는 스마트 카드(또는 이러한 사이드 채널 공격 시나리오의 영향을 받는 다른 컴퓨팅 장치)는 인입 입력 신호를 저장할 수 있는 적어도 하나의 저장 유닛, 그 다음의 인입 입력 신호를 저장 유닛에 저장된 이전의 인입 신호와 비교하고 매칭을 나타내는 적어도 하나의 비교기와, 매칭 시에 증분하는 카운터를 포함할 수 있다. 카운터가 지정된 한도에 도달하면, 잠재적인 반복 기반 공격을 알리고 적절한 대응 조치를 개시하도록 하기 위한 한도 초과 신호가 송신될 수 있다.
도 1a는 본 명세서에 설명된 임의의 하드웨어 대응책을 포함할 수 있는 스마트 카드 칩에 대한 예시적인 스마트 카드 핀아웃을 도시한 것이고, 도 1b는 스마트 카드 칩을 나타내는 도면이다. 스마트 카드 칩(100)은 회로 및 패키징을 포함한다. 현재, 표준 스마트 카드 칩 패키징은 6핀 또는 8핀 버스 핀아웃을 제공한다. 도 1a에 도시된 바와 같이, 스마트 카드 칩(100) 용 패키징은 VCC(전원 공급 장치 입력), RST(단독으로 또는 내부 리셋 제어 회로와 결합하여 사용될 수 있음), CLK(클럭킹 또는 타이밍 신호), GND(접지 - 접지 또는 VSS 신호), VPP(프로그래밍 전압 입력) 및 I/O(스마트 카드 내부의 마이크로컨트롤러에 대한 직렬 데이터의 입력 또는 출력)용 패드를 포함할 수 있다. 애플리케이션 특정 입력(또는 출력) 또는 향후 표준을 위해 두 개의 추가 연결 패드(예컨대, C4 및 C8)가 포함될 수 있다. 이들 패드는 암호화 엔진 블록(110)을 포함하는 스마트 카드 칩 회로에 결합된다. 암호화 엔진 블록(110)만이 도 1b에 도시되어 있지만, 스마트 카드 칩(100)은 암호화 엔진 블록(110) 외에 프로세서, 메모리, 아날로그 회로 및 인터페이스 회로 등을 포함하는 복수의 상이한 회로 블록 및 서브블록을 포함할 수 있다. 또한, 본 명세서에 설명된 대응책들 중 어느 하나 또는 조합이 스마트 카드 칩(100)의 일부로서 포함될 수 있다.
거래를 위한 스마트 카드로의 (그리고 I/O 핀을 통해 암호화 엔진(110)에 제공되는) 데이터 입력 신호는 본 명세서에서 정보 사이클(information cycle)로 지칭된다. 정보 사이클은 디지털 비트, 아날로그 파형 또는 혼합 신호 데이터로 구성된 입력 신호를 포함할 수 있지만 이에 제한되지는 않다. 많은 경우, 정보 사이클은 평문(plain text) 또는 암호문(cipher text)을 사용한다.
스마트 카드 칩(100)의 정상 동작 동안, 칩(100)이 내장된 스마트 카드가 접촉식 판독기에 삽입되거나 무선 판독기 연결을 위한 위치에 배치될 수 있다. 일반적으로 스마트 카드를 사용한 거래들 사이에는 소정의 기간이 존재할 것으로 예상된다. 예를 들어, 구매를 요청하고 카드를 판독기에 밀어 넣고, 핀을 입력하고, 거래를 완료한 다음, 다른 가게로 이동하거나 또는 동일 가게에서 다른 구매를 요청하고, 카드를 판독기에 밀어 넣고, 핀을 입력한 다음 다른 구매를 완료하는 데 소정 시간이 걸린다.
신용/직불 카드 거래와 같은 스마트 카드의 정상적인 사용에서, 스마트 카드 소유자는 한 가게에서 거래를 시작한 다음 몇 분(또는 그 이상) 후에 다른 가게에서 다른 거래를 시작할 수 있다. 프로세스에서 명령을 실행하는 각 반복 사이에는 소정의 시간 경과가 있으며, 정보 사이클은 각 반복마다 다를 수 있다.
스마트 카드의 정상적인 사용과 달리, 반복적인 사이드 채널 공격은 일반적으로 짧은 시간에 활동을 반복적으로 수행하는 경우가 많다. 공격시, 정보 사이클은 매번 같을 수도 있고 다를 수도 있다. 일반적인 반복 공격은 예를 들어 초당 1,000 내지 10,000회 이상 수행될 수 있다. 이 반복적인 정보 사이클은 오실로스코프를 사용하여 관찰할 수 있으며 전압 또는 전류의 변동은 전원 핀 또는 프로빙 장치를 사용하여 스마트 카드 내의 관심 지점에서 확인할 수 있다. 이러한 스마트 카드 분석을 통해 공격자는 알고리즘 내의 알려진 산술 연산 및 입력 텍스트의 값을 기반으로 비밀 키를 추론할 수 있다.
본 명세서에 설명된 반복적인 SCA 대응책은, 비정상적인 사용을 나타내는 일정 기간(시스템 리셋 포함)에 너무 많은 액세스 시도가 수행된 경우를 식별할 수 있다. 또한, 본 명세서에 설명된 반복적인 SCA 대응책은 입력 데이터의 동일한 정보 사이클을 사용하여 너무 많은 시도가 이루어진 경우를 식별할 수 있다. 그러한 경우가 식별되면, 스마트 카드 또는 기타 컴퓨팅 장치는 보호 모드, 전손 카드 모드(completely broken card mode)로 전환하거나 정보 추출을 중지하기 위해 다른 보안 조치를 시작할 수 있다.
도 2는 용량성 지연을 사용하는 반복적인 SCA 대응책의 하드웨어 구현예를 보여준다. 위에서 언급한 바와 같이, 용량성 지연을 사용하는 반복적인 SCA 대응책은 클록 신호 핀 및 리셋 신호 핀에 결합된 타이머 회로와, 전원 신호 핀 및 접지 신호 핀에 결합된 용량성 지연 회로를 포함하되; 타이머 회로는 클록 신호 핀으로부터 클록 신호를 수신하고 상기 리셋 신호 핀으로부터 리셋 신호를 수신하며, 용량성 지연 회로에 지연 캡처 신호를 출력하고; 용량성 지연 회로는 전원 신호 핀으로부터 전원 신호를 수신하고 접지 신호 핀으로부터 접지 신호를 수신하며 타이머 회로로부터 지연 캡처 신호를 수신하고, 컴퓨팅 장치의 계산 엔진에 활동 검출 신호(activity-detected signal)를 출력한다. 도 2의 특정 스마트 카드 구현예를 참조하면, 스마트 카드(200)는 암호화 엔진(202), 타이머 회로(204) 및 용량성 지연 회로(206)를 포함할 수 있다. 타이머 회로(204)는 스마트 카드(200)의 클록 신호 핀(CLK) 및 리셋 신호 핀(RST)에 결합된다. 타이머 회로(204)는 클록 신호 핀으로부터 클록 신호를 수신하고 리셋 신호 핀으로부터 리셋 신호를 수신하며, 지연 캡처 신호를 용량성 지연 회로(206)로 출력한다. 이들 핀은 스마트 카드(200)가 삽입되는 카드 판독기 또는 테스트 지그로부터 클록 및 리셋 신호를 수신할 수 있다.
용량성 지연 회로(206)는 스마트 카드(200)의 전원 신호 핀(VCC) 및 접지 신호 핀(GND)에 결합된다. 용량성 지연 회로(206)는 전원 신호 핀으로부터 전원 신호를 수신하고, 접지 신호 핀으로부터 접지 신호를 수신하며, 타이머 회로(204)로부터 지연 캡처 신호를 수신하고, 활동 검출 신호를 암호화 엔진(202)에 출력한다. 전원 및 접지 신호는 스마트 카드(200)가 삽입되는 카드 판독기 또는 테스트 지그로부터 수신될 수 있다. 일부 경우에, "인에이블" 스위치가 전원 신호 핀과 용량성 지연 회로(206) 사이에 포함될 수 있으며, 이는 대응 조치가 사용될 경우 설정되고 그렇지 않으면 해제되는 공격 검출 인에이블 신호에 의해 제어된다. 용량성 지연 회로(206)는 커패시터(208), 증폭기(210) 및 래치 또는 플립플롭 게이트(212)를 포함할 수 있다. 커패시터(208)는 전원 신호 핀(VCC) 및 접지 신호 핀(GND)에 결합된다. 인에이블 스위치를 갖는 구현예의 경우, 인에이블 스위치는 전원 신호 핀과 커패시터(208) 사이에 있을 수 있다. 증폭기(210)는 커패시터(208)에 결합되어 커패시터(208)의 전하를 감지한다. 증폭기는 고 이득 증폭기일 수 있으며, 커패시터(208)에서 감지된 전하(예를 들어, 전압 크기)를 증폭하여 커패시터의 상태를 캡처하고, 커패시터(208)가 임계 레벨까지 충전된 후 래치 또는 플립플롭 게이트(212)를 설정한다. 래치 또는 플립플롭 게이트(212)는 증폭기(210)에 연결되어 증폭기(210)의 출력을 수신하고, 타이머 회로(204)에 연결되어 지연 캡처 신호를 수신한다. 래치 또는 플립플롭 게이트(212)의 출력부는 암호화 엔진(202)에 결합되어 활동-검출 신호를 제공한다. 래치 또는 플립플롭 게이트(212)는 D 플립플롭일 수 있다.
암호화 엔진(202)은 하나 이상의 프로세싱 코어 및 메모리 저장부를 포함할 수 있다. 프로세싱 코어는 ASIC(application specific integrated circuit), FPGA(field programmable gate array), 마이크로 프로세서 또는 기타 하드웨어 회로를 사용하여 구현될 수 있다. 암호화 엔진에 구현된 일반적인 암호화 알고리즘은 AES, ECC, 다양한 DES 및 RSA를 포함한다. 메모리 저장부는 비휘발성 메모리(NVM) 및 휘발성 메모리를 포함할 수 있다. NVM의 예로는 플래시 메모리, 다양한 읽기 전용 메모리(ROM, PROM, EPROM, EEPROM), 상 변화 메모리, 자기 및 강자성/강유전성 메모리(MRAM, FeRAM)가 있다. 휘발성 메모리의 예로는 랜덤 액세스 메모리(RAM, DRAM, SRAM)가 있다.
예시된 스마트 카드(200)는 암호화 엔진(202)에 의해 수신된 활동 검출 신호에 기초하여 대응 조치를 개시할 수 있으며, 이는 스마트 카드가 일반적인 동작보다 더 오랜 시간 동안 전력을 공급받은 결과일 수 있다. 대응 조치는, 암호화 엔진(202)에 의해 수신된 활동 검출 신호에 기초하여 개시될 수 있다. 일부 경우에, 타이머 회로(204)는 암호화 엔진(202)에 타이머 온 통지를 출력하기 위해 암호화 엔진(202)에 결합된다. 용량성 지연 회로(206)로부터의 입력을 판독하도록 신호를 보내기 위해 암호화 엔진(202)에 의해 타이머-온 통지가 사용될 수 있다. 예시적인 시나리오는 다음과 같이 제공된다.
카드 판독기(또는 테스트 지그)에 스마트 카드(200)를 삽입하면, RST 신호가 하이(high)가 되고 타이머 회로(204)가 동작을 시작한다. 처음 삽입할 때 또는 카드 판독기 또는 테스트 지그에 스마트 카드(200)를 이전에 삽입한 후 충분한 시간이 경과한 경우, 커패시터(208)의 전하는 최소이다. 따라서, 타이머 회로(204)가 플립플롭(212)에 지연 캡처 신호를 전송하여 플립플롭(212)이 그 입력 값을 캡처하게 할 때, 래치 또는 플립플롭 게이트(212)는 로우(low) 값을 암호화 엔진(202)에 출력하는데, 이는 공격이(아직) 탐지되지 않았음을 나타낸다.
커패시터(208)는 카드(200)에 공급되는 전력으로 인해 스마트 카드(200)가 카드 판독기에 삽입된 후 충전을 시작한다. 커패시터(208)가 충전됨에 따라, 증폭기(210)는 래치 또는 플립플롭 게이트(212)에 제공되는 신호(예컨대, 전압 크기)를 증폭한다. 커패시터(208)가 임계 값 이상의 값으로 충전되면, 래치 또는 플립플롭 게이트(212)에 대한 입력은 높은 값으로 전환될 수 있다. 그 다음에 타이머 회로(204)는 지연 캡처 신호를 래치 또는 플립플롭 게이트(212)로 전송하여 래치 또는 플립플롭 게이트(212)가 자신의 입력 상태를 캡처하게 하고, 입력 상태는 하이가 될 것이다. 이 상태에서, 래치 또는 플립플롭 게이트(212)는 공격이 진행 중임을 암호화 엔진(202)에 경고하기 위해 하이 활동 검출 값을 출력할 것이다.
전술한 바와 같이, 타이머 회로가 타이머 온 통지를 더 제공할 경우, 암호화 엔진(또는 스마트 카드의 특정 제어 부분)은 래치 또는 플립플롭 게이트(212)에 의해 출력된 값을 읽을 수 있다.
커패시터의 크기/커패시턴스는 예를 들어 3-5 초의 시간(예를 들어, 임계 레벨까지 충전하는 시간)의 지연을 지원하도록 선택될 수 있다. 스마트 카드(200)에 대한 액세스가 사전 액세스 또는 사전 리셋 동작 후 몇 초 이내에 요청되면, 커패시터의 전하는 계속해서 충전되고 래치 또는 플립플롭 게이트(212)의 출력이 하이가 되게 하기에 충분하며, 이는 암호화 엔진(또는 스마트 카드의 지정된 제어 부분)에 의해 판독될 때 대응책을 시작하는 데 사용할 수 있다. 커패시터(208)가 충분히 방전되면, 래치 또는 플립플롭 게이트(212)의 상태가 로우이고, 플립플롭의 출력이 로우이며, 이는 이 SCA 방법에 의한 공격이 없음(액세스가 안전함)을 나타낸다.
구현된 특정 대응책은 스마트 카드 설계자에 의해 결정된 방식으로 데이터를 난독화하거나 변경하는 것일 수 있다. 예를 들어, 스마트 카드가 사용불가능하게 되어 입력 데이터에 응답하지 않거나, 적절한 응답 수행에서 부적절한 응답 수행으로 전환될 수 있다. 부적절한 응답은 다른 키 또는 랜덤 키를 나타내는 전원 서명(power signatures)을 생성하려는 응답을 의미한다.
용량성 지연 회로를 스마트 카드에 통합하면, 공격자가 차분 전력 분석(DPA)과 같은 SCA를 통해 키를 추출하는 데 필요한 데이터를 캡처하는 데 약 80배 더 많은 시간이 소요될 수 있다. 또한, 커패시터의 방전 시간을 늘리면, 공격 중에 키를 추출하는 데 필요한 시간이 직접적으로 증가한다.
본 명세서에 설명된 반복적인 SCA 대응책의 또 다른 실시예에서는, 하나 이상의 비교기가 사용될 수 있다. 반복적인 SCA 대응책은 스마트 카드가 동일한 정보 사이클을 수신한 횟수를 카운트하는 것을 포함할 수 있다. 동일한 정보 사이클을 반복적으로 수신하는 것은 공격을 나타낼 수 있다.
도 3은 비교기를 사용하는 반복적인 SCA 대응책의 구현예를 보여준다. 전술한 바와 같이, 비교기를 사용하는 반복적인 SCA 대응책은 컴퓨팅 장치의 I/O 핀에 결합된 하나 이상의 비교기와, 각 비교기에 결합된 저장 유닛과, 비교기의 출력을 수신하도록 결합된 카운터를 포함하며, 카운터의 출력은 계산 엔진에 결합되어 계산 엔진에 한도 초과 신호를 제공한다. 도 3의 특정 스마트 카드 구현예를 참조하면, 스마트 카드(300)는 암호화 엔진(302), 저장 유닛(304), 비교기(306) 및 카운터(308)를 포함할 수 있다. 저장 유닛(304)은 FIFO(first-in-first-out) 레지스터와 같은 레지스터 또는 적절한 비 휘발성 메모리(NVM)일 수 있다. 저장 유닛은 I/O 핀을 통해 수신된 정보 사이클을 저장할 수 있는 크기를 갖는다. 특히 스마트 카드에 적용되는 대응책을 참조하여 설명하지만, 회로는 신호 라인을 통해 반복적인 공격을 받을 수 있는 모든 컴퓨팅 장치에 적용할 수 있다.
비교기(306)는 I/O 핀으로부터 한 번에 하나의 완전한 정보 사이클을 수신할 수 있고 매칭을 나타내는 신호를 출력할 수 있다. 정보 사이클은, 예를 들어 64 비트와 같이 미리 정해진 길이의 데이터 블록일 수 있다. 일부 경우에, 비교기는 64 비트 비교기이다. 일부 경우에, 비교기는, 정보 사이클 동안 데이터 블록의 특정 수의 비트를 각각 처리할 수 있는 복수의 보다 작은 비교기를 포함한다. 저장 유닛(304)은 비교기(306)에 연결되고 이전에 수신된 정보 사이클을 저장한다. 저장 유닛(304)은 암호화 엔진(302) 내의 메모리 저장부의 일부, 스마트 카드(300) 상의 다른 메모리 저장부의 일부, 또는 스마트 카드(300) 상의 별도의 저장부일 수 있다. 비교기(306)는 저장 유닛(304) 내의 이전에 저장된 정보 사이클을 새로 수신한 정보 사이클과 비교한다. 카운터(308)는, 비교기가 새로 수신된 정보 사이클이 이전에 저장된 정보 사이클과 매칭됨을 나타내는 신호를 출력하면, 증분될 것이다.
도 3에서, 스마트 카드(300)는 도 1a 및 1b와 관련하여 설명된 바와 같이 I/O 핀을 통해 입력 데이터를 수신할 수 있다. 입력 데이터는 평문 또는 암호문(이에 국한되지 않음)과 같은 입력 데이터를 나타내는 정보 사이클을 포함할 수 있다. 스마트 카드가 카드 판독기 또는 테스트 지그(또는 기타 장치)에 삽입되면, 정보 사이클 교환이 시작된다. 스마트 카드(300)는 상술한 대응책 회로를 사용하여 새로 수신된 정보 사이클이 이전 정보 사이클의 반복 전송인지 여부를 검출할 수 있다.
새로 수신된 정보 사이클과 이전에 저장된 정보 사이클 사이의 한 번의 매칭이 반드시 공격을 나타내는 것은 아니다. 스마트 카드 설계자는 대응책을 구현하기 전에 허용 가능한 반복적인 정보 사이클 수를 결정할 수 있다. 예를 들어, 마지막 리셋 이후 반복적인 정보 사이클이 3회 이상 발생한 경우, 공격 가능성이 있는 것으로 간주될 수 있다. 카운터(308)가 미리 결정된 허용 수준을 초과하면, 카운터(또는 카운터에 연결된 다른 회로)는 공격을 나타내기 위해 한도 초과 신호를 암호화 엔진(302)에 출력할 수 있다. 한도 초과 신호는 중단(abort), 인터럽트(interrupt) 또는 중지(halt) 신호를 생성하는 데 사용할 수 있다. 도 2의 실시예와 유사하게, 대응책은 스마트 카드 설계자에 의해 결정된 몇 가지 방식으로 데이터를 난독화하거나 변경하거나, 장치를 종료하는 것, 또는 다른 대응책을 포함할 수 있다.
스마트 카드에 사용되는 비교기 및 저장 유닛의 수는 잠재적 공격자의 예상 지적 수준에 따라 달라질 수 있다. 예를 들어, 공격자는 동일한 정보 사이클 전송을 3번 시도한 후 스마트 카드가 사용불능임을 알 수도 있다. 공격자는 스마트 카드에 액세스하기 위해 2개의 반복적인 정보 사이클의 패턴을 전송한 후 다른 정보 사이클을 전송하기 시작할 수 있는데, 이는 본 명세서에서 "다중 입력" 반복 공격이라고 한다.
도 4a 및 4b는 다중 입력 반복 공격에 적합한 반복 SCA 대응책의 구현예를 보여준다. 특히 스마트 카드를 참조하지만, 도 4a 및 4b에 도시된 반복적인 SCA 대응책의 구현예는, 입력을 수신하고 다중 입력 반복 공격을 받는 어떠한 컴퓨팅 장치에도 적용가능하다. 도 4a를 참조하면, 스마트 카드(400)는 복수의 비교기 및 저장 유닛, 예를 들어 n개의 대응하는 저장 유닛(412, 414, 416, 418, 420)에 결합된 n개의 비교기(402, 404, 406, 408, 410)를 포함할 수 있다. 각각의 비교기는 정보 사이클 블록을 수신하고 활동 검출 신호를 카운터(422)에 출력할 수 있다. 카운터(422)는 각 비교기로부터 출력을 수신하고 한도 초과 신호를 암호화 엔진(424)에 출력하도록 결합된다.
도 3과 관련하여 설명된 바와 같이, 저장 유닛(예를 들어, 412, 414, 416, 418, 420)은 D-타입 레지스터 또는 적절한 비 휘발성 메모리(NVM)와 같은 레지스터일 수 있다. 각 저장 유닛은 I/O 핀을 통해 수신된 정보 사이클을 저장할 수 있는 크기를 갖는다. 또한, 일부 경우에, 비교기는 64비트 비교기이다. 일부 경우에, 비교기는, 정보 사이클 동안 데이터 블록의 특정 수의 비트를 각각 처리할 수 있는 복수의 보다 작은 비교기를 포함한다. 복수의 저장 유닛(예를 들어, 412, 414, 416, 418, 420)은 암호화 엔진(424) 내의 메모리 저장부의 일부, 스마트 카드(400) 상의 다른 메모리 저장부의 일부, 또는 스마트 카드(400) 상의 별도의 저장부일 수 있다. 각 비교기(예컨대, 402, 404, 406, 408, 410)는 관련 저장 유닛(예컨대, 412, 414, 416, 418, 420)에 이전에 저장된 정보 사이클을 새로 수신된 정보 사이클과 비교한다. 카운터(422)는 비교기 중 어느 하나가 새로 수신된 정보 사이클이 이전에 저장된 정보 사이클과 매칭됨을 나타내는 신호를 출력하면 증분될 것이다.
n개의 비교기(402, 404, 406, 408, 410) 각각은 I/O 핀으로부터 완전한 정보 사이클을 수신할 수 있다. 일부 경우에, 비교기들은 직렬로 연결되고, 이들 비교기는 비교 동작을 수행하기 전에 선입 선출 작업과 유사한 입력 정보 사이클로 채워진다. 일부 경우에는, 비교기들이 병렬로 연결되어, 인입 정보 사이클이 비교를 수행하기 전에 적절한 비교기로 보내진다. 어느 구성이든 작동 중에 모든 비교기가 채워져서 비교에 사용되지 않도록 작동될 수 있다.
일부 경우에, 하나 초과의 카운터가 사용될 수 있고, 한도 값은 구성을 고려하여 카운터에 제공된다.
도 4b를 참조하면, 스마트 카드(450)에 포함된 대응책은 도 4a의 스마트 카드(400)에 대해 설명된 것과 유사할 수 있지만, 적절한 입력 데이터가 저장 유닛에 저장되도록 지시하는 회로(440)를 포함한다. 회로(440)는 각각의 비교기(402, 404, 406, 408, 410)에 연결되어 정보 사이클의 수신된 입력 데이터와 대응하는 저장 유닛(412, 414, 416, 418, 420)에 저장된 입력 데이터 간의 비교에 대한 비교기의 출력을 수신하고; 해당 비교기의 출력이 매칭되지 않음을 나타내면, 수신된 입력 데이터를 저장 유닛들 중 선택된 하나에 저장한다.
카운터(422) 내에는 각각이 비교기들 중 하나에 대응하는 카운터 세트가 있을 수 있다. 새로 수신된 정보 사이클과 이전에 저장된 정보 사이클 사이의 한 번의 매칭이 반드시 공격을 나타내는 것은 아니다. 스마트 카드 설계자는 대응책을 구현하기 전에 허용 가능한 반복적인 정보 사이클 수를 결정할 수 있다. 예를 들어, 마지막 리셋 이후 반복적인 정보 사이클이 3회 이상 발생한 경우, 공격 가능성이 있는 것으로 간주될 수 있다. 카운터(422)가 (모든 카운터에 대해 또는 카운터(422) 내의 단일 카운터에 의해) 미리 결정된 허용 수준을 초과하는 경우, 카운터(또는 카운터에 연결된 다른 회로)는 도 3과 관련하여 설명된 바와 같이, 공격을 나타내기 위해 암호화 엔진(424)에 한도 초과 신호를 출력할 수 있으며, 적절한 대응책을 취할 수 있다. 일부 경우에는, 한도 초과 신호에 대한 대응책이 취해지지 않는다. 예를 들어, 특정 개수의 한도 초과 신호를 수신하면 대응책이 취해질 수 있다.
일부 경우에, 회로(440)는 임의의 저장 유닛(412, 414, 416, 418, 420)이 이전 입력 데이터를 저장하고 있지 않은지 여부를 판단할 수 있고; 모든 저장 유닛이 모두 이전 입력 데이터를 저장하고 있으면, 회로(440)는 복수의 저장 유닛 중 랜덤 저장 유닛을 선택하고 정보 사이클의 수신된 입력 데이터를 랜덤 저장 유닛에 로드할 수 있으며; 저장 유닛 중 어느 것도 이전 입력 데이터를 저장하고 있지 않으면, 빈 저장 유닛 중 하나를 선택해서 정보 사이클의 수신된 입력 데이터를 빈 저장 유닛에 로드할 수 있다. 빈 저장 유닛의 선택은 랜덤일 수도 있고, 미리 결정된 패턴에 따르거나 또는 순차적일 수도 있다. 모든 저장 유닛이 이전 입력 데이터를 저장하고 있는 일부 경우에, 회로(440)는 랜덤이 아니라 미리 결정된 패턴에 따라 저장 유닛을 선택할 수 있다. 일부 경우에, n개의 저장 유닛(412, 414, 416, 418, 420) 각각은 대응하는 가득찬(full)/빈(empty) 표시기 장치(426, 428, 430, 432, 434)에 연결된다. 가득찬/빈 표시기 장치는 회로(440)에 연결되어 저장 유닛이 정보 사이클이 비어 있는지 또는 정보 사이클이 가득차 있는지를 나타낼 수 있다.
도 5는 하나 이상의 비교기를 사용하여 반복적인 SCA 대응책에 의해 수행될 수 있는 방법을 도시한 것이다. 방법(500)은 반복적인 SCA 대응책을 포함하는 임의의 컴퓨팅 장치에 의해 수행될 수 있다. 일부 경우에, 도 5에 도시된 방법(500)은 도 3, 4a 및 4b의 스마트 카드(300, 400 및 450)와 관련하여 설명한 것과 같은 스마트 카드에 의해 수행될 수 있다. 설명된 반복적인 SCA 대응책은, 데이터가 예를 들어 I/O 연결 핀을 사용하여 스마트 카드(또는 다른 컴퓨팅 장치)에 처음 입력될 때 시작될 수 있다(502). 스마트 카드는 새로운 입력이 수신될 때까지 대기 상태에 있을 수 있다(504). 새로운 입력이 수신되면, 새로운 입력은 계산 엔진(예를 들어, 암호화 엔진)과 저장 유닛 모두에 로드된다(506). 그 다음에, 입력 데이터는 모든 유효한(즉, 비어 있지 않은) 저장 유닛과 비교된다(508). 이 단계는, 스마트 카드(300)에 대해 설명된 것과 같은 단일 저장 유닛이 있는지 또는 스마트 카드(400 및 450)과 관련하여 설명된 것과 같은 복수의 저장 유닛이 있는지 여부에 관계없이, 입력 데이터가 모든 유효한 저장 유닛과 동시에 비교될 수 있는 병렬 프로세스에서 발생할 수 있다.
입력 데이터가 임의의 유효한 저장 유닛에 이미 저장된 임의의 데이터와 매칭될 경우(510), 카운터는 증분될 것이다(512). 매칭 수가 한도를 초과하는지 확인하기 위해 카운터가 검사될 수 있다(514). 매칭 수가 한도를 초과하면, 대응책 시작 신호가 생성된다(516). 신호는 일부 예로서 중단 신호, 인터럽트 신호 또는 암호화 작업을 중지하는 신호일 수 있다. 매칭 수가 한도를 초과하지 않으면(동작 514 동안 판정됨), 프로세스는 동작 504로 돌아가서 새로운 입력을 기다릴 수 있다.
동작 510 동안, 입력 데이터가 임의의 유효한 저장 유닛에 이미 저장된 데이터와 매칭되지 않으면, 스마트 카드/컴퓨팅 장치는 빈 저장 유닛이 있는지 확인할 수 있다(518). 빈 저장 유닛이 있는 경우, 입력 데이터는 다음 빈 저장 유닛에 로드될 수 있고(520), 그 후 프로세스는 동작 504로 돌아가서 새로운 입력을 기다릴 수 있다. 빈 저장 유닛이 없을 때, 저장 유닛은 무작위로 또는 소정의 패턴으로 선택될 수 있고(522), 입력 데이터는 선택된 저장 유닛에 로드될 수 있다(524). 그 후 프로세스는 동작 504로 돌아가서 새로운 입력을 기다릴 수 있다.
일부 경우에, 하나 이상의 비교기 및/또는 방법(500) 자체는 컴퓨팅 장치에 저장된 소프트웨어로 구현되고 컴퓨팅 장치의 프로세서에 의해 실행될 수 있다. 예를 들어, 컴퓨터 구현 방법은 정보 사이클의 입력 데이터를 수신하는 단계와, 입력 데이터를 하나 이상의 이전 입력 데이터와 비교하는 단계와, 입력 데이터가 하나 이상의 이전 입력 데이터와 매칭될 때 카운터를 증분시키는 단계와, 카운터가 한도에 도달하거나 초과하면, 반복적인 SCA 대응책을 시작하기 위한 신호를 생성하는 단계를 포함한다. 일부 경우에, 이 방법은 정보 사이클의 입력 데이터가 이전 입력 데이터 중 어느 것과도 매칭되지 않는 경우, 빈 저장 유닛이 있는지 검사하는 단계와; 빈 저장 유닛이 있을 때, 입력 데이터를 다음 빈 저장 유닛에 로딩하고, 빈 저장 유닛이 없는 경우, 저장 유닛을 선택해서 입력 데이터를 선택된 저장 유닛에 로딩하는 단계를 포함한다. 저장 유닛을 선택하는 것은 복수의 저장 유닛 중 하나를 무작위로 선택하는 것을 포함할 수 있다. 예를 들어, 선택된 저장 유닛은 난수 생성기를 사용하여 선택되어 선택 패턴을 생성할 수 있다. 일부 경우에, 선택된 저장 유닛은 미리 정해진 패턴에 따라 선택될 수 있다.
도 6은 반복적인 SCA 대응책을 구현하는 스마트 카드를 도시한 도면이다. 도 6을 참조하면, 스마트 카드 칩(600)은, 도 1a 및 1b와 관련하여 설명한 바와 같이, 암호화 엔진(610) 및 VCC(전원 공급 장치 입력), RST(단독으로 또는 내부 리셋 제어 회로와 결합하여 사용 가능), CLK(클럭킹 또는 타이밍 신호), GND(접지 - 접지 또는 VSS 신호), VPP(프로그래밍 전압 입력), I/O(스마트 카드 내부의 마이크로컨트롤러에 대한 직렬 데이터의 입력 또는 출력)용 패드, 및 선택적으로 애플리케이션 특정 입력(또는 출력) 또는 장래의 표준을 위한 2개의 추가적인 접속 패드를 포함할 수 있다. 스마트 카드 칩(600)은 대응책 1(CM1)(620) 및 대응책 2(CM2)(630)을 포함하는 복수의 SCA 대응책을 포함할 수 있다. CM1(620)은, 도 2와 관련하여 설명된 것과 같이 타이머 회로 및 용량성 지연 회로를 포함하는 용량성 지연을 사용하는 반복적인 SCA 대응책을 제공할 수 있다. CM2(630)는 도 3-5와 관련하여 설명된 것과 같이 하나 이상의 비교기를 사용하는 반복적인 SCA 대응책을 제공할 수 있다. 특정 칩에 대해 하나 또는 두 가지 대응책이 허용될 수 있다.
본 명세서에서 스마트 카드 및 암호화 엔진을 구체적으로 설명하고 예시하였지만, 설명한 SCA 대응책들 중 일부는 클럭킹 또는 타이밍 신호, 리셋 신호, 접지 신호 및 전원 입력 신호와 같은 신호를 수신하는 어떠한 컴퓨팅 장치에도 적용될 수 있다. 또한, 설명된 SCA 대응책들 중 일부는 정보 사이클에서 입력되는 입력 신호를 수신하는 어떠한 컴퓨팅 장치에도 적용될 수 있다.
구조적 특징 및/또는 동작에 특정한 언어로 본 발명을 설명하였지만, 첨부된 청구 범위에 정의된 청구 대상은 반드시 전술한 특정한 특징 또는 동작에 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 전술한 특정한 특징 및 동작은 청구 범위를 구현하는 예로서 개시되며 다른 동등한 특징 및 동작은 청구 범위 내에 있는 것으로 이해해야 한다.
Claims (20)
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 컴퓨팅 장치로서,
반복적인 입력 신호들을 검출하기 위해 상기 컴퓨팅 장치의 I/O 핀에 결합된 비교기와,
대표 입력 신호를 저장하기 위해 상기 비교기에 결합된 저장 유닛 - 상기 비교기는 상기 I/O 핀을 통해 수신된 입력을 상기 저장 유닛에 저장된 대표 입력 신호와 비교하여 상기 입력이 상기 대표 입력 신호와 매칭되는 지 여부를 결정하고, 상기 저장 유닛에 저장된 상기 대표 입력 신호는 상기 I/O 핀을 통해 수신된 이전의 인입 신호임 - 과,
상기 비교기의 출력을 수신하도록 결합된 카운터 - 상기 비교기가 상기 입력이 상기 대표 입력 신호와 매칭됨을 나타내면 상기 카운터가 증분되고, 상기 카운터가 상기 반복적인 입력 신호들에 대해 미리 결정된 허용 수준을 초과하는 경우 상기 카운터의 출력부는 계산 엔진에 결합되어 상기 계산 엔진에 한도 초과(limit-exceeded) 신호를 제공함 - 를 포함하는,
컴퓨팅 장치. - 제7항에 있어서,
상기 컴퓨팅 장치는 스마트 카드인,
컴퓨팅 장치.
- 제7항 또는 제8항에 있어서,
상기 계산 엔진은 암호화 엔진을 포함하는,
컴퓨팅 장치.
- 제7항에 있어서,
상기 저장 유닛은 상기 I/O 핀을 통해 수신된 제1 정보 사이클의 상기 대표 입력 신호를 저장하고, 상기 비교기는 상기 I/O 핀을 통해 수신된 제2 정보 사이클을 수신하여 상기 제2 정보 사이클을 상기 제1 정보 사이클과 비교하는,
컴퓨팅 장치. - 제7항에 있어서,
상기 비교기는 64 비트 비교기인,
컴퓨팅 장치.
- 제7항에 있어서,
복수의 비교기와,
대응하는 복수의 저장 유닛들을 더 포함하는,
컴퓨팅 장치.
- 제12항에 있어서,
상기 복수의 비교기에 결합된 대응하는 복수의 카운터를 더 포함하는,
컴퓨팅 장치.
- 제12항에 있어서,
적절한 입력 데이터가 상기 저장 유닛들에 저장되도록 지시하는 회로를 더 포함하는,
컴퓨팅 장치.
- 제14항에 있어서,
상기 회로는 각각의 비교기에 결합되어, 정보 사이클의 수신된 입력 데이터와 상기 비교기에 대응하는 상기 저장 유닛에 저장된 상기 대표 입력 신호를 포함하는 입력 데이터 사이의 비교에 대한 상기 비교기의 출력을 수신하고;
상기 비교기의 출력이 매칭이 없음을 나타낼 경우, 어떠한 저장 유닛도 이전 입력 데이터를 저장하고 있지 않은지 여부를 판정하고;
상기 저장 유닛들 모두가 이전 입력 데이터를 모두 저장하고 있는 경우, 상기 복수의 저장 유닛들 중 랜덤 저장 유닛을 선택하여 상기 정보 사이클의 상기 수신된 입력 데이터를 상기 랜덤 저장 유닛에 로드하며;
상기 복수의 저장 유닛들 중 어느 것도 이전 입력 데이터를 저장하고 있지 않은 경우, 상기 정보 사이클의 상기 수신된 입력 데이터를 다음 빈 저장 유닛에 로드하는,
컴퓨팅 장치. - 제15항에 있어서,
상기 저장 유닛들 각각에 결합된 채워짐(full)/비어있음(empty) 표시 장치를 더 포함하고, 상기 회로는 상기 채워짐/비어있음 표시 장치에 결합되는,
컴퓨팅 장치.
- 제7항에 있어서,
상기 컴퓨팅 장치의 클록 신호 핀 및 리셋 신호 핀에 결합된 타이머 회로와,
상기 컴퓨팅 장치의 전원 신호 핀 및 접지 신호 핀에 결합되고, 또한 계산 엔진에 결합되어 활동 검출 신호를 제공하는 용량성 지연 회로를 더 포함하는,
컴퓨팅 장치.
- 제17항에 있어서,
상기 용량성 지연 회로는,
상기 전원 신호 핀 및 상기 접지 신호 핀에 결합된 커패시터와,
상기 커패시터에 결합되어 상기 커패시터의 전하를 감지하는 증폭기와,
상기 증폭기에 결합되어 상기 증폭기의 출력을 수신하고, 상기 타이머 회로에 결합되어 상기 타이머 회로로부터 지연 캡처 신호를 수신하는 래치 또는 플립플롭 게이트 - 상기 래치 또는 플립플롭 게이트의 출력부는 상기 계산 엔진에 결합되어 상기 활동 검출 신호를 제공함 - 를 포함하는,
컴퓨팅 장치.
- 컴퓨터로 구현되는 방법으로서,
반복적인 입력 신호들을 검출하기 위해 컴퓨팅 장치의 I/O 핀에 결합된 비교기에서 정보 사이클의 입력 데이터를 수신하는 단계와,
상기 비교기에 결합된 저장 유닛에 저장된 하나 이상의 이전 입력 데이터와 상기 입력 데이터를 상기 비교기를 통해 비교하여, 상기 입력 데이터가 상기 하나 이상의 이전 입력 데이터와 매칭되는 지 여부를 결정하는 단계와,
상기 입력 데이터가 상기 하나 이상의 이전 입력 데이터 중 임의의 것과 매칭될 경우, 상기 비교기의 출력을 수신하도록 결합된 카운터를 증분시키는 단계 - 상기 카운터가 반복적인 입력 신호들에 대해 미리 결정된 허용 수준을 초과하는 경우, 계산 엔진에 한도 초과(limit-exceeded) 신호를 제공하기 위해 상기 카운터의 출력부는 계산 엔진에 결합됨 - 와,
상기 카운터가 상기 미리 결정된 허용 수준에 대응하는 한도에 도달하거나 초과하면, 상기 한도 초과(limit-exceeded) 신호를 생성하는 단계를 포함하는,
방법. - 제19항에 있어서,
상기 정보 사이클의 입력 데이터가 상기 이전 입력 데이터 중 어느 것과도 매칭되지 않는 경우, 빈 저장 유닛이 있는지 확인하는 단계와,
빈 저장 유닛이 있는 경우에는 상기 입력 데이터를 빈 저장 유닛에 로드하고, 빈 저장 유닛이 없는 경우에는 저장 유닛을 선택하여 상기 입력 데이터를 상기 선택된 저장 유닛에 로드하는 단계를 더 포함하는,
방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/030,459 US11361111B2 (en) | 2018-07-09 | 2018-07-09 | Repetitive side channel attack countermeasures |
US16/030,459 | 2018-07-09 | ||
PCT/GB2019/051872 WO2020012161A1 (en) | 2018-07-09 | 2019-07-02 | Repetitive side channel attack countermeasures |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210028686A KR20210028686A (ko) | 2021-03-12 |
KR102515381B1 true KR102515381B1 (ko) | 2023-03-29 |
Family
ID=67180810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217003705A KR102515381B1 (ko) | 2018-07-09 | 2019-07-02 | 반복적인 사이드 채널 공격 대응책 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11361111B2 (ko) |
KR (1) | KR102515381B1 (ko) |
CN (1) | CN112424783A (ko) |
WO (1) | WO2020012161A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599679B2 (en) * | 2020-06-23 | 2023-03-07 | Arm Limited | Electromagnetic and power noise injection for hardware operation concealment |
US11947672B2 (en) * | 2021-03-02 | 2024-04-02 | Nxp B.V. | Voltage glitch detection circuit |
CN115277076B (zh) * | 2022-06-22 | 2023-11-21 | 中国电信股份有限公司 | 侧信道攻击防御方法及系统、存储介质和电子设备 |
US20240235806A9 (en) * | 2022-10-25 | 2024-07-11 | Microsoft Technology Licensing, Llc | Detecting and mitigating side channel attacks with razor-flops |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100500976B1 (ko) * | 1996-06-28 | 2005-12-06 | 소니 가부시끼 가이샤 | 인증방법,통신방법및정보처리장치 |
US20120284533A1 (en) * | 2011-05-05 | 2012-11-08 | Stmicroelectronics S.R.I. | Method and circuit for cryptographic operation |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4066964A (en) * | 1967-01-06 | 1978-01-03 | Rockwell International Corporation | Communication system |
GB1360943A (en) | 1972-02-24 | 1974-07-24 | Marconi Co Ltd | Digital-to-analogue converters |
US3989034A (en) * | 1975-04-24 | 1976-11-02 | Corometrics Medical Systems, Inc. | Apparatus and method for signaling fetal distress and uterine contraction monitor for use therein |
DE2732781C3 (de) | 1977-07-20 | 1995-04-06 | Bosch Gmbh Robert | Einrichtung zum Steuern von betriebsparameterabhängigen und sich wiederholenden Vorgängen |
US4187399A (en) * | 1978-06-05 | 1980-02-05 | Bell Telephone Laboratories, Incorporated | Call state processor for a time division switching system |
US4710865A (en) | 1984-11-14 | 1987-12-01 | Canon Kabushiki Kaisha | Control system for positioning an object using switching from a speed control mode to a position control mode with adjustable brain |
US4789925A (en) * | 1985-07-31 | 1988-12-06 | Unisys Corporation | Vector data logical usage conflict detection |
US4907845A (en) * | 1988-09-16 | 1990-03-13 | Salomon Sa | Bed patient monitoring system |
US5218707A (en) * | 1988-10-28 | 1993-06-08 | Dallas Semiconductor Corp. | Integrated circuit with remappable interrupt pins |
US5148171A (en) | 1991-07-25 | 1992-09-15 | Hewlett-Packard Company | Multislope continuously integrating analog to digital converter |
KR100215849B1 (ko) * | 1997-02-28 | 1999-08-16 | 구본준 | 파워 서스팬드 처리장치 |
US6289455B1 (en) | 1999-09-02 | 2001-09-11 | Crypotography Research, Inc. | Method and apparatus for preventing piracy of digital content |
DE102004015868A1 (de) * | 2004-03-31 | 2005-10-27 | Micron Technology, Inc. | Rekonstruktion der Signalzeitgebung in integrierten Schaltungen |
US7120220B2 (en) | 2004-12-23 | 2006-10-10 | Ramtron International Corporation | Non-volatile counter |
US7421552B2 (en) | 2006-03-17 | 2008-09-02 | Emc Corporation | Techniques for managing data within a data storage system utilizing a flash-based memory vault |
EP2009864A1 (en) | 2007-06-28 | 2008-12-31 | Nibelung Security Systems GmbH | Method and apparatus for attack prevention |
WO2009115864A1 (en) * | 2008-03-19 | 2009-09-24 | Freescale Semiconductor, Inc. | A method for protecting a cryptographic module and a device having cryptographic module protection capabilities |
US8031521B1 (en) | 2008-05-20 | 2011-10-04 | Marvell International Ltd. | Reprogramming non-volatile memory devices for read disturbance mitigation |
US8559576B2 (en) * | 2008-06-30 | 2013-10-15 | Oracle America, Inc. | Adaptive synchronization circuit |
US8050148B2 (en) | 2008-07-03 | 2011-11-01 | Texas Instruments Incorporated | Flash time stamp apparatus |
CN100578520C (zh) * | 2008-10-30 | 2010-01-06 | 中国人民解放军国防科学技术大学 | 安全芯片中对旁路攻击进行早期预警的方法 |
US8762656B2 (en) | 2008-12-30 | 2014-06-24 | Micron Technology, Inc. | Temperature alert and low rate refresh for a non-volatile memory |
KR101596827B1 (ko) * | 2009-10-14 | 2016-02-23 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
KR101418962B1 (ko) | 2009-12-11 | 2014-07-15 | 한국전자통신연구원 | 부채널 공격 방지를 위한 보안 장치 및 방법 |
KR101725505B1 (ko) * | 2010-12-07 | 2017-04-11 | 삼성전자주식회사 | 해킹 검출 장치, 집적 회로 및 해킹 검출 방법 |
JP5920564B2 (ja) * | 2011-12-05 | 2016-05-18 | セイコーエプソン株式会社 | タイマー装置及び電子機器 |
US8688862B1 (en) | 2012-11-07 | 2014-04-01 | General Electric Company | Systems and methods for monitoring input signal parameters |
US9454424B2 (en) | 2014-08-27 | 2016-09-27 | Freescale Semiconductor, Inc. | Methods and apparatus for detecting software inteference |
US9904591B2 (en) | 2014-10-22 | 2018-02-27 | Intel Corporation | Device, system and method to restrict access to data error information |
EP3040901A1 (en) | 2014-12-29 | 2016-07-06 | Gemalto Sa | System and method for aligning time-series data over a large range of time indices |
US9588857B2 (en) | 2015-06-22 | 2017-03-07 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Raid logical stripe backup to non-volatile memory in response to raid storage device media errors |
US10127101B2 (en) | 2015-08-28 | 2018-11-13 | Intel Corporation | Memory device error check and scrub mode and error transparency |
US20170075812A1 (en) | 2015-09-16 | 2017-03-16 | Intel Corporation | Technologies for managing a dynamic read cache of a solid state drive |
US10185511B2 (en) | 2015-12-22 | 2019-01-22 | Intel Corporation | Technologies for managing an operational characteristic of a solid state drive |
EP3337039B1 (en) | 2016-12-14 | 2020-07-22 | Nxp B.V. | Monotonic counter and method of operating a monotonic counter |
US10860714B2 (en) * | 2018-06-29 | 2020-12-08 | Intel Corporation | Technologies for cache side channel attack detection and mitigation |
-
2018
- 2018-07-09 US US16/030,459 patent/US11361111B2/en active Active
-
2019
- 2019-07-02 KR KR1020217003705A patent/KR102515381B1/ko active IP Right Grant
- 2019-07-02 CN CN201980045866.5A patent/CN112424783A/zh active Pending
- 2019-07-02 WO PCT/GB2019/051872 patent/WO2020012161A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100500976B1 (ko) * | 1996-06-28 | 2005-12-06 | 소니 가부시끼 가이샤 | 인증방법,통신방법및정보처리장치 |
US20120284533A1 (en) * | 2011-05-05 | 2012-11-08 | Stmicroelectronics S.R.I. | Method and circuit for cryptographic operation |
Also Published As
Publication number | Publication date |
---|---|
WO2020012161A1 (en) | 2020-01-16 |
KR20210028686A (ko) | 2021-03-12 |
US11361111B2 (en) | 2022-06-14 |
CN112424783A (zh) | 2021-02-26 |
US20200012822A1 (en) | 2020-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102515381B1 (ko) | 반복적인 사이드 채널 공격 대응책 | |
US9325493B2 (en) | System and methods for silencing hardware backdoors | |
US10243729B2 (en) | Method of testing the resistance of a circuit to a side channel analysis | |
Waksman et al. | Silencing hardware backdoors | |
JP5517535B2 (ja) | 攻撃に対するマイクロ回路の保護方法及びデバイス | |
US7555787B2 (en) | IC intrusion detection | |
WO2019129439A1 (en) | Quantitative digital sensor | |
US11232196B2 (en) | Tracking events of interest to mitigate attacks | |
US8990578B2 (en) | Password authentication circuit and method | |
EP1904946B1 (fr) | Detection d'une faute par perturbation longue | |
Tunstall | Smart card security | |
JP4693245B2 (ja) | 外部からの不正操作に対するコンピュータコアの保護 | |
US20130312110A1 (en) | Protection of applets against hidden-channel analyses | |
KR100578459B1 (ko) | 예측 불가능 마이크로프로세서 또는 마이크로컴퓨터 | |
CN106487510B (zh) | 模幂计算的保护 | |
CN106484365B (zh) | 验证执行模幂计算的电子电路的敏感度 | |
US20030221117A1 (en) | Testing of an algorithm executed by an integrated circuit | |
US8161293B2 (en) | Protection of the execution of a program executed by an integrated circuit | |
EP1435558A1 (en) | On-device random number generator | |
KR100718352B1 (ko) | 데이터 처리 장치 및 그 작동 방법 | |
Knichel et al. | The risk of outsourcing: Hidden SCA trojans in third-party IP-cores threaten cryptographic ICs | |
JPWO2005027403A1 (ja) | 情報処理装置 | |
JP7383156B2 (ja) | セキュリティ関連プロセスのセキュアな実行のための方法 | |
US12032684B2 (en) | Method for detecting a fault injection in a data processing system | |
CN108229207B (zh) | 一种具有存储器内部数据防篡改机制的soc芯片及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |