JP6874042B2 - Updating the encryption key stored in non-volatile memory - Google Patents
Updating the encryption key stored in non-volatile memory Download PDFInfo
- Publication number
- JP6874042B2 JP6874042B2 JP2019042125A JP2019042125A JP6874042B2 JP 6874042 B2 JP6874042 B2 JP 6874042B2 JP 2019042125 A JP2019042125 A JP 2019042125A JP 2019042125 A JP2019042125 A JP 2019042125A JP 6874042 B2 JP6874042 B2 JP 6874042B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- encryption key
- processor
- random
- isp
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 39
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Description
本発明は、サイバーセキュリティーの分野に関するものであり、特に、通信を暗号化するために使用される暗号鍵に関するものである。 The present invention relates to the field of cybersecurity and, in particular, to encryption keys used to encrypt communications.
Nビット暗号鍵のエントロピー(entropy)H(N,p)=H(N,1−p)は、鍵のランダム性を定量化する(式中、pは、0または1の鍵の中の任意の1つのビットの確率である)。比較的高いエントロピーを有する鍵は、比較的低いエントロピーを有する鍵よりも安全である。ランダムな独立同分布(independent and identically distributed, iid)のビットを有する鍵は、H(N,p)=NH(p)ビットであり、H(p)=−(plog2p+(1−p)log2(1−p))である。例えば、バイアスしていない(unbiased)iidビット(p=0.5)は、H(p)がその最大値である1に達するため、H(N,p)=Nである。 The entropy H (N, p) = H (N, 1-p) of an N-bit cryptographic key quantifies the randomness of the key (in the formula, p is any of the 0 or 1 keys. Is the probability of one bit of). A key with a relatively high entropy is more secure than a key with a relatively low entropy. Keys with random independent and identically distributed (iid) bits are H (N, p) = NH (p) bits, and H (p) =-(log 2 p + (1-p)). log 2 (1-p)). For example, an unbiased iid bit (p = 0.5) is H (N, p) = N because H (p) reaches its maximum value of 1.
不揮発性メモリ(non-volatile memory, NVM)は、複数の単一ビットメモリセルを含み、それぞれプログラムされた状態であっても、またはプログラムされていない状態であってもよい。通常、慣例によると、プログラムされていないセルは、二進値1を有するが、プログラムされたセルは、二進値0を有する。ワンタイムプログラマブル不揮発性メモリ(one-time programmable NVM, OTP NVM)は、プログラム操作を元に戻すことができない。すなわち、プログラムされたセルを後でディプログラミング(deprogram)(または消去)することはできない。 Non-volatile memory (NVM) includes a plurality of single-bit memory cells, each of which may be programmed or unprogrammed. Normally, according to convention, unprogrammed cells have a binary value of 1, while programmed cells have a binary value of 0. One-time programmable non-volatile memory (one-time programmable NVM, OTP NVM) is irreversible for program operations. That is, the programmed cell cannot be deprogrammed (or erased) later.
ワンタイムプログラマブル不揮発性メモリ(OTPNVM)は、消去が不可能である。消去可能な他の種類の不揮発性メモリでも、更新操作は安全ではなく、鍵の現在の値の消去後、および鍵の新しい値の書き込み前に、攻撃者が操作を終了させ、既知のプログラムされていない状態で鍵を「フリーズ(freeze)」させる可能性がある。 The one-time programmable non-volatile memory (OTPNVM) cannot be erased. Even with other types of non-volatile memory that can be erased, the update operation is not secure and the attacker terminates the operation after erasing the current value of the key and before writing the new value of the key, and is known to be programmed. It may cause the key to "freeze" when not in use.
本発明のいくつかの実施形態において、プログラムされていないセルが特定の二進値を有する不揮発性メモリ(NVM)(デバイスに属する)に保存するためのNビット暗号鍵の新しいインスタンスを生成する装置を提供する。装置は、ネットワークインターフェースと、プロセッサとを含む。プロセッサは、ランダムNビット更新シーケンスを生成するよう構成される。プロセッサは、さらに、特定の二進値を有し、且つランダムNビット更新シーケンス内の対応して配置されたビットと異なるNビット暗号鍵の現在のインスタンス内の各ビットをネゲート(negate)するが、特定の二進値を有さないNビット暗号鍵の現在のインスタンス内のいかなるビットもネゲートしないことによって、Nビット暗号鍵の新しいインスタンスを生成するよう構成される。プロセッサは、さらに、Nビット暗号鍵の新しいインスタンスを生成した後、ネットワークインターフェースを使用して、Nビット暗号鍵の新しいインスタンスを装置に伝達して、不揮発性メモリ(NVM)に保存するよう構成される。 In some embodiments of the invention, a device that creates a new instance of an N-bit encryption key for an unprogrammed cell to store in a non-volatile memory (NVM) (belonging to a device) with a particular binary value. I will provide a. The device includes a network interface and a processor. The processor is configured to generate a random N-bit update sequence. The processor also negates each bit in the current instance of the N-bit encryption key that has a particular binary value and is different from the correspondingly placed bits in the random N-bit update sequence. It is configured to create a new instance of an N-bit encryption key by not negating any bit in the current instance of the N-bit encryption key that does not have a particular binary value. The processor is further configured to generate a new instance of the N-bit encryption key and then use the network interface to propagate the new instance of the N-bit encryption key to the device and store it in non-volatile memory (NVM). To.
本発明のいくつかの実施形態において、さらに、複数の単一ビットセルを含み、Nビット暗号鍵を保存するよう構成され、セルのうちのプログラムされていないセルが特定の二進値を有する不揮発性メモリ(NVM)と、プロセッサとを含む装置を提供する。プロセッサは、ランダムNビット更新シーケンスを生成するよう構成される。プロセッサは、さらに、特定の二進値を有し、且つランダムNビット更新シーケンス内の対応して配置されたビットと異なるNビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、特定の二進値を有さないNビット暗号鍵の現在のインスタンス内のいかなるビットもネゲートしないことによって、Nビット暗号鍵の新しいインスタンスを生成するよう構成される。プロセッサは、さらに、Nビット暗号鍵の新しいインスタンスを生成した後、不揮発性メモリ(NVM)においてNビット暗号鍵の現在のインスタンスをNビット暗号鍵の新しいインスタンスと置き換えるよう構成される。 In some embodiments of the invention, the non-volatile cells further include a plurality of single bit cells and are configured to store an N-bit encryption key, of which the unprogrammed cell has a particular binary value. A device including a memory (NVM) and a processor is provided. The processor is configured to generate a random N-bit update sequence. The processor also negates each bit in the current instance of an N-bit encryption key that has a particular binary value and is different from the correspondingly placed bits in the random N-bit update sequence, but is specific. It is configured to create a new instance of the N-bit encryption key by not negating any bit in the current instance of the N-bit encryption key that has no binary value. The processor is further configured to generate a new instance of the N-bit cryptographic key and then replace the current instance of the N-bit cryptographic key with the new instance of the N-bit cryptographic key in non-volatile memory (NVM).
本発明のいくつかの実施形態において、さらに、プログラムされていないセルが特定の二進値を有する不揮発性メモリ(NVM)に保存するためのNビット暗号鍵の新しいインスタンスを生成する方法を提供する。この方法は、ランダムNビット更新シーケンスを生成することと、特定の二進値を有し、且つランダムNビット更新シーケンス内の対応して配置されたビットと異なるNビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、特定の二進値を有さないNビット暗号鍵の現在のインスタンス内のいかなるビットもネゲートしないことによって、Nビット暗号鍵の新しいインスタンスを生成することを含む。 In some embodiments of the invention, it further provides a method of creating a new instance of an N-bit encryption key for storage in a non-volatile memory (NVM) where an unprogrammed cell has a particular binary value. .. This method produces a random N-bit update sequence and within the current instance of an N-bit encryption key that has a particular binary value and is different from the correspondingly placed bits in the random N-bit update sequence. Includes creating a new instance of an N-bit encryption key by negating each bit of, but not negating any bit in the current instance of the N-bit encryption key that does not have a particular binary value.
本発明のいくつかの実施形態において、さらに、プログラムされていないセルが特定の二進値を有する不揮発性メモリ(NVM)において、Nビット暗号鍵の複数の更新を容易にする方法を提供する。この方法は、これらの更新に対して、異なる各確率{qi}(i =1…U)を計算し、これらの更新のうちの各第i更新は、Nビット暗号鍵の現在のインスタンスに対するNビット暗号鍵の新しいインスタンスの期待されるエントロピーが、Nよりも小さい所定の閾値Eよりも小さくならないようにすることを含み、以下を条件とする:(i)Nビット暗号鍵の新しいインスタンスは、特定の二進値を有し、且つランダムNビット更新シーケンス内の対応して配置されたビットと異なるNビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、特定の二進値を有さないNビット暗号鍵の現在のインスタンス内のいかなるビットもネゲートしないことによって生成される;(ii)ランダムNビット更新シーケンス内の各ビットは、特定の二進値を有する確率qiで生成される。この方法は、さらに、確率を計算した後に、更新を行う時に使用するための確率を提供することを含む。 In some embodiments of the invention, there is further provided a method of facilitating multiple updates of an N-bit encryption key in non-volatile memory (NVM) in which an unprogrammed cell has a particular binary value. This method calculates each different probability {q i } (i = 1 ... U) for these updates, and each i-th update of these updates is for the current instance of the N-bit encryption key. The expected entropy of the new instance of the N-bit encryption key is not less than a predetermined threshold E less than N, provided that: (i) The new instance of the N-bit encryption key is: Negates each bit in the current instance of an N-bit encryption key that has a specific binary value and is different from the correspondingly placed bits in the random N-bit update sequence, but with a specific binary value Generated by not negating any bit in the current instance of a non-existent N-bit encryption key; (ii) Each bit in a random N-bit update sequence is generated with a probability q i having a particular binary value. Will be done. The method further comprises calculating the probabilities and then providing the probabilities for use when making updates.
本発明の不揮発性メモリは、暗号鍵を使用して通信を暗号化するため、更新操作が安全である。 Since the non-volatile memory of the present invention uses an encryption key to encrypt communication, the update operation is safe.
添付図面は、本発明の原理がさらに理解されるために含まれており、本明細書に組み込まれ、且つその一部を構成するものである。図面は、本発明の実施形態を例示しており、説明とともに、本発明の原理を説明する役割を果たしている。 The accompanying drawings are included for further understanding of the principles of the present invention, incorporated herein by reference, and constitute a portion thereof. The drawings exemplify embodiments of the present invention and serve to explain the principles of the present invention as well as explain them.
[前置き]
請求項を含む本願の内容において、暗号鍵の「更新」は、(i)鍵の新しいインスタンスの計算、(ii)メモリ内の鍵の現在のインスタンスと鍵の新しいインスタンスの交換、または(iii)(i)と(ii)の両方を指す。
[Introduction]
In the content of the present application, including claims, "updating" an encryption key is (i) calculating a new instance of the key, (ii) exchanging the current instance of the key with a new instance of the key in memory, or (iii). Refers to both (i) and (ii).
本明細書は、概して、不揮発性メモリ(NMV)において、プログラムされていないセルは二進値1を有するが、プログラムされたセルは二進値0を有すると仮定する。以下、図2を参照して明確に説明するが、ここで説明する技術は、逆の慣例を使用する不揮発性メモリ(NMV)にも利用することができる。 The present specification generally assumes that in non-volatile memory (NMV), unprogrammed cells have a binary value of 1, while programmed cells have a binary value of 0. Hereinafter, although it will be described clearly with reference to FIG. 2, the technique described here can also be applied to a non-volatile memory (NMV) using the reverse convention.
[概説]
不揮発性メモリに保存された暗号鍵を更新するのは、困難である。例えば、背景技術において上述したように、ワンタイムプログラマブル不揮発性メモリ(OTPNVM)は、消去が不可能である。また、消去可能な他の種類の不揮発性メモリでも、更新操作は安全ではなく、鍵の現在の値の消去後、および鍵の新しい値の書き込み前に、攻撃者が操作を終了させ、既知のプログラムされていない状態で鍵を「フリーズ」させる可能性がある。
[Overview]
It is difficult to update the encryption key stored in non-volatile memory. For example, as described above in the background art, the one-time programmable non-volatile memory (OTPNVM) cannot be erased. Also, with other types of non-volatile memory that can be erased, the update operation is not secure and the attacker terminates the operation after erasing the current value of the key and before writing the new value of the key. May cause the key to "freeze" unprogrammed.
この問題に取り組むため、本発明の実施形態は、鍵の中の(プログラムされていない)1ビットのみを変更し、(プログラムされた)0ビットを変更しないことにより、鍵を更新する。具体的に説明すると、鍵の現在のNビットインスタンスKi(以下、「Ki」で示す)を考慮して、ビットのNビットランダムシーケンスSi(以下、「Si」で示す)を生成し、その後、KiとSiの間のビット毎でAND演算(bitwise AND operation)、または任意の同等の演算を行うことによって、鍵の新しいインスタンスKi+1(以下、「Ki+1」で示す)を計算する。鍵の新しいインスタンスが現在のインスタンスに対して十分なエントロピーを有するように(すなわち、Kiの知識を持つ攻撃者がKi+1を推測できないようにするために)、0ビットと1ビットの両方を更新したい場合は、鍵の長さNを必要以上に長くする。
(注意すべきこととして、別の記述的慣例を使用すると、KiおよびKi+1は、同じ鍵の異なるインスタンスまたは値ではなく、異なる鍵とみなすことができる。そのため、例えば、Ki+1は、Kiを置き換える新しい鍵であると言うことができる。)
To address this issue, embodiments of the present invention update a key by changing only one (unprogrammed) bit in the key and not changing the (programmed) 0 bit. Specifically, an N-bit random sequence S i (hereinafter referred to as "S i ") of bits is generated in consideration of the current N-bit instance K i (hereinafter referred to as "K i") of the key. Then, by performing a bitwise AND operation for each bit between K i and S i , or any equivalent operation, a new instance of the key K i + 1 (hereinafter, "K i + 1") ”) Is calculated. To have sufficient entropy new instance of keys for the current instance (i.e., in order attacker with knowledge K i 'from being able infer K i + 1), 0-bit and 1-bit If you want to update both, make the key length N longer than necessary.
(Note that, using another descriptive convention, Ki and Ki + 1 can be considered as different keys rather than different instances or values of the same key, so for example, Ki + 1, can be said to be a new key to replace the K i.)
通常、できるだけ多くの更新を実行できるよう、Siは、偏って(biasedly)生成され、1に等しいSi内の各ビットに対する確率qi(以下、「qi」で示す)は、0.5よりも大きい。(鍵の最終更新に対し、qiがちょうど0.5になる場合もある。)具体的に説明すると、必要なエントロピーを提供する最大qi値を数値的に計算した後、この最大値を使用してSiを生成する。 Usually, to be able to perform as many updates, S i is biased (Biasedly) generating the probability q i for each bit in the same S i to 1 (hereinafter, denoted by "q i") is 0. Greater than 5. (In some cases, q i is exactly 0.5 for the last update of the key.) Specifically, after numerically calculating the maximum q i value that provides the required entropy, this maximum value is calculated. Use to generate S i.
いくつかの実施形態において、第i更新の直前に、現在の鍵Kiを考慮して、各qi値を計算する。前置きとして、注意すべきこととして、Kiを考慮すると、Ki+1のエントロピーは、N1i*H(qi)に等しい。式中、N1iは、Ki内の1ビットの数であり、且つH(qi)=−(qilog2qi+(1−qi)log2(1−qi))である。所定の閾値E(以下、「E」で示す)よりも大きい、またはそれに等しいこのエントロピーに対し、H(qi)は、E/N1iよりも大きいか、それに等しくなければならない。そのため、第i更新の前に、量E/N1iを計算することができる。続いて、E/N1iが1(H(q)の最大可能値)よりも小さいか、それに等しいことを条件とすると、qに対し、式H(q)=E/N1iを数値的に解くことができる。(注意すべきこととして、この解を計算する正確度は、使用する数値的方法、およびその方法を実施する手段によって決まる。)この等式の解qi *(またはqi *よりも小さい最も近い適切な値)をqiの値として使用することができる。 In some embodiments, just before the i-update , each q i value is calculated taking into account the current key K i. As a prelude, it should be noted, considering the K i, the entropy of K i + 1 is equal to N1 i * H (q i) . In the equation, N1 i is the number of 1 bit in K i , and H (q i ) =-(q i log 2 q i + (1-q i ) log 2 (1-q i )). is there. For this entropy greater than or equal to a predetermined threshold E (hereinafter referred to as "E"), H (q i ) must be greater than or equal to E / N1 i. Therefore, the quantity E / N1 i can be calculated before the i-th update. Then, provided that E / N1 i is less than or equal to 1 (the maximum possible value of H (q)), the equation H (q) = E / N1 i is numerically given to q. Can be solved. (Note that the accuracy of calculating this solution depends on the numerical method used and the means by which the method is implemented.) The smallest solution q i * (or q i *) of this equation. A close and appropriate value) can be used as the value of q i.
別の実施形態において、いかなる更新も行う前に、鍵のU回の更新に使用する1セットのqi値{q1, q2, … qU}を前もって計算する。この計算に対し、N1iの期待値、
(式中、q0は、1)を使用して、Kiを考慮してKi+1のエントロピーを推測することにより、必要なエントロピーEに到達する。H(qi)は、
)よりも大きいか、それに等しくなければならない。(この量は、より簡潔に
と記載してもよく、λ=E/Nである。)そのため、
)が1よりも大きいことが確定されるまで(i=U+1に対し)、q1で始まるqi値を繰り返し解くことができる。
In another embodiment, a set of q i values {q 1 , q 2 , ... q U } used to update the key U times is pre-computed before any update is performed. For this calculation, the expected value of N1 i,
(Wherein, q 0 is 1) is used by guessing the entropy of K i + 1 in view of the K i, to reach the required entropy E. H (q i ) is
) Must be greater than or equal to. (This amount is more concise
It may be described as, and λ = E / N. )so that,
) Is to (i = U + 1 until it is determined greater than 1) can be solved repeatedly q i values beginning with q 1.
通常、Siを生成しやすくするために、所定の整数mおよび可変整数nに対し、qiは、n/2mの形式を有する。Siを生成するために、Eビットを含むバイアスしていないランダムシードXi(以下、「Xi」で示す)を生成または取得する。そして、XiをSiのNビットにそれぞれ対応するN個のmビットシーケンスに拡大する(例えば、ハッシュ機能を使用して)。続いて、各mビットシーケンスの値とnを比較する。値がnよりも小さい場合、Si中の対応するビットを1に設定し;そうでなければ、ビットを0に設定する。 Usually, q i has a form of n / 2 m for a predetermined integer m and a variable integer n in order to facilitate the generation of S i. In order to generate S i , an unbiased random seed X i (hereinafter referred to as “X i ”) containing an E bit is generated or acquired. Then, X i is expanded to N m-bit sequences corresponding to the N bits of S i (for example, using the hash function). Subsequently, the value of each m-bit sequence is compared with n. If the value is less than n , set the corresponding bit in S i to 1; otherwise, set the bit to 0.
[システムの説明]
まず、図1を参照すると、図1は、本発明のいくつかの実施形態に係る暗号鍵を更新するシステム20の概略図である。図1に示した特定の実施形態は、Nビット暗号鍵「K」を使用して、インターネット24上のモノのインターネット(Internet of Things, IoT)デバイス22とインターネットサービスプロバイダ(Internet service provider, ISP)の間の通信を暗号化する。
[System description]
First, with reference to FIG. 1, FIG. 1 is a schematic diagram of a
一般的に、デバイス22が同じISPを保持していると仮定すると、鍵のセキュリティは破られないため、鍵を更新する必要はない。しかしながら、デバイス22を異なるISPに切り替えた場合、または鍵のセキュリティが破られた場合は、鍵を更新する必要がある。 Generally, assuming that the device 22 holds the same ISP, the security of the key is not breached and there is no need to update the key. However, if the device 22 is switched to a different ISP, or if the security of the key is breached, the key needs to be updated.
例えば、図1は、デバイス22が第1ISP26aのサービスを受けているが、これから第2ISP26bのサービスを受ける予定である場合を示したものである。この場合、第2ISP26bは、第1ISP26aから鍵の現在のインスタンスKiをリクエストする。このリクエストに応じて、第1ISP26aは、インターネット24上でKiを第2ISP26bに伝達する。第1ISP26aは、さらに、第2ISP26bにiの値を伝達することができる。すなわち、第1ISP26aは、既に実行された暗号鍵に更新の数を指定することができる。続いて、第2ISP26bは、鍵の新しいインスタンスKi+1を生成した後、例えば、デバイス22が属するWiFiネットワークにサービスを提供するルーター28を介して、インターネット24上で、Ki+1をデバイス22に伝達する。(一般的に、第2ISP26bは、Ki+1をデバイス22に伝達する前に、例えば、Kiを使用して、Ki+1を暗号化する。)続いて、デバイス22および第2ISP26bは、Ki+1を使用して、お互いとの通信を開始し、通信を暗号化および復号化することができる。
For example, FIG. 1 shows a case where the device 22 has received the service of the first ISP26a, but is planning to receive the service of the second ISP26b from now on. In this case, the 2ISP26b is, to request the current instance K i of the key from the first 1ISP26a. In response to this request, the 1ISP26a transmits a K i to the 2ISP26b over the
第2ISP26bは、プロセッサ30と、例えば、ネットワークインターフェースコントローラ(network interface controller, NIC)を含むネットワークインターフェース32とを含む。プロセッサ30は、ネットワークインターフェース32を介して、(他のデバイスとともに)第2ISP26bおよびデバイス22との通信を交換するよう構成される。プロセッサ30は、さらに、デバイス22との通信を暗号化するために使用される暗号鍵を更新するよう構成される。例えば、上述したように、プロセッサ30は、デバイス22との通信を初期化することにより鍵を更新することができる。あるいは、またはさらに、プロセッサ30は、鍵が攻撃者によって盗まれた可能性があると認識することにより、プロセッサ30(または外部のサイバーセキュリティシステム)に応答して鍵を更新することができる。
The
同様に、デバイス22は、プロセッサ34と、通信インターフェース36とを含む。プロセッサ34は、通信インターフェース36を介して、(他のデバイスとともに)第2ISP26bとの通信を交換するよう構成される。例えば、通信インターフェース36は、プロセッサ34がルーター28を介して通信を交換するために使用することのできるWiFiカードを含んでもよい。
Similarly, the device 22 includes a
デバイス22は、さらに、プロセッサ34が暗号鍵を保存するメモリ38を含む。そのため、例えば、メモリ38は、まず、Kiを保持する。第2ISP26bからKi+1を受信した後、プロセッサ34は、KiにKi+1を上書きすることができる。
The device 22 further includes a
通常、メモリ38は、不揮発性であり、例えば、メモリ38は、ワンタイムプログラマブル不揮発性メモリ(OTPNVM)、フラッシュメモリ、または電気的消去再書込み可能な読出し専用メモリ(electrically erasable programmable read-only memory, EEPROM)であってもよい。しかしながら、有利に、図2を参照しながら下記でさらに説明するように、暗号鍵の更新は、メモリ38の中のメモリセルをディプログラミングする必要はない。
Typically, the
いくつかの実施形態において、図5を参照しながら下記でさらに説明するように、第2ISP26bは、サーバー40によって提供されるデータシートに含まれるパラメータ(特に、ビット生成確率qi)を使用して、Ki+1を生成する。例えば、ネットワークインターフェース44を使用することにより、サーバー40は、データシートをウェブサイトに公開することができる。Ki+1を生成する直前に、第2ISP26bは、ウェブサイトからデータシートを回収して、データシートにおいて、Ki+1を生成するのに必要なパラメータを検索することができる。あるいは、Ki+1を生成する前の任意の時点で、サーバー40は、データシートを第2ISP26bに伝達することができ(例えば、インターネット24上で)、その後、第2ISP26bは、データシートを揮発性または不揮発性メモリ(図示せず)に保存することができる。続いて、Ki+1を生成する直前に、第2ISP26bは、メモリからデータシートを回収し、その後、関連するパラメータを検索することができる。
In some embodiments, the
他の実施形態において、デバイス22のプロセッサ34は、Ki+1を生成し、その後、Ki+1を第2ISP26bに伝達する。このような実施形態において、プロセッサ34は、上述したデータシートをサーバー40から受信することができる。別の選択肢として、サーバー40または他の適切な第三者がKi+1を生成し、その後、Ki+1をデバイス22および第2ISP26bの両方に伝達してもよい。
In another embodiment, the
サーバー40は、プロセッサ42と、例えば、NICを含むネットワークインターフェース44とを含む。プロセッサ42は、ネットワークインターフェース44を介して、第2ISP26b(および/またはデバイス22)との通信を交換するよう構成される。
The
強調すべきこととして、システム20の構成要素および配置は、単なる例として提供しただけである。一般的に、ここで説明する各技術は、適切なシステムに属する適切なプロセッサによって実行可能である。例えば、ここで説明する技術を使用して、携帯電話に属する埋め込み型SIM(embedded subscriber identification module, eSIM)または埋め込みセキュアエレメント(embedded secure element, eSE)に保存された暗号鍵を更新することができる。例えば、携帯電話のサービスプロバイダーは、Ki+1を生成して、Ki+1を携帯電話に伝達することができ、その後、携帯電話は、電話に属する不揮発性メモリにKi+1を保存することができる。
It should be emphasized that the components and arrangement of the
一般的に、ここで説明する各プロセッサは、単一プロセッサとして埋め込まれても、あるいは協同的にネットワーク化された、またはクラスタ化されたプロセッサの集合であってもよい。いくつかの実施形態において、ここで説明するプロセッサのうちの少なくとも1つの機能は、例えば、1つまたはそれ以上の特定用途集積回路(Application-Specific Integrated Circuit, ASIC)またはフィールドプログラマブルゲートアレイ(Field-Programmable Gate Array, FPGA)を使用して、ハードウェアにおいて単独で実施されてもよい。別の実施形態において、ここで説明する各プロセッサの機能は、ソフトウェアにおいて少なくとも部分的に実施される。例えば、いくつかの実施形態において、ここで説明する各プロセッサは、少なくとも中央処理装置(central processing unit, CPU)およびランダムアクセスメモリ(random access memory, RAM)を含むプログラムされたデジタル計算装置として埋め込まれる。ソフトウェアプログラムを含むプログラムコード、および/またはデータは、RAMにロードされ、CPUによって実行および処理される。プログラムコードおよび/またはデータは、例えば、ネットワーク上で、電子フォームでプロセッサにダウンロードすることができる。代わりに、またはさらに、プログラムコードおよび/またはデータは、磁性、光学、または電子メモリ等の一時的でない有形の媒体(non-transitory tangible media)に提供および/または保存してもよい。このようなプログラムコードおよび/またはデータは、プロセッサに提供された時、ここで説明するタスクを実行するよう構成された機械または特殊用途のコンピュータを生成する。 In general, each processor described herein may be embedded as a single processor or may be a collection of co-networked or clustered processors. In some embodiments, the function of at least one of the processors described herein is, for example, one or more Application-Specific Integrated Circuits (ASICs) or Field-Specific Integrated Circuits (ASICs) or Field-Specific Integrated Circuits (ASICs). It may be implemented independently in hardware using Programmable Gate Array, FPGA). In another embodiment, the functionality of each processor described herein is at least partially implemented in software. For example, in some embodiments, each processor described herein is embedded as a programmed digital calculator 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 and executed and processed by the CPU. The program code and / or data can be downloaded to the processor in electronic form, for example, over a network. Alternatively, or in addition, the 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, produces a machine or special purpose computer configured to perform the tasks described herein.
[鍵の新しいインスタンスを生成する]
ここで、図2を参照すると、図2は、本発明のいくつかの実施形態に係る暗号鍵の新しいインスタンスの生成の概略図である。
Create a new instance of the key
Here, with reference to FIG. 2, FIG. 2 is a schematic diagram of the generation of a new instance of a cryptographic key according to some embodiments of the present invention.
図2は、図1において説明した状況に関連し、プロセッサ30(または上述した他のプロセッサ)は、鍵の現在のインスタンスKiを考慮して、Nビット暗号鍵の新しいインスタンスKi+1を生成する。概説において説明したように、図1を参照すると、Ki+1を生成して、不揮発性メモリにおいてKiとKi+1を交換することにより、メモリセルをディプログラミングする必要がなくなる。しかしながら、図4を参照しながら下記でさらに詳しく説明するように、Kiに対するKi+1の期待されるエントロピーは、所定の閾値エントロピーEよりも小さくない。(暗号鍵におけるビットNの数よりも少ない閾値Eは、例えば、システム20のセキュリティアーキテクトによって定義することができる。)
Figure 2 is related to the situation described in FIG. 1, the processor 30 (or other processor described above), taking into account the current instance K i key, a new instance K i + 1 of the N-bit cryptographic key Generate. As described in the review, with reference to FIG. 1, and generates a K i + 1, by replacing a K i and K i + 1 in the non-volatile memory, must be de-programming is eliminated the memory cell. However, as described in more detail below with reference to FIG. 4, the expected entropy of K i + 1 for the K i is not smaller than the predetermined threshold entropy E. (The threshold E, which is less than the number of bits N in the encryption key, can be defined, for example, by the security architect of
具体的に説明すると、Ki+1を生成するために、プロセッサは、まず、ランダムNビット更新シーケンスSiを生成する。次に、プロセッサは、二進値1を有し、且つSi内の対応して配置されたビットと異なるKi内の各ビットをネゲートするが、二進値1を有さないKi内のいかなるビットもネゲートしないことによって、Ki+1を生成する。図2は、2個のネゲートされたビットを示し、それぞれ上向きの矢印で表示する。
Specifically, in order to generate K i + 1 , the processor first generates a random N-bit update sequence S i . The processor has a
通常、図2に示したように、プロセッサは、KiとSiの間でビット毎のAND演算を行うことによって、Ki+1を生成する。そのため、Ki内のいくつかの1ビットは、Ki+1内の0ビットで置き換えられるが、Ki内の0ビットは、1ビットで置き換えられないため、セルをディプログラミングしなくても、不揮発性メモリにおいて更新することができる。
Normally, as shown in FIG. 2, the processor generates K i + 1 by performing a bit-by-bit AND operation between K i and S i. Therefore, some 1-bit in the K i, but is replaced by 0 bit in the
プロセッサは、Siにおいて確率qiが1の各ビットを生成し、通常、qiは、0.5よりも大きい。(概説において説明したように、鍵の最終更新に対し、qiがちょうど0.5になる場合もある。)いくつかの実施形態において、図1を参照して上述したように、qiは、サーバー40によって提供されたデータシートにおいて指定される。このようなデータシートは、例えば、iの各値、Nの1つまたはそれ以上の値、およびEの1つまたはそれ以上の値に対するqiを指定するルックアップテーブルを含むことができる。別の実施形態において、プロセッサはqiを計算する。以下、図4を参照しながら、qiの計算についてさらに詳しく説明する。
The processor generates each bit of the probability q i is 1 at S i, usually, q i is greater than 0.5. (As explained in the overview, q i may be exactly 0.5 for the last update of the key.) In some embodiments, q i is as described above with reference to FIG. , Specified in the datasheet provided by
プログラムされていないメモリセルが二進値0を有する逆の不揮発性メモリの慣例については、プロセッサは、Siにおいて確率qiが0の各ビットを生成する。そして、プロセッサは、KiとSiの間でビット毎のOR演算を行うことによって、Si内の対応して配置されたビットと異なるKi内の各0ビットをネゲートする。 For the reverse non-volatile memory convention where unprogrammed memory cells have a binary value of 0, the processor produces each bit with a probability q i of 0 at S i. Then, the processor negates each 0 bit in K i different from the correspondingly arranged bits in S i by performing a bit-by-bit OR operation between K i and S i.
[ランダムシーケンスを生成する]
ここで、図3を参照すると、図3は、本発明のいくつかの実施形態に係るランダムシーケンスSiを生成する技術の概略図である。この技術は、所定の整数mおよび可変整数nに対し、qiがn/2mに等しいと仮定する。(例えば、mは、10であってもよく、qi=n/1024となる。)
[Generate a random sequence]
Here, with reference to FIG. 3, FIG. 3 is a schematic diagram of a technique for generating a random sequence S i according to some embodiments of the present invention. This technique assumes that for a given integer m and a variable integer n, q i is equal to n / 2 m. (For example, m may be 10, and q i = n / 1024.)
Siを生成するため、プロセッサは、まず、外部ソースからEビットを有するバイアスしていないランダムシードXiを生成または取得する。(Xiは、バイアスされておらず、Xiにける各ビットは、0.5の確率が1である。)プロセッサは、さらに、qi=n/2mを検索または計算する。続いて、プロセッサは、XiをそれぞれSiのビットに対応するN個のmビットシーケンス{Zij}に拡大する(j=1…N)。例えば、プロセッサは、N個の異なる個別の計数機cを用いて、ハッシュ機能f(X,c)をXiに適用するため、例えば、Siの第1ビットに対応する第1mビットシーケンスZi1は、f(Xi,1)に等しく、Siの第2ビットに対応する第2mビットシーケンスZi2は、f(Xi,2)に等しい(以下、同様)。適切なハッシュ機能の例は、SHA−2、SHA−256、SHA−512、およびSHA−3等のセキュアハッシュアルゴリズム(secure hash algorithm, SHA)を含む。 To generate S i , the processor first generates or obtains an unbiased random seed X i with an E bit from an external source. (X i is unbiased and each bit in X i has a probability of 0.5.) The processor further searches or calculates q i = n / 2 m. Subsequently, the processor expands X i into N m-bit sequences {Z ij } corresponding to the bits of S i (j = 1 ... N). For example, the processor applies the hash function f (X, c) to X i using N different individual counters c, so that, for example, the first m-bit sequence Z corresponding to the first bit of S i. i1 is equal to f (X i , 1), and the second m-bit sequence Z i2 corresponding to the second bit of S i is equal to f (X i , 2) (the same applies hereinafter). Examples of suitable hash functions include secure hash algorithms (Sha) such as SHA-2, SHA-256, SHA-512, and SHA-3.
次に、Si内の各ビットに対し、プロセッサは、nよりも小さい対応するmビットシーケンスの値に応じて、ビットを1に設定する。例えば、Zi1がnよりも小さい場合、Si内の各第1ビットを1に設定し;そうでなければ、ビットを0に設定する。 Next, for each bit in S i , the processor sets the bit to 1 according to the value of the corresponding m-bit sequence less than n. For example, if Z i1 is less than n , each first bit in S i is set to 1; otherwise, the bit is set to 0.
図3において特定の技術を示したが、注意すべきこととして、Si内の各ビットが1の確率qiを有すると仮定すると、(qiがn/2mの形式でなくても)他の適切な技術を使用してSiを生成してもよい。 A particular technique has been shown in FIG. 3, but it should be noted that assuming that each bit in S i has a probability q i of 1, (even if q i is not in the form n / 2 m). other suitable techniques may be used to generate a S i using.
[1回の更新に対するビット生成確率を計算する]
ここで、図4を参照すると、図4は、本発明のいくつかの実施形態に係るビット生成確率qiを計算する技術の概略図である。
[Calculate the bit generation probability for one update]
Here, with reference to FIG. 4, FIG. 4 is a schematic diagram of a technique for calculating the bit generation probability q i according to 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を解く。この解は、図4において表記qi *で示してある。(ほとんどの場合、等式に対して2つの解があり;プロセッサは、2つの解のうち大きい方を選択する。)その後、プロセッサは、qi *からqiを得る。例えば、プロセッサは、qiをqi *に設定してもよく、あるいは、qi *よりも小さい、またはそれに等しい最大の値n/2m設定してもよい。(言い換えると、プロセッサは、n/2mがqi *より小さい、またはそれに等しい最大の整数nを見つける。) In some embodiments, the processor that produces K i + 1 calculates q i before generating S i. Normally, in such an embodiment, the processor first identifies the number N1 i of a bit in K i. Next, as shown in FIG. 4, the processor solves H (q) = − (qlog 2 q + (1-q) log 2 (1-q)) = E / N1 i with respect to q. This solution is shown in FIG. 4 by the notation q i * . (In most cases, there are two solutions to the equation; the processor chooses the larger of the two solutions.) Then the processor gets q i from q i * . For example, the processor may set q i to q i * , or may set the maximum value n / 2 m less than or equal to q i *. (In other words, the processor finds the largest integer n for which n / 2 m is less than or equal to q i *.)
概説において説明したように、Kiを考慮すると、Ki+1のエントロピーは、N1i*H(qi)に等しい。そのため、qiをqi *に、またはqi *よりも小さい最も近い適切な値に設定することによって、プロセッサは、少なくともEのエントロピーを提供するqiの最大の適切な値を効果的に選択することができる。 As explained in the overview, considering K i , the entropy of K i + 1 is equal to N1 i * H (q i). Therefore, by setting q i to q i * or the closest appropriate value less than q i * , the processor effectively sets the maximum appropriate value of q i to provide at least the entropy of E. You can choose.
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 may define multiple values of q and then set q i to the maximum of values where H (q) is not less than E / N1 i. Good. For example, the processor produces a sequence of values [2 m-1 / 2 m , (2 m-1 + 1) / 2 m , ... (2 m- 1) / 2 m ], and then q i is H ( q) can be set to the maximum value among the values not smaller than E / N1 i.
E/N1iが1よりも大きい場合、必要なエントロピーEを得ることができないため、プロセッサは、Ki+1を生成しない。この場合、プロセッサは、例えば、デバイス22のメモリ38(図1)を交換または消去する必要があることを示す適切なエラーメッセージを生成することができる。 If E / N1 i is greater than 1, the processor will not generate K i + 1 because the required entropy E cannot be obtained. In this case, the processor can generate, for example, an appropriate error message indicating that memory 38 (FIG. 1) of device 22 needs to be replaced or erased.
[複数の更新に対してビット生成確率を予備計算する]
いくつかの実施形態において、Ki+1を生成するプロセッサは、N1iを使用しないでqiを計算する。それどころか、プロセッサは、各更新において、N1iの期待値、N1i *に基づいて、鍵の複数の更新に対してqi値のシーケンスを前もって計算する。あるいは、サーバー40(図1)は、1つまたはそれ以上の対のNまたはE値に対してqi値の各シーケンスを指定するデータシートを生成してもよい。続いて、図1を参照して上述したように、サーバー40は、図2〜図3を参照して説明した方法で、暗号鍵を更新したい第三者(例えば、第2ISP26b)にデータシートを提供することができる。
[Pre-calculate bit generation probability for multiple updates]
In some embodiments, the processor that produces K i + 1 calculates q i without using N1 i. Instead, the processor, at each update, the expected value of N1 i, based on the N1 i *, advance to calculate a sequence of q i values for a plurality of key update. Alternatively, server 40 (FIG. 1) may generate a datasheet that specifies each sequence of q i values for one or more pairs of N or E values. Subsequently, as described above with reference to FIG. 1, the
これに関し、図5を参照すると、図5は、本発明のいくつかの実施形態に係る暗号鍵の複数の更新を容易にする方法46のフロー図である。具体的に説明すると、方法46において、1つまたはそれ以上の異なる(N,E)対に関する{qi}シーケンスを指定するデータシート(すなわち、(i)N(暗号鍵におけるビットの数)および(ii)E(エントロピー閾値)からなる1つまたはそれ以上の異なる対の値)を生成および提供する。方法46は、通常、上述したように、サーバー40のプロセッサ42によって実行される。あるいは、方法46におけるステップのサブセット(例えば、単一の(N,E)対に関する{qi}の計算)をプロセッサ、例えば、鍵を更新する第2ISP26bのプロセッサ30で行う。
In this regard, with reference to FIG. 5, FIG. 5 is a flow diagram of a
方法46は、プロセッサ42がビット生成確率のシーケンスを計算したいシーケンスに関する次の事前定義された(N,E)対を選択する選択ステップ47で始まる。(各(N,E)対は、例えば、セキュリティ専門家によってプロセッサ42に提供することができる。)次に、プロセッサは、鍵のU個の更新に対して異なる各確率{qi}(i=1…U)を計算する。各qi値を計算して、鍵の現在のインスタンス(Ki)に関する鍵の新しいインスタンス(Ki+1)の期待されるエントロピーが、Eよりも小さくならないようにするが、図2〜3を参照して上述したように、鍵の新しいインスタンスを生成することを条件とする。つまり、qiは、通常、実際のエントロピー(前もって知ることができない)の代わりにKi(H(q)*N1i *)に関するKi+1の期待されるエントロピーを使用して、図4を参照して上述したように計算される。
さらに具体的に説明すると、選択ステップ47の後、プロセッサは、初期化ステップ48において、q0を1に設定し、インデックスiを1に初期化する。続いて、プロセッサは、qiを繰り返し計算して、鍵の新しいインスタンスの期待されるエントロピーがEよりも小さくなるまで、インデックスを増加させる。qiを計算するために、プロセッサは、まず、計算ステップ50において、
を計算する。次に、第1確認ステップ52において、プロセッサは、E/N1i *が1よりも小さい、またはそれに等しいかどうかを確認する。YESの場合、プロセッサは、設定ステップ54において、qiをH(q)がE/N1i *よりも小さくないqの最大の適切な値に設定する。例えば、図4を参照して上述したように、プロセッサは、qiをqi *に(ここで、H(qi *)は、E/N1i *)、またはqi *よりも小さい最も近い適切な値に設定することができる。続いて、増加ステップ56において、プロセッサは、インデックスiを増加させる。
More specifically, after the selection step 47, the processor sets q 0 to 1 and initializes the index i to 1 in the
To calculate. Next, in the
第1確認ステップ52において、E/N1i *が1よりも大きいことを確認した上で、プロセッサは、現在のインデックスiに関するqiを計算しない。それどころか、データシート更新ステップ58において、ここまで計算してきたシーケンス{q1, q2, … qU}(U(現在のインデックスよりも1つ小さい)は、鍵の許容される更新の最大数)を(N,E)の下方にあるデータシートに追加する。
In the
データシート更新ステップ58の後、プロセッサは、第2確認ステップ60において、これ以上の(N,E)対が残っているかどうかを確認する。YESの場合、プロセッサは、選択ステップ47に戻り、選択された(N,E)対に対して{qi}を計算した後、データシートを更新する。そうでなければ、プロセッサは、提供ステップ62において、完成したデータシートを提供し、暗号鍵の更新に使用する。例えば、図1を参照して上述したように、プロセッサは、データシートをウェブサイトにアップロードしてもよく、あるいは、データシートを他のデバイスに伝達してもよい。
After the data
図2を参照して上述したように、各qi値は、通常、0.5よりも大きい。(しかし、qUがちょうど0.5になる場合もある)。図4に示したH(q)のグラフを観察するとわかるように、E/N1i *がiとともに増加することを考慮すると、qi *(そのため、qi)の値は、iが増加するにつれて減少する。例えば、E=80およびN=256に対し、方法46は、11qi *値の減少列: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 mentioned above with reference to FIG. 2, each q i value is usually greater than 0.5. (But sometimes q U is just 0.5). As can be seen by observing the graph of H (q) shown in FIG. 4, considering that E / N1 i * increases with i , the value of q i * (hence, q i) increases i. It decreases as it goes. For example, for E = 80 and N = 256,
このデータシートを考慮して、鍵の新しいインスタンスを生成するプロセッサ(例えば、第2ISP26bのプロセッサ30)は、N、E、およびiを考慮して、適切なqi値を検索する。(図1を参照して上述したように、第1ISP26aは、iを第2ISP26bに指定する。)続いて、図2〜図3を参照して上述したように、プロセッサは、qiを使用して更新シーケンスSiを生成した後、Siを使用してKiからKi+1を生成する。
With this datasheet in mind, the processor that creates the new instance of the key (eg,
本発明は、通信を暗号化するために使用される暗号鍵に関するものである。 The present invention relates to an encryption key used to encrypt a communication.
20 システム
22 IoTデバイス
24 インターネット上のISP
26a 第1ISP
26b 第2ISP
28 ルーター
30、34、42 プロセッサ
32、44 ネットワークインターフェース
36 通信インターフェース
38 メモリ
40 サーバー
46 方法
47、48、50、52、54、56、58、60、62 ステップ
Ki 鍵の現在のインスタンス
Ki+1 鍵の新しいインスタンス
qi 確率
Si ビットのランダムシーケンス
Xi バイアスしていないランダムシード
{Zij} mビットシーケンス
20 System 22
26a 1st ISP
26b 2nd ISP
28
Claims (15)
前記システムが、第1ISP、第2ISP及び前記不揮発性メモリを有するIoTデバイスを含み、
前記第2ISPが、ネットワークインターフェースと、プロセッサと、
を含み
前記プロセッサは、
前記IoTデバイスが前記第1ISPのサービスを受けているが、これから前記第2ISPのサービスを受ける予定である場合に、前記第2ISPが第1ISPから前記Nビット暗号鍵の現在のインスタンスをリクエストすることと、
ランダムNビット更新シーケンスを生成することと、
前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス内の対応して配置されたビットと異なる前記Nビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス内の対応して配置されたビットと異ならない前記Nビット暗号鍵の現在のインスタンス内の各ビットまたは前記特定の二進値を有さない前記Nビット暗号鍵の前記現在のインスタンス内の各ビットもネゲートしないことによって、前記Nビット暗号鍵の前記新しいインスタンスを生成することと、
前記Nビット暗号鍵の前記新しいインスタンスを生成した後、前記ネットワークインターフェースを使用して、前記Nビット暗号鍵の前記新しいインスタンスを前記IoTデバイスに伝達して、前記不揮発性メモリに保存することと、
を行うよう構成されるシステム。 A system in which an unprogrammed cell creates a new instance of an N-bit cryptographic key for storage in non-volatile memory with a particular binary value.
The system includes an IoT device having a first ISP, a second ISP and the non-volatile memory.
The second ISP is a network interface, a processor, and
Including
The processor
When the IoT device has received the service of the first ISP, but will receive the service of the second ISP from now on, the second ISP requests the current instance of the N-bit encryption key from the first ISP. ,
Generating a random N-bit update sequence and
Each bit in the current instance of the N-bit encryption key that has the particular binary value and is different from the correspondingly arranged bits in the random N-bit update sequence is negated, but the particular two. The bits in the current instance of the N-bit encryption key that have a decimal value and are not different from the correspondingly arranged bits in the random N-bit update sequence or that do not have the particular binary value. Creating the new instance of the N-bit encryption key by not negating each bit in the current instance of the N-bit encryption key,
After creating the new instance of the N-bit encryption key, the network interface is used to transmit the new instance of the N-bit encryption key to the IoT device and store it in the non-volatile memory.
System that will be configured to perform.
前記プロセッサが、
Eビットを有するバイアスしていないランダムシードをそれぞれ前記ランダムNビット更新シーケンスの前記ビットに対応するN個のmビットシーケンスに拡張することと、
前記ランダムNビット更新シーケンス内の各ビットに対し、nよりも小さい前記対応するmビットシーケンスの値に応じて、前記ビットを前記特定の二進値に設定することと、
を行うことによって、前記ランダムNビット更新シーケンスを生成するよう構成された請求項3に記載のシステム。 The probability is equal to n / 2 m for a given integer m and a variable integer n.
The processor
Extending an unbiased random seed with E bits to N m-bit sequences corresponding to the bits of the random N-bit update sequence, respectively.
For each bit in the random N-bit update sequence, the bit is set to the particular binary value according to the value of the corresponding m-bit sequence less than n.
The system according to claim 3, wherein the random N-bit update sequence is generated by performing the above.
前記システムが、第1ISP、第2ISP及びIoTデバイスを含み、
前記IoTデバイスが、
複数の単一ビットセルを含み、前記Nビット暗号鍵を保存するよう構成され、前記セルのうちのプログラムされていないセルが特定の二進値を有する不揮発性メモリと、プロセッサと、を含み、
前記プロセッサは、
ランダムNビット更新シーケンスを生成することと、
前記IoTデバイスが前記第1ISPのサービスを受けているが、これから前記第2ISPのサービスを受ける予定である場合に、前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス内の対応して配置されたビットと異なる前記Nビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス内の対応して配置されたビットと異ならない前記Nビット暗号鍵の現在のインスタンス内の各ビットまたは前記特定の二進値を有さない前記Nビット暗号鍵の前記現在のインスタンス内の各ビットもネゲートしないことによって、前記Nビット暗号鍵の新しいインスタンスを生成することと、
前記Nビット暗号鍵の前記新しいインスタンスを生成した後、前記不揮発性メモリにおいて前記Nビット暗号鍵の前記現在のインスタンスを前記Nビット暗号鍵の前記新しいインスタンスと置き換えることと、
前記Nビット暗号鍵の前記新しいインスタンスを前記第2ISPに伝達することとを行うよう構成されるシステム。 A system that creates a new instance of an N-bit encryption key
The system includes a first ISP, a second ISP and an IoT device.
The IoT device
A non-volatile memory that includes a plurality of single bit cells and is configured to store the N-bit encryption key, the unprogrammed cell of the cells having a specific binary value, and a processor.
The processor
Generating a random N-bit update sequence and
If the IoT device has received the service of the first ISP but is going to receive the service of the second ISP from now on, it has the specific binary value and corresponds within the random N-bit update sequence. Each bit in the current instance of the N-bit encryption key that differs from the placed bits is negated, but has the particular binary value and is correspondingly placed in the random N-bit update sequence. The N by not negating each bit in the current instance of the N-bit encryption key that is not different from a bit or each bit in the current instance of the N-bit encryption key that does not have a particular binary value. Creating a new instance of the bit encryption key and
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 non-volatile memory.
The N-bit cryptographic key the system that will be configured to perform a to a new instance is transmitted to the first 2ISP of.
前記プロセッサが、さらに、前記ランダムNビット更新シーケンスを生成する前に、前記特定の確率を計算して、前記Nビット暗号鍵の前記現在のインスタンスに対する前記Nビット暗号鍵の前記新しいインスタンスの期待されるエントロピーが、Nより小さい所定の閾値Eよりも小さくならないようにするよう構成された請求項5に記載のシステム。 The processor is configured to generate each bit in the random N-bit update sequence with a particular probability of having the particular binary value.
The processor further calculates the particular probability before generating the random N-bit update sequence to expect the new instance of the N-bit encryption key relative to the current instance of the N-bit encryption key. The system according to claim 5, wherein the entropy is not less than a predetermined threshold E smaller than N.
前記方法が、第1ISP、プロセッサを有する第2ISP及び前記不揮発性メモリを有するIoTデバイスを含むシステムを適用し、
前記方法が、
前記プロセッサが、前記IoTデバイスが前記第1ISPのサービスを受けているが、これから前記第2ISPのサービスを受ける予定である場合に、前記第2ISPが第1ISPから前記Nビット暗号鍵の現在のインスタンスをリクエストすることと、
前記プロセッサが、ランダムNビット更新シーケンスを生成することと、
前記プロセッサが、前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス内の対応して配置されたビットと異なる前記Nビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス内の対応して配置されたビットと異ならない前記Nビット暗号鍵の現在のインスタンス内の各ビットまたは前記特定の二進値を有さない前記Nビット暗号鍵の前記現在のインスタンス内のいかなるビットもネゲートしないことによって、前記Nビット暗号鍵の前記新しいインスタンスを生成することと、
を含む方法。 A method in which an unprogrammed cell creates a new instance of an N-bit cryptographic key for storage in non-volatile memory with a particular binary value.
The method applies a system comprising a first ISP, a second ISP with a processor and an IoT device with the non-volatile memory.
The above method
When the processor receives the service of the first ISP, but is planning to receive the service of the second ISP, the second ISP obtains the current instance of the N-bit encryption key from the first ISP. To request and
That the processor generates a random N-bit update sequence,
The processor negates each bit in the current instance of the N-bit encryption key that has the particular binary value and is different from the correspondingly arranged bits in the random N-bit update sequence. Each bit in the current instance of the N-bit encryption key having the particular binary value and not different from the correspondingly arranged bits in the random N-bit update sequence or the particular binary value. Creating the new instance of the N-bit encryption key by not negating any bits in the current instance of the N-bit encryption key that it does not have.
How to include.
前記プロセッサが、前記特定の二進値を有する前記Nビット暗号鍵の前記現在のインスタンス内のビットの数N1を識別することと、
前記プロセッサが、qに関する−(qlog2q+(1−q)log2(1−q))=E/N1を解き、Eが予め定義されたエントロピー閾値であることと、
前記プロセッサが、qから前記確率を得ることと、
をさらに含む請求項10に記載の方法。 Before generating the random N-bit update sequence,
The processor identifies the number N1 of bits in the current instance of the N-bit encryption key having the particular binary value.
The processor solves − (qlog 2 q + (1-q) log 2 (1-q)) = E / N1 with respect to q, and E is a predefined entropy threshold.
When the processor obtains the probability from q,
10. The method of claim 10.
前記ランダムNビット更新シーケンスを生成することが、
前記プロセッサが、Eビットを有するバイアスしていないランダムシードをそれぞれ前記ランダムNビット更新シーケンスの前記ビットに対応するN個のmビットシーケンスに拡張することと、
前記プロセッサが、前記ランダムNビット更新シーケンス内の各ビットに対し、nよりも小さい前記対応するmビットシーケンスの値に応じて、前記ビットを前記特定の二進値に設定することと、
を含む請求項10に記載の方法。 The probability is equal to n / 2 m for a given integer m and a variable integer n.
Generating the random N-bit update sequence can
The processor extends an unbiased random seed with E bits to N m-bit sequences corresponding to the bits of the random N-bit update sequence, respectively.
The processor sets the bits to the particular binary value for each bit in the random N-bit update sequence, depending on the value of the corresponding m-bit sequence less than n.
10. The method of claim 10.
前記方法が、第1ISP、プロセッサを有する第2ISP及び前記不揮発性メモリを有するIoTデバイスを含むシステムを適用し、
前記方法が、
前記プロセッサが、前記IoTデバイスが前記第1ISPのサービスを受けているが、これから前記第2ISPのサービスを受ける予定である場合に、前記第2ISPが第1ISPから前記Nビット暗号鍵の現在のインスタンスをリクエストすることと、
前記プロセッサが、ランダムNビット更新シーケンスを生成することと、
前記プロセッサが、前記更新に対して、異なる各確率{qi}(i=1…U)を計算し、前記更新のうちの各第i更新に対し、前記Nビット暗号鍵の現在のインスタンスに対する前記Nビット暗号鍵の新しいインスタンスの期待されるエントロピーがNよりも小さい所定の閾値Eよりも小さくならないようにすることと、
前記プロセッサが、前記確率を計算した後に、前記更新を行う時に使用するための前記確率を提供することと、を含み、
そのなか、前記更新はさらに、
前記Nビット暗号鍵の前記新しいインスタンスが、前記特定の二進値を有し、且つランダムNビット更新シーケンス内の対応して配置されたビットと異なる前記Nビット暗号鍵の前記現在のインスタンス内の各ビットをネゲートするが、前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス内の対応して配置されたビットと異ならない前記Nビット暗号鍵の現在のインスタンス内の各ビットまたは前記特定の二進値を有さない前記Nビット暗号鍵の前記現在のインスタンス内の各ビットもネゲートしないことによって生成されることと、
前記ランダムNビット更新シーケンス内の各ビットが、前記特定の二進値を有する確率qiで生成されることと、
を条件とすることと、
を含む方法。
A method of facilitating multiple updates of an N-bit cryptographic key in non-volatile memory in which an unprogrammed cell has a particular binary value.
The method applies a system comprising a first ISP, a second ISP with a processor and an IoT device with the non-volatile memory.
The above method
When the processor receives the service of the first ISP, but is planning to receive the service of the second ISP, the second ISP obtains the current instance of the N-bit encryption key from the first ISP. To request and
That the processor generates a random N-bit update sequence,
The processor calculates each different probability {q i } (i = 1 ... U) for the update, and for each i-update of the updates, for the current instance of the N-bit encryption key. and said N-bit expected entropy of a new instance of the encryption key is to not less than a small predetermined threshold E than N,
Including that the processor provides the probabilities for use when making the updates after calculating the probabilities.
Among them, the above update is further
In the current instance of the N-bit encryption key, the new instance of the N-bit encryption key has the particular binary value and is different from the correspondingly arranged bits in the random N-bit update sequence. Each bit in the current instance of the N-bit encryption key that negates each bit, but has the particular binary value and is not different from the correspondingly arranged bits in the random N-bit update sequence. It is generated by not negating each bit in the current instance of the N-bit encryption key that does not have that particular binary value.
Each bit in the random N-bit update sequence is generated with the probability q i having the particular binary value.
And be subject to,
How to include.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019042125A JP6874042B2 (en) | 2019-03-08 | 2019-03-08 | Updating the encryption key stored in non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019042125A JP6874042B2 (en) | 2019-03-08 | 2019-03-08 | Updating the encryption key stored in non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020145629A JP2020145629A (en) | 2020-09-10 |
JP6874042B2 true JP6874042B2 (en) | 2021-05-19 |
Family
ID=72354639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019042125A Active JP6874042B2 (en) | 2019-03-08 | 2019-03-08 | Updating the encryption key stored in non-volatile memory |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6874042B2 (en) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901549B2 (en) * | 2001-12-14 | 2005-05-31 | Matrix Semiconductor, Inc. | Method for altering a word stored in a write-once memory device |
JP2004086085A (en) * | 2002-08-29 | 2004-03-18 | Toshiba Corp | Encryption key creation apparatus |
US8429375B1 (en) * | 2006-06-16 | 2013-04-23 | Synopsys, Inc. | Memory management unit (MMU) to make only one time programmable (OTP) memory appear multiple times programmable (MTP) |
JP6107191B2 (en) * | 2013-02-08 | 2017-04-05 | 凸版印刷株式会社 | IC card |
JP6162905B2 (en) * | 2014-09-19 | 2017-07-12 | 株式会社東芝 | Management device, measuring device, service providing device, program, transmission system, and transmission method |
EP3007094B1 (en) * | 2014-10-08 | 2021-05-05 | Nintendo Co., Ltd. | Boot program, information processing apparatus, information processing system, information processing method, semiconductor apparatus, and program |
TW201633207A (en) * | 2014-12-12 | 2016-09-16 | 納格維遜股份有限公司 | Device keys protection |
JP2017118312A (en) * | 2015-12-24 | 2017-06-29 | 日本電気株式会社 | Radio communication system, server, terminal, radio communication method, and program |
-
2019
- 2019-03-08 JP JP2019042125A patent/JP6874042B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2020145629A (en) | 2020-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109510703B (en) | Data encryption and decryption method and device | |
EP3242437A1 (en) | Light-weight key update mechanism with blacklisting based on secret sharing algorithm in wireless sensor networks | |
EP3451218B1 (en) | Post-manufacture generation of device certificate and private key for public key infrastructure | |
US20160006570A1 (en) | Generating a key derived from a cryptographic key using a physically unclonable function | |
US20140344572A1 (en) | Secure cloud storage and synchronization systems and methods | |
US11973867B2 (en) | Encrypted search | |
CN105007157B (en) | Generating and managing multiple base keys based on device-generated keys | |
KR20150102827A (en) | USER DEVICE PERFORMING PASSWROD BASED AUTHENTICATION AND PASSWORD Registration AND AUTHENTICATION METHOD THEREOF | |
EP3698515A1 (en) | Configurable device for lattice-based cryptography | |
CN113239046A (en) | Data query method, system, computer device and storage medium | |
BR112020007373A2 (en) | first electronic network node configured for a cryptographic operation, electronic cryptographic operation method for a first electronic network node and computer readable media | |
CN111294203A (en) | Information transmission method | |
TW201915748A (en) | Semiconductor device | |
CN112100144A (en) | Block chain file sharing method and device, storage medium and electronic equipment | |
US10951403B2 (en) | Updating cryptographic keys stored in non-volatile memory | |
JP6874042B2 (en) | Updating the encryption key stored in non-volatile memory | |
US20230396432A1 (en) | Methods and systems for updatable encryption | |
WO2018213875A1 (en) | Asymmetric cryptography and authentication | |
US11818249B2 (en) | Nodes and methods of operating the same | |
CN109923829A (en) | Reach an agreement to secret value | |
CN109460182A (en) | A kind of storage of data, read method and device | |
EP3681100B1 (en) | Updating cryptographic keys stored in non-volatile memory | |
KR102313584B1 (en) | Updating cryptographic keys stored in non-volatile memory | |
CN112187462B (en) | Data processing method and device, electronic equipment and computer readable medium | |
US20240080204A1 (en) | A lightweight fault countermeasure for stateful hash-based cryptography |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190308 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200331 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200929 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201216 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210406 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210421 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6874042 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |