KR101776845B1 - 키 조작에 대한 보호 - Google Patents

키 조작에 대한 보호 Download PDF

Info

Publication number
KR101776845B1
KR101776845B1 KR1020167024724A KR20167024724A KR101776845B1 KR 101776845 B1 KR101776845 B1 KR 101776845B1 KR 1020167024724 A KR1020167024724 A KR 1020167024724A KR 20167024724 A KR20167024724 A KR 20167024724A KR 101776845 B1 KR101776845 B1 KR 101776845B1
Authority
KR
South Korea
Prior art keywords
key
written
usage rules
word
word portion
Prior art date
Application number
KR1020167024724A
Other languages
English (en)
Other versions
KR20160135189A (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 퀄컴 인코포레이티드
Publication of KR20160135189A publication Critical patent/KR20160135189A/ko
Application granted granted Critical
Publication of KR101776845B1 publication Critical patent/KR101776845B1/ko

Links

Images

Classifications

    • 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/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)

Abstract

키 조작에 대해 보호하기 위한 장치 및 방법이 개시된다. 컴퓨팅 디바이스는 키의 제 1 부분을 포함하는 제 1 워드를 기록하고; 그리고 키의 일 부분을 각각 포함하는 복수의 후속 워드들을 기록하도록 구성되는 암호화프로세서를 포함할 수 있다. 동일한 워드가 2회 이상 기록되면, 키가 리셋되고 인증되지 않는다.

Description

키 조작에 대한 보호{PROTECTION AGAINST KEY TAMPERING}
[0001] 본 발명은 키 조작에 대해 보호하기 위한 장치 및 방법에 관한 것이다.
[0002] 암호화프로세서는 확장 언어에 기초하여 중앙 처리 장치(CPU)에 대한 정보의 계산 집약적인 인코딩 및 디코딩을 수행하는 코-프로세서일 수 있거나 또는 정보의 인코딩 및 디코딩을 위한 전용 소프트웨어 드라이버에 의해 실행되는 하드웨어의 별개 부분(예를 들어, 액셀러레이터 프로세서)인 암호화엔진일 수 있다. 암호화프로세서는 암호화 및 복호화하기 위한 키들을 저장하는 데 사용될 수 있다. 이 정보는 전형적으로, 기록-전용이며, 이는, 가령 그 정보를 기록했던 것이라 하더라도, 어떠한 것(예를 들어, 소프트웨어 애플리케이션들)도 이것을 판독할 수 없다는 것을 의미한다.
[0003] 그러나, 공격자는 키에 대한 정보를 수집하기 위해서 키의 일부를 덮어쓰기 위한 시도를 할 수 있다. 또한, 공격자는, 키로 수행될 수 있는 것, 어떤 실행 환경들 또는 프로세스가 키를 사용할 수 있는지, 그리고 어느 도메인들이 사용자에게 키를 사용하게 허용하는지를 정의하는 키와 연관되는 메타데이터를 변경시키기 위해 시도할 수 있다.
[0004] 불행히도, 이러한 타입들을 공격들은, 암호화프로세서들을 활용하는 컴퓨팅 디바이스들에 대해 매우 파괴적일 수 있으며, 다음과 같은 문제들: 엄격한 벌금, 계약 손실, 전체 제품 라인들의 무효화, 브랜드 가치 감소 등을 유발할 수 있다.
[0005] 본 발명의 양상들은 키 조작에 대해 보호하기 위한 장치 및 방법에 관한 것일 수 있다. 컴퓨팅 디바이스는, 키의 제 1 부분을 포함하는 제 1 워드를 기록하고; 그리고 키의 일 부분을 각각 포함하는 복수의 후속 워드들을 기록하도록 구성되는 암호화프로세서를 포함할 수 있다. 동일한 워드가 여러 번 기록되면, 키가 리셋되고 인증되지 않는다.
[0006] 도 1은 본 발명의 양상들이 실시될 수 있는 컴퓨팅 디바이스의 다이어그램이다.
[0007] 도 2는 키를 인증하거나 또는 인증하지 않는 암호화프로세서를 포함하는 컴퓨팅 환경의 예이다.
[0008] 도 3a는 키를 인증하거나 또는 인증하지 않는 방법의 예를 예시하는 흐름도이다.
[0009] 도 3b는, 다른 실시예에 따른, 키를 인증하거나 또는 인증하지 않는 방법의 예를 예시하는 흐름도이다.
[0010] 도 4는 키를 인증하거나 또는 인증하지 않는 키 엔트리 상태 머신 프로세스를 도시한다.
[0011] "예시적인" 또는 "예"라는 단어는 예시, 실례 또는 예증"의 역할을 의미하는 것으로 사용된다. "예시적인" 또는 "예"로서 여기서 설명되는 임의의 양상 또는 실시예는 반드시 다른 양상들 또는 실시예들보다 선호되거나 유리한 것으로 해석되는 것은 아니다.
[0012] 본원에서 사용되는 바와 같이, 용어 "컴퓨팅 시스템 또는 디바이스"는 랩톱 및 데스크톱 컴퓨터, 태블릿들, 스마트폰들, 텔레비전들, 가전 기기들, 휴대 전화들, 개인 텔레비젼 디바이스들, 개인 휴대 정보 단말기(PDA)들, 팜-탑 컴퓨터들, 무선 전자 메일 수신기들, 멀티미디어 인터넷 인에이블드 휴대 전화들, GPS(Global Positioning System) 수신기들, 무선 게임 컨트롤러들, 차량(예를 들면, 자동차들) 내부의 수신기들, 대화형 게임 디바이스들, 노트북들, 스마트북들, 넷북들, 모바일 텔레비전 디바이스들, 또는 임의의 다른 데이터 프로세싱 장치를 포함하는 (그러나 이것으로 제한되지 않음) 임의의 형태의 프로그램가능한 컴퓨터 디바이스를 지칭한다.
[0013] 이하 상세히 설명되는 바와 같이, 본 발명의 양상들이 실시될 수 있는, 키 인증하거나 또는 인증하지 않도록 활용될 수 있는 예시적인 컴퓨팅 디바이스(100)가 도 1에 도시된다. 버스(105)를 통해 전기적으로 결합될 수 있는 (또는 적절히 다른 방식으로 통신할 수 있는) 하드웨어 엘리먼트들을 포함하는 컴퓨팅 디바이스(100)가 도시된다. 하드웨어 엘리먼트들은 범용 프로세서들 및/또는 하나 또는 그 초과의 특수 목적 프로세서들(이를 테면, 디지털 신호 프로세싱 칩들, 그래픽스 액설러레이션 프로세서들, 암호화프로세서들 등)을 포함하는(이것으로 제한되지 않음) 하나 또는 그 초과의 프로세서들(110); 하나 또는 그 초과의 입력 디바이스들(115)(예를 들어, 키보드, 키패드, 터치스크린, 마우스 등); 및 적어도 디스플레이 디바이스(121)를 포함하고, 스피커, 프린터 등(이것으로 제한되지 않음)을 추가로 포함할 수 있는 하나 또는 그 초과의 출력 디바이스들(120)을 포함할 수 있다.
[0014] 컴퓨팅 디바이스(100)는, 로컬 및/또는 네트워크 액세스가능 저장소를 포함할 수 있고(이것으로 제한되지 않음), 그리고/또는 디스크 드라이브, 드라이브 어레이, 광학 저장소 디바이스, 고체-상태 저장소 디바이스, 이를 테면, 프로그램가능하고, 플래시-업데이트가능한 "RAM(random access memory)" 및/또는 "ROM(read-only memory)"를 포함할 수 있는(이것으로 제한하지 않음) 하나 또는 그 초과의 비일시적 저장 디바이스들(125)을 더 포함할 수 있다(그리고/또는 이와 통신할 수 있다). 이러한 저장소 디바이스들은, 다양한 파일 시스템들, 데이터베이스 구조들 등(이것으로 제한되지 않음)을 비롯한 임의의 적절한 데이터 저장소를 구현하도록 구성될 수 있다.
[0015] 컴퓨팅 디바이스(100)는 또한, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스, 무선 통신 디바이스 및/또는 칩셋(이를 테면, 블루투스 디바이스, 802.11, 디바이스, Wi-Fi 디바이스, WiMax 디바이스, 셀룰러 통신 디바이스들 등) 및/또는 이와 유사한 것을 포함할 수 있는 (이것으로 제한되지 않음) 통신 서브시스템(130)을 포함할 수 있다. 통신 서브시스템(130)은, 데이터가 본원에 설명되는 네트워크, 다른 컴퓨터 시스템들, 및/또는 임의의 다른 디바이스들과 교환될 수 있게 할 수 있다. 많은 실시예들에서, 컴퓨터 디바이스(100)는, 상술한 바와 같이 RAM 또는 ROM 디바이스를 포함할 수 있는 작업 메모리(135)를 더 포함할 것이다. 또한, 컴퓨팅 디바이스(100)는, 애플리케이션들을 구현하기 위해서, (SMMU를 통해 통과되는) 메모리 참조들을 가지며, 가상 메모리 어드레스들을 물리적 어드레스들로의 변환을 수행하는데 사용될 수 있는 컴퓨터 하드웨어 유닛인 SMMU(system memory management unit)를 포함할 수 있다. 컴퓨팅 디바이스(100)는 또한, 운영 체제(140), 애플리케이션들(145), 디바이스 드라이버들, 실행가능한 라이브러리들, 및/또는 다른 코드를 포함하는 작업 메모리(135) 내에 현재 위치되는 것으로 도시되는 소프트웨어 엘리먼트들을 포함할 수 있다.
[0016] 단지 예로서, 아래에 설명되는 방법(들)에 대하여 설명되는 하나 또는 그 초과의 절차들은, 컴퓨팅 디바이스(및/또는 컴퓨팅 디바이스 내의 프로세서)에 의해 실행가능한 코드 및/또는 명령들로서 구현될 수 있고; 일 양상에서, 그런 다음, 이러한 코드 및/또는 명령들은, 본 발명의 실시예들에 따른, 설명된 방법들에 따라 하나 또는 그 초과의 동작들을 수행하기 위해 범용 컴퓨터(예를 들어, 컴퓨팅 디바이스)를 구성하고/하거나 적응시키는 데에 사용될 수 있다. 일 특정 예로서, 이하에서 더욱 상세하게 설명되는 바와 같이, 암호화프로세서는 키를 인증하거나 인증하지 않는 본 발명의 실시예들을 구현할 수 있다. 이러한 명령들 및/또는 코드의 세트는 비-일시적인 컴퓨터-판독가능 저장 매체에 저장될 수 있다. 일부 경우들에서, 저장 매체는 컴퓨팅 디바이스, 이를 테면, 컴퓨팅 디바이스(100) 내에 포함될 수 있다. 다른 실시예에서, 저장 매체는, 그 저장 매체가 명령들/코드들이 저장되어 있는 범용 컴퓨터를 프로그래밍, 구성, 및/또는 적응시키기 위해 사용될 수 있도록, 컴퓨터 시스템(예을 들어, 착탈식 매체, 이를 테면, 콤팩트 디스크)과는 별개일 수 있고 그리고/또는 설치 패키지 내에 제공될 수 있다. 이러한 명령들은, 컴퓨터화된 컴퓨팅 디바이스(100)에 의해 실행가능한 실행가능 코드의 형태를 취할 수 있고 그리고/또는 명령들은 소스 및/또는 인스톨가능 코드의 형태를 취할 수 있는데, 이러한 코드의 형태는 이후, (예를 들어, 다양한 일반적으로 이용가능한 컴파일러들, 인스톨레이션 프로그램들, 압축/압축해제 유틸리티들 등 중 임의의 것을 이용하여) 컴퓨팅 디바이스(100) 상의 컴파일레이션 및/또는 인스톨레이션 시 실행가능한 코드의 형태를 취할 수 있다.
[0017] 추가로, 특히 도 1에 도시된 바와 같이, 컴퓨팅 디바이스(100)는, 이하에서 보다 구체적으로 설명되는 바와 같이, 키 조작에 대해 보호하기 위해서 키를 인증하거나 또는 인증하지 않기 위해 활용될 수 있는 암호화프로세서(220)를 포함할 수 있다. 암호화프로세서(220)는 확장 언어에 기초한 중앙 처리 장치(CPU)(예를 들어, 110) 또는 다른 프로세서에 대한 정보의 계산 집약적인 인코딩 및 디코딩을 수행하는 코-프로세서일 수 있거나 또는 정보의 인코딩 및 디코딩을 위한 전용 소프트웨어 드라이버에 의해 실행되는 하드웨어의 별개 부분(예를 들어, 액셀러레이터 프로세서)인 암호화엔진일 수 있다.
[0018] 도 2를 참조하면, 본 발명의 양상들이 실시될 수 있는, 키를 인증하거나 또는 인증하지 않는 암호화프로세서(220)를 포함하는 컴퓨팅 디바이스(100)에 의해 구현가능한 컴퓨팅 환경(200)의 예를 이하에 설명할 것이다. 암호화프로세서(220)는 확장 언어에 기초하여 CPU(또는 다른 프로세서)에 대한 정보의 계산 집약적인 인코딩 및 디코딩을 수행하는 코-프로세서일 수 있거나 또는 정보의 인코딩 및 디코딩을 위한 전용 소프트웨어 드라이버에 의해 실행되는 하드웨어의 별개 부분(예를 들어, 액셀러레이터 프로세서)인 암호화엔진일 수 있다. 이 예에서, 암호화프로세서(220)는 암호화엔진이며, 후술하는 실시예들은 암호화엔진에 의한 구현의 맥락에 있을 것이다. 그러나, 당업자에게 명백한 바와 같이, 이러한 동일한 구현들은 코-프로세서에 의해 유사하게 수행될 수 있다. 이 예시적인 구현에서, 데이터를 암호화하고 복호화하는 키들을 제어하는 다양한 실행 환경 키 소유자들(EE1-EEN)(202, 204, 206)은 다양한 실행 환경 데이터 소유자들(EE1-EEN)(210, 212, 214)과 협력하여 작동한다. 키들을 활용하는 실행 환경은 컴퓨팅 디바이스에 의한 입력 및 출력을 위해 데이터를 안전하게 통신할 수 있다. 특히, 데이터는 암호화프로세서(220)의 키 테이블(224)에서 키(225)를 통해 암호화되고 복호화될 수 있다. SMMU(133)를 통해 도메인들(240)을 입력하거나 또는 도메인들(250)을 출력하기 위해 암호화된 데이터 또는 복호화된 데이터가 제공된다. 예시적인 입력 도메인들(240)은 오디오 데이터(242), 고레벨 운영 체제 데이터(HLOS)(244), 및 비디오 데이터(246)를 포함하는 반면, 유사하게, 예시적인 출력 도메인들(250)은 오디오 데이터(252), 고레벨 운영 체제 데이터(HLOS)(254), 및 비디오 데이터(256)를 포함한다. 이들은 단지 예시적인 도메인들이고, 많은 상이한 타입들의 도메인들이 (예를 들어, 기업, 모뎀 등에) 활용될 수 있다는 것을 인식해야 한다. 또한, 실행 환경들의 많은 다른 유형들이 활용될 수 있으며, 앞에 설명된 것들은 단지 예들이다.
[0019] 일 예로서, 실행 환경(1)은 비디오 데이터용일 수 있으며, EE1 키 소유자(202) 및 EE1 데이터 소유자 1(210)을 포함할 수 있다. 데이터 소유자(201)를 위한 입력 비디오 데이터(246)는 EE1 키 소유자와 연관되는 키 테이블(224) 내 키(225)로 암호화프로세서(220)에 의해 복호화될 필요가 있으므로, 이것이 출력 도메인(256)에 디스플레이될 수 있다. 이 예에서, 암호화프로세서(220)는 (이후에 설명될) 키 입력 상태 머신(222) 및 키 테이블(224)을 포함할 수 있다. 키 테이블(224)은 키들(0-N)(225) 및 연관된 사용 규칙들(예를 들어, 하드웨어 사용 규칙들(227) 및 소프트웨어 사용 규칙들(229))을 포함할 수 있다. 하드웨어 및 소프트웨어 사용 규칙들(227 및 229)은 이용될 수 있는 영역들을 또한 정의하는 메타데이터(230)로 지칭될 수 있다. (키 소유자 및 데이터 소유자를 포함하는) 각각의 실행 환경은, 실행 환경과 연관되는 도메인들을 추가로 정의하는 하드웨어 및 소프트웨어 사용 규칙들(227 및 229) 및 키(225)를 포함하는 키 테이블(224) 내에 할당된 그룹을 가질 수 있다. 이 예를 계속하면, 비디오 실행 환경(예를 들어, 키 소유자(202) 및 데이터 소유자(210))은, 암호화된 비디오 데이터(246)가 비디오 실행 환경을 위한 키 테이블(224)의 연관된 키(225)를 이용하여 암호화프로세서(220)에 의해 복호화될 것을 요청할 수 있으므로, 비디오 데이터(256)가 디스플레이를 위해 출력 도메인(250)으로 출력될 수 있다. 이는 (데이터를 암호화 또는 복호화하기 위해 사용될 수 있는) 암호화프로세서(220)의 동작의 일례에 불과하며, 많은 상이한 타입들의 실행 환경들, 데이터의 타입들, 도메인들의 타입들 등이 암호화프로세서와 함께 사용될 수 있다는 것을 인식해야 한다.
[0020] 암호화프로세서(220)의 키 테이블(224)의 키들(225)이 자주 실행 환경들에 의해 업데이트되고 인증될 필요가 있다. 예를 들어, 실행 환경 키의 소유자(202)는 종종, 키를 업데이트하고 인증할 것을 요청한다. 키(225)가 업데이트되고 인증될 때까지, 실행 환경 데이터 소유자(210)를 위한 데이터는 암호화되거나 또는 복호화될 수 없다. 그러나, 키들은, 공격자들이 키들에 대한 데이터를 획득하는 것을 방지하는 보안 방식으로 업데이트되고 인증될 필요가 있다.
[0021] 본 발명의 일 실시예에 따르면, 암호화프로세서(220)는, 키의 제 1 부분을 포함하는 제 1 워드를 기록하고; 그리고 키의 일 부분을 각각 포함하는 복수의 후속 워드들을 기록하고; 그리고 동일한 워드가 2회 이상 기록된 경우, 그리고 선택적으로, 워드가 비순차적으로 기록된 경우, 키가 리셋되도록 구성될 수 있다. 또한, 키의 일부가 기록되지 않았다면, 키가 인증될 수 없다. 또한, 워드가 이미 인증 키에 기록된 경우, 그 키가 리셋되고 연관된 메타데이터가 인증되지 않는다. 예를 들어, 업데이트된 또는 새로운 키가 실행 환경 키의 소유자(202)에 의해 요청될 수 있다. 동일한 워드가 2회 이상 기록되지 않는 경우, 그리고 선택적으로, 워드가 비순차적으로 기록된 경우, 암호화프로세서(220)는 키 인증 프로세스를 수행한다. 키 인증 프로세스의 부분으로서, 암호화프로세서(220)가, 키와 연관된 메타데이터(230)가 시스템 권한들을 만족하는지를 결정하고, 만족하는 경우, 키가 인증된다. 전술한 바와 같이, 연관된 메타데이터(230)는 하드웨어 사용 규칙들(227) 및 소프트웨어 사용 규칙들(229)과 같은 사용 규칙들을 포함한다. 키가 인증되면, 키(225) 및 연관 메타데이터(230)는 암호화프로세서(220)의 키 테이블(224)에 기록된다. 키(225)는 그 후, 특정 도메인에서 사용하기 위한 데이터 소유자(210)로부터 데이터를 암호화하고 복호화하는 암호화프로세서(220)에 의해 이용될 수 있다. 예로서, 관련 메타 데이터(230)(하드웨어 및 소프트웨어 사용 규칙들)가 (예를 들어, 비디오 프로세싱을 위한) 시스템 특권들을 만족하는 경우, 하드웨어 및 소프트웨어 사용 규칙들(227 및 229)과 함께, 키(225)가 인증되고 키 테이블(224)에 기록되어, 실행 환경 데이터의 소유자(210)가 암호화프로세서(220)를 활용하여 암호화 및 복호화를 위해 비디오 데이터를 활용할 수 있다. 일례로서, 비디오 데이터(246)가 복호화될 수 있고 디스플레이에서 보기 위해서 출력 도메인(250)에 출력된다.
[0022] 도 3a를 추가로 참고하면, 도 3a는 본 발명의 일 실시예에 따라, 키를 인증하거나 또는 인증하지 않는 방법 프로세스(300)의 예를 예시하는 흐름도이다. 블록(302)에서, 키의 제 1 부분을 포함하는 제 1 워드가 기록된다. 블록(304)에서, 키의 일 부분을 각각 포함하는 복수의 후속 워드들이 기록된다. 다음으로, 블록(306)에서, 프로세스(300)는, 동일한 워드가 2회 이상 기록되었는지 여부, 선택적으로, 워드가 비순차적으로 기록되었는지를 결정한다. 그러하다면, 블록(310)에서, 키가 리셋된다(즉, 인증되지 않는다). 그렇지 않은 경우, 프로세스(300)는 키 인증으로 진행한다. 키 인증 동안, 암호화프로세서(220)는, 키와 연관된 메타데이터가 시스템 권한들을 만족하는지를 결정하고, 만족하는 경우, 키가 인증된다. 전술한 바와 같이, 연관된 메타데이터는 하드웨어 사용 규칙들 및 소프트웨어 사용 규칙들과 같은 사용 규칙들을 포함한다. 키가 인증되면, 키(225) 및 연관 메타데이터(230)가 암호화프로세서(220)의 키 테이블(224)에 기록된다. 이 방식에서, 키(225)의 모든 각각의 비트 및 그의 연관된 메타데이터(230)가 모든 비트가 한번만 유일하게(once and only once) 기록된다는 것을 보장하며, 비트들 모두가 기준을 만족하지 않는 경우, 키(225)가 사용되지 않을 수 있다. 인증을 가정하면, 키(225)는 그 후, 특정 도메인으로 사용하기 위한 데이터 소유자(210)로부터 데이터를 암호화하고 복호화하는 암호화프로세서(220)에 의해 활용될 수 있다.
[0023] 도 3b를 추가로 참고하면, 도 3b는 본 발명의 일 실시예에 따라, 키를 인증하거나 또는 인증하지 않는 방법 프로세스(320)의 다른 예를 예시하는 흐름도이다. 블록(322)에서, 기록이, 키(225) 또는 메타데이터(230)로 요청된다. 결정 블록(324)에서, 프로세스(320)는, 워드가 이미 인증된 키에 기록되고 있는지 여부 또는 워드가 이미 기록되었는지 여부를 결정하며, 기록되었다면, 키가 리셋되고(블록 326), 프로세스(320)가 다시 시작한다(블록 322). 반면에, 워드가 아직 인증된 키에 기록되지 않고 있거나 또는 워드가 아직 기록되지 않은 것으로 결정된 경우, 키가 리셋되지 않고, 워드가 기록된다(블록 328). 다음으로, 결정 블록(330)에서, 프로세스(320)는, 모든 워드들이 기록되었는지를 결정하고, 기록되었다면, 프로세스는 키 인증으로 진행한다(블록 332). 모든 워드들이 기록되지 않은 경우, 프로세스(320)는 블록(322)으로 다시 진행한다.
[0024] 도 4를 추가로 참고하면, 도 4는, 본 발명의 일 실시예에 따른, 키를 인증하거나 또는 인증하지 않는 키 입력 상태 머신 프로세스(400)를 예시한다. 일 실시예에서, 암호화프로세서(220)에 의해 구현되는 키 입력 상태 머신(222)이 키 입력 상태 머신 프로세스(400)를 수행할 수 있다. 예를 들어, 업데이트된 또는 새로운 키 요청이 실행 환경 키 소유자(202)에 의해 요청될 수 있다. 도 4에서 알 수 있는 바와 같이, 키 입력 상태 머신 프로세스는, 상태가, 앰프티 상태(empty)이고 상태 값이 0으로 셋팅되는(V=0) 단계(402)에서 시작한다. 다음으로, 키의 제 1 워드 부분이 기록되고(Wr(addr=1)) 프로세스(400)가, 값이 1로 셋팅되는(V=1) 상태 1로 진행한다(404). 그러나, 키의 제 1 워드 부분이 적절히 기록되지 않은 경우(Wr(addr!=1)), 키가 리셋되고 프로세스(400)는 단계(402)로 다시 진행한다. 다음으로, 키의 제 2 워드 부분이 기록되고(Wr(addr=2)), 프로세스(400)는, 상태 값이 2로 셋팅되는(V=2) 상태 2로 진행한다(406). 그러나, 키의 제 2 워드 부분이 적절히 기록되지 않은 경우(Wr(addr!=2)), 키가 리셋되고 프로세스(400)는 단계(402)로 다시 진행한다. 유사하게, 다음으로, 키의 제 3 워드 부분이 기록되고(Wr(addr=3)) 프로세스(400)가, 상태 값이 3으로 셋팅되는(V=3) 상태 3으로 진행한다(408). 그러나, 키의 제 3 워드 부분이 적절히 기록되지 않은 경우(Wr(addr!=3)), 키가 리셋되고 프로세스(400)는 단계(402)로 다시 진행한다. 이 프로세스는, 도메인들이 체크되는 포인트들인 상태 10(420)이 반복된다.
[0025] 상태(420)에서, 도메인들이 체크된다. 이전에 설명된 바와 같이, 이러한 키 인증 프로세스 동안, 암호화프로세서(220)는, 키와 연관된 메타데이터(예를 들어, 하드웨어 및 소프트웨어 사용 규칙들)가 시스템 특권들 및 규칙들을 만족하는지를 결정한다. 시스템 특권들이 승인되는 경우, 이 키는 단계 430에서 인증된다. 시스템 특권들이 승인되지 않는 경우, 키가 리셋되고 프로세스(400)가 단계(402)로 다시 진행한다(예를 들어, 라인 431 참조). 또한, 이미 인증된 키(430)를 변경하려는 시도, 이를 테면, 인증된 키에 기록하려는 시도가 이루어지는 경우, 그 키는 무효가 되고, 전체 키가 재기록될 필요가 있다(예를 들어, 라인(432) 참고). 임의의 타입의 키의, 임의의 타입의 사이즈 및 임의의 타입의 알고리즘(예를 들어, DES, F8, F9, AES, 3DES, HMAC 등)이 사용될 수 있다는 것을 인식해야 한다.
[0026] 앞서 설명된 키 입력 상태 머신을 이용함으로써, 키 및 그의 메타데이터를 인증하는 프로세스(400)는 전체 키 정보의 기록이 올바른 순서가 되게 보장한다. 임의의 비순차적인 기록들 또는 2회 이상 기록되는 키의 부분들이, 상태 머신 프로세스가 시작 상태(402)(V=0)(예를 들어, 리셋 및 무효 상태)로 복귀하게 한다.
[0027] 그러나, 일부 실시예들에서, 비순차적인 타입의 실시(enforcement)가 요구되지 않는다는 것을 인식해야 한다. 이러한 타입의 실시예에서, 기록 순서가 모니터링되지 않는다. 대신에, 유일한 요건은 하나의 유일한 일 기록 동작일 수 있다. 예를 들어, 키의 제 1 부분을 포함하는 제 1 워드가 기록되고 키의 일 부분을 각각 포함하는 복수의 후속 워드들이 암호화프로세서(220)에 의해 기록된다. 이후, 암호화프로세서(220)는, 동일한 워드가 2회 이상 기록되었는지 여부를 결정하며, 2회 이상 기록되었다면, 키가 리셋된다(즉, 인증되지 않는다). 그렇지 않은 경우, 키 인증이 발생한다. 본 예에서, 기록 순서가 모니터링되지 않는다는 것을 인식해야 한다. 키 인증 동안, 암호화프로세서(220)는, 키와 연관된 메타데이터가 시스템 권한들을 만족하는지를 결정하고, 만족하는 경우, 키가 인증된다. 도 3a, 도 3b, 및 도 4의 상술된 프로세스들이 암호화프로세서(220)뿐만 아니라 매우 다양한 유사하거나 또는 상이한 프로세스들에 의해 구현될 수 있다는 것을 인식해야 한다. 앞서 설명된 방법들을 사용함으로써, 공격자가 키가 기록되고 있는 동일한 시각에 키 데이터를 변경하려고 시도할 경우, 그 결과, 키 입력 상태 머신 프로세스(400)가 키를 리셋하게 한다(상태 402). 또한, 일단 기록들의 시퀀스가 완료되면, 키 및 메타데이터가 인증 프로세스를 통과하며, 여기서 도메인들이 체크되고(단계 420), 도메인들이 정확한 경우에만, 키가 인증되고, 연관된 메타데이터 사용 규칙들(230)을 이용하여 키(225)로서 암호화프로세서(220)의 키 테이블(224)에 기록된다. 그렇지 않으면, 키가 인증되지 않고 리셋된다. 따라서, 인증된 키 정보 또는 그의 메타데이터를 변경하려는 어떠한 시도가 키를 무효화시킨다.
[0028] 다양한 타입들의 공격들이 방지될 수 있다는 것을 인식해야 한다. 예를 들어, 방지될 수 있는 일 타입의 공격은, (예를 들어, 도 4의 인증 단계들에서 알 수 있는 바와 같이) 키가 기록되고 있고 아직 인증되지 않은 동안 키를 변경하려는 시도이다. 이후, 암호화프로세서(220)는, 동일한 워드가 2회 이상 기록되었는지 여부를 결정하며, 2회 이상 기록되었다면, 키가 리셋되는 (즉, 인증되지 않는) 규칙들의 시행에 의해 이러한 타입의 공격이 방지될 수 있다. 방지될 수 있는 다른 타입의 공격이 이미 인증된 키를 변경하려고 시도한다. 앞서 설명된 바와 같이, 암호화프로세서(200)는, 이미 인증된 키를 변경하려는 시도가 이루어졌다는 것을 결정하는 경우, (예를 들어, 도 4의 단계(430) 및 라인(432)에 의해 알 수 있는 바와 같이) 키가 무효가 되고 리셋되고 재기록될 필요가 있다.
[0029] 이러한 타입들의 시행 규칙들은 키(225)와 그의 메타데이터(230) 사이에서 강한 결합을 제공하는 것으로 인식되어야 한다. 이러한 방식으로, 키(225) 및 그의 연관된 메타데이터(230)는 추가 보안을 위해 전반적으로 업데이트된다. 이러한 단계들은, 공격자가 키들에 대한 정보를 수집하기 매우 곤란하게 한다. 또한, 이러한 단계들은, 공격자가 키와 연관된 메타데이터를 수정하기 매우 곤란하게 한다.
[0030] 따라서, 암호화프로세서(220)가, 키의 부분들이 순서대로 기록되었고 키의 부분들이 2회 이상 기록되지 않았다는 것을 결정할 경우, 암호화프로세서(220)는, 키와 연관된 메타데이터(예를 들어, 하드웨어 및 소프트웨어 사용 규칙들)가 시스템 특권들을 만족하고 키가 인증되었다는 것을 결정한다. 앞서 설명되었지만, 집행의 비순차적인 타입들은 선택적이다. 또한, 전술한 바와 같이, 연관된 메타데이터(230)는 하드웨어 사용 규칙들(227) 및 소프트웨어 사용 규칙들(229)과 같은 사용 규칙들을 포함한다. 키가 인증되면, 키(225) 및 연관 메타데이터(230)는 암호화프로세서(220)의 키 테이블(224)에 기록된다. 키(225)는 그 후, 특정 도메인에서 사용하기 위한 데이터 소유자(210)로부터 데이터를 암호화하고 복호화하는 암호화프로세서(220)에 의해 이용될 수 있다. 예로서, 관련 메타 데이터(230)(하드웨어 및 소프트웨어 사용 규칙들)가 (예를 들어, 비디오 프로세싱을 위한) 시스템 특권들을 만족하는 경우, 하드웨어 및 소프트웨어 사용 규칙들(227 및 229)과 함께, 키(225)가 인증되고 키 테이블(224)에 기록되어, 실행 환경 데이터의 소유자(210)가 암호화 및 복호화를 한 비디오 데이터를 이용하기 위해 암호화프로세서(220)를 활용할 수 있다. 일례로서, 비디오 데이터(246)가 복호화될 수 있고 디스플레이에서 보기 위해서 출력 도메인(250)에 출력된다.
[0031] 앞서 설명된 본 발명의 양상들은, 상술된 바와 같이, 디바이스(예를 들어, 컴퓨팅 디바이스(100))의 프로세서들(예를 들어, 암호화프로세서(220))에 의한 명령들의 실행과 함께 구현될 수 있다는 것을 인식해야 한다. 특히, 프로세서들을 포함하지만 이에 한정되지 않는 디바이스들의 회로는, 본 발명의 실시예들(예를 들어, 도 3 및 도 4의 프로세스들 및 함수들)에 따른 방법이나 프로세스를 실행하기 위해, 명령의 실행, 루틴, 또는 프로그램의 제어 하에 동작할 수 있다. 예를 들어, 이러한 프로그램은, (예를 들어, 메모리 및/또는 다른 위치에 저장되는) 소프트웨어 또는 펌웨어로 구현될 수 있고, 프로세서들 및/또는 디바이스둘의 다른 회로에 의해 구현될 수 있다. 또한, 용어 프로세서, 마이크로프로세서, 회로, 제어기 등은 로직, 명령, 명령어, 소프트웨어, 펌웨어, 기능 등을 실행할 수 있는 임의의 타입의 로직 또는 회로를 지칭한다는 것이 이해되어야 한다.
[0032] 디바이스들이 모바일 또는 무선 디바이스들일 경우, 이들은 임의의 적절한 무선 통신 기술에 기초하거나 다른 방식으로 이러한 무선 기술들을 지원하는 무선 네트워크를 통해 하나 또는 그 초과의 무선 통신 링크들을 통해 통신할 수 있다는 것을 인식해야 한다. 예를 들어, 일부 양상들에서, 무선 디바이스 및 다른 디바이스들은, 무선 네트워크를 포함하는 네트워크와 연관될 수 있다. 일부 양태들에서, 네트워크는 바디 영역 네트워크 또는 개인 영역 네트워크(예를 들어, 울트라 광대역 네트워크)를 포함할 수 있다. 일부 양상들에서, 네트워크는 근거리 네트워크 또는 광역 네트워크를 포함할 수도 있다. 무선 디바이스는, 예를 들어, 3G, LTE, 어드밴스드 LTE, 4G, CDMA, TDMA, OFDM, OFDMA, WiMAX, 및 WiFi 같은 다양한 무선 통신 기술들, 프로토콜들 또는 표준들 중 하나 이상을 지지하거나 아니면 사용할 수 있다. 마찬가지로, 무선 디바이스는 다양한 대응하는 변조 또는 다중화 방식들 중 하나 이상을 지원하거나 아니면 사용할 수도 있다. 따라서, 무선 디바이스는 상기 무선 통신 기술 또는 다른 무선 통신 기술들을 이용하여 하나 이상의 무선 통신 링크들을 확립하고 이러한 링크들을 통해 통신하기 위해 적절한 컴포넌트들(예를 들어, 공중 인터페이스들)을 포함할 수 있다. 예를 들어, 디바이스는, 무선 매체를 통한 통신을 가능하게 하는 다양한 컴포넌트들(예를 들어, 신호 생성기들 및 신호 프로세서들)을 포함할 수 있는 연관된 송신기 및 수신기 컴포넌트들(예를 들어, 송신기 및 수신기)을 지닌 무선 트랜시버를 포함할 수 있다. 잘 알려진 바와 같이, 이동 무선 디바이스는 따라서 다른 모바일 디바이스들, 휴대폰들, 다른 유선 및 무선 컴퓨터들, 인터넷 웹 사이트들 등과 무선으로 통신할 수 있다.
[0033] 본 명세서의 교시들은 다양한 장치들(예를 들면, 디바이스들)로 통합(예를 들면, 이들 내에 구현되거나 이들에 의해 수행)될 수 있다. 예를 들어, 본원에 교시된 하나 또는 그 초과의 양상들은 전화기(예를 들어, 셀룰러 폰), 개인 휴대 정보 단말기("PDA"), 태블릿, 모바일 컴퓨터, 랩탑 컴퓨터, 엔터테인먼트 디바이스(예를 들어, 음악 또는 비디오 디바이스), 헤드셋(예를 들어, 헤드폰들, 이어피스 등), 의료 디바이스(예를 들어, 생체 인식 센서, 심박수 모니터, 보수계, EKG 디바이스 등), 사용자 I/O 디바이스, 컴퓨터, 유선 컴퓨터, 고정 컴퓨터, 데스크탑 컴퓨터, 서버, 판매시점 디바이스, 셋탑 박스, 또는 임의의 다른 적절한 디바이스에 포함될 수 있다. 이러한 디바이스들은 상이한 전력 및 데이터 요건들을 구비할 수 있다.
[0034] 일부 양상들에서, 무선 디바이스는 통신 시스템을 위한 액세스 장치(예를 들어, Wi-Fi 액세스 포인트)를 포함할 수 있다. 이러한 액세스 디바이스는, 유선 또는 무선 통신 링크를 통해, 예를 들어, 다른 네트워크(예를 들어, 광역 네트워크, 이를테면, 인터넷 또는 셀룰러 네트워크)에 대한 접속을 제공할 수 있다. 따라서, 액세스 디바이스는, 다른 디바이스(예를 들어, WiFi 스테이션)가 다른 네트워크 또는 일부 다른 기능에 액세스할 수 있게 한다.
[0035] 해당 기술분야에서 통상의 지식을 가진 자들은, 정보 및 신호들이 다양한 다른 기술들 및 기법들 중 임의의 것을 이용하여 표현될 수 있다고 이해할 것이다. 예를 들어, 전술한 설명을 통해 참조될 수 있는 데이터, 명령들, 코멘드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장 또는 입자들, 광학장 또는 입자들, 또는 이들의 임의의 조합으로 표현될 수 있다.
[0036] 본원에 개시된 실시예와 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은, 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 조합으로 구현될 수 있다는 것을 당업자는 추가로 인식한다. 하드웨어와 소프트웨어의 상호 교환 가능성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 이들의 기능성의 관점에서 일반적으로 상술되었다. 이러한 기능이 하드웨어로 구현되는지 아니면 소프트웨어로 구현되는지는 전체 시스템에 부과된 설계 제약들 및 특정 애플리케이션에 좌우된다. 당업자들은 각각의 특정 애플리케이션에 대해 다양한 방식들로 설명된 기능을 구현할 수 있지만, 이러한 구현 결정들이 본 발명의 범위를 벗어나게 하는 것으로 해석되어서는 안 된다.
[0037] 본 명세서에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들 및 회로들은 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC: application specific integrated circuit), 필드 프로그래밍 가능 게이트 어레이(FPGA) 또는 다른 프로그래밍 가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에서 설명된 기능들을 수행하도록 설계된 이들의 임의의 결합으로 구현되거나 이들에 의해 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 연결된 하나 또는 그 초과의 마이크로프로세서들 또는 임의의 다른 이러한 구성으로서 구현될 수 있다.
[0038] 본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 직접 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이 둘의 결합으로 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 이동식 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록 프로세서에 결합된다. 대안으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC은 사용자 단말에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 단말에 개별 컴포넌트로서 상주할 수 있다.
[0039] 하나 또는 그 초과의 예시적인 구현들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현 될 수 있다. 컴퓨터 프로그램 물건으로서 소프트웨어로 구현되는 경우, 기능들은 하나 이상의 명령들 또는 코드로서 비-일시적인 매체와 같은 컴퓨터 판독가능 매체 상에 저장되거나 이로서 전송될 수 있다. 컴퓨터 판독 가능 매체는 한 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 가능하게 하는 임의의 매체를 포함하는 통신 매체와 컴퓨터 저장 매체를 모두 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 한정이 아닌 예시로, 이러한 컴퓨터 판독 가능 매체는 RAM, ROM, EEPROM, CD-ROM이나 다른 광 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 명령들이나 데이터 구조들의 형태로 원하는 프로그램 코드를 전달 또는 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스 가능한 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독 가능 매체로 적절히 일컬어진다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 라인(DSL), 또는 적외선, 라디오, 및 마이크로웨이브와 같은 무선 기술들을 이용하여 전송되는 경우, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술들이 매체의 정의에 포함된다. 여기서 사용되는 디스크(disk 및 disc)는 컴팩트 disc(CD), 레이저 disc, 광 disc, 디지털 다기능 disc(DVD), 플로피 disk 및 블루-레이 disc를 포함하며, 여기서 디스크(disk)들은 대개 데이터를 자기적으로 재생하지만, 디스크(disc)들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 상기의 조합은 또한 컴퓨터-판독 가능 매체의 범위 내에 포함되어야 한다.
[0040] 개시된 실시예들의 상기의 설명은 해당 기술분야에서 통상의 지식을 가진 임의의 자가 본 발명을 이용하거나 실시할 수 있게 하도록 제공된다. 이러한 실시예들에 대한 다양한 변형들이 해당 기술분야에서 통상의 지식을 가진 자들에게 쉽게 명백할 것이며, 본원에 정의되는 일반 원리들은 본 개시의 사상 또는 범위를 벗어나지 않으면서 다른 실시예들에 적용될 수 있다. 그러므로 본 발명은 본 명세서에 도시된 실시예들로 한정되는 것으로 의도되는 것이 아니라, 본 명세서에 개시된 원리들 및 신규한 특징들에 부합하는 가장 넓은 범위에 따르는 것이다.

Claims (30)

  1. 컴퓨팅 디바이스로서,
    키(key)의 제 1 워드 부분을 기록하고 ― 상기 키는 복수의 워드 부분들을 포함함 ―; 그리고
    상기 키의 복수의 후속 워드 부분들을 기록하도록 구성되는 하드웨어 암호화프로세서를 포함하고,
    상기 키의 동일한 워드 부분이 2회 이상 기록되는 경우, 상기 키가 리셋되고, 그리고 상기 키가 인증되는 경우, 상기 하드웨어 암호화프로세서가 데이터를 암호화(encrypt) 및 복호화(decrypt)하기 위해 상기 키를 활용하는, 컴퓨팅 디바이스.
  2. 제 1 항에 있어서,
    상기 키의 워드 부분이 비순차적으로 기록되는 경우, 상기 키가 리셋되는, 컴퓨팅 디바이스.
  3. 제 1 항에 있어서,
    상기 키의 워드 부분이 키 테이블 내의 이미 인증된 키에 기록되는 경우, 상기 이미 인증된 키는 리셋되고 그리고 연관된 메타데이터가 무효화되는, 컴퓨팅 디바이스.
  4. 제 2 항에 있어서,
    상기 키의 동일한 워드 부분이 2회 이상 기록되지 않고 그리고 상기 키의 워드 부분이 비순차적으로 기록되지 않은 경우, 상기 하드웨어 암호화프로세서는 키 인증 프로세스를 수행하는, 컴퓨팅 디바이스.
  5. 제 4 항에 있어서,
    상기 키 인증 프로세스에서, 상기 하드웨어 암호화프로세서는, 상기 키와 연관된 메타데이터가 시스템 특권들을 만족하는지를 결정하고, 만족하는 경우, 상기 키가 인증되는, 컴퓨팅 디바이스.
  6. 제 5 항에 있어서,
    상기 연관된 메타데이터는 사용 규칙들을 포함하는, 컴퓨팅 디바이스.
  7. 제 6 항에 있어서,
    상기 사용 규칙들은 하드웨어 사용 규칙들 및 소프트웨어 사용 규칙들을 포함하는, 컴퓨팅 디바이스.
  8. 제 5 항에 있어서,
    상기 키가 인증되는 경우, 상기 키 및 상기 연관된 메타데이터가 키 테이블에 기록되는, 컴퓨팅 디바이스.
  9. 제 1 항에 있어서,
    상기 하드웨어 암호화프로세서는 상기 키의 상기 복수의 워드 부분들을 기록하도록 키 입력 상태 머신을 구현하는, 컴퓨팅 디바이스.
  10. 키를 인증하는 방법으로서,
    키의 제 1 워드 부분을 기록하는 단계 ― 상기 키는 복수의 워드 부분들을 포함함 ―; 및
    상기 키의 복수의 후속 워드 부분들을 기록하는 단계를 포함하고,
    상기 키의 동일한 워드 부분이 2회 이상 기록되는 경우, 상기 키가 리셋되고, 그리고 상기 키가 인증되는 경우, 하드웨어 암호화프로세서가 데이터를 암호화 및 복호화하기 위해 상기 키를 활용하는, 키를 인증하는 방법.
  11. 제 10 항에 있어서,
    상기 키의 워드 부분이 비순차적으로 기록되는 경우, 상기 키가 리셋되는, 키를 인증하는 방법.
  12. 제 10 항에 있어서,
    상기 키의 워드 부분이 키 테이블 내의 이미 인증된 키에 기록되는 경우, 상기 이미 인증된 키는 리셋되고 그리고 연관된 메타데이터가 무효화되는, 키를 인증하는 방법.
  13. 제 11 항에 있어서,
    상기 키의 동일한 워드 부분이 2회 이상 기록되지 않고 그리고 상기 키의 워드 부분이 비순차적으로 기록되지 않은 경우, 키 인증 프로세스를 수행하는 단계를 더 포함하는, 키를 인증하는 방법.
  14. 제 13 항에 있어서,
    상기 키 인증 프로세스는, 상기 키와 연관된 메타데이터가 시스템 특권들을 만족하는지를 결정하는 단계, 및 만족하는 경우, 상기 키를 인증하는 단계를 더 포함하는, 키를 인증하는 방법.
  15. 제 14 항에 있어서,
    상기 연관된 메타데이터는 사용 규칙들을 포함하는, 키를 인증하는 방법.
  16. 제 15 항에 있어서,
    상기 사용 규칙들은 하드웨어 사용 규칙들 및 소프트웨어 사용 규칙들을 포함하는, 키를 인증하는 방법.
  17. 제 14 항에 있어서,
    상기 키가 인증되는 경우, 상기 키 및 상기 연관된 메타데이터를 키 테이블에 기록하는 단계를 더 포함하는, 키를 인증하는 방법.
  18. 코드를 포함하는 비일시적 컴퓨터-판독가능 저장 매체로서,
    상기 코드는, 하드웨어 암호화프로세서에 의해 실행되는 경우, 상기 하드웨어 암호화프로세서로 하여금,
    키의 제 1 워드 부분을 기록하게 하고 ― 상기 키는 복수의 워드 부분들을 포함함 ―; 그리고
    상기 키의 복수의 후속 워드 부분들을 기록하게 하고,
    상기 키의 동일한 워드 부분이 2회 이상 기록되는 경우, 상기 키가 리셋되고, 그리고 상기 키가 인증되는 경우, 상기 하드웨어 암호화프로세서가 데이터를 암호화 및 복호화하기 위해 상기 키를 활용하는, 비일시적 컴퓨터-판독가능 저장 매체.
  19. 제 18 항에 있어서,
    상기 키의 워드 부분이 비순차적으로 기록되는 경우, 상기 키가 리셋되는, 비일시적 컴퓨터-판독가능 저장 매체.
  20. 제 19 항에 있어서,
    상기 키의 동일한 워드 부분이 2회 이상 기록되지 않고 그리고 상기 키의 워드 부분이 비순차적으로 기록되지 않은 경우, 키 인증 프로세스를 수행하기 위한 코드를 더 포함하는, 비일시적 컴퓨터-판독가능 저장 매체.
  21. 제 20 항에 있어서,
    상기 키 인증 프로세스는, 상기 키와 연관된 메타데이터가 시스템 특권들을 만족하는지를 결정하기 위한 코드를 더 포함하고, 만족하는 경우, 상기 키를 인증하는, 비일시적 컴퓨터-판독가능 저장 매체.
  22. 제 21 항에 있어서,
    상기 연관된 메타데이터는 사용 규칙들을 포함하는, 비일시적 컴퓨터-판독가능 저장 매체.
  23. 제 22 항에 있어서,
    상기 사용 규칙들은 하드웨어 사용 규칙들 및 소프트웨어 사용 규칙들을 포함하는, 비일시적 컴퓨터-판독가능 저장 매체.
  24. 제 21 항에 있어서,
    상기 키가 인증되는 경우, 상기 키 및 상기 연관된 메타데이터를 키 테이블에 기록하기 위한 코드를 더 포함하는, 비일시적 컴퓨터-판독가능 저장 매체.
  25. 하드웨어 암호화프로세서 수단을 포함하는 컴퓨팅 디바이스로서,
    키의 제 1 워드 부분을 기록하기 위한 수단 ― 상기 키는 복수의 워드 부분들을 포함함 ―; 및
    상기 키의 복수의 후속 워드 부분들을 기록하기 위한 수단을 더 포함하고,
    상기 키의 동일한 워드 부분이 2회 이상 기록되는 경우, 상기 키가 리셋되고, 그리고 상기 키가 인증되는 경우, 상기 하드웨어 암호화프로세서 수단이 데이터를 암호화 및 복호화하기 위해 상기 키를 활용하는, 컴퓨팅 디바이스.
  26. 제 25 항에 있어서,
    상기 키의 워드 부분이 비순차적으로 기록되는 경우, 상기 키가 리셋되는, 컴퓨팅 디바이스.
  27. 제 26 항에 있어서,
    상기 키의 동일한 워드 부분이 2회 이상 기록되지 않고 그리고 상기 키의 워드 부분이 비순차적으로 기록되지 않은 경우, 키 인증 프로세스를 수행하기 위한 수단을 더 포함하는, 컴퓨팅 디바이스.
  28. 제 27 항에 있어서,
    상기 키와 연관된 메타데이터가 시스템 특권들을 만족하는지를 결정하기 위한 수단을 더 포함하고, 만족하는 경우, 상기 키가 인증되는, 컴퓨팅 디바이스.
  29. 제 28 항에 있어서,
    상기 연관된 메타데이터는 사용 규칙들을 포함하는, 컴퓨팅 디바이스.
  30. 제 29 항에 있어서,
    상기 사용 규칙들은 하드웨어 사용 규칙들 및 소프트웨어 사용 규칙들을 포함하는, 컴퓨팅 디바이스.
KR1020167024724A 2014-03-20 2015-02-27 키 조작에 대한 보호 KR101776845B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/220,937 US9607178B2 (en) 2014-03-20 2014-03-20 Protection against key tampering
US14/220,937 2014-03-20
PCT/US2015/018173 WO2015183358A2 (en) 2014-03-20 2015-02-27 Protection against key tampering

Publications (2)

Publication Number Publication Date
KR20160135189A KR20160135189A (ko) 2016-11-25
KR101776845B1 true KR101776845B1 (ko) 2017-09-08

Family

ID=54105965

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167024724A KR101776845B1 (ko) 2014-03-20 2015-02-27 키 조작에 대한 보호

Country Status (6)

Country Link
US (1) US9607178B2 (ko)
EP (1) EP3120492B1 (ko)
JP (1) JP2017510184A (ko)
KR (1) KR101776845B1 (ko)
CN (1) CN106062772B (ko)
WO (1) WO2015183358A2 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090060197A1 (en) 2007-08-31 2009-03-05 Exegy Incorporated Method and Apparatus for Hardware-Accelerated Encryption/Decryption
US20120272303A1 (en) 2010-01-20 2012-10-25 Zte Corporation Method and device for enhancing security of user security model

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151624A (en) * 1998-02-03 2000-11-21 Realnames Corporation Navigating network resources based on metadata
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6785677B1 (en) * 2001-05-02 2004-08-31 Unisys Corporation Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector
CN1180351C (zh) * 2001-12-10 2004-12-15 中国科学院软件研究所 强化错乱的分组密码加密方法
US6763426B1 (en) * 2001-12-27 2004-07-13 Cypress Semiconductor Corporation Cascadable content addressable memory (CAM) device and architecture
DE60301782T2 (de) * 2002-08-01 2006-05-24 Matsushita Electric Industrial Co., Ltd., Kadoma Apparate und verfahren zum entschüsseln von verschlüsselten datenblöcken und zum lokalisieren der verschlüsselten datenblöcke im für die ausführung verwendeten speicherbereich
JP4475894B2 (ja) * 2002-08-01 2010-06-09 パナソニック株式会社 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法
US8220047B1 (en) * 2006-08-09 2012-07-10 Google Inc. Anti-phishing system and method
US9767319B2 (en) * 2007-04-17 2017-09-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus of secure authentication for system on chip (SoC)
US8196197B2 (en) * 2007-11-20 2012-06-05 International Business Machines Corporation Preventing trivial character combinations
JP2011039728A (ja) * 2009-08-10 2011-02-24 Nippon Telegr & Teleph Corp <Ntt> データ記憶装置、データ記憶システム、データ書き込み方法およびデータ読み出し方法
GB2461422B (en) * 2009-09-01 2010-12-08 Postalguard Ltd Method for Detecting and Blocking Phishing Attacks
US20120131169A1 (en) * 2010-11-24 2012-05-24 Timofei Adamovich Mouraveiko System and method for controlling an un-addressable network appliance
LT2461265T (lt) 2010-12-03 2019-08-12 Novomatic Ag Slaptųjų duomenų tvarkymo įrenginys ir būdas
FR2969787B1 (fr) 2010-12-24 2013-01-18 Morpho Protection des applets
WO2012127266A1 (en) 2011-03-23 2012-09-27 Sandisk Il Ltd. Storage device and method for updating data in a partition of the storage device
GB2494391B (en) 2011-09-02 2014-06-18 Avecto Ltd Computer device with anti-tamper resource security
KR101975027B1 (ko) * 2012-05-04 2019-05-03 삼성전자주식회사 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090060197A1 (en) 2007-08-31 2009-03-05 Exegy Incorporated Method and Apparatus for Hardware-Accelerated Encryption/Decryption
US20120272303A1 (en) 2010-01-20 2012-10-25 Zte Corporation Method and device for enhancing security of user security model

Also Published As

Publication number Publication date
CN106062772B (zh) 2019-01-18
WO2015183358A3 (en) 2016-01-21
US9607178B2 (en) 2017-03-28
KR20160135189A (ko) 2016-11-25
US20150269385A1 (en) 2015-09-24
JP2017510184A (ja) 2017-04-06
EP3120492B1 (en) 2018-01-31
CN106062772A (zh) 2016-10-26
EP3120492A2 (en) 2017-01-25
WO2015183358A2 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
US10223289B2 (en) Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management
US8997230B1 (en) Hierarchical data security measures for a mobile device
KR100678927B1 (ko) 비보안 영역에 보안 영역을 할당하는 방법 및 이를제공하는 휴대용 저장 장치
US9607177B2 (en) Method for securing content in dynamically allocated memory using different domain-specific keys
US9769654B2 (en) Method of implementing a right over a content
KR20150041095A (ko) 선택적 ram 스크램블링을 위한 방법 및 디바이스들
US10027640B2 (en) Secure data re-encryption
EP1836709A1 (en) Method and portable storage device for allocating secure area in insecure area
WO2009073863A1 (en) Secure software download
US20120096281A1 (en) Selective storage encryption
EP3059897B1 (en) Methods and devices for authentication and key exchange
TW201530344A (zh) 應用程式存取保護方法及應用程式存取保護裝置
US20150227755A1 (en) Encryption and decryption methods of a mobile storage on a file-by-file basis
KR101473656B1 (ko) 모바일 데이터 보안 장치 및 방법
KR20130050696A (ko) 메모리 시스템
US7694154B2 (en) Method and apparatus for securely executing a background process
KR101776845B1 (ko) 키 조작에 대한 보호
EP3155821B1 (en) Video content tracking
JP2018517921A (ja) ファイルセグメントを並列に解読するための装置および方法
KR20200106311A (ko) 블록체인을 이용한 콘텐츠 관리 방법 및 시스템
KR101668995B1 (ko) 암호화 장치 및 이를 이용한 보안 인증 시스템과 방법
US20160239669A1 (en) User Terminal And Method For Protecting Core Codes Of Applications Using The Same
US20130103953A1 (en) Apparatus and method for encrypting hard disk
JP2007043345A (ja) 通信装置およびそれにおける処理方法
KR20130049542A (ko) 메모리 소자 및 이를 포함하는 메모리 시스템

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant