KR20210132212A - 차량의 전자 제어 유닛 비준 - Google Patents

차량의 전자 제어 유닛 비준 Download PDF

Info

Publication number
KR20210132212A
KR20210132212A KR1020217034122A KR20217034122A KR20210132212A KR 20210132212 A KR20210132212 A KR 20210132212A KR 1020217034122 A KR1020217034122 A KR 1020217034122A KR 20217034122 A KR20217034122 A KR 20217034122A KR 20210132212 A KR20210132212 A KR 20210132212A
Authority
KR
South Korea
Prior art keywords
cryptographic hash
memory
electronic control
control unit
runtime
Prior art date
Application number
KR1020217034122A
Other languages
English (en)
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 KR20210132212A publication Critical patent/KR20210132212A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/84Vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 개시는 차량의 전자 제어 유닛을 비준하기 위한 장치, 방법 및 시스템을 포함한다. 일 실시예는 메모리 및 회로를 포함하고, 상기 회로는 차량의 전자 제어 유닛의 식별(ID) 번호에 기초하여 런타임 암호화 해시를 생성하도록, 그리고 런타임 암호화 해시를 메모리의 일부에 저장된 암호화 해시와 비교하도록 구성된다.

Description

차량의 전자 제어 유닛 비준
본 개시는 일반적으로 반도체 메모리 및 방법에 관한 것으로, 보다 상세하게는 차량의 전자 제어 유닛을 비준(validation)하는 것에 관한 것이다.
메모리 장치는 일반적으로 컴퓨터 또는 기타 전자 장치에서 내부, 반도체, 집적 회로 및/또는 외부 제거 가능 장치로 제공된다. 휘발성 메모리와 비휘발성 메모리를 포함한 다양한 유형의 메모리가 있다. 휘발성 메모리는 데이터를 유지하기 위해 전원이 필요할 수 있으며 RAM(Random-Access Memory), DRAM(Dynamic Random Access Memory), SDRAM(Synchronous Dynamic Random Access Memory) 등이 포함될 수 있다. 비휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지하여 영구 데이터를 제공할 수 있으며 NAND 플래시 메모리, NOR 플래시 메모리, ROM(Read Only Memory), 및 가변 저항 메모리, 가령, PCRAM(Phase Change Random Access Memory), RRAM(Resistive Random Access Memory), 및 MRAM(Magnetic Random Access Memory)를 포함할 수 있다.
메모리 장치는 SSD(Solid State Drive), e.MMC(embedded MultiMediaCard), 및/또는 UFS(universal flash storage) 장치를 형성하기 위해 함께 결합될 수 있다. SSD, e.MMC 및/또는 UFS 장치는 비휘발성 메모리(예: NAND 플래시 메모리 및/또는 NOR 플래시 메모리)를 포함할 수 있고/있거나 다양한 다른 유형의 비휘발성 및 휘발성 메모리 중에서 휘발성 메모리(예: DRAM 및/또는 SDRAM)를 포함할 수 있다. 비휘발성 메모리는 개인용 컴퓨터, 휴대용 메모리 스틱, 디지털 카메라, 휴대폰, MP3 플레이어와 같은 휴대용 음악 플레이어, 영화 플레이어, 등과 같은 광범위한 전자 애플리케이션에 사용될 수 있다.
플래시 메모리 장치는 예를 들어 플로팅 게이트와 같은 전하 저장 구조에 데이터를 저장하는 메모리 셀을 포함할 수 있다. 플래시 메모리 장치는 일반적으로 높은 메모리 밀도, 높은 신뢰성 및 낮은 전력 소비를 허용하는 단일 트랜지스터 메모리 셀을 사용한다. 가변 저항 메모리 장치는 저장 소자(예를 들어, 가변 저항을 갖는 저항성 메모리 소자)의 저항 상태에 기초하여 데이터를 저장할 수 있는 저항성 메모리 셀을 포함할 수 있다.
메모리 셀은 어레이로 배열될 수 있고, 어레이 아키텍처의 메모리 셀들은 목표(예를 들어, 원하는) 상태로 프로그래밍될 수 있다. 예를 들어, 전하는 플래시 메모리 셀의 전하 저장 구조(예를 들어, 플로팅 게이트) 상에 놓이거나 그로부터 제거되어 셀을 특정 데이터 상태로 프로그램할 수 있다. 셀의 전하 저장 구조에 저장된 전하는 셀의 문턱 전압(Vt)을 나타낼 수 있다. 플래시 메모리 셀의 상태는 셀의 전하 저장 구조에 저장된 전하(예를 들어, Vt)를 감지함으로써 결정될 수 있다.
메모리 장치는 차량(예를 들어, 자동차, 자동차, 트럭, 버스 등)에 이용될 수 있다. 기존 자동차에서, 운전자는 차량의 제어 시스템을 작동한다. 예를 들어, 기존 자동차의 운전자는 차량의 안전한 작동에 대한 결정을 내린다. 그러한 결정에는 차량의 속도, 차량의 조향, 장애물 및/또는 위험 인지, 장애물 및/또는 위험 회피와 관련된 결정이 포함될 수 있다. 그러나 이러한 결정을 내리고 차량의 제어 시스템을 작동하는 운전자의 능력은 상황에 따라 제한될 수 있다. 예를 들어, 운전자 장애, 피로, 주의력 및/또는 (예: 날씨 또는 지형 변화로 인한) 가시성과 같은 기타 요인은 기존 자동차 및/또는 그 제어 시스템을 안전하게 작동하는 운전자의 능력을 제한할 수 있다.
종래의 자동차의 운전자 조작으로 인한 결점을 완화하기 위해 다양한 제조사들이 자율주행차를 실험하고 있다. 자율주행차는 기존의 자동차를 운전하는 운전자의 능력이 저하되어 발생할 수 있는 문제를 줄일 수 있지만, 자율주행차 나름대로의 단점이 있다.
예를 들어, 자율주행차는 하나 이상의 시스템 구성 요소의 고장이 자율주행차의 승객에게 부상이나 사망을 초래할 수 있기 때문에 신뢰할 수 있는 구성 요소를 필요로 한다. 자율주행차에는 특정 기능을 수행하기 위해 함께 작동하는 여러 전자 제어 유닛(예: 하드웨어)가 포함될 수 있다. 차량의 하드웨어를 교체할 때 원래 하드웨어가 원래의 것이 아닌 하드웨어로 교체되거나, 교육을 받지 않거나 부적절한 교육을 받은 사람이 하드웨어를 잘못 설치할 수 있다. 예를 들어, 자율주행차의 구성 요소의 신뢰성은 공장에서 제공하는 하드웨어(예: 원래 하드웨어)를 설치하고 승인된 정비사에 의해 하드웨어를 설치함으로써 보장될 수 있다.
도 1은 본 개시내용의 실시예에 따른 다수의 물리적 블록을 갖는 메모리 어레이의 일부의 다이어그램을 예시한다.
도 2는 본 개시내용의 실시예에 따른 메모리 장치 형태의 장치 및 호스트를 포함하는 컴퓨팅 시스템의 블록도이다.
도 3은 본 개시내용의 실시예에 따른 전자 제어 유닛 비준 프로세스의 예의 블록도이다.
도 4a는 본 개시내용의 실시예에 따른 보안 메모리 어레이를 정의하는데 사용되는 한 쌍의 레지스터의 예를 도시한다.
도 4b는 본 개시내용의 실시예에 따라 정의된 보안 메모리 어레이를 포함하는 메모리 어레이의 일부의 다이어그램을 예시한다.
도 5는 본 개시내용의 실시예에 따른 호스트 및 메모리 장치를 포함하는 예시적인 시스템의 블록도이다.
도 6은 본 개시내용의 실시예에 따른 다수의 파라미터들을 결정하기 위한 예시적인 프로세스의 블록도이다.
도 7은 본 개시내용의 실시예에 따른 다수의 파라미터들을 결정하기 위한 예시적인 프로세스의 블록도이다.
도 8은 본 개시내용의 실시예에 따른 인증서를 검증하기 위한 예시적인 프로세스의 블록도이다.
도 9는 본 개시내용의 실시예에 따른 서명을 검증하기 위한 예시적인 프로세스의 블록도이다.
도 10은 본 개시내용의 실시예에 따른 예시적인 메모리 장치의 블록도이다.
본 개시는 차량의 전자 제어 유닛을 비준하기 위한 장치(apparatus), 방법 및 시스템을 포함한다. 실시예는 메모리와, 차량의 전자 제어 유닛의 식별(ID) 번호에 기초하여 런타임 암호화 해시를 생성하고 런타임 암호화 해시를 메모리 일부에 저장된 암호화 해시와 비교하도록 구성된 회로를 포함한다.
많은 전자 제어 유닛이 함께 작동하여 차량을 작동한다. 차량의 하드웨어를 교체할 때 때때로 원래 하드웨어가 원래의 것이 아닌 하드웨어로 교체되거나 훈련되지 않은 또는 부적절한 훈련을 받은 사람이 하드웨어를 교체한다. 원래의 것이 아닌 하드웨어 및/또는 부적절한 설치로 인해 차량이 오작동할 수 있다.
이와 같이, 안전한 차량을 보장하기 위해서는 차량에 설치된 하드웨어가 정품(예: 원래 프로그래밍된 것과 동일)이고 올바르게 설치되었는지 비준(예: 인증 및/또는 증명)하는 것이 중요하다. 차량의 하드웨어를 비준하면 정품과 정품 교체 부품만 사용할 수 있기 때문에 전자 제어 유닛의 보증도 보장할 수 있다. 자동차를 구매하거나 판매할 때 양 당사자는 해당 차량이 자동차 제조업체에서 판매한 것인지 확인할 수 있다.
본 개시내용의 실시예는 차량의 시동 시에 전자 제어 유닛을 비준할 수 있다. 예를 들어, 본 개시내용의 실시예는 차량의 파워 온(power on)을 검출하고 차량의 파워 온 검출에 응답하여 런타임 암호화 해시를 메모리의 일부에 저장된 암호화 해시와 비교할 수 있다.
본 명세서에 사용된 바와 같이, "a", "an", 또는 "the"는 무언가 중 하나 이상을 지칭할 수 있고, "복수"는 둘 이상의 그러한 것들을 지칭할 수 있다. 예를 들어, 일 메모리 장치는 하나 이상의 메모리 장치를 지칭할 수 있고, 복수의 메모리 장치는 둘 이상의 메모리 장치를 지칭할 수 있다. 또한, 특히 도면의 참조 번호와 관련하여 본 명세서에서 사용되는 지정자 "R", "B", "S" 및 "N"은 그렇게 지정된 특정 특징의 수가 본 개시내용의 다수의 실시예와 함께 포함됨을 나타낸다. 번호는 명칭 간에 동일하거나 다를 수 있다.
본 명세서의 도면은 제 1 숫자 또는 숫자가 도면 번호에 대응하고 나머지 숫자가 도면의 요소 또는 구성요소를 식별하는 번호 매기기 규칙을 따른다. 상이한 도면들 간의 유사한 요소 또는 구성 요소는 유사한 숫자를 사용하여 식별할 수 있다. 예를 들어, 101은 도 1에서 요소 "01"을 참조할 수 있고, 유사한 요소가 도 2에서 201로 참조될 수 있다.
도 1은 본 개시내용의 실시예에 따른 다수의 물리적 블록을 갖는 메모리 어레이(101)의 일부의 도면을 예시한다. 메모리 어레이(101)는 예를 들어 NAND 플래시 메모리 어레이와 같은 플래시 메모리 어레이일 수 있다. 추가적인 예로서, 메모리 어레이(101)는 무엇보다도 PCRAM, RRAM, MMRAM, 또는 스핀 토크 전달(STT) 어레이와 같은 가변 저항 메모리 어레이일 수 있다. 그러나, 본 개시의 실시예들은 특정 유형의 메모리 어레이에 제한되지 않는다. 또한, 메모리 어레이(101)는 본 명세서에서 추가로 설명되는 바와 같이 보안 메모리 어레이(secure memory array)일 수 있다. 또한, 도 1에 도시되지 않았지만, 메모리 어레이(101)는 그 동작과 관련된 다양한 주변 회로와 함께 특정 반도체 다이 상에 위치될 수 있다.
도 1에 도시된 바와 같이, 메모리 어레이(101)는 메모리 셀의 다수의 물리적 블록(107-0(BLOCK 0), 107-1(BLOCK 1), ..., 107-B(BLOCK B))을 갖는다. 메모리 셀은 단일 레벨 셀 및/또는 다중 레벨 셀, 예를 들어 이중 레벨 셀, 삼중 레벨 셀(TLC) 또는 사중 레벨 셀(QLC)일 수 있다. 예로서, 메모리 어레이(101)의 물리적 블록의 수는 128 블록, 512 블록, 또는 1,024 블록일 수 있지만, 실시예는 메모리 어레이(101)의 2의 특정 거듭제곱 또는 어떤 특정 개수의 블록으로 제한되지 않는다.
메모리 셀의 다수의 물리적 블록(예를 들어, 블록(107-0, 107-1, ..., 107-B))이 메모리 셀의 평면에 포함될 수 있고, 메모리 셀의 다수의 평면이 일 다이 상에 포함될 수 있다. 예를 들어, 도 1에 도시된 예에서, 각각의 물리적 블록(107-0, 107-1, ..., 107-B)는 단일 다이의 일부일 수 있다. 즉, 도 1에 도시된 메모리 어레이(101)의 부분은 메모리 셀의 다이일 수 있다.
도 1에 도시된 바와 같이, 각각의 물리적 블록(107-0, 107-1, ..., 107-B)는 액세스 라인(예를 들어, 워드 라인)에 연결된 메모리 셀의 다수의 물리적 행(예를 들어, 103-0, 103-1, ..., 103-R)을 포함한다. 각각의 물리적 블록의 행(예를 들어, 워드 라인)의 수는 32일 수 있지만, 실시예는 물리적 블록 당 특정 수의 행(103-0, 103-1, ..., 103-R)으로 제한되지 않는다. 또한, 도 1에 도시되지 않았지만, 메모리 셀은 감지 라인의 열(예를 들어, 데이터 라인 및/또는 디지트 라인)에 결합될 수 있다.
당업자라면 각 행(103-0, 103-1, ..., 103-R)이 메모리 셀의 다수의 페이지(예를 들어, 물리적 페이지)를 포함할 수 있다는 것을 이해할 것이다. 물리적 페이지는 프로그래밍 및/또는 감지의 단위(예: 하나의 기능 그룹으로 함께 프로그래밍 및/또는 감지되는 메모리 셀의 수)를 의미한다. 도 1에 도시된 실시예에서, 각 행(103-0, 103-1, ..., 103-R)은 메모리 셀의 하나의 물리적 페이지를 포함한다. 그러나, 본 개시내용의 실시예는 이에 제한되지 않는다. 예를 들어, 일 실시예에서, 각각의 행은 메모리 셀의 다중 물리적 페이지(예를 들어, 짝수 데이터 라인에 연결된 메모리 셀의 하나 이상의 짝수 페이지, 및 홀수 데이터 라인에 연결된 메모리 셀의 하나 이상의 홀수 페이지)를 포함할 수 있다. 또한, 멀티레벨 셀을 포함하는 실시예의 경우, 메모리 셀의 물리적 페이지는 데이터의 다중 페이지(예: 논리적 페이지)를 저장할 수 있다(예: 데이터의 상위 페이지 및 데이터의 하위 페이지 - 물리적 페이지의 각 셀은 데이터의 상위 페이지를 향해 하나 이상의 비트를 그리고 데이터의 하위 페이지를 향해 하나 이상의 비트를 저장함).
도 1에 도시된 바와 같이, 메모리 셀의 페이지는 다수의 물리적 섹터(105-0, 105-1, ..., 105-S)를 포함할 수 있다(예를 들어, 메모리 셀의 서브세트). 각 물리적 섹터(105-0, 105-1, ..., 105-S)의 셀들은 데이터의 다수의 논리 섹터를 저장할 수 있다. 또한 데이터의 각 논리 섹터는 데이터의 특정 페이지 부분에 해당할 수 있다. 예를 들어, 특정 물리 섹터에 저장된 데이터의 제1 논리 섹터는 데이터의 제 1 페이지에 대응하는 논리 섹터에 대응할 수 있고, 특정 물리 섹터에 저장된 데이터의 제2 논리 섹터는 데이터의 제2 페이지에 대응할 수 있다. 데이터. 각 물리 섹터(105-0, 105-1, ..., 105-S)는 시스템 및/또는 사용자 데이터를 저장할 수 있고/있거나 오류 정정 코드(ECC) 데이터, 논리 블록 어드레스(LBA) 데이터 및 메타데이터와 같은 오버헤드 데이터를 포함할 수 있다.
논리 블록 어드레싱은 데이터의 논리 섹터를 식별하기 위해 호스트에 의해 사용될 수 있는 방식이다. 예를 들어, 각 논리 섹터는 고유한 논리 블록 어드레스(LBA)에 해당할 수 있다. 추가적으로, LBA는 또한 메모리에서 데이터의 해당 논리 섹터의 물리적 위치를 나타낼 수 있는, 물리적 블록 어드레스(PBA)와 같은, 물리적 어드레스에 대응(예를 들어, 동적으로 매핑)할 수 있다. 데이터의 논리 섹터는 데이터의 바이트 수(예: 256바이트, 512바이트, 1,024바이트 또는 4,096바이트)일 수 있다. 그러나 실시예는 이러한 예에 한정되지 않는다.
물리적 블록(107-0, 107-1, ..., 107-B), 행(103-0, 103-1, ..., 103-R), 섹터(105-0, 105-1, ..., 105-S) 및 페이지에 대해 다른 구성이 가능하다. 예를 들어, 물리 블록(107-0, 107-1, ..., 107-B)의 행(103-0, 103-1, ..., 103-R)은 각각 예를 들어 512바이트보다 많거나 적은 데이터를 포함할 수 있는 단일 논리 섹터에 해당하는 데이터를 저장할 수 있다.
도 2는 본 개시내용의 실시예에 따른 메모리 장치(206) 형태의 장치(apparatus) 및 호스트(202)를 포함하는 컴퓨팅 시스템(200)의 블록도이다. 본 명세서에 사용된 바와 같이, "장치"(apparatus)는 예를 들어, 회로 또는 회로군, 다이(들), 모듈(들), 장치(들)(device(s)) 또는 시스템(들)과 같은 다양한 구조 또는 구조의 조합 중 임의의 것을 지칭할 수 있지만 이에 제한되지 않는다. 또한, 일 실시예에서, 컴퓨팅 시스템(200)은 메모리 장치(206)와 유사한 다수의 메모리 장치를 포함할 수 있다.
도 2에 도시된 실시예에서, 메모리 장치(206)는 메모리 어레이(201)를 갖는 메모리(216)를 포함할 수 있다. 메모리 어레이(201)는 도 1과 관련하여 이전에 설명된 메모리 어레이(101)와 유사할 수 있다. 또한, 메모리 어레이(201)는 여기에서 더 설명될 보안 어레이일 수 있다. 하나의 메모리 어레이(201)가 도 2에 예시되어 있지만, 메모리(216)는 메모리 어레이(201)와 유사한 임의의 수의 메모리 어레이를 포함할 수 있다.
도 2에 도시된 바와 같이, 호스트(202)는 인터페이스(204)를 통해 메모리 장치(206)에 연결될 수 있다. 호스트(202) 및 메모리 장치(206)는 인터페이스(204) 상에서 통신(예를 들어, 명령 및/또는 데이터를 전송)할 수 있다. 호스트(202) 및/또는 메모리 장치(206)는 다른 호스트 시스템들 중에서, 예를 들어 자동차(예를 들어, 차량 및/또는 운송 인프라) IoT 가능 장치와 같은 사물 인터넷(IoT) 가능 장치이거나 그 일부일 수 있고, 메모리 액세스 장치(예: 프로세서)를 포함할 수 있다. 당업자는 "프로세서"가 병렬 처리 시스템, 다수의 코프로세서, 등과 같은 하나 이상의 프로세서를 의도할 수 있음을 이해할 것이다.
인터페이스(204)는 표준화된 물리적 인터페이스의 형태일 수 있다. 예를 들어, 메모리 장치(206)가 컴퓨팅 시스템(200)의 정보 저장을 위해 사용될 때, 인터페이스(204)는 다른 물리적 커넥터 및/또는 인터페이스 중에서, SATA(Serial Advanced Technology Attachment) 물리적 인터페이스, PCIe(Peripheral Component Interconnect Express) 물리적 인터페이스, USB(Universal Serial Bus) 물리적 인터페이스, 또는 SCSI(Small Computer System Interface)일 수 있다. 그러나 일반적으로 인터페이스(204)는 인터페이스(204)에 대한 호환 가능한 수용체를 갖는 호스트(예를 들어, 호스트(202))와 메모리 장치(206) 사이에서 제어, 어드레스, 정보(예를 들어, 데이터) 및 기타 신호를 전달하기 위한 인터페이스를 제공할 수 있다.
메모리 장치(206)는 호스트(202) 및 메모리(216)(예를 들어, 메모리 어레이(201))와 통신하기 위한 제어기(208)를 포함한다. 예를 들어, 제어기(208)는 다른 동작들 중에서, 데이터를 감지(예를 들어, 읽기), 프로그램(예를 들어, 쓰기), 이동 및/또는 소거하는 동작을 포함한, 메모리 어레이(201)에 대한 동작을 수행하기 위한 명령을 보낼 수 있다.
제어기(208)는 메모리(216)와 동일한 물리적 장치(예를 들어, 동일한 다이)에 포함될 수 있다. 대안적으로, 제어기(208)는 메모리(216)를 포함하는 물리적 장치에 통신적으로 결합되는 별도의 물리적 장치 상에 포함될 수 있다. 일 실시예에서, 제어기(208)의 구성요소는 분산된 제어기로서 다수의 물리적 장치(예를 들어, 메모리와 동일한 다이 상의 일부 구성요소, 및 상이한 다이, 모듈 또는 보드 상의 일부 구성요소)에 걸쳐 분산될 수 있다.
호스트(202)는 메모리 장치(206)와 통신하기 위해 호스트 제어기(도 2에 도시되지 않음)를 포함할 수 있다. 호스트 제어기는 인터페이스(204)를 통해 메모리 장치(206)에 명령을 전송할 수 있다. 호스트 제어기는 메모리 장치(206) 및/또는 메모리 장치(206) 상의 제어기(208)와 통신하여, 다른 동작들 중에서 데이터를 판독, 기록 및/또는 소거할 수 있다. 또한, 일 실시예에서, 호스트(202)는 앞서 설명한 바와 같이, IoT 통신 능력을 갖는 IoT 가능 장치일 수 있다.
메모리 장치(206) 상의 제어기(208) 및/또는 호스트(202) 상의 호스트 제어기는 제어 회로 및/또는 로직(예를 들어, 하드웨어 및 펌웨어)을 포함할 수 있다. 일 실시예에서, 메모리 장치(206) 상의 제어기(208) 및/또는 호스트(202) 상의 호스트 제어기는 물리적 인터페이스를 포함하는 인쇄 회로 기판에 결합된 주문형 집적 회로(ASIC)일 수 있다. 또한, 메모리 장치(206) 및/또는 호스트(202)는 휘발성 및/또는 비휘발성 메모리의 버퍼와 하나 이상의 레지스터를 포함할 수 있다.
예를 들어, 도 2에 도시된 바와 같이, 메모리 장치(206)는 회로(210)를 포함할 수 있다. 도 2에 도시된 실시예에서, 회로(210)는 제어기(208)에 포함된다. 그러나, 본 개시내용의 실시예는 이에 제한되지 않는다. 예를 들어, 일 실시예에서, 회로(210)는 (예를 들어, 제어기(208) 대신에) 메모리(216)에(예를 들어, 동일한 다이 상에) 포함될 수 있다. 회로(210)는 예를 들어 하드웨어, 펌웨어, 및/또는 소프트웨어를 포함할 수 있다.
회로(210)는 차량(예를 들어, 도 3의 차량(351))의 전자 제어 유닛(예를 들어, 도 3의 전자 제어 유닛(347))을 비준(예를 들어, 인증 및/또는 증명)하기 위한 런타임 암호화 해시(241)를 생성할 수 있다. 생성된 런타임 암호화 해시(241)는 전자 제어 유닛의 식별(ID) 번호(245)에 기초할 수 있다. ID 번호(245)는 일련 번호일 수 있고, 예를 들어 인터페이스(예를 들어, 도 3의 인터페이스(349))를 통해 전자 제어 유닛으로부터 전송될 수 있다. 인터페이스는 다른 물리적 커넥터 및/또는 인터페이스들 중에서, SATA(Serial Advanced Technology Attachment) 물리적 인터페이스, PCIe(Peripheral Component Interconnect Express) 물리적 인터페이스, USB(Universal Serial Bus) 물리적 인터페이스, SCSI(Small Computer System Interface) 또는 버스일 수 있다. 일부 예들에서, 메모리 장치(216)는 전자 제어 유닛으로부터 ID 번호(245)를 수신할 수 있고/있거나 ID 번호(245)가 메모리(216)에(예를 들어, 메모리 어레이(201)에) 저장될 수 있다.
본 명세서에 사용된 바와 같이, 전자 제어 유닛(예를 들어, 도 3의 전자 제어 유닛(347))을 비준하는 것은 전자 제어 유닛이 정품(예를 들어, 오리지널, 승인, 공장 제공, 적절하게 설치 및/또는 인증된 사람이 설치), 변경되거나 부적절하게 설치되지 않았음을 인증 및/또는 테스트함을 포함 및/또는 지칭할 수 있다. 메모리 어레이(201)에 저장된, ID 번호(245)를 포함한, 데이터의 런타임 암호화 해시(241)는 예를 들어 SHA-256 암호화 해시를 포함할 수 있다. 또한, 메모리 어레이(201)에 저장된 데이터의 런타임 암호화 해시(241)는 256바이트의 데이터를 포함할 수 있다.
메모리 어레이(201)에 저장된 데이터의 런타임 암호화 해시(241)는 예를 들어 회로(210)에 의해 생성(예를 들어, 계산)될 수 있다. 이러한 예에서, 저장된 데이터의 런타임 암호화 해시(241)는 인터페이스(204) 상에서 외부 데이터 이동없이 메모리 장치(206)에 의해 내부적으로 생성될 수 있다. 추가적인 예로서, 데이터의 런타임 암호화 해시(241)는 외부 엔티티로부터 전달될 수 있다. 예를 들어, 호스트(202)는 메모리 어레이(201)에 저장된 데이터의 런타임 암호화 해시(241)를 생성하고, 생성된 런타임 암호화 해시(241)를 메모리 장치(206)에 보낼 수 있다(예를 들어, 회로(210)는 호스트(202)로부터 메모리 어레이(201)에 저장된 데이터의 런타임 암호화 해시(241)를 수신할 수 있다).
런타임 암호화 해시(241)는 예를 들어 호스트(202)로부터 수신된 명령과 같은 외부 명령에 기초하여(예를 들어, 이에 응답하여) 회로(210)에 의해 생성(예를 들어, 계산)될 수 있다. 예를 들어, 런타임 암호화 해시(241)는 메모리 어레이(201)에 저장된 데이터를 읽고 암호화 해시 함수(예를 들어, 도 3의 암호화 해시 함수(365))를 사용하여 데이터를 해시함으로써 생성될 수 있다. 추가적인 예로서, 호스트(202)는 런타임 암호화 해시(241)를 생성할 수 있고, 생성된 런타임 암호화 해시(241)를 메모리 장치(206)로 전송(가령, 제공)할 수 있다(예를 들어, 회로(210)는 호스트(202)로부터 런타임 암호화 해시(241)를 수신할 수 있다).
도 2에 도시된 바와 같이, 런타임 암호화 해시(241)는 메모리 어레이(201)에 저장될 수 있다. 예를 들어, 런타임 암호화 해시(241)는 메모리 장치(206) 및/또는 호스트(202)의 사용자가 액세스할 수 없는 메모리 어레이(201)의 부분(예를 들어, 메모리 어레이(201)의 "숨겨진" 영역)에 저장될 수 있다.
일 실시예에서, 메모리 어레이(201)(예를 들어, 어레이(201)의 서브세트 또는 전체 어레이(201))는 보안 어레이(예를 들어, 제어하에 유지될 메모리(216)의 영역)일 수 있다. 예를 들어, 메모리 어레이(201)에 저장된 데이터는 민감한 애플리케이션을 위해 실행될 호스트 펌웨어 및/또는 코드와 같은 민감한(예를 들어, 비사용자) 데이터를 포함할 수 있다. 그러한 실시예에서, 한 쌍의 비휘발성 레지스터가 보안 어레이를 정의하는데 사용될 수 있다. 예를 들어, 도 2에 도시된 실시예에서, 회로(210)는 보안 어레이를 정의하는데 사용될 수 있는 레지스터(214-1, 214-2)를 포함한다. 예를 들어, 레지스터(214-1)는 보안 어레이의 어드레스(예: 데이터의 시작 LBA)를 정의할 수 있고 레지스터(214-2)는 보안 어레이의 크기(예: 데이터의 끝 LBA)를 정의할 수 있다.
일단 보안 어레이가 정의되면, 회로(210)는 (예를 들어, 메모리 장치(206)만이 골든 해시(243)를 알고, 메모리 장치(206)만이 그것을 생성 및 업데이트할 수 있도록) 인증 및 재생 방지 보호 명령을 이용하여, 골든 해시(243)로 여기서 지칭되는, 보안 어레이와 관련된 암호화 해시(243)를 생성(가령, 계산)할 수 있다. 일부 예에서, 골든 해시(243)는 메모리 장치(206)에 의해 수신될 수 있다. 골든 해시(243)는 예를 들어 정비사, 딜러 및/또는 제조업체로부터 전송될 수 있다. 골든 해시(243)는 메모리 어레이(201)의 접근 불가능한 부분에 저장될 수 있고, 본 명세서에서 더 설명되듯이, 차량(예를 들어, 도 3의 차량(351))의 전자 제어 유닛(예를 들어, 도 3의 전자 제어 유닛(347))을 비준하는 프로세스 동안 사용될 수 있다.
메모리 장치(206)(예를 들어, 회로(210))는 메모리 어레이(201)에 저장된, 전자 제어 유닛(예를 들어, 도 3의 전자 제어 유닛(347))의 ID 번호(245)를 포함한, 데이터(예를 들어, 도 3의 데이터(363))를 비준할 수 있다. 예를 들어, 회로(210)는 메모리 장치(206), 전자 제어 유닛, 및/또는 차량(가령, 도 3의 차량(351))의 파워 공급(예를 들어, 파워 온 및/또는 파워 업)에 응답하여 어레이(201)에 저장된 데이터를 비준할 수 있다. 이와 같이, 전자 제어 유닛의 비준은 메모리 장치(206), 전자 제어 유닛, 및/또는 차량의 파워 공급 시 (예를 들어, 자동으로) 개시될 수 있다.
추가적인 예로서, 회로(210)는 메모리 어레이(201)에 저장된 데이터(예를 들어, 도 3의 데이터(363))의 비준을 개시할 수 있다. 예를 들어, 호스트(202)는 메모리 어레이(201)에 저장된 전자 제어 유닛(예를 들어, 도 3의 전자 제어 유닛(347))의 ID 번호(245)의 비준을 개시하여 전자 제어 유닛이 진짜인지 여부를 결정하기 위한 명령을 메모리 장치(206)(가령, 회로(210))에 전송할 수 있다.
메모리 어레이(201)가 보안 어레이인 실시예에서, 본 명세서에서 이전에 설명된 골든 해시(243)는 또한, 메모리 어레이(201)에 저장된, ID 번호(245)를 포함한, 데이터(예를 들어, 도 3의 데이터(363))를 비준하는데 사용될 수 있다. 예를 들어, 런타임 암호화 해시(241)가 생성(예를 들어, 계산)되고 골든 해시(243)와 비교될 수 있다. 비교에 따라 런타임 암호화 해시(241) 및 골드 해시(243)가 일치(가령, 동일)하다고 나타나면, ID 번호(245)가 유효(가령, 도 3의 유효(369))하고 따라서 전자 제어 유닛(가령, 도 3의 전자 제어 유닛(347))이 인증된 것으로 결정될 수 있다. 그러나, 비교 결과 런타임 암호화 해시(241)와 골든 해시(243)가 일치하지 않는 것으로 나타나면, 이는 ID 번호(245)가 유효하지 않고(예: 도 3에서 유효하지 않음(371)), 따라서 전자 제어 유닛이 인증되지 않음을 나타낼 수 있다.
일부 예들에서, 비인증 전자 제어 유닛(예를 들어, 도 3의 전자 제어 유닛(347))이 호스트(202)에 보고될 수 있다. 호스트(202)는 메시지(예를 들어, 도 3의 메시지(350))를 디스플레이할 수 있고, 및/또는 또는 런타임 암호화 해시(241) 및 골든 해시(245)가 동일하지 않음에 응답하여(예를 들어, 전자 제어 유닛이 인증되지 않음) 메시지를 전송한다. 메시지는 예를 들어 전자 제어 유닛을 식별하고 전자 제어 유닛을 비정품 및/또는 부적절하게 설치된 것으로 분류할 수 있다.
런타임 암호화 해시(241)는 회로(210)가 컴퓨팅 시스템(200), 메모리 장치(206), 전자 제어 유닛(예를 들어, 도 3의 전자 제어 유닛(347)) 및/또는 차량(예를 들어, 도 3의 차량(351))의 파워 공급을 검출함에 응답하여 생성 및/또는 골든 해시(243)와 비교될 수 있다.
도 2에 도시된 실시예는 본 개시의 실시예를 모호하게 하지 않도록 도시되지 않은 추가적인 회로, 로직, 및/또는 구성요소를 포함할 수 있다. 예를 들어, 메모리 장치(206)는 I/O 회로를 통해 I/O 커넥터를 거쳐 제공된 어드레스 신호를 래치하기 위한 어드레스 회로를 포함할 수 있다. 어드레스 신호는 메모리 어레이(201)에 액세스하기 위해 행 디코더 및 열 디코더에 의해 수신 및 디코딩될 수 있다. 또한, 메모리 장치(206)는 메모리 어레이(201)로부터 분리된 및/또는 메모리 어레이(201)에 추가하여, 메인 메모리, 예를 들어 DRAM 또는 SDRAM을 포함할 수 있다. 메모리 장치(206)의 추가 회로, 로직, 및/또는 구성요소를 추가로 예시하는 예가 (예를 들어, 도 10과 관련하여) 여기에서 추가로 설명될 것이다.
도 3은 본 개시내용의 실시예에 따른 전자 제어 유닛 비준 프로세스(361)의 일 예의 블록도이다. 전자 제어 비준 프로세스(361)는 회로(예를 들어, 도 2의 회로(210))를 사용하고 암호화 해시 함수(365)를 적용함으로써 런타임 암호화 해시(341)를 생성하는 것을 포함할 수 있다. 런타임 암호화 해시(341)는, 예를 들어, 메모리(316)(예를 들어, 메모리 어레이(301))에 저장된, ID 번호(예를 들어, 도 2의 ID 번호(245))를 포함한, 데이터(363)를 비준(가령, 인증 및/또는 입증)하는데 사용될 수 있다. ID 번호는 인터페이스(349)를 통해 전자 제어 유닛(347)으로부터 메모리(316)에 의해 수신될 수 있다.
다수의 실시예에서, 전자 제어 유닛 비준 프로세스(361)는 복수의 전자 제어 유닛을 비준하는 것을 포함할 수 있고, 전자 제어 비준 프로세스(316)는 복수의 전자 제어 유닛 각각의 각 ID를 포함한, 데이터(363)를 비준하기 위한 런타임 암호화 해시를 생성하는 것을 포함할 수 있다.
본 명세서에서 사용되는 바와 같이, 메모리 어레이(301)에 저장된 데이터(363)를 비준하는 것은 전자 제어 유닛(347)이 진짜(예를 들어, 오리지널, 승인됨, 공장에서 제공됨, 적절히 설치됨 및/또는 인증된 사람에 의해 설치됨)이고 승인되지 않은 전자 제어 유닛으로 설치 또는 교체되지 않았거나 부적절하게 설치되지 않았다는 인증 및/또는 입증을 포함 및/또는 지칭할 수 있다. 런타임 암호화 해시(341)는 메모리 어레이(301)에 저장된, ID 번호(예를 들어, 도 2의 ID 번호 245)를 포함한, 데이터(363)를 판독하고 데이터(363)를 해시하기 위해 암호화 해시 함수(365)를 적용함으로써 생성될 수 있다. 일부 예에서, 암호화 해시 함수(365)는 SHA-256 암호화 해시 함수일 수 있다.
런타임 암호화 해시(341)(예를 들어, 도 2의 런타임 암호화 해시(241))는 메모리 어레이(301)(예를 들어, 도 2의 메모리 어레이(201))에 저장될 수 있다. 예를 들어, 런타임 암호화 해시(341)는 메모리 장치(예를 들어, 도 2의 메모리 장치(206)) 및/또는 호스트(예를 들어, 도 2의 호스트(202))의 사용자가 액세스할 수 없는 메모리 어레이(301)의 부분에 저장될 수 있다. .
일 실시예에서, 메모리 어레이(301)(예를 들어, 어레이(301)의 서브세트 또는 전체 어레이(301))는 보안 어레이(예를 들어, 제어하에 유지될 메모리(316)의 영역)일 수 있다. 예를 들어, 메모리 어레이(301)에 저장된 데이터는 호스트 펌웨어 및/또는 민감한 애플리케이션을 위해 실행될 코드와 같은 민감한(예를 들어, 비사용자) 데이터를 포함할 수 있다. 그러한 실시예에서, 한 쌍의 비휘발성 레지스터는 보안 어레이를 정의하는데 사용될 수 있다. 예를 들어, 도 2에 도시된 실시예에서, 회로(210)는 보안 어레이를 정의하는데 사용될 수 있는 레지스터(214-1, 214-2)를 포함한다. 일단 보안 어레이가 정의되면, 회로는 (메모리 장치만이 골든 해시(343)를 알고 있으며 메모리 장치만 이를 생성하고 업데이트할 수 있도록) 인증되고 재생 방지 보호된 명령을 사용하여, 골드 해시(343)라고 여기서 지칭되는, 보안 어레이와 관련된 암호화 해시(343)를 생성(예를 들어, 계산)할 수 있다.
일부 예들에서, 골든 해시(343)는 메모리(316)에 의해 수신될 수 있고, 메모리 어레이(301)의 접근 불가능한 부분에 저장될 수 있고, 전자 제어 유닛(347)을 비준하는 프로세스(361) 동안 사용될 수 있다. 골든 해시(343)는 예를 들어 정비사, 딜러 및/또는 제조업체에서 보낸 것이다. 일부 예들에서, 업데이트된 골든 해시는 정비사, 딜러 및/또는 제조업체가 차량(351) 상의 전자 제어 유닛(347)을 교체함에 응답하여 정비사, 딜러 및/또는 제조업체로부터 전송될 수 있고, 업데이트된 런타임 암호화 해시는 대체 전자 제어 유닛의 ID 번호에 기초하여 생성되어, 업데이트된 골든 해시와 비교할 수 있다.
전자 제어 유닛(347)을 비준하는 프로세스(361)는 메모리 장치(예를 들어, 도 2의 메모리 장치(206)), 전자 제어 유닛(347), 및/또는 차량(351)의 파워 공급(예를 들어, 파워 온 및/또는 파워 업)에 응답하여 시작될 수 있다. 이와 같이, 전자 제어 유닛(347)의 비준은 메모리 장치, 전자 제어 유닛(347), 및/또는 차량(351)의 파워 공급 시에 (예를 들어, 자동으로) 개시될 수 있다.
추가 예로서, 전자 제어 유닛(347)을 비준하는 프로세스(361)는 메모리 어레이(301)에 저장된 ID 번호(예를 들어, 도 2의 ID 번호 245)를 포함한, 데이터(363)의 비준을 개시하기 위해 호스트(예를 들어, 도 2의 호스트(202))로부터 명령을 수신하는 것에 응답하여 개시될 수 있다.
런타임 암호화 해시(341)가 생성(예를 들어, 계산)될 수 있고, 골든 해시(343)와 비교될 수 있다. 비교(367) 결과 런타임 암호화 해시(341)와 골든 해시(343)가 일치(예를 들어, 동일)하면, ID 번호(예를 들어, 도 2의 ID 번호 245)가 유효한 것으로 결정될 수 있고(369), 따라서 전자 제어 유닛(347)이 인증되고 전자 제어 유닛(347)을 비준하는 프로세스(361)가 완료될 수 있다. 그러나 비교(367) 결과 런타임 암호화 해시(341)와 골든 해시(343)가 일치하지 않으면, 이는 ID 번호가 유효하지 않음(371)을 나타내고, 따라서 전자 제어 유닛(347)이 인증되지 않는다.
일부 예에서, 비인증 전자 제어 유닛(347)은 호스트(예를 들어, 도 2의 호스트(202))에 보고될 수 있다. 호스트는 전자 제어 유닛의 인증실패에 응답하여, 예를 들어 차량(351)의 인포테인먼트 시스템에 메시지(350)를 표시하고/하거나 메시지(350)를 예를 들어 차량 딜러, 제조업체 및/또는 차량을 보증하는 자에게 보낼 수 있다. 메시지는 예를 들어 전자 제어 유닛(347)을 식별하고 전자 제어 유닛(347)을 비정품 및/또는 부적절하게 설치된 것으로 분류할 수 있다.
메시지(350)는 업데이트된 골든 해시와 업데이트된 런타임 암호화 해시가 동일한 것에 응답하여 제거될 수 있다. 예를 들어, 정비사, 딜러 및/또는 제조업체가 차량(351)의 전자 제어 유닛(347)을 교체함에 응답하여 업데이트된 골든 해시가 정비사, 딜러 및/또는 제조업체로부터 전송될 수 있고, 대체 전자 제어 유닛의 ID 번호에 기초하여 업데이트된 런타임 해시가 생성되어 업데이트된 골든 해시와 비교될 수 있다.
일부 실시예에서, 런타임 암호화 해시(341) 및 암호화 해시(343)가 같지 않은 것에 응답하여 차량(351)이 파워 오프될 수 있고 및/또는 차량(351)의 기능이 이용 불가능(예를 들어, 비활성화)될 수 있다. 예를 들어, 인증실패한 전자 제어 유닛(347)이 자율 주행 특징의 기능과 관련된 경우 자율 주행 기능을 사용할 수 없을 수 있다. 자율 주행 기능을 사용할 수 없게 만드는 것은 전자 제어 유닛(347)이 인증실패하였거나 예를 들어 인증되지 않은 정비사가 설치한 결과로 전자 제어 유닛(347)이 오작동 및/또는 고장나서 나타날 수 있는 자율주행차(351) 탑승 승객의 부상이나 사망을 방지할 수 있다.
업데이트된 골든 해시 및 업데이트된 런타임 암호화 해시가 동일한 것에 응답하여 차량(351)이 파워 온 될 수 있고/있거나 차량(351)의 기능이 이용 가능(예: 활성화)해질 수 있다. 예를 들어, 정비사, 딜러 및/또는 제조차량(351)의 전자 제어 유닛(347)을 교체함에 응답하여, 업체가 업데이트된 골든 해시가 정비사, 딜러 및/또는 제조업체로부터 전송될 수 있고, 대체 전자 제어 유닛의 ID 번호를 기반으로 업데이트된 런타임 암호화 해시가 생성되어 업데이트된 골든 해시와 비교될 수 있다.
런타임 암호화 해시(341)는 메모리 장치(예를 들어, 도 2의 메모리 장치(206)), 전자 제어 유닛(347), 및/또는 차량(351)의 파워 공급(예를 들어, 파워 온 및/또는 파워 업)을 검출함에 응답하여 생성 및/또는 골든 해시(343)와 비교될 수 있다.
도 4a는 본 개시내용의 실시예에 따라 보안 메모리 어레이를 정의하는데 사용되는 한 쌍의 레지스터(414-1 및 414-2)의 예를 예시하고, 도 4b는 본 개시내용의 실시예에 따라 레지스터(414-1 및 414-2)를 사용하여 정의된 보안 메모리 어레이를 포함하는 메모리 어레이(401)의 일부의 도면을 예시한다. 레지스터(414-1 및 414-2)는 예를 들어 도 2와 관련하여 이전에 각각 설명된 레지스터(214-1 및 214-2)일 수 있고, 보안 메모리 어레이(401)는 예를 들어 이전에 도 2에 설명된 메모리 어레이(201)일 수 있다. 예를 들어, 도 4b에 도시된 바와 같이, 보안 메모리 어레이(401)는 다수의 물리적 블록(407-0, 407-1, ..., 407-B)의 메모리 셀을 포함할 수 있고, 이 각각은 도 1과 관련하여 이전에 설명된 메모리 어레이(101)와 유사한 방식으로 다수의 메모리 셀 섹터를 갖는 다수의 물리적 행(403-0, 403-1, ..., 403-R)을 포함할 수 있다.
도 4a에 도시된 바와 같이, 레지스터(414-1)는 보안 어레이의 어드레스(예를 들어, 보안 어레이의 상이한 부분의 어드레스)를 정의할 수 있고, 레지스터(414-2)는 보안 어레이의 크기(예를 들어, 보안 어레이의 상이한 부분의 크기)를 정의할 수 있다. 레지스터(414-1)에 의해 정의된 보안 어레이의 어드레스는 예를 들어 보안 어레이의 시작 지점(예를 들어, 시작 LBA)(예를 들어, 보안 어레이의 상이한 부분의 시작 지점)에 대응할 수 있고, 레지스터(414-2)에 의해 정의된 보안 어레이의 크기는, 예를 들어, 보안 어레이의 종료 지점(예를 들어, LBA의 종료)(예를 들어, 보안 어레이의 상이한 부분의 종료 지점)에 대응할 수 있다.
예를 들어, 도 4a에 도시된 바와 같이, 레지스터(414-1 및 414-2)는 N 쌍의 값을 정의할 수 있으며, 각각의 개별 쌍은 레지스터(414-1)에 의해 정의된 어드레스 값(예: addr) 및 레지스터(414-2)에 의해 정의된 크기 값(예를 들어, 크기)을 포함한다. 예를 들어, 도 4a의 예에서, Pair0은 어드레스 값 addr0과 크기 값 size0으로 구성되고(예: Pair0 = [addr0, size0]), Pair1은 어드레스 값 addr1과 크기 값 size1로 구성되며(예: Pair1 = [addr1, size1]), 등등으로, PairN은 어드레스 값 addrN 및 크기 값 sizeN을 포함한다(예: PairN = [addrN, sizeN]). 한 쌍의 어드레스 값은 보안 어레이의 일부의 시작점(예: 시작 LBA)에 해당할 수 있고, 해당 쌍의 어드레스 값과 크기 값의 합은 보안 어레이의 해당 부분의 종료 지점(예: 종료 LBA)에 해당할 수 있다. 따라서 전체 보안 어레이(예: 전체 보안 어레이를 구성하는 부분)는 [addr0, addr0 + size0] ∪ [addr1, addr1 + size1] ∪ ... ∪ [addrN, addrN + sizeN] 과 같이 주어질 수 있다.
레지스터(414-2)에 의해 정의된 크기 값이 0인 제 1 쌍은 보안 어레이의 정의를 중지할 수 있다. 예를 들어, 도 4a에 표시된 예에서 Pair2의 크기 값이 0이면 보안 어레이는 [addr0, addr0 + size0] ∪ [addr1, addr1 + size1]로 지정된다.
레지스터(414-1 및 414-2)에 의해 정의된 보안 어레이의 예(예를 들어, 레지스터(414-2)에 의해 0이 아닌 것으로 정의된 모든 크기 값을 가짐)가 도 4b에 도시되어 있다. 예를 들어, 도 4b에 도시된 바와 같이, 메모리 어레이(401)의 섹터(405-0)와 연관된 어드레스(예를 들어, LBA)는 addr0이고, 메모리 어레이(401)의 섹터(405-1)와 연관된 어드레스는 addr0 + size0, 메모리 어레이(401)의 섹터(405-2)와 연관된 어드레스는 addr1이고, 메모리 어레이(401)의 섹터(405-3)와 연관된 어드레스는 addr1 + size1이고, 메모리 어레이(401)의 섹터(405-4)와 연관된 어드레스는 addrN이고, 메모리 어레이(401)의 섹터(405)와 연관된 어드레스는 addrN + sizeN이다. 이와 같이, 보안 어레이는 섹터(예를 들어, 섹터에 저장된 데이터)(405-0 내지 405-1), 섹터(405-2 내지 405-3), 및 섹터(405-4 내지 405-5)를 포함한다. 그러나, 섹터(405-0) 이전에 있는 메모리 어레이(401)의 섹터 및 메모리 어레이(401)의 섹터(405-1 내지 405-2)는 보안 어레이의 일부가 아니다(예를 들어, 보안 어레이는 어레이(401)의 서브세트를 포함한다) .
도 5는 본 개시내용의 실시예에 따른 호스트(502) 및 메모리 장치(506)를 포함하는 예시적인 시스템의 블록도이다. 호스트(502) 및 메모리 장치(506)는, 예를 들어, 각각 도 2와 관련하여 이전에 설명된, 호스트(202) 및 메모리 장치(206)일 수 있다.
컴퓨팅 장치는 계층을 사용하여 단계적으로 부팅할 수 있으며, 각 계층은 후속 계층을 인증 및 로드하고 각 계층에서 점점 더 정교한 런타임 서비스를 제공한다. 일 계층은 이전 계층에 의해 제공될 수 있고, 후속 층에 제공될 수 있으며, 이에 의해 하위 계층 위에 구축되고 더 높은 차수의 계층을 제공하는, 계층의 상호 연결된 웹을 생성한다. 도 5에 도시된 바와 같이, 계층 0("L0")(551) 및 계층 1("L1")(553)은 호스트 내에 있다. 계층 0(551)은 계층 1(553)에 펌웨어 파생 비밀(FDS) 키(552)를 제공할 수 있다. FDS 키(552)는 계층 1(553)의 코드의 신원 및 기타 보안 관련 데이터를 기술할 수 있다. 예에서, 특정 프로토콜(예: 강력한 사물 인터넷(RIOT) 코어 프로토콜)은 FDS(552)를 사용하여 로딩하는 계층 1(553)의 코드를 비준할 수 있다. 예에서, 특정 프로토콜은 장치 식별 구성 엔진(DICE) 및/또는 RIOT 코어 프로토콜을 포함할 수 있다. 예를 들어, FDS에는 계층 1 펌웨어 이미지 자체, 승인된 계층 1 펌웨어를 암호화 방식으로 식별하는 매니페스트, 보안 부팅 구현 컨텍스트에서 서명된 펌웨어의 펌웨어 버전 번호 및/또는 장치에 대한 보안에 중요한 구성 설정이 포함될 수 있다. 장치 비밀(558)은 FDS(552)를 생성하고 호스트(502)의 메모리에 저장하는데 사용될 수 있다.
호스트는 화살표(554)로 나타낸 바와 같이 데이터를 메모리 장치(506)에 전송할 수 있다. 전송된 데이터는 공개인 외부 신원, 인증서(예를 들어, 외부 식별 인증서), 및/또는 외부 공개 키를 포함할 수 있다. 메모리 장치(506)의 계층 2("L2")(555)는 전송된 데이터를 수신하고 운영 체제("OS")(557)의 동작 및 제1 애플리케이션(559-1) 및 제2 애플리케이션(559-2)에서 데이터를 실행할 수 있다.
예시적인 동작에서, 호스트(502)는 장치 시크릿(558)을 판독하고, 계층 1(553)의 신원을 해시하고, 다음을 포함하는 계산을 수행할 수 있다:
KL1 = KDF [Fs(s), Hash ("불변 정보")]
여기서 KL1은 외부 공개 키이고, KDF(예: NIST(National Institute of Standards and Technology) 특별 간행물 800-108에 정의된 KDF)는 키 파생 함수(예: HMAC-SHA256)이고, Fs(s)는 장치 비밀(558)이다. FDS(552)는 다음을 수행하여 결정될 수 있다:
FDS = HMAC-SHA256 [ Fs(s), SHA256("불변 정보")]
마찬가지로, 메모리 장치(506)는 화살표(556)로 도시된 바와 같이 호스트(502)에 데이터를 전송할 수 있다.
도 6은 본 개시내용의 실시예에 따라 다수의 파라미터들을 결정하기 위한 예시적인 프로세스의 블록도이다. 도 6은 메모리 장치(예를 들어, 도 5의 506)의 계층 2(예: 계층 2(555))로 화살표(654)로 표시된 바와 같이 전송되게 되는 외부 공개 ID, 외부 인증서 및 외부 공개 키를 포함하는 매개변수 결정의 예이다. 도 6의 계층 0("L0")(651)은 도 5의 계층 0(551)에 해당하고, 마찬가지로 FDS(652)는 FDS(552)에 해당하며, 계층 1(653)은 계층 1(553)에 해당하고, 화살표(654 및 656)는 화살표(554 및 556)에 각각 해당한다.
계층 0(651)으로부터의 FDS(652)는 계층 1(653)으로 전송되고, 비대칭 ID 생성기(661)에 의해 사용되어 공개 ID("IDlk public")(665) 및 개인 ID(667)를 생성한다. 약어 "IDlk public"에서, "lk"는 계층 k(이 예에서는 계층 1)를 나타내고 "public"은 ID가 공개적으로 공유됨을 나타낸다. 공개 신원(665)은 호스트의 계층 1(653)의 오른쪽 및 외부로 확장되는 화살표에 의해 공유되는 것으로 예시된다. 생성된 개인 식별 정보(667)는 암호화기(673)에 대한 키 입력으로 사용된다. 암호화기(673)는 데이터를 암호화하는 데 사용되는 임의의 프로세서, 컴퓨팅 장치 등일 수 있다.
호스트의 계층 1(653)은 비대칭 키 생성기(663)를 포함할 수 있다. 적어도 하나의 예에서, 난수 생성기(RND)(636)는 선택적으로 비대칭 키 생성기(663)에 난수를 입력할 수 있다. 비대칭 키 생성기(663)는 도 5의 호스트(502)와 같은 호스트와 연관된 공개 키("KLk public")(669)(외부 공개 키라고 함) 및 개인 키("KLK private")(671)(외부 개인 키라고 함)를 생성할 수 있다. 외부 개인 키는 차량(예: 도 3의 차량(351))에 연결될 수 있다. 예를 들어, 외부 개인 키는 차량 식별 번호(VIN) 및/또는 기타 차량 정보를 사용하여 생성된 난수일 수 있다. 외부 공개 키(669)는 암호화기(673)에 대한 입력("데이터"로서)일 수 있다. 암호화기(673)는 외부 개인 ID(667) 및 외부 공개 키(669)의 입력을 사용하여 결과 K'(675)를 생성할 수 있다. 외부 개인 키(671) 및 결과 K'(675)는 추가 암호화기(677)에 입력될 수 있으며, 출력 K''(679)가 된다. 출력 K''(679)는 계층 2(도 5의 555)로 전송된 외부 인증서("IDL1 certificate")(681)이다. 외부 인증서(681)는 장치에서 전송된 데이터의 출처를 검증(verify) 및/또는 인증(authenticate)하는 기능을 제공할 수 있다. 예를 들어, 호스트에서 전송된 데이터는 인증서를 검증하여 호스트의 ID와 연관될 수 있으며, 이는 도 8과 관련하여 추가로 설명된다. 또한 외부 공개 키("KL1 public key")(683)는 계층 2와 같을 수 있다. 따라서, 호스트의 공개 식별(665), 인증서(681) 및 외부 공개 키(683)는 메모리 장치의 계층 2로 전송될 수 있다.
도 7은 본 개시내용의 실시예에 따라 다수의 파라미터를 결정하기 위한 예시적인 프로세스의 블록도이다. 도 7은 장치 식별("IDL2 public")(766), 장치 인증서("IDL2 Certificate")(782), 및 장치 공개 키("KL2 public key")(784)를 생성하는 메모리 장치(가령, 도 5의 메모리 장치(506))의 계층 2(755)을 도시한다.
도 6에 설명된 바와 같이 호스트의 계층 1에서 메모리 장치의 계층 2(755)로 전송된 외부 공개 키("KL1 public key")(783)는 메모리 장치의 비대칭 ID 생성기(762)에 의해 사용되어 메모리 장치의 공개 ID("IDlk public")(766) 및 개인 ID(768)를 생성한다. 약어 "IDlk public"에서 "lk"는 계층 k(이 예에서는 계층 2)를 나타내고 "public"은 ID가 공개적으로 공유됨을 나타낸다. 공개 식별(766)은 계층 2(755)의 오른쪽 및 외부로 확장되는 화살표로 공유되는 것으로 예시되어 있다. 생성된 개인 식별(768)은 암호화기(774)에 대한 키 입력으로 사용된다.
메모리 장치의 계층 2(755)는 비대칭 키 생성기(764)를 포함할 수 있다. 적어도 하나의 예에서, 난수 생성기(RND)(738)는 선택적으로 비대칭 키 생성기(764)에 난수를 입력할 수 있다. 비대칭 키 생성기(764)는 도 5의 메모리 장치와 같은 메모리 장치와 관련된 공개 키("KLk public")(770)(장치 공개 키라고 함) 및 개인 키("KLK private")(772)(장치 개인 키라고 함)를 생성할 수 있다. 장치 공개 키(770)는 암호화기(774)에 대한 입력("데이터"로서)일 수 있다. 암호화기(774)는 장치 개인 식별(768) 및 장치 공개 키(770)의 입력을 사용하여 결과 K'(776)를 생성할 수 있다. 장치 개인 키(772) 및 결과 K'(776)는 추가 암호화기(778)에 입력되어, 출력 K''(780)가 될 수 있다. 출력 K''(780)는 계층 1(도 5의 553)로 도시 전송되는 장치 인증서("IDL2 certificate")(782)이다. 장치 인증서(782)는 장치로부터 전송된 데이터의 출처를 검증 및/또는 인증하는 능력을 제공할 수 있다. 예를 들어, 메모리 장치에서 전송된 데이터는 인증서를 검증하여 메모리 장치의 ID와 연관될 수 있으며, 이는 도 8과 관련하여 추가로 설명된다. 또한 장치 공개 키("KL2 public key")(784)가 계층 1로 전송될 수 있다. 따라서, 메모리 장치의 공개 ID(766), 인증서(782) 및 장치 공개 키(784)가 호스트의 계층 1로 전송될 수 있다.
예에서, 호스트가 메모리 장치로부터 공개 키를 수신하는 것에 응답하여, 호스트는 장치 공개 키를 사용하여 메모리 장치에 전송될 데이터를 암호화할 수 있다. 반대로, 메모리 장치는 외부 공개 키를 사용하여 호스트로 보낼 데이터를 암호화할 수 있다. 장치 공개 키를 사용하여 암호화된 데이터를 수신하는 메모리 장치에 응답하여 메모리 장치는 자신의 장치 개인 키를 사용하여 데이터를 해독할 수 있다. 마찬가지로 호스트가 외부 공개키로 암호화된 데이터를 수신하면 호스트는 자신의 외부 개인키로 데이터를 복호화할 수 있다. 장치 개인 키는 메모리 장치 외부의 다른 장치와 공유되지 않고 외부 개인 키는 호스트 외부의 다른 장치와 공유되지 않으므로 메모리 장치와 호스트로 전송되는 데이터는 안전하게 유지된다.
도 8은 본 개시내용의 실시예에 따른 인증서를 검증하기 위한 예시적인 프로세스의 블록도이다. 도 8의 예시된 예에서, 공개 키(883), 인증서(881) 및 공개 ID(865)는 호스트로부터(예를 들어, 도 5의 호스트(502)의 계층 1(553)로부터) 제공된다. 인증서(881)의 데이터 및 외부 공개 키(883)는 복호화기(885)로의 입력으로서 사용될 수 있다. 복호화기(885)는 데이터를 복호화하는데 사용되는 임의의 프로세서, 컴퓨팅 장치 등일 수 있다. 인증서(881) 및 외부 공개 키(883)의 복호화 결과는 공개 식별과 함께 2차 복호화기(887)에 대한 입력으로 사용될 수 있고, 결과가 출력된다. 외부 공개 키(883) 및 암호 해독기(887)의 출력은 889에 도시된 바와 같이, 인증서가 검증되었는지 여부를 나타낼 수 있으며, 결과적으로 예 또는 아니오(891)가 출력으로 나타난다. 인증서가 검증되면, 검증되는 장치로부터 수신된 데이터를 수락, 암호 해독 및 처리할 수 있다. 인증서가 검증되지 않으면, 검증 중인 장치에서 수신된 데이터는 폐기, 제거 및/또는 무시될 수 있다. 이러한 방식으로, 부정한 데이터를 보내는 부정한 장치를 감지하고 피할 수 있다. 예를 들어, 처리할 데이터를 보내는 해커를 식별하여 해킹 데이터를 처리하지 않을 수 있다.
도 9는 본 개시내용의 실시예에 따른 서명을 검증하기 위한 예시적인 프로세스의 블록도이다. 장치가 후속 거부를 피하기 위해 검증될 수 있는 데이터를 보내는 경우, 서명을 생성하여 데이터와 함께 보낼 수 있다. 예를 들어, 제 1 장치는 제 2 장치를 요청할 수 있고, 제 2 장치가 요청을 수행하면, 제 1 장치는 제 1 장치가 그러한 요청을 한 적이 없음을 나타낼 수 있다. 서명 사용과 같은 부인 방지 접근 방식은 제 1 장치의 부인을 방지하고, 제 2 장치가 후속 어려움 없이 요청된 작업을 수행할 수 있도록 한다.
메모리 장치(906)(도 2의 메모리 장치(206)와 같은)는 데이터(990)를 호스트(도 2의 호스트(202)와 같은)로 전송할 수 있다. 메모리 장치(906)는 994에서 장치 개인 키(971)를 사용하여 서명(996)을 생성할 수 있다. 서명(996)은 호스트(902)로 전송될 수 있다. 호스트(902)는 998에서, 이전에 수신한 데이터(992) 및 외부 공개 키(969)를 사용하여 서명을 검증할 수 있다. 이러한 방식으로, 개인 키를 사용하여 서명을 생성하고 공개 키를 사용하여 검증한다. 이러한 방식으로, 각 장치에 대한 고유한 서명은 서명을 보내는 장치에 대해 비공개로 유지되는 동시에, 수신 장치가 검증을 위해 서명을 해독할 수 있도록 한다. 이는 송신 장치가 수신 장치의 공개 키를 사용하여 암호화하고 수신 장치는 수신자의 개인 키를 사용하여 복호화하는, 데이터의 암호화/복호화와 대조되는 것이다. 적어도 하나의 예에서, 장치는 내부 암호화 프로세스(예를 들어, 타원 곡선 디지털 서명(ECDSA)) 또는 유사한 프로세스를 사용하여 디지털 서명을 검증할 수 있다.
도 10은 본 개시내용의 실시예에 따른 예시적인 메모리 장치(1006)의 블록도이다. 메모리 장치(1006)는 예를 들어 도 2와 관련하여 이전에 설명된 메모리 장치(206)일 수 있다.
도 10에 도시된 바와 같이, 메모리 장치(1006)는 다수의 메모리 어레이(1001-1 내지 1001-7)를 포함할 수 있다. 메모리 어레이(1001-1 내지 1001-7)는 도 1과 관련하여 이전에 설명된 메모리 어레이(101)와 유사할 수 있다. 또한, 도 10에 예시된 예에서, 메모리 어레이(1001-3)는 보안 어레이이고, 메모리 어레이(1001-6)의 서브세트(1011)는 보안 어레이를 포함하며, 메모리 어레이(1001-7)의 서브세트(1013, 1015)는 보안 어레이를 포함한다. 서브세트(1011, 1013 및 1015)는 각각 예를 들어 4킬로바이트의 데이터를 포함할 수 있다. 그러나, 본 개시의 실시예는 메모리 어레이 또는 보안 어레이의 특정 수 또는 배열에 제한되지 않는다.
도 10에 도시된 바와 같이, 메모리 장치(1006)는 교정(예를 들어, 복구) 블록(1017)을 포함할 수 있다. 교정 블록(remediation block)(1017)은 메모리 장치(1006)의 동작 중 발생할 수 있는 에러(가령, 미스매치)의 경우에 데이터의 소스로 사용될 수 있다. 교정 블록(1017)은 호스트에 의해 어드레스 지정 가능한 메모리 장치(1006)의 영역 밖에 있을 수 있다.
도 10에 도시된 바와 같이, 메모리 장치(1006)는 직렬 주변기기 인터페이스(SPI)(1004) 및 제어기(1008)를 포함할 수 있다. 메모리 장치(1006)는 본 명세서에서 이전에 설명된 바와 같이(예를 들어, 도 2와 관련하여), 호스트 및 메모리 어레이(1001-1 내지 1001-7)와 통신하기 위해 SPI(1004) 및 제어기(1008)를 사용할 수 있다. .
도 10에 도시된 바와 같이, 메모리 장치(1006)는 메모리 장치(1006)의 보안을 관리하기 위한 보안 레지스터(1019)를 포함할 수 있다. 예를 들어, 보안 레지스터(1019)는 애플리케이션 제어기를 구성하고 외부적으로 통신할 수 있다. 또한, 보안 레지스터(1019)는 인증 명령에 의해 수정될 수 있다.
도 10에 도시된 바와 같이, 메모리 장치(1006)는 키(1021)를 포함할 수 있다. 예를 들어, 메모리 장치(1006)는 루트 키, DICE-RIOT 키, 및/또는 다른 외부 세션 키와 같은 키를 저장하기 위한 8개의 상이한 슬롯을 포함할 수 있다.
도 10에 도시된 바와 같이, 메모리 장치(1006)는 전자적으로 소거할 수 있는 프로그램 가능 읽기 전용 메모리(EEPROM)(1023)를 포함할 수 있다. EEPROM(1023)은 호스트에 대해 이용가능한 보안 비휘발성 영역을 제공할 수 있으며, 여기서 데이터의 개별 바이트가 소거 및 프로그래밍될 수 있다.
도 10에 도시된 바와 같이, 메모리 장치(1006)는 카운터(예를 들어, 단조 카운터)(1025)를 포함할 수 있다. 카운터(1025)는 호스트에서 수신 및 전송되는 명령(예를 들어, 명령 세트 또는 시퀀스에 서명하기 위함)에 대한 재생 방지 메커니즘(예를 들어, 신선도 생성기)으로 사용될 수 있다. 예를 들어, 메모리 장치(1006)는 6개의 상이한 단조 카운터를 포함할 수 있으며, 그 중 2개는 인증된 명령을 위해 메모리 장치(1006)에 의해 사용될 수 있고, 그 중 4개는 호스트에 의해 사용될 수 있다.
도 10에 도시된 바와 같이, 메모리 장치(1006)는 SHA-256 암호화 해시 함수(1027), 및/또는 HMAC-SHA256 암호화 해시 함수(1029)를 포함할 수 있다. SHA-256 및/또는 HMAC-SHA256 암호화 해시 함수(1027 및 1029)는 메모리 장치(1006)에 의해 사용되어, 예를 들어 본 명세서에서 이전에 설명된 메모리 어레이(1001-1 내지 1001-7)에 저장된 데이터를 비준하는 데 사용되는 골든 해시, 및/또는 본 명세서에서 이전에 설명된 블록(220)의 암호화 해시와 같은 암호화 해시를 생성할 수 있다. 또한, 메모리 장치(1006)는 DICE-RIOT(1031)의 L0 및 L1을 지원할 수 있다.
특정 실시예가 여기에 예시되고 설명되었지만, 당업자는 동일한 결과를 달성하도록 계산된 배열이 도시된 특정 실시예를 대체할 수 있음을 이해할 것이다. 본 개시는 본 개시의 다수의 실시예의 적응 또는 변형을 커버하도록 의도된다. 상기 설명은 제한적인 것이 아니라 예시적인 방식으로 이루어진 것임을 이해해야 한다. 상기 실시예의 조합, 및 여기에 구체적으로 설명되지 않은 다른 실시예는 상기 설명을 검토함으로써 당업자에게 자명할 것이다. 본 개시내용의 다수의 실시형태의 범위는 상기 구조 및 방법이 사용되는 다른 애플리케이션을 포함한다. 따라서, 본 개시내용의 다수의 실시예의 범위는 첨부된 청구범위를 참조하여 결정되어야 하며, 이러한 청구범위가 부여되는 등가물의 전체 범위와 함께 결정되어야 한다.
전술한 상세한 설명에서, 일부 특징은 본 개시를 합리화할 목적으로 단일 실시예에서 함께 그룹화된다. 이러한 개시 방법은 본 개시의 개시된 실시예가 각각의 청구항에서 명시적으로 인용된 것보다 더 많은 특징을 사용해야 한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 다음 청구범위가 반영하는 바와 같이, 독창적인 주제는 단일의 개시된 실시예의 모든 특징보다 적은 범위에 있다. 따라서, 다음 청구범위는 이에 의해 상세한 설명에 통합되며, 각 청구범위는 그 자체로 별도의 실시예로 서 있다.

Claims (19)

  1. 장치에 있어서,
    메모리, 및
    회로를 포함하되, 상기 회로는,
    차량의 전자 제어 유닛의 식별(ID) 번호에 기초하여 런타임 암호화 해시를 생성하도록 구성되고; 그리고
    런타임 암호화 해시를 메모리의 일부에 저장된 암호화 해시와 비교하도록 구성되는, 장치.
  2. 제1항에 있어서, 상기 회로는 상기 메모리의 일부에 저장된 상기 ID 번호를 판독함으로써, 그리고 해시 함수를 사용하여 상기 데이터를 해시함으로써, 상기 런타임 암호화 해시를 생성하도록 구성되는, 장치.
  3. 제1항에 있어서, 상기 메모리의 일부는 상기 메모리의 보안 부분(secure portion)인, 장치.
  4. 제1항에 있어서, 상기 메모리의 일부는 하나 이상의 레지스터에 의해 정의되는 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 회로는 상기 차량의 파워 온 검출에 응답하여 상기 메모리의 부분에 저장된 암호화 해시에 상기 런타임 암호화 해시를 비교하도록 구성되는, 장치.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 회로는 상기 차량의 파워 온 검출에 응답하여 상기 ID 번호에 기초하여 상기 런타임 암호화 해시를 생성하도록 구성되는, 장치.
  7. 차량의 전자 제어 유닛을 비준하는 방법으로서,
    차량의 파워 온을 검출하는 단계;
    차량의 전자 제어 유닛의 식별(ID) 번호에 기초하여 런타임 암호화 해시를 생성하는 단계; 및
    파워 온 검출에 응답하여 런타임 암호화 해시를 메모리의 일부에 저장된 암호화 해시와 비교하는 단계를 포함하는, 방법.
  8. 제7항에 있어서, 상기 방법은 버스를 통해 상기 전자 제어 유닛으로부터 상기 ID 번호를 수신하는 단계를 포함하는, 방법.
  9. 제7항 내지 제8항 중 어느 한 항에 있어서, 상기 방법은 상기 런타임 암호화 해시 및 상기 암호화 해시가 동일하지 않음에 응답하여 메시지를 디스플레이하는 단계를 포함하고, 상기 메시지는 상기 전자 제어 유닛을 비인증으로 분류하는, 방법.
  10. 제7항 내지 제8항 중 어느 한 항에 있어서, 상기 방법은 상기 런타임 암호화 해시 및 상기 암호화 해시가 동일하지 않음에 응답하여 메시지를 디스플레이하는 단계를 포함하고, 상기 메시지는 상기 전자 제어 유닛을 부적절하게 설치된 것으로 분류하는, 방법.
  11. 제7항 내지 제8항 중 어느 한 항에 있어서, 상기 방법은 상기 런타임 암호화 해시 및 상기 암호화 해시가 동일하지 않음에 응답하여 상기 차량 및 상기 전자 제어 유닛을 식별하는 메시지를 전송하는 단계를 포함하는, 방법.
  12. 제7항 내지 제8항 중 어느 한 항에 있어서, 상기 방법은 상기 런타임 암호화 해시 및 상기 암호화 해시가 동일하지 않음에 응답하여 차량을 파워 오프(power off)시키는 단계를 포함하는, 방법.
  13. 차량의 전자 제어 유닛을 비준하는 방법으로서,
    차량의 전자 제어 유닛 교체에 응답하여 업데이트된 암호화 해시를 수신하는 단계;
    차량의 대체 전자 제어 유닛의 식별(ID) 번호에 기초하여 업데이트된 런타임 암호화 해시를 생성하는 단계; 및
    업데이트된 런타임 암호화 해시를 업데이트된 암호화 해시와 비교하는 단계를 포함하는, 방법.
  14. 제13항에 있어서, 상기 메모리의 일부에 저장된 데이터의 암호화 해시는 SHA-256 암호화 해시를 포함하는, 방법.
  15. 제13항에 있어서, 상기 방법은 업데이트된 암호화 해시를 수신하기 전에 이전 런타임 암호화 해시 및 이전 암호화 해시를 비교하는 단계를 포함하는, 방법.
  16. 제15항에 있어서, 상기 이전 런타임 암호화 해시는 이전 전자 제어 유닛의 ID 번호에 기초하는, 방법.
  17. 제13항에 있어서, 상기 방법은 상기 업데이트된 런타임 암호화 해시 및 상기 업데이트된 암호화가 동일함에 응답하여 상기 전자 제어 유닛이 무효라는 메시지를 제거하는 단계를 포함하는, 방법.
  18. 시스템에 있어서,
    전자 제어 유닛,
    메모리, 및
    회로를 포함하되, 상기 회로는,
    시스템에 전자 제어 유닛을 설치하는 것에 응답하여 암호화 해시를 수신하도록 구성되고;
    메모리의 일부분에 저장된 데이터를 판독함으로써, 그리고 해시 함수를 이용하여 데이터를 해시함으로써, 런타임 암호화 해시를 생성하도록 구성되며;
    런타임 암호화 해시를 수신된 암호화 해시와 비교하도록 구성되고; 그리고,
    런타임 암호화 해시 및 수신된 암호화 해시가 동일함에 응답하여 전자 제어 유닛을 비준하도록 구성되는, 시스템.
  19. 제18항에 있어서, 상기 메모리의 일부에 저장된 데이터는 상기 전자 제어 유닛의 신원(ID)을 포함하는, 시스템.
KR1020217034122A 2019-03-25 2020-03-10 차량의 전자 제어 유닛 비준 KR20210132212A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/362,997 US11329983B2 (en) 2019-03-25 2019-03-25 Validating an electronic control unit of a vehicle
US16/362,997 2019-03-25
PCT/US2020/021815 WO2020197754A1 (en) 2019-03-25 2020-03-10 Validating an electronic control unit of a vehicle

Publications (1)

Publication Number Publication Date
KR20210132212A true KR20210132212A (ko) 2021-11-03

Family

ID=72607792

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217034122A KR20210132212A (ko) 2019-03-25 2020-03-10 차량의 전자 제어 유닛 비준

Country Status (6)

Country Link
US (2) US11329983B2 (ko)
EP (1) EP3949267A4 (ko)
JP (1) JP2022527759A (ko)
KR (1) KR20210132212A (ko)
CN (1) CN113796045A (ko)
WO (1) WO2020197754A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102379110B1 (ko) 2019-04-02 2022-03-25 모셔널 에이디 엘엘씨 차량용 프로세서의 안전한 부트
US20220334947A1 (en) * 2021-04-19 2022-10-20 EMC IP Holding Company LLC Performance scale testing with i/o reuse
DE102021003840A1 (de) * 2021-07-27 2023-02-02 Mercedes-Benz Group AG Verfahren zur Überprüfung digitaler Signaturen, Fahrzeug-Recheneinheit und Fahrzeug

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020147918A1 (en) * 2001-04-05 2002-10-10 Osthoff Harro R. System and method for securing information in memory
US7076665B2 (en) * 2002-06-28 2006-07-11 Motorola, Inc. Method and system for vehicle subassembly authentication of a component
DE10318031A1 (de) * 2003-04-19 2004-11-04 Daimlerchrysler Ag Verfahren zur Sicherstellung der Integrität und Authentizität von Flashware für Steuergeräte
JP2010011400A (ja) * 2008-06-30 2010-01-14 National Institute Of Advanced Industrial & Technology 共通鍵方式の暗号通信システム
US8327153B2 (en) * 2009-12-04 2012-12-04 Electronics And Telecommunications Research Institute Method and system for verifying software platform of vehicle
KR101328167B1 (ko) 2009-12-04 2013-11-13 한국전자통신연구원 차량의 소프트웨어 플랫폼 검증 방법 및 그 시스템
JP5598164B2 (ja) * 2010-08-26 2014-10-01 トヨタ自動車株式会社 コンピュータシステム
JP5624510B2 (ja) * 2011-04-08 2014-11-12 株式会社東芝 記憶装置、記憶システム及び認証方法
JP5479408B2 (ja) * 2011-07-06 2014-04-23 日立オートモティブシステムズ株式会社 車載ネットワークシステム
SG11201403482TA (en) * 2011-12-21 2014-07-30 Ssh Comm Security Oyj Automated access, key, certificate, and credential management
SE539785C2 (sv) 2013-12-02 2017-11-28 Scania Cv Ab Installation av trådlösa noder i motorfordon
US9425963B2 (en) * 2014-03-21 2016-08-23 GM Global Technology Operations LLC Securing electronic control units using message authentication codes
JP6342281B2 (ja) * 2014-09-26 2018-06-13 国立大学法人名古屋大学 書換検出システム及び情報処理装置
US10313129B2 (en) * 2015-06-26 2019-06-04 Intel Corporation Keyed-hash message authentication code processors, methods, systems, and instructions
US9916151B2 (en) * 2015-08-25 2018-03-13 Ford Global Technologies, Llc Multiple-stage secure vehicle software updating
CN109417480A (zh) 2016-06-17 2019-03-01 Kddi株式会社 系统、认证站、车载计算机、车辆、公开密钥证书发行方法以及程序
US20180012197A1 (en) * 2016-07-07 2018-01-11 NextEv USA, Inc. Battery exchange licensing program based on state of charge of battery pack
US10285051B2 (en) * 2016-09-20 2019-05-07 2236008 Ontario Inc. In-vehicle networking
JP2018019415A (ja) * 2017-09-19 2018-02-01 Kddi株式会社 システム、認証局、車載コンピュータ、公開鍵証明書発行方法、及びプログラム
US10507795B1 (en) * 2018-08-06 2019-12-17 Ford Global Technologies, Llc Vehicle-based password
CN109245904A (zh) * 2018-10-17 2019-01-18 南京航空航天大学 一种基于puf的轻量级车联网系统安全认证方法

Also Published As

Publication number Publication date
US20200314096A1 (en) 2020-10-01
US11329983B2 (en) 2022-05-10
EP3949267A4 (en) 2022-12-21
CN113796045A (zh) 2021-12-14
EP3949267A1 (en) 2022-02-09
JP2022527759A (ja) 2022-06-06
WO2020197754A1 (en) 2020-10-01
US20220272090A1 (en) 2022-08-25
US11870779B2 (en) 2024-01-09

Similar Documents

Publication Publication Date Title
US11870779B2 (en) Validating an electronic control unit of a vehicle
US11960632B2 (en) Data attestation in memory
US11321168B2 (en) Error identification in executed code
US11683155B2 (en) Validating data stored in memory using cryptographic hashes
US11669643B2 (en) Block chain based validation of memory commands
US11228443B2 (en) Using memory as a block in a block chain
KR20210134053A (ko) 오버-디-에어 업데이트 유효성 확인 방법
US20220138114A1 (en) Using memory as a block in a block chain

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application