(57)【要約】【課題】誤りのあるメモリを利用する上で、データの正当性をチェックするための管理技術を提供することを課題とする。【解決手段】書込装置２は、ＮＡＮＤ型フラッシュメモリであるメモリ１から不良領域情報を取得し、不良領域情報を含むエラーコントロールデータ５２を作成する。次に、エラーコントロールデータ５２からチェックサムと圧縮データを計算し、ユーザデータ５１およびユーザデータ用チェックサム５１１とともに、メモリ１に格納する。メモリ１からデータを読み出すコントローラ４は、エラーコントロールデータ５２をメモリ１から読み出し、チェックサムと圧縮データを求め、メモリ１に格納されているそれら情報と比較チェックする。正当性が確認できれば、さらに、ユーザデータ５１を読み出してチェックサムを計算し、メモリ１に格納されているチェックサム５１１と比較して、改竄検知を行う。【選択図】図２
2008123160.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデータが格納されるメモリを管理する方法であって、
a)前記メモリから不良領域情報を取得し、取得した不良領域情報を含み、前記メモリに格納される情報の正当性を判定する誤り管理情報を作成する工程と、
b)前記工程a)で作成された誤り管理情報の固有情報を抽出する工程と、
c)ユーザデータとともに、前記工程a)で作成された誤り管理情報と前記工程b)で抽出された固有情報とを前記メモリに格納する工程と、
d)前記工程c）において情報が格納された前記メモリから誤り管理情報を読み出す工程と、
e)前記工程d)で読み出された誤り管理情報の固有情報を抽出する工程と、
f)前記工程b)で抽出され前記メモリに格納されている固有情報と前記工程e)で抽出された固有情報とを比較して前記メモリに格納されている情報の正当性を判定する工程と、
を備えることを特徴とするメモリ管理方法。
【請求項２】
請求項１に記載のメモリ管理方法において、
不良領域情報は、
前記メモリの不良領域のアドレス情報、
を含むことを特徴とするメモリ管理方法。
【請求項３】
請求項１に記載のメモリ管理方法において、
不良領域情報は、
前記メモリの不良領域と代替領域とを関連付ける代替情報、
を含むことを特徴とするメモリ管理方法。
【請求項４】
請求項１ないし請求項３のいずれかに記載のメモリ管理方法において、
誤り管理情報の固有情報は、
誤り管理情報から演算されたチェックサム、
を含むことを特徴とするメモリ管理方法。
【請求項５】
請求項１ないし請求項３のいずれかに記載のメモリ管理方法において、
誤り管理情報の固有情報は、
誤り管理情報から演算されたハッシュ値、
を含むことを特徴とするメモリ管理方法。
【請求項６】
請求項１ないし請求項５のいずれかに記載のメモリ管理方法において、
前記工程a)で作成される誤り管理情報は、
ユーザデータの固有情報、
を含み、
前記メモリ管理方法は、さらに、
g)前記工程c）において情報が格納された前記メモリからユーザデータを読み出し、読み出したユーザデータから固有情報を抽出する工程と、
h)前記工程c)において前記メモリに格納された誤り管理情報に含まれるユーザデータの固有情報と、前記工程g)で抽出されたユーザデータの固有情報とを比較してユーザデータの正当性を判定する工程と、
を備えることを特徴とするメモリ管理方法。
【請求項７】
請求項６に記載のメモリ管理方法において、
ユーザデータの固有情報は、
ユーザデータから演算されたチェックサム、
を含むことを特徴とするメモリ管理方法。
【請求項８】
請求項６に記載のメモリ管理方法において、
ユーザデータの固有情報は、
ユーザデータから演算されたハッシュ値、
を含むことを特徴とするメモリ管理方法。
【請求項９】
請求項１ないし請求項８のいずれかに記載のメモリ管理方法において、
前記工程c)は、
前記工程a)で作成された誤り管理情報を圧縮するプログラムと、前記プログラムにより圧縮された誤り管理情報の圧縮データとを前記メモリに格納する工程、
を含み、
前記メモリ管理方法は、さらに、
i)前記工程c）において情報が格納された前記メモリから前記プログラムを読み出し、前記メモリに格納されている誤り管理情報を圧縮した圧縮データを生成する工程と、
j)前記工程c)で前記メモリに格納された圧縮データと、前記工程i)で生成された圧縮データとを比較して前記メモリに格納されている情報の正当性を判定する工程と、
を備えることを特徴とするメモリ管理方法。
【請求項１０】
請求項１ないし請求項９のいずれかに記載のメモリ管理方法において、
前記メモリは、
不良領域の存在するメモリ、
を含むことを特徴とするメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不良領域の存在するメモリの管理技術に関する。
【背景技術】
【０００２】
アプリケーションプログラムなどのコンテンツデータを格納するメモリとしては、ＮＯＲ型フラッシュメモリが使用されている。ＮＯＲ型フラッシュメモリは、誤りのないメモリ（不良領域の存在しないメモリ、あるいはビット誤りの発生しないメモリ）であり、コンテンツの格納用に適している。たとえば、携帯電話機、携帯情報端末、パチンコ機、パチスロ機においては、アプリケーションプログラムなどのコンテンツデータ格納用としてＮＯＲ型フラッシュメモリが使用されている。
【０００３】
フラッシュメモリは、データを容易に書き換えることができるという特性がある。この特性により、データの更新が容易であるなどのメリットが存在するが、その一方で、コンテンツの格納用にフラッシュメモリが利用された場合、コンテンツの改竄を防止する必要がある。
【０００４】
ＮＯＲ型フラッシュメモリに格納されているコンテンツデータの正当性をチェックするためには、チェックサムの利用が有効である。図９は、ＮＯＲ型フラッシュメモリに、たとえば、アプリケーションデータなどのユーザデータが格納されている様子を示している。このユーザデータの正当性をチェックするために、全物理アドレスからデータの単純読み出しを行い、ユーザデータのチェックサムが計算される。そして、予め計算されていた正しいチェックサムと比較することで、正当性の判断を行うのである。
【０００５】
下記特許文献１は、ホームページなどのコンテンツの改竄を検知する技術に関する。コンテンツの登録あるいは更新時に生成した改竄検知情報と、現在のコンテンツから生成された情報とを比較することで、コンテンツの正当性をチェックするようにしている。
【０００６】
【特許文献１】特開２００１−２８２６１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように、ＮＯＲ型フラッシュメモリでは、チェックサムによるデータ正当性チェックが有効であり、コンテンツメモリを安定して供給することが可能である。しかし、上述したように、フラッシュメモリは書き換え可能なメモリであるため、もし、チェックサムをフラッシュメモリに格納していた場合には、チェックサム自体が書き換えられるという問題がある。また、ＮＯＲ型フラッシュメモリは、誤りがないという優れた特徴を備える一方、メモリ単価が高いという問題がある。
【０００８】
たとえば、パチンコ機、パチスロ機のコンテンツ格納用として考えた場合であっても、機器の台数が非常に多いため、メモリ単価の与える影響は大きい。したがって、メモリ単価を下げることができれば、製品供給コストを大幅に低減させることが可能となる。
【０００９】
そこで、上述した問題点のうち、価格面の問題を解決するためには、ＮＯＲ型フラッシュメモリよりも安価なＮＡＮＤ型フラッシュメモリを使用するという選択肢が考えられる。ＮＡＮＤ型フラッシュメモリは、誤りのあるメモリ（不良領域が存在するメモリ、あるいはビット誤りが発生するメモリ）であるが、大容量化、低コスト化を実現している。
【００１０】
図１０は、ＮＡＮＤ型フラッシュメモリにユーザデータを格納した様子を示している。図に示すように、ＮＡＮＤ型フラッシュメモリの記憶領域には、不良領域（ＩＮＶＡＬＩＤ  ＢＬＯＣＫあるいはＢＡＤ  ＢＬＯＣＫ）が混在している。不良領域は、デバイスの出荷時点で使用不可能な領域である。不良領域には、データを記録することができないため、別の代替領域にデータが格納されることになる。この不良領域と代替領域の対応関係を示す代替情報は、エラーコントロールデータとして、図に示すようにメモリ内に格納される。
【００１１】
ここで、問題となるのが、データ正当性のチェックである。上述したように、ＮＯＲ型フラッシュメモリにおいては、全物理アドレスの単純読み出しにより、全ての固体で同一のチェックサムを計算することができる。しかし、ＮＡＮＤ型フラッシュメモリの場合、不良領域に格納することができなかったデータについては、代替領域に格納されるため、データの格納位置がデバイスごとで異なることになる。たとえば、格納されているアドレスも考慮してチェックサムを計算する場合、不良領域の発生箇所がデバイスによって異なれば、デバイスによってチェックサムが変化することになる。
【００１２】
ＮＡＮＤ型フラッシュメモリでは、デバイスごとに不良領域のばらつきがあるため、通常は、何らかの方法で論理アドレスと物理アドレスの変換を行ってデータを読み出している。このため、単純に誤りがないメモリと同一の方法で全物理アドレスに対するアクセスを行い、読み出したデータに対してチェックサムを計算する方法では、内容確認を行えないのである。
【００１３】
また、そもそも、不良領域については、データ値が不定であるため、チェックサムがデバイスごとに異なることになる。したがって、いずれにしても、誤りのないメモリと同じ方法をそのまま用いてもデータ正当性のチェックを行うことができない。
【００１４】
このように、ＮＡＮＤ型フラッシュメモリなど誤りのあるメモリを使用する場合には、単純なチェックサムの利用ができないという問題がある。さらには、上述したように、ＮＯＲ型、ＮＡＮＤ型いずれの場合であっても、フラッシュメモリを利用する場合であって、フラッシュメモリ自体にチェックサムを格納する形態では、チェックサム自体が改竄されることを防止しなければならない。
【００１５】
そこで、本発明は前記問題点に鑑み、誤りのあるメモリを利用する上で、データの正当性をチェックするための管理技術を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、請求項１記載の発明は、ユーザデータが格納されるメモリを管理する方法であって、a)前記メモリから不良領域情報を取得し、取得した不良領域情報を含み、前記メモリに格納される情報の正当性を判定する誤り管理情報を作成する工程と、b)前記工程a)で作成された誤り管理情報の固有情報を抽出する工程と、c)ユーザデータとともに、前記工程a)で作成された誤り管理情報と前記工程b)で抽出された固有情報とを前記メモリに格納する工程と、d)前記工程c）において情報が格納された前記メモリから誤り管理情報を読み出す工程と、e)前記工程d)で読み出された誤り管理情報の固有情報を抽出する工程と、f)前記工程b)で抽出され前記メモリに格納されている固有情報と前記工程e)で抽出された固有情報とを比較して前記メモリに格納されている情報の正当性を判定する工程と、を備えることを特徴とする。
【００１７】
請求項２記載の発明は、請求項１に記載のメモリ管理方法において、不良領域情報は、前記メモリの不良領域のアドレス情報、を含むことを特徴とする。
【００１８】
請求項３記載の発明は、請求項１に記載のメモリ管理方法において、不良領域情報は、前記メモリの不良領域と代替領域とを関連付ける代替情報、を含むことを特徴とする。
【００１９】
請求項４記載の発明は、請求項１ないし請求項３のいずれかに記載のメモリ管理方法において、誤り管理情報の固有情報は、誤り管理情報から演算されたチェックサム、を含むことを特徴とする。
【００２０】
請求項５記載の発明は、請求項１ないし請求項３のいずれかに記載のメモリ管理方法において、誤り管理情報の固有情報は、誤り管理情報から演算されたハッシュ値、を含むことを特徴とする。
【００２１】
請求項６記載の発明は、請求項１ないし請求項５のいずれかに記載のメモリ管理方法において、前記工程a)で作成される誤り管理情報は、ユーザデータの固有情報、を含み、前記メモリ管理方法は、さらに、g)前記工程c）において情報が格納された前記メモリからユーザデータを読み出し、読み出したユーザデータから固有情報を抽出する工程と、h)前記工程c)において前記メモリに格納された誤り管理情報に含まれるユーザデータの固有情報と、前記工程g)で抽出されたユーザデータの固有情報とを比較してユーザデータの正当性を判定する工程と、を備えることを特徴とする。
【００２２】
請求項７記載の発明は、請求項６に記載のメモリ管理方法において、ユーザデータの固有情報は、ユーザデータから演算されたチェックサム、を含むことを特徴とする。
【００２３】
請求項８記載の発明は、請求項６に記載のメモリ管理方法において、ユーザデータの固有情報は、ユーザデータから演算されたハッシュ値、を含むことを特徴とする。
【００２４】
請求項９記載の発明は、請求項１ないし請求項８のいずれかに記載のメモリ管理方法において、前記工程c)は、前記工程a)で作成された誤り管理情報を圧縮するプログラムと、前記プログラムにより圧縮された誤り管理情報の圧縮データとを前記メモリに格納する工程、を含み、前記メモリ管理方法は、さらに、i)前記工程c）において情報が格納された前記メモリから前記プログラムを読み出し、前記メモリに格納されている誤り管理情報を圧縮した圧縮データを生成する工程と、j)前記工程c)で前記メモリに格納された圧縮データと、前記工程i)で生成された圧縮データとを比較して前記メモリに格納されている情報の正当性を判定する工程と、を備えることを特徴とする。
【００２５】
請求項１０記載の発明は、請求項１ないし請求項９のいずれかに記載のメモリ管理方法において、前記メモリは、不良領域の存在するメモリ、を含むことを特徴とする。たとえば、不良領域の存在するメモリとしては、ＮＡＮＤ型フラッシュメモリが挙げられる。
【発明の効果】
【００２６】
本発明のメモリ管理方法は、メモリに格納された誤り管理情報の固有情報を利用し、誤り管理情報の正当性をチェックする。これにより、メモリに格納されたデータの改竄を検知することが可能である。
【００２７】
また、誤り管理情報にユーザデータの固有情報を含めるようにしたので、ユーザデータと合わせて、ユーザデータの固有情報が改竄されたような場合にも、改竄を有効に検知することが可能である。
【００２８】
さらに、誤り管理情報の圧縮データを改竄検知用に利用しているので、ユーザデータと合わせて、ユーザデータの固有情報が改竄されたような場合にも、改竄を有効に検知することが可能である。
【発明を実施するための最良の形態】
【００２９】
以下、図面を参照しつつ本発明の実施の形態について説明する。図１は、ＮＡＮＤ型フラッシュメモリ１（以下、メモリ１とする。）と、メモリ１にデータを書き込む書込装置２とを示す図である。
【００３０】
メモリ１は、たとえば、パチンコ機やパチスロ機のコンテンツデータを書き込む用途に用いられる。メモリ１は、上述したように、ＮＡＮＤ型フラッシュメモリであり、図１の（ａ）に示すように、データを書き込むことのできる正常領域１１と、データを書き込むことのできない不良領域１２とを含んでいる。
【００３１】
書込装置２には、別の工程で作成されたユーザデータ５１が与えられる。書込装置２は、ユーザデータ５１をスクランブルした上で、スクランブル済みのユーザデータ５１Ａをメモリ１に格納する。
【００３２】
メモリ１にスクランブル済みのユーザデータ５１Ａが格納されると、図１の（ｂ）に示すように、ユーザデータ５１Ａとともに、スクリーニング用データ５３が記録される。スクリーニング用データ５３は、メモリ１に格納された情報の改竄の有無を判定するために用いられるデータである。
【００３３】
スクリーニング用データ５３には、図２に示すように、メモリ１に格納される情報の正当性をチェックするためのエラーコントロールデータ５２や、エラーコントロールデータ５２に基づいて作成された改竄検出用付加データ５４や、エラーコントロールデータ用チェックサム５２１を含んでいる。
【００３４】
エラーコントロールデータ５２には、図に示すように、各不良領域がどの代替領域に代替されているかを示す代替情報が含まれている。また、エラーコントロールデータ５２には、不良ブロックのアドレスリストや、ビット誤りの訂正に必要な情報（エラー訂正用シンドロームなど）が含まれている。あるいは、エラーコントロールデータ５２に、不良領域のブロック数を記録するようにしてもよい。また、図に示すように、エラーコントロールデータ５２には、ユーザデータ用チェックサム５１１が記録されている。
【００３５】
ユーザデータ５１は、前述した例であれば、パチンコ機やパチスロ機のコンテンツデータのことである。ユーザデータ５１は、別の工程で作成されている。このユーザデータ５１は、大量生産される全てのメモリに共通のものである。つまり、このユーザデータ５１が、次々にＮＡＮＤ型フラッシュメモリに格納されることで、コンテンツ格納メモリが作成されるのである。
【００３６】
そして、この共通のユーザデータ５１に対しては、さらに別の工程で、固有情報が計算されている。固有情報とは、たとえば、上述したユーザデータ用チェックサム５１１である。他にも、固有情報としてハッシュ値を利用してもよい。
【００３７】
書込装置２は、ユーザデータ５１をＮＡＮＤ型フラッシュメモリであるメモリ１に格納する装置である。以下、図３のフローチャートを参照しつつ、書込装置２によるメモリ１に対するデータの書込み手順について説明する。
【００３８】
まず、書込装置２は、新たなメモリ１と接続されると、メモリ１にアクセスし、メモリ１の不良領域情報を取得する（ステップＳ１）。つまり、書込装置２は、全ての不良領域のアドレスと、各不良領域が代替される領域のアドレスを取得する。また、これにより、不良領域のブロック数を得ることができる。
【００３９】
次に、書込装置２は、ステップＳ１で取得した不良領域情報に基づいて、エラーコントロールデータ５２を作成する（ステップＳ２）。このエラーコントロールデータ５２には、図２で示したように、代替情報が含まれる。代替情報は、不良領域と代替領域との対応関係を示す情報である。また、エラーコントロールデータ５２には、不良領域のアドレスリストやビット誤りの訂正に必要な情報、ユーザデータ用チェックサム５１１が格納される。また、エラーコントロールデータ５２に、不良領域のブロック数を格納するようにしてもよい。なお、ユーザデータ用チェックサム５１１は、予め別の工程で生成されている。ユーザデータ用チェックサム５１１は、ユーザデータ５１から抽出される固有情報であるが、この固有情報の詳細については、次のエラーコントロールデータ５２の固有情報とあわせて説明する。
【００４０】
次に、書込装置２は、ステップＳ２で作成したエラーコントロールデータ５２の固有情報を計算する（ステップＳ３）。
【００４１】
固有情報としては、たとえば、チェックサムを利用することができる。図４は、チェックサムを利用した固有情報を示す図である。まず、ユーザデータ５１については、上述したように、予め別の工程でユーザデータ用チェックサム５１１が計算されている。図で示した例では、ＣＲＣ演算方式によって計算されたユーザデータ用チェックサム５１１（８桁）を１６進表示している。
【００４２】
このチェックサムは、ユーザデータ５１が、誤りのないメモリ（たとえばＮＯＲ型フラッシュメモリ）に格納されたと仮定した場合に計算されるチェックサムと同じものである。つまり、ユーザデータを、図９で示したように、不良領域の存在しないＮＯＲ型フラッシュメモリの先頭アドレスから順に格納した場合に、その格納されたデータを全物理アドレスについて順に読み出すことによって計算されるチェックサムと同じものである。なお、ブランクも含めてチェックサムを計算するようにしてもよい。
【００４３】
ユーザデータ５１は、全てのデバイスに共通のデータであるので、ユーザデータ５１に対する固有情報は、上記のように予め別の工程で作成されている。そして、このステップＳ３では、デバイスによって異なるデータであるエラーコントロールデータ５２に基づいて、書込装置２が、エラーコントロールデータ用チェックサム５２１を計算する。図４では、１６進表示されたエラーコントロールデータ用チェックサム５２１を示している。
【００４４】
このように、ユーザデータ５１については、共通のチェックサム、つまり、誤りのないメモリに格納された場合に計算されるチェックサムと同様の値を計算してエラーコントロールデータ５２に格納するとともに、不良領域の存在するＮＡＮＤ型フラッシュメモリでデバイスごとに異なるエラーコントロールデータ５２についても、固有情報を抽出するのである。
【００４５】
また、固有情報としては、チェックサム以外にハッシュ値を利用することもできる。図５は、ＳＨＡ１のハッシュ値を利用した固有情報を示す図である。まず、ユーザデータ５１からは、上述したように、予め別の工程で、ユーザデータ５１のハッシュ値が計算されている。なお、ハッシュ値の計算には、ＭＤ５を利用してもよい。
【００４６】
チェックサムの場合と同様、ユーザデータ５１は、全てのデバイスに共通のデータであるので、ユーザデータ５１に対する固有情報は、上記のように予め別の工程で作成されている。そして、ステップＳ３では、デバイスによって異なるデータであるエラーコントロールデータ５２に基づいて、書込装置２が、ハッシュ値を計算するのである（ステップＳ３）。
【００４７】
ステップＳ３において、エラーコントロールデータ５２の固有情報を抽出した後、書込装置２は、続いて、圧縮プログラム５４１を実行して、エラーコントロールデータ５２を圧縮し、圧縮データ５４２を生成する（ステップＳ４）。この圧縮プログラム５４１と、圧縮データ５４２は、改竄検出用付加データ５４として利用される。
【００４８】
ステップＳ４において、エラーコントロールデータ５２の圧縮データ５４２を生成した後、書込装置２は、ユーザデータ５１Ａをスクランブルし、スクランブルされたユーザデータ５１Ａとスクリーニング用データ５３とをメモリ１に書き込むのである（ステップＳ５）。上述したように、このスクリーニング用データ５３には、エラーコントロールデータ５２の他に、改竄検出用付加データ５４とエラーコントロールデータ用チェックサム５２１が含まれている。
【００４９】
このようにして、スクランブルされたユーザデータ５１Ａとスクリーニング用データ５３が書き込まれた状態のメモリ１は、図１の（ｂ）で示した状態となる。なお、図１の（ｂ）では、ユーザデータ５１Ａの書込み領域にだけ不良領域１２が混在しているが、もちろん、スクリーニング用データ５３の書込み領域についても、不良領域１２が存在している場合はある。
【００５０】
このように、本実施の形態においては、全デバイスで共通のデータであるユーザデータ５１に対しては、共通のチェックサムやハッシュ値を計算し、エラーコントロールデータ５２に含めてメモリ１に格納する。これにより、ユーザデータ５１の正当性をチェックする情報として利用可能である。
【００５１】
さらに、本実施の形態においては、各デバイスで異なるデータであるエラーコントロールデータ５２について、それぞれチェックサムやハッシュ値を計算し、固有情報（図２の例では、エラーコントロールデータ用チェックサム５２１）としてスクリーニング用データ５３に含めてメモリ１に格納している。ここで、エラーコントロールデータ５２には、不良領域の代替情報が含まれている。したがって、この固有情報を利用することで、代替情報に基づいて正当にデータが格納されていることを確認するための情報を提供可能となる。また、エラーコントロールデータ５２は、不良領域のアドレス情報（あるいは不良領域のブロック数でもよい）を保持するので、これによっても、誤りのあるＮＡＮＤ型フラッシュメモリに対して、正しく不良領域が代替されて維持されている状態を確認可能である。
【００５２】
さらに、本実施の形態においては、各デバイスで異なるデータであるエラーコントロールデータ５２を圧縮し、圧縮プログラム５４１とともに圧縮データ５４２をスクリーニング用データ５３に含めてメモリ１に格納している。これにより、たとえば、ユーザデータ５１と合わせてユーザデータ用チェックサム５１１が改竄された場合であっても、圧縮データを比較することで、改竄を検知することが可能である。なお、圧縮プログラム５４１のアルゴリズムは秘匿状態にしておく。また、圧縮プログラム５４１は、認証されたＣＰＵでなければ実行できないように生成しておく。
【００５３】
図６は、上記の手順で管理されているメモリ１の正当性をチェックするシステムを示す図である。このシステムは、ホストコンピュータ５と、メモリ１を含むメモリデバイス１０とで構成される。メモリデバイス１０は、メモリ１と、メモリ１へのアクセスをコントロールするコントローラ４とを備えている。
【００５４】
コントローラ４は、動作モードとして、ＮＯＲインタフェースモードを設定可能となっている。コントローラ４が、ＮＯＲインタフェースモードに設定されている場合、メモリ１に対して、連続的に全物理アドレスに対してデータ読み出しを行うと、不良領域については、代替領域の情報が読み出されて、ホストコンピュータ５に対して読み出しデータが転送される。つまり、ホストコンピュータ５は、ユーザデータ５１が、ＮＯＲ型フラッシュメモリに格納されている場合と同様の手順、インタフェースで、読み出しデータを入力することができるのである。
【００５５】
また、コントローラ４は、改竄検知機能を備えている。コントローラ４は、メモリデバイス１０の起動時に、図７のフローチャートに示すような改竄検知処理を実行する。
【００５６】
まず、コントローラ４は、圧縮データの比較チェックを行う（ステップＳ１１）。具体的には、コントローラ４は、メモリ１からエラーコントロールデータ５２および圧縮プログラム５４１を読み出す。そして、読み出したエラーコントロールデータ５２を、読み出した圧縮プログラム５４１で圧縮し、圧縮データを生成する。続いて、コントローラ４は、生成した圧縮データとメモリ１に格納されている圧縮データ５４２とを比較チェックし、改竄の有無を検知するのである。もし、ユーザデータ５１とともにユーザデータ用チェックサム５１１が改竄されていれば、圧縮データの内容が変更されるため、改竄を検知することが可能である。なお、コントローラ４は、圧縮プログラム５４１を実行するための認証情報を保持している。
【００５７】
次に、コントローラ４は、エラーコントロールデータ用チェックサム５２１の比較チェックを行う（ステップＳ１２）。具体的には、コントローラ４は、メモリ１から読み出したエラーコントロールデータ５２からチェックサムを計算する。このチェックサムを計算するアルゴリズムは、スクリーニング用データ５３に格納されているエラーコントロールデータ用チェックサム５２１を計算するときに用いたアルゴリズムと同じアルゴリズムである。つまり、コントローラ４には、エラーコントロールデータ用チェックサム５２１を計算するために用いたアルゴリズムが実装されている。また、コントローラ４は、代替情報に基づいて、不良領域については代替領域のデータを読み出すことによってエラーコントロールデータ５２を読み出し、チェックサムを計算する。つまり、コントローラ４は、ＮＯＡインタフェースで出力されるエラーコントロールデータ５２に対してチェックサムを計算する。
【００５８】
そして、コントローラ４は、計算で求めたチェックサムと、メモリ１に格納されているエラーコントロールデータ用チェックサム５２１とを比較チェックし、改竄の有無を検知するのである。もし、ユーザデータ５１とともにユーザデータ用チェックサム５１１が改竄されていれば、チェックサムの内容が変更されるため、改竄を検知することが可能である。なお、固有情報としてハッシュ値を利用している場合には、コントローラ４は、エラーコントロールデータ５２のハッシュ値を計算し、メモリ１に格納されているエラーコントロールデータ５２のハッシュ値と比較することで、同様に、改竄を検知することが可能である。
【００５９】
次に、コントローラ４は、ユーザデータ用チェックサム５１１の比較チェックを行う（ステップＳ１３）。つまり、コントローラ４は、メモリ１に格納されているユーザデータ５１Ａの正当性をチェックする。まず、コントローラ４は、メモリ１からユーザデータ５１Ａを読み出し、デスクランブル処理を実行してユーザデータ５１を得る。続いて、コントローラ４は、ユーザデータ５１のチェックサムを計算する。このチェックサムを計算するアルゴリズムは、エラーコントロールデータ５２に格納されているユーザデータ用チェックサム５１１を計算するときに用いたアルゴリズムと同じアルゴリズムである。つまり、コントローラ４には、ユーザデータ用チェックサム５１１を計算するために用いたアルゴリズムが実装されている。また、コントローラ４は、代替情報に基づいて、不良領域については代替領域のデータを読み出すことによってユーザデータ５１を読み出し、チェックサムを計算する。つまり、コントローラ４は、ＮＯＡインタフェースで出力されるユーザデータ５１に対してチェックサムを計算する。
【００６０】
そして、コントローラ４は、デスクランブルしたユーザデータに基づいて求めたチェックサムと、エラーコントロールデータ５２に格納されているユーザデータ用チェックサム５１１とを比較することで、ユーザデータ５１の改竄の有無をチェックするのである。
【００６１】
このように、本実施の形態においては、まず、圧縮データ５４１のチェックおよびエラーコントロールデータ用チェックサム５２１のチェックを行うことで、エラーコントロールデータ５２自体が改竄されていないかどうかをチェックする。たとえば、ユーザデータ用チェックサム５１１が改竄されていれば、検知可能である。そして、エラーコントロールデータ５２が改竄されていないことを検知した上で、ユーザデータ５１の改竄検知を行うのである。これにより、ユーザデータ５１と合わせてユーザデータ用チェックサム５１１が改竄されている場合でも、改竄を検知可能である。
【００６２】
また、ユーザデータ５１あるいはエラーコントロールデータ５２のチェックサムを求めるときには、コントローラ４は、ＮＯＡインタフェースモードで出力されるデータに対してチェックサムを求める。したがって、ユーザデータ５１やエラーコントロールデータ５２の格納領域に不良領域が存在する場合であっても、データが改竄されていない場合には、スクリーニング用データ５３に格納されているそれらデータのチェックサムと同じ値を求めることができる。
【００６３】
コントローラ４は、メモリデバイス１０の起動時に上記の改竄検知処理を実行し、データの正当性が確認されない場合には、メモリデバイス１０が動作しないように制御してもよい。たとえば、メモリデバイス１０のロックをかけ、データの読み出しが不可能になるようにすれば、データの不正利用を排除することが可能である。
【００６４】
図８は、メモリ１への情報の書込みから改竄検知までの処理の流れを示す図である。まず、ユーザデータ５１がスクランブルされ、スクランブルされたユーザデータ５１Ａがメモリ１に格納される。そして、ＲＯＭライタなどの書込装置２により、メモリ１にスクリーニング用データ５３が付加される。そして、コントローラ４は、メモリ１に格納されているユーザデータ５１Ａをデスクランブルし、ユーザデータ５１を得る。そして、スクリーニング用データ５３を利用してユーザデータ５１の改竄の有無を検知するのである。
【００６５】
上記の実施の形態においては、エラーコントロールデータ５２の正当性をチェックするために、圧縮データ５４とエラーコントロールデータ用チェックサム５２１の２つの情報を利用した。これにより、エラーコントロールデータ５２の改竄検出をより高い精度で行うようにしているが、これら２つの情報のうち１つの情報を用いて改竄検出を行うようにしてもよい。
【００６６】
また、上記の実施の形態においては、ユーザデータ５１やエラーコントロールデータ５２から固有情報を計算するアルゴリズムとしては、ＣＲＣ演算方式やＳＨＡ１、ＭＤ５などを例に説明したが、固有情報の計算に利用するアルゴリズムは特に限定されるものではない。また、上記の実施の形態においては、ユーザデータ５１をスクランブルした上で、メモリ１に格納するようにしたが、これはデータの改竄をさらに有効に防止するためであり、必須ではない。あるいは、スクランブルよりもさらに強固な暗号化を施すようにしてもよい。
【図面の簡単な説明】
【００６７】
【図１】本実施の形態に係るメモリと書込装置とを示す図である。
【図２】メモリに格納されるデータ内容を示す図である。
【図３】ユーザデータおよびスクリーニング用データの書込みフローチャートである。
【図４】固有情報としてのチェックサムを示す図である。
【図５】固有情報としてのハッシュ値を示す図である。
【図６】ユーザデータの改竄の有無をチェックするシステムを示す図である。
【図７】改竄有無を判定するフローチャートである。
【図８】メモリに対するデータの書込みから改竄有無の判定までの処理の流れを示す図である。
【図９】ＮＯＲ型フラッシュメモリに対するユーザデータの格納形態を示す図である。
【図１０】ＮＡＮＤ型フラッシュメモリに対するユーザデータの格納形態を示す図である。
【符号の説明】
【００６８】
１    メモリ（ＮＡＮＤ型フラッシュメモリ）
１１  正常領域
１２  不良領域
５１  ユーザデータ
５２  エラーコントロールデータ
５３  スクリーニング用データ
５４  改竄検知用付加データ
５１１  ユーザデータ用チェックサム
５２１  エラーコントロールデータ用チェックサム
５４１  圧縮プログラム
５４２  圧縮データ
【図１】
2008123160.tif 000003
【図２】
2008123160.tif 000004
【図３】
2008123160.tif 000005
【図４】
2008123160.tif 000006
【図５】
2008123160.tif 000007
【図６】
2008123160.tif 000008
【図７】
2008123160.tif 000009
【図８】
2008123160.tif 000010
【図９】
2008123160.tif 000011
【図１０】
2008123160.tif 000012