JP2011181000A - コントローラ、半導体記憶装置および半導体記憶装置の制御方法 - Google Patents

コントローラ、半導体記憶装置および半導体記憶装置の制御方法 Download PDF

Info

Publication number
JP2011181000A
JP2011181000A JP2010046919A JP2010046919A JP2011181000A JP 2011181000 A JP2011181000 A JP 2011181000A JP 2010046919 A JP2010046919 A JP 2010046919A JP 2010046919 A JP2010046919 A JP 2010046919A JP 2011181000 A JP2011181000 A JP 2011181000A
Authority
JP
Japan
Prior art keywords
address
access
information
obfuscation
storage unit
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.)
Pending
Application number
JP2010046919A
Other languages
English (en)
Inventor
Takeo Morita
健夫 森田
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.)
Toshiba Corp
Toshiba Information Systems Japan Corp
Original Assignee
Toshiba Corp
Toshiba Information Systems Japan Corp
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 Toshiba Corp, Toshiba Information Systems Japan Corp filed Critical Toshiba Corp
Priority to JP2010046919A priority Critical patent/JP2011181000A/ja
Priority to US13/039,999 priority patent/US20110219173A1/en
Publication of JP2011181000A publication Critical patent/JP2011181000A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】所定の単位ごとに難読化処理が施された機密情報にアクセスする際に、従来の方式に比してメモリアクセスのレイテンシを改善できるコントローラを提供する。
【解決手段】アクセスアドレスを含むアドレス情報に基づいて難読化情報を生成する難読化情報生成回路201と、難読化情報を保持する難読化情報保持回路202と、難読化情報保持回路202中のアクセスアドレスに対応付けられた難読化情報を用いて、アクセスアドレスで指定されるデータの符号化または復号化を行う符号/復号化回路203と、難読化情報をその基となるアドレスと対応付けて管理し、アクセス要求を受けるとアクセス要求中のアクセスアドレスが難読化情報保持回路202中の難読化情報の基となるアドレスに一致するかを判定し、判定結果に基づいて難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアドレス/難読化情報関連付け回路204と、を備える。
【選択図】図2

Description

本発明は、半導体記憶装置を制御するコントローラ、このコントローラを備える半導体記憶装置、および半導体記憶装置の制御方法に関する。
オープンシステムの一般ユーザ向けコンピュータで、プログラム自体やプログラムが扱う情報が不正に覗き見されないようにする技術が提案されている(たとえば、特許文献1参照)。
特開2003−108442号公報
本発明は、メモリアクセスのレイテンシを改善することができるコントローラ、半導体記憶装置および半導体記憶装置の制御方法を提供する。
本発明の一態様によれば、ホスト装置と不揮発性の第1の記憶部との間で揮発性の第2の記憶部を介してデータ転送を行うコントローラにおいて、アクセスアドレスを含むアドレス情報に基づいて難読化情報を生成する難読化情報生成回路と、前記難読化情報を保持する難読化情報保持回路と、前記難読化情報保持回路中の前記アクセスアドレスに対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、前記難読化情報をその基となるアドレスと対応付けて管理し、アクセス要求を受けると前記アクセス要求中のアクセスアドレスが以前用いられ前記難読化情報保持回路に保持されている難読化情報の基となるアドレスに一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアドレス/難読化情報関連付け回路と、を備えることを特徴とするコントローラが提供される。
また、本発明の一態様によれば、ホスト装置と不揮発性の第1の記憶部との間で揮発性の第2の記憶部を介してデータ転送を行うコントローラにおいて、アクセスアドレスまたは隣接アドレス算出回路で算出された隣接アドレスを含むアドレス情報に基づいて難読化情報を生成する難読化情報生成回路と、前記難読化情報を保持する難読化情報保持回路と、前記アクセスアドレスまたは前記隣接アドレスに対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、アクセス要求中のアクセスアドレスに隣接する隣接アドレスを算出する隣接アドレス算出回路と、前記アクセス要求を受けると、前記アクセス要求中のアクセスアドレスが前回のアクセス要求時に前記隣接アドレス算出回路で算出された隣接アドレスに一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアドレス判定回路と、を備えることを特徴とするコントローラが提供される。
さらに、本発明の一態様によれば、ホスト装置と不揮発性の第1の記憶部との間で揮発性の第2の記憶部を介してデータ転送を行うコントローラにおいて、アクセス要求のアクセス時刻を含む時刻情報に基づいて難読化情報を生成する難読化情報生成回路と、前記難読化情報を保持する難読化情報保持回路と、前記難読化情報保持回路中の前記アクセス時刻に対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、前記アクセス要求を受けると、つぎのアクセス要求の予想される次アクセス時刻を算出する次アクセス時刻算出回路と、アクセス要求を受けると、前記アクセス要求がなされた時刻が、前回のアクセス要求時に前記次アクセス時刻算出回路で算出された次アクセス時刻に一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアクセス時刻判定回路と、を備えることを特徴とするコントローラが提供される。
また、本発明の一態様によれば、不揮発性の第1の記憶部と、揮発性の第2の記憶部と、ホスト装置と前記第1の記憶部との間で前記第2の記憶部を介してデータ転送を行うコントローラと、を備える半導体記憶装置において、前記コントローラは、アクセスアドレスを含むアドレス情報に基づいて難読化情報を生成する難読化情報生成回路と、前記難読化情報を保持する難読化情報保持回路と、前記難読化情報保持回路中の前記アクセスアドレスに対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、前記難読化情報をその基となるアドレスと対応付けて管理し、アクセス要求を受けると前記アクセス要求中のアクセスアドレスが以前用いられ前記難読化情報保持回路に保持されている難読化情報の基となるアドレスに一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアドレス/難読化情報関連付け回路と、を備えることを特徴とする半導体記憶装置が提供される。
さらに、本発明の一態様によれば、不揮発性の第1の記憶部と、揮発性の第2の記憶部と、ホスト装置と前記第1の記憶部との間で前記第2の記憶部を介してデータ転送を行うコントローラと、を備える半導体記憶装置において、前記コントローラは、アクセスアドレスまたは隣接アドレス算出回路で算出された隣接アドレスを含むアドレス情報に基づいて難読化情報を生成する難読化情報生成回路と、前記難読化情報を保持する難読化情報保持回路と、前記アクセスアドレスまたは前記隣接アドレスに対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、アクセス要求中のアクセスアドレスに隣接する隣接アドレスを算出する隣接アドレス算出回路と、前記アクセス要求を受けると、前記アクセス要求中のアクセスアドレスが前回のアクセス要求時に前記隣接アドレス算出回路で算出された隣接アドレスに一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアドレス判定回路と、を備えることを特徴とする半導体記憶装置が提供される。
また、本発明の一態様によれば、不揮発性の第1の記憶部と、揮発性の第2の記憶部と、ホスト装置と前記第1の記憶部との間で前記第2の記憶部を介してデータ転送を行うコントローラと、を備える半導体記憶装置において、前記コントローラは、アクセス要求のアクセス時刻を含む時刻情報に基づいて難読化情報を生成する難読化情報生成回路と、前記難読化情報を保持する難読化情報保持回路と、前記難読化情報保持回路中の前記アクセス時刻に対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、前記アクセス要求を受けると、つぎのアクセス要求の予想される次アクセス時刻を算出する次アクセス時刻算出回路と、アクセス要求を受けると、前記アクセス要求がなされた時刻が、前回のアクセス要求時に前記次アクセス時刻算出回路で算出された次アクセス時刻に一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアクセス時刻判定回路と、を備えることを特徴とする半導体記憶装置が提供される。
さらに、本発明の一態様によれば、不揮発性の第1の記憶部と、揮発性の第2の記憶部と、を備える半導体記憶装置の制御方法において、前記第2の記憶部に対するアクセス要求が発生すると、前記アクセス要求中のアクセスアドレスに対応した難読化情報が保持されているか判定し、前記判定の結果、前記難読化情報が保持されていない場合に、前記アクセスアドレスを含むアドレス情報に基づいて前記難読化情報を生成する工程と、前記難読化情報を前記アクセスアドレスに対応付けて保持する工程と、前記難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す工程と、を含む処理を行い、前記判定の結果、前記難読化情報が保持されている場合に、前記難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す処理を行うことを特徴とする半導体記憶装置の制御方法が提供される。
また、本発明の一態様によれば、不揮発性の第1の記憶部と、揮発性の第2の記憶部と、を備える半導体記憶装置の制御方法において、前記第2の記憶部に対するアクセス要求が発生すると、前記アクセス要求中のアクセスアドレスが、前回のアクセス要求時に生成された第1の隣接アドレスに一致するか判定し、前記判定の結果、前記アクセスアドレスが前記第1の隣接アドレスに一致しない場合に、前記アクセスアドレスを含むアドレス情報に基づいて第1の難読化情報を生成する工程と、前記第1の難読化情報を前記アクセスアドレスに対応付けて保持する工程と、前記アクセスアドレスに隣接する第2の隣接アドレスを算出する工程と、前記第1の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す工程と、算出した前記第2の隣接アドレスを含むアドレス情報に基づいて第2の難読化情報を生成する工程と、前記第2の隣接アドレスに対応付けて前記第2の難読化情報を保持する工程と、を含む処理を行い、前記判定の結果、前記アクセスアドレスが前記第1の隣接アドレスに一致する場合に、前記第1の隣接アドレスに対応付けて保持された第3の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す処理を行うことを特徴とする半導体記憶装置の制御方法が提供される。
さらに、本発明の一態様によれば、不揮発性の第1の記憶部と、揮発性の第2の記憶部と、を備えるメモリシステムの制御方法において、前記第2の記憶部に対するアクセス要求が発生すると、前記アクセス要求中のアクセスアドレスが、前回のアクセス要求時に生成された第1の隣接アドレスに一致するか第1の判定を行い、前記第1の判定の結果、前記アクセスアドレスが前記第1の隣接アドレスに一致する場合に、前記第1の隣接アドレスに対応付けて保持された第1の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す処理を行い、前記第1の判定の結果、前記アクセスアドレスが前記第1の隣接アドレスに一致しない場合に、前記アクセスアドレスに対応した第2の難読化情報が保持されているか第2の判定をさらに行い、前記第2の判定の結果、前記第2の難読化情報が保持されていない場合に、前記アクセスアドレスを含むアドレス情報に基づいて前記第2の難読化情報を生成する工程と、前記第2の難読化情報を前記アクセスアドレスに対応付けて保持する工程と、前記アクセスアドレスに隣接する第2の隣接アドレスを算出する工程と、前記第2の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す工程と、前記第2の隣接アドレスを含むアドレス情報に基づいて第3の難読化情報を生成する工程と、前記第2の隣接アドレスに対応付けて前記第4の難読化情報を保持する工程と、を含む処理を行い、前記第2の判定の結果、前記第2の難読化情報が保持されている場合に、前記第2の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す処理を行うことを特徴とする半導体記憶装置の制御方法が提供される。
また、本発明の一態様によれば、不揮発性の第1の記憶部と、揮発性の第2の記憶部と、を備える半導体記憶装置の制御方法において、前記第2の記憶部に対するアクセス要求が発生すると、前記アクセス要求のアクセス時刻が、前回のアクセス要求時に算出された第1の次アクセス時刻に一致するかを判定し、前記判定の結果、前記アクセス時刻が前記第1の次アクセス時刻に一致しない場合に、前記アクセス時刻を含む時刻情報に基づいて第1の難読化情報を生成する工程と、前記第1の難読化情報を保持する工程と、前記アクセス時刻のつぎの第2の次アクセス時刻を算出する工程と、前記第1の難読化情報を用いて、前記アクセス要求で指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセス要求で指定されるデータを復号化して前記第2の記憶部から読み出す工程と、前記第2の次アクセス時刻に基づいて第2の難読化情報を生成する工程と、前記第2の次アクセス時刻に対応付けて前記第2の難読化情報を保持する工程と、を含む処理を行い、前記判定の結果、前記アクセス時刻が前記第1の次アクセス時刻に一致する場合に、前記第1の次アクセス時刻に対応付けて保持された第3の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す処理を行うことを特徴とする半導体記憶装置の制御方法が提供される。
本発明によれば、メモリアクセスのレイテンシを改善することができるという効果を奏する。
図1は、半導体記憶装置の構成の一例を模式的に示すブロック図である。 図2は、第1の実施の形態によるコントローラの難読化処理部の構成の一例を模式的に示すブロック図である。 図3は、第1の実施の形態によるデータアクセス時の制御方法の一例を示すフローチャートである。 図4は、第2の実施の形態によるコントローラの難読化処理部の構成の一例を模式的に示すブロック図である。 図5は、第2の実施の形態によるデータアクセス時の制御方法の一例を示すフローチャートである。 図6は、第3の実施の形態によるコントローラの難読化処理部の構成の一例を模式的に示すブロック図である。 図7は、第3の実施の形態によるデータアクセス時の制御方法の一例を示すフローチャートである。 図8は、定期的にデータの書き込み/読み出しが発生する場合の一例を示す図である。 図9は、第4の実施の形態によるコントローラの難読化処理部の構成の一例を模式的に示すブロック図である。 図10は、第4の実施の形態によるデータアクセス時の制御方法の一例を示すフローチャートである。
特許文献1に開示された技術では、ソフトウェアベンダは、平文プログラムを所定の長さのブロック毎に分割し、ブロック毎に異なるブロック対応鍵を用いて暗号化を行って暗号プログラムを作成する。ブロック対応鍵をブロック数に応じて用意するのではなく、複数の鍵を生成するための基本となる定数Cxと、Cxに基づいて生成した複数の中間値を暗号化する鍵Kxと、の2つを配布鍵として用意し、この配布鍵から各ブロック対応鍵を生成するようにしている。具体的には、ブロック毎にCxに基づいて生成される中間値を鍵Kxで暗号化したものがブロック対応鍵となる。この配布鍵は、配布先のコンピュータのプロセッサの公開鍵で暗号化され、暗号プログラムとともに配布先のコンピュータの2次記憶装置に記憶される。
配布先のコンピュータで暗号プログラムを実行する場合には、プロセッサは、2次記憶装置から暗号プログラムをメモリに配置し、アクセス要求のあったアドレス範囲の暗号プログラムがキャッシュメモリへと読み込まれる。このとき、プロセッサでは、アクセス要求のあったアドレスと配布鍵の定数Cxとを用いて、復号化するためのブロック対応鍵を生成する処理を行った後、ブロック対応鍵を用いてメモリから読み出した暗号プログラムのブロックを復号化し、キャッシュメモリへと格納する。
このように、アクセス要求があったブロック毎に、ブロック対応鍵を計算して求め、このブロック対応鍵を用いて復号化の処理を行うという方法では、メモリアクセスのレイテンシが増加してしまい、システム応答速度の低下につながってしまう問題点があった。
以下に添付図面を参照して、本発明の実施の形態にかかるコントローラ、半導体記憶装置および半導体記憶装置の制御方法を詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
最初に、上記特許文献1についての問題点を説明し、その後に、特許文献1の問題点を解決する本発明の実施の形態について説明を行う。既に述べたように、特許文献1の方法では、アクセスを行う暗号プログラムの範囲がアドレスで指定された後に、その指定されたアドレスに対応するブロックを復号化するためのブロック対応鍵を生成する処理を行い、そのブロック対応鍵を用いて暗号プログラムの復号化を行っていた。
そのため、たとえば以前指定されたアドレスと同じアドレスが指定された場合でも、アクセスを行う暗号プログラムの範囲に対応するブロックを復号化するためのブロック対応鍵の生成処理を行って、そのブロック対応鍵を用いて暗号プログラムの復号化を行わなければならなかった。つまり、アドレス指定後に、ブロック対応鍵を生成する処理の時間だけ平文プログラムへアクセスする時間が遅くなってしまうという問題点があった。
また、一般的にプロセッサは、プロセッサの処理可能な最小単位の1倍よりも大きい長さでデータを要求することが多い。たとえば、上記特許文献1でのブロックで、数ブロック分の長さのデータをプロセッサが要求することが確率的に多い。このような場合に、特許文献1に記載の方法では、プロセッサによって暗号プログラム中の第1のブロックに対応するアドレスが指定されると、第1のブロックに対応した第1のブロック対応鍵を生成し、第1のブロック鍵で第1のブロックを復号化してキャッシュメモリに格納し、つぎに第2のブロックについても同様の処理を行っていた。このように、1ブロック分よりも大きなデータに対するアクセスが生じる場合にも、特許文献1の方法では、それぞれのブロックのアクセス要求が来た後にブロック対応鍵の生成処理を行っているので、プロセッサが平文プログラムへアクセスするには、ブロック対応鍵の生成処理とそのブロック対応鍵を用いた復号化処理の後となり、アクセス要求がなされてから実際にプロセッサが平文プログラムにアクセスするまでに時間を要してしまうという問題点があった。
そこで、以下では、これらの従来技術の問題点を解決することができる本発明の実施の形態について説明を行う。
(第1の実施の形態)
図1は、半導体記憶装置の構成の一例を模式的に示すブロック図である。ここでは、半導体記憶装置として、NAND型フラッシュメモリを主記憶装置として有するSSD(Solid State Drive)1を例に挙げている。図1に示されるように、SSD1は、パーソナルコンピュータなどのホスト装置にSATA(Serial Advanced Technology Attachment)インタフェースなどの通信規格で接続され、ホスト装置の外部メモリとして機能する。SSD1は、ホスト装置から書き込み要求されたデータを記憶する不揮発性メモリであるNANDメモリ2と、ホスト装置とNANDメモリ2との間のデータ転送を制御する転送コントローラとしてのSSDコントローラ3と、SSDコントローラ3によってデータ転送のためのバッファ領域として使用される揮発性メモリであるDRAM(Dynamic Random Access Memory)4と、を備える。
SSDコントローラ3は、データアクセス用バス101および回路制御用バス102を備える。回路制御用バス102には、SSDコントローラ3全体を制御するプロセッサ103と、NANDメモリ2に記憶された各管理プログラム(ファームウエア)をブートするブート用プログラムが格納されたROM(Read Only Memory)104が接続されている。
データアクセス用バス101には、データ作業領域およびファームウェア展開領域として使用されるSRAM(Static RAM)105がSRAMコントローラ106を介して接続されている。NANDメモリ2に記憶されているファームウェアは起動時、ROM104に記憶されたブート用プログラムによってSRAM105に転送され、展開される。プロセッサ103は、SRAM105に展開されたファームウェアを実行することによって、SSDコントローラ3全体を制御する。
また、データアクセス用バス101には、DRAM4に対するリード/ライト制御を実行するコントローラとしてのDRAMコントローラ107が接続されている。DRAMコントローラ107は、転送データをDRAM4に書き込み、書き込んだ転送データを読み出す一連のDRAMアクセスの前後で発生するエラーを検出し、アクセス時にエラーが頻発する領域を使用停止させる。また、DRAMコントローラ107は、SSD1の外部に読み出されたくない機密情報をプロセッサ103の指示にしたがって、復号化処理(難読化を解除する処理)を行ったり、符号化処理(難読化を実行する処理)を行ったりする。したがって、DRAM4には符号化処理が施されたデータが格納される。
SATAインタフェースコントローラ(SATAコントローラ)108、NAND用エラー訂正回路109、およびNANDコントローラ110は、データアクセス用バス101と回路制御用バス102との両方に接続されている。SATAコントローラ108は、SATAインタフェースを介してホスト装置との間でデータを送受信する。
NANDコントローラ110は、NANDメモリ2に対するインタフェース機能とNANDメモリ2に対するアクセス時に発生するエラーを訂正するエラー訂正機能を有する。NANDコントローラ110のエラー訂正機能は、第2の訂正符号のエンコードを行い、また、第1の誤り訂正符号のエンコードおよびデコードを行う。NAND用エラー訂正回路109は、第2の誤り訂正符号のデコードを行う。第1の誤り訂正符号、第2の誤り訂正符号は、たとえば、ハミング符号、BCH(Bose-Chaudhuri-Hocquenghem)符号、RS(Reed Solomon)符号、あるいはLDPC(Low Density Parity Check)符号などであり、第2の誤り訂正符号の訂正能力は、第1の誤り訂正符号の訂正能力よりも高いとする。
また、NANDコントローラ110は、DRAMコントローラ107と同様に、SSD1の外部に読み出されたくない機密情報をプロセッサ103の指示にしたがって、復号化処理(難読化を解除する処理)を行ったり、符号化処理(難読化を実行する処理)を行ったりしてもよい。したがって、NANDメモリ2には符号化処理が施されたデータが格納されることとしてもよい。DRAMコントローラ107における難読化処理とNANDコントローラ110における難読化処理とは共通のアルゴリズムに基づいて実行されてもよいし、異なるアルゴリズムに基づいて実行されてもよい。
このような構成のSSD1で、たとえばユーザ情報などの機密情報がNANDメモリ2またはDRAM4に格納されることがある。たとえば、本実施の形態では、NANDメモリ2およびDRAM4はSSDコントローラ3の外部に実装されているので、このような機密情報へのアクセスに対して、何も制限をかけない場合には、そのままの状態でSSD1の外部に流出してしまう可能性がある。そのため、本実施の形態では、DRAMコントローラ107が、DRAM4に書込まれるデータに対して難読化処理を施し、DRAM4からプロセッサ103に読み込まれるデータに対して難読化処理を解除する処理を施すようにしている。なお、以下では、DRAMコントローラ107中の難読化処理を行う機能部分を難読化処理部というものとする。また、データの内少なくとも機密情報(ユーザ情報など)に対しては、DRAM4への書き込み時に難読化処理が施される。なお、NANDコントローラ110においても同様に、機密情報に対しては、NANDメモリ2への書き込み時に難読化処理が施されることとしてもよい。
図2は、第1の実施の形態によるコントローラの難読化処理部の構成の一例を模式的に示すブロック図である。難読化処理部200は、難読化情報生成回路201と、難読化情報保持回路202と、符号/復号化回路203と、アドレス/難読化情報関連付け回路204と、を有する。
難読化情報生成回路201は、プロセッサ103から指示されるアクセスアドレスを受け、アドレス/難読化情報関連付け回路204から難読化情報生成の指示を受けると、そのアクセスアドレスに基づいて難読化処理(以下、符号化処理という)を行うためのまたは難読化処理を解除する処理(以下、復号化処理という)のための鍵となる難読化情報を生成する。この難読化情報は、たとえばアクセスアドレスを含むアドレス情報を入力として、公知のAES(Advanced Encryption Standard)などの暗号化アルゴリズムを用いて生成される乱数データである。
難読化情報保持回路202は、難読化情報生成回路201で生成された難読化情報を、その難読化情報が使用される処理単位ごとに付されたアドレスに関連付けして保持する。なお、難読化情報保持回路202は、後述するアドレス/難読化情報関連付け回路204からの難読化情報切替指示に基づいて、保持されている1つの難読化情報を出力する。
符号/復号化回路203は、DRAM4に接続されるシステムバス(データバス)220と接続され、難読化情報保持回路202から出力された難読化情報を用いて、DRAM4に書込まれるデータに対しては符号化処理を行い、DRAM4からプロセッサ103に読み出されるデータに対しては復号化処理を行う。たとえば、DRAM4へのデータの書き込みの場合には、指定されたアクセスアドレスから始まる所定の大きさの平文のデータ列と、そのアクセスアドレスに対応する難読化情報保持回路202中の難読化情報と、の排他的論理和の演算を行って符号化し、この符号化された、すなわち難読化されたデータをDRAM4に書込む。また、DRAM4中のデータの読み出しの場合には、アクセスアドレスで指定された所定の大きさの難読化処理が施されたデータ列と、そのアクセスアドレスに対応する難読化情報保持回路202中の難読化情報と、の排他的論理和の演算を行って難読化データを復号化し、この復号化された平文データをプロセッサ103に渡す処理を行う。
アドレス/難読化情報関連付け回路204は、難読化情報保持回路202に保持されている難読化情報とその基となるアクセスアドレスとの関連付けを行い、管理を行う。また、アドレス/難読化情報関連付け回路204は、難読化処理部200にプロセッサ103からのアクセスアドレスが入力されると、アクセスアドレスが難読化情報保持回路202に保持されている難読化情報の基となるアドレスに一致するかを判定し、その判定結果に応じて難読化情報生成回路201で難読化情報を生成するか、難読化情報保持回路202に保持されている難読化情報を使用するかを制御する。具体的には、プロセッサ103からのアクセスアドレスが難読化情報保持回路202に保持されていないアドレスの場合には、難読化情報生成回路201が上記した難読化情報の生成処理を行うように制御する。また、プロセッサ103からのアクセスアドレスが難読化情報保持回路202に保持されているアドレスの場合には、難読化情報生成回路201で難読化情報の生成処理を行わないようにするとともに、指定されたアクセスアドレスに対応する難読化情報が使用されるように難読化情報保持回路202に難読化情報切替指示を与える。
つぎに、DRAMコントローラ107によるデータアクセス時の制御方法について説明する。図3は、第1の実施の形態によるデータアクセス時の制御方法の一例を示すフローチャートである。まず、プロセッサ103からDRAM4に対してアクセス要求が発生すると(ステップS11)、アドレス/難読化情報関連付け回路204は、アクセス要求中のアクセスアドレスが、難読化情報保持回路202に保持されている難読化情報の基となるアドレスに一致するかを判定する(ステップS12)。この処理の一例では、アドレス/難読化情報関連付け回路204は、アクセスアドレスに対応する難読化情報が難読化情報保持回路202に保持されているかを判定する。
要求のあったアクセスアドレスに対応する難読化情報が難読化情報保持回路202に保持されていない場合(ステップS12でNoの場合)には、難読化情報生成回路201は、アクセスアドレスを含むアドレス情報を用いて難読化情報を生成し(ステップS13)、生成した難読化情報をアクセスアドレスと対応付けして難読化情報保持回路202に保存する(ステップS14)。この難読化情報とアクセスアドレスとは、アドレス/難読化情報関連付け回路204によって対応付けされる。
その後、符号/復号化回路203は、難読化情報保持回路202から取得し、ステップS13で生成された難読化情報を用いて、システムバス220から受けたステップS11でのプロセッサ103からのアクセスアドレスに対応するデータに関して符号化/復号化する処理を行う(ステップS15)。たとえば、NANDメモリ2からDRAM4にデータが書き込まれる場合には、符号/復号化回路203は、NANDメモリ2から読み出されたデータを、難読化情報を用いて符号化してDRAM4へと書き込む。また、DRAM4からプロセッサ103へとデータが読み出される場合には、DRAM4に格納されているデータを、難読化情報を用いて復号化してプロセッサ103へと渡す。以上で、入力されたアクセス要求に対するデータの制御処理が終了する。
一方、ステップS12で要求のあったアクセスアドレスに対応する難読化情報が難読化情報保持回路202に保持されている場合(ステップS12でYesの場合)には、アドレス/難読化情報関連付け回路204は、難読化情報生成回路201に難読化情報の生成処理を行わせずに、アクセスアドレスに対応して保持されている難読化情報保持回路202中の難読化情報へと切り替える旨の難読化情報切替指示を難読化情報保持回路202に出力する(ステップS16)。難読化情報保持回路202は、難読化情報切替指示を受けると、その指示に基づいて符号/復号化回路203によって使用される難読化情報を切替える処理を行う(ステップS17)。この切替え処理によって、たとえば難読化情報保持回路202は、難読化情報切替指示に基づいた難読化情報を符号/復号化回路203に出力する。そして、符号/復号化回路203は、難読化情報保持回路202から出力された難読化情報を用いて、アクセスアドレスで指定されるデータを符号/復号化する(ステップS18)。以上によって、DRAMコントローラ107によるデータアクセス時の制御方法が終了する。
これによって、たとえば第1のアクセスアドレスでアクセス要求が発生した場合には、第1のアクセスアドレスに対応する第1の難読化情報が難読化情報生成回路201で生成され、第1のアクセスアドレスに対応づけて難読化情報保持回路202に保持され、符号/復号化回路203は第1の難読化情報で第1のアクセスアドレスで特定されるデータについて符号/復号化処理を行う。ついで、第2のアクセスアドレスでアクセス要求が発生した場合には、第2のアクセスアドレスに対応する難読化情報が難読化情報保持回路202には保持されていないので、同様に第2のアクセスアドレスに対応する第2の難読化情報が難読化情報生成回路201で生成され、第2のアクセスアドレスに対応づけて難読化情報保持回路202に保持され、符号/復号化回路203は第2の難読化情報で第2のアドレスで特定されるデータについて符号/復号化処理を行う。その後、再び第1のアクセスアドレスでアクセス要求が発生した場合には、アドレス/難読化情報関連付け回路204は、第1のアクセスアドレスに対応する第1の難読化情報が保持されているので、難読化情報保持回路202に第1の難読化情報を使用する旨の難読化情報切替指示を出す。そして、符号/復号化回路203は、難読化情報保持回路202中の第1の難読化情報を用いて符号/復号化処理を行う。
このように、以前アクセスされたアドレスと同じアクセスアドレスのアクセス要求が発生した場合には、以前生成された難読化情報を用いて符号/復号化処理が行われるので、アクセス要求が発生したアクセスアドレスに対応する難読化情報の生成処理を行わずに済む。なお、一度生成された難読化情報をどの程度の期間保持するかは任意である。たとえば、直前のアクセスで生成された難読化情報のみを保持する構成としてもよいし、2回、またはそれ以上前のアクセスで生成された難読化情報を保持することとしてもよい。
第1の実施の形態によれば、プロセッサ103から入力されるアクセスアドレスを含む情報を用いて難読化情報生成回路201で難読化情報を生成した後、この難読化情報を難読化情報保持回路202にアクセスアドレスと対応付けて保持した。これによって、同じアクセスアドレスへのアクセスが生じた場合に、再度難読化情報生成回路201で難読化情報を生成することなく、難読化情報保持回路202中に保存された難読化情報を用いて符号/復号化処理を行うことが可能になる。その結果、アクセスアドレスを受けるたびに難読化情報を生成する場合に比して、難読化情報を生成しない分だけDRAM4へのアクセス時間を短縮化できるという効果を有する。
(第2の実施の形態)
第1の実施の形態では、同じアクセスアドレスにアクセスがあった場合のDRAMへのアクセス時間の短縮化を行っていたが、第2の実施の形態では、バーストアクセス時におけるDRAMへのアクセス時間の短縮化を行う場合について説明する。
図4は、第2の実施の形態によるコントローラの難読化処理部の構成の一例を模式的に示すブロック図である。難読化処理部200は、難読化情報生成回路201と、難読化情報保持回路202と、符号/復号化回路203と、隣接アドレス算出回路205と、アドレス判定回路206と、を備える。
難読化情報生成回路201は、プロセッサ103からアクセスアドレスが入力され、アドレス判定回路206から難読化情報生成の指示を受けると、あるいは隣接アドレス算出回路205から隣接アドレスが入力されると、入力されたアドレスを含むアドレス情報に基づいて難読化情報を生成する。なお、隣接アドレス算出回路205からの隣接アドレスの入力があった場合には、つぎのアドレスの入力があるまで、隣接アドレスに対応して生成した難読化情報を保持するものとする。
隣接アドレス算出回路205は、難読化処理部200にアクセスアドレスが入力されると、入力されたアクセスアドレスに隣接するアドレスを算出する。ここで、プロセッサ103で処理可能な最低単位でアクセスアドレスは入力されるものとすると、隣接アドレスを、アクセスアドレスにプロセッサ103で処理可能な最低単位分のデータ量を加算したもの、および/またはアクセスアドレスからプロセッサ103で処理可能な最低単位分のデータ量を減算したもの、と定義する。つまり、隣接アドレス算出回路205は、難読化処理部200に入力されたアクセスアドレスに、プロセッサ103で処理可能な最低単位分のデータ量を加算したもの、および/またはアクセスアドレスからプロセッサ103で処理可能な最低単位分のデータ量を減算したものを、隣接アドレスとして算出する。そして、算出した隣接アドレスを難読化情報生成回路201に出力する。なお、ここでは、隣接アドレスとして、入力されたアクセスアドレスに、プロセッサ103で処理可能な最低単位分のデータ量を加算したもののみを算出するものとする。
アドレス判定回路206は、難読化処理部200に入力されるアクセスアドレスが、難読化処理部200に入力された前回のアクセスアドレスについて、隣接アドレス算出回路205で算出された隣接アドレスと一致するかを判定し、その判定結果に応じて難読化情報生成回路201と難読化情報保持回路202とを制御する。具体的には、アクセスアドレスが前回入力されたアクセスアドレスに関して隣接アドレス算出回路205で算出された隣接アドレスと一致しない場合には、アクセスアドレスに対応する難読化情報を難読化情報生成回路201に生成するように指示を与える。また、アクセスアドレスが上記隣接アドレスと一致する場合には、難読化情報生成回路201で生成され、保持されている隣接アドレスに対応する難読化情報を用いる旨の難読化情報切替指示を難読化情報保持回路202に出力するとともに、難読化情報生成回路201には、入力されたアクセスアドレスを用いた難読化情報の生成処理を行わないように制御する。
なお、難読化情報保持回路202と符号/復号化回路203については、第1の実施の形態と同様であるので、その説明を省略する。
つぎに、DRAMコントローラ107によるデータアクセス時の制御方法について説明する。図5は、第2の実施の形態によるデータアクセス時の制御方法の一例を示すフローチャートである。まず、プロセッサ103からDRAM4に対してアクセス要求が発生すると(ステップS31)、アドレス判定回路206は、前回のアクセス要求時に隣接アドレス算出回路205で算出された隣接アドレスと、要求のあったアクセスアドレスとが一致するかを判定する(ステップS32)。
要求のあったアクセスアドレスが前回算出された隣接アドレスと一致しない場合(ステップS32でNoの場合)には、難読化情報生成回路201は、保持している難読化情報を難読化情報保持回路202に保存し(ステップS33)、入力されたアクセスアドレスを含むアドレス情報に基づいて難読化情報を生成する(ステップS34)。また、ステップS33〜S34での処理と並行して、隣接アドレス算出回路205は、入力されたアクセスアドレスに隣接する隣接アドレスを算出し(ステップS35)、難読化情報生成回路201に算出した隣接アドレスを出力する。その後、隣接アドレスが入力された難読化情報生成回路201は、ステップS34で生成した難読化情報を難読化情報保持回路202に保存する(ステップS36)。これによって、前回のアクセス要求時に生成された(ステップS33で難読化情報保持回路202に保持されていた)難読化情報は消去されることになる。
その後、符号/復号化回路203は、難読化情報保持回路202から取得した(ステップS34で生成された)難読化情報を用いて、システムバス220を介してプロセッサ103から受けたステップS31でのアクセスアドレスに対応するデータに関して符号化/復号化する処理を行う(ステップS37)。また、ステップS37の符号化/復号化の処理と並行して、難読化情報生成回路201は、算出された隣接アドレスに対応する難読化情報を生成する(ステップS38)。以上で、入力されたアクセス要求に対するデータの制御処理が終了する。
一方、ステップS32で要求のあったアクセスアドレスが前回算出された隣接アドレスと一致する場合(ステップS32でYesの場合)には、アドレス判定回路206は、入力されたアクセスアドレスに対応する難読化情報の生成を難読化情報生成回路201に行わせず、難読化情報生成回路201が隣接アドレスに対応して保持している難読化情報を符号/復号化処理に用いる旨の難読化情報切替指示を難読化情報保持回路202に出力する(ステップS39)。
また、ステップS39での処理と並行して、隣接アドレス算出回路205は、入力されたアクセスアドレスに隣接する隣接アドレスを算出し(ステップS40)、難読化情報生成回路201に算出した隣接アドレスを出力する。隣接アドレスが入力された難読化情報生成回路201は、保持していた難読化情報を難読化情報保持回路202に保存する(ステップS41)。以上の処理によって、たとえば難読化情報保持回路202に保持されていたデータが破棄され、 代わりに難読化情報生成回路201に保持されていた隣接アドレスに対応する難読化情報が難読化情報保持回路202に保存される。
その後、符号/復号化回路203は難読化情報保持回路202に保存されている(前回のアクセス要求時に生成された)難読化情報を用いて、アクセスアドレスで指定されるデータの符号/復号化処理を行う(ステップS42)。また、ステップS42での処理と並行して、難読化情報生成回路201は、ステップS40で算出された隣接アドレスに対応する難読化情報を生成する(ステップS43)。以上によって、入力されたアクセス要求に対するデータの制御処理が終了する。
これによって、最初の第1のアクセスアドレスについて第1の難読化情報が生成されるとともに、第1のアクセスアドレスに隣接する第2のアドレスが算出され、この第2のアドレスに対応する第2の難読化情報が生成される。そして、第1の難読化情報を用いて第1のアクセスアドレスに対応するデータの符号/復号化処理が行われた後、第2のアクセスアドレスでアクセス要求が出される。ここで、プロセッサ103が最低処理単位よりも長いデータへのアクセスをNANDメモリ2から行うバーストアクセスが発生した場合には、第1のアクセスアドレスの後に第1のアクセスアドレスに隣接する第2のアクセスアドレスでのアクセス要求が発生する。このとき、第2のアクセスアドレスが既に算出された第2のアドレスと同じであるので、第2の難読化情報が既に生成された状態となる。つまり、難読化情報生成回路201は、第2のアクセスアドレスでのアクセス要求が発生した後に、第2のアクセスアドレスに対応する難読化情報を生成することがなく、符号/復号化回路203は既に生成された第2のアドレスに対応する第2の難読化情報を用いて符号/復号化処理を行うことができる。
第2の実施の形態によれば、最初のアクセスアドレスがDRAMコントローラ107に入力されると、アクセスアドレスに隣接する隣接アドレスを算出し、その隣接アドレスに対応する難読化情報を前もって生成するようにした。これによって、バーストアクセスが発生した場合に、最初に入力されたアクセスアドレスに隣接する隣接アドレスに対応する難読化情報が生成されているので、つぎのアクセスアドレスの入力を待って難読化情報を生成することなく、既に生成された難読化情報を用いてDRAM4上のデータにアクセスすることが可能となる。その結果、つぎのアクセスアドレスが入力されてからそのアクセスアドレスに基づいて難読化情報を生成し、符号/復号化処理を行う場合に比して、時間を大幅に短縮することができるという効果を有する。
なお、上述した説明では、隣接アドレスとして、入力されたアクセスアドレスにプロセッサ103で処理可能な最低単位分のデータ量を加算したもののみを算出する場合を例に挙げたが、入力されたアクセスアドレスからプロセッサ103で処理可能な最低単位分のデータ量を減算したもののみを算出するようにしてもよい。
また、入力されたアクセスアドレスにプロセッサ103で処理可能な最低単位分のデータ量を加算したものと、入力されたアクセスアドレスからプロセッサ103で処理可能な最低単位分のデータ量を減算したものの2つの隣接アドレスを算出するようにしてもよい。この場合には、難読化情報保持回路202が、複数の難読化情報をアクセスアドレス/隣接アドレスと対応付けて保持可能な構成を有し、アドレス判定回路206は、難読化情報保持回路202で保持される難読化情報をその基となるアドレスと関連付けて管理する機能をさらに有する構成とすればよい。そして、このような構成では、アクセスアドレスが前回算出した隣接アドレスに一致した場合には、アドレス判定回路206は、隣接アドレスに関連付けて保存されている難読化情報に切替えるように難読化情報保持回路202に対して難読化情報切替指示を出せばよい。
(第3の実施の形態)
第3の実施の形態では、第1と第2の実施の形態を組み合わせた難読化処理部について説明する。図6は、第3の実施の形態によるコントローラの難読化処理部の構成の一例を模式的に示すブロック図である。難読化処理部200は、難読化情報生成回路201と、難読化情報保持回路202と、符号/復号化回路203と、アドレス/難読化情報関連付け回路204と、隣接アドレス算出回路205と、アドレス判定回路206と、を備える。
難読化情報生成回路201は、プロセッサ103からアクセスアドレスが入力され、アドレス判定回路206で難読化情報の生成の指示を受けると、あるいは隣接アドレス算出回路205から隣接アドレスが入力されると、入力されたアドレスを含むアドレス情報に基づいて難読化情報を生成する。
難読化情報保持回路202は、難読化情報生成回路201で生成された難読化情報を、その難読化情報の基となるアドレス(アクセスアドレス/隣接アドレス)に対応づけて保持する。ここでは、一度アクセスのあった難読化情報と、前回アクセスされたアクセスアドレスの隣接アドレスの難読化情報と、を少なくとも保持するものとする。
アドレス判定回路206は、プロセッサ103からアクセスアドレスが入力されると、アクセスアドレスが前回入力されたアクセスアドレスに隣接する隣接アドレスに一致するか、あるいはアクセスアドレスが難読化情報保持回路202に保持されている難読化情報の基となるアドレスに一致するかを判定し、その判定結果に応じて難読化情報生成回路201を制御する。アクセスアドレスが隣接アドレスまたは難読化情報保持回路202に保持されている難読化情報に対応するアドレスと一致する場合には、難読化情報保持回路202に一致したアドレス(アクセスアドレス)をアドレス/難読化情報関連付け回路204に出力するとともに、難読化情報生成回路201で難読化情報を生成しないように制御する。また、アクセスアドレスが隣接アドレスまたは難読化情報保持回路202に保持されている難読化情報に対応するアドレスと一致しない場合には、難読化情報生成回路201に入力されたアクセスアドレスに対応する難読化情報を生成するように制御する。
アドレス/難読化情報関連付け回路204は、難読化情報保持回路202に保持されている難読化情報を、アクセスアドレスまたは隣接アドレスに対応づけて管理するとともに、アドレス判定回路206からアドレスが入力されると、そのアドレス(アクセスアドレスまたは隣接アドレス)に対応付けて保持されている難読化情報に切替えるように難読化情報切替指示を難読化情報保持回路202に出力する。
なお、符号/復号化回路203と隣接アドレス算出回路205については、第1および第2の実施の形態と同様であるので、その説明を省略する。
つぎに、DRAMコントローラ107によるアクセス時の制御方法について説明する。図7は、第3の実施の形態によるデータアクセス時の制御方法の一例を示すフローチャートである。まず、プロセッサ103からDRAM4に対してアクセス要求が発生すると(ステップS51)、アドレス判定回路206は、前回のアクセス要求時に隣接アドレス算出回路205で算出された隣接アドレスと、要求のあったアクセスアドレスとが一致するかを判定する(ステップS52)。
ついで、要求のあったアクセスアドレスが前回算出された隣接アドレスと一致しない場合(ステップS52でNoの場合)には、アドレス判定回路206は、アクセスアドレスが難読化情報保持回路202に保存されている難読化情報に対応付けられたアドレスに一致するかを判定する(ステップS53)。
アクセスアドレスが難読化情報保持回路202に保存されている難読化情報に対応付けられたアドレスに一致しない場合(ステップS53でNoの場合)には、アドレス判定回路206は、難読化情報生成回路201に難読化情報を生成するように指示し、難読化情報生成回路201は、アクセスアドレスに基づいて難読化情報を生成し(ステップS54)、難読化情報保持回路202にアクセスアドレスに対応づけて保存する(ステップS55)。また、ステップS54〜S55の処理と並行して、隣接アドレス算出回路205は、入力されたアクセスアドレスの隣接アドレスを算出する(ステップS56)。
その後、符号/復号化回路203は、難読化情報保持回路202から取得した(ステップS54で生成された)難読化情報を用いて、データの符号/復号化の処理を行う(ステップS57)。このデータの符号/復号化の処理は、第1の実施の形態で説明したものと同様である。また、ステップS57の処理と並行して、難読化情報生成回路201では、ステップS56で算出された隣接アドレスに基づいて難読化情報の生成を行い(ステップS58)、隣接アドレスに対応づけて難読化情報保持回路202に保存する(ステップS59)。以上によって、DRAMコントローラ107によるアクセス時の制御方法が終了する。
一方、ステップS53でアクセスアドレスが難読化情報保持回路202に保存されている難読化情報に対応付けられたアドレスに一致する場合(ステップS53でYesの場合)には、アドレス判定回路206は、入力されたアクセスアドレスに対応する難読化情報の生成処理を難読化情報生成回路201に行わせず、アクセスアドレスをアドレス/難読化情報関連付け回路204に出力する。そして、アドレス/難読化情報関連付け回路204は、入力されたアクセスアドレスに対応する難読化情報に切替える旨の難読化情報切替指示を難読化情報保持回路202に出力する(ステップS60)。難読化情報保持回路202では、難読化情報切替指示に基づいて使用する難読化情報を切替える(ステップS61)。また、ステップS60〜S61での処理と並行して、隣接アドレス算出回路205は、アクセスアドレスの隣接アドレスを算出し(ステップS62)、その結果を難読化情報生成回路201へと出力する。
また、ステップS52でアクセスアドレスが隣接アドレスに一致する場合(ステップS52でYesの場合)には、アドレス判定回路206は、入力されたアクセスアドレスに対応する難読化情報の生成処理を難読化情報生成回路201に行わせず、アクセスアドレスをアドレス/難読化情報関連付け回路204に出力する。そして、アドレス/難読化情報関連付け回路204は、アクセスアドレスを受信すると、アクセスアドレス(隣接アドレス)に対応する難読化情報に切替える旨の難読化情報切替指示を難読化情報保持回路202に出力する(ステップS63)。その後、難読化情報保持回路202では、難読化情報切替指示に基づいて符号/復号化回路203によって使用される難読化情報を切替える(ステップS64)。このステップS63〜S64での処理と並行して、隣接アドレス算出回路205は、入力されたアクセスアドレスの隣接アドレスを算出する(ステップS65)。
その後またはステップS61,S62の後、符号/復号化回路203では、難読化情報保持回路202に格納された難読化情報を用いてデータの符号/復号化処理を行う(ステップS66)。また、このステップS66の処理と並行して、難読化情報生成回路201は、ステップS62またはステップS65で生成された隣接アドレスに対応する難読化情報を生成し(ステップS67)、難読化情報保持回路202に隣接アドレスと関連付けて保存する(ステップS68)。以上によって、DRAMコントローラ107によるアクセス時の制御方法が終了する。
第3の実施の形態によれば、以前にアクセスされたアドレスに対応する難読化情報を保持しているので、そのアドレスに再びアクセスが生じた場合には、難読化情報を生成することなく符号/復号化処理を行うことができる。また、アクセスされたアドレスの隣接アドレスに対応する難読化情報を前もって生成し、保持しているので、バーストアクセスが生じたときには、つぎのアドレスが指定される前に既にそのアドレスについての難読化情報が生成されているので、アクセス要求に対する応答時間を短縮化することができる。
なお、第1〜第3の実施の形態では、アクセスアドレスとしては、特に指定しなかったが、SSDコントローラ3内のプロセッサ103が指定する論理アドレスでもよいし、DRAM4の物理アドレスでもよい。アクセスアドレスがDRAM4の物理アドレスである場合には、たとえばプロセッサ103で管理している論理アドレスとDRAM4中の物理アドレスとを対応付ける管理テーブルを用いて、プロセッサ103がまたはDRAMコントローラ107が論理アドレスをDRAM4中の物理アドレスに変換すればよい。
(第4の実施の形態)
第4の実施の形態では、定期的にアクセスが発生する場合でのデータの難読化処理または難読化を解除する処理を速めることができる場合について説明する。図8は、定期的にデータの書き込み/読み出しが発生する場合の一例を示す図である。たとえばプロセッサ103の処理できる最低単位に比して大きなデータ500が読み出される場合を考える。このデータ500は、たとえば、図8(a)に示されるように、プロセッサ103が処理可能な最低単位(以下、アクセス単位ともいう)の大きさの第1のデータ501、第2のデータ502、第3のデータ503、・・・、からなり、NANDメモリ2に格納されているものとする。
NANDメモリ2からデータ500が外部に読み出される場合には、DRAM4に一度格納されてから、プロセッサ103がDRAM4から読み出す。この場合、元のデータ500について、アクセス単位でDRAM4へデータ501,502,503,・・・を難読化して書込む処理と、DRAM4内の難読化されたデータ501,502,503,・・・をアクセス単位で平文にして読み出す処理とが、所定の周期で行われることになる。つまり、図8(b)に示されるように、元のデータ500中の第1のデータ501が時刻t0で難読化情報N1を用いて符号化処理されてDRAM4へ書込みが行われ、時刻t1で難読化情報N1を用いて復号化処理されてDRAM4から読み出され、時刻t0のΔt後の時刻t2で元のデータ500中の第2のデータ502が難読化情報N2を用いて符号化処理されてDRAM4へ書込みが行われ、時刻t3で難読化情報N2を用いて復号化処理されてDRAM4から読み出され、時刻t2のΔt後の時刻t4で元のデータ500中の第3のデータ503が難読化情報N3を用いて符号化処理されてDRAM4へ書込みが行われ、時刻t5で難読化情報N3を用いて復号化処理されてDRAM4から読み出され、・・・、という処理が所定の時間間隔Δtで繰り返し実行されることになる。
このように、所定の周期でDRAM4への書き込み/読み出しが発生するような場合には、第1〜第3の実施の形態で説明したようなアクセスアドレスに基づいて難読化情報を生成する場合だけでなく、アクセス時刻に基づいて難読化情報を生成することも可能である。そこで、第4の実施の形態では、図8のようにバーストアクセスが発生し、周期的にDRAM4への書き込み/読み出しが発生する場合の難読化処理を行うコントローラとその制御方法について説明する。
図9は、第4の実施の形態によるコントローラの難読化処理部の構成の一例を模式的に示すブロック図である。難読化処理部200は、難読化情報生成回路201と、難読化情報保持回路202と、符号/復号化回路203と、次アクセス時刻算出回路207と、アクセス時刻判定回路208と、を備える。
難読化情報生成回路201は、プロセッサ103からアクセスがあり、アクセス時刻判定回路208によって難読化情報生成の指示を受けると、そのアクセス時刻を含む時刻情報に基づいて難読化情報を生成する。また、難読化情報生成回路201は、次アクセス時刻算出回路207から次アクセス時刻が入力されると、その次アクセス時刻を含む時刻情報に基づいて難読化情報を生成する。この次アクセス時刻に基づいて生成される難読化情報は、つぎのアクセス要求のアクセス時刻前に前もって生成される。なお、次アクセス時刻算出回路207からの次アクセス時刻の入力があった場合には、つぎの時刻情報の入力があるまで、次アクセス時刻に対応して生成した難読化情報を保持するものとする。
次アクセス時刻算出回路207は、プロセッサ103からのアクセス要求が入力されると、そのアクセス時刻のつぎの次アクセス時刻を算出する。この次アクセス時刻は、たとえば、アクセス単位のデータをNANDメモリ2からDRAM4へと書き込み、さらに読み出すのに要する時間Δtを最初のアクセス時刻に付加することによって算出することができる。算出された次アクセス時刻は、難読化情報生成回路201とアクセス時刻判定回路208に出力される。
アクセス時刻判定回路208は、最初のアクセスのアクセス時刻からつぎのアクセス要求のアクセス時刻が、次アクセス時刻算出回路207で前回のアクセス要求時に前もって算出された次アクセス時刻であるか否かを判定する。つぎのアクセスのアクセス時刻が次アクセス時刻算出回路207で算出された次アクセス時刻でない場合には、難読化情報生成回路201に難読化情報の生成を指示し、つぎのアクセスのアクセス時刻が次アクセス時刻算出回路207で算出された次アクセス時刻である場合には、難読化情報生成回路201に難読化情報の生成を行わせないようにするとともに、難読化情報保持回路202に保持されている予め生成された難読化情報を用いる旨の難読化情報切替指示を難読化情報保持回路202に出力する。
なお、難読化情報保持回路202については、第2の実施の形態と同様であり、符号/復号化回路203については、第1の実施の形態と同様であるので、その説明を省略する。
つぎに、DRAMコントローラ107によるデータアクセス時の制御方法について説明する。図10は、第4の実施の形態によるデータアクセス時の制御方法の一例を示すフローチャートである。まず、プロセッサ103からDRAM4に対してアクセス要求が発生すると(ステップS71)、アクセス時刻判定回路208は、アクセス時刻が、ステップS71のアクセス要求の前回のアクセス要求時に次アクセス時刻算出回路207によって算出された次アクセス時刻と一致するかを判定する(ステップS72)。
ついで、アクセス時刻が前もって算出された次アクセス時刻と一致しない場合(ステップS72でNoの場合)には、難読化情報生成回路201は、保持している難読化情報を難読化情報保持回路202に保存し(ステップS73)、入力されたアクセス要求のアクセス時刻を含む時刻情報に基づいて難読化情報を生成する(ステップS74)。また、ステップS73〜S74での処理と並行して、次アクセス時刻算出回路207は、入力されたアクセス要求のつぎに予想されるアクセス要求の次アクセス時刻を算出し(ステップS75)、難読化情報生成回路201に算出した次アクセス時刻を出力する。その後、次アクセス時刻が入力された難読化情報生成回路201は、ステップS74で生成した難読化情報を難読化情報保持回路202に保存する(ステップS76)。これによって、前回のアクセス要求時に生成された(ステップS73で難読化情報保持回路202に保持されていた)難読化情報は消去されることになる。
その後、符号/復号化回路203は、難読化情報保持回路202から取得した(ステップS74で生成された)難読化情報を用いて、システムバス220を介してプロセッサ103から受けたステップS71でのアクセス要求に対応するデータに関して符号化/復号化する処理を行う(ステップS77)。また、ステップS77の符号化/復号化の処理と並行して、難読化情報生成回路201は、算出された次アクセス時刻に対応する難読化情報を生成する(ステップS78)。以上で、入力されたアクセス要求に対するデータの制御処理が終了する。
一方、ステップS72でアクセス要求のアクセス時刻が前もって算出された次アクセス時刻と一致する場合(ステップS72でYesの場合)には、アクセス時刻判定回路208は、入力されたアクセス要求のアクセス時刻(次アクセス時刻)に対応する難読化情報の生成を難読化情報生成回路201に行わせず、難読化情報生成回路201が次アクセス時刻に対応して保持している難読化情報を符号/復号化処理に用いる旨の難読化情報切替指示を難読化情報保持回路202に出力する(ステップS79)。
また、ステップS79での処理と並行して、次アクセス時刻算出回路207は、アクセス要求のつぎに入力されると予想されるアクセス要求の次アクセス時刻を算出し(ステップS80)、難読化情報生成回路201に算出した次アクセス時刻を出力する。次アクセス時刻が入力された難読化情報生成回路201は、それまで保持していた難読化情報を難読化情報保持回路202に保存する(ステップS81)。以上の処理によって、たとえば難読化情報保持回路202に保持されていたデータが破棄され、 代わりに難読化情報生成回路201に保持されていた次アクセス時刻に対応する難読化情報が難読化情報保持回路202に保存される。
その後、符号/復号化回路203は難読化情報保持回路202に保存されている難読化情報を用いて、アクセスアドレスで指定されるデータの符号/復号化処理を行う(ステップS82)。また、ステップS82での処理と並行して、難読化情報生成回路201は、ステップS80で算出された次アクセス時刻に対応する難読化情報を生成する(ステップS83)。以上によって、入力されたアクセス要求に対するデータの制御処理が終了する。
このような構成によれば、プロセッサ103からのアクセス要求のアクセス時刻に基づいて難読化情報が生成されるとともに、そのアクセス時刻に所定の時刻を加算した次アクセス時刻と、この次アクセス時刻に基づいて難読化情報も生成される。これによって、たとえば最初のアクセスがバーストアクセスである場合には、所定の周期でデータのDRAM4への書き込み/DRAM4からの読出し処理が行われるので、つぎのアクセス要求のアクセス時刻になってから難読化情報を生成する場合に比して、アクセス要求が出されてからデータへアクセスするまでの時間を短縮化することが可能となる。
第4の実施の形態によれば、所定の周期でDRAM4への書き込み/DRAM4からの読み出しを行う場合に、最初のアクセスのアクセス時刻から次アクセス時刻を算出し、この次アクセス時刻に基づいて難読化情報を生成し、保持するようにした。これによって、バーストアクセスが生じた場合には、つぎのアクセスの指示が来る前に既に難読化情報を生成しているので、つぎのアクセス要求が入力されてからそのアクセス時刻に基づいて難読化情報を生成する場合に比して、難読化情報の生成にかかる時間を省略することができ、難読化にかかる時間を表面化させにくいメモリシステムを提供することが可能になるという効果を有する。
なお、上述した説明では、NANDメモリ2とDRAM4とを備えるSSD1を例に挙げて説明したが、本発明がこれに限定されるものではない。半導体記憶装置として、機密情報を不揮発に記憶する第1の記憶部と、ホスト装置からの指示によって第1の記憶部に記憶されているデータを一時的に記憶する第2の記憶部と、を備える半導体記憶装置であって、第2の記憶部に記憶されるデータを難読化する場合一般について本発明を適用することができる。
また、難読化するデータとして、第1の記憶部に記憶されているすべてのデータを対象としてもよいし、第1の記憶部に記憶されているデータのうち、一部のデータのみを対象としてもよい。この場合には、たとえば第1の記憶部の所定のアドレス範囲に保存されているデータについては、第2の記憶部に展開する際に難読化処理を行い、その他のアドレス範囲に保存されているデータについては、第2の記憶部に展開する際に難読化処理を行わないように設定すればよい。
200…難読化処理部、201…難読化情報生成回路、202…難読化情報保持回路、203…符号/復号化回路、204…アドレス/難読化情報関連付け回路、205…隣接アドレス算出回路、206…アドレス判定回路、207…次アクセス時刻算出回路、208…アクセス時刻判定回路、220…システムバス。

Claims (15)

  1. ホスト装置と不揮発性の第1の記憶部との間で揮発性の第2の記憶部を介してデータ転送を行うコントローラにおいて、
    アクセスアドレスを含むアドレス情報に基づいて難読化情報を生成する難読化情報生成回路と、
    前記難読化情報を保持する難読化情報保持回路と、
    前記難読化情報保持回路中の前記アクセスアドレスに対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、
    前記難読化情報をその基となるアドレスと対応付けて管理し、アクセス要求を受けると前記アクセス要求中のアクセスアドレスが以前用いられ前記難読化情報保持回路に保持されている難読化情報の基となるアドレスに一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアドレス/難読化情報関連付け回路と、
    を備えることを特徴とするコントローラ。
  2. ホスト装置と不揮発性の第1の記憶部との間で揮発性の第2の記憶部を介してデータ転送を行うコントローラにおいて、
    アクセスアドレスまたは隣接アドレス算出回路で算出された隣接アドレスを含むアドレス情報に基づいて難読化情報を生成する難読化情報生成回路と、
    前記難読化情報を保持する難読化情報保持回路と、
    前記アクセスアドレスまたは前記隣接アドレスに対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、
    アクセス要求中のアクセスアドレスに隣接する隣接アドレスを算出する隣接アドレス算出回路と、
    前記アクセス要求を受けると、前記アクセス要求中のアクセスアドレスが前回のアクセス要求時に前記隣接アドレス算出回路で算出された隣接アドレスに一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアドレス判定回路と、
    を備えることを特徴とするコントローラ。
  3. 前記難読化情報をその基となるアドレスと対応付けて管理するアドレス/難読化情報関連付け回路をさらに備え、
    前記難読化情報保持回路は、複数の難読化情報を保持可能に構成され、
    前記アドレス判定回路は、前記アクセス要求中のアクセスアドレスが前回のアクセス要求時に前記隣接アドレス算出回路で算出された隣接アドレスまたは以前用いられ前記難読化情報保持回路に保持されている難読化情報の基となるアドレスに一致するかを判定し、一致しない場合には、前記難読化情報生成回路に前記アクセスアドレスに対応する難読化情報の生成を指示し、一致する場合に前記アクセスアドレスを前記アドレス/難読化情報関連付け回路に出力し、
    前記アドレス/難読化情報関連付け回路は、前記アドレス判定回路からの前記アクセスアドレスに対応する難読化情報を使用するように切替指示を前記難読化情報保持回路に出力することを特徴とする請求項2に記載のコントローラ。
  4. ホスト装置と不揮発性の第1の記憶部との間で揮発性の第2の記憶部を介してデータ転送を行うコントローラにおいて、
    アクセス要求のアクセス時刻を含む時刻情報に基づいて難読化情報を生成する難読化情報生成回路と、
    前記難読化情報を保持する難読化情報保持回路と、
    前記難読化情報保持回路中の前記アクセス時刻に対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、
    前記アクセス要求を受けると、つぎのアクセス要求の予想される次アクセス時刻を算出する次アクセス時刻算出回路と、
    アクセス要求を受けると、前記アクセス要求がなされた時刻が、前回のアクセス要求時に前記次アクセス時刻算出回路で算出された次アクセス時刻に一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアクセス時刻判定回路と、
    を備えることを特徴とするコントローラ。
  5. 不揮発性の第1の記憶部と、
    揮発性の第2の記憶部と、
    ホスト装置と前記第1の記憶部との間で前記第2の記憶部を介してデータ転送を行うコントローラと、
    を備える半導体記憶装置において、
    前記コントローラは、
    アクセスアドレスを含むアドレス情報に基づいて難読化情報を生成する難読化情報生成回路と、
    前記難読化情報を保持する難読化情報保持回路と、
    前記難読化情報保持回路中の前記アクセスアドレスに対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、
    前記難読化情報をその基となるアドレスと対応付けて管理し、アクセス要求を受けると前記アクセス要求中のアクセスアドレスが以前用いられ前記難読化情報保持回路に保持されている難読化情報の基となるアドレスに一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアドレス/難読化情報関連付け回路と、
    を備えることを特徴とする半導体記憶装置。
  6. 不揮発性の第1の記憶部と、
    揮発性の第2の記憶部と、
    ホスト装置と前記第1の記憶部との間で前記第2の記憶部を介してデータ転送を行うコントローラと、
    を備える半導体記憶装置において、
    前記コントローラは、
    アクセスアドレスまたは隣接アドレス算出回路で算出された隣接アドレスを含むアドレス情報に基づいて難読化情報を生成する難読化情報生成回路と、
    前記難読化情報を保持する難読化情報保持回路と、
    前記アクセスアドレスまたは前記隣接アドレスに対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、
    アクセス要求中のアクセスアドレスに隣接する隣接アドレスを算出する隣接アドレス算出回路と、
    前記アクセス要求を受けると、前記アクセス要求中のアクセスアドレスが前回のアクセス要求時に前記隣接アドレス算出回路で算出された隣接アドレスに一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアドレス判定回路と、
    を備えることを特徴とする半導体記憶装置。
  7. 前記難読化情報をその基となるアドレスと対応付けて管理するアドレス/難読化情報関連付け回路をさらに備え、
    前記難読化情報保持回路は、複数の難読化情報を保持可能に構成され、
    前記アドレス判定回路は、前記アクセス要求中のアクセスアドレスが前回のアクセス要求時に前記隣接アドレス算出回路で算出された隣接アドレスまたは以前用いられ前記難読化情報保持回路に保持されている難読化情報の基となるアドレスに一致するかを判定し、一致しない場合には、前記難読化情報生成回路に前記アクセスアドレスに対応する難読化情報の生成を指示し、一致する場合に前記アクセスアドレスを前記アドレス/難読化情報関連付け回路に出力し、
    前記アドレス/難読化情報関連付け回路は、前記アドレス判定回路からの前記アクセスアドレスに対応する難読化情報を使用するように切替指示を前記難読化情報保持回路に出力することを特徴とする請求項6に記載の半導体記憶装置。
  8. 不揮発性の第1の記憶部と、
    揮発性の第2の記憶部と、
    ホスト装置と前記第1の記憶部との間で前記第2の記憶部を介してデータ転送を行うコントローラと、
    を備える半導体記憶装置において、
    前記コントローラは、
    アクセス要求のアクセス時刻を含む時刻情報に基づいて難読化情報を生成する難読化情報生成回路と、
    前記難読化情報を保持する難読化情報保持回路と、
    前記難読化情報保持回路中の前記アクセス時刻に対応付けられた前記難読化情報を用いて、前記第2の記憶部に書込まれるデータを難読化する符号化処理と、前記第2の記憶部に記憶されているデータの難読化を解除する復号化処理とを行う符号/復号化回路と、
    前記アクセス要求を受けると、つぎのアクセス要求の予想される次アクセス時刻を算出する次アクセス時刻算出回路と、
    アクセス要求を受けると、前記アクセス要求がなされた時刻が、前回のアクセス要求時に前記次アクセス時刻算出回路で算出された次アクセス時刻に一致するかを判定し、判定結果に基づいて前記難読化情報の生成の要否と保持されている難読化情報の使用の有無を制御するアクセス時刻判定回路と、
    を備えることを特徴とする半導体記憶装置。
  9. 不揮発性の第1の記憶部と、揮発性の第2の記憶部と、を備える半導体記憶装置の制御方法において、
    前記第2の記憶部に対するアクセス要求が発生すると、前記アクセス要求中のアクセスアドレスに対応した難読化情報が保持されているか判定し、
    前記判定の結果、前記難読化情報が保持されていない場合に、
    前記アクセスアドレスを含むアドレス情報に基づいて前記難読化情報を生成する工程と、
    前記難読化情報を前記アクセスアドレスに対応付けて保持する工程と、
    前記難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す工程と、
    を含む処理を行い、
    前記判定の結果、前記難読化情報が保持されている場合に、前記難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す処理を行うことを特徴とする半導体記憶装置の制御方法。
  10. 不揮発性の第1の記憶部と、揮発性の第2の記憶部と、を備える半導体記憶装置の制御方法において、
    前記第2の記憶部に対するアクセス要求が発生すると、前記アクセス要求中のアクセスアドレスが、前回のアクセス要求時に生成された第1の隣接アドレスに一致するか判定し、
    前記判定の結果、前記アクセスアドレスが前記第1の隣接アドレスに一致しない場合に、
    前記アクセスアドレスを含むアドレス情報に基づいて第1の難読化情報を生成する工程と、
    前記第1の難読化情報を前記アクセスアドレスに対応付けて保持する工程と、
    前記アクセスアドレスに隣接する第2の隣接アドレスを算出する工程と、
    前記第1の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す工程と、
    算出した前記第2の隣接アドレスを含むアドレス情報に基づいて第2の難読化情報を生成する工程と、
    前記第2の隣接アドレスに対応付けて前記第2の難読化情報を保持する工程と、
    を含む処理を行い、
    前記判定の結果、前記アクセスアドレスが前記第1の隣接アドレスに一致する場合に、前記第1の隣接アドレスに対応付けて保持された第3の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す処理を行うことを特徴とする半導体記憶装置の制御方法。
  11. 前記アクセスアドレスが前記第1の隣接アドレスに一致する場合に、
    前記アクセスアドレスに隣接する前記第2の隣接アドレスを算出する工程と、
    算出した前記第2の隣接アドレスを含むアドレス情報に基づいて前記第2の難読化情報を生成する工程と、
    前記第2の隣接アドレスに対応付けて前記第2の難読化情報を保持する工程と、
    を含む処理をさらに行うことを特徴とする請求項10に記載の半導体記憶装置の制御方法。
  12. 不揮発性の第1の記憶部と、揮発性の第2の記憶部と、を備えるメモリシステムの制御方法において、
    前記第2の記憶部に対するアクセス要求が発生すると、前記アクセス要求中のアクセスアドレスが、前回のアクセス要求時に生成された第1の隣接アドレスに一致するか第1の判定を行い、
    前記第1の判定の結果、前記アクセスアドレスが前記第1の隣接アドレスに一致する場合に、前記第1の隣接アドレスに対応付けて保持された第1の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す処理を行い、
    前記第1の判定の結果、前記アクセスアドレスが前記第1の隣接アドレスに一致しない場合に、前記アクセスアドレスに対応した第2の難読化情報が保持されているか第2の判定をさらに行い、
    前記第2の判定の結果、前記第2の難読化情報が保持されていない場合に、
    前記アクセスアドレスを含むアドレス情報に基づいて前記第2の難読化情報を生成する工程と、
    前記第2の難読化情報を前記アクセスアドレスに対応付けて保持する工程と、
    前記アクセスアドレスに隣接する第2の隣接アドレスを算出する工程と、
    前記第2の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す工程と、
    前記第2の隣接アドレスを含むアドレス情報に基づいて第3の難読化情報を生成する工程と、
    前記第2の隣接アドレスに対応付けて前記第4の難読化情報を保持する工程と、
    を含む処理を行い、
    前記第2の判定の結果、前記第2の難読化情報が保持されている場合に、前記第2の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す処理を行うことを特徴とする半導体記憶装置の制御方法。
  13. 前記第1の判定の結果、前記アクセスアドレスが前記第1の隣接アドレスに一致する場合、または前記第2の判定の結果、前記第2の難読化情報が保持されている場合に、
    前記アクセスアドレスに隣接する前記第2の隣接アドレスを算出する工程と、
    前記第2の隣接アドレスを含むアドレス情報に基づいて前記第3の難読化情報を生成する工程と、
    前記第2の隣接アドレスに対応付けて前記第3の難読化情報を保持する工程と、
    を含む処理をさらに行うことを特徴とする請求項12に記載の半導体記憶装置の制御方法。
  14. 不揮発性の第1の記憶部と、揮発性の第2の記憶部と、を備える半導体記憶装置の制御方法において、
    前記第2の記憶部に対するアクセス要求が発生すると、前記アクセス要求のアクセス時刻が、前回のアクセス要求時に算出された第1の次アクセス時刻に一致するかを判定し、
    前記判定の結果、前記アクセス時刻が前記第1の次アクセス時刻に一致しない場合に、
    前記アクセス時刻を含む時刻情報に基づいて第1の難読化情報を生成する工程と、
    前記第1の難読化情報を保持する工程と、
    前記アクセス時刻のつぎの第2の次アクセス時刻を算出する工程と、
    前記第1の難読化情報を用いて、前記アクセス要求で指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセス要求で指定されるデータを復号化して前記第2の記憶部から読み出す工程と、
    前記第2の次アクセス時刻に基づいて第2の難読化情報を生成する工程と、
    前記第2の次アクセス時刻に対応付けて前記第2の難読化情報を保持する工程と、
    を含む処理を行い、
    前記判定の結果、前記アクセス時刻が前記第1の次アクセス時刻に一致する場合に、前記第1の次アクセス時刻に対応付けて保持された第3の難読化情報を用いて、前記アクセスアドレスで指定されるデータを符号化して前記第2の記憶部に記憶し、または前記アクセスアドレスで指定されるデータを復号化して前記第2の記憶部から読み出す処理を行うことを特徴とする半導体記憶装置の制御方法。
  15. 前記アクセス時刻が前記第1の次アクセス時刻に一致する場合に、
    前記アクセス時刻のつぎの前記第2の次アクセス時刻を算出する工程と、
    前記第2の次アクセス時刻に基づいて前記第2の難読化情報を生成する工程と、
    前記第2の難読化情報を保持する工程と、
    を含む処理をさらに行うことを特徴とする請求項14に記載の半導体記憶装置の制御方法。
JP2010046919A 2010-03-03 2010-03-03 コントローラ、半導体記憶装置および半導体記憶装置の制御方法 Pending JP2011181000A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010046919A JP2011181000A (ja) 2010-03-03 2010-03-03 コントローラ、半導体記憶装置および半導体記憶装置の制御方法
US13/039,999 US20110219173A1 (en) 2010-03-03 2011-03-03 Semiconductor memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010046919A JP2011181000A (ja) 2010-03-03 2010-03-03 コントローラ、半導体記憶装置および半導体記憶装置の制御方法

Publications (1)

Publication Number Publication Date
JP2011181000A true JP2011181000A (ja) 2011-09-15

Family

ID=44532283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010046919A Pending JP2011181000A (ja) 2010-03-03 2010-03-03 コントローラ、半導体記憶装置および半導体記憶装置の制御方法

Country Status (2)

Country Link
US (1) US20110219173A1 (ja)
JP (1) JP2011181000A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014170329A (ja) * 2013-03-01 2014-09-18 Kddi Corp コンテンツ配信システム、装置及びプログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9658780B2 (en) * 2011-09-16 2017-05-23 Avalanche Technology, Inc. Magnetic random access memory with dynamic random access memory (DRAM)-like interface
US8904279B1 (en) * 2011-12-07 2014-12-02 Amazon Technologies, Inc. Inhibiting automated extraction of data from network pages
US10102390B2 (en) 2012-06-28 2018-10-16 Honeywell International Inc. Memory authentication with redundant encryption
US10013363B2 (en) 2015-02-09 2018-07-03 Honeywell International Inc. Encryption using entropy-based key derivation
KR102456490B1 (ko) * 2016-01-12 2022-10-20 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US11843597B2 (en) * 2016-05-18 2023-12-12 Vercrio, Inc. Automated scalable identity-proofing and authentication process
US10708073B2 (en) 2016-11-08 2020-07-07 Honeywell International Inc. Configuration based cryptographic key generation
US11456855B2 (en) * 2019-10-17 2022-09-27 Arm Limited Obfuscating data at-transit
US11604740B2 (en) * 2020-12-01 2023-03-14 Capital One Services, Llc Obfuscating cryptographic material in memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2293670A (en) * 1994-08-31 1996-04-03 Hewlett Packard Co Instruction cache
JP4226816B2 (ja) * 2001-09-28 2009-02-18 株式会社東芝 マイクロプロセッサ
JP3880933B2 (ja) * 2003-01-21 2007-02-14 株式会社東芝 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
US7353499B2 (en) * 2003-09-25 2008-04-01 Sun Microsystems, Inc. Multiple instruction dispatch tables for application program obfuscation
US7970133B2 (en) * 2006-01-19 2011-06-28 Rockwell Collins, Inc. System and method for secure and flexible key schedule generation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014170329A (ja) * 2013-03-01 2014-09-18 Kddi Corp コンテンツ配信システム、装置及びプログラム

Also Published As

Publication number Publication date
US20110219173A1 (en) 2011-09-08

Similar Documents

Publication Publication Date Title
JP2011181000A (ja) コントローラ、半導体記憶装置および半導体記憶装置の制御方法
US11275603B2 (en) Technologies for memory replay prevention using compressive encryption
US10848326B2 (en) System and method for collision detection
CN112699383B (zh) 数据密码设备、存储器系统及其操作方法
JP2010509690A (ja) 記憶装置のセキュリティを確保する方法とシステム
WO2019212772A1 (en) Key generation and secure storage in a noisy environment
US10985914B2 (en) Key generation device and key generation method
US10664414B2 (en) Controller and advanced method for deleting data
JP6991493B2 (ja) データセキュリティを提供するメモリデバイス
TWI738097B (zh) 具有密碼學組件的記憶體裝置
US8171378B2 (en) Flash memory system having encrypted error correction code and encryption method for flash memory system
TW201244440A (en) Authenticator, authenticatee and authentication method
TWI415135B (zh) 具保護能力的記憶體裝置及其資料存取方法
JP2012227899A (ja) 認証コンポーネント、被認証コンポーネントおよびその認証方法
US11899942B2 (en) Memory systems and devices including examples of accessing memory and generating access codes using an authenticated stream cipher
CN116648688A (zh) 包含使用认证逻辑产生用于存储器区的存取代码的实例的存储器系统和装置
KR20180006250A (ko) 암호 파일을 관리하는 모바일 장치의 방법 및 그것을 포함하는 암호 파일 관리 시스템
US20150249467A1 (en) Storage device, controller, and data writing method
TWI775284B (zh) 記憶系統、其控制方法及資訊處理系統
TW202001564A (zh) 用以存取資料的方法以及相關電路
JP2015026892A (ja) 情報処理システム
JP2012227900A (ja) 認証コンポーネント、被認証コンポーネントおよびその認証方法
JP5353828B2 (ja) プロセッサ及びプロセッサシステム
KR101593519B1 (ko) 플래시 메모리 시스템 및 그것의 암호화 방법
TW202403773A (zh) 半導體裝置及用以管理其之安全操作的系統與方法