JP2015201244A - セキュアテストモードを有するメモリデバイスとその方法 - Google Patents

セキュアテストモードを有するメモリデバイスとその方法 Download PDF

Info

Publication number
JP2015201244A
JP2015201244A JP2014224073A JP2014224073A JP2015201244A JP 2015201244 A JP2015201244 A JP 2015201244A JP 2014224073 A JP2014224073 A JP 2014224073A JP 2014224073 A JP2014224073 A JP 2014224073A JP 2015201244 A JP2015201244 A JP 2015201244A
Authority
JP
Japan
Prior art keywords
memory device
memory
test
result
error
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
JP2014224073A
Other languages
English (en)
Other versions
JP5926355B2 (ja
Inventor
タシエル ニイル
Tasher Nir
タシエル ニイル
カルズニー ウリ
Kaluzhny Uri
カルズニー ウリ
ウェイセル ツァチ
Weiser Tsachi
ウェイセル ツァチ
テペル ヴァレリー
Teper Valery
テペル ヴァレリー
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.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics 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 Winbond Electronics Corp filed Critical Winbond Electronics Corp
Publication of JP2015201244A publication Critical patent/JP2015201244A/ja
Application granted granted Critical
Publication of JP5926355B2 publication Critical patent/JP5926355B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0769Readable error formats, e.g. cross-platform generic formats, human understandable formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】テストモードのメモリデバイスを機密保護する方法およびシステムを提供する。
【解決手段】テストモードで動作するメモリデバイスの方法は、メモリデバイスに書き込まれるベクトルを受信するステップ、前記ベクトルが所定のテストベクトルのセットに属する場合にだけ、前記ベクトルを前記メモリデバイスに書き込むステップ、および前記ベクトルが前記テストベクトルのセットに属しない場合、前記ベクトルを前記テストベクトルの1つに変換し、前記変換されたベクトルを前記メモリデバイスに書き込むステップを含む。
【選択図】図2

Description

本発明は、機密保護された(secured)メモリに関し、特に、テストモードにおいてのメモリデバイスを機密保護する方法およびシステムに関するものである。
いくつかの機密保護されたメモリデバイスは、秘密鍵を用いて保存されたデータを暗号化している。機密保護されたメモリデバイスは、慎重に保存された情報にアクセスするか、またはデータを変更する、および/またはメモリデバイスの動作を中断させることを目的とする、さまざまな攻撃を受け易い可能性がある。
本発明は、テストモードにおけるメモリデバイスを機密保護する方法およびシステムを提供する。
本発明の方法は、テストモードで動作するメモリデバイスの方法であって、メモリデバイスに書き込まれるベクトルを受信するステップを含む。ベクトルはベクトルが所定のテストベクトルのサブセットに属する場合にだけメモリデバイスに書き込まれる。ベクトルがテストベクトルのサブセットに属しない場合、ベクトルは、テストベクトルの1つに変換され、変換されたベクトルは、メモリデバイスに書き込まれる。
いくつかの実施形態では、ベクトルをテストベクトルの1つに変換するステップは、ベクトルのビットのサブセットを選ぶステップ、およびベクトルの残りのビットを選ばれたサブセットの周期的な複製と代替するステップを含む。もう1つの実施形態では、テストベクトルのどれでも、全ての偶数次(偶数桁)(even−order)のビットは、第1のビット値に等しく、全ての奇数次(奇数桁)のビットは、第2のビット値に等しく、ベクトルの変換は、ベクトルで代表的な偶数ビットと代表的な奇数ビットを選び、ベクトルの偶数次のビットを代表的な奇数ビットと代替し、ベクトルの奇数次のビットを代表的な奇数ビットと代替する。
実施例では、メモリをテストするステップは、予め書き込まれたテストベクトルのデータワードを読み出し、且つ前記読み出しデータワードのエラーに関する符号化された情報をメモリデバイスの外に明示することを含む。もう1つの実施形態では、符号化された情報の明示は、エラーの全数の明示を含む。またもう1つの実施形態では、符号化された情報の明示は、エラーの実際の位置を明示しないことを含む。
いくつかの実施形態では、エラーの実際の位置を明示しないステップは、異なる各々の偶数次と奇数次の位置にあるエラーを示す、偶数次(偶数桁)と奇数次(奇数桁)のビットをシフトするステップを含む。もう1つの実施形態では、符号化された情報を明示するステップは、エラーのサブセットの実際の位置を明示するステップを更に含む。
本発明の実施形態に応じて、メモリおよびメモリコントローラを含むメモリデバイスが更に提供される。メモリコントローラは、テストモードで動作するように構成され、メモリに書き込まれるベクトルを受信し、ベクトルをベクトルが所定のテストベクトルのセットに属する場合にだけメモリに書き込み、ベクトルがテストベクトルのセットに属しない場合、ベクトルをテストベクトルの1つに変換し、変換されたベクトルをメモリに書き込む。
本発明の実施形態に応じて、メモリデバイスでは、テストモードでメモリデバイスから1つ以上のワードを読み出すステップを含む方法が更に提供される。1つ以上のワードに用いられる一方向関数の結果は、その結果から復元されることができる1つ以上のワードがないように計算される。計算された結果に基づき、1つ以上のワードのエラーに関する符号化された情報を出力する。
いくつかの実施形態では、1つ以上のワードを読み込むステップは、保存された時、1つ以上のワードの少なくとも1つのサブセットに用いられた一方向関数の期待の結果を受信するステップ、および結果を計算するステップは、読み出した時、1つ以上のワードのサブセットに一方向関数を用いるステップを含む。もう1つの実施形態では、符号化された情報を出力するステップは、期待の結果と計算された結果とを比較した2進数の結果を出力するステップを含む。またもう1つの実施形態では、期待の結果を受信するステップは、複数の回数の期待の結果を受信し、その回数が所定のしきい値を上回る場合、保護対策を取るステップを含む。
本発明の実施形態に応じて、メモリおよびメモリコントローラを含むメモリデバイスが更に提供される。メモリコントローラは、テストモードでメモリから1つ以上のワードを読み出すように構成され、1つ以上のワードに用いられる一方向関数の結果がその結果から復元されることができる1つ以上のワードがないように計算し、計算された結果に基づき、1つ以上のワードのエラーに関する符号化された情報を出力する。
本発明の実施形態に応じて、秘密鍵がインストールされるかどうかをチェックするステップを含むメモリデバイスの方法が更に提供される。秘密鍵がインストールされたのを検出すると、メモリデバイスのテストモードは、メモリデバイスから少なくとも秘密鍵を消去するまで無効になる。
いくつかの実施形態では、秘密鍵は、メモリデバイスのメモリにインストールされ、少なくとも秘密鍵を除去するステップは、メモリデバイスの全てのメモリを消去するステップを含む。
本発明の実施形態に応じて、メモリおよびメモリコントローラを含むメモリデバイスが更に提供される。メモリコントローラは、秘密鍵がインストールされたかどうかをチェックするように構成され、秘密鍵がインストールされたのを検出すると、少なくとも秘密鍵をメモリから消去するまでメモリデバイスのテストモードを無効にする。
添付の図面に関連付けて以下の本発明の様々な実施形態の詳細な説明を検討することで、本発明はより完全に理解できる。
本発明の実施形態に応じたメモリデバイスをテストするシステムを図式的に示したブロック図である。 本発明の実施形態に応じた書き込みテストパターンを保護する方法を図式的に示したフローチャートである。 本発明の実施形態に応じたメモリデバイスをテストする方法を図式的に示したフローチャートである。 本発明の実施形態に応じた一方向関数を用いてメモリデバイスをテストする方法を図式的に示した図である。
ここで述べられる本発明の実施形態は、メモリデバイスのテストモードを不当に利用しようとする攻撃に対してメモリデバイスを保護するための改善された方法およびシステムを提供する。テストモードでは、テストパターンは一般的に、保存され、暗号化されずに読み取られるため、テスト結果の解釈を容易にする。一般的に権限のあるテスターだけがメモリデバイスのテストを許可されるが、権限のないテスターは、メモリデバイスのテストモードの脆弱さを利用することによって、保存されたデータにアクセスするか、またはデータを変更、メモリデバイスの動作を中断させる、またはメモリデバイスを攻撃しようとする可能性がある。後に続く説明では、メモリデバイスが保護されていないリンクによって外部ホスト(例えば、テスター)と通信するものとする。
いくつかの実施形態では、テストモードは、所定のテストパターンの小セット(サブセット、subset)を特定する(ここではテストベクトルとも呼ばれる)。テストモードで動作する時、メモリデバイスは、所定の有効なパターンのサブセットに属するデータワードだけをメモリアレイに書き込ませる。また、テストパターンのサブセットに属さなないデータワードを受けた時、メモリデバイスは、記憶される前にデータワードを所定のテストパターンの1つに変換する。有意データでなく、テスト限定されたパターンでメモリデバイスに書き込ませることによって、メモリデバイスの安全性は、大幅に向上される。
いくつかの実施形態では、メモリデバイスは、1つ以上のエラーを含む可能性のある、予め書き込まれたテストパターンをメモリから読み出す。メモリデバイスは、読み出しパターンを有効なパターンの1つに変換し、その結果を読み出しパターンと比較して、誤りビットのワードを生成する。次いで、メモリデバイスは正確なエラー位置を隠すために、誤りビットのワードを操作するが、一方、テスターに有意情報を与え、テストおよびデバッグを行う。この操作は、例えば、誤りビットを他のビット位置にシフトすることを含む。言い換えれば、メモリデバイスはエラー数を追従するが、エラーの実際の位置を隠す。実施形態では、メモリデバイスは、エラー数および最高の誤りビットの位置を更に符号化する。
いくつかの実施形態では、ホストは、所定のメモリ領域(連続領域である必要はない)に、テストデータを書き込む。ホストは、このメモリ領域に保存されたデータに適用される一方向関数(one way function)の期待される結果(expected result)をメモリデバイスに更に提供する。一方向関数は、その演算結果からメモリ領域のどのデータワードも復元することが不可能であるように定められる。メモリ領域の完全性をテストするために、メモリデバイスは、一方向関数の結果を再計算し、再計算の結果をホストによって提供された期待の結果と比べる。
期待の結果と再計算の結果間のどの違いも、メモリ領域から読み出されたデータが1つ以上のエラーを含むことを示している。メモリデバイスは、比較した結果の2進数(バイナリー)だけを出力するため、必要な情報だけを明示する。このテスト方式は、データ書き込みの正確性をテストすることができるが、データそのものを推測することを不可能にする。
いくつかの実施形態では、メモリデバイスは、複数の異なるバージョンの一方向関数の結果を送ることによってメモリの内容を推測しようとする攻撃からの保護を提供する。メモリデバイスは、メモリデバイスがそのような期待される結果を受ける回数を数え、この数が所定のしきい値を上回る場合、メモリデバイスはテストモードを無効にするか、または他の好適な保護対策を取る。
実施形態では、メモリデバイスは、1つ以上の秘密鍵がインストールされたのを検出すると、メモリのテストを無効にする。例えば、秘密鍵は、暗号化および/または認証のために用いられ得る。一方、秘密鍵がインストールされていない時、メモリデバイスは暗号化および/または認証の動作を行うことができない。よって、秘密鍵がインストールされた時、例えば、テストをするために、メモリデバイスは、暗号化されていないデータをメモリへの、またはメモリからの書き込み、読み出し、または両方を無効にする。この実施形態では、テストを行うために、メモリデバイスは、まず、どんなインストールされた秘密鍵をも含む全てのメモリを消去する。または、メモリデバイスは、メモリから秘密鍵とその他の秘密情報だけを除去する。
本発明の技術は、種々の方法、例えば、テストパターンの小セットに書き込むことができるデータを制限することによって、テスト結果に関する符号化され、かつ限定された情報を明示することによって、且つどんな秘密鍵および/または秘密データをも消去した後にのみ、メモリテストを行うことによって、メモリ装置を安全にテストすることができる。
システム記述
図1は、本発明の実施形態に応じたメモリデバイス24をテストするシステム20を図式的に示したブロック図である。システム20は、メモリデバイス24へのデータ書き込みおよび/または命令をするホストコンピュータ28を含む。メモリデバイス24は、保護されていないリンク38を介してメモリインターフェースを用いてホストコンピュータ28と通信するメモリコントローラ32を含む。
メモリデバイス24は、記憶用にメモリコントローラ32から受けたデータを保存する非揮発性メモリ40を更に含み、要求に応じてメモリコントローラ32保存されたデータを読み出す。図1の実施形態では、不揮発性メモリ40は、フラッシュメモリを含む。もう1つの実施形態では、例えば、ソリッドステートドライブ(SDD)ベースの、電気的消去可能プログラマブルROM(EEPROM)、ワンタイムプログラマブル(OTP)ROM、抵抗変化メモリ(RRAM(登録商標))、ハードディスクドライブ(HDD)のような磁気記憶、光記憶など、どんな好適な技術のどんな他の好適な不揮発性メモリでも用いられることができる。後に続く説明では、不揮発性メモリ40は、不揮発性メモリの代表例としてフラッシュメモリを含むものとするが、本発明の技術は、どんな他の好適なメモリにも用いることができる。
モード配置ユニット44は、メモリデバイス24が2つの動作モードの中の1つで動作するように構成し、ここでは動作およびテストモードとして呼ばれる。テストモードは、権限のあるユーザーに一般的に制限されるが、権限のない攻撃者はデバイスを動作のテストモードにさせる可能性がある。
動作モードにある時、メモリコントローラ32は、暗号化エンジン52を用いて、暗号処理を不揮発性メモリ40に保存されるデータ、およびフラッシュメモリから読み出されたデータに適用することができる。動作モードでは、セレクタ48は、暗号化エンジン52と不揮発性メモリ40を相互接続する。いくつかの実施形態では、暗号化エンジン52は、保存前にデータを暗号化し、フラッシュメモリから読み出されたデータを復号する。
代替的にまたは付加的に、暗号化エンジン52は、データの暗号化された署名を計算し、フラッシュメモリのデータに沿って信号を保存する。データが読み出された時、暗号化エンジン52は、読み出されたデータの署名を計算して、保存された署名を比較することによって、データの完全性を検証することができる。秘密鍵ユニット56は、暗号化エンジン52によって用いられる1つ以上の秘密鍵を保持する。
テストモードで動作している時、メモリコントローラ32は、セレクタ48を構成し、暗号化エンジン52の代わりに、テスト読み出し、および/または、(以下、/)書き込み(R/W)ユニット60を不揮発性メモリ40と相互接続する。よって、テストモードでは、フラッシュメモリとホスト間で交換され得る情報は、テストR/Wユニット60によって制御される。
いくつかの実施形態では、テストモードでフラッシュメモリにデータを書き込む時、R/Wユニット60は、所定のテストパターン64の小セットに属するデータワードだけをフラッシュメモリに書き込むことができる。また、R/Wユニット60は、どんなテストパターン64にもマッチしないメモリインターフェース34から受けたどんなデータも許可されたテストパターンの1つに変換する。結果、権限のないユーザーは、有意情報をフラッシュメモリに書き込むことができず、フラッシュメモリに保存された慎重な情報を変更することができない。
メモリデバイス24がテストモードにあり、不揮発性メモリ40からデータを読み取る時、R/Wユニット60は、読み出されたデータのエラーをチェックする。R/Wユニット60は、エラーに関する情報を符号化し、エラーに関する重要な情報だけが公開され、メモリインターフェース34を介して符号化された情報をホストコンピュータ28に提供するため、保護されていないリンク38を介して最小かつ重要な情報だけを明示する。
いくつかの実施形態では、メモリデバイス24のテストは、フラッシュメモリに保存された、いくつかのデータに対して一方向関数の結果を計算することに基づいている。「一方向関数」という用語は、(a)データの変化は、非常に高い可能性で関数の結果に変化を生じさせ、(b)データは、その結果から復元されることができない、という2つの基準を満たす。
一方向関数の実施は、一般的にR/Wユニット60内で完成されるが、暗号化エンジン52の一部、または2つの間で分けられる可能性がある。ホストがメモリデバイスにデータを保存した時、R/Wユニット60は、データに沿って保存し、ホストにそのデータに適用された一方向関数の結果を戻す。また、ホストは、それぞれの一方向関数の結果を計算し、その結果をホストのローカルメモリに保存する手段を含む。
テストの時、ホストがR/Wユニット60に一方向関数の期待の結果を提供してデータを読み返すと、R/Wユニット60は、読み出されたデータに対して一方向関数を再計算し、期待の結果と比較する。2つの結果がマッチした場合、データは、高い可能性で、データは正確に読み出されたものとされる。R/Wユニット60は、ホストコンピュータ28に比較結果だけを、または一方向関数の再計算された結果だけを出力することができる。
いくつかの実施形態では、R/Wユニット60は、更に再計算された結果と比較するために、R/Wユニットが一方向関数の期待の結果を受ける回数の追跡を維持する。追跡された回数が所定のしきい値を上回る時、総当たり攻撃を示し、デバイスは、メモリデバイスのテストモードを無効にすることによって、または他の好適な保護対策を取ることによって、そのような攻撃から保護することができる。
いくつかの実施形態では、R/Wユニット60は、秘密鍵ユニット56がインストールされたかどうかを検出する手段を含み、更に以下の実施形態において記述されるように、秘密鍵および/または他の慎重な情報が消去されるまでメモリのテストを無効にすることができる。
図1のメモリデバイス24の構成は、例示的な構成であり、単に概念を明確にするために選ばれている。もう1つの実施形態では、他の好適なメモリデバイスの構成も用いられることができる。メモリデバイス24の異なる部品、例えばR/Wユニット60および暗号化エンジン52がどの好適なハードウェア、例えば特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)を用いても実施されることができる。いくつかの実施形態では、メモリデバイス24のいくつかの部品は、ソフトウェアを用いて、またはハードウェアとソフトウェアの部品の組み合わせを用いて実施されることができる。
いくつかの実施形態では、システム20の特定の部品、例えばホストコンピュータ28またはメモリコントローラ32の部品は、ソフトウェアにプログラムされ、ここに記述される機能を実行する汎用プロセッサを含むことができる。ソフトウェアは、例えばネットワークを介して電子フォームでプロセッサにダウンロードされるかまたは、代替的にまたは付加的に、一時的でない有形の媒体、例えば磁気、光学、電子メモリなどに提供および/または保存されることができる。
メモリのセキュアテスト
図2は、本発明の実施形態に応じた書き込みテストパターンを保護する方法を図式的に示したフローチャートである。図2の方法では、メモリデバイスがテストモードで動作するものとする。更に、不揮発性メモリ40が32ビットデータの部品を保存し、そのテストパターン64が4つの32ビットパターンから成るものとし、その値は下記の表1に表される。表1のテストパターンのどれでも、偶数のビット位置にある全てのビットは、第1のビット値を有し、奇数のビット位置にある全てのビットは、第2のビット値を有する。
Figure 2015201244
受信ステップ100で開始する方法では、R/Wユニット60を用いてホストコンピュータ28から書き込まれるデータワードを受信する。テストモードでは、データワードは、一般的にテストパターン64に属していなければならない(例えば、データワードは上記の表1のパターンの1つと等しい)。もう1つの実施形態では、直接データワードを受信する代わりに、R/Wユニットは、ホストから、書き込まれるデータワードを含む命令を受信する。
チェックステップ104では、R/Wユニット60は、受信したデータワードがテストパターン64のどれかにマッチするかどうかをチェックする。データワードが全ての有効なテストパターンと異なる場合、R/Wユニットは変換ステップ108でデータワードを有効なテストパターンに変換する。でなければ、R/Wユニットは、データワードを無変換のままにする。注意するのは、両ケースでは、R/Wユニットは有効なテストパターンを出力することである。いくつかの実施形態では、受信したデータワードがどのデータパターンともマッチしない時、メモリデバイスはデータワードまたはこのデータワードを含む命令を無視する。
R/Wユニット60は、受信したデータワードを有効なパターンに変換するどの好適な方法も用いることができる。いくつかの実施形態では、変換を実行するために、R/Wユニットは、まず、受信したデータワードの32ビットの中から代表的な偶数ビットおよび代表的な奇数ビットを選ぶ。R/Wユニットは、例えば、受信したデータワードの最上位有効ビットとその隣接ビット、または最下位有効ビットとその隣接ビットのような、どの好適な偶数および奇数の代表的なビットも選ぶことができる。次いで、R/Wユニットは、偶数次(偶数桁)(even−ordered)のビットを偶数の代表的なビットと交換し、且つ奇数次(奇数桁)(odd−ordered)のビットを奇数の代表的なビットと交換することによって、受信したデータワードを有効なテストパターンに変換する。一般的に言うと、R/Wユニットは、受信したデータワードをデータワードのビットのどの好適なサブセットでも選び、データワードの残りのビットを選ばれたサブセットの周期的な複製と代替することによって、有効なテストパターンに変換することができる。
1つの実施形態では、ステップ108において、R/Wユニット60は、最上位有効ビットとその隣接ビットの2進値を15倍複製することによって、データワードを有効なパターンに変換する。例えば、R/Wユニットは、Xが「0」または「1」でもよい2進値を示す32ビットのデータワード“00XX…XXXX”をパターン“0x00000000”に変換し、ワード“01XX…XXXX”をパターン“0x55555555”に変換する(2進数「0101…01010101」)。
保存ステップ112では、R/Wユニット60は、上述の有効なテストパターンに等しいステップ108の出力を不揮発性メモリ40に書き込み、この方法が終了する。
図2に記述された書き込み方法は、権限のないユーザーが、保護された情報を読み出すまたは操作する、或いは他のダメージをデバイスに与えようとした場合、有意情報をメモリに書き込むことから防ぐ。
図3は、本発明の実施形態に応じたメモリデバイスをテストする方法を図式的に示したフローチャートである。この方法は、上述の図2の方法を用いてメモリを書き込んだ後、または図2の方法と独立に実行されることができる。図3の説明は、パターン“0x55555555”(2進数「0101…01010101」)が予めフラッシュメモリに書き込まれた数値例を伴う。フローチャートの種々のステップに対応する更なる各々の数値結果は、下記の表2で表される。
読み出しステップ200では、この方法は、不揮発性メモリ40に保存されるワードを読み出すR/Wユニット60で開始する。いくつかの実施形態では、R/Wユニットは、ホストからの各々の命令(図示せず)の受信に応じて、ステップ200を実行し、メモリの1つ以上の位置を読み出す。ステップ200で読み出される32のビットのワードのどれも、正しい、または誤りであり得る。表2の例では、読み出されたワードは、21のエラーを含むものとし、かつ予め書き込まれたパターン“0x55555555”を読む出す代わりに、R/Wユニット60は、R_WORD=0x93209A6Aを読み出す。
読み出し変換ステップ204では、R/Wユニット60は、R_WORDをテストパターン64の中の1つに変換する。実施形態では、前記変換は、上記の各々のステップ104と108で記述されたチェックと条件変換に類似している。表2の例では、R_WORDの最上位有効ビットとその隣接ビットは、「10」に等しいため、R_WORDはパターンR_PATTERN=0xAAAAAAAAに変換される。
エラー抽出ステップ208では、R/Wユニット60は、32ビットのビット単位のXOR(排他的論理和、Exclusive OR)演算を用いて、R_WORDとR_PATTERNとを比較し、R_ERRORSで表示される32ビットワードのエラーを生成する。注意するのは、R_WORDがエラーを含まない時、R_ERRORSはゼロワードに等しいことである。
MSエラー抽出ステップ212では、R/Wユニットは、MS_ERRORS_BITで表示される32ビットワードを抽出し、R_ERRORSのMS誤りビットの位置で、単一の「1」ビットを含む。例えば、R/Wユニット60は、全てのMS_ERROR_BITワードを消去することができて、次いで、R_ERRORSで見つかった左端の非ゼロビットの位置で、「1」ビットをセットする。表2の例では、MS_ERROR_BIT=0x20000000である。いくつかの実施形態では、R/Wユニット60は、MS誤りビットに関する明示的な情報を提供せず、ステップ212は省略されてもよい。
更にステップ212では、R/Wユニット60は、最下位(LS)ビット(あれば)を含み、LS_ERRORS_BITで表示される32ビットワードを抽出する。LSエラービットを除き、LS_ERROR_BITSはR_ERRORSに等しい(例えば、R_ERRORSとLS_ERROR_BIT間にビット単位のXOR演算で計算される)。表2の例では、LS_ERROR_BITS=0x198A30C0である。
エラー符号化ステップ216では、R/Wユニット60は、エラーの総数がまとめられているが、誤りビットの実際の位置が明示されていないエラーから、LS_ERROR_BITSのエラーを32ビットワードに符号化する。R/Wユニット60は、ここで記述されるLS_ERROR_BITSの偶数と奇数のビットの位置を各々処理する。後に続く説明では、偶数および奇数の「1」ビットは、32ビットワードのビット位置または場所が偶数または奇数である「1」ビットを各々指している。
ステップ216で偶数の「1」ビットを処理するために、R/Wユニット60は、LS_ERROR_BITSの偶数の「1」ビットを最右端の偶数の有効な位置(即ち、消去された)に移動させる。この動作の結果は、EVN_SHIFT_ERRORSで表示され、フォーム000・・・010101を有し、1の数は、LS_ERROR_BITSの偶数の「1」ビットの数と等しい。表2の例では、LS_ERROR_BITSは、4つの偶数の「1」ビットを含むため、EVN_SHIFT_ERRORS=0x00000055である。
同様に、奇数の「1」ビットを処理するために、R/Wユニット60は、LS_ERROR_BITSの奇数の「1」ビットを最右端の奇数の有効な位置に移動させる。この動作の結果は、ODD_SHIFT_ERRORSで表示され、フォーム000・・・101010を有し、1の数は、LS_ERROR_BITSの奇数の「1」ビットの数と等しい。表2の例では、LS_ERROR_BITSに6つの奇数の「1」ビットを有するため、ODD_SHIFT_ERRORS=0x00000AAAである。
注意するのは、ワードEVN_SHIFT_ERRORSとODD_SHIFT_ERRORSは、エラーの数に関する情報を伝えるが、それによってはエラーの真の位置は回復できない。
エラー符号化ステップ220では、R/Wユニット60は、ステップ212のMSエラービットMS_ERROR_BIT、ステップ216の偶数シフトのエラーEVN_SHIFT_ERRORSと奇数シフトのODD_SHIFT_ERRORS、およびステップ204のパターンR_PATTERNを組み合わせ、ENCODED_ERRORSを生成する。いくつかの実施形態では、ステップ220での組み合わせの演算は、R_PATTERN、MS_BIT_ERROR、EVEN_SHIFTED_ERRORS、およびODD_SHIFTED_ERRORS間のビット単位のXOR演算を含む。表2の例では、ENCODED_ERRORS=0x8AAAA055である。次いで、メモリデバイスはステップ220のENCODED_ERRORSをホストコンピュータ28に送る。
上述の実施形態では、R/Wユニット60は、R_PATTERNにビット単位のXORを2回行っており、1回目は、ステップ208でエラーを抽出している時、2回目は、ステップ220で、エラーを符号化コード化している時に行う。また、2回のXOR演算を行っている間、偶数と奇数の「1」ビットは、他の各々の偶数と奇数の位置に再配置される。注意するのは、R_WORDの最上位有効ビットとその隣接ビットがエラーを含む場合、R_PATTERN値は、保存された実際のパターン値と異なる。この場合、R_ERRORSの誤りおよび正しいビットの役割は、スイッチされるが(即ち、ゼロは誤りビットを示し、1は正しいビットを示す)、ステップ220でのXOR演算は、これらの役割を順にスイッチバックする。
上述の実施形態では、R/Wユニットは、MSエラービットの位置を保持し、LSビットエラーを最右端の有効な位置にシフトさせる。よって、この方法はMSエラービットの位置を保持するが、LSエラービットに対しては、R/Wユニットは、それらの実際の位置を明示せずに、エラー数を出力する。
以下に記述されるステップは、メモリデバイスから、上述のステップ220の結果ENCODED_ERRORSを受けた後に、ホストコンピュータ28によって実行される。比較ステップ224では、ホストは、ENCODED_ERRORSと期待されるテストパターン(W_PATTERN)とを比較する。ホストは、ビット単位のXOR演算を用いてENCODED_ERRORSとW_PATTERN間に比較を行うことができる。比較結果は、EST_ERRORSで示され、表2の例では、EST_ERRORS=0xDFFFF500である。
エラー復号ステップ228では、ホストは、各々の読み出しエラーに関するEST_ERRORS情報を抽出する。本実施形態では、ホストは、MSエラー、およびエラーの全数の正確な位置を抽出し、MSエラーは、最左端の位置に位置され、全部で21のエラーがある。
Figure 2015201244
図3に記述のテスト構成は、例示的なものであり、他のテスト構成も用いられることができる。例えば、いくつかの実施形態では、ホストは、期待のパターンをメモリデバイスに送信し、そのパターンを保存された値と比較し、あれば、ホストに読み出しエラーに関する符号化情報を戻す。
上述の実施形態では、読み出しエラーに関する符号化情報は、MSエラーの正確な位置、およびエラーの全数を含む。もう1つの実施形態では、情報は、MSエラーの位置、またはエラーの全数のみを含む。また、エラーの情報は、MSエラー以外の位置(例えばLSエラーの位置)、および/または複数エラーの位置を含むことができる。
上述の実施形態は、上記表1に示された4つのテストパターンを用いて実施されている。しかしながら、もう1つの実施形態では、他のどの好適なセットの有効なパターンも用いられることができる。例えば、パターン数は、4つ以外でもよい。もう1つの実施形態として、パターンの値は、上記の表1のパターンと異なってもよい。
図3の方法では、誤りビットは、最右端の偶数または奇数の有効な位置にシフトされる。代替的にまたは付加的に、誤りビットは、最右端の位置でない偶数または奇数の有効な位置にシフトされることができる。例えば、単一のエラーがLSビット位置で生じた場合、このエラービットは他のどの奇数ビット位置に再配置されることができる。
図3の方法は、ワードサイズが32ビットのメモリをテストするのを説明しているが、前記方法は、他のどの好適なワードサイズにも適用される。
一方向関数に基づくセキュアテスト
図4は、本発明の実施形態に応じた一方向関数を用いてメモリデバイスをテストする方法を図式的に示した図である。図4の方法は、書き込み位相と読み出し位相を含む。書き込み位相では、ホストは、テストデータをメモリデバイスのメモリ領域260に書き込む。ホストは、テストデータに対して一方向関数を用いる期待の結果を所有し、且つR/Wユニット60が書き込まれたデータに対して同じ一方向関数を計算する手段を含むものとする。
ホストコンピュータおよびR/Wユニット60は、入力Aを提供する特性を有するどの好適な一方向関数F(・)も用いることができ、B=F(A)は計算し易いが、結果Bより、Aを再現するのは、実現不可能である。また、2つの異なる入力AおよびA’とすると、F(A)=F(A’)である可能性は非常に低い。例示的な一方向関数は、暗号化ハッシュ関数(cryptographic hash functions)SHA−1とSHA−2を含む。
読み出し位相では、メモリデバイスは、メモリ領域MEM_Aに保存されたデータに変化が生じたかどうかをチェックする。MEM_A’で示されたメモリ領域268は、MEM_Aと同じメモリ領域である(即ち、同じメモリアドレスを含む)が、エラーが原因で、メモリ領域268の内容は、メモリ領域260に書き込まれた元の内容と異なる可能性がある。
いくつかの実施形態では、MEM_Aのデータの完全性をテストするために、R/Wユニットは、F(MEM_A’)を計算し、その結果をホストによって提供された期待の結果のF(MEM_A)と比較する。ホストは、テストデータを書き込んだ後、直ちに、または他の好適な時に読み出し位相を初期化することができる。F(MEM_A’)がF(MEM_A)と等しい時、データの完全性は、高い可能性がある。R/Wユニット60は、完全性確認テストの2進数の通過/失敗結果だけをホストコンピュータ28に提供する。このテスト方式は、2進数の通過/失敗結果だけを明示している時、データそのものでなく、データのサインを比較することによって、テストデータが正しく書き込まれたかどうかをチェックする。また、暗号法論的には強力な一方向関数を用いることは、攻撃者が保存された内容を推測することを不可能にする。
権限のない攻撃者は、多くの異なるバージョンの期待の一方向関数の結果を送る可能性があり、正確なものを発見することを試みる。実施形態では、R/Wユニット60は、この試みの数の追跡を続け、この数が所定のしきい値を超えた場合、R/Wユニットは、好適な保護措置、例えばデバイスのテストモードを無効にするなどの措置を取る。
秘密鍵を消去することによるセキュアテスト
いくつかの実施形態では、メモリデバイス24は、秘密鍵がインストールされていなければ、メモリテストを実行する。これらの実施形態では、メモリデバイスがテストモードで動作されるように構成されるが(例えば、モード配置ユニット44を用いる)、秘密鍵がインストールされていることを検出した場合、メモリデバイスは、秘密鍵を含む全てのメモリが消去されるまでテストを無効にする。また、秘密鍵、および場合によって制限される重要なデータを保存するメモリ領域が消去されると、メモリデバイスにテストをさせることができる。
上述のシステム20の実施形態は、例示的なものであり、説明のためのものである。もう1つのテストシステムでは、他の好適な実施形態も用いられることができる。例えば、上述のさまざまな実施形態は、個別に説明されているが、他のテストシステムが構成され、2つ以上の上述の実施形態を同時に実行することもできる。
ここで述べられる実施形態は、主に非揮発性メモリのセキュアテストに対応し、ここに述べられる方法およびシステムは、他のアプリケーション、例えば、どのサイズと技術の保存システムのセキュアテストに用いられることもできる。
上述の実施例は、本明細書中に記述される発明を限定するものでなく、あらゆる局面において例示的であると考えられる。よって本発明の範囲は、前述の説明によってではなく、添付の請求の範囲によって示され、請求の範囲と等価な意義と範囲内にある全ての変更は、この中に含まれることが意図される。
20 システム
24 メモリデバイス
28 ホストコンピュータ
32 メモリコントローラ
34 メモリインターフェース
38 リンク
40 不揮発性メモリ
44 モード配置ユニット
48 セレクタ
52 暗号化エンジン
56 秘密鍵ユニット
60 テスト読み出し/書き込み(R/W)ユニット
64 テストパターン
260、268 メモリ領域

Claims (16)

  1. テストモードで動作するメモリデバイスにおいて、
    当該メモリデバイスに書き込むべきベクトルを受信し、
    前記受信したベクトルが予め規定された組のテストベクトルに属している場合のみ、前記メモリデバイスに前記受信したベクトルを書き込み、
    前記受信したベクトルが前記予め規定された組のテストベクトルに属さない場合は、前記受信したベクトルをテストベクトルの1つに変換し、前記変換したベクトルを前記メモリデバイスに書き込む、
    方法。
  2. 前記受信したベクトルをテストベクトルの1つに変換するステップは、
    前記受信したベクトルのビットのサブセットの1つを選択し、
    前記受信したベクトルの残りビットを、前記選択しサブセットで周期的な複製と置き換える、
    ステップを有する、
    請求項1に記載の方法。
  3. 当該方法は、
    予め書き込まれたテストベクトルのデータワードを読みだすことにより、前記メモリデバイスをテストし、
    前記読みだしたデータワード内のエラーについて符号化したデータを前記メモリデバイスの外部に取り出す、
    ステップを有する、
    請求項1に記載の方法。
  4. 前記符号化したデータを取り出すステップは、前記エラーの全数を取り出し、
    前記エラーの真の位置は取り出さないステップを具備し、
    当該エラーの真の位置は取り出さないステップは、それぞれ異なる偶数桁または奇数桁の位置に対するエラーを示す、偶数桁および奇数桁にシフトするステップを具備する、
    請求項3に記載の方法。
  5. 前記符号化した情報を取り出すステップは、前記エラーの真の位置を取り出すステップを具備する、
    請求項3に記載の方法。
  6. メモリ、および、
    メモリコントローラを具備するメモリデバイスであって、
    前記メモリコントローラは、
    テストモードにおいて動作し、
    前記メモリに書き込むべきベクトルを受信し、
    前記受信したベクトルが予め規定された組のテストベクトルに属している場合のみ、前記メモリに前記受信したベクトルを書き込み、
    前記受信したベクトルが前記予め規定された組のテストベクトルに属さない場合は、前記受信したベクトルをテストベクトルの1つに変換し、当該変換したベクトルを前記メモリに書き込む、
    ように構成されている、
    メモリデバイス。
  7. 前記メモリコントローラは、
    前記受信したベクトルを、前記ベクトルのサブセットを選択することにより、テストベクトルの1つに変換し、
    前記受信したベクトルのビットのビットを、前記選択しサブセットで周期的な複製と置き換える、
    ように構成されている、
    請求項6に記載のメモリデバイス。
  8. 前記メモリコントローラは、
    予め書き込まれているテストベクトルのデータワードを読みだし、
    前記読みだしたデータワード内のエラーについて符号化したデータを前記メモリデバイスの外部に取り出す、
    ように構成されている、
    請求項6に記載のメモリデバイス。
  9. 前記メモリコントローラは、前記エラーの全数を取り出するように構成されており、
    前記エラーの真の位置は取り出さないように構成されており、
    前記メモリコントローラは、それぞれ異なる偶数桁または奇数桁の位置に対するエラーを示す、偶数桁および奇数桁にシフトするように構成されている、
    請求項8に記載のメモリデバイス。
  10. 前記メモリコントローラは、前記エラーの真の位置を取り出すように構成されている、
    請求項8に記載のメモリデバイス。
  11. テストモードで動作するメモリデバイスにおいて、
    テストモードにおいて、当該メモリデバイスから1つまたは複数のワードを読み出し、
    前記1つまたは複数のワードのいずれもが演算結果から再生できないように、前記1つまたは複数のワードに対して適用する一方向関数の結果を演算し、
    前記演算結果に基づいて、前記1つまたは複数のワード内のエラーに関する符号化情報を出力する、
    方法。
  12. 前記符号化情報を出力するステップは、少なくとも前記1つまたは複数のワードのサブセットに適用する前記一方向関数の期待される結果と、前記演算した結果との比較結果の2進数の結果を出力するステップを具備する、
    請求項11に記載の方法。
  13. 前記期待される結果を受信するステップは、多数回期待される結果を受信し、もしその回数が所定のしきい値を越える場合、保護対策を講ずる、
    請求項11に記載の方法。
  14. メモリ、および、
    メモリコントローラ
    を具備するメモリデバイスであって、
    前記メモリコントローラは、
    1つまたは複数のワードを読み取り、
    演算結果から前記1つまたは複数のワードが再現されないように、前記1つまたは複数のワードに適用される一方向関数の結果を演算し、
    前記演算結果に基づいて、前記1または複数のワード内のエラーに関する符号化情報を出力する、
    ように構成さされている、
    メモリデバイス。
  15. 前記メモリコントローラは、少なくとも前記1つまたは複数のワードに適用する前記一方向関数の期待される結果と、前記演算した結果との比較結果の2進数の結果を出力する、ように構成されている、
    請求項14に記載のメモリデバイス。
  16. 前記メモリコントローラは、多数回期待される結果を受信し、もしその回数が所定のしきい値を越える場合、保護対策を講ずる、ように構成されている、
    請求項14に記載のメモリデバイス。
JP2014224073A 2014-04-03 2014-11-04 セキュアテストモードを有するメモリデバイスとその方法 Active JP5926355B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/244,000 US9318221B2 (en) 2014-04-03 2014-04-03 Memory device with secure test mode
US14/244,000 2014-04-03

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015251085A Division JP6134375B2 (ja) 2014-04-03 2015-12-24 セキュアテストモードを有するメモリデバイスとその方法

Publications (2)

Publication Number Publication Date
JP2015201244A true JP2015201244A (ja) 2015-11-12
JP5926355B2 JP5926355B2 (ja) 2016-05-25

Family

ID=54210335

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014224073A Active JP5926355B2 (ja) 2014-04-03 2014-11-04 セキュアテストモードを有するメモリデバイスとその方法
JP2015251085A Active JP6134375B2 (ja) 2014-04-03 2015-12-24 セキュアテストモードを有するメモリデバイスとその方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015251085A Active JP6134375B2 (ja) 2014-04-03 2015-12-24 セキュアテストモードを有するメモリデバイスとその方法

Country Status (2)

Country Link
US (2) US9318221B2 (ja)
JP (2) JP5926355B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL234956A (en) 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy
US10019571B2 (en) 2016-03-13 2018-07-10 Winbond Electronics Corporation Protection from side-channel attacks by varying clock delays
US10740186B2 (en) * 2017-05-15 2020-08-11 The Boeing Company High data integrity processing system
US10976367B2 (en) 2018-12-13 2021-04-13 Micron Technology, Inc. Controller structural testing with automated test vectors

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04313900A (ja) * 1991-04-11 1992-11-05 Hitachi Ltd 半導体記憶装置
JPH09160802A (ja) * 1995-12-05 1997-06-20 Matsushita Electric Ind Co Ltd テスト装置
JP2013073283A (ja) * 2011-09-26 2013-04-22 Nec Saitama Ltd 情報処理装置及び記憶部検査方法

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4521853A (en) 1982-06-30 1985-06-04 Texas Instruments Incorporated Secure microprocessor/microcomputer with secured memory
US5671283A (en) 1995-06-08 1997-09-23 Wave Systems Corp. Secure communication system with cross linked cryptographic codes
US5835594A (en) 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US6272637B1 (en) 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
EP1056015A4 (en) 1998-01-21 2005-01-05 Tokyo Electron Ltd MEMORY DEVICE, DEVICE AND DECOMPOSITION DEVICE AND ACCESS PROCESS FOR NON-VOLATILE MEMORY
US6163863A (en) 1998-05-22 2000-12-19 Micron Technology, Inc. Method and circuit for compressing test data in a memory device
WO2000057290A1 (fr) 1999-03-19 2000-09-28 Hitachi, Ltd. Processeur d'informations
EP1267515A3 (en) 2000-01-21 2004-04-07 Sony Computer Entertainment Inc. Method and apparatus for symmetric encryption/decryption of recorded data
US6934389B2 (en) 2001-03-02 2005-08-23 Ati International Srl Method and apparatus for providing bus-encrypted copy protection key to an unsecured bus
KR100385228B1 (ko) 2001-04-18 2003-05-27 삼성전자주식회사 불휘발성 메모리를 프로그램하는 방법 및 장치
US6976136B2 (en) 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US6760918B2 (en) 2001-06-29 2004-07-06 Scientific-Atlanta, Inc. Method and apparatus for recordable media content distribution
EP1293856A1 (fr) 2001-09-18 2003-03-19 EM Microelectronic-Marin SA Circuit Intégré sécurisé comprenant des parties à caractère confidentiel, et procédé pour sa mise en action
US7490250B2 (en) 2001-10-26 2009-02-10 Lenovo (Singapore) Pte Ltd. Method and system for detecting a tamper event in a trusted computing environment
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7137004B2 (en) 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7203310B2 (en) 2001-12-04 2007-04-10 Microsoft Corporation Methods and systems for cryptographically protecting secure content
US6768943B2 (en) 2002-04-18 2004-07-27 Aviation Communication & Surveillance Systems, Llc System and method using environment memory having signatures
US7248696B2 (en) 2002-09-12 2007-07-24 International Business Machines Corporation Dynamic system bus encryption using improved differential transitional encoding
JP2004152437A (ja) * 2002-10-31 2004-05-27 Matsushita Electric Ind Co Ltd 半導体集積回路装置
US8140824B2 (en) 2002-11-21 2012-03-20 International Business Machines Corporation Secure code authentication
US7194626B2 (en) 2002-11-21 2007-03-20 International Business Machines Corporation Hardware-based secure code authentication
US7269747B2 (en) 2003-04-10 2007-09-11 Lenovo (Singapore) Pte. Ltd. Physical presence determination in a trusted platform
US6965521B2 (en) 2003-07-31 2005-11-15 Bae Systems, Information And Electronics Systems Integration, Inc. Read/write circuit for accessing chalcogenide non-volatile memory cells
US7533262B2 (en) 2003-08-01 2009-05-12 Microsoft Corporation Media data protection
US7421076B2 (en) 2003-09-17 2008-09-02 Analog Devices, Inc. Advanced encryption standard (AES) engine with real time S-box generation
DE10345385B4 (de) 2003-09-30 2005-10-06 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
US20050114687A1 (en) 2003-11-21 2005-05-26 Zimmer Vincent J. Methods and apparatus to provide protection for firmware resources
EP1690246A2 (en) 2003-12-05 2006-08-16 Motion Picture Association of America Secure video system for display adaptor
ATE522994T1 (de) 2004-07-05 2011-09-15 Abb Research Ltd Authentifizierung von kurznachrichten.
US8955104B2 (en) 2004-07-07 2015-02-10 University Of Maryland College Park Method and system for monitoring system memory integrity
US7484099B2 (en) 2004-07-29 2009-01-27 International Business Machines Corporation Method, apparatus, and product for asserting physical presence with a trusted platform module in a hypervisor environment
US20060026418A1 (en) 2004-07-29 2006-02-02 International Business Machines Corporation Method, apparatus, and product for providing a multi-tiered trust architecture
US7822993B2 (en) 2004-08-27 2010-10-26 Microsoft Corporation System and method for using address bits to affect encryption
US20060107054A1 (en) 2004-11-16 2006-05-18 Young David W Method, apparatus and system to authenticate chipset patches with cryptographic signatures
JP4537908B2 (ja) 2005-03-29 2010-09-08 株式会社東芝 プロセッサ、メモリ、コンピュータシステムおよびシステムlsi
FR2885709A1 (fr) 2005-05-10 2006-11-17 St Microelectronics Sa Controle d'integrite d'une memoire externe a un processeur
US8041032B2 (en) 2005-08-19 2011-10-18 Cardiac Pacemakers, Inc. Symmetric key encryption system with synchronously updating expanded key
US20070133437A1 (en) 2005-12-13 2007-06-14 Wengrovitz Michael S System and methods for enabling applications of who-is-speaking (WIS) signals
JP2007213718A (ja) 2006-02-10 2007-08-23 Matsushita Electric Ind Co Ltd 半導体集積回路及び半導体集積回路の検査方法
US8452981B1 (en) 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US8997255B2 (en) 2006-07-31 2015-03-31 Inside Secure Verifying data integrity in a data storage device
US20080155273A1 (en) 2006-12-21 2008-06-26 Texas Instruments, Inc. Automatic Bus Encryption And Decryption
US7882365B2 (en) 2006-12-22 2011-02-01 Spansion Llc Systems and methods for distinguishing between actual data and erased/blank memory with regard to encrypted data
US7836269B2 (en) 2006-12-29 2010-11-16 Spansion Llc Systems and methods for access violation management of secured memory
US8781111B2 (en) 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
US7739565B1 (en) 2007-07-19 2010-06-15 Xilinx, Inc. Detecting corruption of configuration data of a programmable logic device
KR101321472B1 (ko) 2007-07-23 2013-10-25 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 프로그램 방법
KR100884343B1 (ko) 2007-08-23 2009-02-18 주식회사 하이닉스반도체 쓰기 구동 회로
US8578179B2 (en) 2007-10-19 2013-11-05 Samsung Electronics Co., Ltd Safe command execution and error recovery for storage devices
US8549246B2 (en) 2008-04-30 2013-10-01 Micron Technology, Inc. SPI NAND protected mode entry methodology
US7826271B2 (en) 2008-06-12 2010-11-02 Sandisk Corporation Nonvolatile memory with index programming and reduced verify
JP4620146B2 (ja) 2008-07-18 2011-01-26 株式会社東芝 情報処理装置及び認証方法
EP2166696B1 (fr) 2008-08-27 2016-10-05 STMicroelectronics (Rousset) SAS Protection de l'intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature
US20100098247A1 (en) 2008-10-20 2010-04-22 Nokia Corporation Method, Apparatus And Computer Program Product For Generating An Encryption Key And An Authentication Code Key Utilizing A Generic Key Counter
US9117094B2 (en) 2008-10-29 2015-08-25 Microsoft Technology Licensing, Llc Data location obfuscation
US7881094B2 (en) 2008-11-12 2011-02-01 Seagate Technology Llc Voltage reference generation for resistive sense memory cells
TWI393143B (zh) 2008-12-05 2013-04-11 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與防資料竄改方法
US8649509B2 (en) 2008-12-18 2014-02-11 At&T Intellectual Property I, L.P. Systems and computer program products for generating and verifying randomized hash values
DE102009018222A1 (de) 2009-04-21 2010-10-28 Giesecke & Devrient Gmbh Schreibzugriff auf einen portablen Datenträger
US8429513B2 (en) 2009-07-02 2013-04-23 Stmicroelectronics (Research & Development) Limited Loading secure code into a memory
US8756439B1 (en) 2009-08-28 2014-06-17 Physical Optics Corporation Encryption key management for secured access
US8225182B2 (en) 2009-10-04 2012-07-17 Mellanox Technologies Ltd. Processing of block and transaction signatures
JP5840138B2 (ja) 2009-11-25 2016-01-06 アクララ・テクノロジーズ・リミテッド・ライアビリティ・カンパニーAclara Technologies LLC. 暗号法的に安全な認証装置、システム及び方法
TWI436372B (zh) 2010-01-28 2014-05-01 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與防資料竄改方法
EP2388730A1 (en) 2010-05-17 2011-11-23 Nagravision S.A. Method for generating software code
US20110285421A1 (en) 2010-05-24 2011-11-24 Alexander Roger Deas Synchronous logic system secured against side-channel attack
US8427194B2 (en) 2010-05-24 2013-04-23 Alexander Roger Deas Logic system with resistance to side-channel attack by exhibiting a closed clock-data eye diagram
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
KR101792868B1 (ko) 2010-11-25 2017-11-02 삼성전자주식회사 플래시 메모리 장치 및 그것의 읽기 방법
GB2487901B (en) 2011-02-03 2019-12-04 Advanced Risc Mach Ltd Power signature obfuscation
US8745408B2 (en) 2011-04-08 2014-06-03 Infineon Technologies Ag Instruction encryption/decryption arrangement and method with iterative encryption/decryption key update
US8699712B2 (en) 2011-09-02 2014-04-15 Blackberry Limited Randomization of plain text for GSM SACCH
GB2494731B (en) 2011-09-06 2013-11-20 Nds Ltd Preventing data extraction by sidechannel attack
US8832455B1 (en) 2011-09-21 2014-09-09 Google Inc. Verified boot path retry
US9128876B2 (en) 2011-12-06 2015-09-08 Honeywell International Inc. Memory location specific data encryption key
US9304944B2 (en) 2012-03-29 2016-04-05 Broadcom Corporation Secure memory access controller
CN104350503A (zh) 2012-05-25 2015-02-11 株式会社东芝 存储器设备和存储器系统
US8751814B2 (en) 2012-06-14 2014-06-10 Kabushiki Kaisha Toshiba Device
US8650398B2 (en) 2012-06-14 2014-02-11 Kabushiki Kaisha Toshiba Device authentication using restricted memory
US9703945B2 (en) 2012-09-19 2017-07-11 Winbond Electronics Corporation Secured computing system with asynchronous authentication
US20140281564A1 (en) 2013-03-13 2014-09-18 Kabushiki Kaisha Toshiba Method of authenticating access to memory device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04313900A (ja) * 1991-04-11 1992-11-05 Hitachi Ltd 半導体記憶装置
JPH09160802A (ja) * 1995-12-05 1997-06-20 Matsushita Electric Ind Co Ltd テスト装置
JP2013073283A (ja) * 2011-09-26 2013-04-22 Nec Saitama Ltd 情報処理装置及び記憶部検査方法

Also Published As

Publication number Publication date
US9318221B2 (en) 2016-04-19
US20150287477A1 (en) 2015-10-08
JP5926355B2 (ja) 2016-05-25
JP2016076261A (ja) 2016-05-12
US20160139976A1 (en) 2016-05-19
JP6134375B2 (ja) 2017-05-24
US9471413B2 (en) 2016-10-18

Similar Documents

Publication Publication Date Title
US8782804B2 (en) Storage device, storage system, and authentication method
US10331376B2 (en) System and method for encrypted disk drive sanitizing
US20090125726A1 (en) Method and Apparatus of Providing the Security and Error Correction Capability for Memory Storage Devices
US11409872B2 (en) Confirming a version of firmware loaded to a processor-based device
US8996933B2 (en) Memory management method, controller, and storage system
US20140289526A1 (en) Authenticator, authenticatee and authentication method
JP6134375B2 (ja) セキュアテストモードを有するメモリデバイスとその方法
KR20150112893A (ko) 대수적 조작으로부터 데이터를 보호하는 방법
CN111131130B (zh) 密钥管理方法及系统
CN101968834A (zh) 电子产品的防抄板加密方法和装置
JP2022554288A (ja) メモリサブシステムへの暗号鍵の委任
US20190324678A1 (en) System and Method for Encrypted Disk Drive Sanitizing
JP2012227899A (ja) 認証コンポーネント、被認証コンポーネントおよびその認証方法
JP2012227901A (ja) 認証コンポーネント、被認証コンポーネントおよびその認証方法
CN113632066A (zh) 所执行代码中的错误识别
CN114830110B (zh) 单次使用密码产生
KR101687492B1 (ko) 분산적으로 데이터를 저장하는 방법 및 암호학적 정보 처리 장치
CN101609492B (zh) 嵌入式设备的加解密方法和系统
CN107861892B (zh) 一种实现数据处理的方法及终端
US11323265B2 (en) Storage device providing high security and electronic device including the storage device
TWI529736B (zh) 記憶裝置的測試方法及系統
JP2012227900A (ja) 認証コンポーネント、被認証コンポーネントおよびその認証方法
EP2945092B1 (en) Memory device with secure test mode
CN105469835B (zh) 存储装置及其测试方法
CN117992982A (zh) 数据处理方法及装置、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160317

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: 20160419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160421

R150 Certificate of patent or registration of utility model

Ref document number: 5926355

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250