(57)【要約】【課題】メモリ側の情報を用いて暗号キーを安全に生成することができる暗号キー生成方法およびそれを用いた不揮発性メモリ装置を提供する。【解決手段】電気的に書き換え可能なメモリセルアレイ（１０１）を有し、メモリセルアレイの予め定められた複数のメモリセルから各メモリセルのしきい値電圧を示す電気量を複数ビットのデジタル値で検出する検出部（１０４、２０１、２０２）手段と、複数のメモリセルの各々の複数ビットのデジタル値に基づいて暗号キー（Ｋ）を生成する暗号キー生成部（２０３、２０４）と、を有する。【選択図】図３
2012034268.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書き換え可能なメモリセルアレイを有する不揮発性メモリ装置であって、
前記メモリセルアレイの予め定められた複数のメモリセルから、各メモリセルのしきい値電圧を示す電気量を複数ビットのデジタル値で検出する検出手段と、
前記複数のメモリセルの各々の前記複数ビットのデジタル値に基づいて暗号キーを生成する暗号キー生成手段と、
を有することを特徴とする不揮発性メモリ装置。
【請求項２】
前記複数のメモリセルおよびその個数が変更可能であることを特徴とする請求項１に記載の不揮発性メモリ装置。
【請求項３】
前記暗号キー生成手段は、前記複数ビットのデジタル値の一部のビットを抜き出すビット抜出手段を有することを特徴とする請求項１または２に記載の不揮発性メモリ装置。
【請求項４】
前記ビット抜出手段は前記複数ビットのデジタル値の抜出部分の位置およびビット数を変更可能であることを特徴とする請求項３に記載の不揮発性メモリ装置。
【請求項５】
前記暗号キー生成手段は複数ビットのデジタル値の少なくとも一部分を所定ビット数になるまで蓄積するビット蓄積手段を有することを特徴とする請求項１−４のいずれか１項に記載の不揮発性メモリ装置。
【請求項６】
電気的に書き換え可能なメモリセルアレイを有する不揮発性メモリ装置における暗号キー生成方法であって、
検出手段が、前記メモリセルアレイの予め定められた複数のメモリセルから、各メモリセルのしきい値電圧を示す電気量を複数ビットのデジタル値で検出し、
暗号キー生成手段が、前記複数のメモリセルの各々の前記複数ビットのデジタル値に基づいて暗号キーを生成する、
ことを特徴とする暗号キー生成方法。
【請求項７】
前記複数のメモリセルおよびその個数が変更可能であることを特徴とする請求項６に記載の暗号キー生成方法。
【請求項８】
前記暗号キー生成手段は、前記複数ビットのデジタル値の一部のビットを抜き出すビット抜出手段を有することを特徴とする請求項６または７に記載の暗号キー生成方法。
【請求項９】
前記ビット抜出手段は前記複数ビットのデジタル値の抜出部分の位置およびビット数を変更可能であることを特徴とする請求項８に記載の暗号キー生成方法。
【請求項１０】
前記暗号キー生成手段は複数ビットのデジタル値の少なくとも一部分を所定ビット数になるまで蓄積するビット蓄積手段を有することを特徴とする請求項６−９のいずれか１項に記載の暗号キー生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電気的に書き換え可能な不揮発性の半導体メモリを搭載したメモリ装置に係り、特に記録する情報の暗号化に用いる暗号キーの生成方法に関する。
【背景技術】
【０００２】
記憶媒体に格納されたデータの不正コピーを防止する方法が種々提案されている。たとえば特許文献１に開示されたメモリシステムは、ＮＡＮＤフラッシュメモリの先頭ブロックに記録されたＣＩＳ識別情報(通常は外部から書き換えできない)とファイル中の識別子とを読み出して比較し、不一致であれば不正コピーされたものと判断して以降の処理を中止する。
【０００３】
また特許文献２に開示された記録方法では、コンテンツデータを鍵情報を用いて暗号化し、その鍵情報を含む管理情報と共に記録媒体に記録する。これにより、コンテンツをコピーしても鍵情報がないとコンテンツを復号できない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１１２８２４号公報
【特許文献２】国際公開第ＷＯ２００５／１２２１６５号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に開示されたＣＩＳ識別情報は、工場生産時に書き込まれる記憶装置ごとに異なる固定値であり、出荷後に変更することができない。また特許文献２も不正使用を防止するために暗号鍵を導入しており、この鍵情報を書き換えることは想定されていない。
【０００６】
しかしながら、一般にパスワードや暗号鍵などの秘密情報は、ある程度の時間が経過すれば更新する方が安全である。特に、パスワードや暗号鍵を別の英数字に更新するだけでなく、セキュリティレベルを上げるために暗号鍵のビット長を長くすることも有効である。上記特許文献に開示された方法では、不正使用を防止する目的で設けられた識別情報や鍵情報などが既に与えられたものであって、安全に変更する手段がないために、十分に高いセキュリティを得ることができないという課題があった。
【０００７】
そこで、本発明の目的は、メモリ側の情報を用いて暗号キーを安全に生成することができる暗号キー生成方法およびそれを用いた不揮発性メモリ装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明による不揮発性メモリ装置は、電気的に書き換え可能なメモリセルアレイを有する不揮発性メモリ装置であって、前記メモリセルアレイの予め定められた複数のメモリセルから、各メモリセルのしきい値電圧を示す電気量を複数ビットのデジタル値で検出する検出手段と、前記複数のメモリセルの各々の前記複数ビットのデジタル値に基づいて暗号キーを生成する暗号キー生成手段と、を有することを特徴とする。
【０００９】
本発明による暗号キー生成方法は、電気的に書き換え可能なメモリセルアレイを有する不揮発性メモリ装置における暗号キー生成方法であって、検出手段が、前記メモリセルアレイの予め定められた複数のメモリセルから、各メモリセルのしきい値電圧を示す電気量を複数ビットのデジタル値で検出し、暗号キー生成手段が、前記複数のメモリセルの各々の前記複数ビットのデジタル値に基づいて暗号キーを生成する、ことを特徴とする。
【発明の効果】
【００１０】
本発明により、メモリ側の情報を用いて暗号キーを安全に生成することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の一実施形態による不揮発性メモリ装置におけるメモリセルのしきい値電圧のばらつき分布を模式的に示すグラフである。
【図２】図２は、本発明の一実施形態による不揮発性メモリ装置であるメモリカードの内部回路の機能構成を示すブロック図である。
【図３】図３は、本発明の第１実施例による不揮発性メモリ装置における暗号キー生成部の機能構成および動作を説明するためにメモリカードの関連回路部分だけを示すブロック図である。
【図４】図４は、本実施例による暗号キー生成方法におけるセル選択方法の一例を示すメモリセルアレイの模式図である。
【図５】図５は、本実施例による暗号キー生成方法を示すフローチャートである。
【図６】図６は、図４に示すセル選択方法により選択されたセルのしきい値から抜き出されるビットの一例を示す模式図である。
【図７】図７は、図６に示す抜出ビットの値を用いた暗号キー生成の一例を示す模式図である。
【図８】図８は、本発明の第２実施例におけるメモリセルのしきい値電圧のばらつき分布と暗号キー生成方法の一例を模式的に示すグラフである。
【図９】図９は、本発明の第２実施例による不揮発性メモリ装置における暗号キー生成部の機能構成および動作を説明するためにメモリカードの関連回路部分だけを示すブロック図である。
【図１０】図１０（Ａ）は本発明によるメモリカードのコンテンツ書き込み時の使用例、図１０（Ｂ）は読み出し時の使用例をそれぞれ示すシーケンス図である。
【発明を実施するための形態】
【００１２】
本発明の一実施形態によるメモリカードは電気的に書き換え可能な不揮発性メモリを有し、メモリセルのしきい値電圧がセルごとにばらついていることを利用して暗号キーを生成する。以下、本発明の一実施形態について詳細に説明するが、本発明はこの実施形態に限定されるものではなく、測定可能な電気的性質にばらつきがある不揮発性メモリを用いたメモリ装置であれば適用可能である。
【００１３】
１．不揮発性メモリ
一般に、フローティングゲートに電荷を蓄積する絶縁ゲート型の不揮発性メモリでは、ソース・ドレイン間電流が流れ始めるしきい値電圧にばらつきがある。たとえば、同一シリコン基板上のメモリチップであっても、書き込み時の条件(温度、電圧)や製造時のゲート酸化膜の厚さ、加工精度のばらつき、書き込み・消去に伴なうゲート酸化膜の劣化等により、蓄積される電荷量はメモリセルごとに異なっている。このために、書き込まれているデータが同じであってもメモリセルが取り得るしきい値電圧はある分布を持ってばらついている。
【００１４】
１つのメモリセルに２値データを記憶する２値型ＮＡＮＤフラッシュメモリを例にとると、図１に示すように、記憶データごとに、メモリセルのしきい値電圧がある範囲で分布している。ここで、図１のグラフの横軸はメモリセルのしきい値電圧、縦軸はセル数である。２値型のＮＡＮＤフラッシュメモリにおけるメモリセルのしきい値電圧の分布は、消去状態とされるデータ「１」を表わすしきい値電圧の分布Ａと、プログラム状態とされるデータ「０」を表わすしきい値電圧の分布Ｂがある。このような分布を有するフラッシュメモリであれば、分布Ｂを十分に超えるゲート電圧Ｖreadを印加することで、当該メモリセルを導通状態にすることができる。また分布Ａと分布Ｂとの間のゲート電圧Ｖcheckを印加した場合、当該メモリセルの書き込みデータが「１」であれば導通状態、書き込みデータが「０」であれば非導通状態となり、当該メモリセルのソース・ドレイン電流を検出することで書き込みデータの判定が可能である。４値型ＮＡＮＤフラッシュメモリであれば、それぞれのデータ00/01/10/11に対応して４つのしきい値電圧の分布があり、分布間のゲート電圧を印加することで書き込まれたデータを同様に判定可能である。
【００１５】
このような不揮発性メモリにおいて、消去・書き込み時に外部からの操作でしきい値電圧をある一意の値にすることは困難である。そこで、個々のセルのしきい値電圧を測定できれば、その測定値のばらつきを利用して暗号キーの離散性・固有性を高めることができる。
【００１６】
２．メモリカード
図２を参照すると、本発明の一実施形態によるメモリカード１００には、電気的書き換え可能な不揮発性半導体メモリを配列したメモリセルアレイ１０１が設けられている。メモリセルアレイ１０１にはＮＡＮＤ型フラッシュメモリが用いられ、各メモリセルはフローティングゲートに電荷を蓄積する絶縁ゲート型の半導体メモリデバイスからなる。より詳しくは、メモリセルアレイ１００は複数のスタックド・ゲート構造の電気的書き換え可能な不揮発性メモリセルから構成され、各メモリセルのフローティングゲートに蓄積されている電荷量でデータの記憶を行なう。メモリセルは、図１に示すような２値型であってもよいし、多値型（たとえば、上述した４値型）であってもよい。
【００１７】
メモリセルアレイ１００は、ロウデコーダ１０２、カラムデコーダ１０３および書き換え／読み出し回路１０４により、個々のセルの選択および情報の書込／読み出しが行われる。後述するように、ロウデコーダ１０２は、ページ単位でセルのゲート電極に接続されたワード線を選択し、カラムデコーダ１０３はビット線を選択する。メモリセルアレイ１０１では、ページ単位でデータ書き込みおよび読み出しが実行されるので、書き換え／読み出し回路１０４にはビット線ごとにセンスアンプ回路およびラッチ回路が設けられている（以下、ページバッファと呼ぶ）。
【００１８】
アドレスレジスタ１０５は、ロウデコーダ１０２およびカラムデコーダ１０３へ指定されたアドレスを出力し、ロウデコーダ１０２およびカラムデコーダ１０３は当該アドレスをデコードして対応するワード線およびビット線を選択する。
【００１９】
電圧制御回路１０６は制御回路１０７により制御され、データ書き換え、消去、読み出し時に用いられる高電圧や中間電圧を発生し、メモリアレイ１０１やロウデコーダ１０２などへ供給する。ロウデコーダ１０２は、選択されたワード線の電圧をデータ読出、書込あるいは消去の動作に応じて変化させる。後述するように、制御回路１０７はデータ書き込み、消去および読み出しのシーケンス制御を行なう。
【００２０】
ロジックコントロール回路１０８は、外部からチップイネーブル信号ＣＥＢ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、書き込みイネーブル信号ＷＥＢ、読み出しイネーブル信号ＲＥＢ、ライトプロテクト信号ＷＰＢなどの外部制御信号を取り込み、動作モードに応じて内部制御信号を発生して制御回路１０７へ出力する。
【００２１】
入出力バッファ１０９は、外部回路との間でデータの入出力およびアドレス信号の入力を行うために用いられる。すなわち、入出力バッファ１０９を通して入出力端子Ｉ／Ｏ０〜７と書き換え／読み出し回路１０４との間でデータが転送され、入出力端子Ｉ／Ｏ０〜７から入力されるアドレス信号はアドレスレジスタ１０５に蓄積され、動作制御コマンドはデコードされてコマンドレジスタ１１０に蓄積される。制御回路１０７は、コマンドレジスタ１１０の内容に従ってメモリカードの制御を行なう。内部制御信号は入出力バッファ１０９でのデータラッチ、転送などの制御に用いられ、またロジックコントロール回路１０８から生成された内部制御信号は制御回路１０７に送られ、それに従って制御回路１０７は動作制御を行う。
【００２２】
さらに、本実施形態によるメモリカード１００は暗号キー生成部１１１を有する。暗号キー生成部１１１は、後述するように、書き換え／読み出し回路１０４により読み出された複数の選択セルからの出力信号から暗号キーを生成し、制御回路１０７へ出力する。制御回路１０７は書き換え／読み出し回路１０４を通して暗号キーをメモリセルアレイ１０１に書き込む。暗号キー生成部１１１の構成及び動作については後述する。
【００２３】
なお、制御回路１０７および暗号キー生成部１１１は機能的に分かれていればよく、別々のハードウエア回路で実現することもできる。また、それぞれの機能プログラムを図示しないメモリに格納しておき、これらのプログラムをＣＰＵ（中央処理装置）等のプログラム制御プロセッサ上で実行することで、制御回路１０７および暗号キー生成部１１１と同等の機能を実現することも可能である。
【００２４】
３．第１実施例
本発明の第１実施例によれば、読み出されたメモリセルのしきい値電圧を所定解像度のアナログ−デジタル変換器（ＡＤＣ）を用いてデジタル化し、そのビットデータを用いて暗号キーを生成する。以下、図３〜図７を参照しながら本発明の第１実施例を詳細に説明する。
【００２５】
３．１）構成
図３において、ＮＡＮＤ型フラッシュメモリのメモリセルアレイ１０１には複数のメモリセルＭＣがワード線ＷＬ０−ＷＬ１５およびビット線ＢＬ０−ＢＬｍに沿って配列されているものとする。具体的には、所定数ｍ個のメモリセルＭＣの制御電極（ゲート電極）がワード線ＷＬ０−ＷＬ１５の各々に接続され、ワード線ＷＬ０−ＷＬ１５にはロウデコーダ１０２によりそれぞれ選択された電圧（Ｖread、Ｖcheck、または０）が印加される。
【００２６】
さらに、所定数ｍ個の選択トランジスタＴsgdのゲート電極は選択線ＳＧａに接続され、各選択トランジスタＴsgdのドレイン電極は対応するビット線に接続されている。また所定数ｍ個の選択トランジスタＴsgsのゲート電極は選択線ＳＧｂに、ソース電極は共通ソース線ＳＬにそれぞれ接続されている。選択線ＳＧａおよびＳＧｂには、ロウデコーダ１０２によりそれぞれ選択された電圧（Ｖreadあるいは０）が印加される。
【００２７】
また、各ビット線方向の選択トランジスタＴsgdと選択トランジスタＴsgsとの間には１６個のメモリセルＭＣが直列接続されている。したがって、各ビット線と共通ソース線ＳＬとは、対応する選択トランジスタＴsgd、１６個のメモリセルＭＣおよび選択トランジスタＴsgsからなる直接回路を通して接続されている。上述したように、ワート線および選択線に電圧Ｖreadが印加されると、対応する選択トランジスタおよびメモリセルは導通状態となる。したがって、ビット線方向の１６個のメモリセルのうち、チェック電圧Ｖcheckが印加されたメモリセルの蓄積電荷量に対応した電流が当該ビット線に流れることとなり、選択されたメモリセルのデータ読み出しあるいはしきい値電圧測定が可能となる。
【００２８】
ビット線ＢＬ０−ＢＬｍは書き換え／読み出し回路１０４のセンスアンプＳＡ０−ＳＡｍにそれぞれ接続されている。カラムデコーダ１０３で選択されたビット線を流れる電流は、対応するセンスアンプＳＡにより増幅され、後段のデータ判定あるいは暗号キー生成が実行される。
【００２９】
暗号キー生成部１１１は、抵抗器２０１およびＡＤＣ２０２からなる検出部と、ビット抜出部２０３およびビット蓄積部２０４からなる生成部とを含み、制御回路１０７の制御下で暗号キーの生成プロセスを実行する。まず、書き換え／読み出し回路１０４から出力された選択セルのチェック出力電流により抵抗器２０１の両端に電圧が発生し、それをＡＤＣ２０２が所定ビット数でデジタル変換する。ＡＤＣ２０２の分解能は任意である。ＡＤＣ２０２のデジタル出力は、ビット抜出部２０３により所定の抜出位置Ｌの所定数ｎのビットが抜き出され、ビット蓄積部２０４により所定キー長Ｎになるまで蓄積されることで所定長の暗号キーが生成される。
【００３０】
なお、抵抗器２０１およびＡＤＣ２０２以外のビット抜出部２０３およびビット蓄積部２０４は、プログラム制御プロセッサ上でプログラムを実行することにより実現可能である。また、ビットの抜出位置Ｌ、抜き出しビット数ｎおよびキー長Ｎの設定は、工場出荷時に決定されてもよいが、ホストコンピュータから暗号キーを要求された時あるいはユーザ指定で任意に決定することも可能である。
【００３１】
３．２）動作
以下、図４〜図７を参照しながら、暗号キー生成方法について詳細に説明する。
【００３２】
先ず、図４に示すように、制御回路１０７には、暗号キーを作成するために使用するメモリセルが予め決められている。一例として、１６個のメモリセルを用いる場合には、ブロックＢｌｏｃｋ０におけるページＰａｇｅ０の先頭１６ビットを構成する１６個のメモリセルＭＣを先頭から順に使うようにしておけばよい。あるいは、すでに値が書き込まれているページの任意のメモリセル１６個を選択して使用することもできる。
【００３３】
また、暗号キー長さ（Ｎ）は任意であるが、以下の説明ではＮ＝６４ビット長の暗号キーを作成するものとし、ＡＤＣ２０２の分解能は８ビットであるものとする。また、後述するように、ビット抜出部２０３によるビット抜出位置Ｌおよび抜き出されるビット数ｎは、ＭＳＢを除く上位４ビット分であるものとする。したがって、１つのメモリセルから４ビット分の値が生成されるので、６４ビットの暗号キーを生成するために全部で１６個のメモリセルが使用される。
【００３４】
制御回路１０７は、外部機器から制御信号(ＣＥＢ／ＣＬＥ／ＡＬＥ／ＷＥＢ／ＲＥＢ／ＷＰＢ)および入出力端子Ｉ／Ｏ０〜７により暗号キー生成要求を受信すると、暗号キー生成プロセスを開始する。この暗号キー生成要求は外部機器が著作権保護したいデータを書き込む場合、具体的には工場での生産時、メモリカード１００の初期化を行う時、あるいはメモリセルアレイ１０１に暗号キーが存在しない時などである。
【００３５】
図５において、暗号キー生成プロセスが開始されると、制御回路１０７はロウデコーダ１０２およびカラムデコーダ１０３を制御して所定の暗号生成用メモリセルを選択する（ステップＳ４０１）。たとえば、図３に示すようにメモリセルＭＣ１５が選択されたとすれば、ロウデコーダ１０２はそのワード線ＷＬ１５にチェック用電圧Ｖcheckを出力すると共に、それ以外のワード線ＷＬ０〜ＷＬ１４、選択線ＳＧＤおよびＳＤＳには導通ゲート電圧Ｖreadを出力して導通状態にする。チェック用電圧Ｖcheckは、図１に示すように分布Ａと分布Ｂの間にあるので、データ「０」のメモリセルでは非導通であるが、データ「１」のメモリセルではそのしきい値電圧と電圧Ｖcheckとの電位差に応じたソース・ドレイン電流を得ることができる。
【００３６】
チェック用電圧Ｖcheckがワード線ＷＬ１５に印加されると、ワード線ＷＬ１５に接続されたメモリセルＭＣのうちデータ「１」を記憶したメモリセルにおいてしきい値電圧に応じたソース・ドレイン電流が流れる状態となる。図３に例示するようにカラムデコーダ１０３によってビットラインＢＬ０のみが選択されると、センスアンプＳＡ０から出力される電流にはメモリセルＭＣ１５のフローティングゲートに蓄積される電荷量が反映されている。図１に示すように、メモリセルＭＣ１５のしきい値電圧が分布Ａのなかで比較的高い場合には、チェック用電圧Ｖcheckとの電位差が小さいので検出されるビット線の電流量は小さく、逆にしきい値電圧が比較的低い場合には電流量は大きくなる。
【００３７】
こうしてメモリセルＭＣ１５の蓄積電荷量に対応した電流が書き換え／読み出し回路１０４のセンスアンプＳＡ０から読み出されると（ステップＳ４０２）、ＡＤＣ２０２は抵抗器２０１の両端の電圧を８ビットのデジタルデータに変換し（ステップＳ４０３）、ビット抜出部２０３へ出力する。
【００３８】
ビット抜出部２０３は、予め設定されたビット抜出位置Ｌおよび抜出ビット数ｎに従って、８ビットデータから４ビット分を抜き出しビット蓄積部２０４へ出力する（ステップＳ４０４）。ここでは、図６に示すように、ＡＤＣ２０２が出力する８ビットのＡＤ変換値から最上位ビット（ＭＳＢ）のｂｉｔ７と下位３ビット（ｂｉｔ０〜２）を削除したｂｉｔ３〜６を抜き出し、ビット蓄積部２０４に蓄積する。
【００３９】
ビット蓄積部２０４は、図７に示すように、ビット抜出部２０３から入力した４ビットの値を暗号キーの最上位ビットから順に並べ、所定ビット数Ｎ（＝６４ビット）に到達したか否かを判定する（ステップＳ４０５）。Ｎ＜６４であれば（ステップＳ４０５；ＮＯ）、制御回路１０７はＮ＝６４に到達するまで暗号生成用メモリセルを順次選択しながら、上記ステップＳ４０１−Ｓ４０４を繰り返す。所定長Ｎ＝６４に到達すると（ステップＳ４０５；ＹＥＳ）、ビット蓄積部２０４はＮビット暗号キーＫを制御回路１０７へ出力し、制御回路１０７は暗号キーＫをメモリセルアレイ１０１の所定位置に書き込む（ステップＳ４０６）。なお、暗号キーＫを格納する記憶領域をメモリセルアレイ１０１とは別個に設けることもできる。この場合、メモリセルアレイ１０１の内容がすべてコピーされたとしても、暗号キーＫはコピーされないのでセキュリティを更に強化できる。
【００４０】
具体例として図６および図７を参照すると、Ｂｌｏｃｋ０／Ｐａｇｅ０の先頭から１６ビット分のメモリセルを使用して６４ビット長の暗号キーを生成する。まず、Ｐａｇｅ０の先頭１ビット目のメモリセルのしきい値電圧を読出し、その８ビットＡＤ変換値が「０１１０１００１ｂ」（ｂは二進数であることを示す）であるとする。ビット抜出部２０３は、８ビットＡＤ変換値が「０１１０１００１ｂ」からｂｉｔ３〜６の値「１１０１ｂ」を抜き出し、ビット蓄積部２０４は抜き出された「１１０１ｂ」を暗号キーの先頭部分に配置する。
【００４１】
続いて、２ビット目のメモリセルを使用して８ビットＡＤ変換値「１１０１００１０ｂ」が得られたものとすれば、そこからｂｉｔ３〜６の値「１０１０ｂ」を抜き出して、すでに生成した暗号キー「１１０１ｂ」の下位側に続けて配置する。以上のビット蓄積動作を所定の６４ビット長となるまで繰返すことで、暗号キーＫを得ることができる。
【００４２】
３．３）効果
以上説明した本実施例による暗号キー生成方法は次の効果を奏する。
【００４３】
第１の効果としては、フラッシュメモリのしきい値電圧のばらつきを用いてメモリカードの暗号キーを生成しているので、離散性が高く、またフラッシュメモリごとに固有な暗号キーを生成できる。
【００４４】
第２の効果としては、メモリカードの内部回路に基づいて暗号キーを生成しているので、ユーザの手に渡った後でも暗号キーを新たに生成でき、必要に応じて暗号キーを生成する際のビット選択方法や暗号キーのキー長を変更することも可能であるから、秘匿性の高い暗号キーを得ることができる。
【００４５】
第３の効果としては、本実施例を実現するには抵抗器２０１およびＡＤＣ２０２を追加するだけよいので低いコストで実現が可能である。
【００４６】
４．第２実施例
上記第１実施例では、ＮＡＮＤ型フラッシュメモリのしきい値電圧をＡＤ変換で数値化したが、しきい値電圧をＡＤ変換器ではなくＮＡＮＤ型フラッシュメモリで一般的に行なわれるデータ読み出し方法により数値化することも可能である。本発明の第２実施例による暗号キー生成方法を図８を参照しながら説明する。
【００４７】
図８に示すように、２値型ＮＡＮＤフラッシュメモリのメモリセルが、データ「１」を表わすしきい値電圧の分布Ｃと、データ「０」を表わすしきい値電圧の分布Ｄを有するものとする。暗号キーの生成に用いるメモリセルがプログラム状態でデータ「０」だとすれば、このメモリセルのしきい値電圧は電圧Ｖ０と電圧Ｖ４との間にある。そこで電圧Ｖ０とＶ４との間を４つの区間に分け、しきい値電圧が属している区間により２ビットの判定値を割り当てる。たとえばＶ０〜Ｖ１に属しているときは「００ｂ」、Ｖ１〜Ｖ２のときは「０１ｂ」、Ｖ２〜Ｖ３のときは「１０ｂ」、Ｖ３〜Ｖ４のときは「１１ｂ」とし、その値を暗号キーの最上位ビット側から順に配置して暗号キーを生成することができる。
【００４８】
ただし、この方式では１つのメモリセルから２ビット分の値しか生成できないため、６４ビット長の暗号キー生成には３２個のメモリセルを用いる必要がある。本実施例ではＡＤＣを使用しないため回路規模を小さくできるという利点がある。
【００４９】
図９は本発明の第２実施例による暗号キー生成方法を用いたメモリカードの機能構成を示す。ただし、図３に示す第１実施例と同じ機能を有するブロックには同一参照番号を付して説明は省略する。
【００５０】
図９において、本実施例による暗号キー生成部１１１は、書き換え／読み出し回路１０４の出力からデータを判定する判定部３０１を検出部として有し、暗号キー生成用の判定値を蓄積するビット蓄積部３０２を生成部として有する。電源制御回路１０６は、制御回路１０７の制御に従って、データ読み出し判定用の基準電圧Ｖｓと暗号キー生成用の基準電圧Ｖ０−Ｖ４とを判定部３０１に切り替え可能に供給する。
【００５１】
判定部３０１は、データ読み出し時には基準電圧Ｖｓを用いて書き換え／読み出し回路１０４の出力から選択セルのデータを判定し読み出しデータを出力する。さらに判定部３０１は、暗号キー生成時には基準電圧Ｖ０−Ｖ４を用いて書き換え／読み出し回路１０４の出力から上述した２ビット判定値を生成し、判定値がビット蓄積部３０２で蓄積されて所定長の暗号キーが生成される。
【００５２】
なお、本実施例における暗号キー生成部１１１の判定部３０１およびビット蓄積部３０２は、制御回路１０７と共に、プログラム制御プロセッサ上でプログラムを実行することにより同等の機能を実現することができる。したがって、本実施例によれば、上述した第１実施例のように抵抗器２０１やＡＤＣ２０２を用いることなく、暗号キーを生成することができる。
【００５３】
５．暗号キーの使用例
以下、メモリカード１００に対してデータを記録／読み出しする場合の著作権保護方法の１例を図１０を参照して簡単に説明する。
【００５４】
図１０（Ａ）に示すように、ホスト機器４００からメモリカード１００へ暗号化コンテンツを書き込む場合には、メモリカード１００をホスト機器４００と接続すると（ステップＳ５０１）、ホスト機器４００がメモリカード１００に暗号キーが存在するか否かを判定し、暗号キーがない場合には暗号キー生成要求を行う（ステップＳ５０２）。この要求を受けて、メモリカード１００は、上述したように内部のメモリセルアレイの所定セルを使用して暗号キーを生成して保存すると共に（ステップＳ５０３）、生成された暗号キーＫをホスト機器４００へ送信する（ステップＳ５０４）。ホスト機器４００は、記録すべきコンテンツデータを暗号キーＫで暗号化してメモリカード１００へ送信し（ステップＳ５０６）、暗号化コンテンツデータがメモリカード１００に書き込まれる（ステップＳ５０７）。
【００５５】
こうして記録された暗号化コンテンツデータを読み出す場合は、図１０（Ｂ）に示すように、ホスト機器４００に接続すると（ステップＳ６０１）、メモリカード１００はホスト機器４００からの要求により暗号キーＫと暗号化コンテンツデータを送信する（ステップＳ６０２、Ｓ６０３）。こうしてホスト機器４００は暗号キーＫを用いて暗号化コンテンツデータを復号することができる（ステップＳ６０４）。こうして復号されたコンテンツデータはホスト機器４００の記憶領域（図示せず）に格納される。
【００５６】
上述したように、メモリカード１００が保持する暗号キーＫはメモリカードごとに異なる数値であり、その値はホスト機器４００がメモリカード１００へアクセスする前に定まっている。また暗号キーＫは暗号化コンテンツデータの格納場所以外の領域に存在しているため、通常外部から値を書き込むことは不可能である。
【００５７】
よって、メモリカード１００に記録した暗号化コンテンツデータが他のメモリカードや記憶媒体にコピーされたとしても、暗号キーＫがない限り暗号化コンテンツデータの復号は不可能であり、不正コピーを防ぐことができる。
【００５８】
なお、上記各実施例ではＮＡＮＤ型メモリフラッシュを用いたが、ＮＯＲ型メモリフラッシュでも同様にメモリセルのしきい値電圧のばらつきがあるので、本発明はＮＯＲ型メモリフラッシュにも適用できる。また上記実施例ではＢｌｏｃｋ０／Ｐａｇｅ０の先頭１６ビットデータを記憶するメモリセルのしきい値電圧を使用したが、他の任意のメモリセルを用いて暗号キーを生成してもよい。また、コンテンツデータは音楽データや映像データなどの著作物データであるが、これに限定されるものではなく、ユーザ指示により不正コピーを防止すべきデータ一般を含む。
【００５９】
４．付記
上述した実施形態の一部あるいは全部は、以下の付記のようにも記載されうるが、これらに限定されるものではない。
【００６０】
（付記１）
（付記１）
電気的に書き換え可能なメモリセルアレイを有する不揮発性メモリ装置であって、
前記メモリセルアレイの予め定められた複数のメモリセルから、各メモリセルのしきい値電圧を示す電気量を複数ビットのデジタル値で検出する検出手段と、
前記複数のメモリセルの各々の前記複数ビットのデジタル値に基づいて暗号キーを生成する暗号キー生成手段と、
を有することを特徴とする不揮発性メモリ装置。
【００６１】
（付記２）
前記複数のメモリセルおよびその個数が変更可能であることを特徴とする付記１に記載の不揮発性メモリ装置。
【００６２】
（付記３）
前記暗号キー生成手段は、前記複数ビットのデジタル値の一部のビットを抜き出すビット抜出手段を有することを特徴とする付記１または２に記載の不揮発性メモリ装置。
【００６３】
（付記４）
前記ビット抜出手段は前記複数ビットのデジタル値の抜出部分の位置およびビット数を変更可能であることを特徴とする付記３に記載の不揮発性メモリ装置。
【００６４】
（付記５）
前記暗号キー生成手段は複数ビットのデジタル値の少なくとも一部分を所定ビット数になるまで蓄積するビット蓄積手段を有することを特徴とする付記１−４のいずれか１項に記載の不揮発性メモリ装置。
【００６５】
（付記６）
前記暗号キー生成手段により生成された前記暗号キーを保存する保存手段を更に有し、前記メモリセルアレイに書き込まれるべきデータを暗号化または復号するために読み出されることを特徴とする付記１−５のいずれか１項に記載の不揮発性メモリ装置。
【００６６】
（付記７）
電気的に書き換え可能なメモリセルアレイを有する不揮発性メモリ装置における暗号キー生成方法であって、
検出手段が、前記メモリセルアレイの予め定められた複数のメモリセルから、各メモリセルのしきい値電圧を示す電気量を複数ビットのデジタル値で検出し、
暗号キー生成手段が、前記複数のメモリセルの各々の前記複数ビットのデジタル値に基づいて暗号キーを生成する、
ことを特徴とする暗号キー生成方法。
【００６７】
（付記８）
前記複数のメモリセルおよびその個数が変更可能であることを特徴とする付記７に記載の暗号キー生成方法。
【００６８】
（付記９）
前記暗号キー生成手段は、前記複数ビットのデジタル値の一部のビットを抜き出すビット抜出手段を有することを特徴とする付記７または８に記載の暗号キー生成方法。
【００６９】
（付記１０）
前記ビット抜出手段は前記複数ビットのデジタル値の抜出部分の位置およびビット数を変更可能であることを特徴とする付記９に記載の暗号キー生成方法。
【００７０】
（付記１１）
前記暗号キー生成手段は複数ビットのデジタル値の少なくとも一部分を所定ビット数になるまで蓄積するビット蓄積手段を有することを特徴とする付記７−１０のいずれか１項に記載の暗号キー生成方法。
【００７１】
（付記１２）
前記暗号キー生成手段により生成された前記暗号キーを保存手段に保存し、前記メモリセルアレイに書き込まれるべきデータを暗号化または復号するために読み出されることを特徴とする付記７−１１のいずれか１項に記載の暗号キー生成方法。
【００７２】
（付記１３）
付記１−６のいずれか１項に記載の不揮発性メモリ装置を含むメモリカードと、
前記メモリカードへ書き込むデータを前記暗号キーを用いて暗号化し、または前記メモリカードから読み出された暗号化データを前記暗号キーを用いて復号するホスト機器と、
からなることを特徴とするメモリシステム。
【００７３】
（付記１４）
電気的に書き換え可能なメモリセルアレイを有する不揮発性メモリ装置におけるプログラム制御プロセッサを暗号キー生成装置として機能させるプログラムであって、
検出手段が、前記メモリセルアレイの予め定められた複数のメモリセルから、各メモリセルのしきい値電圧を示す電気量を複数ビットのデジタル値で検出する機能と、
暗号キー生成手段が、前記複数のメモリセルの各々の前記複数ビットのデジタル値に基づいて暗号キーを生成する機能と、
を前記プログラム制御プロセッサに実現することを特徴とするプログラム。
【産業上の利用可能性】
【００７４】
本発明はＮＡＮＤフラッシュメモリ等のメモリカードに適用可能である。
【符号の説明】
【００７５】
１００  メモリカード
１０１  メモリセルアレイ
１０２  ロウデコーダ
１０３  カラムデコーダ
１０４  書き換え／読み出し回路
１０５  アドレスレジスタ
１０６  電圧制御回路
１０７  制御回路
１０８  ロジックコントローラ
１０９  入出力バッファ
１１０  コマンドレジスタ
１１１  暗号キー生成部
２０１  抵抗器
２０２  アナログ−デジタル変換器
２０３  ビット抜出部
２０４  ビット蓄積部
３０１  判定部
３０２  ビット蓄積部
【図１】
2012034268.tif 000003
【図２】
2012034268.tif 000004
【図３】
2012034268.tif 000005
【図４】
2012034268.tif 000006
【図５】
2012034268.tif 000007
【図６】
2012034268.tif 000008
【図７】
2012034268.tif 000009
【図８】
2012034268.tif 000010
【図９】
2012034268.tif 000011
【図１０】
2012034268.tif 000012