JP2020145629A - 不揮発性メモリに保存された暗号鍵の更新 - Google Patents

不揮発性メモリに保存された暗号鍵の更新 Download PDF

Info

Publication number
JP2020145629A
JP2020145629A JP2019042125A JP2019042125A JP2020145629A JP 2020145629 A JP2020145629 A JP 2020145629A JP 2019042125 A JP2019042125 A JP 2019042125A JP 2019042125 A JP2019042125 A JP 2019042125A JP 2020145629 A JP2020145629 A JP 2020145629A
Authority
JP
Japan
Prior art keywords
bit
encryption key
random
binary value
update sequence
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.)
Granted
Application number
JP2019042125A
Other languages
English (en)
Other versions
JP6874042B2 (ja
Inventor
カルズニー ユリ
Kaluzny Yuri
カルズニー ユリ
ルコ マーク
Luko Mark
ルコ マーク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics Corp
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 Winbond Electronics Corp filed Critical Winbond Electronics Corp
Priority to JP2019042125A priority Critical patent/JP6874042B2/ja
Publication of JP2020145629A publication Critical patent/JP2020145629A/ja
Application granted granted Critical
Publication of JP6874042B2 publication Critical patent/JP6874042B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】プログラムされていないセルが特定の二進値を有する不揮発性メモリに保存するためのNビット暗号鍵の新しいインスタンスを生成する方法を提供する。【解決手段】方法は、ランダムNビット更新シーケンスを生成することと、特定の二進値を有し、且つランダムNビット更新シーケンス内の対応して配置されたビットと異なるNビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、特定の二進値を有さないNビット暗号鍵の現在のインスタンス内のいかなるビットもネゲートしないことによって、Nビット暗号鍵の新しいインスタンスを生成することを含む。他の実施形態についても説明する。【選択図】図1

Description

本発明は、サイバーセキュリティーの分野に関するものであり、特に、通信を暗号化するために使用される暗号鍵に関するものである。
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である。
不揮発性メモリ(non-volatile memory, NVM)は、複数の単一ビットメモリセルを含み、それぞれプログラムされた状態であっても、またはプログラムされていない状態であってもよい。通常、慣例によると、プログラムされていないセルは、二進値1を有するが、プログラムされたセルは、二進値0を有する。ワンタイムプログラマブル不揮発性メモリ(one-time programmable NVM, OTP NVM)は、プログラム操作を元に戻すことができない。すなわち、プログラムされたセルを後でディプログラミング(deprogram)(または消去)することはできない。
ワンタイムプログラマブル不揮発性メモリ(OTPNVM)は、消去が不可能である。消去可能な他の種類の不揮発性メモリでも、更新操作は安全ではなく、鍵の現在の値の消去後、および鍵の新しい値の書き込み前に、攻撃者が操作を終了させ、既知のプログラムされていない状態で鍵を「フリーズ(freeze)」させる可能性がある。
本発明のいくつかの実施形態において、プログラムされていないセルが特定の二進値を有する不揮発性メモリ(NVM)(デバイスに属する)に保存するためのNビット暗号鍵の新しいインスタンスを生成する装置を提供する。装置は、ネットワークインターフェースと、プロセッサとを含む。プロセッサは、ランダムNビット更新シーケンスを生成するよう構成される。プロセッサは、さらに、特定の二進値を有し、且つランダムNビット更新シーケンス内の対応して配置されたビットと異なるNビット暗号鍵の現在のインスタンス内の各ビットをネゲート(negate)するが、特定の二進値を有さないNビット暗号鍵の現在のインスタンス内のいかなるビットもネゲートしないことによって、Nビット暗号鍵の新しいインスタンスを生成するよう構成される。プロセッサは、さらに、Nビット暗号鍵の新しいインスタンスを生成した後、ネットワークインターフェースを使用して、Nビット暗号鍵の新しいインスタンスを装置に伝達して、不揮発性メモリ(NVM)に保存するよう構成される。
本発明のいくつかの実施形態において、さらに、複数の単一ビットセルを含み、Nビット暗号鍵を保存するよう構成され、セルのうちのプログラムされていないセルが特定の二進値を有する不揮発性メモリ(NVM)と、プロセッサとを含む装置を提供する。プロセッサは、ランダムNビット更新シーケンスを生成するよう構成される。プロセッサは、さらに、特定の二進値を有し、且つランダムNビット更新シーケンス内の対応して配置されたビットと異なるNビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、特定の二進値を有さないNビット暗号鍵の現在のインスタンス内のいかなるビットもネゲートしないことによって、Nビット暗号鍵の新しいインスタンスを生成するよう構成される。プロセッサは、さらに、Nビット暗号鍵の新しいインスタンスを生成した後、不揮発性メモリ(NVM)においてNビット暗号鍵の現在のインスタンスをNビット暗号鍵の新しいインスタンスと置き換えるよう構成される。
本発明のいくつかの実施形態において、さらに、プログラムされていないセルが特定の二進値を有する不揮発性メモリ(NVM)に保存するためのNビット暗号鍵の新しいインスタンスを生成する方法を提供する。この方法は、ランダムNビット更新シーケンスを生成することと、特定の二進値を有し、且つランダムNビット更新シーケンス内の対応して配置されたビットと異なるNビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、特定の二進値を有さないNビット暗号鍵の現在のインスタンス内のいかなるビットもネゲートしないことによって、Nビット暗号鍵の新しいインスタンスを生成することを含む。
本発明のいくつかの実施形態において、さらに、プログラムされていないセルが特定の二進値を有する不揮発性メモリ(NVM)において、Nビット暗号鍵の複数の更新を容易にする方法を提供する。この方法は、これらの更新に対して、異なる各確率{qi}(i =1…U)を計算し、これらの更新のうちの各第i更新は、Nビット暗号鍵の現在のインスタンスに対するNビット暗号鍵の新しいインスタンスの期待されるエントロピーが、Nよりも小さい所定の閾値Eよりも小さくならないようにすることを含み、以下を条件とする:(i)Nビット暗号鍵の新しいインスタンスは、特定の二進値を有し、且つランダムNビット更新シーケンス内の対応して配置されたビットと異なるNビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、特定の二進値を有さないNビット暗号鍵の現在のインスタンス内のいかなるビットもネゲートしないことによって生成される;(ii)ランダムNビット更新シーケンス内の各ビットは、特定の二進値を有する確率qiで生成される。この方法は、さらに、確率を計算した後に、更新を行う時に使用するための確率を提供することを含む。
本発明の不揮発性メモリは、暗号鍵を使用して通信を暗号化するため、更新操作が安全である。
添付図面は、本発明の原理がさらに理解されるために含まれており、本明細書に組み込まれ、且つその一部を構成するものである。図面は、本発明の実施形態を例示しており、説明とともに、本発明の原理を説明する役割を果たしている。
本発明のいくつかの実施形態に係る暗号鍵を更新するシステムの概略図である。 本発明のいくつかの実施形態に係る暗号鍵の新しいインスタンスの生成の概略図である。 本発明のいくつかの実施形態に係るランダムシーケンスを生成する技術の概略図である。 本発明のいくつかの実施形態に係るビット生成確率を計算する技術の概略図である。 本発明のいくつかの実施形態に係る暗号鍵の複数の更新を容易にする方法のフロー図である。
[前置き]
請求項を含む本願の内容において、暗号鍵の「更新」は、(i)鍵の新しいインスタンスの計算、(ii)メモリ内の鍵の現在のインスタンスと鍵の新しいインスタンスの交換、または(iii)(i)と(ii)の両方を指す。
本明細書は、概して、不揮発性メモリ(NMV)において、プログラムされていないセルは二進値1を有するが、プログラムされたセルは二進値0を有すると仮定する。以下、図2を参照して明確に説明するが、ここで説明する技術は、逆の慣例を使用する不揮発性メモリ(NMV)にも利用することができる。
[概説]
不揮発性メモリに保存された暗号鍵を更新するのは、困難である。例えば、背景技術において上述したように、ワンタイムプログラマブル不揮発性メモリ(OTPNVM)は、消去が不可能である。また、消去可能な他の種類の不揮発性メモリでも、更新操作は安全ではなく、鍵の現在の値の消去後、および鍵の新しい値の書き込み前に、攻撃者が操作を終了させ、既知のプログラムされていない状態で鍵を「フリーズ」させる可能性がある。
この問題に取り組むため、本発明の実施形態は、鍵の中の(プログラムされていない)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を置き換える新しい鍵であると言うことができる。)
通常、できるだけ多くの更新を実行できるよう、Siは、偏って(biasedly)生成され、1に等しいSi内の各ビットに対する確率qi(以下、「qi」で示す)は、0.5よりも大きい。(鍵の最終更新に対し、qiがちょうど0.5になる場合もある。)具体的に説明すると、必要なエントロピーを提供する最大qi値を数値的に計算した後、この最大値を使用してSiを生成する。
いくつかの実施形態において、第i更新の直前に、現在の鍵Kiを考慮して、各qi値を計算する。前置きとして、注意すべきこととして、Kiを考慮すると、Ki+1のエントロピーは、N1i*H(qi)に等しい。式中、N1iは、Ki内の1ビットの数であり、且つH(qi)=−(qilog2i+(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の値として使用することができる。
別の実施形態において、いかなる更新も行う前に、鍵のU回の更新に使用する1セットのqi値{q1, q2, … qU}を前もって計算する。この計算に対し、N1iの期待値、
(式中、q0は、1)を使用して、Kiを考慮してKi+1のエントロピーを推測することにより、必要なエントロピーEに到達する。H(qi)は、
)よりも大きいか、それに等しくなければならない。(この量は、より簡潔に
と記載してもよく、λ=E/Nである。)そのため、
)が1よりも大きいことが確定されるまで(i=U+1に対し)、q1で始まるqi値を繰り返し解くことができる。
通常、Siを生成しやすくするために、所定の整数mおよび可変整数nに対し、qiは、n/2mの形式を有する。Siを生成するために、Eビットを含むバイアスしていないランダムシードXi(以下、「Xi」で示す)を生成または取得する。そして、XiをSiのNビットにそれぞれ対応するN個のmビットシーケンスに拡大する(例えば、ハッシュ機能を使用して)。続いて、各mビットシーケンスの値とnを比較する。値がnよりも小さい場合、Si中の対応するビットを1に設定し;そうでなければ、ビットを0に設定する。
[システムの説明]
まず、図1を参照すると、図1は、本発明のいくつかの実施形態に係る暗号鍵を更新するシステム20の概略図である。図1に示した特定の実施形態は、Nビット暗号鍵「K」を使用して、インターネット24上のモノのインターネット(Internet of Things, IoT)デバイス22とインターネットサービスプロバイダ(Internet service provider, ISP)の間の通信を暗号化する。
一般的に、デバイス22が同じISPを保持していると仮定すると、鍵のセキュリティは破られないため、鍵を更新する必要はない。しかしながら、デバイス22を異なるISPに切り替えた場合、または鍵のセキュリティが破られた場合は、鍵を更新する必要がある。
例えば、図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を使用して、お互いとの通信を開始し、通信を暗号化および復号化することができる。
第2ISP26bは、プロセッサ30と、例えば、ネットワークインターフェースコントローラ(network interface controller, NIC)を含むネットワークインターフェース32とを含む。プロセッサ30は、ネットワークインターフェース32を介して、(他のデバイスとともに)第2ISP26bおよびデバイス22との通信を交換するよう構成される。プロセッサ30は、さらに、デバイス22との通信を暗号化するために使用される暗号鍵を更新するよう構成される。例えば、上述したように、プロセッサ30は、デバイス22との通信を初期化することにより鍵を更新することができる。あるいは、またはさらに、プロセッサ30は、鍵が攻撃者によって盗まれた可能性があると認識することにより、プロセッサ30(または外部のサイバーセキュリティシステム)に応答して鍵を更新することができる。
同様に、デバイス22は、プロセッサ34と、通信インターフェース36とを含む。プロセッサ34は、通信インターフェース36を介して、(他のデバイスとともに)第2ISP26bとの通信を交換するよう構成される。例えば、通信インターフェース36は、プロセッサ34がルーター28を介して通信を交換するために使用することのできるWiFiカードを含んでもよい。
デバイス22は、さらに、プロセッサ34が暗号鍵を保存するメモリ38を含む。そのため、例えば、メモリ38は、まず、Kiを保持する。第2ISP26bからKi+1を受信した後、プロセッサ34は、KiにKi+1を上書きすることができる。
通常、メモリ38は、不揮発性であり、例えば、メモリ38は、ワンタイムプログラマブル不揮発性メモリ(OTPNVM)、フラッシュメモリ、または電気的消去再書込み可能な読出し専用メモリ(electrically erasable programmable read-only memory, EEPROM)であってもよい。しかしながら、有利に、図2を参照しながら下記でさらに説明するように、暗号鍵の更新は、メモリ38の中のメモリセルをディプログラミングする必要はない。
いくつかの実施形態において、図5を参照しながら下記でさらに説明するように、第2ISP26bは、サーバー40によって提供されるデータシートに含まれるパラメータ(特に、ビット生成確率qi)を使用して、Ki+1を生成する。例えば、ネットワークインターフェース44を使用することにより、サーバー40は、データシートをウェブサイトに公開することができる。Ki+1を生成する直前に、第2ISP26bは、ウェブサイトからデータシートを回収して、データシートにおいて、Ki+1を生成するのに必要なパラメータを検索することができる。あるいは、Ki+1を生成する前の任意の時点で、サーバー40は、データシートを第2ISP26bに伝達することができ(例えば、インターネット24上で)、その後、第2ISP26bは、データシートを揮発性または不揮発性メモリ(図示せず)に保存することができる。続いて、Ki+1を生成する直前に、第2ISP26bは、メモリからデータシートを回収し、その後、関連するパラメータを検索することができる。
他の実施形態において、デバイス22のプロセッサ34は、Ki+1を生成し、その後、Ki+1を第2ISP26bに伝達する。このような実施形態において、プロセッサ34は、上述したデータシートをサーバー40から受信することができる。別の選択肢として、サーバー40または他の適切な第三者がKi+1を生成し、その後、Ki+1をデバイス22および第2ISP26bの両方に伝達してもよい。
サーバー40は、プロセッサ42と、例えば、NICを含むネットワークインターフェース44とを含む。プロセッサ42は、ネットワークインターフェース44を介して、第2ISP26b(および/またはデバイス22)との通信を交換するよう構成される。
強調すべきこととして、システム20の構成要素および配置は、単なる例として提供しただけである。一般的に、ここで説明する各技術は、適切なシステムに属する適切なプロセッサによって実行可能である。例えば、ここで説明する技術を使用して、携帯電話に属する埋め込み型SIM(embedded subscriber identification module, eSIM)または埋め込みセキュアエレメント(embedded secure element, eSE)に保存された暗号鍵を更新することができる。例えば、携帯電話のサービスプロバイダーは、Ki+1を生成して、Ki+1を携帯電話に伝達することができ、その後、携帯電話は、電話に属する不揮発性メモリにKi+1を保存することができる。
一般的に、ここで説明する各プロセッサは、単一プロセッサとして埋め込まれても、あるいは協同的にネットワーク化された、またはクラスタ化されたプロセッサの集合であってもよい。いくつかの実施形態において、ここで説明するプロセッサのうちの少なくとも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)に提供および/または保存してもよい。このようなプログラムコードおよび/またはデータは、プロセッサに提供された時、ここで説明するタスクを実行するよう構成された機械または特殊用途のコンピュータを生成する。
[鍵の新しいインスタンスを生成する]
ここで、図2を参照すると、図2は、本発明のいくつかの実施形態に係る暗号鍵の新しいインスタンスの生成の概略図である。
図2は、図1において説明した状況に関連し、プロセッサ30(または上述した他のプロセッサ)は、鍵の現在のインスタンスKiを考慮して、Nビット暗号鍵の新しいインスタンスKi+1を生成する。概説において説明したように、図1を参照すると、Ki+1を生成して、不揮発性メモリにおいてKiとKi+1を交換することにより、メモリセルをディプログラミングする必要がなくなる。しかしながら、図4を参照しながら下記でさらに詳しく説明するように、Kiに対するKi+1の期待されるエントロピーは、所定の閾値エントロピーEよりも小さくない。(暗号鍵におけるビットNの数よりも少ない閾値Eは、例えば、システム20のセキュリティアーキテクトによって定義することができる。)
具体的に説明すると、Ki+1を生成するために、プロセッサは、まず、ランダムNビット更新シーケンスSiを生成する。次に、プロセッサは、二進値1を有し、且つSi内の対応して配置されたビットと異なるKi内の各ビットをネゲートするが、二進値1を有さないKi内のいかなるビットもネゲートしないことによって、Ki+1を生成する。図2は、2個のネゲートされたビットを示し、それぞれ上向きの矢印で表示する。
通常、図2に示したように、プロセッサは、KiとSiの間でビット毎のAND演算を行うことによって、Ki+1を生成する。そのため、Ki内のいくつかの1ビットは、Ki+1内の0ビットで置き換えられるが、Ki内の0ビットは、1ビットで置き換えられないため、セルをディプログラミングしなくても、不揮発性メモリにおいて更新することができる。
プロセッサは、Siにおいて確率qiが1の各ビットを生成し、通常、qiは、0.5よりも大きい。(概説において説明したように、鍵の最終更新に対し、qiがちょうど0.5になる場合もある。)いくつかの実施形態において、図1を参照して上述したように、qiは、サーバー40によって提供されたデータシートにおいて指定される。このようなデータシートは、例えば、iの各値、Nの1つまたはそれ以上の値、およびEの1つまたはそれ以上の値に対するqiを指定するルックアップテーブルを含むことができる。別の実施形態において、プロセッサはqiを計算する。以下、図4を参照しながら、qiの計算についてさらに詳しく説明する。
プログラムされていないメモリセルが二進値0を有する逆の不揮発性メモリの慣例については、プロセッサは、Siにおいて確率qiが0の各ビットを生成する。そして、プロセッサは、KiとSiの間でビット毎のOR演算を行うことによって、Si内の対応して配置されたビットと異なるKi内の各0ビットをネゲートする。
[ランダムシーケンスを生成する]
ここで、図3を参照すると、図3は、本発明のいくつかの実施形態に係るランダムシーケンスSiを生成する技術の概略図である。この技術は、所定の整数mおよび可変整数nに対し、qiがn/2mに等しいと仮定する。(例えば、mは、10であってもよく、qi=n/1024となる。)
iを生成するため、プロセッサは、まず、外部ソースから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)を含む。
次に、Si内の各ビットに対し、プロセッサは、nよりも小さい対応するmビットシーケンスの値に応じて、ビットを1に設定する。例えば、Zi1がnよりも小さい場合、Si内の各第1ビットを1に設定し;そうでなければ、ビットを0に設定する。
図3において特定の技術を示したが、注意すべきこととして、Si内の各ビットが1の確率qiを有すると仮定すると、(qiがn/2mの形式でなくても)他の適切な技術を使用してSiを生成してもよい。
[1回の更新に対するビット生成確率を計算する]
ここで、図4を参照すると、図4は、本発明のいくつかの実施形態に係るビット生成確率qiを計算する技術の概略図である。
いくつかの実施形態において、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を見つける。)
概説において説明したように、Kiを考慮すると、Ki+1のエントロピーは、N1i*H(qi)に等しい。そのため、qiをqi に、またはqi よりも小さい最も近い適切な値に設定することによって、プロセッサは、少なくともEのエントロピーを提供するqiの最大の適切な値を効果的に選択することができる。
i を解く代わりに、プロセッサは、qの複数の値を定義し、その後、qiをH(q)がE/N1iよりも小さくない値のうちの最大の値に設定してもよい。例えば、プロセッサは、値の列[2m-1/2m,(2m-1+1)/2m ,…(2m-1)/2m]を生成し、その後、qiをH(q)がE/N1iよりも小さくない値のうちの最大の値に設定することができる。
E/N1iが1よりも大きい場合、必要なエントロピーEを得ることができないため、プロセッサは、Ki+1を生成しない。この場合、プロセッサは、例えば、デバイス22のメモリ38(図1)を交換または消去する必要があることを示す適切なエラーメッセージを生成することができる。
[複数の更新に対してビット生成確率を予備計算する]
いくつかの実施形態において、Ki+1を生成するプロセッサは、N1iを使用しないでqiを計算する。それどころか、プロセッサは、各更新において、N1iの期待値、N1i に基づいて、鍵の複数の更新に対してqi値のシーケンスを前もって計算する。あるいは、サーバー40(図1)は、1つまたはそれ以上の対のNまたはE値に対してqi値の各シーケンスを指定するデータシートを生成してもよい。続いて、図1を参照して上述したように、サーバー40は、図2〜図3を参照して説明した方法で、暗号鍵を更新したい第三者(例えば、第2ISP26b)にデータシートを提供することができる。
これに関し、図5を参照すると、図5は、本発明のいくつかの実施形態に係る暗号鍵の複数の更新を容易にする方法46のフロー図である。具体的に説明すると、方法46において、1つまたはそれ以上の異なる(N,E)対に関する{qi}シーケンスを指定するデータシート(すなわち、(i)N(暗号鍵におけるビットの数)および(ii)E(エントロピー閾値)からなる1つまたはそれ以上の異なる対の値)を生成および提供する。方法46は、通常、上述したように、サーバー40のプロセッサ42によって実行される。あるいは、方法46におけるステップのサブセット(例えば、単一の(N,E)対に関する{qi}の計算)をプロセッサ、例えば、鍵を更新する第2ISP26bのプロセッサ30で行う。
方法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を増加させる。
第1確認ステップ52において、E/N1i が1よりも大きいことを確認した上で、プロセッサは、現在のインデックスiに関するqiを計算しない。それどころか、データシート更新ステップ58において、ここまで計算してきたシーケンス{q1, q2, … qU}(U(現在のインデックスよりも1つ小さい)は、鍵の許容される更新の最大数)を(N,E)の下方にあるデータシートに追加する。
データシート更新ステップ58の後、プロセッサは、第2確認ステップ60において、これ以上の(N,E)対が残っているかどうかを確認する。YESの場合、プロセッサは、選択ステップ47に戻り、選択された(N,E)対に対して{qi}を計算した後、データシートを更新する。そうでなければ、プロセッサは、提供ステップ62において、完成したデータシートを提供し、暗号鍵の更新に使用する。例えば、図1を参照して上述したように、プロセッサは、データシートをウェブサイトにアップロードしてもよく、あるいは、データシートを他のデバイスに伝達してもよい。
図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回更新するという意味である。)
このデータシートを考慮して、鍵の新しいインスタンスを生成するプロセッサ(例えば、第2ISP26bのプロセッサ30)は、N、E、およびiを考慮して、適切なqi値を検索する。(図1を参照して上述したように、第1ISP26aは、iを第2ISP26bに指定する。)続いて、図2〜図3を参照して上述したように、プロセッサは、qiを使用して更新シーケンスSiを生成した後、Siを使用してKiからKi+1を生成する。
本発明は、通信を暗号化するために使用される暗号鍵に関するものである。
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 ステップ
i 鍵の現在のインスタンス
i+1 鍵の新しいインスタンス
i 確率
i ビットのランダムシーケンス
i バイアスしていないランダムシード
{Zij} mビットシーケンス

Claims (15)

  1. プログラムされていないセルが特定の二進値を有し、デバイスに属する不揮発性メモリに保存するためのNビット暗号鍵の新しいインスタンスを生成する装置であって、
    ネットワークインターフェースと、
    ランダムNビット更新シーケンスを生成することと、
    前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス内の対応して配置されたビットと異なる前記Nビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、前記特定の二進値を有さない前記Nビット暗号鍵の前記現在のインスタンス内のいかなるビットもネゲートしないことによって、前記Nビット暗号鍵の前記新しいインスタンスを生成することと、
    前記Nビット暗号鍵の前記新しいインスタンスを生成した後、前記ネットワークインターフェースを使用して、前記Nビット暗号鍵の前記新しいインスタンスを前記装置に伝達して、前記不揮発性メモリに保存することと、
    を行うよう構成されたプロセッサと、
    を含む装置。
  2. 前記プロセッサが、前記Nビット暗号鍵の前記現在のインスタンスと前記ランダムNビット更新シーケンスの間でビット毎のAND演算を行うことによって、前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス中の対応して配置されたビットと異なる前記Nビット暗号鍵の前記現在のインスタンス内の各ビットをネゲートするよう構成された請求項1に記載の装置。
  3. 前記プロセッサが、0.5よりも大きい前記特定の二進値を有する確率で前記ランダムNビット更新シーケンス内の各ビットを生成するよう構成された請求項1に記載の装置。
  4. 前記確率が、所定の整数mおよび可変整数nに対し、n/2mに等しく、
    前記プロセッサが、
    Eビットを有するバイアスしていないランダムシードをそれぞれ前記ランダムNビット更新シーケンスの前記ビットに対応するN個のmビットシーケンスに拡張することと、
    前記ランダムNビット更新シーケンス内の各ビットに対し、nよりも小さい前記対応するmビットシーケンスの値に応じて、前記ビットを前記特定の二進値に設定することと、
    を行うことによって、前記ランダムNビット更新シーケンスを生成するよう構成された請求項3に記載の装置。
  5. 複数の単一ビットセルを含み、Nビット暗号鍵を保存するよう構成され、前記セルのうちのプログラムされていないセルが特定の二進値を有する不揮発性メモリと、
    ランダムNビット更新シーケンスを生成することと、
    前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス内の対応して配置されたビットと異なる前記Nビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、前記特定の二進値を有さない前記Nビット暗号鍵の前記現在のインスタンス内のいかなるビットもネゲートしないことによって、前記Nビット暗号鍵の新しいインスタンスを生成することと、
    前記Nビット暗号鍵の前記新しいインスタンスを生成した後、前記不揮発性メモリにおいて前記Nビット暗号鍵の前記現在のインスタンスを前記Nビット暗号鍵の前記新しいインスタンスと置き換えることと、
    を行うよう構成されたプロセッサと、
    を含む装置。
  6. 前記プロセッサが、前記特定の二進値を有する特定の確率で前記ランダムNビット更新シーケンス内の各ビットを生成するよう構成され、
    前記プロセッサが、さらに、前記ランダムNビット更新シーケンスを生成する前に、前記特定の確率を計算して、前記Nビット暗号鍵の前記現在のインスタンスに対する前記Nビット暗号鍵の前記新しいインスタンスの期待されるエントロピーが、Nより小さい所定の閾値Eよりも小さくならないようにするよう構成された請求項5に記載の装置。
  7. 前記特定の確率が、0.5よりも大きい請求項6に記載の装置。
  8. プログラムされていないセルが特定の二進値を有する不揮発性メモリに保存するためのNビット暗号鍵の新しいインスタンスを生成する方法であって、
    ランダムNビット更新シーケンスを生成することと、
    前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス内の対応して配置されたビットと異なる前記Nビット暗号鍵の現在のインスタンス内の各ビットをネゲートするが、前記特定の二進値を有さない前記Nビット暗号鍵の前記現在のインスタンス内のいかなるビットもネゲートしないことによって、前記Nビット暗号鍵の前記新しいインスタンスを生成することと、
    を含む方法。
  9. 前記ネゲートすることが、前記Nビット暗号鍵の前記現在のインスタンスと前記ランダムNビット更新シーケンスの間でビット毎のAND演算を行うことを含む請求項8に記載の方法。
  10. 前記ランダムNビット更新シーケンスを生成することが、0.5よりも大きい前記特定の二進値を有する確率で前記ランダムNビット更新シーケンス内の各ビットを生成することを含む請求項8に記載の方法。
  11. 前記ランダムNビット更新シーケンスを生成する前に、
    前記特定の二進値を有する前記Nビット暗号鍵の前記現在のインスタンス内のビットの数N1を識別することと、
    qに関する−(qlog2q+(1−q)log2(1−q))=E/N1を解き、Eが予め定義されたエントロピー閾値であることと、
    qから前記確率を得ることと、
    をさらに含む請求項10に記載の方法。
  12. qから前記確率を得ることが、前記確率をqに設定することによって、qから前記確率を得ることを含む請求項11に記載の方法。
  13. qから前記確率を得ることが、前記確率をqよりも大きくない最大の値n/2mに設定することによって、qから前記確率を得ることを含み、mが所定の整数であり、nが可変整数である請求項11に記載の方法。
  14. 前記確率が、所定の整数mおよび可変整数nに対し、n/2mに等しく、
    前記ランダムNビット更新シーケンスを生成することが、
    Eビットを有するバイアスしていないランダムシードをそれぞれ前記ランダムNビット更新シーケンスの前記ビットに対応するN個のmビットシーケンスに拡張することと、
    前記ランダムNビット更新シーケンス内の各ビットに対し、nよりも小さい前記対応するmビットシーケンスの値に応じて、前記ビットを前記特定の二進値に設定することと、
    を含む請求項10に記載の方法。
  15. プログラムされていないセルが特定の二進値を有する不揮発性メモリにおいて、Nビット暗号鍵の複数の更新を容易にする方法であって、
    前記更新に対して、異なる各確率{qi}(i=1…U)を計算し、前記更新のうちの各第i更新に対し、前記Nビット暗号鍵の現在のインスタンスに対する前記Nビット暗号鍵の新しいインスタンスの期待されるエントロピーがNよりも小さい所定の閾値Eよりも小さくならないようにし、
    前記Nビット暗号鍵の前記新しいインスタンスが、前記特定の二進値を有し、且つランダムNビット更新シーケンス内の対応して配置されたビットと異なる前記Nビット暗号鍵の前記現在のインスタンス内の各ビットをネゲートするが、前記特定の二進値を有さない前記Nビット暗号鍵の前記現在のインスタンス内のいかなるビットもネゲートしないことによって生成されることと、
    前記ランダムNビット更新シーケンス内の各ビットが、前記特定の二進値を有する確率qiで生成されることと、
    を条件とすることと、
    前記確率を計算した後に、前記更新を行う時に使用するための前記確率を提供することと、
    を含む方法。
JP2019042125A 2019-03-08 2019-03-08 不揮発性メモリに保存された暗号鍵の更新 Active JP6874042B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019042125A JP6874042B2 (ja) 2019-03-08 2019-03-08 不揮発性メモリに保存された暗号鍵の更新

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019042125A JP6874042B2 (ja) 2019-03-08 2019-03-08 不揮発性メモリに保存された暗号鍵の更新

Publications (2)

Publication Number Publication Date
JP2020145629A true JP2020145629A (ja) 2020-09-10
JP6874042B2 JP6874042B2 (ja) 2021-05-19

Family

ID=72354639

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019042125A Active JP6874042B2 (ja) 2019-03-08 2019-03-08 不揮発性メモリに保存された暗号鍵の更新

Country Status (1)

Country Link
JP (1) JP6874042B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115535A1 (en) * 2001-12-14 2003-06-19 March Roger W. Method for altering a word stored in a write-once memory device
JP2004086085A (ja) * 2002-08-29 2004-03-18 Toshiba Corp 暗号キー生成装置
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)
JP2014155043A (ja) * 2013-02-08 2014-08-25 Toppan Printing Co Ltd Icカード
WO2016042664A1 (ja) * 2014-09-19 2016-03-24 株式会社東芝 管理装置、計測装置、サービス提供装置、プログラム、伝送システムおよび伝送方法
JP2016076220A (ja) * 2014-10-08 2016-05-12 任天堂株式会社 ブートプログラム、情報処理装置、情報処理システム、情報処理方法、半導体装置、およびプログラム
WO2016091837A1 (en) * 2014-12-12 2016-06-16 Nagravision S.A. Device keys protection
JP2017118312A (ja) * 2015-12-24 2017-06-29 日本電気株式会社 無線通信システム、サーバ、端末、無線通信方法、および、プログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115535A1 (en) * 2001-12-14 2003-06-19 March Roger W. Method for altering a word stored in a write-once memory device
JP2004086085A (ja) * 2002-08-29 2004-03-18 Toshiba Corp 暗号キー生成装置
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)
JP2014155043A (ja) * 2013-02-08 2014-08-25 Toppan Printing Co Ltd Icカード
WO2016042664A1 (ja) * 2014-09-19 2016-03-24 株式会社東芝 管理装置、計測装置、サービス提供装置、プログラム、伝送システムおよび伝送方法
JP2016076220A (ja) * 2014-10-08 2016-05-12 任天堂株式会社 ブートプログラム、情報処理装置、情報処理システム、情報処理方法、半導体装置、およびプログラム
WO2016091837A1 (en) * 2014-12-12 2016-06-16 Nagravision S.A. Device keys protection
JP2017118312A (ja) * 2015-12-24 2017-06-29 日本電気株式会社 無線通信システム、サーバ、端末、無線通信方法、および、プログラム

Also Published As

Publication number Publication date
JP6874042B2 (ja) 2021-05-19

Similar Documents

Publication Publication Date Title
US11683163B2 (en) ECDHE key exchange for server authentication and a key server
EP3242437A1 (en) Light-weight key update mechanism with blacklisting based on secret sharing algorithm in wireless sensor networks
CN111868728A (zh) 用于静止数据的免密码保全系统
US11183083B2 (en) Cryptographic device and memory based PUF
CN105007157B (zh) 基于设备生成的密钥来生成和管理多个基密钥
US11973867B2 (en) Encrypted search
EP3698515A1 (en) Configurable device for lattice-based cryptography
KR20150102827A (ko) 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법
CN113239046A (zh) 数据查询方法、系统、计算机设备及存储介质
US11818249B2 (en) Nodes and methods of operating the same
US11934323B2 (en) Diversifying a base symmetric key based on a public key
CN112100144A (zh) 区块链文件共享方法、装置、存储介质及电子设备
US10951403B2 (en) Updating cryptographic keys stored in non-volatile memory
US20190238347A1 (en) Generating an authentication result by using a secure base key
JP6874042B2 (ja) 不揮発性メモリに保存された暗号鍵の更新
US20240080204A1 (en) A lightweight fault countermeasure for stateful hash-based cryptography
EP3681100B1 (en) Updating cryptographic keys stored in non-volatile memory
KR102313584B1 (ko) 비-휘발성 메모리에 저장된 암호키 업데이트
CN112187462B (zh) 数据处理方法、装置、电子设备及计算机可读介质
CN114666065B (zh) 基于区块链的消息加密传输方法、装置、设备及介质
EP4221072A1 (en) System and method for flexible post-quantum trust provisioning and updating
CN118503492A (zh) 一种密文检索方法、装置、设备及存储介质

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