(58)【調査した分野】(Int.Cl.,DB名)
前記プロセッサが、前記Nビット暗号鍵の前記現在のインスタンスと前記ランダムNビット更新シーケンスの間でビット毎のAND演算を行うことによって、前記特定の二進値を有し、且つ前記ランダムNビット更新シーケンス中の対応して配置されたビットと異なる前記Nビット暗号鍵の前記現在のインスタンス内の各ビットをネゲートするよう構成された請求項1に記載のシステム。
前記プロセッサが、0.5よりも大きい前記特定の二進値を有する確率で前記ランダムNビット更新シーケンス内の各ビットを生成するよう構成された請求項1に記載のシステム。
前記ネゲートすることが、前記Nビット暗号鍵の前記現在のインスタンスと前記ランダムNビット更新シーケンスの間でビット毎のAND演算を行うことを含む請求項8に記載の方法。
前記ランダムNビット更新シーケンスを生成することが、0.5よりも大きい前記特定の二進値を有する確率で前記ランダムNビット更新シーケンス内の各ビットを生成することを含む請求項8に記載の方法。
【発明を実施するための形態】
【0012】
[前置き]
請求項を含む本願の内容において、暗号鍵の「更新」は、(i)鍵の新しいインスタンスの計算、(ii)メモリ内の鍵の現在のインスタンスと鍵の新しいインスタンスの交換、または(iii)(i)と(ii)の両方を指す。
【0013】
本明細書は、概して、不揮発性メモリ(NMV)において、プログラムされていないセルは二進値1を有するが、プログラムされたセルは二進値0を有すると仮定する。以下、
図2を参照して明確に説明するが、ここで説明する技術は、逆の慣例を使用する不揮発性メモリ(NMV)にも利用することができる。
【0014】
[概説]
不揮発性メモリに保存された暗号鍵を更新するのは、困難である。例えば、背景技術において上述したように、ワンタイムプログラマブル不揮発性メモリ(OTPNVM)は、消去が不可能である。また、消去可能な他の種類の不揮発性メモリでも、更新操作は安全ではなく、鍵の現在の値の消去後、および鍵の新しい値の書き込み前に、攻撃者が操作を終了させ、既知のプログラムされていない状態で鍵を「フリーズ」させる可能性がある。
【0015】
この問題に取り組むため、本発明の実施形態は、鍵の中の(プログラムされていない)1ビットのみを変更し、(プログラムされた)0ビットを変更しないことにより、鍵を更新する。具体的に説明すると、鍵の現在のNビットインスタンスK
i(以下、「K
i」で示す)を考慮して、ビットのNビットランダムシーケンスS
i(以下、「S
i」で示す)を生成し、その後、K
iとS
iの間のビット毎でAND演算(bitwise AND operation)、または任意の同等の演算を行うことによって、鍵の新しいインスタンスK
i+1(以下、「K
i+1」で示す)を計算する。鍵の新しいインスタンスが現在のインスタンスに対して十分なエントロピーを有するように(すなわち、K
iの知識を持つ攻撃者がK
i+1を推測できないようにするために)、0ビットと1ビットの両方を更新したい場合は、鍵の長さNを必要以上に長くする。
(注意すべきこととして、別の記述的慣例を使用すると、K
iおよびK
i+1は、同じ鍵の異なるインスタンスまたは値ではなく、異なる鍵とみなすことができる。そのため、例えば、K
i+1は、K
iを置き換える新しい鍵であると言うことができる。)
【0016】
通常、できるだけ多くの更新を実行できるよう、S
iは、偏って(biasedly)生成され、1に等しいS
i内の各ビットに対する確率q
i(以下、「q
i」で示す)は、0.5よりも大きい。(鍵の最終更新に対し、q
iがちょうど0.5になる場合もある。)具体的に説明すると、必要なエントロピーを提供する最大q
i値を数値的に計算した後、この最大値を使用してS
iを生成する。
【0017】
いくつかの実施形態において、第i更新の直前に、現在の鍵K
iを考慮して、各q
i値を計算する。前置きとして、注意すべきこととして、K
iを考慮すると、K
i+1のエントロピーは、N1
i*H(q
i)に等しい。式中、N1
iは、K
i内の1ビットの数であり、且つH(q
i)=−(q
ilog
2q
i+(1−q
i)log
2(1−q
i))である。所定の閾値E(以下、「E」で示す)よりも大きい、またはそれに等しいこのエントロピーに対し、H(q
i)は、E/N1
iよりも大きいか、それに等しくなければならない。そのため、第i更新の前に、量E/N1
iを計算することができる。続いて、E/N1
iが1(H(q)の最大可能値)よりも小さいか、それに等しいことを条件とすると、qに対し、式H(q)=E/N1
iを数値的に解くことができる。(注意すべきこととして、この解を計算する正確度は、使用する数値的方法、およびその方法を実施する手段によって決まる。)この等式の解q
i*(またはq
i*よりも小さい最も近い適切な値)をq
iの値として使用することができる。
【0018】
別の実施形態において、いかなる更新も行う前に、鍵のU回の更新に使用する1セットのq
i値{q
1, q
2, … q
U}を前もって計算する。この計算に対し、N1
iの期待値、
(式中、q
0は、1)を使用して、K
iを考慮してK
i+1のエントロピーを推測することにより、必要なエントロピーEに到達する。H(q
i)は、
)よりも大きいか、それに等しくなければならない。(この量は、より簡潔に
と記載してもよく、λ=E/Nである。)そのため、
)が1よりも大きいことが確定されるまで(i=U+1に対し)、q
1で始まるq
i値を繰り返し解くことができる。
【0019】
通常、S
iを生成しやすくするために、所定の整数mおよび可変整数nに対し、q
iは、n/2
mの形式を有する。S
iを生成するために、Eビットを含むバイアスしていないランダムシードX
i(以下、「X
i」で示す)を生成または取得する。そして、X
iをS
iのNビットにそれぞれ対応するN個のmビットシーケンスに拡大する(例えば、ハッシュ機能を使用して)。続いて、各mビットシーケンスの値とnを比較する。値がnよりも小さい場合、S
i中の対応するビットを1に設定し;そうでなければ、ビットを0に設定する。
【0020】
[システムの説明]
まず、
図1を参照すると、
図1は、本発明のいくつかの実施形態に係る暗号鍵を更新するシステム20の概略図である。
図1に示した特定の実施形態は、Nビット暗号鍵「K」を使用して、インターネット24上のモノのインターネット(Internet of Things, IoT)デバイス22とインターネットサービスプロバイダ(Internet service provider, ISP)の間の通信を暗号化する。
【0021】
一般的に、デバイス22が同じISPを保持していると仮定すると、鍵のセキュリティは破られないため、鍵を更新する必要はない。しかしながら、デバイス22を異なるISPに切り替えた場合、または鍵のセキュリティが破られた場合は、鍵を更新する必要がある。
【0022】
例えば、
図1は、デバイス22が第1ISP26aのサービスを受けているが、これから第2ISP26bのサービスを受ける予定である場合を示したものである。この場合、第2ISP26bは、第1ISP26aから鍵の現在のインスタンスK
iをリクエストする。このリクエストに応じて、第1ISP26aは、インターネット24上でK
iを第2ISP26bに伝達する。第1ISP26aは、さらに、第2ISP26bにiの値を伝達することができる。すなわち、第1ISP26aは、既に実行された暗号鍵に更新の数を指定することができる。続いて、第2ISP26bは、鍵の新しいインスタンスK
i+1を生成した後、例えば、デバイス22が属するWiFiネットワークにサービスを提供するルーター28を介して、インターネット24上で、K
i+1をデバイス22に伝達する。(一般的に、第2ISP26bは、K
i+1をデバイス22に伝達する前に、例えば、K
iを使用して、K
i+1を暗号化する。)続いて、デバイス22および第2ISP26bは、K
i+1を使用して、お互いとの通信を開始し、通信を暗号化および復号化することができる。
【0023】
第2ISP26bは、プロセッサ30と、例えば、ネットワークインターフェースコントローラ(network interface controller, NIC)を含むネットワークインターフェース32とを含む。プロセッサ30は、ネットワークインターフェース32を介して、(他のデバイスとともに)第2ISP26bおよびデバイス22との通信を交換するよう構成される。プロセッサ30は、さらに、デバイス22との通信を暗号化するために使用される暗号鍵を更新するよう構成される。例えば、上述したように、プロセッサ30は、デバイス22との通信を初期化することにより鍵を更新することができる。あるいは、またはさらに、プロセッサ30は、鍵が攻撃者によって盗まれた可能性があると認識することにより、プロセッサ30(または外部のサイバーセキュリティシステム)に応答して鍵を更新することができる。
【0024】
同様に、デバイス22は、プロセッサ34と、通信インターフェース36とを含む。プロセッサ34は、通信インターフェース36を介して、(他のデバイスとともに)第2ISP26bとの通信を交換するよう構成される。例えば、通信インターフェース36は、プロセッサ34がルーター28を介して通信を交換するために使用することのできるWiFiカードを含んでもよい。
【0025】
デバイス22は、さらに、プロセッサ34が暗号鍵を保存するメモリ38を含む。そのため、例えば、メモリ38は、まず、K
iを保持する。第2ISP26bからK
i+1を受信した後、プロセッサ34は、K
iにK
i+1を上書きすることができる。
【0026】
通常、メモリ38は、不揮発性であり、例えば、メモリ38は、ワンタイムプログラマブル不揮発性メモリ(OTPNVM)、フラッシュメモリ、または電気的消去再書込み可能な読出し専用メモリ(electrically erasable programmable read-only memory, EEPROM)であってもよい。しかしながら、有利に、
図2を参照しながら下記でさらに説明するように、暗号鍵の更新は、メモリ38の中のメモリセルをディプログラミングする必要はない。
【0027】
いくつかの実施形態において、
図5を参照しながら下記でさらに説明するように、第2ISP26bは、サーバー40によって提供されるデータシートに含まれるパラメータ(特に、ビット生成確率q
i)を使用して、K
i+1を生成する。例えば、ネットワークインターフェース44を使用することにより、サーバー40は、データシートをウェブサイトに公開することができる。K
i+1を生成する直前に、第2ISP26bは、ウェブサイトからデータシートを回収して、データシートにおいて、K
i+1を生成するのに必要なパラメータを検索することができる。あるいは、K
i+1を生成する前の任意の時点で、サーバー40は、データシートを第2ISP26bに伝達することができ(例えば、インターネット24上で)、その後、第2ISP26bは、データシートを揮発性または不揮発性メモリ(図示せず)に保存することができる。続いて、K
i+1を生成する直前に、第2ISP26bは、メモリからデータシートを回収し、その後、関連するパラメータを検索することができる。
【0028】
他の実施形態において、デバイス22のプロセッサ34は、K
i+1を生成し、その後、K
i+1を第2ISP26bに伝達する。このような実施形態において、プロセッサ34は、上述したデータシートをサーバー40から受信することができる。別の選択肢として、サーバー40または他の適切な第三者がK
i+1を生成し、その後、K
i+1をデバイス22および第2ISP26bの両方に伝達してもよい。
【0029】
サーバー40は、プロセッサ42と、例えば、NICを含むネットワークインターフェース44とを含む。プロセッサ42は、ネットワークインターフェース44を介して、第2ISP26b(および/またはデバイス22)との通信を交換するよう構成される。
【0030】
強調すべきこととして、システム20の構成要素および配置は、単なる例として提供しただけである。一般的に、ここで説明する各技術は、適切なシステムに属する適切なプロセッサによって実行可能である。例えば、ここで説明する技術を使用して、携帯電話に属する埋め込み型SIM(embedded subscriber identification module, eSIM)または埋め込みセキュアエレメント(embedded secure element, eSE)に保存された暗号鍵を更新することができる。例えば、携帯電話のサービスプロバイダーは、K
i+1を生成して、K
i+1を携帯電話に伝達することができ、その後、携帯電話は、電話に属する不揮発性メモリにK
i+1を保存することができる。
【0031】
一般的に、ここで説明する各プロセッサは、単一プロセッサとして埋め込まれても、あるいは協同的にネットワーク化された、またはクラスタ化されたプロセッサの集合であってもよい。いくつかの実施形態において、ここで説明するプロセッサのうちの少なくとも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)に提供および/または保存してもよい。このようなプログラムコードおよび/またはデータは、プロセッサに提供された時、ここで説明するタスクを実行するよう構成された機械または特殊用途のコンピュータを生成する。
【0032】
[鍵の新しいインスタンスを生成する]
ここで、
図2を参照すると、
図2は、本発明のいくつかの実施形態に係る暗号鍵の新しいインスタンスの生成の概略図である。
【0033】
図2は、
図1において説明した状況に関連し、プロセッサ30(または上述した他のプロセッサ)は、鍵の現在のインスタンスK
iを考慮して、Nビット暗号鍵の新しいインスタンスK
i+1を生成する。概説において説明したように、
図1を参照すると、K
i+1を生成して、不揮発性メモリにおいてK
iとK
i+1を交換することにより、メモリセルをディプログラミングする必要がなくなる。しかしながら、
図4を参照しながら下記でさらに詳しく説明するように、K
iに対するK
i+1の期待されるエントロピーは、所定の閾値エントロピーEよりも小さくない。(暗号鍵におけるビットNの数よりも少ない閾値Eは、例えば、システム20のセキュリティアーキテクトによって定義することができる。)
【0034】
具体的に説明すると、K
i+1を生成するために、プロセッサは、まず、ランダムNビット更新シーケンスS
iを生成する。次に、プロセッサは、二進値1を有し、且つS
i内の対応して配置されたビットと異なるK
i内の各ビットをネゲートするが、二進値1を有さないK
i内のいかなるビットもネゲートしないことによって、K
i+1を生成する。
図2は、2個のネゲートされたビットを示し、それぞれ上向きの矢印で表示する。
【0035】
通常、
図2に示したように、プロセッサは、K
iとS
iの間でビット毎のAND演算を行うことによって、K
i+1を生成する。そのため、K
i内のいくつかの1ビットは、K
i+1内の0ビットで置き換えられるが、K
i内の0ビットは、1ビットで置き換えられないため、セルをディプログラミングしなくても、不揮発性メモリにおいて更新することができる。
【0036】
プロセッサは、S
iにおいて確率q
iが1の各ビットを生成し、通常、q
iは、0.5よりも大きい。(概説において説明したように、鍵の最終更新に対し、q
iがちょうど0.5になる場合もある。)いくつかの実施形態において、
図1を参照して上述したように、q
iは、サーバー40によって提供されたデータシートにおいて指定される。このようなデータシートは、例えば、iの各値、Nの1つまたはそれ以上の値、およびEの1つまたはそれ以上の値に対するq
iを指定するルックアップテーブルを含むことができる。別の実施形態において、プロセッサはq
iを計算する。以下、
図4を参照しながら、q
iの計算についてさらに詳しく説明する。
【0037】
プログラムされていないメモリセルが二進値0を有する逆の不揮発性メモリの慣例については、プロセッサは、S
iにおいて確率q
iが0の各ビットを生成する。そして、プロセッサは、K
iとS
iの間でビット毎のOR演算を行うことによって、S
i内の対応して配置されたビットと異なるK
i内の各0ビットをネゲートする。
【0038】
[ランダムシーケンスを生成する]
ここで、
図3を参照すると、
図3は、本発明のいくつかの実施形態に係るランダムシーケンスS
iを生成する技術の概略図である。この技術は、所定の整数mおよび可変整数nに対し、q
iがn/2
mに等しいと仮定する。(例えば、mは、10であってもよく、q
i=n/1024となる。)
【0039】
S
iを生成するため、プロセッサは、まず、外部ソースからEビットを有するバイアスしていないランダムシードX
iを生成または取得する。(X
iは、バイアスされておらず、X
iにける各ビットは、0.5の確率が1である。)プロセッサは、さらに、q
i=n/2
mを検索または計算する。続いて、プロセッサは、X
iをそれぞれS
iのビットに対応するN個のmビットシーケンス{Z
ij}に拡大する(j=1…N)。例えば、プロセッサは、N個の異なる個別の計数機cを用いて、ハッシュ機能f(X,c)をX
iに適用するため、例えば、S
iの第1ビットに対応する第1mビットシーケンスZ
i1は、f(X
i,1)に等しく、S
iの第2ビットに対応する第2mビットシーケンスZ
i2は、f(X
i,2)に等しい(以下、同様)。適切なハッシュ機能の例は、SHA−2、SHA−256、SHA−512、およびSHA−3等のセキュアハッシュアルゴリズム(secure hash algorithm, SHA)を含む。
【0040】
次に、S
i内の各ビットに対し、プロセッサは、nよりも小さい対応するmビットシーケンスの値に応じて、ビットを1に設定する。例えば、Z
i1がnよりも小さい場合、S
i内の各第1ビットを1に設定し;そうでなければ、ビットを0に設定する。
【0041】
図3において特定の技術を示したが、注意すべきこととして、S
i内の各ビットが1の確率q
iを有すると仮定すると、(q
iがn/2
mの形式でなくても)他の適切な技術を使用してS
iを生成してもよい。
【0042】
[1回の更新に対するビット生成確率を計算する]
ここで、
図4を参照すると、
図4は、本発明のいくつかの実施形態に係るビット生成確率q
iを計算する技術の概略図である。
【0043】
いくつかの実施形態において、K
i+1を生成するプロセッサは、S
iを生成する前に、q
iを計算する。通常、このような実施形態において、プロセッサは、まず、K
i内の1ビットの数N1
iを識別する。次に、
図4に示すように、プロセッサは、qに関するH(q)=−(qlog
2q+(1−q)log
2(1−q))=E/N1
iを解く。この解は、
図4において表記q
i*で示してある。(ほとんどの場合、等式に対して2つの解があり;プロセッサは、2つの解のうち大きい方を選択する。)その後、プロセッサは、q
i*からq
iを得る。例えば、プロセッサは、q
iをq
i*に設定してもよく、あるいは、q
i*よりも小さい、またはそれに等しい最大の値n/2
m設定してもよい。(言い換えると、プロセッサは、n/2
mがq
i*より小さい、またはそれに等しい最大の整数nを見つける。)
【0044】
概説において説明したように、K
iを考慮すると、K
i+1のエントロピーは、N1
i*H(q
i)に等しい。そのため、q
iをq
i*に、またはq
i*よりも小さい最も近い適切な値に設定することによって、プロセッサは、少なくともEのエントロピーを提供するq
iの最大の適切な値を効果的に選択することができる。
【0045】
q
i*を解く代わりに、プロセッサは、qの複数の値を定義し、その後、q
iをH(q)がE/N1
iよりも小さくない値のうちの最大の値に設定してもよい。例えば、プロセッサは、値の列[2
m-1/2
m,(2
m-1+1)/2
m ,…(2
m-1)/2
m]を生成し、その後、q
iをH(q)がE/N1
iよりも小さくない値のうちの最大の値に設定することができる。
【0046】
E/N1
iが1よりも大きい場合、必要なエントロピーEを得ることができないため、プロセッサは、K
i+1を生成しない。この場合、プロセッサは、例えば、デバイス22のメモリ38(
図1)を交換または消去する必要があることを示す適切なエラーメッセージを生成することができる。
【0047】
[複数の更新に対してビット生成確率を予備計算する]
いくつかの実施形態において、K
i+1を生成するプロセッサは、N1
iを使用しないでq
iを計算する。それどころか、プロセッサは、各更新において、N1
iの期待値、N1
i*に基づいて、鍵の複数の更新に対してq
i値のシーケンスを前もって計算する。あるいは、サーバー40(
図1)は、1つまたはそれ以上の対のNまたはE値に対してq
i値の各シーケンスを指定するデータシートを生成してもよい。続いて、
図1を参照して上述したように、サーバー40は、
図2〜
図3を参照して説明した方法で、暗号鍵を更新したい第三者(例えば、第2ISP26b)にデータシートを提供することができる。
【0048】
これに関し、
図5を参照すると、
図5は、本発明のいくつかの実施形態に係る暗号鍵の複数の更新を容易にする方法46のフロー図である。具体的に説明すると、方法46において、1つまたはそれ以上の異なる(N,E)対に関する{q
i}シーケンスを指定するデータシート(すなわち、(i)N(暗号鍵におけるビットの数)および(ii)E(エントロピー閾値)からなる1つまたはそれ以上の異なる対の値)を生成および提供する。方法46は、通常、上述したように、サーバー40のプロセッサ42によって実行される。あるいは、方法46におけるステップのサブセット(例えば、単一の(N,E)対に関する{q
i}の計算)をプロセッサ、例えば、鍵を更新する第2ISP26bのプロセッサ30で行う。
【0049】
方法46は、プロセッサ42がビット生成確率のシーケンスを計算したいシーケンスに関する次の事前定義された(N,E)対を選択する選択ステップ47で始まる。(各(N,E)対は、例えば、セキュリティ専門家によってプロセッサ42に提供することができる。)次に、プロセッサは、鍵のU個の更新に対して異なる各確率{qi}(i=1…U)を計算する。各q
i値を計算して、鍵の現在のインスタンス(K
i)に関する鍵の新しいインスタンス(K
i+1)の期待されるエントロピーが、Eよりも小さくならないようにするが、
図2〜3を参照して上述したように、鍵の新しいインスタンスを生成することを条件とする。つまり、q
iは、通常、実際のエントロピー(前もって知ることができない)の代わりにK
i(H(q)*N1
i*)に関するK
i+1の期待されるエントロピーを使用して、
図4を参照して上述したように計算される。
【0050】
さらに具体的に説明すると、選択ステップ47の後、プロセッサは、初期化ステップ48において、q
0を1に設定し、インデックスiを1に初期化する。続いて、プロセッサは、q
iを繰り返し計算して、鍵の新しいインスタンスの期待されるエントロピーがEよりも小さくなるまで、インデックスを増加させる。q
iを計算するために、プロセッサは、まず、計算ステップ50において、
を計算する。次に、第1確認ステップ52において、プロセッサは、E/N1
i*が1よりも小さい、またはそれに等しいかどうかを確認する。YESの場合、プロセッサは、設定ステップ54において、q
iをH(q)がE/N1
i*よりも小さくないqの最大の適切な値に設定する。例えば、
図4を参照して上述したように、プロセッサは、q
iをq
i*に(ここで、H(q
i*)は、E/N1
i*)、またはq
i*よりも小さい最も近い適切な値に設定することができる。続いて、増加ステップ56において、プロセッサは、インデックスiを増加させる。
【0051】
第1確認ステップ52において、E/N1
i*が1よりも大きいことを確認した上で、プロセッサは、現在のインデックスiに関するq
iを計算しない。それどころか、データシート更新ステップ58において、ここまで計算してきたシーケンス{q
1, q
2, … q
U}(U(現在のインデックスよりも1つ小さい)は、鍵の許容される更新の最大数)を(N,E)の下方にあるデータシートに追加する。
【0052】
データシート更新ステップ58の後、プロセッサは、第2確認ステップ60において、これ以上の(N,E)対が残っているかどうかを確認する。YESの場合、プロセッサは、選択ステップ47に戻り、選択された(N,E)対に対して{q
i}を計算した後、データシートを更新する。そうでなければ、プロセッサは、提供ステップ62において、完成したデータシートを提供し、暗号鍵の更新に使用する。例えば、
図1を参照して上述したように、プロセッサは、データシートをウェブサイトにアップロードしてもよく、あるいは、データシートを他のデバイスに伝達してもよい。
【0053】
図2を参照して上述したように、各q
i値は、通常、0.5よりも大きい。(しかし、q
Uがちょうど0.5になる場合もある)。
図4に示したH(q)のグラフを観察するとわかるように、E/N1
i*がiとともに増加することを考慮すると、q
i*(そのため、q
i)の値は、iが増加するにつれて減少する。例えば、E=80およびN=256に対し、方法46は、11q
i*値の減少列: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回更新するという意味である。)
【0054】
このデータシートを考慮して、鍵の新しいインスタンスを生成するプロセッサ(例えば、第2ISP26bのプロセッサ30)は、N、E、およびiを考慮して、適切なq
i値を検索する。(
図1を参照して上述したように、第1ISP26aは、iを第2ISP26bに指定する。)続いて、
図2〜
図3を参照して上述したように、プロセッサは、q
iを使用して更新シーケンスS
iを生成した後、S
iを使用してK
iからK
i+1を生成する。