KR20220167936A - 보안 프로세서를 포함하는 시스템 온 칩과 이를 포함하는 반도체 시스템 - Google Patents

보안 프로세서를 포함하는 시스템 온 칩과 이를 포함하는 반도체 시스템 Download PDF

Info

Publication number
KR20220167936A
KR20220167936A KR1020210077282A KR20210077282A KR20220167936A KR 20220167936 A KR20220167936 A KR 20220167936A KR 1020210077282 A KR1020210077282 A KR 1020210077282A KR 20210077282 A KR20210077282 A KR 20210077282A KR 20220167936 A KR20220167936 A KR 20220167936A
Authority
KR
South Korea
Prior art keywords
memory
area
page
ram
time stamp
Prior art date
Application number
KR1020210077282A
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 삼성전자주식회사
Priority to KR1020210077282A priority Critical patent/KR20220167936A/ko
Priority to US17/585,881 priority patent/US20220398349A1/en
Priority to CN202210570876.4A priority patent/CN115481080A/zh
Publication of KR20220167936A publication Critical patent/KR20220167936A/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
    • G06F21/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • 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/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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Abstract

보안 프로세서, 상기 보안 프로세서를 포함하는 시스템 온 칩, 그리고 이를 포함하는 반도체 시스템이 제공된다. 몇몇 실시예들에 따른 보안 프로세서를 포함하는 시스템 온 칩은 보안 프로세서를 포함하는 시스템 온 칩으로서, 상기 보안 프로세서는, 페이지를 저장하는 램 캐시 영역과, 타임 스탬프(Timestamp)를 저장하는 타임 스탬프 테이블을 저장하는 램, 상기 타임 스탬프를 이용하여, 상기 페이지를 암호화하는 암복호화 엔진, 및 상기 암호화된 페이지를, 상기 시스템 온 칩 외부에 배치된 제1 메모리의 스왑 영역(Swap Region)에 전송하는 DMA(DMA: Direct Memory Access) 모듈을 포함하되, 상기 제1 메모리는, 상기 암복호화 엔진이 상기 페이지를 암호화하며 생성하는 태그가 저장되는 태그 테이블 영역과 상기 타임 스탬프를 백업하는 타임 스탬프 백업 영역을 포함하되, 스왑 영역, 태그 테이블 영역, 및 타임 스탬프 백업 영역은 시스템 온 칩 외부에 배치된 제2 메모리에 백업된다.한다.

Description

보안 프로세서를 포함하는 시스템 온 칩과 이를 포함하는 반도체 시스템{System on chip comprising secure processor and semiconductor system comprising the same}
본 발명은 보안 프로세서를 포함하는 시스템 온 칩과 이를 포함하는 반도체 시스템에 관한 것이다.
어플리케이션 프로세서(application processor; AP)는 시스템 온 칩(System on Chip; 이하 SoC라고 칭함)의 형태로 구현될 수 있다. SoC는 다양한 시스템들이 집적되는 하나의 칩을 나타낼 수 있다. SoC는 다양한 시스템들을 집적하므로, SoC의 내부 메모리(예를 들면, SRAM(static random access memory))의 용량은 제한적일 수 있다. 내부 메모리의 제한적인 용량으로 인해, SoC는 외부 메모리 장치와 통신할 수 있다.
한편, SoC에는 SoC의 보안 기능 및 보안 저장 장소를 제공하는 보안 요소(Secure Element)가 포함될 수 있다. 이 때, SoC의 내부 메모리와 SoC의 외부 메모리 사이의 통신에 있어서, 보안의 안정성을 유지함과 동시에 통신 속도가 향상될 필요성이 있다.
본 발명이 해결하고자 하는 기술적 과제는 보안성과 통신 속도가 향상된 시스템 온 칩과 이를 포함하는 반도체 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 보안성과 통신 속도가 향상된 보안 프로세서를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 시스템 온 칩은, 보안 프로세서를 포함하는 시스템 온 칩으로서, 상기 보안 프로세서는, 페이지를 저장하는 램 캐시 영역과, 타임 스탬프(Timestamp)를 저장하는 타임 스탬프 테이블을 저장하는 램, 상기 타임 스탬프를 이용하여, 상기 페이지를 암호화하는 암복호화 엔진, 및 상기 암호화된 페이지를, 상기 시스템 온 칩 외부에 배치된 제1 메모리의 스왑 영역(Swap Region)에 전송하는 DMA(DMA: Direct Memory Access) 모듈을 포함하되, 상기 제1 메모리는, 상기 암복호화 엔진이 상기 페이지를 암호화하며 생성하는 태그가 저장되는 태그 테이블 영역과 상기 타임 스탬프를 백업하는 타임 스탬프 백업 영역을 포함하되, 스왑 영역, 태그 테이블 영역, 및 타임 스탬프 백업 영역은 시스템 온 칩 외부에 배치된 제2 메모리에 백업된다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 보안 프로세서는, 페이지가 저장된 램 캐시 영역, 상기 페이지를 암호화하는데 이용되는 타임 스탬프가 저장된 타임 스탬프 테이블을 저장하는 램, 상기 램으로부터 상기 페이지와 상기 타임 스탬프를 수신하여 상기 페이지를 암호화하고, 태그를 생성시키는 암복호화 엔진, 및 상기 암호화된 페이지를 제1 외부 메모리의 스왑 영역에 전송하고, 상기 태그를 상기 제1 외부 메모리의 태그 테이블 영역에 전송하는 DMA 모듈을 포함하되, 스왑 영역과, 태그 테이블 영역은 제2 외부 메모리에 백업된다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 반도체 시스템은, 복수의 CPU 코어들을 포함하는 어플리케이션 프로세서와 보안 프로세서를 포함하는 시스템 온 칩, 및 상기 시스템 온 칩의 외부에 배치된 제1 메모리를 포함하되, 상기 보안 프로세서는, 페이지를 저장하는 램 캐시 영역과, 타임 스탬프(Timestamp)를 저장하는 타임 스탬프 테이블을 저장하는 램과 상기 타임 스탬프를 이용하여, 상기 페이지를 암호화하는 암복호화 엔진, 그리고 상기 암호화된 페이지를, 상기 제1 메모리의 스왑 영역(Swap Region)에 전송하는 DMA 모듈을 포함하며, 상기 제1 메모리는, 상기 암복호화 엔진이 상기 페이지를 암호화하며 생성하는 태그가 저장되는 태그 테이블 영역과 상기 타임 스탬프를 백업하는 타임 스탬프 백업 영역을 포함하되, 제2 메모리는 스왑 영역, 태그 테이블 영역, 및 타임 스탬프 백업 영역이 백업되는 비휘발성 데이터 백업 영역을 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예들에 따른 보안 프로세서를 포함하는 시스템 온 칩을 포함하는 반도체 시스템을 도시한 예시적인 도면이다.
도 2는 메모리 관리 테이블(MMT: Memory Management Table)을 설명하기 위한 예시적인 도면이다.
도 3은 몇몇 실시예들에 따른 도 1의 반도체 시스템의 동작을 도시한 예시적인 블록도이다.
도 4는 몇몇 실시예들에 따른 도 1의 반도체 시스템의 스왑 아웃(Swap out) 동작을 설명하기 위한 예시적인 래더(ladder) 다이어그램이다.
도 5는 몇몇 실시예들에 따른 도 1의 반도체 시스템의 스왑 아웃(Swap out) 동작을 설명하기 위한 예시적인 흐름도이다.
도 6은 몇몇 실시예들에 따른 도 1의 반도체 시스템의 스왑 인(Swap in) 동작을 설명하기 위한 예시적인 래더 다이어그램이다.
도 7은 몇몇 실시예들에 따른 도 1의 반도체 시스템의 스왑 인(Swap in) 동작을 설명하기 위한 예시적인 흐름도이다.
도 8은 몇몇 실시예들에 따른 보안 프로세서를 포함하는 시스템 온 칩을 포함하는 다른 반도체 시스템을 도시한 예시적인 도면이다.
도 9는 몇몇 실시예들에 따른 도 8의 반도체 시스템의 동작을 도시한 예시적인 블록도이다.
도 10과 도 11은 몇몇 실시예들에 따른 도 8의 반도체 시스템의 동작을 설명하기 위한 예시적인 래더 다이어그램들이다.
도 12는 몇몇 실시예들에 따른 보안 프로세서를 포함하는 시스템 온 칩을 포함하는 다른 반도체 시스템을 도시한 예시적인 도면이다.
도 13은 몇몇 실시예들에 따른 도 12의 반도체 시스템의 동작을 도시한 예시적인 블록도이다.
도 14는 보안 데이터 정보 영역을 설명하기 위한 예시적인 도면이다.
도 15와 도 16은 도 13의 동작을 설명하기 위한 예시적인 흐름도들이다.
도 17은 몇몇 실시예들에 따른 도 12의 반도체 시스템의 동작을 도시한 예시적인 다른 블록도이다.
도 18과 도 19는 도 17의 동작을 설명하기 위한 예시적인 흐름도들이다.
도 20 내지 도 22는 몇몇 실시예들에 따른 반도체 시스템의 동작을 설명하기 위한 예시적인 흐름도들이다.
도 1은 몇몇 실시예들에 따른 시스템 온 칩을 포함하는 반도체 시스템을 도시한 예시적인 도면이다.
도 1을 참조하면, 몇몇 실시예들에 따른 반도체 시스템(1)은 시스템 온 칩(10)과, 시스템 온 칩(10)의 외부에 배치되는 제1 메모리(30)를 포함한다.
시스템 온 칩(10)은 어플리케이션 프로세서(104), 제1 메모리 인터페이스(108), 그리고 보안 프로세서(100)를 포함한다. 이하의 몇몇 실시예들에 따른 시스템 온 칩(10)의 구성은 예시적인 것으로, 이밖에 GPU(Graphic Processing Unit), 코덱(codec), 스케일러(scaler), 디스플레이 컨트롤러, 액세스 컨트롤러 등을 더 포함할 수도 있다.
몇몇 실시예들에 따른 시스템 온 칩(10)은, 예를 들어, 서버, 컴퓨터, 스마트폰, 태블릿(tablet), PDA(personal digital assistant), 디지털 카메라(digital camera), PMP(portable multimedia player), 웨어러블(wearable) 장치, 사물 인터넷(internet of things; IoT) 장치, 스마트 스피커(smart speaker), 또는 전장(automotive) 등 중 어느 하나에 포함될 수 있으나, 이에 한정되지 않는다.
어플리케이션 프로세서(104)는 복수의 CPU 코어들을 포함하며, 시스템 온 칩(10)의 전반적인 작업들을 처리할 수 있다. 복수의 CPU 코어들 각각은 트러스트존(TrustZone)을 지원하는 프로세싱 유닛으로, 예를 들어, ARM 코어일 수 있다. 이하에서 CPU(110)는 ARM 코어인 것으로 가정하고 설명한다.
제1 메모리 인터페이스(108)는 제1 메모리(30)를 제어할 수 있다.
제1 메모리(30)는 휘발성 메모리일 수 있다. 예를 들어, 제1 메모리(30)는 DRAM, SDRAM, DDRAM또는 SRAM일 수 있으나 이에 제한되는 것은 아니다.
보안 프로세서(100)는 CPU(110), 램(120), ROM(130), 암복호화 엔진(140), DMA(DMA: Direct Memory Access) 모듈(150), 메일박스(160), 및 메모리 관리 유닛(MMU: Memory Management Unit)(170)을 포함할 수 있다. 보안 프로세서(100)의 구성은 예시적인 것으로 예를 들어, 물리적 복제 불가능 함수기, 또는 난수 생성기를 더 포함할 수도 있다.
보안 프로세서(100)는 어플리케이션 프로세서(104)와 격리되며, 전용 펌웨어에 의해 동작할 수 있다. 예를 들어, 보안 프로세서(100)는 내부의 메일박스(160)를 통해 어플리케이션 프로세서(104)와 통신할 수 있다. 즉, 어플리케이션 프로세서(104)의 복수의 CPU 코어들이 처리할 소프트웨어가 트러스트존에서 실행되는 소프트웨어라도, 보안 프로세서(100)에 접근이 불가능할 수 있다. 어플리케이션 프로세서(104)가 제공하는 보안 기능에 더해, 시스템 온 칩(10) 내부에 별도의 보안 프로세서(100)를 구성함으로써, 보안성을 향상시킬 수 있다. 예를 들어, 제1 메모리(30)로부터 실행된 소프트웨어는 보안성이 검증되지 않는다면 보안 프로세서(100) 내의 램(120)에 접근이 불가능할 수 있다.
CPU(110)는 보안 프로세서(100)의 전반적인 동작을 제어할 수 있다.
ROM(130)은 예를 들어, OTP(One Time Programmable) 메모리일 수 있다. ROM(130)은 암복호화 엔진(140)이 암호화 동작을 수행하는데 필요한 키(key)를 저장할 수 있다. 보안 프로세서(100)를 통해 실행되는 소프트웨어의 일부가 외부 메모리(예를 들어, 제1 메모리(30))에 저장되어도, 보안 프로세서(100)의 ROM(130)에 저장된 키(key)를 통해 보안성을 유지할 수 있다(Confidentiality 보장).
램(120)은 휘발성 메모리로 예를 들어, SRAM일 수 있다. 램(120)은 예를 들어, 보안 데이터 또는 보안 코드 등이 일시적으로 저장될 수 있다. 또한, 램(120)은 데이터의 암호화에 이용되는 타임 스탬프(Timestamp) 또는 카운터(Counter)를 저장할 수 있다. 또한, 램(120)은 메모리 관리 테이블(MMT: Memory Management Table)(121)을 저장할 수 있다. 메모리 관리 테이블에 대해, 도 2를 통해 자세히 설명한다.
도 2는 메모리 관리 테이블(MMT: Memory Management Table)을 설명하기 위한 예시적인 도면이다.
도 1 및 도 2를 참조하면, 메모리 관리 테이블(121)은 데이터 혹은 페이지 각각(이하에서는, 페이지로 설명한다.)에 대한 가상 메모리 주소(VA: Virtual Address)와 물리 메모리 주소(PA: Physical Address)를 저장한다. 이밖에, 메모리 관리 테이블(121)은 페이지 각각에 대한 더티 여부(D)와 유효성 여부(V), 그 밖의 다른 기타 정보들(Etc)을 저장할 수 있다.
가상 메모리 주소(VA)는 CPU(110)가 실행하는 소프트웨어의 각 페이지 단위의 가상 주소이다. 물리 메모리 주소(PA)는 CPU(110)가 실행하는 소프트웨어의 페이지가 저장되어 있는 램(120) 내의 램 캐시 영역의 주소이다.
더티 여부(D)는 램 캐시 영역으로 스왑 인(Swap in)된 페이지가, 스왑 인(Swap in)된 이후 CPU(110)에 의해 변경되었는지를 나타낼 수 있다. 예를 들어, 제1 메모리(30)로부터 램(120)의 램 캐시 영역(122)으로 스왑 인(Swap in)된 페이지가 이후 CPU(110)에 의해 변경이 되었다면, 더티(Dirty)가 더티 여부(D)에 나타날 수 있다.
유효성 여부(V)는 상술된 가상 메모리 주소(VA), 물리 메모리 주소(PA), 및 더티 여부(D)등의 페이지 각각에 대한 정보가 유효한지를 나타낼 수 있다. 예를 들어, 해당 페이지에 대한 더티 여부(D)가 잘못되었다면, 유효하지 않음(Invalid)을 나타내는 정보가 유효성 여부에 나타날 수 있다.
다시 도 1을 참조하면, 암복호화 엔진(140)은 보안 영역(S/Z)의 데이터가 외부로 전송될 때, 해당 데이터에 대한 암호화를 수행할 수 있다. 또는, 암복호화 엔진(140)은 보안 영역(S/Z) 외부의 데이터가 보안 영역(S/Z)으로 접근할 때, 해당 데이터에 대한 복호화를 수행할 수 있다.
예를 들어, 암복호화 엔진(140)은 암복호화 유닛과 해쉬부를 포함할 수 있다. 암복호화 유닛은 암호화 알고리즘에 따라 CPU(110)로부터 전송된 보안 데이터에 대해 보안 파라미터를 이용하여 암호화 연산을 수행할 수 있다. 암복호화 유닛이 암호화 연산을 수행할 때, 램(120)에 저장된 타임 스탬프 또는 카운터를 사용할 수 있다. 이하에서는 타임 스탬프를 사용하는 것으로 설명한다. 암복호화 유닛이 암호화 연산에 타임 스탬프를 사용함으로써, 호스트 환경에서 실행되는 소프트웨어의 일부를 다른 버전으로 변경하는 재전송 공격(replay attack)으로부터 안전할 수 있다.
암복호화 유닛은 외부 메모리(예를 들어, 제1 메모리(30))으로부터 전송된 암호화 데이터에 대해 복호화 연산을 수행할 수도 있다.
암복호화 유닛이 사용하는 암호화 알고리즘은 AES(advanced encryption standard), DES(data encryption standard), Triple DES, SEED, HIGHT(HIGh security and light weigHT), ARIA, 또는 LEA(Lightweight Encryption Algorithm) 등일 수 있다. 또한 예를 들어, 암호화 알고리즘은 블록 암호 모드로 암호화 연산을 수행할 수 있다. 블록 암호 모드는, GCM(Galois/Counter Mode), ECB(electronic code book) 모드, CBC(cipher block chaining) 모드, CTR 모드, PCBC(propagating cipher block chaining) 모드, 또는 CFB(cipher feedback) 모드 등일 수 있다.
해쉬부는 보안 파라미터를 이용하여 메시지 인증 코드(Message Authentication Code: MAC)을 계산할 수 있다. 해쉬부는 해시 기반 메시지 인증 코드(Hash-based Message Authentication Code; HMAC) 알고리즘, 암호 기반 메시지 인증 코드(Cipher-based Message Authentication Code; CMAC) 알고리즘 등을 이용하여 메시지 인증 코드를 계산할 수 있다. 해쉬부는 예를 들어, 암복호화 유닛을 통해 보안 데이터에 대한 암호화가 진행된 후, 해당 암호화된 데이터에 대한 태그를 생성할 수 있다. 이를 통해, CPU(110)를 통해 실행되는 소프트웨어의 데이터의 일부가 외부 메모리(예를 들어, 제1 메모리(30))에 저장될 경우 발생할 수 있는 변조 공격으로부터 안전할 수 있다(Integrity 보장).
암복호화 엔진(140)은 온 더 플라이(On the fly)로 암복호화를 수행할 수 있으며, 동시에 상술된 바와 같은 태그를 생성할 수 있다.
DMA 모듈(150)은 암복호화 엔진(140)과 연결되어, 암복호화 엔진(140)을 통해 암호화된 데이터 혹은 페이지와 생성된 태그를 보안 영역(S/Z)의 외부로 전송할 수 있다. 또한, DMA 모듈(150)은 보안 영역(S/Z)의 외부로부터 전송되는 데이터 혹은 페이지와 태그를 암복호화 엔진(140)에 전송할 수 있다.
메모리 관리 유닛(170)(170)은 램(120)에 저장된 메모리 관리 테이블을 이용하여 CPU(110)가 실행하는 소프트웨어의 가상 주소를 물리 주소로 빠르게 변환하여 CPU(110)가 램 내부의 램 캐시 영역에 있는 코드, 데이터, 또는 페이지에 접근하도록 도와준다.
램(120)은 램(120)의 사이즈보다 큰 소프트웨어를 실행할 때, 외부 메모리(예를 들어, 제1 메모리(30))를 이용할 수 있다. 보안 영역(S/Z) 내의 램(120)은 예를 들어, 수십 KB 이상 수백 KB 이하의 작은 사이즈를 가질 수 있다. 따라서, 보안 영역(S/Z) 내의 램(120)의 사이즈보다 큰 소프트웨어를 보안 영역(S/Z)에서 실행시키기 위해, 어플리케이션 프로세서(104)가 이용하는 외부 메모리(예를 들어, 제1 메모리(30))를 활용할 수 있다. 더 자세히는, 소프트웨어가 이용하는 정보들(예를 들어, 메모리 관리 테이블, 및 페이지 등)를 보안 영역(S/Z) 내의 램(120)으로부터 외부 메모리(예를 들어, 제1 메모리(30))로 스왑 아웃(Swap out)할 수 있다. 도 3을 통해, 스왑 아웃(Swap out)을 통하여, 램(120)의 사이즈보다 큰 소프트웨어를 보안 영역(S/Z)에서 실행시키는 동작에 대해 설명한다. 또한, 도 3을 통해, 반대로, 외부 메모리(예를 들어, 제1 메모리(30))로부터 소프트웨어가 이용하는 정보들(예를 들어, 메모리 관리 테이블 및 페이지 등)를 보안 영역(S/Z) 내의 램(120)으로 읽어들이는 스왑 인(Swap in) 동작에 대해서도 설명한다. 이하에서, 외부 메모리는 제1 메모리(30)인 것으로 설명한다.
도 3은 몇몇 실시예들에 따른 도 1의 반도체 시스템의 동작을 도시한 예시적인 블록도이다.
도 1과 도 3을 참조하면, 램(120)은 복수의 메모리 관리 테이블들(121)과 복수의 페이지들이 저장된 램 캐시 영역(122)과 복수의 타임 스탬프들이 저장된 타임 스탬프 테이블(123), 그리고 모든 페이지들에 대한 타임 스탬프 기능을 수행하는 마스터 타임 스탬프(124)와 모든 페이지들에 대한 태그 기능을 수행하는 마스터 태그(125)가 저장되어 있을 수 있다.
메모리 관리 테이블들(121)은 각각의 소프트웨어에 대한 메모리 관리 테이블이 저장되어 있다. 예를 들어, 제0 소프트웨어에 대한 제0 메모리 관리 테이블(MMT #0), 제1 소프트웨어에 대한 제1 메모리 관리 테이블(MMT #1), 및/또는 제n 소프트웨어에 대한 제n 메모리 관리 테이블(MMT #n)이 메모리 관리 테이블(121)에 저장될 수 있다.
램 캐시 영역(122)에는 CPU(110)가 실행하는 소프트웨어 각각이 이용하는 페이지들이 저장될 수 있다. 예를 들어, 램 캐시 영역(122)에는 CPU(110)가 실행하는 제0 소프트웨어가 사용하는 제0 페이지(Page #0), 제1 페이지(Page #1), 및/또는 제n 페이지(Page #n)가 저장될 수 있다.
타임 스탬프 테이블(123)에는 램 캐시 영역(122)에 저장된 페이지들 각각에 대한 암호화가 수행될 때 이용되는 타임 스탬프들이 저장될 수 있다. 예를 들어, 타임 스탬프 테이블(123)에는 제0 페이지(Page #0)를 암호화하는데 이용하는 제0 타임 스탬프(Timestamp #0), 제1 페이지(Page #1)를 암호화하는데 이용하는 제1 타임 스탬프(Timestamp #1), 및/또는 제n 페이지(Page #n)를 암호화하는데 이용하는 제n 타임 스탬프(Timestamp #n)가 저장될 수 있다.
마스터 타임 스탬프(124)는 타임 스탬프 테이블(123)을 제1 메모리(30)에 스왑 아웃할 때 수행되는 암호화 동작에 이용될 수 있다. 또한, 마스터 타임 스탬프(124)는 이에 제한되지 않고, 램 캐시 영역(122)을 제1 메모리(30)에 스왑 아웃할 때 수행되는 암호화 동작에 이용될 수도 있다.
마스터 태그(125)는 이에 제한되지 않고, 타임 스탬프 테이블(123)을 제1 메모리(30)에 스왑 아웃할 때 수행되는 암호화 동작에 이용될 수 있다. 또한, 마스터 태그(125)는 이에 제한되지 않고, 램 캐시 영역(122)을 제1 메모리(30)에 스왑 아웃할 때 수행되는 암호화 동작에 이용될 수도 있다.
즉, 보안 영역(S/Z)에서 동작하는 소프트웨어가 이용하는 정보들(예를 들어, 메모리 관리 테이블(121), 및 램 캐시 영역(122))을 제1 메모리(30)로 스왑 아웃할 때, 각각의 정보들에 대한 암호화가 수행되어야 한다. 암호화는 암복호화 엔진을 통해 수행될 수 있다. 스왑 아웃 동작에 대해, 도 4를 통해 함께 참조하여 설명한다.
도 4는 몇몇 실시예들에 따른 도 1의 반도체 시스템의 스왑 아웃(Swap out) 동작을 설명하기 위한 예시적인 래더 다이어그램이다.
도 1, 도 3, 및 도 4를 참조하면, 예를 들어, 보안 영역(S/Z)에서 실행되는 제0 소프트웨어를 제1 메모리(30)를 이용하여 동작시키는 경우를 가정하여 설명한다.
제1 메모리(30)에는, 암복호화 엔진(140)을 통해 암호화된 제0 소프트웨어에 대한 제0 메모리 관리 테이블(121)이, DMA 모듈(150)을 통해 제1 메모리(30) 내의 메모리 관리 테이블 백업 영역(300)에 저장될 수 있다.
또한, 제0 소프트웨어가 실행되는데 이용되는 타겟 페이지들이 암호화되어 제1 메모리(30) 내의 스왑 영역(310)에 저장되며, 암호화 과정에서 발생된 태그들이 제1 메모리(30) 내의 태그 테이블 영역(320)에 저장될 수 있다. 이 동작에 대해 자세히 살펴본다.
도 4는 스왑 아웃(Swap out) 과정을 도시한 레더 다이어그램으로, 제1 메모리(30) 내에 메모리 관리 테이블이 스왑 아웃되는 동작에 대한 설명은 생략되었다.
스왑 아웃(Swap out)의 대상이 되는 페이지들이 램 캐시 영역(122)으로부터 암복호화 엔진(140)으로 전송된다(S10). 또한, 스왑 아웃(Swap out)의 대상이 되는 페이지들의 암호화에 이용되는 타임 스탬프들도 타임 스탬프 테이블(123)로부터 암복호화 엔진(140)으로 전송된다(S11). 단계 S10과 단계 S11의 순서는 본 도면에 제한되지 않는다. 예를 들어, 단계 S10과 단계 S11는 동시에 일어날 수도 있으며, 단계 S11이 단계 S10보다 먼저 수행될 수도 있다.
암복호화 엔진(140)은 스왑 아웃(Swap out)의 대상이 되는 페이지들과, 페이지들의 암호화에 이용되는 타임 스탬프들을 이용하여(이에 제한되지 않고, ROM(130)에 저장된 key, 및/또는 IV(Initial vector) 등을 더 이용할 수도 있다.), 스왑 아웃(Swap out)의 대상이 되는 페이지들을 암호화한다(S12). 이때, 암호화되는 페이지들에 대응하는 태그(혹은 MAC, 또는 HASH일 수 있으나 이에 제한되는 것은 아니다. 이하에서는 태그로 설명한다.)들이 생성될 수 있다. 암복호화 엔진(140)을 통해 암호화된 페이지들과 생성된 태그들은 암복호화 엔진(140)과 연결된 DMA 모듈(150)로 전송된다(S13). DMA 모듈(150)은 암호화된 페이지들과 생성된 태그들을 제1 메모리(30)에 기록할 수 있다(S14). 이를 통해, 스왑 아웃(Swap out) 동작이 마무리될 수 있다. 단계 S12, 단계 S13, 및 단계 S14는 동시에 진행될 수도 있다.
제1 메모리(30)에 기록된 암호화된 페이지들은 제1 메모리(30)의 스왑 영역(310)에 기록될 수 있다. 또한, 제1 메모리(30)에 기록된 생성된 태그들은 태그 테이블 영역(320)에 기록될 수 있다.
즉, 제1 메모리(30)의 메모리 관리 테이블 백업 영역(300)에 제0 소프트웨어의 메모리 관리 테이블이 백업될 수 있다. 또한, 제0 소프트웨어를 실행하는데 이용되는 페이지들이 암호화되어 스왑 영역(310)에 저장된다. 또한, 제0 소프트웨어를 실행하는데 이용되는 페이지들이 암호화되면서 생성된 태그들이 태그 테이블 영역(320)에 저장된다.
상술된 스왑 아웃(Swap out) 동작을 도 5의 흐름도를 통해 살펴본다.
도 5는 몇몇 실시예들에 따른 도 1의 반도체 시스템의 스왑 아웃(Swap out) 동작을 설명하기 위한 예시적인 흐름도이다.
도 1, 도 3, 및 도 5를 참조하면, 스왑 아웃(Swap out)의 대상이 되는 페이지들이 램 캐시 영역(122)으로부터 암복호화 엔진(140)으로 전송되고, 스왑 아웃(Swap out)의 대상이 되는 페이지들의 암호화에 이용되는 타임 스탬프들도 타임 스탬프 테이블(123)로부터 암복호화 엔진(140)으로 전송된다(S100).
암복호화 엔진(140)은 스왑 아웃(Swap out)의 대상이 되는 페이지들과, 페이지들의 암호화에 이용되는 타임 스탬프들을 이용하여, 스왑 아웃(Swap out)의 대상이 되는 페이지들을 암호화하며, 암호화되는 페이지들 각각에 대응하는 태그가 생성된다(S110).
DMA 모듈(150)은 암호화된 페이지들과 생성된 태그들을 제1 메모리(30)에 기록할 수 있다(S120). 이를 통해, 스왑 아웃(Swap out) 동작이 마무리될 수 있다. 앞서 설명한 바와 같이, 단계 S110과 S120은 동시에 수행될 수 있다.
이하에서 도 6을 통해, 제1 메모리(30)의 메모리 관리 테이블 백업 영역(300)에 백업된 암호화된 메모리 관리 테이블과, 스왑 영역(310)에 기록된 암호화된 페이지들을 램(120)으로 스왑 인(Swap in)하는 동작에 대해 설명한다. 메모리 관리 테이블 백업 영역(300)에 백업된 암호화된 메모리 관리 테이블은 암복호화 엔진(140)을 통해 복호화되어, 램(120)의 메모리 관리 테이블(121)로 스왑 인(Swap in) 될 수 있다. 도 6과 도 7을 통해서는 암호화된 페이지의 스왑 인(Swap in) 동작에 대해 자세히 설명한다.
도 6은 몇몇 실시예들에 따른 도 1의 반도체 시스템의 스왑 인(Swap in) 동작을 설명하기 위한 예시적인 래더 다이어그램이다.
이하에서, 스왑 인(Swap in)에 대한 설명은, CPU(110)가 실행할 소프트웨어가 이용하는 페이지가 램 캐시 영역(122)에 없는 경우를 가정하고 설명한다.
도 1, 도 3, 및 도 6을 참조하면, 제1 메모리(30)로부터 스왑 인(Swap in) 대상이 되는 암호화된 페이지와 암호화된 페이지에 대응하는 태그들을 DMA 모듈(150)을 통해 읽는다(S21). DMA 모듈(150)은 DMA 모듈(150)과 연결된 암복호화 엔진(140)에 암호화된 페이지와 암호화된 페이지에 대응하는 태그들을 전송한다(S22). 암복호화 엔진(140)은 암호화된 페이지들을 복호화하며, 복호화의 결과로 태그가 생성된다(S23). 이때, 복호화 과정에서는 도 4의 단계 S12에서 사용한 타임 스탬프들을 이용할 수 있다(이에 제한되지 않고, 도 4의 단계 S12에서 사용된 key, 및/또는 IV(Initial vector) 등을 더 이용할 수도 있다.). 이에 제한되지 않고, 단계 S21, 단계 S22, 및 단계 S23은 동시에 수행될 수도 있다. 이후, 암복호화 엔진(140)은 단계 S23을 통해 생성된 태그와 제1 메모리(30)의 태그 테이블 영역(320)에 기록되었던 태그를 비교하여 보안성을 검증한다(S24). 단계 S24에서 보안성이 검증된 경우, 암복호화 엔진(140)으로부터 램 캐시 영역(122)으로 스왑 인(Swap in) 대상 페이지들이 리드된다(S25). 이를 통해, 스왑 인(Swap in) 동작이 마무리될 수 있다. 몇몇 실시예들에 따른 단계 S24는, 단계 S25 이후에 수행될 수도 있다.
상술된 스왑 인(Swap in) 동작을 도 7의 흐름도를 통해 살펴본다.
도 7은 몇몇 실시예들에 따른 도 1의 반도체 시스템의 스왑 인(Swap in) 동작을 설명하기 위한 예시적인 흐름도이다.
도 1, 도 3, 및 도 7을 참조하면, 제1 메모리(30)로부터 스왑 인(Swap in) 대상이 되는 암호화된 페이지와 암호화된 페이지에 대응하는 태그들을 DMA 모듈(150)을 통해 읽는다(S200). DMA 모듈(150)은 DMA 모듈(150)과 연결된 암복호화 엔진(140)에 암호화된 페이지와 암호화된 페이지에 대응하는 태그들을 전송한다(S210). 암복호화 엔진(140)은 암호화된 페이지들을 복호화하며, 복호화의 결과로 태그가 생성된다(S220). 이때, 복호화 과정에서는 도 5의 단계 S110에서 사용한 타임 스탬프들을 이용할 수 있다(이에 제한되지 않고, 도 5의 단계 S110에서 사용된 key, 및/또는 IV(Initial vector) 등을 더 이용할 수도 있다.). 이에 제한되지 않고, 단계 S200, 단계 S210, 및 단계 S220은 동시에 수행될 수도 있다. 이후, 암복호화 엔진(140)은 단계 S220을 통해 생성된 태그와 제1 메모리(30)의 태그 테이블 영역(320)에 기록되었던 태그를 비교하여 보안성을 검증한다(S230). 예를 들어, 단계 S220을 통해 생성된 태그가 태그 테이블 영역(320)에 기록되었던 태그와 다르다면(N) 보안성이 검증된 데이터가 아닌 것으로, 보안 영역(S/Z)으로의 접근을 차단한다(Fail). 만약, 단계 S220을 통해 생성된 태그가 태그 테이블 영역(320)에 기록되었던 태그와 같다면(Y) 보안성이 검증된 데이터로, 암복호화 엔진(140)으로부터 램 캐시 영역(122)으로 스왑 인(Swap in) 대상 페이지들이 전송된다(S240). 몇몇 실시예들에 따른 단계 S230은 단계 S240 이후에 수행될 수도 있다. 이를 통해, 스왑 인(Swap in) 동작이 마무리될 수 있다.
이하에서의 다른 실시예들은, 설명의 간략화를 위해 상술된 설명과 중복되는 설명은 생략하여 설명한다.
도 8은 몇몇 실시예들에 따른 보안 프로세서를 포함하는 시스템 온 칩을 포함하는 다른 반도체 시스템을 도시한 예시적인 도면이다. 도 9는 몇몇 실시예들에 따른 도 8의 반도체 시스템의 동작을 도시한 예시적인 블록도이다.
도 8 및 도 9를 참조하면, 몇몇 실시예들에 따른 다른 반도체 시스템(2)은 시스템 온 칩(10) 외부에 배치된 다른 외부 메모리(예를 들어, 제2 메모리(20))를 더 포함한다. 이하에서, 다른 외부 메모리는 제2 메모리(20)인 것으로 설명한다. 제2 메모리(20)는 비휘발성 메모리로 예를 들어, NAND FLASH일 수 있다.
몇몇 실시예들에 따른 다른 시스템 온 칩(10)은 제2 메모리(20)와 통신하는 제2 메모리 인터페이스(102)를 더 포함한다.
램(120)은 램(120)의 사이즈보다 큰 소프트웨어를 실행할 때, 도 1 내지 도 7을 통해 설명한, 제1 메모리(30)를 이용하는 것 외에도, 제2 메모리(20)를 더 이용할 수도 있다.
더 자세히는, 제1 메모리(30)에 스왑 아웃(Swap out)된 메모리 관리 테이블 백업 영역(300), 스왑 영역(310), 및 태그 테이블 영역(320) 전체를 제2 메모리(20)의 보안 비휘발성 데이터 백업 영역(200)에 저장할 수 있다. 반대로, 제2 메모리(20)의 보안 비휘발성 데이터 백업 영역(200)에 저장된 정보들을 제1 메모리(30)로 읽어들인 후 스왑 인(Swap in) 동작을 수행할 수 있다. 이를 도 10 및 도 11의 래더 다이어그램을 통해 살펴본다.
도 10과 도 11은 몇몇 실시예들에 따른 도 8의 반도체 시스템의 동작을 설명하기 위한 예시적인 래더 다이어그램들이다.
도 8 내지 도 10을 참조하면, 램(120)으로부터 제1 메모리(30)로 스왑 아웃(Swap out)된 스왑 영역(310)과, 메모리 관리 테이블 백업 영역(300), 그리고 태그 테이블 영역(320) 전체가 보안 비휘발성 데이터 백업 영역(200)에 기록될 수 있다(S15). 제1 메모리(30)로부터 보안 비휘발성 데이터 백업 영역(200)으로 기록되는 정보들을 보안 비휘발성 데이터로 통칭할 수도 있다.
도 8, 도 9, 및 도 11을 참조하면, 제1 메모리(30)가 제2 메모리(20)의 보안 비휘발성 데이터 백업 영역(200)으로부터 스왑 영역(310)과, 메모리 관리 테이블 백업 영역(300), 그리고 태그 테이블 영역(320) 전체를 리드할 수 있다(S20). 이후, 제1 메모리(30)의 페이지들이 보안 영역(S/Z)으로 스왑 인(Swap in)될 수 있다.
도 12는 몇몇 실시예들에 따른 보안 프로세서를 포함하는 시스템 온 칩을 포함하는 다른 반도체 시스템을 도시한 예시적인 도면이다.
몇몇 실시예들에 따른 다른 반도체 시스템(3)은 시스템 온 칩(10) 외부에 배치된 다른 외부 메모리(예를 들어, 보안 비휘발성 스토리지(40))를 더 포함한다. 보안 비휘발성 스토리지(40)는 비휘발성 메모리로 예를 들어, NAND FLASH일 수 있다.
보안 비휘발성 스토리지(40)는 보안 프로세서(100)와 보안 채널(50)을 통해 서로 통신할 수 있다. 따라서, 보안 비휘발성 스토리지(40) 역시 보안 영역(S/Z)에 포함될 수 있다. 예를 들어, 보안 비휘발성 스토리지(40)는 보안 프로세서(100)와 공유 키(shared key)를 활용하며, 상술된 암호 알고리즘들(예를 들어, AES, AES-GCM, DES, Triple DES, SEED, HIGHT, ARIA, 또는 LEA, 또는 해시 기반 메시지 인증 코드 알고리즘 등)을 통해 보안 비휘발성 스토리지(40)와 보안 프로세서(100) 사이에서 전송되는 데이터들에 대한 보안성을 보장할 수 있다.
보안 비휘발성 스토리지(40)는 보안 프로세서(100)가 파워 오프(power off)되는 상황에 대비해, 보안 데이터 정보 영역(400)에 보안 관련 정보를 저장할 수 있다. 이에 대해, 도 13을 통해 자세히 살펴본다.
도 13은 몇몇 실시예들에 따른 도 12의 반도체 시스템의 동작을 도시한 예시적인 블록도이다.
도 12 및 도 13을 참조하면, 보안 비휘발성 스토리지(40) 내의 보안 데이터 정보 영역(400)에 마스터 타임 스탬프(124)와 마스터 태그(125)가 저장될 수 있다. 보안 데이터 정보 영역(400)을 도 14를 통해 좀 더 자세히 살펴본다.
도 14는 보안 데이터 정보 영역을 설명하기 위한 예시적인 도면이다.
도 12 내지 도 14를 참조하면, 보안 데이터 정보 영역(400)은 CPU(110)가 실행하는 소프트웨어 각각에 대한 보안 데이터 정보를 포함한다.
더 자세히는, 보안 데이터 정보 영역(400)은 소프트웨어 각각에 대한 범용 고유 식별자(UUID: Universally Unique Identifier), 액티브 설정 정보(Active set)와, 서로 다른 종류의 마스터 타임 스탬프(마스터 타임 스탬프(A)와 마스터 타임 스탬프(B))와 서로 다른 종류의 마스터 태그(예를 들어, 마스터 태그(A)와 마스터 태그(B))를 저장한다.
소프트웨어들 각각은 서로 다른 범용 고유 식별자(UUID)를 갖는다. 따라서, CPU(110)가 실행중인 소프트웨어를 범용 고유 식별자(UUID)를 통해 식별할 수 있다.
액티브 설정 정보(Active set)는 소프트웨어 각각에 대한 마스터 타임 스탬프와 마스터 태그의 종류가 무엇인지를 나타낼 수 있다. 예를 들어, 액티브 설정 정보(Active set)가 A를 활성화시킨다면, 현재 소프트웨어가 이용하는 마스터 타임 스탬프는 마스터 타임 스탬프(A)가 되며, 현재 소프트웨어가 이용하는 마스터 태그는 마스터 태그(A)가 된다. 마찬가지로, 액티브 설정 정보(Active set)가 B를 활성화시킨다면, 현재 소프트웨어가 이용하는 마스터 타임 스탬프는 마스터 타임 스탬프(B)가 되며, 현재 소프트웨어가 이용하는 마스터 태그는 마스터 태그(B)가 된다.
보안 데이터 정보 영역(400)에서 소프트웨어 각각에 대해 저장되는 마스터 타임 스탬프와 마스터 태그의 종류는 이에 제한되지 않고, 마스터 타임 스탬프(C)와 마스터 태그(C)를 가질 수도 있다.
다시, 도 12 및 도 13을 참조하면, 램(120)의 타임 스탬프 테이블 영역(123)이 암호화되어 제1 메모리(30)의 타임 스탬프 테이블 백업 영역(330)에 백업될 수 있다. 더 자세히는, 암복호화 엔진(140)이 램(120)의 타임 스탬프 테이블 영역(123)을 암호화할 때, 마스터 타임 스탬프(124)를 이용하여, 암호화를 수행할 수 있다.
보안 프로세서(100) 및/또는 시스템 온 칩이 파워 오프(power off)되는 경우, 그리고, 보안 프로세서(100) 및/또는 시스템 온 칩이 파워 온(power on)되는 경우, 보안 프로세서(100)가 제1 메모리(30)를 활용하는 동작을 도 15 및 도 16을 통해 살펴본다.
도 15와 도 16은 도 13의 동작을 설명하기 위한 예시적인 흐름도들이다.
먼저, 도 12, 도 13, 및 도 15를 참조하면, 램(120), 보안 프로세서(100)및/또는 시스템 온 칩이 파워 오프될 것으로 예정되었는지를 판단한다(S300). 램(120), 보안 프로세서(100) 및/또는 시스템 온 칩의 파워 오프가 스케줄링되어 있지 않다면(N) 보안 프로세서(100)는 추가 동작을 수행하지 않는다. 램(120), 보안 프로세서(100) 및/또는 시스템 온 칩의 파워 오프가 스케줄링되어 있다면(Y), 도 5를 통해 설명된 스왑 아웃(Swap out) 동작을 수행하고, 램(120)에 저장된 타임 스탬프 테이블 영역(123)을 암호화하여 제1 메모리(30)에 전송한다(S310). 이후, 램(120)의 마스터 타임 스탬프(124)와 마스터 태그(125)를 보안 데이터 정보 영역(400)에 백업시킨다(S320). 몇몇 실시예들에 따른 반도체 시스템의 동작에서 S320과 S310의 순서는 서로 바뀔 수도 있다.
도 12, 도 13, 및 도 16을 참조하면, 램(120), 보안 프로세서(100) 및/또는 시스템 온 칩의 파워 온(power on) 여부를 확인한다(S400). 램(120), 보안 프로세서(100) 및/또는 시스템 온 칩이 파워 온이 되지 않는다면(N), 램(120), 보안 프로세서(100) 및/또는 시스템 온 칩은 추가 동작을 수행하지 않는다. 램(120), 보안 프로세서(100) 및/또는 시스템 온 칩이 파워 온 된다면(Y), 제1 메모리(30)의 타임 스탬프 테이블 백업 영역(330)에 백업된 암호화된 타임 스탬프를 복호화 하는데, 램(120)의 마스터 타임 스탬프(124)를 이용하고, 이 과정에서 생성된 태그를 마스터 태그(125)와 비교한다. 이때, 복호화 과정에서 생성된 태그가 마스터 태그(125)와 서로 동일한 지를 판단하여 보안성을 검증한다(S410). 예를 들어, 복호화 과정에서 생성된 태그가 마스터 태그(125)와 서로 동일하다고 판단되면, 보안성이 검증된 것으로 인정한다. 이후, 제1 메모리(30)로부터 램(120)으로 스왑 인(Swap in)을 수행한다(S420). 이후,
도 17은 몇몇 실시예들에 따른 도 12의 반도체 시스템의 동작을 도시한 예시적인 다른 블록도이다.
도 12 및 도 17을 참조하면, 몇몇 실시예들에 따른 다른 반도체 시스템(3)은 제1 메모리(30)에 스왑 아웃(Swap out)된 메모리 관리 테이블 백업 영역(300), 스왑 영역(310), 태그 테이블 영역(320), 및 타임 스탬프 백업 영역(330) 전체를 제2 메모리(20)의 비휘발성 데이터 백업 영역(200)에 저장할 수 있다. 반대로, 제2 메모리(20)의 비휘발성 데이터 백업 영역(200)에 저장된 정보들을 제1 메모리(30)로 읽어들인 후 스왑 인(Swap in) 동작을 수행할 수 있다.
예를 들어, 보안 프로세서(100), 시스템 온 칩, 및/또는 반도체 시스템이 파워 오프(power off)되는 경우, 그리고, 보안 프로세서(100), 시스템 온 칩, 및/또는 반도체 시스템이 파워 온(power on)되는 경우, 보안 프로세서(100)가 제1 메모리(30) 및 제2 메모리(20)를 활용하는 동작을 도 18 및 도 19를 통해 살펴본다. 이하에서는, 반도체 시스템의 파워 오프 및/또는 파워 온의 경우를 예시로 설명한다.
도 18과 도 19는 도 17의 동작을 설명하기 위한 예시적인 흐름도들이다.
도 12, 도 13, 및 도 18을 참조하면, 반도체 시스템의 파워 오프가 스케쥴링되어 있는지 판단한다(S500). 반도체 시스템의 파워 오프가 스케쥴링되어 있지 않다면(N), 반도체 시스템은 추가적인 동작을 수행하지 않는다. 만약, 반도체 시스템의 파워 오프가 스케쥴링되어 있다면(Y), 도 5를 통해 설명된 스왑 아웃(Swap out) 동작을 수행하고, 램(120)에 저장된 타임 스탬프 테이블 영역(123)을 암호화하여 제1 메모리(30)에 전송한다(S510). 이후, 도 9에서 설명된 바와 같이, 제1 메모리(30)에 스왑 아웃(Swap out)된 메모리 관리 테이블 백업 영역(300), 스왑 영역(310), 및 태그 테이블 영역(320) 전체를 제2 메모리(20)의 비휘발성 데이터 백업 영역(200)에 기록한다(S520). 이후, 마스터 타임 스탬프(124)와 마스터 태그(125)를 보안 데이터 정보 영역(400)에 백업시킨다(S510). 몇몇 실시예들에 따른 반도체 시스템의 동작에서 단계 S520과 단계 S530의 순서는 서로 바뀔 수 있다.
도 12, 도 13, 및 도 19를 참조하면, 반도체 시스템의 파워 온 되었는지 판단한다(S600). 반도체 시스템이 파워 온이 되지 않는다면(N), 반도체 시스템은 추가 동작을 수행하지 않는다. 반도체 시스템이, 파워 온 된다면(Y), 비휘발성 데이터 백업 영역(200)에 기록된 데이터들을 제1 메모리(30)가 리드한다(S610). 이후, 램(120)의 마스터 타임 스탬프(124)를 이용하여 제1 메모리(30)의 타임 스탬프 테이블 백업 영역(330)에 백업된 암호화된 타임 스탬프를 복호화한다. 또한, 마스터 태그(125)와 상기 복호화 과정에서 발생된 태그를 마스터 태그(125)와 비교하여 서로 동일한 지를 판단하여 보안성을 검증한다(S620). 예를 들어, 상기 복호화 과정에서 발생된 태그를 마스터 태그(125)와 비교하여 서로 동일하면, 보안성이 검증된 것으로 판단할 수 있다. 이후, 제1 메모리(30)로부터 램(120)으로 스왑 인(Swap in)을 수행한다(S630).
상술된 도 12 내지 도 19에서의 보안 데이터 정보 영역(400)과 타임 스탬프 테이블 백업 영역(330)이 램(120), 보안 프로세서(100), 시스템 온 칩 및/또는 반도체 시스템의 파워 오프, 파워 온 상황에서만 이용되는 것은 아니며, 필요한 경우 어떤 상황에서든 이용될 수 있다.
도 20 내지 도 22는 몇몇 실시예들에 따른 반도체 시스템의 동작을 설명하기 위한 예시적인 흐름도들이다.
도 12, 도 13, 및 도 20을 참조하여, 램(120)의 크기보다 큰 소프트웨어를 CPU(110)가 실행하는 경우의 반도체 시스템의 동작에 대해 예시적으로 설명한다.
먼저, CPU(110)가 실행하는 소프트웨어가 이용하는 페이지가 램 캐시 영역(122)에 존재하는지 판단한다(S700). 이하에서, CPU(110)가 실행하는 소프트웨어가 이용하는 페이지를 제1 페이지라고 가정하고 설명한다.
더 자세히는, 메모리 관리 테이블에, 접근하려는 제1 페이지의 가상 주소를 전달하고, 전달받은 가상 주소에 대응하는 제1 페이지의 물리 주소에 엑세스를 시도한다. 만약, 해당 제1 페이지가 램 캐시 영역(122)에 존재한다면(Y), 즉, 제1 페이지가 엑세스 가능하다면, 스왑 인 및 스왑 아웃 동작이 수행되지 않는다.
이때 예를 들어, CPU(110)가 실행하는 동작이, 제1 페이지에 대한 쓰기 동작이라면, 도 2의 메모리 관리 테이블의 제1 페이지(Page #1)에 대한 더티 여부 정보에 대해, 더티(Dirty)가 셋팅(setting)될 수 있다.
단계 S700에서, 제1 페이지가 램 캐시 영역(122)에 존재하지 않는다고 판단한 경우(N), 제1 페이지는 스왑 영역(310)에 백업되어 있는 상태라고 판단할 수 있다. 즉, CPU(110)는 제1 페이지에 접근하기 위해, 스왑 영역(310)에 백업된 제1 페이지를 보안 영역(S/Z)(예를 들어, 램 캐시 영역(122))으로 스왑 인(Swap in)을 시켜야 한다. 이때, 램 캐시 영역(122)에 제1 페이지가 스왑 인(Swap in)할 수 있는 비어있는 슬랏(slot)이 존재하는 지 판단한다(S710).
만약, 빈 슬랏이 없다고 판단되는 경우(N), 스왑 인(Swap in)시킬 슬랏 혹은 페이지를 스왑 인(Swap in) 시킬 슬랏의 페이지가 더티한 페이지인지를 판단한다(S720). 램 캐시 영역(122)의 스왑 인(Swap in)될 페이지가 더티한지 여부는 도 2에서 설명된 바와 같이, 메모리 관리 테이블(121)에 저장된 각 페이지의 더티 여부를 확인하여 판단할 수 있다.
만약, 램 캐시 영역(122)에 스왑 인(Swap in) 시킬 슬랏 혹은 페이지를 스왑 인(Swap in) 시킬 슬랏의 페이지가 더티하다고 판단된 경우(Y), 스왑 인(Swap in)될 페이지에 대응하는 타임 스탬프 테이블 영역(123)에 저장된 타임 스탬프를 증가시킨다(S740). 이후, 단계 S740을 통해 증가된 타임 스탬프와 key, 그리고 Initial vector를 이용해 스왑 인(Swap in)될 페이지를 암호화하고, 스왑 아웃(Swap out) 시킨다(S750). 단계 S750은 온 더 플라이(on the fly)로 수행될 수 있다.
단계 S740 및 단계 S750을 통해, 스왑 인(Swap in)될 페이지가 스왑 아웃(Swap out)되거나, 단계 S720을 통해 판단한 결과, 더티하지 않은 페이지(N)라고 판단되는 경우, 도 2의 메모리 관리 테이블(121)의 스왑 인(Swap in)될 페이지에 대한 유효성 여부를 유효하지 않음으로 업데이트 한다. 예를 들어, 유효함을 나타내는 "Valid"를 삭제하여 유효하지 않은 페이지인 것으로 나타내도록 업데이트 한다(S730).
이후, 단계 S710을 통해 램 캐시 영역(122)에 스왑 인(Swap in)될 페이지가 빈 슬랏이라고 판단된 경우(Y), 혹은 단계 S740과 단계 S750을 통해 램 캐시 영역(122)에 스왑 인(Swap in)될 페이지가 확보된 후, 제1 페이지를 스왑 인 한다(S760).
이때, 단계 S720을 통해, 스왑 인(Swap in)될 페이지가 더티하지 않다고 판단(N)한 후, 메모리 관리 테이블을 업데이트한 단계 S730을 거친 경우, 단계 S760 이후의 동작은 수행되지 않는다. 단계 S720을 통해, 스왑 인(Swap in)될 페이지가 더티하지 않다고 판단(N)된 경우는, 제1 페이지가 램 캐시 영역(122)으로 스왑 인 된 이후로 현재까지 업데이트가 없다는 뜻으로, 추가적인 스왑 동작이 필요 없기 때문이다.
단계 S710을 통해 램 캐시 영역(122)에 스왑 인(Swap in)될 페이지가 빈 슬랏이라고 판단된 경우(Y), 혹은 단계 S740과 단계 S750을 통해 램 캐시 영역(122)에 스왑 인(Swap in)될 페이지가 확보된 후, 단계 S760을 수행한 후, 도 2의 메모리 관리 테이블의 스왑 인(Swap in)될 페이지의 유효성 여부를 유효하도록 나타낸다. 예를 들어, 유효함을 나타내는 "Valid"로 셋팅할 수 있다.
도 12, 도 17, 및 도 21을 참조하여, 보안 영역(S/Z)에서 사용되는 소프트웨어의 데이터를 제2 메모리(20)에 저장하는 방법에 대한 실시예를 설명한다.
먼저, 램 캐시 영역(122)의 페이지들 중 더티(Dirty)한 페이지들을 모두 스왑 영역(310)으로 스왑 아웃(Swap out) 한다(S800). 즉, 보안 프로세서(100)에 의해 변경된 페이지들이나, 아직 스왑 영역(310)에 반영되지 않은 변경 사항들을 스왑 아웃(Swap out) 동작을 통해 제1 메모리(30)에 반영한다.
이후, 램(120)의 타임 스탬프 테이블 영역(123)을 제1 메모리(30)의 타임 스탬프 테이블 백업 영역(330)으로 스왑 아웃(Swap out)하는데, 이 과정에서 마스터 타임 스탬프(124)가 사용될 수 있다.
구체적으로, 도 14에서 도시된 것과 같은, 보안 데이터 정보 영역(400)의 액티브 설정 정보(Active set)를 확인해서, 보안 영역(S/Z)에서 사용되는 소프트웨어의 현재 마스터 스탬프를 확인한다(S810).
이후, 단계 S810에서 확인한 마스터 스탬프 값을 변경한다(S820). 예를 들어, 단계 S810에서 확인한 마스터 스탬프 값이 마스터 스탬프 (A)라면, 마스터 스탬프 (B)로 변경한다.
이후, 타임 스탬프 테이블 영역(123)을 암호화하여 타임 스탬프 테이블 백업 영역(330)에 백업하고, 암호화 과정에서 생성된 마스터 태그(125)를 램(120)에 저장한다(S830).
이후, 제1 메모리(30)에 스왑 아웃(Swap out)된 보안 비휘발성 데이터들 보안 비휘발성 데이터 백업 영역(200)에 기록한다(S840).
이후, 보안 데이터 정보 영역(400)에 마스터 스탬프와 마스터 태그 정보를 기록한다(S850). 예를 들어, 현재 보안 프로세서(100)에 의해 실행되는 소프트웨어의 액티브 설정 정보가 (A)라면, 마스터 스탬프(B)와 마스터 태그(B) 영역에 단계 S850에서의 마스터 스탬프와 마스터 태그 정보를 기록한다. 단계 S820에서 마스터 스탬프가 변경되었기 때문이다.
이후, 액티브 설정 정보를 변경한다(S860). 예를 들어, 현재 보안 프로세서(100)에 의해 실행되는 소프트웨어의 액티브 설정 정보가 (A)였다면, (B)로 변경한다.
도 12, 도 17, 및 도 22를 참조하여, 제2 메모리(20)로부터 보안 비휘발성 데이터를 리드하는 방법에 대한 실시예를 설명한다.
먼저, 제1 메모리(30)가 보안 비휘발성 데이터 백업 영역(200)으로부터 보안 비휘발성 데이터를 리드한다(S900).
이후, 보안 데이터 정보(400)의 액티브 설정 정보(Active set)를 체크(S910)하여, 유효한 마스터 타임 스탬프(124) 정보와 마스터 태그(125)를 얻어내고, 이를 이용해 타임 스탬프 테이블 백업 영역(330)을 복호화(S920)하여 램(120)의 타임 스탬프 테이블 영역(123)에 저장한다.
또한, 이 복호화 과정에서 발생된 태그를 마스터 태그(125)와 비교하여 보안성을 검증한다(S930).
이후, 타임 스탬프 테이블 영역(123)에 복원된 타임 스탬프를 이용하여, 스왑 영역(310)의 페이지들을 복호화하여 램 캐시 영역(122)으로 스왑 인(Swap in)시킨다. 또한, 이 복호화 과정에서 발생된 태그를 태그 테이블 영역(320)의 것과 비교하여 보안성을 검증할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10: 시스템 온 칩 30: 제1 메모리 20: 제2 메모리 40: 보안 비휘발성 스토리지 100: 보안 프로세서 102: 제2 메모리 인터페이스 104: 어플리케이션 프로세서 108: 제1 메모리 인터페이스 110: CPU 120: 램 130: 롬 140: 암복호화 엔진 150: DMA 모듈 160: 메일박스 170: 메모리 관리 유닛 400: 보안 데이터 정보 영역

Claims (10)

  1. 보안 프로세서를 포함하는 시스템 온 칩으로서,
    상기 보안 프로세서는,
    페이지를 저장하는 램 캐시 영역과, 타임 스탬프(Timestamp)를 저장하는 타임 스탬프 테이블을 저장하는 램;
    상기 타임 스탬프를 이용하여, 상기 페이지를 암호화하는 암복호화 엔진; 및
    상기 암호화된 페이지를, 상기 시스템 온 칩 외부에 배치된 제1 메모리의 스왑 영역(Swap Region)에 전송하는 DMA(DMA: Direct Memory Access) 모듈을 포함하되,
    상기 제1 메모리는, 상기 암복호화 엔진이 상기 페이지를 암호화하며 생성하는 태그가 저장되는 태그 테이블 영역과 상기 타임 스탬프를 백업하는 타임 스탬프 백업 영역을 포함하되,
    상기 스왑 영역, 상기 태그 테이블 영역, 및 상기 타임 스탬프 백업 영역은 상기 시스템 온 칩 외부에 배치된 제2 메모리에 백업되는 시스템 온 칩.
  2. 제 1항에 있어서,
    복수의 CPU 코어들을 포함하는 어플리케이션 프로세서;
    상기 제1 메모리와 통신하는 제1 메모리 인터페이스; 및
    상기 제2 메모리와 통신하는 제2 메모리 인터페이스를 더 포함하는 시스템 온 칩.
  3. 제 1항에 있어서,
    상기 램은,
    상기 램 캐시 영역의 상기 페이지의 암호화에 이용되는 마스터 타임 스탬프와 마스터 태그를 저장하는 시스템 온 칩.
  4. 제 1항에 있어서,
    상기 보안 프로세서는,
    상기 페이지의 가상 메모리 주소, 물리 메모리 주소, 더티 여부와 유효성 여부를 저장하는 메모리 관리 테이블(MMT: Memory Management Table)을 이용하는 메모리 관리 유닛(MMU: Memory Management Unit)를 더 포함하되,
    상기 더티 여부는 상기 페이지가 상기 램 캐시 영역에 스왑 인(Swap in)된 후, 상기 램 캐시 영역의 상기 페이지에 대한 변경이 이루어졌는지 확인하는 시스템 온 칩.
  5. 페이지가 저장된 램 캐시 영역, 상기 페이지를 암호화하는데 이용되는 타임 스탬프가 저장된 타임 스탬프 테이블을 저장하는 램;
    상기 램으로부터 상기 페이지와 상기 타임 스탬프를 수신하여 상기 페이지를 암호화하고, 태그를 생성시키는 암복호화 엔진; 및
    상기 암호화된 페이지를 제1 외부 메모리의 스왑 영역에 전송하고, 상기 태그를 상기 제1 외부 메모리의 태그 테이블 영역에 전송하는 DMA 모듈을 포함하되,
    상기 스왑 영역과, 상기 태그 테이블 영역은 제2 외부 메모리에 백업되는 보안 프로세서.
  6. 제 5항에 있어서,
    상기 페이지의 가상 메모리 주소, 물리 메모리 주소, 더티 여부와 유효성 여부를 저장하는 메모리 관리 테이블을 이용하는 메모리 관리 유닛를 더 포함하되,
    상기 페이지가 상기 램 캐시 영역에 전송된 후, 상기 램 캐시 영역의 상기 페이지의 변경이 있는 경우, 상기 더티 여부는 더티가 되는 보안 프로세서.
  7. 제 5항에 있어서,
    상기 램은, 상기 페이지의 암호화에 이용되는 마스터 타임 스탬프와 마스터 태그를 저장하며,
    상기 마스터 타임 스탬프와 상기 마스터 태그는 보안 채널을 통해 보안 비휘발성 스토리지의 보안 데이터 정보 영역에 저장되는 보안 프로세서.
  8. 복수의 CPU 코어들을 포함하는 어플리케이션 프로세서와 보안 프로세서를 포함하는 시스템 온 칩; 및
    상기 시스템 온 칩의 외부에 배치된 제1 메모리와 제2 메모리를 포함하되,
    상기 보안 프로세서는,
    페이지를 저장하는 램 캐시 영역과, 타임 스탬프(Timestamp)를 저장하는 타임 스탬프 테이블을 저장하는 램과 상기 타임 스탬프를 이용하여, 상기 페이지를 암호화하는 암복호화 엔진, 그리고 상기 암호화된 페이지를, 상기 제1 메모리의 스왑 영역(Swap Region)에 전송하는 DMA 모듈을 포함하며,
    상기 제1 메모리는,
    상기 암복호화 엔진이 상기 페이지를 암호화하며 생성하는 태그가 저장되는 태그 테이블 영역과 상기 타임 스탬프를 백업하는 타임 스탬프 백업 영역을 포함하되,
    상기 제2 메모리는,
    상기 스왑 영역, 상기 태그 테이블 영역, 및 상기 타임 스탬프 백업 영역이 백업되는 비휘발성 데이터 백업 영역을 포함하는 반도체 시스템.
  9. 제 8항에 있어서,
    상기 시스템 온 칩은 상기 제1 메모리와 통신하는 제1 메모리 인터페이스와, 상기 제2 메모리와 통신하는 제2 메모리 인터페이스를 더 포함하는 반도체 시스템.
  10. 제 8항에 있어서,
    상기 램은,
    상기 램 캐시 영역의 상기 페이지의 암호화에 이용되는 마스터 타임 스탬프와 마스터 태그를 저장하는 반도체 시스템.
KR1020210077282A 2021-06-15 2021-06-15 보안 프로세서를 포함하는 시스템 온 칩과 이를 포함하는 반도체 시스템 KR20220167936A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210077282A KR20220167936A (ko) 2021-06-15 2021-06-15 보안 프로세서를 포함하는 시스템 온 칩과 이를 포함하는 반도체 시스템
US17/585,881 US20220398349A1 (en) 2021-06-15 2022-01-27 System on chip including secure processor and semiconductor system including the same
CN202210570876.4A CN115481080A (zh) 2021-06-15 2022-05-24 包括安全处理器的片上系统和包括该片上系统的半导体系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210077282A KR20220167936A (ko) 2021-06-15 2021-06-15 보안 프로세서를 포함하는 시스템 온 칩과 이를 포함하는 반도체 시스템

Publications (1)

Publication Number Publication Date
KR20220167936A true KR20220167936A (ko) 2022-12-22

Family

ID=84390330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210077282A KR20220167936A (ko) 2021-06-15 2021-06-15 보안 프로세서를 포함하는 시스템 온 칩과 이를 포함하는 반도체 시스템

Country Status (3)

Country Link
US (1) US20220398349A1 (ko)
KR (1) KR20220167936A (ko)
CN (1) CN115481080A (ko)

Also Published As

Publication number Publication date
US20220398349A1 (en) 2022-12-15
CN115481080A (zh) 2022-12-16

Similar Documents

Publication Publication Date Title
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
US10261919B2 (en) Selective memory encryption
CN107408081B (zh) 提供对存储器的加强重放保护
CN107408192B (zh) 保护存储器
US7590869B2 (en) On-chip multi-core type tamper resistant microprocessor
US11194920B2 (en) File system metadata protection
US9684608B2 (en) Maintaining a secure processing environment across power cycles
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
CN110147329B (zh) 一种动态检测模拟器的方法、装置及终端
US20110022853A1 (en) Encrypting data in volatile memory
CA3176858A1 (en) Data processing method and system
CN106716435B (zh) 设备与安全处理环境之间的接口
JP2016076220A (ja) ブートプログラム、情報処理装置、情報処理システム、情報処理方法、半導体装置、およびプログラム
US20200183861A1 (en) Method and apparatus for sharing security metadata memory space
KR101653193B1 (ko) 보안 처리 환경으로부터의 기능의 오프로딩
US11216592B2 (en) Dynamic cryptographic key expansion
US9218296B2 (en) Low-latency, low-overhead hybrid encryption scheme
KR20220167936A (ko) 보안 프로세서를 포함하는 시스템 온 칩과 이를 포함하는 반도체 시스템
JP2011181107A (ja) セキュアプロセッサ用プログラム
US20220014381A1 (en) Message authentication code (mac) generation for live migration of encrypted virtual machiness
JP2011233157A (ja) セキュアプロセッサ
US11244066B2 (en) System on chip
US20240054071A1 (en) Hardware mechanism to extend mktme protections to sgx data outside epc
CN114329607A (zh) PostgreSQL数据库中实现WAL日志透明加密和解密的方法
CN116346316A (zh) 密态计算中进程创建期间的进程对象密钥更新