ストレージメディア、ホスト装置、メモリ装置、及びシステム
【課題】秘密情報の不正利用の防止に有利な認証装置、被認証装置、およびその認証方法を提供する。
【解決手段】実施形態によれば、被認証装置を認証装置が認証する認証方法であって、前記被認証装置は、秘匿される固有の秘密識別情報(SecretID)、固有の暗号化秘密識別情報(E-SecretID)、および共通に付される鍵管理情報(FKB)を保持し、前記認証装置は、秘匿される識別鍵情報(IDKey)を保持し、前記認証装置が、前記被認証装置から、前記暗号化秘密識別情報(E-SecretID)および前記鍵管理情報(FKB)を読み出すステップと、前記認証装置が、読み出した前記鍵管理情報(FKB)を用いて、前記識別鍵情報(IDKey)から復号可能な識別鍵情報(FKey)を取得するステップと、前記認証装置が、得られた識別鍵情報(FKey)を用いて、読み出した前記暗号化秘密識別情報(E-SecretID)を復号し、秘密識別情報(SecretID)を取得するステップとを具備する。
【解決手段】実施形態によれば、被認証装置を認証装置が認証する認証方法であって、前記被認証装置は、秘匿される固有の秘密識別情報(SecretID)、固有の暗号化秘密識別情報(E-SecretID)、および共通に付される鍵管理情報(FKB)を保持し、前記認証装置は、秘匿される識別鍵情報(IDKey)を保持し、前記認証装置が、前記被認証装置から、前記暗号化秘密識別情報(E-SecretID)および前記鍵管理情報(FKB)を読み出すステップと、前記認証装置が、読み出した前記鍵管理情報(FKB)を用いて、前記識別鍵情報(IDKey)から復号可能な識別鍵情報(FKey)を取得するステップと、前記認証装置が、得られた識別鍵情報(FKey)を用いて、読み出した前記暗号化秘密識別情報(E-SecretID)を復号し、秘密識別情報(SecretID)を取得するステップとを具備する。
【発明の詳細な説明】
【技術分野】
【0001】
認証装置、被認証装置、およびその認証方法に関するものである。
【背景技術】
【0002】
一般に、情報セキュリティを要する分野において、自己の正当性を証明する手段として互いに共有した秘密情報と暗号器を用いた手法が採られている。
【0003】
例えば、電子決済に用いるICカード(SmartCard)等では、カード内のICには当該ICカードを個別化するためのID及び秘密情報が保持されており、更にICカードは、ID及び秘密情報に基づく認証を行うための暗号処理機能を有している。別の例では、コンテンツの著作権保護において、SD(登録商標)カードの正当性を証明する手段としてはContent Protection for Recordable Media(CPRM)において認証方式が規定されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Content Protection for Recordable Media (CPRM), http://www.4centity.com/
【非特許文献2】Media Identifier Management Technology (MIMT), http://www.4ecntity.com/
【発明の概要】
【発明が解決しようとする課題】
【0005】
秘密情報の不正利用を防止に有利な認証装置、被認証装置、およびその認証方法を提供する。
【課題を解決するための手段】
【0006】
実施形態によれば、被認証装置を認証装置が認証する認証方法であって、前記被認証装置は、秘匿される固有の秘密識別情報(SecretID)、暗号化された固有の秘密識別情報である暗号化秘密識別情報(E-SecretID)、および共通に付される鍵管理情報(暗号化FKey束,FKB)を保持し、前記認証装置は、秘匿される識別鍵情報(IDKey)を保持し、前記認証装置が、前記被認証装置から、前記暗号化秘密識別情報(E-SecretID)および前記鍵管理情報(FKB)を読み出すステップと、前記認証装置が、前記識別鍵情報(IDKey)を用いて、読み出した前記鍵管理情報(FKB)から復号可能な識別鍵情報(FKey)を取得するステップと、前記認証装置が、得られた識別鍵情報(FKey)を用いて、読み出した前記暗号化秘密識別情報(E-SecretID)を復号し、秘密識別情報(SecretID)を取得するステップとを具備する。
【図面の簡単な説明】
【0007】
【図1】第1の実施形態に係るメモリシステムの構成例を示すブロック図。
【図2】第1の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図3】第1の実施形態に係る暗号化FKey束(FKB)の構成例を示す図。
【図4】第1の実施形態に係るメモリシステムの構成例を示すブロック図。
【図5】第1の実施形態に係るNAND製造者による秘密情報の書き込み処理を例示する図。
【図6】第1の実施形態に係るカード製造者によるFKBの書き込み処理を例示する図。
【図7】変形例1に係る被認証装置を示す図。
【図8】変形例1に係るFKBをダウンロードするシステムを示すブロック図。
【図9】変形例1に係るFKBをダウンロードするフローを示すフロー図。
【図10】第2の実施形態に係るメモリシステムの構成例を示すブロック図。
【図11】第3の実施形態に係るメモリシステムの構成例を示すブロック図。
【図12】第4の実施形態に係るNAND型フラッシュメモリの構成例を示すブロック図。
【図13】図12中のNAND型フラッシュメモリの一ブロックの構成例を示す等価回路図。
【発明を実施するための形態】
【0008】
以下、実施形態について図面を参照して説明する。この説明においては、認証装置、被認証装置、およびその認証方法として、メモリシステムを一例に挙げるが、これに限られることはない。尚、この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
【0009】
[第1の実施形態]
第1の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。 <1.構成例(メモリシステム)>
まず、図1を用い、第1の実施形態に係るメモリシステムの構成例について説明する。
【0010】
図示するように、第1の実施形態に係るメモリシステムは、被認証装置であるNAND型フラッシュメモリ10、認証装置であるホスト装置20、および両者を仲介するコントローラ19を備える。ホスト装置20は、コントローラ19により、NAND型フラッシュメモリ10にアクセスする。
【0011】
ここで、NAND型フラッシュメモリ10等の半導体製品の製造工程について、簡単に説明する。半導体製品の製造工程は、主に基盤ウエハー上に回路を形成する前工程と、前期ウエハーを個片に切り分けた後、配線や樹脂パッケージ封入などを行う後工程に分けられる。ここで、コントローラ19は、前工程においてNAND型フラッシュメモリ10内に包含されるよう構成される場合、前工程においては包含されないが後工程において同一パッケージに包含されるように構成される場合、NAND型フラッシュメモリ10とは異なるチップの形態をとる場合、など様々な場合がある。図1を含め、以下では、コントローラ19は、NAND型フラッシュメモリ10とは異なるチップの形態を採る場合を例にとっている。以下、特に断りのない限り、ホスト装置20とNAND型フラッシュメモリ10間のデータや命令のやり取りにおいては、多くの場合コントローラ19が仲介するものである。この場合でもコントローラ19は、前述のデータや命令の本質的内容を変えることはないため、詳細については、省略して説明する場合がある。なお、NAND型フラッシュメモリ10およびコントローラ19の構成例の詳細な説明については、後述する。
【0012】
なお、ホスト装置20は、民生機器のように専用ハードウェアで構成される場合、専用ハードウェアとそれを動作させるファームウェアの組み合わせで構成される場合だけでなく、装置の機能がPC上で動作するソフトウェアプログラムで構成される場合も考えられる。
【0013】
以下において、図1に示す各コンポーネント、データ処理について、以下で説明する。本例では、被認証装置であるNAND型フラッシュメモリ10に記録されている秘密識別情報であるSecretIDを第3者から秘匿した状態で読み出すと共に、前述の被認証装置10から読み出されたデータであることを確実に確認する方法、及び同方法をNAND型フラッシュメモリ10に適用する場合の構成例を示すものである。
【0014】
1−1.NAND型フラッシュメモリ
NAND型フラッシュメモリ10は、上記のように、被認証装置である。
図示するように、本例に係るNAND型フラッシュメモリ10は、セルアレイ11、及びセルアレイ11の周辺領域に配置されるデータキャッシュ12A、12B、12C、データ生成回路(Generate)13、14、一方向性変換器(Oneway)15を備える。
【0015】
セルアレイ(Cell array)11は、外部からの読み出し/書き込みが可能な一般領域(Read/Write area)11−1、外部からの読み出し/書き込みが禁止された秘匿領域(Hidden area)11−2、外部からの書き込みが禁止されたROM領域(ROM area)11−3等を備える。
【0016】
読み書き可能領域(以下Read/Write areaと称する場合もある)11−1は、データ記録及びデータ読み出しのいずれもNAND型フラッシュメモリ10外部から可能な領域である。読み書き可能領域11−1には、ROM領域11−3に記録されたインデックスvで指定されたFKeyvによって暗号化された秘密識別情報SecretID(E-SecretID)および前記FKeyvを秘匿するために用意された暗号化FKey束である鍵管理情報FKBv(Family Key Block)が記録される。FKBvはNAND型フラッシュメモリ10に記録される他のデータとは異なり、NAND型フラッシュメモリ10の製造時だけでなく、例えばSD Card(登録商標)の様にNAND型フラッシュメモリ10にコントローラを結合させて一般ユーザ向けのストレージメディアを製造する段階や、或いは前記ストレージメディアを販売後にユーザの要求に従ってサーバからダウンロードして記録するように構成することも可能である。
【0017】
ここで、鍵管理情報(FKBv)とは、ホスト20が保持する秘密情報である識別鍵情報(IDKeyk、これについては後述する)と当該識別鍵情報(IDKeyk)の識別情報(k)とに基づいて秘匿情報(FKeyv)を復号するために用いられる情報、又はホスト20が保持する秘密情報である識別鍵情報(IDKeyk、これについては後述する)と当該ホスト20の識別情報とを用いて、秘匿情報(FKeyv)を復号するために用いられる情報ある。また、鍵管理情報(FKBv)は、製造工程に合わせてNAND型フラッシュメモリ10毎にユニークに用意するだけでなく、例えばNAND型フラッシュメモリ10の製造ロット(lot)単位など、複数のNAND型フラッシュメモリ10に共通に付すことが可能な情報(対応付けられることが可能な情報)である。また、鍵管理情報(FKBv)のインデックス情報vは、FKBvの識別情報又はバージョン番号情報であっても良い。一方、暗号化された秘密識別情報(E-SecretID)とは、NAND型フラッシュメモリチップ10ごとに固有に(ユニークに)付される秘密識別情報を暗号化したデータである。或いは、NAND型フラッシュメモリに予めコンテンツを記録して販売する様なプリレコ(事前記録)コンテンツ配布用途に使う場合には同じコンテンツデータを記録する際には敢えて同じ暗号化秘密識別情報(E-SecretID)を記録するなど、用途に合わせて同じ暗号化秘密識別情報を複数のNAND型フラッシュメモリに記録することもできる。
【0018】
秘匿領域(Hidden area)11−2は、NAND型フラッシュメモリ10の外部に対してはデータ記録だけでなく、データ読み出しも禁止される領域(Read/Program inhibit)である。本例に係る秘匿領域11−2には、上記認証においてNAND型フラッシュメモリ10が用いる秘密鍵情報NKeyiおよびNAND型フラッシュメモリ10の秘密識別情報SecretIDが記録される。
【0019】
ROM領域(ROM area)11−3は、外部からのデータ記録が禁止され、データ読み出しが許可される領域である。本例に係るROM領域11−3には、秘匿領域(Hidden area)11−2に記録される秘密情報NKeyiを示すためのインデックス情報i(index of NKey)および読み書き可能領域11−1に記録される鍵管理情報であるFKBvによって秘匿されているFKeyvを示すためのインデックス情報v(index of FKey)が記録される。本例では、インデックスiやインデックスvを記録する際にデータに誤りが生じてしまった場合でも、正しい識別情報が読み出せるようにするために、一般的には誤り訂正符号化された状態で記録される。しかし、ここでは、誤り訂正符号化/復号処理については特に図示しない。
【0020】
データキャッシュ(Data Cache)12A、12B、12Cは、セルアレイ11から読み出したデータを一時的に記憶する。
【0021】
データ生成部(Generate)13、14は、複数の入力データから予め定められた演算によって出力データを生成する回路である。
【0022】
データ生成部13は、ホスト装置20から受信した元情報(HCj)を前述の秘密情報NKeyiを用いて変換することでHKeyi、jを生成する。データ生成部14は、ホスト装置20から受信した乱数RNhを前記HKeyi、jを用いて変換することで、セッション鍵SKeyi、jを生成する。例えば、データ生成部13、14は、ハードウェアでもソフトウェアでも実装されるものである。データ生成部13、14は、回路として実装される場合は、全体の回路規模を小さくするために前述の一方向性変換器と同じ或いは一方向性変換器を流用した回路やAES(Advanced Encryption Standard)暗号化器などを用いることも可能である。同様にデータ処理手順を分かり易くするために異なる構成要素として図示されている2つのデータ生成部は同じ回路を繰り返し利用することが可能である。
【0023】
一方向性変換部(Oneway)15は、入力されたデータと別途入力された鍵データに一方向性の変換を施し、一方向性変換された入力データを出力する。一方向性変換部(Oneway)15はハードウェアでもソフトウェアでも実装されるものであり、回路で実装も可能である。本実施例では秘匿領域11−2から読み出した秘密識別情報SecretIDをデータ生成回路14によって生成されたセッション鍵データSKeyi、jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-ID (= Oneway(SKeyi、j、 SecretID))を生成する。また、回路で実装される場合は、前述の通り、メモリシステム全体のハードウェア回路規模を小さくするために、一方向性変換部15を前記データ生成部14等としても使用することも可能である。
【0024】
また、図示しないが、コントローラ19を介してホスト装置20に送付されるデータを出力する出力部なども必要に応じて、構成要素として配置されても良い。
【0025】
1−2.ホスト装置
図示するように、本例に係るホスト装置(Host)20は、復号部(Decrypt)21、FKB生成部(Process FKB)22、メモリ(Memory)23、乱数生成部(RNG)24、選択部(Select 2)25、データ生成部(Generate)26、一方向性変換部(Oneway)27、及びデータ検証部(Verify)28、スイッチ部29等を備える。この他、例えば、図示しない誤り訂正処理部なども必要に応じて構成要素として備えることが可能である。
【0026】
復号部(Decrypt)21は、秘密識別情報(E-SecretID)をNAND型フラッシュメモリ10から読み出す(コントローラ19を介して)。読み出されたデータ(E-SecretID)を別途入力された鍵データFKeyで復号し、復号された入力データを出力する。本実施例では、復号部21は、ホスト装置20が秘匿している秘密情報IDKeykを鍵情報として、データ選択部(Select1)22−1において選択されたE-SecretIDデータを復号し、SecretIDを得るためのものである。
【0027】
FKey復号部(Process FKB)22は、NAND型フラッシュメモリ10から読み出される鍵管理情報(FKBv)、およびメモリ23に秘匿されている識別鍵情報IDKeyk、識別鍵情報IDKeykのインデックス情報kを用い、鍵データFKeyを復号し、復号部21に出力する。このようにすることで、SecretIDが記録されるNAND型フラッシュメモリ10に適合したFKeyを復号する。本例では、FKey復号部22は、データ選択部(Select1)21−1および復号部(Decrypt)22−2を備える構成を一例として具体的に示している。
【0028】
第1段目のデータ選択部(Select1)21−1は、NAND型フラッシュメモリ10から読み出した暗号化FKey束(FKBv)からメモリ23に記憶されるインデックス情報kを用いてメモリ23に秘匿されている識別鍵情報によって復号可能なデータを選択して、復号部22−2に出力する。
【0029】
復号部(Decrypt)22−2は、メモリ23によりホスト20が秘匿している識別鍵情報IDKeykを用いて、データ選択部22−1において選択されたデータを復号し、得られた鍵データFKeyを復号部21に出力する。
【0030】
メモリ23は、インデックス情報k、識別鍵情報IDKeyk、秘密鍵情報セットHKeyi、j (i=1、…、m。尚、jは当該HKeyi、jにおいては固定の値である)、およびホスト定数HCjを記憶し、少なくとも識別鍵情報IDKeykおよび秘密鍵情報セットHKeyi、j (i=1、…、m)をホスト装置20の外部から秘匿する。ここで、ホスト定数(または元情報)HCjとは、認証要求(Request authentication)時にNAND型フラッシュメモリ10に送付するために予め保持しているホスト装置20の定数をいう。詳細については、後述する。
【0031】
乱数生成部(RNG: Random Number Generator)24は、認証に用いる乱数RNhを生成する。
【0032】
第2段目のデータ選択部(Select2)21−2は、NAND型フラッシュメモリ10のデータキャッシュ12Cから読み出した秘密情報NKeyiのインデックス情報iを用いて、当該ホスト装置20が秘匿している秘密情報セットHKeyi、j (i=1、…、m。尚、jは当該HKeyi、jにおいては固定の値である)から、NAND型フラッシュメモリ10との認証処理に必要な秘密情報HKeyi、jを選択する。
【0033】
データ生成部(Generate)26は、複数の入力データから予め定められた演算によって出力データを生成する演算部である。本例では、データ生成部26は、当該ホスト装置20自身が生成した乱数RNhを当該ホスト装置20が秘匿している秘密情報HKeyi、jを用いて変換することで、セッション鍵SKeyi、jを生成する。例えば、データ生成部26は、上記AES暗号化演算などを用いることも可能である。
【0034】
一方向変換部(Oneway)27は、復号部21から出力されるSecretIDをデータ生成部26から出力されるセッション鍵SKeyi、jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-IDを生成する。
【0035】
ここで、上記秘密鍵情報IDKeyk、HKeyi、jは、例えば、民生機器であれば内部の専用メモリにメーカ独自の方法で暗号化した上で記録されていたり、ソフトウェアプログラムであればタンパーレジスタントソフトウェア(TRS)技術によって不正な解析から保護できる状態で保持していたり、或いはセキュリティモジュールを内蔵している場合には当該セキュリティモジュールの機能を利用して秘匿するなどの対策を採った状態等で秘匿される。
【0036】
データ検証部(Verify)28は、NAND型フラッシュメモリ10から受信した一方向性変換識別情報Oneway-IDと、ホスト装置20内の一方向性変換部27から得られた一方向性変換識別情報Oneway-IDとが一致するか否かを比較して判定する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、復号部21で得られた前記SecretIDが正しいSecretIDであると判定して、得られたSecretIDを以降の処理に引き渡す。一方、不一致の場合(NG)には、前記SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
【0037】
スイッチ部29は、データ検証部(Verify)28において一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)の判定結果が制御信号として入力されると、信号経路をオンとさせ、秘密識別情報SecretIDを出力する。
【0038】
なお、コントローラ(Controller)19は、NAND型フラッシュメモリ10を制御して、ホスト装置20との間のデータ転送等を行う。詳細については、後述する。
【0039】
また、メモリシステムの構成例は、上記説明したものに限られない。例えば、図示しない誤り訂正処理部等のその他の構成要素も必要に応じて備えることが可能である。
【0040】
<2.認証フロー>
次に、図2に沿って、第1の実施形態に係るメモリシステムの認証フローについて説明する。
【0041】
(Step S11)
図示するように、まず認証開始(Start)すると、ホスト装置20は、NAND型フラッシュメモリ10から鍵管理情報である暗号化FKey束(FKB: Family Key Block)および暗号化SecretID(E-SecretID)を読み出す。
【0042】
(Step S12)
続いて、ホスト装置20は、読み出したFKBからデータ選択部(Select1)21−1によりデータ選択処理を行い、ホスト装置20が復号可能な暗号化FKeyデータを読み出すと共に、秘匿している秘密鍵情報IDKeykを用いて上記復号処理部21−2により復号することにより鍵データFKeyを得る。さらに、ホスト装置20は、得られた鍵データFKeyを用いて、NAND型フラッシュメモリ10から読み出した暗号化されたNAND型フラッシュメモリ10の秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
【0043】
(Step S13)
続いて、ホスト装置20は、認証要求時に必要となる乱数RNhを生成する。認証処理に乱数RNhを用いることにより、以下の処理でNAND型フラッシュメモリ10との間で毎回異なる共有鍵を利用することができる。
【0044】
(Step S14)
続いて、ホスト装置は、認証要求(Request authentication)と共に予め保持しているホスト定数(HCj)および乱数RNhとをNAND型フラッシュメモリ10に送出する。
【0045】
(Step S15)
続いて、NAND型フラッシュメモリ10は、NKeyi (i=1、…、m)を秘匿領域11−2からロードし、データキャッシュ12Bに保存する。
【0046】
(StepS16)
続いて、NAND型フラッシュメモリ10は、ホスト装置20が秘密情報セットHKeyi、j (i=1、…、m)からNAND型フラッシュメモリ10との認証に必要となるHKeyi、jを選択するために必要なNKeyのインデックス情報iをデータキャッシュ12Cに読み出し、ホスト装置20に送出する。
【0047】
(StepS17)
続いて、ホスト装置20は、受信したインデックス情報iを用いて、予め秘匿していた秘密情報セットHKeyi、j (i=1、…、m)から当該NAND型フラッシュメモリ10との認証処理に必要な秘密情報HKeyi、jを選択する。
【0048】
(Step S18)
上記Step S17の処理と並行して、NAND型フラッシュメモリ10は、秘匿しているNKeyiと受信したホスト定数HCjとを用いて、データ生成回路13におけるデータ生成処理によりHKeyi、jを生成する。これと共に、受信した乱数RNhを用いて、データ生成回路14におけるデータ生成処理により、セッション鍵データSKeyi、j (= Generate(HKeyi、j、 RNh))を生成する。
【0049】
(Step S19)
続いて、ホスト装置20は、選択した秘密情報HKeyi、jと生成した乱数RNhと用いて、データ生成部26におけるデータ生成処理により、セッション鍵データSKeyi、j (= Generate(HKeyi、j、 RNh))を生成する。
【0050】
(Step S20)
続いて、ホスト装置20は、ID要求(Request ID)をNAND型フラッシュメモリ10に送る。
【0051】
(Step S21)
続いて、NAND型フラッシュメモリ10は、秘密識別情報SecretIDを秘匿領域11−2から読み出し、データキャッシュ12Aに保存する。
【0052】
(Step S22)
続いて、NAND型フラッシュメモリ10は、生成したセッション鍵データSKeyi、jを用いて、秘密識別情報SecretIDを一方向性変換部15における一方向性変換処理を行い、一方向性変換データ Oneway-ID (=Oneway(SKeyi、j、 SecretID))を生成し、生成された一方向性変換データOneway-IDをホスト装置20に送出する。
【0053】
(Step S23)
続いて、ホスト装置20は、秘密識別情報SecretIDを、生成したセッション鍵データSKeyi、jを用いて一方向性変換部27における一方向性変換処理を行い、一方向性変換データOneway-IDを求める。
【0054】
(Step S24)
続いて、ホスト装置20は、NAND型フラッシュメモリ10より受信した一方向性変換データOneway-IDと、生成した一方向性変換データOneway-IDとが一致するか否かを判定する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、復号部21で得られた前記SecretIDが正しいSecretIDであると判定して以降の処理にSecretIDを引き渡す。一方、不一致の場合(NG)には、前記SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
【0055】
(Step S25)
続いて、ホスト装置20は、上記ステップS24の結果を出力(Output)する。
【0056】
以上の動作により、第1の実施形態に係る認証フローを終了する(End)。
【0057】
<3.FKB(Family Key Block)について>
次に、図3を用い、第1の実施形態に係る鍵管理情報FKB(Family Key Block)についてより詳しく説明する。
【0058】
秘密識別情報SecretIDが記録されているNAND型フラッシュメモリ10に適合した鍵管理情報FKBを生成するためには、予め用意された秘密鍵情報であるIDKeyi (i=1,…,n)(Set of IDKeyi’s)の1つ1つのIDKeyiを用いて、FKeyvを1つ1つ暗号化(Encrypt)する。つまり、鍵管理情報FKBとは、暗号化FKeyv (E- FKeyv,i) = Encrypt(IDKeyi, FKeyv)の集合であり、この暗号化FKeyvの集合を暗号化FKey束と称する。
【0059】
尚、鍵管理情報FKBの構成については、本例に限られない。例えば、特定のIDKeyiが露呈してしまった場合、当該IDKeyiを保持しているホスト装置20では暗号化FKey束からFKeyを復号することができないようにするために、当該秘密情報IDKeyiで復号可能な暗号化FKeyv(上述の例ではE- FKeyv,i)をFKBから削除することにより、新たに構成されたFKBを記録したNAND型フラッシュメモリ10を使用した場合には、当該ホスト装置では正しいFKeyv及びSecretIDを得る(復号する)ことができないようにすることも可能である。このようにすることで、当該秘密情報IDKeyiを保持したホスト装置20を無効化する機能を提供することも可能である。
【0060】
鍵管理情報FKBの生成方法についても、本例に限られない。例えば、CPRM(非特許文献1)において用いられているMKB(Media Key Block)技術や、非特許文献3に開示されているMKB技術を用いてFKBを生成しても、ホスト装置20を無効化する機能を提供することが可能である。例えば、上記技術を適用した場合、メモリシステムの構成例は図4のように示される。図示するように、FKey復号部(Process FKB)22が上位概念化されて図示される点で、図1と相違する。
【0061】
ここで、MKB技術とは、複数の機器がそれぞれ異なる秘密情報を持つ状況で、機器の無効化を実現しつつ、(無効化対象でない機器の間で)共通の秘密情報(Media Key)を効率よく共有するための技術であり、Broadcast Encryptionとも称される。
【0062】
<4.秘密情報やFKBの書き込みについて>
次に、NAND型フラッシュメモリ10への秘密情報や鍵管理情報FKBの書き込みについて説明する。
【0063】
4−1.NAND型フラッシュメモリの製造時等に書き込む場合
まず、図5を用い、例えば、NAND型フラッシュメモリの製造時等に秘密情報や鍵管理情報FKBを書き込む場合について説明する。
【0064】
ライセンス管理者(Licensing Administrator)40は、以下のデータを生成する:FKBv (v=1,…,n)、FKeyv (v=1,…,n)、 v (v=1,…,n)、 およびNKeyi、 i。なお、前述した通り、FKBvは、FKeyvを暗号化したものである。また、vは複数の値であっても良い。例えば、vとして1,2,3の3つの値をライセンス管理者40が生成する場合、ライセンス管理者40は、生成したvに対応させる形で、(FKB1, FKey1), (FKB2, FKey2), (FKB3, FKey3)を生成する。
【0065】
続いて、ライセンス管理者40は、生成したデータの内、FKeyv (v=1,…,n)、 v (v=1,…,n)、 NKeyi、 iをメモリ製造者30に渡す。これらのデータを渡す際には、例えば、ライセンス管理者40は、予めメモリ製造者30の公開鍵を入手しておき、データを当該公開鍵を用いて暗号化した上でメモリ製造者30に送信する等といった、安全な手段を用いる。
【0066】
メモリ製造者(Memory Vender)30は、上記NAND型フラッシュメモリ10に加え、ライセンス管理者40から渡されたFKBv (v=1,…,n)等のデータ31を保持し、選択部32、33、生成部34、暗号部35を備える。
【0067】
上記構成により、データ31を受け取ったメモリ製造者30は、vの中から一つの値を選択部32により選択し、当該vの値をNAND型フラッシュメモリ10のROM area11−3へインデックス情報v(index of FKey)として書き込む。
【0068】
また、メモリ製造者30は、インデックス情報i(index of NKey)の値をNAND型フラッシュメモリ10のROM area11−3へ、NKeyiの値をHidden area11−2へそれぞれ書き込む。
【0069】
メモリ製造者30は、生成部(SecretID Generator)34において秘密識別情報SecretIDを生成する。さらに、選択部32は、前記選択したvに対応するFKeyvを選択する。メモリ製造者30は、選択したFKeyvを用いて、生成したSecretIDを暗号化し、暗号化された秘密識別情報E-SecretIDを生成する。
【0070】
さらに、メモリ製造者30は、秘密識別情報SecretIDの値をNAND型フラッシュメモリ10のHidden area11−2へ、暗号化された秘密識別情報E-SecretIDの値をRead/Write area11−1へそれぞれ書き込む。
【0071】
以上の動作により、NAND型フラッシュメモリ10の製造時等に所定の秘密情報やFKBを書き込むことができる。なお、上記各値を書き込む順番は、暗号化された秘密識別情報E-SecretIDは、暗号化処理しないと得られない値であるため、暗号部35による上記暗号化処理後となる。しかし、それ以外の書き込み動作の順序について制約はなく、上述の例以外の順番で書き込んでも良い。
【0072】
さらに、メモリ製造者30は、書き込み処理を終えたNAND型フラッシュメモリ10をカード製造者(Card Vendor)に渡す。
【0073】
このように、本例では、インデックス情報v(index of FKey)等が、NAND型フラッシュメモリ10にあらかじめ書き込まれた状態とすることができる。
【0074】
4−2.FKBをカード製造者(Card Vendor)が書き込む場合
次に、図6を用い、FKBをカード製造者50が書き込む場合について説明する。
【0075】
カード製造者(Card Vendor)50は、上記メモリ製造者30から上記所定の情報v等が書き込まれたNAND型フラッシュメモリ10を受け取る。そして、例えばSD(登録商標)カード等の様に、そのNAND型フラッシュメモリ10を制御するコントローラ19を結合させ、一般ユーザ等向けのストレージメディア(ここでは、Card)55を製造する。
【0076】
カード製造者50は、上記ストレージメディア(Card)55に加え、ライセンス管理者40から受け取るデータ(FKBv)51、選択部52を備える。
【0077】
カード製造者50が鍵管理情報FKBvを書き込む処理については、次の通りである。
【0078】
まず、カード製造者50は、鍵管理情報FKBvをライセンス管理者からデータ51として受け取る。この際、データ51の受け渡しには、上述した安全な手段を用いる。
【0079】
そして、カード製造者50は、(コントローラ19を介して)NAND型フラッシュメモリ10のROM area11−3に記録されるインデックス情報vの値をデータキャッシュ12C等に読み出す。
【0080】
続いて、カード製造者50は、読み出したインデックス情報vの値に対応する鍵管理情報FKBvを選択部52により選択し、(コントローラ19を介して)NAND型フラッシュメモリ10のRead/Write area11−1に選択した鍵管理情報FKBvとして書き込む。
【0081】
<作用効果>
上記のように、第1の実施形態に係る認証装置、被認証装置、およびその認証方法によれば、少なくとも下記(1)乃至(3)の効果が得られる。
【0082】
(1)ホスト装置20から秘密情報が漏洩した場合であっても、漏洩した情報を用いたNAND型フラッシュメモリ10の秘密情報の不正利用を防止することができる。
ここで、認証装置であるホスト装置20は、民生機器の様な専用ハードウェア装置だけでなく、例えば、PC(パーソナルコンピュータ)などで実行可能なプログラム(ソフトウェア)として提供され当該ソフトウェアが実質的なホスト装置となる場合もある。一方、被認証装置であるNAND型フラッシュメモリ10は、記録メディアであり、ファームウェアと呼ばれるプログラムが介在する場合であっても、重要な処理や情報はセルアレイ11中のハードウェア内に秘匿された状態で記憶される。そのため、現実的には、例えば、PC上で実行されるソフトウェアは、記録メディアに比べて耐タンパー性能(攻撃に対する耐性)が低くなってしまうことが懸念される。そのため、耐タンパー性能の低いホスト装置(認証装置)20を攻撃することで、耐タンパー性の高いNAND型フラッシュメモリ10(被認証装置)に秘匿された秘密情報をも暴露され、耐タンパー性の高い装置に成りすまされることが懸念される。
【0083】
そこで、第1の実施形態に係る構成及びその認証方式では、上記のように、比較的耐タンパー性の高いNAND型フラッシュメモリ10は、第1鍵情報(NKeyi)から第2鍵情報(HKeyi,j)を生成することができる第1鍵情報(NKeyi)をセルアレイ11に秘匿する。一方、ホスト装置20は、第2鍵情報(HKeyi,j)からは第1鍵情報(NKeyi)を生成することができない第2鍵情報(HKeyi,j)のみをメモリ23に秘匿する。
【0084】
そのため、NAND型フラッシュメモリ10は、ホスト装置20から受領した元情報(HCj)と自身が秘匿する第1鍵情報(NKeyi)を用いて、認証装置20が秘匿する第2鍵情報(HKeyi,j)を生成する。NAND型フラッシュメモリ10は、第2鍵情報(HKeyi,j)と乱数情報(RNh)とからセッション鍵(SKeyi,j)を生成する。
【0085】
ホスト装置20は、インデックス情報iにより選択される第2鍵情報(HKeyi,j)と乱数情報(RNh)とからセッション鍵(SKeyi,j)を生成する。その結果、NAND型フラッシュメモリ10とホスト装置20とは、共に同じセッション鍵(SKeyi,j)を共有する。
【0086】
このように、本例では、NAND型フラッシュメモリ(被認証装置)10が秘匿する情報の秘密レベルと、ホスト装置(認証装置)20が秘匿する情報の秘密レベルとを非対称とすることができる。例えば、本例では、比較的耐タンパー性の高いNAND型フラッシュメモリ10が秘匿する情報の秘密レベルを、比較的耐タンパー性の低いホスト装置20が秘匿する情報の秘密レベルよりも、より高く設定することができる。
【0087】
そのため、仮にホスト装置20が秘匿する情報が漏洩した場合であっても、比較的耐タンパー性の高いNAND型フラッシュメモリ10が秘匿する情報の秘密レベルがさらに高いため、漏洩した情報を用いてNAND型フラッシュメモリ10に”成りすますこと”ができない。従って、漏洩した情報を用いたNAND型フラッシュメモリ10の秘密情報の不正利用を防止することができる点で有利である。その結果、例えば、ホスト装置20から読み出されたID情報が、目的の被認証装置10から読み出した情報であることを確実に確認し、その相手方の不正利用の無効化等が可能となる。
【0088】
(2)実装化において有利である。
本例のような構成では、比較的大きな回路規模を要求される公開鍵暗号処理やMKB処理のハードウェア実装が困難である等の回路規模上の制約が同時に課せられる環境下である。
【0089】
しかしながら、本例によれば、鍵情報が非対称であるものの比較的大きな回路規模を必要とする公開鍵暗号処理を用いる必要がない。さらに、上記のように、ホスト装置(認証装置)20とNAND型フラッシュメモリ(被認証装置)10とが秘匿する情報の秘密レベルを非対称とすることにより、片方の装置から漏れた情報だけではもう一方の装置に成りすますことができない認証手段を行い、認証装置20と被認証装置10との間で秘密情報であるセッション鍵(SKeyi,j)を共有する。
【0090】
そのため、上記制約が課される厳しい環境下であっても、実装化において有利であると言える。
【0091】
さらに、上記のように、メモリシステムを構成するデータ生成回路や暗号化器を同じ処理とすることにより、回路規模を比較的小さくすることも可能である。
【0092】
(3)製造工程の簡略化、製造コストの低減化に対して有利である。
加えて、本例に係るNAND型フラッシュメモリ10は、読み書き可能領域11−1に、その用途に応じてNAND型フラッシュメモリ10ごとに固有(ユニーク)、或いは製造ロット(lot)単位など複数のNAND型フラッシュメモリ10に共通に付される鍵管理情報(FKBv)、およびNAND型フラッシュメモリ10ごとに固有に(ユニークに)付される暗号化された秘密識別情報(E-SecretID)を備える。
【0093】
製造ロット単位で鍵管理情報(FKBv)を共通化させた場合には、NAND型フラッシュメモリ10ごとに記録しなければならない固有(ユニーク)な情報を、暗号化された秘密識別情報(E-SecretID)の様にデータサイズの小さいデータだけに減らすことができる。換言すれば、共通に付される鍵管理情報(FKBv)と固有の暗号化秘密識別情報(E-SecretID)とに分け、2段階に暗号化することにより、NAND型フラッシュメモリ10に書き込むべき固有の暗号化秘密識別情報(E-SecretID)のデータサイズを抑えることができるものである。
【0094】
例えば、上記図5で示したように、NAND型フラッシュメモリの製造時等において、メモリ製造者30は、ライセンス管理者40から受け取ったNAND型フラッシュメモリ10ごとに固有な情報(E-SecretID)を書き込む。
【0095】
そして、NAND型フラッシュメモリ10に共通に付される暗号化された鍵管理情報(FKBv)については、カード製造者50等がNAND型フラッシュメモリ10に共通に書き込むことができる。例えば、上記図6で示したように、カード製造者50が、上記ライセンス管理者40から受け取ったNAND型フラッシュメモリ10ごとに共通な鍵管理情報(FKBv)を書き込む。そのため、メモリ製造者30が書き込まなければならないNAND型フラッシュメモリ10ごとに固有(ユニーク)なデータのサイズを低減することが可能となる。
【0096】
ここで、NAND型フラッシュメモリ10の製造時等に、NAND型フラッシュメモリ10に固有かつデータサイズの大きい情報を書き込む場合、製造工程が煩雑となり、製造時間が長期化し、製造コストが増大してしまう。しかしながら、本例に係る構成および方法によれば、共通に付される鍵管理情報(FKBv)と固有の暗号化秘密識別情報(E-SecretID)とに分けて2段階に暗号化することにより、このような煩雑な製造工程は不要となるため、製造工程を簡略化でき、製造コストを低減できる点で有利である。また、製造時間を短縮化できるため、消費電力を低減できる点でもメリットがある。
【0097】
また、ホスト装置20側においても、FKeyを用いてNAND型フラッシュメモリに固有な値であるSecretIDを暗号化してE-SecretIDを生成し、さらに、IDKeykを用いてFKeyを暗号化してFKBを生成するという構成を取ることにより、NAND型フラッシュメモリ10と同様のメリットを享受することが可能となる。
【0098】
[変形例1(FKBを後からダウンロードして書き込む場合)]
次に、変形例1に係る認証装置、被認証装置、およびその認証方法について説明する。この説明において、上記第1の実施形態と重複する部分の説明については、省略する。
【0099】
<FKBの書き込みについて>
暗号化FKey束(FKB)の書き込みについて、説明する。
【0100】
本変形例1における処理は、暗号化FKey束(FKB)が、NAND型フラッシュメモリ10の製造時に書き込まれる場合等には、特に必要のない処理である。しかし、NAND型フラッシュメモリ10とコントローラ19などが結合されて、例えば、SD(登録商標)カードなどのストレージメディア製品として一般ユーザ入手し、カード利用時に市場において後から書き込まれる場合などには、必要となるFKBの書き込み処理に関するものである。
【0101】
図7では、上記のように鍵管理情報FKBが未記録のストレージメディア(Card)55に記録されたデータの場合の状態を示している。
図示するように、NAND型フラッシュメモリ10は、秘密情報NKeyiと秘密識別情報SecretIDとが秘匿領域11−2に記録される。前記秘密情報NKeyiを特定するために必要なインデックス情報iと鍵管理情報FKBを特定するために必要となるインデックス情報vとがROM領域11−3に記録される。ROM領域に記録されたインデックス情報vで指定されたFKeyvによって暗号化されたSecretID(E-SecretID)が読み書き可能領域に書き込まれた状態である。しかしながら、鍵管理情報FKBは、NAND型フラッシュメモリ10に、まだ書き込まれていない点で、上記実施形態と相違する。
【0102】
次に、上記のように鍵管理情報FKBが未記録状態のストレージメディア10に、サーバからFKBをダウンロードして記録する場合について、図8を用いて説明する。
【0103】
図示するように、この場合には、NAND型フラッシュメモリ10に、必要に応じてデータキャッシュ12Dが配置される。
【0104】
本例に係るサーバ70は、FKBデータベース(Set of FKBi ’s (i=1、…、x) )71およびvからFKBvを選択するための選択部72を備える。
【0105】
また、サーバ70とメモリシステム(NAND型フラッシュメモリ10、コントローラ19、ホスト装置20)とは、インターネット60を介して電気的に通信接続される。
【0106】
なお、ホスト装置20は、FKBの新規書き込みが必要かどうかを判定し、必要に応じてFKBをサーバに要求する機能を備える。
【0107】
<FKB書き込みフロー>
次に、図9に沿って、暗号化FKeyID束(FKB)をサーバ60からダウンロードしてNAND型フラッシュメモリ10に書き込むフローについて説明する。
【0108】
(Step S51)
図示するように、まず、ホスト装置20が、FKBダウンロードが必要と判定したことにより、FKB書き込みが開始(Start)され、ホスト装置20はサーバ60に対してFKB要求を出す。
【0109】
(Step S52)
続いて、サーバ70は、NAND型フラッシュメモリ10に対して、FKeyvを特定するために必要となるインデックス情報vを要求する。
【0110】
(Step S53)
続いて、NAND型フラッシュメモリ10は、ROM領域11−3からvを読み出し、vをサーバに送出する。
【0111】
(Step S54)
続いて、サーバ70は、受信したvに対応するFKBvをFKBデータベース71の中から選択する。
【0112】
(Step S55)
続いて、サーバ70は、選択したFKBvをNAND型フラッシュメモリに送出する。
【0113】
(Step S56)
続いて、NAND型フラッシュメモリ10は、受信したFKBvを読み書き可能領域11−1に書き込み、記録する。
【0114】
以上の動作により、第1の実施形態に係る暗号化FKey束(FKB)ダウンロードフローを終了する(End)。
【0115】
その他の構成、動作等に関しては、上記第1の実施形態と実質的に同様である。
【0116】
<作用効果>
変形例1に係る認証装置、被認証装置及び認証方法によれば、少なくとも第1の実施形態と同様の作用効果(1)乃至(3)を得ることができる。
【0117】
さらに、変形例1によれば、後からFKBを書き込む場合においても、必要に応じて本例を適用することが可能である。
【0118】
[第2の実施形態]
次に、第2の実施形態について説明する。この説明において、上記第1の実施形態と重複する部分の説明については、省略する。
【0119】
ここで、第1の実施形態では、ホスト装置20によるNAND型フラッシュメモリ10の認証が成功した後、両者は秘密識別情報SecretIDを共有している。認証後の処理として、例えば、ホスト装置20がコンテンツを暗号化し、NAND型フラッシュメモリ10へ当該暗号化コンテンツを書き込むこと等が挙げられるが、この際に、共有した秘密識別情報SecretIDを用いることが考えられる。
【0120】
本実施形態は、そのような処理においても秘密識別情報SecretIDを保護することを目的とするものである。そのため、この説明においては、上記第1の実施形態と重複する部分の説明については省略する。
【0121】
<メモリシステム>
第2の実施形態に係るメモリシステムは、図10のように示される。
【0122】
図10に示すように、本例に係るメモリシステムは、一方向性変換部(Oneway)27B、スイッチ部29、および対象となるコンテンツを取り扱う全てのホスト装置が共通に保持している情報(ASSV)を更に備える点で、上記第1の実施形態と相違する。
【0123】
スイッチ部29は、データ検証部(Verify)28において一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)の判定結果が制御信号として入力されると、信号経路をオンとさせ、秘密識別情報SecretIDを一方向変換部27Bに出力する。
【0124】
一方向変換部(Oneway)27Bは、スイッチ部29から入力される秘密識別情報SecretIDを、対象となるコンテンツを取り扱う全てのホスト装置が共通に保持している情報(ASSV)を用いて一方向性関数により変換し、一方向性変換識別情報EMID(EMID=Oneway(SecretID, ASSV))を生成する。
【0125】
このように第2の実施形態では、ホスト装置20で秘密識別情報SecretIDが検証された後に、ホスト装置20が、対象となる全てのホスト装置が共通に保持している情報(ASSV)を用いて秘密識別情報SecretIDを変換し、一方向性変換識別情報EMIDを計算する。そのため、ホスト装置20は、秘密識別情報SecretIDの代わりに、一方向性変換識別情報EMIDを用いて、コンテンツ暗号化などの処理を行うことができる。
【0126】
その他の構成、動作等は、上記第1の実施形態と実質的に同様であるため、詳細な説明については省略する。
【0127】
<作用効果>
第2の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも第1の実施形態と同様の作用効果(1)乃至(3)を得ることができる。
【0128】
さらに、第2の実施形態では、ホスト装置20は、一方向性変換部(Oneway)27B、スイッチ部29、および対象となるコンテンツを取り扱う全てのホスト装置が共通に保持している情報(ASSV)を更に備える点で、上記第1の実施形態と相違する。
【0129】
上記構成によれば、ホスト装置20で秘密認識情報SecretIDが検証された後に、ホスト装置20が、対象となる全てのホスト装置が共通に保持している情報(ASSV)を用いて秘密識別情報SecretIDを変換し、一方向性変換識別情報EMIDを計算する。そのため、ホスト装置20は、秘密識別情報SecretIDの代わりに、一方向性変換識別情報EMIDを用いて、コンテンツ暗号化などの処理を行うことができる。
【0130】
その結果、ここでは図示を省略するが後工程におけるコンテンツ暗号化などおいて一方向性変換識別情報EMIDを用いることができ、当該後工程において秘密識別情報SecretIDが漏洩することを防止することが可能となり、秘密識別情報SecretIDの秘匿性を強化することができる点で、さらに有利である。
【0131】
[第3の実施形態(メモリ、コントローラ、ホストの一例)]
次に、図11を用い、第3の実施形態について説明する。第3の実施形態は、上記実施形態に適用可能な上記NAND型フラッシュメモリ10、コントローラ19、およびホスト装置20の一例に関するものである。本例では、メモリカードとしてSD(登録商標)カードを一例に挙げる。
【0132】
図示するように、本例では、メモリカード55と接続されるホスト装置20の機能ブロックを示している。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も本発明の範疇に含まれる。
【0133】
ホスト装置20は、アプリケーション、オペレーティング・システム等のソフトウェア211を備えている。ソフトウェア211は、ユーザから、メモリカードへのデータの書き込み、メモリカードからのデータの読み出しを指示される。ソフトウェア211は、データの書き込みおよび読み出しをファイルシステム212に指示する。ファイルシステム212は、管理対象の記憶媒体に記録されているファイルデータを管理するための仕組みであり、記憶媒体の記憶領域内に管理情報を記録し、この管理情報を用いてファイルデータを管理する。
【0134】
ホスト装置20は、SDインターフェース213を有する。SDインターフェース213は、ホスト装置20とメモリカード55との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなる。ホスト装置20は、SDインターフェース213を介してメモリカードと通信を行う。SDインターフェース213は、ホスト装置20とメモリカードとが通信するのに必要な様々な取り決めを規定し、後述のメモリカードのSDインターフェース131と相互に認識可能な各種のコマンドの組を備えている。また、SDインターフェース213は、メモリカード55のSDインターフェース231と接続可能なハードウェア上の構成(ピンの配置、数等)も含む。
【0135】
メモリカード55は、NAND型フラッシュメモリ10、メモリ10を制御するためのコントローラ19を有する。メモリカード55は、ホスト装置20に接続されたとき、およびオフ状態のホスト装置20に挿入された状態でホスト装置20がオンされたときに電源供給を受けて初期化動作を行った後、ホスト装置20からのアクセスに応じた処理を行う。
【0136】
NAND型フラッシュメモリ10は、データを不揮発に記憶し、複数のメモリセルからなるページと呼ばれる単位でデータの書き込みおよび読み出しを行う。なお、前述の実施形態ではNAND型フラッシュメモリを例に記載したが、データを不揮発に記憶するメモリであれば、NAND型フラッシュメモリに限られることはなく、その場合、NAND型フラッシュメモリを代替のメモリに代えて読み替えることができ、メモリセルアレイは代替されるメモリに採用されるメモリセルに代えて読み替えることができる。ページには、各ページに固有の物理アドレスが割り当てられている。また、NAND型フラッシュメモリ10は、複数のページからなる物理ブロック(消去ブロック)と呼ばれる単位でデータの消去を行う。なお、物理ブロック単位で物理アドレスが割り当てられていることもある。
【0137】
コントローラ19は、メモリ10によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ(または物理ブロック)が、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ(または物理ブロック)が消去状態(何も書き込まれていない、または無効なデータを保持している状態)であるかを管理することを含んでいる。
【0138】
コントローラ19は、SDインターフェース131、MPU(micro processing unit)132、ROM(read only memory)133、RAM(random access memory)134、NANDインターフェース135を含んでいる。
【0139】
SDインターフェース131は、ホスト装置20とコントローラ19との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなり、SDインターフェース213と同様に、両者の通信を可能とする取り決めを規定し、各種のコマンドの組を備え、ハードウェア上の構成(ピンの配置、数等)も含む。メモリカード(コントローラ22)55は、SDインターフェース131を介してとホスト1と通信を行う。SDインターフェース131は、レジスタ136を含んでいる。
【0140】
MPU132は、メモリカード55全体の動作を司る。MPU132は、例えば、メモリカード55が電源供給を受けた際に、ROM133内に格納されているファームウェア(制御プログラム)をRAM134上に読み出して所定の処理を実行する。MPU132は、制御プログラムに従って各種のテーブルをRAM134上で作成したり、ホスト20から受けたコマンドに従ってメモリに対する所定の処理を実行したりする。
【0141】
ROM133は、MPU132により制御される制御プログラムなどを格納する。RAM134は、MPU132の作業エリアとして使用され、制御プログラムや各種のテーブルを一時的に記憶する。このようなテーブルとして、ファイルシステム212によってデータに割り当てられた論理アドレスを有するデータを実際に記憶しているページの物理アドレスの変換テーブル(論物テーブル)が含まれる。NANDインターフェース135は、コントローラ19とメモリ10とのインターフェース処理を行う。
【0142】
NAND型フラッシュメモリ10内の記憶領域は、保存されるデータの種類に応じて、上記のように、例えば、一般領域(User area)、秘匿領域(Hidden area)、保護領域(Protected area)、ROM領域(ROM area)等を含んでいる。なお、コントローラ19は、一般領域の一部を確保し、自身の動作に必要な制御データ(論物テーブル等)を保存する。
【0143】
[第4の実施形態(NAND型フラッシュメモリの構成例)]
次に、上記NAND型フラッシュメモリ10の具体的構成例として、第4の実施形態として説明する。
【0144】
<全体構成例>
上記NAND型フラッシュメモリ10の具体的な全体構成例は、図12のように示される。
【0145】
図示するように、本例に係るNAND型フラッシュメモリ10は、メモリセルアレイ11、制御回路19、認証回路151、ビット線制御回路152、カラムデコーダ153、データ入出力バッファ154、データ入出力端子155、ワード線駆動回路156、制御信号入力端子158、電源発生回路159を備える。
【0146】
メモリセルアレイ11は、複数のブロック(BLOCK1〜BLOCKn)により構成される。複数のブロック(BLOCK1〜BLOCKn)のそれぞれは、ワード線およびビット線の交差位置に配置される複数のメモリセルを備える。例えば、BLOCK1は、上記ROM領域11−3である。例えば、BLOCK2は、上記秘匿領域11−2である。その他のブロックは、ホスト装置20から利用可能な一般領域(User area)11−1等である。
【0147】
ROM領域11−3は、例えばOTP(One Time Program)ブロックであり、1回の書き込みのみ許容される。書き込み後は電気フューズ、レーザフューズ、ROMフューズ等の手段を用いてブロックデコーダを制御し消去動作を禁止する。秘匿領域11−2は、例えば外部アドレスのデコードでは選択できない状態とし、NAND型フラッシュメモリ10の内部の制御回路19のみが読み出し可能な領域とする。
【0148】
認証回路151は、例えば、上記データキャッシュ12A、12B、12C、発生回路13、14、一方向性変換器15等を備え、制御回路19により制御される。
【0149】
ビット線制御回路152は、ビット線を介してメモリセルアレイ11中のメモリセルのデータを読み出し、ビット線を介してメモリセルアレイ11中のメモリセルの状態を検出する。また、ビット線制御回路152は、ビット線を介してメモリセルアレイ11中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行う。
【0150】
ビット線制御回路152内には、図示しない上記ページバッファ等のデータ記憶回路等が設けられ、このデータ記憶回路は、カラムデコーダ153によって選択される。データ記憶回路に読み出されたメモリセルのデータは、データ入出力バッファ154を介してデータ入出力端子155から外部へ出力される。
【0151】
データ入出力端子155は、例えば、NAND型フラッシュメモリ10の外部のホスト装置20等に接続される。データ入出力端子155により、コマンドCMD、アドレスADD、入出力データDT等が、メモリ10とホスト装置2との間でやり取りされる。データ入出力端子155は、例えば8ビット、または16ビットのバス幅を有している。NAND型フラッシュメモリ10は、トグルモードインターフェース(toggle mode interface)などの高速インターフェース規格をサポートしてもよい。トグルモードインターフェースでは、例えば、データストローブ信号(DQS)の立ち上がり、立ち下がり両エッジに同期してデータ入出力端子155を介したデータ転送が行われる。
【0152】
ホスト装置20は、例えば、マイクロコンピュータ等であって、データ入出力端子155から出力されたデータDTを受ける。ホスト装置20は、NAND型フラッシュメモリ10の動作を制御する各種コマンドCMD(書き込みコマンド、読み出しコマンド、消去コマンド、ステータスリードコマンド等)、アドレスADD、およびデータDTを出力する。ホスト装置20からデータ入出力端子155に入力された書き込みデータDTは、データ入出力バッファ154を介して、カラムデコーダ153によって選択された上記データ記憶回路(図示せず)に供給される。一方、コマンドCMDおよびアドレスADDは、制御回路19に供給される。
【0153】
ワード線駆動回路156は、制御回路19の制御に従い、メモリセルアレイ11中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【0154】
電圧発生回路159は、制御回路19の制御に従い、図示中の接続された上記構成回路の動作に必要な電圧を供給する。例えば、電圧発生回路159は、ホスト装置から供給される外部電圧を昇圧して、読み出し、書き込みあるいは消去時にワード線に印加される電圧を生成する。
【0155】
制御回路(Controller)19は、NAND型フラッシュメモリ10の全体の動作を制御するために、接続される各回路に必要な制御信号および制御電圧を与える。制御回路19は、メモリセルアレイ11、認証回路151、ビット線制御回路152、カラムデコーダ153、データ入出力バッファ154、ワード線駆動回路156、電圧発生回路159に接続される。接続された上記構成回路は、制御回路19によって制御される。
【0156】
制御回路19は、制御信号入力端子158に接続され、ホスト装置20から制御信号入力端子158を介して入力されるWE(ライト・イネーブル)信号、RE(リード・イネーブル)信号、ALE(アドレス・ラッチ・イネーブル)信号、CLE(コマンド・ラッチ・イネーブル)信号等の制御信号の組み合わせによって制御される。
【0157】
ここで、機能的に表現すれば、上記ワード線駆動回路156、ビット線制御回路152、カラムデコーダ153、制御回路19は、データ書き込み回路、データ読み出し回路、およびデータ消去回路を構成する。ホスト装置20は、NAND型フラッシュメモリ10が書き込み、読み出し、消去などの内部動作を実行中であるか否かを、図示せぬRY/BY(レディー/ビジー)信号出力端子をモニタすることで検知する。制御回路19は、RY/BY信号出力端子を介して、RY/BY信号を出力する。
【0158】
<ブロック(BLOCK)の構成例>
次に、図13を用い、メモリセルアレイ11を構成するブロック(BLOCK)の構成例について説明する。ここでは、図12中のBLOCK1を一例に挙げて説明する。ここで、このブロックBLOCK1中のメモリセルは、一括してデータ消去されるため、ブロックはデータ消去単位である。
【0159】
ブロックBLOCK1は、ワード線方向(WL方向)に配置される複数のメモリセルユニットMUから構成される。メモリセルユニットMUは、WL方向と交差するビット線方向(BL方向)に配置され、電流経路が直列接続される8個のメモリセルMC0〜MC7からなるNANDストリング(メモリセルストリング)と、NANDストリングの電流経路の一端に接続されるソース側の選択トランジスタS1と、NANDストリングの電流経路の他端に接続されるドレイン側の選択トランジスタS2とから構成される。
【0160】
尚、本例では、メモリセルユニットMUは、8個のメモリセルMC0〜MC7から構成されるが、2つ以上のメモリセル、例えば、56個、32個等から構成されていればよく、8個に限定されるというものではない。
【0161】
ソース側の選択トランジスタS1の電流経路の他端はソース線SLに接続される。ドレイン側の選択トランジスタS2の電流経路の他端は、各メモリセルユニットMUに対応してメモリセルユニットMUの上方に設けられ、BL方向に延出するビット線BLに接続される。
【0162】
ワード線WL0〜WL7は、WL方向に延び、WL方向の複数のメモリセルの制御ゲート電極CGに共通に接続される。選択ゲート線SGSは、WL方向に延び、WL方向の複数の選択トランジスタS1に共通に接続される。選択ゲート線SGDも、WL方向に延び、WL方向の複数の選択トランジスタS2に共通に接続される。
【0163】
また、ワード線WL0〜WL7ごとにページ(PAGE)が存在する。例えば、図中の破線で囲って示すように、ワード線WL7には、ページ7(PAGE7)が存在する。このページ(PAGE)ごとに、データ読み出し動作、データ書き込み動作が行われるため、ページ(PAGE)はデータ読み出し単位であり、データ書き込み単位である。
【0164】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0165】
10…被認証装置(NAND型フラッシュメモリ)、19…コントローラ、20…認証装置(ホスト装置)、11…セルアレイ、23…メモリ、E-SecretID…固有の暗号化秘密識別情報、SecretID…固有の秘密識別情報、FKB…共通に付される鍵管理情報、NKey…第1鍵情報、HKey…第2鍵情報、SKey…セッション鍵情報。
【技術分野】
【0001】
認証装置、被認証装置、およびその認証方法に関するものである。
【背景技術】
【0002】
一般に、情報セキュリティを要する分野において、自己の正当性を証明する手段として互いに共有した秘密情報と暗号器を用いた手法が採られている。
【0003】
例えば、電子決済に用いるICカード(SmartCard)等では、カード内のICには当該ICカードを個別化するためのID及び秘密情報が保持されており、更にICカードは、ID及び秘密情報に基づく認証を行うための暗号処理機能を有している。別の例では、コンテンツの著作権保護において、SD(登録商標)カードの正当性を証明する手段としてはContent Protection for Recordable Media(CPRM)において認証方式が規定されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Content Protection for Recordable Media (CPRM), http://www.4centity.com/
【非特許文献2】Media Identifier Management Technology (MIMT), http://www.4ecntity.com/
【発明の概要】
【発明が解決しようとする課題】
【0005】
秘密情報の不正利用を防止に有利な認証装置、被認証装置、およびその認証方法を提供する。
【課題を解決するための手段】
【0006】
実施形態によれば、被認証装置を認証装置が認証する認証方法であって、前記被認証装置は、秘匿される固有の秘密識別情報(SecretID)、暗号化された固有の秘密識別情報である暗号化秘密識別情報(E-SecretID)、および共通に付される鍵管理情報(暗号化FKey束,FKB)を保持し、前記認証装置は、秘匿される識別鍵情報(IDKey)を保持し、前記認証装置が、前記被認証装置から、前記暗号化秘密識別情報(E-SecretID)および前記鍵管理情報(FKB)を読み出すステップと、前記認証装置が、前記識別鍵情報(IDKey)を用いて、読み出した前記鍵管理情報(FKB)から復号可能な識別鍵情報(FKey)を取得するステップと、前記認証装置が、得られた識別鍵情報(FKey)を用いて、読み出した前記暗号化秘密識別情報(E-SecretID)を復号し、秘密識別情報(SecretID)を取得するステップとを具備する。
【図面の簡単な説明】
【0007】
【図1】第1の実施形態に係るメモリシステムの構成例を示すブロック図。
【図2】第1の実施形態に係るメモリシステムの認証フローを示すフロー図。
【図3】第1の実施形態に係る暗号化FKey束(FKB)の構成例を示す図。
【図4】第1の実施形態に係るメモリシステムの構成例を示すブロック図。
【図5】第1の実施形態に係るNAND製造者による秘密情報の書き込み処理を例示する図。
【図6】第1の実施形態に係るカード製造者によるFKBの書き込み処理を例示する図。
【図7】変形例1に係る被認証装置を示す図。
【図8】変形例1に係るFKBをダウンロードするシステムを示すブロック図。
【図9】変形例1に係るFKBをダウンロードするフローを示すフロー図。
【図10】第2の実施形態に係るメモリシステムの構成例を示すブロック図。
【図11】第3の実施形態に係るメモリシステムの構成例を示すブロック図。
【図12】第4の実施形態に係るNAND型フラッシュメモリの構成例を示すブロック図。
【図13】図12中のNAND型フラッシュメモリの一ブロックの構成例を示す等価回路図。
【発明を実施するための形態】
【0008】
以下、実施形態について図面を参照して説明する。この説明においては、認証装置、被認証装置、およびその認証方法として、メモリシステムを一例に挙げるが、これに限られることはない。尚、この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
【0009】
[第1の実施形態]
第1の実施形態に係る認証装置、被認証装置、およびその認証方法について説明する。 <1.構成例(メモリシステム)>
まず、図1を用い、第1の実施形態に係るメモリシステムの構成例について説明する。
【0010】
図示するように、第1の実施形態に係るメモリシステムは、被認証装置であるNAND型フラッシュメモリ10、認証装置であるホスト装置20、および両者を仲介するコントローラ19を備える。ホスト装置20は、コントローラ19により、NAND型フラッシュメモリ10にアクセスする。
【0011】
ここで、NAND型フラッシュメモリ10等の半導体製品の製造工程について、簡単に説明する。半導体製品の製造工程は、主に基盤ウエハー上に回路を形成する前工程と、前期ウエハーを個片に切り分けた後、配線や樹脂パッケージ封入などを行う後工程に分けられる。ここで、コントローラ19は、前工程においてNAND型フラッシュメモリ10内に包含されるよう構成される場合、前工程においては包含されないが後工程において同一パッケージに包含されるように構成される場合、NAND型フラッシュメモリ10とは異なるチップの形態をとる場合、など様々な場合がある。図1を含め、以下では、コントローラ19は、NAND型フラッシュメモリ10とは異なるチップの形態を採る場合を例にとっている。以下、特に断りのない限り、ホスト装置20とNAND型フラッシュメモリ10間のデータや命令のやり取りにおいては、多くの場合コントローラ19が仲介するものである。この場合でもコントローラ19は、前述のデータや命令の本質的内容を変えることはないため、詳細については、省略して説明する場合がある。なお、NAND型フラッシュメモリ10およびコントローラ19の構成例の詳細な説明については、後述する。
【0012】
なお、ホスト装置20は、民生機器のように専用ハードウェアで構成される場合、専用ハードウェアとそれを動作させるファームウェアの組み合わせで構成される場合だけでなく、装置の機能がPC上で動作するソフトウェアプログラムで構成される場合も考えられる。
【0013】
以下において、図1に示す各コンポーネント、データ処理について、以下で説明する。本例では、被認証装置であるNAND型フラッシュメモリ10に記録されている秘密識別情報であるSecretIDを第3者から秘匿した状態で読み出すと共に、前述の被認証装置10から読み出されたデータであることを確実に確認する方法、及び同方法をNAND型フラッシュメモリ10に適用する場合の構成例を示すものである。
【0014】
1−1.NAND型フラッシュメモリ
NAND型フラッシュメモリ10は、上記のように、被認証装置である。
図示するように、本例に係るNAND型フラッシュメモリ10は、セルアレイ11、及びセルアレイ11の周辺領域に配置されるデータキャッシュ12A、12B、12C、データ生成回路(Generate)13、14、一方向性変換器(Oneway)15を備える。
【0015】
セルアレイ(Cell array)11は、外部からの読み出し/書き込みが可能な一般領域(Read/Write area)11−1、外部からの読み出し/書き込みが禁止された秘匿領域(Hidden area)11−2、外部からの書き込みが禁止されたROM領域(ROM area)11−3等を備える。
【0016】
読み書き可能領域(以下Read/Write areaと称する場合もある)11−1は、データ記録及びデータ読み出しのいずれもNAND型フラッシュメモリ10外部から可能な領域である。読み書き可能領域11−1には、ROM領域11−3に記録されたインデックスvで指定されたFKeyvによって暗号化された秘密識別情報SecretID(E-SecretID)および前記FKeyvを秘匿するために用意された暗号化FKey束である鍵管理情報FKBv(Family Key Block)が記録される。FKBvはNAND型フラッシュメモリ10に記録される他のデータとは異なり、NAND型フラッシュメモリ10の製造時だけでなく、例えばSD Card(登録商標)の様にNAND型フラッシュメモリ10にコントローラを結合させて一般ユーザ向けのストレージメディアを製造する段階や、或いは前記ストレージメディアを販売後にユーザの要求に従ってサーバからダウンロードして記録するように構成することも可能である。
【0017】
ここで、鍵管理情報(FKBv)とは、ホスト20が保持する秘密情報である識別鍵情報(IDKeyk、これについては後述する)と当該識別鍵情報(IDKeyk)の識別情報(k)とに基づいて秘匿情報(FKeyv)を復号するために用いられる情報、又はホスト20が保持する秘密情報である識別鍵情報(IDKeyk、これについては後述する)と当該ホスト20の識別情報とを用いて、秘匿情報(FKeyv)を復号するために用いられる情報ある。また、鍵管理情報(FKBv)は、製造工程に合わせてNAND型フラッシュメモリ10毎にユニークに用意するだけでなく、例えばNAND型フラッシュメモリ10の製造ロット(lot)単位など、複数のNAND型フラッシュメモリ10に共通に付すことが可能な情報(対応付けられることが可能な情報)である。また、鍵管理情報(FKBv)のインデックス情報vは、FKBvの識別情報又はバージョン番号情報であっても良い。一方、暗号化された秘密識別情報(E-SecretID)とは、NAND型フラッシュメモリチップ10ごとに固有に(ユニークに)付される秘密識別情報を暗号化したデータである。或いは、NAND型フラッシュメモリに予めコンテンツを記録して販売する様なプリレコ(事前記録)コンテンツ配布用途に使う場合には同じコンテンツデータを記録する際には敢えて同じ暗号化秘密識別情報(E-SecretID)を記録するなど、用途に合わせて同じ暗号化秘密識別情報を複数のNAND型フラッシュメモリに記録することもできる。
【0018】
秘匿領域(Hidden area)11−2は、NAND型フラッシュメモリ10の外部に対してはデータ記録だけでなく、データ読み出しも禁止される領域(Read/Program inhibit)である。本例に係る秘匿領域11−2には、上記認証においてNAND型フラッシュメモリ10が用いる秘密鍵情報NKeyiおよびNAND型フラッシュメモリ10の秘密識別情報SecretIDが記録される。
【0019】
ROM領域(ROM area)11−3は、外部からのデータ記録が禁止され、データ読み出しが許可される領域である。本例に係るROM領域11−3には、秘匿領域(Hidden area)11−2に記録される秘密情報NKeyiを示すためのインデックス情報i(index of NKey)および読み書き可能領域11−1に記録される鍵管理情報であるFKBvによって秘匿されているFKeyvを示すためのインデックス情報v(index of FKey)が記録される。本例では、インデックスiやインデックスvを記録する際にデータに誤りが生じてしまった場合でも、正しい識別情報が読み出せるようにするために、一般的には誤り訂正符号化された状態で記録される。しかし、ここでは、誤り訂正符号化/復号処理については特に図示しない。
【0020】
データキャッシュ(Data Cache)12A、12B、12Cは、セルアレイ11から読み出したデータを一時的に記憶する。
【0021】
データ生成部(Generate)13、14は、複数の入力データから予め定められた演算によって出力データを生成する回路である。
【0022】
データ生成部13は、ホスト装置20から受信した元情報(HCj)を前述の秘密情報NKeyiを用いて変換することでHKeyi、jを生成する。データ生成部14は、ホスト装置20から受信した乱数RNhを前記HKeyi、jを用いて変換することで、セッション鍵SKeyi、jを生成する。例えば、データ生成部13、14は、ハードウェアでもソフトウェアでも実装されるものである。データ生成部13、14は、回路として実装される場合は、全体の回路規模を小さくするために前述の一方向性変換器と同じ或いは一方向性変換器を流用した回路やAES(Advanced Encryption Standard)暗号化器などを用いることも可能である。同様にデータ処理手順を分かり易くするために異なる構成要素として図示されている2つのデータ生成部は同じ回路を繰り返し利用することが可能である。
【0023】
一方向性変換部(Oneway)15は、入力されたデータと別途入力された鍵データに一方向性の変換を施し、一方向性変換された入力データを出力する。一方向性変換部(Oneway)15はハードウェアでもソフトウェアでも実装されるものであり、回路で実装も可能である。本実施例では秘匿領域11−2から読み出した秘密識別情報SecretIDをデータ生成回路14によって生成されたセッション鍵データSKeyi、jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-ID (= Oneway(SKeyi、j、 SecretID))を生成する。また、回路で実装される場合は、前述の通り、メモリシステム全体のハードウェア回路規模を小さくするために、一方向性変換部15を前記データ生成部14等としても使用することも可能である。
【0024】
また、図示しないが、コントローラ19を介してホスト装置20に送付されるデータを出力する出力部なども必要に応じて、構成要素として配置されても良い。
【0025】
1−2.ホスト装置
図示するように、本例に係るホスト装置(Host)20は、復号部(Decrypt)21、FKB生成部(Process FKB)22、メモリ(Memory)23、乱数生成部(RNG)24、選択部(Select 2)25、データ生成部(Generate)26、一方向性変換部(Oneway)27、及びデータ検証部(Verify)28、スイッチ部29等を備える。この他、例えば、図示しない誤り訂正処理部なども必要に応じて構成要素として備えることが可能である。
【0026】
復号部(Decrypt)21は、秘密識別情報(E-SecretID)をNAND型フラッシュメモリ10から読み出す(コントローラ19を介して)。読み出されたデータ(E-SecretID)を別途入力された鍵データFKeyで復号し、復号された入力データを出力する。本実施例では、復号部21は、ホスト装置20が秘匿している秘密情報IDKeykを鍵情報として、データ選択部(Select1)22−1において選択されたE-SecretIDデータを復号し、SecretIDを得るためのものである。
【0027】
FKey復号部(Process FKB)22は、NAND型フラッシュメモリ10から読み出される鍵管理情報(FKBv)、およびメモリ23に秘匿されている識別鍵情報IDKeyk、識別鍵情報IDKeykのインデックス情報kを用い、鍵データFKeyを復号し、復号部21に出力する。このようにすることで、SecretIDが記録されるNAND型フラッシュメモリ10に適合したFKeyを復号する。本例では、FKey復号部22は、データ選択部(Select1)21−1および復号部(Decrypt)22−2を備える構成を一例として具体的に示している。
【0028】
第1段目のデータ選択部(Select1)21−1は、NAND型フラッシュメモリ10から読み出した暗号化FKey束(FKBv)からメモリ23に記憶されるインデックス情報kを用いてメモリ23に秘匿されている識別鍵情報によって復号可能なデータを選択して、復号部22−2に出力する。
【0029】
復号部(Decrypt)22−2は、メモリ23によりホスト20が秘匿している識別鍵情報IDKeykを用いて、データ選択部22−1において選択されたデータを復号し、得られた鍵データFKeyを復号部21に出力する。
【0030】
メモリ23は、インデックス情報k、識別鍵情報IDKeyk、秘密鍵情報セットHKeyi、j (i=1、…、m。尚、jは当該HKeyi、jにおいては固定の値である)、およびホスト定数HCjを記憶し、少なくとも識別鍵情報IDKeykおよび秘密鍵情報セットHKeyi、j (i=1、…、m)をホスト装置20の外部から秘匿する。ここで、ホスト定数(または元情報)HCjとは、認証要求(Request authentication)時にNAND型フラッシュメモリ10に送付するために予め保持しているホスト装置20の定数をいう。詳細については、後述する。
【0031】
乱数生成部(RNG: Random Number Generator)24は、認証に用いる乱数RNhを生成する。
【0032】
第2段目のデータ選択部(Select2)21−2は、NAND型フラッシュメモリ10のデータキャッシュ12Cから読み出した秘密情報NKeyiのインデックス情報iを用いて、当該ホスト装置20が秘匿している秘密情報セットHKeyi、j (i=1、…、m。尚、jは当該HKeyi、jにおいては固定の値である)から、NAND型フラッシュメモリ10との認証処理に必要な秘密情報HKeyi、jを選択する。
【0033】
データ生成部(Generate)26は、複数の入力データから予め定められた演算によって出力データを生成する演算部である。本例では、データ生成部26は、当該ホスト装置20自身が生成した乱数RNhを当該ホスト装置20が秘匿している秘密情報HKeyi、jを用いて変換することで、セッション鍵SKeyi、jを生成する。例えば、データ生成部26は、上記AES暗号化演算などを用いることも可能である。
【0034】
一方向変換部(Oneway)27は、復号部21から出力されるSecretIDをデータ生成部26から出力されるセッション鍵SKeyi、jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-IDを生成する。
【0035】
ここで、上記秘密鍵情報IDKeyk、HKeyi、jは、例えば、民生機器であれば内部の専用メモリにメーカ独自の方法で暗号化した上で記録されていたり、ソフトウェアプログラムであればタンパーレジスタントソフトウェア(TRS)技術によって不正な解析から保護できる状態で保持していたり、或いはセキュリティモジュールを内蔵している場合には当該セキュリティモジュールの機能を利用して秘匿するなどの対策を採った状態等で秘匿される。
【0036】
データ検証部(Verify)28は、NAND型フラッシュメモリ10から受信した一方向性変換識別情報Oneway-IDと、ホスト装置20内の一方向性変換部27から得られた一方向性変換識別情報Oneway-IDとが一致するか否かを比較して判定する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、復号部21で得られた前記SecretIDが正しいSecretIDであると判定して、得られたSecretIDを以降の処理に引き渡す。一方、不一致の場合(NG)には、前記SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
【0037】
スイッチ部29は、データ検証部(Verify)28において一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)の判定結果が制御信号として入力されると、信号経路をオンとさせ、秘密識別情報SecretIDを出力する。
【0038】
なお、コントローラ(Controller)19は、NAND型フラッシュメモリ10を制御して、ホスト装置20との間のデータ転送等を行う。詳細については、後述する。
【0039】
また、メモリシステムの構成例は、上記説明したものに限られない。例えば、図示しない誤り訂正処理部等のその他の構成要素も必要に応じて備えることが可能である。
【0040】
<2.認証フロー>
次に、図2に沿って、第1の実施形態に係るメモリシステムの認証フローについて説明する。
【0041】
(Step S11)
図示するように、まず認証開始(Start)すると、ホスト装置20は、NAND型フラッシュメモリ10から鍵管理情報である暗号化FKey束(FKB: Family Key Block)および暗号化SecretID(E-SecretID)を読み出す。
【0042】
(Step S12)
続いて、ホスト装置20は、読み出したFKBからデータ選択部(Select1)21−1によりデータ選択処理を行い、ホスト装置20が復号可能な暗号化FKeyデータを読み出すと共に、秘匿している秘密鍵情報IDKeykを用いて上記復号処理部21−2により復号することにより鍵データFKeyを得る。さらに、ホスト装置20は、得られた鍵データFKeyを用いて、NAND型フラッシュメモリ10から読み出した暗号化されたNAND型フラッシュメモリ10の秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
【0043】
(Step S13)
続いて、ホスト装置20は、認証要求時に必要となる乱数RNhを生成する。認証処理に乱数RNhを用いることにより、以下の処理でNAND型フラッシュメモリ10との間で毎回異なる共有鍵を利用することができる。
【0044】
(Step S14)
続いて、ホスト装置は、認証要求(Request authentication)と共に予め保持しているホスト定数(HCj)および乱数RNhとをNAND型フラッシュメモリ10に送出する。
【0045】
(Step S15)
続いて、NAND型フラッシュメモリ10は、NKeyi (i=1、…、m)を秘匿領域11−2からロードし、データキャッシュ12Bに保存する。
【0046】
(StepS16)
続いて、NAND型フラッシュメモリ10は、ホスト装置20が秘密情報セットHKeyi、j (i=1、…、m)からNAND型フラッシュメモリ10との認証に必要となるHKeyi、jを選択するために必要なNKeyのインデックス情報iをデータキャッシュ12Cに読み出し、ホスト装置20に送出する。
【0047】
(StepS17)
続いて、ホスト装置20は、受信したインデックス情報iを用いて、予め秘匿していた秘密情報セットHKeyi、j (i=1、…、m)から当該NAND型フラッシュメモリ10との認証処理に必要な秘密情報HKeyi、jを選択する。
【0048】
(Step S18)
上記Step S17の処理と並行して、NAND型フラッシュメモリ10は、秘匿しているNKeyiと受信したホスト定数HCjとを用いて、データ生成回路13におけるデータ生成処理によりHKeyi、jを生成する。これと共に、受信した乱数RNhを用いて、データ生成回路14におけるデータ生成処理により、セッション鍵データSKeyi、j (= Generate(HKeyi、j、 RNh))を生成する。
【0049】
(Step S19)
続いて、ホスト装置20は、選択した秘密情報HKeyi、jと生成した乱数RNhと用いて、データ生成部26におけるデータ生成処理により、セッション鍵データSKeyi、j (= Generate(HKeyi、j、 RNh))を生成する。
【0050】
(Step S20)
続いて、ホスト装置20は、ID要求(Request ID)をNAND型フラッシュメモリ10に送る。
【0051】
(Step S21)
続いて、NAND型フラッシュメモリ10は、秘密識別情報SecretIDを秘匿領域11−2から読み出し、データキャッシュ12Aに保存する。
【0052】
(Step S22)
続いて、NAND型フラッシュメモリ10は、生成したセッション鍵データSKeyi、jを用いて、秘密識別情報SecretIDを一方向性変換部15における一方向性変換処理を行い、一方向性変換データ Oneway-ID (=Oneway(SKeyi、j、 SecretID))を生成し、生成された一方向性変換データOneway-IDをホスト装置20に送出する。
【0053】
(Step S23)
続いて、ホスト装置20は、秘密識別情報SecretIDを、生成したセッション鍵データSKeyi、jを用いて一方向性変換部27における一方向性変換処理を行い、一方向性変換データOneway-IDを求める。
【0054】
(Step S24)
続いて、ホスト装置20は、NAND型フラッシュメモリ10より受信した一方向性変換データOneway-IDと、生成した一方向性変換データOneway-IDとが一致するか否かを判定する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、復号部21で得られた前記SecretIDが正しいSecretIDであると判定して以降の処理にSecretIDを引き渡す。一方、不一致の場合(NG)には、前記SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
【0055】
(Step S25)
続いて、ホスト装置20は、上記ステップS24の結果を出力(Output)する。
【0056】
以上の動作により、第1の実施形態に係る認証フローを終了する(End)。
【0057】
<3.FKB(Family Key Block)について>
次に、図3を用い、第1の実施形態に係る鍵管理情報FKB(Family Key Block)についてより詳しく説明する。
【0058】
秘密識別情報SecretIDが記録されているNAND型フラッシュメモリ10に適合した鍵管理情報FKBを生成するためには、予め用意された秘密鍵情報であるIDKeyi (i=1,…,n)(Set of IDKeyi’s)の1つ1つのIDKeyiを用いて、FKeyvを1つ1つ暗号化(Encrypt)する。つまり、鍵管理情報FKBとは、暗号化FKeyv (E- FKeyv,i) = Encrypt(IDKeyi, FKeyv)の集合であり、この暗号化FKeyvの集合を暗号化FKey束と称する。
【0059】
尚、鍵管理情報FKBの構成については、本例に限られない。例えば、特定のIDKeyiが露呈してしまった場合、当該IDKeyiを保持しているホスト装置20では暗号化FKey束からFKeyを復号することができないようにするために、当該秘密情報IDKeyiで復号可能な暗号化FKeyv(上述の例ではE- FKeyv,i)をFKBから削除することにより、新たに構成されたFKBを記録したNAND型フラッシュメモリ10を使用した場合には、当該ホスト装置では正しいFKeyv及びSecretIDを得る(復号する)ことができないようにすることも可能である。このようにすることで、当該秘密情報IDKeyiを保持したホスト装置20を無効化する機能を提供することも可能である。
【0060】
鍵管理情報FKBの生成方法についても、本例に限られない。例えば、CPRM(非特許文献1)において用いられているMKB(Media Key Block)技術や、非特許文献3に開示されているMKB技術を用いてFKBを生成しても、ホスト装置20を無効化する機能を提供することが可能である。例えば、上記技術を適用した場合、メモリシステムの構成例は図4のように示される。図示するように、FKey復号部(Process FKB)22が上位概念化されて図示される点で、図1と相違する。
【0061】
ここで、MKB技術とは、複数の機器がそれぞれ異なる秘密情報を持つ状況で、機器の無効化を実現しつつ、(無効化対象でない機器の間で)共通の秘密情報(Media Key)を効率よく共有するための技術であり、Broadcast Encryptionとも称される。
【0062】
<4.秘密情報やFKBの書き込みについて>
次に、NAND型フラッシュメモリ10への秘密情報や鍵管理情報FKBの書き込みについて説明する。
【0063】
4−1.NAND型フラッシュメモリの製造時等に書き込む場合
まず、図5を用い、例えば、NAND型フラッシュメモリの製造時等に秘密情報や鍵管理情報FKBを書き込む場合について説明する。
【0064】
ライセンス管理者(Licensing Administrator)40は、以下のデータを生成する:FKBv (v=1,…,n)、FKeyv (v=1,…,n)、 v (v=1,…,n)、 およびNKeyi、 i。なお、前述した通り、FKBvは、FKeyvを暗号化したものである。また、vは複数の値であっても良い。例えば、vとして1,2,3の3つの値をライセンス管理者40が生成する場合、ライセンス管理者40は、生成したvに対応させる形で、(FKB1, FKey1), (FKB2, FKey2), (FKB3, FKey3)を生成する。
【0065】
続いて、ライセンス管理者40は、生成したデータの内、FKeyv (v=1,…,n)、 v (v=1,…,n)、 NKeyi、 iをメモリ製造者30に渡す。これらのデータを渡す際には、例えば、ライセンス管理者40は、予めメモリ製造者30の公開鍵を入手しておき、データを当該公開鍵を用いて暗号化した上でメモリ製造者30に送信する等といった、安全な手段を用いる。
【0066】
メモリ製造者(Memory Vender)30は、上記NAND型フラッシュメモリ10に加え、ライセンス管理者40から渡されたFKBv (v=1,…,n)等のデータ31を保持し、選択部32、33、生成部34、暗号部35を備える。
【0067】
上記構成により、データ31を受け取ったメモリ製造者30は、vの中から一つの値を選択部32により選択し、当該vの値をNAND型フラッシュメモリ10のROM area11−3へインデックス情報v(index of FKey)として書き込む。
【0068】
また、メモリ製造者30は、インデックス情報i(index of NKey)の値をNAND型フラッシュメモリ10のROM area11−3へ、NKeyiの値をHidden area11−2へそれぞれ書き込む。
【0069】
メモリ製造者30は、生成部(SecretID Generator)34において秘密識別情報SecretIDを生成する。さらに、選択部32は、前記選択したvに対応するFKeyvを選択する。メモリ製造者30は、選択したFKeyvを用いて、生成したSecretIDを暗号化し、暗号化された秘密識別情報E-SecretIDを生成する。
【0070】
さらに、メモリ製造者30は、秘密識別情報SecretIDの値をNAND型フラッシュメモリ10のHidden area11−2へ、暗号化された秘密識別情報E-SecretIDの値をRead/Write area11−1へそれぞれ書き込む。
【0071】
以上の動作により、NAND型フラッシュメモリ10の製造時等に所定の秘密情報やFKBを書き込むことができる。なお、上記各値を書き込む順番は、暗号化された秘密識別情報E-SecretIDは、暗号化処理しないと得られない値であるため、暗号部35による上記暗号化処理後となる。しかし、それ以外の書き込み動作の順序について制約はなく、上述の例以外の順番で書き込んでも良い。
【0072】
さらに、メモリ製造者30は、書き込み処理を終えたNAND型フラッシュメモリ10をカード製造者(Card Vendor)に渡す。
【0073】
このように、本例では、インデックス情報v(index of FKey)等が、NAND型フラッシュメモリ10にあらかじめ書き込まれた状態とすることができる。
【0074】
4−2.FKBをカード製造者(Card Vendor)が書き込む場合
次に、図6を用い、FKBをカード製造者50が書き込む場合について説明する。
【0075】
カード製造者(Card Vendor)50は、上記メモリ製造者30から上記所定の情報v等が書き込まれたNAND型フラッシュメモリ10を受け取る。そして、例えばSD(登録商標)カード等の様に、そのNAND型フラッシュメモリ10を制御するコントローラ19を結合させ、一般ユーザ等向けのストレージメディア(ここでは、Card)55を製造する。
【0076】
カード製造者50は、上記ストレージメディア(Card)55に加え、ライセンス管理者40から受け取るデータ(FKBv)51、選択部52を備える。
【0077】
カード製造者50が鍵管理情報FKBvを書き込む処理については、次の通りである。
【0078】
まず、カード製造者50は、鍵管理情報FKBvをライセンス管理者からデータ51として受け取る。この際、データ51の受け渡しには、上述した安全な手段を用いる。
【0079】
そして、カード製造者50は、(コントローラ19を介して)NAND型フラッシュメモリ10のROM area11−3に記録されるインデックス情報vの値をデータキャッシュ12C等に読み出す。
【0080】
続いて、カード製造者50は、読み出したインデックス情報vの値に対応する鍵管理情報FKBvを選択部52により選択し、(コントローラ19を介して)NAND型フラッシュメモリ10のRead/Write area11−1に選択した鍵管理情報FKBvとして書き込む。
【0081】
<作用効果>
上記のように、第1の実施形態に係る認証装置、被認証装置、およびその認証方法によれば、少なくとも下記(1)乃至(3)の効果が得られる。
【0082】
(1)ホスト装置20から秘密情報が漏洩した場合であっても、漏洩した情報を用いたNAND型フラッシュメモリ10の秘密情報の不正利用を防止することができる。
ここで、認証装置であるホスト装置20は、民生機器の様な専用ハードウェア装置だけでなく、例えば、PC(パーソナルコンピュータ)などで実行可能なプログラム(ソフトウェア)として提供され当該ソフトウェアが実質的なホスト装置となる場合もある。一方、被認証装置であるNAND型フラッシュメモリ10は、記録メディアであり、ファームウェアと呼ばれるプログラムが介在する場合であっても、重要な処理や情報はセルアレイ11中のハードウェア内に秘匿された状態で記憶される。そのため、現実的には、例えば、PC上で実行されるソフトウェアは、記録メディアに比べて耐タンパー性能(攻撃に対する耐性)が低くなってしまうことが懸念される。そのため、耐タンパー性能の低いホスト装置(認証装置)20を攻撃することで、耐タンパー性の高いNAND型フラッシュメモリ10(被認証装置)に秘匿された秘密情報をも暴露され、耐タンパー性の高い装置に成りすまされることが懸念される。
【0083】
そこで、第1の実施形態に係る構成及びその認証方式では、上記のように、比較的耐タンパー性の高いNAND型フラッシュメモリ10は、第1鍵情報(NKeyi)から第2鍵情報(HKeyi,j)を生成することができる第1鍵情報(NKeyi)をセルアレイ11に秘匿する。一方、ホスト装置20は、第2鍵情報(HKeyi,j)からは第1鍵情報(NKeyi)を生成することができない第2鍵情報(HKeyi,j)のみをメモリ23に秘匿する。
【0084】
そのため、NAND型フラッシュメモリ10は、ホスト装置20から受領した元情報(HCj)と自身が秘匿する第1鍵情報(NKeyi)を用いて、認証装置20が秘匿する第2鍵情報(HKeyi,j)を生成する。NAND型フラッシュメモリ10は、第2鍵情報(HKeyi,j)と乱数情報(RNh)とからセッション鍵(SKeyi,j)を生成する。
【0085】
ホスト装置20は、インデックス情報iにより選択される第2鍵情報(HKeyi,j)と乱数情報(RNh)とからセッション鍵(SKeyi,j)を生成する。その結果、NAND型フラッシュメモリ10とホスト装置20とは、共に同じセッション鍵(SKeyi,j)を共有する。
【0086】
このように、本例では、NAND型フラッシュメモリ(被認証装置)10が秘匿する情報の秘密レベルと、ホスト装置(認証装置)20が秘匿する情報の秘密レベルとを非対称とすることができる。例えば、本例では、比較的耐タンパー性の高いNAND型フラッシュメモリ10が秘匿する情報の秘密レベルを、比較的耐タンパー性の低いホスト装置20が秘匿する情報の秘密レベルよりも、より高く設定することができる。
【0087】
そのため、仮にホスト装置20が秘匿する情報が漏洩した場合であっても、比較的耐タンパー性の高いNAND型フラッシュメモリ10が秘匿する情報の秘密レベルがさらに高いため、漏洩した情報を用いてNAND型フラッシュメモリ10に”成りすますこと”ができない。従って、漏洩した情報を用いたNAND型フラッシュメモリ10の秘密情報の不正利用を防止することができる点で有利である。その結果、例えば、ホスト装置20から読み出されたID情報が、目的の被認証装置10から読み出した情報であることを確実に確認し、その相手方の不正利用の無効化等が可能となる。
【0088】
(2)実装化において有利である。
本例のような構成では、比較的大きな回路規模を要求される公開鍵暗号処理やMKB処理のハードウェア実装が困難である等の回路規模上の制約が同時に課せられる環境下である。
【0089】
しかしながら、本例によれば、鍵情報が非対称であるものの比較的大きな回路規模を必要とする公開鍵暗号処理を用いる必要がない。さらに、上記のように、ホスト装置(認証装置)20とNAND型フラッシュメモリ(被認証装置)10とが秘匿する情報の秘密レベルを非対称とすることにより、片方の装置から漏れた情報だけではもう一方の装置に成りすますことができない認証手段を行い、認証装置20と被認証装置10との間で秘密情報であるセッション鍵(SKeyi,j)を共有する。
【0090】
そのため、上記制約が課される厳しい環境下であっても、実装化において有利であると言える。
【0091】
さらに、上記のように、メモリシステムを構成するデータ生成回路や暗号化器を同じ処理とすることにより、回路規模を比較的小さくすることも可能である。
【0092】
(3)製造工程の簡略化、製造コストの低減化に対して有利である。
加えて、本例に係るNAND型フラッシュメモリ10は、読み書き可能領域11−1に、その用途に応じてNAND型フラッシュメモリ10ごとに固有(ユニーク)、或いは製造ロット(lot)単位など複数のNAND型フラッシュメモリ10に共通に付される鍵管理情報(FKBv)、およびNAND型フラッシュメモリ10ごとに固有に(ユニークに)付される暗号化された秘密識別情報(E-SecretID)を備える。
【0093】
製造ロット単位で鍵管理情報(FKBv)を共通化させた場合には、NAND型フラッシュメモリ10ごとに記録しなければならない固有(ユニーク)な情報を、暗号化された秘密識別情報(E-SecretID)の様にデータサイズの小さいデータだけに減らすことができる。換言すれば、共通に付される鍵管理情報(FKBv)と固有の暗号化秘密識別情報(E-SecretID)とに分け、2段階に暗号化することにより、NAND型フラッシュメモリ10に書き込むべき固有の暗号化秘密識別情報(E-SecretID)のデータサイズを抑えることができるものである。
【0094】
例えば、上記図5で示したように、NAND型フラッシュメモリの製造時等において、メモリ製造者30は、ライセンス管理者40から受け取ったNAND型フラッシュメモリ10ごとに固有な情報(E-SecretID)を書き込む。
【0095】
そして、NAND型フラッシュメモリ10に共通に付される暗号化された鍵管理情報(FKBv)については、カード製造者50等がNAND型フラッシュメモリ10に共通に書き込むことができる。例えば、上記図6で示したように、カード製造者50が、上記ライセンス管理者40から受け取ったNAND型フラッシュメモリ10ごとに共通な鍵管理情報(FKBv)を書き込む。そのため、メモリ製造者30が書き込まなければならないNAND型フラッシュメモリ10ごとに固有(ユニーク)なデータのサイズを低減することが可能となる。
【0096】
ここで、NAND型フラッシュメモリ10の製造時等に、NAND型フラッシュメモリ10に固有かつデータサイズの大きい情報を書き込む場合、製造工程が煩雑となり、製造時間が長期化し、製造コストが増大してしまう。しかしながら、本例に係る構成および方法によれば、共通に付される鍵管理情報(FKBv)と固有の暗号化秘密識別情報(E-SecretID)とに分けて2段階に暗号化することにより、このような煩雑な製造工程は不要となるため、製造工程を簡略化でき、製造コストを低減できる点で有利である。また、製造時間を短縮化できるため、消費電力を低減できる点でもメリットがある。
【0097】
また、ホスト装置20側においても、FKeyを用いてNAND型フラッシュメモリに固有な値であるSecretIDを暗号化してE-SecretIDを生成し、さらに、IDKeykを用いてFKeyを暗号化してFKBを生成するという構成を取ることにより、NAND型フラッシュメモリ10と同様のメリットを享受することが可能となる。
【0098】
[変形例1(FKBを後からダウンロードして書き込む場合)]
次に、変形例1に係る認証装置、被認証装置、およびその認証方法について説明する。この説明において、上記第1の実施形態と重複する部分の説明については、省略する。
【0099】
<FKBの書き込みについて>
暗号化FKey束(FKB)の書き込みについて、説明する。
【0100】
本変形例1における処理は、暗号化FKey束(FKB)が、NAND型フラッシュメモリ10の製造時に書き込まれる場合等には、特に必要のない処理である。しかし、NAND型フラッシュメモリ10とコントローラ19などが結合されて、例えば、SD(登録商標)カードなどのストレージメディア製品として一般ユーザ入手し、カード利用時に市場において後から書き込まれる場合などには、必要となるFKBの書き込み処理に関するものである。
【0101】
図7では、上記のように鍵管理情報FKBが未記録のストレージメディア(Card)55に記録されたデータの場合の状態を示している。
図示するように、NAND型フラッシュメモリ10は、秘密情報NKeyiと秘密識別情報SecretIDとが秘匿領域11−2に記録される。前記秘密情報NKeyiを特定するために必要なインデックス情報iと鍵管理情報FKBを特定するために必要となるインデックス情報vとがROM領域11−3に記録される。ROM領域に記録されたインデックス情報vで指定されたFKeyvによって暗号化されたSecretID(E-SecretID)が読み書き可能領域に書き込まれた状態である。しかしながら、鍵管理情報FKBは、NAND型フラッシュメモリ10に、まだ書き込まれていない点で、上記実施形態と相違する。
【0102】
次に、上記のように鍵管理情報FKBが未記録状態のストレージメディア10に、サーバからFKBをダウンロードして記録する場合について、図8を用いて説明する。
【0103】
図示するように、この場合には、NAND型フラッシュメモリ10に、必要に応じてデータキャッシュ12Dが配置される。
【0104】
本例に係るサーバ70は、FKBデータベース(Set of FKBi ’s (i=1、…、x) )71およびvからFKBvを選択するための選択部72を備える。
【0105】
また、サーバ70とメモリシステム(NAND型フラッシュメモリ10、コントローラ19、ホスト装置20)とは、インターネット60を介して電気的に通信接続される。
【0106】
なお、ホスト装置20は、FKBの新規書き込みが必要かどうかを判定し、必要に応じてFKBをサーバに要求する機能を備える。
【0107】
<FKB書き込みフロー>
次に、図9に沿って、暗号化FKeyID束(FKB)をサーバ60からダウンロードしてNAND型フラッシュメモリ10に書き込むフローについて説明する。
【0108】
(Step S51)
図示するように、まず、ホスト装置20が、FKBダウンロードが必要と判定したことにより、FKB書き込みが開始(Start)され、ホスト装置20はサーバ60に対してFKB要求を出す。
【0109】
(Step S52)
続いて、サーバ70は、NAND型フラッシュメモリ10に対して、FKeyvを特定するために必要となるインデックス情報vを要求する。
【0110】
(Step S53)
続いて、NAND型フラッシュメモリ10は、ROM領域11−3からvを読み出し、vをサーバに送出する。
【0111】
(Step S54)
続いて、サーバ70は、受信したvに対応するFKBvをFKBデータベース71の中から選択する。
【0112】
(Step S55)
続いて、サーバ70は、選択したFKBvをNAND型フラッシュメモリに送出する。
【0113】
(Step S56)
続いて、NAND型フラッシュメモリ10は、受信したFKBvを読み書き可能領域11−1に書き込み、記録する。
【0114】
以上の動作により、第1の実施形態に係る暗号化FKey束(FKB)ダウンロードフローを終了する(End)。
【0115】
その他の構成、動作等に関しては、上記第1の実施形態と実質的に同様である。
【0116】
<作用効果>
変形例1に係る認証装置、被認証装置及び認証方法によれば、少なくとも第1の実施形態と同様の作用効果(1)乃至(3)を得ることができる。
【0117】
さらに、変形例1によれば、後からFKBを書き込む場合においても、必要に応じて本例を適用することが可能である。
【0118】
[第2の実施形態]
次に、第2の実施形態について説明する。この説明において、上記第1の実施形態と重複する部分の説明については、省略する。
【0119】
ここで、第1の実施形態では、ホスト装置20によるNAND型フラッシュメモリ10の認証が成功した後、両者は秘密識別情報SecretIDを共有している。認証後の処理として、例えば、ホスト装置20がコンテンツを暗号化し、NAND型フラッシュメモリ10へ当該暗号化コンテンツを書き込むこと等が挙げられるが、この際に、共有した秘密識別情報SecretIDを用いることが考えられる。
【0120】
本実施形態は、そのような処理においても秘密識別情報SecretIDを保護することを目的とするものである。そのため、この説明においては、上記第1の実施形態と重複する部分の説明については省略する。
【0121】
<メモリシステム>
第2の実施形態に係るメモリシステムは、図10のように示される。
【0122】
図10に示すように、本例に係るメモリシステムは、一方向性変換部(Oneway)27B、スイッチ部29、および対象となるコンテンツを取り扱う全てのホスト装置が共通に保持している情報(ASSV)を更に備える点で、上記第1の実施形態と相違する。
【0123】
スイッチ部29は、データ検証部(Verify)28において一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)の判定結果が制御信号として入力されると、信号経路をオンとさせ、秘密識別情報SecretIDを一方向変換部27Bに出力する。
【0124】
一方向変換部(Oneway)27Bは、スイッチ部29から入力される秘密識別情報SecretIDを、対象となるコンテンツを取り扱う全てのホスト装置が共通に保持している情報(ASSV)を用いて一方向性関数により変換し、一方向性変換識別情報EMID(EMID=Oneway(SecretID, ASSV))を生成する。
【0125】
このように第2の実施形態では、ホスト装置20で秘密識別情報SecretIDが検証された後に、ホスト装置20が、対象となる全てのホスト装置が共通に保持している情報(ASSV)を用いて秘密識別情報SecretIDを変換し、一方向性変換識別情報EMIDを計算する。そのため、ホスト装置20は、秘密識別情報SecretIDの代わりに、一方向性変換識別情報EMIDを用いて、コンテンツ暗号化などの処理を行うことができる。
【0126】
その他の構成、動作等は、上記第1の実施形態と実質的に同様であるため、詳細な説明については省略する。
【0127】
<作用効果>
第2の実施形態に係る認証装置、被認証装置及び認証方法によれば、少なくとも第1の実施形態と同様の作用効果(1)乃至(3)を得ることができる。
【0128】
さらに、第2の実施形態では、ホスト装置20は、一方向性変換部(Oneway)27B、スイッチ部29、および対象となるコンテンツを取り扱う全てのホスト装置が共通に保持している情報(ASSV)を更に備える点で、上記第1の実施形態と相違する。
【0129】
上記構成によれば、ホスト装置20で秘密認識情報SecretIDが検証された後に、ホスト装置20が、対象となる全てのホスト装置が共通に保持している情報(ASSV)を用いて秘密識別情報SecretIDを変換し、一方向性変換識別情報EMIDを計算する。そのため、ホスト装置20は、秘密識別情報SecretIDの代わりに、一方向性変換識別情報EMIDを用いて、コンテンツ暗号化などの処理を行うことができる。
【0130】
その結果、ここでは図示を省略するが後工程におけるコンテンツ暗号化などおいて一方向性変換識別情報EMIDを用いることができ、当該後工程において秘密識別情報SecretIDが漏洩することを防止することが可能となり、秘密識別情報SecretIDの秘匿性を強化することができる点で、さらに有利である。
【0131】
[第3の実施形態(メモリ、コントローラ、ホストの一例)]
次に、図11を用い、第3の実施形態について説明する。第3の実施形態は、上記実施形態に適用可能な上記NAND型フラッシュメモリ10、コントローラ19、およびホスト装置20の一例に関するものである。本例では、メモリカードとしてSD(登録商標)カードを一例に挙げる。
【0132】
図示するように、本例では、メモリカード55と接続されるホスト装置20の機能ブロックを示している。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も本発明の範疇に含まれる。
【0133】
ホスト装置20は、アプリケーション、オペレーティング・システム等のソフトウェア211を備えている。ソフトウェア211は、ユーザから、メモリカードへのデータの書き込み、メモリカードからのデータの読み出しを指示される。ソフトウェア211は、データの書き込みおよび読み出しをファイルシステム212に指示する。ファイルシステム212は、管理対象の記憶媒体に記録されているファイルデータを管理するための仕組みであり、記憶媒体の記憶領域内に管理情報を記録し、この管理情報を用いてファイルデータを管理する。
【0134】
ホスト装置20は、SDインターフェース213を有する。SDインターフェース213は、ホスト装置20とメモリカード55との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなる。ホスト装置20は、SDインターフェース213を介してメモリカードと通信を行う。SDインターフェース213は、ホスト装置20とメモリカードとが通信するのに必要な様々な取り決めを規定し、後述のメモリカードのSDインターフェース131と相互に認識可能な各種のコマンドの組を備えている。また、SDインターフェース213は、メモリカード55のSDインターフェース231と接続可能なハードウェア上の構成(ピンの配置、数等)も含む。
【0135】
メモリカード55は、NAND型フラッシュメモリ10、メモリ10を制御するためのコントローラ19を有する。メモリカード55は、ホスト装置20に接続されたとき、およびオフ状態のホスト装置20に挿入された状態でホスト装置20がオンされたときに電源供給を受けて初期化動作を行った後、ホスト装置20からのアクセスに応じた処理を行う。
【0136】
NAND型フラッシュメモリ10は、データを不揮発に記憶し、複数のメモリセルからなるページと呼ばれる単位でデータの書き込みおよび読み出しを行う。なお、前述の実施形態ではNAND型フラッシュメモリを例に記載したが、データを不揮発に記憶するメモリであれば、NAND型フラッシュメモリに限られることはなく、その場合、NAND型フラッシュメモリを代替のメモリに代えて読み替えることができ、メモリセルアレイは代替されるメモリに採用されるメモリセルに代えて読み替えることができる。ページには、各ページに固有の物理アドレスが割り当てられている。また、NAND型フラッシュメモリ10は、複数のページからなる物理ブロック(消去ブロック)と呼ばれる単位でデータの消去を行う。なお、物理ブロック単位で物理アドレスが割り当てられていることもある。
【0137】
コントローラ19は、メモリ10によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ(または物理ブロック)が、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ(または物理ブロック)が消去状態(何も書き込まれていない、または無効なデータを保持している状態)であるかを管理することを含んでいる。
【0138】
コントローラ19は、SDインターフェース131、MPU(micro processing unit)132、ROM(read only memory)133、RAM(random access memory)134、NANDインターフェース135を含んでいる。
【0139】
SDインターフェース131は、ホスト装置20とコントローラ19との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなり、SDインターフェース213と同様に、両者の通信を可能とする取り決めを規定し、各種のコマンドの組を備え、ハードウェア上の構成(ピンの配置、数等)も含む。メモリカード(コントローラ22)55は、SDインターフェース131を介してとホスト1と通信を行う。SDインターフェース131は、レジスタ136を含んでいる。
【0140】
MPU132は、メモリカード55全体の動作を司る。MPU132は、例えば、メモリカード55が電源供給を受けた際に、ROM133内に格納されているファームウェア(制御プログラム)をRAM134上に読み出して所定の処理を実行する。MPU132は、制御プログラムに従って各種のテーブルをRAM134上で作成したり、ホスト20から受けたコマンドに従ってメモリに対する所定の処理を実行したりする。
【0141】
ROM133は、MPU132により制御される制御プログラムなどを格納する。RAM134は、MPU132の作業エリアとして使用され、制御プログラムや各種のテーブルを一時的に記憶する。このようなテーブルとして、ファイルシステム212によってデータに割り当てられた論理アドレスを有するデータを実際に記憶しているページの物理アドレスの変換テーブル(論物テーブル)が含まれる。NANDインターフェース135は、コントローラ19とメモリ10とのインターフェース処理を行う。
【0142】
NAND型フラッシュメモリ10内の記憶領域は、保存されるデータの種類に応じて、上記のように、例えば、一般領域(User area)、秘匿領域(Hidden area)、保護領域(Protected area)、ROM領域(ROM area)等を含んでいる。なお、コントローラ19は、一般領域の一部を確保し、自身の動作に必要な制御データ(論物テーブル等)を保存する。
【0143】
[第4の実施形態(NAND型フラッシュメモリの構成例)]
次に、上記NAND型フラッシュメモリ10の具体的構成例として、第4の実施形態として説明する。
【0144】
<全体構成例>
上記NAND型フラッシュメモリ10の具体的な全体構成例は、図12のように示される。
【0145】
図示するように、本例に係るNAND型フラッシュメモリ10は、メモリセルアレイ11、制御回路19、認証回路151、ビット線制御回路152、カラムデコーダ153、データ入出力バッファ154、データ入出力端子155、ワード線駆動回路156、制御信号入力端子158、電源発生回路159を備える。
【0146】
メモリセルアレイ11は、複数のブロック(BLOCK1〜BLOCKn)により構成される。複数のブロック(BLOCK1〜BLOCKn)のそれぞれは、ワード線およびビット線の交差位置に配置される複数のメモリセルを備える。例えば、BLOCK1は、上記ROM領域11−3である。例えば、BLOCK2は、上記秘匿領域11−2である。その他のブロックは、ホスト装置20から利用可能な一般領域(User area)11−1等である。
【0147】
ROM領域11−3は、例えばOTP(One Time Program)ブロックであり、1回の書き込みのみ許容される。書き込み後は電気フューズ、レーザフューズ、ROMフューズ等の手段を用いてブロックデコーダを制御し消去動作を禁止する。秘匿領域11−2は、例えば外部アドレスのデコードでは選択できない状態とし、NAND型フラッシュメモリ10の内部の制御回路19のみが読み出し可能な領域とする。
【0148】
認証回路151は、例えば、上記データキャッシュ12A、12B、12C、発生回路13、14、一方向性変換器15等を備え、制御回路19により制御される。
【0149】
ビット線制御回路152は、ビット線を介してメモリセルアレイ11中のメモリセルのデータを読み出し、ビット線を介してメモリセルアレイ11中のメモリセルの状態を検出する。また、ビット線制御回路152は、ビット線を介してメモリセルアレイ11中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行う。
【0150】
ビット線制御回路152内には、図示しない上記ページバッファ等のデータ記憶回路等が設けられ、このデータ記憶回路は、カラムデコーダ153によって選択される。データ記憶回路に読み出されたメモリセルのデータは、データ入出力バッファ154を介してデータ入出力端子155から外部へ出力される。
【0151】
データ入出力端子155は、例えば、NAND型フラッシュメモリ10の外部のホスト装置20等に接続される。データ入出力端子155により、コマンドCMD、アドレスADD、入出力データDT等が、メモリ10とホスト装置2との間でやり取りされる。データ入出力端子155は、例えば8ビット、または16ビットのバス幅を有している。NAND型フラッシュメモリ10は、トグルモードインターフェース(toggle mode interface)などの高速インターフェース規格をサポートしてもよい。トグルモードインターフェースでは、例えば、データストローブ信号(DQS)の立ち上がり、立ち下がり両エッジに同期してデータ入出力端子155を介したデータ転送が行われる。
【0152】
ホスト装置20は、例えば、マイクロコンピュータ等であって、データ入出力端子155から出力されたデータDTを受ける。ホスト装置20は、NAND型フラッシュメモリ10の動作を制御する各種コマンドCMD(書き込みコマンド、読み出しコマンド、消去コマンド、ステータスリードコマンド等)、アドレスADD、およびデータDTを出力する。ホスト装置20からデータ入出力端子155に入力された書き込みデータDTは、データ入出力バッファ154を介して、カラムデコーダ153によって選択された上記データ記憶回路(図示せず)に供給される。一方、コマンドCMDおよびアドレスADDは、制御回路19に供給される。
【0153】
ワード線駆動回路156は、制御回路19の制御に従い、メモリセルアレイ11中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【0154】
電圧発生回路159は、制御回路19の制御に従い、図示中の接続された上記構成回路の動作に必要な電圧を供給する。例えば、電圧発生回路159は、ホスト装置から供給される外部電圧を昇圧して、読み出し、書き込みあるいは消去時にワード線に印加される電圧を生成する。
【0155】
制御回路(Controller)19は、NAND型フラッシュメモリ10の全体の動作を制御するために、接続される各回路に必要な制御信号および制御電圧を与える。制御回路19は、メモリセルアレイ11、認証回路151、ビット線制御回路152、カラムデコーダ153、データ入出力バッファ154、ワード線駆動回路156、電圧発生回路159に接続される。接続された上記構成回路は、制御回路19によって制御される。
【0156】
制御回路19は、制御信号入力端子158に接続され、ホスト装置20から制御信号入力端子158を介して入力されるWE(ライト・イネーブル)信号、RE(リード・イネーブル)信号、ALE(アドレス・ラッチ・イネーブル)信号、CLE(コマンド・ラッチ・イネーブル)信号等の制御信号の組み合わせによって制御される。
【0157】
ここで、機能的に表現すれば、上記ワード線駆動回路156、ビット線制御回路152、カラムデコーダ153、制御回路19は、データ書き込み回路、データ読み出し回路、およびデータ消去回路を構成する。ホスト装置20は、NAND型フラッシュメモリ10が書き込み、読み出し、消去などの内部動作を実行中であるか否かを、図示せぬRY/BY(レディー/ビジー)信号出力端子をモニタすることで検知する。制御回路19は、RY/BY信号出力端子を介して、RY/BY信号を出力する。
【0158】
<ブロック(BLOCK)の構成例>
次に、図13を用い、メモリセルアレイ11を構成するブロック(BLOCK)の構成例について説明する。ここでは、図12中のBLOCK1を一例に挙げて説明する。ここで、このブロックBLOCK1中のメモリセルは、一括してデータ消去されるため、ブロックはデータ消去単位である。
【0159】
ブロックBLOCK1は、ワード線方向(WL方向)に配置される複数のメモリセルユニットMUから構成される。メモリセルユニットMUは、WL方向と交差するビット線方向(BL方向)に配置され、電流経路が直列接続される8個のメモリセルMC0〜MC7からなるNANDストリング(メモリセルストリング)と、NANDストリングの電流経路の一端に接続されるソース側の選択トランジスタS1と、NANDストリングの電流経路の他端に接続されるドレイン側の選択トランジスタS2とから構成される。
【0160】
尚、本例では、メモリセルユニットMUは、8個のメモリセルMC0〜MC7から構成されるが、2つ以上のメモリセル、例えば、56個、32個等から構成されていればよく、8個に限定されるというものではない。
【0161】
ソース側の選択トランジスタS1の電流経路の他端はソース線SLに接続される。ドレイン側の選択トランジスタS2の電流経路の他端は、各メモリセルユニットMUに対応してメモリセルユニットMUの上方に設けられ、BL方向に延出するビット線BLに接続される。
【0162】
ワード線WL0〜WL7は、WL方向に延び、WL方向の複数のメモリセルの制御ゲート電極CGに共通に接続される。選択ゲート線SGSは、WL方向に延び、WL方向の複数の選択トランジスタS1に共通に接続される。選択ゲート線SGDも、WL方向に延び、WL方向の複数の選択トランジスタS2に共通に接続される。
【0163】
また、ワード線WL0〜WL7ごとにページ(PAGE)が存在する。例えば、図中の破線で囲って示すように、ワード線WL7には、ページ7(PAGE7)が存在する。このページ(PAGE)ごとに、データ読み出し動作、データ書き込み動作が行われるため、ページ(PAGE)はデータ読み出し単位であり、データ書き込み単位である。
【0164】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0165】
10…被認証装置(NAND型フラッシュメモリ)、19…コントローラ、20…認証装置(ホスト装置)、11…セルアレイ、23…メモリ、E-SecretID…固有の暗号化秘密識別情報、SecretID…固有の秘密識別情報、FKB…共通に付される鍵管理情報、NKey…第1鍵情報、HKey…第2鍵情報、SKey…セッション鍵情報。
【特許請求の範囲】
【請求項1】
被認証装置を認証装置が認証する認証方法であって、
前記被認証装置は、秘匿される固有の秘密識別情報(SecretID)、固有の暗号化秘密識別情報(E-SecretID)、および鍵管理情報(FKB)を保持し、
前記認証装置は、秘匿される識別鍵情報(IDKey)を保持し、
前記認証装置が、前記被認証装置から、前記暗号化秘密識別情報(E-SecretID)および前記鍵管理情報(FKB)を読み出すステップと、
前記認証装置が、読み出した前記鍵管理情報(FKB)を用いて、前記識別鍵情報(IDKey)から復号可能な識別鍵情報(FKey)を取得するステップと、
前記認証装置が、得られた識別鍵情報(FKey)を用いて、読み出した前記暗号化秘密識別情報(E-SecretID)を復号し、秘密識別情報(SecretID)を取得するステップと
を具備する認証方法。
【請求項2】
前記被認証装置は、秘匿される第1鍵情報(NKey)を更に保持し、
前記認証装置は、元情報(HC)と秘匿される第2鍵情報(HKey)とを更に保持し、
前記被認証装置が、前記元情報(HC)および前記第1鍵情報(NKey)に基づいて、第3鍵情報(HKey’)を生成するステップと、
前記被認証装置が、前記第3鍵情報(HKey’)と乱数とに基づいて、第1セッション鍵(SKey)を生成するステップと、
前記認証装置が、前記第2鍵情報(HKey)と前記乱数とに基づいて、第2セッション鍵(SKey’)を生成するステップとを
を更に具備する請求項1に記載の認証方法。
【請求項3】
前記被認証装置が、生成した前記第1セッション鍵(SKey)を用いて、前記秘密識別情報(SecretID)に一方向性変換処理を行い、一方向性変換データ(Oneway-ID)を生成して前記認証装置に送信するステップと、
前記認証装置が、生成した前記第2セッション鍵データ(SKey’)を用いて、前記秘密識別情報(SecretID)に一方向性変換処理を行い、一方向性変換データ(Oneway-ID’)を求めるステップと、
前記認証装置が、受信した前記一方向性変換データ(Oneway-ID)と、生成した前記一方向性変換データ(Oneway-ID’)とが一致するか否かを判定するステップと
を更に具備する請求項2に記載の認証方法。
【請求項4】
秘匿される固有の秘密識別情報(SecretID)、固有の暗号化秘密識別情報(E-SecretID)、鍵管理情報(FKB)、および第1鍵情報(NKey)を記憶するセルアレイと、
認証装置の元情報(HC)と前記第1鍵情報(NKey)とを用いて、第2鍵情報(HKey)を生成する第1データ生成部と、
生成した前記第2鍵情報(HKey)と乱数とを用いて、セッション鍵(SKey)を生成する第2データ生成部とを具備し、
前記暗号化秘密識別情報(E-SecretID)および前記鍵管理情報(FKB)は前記認証装置によって読み出され、前記第1鍵情報(NKey)からは前記第2鍵情報(HKey)が生成されるが前記第2鍵情報(HKey)からは前記第1鍵情報(NKey)が生成されない
ことを特徴とする被認証装置。
【請求項5】
生成した前記セッション鍵(SKey)を用いて、前記秘密識別情報(SecretID)に一方向性変換処理を行い、一方向性変換データ(Oneway-ID)を生成する一方向性変換部を更に具備する
請求項4に記載の被認証装置。
【請求項6】
秘匿される第1鍵情報(NKey)を保持する被認証装置を認証する認証装置であって、前記認証装置は、
秘匿される識別鍵情報(IDKey)と第2鍵情報(HKey)とを記憶するメモリと、
前記被認証装置から読み出す鍵管理情報(FKB)を用いて、前記識別鍵情報(IDKey)から復号可能な識別鍵情報(FKey)を生成する識別鍵情報生成部と、
生成される前記識別鍵情報(FKey)を用いて、前記被認証装置から読み出す暗号化秘密識別情報(E-SecretID)を復号し、秘密識別情報(SecretID)を生成する復号部と
を具備する認証装置。
【請求項7】
乱数を発生させる乱数発生器と、
前記第2鍵情報(HKey)と前記乱数とを用いてセッション鍵(SKey)を生成するデータ生成部とを更に具備し、
前記第1鍵情報(NKey)からは前記第2鍵情報(HKey)が生成されるが、前記第2鍵情報(HKey)からは前記第1鍵情報(NKey)が生成されないように構成される
請求項6に記載の認証装置。
【請求項8】
生成した前記セッション鍵(SKey)を用いて、前記秘密識別情報(SecretID)に一方向性変換処理を行い、一方向性変換データ(Oneway-ID)を生成する一方向性変換部を更に具備する
請求項7に記載の認証装置。
【請求項9】
生成した前記一方向性変換データ(Oneway-ID)と前記被認証装置から受信する一方向性変換データ(Oneway-ID)とが一致するか否かを判定する検証部を更に具備する
請求項8に記載の認証装置。
【請求項1】
被認証装置を認証装置が認証する認証方法であって、
前記被認証装置は、秘匿される固有の秘密識別情報(SecretID)、固有の暗号化秘密識別情報(E-SecretID)、および鍵管理情報(FKB)を保持し、
前記認証装置は、秘匿される識別鍵情報(IDKey)を保持し、
前記認証装置が、前記被認証装置から、前記暗号化秘密識別情報(E-SecretID)および前記鍵管理情報(FKB)を読み出すステップと、
前記認証装置が、読み出した前記鍵管理情報(FKB)を用いて、前記識別鍵情報(IDKey)から復号可能な識別鍵情報(FKey)を取得するステップと、
前記認証装置が、得られた識別鍵情報(FKey)を用いて、読み出した前記暗号化秘密識別情報(E-SecretID)を復号し、秘密識別情報(SecretID)を取得するステップと
を具備する認証方法。
【請求項2】
前記被認証装置は、秘匿される第1鍵情報(NKey)を更に保持し、
前記認証装置は、元情報(HC)と秘匿される第2鍵情報(HKey)とを更に保持し、
前記被認証装置が、前記元情報(HC)および前記第1鍵情報(NKey)に基づいて、第3鍵情報(HKey’)を生成するステップと、
前記被認証装置が、前記第3鍵情報(HKey’)と乱数とに基づいて、第1セッション鍵(SKey)を生成するステップと、
前記認証装置が、前記第2鍵情報(HKey)と前記乱数とに基づいて、第2セッション鍵(SKey’)を生成するステップとを
を更に具備する請求項1に記載の認証方法。
【請求項3】
前記被認証装置が、生成した前記第1セッション鍵(SKey)を用いて、前記秘密識別情報(SecretID)に一方向性変換処理を行い、一方向性変換データ(Oneway-ID)を生成して前記認証装置に送信するステップと、
前記認証装置が、生成した前記第2セッション鍵データ(SKey’)を用いて、前記秘密識別情報(SecretID)に一方向性変換処理を行い、一方向性変換データ(Oneway-ID’)を求めるステップと、
前記認証装置が、受信した前記一方向性変換データ(Oneway-ID)と、生成した前記一方向性変換データ(Oneway-ID’)とが一致するか否かを判定するステップと
を更に具備する請求項2に記載の認証方法。
【請求項4】
秘匿される固有の秘密識別情報(SecretID)、固有の暗号化秘密識別情報(E-SecretID)、鍵管理情報(FKB)、および第1鍵情報(NKey)を記憶するセルアレイと、
認証装置の元情報(HC)と前記第1鍵情報(NKey)とを用いて、第2鍵情報(HKey)を生成する第1データ生成部と、
生成した前記第2鍵情報(HKey)と乱数とを用いて、セッション鍵(SKey)を生成する第2データ生成部とを具備し、
前記暗号化秘密識別情報(E-SecretID)および前記鍵管理情報(FKB)は前記認証装置によって読み出され、前記第1鍵情報(NKey)からは前記第2鍵情報(HKey)が生成されるが前記第2鍵情報(HKey)からは前記第1鍵情報(NKey)が生成されない
ことを特徴とする被認証装置。
【請求項5】
生成した前記セッション鍵(SKey)を用いて、前記秘密識別情報(SecretID)に一方向性変換処理を行い、一方向性変換データ(Oneway-ID)を生成する一方向性変換部を更に具備する
請求項4に記載の被認証装置。
【請求項6】
秘匿される第1鍵情報(NKey)を保持する被認証装置を認証する認証装置であって、前記認証装置は、
秘匿される識別鍵情報(IDKey)と第2鍵情報(HKey)とを記憶するメモリと、
前記被認証装置から読み出す鍵管理情報(FKB)を用いて、前記識別鍵情報(IDKey)から復号可能な識別鍵情報(FKey)を生成する識別鍵情報生成部と、
生成される前記識別鍵情報(FKey)を用いて、前記被認証装置から読み出す暗号化秘密識別情報(E-SecretID)を復号し、秘密識別情報(SecretID)を生成する復号部と
を具備する認証装置。
【請求項7】
乱数を発生させる乱数発生器と、
前記第2鍵情報(HKey)と前記乱数とを用いてセッション鍵(SKey)を生成するデータ生成部とを更に具備し、
前記第1鍵情報(NKey)からは前記第2鍵情報(HKey)が生成されるが、前記第2鍵情報(HKey)からは前記第1鍵情報(NKey)が生成されないように構成される
請求項6に記載の認証装置。
【請求項8】
生成した前記セッション鍵(SKey)を用いて、前記秘密識別情報(SecretID)に一方向性変換処理を行い、一方向性変換データ(Oneway-ID)を生成する一方向性変換部を更に具備する
請求項7に記載の認証装置。
【請求項9】
生成した前記一方向性変換データ(Oneway-ID)と前記被認証装置から受信する一方向性変換データ(Oneway-ID)とが一致するか否かを判定する検証部を更に具備する
請求項8に記載の認証装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2013−106162(P2013−106162A)
【公開日】平成25年5月30日(2013.5.30)
【国際特許分類】
【出願番号】特願2011−248056(P2011−248056)
【出願日】平成23年11月11日(2011.11.11)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成25年5月30日(2013.5.30)
【国際特許分類】
【出願日】平成23年11月11日(2011.11.11)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]