KR102407066B1 - 집적 회로를 위한 상이한 엔티티들의 특권들의 관리 - Google Patents

집적 회로를 위한 상이한 엔티티들의 특권들의 관리 Download PDF

Info

Publication number
KR102407066B1
KR102407066B1 KR1020177007056A KR20177007056A KR102407066B1 KR 102407066 B1 KR102407066 B1 KR 102407066B1 KR 1020177007056 A KR1020177007056 A KR 1020177007056A KR 20177007056 A KR20177007056 A KR 20177007056A KR 102407066 B1 KR102407066 B1 KR 102407066B1
Authority
KR
South Korea
Prior art keywords
entity
privileges
integrated circuit
memory
assigned
Prior art date
Application number
KR1020177007056A
Other languages
English (en)
Other versions
KR20170056551A (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 KR1020227018476A priority Critical patent/KR102604892B1/ko
Publication of KR20170056551A publication Critical patent/KR20170056551A/ko
Application granted granted Critical
Publication of KR102407066B1 publication Critical patent/KR102407066B1/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
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting 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 application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)

Abstract

제 1 엔티티에 할당된 하나 이상의 특권들과 연관된 요청이 수신될 수도 있다. 하나 이상의 특권들의 각각은 집적 회로의 동작에 대응할 수도 있다. 집적 회로와 연관된 메모리에 저장되고 제 1 엔티티에 대응하는 정보가 식별될 수도 있다. 또한, 메모리는 제 1 엔티티에 할당된 하나 이상의 특권들과 연관된 요청에 응답하여 집적 회로와 연관된 메모리에 저장된 정보를 수정하도록 프로그래밍될 수도 있다.

Description

집적 회로를 위한 상이한 엔티티들의 특권들의 관리{MANAGING PRIVILEGES OF DIFFERENT ENTITIES FOR AN INTEGRATED CIRCUIT}
본 개시물은 개시물의 다양한 구현들의 첨부 도면들로부터 그리고 하기에서 주어지는 상세한 설명으로부터 보다 충분히 이해될 것이다.
도 1 은 일부 실시형태들에 따른 보안 관리자를 포함하는 집적 회로의 일 예의 라이프사이클을 도시한다.
도 2 는 본 개시물의 일부 실시형태들에 따른 일 예의 보안 관리자의 블록 다이어그램이다.
도 3 은 일부 실시형태들에 따른 위임 엔티티에 특권을 할당하고 루트 엔티티에 할당된 특권을 철회하도록 메모리를 업데이트하기 위한 일 예의 방법의 플로우 다이어그램이다.
도 4 는 일부 실시형태들에 따른 일 예의 루트 엔티티 및 위임 엔티티 계층을 도시한다.
도 5 는 일부 실시형태들에 따른 상이한 엔티티들에 대해 특권들에 기초하여 메모리를 구성하기 위한 일 예의 방법의 플로우 다이어그램이다.
도 6a 는 일부 실시형태들에 따른 상이한 엔티티들의 특권들과 연관된 정보를 저장하는 일 예의 메모리의 다이어그램을 도시한다.
도 6b 는 일부 실시형태들에 따른 또 다른 위임 엔티티로의 특권들의 할당 후 상이한 엔티티들의 특권들과 연관된 정보를 저장하는 일 예의 메모리의 다이어그램을 도시한다.
도 6c 는 일부 실시형태들에 따른 루트 엔티티에 할당된 특권들의 철회 후 상이한 엔티티들의 특권들과 연관된 정보를 저장하는 일 예의 메모리의 다이어그램을 도시한다.
도 7 은 본 개시물의 일부 실시형태들에 따른 상이한 엔티티들로부터의 정보에 기초하여 집적 회로와 연관된 동작 또는 기능을 수행하기 위한 일 예의 방법의 플로우 다이어그램이다.
도 8 은 일부 실시형태들에 따른 보안 관리자를 포함한 일 예의 집적 회로의 블록 다이어그램이다.
도 9 는 일부 실시형태들에 따른 보안 관리자를 포함한 일 예의 시스템의 블록 다이어그램이다.
도 10 은 개시물의 일부 실시형태들이 동작할 수도 있는 컴퓨터 시스템의 일 실시형태의 블록 다이어그램이다.
삭제
본 개시물의 양태들은 집적 회로의 상이한 엔티티들의 특권들을 관리하는 것에 관련된다. 집적 회로는, 여러 경우에 집적 회로를 소유할 수도 있는 상이한 엔티티들에 할당되는 또는 할당될 집적 회로의 특권들을 관리하기 위해 보안 관리자를 포함할 수도 있다. 특권들은 집적 회로의 기능 또는 집적 회로의 동작의 성능으로의 액세스에 대응할 수도 있다. 예를 들어, 엔티티에 할당되었던 특권은 엔티티가 집적 회로의 특정 기능에 액세스하는지 또는 직접 회로에 의해 특정 동작을 수행하는지를 명시할 수도 있다. 집적 회로와 연관된 기능 또는 동작들의 예들은, 집적 회로의 소정의 하드웨어 능력들로의 액세스, 집적 회로의 디버그 또는 진단 상태들로의 액세스, 및 집적 회로와 연관된 메모리로의 기입을 포함하지만 이에 제한되지 않는다.
상이한 엔티티들은 집적 회로의 라이프사이클 전체에 걸쳐 상이한 시간들에서 집적 회로를 소유하거나 활용할 수도 있다. 예를 들어, 제 1 엔티티는 집적 회로를 제조하는 제조 엔티티일 수도 있다. 제 2 엔티티 (예를 들어, 칩 패키징 제공자) 는 제 1 엔티티로부터 집적 회로를 수신하고 그 집적 회로를 칩 패키지에서 사용할 수도 있다. 제 3 엔티티 (예를 들어, 디바이스 제조자) 는 제 2 엔티티로부터 칩 패키지를 수신하고 집적 회로를 포함하는 칩 패키지를 디바이스에 통합할 수도 있다. 따라서, 다중 엔티티들은 다양한 스테이지들에서 집적 회로를 활용하고 소유할 수도 있다. 엔티티들의 각각은 집적 회로의 적어도 일부 기능 또는 동작들에 액세스하는 것이 가능할 수도 있다.
엔티티들은 엔티티가 집적 회로의 특정 기능 또는 동작들에 액세스할 수도 있는지 여부 또는 집적 회로의 다른 기능 또는 동작들에 액세스하지 않을 수도 있는지 여부를 결정하는 특권들을 할당 받을 수도 있다. 특권들은 엔티티가 집적 회로의 기능 또는 동작에 액세스하기 위한 허가를 갖는지 여부를 지칭할 수도 있다. 집적 회로의 보안 관리자는 엔티티들로의 그러한 특권들의 할당을 관리하기 위해 사용될 수도 있다.
특정 엔티티는 루트 권한 또는 루트 엔티티일 수도 있다 (예를 들어, 집적 회로의 보안 관리자 컴포넌트를 관리하거나 구성하기 위한 권한과 연관되는 엔티티). 예를 들어, 집적 회로를 제조하는 제 1 엔티티는 루트 엔티티일 수도 있고 위임 엔티티들로서 지칭될 수도 있는 하나 이상의 다른 엔티티들에 특권들을 할당할 수도 있다. 따라서, 루트 엔티티는 집적 회로가 제조될 때 한번에 집적 회로의 보안 관리자를 프로그래밍하거나 구성할 수도 있다. 부가적으로, 루트 엔티티는 또한 하나 이상의 위임 엔티티들에 특권들을 할당하기 위해 나중에 보안 관리자를 구성할 수도 있다. 예를 들어, 루트 엔티티는 집적 회로의 모든 기능 또는 동작들에 액세스하기 위해 스스로 특권들을 할당할 수도 있고 집적 회로의 기능 또는 동작들의 서브 세트를 위임 엔티티에 할당할 수도 있다. 일부 실시형태들에서, 루트 권한 또는 루트 엔티티는 집적 회로를 설계하는 제 1 엔티티일 수도 있고, 위임 엔티티는 집적 회로를 제조하는 엔티티이다.
일부 실시형태들에서, 보안 관리자는 루트 엔티티 뿐만 아니라 위임 엔티티에 할당된 특권들에 대응하는 정보를 저장하기 위해 메모리와 연관될 수도 있다. 메모리는 집적 회로와 연관되는 일 회 프로그램가능 (OTP) 메모리일 수도 있지만, 이에 제한되지 않을 수도 있다. 메모리는 제조 시에 (예를 들어, 루트 엔티티에 의해) 프로그래밍될 수도 있고, 추가로 제조 후에 (예를 들어, 루트 엔티티 또는 위임 엔티티에 의해) 프로그래밍될 수도 있다. 따라서, 특권들은 집적 회로와 연관된 메모리의 프로그래밍에 의해 루트 엔티티 또는 위임 엔티티에 할당될 수도 있다. 일부 실시형태들에서, 보안 관리자는 메모리의 프로그래밍을 제어할 수도 있다.
이전에 기재된 바와 같이, 집적 회로는 집적 회로를 소유하거나 활용하는 상이한 엔티티들을 수반하는 다양한 스테이지들과 연관될 수도 있다. 따라서, 루트 엔티티는 먼저 집적 회로를 제조할 수도 있고, 제 2 엔티티는 루트 엔티티로부터 집적 회로를 수신할 수도 있으며, 제 3 엔티티는 특정 디바이스 또는 제품 내에 제 2 엔티티로부터의 집적 회로를 포함할 수도 있다. 루트 엔티티는 여전히 집적 회로의 기능 또는 동작들에 특권들을 할당 받을 수도 있는 한편 집적 회로는 제 3 엔티티를 소유한다. 그러한 시나리오에서, 루트 엔티티는 집적 회로를 더 이상 담당하지 않음에도 불구하고 집적 회로의 그러한 기능 또는 동작들에 액세스할 수도 있다.
일부 실시형태들에서, 보안 관리자는 하나 이상의 위임 엔티티들에 특권들을 할당하도록 구성될 수도 있는 한편, 또한 루트 엔티티에 할당되었던 특권들을 철회하도록 구성된다. 예를 들어, 보안 관리자는 루트 엔티티로부터의 요청에 응답하여 루트 엔티티와 연관된 특권들을 철회하기 위해서 뿐만 아니라 위임 엔티티에 특권들을 할당하도록 집적 회로와 연관된 메모리를 프로그래밍할 수도 있다.
도 1 은 보안 관리자를 포함한 집적 회로의 일 예의 라이프사이클 (100) 을 도시한다. 일반적으로, 라이프사이클 (100) 은 상이한 엔티티들을 수반하는 라이프사이클 (100) 의 다양한 스테이지들을 통해 보안 관리자 (160) 를 포함하는 집적 회로의 핸들링을 도시한다. 일부 실시형태들에서, 집적 회로의 보안 관리자 (160) 는 엔티티들과 연관된 특권들을 관리할 수도 있다.
도 1 에 나타낸 바와 같이, 라이프사이클 (100) 은 여러 경우들에서 집적 회로를 활용하는 다양한 엔티티들을 수반할 수도 있다. 예를 들어, 제 1 엔티티 (110) 는 보안 관리자 (160) 를 포함하는 집적 회로를 제조하거나 제작하는 제조 엔티티일 수도 있다. 일부 실시형태들에서, 보안 관리자 (160) 는 메모리 (예를 들어, OTP 메모리) 를 포함할 수도 있고, 또는 집적 회로가 보안 관리자 (160) 에 의해 관리되거나 부분적으로 관리되는 메모리를 포함할 수도 있다. 제 1 엔티티 (110) 는 집적 회로와 연관된 기능 또는 동작들을 액세스하기 위해 제 1 엔티티 (110) 에 대한 특권들을 포함하도록 메모리를 프로그래밍하기 위해 보안 관리자를 구성할 수도 있다. 그러한 특권들을 집적 회로의 제조 동안 메모리에 프로그래밍될 수도 있다. 제 1 엔티티 (110) 는 또한 루트 엔티티로서 지칭되고 집적 회로에 대한 루트 권한 특권들을 할당 받을 수도 있다. 일부 실시형태들에서, 루트 권한 특권들은 집적 회로와 연관된 기능 또는 동작들 전부로의 액세스를 허용하고 위임 엔티티들로의 기능 또는 동작들의 일부 또는 전부에 대한 특권들의 할당을 허용할 수도 있다. 라이프사이클 (100) 은 제 2 엔티티 (120) 를 포함할 수도 있다. 예를 들어, 제 2 엔티티 (120) 는 제 1 엔티티 (110) 로부터 집적 회로를 수신하고 보안 관리자 (160) 를 포함하는 집적 회로에 대해 반도체 패키지를 생성하는 반도체 칩 패키징 제공자일 수도 있다. 제 1 엔티티 (110) 는 제 2 엔티티 (120) 에 특권들을 할당하기 위해 집적 회로와 연관된 메모리를 프로그래밍하도록 보안 관리자 (160) 를 구성할 수도 있다. 예를 들어, 루트 엔티티 (예를 들어, 제 1 엔티티 (110)) 에 할당된 동작들 또는 기능의 서브세트와 연관된 특권들은 또한 제 2 엔티티 (120) 에 할당될 수도 있다. 따라서, 집적 회로의 메모리는 보안 관리자가 미리 1 엔티티 (110) 에 특권들을 할당 받은 후에 제 2 엔티티 (120) 에 특권들을 할당하기 위해 보안 관리자에 의해 프로그래밍될 수도 있다.
도 1 을 참조하면, 제 3 엔티티 (130) 는 제 2 엔티티로부터 집적 회로를 포함하는 반도체 패키지를 수신할 수도 있다. 예를 들어, 제 3 엔티티 (130) 는 전자 디바이스에 집적 회로를 통합하거나 포함하는 디바이스 제조자일 수도 있다. 제 3 엔티티는 집적 회로의 기능 또는 동작들과 연관된 특권들을 또한 할당 받을 수도 있다. 예를 들어, 제 1 엔티티 (110) 또는 제 2 엔티티 (120) 는 제 3 엔티티 (130) 에 소정의 특권들을 할당할 수도 있다. 부가적으로, 제 4 엔티티 (140) 은 집적 회로를 포함하는 전자 디바이스와 상호작용할 수도 있다. 예를 들어, 집적 회로는 셀룰러 폰 또는 다른 그러한 모바일 디바이스에 통합되는 통신 회로일 수도 있고 제 4 엔티티 (140) 는 셀룰러 폰에 의해 사용된 통신 서비스들에 대한 서비스 제공자의 타입일 수도 있다. 게다가, 제 5 엔티티 (150) 는 보안 관리자 (160) 를 포함하는 집적 회로를 통합하거나 포함하는 전자 디바이스의 최종 소유인 엔드 사용자일 수도 있다. 제 4 엔티티 (140) 는 또한 집적 회로의 메모리를 프로그래밍하기 위한 보안 관리자 (160) 의 구성에 의한 특권들을 할당 받을 수도 있다.
따라서, 집적 회로의 메모리는 제 1 엔티티 (110), 제 2 엔티티 (120), 제 3 엔티티 (130), 제 4 엔티티 (140), 및 제 5 엔티티 (150) 의 각각과 연관된 특권들을 저장할 수도 있다. 하지만, 라이프사이클 (100) 의 각각의 스테이지에서, 다양한 엔티티들에 할당된 특권들이 더 이상 필요하거나 요망되지 않을 수도 있다. 예를 들어, 전자 디바이스를 제조하는 제 3 엔티티 (130) 는 집적 회로를 제조하거나 제작하는 제 1 엔티티 (110) 또는 집적 회로를 포함하는 반도체 패키지를 생성하는 제 2 엔티티 (120) 가 집적 회로의 기능 또는 동작들에 대해 임의의 활성 특권들을 갖는 것을 바라지 않을 수도 있다. 이로써, 보안 관리자 (160) 는 제 3 엔티티 (예를 들어, 또 다른 위임 엔티티) 에 대한 특권들을 유지하면서 제 1 엔티티 (예를 들어, 루트 엔티티) 및 제 2 엔티티 (예를 들어, 위임 엔티티) 에 할당된 특권들을 철회하도록 구성될 수도 있다. 예를 들어, 메모리는 제 1 엔티티 (110) 및 제 2 엔티티 (120) 에 이전에 할당되었던 특권들을 효과적으로 제거하거나 소거하기 위해 프로그래밍될 수도 있다. 따라서, 집적 회로와 연관된 메모리는 라이프사이클 (100) 을 통해 집적 회로 진행들로서 엔티티들의 각각과 연관된 특권들을 철회하기 위해서 뿐만 아니라 각각의 엔티티와 연관된 특권들을 저장하기 위해 사용될 수도 있다.
도 2 는 일 예의 보안 관리자 (200) 의 블록 다이어그램이다. 일반적으로, 보안 관리자 (200) 는 도 1 의 보안 관리자 (160) 에 대응할 수도 있다. 일부 실시형태들에서, 보안 관리자 (200) 는 집적 회로의 메모리와 연관되거나 메모리를 통합할 수도 있다. 보안 관리자 (200) 는 집적 회로 또는 집적 회로의 일부에 의해 구현될 수도 있다.
도 2 에 나타낸 바와 같이, 보안 관리자 (200) 는 철회 신호 (210) 및 위임 신호 (220) 를 수신할 수도 있다. 일부 실시형태들에서, 보안 관리자 (200) 는 루트 엔티티에 특권들을 할당할 수도 있고 또는 보안 관리자 (200) 를 통합하는 집적 회로가 그러한 특권들을 포함하도록 제조될 수도 있다 (예를 들어, 메모리가 제조시 프로그래밍될 수도 있고 또는 집적 회로와 연관된 마스크가 사용될 수도 있다). 철회 신호 (210) 는 보안 관리자 (200) 가 루트 엔티티에 할당된 특권들을 철회하는 것을 명시할 수도 있다. 이로써, 철회 신호 (210) 를 수신하는 것에 응답하여, 보안 관리자 (200) 는 루트 엔티티에 이전에 할당되었던 특권들을 소거 또는 제거하기 위해 메모리 (예를 들어, OTP 메모리) 를 프로그래밍할 수도 있다. 위임 신호 (220) 는 하나 이상의 위임 엔티티들에 특권들을 할당할 수도 있다. 예를 들어, 위임 신호 (220) 는 위임 엔티티에 집적 회로와 연관된 기능 또는 동작들의 서브세트와 연관된 특권들을 할당하기 위해 루트 엔티티로부터 정보를 수신할 수도 있다. 일부 실시형태들에서, 위임 신호 (220) 는 또 다른 위임 엔티티에 집적 회로와 연관된 기능 또는 동작들의 추가 서브세트와 연관된 특권들을 할당하기 위해 위임 엔티티로부터 수신될 수도 있다.
보안 관리자 (200) 는 메모리 신호 (230) 및 커맨드 신호 (240) 를 출력할 수도 있다. 일부 실시형태들에서, 메모리 신호 (230) 는 보안 관리자 (200) 를 포함하는 집적 회로의 메모리를 프로그래밍할 수도 있다. 예를 들어, 메모리의 일부 또는 메모리의 전부가, 보안 관리자 (200) 만이 보안 관리자 (200) 에 배분되었던 메모리의 부분들 또는 메모리의 콘텐츠를 프로그래밍하거나 변경할 수도 있도록 보안 관리자 (200) 에 할당될 수도 있다. 일부 실시형태들에서, 보안 관리자 (200) 는 철회 신호 (210) 또는 위임 신호 (220) 중 어느 것을 수신하는 것에 응답하여 메모리 신호 (230) 를 출력할 수도 있다. 부가적으로, 커맨드 신호 (240) 는 요청 신호 (250) 로부터 수신된 유효 요청에 응답하여 동작을 수행하거나 기능으로의 액세스를 허용하기 위해 집적 회로에 대한 커맨드를 출력할 수도 있다. 예를 들어, 엔티티는 집적 회로의 기능 또는 동작에 액세스하도록 요청할 수도 있다. 요청을 수신하는 것에 응답하여, 요청 엔티티에 할당된 특권들이 검증될 수도 있다. 예를 들어, 요청 엔티티가 요청에 대응하는 특권들을 갖는지를 결정하기 위해 요청 엔티티에 할당된 특권들에 대응하는 메모리의 콘텐츠가 수신되고 검증될 수도 있다. 요청된 엔티티의 특권들이 검증되면, 커맨드 신호 (240) 가 집적 회로와 연관된 기능 또는 동작을 수행하기 위해 출력될 수도 있다. 하지만, 요청된 엔티티의 특권들이 검증되지 않으면, 커맨드 신호 (240) 가 집적 회로의 기능 또는 동작들이 액세스되어야 하는 것을 표시하지 않을 것이다.
도 3 은 위임 엔티티에 특권을 할당하기 위해 그리고 루트 엔티티에 할당된 특권을 철회하기 위해 메모리를 업데이트하거나 프로그래밍하기 위한 일 예의 방법 (300) 의 플로우 다이어그램이다. 일반적으로, 방법 (300) 은 하드웨어 (예를 들어, 프로세싱 디바이스, 회로, 전용 로직, 프로그램가능 로직, 마이크로코드, 디바이스의 하드웨어 등), 소프트웨어 (예를 들어, 프로세싱 디바이스 상에서 작동 또는 실행되는 명령들), 또는 이들의 조합을 포함할 수도 있는 프로세싱 로직에 의해 수행될 수도 있다. 일부 실시형태들에서, 방법 (300) 은 도 1 및 도 2 의 보안 관리자 (160) 및/또는 보안 관리자 (200) 에 의해 수행될 수도 있다.
도 3 에 나타낸 바와 같이, 방법 (300) 은 프로세싱 로직이 위임 엔티티에 하나 이상의 특권들을 위임하기 위한 요청을 수신하는 것으로 시작할 수도 있다 (블록 310). 예를 들어, 위임 엔티티에 집적 회로의 기능 또는 동작들의 서브세트에 대해 하나 이상의 특권들을 할당하는 것을 추구하는 루트 엔티티로부터 수신될 수도 있다. 루트 엔티티는 집적 회로의 제 1, 제 2, 및 제 3 기능 또는 동작에 특권들을 할당 받을 수도 있고 집적 회로의 제 2 또는 제 3 기능 또는 동작을 제외한 집적 회로의 제 1 기능 또는 동작에 액세스하기 위해 위임 엔티티에 특권들을 할당할 수도 있다. 집적 회로와 연관된 기능 또는 동작의 예들은, 집적 회로의 소정의 하드웨어 능력들을 인에이블하거나 디스에이블하고, 집적 회로의 성능 설정들 또는 다른 값들을 조정하고, 소정의 외부 인터페이스들의 사용을 허용하고, 동작의 소정의 모드들의 사용을 허용하고, 테스트 모드들 (예를 들어, 제어 진단 및 디버그 모드) 를 인에이블하거나 디스에이블하고, 특정 모드 또는 피처가 활성인 때에 대해 통제하는 능력, 집적 회로의 피처들의 소정의 구성 설정들의 값들을 조정하고, 하나 이상의 키 암호화 키들을 유도 및/또는 사용하고, 집적 회로에 의한 사용을 위한 키들을 암호화하고, 집적 회로의 컴포넌트들에 키들을 공급하고, 일반적으로 집적 회로의 구성을 조정하고, 집적 회로의 보안 관리자에 의해 액세스 가능한 상태 정보를 검사하고, 보안 관리자를 포함하는 인 필드 집적 회로에 대해 진단 활동을 수행하고, 프로세스 변동을 보상하기 위한 아날로그 회로들을 교정 또는 튜닝하고, 집적 회로를 포함하는 특정 제품 또는 디바이스에서 원하는 동작 주파수 및 입력 클록에 대한 PLL 을 구성하고, 라디오(들) 의 주파수 및 전력을 조정하고, 내부 열적 자동안전장치에 의해 강제된 제한들을 구성하고 (열 제한들은 상이한 제품들에서 사용된 패키징 및 냉각 솔루션에 기초하여 달라질 수도 있음), 배터리 충전 회로를 구성하는 능력 등을 포함하지만, 이에 제한되지 않는다. 따라서, 특권들은 집적 회로의 기능, 동작들, 또는 구성들에 대응할 수도 있다. 프로세싱 로직은 위임 엔티티에 위임되고 (즉, 할당되고 ) 있는 하나 이상의 특권들에 기초하여 메모리를 업데이트할 수도 있다 (블록 320). 예를 들어, 어느 특권들이 위임 엔티티에 할당되었는지 뿐만 아니라 위임 엔티티의 식별 정보를 포함하는 정보 또는 엔티티를 포함하도록 메모리를 프로그래밍할 수도 있다.
프로세싱 로직은 또한 루트 엔티티에 할당된 특권들을 철회하기 위한 요청을 수신할 수도 있다 (블록 330). 예를 들어, 요청은 루트 엔티티로부터 수신될 수도 있다. 일부 실시형태들에서, 루트 엔티티는 보안 관리자를 포함하는 집적 회로가 신규 엔티티에 전송된 후에 그러한 요청을 발행할 수도 있다. 동일하거나 대안적인 실시형태들에 있어서, 루트 엔티티는 공중 키 페어의 사설 키를 소유하는 엔티티일 수도 있으며, 여기서 공중 키는 집적 회로에 (예를 들어, 집적 회로의 제조자에게 제공된 마스크에 의해 정의된 바와 같은 회로 내에 또는 메모리에) 저장되고, 사설 키는 루트 엔티티를 식별하기 위해 제공된다. 프로세싱 로직은 또한 루트 엔티티에 할당된 특권들의 철회에 기초하여 메모리를 업데이트할 수도 있다 (블록 340). 예를 들어, 메모리는 루트 엔티티에 의한 특권들을 철회하기 위한 요청에 응답하여 루트 엔티티에 할당된 특권들을 제거 또는 소거하도록 프로그래밍될 수도 있다.
따라서, 집적 회로의 기능 또는 동작들과 연관된 특권들은 다양한 엔티티들에 할당될 수도 있고 또는 엔티티들에 할당된 기존 특권들이 집적 회로의 메모리를 프로그래밍하는 것에 의해 철회될 수도 있다. 따라서, 집적 회로는 특권들을 저장하기 위해 사용되고 집적 회로를 소유하는 엔티티들에서의 변화들을 반영하기 위해 업데이트되는 메모리를 포함한다.
도 4 는 일 예의 루트 엔티티 및 위임 엔티티 계층 (400) 을 도시한다. 일반적으로, 계층 (400) 은 루트 엔티티 및 다중 위임 엔티티들로의 특권들의 할당 및 특권들의 할당을 반영하기 위한 메모리의 프로그래밍을 도시한다. 계층 (400) 은 도 1 및/또는 도 2 의 보안 관리자 (160 또는 200) 에 의해 구현될 수도 있다.
도 4 에 나타낸 바와 같이, 계층 (400) 은 루트 엔티티 (410) 및 위임 엔티티들 (420, 430 및 440) 을 포함한다. 루트 엔티티는 루트 권한과 연관된 특권들을 할당 받을 수도 있다. 예를 들어, 집적 회로의 메모리는 루트 엔티티 (410) 에 할당된 특권들에 대응하는 메모리의 엔트리들 (411 및 412) 을 포함할 수도 있다. 엔트리들 (411 및 412) 은 루트 엔티티 (410) 가 집적 회로의 기능 또는 동작들과 연관된 제 1 특권 및 제 2 특권을 할당 받았던 것을 명시할 수도 있다. 그러한 특권들은 루트 엔티티에 의한 집적 회로의 모든 기능 또는 동작들로의 액세스를 포함할 수도 있다. 루트 엔티티 (410) 는 위임 엔티티 (420) 에 그리고 위임 엔티티 (430) 에 집적 회로의 기능 또는 동작들의 제 1 서브세트의 특권들을 할당하기 위한 요청을 발행할 수도 있다. 하지만, 일부 실시형태들에서, 루트 엔티티 (410) 는 위임 엔티티 (420) 및 위임 엔티티 (430) 에 집적 회로의 기능 또는 동작들의 상이한 서브세트들의 특권들을 할당할 수도 있다. 예를 들어, 집적 회로의 기능 또는 동작들의 제 1 서브세트에 대한 특권들은 엔트리들 (421 및 422) 을 갖는 메모리를 프로그래밍하는 것에 의해 위임 엔티티 (420) 에 할당될 수도 있고 집적 회로의 기능 또는 동작들의 제 2 서브세트에 대한 특권들은 엔트리들 (431 및 432) 을 갖는 메모리의 프로그래밍하는 것에 의해 위임 엔티티 (430) 에 할당될 수도 있다. 엔트리들 (411, 412, 421, 422, 431, 432, 441, 및 442) 는 동일한 메모리에 모두 프로그래밍될 수도 있다.
위임 엔티티에 할당된 특권들은 특권들에 할당되었던 위임 엔티티에 의해 또 다른 위임 엔티티에 추가로 또한 할당될 수도 있고 또는 특권들을 할당 받았던 위임 엔티티가 또 다른 위임 엔티티에 할당되고 있는 것이 방지될 수도 있다. 특권을 할당 받았던 위임 엔티티에 의해 또 다른 위임 엔티티에 추가로 할당될 수 없는 위임 엔티티에 할당된 특권은 단말기 위임으로서 지칭될 수도 있다. 예를 들어, 단말기 위임은 제 1 위임 엔티티로의 특권의 할당을 수반할 수도 있고, 여기서 제 1 위임 엔티티는 제 1 특권을 제 2 위임 엔티티에 할당하도록 허용되지 않을 수도 있다. 게다가, 또 다른 위임 엔티티에 추가로 할당될 수 있는 위임 엔티티에 할당되는 특권은 비단말기 위임으로서 지칭될 수도 있다. 일부 실시형태들에서, 위임 엔티티로의 특권의 비단말기 위임은 특권을 행사하는 (예를 들어, 특권에 대응하는 집적 회로의 기능 또는 동작에 액세스하는) 위임 엔티티를 초래할 수도 있지만 또 다른 위임 엔티티에 동일한 특권을 추가로 위임하거나 할당하지 않을 수도 있다.
도 4 를 참조하면, 루트 엔티티 (410) 는 단말기 위임을 통해 위임 엔티티 (430) 에 특권들을 할당할 수도 있다. 일부 실시형태들에서, 위임 엔티티 (430) 의 엔트리들 (431 및 432) 은 위임 엔티티 (430) 에 할당되었던 특권들이 위임 엔티티 (430) 에 의해 또 다른 위임 엔티티에 할당되지 않을 수도 있는 것을 식별할 수도 있다. 하지만, 루트 엔티티 (410) 는 비단말기 위임을 통해 위임 엔티티 (420) 에 특권들을 할당 받았을 수도 있고 엔트리들 (421 및 422) 은 위임 엔티티 (420) 가 위임 엔티티 (440) 와 같은 또 다른 엔티티에 특권들을 추가로 할당할 수도 있는 것을 표시할 수도 있다. 따라서, 집적 회로의 메모리의 엔트리들 (441 및 442) 은 위임 엔티티 (440) 에 할당된 특권들을 식별하기 위해 업데이트되거나 프로그래밍될 수도 있다.
일부 실시형태들에서, 특권들을 철회될 수도 있다. 예를 들어, 루트 엔티티 (410) 에 할당된 특권들이 철회될 수도 있다. 루트 엔티티 (410) 에 할당된 특권들의 철회에 응답하여, 메모리의 엔트리들 (411 및 412) 은 루트 엔티티 (410) 가 대응 특권들에 더 이상 할당되지 않는 것을 반영하기 위해 프로그래밍되거나 업데이트될 수도 있다. 특권들은 또한 일 엔티티로부터 다른 엔티티로 전송될 수도 있다. 그러한 액션은 전송 위임으로서 지칭될 수도 있다. 예를 들어, 위임 엔티티 (420) 에 할당되는 특권은 위임 엔티티 (440) 로 전송될 수도 있다. 그러한 경우, 위임 엔티티 (420) 에 대한 메모리의 엔트리는 위임 엔티티 (420) 가 더 이상이 전송된 특권을 할당 받지 않는 것을 반영하기 위해 프로그래밍되거나 업데이트될 수도 있고, 위임 엔티티 (440) 에 대한 메모리의 엔트리는 위임 엔티티 (440) 가 전송된 특권을 할당 받지 않았다는 것을 표시하기 위해 프로그래밍이되거나 업데이트될 수도 있다. 예를 들어, 엔트리들 (441 및 442) 은 위임 엔티티 (440) 에 대해 업데이트되고, 엔트리들 (421 및 422) 는 위임 엔티티 (420) 에 대해 업데이트될 수도 있다.
일부 실시형태들에서, 루트 엔티티 (410) 는 루트 부호 블록 (RSB) 을 생성할 수도 있고 위임 엔티티들 (420, 430, 및 440) 의 하나 이상의 위임 서명 블록 (DSB) 를 생성할 수도 있다. RSB 는 루트 엔티티에 의해 디지털로 서명되는 데이터 패킷일 수도 있다. 일부 실시형태들에서, RSB 는 보안 관리자에 의해 사용될, 루트 엔티티에 의해 하나 이상의 위임 엔티티들에 할당된 하나 이상의 커맨드들, 키들, 특권들, 또는 그 일부 조합을 포함할 수도 있다. DSB 는 위임 엔티티에 의해 디지털로 서명되는 데이터 패킷일 수도 있다. 일부 실시형태들에 있어서, DSB 는 RSB 에 포함되는 연관된 디지털 인증서를 갖는 디지털 엔티티에 의해 서명될 수도 있고, 보안 관리자에 의해 또한 사용될, DSB 를 디지털로 서명하는 위임 엔티티에 의해 하나 이상의 다른 위임 엔티티들에 할당된 하나 이상의 커맨드들, 키들, 특권들, 또는 그 일부 조합을 포함할 수도 있다. 일부 실시형태들에 있어서, RSB 및 DSB 는 다양한 엔티티들에 할당되는 특권들과 연관된 정보를 또한 저장하는 메모리에 저장될 수도 있다. RSB 는 하나 이상의 액션들 (예를 들어, 집적 회로의 기능 또는 동작의 액세싱) 을 수행하도록 집적 회로의 보안 관리자에게 지시할 수도 있다. 예를 들어, 루트 엔티티 (410) 는 RSB (예를 들어, 위임 메시지) 를 생성할 수도 있다. RSB 는 특권들의 세트가 다른 위임 엔티티들에 전달되거나 위임될 수도 있는 조건들 뿐만 아니라 위임 엔티티에 의해 행사될 수도 있는 특권들의 세트를 식별하는 정보를 포함할 수도 있다. DSB 는 위임 엔티티에 의해 생성될 수도 있고 RSB 와 협력하여 사용될 수도 있다. 예를 들어, DSB 는 RSB 또는 DSB 에 포함된 정보에 기초하여 하나 이상의 액션들을 수행하도록 보안 관리자에게 지시할 수도 있다. 예를 들어, 위임 엔티티로부터 요청을 수신할 때, 보안 관리자는 루트 엔티티 (410) 에 의해 생성되었던 RSB 에서의 정보를 검증하는 것에 의해 DSB 에 의해 특정된 하나 이상의 액션들을 실행할 수도 있다. 이로써, 보안 관리자가 액션을 수행하게 하기 위해서, 위임 엔티티는 DSB 및 RSB 를 제공할 수도 있고 보안 관리자는 요청된 액션이 DSB 및 RSB 에 기초하여 허가가능한 것을 검증할 수도 있다. 일 예로서, 위임 엔티티가 집적 회로의 기능 또는 동작에 액세스하고자 할 때, 위임 엔티티는 DSB 및 RSB 의 유효성을 검증할 수도 있는 보안 관리자에게 DSB 및 RSB 를 제공할 수도 있다. 게다가, 보안 관리자는 DSB 가 위임 엔티티가 액세스하고자 하는 기능 또는 동작에 대응하는 특권을 할당 받았던 것을 식별하는 정보를 포함하는 것을 검증할 수도 있고, 보안 관리자는 추가로, RSB 가 루트 엔티티가 위임 엔티티에 그러한 특권을 할당했다는 것을 식별하는 정보를 포함하는 것을 검증할 수도 있다. 따라서, 액션을 수행하기 위한 위임 엔티티에 대하여, 보안 관리자는 RSB 의 콘텐츠 뿐만 아니라 DSB 의 콘텐츠를 검증할 수도 있다. 예를 들어, 보안 관리자는 메모리 (예를 들어, 할당된 특권들과 연관된 정보를 저장하는 동일한 메모리) 로부터 RSB 및 DSB 를 취출하고 그 후 RSB 및 DSB 를 검증할 수도 있다.
이전에 논의된 바와 같이, 위임 엔티티는 또 다른 위임 엔티티에 (예를 들어, 전송 위임 또는 비단말기 위임을 통해) 특권을 할당할 수도 있다. 이로써, 루트 엔티티는 RSB 를 제공하고, 제 1 위임 엔티티는 제 1 DSB 를 제공하며, 제 2 위임 엔티티는 제 2 DSB 를 제공할 수도 있다. 보안 관리자는 제 2 DSB, 제 1 DSB, 및 RSB 를 수신하고, 제 2 위임 엔티티가 집적 회로의 기능 또는 동작에 액세스하고자 할 때 DSB들 및 RSB 의 각각의 콘텐츠를 검증할 수도 있다. 예를 들어, 보안 관리자는 제 2 위임이 제 2 DSB 를 사용하는 것에 의해 집적 회로의 기능 또는 동작에 대응하는 특권을 할당 받았다는 것을 먼저 검증할 수도 있고, 그 후 보안 관리자는 제 1 위임 엔티티가 제 1 DSB 를 사용하는 것에 의해 제 2 위임 엔티티에 대응 특권을 할당했다는 것을 검증할 수도 있으며, 그 후 보안 관리자는 루트 엔티티가 RSB 를 사용하는 것에 의해 제 1 위임 엔티티에 특권의 비단말 위임을 할당했다는 것을 검증할 수도 있다. 이로써, DSB 및 RSB들의 체인은 위임 엔티티가 비단말 위임을 통해 특권을 할당 받았을 때 사용될 수도 있다.
도 5 는 상이한 엔티티들에 대한 특권들에 기초하여 메모리를 프로그밍하기 위한 일 예의 방법 (500) 의 플로우 다이어그램이다. 일반적으로, 방법 (500) 은 하드웨어 (예를 들어, 프로세싱 디바이스, 회로, 전용 로직, 프로그램가능 로직, 마이크로코드, 디바이스의 하드웨어 등), 소프트웨어 (예를 들어, 프로세싱 디바이스 상에서 작동하거나 실행되는 명령들), 또는 그 조합을 포함할 수도 있는 프로세싱 로직에 의해 수행될 수도 있다. 일부 실시형태들에서, 방법 (500) 은 도 1 및/또는 도 2 의 보안 관리자 (160) 및 보안 관리자 (200) 에 의해 수행될 수도 있다.
도 5 에 나타낸 바와 같이, 방법 (500) 은 프로세싱 로직이 루트 엔티티에 특권들을 할당하기 위해 메모리를 프로그래밍하는 것으로 시작할 수도 있다 (블록 510). 예를 들어, 루트 엔티티는 루트 엔티티에 루트 권한 특권들을 할당하기 위한 요청을 송신할 수도 있다. 일부 실시형태들에서, 특권들의 그러한 할당은 보안 관리자를 포함하는 집적 회로의 제조 동안 또는 후에 발생할 수도 있다. 프로세싱 로직은 하나 이상의 위임 엔티티들에게 특권들을 할당하기 위한 요청을 루트 엔티티로부터 수신할 수도 있다 (블록 520). 예를 들어, 루트 엔티티는 단말기 위임 또는 비단말기 위임에 기초하여 위임 엔티티에 할당될 특권들을 요청할 수도 있다. 프로세싱 로직은 루트 엔티티로부터의 요청에 기초하여 하나 이상의 위임 엔티티들에 특권들을 할당하기 위해 메모리를 프로그래밍할 수도 있다 (블록 530). 예를 들어, 루트 엔티티에 특권들을 할당하기 위해 프로그래밍되는 동일한 메모리는 위임 엔티티들의 하나 이상에 특권들을 할당하기 위해 추가로 프로그래밍될 수도 있다. 프로세싱 로직은 루트 엔티티에 할당된 특권들을 철회하기 위한 요청을 루트 엔티티로부터 수신할 수도 있다 (블록 540). 예를 들어, 루트 엔티티 그 자체가 집적 회로와 연관된 보안 관리자에 그러한 요청을 송신할 수도 있다. 프로세싱 로직은 루트 엔티티에 할당된 특권들을 철회하기 위해 메모리를 프로그래밍할 수도 있다 (블록 550). 예를 들어, 철회 요청에 응답하여, 루트 엔티티에 할당된 특권들을 저장하기 위해 사용되는 동일한 메모리 및 하나 이상의 위임들은 루트 엔티티에 할당된 특권들이 소거되거나 제거되도록 프로그래밍될 수도 있다. 메모리에서의 그러한 특권들을 철회하는 것의 예들이 도 6a 내지 도 6c 를 참조하여 개시된다. 프로세싱 로직은 추가로 제 2 위임 엔티티에 특권들을 할당하기 위한 요청을 위임 엔티티로부터 수신할 수도 있다(블록 560). 그러한 요청에 응답하여, 프로세싱 로직은 제 1 위임 엔티티에 할당되었던 특권들 및 요청에 기초하여 제 2 위임 엔티티에 특권들을 할당하기 위해 메모리를 프로그래밍할 수도 있다 (블록 570). 예를 들어, 제 1 위임 엔티티가 제 2 위임 엔티티에 특권들을 할당하기 위해서, 프로세싱 로직은 제 1 위임 엔티티가 또 다른 엔티티에 특권을 할당하도록 허용되는 것 그리고 제 1 위임 엔티티가 그러한 특권을 할당 받았다는 것을 검증할 수도 있다. 예를 들어, 프로세싱 로직은 루트 엔티티가 제 1 위임 엔티티에 특권을 할당한 것 그리고 그 특권이 제 1 위임 엔티티가 특권을 할당 받았다는 것을 검증한 후에 비단말 위임인 것을 검증하기 위해 루트 엔티티에 의해 생성된 RSB 를 수신할 수도 있다.
도 6a 는 상이한 엔티티들의 특권들과 연관된 정보를 저장하는 일 예의 메모리 (600) 의 다이어그램을 도시한다. 일반적으로, 메모리 (600) 는 도 1 및/또는 도 2 의 보안 관리자 (160) 및 보안 관리자 (200) 과 연관될 수도 있다.
도 6a 에 나타낸 바와 같이, 메모리 (600) 는 엔티티들을 식별하는 컬럼 (601) 및 컬럼 (601) 의 엔티티들과 연관된 특권들을 식별하는 컬럼 (602) 을 포함할 수도 있다. 예를 들어, 메모리 (600) 는 루트 엔티티에 대응하는 제 1 엔트리, 제 1 위임 엔티티에 대응하는 제 2 엔트리, 및 제 3 위임 엔티티에 대응하는 제 3 엔트리를 포함할 수도 있다. 일부 실시형태들에서, 메모리 (600) 는 메모리의 비트의 프로그래밍 또는 설정이 단 한번만 수행될 수도 있는 1 회 프로그램가능 (OTP) 메모리일 수도 있다. 예를 들어, 비트가 프로그래밍되거나 구성되지 않으면, OTP 메모리의 비트의 값은 '0' 의 제 1 값에 있을 수도 있고, 비트가 프로그래밍되거나 구성되면, OTP 메모리의 비트의 값이 '1' 의 제 2 값일 수도 있다 (또는 그 역 또한 마찬가지이다). 일부 실시형태들에서, 특권에 대응하는 비트의 값이 프로그래밍되지 않은 비트와 연관되는 제 1 값 (예를 들어 '0' 의 값) 이면, 그 비트는 대응 엔티티가 대응 특권에 할당되었다는 것을 표시할 수도 있다. 예를 들어, 도 6a 에 나타낸 바와 같이, 루트 엔티티는 각각의 특권이 컬럼 (602) 의 단일 비트에 대응하는 4 개의 특권들을 할당 받을 수도 있다. 부가적으로, 제 1 위임 엔티티는 프로그래밍되지 않았던 제 1 비트에 기초하여 제 1 특권을 할당 받을 수도 있고 제 2 위임 엔티티는 제 1 특권 및 제 2 특권을 할당 받을 수도 있다.
도 6b 는 특권들의 또 다른 위임 엔티티로의 할당 후에 상이한 엔티티들의 특권들과 연관된 정보를 저장하는 일 예의 메모리 (610) 의 다이어그램을 도시한다. 일반적으로, 메모리 (610) 는 도 1 및/또는 도 2 의 보안 관리자 (160) 및 보안 관리자 (200) 와 연관될 수도 있다. 메모리 (610) 는 특권들의 또 다른 위임 엔티티로의 할당 후에 메모리 (600) 에 대응할 수도 있다.
도 6b 에 나타낸 바와 같이, 메모리 (610) 는 제 1 특권 및 제 2 특권에 할당되었던 제 3 위임 엔티티와 연관된 새로운 엔트리를 포함할 수도 있다. 일부 실시형태들에서, 루트 엔티티는 제 3 위임 엔티티에 제 1 및 제 2 특권들을 할당할 수도 있다. 하지만, 동일하거나 대안적인 실시형태들에서, 제 2 위임 엔티티에 할당된 특권들이 비단말기 위임과 연관되는 경우 제 2 위임 엔티티는 제 3 위임 엔티티에 제 1 및 제 2 특권을 할당했을 수도 있다. 보안 관리자는 제 2 위임 엔티티가 특권들을 다른 위임 엔티티에 할당하고자 할 때 RSB 및 DSB 의 콘텐츠를 검증할 수도 있다.
도 6c 는 루트 엔티티에 할당된 특권들의 철회 후에 상이한 엔티티들의 특권들과 연관된 정보를 저장하는 일 예의 메모리 (620) 의 다이어그램을 도시한다. 일반적으로, 메모리 (620) 는 도 1 및/또는 도 2 의 제 1 보안 관리자 (160) 및 제 2 보안 관리자 (200) 와 연관될 수도 있다. 메모리 (620) 는 루트 엔티티에 할당된 특권들의 철회 후에 메모리 (610) 에 대응할 수도 있다.
도 6c 에 나타낸 바와 같이, 메모리 (620) 는 루트 엔티티에 할당되었던 특권들을 소거하거나 철회하도록 프로그래밍될 수도 있다. 예를 들어, OTP 메모리의 각각의 비트는 특권이 루트 엔티티에 할당되지 않은 것을 표시하는 '1' 의 값으로 프로그래밍되거나 구성될 수도 있다. 따라서, 일부 실시형태들에서, 루트 엔티티의 특권들의 철회는 루트 엔티티의 특권들에 대응하는 OTP 메모리의 일부 또는 엔트리의 모든 비트들의 프로그래밍 또는 구성을 포함할 수도 있다. 예를 들어, 루트 엔티티에 할당된 특권들을 식별하는 OTP 메모리의 각각의 비트는 제 1 값으로부터 제 2 값으로 프로그래밍될 수도 있다. 일부 실시형태들에서, OTP 메모리의 특정 비트는 OTP 메모리의 비트와 연관된 퓨즈 또는 안티퓨즈의 사용에 기초하여 제 1 값으로부터 제 2 값으로 프로그래밍될 수도 있다. 일반적으로, OTP 메모리는 디지털 메모리의 타입일 수도 있으며, 여기서 OTP 메모리의 각각의 비트의 설정은 퓨즈 (예를 들어, 저저항과 연관되고 대응 비트의 프로그래밍 또는 설정 후에 전기 전도성 경로를 영구적으로 파괴하도록 설계된 전기 퓨즈) 또는 안티퓨즈 (예를 들어, 초기 고저항과 연관되고 대응 비트의 프로그래밍 또는 설정 후에 전기 전도성 경로를 영구적으로 생성하도록 설계된 전기 컴포넌트) 에 의해 록킹된다. 일 예로서, OTP 메모리의 각각의 비트는 '0' 의 초기 값으로 시작할 수도 있고 '1' 의 나중 값으로 프로그래밍되거나 설정될 수도 있다 (또는 그 역 또한 마찬가지). 따라서, OTP 메모리에 '10001' 의 값으로 키를 프로그래밍하거나 설정하기 위해서, OTP 메모리의 2 비트가 '0' 의 초기 값으로부터 '1' 의 나중 값으로 프로그래밍될 수도 있다. 일단 OTP 메모리의 2 비트가 '1' 의 나중 값으로 프로그래밍되면, 2 비트는 '0' 의 값으로 역 프로그래밍되지 않을 수도 있다.
도 6a 내지 도 6c 는 각각의 특권에 대응하는 비트 값으로서 엔티티들에 할당된 특권들에 대응하는 정보를 저장하는 메모리를 도시하지만, 메모리는 대안의 방식들로 특권들에 대응하는 정보를 저장할 수도 있다. 예를 들어, 특권들에 대응하는 정보의 해시 (hash) 값은 메모리에 저장될 수도 있고, 보안 관리자에 의해 액세스될 때, 특권들의 전체 리스트는 해시 값에 기초하여 결정될 수도 있다. 일부 실시형태들에서, 특권들에 대응하는 정보는 다중 비트들에 기초할 수도 있다. 예를 들어, 특권에 대응하는 제 1 비트는 특권이 특정 엔티티에 할당되었는지 여부를 표시할 수도 있고, 제 2 비트는 특권들이 다른 위임 엔티티에 위임되거나 할당될 수 있는지 여부를 표시할 수도 있다. 예를 들어, 제 1 비트는 위임 엔티티가 특정 특권에 할당되었다는 것을 표시하는 제 1 값에 있고, 제 2 비트는 위임 엔티티가 다른 위임 엔티티에 특정 특권을 할당할 수도 있다는 것을 표시하는 제 1 값에 있을 때, 그 후 위임 엔티티는 다른 위임 엔티티에 특권을 할당하도록 허용될 수도 있다. 하지만, 제 2 비트는 위임 엔티티가 특정 특권을 다른 위임 엔티티에 할당하지 않을 수도 있는 것을 표시하는 제 2 값에 있으면, 위임 엔티티는 특권을 다른 위임 엔티티에 할당하도록 허용되지 않을 수도 있다.
도 7 은 상이한 엔티티들로부터의 정보에 기초하여 집적 회로와 연관된 동작 또는 기능을 수행하기 위한 일 예의 방법 (700) 의 플로우 다이어그램이다. 일반적으로, 방법 (700) 은 하드웨어 (예를 들어, 프로세싱 디바이스, 회로, 전용 로직, 프로그램가능 로직, 마이크로코드, 디바이스의 하드웨어 등), 소프트웨어 (예를 들어, 프로세싱 디바이스 상에서 작동되거나 실행되는 명령들), 또는 이들의 조합을 포함할 수도 있는 프로세싱 로직에 의해 수행될 수도 있다. 일부 실시형태들에서, 방법 (700) 은 도 1 및 도 2 의 보안 관리자 (160) 및/또는 보안 관리자 (200) 에 의해 수행될 수도 있다.
도 7 에 나타낸 바와 같이, 방법 (700) 은 프로세싱 로직이 기능 또는 동작을 수행하기 위한 요청을 수신하는 것으로 시작할 수도 있다 (블록 710). 예를 들어, 요청된 기능 또는 동작은 집적 회로에 의해 수행될 기능 또는 동작과 연관될 수도 있다. 일부 실시형태들에서, 그러한 동작은 집적 회로와 연관된 메모리에 액세스하는 것 또는 디버그 상태에 진입하는 것을 포함할 수도 있지만, 이에 제한되지 않는다. 동일하거나 대안의 실시형태들에서, 동작 또는 기능은 디버그 또는 테스팅 목적들을 위해 언록 동작의 타입 (예를 들어, 집적 회로의 모든 동작들 또는 기능으로의 액세스를 허용) 일 수도 있다. 프로세싱 로직은 집적 회로와 연관된 동작 또는 기능을 수행하기 위한 요청에 응답하여 루트 및 위임 정보를 수신할 수도 있다 (블록 720). 예를 들어, 프로세싱 로직은 루트 엔티티 및 하나 이상의 위임 엔티티들의 특권들을 저장하는 것과 연관된 메모리 (예를 들어, 메모리 (600, 610 및/또는 620) 에 액세스할 수도 있다. 프로세싱 로직은 루트 및 위임 정보가 루트 엔티티 및 위임 엔티티들의 각각이 액세스될 집적 회로의 동작 또는 기능을 허용하는 것을 표시하는지를 결정할 수도 있다 (블록 730). 예를 들어, 루트 엔티티 및 각각의 위임 엔티티는, 루트 엔티티 및 위임 엔티티가 동작 또는 기능에 액세스하기 위한 후속 요청이 수신될 때 그러한 동작 또는 기능을 허용할 것을 표시하기 위해 메모리를 프로그래밍하도록 보안 관리자를 구성할 수도 있다. 일부 실시형태들에서, 메모리의 특정 비트는 대응 엔티티가 동작 또는 기능으로의 액세스를 허용할 것을 표시하기 위해 제 1 값으로부터 제 2 값으로 비트를 프로그래밍하거나 구성하기 위해 각각의 엔티티에 대해 예약될 수도 있다. 예를 들어, 제 1 엔티티는 메모리의 제 1 비트를 프로그래밍할 수도 있고 제 2 엔티티는 제 1 엔티티 및 제 2 엔티티가 동작 또는 기능으로의 액세스를 허용하는 것을 표시하기 위해 메모리의 제 2 비트를 프로그래밍할 수도 있다. 엔티티들의 각각이 동작 또는 기능으로의 액세스를 허용하지 않고 이로써 루트 및 위임 정보가 루트 엔티티 및 위임 엔티티들의 각각이 (예를 들어, 메모리의 대응 비트를 프로그래밍하는 것에 의해) 동작 또는 기능을 허용하지 않는 것을 표시하지 않으면, 프로세싱 로직은 동작 또는 기능을 수행하지 않을 수도 있다 (블록 740). 하지만, 루트 엔티티 및 위임 엔티티들의 각각이 동작 또는 기능으로의 액세스를 허용할 것을 표시하면 (예를 들어, 각각의 엔티티에 대한 메모리의 특정 비트를 프로그래밍하는 것을 통해), 프로세싱 로직은 동작 또는 기능을 수행할 수도 있다 (블록 750). 예를 들어, 보안 관리자는 집적 회로의 동작 또는 기능이 수행되도록 허용할 수도 있다. 따라서, 그러한 동작 또는 기능으로의 액세스에 대한 엔티티 요청은 각각의 엔티티가 루트 엔티티가 동작 또는 기능으로의 액세스를 승인 받을 수도 있다는 것을 표시할 때 동작 또는 기능으로의 액세스를 승인 받거나 허용될 수도 있다.
일 예로서, 집적 회로를 포함하는 디바이스는 사용자 (예를 들어, 디바이스를 구매한 소비자) 를 소유할 수도 있고 사용자는 디바이스가 적절히 기능하고 있지 않고 집적 회로를 포함한 디바이스의 소유를 다른 엔티티에 넘겨줄 것을 의도하는 것을 표시할 수도 있다. 사용자는 그 또는 그녀가 테스팅 목적들을 위해 수행될 디바이스의 집적 회로의 디버그 동작 또는 기능을 허용하는 것을 표시할 수도 있다. 따라서, 집적 회로와 연관된 메모리는 사용자가 디버그 동작 또는 기능을 허용하는 것을 표시하기 위해 프로그래밍될 수도 있다. 예를 들어, 사용자에 대응하는 메모리의 엔트리 (예를 들어, 위임 엔티티 엔트리) 는 제 1 값으로부터 제 2 값으로 엔트리의 비트 값을 변경하는 것에 의해 수정될 수도 있다. 디바이스의 제조자는 사용자로부터 디바이스를 수신할 수도 있고 추가로 테스팅 목적들을 위해 수행될 디바이스의 집적 회로의 디버그 동작 또는 기능을 허용할 수도 있다. 따라서, 메모리는 디바이스의 제조자에 대응하는 메모리의 또 다른 엔티티 (예를 들어, 또 다른 위임 엔티티) 의 또 다른 비트의 프로그래밍에 의해 프로그래밍될 수도 있다. 게다가, 집적 회로의 제조자는 집적 회로를 포함한 디바이스를 수신할 수도 있고 추가로 제 1 값으로부터 제 2 값으로 집적 회로의 제조자에 대응하는 엔트리의 비트 (예를 들어, 루트 엔티티) 를 변경하는 것에 의해 메모리를 프로그래밍할 수도 있다. 따라서, 각각의 위임 엔티티 및 루트 엔티티는 각각의 엔티티가 수행될 테스팅 동작 또는 기능을 허용하는 것을 표시했기 때문에, 루트 엔티티 (예를 들어, 집적 회로의 제조자) 는 동작 또는 기능을 수행하도록 허용될 수도 있다.
도 8 은 보안 관리자 컴포넌트들 포함한 일 예의 집적 회로 (800) 의 블록 다이어그램이다. 일반적으로, 집적 회로 (800) 는 도 1 및 도 2 의 보안 관리자 (160 및/또는 200) 에 대응하는 보안 관리자를 포함한다.
집적 회로 (800) 는 디바이스에 통합될 수도 있다. 디바이스의 예들은, 시스템 온 칩 (SoC), 필드 프로그램가능 게이트 어레이 (FPGA), 및 집적 회로를 포함할 수도 있는 프로세서를 포함할 수도 있지만, 이에 제한되지 않는다. 나타낸 바와 같이, 집적 회로 (800) 는 메모리 (810)(예를 들어, OTP 메모리), 보안 관리자 (820), 및 집적 회로 컴포넌트들 또는 아키텍처 (830) 를 포함할 수도 있다. 일부 실시형태들에서, 메모리 (810) 는 다양한 엔티티들에 할당된 그리고 할당되지 않은 특권들을 식별하는 정보를 저장할 수도 있는 프로그램가능 리드 온니 메모리의 타입일 수도 있다. 집적 회로 (800) 는 이전에 기재된 바와 같이, 보안 관리자 (820) 를 더 포함할 수도 있다. 일부 실시형태들에서, 집적 회로 (800) 는 집적 회로 컴포넌트들 또는 아키텍처 (830) 를 더 포함할 수도 있다. 집적 회로 컴포넌트들 또는 아키텍처 (830) 는 중앙 프로세싱 유닛 (CPU), 또는 프로세싱 디바이스의 다른 타입, 메모리, 또는 다른 그러한 회로 컴포넌트들을 포함할 수도 있다. 할당된 특권들과 연관되는 집적 회로의 기능 또는 집적 회로의 동작들은 집적 회로 컴포넌트들 (830) 에 의해 수행될 수도 있다. 일 예로서, 엔티티 (예를 들어, 루트 엔티티 또는 위임 엔티티) 는 집적 회로 컴포넌트들 (830) 의 기능 또는 동작에 액세스하기 위한 요청을 송신할 수도 있다. 그러한 요청에 응답하여, 보안 관리자 (820) 는 요청 엔티티가 기능 또는 동작으로의 액세스를 허용하는 특권들을 할당 받았는지를 검증할 수도 있다. 예를 들어, 보안 관리자 (820) 는 메모리 (810) 로부터 요청 엔티티와 연관된 특권 정보를 수신할 수도 수도 있다. 요청 엔티티가 집적 회로의 기능 또는 동작에 대응하는 특권을 할당 받았다는 것을 수신된 특권 정보가 표시하면, 집적 회로 컴포넌트들 (830) 은 그 기능의 일부로의 액세스를 허용하거나 특정 동작을 수행할 수도 있다.
도 9 는 보안 관리자를 포함한 일 예의 시스템 (900) 의 블록 다이어그램이다. 일반적으로, 시스템 (900) 의 보안 관리자는 도 1 및 도 2 의 보안 관리자 (160) 및/또는 보안 관리자 (200) 에 대응할 수도 있다. 시스템 (900) 은 집적 회로 또는 집적 회로를 포함하는 디바이스에 대응할 수도 있다.
시스템 (900) 은 본 명세서에 기재된 방법들을 수행하기 위한 보안 관리자를 포함할 수도 있다. 시스템 (900) 은 보안 관리자 (SM) 코어 (905), 보안 메모리 (910), 추출기 (920), 버스 (960), 프로세서 (955), 추출기 인터페이스 (925), 키 인터페이스 (976), 구성 값 인터페이스 (977), 호스트 메모리 (970), 피처들 (925, 930 및 935), 서브 추출기들 (940, 945 및 950), 레지스터 인터페이스 (958), 테스터 인터페이스 (965), 또는 그 일부 조합을 포함할 수도 있다. 보안 관리자-인에이블형 집적 회로 (IC) 는 SM 코어 (905) 및 보안 메모리 (910) 를 포함할 수도 있고, 선택적으로 시스템 (900) 의 나타낸 다른 엘리먼트들의 일부 (또는 전부) 를 포함할 수도 있다 (예를 들어, 추출기 (920), 버스 (960), 프로세서 (955), 추출기 인터페이스 (925), 서브 추출기들 (940, 945, 및 950), 키 인터페이스 (976), 구성 값 인터페이스 (977), 호스트 메모리 (970), 피처들 (925, 930, 및 935) 등). 단지 각각의 컴포넌트의 하나만이 나타나 있지만, 시스템 (900) 은 명명된 컴포넌트들 중 어느 것을 하나 보다 많이 포함할 수도 있다. 예를 들어, 시스템 (900) 은 다중 프로세서들 (955) 을 가질 수도 있다. 유사하게, 시스템 (900) 이 단일 SM 코어 (905) 로 나타나 있지만, SM-인에이블형 IC 는 다중 보안 관리자 코어들 (905) 를 포함할 수도 있다. 추가로, 일부 실시형태들에서, 시스템 (900) 은 테스터에 동작가능하게 커플링 (예컨대 광학적, 전기적, 또는 무선 송신을 사용하여 통신가능하게 커플링) 될 수도 있는 테스터 인터페이스 ("I/F")(965) 를 포함할 수도 있다. 나타내지 않은 일부 실시형태들에서, 하나 이상의 서브-추출기들 (940, 945 및 950) 은 추출기 (920) 과 결합될 수도 있다.
부가적으로, 일부 실시형태들에서, 보안 관리자 (905) 는 하나 이상의 피처들과 직접 접속할 수도 있고, 모든 그러한 접속들이 직접 핸들링되는 경우, 추출기 (920) 및 서브 추출기들은 필요하지 않을 수도 있다. 그리고, 일부 실시형태들에서, 피처들 (925, 930, 및 935) 는 추출기 (920), 하나 이상의 서브 추출기들 (예를 들어, 940, 945 및 950), 및 인터페이스들 (925, 976, 977) 를 사용하여 접속되는 것을 계속할 수도 있다.
부가적으로, SM 코어 (905) 는 시스템 (900) 의 다른 컴포넌트들에 신호들을 직접 판독하고 기입할 수도 있다. 일부 실시형태들에서, SM 코어 (905) 는 예를 들어, 전용 인터페이스 (미도시) 를 통해 또는 버스 (960) 를 통해 시스템 상태를 샘플링하고, 데이터 파라미터들 등을 판독할 수도 있다. 예를 들어, SM 코어 (905) 는 원하는 정보를 획득하기 위해 버스 (960) 를 통해 판독 동작들을 발행할 수도 있다.
시스템 (900) 은 보안 메모리 (910) 를 포함한다. 보안 메모리 (910) 는 단일 보안 메모리 및/또는 다중 동종 또는 이종 보안 메모리일 수도 있다. 보안 메모리 (910) 는 각각의 비트의 설정이 비휘발성 형태로 고정될 수도 있는 디지털 메모리의 형태일 수도 있다. 보안 메모리 (910) 는, 예를 들어 퓨즈 메모리, 안티퓨즈 메모리, 일 회 프로그램가능 ("OTP") 메모리, 소거가능 프로그램가능 리드 온니 메모리 ("EPROM"), 전기적 소거가능 프로그램가능 리드 온니 메모리 ("EEPROM") RAM (배터리 배면형 RAM 을 포함), 또는 그 일부 조합을 포함할 수도 있다. 일부 실시형태들에서, 보안 메모리 (910) 가 퓨즈 또는 안티퓨즈 메모리를 포함하는 경우, 보안 메모리 (910) 는 (이전에 기록된 데이터를 오버라이딩 또는 리매핑하는 것에 의해) 보안 메모리 (910) 에 이전에 저장된 정보를 개정하기 위한 능력을 제공하는 리던던트 경로들을 포함할 수도 있다. 제시된 기술 및 보안 피처들에 의존하여, 보안 메모리 (910) 의 콘텐츠는 암호화되고 및/또는 인증될 수도 있고, SM 코어 (905) 이외의 블록들에 의한 판독으로부터 보호될 수도 있으며, 일 회 프로그램가능하도록 구성될 수도 있다. 또한, 보안 메모리 (910) 는, 단지 SM 코어 (905) 만이 보안 메모리 (910) 에 접속되도록 또는 SM 인에이블형 IC 의 다른 컴포넌트들은 보안 메모리 (910) 로부터 판독될 수도 있지만 단지 SM 코어 (905) 만이 보안 메모리 (910) 에 기입할 수 있도록 격리될 수도 있다. 보안 메모리 (910) 는 단지 SM 코어 (905) 에 의해서만 준비될 수도 있는 하나 이상의 부분들 및 SM 코어 (905) 이외의 SM 인에이블형 IC 의 컴포넌트들에 의해 판독될 수도 있는 하나 이상의 부분들로 파티셔닝될 수도 있다. SM 코어 (905) 는 보안 메모리 (910) 에 대한 모든 제조 테스트 및 프로그래밍 동작들을 직접 담당할 수도 있다. 부가적으로, 일부 실시형태들에서, 보안 메모리 (910) 는, 예를 들어 IC 로부터 소정의 층들을 제거하는 것, IC 의 마이크로그래프들을 캡처하는 것, 또는 동작 동안 IC 를 전기적으로 프로빙하는 것에 의해, 그 콘텐츠를 학습하기 위한 노력들에 저항하도록 설계된다. 부가적으로, 일부 실시형태들에서, SM 코어 (905) 는 래퍼 (wrapper)(915) 를 포함한다. 래퍼 (915) 는 SM 코어 (905) 로부터의 요청들을 보안 메모리 (910) 에 의해 이해되는 요청들로 번역할 수도 있고, 그 역 또한 마찬가지이다. 일부 실시형태들에서, 보안 메모리 (910) 는 SM 코어 (905) 에 통합될 수도 있다.
시스템 (900) 은 하나 이상의 피처들 (925, 930, 및 935) 를 포함한다. 서브 추출기들 (940, 945, 950) 을 통해 피처들 (925, 930, 및 935) 로 전달된 입력들이 일반적으로 구성가능하며, 이에 의해 (예를 들어, 키 관리 및 피처 관리 동작들을 통해) 피처들 (925, 930, 및 935) 와 연관된 기능의 구성 가능성 (configurability) 을 제공한다. 그러한 구성은 레지스터 인터페이스 (958) 를 통해 SM 코어 (905) 에 전달된 SM 커맨드들 (하기에 기재됨) 에 의해 수행될 수도 있다.
피처들 (925, 930, 및 935) 은 하드웨어, 소프트웨어 및 이들의 조합들을 포함할 수도 있다. 예를 들어, 피처들 (925, 930 및 935) 은 글로벌 포지셔닝 서비스, 하나 이상의 프로세서들 (예를 들어, CPU, 그래픽스 프로세서, 암호 코어 등), 부가 메모리, USB 포트들, 비디오 입력 또는 출력 포트들, 오디오 입력 또는 출력 포트들, 진보된 그래픽스 능력들 (예를 들어, 픽처 인 픽처, 다중 HD 비디오 스트림들, 그래픽스 가속도 등) 을 제공하는 회로, 하나 이상의 네트워크들로의 액세스를 위한 네트워크 트랜시버들 (예를 들어, Wi-Fi, 근접장, 블루투스 등), 카메라들 등일 수도 있다. 피처들의 키 관리 또는 피처 관리 동작들을 통해 구성가능한 임의의 컴포넌트 또는 능력을 포함할 수도 있기 때문에, 피처들의 위의 열거는 제한하는 것으로 고려되지 않아야 한다. 일부 실시형태들에서, 피처 또는 피처의 부분은 제 3 파티 IP 제공자에 의해 제공된다. 피처들 (925, 930, 및 935) 은 서브 추출기들 (940, 945, 및 950) 과 각각 연관된다. 나타내지 않은 일부 실시형태들에서, 다중 피처들은 단일 서브 추출기를 공유할 수도 있다. 서브 추출기들 (940, 945, 및 950) 은 SM 인에이블형 IC 설계들에 걸쳐 SM 코어 출력들 (예컨대 구성 값들 및 키들) 의 전달을 용이하게 한다. 부가적으로, 위에서 논의된 바와 같이, 서브 추출기들 (940, 945, 및 950) 은 선택적이며, 일반적으로 다중 피처들을 포함하는 크거나 복잡한 SM 인에이블형 IC들 (상부 레벨 ASIC 평면배치 및/또는 라우팅이 도전적인 것들을 포함) 에 대해 사용된다. 추출기 (920) 는 SM 코어 (905) 로부터 서브 추출기들 (940, 945, 및 950) 로 출력들을 전달하도록 구성되어, 결국 피처들 (925, 930, 및 935) 에 신호들을 각각 전달한다. 일부 실시형태들에서, 피처들은 집적 회로의 기능 또는 동작에 대응할 수도 있다.
시스템 (900) 은 추출기 (920) 를 포함한다. 추출기 (920) 는 SM 코어 (905) 로부터 의도된 지정 피처와 연관된 적절한 서브 추출기(들) 로 피처에 대해 적절한 형태로, 정보 (예를 들어, 키들 및 피처 상태) 를 수신하고 라우팅하도록 구성되는 하드웨어 컴포넌트이다. 피처 상태는 지정 피처에 의해 이해할 수 없는 형태로 있도록 SM 코어 (905) 그리고 가능하게 추출기 (920) 에 의해 프로세싱된 정보를 지칭한다. 피처 상태는 피처 공간에서 하나 이상의 연관된 어드레스들을 가질 수도 있다. 예시로서, 피처 상태는 인에이블 신호들, 메타데이터, 구성 또는 교정 정보, 또는 피처들에 유용한 다른 데이터를 포함할 수도 있다.
추출기 (920) 는 SM 코어 (905) 에 그리고 하나 이상의 피처들 (예를 들어, 피처 (925), 피처 (930), 및 피처 (935)) 에 동작가능하게 커플링된다. 일부 실시형태들에서, 추출기 (920) 는 추출기 인터페이스 (925) 를 통해 SM 코어 (905) 에 커플링된다. 추출기 인터페이스 (925) 는 SM 코어 (905) 로부터 추출기 (920) 로 정보 (예컨대, 피처 데이터, 보안 키들 등) 의 통신을 제공한다. 피처 데이터는 비밀이거나 비밀이 아닐 수도 있고 피처를 구성하기 위해 사용되는 일반적인 데이터이다. 추출기 인터페이스 (925) 는 SM 코어 (905) 를 추출기 (920) 에 커플링하는 와이어들을 포함할 수도 있다. 추출기 (920) 는 그 후 키 인터페이스 (976), 구성 값 인터페이스 (977), 또는 이들의 조합을 통해 각각의 지정 피처와 연관된 서브 추출기(들) 에 정보를 전송한다. 키 인터페이스 (976) 는 비밀 정보 (예를 들어, 암호 키들, 예컨대 RSA 및 EC-DSA 와 같은 공중 키 시스템들에 대한 사설 키들, AES 또는 트리플 DES 와 같은 암호체계들에 대한 대칭 키들, 및 HDCP 또는 EMV 와 같은 프로토콜들에 대한 키들) 를 패스하도록 구성된 통신 경로이다. 예를 들어, 추출기 (920) 는 키 인터페이스 (976) 를 통해 하나 이상의 피처들 (예를 들어, 925, 930, 및/또는 950) 에 128 비트 키 및 타겟 키 어드레스를 통신할 수도 있다. 추출기 (920) 는 지정 피처와 연관된 특정 서브 추출기를 식별하기 위해 타겟 어드레스를 디코딩하도록 구성될 수도 있다. 예를 들어, 서브 추출기 (940), 서브 추출기 (945), 및 서브 추출기 (950) 는 피처들 (925, 930, 및 935) 과 각각 연관된다. 구성 값 인터페이스 (977) 는 피처 관리 동작들과 연관된 피처 데이터를 패스하도록 구성된 통신 경로이다. 예를 들어, 하나 이상의 피처들 (예를 들어, 925, 930, 935 또는 이들의 일부 조합) 이 구성되거나 인에이블되고 있는 경우, 추출기 (920) 는 구성 값 인터페이스 (977) 를 통해 적절한 서브 추출기에 피처 데이터를 패스한다. 마찬가지로, 특정 피처가 주어진 어드레스들과 연관된 값들을 필요로 하지 않는 (및/또는 보안 이유들로 수신하도록 허용되지 않을 수도 있는) 경우, 추출기 및/또는 서브 추출기는 목적지로부터 이들 값들을 보류할 수 있다. 불필요한 값들을 보류하는 것은 이들을 필요로 하지 않는 피처들 또는 서브 추출기들로의 값들의 불필요한 라우팅 및 전달을 회피하는 것에 의해 ASIC들 상의 효율을 개선할 수 있다. 일부 실시형태들에서, 추출기 인터페이스 (925) 는 SM 코어 (905) 로부터 추출기 (920) 로의 정보의 양방향 통신을 제공한다. 다른 실시형태들에서, 추출기 인터페이스 (925) 는 SM 코어 (905) 로부터 추출기 (920) 로의 정보의 일 방향 통신을 제공한다. 키 인터페이스 (976) 및 구성 값 인터페이스 (977) 는 SM 추출기 (920) 를 하나 이상의 서브 추출기들 (240, 234, 및 950) 에 커플링하는 와이어들을 포함할 수도 있다.
추출기 인터페이스 (925), 키 인터페이스 (976), 및 구성 값 인터페이스 (977), 또는 이들의 조합은 SM 코어 (905) 를 추출기 (920) 및 서브 추출기들 (940, 945, 및 950) 에 커플링한다. 인터페이스들의 조합은, 예를 들어 데이터 값들을 연속적으로 전송하는 것, 값의 변화 이벤트가 발생하거나 (예들 들어, 인에이블 피처), 또는 요청이 수신될 때 (예를 들어, 피처가 파워 온되고 있기 때문) 데이터를 전송하는 것, 또는 이들의 조합에 의해, SM 코어 (905) 로부터 특정 피처로 데이터를 송신할 수도 있다.
SM 코어와 연관된 피처 공간의 각각의 엘리먼트의 현재 값은, 예를 들어 보안 메모리 (910), 또는 SM 사설 메모리들 (하기에서 논의됨) 에 저장될 수도 있다. 일부 실시형태들에서, 주어진 동작 (예를 들어, 하기에서 논의되는, RSB 또는 DSB 의 프로세싱) 은 피처 공간의 엘리먼트들의 서브세트만을 업데이트할 수도 있다. 값의 변화 이벤트들이 SM 코어 (905) 로부터 추출기 (920) 로 통신되는 실시형태들에 있어서, 특정 페이로드에 의해 영향을 받는 피처 공간의 엘리먼트들의 값들만이 그 페이로드의 프로세싱 시에 SM 코어 (905) 로부터 추출기 (920) 로 통신되는 것이 예상된다. 피처 공간에서의 모든 값들이 SM 코어 (905) 에서 추출기 (920) 로 연속적으로 구동되는 실시형태들에서, 특정 페이로드에 의해 영향을 받는 값들은, 예를 들어 통신을 위해 SM 사설 메모리로부터 추출기 (920) 로 영향을 받지 않는 피처 공간의 이전 값들과 결합될 수도 있다.
시스템 (900) 은 프로세서 (955) 를 포함할 수도 있다. 프로세서 (955) 는, 예를 들어 단일 또는 다중 마이크로프로세서들, 필드 프로그램가능 게이트 어레이 (FPGA) 엘리먼트들, 또는 디지털 신호 프로세서들 (DPS들) 일 수 있다. 프로세서 (955) 의 특정 예들은, 예를 들어 x86 프로세서, ARM 프로세서, MIPS 마이크로프로세서, 마이크로제어기 등이다. 프로세서 (955) 는 버스 (960) 를 통해 코어 (905), 호스트 메모리 (970), 테스터 I/F (965), 또는 이들의 일부 조합에 커플링될 수도 있다. 일부 실시형태들에서, 프로세서 (955) 는 SM 코어 (905) 와 직접 통신하는 것, SM 코어 (905) 를 통해 보안 메모리 (910) 를 판독하고 프로그래밍하는 것, SM 코어 (905) 스테이터스 및 시스템 상태를 취출하는 것, SM 코어 (905) 에 커맨드들을 전송하는 것, 프로세서 (955) 에 의한 실행을 위해 인증된 (부트 루틴들, 오퍼레이팅 시스템 컴포넌트들, 어플리케이션들 등과 같은) 소프트웨어의 암호 해시들을 SM 코어 (905) 로부터 수신하는 것, 또는 이들의 일부 조합으로 구성될 수도 있다. 부가적으로, 이들 액세스들을 수행하는 복수의 프로세서들이 있을 수도 있다. 부가적으로, 일부 실시형태들에서, 프로세서 (955) 는, 예를 들어 링 (Ring) 0 에서, ARM TrustZone® 을 사용하여, 또는 보안 가상 머신 모니터 (SVMM) 에서, 상위 특권 코드를 작동하기 위한 능력을 갖는다. 하위 특권 프로세서 (955) 또는 프로세스는 SM 코어 (905) 일부 또는 모든 능력들을 사용하여 블록킹될 수도 있다. 레지스터 인터페이스 (958) 는 요청의 아이덴티티 및 특권 레벨을 통신하기 위해 사용될 수도 있고, SM 코어 (905) 는 레지스터 인터페이스 (958) 에 걸쳐 수신된 SM 커맨드들을 허용하고 프로세싱할 때 요청자의 특권 레벨을 고려할 수 있다.
시스템 (900) 은 호스트 메모리 (970) 를 포함할 수도 있다. 호스트 메모리 (970) 는 휘발성 (예를 들어, SRAM, DRAM, 또는 다른 반도체 메모리) 또는 비휘발성 (예를 들어, 하드 디스크, R/W 광학 디스크, 플래시 드라이브), 또는 이들의 조합일 수도 있다. 호스트 메모리 (970) 는 프로세서 (955), SM 코어 (905), 테스터 I/F (965), 또는 이들의 일부 조합에 동작가능하게 커플링된다. 이 실시형태에서, 호스트 메모리 (970) 는 버스 (960) 를 통해 시스템 (900) 의 하나 이상의 컴포넌트들에 커플링된다.
시스템 (900) 은 테스터 I/F (965) 를 포함할 수도 있다. 테스터 I/F (965) 는 테스터 시스템(들)(미도시) 에 대한 인터페이스이다. 테스터 I/F (965) 는, 예를 들어 SM 코어 (905) 가 제조 상태에 있을 때, SM 인에이블 IC 가 인-필드일 때, 프로세서 (955) 가 아직 동작하고 있지 않을 (또는 오동작하고 있을) 때, 또는 이들의 조합일 때 SM 코어 (905) 에 통신 경로를 제공하도록 구성될 수도 있다. 테스터 I/F (965) 는, 스캔 인터페이스, 테스트 인터페이스, 접합 테스트 액션 그룹 ("JTAG") 인터페이스, 유니버설 시리얼 버스 인터페이스, 어드밴스드 주변 버스 ("APB") 인터페이스 등일 수도 있다. 테스터 시스템은 정확한 동작을 위해 시스템 (900) 을 테스트하는 것이 가능하도록 시스템 (900) 에 커플링될 수도 있다. 예를 들어, 테스터 시스템은 시스템 (900) 이 적절하게 피처들의 인에이블링, 피처들의 디스에이블링, 보안 메모리 (910) 를 프로그래밍 등을 하는 것을 보장하도록 구성될 수 있다. 테스터 시스템은 하나 이상의 프로세서들 및 메모리를 포함할 수도 있고, SM 코어 (905) 에서 동작들을 인증하기 위해 위임 권한 시스템과 통신 (또는 이들을 포함) 할 수도 있다.
시스템 (900) 은 SM 코어 (905) 를 포함한다. SM 코어 (905) 는 레지스터 인터페이스 ("I/F')(958) 및 버스 (960) 을 통해 보안 메모리 (910), 추출기 (920), 및 프로세서 (955), 호스트 메모리 (970), 및 테스터 I/F (965) 에 동작가능하게 커플링될 수도 있다. 부가적으로, 일부 실시형태들 (미도시) 에서, SM 코어 (905) 는 프로세서 (955), 호스트 메모리 (970), 및 테스터 I/F (965) 에 직접 접속될 수도 있다. SM 코어 (905) 는 하나 이상의 SM 사설 메모리들 (미도시) 를 포함한다. 이들 하나 이상의 사설 메모리들은, 하나 이상의 보안 키들 (예를 들어, 베이스 키들, 개인화 키들, 전송 키들, 넷리스트 키들, 루트 또는 위임 권한 공중 키들 등), 보안 메모리 (910) 내의 위치들에 대한 하나 이상의 포인터들, 래퍼 (915) 를 위한 명령들, 피처 어드레스와 연관된 현재 구성 상태, 커맨드 프로세싱 중개들을 포함하여, SM 코어에 의해 사용된 데이터를 저장하기 위해 사용될 수도 있다. 일부 실시형태들에서, 하나 이상의 보안 키들 및 제품 칩 ID 는 SM 코어 (905) 로 하드 와이어링될 수도 있다 (예를 들어, 보안 메모리가 오작동하고 있거나 구성되지 않는 등인 경우 이용가능할 수 있어야 하는 루트 권한 공중 키들, 베이스 키들). 하나 이상의 보안 키들은 대칭 키들, 공중 비대칭 키들, 사설 비대칭 키들, 또는 이들의 일부 조합을 포함할 수도 있다. 일부 실시형태들에서, 하나 이상의 보안 키들은 SM 코어에 특정되고, 다른 것들은 SM 코어들의 시리즈 사이에서 공유될 수도 있다. SM 코어 시리즈는 일부 방식에서 연관될 수도 있는 SM 코어들의 세트를 지칭한다. 예를 들어, 주어진 마스크 설계로부터 제조된 모든 SM 인에이블형 IC들에서의 SM 코어들이 시리즈로 고려될 수도 있다. 대안으로, 유사한 SM 인에이블 IC들의 패밀리 중 어느 것에서 모든 SM 코어들은 시리즈로 고려될 수도 있다.
예시적인 실시형태에서, SM 코어 (905) 는 이전에 기재된 바와 같이 0 이상의 위임 서명 블록들 ("DSB들") 뿐만 아니라 루트 서명 블록을 포함할 수도 있는, 하나 이상의 서명될 블록들을 수신하도록 구성된다. SM 코어 (905) 는 서명된 블록들과 연관된 서명들을 검증하고 하나 이상의 피처들 (예를 들어, 925, 930, 935) 을 위해 의도된 값들 (예를 들어, 구성 설정들 또는 키들) 뿐만 아니라 연관된 페이로드 특정 한정들/경계들 (하기 참조) 을 추출하도록 구성된다. 한정들의 예들은 SM 코어들이 페이로드를 수용하여야 하는 제한들 (예컨대, 특정 디바이스 ID 또는 피처 어드레스 공간에 저장된 값들을 위해 필요한 상태들을 지정하는 제한들, 또는 피처들이 조종될 수 있는 제한들 등) 을 포함한다. SM 코어 (905) 는, 루트 권한의 공중 키를 사용하여 패이로드를 인증하고, 예를 들어 보안 메모리 (210) 에 저장된 값들로부터 유도되거나 SM 인에이블 IC 에 내장된 사설 키를 사용하여, 서명된 블록들로부터 패이로드를 추출 (복호화) 하도록 구성될 수도 있다. SM 코어 (905) 는 추출기 (920) 를 통해 의도된 하나 이상의 피처들 (예를 들어, 925, 930, 935) 에 페이로드를 프로세싱하는 것의 일부 또는 결과들을 분산하도록 구성된다.
일부 실시형태들에서, SM 코어 (905) 는 SM 인에이블형 IC 의 피처 상태를 업데이트하는 명령들을 실행하고, 피처들로의 키 전달을 용이하게 하며, 보안 메모리 (910) 의 구성을 가능하게 하는 것 (예컨대, 있다면, 보안 메모리 (910) 로의 기입을 위해 필요한 파라미터들을 구성하는 것) 등으로 구성될 수도 있다. 예를 들어, SM 코어 (905) 는 피처 (925) 를 디스에이블하고 피처 (930) 을 인에이블하도록 지시 받을 수도 있다. 제공된 명령들 및 실시형태에 의존하여, SM 코어 (905) 는 지속적인 변화들 (예를 들어, 보안 메모리 (910) 를 업데이트하는 것에 의한), 비지속적인 변화들 (예를 들어, SM 사설 메모리를 업데이트하는 것에 의한), 또는 양자 모두를 행할 수도 있다. 지속적인 변화들은 IC 인에이블 칩이 재부팅한 후 변화가 지속하도록, SM 인에이블형 IC 가 파워다운 된 후에 지속하는 것들이다. 비지속적인 변화들은 시간 또는 이벤트들의 미리 결정된 기간 동안 계속하는 것들이다. 예를 들어, 비지속적인 변화는, 전력이 디바이스 상에서 계속되고 있을 때까지 등, 단지 소정 수의 실행들 동안만 양호할 수도 있다. SM 코어 (905) 는 보안 디지털 ("SD') 카드 암호화, 플래시 메모리/하드 디스크 암호화, 고대역폭 디지털 콘텐츠 보호 ("HDCP"), 디지털 저작권 관리 ("DRM") 시스템들, 가상 사설 네트워크(들)("VPN"), 지불 수단들 (예를 들어, EMV), 패스워드 관리자들, 라디오 링크 암호화, 주변 인증, 다른 보안 동작들 등을 위한 키들을 관리하고 전달하기 위해 구성될 수도 있다. [00106] 부가적으로, SM 코어 (905) 는 IC 구성 프로세서에서 사용될 수도 있는 하나 이상의 하드웨어 ("HW") 상수들을 수신하도록 구성될 수도 있다. HW 상수들은, 예를 들어 제품 칩 ID, 루트 권한 시스템을 위한 하나 이상의 키들 (예컨대, RSA 또는 EC-DSA 공중 키), 위임 권한 시스템으로부터의 하나 이상의 키들, 하나 이상의 베이스 키들, 하나 이상의 부가 보안 키들, SM 코어 (905) 동작을 위한 파라미터들 (예를 들어, 메모리 사용량, 지원된 커맨드들 등), 에러 보정 데이터 등을 포함할 수도 있다. 제품 칩 ID 는 특정 SM 인에이블형 IC, 또는 특정 SM 인에이블형 IC 시리즈들, 또는 양자 모두를, 식별 값으로 유일하게 식별할 수 있다. 보안 키들은 대칭이거나 비대칭 (그리고, 비대칭이라면, 공중 또는 사설) 일 수도 있다. 일부 실시형태들에서, 하나 이상의 베이스 키들은 마스터 키, SM 인에이블형 IC 시리즈들의 식별 코드, 칩 특정 식별자, 또는 이들의 일부 조합으로부터 유도될 수도 있다. 에러 보정 데이터는, 예를 들어 보안 키들의 하나 이상과 관련된 검사 합계를 포함할 수 있다.
SM 코어 (905) 는 프로세서 (955) 에 인터럽트들을 생성하도록 구성될 수도 있다. 예를 들어, SM 코어 (905) 는, SM 인에이블형 IC 의 피처 상태가 업데이트되었을 때, 부가 I/O 를 수신하려고 준비할 때, 키가 출력되었을 때 등에, 인터럽트를 생성하도록 구성될 수도 있다.
SM 코어 (905) 는 하나 이상의 내장된 자기 검사들을 실행하도록 구성될 수도 있다. 예를 들어, SM 코어 (905) 는 테스트 인터페이스 등의 제어 하에서 먼저 파워 업 될 때 자기 검사를 수행하도록 구성될 수도 있다.
일부 실시형태들에서, 시스템 (900) 은 도 9 에 나타낸 컴포넌트들의 전부 또는 대부분의 컴포넌트들 (예컨대 프로세서 (955) 및 호스트 메모리 (970) 를 제외한 모든 것) 을 결합하는 단일 IC (예컨대 시스템 온 칩) 이다.
일부 실시형태들에서, 시스템 (900) 의 전부 또는 일부는 외부 소스들에 의한 부당변경 (tampering) 에 저항하도록 구성될 수도 있다. 예를 들어, SM 코어 (905) 는 보안 메시 (미도시) 를 포함하거나 보안 메시 하에서 제작될 수도 있다. 보안 메시는 집적 회로 상에 상부 금속층들의 하나 이상을 사용하여, 프라이머리 로직 회로들의 상부 상에 제작된 와이어 네트워크이다. 보안 메시는 메시를 포함하는 와이어들에 대한 손상을 검출하도록 의도된 활성 센서 네트워크와 페어링될 수도 있다. 이 실시형태에 있어서, SM 코어 (905) 는, 활성 센서가 보안 메시 와이어링의 일부가 손상되었다는 것을 표시하는 경우, 감지 동작들을 수행하는 것을 거절하도록 구성된다. 부가적으로, SM 코어 (905) 는 보안 메모리 (910) 를 소거하는 것과 같은, 다른 대응책들을 수행하도록 구성될 수도 있다.
도 10 은 머신으로 하여금 본 명세서에서 논의된 방법론들의 어느 하나 이상을 수행하게 하기 위한, 명령들의 세트가 실행될 수도 있는 컴퓨터 시스템 (1000) 의 일 예의 머신을 도시한다. 대안의 구현들에서, 머신은 LAN, 인트라넷, 엑스트라넷, 및/또는 인터넷에서 다른 머신들에 접속 (예를 들어, 네트워킹) 될 수도 있다. 머신은 피어-투-피어 (또는 분산된) 네트워크 환경에서 피어 머신으로서, 또는 클라우드 컴퓨터 인프라구조 또는 환경에서 서버 또는 클라이언트 머신으로서, 클라이언트 서버 네트워크 환경에서 서버 또는 클라이언트 머신의 용량에서 동작할 수도 있다.
머신은 개인용 컴퓨터 (PC), 테블릿 PC, 셋톱 박스 (STB), 개인용 디지털 보조기 (PDA), 셀룰러 전화기, 웹 어플라이언스, 서버, 네트워크 라운터, 스위치 또는 브리지, 또는 머신에 의해 취해질 액션들을 특정하는 (시퀀셜 또는 그외) 명령들의 세트를 실행할 수 있는 임의의 머신일 수도 있다. 추가로, 단일 머신이 도시되지만, 용어 "머신" 은 또한 본 명세서에 논의된 방법론들의 어느 하나 이상을 수행하기 위해 명령들의 세트 (또는 다중 세트들) 을 개별적으로 또는 공동으로 실행하는 머신들의 임의의 조합을 포함하도록 취해질 것이다.
예시의 컴퓨터 시스템 (1000) 은 프로세싱 디바이스 (100), 메인 메모리 (1004)(예를 들어, 리드 온니 메모리 (ROM), 플래시 메모리, 동적 랜덤 액세스 메모리 (DRAM), 예컨대 동기 DRAM (SDRAM) 또는 램버스 DRAM (RDRAM) 등), 정적 메모리 (1006)(예를 들어, 플래시 메모리, 정적 랜덤 액세스 메모리 (SRAM) 등) 및 데이터 저장 디바이스 (1018) 을 포함하고, 이들은 버스 (1030) 를 통해 서로 통신한다.
프로세싱 디바이스 (1002) 는 마이크로 프로세서, 중앙 프로세싱 유닛 등과 같은 하나 이상의 범용 프로세싱 디바이스들을 나타낸다. 특히, 프로세싱 디바이스는 복잡한 명령 세트 컴퓨팅 (CISC) 마이크로프로세서, 감소된 명령 세트 컴퓨팅 (RISC) 마이크로프로세서, 매우 긴 명령 단어 (VLIW) 마이크로프로세서, 또는 다른 명령 세트들을 구현하는 프로세서, 또는 명령 세트들의 조합을 구현하는 프로세서들일 수도 있다. 프로세싱 디바이스 (1002) 는 또한 하나 이상의 범용 프로세싱 디바이스, 예컨대 어플리케이션 특정 집적 회로 (ASCI), 필드 프로그램가능 게이트 어레이 (FPGA), 디지털 신호 프로세서 (DSP), 네트워크 프로세서 등일 수도 있다. 프로세싱 디바이스 (1002) 는 본 명세서에 논의된 동작들 및 단계들을 수행하기 위한 명령들 (1026) 을 실행하도록 구성된다.
컴퓨터 시스템 (1000) 은 네트워크 인터페이스 디바이스 (1008) 를 더 포함할 수도 있다. 컴퓨터 시스템 (1000) 은 또한 비디오 디스플레이 유닛 (1010)(예를 들어, 액정 디스플레이 (LCD) 또는 캐소드 레이 튜브 (CRT)), 알파뉴메릭 입력 디바이스 (1012)(예를 들어, 키보드), 커서 제어 디바이스 (1014)(예를 들어, 마우스), 그래픽스 프로세싱 유닛 (1022), 및 신호 생성 디바이스 (1016)(예를 들어, 스피커) 를 포함할 수도 있다.
데이터 저장 디바이스 (1018) 는 본 명세서에 기재된 기능들 또는 방법론들의 어느 하나 이상을 구현하는 명령들 또는 소프트웨어 (1026) 의 하나 이상이저장된 머신 판독가능 저장 매체 (1024)(또한 컴퓨터 판독가능 매체로서 알려짐) 를 포함할 수도 있다. 명령들 (1026) 은 또한, 컴퓨터 시스템 (1000) 에 의한 그 실행 동안 메인 메모리 (1004) 내에 및/또는 프로세싱 디바이스 (1002) 내에서, 완전히 또는 적어도 부분적으로, 상주할 수도 있으며, 메인 메모리 (1004) 및 프로세싱 디바이스 (1002) 는 또한 프로세싱 머신 판독가능 저장 매체들을 구성한다.
일 구현에 있어서, 명령들 (1026) 은 보안 관리자 (예를 들어, 도 1 의 보안 관리자 (160) 또는 도 2 의 보안 관리자 (200)) 에 대응하는 기능을 구현하기 위한 명령들을 포함한다. 예시의 구현에서는 머신 판독가능 저장 매체 (1028) 가 단일 매체인 것이 나타나 있지만, 용어 "머신 판독가능 저장 매체" 는 명령들의 하나 이상의 세트들을 저장하는 단일 매체 또는 다중 매체 (예를 들어, 중앙집중화되거나 분산된 데이터베이스, 및/또는 연관된 캐시들 및 서비스들) 을 포함하도록 취해져야 한다. 용어 "머신 판독가능 저장 매체" 는 또한 머신에 의한 실행을 위한 명령들의 세트를 저장하거나 인코딩할 수 있고 머신으로 하여금 본 개시물의 방법론들의 어느 하나 이상을 수행하게 하는 임의의 매체를 포함하도록 취해져야 한다. 용어 "머신 판독가능 저장 매체" 는 따라서 고체 상태 메모리들, 광학 매체들 및 자기 매체들을 포함하지만 이에 제한되지 않도록 취해질 것이다.
이전의 상세한 기재들의 적어도 일부는 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 알고리즘 및 상징적 표현들에 관하여 제시되었다. 이들 알고리즘 기재들 및 표현들은 다른 당업자들에게 그 작업의 본질을 매우 효과적으로 전달하기 위해 데이터 프로세싱 분야에서의 당업자에 의해 사용되는 방식들이다. 여기서 그리고 일반적으로, 알고리즘은 원하는 결과를 유도하는 동작들의 자기 지속적 시퀀스로 고려된다. 동작들은 물리적 양들의 물리적 조종들을 필요로 하는 것들이다. 보통, 반드시는 아니더라도, 이들 양들은 저장되고, 결합되고, 비교되며, 그렇지 않으면 조종될 수 있는 전기적 또는 자기적 신호들의 형태를 취한다. 때때로, 원리적으로 일반적인 용법의 이유로, 이들 신호들은 비트들, 감들, 엘리먼트들, 심볼들, 문자들, 용어들, 숫자들 등으로서 지칭하는 것이 편리한 것으로 입증되고 있다.
하지만, 이들 및 유사한 용어들 모두가 적절한 물리적 양들과 연관되어야 하며 단지 이들 양들에 적용된 편리한 라벨들일 뿐이라는 것을 유념해야 한다. 위의 논의로부터 명백한 바와 같이 달리 특별히 언급되지 않으면, 기재 전체에 걸쳐, "식별하는 것" 또는 "결정하는 것" 또는 "실행하는 것" 또는 "수행하는 것" 또는 "수집하는 것" 또는 "생성하는 것" 또는 "전송하는 것" 등과 같은 용어들을 활용한 논의들은, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장 디바이스들 내에 물리적 양으로서 유사하게 나타낸 다른 데이터로 컴퓨터 시스템의 레지스터들 및 메모리들 내에 물리적 (전자적) 양들로서 나타낸 데이터를 조종하고 변환하는, 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스들을 지칭하는 것이 이해된다.
본 개시물은 또한 본 명세서에서 동작들을 수행하기 위한 장치와 관련된다. 이 장치는 특히 의도된 목적을 위해 구성될 수도 있고, 또는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수도 있다. 그러한 컴퓨터 프로그램은, 컴퓨터 판독가능 저장 매체, 예컨대 제한되지는 않지만, 플로피 디스크들, 광학 디스크들, CD-ROM들, 및 자기 광학 디스크들을 포함한 임의의 디스크, 리드 온니 메모리들 (ROM들), 랜덤 액세스 메모리들 (RAM들), EPROM들, EEPROM들, 자기 또는 광학 카드들, 또는 전자 명령들을 저장하기에 적합한 매체들의 임의의 타입에 저장될 수도 있으며, 각각은 컴퓨터 시스템 버스에 커플링된다.
본 명세서에 제시된 알고리즘들 및 디스플레이들은 임의의 특정 컴퓨터 또는 다른 장치에 본질적으로 관련되지 않는다. 다양한 범용 시스템들은 본 명세서에서의 교시들에 따라 프로그램들과 함께 사용될 수도 있고, 또는 방법을 수행하기 위해 보다 특수화된 장치를 구성하는 것이 편리함을 입증할 수도 있다. 다양한 이들 시스템들에 대한 구조는 하기의 기재에서 기술되는 바와 같이 명백할 것이다. 부가적으로, 본 개시물은 임의의 특정 프로그래밍 언어를 참조하여 기재되지 않는다. 여러 프로그래밍 언어들이 본 명세서에 기재된 바와 같은 개시물의 교시들을 구현하는데 사용될 수도 있다는 것을 알 것이다.
본 개시물은 본 개시물에 따른 프로세스를 수행하기 위해 컴퓨터 시스템 (또는 다른 전자 디바이스들) 을 프로그래밍하기 위해 사용될 수도 있는, 명령들이 저장된 머신 판독가능 매체를 포함할 수도 있는, 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수도 있다. 머신 판독가능 매체는 머신 (예를 들어, 컴퓨터) 에 의해 판독가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 머신 판독가능 (예를 들어, 컴퓨터 판독가능) 매체는 머신 (예를 들어, 컴퓨터) 판독가능 저장 매체, 예컨대 리드 온니 메모리 ("ROM"), 랜덤 액세스 메모리 ("RAM"), 자기 디스크 저장 매체들, 광학 저장 매체들, 플래시 메모리 디바이스들 등을 포함한다.
앞서 서술한 명세서에 있어서, 개시물의 구현들은 그의 특정 예의 구현들을 참조하여 기재되었다. 다음의 청구항들에서 기술되는 바와 같은 개시물의 구현들의 보다 넓은 사상 및 범위로부터 벗어나지 않으면서 거기에서 다양한 수정들이 이루어질 수도 있다. 따라서, 명세서 및 도면들은, 한정적인 한정적인 의미보다는 예시적인 의미로 간주되어야 한다.

Claims (20)

  1. 제 1 엔티티에 할당된 하나 이상의 특권들과 연관된 요청을 수신하는 단계로서, 상기 하나 이상의 특권들의 각각은 집적 회로의 동작에 대응하고 상기 집적 회로의 제조 라이프사이클 동안 상기 집적 회로를 관리하거나 구성하기 위한 권한을 가진 루트 엔티티에 의해 정의되고, 상기 제 1 엔티티는 위임 엔티티인, 상기 요청을 수신하는 단계;
    상기 제 1 엔티티에 대응하는 정보를 식별하는 단계로서, 상기 정보는 상기 집적 회로와 연관된 메모리에 저장되고, 상기 하나 이상의 특권들이 상기 제 1 엔티티에 할당된 것을 명시하고, 상기 제 1 엔티티가 상기 집적 회로의 동작에 대응하는 상기 하나 이상의 특권들을 다른 위임 엔티티에 위임할 수 있는지 여부를 명시하는, 상기 정보를 식별하는 단계; 및
    프로세싱 디바이스에 의해, 상기 제 1 엔티티에 할당된 상기 하나 이상의 특권들과 연관된 상기 요청에 응답하여 상기 집적 회로와 연관된 상기 메모리에 저장되는 정보를 수정하도록 상기 메모리를 프로그래밍하는 단계를 포함하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 방법.
  2. 제 1 항에 있어서,
    상기 하나 이상의 특권들은 상기 루트 엔티티에 의해 상기 제 1 엔티티에 할당되고, 상기 하나 이상의 특권들과 연관된 요청은 상기 루트 엔티티에 할당된 상기 하나 이상의 특권들의 철회를 포함하고, 상기 정보를 수정하도록 메모리를 프로그래밍하는 것은 상기 루트 엔티티에 할당된 상기 하나 이상의 특권들을 철회하기 위해 제 1 값으로부터 제 2 값으로 상기 루트 엔티티에 대응하는 상기 메모리의 적어도 일 비트를 프로그래밍하는 것을 포함하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 방법.
  3. 제 1 항에 있어서,
    상기 위임 엔티티는 상기 루트 엔티티에 의해 상기 하나 이상의 특권들을 할당 받았던 것이고, 상기 하나 이상의 특권들과 연관된 요청은 상기 제 1 엔티티 또는 상기 루트 엔티티에 할당된 상기 하나 이상의 특권들의 철회를 포함하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 방법.
  4. 제 1 항에 있어서,
    제 2 엔티티에 할당될 하나 이상의 특권들과 연관된 제 2 요청을 수신하는 단계로서, 상기 제 2 엔티티에 할당될 상기 하나 이상의 특권들의 각각은 상기 집적 회로의 제 2 동작에 대응하는, 상기 제 2 요청을 수신하는 단계;
    상기 제 2 엔티티에 대응하는 제 2 정보를 식별하는 단계로서, 상기 제 2 정보는 상기 집적 회로와 연관되고 상기 제 1 엔티티에 대응하는 정보를 저장하는 동일한 메모리에 저장되는, 상기 제 2 정보를 식별하는 단계; 및
    상기 제 2 요청에 응답하여 상기 제 2 엔티티에 대응하는 상기 제 2 정보를 수정하도록 상기 메모리를 프로그래밍하는 단계를 더 포함하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 방법.
  5. 제 1 항에 있어서,
    상기 집적 회로의 특정 동작에 액세스하기 위한 요청을 제 2 엔티티로부터 수신하는 단계; 및
    상기 메모리에 저장된 상기 정보가 상기 집적 회로의 특정 동작에 액세스하기 위한 특권을 상기 제 2 엔티티가 할당 받았다는 것을 식별할 때 상기 제 2 엔티티에 대한 상기 집적 회로의 특정 동작으로의 액세스를 허용하는 단계를 더 포함하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 방법.
  6. 제 1 항에 있어서,
    상기 메모리는 일 회 프로그램가능 (OTP) 메모리인, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 방법.
  7. 제 1 항에 있어서,
    상기 집적 회로의 특정 동작에 액세스하기 위한 요청을 상기 제 1 엔티티로부터 수신하는 단계;
    복수의 다른 엔티티들의 각각으로부터 상기 집적 회로의 특정 동작과 연관된 허가에 대응하는 상기 메모리에 저장되는 정보를 식별하는 단계; 및
    상기 허가에 대응하는 상기 메모리에 저장되는 상기 정보가 상기 집적 회로의 특정 동작이 상기 제 1 엔티티에 의해 수행되도록 허가되는 것을 표시할 때 상기 집적 회로의 특정 동작으로의 상기 제 1 엔티티에 대한 액세스를 허용하는 단계를 더 포함하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 방법.
  8. 제 7 항에 있어서,
    상기 집적 회로의 특정 동작은 디버그 동작인, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 방법.
  9. 복수의 동작들을 수행하기 위한 집적 회로 디바이스에서의 복수의 컴포넌트들;
    상기 컴포넌트들이 적어도 상기 집적 회로의 제조 라이프사이클 동안 상기 복수의 동작들을 수행하게 하도록 복수의 엔티티들에 대한 복수의 특권들과 연관된 정보를 저장하기 위한 일 회 프로그램가능 (OTP) 메모리; 및
    상기 집적 회로 디바이스에서의 보안 관리자 유닛을 포함하고,
    상기 보안 관리자 유닛은,
    제 1 엔티티에 할당된 상기 복수의 특권들의 특권들 중 하나 이상의 특권들과 연관된 요청을 수신하는 것으로서, 상기 하나 이상의 특권들의 각각은 상기 컴포넌트들에 의해 수행된 하나의 동작에 대응하고 상기 제조 라이프사이클 동안 상기 집적 회로를 관리하거나 구성하기 위한 권한을 가진 루트 엔티티에 의해 정의되고, 상기 제 1 엔티티는 위임 엔티티인, 상기 요청을 수신하고;
    상기 제 1 엔티티에 대응하고 상기 OTP 메모리에 저장된 정보를 식별하는 것으로서, 상기 하나 이상의 특권들이 상기 제 1 엔티티에 할당된 것을 명시하고, 상기 제 1 엔티티가 상기 집적 회로 디바이스에서의 상기 컴포넌트들에 의해 수행되는 동작에 대응하는 상기 하나 이상의 특권들을 상기 복수의 엔티티들 중 다른 위임 엔티티에 위임할 수 있는지 여부를 명시하는, 상기 제 1 엔티티에 대응하고 상기 OTP 메모리에 저장된 정보를 식별하며; 그리고
    상기 하나 이상의 특권들과 연관된 상기 요청에 기초하여 상기 OTP 메모리에 저장되는 상기 정보를 수정하도록 상기 OTP 메모리를 프로그래밍하기 위해,
    프로세서를 포함하고 상기 OTP 메모리와 동작가능하게 커플링되는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 시스템.
  10. 제 9 항에 있어서,
    상기 하나 이상의 특권들은 상기 루트 엔티티에 의해 상기 제 1 엔티티에 할당되고, 상기 요청은 상기 루트 엔티티에 할당된 상기 하나 이상의 특권들의 철회를 포함하고, 상기 정보를 수정하도록 상기 OTP 메모리를 프로그래밍하는 것은 상기 루트 엔티티에 할당된 상기 하나 이상의 특권들을 철회하기 위해 제 1 값에서 제 2 값으로 상기 루트 엔티티에 대응하는 상기 OTP 메모리의 적어도 일 비트를 프로그래밍하는 것을 포함하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 시스템.
  11. 제 9 항에 있어서,
    상기 위임 엔티티는 상기 루트 엔티티에 의해 상기 하나 이상의 특권들을 할당 받았던 것이고, 상기 하나 이상의 특권들과 연관된 요청은 상기 제 1 엔티티 또는 상기 루트 엔티티에 할당된 상기 하나 이상의 특권들의 철회를 포함하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 시스템.
  12. 제 9 항에 있어서,
    상기 보안 관리자 유닛은 또한,
    제 2 엔티티에 할당될 하나 이상의 특권들과 연관된 제 2 요청을 수신하는 것으로서, 상기 제 2 엔티티에 할당될 상기 하나 이상의 특권들의 각각은 상기 컴포넌트들의 적어도 하나에 의해 수행되는 동작들 중 하나에 대응하는, 상기 제 2 요청을 수신하고;
    상기 제 2 엔티티에 대응하는 제 2 정보를 식별하는 것으로서, 상기 제 2 정보는 상기 제 1 엔티티에 대응하는 정보를 저장하는 동일한 OTP 메모리에 저장되는, 상기 제 2 정보를 식별하며; 그리고
    상기 제 2 요청에 응답하여 상기 제 2 엔티티에 대응하는 상기 제 2 정보를 수정하도록 상기 OTP 메모리를 프로그래밍하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 시스템.
  13. 제 9 항에 있어서,
    상기 보안 관리자 유닛은 또한,
    상기 컴포넌트들의 하나 이상이 상기 동작들의 하나 이상을 수행하게 하기 위한 요청을 제 2 엔티티로부터 수신하고; 그리고
    상기 OTP 메모리에 저장된 상기 정보가 상기 제 2 엔티티가 상기 하나 이상의 컴포넌트들이 상기 하나 이상의 동작들을 수행하게 하기 위한 특권을 할당 받았다는 것을 식별할 때 상기 하나 이상의 컴포넌트들이 상기 하나 이상의 동작들을 수행하는 것을 허용하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 시스템.
  14. 제 9 항에 있어서,
    상기 보안 관리자 유닛은 또한,
    상기 하나 이상의 컴포넌트들이 특정 동작을 수행하게 하기 위한 요청을 상기 제 1 엔티티로부터 수신하고;
    복수의 다른 엔티티들의 각각으로부터 상기 특정 동작과 연관된 허가에 대응하는 상기 OTP 메모리에 저장되는 정보를 식별하며; 그리고
    상기 허가에 대응하는 상기 OTP 메모리에 저장되는 상기 정보가 상기 특정 동작이 상기 제 1 엔티티에 의한 요청에 응답하여 상기 하나 이상의 컴포넌트들에 의해 수행되도록 허가되는 것을 표시할 때 상기 하나 이상의 컴포넌트들이 상기 특정 동작을 수행하도록 허용하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 시스템.
  15. 제 14 항에 있어서,
    상기 특정 동작은 디버그 동작인, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 시스템.
  16. 제 9 항에 있어서,
    상기 하나 이상의 특권들과 연관된 상기 요청에 기초하여 상기 OTP 메모리에 저장되는 상기 정보를 수정하도록 상기 OTP 메모리를 프로그래밍하는 것은, 상기 OTP 메모리의 비트와 연관된 퓨즈 또는 안티퓨즈를 사용하는 것에 의해, 제 1 값으로부터 제 2 값으로 상기 하나 이상의 특권들에 대응하는 상기 OTP 메모리의 비트를 프로그래밍하는 것을 포함하는, 하나 이상의 엔티티들의 하나 이상의 특권들의 관리 시스템.
  17. 데이터를 포함하는 비일시적 컴퓨터 판독가능 매체로서,
    상기 데이터는, 집적 회로의 프로세싱 디바이스에 의해 액세스될 때, 상기 프로세싱 디바이스로 하여금,
    제 1 엔티티에 할당된 하나 이상의 특권들과 연관된 요청을 수신하는 것으로서, 상기 하나 이상의 특권들의 각각은 상기 집적 회로의 동작에 대응하고 상기 집적 회로의 제조 라이프사이클 동안 상기 집적 회로를 관리하거나 구성하기 위한 권한을 가진 루트 엔티티에 의해 정의되고, 상기 제 1 엔티티는 위임 엔티티인, 상기 요청을 수신하는 것;
    상기 제 1 엔티티에 대응하는 정보를 식별하는 것으로서, 상기 정보는 상기 집적 회로와 연관된 메모리에 저장되고, 상기 하나 이상의 특권들이 상기 제 1 엔티티에 할당된 것을 명시하고, 상기 제 1 엔티티가 상기 집적 회로의 동작에 대응하는 상기 하나 이상의 특권들을 다른 위임 엔티티에 위임할 수 있는지 여부를 명시하는, 상기 정보를 식별하는 것; 및
    상기 제 1 엔티티에 할당된 상기 하나 이상의 특권들과 연관된 상기 요청에 응답하여 상기 집적 회로와 연관된 상기 메모리에 저장되는 정보를 수정하도록 상기 메모리를 프로그래밍하는 것
    을 포함하는 동작들을 수행하게 하는, 비일시적 컴퓨터 판독가능 매체.
  18. 제 17 항에 있어서,
    상기 하나 이상의 특권들은 상기 루트 엔티티에 의해 상기 제 1 엔티티에 할당되고, 상기 하나 이상의 특권들과 연관된 요청은 상기 루트 엔티티에 할당된 상기 하나 이상의 특권들의 철회를 포함하고, 상기 정보를 수정하도록 상기 메모리를 프로그래밍하는 것은 상기 루트 엔티티에 할당된 상기 하나 이상의 특권들을 철회하기 위해 제 1 값으로부터 제 2 값으로 상기 루트 엔티티에 대응하는 상기 메모리의 적어도 일 비트를 프로그래밍하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  19. 제 17 항에 있어서,
    상기 위임 엔티티는 상기 루트 엔티티에 의해 상기 하나 이상의 특권들을 할당 받았던 것이고, 상기 하나 이상의 특권들과 연관된 요청은 상기 제 1 엔티티 또는 상기 루트 엔티티에 할당된 상기 하나 이상의 특권들의 철회를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  20. 제 17 항에 있어서,
    상기 동작들은,
    제 2 엔티티에 할당될 하나 이상의 특권들과 연관된 제 2 요청을 수신하는 것으로서, 상기 제 2 엔티티에 할당될 상기 하나 이상의 특권들의 각각은 상기 집적 회로의 제 2 동작에 대응하는, 상기 제 2 요청을 수신하는 것;
    상기 제 2 엔티티에 대응하는 제 2 정보를 식별하는 것으로서, 상기 제 2 정보는 상기 집적 회로와 연관되고 상기 제 1 엔티티에 대응하는 정보를 저장하는 동일한 메모리에 저장되는, 상기 제 2 정보를 식별하는 것; 및
    상기 제 2 요청에 응답하여 상기 제 2 엔티티에 대응하는 상기 제 2 정보를 수정하도록 상기 메모리를 프로그래밍하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
KR1020177007056A 2014-09-17 2015-08-31 집적 회로를 위한 상이한 엔티티들의 특권들의 관리 KR102407066B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227018476A KR102604892B1 (ko) 2014-09-17 2015-08-31 집적 회로를 위한 상이한 엔티티들의 특권들의 관리

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462051496P 2014-09-17 2014-09-17
US62/051,496 2014-09-17
PCT/US2015/047801 WO2016043962A1 (en) 2014-09-17 2015-08-31 Managing privileges of different entities for an integrated circuit

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227018476A Division KR102604892B1 (ko) 2014-09-17 2015-08-31 집적 회로를 위한 상이한 엔티티들의 특권들의 관리

Publications (2)

Publication Number Publication Date
KR20170056551A KR20170056551A (ko) 2017-05-23
KR102407066B1 true KR102407066B1 (ko) 2022-06-08

Family

ID=54207674

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177007056A KR102407066B1 (ko) 2014-09-17 2015-08-31 집적 회로를 위한 상이한 엔티티들의 특권들의 관리
KR1020227018476A KR102604892B1 (ko) 2014-09-17 2015-08-31 집적 회로를 위한 상이한 엔티티들의 특권들의 관리

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227018476A KR102604892B1 (ko) 2014-09-17 2015-08-31 집적 회로를 위한 상이한 엔티티들의 특권들의 관리

Country Status (3)

Country Link
US (3) US10860229B2 (ko)
KR (2) KR102407066B1 (ko)
WO (1) WO2016043962A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289871B2 (en) * 2015-11-02 2019-05-14 Nxp Usa, Inc. Integrated circuit lifecycle security with redundant and overlapping crosschecks
US10067770B2 (en) * 2015-12-21 2018-09-04 Hewlett-Packard Development Company, L.P. Platform key hierarchy
US10585608B2 (en) * 2017-03-22 2020-03-10 Oracle International Corporation System and method for securely isolating a system feature
US11456891B2 (en) * 2018-12-20 2022-09-27 Rolls-Royce North American Technologies Inc. Apparatus and methods for authenticating cyber secure control system configurations using distributed ledgers
US11269316B2 (en) 2019-08-01 2022-03-08 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including smart compliant actuator module
US11258538B2 (en) 2019-08-01 2022-02-22 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including an error avoidance and correction mechanism
US11269795B2 (en) 2019-08-01 2022-03-08 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a link media expansion and conversion mechanism
US11263157B2 (en) 2019-08-01 2022-03-01 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a dynamic bandwidth allocation mechanism
US11089140B2 (en) 2019-08-01 2021-08-10 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including generic encapsulation mode
US11156987B2 (en) 2019-08-01 2021-10-26 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a message retransmission mechanism
US11086810B2 (en) * 2019-08-01 2021-08-10 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including multi-layer platform security architecture
US11809163B2 (en) 2019-08-01 2023-11-07 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a message retransmission mechanism
US11689386B2 (en) 2019-08-01 2023-06-27 Vulcan Technologies International Inc. Intelligent controller and sensor network bus, system and method for controlling and operating an automated machine including a failover mechanism for multi-core architectures
US11042473B2 (en) * 2019-11-01 2021-06-22 EMC IP Holding Company LLC Intelligent test case management for system integration testing
WO2021087418A1 (en) 2019-11-01 2021-05-06 Google Llc Peripheral device comportability with security circuitry
US20210334373A1 (en) * 2020-04-22 2021-10-28 Arm Limited Moderator system for a security analytics framework
FR3111438B1 (fr) * 2020-06-10 2022-08-05 St Microelectronics Alps Sas Dispositifs et procédés de sécurisation d’un système sur puce
EP3987423B1 (en) * 2020-08-24 2022-08-17 Google LLC Undefined lifecycle state identifier for managing security of an integrated circuit device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040221036A1 (en) * 2003-05-01 2004-11-04 Sun Microsystems, Inc. Control status register access to enable domain reconfiguration
US20070143860A1 (en) 2005-12-08 2007-06-21 Sxip Identity Corporation Networked identity framework
WO2014015073A1 (en) 2012-07-18 2014-01-23 Cryptography Research, Inc. Protecting media items using a media security controller
US20140044265A1 (en) * 2012-08-10 2014-02-13 Cryptography Research, Inc. Secure feature and key management in integrated circuits

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634012A (en) * 1994-11-23 1997-05-27 Xerox Corporation System for controlling the distribution and use of digital works having a fee reporting mechanism
US8484696B2 (en) * 2002-07-05 2013-07-09 Igt Secure game download
US7549045B2 (en) * 2004-10-25 2009-06-16 Microsoft Corporation Delegate registration in a managed code execution environment
KR101019322B1 (ko) * 2008-10-22 2011-03-07 성균관대학교산학협력단 상황 인지 역할 기반 접근 제어 시스템 및 그 제어방법
WO2011159842A2 (en) * 2010-06-15 2011-12-22 Nimbula, Inc. Virtual computing infrastructure
US9361624B2 (en) * 2011-03-23 2016-06-07 Ipar, Llc Method and system for predicting association item affinities using second order user item associations
WO2012176337A1 (ja) * 2011-06-24 2012-12-27 富士通株式会社 情報処理システム、情報処理システムの制御方法、管理装置および系切替プログラム
US8893268B2 (en) * 2011-11-15 2014-11-18 Microsoft Corporation Permission re-delegation prevention
US9436848B2 (en) * 2013-05-30 2016-09-06 Cryptography Research, Inc. Configurator for secure feature and key manager
US10762069B2 (en) * 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
WO2017096060A1 (en) * 2015-12-02 2017-06-08 Cryptography Research, Inc. Device with multiple roots of trust
US10516654B2 (en) * 2016-03-15 2019-12-24 Intel Corporation System, apparatus and method for key provisioning delegation
US10070316B2 (en) * 2016-06-16 2018-09-04 Samsung Electronics Co., Ltd. Permission delegation framework
US11652605B2 (en) * 2021-02-23 2023-05-16 Paypal, Inc. Advanced non-fungible token blockchain architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040221036A1 (en) * 2003-05-01 2004-11-04 Sun Microsystems, Inc. Control status register access to enable domain reconfiguration
US20070143860A1 (en) 2005-12-08 2007-06-21 Sxip Identity Corporation Networked identity framework
WO2014015073A1 (en) 2012-07-18 2014-01-23 Cryptography Research, Inc. Protecting media items using a media security controller
US20140044265A1 (en) * 2012-08-10 2014-02-13 Cryptography Research, Inc. Secure feature and key management in integrated circuits

Also Published As

Publication number Publication date
US20210173576A1 (en) 2021-06-10
US11789625B2 (en) 2023-10-17
US11403014B2 (en) 2022-08-02
US20230047575A1 (en) 2023-02-16
KR102604892B1 (ko) 2023-11-21
KR20220080025A (ko) 2022-06-14
WO2016043962A1 (en) 2016-03-24
KR20170056551A (ko) 2017-05-23
US10860229B2 (en) 2020-12-08
US20170249099A1 (en) 2017-08-31

Similar Documents

Publication Publication Date Title
US11789625B2 (en) Managing privileges of different entities for an integrated circuit
US11416415B2 (en) Technologies for secure device configuration and management
JP7416775B2 (ja) 周辺デバイス
KR102434444B1 (ko) 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
US11630904B2 (en) System, apparatus and method for configurable trusted input/output access from authorized software
KR102230834B1 (ko) 집적회로들에서의 보안 피쳐 및 키 관리
US8572410B1 (en) Virtualized protected storage
US20140047243A1 (en) System and Method for Pre-Boot Authentication of a Secure Client Hosted Virtualization in an Information Handling System
JP5180203B2 (ja) メモリ装置から供給される情報を制御するシステムおよび方法
Arfaoui et al. Trusted execution environments: A look under the hood
EP3384423B1 (en) Device with multiple roots of trust
US11575672B2 (en) Secure accelerator device pairing for trusted accelerator-to-accelerator communication
US20230129610A1 (en) Multiple physical request interfaces for security processors
WO2022126644A1 (zh) 模型保护装置及方法、计算装置
JP2009543211A (ja) 汎用管理構造を使用するコンテンツ管理システムおよび方法
JP5178716B2 (ja) 証明書取消リストを使用するコンテンツ管理システムおよび方法
JP2009543208A (ja) 証明書連鎖を使用するコンテンツ管理システムおよび方法
JP2009543208A5 (ko)
JP4972165B2 (ja) アイデンティティオブジェクトを使用する制御システムおよび方法
EP4254855A1 (en) A device and a method for controlling use of a cryptographic key
CN115037491A (zh) 具有被保护用于可靠身份验证的存储器装置的端点群组中的订阅共享
CN115037493A (zh) 监测具有安全存储器装置的端点的完整性以用于身份认证
JP2012119809A (ja) 画像形成装置

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
A107 Divisional application of patent
GRNT Written decision to grant