KR20200097381A - Updating cryptographic keys stored in non-volatile memory - Google Patents

Updating cryptographic keys stored in non-volatile memory Download PDF

Info

Publication number
KR20200097381A
KR20200097381A KR1020190014578A KR20190014578A KR20200097381A KR 20200097381 A KR20200097381 A KR 20200097381A KR 1020190014578 A KR1020190014578 A KR 1020190014578A KR 20190014578 A KR20190014578 A KR 20190014578A KR 20200097381 A KR20200097381 A KR 20200097381A
Authority
KR
South Korea
Prior art keywords
bit
encryption key
random
binary value
processor
Prior art date
Application number
KR1020190014578A
Other languages
Korean (ko)
Other versions
KR102313584B1 (en
Inventor
우리 칼루즈니
마크 루코
Original Assignee
윈본드 일렉트로닉스 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윈본드 일렉트로닉스 코포레이션 filed Critical 윈본드 일렉트로닉스 코포레이션
Priority to KR1020190014578A priority Critical patent/KR102313584B1/en
Publication of KR20200097381A publication Critical patent/KR20200097381A/en
Application granted granted Critical
Publication of KR102313584B1 publication Critical patent/KR102313584B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Abstract

Provided is a method for creating a new instance of an N-bit encryption key for storing non-programed cells in a nonvolatile memory having a specific binary value. According to the present invention, the method comprises the steps of: generating a random N-bit updating sequence; and creating a new instance of an N-bit encryption key by invalidating each bit in the current instance of the N-bit encryption key having a specific binary value that is different from the bit at a corresponding position in the random N-bit updating sequence, without invalidating any bits in the current instance of the N-bit encryption key that does not have a specific binary value.

Description

비-휘발성 메모리에 저장된 암호키 업데이트{UPDATING CRYPTOGRAPHIC KEYS STORED IN NON-VOLATILE MEMORY}Updating encryption keys stored in non-volatile memory {UPDATING CRYPTOGRAPHIC KEYS STORED IN NON-VOLATILE MEMORY}

본 발명은 사이버 보안(cybersecurity)에 관한 것으로, 특히 통신을 암호화하는 데 이용되는 암호키들에 관한 것이다.The present invention relates to cybersecurity, and more particularly to cryptographic keys used to encrypt communications.

N-비트 암호키의 엔트로피 H(N,p) = H(N,1-p)는 키의 랜덤성을 정량화한다. 여기서, p는 키 내 비트들 중 임의의 하나가 0 또는 1일 확률이다. 높은 엔트로피의 키는 낮은 엔트로피의 키보다 보안이 높다. 랜덤성, 독립성 및 동등하게 분포된 (iid) 비트들을 갖는 키들에 대해, H(N,p) = NH(p) 비트들, 여기서 H(p) = -(plog2p + (1-p)log2(1-p))(For keys having bits that are random, independent, and identically distributed (iid), H(N,p) = NH(p) bits, where H(p) = -(plog2p + (1-p)log2(1-p))). 예를 들어, 언바이어스 iid 비트들에 대해(p = 0.5), H(p)는 H(N,p) = N이 되도록, 하나의 최고값을 얻는다.The entropy H(N,p) = H(N,1-p) of the N-bit encryption key quantifies the randomness of the key. Here, p is the probability that any one of the bits in the key is 0 or 1. Higher entropy keys are more secure than lower entropy keys. For keys with randomness, independence and equally distributed (iid) bits, H(N,p) = NH(p) bits, where H(p) = -(plog 2 p + (1-p) log 2 (1-p))(For keys having bits that are random, independent, and identically distributed (iid), H(N,p) = NH(p) bits, where H(p) = -(plog 2 p + (1-p)log 2 (1-p))). For example, for unbiased iid bits (p = 0.5), one highest value is obtained such that H(p) becomes H(N,p) = N.

비-활성화 메모리(NVM; non-volatile memory)는 복수의 단일-비트 메모리 셀들을 포함하고, 각각의 단일-비트 메모리 셀들은 프로그램된 상태 또는 비 프로그램된 상태일 수 있다. 통상적으로, 프로그램된 셀은 이진 값 0을 가지는 반면, 비 프로그램된 셀은 이진 값 1을 가진다. OTP NVM(one-time programmable NVM)에서, 프로그래밍 동작은 취소될 수 없으며, 즉, 프로그램된 셀은 후속적으로 디프로그램(deprogram)(또는, "삭제")될 수 없다.A non-volatile memory (NVM) includes a plurality of single-bit memory cells, and each of the single-bit memory cells may be in a programmed state or a non-programmed state. Typically, a programmed cell has a binary value of 0, while an unprogrammed cell has a binary value of 1. In OTP one-time programmable NVM (NVM), the programming operation cannot be canceled, that is, the programmed cell cannot be subsequently deprogrammed (or “erased”).

본 발명의 일부 실시예들에 따라 비 프로그램된 셀들이 특정 이진 값을 갖는, 디바이스에 속하는 비-휘발성 메모리(NVM)에 저장하기 위한 N-비트 암호키의 새로운 인스턴스를 생성하는 장치가 제공된다. 장치는 네트워크 인터페이스 및 프로세서를 포함한다. 프로세서는 랜덤 N-비트 업데이팅 시퀀스를 생성하도록 구성된다. 프로세서는 특정 이진 값을 갖지 않는 N-비트 암호키의 현재 인스턴스 내 어떤 비트들도 무효화하지 않으면서, 랜덤 N-비트 업데이팅 시퀀스 내 대응하는 위치의 비트(correspondingly-positioned bit)와 상이하고, 특정 이진 값을 갖는 N-비트 암호키의 현재 인스턴스 내 각 비트를 무효화함으로써, N-비트 암호키의 새로운 인스턴스를 성성하도록 더 구성된다. 프로세서는 네트워크 인터페이스를 이용하여, N-비트 암호키의 새로운 인스턴스를 생성한 후, NVM so 저장을 위해 디바이스로 N-비트 암호키의 새로운 인스턴스를 통신하도록 더 구성된다.An apparatus for generating a new instance of an N-bit encryption key for storage in a non-volatile memory (NVM) belonging to a device in which unprogrammed cells have a specific binary value according to some embodiments of the present invention is provided. The device includes a network interface and a processor. The processor is configured to generate a random N-bit updating sequence. The processor is different from the correspondingly-positioned bit in the random N-bit updating sequence, while not invalidating any bits in the current instance of the N-bit encryption key that does not have a specific binary value. It is further configured to generate a new instance of the N-bit encryption key by invalidating each bit in the current instance of the N-bit encryption key having a binary value. The processor is further configured to create a new instance of the N-bit encryption key, using the network interface, and then communicate the new instance of the N-bit encryption key to the device for NVM so storage.

일부 실시예들에서, 특정 이진 값은 1이고, 프로세서는 N-비트 암호키 및 랜덤 N-비트 업데이팅 시퀀스 간 비트와이즈 AND 연산(bitwise AND operation)을 수행함으로써, 랜덤 N-비트 업데이팅 시퀀스 내 대응하는 위치의 비트와 상이하고, 특정 이진 값을 갖는 N-비트 암호키의 현재 인스턴스 내 각 비트를 무효화하도록 구성된다.In some embodiments, the specific binary value is 1, and the processor performs a bitwise AND operation between the N-bit encryption key and the random N-bit updating sequence, thereby It is configured to invalidate each bit in the current instance of the N-bit encryption key that is different from the bit in the corresponding position and has a specific binary value.

일부 실시예들에서, 특정 이진 값은 0이고, 프로세서는 In some embodiments, the specific binary value is 0, and the processor

N-비트 암호키의 현재 인스턴스 및 랜덤 N-비트 업데이팅 시퀀스 간 비트와이즈 OR 연산을 수행함으로써, 랜덤 N-비트 업데이팅 시퀀스 내 대응하는 위치의 비트와 상이하고, 특정 이진 값을 갖는 N-비트 암호키의 현재 인스턴스 내 각 비트를 무효화하도록 구성된다.By performing a bitwise OR operation between the current instance of the N-bit encryption key and the random N-bit updating sequence, N-bits that are different from the bits at the corresponding positions in the random N-bit updating sequence and have a specific binary value It is configured to invalidate each bit in the current instance of the encryption key.

일부 실시예들에서, 프로세서는 0.5보다 큰 특정 이진 값을 가질 확률로 랜덤 N-비트 업데이팅 시퀀스 내 각 비트를 생성하도록 구성된다.In some embodiments, the processor is configured to generate each bit in the random N-bit updating sequence with a probability of having a specific binary value greater than 0.5.

일부 실시예들에서,In some embodiments,

확률은 미리 결정된 정수 m 및 가변 정수 n에 대해 n/2m과 동일하고,The probability is equal to n/2 m for a predetermined integer m and a variable integer n,

프로세서는 The processor is

E 비트들을 갖는 언바이어스 랜덤 시드(unbiased random seed)를 랜덤 N-비트 업데이팅 시퀀스의 비트들에 각각 대응하는 N개의 m-비트 시퀀스로 확장하고,Expanding an unbiased random seed having E bits into N m-bit sequences each corresponding to bits of the random N-bit updating sequence,

랜덤 N-비트 업데이팅 시퀀스 내 각 비트에 대해, 대응하는 m-비트 시퀀스의 값이 n보다 작은 것에 응답하여 특정 이진 값으로 비트를 설정함으로써,For each bit in the random N-bit updating sequence, by setting the bit to a specific binary value in response to the value of the corresponding m-bit sequence being less than n,

랜덤 N-비트 업데이팅 시퀀스를 생성하도록 구성된다.It is configured to generate a random N-bit updating sequence.

일부 실시예들에서, 프로세서는 N-비트 암호키의 새로운 인스턴스를 디바이스로 통신한 후에, 디바이스와의 통신을 암호화(encrypting) 및 복호화(decrypting)를 위한 N-비트 암호키의 새로운 인스턴스를 이용하도록 더 구성된다.In some embodiments, after communicating the new instance of the N-bit encryption key to the device, the processor is configured to use the new instance of the N-bit encryption key for encrypting and decrypting the communication with the device. More structured.

일부 실시예들에서, 프로세서는 N-비트 암호키의 새로운 인스턴스를 디바이스로 통신하기에 앞서, N-비트 암호키의 현재 인스턴스를 이용하여 N-비트 암호키의 새로운 인스턴스를 암호화하도록 더 구성된다.In some embodiments, the processor is further configured to encrypt the new instance of the N-bit encryption key using the current instance of the N-bit encryption key prior to communicating the new instance of the N-bit encryption key to the device.

본 발명의 일부 실시예들에 따르면, 특정 이진 값을 갖는 셀들 중 비 프로그램된 것들, N-비트 암호키를 저장하도록 구성된 복수의 단일-비트 셀들(plurality of single-bit cells)을 포함하는 비-휘발성 메모리(NVM) 및 프로세서를 포함하는 장치가 더 제공된다. 프로세서는 랜덤 N-비트 업데이팅 시퀀스를 생성하도록 구성된다. 프로세서는 특정 이진 값을 갖지 않는 N-비트 암호키의 현재 인스턴스 내 어떤 비트들도 무효화하지 않으면서, 랜덤 N-비트 업데이팅 시퀀스 내 대응하는 위치의 비트와 상이하고, 특정 이진 값을 갖는 N-비트 암호키의 현재 인스턴스 내 각 비트를 무효화함으로써, N-비트 암호키의 새로운 인스턴스를 생성하도록 더 구성된다. 프로세서는 N-비트 암호키의 새로운 인스턴스를 생성한 후에, NVM 내 N-비트 암호키의 새로운 인스턴스로 N-비트 암호키의 현재 인스턴스를 대체하도록 구성된다.According to some embodiments of the present invention, non-programmed ones of cells having a specific binary value, non-including plurality of single-bit cells configured to store an N-bit encryption key. An apparatus comprising a volatile memory (NVM) and a processor is further provided. The processor is configured to generate a random N-bit updating sequence. The processor differs from the bit at the corresponding position in the random N-bit updating sequence, and does not invalidate any bits in the current instance of the N-bit encryption key that do not have a specific binary value, and N-bits with a specific binary value. It is further configured to create a new instance of the N-bit encryption key by invalidating each bit in the current instance of the bit encryption key. The processor is configured to create a new instance of the N-bit encryption key and then replace the current instance of the N-bit encryption key with a new instance of the N-bit encryption key in the NVM.

일부 실시예들에서,In some embodiments,

프로세서는 특정 이진 값을 가질 특정 확률로 랜덤 N-비트 업데이팅 시퀀스 내 각 비트를 생성하도록 구성되고,The processor is configured to generate each bit in the random N-bit updating sequence with a specific probability to have a specific binary value,

프로세서는 키의 현재 인스턴스에 대한 키의 새로운 인스턴스의 예상 엔트로피가 N보다 작은 미리 정의된 임계치 E보다 작지 않도록, 랜덤 N-비트 업데이팅 시퀀스를 생성하기에 앞서, 특정 확률을 계산하도록 더 구성된다.The processor is further configured to calculate a specific probability prior to generating the random N-bit updating sequence such that the expected entropy of the new instance of the key for the current instance of the key is not less than a predefined threshold E less than N.

일부 실시예들에서, 특정 확률은 0.5보다 크다.In some embodiments, the specific probability is greater than 0.5.

본 발명의 일부 실시예들에 따르면, 비 프로그램된 셀들이 특정 이진 값을 갖는 비-휘발성 메모리(NVM)에 저장하기 위한 N-비트 암호키의 새로운 인스턴스를 생성하는 방법이 더 제공된다. 방법은 랜덤 N-비트 업데이팅 시퀀스를 생성하는 단계 및 특정 이진 값을 갖지 않는 N-비트 암호키의 현재 인스턴스 내 어떤 비트들도 무효화하지 않으면서, 랜덤 N-비트 업데이팅 시퀀스 내 대응하는 위치의 비트와 상이하고, 특정 이진 값을 갖는 N-비트 암호키의 현재 인스턴스 내 각 비트를 무효화함으로써, N-비트 암호키의 새로운 인스턴스를 생성하는 단계를 포함한다.According to some embodiments of the present invention, there is further provided a method of generating a new instance of an N-bit encryption key for storing non-programmed cells in a non-volatile memory (NVM) having a specific binary value. The method comprises the steps of generating a random N-bit updating sequence and of a corresponding position in the random N-bit updating sequence, without invalidating any bits in the current instance of the N-bit cryptographic key having a specific binary value. Creating a new instance of the N-bit encryption key by invalidating each bit in the current instance of the N-bit encryption key that is different from the bit and has a specific binary value.

일부 실시예들에서, 랜덤 N-비트 업데이팅 시퀀스를 생성하는 단계는 0.5보다 큰 특정 이진 값을 가질 확률로 랜덤 N-비트 업데이팅 시퀀스 내 각 비트를 생성하는 단계를 포함한다.In some embodiments, generating the random N-bit updating sequence includes generating each bit in the random N-bit updating sequence with a probability of having a specific binary value greater than 0.5.

일부 실시예들에서, 방법은 랜덤 N-비트 업데이팅 시퀀스를 생성하기에 앞서, 특정 이진 값을 갖는 N-비트 암호키의 현재 인스턴스 내 비트들의 넘버 N1을 식별하는 단계; q에 대해 -(qlog2q + (1-q)log2(1-q)) = E/N1를 푸는 단계 -E는 미리 정의된 엔트로피 임계치 -; 및 q로부터 확률을 도출(deriving)하는 단계를 더 포함한다.In some embodiments, the method further includes, prior to generating a random N-bit updating sequence, identifying a number N1 of bits in a current instance of an N-bit encryption key having a specific binary value; for q -(qlog 2 q + (1-q) log 2 (1-q)) = step of solving E/N1 -E is a predefined entropy threshold -; And deriving the probability from q.

일부 실시예들에서, q로부터 확률을 도출하는 단계는 확률을 q로 설정함으로써, q로부터 확률을 도출하는 단계를 포함한다.In some embodiments, deriving a probability from q includes deriving a probability from q by setting the probability to q.

일부 실시예들에서, q로부터 확률을 도출하는 단계는 확률을 q보다 크지 않은 최고값 n/2m으로 설정함으로써, q로부터 확률을 도출하는 단계를 포함한다. 여기서, m은 미리 결정된 정수이고, n은 가변 정수이다.In some embodiments, deriving the probability from q includes deriving the probability from q by setting the probability to a maximum value n/2 m not greater than q. Here, m is a predetermined integer and n is a variable integer.

일부 실시예들에서, 방법은 랜덤 N-비트 업데이팅 시퀀스를 생성하기에 앞서,In some embodiments, the method prior to generating the random N-bit updating sequence,

특정 이진 값을 갖는 N-비트 암호키의 현재 인스턴스 내 비트들의 넘버 N1을 식별하는 단계; 및Identifying a number N1 of bits in the current instance of the N-bit encryption key having a specific binary value; And

-(qlog2q + (1-q)log2(1-q))가 E/N1보다 작지 않는 q의 다중 미리 정의된 값들 중 최대 값으로 확률을 설정하는 단계를 더 포함한다. 여기서, E는 미리 정의된 엔트로피 임계치이다.-(qlog 2 q + (1-q) log 2 (1-q)) is not less than E/N1, further comprising the step of setting the probability as a maximum value among multiple predefined values of q. Here, E is a predefined entropy threshold.

본 발명의 일부 실시예들에 따르면, 비 프로그램된 셀들이 특정 이진 값을 갖는 비-휘발성 메모리(NVM) 내 N-비트 암호키의 다중 업데이트들을 가능하게 하는 방법이 더 제공된다. 방법은 업데이트들의 각 i번째 업데이트에 대해서, N-비트 암호키의 현재 인스턴스에 대해 N-비트 암호키의 새로운 인스턴스의 예상 엔트로피가 N보다 작은 미리 정의된 임계치 E보다 작지 않도록, 업데이트들에 대해 상이한 각각의 확률 {qi}(i = 1??U)를 계산하는 단계를 포함한다. 여기서, (i) N-비트 암호키의 새로운 인스턴스는 특정 이진 값을 갖지 않는 N-비트 암호키의 현재 인스턴스 내 어떤 비트들도 무효화하지 않으면서, N-비트 랜덤 업데이팅 시퀀스 내 대응하는 위치의 비트와 상이하고, 특정 이진 값을 갖는 N-비트 암호키의 현재 인스턴스 내 각 비트를 무효화함으로써, 생성되고, (ii) N-비트 랜덤 업데이팅 시퀀스 내 각 비트는 특정 이진 값을 갖는 확률 qi로 생성된다. 방법은 확률들을 계산한 후에 업데이트들을 수행하는 데 이용될 확률들을 제공하는 단계를 더 포함한다.According to some embodiments of the present invention, a method is further provided that enables multiple updates of an N-bit encryption key in a non-volatile memory (NVM) in which non-programmed cells have a specific binary value. The method is different for updates, such that for each i-th update of the updates, the expected entropy of the new instance of the N-bit encryption key for the current instance of the N-bit encryption key is not less than a predefined threshold E less than N. And calculating each probability {q i }(i = 1??U). Here, (i) a new instance of the N-bit encryption key is located at a corresponding position in the N-bit random updating sequence, without invalidating any bits in the current instance of the N-bit encryption key having a specific binary value. Generated by invalidating each bit in the current instance of the N-bit encryption key that is different from the bit and has a specific binary value, and (ii) the probability that each bit in the N-bit random updating sequence has a specific binary value q i Is created with The method further includes providing probabilities that will be used to perform the updates after calculating probabilities.

일부 실시예들에서, 확률들 각각은 0.5보다 크다.In some embodiments, each of the probabilities is greater than 0.5.

일부 실시예들에서, 확률들을 계산하는 단계는 업데이트들 중 각 i번째 업데이트에 대해, q에 대해

Figure pat00001
을 푸는 단계(여기서, q0는 1) 및 q로부터 qi를 도출하는 단계를 포함한다.In some embodiments, calculating the probabilities comprises, for each i-th update of the updates, for q
Figure pat00001
Solving (where q 0 is 1) and deriving q i from q.

일부 실시예들에서, q로부터 qi를 도출하는 단계는 qi를 q로 설정함으로써, q로부터 qi를 도출하는 단계를 포함한다.By setting the In some embodiments, deriving the q i q from the q i to q, and a step of deriving from q i q.

일부 실시예들에서, q로부터 qi를 도출하는 단계는 q보다 크지 않은 최고값 n/2m으로 qi를 설정함으로써, q로부터 qi를 도출하는 단계를 포함한다. 여기서, m은 미리 결정된 정수이고, n은 가변 정수이다.By setting the In some embodiments, deriving from q i q is the maximum value n / 2 m is not greater than q q i, and a step of deriving from q i q. Here, m is a predetermined integer and n is a variable integer.

일부 실시예들에서, 확률들을 계산하는 단계는 업데이트들의 각 i번째 업데이트에 대해, -(qlog2q + (1-q)log2(1-q))가

Figure pat00002
보다 작지 않은 q의 다중 미리 정의된 값들 중 최대값으로 qi를 설정하는 단계를 포함한다. 여기서, q0은 1이다.In some embodiments, calculating the probabilities comprises, for each i-th update of the updates, -(qlog 2 q + (1-q)log 2 (1-q)) is
Figure pat00002
And setting q i to a maximum value among multiple predefined values of q not less than. Here, q0 is 1.

본 발명은 도면들과 함께 이하의 실시예들에 대한 상세한 설명으로부터 보다 충분히 이해될 것이다.The invention will be more fully understood from the detailed description of the following embodiments in conjunction with the drawings.

도 1은 본 발명의 일부 실시예들에 따른 암호키를 업데이팅하는 시스템의 개략도이다.
도 2는 본 발명의 일부 실시예들에 따른 암호키의 새로운 인스턴스의 생성의 개략도이다.
도 3은 본 발명의 일부 실시예들에 따른 랜덤 시퀀스를 생성하는 기법의 개략도이다.
도 4는 본 발명의 일부 실시예들에 따른 비트-생성 확률을 계산하는 기법의 개략도이다.
도 5는 본 발명의 일부 실시예들에 따른 암호키의 다중 업데이트들을 가능하게 하는 방법의 개략도이다.
1 is a schematic diagram of a system for updating an encryption key according to some embodiments of the present invention.
2 is a schematic diagram of creation of a new instance of an encryption key according to some embodiments of the present invention.
3 is a schematic diagram of a technique for generating a random sequence according to some embodiments of the present invention.
4 is a schematic diagram of a technique for calculating a bit-generation probability according to some embodiments of the present invention.
5 is a schematic diagram of a method for enabling multiple updates of an encryption key according to some embodiments of the present invention.

도입Introduction

청구범위를 포함하는 본원의 컨텍스트에서, 암호키의 "업데이팅"은 (i) 키의 새로운 인스턴스의 계산, (ii) 메모리 내 키의 새로운 인스턴스와 함께 키의 현재 인스턴스의 대체, 또는 (iii) (i)과 (ii) 모두를 지칭할 수 있다.In the context of the present application, including the claims, "update" of an encryption key means (i) calculation of a new instance of the key, (ii) replacement of the current instance of the key with a new instance of the key in memory, or (iii) It may refer to both (i) and (ii).

본 명세서는 일반적으로, NVM에서, 프로그램된 셀들이 이진 값 0을 갖는 반면, 비 프로그램된 셀들이 이진 값 1을 갖는다고 가정한다. 그러나, 도 2를 참조하여 이하에서 명시적으로 언급되는 바와 같이, 여기서 기술된 기법들은 역방향 협정(reverse convention)을 이용하는 NVM들에서도 활용될 수 있다.This specification generally assumes that in NVM, programmed cells have a binary value of 0, while non-programmed cells have a binary value of 1. However, as explicitly mentioned below with reference to FIG. 2, the techniques described herein may also be utilized in NVMs using a reverse convention.

개요summary

비-휘발성 메모리에서 암호키를 업데이팅하는 것은 어려울 수 있다. 예를 들어, 발명의 배경이 되는 기술에서 상술한 바와 같이, OTP NVM은 소거를 허용하지 않는다. 게다가, 소거를 허용하는 다른 타입들의 비-휘발성 메모리에 대해서도 업데이트 동작은 불안정할 수 있으며, 공격자는 키의 현재 값을 소거한 후 및 키의 새로운 값을 기록하기 전에 동작을 종료시킬 수 있으므로, 키를 알려진 비 프로그램된 상태로 "동결(freezing)"시킨다.It can be difficult to update the encryption key in non-volatile memory. For example, as described above in the technology behind the invention, the OTP NVM does not allow erasure. In addition, for other types of non-volatile memory that allows for erasure, the update operation can be unstable, and an attacker can terminate the operation after erasing the current value of the key and before writing the new value of the key. Is "freezing" to a known unprogrammed state.

이러한 과제를 해결하기 위해, 본 발명의 실시예들은 임의의 (프로그램된) 0 비트들도 변경하지 않으면서, 키 내 (비 프로그램된) 1비트들만을 변경시킴으로써 키를 업데이트한다. 특히, 키의 현재 N-비트 인스턴스 Ki(이하, "Ki"로 나타낸다)가 주어지면, 비트들 Si의 N-비트 랜덤 시퀀스(이하, "Si"로 나타낸다)가 생성되고, 그리고 키의 새로운 인스턴스 Ki+1(이하, "Ki+1"로 나타낸다)가 Ki 및 Si 간 비트와이즈 AND 연산 또는 임의의 등가 연산을 수행함으로써 계산된다. 키의 새로운 인스턴스가 현재 인스턴스에 대해 충분한 엔트로피를 갖음을 보장하기 위해(즉, Ki에 대한 지식이 있는 공격자가 Ki+1을 추측하는 데 충분한 어려움이 있음을 보장하기 위해), 키의 길이 N은 0 비트들 및 1 비트들이 모두 업데이트되어야 하는 경우보다 길어진다.To solve this problem, embodiments of the present invention update the key by changing only the (unprogrammed) 1 bits in the key, without changing any (programmed) 0 bits. In particular, given the current N-bit instance K i of the key (hereinafter referred to as “K i ”), an N-bit random sequence of bits S i (hereinafter referred to as “S i ”) is generated, and A new instance of the key K i+1 (hereinafter referred to as “K i+1 ”) is calculated by performing a bitwise AND operation or any equivalent operation between K i and S i . (To ensure that there is enough hard An attacker with knowledge of words, K i to assume the K i + 1), a new instance of the keys to ensure gateum enough entropy for the current instance, the length of the key N becomes longer than if both 0 bits and 1 bits should be updated.

(다른 기술적인 규칙(alternate descriptive convention)를 이용하여, Ki 및 Ki+1은 동일한 키의 상이한 인스턴스들 또는 값들로서가 아니라, 상이한 키들로 지칭될 수 있음을 주목해야 한다. 그러므로, 예를 들어, Ki+1이 Ki를 대체하는 새로운 키라고 말할 수 있다.)(It should be noted that, using an alternate descriptive convention, K i and K i+1 may be referred to as different keys, not as different instances or values of the same key. Therefore, for example, For example, we can say that K i+1 is the new key to replace K i .)

통상적으로, 가능한 많은 업데이트들을 허용하기 위해, Si는 1과 동일한 Si 내 각 비트에 대한 확률 qi(이하, "qi"로 나타낸다)가 0.5보다 큰 경우에 편향적으로 생성된다. (일부 케이스들에서, 키의 최종 업데이트를 위해, qi는 정확히 0.5일 수 있다.) 특히, 요구되는 엔트로피를 제공하는 최대 qi 값은 수치적으로 계산되고, 이러한 최대 값은 Si를 생성하는 데 이용된다.Typically, in order to allow a number of possible update, it S i is an (indicated below, "q i") probability q i for each bit within the same S i and 1 are generated by biased to greater than 0.5. (In some cases, for the final update of the key, q i can be exactly 0.5.) In particular, the maximum q i value that gives the required entropy is calculated numerically, and this maximum value generates S i Used to do.

일부 실시예들에서, 각 qi 값은 현재 키 Ki를 고려하여, i번째 업데이트 직전에 계산된다. 도입에 의해, Ki가 주어진 경우, Ki+1의 엔트로피는 N1i*H(qi)와 동일하며, N1i는 Ki 내 1 비트들의 개수이고, H(qi) = -(qilog2qi + (1-qi)log2(1-qi))이다. 이 엔트로피가 특정 임계치 E(이하, "E"로 나타낸다)보다 크거나 같기 위해서는, H(qi)는 E/N1i보다 크거나 같아야 한다. 그러므로, i번째 업데이트 전에, 양(quantity) E/N1i가 계산될 수 있다. 이어서, E/N1i가 1(H(q)의 최대 가능한 값)보다 작거나 같으면, 수학식 H(q) = E/N1i가 q에 대해 수치적으로 풀릴 수 있다. (이 솔루션이 계산되는 정확도는 이용된 수치 계산법(numerical method)과 그 계산법이 구현되는 방식에 의해 결정될 수 있음을 주목해야 한다. 이 수학식에 대한 해 qi* 또는 qi*보다 작은 가장 가까운 적합한 값은 qi의 값으로 이용될 수 있다.In some embodiments, each q i value is calculated just before the i th update, taking into account the current key K i . By introduction, when K i is given, the entropy of K i+1 is equal to N1 i *H(q i ), N1 i is the number of 1 bits in K i , and H(q i ) = -(q i log 2 q i + (1-q i ) log 2 (1-q i )). In order for this entropy to be greater than or equal to a specific threshold E (hereinafter referred to as “E”), H(q i ) must be greater than or equal to E/N1 i . Therefore, before the i th update, the quantity E/N1 i can be calculated. Then, if E/N1i is less than or equal to 1 (the maximum possible value of H(q)), the equation H(q) = E/N1 i can be solved numerically with respect to q. (It should be noted that the accuracy with which this solution is calculated can be determined by the numerical method used and the manner in which it is implemented. The solution to this equation is q i * or the closest less than q i *. A suitable value can be used as the value of q i .

다른 실시예들에서, 키의 U 업데이트들을 수행하는 데 이용하기 위한 qi 값들 {q1, q2, ... qU}의 세트는 임의의 업데이트들을 수행하기 전에 미리 계산된다. 이 계산을 위해, N1i,

Figure pat00003
(여기서, q0는 1),의 기대값은 Ki가 주어진 Ki+1의 엔트로피를 추정하는 데 이용되므로, 요구되는 엔트로피 E를 획득하기 위해 H(qi)은
Figure pat00004
보다 크거나 같아야 한다. (이 양은
Figure pat00005
(여기서,
Figure pat00006
= E/N)로 보다 간결하게 작성될 수 있다.) qi 값들은
Figure pat00007
이 1보다 큰 것으로 (i=U+1) 확인될 때까지 q1으로 시작하여 반복적으로 풀릴 수 있다.In other embodiments, the set of q i values {q 1 , q 2 , ... q U } for use in performing U updates of the key is pre-computed before performing any updates. For this calculation, N1 i ,
Figure pat00003
(Wherein, q is 0. 1), the expected value of H (q i), because used for estimating the entropy of the K i + 1 is given K i, to obtain the required entropy E which is
Figure pat00004
Must be greater than or equal to (This amount is
Figure pat00005
(here,
Figure pat00006
= E/N) can be written more concisely.) q i values are
Figure pat00007
It can be solved iteratively starting with q 1 until it is confirmed to be greater than 1 (i=U+1).

통상적으로, Si 생성을 가능하게 하기 위해, qi는 미리 결정된 정수 m 및 가변 정수 n에 대한 n/2m의 형태이다. Si을 생성하기 위해, E 비트들을 포함하는 언바이어스 랜덤 시드 Xi(이하, "Xi"로 나타낸다)가 생성되거나 또는 획득된다. 그 후, Xi는 - 예를 들어, 해시 함수(hash function)을 이용하여 - Si의 N 비트들에 각각 대응하는 N개의 m-비트 시퀀스들로 확장된다. 이어서, 각 m-비트 시퀀스의 값은 n과 비교된다. 만약 값이 n보다 작으면 Si 내 대응하는 비트는 1로 설정되고, 그렇지 않으면 비트는 0으로 설정된다.Typically, in order to enable the S i generated, q i is in the form of a n / 2 m for a predetermined integer n, and m an integer variable. To generate S i , an unbiased random seed X i (hereinafter referred to as “X i ”) including E bits is generated or obtained. Then, X i is expanded into N m-bit sequences each corresponding to the N bits of S i -eg, using a hash function. Then, the value of each m-bit sequence is compared to n. If the bit value is less than n corresponding in S i is set to 1, otherwise the bit is set to zero.

시스템 설명System description

먼저, 본 발명의 일부 실시예들에 따른 암호키를 업데이트하기 위한 시스템(20)의 개략도인 도 1을 참조한다. 도 1에 도시된 특정 실시예에서, N-비트 암호키 "K"는 인터넷(24)를 통해 ISP(Internet service provider) 및 IoT(Internet of Things) 장치(22) 간 통신을 암호화하는 데 이용된다.First, reference is made to Fig. 1, which is a schematic diagram of a system 20 for updating an encryption key according to some embodiments of the present invention. In the specific embodiment shown in FIG. 1, the N-bit encryption key "K" is used to encrypt communication between an Internet service provider (ISP) and an Internet of Things (IoT) device 22 via the Internet 24. .

일반적으로, 장치(22)가 동일한 ISP와 함께 유지되고, 키의 보안이 손상되지 않는다면, 키를 업데이트할 필요가 없다. 그러나, 장치(22)가 다른 ISP로 스위치하거나, 또는 키의 보안이 손상되는 경우, 키를 업데이트할 필요가 있을 수 있다.In general, if the device 22 is kept with the same ISP and the security of the key is not compromised, there is no need to update the key. However, if the device 22 switches to another ISP, or the security of the key is compromised, it may be necessary to update the key.

예를 들어, 도 1은 장치(22)가 제1 ISP(26a)에 의해 서비스되었지만, 이후로는 제2 ISP(26b)에 의해 서비스되는 시나리오를 도시한다. 이 시나리오에서, 제2 ISP(26b)는 제1 ISP(26a)로부터 키 Ki의 현재 인스턴스를 요청한다. 이 요청에 응답하여, 제1 ISP(26a)는 제2 ISP(26b)로 인터넷(24)를 통해 Ki를 통신한다. 제1 ISP(26a)는 제2 ISP(26b)로 i의 값을 추가로 통신할 수 있다. 즉, 제1 ISP(26a)는 기 수행된 암호키에 대한 업데이트들의 개수를 특정할 수 있다. 이어서, 제2 ISP(26b)는 키의 새로운 인스턴스 Ki+1을 생성하고, 그 후, 예를 들어 장치(22)가 속하는 WiFi 네트워크를 서비스하는 라우터(28)를 통해, 장치(22)로 인터넷(24)을 통해 Ki+1을 통신한다. (통상적으로, 제2 ISP(26b)는 장치(22)로 Ki+1을 통신하기 전에, 예를 들어 Ki을 이용하여, Ki+1을 암호화한다.) 이어서, 장치(22) 및 제2 ISP(26b)는 통신을 암호화 및 복호화를 위해 Ki+1을 이용하여, 서로 통신을 시작할 수 있다.For example, FIG. 1 shows a scenario in which the device 22 is serviced by a first ISP 26a, but thereafter by a second ISP 26b. In this scenario, the second ISP 26b requests the current instance of the key K i from the first ISP 26a. In response to this request, the first ISP 26a communicates K i via the Internet 24 to the second ISP 26b. The first ISP 26a may further communicate the value of i to the second ISP 26b. That is, the first ISP 26a may specify the number of updates to the previously performed encryption key. Subsequently, the second ISP 26b creates a new instance of the key K i+1 , and thereafter, to the device 22, for example, through the router 28 serving the WiFi network to which the device 22 belongs. It communicates K i+1 through the Internet (24). (Typically, the 2 ISP (26b) by using a, for example, K i before communicating the K i + 1 to the device 22, and encrypts the K i + 1.) Subsequently, the device 22 and the The second ISP 26b may start communication with each other by using K i+1 for encryption and decryption of communication.

제2 ISP(26b)는 프로세서 및 예를 들어 네트워크 인터페이스 컨트롤러(network interface controller; NIC)를 포함한 네트워크 인터페이스(43)를 포함한다. 프로세서(30)는 네트워크 인터페이스(32)를 통해 (다른 장치들과 마찬가지로) 제1 ISP(26a) 및 장치(22)와의 통신을 교환하도록 구성된다. 프로세서(30)은 장치(22)와의 통신을 암호화하는 데 이용되는 암호키를 업데이트하도록 더 구성된다. 예를 들어, 상술한 바와 같이, 프로세서(30)는 장치(22)와의 통신을 개시할 때 키를 업데이트할 수 있다. 선택적으로 또는 추가적으로, 프로세서(30)는 프로세서(30) (또는 외부 사이버 보안 시스템)에 응답하여 키가 공격자에 의해 도난 당했다는 것을 식별하는 키를 업데이트할 수 있다.The second ISP 26b comprises a processor and a network interface 43 including, for example, a network interface controller (NIC). The processor 30 is configured to exchange communication with the first ISP 26a and the device 22 (like other devices) via a network interface 32. Processor 30 is further configured to update the encryption key used to encrypt communication with device 22. For example, as described above, the processor 30 may update the key when initiating communication with the device 22. Optionally or additionally, processor 30 may update the key in response to processor 30 (or an external cybersecurity system) to identify that the key has been stolen by an attacker.

유사하게, 장치(22)는 프로세서(34) 및 통신 인터페이스(36)를 포함한다. 프로세서(34)는 통신 인터페이스(36)를 통해 (다른 장치들과 마찬가지로) 제2 ISP(26b)와의 통신을 교환하도록 구성된다. 예를 들어, 통신 인터페이스(36)는 프로세서(34)가 라우터(28)를 통해 통신을 교환하는 데 이용할 수 있는 WiFi 카드를 포함할 수 있다.Similarly, device 22 includes a processor 34 and a communication interface 36. The processor 34 is configured to exchange communication with the second ISP 26b (like other devices) via the communication interface 36. For example, the communication interface 36 may include a WiFi card that the processor 34 can use to exchange communications through the router 28.

장치(22)는 프로세서(34)가 암호키를 저장하는 메모리(38)를 더 포함한다. 따라서, 예를 들어, 메모리(38)는 초기에 Ki를 유지할 수 있다. 제2 ISP(26b)로부터 Ki+1을 수신한 후, 프로세서(34)는 Ki를 Ki+1로 덮어쓸 수 있다.The device 22 further includes a memory 38 in which the processor 34 stores an encryption key. Thus, for example, the memory 38 can initially hold K i . After receiving K i+1 from the second ISP 26b, the processor 34 may overwrite K i with K i+1 .

통상적으로, 메모리(38)는 비-휘발성이다. 예를 들어, 메모리(38)는 OTP NVM, 플래시 메모리 또는 EEPROM(electrically erasable programmable read-only memory)일 수 있다. 그러나, 유리하게도, 도 2를 참조하여 이하에서 더 설명되는 바와 같이, 암호키를 업데이트하는 것은 메모리(38) 내 임의의 메모리 셀들을 디프로그래밍하는 것을 필요로 하지 않는다.Typically, memory 38 is non-volatile. For example, the memory 38 may be an OTP NVM, a flash memory, or an electrically erasable programmable read-only memory (EEPROM). Advantageously, however, as described further below with reference to FIG. 2, updating the cryptographic key does not require deprogramming any memory cells in memory 38.

일부 실시예들에서, 도 5를 참조하여 후술되는 바와 같이, 제2 ISP(26b)는 서버(40)에 의해 제공되는 데이터 시트에 포함된 파라미터(구체적으로, 비트-생성 확률 qi)를 이용하여 Ki+1을 생성한다. 예를 들어, 네트워크 인터페이스(44)를 이용하여, 서버(40)는 웹사이트에 데이터 시트를 공개할 수 있다. Ki+1을 생성하기 직전에, 제2 ISP(26b)는 웹사이트로부터 데이터 시트를 검색하고, Ki+1을 생성하는 데 필요한 파라미터를 데이터 시트에서 룩업(look up)할 수 있다. 또는, Ki+1의 생성 이전 임의의 시간에서, 서버(40)는 제2 ISP(26b)로 데이터 시트(예를 들어, 인터넷(24)을 통해)를 통신할 수 있고, 그 후 제2 ISP(26b)는 휘발성 또는 비-휘발성 메모리(도면 미도시)에 데이터 시트를 저장할 수 있다. 이어서, Ki+1을 생성하기 직전에, 제2 ISP(26b)는 메모리로부터 데이터 시트를 검색하고, 그 후 관련 파라미터를 룩업할 수 있다.In some embodiments, as described below with reference to FIG. 5, the second ISP 26b uses a parameter (specifically, the bit-generation probability q i ) included in the data sheet provided by the server 40. To produce K i+1 . For example, using network interface 44, server 40 may publish a data sheet on a website. Immediately before generating K i+1 , the second ISP 26b can retrieve the data sheet from the website and look up the parameters necessary to generate K i+1 in the data sheet. Alternatively, at any time prior to the creation of K i+1 , the server 40 can communicate a data sheet (eg, via the Internet 24) to the second ISP 26b, after which the second ISP 26b may store data sheets in volatile or non-volatile memory (not shown). Then, just before generating K i+1 , the second ISP 26b can retrieve the data sheet from the memory and then look up the relevant parameter.

다른 실시예들에서, 장치(22)의 프로세서(34)는 Ki+1을 생성하고, 그 후 제2 ISP(26b)로 Ki+1를 통신한다. 이러한 실시예들에서, 프로세서(34)는 서버(40)로부터 전술한 데이터 시트를 수신할 수 있다. 또 다른 실시예에서, 서버(40) 또는 임의의 다른 적합한 서드파티(third party)는 Ki+1을 생성하고, 그 후 Ki+1을 장치(22) 및 제2 ISP(26b) 모두에 통신할 수 있다.In other embodiments, the processor 34 of the device 22 will generate a K i + 1, and thereafter communicating the K i + 1 to the ISP 2 (26b). In these embodiments, processor 34 may receive the aforementioned data sheet from server 40. In another embodiment, server 40 or any other suitable third party creates K i+1 , and then K i+1 to both device 22 and second ISP 26b. Can communicate.

서버(40)는 프로세서(42) 및 예를 들어 NIC를 포함하는 네트워크 인터페이스(44)를 포함한다. 프로세서(42)는 네트워크 인터페이스(44)를 통해 제2 ISP(26b) (및/또는 장치(22))와의 통신을 교환하도록 구성된다.The server 40 includes a processor 42 and a network interface 44 comprising, for example, a NIC. The processor 42 is configured to exchange communication with the second ISP 26b (and/or the device 22) via the network interface 44.

시스템(20)의 컴포넌트들 및 구성은 단지 예로서 제공된다는 것이 강조된다. 일반적으로, 여기서 기술된 다양한 기술들 각각은 임의의 적합한 시스템에 속하는 임의의 적합한 프로세서에 의해 실행될 수 있다. 예를 들어, 여기서 설명된 기술들은 모바일 폰에 속하는 eSIM(embedded subscriber identification module) 또는 eSE(embedded secure element)에 저장된 암호키를 업데이트하는 데 이용될 수 있다. 예를 들어, 모바일 폰에 대한 서비스 제공자는 Ki+1을 생성하고, Ki+1을 모바일 폰에 통신하고, 그 후 모바일 폰은 Ki+1을 폰에 속한 비-휘발성 메모리에 저장할 수 있다.It is emphasized that the components and configuration of system 20 are provided by way of example only. In general, each of the various techniques described herein can be implemented by any suitable processor belonging to any suitable system. For example, the techniques described herein may be used to update an encryption key stored in an embedded subscriber identification module (eSIM) or embedded secure element (eSE) belonging to a mobile phone. For example, the service provider for the mobile phone generates a K i + 1, and communicates the K i + 1 to the mobile phone, then the mobile phone is non-belonging to the phone the K i + 1 - can be stored in volatile memory, have.

일반적으로, 여기서 설명된 프로세서들 각각은 단일 프로세서로서 또는 협동 네트워크형 또는 클러스터형 프로세스들 세트로서 임베디드될 수 있다. 일부 실시예들에서, 여기서 설명된 프로세서들 중 적어도 하나의 기능은 예를 들어 하나 이상의 ASICs(Application-Specific Integrated Circuits) 또는 FPGAs(Field-Programmable Gate Arrays)을 이용하여 하드웨어로만 구현된다. 다른 실시예들에서, 여기서 설명된 프로세스들 각각의 기능은 적어도 부분적으로 소프트웨어로 구현된다. 예를 들어, 일부 실시예들에서, 여기서 설명된 프로세서들 각각은 적어도 CPU(central processing unit) 및 RAM(random access memory)을 포함하는 프로그램된 디지털 컴퓨팅 장치로서 임베디드된다. 소프트웨어 프로그램 및/또는 데이터를 포함하는 프로그램 코드는 CPU에 의한 실행 및 처리를 위해 RAM에 로드된다. 프로그램 코드 및/또는 데이터는 예를 들어 네트워크를 통해 전자 형태로 프로세서에 다운로드될 수 있다. 선택적으로 또는 추가적으로, 프로그램 코드 및/또는 데이터는 자기, 광학 또는 전자 메모리와 같은 비-일시적 유형의 매체(non-transitory tangible media)에 제공되거나, 및/또는 저장될 수 있다. 이러한 프로그램 코드 및/또는 데이터는 프로세서에 제공될 때 여기서 설명된 태스크(task)를 수행하도록 구성된 머신(machine) 또는 특수-목적 컴퓨터(special-purpose computer)를 생성한다.In general, each of the processors described herein may be embedded as a single processor or as a set of cooperative networked or clustered processes. In some embodiments, the functionality of at least one of the processors described herein is implemented only in hardware using, for example, one or more Application-Specific Integrated Circuits (ASICs) or Field-Programmable Gate Arrays (FPGAs). In other embodiments, the functionality of each of the processes described herein is implemented at least partially in software. For example, in some embodiments, each of the processors described herein is embedded as a programmed digital computing device that includes at least a central processing unit (CPU) and random access memory (RAM). Program code, including software programs and/or data, is loaded into RAM for execution and processing by the CPU. The program code and/or data can be downloaded to the processor in electronic form, for example via a network. Optionally or additionally, program code and/or data may be provided and/or stored on non-transitory tangible media such as magnetic, optical or electronic memory. Such program code and/or data, when provided to a processor, creates a machine or special-purpose computer configured to perform the tasks described herein.

키의 새로운 인스턴스 생성Create a new instance of the key

이제 본 발명의 일부 실시예들에 따른, 암호키의 새로운 인스턴스의 생성의 개략도인 도 2를 참조한다.Reference is now made to Fig. 2, which is a schematic diagram of the creation of a new instance of a cryptographic key, in accordance with some embodiments of the present invention.

도 2는 도 1에 도시된 시나리오에 관한 것으로, 프로세서(30)(또는, 전술한 바와 같이, 임의의 다른 프로세서)가 키의 현재 인스턴스 Ki가 주어지면, N-비트 암호키의 새로운 인스턴스 Ki+1를 생성한다. 도 1을 참조하여 개요에서 설명한 바와 같이, NVM에서 Ki+1로 Ki를 대체하는 것이 임의의 메모리 셀들을 디프로그래밍할 필요가 없도록 Ki+1이 생성된다. 그럼에도 불구하고, 도 4를 참조하여 아래에서 상세하게 설명되는 바와 같이, Ki에 대한 Ki+1의 예상 엔트로피는 미리 정의된 임계치 엔트로피 E보다 작지 않다. (암호키 내 비트들의 개수 N보다 작은 임계치 E는 예를 들어 시스템(20)의 보안 설계자(security architect)에 의해 정의될 수 있다.)Figure 2 relates to the scenario shown in Figure 1, if the processor 30 (or, as described above, any other processor) is given the current instance K i of the key, a new instance K of the N-bit encryption key Generate i+1 As described in the overview with reference to FIG. 1, K i+1 is created so that replacing K i with K i+1 in the NVM does not require deprogramming arbitrary memory cells. Nevertheless, with reference to Figure 4 as will be described in detail below, the expected entropy of the K i + 1 for the K i is not less than a predefined threshold, entropy E. (Threshold E less than the number of bits N in the encryption key can be defined, for example, by the security architect of the system 20).

특히, Ki+1을 생성하기 위해, 프로세서는 먼저 랜덤 N-비트 업데이팅 시퀀스 Si를 생성한다. 다음으로, 프로세서는 이진 값 1을 가지지 않는 Ki 내 임의의 비트들을 무효화하지 않으면서, Si 내 대응하는 위치의 비트와 상이하고, 이진 값 1을 갖는 Ki 내 각 비트를 무효화함으로써, Ki+1을 생성한다. 도 2는 각각 상향 화살표들로 표시된 2개의 네거티브 비트들(negated bits)을 나타낸다.In particular, to generate the K i + 1, the processor generates a first random bit N- updating sequence S i. Next, the processor invalidates each bit in K i that differs from the bit in the corresponding position in S i and has a binary value of 1, without invalidating any bits in K i that do not have a binary value of 1. Generate i+1 2 shows two negative bits, respectively, indicated by upward arrows.

통상적으로, 도 2에 도시된 바와 같이, 프로세서는 Ki 및 Si 간 비트와이즈 AND 연산을 수행함으로써 Ki+1을 생성한다. 그러므로, Ki 내 일부 1 비트들은 Ki+1 내 0 비트들로 대체되지만, Ki 내 0 비트들은 1 비트들로 대체되지 않고, 이로써 키는 어떤 셀들도 디프로그램할 필요 없이 NVM에서 업데이트될 수 있다.Typically, as illustrated in Figure 2, the processor produces a K i + 1 by performing a bit-wise AND operation between K i and S i. Thus, K i within some one bits, but replaced with K i + 1 in bit 0, K i within 0 bits are not replaced by one bit, so that keys are updated in NVM without having to also de-program certain cells I can.

프로세서는 1인 확률 qi로 Si 내 각 비트를 생성하고, qi는 통상적으로 0.5보다 크다. (개요에서 언급한 것처럼, 일부 경우에서, qi는 키의 최종 업데이트에 대해 정확히 0.5일 수 있다.) 일부 실시예들에서, qi는 서버(40)에 의해, 도 1을 참조하여 전술한 바와 같이, 제공된 데이터 시트에 특정된다. 이러한 데이터 시트는 예를 들어 E의 하나 이상의 값들, N의 하나 이상의 값들 및 i의 다양한 값들에 대한 qi를 특정하는 룩업 테이블을 포함할 수 있다. 다른 실시예들에서, 프로세서는 qi를 계산한다. qi의 계산에 관한 더 상세한 내용들은 도 4를 참조하여 아래에서 설명된다.The processor generating a respective bit i within S 1 was the probability q and i, q i is typically greater than 0.5. (As mentioned in the overview, in some cases, q i may be exactly 0.5 for the last update of the key.) In some embodiments, q i is described above with reference to FIG. 1 by the server 40. As such, it is specific to the data sheet provided. Such a data sheet may for example include a lookup table specifying q i for one or more values of E, one or more values of N and various values of i . In other embodiments, the processor computes q i . Further details regarding the calculation of q i are described below with reference to FIG. 4.

비 프로그램된 메모리 셀들이 이진 값 0을 갖는 역 NVM 규칙(reverse NVM convention)에 대해서, 프로세서는 0인 확률 qi로 Si 내 각 비트를 생성한다. 그 후, 프로세서는 예를 들어 Ki 및 Si 간 비트와이즈 OR 연산을 수행함으로써, Si 내 대응하는 위치의 비트와 상이한 Ki 내 각 0 비트를 무효화한다.For the unprogrammed memory cells have a binary value inverse NVM rules having 0 (NVM reverse convention), the processor generates each bit in S i to zero probability q i. After that, the processor, for example by performing a bit-wise OR operation between K i and S i, K i invalidates the bit which is different in each of the 0 bit position S i in response.

랜덤 시퀀스 생성Generate random sequence

이제 본 발명의 일부 실시예들에 따른, 랜덤 시퀀스 Si를 생성하는 기술의 개략도인 도 3을 참조한다. 이 기술은 qi가 미리 결정된 정수 m 및 가변 정수 n에 대해 n/2m과 동일하다고 가정한다. (예를 들어, m은 10일 수 있으므로, qi = n/1024)Reference is now made to Figure 3 a schematic view of a technique for generating a random sequence S i in accordance with some embodiments of the present invention. This technique assumes that q i is equal to n/2 m for a predetermined integer m and a variable integer n. (For example, m can be 10, so q i = n/1024)

Si를 생성하기 위해, 프로세서는 먼저 외부 소스로부터 E 비트들을 갖는 언바이어스 랜덤 시드 Xi를 생성하거나 획득한다. (Xi 내 각 비트가 1인 0.5의 확률을 가지므로, Xi는 언바이어스된다.) 프로세서는 qi = n/2m을 더 룩업하거나 계산한다. 이어서, 프로세서는 Si의 비트들에 각각 대응하는 N개의 m-비트 시퀀스들 {Zij} (여기서, j = 1??N)로 Xi를 확장한다. 예를 들어, 프로세서는 N개의 상이한 각각의 카운터들 c와 함께 Xi에 해시 함수 f(X, c)를 적용함으로써, 예를 들어, Si의 제1 비트에 대응하는 제1 m-비트 시퀀스 Zi1가 f(Xi, 1)과 동일하고, Si의 제2 비트에 대응하는 제2 m-비트 시퀀스 Zi2가 f(Xi, 2)과 동일하다. 적합한 해시 함수들의 예시들은 SHA-2, SHA-256, SHA-512, 및 SHA-3과 같은 SHA(secure hash algorithm) 함수들을 포함한다.To produce the S i, the processor will first create or obtain the unbiased random seed X i has the E-bit from an external source. (X i, so that each bit of a probability of 1 in 0.5, X i is biased language.) The processor further look-up the q i = n / 2 m or calculated. Then, the processor extends the X i corresponding to the N-bit sequence {m- Zij} (where, j = 1 N ??), each of the bits of S i. For example, the processor first m- bit sequence by applying a hash function f (X, c) the X i with each of the N different counter c, for example, corresponding to the first bits of S i Z i1 is the same as f(X i , 1), and the second m-bit sequence Z i2 corresponding to the second bit of S i is the same as f(X i , 2). Examples of suitable hash functions include secure hash algorithm (SHA) functions such as SHA-2, SHA-256, SHA-512, and SHA-3.

다음으로, Si 내 각 비트에 대해, 프로세서는 대응하는 m-비트 시퀀스의 값이 n보다 작다는 것에 응답하여 비트를 1로 설정한다. 예를 들어, 만약 Zi1이 n보다 작으면, Si 내 제1 비트가 1로 설정되고, 그렇지 않으면, 비트가 0으로 설정된다.Next, for each bit within the S i, the processor sets a bit to 1 in response to the value of the bit sequence corresponding m- smaller than n. For example, if Z, if i1 is smaller than n, S i is within the first bit is set to one, otherwise, the bit is set to zero.

도 3에 도시된 특정 기술에도 불구하고, Si는 Si 내 각 비트가 1인 확률 qi를 갖는다면 (qi가 n/2m 형태가 아닐지라도) 임의의 다른 적합한 기술을 이용하여 생성될 수 있다는 것을 주목해야 한다. Notwithstanding the specific technique shown in Fig. 3, S i is generated using any other suitable technique (even if q i is not in n/2 m form) if each bit in S i has a probability q i It should be noted that it can be.

단일 업데이트를 위한 비트-생성 확률 계산Computing the bit-generated probability for a single update

이제 본 발명의 일부 실시예들에 따라 비트-생성 확률 qi를 계산하기 위한 기술의 개략도인 도 4를 참조한다.Reference is now made to Fig. 4, which is a schematic diagram of a technique for calculating a bit-generated probability q i in accordance with some embodiments of the present invention.

일부 실시예들에서, Ki+1을 생성하는 프로세서는 Si를 생성하기 전에 qi를 계산한다. 통상적으로, 이러한 실시예들에서, 프로세서는 먼저 Ki 내 1 비트들의 개수 N1i를 식별한다. 다음으로, 도 4에 도시된 바와 같이, 프로세서는 q에 대해 H(q) = -(qlog2q + (1-q)log2(1-q)) = E/N1i를 풀고, 이 솔루션은 노테이션 qi *로 도 4에 표시된다. (대부분의 케이스에서, 수학식에 대해 2개의 솔루션이 있으며, 프로세서는 2개의 솔루션들 중에서 더 큰 솔루션을 선택한다.) 그 후, 프로세서는 qi *로부터 qi를 도출한다. 예를 들어, 프로세서는 qi를 qi *로 설정하거나 qi *보다 작거나 같은 최고값 n/2m으로 설정할 수 있다. (다시 말해, 프로세서는 n/2m이 qi *보다 작거나 같은 최고 정수 n를 찾는다.)In some embodiments, a processor for generating a K i + 1 and calculates a q i before generating the S i. Typically, in these embodiments, the processor first identifies the number of 1 bits N1 i in K i . Next, as shown in Figure 4, the processor solves H(q) = -(qlog 2 q + (1-q)log 2 (1-q)) = E/N1 i for q, and this solution Is represented in FIG. 4 by the notation q i * . (In most cases, there are two solutions for the equation, the processor selects the larger of the two solutions from the solution.) After that, the processor derives from q i q i *. For example, the processor can set q i to q i * or to a maximum n/2 m less than or equal to q i * . (In other words, the processor finds the highest integer n where n/2 m is less than or equal to q i * .)

개요에서 상술한 바와 같이, Ki가 주어지면 Ki+1의 엔트로피는 N1i*H(qi)와 동일하다. 그러므로, qi를 qi * 또는 qi *보다 작은 가장 가까운 적합한 값으로 설정함으로써, 프로세서는 적어도 E의 엔트로피를 제공하는 qi의 가장 큰 적합한 값을 효과적으로 선택한다.As described above in summary, given the K i entropy of K i + 1 is equal to the N1 i * H (q i) . Therefore, by setting q i to the nearest suitable value less than q i * or q i * , the processor effectively selects the largest suitable value of q i giving at least the entropy of E.

qi *를 푸는 대신에, 프로세서는 q의 다중 값들을 정의하고, 그 후 qi를 H(q)가 E/N1i보다 작지 않은 이러한 값들 중 최대값으로 설정한다. 예를 들어, 프로세서는 값들의 어레이 [2m-1/2m, (2m-1+1)/2m, ?? (2m-1)/2m]를 생성하고, 그 후 qi를 H(q)가 E/N1i보다 작지 않은 이러한 값들의 최대값으로 설정한다.Instead of solving q i * , the processor defines multiple values of q and then sets q i to the largest of these values where H(q) is not less than E/N1 i . For example, the processor is an array of values [2 m-1 /2 m , (2 m-1 +1)/2 m , ?? (2 m -1)/2 m ], then set q i to the maximum of these values where H(q) is not less than E/N1 i .

E/N1i가 1보다 큰 경우, 프로세서는 요구되는 엔트로피 E가 획득될 수 없기 때문에 Ki+1를 생성하지 않는다. 이 경우, 프로세서는 예를 들어 장치(22) 내 메모리(38)가 대체되거나 소거될 필요가 있음을 나타내는 적절한 에러 메시지를 생성할 수 있다.When E/N1 i is greater than 1, the processor does not generate K i+1 because the required entropy E cannot be obtained. In this case, the processor may, for example, generate an appropriate error message indicating that the memory 38 in the device 22 needs to be replaced or erased.

다중 업데이트들에 대한 비트-생성 확률들 미리 계산Precompute bit-generated probabilities for multiple updates

일부 실시예들에서, Ki+1를 생성하는 프로세서는 qi를 계산하기 위해 N1i를 이용하지 않는다. 오히려, 프로세서는 각 업데이트에서, N1i의 예상 값 N1i *에 기초하여 키의 다중 업데이트들에 대한 qi 값들의 시퀀스를 미리 계산한다. 또는, 서버(30)(도 1)는 N 및 E 값들의 하나 이상의 쌍들에 대한 qi 값들의 각각의 시퀀스들을 특정하는 데이터 시트를 생성할 수 있다. 이어서, 도 1을 참조하여 전술한 바와 같이, 서버(40)는 도 2 및 도 3을 참조하여 전술한 방식으로 암호키를 업데이트하기 원하는 (제2 ISP(26b)와 같이) 임의의 파티(any party)로 데이터 시트를 제공할 수 있다.In some embodiments, the processor generating K i+1 does not use N1 i to compute q i . Rather, the processor precomputes a sequence of q i values for multiple updates of the key based on the expected value N1 i * of N1 i at each update. Alternatively, server 30 (FIG. 1) may generate a data sheet specifying respective sequences of q i values for one or more pairs of N and E values. Subsequently, as described above with reference to Fig. 1, the server 40 is configured with any party (such as the second ISP 26b) that wants to update the encryption key in the manner described above with reference to Figs. party) can provide a data sheet.

이와 관련하여, 이제 본 발명의 일부 실시예들에 따라 암호키의 다중 업데이트들을 가능하게 하는 방법(46)에 대한 플로우 다이어그램인 도 5를 참조한다. 특히, 방법(46)에서, 하나 이상의 상이한 (N,E) 쌍들(즉, (i) 암호키 내 비트들의 개수 N 및 (ii) 엔트로피 임계치 E로 구성되는 값들의 하나 이상의 상이한 쌍들)에 대한 {qi} 시퀀스들을 특정하는 데이터 시트는 생성되고, 제공된다. 방법(46)은 전술한 바와 같이 통상적으로 서버(40)의 프로세서(42)에 의해 수행된다. 또는, 방법(46)의 단계들의 서브세트(예컨대, 단일 (N,E) 쌍에 대한 {qi}의 계산)는 키를 업데이트시키는 제2 ISP(26b)의 프로세서(30)와 같은 프로세서에 의해 수행될 수 있다.In this regard, reference is now made to Fig. 5, which is a flow diagram of a method 46 for enabling multiple updates of a cryptographic key in accordance with some embodiments of the present invention. In particular, in method 46, for one or more different (N,E) pairs (i.e., one or more different pairs of values consisting of (i) the number of bits in the encryption key N and (ii) the entropy threshold E) q i } A data sheet specifying the sequences is created and provided. Method 46 is typically performed by processor 42 of server 40 as described above. Alternatively, a subset of the steps of method 46 (e.g., calculation of {q i } for a single (N,E) pair) may be applied to a processor such as processor 30 of second ISP 26b to update the key. Can be done by

방법(46)은 프로세서(42)가 비트-생성 확률들의 시퀀스가 계산될 다음 미리 정의된 (N,E) 쌍을 선택하는 선택 단계(47)로 시작한다. (각 (N,E) 쌍은 예를 들어 보안 전문가에 의해 프로세서(42)로 제공될 수 있다.) 다음으로, 프로세서는 키의 U 업데이트들에 대해, 상이한 각각의 확률들 {qi} (여기서, i = 1??U)을 계산한다. 각 qi 값이 계산되어, 키의 새로운 인스턴스가 도 2 및 도 3을 참조하여 전술한 바와 같이 생성되면, 키 (Ki)의 현재 인스턴스에 대한 키 (Ki+1)의 새로운 인스턴스의 예상 인트로피는 E보다 작지 않다. 다시 말해, qi는 도 4를 참조하여 전술한 바와 같이 일반적으로 계산되고, Ki (H(q)*N1i *)에 대한 Ki+1의 예상 엔트로피는 (미리 알 수 없는) 실제 엔트로피 대신 이용된다.The method 46 begins with a selection step 47 where the processor 42 selects the next predefined (N,E) pair from which the sequence of bit-generated probabilities is to be calculated. (Each (N,E) pair can be provided to the processor 42 by a security expert, for example.) Next, the processor, for U updates of the key, has different respective probabilities {q i } ( Here, i = 1??U) is calculated. Key prediction of the new instance of the (K i + 1) for the current instance of the computed each q i value, when a new instance of a key, see Fig. 2 and 3 to generate, as described above, the key (K i) Intropy is not less than E. That is, q i is generally calculated as described above with reference to FIG 4, K i expected entropy of K i + 1 for the (H (q) * N1 i *) is the actual entropy (unknown in advance) Is used instead.

보다 구체적으로, 선택 단계(47)에 이어서, 프로세서는 초기화 단계(48)에서 q0을 1로 설정하고 인덱스 i를 1로 초기화한다. 이어서, 프로세서는 키의 새로운 인스턴스의 예상 엔트로피가 E보다 작아질 때까지 qi를 반복적으로 계산하고, 인덱스를 증가시킨다. qi를 계산하기 위해, 프로세서는 먼저 계산 단계(50)에서

Figure pat00008
를 계산한다. 다음으로, 제1 검사 단계(52)에서, 프로세서는 E/N1i *이 1보다 작거나 같은지 여부를 체크한다. 만약 그렇다면, 프로세서는 설정 단계(54)에서 qi를 H(q)가 E/N1i *보다 작지 않은 q의 최대 적합한 값으로 설정한다. 예를 들어, 도 4를 참조하여 전술한 바와 같이, 프로세서는 qi를 (H(qi *) = E/N1i *인) qi * 또는 qi *보다 낮은 가장 가까운 적합한 값으로 설정할 수 있다. 이어서, 증가 단계(56)에서, 프로세서는 인덱스 i를 증가시킨다.More specifically, following the selection step 47, the processor sets q 0 to 1 and initializes the index i to 1 in the initialization step 48. Then, the processor iteratively computes q i until the expected entropy of the new instance of the key is less than E, and increments the index. In order to calculate q i , the processor first in the calculation step 50
Figure pat00008
Calculate Next, in a first check step 52, the processor checks whether E/N1 i * is less than or equal to 1. If so, the processor sets q i to the maximum suitable value of q in which H(q) is not less than E/N1 i * in the setting step 54. For example, as described above with reference to FIG. 4, the processor may set q i to the nearest suitable value lower than (H(q i * ) = E/N1 i * ) q i * or q i *. have. Then, in increment step 56, the processor increments index i.

제1 검사 단계(52)에서, E/N1i *가 1보다 큰 것으로 확인되면, 프로세서는 현재 인덱스 i에 대해 qi를 계산하지 않는다. 오히려, 현재까지 계산된 시퀀스 {q1, q2, ?? qU} (여기서, (현재 인덱스보다 작은) U가 키에 허용되는 업데이트의 최대 개수인)는 데이터-시트-업데이팅 단계(58)에서 데이터 시트에 (N,E)로 추가된다.In the first check step 52, if E/N1 i * is found to be greater than 1, the processor does not calculate q i for the current index i. Rather, the sequence computed so far {q 1 , q 2 , ?? q U } (where U (less than the current index) is the maximum number of updates allowed for the key) is added as (N,E) to the data sheet in the data-sheet-update step 58.

데이터-시트-업데이팅 단계(58)에 이어서, 프로세서는 제2 검사 단계(60)에서 (N,E) 쌍들이 더 남아 있는지 여부를 체크한다. 만약 그렇다면, 프로세서는 선택 단계(47)로 리턴하고, 선택된 (N,E) 쌍에 대해 {qi}를 계산하고, 그 후 데이터 시트를 업데이트한다. 그렇지 않으면, 프로세서는 제공 단계(62)에서 암호키를 업데이트하는 데 이용하기 위해 완성된 데이터 시트(completed data sheet)를 제공한다. 예를 들어, 도 1을 참조하여 전술한 바와 같이, 프로세서는 웹사이트에 데이터 시트를 업로드하거나, 다른 장치로 데이터 시트를 통신할 수 있다.Following the data-sheet-update step 58, the processor checks in a second check step 60 whether there are more (N,E) pairs left. If so, the processor returns to selection step 47, computes {q i } for the selected (N,E) pair, and then updates the data sheet. Otherwise, the processor provides a completed data sheet for use in updating the cryptographic key in the provision step 62. For example, as described above with reference to FIG. 1, the processor may upload a data sheet to a website or communicate the data sheet to another device.

도 2를 참조하여 전술한 바와 같이, 각 qi 값은 통상적으로 0.5보다 크다. (비록, 일부 케이스들에서는, qU는 정확히 0.5일 수 있다.) 도 4에 나타난 H(q)의 그래프를 관찰함으로써 알 수 있듯이, E/N1i *이 i에 따라 증가하면, i가 증가함에 따라 qi *(및 따라서, qi)의 값들은 감소한다. 예를 들어, E=80 및 N=256에 대해, 방법(46)은 11개의 qi * 값들의 감소하는 시퀀스(0.943, 0.938, 0.933, 0.926, 0.918, 0.907, 0.893, 0.872, 0.841, 0.785 및 0.623)를 리턴한다. (상기 의미는 요구되는 엔트로피가 80 비트들을 초과하지 않는다면 256-비트 키가 여기에 설명된 기술을 이용하여 11번 업데이트될 수 있다는 것이다.)As described above with reference to FIG. 2, each q i value is typically greater than 0.5. (Although, in some cases, q U may be exactly 0.5.) As can be seen by observing the graph of H(q) shown in Fig. 4, if E/N1 i * increases with i, i increases The values of q i * (and hence q i ) decrease as you do. For example, for E=80 and N=256, method 46 is a decreasing sequence of 11 q i * values (0.943, 0.938, 0.933, 0.926, 0.918, 0.907, 0.893, 0.872, 0.841, 0.785 and 0.623) is returned. (The meaning above is that the 256-bit key can be updated 11 times using the technique described here, provided the required entropy does not exceed 80 bits.)

데이터 시트가 주어지면, 제2 ISP(26b)의 프로세서(30)와 같이, 키의 새로운 인스턴스를 생성하는 프로세서는 N, E 및 i로 주어진 적절한 qi 값을 룩업한다. (도 1을 참조하여 전술한 바와 같이, 제1 ISP(26a)는 제2 ISP(26b)로 i를 특정할 수 있다.) 이어서, 도 2 및 도 3에서 전술한 바와 같이, 프로세서는 qi를 이용하여 업데이팅 시퀀스 Si를 생성하고, 그 후 Si를 이용하여 Ki로부터 Ki+1을 생성한다.Given the data sheet, the processor creating a new instance of the key, such as processor 30 of the second ISP 26b, looks up the appropriate q i values given by N, E and i. (As described above with reference to FIG. 1, the first ISP 26a may specify i as the second ISP 26b.) Subsequently, as described above in FIGS. 2 and 3, the processor q i using the generated updating the sequence S i, and then using the S i to generate a K i + 1 from the K i.

Claims (15)

비 프로그램된 셀들이 특정 이진 값을 갖는, 디바이스에 속하는 비-휘발성 메모리(NVM; non-volatile memory)에 저장하기 위한 N-비트 암호키의 새로운 인스턴스를 생성하는 장치에 있어서,
네트워크 인터페이스; 및
프로세서
를 포함하고,
상기 프로세서는
랜덤 N-비트 업데이팅 시퀀스를 생성하고,
상기 특정 이진 값을 갖지 않는 상기 N-비트 암호키의 현재 인스턴스 내 어떤 비트들도 무효화하지 않으면서, 상기 랜덤 N-비트 업데이팅 시퀀스 내 대응하는 위치의 비트와 상이하고, 상기 특정 이진 값을 갖는 상기 N-비트 암호키의 상기 현재 인스턴스 내 각 비트를 무효화함으로써, 상기 N-비트 암호키의 상기 새로운 인스턴스를 생성하고,
상기 네트워크 인터페이스를 이용하여, 상기 N-비트 암호키의 상기 새로운 인스턴스를 생성한 후, 상기 NVM 내 저장을 위해 상기 디바이스로 상기 N-비트 암호키의 새로운 인스턴스를 통신하는,
장치.
An apparatus for generating a new instance of an N-bit encryption key for storage in a non-volatile memory (NVM) belonging to a device, wherein non-programmed cells have a specific binary value,
Network interface; And
Processor
Including,
The processor is
Generate a random N-bit updating sequence,
Different from the bit at the corresponding position in the random N-bit updating sequence, and having the specific binary value, without invalidating any bits in the current instance of the N-bit encryption key that does not have the specific binary value. Creating the new instance of the N-bit encryption key by invalidating each bit in the current instance of the N-bit encryption key,
Using the network interface, after generating the new instance of the N-bit encryption key, communicating a new instance of the N-bit encryption key to the device for storage in the NVM,
Device.
제1항에 있어서,
상기 프로세서는
상기 N-비트 암호키의 상기 현재 인스턴스 및 상기 랜덤 N-비트 업데이팅 시퀀스 간 비트와이즈 AND 연산을 수행함으로써, 상기 랜덤 N-비트 업데이팅 시퀀스 내 상기 대응하는 위치의 비트와 상이하고, 상기 특정 이진 값을 갖는 상기 N-비트 암호키의 상기 현재 인스턴스 내 각 비트를 무효화하도록 구성되는,
장치.
The method of claim 1,
The processor is
By performing a bitwise AND operation between the current instance of the N-bit encryption key and the random N-bit updating sequence, it is different from the bit at the corresponding position in the random N-bit updating sequence, and the specific binary Configured to invalidate each bit in the current instance of the N-bit encryption key having a value,
Device.
제1항에 있어서,
상기 프로세서는
0.5보다 큰 상기 특정 이진 값을 가질 확률로 상기 랜덤 N-비트 업데이팅 시퀀스 내 각 비트를 생성하도록 구성되는,
장치.
The method of claim 1,
The processor is
Configured to generate each bit in the random N-bit updating sequence with a probability of having the specific binary value greater than 0.5,
Device.
제3항에 있어서,
상기 확률은 미리 결정된 정수 m 및 가변 정수 n에 대해 n/2m과 동일하고,
상기 프로세서는
E 비트들을 갖는 언바이어스 랜덤 시드를 상기 랜덤 N-비트 업데이팅 시퀀스의 비트들에 각각 대응하는 N개의 m-비트 시퀀스들로 확장하고, 상기 랜덤 N-비트 업데이팅 시퀀스 내 각 비트에 대해, 상기 대응하는 m-비트 시퀀스의 값이 n보다 작은 것에 응답하여 상기 특정 이진 값으로 상기 비트를 설정함으로써, 상기 랜덤 N-비트 업데이팅 시퀀스를 생성하도록 구성되는,
장치.
The method of claim 3,
The probability is equal to n/2 m for a predetermined integer m and a variable integer n,
The processor is
An unbiased random seed having E bits is extended into N m-bit sequences respectively corresponding to bits of the random N-bit updating sequence, and for each bit in the random N-bit updating sequence, the Configured to generate the random N-bit updating sequence by setting the bit to the specific binary value in response to the value of the corresponding m-bit sequence being less than n,
Device.
N-비트 암호키를 저장하도록 구성된, 복수의 단일-비트 셀들을 포함하는 비-휘발성 메모리(NVM) -상기 셀들의 비 프로그램된 하나는 특정 이진 값을 가짐-; 및
프로세서
를 포함하고,
상기 프로세서는
랜덤 N-비트 업데이팅 시퀀스를 생성하고,
상기 특정 이진 값을 갖지 않는 상기 N-비트 암호키의 현재 인스턴스 내 어떤 비트들도 무효화하지 않으면서, 상기 랜덤 N-비트 업데이팅 시퀀스 내 대응하는 위치의 비트와 상이하고, 상기 특정 이진 값을 갖는 상기 N-비트 암호키의 상기 현재 인스턴스 내 각 비트를 무효화함으로써, 상기 N-비트 암호키의 새로운 인스턴스를 생성하며,
상기 N-비트 암호키의 상기 새로운 인스턴스를 생성한 후, 상기 NVM 내 상기 N-비트 암호키의 상기 새로운 인스턴스로 상기 N-비트 암호키의 상기 현재 인스턴스를 대체하는,
장치.
A non-volatile memory (NVM) comprising a plurality of single-bit cells, configured to store an N-bit encryption key, the non-programmed one of the cells having a specific binary value; And
Processor
Including,
The processor is
Generate a random N-bit updating sequence,
Different from the bit at the corresponding position in the random N-bit updating sequence, and having the specific binary value, without invalidating any bits in the current instance of the N-bit encryption key that does not have the specific binary value. By invalidating each bit in the current instance of the N-bit encryption key, a new instance of the N-bit encryption key is created,
After creating the new instance of the N-bit encryption key, replacing the current instance of the N-bit encryption key with the new instance of the N-bit encryption key in the NVM,
Device.
제5항에 있어서,
상기 프로세서는
상기 특정 이진 값을 가질 특정 확률로 상기 랜덤 N-비트 업데이팅 시퀀스 내 각 비트를 생성하도록 구성되고,
상기 프로세서는
상기 N-비트 암호키의 상기 현재 인스턴스에 대한 상기 N-비트 암호키의 상기 새로운 인스턴스의 예상 엔트로피가 N보다 작은 미리 결정된 임계치 E보다 작지 않도록, 상기 랜덤 N-비트 업데이팅 시퀀스를 생성하기에 앞서, 상기 특정 확률을 계산하도록 더 구성되는,
장치.
The method of claim 5,
The processor is
Configured to generate each bit in the random N-bit updating sequence with a specific probability to have the specific binary value,
The processor is
Prior to generating the random N-bit updating sequence so that the expected entropy of the new instance of the N-bit encryption key for the current instance of the N-bit encryption key is not less than a predetermined threshold E less than N, , Further configured to calculate the specific probability,
Device.
제6항에 있어서,
상기 특정 확률은 0.5보다 큰,
장치.
The method of claim 6,
The specific probability is greater than 0.5,
Device.
비 프로그램된 셀들이 특정 이진 값을 갖는, 비-휘발성 메모리(NVM)에 저장하기 위한 N-비트 암호키의 새로운 인스턴스를 생성하는 방법에 있어서,
랜덤 N-비트 업데이팅 시퀀스를 생성하는 단계; 및
상기 특정 이진 값을 갖지 않는 상기 N-비트 암호키의 현재 인스턴스 내 어떤 비트들도 무효화하지 않으면서, 상기 랜덤 N-비트 업데이팅 시퀀스 내 대응하는 위치의 비트와 상이하고, 상기 특정 이진 값을 갖는 상기 N-비트 암호키의 상기 현재 인스턴스 내 각 비트를 무효화함으로써, 상기 N-비트 암호키의 상기 새로운 인스턴스를 생성하는 단계
를 포함하는,
방법.
In a method of creating a new instance of an N-bit encryption key for storage in a non-volatile memory (NVM), in which non-programmed cells have a specific binary value,
Generating a random N-bit updating sequence; And
Different from the bit at the corresponding position in the random N-bit updating sequence, and having the specific binary value, without invalidating any bits in the current instance of the N-bit encryption key that does not have the specific binary value. Generating the new instance of the N-bit encryption key by invalidating each bit in the current instance of the N-bit encryption key
Containing,
Way.
제8항에 있어서,
상기 무효화 단계는
상기 N-비트 암호키의 상기 현재 인스턴스 및 상기 랜덤 N-비트 업데이팅 시퀀스 간 비트와이즈 AND 연산을 수행하는 단계
를 포함하는,
방법.
The method of claim 8,
The invalidation step
Performing a bitwise AND operation between the current instance of the N-bit encryption key and the random N-bit updating sequence
Containing,
Way.
제8항에 있어서,
상기 랜덤 N-비트 업데이팅 시퀀스를 생성하는 단계는
0.5보다 큰 상기 특정 이진 값을 가질 확률로 상기 랜덤 N-비트 업데이팅 시퀀스 내 각 비트를 생성하는 단계
를 포함하는,
방법.
The method of claim 8,
Generating the random N-bit updating sequence comprises:
Generating each bit in the random N-bit updating sequence with a probability of having the specific binary value greater than 0.5
Containing,
Way.
제10항에 있어서,
상기 랜덤 N-비트 업데이팅 시퀀스를 생성하기에 앞서,
상기 특정 이진 값을 갖는 상기 N-비트 암호키의 상기 현재 인스턴스 내 비트들의 넘버 N1을 식별하는 단계
q에 대해 -(qlog2q + (1-q)log2(1-q)) = E/N1를 푸는 단계 -E는 미리 정의된 엔트로피 임계치 -; 및
q로부터 상기 확률을 도출하는 단계
를 더 포함하는,
방법.
The method of claim 10,
Prior to generating the random N-bit updating sequence,
Identifying the number of bits N1 in the current instance of the N-bit encryption key having the specific binary value
for q -(qlog 2 q + (1-q) log 2 (1-q)) = step of solving E/N1 -E is a predefined entropy threshold -; And
deriving the probability from q
Further comprising,
Way.
제11항에 있어서,
q로부터 상기 확률을 도출하는 단계는
상기 확률을 q로 설정함으로써, q로부터 상기 확률을 도출하는 단계
를 포함하는,
방법.
The method of claim 11,
The step of deriving the probability from q is
Deriving the probability from q by setting the probability to q
Containing,
Way.
제11항에 있어서,
q로부터 상기 확률을 도출하는 단계는
상기 확률을 q보다 크지 않은 최고값 n/2m으로 설정함으로써, q로부터 상기 확률을 도출하는 단계 -m은 미리 결정된 정수이고, n은 가변 정수임 -
를 포함하는,
방법.
The method of claim 11,
The step of deriving the probability from q is
Deriving the probability from q by setting the probability to the highest value n/2 m not greater than q -m is a predetermined integer, n is a variable integer-
Containing,
Way.
제10항에 있어서,
상기 확률은
미리 결정된 정수 m 및 가변 정수 n에 대해 n/2m과 동일하며,
상기 랜덤 N-비트 업데이팅 시퀀스를 생성하는 단계는
E 비트들을 갖는 언바이어스 랜덤 시드를 상기 랜덤 N-비트 업데이팅 시퀀스의 비트들에 각각 대응하는 N개의 M-비트 시퀀스들로 확장하는 단계; 및
상기 랜덤 N-비트 업데이팅 시퀀스 내 각 비트에 대해, 상기 대응하는 m-비트 시퀀스의 값이 n보다 작은 것에 응답하여 상기 특정 이진 값으로 상기 비트를 설정하는 단계
를 포함하는,
방법.
The method of claim 10,
The above probability is
Is equal to n/2 m for a predetermined integer m and a variable integer n,
Generating the random N-bit updating sequence comprises:
Extending an unbiased random seed having E bits into N M-bit sequences respectively corresponding to bits of the random N-bit updating sequence; And
For each bit in the random N-bit updating sequence, setting the bit to the specific binary value in response to the value of the corresponding m-bit sequence being less than n
Containing,
Way.
비 프로그램된 셀들이 특정 이진 값을 갖는, 비-휘발성 메모리(NVM) 내 N-비트 암호키의 다중 업데이트들을 가능하게 하는 방법에 있어서,
상기 업데이트들 중 각 i번째 업데이트에 대해, 상기 N-비트 암호키의 현재 인스턴스에 대한 상기 N-비트 임호키의 새로운 인스턴스의 예상 엔트로피가 N보다 작은 미리 정의된 임계치 E보다 작지 않도록, 상기 업데이트들에 대해 상이한 각각의 확률 {qi}(i = 1??U)를 계산하는 단계; 및
상기 확률들을 계산한 후, 상기 업데이트들을 수행하는 데 이용될 상기 확률들을 제공하는 단계
를 포함하고,
상기 N-비트 암호키의 상기 새로운 인스턴스는
상기 특정 이진 값을 갖지 않는 상기 N-비트 암호키의 상기 현재 인스턴스 내 어떤 비트들도 무효화하지 않으면서, N-비트 랜덤 업데이팅 시퀀스 내 대응하는 위치의 비트와 상이하고, 상기 특정 이진 값을 갖는 상기 N-비트 암호키의 상기 현재 인스턴스 내 각 비트를 무효화함으로써, 생성되고,
상기 N-비트 랜덤 업데이팅 시퀀스 내 각 비트는
상기 특정 이전 값을 갖는 확률 qi로 생성되는
방법.
In a method for enabling multiple updates of an N-bit encryption key in a non-volatile memory (NVM), in which non-programmed cells have a specific binary value,
For each i-th update of the updates, such that the expected entropy of the new instance of the N-bit cryptographic key for the current instance of the N-bit cryptographic key is not less than a predefined threshold E less than N, the updates Calculating each probabilities that are different for {q i } (i = 1??U); And
After calculating the probabilities, providing the probabilities to be used to perform the updates.
Including,
The new instance of the N-bit encryption key is
Different from the bit at the corresponding position in the N-bit random updating sequence, and having the specific binary value without invalidating any bits in the current instance of the N-bit encryption key that does not have the specific binary value Generated by invalidating each bit in the current instance of the N-bit encryption key,
Each bit in the N-bit random updating sequence is
Generated by the probability q i having the specific previous value
Way.
KR1020190014578A 2019-02-07 2019-02-07 Updating cryptographic keys stored in non-volatile memory KR102313584B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190014578A KR102313584B1 (en) 2019-02-07 2019-02-07 Updating cryptographic keys stored in non-volatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190014578A KR102313584B1 (en) 2019-02-07 2019-02-07 Updating cryptographic keys stored in non-volatile memory

Publications (2)

Publication Number Publication Date
KR20200097381A true KR20200097381A (en) 2020-08-19
KR102313584B1 KR102313584B1 (en) 2021-10-18

Family

ID=72291594

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190014578A KR102313584B1 (en) 2019-02-07 2019-02-07 Updating cryptographic keys stored in non-volatile memory

Country Status (1)

Country Link
KR (1) KR102313584B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100020481A (en) * 2007-05-22 2010-02-22 코닌클리케 필립스 일렉트로닉스 엔.브이. Updating cryptographic key data
US8751900B2 (en) * 2010-05-14 2014-06-10 Samsung Electronics Co., Ltd. Storage device having a non-volatile memory device and copy-back method thereof
KR20180135779A (en) * 2017-06-13 2018-12-21 한국과학기술연구원 Method for digital signature based on quantum key distribution and system performing the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100020481A (en) * 2007-05-22 2010-02-22 코닌클리케 필립스 일렉트로닉스 엔.브이. Updating cryptographic key data
US8751900B2 (en) * 2010-05-14 2014-06-10 Samsung Electronics Co., Ltd. Storage device having a non-volatile memory device and copy-back method thereof
KR20180135779A (en) * 2017-06-13 2018-12-21 한국과학기술연구원 Method for digital signature based on quantum key distribution and system performing the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Binary entropy function, WIKIPEDIA(2018.10.09.) 1부.* *
Xuanxuan Wang, et al "Secret key generation using entropy-constrained-like quantization scheme." 2016 23rd International Conference on Telecommunications (ICT). IEEE(2016.) *

Also Published As

Publication number Publication date
KR102313584B1 (en) 2021-10-18

Similar Documents

Publication Publication Date Title
US10740484B2 (en) Data masking
US10044703B2 (en) User device performing password based authentication and password registration and authentication methods thereof
US9703981B1 (en) Mobile device data encryption
US8175268B2 (en) Generating and securing archive keys
CN104978167B (en) Randomizer and method for generating random number
US20030138105A1 (en) Storing keys in a cryptology device
US9588908B2 (en) Memory circuit using resistive random access memory arrays in a secure element
US9830479B2 (en) Key storage and revocation in a secure memory system
US20200372183A1 (en) Digitally Signing Software Packages With Hash Values
US11270227B2 (en) Method for managing a machine learning model
US20160103994A1 (en) Storage medium having stored therein boot program, information processing apparatus, information processing system, information processing method, semiconductor apparatus, and storage medium having stored therein program
CN112507365A (en) Data matching method, terminal and storage medium
CN111666558B (en) Key rotation method, device, computer equipment and storage medium
US10951403B2 (en) Updating cryptographic keys stored in non-volatile memory
KR102313584B1 (en) Updating cryptographic keys stored in non-volatile memory
EP3681100B1 (en) Updating cryptographic keys stored in non-volatile memory
US11917059B2 (en) Batch transfer of control of memory devices over computer networks
JP6874042B2 (en) Updating the encryption key stored in non-volatile memory
US20220231838A1 (en) Server System to Control Memory Devices over Computer Networks
CN110516457B (en) Data storage method, data reading method and storage device
CN110287708B (en) One-time programmable encryption device and encryption method thereof
CN101465726A (en) Decode-proof method for cipher key as well as controller and memory device for implementing the method
US20230214144A1 (en) Electric device and method for emulating a non-volatile memory
US20230274037A1 (en) Secure Flash Controller
US20240146525A1 (en) Batch Transfer of Control of Memory Devices over Computer Networks

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant