KR20180059217A - Apparatus and method for secure processing of memory data - Google Patents

Apparatus and method for secure processing of memory data Download PDF

Info

Publication number
KR20180059217A
KR20180059217A KR1020160158518A KR20160158518A KR20180059217A KR 20180059217 A KR20180059217 A KR 20180059217A KR 1020160158518 A KR1020160158518 A KR 1020160158518A KR 20160158518 A KR20160158518 A KR 20160158518A KR 20180059217 A KR20180059217 A KR 20180059217A
Authority
KR
South Korea
Prior art keywords
data
value
processor
puf
memory
Prior art date
Application number
KR1020160158518A
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 KR1020160158518A priority Critical patent/KR20180059217A/en
Publication of KR20180059217A publication Critical patent/KR20180059217A/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
    • 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/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Abstract

A security processing device for chip-level data is provided. The device comprises a PUF which provides a first value that is an unpredictable, random and time-invariant digital value using a semiconductor process variation; and a scrambler which performs a scrambling process between a processor and a memory associated with the processor by using the first value provided by the PUF.

Description

메모리 데이터 보안 처리 장치 및 방법{APPARATUS AND METHOD FOR SECURE PROCESSING OF MEMORY DATA}[0001] APPARATUS AND METHOD FOR SECURE PROCESSING OF MEMORY DATA [0002]

메모리의 데이터에 대한 보안 처리 장치 및 방법에 연관되며, 보다 특정하게는 PUF (Physically Unclonable Function)를 이용하여 메모리 데이터를 보안 처리하는 내용에 연관된다.The present invention relates to a security processing apparatus and method for data in a memory, and more particularly, to a content for security processing of memory data using a PUF (Physically Unclonable Function).

보안을 위한 하드웨어 칩(H/W chip)의 디지털 데이터를 보호하기 위해 많은 요소들이 이용된다. 예시적으로, NVM(non-volatile memory)과 RAM 등의 보호를 위해 암호화 과정 등 보안 처리가 수행된다. 일반적인 암호 알고리즘과 달리 칩 수준(chip level)에서 수행되는 방식은 암호화 대신 스크램블(scramble)이라는 방식이 많이 사용한다.Many factors are used to protect the digital data of a hardware chip for security (H / W chip). Illustratively, a security process such as an encryption process is performed to protect non-volatile memory (NVM) and RAM. Unlike a general encryption algorithm, a scheme called chip scramble is used instead of encryption.

칩 수준 에서 프로세서(processor)와 메모리(RAM이나 NVM 등) 사이 블록 암호알고리즘 등을 사용하면 높은 보안 강도를 갖지만 블록(block) 내의 1 byte라도 값을 바꾸면 블록 전체를 복호화 한 후 다시 암호화하여 저장해야 하는 성능 저하가 있다.At the chip level, using a block cipher algorithm between a processor and a memory (such as RAM or NVM) has a high security strength. However, if one byte within a block changes its value, the entire block must be decrypted and then re- There is a performance degradation.

한편, PUF는 예측 불가능한 (unpredictable) 디지털 값을 제공할 수 있다. 개개의 PUF들은 정확한 제조 공정이 주어지고, 동일한 공정에서 제조되더라도, 상기 개개의 PUF들이 제공하는 디지털 값은 다르다. PUF는 복제가 불가능한 POWF (Physical One-Way Function practically impossible to be duplicated)로 지칭될 수도 있다.On the other hand, the PUF can provide unpredictable digital values. Although the individual PUFs are given an exact manufacturing process and are manufactured in the same process, the digital values provided by the individual PUFs are different. The PUF may be referred to as a physical one-way function practically impossible to duplicated (POWF).

이러한 PUF의 복제 불가능한 특성은 보안 및/또는 인증을 위한 기기의 식별자(identifier)를 생성하는 데에 이용될 수 있다. 이를테면, 디바이스를 다른 디바이스와 구별하기 위한 유니크 키(unique key to distinguish devices from one another)를 제공하기 위해 PUF가 이용될 수 있다. PUF를 구현하는 방법에 관한 예시적 내용은 하기 선행기술문헌(특허문헌)에 제시된 바 있다.The non-replicable nature of this PUF may be used to generate an identifier of the device for security and / or authentication. For example, a PUF may be used to provide a unique key to distinguish devices from one another. Exemplary contents on how to implement a PUF are presented in the following prior art documents.

(특허문헌 1) KR1139630 10(Patent Document 1) KR1139630 10

(특허문헌 2) KR0926214 10(Patent Document 2) KR0926214 10

일측에 따르면 반도체 공정 편차를 이용하여 예측 불가능한 무작위의 시불변 디지털 값인 제1 값을 제공하는 PUF; 및 상기 PUF가 제공하는 상기 제1 값을 이용하여 프로세서와 상기 프로세서에 연관되는 메모리 사이의 메모리 사이에서 스크램블 처리하는 스크램블러를 포함하는 메모리 데이터 보안 처리 장치가 제공된다.According to one aspect, the PUF provides a first value, which is a random, time-invariant digital value that is unpredictable using semiconductor process variations; And a scrambler scrambling the memory between the processor and the memory associated with the processor using the first value provided by the PUF.

일실시예에 따르면 상기 스크램블러는 상기 제1 값을 이용하여 상기 프로세서와 상기 메모리 사이의 어드레스 스크램블을 수행하는 어드레스 스크램블러를 포함한다.According to one embodiment, the scrambler includes an address scrambler that performs address scrambling between the processor and the memory using the first value.

일실시예에 따르면 상기 스크램블러는 상기 제1 값을 이용하여 상기 프로세서와 상기 메모리 사이의 데이터 스크램블을 수행하는 데이터 스크램블러를 포함한다.According to one embodiment, the scrambler includes a data scrambler that scrambles data between the processor and the memory using the first value.

다른 일측에 따르면, 칩에 포함되는 PUF가 반도체 공정 편차에서 기인하는 예측 불가능한 무작위의 시불변 디지털 값인 제1 값을 제공하는 단계; 및 상기 칩에 포함되는 스크램블러가 상기 PUF가 제공하는 상기 제1 값을 이용하여 프로세서와 상기 프로세서에 연관되는 메모리 사이의 메모리 사이에서 스크램블 처리하는 스크램블 단계를 포함하는 메모리 데이터 보안 처리 방법이 제공된다.According to another aspect, there is provided a method comprising: providing a PUF included in a chip, the first value being an unpredictable random time-invariant digital value resulting from a semiconductor process variation; And scrambling the scrambler included in the chip between the processor and the memory associated with the processor using the first value provided by the PUF.

일실시예에 따르면 상기 스크램블 단계는, 상기 칩에 포함되는 어드레스 스크램블러가 상기 제1 값을 이용하여 상기 프로세서와 상기 메모리 사이의 어드레스 스크램블을 수행하는 단계를 포함한다.According to one embodiment, the scrambling step includes an address scrambler included in the chip performing address scrambling between the processor and the memory using the first value.

일실시예에 따르면 상기 스크램블 단계는, 상기 칩에 포함되는 데이터 스크램블러가 상기 제1 값을 이용하여 상기 프로세서와 상기 메모리 사이의 데이터 스크램블을 수행하는 단계를 포함한다.According to one embodiment, the scrambling step comprises a data scrambler included in the chip performing data scrambling between the processor and the memory using the first value.

도 1은 일실시예에 따른 메모리 데이터 보안 처리 장치의 블록도이다.
도 2은 일실시예에 따른 메모리 데이터 보안 처리 장치의 예시적 회로도이다.
도 3은 다른 일실시예에 따른 메모리 데이터 보안 처리 장치의 예시적 회로도이다.
1 is a block diagram of a memory data security processing apparatus according to an embodiment.
2 is an exemplary circuit diagram of a memory data security processing apparatus according to an embodiment.
3 is an exemplary circuit diagram of a memory data security processing apparatus according to another embodiment.

이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the rights is not limited or limited by these embodiments. Like reference symbols in the drawings denote like elements.

아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.The terms used in the following description are chosen to be generic and universal in the art to which they are related, but other terms may exist depending on the development and / or change in technology, customs, preferences of the technician, and the like. Accordingly, the terminology used in the following description should not be construed as limiting the technical thought, but should be understood in the exemplary language used to describe the embodiments.

또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.Also, in certain cases, there may be a term chosen arbitrarily by the applicant, in which case the meaning of the detailed description in the corresponding description section. Therefore, the term used in the following description should be understood based on the meaning of the term, not the name of a simple term, and the contents throughout the specification.

도 1은 일실시예에 따른 메모리 데이터 보안 처리 장치의 블록도이다.1 is a block diagram of a memory data security processing apparatus according to an embodiment.

칩 수준에서 메모리 데이터 보안을 위해 스크램블 방식의 보안 처리를 수행한다. Scramble은 address와 data signal을 바꾸어 배치하거나 특정 bit inverse, xor, addition, substitution 등의 간단한 방식을 사용할 수 있고 block cipher나 hash함수에서 사용하는 함수를 이용하여 만든 값을 xor하여 사용 할 수도 있다.At the chip level, scrambled security processing is performed for memory data security. Scrambles can be arranged by replacing address and data signals or by using simple methods such as specific bit inverse, xor, addition, substitution, or by using functions created by block cipher or hash functions.

NVM의 scramble은 모든 chip이 같도록 설계하는 경우가 많고 RAM의 scramble은 NVM의 serial number 등 chip 별로 다른 data를 key(scramble 방식을 결정)로 scramble 한다.Scrambles of NVM are often designed so that all chips are the same, and a scramble of RAM scrambles other data by chip (determines the scramble method), such as the serial number of the NVM.

이렇게 scramble 방식으로 암호화 해도 회로와 NVM의 내용을 역공학(reverse engineering)을 통해 분석하면 scramble 방식(알고리즘)을 분석할 수 있고 NVM을 분석하면 숨기려는 원래의 data를 알 수 있다.Even if the scramble method is used, the contents of the circuit and the NVM can be analyzed by reverse engineering to analyze the scramble method (algorithm) and analyze the NVM to know the original data to be hidden.

RAM의 경우 위에서 밝힌 데로 NVM을 이용하여 chip별로 다르게 scramble된 경우도 있지만 scramble 회로와 NVM을 분석할 수 있다면 이런 scramble도 공격될 수 있다.RAM may be scrambled differently by chip using NVM as described above, but if scramble circuit and NVM can be analyzed, such scramble can also be attacked.

PUF를 key로 하여 NVM, RAM, bus를 암호화하면 PUF값을 알아내기 전에는 그 내용을 파악할 수 없다.If you encrypt the NVM, RAM, and bus with PUF as the key, you will not be able to figure out the contents until you know the PUF value.

하나의 chip에서 scramble 방식을 알아낸 후 공격 대상의 chip을 분석하면 비밀 data를 알아낼 수 있는 것과는 달리 PUF를 key로 scramble 하면 하나의 chip을 분석하여 scramble algorithm(방식)을 알아내도 다른 chip의 내용을 분석할 수 없다.Unlike scramble method in one chip and analyzing chip of attack object, scramble with PUF key, unlike secret data, can find out scramble algorithm (method) Can not be analyzed.

따라서 일반적인 data의 경우 scramble 방식으로 암호화하는데 이 때도 PUF를 사용하면 PUF값을 알기 전에는 data를 알아 낼 수 없다.Therefore, in the case of general data, scramble encryption is used. In this case, if PUF is used, data can not be obtained until the PUF value is known.

Scramble은 address를 변환하여 저장되는 위치를 바꾸는 방법과 data를 저장 단위인 byte나 word 단위로 변환하는 방식 중 하나 또는 두 가지를 모두 사용할 수 있다.Scramble can use one or both of converting the address and changing the storage location, or converting the data into byte or word units.

Address를 변환하는 parameter를 data를 변환하는 parameter에도 같이 사용하면 다른 address에 대하여 data를 다르게 암호화할 수 있어 보안성을 높일 수 있다.If the parameter that converts the address is also used in the parameter that converts the data, the data can be encrypted differently for different addresses, which can enhance the security.

NVM, RAM, bus 등은 H/W 자원이기 때문에 변환하는 방식을 전단사 함수(1:1 대응)를 사용하는 경우가 대부분이다.Since NVM, RAM, and bus are H / W resources, most of them use the shear function (1: 1 correspondence) as the conversion method.

예를 들어 8bits의 data를 저장하기 위해 9bits을 이용하여 변환하면 보안성은 높아지지만 chip의 크기를 늘리고 비용을 증가시킨다.For example, using 9bits to store 8 bits of data increases security but increases chip size and costs.

따라서 8bits의 data를 저장하기 위해 8bits의 저장 공간 또는 bus를 사용하는데 전단사 함수를 사용해서 변환한다.Therefore, 8bits of storage space or bus is used to store 8bits of data is converted using the shear function.

Address도 자원을 절약하기 위해 전단사 함수를 사용하는 경우가 대부분이다.Addresses often use shear functions to save resources.

일부 실시예에는 전단사 함수를 사용해 원래의 용량과 저장하는 용량이 같은 경우에 연관된다. 그러나, 이에 그치지 않고 다른 실시예들은 원래 data의 용량보다 더 큰 용량의 저장 공간이 필요한 확장 변환 함수를 사용하거나 원래 data의 용량보다 더 작은 용량의 저장 공간만 필요한 압축 함수를 사용한 경우도 포함된다.Some embodiments involve a case where the original capacity and the storage capacity are the same using a shear function. However, other embodiments include the use of a compression function that requires a storage capacity that is larger than the capacity of the original data, or a compression function that requires only a storage capacity smaller than the capacity of the original data.

CPU 또는 H/W logic에 변환된 값을 전달해야 하기 때문에 fetch 시간 내에 변환하거나 변환이 완료된 것을 알리는 signal을 함께 구성해야 한다.Since the converted value must be transferred to the CPU or H / W logic, it must be converted within the fetch time or a signal indicating that the conversion is completed.

도 2은 일실시예에 따른 메모리 데이터 보안 처리 장치의 예시적 회로도이다. 도 2에서 도시된 실시예에서는 Bus = Bus xor PUF Key는 Bus의 값을 PUF Key에 의해 반전시킬지 결정하는 방식이고 Bus0 = Bus0 xor (Bus1 and PUF Key)는 PUF Key에 의해 Bus0의 값에 Bus1의 값을 xor 시킬지 여부를 결정하는 방식이다.2 is an exemplary circuit diagram of a memory data security processing apparatus according to an embodiment. In the embodiment shown in FIG. 2, Bus = Bus xor PUF Key is a method of determining whether to invert the value of the Bus by the PUF Key. Bus 0 = Bus 0 xor (Bus 1 and PUF Key) It is a method to decide whether to xor the value.

두 번째 방식을 이용하면 선형성을 제거하는 용도로 사용될 수 있고 Bus를 교환하는 것으로 사용할 수 있다.The second method can be used to eliminate linearity and can be used to exchange buses.

A ← A ^ B (A ← A0 ^ B0)A? A? B (A? A0? B0)

B ← A ^ B (B ← (A0 ^ B0) ^ B0 = A0)B ← A ^ B (B ← (A0 ^ B0) ^ B0 = A0)

A ← A ^ B (A ← (A0 ^ B0) ^ A0 = B0)A ← A ^ B (A ← (A0 ^ B0) ^ A0 = B0)

이렇게 되도록 회로를 설계하면 A와 B Bus를 교환 할 수 있다.Designing the circuit so that it can exchange A and B Bus.

여기에 교환을 할지 결정하는 것을 PUF key로 제어할 수 있다.Here you can control the exchange with the PUF key.

도 3은 다른 일실시예에 따른 메모리 데이터 보안 처리 장치의 예시적 회로도이다. Random function을 이용하여 scramble을 수행하는 예로 PUF key와 다른 parameter (address의 경우 상위 address 등, data의 경우 address 등)를 이용하여 Random function을 구성할 수 있다.3 is an exemplary circuit diagram of a memory data security processing apparatus according to another embodiment. An example of performing a scramble using a random function is to construct a random function using the PUF key and other parameters (upper address in case of address, address in case of data, etc.).

예를 들어 RAM을 구성하는데 16kbytes의 용량을 사용한 시스템이 있다고 가정ㅎ나다. 그러면 16kbytes로 address가 14 signal line으로 구성되고 data는 8 signal line으로 구성된다.For example, suppose you have a system that uses 16 kbytes of RAM to configure your RAM. Then 16kbytes address is composed of 14 signal lines and data is composed of 8 signal lines.

여기에 14개의 address 중 0, 11의 line을 서로 맞바꿀 것이지 결정하는 것을 PUF 하나의 bit로 제어하고 2, 4의 line을 맞바꿀지 또 다른 PUF가 결정하고 하는 방식으로 여러 개의 PUF를 적용시킬 수 있다. 또한 14개의 address 중 n번째의 값을 반전시킬지를 PUF line과 xor 하여 구현할 수 있다.Here, it is possible to control multiple PUFs by controlling one PUF bit to decide whether to combine lines 0 and 11 among 14 addresses, and to apply PUF in such a way that another PUF decides whether to combine lines 2 and 4 . Also, it can be implemented by XORing with the PUF line whether to invert the nth value among 14 addresses.

Data의 선형성(linearity)를 없애기 위해 치환(substitution) 과정을 거칠 수 있는데 어떤 값을 또 다른 어떤 값으로 바꿀지 PUF bit를 이용하여 바꿀 수 있다.To eliminate the linearity of the data, a substitution process can be performed. The PUF bit can be used to change a value to another value.

암호화할 때와 복호화 할 때 사용될 data의 address가 같기 때문에 Address line은 암호화와 복호화 시 같은 회로를 사용한다.The address line uses the same circuit for encryption and decryption because the address of the data to be used for encryption is the same as that of data to be decrypted.

Data line의 복호화 회로를 설계할 때 signal line에 직접 연산을 한 경우 치환은 암호화와 반대의 logic을 다시 설계해고 더하기는 빼기로 바꾸어야 하고 xor, inverse, 교환은 그대로 설계한다.When designing the decryption circuit of the data line, if the direct operation is performed on the signal line, the replacement logic is redesigned and the logic opposite to the encryption is redesigned, and the addition and subtraction are changed to subtraction.

다만 암호화의 순서와 반대로 복호화 한다.But decrypts them in reverse to the order of encryption.

만약 도 3의 예시와 같이 Random function을 이용하여 scramble 하였다면 복호화할 때도 그대로 사용할 수 있다. Data signal line 8개는 address signal line을 암호화한 PUF를 이용하여 암호화하면 더 좋은 결과를 만들 수 있다.If it is scrambled using a random function as in the example of FIG. 3, it can be used as it is for decoding. The eight data signal lines can be better encrypted by encrypting the address signal line using PUF.

이 것은 address에서 사용한 PUF를 사용하면 data가 address에 따라 다르게 암호화 되어 분석하기 더 어려워진다. 이 것은 실시 예이고 CPU와 RAM 등의 특성에 따라 address line, data line의 개수는 맞춰야 한다.If you use the PUF used in the address, the data will be encrypted differently depending on the address, making it more difficult to analyze. This is an embodiment, and the number of address lines and data lines should be matched according to characteristics of CPU and RAM.

NVM의 scramble은 NVM을 write하는 블록 단위만큼을 따로 암호화 하는 경우가 많다.The scrambles of the NVM are often encrypted separately for each block unit that writes the NVM.

이 것은 write할 때 연속되지 않은 data를 저장하면 연속되지 않은 data가 속한 모든 block을 암호화하여 다시 저장해야 하기 때문에 수행 시간이 늘어나고 수명을 단축될 수 있다.This means that if you save non-contiguous data when writing, all blocks that contain non-contiguous data need to be encrypted and re-stored, which can increase the execution time and shorten the lifetime.

예를 들어 용량이 16kbytes이고 32bytes 블록 단위로 write하는 경우라면 address signal line을 암호화할 때 5~13까지 9개만 암호화하고 나머지 address signal line 0~4는 32bytes 내의 signal로 따로 암호화 하던가 data signal line 위치와 섞어 위치만 바꾼 후 data를 암호화 해야 한다.For example, if the capacity is 16 kbytes and 32 bytes is written in blocks, the address signal line is encrypted by encrypting 9 to 5 to 13, and the remaining address signal lines 0 to 4 are separately encrypted with signals within 32 bytes, You only need to change the location and then encrypt the data.

즉 32bytes 블록은 address를 scramble하여 그 위치가 정해지면 그 정해진 위치 내에서만 scramble해야 실제 쓸 때 한 번에 write할 수 있다.In other words, a 32byte block scrambles an address and scrambles it only within its designated location if its location is set, so that it can be written at a time when it is actually written.

그래야 1 블록 크기의 NVM을 write 할 때 하나의 블록 내에서 암호화를 수행할 수 있다.Thus, when writing one block of NVM, encryption can be performed in one block.

RAM에 write할 때도 2bytes 혹은 4bytes 단위로 write하도록 설계된 경우 NVM과 마찬가지로 address에서 1 line 혹은 2 line을 따로 scramble 한다.When writing to RAM, if it is designed to write in 2bytes or 4bytes, scramble 1 line or 2 lines separately at address as NVM.

Scramble 방식의 또 다른 장점은 암호화된 data가 어디에 위치했는지 알 수 없다는 것이다. 그러나 일반적인 scramble은 같은 종류의 chip을 이용하여 일부를 변경한 후 분석해 보면 어느 위치에 저장되었는지 알 수 있다. 하지만 PUF를 이용한 scramble은 같은 chip에서만 같은 방식으로 암호화되기 때문에 동일 모델의 chip을 구하여 분석해도 공격 대상의 chip에 대한 scramble을 분석하는데 아무런 도움이 되지 않는다.Another advantage of the Scramble method is that it does not know where the encrypted data is located. However, a common scramble can be used to identify the location of a scramble by modifying a part of the same type of chip and analyzing it. However, since the scramble using the PUF is encrypted in the same way only on the same chip, even if the same model chip is obtained and analyzed, it is not helpful to analyze the scramble of the chip to be attacked.

Scramble 사용되는 key를 외부에서 주입하고 그것을 PUF로 암호화하는 경우도 이 특허의 대상으로 한다. 즉 scramble 방식으로 암호화한 code를 외부에 Flash memory에 대량으로 생산하여 연결한 경우 chip 내부에 scramble key를 외부에서 주입해야 chip이 인식할 수 있다.It is also the subject of this patent to inject a key used externally and encrypt it with a PUF. In other words, if a code encrypted by scramble method is mass-produced and connected to an external flash memory, a chip can be recognized by injecting a scramble key from the outside into the chip.

이 경우 scramble key를 외부에서 주입하고 그것을 보관할 때 PUF를 사용하여 암호화하는 응용에서도 사용될 수 있다. 이와 같이 RAM이나 NVM이 chip내에 같이 설계된 응용과 외부에 연결하여 사용하는 응용에도 사용될 수 있다.This can also be used in applications where the scramble key is injected externally and encrypted using PUF when storing it. As such, RAM and NVM can be used for applications designed in the chip and for external applications.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the drawings, various modifications and variations may be made by those skilled in the art. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (7)

반도체 공정 편차를 이용하여 예측 불가능한 무작위의 시불변 디지털 값인 제1 값을 제공하는 PUF; 및
상기 PUF가 제공하는 상기 제1 값을 이용하여 프로세서와 상기 프로세서에 연관되는 메모리 사이의 메모리 사이에서 스크램블 처리하는 스크램블러
를 포함하는 메모리 데이터 보안 처리 장치.
A PUF that uses a semiconductor process variation to provide a first value that is an unpredictable random time constant digital value; And
A scrambler for scrambling between memories between a processor and a memory associated with the processor using the first value provided by the PUF;
And a memory device for storing the data.
제1항에 있어서,
상기 스크램블러는 상기 제1 값을 이용하여 상기 프로세서와 상기 메모리 사이의 어드레스 스크램블을 수행하는 어드레스 스크램블러를 포함하는 메모리 데이터 보안 처리 장치.
The method according to claim 1,
Wherein the scrambler comprises an address scrambler for performing address scrambling between the processor and the memory using the first value.
제1항에 있어서,
상기 스크램블러는 상기 제1 값을 이용하여 상기 프로세서와 상기 메모리 사이의 데이터 스크램블을 수행하는 데이터 스크램블러를 포함하는 메모리 데이터 보안 처리 장치.
The method according to claim 1,
Wherein the scrambler comprises a data scrambler that scrambles data between the processor and the memory using the first value.
칩에 포함되는 PUF가 반도체 공정 편차에서 기인하는 예측 불가능한 무작위의 시불변 디지털 값인 제1 값을 제공하는 단계; 및
상기 칩에 포함되는 스크램블러가 상기 PUF가 제공하는 상기 제1 값을 이용하여 프로세서와 상기 프로세서에 연관되는 메모리 사이의 메모리 사이에서 스크램블 처리하는 스크램블 단계
를 포함하는 메모리 데이터 보안 처리 방법.
Providing a PUF included in the chip a first value which is an unpredictable random time-invariant digital value resulting from a semiconductor process variation; And
A scrambler included in the chip scrambling between memories between a processor and a memory associated with the processor using the first value provided by the PUF;
The method comprising the steps of:
제4항에 있어서,
상기 스크램블 단계는, 상기 칩에 포함되는 어드레스 스크램블러가 상기 제1 값을 이용하여 상기 프로세서와 상기 메모리 사이의 어드레스 스크램블을 수행하는 단계를 포함하는 메모리 데이터 보안 처리 방법.
5. The method of claim 4,
Wherein the scrambling step comprises an address scrambler included in the chip performing address scrambling between the processor and the memory using the first value.
제4항에 있어서,
상기 스크램블 단계는, 상기 칩에 포함되는 데이터 스크램블러가 상기 제1 값을 이용하여 상기 프로세서와 상기 메모리 사이의 데이터 스크램블을 수행하는 단계를 포함하는 메모리 데이터 보안 처리 방법.
5. The method of claim 4,
Wherein the scrambling step comprises a data scrambler included in the chip performing data scrambling between the processor and the memory using the first value.
제4항 내지 제6항 중 어느 한 항의 메모리 데이터 보안 처리 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium storing a program for performing the memory data security processing method according to any one of claims 4 to 6.
KR1020160158518A 2016-11-25 2016-11-25 Apparatus and method for secure processing of memory data KR20180059217A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160158518A KR20180059217A (en) 2016-11-25 2016-11-25 Apparatus and method for secure processing of memory data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160158518A KR20180059217A (en) 2016-11-25 2016-11-25 Apparatus and method for secure processing of memory data

Publications (1)

Publication Number Publication Date
KR20180059217A true KR20180059217A (en) 2018-06-04

Family

ID=62628003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160158518A KR20180059217A (en) 2016-11-25 2016-11-25 Apparatus and method for secure processing of memory data

Country Status (1)

Country Link
KR (1) KR20180059217A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020139690A1 (en) * 2018-12-28 2020-07-02 Micron Technology, Inc. Physical unclonable function (puf) with nand memory array
KR20210083999A (en) * 2019-12-27 2021-07-07 주식회사 안랩 Security device and security method for cryptocurrency wallet
US11295805B2 (en) 2020-04-20 2022-04-05 Samsung Electronics Co., Ltd. Memory modules and stacked memory devices

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020139690A1 (en) * 2018-12-28 2020-07-02 Micron Technology, Inc. Physical unclonable function (puf) with nand memory array
US11469909B2 (en) 2018-12-28 2022-10-11 Micron Technology, Inc. Physical unclonable function with NAND memory array
US11722323B2 (en) 2018-12-28 2023-08-08 Micron Technology, Inc. Physical unclonable function with NAND memory array
KR20210083999A (en) * 2019-12-27 2021-07-07 주식회사 안랩 Security device and security method for cryptocurrency wallet
US11295805B2 (en) 2020-04-20 2022-04-05 Samsung Electronics Co., Ltd. Memory modules and stacked memory devices

Similar Documents

Publication Publication Date Title
TWI715619B (en) Processor, method and system for hardware enforced one-way cryptography
KR102013841B1 (en) Method of managing key for secure storage of data, and and apparatus there-of
KR102113937B1 (en) Memory integrity
US9432184B2 (en) Provisioning of secure storage for both static and dynamic rules for cryptographic key information
CN108449172B (en) Encryption/decryption method and integrated circuit of computing device
US20170046281A1 (en) Address dependent data encryption
US9135450B2 (en) Systems and methods for protecting symmetric encryption keys
US8745411B2 (en) Protecting external volatile memories using low latency encryption/decryption
US9501429B2 (en) Dynamic key and rule storage protection
US8036379B2 (en) Cryptographic processing
US9183414B2 (en) Memory controller and memory device including the memory controller
JP2010509662A (en) Method and system for encryption of information stored in external non-volatile memory
EP3319265B1 (en) Configuration based cryptographic key generation
US10452564B2 (en) Format preserving encryption of object code
JP2007213478A (en) Semiconductor memory and method of data access
US11783094B2 (en) System and method for providing protected data storage in data memory
US20170046280A1 (en) Data processing device and method for protecting a data processing device against attacks
US9729319B2 (en) Key management for on-the-fly hardware decryption within integrated circuits
TW201918923A (en) Secure logic system and method for operating a secure logic system
KR20180059217A (en) Apparatus and method for secure processing of memory data
KR101126596B1 (en) Dual mode aes implementation to support single and multiple aes operations
US11061996B2 (en) Intrinsic authentication of program code
CN113536331A (en) Data security for memory and computing systems
JP2004280678A (en) Data processor and data processing method
JP2009075474A (en) Cryptography processor

Legal Events

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