説明

暗号鍵取り出しを制限する通信システム、方法、及びデバイス

【課題】優れた、エンティティ間の暗号化通信方法を提供する。
【解決手段】外部エンティティとの暗号化通信のための方法、システム、及びデバイスであって、デバイスは暗号鍵を特定しようと試みるサイドチャネル攻撃を妨げるように構成される。デバイスは、第1のメモリ、第1のメモリに格納された暗号鍵、及び暗号鍵に適用するための片方向関数を有する。使用中、暗号鍵は、片方向関数への適用に先立ち第1のメモリから取り出され、デバイスは、暗号鍵が不揮発性メモリから取り出されることを許可される回数を予め定められたしきい値まで制限するように構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、安全な通信の分野に関する。本発明は主として、プリンタと共に使用するカートリッジを含む、プリンタにおけるさまざまな集積回路の間の通信を可能にするために開発されたものであり、本出願に関連して説明される。しかし、本発明が、ソフトウェア、ハードウェア、及びその2つの組み合わせにおける使用を含む、一般的な分野に幅広い用途を有することが理解されよう。
【背景技術】
【0002】
(トナーカートリッジを必要とするレーザープリンタのような)消耗品を必要とするシステムの製造業者は、成果の程度の差こそあれ、消耗品を認証するという問題に対処してきた。多くは、特許を伴う特化されたパッケージングを採用した。しかし、そのようなパッケージングは、工業所有権保護が脆弱な国々において自宅での詰め替え操作又は複製品の製造を阻止することはない。複製の防止は、劣悪な製造による代用の消耗品が基本システムに損傷を与えることがないよう防ぐために重要である。例えば、フィルタ処理の不十分なインクはインクジェットプリンタの印刷ノズルを詰まらせてしまうことがあり、その結果、消費者がシステム製造業者を避難し、認証されていない消耗品の使用を認めなくなる。
【0003】
加えて、一部のシステムは、ライセンスによって管理され得る操作パラメータを有する。例えば、特定のプリンタハードウェアのセットアップが、連続印刷することができたとしても、使用ライセンスは、特定の印刷速度しか許可しないこともある。印刷システムは、ユーザがライセンス契約に違反できないことを認識して、安全な認証済みの方法で操作パラメータにアクセスして更新できることが理想的であろう。
【0004】
さらに、特定の国々の法律では、消耗品が再使用可能であることを求めている。この要求は、詰め替えが可能でなくてはならないが、認証されない自宅詰め替え又は複製詰め替えの手段を介してはならない、という点において、事態を若干複雑にしている。「純正」消耗品を認証するために、消耗品とプリンタとの間の通信はデジタル署名により認証されてもよい。デジタル署名を作成するために、署名されるデータ(d)は、鍵従属の片方向ハッシュ関数(SIG)を通じて秘密鍵(k)と共に渡される。すなわち、署名=SIG(d)である。現在使用されている最も定評のある鍵従属の片方向ハッシュ関数の1つは、HMAC−SHA1(ハッシュメッセージ認証コード(Hash Message Authentication Code)−セキュアハッシュアルゴリズム(Secure Hash Algorithm) No.1)であるが、任意の鍵従属の片方向ハッシュ関数が使用されてもよい。
【0005】
インクカートリッジのような消耗品は、品質保証集積回路デバイス、又は知られているようなQAチップを有することができ、それがインクの受け入れ前にプリンタ内の対応するQAチップにインクカートリッジを認証する。カートリッジQAチップは、秘密鍵を格納し、プリンタQAチップがカートリッジを受け入れる前に妥当性を検査するデジタル署名を生成する。
【0006】
メムジェット(Memjet)印刷システム内のデジタル暗号化及び暗号鍵の使用についての包括的な説明は、「Use of Base and Variant Keys with Three or more Entities」と題する米国特許第7,557,941号において提供される。米国特許第7,557,941号の内容全体は、相互参照により本明細書に組み込まれる。
【0007】
複製消耗品を製造するには、認証プロセスに違反する必要がある。複製消耗品は、プリンタが妥当性を検査するデジタル署名を生成する必要がある。デジタル署名には、カートリッジに格納されている秘密鍵が必要となる。QAチップは、鍵を復号化しようとして「攻撃される」ことがある。攻撃の1つのカテゴリは、サイドチャネル攻撃として知られる。それらの攻撃は、操作中にチップから「漏れた」情報を利用する。電力消費量、放出された電磁気放射、及びその他の外部的に観察可能な変動は、チップの操作に関する情報をもたらすことができる。
【0008】
サイドチャネル攻撃の1つの特有のタイプは、チップの電力消費量に注目する差分電力解析(differential power analysis)攻撃(又はDPA攻撃)である。電力消費量は容易に測定可能であり、さまざまな論理コンポーネントの状態の変化の数を指示する。通常、署名内の訂正ビットは、多数の論理状態を変化させるので、電力がスパイクする。攻撃者によって送信されるメッセージに応答して電力消費量の多数の(例えば100〜1000)のトレースを記録して解析することで、秘密鍵を明らかにすることができる。このことを踏まえれば、DPA攻撃は、特に安価で実際的である。
【0009】
秘密鍵を入手してしまえば、複製カートリッジは、攻撃された認証カートリッジとは区別がつかない。それ以降、認証カートリッジを受け入れるすべてのプリンタは、複製品も受け入れることになる。攻撃者を妨げるか、又は引き起こされる危害を減少させ、暗号鍵が正常に取得されるようにする、DPA防御を備えるQAデバイスを有することが望ましい。
【発明の概要】
【0010】
第1の態様によれば、本発明は、外部エンティティとの暗号化通信のためのデバイスを提供し、デバイスは、
第1のメモリと、
第1のメモリに格納された暗号鍵と、
暗号鍵に適用する片方向関数と、を備え、使用中に、
暗号鍵が、片方向関数への適用に先立ち第1のメモリから取り出され、デバイスは、暗号鍵が第1のメモリから取り出されることを許可される回数を予め定められたしきい値まで制限するように構成される。
【0011】
オプションとして、デバイスは、暗号鍵の取り出しを、取り出しの最高頻度をもたらすように予め定められた期間内のしきい値回数まで制限するように構成される。正当なユーザは、あまりに頻繁ではない限り、プリンタ間でカートリッジを無制限回数交換することができる。しかし、DPA攻撃者は、取り出し頻度の制限が非常にいらだたしいほど遅いので、暗号鍵を首尾よく推測するために必要な多くの電力トレースを得ることができない。
【0012】
好ましくは、暗号鍵は基本鍵であり、第1のメモリは不揮発性メモリである。オプションとして、暗号鍵は、デバイスの初期構成手順を保護するために使用されるバッチ鍵である。
【0013】
DPA攻撃は、基本鍵の取り出し及び使用中にその識別を推定するために、特定数の電力トレースを必要とする。基本鍵にアクセスできる回数を制限することにより、攻撃者は、基本鍵を解析して確定するための情報が不十分になる。
【0014】
好ましくは、デバイスは、片方向関数、基本鍵、及び第1の外部エンティティからの一意の情報に基づいて第1の変形鍵を生成するように構成され、第1の変形鍵はデバイスと第1の外部エンティティとの間の通信を認証するためのデジタル署名を生成するために格納される。
【0015】
第1の変形鍵は、取り出され、第1の外部エンティティとの通信ごとにデジタル署名を生成するために使用される。DPA攻撃は、第1の変形鍵を解析するのに十分な回数の電力トレースを得られる可能性があるが、この鍵は第1の外部エンティティとの通信しか認証しないので、攻撃者にとってほとんど価値がない。この鍵を使用する複製カートリッジは、1つのプリンタでしか機能しない。
【0016】
好ましくは、デバイスは、第1の変形鍵を格納するための書き換え可能メモリをさらに備え、書き換え可能メモリは、基本鍵を使用して生成される予め定められた数の変形鍵を格納する容量を有し、変形鍵の予め定められた数は、基本鍵が不揮発性メモリから取り出され得るしきい値回数よりも小さい。
【0017】
ユーザは、2つ又は3つのプリンタ間でインクカートリッジを合法的に共用したいと考える場合がある。カートリッジには、それぞれのプリンタの変形鍵を生成するために少なくとも3回不揮発性メモリから基本鍵を取り出すことが必要になる。しかし、キャッシュメモリが3つの変形鍵を格納することができる場合には、カートリッジがユーザのプリンタの間で何度も交換されても、QAチップが基本鍵の取り出し制限に到達することはない。DPA攻撃者には、3つの変形鍵のすべてを確定できる可能性があるが、引き続きあらゆる複製カートリッジを3つのプリンタで使用するようにしか制限しないので、採算上価値があるとはいえない。
【0018】
好ましくは、片方向関数を使用する各々の変形鍵の生成は、複数の別個の項を有する計算であり、デバイスは、項のランダム配列を使用するように構成される。これは、複数の電力消費波形を結合してノイズを減らすことをより難しくすることによって、攻撃者を妨げる。
【0019】
オプションとして、片方向関数を使用する各々の変形鍵の生成は、複数の別個の項を有する計算であり、デバイスは、他の類似するデバイスとは異なる項の配列を備えるように構成される。
【0020】
好ましくは、デバイスは、マスキング番号のセットをさらに備え、使用中、片方向関数を使用する各々の変形鍵の生成は、複数の別個の項、及び追加の項として付加されて後に計算の結果から減算されるマスキング番号の少なくとも1つを有する計算である。マスキング番号のセットは攻撃者には予測不可能であり、電力消費波形を変えることはあっても、最終的な暗号化の結果には影響を及ぼすことはない。
【0021】
オプションとして、マスキング番号は、各々の変形鍵の生成のためにランダムに生成される。
【0022】
好ましくは、デバイスは、基本鍵がデジタル署名を生成するために取り出されることを許可しない。さらに好ましい形態において、基本鍵は、変形鍵を生成するためにしか取り出すことはできない。
【0023】
好ましくは、デバイスは、リソースデータをさらに備え、第1の外部エンティティはリソースデータへの操作に関して特定の許可を持つ。
【0024】
オプションとして、リソースデータは、物理的特性を示す。
【0025】
オプションとして、物理的特性は、物理リソースの残量である。
【0026】
オプションとして、リソースは、消耗品リソースである。
【0027】
オプションとして、リソースエンティティは、消耗品リソースを保持する容器又はマガジンに物理的に取り付けられる。
【0028】
オプションとして、リソースは、流体である。
【0029】
オプションとして、流体はインクである。
【0030】
オプションとして、操作は読み取りを含み、そこでリソースデータが第1の外部エンティティによって読み取られる。
【0031】
オプションとして、操作は書き込みを含み、そこでリソースデータが要求側エンティティによって変更される。
【0032】
オプションとして、操作は減分を含み、そこでリソースが要求側エンティティによって減分される。
【0033】
オプションとして、片方向関数は、ハッシュ関数である。
【0034】
オプションとして、片方向関数は、SHA1である。
【0035】
第2の態様によれば、本発明は、エンティティ間の暗号化通信のためのシステムを提供し、システムは、
メモリに格納された暗号鍵を持つデバイスと、
応答してデバイスが片方向関数を暗号鍵及び識別データに適用して、デバイスと外部エンティティとの間の通信を認証するために使用される変形鍵を生成するように、通信を開始するためにデバイスに伝送する識別データを持つ外部エンティティとを備え、
デバイスは、暗号鍵が第1のメモリからの取り出しを許可される回数を予め定められたしきい値に制限するように構成される。
【0036】
オプションとして、デバイスは、暗号鍵の取り出しを、取り出しの最高頻度をもたらすように予め定められた期間内のしきい値回数まで制限するように構成される。
【0037】
好ましくは、暗号鍵は基本鍵であり、第1のメモリは不揮発性メモリである。
【0038】
好ましくは、識別データは、変形鍵がデバイスと外部エンティティとの間の通信のみを認証するためにデジタル署名を生成するように、外部エンティティを識別してすべての他の外部エンティティを除外する一意の識別子である。
【0039】
好ましくは、デバイスは、それぞれ複数の外部エンティティとの通信を認証するためにデジタル署名に対して生成される複数の変形鍵のための第2のメモリをさらに備える。
【0040】
好ましくは、第2のメモリは、予め定められた数の変形鍵を格納するための書き換え可能メモリであり、変形鍵の予め定められた数は、基本鍵が不揮発性メモリから取り出され得るしきい値回数よりも小さい。
【0041】
好ましくは、片方向関数を使用する各々の変形鍵の生成は、複数の別個の項を加算することを含み、デバイスは、項のランダム配列を使用するように構成される。
【0042】
好ましくは、片方向関数を使用する各々の変形鍵の生成は、複数の別個の項を加算することを含み、デバイスは、他の類似するデバイスとは異なる項の配列を備えるように構成される。
【0043】
好ましくは、変形鍵を生成するために使用される片方向関数は、複数の別個の項を互いに加算することを含み、デバイスは、マスキング番号を追加の項として片方向関数に付加し、続いて計算の和からマスキング番号を減算するように構成される。
【0044】
好ましくは、マスキング番号は、各々の変形鍵の生成のためにランダムに生成される。
【0045】
好ましくは、基本鍵は、変形鍵を生成するためにしか取り出すことはできない。
【0046】
好ましくは、デバイスは、リソースデータを格納し、外部エンティティはリソースデータへの操作に関して特定の許可を持つ。
【0047】
好ましくは、リソースデータは、物理的特性を示す。
【0048】
好ましくは、物理的特性は、物理リソースの残量である。
【0049】
好ましくは、操作は読み取り操作を含み、そこでリソースデータが第1の外部エンティティによって読み取られる。
【0050】
好ましくは、操作は書き込み操作を含み、そこでリソースデータが要求側エンティティによって変更される。
【0051】
好ましくは、書き込み操作は、物理リソースの消費の指示としてリソースデータを減分している。
【0052】
好ましくは、片方向関数は、ハッシュ関数である。
【0053】
好ましくは、ハッシュ関数は、SHA1である。
【0054】
好ましくは、デバイスは、インクカートリッジに組み入れられる。
【0055】
好ましくは、外部エンティティは、インクカートリッジと共に使用されるように構成されるインクジェットプリンタにおけるプリントエンジンコントローラ(PEC:print engine controller)である。
【0056】
第3の態様によれば、本発明は、エンティティ間の暗号化通信の方法を提供し、方法は、
メモリに格納された暗号鍵を持つデバイスを用意するステップと、
デバイスに伝送する識別データを持つ外部エンティティを用意するステップと、
変形鍵を生成するために片方向関数を暗号鍵及び識別データに適用するステップと、
デバイスと変形鍵を持つ外部エンティティとの間の通信を認証するステップと、
暗号鍵が第1のメモリから取り出される回数を予め定められたしきい値に制限するステップと、を備える。
【0057】
オプションとして、暗号鍵が取り出される回数を制限するステップは、取り出しの最高頻度をもたらすように予め定められた期間に限定される。
【0058】
好ましくは、暗号鍵は基本鍵であり、第1のメモリは不揮発性メモリである。
【0059】
好ましくは、識別データは、外部エンティティを識別してすべての他の外部エンティティを除外する一意の識別子であり、通信を認証するステップは、デバイスと外部エンティティ間の通信への接続のためにのみ変形鍵を持つデジタル署名を生成するステップを備える。
【0060】
好ましくは、方法は、それぞれ複数の外部エンティティとの通信を認証するためにデジタル署名に対して生成される複数の変形鍵のためのデバイスの第2のメモリを用意するステップをさらに備える。
【0061】
好ましくは、第2のメモリは、予め定められた数の変形鍵を格納するための書き換え可能メモリであり、変形鍵の予め定められた数は、基本鍵が不揮発性メモリから取り出され得るしきい値回数よりも小さい。
【0062】
好ましくは、片方向関数を使用する各々の変形鍵を生成するステップは、複数の別個の項を加算するサブステップを含み、デバイスは、項のランダム配列を使用するように構成される。
【0063】
好ましくは、片方向関数を使用する各々の変形鍵を生成するステップは、複数の別個の項を加算するサブステップを含み、デバイスは、他の類似するデバイスとは異なる項の配列を備えるように構成される。
【0064】
好ましくは、変形鍵を生成するために使用される片方向関数は、複数の別個の項を互いに加算することを含み、デバイスは、マスキング番号を追加の項として片方向関数に付加し、続いて計算の和からマスキング番号を減算するように構成される。
【0065】
好ましくは、マスキング番号は、各々の変形鍵の生成のためにランダムに生成される。
【0066】
好ましくは、基本鍵は、変形鍵を生成するためにしか取り出すことはできない。
【0067】
好ましくは、方法は、リソースデータをデバイスに格納するステップをさらに備え、外部エンティティに、リソースデータへの操作に関して特定の許可をもたらす。好ましくは、リソースデータは、物理的特性を示す。好ましくは、物理的特性は、物理リソースの残量である。好ましくは、許可の1つは、リソースデータが外部エンティティによって読み取られる読み取り操作である。好ましくは、操作は書き込み操作を含み、そこでリソースデータが要求側エンティティによって変更される。好ましくは、書き込み操作は、物理リソースの消費の指示としてリソースデータを減分している。
【0068】
好ましくは、片方向関数は、ハッシュ関数である。好ましくは、ハッシュ関数は、SHA1である。
【0069】
好ましくは、方法は、デバイスをインクカートリッジに組み入れるステップをさらに備える。好ましくは、外部エンティティは、インクカートリッジと共に使用されるように構成されるインクジェットプリンタにおけるプリントエンジンコントローラ(PEC)である。
【0070】
本発明の好ましい実施形態は、これ以降、ほんの一例として、添付の図面を参照して説明される。
【図面の簡単な説明】
【0071】
【図1A】サンプルのQAチップ電力トレースである。
【図1B】データに依存する電力スパイクを明らかにする共分散プロットである。
【図2】プリンタとQAチップとの間の暗号化通信を示すシステム図である。
【図3】本発明によるQAチップを持つインクカートリッジの標準的な使用のシナリオを示すシステム図である。
【図4】さらに複雑な使用のシナリオを示すシステム図である。
【図5】図2に示されるシステムに関与する方法ステップを示す流れ図である。
【図6】図3に示されるシステムに関与する方法ステップを示す流れ図である。
【図7】図4に示されるシステムに関与する方法ステップを示す流れ図である。
【発明を実施するための形態】
【0072】
本発明の特定の実施形態は、これ以降、出願者のメムジェット(Memjet)(商標)印刷システムを参照して説明される。しかし、本発明が印刷システムにおいて使用することに限定されることはなく、暗号化通信及び関連エンティティの認証を必要とする幅広い用途で採用され得ることを、当業者は理解するであろう。
【0073】
従来技術のQAチップのサイドチャネル動作
本発明は、上記で相互参照される米国特許第7,557,941号において提示される鍵管理機構を基礎とし、したがって同一の用語法に従う。メムジェット(Memjet)(商標)プリンタの各インクカートリッジは、プリントエンジンコントローラ(SOPEC)チップで稼働しているソフトウェアに自身を認証するために有用な基本鍵を格納して使用するQA(品質保証)チップを含む。この鍵の漏洩により、攻撃者は、適正なモデルの任意のプリンタにより受け入れられる複製インクカートリッジを作成できるようになる。
【0074】
従来技術又は未改良のQAチップは、攻撃者のコマンドに応答して、基本鍵を取り出し、それを以下の目的に使用する。
・着信コマンドの署名を確認する。
・認証済みの読み取りで要求される一部のデータに署名する。
・変形鍵を形成する(米国特許第7,557,941号を参照)。
【0075】
それらのコマンドが処理されるよう攻撃者が要求できる回数には事実上制限がない。
【0076】
サイドチャネル解析攻撃は、基本鍵の使用中の電力消費量、放射光、及び放出される高周波放出のようなQAチップの出力を繰り返し観察して、鍵の値を推測できる可能性がある。それらのQAチップの出力は、設計者には出力として意図されていないが、頻繁に攻撃者によって使用され得る。
【0077】
QAチップへの差分電力解析攻撃
以下の観察は、未改良のQAチップに対する可能なサイドチャネル攻撃の1つに関する−差分電力解析(DPA)。これはDPAによりQAチップを攻撃するために使用されるステップの標準的なシーケンスである。
1. 差分電力解析攻撃の第1のステップは、攻撃対象のQAチップが多数の既知の異なるデータ値、場合によっては入力値を処理している間、その電力消費量を記録することである。このステップにおいて、攻撃者は、測定された電力消費値を取得するが、この値は使用される秘密鍵に少なくとも部分的に依存するものである。攻撃者は、まず最初に、例えば1000の電力トレースを取り込む必要がある。図1Aは、未改良のQAチップのサンプルの電力トレース1を示す。
2. 次いで、既知のデータ値及び秘密鍵の一部(例えば、その4ビット)の推測を用いて、電力消費値は、一部の中間で計算された値がQAチップに電力をより多く又はより少なく消費させると期待されるかどうかに従って、2つのグループに区分される。中間で計算された値は通常、秘密鍵の選択された部分及び攻撃者に知られたその他のデータを伴う論理又は算術命令の後に続くQAチップ累算器のビットである。
3. 上記の各区分は、秘密鍵の一部をある程度推測するための仮定を形成する。仮定は、2つの区分の間の平均電力消費量の差分を解析する統計的測定により仮定が正しいかどうかを確認するために検査される。正しい鍵推定の場合、統計的測定は「スパイク」を明らかにするはずであり、正しくない鍵推定の場合、測定は平坦になるはずである。図1Bは、データに依存する電力スパイク3を明らかにする共分散プロット2を示す。
4. 次いで、攻撃者は、秘密鍵の他の部分についても同様に攻撃を単に続行する。
【0078】
さらに複雑な攻撃もまた可能であり、そのような攻撃は、電力消費トレースの必要数を減少させることもできる。
【0079】
認証済みの読み取りコマンドの場合(米国特許第7,557,941号を参照)、攻撃者は、HMAC−SHA1操作中に有用なDPA結果の生成を補助するため、以下の事項を制御することができる。
・チェッカの臨時の「RC」(160ビット)。
・読み取られるフィールド選択(フィールド選択は潜在的に大きい)。
・フィールド値(最初にそれらを減分又は書き込みすることにより)。
【0080】
これは結局、160ビット基本鍵について有用なDPA結果を生成するのにほぼ確実に十分といえる、膨大量の攻撃者制御になる。基本鍵から変形鍵を生成する間(米国特許第7,557,941号を参照)、攻撃者は、SHA−1操作中に有用なDPA結果の生成を補助するためにチェッカQAデバイス識別子ChipID(64ビット)を制御することができる。
【0081】
情報を得た攻撃者はおそらく、インクカートリッジQAチップに認証済みの読み取り値を基本鍵で署名するよう要求するが、これは基本インクアクセス鍵が変形鍵よりもはるかに価値があるからである。
【0082】
インクカートリッジQAチップの標準的な使用プロファイル
標準的なプリンタの使用事例の知識から、以下のパラメータがインクカートリッジQAチップについて真となる可能性が高い。
1. 使い捨てのインクカートリッジは、せいぜい数台のプリンタでしか機能しない。
2. 詰め替え可能なインクカートリッジでは、カートリッジの存続期間にわたり例えば10台の異なるプリンタ、又は詰め替えごとに数台のプリンタでしか機能する必要がない。これは、インクカートリッジが、機械的な損耗により、例えば5回だけ詰め替えられることを前提とする。
【0083】
基本サイドチャネル防御−変形鍵キャッシング
サイドチャネル防御は、生成される変形鍵のキャッシングを導入し、インクカートリッジQAチップを次の3つの方法で制約する。
1. QAチップの存続期間にわたり少数の変形鍵が生成されることしか許可しない。これはつまり、貴重な基本鍵には、各インクカートリッジQAチップの存続期間全体にわたり数回しかアクセスされないことを意味する。変形鍵が計算されると、変形鍵は後の使用に備えてキャッシュに入れられる。
2. 変形鍵に基づいてのみ署名を生成又は確認するようインクカートリッジQAチップを制限する。
3. 未構成のQAチップに存在するバッチ鍵が使用され得る回数を制限することで、それらの鍵へのDPA攻撃を防ぐ。バッチ鍵ついて、以下でさらに詳細に説明する。
【0084】
図2は、通常の使用中の第1のプリンタ12とQAチップ4との間の通信を図式的に示す。図5は、2つの間の通信を認証するための第1のプリンタ12及びカートリッジ13が後に続くステップを示す流れ図100である。第1に、カートリッジ13は、第1のプリンタ12に取り付けられる(ステップ102)。第1のプリンタは、有効な鍵を要求し、QAチップ4は、キャッシュ9内の1つの鍵を確認する(ステップ104)。変形鍵がキャッシュにない場合、QAチップ4は、基本鍵17が取り出された回数を確認する(ステップ106)か、又は特定の期間内の基本鍵取り出しの回数を確認する。基本鍵の取り出しの回数が最大回数(この場合は5)を超える場合、基本鍵取り出しは拒否され(ステップ108)、カートリッジはプリンタ12では使用することができない。
【0085】
第1のプリンタ12に対して自身を認証するため、QAチップ4は、不揮発性メモリ5に格納されている基本鍵17を取り出す。SHA1のような片方向関数6を使用して、第1の変形鍵18は、基本鍵17、及びプリンタのPEC20を識別するチップID16のような第1のプリンタ12からの一意の情報を使用して生成される(ステップ110)。第1の変形鍵18は、キャッシュメモリ9に格納され(ステップ116)、第1のプリンタ12に伝送されるフィールドデータ7のようなデータをデジタル署名8及び認証するために使用される(ステップ118)。第1の変形鍵18で生成されたデジタル署名8は、第1のプリンタ12によってのみ妥当性検査される。その他のプリンタとの通信には、それらのプリンタの一意のIDに基づくさらなるデジタル署名の生成が必要となる。
【0086】
キャッシュメモリ9が満杯である場合(ステップ112)、最も長い期間使用されなかったキャッシュ内の鍵は、新しく生成された変形鍵を優先して上書きされる(ステップ114)。
【0087】
第1のプリンタ12からのコマンド11は、仮想インク供給のようなフィールドデータ7がプリンタとの操作中に読み取られ減分され得るように、QAチップ4によって同様に妥当性検査される。第1のプリンタ12とQAチップ4との間のすべての認証は、基本鍵17が1回だけ取り出されるように、第1の変形鍵18に基づく。
【0088】
本発明のサイドチャネル防御は、カートリッジ13の正当な使用を妨げる可能性は低い。図3は、QAチップ4が図6の流れ図120において示されるステップへと続く標準的な使用のシナリオを示す。ユーザが、インクカートリッジ13を第1のプリンタ12から第2のプリンタ14に交換しようとしていることが考えられる(ステップ122)。最初に、カートリッジ13のQAチップ4は、基本鍵を最大5回取り出す許可を得ている。月の第6日に第1のプリンタ12に取り付けられると(図5のステップ102)、カートリッジ13内のQAチップ4は、基本鍵17、第1のプリンタID16を取り出して、第1の変形鍵21を生成することにより自身を認証する。この操作は、基本鍵取り出し許可の1つを使用してしまうので、ここで4に減少する。変形鍵21は、キャッシュメモリ9に格納され、(図2及び図5において説明される基本的な使用のシナリオに従って)第1のプリンタ12に送信されるデータをデジタル署名するために使用される。
【0089】
月の第9日に、ユーザは第1のプリンタ12からカートリッジ13を取り出して、それを第2のプリンタ14に取り付ける(ステップ122)。第2のプリンタ14は、異なるIDを持つので、第1の変形鍵21を使用して生成されたデジタル署名を妥当性検査することはない(ステップ124)。基本鍵取り出しの回数は、5よりも少ない(ステップ126)ので、基本鍵17の取り出しは許可される(ステップ130)。新しい変形鍵22は、基本鍵及び第2のプリンタ14の一意のIDを使用して生成される(ステップ132)。基本鍵の取り出しは、5回の取り出し許可のもう1つを使用してしまうので、ここで3に減少する。しかし、キャッシュメモリ9はここで、第1の変形鍵21及び第2の変形鍵22の両方を格納する(ステップ134及び138)。
【0090】
第2のプリンタ14とQAチップ4との間の通信は、第2の変形鍵を取り出すことにより認証されて(ステップ140)、伝送されるデータをデジタル署名する(ステップ142)。
【0091】
月の第10日に、ユーザはカートリッジ13を第1のプリンタ12に戻す(ステップ144)。第1の変形鍵21は、引き続きキャッシュに入れられているので(ステップ104)、基本鍵は取り出される必要はなく、基本鍵取り出し許可の回数は3のままである。第1の変形鍵21は引き続き、第1のプリンタ12が妥当性を検査するデジタル署名を生成することができる(図5のステップ118)。
【0092】
図4及び図7は、比較的可能性は低いが、依然として考えられるさらに複雑な使用のシナリオを示す。この場合、ユーザは、月の第10日にカートリッジを第3のプリンタ15に取り付ける(ステップ162)。カートリッジ13は、これまで第3のプリンタ15に取り付けられたことがなかったので、適切な変形鍵は存在しない(ステップ164)。第3の変形鍵23を生成するため、基本鍵17はもう1回取り出され、残りの基本鍵取り出し許可の回数が2に減少する(ステップ166及びステップ170)。第3の変形鍵23は、基本鍵17及び第3のプリンタ15のチップIDにハッシュ関数を適用することにより生成される(ステップ172)。キャッシュ9は2つの変形鍵を格納する容量しかないので(ステップ174)、使用後最も時間が経過した鍵、すなわち第1の変形鍵21は、上書きされて(ステップ176)、第3の変形鍵23がキャッシュに入れられる(ステップ178)。カートリッジ13は、通信を認証するために第3の変形鍵23を使用して8日間第3のプリンタ15で使用される(ステップ180及びステップ182)。
【0093】
月の第18日に、ユーザはさらにもう一度、カートリッジ13を第2のプリンタ14に取り付ける(ステップ184)。運良く、第2の変形鍵22は、引き続きキャッシュに入れられているので(ステップ124)、基本鍵取り出し許可の回数は2のままである。図6の流れ図120のステップ142に従って使用は進行する。しかし、月の第26日に、カートリッジ13は第1のプリンタ12に戻され(ステップ186)、第3の変形鍵23をキャッシュに入れるために第1の変形鍵21が上書きされたので(図5の流れ図100のステップ104)、第1の変形鍵21を生成するために基本鍵17が再度取り出される必要がある。QAチップは、流れ図100に示されるステップ106に従って先へ進む。この例において、第3の変形鍵23はここで、キャッシュ9内で使用後最も時間が経過した変形鍵であるので、第1の変形鍵21を優先して上書きされる(ステップ112及びステップ114)。これにより、カートリッジ13には、残りの基本鍵取り出し許可が1つしか残らない。しかし、3つの異なるプリンタで複数回使用された後、カートリッジ13には、たとえあったとしても、十分なインクが残っている可能性は低い。
【0094】
インク容量が高いか、又はカートリッジが詰め替え可能である場合、QAチップは、基本鍵が不揮発性メモリから取り出される頻度を制限するように構成されてもよい。例えば、取り出しの最大数は、(例えば、各暦日ごとなど)予め定められた期間のみに適用されてもよく、その後、任意の使用済みの取り出し許可が、次の予め定められた期間にわたり「再度クレジットされる」。
【0095】
攻撃者は、単一のインクカートリッジを使用して少数の生成済みの変形インクアクセス鍵にDPA攻撃を行なうことができる可能性がある。さらに、要求される変形鍵が、システムのよりセキュリティの甘い部分に存在する場合、攻撃者はおそらく、QAチップよりもむしろ他の場所を攻撃するであろう。
【0096】
攻撃者が、貴重な基本鍵にDPA攻撃を行なうためには、多数のインクカートリッジから電力消費波形を収集することが必要になる。例えば、DPA攻撃を完了するために1000の適合する電力消費波形が必要であり、各インクカートリッジは基本鍵ごとに3つの変形鍵を生成することを許可されると仮定すると、攻撃者には少なくとも333のインクカートリッジが必要になる。
【0097】
本発明がDPA攻撃を防ぐものではないことが理解されるであろう。目標は、DPAを、潜在的な攻撃者にとって多大な負担となるか、又は経済的に魅力のないものにすることである。
【0098】
要約すると、改良されたQAチップは引き続き、プリンタシステムの要求に応じて、事実上無制限数の有用な署名を生成することができるが、DPA攻撃に対する脆弱性を大幅に低下させる。
【0099】
バッチ鍵及び構成
バッチ鍵は、後の構成プロセスの安全を確保するため、チップがテストされるときにQAチップに入れられる。構成前に、QAチップは汎用であり、さまざまなブランド及びモデルのプリンタコンポーネントを作成するために使用されてもよい。
【0100】
構成プロセスは、例えばブランドXのシアンインクカートリッジなど特定のプリンタコンポーネントに必要とされる暗号鍵及びフィールドをQAチップに安全にロードする。バッチ鍵は、構成中、QAチップへの移動時に他のすべての鍵を暗号化するために使用される。構成プロセスは通常、物理的に安全なプリンタコンポーネント工場において行なわれる。
【0101】
バッチ鍵の漏洩は、1つ又は複数の基本鍵の漏洩につながるおそれもあるので、防ぐ必要がある。バッチ鍵は変形鍵であるので、DPA攻撃は、複数のQAチップからの電力波形を結合することができない。
【0102】
変形鍵の生成及びSHA1
変形鍵は、160ビットの基本鍵及び64ビットのQAデバイス識別子ChipIDをよく知られているSHA1セキュアハッシュアルゴリズムに供給することにより作成される。SHA1セキュアハッシュアルゴリズムは、よく知られており、幅広く使用される。このアルゴリズムの操作の詳細な説明は、2009年8月7日にアクセスしたSHA hash functionsでWikipedia寄稿者により提供されている(http://en.Wikipedia.org/wiki/SHA_hash_functionsを参照)。
【0103】
項の静的配置
改良されたQAチップは、変形鍵の生成を実行するときに、SHA1計算の項のランダム配置を組み入れることができる。これは、攻撃者が、複数の電力消費波形を結合してノイズを減らすことをより困難にする。
【0104】
第1の実施態様は、個々のQAチップが、各SHA1計算に対して項の静的配置を有することである。言い換えれば、個々のQAチップは、時間の経過に伴ってその項の順序を変えることがない。各QAチップは、各SHA1計算に対して項の複数の可能な配置のうちの1つを有する。項の配置は、チップがQAチップアプリケーションでプログラムされるときに、ランダムに選択される。変形鍵生成の制約を考慮すると、この単純な手法は、攻撃者により多数のインクカートリッジを取得させて基本鍵への攻撃を成功させてしまうので、依然として有用な利益をもたらすはずである。
【0105】
この改良の実施態様の例として、http://en.Wikipedia.org/wiki/SHA_hash_functionsに示される方法で状態語Aの計算を検討する。
temp=(a leftrotate 5)+f+e+k+w[i]
(tempは後にaに割り当てられることに留意されたい。)
【0106】
この式は、5つの項を加算することを伴う。それらの加算は、120の異なる順序のうちのいずれかで行なわれ、それでも同じ計算結果を得ることができる。しかし、各々の個々のQAチップは、これらの項を固定された順序でしか加算しない。
【0107】
防衛者の観点から、この例についてさらに大きな問題は、「a」だけが左回転されていることを攻撃者が知ってしまうことである。これに対処するため、改良されたQAチップは、異なる入力により異なるその他のデータの複数の左回転を実行して、異なるチップでそれらの左回転の順序を再配置することができる。
【0108】
変形鍵を使用するHMAC−SHA1署名のような、無制限の操作に使用されるSHA1の実施態様は、異なっているはずなので、変形鍵の生成に使用されるSHA1の実施態様について知るために攻撃者が容易に調べることはできない。したがって、静的項配置を採用する改良されたQAチップは、その内部に2つの異なるSHA1の実施態様を有する必要がある。
【0109】
静的マスキング操作の追加
マスキング操作の追加には、以下の事項を伴う。
・攻撃者には予測不能なマスク番号のセットの、改良されたQAチップの各インスタンスへの挿入、ただしそれらの番号は個々のQAチップにいったんプログラムされると変更されないことに留意されたい。
・それらの予測不能な数を使用して、電力消費波形を変化させるが最終暗号化結果に影響を及ぼさないような方法で電力消費波形を変化させるための、QAチップにおける暗号化計算の変更。
【0110】
例えば、暗号化操作が以下の項のセットを加算することを伴う場合、
temp=(a leftrotate 5)+f+e+k+w[i]
次いで、単純なマスキング操作の追加は(例えば)以下のようになってもよい。
・予測不能なマスク番号の1つmを第1の項に加算
・標準アルゴリズムに従って加算を完了、そして最後に、
・最終の和からmを減算
言い換えると、左から右への加算を仮定すれば、式は以下のように変更される。
temp=m+(a leftrotate 5)+f+e+k+w[i]−m
【0111】
類似する手法は、変形鍵を計算するために使用されるSHA1操作に含まれるその他の計算に使用されてもよい。例えば、以下の式におけるような、非線形のビット単位のブール演算のマスキング技法である。
f=(b and c) or ((not b) and d)
【0112】
CMOS演算論理装置(ALU:arithmetic logic unit)において消費される電力は、演算結果ではなく変更されたビットの数に依存するので、たとえ計算結果が同じであっても、各チップのALU電力消費波形は異なる。これは、攻撃者が、複数のチップからのALU電力消費波形を有効に結合して基本鍵へのDPA攻撃を実行するのをさらに困難にする。
【0113】
項の再配置にまさるマスキングの1つの利点は、異なる電力消費波形を持つQAチップの数が非常に多くなることである。項の可能な再配置の数は、比較的少ない。
【0114】
マスキングは通常、動的なマスク値をもたらすために1つのチップ内でランダムデータのソースを使用することを伴う。各QAチップからほんのわずかな数の電力消費波形しか得られないので、動的マスク値は、改良されたQAチップに要求されることはない。
【0115】
動的な項の配置の追加
場合によっては、動的な項の配置においてDPA防御の利点があってもよい、つまり、改良されたQAチップは単一のチップ内の各々連続する変形鍵の生成ごとに項の計算の順序をランダムに配置するということである。
【0116】
QAチップが適用されている特定の状況により、変形鍵生成の許容される数が必然的に高い場合、又はhttp://en.Wikipedia.org/wiki/SHA_hash_functionsに一覧されるその他の制約を強制できない場合、利点は最適である。
【0117】
動的マスキング操作の追加
1つの動的マスキング操作は、単一のチップ内の各々連続する変形鍵の生成ごとにマスキング値「m」をランダムに生成する改良されたQAチップを含む。マスキング値は、静的マスキング操作の追加について説明されているように適用される。動的な項の配置(上記で説明)の場合のように、一部の用途で十分な柔軟性を提供するために、変形鍵生成の許容される数が比較的高い場合、又はhttp://en.Wikipedia.org/wiki/SHA_hash_functionsに一覧されるその他の制約を強制できない場合、利点は最適である。
【0118】
マスキングは、より高位のDPA攻撃によって打ち破られる得る可能性がある。より高位のDPA攻撃は、基本的なDPA攻撃よりも多くの電力消費波形を必要とするので、動的マスキングは依然としてある程度有利となる可能性がある。
【0119】
防御の追加の利点
説明される防御は、サイドチャネル攻撃の範囲への抵抗を強化するが、また、収束イオンビームチップ変更のような他の物理的攻撃の範囲に対するQAチップの脆弱性を減少させる。その理由は、インクカートリッジの存続期間にわたり、基本鍵の値が不揮発性メモリセルから他の回路にごくわずかな回数しか移動しない場合、各々の困難なチップ変更/プローブごとに鍵情報が実質的に得られる可能性はほんのわずかしかないからである。鍵ビットを含む小さな不揮発性メモリセルの電荷を直接測定することは、それがメモリから読み取られるのでない限り非常に困難である。
【0120】
QAデバイス識別子を設定するための追加のコマンド
追加のset_QA_Device_IDコマンドは、基本鍵の使用をさらに明示的にするために追加されてもよい。このコマンドは、
検査デバイスの適切なQAチップ識別子を伝達し、選択された基本鍵又は基本鍵のセットに対して、
変形鍵の1つ又はセットの計算を行なわせ、
後に使用するように変形鍵(複数可)のキャッシングを行なわせる。
【0121】
仮想消耗品による変形鍵生成の制限
改良されたQAチップにおいて許可される変形鍵生成の数は、仮想消耗品(VC)を使用することにより制限することができる。仮想消耗品は、一部のリソースの残量を指示するQAチップのフィールドであり、リソースが消費されるのに応じてプリンタ操作中に確実に減分される。
【0122】
この手法は、以下の利点を有する。
・認可された詰め替えマシンは、仮想インクを詰め替える場合と同じ方法で、許可された変形鍵生成の回数だけ詰め替える。
・QAチップは、多数の詰め替えにわたり必要とされる変形鍵生成の予め定められた最大数に制限される必要がない。
【0123】
本発明は、本明細書においてほんの一例として説明された。当業者であれば、広範な発明概念の精神及び範囲を逸脱することのない多数の変形及び変更を容易に理解するであろう。

【特許請求の範囲】
【請求項1】
外部エンティティとの暗号化通信のためのデバイスであって、
第1のメモリと、
前記第1のメモリに格納された暗号鍵と、
前記暗号鍵に適用する片方向関数と、を備え、使用中に、
前記暗号鍵が前記片方向関数への適用に先立ち前記第1のメモリから取り出され、前記暗号鍵が前記第1のメモリから取り出されることを許可される回数を予め定められたしきい値まで制限するように構成されるデバイス。
【請求項2】
前記暗号鍵の取り出しを、取り出しの最高頻度をもたらすように予め定められた期間内の前記しきい値回数まで制限するように構成される請求項1に記載のデバイス。
【請求項3】
前記暗号鍵が基本鍵であり、前記第1のメモリが不揮発性メモリである請求項1に記載のデバイス。
【請求項4】
前記片方向関数、基本鍵、及び第1の外部エンティティからの一意の情報に基づいて第1の変形鍵を生成するように構成され、前記第1の変形鍵が前記デバイスと前記第1の外部エンティティとの間の通信を認証するデジタル署名を生成するために格納される請求項1に記載のデバイス。
【請求項5】
前記第1の変形鍵を格納するための第2のメモリをさらに備え、前記第2のメモリが、前記基本鍵を使用して生成される予め定められた数の変形鍵を格納する容量を有し、変形鍵の前記予め定められた数が、前記基本鍵が不揮発性メモリから取り出され得る回数のしきい値回数よりも小さい請求項4に記載のデバイス。
【請求項6】
前記片方向関数を使用する各々の前記変形鍵の前記生成が複数の別個の項を加算することを含み、前記項のランダム配列を使用するように構成される請求項5に記載のデバイス。
【請求項7】
前記片方向関数を使用する各々の前記変形鍵の前記生成が複数の別個の項を加算することを含み、他の類似するデバイスとは異なる前記項の配列を備えるように構成される請求項5に記載のデバイス。
【請求項8】
前記変形鍵を生成するために使用される前記片方向関数が複数の別個の項を互いに加算することを含み、マスキング番号を追加の項として前記片方向関数に付加し、続いて計算の和から前記マスキング番号を減算するように構成される請求項5に記載のデバイス。
【請求項9】
前記マスキング番号が各々の前記変形鍵の前記生成のためにランダムに生成される請求項8に記載のデバイス。
【請求項10】
エンティティ間の暗号化通信のためのシステムであって、
メモリに格納された暗号鍵を持つデバイスと、
応答して前記デバイスが片方向関数を前記暗号鍵及び識別データに適用して、前記デバイスと外部エンティティとの間の通信を認証するために使用される変形鍵を生成するように、通信を開始するために前記デバイスに伝送する識別データを持つ外部エンティティとを備え、
前記デバイスは、前記暗号鍵が第1のメモリからの取り出しを許可される回数を予め定められたしきい値に制限するように構成されるシステム。
【請求項11】
前記デバイスが、前記暗号鍵の取り出しを、取り出しの最高頻度をもたらすように予め定められた期間内のしきい値回数まで制限するように構成される請求項10に記載のシステム。
【請求項12】
前記暗号鍵が基本鍵であり、前記第1のメモリが不揮発性メモリである請求項11に記載のシステム。
【請求項13】
前記識別データは、前記デバイスが前記片方向関数、前記基本鍵、及び第1の外部エンティティからの情報に基づいて第1の変形鍵を生成するように構成されるよう、すべての他の外部エンティティを除外して前記外部エンティティを識別する一意の識別子であり、前記第1の変形鍵が前記デバイスと前記第1の外部エンティティとの間の通信を認証するデジタル署名を生成するために格納される請求項12に記載のシステム。
【請求項14】
それぞれ複数の外部エンティティとの通信を認証するためにデジタル署名に対して生成される複数の変形鍵のための第2のメモリをさらに備える請求項13に記載のシステム。
【請求項15】
前記第2のメモリは、予め定められた数の前記変形鍵を格納するための書き換え可能メモリであり、変形鍵の前記予め定められた数は、前記基本鍵が前記不揮発性メモリから取り出され得るしきい値回数よりも小さい請求項14に記載のシステム。
【請求項16】
前記片方向関数を使用する各々の前記変形鍵の前記生成が複数の別個の項を加算することを含み、前記デバイスが前記項のランダム配列を使用するように構成される請求項15に記載のシステム。
【請求項17】
エンティティ間の暗号化通信の方法であって、
第1のメモリに格納された暗号鍵を持つデバイスを用意するステップと、
前記デバイスに伝送する識別データを持つ外部エンティティを用意するステップと、
片方向関数を前記暗号鍵及び前記識別データに適用して、変形鍵を生成するステップと、
前記デバイスと前記変形鍵を持つ前記外部エンティティとの間の通信を認証するステップと、
前記暗号鍵が前記第1のメモリから取り出される回数を予め定められたしきい値内に制限するステップと、
を備える方法。
【請求項18】
前記暗号鍵が取り出される前記回数を制限する前記ステップが、取り出しの最高頻度をもたらすように予め定められた期間に限定される請求項17に記載の方法。
【請求項19】
前記第1のメモリは不揮発性メモリである請求項17に記載の方法。
【請求項20】
前記識別データは、すべての他の外部エンティティを除外して前記外部エンティティを識別する一意の識別子であり、
通信を認証する前記ステップが、前記片方向関数、基本鍵、及び前記外部エンティティからの情報に基づいて第1の変形鍵を生成するサブステップ、を備え、
前記第1の変形鍵が、前記デバイスと前記外部エンティティとの間の通信を認証するデジタル署名を生成するために格納される請求項19に記載の方法。
【請求項21】
前記方法は、
それぞれ複数の外部エンティティとの通信を認証するためにデジタル署名に対して生成される複数の変形鍵のための前記デバイスの第2のメモリを用意するステップ、
をさらに備える請求項20に記載の方法。
【請求項22】
前記第2のメモリは、予め定められた数の前記変形鍵を格納するための書き換え可能メモリであり、
変形鍵の前記予め定められた数は、前記基本鍵が前記不揮発性メモリから取り出され得る回数の前記しきい値回数よりも小さい請求項21に記載の方法。
【請求項23】
前記片方向関数を使用する各々の前記変形鍵を生成する前記ステップが、
複数の別個の項を加算するサブステップを含み、
前記デバイスが、前記項のランダム配列を使用するように構成される請求項22に記載の方法。
【請求項24】
前記片方向関数を使用する各々の前記変形鍵を生成する前記ステップが、
複数の別個の項を加算するサブステップを含み、
前記デバイスが、他の類似するデバイスとは異なる前記項の配列を備えるように構成される請求項22に記載の方法。
【請求項25】
前記変形鍵を生成するために使用される前記片方向関数が、複数の別個の項を互いに加算する処理、を含み、
前記デバイスが、マスキング番号を追加の項として前記片方向関数に付加し、続いて計算の和から前記マスキング番号を減算するように構成される請求項20に記載の方法。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2013−502098(P2013−502098A)
【公表日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2012−524060(P2012−524060)
【出願日】平成22年9月20日(2010.9.20)
【国際出願番号】PCT/AU2010/001222
【国際公開番号】WO2011/038443
【国際公開日】平成23年4月7日(2011.4.7)
【出願人】(303024600)シルバーブルック リサーチ ピーティワイ リミテッド (150)
【Fターム(参考)】