説明

認証コンポーネント、被認証コンポーネントおよびその認証方法

【課題】認証コンポーネント、被認証コンポーネント間で、異なる秘密情報XYの秘密状態を維持したまま共有でき、共有した秘密情報に基づく軽量な計算によって認証可能な認証・被認証コンポーネントおよびその認証方法を提供する。
【解決手段】実施形態によれば、被認証コンポーネントは、秘密情報XYと前記秘密情報XYが少なくとも2回以上多重に複製された秘密情報XYと、前記秘密情報XYが暗号化された秘密情報XYEとを記憶するメモリ11と、乱数Aを生成する生成部16と、生成した前記乱数Aと、受領する乱数Bの少なくとも一部から構成される乱数Dを生成する生成部18と、前記乱数Dと前記メモリからロードした前記秘密情報XYの少なくとも一部とについて、圧縮演算を行い、データCを生成する演算部13と、データν(νは1の出現確率がη(ただし、η<0.5))を生成する生成部14と、前記データCに前記データνを付与して、演算結果Zを算出するビット毎加算部C1とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
認証コンポーネント、被認証コンポーネントおよびその認証方法に関するものである。
【背景技術】
【0002】
一般に、セキュリティーを要する分野において、自己の正当性を証明する手段として暗号器と共有した秘密に基づく手法が採られている。
【0003】
例えば、電子決済に用いるICカード等では、カード内のICに対して個別化されたID及び秘密情報が保持されており、更にICカードは、ID及び秘密情報に基づく認証を行うための暗号処理機能を有している。別の例では、コンテンツの著作権保護において、SDカード(登録商標)の正当性を証明する手段などもある。
【0004】
上記の例は、いずれも被認証コンポーネントが、秘密鍵と暗号器とを保有していることが必要である。しかしながら、暗号器の実装は比較的大きな回路規模を要求されるため、回路規模上の制約が同時に課せられる環境においては自己の正当性を証明するのは非常に困難である。回路規模上の制約が課せられる代表例としては、例えば、RFID(Radio Frequency Identification)等があげられる。そのため、近年では、益々実装上の必要性が高まっているという背景がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国公開特許公報2010/0161988 A1
【特許文献2】特開2000−357213号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
秘密情報を認証コンポーネント、被認証コンポーネント以外の第三者に対する秘密状態を維持したまま共有でき、共有した秘密情報に基づく軽量な計算によって認証可能とする。
【課題を解決するための手段】
【0007】
実施形態によれば、一態様に係る秘密情報XYと前記秘密情報XYが少なくとも2回以上多重に複製された秘密情報XYと、前記秘密情報XYが暗号化された秘密情報XYEとを記憶する被認証コンポーネントと、前記被認証コンポーネントを認証する認証コンポーネントとの間における認証方法は、前記認証コンポーネントが、前記被認証コンポーネントから受領した前記秘密情報XYEに対して、復号処理を行い、前記秘密情報XYを共有するステップと、前記被認証コンポーネントが、前記認証コンポーネントが生成する乱数Bを受領し、前記複製された秘密情報XYを複数ロードするステップと、前記被認証コンポーネントが、乱数Aおよびデータν(νは1の出現確率がη(ただし、η<0.5))を生成するステップと、前記被認証コンポーネントが、生成した前記乱数Aと受領した前記乱数Bの少なくとも一部から構成される乱数Dを生成するステップと、前記被認証コンポーネントが、前記乱数Dと前記秘密情報XYの少なくとも一部とについて、圧縮演算を行い、データCを生成するステップと、前記被認証コンポーネントが、前記データCに前記データνを付与した演算結果Zを、前記認証コンポーネントに送信するステップと、前記認証コンポーネントが、生成した前記乱数Bと受領した前記乱数Aの少なくとも一部から構成される乱数Dを生成するステップと、前記認証コンポーネントが、前記乱数Dと前記秘密情報XYの少なくとも一部とについて、圧縮演算を行い、データCを生成するステップと、前記認証コンポーネントが、受領した演算結果Zと生成したデータCとを用いて、判定処理を行うステップとを具備する。
【図面の簡単な説明】
【0008】
【図1】比較例1に係るプロトコルを示すブロック図。
【図2】比較例2に係るプロトコルを示すブロック図。
【図3】第1実施形態に係る構成例を示すブロック図。
【図4】第1実施形態に係る認証フローを示すフロー図。
【図5】第2実施形態に係る構成例を示すブロック図。
【図6】第2実施形態に係る認証フローを示すフロー図。
【図7】第3実施形態に係る構成例を示すブロック図。
【図8】第3実施形態に係る認証フローを示すフロー図。
【図9】第3実施形態に係る秘密情報のデータ転送を示すブロック図。
【図10】第4実施形態に係る構成例を示すブロック図。
【図11】第4実施形態に係る認証フローを示すフロー図。
【図12】第5実施形態に係る構成例を示すブロック図。
【図13】第5実施形態に係る認証フローを示すフロー図。
【図14】第6実施形態に係る構成例を示すブロック図。
【図15】第6実施形態に係る認証フローを示すフロー図。
【図16】第7実施形態に係る構成例を示すブロック図。
【図17】第7実施形態に係る認証フローを示すフロー図。
【図18】第8実施形態に係るID retrieval process(1)を示すブロック図。
【図19】第8実施形態に係るID retrieval process(2)を示すブロック図。
【図20】第8実施形態に係るID retrieval process(3)を示すブロック図。
【図21】第8実施形態に係るID retrieval process(4)を示すブロック図。
【図22】第9実施形態に係るID biding process(1)を示すブロック図。
【図23】第9実施形態に係るID biding process(2)を示すブロック図。
【図24】第10実施形態に係る構成例を示すブロック図。
【図25】第11実施形態に係る構成例を示すブロック図。
【図26】第12実施形態に係る構成例を示すブロック図。
【発明を実施するための形態】
【0009】
[比較例1(HB+プロトコルの一例)]
まず、図1を用い、比較例1について説明する。この比較例1は、HB+プロトコルの一例に関するものである。
【0010】
HB+プロトコルは、2000年にHopper とBlumらによって提案された、軽量の認証プロトコルであるHBプロトコルの改良プロトコルである。HBプロトコルは、雑音下におけるパリティ値の同定が困難であるということ(LPN:Learning Parity with Noise)に基づいており、受動攻撃に対する安全性が証明されている。ただし、HBプロトコルは、リーダー(Reader)へのなりすましといった能動攻撃に対して脆弱性がある。この点を解決するために、2005年にJuelsらにより、HB+プロトコルとして提案されたものである。
【0011】
HB+プロトコルの概要は、図1のように図示される。ここで、図1中の、a,b,x,yはベクトルであり、ν,zはビットである。
【0012】
図示するように、HB+プロトコルでは、被認証コンポーネントであるタグ(Tag)と、認証コンポーネントであるリーダー(Reader)とが、各々秘密情報ベクトルx, yを共有する。
【0013】
タグは、リーダーに対して一時乱数ベクトルbを渡す。
【0014】
続いて、リーダーは、タグに対して一時乱数ベクトルaを渡す。
【0015】
続いて、タグは、乱数aと秘密情報ベクトルxの内積(a・x)および乱数bと秘密情報ベクトルyとの内積(b・y)を計算する。さらに、タグは、ηの確率で1となる変数νを生成する。そして、内積(a・x)、内積(b・y)、変数νをそれぞれ加算して、z= ax(+)by(+)νを算出する。ここで、axは内積(a・x)を意味し、(+)は排他的論理和を意味する。
【0016】
続いて、タグは、算出したzを、リーダーへと送信する。
【0017】
続いて、リーダーは、受領したzと、自身で計算したax(+)byとを比較し、一致不一致を検査する。上記一連の処理を1単位として1ラウンドと称することもある。
【0018】
これら上記1ラウンドの処理を複数回(例えば、数十回〜数万回程度)繰り返し、前述の不一致確率が、所定値tを下回った場合、タグが秘密情報を保持しているとみなし、認証が成功する。
【0019】
尚、ax(+)byは、秘密情報x,yと、結合ベクトルa,bとのそれぞれの内積である。そのため、x,yの結合ベクトルxyを秘密情報とおき、a,bの結合ベクトルをConcat(a,b)とした場合、ax(+)byをConcat(a,b)xyと表現することも可能である。
【0020】
[比較例2(Random HB#プロトコルの一例)]
次に、図2を用い、比較例2について説明する。この比較例2は、Random HB#プロトコルの一例に関するものである。Random HB#プロトコルは、上記比較例1に示したHB+プロトコルが更に改良されたプロトコルである。
【0021】
上記HB+プロトコルは、受動的な攻撃と能動的な攻撃に対して解決策を提供したものの、Gilbertらによって提案された中間者攻撃に対して脆弱性がある傾向にある。この点を解決するために、GilbertらによりHB+プロトコルの改良方式プロトコルとして、Random HB#プロトコルとして提案されたものである。
【0022】
Random HB#プロトコルの概要は、図2のように図示される。ここで、図2中のX,Yは行列であり、a,b,z,νはベクトルである。
図示するように、Random HB#プロトコルでは、タグ(Tag)とリーダー(Reader)とが、各々秘密情報行列X, Yを共有する。
【0023】
まず、タグは、リーダーに対して一時乱数ベクトルbを渡す。
【0024】
続いて、リーダーは、タグに対して一時乱数ベクトルaを渡す。
【0025】
続いて、タグは、乱数aと秘密情報行列xとの内積(aX)および乱数bと秘密情報行列yとの内積(bY)を計算する。ここで、X, Yは行列、a, bはベクトルであることから、各々の内積結果は、ベクトルとなる。また、タグは、ηの確率で1となる変数ベクトルνを生成する。そして、タグは、上記の値を加算して、z= aX(+)bY(+)νを算出する。ここでzはベクトルである。
【0026】
続いて、タグは、算出したzを、リーダーへと送信する。
【0027】
続いて、リーダーは、受領したzと自身で計算したaX(+)bYとのビット加算、すなわち排他的論理和演算を行った結果を用い、aX(+)bY(+)zのハミング重みHwt(aX(+)bY(+)z)を計算する。ハミング重みHwt(aX(+)bY(+)z)が、所定値t*clenを下回った場合、タグが秘密情報を保持しているとみなし、認証が成功する。ただし、η≦t<0.5、clenはAX(+)BYのビット長とする。
【0028】
尚、aX(+)bYは秘密情報XとYの結合行列とaとbの結合ベクトルの内積であることから、X,Yの結合行列XYを秘密情報とおき、aとbの結合ベクトルをConcat(a,b)とした場合、aX(+)bYをConcat(a,b)XYと表現することも可能である。
【0029】
<実装上の改善点>
しかしながら、上記比較例1、2に係るプロトコルでは、例えば、NAND型フラッシュメモリ等に具体的に実装しようとした場合等に、以下(I)〜(IV)のような改善点が考えられる。
【0030】
(I)秘密情報X及びYの共有手段
前述のように、上記比較例1、2では、リーダーとタグとは、秘密情報X, Yを共有している必要がある。しかしながら、上記比較例1、2では、秘密情報X, Yを共有するための具体的な共有方法が提示されていない。
【0031】
そのため、仮にすべてのリーダーとタグとで同一のX, Yを事前に共有していた場合、一旦X, Yが露見してしまうと、システム全てに致命的な影響を与える。一方でタグ毎に異なるX, Yを適用した場合、リーダー側では全てのタグに適用されているX, Yを保持している、もしくはそれを統合的に管理しているデータベースへのアクセスなどが要求される。
その結果、リーダー側への負担が大きくなる。
【0032】
尚、これに関連する先行技術として、特開2000−357213号公報において、演算処理機能を有する記録媒体に複製コンテンツを記録する記録装置と該記録媒体との間の相互認証方法において、前記記録媒体は、少なくとも該記録媒体に依存する第1の情報と、前記記録装置と相互認証を行う際に該記録装置と共有すべき該記録媒体に依存する第2の情報とを記憶し、前記記録装置は、前記記録媒体から得られた前記第1の情報に基づき該記録媒体との間の相互認証を行う際に用いる認証情報を生成し、この生成された認証情報と前記第2の情報とを用いて前記記録装置と前記記録媒体との間で相互認証を行うことを特徴とする方法が提案されている。
【0033】
(II)コンポーネントPに対し、秘密情報X及びYを効率的に記録する手段
上記HB+プロトコル、Random HB#プロトコルにおいては、いわゆる上記LPN問題を現実的な計算量で同定を困難とするためには相応の秘密情報量、すなわちX, Yは相応のデータサイズである必要がある。ここで、X, Yが全てのタグで共通であれば、ハードワイヤードロジックで構成することも可能であるが、X,Yをタグ毎に異ならせる場合、タグはX, Yを保持するために十分なメモリ容量を持つ必要がある。また、これと同時にタグ製造において同データを個別に記録する必要性があり、記録時間はすなわち製造時間へと反映される。
その結果、メモリ容量の増加と記録時間の増加により、タグのコスト増大を招く。
【0034】
(III)コンポーネントPが保持する秘密情報X及びY損傷に対する保護手段
コンポーネントPが内部メモリにてX, Yを保持している場合、認証に用いる場合は同X, Yのデータ完全性が要求されるが、先行文献ではこれらについて言及されていない。データ完全性を保証するには、タグ内部のメモリにはエラー訂正符号を付与したX, Yを保有し、認証時に訂正処理を行うなどの方法が考えられる。しかしながら、一般に廉価メモリは必ずしも訂正機能を有しているわけではなく、メモリ側に訂正機能がない場合はメモリ以外のタグ内コンポーネントとして同訂正機能を有す必要がある。
その結果、タグのコスト増大を招く。
【0035】
(IV)秘密情報X及びY露見時の秘密情報更新手段
上記Random HB#コンポーネントは、各々受動攻撃、能動攻撃、一定条件下での中間者攻撃に対する耐性が認められているものの、近年では一般化された中間者攻撃に対する脆弱性が報告されるなど、X, Yが露見する可能性を排除することはできない。X, Yの露見には、それ相応の攻撃コストが要求されるものの、一旦X,Yが露見した場合、同X,Yを用いた偽造タグなどの製造が可能となるため、仮にX, Yが露見した場合でも新たなX, Yへと移行できるように、秘密情報の更新手段がある方が望ましい。
【0036】
そこで、上記の点を考慮し、以下において、実施形態について図面を参照して説明する。なお、これまでRFIDのリーダーとタグとを一例にとって説明をした。しかしながら、同様の要件はNAND型フラッシュメモリなどの回路面積が即座にコストに直結するメモリチップにおいても同様である。そのため、以下実施形態では、認証コンポーネントとしてのリーダー(Reader)としてNAND型フラッシュメモリを認証するホストデバイス(Host)、被認証コンポーネントとしてのタグ(Tag)としてNAND型フラッシュメモリ(NAND chip)を、一例に挙げて説明する。しかし、これに限られることはない。例えば、NOR型フラッシュメモリ、抵抗変化式メモリ(ReRAM: Resistive Random Access Memory)、磁気抵抗メモリ(MRAM: Magnetoresistive Random Access Memory)、相変化メモリ(PRAM: Phase change Random Access Memory)、および強誘電体メモリ(FeRAM: Ferroelectric Random Access Memory)、ハードディスクドライブやソリッドステートドライブなどの演算機能及びメモリを有するストレージデバイス、RFIDやICカードなどの認証を要するコンポーネント、汎用演算素子と汎用メモリを有した計算器とソフトウェアから構成されるシステムなど、多様な実装形態に適用できる。尚、この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
【0037】
[第1実施形態]
図1および図2を用い、第1実施形態に係る認証コンポーネント、被認証コンポーネントおよびその認証方法について説明する。
【0038】
<1.構成例(メモリシステム)>
まず、図3を用い、第1実施形態に係る構成例について説明する。
図3に示すメモリシステムは、被認証コンポーネントであるNANDフラッシュメモリ10、認証コンポーネントであるホストデバイス20、両者を仲介するコントローラ19を備える。図示するように、ホスト20は、コントローラ19と呼ばれるNAND型フラッシュメモリ10に対するアクセス機能を有したデバイスを経由してNAND型フラッシュメモリにアクセスする。
【0039】
ここで、半導体製品の製造工程について記載する。半導体製品の製造工程は、主に基板ウエハー上に回路を形成する前工程と、前記ウエハーを個片に切り分けた後、配線や樹脂パッケージ封入などを行う後工程に分けられる。ここで、コントローラ19は、前工程においてNAND型フラッシュメモリ10内に包含されるよう構成される場合、前工程においては包含されないが後工程において同一パッケージに包含されるよう構成される場合、NAND型フラッシュメモリ10とは異なるチップの形態をとる場合、など様々な場合がある。図3を含め、以下ではコントローラ19は、NAND型フラッシュメモリ10とは異なるチップの形態をとる場合を例にとっている。しかしながら、本実施形態は、上記いずれのケースにおいても適用可能である。以下、特に断りのない限り、ホストデバイス20とNAND型フラッシュメモリ10間のデータや命令のやり取りにおいては、多くの場合コントローラが仲介するものであるが、これは省略することとする。なお、NAND型フラッシュメモリ10およびコントローラ19の構成例については、後述する。
【0040】
図3に示す各コンポーネント、データ処理については、以下の通り説明する。図示するように、秘密情報X, Yを共有する方法と、同方法をNAND型フラッシュメモリ10に適用する場合の構成が示される。
【0041】
1−1.NAND型フラッシュメモリ
NAND型フラッシュメモリ10は、被認証コンポーネントである。本例に係るNAND型フラッシュメモリ10は、セルアレイ11、およびセルアレイ11の周辺領域に配置されるデータキャッシュ12、圧縮演算回路13、バイアスドRNG14、出力部15、乱数生成器16、順序交換回路18、ビット毎加算回路C1等を備える。
【0042】
セルアレイ(Cell array)11には、図示しないビット線およびワード線の交差位置にマトリックス状に複数のメモリセルが配置される。メモリセルは、半導体基板上に順次、トンネル絶縁膜、浮遊ゲート、層間絶縁膜、およびワード線と接続される制御ゲートをそれぞれ備える。ビット線方向のメモリセルの電流経路は直列接続され、セルユニットを形成する。セルユニットは、ビット線、ソース線に接続される選択トランジスタにより選択される。ワード線方向の複数のメモリセルは、データ読み出しおよびデータ書き込みの単位である1ページ(Page)を形成する。また、複数のページはデータ消去の単位であるブロック(Block)を形成する。
【0043】
セルアレイ(Cell array)11は、ロム領域11−1、秘匿領域11−2、一般領域11−3を備える。
ロム領域(Rom area)11−1は、データ記録が禁止され、データ読み出しが許可される領域である。本例に係るロム領域11−1には、秘密情報XYを暗号化し、更に訂正符号が付与されたデータXYE(xe bits)が記録される。暗号化には、対称鍵暗号であるAES(Advanced Encryption Standard)などの暗号器を、暗号モードはCTR(Counter)、CBC(Cipher block chain)などを利用しても良いし、非対称暗号であるECDSA(楕円曲線暗号)やRSAなどを利用しても良い。また誤り訂正符号としては、BCH符号、Reed Solomon符号、LDPC(Low density parity check)符号などを利用してもよい。このように、本例は、いずれの暗号方法、訂正符号にも適用することが可能である。ここで、XYEとは、秘密情報XYが暗号化され、更に訂正符号が付与されたものとして表記される。また、(xe bits)とは、ビット数を表記する。
【0044】
秘匿領域(Hidden area)11−2は、NAND型フラッシュメモリ10の外に対してはデータ記録が禁止され、データ読出も禁止される領域である(Read Program inhibit)。本例に係る秘匿領域11−2には、上記認証に用いるX, Yに対応するデータXYが記録される。
【0045】
一般領域(User area)11−3は、データ記録およびデータ読み出しのいずれも自由に可能な領域である。一般領域11−3には、例えば、写真などの画像データや、動画データ等が記録される。
【0046】
尚、上記におけるロム領域、秘匿領域、一般領域は、物理的構成を異ならせることで実現してもよいし、物理的構成は同一であるがNAND型フラッシュメモリ内の論理的制御で実現してもよい。ここで、論理的制御とは、領域ごとにNAND型フラッシュメモリ外からのアクセスを制御する識別子を設け、これを保持し、NAND型フラッシュメモリが外部から当該領域へのアクセスを受領した際に、同識別子によってアクセス制御を行う、などの方法である。
【0047】
また、セルアレイ(Cell array)11を構成する個々のメモリセルは、複数ビットを記憶するものであってもよいし(MLC: Multi Level Cell)、1ビットを記憶するものであってもよい(SLC: Single Level Cell)。更に、ロム領域及び秘匿領域についてはSLCで利用する構成とし、一般領域についてはMLCで利用する構成としてもよい。この時、SLC領域とMLC領域とはセルアレイの物理的構成が異なっていてもよいし、MLCとして利用可能なメモリセルの一部のビットのみを使用して、疑似的なSLC領域として利用してもよい。
【0048】
データキャッシュ(Data Cache)12は、セルアレイ11から読出したデータを一時的に記憶する。
【0049】
バイアスドRNG(Biased RNG)14は、所定確率ηにて1となる乱数νを生成する。尚、バイアスドRNGの入力元として下記の乱数生成器を用いてもよく、その場合乱数生成器から出力される複数の乱数列に対して、論理積や論理和などの演算を行うことで所定確率ηに対応した乱数を生成することが可能である。
【0050】
乱数生成器(RNG: Random Number Generator)16は、認証に用いる乱数Nonce_N(a bit)を生成する。
【0051】
順序交換回路(Permutation & Concatenation)18は、両者が共有したXYを用いて、ホスト20から入力される乱数Nonce_Hと、メモリ10から入力される乱数Nonce_Nとから構成した乱数Nonce(c bits)を生成する。ここで、aはNonce_Nのビット長を意味し、bはNonce_Hのビット長を意味し、cは圧縮演算回路の1処理当たりに入力されるビット長を意味する。すなわち、順序交換回路(Permutation & Concatenation)から出力される個々の乱数Nonceは圧縮演算回路の1処理用のデータであり、1処理用にNonce_NとNonceHの総ビットを用いてもよいし、部分ごとに選択的に用いてもよい。
【0052】
圧縮演算回路(Compress (ex. inner product))13は、データキャッシュ12の出力XY(c bit each)と順序交換回路13の出力(c bits)について内積演算などの所定の演算を行い、データCを出力する。
【0053】
ビット毎加算回路C1は、圧縮演算回路13の出力ビットに対して、バイアスドRNGによって生成されたνを付与したz=C+νを、出力部15へ出力する。尚、前述の通り、ビット加算とは排他的論理和を意味する。すなわち、ビット毎加算回路は、2入力データのビット毎の排他的論理和を出力する。
【0054】
出力部15は、ビット毎加算回路C1の結果(z=C+ν)を、コントローラ19を介してホスト20に出力する。
【0055】
なお、上記セルアレイ11以外のデータキャッシュ12等の構成要素は、メモリコントローラ19に配置されることも同様に可能である。
【0056】
1−2.ホスト
本例に係るホスト(Host)20は、訂正処理部21、暗号の復号部22、鍵保持部23、データ一時記憶部25、圧縮演算部26、乱数生成部27、順序交換部29、判定部30等を備える。
【0057】
訂正処理部(ECC)21は、NAND型フラッシュメモリ10のロム領域11−1から読み出されたデータXYEに誤り訂正処理(ECC)を行う。
【0058】
復号部(Decrypt)22は、読み出したデータXYEに対してエラー訂正処理を行った後、鍵保持部23が保持する鍵KEYによりデータデータXYE復号して、XYを得る。
【0059】
データ一時記憶部(Data cache)25は、復号したXYを一時的に保持する。これにより、ホストデバイス20とNAND型フラッシュメモリ20は、秘密情報XYを共有できる。
【0060】
圧縮演算部(Compress (ex inner product))26は、データキャッシュ25の出力(c bit each)と順序交換回路29の出力(c bits)とについて内積演算などの所定の演算を行い、データCを出力する。
【0061】
乱数生成部(RNG)27は、ホストの一時乱数Nonce_H (b bit)を生成する。
【0062】
順序交換部(Permutation & Concatenation)29は、両者は共有したXYを用いて、ホスト20から入力される乱数Nonce_Hと、メモリ10から入力される乱数Nonce_Nとから構成した乱数Nonce(c bits)を生成する。
【0063】
判定部(Accept if Hwt(Z(+)C) ≦ t*clen)30は、圧縮演算部26の出力Cおよび出力部15の出力Zについて、上記のようにハミング重みHwt(Z(+)C)を行い、ハミング重みHwt(Z(+)C)が、所定値t*clenを下回った場合、秘密情報を保持しているとみなし、認証成功と判定する。ただし、η≦t<0.5、clenはZ(+)Cのビット長とする。
【0064】
このように、ホスト20は、バイアスドRNG処理27を除き、判定部30により同様の処理によって得られたCとzとを比較することで、被認証コンポーネントであるNAND型フラッシュメモリ10の正当性を確認する。
【0065】
尚、上記構成による同様の処理を複数回行うことで最終的に正当性を確認することも可能である。例えば、本図では、Cが複数ビットである場合を例としており、比較判定方法はzとCの加算ビット系列におけるハミング重みを判定に用いている。もし、Cが単一ビットであった場合、前述のHB+プロトコルと同様に、前述の処理は複数回行う必要があり、この場合はHB+プロトコルと同様にエラー変数の生起確率に基づいてzとCの不一致率を検査すればよい。
【0066】
1−3.変形例
上記に限られず、本例の構成は、以下のように必要に応じて、変形することが可能である。
【0067】
圧縮処理について、図1及び図2で示した比較例1、2に係る内積計算に対応しても良いが、必ずしも内積計算でなくともよい。例えば、圧縮処理を、LFSR(Linear Feedback Shift Registor)で構成する演算器に対してXYを基とするデータとNonce_H及びNonce_Nを基とするデータを入力し、全入力後のLFSR中のレジスタ値の一部もしくは全てを圧縮結果として用いてもよい。または、LFSRとしてCRC演算器を用いてもよい。更に、圧縮処理に用いる関数としてハッシュ関数を用いてもよい。ハッシュ関数は暗号器に基づいていてもよく、基づいていなくてもよい。いずれの演算方法を用いても本実施例にて提案している方法を適用することが可能である。また安全性の根拠となっているLPN問題に属していることに変わりはない。尚、ここで圧縮処理とは可逆圧縮であるか、非可逆圧縮であるか、は問わず、少なくとも入力されたデータよりも小さく、かつ入力データに依存するデータを出力する処理を意味する。
【0068】
また、圧縮計算部に対してNonce_HとNonceNを元に生成したNonceを送出する処理について説明する。NonceはNonce_HとNonceNを所定の順序によって結合し送出されるデータであり、結合・送出方法としては、単純な順送りデータ結合・送出、互いのデータを交互に挿入したインターリーブデータ結合・送出などの方法であってよく、また前述の方法により複数回データを送出しても良い。いずれにせよ、Nonceは、Nonce_N及びNonceHの少なくとも一部のデータより生成されたデータであり、cビット長のデータとなる。ここで、Nonce_Nのデータ長はaとおき、Nonce_Hのデータ長はbとおき、両者の合計データ長をdとおく。仮にc=dであり、かつデータを複数回送出しない場合、圧縮計算部からの出力は1ビットとなる。仮にc=dであり、かつデータを複数回送出する場合、圧縮計算部からの出力は1ビットが複数回出力される。仮にc<dであり、かつデータを複数回送出する場合、圧縮計算部からの出力は1ビットが複数回出力される。
【0069】
一方、Nonceとの圧縮を計算するXYにおいても、XY中のデータがcビット単位で圧縮計算部へと送出される。ここで、XYデータのビットサイズxはcと等しいもしくは整数倍である。cと等しい場合、圧縮計算部の出力は1ビットとなる。cの整数倍である場合、圧縮計算部の出力は1ビットが複数回となる。代表的な組み合わせについて記すと、
・c=d=xの場合、圧縮計算部の出力は1ビット
・c=d<xの場合、圧縮計算部の出力は1ビットが複数回
・c<d, c<xの場合、圧縮計算部の出力は1ビットが複数回
となる。尚、前記は圧縮計算部が2入力を1ビットに圧縮する場合の例であり、圧縮計算部が2入力を複数ビットに圧縮する場合は、1回あたりの出力値自体も複数ビットとなる。
【0070】
<2.認証フロー>
次に、図4に沿って、図3に示した構成におけるメモリシステムの認証フローについて説明する。
【0071】
認証開始(Start)すると、ステップS11の際、ホストデバイス10は、NAND型フラッシュメモリ10へXYEの読出し命令(Read XYE)を送出する。
【0072】
続いて、ステップS12の際、NAND型フラッシュメモリ10は、上記読出し命令に従って、XYEをセルアレイ11−1よりロード(load XYE)し、これをホストデバイス20へと送出する。
【0073】
続いて、ステップS13の際、ホストデバイス20は、受領したXYEに対して、上記復号処理を行い、XYを得る(Retrieve XY)。
【0074】
続いて、ステップS14の際、ホストデバイス20は、認証要求(Request authentication)を、NAND型フラッシュメモリ10へ送出する。ここで、認証要求にはNonce_Hを含んでいてもよい。
【0075】
続いて、ステップS15の際、NAND型フラッシュメモリ10は、Nonce_Hを受領し、XYをロードする(Load XY (if required))。
【0076】
続いて、ステップS16の際、NAND型フラッシュメモリ10は、Nonce_Nおよびνを生成する(Create Nonce_N, Create ν)。
【0077】
続いて、ステップS17の際、NAND型フラッシュメモリ10は、上記のように、生成されたνを付与し、Zを計算する。NAND型フラッシュメモリ10は、Nonce_N及びZをホスト20へと送出する。
【0078】
続いて、ステップS18の際、ホスト20は、それらデータNonce_N及びZを受領後、内積演算などの所定の演算を行い、データCを計算する。
【0079】
続いて、ステップS19の際、ホスト20は、ZとCのビット毎XOR値の系列に対してハミング重みHwt(Z(+)C)を計算し、これが所定値t*clenを下回るか否かの判定処理(Check Hwt(Z(+)C) ≦ t*clen)を行う。ここで、上記のように、tはNANDフラッシュメモリ10がZの算出時に用いたエラービットもしくはエラーベクトルνにおけるエラー付与確率(もしくはデータ中の1の出現確率)ηに基づく値であり、η≦t<0.5であるとする。またclenはCのビット長とする。
【0080】
続いて、ステップS20の際、上記ステップST19の判定結果が所定を下回らなかった場合(fail)、ホスト20は、失敗としてこの動作を停止する。
【0081】
続いて、ステップS21の際、上記ステップST19の判定結果が所定を下回った場合(Success)、ホスト20は、あらかじめ定められたラウンド数に達しているか否かを判定する(Enough round ?)。ここで、ラウンド数とは前記認証要求処理から前記判定処理までの一連の処理を指す。ラウンド数に達していない場合(No)には、再度認証要求処理(S14〜)を繰り返す。
【0082】
続いて、ステップS22の際、ラウンド数に達している場合(Yes)には、認証が成功したとみなし、ホストデバイス10は、必要に応じて、前記XYに基づきMedia IDを算出する処理を行う。Media IDの算出処理、Media IDの利用方法(S23以下)については後述する。
【0083】
以上の動作により、第1実施形態に係る認証フローを終了する(End)。
【0084】
尚、Nonce_N、Nonce_H、νのパラメータは、ラウンド毎に異なるものを用いる必要がある。また、NAND型フラッシュメモリ10が認証要求を受領した際、前認証要求時のXYがData Cacheにロードされたままであった場合、セルアレイからのXYのロードを省略し、Data cache内の値を用いてもよい。また、ステップS17の後、Data cache内のXYを消去してもよい。特に、NAND型フラッシュメモリ10がData cacheへのアクセス機能を外部に提供している場合、認証に要するデータZを計算した段階でData cache内の秘密情報XYを消去することはセキュリティー上有用である。
【0085】
<3.作用効果>
第1実施形態に係る構成およびその認証方法によれば、上記(I)〜(IV)を改善でき、少なくとも下記(1)の効果が得られる。
【0086】
(1)認証コンポーネント、被認証コンポーネント間で、異なる秘密情報XYの秘密状態を維持したまま共有でき、共有した秘密情報に基づく軽量な計算によって認証できる。
【0087】
本例に係るNAND型フラッシュメモリ10は、秘密情報XYを記録禁止・読出禁止領域である秘匿領域11−2に保持し、同秘密情報XYを暗号化し更に訂正符号を付与したXYEを記録禁止・読出許可領域であるロム領域11−1に保持する。さらに、ホスト20は、XYEを読み出してエラー訂正処理21、復号化処理22をする機能、および復号に用いる鍵23により、NAND型フラッシュメモリ10およびホスト20の両者で、秘密情報XYを共有することができる。そのため、認証・被認証コンポーネントは、共有した秘密情報XYで、認証を行うことができる(ST11〜ST23)。
【0088】
また、NAND型フラッシュメモリ10とホストデバイス20は、各々一時乱数を生成するRNG16,17、順序交換部18,29、圧縮計算部13,26、一時乱数のビット毎加算部C1,26、送出部15を備える。また、NAND型フラッシュメモリ10は、バイアスドRNG14を備える。ホスト20は、NAND型フラッシュメモリ20から送出されたZとホストデバイス内部で計算したCとを比較し認証を行う判定部30を備える。
【0089】
このように、第1実施形態では、秘密情報XYを記録禁止・読出禁止領域である秘匿領域11−2に保持し、これを用いてデータZを生成するため、秘匿性を保持できる。さらに、秘密情報XYを暗号化し更に訂正符号を付与したXYEを記録禁止・読出許可領域であるロム領域11−1に保持する。ホスト20は、ここから読み出したXYEに対して、エラー訂正処理21、および鍵23を用いた復号化処理22を行うことで、XYを共有する。そのため、認証・被認証コンポーネント間で、異なるXYを秘密状態を維持したまま共有できる。
【0090】
従って、第1実施形態に係る構成およびその認証方法によれば、認証・被認証コンポーネント間で、異なるXYを秘密状態を維持したまま共有でき、共有した秘密情報に基づく軽量な計算によって認証できる点で有利である。
【0091】
[第2実施形態]
次に、図5および図6を用い、第2実施形態に係る認証・被認証コンポーネントおよびその認証方法について説明する。なお、以下の説明において、上記第1実施形態と重複する部分の説明については、省略する。
【0092】
<構成例(メモリシステム)>
図5を用い、第2実施形態に係る構成例について説明する。
図示するように、第2実施形態に係る構成例では、NAND型フラッシュメモリ10が、ロム領域11−1,秘匿領域11−2に、それぞれ複数のXYEおよび複数のXYを記憶する点で、上記第1実施形態と相違する。ここで、iとjが異なる場合、XY[i]≠XY[j]、XYE[i]≠XYE[j]である。
【0093】
このように、複数のXYEおよび複数のXYの組を保持することで、秘密情報X及びY露見時の秘密情報の更新手段を提供することができる。仮にある1つのXYとXYEの組が中間者攻撃その他によって露見し、露見したXY及びXYEを流用した偽造デバイスが製造された場合でも、本例では、ホスト20が保持するKEY[1]23を更新(例えば、KEY[1]=> 更新KEY[2])することができる。このように、露見したXY及びXYE以外の組を利用することで、偽造デバイスの排除が可能となる。各XY[i]の暗号化に用いられるKEYはiが異なる場合、異なるものである方が望ましい。
【0094】
その他は、上記第1実施形態と実質的に同様であるため、詳細な説明を省略する。
【0095】
<認証フロー>
次に、図6に沿って、第2実施形態に係る認証動作について説明する。
第2実施形態では、NAND型フラッシュメモリ10内には複数のXY及び複数のXYEが記録されているため、ホスト20がいずれのXYを用いるかを選択することで、認証を行う。
【0096】
そのため、第2実施形態では、ステップS14の際に、ホスト20が、認証を要求する(Request authentication)場合、いずれのXYを用いるかを指定するパラメータiを、乱数Nonce_Hとともに、NAND型フラッシュメモリ10に送出する点で、相違する。
【0097】
その他は、上記第1実施形態と実質的に同様であるため、詳細な説明を省略する。
【0098】
<作用効果>
第2実施形態に係る認証・被認証コンポーネントおよびその認証方法によれば、上記(I)〜(IV)を改善でき、少なくとも上記(1)の効果が得られる。
【0099】
さらに、第2実施形態では、NAND型フラッシュメモリ10が、ロム領域11−1、秘匿領域11−2に、それぞれ複数のXYEおよび複数のXYを記憶する点で、上記第1実施形態と相違する。
【0100】
このように、複数のXYEおよび複数のXYの組を保持することで、秘密情報X及びY露見時の秘密情報の更新手段を提供することができる。仮にある1つのXYとXYEの組が中間者攻撃その他によって露見し、露見したXY及びXYEを流用した偽造デバイスが製造された場合でも、本例では、ホスト20が保持するKEY[1]23を更新(例えば、KEY[1]=> 更新KEY[2])することができる。
【0101】
そのため、第2実施形態に係る認証フローでは、ステップS14の際に、ホスト20が、認証を要求する(Request authentication)場合、いずれのXYを用いるかを指定するパラメータiを、乱数Nonce_Hとともに、NAND型フラッシュメモリ10に送出する。
【0102】
このように、第2実施形態では、NAND型フラッシュメモリ10が、複数のXY及び複数のXYEを有し、ホストデバイスからの命令によりXYEを選択的に送出する機能を有し、ホストデバイスからの命令により認証に用いるXYを選択的に設定する。また、ホストデバイスは、自身が保持する鍵に対応するXYEを選択的に読み出す機能を有し、それを復号する機能を有し、また自身が保持する鍵を所定の条件下で更新する機能を有する。
【0103】
その結果、露見したXY及びXYE以外の組を利用することで、偽造デバイスの排除が可能となる点で有利である。
【0104】
[第3実施形態]
次に、図7乃至図9を用い、第3実施形態に係る認証・被認証コンポーネントおよびその認証方法について説明する。
【0105】
<構成例(メモリシステム)>
図7を用い、第3実施形態に係る構成例について説明する。
図示するように、本例に係るNAND型フラッシュメモリ10は、ロム領域11−1B、秘匿領域11−2Bに、複数のXYsubEおよび複数のXYsubをそれぞれ記憶する点で、上記第2実施形態と相違する。ここで、iとjが異なる場合、XYsub[i]≠XYsub[j]、XYsubE[i]≠XYsubE[j]である。XYsubEはXYsubを暗号化した後、訂正符号を付与したデータである。
【0106】
XYsubは、XYと同様に記録禁止・読出禁止領域(秘匿領域)11−2Bに記録され、XYsubEは、XYEと同様に記録禁止・読出許可領域(ロム領域)11−1Bに記録される。
【0107】
ここで、XYmainのデータサイズは、XYsubよりも大きい(データサイズ:XYmain > XYsub)。また、XYmainとXYsubから構成されるデータが、前述の秘密情報XYに対応する。
【0108】
このように、第3実施形態では、XYの組に加え、XYsub[i], XYsubE[i]の組を更に備えるため、秘密情報X及びYを効率的に記録することができる点で有利である。詳細については、後述する。
【0109】
さらに、NAND型フラッシュメモリ10は、上記XYsubを格納するためのデータキャッシュ12B、およびXYmainと XYsubとをビット毎加算するためのビット毎加算部C2を備える。ビット毎加算部C2の出力値が、前述の認証に用いられるXY値に相当する。ここで、XYmainとXYsubのビット長が異なることから、ビット加算C2においては、XYsubの繰り返しデータが適用される。
【0110】
例えば、本図にあるように所定の演算としては、ビット加算が考えられ、XYmainのデータサイズがXYsubのデータサイズの整数倍であった場合、XYmainのデータを保持するData cacheからはXYmainが順送りに送出され、XYsubのデータを保持するData cacheからはXYsubが順送りかつ繰り返し送出される構成が考えられる。XYsubを保持するData cacheはリングバッファと考えてもよい。また、ビット毎加算以外にもXYmainとXYsubの結合値をXYとしてもよいし、XYmainとXYsubのインターリーブ結合値をXYとしてもよいし、XYmainとXYsubをLFSRに入力しLFSRの所定レジスタの値をXYとしてもよい。すなわち、本実施例ではビット毎加算部としているが、2入力から構成したデータをXYとして用いるいずれの演算方法も適用可能である。
【0111】
同様に、ホスト20は、読み出したXYsubEに対応するための、訂正処理部21B、暗号の復号部22B、鍵保持部23B、データ記憶部25B、加算部C3を更に備える。ホスト20は、上記構成により、同様に、エラー訂正処理を行い、対応するKEY_XYsubにより復号することでXYsubを得る。これにより、ホストデバイスとNAND型フラッシュメモリ間で、秘密情報XYmain及びXYsubを共有できる。ここで、本図においてはKEY_XYmainとKEY_XYsubは異なるオブジェクトとして描かれているが、実際には同じ鍵であっても良い。また、各XYsub[i]の暗号化に用いられるKEY_XYsubはiが異なる場合、異なるものである方が望ましい。さらに、ホストデバイス20、メモリ10は、XYmainとXYsubを用いて所定の演算を行ったXY値により、認証処理を行う。
【0112】
<認証フロー>
次に、図8に沿って、第3実施形態に係る認証動作について説明する。
第3実施形態では、NAND型フラッシュメモリ10内にはXYmainに加えてXYsubが、またそれらを暗号化したXYmainE及びXYsubEが記録される。
【0113】
そのため、図示するように、対応するステップS13において、ホスト10は、XYmainE , XYsubEを更に読み出して復号をし、秘密情報XYmain,XYsubに基づく秘密情報XYを生成する(Create XY)。続いて、ホスト20は、秘密情報XYmainとXYsubから導出された情報を用いて、同様の認証を行う。
【0114】
また、NAND型フラッシュメモリ10側においても同様に、ステップS15において、読み出した秘密情報XYmain,XYsubに基づいて秘密情報XYを生成する(Create XY)点で、上記第2実施形態と相違する。
【0115】
<作用効果>
第3実施形態に係る認証・被認証コンポーネントおよびその認証方法によれば、上記(I)〜(IV)を改善でき、少なくとも上記(1)の効果が得られる。さらに、第3実施形態では、(2)の効果が得られる。
【0116】
(2)秘密情報X,Yを効率的に記録することができ、記録時間を高速化できる点で有利である。
【0117】
第3実施形態では、NAND型フラッシュメモリ10が、複数のXYsub及び複数のXYsubEを有し、ホスト20からの命令によりXYsubEを選択的に送出し、ホスト20からの命令により認証に用いるXYsubを選択的に設定し、選択されたXYsubとXYを所定の演算で導出した値により認証を行う。
【0118】
また、ホストデバイスは、自身が保持する鍵23Bに対応するXYsubEを選択的に読み出し、それを復号する機能22Bを有し、また自身が保持する鍵23Bを所定の条件下で更新する機能を更に有し、選択したXYsubとXYmainを所定の演算で導出した値により認証30を行う。
【0119】
このように、XYmainの組に加え、XYsub[i], XYsubE[i]の組を更に備えるため、秘密情報X及びYを効率的に記録することができる点で有利である。
【0120】
より具体的には、例えば、図9のように示される。図示するように、NAND型フラッシュメモリの製造工程において、XYmain、XYmainE、XYsub、XYsubEの複数の組は、XY発生装置(XY GEN)により生成され、書き込み装置(Writer)により、複数のNAND型フラッシュメモリ(ここでは、Chip1〜Chip4)にデータ書き込みがされる。
【0121】
ここで、XYmain及びXYmainEのデータは、複数のチップChip1〜Chip4から構成される集団内(例えばロット)で同一のデータで良い。一方、XYsub及びXYsubEは、チップChip1〜Chip4毎に異なるデータ(XYsub1〜XYsub4及びXYsubE1〜XYsubE4)とする必要がある。
【0122】
このように、第3実施形態では、データ書き込み動作において、データ量の多いXYmain及びXYmainEを複数のチップChip1〜Chip4で共通化することにより、メモリへのデータ書き込みプロセスを最適化でき、効率的に記録することが可能となる。
【0123】
仮に、XYmain及びXYmainEをハードワイヤードで構成する場合、実際に記録するデータは、データサイズが小さいXYsub及びXYsubEとなり記録時間を短縮できる。また、仮にXYmain及びXYmainEをセル上に記録する場合において、集団内で同一であることにより、NAND型フラッシュメモリへのデータ記録装置に対して記録データを転送する時間を短縮できる。先に述べたように、記録時間の増加は、コストの増加となるため、第3実施形態によれば、製造コストを低減することができるというメリットも大きい。
【0124】
[第4実施形態(多重記録される一例)]
次に、図10および図11を用い、第4実施形態に係る認証・被認証コンポーネントおよびその認証方法について説明する。
【0125】
<構成例(メモリシステム)>
図10を用い、第4実施形態に係る構成例について説明する。
第4実施形態では、メモリ10の秘匿領域11−2に、複数のXY[i]を多重に複製した情報11−2A,11−2B,11−2Cを更に有する点で、上記第2実施形態と相違する。
【0126】
すなわち、第2実施形態におけるXY[i]を複製したデータは、図10において、XY[i,1],XY[i,2],...,XY[i,n]によって示され、1≦i≦mに対しXY[i,1]=XY[i,2]=…=XY[i,n]である。また、1≦j≦nに対しXY[1,j]≠XY[2,j]≠…≠XY[m,j]である。
【0127】
ここで、XYEがECCが付与されている一方で、XYにはECCが付与されていないため、NAND型フラッシュメモリ内でセルから読み出したデータにエラーが含まれている場合、NAND型フラッシュメモリが認証に用いるXYの完全性が失われることも考えられる。しかしながら、本例のように、複数のXY[i]を複製した情報11−2A,11−2B,11−2Cを更に有することにより、検査・選択部12−0により、前記エラーが含まれているかどうかを複製データ間でのデータ比較により検出することができる。
【0128】
そのため、本例のメモリは、XY[i]を複製した情報11−2A,11−2B,11−2Cに対応するための検査・選択部(Check sum & select)12−0を更に備える点で、第2実施形態と相違する。
【0129】
図10において、セル11−2からロードされた少なくとも2つ以上のXYのデータセットは所定の上記同様の方法により比較を行うことでエラーが含まれているか否かを検査する。仮にエラーが含まれていた場合もしくはエラーが除去できない場合、異なる2つ以上のXYのデータセットを再度ロードし、同様に検査する。これをエラーが含まれていないもしくは除去できるデータセットが見つかるまで繰り返し、同データセットが見つかった場合それを認証に用いる。上記所定の方法の例としては、2つのXYをロードし、ビット毎にXOR値を算出した後、XOR値がすべて0であるかどうか、により検査する方法が考えられる。また、3つ以上のXYをロードし、多数決判定によってビット毎にエラーを除去したXYを得る方法も考えられる。また、本図においては、XYの複製データはすべて同一データとしているが、複製データのうち奇数番号のデータと偶数番号のデータの極性が反転しているように相補関係にあるデータを構成して事前に記録しておく方法も考えられる。この場合、前記相補関係にある2つのXYをロードし、ビット毎にXOR値を算出した後、XOR値がすべて1であるかどうか、により検査することが可能である。
【0130】
<認証フロー>
次に、図11に沿って、第4実施形態に係る認証動作について説明する。
図示するように、第4実施形態では、NAND型フラッシュメモリ10の秘匿領域11−2内に、複数のXYが多重記録される。
【0131】
そのため、ステップS15の際、NAND型フラッシュメモリ10は、少なくとも2つ以上のXYを読み出し、比較し、エラーを含んでいないXYを用いて認証を行う(Load / compare XYs)。
【0132】
<作用効果>
第4実施形態に係る認証・被認証コンポーネントおよびその認証方法によれば、上記(I)〜(IV)を改善でき、少なくとも上記(1)の効果が得られる。
【0133】
さらに、第4実施形態によれば、メモリ10の秘匿領域11−2に、複数のXY[i]を複製した情報11−2A,11−2B,11−2Cを更に有する。
【0134】
ここで、XYEがECCが付与されている一方で、XYにはECCが付与されていないため、NAND型フラッシュメモリ内でセルから読み出したデータにエラーが含まれている場合、NAND型フラッシュメモリが認証に用いるXYの完全性が失われることも考えられる。
【0135】
しかしながら、第4実施形態によれば、複数のXY[i]を複製した情報11−2A,11−2B,11−2Cを更に有することにより、検査・選択部12−0により、前記エラーが含まれているかどうかを複製データ間でのデータ比較により検出することができる。結果、メモリ10内でセルから読み出したデータにエラーが含まれている場合であっても、メモリ10が認証に用いるXYの完全性が失われることを防止できる点で更に有利である。
【0136】
[第5実施形態]
次に、図12および図13を用い、第5実施形態に係る認証・被認証コンポーネントおよびその認証方法について説明する。
【0137】
<構成例(メモリシステム)>
図12を用い、第5実施形態に係る構成例について説明する。第5実施形態に係る構成例は、上記第3、第4実施形態を組み合わせたものに関する一例である。
【0138】
図示するように、第5実施形態に係るNAND型フラッシュメモリ10は、秘匿領域11−2に、XYsub及びXYsubEについても複製データXYsub[i,j]及びXYsubE[i,j]を記録する点で、上記第4実施形態と相違する。
【0139】
また、上記に対応するための検査・選択部12−0Bおよびデータキャッシュ12Bを更に備える。
【0140】
<認証フロー>
次に、図13に沿って、第5実施形態に係る認証動作について説明する。
第5実施形態では、NAND型フラッシュメモリ10内に、更にXYsubも多重記録される(XYsub[i,j]及びXYsubE[i,j])。
【0141】
そのため、ステップS15の際、NAND型フラッシュメモリ10は、更に少なくとも2つ以上のXYsubを読み出し、比較し、エラーを含んでいないXYsubを用いて認証を行う(Load / compare XYs and XYsubs)。
【0142】
<作用効果>
第5実施形態に係る認証・被認証コンポーネントおよびその認証方法によれば、上記(I)〜(IV)を改善でき、少なくとも上記(1)の効果が得られる。
【0143】
さらに、第5実施形態によれば、NAND型フラッシュメモリ10は、秘匿領域11−2に、XYsub及びXYsubEについても複製データXYsub[i,j]及びXYsubE[i,j]を記録する。
【0144】
必要に応じて、本例のような構成および方法を適用することが可能である。
【0145】
[第6実施形態]
次に、図14および図15を用い、第6実施形態に係る認証・被認証コンポーネントおよびその認証方法について説明する。
【0146】
<構成例(メモリシステム)>
図14を用い、第6実施形態に係る構成例について説明する。
第6実施形態でも同様に、NAND型フラッシュメモリ10が、更に複数のXY[i]を複製した情報を有する。すなわち、先の第2実施形態におけるXY[i]を複製したデータは本図においてXY[i,1],XY[i,2],...,XY[i,n]によって示され、1≦i≦mに対しXY[i,1]=XY[i,2]=…=XY[i,n]である。また、1≦j≦nに対しXY[1,j]≠XY[2,j]≠…≠XY[m,j]である。
【0147】
ここで、XYデータを複製することは第4実施形態と同様であるが、本第6実施形態においては、NAND型フラッシュメモリ10側では複製データの比較処理を行わず、その代わりにホスト20で比較処理を行う点で、相違する。そのため、本例では、ホスト20が、多数決判定部(Majority check)30を備える点で、相違する。
【0148】
すなわち、NAND型フラッシュメモリ10は、ホスト20により指定されたiに応じ、XY[i,1],XY[i,2],...,XY[i,n]のうち少なくとも2つ以上をロードし、各々のXYに対して前述の認証処理を行う。ここで、各々のXYに対しては同一のNonce_N及び同一のNonce_Hを利用し、またバイアスドRNGによって生成されたνについても同一のものを適用する。
【0149】
NAND型フラッシュメモリ10の送信部15は、複数のXYに対して、他のパラメータが同一な条件で複数のz(z[i,1],z[i,2],…,z[i,n])を計算し、ホスト20に送出する。
【0150】
ホストデバイスは、複数のz(z[i,1],z[i,2],…,z[i,n])を受領した後、多数決判定部31により、多数決判定を行い、単一のzを得る。ここで、各zが複数のビット要素で構成されていた場合、圧縮計算部の出力が複数ビットからなる場合、前記多数決判定はビット要素毎に行う。
【0151】
ホストデバイスは、多数決判定によってエラーを除去したZを得たのち、前述と同様の判定処理30を行うことで、NAND型フラッシュメモリ10を認証する。
【0152】
<認証フロー>
次に、図15に沿って、第6実施形態に係る認証動作について説明する。
第6実施形態では、NAND型フラッシュメモリ10内に多重記録されているXYを用いて、NAND型フラッシュメモリが複数のZを計算し、送出し、ホストデバイスは複数のZを多数決処理することで単一のZを得て、認証を行う。
【0153】
そのため、ステップS17の際、NAND型フラッシュメモリ10は、計算した複数のZ,jをホスト20に送信する。
【0154】
続いて、ステップS18の際、ホスト20は、複数のZの多数決判定部(Majority check)を更に行う点で、相違する。
【0155】
<作用効果>
第6実施形態に係る認証・被認証コンポーネントおよびその認証方法によれば、上記(I)〜(IV)を改善でき、少なくとも上記(1)の効果が得られる。
【0156】
さらに、第6実施形態では、NAND型フラッシュメモリ10が、更に複数のXY[i]を複製した情報を有する。さらに、ホスト20が、多数決判定部(Majority check)30を備える。
【0157】
そのため、計算資源に制約のあるNAND型フラッシュメモリ10での比較処理を軽減でき、計算資源に余裕のあるホスト20に比較処理(多数決処理)30を依頼することができる。結果、NAND型フラッシュメモリ10へのコスト増加を抑制することができ、エラーの除去が可能となる点で有利である。
【0158】
[第7実施形態]
次に、図16および図17を用い、第7実施形態に係る認証・被認証コンポーネントおよびその認証方法について説明する。
【0159】
<構成例(メモリシステム)>
図16を用い、第7実施形態に係る構成例について説明する。第7実施形態は、上記第3、第6実施形態を組み合わせたものの一例に関する。
【0160】
図示するように、NAND型フラッシュメモリ10は、XYsub及びXYsubEについても複製データ11−2B,11−1Bを更に記録する。上記第6実施形態と同様に、複数のXYに対する認証用データzを算出して算出部15でホスト20に送信し、ホスト20側で多数決処理30を行う。
【0161】
<認証フロー>
次に、図17に沿って、第7実施形態に係る認証動作について説明する。
第7実施形態では、NAND型フラッシュメモリ10内に、多重記録されているXYmain及びXYsubを用いて、NAND型フラッシュメモリが複数のZを計算し、送出し、ホストデバイスは複数のZを多数決処理することで単一のZを得て、認証を行う。
【0162】
そのため、ステップS11の際、ホスト20は、多重記録されているXYmain及びXYsubの読み出し要求(Read XYmainE and XYsubE)を行う。
【0163】
続いて、ステップS12の際、NAND型フラッシュメモリ10は、多重記録されているXYmain及びXYsubを読み出し(Load XYmainE and XYsubE)、ホスト20に送信(XYmainE and XYsubE)する。
【0164】
<作用効果>
第7実施形態に係る認証・被認証コンポーネントおよびその認証方法によれば、上記(I)〜(IV)を改善でき、少なくとも下記(1)の効果が得られる。
【0165】
さらに、第7実施形態では、NAND型フラッシュメモリ10が、XYsub及びXYsubEについても複製データ11−2B,11−1Bを更に記録する。上記第6実施形態と同様に、複数のXYに対する認証用データzを算出して算出部15でホスト20に送信し、ホスト20側で多数決処理30を行う。
【0166】
このように、必要に応じ、本例を適用することが可能である。
【0167】
[第8実施形態(Media ID retrieve process)]
次に、図18乃至図21を用い、第8実施形態について説明する。第8の実施形態は、上記ステップS22において、メディアID(Media ID)を算出する種々の処理(Media ID retrieve process)に関するものである。
【0168】
ID retrieve process(1)
ID retrieve process(1)は、図18のように示される。図示するように、この例(1)では、ステップRS1の際、上記の認証に用いられたXYmain及びXYsubに対して、各々一方向性関数処理(One-way function)が行われる。その結果が、Media IDとして扱われる。
【0169】
ここで、一方向性関数処理としては、例えば、SHA-1、SHA-256、AEG-Hなどの暗号に基づく一方向性演算を用いることが可能である。
【0170】
ID retrieve process(2)
ID retrieve process(2)は、図19のように示される。図示するように、この例(2)では、ステップRS1,RS2の際、上記認証に用いられたXYmain及びXYsubは、前述の認証処理においてXYmainE及びXYsubEの復号に用いられたKEY_XYmainとKEY_XYsubのいずれか一方に相当するKEY_XYを用いて、更に復号処理(Decode)が行われる。
【0171】
続いて、ステップRS3の際、同様の一方向性関数処理(One-way function)が行われ、その結果がMedia IDとして扱われる。
【0172】
ID retrieve process(3)
ID retrieve process(3)は、図20のように示される。図示するように、この例(3)では、ステップRS1,RS2の際、上記の認証に用いられたXYmain及びXYsubは、上記認証処理においてXYmainE及びXYsubEの復号に用いられたKEY_XYmain及びKEY_XYsubを用いて、更に復号処理(Decode)が行われる。
【0173】
続いて、ステップRS3の際、同様の一方向性関数処理(One-way function)が行われ、その結果がMedia IDとして扱われる。
【0174】
ID retrieve process(4)
ID retrieve process(4)は、図21のように示される。図示するように、この例(4)では、ステップRS1,RS2の際、ステップRS1,RS2の際、上記の認証に用いられたXYmain及びXYsubは、上記認証処理においてXYmainE及びXYsubEの復号に用いられたKEY_XYmain及びKEY_XYsub と異なるKEY_XYmain2及びKEY_XYsub2を用いて、更に復号処理(Decode)が行われる。ここで、KEY_XYmain2及びKEY_XYsub2は同一の値であってもよい。
【0175】
続いて、ステップRS3の際、同様の一方向性関数処理(One-way function)が行われ、その結果がMedia IDとして扱われる。
【0176】
[第9実施形態(Media ID binding process)]
次に、図22乃至図23を用い、第9実施形態について説明する。第9実施形態は、Media IDの利用方法(Media ID binding process)に関するものである。
ここで、例えば、商用動画コンテンツ等を物理媒体に記録し、再生する場合、同物理媒体に固有な識別情報をコンテンツ記録時の暗号処理に用いてコンテンツを同物理媒体にバインドする方法がとられる。
【0177】
コンテンツ再生時は、前記識別情報に基づく復号処理もしくは検査処理などを行い、再生された識別情報とコンテンツ記録時の暗号処理に用いられた識別情報が一致しない場合、コンテンツの再生を停止するなどの方法がとられる。ここで物理媒体としては、例えば、SDカードなどのリムーバブルメディアの場合や、携帯電話などに内蔵されているエンベデッドメモリなどが考えられる。
【0178】
いずれにおいても、前記方法の目的は、あるメディアに記録された暗号処理済みコンテンツを、別のメディアへと不正複製された場合、不正複製コンテンツの再生を停止させることである。そのための情報として、メディア毎に異なる上記識別情報(メディアID)を利用している。
【0179】
ID binding process(1)
ID binding process(1)は、図22のように示される。図示するように、この例(1)では、MAC(Message Authentication Code)生成処理を行い、これを不正複製の防止に用いる。
【0180】
具体的には、ステップBP1の際、前記識別情報としてMedia IDを用いる方法例として、コンテンツ暗号化に用いられるContent Keyにより、Media ID及びその他の情報に対し、MAC生成処理を行う。
【0181】
続いて、コンテンツをメディアに記録する装置においては、同MACを生成し、これをメディアに記録しておく。コンテンツをメディアから再生する装置においては、記録されているMACをMedia ID、Content Keyにより検査し、正当性が確認された場合はコンテンツを再生し、正当性が確認されない場合はコンテンツの再生を停止するなどの方法を適用することが可能である。
【0182】
ID binding process(2)
ID binding process(2)は、図23のように示される。図示するように、この例(1)では、コンテンツ暗号化に用いられるContent Keyを生成するための情報として、Media IDを利用する。
【0183】
ステップBP1の際、コンテンツをメディアに記録する装置においては、Content Key Precursorと、Media ID及びContent Key Precursorを一方向性処理(One-way function)する。
【0184】
メディアに記録する装置においては、処理されたContent Keyによって暗号化されたコンテンツを記録しておく。
【0185】
コンテンツをメディアから再生する装置においては、記録されているContent Key PrecursorとMedia IDを同様の一方向性処理をすることでContent Keyを得て、コンテンツの復号と再生を行う。ここで、Media IDが一致しない場合、すなわち記録されているデータが異なるメディアに不正複製された場合など、には導出したContent Keyとコンテンツ暗号化に用いられているContent Keyが一致しないため、コンテンツの復号に失敗し、再生は停止される。
【0186】
[第10実施形態(メモリ、記憶・再生ホストの一例)]
次に、図24を用い、第10実施形態について説明する。第10実施形態は、上記実施形態の構成を組み合わせたメモリカード(inc. NAND chip)10,記録ホスト(Recoding Device)20A,再生ホスト(Playback Device)20Bのシステムにおいて、上記認証を行い、上記メディアIDを用い、ホスト20Bにてコンテンツを再生する一例に関するものである。
【0187】
記録ホスト(Recoding Device)20Aがコンテンツをメモリカード(inc. NAND chip)10に記録するに際し、まずメモリカード(inc. NAND chip)10と記録ホスト(Recoding Device)20Aの間で、上記実施形態における認証処理を行う。ここで、認証処理が成立した後、上記実施形態におけるID retrieval processを行う。次いで、上記実施形態におけるID binding process(1)により生成したMACをメモリカード(inc. NAND chip)10に記録する。合わせて、ID binding process(1)において用いたContent Keyにより暗号化したコンテンツ(Encrypted Content)も記録する。更に、Content Key自身も安全な形で記録する。ここで安全な形とは、メモリカード(inc. NAND chip)10と記録ホスト(Recoding Device)20Aの間で認証が成立した後にアクセスが可能となるモリカード(inc. NAND chip)10内の記録エリアであってもよい。また、ここでいう認証は本願において記載されている認証方法でもよいし、メモリカード(inc. NAND chip)10が持つ別の認証機能によって実現してもよい。また、安全な形の別な例としては、メモリカード(inc. NAND chip)10もしくは記録ホスト(Recoding Device)20Aが有する鍵によって暗号化した形であってもよい。
【0188】
再生ホスト(Playback Device)20Bがコンテンツをメモリカード(inc. NAND chip)10から読出し、再生するに際し、まずメモリカード(inc. NAND chip)10と再生ホスト(Playback Device)20Bの間で、上記実施形態における認証処理を行う。ここで、認証処理が成立した後、上記実施形態におけるID retrieval processを行う。次いで、上記実施形態におけるID binding process(1)に対応する処理により、メモリカード(inc. NAND chip)10に記録されているMACを検証する。その後、Content Keyをメモリカード(inc. NAND chip)10より読出し、暗号化したコンテンツ(Encrypted Content)の復号を行うことでコンテンツを再生する。
【0189】
[第11実施形態(メモリ、記憶・再生ホストのその他の一例)]
次に、図25を用い、第11実施形態について説明する。第11実施形態は、上記実施形態の構成を組み合わせたメモリカード(inc. NAND chip)10、記録ホスト(Recoding Device)20A、再生ホスト(Playback Device)20Bのシステムにおいて、上記認証を行い、上記メディアIDを用い、ホスト20Bにてコンテンツを再生する一例に関するものである。
【0190】
記録ホスト(Recoding Device)20Aがコンテンツをメモリカード(inc. NAND chip)10に記録するに際し、まずメモリカード(inc. NAND chip)10と記録ホスト(Recoding Device)20Aの間で、上記実施形態における認証処理を行う。ここで、認証処理が成立した後、上記実施形態におけるID retrieval processを行う。次いで、上記実施形態におけるID binding process(1)により生成したContent Keyをメモリカード(inc. NAND chip)10に記録する。合わせて、ID binding process(2)において生成したContent Keyにより暗号化したコンテンツ(Encrypted Content)も記録する。更に、Content Key Precursor自身も安全な形で記録する。
【0191】
ここで安全な形とは、メモリカード(inc. NAND chip)10と記録ホスト(Recoding Device)20Aの間で認証が成立した後にアクセスが可能となるモリカード(inc. NAND chip)10内の記録エリアであってもよい。また、ここでいう認証は本願において記載されている認証方法でもよいし、メモリカード(inc. NAND chip)10が持つ別の認証機能によって実現してもよい。また、安全な形の別な例としては、メモリカード(inc. NAND chip)10もしくは記録ホスト(Recoding Device)20Aが有する鍵によって暗号化した形であってもよい。
【0192】
再生ホスト(Playback Device)20Bがコンテンツをメモリカード(inc. NAND chip)10から読出し、再生するに際し、まずメモリカード(inc. NAND chip)10と再生ホスト(Playback Device)20Bの間で、上記実施形態における認証処理を行う。ここで、認証処理が成立した後、上記実施形態におけるID retrieval processを行う。次いで、上記実施形態におけるID binding process(2)に対応する処理により、メモリカード(inc. NAND chip)10に記録されているContent Key PrecursorからContent Keyを生成する。その後、暗号化したコンテンツ(Encrypted Content)の復号を行うことでコンテンツを再生する。
【0193】
[第12実施形態(メモリ、コントローラ、ホストの一例)]
次に、図26を用い、第12実施形態について説明する。第12実施形態は、上記実施形態に適用可能な上記NAND型フラッシュメモリ10、コントローラ19、およびホスト20の一例に関するものである。本例では、メモリカードとしてSDカード(登録商標)を一例に挙げる。
【0194】
図示するように、本例では、メモリカードと接続されるホスト装置の機能ブロックも示されている。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も本発明の範疇に含まれる。
【0195】
ホスト20は、アプリケーション、オペレーティング・システム等のソフトウェア211を備えている。ソフトウェア211は、ユーザから、メモリカードへのデータの書き込み、メモリカードからのデータの読み出しを指示される。ソフトウェア211は、データの書き込みおよび読み出しをファイルシステム212に指示する。ファイルシステム212は、管理対象の記憶媒体に記録されているファイルデータを管理するための仕組みであり、記憶媒体の記憶領域内に管理情報を記録し、この管理情報を用いてファイルデータを管理する。
【0196】
ホスト20は、SDインターフェース213を有する。SDインターフェース213は、ホスト20とメモリカードとの間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなる。ホスト20は、SDインターフェース213を介してメモリカードと通信を行う。SDインターフェース213は、ホスト20とメモリカードとが通信するのに必要な様々な取り決めを規定し、後述のメモリカードのSDインターフェース231と相互に認識可能な各種のコマンドの組を備えている。また、SDインターフェース213は、メモリカードのSDインターフェース231と接続可能なハードウェア上の構成(ピンの配置、数等)も含む。
【0197】
メモリカードは、NAND型フラッシュメモリ10、メモリ10を制御するためのコントローラ19を有する。メモリカードは、ホスト20に接続されたとき、およびオフ状態のホスト20に挿入された状態でホスト20がオンされたときに電源供給を受けて初期化動作を行った後、ホスト1からのアクセスに応じた処理を行う。
【0198】
NAND型メモリ10は、データを不揮発に記憶し、複数のメモリセルからなるページと呼ばれる単位でデータの書き込みおよび読み出しを行う。ページには、各ページに固有の物理アドレスが割り当てられている。また、メモリ10は、複数のページからなる物理ブロック(消去ブロック)と呼ばれる単位でデータの消去を行う。なお、物理ブロック単位で物理アドレスが割り当てられていることもある。
【0199】
コントローラ19は、メモリ10によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ(または物理ブロック)が、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ(または物理ブロック)が消去状態(何も書き込まれていない、または無効なデータを保持している状態)であるかを管理することを含んでいる。
【0200】
コントローラ19は、SDインターフェース31、MPU(micro processing unit)32、ROM(read only memory)33、RAM(『random access memory』)34、NANDインターフェース35を含んでいる。
【0201】
SDインターフェース31は、ホスト20とコントローラ19との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなり、SDインターフェース13と同様に、両者の通信を可能とする取り決めを規定し、各種のコマンドの組を備え、ハードウェア上の構成(ピンの配置、数等)も含む。メモリカード(コントローラ22)は、SDインターフェース31を介してとホスト1と通信を行う。SDインターフェース31は、レジスタ36を含んでいる。
【0202】
MPU32は、メモリカード2全体の動作を司る。MPU32は、例えば、メモリカード2が電源供給を受けた際に、ROM33内に格納されているファームウェア(制御プログラム)をRAM34上に読み出して所定の処理を実行する。MPU32は、制御プログラムに従って各種のテーブルをRAM34上で作成したり、ホスト1から受けたコマンドに従ってメモリ21に対する所定の処理を実行したりする。
【0203】
ROM33は、MPU32により制御される制御プログラムなどを格納する。RAM34は、MPU32の作業エリアとして使用され、制御プログラムや各種のテーブルを一時的に記憶する。このようなテーブルとして、ファイルシステム12によってデータに割り当てられた論理アドレスを有するデータを実際に記憶しているページの物理アドレスの変換テーブル(論物テーブル)が含まれる。NANDインターフェース35は、コントローラ22とメモリ21とのインターフェース処理を行う。
【0204】
NAND型フラッシュメモリ10内の記憶領域は、保存されるデータの種類に応じて、例えばシステムデータ領域、機密データ領域、保護データ領域、ユーザデータ領域等を含んでいる。システムデータ領域は、コントローラ19が、その動作に必要なデータを保存するためにメモリ10内で確保しておく領域である。機密データ領域は、暗号化に用いる鍵情報や認証時に使用する機密データを保存しており、ホスト20からアクセスできない。保護データ領域は、重要なデータ、セキュアなデータを格納する。ユーザデータ領域は、ホスト20が自由にアクセスおよび使用することが可能で、例えばAVコンテンツファイルや画像データ等のユーザデータを格納する。なお、コントローラ19は、ユーザデータ領域の一部を確保し、自身の動作に必要な制御データ(論物テーブル等)を保存する。
【0205】
本発明のいくつか実施形態を説明したが、これら実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0206】
10…NAND型フラッシュメモリ(被認証コンポーネント)、19…コントローラ、20…ホストデバイス(認証コンポーネント)。

【特許請求の範囲】
【請求項1】
秘密情報XYと前記秘密情報XYが少なくとも2回以上多重に複製された秘密情報XYと、前記秘密情報XYが暗号化された秘密情報XYEとを記憶する被認証コンポーネントと、前記被認証コンポーネントを認証する認証コンポーネントとの間における認証方法は、
前記認証コンポーネントが、前記被認証コンポーネントから受領した前記秘密情報XYEに対して、復号処理を行い、前記秘密情報XYを共有するステップと、
前記被認証コンポーネントが、前記認証コンポーネントが生成する乱数Bを受領し、前記複製された秘密情報XYを複数ロードするステップと、
前記被認証コンポーネントが、乱数Aおよびデータν(νは1の出現確率がη(ただし、η<0.5))を生成するステップと、
前記被認証コンポーネントが、生成した前記乱数Aと受領した前記乱数Bの少なくとも一部から構成される乱数Dを生成するステップと、
前記被認証コンポーネントが、前記乱数Dと前記秘密情報XYの少なくとも一部とについて、圧縮演算を行い、データCを生成するステップと、
前記被認証コンポーネントが、前記データCに前記データνを付与した演算結果Zを、前記認証コンポーネントに送信するステップと、
前記認証コンポーネントが、生成した前記乱数Bと受領した前記乱数Aの少なくとも一部から構成される乱数Dを生成するステップと、
前記認証コンポーネントが、前記乱数Dと前記秘密情報XYの少なくとも一部とについて、圧縮演算を行い、データCを生成するステップと、
前記認証コンポーネントが、受領した演算結果Zと生成したデータCとを用いて、判定処理を行うステップとを具備する。
【請求項2】
前記秘密情報XYEは、誤り訂正符号を更に含み、
前記認証コンポーネントは、前記被認証コンポーネントから受領した前記秘密情報XYEに対して、誤り訂正処理を行うステップを更に具備する
請求項1に記載の認証方法。
【請求項3】
前記判定処理は、前記認証コンポーネントが受領した演算結果Zが複数のデータから構成されており、前記複数のデータの各々は多重に複製された前記秘密情報XYのうち少なくとも2つ以上のデータに対して同一パラメータを用いて計算されており、前記パラメータは前記乱数A、前記乱数B、前記データνに対応し、前記複数のデータ間の多数決処理を含む
請求項1または2に記載の認証方法。
【請求項4】
秘密情報XYと前記秘密情報XYが少なくとも2回以上多重に複製された秘密情報XYと、前記秘密情報XYが暗号化された秘密情報XYEとを記憶するメモリと、
乱数Aを生成する生成部と、
生成した前記乱数Aと、受領する乱数Bの少なくとも一部から構成される乱数Dを生成する生成部と、
前記乱数Dと前記メモリからロードした前記秘密情報XYの少なくとも一部とについて、圧縮演算を行い、データCを生成する演算部と、
データν(νは1の出現確率がη(ただし、η<0.5))を生成する生成部と、
前記データCに前記データνを付与して、演算結果Zを算出するビット毎加算部と
を具備する被認証コンポーネント。
【請求項5】
前記秘密情報XYEは、誤り訂正符号を更に含む
請求項4に記載の被認証コンポーネント。
【請求項6】
秘密情報XYと前記秘密情報XYが少なくとも2回以上多重に複製された秘密情報XYと、前記秘密情報XYが暗号化された秘密情報XYEとを記憶する被認証コンポーネントを認証する認証コンポーネントは、
乱数Aを生成する生成部と、
暗号化された前記秘密情報XYEに対して、鍵を用いた復号処理を行って秘密情報XYを共有する復号部と、
乱数Bを生成する生成部と、
生成した前記乱数Bと、受領する乱数Aの少なくとも一部から構成される乱数Dを生成する生成部と、
前記乱数Dと前記秘密情報XYの少なくとも一部とについて、圧縮演算を行い、データCを生成する演算部と、
生成した前記データCと受領する演算結果Zとを用いて、判定処理を行う判定部とを具備する。
【請求項7】
前記秘密情報XYEは、誤り訂正符号を更に含み、
前記秘密情報XYEに対して、誤り訂正処理を行う誤り訂正部を更に具備する
請求項6に記載の認証コンポーネント。
【請求項8】
前記判定部は、前記認証コンポーネントが受領した演算結果Zが複数のデータから構成されており、前記複数のデータの各々は多重に複製された前記秘密情報XYのうち少なくとも2つ以上のデータに対して同一パラメータを用いて計算されており、前記パラメータは前記乱数A、前記乱数B、前記データνに対応し、前記複数のデータ間の多数決処理を含む
請求項6または請求項7に記載の認証コンポーネント。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2012−227901(P2012−227901A)
【公開日】平成24年11月15日(2012.11.15)
【国際特許分類】
【出願番号】特願2011−96500(P2011−96500)
【出願日】平成23年4月22日(2011.4.22)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】