JP2008123160A - メモリ管理方法 - Google Patents

メモリ管理方法 Download PDF

Info

Publication number
JP2008123160A
JP2008123160A JP2006304845A JP2006304845A JP2008123160A JP 2008123160 A JP2008123160 A JP 2008123160A JP 2006304845 A JP2006304845 A JP 2006304845A JP 2006304845 A JP2006304845 A JP 2006304845A JP 2008123160 A JP2008123160 A JP 2008123160A
Authority
JP
Japan
Prior art keywords
memory
information
data
user data
management method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006304845A
Other languages
English (en)
Other versions
JP4888862B2 (ja
Inventor
Atsushi Kawamura
敦史 川村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips LSI Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MegaChips LSI Solutions Inc filed Critical MegaChips LSI Solutions Inc
Priority to JP2006304845A priority Critical patent/JP4888862B2/ja
Publication of JP2008123160A publication Critical patent/JP2008123160A/ja
Application granted granted Critical
Publication of JP4888862B2 publication Critical patent/JP4888862B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】誤りのあるメモリを利用する上で、データの正当性をチェックするための管理技術を提供することを課題とする。
【解決手段】書込装置2は、NAND型フラッシュメモリであるメモリ1から不良領域情報を取得し、不良領域情報を含むエラーコントロールデータ52を作成する。次に、エラーコントロールデータ52からチェックサムと圧縮データを計算し、ユーザデータ51およびユーザデータ用チェックサム511とともに、メモリ1に格納する。メモリ1からデータを読み出すコントローラ4は、エラーコントロールデータ52をメモリ1から読み出し、チェックサムと圧縮データを求め、メモリ1に格納されているそれら情報と比較チェックする。正当性が確認できれば、さらに、ユーザデータ51を読み出してチェックサムを計算し、メモリ1に格納されているチェックサム511と比較して、改竄検知を行う。
【選択図】図2

Description

本発明は、不良領域の存在するメモリの管理技術に関する。
アプリケーションプログラムなどのコンテンツデータを格納するメモリとしては、NOR型フラッシュメモリが使用されている。NOR型フラッシュメモリは、誤りのないメモリ(不良領域の存在しないメモリ、あるいはビット誤りの発生しないメモリ)であり、コンテンツの格納用に適している。たとえば、携帯電話機、携帯情報端末、パチンコ機、パチスロ機においては、アプリケーションプログラムなどのコンテンツデータ格納用としてNOR型フラッシュメモリが使用されている。
フラッシュメモリは、データを容易に書き換えることができるという特性がある。この特性により、データの更新が容易であるなどのメリットが存在するが、その一方で、コンテンツの格納用にフラッシュメモリが利用された場合、コンテンツの改竄を防止する必要がある。
NOR型フラッシュメモリに格納されているコンテンツデータの正当性をチェックするためには、チェックサムの利用が有効である。図9は、NOR型フラッシュメモリに、たとえば、アプリケーションデータなどのユーザデータが格納されている様子を示している。このユーザデータの正当性をチェックするために、全物理アドレスからデータの単純読み出しを行い、ユーザデータのチェックサムが計算される。そして、予め計算されていた正しいチェックサムと比較することで、正当性の判断を行うのである。
下記特許文献1は、ホームページなどのコンテンツの改竄を検知する技術に関する。コンテンツの登録あるいは更新時に生成した改竄検知情報と、現在のコンテンツから生成された情報とを比較することで、コンテンツの正当性をチェックするようにしている。
特開2001−282619号公報
上述したように、NOR型フラッシュメモリでは、チェックサムによるデータ正当性チェックが有効であり、コンテンツメモリを安定して供給することが可能である。しかし、上述したように、フラッシュメモリは書き換え可能なメモリであるため、もし、チェックサムをフラッシュメモリに格納していた場合には、チェックサム自体が書き換えられるという問題がある。また、NOR型フラッシュメモリは、誤りがないという優れた特徴を備える一方、メモリ単価が高いという問題がある。
たとえば、パチンコ機、パチスロ機のコンテンツ格納用として考えた場合であっても、機器の台数が非常に多いため、メモリ単価の与える影響は大きい。したがって、メモリ単価を下げることができれば、製品供給コストを大幅に低減させることが可能となる。
そこで、上述した問題点のうち、価格面の問題を解決するためには、NOR型フラッシュメモリよりも安価なNAND型フラッシュメモリを使用するという選択肢が考えられる。NAND型フラッシュメモリは、誤りのあるメモリ(不良領域が存在するメモリ、あるいはビット誤りが発生するメモリ)であるが、大容量化、低コスト化を実現している。
図10は、NAND型フラッシュメモリにユーザデータを格納した様子を示している。図に示すように、NAND型フラッシュメモリの記憶領域には、不良領域(INVALID BLOCKあるいはBAD BLOCK)が混在している。不良領域は、デバイスの出荷時点で使用不可能な領域である。不良領域には、データを記録することができないため、別の代替領域にデータが格納されることになる。この不良領域と代替領域の対応関係を示す代替情報は、エラーコントロールデータとして、図に示すようにメモリ内に格納される。
ここで、問題となるのが、データ正当性のチェックである。上述したように、NOR型フラッシュメモリにおいては、全物理アドレスの単純読み出しにより、全ての固体で同一のチェックサムを計算することができる。しかし、NAND型フラッシュメモリの場合、不良領域に格納することができなかったデータについては、代替領域に格納されるため、データの格納位置がデバイスごとで異なることになる。たとえば、格納されているアドレスも考慮してチェックサムを計算する場合、不良領域の発生箇所がデバイスによって異なれば、デバイスによってチェックサムが変化することになる。
NAND型フラッシュメモリでは、デバイスごとに不良領域のばらつきがあるため、通常は、何らかの方法で論理アドレスと物理アドレスの変換を行ってデータを読み出している。このため、単純に誤りがないメモリと同一の方法で全物理アドレスに対するアクセスを行い、読み出したデータに対してチェックサムを計算する方法では、内容確認を行えないのである。
また、そもそも、不良領域については、データ値が不定であるため、チェックサムがデバイスごとに異なることになる。したがって、いずれにしても、誤りのないメモリと同じ方法をそのまま用いてもデータ正当性のチェックを行うことができない。
このように、NAND型フラッシュメモリなど誤りのあるメモリを使用する場合には、単純なチェックサムの利用ができないという問題がある。さらには、上述したように、NOR型、NAND型いずれの場合であっても、フラッシュメモリを利用する場合であって、フラッシュメモリ自体にチェックサムを格納する形態では、チェックサム自体が改竄されることを防止しなければならない。
そこで、本発明は前記問題点に鑑み、誤りのあるメモリを利用する上で、データの正当性をチェックするための管理技術を提供することを目的とする。
上記課題を解決するため、請求項1記載の発明は、ユーザデータが格納されるメモリを管理する方法であって、a)前記メモリから不良領域情報を取得し、取得した不良領域情報を含み、前記メモリに格納される情報の正当性を判定する誤り管理情報を作成する工程と、b)前記工程a)で作成された誤り管理情報の固有情報を抽出する工程と、c)ユーザデータとともに、前記工程a)で作成された誤り管理情報と前記工程b)で抽出された固有情報とを前記メモリに格納する工程と、d)前記工程c)において情報が格納された前記メモリから誤り管理情報を読み出す工程と、e)前記工程d)で読み出された誤り管理情報の固有情報を抽出する工程と、f)前記工程b)で抽出され前記メモリに格納されている固有情報と前記工程e)で抽出された固有情報とを比較して前記メモリに格納されている情報の正当性を判定する工程と、を備えることを特徴とする。
請求項2記載の発明は、請求項1に記載のメモリ管理方法において、不良領域情報は、前記メモリの不良領域のアドレス情報、を含むことを特徴とする。
請求項3記載の発明は、請求項1に記載のメモリ管理方法において、不良領域情報は、前記メモリの不良領域と代替領域とを関連付ける代替情報、を含むことを特徴とする。
請求項4記載の発明は、請求項1ないし請求項3のいずれかに記載のメモリ管理方法において、誤り管理情報の固有情報は、誤り管理情報から演算されたチェックサム、を含むことを特徴とする。
請求項5記載の発明は、請求項1ないし請求項3のいずれかに記載のメモリ管理方法において、誤り管理情報の固有情報は、誤り管理情報から演算されたハッシュ値、を含むことを特徴とする。
請求項6記載の発明は、請求項1ないし請求項5のいずれかに記載のメモリ管理方法において、前記工程a)で作成される誤り管理情報は、ユーザデータの固有情報、を含み、前記メモリ管理方法は、さらに、g)前記工程c)において情報が格納された前記メモリからユーザデータを読み出し、読み出したユーザデータから固有情報を抽出する工程と、h)前記工程c)において前記メモリに格納された誤り管理情報に含まれるユーザデータの固有情報と、前記工程g)で抽出されたユーザデータの固有情報とを比較してユーザデータの正当性を判定する工程と、を備えることを特徴とする。
請求項7記載の発明は、請求項6に記載のメモリ管理方法において、ユーザデータの固有情報は、ユーザデータから演算されたチェックサム、を含むことを特徴とする。
請求項8記載の発明は、請求項6に記載のメモリ管理方法において、ユーザデータの固有情報は、ユーザデータから演算されたハッシュ値、を含むことを特徴とする。
請求項9記載の発明は、請求項1ないし請求項8のいずれかに記載のメモリ管理方法において、前記工程c)は、前記工程a)で作成された誤り管理情報を圧縮するプログラムと、前記プログラムにより圧縮された誤り管理情報の圧縮データとを前記メモリに格納する工程、を含み、前記メモリ管理方法は、さらに、i)前記工程c)において情報が格納された前記メモリから前記プログラムを読み出し、前記メモリに格納されている誤り管理情報を圧縮した圧縮データを生成する工程と、j)前記工程c)で前記メモリに格納された圧縮データと、前記工程i)で生成された圧縮データとを比較して前記メモリに格納されている情報の正当性を判定する工程と、を備えることを特徴とする。
請求項10記載の発明は、請求項1ないし請求項9のいずれかに記載のメモリ管理方法において、前記メモリは、不良領域の存在するメモリ、を含むことを特徴とする。たとえば、不良領域の存在するメモリとしては、NAND型フラッシュメモリが挙げられる。
本発明のメモリ管理方法は、メモリに格納された誤り管理情報の固有情報を利用し、誤り管理情報の正当性をチェックする。これにより、メモリに格納されたデータの改竄を検知することが可能である。
また、誤り管理情報にユーザデータの固有情報を含めるようにしたので、ユーザデータと合わせて、ユーザデータの固有情報が改竄されたような場合にも、改竄を有効に検知することが可能である。
さらに、誤り管理情報の圧縮データを改竄検知用に利用しているので、ユーザデータと合わせて、ユーザデータの固有情報が改竄されたような場合にも、改竄を有効に検知することが可能である。
以下、図面を参照しつつ本発明の実施の形態について説明する。図1は、NAND型フラッシュメモリ1(以下、メモリ1とする。)と、メモリ1にデータを書き込む書込装置2とを示す図である。
メモリ1は、たとえば、パチンコ機やパチスロ機のコンテンツデータを書き込む用途に用いられる。メモリ1は、上述したように、NAND型フラッシュメモリであり、図1の(a)に示すように、データを書き込むことのできる正常領域11と、データを書き込むことのできない不良領域12とを含んでいる。
書込装置2には、別の工程で作成されたユーザデータ51が与えられる。書込装置2は、ユーザデータ51をスクランブルした上で、スクランブル済みのユーザデータ51Aをメモリ1に格納する。
メモリ1にスクランブル済みのユーザデータ51Aが格納されると、図1の(b)に示すように、ユーザデータ51Aとともに、スクリーニング用データ53が記録される。スクリーニング用データ53は、メモリ1に格納された情報の改竄の有無を判定するために用いられるデータである。
スクリーニング用データ53には、図2に示すように、メモリ1に格納される情報の正当性をチェックするためのエラーコントロールデータ52や、エラーコントロールデータ52に基づいて作成された改竄検出用付加データ54や、エラーコントロールデータ用チェックサム521を含んでいる。
エラーコントロールデータ52には、図に示すように、各不良領域がどの代替領域に代替されているかを示す代替情報が含まれている。また、エラーコントロールデータ52には、不良ブロックのアドレスリストや、ビット誤りの訂正に必要な情報(エラー訂正用シンドロームなど)が含まれている。あるいは、エラーコントロールデータ52に、不良領域のブロック数を記録するようにしてもよい。また、図に示すように、エラーコントロールデータ52には、ユーザデータ用チェックサム511が記録されている。
ユーザデータ51は、前述した例であれば、パチンコ機やパチスロ機のコンテンツデータのことである。ユーザデータ51は、別の工程で作成されている。このユーザデータ51は、大量生産される全てのメモリに共通のものである。つまり、このユーザデータ51が、次々にNAND型フラッシュメモリに格納されることで、コンテンツ格納メモリが作成されるのである。
そして、この共通のユーザデータ51に対しては、さらに別の工程で、固有情報が計算されている。固有情報とは、たとえば、上述したユーザデータ用チェックサム511である。他にも、固有情報としてハッシュ値を利用してもよい。
書込装置2は、ユーザデータ51をNAND型フラッシュメモリであるメモリ1に格納する装置である。以下、図3のフローチャートを参照しつつ、書込装置2によるメモリ1に対するデータの書込み手順について説明する。
まず、書込装置2は、新たなメモリ1と接続されると、メモリ1にアクセスし、メモリ1の不良領域情報を取得する(ステップS1)。つまり、書込装置2は、全ての不良領域のアドレスと、各不良領域が代替される領域のアドレスを取得する。また、これにより、不良領域のブロック数を得ることができる。
次に、書込装置2は、ステップS1で取得した不良領域情報に基づいて、エラーコントロールデータ52を作成する(ステップS2)。このエラーコントロールデータ52には、図2で示したように、代替情報が含まれる。代替情報は、不良領域と代替領域との対応関係を示す情報である。また、エラーコントロールデータ52には、不良領域のアドレスリストやビット誤りの訂正に必要な情報、ユーザデータ用チェックサム511が格納される。また、エラーコントロールデータ52に、不良領域のブロック数を格納するようにしてもよい。なお、ユーザデータ用チェックサム511は、予め別の工程で生成されている。ユーザデータ用チェックサム511は、ユーザデータ51から抽出される固有情報であるが、この固有情報の詳細については、次のエラーコントロールデータ52の固有情報とあわせて説明する。
次に、書込装置2は、ステップS2で作成したエラーコントロールデータ52の固有情報を計算する(ステップS3)。
固有情報としては、たとえば、チェックサムを利用することができる。図4は、チェックサムを利用した固有情報を示す図である。まず、ユーザデータ51については、上述したように、予め別の工程でユーザデータ用チェックサム511が計算されている。図で示した例では、CRC演算方式によって計算されたユーザデータ用チェックサム511(8桁)を16進表示している。
このチェックサムは、ユーザデータ51が、誤りのないメモリ(たとえばNOR型フラッシュメモリ)に格納されたと仮定した場合に計算されるチェックサムと同じものである。つまり、ユーザデータを、図9で示したように、不良領域の存在しないNOR型フラッシュメモリの先頭アドレスから順に格納した場合に、その格納されたデータを全物理アドレスについて順に読み出すことによって計算されるチェックサムと同じものである。なお、ブランクも含めてチェックサムを計算するようにしてもよい。
ユーザデータ51は、全てのデバイスに共通のデータであるので、ユーザデータ51に対する固有情報は、上記のように予め別の工程で作成されている。そして、このステップS3では、デバイスによって異なるデータであるエラーコントロールデータ52に基づいて、書込装置2が、エラーコントロールデータ用チェックサム521を計算する。図4では、16進表示されたエラーコントロールデータ用チェックサム521を示している。
このように、ユーザデータ51については、共通のチェックサム、つまり、誤りのないメモリに格納された場合に計算されるチェックサムと同様の値を計算してエラーコントロールデータ52に格納するとともに、不良領域の存在するNAND型フラッシュメモリでデバイスごとに異なるエラーコントロールデータ52についても、固有情報を抽出するのである。
また、固有情報としては、チェックサム以外にハッシュ値を利用することもできる。図5は、SHA1のハッシュ値を利用した固有情報を示す図である。まず、ユーザデータ51からは、上述したように、予め別の工程で、ユーザデータ51のハッシュ値が計算されている。なお、ハッシュ値の計算には、MD5を利用してもよい。
チェックサムの場合と同様、ユーザデータ51は、全てのデバイスに共通のデータであるので、ユーザデータ51に対する固有情報は、上記のように予め別の工程で作成されている。そして、ステップS3では、デバイスによって異なるデータであるエラーコントロールデータ52に基づいて、書込装置2が、ハッシュ値を計算するのである(ステップS3)。
ステップS3において、エラーコントロールデータ52の固有情報を抽出した後、書込装置2は、続いて、圧縮プログラム541を実行して、エラーコントロールデータ52を圧縮し、圧縮データ542を生成する(ステップS4)。この圧縮プログラム541と、圧縮データ542は、改竄検出用付加データ54として利用される。
ステップS4において、エラーコントロールデータ52の圧縮データ542を生成した後、書込装置2は、ユーザデータ51Aをスクランブルし、スクランブルされたユーザデータ51Aとスクリーニング用データ53とをメモリ1に書き込むのである(ステップS5)。上述したように、このスクリーニング用データ53には、エラーコントロールデータ52の他に、改竄検出用付加データ54とエラーコントロールデータ用チェックサム521が含まれている。
このようにして、スクランブルされたユーザデータ51Aとスクリーニング用データ53が書き込まれた状態のメモリ1は、図1の(b)で示した状態となる。なお、図1の(b)では、ユーザデータ51Aの書込み領域にだけ不良領域12が混在しているが、もちろん、スクリーニング用データ53の書込み領域についても、不良領域12が存在している場合はある。
このように、本実施の形態においては、全デバイスで共通のデータであるユーザデータ51に対しては、共通のチェックサムやハッシュ値を計算し、エラーコントロールデータ52に含めてメモリ1に格納する。これにより、ユーザデータ51の正当性をチェックする情報として利用可能である。
さらに、本実施の形態においては、各デバイスで異なるデータであるエラーコントロールデータ52について、それぞれチェックサムやハッシュ値を計算し、固有情報(図2の例では、エラーコントロールデータ用チェックサム521)としてスクリーニング用データ53に含めてメモリ1に格納している。ここで、エラーコントロールデータ52には、不良領域の代替情報が含まれている。したがって、この固有情報を利用することで、代替情報に基づいて正当にデータが格納されていることを確認するための情報を提供可能となる。また、エラーコントロールデータ52は、不良領域のアドレス情報(あるいは不良領域のブロック数でもよい)を保持するので、これによっても、誤りのあるNAND型フラッシュメモリに対して、正しく不良領域が代替されて維持されている状態を確認可能である。
さらに、本実施の形態においては、各デバイスで異なるデータであるエラーコントロールデータ52を圧縮し、圧縮プログラム541とともに圧縮データ542をスクリーニング用データ53に含めてメモリ1に格納している。これにより、たとえば、ユーザデータ51と合わせてユーザデータ用チェックサム511が改竄された場合であっても、圧縮データを比較することで、改竄を検知することが可能である。なお、圧縮プログラム541のアルゴリズムは秘匿状態にしておく。また、圧縮プログラム541は、認証されたCPUでなければ実行できないように生成しておく。
図6は、上記の手順で管理されているメモリ1の正当性をチェックするシステムを示す図である。このシステムは、ホストコンピュータ5と、メモリ1を含むメモリデバイス10とで構成される。メモリデバイス10は、メモリ1と、メモリ1へのアクセスをコントロールするコントローラ4とを備えている。
コントローラ4は、動作モードとして、NORインタフェースモードを設定可能となっている。コントローラ4が、NORインタフェースモードに設定されている場合、メモリ1に対して、連続的に全物理アドレスに対してデータ読み出しを行うと、不良領域については、代替領域の情報が読み出されて、ホストコンピュータ5に対して読み出しデータが転送される。つまり、ホストコンピュータ5は、ユーザデータ51が、NOR型フラッシュメモリに格納されている場合と同様の手順、インタフェースで、読み出しデータを入力することができるのである。
また、コントローラ4は、改竄検知機能を備えている。コントローラ4は、メモリデバイス10の起動時に、図7のフローチャートに示すような改竄検知処理を実行する。
まず、コントローラ4は、圧縮データの比較チェックを行う(ステップS11)。具体的には、コントローラ4は、メモリ1からエラーコントロールデータ52および圧縮プログラム541を読み出す。そして、読み出したエラーコントロールデータ52を、読み出した圧縮プログラム541で圧縮し、圧縮データを生成する。続いて、コントローラ4は、生成した圧縮データとメモリ1に格納されている圧縮データ542とを比較チェックし、改竄の有無を検知するのである。もし、ユーザデータ51とともにユーザデータ用チェックサム511が改竄されていれば、圧縮データの内容が変更されるため、改竄を検知することが可能である。なお、コントローラ4は、圧縮プログラム541を実行するための認証情報を保持している。
次に、コントローラ4は、エラーコントロールデータ用チェックサム521の比較チェックを行う(ステップS12)。具体的には、コントローラ4は、メモリ1から読み出したエラーコントロールデータ52からチェックサムを計算する。このチェックサムを計算するアルゴリズムは、スクリーニング用データ53に格納されているエラーコントロールデータ用チェックサム521を計算するときに用いたアルゴリズムと同じアルゴリズムである。つまり、コントローラ4には、エラーコントロールデータ用チェックサム521を計算するために用いたアルゴリズムが実装されている。また、コントローラ4は、代替情報に基づいて、不良領域については代替領域のデータを読み出すことによってエラーコントロールデータ52を読み出し、チェックサムを計算する。つまり、コントローラ4は、NOAインタフェースで出力されるエラーコントロールデータ52に対してチェックサムを計算する。
そして、コントローラ4は、計算で求めたチェックサムと、メモリ1に格納されているエラーコントロールデータ用チェックサム521とを比較チェックし、改竄の有無を検知するのである。もし、ユーザデータ51とともにユーザデータ用チェックサム511が改竄されていれば、チェックサムの内容が変更されるため、改竄を検知することが可能である。なお、固有情報としてハッシュ値を利用している場合には、コントローラ4は、エラーコントロールデータ52のハッシュ値を計算し、メモリ1に格納されているエラーコントロールデータ52のハッシュ値と比較することで、同様に、改竄を検知することが可能である。
次に、コントローラ4は、ユーザデータ用チェックサム511の比較チェックを行う(ステップS13)。つまり、コントローラ4は、メモリ1に格納されているユーザデータ51Aの正当性をチェックする。まず、コントローラ4は、メモリ1からユーザデータ51Aを読み出し、デスクランブル処理を実行してユーザデータ51を得る。続いて、コントローラ4は、ユーザデータ51のチェックサムを計算する。このチェックサムを計算するアルゴリズムは、エラーコントロールデータ52に格納されているユーザデータ用チェックサム511を計算するときに用いたアルゴリズムと同じアルゴリズムである。つまり、コントローラ4には、ユーザデータ用チェックサム511を計算するために用いたアルゴリズムが実装されている。また、コントローラ4は、代替情報に基づいて、不良領域については代替領域のデータを読み出すことによってユーザデータ51を読み出し、チェックサムを計算する。つまり、コントローラ4は、NOAインタフェースで出力されるユーザデータ51に対してチェックサムを計算する。
そして、コントローラ4は、デスクランブルしたユーザデータに基づいて求めたチェックサムと、エラーコントロールデータ52に格納されているユーザデータ用チェックサム511とを比較することで、ユーザデータ51の改竄の有無をチェックするのである。
このように、本実施の形態においては、まず、圧縮データ541のチェックおよびエラーコントロールデータ用チェックサム521のチェックを行うことで、エラーコントロールデータ52自体が改竄されていないかどうかをチェックする。たとえば、ユーザデータ用チェックサム511が改竄されていれば、検知可能である。そして、エラーコントロールデータ52が改竄されていないことを検知した上で、ユーザデータ51の改竄検知を行うのである。これにより、ユーザデータ51と合わせてユーザデータ用チェックサム511が改竄されている場合でも、改竄を検知可能である。
また、ユーザデータ51あるいはエラーコントロールデータ52のチェックサムを求めるときには、コントローラ4は、NOAインタフェースモードで出力されるデータに対してチェックサムを求める。したがって、ユーザデータ51やエラーコントロールデータ52の格納領域に不良領域が存在する場合であっても、データが改竄されていない場合には、スクリーニング用データ53に格納されているそれらデータのチェックサムと同じ値を求めることができる。
コントローラ4は、メモリデバイス10の起動時に上記の改竄検知処理を実行し、データの正当性が確認されない場合には、メモリデバイス10が動作しないように制御してもよい。たとえば、メモリデバイス10のロックをかけ、データの読み出しが不可能になるようにすれば、データの不正利用を排除することが可能である。
図8は、メモリ1への情報の書込みから改竄検知までの処理の流れを示す図である。まず、ユーザデータ51がスクランブルされ、スクランブルされたユーザデータ51Aがメモリ1に格納される。そして、ROMライタなどの書込装置2により、メモリ1にスクリーニング用データ53が付加される。そして、コントローラ4は、メモリ1に格納されているユーザデータ51Aをデスクランブルし、ユーザデータ51を得る。そして、スクリーニング用データ53を利用してユーザデータ51の改竄の有無を検知するのである。
上記の実施の形態においては、エラーコントロールデータ52の正当性をチェックするために、圧縮データ54とエラーコントロールデータ用チェックサム521の2つの情報を利用した。これにより、エラーコントロールデータ52の改竄検出をより高い精度で行うようにしているが、これら2つの情報のうち1つの情報を用いて改竄検出を行うようにしてもよい。
また、上記の実施の形態においては、ユーザデータ51やエラーコントロールデータ52から固有情報を計算するアルゴリズムとしては、CRC演算方式やSHA1、MD5などを例に説明したが、固有情報の計算に利用するアルゴリズムは特に限定されるものではない。また、上記の実施の形態においては、ユーザデータ51をスクランブルした上で、メモリ1に格納するようにしたが、これはデータの改竄をさらに有効に防止するためであり、必須ではない。あるいは、スクランブルよりもさらに強固な暗号化を施すようにしてもよい。
本実施の形態に係るメモリと書込装置とを示す図である。 メモリに格納されるデータ内容を示す図である。 ユーザデータおよびスクリーニング用データの書込みフローチャートである。 固有情報としてのチェックサムを示す図である。 固有情報としてのハッシュ値を示す図である。 ユーザデータの改竄の有無をチェックするシステムを示す図である。 改竄有無を判定するフローチャートである。 メモリに対するデータの書込みから改竄有無の判定までの処理の流れを示す図である。 NOR型フラッシュメモリに対するユーザデータの格納形態を示す図である。 NAND型フラッシュメモリに対するユーザデータの格納形態を示す図である。
符号の説明
1 メモリ(NAND型フラッシュメモリ)
11 正常領域
12 不良領域
51 ユーザデータ
52 エラーコントロールデータ
53 スクリーニング用データ
54 改竄検知用付加データ
511 ユーザデータ用チェックサム
521 エラーコントロールデータ用チェックサム
541 圧縮プログラム
542 圧縮データ

Claims (10)

  1. ユーザデータが格納されるメモリを管理する方法であって、
    a)前記メモリから不良領域情報を取得し、取得した不良領域情報を含み、前記メモリに格納される情報の正当性を判定する誤り管理情報を作成する工程と、
    b)前記工程a)で作成された誤り管理情報の固有情報を抽出する工程と、
    c)ユーザデータとともに、前記工程a)で作成された誤り管理情報と前記工程b)で抽出された固有情報とを前記メモリに格納する工程と、
    d)前記工程c)において情報が格納された前記メモリから誤り管理情報を読み出す工程と、
    e)前記工程d)で読み出された誤り管理情報の固有情報を抽出する工程と、
    f)前記工程b)で抽出され前記メモリに格納されている固有情報と前記工程e)で抽出された固有情報とを比較して前記メモリに格納されている情報の正当性を判定する工程と、
    を備えることを特徴とするメモリ管理方法。
  2. 請求項1に記載のメモリ管理方法において、
    不良領域情報は、
    前記メモリの不良領域のアドレス情報、
    を含むことを特徴とするメモリ管理方法。
  3. 請求項1に記載のメモリ管理方法において、
    不良領域情報は、
    前記メモリの不良領域と代替領域とを関連付ける代替情報、
    を含むことを特徴とするメモリ管理方法。
  4. 請求項1ないし請求項3のいずれかに記載のメモリ管理方法において、
    誤り管理情報の固有情報は、
    誤り管理情報から演算されたチェックサム、
    を含むことを特徴とするメモリ管理方法。
  5. 請求項1ないし請求項3のいずれかに記載のメモリ管理方法において、
    誤り管理情報の固有情報は、
    誤り管理情報から演算されたハッシュ値、
    を含むことを特徴とするメモリ管理方法。
  6. 請求項1ないし請求項5のいずれかに記載のメモリ管理方法において、
    前記工程a)で作成される誤り管理情報は、
    ユーザデータの固有情報、
    を含み、
    前記メモリ管理方法は、さらに、
    g)前記工程c)において情報が格納された前記メモリからユーザデータを読み出し、読み出したユーザデータから固有情報を抽出する工程と、
    h)前記工程c)において前記メモリに格納された誤り管理情報に含まれるユーザデータの固有情報と、前記工程g)で抽出されたユーザデータの固有情報とを比較してユーザデータの正当性を判定する工程と、
    を備えることを特徴とするメモリ管理方法。
  7. 請求項6に記載のメモリ管理方法において、
    ユーザデータの固有情報は、
    ユーザデータから演算されたチェックサム、
    を含むことを特徴とするメモリ管理方法。
  8. 請求項6に記載のメモリ管理方法において、
    ユーザデータの固有情報は、
    ユーザデータから演算されたハッシュ値、
    を含むことを特徴とするメモリ管理方法。
  9. 請求項1ないし請求項8のいずれかに記載のメモリ管理方法において、
    前記工程c)は、
    前記工程a)で作成された誤り管理情報を圧縮するプログラムと、前記プログラムにより圧縮された誤り管理情報の圧縮データとを前記メモリに格納する工程、
    を含み、
    前記メモリ管理方法は、さらに、
    i)前記工程c)において情報が格納された前記メモリから前記プログラムを読み出し、前記メモリに格納されている誤り管理情報を圧縮した圧縮データを生成する工程と、
    j)前記工程c)で前記メモリに格納された圧縮データと、前記工程i)で生成された圧縮データとを比較して前記メモリに格納されている情報の正当性を判定する工程と、
    を備えることを特徴とするメモリ管理方法。
  10. 請求項1ないし請求項9のいずれかに記載のメモリ管理方法において、
    前記メモリは、
    不良領域の存在するメモリ、
    を含むことを特徴とするメモリ管理方法。
JP2006304845A 2006-11-10 2006-11-10 メモリ管理方法 Expired - Fee Related JP4888862B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006304845A JP4888862B2 (ja) 2006-11-10 2006-11-10 メモリ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006304845A JP4888862B2 (ja) 2006-11-10 2006-11-10 メモリ管理方法

Publications (2)

Publication Number Publication Date
JP2008123160A true JP2008123160A (ja) 2008-05-29
JP4888862B2 JP4888862B2 (ja) 2012-02-29

Family

ID=39507866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006304845A Expired - Fee Related JP4888862B2 (ja) 2006-11-10 2006-11-10 メモリ管理方法

Country Status (1)

Country Link
JP (1) JP4888862B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013516000A (ja) * 2009-12-23 2013-05-09 サンディスク テクノロジィース インコーポレイテッド メモリ装置における制御データの誤り訂正システムおよび方法
US8788894B2 (en) 2011-11-04 2014-07-22 Samsung Electronics Co., Ltd. Method of enhancing error correction performance and storage device using the method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198884A (ja) * 1996-01-16 1997-07-31 Toshiba Corp フラッシュメモリ管理方法
JP2003036209A (ja) * 2001-07-25 2003-02-07 Sony Corp 不揮発性メモリ並びに不揮発性メモリのデータ書き換え方法
JP2005050442A (ja) * 2003-07-30 2005-02-24 Sanyo Electric Co Ltd 冗長メモリ回路
JP2006108162A (ja) * 2004-09-30 2006-04-20 Sumitomo Osaka Cement Co Ltd 気密封止方法及び該方法を用いた気密封止体、並びに該方法に用いる加熱装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198884A (ja) * 1996-01-16 1997-07-31 Toshiba Corp フラッシュメモリ管理方法
JP2003036209A (ja) * 2001-07-25 2003-02-07 Sony Corp 不揮発性メモリ並びに不揮発性メモリのデータ書き換え方法
JP2005050442A (ja) * 2003-07-30 2005-02-24 Sanyo Electric Co Ltd 冗長メモリ回路
JP2006108162A (ja) * 2004-09-30 2006-04-20 Sumitomo Osaka Cement Co Ltd 気密封止方法及び該方法を用いた気密封止体、並びに該方法に用いる加熱装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013516000A (ja) * 2009-12-23 2013-05-09 サンディスク テクノロジィース インコーポレイテッド メモリ装置における制御データの誤り訂正システムおよび方法
US8788894B2 (en) 2011-11-04 2014-07-22 Samsung Electronics Co., Ltd. Method of enhancing error correction performance and storage device using the method
KR101730497B1 (ko) 2011-11-04 2017-04-27 삼성전자 주식회사 에러 정정 성능 신장 방법 및 이를 이용한 저장 장치

Also Published As

Publication number Publication date
JP4888862B2 (ja) 2012-02-29

Similar Documents

Publication Publication Date Title
US7774615B2 (en) Integrity control of a memory external to a processor
US10372914B2 (en) Validating firmware on a computing device
JP5839659B2 (ja) 半導体装置
US8751817B2 (en) Data processing apparatus and validity verification method
US8127144B2 (en) Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit
US20220075873A1 (en) Firmware security verification method and device
US20120066515A1 (en) Electronic device, key generation program, recording medium, and key generation method
JP6494373B2 (ja) 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム
WO2003065225A1 (fr) Dispositif de memoire, appareil terminal et systeme de reparation de donnees
EP3678025A1 (en) Computer code integrity checking
US11755694B2 (en) Barcode-based license configuration for air-gapped systems
US9245152B2 (en) Method for authenticating a storage device, machine-readable storage medium, and host device
JP4888862B2 (ja) メモリ管理方法
WO2016173267A1 (zh) 一种完整性校验方法和装置
JP4863472B2 (ja) メモリ管理方法
JP5986279B2 (ja) 半導体装置
CN106294020B (zh) 安卓系统应用分区文件保护方法及终端
US11475170B2 (en) System and method for correction of memory errors
JP5786702B2 (ja) セキュリティトークン、セキュリティトークンにおける命令の実行方法及びコンピュータプログラム
CN117113437B (zh) 一种文件篡改检测方法、装置、计算机设备及存储介质
CN107368743B (zh) 信息处理设备和信息处理方法
JP4671913B2 (ja) 原本性保証電子保存装置、原本性保証電子保存方法およびプログラム
JP5200686B2 (ja) 情報処理装置、正常処理判別方法、及び情報処理プログラム
JP2004355561A (ja) 起動装置
JP2005202822A (ja) データ整合性検査を省けるicカードおよびicカード用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090323

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20090323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111101

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111206

R150 Certificate of patent or registration of utility model

Ref document number: 4888862

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees