KR20240032591A - Electronic device for storing encrypted data in non-volatile memory and method thereof - Google Patents

Electronic device for storing encrypted data in non-volatile memory and method thereof Download PDF

Info

Publication number
KR20240032591A
KR20240032591A KR1020220126226A KR20220126226A KR20240032591A KR 20240032591 A KR20240032591 A KR 20240032591A KR 1020220126226 A KR1020220126226 A KR 1020220126226A KR 20220126226 A KR20220126226 A KR 20220126226A KR 20240032591 A KR20240032591 A KR 20240032591A
Authority
KR
South Korea
Prior art keywords
electronic device
mapping table
volatile memory
tag information
data
Prior art date
Application number
KR1020220126226A
Other languages
Korean (ko)
Inventor
김정일
공선준
김진일
김진형
김태훈
정호용
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to PCT/KR2023/012723 priority Critical patent/WO2024049141A1/en
Publication of KR20240032591A publication Critical patent/KR20240032591A/en

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/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells

Abstract

일 실시 예에 따른, 전자 장치는, 어플리케이션 프로세서로부터, 데이터를 암호화하기 위한 요청을 식별할 수 있다. 전자 장치는, 상기 요청에 기반하여 매핑 테이블 내에 포함된 ARC에 기반하여 상기 데이터를 암호화할 수 있다. 전자 장치는, 상기 암호화된 데이터에 기반하여, 상기 암호화된 데이터에 대한 무결성 검사와 관련된 태그 정보를 획득할 수 있다. 전자 장치는, 상기 어플리케이션 프로세서를 제어하여, 상기 비휘발성 메모리 내에 상기 암호화된 데이터, 상기 매핑 테이블, 및 상기 태그 정보를 저장할 수 있다. 그 밖에 다양한 실시예가 가능하다.According to one embodiment, the electronic device may identify a request to encrypt data from the application processor. The electronic device may encrypt the data based on the ARC included in the mapping table based on the request. Based on the encrypted data, the electronic device may obtain tag information related to an integrity check for the encrypted data. The electronic device may control the application processor to store the encrypted data, the mapping table, and the tag information in the non-volatile memory. Various other embodiments are possible.

Description

암호화된 데이터를 비휘발성 메모리 내에 저장하기 위한 전자 장치 및 그 방법{ELECTRONIC DEVICE FOR STORING ENCRYPTED DATA IN NON-VOLATILE MEMORY AND METHOD THEREOF} Electronic device and method for storing encrypted data in non-volatile memory {ELECTRONIC DEVICE FOR STORING ENCRYPTED DATA IN NON-VOLATILE MEMORY AND METHOD THEREOF}

다양한 실시예들은, 암호화된 데이터를 비휘발성 메모리 내에 저장하기 위한 전자 장치 및 그 방법에 관한 것이다. Various embodiments relate to an electronic device and method for storing encrypted data in a non-volatile memory.

최근의 전자 장치들은 보안을 필요로 하는 다양한 정보들(예, 결제 정보, 크레덴셜 정보, 인증서)을 저장할 수 있다. 보안을 필요로 하는 다양한 정보를 저장 가능함에 따라 전자 장치의 보안에 대한 관심이 증가하고 있다. 예를 들어, 최근의 전자 장치들은, 독립적인 RAM(random access memory)과 ROM(read only memory)을 갖는 보안 프로세서(secure processor)를 내장하여 전자 장치, 및 다양한 정보를 보다 안전하게 보호할 수 있는 보안 환경을 제공하고 있다. Recent electronic devices can store various information that requires security (eg, payment information, credential information, certificates). Interest in the security of electronic devices is increasing as various information requiring security can be stored. For example, recent electronic devices have a built-in secure processor with independent random access memory (RAM) and read only memory (ROM), which can protect electronic devices and various information more safely. We provide an environment.

일 실시 예에 따른(an embodiment), 전자 장치(electronic device)는, 어플리케이션 프로세서, 보안 프로세서, 및 상기 어플리케이션 프로세서에 의해 제어되는 비휘발성 메모리를 포함할 수 있다. 상기 보안 프로세서는, 상기 어플리케이션 프로세서로부터, 데이터를 암호화하기 위한 요청을 식별할 수 있다. 상기 보안 프로세서는, 상기 요청에 기반하여 매핑 테이블 내에 포함된 ARC(anti replay counter)에 기반하여 상기 데이터를 암호화할 수 있다. 상기 보안 프로세서는, 상기 암호화된 데이터에 기반하여, 상기 암호화된 데이터에 대한 무결성 검사(integrity check)와 관련된 태그 정보를 획득할 수 있다. 상기 보안 프로세서는, 상기 어플리케이션 프로세서를 제어하여, 상기 비휘발성 메모리 내에 상기 암호화된 데이터, 상기 매핑 테이블, 및 상기 태그 정보를 저장할 수 있다. According to an embodiment, an electronic device may include an application processor, a security processor, and a non-volatile memory controlled by the application processor. The security processor may identify a request to encrypt data from the application processor. The security processor may encrypt the data based on an anti-replay counter (ARC) included in a mapping table based on the request. The security processor may obtain tag information related to an integrity check for the encrypted data, based on the encrypted data. The security processor may control the application processor to store the encrypted data, the mapping table, and the tag information in the non-volatile memory.

일 실시 예에 따른, 전자 장치(electronic device)의 방법은, 어플리케이션 프로세서로부터, 데이터를 암호화하는 위한 요청을 식별하는 동작을 포함할 수 있다. 상기 전자 장치의 상기 방법은, 상기 요청에 기반하여 매핑 테이블 내에 포함된 ARC(anti replay counter)에 기반하여 상기 데이터를 암호화하는 동작을 포함할 수 있다. 상기 전자 장치의 상기 방법은, 상기 암호화된 데이터에 기반하여, 상기 암호화된 데이터에 대한 무결성 검사(integrity check)와 관련된 태그 정보를 획득하는 동작을 포함할 수 있다. 상기 전자 장치의 상기 방법은, 상기 어플리케이션 프로세서를 제어하여, 상기 어플리케이션 프로세서에 의해 제어되는 비휘발성 메모리 내에 상기 암호화된 데이터, 상기 매핑 테이블, 및 상기 태그 정보를 저장하는 동작을 포함할 수 있다. According to one embodiment, a method of an electronic device may include identifying a request to encrypt data from an application processor. The method of the electronic device may include encrypting the data based on an anti-replay counter (ARC) included in a mapping table based on the request. The method of the electronic device may include an operation of obtaining tag information related to an integrity check for the encrypted data, based on the encrypted data. The method of the electronic device may include controlling the application processor to store the encrypted data, the mapping table, and the tag information in a non-volatile memory controlled by the application processor.

일 실시 예에 따른, 전자 장치(electronic device)는, 어플리케이션 프로세서, 보안 프로세서, 상기 어플리케이션 프로세서에 의해 제어되는 제1 비휘발성 메모리, 및 상기 보안 프로세서에 의해 제어되는 제2 비휘발성 메모리를 포함할 수 있다. 상기 보안 프로세서는, 상기 어플리케이션 프로세서로부터, 암호화된 데이터를 복호화하기 위한 요청을 식별할 수 있다. 상기 보안 프로세서는, 상기 요청에 기반하여, 상기 제2 비휘발성 메모리에 기반한 매핑 테이블 내에 포함된 ARC(anti replay counter), 및 상기 제2 비휘발성 메모리에 기반한 태그 정보를 이용하여, 제1 매핑 테이블인 상기 매핑 테이블과 상이하고, 암호화된 제2 매핑 테이블, 및 제1 태그 정보인 상기 태그 정보와 상이하고 암호화된 제2 태그 정보를 복호화할 수 있다. 상기 보안 프로세서는, 상기 제2 매핑 테이블, 및 상기 제2 태그 정보를 복호화한 것에 기반하여, 상기 암호화된 데이터를 복호화할 수 있다. According to one embodiment, an electronic device may include an application processor, a security processor, a first non-volatile memory controlled by the application processor, and a second non-volatile memory controlled by the security processor. there is. The security processor may identify a request to decrypt encrypted data from the application processor. The security processor, based on the request, uses an anti-replay counter (ARC) included in a mapping table based on the second non-volatile memory and tag information based on the second non-volatile memory to create a first mapping table. The second mapping table, which is different from the mapping table and is encrypted, and the second tag information, which is different from the tag information and which is the first tag information, and which are encrypted, can be decrypted. The security processor may decrypt the encrypted data based on decrypting the second mapping table and the second tag information.

일 실시 예에 따른, 전자 장치(electronic device)의 방법은, 어플리케이션 프로세서로부터, 상기 어플리케이션에 의해 제어되는 제1 비휘발성 메모리 내에 저장되고 암호화된 데이터를 복호화하기 위한 요청을 식별하는 동작을 포함할 수 있다. 상기 전자 장치의 상기 방법은, 상기 요청에 기반하여, 상기 제1 비휘발성 메모리와 상이하고 보안 프로세서에 의해 제어되는 제2 비휘발성 메모리에 기반한 매핑 테이블 내에 포함된 ARC(anti replay counter), 및 상기 제2 비휘발성 메모리에 기반한 태그 정보를 이용하여, 제1 매핑 테이블인 상기 매핑 테이블과 상이하고, 암호화된 제2 매핑 테이블, 및 제1 태그 정보인 상기 태그 정보와 상이한 제2 태그 정보를 복호화하는 동작을 포함할 수 있다. 상기 전자 장치의 상기 방법은, 상기 제2 매핑 테이블, 및 상기 제2 태그 정보를 복호화한 것에 기반하여, 상기 암호화된 데이터를 복호화할 수 있다. According to one embodiment, a method in an electronic device may include identifying, from an application processor, a request to decrypt data stored and encrypted in a first non-volatile memory controlled by the application. there is. The method of the electronic device includes, based on the request, an anti-replay counter (ARC) included in a mapping table based on a second non-volatile memory that is different from the first non-volatile memory and is controlled by a security processor; and Using tag information based on a second non-volatile memory, a second mapping table that is different from the mapping table that is a first mapping table and is encrypted, and a second tag information that is different from the tag information that is first tag information, are decrypted. Can include actions. The method of the electronic device may decrypt the encrypted data based on decrypting the second mapping table and the second tag information.

도 1은, 일 실시 예에 따른, 네트워크 환경 내의 전자 장치의 블록도(block diagram)의 일 예를 도시한다.
도 2a는, 일 실시 예에 따른, 전자 장치의 블록도의 일 예를 도시한다.
도 2b는, 일 실시 예에 따른, 전자 장치의 블록도의 일 예를 도시한다.
도 3은, 일 실시 예에 따른, 데이터를 암호화하기 위한 전자 장치의 동작에 관한 일 예를 도시한다.
도 4a는, 일 실시 예에 따른, 데이터를 복호화하기 위한 전자 장치의 동작에 관한 일 예를 도시한다.
도 4b는, 일 실시 예에 따른, 데이터를 복호화하기 위한 전자 장치의 동작에 관한 일 예를 도시한다.
도 5는, 일 실시 예에 따른, 전자 장치의 동작에 관한 흐름도의 일 예를 도시한다.
도 6은, 일 실시 예에 따른, 전자 장치의 동작에 관한 흐름도의 일 예를 도시한다.
FIG. 1 shows an example of a block diagram of an electronic device in a network environment, according to an embodiment.
FIG. 2A shows an example of a block diagram of an electronic device, according to an embodiment.
FIG. 2B shows an example of a block diagram of an electronic device, according to an embodiment.
FIG. 3 illustrates an example of an operation of an electronic device to encrypt data, according to an embodiment.
FIG. 4A illustrates an example of an operation of an electronic device to decrypt data, according to an embodiment.
FIG. 4B illustrates an example of an operation of an electronic device to decrypt data, according to an embodiment.
Figure 5 shows an example of a flowchart regarding the operation of an electronic device, according to an embodiment.
Figure 6 shows an example of a flowchart regarding the operation of an electronic device, according to an embodiment.

도 1은, 일 실시 예에 따른, 네트워크 환경 내의 전자 장치의 블록도(block diagram)의 일 예를 도시한다. FIG. 1 shows an example of a block diagram of an electronic device in a network environment, according to an embodiment.

도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108) 중 적어도 하나와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.Referring to FIG. 1, in the network environment 100, the electronic device 101 communicates with the electronic device 102 through a first network 198 (e.g., a short-range wireless communication network) or a second network 199. It is possible to communicate with at least one of the electronic device 104 or the server 108 through (e.g., a long-distance wireless communication network). According to one embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108. According to one embodiment, the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, and a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or may include an antenna module 197. In some embodiments, at least one of these components (eg, the connection terminal 178) may be omitted or one or more other components may be added to the electronic device 101. In some embodiments, some of these components (e.g., sensor module 176, camera module 180, or antenna module 197) are integrated into one component (e.g., display module 160). It can be.

프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.The processor 120, for example, executes software (e.g., program 140) to operate at least one other component (e.g., hardware or software component) of the electronic device 101 connected to the processor 120. It can be controlled and various data processing or calculations can be performed. According to one embodiment, as at least part of data processing or computation, the processor 120 stores commands or data received from another component (e.g., sensor module 176 or communication module 190) in volatile memory 132. The commands or data stored in the volatile memory 132 can be processed, and the resulting data can be stored in the non-volatile memory 134. According to one embodiment, the processor 120 includes a main processor 121 (e.g., a central processing unit or an application processor) or an auxiliary processor 123 that can operate independently or together (e.g., a graphics processing unit, a neural network processing unit ( It may include a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor). For example, if the electronic device 101 includes a main processor 121 and a secondary processor 123, the secondary processor 123 may be set to use lower power than the main processor 121 or be specialized for a designated function. You can. The auxiliary processor 123 may be implemented separately from the main processor 121 or as part of it.

보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다. The auxiliary processor 123 may, for example, act on behalf of the main processor 121 while the main processor 121 is in an inactive (e.g., sleep) state, or while the main processor 121 is in an active (e.g., application execution) state. ), together with the main processor 121, at least one of the components of the electronic device 101 (e.g., the display module 160, the sensor module 176, or the communication module 190) At least some of the functions or states related to can be controlled. According to one embodiment, co-processor 123 (e.g., image signal processor or communication processor) may be implemented as part of another functionally related component (e.g., camera module 180 or communication module 190). there is. According to one embodiment, the auxiliary processor 123 (eg, neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. Artificial intelligence models can be created through machine learning. For example, such learning may be performed in the electronic device 101 itself on which the artificial intelligence model is performed, or may be performed through a separate server (e.g., server 108). Learning algorithms may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but It is not limited. An artificial intelligence model may include multiple artificial neural network layers. Artificial neural networks include deep neural network (DNN), convolutional neural network (CNN), recurrent neural network (RNN), restricted boltzmann machine (RBM), belief deep network (DBN), bidirectional recurrent deep neural network (BRDNN), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the examples described above. In addition to hardware structures, artificial intelligence models may additionally or alternatively include software structures.

메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다. The memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101. Data may include, for example, input data or output data for software (e.g., program 140) and instructions related thereto. Memory 130 may include volatile memory 132 or non-volatile memory 134.

프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다. The program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142, middleware 144, or application 146.

입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다. The input module 150 may receive commands or data to be used in a component of the electronic device 101 (e.g., the processor 120) from outside the electronic device 101 (e.g., a user). The input module 150 may include, for example, a microphone, mouse, keyboard, keys (eg, buttons), or digital pen (eg, stylus pen).

음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.The sound output module 155 may output sound signals to the outside of the electronic device 101. The sound output module 155 may include, for example, a speaker or a receiver. Speakers can be used for general purposes such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.

디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다. The display module 160 can visually provide information to the outside of the electronic device 101 (eg, a user). The display module 160 may include, for example, a display, a hologram device, or a projector, and a control circuit for controlling the device. According to one embodiment, the display module 160 may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of force generated by the touch.

오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.The audio module 170 can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device (e.g., directly or wirelessly connected to the electronic device 101). Sound may be output through the electronic device 102 (e.g., speaker or headphone).

센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. The sensor module 176 detects the operating state (e.g., power or temperature) of the electronic device 101 or the external environmental state (e.g., user state) and generates an electrical signal or data value corresponding to the detected state. can do. According to one embodiment, the sensor module 176 includes, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, humidity sensor, or light sensor.

인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The interface 177 may support one or more designated protocols that can be used to connect the electronic device 101 directly or wirelessly with an external electronic device (eg, the electronic device 102). According to one embodiment, the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The connection terminal 178 may include a connector through which the electronic device 101 can be physically connected to an external electronic device (eg, the electronic device 102). According to one embodiment, the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).

햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The haptic module 179 can convert electrical signals into mechanical stimulation (e.g., vibration or movement) or electrical stimulation that the user can perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.

카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.The camera module 180 can capture still images and moving images. According to one embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.

전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The power management module 188 can manage power supplied to the electronic device 101. According to one embodiment, the power management module 188 may be implemented as at least a part of, for example, a power management integrated circuit (PMIC).

배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.The battery 189 may supply power to at least one component of the electronic device 101. According to one embodiment, the battery 189 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다. Communication module 190 is configured to provide a direct (e.g., wired) communication channel or wireless communication channel between electronic device 101 and an external electronic device (e.g., electronic device 102, electronic device 104, or server 108). It can support establishment and communication through established communication channels. Communication module 190 operates independently of processor 120 (e.g., an application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module 190 is a wireless communication module 192 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (e.g., : LAN (local area network) communication module, or power line communication module) may be included. Among these communication modules, the corresponding communication module is a first network 198 (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (e.g., legacy It may communicate with an external electronic device 104 through a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN). These various types of communication modules may be integrated into one component (e.g., a single chip) or may be implemented as a plurality of separate components (e.g., multiple chips). The wireless communication module 192 uses subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 to communicate within a communication network such as the first network 198 or the second network 199. The electronic device 101 can be confirmed or authenticated.

무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.The wireless communication module 192 may support 5G networks after 4G networks and next-generation communication technologies, for example, NR access technology (new radio access technology). NR access technology provides high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and access to multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low latency). -latency communications)) can be supported. The wireless communication module 192 may support high frequency bands (eg, mmWave bands), for example, to achieve high data rates. The wireless communication module 192 uses various technologies to secure performance in high frequency bands, for example, beamforming, massive array multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. It can support technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module 192 may support various requirements specified in the electronic device 101, an external electronic device (e.g., electronic device 104), or a network system (e.g., second network 199). According to one embodiment, the wireless communication module 192 supports Peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mmTC, or U-plane latency (e.g., 164 dB or less) for realizing URLLC. Example: Downlink (DL) and uplink (UL) each of 0.5 ms or less, or round trip 1 ms or less) can be supported.

안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다. The antenna module 197 may transmit or receive signals or power to or from the outside (eg, an external electronic device). According to one embodiment, the antenna module 197 may include an antenna including a radiator made of a conductor or a conductive pattern formed on a substrate (eg, PCB). According to one embodiment, the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is connected to the plurality of antennas by, for example, the communication module 190. can be selected. Signals or power may be transmitted or received between the communication module 190 and an external electronic device through the at least one selected antenna. According to some embodiments, in addition to the radiator, other components (eg, radio frequency integrated circuit (RFIC)) may be additionally formed as part of the antenna module 197.

다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.According to various embodiments, the antenna module 197 may form a mmWave antenna module. According to one embodiment, a mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first side (e.g., bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., mmWave band); And a plurality of antennas (e.g., array antennas) disposed on or adjacent to the second side (e.g., top or side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band. can do.

상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.At least some of the components are connected to each other through a communication method between peripheral devices (e.g., bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)) and signal ( (e.g. commands or data) can be exchanged with each other.

일실시예에 따르면, 명령 또는 데이터는 제2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다. According to one embodiment, commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199. Each of the external electronic devices 102 or 104 may be of the same or different type as the electronic device 101. According to one embodiment, all or part of the operations performed in the electronic device 101 may be executed in one or more of the external electronic devices 102, 104, or 108. For example, when the electronic device 101 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 101 may perform the function or service instead of executing the function or service on its own. Alternatively, or additionally, one or more external electronic devices may be requested to perform at least part of the function or service. One or more external electronic devices that have received the request may execute at least part of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device 101. The electronic device 101 may process the result as is or additionally and provide it as at least part of a response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology can be used. The electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device 104 may include an Internet of Things (IoT) device. Server 108 may be an intelligent server using machine learning and/or neural networks. According to one embodiment, the external electronic device 104 or server 108 may be included in the second network 199. The electronic device 101 may be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.

본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.Electronic devices according to various embodiments disclosed in this document may be of various types. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to embodiments of this document are not limited to the above-described devices.

본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.The various embodiments of this document and the terms used herein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various changes, equivalents, or replacements of the embodiments. In connection with the description of the drawings, similar reference numbers may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the above items, unless the relevant context clearly indicates otherwise. As used herein, “A or B”, “at least one of A and B”, “at least one of A or B”, “A, B or C”, “at least one of A, B and C”, and “A Each of phrases such as “at least one of , B, or C” may include any one of the items listed together in the corresponding phrase, or any possible combination thereof. Terms such as "first", "second", or "first" or "second" may be used simply to distinguish one component from another, and to refer to that component in other respects (e.g., importance or order) is not limited. One (e.g., first) component is said to be “coupled” or “connected” to another (e.g., second) component, with or without the terms “functionally” or “communicatively.” When mentioned, it means that any of the components can be connected to the other components directly (e.g. wired), wirelessly, or through a third component.

본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term “module” used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as logic, logic block, component, or circuit, for example. It can be used as A module may be an integrated part or a minimum unit of the parts or a part thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).

본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present document are one or more instructions stored in a storage medium (e.g., built-in memory 136 or external memory 138) that can be read by a machine (e.g., electronic device 101). It may be implemented as software (e.g., program 140) including these. For example, a processor (e.g., processor 120) of a device (e.g., electronic device 101) may call at least one command among one or more commands stored from a storage medium and execute it. This allows the device to be operated to perform at least one function according to the at least one instruction called. The one or more instructions may include code generated by a compiler or code that can be executed by an interpreter. A storage medium that can be read by a device may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' only means that the storage medium is a tangible device and does not contain signals (e.g. electromagnetic waves), and this term refers to cases where data is semi-permanently stored in the storage medium. There is no distinction between temporary storage cases.

일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어™)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, methods according to various embodiments disclosed in this document may be included and provided in a computer program product. Computer program products are commodities and can be traded between sellers and buyers. The computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play Store™) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smart phones) or online. In the case of online distribution, at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.

다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (e.g., module or program) of the above-described components may include a single or plural entity, and some of the plurality of entities may be separately placed in other components. there is. According to various embodiments, one or more of the components or operations described above may be omitted, or one or more other components or operations may be added. Alternatively or additionally, multiple components (eg, modules or programs) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each component of the plurality of components in the same or similar manner as those performed by the corresponding component of the plurality of components prior to the integration. . According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, or omitted. Alternatively, one or more other operations may be added.

도 2a는, 일 실시 예에 따른, 전자 장치의 블록도의 일 예를 도시한다. 도 2b는, 일 실시 예에 따른, 전자 장치의 블록도의 일 예를 도시한다. 도 2a, 및/또는 도 2b의 전자 장치(101)는, 도 1의 전자 장치(101)의 일 예일 수 있다. FIG. 2A shows an example of a block diagram of an electronic device, according to an embodiment. FIG. 2B shows an example of a block diagram of an electronic device, according to an embodiment. The electronic device 101 of FIGS. 2A and/or 2B may be an example of the electronic device 101 of FIG. 1 .

도 2a, 및 도 2b를 참조하면, 일 실시 예에 따른, 전자 장치(101)는, 어플리케이션 프로세서(210), 보안 프로세서(220), 제1 휘발성 메모리(221), 메모리 매니저(222), 크립토 엔진(223)(crypto engine), 제1 비휘발성 메모리(224), 제2 비휘발성 메모리(230), 제2 휘발성 메모리(240), 또는 제3 비휘발성 메모리(250) 중 적어도 하나를 포함할 수 있다. 어플리케이션 프로세서(210), 보안 프로세서(220), 제1 휘발성 메모리(221), 메모리 매니저(222), 크립토 엔진(223), 제1 비휘발성 메모리(224), 제2 비휘발성 메모리(230), 제2 휘발성 메모리(240), 및 제3 비휘발성 메모리(250)는, 통신 버스(a communication processor)(260), 및/또는 통신 버스(270)와 같은 전자 소자(electronical component)에 의해 서로 전기적으로 및/또는 작동적으로 연결될 수 있다(electronically and/or operably coupled with each other). 상이한 블록들에 기반하여 도시되었으나, 실시 예가 이에 한정되는 것은 아니다. 예를 들어, 도 2a에 도시된 하드웨어 컴포넌트 중 일부분(예, 어플리케이션 프로세서(210), 보안 프로세서(220), 제1 휘발성 메모리(221), 메모리 매니저(222), 크립토 엔진(223), 및/또는 제1 비휘발성 메모리(224)의 적어도 일부분)이 SoC(system on a chip)(200)와 같이 단일 집적 회로(single integrated circuit)에 포함될 수 있다. 예를 들어, 도 2b에 도시된 하드웨어 컴포넌트 중 일부분(예, 어플리케이션 프로세서(210))이 SoC(205)와 같이 단일 집적 회로에 포함될 수 있다. 전자 장치(101)에 포함된 하드웨어 컴포넌트의 타입, 및/또는 개수는, 도 2a, 및/또는 도 2b에 도시된 바에 제한되지 않는다. 예를 들어, 전자 장치(101)는, 도 2a, 및/또는 도 2b에 도시된 하드웨어 컴포넌트 중 일부만 포함할 수 있다. 어플리케이션 프로세서(210), 보안 프로세서(220), 제1 휘발성 메모리(221), 메모리 매니저(222), 크립토 엔진(223), 제1 비휘발성 메모리(224), 제2 비휘발성 메모리(230), 제2 휘발성 메모리(240), 및/또는 제3 비휘발성 메모리(250)는, 단수로 도시되었으나 복수일 수 있다. 일 실시예에서, 상기 메모리 매니저(222), 및/또는 크립토 엔진(223)은, 보안 프로세서(220)에 의해 실행되는, 적어도 하나의 인스트럭션을 포함하는 소프트웨어 모듈일 수 있다. 본 발명의 일 실시예는 도 2a 내지 도 2b에 도시된 구성으로 제한되지 않는다. 2A and 2B, according to one embodiment, the electronic device 101 includes an application processor 210, a security processor 220, a first volatile memory 221, a memory manager 222, and a cryptographic device. It may include at least one of an engine 223 (crypto engine), a first non-volatile memory 224, a second non-volatile memory 230, a second volatile memory 240, or a third non-volatile memory 250. You can. Application processor 210, security processor 220, first volatile memory 221, memory manager 222, crypto engine 223, first non-volatile memory 224, second non-volatile memory 230, The second volatile memory 240 and the third non-volatile memory 250 are electrically connected to each other by electronic components such as a communication processor 260 and/or a communication bus 270. Can be electronically and/or operably coupled with each other. Although shown based on different blocks, the embodiment is not limited thereto. For example, some of the hardware components shown in FIG. 2A (e.g., application processor 210, security processor 220, first volatile memory 221, memory manager 222, crypto engine 223, and/or Alternatively, at least a portion of the first non-volatile memory 224 may be included in a single integrated circuit, such as a system on a chip (SoC) 200. For example, some of the hardware components shown in FIG. 2B (e.g., application processor 210) may be included in a single integrated circuit, such as SoC 205. The type and/or number of hardware components included in the electronic device 101 are not limited to those shown in FIGS. 2A and/or 2B. For example, electronic device 101 may include only some of the hardware components shown in FIGS. 2A and/or 2B. Application processor 210, security processor 220, first volatile memory 221, memory manager 222, crypto engine 223, first non-volatile memory 224, second non-volatile memory 230, The second volatile memory 240 and/or the third non-volatile memory 250 are shown as singular, but may be plural. In one embodiment, the memory manager 222 and/or the crypto engine 223 may be a software module that is executed by the security processor 220 and includes at least one instruction. One embodiment of the present invention is not limited to the configuration shown in FIGS. 2A and 2B.

일 실시 예에 따른, 전자 장치(101)의 어플리케이션 프로세서(210)는, 도 1의 프로세서(120)의 적어도 일부에 상응할 수 있다. 일 실시 예에 따른, 어플리케이션 프로세서(210)는, 하나 이상의 인스트럭션들에 기반하여 데이터를 처리하기 위한 하드웨어 컴포넌트를 포함할 수 있다. 데이터를 처리하기 위한 하드웨어 컴포넌트는, 예를 들어, ALU(arithmetic and logic unit), FPU(floating point unit), FPGA(field programmable gate array), AP(application processor), Micom(micro-computer, 및/또는 micom controller), 및/또는 CPU(central processing unit)을 포함할 수 있다. 어플리케이션 프로세서(210)의 개수는 하나 이상일 수 있다. 예를 들어, 어플리케이션 프로세서(210)는, 듀얼 코어(dual core), 쿼드 코어(quad core), 또는 헥사 코어(hexa core)와 같은 멀티-코어 프로세서의 구조를 가질 수 있다. 예를 들어, 어플리케이션 프로세서(210)는, 싱글 코어(single core)와 같은 단일 코어 프로세서의 구조를 가질 수 있다. 하지만, 이에 제한되지 않는다. According to one embodiment, the application processor 210 of the electronic device 101 may correspond to at least a portion of the processor 120 of FIG. 1. According to one embodiment, the application processor 210 may include hardware components for processing data based on one or more instructions. Hardware components for processing data include, for example, an arithmetic and logic unit (ALU), a floating point unit (FPU), a field programmable gate array (FPGA), an application processor (AP), a micro-computer (Micom), and/ or micom controller), and/or a central processing unit (CPU). The number of application processors 210 may be one or more. For example, the application processor 210 may have the structure of a multi-core processor, such as a dual core, quad core, or hexa core. For example, the application processor 210 may have the structure of a single core processor, such as a single core. However, it is not limited to this.

일 실시 예에 따른, 전자 장치(101)의 어플리케이션 프로세서(210)는, 리치 실행 환경(rich execution environment) 내에서 구동될 수 있다. 예를 들어, 리치 실행 환경은, 일반 실행 환경(general execution environment)로 참조될 수 있다. 일 실시 예에 따른, 전자 장치(101)의 보안 프로세서(220)는, 어플리케이션 프로세서(210)와 작동적으로 및/또는 전기적으로 연결될 수 있다. 예를 들어, 보안 프로세서(220)는, 어플리케이션 프로세서(210)로부터 보안 실행 환경(secure execution environment)의 구동, 및/또는 초기화 요청을 수신할 수 있다. 예를 들어, 상기 보안 실행 환경은, 상기 리치 실행 환경, 및/또는 일반 실행 환경과 상이한 실행 환경일 수 있다. 예를 들어, 보안 실행 환경은, 상기 리치 실행 환경과 독립적인 실행 환경일 수 있다. According to one embodiment, the application processor 210 of the electronic device 101 may be driven in a rich execution environment. For example, a rich execution environment may be referred to as a general execution environment. According to one embodiment, the security processor 220 of the electronic device 101 may be operatively and/or electrically connected to the application processor 210. For example, the security processor 220 may receive a request to drive and/or initialize a secure execution environment from the application processor 210. For example, the secure execution environment may be an execution environment that is different from the rich execution environment and/or the normal execution environment. For example, the secure execution environment may be an execution environment independent of the rich execution environment.

일 실시 예에 따른, 보안 프로세서(220)는, 보안 실행 환경 내에서 동작할 수 있다. 예를 들어, 보안 프로세서(220)는, 보안 실행 환경 내에서 구동되는 적어도 하나의 어플리케이션을 통해 요청에 기반하여, 데이터(예, 사용자의 생체 정보와 관련된 데이터)를 획득 및/또는 저장할 수 있다. According to one embodiment, the secure processor 220 may operate within a secure execution environment. For example, the security processor 220 may obtain and/or store data (eg, data related to the user's biometric information) based on a request through at least one application running within the secure execution environment.

일 실시 예에 따른, 전자 장치(101)는, 제1 휘발성 메모리(221), 제1 비휘발성 메모리(224), 제2 비휘발성 메모리(230), 제2 휘발성 메모리(240), 및/또는 제3 비휘발성 메모리(250)를 포함할 수 있다. 예를 들어, 제1 휘발성 메모리(221), 제1 비휘발성 메모리(224), 제2 비휘발성 메모리(230), 제2 휘발성 메모리(240), 및/또는 제3 비휘발성 메모리(250)는, 전자 장치(101)의 동작을 야기하는 인스트럭션들을 저장할 수 있다. 예를 들어, 어플리케이션 프로세서(210), 및/또는 보안 프로세서(220)는, 제1 휘발성 메모리(221), 제1 비휘발성 메모리(224), 제2 비휘발성 메모리(230), 제2 휘발성 메모리(240), 및/또는 제3 비휘발성 메모리(250) 내에 저장된 인스트럭션들을 구동할 때에, 전자 장치(101)의 동작을 야기할 수 있다. According to one embodiment, the electronic device 101 includes a first volatile memory 221, a first non-volatile memory 224, a second non-volatile memory 230, a second volatile memory 240, and/or It may include a third non-volatile memory 250. For example, the first volatile memory 221, the first non-volatile memory 224, the second non-volatile memory 230, the second volatile memory 240, and/or the third non-volatile memory 250. , instructions that cause the operation of the electronic device 101 can be stored. For example, the application processor 210 and/or the security processor 220 may include a first volatile memory 221, a first non-volatile memory 224, a second non-volatile memory 230, and a second volatile memory. When driving instructions stored in 240 and/or the third non-volatile memory 250, operation of the electronic device 101 may be caused.

이하에서, 인스트럭션들을 구동하는 것은, 어플리케이션 프로세서(210)가 적어도 하나의 인스트럭션을 호출(또는 로드)하여, 상기 호출(또는 로드)된 인스트럭션을 실행하는 것을 포함할 수 있다. 예를 들어, 인스트럭션을 구동하는 것은, 어플리케이션 프로세서(210)가 상기 인스트럭션을 구동하여 상기 인스트럭션에 대응하는 기능을 실행하는 것을 포함할 수 있다. Hereinafter, running instructions may include the application processor 210 calling (or loading) at least one instruction and executing the called (or loaded) instruction. For example, driving an instruction may include the application processor 210 driving the instruction and executing a function corresponding to the instruction.

일 실시 예에 따른, 전자 장치(101)의 제1 휘발성 메모리(221), 제1 비휘발성 메모리(224), 제2 비휘발성 메모리(230), 제2 휘발성 메모리(240), 및/또는 제3 비휘발성 메모리(250)는, 입력, 및/또는 출력되는 데이터, 및/또는 인스트럭션을 저장하기 위한 하드웨어 컴포넌트를 포함할 수 있다. 예를 들어, 제1 휘발성 메모리(221)는, SRAM(static RAM(random access memory))으로 참조될 수 있다. 예를 들어, 제1 비휘발성 메모리(224)는, ROM(read only memory)으로 참조될 수 있다. 예를 들어, 제2 비휘발성 메모리(230)는, UFS(universe flash storage)로 참조될 수 있다. 예를 들어, 제2 휘발성 메모리(240)는, DRAM(dynamic RAM)으로 참조될 수 있다. 예를 들어, 제3 비휘발성 메모리(250)는, secure NVM(non-volatile memory)으로 참조될 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 리치 실행 환경 내에서, 어플리케이션 프로세서(210)에 기반하여 제2 비휘발성 메모리(230), 및/또는 제2 휘발성 메모리(240)를 제어할 수 있다. 예를 들어, 상기 리치 실행 환경은, 일반 실행 환경으로 참조될 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 보안 실행 환경 내에서, 보안 프로세서(220)에 기반하여 제1 휘발성 메모리(221), 제1 비휘발성 메모리(224), 및/또는 제3 비휘발성 메모리(250)를 제어할 수 있다. According to one embodiment, the first volatile memory 221, the first non-volatile memory 224, the second non-volatile memory 230, the second volatile memory 240, and/or the first volatile memory 221 of the electronic device 101. 3 The non-volatile memory 250 may include hardware components for storing input and/or output data and/or instructions. For example, the first volatile memory 221 may be referred to as static random access memory (SRAM). For example, the first non-volatile memory 224 may be referred to as read only memory (ROM). For example, the second non-volatile memory 230 may be referred to as universe flash storage (UFS). For example, the second volatile memory 240 may be referred to as dynamic RAM (DRAM). For example, the third non-volatile memory 250 may be referred to as secure non-volatile memory (NVM). According to one embodiment, the electronic device 101 may control the second non-volatile memory 230 and/or the second volatile memory 240 based on the application processor 210 within a rich execution environment. there is. For example, the rich execution environment may be referred to as a general execution environment. According to one embodiment, the electronic device 101, within a secure execution environment, includes a first volatile memory 221, a first non-volatile memory 224, and/or a third non-volatile memory based on the secure processor 220. Volatile memory 250 can be controlled.

일 실시 예에 따른, 제1 휘발성 메모리(221)는, 보안 프로세서(220)에 의해 제어될 수 있다. 예를 들어, 보안 프로세서(220)는, 보안 실행 환경 내에서, 제1 휘발성 메모리(221)를 제어할 수 있다. 예를 들어, 전자 장치(101)는, 제1 휘발성 메모리(221)로부터 데이터를 암호화하기 위한 매핑 테이블을 획득할 수 있다. 예를 들어, 상기 데이터는, 전자 장치(101)의 센서로부터 획득된 전자 장치(101)의 사용자의 생체 정보를 포함할 수 있다. 예를 들어, 상기 사용자의 생체 정보는, 상기 사용자의 지문, 또는 얼굴 중 적어도 하나와 관련된 생체 정보를 포함할 수 있다. 하지만 이에 제한되지 않는다. According to one embodiment, the first volatile memory 221 may be controlled by the security processor 220. For example, the secure processor 220 may control the first volatile memory 221 within a secure execution environment. For example, the electronic device 101 may obtain a mapping table for encrypting data from the first volatile memory 221. For example, the data may include biometric information of the user of the electronic device 101 obtained from the sensor of the electronic device 101. For example, the user's biometric information may include biometric information related to at least one of the user's fingerprint or face. But it is not limited to this.

예를 들어, 상기 데이터를 암호화하기 위한 매핑 테이블은, persistent data ARC(anti replay counter) table로 참조될 수 있다. 전자 장치(101)는, 데이터를 암호화하기 위한 매핑 테이블로부터, 카운터(counter)를 획득할 수 있다. 상기 카운터는, ARC(anti replay counter)로 참조될 수 있다. ARC는, 상기 ARC에 대응하는 데이터의 암호화에 이용되는 파라미터일 수 있다. ARC는, 상기 데이터가 복제되었는지 여부, 및/또는 상기 데이터가 변조되었는지 여부를 식별하기 위해 이용될 수 있다. 예를 들어, ARC는, 상기 데이터가 어플리케이션 프로세서(210), 및/또는 보안 프로세서(220)에 의해 실행되는 프로세스 중에서, 상기 데이터의 변경과 관련된 권한과 독립적으로 상기 데이터를 변경하려는 프로세스에 의해 변조되었는지 여부를 식별하기 위해 이용될 수 있다. 전자 장치(101)는, 상기 카운터를 획득한 것에 기반하여, 상기 데이터를 암호화할 수 있다. For example, the mapping table for encrypting the data may be referred to as a persistent data ARC (anti replay counter) table. The electronic device 101 may obtain a counter from a mapping table for encrypting data. The counter may be referred to as an anti replay counter (ARC). ARC may be a parameter used to encrypt data corresponding to the ARC. ARC can be used to identify whether the data has been copied and/or whether the data has been tampered with. For example, ARC means that the data is tampered with by a process that seeks to change the data independently of the authority related to the change of the data, among processes executed by the application processor 210 and/or the security processor 220. It can be used to identify whether something has been done or not. The electronic device 101 may encrypt the data based on obtaining the counter.

일 실시 예에 따른, 메모리 매니저(222)는, 보안 프로세서(220)에 의해 제어될 수 있다. 예를 들어, 보안 프로세서(220)는, 메모리 매니저(222)를 이용하여, 제2 휘발성 메모리(240)로 접근할 수 있다. 보안 프로세서(220)는, 메모리 매니저(222)를 이용하여, SoC(200), 및/또는 SoC(205)의 외부에 있는 제2 휘발성 메모리(240)를 제어할 수 있다. 일 실시 예에 따른, 메모리 매니저(222)는, 리치 실행 환경 내에 포함된 적어도 하나의 데이터, 및/또는 파일을, 로드(load)할 수 있다. 예를 들어, 메모리 매니저(222)는, 리치 실행 환경 내에 포함된 적어도 하나의 데이터, 및/또는 파일을, 보안 실행 환경 내에 포함된 적어도 하나의 메모리에 할당된 가상 주소로 송신할 수 있다. According to one embodiment, the memory manager 222 may be controlled by the security processor 220. For example, the security processor 220 may access the second volatile memory 240 using the memory manager 222. The security processor 220 may control the SoC 200 and/or the second volatile memory 240 external to the SoC 205 using the memory manager 222. According to one embodiment, the memory manager 222 may load at least one data and/or file included in the rich execution environment. For example, the memory manager 222 may transmit at least one data and/or file included in the rich execution environment to a virtual address assigned to at least one memory included in the secure execution environment.

일 실시 예에 따른, 크립토 엔진(223)은, 보안 프로세서(220)에 의해 제어되어, 암호화 기능을 수행할 수 있다. 예를 들어, 전자 장치(101)는, 크립토 엔진(223)을 이용하여, 데이터, 및/또는 매핑 테이블을 암호화할 수 있다. 예를 들어, 전자 장치(101)는, 상기 크립토 엔진(223)을 이용하여, 암호화된 데이터, 및/또는 암호화된 매핑 테이블을 복호화할 수 있다. According to one embodiment, the crypto engine 223 is controlled by the security processor 220 and may perform an encryption function. For example, the electronic device 101 may use the crypto engine 223 to encrypt data and/or a mapping table. For example, the electronic device 101 may decrypt encrypted data and/or an encrypted mapping table using the crypto engine 223.

일 실시 예에 따른, 전자 장치(101)는, 보안 실행 환경 내에서, 제1 비휘발성 메모리(224)를 제어할 수 있다. 예를 들어, 제1 비휘발성 메모리(224)는, 어플리케이션 프로세서(210), 및/또는 보안 프로세서(220)의 부팅을 위해 이용되는 하나 이상의 인스트럭션들인, 부트 로더 코드(boot loader code)를 포함할 수 있다. 전자 장치(101)는, 상기 제1 비휘발성 메모리(224)를 이용하여, 전자 장치(101)의 사용자를 위한 적어도 하나의 어플리케이션의 코드를 업데이트할 수 있다. According to one embodiment, the electronic device 101 may control the first non-volatile memory 224 within a secure execution environment. For example, the first non-volatile memory 224 may include boot loader code, which is one or more instructions used to boot the application processor 210 and/or the security processor 220. You can. The electronic device 101 may update the code of at least one application for the user of the electronic device 101 using the first non-volatile memory 224.

일 실시 예에 따른, 전자 장치(101)는, 보안 실행 환경 내에서 생성된 데이터, 매핑 테이블, 및/또는 태그 정보를 리치 실행 환경 내의 컴포넌트로 송신할 수 있다. 예를 들어, 전자 장치(101)는, 보안 실행 환경 내의 제1 휘발성 메모리(221) 내에서 생성된 데이터, 매핑 테이블, 및/또는 태그 정보를, 리치 실행 환경 내의 제2 휘발성 메모리(240)로 송신할 수 있다. 예를 들어, 전자 장치(101)는, 상기 생성된 데이터, 매핑 테이블, 및/또는 태그 정보를 암호화한 것에 기반하여, 제2 휘발성 메모리(240)로 송신할 수 있다. 전자 장치(101)는 상기 제2 휘발성 메모리(240)로 송신된, 암호화된 데이터, 암호화된 매핑 테이블, 및/또는 암호화된 태그 정보를, 제2 비휘발성 메모리(230)로 송신할 수 있다. According to one embodiment, the electronic device 101 may transmit data generated within the secure execution environment, mapping table, and/or tag information to a component within the rich execution environment. For example, the electronic device 101 may transfer data, mapping table, and/or tag information generated within a first volatile memory 221 within a secure execution environment to a second volatile memory 240 within a rich execution environment. Can be sent. For example, the electronic device 101 may transmit the generated data, mapping table, and/or tag information to the second volatile memory 240 based on encryption. The electronic device 101 may transmit the encrypted data, encrypted mapping table, and/or encrypted tag information transmitted to the second volatile memory 240 to the second non-volatile memory 230 .

일 실시 예에 따른, 전자 장치(101)는, 제2 비휘발성 메모리(230) 내에, 암호화된 데이터, 암호화된 매핑 테이블, 및/또는 암호화된 태그 정보를 저장할 수 있다. 예를 들어, 전자 장치(101)는, 보안 실행 환경 내에서, 데이터, 매핑 테이블, 및/또는 태그 정보를 암호화한 것에 기반하여, 제2 비휘발성 메모리(230)로 송신할 수 있다. 전자 장치(101)는, 상기 송신된 데이터, 매핑 테이블, 및/또는 태그 정보를, 리치 실행 환경 내에서 제어되는, 제2 비휘발성 메모리(230) 내에 저장할 수 있다. 데이터, 매핑 테이블, 태그 정보를 암호화하는 동작은, 도 3에서 후술된다. According to one embodiment, the electronic device 101 may store encrypted data, encrypted mapping table, and/or encrypted tag information in the second non-volatile memory 230. For example, the electronic device 101 may transmit, within a secure execution environment, data, mapping table, and/or tag information to the second non-volatile memory 230 based on encryption. The electronic device 101 may store the transmitted data, mapping table, and/or tag information in a second non-volatile memory 230 that is controlled within a rich execution environment. The operation of encrypting data, mapping table, and tag information will be described later with reference to FIG. 3.

일 실시 예에 따른, 전자 장치(101)는, 제3 비휘발성 메모리(250) 내에서 마스터 매핑 테이블을 생성할 수 있다. 예를 들어, 전자 장치(101)는, 상기 마스터 매핑 테이블로부터 마스터 ARC를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제3 비휘발성 메모리(250)를 보안 실행 환경 내에서 제어할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제3 비휘발성 메모리(250) 내에서 생성된 상기 마스터 매핑 테이블, 및/또는 상기 마스터 ARC를 이용하여, 데이터, 매핑 테이블, 및/또는 태그 정보를 암호화할 수 있다. 예를 들어, 전자 장치(101)는, 상기 마스터 매핑 테이블, 및/또는 상기 마스터 ARC를 이용하여, 암호화된 데이터, 암호화된 매핑 테이블, 및/또는 암호화된 태그 정보를 복호화할 수 있다. 마스터 매핑 테이블, 및/또는 마스터 ARC를 이용하여 데이터, 매핑 테이블, 및/또는 태그 정보를 암호화하는 동작은, 도 3에서 후술된다. 마스터 매핑 테이블, 및/또는 마스터 ARC를 이용하여 암호화된 데이터, 암호화된 매핑 테이블, 및/또는 암호화된 태그 정보를 복호화하는 동작은, 도 4a 및 도 4b에서 후술된다. According to one embodiment, the electronic device 101 may create a master mapping table in the third non-volatile memory 250. For example, the electronic device 101 may obtain a master ARC from the master mapping table. For example, the electronic device 101 may control the third non-volatile memory 250 within a secure execution environment. For example, the electronic device 101 uses the master mapping table and/or the master ARC created in the third non-volatile memory 250 to store data, mapping table, and/or tag information. It can be encrypted. For example, the electronic device 101 may decrypt encrypted data, encrypted mapping table, and/or encrypted tag information using the master mapping table and/or the master ARC. The operation of encrypting data, mapping table, and/or tag information using the master mapping table and/or master ARC will be described later with reference to FIG. 3. The operation of decrypting encrypted data, encrypted mapping table, and/or encrypted tag information using the master mapping table and/or master ARC will be described later with reference to FIGS. 4A and 4B.

일 실시 예에 따른, 전자 장치(101)는, 어플리케이션 프로세서(210)로부터, 데이터를 암호화하기 위한 요청을 수신할 수 있다. 상기 데이터는, 생체 정보를 포함할 수 있다. 예를 들어, 전자 장치(101)는, 상기 어플리케이션 프로세서(210)에 의해 실행되는 어플리케이션에 기반하여 사용자로부터 획득(또는, 수신)된, 상기 사용자의 상기 생체 정보를 암호화하기 위한 요청을 식별할 수 있다. 예를 들어, 상기 사용자의 상기 생체 정보는, 상기 전자 장치(101)의 사용자의 지문, 및/또는 얼굴과 관련된 데이터를 포함할 수 있다. 전자 장치(101)는, 상기 데이터를 암호화하기 위한 상기 요청을 식별한 것에 기반하여, 상기 데이터를 암호화하기 위한 매핑 테이블을 획득할 수 있다. 예를 들어, 전자 장치(101)는, 보안 실행 환경 내에서, 제1 휘발성 메모리(221)에 기반하여, 상기 매핑 테이블을 생성(또는 획득)할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 휘발성 메모리(221)로부터 생성된 매핑 테이블에 기반하여, ARC를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 상기 데이터의 사이즈에 따라, 하나 이상의 ARC를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 상기 데이터의 사이즈가 클수록, 상기 데이터의 사이즈가 작은 경우에 비해 더 많은 개수의 ARC를 획득할 수 있다. According to one embodiment, the electronic device 101 may receive a request to encrypt data from the application processor 210. The data may include biometric information. For example, the electronic device 101 may identify a request to encrypt the biometric information of the user, obtained (or received) from the user based on an application executed by the application processor 210. there is. For example, the biometric information of the user may include data related to the user's fingerprint and/or face of the electronic device 101. The electronic device 101 may obtain a mapping table for encrypting the data based on identifying the request for encrypting the data. For example, the electronic device 101 may generate (or obtain) the mapping table based on the first volatile memory 221 within a secure execution environment. For example, the electronic device 101 may obtain ARC based on the mapping table generated from the first volatile memory 221. For example, the electronic device 101 may obtain one or more ARCs depending on the size of the data. For example, the electronic device 101 can acquire a greater number of ARCs as the size of the data becomes larger than when the size of the data is small.

도 2a 및 도 2b를 참조하면, 일 실시 예에 따른, 전자 장치(101)는, 매핑 테이블로부터 ARC를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 사용자의 생체 정보와 관련된 데이터의 획득에 기반하여 상기 매핑 테이블을 생성한 것에 기반하여, 상기 ARC를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 상기 ARC를 획득한 것에 기반하여, 상기 데이터를 암호화할 수 있다. 전자 장치(101)는, 상기 ARC를 이용하여, 상기 데이터를 암호화할 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 복수의 데이터들을 획득한 것에 기반하여, 상기 복수의 데이터들 각각에 대응하는 상이한 ARC들을 획득할 수 있다. 전자 장치(101)는, 상기 암호화된 데이터를 리치 실행 환경 내에서 제어되는 제2 비휘발성 메모리(230)로 송신할 수 있다. Referring to FIGS. 2A and 2B , according to one embodiment, the electronic device 101 may obtain ARC from a mapping table. For example, the electronic device 101 may acquire the ARC based on generating the mapping table based on acquisition of data related to the user's biometric information. For example, the electronic device 101 may encrypt the data based on obtaining the ARC. The electronic device 101 can encrypt the data using the ARC. According to one embodiment, the electronic device 101 may acquire different ARCs corresponding to each of the plurality of data, based on acquiring the plurality of data. The electronic device 101 may transmit the encrypted data to the second non-volatile memory 230 controlled within a rich execution environment.

일 실시 예에 따른, 전자 장치(101)는, 매핑 테이블을 암호화할 수 있다. 예를 들어, 전자 장치(101)는, 제3 비휘발성 메모리(250)로부터 생성된 마스터 매핑 테이블(예, master ARC)로부터 ARC를 획득할 수 있다. 예를 들어, 마스터 매핑 테이블은, 난수(random number)를 생성할 수 있다. 전자 장치(101)는, 상기 마스터 매핑 테이블에 기반하여 획득된 난수에 기반하여, 데이터를 암호화할 수 있다. 예를 들어, 전자 장치(101)는, 마스터 매핑 테이블로부터, 상기 매핑 테이블을 암호화하기 위한 ARC를 획득할 수 있다. 전자 장치(101)는, 상기 매핑 테이블을 암호화하기 위한 ARC를 이용하여, 상기 매핑 테이블을 암호화할 수 있다. 전자 장치(101)는, 암호화된 매핑 테이블을, 리치 실행 환경 내에서 제어되는 제2 비휘발성 메모리(230)로 송신할 수 있다. According to one embodiment, the electronic device 101 may encrypt the mapping table. For example, the electronic device 101 may obtain ARC from a master mapping table (eg, master ARC) generated from the third non-volatile memory 250. For example, the master mapping table can generate random numbers. The electronic device 101 may encrypt data based on a random number obtained based on the master mapping table. For example, the electronic device 101 may obtain ARC for encrypting the mapping table from the master mapping table. The electronic device 101 may encrypt the mapping table using ARC for encrypting the mapping table. The electronic device 101 may transmit the encrypted mapping table to the second non-volatile memory 230 controlled within the rich execution environment.

일 실시 예에 따른, 전자 장치(101)는, 매핑 테이블로부터 ARC를 획득한 것에 기반하여, 사용자의 생체 정보와 관련된 데이터를 암호화할 수 있다. 예를 들어, 상기 데이터를 암호화하는 것은, 상기 데이터를 암호화하는 것을 포함할 수 있다. 전자 장치(101)는, 상기 데이터를 암호화한 것에 기반하여, 상기 암호화된 데이터에 대한 무결성 검사(integrity check)와 관련된 태그 정보를 획득할 수 있다. 예를 들어, 상기 무결성 검사는, 상기 데이터의 변조를 식별하는 것을 식별할 수 있다. 전자 장치(101)는, 상기 태그 정보를 암호화할 수 있다. 전자 장치(101)는, 상기 태그 정보를 암호화한 것에 기반하여, 암호화된 태그 정보를, 리치 실행 환경 내에서 제어되는 제2 비휘발성 메모리(230)로 송신할 수 있다. According to one embodiment, the electronic device 101 may encrypt data related to the user's biometric information based on obtaining the ARC from the mapping table. For example, encrypting the data may include encrypting the data. The electronic device 101 may obtain tag information related to an integrity check for the encrypted data based on encrypting the data. For example, the integrity check may identify tampering with the data. The electronic device 101 can encrypt the tag information. Based on encrypting the tag information, the electronic device 101 may transmit the encrypted tag information to the second non-volatile memory 230 controlled within a rich execution environment.

상술한 바와 같이, 일 실시 예에 따른, 전자 장치(101)는, 데이터, 매핑 테이블, 및/또는 태그 정보를 획득할 수 있다. 전자 장치(101)는, 상기 데이터를 암호화하기 위한 ARC, 상기 매핑 테이블을 암호화하기 위한 ARC, 및/또는 상기 데이터의 무결성 검사와 관련된 태그 정보를 암호화할 수 있다. 전자 장치(101)는, 암호화된 데이터, 암호화된 매핑 테이블, 및/또는 암호화된 태그 정보를, 제2 비휘발성 메모리(230)로 송신할 수 있다. 전자 장치(101)는, 상기 제2 비휘발성 메모리(230)로 송신된 암호화된 데이터, 암호화된 매핑 테이블, 및/또는 암호화된 태그 정보를, 상기 제2 비휘발성 메모리(230) 내에 저장할 수 있다. 전자 장치(101)는, 암호화된 데이터, 암호화된 매핑 테이블, 및/또는 암호화된 태그 정보를 리치 실행 환경 내의 제2 비휘발성 메모리(230) 내에 저장함으로써, 상기 데이터에 대한 전자 장치(101) 이외의 외부 전자 장치로부터의 접근을 차단할 수 있다. 전자 장치(101)는 제2 비휘발성 메모리(230) 내에, 암호화된 데이터, 암호화된 매핑 테이블, 및/또는 암호화된 태그 정보를 저장함으로써, 롤백 방지(rollback prevention)을 제공함으로써, 데이터로 접근하는 외부 전자 장치의 접근을 차단할 수 있다. 전자 장치(101)는, 리치 실행 환경 내의 제2 비휘발성 메모리(230) 내에 암호화된 데이터, 암호화된 매핑 테이블, 및/또는 암호화된 태그 정보를 저장함으로써, 보안 실행 환경 내의 제1 휘발성 메모리(221), 제1 비휘발성 메모리(224), 및/또는 제3 비휘발성 메모리(250)의 사용량(usage)을 감소시킬 수 있다. As described above, according to one embodiment, the electronic device 101 may acquire data, mapping table, and/or tag information. The electronic device 101 may encrypt ARC for encrypting the data, ARC for encrypting the mapping table, and/or tag information related to integrity checking of the data. The electronic device 101 may transmit encrypted data, encrypted mapping table, and/or encrypted tag information to the second non-volatile memory 230 . The electronic device 101 may store the encrypted data, encrypted mapping table, and/or encrypted tag information transmitted to the second non-volatile memory 230 in the second non-volatile memory 230. . The electronic device 101 stores the encrypted data, the encrypted mapping table, and/or the encrypted tag information in the second non-volatile memory 230 in the rich execution environment, thereby allowing access to the data other than the electronic device 101. Access from external electronic devices can be blocked. The electronic device 101 provides rollback prevention by storing encrypted data, encrypted mapping table, and/or encrypted tag information in the second non-volatile memory 230, thereby preventing access to data. Access to external electronic devices can be blocked. The electronic device 101 stores the encrypted data, encrypted mapping table, and/or encrypted tag information in the second non-volatile memory 230 in the rich execution environment, thereby storing the first volatile memory 221 in the secure execution environment. ), the usage of the first non-volatile memory 224, and/or the third non-volatile memory 250 can be reduced.

도 3은, 일 실시 예에 따른, 데이터를 암호화하기 위한 전자 장치의 동작에 관한 일 예를 도시한다. 도 3의 전자 장치(101)는, 도 1, 도 2a, 및/또는 도 2b의 전자 장치(101)의 일 예일 수 있다. 도 3의 제1 휘발성 메모리(221)는, 도 2a, 및/또는 도 2b의 제1 휘발성 메모리(221)의 일 예일 수 있다. 도 3의 제3 비휘발성 메모리(250)는, 도 2a, 및/또는 도 2b의 제3 비휘발성 메모리(250)의 일 예일 수 있다. 도 3의 제2 비휘발성 메모리(230)는, 도 2a, 및/또는 도 2b의 제2 비휘발성 메모리(230)의 일 예일 수 있다. 도 3의 제2 휘발성 메모리(240)는, 도 2a, 및/또는 도 2b의 제2 휘발성 메모리(240)의 일 예일 수 있다. 예를 들어, 제1 휘발성 메모리(221)는, SRAM으로 참조될 수 있다. 예를 들어, 제3 비휘발성 메모리(250)는, secure NVM으로 참조될 수 있다. 예를 들어, 제2 휘발성 메모리(240)는, DRAM으로 참조될 수 있다. 예를 들어, 제2 비휘발성 메모리(230)는, UFS로 참조될 수 있다. 도 3의 동작들은, 어플리케이션 프로세서(210), 및/또는 보안 프로세서(220)에 의해 구동될 수 있다. FIG. 3 illustrates an example of an operation of an electronic device to encrypt data, according to an embodiment. The electronic device 101 of FIG. 3 may be an example of the electronic device 101 of FIGS. 1, 2A, and/or 2B. The first volatile memory 221 of FIG. 3 may be an example of the first volatile memory 221 of FIG. 2A and/or 2B. The third non-volatile memory 250 of FIG. 3 may be an example of the third non-volatile memory 250 of FIGS. 2A and/or 2B. The second non-volatile memory 230 of FIG. 3 may be an example of the second non-volatile memory 230 of FIGS. 2A and/or 2B. The second volatile memory 240 of FIG. 3 may be an example of the second volatile memory 240 of FIGS. 2A and/or 2B. For example, the first volatile memory 221 may be referred to as SRAM. For example, the third non-volatile memory 250 may be referred to as secure NVM. For example, the second volatile memory 240 may be referred to as DRAM. For example, the second non-volatile memory 230 may be referred to as UFS. The operations of FIG. 3 may be driven by the application processor 210 and/or the security processor 220.

도 3을 참조하면, 일 실시 예에 따른, 전자 장치(101)는, 보안 실행 환경(300) 내에서, 제1 휘발성 메모리(221), 제3 비휘발성 메모리(250), 및/또는 크립토 매니저들(361, 362, 363)을 제어할 수 있다. 예를 들어, 상기 크립토 매니저들(361, 362, 363)은, 도 2a, 및/또는 도 2b의 크립토 엔진(223)의 적어도 일부일 수 있다. 상기 크립토 매니저들(361, 362, 363)은, 복수로 도시되었으나, 단수일 수 있다. 상기 크립토 매니저들(361, 362, 363)은, 상이한 블록들에 의해 도시되었으나, 단일의(single) 크립토 매니저일 수 있다. 상기 크립토 매니저들(361, 362, 363)의 개수는 제한되지 않는다. 일 실시 예에 따른, 전자 장치(101)는, 리치 실행 환경(305) 내에서, 제2 비휘발성 메모리(230), 및/또는 제2 휘발성 메모리(240)를 제어할 수 있다. 도 3에서 설명되는 동작들은, 메모리 스왑 아웃(memory swap out) 동작의 적어도 일부일 수 있다. Referring to FIG. 3, according to one embodiment, the electronic device 101 includes a first volatile memory 221, a third non-volatile memory 250, and/or a crypto manager within the secure execution environment 300. Fields 361, 362, and 363 can be controlled. For example, the crypto managers 361, 362, and 363 may be at least a part of the crypto engine 223 of FIGS. 2A and/or 2B. The crypto managers 361, 362, and 363 are shown in plural numbers, but may be singular. The crypto managers 361, 362, and 363, although shown as different blocks, may be a single crypto manager. The number of crypto managers 361, 362, and 363 is not limited. According to one embodiment, the electronic device 101 may control the second non-volatile memory 230 and/or the second volatile memory 240 within the rich execution environment 305. The operations described in FIG. 3 may be at least part of a memory swap out operation.

일 실시 예에 따른, 전자 장치(101)는, 보안 실행 환경(300) 내에서 실행되는 보안 어플리케이션(secure application)을 실행하는 동안, 사용자의 생체 정보와 관련된 데이터(310)(예, 사용자의 지문, 및/또는 사용자의 얼굴)를 획득(또는, 수신)할 수 있다. 상기 데이터(310)는, persistent data로 참조될 수 있다. 전자 장치(101)는, 상기 사용자의 생체 정보와 관련된 데이터(310)를 획득한 것에 기반하여, 상기 데이터(310)를 제1 휘발성 메모리(221)로 송신할 수 있다. 전자 장치(101)는, 상기 데이터(310)가 제1 휘발성 메모리(221)로 송신된 것에 기반하여, 상기 데이터(310)를 암호화하기 위한 요청을 수신할 수 있다. 이하에서, 암호화하는 동작은, 암호화하는 동작을 포함할 수 있다. 전자 장치(101)는, 상기 데이터(310)를 암호화하기 위한 요청을 식별할 수 있다. 전자 장치(101)는, 상기 요청을 식별한 것에 기반하여, 상기 휘발성 메모리(211) 내에서, 매핑 테이블(320)을 생성할 수 있다. 예를 들어, 상기 매핑 테이블(320)은, persistent data ARC table로 참조될 수 있다. According to one embodiment, the electronic device 101 collects data 310 (e.g., the user's fingerprint) related to the user's biometric information while executing a secure application running within the secure execution environment 300. , and/or the user's face) may be obtained (or received). The data 310 may be referred to as persistent data. The electronic device 101 may transmit the data 310 to the first volatile memory 221 based on obtaining the data 310 related to the user's biometric information. The electronic device 101 may receive a request to encrypt the data 310 based on the data 310 being transmitted to the first volatile memory 221 . Hereinafter, the encryption operation may include an encryption operation. The electronic device 101 may identify a request to encrypt the data 310 . The electronic device 101 may generate a mapping table 320 in the volatile memory 211 based on identifying the request. For example, the mapping table 320 may be referred to as a persistent data ARC table.

일 실시 예에 따른, 전자 장치(101)는, 상기 데이터(310)를 분할할 수 있다. 전자 장치(101)는, 상기 데이터(310)가 분할된 것에 기반하여 상기 데이터(310)를 암호화하는 상태 내에서, 상기 분할된 데이터(310)의 각각에 대응하는 ARC들을 상기 매핑 테이블(320)로부터 획득할 수 있다. 상기 ARC는, 보안 카운터(secure counter)로 참조될 수 있다. 예를 들어, 매핑 테이블(320)은, ARC들을 포함할 수 있다. 예를 들어, 매핑 테이블(320)은, 복수의 데이터들을 각각에 매칭되는 ARC들을 포함할 수 있다. 예를 들어, According to one embodiment, the electronic device 101 may divide the data 310. The electronic device 101, in a state of encrypting the data 310 based on the division of the data 310, stores ARCs corresponding to each of the divided data 310 in the mapping table 320. It can be obtained from. The ARC may be referred to as a secure counter. For example, mapping table 320 may include ARCs. For example, the mapping table 320 may include ARCs matching a plurality of pieces of data. for example,

일 실시 예에 따른, 전자 장치는, ARC(예, 보안 카운터)를 이용하여 데이터(310)를 암호화할 수 있다. 예를 들어, 전자 장치(101)는, 데이터(310)를 암호화하는 동안, 초기화 벡터(initialization vector(IV), 및/또는 starting variable(SV))를 이용할 수 있다. 예를 들어, 전자 장치(101)는, 매핑 테이블(320)로부터 획득된 ARC, 및 상기 초기화 벡터에 기반하여, 상기 데이터(310)를 암호화할 수 있다. 예를 들어, 초기화 벡터는, 데이터(310)의 암호화의 개시와 관련될 수 있다. 예를 들어, 초기화 벡터는, 데이터(310)의 암호화의 개시에 기반하여, 상기 데이터(310) 내에 포함된 인스트럭션을 암호화하는 동안 사용될 수 있다. 예를 들어, 전자 장치(101)는, 복수의 데이터들을 암호화할 때에, 상기 복수의 데이터들 각각에 대응하고, 상이한 초기화 벡터들에 기반하여, 상기 복수의 데이터들 각각을 암호화할 수 있다. According to one embodiment, the electronic device may encrypt the data 310 using ARC (eg, security counter). For example, the electronic device 101 may use an initialization vector (IV) and/or a starting variable (SV) while encrypting the data 310. For example, the electronic device 101 may encrypt the data 310 based on the ARC obtained from the mapping table 320 and the initialization vector. For example, the initialization vector may be associated with the initiation of encryption of data 310. For example, an initialization vector may be used while encrypting instructions contained within data 310, based on initiation of encryption of data 310. For example, when encrypting a plurality of data, the electronic device 101 may encrypt each of the plurality of data based on different initialization vectors corresponding to each of the plurality of data.

일 실시 예에 따른, 전자 장치(101)는, 데이터(310), 및/또는 매핑 테이블(320)을 크립토 매니저(361)를 이용하여 암호화할 수 있다. 예를 들어, 전자 장치(101)는, 상기 크립토 매니저(361)를 이용하여 상기 데이터(310)를 암호화할 수 있다. 전자 장치(101)는, 상기 암호화에 기반하여 암호화된 데이터(315)를 획득할 수 있다. 전자 장치(101)는, 상기 암호화된 데이터(315)를 리치 실행 환경(305) 내의 제2 휘발성 메모리(240)로 송신할 수 있다. 전자 장치(101)는, 상기 크립토 매니저(361)를 이용하여 상기 데이터(315)의 무결성 검사를 위한 태그 정보(340)를 획득할 수 있다. 전자 장치(101)는, 암호화된 데이터(315)의 무결성 검사를 위한 태그 정보(340)를, 상기 크립토 매니저(361)로부터, 크립토 매니저(362)로 송신할 수 있다. 전자 장치(101)는, 상기 태그 정보(340)를 크립토 매니저(362)로 송신한 것에 기반하여, 상기 태그 정보(340)를 암호화할 수 있다. 전자 장치(101)는, 상기 암호화에 기반하여, 암호화된 태그 정보(345)를 획득할 수 있다. 전자 장치(101)는, 상기 암호화된 태그 정보(345)를, 리치 실행 환경(305) 내의 제2 휘발성 메모리(240)로 송신할 수 있다. 예를 들어, 상기 태그 정보(340)를 이용하여 상기 암호화된 데이터(315)의 무결성 검사를 하는 것은, 상기 암호화된 데이터(315)의 변조 여부를 식별하는 것을 포함할 수 있다. 예를 들어, 전자 장치(101)는, AES-GCM(advanced encryption standard galois/counter mode) 방식으로, 데이터(310)를 암호화하거나, 암호화된 데이터(315)를 복호화할 수 있다. According to one embodiment, the electronic device 101 may encrypt the data 310 and/or the mapping table 320 using the crypto manager 361. For example, the electronic device 101 may encrypt the data 310 using the crypto manager 361. The electronic device 101 may obtain encrypted data 315 based on the encryption. The electronic device 101 may transmit the encrypted data 315 to the second volatile memory 240 within the rich execution environment 305. The electronic device 101 may obtain tag information 340 for checking the integrity of the data 315 using the crypto manager 361. The electronic device 101 may transmit tag information 340 for checking the integrity of encrypted data 315 from the crypto manager 361 to the crypto manager 362. The electronic device 101 may encrypt the tag information 340 based on transmitting the tag information 340 to the crypto manager 362. The electronic device 101 may obtain encrypted tag information 345 based on the encryption. The electronic device 101 may transmit the encrypted tag information 345 to the second volatile memory 240 within the rich execution environment 305. For example, checking the integrity of the encrypted data 315 using the tag information 340 may include identifying whether the encrypted data 315 has been tampered with. For example, the electronic device 101 may encrypt the data 310 or decrypt the encrypted data 315 using an advanced encryption standard galois/counter mode (AES-GCM) method.

일 실시 예에 따른, 전자 장치(101)는, 매핑 테이블(320), 및/또는 마스터 매핑 테이블(330)을, 크립토 매니저(363)로 송신할 수 있다. 상기 마스터 매핑 테이블(330)은, master ARC로 참조될 수 있다. 전자 장치(101)는, 보안 실행 환경(300) 내의 제3 비휘발성 메모리(250)로부터 상기 마스터 매핑 테이블(330)을 획득할 수 있다. 상기 마스터 매핑 테이블(330)은, 데이터(310)를 암호화하거나 복호화하는 동안 이용되는 매핑 테이블(320)을 암호화하기 위해 이용될 수 있다. 예를 들어, 전자 장치(101)는, 상기 마스터 매핑 테이블(330)로부터 master ARC를 획득할 수 있다. 전자 장치(101)는, 상기 마스터 매핑 테이블(330)을 제3 비휘발성 메모리(250) 내에 저장할 수 있다. 전자 장치(101)는, 크립토 매니저(363)로 송신된 매핑 테이블(320), 및/또는 마스터 매핑 테이블(330)에 기반하여, 암호화된 매핑 테이블(325)를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 마스터 매핑 테이블(330)로부터 획득된 ARC를 이용하여, 매핑 테이블(320)을 암호화하여 암호화된 매핑 테이블(325)를 획득할 수 있다. 전자 장치(101)는, 크립토 매니저(363)로 송신된 매핑 테이블(320), 및/또는 마스터 매핑 테이블(330)에 기반하여 상기 암호화된 매핑 테이블(325)의 무결성 검사와 관련된 마스터 태그 정보(350)를 획득할 수 있다. 예를 들어, 상기 마스터 태그 정보(350)는, master TAG로 참조될 수 있다. 예를 들어, 상기 마스터 태그 정보(350)는, GCM tag 복호화을 수행할 때에, 상기 GCM tag로 참조될 수 있다. 예를 들어, 상기 마스터 태그 정보(350)는, 태그, 및/또는 해시(hash)와 관련된 정보를 포함할 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 암호화된 데이터(315) 내에 포함된 해시 값(hash value), 또는 MAC(message authentication tag)를 상기 마스터 태그 정보(350)에 매칭할 수 있다. 전자 장치(101)는, 상기 크립토 매니저(363)를 이용하여 획득된 마스터 태그 정보(350)를 제3 비휘발성 메모리(250) 내에 저장할 수 있다. According to one embodiment, the electronic device 101 may transmit the mapping table 320 and/or the master mapping table 330 to the crypto manager 363. The master mapping table 330 may be referred to as master ARC. The electronic device 101 may obtain the master mapping table 330 from the third non-volatile memory 250 in the secure execution environment 300. The master mapping table 330 may be used to encrypt the mapping table 320 used while encrypting or decrypting data 310. For example, the electronic device 101 may obtain the master ARC from the master mapping table 330. The electronic device 101 may store the master mapping table 330 in the third non-volatile memory 250. The electronic device 101 may obtain the encrypted mapping table 325 based on the mapping table 320 and/or the master mapping table 330 transmitted to the crypto manager 363. For example, the electronic device 101 may obtain the encrypted mapping table 325 by encrypting the mapping table 320 using the ARC obtained from the master mapping table 330. The electronic device 101 provides master tag information ( 350) can be obtained. For example, the master tag information 350 may be referred to as master TAG. For example, the master tag information 350 may be referred to as the GCM tag when performing GCM tag decoding. For example, the master tag information 350 may include information related to a tag and/or hash. According to one embodiment, the electronic device 101 may match a hash value or a message authentication tag (MAC) included in the encrypted data 315 to the master tag information 350. The electronic device 101 may store the master tag information 350 obtained using the crypto manager 363 in the third non-volatile memory 250.

일 실시 예에 따른, 전자 장치(101)는, 리치 실행 환경(305) 내의 제2 휘발성 메모리(240)로 송신된, 암호화된 데이터(315), 암호화된 매핑 테이블(325), 및/또는 암호화된 태그 정보(345)를, 제2 비휘발성 메모리(230)로 송신할 수 있다. 전자 장치(101)는, 리치 실행 환경(305) 내의 제2 비휘발성 메모리(230)로 송신된, 암호화된 데이터(315), 암호화된 매핑 테이블(325), 및/또는 암호화된 태그 정보(345)를 상기 제2 비휘발성 메모리(230) 내에 저장할 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 암호화된 데이터(315), 암호화된 매핑 테이블(325), 및/또는 암호화된 태그 정보(345)를 외부 전자 장치(예, 서버)로 송신할 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 암호화된 데이터(315), 암호화된 매핑 테이블(325), 및/또는 암호화된 태그 정보(345)를 저장할 때에, 단일의(single) 파일 내에 저장할 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 암호화된 데이터(315), 암호화된 매핑 테이블(325), 및/또는 암호화된 태그 정보(345)를 저장할 때에, 각각에 대응하는 파일 내에 저장할 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 암호화된 데이터(315), 암호화된 매핑 테이블(325), 또는 암호화된 태그 정보(345) 중 적어도 하나를 포함하는 파일을 저장할 수 있다. According to one embodiment, the electronic device 101 may store encrypted data 315, encrypted mapping table 325, and/or encrypted data transmitted to second volatile memory 240 within rich execution environment 305. The tag information 345 can be transmitted to the second non-volatile memory 230. The electronic device 101 may transmit encrypted data 315, encrypted mapping table 325, and/or encrypted tag information 345 to second non-volatile memory 230 within rich execution environment 305. ) can be stored in the second non-volatile memory 230. According to one embodiment, the electronic device 101 transmits the encrypted data 315, the encrypted mapping table 325, and/or the encrypted tag information 345 to an external electronic device (e.g., a server). You can. According to one embodiment, the electronic device 101 stores the encrypted data 315, the encrypted mapping table 325, and/or the encrypted tag information 345 in a single file. You can. According to one embodiment, the electronic device 101 may store the encrypted data 315, the encrypted mapping table 325, and/or the encrypted tag information 345 in a file corresponding to each. there is. According to one embodiment, the electronic device 101 may store a file including at least one of encrypted data 315, encrypted mapping table 325, or encrypted tag information 345.

상술한 바와 같이, 일 실시 예에 따른, 전자 장치(101)는, 제2 비휘발성 메모리(230) 내에, 암호화된 데이터(315), 암호화된 매핑 테이블(325), 및/또는 암호화된 태그 정보(345)를 저장할 수 있다. 전자 장치(101)는, 리치 실행 환경(305) 내의 제2 비휘발성 메모리(230) 내에, 암호화된 데이터(315), 암호화된 매핑 테이블(325), 및/또는 암호화된 태그 정보(345)를 저장함으로써, 외부 전자 장치, 및/또는 전자 장치(101)에 의해 실행된 인스트럭션(예, 맬웨어(malware)에 기반하여 실행되는 인스트럭션)에 의한 롤백 공격(rollback attack)으로부터, 데이터(310), 매핑 테이블(320), 및/또는 태그 정보(340)를 보호할 수 있다. As described above, according to one embodiment, the electronic device 101 stores encrypted data 315, encrypted mapping table 325, and/or encrypted tag information in the second non-volatile memory 230. (345) can be stored. Electronic device 101 stores encrypted data 315, encrypted mapping table 325, and/or encrypted tag information 345 in second non-volatile memory 230 within rich execution environment 305. By storing, the data 310 is protected from rollback attacks by external electronic devices and/or instructions executed by the electronic device 101 (e.g., instructions executed based on malware). The table 320 and/or tag information 340 may be protected.

도 4a는, 일 실시 예에 따른, 데이터를 복호화하기 위한 전자 장치의 동작에 관한 일 예를 도시한다. 도 4b는, 일 실시 예에 따른, 데이터를 복호화하기 위한 전자 장치의 동작에 관한 일 예를 도시한다. 도 4a, 및/또는 도 4b의 전자 장치(101)는, 도 1, 도 2a, 도 2b, 및/또는 도 3의 전자 장치(101)의 일 예일 수 있다. 도 4a의 제1 휘발성 메모리(221)는, 도 2a, 도 2b, 및/또는 도 3의 제1 휘발성 메모리(221)의 일 예일 수 있다. 도 4a의 제3 비휘발성 메모리(250)는, 도 2a, 및/또는 도 2b의 제3 비휘발성 메모리(250)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 제2 휘발성 메모리(240)는, 도 2a, 도 2b, 및/또는 도 3의 제2 휘발성 메모리(240)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 제2 비휘발성 메모리(230)는, 도 2a, 도 2b, 및/또는 도 3의 제2 비휘발성 메모리(230)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 데이터(310)는, 도 3의 데이터(310)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 매핑 테이블(320)은, 도 3의 매핑 테이블(320)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 마스터 매핑 테이블(330)은, 도 3의 마스터 매핑 테이블(330)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 마스터 태그 정보(350)는, 도 3의 마스터 태그 정보(350)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 크립토 매니저(461)는, 도 3의 크립토 매니저(361)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 크립토 매니저(462)는, 도 3의 크립토 매니저(362)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 크립토 매니저(463)는, 도 3의 크립토 매니저(363)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 태그 정보(340)는, 도 3의 태그 정보(340)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 암호화된 데이터(315)는, 도 3의 암호화된 데이터(315)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 암호화된 매핑 테이블(325)은, 도 3의 암호화된 매핑 테이블(325)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 암호화된 태그 정보(345)는, 도 3의 암호화된 태그 정보(345)의 일 예일 수 있다. 도 4a, 및/또는 도 4b의 동작들은, 어플리케이션 프로세서(예, 도 2a, 및/또는 도 2b의 어플리케이션 프로세서(210))에 의해 실행될 수 있다. 도 4a, 및/또는 도 4b의 동작들은, 보안 프로세서(예, 도 2a, 및/또는 도 2b의 보안 프로세서(220))에 의해 실행될 수 있다. FIG. 4A illustrates an example of an operation of an electronic device to decrypt data, according to an embodiment. FIG. 4B illustrates an example of an operation of an electronic device to decrypt data, according to an embodiment. The electronic device 101 of FIGS. 4A and/or 4B may be an example of the electronic device 101 of FIGS. 1, 2A, 2B, and/or 3. The first volatile memory 221 of FIG. 4A may be an example of the first volatile memory 221 of FIGS. 2A, 2B, and/or 3. The third non-volatile memory 250 of FIG. 4A may be an example of the third non-volatile memory 250 of FIGS. 2A and/or 2B. The second volatile memory 240 of FIGS. 4A and/or 4B may be an example of the second volatile memory 240 of FIGS. 2A, 2B, and/or 3. The second non-volatile memory 230 of FIGS. 4A and/or 4B may be an example of the second non-volatile memory 230 of FIGS. 2A, 2B, and/or 3. The data 310 in FIGS. 4A and/or 4B may be an example of the data 310 in FIG. 3 . The mapping table 320 of FIGS. 4A and/or 4B may be an example of the mapping table 320 of FIG. 3 . The master mapping table 330 of FIGS. 4A and/or 4B may be an example of the master mapping table 330 of FIG. 3 . The master tag information 350 of FIGS. 4A and/or 4B may be an example of the master tag information 350 of FIG. 3 . The crypto manager 461 of FIGS. 4A and/or 4B may be an example of the crypto manager 361 of FIG. 3 . The crypto manager 462 of FIGS. 4A and/or 4B may be an example of the crypto manager 362 of FIG. 3 . The crypto manager 463 in FIGS. 4A and/or 4B may be an example of the crypto manager 363 in FIG. 3 . The tag information 340 in FIGS. 4A and/or 4B may be an example of the tag information 340 in FIG. 3 . The encrypted data 315 of FIGS. 4A and/or 4B may be an example of the encrypted data 315 of FIG. 3 . The encrypted mapping table 325 of FIGS. 4A and/or 4B may be an example of the encrypted mapping table 325 of FIG. 3 . The encrypted tag information 345 of FIGS. 4A and/or 4B may be an example of the encrypted tag information 345 of FIG. 3 . The operations of FIGS. 4A and/or 4B may be executed by an application processor (e.g., application processor 210 of FIGS. 2A and/or 2B). The operations of FIGS. 4A and/or 4B may be executed by a secure processor (e.g., secure processor 220 of FIGS. 2A and/or 2B).

도 4a, 및/또는 도 4b에서 설명되는 동작들은, 메모리 스왑 인(memory swap in) 동작의 적어도 일부일 수 있다. 예를 들어, 상기 메모리 스왑 인 동작은, 리치 실행 환경(305) 내의 제2 비휘발성 메모리(230) 내에 저장된 파일로부터, 보안 실행 환경(300) 내의 제3 비휘발성 메모리(250)로 복호화하는 동작을 포함할 수 있다. 예를 들어, 상기 메모리 스왑 인 동작은, 전자 장치(101)로 입력된 생체 정보, 및 전자 장치(101) 내에 저장된 생체 정보와 관련된 데이터(예, 데이터(310))가 매칭되는지 여부를 식별하기 위한 동작일 수 있다. The operations described in FIGS. 4A and/or 4B may be at least part of a memory swap in operation. For example, the memory swap in operation is an operation of decrypting a file stored in the second non-volatile memory 230 in the rich execution environment 305 to the third non-volatile memory 250 in the secure execution environment 300. may include. For example, the memory swap in operation identifies whether biometric information input to the electronic device 101 and data (e.g., data 310) related to the biometric information stored in the electronic device 101 match. It may be an action for this purpose.

도 4a를 참조하면, 일 실시 예에 따른, 전자 장치(101)는, 보안 실행 환경(300) 내에서, 제1 휘발성 메모리(221)를 제어할 수 있다. 예를 들어, 상기 제1 휘발성 메모리(221)는, SRAM으로 참조될 수 있다. 전자 장치(101)는, 보안 실행 환경(300) 내에서, 제3 비휘발성 메모리(250)를 제어할 수 있다. 예를 들어, 상기 제3 비휘발성 메모리(250)는, secure NVM으로 참조될 수 있다. Referring to FIG. 4A, according to one embodiment, the electronic device 101 may control the first volatile memory 221 within the secure execution environment 300. For example, the first volatile memory 221 may be referred to as SRAM. The electronic device 101 may control the third non-volatile memory 250 within the secure execution environment 300. For example, the third non-volatile memory 250 may be referred to as secure NVM.

도 4b를 참조하면, 일 실시 예에 따른, 전자 장치(101)는, 보안 요소(410)(secure element)를 제어할 수 있다. 전자 장치(101)는, 지정된 어플리케이션만 실행 가능한 보안 요소(410)를 제어할 수 있다. 예를 들어, 전자 장치(101)는, 상기 보안 요소(410) 내에, PIN(personal identification number), 비밀번호, 지문, 및/또는 결제 정보와 같은, 외부 전자 장치로부터 접근의 제한이 필요한 데이터들을 저장할 수 있다. Referring to FIG. 4B, according to one embodiment, the electronic device 101 may control the secure element 410. The electronic device 101 can control the security element 410 that allows only designated applications to be executed. For example, the electronic device 101 may store, within the secure element 410, data that requires restricted access from external electronic devices, such as a personal identification number (PIN), password, fingerprint, and/or payment information. You can.

도 4a, 및/또는 도 4b를 참조하면, 일 실시 예에 따른, 전자 장치(101)는, 리치 실행 환경(305) 내에서, 제2 비휘발성 메모리(230) 내에, 저장된 암호화된 데이터(315), 암호화된 매핑 테이블(325), 및/또는 암호화된 태그 정보(345)를, 제2 휘발성 메모리(240)로 송신할 수 있다. 전자 장치(101)는, 제2 휘발성 메모리(240)로 송신된, 암호화된 데이터(315), 암호화된 매핑 테이블(325), 및/또는 암호화된 태그 정보(345)를, 보안 실행 환경(300)의 적어도 일부로 송신할 수 있다. 4A and/or 4B, according to one embodiment, the electronic device 101 stores encrypted data 315 in the second non-volatile memory 230 within the rich execution environment 305. ), the encrypted mapping table 325, and/or the encrypted tag information 345 may be transmitted to the second volatile memory 240. The electronic device 101 may store the encrypted data 315, the encrypted mapping table 325, and/or the encrypted tag information 345 transmitted to the second volatile memory 240 in a secure execution environment 300. ) can be transmitted at least as part of.

일 실시 예에 따른, 전자 장치(101)는, 보안 실행 환경(300) 내의 크립토 매니저(461)로 송신된 암호화된 데이터(315)를 복호화할 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 태그 정보(340), 및 매핑 테이블(320)에 기반하여, 상기 암호화된 데이터(315)를 복호화할 수 있다. 암호화된 데이터(315)를 복호화하기 위한 태그 정보(340), 및 암호화된 데이터(315)를 복호화하기 위한 매핑 테이블(320)을 획득하는 동작은 후술한다. According to one embodiment, the electronic device 101 may decrypt the encrypted data 315 transmitted to the crypto manager 461 within the secure execution environment 300. According to one embodiment, the electronic device 101 may decrypt the encrypted data 315 based on the tag information 340 and the mapping table 320. The operation of obtaining the tag information 340 for decrypting the encrypted data 315 and the mapping table 320 for decrypting the encrypted data 315 will be described later.

도 4a를 참조하면, 일 실시 예에 따른, 전자 장치(101)는, 제3 비휘발성 메모리(250) 내에 저장된 마스터 태그 정보(350)를 크립토 매니저(463)로 송신할 수 있다. 예를 들어, 상기 마스터 태그 정보(350)는, 마스터 태그(master tag), 및/또는 인증 태그(authentication tag)로 참조될 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 마스터 매핑 테이블(330)로부터 마스터 ARC를 획득할 수 있다. 전자 장치(101)는, 상기 마스터 ARC를 획득하여, 크립토 매니저(463)로 송신할 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 상기 마스터 매핑 테이블(330)로부터, 초기화 벡터를 획득하여 크립토 매니저(463)로 송신할 수 있다. 일 실시 예에 따른, 전자 장치(101)는, 상기 마스터 매핑 테이블(330)로부터, 보안 카운터를 획득할 수 있다. 전자 장치(101)는, 크립토 매니저(463) 내에서, 마스터 태그 정보(350), 및 마스터 매핑 테이블(330)로부터 획득된 초기화 벡터, 및/또는 보안 카운터를 이용하여 암호화된 매핑 테이블(325)을 복호화할 수 있다. 상기 마스터 매핑 테이블(330)로부터 획득된 상기 보안 카운터는, 제1 휘발성 메모리(221) 내에 저장될 수 있다. 전자 장치(101)는, 마스터 매핑 테이블(330)로부터 획득된 암호화된 매핑 테이블(325)를 복호화하기 위한 보안 카운터를 제1 휘발성 메모리(221) 내에 저장할 수 있다. Referring to FIG. 4A , according to one embodiment, the electronic device 101 may transmit master tag information 350 stored in the third non-volatile memory 250 to the crypto manager 463. For example, the master tag information 350 may be referred to as a master tag and/or an authentication tag. According to one embodiment, the electronic device 101 may obtain the master ARC from the master mapping table 330. The electronic device 101 may obtain the master ARC and transmit it to the crypto manager 463. According to one embodiment, the electronic device 101 may obtain an initialization vector from the master mapping table 330 and transmit it to the crypto manager 463. According to one embodiment, the electronic device 101 may obtain a security counter from the master mapping table 330. The electronic device 101, within the crypto manager 463, uses master tag information 350, an initialization vector obtained from the master mapping table 330, and/or a mapping table 325 encrypted using a security counter. can be decrypted. The security counter obtained from the master mapping table 330 may be stored in the first volatile memory 221. The electronic device 101 may store a security counter for decrypting the encrypted mapping table 325 obtained from the master mapping table 330 in the first volatile memory 221.

일 실시 예에 따른, 전자 장치(101)는, 암호화된 매핑 테이블(325)를 복호화하여, 매핑 테이블(320)을 획득할 수 있다. 전자 장치(101)는, 암호화된 매핑 테이블(320), 마스터 태그 정보(350), 및 마스터 매핑 테이블(330)에 기반하여, 매핑 테이블(320)을 획득할 수 있다. 예를 들어, 전자 장치(101)는, 크립토 매니저(463)로 송신된, 암호화된 매핑 테이블(325), 마스터 태그 정보(350), 및 마스터 매핑 테이블(330)을 이용하여 매핑 테이블(320)을 획득할 수 있다. According to one embodiment, the electronic device 101 may obtain the mapping table 320 by decrypting the encrypted mapping table 325. The electronic device 101 may obtain the mapping table 320 based on the encrypted mapping table 320, master tag information 350, and master mapping table 330. For example, the electronic device 101 may use the encrypted mapping table 325, master tag information 350, and master mapping table 330, transmitted to the crypto manager 463, to create a mapping table 320. can be obtained.

일 실시 예에 따른, 전자 장치(101)는, 암호화된 태그 정보(345)에 기반하여, 암호화된 데이터(315)의 무결성 검사와 관련된 태그 정보(340)를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 암호화된 태그 정보(345)를 크립토 매니저(462)로 송신할 수 있다. 전자 장치(101)는, 크립토 매니저(462)로 송신된, 상기 암호화된 태그 정보(345)에 기반하여, 태그 정보(340)를 획득할 수 있다. 상기 태그 정보(340)는, 상기 암호화된 데이터(315)의 무결성 검사와 관련된 태그를 포함할 수 있다. 예를 들어, 상기 태그 정보는, 인증 태그를 포함할 수 있다. According to one embodiment, the electronic device 101 may obtain tag information 340 related to an integrity check of the encrypted data 315 based on the encrypted tag information 345. For example, the electronic device 101 may transmit encrypted tag information 345 to the crypto manager 462. The electronic device 101 may obtain tag information 340 based on the encrypted tag information 345 transmitted to the crypto manager 462. The tag information 340 may include a tag related to integrity checking of the encrypted data 315. For example, the tag information may include an authentication tag.

일 실시 예에 따른, 전자 장치(101)는, 크립토 매니저(463)에 기반하여 획득된 매핑 테이블(320), 암호화된 데이터(315)의 무결성 검사와 관련된 태그 정보(340), 및/또는 암호화된 데이터(315)를 크립토 매니저(461)로 송신할 수 있다. 전자 장치(101)는, 매핑 테이블(320), 암호화된 데이터(315), 및 태그 정보(340)에 기반하여, 상기 암호화된 데이터(315)를 복호화할 수 있다. 전자 장치(101)는, 상기 복호화에 기반하여, 데이터(310)를 획득할 수 있다. 전자 장치(101)는, 상기 데이터(310)를 획득한 것에 기반하여, 상기 전자 장치(101)로 입력된 사용자의 생체 정보, 및 상기 데이터(310) 사이의 매칭 여부를 식별할 수 있다. According to one embodiment, the electronic device 101 includes a mapping table 320 obtained based on the crypto manager 463, tag information 340 related to integrity check of the encrypted data 315, and/or encryption The data 315 can be transmitted to the crypto manager 461. The electronic device 101 may decrypt the encrypted data 315 based on the mapping table 320, the encrypted data 315, and the tag information 340. The electronic device 101 may obtain data 310 based on the decoding. Based on the acquisition of the data 310, the electronic device 101 can identify whether there is a match between the user's biometric information input to the electronic device 101 and the data 310.

도 4b를 참조하면, 일 실시 예에 따른, 전자 장치(101)는, 보안 요소(410) 내에 저장된 마스터 태그 정보(350), 및 마스터 매핑 테이블(330)에 기반하여 매핑 테이블(320)을 획득할 수 있다. 예를 들어, 보안 요소(410)는, eSE(embedded secure element)로 참조될 수 있다. 예를 들어, 전자 장치(101)는, 암호화된 매핑 테이블(325)를 크립토 매니저(463)로 송신할 수 있다. 전자 장치(101)는, 보안 요소(410)로부터 크립토 매니저(463)로, 마스터 매핑 테이블(330), 및/또는 마스터 태그 정보(350)를 송신할 수 있다. 전자 장치(101)는, 암호화된 매핑 테이블(325), 마스터 태그 정보(350), 및 마스터 태그 정보(350)를 크립토 매니저(463)로 송신한 것에 기반하여, 매핑 테이블(320)을 획득할 수 있다. Referring to FIG. 4B, according to one embodiment, the electronic device 101 obtains the mapping table 320 based on the master tag information 350 stored in the security element 410 and the master mapping table 330. can do. For example, the secure element 410 may be referred to as an embedded secure element (eSE). For example, the electronic device 101 may transmit the encrypted mapping table 325 to the crypto manager 463. The electronic device 101 may transmit the master mapping table 330 and/or master tag information 350 from the secure element 410 to the crypto manager 463. The electronic device 101 obtains the mapping table 320 based on transmitting the encrypted mapping table 325, master tag information 350, and master tag information 350 to the crypto manager 463. You can.

일 실시 예에 따른, 전자 장치(101)는, 암호화된 태그 정보(345)를 크립토 매니저(462)로 송신할 수 있다. 전자 장치(101)는, 크립토 매니저(462)로 송신된 암호화된 태그 정보(345)에 기반하여 태그 정보(340)를 획득할 수 있다. 상기 태그 정보(340)는 암호화된 데이터(315)의 무결성 검사를 위한 태그를 포함할 수 있다. 예를 들어, 전자 장치(101)는, 상기 태그 정보(340)를 이용하여 암호화된 데이터(315)의 무결성 검사를 실행할 수 있다. 전자 장치(101)는, 상기 암호화된 데이터(315)를 크립토 매니저(461)로 송신할 수 있다. 전자 장치(101)는, 상기 암호화된 데이터(315), 및 상기 태그 정보(340)를 상기 크립토 매니저(362)로 송신한 것에 기반하여, 상기 태그 정보(340)를 이용하여 상기 암호화된 데이터(315)의 무결성 검사를 실행할 수 있다. 전자 장치(101)는, 상기 암호화된 데이터(315)의 무결성 검사의 완료에 기반하여 매핑 테이블(320)로부터 획득된 ARC에 기반하여 상기 암호화된 데이터(315)를 복호화할 수 있다. 전자 장치(101)는, 상기 복호화에 기반하여, 데이터(310)를 획득할 수 있다. According to one embodiment, the electronic device 101 may transmit encrypted tag information 345 to the crypto manager 462. The electronic device 101 may obtain tag information 340 based on the encrypted tag information 345 transmitted to the crypto manager 462. The tag information 340 may include a tag for checking the integrity of the encrypted data 315. For example, the electronic device 101 may perform an integrity check of the encrypted data 315 using the tag information 340. The electronic device 101 may transmit the encrypted data 315 to the crypto manager 461. The electronic device 101 uses the tag information 340 to transmit the encrypted data 315 and the tag information 340 to the crypto manager 362. 315) integrity check can be performed. The electronic device 101 may decrypt the encrypted data 315 based on the ARC obtained from the mapping table 320 based on completion of the integrity check of the encrypted data 315. The electronic device 101 may obtain data 310 based on the decoding.

상술한 바와 같이, 일 실시 예에 따른, 전자 장치(101)는, 외부 전자 장치로부터 변조된 암호화된 데이터(315)를 복호화하기 위한 동작을 수행할 수 있다. 전자 장치(101)는, 제2 비휘발성 메모리(230) 내에 저장된 암호화된 데이터(315)를 복호화하는 동안, 마스터 매핑 테이블(330), 및 마스터 태그 정보(350)을 이용하여, 상기 암호화된 데이터(315)의 변조 여부를 식별할 수 있다. 전자 장치(101)는, 상기 암호화된 데이터(315)가 외부 전자 장치에 의해 변조된 것에 기반하여, 상기 암호화된 데이터(315)를 복호화하는 것을 중단할 수 있다. 전자 장치(101)는, 상기 복호화를 중단함으로써, 외부 전자 장치에 기반한, 전자 장치(101)의 사용자 생체 정보와 관련된 데이터(예, 데이터(310))의 사용을 차단할 수 있다. As described above, according to one embodiment, the electronic device 101 may perform an operation to decrypt encrypted data 315 that has been altered from an external electronic device. While decrypting the encrypted data 315 stored in the second non-volatile memory 230, the electronic device 101 uses the master mapping table 330 and the master tag information 350 to decrypt the encrypted data 315. It is possible to identify whether (315) has been modulated. The electronic device 101 may stop decrypting the encrypted data 315 based on the fact that the encrypted data 315 has been altered by an external electronic device. By stopping the decryption, the electronic device 101 can block the use of data (e.g., data 310) related to user biometric information of the electronic device 101 based on an external electronic device.

도 5는, 일 실시 예에 따른, 전자 장치의 동작에 관한 흐름도의 일 예를 도시한다. 도 5의 전자 장치는, 도 1, 도 2a, 도 2b, 도 3, 도 4a, 및/또는 도 4b의 전자 장치(101)의 일 예일 수 있다. 도 5의 동작들은, 도 2a, 및/또는 도 2b의 어플리케이션 프로세서(210)에 의해 실행될 수 있다. 도 5의 동작들은, 도 2a, 및/또는 도 2b의 보안 프로세서(210)에 의해 실행될 수 있다. 도 5의 동작들은, RP(read data path) storage와 같이 데이터를 암호화하거나 복호화하는 동작들의 일 예일 수 있다. Figure 5 shows an example of a flowchart regarding the operation of an electronic device, according to an embodiment. The electronic device of FIG. 5 may be an example of the electronic device 101 of FIGS. 1, 2A, 2B, 3, 4A, and/or 4B. The operations of FIG. 5 may be executed by the application processor 210 of FIG. 2A and/or FIG. 2B. The operations of FIG. 5 may be executed by the secure processor 210 of FIG. 2A and/or FIG. 2B. The operations in FIG. 5 may be examples of operations that encrypt or decrypt data, such as RP (read data path) storage.

도 5를 참조하면, 동작 501에서, 일 실시 예에 따른, 전자 장치는, 어플리케이션 프로세서로부터, 데이터(예, 도 3, 도 4a, 및/또는 도 4b의 데이터(310))를 암호화하기 위한 요청을 식별할 수 있다. 예를 들어, 데이터를 암호화하는 것은, 데이터를 암호화하는 것을 포함할 수 있다. 예를 들어, 전자 장치는, 사용자의 생체 정보와 관련된 데이터를 수신할 수 있다. 전자 장치는, 상기 데이터를 수신한 것에 기반하여, 상기 데이터를 암호화하기 위한 요청을 수신할 수 있다. 전자 장치는, 데이터를 암호화하기 위한 요청을 식별한 것에 기반하여, 상기 데이터를 암호화하기 위한 매핑 테이블(예, 도 3, 도 4a, 및/또는 도 4b의 매핑 테이블(320))을 획득할 수 있다. Referring to FIG. 5 , in operation 501, according to one embodiment, the electronic device receives a request from the application processor to encrypt data (e.g., data 310 of FIGS. 3, 4A, and/or 4B). can be identified. For example, encrypting data may include encrypting the data. For example, the electronic device may receive data related to the user's biometric information. The electronic device may receive a request to encrypt the data based on receiving the data. Based on identifying a request to encrypt data, the electronic device may obtain a mapping table (e.g., mapping table 320 of FIGS. 3, 4A, and/or 4B) for encrypting the data. there is.

동작 503에서, 일 실시 예에 따른, 전자 장치는, 매핑 테이블 내에 포함된 ARC에 기반하여 데이터를 암호화할 수 있다. 예를 들어, 전자 장치는, 보안 실행 환경(예, 도 3, 도 4a, 및/또는 도 4b의 보안 실행 환경(300)) 내에서 제어되는 휘발성 메모리(예, 도 3, 및/또는 도 4a의 제1 휘발성 메모리(221), 및/또는 도 4b의 보안 요소(410))로부터 매핑 테이블을 획득할 수 있다. 예를 들어, 전자 장치는, 매핑 테이블로부터 ARC를 획득할 수 있다. 전자 장치는, 상기 ARC를 이용하여 데이터를 암호화할 수 있다. In operation 503, according to one embodiment, the electronic device may encrypt data based on ARC included in the mapping table. For example, the electronic device may have volatile memory (e.g., the secure execution environment 300 of FIGS. 3, 4A, and/or 4B) controlled within a secure execution environment (e.g., the secure execution environment 300 of FIGS. 3, 4A, and/or 4B). The mapping table may be obtained from the first volatile memory 221 of and/or the secure element 410 of FIG. 4B. For example, the electronic device may obtain ARC from a mapping table. The electronic device can encrypt data using the ARC.

동작 505에서, 일 실시 예에 따른, 전자 장치는, 태그 정보(예, 도 3, 도 4a, 및/또는 도 4b의 태그 정보(340))를 획득할 수 있다. 예를 들어, 전자 장치는, 보안 실행 환경 내에서 태그 정보를 획득할 수 있다. 예를 들어, 상기 태그 정보는, 데이터의 무결성 검사와 관련될 수 있다. 예를 들어, 전자 장치는, 보안 실행 환경 내에서 태그 정보를 암호화할 수 있다. 예를 들어, 전자 장치는, 보안 실행 환경 내에서, 매핑 테이블을 암호화할 수 있다. 전자 장치는, 보안 실행 환경 내에서 제어되는 비휘발성 메모리(예, 도 3, 도 4a, 및/또는 도 4b의 제3 비휘발성 메모리(250))로부터 제1 매핑 테이블인 상기 매핑 테이블과 상이한 제2 매핑 테이블을 획득할 수 있다. 예를 들어, 제2 매핑 테이블은, master ARC로 참조될 수 있다. 전자 장치는, 상기 제2 매핑 테이블에 기반하여, 제1 매핑 테이블을 암호화할 수 있다. In operation 505, according to one embodiment, the electronic device may acquire tag information (e.g., tag information 340 of FIGS. 3, 4A, and/or 4B). For example, the electronic device may obtain tag information within a secure execution environment. For example, the tag information may be related to data integrity checking. For example, the electronic device may encrypt tag information within a secure execution environment. For example, the electronic device may encrypt the mapping table within a secure execution environment. The electronic device may store a second mapping table that is different from the mapping table, which is a first mapping table, from a non-volatile memory (e.g., the third non-volatile memory 250 of FIGS. 3, 4A, and/or 4B) controlled within a secure execution environment. 2 A mapping table can be obtained. For example, the second mapping table may be referred to as master ARC. The electronic device may encrypt the first mapping table based on the second mapping table.

일 실시 예에 따른, 전자 장치는, 상기 제2 매핑 테이블로부터 제1 ARC인 상기 ARC와 상이한 제2 ARC를 획득할 수 있다. 예를 들어, 전자 장치는, 제2 매핑 테이블로부터 획득된 상기 제2 ARC를 이용하여, 제1 태그 정보인 상기 태그 정보와 상이한 제2 태그 정보를 획득할 수 있다. 상기 제2 태그 정보는, 도 3, 도 4a, 및/또는 도 4b의 마스터 태그 정보(350)로 참조될 수 있다. According to one embodiment, the electronic device may obtain a second ARC that is different from the ARC, which is the first ARC, from the second mapping table. For example, the electronic device may use the second ARC obtained from the second mapping table to obtain second tag information that is different from the tag information that is the first tag information. The second tag information may be referred to as master tag information 350 of FIGS. 3, 4A, and/or 4B.

동작 507에서, 일 실시 예에 따른, 전자 장치는, 리치 실행 환경(예, 도 3, 도 4a, 및/또는 도 4b의 리치 실행 환경(305)) 내에서 제어되는 비휘발성 메모리(예, 도 3, 도 4a, 및/또는 도 4b의 제2 비휘발성 메모리(230)) 내에 암호화된 데이터, 암호화된 매핑 테이블, 및 암호화된 태그 정보를 저장할 수 있다. 예를 들어, 상기 매핑 테이블은, 동작 505의 제1 매핑 테이블로 참조될 수 있다. 일 실시 예에 따른, 전자 장치는, 보안 실행 환경 내에서, 데이터, 매핑 테이블, 및/또는 태그 정보를 암호화할 수 있다. 전자 장치는, 암호화된 데이터, 암호화된 매핑 테이블, 및/또는 암호화된 태그 정보를, 리치 실행 환경 내에서 제어되는 휘발성 메모리(예, 도 3, 도 4a, 및/또는 도 4b의 제2 휘발성 메모리(240))로 송신할 수 있다. 전자 장치는, 상기 휘발성 메모리로 송신된, 상기 암호화된 데이터, 암호화된 매핑 테이블, 및/또는 암호화된 태그 정보를, 리치 실행 환경 내에서 제어되는 비휘발성 메모리로 송신할 수 있다. 일 실시 예에 따른, 전자 장치는, 상기 송신에 기반하여, 상기 암호화된 데이터, 상기 암호화된 매핑 테이블, 및 상기 암호화된 태그 정보를, 단일의(single) 파일 내에 저장할 수 있다. 일 실시 예에 따른, 전자 장치는, 상기 송신에 기반하여, 상기 암호화된 데이터, 상기 암호화된 매핑 테이블, 및 상기 암호화된 태그 정보를, 각각에 대응하는 파일 내에 저장할 수 있다. At operation 507, according to one embodiment, the electronic device executes a non-volatile memory (e.g., FIG. 3, the encrypted data, the encrypted mapping table, and the encrypted tag information may be stored in the second non-volatile memory 230 of FIGS. 4A and/or 4B. For example, the mapping table may be referred to as the first mapping table in operation 505. According to one embodiment, the electronic device may encrypt data, mapping table, and/or tag information within a secure execution environment. The electronic device stores the encrypted data, encrypted mapping table, and/or encrypted tag information in a volatile memory (e.g., the second volatile memory of FIGS. 3, 4A, and/or 4B) controlled within the rich execution environment. It can be sent to (240)). The electronic device may transmit the encrypted data, encrypted mapping table, and/or encrypted tag information transmitted to the volatile memory to a non-volatile memory controlled within a rich execution environment. According to one embodiment, based on the transmission, the electronic device may store the encrypted data, the encrypted mapping table, and the encrypted tag information in a single file. According to one embodiment, based on the transmission, the electronic device may store the encrypted data, the encrypted mapping table, and the encrypted tag information in a file corresponding to each.

일 실시 예에 따른, 전자 장치는, 제1 매핑 테이블을 암호화하기 위한 제2 매핑 테이블, 및/또는 제2 태그 정보를, 보안 실행 환경 내에서 제어되는 비휘발성 메모리 내에 저장할 수 있다. 전자 장치는, 상기 제2 매핑 테이블, 및/또는 상기 제2 태그 정보를, 보안 실행 환경 내의 비휘발성 메모리 내에 저장함으로써, 권한이 없는 사용자의 접근을 차단할 수 있다. According to one embodiment, the electronic device may store a second mapping table for encrypting the first mapping table and/or second tag information in a non-volatile memory controlled within a secure execution environment. The electronic device may block access by unauthorized users by storing the second mapping table and/or the second tag information in a non-volatile memory within a secure execution environment.

상술한 바와 같이, 일 실시 예에 따른, 전자 장치는, 리치 실행 환경 내에 암호화된 데이터, 암호화된 매핑 테이블, 및 암호화된 태그 정보를 저장함으로써, 보안 실행 환경 내의 메모리 사용량(usage)를 효율적으로 사용할 수 있다. As described above, according to one embodiment, the electronic device efficiently uses memory usage in the secure execution environment by storing encrypted data, encrypted mapping table, and encrypted tag information in the rich execution environment. You can.

도 6은, 일 실시 예에 따른, 전자 장치의 동작에 관한 흐름도의 일 예를 도시한다. 도 6의 전자 장치는, 도 1, 도 2a, 도 3, 도 4a, 및/또는 도 4b의 전자 장치(101), 및/또는 도 5의 전자 장치의 일 예일 수 있다. 도 6의 동작들은, 도 2a, 및/또는 도 2b의 어플리케이션 프로세서(210)에 의해 실행될 수 있다. 도 6의 동작들은, 도 2a, 및/또는 도 2b의 보안 프로세서(210)에 의해 실행될 수 있다. 도 6의 동작들은, 도 5의 동작들에 적어도 일부 관련될 수 있다. Figure 6 shows an example of a flowchart regarding the operation of an electronic device, according to an embodiment. The electronic device of FIG. 6 may be an example of the electronic device 101 of FIGS. 1, 2A, 3, 4A, and/or 4B, and/or the electronic device of FIG. 5. The operations of FIG. 6 may be executed by the application processor 210 of FIG. 2A and/or FIG. 2B. The operations of FIG. 6 may be executed by the secure processor 210 of FIG. 2A and/or FIG. 2B. The operations of FIG. 6 may be at least partially related to the operations of FIG. 5 .

도 6을 참조하면, 동작 601에서, 일 실시 예에 따른, 전자 장치는, 비휘발성 메모리(예, 도 2, 도 3, 도 4a, 및/또는 도 4b의 제2 비휘발성 메모리(230)) 내에 저장된, 암호화된 데이터(예, 도 4a, 및/또는 도 4b의 암호화된 데이터(315)), 암호화된 제1 매핑 테이블(예, 도 4a, 및/또는 도 4b의 암호화된 매핑 테이블(325)), 및 암호화된 제1 태그 정보(예, 도 4a, 및/또는 도 4b의 암호화된 태그 정보(345))를 휘발성 메모리(예, 도 2, 도 3, 도 4a, 및/또는 도 4b의 제2 휘발성 메모리(240))로 송신할 수 있다. 예를 들어, 상기 비휘발성 메모리는, UFS로 참조될 수 있다. 예를 들어, 상기 휘발성 메모리는, DRAM으로 참조될 수 있다. 전자 장치는, 리치 실행 환경(예, 도 3, 도 4a, 및/또는 도 4b의 리치 실행 환경(305)) 내에서 제어되는 상기 비휘발성 메모리로부터, 상기 리치 실행 환경 내에서 제어되는 상기 휘발성 메모리로, 암호화된 데이터, 암호화된 제1 매핑 테이블, 암호화된 제1 태그 정보를 송신할 수 있다. 예를 들어, 제1 태그 정보는, 데이터의 무결성 검사와 관련된 태그 정보일 수 있다. Referring to FIG. 6 , in operation 601, according to one embodiment, the electronic device uses a non-volatile memory (e.g., the second non-volatile memory 230 of FIGS. 2, 3, 4A, and/or 4B). Encrypted data stored within (e.g., encrypted data 315 of FIGS. 4A and/or 4B), an encrypted first mapping table (e.g., encrypted mapping table 325 of FIGS. 4A and/or 4B) )), and the encrypted first tag information (e.g., the encrypted tag information 345 of FIGS. 4A and/or 4B) in volatile memory (e.g., FIGS. 2, 3, 4A, and/or 4B) It can be transmitted to the second volatile memory 240). For example, the non-volatile memory may be referred to as UFS. For example, the volatile memory may be referred to as DRAM. The electronic device may be configured to store, from the non-volatile memory controlled within a rich execution environment (e.g., rich execution environment 305 of FIGS. 3, 4A, and/or 4B), the volatile memory controlled within the rich execution environment. Thus, encrypted data, encrypted first mapping table, and encrypted first tag information can be transmitted. For example, the first tag information may be tag information related to data integrity check.

동작 603에서, 일 실시 예에 따른, 전자 장치는, 제1 매핑 테이블을 복호화할 수 있다. 예를 들어, 전자 장치는, 상기 제1 매핑 테이블과 상이한 제2 매핑 테이블을, 보안 실행 환경 내에서 획득할 수 있다. 전자 장치는, 제1 태그 정보와 상이한 제2 태그 정보를 획득할 수 있다. 예를 들어, 전자 장치는, 보안 실행 환경 내의 비휘발성 메모리(에, 도 2, 도 3, 도 4a, 및/또는 도 4b의 제3 비휘발성 메모리(250))로부터 상기 제2 매핑 테이블을 획득할 수 있다. 예를 들어, 전자 장치는, 보안 실행 환경 내의 상기 비휘발성 메모리로부터, 제2 태그 정보를 획득할 수 있다. 상기 제2 매핑 테이블은, master ARC로 참조될 수 있다. 상기 제2 태그 정보는, master tag로 참조될 수 있다. 일 실시 예에 따른, 전자 장치는, 제2 매핑 테이블, 및 상기 제2 태그 정보에 기반하여, 제1 매핑 테이블을 복호화할 수 있다. 일 실시 예에 따른, 전자 장치는, 상기 제1 태그 정보를, 보안 실행 환경 내에서 복호화할 수 있다. In operation 603, according to one embodiment, the electronic device may decrypt the first mapping table. For example, the electronic device may obtain a second mapping table that is different from the first mapping table within a secure execution environment. The electronic device may obtain second tag information that is different from the first tag information. For example, the electronic device obtains the second mapping table from a non-volatile memory (e.g., third non-volatile memory 250 of FIGS. 2, 3, 4A, and/or 4B) within a secure execution environment. can do. For example, the electronic device may obtain second tag information from the non-volatile memory in a secure execution environment. The second mapping table may be referred to as master ARC. The second tag information may be referred to as a master tag. According to one embodiment, the electronic device may decrypt the first mapping table based on the second mapping table and the second tag information. According to one embodiment, the electronic device may decrypt the first tag information within a secure execution environment.

동작 605에서, 일 실시 예에 따른, 전자 장치는, 암호화된 데이터를 복호화할 수 있다. 예를 들어, 전자 장치는, 복호화된 제1 매핑 테이블, 및 복호화된 제1 태그 정보를 이용하여 상기 암호화된 데이터를 복호화할 수 있다. 예를 들어, 전자 장치는, 암호화된 제1 태그 정보를 복호화한 것에 기반하여, 상기 암호화된 데이터를 복호화할 수 있다. 예를 들어, 전자 장치는, 보안 실행 환경 내에서 제어되는 비휘발성 메모리로부터 생성된 제2 매핑 테이블, 및/또는 제2 태그 정보에 기반하여, 제1 매핑 테이블을 복호화할 수 있다. 전자 장치는, 복호화된 상기 제1 매핑 테이블을 이용하여, 암호화된 데이터를 복호화할 수 있다. In operation 605, according to one embodiment, the electronic device may decrypt the encrypted data. For example, the electronic device may decrypt the encrypted data using the decrypted first mapping table and the decrypted first tag information. For example, the electronic device may decrypt the encrypted data based on decrypting the encrypted first tag information. For example, the electronic device may decrypt the first mapping table based on the second mapping table and/or second tag information generated from a non-volatile memory controlled within a secure execution environment. The electronic device can decrypt encrypted data using the decrypted first mapping table.

동작 607에서, 일 실시 예에 따른, 전자 장치는, 복호화된 데이터를, 보안 실행 환경 내에서 제어되는 휘발성 메모리(예, 도 2, 도 3, 도 4a, 및/또는 도 4b의 제1 휘발성 메모리(221))로 송신할 수 있다. 일 실시 예에 따른, 전자 장치는, 상기 휘발성 메모리를 제어하여, 상기 전자 장치에 입력된 사용자의 생체 정보와 관련된 정보, 및 상기 복호화된 데이터가 매칭되는지 여부를 식별할 수 있다. At operation 607, according to one embodiment, the electronic device stores the decrypted data in a volatile memory (e.g., the first volatile memory of FIGS. 2, 3, 4A, and/or 4B) controlled within a secure execution environment. It can be sent to (221)). According to one embodiment, the electronic device may control the volatile memory to identify whether information related to the user's biometric information input to the electronic device and the decrypted data match.

상술한 바와 같이, 일 실시 예에 따른, 전자 장치는, 외부 전자 장치로부터 변조된 암호화된 데이터를 복호화하기 위한 동작을 수행할 수 있다. 전자 장치는, 리치 실행 환경 내에서 제어되는 비휘발성 메모리 내에 저장된 암호화된 데이터를 복호화하는 동안, 보안 실행 환경 내에서 제어되는 매핑 테이블, 및 태그 정보를 이용할 수 있다. 전자 장치는, 상기 매핑 테이블, 및 상기 태그 정보를 이용하여, 상기 암호화된 데이터가 외부 전자 장치에 의해 변조된 것을 식별할 수 있다. 전자 장치는, 상기 암호화된 데이터가 외부 전자 장치에 의해 변조된 것에 기반하여, 상기 암호화된 데이터를 복호화하는 것을 중단할 수 있다. 전자 장치는, 상기 암호화를 중단함으로써, 외부 전자 장치에 기반한, 전자 장치의 사용자 생체 정보와 관련된 데이터(예, 데이터(310))의 사용을 차단할 수 있다. As described above, according to one embodiment, an electronic device may perform an operation to decrypt encrypted data that has been altered from an external electronic device. The electronic device may use the mapping table and tag information controlled within the secure execution environment while decrypting encrypted data stored within the non-volatile memory controlled within the rich execution environment. The electronic device can use the mapping table and the tag information to identify that the encrypted data has been altered by an external electronic device. The electronic device may stop decrypting the encrypted data based on the fact that the encrypted data has been tampered with by an external electronic device. By stopping the encryption, the electronic device can block the use of data (e.g., data 310) related to user biometric information of the electronic device based on an external electronic device.

상술한 바와 같이, 일 실시 예에 따른, 전자 장치(101)(electronic device)는, 어플리케이션 프로세서(210), 보안 프로세서(220), 및 상기 어플리케이션 프로세서(210)에 의해 제어되는 비휘발성 메모리(230)를 포함할 수 있다. 상기 보안 프로세서(220)는, 상기 어플리케이션 프로세서(210)로부터, 데이터 (310)를 암호화하기 위한 요청을 식별할 수 있다. 상기 요청에 기반하여 매핑 테이블(320) 내에 포함된 ARC(anti replay counter)에 기반하여 상기 데이터(310)를 암호화할 수 있다. 상기 보안 프로세서는, 상기 암호화된 데이터(315)에 기반하여, 상기 암호화된 데이터(315)에 대한 무결성 검사(integrity check)와 관련된 태그 정보(340)를 획득할 수 있다. 상기 보안 프로세서는, 상기 어플리케이션 프로세서(210)를 제어하여, 상기 비휘발성 메모리(230) 내에 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를 저장할 수 있다. As described above, according to one embodiment, the electronic device 101 includes an application processor 210, a security processor 220, and a non-volatile memory 230 controlled by the application processor 210. ) may include. The security processor 220 may identify a request to encrypt data 310 from the application processor 210 . Based on the request, the data 310 may be encrypted based on an anti-replay counter (ARC) included in the mapping table 320. The security processor may obtain tag information 340 related to an integrity check for the encrypted data 315, based on the encrypted data 315. The security processor may control the application processor 210 to store the encrypted data 315, the mapping table 325, and the tag information 345 in the non-volatile memory 230.

일 실시 예에 따른, 상기 보안 프로세서(220)는, 제1 ARC인 상기 ARC와 상이하고, 상기 매핑 테이블(320)을 암호화하기 위한 제2 ARC에 기반하여 상기 매핑 테이블(320)을 암호화할 수 있다. According to one embodiment, the security processor 220 is different from the ARC, which is the first ARC, and can encrypt the mapping table 320 based on the second ARC for encrypting the mapping table 320. there is.

일 실시 예에 따른, 상기 보안 프로세서는, 제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이하고, 상기 제2 ARC를 획득하기 위한 제2 매핑 테이블(330)로부터 상기 제2 ARC를, 획득할 수 있다. According to one embodiment, the security processor is different from the mapping table 320, which is the first mapping table 320, and obtains the second ARC from the second mapping table 330 for obtaining the second ARC. , can be obtained.

일 실시 예에 따른, 상기 전자 장치는, 휘발성 메모리(221)를 포함할 수 있다. 상기 보안 프로세서(220)는, 상기 매핑 테이블(320)을 보안 실행 환경(300)(secure execution environment) 내에서 제어되는 상기 휘발성 메모리(211)로부터 획득할 수 있다. According to one embodiment, the electronic device may include a volatile memory 221. The security processor 220 may obtain the mapping table 320 from the volatile memory 211 controlled within a secure execution environment 300.

일 실시 예에 따른, 상기 전자 장치는, 제1 비휘발성 메모리(230)인 상기 비휘발성 메모리(230)와 상이한 제2 비휘발성 메모리(250)를 포함할 수 있다. 상기 보안 프로세서(220)는, 상기 제2 비휘발성 메모리(250)로부터, 제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이한 상기 제2 매핑 테이블(330)을 획득할 수 있다. According to one embodiment, the electronic device may include a second non-volatile memory 250 that is different from the non-volatile memory 230, which is the first non-volatile memory 230. The security processor 220 may obtain the second mapping table 330, which is different from the mapping table 320, which is the first mapping table 320, from the second non-volatile memory 250.

일 실시 예에 따른, 상기 보안 프로세서(220)는, 보안 실행 환경(300) 내에서, 상기 제2 비휘발성 메모리(250)를 제어할 수 있다. According to one embodiment, the secure processor 220 may control the second non-volatile memory 250 within the secure execution environment 300.

일 실시 예에 따른, 상기 보안 프로세서(220)는, 제1 태그 정보(340)인 상기 태그 정보(340)와 상이하고, 상기 제1 매핑 테이블(320)의 무결성 검사와 관련된 제2 태그 정보(350)를 획득할 수 있다. According to one embodiment, the security processor 220 is different from the tag information 340, which is the first tag information 340, and is related to the integrity check of the first mapping table 320. 350) can be obtained.

일 실시 예에 따른, 상기 전자 장치는, 휘발성 메모리(240)를 포함할 수 있다. 상기 보안 프로세서(220)는, 어플리케이션 프로세서(210)를 통해 상기 휘발성 메모리(240)로 송신한 것에 기반하여, 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 상기 비휘발성 메모리(230) 내에 저장할 수 있다. According to one embodiment, the electronic device may include a volatile memory 240. The security processor 220 stores the encrypted data 315, the mapping table 325, and the tag information 345 based on the transmission to the volatile memory 240 via the application processor 210. Can be stored in the non-volatile memory 230.

일 실시 예에 따른, 상기 어플리케이션 프로세서(210)는, 상기 휘발성 메모리(240)를, 리치 실행 환경(305)(rich execution environment) 내에서 제어할 수 있다. According to one embodiment, the application processor 210 may control the volatile memory 240 within a rich execution environment 305.

일 실시 예에 따른, 상기 보안 프로세서(220)는, 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 각각에 대응하는 파일 내에 저장할 수 있다. According to one embodiment, the security processor 220 may store the encrypted data 315, the mapping table 325, and the tag information 345 in files corresponding to each.

일 실시 예에 따른, 상기 보안 프로세서(220)는, 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 단일의(single) 파일 내에 저장할 수 있다. According to one embodiment, the security processor 220 may store the encrypted data 315, the mapping table 325, and the tag information 345 in a single file.

일 실시 예에 따른, 상기 보안 프로세서(220)는, 제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이한 제2 매핑 테이블(330)에 기반하여 획득된 보안 카운터(security counter)를 이용하여, 상기 제1 매핑 테이블(320)을 복호화할 수 있다. According to one embodiment, the security processor 220 uses a security counter obtained based on a second mapping table 330 that is different from the mapping table 320, which is the first mapping table 320. Thus, the first mapping table 320 can be decrypted.

일 실시 예에 따른, 상기 보안 프로세서(220)는, 상기 복호화된 제1 매핑 테이블(325)에 기반하여 상기 암호화된 데이터(315)의 무결성 검사를 위한 상기 태그 정보(345)를 획득할 수 있다. According to one embodiment, the security processor 220 may obtain the tag information 345 for checking the integrity of the encrypted data 315 based on the decrypted first mapping table 325. .

상술한 바와 같이, 일 실시 예에 따른, 전자 장치(101)(electronic device)의 방법은, 어플리케이션 프로세서(210)로부터, 데이터(310)를 암호화하기 위한 요청을 식별하는 동작을 포함할 수 있다. 상기 전자 장치의 상기 방법은, 상기 요청에 기반하여 매핑 테이블(320) 내에 포함된 ARC(anti replay counter)에 기반하여 상기 데이터(310)를 암호화하는 동작을 포함할 수 있다. 상기 암호화된 데이터(315)에 기반하여, 상기 암호화된 데이터(315)에 대한 무결성 검사(integrity check)와 관련된 태그 정보(340)를 획득하는 동작을 포함할 수 있다. 상기 전자 장치의 상기 방법은, 상기 어플리케이션 프로세서(210)를 제어하여, 상기 어플리케이션 프로세서(210)에 의해 제어되는 비휘발성 메모리(230) 내에 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를 저장하는 동작을 포함할 수 있다. As described above, according to one embodiment, a method of the electronic device 101 may include an operation of identifying a request to encrypt data 310 from the application processor 210. The method of the electronic device may include encrypting the data 310 based on an anti-replay counter (ARC) included in the mapping table 320 based on the request. Based on the encrypted data 315, the operation may include obtaining tag information 340 related to an integrity check for the encrypted data 315. The method of the electronic device controls the application processor 210 to store the encrypted data 315, the mapping table 325, and the like in a non-volatile memory 230 controlled by the application processor 210. and storing the tag information 345.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 제1 ARC인 상기 ARC와 상이하고, 상기 매핑 테이블(320)을 암호화하기 위한 제2 ARC에 기반하여 상기 매핑 테이블(320)을 암호화하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 is different from the ARC, which is the first ARC, and uses the mapping table 320 based on the second ARC for encrypting the mapping table 320. May include encryption operations.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이하고, 상기 제2 ARC를 획득하기 위한 제2 매핑 테이블(330)로부터 상기 제2 ARC를 획득하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 is different from the mapping table 320, which is the first mapping table 320, and includes a second mapping table 330 for obtaining the second ARC. It may include an operation of obtaining the second ARC from.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 상기 매핑 테이블(320)을 보안 실행 환경(secure execution environment) 내에서 제어되는 휘발성 메모리(221)로부터 획득하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 may include an operation of obtaining the mapping table 320 from a volatile memory 221 controlled within a secure execution environment. .

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 제1 비휘발성 메모리(230)인 상기 비휘발성 메모리(230)와 상이한 제2 비휘발성 메모리(250)로부터, 제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이한 상기 제2 매핑 테이블(330)을 획득하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 generates a first mapping table ( An operation of obtaining the second mapping table 330 that is different from the mapping table 320 (320) may be included.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 보안 실행 환경(300) 내에서, 상기 제2 비휘발성 메모리(250)를 제어하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 may include controlling the second non-volatile memory 250 within the secure execution environment 300.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 제1 태그 정보(340)인 상기 태그 정보(340)와 상이하고, 상기 제1 매핑 테이블(320)의 무결성 검사와 관련된 제2 태그 정보(350)를 획득하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 is different from the tag information 340, which is the first tag information 340, and uses a second method related to the integrity check of the first mapping table 320. It may include an operation of acquiring tag information 350.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 어플리케이션 프로세서(210)를 통해 휘발성 메모리(240)로 송신한 것에 기반하여, 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 상기 비휘발성 메모리(230) 내에 저장하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 includes the encrypted data 315 and the mapping table 325 based on transmission to the volatile memory 240 through the application processor 210. , and may include an operation of storing the tag information 345 in the non-volatile memory 230.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 상기 휘발성 메모리(240)를, 리치 실행 환경(305)(rich execution environment) 내에서 제어하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 may include controlling the volatile memory 240 within a rich execution environment 305.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 각각에 대응하는 파일 내에 저장하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 includes storing the encrypted data 315, the mapping table 325, and the tag information 345 in a file corresponding to each. may include.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 단일의 파일 내에 저장하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 includes storing the encrypted data 315, the mapping table 325, and the tag information 345 in a single file. can do.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이한 제2 매핑 테이블(330)에 기반하여 획득된 보안 카운터(security counter)를 이용하여, 상기 제1 매핑 테이블(320)을 복호화하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 includes a security counter obtained based on a second mapping table 330 that is different from the mapping table 320, which is the first mapping table 320. ) may include an operation of decoding the first mapping table 320.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 상기 복호화된 제1 매핑 테이블(325)에 기반하여 상기 암호화된 데이터(315)의 무결성 검사를 위한 상기 태그 정보(345)를 획득하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 obtains the tag information 345 for checking the integrity of the encrypted data 315 based on the decrypted first mapping table 325. It may include actions such as:

상술한 바와 같이, 일 실시 예에 따른, 전자 장치(101)(electronic device)는, 어플리케이션 프로세서(210), 보안 프로세서(220), 상기 어플리케이션 프로세서(210)에 의해 제어되는 제1 비휘발성 메모리 (230), 및 상기 보안 프로세서에 의해 제어되는 제2 비휘발성 메모리(250)를 포함할 수 있다. 상기 보안 프로세서(220)는, 상기 어플리케이션 프로세서(210)로부터, 암호화된 데이터 (315)를 복호화하기 위한 요청을 식별할 수 있다. 상기 보안 프로세서는, 상기 요청에 기반하여, 상기 제2 비휘발성 메모리(250)에 기반한 매핑 테이블 (330) 내에 포함된 ARC(anti replay counter), 및 상기 제2 비휘발성 메모리(250)에 기반한 태그 정보(350)를 이용하여, 제1 매핑 테이블(330)인 상기 매핑 테이블(330)과 상이하고, 암호화된 제2 매핑 테이블(325) , 및 제1 태그 정보(350)인 상기 태그 정보(350)와 상이한 암호화된 제2 태그 정보(345) 를 복호화할 수 있다. 상기 보안 프로세서는, 상기 제2 매핑 테이블(325), 및 상기 제2 태그 정보(345)를 복호화한 것에 기반하여, 상기 암호화된 데이터(315)를 복호화할 수 있다. As described above, according to one embodiment, the electronic device 101 includes an application processor 210, a security processor 220, and a first non-volatile memory ( 230), and a second non-volatile memory 250 controlled by the security processor. The security processor 220 may identify a request to decrypt encrypted data 315 from the application processor 210. The security processor, based on the request, generates an anti-replay counter (ARC) included in the mapping table 330 based on the second non-volatile memory 250, and a tag based on the second non-volatile memory 250. Using the information 350, a second mapping table 325 that is different from the mapping table 330, which is the first mapping table 330, and is encrypted, and the tag information 350, which is the first tag information 350. ) can be decrypted. The security processor may decrypt the encrypted data 315 based on decrypting the second mapping table 325 and the second tag information 345.

일 실시 예에 따른, 상기 어플리케이션 프로세서(210)는, 상기 제1 비휘발성 메모리(230)를, 리치 실행 환경(305) 내에서 제어할 수 있다. According to one embodiment, the application processor 210 may control the first non-volatile memory 230 within the rich execution environment 305.

일 실시 예에 따른, 상기 보안 프로세서(220)는, 상기 제2 비휘발성 메모리(250)를, 보안 실행 환경(300) 내에서 제어할 수 있다. According to one embodiment, the security processor 220 may control the second non-volatile memory 250 within the secure execution environment 300.

일 실시 예에 따른, 상기 보안 프로세서(220)는, 상기 제2 매핑 테이블(325), 및 상기 제2 태그 정보(345)를, 보안 실행 환경(300) 내에서, 복호화할 수 있다. According to one embodiment, the security processor 220 may decrypt the second mapping table 325 and the second tag information 345 within the secure execution environment 300.

일 실시 예에 따른, 상기 보안 프로세서(220)는, 상기 암호화된 데이터(315)의 무결성 검사와 관련된 상기 암호화된 제2 태그 정보(345)를 복호화하기 위한 보안 카운터인 상기 ARC를, 상기 제1 매핑 테이블(330)에 기반하여 획득할 수 있다. According to one embodiment, the security processor 220 includes the ARC, which is a security counter for decrypting the second encrypted tag information 345 related to the integrity check of the encrypted data 315, and the first It can be obtained based on the mapping table 330.

상술한 바와 같이, 일 실시 예에 따른, 전자 장치(101)(electronic device)의 방법은, 어플리케이션 프로세서(210)로부터, 상기 어플리케이션 프로세서(210)에 의해 제어되는 제1 비휘발성 메모리(230) 내에 저장되고 암호화된 데이터(315)를 복호화하기 위한 요청을 식별하는 동작을 포함할 수 있다. 상기 전자 장치의 상기 방법은, 상기 요청에 기반하여, 상기 제1 비휘발성 메모리(230)와 상이하고 보안 프로세서(220)에 의해 제어되는 제2 비휘발성 메모리(250)에 기반한 매핑 테이블(330) 내에 포함된 ARC(anti replay counter), 및 상기 제2 비휘발성 메모리(250)에 기반한 태그 정보(350)를 이용하여, 제1 매핑 테이블(330)인 상기 매핑 테이블(330)과 상이하고, 암호화된 제2 매핑 테이블(325), 및 제1 태그 정보(350)인 상기 태그 정보(350)와 상이한 제2 태그 정보(345)를 복호화하는 동작을 포함할 수 있다. 상기 전자 장치의 상기 방법은, 상기 제2 매핑 테이블(325), 및 상기 제2 태그 정보(345)를 복호화한 것에 기반하여, 상기 암호화된 데이터(315)를 복호화할 수 있다. As described above, according to one embodiment, the method of the electronic device 101 includes processing from the application processor 210 to the first non-volatile memory 230 controlled by the application processor 210. An operation may include identifying a request to decrypt stored and encrypted data 315 . The method of the electronic device includes, based on the request, a mapping table 330 based on a second non-volatile memory 250 that is different from the first non-volatile memory 230 and is controlled by a security processor 220. It is different from the mapping table 330, which is the first mapping table 330, and is encrypted using the tag information 350 based on the ARC (anti replay counter) included in the ARC and the second non-volatile memory 250. An operation of decoding the second mapping table 325 and the second tag information 345 that is different from the tag information 350, which is the first tag information 350, may be included. The method of the electronic device can decrypt the encrypted data 315 based on decrypting the second mapping table 325 and the second tag information 345.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 상기 제1 비휘발성 메모리(230)를, 리치 실행 환경(305) 내에서 제어하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 may include controlling the first non-volatile memory 230 within the rich execution environment 305.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 상기 제2 비휘발성 메모리(250)를, 보안 실행 환경(300) 내에서 제어하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 may include controlling the second non-volatile memory 250 within the secure execution environment 300.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 상기 제2 매핑 테이블(325), 및 상기 제2 태그 정보(345)를, 보안 실행 환경(300) 내에서, 복호화하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 includes an operation of decrypting the second mapping table 325 and the second tag information 345 within the secure execution environment 300. It can be included.

일 실시 예에 따른, 상기 전자 장치(101)의 상기 방법은, 상기 암호화된 데이터(315)의 무결성 검사와 관련된 상기 암호화된 제2 태그 정보(345)를 복호화하기 위한 보안 카운터인 상기 ARC를, 상기 제1 매핑 테이블(330)에 기반하여 획득하는 동작을 포함할 수 있다. According to one embodiment, the method of the electronic device 101 includes the ARC, which is a security counter for decrypting the encrypted second tag information 345 related to the integrity check of the encrypted data 315, It may include an operation of obtaining based on the first mapping table 330.

본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 전자 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.Electronic devices according to various embodiments disclosed in this document may be of various types. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, electronic devices, or home appliances. Electronic devices according to embodiments of this document are not limited to the above-described devices.

본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.The various embodiments of this document and the terms used herein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various changes, equivalents, or replacements of the embodiments. In connection with the description of the drawings, similar reference numbers may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the above items, unless the relevant context clearly indicates otherwise. As used herein, “A or B”, “at least one of A and B”, “at least one of A or B”, “A, B or C”, “at least one of A, B and C”, and “A Each of phrases such as “at least one of , B, or C” may include any one of the items listed together in the corresponding phrase, or any possible combination thereof. Terms such as "first", "second", or "first" or "second" may be used simply to distinguish one component from another, and to refer to that component in other respects (e.g., importance or order) is not limited. One (e.g., first) component is said to be “coupled” or “connected” to another (e.g., second) component, with or without the terms “functionally” or “communicatively.” When mentioned, it means that any of the components can be connected to the other components directly (e.g. wired), wirelessly, or through a third component.

본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term “module” used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as logic, logic block, component, or circuit, for example. It can be used as A module may be an integrated part or a minimum unit of the parts or a part thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).

본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present document are one or more instructions stored in a storage medium (e.g., built-in memory 136 or external memory 138) that can be read by a machine (e.g., electronic device 101). It may be implemented as software (e.g., program 140) including these. For example, a processor (e.g., processor 120) of a device (e.g., electronic device 101) may call at least one command among one or more commands stored from a storage medium and execute it. This allows the device to be operated to perform at least one function according to the at least one instruction called. The one or more instructions may include code generated by a compiler or code that can be executed by an interpreter. A storage medium that can be read by a device may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' only means that the storage medium is a tangible device and does not contain signals (e.g. electromagnetic waves), and this term refers to cases where data is semi-permanently stored in the storage medium. There is no distinction between temporary storage cases.

일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어™)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, methods according to various embodiments disclosed in this document may be provided and included in a computer program product. Computer program products are commodities and can be traded between sellers and buyers. The computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play Store™) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smart phones) or online. In the case of online distribution, at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.

다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다. According to various embodiments, each component (e.g., module or program) of the above-described components may include a single or plural entity, and some of the plurality of entities may be separately placed in other components. there is. According to various embodiments, one or more of the components or operations described above may be omitted, or one or more other components or operations may be added. Alternatively or additionally, multiple components (eg, modules or programs) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each component of the plurality of components in the same or similar manner as those performed by the corresponding component of the plurality of components prior to the integration. . According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, or omitted. Alternatively, one or more other operations may be added.

Claims (36)

전자 장치(101)(electronic device)에 있어서,
어플리케이션 프로세서(210);
보안 프로세서(220); 및
상기 어플리케이션 프로세서(210)에 의해 제어되는 비휘발성 메모리(230)를 포함하고,
상기 보안 프로세서(220)는,
상기 어플리케이션 프로세서(210)로부터, 데이터(310)를 암호화하기 위한 요청을 식별하고;
상기 요청에 기반하여 매핑 테이블(320) 내에 포함된 ARC(anti replay counter)에 기반하여 상기 데이터(310)를 암호화하고;
상기 암호화된 데이터(315)에 기반하여, 상기 암호화된 데이터(315)에 대한 무결성 검사(integrity check)와 관련된 태그 정보(340)를 획득하고; 및
상기 어플리케이션 프로세서(210)를 제어하여, 상기 비휘발성 메모리(230) 내에 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를 저장하도록, 구성된,
전자 장치(101).
In the electronic device 101,
application processor 210;
security processor 220; and
Includes a non-volatile memory 230 controlled by the application processor 210,
The security processor 220,
identify, from the application processor (210), a request to encrypt data (310);
encrypt the data 310 based on an anti-replay counter (ARC) included in the mapping table 320 based on the request;
Based on the encrypted data 315, obtain tag information 340 related to an integrity check for the encrypted data 315; and
configured to control the application processor 210 to store the encrypted data 315, the mapping table 325, and the tag information 345 in the non-volatile memory 230,
Electronic device (101).
제1 항에 있어서,
상기 보안 프로세서(220)는,
제1 ARC인 상기 ARC와 상이하고, 상기 매핑 테이블(320)을 암호화하기 위한 제2 ARC에 기반하여 상기 매핑 테이블(320)을 암호화하도록, 구성된,
전자 장치(101).
According to claim 1,
The security processor 220,
configured to encrypt the mapping table (320) based on a second ARC, which is different from the ARC, which is a first ARC, and is for encrypting the mapping table (320).
Electronic device (101).
제2 항에 있어서,
상기 보안 프로세서(220)는,
제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이하고, 상기 제2 ARC를 획득하기 위한 제2 매핑 테이블(330)로부터 상기 제2 ARC를, 획득하도록, 구성된,
전자 장치(101).
According to clause 2,
The security processor 220,
Different from the mapping table 320, which is a first mapping table 320, and configured to obtain the second ARC from a second mapping table 330 for obtaining the second ARC.
Electronic device (101).
제1 항 내지 제3 항 중 어느 한 항에 있어서,
휘발성 메모리(221)를 더 포함하고,
상기 보안 프로세서(220)는,
상기 매핑 테이블(320)을 보안 실행 환경(300)(secure execution environment) 내에서 제어되는 상기 휘발성 메모리(211)로부터 획득하도록, 구성된,
전자 장치(101).
According to any one of claims 1 to 3,
Further comprising volatile memory 221,
The security processor 220,
Configured to obtain the mapping table 320 from the volatile memory 211 controlled within a secure execution environment 300,
Electronic device (101).
제4 항에 있어서,
제1 비휘발성 메모리(230)인 상기 비휘발성 메모리(230)와 상이한 제2 비휘발성 메모리(250)를 더 포함하고,
상기 보안 프로세서(220)는,
상기 제2 비휘발성 메모리(250)로부터, 제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이한 상기 제2 매핑 테이블(330)을 획득하도록, 구성된,
전자 장치(101).
According to clause 4,
It further includes a second non-volatile memory 250 that is different from the non-volatile memory 230, which is the first non-volatile memory 230,
The security processor 220,
configured to obtain, from the second non-volatile memory (250), the second mapping table (330) that is different from the mapping table (320), which is the first mapping table (320),
Electronic device (101).
제5 항에 있어서,
상기 보안 프로세서(220)는,
보안 실행 환경(300) 내에서, 상기 제2 비휘발성 메모리(250)를 제어하도록, 구성된,
전자 장치(101).
According to clause 5,
The security processor 220,
configured to control the second non-volatile memory (250) within a secure execution environment (300),
Electronic device (101).
제6 항에 있어서,
상기 보안 프로세서(220)는,
제1 태그 정보(340)인 상기 태그 정보(340)와 상이하고, 상기 제1 매핑 테이블(320)의 무결성 검사와 관련된 제2 태그 정보(350)를 획득하도록, 구성된,
전자 장치(101).
According to clause 6,
The security processor 220,
Configured to obtain second tag information 350, which is different from the tag information 340, which is the first tag information 340, and is related to the integrity check of the first mapping table 320.
Electronic device (101).
제1 항 내지 제7 항 중 어느 한 항에 있어서,
휘발성 메모리(240)를 더 포함하고,
상기 보안 프로세서(220)는,
어플리케이션 프로세서(210)를 통해 상기 휘발성 메모리(240)로 송신한 것에 기반하여, 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 상기 비휘발성 메모리(230) 내에 저장하도록, 구성된,
전자 장치(101).
The method according to any one of claims 1 to 7,
Further comprising volatile memory 240,
The security processor 220,
Based on transmission to the volatile memory 240 through the application processor 210, the encrypted data 315, the mapping table 325, and the tag information 345 are stored in the non-volatile memory 230. ), configured to be stored within,
Electronic device (101).
제8 항에 있어서,
상기 어플리케이션 프로세서(210)는,
상기 휘발성 메모리(240)를, 리치 실행 환경(305)(rich execution environment) 내에서 제어하도록, 구성된,
전자 장치(101).
According to clause 8,
The application processor 210,
Configured to control the volatile memory (240) within a rich execution environment (305),
Electronic device (101).
제1 항 내지 제9 항 중 어느 한 항에 있어서,
상기 보안 프로세서(220)는,
상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 각각에 대응하는 파일 내에 저장하도록, 구성된,
전자 장치(101).
The method according to any one of claims 1 to 9,
The security processor 220,
configured to store the encrypted data 315, the mapping table 325, and the tag information 345 in files corresponding to each,
Electronic device (101).
제1 항 내지 제10 항 중 어느 한 항에 있어서,
상기 보안 프로세서(220)는,
상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 단일의(single) 파일 내에 저장하도록, 구성된,
전자 장치(101).
The method according to any one of claims 1 to 10,
The security processor 220,
configured to store the encrypted data 315, the mapping table 325, and the tag information 345 in a single file,
Electronic device (101).
제1 항 내지 제11 항 중 어느 한 항에 있어서,
상기 보안 프로세서(220)는,
제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이한 제2 매핑 테이블(330)에 기반하여 획득된 보안 카운터(security counter)를 이용하여, 상기 제1 매핑 테이블(320)을 복호화하도록, 구성된,
전자 장치(101).
The method according to any one of claims 1 to 11,
The security processor 220,
To decrypt the first mapping table 320 using a security counter obtained based on a second mapping table 330 that is different from the mapping table 320, which is the first mapping table 320, composed,
Electronic device (101).
제12 항에 있어서,
상기 보안 프로세서(220)는,
상기 복호화된 제1 매핑 테이블(325)에 기반하여 상기 암호화된 데이터(315)의 무결성 검사를 위한 상기 태그 정보(345)를 획득하도록, 구성된,
전자 장치(101).
According to claim 12,
The security processor 220,
Configured to obtain the tag information 345 for integrity checking of the encrypted data 315 based on the decrypted first mapping table 325,
Electronic device (101).
전자 장치(101)(electronic device)의 방법에 있어서,
어플리케이션 프로세서(210)로부터, 데이터(310)를 암호화하기 위한 요청을 식별하는 동작;
상기 요청에 기반하여 매핑 테이블(320) 내에 포함된 ARC(anti replay counter)에 기반하여 상기 데이터(310)를 암호화하는 동작;
상기 암호화된 데이터(315)에 기반하여, 상기 암호화된 데이터(315)에 대한 무결성 검사(integrity check)와 관련된 태그 정보(340)를 획득하는 동작; 및
상기 어플리케이션 프로세서(210)를 제어하여, 상기 어플리케이션 프로세서(210)에 의해 제어되는 비휘발성 메모리(230) 내에 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를 저장하는 동작을 포함하는,
방법.
In the method of the electronic device 101,
Identifying, from the application processor 210, a request to encrypt data 310;
Encrypting the data 310 based on an anti-replay counter (ARC) included in the mapping table 320 based on the request;
Based on the encrypted data 315, obtaining tag information 340 related to an integrity check for the encrypted data 315; and
By controlling the application processor 210, the encrypted data 315, the mapping table 325, and the tag information 345 are stored in the non-volatile memory 230 controlled by the application processor 210. Including the operation of saving,
method.
제14 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
제1 ARC인 상기 ARC와 상이하고, 상기 매핑 테이블(320)을 암호화하기 위한 제2 ARC에 기반하여 상기 매핑 테이블(320)을 암호화하는 동작을 포함하는,
방법.
According to claim 14,
The method of the electronic device 101 includes:
It is different from the ARC, which is the first ARC, and includes an operation of encrypting the mapping table 320 based on the second ARC for encrypting the mapping table 320.
method.
제15 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이하고, 상기 제2 ARC를 획득하기 위한 제2 매핑 테이블(330)로부터 상기 제2 ARC를 획득하는 동작을 포함하는,
방법.
According to claim 15,
The method of the electronic device 101 includes:
It is different from the mapping table 320, which is the first mapping table 320, and includes an operation of obtaining the second ARC from the second mapping table 330 for obtaining the second ARC.
method.
제14 항 내지 제16 항 중 어느 한 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
상기 매핑 테이블(320)을 보안 실행 환경(secure execution environment) 내에서 제어되는 휘발성 메모리(221)로부터 획득하는 동작을 포함하는,
방법.
The method according to any one of claims 14 to 16,
The method of the electronic device 101 includes:
Comprising an operation of obtaining the mapping table 320 from a volatile memory 221 controlled within a secure execution environment,
method.
제17 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
제1 비휘발성 메모리(230)인 상기 비휘발성 메모리(230)와 상이한 제2 비휘발성 메모리(250)로부터, 제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이한 상기 제2 매핑 테이블(330)을 획득하는 동작을 포함하는,
방법.
According to claim 17,
The method of the electronic device 101 includes:
From the second non-volatile memory 250, which is different from the non-volatile memory 230, which is the first non-volatile memory 230, the second mapping table ( 330), including the operation of obtaining,
method.
제18 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
보안 실행 환경(300) 내에서, 상기 제2 비휘발성 메모리(250)를 제어하는 동작을 포함하는,
방법.
According to clause 18,
The method of the electronic device 101 includes:
Within a secure execution environment (300), comprising controlling the second non-volatile memory (250),
method.
제19 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
제1 태그 정보(340)인 상기 태그 정보(340)와 상이하고, 상기 제1 매핑 테이블(320)의 무결성 검사와 관련된 제2 태그 정보(350)를 획득하는 동작을 포함하는,
방법.
According to clause 19,
The method of the electronic device 101 includes:
Comprising the operation of obtaining second tag information 350, which is different from the tag information 340, which is the first tag information 340, and is related to the integrity check of the first mapping table 320.
method.
제14 항 내지 제20 항 중 어느 한 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
어플리케이션 프로세서(210)를 통해 휘발성 메모리(240)로 송신한 것에 기반하여, 상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 상기 비휘발성 메모리(230) 내에 저장하는 동작을 포함하는,
방법.
The method according to any one of claims 14 to 20,
The method of the electronic device 101 includes:
Based on transmission to volatile memory 240 via application processor 210, the encrypted data 315, the mapping table 325, and the tag information 345 are stored in the non-volatile memory 230. Including the operation of storing within,
method.
제21 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
상기 휘발성 메모리(240)를, 리치 실행 환경(305)(rich execution environment) 내에서 제어하는 동작을 포함하는,
방법.
According to claim 21,
The method of the electronic device 101 includes:
Including controlling the volatile memory 240 within a rich execution environment 305,
method.
제14 항 내지 제22 항 중 어느 한 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 각각에 대응하는 파일 내에 저장하는 동작을 포함하는,
방법.
The method according to any one of claims 14 to 22,
The method of the electronic device 101 includes:
Comprising the operation of storing the encrypted data 315, the mapping table 325, and the tag information 345 in a file corresponding to each,
method.
제14 항 내지 제23 항 중 어느 한 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
상기 암호화된 데이터(315), 상기 매핑 테이블(325), 및 상기 태그 정보(345)를, 단일의 파일 내에 저장하는 동작을 포함하는,
방법.
The method according to any one of claims 14 to 23,
The method of the electronic device 101 includes:
Comprising the operation of storing the encrypted data 315, the mapping table 325, and the tag information 345 in a single file,
method.
제14 항 내지 제24 항 중 어느 한 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
제1 매핑 테이블(320)인 상기 매핑 테이블(320)과 상이한 제2 매핑 테이블(330)에 기반하여 획득된 보안 카운터(security counter)를 이용하여, 상기 제1 매핑 테이블(320)을 복호화하는 동작을 포함하는,
방법.
The method according to any one of claims 14 to 24,
The method of the electronic device 101 includes:
An operation of decrypting the first mapping table 320 using a security counter obtained based on a second mapping table 330 that is different from the mapping table 320, which is the first mapping table 320. Including,
method.
제25 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
상기 복호화된 제1 매핑 테이블(325)에 기반하여 상기 암호화된 데이터(315)의 무결성 검사를 위한 상기 태그 정보(345)를 획득하는 동작을 포함하는,
방법.
According to claim 25,
The method of the electronic device 101 includes:
Comprising an operation of acquiring the tag information 345 for checking the integrity of the encrypted data 315 based on the decrypted first mapping table 325,
method.
전자 장치(101)(electronic device)에 있어서,
어플리케이션 프로세서(210);
보안 프로세서(220);
상기 어플리케이션 프로세서(210)에 의해 제어되는 제1 비휘발성 메모리(230); 및
상기 보안 프로세서에 의해 제어되는 제2 비휘발성 메모리(250)를 포함하고;
상기 보안 프로세서(220)는,
상기 어플리케이션 프로세서(210)로부터, 암호화된 데이터(315)를 복호화하기 위한 요청을 식별하고;
상기 요청에 기반하여, 상기 제2 비휘발성 메모리(250)에 기반한 매핑 테이블(330) 내에 포함된 ARC(anti replay counter), 및 상기 제2 비휘발성 메모리(250)에 기반한 태그 정보(350)를 이용하여, 제1 매핑 테이블(330)인 상기 매핑 테이블(330)과 상이하고, 암호화된 제2 매핑 테이블(325), 및 제1 태그 정보(350)인 상기 태그 정보(350)와 상이하고, 암호화된 제2 태그 정보(345)를 복호화하고; 및
상기 제2 매핑 테이블(325), 및 상기 제2 태그 정보(345)를 복호화한 것에 기반하여, 상기 암호화된 데이터(315)를 복호화하도록, 구성된,
전자 장치(101).
In the electronic device 101,
application processor 210;
security processor 220;
a first non-volatile memory 230 controlled by the application processor 210; and
comprising a second non-volatile memory (250) controlled by the security processor;
The security processor 220,
identify, from the application processor (210), a request to decrypt encrypted data (315);
Based on the request, ARC (anti replay counter) included in the mapping table 330 based on the second non-volatile memory 250, and tag information 350 based on the second non-volatile memory 250 Using, it is different from the mapping table 330, which is the first mapping table 330, and is different from the encrypted second mapping table 325 and the tag information 350, which is the first tag information 350, Decrypt the encrypted second tag information 345; and
Configured to decrypt the encrypted data 315 based on decrypting the second mapping table 325 and the second tag information 345,
Electronic device (101).
제27 항에 있어서,
상기 어플리케이션 프로세서(210)는,
상기 제1 비휘발성 메모리(230)를, 리치 실행 환경(305) 내에서 제어하도록, 구성된,
전자 장치(101).
According to clause 27,
The application processor 210,
configured to control the first non-volatile memory (230) within a rich execution environment (305),
Electronic device (101).
제27 항 내지 제28 항 중 어느 한 항에 있어서,
상기 보안 프로세서(220)는,
상기 제2 비휘발성 메모리(250)를, 보안 실행 환경(300) 내에서 제어하도록, 구성된,
전자 장치(101).
The method according to any one of claims 27 to 28,
The security processor 220,
configured to control the second non-volatile memory (250) within a secure execution environment (300),
Electronic device (101).
제27 항 내지 제29 항 중 어느 한 항에 있어서,
상기 보안 프로세서(220)는,
상기 제2 매핑 테이블(325), 및 상기 제2 태그 정보(345)를, 보안 실행 환경(300) 내에서, 복호화하도록, 구성된,
전자 장치(101).
The method according to any one of claims 27 to 29,
The security processor 220,
configured to decrypt the second mapping table (325) and the second tag information (345) within a secure execution environment (300),
Electronic device (101).
제27 항 내지 제30 항 중 어느 한 항에 있어서,
상기 보안 프로세서(220)는,
상기 암호화된 데이터(315)의 무결성 검사와 관련된 상기 암호화된 제2 태그 정보(345)를 복호화하기 위한 보안 카운터인 상기 ARC를, 상기 제1 매핑 테이블(330)에 기반하여 획득하도록, 구성된,
전자 장치(101).
The method according to any one of claims 27 to 30,
The security processor 220,
configured to obtain the ARC, which is a security counter for decrypting the encrypted second tag information 345 related to the integrity check of the encrypted data 315, based on the first mapping table 330,
Electronic device (101).
전자 장치(101)(electronic device)의 방법에 있어서,
어플리케이션 프로세서(210)로부터, 상기 어플리케이션 프로세서(210)에 의해 제어되는 제1 비휘발성 메모리(230) 내에 저장되고 암호화된 데이터(315)를 복호화하기 위한 요청을 식별하는 동작;
상기 요청에 기반하여, 상기 제1 비휘발성 메모리(230)와 상이하고 보안 프로세서(220)에 의해 제어되는 제2 비휘발성 메모리(250)에 기반한 매핑 테이블(330) 내에 포함된 ARC(anti replay counter), 및 상기 제2 비휘발성 메모리(250)에 기반한 태그 정보(350)를 이용하여, 제1 매핑 테이블(330)인 상기 매핑 테이블(330)과 상이하고, 암호화된 제2 매핑 테이블(325), 및 제1 태그 정보(350)인 상기 태그 정보(350)와 상이한 제2 태그 정보(345)를 복호화하는 동작; 및
상기 제2 매핑 테이블(325), 및 상기 제2 태그 정보(345)를 복호화한 것에 기반하여, 상기 암호화된 데이터(315)를 복호화하는 동작을 포함하는,
방법.
In the method of the electronic device 101,
Identifying, from an application processor (210), a request to decrypt data (315) stored and encrypted in a first non-volatile memory (230) controlled by the application processor (210);
Based on the request, an anti replay counter (ARC) included in the mapping table 330 based on a second non-volatile memory 250 that is different from the first non-volatile memory 230 and is controlled by the security processor 220. ), and a second mapping table 325 that is different from the mapping table 330, which is the first mapping table 330, and is encrypted using tag information 350 based on the second non-volatile memory 250. , and an operation of decoding second tag information 345 that is different from the tag information 350, which is first tag information 350; and
Comprising an operation of decrypting the encrypted data 315 based on decrypting the second mapping table 325 and the second tag information 345,
method.
제32 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
상기 제1 비휘발성 메모리(230)를, 리치 실행 환경(305) 내에서 제어하는 동작을 포함하는,
방법.
According to clause 32,
The method of the electronic device 101 includes:
Including controlling the first non-volatile memory (230) within a rich execution environment (305),
method.
제32항 내지 제33 항 중 어느 한 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
상기 제2 비휘발성 메모리(250)를, 보안 실행 환경(300) 내에서 제어하는 동작을 포함하는,
방법.
The method according to any one of claims 32 to 33,
The method of the electronic device 101 includes:
Including controlling the second non-volatile memory (250) within a secure execution environment (300),
method.
제32 항 내지 제34 항 중 어느 한 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
상기 제2 매핑 테이블(325), 및 상기 제2 태그 정보(345)를, 보안 실행 환경(300) 내에서, 복호화하는 동작을 포함하는,
방법.
The method according to any one of claims 32 to 34,
The method of the electronic device 101 includes:
Including the operation of decrypting the second mapping table 325 and the second tag information 345 within a secure execution environment 300,
method.
제32 항 내지 제35 항 중 어느 한 항에 있어서,
상기 전자 장치(101)의 상기 방법은,
상기 암호화된 데이터(315)의 무결성 검사와 관련된 상기 암호화된 제2 태그 정보(345)를 복호화하기 위한 보안 카운터인 상기 ARC를, 상기 제1 매핑 테이블(330)에 기반하여 획득하는 동작을 포함하는,
방법.
The method according to any one of claims 32 to 35,
The method of the electronic device 101 includes:
Comprising the operation of acquiring the ARC, which is a security counter for decrypting the encrypted second tag information 345 related to the integrity check of the encrypted data 315, based on the first mapping table 330. ,
method.
KR1020220126226A 2022-09-02 2022-10-04 Electronic device for storing encrypted data in non-volatile memory and method thereof KR20240032591A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2023/012723 WO2024049141A1 (en) 2022-09-02 2023-08-28 Electronic device for storing encrypted data in non-volatile memory, and method therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220111730 2022-09-02
KR20220111730 2022-09-02

Publications (1)

Publication Number Publication Date
KR20240032591A true KR20240032591A (en) 2024-03-12

Family

ID=90299824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220126226A KR20240032591A (en) 2022-09-02 2022-10-04 Electronic device for storing encrypted data in non-volatile memory and method thereof

Country Status (1)

Country Link
KR (1) KR20240032591A (en)

Similar Documents

Publication Publication Date Title
KR20210017083A (en) Electronic device and method for generating attestation certificate based on fused key
KR102621645B1 (en) Electronic device having secure integrated circuit
US11366929B2 (en) Electronic device and method for protecting personal information using secure switch
US11429366B2 (en) Electronic device for updating firmware by using security integrated circuit and operation method thereof
EP4311162A1 (en) Electronic device for generating mnemonic words of private key and operating method of electronic device
US20230004660A1 (en) Method of processing secure data and electronic device supporting the same
US20220209940A1 (en) Method for providing encrypted object and electronic device for supporting the same
EP4184403A1 (en) Electronic device for generating transaction including internal data, and operating method thereof
KR20240032591A (en) Electronic device for storing encrypted data in non-volatile memory and method thereof
US20230029025A1 (en) Electronic device and method of backing up secure element
WO2024049141A1 (en) Electronic device for storing encrypted data in non-volatile memory, and method therefor
US20230261887A1 (en) Electronic device having partial ledger in blockchain network and operating method thereof
US20220329420A1 (en) Electronic device to enhance randomness of security module using multiple hardware random number generator and the method thereof
US20230359530A1 (en) Electronic device for supporting data backup, and operation method thereof
KR20230015155A (en) Electronic Devices and Methods of Backing up Secure Element
KR20230037954A (en) Electronic device performing an encryption operation about transaction data and method in blockchain network
KR20230143897A (en) Operating method of electronic devices fot basic input output system(bios) password initialization and electronic devices thereof
KR20220139202A (en) Electronic device to enhance randomness of security module using multiple hardware random number generator and the method thereof
KR20240034076A (en) Electronic device providing security mode and operating method of the electronic deivce thereof
KR20240003681A (en) Electronic device for providing encryption service and method of operating the same
KR20240047263A (en) Electronic device for providing trusted execution environment
KR20240044287A (en) Electronic device and method for protecting data using the same
KR20240026069A (en) Electronic device and method for performing user authentication in electronic device
KR20230110161A (en) Electronic device for operating security device and operating method thereof
KR20230052165A (en) Electronic device including partial ledger and method in blockchain network