KR20230012488A - 디지털 정보를 보안 프로세싱하기 위한 보안 요소 - Google Patents

디지털 정보를 보안 프로세싱하기 위한 보안 요소 Download PDF

Info

Publication number
KR20230012488A
KR20230012488A KR1020227039766A KR20227039766A KR20230012488A KR 20230012488 A KR20230012488 A KR 20230012488A KR 1020227039766 A KR1020227039766 A KR 1020227039766A KR 20227039766 A KR20227039766 A KR 20227039766A KR 20230012488 A KR20230012488 A KR 20230012488A
Authority
KR
South Korea
Prior art keywords
digital information
segment
secure element
ctrlobj
version
Prior art date
Application number
KR1020227039766A
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 KR20230012488A publication Critical patent/KR20230012488A/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or 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/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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

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

Abstract

보안 요소(100)는 보안 요소 외부의 메모리(200)에 저장된 디지털 정보를 보안 프로세싱하기 위한 보안 프로세서(110), 및 디지털 정보를 외부의 메모리(200)로부터 보안 요소(100)로 로딩하고, 보안 프로세서(110)에 의해 상기의 디지털 정보를 프로세싱하기 전에 암호 알고리즘을 실행함으로써 상기의 디지털 정보를 전처리하도록 구성된 로딩 및 전처리 시스템을 가진다. 본 시스템은 로딩된 디지털 정보의 버전 번호를 보안 요소(100)의 내부 메모리(122)로부터 판독하고, 암호 알고리즘을 실행하는 데 상기의 버전 번호를 사용한다.

Description

디지털 정보를 보안 프로세싱하기 위한 보안 요소
본 개시는 컴퓨터 보안 분야에 관한 것으로, 보다 상세하게는 코드들(애플리케이션들) 및/또는 데이터와 같은 디지털 정보를 보안 프로세싱하는 것에 관한 것이다.
일반적으로, 보안 요소, 예를 들어, 스마트 카드 또는 칩으로도 알려진 디지털 정보를 보안 프로세싱할 수 있는 프로세싱 디바이스는 하나 이상의 프로세서(예를 들어, 호스트 프로세서 및 보안 프로세서), 및 하나 이상의 메모리(휘발성 메모리, 캐시 메모리 및 비휘발성 메모리)와 같은 하드웨어 자원들을 포함한다. 프로세싱 디바이스는 일반적으로 운영 체제의 제어 하에서 동작하고, 하나 이상의 소프트웨어 구성요소 또는 애플리케이션을 사용함으로써 프로그램 명령어들을 실행한다. 애플리케이션이 실행될 때, 애플리케이션에 필요한 디지털 정보(코드 및 데이터) 및 애플리케이션에 의해 생성된 데이터는 비휘발성 메모리에 저장될 수 있고, 디지털 정보는 실행되거나 프로세싱될 필요가 있을 때, 휘발성 메모리 또는 캐시 메모리에 로딩될 수 있다.
보안 요소는 여러 처리 모듈들, 여러 메모리들 및 여러 기능들을 갖는 SoC(System on the Chip)에 내장될 수 있다. SoC는 더 큰 모듈, 예를 들어, IoT 디바이스(사물 인터넷 디바이스)에 통합될 수 있다.
IoT 시스템과 같은 제약 환경에서, 보안 요소는 제한된 양의 정보, 통상적으로 카운터들 및/또는 키들을 저장하기 위해 사용되는, OTP(one time programmable) 메모리와 같은 소형 비휘발성 메모리만을 가질 수 있다. 보안 요소는 디지털 정보(예를 들어, 코드 및 데이터)를 저장하는 데 사용되지 않는다. 보안 요소의 비용을 낮게 유지하기 위해, 디지털 정보는 예를 들어 SoC 또는 SoC 외부의 모듈에서 보안 요소 외부에 위치된 외부 비휘발성 메모리에(예를 들어, SoC 내 또는 SoC 외부에 있는 모듈 내의 플래시 메모리에) 저장된다. 이 외부 메모리는 보안 요소의 내부 저장 용량보다 높은 예를 들어, 수 메가바이트의 대량 저장 용량을 가진다. 외부 메모리에 저장된 디지털 정보는 보안 프로세서의 보안 레벨과 동등한 높은 보안 레벨로 보호되어야 한다. 더 정확하게는, 이는 프라이버시, 무결성, 진본성(authenticity) 및 선도(freshness)가 보증되어야 한다. 선도와 관련하여, 이는 디지털 정보가 리플레이 공격(재생 공격으로도 알려짐) ― 즉 유효한 데이터 전송이 악의적으로 또는 부정하게 반복되거나 지연되는 네트워크 공격 형태 ― 으로부터 보호되어야 한다는 것을 의미한다.
보안 요소는 악의적인 공격, 특히 리플레이 공격으로부터 보호될 필요가 있다. 리플레이 공격(재생 공격으로도 알려짐)은 해커가 유효한 데이터 전송을 도청하고, 이를 인터셉트한 다음, 수신자(이 경우, 보안 요소)에 해커가 원하는 대로 하게 잘못 지시하는 것을 부정하게 반복하거나 지연시키는 악의적인 공격이다.
보안 요소는 RAM(Random-Access Memory)과 같은 내부 메모리에 외부 디지털 정보를 안전하게 불러오는 로더를 가진다. 디지털 정보의 조각이 불러오기 될 때, 더 이상 유효하지 않은 상기의 디지털 정보의 조각의 이전 버전으로 대체되었는지 여부가 검증되어야 한다.
EP 2 860 660은 호스트 프로세서(HCPU)와 관련 호스트 메모리들, 보안 프로세서(SCPU)와 관련 보안 메모리들, 복수의 캐시 라인들을 저장하는 보안 캐시 메모리, 및 캐시 라인들을 호스트 프로세서로부터 보안 프로세서로 로딩하는 것을 제어하는 캐시 제어기를 갖는 SoC를 포함하는 데이터 프로세싱 시스템을 개시한다. 캐시 메모리는 해시 함수를 사용하여 컴퓨트된 각 캐시 라인의 핑거프린트를 포함하는 무결성 테이블을 저장한다. 캐시 라인이 보안 프로세서로 로딩될 때, 이의 무결성은 보안 프로세서에 의해 컴퓨트된 캐시 라인의 핑거프린트과 무결성 테이블로부터 추출된 대응하는 핑거프린트를 성공적으로 비교함으로써 검증된다.
이러한 솔루션은 무결성 테이블을 보안 요소의 내부 메모리(예를 들어, RAM)로 로딩할 것을 필요로 한다. 예를 들어, 외부 메모리가 1MB의 디지털 정보를 저장하고 디지털 정보가 각각 32B의 핑거프린트 또는 TAG를 갖는 1KB의 조각들로 세그먼트화되는 경우에, 보안 요소의 내부 메모리 RAM에 저장될 무결성 테이블은 32KB의 저장 용량을 가져야 한다. IoT 디바이스와 같이, 저장 용량이 적은 프로세싱 디바이스에 대해, 이러한 솔루션은 보안 요소에서 너무 많은 저장 용량을 필요로 하기 때문에 적절하지 않을 수 있다.
본 개시는 이러한 상황을 개선하기 위한 것이다.
발명의 내용
본 개시는 디지털 정보를 보안 프로세싱하기 위한 보안 요소 ― 상기의 디지털 정보는 복수의 M개의 세그먼트들로 세그먼트화되고, 상기 보안 요소 외부의 메모리에 저장됨 ― 로서,
- 상기 디지털 정보의 복수의 M개의 세그먼트들을 보안 프로세싱하기 위한 보안 프로세서;
- 디지털 정보의 세그먼트를 상기 외부의 메모리로부터 상기 보안 요소로 로딩하고, 상기 보안 프로세서에 의해 상기 디지털 정보의 세그먼트를 프로세싱하기 전에 암호 알고리즘을 실행함으로써 상기의 디지털 정보의 세그먼트를 전처리하도록 구성된 시스템을 포함하며;
상기 시스템은 상기 로딩된 디지털 정보의 세그먼트의 식별 정보를 결정하고 ― 상기의 식별 정보의 결정은 상기의 디지털 정보의 세그먼트의 버전 번호를 획득하는 것을 포함함 ―; 상기의 식별 정보를 사용함으로써 상기 암호 알고리즘을 실행하도록 구성되고;
상기 시스템은 상기 디지털 정보의 복수의 M개의 세그먼트들의 각 버전 번호들을 포함하는 버전 테이블을 상기 외부의 메모리로부터 상기 보안 요소의 내부 메모리로 로딩하고, 상기 내부 메모리에 저장된 상기 버전 테이블에 로딩된 디지털 정보의 각 세그먼트의 상기 버전 번호를 판독하도록 구성되는 것을 특징으로 하는, 보안 요소에 관한 것이다.
이에 따라, 암호 알고리즘은 외부 메모리에 저장된 디지털 정보의 버전 번호(또는 외부 메모리에 저장된 디지털 정보의 조각)를 입력으로서 사용한다. 디지털 정보의 버전 번호는 상기의 디지털 정보(또는 디지털 정보의 조각)를 전처리하기 위해 암호로 사용된다. 이는 외부 메모리 내의 디지털 정보(또는 디지털 정보의 조각)와 연관되고, 보안 요소로 로딩된다. 버전 번호는 초기 값(예를 들어, 0)을 가질 수 있고, 예를 들어, 보안 요소에 의한 프로세싱 동안, 디지털 정보(또는 디지털 정보의 조각)가 변경될 때마다 증분될 수 있다. 디지털 정보(또는 디지털 정보의 조각)는 그 버전 번호에 암호로 바인딩된다. 보안 요소는 이 버전 번호를 내부에 저장하며, 이는 낮은 메모리 용량을 필요로 한다. 그 덕분에, 보안 요소는 고용량 저장을 필요로 하지 않고 악의적인 리플레이 공격으로부터 보호된다. 따라서, 본 개시는 양호한 보안 레벨을 필요로 하는 로엔드(low-end) 디바이스들에 적용될 수 있다.
바람직하게는, 본 시스템은 상기 디지털 정보의 세그먼트의 상기 식별 정보를 결정하고 ― 상기의 식별 정보의 결정은 상기의 디지털 정보의 세그먼트의 세그먼트 식별자를 획득하는 것을 더 포함함 ―, 상기의 식별 정보를 사용함으로써 상기 암호 알고리즘을 실행하도록 구성되며, 상기의 세그먼트 식별자는 상기 외부의 메모리 내의 디지털 정보의 대응하는 세그먼트에 부여된 인덱스 또는 디지털 정보의 대응하는 세그먼트의 헤더에 존재하는 식별자 중 어느 하나이다.
디지털 정보(또는 디지털 정보의 조각)의 식별자는 그 버전 번호 외에도, 디지털 정보를 전처리하기 위해 암호로 사용될 수 있다.
식별자는 단편 정보, 예를 들어, 외부 메모리 내의 디지털 정보의 조각의 인덱스이다. 전형적으로, 디지털 정보는 디지털 정보의 조각들로 분할되며, 이들은 인덱싱되고 외부 메모리에 저장된다. 디지털 정보의 조각들은 외부 메모리에서의 주어진 위치들에 적층되거나 더 일반적으로 배열될 수 있다. 디지털 정보의 조각들에 부여되는 인덱스들은 외부 메모리 내의 디지털 정보의 이들 조각들의 위치들에 의존할 수 있다.
바람직하게는, 상기의 보안 요소는 상기 암호 알고리즘을 실행 시 상기 시스템에 의해 사용될 ― 상기 보안 요소에 대해 고유하게 생성된 ― 적어도 하나의 고유 암호 키를 저장한다.
버전 번호의 사용은 디지털 정보(또는 디지털 정보의 조각)를 그 디지털 정보의 더 이전 버전으로 치환하는 것을 방지한다. 디지털 정보(또는 디지털 정보의 조각)의 식별자의 사용은 디지털 정보를 보안 요소에 로딩된 다른 유효한 디지털 정보로 치환하는 것을 방지한다. 고유 키의 사용은 디지털 정보를 다른 보안 요소 또는 디바이스로부터의 디지털 정보로 치환하는 것을 방지한다. 버전 번호, 식별자 및 고유 키의 조합된 사용은 많은 상이한 공격들로부터 절대적으로 보호하지만 높은 저장 용량을 필요로 하지 않는 종래 기술의 TAG 솔루션과 동등한 솔루션을 가질 수 있게 한다.
본 시스템은 상기 적어도 하나의 고유 암호 키 및 상기 디지털 정보의 상기 식별 정보를 입력들로서 사용함으로써, 상기 암호 알고리즘에 의해 사용될 적어도 하나의 암호 키를 생성하는 키 유도 함수를 포함할 수 있다.
암호 알고리즘은 로딩된 디지털 정보의 세그먼트를 인증하는 인증 알고리즘을 포함할 수 있다. 대안적으로 또는 추가적으로, 암호 알고리즘은 로딩된 디지털 정보를 복호화하는 복호화 알고리즘을 포함할 수 있다. 이에 따라, 디지털 정보(또는 디지털 정보의 조각)의 버전 번호 및/또는 식별자는 인증뿐만 아니라 디지털 정보의 복호화에도 사용될 수 있으며, 이는 보안성을 증가시킨다.
예를 들어, 본 시스템은 상기 디지털 정보의 세그먼트의 상기 식별 정보를 입력으로서 사용함으로써, 상기 복호화 알고리즘에 의해 사용될 초기화 벡터를 생성하도록 구성된다.
외부 메모리에 저장된 디지털 정보는 예를 들어, 접근법 "Encrypt-then-MAC"에 기초하여, 인증된 암호화 메커니즘에 의해 보호될 수 있다. 그 경우, 보안 요소에서 디지털 정보를 보안 프로세싱하기 전에, 디지털 정보를 인증한 다음 복호화할 필요가 있다. 이러한 구성에 의해, 디지털 정보의 버전 번호 및 식별자를 그 인증을 위한 입력들로서 사용하는 것은 가장 높은 보안 레벨을 제공한다. 실제로, 디지털 정보는 이러한 인증이 성공적이지 않다면 복호화되지 않을 것이다.
바람직하게는, 본 시스템은 또한, 상기의 버전 테이블의 선도 정보와 상기 보안 요소의 내부 비휘발성 메모리에 저장된 선도 카운터를 비교함으로써, 상기 버전 테이블의 상기의 선도 정보를 검증하도록 구성된다.
디지털 정보의 모든 조각들의 선도 또는 코히어런스가 버전 테이블에 의해 인증된다. 디지털 정보의 조각들의 TAG들(핑거프린트들) 대신 버전 번호들을 사용하는 것은 보안 요소 내의 내부 저장 자원들을 절약할 수 있게 한다. 예를 들어, 32B의 MAC와 같은 TAG를 각각 갖는 1KB의 조각들 또는 프래그먼트들에 저장된 디지털 정보의 1MB를 저장하는 외부 메모리의 경우에, 디지털 정보의 모든 조각들의 TAG들을 포함하는 무결성 테이블의 사이즈는 32KB일 것이다. 본 개시에서, 버전 번호가 수 바이트, 예를 들어, 3B의 크기를 가진다고 가정한다면, 보안 요소에 저장될 필요가 있는 버전 테이블의 크기는 단지 3KB이다. 따라서, 본 개시는 29KB의 내부 저장 용량을 절약할 수 있게 한다.
버전 테이블의 선도 정보의 검증은 선도에 대한 신뢰 체인을 구축함으로써 보안성을 보장한다(리플레이 방지).
내부 비휘발성 메모리는 OTP(One Time Programmable) 메모리일 수 있다.
본 시스템은 보안 요소의 시동 절차에서 버전 테이블을 로딩하도록 구성될 수 있다.
바람직하게는, 본 시스템은 로딩된 버전 테이블을 인증 및 복호화하도록 구성된다.
본 시스템은 버전 테이블의 헤더로부터 선도 정보를 판독하도록 구성될 수 있다.
바람직하게는, 보안 요소는 디지털 정보(또는 디지털 정보의 조각)의 세그먼트가 상기 보안 프로세서에 의해 프로세싱될 때 변경되는 경우에, 상기 디지털 정보의 수정된 세그먼트 및 업데이트된 버전 테이블을 상기 외부의 메모리에 기록하고, 상기 내부 비휘발성 메모리 내의 선도 카운터를 증분시키는 동작을 제어하도록 구성된 업데이트 모듈을 포함한다.
본 개시의 제2 양태는 이전에 정의된 보안 요소 및 디지털 정보를 저장하기 위한 외부 메모리를 포함하는 시스템에 관한 것이다.
본 개시의 제3 양태는 보안 요소에 의해 디지털 정보를 보안 프로세싱하기 위한 방법 ― 상기의 디지털 정보는 복수의 M개의 세그먼트들로 세그먼트화되고, 상기 보안 요소 외부의 메모리에 저장됨 ― 으로서,
- 디지털 정보의 세그먼트를 외부 메모리로부터 보안 요소로 로딩하는 단계;
- 상기의 디지털 정보의 세그먼트의 버전 번호를 획득함으로써 상기 로딩된 디지털 정보의 세그먼트의 식별 정보를 결정하는 단계;
- 상기 보안 요소의 보안 프로세서에 의해 상기의 디지털 정보의 세그먼트를 프로세싱하기 전에 상기의 식별 정보를 사용하여 암호 알고리즘을 실행함으로써 상기의 디지털 정보의 세그먼트를 전처리하는 단계;
- 상기 보안 프로세서에 의해 상기 디지털 정보의 세그먼트를 보안 프로세싱하는 단계를 포함하며;
본 방법은
상기 디지털 정보의 복수의 M개의 세그먼트들의 각 버전 번호들을 포함하는 버전 테이블을 상기 외부의 메모리로부터 상기 보안 요소의 내부 메모리로 로딩하는 단계, 및 상기 내부 메모리에 저장된 상기 버전 테이블에 로딩된 디지털 정보의 각 세그먼트의 상기 버전 번호를 판독하는 단계를 더 포함하는 것을 특징으로 한다.
본 방법은 상기의 버전 테이블의 선도 정보와 상기 보안 요소의 내부 비휘발성 메모리에 저장된 선도 카운터를 비교함으로써, 버전 테이블의 상기의 선도 정보를 검증하는 단계를 더 포함할 수 있다.
본 개시내용의 다른 특징, 목적 및 이점은 첨부된 도면을 참조하여 이루어진 비-제한적 실시예의 상세한 설명을 판독함으로써 보다 명확해질 것이다.
도 1은 제1 실시예에 따른, SoC(System on the Chip)에 내장된 보안 요소를 도시한다.
도 2는 제1 실시예에 따른, 시동 절차 동안 동작하는 보안 요소 및 외부 메모리를 간략화된 방식으로 도시한다.
도 3은 제1 실시예에 따른, 외부 메모리로부터 디지털 정보를 로딩 및 전처리(또는 판독)하는 절차 동안 동작하는 보안 요소 및 외부 메모리를 간략화된 방식으로 도시한다.
도 4는 제1 실시예에 따른, 디지털 정보의 수정된 조각 및 업데이트된 버전 테이블을 외부 메모리로 기입하는 절차 동안 동작하는 보안 요소 및 외부 메모리를 간략화된 방식으로 도시한다.
도 5는 제1 실시예에 따른, 보안 요소에 의해 수행되는 디지털 정보 ― 디지털 정보는 외부 메모리에 저장됨 ― 를 보안 프로세싱하는 방법의 흐름도를 도시한다.
도 6은 제1 실시예에 따른, 디지털 정보의 조각이 보안 요소에 의해 수정되었을 때 실행되는 업데이트 절차의 흐름도를 도시한다.
도 7은 제1 실시예에 따른 보안 요소를 개략적으로 나타낸다.
발명을 실시하기 위한 구체적인 내용
도 1은 제1 실시예에 따른, 보안 요소(100) 및 외부 메모리(200)(즉, 보안 요소(100) 외부에 있는 메모리)를 포함하는 시스템을 도시한다. 보안 요소(100)는 예를 들어, 스마트 카드 또는 칩이다. 보안 요소는 여러 프로세싱 유닛들, 여러 메모리들 및 여러 기능들(표시되지 않음)을 갖는 SoC(System on Chip)(300)에 내장될 수 있다. SoC(300)는 더 큰 모듈(400)에 통합될 수 있다. 외부 메모리(200)는 보안 요소(100)의 외부에 있다. 이는 보안 요소(100)의 보안 프로세서의 상이한 실리콘 기판 상에 구축될 수 있다. 예를 들어, 외부 메모리는 SoC(300)의 외부에 있는 모듈(400) 내에 배열된다. 그러나, 외부 메모리(200)는 SoC(300) 내에 배치될 수 있다. 예를 들어, 이 더 큰 모듈(400)은 IoT 디바이스(통상적으로 고유 식별자 및 네트워크를 통해 데이터를 전송할 수 있는 능력을 구비함), 원격통신 장치, 로케이션 시스템, 자동차 또는 비행기와 같은 차량 등일 수 있다. IoT 디바이스들의 예들은 스마트 미터들, 스마트 카메라들, 센서들, 추적기들, 태그들, 검출기들, 모니터들, 웨어러블 아이템들 및 의복, 스마트 홈 디바이스들, 의료 및 건강 관리 디바이스들, 생명 과학 디바이스들, 셋톱 박스들, 및 5G 네트워크들과 같은 원격통신 네트워크들에서의 에지 디바이스들을 포함한다.
보안 요소(100)의 상이한 예시적인 용례들(제한적이지 않음)이 아래에서 주어진다.
제1 용례에서, 보안 요소(100)는 원격통신 시스템 또는 장치의 모뎀에 통합될 수 있다. 이러한 경우에서, 보안 요소(100)는 네트워크 인증을 핸들링하고, 보안 애플리케이션들을 다운로드할 수 있다.
제2 용례에서, 보안 요소(100)는 태코그래프(tachograph)에 통합되고, 위치 데이터를 안전하게 핸들링할 수 있다.
제3 용례에서, 보안 요소(100)는 차량, 예를 들어 자동차 또는 비행기에 통합되고, 안전 데이터 전송을 안전하게 관리할 수 있다.
외부 메모리(200)는 디지털 정보를 저장한다. 용어 "디지털 정보"는 실행가능 코드에 의해 생성되거나 실행가능 코드, 또는 보안 요소(100)에 의해 사용되거나 프로세싱될 임의의 다른 데이터에 의해 사용되는 실행가능 코드 또는 정보와 같은 보안 요소(100)에 로딩될 수 있는 데이터를 표시한다.
보안 요소(100)는 이후에 설명되는 바와 같이, 외부 메모리(200)에 저장된 디지털 정보를 로딩, 전처리(또는 판독), 및 보안 프로세싱하기 위한 것이다.
외부 메모리(200)는 비휘발성 메모리일 수 있다.
본 실시예에서, 메모리 세그먼트화가 외부 메모리(200)에서 사용된다. 이는 디지털 정보가 세그먼트들("프래그먼트들"이라고도 함)로 세그먼트화되고 저장된다는 것을 의미한다. 디지털 정보의 세그먼트는 세그먼트화로부터 기인하는 디지털 정보의 조각이다. 세그먼트화는 디지털 정보를 저장, 전송, 및 전처리하기 위해 사용된다.
예를 들어, 외부 메모리(200)는 'Si'로서 지칭되는 디지털 정보의 M개의 세그먼트들을 저장하며,
Figure pct00001
이다. M개의 세그먼트들(Si)은 코드의 M1개의 세그먼트들 및 데이터의 M2개의 세그먼트들을 포함할 수 있으며,
Figure pct00002
Figure pct00003
이다. 디지털 정보의 세그먼트들은 구현에 따라, 동일한 크기를 가질 수 있거나, 상이할 수 있는 각각의 크기들을 가질 수 있다. 일부 실시예들에서, 보안 요소(100)는 캐시 구현을 가진다. 그러한 경우에서, 보안 요소(100)는 미리 결정된 크기의 (디지털 정보의 세그먼트들에 대응하는) 캐시 라인들을 로딩 및 저장하도록 구성된 캐시 제어기(통상적으로 캐시 하드웨어 구성요소)를 가질 수 있다. 다른 실시예들에서, 디지털 정보의 세그먼트들은 소프트웨어 구성요소 또는 애플리케이션을 실행할 때, 보안 프로세서에 의해 요청되는 디지털 정보의 조각들일 수 있다. 이러한 경우에서, 세그먼트들은 상이한 각각의 크기들을 가질 수 있다.
디지털 정보(Si)의 세그먼트들은 외부 메모리(200) 내의 저장 동안 그리고 외부 메모리(200)로부터 보안 요소(100)로의 전송하는 동안 보안성을 보장하기 위해 인증된 암호 알고리즘에 의해 보호된다. 제1 실시예에서, 디지털 정보를 보호하기 위해 사용되는 인증된 암호화는 잘 알려져 있는 "Encrypt-then-MAC"(EtM) 접근법에 기초한다. EtM 접근법은 인증된 암호화를 위한 매우 강한 접근법으로서 고려된다. 외부 메모리(200)는 디지털 정보(Si)의 각 세그먼트에 대해, 암호화 키(후술됨)로 암호화된 세그먼트(Si)를 포함하고, 인증 키(또한 후술됨)로 컴퓨트된 암호화된 세그먼트([Si])의 인증 요소(MAC[Si])와 연쇄된 요소([Si] |MAC[Si])를 저장한다. 인증 요소(MAC[Si])는 MAC 함수에 의해 계산될 수 있다.
본 개시에서, 괄호 '[ ]'는 요소의 암호화된 형태를 나타내고, 심볼 '|'은 두 개의 요소들의 연쇄를 나타낸다.
버전 번호(Vi)는 디지털 정보(Si)의 각 세그먼트에 기인하고, 디지털 정보(Si)의 이 세그먼트가 보안 요소(100)에 의해 변경될 때 증분된다. 디지털 정보(Si)의 하나의 세그먼트의 버전 번호(Vi)의 크기는 작을 수 있고, 일반적으로 수 바이트, 예를 들어, 3 바이트이다. 초기에, 디지털 정보가 외부 메모리(200)에 저장될 때, 디지털 정보의 모든 세그먼트들(Si)의 버전 번호들(Vi)(
Figure pct00004
)은 초기 값, 예를 들어, 0으로 설정될 수 있다(그러나 이는 1 또는 임의의 다른 값일 수 있다). 그 후, M개의 세그먼트들(Si) 중 하나의 특정 세그먼트(여기서 'Sj'로서 지칭됨)가 변경될 때마다, 그 버전 번호(Vj)는 예를 들어, 1씩 증분된다(즉, Vj=Vj+1).
또한, 제1 실시예에서, 디지털 정보의 각 세그먼트는 IDSi로서 지칭되는 관련 세그먼트 식별자를 가진다. 이 세그먼트 식별자(IDSi)는 세그먼트를 식별하는 단편 정보이다. 세그먼트 식별자(IDSi)는 외부 메모리(200) 내의 세그먼트(Si)의 인덱스일 수 있다. 통상적으로, 인덱스들은 예를 들어, 외부 메모리(200)에 저장된 세그먼트들(Si)의 각 위치들에 따라, 외부 메모리(200) 내의 디지털 정보(Si)의 세그먼트들에 부여된다. 이들 인덱스들은 보안 요소(100)에 의해 세그먼트 식별자(IDSi)로서 사용될 수 있다. 이들은 또한 버전 테이블 내의 세그먼트(Si)의 버전 번호들(Vi)을 인덱싱하기 위해 사용될 수 있다. 보안 요소(100)에서의 캐시 구현의 경우에, 캐시 블록 어드레스들은 코드를 페칭하거나 데이터를 로딩하기 위해 어드레스들에 의해 주어지고, 세그먼트(또는 블록) 식별자(IDSi)로서 사용될 수 있다. 이들 캐시 블록 어드레스들은 외부 메모리(200) 내의 블록들(세그먼트들)의 인덱스들에 대응한다. 동일한 캐시 블록 어드레스들은 버전 테이블 내의 버전 번호들을 인덱싱하기 위해 사용될 수 있다.
본 실시예에서, 외부 메모리(200)에 저장된 디지털 정보(Si)의 각 세그먼트의 버전 번호(Vi) 및 식별자(IDSi)는 인증 암호화 알고리즘에서 입력들로서 사용된다. 예를 들어, 세그먼트(Si)를 인증하기 위해 사용되는 MAC 알고리즘과 같은 인증 알고리즘은 아래에서 표현되는 바와 같이, 세그먼트(Si)의 버전 번호(Vi) 및 식별자(IDSi)를 입력들로서 취하는 키 유도 함수(KDF)에 의해 마스터 키(k1)(또는 소스 키(k1))로부터 유도되는 인증 키(k1_Si)를 사용한다:
k1_Si = KDF(k1,Vi, IDSi)
추가적으로, 보안을 증가시키기 위해, 세그먼트(Si)의 버전 번호(Vi) 및 식별자(IDSi)는 또한 디지털 정보(Si)의 세그먼트를 암호화하기 위해 사용될 수 있다. 예를 들어, 암호화 알고리즘은 세그먼트(Si)의 버전 번호(Vi) 및 식별자(IDSi)를 입력들로서 취하는 키 유도 함수(KDF)에 의해 마스터 키(k2)(또는 소스 키(k2))로부터 유도되는 암호화 키(k2_Si)를 사용한다:
k2_Si = KDF(k2,Vi, IDSi)
키들(k1 및 k2)은 비밀 키들일 수 있다. 바람직하게, 이들 키들(k1 및 k2)은 보안 요소(100)에 대해 고유하게 생성된다. 이들은 보안 요소(100) 자체에 의해 생성될 수 있다. 키들(k1 및 k2)은 제1 실시예에서 상이하다. 그러나, 이들은 다른 실시예들에서 동일한 키일 수 있다.
모든 암호화 및 인증된 세그먼트들([Si] |MAC[Si])(
Figure pct00005
)은 외부 메모리(200)에 저장된다. 이들은 외부 메모리(200)의 메모리 영역 내에 적층(및 정렬)될 수 있다.
외부 메모리(200)는 또한, 도 2 내지 도 4에서 "CtrlObj"로서 지칭되는 버전 테이블을 저장한다. 버전 테이블(CtrlObj)은 외부 메모리(200)에 저장된 디지털 정보(Si)의 모든 세그먼트들의 각 현재(유효) 버전 번호들(Vi)(
Figure pct00006
)을 포함한다. 버전 테이블(CtrlObj)에 포함되는 버전 번호들(Vi)은 세그먼트들(Si)이 외부 메모리(200)에 배열되는 순서와 동일한 순서로 배열될 수 있다. 보다 일반적으로, 버전 테이블(CtrlOb) 내의 버전 번호(Vi)는 대응하는 세그먼트들(Si)이 외부 메모리(200)에서 인덱싱되는 방식과 동일한 방식으로 인덱싱될 수 있다. 이는 세그먼트들(Si)을 이들의 정렬 번호들 또는 인덱스들에 의해 식별할 수 있게 한다. 대안적으로, 디지털 정보의 세그먼트들은 세그먼트에 세그먼트 식별자들을 가질 수 있다. 세그먼트들의 헤더들에 존재하는 이들 세그먼트 식별자들은 버전 테이블(CtrlObj) 내의 버전 번호들(Vi)과 연관될 수 있다.
또한, 선도 정보가 버전 테이블(CtrlObj)에 기인된다. 통상적으로, 이 선도 정보는 'CtrlObj_Version'으로서 지칭되는 버전 테이블의 버전 번호이다. 이 선도 정보는 디지털 정보가 초기에 외부 메모리(200) 내의 세그먼트들에 저장될 때 버전 테이블(CtrlObj)에 기인되는 초기 값, 예를 들어, 0을 가진다. 이는 후술될 바와 같이, 버전 테이블(CtrlObj)의 내용이 변경될 때마다 증분될 수 있다. 버전 테이블(CtrlObj)의 선도 정보(CtrlObj_Version)는 외부 메모리(200)에, 예를 들어, 버전 테이블(CtrlObj)의 헤더에 저장된다.
버전 테이블(CtrlObj)은 또한 예를 들어, 인증된 암호 알고리즘을 사용함으로써, 외부 메모리(200) 내의 저장 및 보안 요소(100)와 외부 메모리(200) 사이의 전송에 대해 보호될 수 있다. 예를 들어, 버전 테이블(CtrlObj)은 키(k1)로 암호화되고, 그 후 버전 테이블(CtrlObj)(여기서 암호화된 형태)의 인증 요소는 MAC 알고리즘과 같은 인증 알고리즘으로 키(k2)를 사용하여 컴퓨트된다. 외부 메모리(200)는 암호화된 버전 테이블([CtrlObj]k1) 및 그 인증 요소(MAC[CtrlObj])를 저장한다. 임의의 다른 인증된 암호화 알고리즘이 사용될 수 있다.
보안 요소(100)는 보안 중앙 프로세싱 유닛(CPU)(또는 보안 프로세서)(110), 복수의 내부 메모리들(121, 122, 130), 및 로딩 및 전처리 시스템(140)을 포함한다.
보안 프로세서로도 알려진 보안 CPU(110)는 보안 필수 애플리케이션들에 대한 높은 보증 레벨 증명을 갖는 보안 피쳐들을 가진다. 이는 통합된 IP 코어(intellectual property core)일 수 있다.
제1 내부 메모리(121)는 중앙 프로세싱 유닛(110)에 의한 프로세싱 전에 디지털 정보(Si)의 세그먼트들을 저장하기 위한 것이다. 이는 예를 들어, 캐시 메모리이다.
제2 내부 메모리(122)는 보안 CPU(110)에 의해 요청된 디지털 정보의 세그먼트들의 버전 테이블(CtrlObj)을 저장하기 위한 것이다. 이는 RAM과 같은 휘발성 메모리일 수 있다.
제1 및 제2 내부 메모리들(121, 122)은 내부 휘발성 메모리 시스템(120)의 일부이다. 이들은 별개의 메모리들 또는 하나의 메모리의 상이한 영역들일 수 있다.
제3 내부 메모리(130)는 키 및 카운터와 같은 데이터를 저장하기 위한 영구(비휘발성) 메모리이다. 더 정확하게는, 내부 메모리(130)는 로딩 및 전처리 시스템(140) 또는 보안 프로세서(110)에 의해 실행되는 암호 알고리즘들에서 사용될 마스터 키들(k1 및 k2)과 같은 키들, 및 버전 테이블(CtrlObj)에 관련된 선도 카운터 'FC'를 저장할 수 있다. 영구 내부 메모리(130)는 OTP(One Time Programmable) 비휘발성 메모리일 수 있다.
로딩 및 전처리 시스템(140)은 다음을 포함하여 여러 기능들을 가진다:
- 버전 테이블(CtrlObj)을 외부 메모리(200)로부터 보안 요소(100)로 로딩하는 기능,
- 디지털 정보의 조각들(세그먼트들)을 외부 메모리(200)로부터 보안 요소(100)로 로딩하는 기능,
- 제2 내부 메모리(122)(RAM)에 저장될 버전 테이블(CtrlObj)을 전처리하는 기능,
- 제1 내부 메모리(121)(캐시 메모리)에 저장되고 보안 프로세서(110)에 의해 프로세싱될 디지털 정보의 조각들(세그먼트들)을 전처리하는 기능, 및
- 로딩된 버전 테이블(CtrlObj)의 선도를 체크하는 기능.
로딩 및 전처리 시스템(140)의 이들 기능들은 이하에 설명될 구성요소들(141-145)에 의해 구현된다. 이들은 하드웨어 구성요소들, 또는 소프트웨어 구성요소들일 수 있거나, 또는 하드웨어 구성요소들과 소프트웨어 구성요소들의 혼합에 의한 것일 수 있다. 보안 프로세서(110)는 소프트웨어 구성요소들을 실행하도록 배열된다. 도 7에서, 구성요소들(141-145)은 보안 프로세서(110)의 외부에 표현되지만, 이들은 적어도 부분적으로 보안 프로세서(110)(특히 소프트웨어 구성요소들) 내에 배열될 수 있다.
로딩 및 전처리 시스템(140)은 제1 로더(141), 제2 로더(142), 인증 검증 모듈(143), 복호화 모듈(144) 및 선도 체킹 모듈(145)(또는 리플레이 방지 체킹 모듈)을 가진다.
제1 로더(141)는 버전 테이블(CtrlObj)을 외부 메모리(200)로부터 로딩하기 위한 것이다. 제2 로더(142)는 디지털 정보(Si)의 세그먼트들을 외부 메모리(200)로부터 로딩하기 위한 것이다.
인증 검증 모듈(143)은 버전 테이블(CtrlObj) 및 디지털 정보(Si)의 세그먼트들과 같은 로딩된 데이터를 인증하도록 구성된다. 본 실시예에서, 이는 MAC 함수 및 키 유도 함수(KDF)를 구현하여, 이들 세그먼트들의 버전 번호들 및 식별자들을 입력들로서 사용하여 마스터 키(k1)로부터, 디지털 정보의 세그먼트들을 인증하기 위한 인증 키들로서 사용될 키들을 유도한다.
복호화 모듈(144)은 버전 테이블(CtrlObj) 및 디지털 정보(Si)의 세그먼트들과 같은 로딩된 데이터를 복호화하도록 구성된다. 본 실시예에서, 이는 복호화 알고리즘 및 키 유도 함수(KDF)를 구현하여, 이들 세그먼트들의 버전 번호들 및 식별자들을 입력들로서 사용하여 마스터 키(k2)로부터, 디지털 정보의 세그먼트들을 복호화하기 위한 복호화 키들로서 사용될 키들을 유도한다.
대안적으로, 키 유도 함수는 인증 검증 모듈(143)과 복호화 모듈(144) 양자에 의해 사용되는 하나의 개별 구성요소(146)(도 7에서 점선 블록으로 표현됨)에서 구현될 수 있다.
선도 체킹 모듈(145)은 디지털 정보를 보안 프로세싱하는 방법의 설명에서 후술될 바와 같이, 이 버전 테이블(CtrlObj)이 외부 메모리(200)로부터 로딩될 때, OTP 메모리(130) 내의 내부 선도 카운터(FC)에 대한 버전 테이블(CtrlObj)의 선도를 체크하도록 구성된다.
보안 요소(100)는 본 설명에서 이후에 설명될 바와 같이, 보안 프로세서(110)가 디지털 정보의 하나 이상의 세그먼트를 변경했을 때, 외부 메모리(200)를 업데이트하기 위한 갱신 모듈(150)을 더 포함할 수 있다.
호스트 프로세서 또는 CPU(도시되지 않음)는 보안 요소(100)의 제어 하에서, 예를 들어, 버전 테이블 또는 세그먼트들을 로딩하는 일부 동작들을 실행하기 위해, 보안 요소(100)의 외부에, 예를 들어, SoC(300)에 제공될 수 있다. 이에 따라, 로딩은 보안 요소(100)의 요청 시, 시스템 버스 또는 호스트 CPU를 통해 수행될 수 있다.
보안 요소(100)는 후술될 바와 같이, 보안 CPU(110)가 데이터(통상적으로 디지털 정보의 세그먼트들 및 버전 테이블(CtrlObj))를 암호화 및 인증할 수 있게 하는 MAC 함수와 같은 인증 기능 및 암호 암호화의 기능을 포함하는 다른 암호 기능들을 가진다. 암호 암호화의 기능 및 인증 기능은 구성요소들(148, 149)에 의해 구현된다. 후자는 소프트웨어 구성요소들, 또는 하드웨어 구성요소들, 또는 하드웨어와 소프트웨어 구성요소들의 혼합이다.
보안 프로세서, 또는 보안 중앙 프로세싱 유닛(CPU)(110)은 내부(캐시) 메모리(121)에 로딩된 디지털 정보의 조각들을 보안 프로세싱 또는 사용하도록 구성된다. 이는 보안 필수 애플리케이션들을 실행하기 위한 것이다. 보안 프로세서(110)는 또한, 인증된 복호화 및 인증된 암호화와 같은 보안 요소의 동작들을 제어하도록 구성된다. 또한, 디지털 정보의 세그먼트가 프로세싱 동안 변경되었을 때, 보안 CPU(110)는 내부 메모리(122) 내의 버전 테이블(CtrlObj)의 업데이트 그리고 또한 원자적 트랜잭션에 의해 수행되어야 하는 영구 메모리들(200 및 130)의 업데이트(즉, 외부 메모리(200) 내의 변경된 세그먼트(들) 및 버전 테이블(CtrlObj)의 업데이트 및 내부 메모리(130) 내의 선도 카운터(FC)의 업데이트)를 제어할 수 있다.
업데이트 모듈(150)은 후술될 바와 같이, 보안 프로세서(110)의 제어 하에서, 프로세싱 동안 디지털 정보의 세그먼트가 변경되었을 때, OTP 메모리(130) 내의 선도 카운터를 증분시키고 외부 메모리(200)를 업데이트하는 기능을 가진다. 이는 대부분 소프트웨어에 기반할 수 있다. 내부 OTP 메모리(130)에서 선도 카운터를 증분시키는 동작과, 외부 메모리(200)에 디지털 정보의 변경된 세그먼트 및 업데이트된 버전 테이블(CtrlObj)을 기록함으로써 외부 메모리(200)를 업데이트하는 동작은 바람직하게는, 기능상 이유들로 단일 원자적 트랜잭션에 의해 함께 실행된다.
보안 요소(100)는 또한 외부 비휘발성 메모리(200)에 직접 액세스하기 위한 하드웨어 인터페이스(160)를 가진다.
보안 요소(100)의 구성요소들은 바람직하게는 신뢰되며, 이는 이들이 결함을 유도하도록 조작될 수 없다는 것을 의미한다.
보안 요소(100)에 의해 외부 메모리(200)에 저장된 디지털 정보를 보안 프로세싱하는 방법이 이제 도 2 내지 도 6을 참조하여 설명될 것이다. 본 방법은 다음과 같은 세 개의 절차들로 나뉠 수 있다:
- 보안 요소(100)를 스위치 온한 후에 실행되는 시동 절차(도 2 및 도 5);
- 시동 절차에 뒤따르고 보안 프로세서(110)에 의해 디지털 정보를 보안 프로세싱하기 전에 실행되는 판독 또는 전처리 절차(도 3 및 도 5); 및
- 보안 프로세서에 의한 프로세싱 동안 디지털 정보의 조각이 변경될 때 실행되는 업데이트 절차(도 4 및 도 6).
시동 절차(도 2 및 도 5)
초기에, 보안 요소(100)가 스위치 온된다. 후속해서, 부팅 또는 시동 절차가 보안 요소(100)에 의해 실행된다. 이러한 시동 절차 동안, 보안 요소(100)는 부팅 프로세스를 보안할 수 있는 보안 프로토콜(예를 들어, 보안 부팅)을 실행할 수 있다. 시동 절차에서, 제1 로더(141)가 단계 S50에서, 외부 메모리(200)로부터 판독되는 버전 테이블(CtrlObj)을 로딩한다. 더 정확하게는 암호화된 형태의 버전 테이블(CtrlObj)이 그 MAC와 연쇄되고, [CtrlObj]k1|MAC[CtrlObj])가 외부 메모리(200)로부터 보안 요소(100)로 로딩된다. 그 후, 인증 검증 모듈(143)이 단계 S51에서, 버전 테이블(CtrlObj)을 인증한다. 이를 위해, 인증 검증 모듈(143)은 키 k2를 사용하여 로딩된 암호화된 버전 테이블([CtrlObj]k1)의 MAC를 컴퓨트하고, 컴퓨트된 MAC를 버전 테이블로 로딩된 MAC(MAC[CtrlObj])와 비교한다. 인증이 성공적으로 이루어진다면, 암호화된 버전 테이블([CtrlObj]k1)이 단계 S52에서 키 k1을 사용하여 복호화 모듈(144)에 의해 복호화된다. 인증이 성공적이지 않다면, 단계 S51에 이어서 에러 단계 S70이 뒤따른다. 예를 들어, 에러 단계 S70에서, 디지털 정보를 프로세싱하는 방법이 중단(인터럽트)된다.
버전 테이블(CtrlObj)의 키 k2에 의한 인증 및 키 k1에 의한 복호화 후에, 단계 S53에서, 버전 테이블(CtrlObj)의 선도가 선도 검증 모듈(145)에 의해 체크된다. 이를 위해, 버전 테이블(CtrlObj)의 헤더에 포함된 선도 정보(CtrlObj_Version)는 OTP 메모리(130)에 저장된 선도 카운터(FC)와 비교된다.
버전 테이블(CtrlObj)의 선도 정보(CtrlObj_Version)가 OTP 메모리(130)에 저장된 선도 카운터(FC)와 일치한다면, 버전 테이블(CtrlObj)의 선도가 성공적으로 체크되고, 본 방법은 디지털 정보(Si)의 세그먼트들을 로딩 및 전처리하는 단계들 S54 내지 S59로 진행한다. 로딩된 버전 테이블의 선도의 체크가 성공적이지 않다면, 본 방법은 에러 단계 S71로 진행한다. 예를 들어, 에러 단계 S71에서, 디지털 정보를 프로세싱하는 방법이 중단(인터럽트)된다.
판독 또는 전처리 절차(도 3 및 도 5)
시동 절차 다음에는 외부 메모리(200)로부터 디지털 정보의 세그먼트들을 판독 또는 전처리하기 위해 보안 요소(100)에 의해 수행되는 판독 또는 전처리 절차가 이어진다.
로딩 및 전처리 절차는 디지털 정보(Si)(
Figure pct00007
)의 복수의 세그먼트들 각각에 대해 반복적으로 반복되는 단계들 S54 내지 S59(후술됨)을 포함한다. 로딩 및 전처리 절차 동안, 인덱스 'i'는 디지털 정보의 일부 세그먼트들이 외부 메모리(200)에서 연속적으로 페칭되고, 그 후 시간에 걸쳐 보안 요소(100)에 의해 전처리되는 순서를 나타낸다. 이러한 페칭의 순서(또는 로딩의 순서)는 디지털 정보의 세그먼트들이 외부 메모리(200)에 적층되는 순서에 반드시 대응하는 것은 아니다. 다시 말해, Si가 보안 요소(100)에 의해 현재 로딩 및 전처리된 디지털 정보의 세그먼트인 것으로 가정될 때, Si+1은 로딩 및 전처리될 디지털 정보의 다음 세그먼트이다. 그러나, Si 및 Si+1은 외부 메모리에서 연속적으로 적층된 세그먼트들이 아닐 수 있다.
단계 S54에서, 보호된 형태의 디지털 정보의 세그먼트(Si)가 로딩된다. 더 구체적으로는, 제2 로더(142)가 키 k1_Si로 암호화된 디지털 정보의 세그먼트(Si)를 포함하고, 또한 키 k2_Si로 컴퓨트된 암호화된 세그먼트([Si])의 인증 요소(MAC[si])와 연쇄되는 요소([Si]|MAC[Si])를 로딩한다.
단계 S55에서, 인증 검증 모듈(143)은 내부 메모리(122)에 저장된 버전 테이블(CtrlObj)로부터 버전 번호(Vi)를 획득한다. 이는 또한, 버전 테이블(CtrlObj)로부터 세그먼트 식별자(IDSi)를 획득하며, 이 IDSi는 버전 테이블(CtrlObj) 내의 버전 번호(Vi)의 인덱스에 대응한다. 그 후, 단계 S56에서, 인증 검증 모듈(143)은 암호화된 세그먼트([Si])의 MAC를 컴퓨트하고 이를 [Si]와 로딩된 MAC[Si]와 비교함으로써,[Si]를 인증한다. 이 MAC를 컴퓨트하기 위해, 모듈(143)은 메모리(130)에서 판독되는 마스터 키 k2로부터 키 k2_Si를 유도하고, (단계 S55에서 판독된) 세그먼트(Si)의 버전 번호(Vi) 및 식별자(IDSi)를 키 유도 함수의 입력들로서 사용한다. 인증이 성공적으로 이루어진다면(즉, 컴퓨트된 MAC가 로딩된 MAC와 일치한다면), 암호화된 세그먼트([Si])는 단계 S58에서 복호화 모듈(143)에 의해 복호화된다. 복호는 (메모리(130)로부터 판독된) 마스터 키 k1로부터 컴퓨트된 키 k1_Si를 사용하고, 단계 S57에서 메모리(122)에 저장된 버전 테이블(CtrlObj)로부터 획득된 세그먼트(Si)의 버전 번호(Vi) 및 식별자(IDSi)를 키 유도 함수(KDF)의 입력으로서 사용한다. 인증이 성공적이지 않다면, 단계 S56에 이어서 에러 단계 S72가 뒤따른다. 예를 들어, 에러 단계 S72에서, 디지털 정보를 프로세싱하는 방법이 중단(인터럽트)된다. 대신에, 디지털 정보의 세그먼트(Si)가 삭제될 수 있다.
전처리 절차 동안, 단계들 S55 및 S57에서, 로딩 및 전처리 시스템(140)은 내부 메모리(122)(예를 들어, RAM)로부터 디지털 정보의 세그먼트(Si)의 버전 번호(Vi) 및 식별자(IDSi)를 획득하고, 세그먼트(Si)를 전처리하기 위해 사용되는 인증 및 복호화의 암호 알고리즘들을 실행 시 세그먼트(Si)의 이러한 식별 정보를 입력으로서 제공한다. 대안적으로, 내부 메모리(122)에 저장된 버전 테이블(CtrlObj)로부터의 세그먼트(Si)의 식별 정보는 두 개의 암호 알고리즘들 중 하나만에 의해, 바람직하게는 인증 알고리즘에 의해, 사용될 수 있다. 그러나, 복호화가 세그먼트(Si)의 식별 정보도 사용한다면 보안성이 증가된다.
복호화 키를 생성하기 위해 세그먼트 버전 번호 및 세그먼트 식별자를 입력들로서 사용하는 대신에, 버전 번호(Vi) 및 식별자(IDSi)는 디지털 정보의 세그먼트([Si])를 복호화하기 위해 복호화 모듈(144)에 의해 사용될 초기화 벡터(IV)를 생성하기 위해 사용될 수 있다.
디지털 정보의 세그먼트(Si)의 인증 및 복호화 후에, 세그먼트(Si)는 단계 S59에서 보안 프로세서(110)의 캐시 메모리(121)에 로딩된다.
그 후, 단계 S60에서, 디지털 정보의 세그먼트(Si)는 보안 프로세서(110)에 의해 액세스 가능하고, 보안 프로세서(110)에 의해 보안 프로세싱될 수 있다. 예를 들어, 보안 프로세서는 디지털 정보의 세그먼트(Si)를 프로세싱함으로써 보안(또는 보안 필수) 애플리케이션을 실행한다.
단계들 S54 내지 S59는 프로세스가 에러로 인해 미리 중단되지 않는 한, 외부 메모리(200)로부터 보안 요소(100)로 연속적으로 로딩되는 디지털 정보의 세그먼트들(Si)에 대해 반복적으로 반복된다.
업데이트 절차(도 4 및 도 6)
디지털 정보의 세그먼트(여기서 'Sj'로서 지칭됨,
Figure pct00008
)가 보안 프로세서(110)에 의해 프로세싱될 때, 이는 단계 S80에서, 이의 프로세싱 동안 변경될 수 있다. 디지털 정보의 세그먼트(Sj)의 변경된 버전은 Sj'로서 지칭된다. 이러한 경우에, 업데이트 절차가 이루어지고, 이제 도 4 및 도 6을 참조하여 설명될 것이다.
초기 세그먼트(Sj)가 변경된 세그먼트(Sj')로 변경되었을 때, 보안 프로세서(110)는 단계 S81에서, 내부 메모리(122)에 저장된 버전 테이블(CtrlObj)에서 변경 세그먼트(Sj')의 버전 번호를 증분시킴으로써 내부 메모리(122)에 저장된 버전 테이블(CtrlObj)을 업데이트한다. 초기 세그먼트(Sj)의 버전 번호가 Vj인 것으로 가정한다면, 변경된 세그먼트(Sj')의 새로운 버전 번호는 Vj+1이다. 내부 메모리(122) 내의 버전 테이블(CtrlObj)을 업데이트하는 단계 S81에서, 보안 프로세서(110)는 또한, 여기서 내부 메모리(122)에 저장된 버전 테이블(CtrlObj)의 헤더에서, 버전 테이블(CtrlObj)의 버전 번호(CtrlObj_Version)를 업데이트한다. 버전 테이블(CtrlObj)의 버전 번호(CtrlObj_Version)는 1씩 증분된다(CtrlObj_Version=CtrlObj_Version+1). (내부 메모리(122)에 저장된) 업데이트된 버전 테이블(CtrlObj)은 CtrlObj'로서 지칭된다.
보안 요소(100)는 또한, 외부 메모리(200)를 업데이트할 필요가 있다. 더 구체적으로는, 변경된 디지털 정보(Sj') 및 업데이트된 버전 테이블(CtrlObj')을 외부 메모리(200)에 기록할 필요가 있다. 이를 위해, 보안 프로세서(110)는 단계 S82에서, 외부 메모리(200)로의 변경된 세그먼트(Sj') 및 업데이트된 버전 테이블(CtrlObj')의 전송을 제어하기 전에, 업데이트된 버전 테이블(CtrlObj') 및 변경된 세그먼트(Sj')를 인증된 암호 알고리즘에 제출한다. 외부 메모리에 저장된 데이터를 준비하기 위해 사용된 것과 동일한 인증된 암호화 알고리즘이 사용된다. 본 실시예에서, 인증된 암호화 알고리즘은 Encrypt-then-Mac 접근법을 따른다. 버전 테이블(CtrlObj')의 암호화는 키 k1을 사용하고, [[CtrlObj']k1에 적용된 MAC 함수는 키 k2를 사용한다. 디지털 정보의 변경된 세그먼트(Sj')의 암호화는 유도된 키 k1_Vj+1을 사용하며, 여기서 k1_Vj+1=KDF(k1,Vj+1,IDSj)이다. 변경된 세그먼트(Sj')의 세그먼트 식별자는 (변경 전) 대응하는 세그먼트(Sj)의 세그먼트 식별자와 동일하다는 점을 유념한다. 암호화된 형태의 디지털 정보의 변경된 세그먼트([Sj'])의 인증은 유도된 키 k2_Vj+1을 사용하며, 여기서 k2_Vj+1=KDF(k2,Vj+1,IDSj')이다.
그 후, 단계 S83에서, 보안 프로세서(110)의 제어하에, 업데이트 모듈(150)은 OTP 메모리(130) 내의 버전 테이블의 선도 카운터(FC)를 증분시키고, 새로운 버전 테이블(CtrlObj') 및 변경된 디지털 정보의 수정된 세그먼트(Sj')를 외부 메모리(200)에 기록한다. 선도 카운터(FC)는 여기서 1씩 증분된다. 이들 모든 동작들(내부 메모리(130)에서 FC를 증가시키고 외부 메모리(200)에 CtrlObj' 및 Sj'를 기록하는 동작들)은 단일 원자적 트랜잭션에 의해 함께 실행된다. 이러한 동작은 단지 두 개의 지속적인 상태들, 즉 변경이 없는 원래의 상태 및 변경된 최종 상태를 가진다. 동작은 빠르거나 긴 시간이 걸릴 수 있다.
상기한 업데이트 절차와 유사한 절차가 초기에 보안 요소(100)에 의해 수행되어, 디지털 정보의 세그먼트들을 암호화 및 인증된 형태로 외부 메모리(200)에 저장할 수 있다. 보안 요소(100)는 예를 들어, 통신 네트워크를 통해 또는 다른 기계로의 로컬 연결을 통해, 디지털 정보 제공자로부터 외부 메모리에 저장될 디지털 정보를 안전하게 로딩하도록 구성된 펌웨어 보안 로더를 가질 수 있다. 보안 요소는
- 로딩된 디지털 정보를 디지털 정보의 세그먼트들로 세그먼트화하고, 이들 세그먼트들을 (변경된 세그먼트(Sj')에 대한 업데이트 절차에서 설명된 방식과 동일한 방식으로) 인증 및 암호화하며, 이들을 외부 메모리에 기록하도록,
- 버전 테이블(CtrlObj)을 생성하고, 이 버전 테이블(CtrlObj)을 (업데이트 절차에서 설명된 방식과 동일한 방식으로) 인증 및 암호화한 다음, 이를 외부 메모리에 기록하도록 구성될 수 있다.
제2 실시예는 제1 실시예에 기초하며, 인증된 암호 알고리즘에 의하는 것만 이와 상이하다. 제2 실시예에서, 인증된 암호화는 "MAC-then-Encrypt-then-MAC" 타입의 접근법을 따른다. 이 접근법은 디지털 정보의 각 세그먼트(Si)에 대해, (마스터 키 k0으로부터 버전 번호(Vi)를 입력으로서 사용하여 유도된) 제1 키 k0_Vi를 사용하여 클리어하게 세그먼트(Si)의 제1 MAC 'MACi1'을 컴퓨트하고, 그 다음 (마스터키 k1로부터 버전 번호(Vi)를 입력으로서 사용하여 유도된) 제2 키 key k1_Si로 연쇄된 세그먼트(Si) 및 제1 MAC를 암호화하며(즉, Si|MACi1), 그 다음 (마스터키 k2로부터 버전 번호(Vi)를 입력으로서 사용하여 유도된) 제3 키 k2_Si를 사용하여 암호화의 결과(즉, [Si]|[MACi1])의 제2 MAC 'MACi2'를 컴퓨트하여, 보호되는 세그먼트([Si]|[MACi1]|MACi2)를 획득하는 것으로 이루어진다.
제3 실시예는 제1 또는 제2 실시예에 기초하고, 입력으로서 인증 동작 및/또는 복호화 동작에서 사용되는 디지털 정보의 세그먼트의 식별 정보가 단지 디지털 정보의 세그먼트의 버전 번호만을 포함한다는 점에서만 이들과 상이하다. 이러한 실시예는 예를 들어, 보안 요소가 디지털 정보의 하나의 세그먼트 또는 조각만을 로딩하는 경우에 적절하다.
상이한 타입들의 MAC 함수가 사용될 수 있다. 예를 들어, CMAC(Cipher-based Message Authentication Code) 함수, 즉 블록 암호-기반 메시지 인증 코드 알고리즘, 또는 HMAC(hash-based message authentication code) 알고리즘, 즉 크립토그래픽 해시 함수 및 비밀 크립토그래픽 키를 포함하는 특정 유형의 메시지 인증 코드(MAC)가 사용될 수 있다. MAC 함수 대신에, 임의의 다른 인증 함수가 사용될 수 있다.

Claims (14)

  1. 디지털 정보를 보안 프로세싱하기 위한 보안 요소(100) ― 상기 디지털 정보는 복수의 M개의 세그먼트들로 세그먼트화되고, 상기 보안 요소(100) 외부의 메모리(200)에 저장됨 ― 로서,
    - 상기 디지털 정보의 복수의 M개의 세그먼트들을 보안 프로세싱하기 위한 보안 프로세서(110);
    - 디지털 정보(Si)의 세그먼트를 상기 외부의 메모리(200)로부터 상기 보안 요소(100)로 로딩하고, 상기 보안 프로세서(110)에 의해 상기 디지털 정보의 세그먼트를 프로세싱하기 전에 암호 알고리즘을 실행함으로써 상기 디지털 정보의 세그먼트를 전처리하도록 구성된 시스템(140)을 포함하며;
    상기 시스템(140)은 상기 로딩된 디지털 정보의 세그먼트의 식별 정보를 결정하고 ― 상기 식별 정보의 결정은 상기 디지털 정보의 세그먼트의 버전 번호를 획득하는 것을 포함함 ―; 상기 식별 정보를 사용함으로써 상기 암호 알고리즘을 실행하도록 구성되고;
    상기 시스템(140)은 상기 디지털 정보의 복수의 M개의 세그먼트들의 각 버전 번호들을 포함하는 버전 테이블(CtrlObj)을 상기 외부의 메모리(200)로부터 상기 보안 요소(100)의 내부 메모리(122)로 로딩하고, 상기 내부 메모리(122)에 저장된 상기 버전 테이블(CtrlObj)에 로딩된 디지털 정보의 각 세그먼트의 상기 버전 번호(Vi)를 판독하도록 구성되는 것을 특징으로 하는, 보안 요소.
  2. 제1항에 있어서, 상기 시스템(140)은 상기 디지털 정보의 세그먼트의 상기 식별 정보를 결정하고 ― 상기 식별 정보의 결정은 상기 디지털 정보의 세그먼트의 세그먼트 식별자를 획득하는 것을 더 포함함 ―, 상기 식별 정보를 사용함으로써 상기 암호 알고리즘을 실행하도록 구성되며, 상기 세그먼트 식별자는 상기 외부의 메모리 내의 디지털 정보의 대응하는 세그먼트에 부여된 인덱스 또는 디지털 정보의 대응하는 세그먼트의 헤더에 존재하는 식별자 중 어느 하나인 것인, 보안 요소.
  3. 제1항 및 제2항 중 어느 한 항에 있어서, 상기 보안 요소는 상기 암호 알고리즘을 실행 시 상기 시스템에 의해 사용될 ― 상기 보안 요소에 대해 고유하게 생성된 ― 적어도 하나의 고유 암호 키를 저장하는 것인, 보안 요소.
  4. 제3항에 있어서, 상기 시스템(140)은 상기 적어도 하나의 고유 암호 키 및 상기 디지털 정보(Si)의 상기 식별 정보를 입력들로서 사용함으로써, 상기 암호 알고리즘에 의해 사용될 적어도 하나의 암호 키를 생성하는 키 유도 함수를 포함하는 것인, 보안 요소.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 암호 알고리즘은 상기 로딩된 디지털 정보(Si)의 세그먼트를 인증하는 인증 알고리즘(MAC)을 포함하는 것인, 보안 요소.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 암호 알고리즘은 상기 로딩된 디지털 정보(Si)의 세그먼트를 복호화하는 복호화 알고리즘을 포함하는 것인, 보안 요소.
  7. 제6항에 있어서, 상기 시스템(140)은 상기 디지털 정보(Si)의 세그먼트의 상기 식별 정보를 입력으로서 사용함으로써, 상기 복호화 알고리즘(144)에 의해 사용될 초기화 벡터(IV)를 생성하도록 구성된 것인, 보안 요소.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 시스템(140)은 또한, 상기 버전 테이블(CtrlObj)의 선도(freshness) 정보(CtrlObj_Version)와 상기 보안 요소(100)의 내부 비휘발성 메모리(130)에 저장된 선도 카운터(FC)를 비교함으로써, 상기 버전 테이블(CtrlObj)의 상기 선도 정보(CtrlObj_Version)를 검증하도록 구성된 것인, 보안 요소.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 시스템(140)은 상기 보안 요소(100)의 시동 절차에서 상기 버전 테이블(CtrlObj)을 로딩하도록 구성된 것인, 보안 요소.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 시스템(140)은 상기 로딩된 버전 테이블(CtrlObj)을 인증 및 복호화하도록 구성된 것인, 보안 요소.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 디지털 정보의 세그먼트(Sj)가 상기 보안 프로세서(110)에 의해 프로세싱될 때 변경되는 경우에, 상기 디지털 정보의 수정된 세그먼트(Sj') 및 업데이트된 버전 테이블(CtrlObj')을 상기 외부의 메모리(200)에 기록하고, 상기 내부 비휘발성 메모리(130) 내의 선도 카운터를 증분시키는 동작을 제어하도록 구성된 업데이트 모듈(150)을 더 포함하는, 보안 요소.
  12. 제1항 내지 제12항 중 어느 한 항에 따른 보안 요소(100) 및 디지털 정보를 저장하기 위한 외부 메모리(200)를 포함하는 시스템.
  13. 보안 요소(100)에 의해 디지털 정보를 보안 프로세싱하기 위한 방법 ― 상기 디지털 정보는 복수의 M개의 세그먼트들로 세그먼트화되고, 상기 보안 요소(100) 외부의 메모리(200)에 저장됨 ― 으로서, 상기 보안 요소(100)에 의해 수행되는:
    - 디지털 정보의 세그먼트([Si]k1|MAC[Si])를 상기 외부의 메모리(200)로부터 상기 보안 요소(100)로 로딩하는 단계(S54);
    - 상기 디지털 정보의 세그먼트의 버전 번호(Vi)를 획득함으로써 상기 로딩된 디지털 정보의 세그먼트의 식별 정보를 결정하는 단계;
    - 상기 보안 요소(100)의 보안 프로세서(110)에 의해 상기 디지털 정보(Si)의 세그먼트를 프로세싱하기 전에 상기 식별 정보를 사용하여 암호 알고리즘을 실행함으로써 상기 디지털 정보의 세그먼트([Si]k_1|MACi)를 전처리하는 단계(S56-S58);
    - 상기 보안 프로세서(110)에 의해 상기 디지털 정보(Si)의 세그먼트를 보안 프로세싱하는 단계(S59)를 포함하며;
    본 방법은
    상기 디지털 정보의 복수의 M개의 세그먼트들의 각 버전 번호들을 포함하는 버전 테이블(CtrlObj)을 상기 외부의 메모리(200)로부터 상기 보안 요소(100)의 내부 메모리(122)로 로딩하는 단계, 및 상기 내부 메모리(122)에 저장된 상기 버전 테이블(CtrlObj)에 로딩된 디지털 정보의 각 세그먼트의 상기 버전 번호(Vi)를 판독하는 단계를 더 포함하는 것을 특징으로 하는, 방법.
  14. 제13항에 있어서, 상기 버전 테이블(CtrlObj)의 선도 정보(CtrlObj_Version)와 상기 보안 요소(100)의 내부 비휘발성 메모리(130)에 저장된 선도 카운터(FC)를 비교함으로써, 상기 버전 테이블(CtrlObj)의 상기 선도 정보(CtrlObj_Version)를 검증하는 단계를 더 포함하는, 방법.
KR1020227039766A 2020-05-20 2021-04-27 디지털 정보를 보안 프로세싱하기 위한 보안 요소 KR20230012488A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20175606.1A EP3913517B1 (en) 2020-05-20 2020-05-20 Secure element for securely processing digital information
EP20175606.1 2020-05-20
PCT/EP2021/060973 WO2021233649A1 (en) 2020-05-20 2021-04-27 Secure element for securely processing digital information

Publications (1)

Publication Number Publication Date
KR20230012488A true KR20230012488A (ko) 2023-01-26

Family

ID=70779594

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227039766A KR20230012488A (ko) 2020-05-20 2021-04-27 디지털 정보를 보안 프로세싱하기 위한 보안 요소

Country Status (7)

Country Link
US (1) US20230205934A1 (ko)
EP (1) EP3913517B1 (ko)
JP (1) JP2023525896A (ko)
KR (1) KR20230012488A (ko)
CN (1) CN115699005A (ko)
ES (1) ES2958182T3 (ko)
WO (1) WO2021233649A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4246353A1 (en) * 2022-03-14 2023-09-20 Nagravision Sarl Method to prevent anti-replay attack

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7657756B2 (en) * 2004-10-08 2010-02-02 International Business Machines Corporaiton Secure memory caching structures for data, integrity and version values
EP2860660A1 (fr) 2013-10-11 2015-04-15 Nagravision S.A. Système et méthode de chargement sécurisé de données dans une mémoire cache associée à un processeur sécurisé
US9904805B2 (en) * 2015-09-23 2018-02-27 Intel Corporation Cryptographic cache lines for a trusted execution environment

Also Published As

Publication number Publication date
EP3913517A1 (en) 2021-11-24
CN115699005A (zh) 2023-02-03
WO2021233649A1 (en) 2021-11-25
JP2023525896A (ja) 2023-06-19
US20230205934A1 (en) 2023-06-29
EP3913517B1 (en) 2023-09-06
ES2958182T3 (es) 2024-02-05
EP3913517C0 (en) 2023-09-06

Similar Documents

Publication Publication Date Title
TWI676116B (zh) 安全儲存系統以及用於安全儲存的方法
US20190163910A1 (en) Method and apparatus for device security verification utilizing a virtual trusted computing base
US10530576B2 (en) System and method for computing device with improved firmware service security using credential-derived encryption key
US11218299B2 (en) Software encryption
KR101567620B1 (ko) 데이터 처리 시스템 및 방법
US9563769B2 (en) System and method for secure loading data in a cache memory
JP2016531508A (ja) データセキュアストレージ
US11270003B2 (en) Semiconductor device including secure patchable ROM and patch method thereof
US20200195447A1 (en) Communication method of client device, issuing device and server
WO2022126644A1 (zh) 模型保护装置及方法、计算装置
CN113094690A (zh) 用于软件的认证的系统和方法
US20160335453A1 (en) Managing Data
US20230205934A1 (en) Secure element for securely processing digital information
CN115203708B (zh) 一种应用数据部署至协处理器的方法及系统
CN115357908B (zh) 一种网络设备内核可信度量与自动修复方法
CN115310136B (zh) 基于sata桥接芯片的数据安全保障方法
CN108345804B (zh) 一种可信计算环境中的存储方法和装置
US20230153470A1 (en) Method for processing digital information
CN116566744B (zh) 数据处理方法和安全校验系统
KR20070035030A (ko) 비보안 데이터 저장 공간에 대하여 쿼리들을 위한 결과들의신선함을 보장하기 위한 방법
Kösemen et al. Tamper Resistance Functions on Internet of Things Devices
EP2138946A1 (en) Secure memory management system
CN116933293A (zh) 面向多平台的多重加密软件认证保护方法及装置
CN114329422A (zh) 一种可信安全防护方法、装置、电子设备和存储介质
CN116232716A (zh) 一种基于puf的物联网ota升级方法及存储介质

Legal Events

Date Code Title Description
A201 Request for examination