JP2015069371A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2015069371A
JP2015069371A JP2013202524A JP2013202524A JP2015069371A JP 2015069371 A JP2015069371 A JP 2015069371A JP 2013202524 A JP2013202524 A JP 2013202524A JP 2013202524 A JP2013202524 A JP 2013202524A JP 2015069371 A JP2015069371 A JP 2015069371A
Authority
JP
Japan
Prior art keywords
identification information
data
authentication
flash memory
application
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
JP2013202524A
Other languages
English (en)
Other versions
JP6017392B2 (ja
Inventor
松川 伸一
Shinichi Matsukawa
伸一 松川
津曲 康史
Yasushi Tsumagari
康史 津曲
長井 裕士
Yuji Nagai
裕士 長井
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
Original Assignee
Toshiba 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 filed Critical Toshiba Corp
Priority to JP2013202524A priority Critical patent/JP6017392B2/ja
Priority to US14/188,976 priority patent/US9449193B2/en
Publication of JP2015069371A publication Critical patent/JP2015069371A/ja
Application granted granted Critical
Publication of JP6017392B2 publication Critical patent/JP6017392B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】秘密情報の不正利用を防止することが可能な情報処理装置を提供する。
【解決手段】識別情報を記憶したセキュアフラッシュメモリ100と、セキュアフラッシュメモリ100が有する識別情報の正当性を認証する認証処理を実行するアプリケーション800−1を制御するCPU300とを備える。CPU300は、アプリケーション800−1を実行することによって、セキュアフラッシュメモリ100から識別情報を読み出し、識別情報が正当なものか否かを判定する。CPU300は、識別情報が正当なものである場合、アプリケーション800−1の少なくとも一部の処理を続行し、識別情報が正当なものでない場合、アプリケーション800−1の少なくとも一部の処理を終了する。
【選択図】図9

Description

本発明の実施形態は、不揮発性半導体メモリを備えた情報処理装置に関するものである。
一般に、情報セキュリティを要する分野において、自己の正当性を証明する手段として互いに共有した秘密情報と暗号とを用いた認証技術が採用されている。
例えば、電子決済に用いるICカード(Smart Card)の中にはICチップが含まれ、そのICチップには当該ICカードを識別するためのID(identifier)及び秘密情報が保持されている。更にICカードは、これらID及び秘密情報に基づく認証を行うための暗号処理機能を有している。
別の例では、コンテンツの著作権保護技術において、SDカード(登録商標)の正当性を証明するためのコンテンツ保護技術(Content Protection for Recordable Media(CPRM))が知られている。
特開2012−052010号公報
秘密情報の不正利用を防止することが可能な情報処理装置を提供する。
一実施態様の情報処理装置は、識別情報を記憶した不揮発性半導体メモリと、前記不揮発性半導体メモリが有する前記識別情報の正当性を認証する認証処理を実行するアプリケーションを制御するプロセッサとを備える。前記プロセッサは、前記アプリケーションを実行することによって、前記不揮発性半導体メモリから前記識別情報を読み出し、前記識別情報が正当なものか否かを判定する。 前記プロセッサは、前記識別情報が正当なものである場合、前記アプリケーションの少なくとも一部の処理を続行し、前記識別情報が正当なものでない場合、前記アプリケーションの少なくとも一部の処理を終了することを特徴とする。
第1実施形態のホストデバイスのハードウェア構成の概要を示す図である。 第1実施形態のホストデバイスの機能的な構成を示すブロック図である。 第1実施形態のホストデバイスの構成例を示す図である。 第1実施形態のホストデバイスにおけるセキュアフラッシュメモリの認証フローを示す図である。 第1実施形態におけるホストアプリケーション及びセキュアフラッシュメモリの構成例を示す図である。 第1実施形態におけるスロットの利用方法にを示す図である。 第1実施形態におけるスロットの大分類方法と、ホストアプリケーション及びメモリへの鍵割り当て方法を示す図である。 第1実施形態における各キーセットの整合をとり、互換性を確保した上で配布する方法を示す図である。 第1実施形態のホストデバイスの構成を示すブロック図である。 第1実施形態のホストデバイスにおけるホストアプリケーションの処理を示すフローチャートである。 第2実施形態のホストデバイスの構成を示すブロック図である。 第2実施形態におけるサーバによる認証処理とバインド処理を示すフローチャートである。 第2実施形態におけるバインド処理の具体例を示す図である。 第2実施形態におけるCPUによる認証処理とバインドを解く処理を示すフローチャートである。 第2実施形態におけるバインドを解く処理の具体例を示す図である。 第3実施形態のホストデバイスの構成を示すブロック図である。 第3実施形態におけるサーバによる認証処理とバインド処理を示すフローチャートである。 (a)は第3実施形態におけるバインド処理の具体例を示す図であり、(b)はバインドを解く処理の具体例を示す図である。 第3実施形態におけるCPUによる認証処理とバインドを解く処理を示すフローチャートである。
以下、図面を参照して実施形態の情報処理装置について説明する。情報処理装置は、例えばコンピュータ、スマートホン、タブレット端末、PDA(Personal Digital Assistant)等のホストデバイスを含む。以下、本明細書では、情報処理装置をホストデバイスと称する。以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、配置等を下記のものに特定するものではない。実施形態の技術的思想は、特許請求の範囲において種々の変更を加えることができる。
[第1実施形態]
図1は、第1実施形態のホストデバイスのハードウェア構成の概要を示す図である。
図示するように、ホストデバイス10は、セキュアフラッシュメモリ100、コントローラ200、CPU(central processing unit)300、ROM(Read only Memory)400、RAM(Random Access Memory)500、及びネットワークアクセスユニット600を備える。
前記セキュアフラッシュメモリ100は、例えば識別情報を有するNANDフラッシュメモリなどの不揮発性半導体メモリを含む。コントローラ200は、セキュアフラッシュメモリ100の動作を制御する。CPU300は、ホストデバイス10内における動作全体を制御する。ROM400は、CPU300により使用される制御プログラムなどのファームウェアを格納する。RAM500は、CPU300のワークエリアとして使用され、制御プログラム、各種のテーブル、及びデータ等を一時的に記憶する。ネットワークアクセスユニット600は、ネットワーク上でデータの送受信を行う際、ネットワーク(例えば、サーバ700を含む)とホストデバイス10とを接続する。
次に、第1実施形態のホストデバイスの機能的な構成の概要について説明する。
図2は、前記ホストデバイスの機能的な構成を示すブロック図である。
図示するように、ホストデバイス10は、セキュアフラッシュメモリ100及びホストアプリケーション800を有している。セキュアフラッシュメモリ100は、公開パラメータ111、秘密パラメータ112、及び認証データ生成部113を含む。ホストアプリケーション800はCPU300により実行され、ROM400、RAM500等、ホストデバイス10内の各種リソースを利用する。ホストアプリケーション800は、公開パラメータ801、秘密パラメータ802、乱数生成部803、及び認証データ照合部804を含む。
ホストデバイス10で行われる認証処理は以下のように行われる。
ホストアプリケーション800を実行するCPU300は、公開パラメータ801と乱数生成部803にて生成された乱数RNhをセキュアフラッシュメモリ100へ出力する。セキュアフラッシュメモリ100は、ホストアプリケーション800から取得した公開パラメータ801と乱数RNh、及び自身が持つ秘密パラメータ112とから、認証データ生成部113により認証データを生成する。
また、セキュアフラッシュメモリ100は、ホストアプリケーション800を実行するCPU300へ公開パラメータ111を出力する。CPU300は、セキュアフラッシュメモリ100から取得した公開パラメータ111と、乱数生成部803にて生成された乱数RNh、及び自身が持つ秘密パラメータ802とから、認証データ照合部804により認証データを生成する。
CPU300は、ホストアプリケーション自身で生成した認証データと、セキュアフラッシュメモリ100により生成された認証データとを認証データ照合部804により照合する。両者の認証データが一致した場合、認証が成功となり、CPU300はホストアプリケーション800による次の処理が実行可能となる。一方、両者の認証データが一致しない場合、認証が不成功となり、CPU300はホストアプリケーション800による認証処理を停止し、ホストアプリケーション800を終了する。
ホストアプリケーションは、例えば、ホストデバイス上で動作するオペレーティングシステムであってもよい。あるいは、ホストアプリケーションは、オペレーティングシステム上で動作する各種のアプリケーションプログラムであってもよい。また認証が不成功であった場合に、ホストアプリケーション800の全ての動作を終了させるのではなく、少なくとも一部の機能または処理のみを実行不可とし、認証が成功した場合に、当該少なくとも一部の機能または処理のみを実行可能とする態様も可能である。また、ホストアプリケーション800は、その立ち上げ時に認証処理を実行してもよいし、立ち上げ後、特定の処理を実行する際に認証処理を実行してもよい。
次に、第1実施形態のホストデバイスにおける認証部、被認証部、及びその認証方法について説明する。
<1.構成例(ホストデバイス)>
図3を参照して、第1実施形態に係るホストデバイスの構成例について説明する。図3は、秘密情報NKey及び秘密識別情報SecretIDがメモリ製造業者からセキュアフラッシュメモリ100に与えられた後の状態を示している。本実施形態では、セキュアフラッシュメモリ100が例えばNANDフラッシュメモリである場合を示している。
ここで、秘密情報NKeyと秘密識別情報SecretIDはセキュアフラッシュメモリ100が有する前記識別情報であり、秘密情報NKeyと秘密識別情報SecretIDの固有性は任意である。例えば、秘密情報NKeyはセキュアフラッシュメモリ100毎に固有の値であってもよく、また前記メモリ100のロット毎に固有の値、前記メモリ100の製造者毎に固有の値であってもよい。加えて、秘密識別情報SecretIDはセキュアフラッシュメモリ100毎に固有の値であってもよく、また前記メモリ100のロット毎に固有の値、前記メモリ100の製造者毎に固有の値であってもよい。固有性の粒度は必要に応じて選択すればよいが、秘密情報NKeyもしくは秘密識別情報SecretIDの少なくともいずれか一方はセキュアフラッシュメモリ100毎に固有な値であることが望ましい。
図3に示すように、第1実施形態に係るホストデバイス10は、被認証部であるセキュアフラッシュメモリ100、認証部であるホストアプリケーション800、及び両者を仲介するコントローラ200を備える。ホストアプリケーション800はCPU300によって実行される。CPU300は、ホストアプリケーション800によって実行される処理にしたがって、セキュアフラッシュメモリ100にアクセスする。
ここで、セキュアフラッシュメモリ100等の半導体製品の製造工程について、簡単に説明する。半導体製品の製造工程は、主に基板ウェハ上に回路を形成する前工程と、このウェハを個片に切り分けた後、配線や樹脂パッケージ封入等を行う後工程と、に分けることができる。
コントローラ200は、前工程においてセキュアフラッシュメモリ100内に包含されるよう構成される場合、前工程においては包含されないが後工程において同一パッケージに包含されるように構成される場合、セキュアフラッシュメモリ100とは異なるチップとして提供される場合等、様々な場合がある。図3を含め、以下では、コントローラ200がセキュアフラッシュメモリ100とは異なるチップとして提供される場合を例にとって説明している。
以下、特に断りのない限り、ホストアプリケーション800とセキュアフラッシュメモリ100との間のデータや命令のやり取りは、多くの場合コントローラ200が仲介する。この場合でも、コントローラ200は、前述のデータや命令の本質的内容を変えることはないため、詳細については省略して説明する場合がある。なお、セキュアフラッシュメモリ100及びホストアプリケーション800の構成例の詳細については後述する。
図3に示す各コンポーネント、データ処理について、以下で説明する。本実施形態では、被認証部に記録されている秘密識別情報SecretIDを第三者から秘匿した状態で読み出すと共に、正規の被認証部から読み出されたデータであることを確認する方法、及び同方法を、セキュアフラッシュメモリ100を利用したホストデバイスに適用する場合の構成例を示すものである。
1−1.セキュアフラッシュメモリ
本実施形態において、セキュアフラッシュメモリ100は、例えばNAND型フラッシュメモリであり、自己の正当性が認証される被認証部である。
図示するように、本実施形態に係るセキュアフラッシュメモリ100は、メモリセルアレイ(Cell array)11、及びセルアレイ11の周辺領域に配置されるデータキャッシュ(Data Cache)12、データ生成回路(Generate)13、14、及び一方向性変換器(Oneway)15を備える。データ生成回路(Generate)13、14及び一方向性変換器(Oneway)15は、認証回路107を構成する。
メモリセルアレイ11は、外部からの読み出し及び書き込みの両方が禁止された秘匿領域(Hidden area)101、外部からの書き込みが禁止されたロム領域(ROM area)102、外部からの読み出し及び書き込みの両方が可能な読み書き可能領域(Read/Write area)103等を備える。
読み書き可能領域(一般領域)103は、セキュアフラッシュメモリ100の外部からのデータ書き込み及びデータ読み出し両方が可能な領域である。読み書き可能領域103には、秘匿情報FKeyvを秘匿するために用意された暗号化FKey束である鍵管理情報FKBv(Family Key Block)が記録される。鍵管理情報FKBvはセキュアフラッシュメモリ100に記録される他のデータとは異なり、セキュアフラッシュメモリ100の製造時だけでなく、例えばSDカードのようにセキュアフラッシュメモリ100にコントローラを結合させて一般ユーザ向けのストレージメディアを製造する段階や、或いは前記ストレージメディアの販売後に、ユーザの要求に従ってサーバからダウンロードして記録するように構成することも可能である。詳細については、後述する。
ここで、鍵管理情報FKBvとは、ホストアプリケーション800が保持する秘密情報IDKeykと、当該秘密情報IDKeykのインデックス情報kとに基づいて秘匿情報FKeyvを復号するために用いられる情報であり、または、ホストアプリケーション800が保持する秘密情報IDKeykと、当該ホストアプリケーション800の識別情報とに基づいて秘匿情報FKeyvを復号するために用いられる情報である。
また、鍵管理情報FKBvは、セキュアフラッシュメモリ100毎にユニークに用意するだけでなく、製造工程に合わせて例えばセキュアフラッシュメモリ100の製造ロット(lot)単位やウェハ(Wafer)単位等、複数のセキュアフラッシュメモリ100に共通に付すことが可能な情報(対応付けられることが可能な情報)である。また、鍵管理情報FKBvのインデックス情報vは、鍵管理情報FKBvの識別情報またはバージョン番号情報であってもよい。
秘匿領域101は、セキュアフラッシュメモリ100の外部からのデータ書き込み及びデータ読み出し両方が禁止される領域(Read/Write inhibit)である。秘匿領域101には、認証処理においてセキュアフラッシュメモリ100が用いる秘密情報NKeyi 及びセキュアフラッシュメモリ100の秘密識別情報SecretIDが記録される。
ロム領域102は、セキュアフラッシュメモリ100外部からのデータ書き込みが禁止され、一方データ読み出しが許可される領域である。ロム領域102には、鍵管理情報FKBvによって秘匿されている秘匿情報FKeyvを示すためのインデックス情報v(index ofFKey)、秘匿情報FKeyvによって暗号化された秘密識別情報SecretID(E-SecretID)、秘密情報NKeyiを示すためのインデックス情報i(index of NKey)が記録される。
本実施形態では、インデックス情報iやインデックス情報vを記録する際にデータに誤りが生じてしまった場合でも、正しい識別情報が読み出せるようにするために、一般的には誤り訂正符号を付加した状態で記録される。しかしながら、説明を簡略化するため、ここでは誤り訂正符号化及び復号化処理については特に図示しないものとする。
なお、ロム領域102は、例えば1回の書き込みのみ許容されるOTP(One Time Program)領域であってもよいし、セキュアフラッシュメモリ100の製造工程においては読み出し及び書き込みが可能な一般領域であって、出荷後の管理フラグの書き換えによって読み出し専用となる領域であってもよい。または、当該領域に対する書き込みコマンドを一般領域とは異なる特殊コマンドとし、セキュアフラッシュメモリ100の受領者にはこの特殊コマンドを提供しない等の方法を利用してもよい。他には、セキュアフラッシュメモリ100上では一般領域の扱いであるが、コントローラ200がホストアプリケーション800に提供する機能を読み出しのみに限定する、などの構成をとってもよい。
なお、ロム領域102に記録される情報は後述の通り、秘匿領域101に記録される情報と関連付けられているため、ロム領域102に記録される情報を改ざんした場合、セキュアフラッシュメモリ100の認証機能を有効に働かせることができなくなる。従って改ざんされることによるセキュリティ上の懸念はないため、必ずしもロム領域である必要はなく、読み出し及び書き込みが可能な一般領域で代用してもよい。この場合、図面中のロム領域102を読み書き可能領域(一般領域)103と読み替えればよい。関連して、ロム領域102中に記載されているデータの一部を読み書き可能領域(一般領域)103に記録してもよい。例えば、インデックス情報v(index of FKey)を読み書き可能領域(一般領域)に記録し、暗号化された秘密識別情報(E-SecretID)とインデックス情報v(index of FKey)をロム領域102に記録するという構成も可能である。上記ロム領域102の構成例については、本明細書にて他の実施形態や変形例として後述されるロム領域102にも適用可能である。
暗号化された秘密識別情報E-SecretIDとは、セキュアフラッシュメモリ100のチップ毎に固有に(ユニークに)付される秘密識別情報SecretIDを秘匿情報FKeyvによって暗号化したデータである。或いは、セキュアフラッシュメモリに予めコンテンツを記録して販売するようなプリレコーディング(事前記録)コンテンツ配布用途において同じコンテンツデータを記録する際には、敢えて同じ暗号化秘密識別情報E-SecretIDを記録する等、用途に合わせて同じ暗号化秘密識別情報を複数のセキュアフラッシュメモリに記録することもできる。
データキャッシュ12は、メモリ(セルアレイ)11から読み出したデータを一時的に記憶する。
データ生成部13、14は、複数の入力データから予め定められた演算によって出力データを生成する回路である。
データ生成部13は、ホストアプリケーション800から受信した定数HCjを前述の秘密情報NKeyi を用いて変換することで、秘密情報HKeyi,jを生成する。データ生成部14は、ホストアプリケーション800から受信した乱数RNhを秘密情報HKeyi,jを用いて変換することで、セッション鍵SKeyi,jを生成する。データ生成部13、14は、ハードウェア(回路)若しくはソフトウェア、またはハードウェアとソフトウェア両方の組み合わせでも実装され得る。
データ生成部13、14は、回路として実装される場合は、全体の回路規模を小さくするために、後述の一方向性変換器15と同じ、或いは一方向性変換器を流用した回路や、AES(Advanced Encryption Standard)暗号化器等を用いることも可能である。同様に、データ処理手順を分かり易くするために異なる構成要素として図示されている二つのデータ生成部は、同じ回路を繰り返し利用することが可能である。この例の場合、HKeyi,j=AES_E(NKeyi, HCj)、SKeyi,j= AES_E(HKeyi,j, RNh)などの構成をとることが可能である。
一方向性変換器15は、入力されたデータと別途入力された鍵データに一方向性の変換を施し、一方向性変換された入力データを出力する。一方向性変換器15はハードウェア(回路)若しくはソフトウェア、またはハードウェアとソフトウェア両方の組み合わせでも実装され得る。
一方向性変換器15は、秘匿領域101から読み出した秘密識別情報SecretIDを、データ生成回路14によって生成されたセッション鍵SKeyi,jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-ID (= Oneway(SKeyi,j, SecretID))を生成する。また、一方向性変換器15は、回路として実装される場合は、前述の通り、全体の回路規模を小さくするために、データ生成部14等を流用して使用することも可能である。この例の場合、Oneway-ID=AES_E(SKeyi、j,SecretID) (+) SecretIDなどの構成をとることが可能である。
1−2.ホストアプリケーション
本実施形態において、ホストアプリケーション800は、被認証部の正当性を判定する認証部である。
図示するように、本実施形態に係るホストアプリケーション800は、復号部(Decrypt)21、FKB処理部(Process FKB)22、メモリ部(RAM500及びROM400)23、乱数生成部(RNG: RandomNumber Generator)24、選択部(Select 2)25、データ生成部(Generate)26、一方向性変換部(Oneway)27、及びデータ検証部(Verify)28等の機能ブロックを備える。この他、例えば、図示しない誤り訂正処理部等も必要に応じて構成要素として備えることが可能である。
復号部21は、入力されたデータを別途入力された鍵データで複合し、復号された入力データを出力する。本実施形態では、復号部21は、コントローラ200を介して、暗号化秘密識別情報E-SecretIDをセキュアフラッシュメモリ100から読み出す。そして、暗号化秘密識別情報E-SecretIDを、後述のFKB処理部22(データ選択部22−2)から入力された秘匿情報FKeyを用いて復号し、秘密識別情報SecretIDを出力する。
FKB処理部22は、セキュアフラッシュメモリ100から読み出される鍵管理情報FKBvを、メモリ部23に秘匿されている秘密情報IDKeyk及び秘密情報IDKeykのインデックス情報kを用いて復号し、生成した秘匿情報FKeyを復号部21に出力する。本実施形態では、FKB処理部22は、データ選択部(Select 1)21−1及び復号部(Decrypt)22−2を備えている。
第1段目のデータ選択部21−1は、セキュアフラッシュメモリ100から読み出した暗号化FKey束(鍵管理情報FKBv)の中から、メモリ部23に記録されているインデックス情報kを用いて、メモリ部23に秘匿されている秘密情報IDKeykによって復号可能なデータを選択して、復号部22−2に出力する。
復号部22−2は、メモリ部23に秘匿されている秘密情報IDKeykを用いて、データ選択部22−1において選択されたデータを復号し、生成された秘匿情報FKeyを復号部21に出力する。
なおここでは、FKB処理部22を備え、FKB処理部22内で生成した秘匿情報FKeyを復号部21に出力する例を示したが、メモリ部23が予め秘匿情報FKeyを記憶しており、この秘匿情報FKeyを復号部21に出力するようにしてもよい。
メモリ部23は、インデックス情報k、秘密情報IDKeyk、秘密情報セットHKeyi,j (i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)、及び定数HCjを記録し、少なくとも秘密情報IDKeyk及び秘密情報セットHKeyi,j (i=1,…,m)をホストアプリケーション800の外部に対して秘匿する。ここで、定数HCjとは、認証要求(Request authentication)時にセキュアフラッシュメモリ100に送出するために予め保持しているホストアプリケーション800の定数である。詳細については後述する。
乱数生成部24は、認証処理に用いる乱数RNhを生成し、出力する。
第2段目のデータ選択部25は、セキュアフラッシュメモリ100のロム領域102からデータキャッシュ12を介して読み出したインデックス情報iを用いて、当該ホストアプリケーション800が秘匿している秘密情報セットHKeyi,jの中から、認証処理に必要な秘密情報HKeyi,jを選択する。
データ生成部26は、複数の入力データから予め定められた演算によって出力データを生成する演算部である。本実施形態では、データ生成部26は、ホストアプリケーション800自身が生成した乱数RNhを、ホストアプリケーション800が秘匿している秘密情報HKeyi,jを用いて変換することで、セッション鍵SKeyi,jを生成する。データ生成部26として、例えば上述したAES暗号化器等を用いることも可能である。
一方向性変換部27は、復号部21から出力される秘密識別情報SecretIDを、データ生成部26から出力されるセッション鍵SKeyi,jを用いて一方向性関数により変換し、一方向性変換識別情報Oneway-IDを生成する。
データ検証部28は、セキュアフラッシュメモリ100から受信した一方向性変換識別情報Oneway-IDと、ホストアプリケーション800内の一方向性変換部27から得られた一方向性変換識別情報Oneway-IDとが一致するか否かを比較する。上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、復号部21で得られた秘密識別情報SecretIDが正規のIDであると判定して、得られた秘密識別情報SecretIDを以降の処理に引き渡す。一方、不一致の場合(NG)には、秘密識別情報SecretIDが不正なIDであると判定して、その旨を出力する。
他に、ホストアプリケーション800が有する秘密情報、例えばIDKeyk,HKeyi,jが流出し、流出情報を有する不正ホスト装置が不正製造者によって製造された場合などにおいて、当該不正ホスト装置を無効化する手段として、鍵管理情報(FKBv)から不正ホスト装置が有するIDKeykにてFKeyを導出可能な情報を除くなどの対応をとることも可能である。この対応をするに当たっては、秘密情報IDKeyk及びインデックス情報k、秘密情報HKeyi,j及びホスト定数HCjの間に関連を持たせることが有用である。関連があれば、不正ホスト装置が認証において通知するHCjを観測することによって当該不正ホスト装置が有する秘密情報IDKeyk及びHKeyi,jの両方が特定可能となる。関連付けの方法としては、HCjの全部もしくは一部の情報をIDKeykと共有することや、HCjの全部もしくは一部の情報をIDKeykを暗号処理した結果により構成することや、IDKeykの全部もしくは一部の情報をHCjを暗号処理した結果により構成することなどの方法がとれる。更に、鍵管理情報(FKBv)の生成に当たり、FKeyおよびIDKeykに加えて、HKeyi,jを用いるのが望ましい。
ここで、上記秘密情報IDKeyk、秘密情報HKeyi,jは、例えば、ホストデバイス内部の専用メモリにメーカ独自の方法で暗号化した上で記録されていたり、PC等で実行されるプログラムであればタンパーレジスタントソフトウェア(TRS)技術によって不正な解析から保護できる状態で保持していたり、或いはセキュリティモジュールを内蔵している場合には当該セキュリティモジュールの機能を利用して秘匿する等の対策を採った状態で記録される。
なお、コントローラ(Controller)200は、セキュアフラッシュメモリ100を制御して、ホストアプリケーション800を実行するCPUとの間のデータ転送等を行う。例えばコントローラ200は、ホストアプリケーション800を実行するCPU300から受信した命令を解釈し、セキュアフラッシュメモリ100のインターフェース仕様に適合した命令に変換した上で、当該命令をセキュアフラッシュメモリ100に送出する。コントローラ200は、例えばSD Memory規格、SDIO規格、eMMC規格等、必要に応じて様々なインターフェース規格を採用することができる。
また、コントローラ200は、一般領域103の一部を確保し、自身の動作に必要な制御データを保存する。また、コントローラ200は、ホストアプリケーション800を実行するCPU300から受信した論理アドレスをセキュアフラッシュメモリ100の物理アドレスに変換する機能を有していてもよい。また、前記メモリ100の疲弊を平準化するため、所謂ウェアレベリングを実行する機能を有していてもよい。ただし、少なくとも秘匿領域101についてはウェアレベリングの対象外とされる。
また、ホストデバイスの構成例は、上記説明したものに限られない。例えば、図示しない誤り訂正処理部等のその他の構成要素も必要に応じて備えることが可能である。更に、セキュアフラッシュメモリ100が有する秘密情報NKeyiが複数存在してもよい。すなわち、秘密情報NKeyiとこれに対応するインデックス情報iの組み合わせを1つのスロットとし、複数スロットがセキュアフラッシュメモリ100に記録されている。ここで、上記スロットには各々スロット番号が付与されており、ホストアプリケーション800を実行するCPUは各スロット番号のインデックス情報iを読み出し、いずれか一つを選択して認証を行う。
この場合、ホストアプリケーション800を実行するCPU300は、セキュアフラッシュメモリ100に対して選択したスロット番号に相当する情報を通知し、セキュアフラッシュメモリ100は通知されたスロット番号に相当する情報を用いて認証処理を行う。更には、セキュアフラッシュメモリ100が有する全ての情報を1つのスロットとし、当該情報スロットを複数有してもよい。すなわち、秘密情報NKeyi、インデックス情報i、鍵管理情報(FKBv)、インデックス情報v(index of FKey)、秘密識別情報SecretID、暗号化された秘密識別情報(E-SecretID)を1つのスロットとし、複数スロットがセキュアフラッシュメモリ100に記録されている。
ここで、上記スロットには各々スロット番号が付与されており、CPUは各スロット番号のインデックス情報iを読み出し、いずれか一つを選択して認証を行う。この場合、CPU300は、セキュアフラッシュメモリ100に対して選択したスロット番号に相当する情報を通知し、セキュアフラッシュメモリ100は通知されたスロット番号に相当する情報を用いて認証処理を行う。
上記において、セキュアフラッシュメモリ100が複数のスロットを有する方法を示したが、これらに限らず、一部の情報を複数のスロットで共有するいかなる構成をとることも可能である。例えば、秘密識別情報SecretID、暗号化された秘密識別情報(E-SecretID)、鍵管理情報(FKBv)、インデックス情報v(index of FKey)は複数のスロットで共有し、他の情報はスロット毎に個別に有するなども可能である。
また、セキュアフラッシュメモリ100が複数のスロットとスロット番号を有し、いずれのスロットを認証に用いるかを、ホストアプリケーション800を実行するCPU300が通知する方法は本明細書にて後述する他の実施形態の全てに適用可能である。
<2.認証フロー>
次に、図4に沿って、第1実施形態のホストデバイスにおけるセキュアフラッシュメモリの認証フローについて説明する。ホストアプリケーション800は、CPU300によって実行される。
(Step S11)
認証を開始(Start)すると、ホストアプリケーション800を実行するCPU300は、セキュアフラッシュメモリ100から鍵管理情報である暗号化FKey束(FKB: Family Key Block)及び暗号化秘密識別情報SecretID(E-SecretID)を読み出す。
(Step S12)
続いて、CPU300は、読み出した鍵管理情報FKBからデータ選択部(Select1)22−1によりデータ選択処理を行い、CPU300が復号可能な暗号化された秘匿情報FKeyを読み出すと共に、秘匿している秘密情報IDKeykを用いて上記復号部22−2により復号することにより、秘匿情報FKeyを得る。更に、CPU300は、得られた秘匿情報FKeyを用いて、セキュアフラッシュメモリ100から読み出した暗号化秘密識別情報E-SecretIDを復号することにより、秘密識別情報SecretIDを得る。
なお、Step S11で鍵管理情報FKBを読み出し、Step S12で秘匿情報FKeyを算出したが、事前に秘匿情報FKeyを計算してホストアプリケーション800に持たせて、鍵管理情報FKBから秘匿情報FKeyを計算する処理を省略することも可能である。
(Step S13)
続いて、CPU300は、セキュアフラッシュメモリ100に対してインデックス情報iの読み出し要求を行う。
(Step S14)
続いて、セキュアフラッシュメモリ100は、CPU300の要求を受けて、インデックス情報iをセキュアフラッシュメモリ100からロードし、CPU300に出力する。
(Step S15)
続いて、CPU300は、認証要求時に必要となる乱数RNhを生成する。認証処理に乱数RNhを用いることにより、以下の処理でセキュアフラッシュメモリ100との間で毎回異なる共有鍵を利用することができる。
(Step S16)
続いて、CPU300は、認証要求(Request authentication)と共に、予め保持している定数HCj及び乱数RNhをセキュアフラッシュメモリ100に送出する。
(Step S17)
続いて、セキュアフラッシュメモリ100は、秘密情報NKeyi (i=1,…,m)及び秘密識別情報SecretIDを秘匿領域101からロードし、データキャッシュ12に保存する。
(Step S18)
続いて、セキュアフラッシュメモリ100は、秘匿している秘密情報NKeyiとCPU300から受信した定数HCjとを用いて、データ生成回路13におけるデータ生成処理により秘密情報HKeyi,jを生成する。
(Step S19)
続いて、セキュアフラッシュメモリ100は、受信した乱数RNhを用いて、データ生成回路14におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
(Step S20)
続いて、セキュアフラッシュメモリ100は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換器15における一方向性変換処理を行い、一方向性変換識別情報Oneway-ID (=Oneway(SKeyi,j, SecretID))を生成する。生成された一方向性変換識別情報Oneway-IDは、CPU300に送出される。
(StepS21)
上記StepS18と並行して、CPU300は、受信したインデックス情報iを用いて、予め秘匿していた秘密情報セットHKeyi,j (i=1,…,m)から当該セキュアフラッシュメモリ100との認証処理に必要な秘密情報HKeyi,jを選択する。
(Step S22)
続いて、CPU300は、選択した秘密情報HKeyi,jと生成した乱数RNhとを用いて、データ生成部26におけるデータ生成処理により、セッション鍵SKeyi,j (= Generate(HKeyi,j, RNh))を生成する。
(Step S23)
続いて、CPU300は、生成したセッション鍵SKeyi,jを用いて、秘密識別情報SecretIDに一方向性変換部27における一方向性変換処理を行い、一方向性変換データOneway-IDを生成する。
(Step S24)
続いて、CPU300は、セキュアフラッシュメモリ100より受信した一方向性変換識別情報Oneway-IDと、自身が生成した一方向性変換識別情報Oneway-IDとが一致するか否かを判定する。
上記一方向性変換識別情報Oneway-IDの両方の値が一致した場合(OK)には、復号部21で得られた秘密識別情報SecretIDが正規のIDであると判定して、以降の処理に秘密識別情報SecretIDを引き渡す。一方、不一致の場合(NG)には、秘密識別情報SecretIDが不正なIDであると判定し、その旨を以降の処理に出力する。
以上の動作により、第1実施形態に係る認証フローを終了する(End)。
なお、ここで、ホストデバイスの構成例において示した通り、セキュアフラッシュメモリ100が複数のスロットを有する場合、CPU300は認証に用いるスロット番号をセキュアフラッシュメモリ100に通知する必要がある。この場合、上記Step S16にてスロット番号を付随して通知してもよいし、もしくはStep S16より以前のStepにおいて通知してもよい。
図5を参照して、第1実施形態におけるホストアプリケーション800及びセキュアフラッシュメモリ100の構成例を説明する。ホストアプリケーション800及び前記メモリ100は、各利用形態に対応した認証に要する情報を「スロット」と呼ばれる集合内に有する。
各スロットは、各利用形態に必要とされる認証に要する情報及び機能の集合体として定義される。一例として、図5に示すシステムでは、スロットXはある利用形態に必要とされる情報及び機能の集合体であり、スロットYは他の利用形態のそれであり、スロットZはさらに他の利用形態のそれである。図5では、説明のため、各スロットにおいてホストアプリケーション800が必要とする認証機能を包含した機能集合体をホスト認証部2001として記述している。また、図5では、説明のため、各スロットにおいてセキュアフラッシュメモリ100が必要とする認証機能を包含した機能集合体をメモリ認証回路107´として記述している。
ここで、ホストアプリケーション800及びメモリ100の間の認証において、ホストアプリケーション800を実行するCPUはスロットに割り当てられたスロット番号を指定する。すなわち、スロット番号は各認証機能及び認証に用いるデータの選択を意味しており、広義には必要とされる認証レベルによって機能選択をすることを意味する。セキュアフラッシュメモリ100は指定されたスロット番号に応じて、使用する認証に要するデータをスロット選択部301により選択し、また認証に要する機能に相当した処理を行う。CPUも、自身がスロット選択部301により指定したスロット番号に応じて、使用する認証に要するデータを選択し、また認証に要する機能に相当した処理を行う。
このスロットという概念の導入により、必要とされる認証レベルが異なるアプリケーションにおいても、各々のアプリケーションに適した利用形態を選択することができ、また、それらを共通のスロット番号としてホストアプリケーション800及びメモリ100間で通信を行うことにより、互換性問題や認証不整合を生じることなく、さまざまな組み合わせのホストアプリケーション800及びメモリ100を運用することが容易になる。
すなわち、図5では、ホストアプリケーション800はスロットX,Y,Zに対応し、セキュアフラッシュメモリ100はスロットX,Y,Z及びその他のスロットに対応している例を示したが、これに限らず、ホストアプリケーション800がスロットXのみ、スロットX,Yの2つ、またはスロットX,Y,Z及びその他のスロットに対応している場合、同様にメモリ100がスロットXのみ、スロットYのみ、スロットZのみ、スロットX,Yの2つ、またはスロットX,Y,Zのスロットに対応している場合にも拡張可能である。更には、ホストアプリケーション800が複数種類存在する場合、例えばホストアプリケーション800AはスロットXのみ、ホストアプリケーション800BはスロットX,Yに対応している場合、同様にセキュアフラッシュメモリ100がスロットXのみ、スロットYのみに対応している場合など、この例に縛られず、さまざまな形で運用を拡張することも可能である。
次に、図6を参照してスロットの利用方法について示す。前述した通り、複数のスロットを備えることにより、1つのシステムにおいて、認証レベルが異なる複数のアプリケーションに対応することができる。図6では複数のアプリケーションに対応させた例を示している。スロットO〜Tは各々アプリケーションA〜Gと対応関係を有している。例えば、アプリケーションAにおける認証処理ではスロットOが利用される。また、アプリケーションCにおける認証処理ではスロットPが利用される。ここで、スロットOはアプリケーションAに加えてアプリケーションBとも対応関係を有している。
一般に、アプリケーションは様々な基準に従って分類され、利用される。図6ではコンテンツ種別などによって分類され、スロットを割り当てられる場合を示している。一例として図6では、コンテンツデータの内容(本、音楽、ゲームなど)に従ってアプリケーションを分類し、異なるスロットを割り当てている。
一方、異なるアプリケーションであっても、何等かの理由により同一のスロットを割り当てることも可能である。例えば図6において、アプリケーションAはSD(Standard Definition)の非プレミアム映画データであり、アプリケーションBはHD(High Definition)のプレミアム映画データである場合、同一のスロットOを割り当てることが可能である。アプリケーションA,Bはいずれも映画のコンテンツデータに関するものであるという共通点があるので、同一のスロットを割り当てて、同一の認証機能を共用することができる。
ただし、必要とされる認証機能が異なる場合がある。例えばSD映画コンテンツとHD映画コンテンツでは、HD映画コンテンツの方が必要とされるセキュリティーレベルが高く、必要とされる機能も多い場合がある。このような場合には、HD映画コンテンツとSD映画コンテンツとに異なるスロットを割り当てることは可能である。同様に、アプリケーションC乃至Eでは、各々電子書籍、音楽、ゲームなどを割り当てることができる。
その他、データ保護の態様や用途に基づいて、アプリケーションの割り当て方を決定してもよい。例えば、企業内の秘匿情報の保護を目的としたアプリケーションと、個人情報の保護などを目的としたアプリケーションとがある場合に、両者に別々のスロットを割り当てることができる。
また、同一カテゴリーに属する複数のアプリケーションを、データの利用態様に従って分類し、それぞれ異なるスロットを割り当てることも可能である。例えば、医療関係のデータ保護に関する複数のアプリケーションがある場合、これらを利用場所(サイト)の違い(例えば各病院、各医療現場など)で分類し、異なるスロットを割り当てることができる。管理が必要となるものなどはProprietary applicationとして分類し、各々異なるスロットを割り当てることができる。
また、複数のアプリケーションが同一のスロットを共有するが、認証に要するデータや機能が異なるような運用をしてもよい。スロットは認証に要するデータ及び機能を含むと説明したが、これはすなわち、市場において様々なホストアプリケーション800、さまざまなセキュアフラッシュメモリ100が存在した場合でも混乱なく運用できることを意味しており、逆に、各病院や各医療現場などごく限られた範囲内で運用をするなど、さまざまなホストアプリケーション800、さまざまなセキュアフラッシュメモリ100をそもそも想定する必要がない場合も考えられる。この場合は、医療関係という分類でスロットを割り当て、ただし同一スロット番号であっても、認証に要するデータ及び機能に複数のバリエーションがあってもよい。これらは各サイトでの運用基準に照らし合わせて対応を定めればよい。
次に、図7を参照して、スロットの大分類方法と、ホストアプリケーション800及びメモリ100への鍵割り当て方法の例を説明する。図6の場合と同様に、スロットは各アプリケーションと対応付けて割り当てられている。
ここで、割り当ては各々のホストアプリケーション800及びセキュアフラッシュメモリ100の製造者及び製造者間での独自の取り決めによって行うことも可能である。一方で、製造者やサービス事業者などのステークホルダーで構成される団体(例えば標準化団体)によって取り決めを行うこともできる。しかし、全てのスロットを標準化団体によって用途を定めてしまうと、ある製造者のみが利用したいアプリケーションなどにおいては、取り決めの自由度が損なわれてしまう。図7では、ある範囲のスロットの番号(図7では、スロット番号0乃至スロット番号M)を標準化団体によって定められたアプリケーションの標準用途領域とし、ある範囲のスロットの番号(図7では、スロット番号M+1乃至スロット番号M+N)を各ステークホルダーによって任意に定められる非標準用途領域としている。これにより、共通アプリケーションにおける広範囲での互換性確保と、個別アプリケーションにおける自由度確保を両立させることができる。各々のスロットに対しては、前述の認証に要するデータ及び機能が付されている。ここで、認証に要するデータのうち、標準化団体や各製造者などによって付与・適用されるものをキーセット(Key Set)と呼ぶ。ホストアプリケーション800に付与・適用されるキーセットはホストキーセット(Host Key Set)と呼び、メモリ100に付与・適用されるキーセットはメモリキーセット(Memory Key Set)と呼ぶ。各スロットには異なる、もしくは一部スロット間では共用されるキーセットが付与・適用される。
次に、図8を参照して各キーセットの整合をとり、互換性を確保した上で配布する方法を示す。本例では、各キーセットは鍵発行/管理センタ3000によって各々の製造者に配布され、各装置へと適用される。ホストデバイスは、複数の製造者(A,B)によって製造され、各々必要とする認証機能範囲は異なっていてもよい。
ホストデバイスにおいては、メモリデバイス(セキュアフラッシュメモリ)側で最低保証スロットを定義していること、またホストデバイスは通常、各々の用途別に製造されるという属性があることから、いずれのスロット番号をサポートするかは各製造者に委ねられる。ここで、最低保証スロットもしくは標準用途領域のスロット番号範囲に対応するホストデバイスを製造する場合、ホストデバイスは全てのメモリデバイスを認証するに足るホストキーセットが付与・適用される(図8では、製造者Aが製造するホストデバイス)。
一方で、それ以外の範囲においては、ホストデバイス製造者とメモリ製造業者間の取り決めによって、限られた範囲での互換性確保で十分なアプリケーションの場合、ホストデバイスは全てのメモリデバイスを認証するに足るホストキーセットではなく、特定のメモリデバイスを認証するに足るホストキーセットが付与・適用される(図8では、製造者Bが製造するホストデバイス)。具体的には、前述の実施形態における秘密情報HKeyi,j(i=1,…,m。なお、jは当該HKeyi,jにおいては固定の値である)のうち、iが各メモリデバイスが有するNKeyiに対応している。すなわち、ホストアプリケーションがHKeyi,j(i=1)のみを有する場合、当該ホストアプリケーションはNKeyi(i=1)を有するメモリデバイスを認証する機能のみを有するということになる。またあるいは、ホストアプリケーションがHKeyi,j(i=3)のみを有する場合、当該ホストアプリケーションはNKeyi(i=3)を有するメモリデバイスを認証する機能のみを有するということになる。つまり、ホストアプリケーションが特定のメモリデバイスと認証する場合、対象のメモリデバイスのiに対応する秘密情報HKeyi,jが付与・適用される。
次に、図9及び図10を用いて、第1実施形態のホストデバイス10の構成及び動作について説明する。第1実施形態では、ホストデバイス10内でホストアプリケーション800によりセキュアフラッシュメモリ100の認証処理を行う例を述べる。
図9は、前記ホストデバイス10の構成を示すブロック図である。
図示するように、ホストデバイス10は、セキュアフラッシュメモリ100及びホストアプリケーション800−1,800−2を備える。セキュアフラッシュメモリ1001は、予め記憶された識別情報IDを記憶している。前記識別情報IDは秘密情報NKeyと秘密識別情報SecretIDを含む。
図10は、前記ホストデバイス10における、認証処理を含むホストアプリケーション800−1の処理を示すフローチャートである。ここで実行される認証処理は図3及び図4に示した処理と同様である。
まず、ホストアプリケーション800−1を実行するCPU300は、セキュアフラッシュメモリ100から識別情報IDを読み出す(ステップS111)。続いて、CPU300は、識別情報IDが正当なものか否かを判定する(ステップS112)。識別情報IDが正当なものである場合、CPU300はホストアプリケーション800−1の処理を続行する(ステップS113)。一方、識別情報IDが正当なものでない場合、CPU300はホストアプリケーション800−1の処理を停止する(ステップS114)。その後、ホストアプリケーション800−1の処理を終了する。ホストアプリケーション800−2の処理についてもホストアプリケーション800−1と同様である。
前記第1実施形態によれば、正当な識別情報IDを有するセキュアフラッシュメモリ100を搭載していないホストデバイスの場合、ホストアプリケーションを動作させることができないため、セキュアフラッシュメモリ100に記憶された秘密情報の不正利用を防止することができる。例えば、セキュアフラッシュメモリ100から別のNANDフラッシュメモリ等に交換した場合は、ホストデバイス(ホストアプリケーション)を動作させることができない。すなわち、正当な識別情報IDを有するセキュアフラッシュメモリ100を搭載しないホストデバイスでは動作しない環境を提供することが可能である。
[第2実施形態]
第2実施形態のホストデバイスの構成及び動作について説明する。第2実施形態ではホストデバイスの外部のサーバでセキュアフラッシュメモリ100の認証処理を行ってデータの書き込みを行い、ホストデバイス内で認証処理を行ってデータを読み出す例を述べる。
図11は、前記ホストデバイスの構成を示すブロック図である。
図示するように、ホストデバイス110は、セキュアフラッシュメモリ100、ホストアプリケーション810−1、ホストアプリケーション810−2、中継アプリケーション610−1、及び中継アプリケーション610−2を備える。ホストデバイス110には、サーバ700−1,700−2が接続されている。中継アプリケーション610−1は、サーバ700−1とセキュアフラッシュメモリ100との間の信号の授受を中継する。さらに、中継アプリケーション610−2は、サーバ700−2とセキュアフラッシュメモリ100との間の信号の授受を中継する。
前記第2実施形態のホストデバイス110の動作は以下のようになる。
まず、サーバ700−1が前記セキュアフラッシュメモリ100の認証処理を行い、前記メモリ100にデータを記憶させる動作を述べる。
サーバ700−1は、ホストデバイス110内にあるセキュアフラッシュメモリ100との間で、セキュアフラッシュメモリ100の認証処理を行う。その際、認証処理は、ホストデバイス110内の中継アプリケーション610−1を介して行われる。認証処理に成功すると、サーバ700−1は、セキュアフラッシュメモリ100へダウンロードさせるデータをバインド処理する。バインド処理されたデータは、暗号データとしてホストデバイス110にそのままダウンロードされ、セキュアフラッシュメモリ100に記憶される。データの前記バインド処理については後述する。
以下に、図12を用いて、前述したサーバ700−1による認証処理とバインド処理について詳述する。図12は、前記サーバ700−1による認証処理とバインド処理を示すフローチャートである。ここで実行される認証処理は、図3及び図4においてCPUをサーバに置き換えれば、図3及び図4に示した処理と同様である。
サーバ700−1は、セキュアフラッシュメモリ100から識別情報IDを読み出す(ステップS211)。続いて、サーバ700−1は、識別情報IDが正当なものか否かを判定する(ステップS212)。識別情報IDが正当なものである場合、サーバ700−1はデータをバインドする処理を実行する(ステップS213)。そして、バインド処理された暗号データは、中継アプリケーション610−1を介してセキュアフラッシュメモリ100に書き込まれる(ステップS214)。
一方、識別情報IDが正当なものでない場合、サーバ700−1は認証処理を終了する(ステップS215)。サーバ700−2の動作についてもサーバ700−1と同様である。
図13を用いて、前記サーバ700−1が実行する、データの前記バインド処理について述べる。図13は、前記バインド処理の具体例を示す図である。
サーバ700−1は、認証処理(S31)を終了した後、取得した識別情報IDに対して派生処理(S32)を行い、バインド鍵を生成する。そして、バインド鍵を用いてデータを暗号化(S33)して暗号データを生成する。前記派生処理(S32)では、固定鍵を用いて識別情報IDを一方向性関数により変換し、バインド鍵を生成する。
次に、ホストアプリケーション810−1を実行するCPU300が前記セキュアフラッシュメモリ100の認証処理を行い、前記メモリ100からデータを読み出す動作を述べる。
ホストアプリケーション810−1を実行するCPU300は、ホストデバイス110内にあるセキュアフラッシュメモリ100との間で、セキュアフラッシュメモリ100の認証処理を行う。認証処理に成功すると、CPU300は、セキュアフラッシュメモリ100から暗号データを読み出し、暗号データに対してバインドを解く処理を行う。暗号データは、バインドを解く処理により復号され、利用される。前記暗号データのバインドを解く処理については後述する。
以下に、図14を用いて、前述したCPU300による認証処理とバインドを解く処理について詳述する。図14は、前記CPU300による認証処理とバインドを解く処理を示すフローチャートである。ここで実行される認証処理は、図3及び図4においてホストアプリケーション800をホストアプリケーション810に置き換えれば、図3及び図4に示した処理と同様である。
ホストアプリケーション810−1を実行するCPU300は、セキュアフラッシュメモリ100から識別情報IDを読み出す(ステップS311)。続いて、CPU300は、識別情報IDが正当なものか否かを判定する(ステップS312)。識別情報IDが正当なものである場合、CPU300はセキュアフラッシュメモリ100から暗号データを読み出し、暗号データのバインドを解く処理を実行する(ステップS313)。そして、バインドを解く処理により復号化されたデータは、CPU300により利用される(ステップS314)。
一方、識別情報IDが正当なものでない場合、CPU300は認証処理を終了する(ステップS315)。なお、サーバ700−2にて読み出す場合は、中継アプリケーション610−2を介して行い、その他の動作についてはCPU300の場合と同様である。
図15を用いて、前記CPU300が行う前記バインドを解く処理について述べる。図15は、前記バインドを解く処理の具体例を示す図である。
CPU300は、認証処理(S31)を終了した後、取得した識別情報IDに対して派生処理(S32)を行い、バインド鍵を生成する。そして、バインド鍵を用いて暗号データを復号化(S34)して暗号化前のデータに戻す。前記派生処理(S32)では、固定鍵を用いて識別情報IDを一方向性関数により変換し、バインド鍵を生成する。
第2実施形態によれば、正当な識別情報IDを有するセキュアフラッシュメモリ100を搭載していないホストデバイスの場合、サーバからホストデバイスへデータをダウンロードすることができないため、不正なホストデバイスへのデータのダウンロードを防止することができる。また、正当な識別情報IDを有するセキュアフラッシュメモリ100を搭載していないホストデバイスの場合、ホストデバイス内のCPUがセキュアフラッシュメモリ100に記憶されたデータを利用することができないため、セキュアフラッシュメモリ100に記憶されたデータの不正利用を防止することができる。例えば、セキュアフラッシュメモリ100から別のNANDフラッシュメモリ等に交換した場合は、ホストデバイスへデータをダウンロードしたり、前記NANDフラッシュメモリに記憶されたデータを利用したりすることができない。すなわち、正当な識別情報IDを有するセキュアフラッシュメモリ100を搭載しないホストデバイスでは動作しない環境を提供することが可能である。
[第3実施形態]
第3実施形態のホストデバイスの構成及び動作について説明する。第3実施形態では、ホストデバイスの外部のサーバでセキュアフラッシュメモリ100の認証処理を行ってデータの書き込みを行い、ホストデバイス内で認証処理を行ってデータを読み出す、前記第2実施形態と異なる例を述べる。
図16は、前記ホストデバイスの構成を示すブロック図である。
図示するように、ホストデバイス110は、セキュアフラッシュメモリ100、ホストアプリケーション810−1、ホストアプリケーション810−2、中継アプリケーション610−1、及び中継アプリケーション610−2を備える。ホストデバイス110には、サーバ700−1,700−2が接続されている。中継アプリケーション610−1は、サーバ700−1とセキュアフラッシュメモリ100との間の信号の授受を中継する。さらに、中継アプリケーション610−2は、サーバ700−2とセキュアフラッシュメモリ100との間の信号の授受を中継する。
前記第3実施形態のホストデバイス120の動作は以下のようになる。
まず、サーバ700−1が前記セキュアフラッシュメモリ100の認証処理を行い、前記メモリ100にデータを記憶させる動作を述べる。
サーバ700−1は、ホストデバイス120内にあるセキュアフラッシュメモリ100との間で、セキュアフラッシュメモリ100の認証処理を行う。その際、認証処理は、ホストデバイス120内の中継アプリケーション610−1を介して行われる。認証処理に成功すると、サーバ700−1は、セキュアフラッシュメモリ100へダウンロードさせるデータをバインド処理し、バインドデータを作成する。バインドデータとバインド処理する前のデータは、ホストデバイス120にダウンロードされ、セキュアフラッシュメモリ100に記憶される。バインドデータを作成する前記バインド処理については後述する。
以下に、図17を用いて、前述したサーバ700−1による認証処理とバインド処理について詳述する。図17は、前記サーバ700−1による認証処理とバインド処理を示すフローチャートである。ここで実行される認証処理は、図3及び図4においてCPUをサーバに置き換えれば、図3及び図4に示した処理と同様である。
サーバ700−1は、セキュアフラッシュメモリ100から識別情報IDを読み出す(ステップS411)。続いて、サーバ700−1は、識別情報IDが正当なものか否かを判定する(ステップS412)。識別情報IDが正当なものである場合、サーバ700−1はデータをバインドする処理を実行し、バインドデータを作成する(ステップS413)。そして、バインドデータとバインド処理する前のデータは、中継アプリケーション610−1を介してセキュアフラッシュメモリ100に書き込まれる(ステップS414)。
一方、識別情報IDが正当なものでない場合、サーバ700−1は認証処理を終了する(ステップS415)。サーバ700−2の動作についてもサーバ700−1と同様である。
図18(a)を用いて、前記サーバ700−1が実行する、データの前記バインド処理について述べる。図18(a)は、前記バインド処理の具体例を示す図である。
サーバ700−1は、認証処理(S41)を終了した後、取得した識別情報IDを基にデータからバインドデータを生成する。ここでは、例えば、識別情報IDとデータを用いて、メッセージ認証コード(Message Authentication Code:MAC)を作成する(S42)。そして、データにMACを付加してMACデータを生成する。
次に、ホストアプリケーション810−1を実行するCPU300が前記セキュアフラッシュメモリ100の認証処理を行い、前記メモリ100からデータを読み出す動作を述べる。
ホストアプリケーション810−1を実行するCPU300は、ホストデバイス120内にあるセキュアフラッシュメモリ100との間で、セキュアフラッシュメモリ100の認証処理を行う。認証処理に成功すると、CPU300は、セキュアフラッシュメモリ100からデータを読み出し、読み出したデータをバインド処理し、バインドデータを作成する。また、CPU300は、セキュアフラッシュメモリ100からバインドデータを読み出す。CPU300は、読み出したバインドデータと作成した前記バインドデータとを比較照合し、2つのバインドデータが同じであれば、読み出したデータを利用する。
以下に、図19を用いて、前述したCPU300による認証処理とバインドを解く処理(バインド処理及び照合処理)について詳述する。図19は、前記CPU300による認証処理とバインドを解く処理(バインド処理及び照合処理)を示すフローチャートである。ここで実行される認証処理は、図3及び図4においてホストアプリケーション800をホストアプリケーション810に置き換えれば、図3及び図4に示した処理と同様である。
ホストアプリケーション810−1を実行するCPU300は、セキュアフラッシュメモリ100から識別情報IDを読み出す(ステップS511)。続いて、CPU300は、識別情報IDが正当なものか否かを判定する(ステップS512)。
識別情報IDが正当なものである場合、CPU300は、セキュアフラッシュメモリ100からデータを読み出し、読み出したデータをバインド処理し、バインドデータを作成する(ステップS513)。また、CPU300は、セキュアフラッシュメモリ100からバインドデータを読み出す(ステップS514)。そして、CPU300は、読み出したバインドデータと作成した前記バインドデータとを比較照合し、2つのバインドデータが一致するか否かを判定する(ステップS515)。2つのバインドデータが一致する場合、CPU300は、セキュアフラッシュメモリ100から読み出したデータを利用する(ステップS516)。
一方、前記ステップS512において識別情報IDが正当なものでない場合、CPU300は認証処理を終了する(ステップS517)。また、ステップS515において2つのバインドデータが一致しない場合、バインドを解く処理を終了する(ステップS518)。なお、サーバ700−2にて読み出す場合は、中継アプリケーション610−2を介して行い、その他の動作についてはCPU300の場合と同様である。
図18(b)を用いて、前記CPU300が行う前記バインドを解く処理(バインド処理及び照合処理)について述べる。図18(b)は、前記バインドを解く処理の具体例を示す図である。
CPU300は、認証処理(S41)を終了した後、取得した識別情報IDを基に、セキュアフラッシュメモリ100から読み出したデータからバインドデータを生成する。ここでは、例えば、識別情報IDとセキュアフラッシュメモリ100から読み出したデータとを用いて、メッセージ認証コード(MAC)を作成する(S42)。そして、データにMACを付加してMACデータを生成する。その後、前述したように、生成したMACデータとセキュアフラッシュメモリ100から読み出したMACデータとを照合する(S43)。
第3実施形態によれば、正当な識別情報IDを有するセキュアフラッシュメモリ100を搭載していないホストデバイスの場合、サーバからホストデバイスへデータをダウンロードすることができないため、不正なホストデバイスへのデータのダウンロードを防止することができる。また、正当な識別情報IDを有するセキュアフラッシュメモリ100を搭載していないホストデバイスの場合、ホストデバイス内のCPUがセキュアフラッシュメモリ100に記憶されたデータを利用することができないため、セキュアフラッシュメモリ100に記憶されたデータの不正利用を防止することができる。例えば、セキュアフラッシュメモリ100から別のNANDフラッシュメモリ等に交換した場合は、ホストデバイスへデータをダウンロードしたり、前記NANDフラッシュメモリに記憶されたデータを利用したりすることができない。すなわち、正当な識別情報IDを有するセキュアフラッシュメモリ100を搭載しないホストデバイスでは動作しない環境を提供することが可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…ホストデバイス、100…セキュアフラッシュメモリ、200…コントローラ、300…CPU(central processing unit)、400…ROM(Read only Memory)、500…RAM(Random Access Memory)、600…ネットワークアクセスユニット、800…ホストアプリケーション。

Claims (7)

  1. 識別情報を記憶した不揮発性半導体メモリと、
    前記不揮発性半導体メモリが有する前記識別情報の正当性を認証する認証処理を実行するアプリケーションを制御するプロセッサと、
    を備え、
    前記プロセッサは、前記アプリケーションを実行することによって、
    前記不揮発性半導体メモリから前記識別情報を読み出し、前記識別情報が正当なものか否かを判定する前記認証処理を行い、
    前記プロセッサは、前記識別情報が正当なものである場合、前記アプリケーションの少なくとも一部の処理を続行し、前記識別情報が正当なものでない場合、前記アプリケーションの少なくとも一部の処理を終了することを特徴とする情報処理装置。
  2. 識別情報を記憶した不揮発性半導体メモリと、
    前記不揮発性半導体メモリが有する前記識別情報の正当性を認証する認証処理を実行するアプリケーションを制御するプロセッサと、
    を備え、
    前記プロセッサは、前記アプリケーションを実行することによって、
    前記不揮発性半導体メモリから前記識別情報を読み出し、前記識別情報が正当なものであるか否かを判定する前記認証処理を行い、
    前記プロセッサは、前記識別情報が正当なものである場合、前記識別情報から派生するバインド鍵を生成し、前記バインド鍵を用いてデータを暗号化し、暗号化されたデータを前記不揮発性半導体メモリに記憶し、
    前記プロセッサは、前記識別情報が正当なものでない場合、前記認証処理を終了することを特徴とすることを特徴とする情報処理装置。
  3. 前記プロセッサは、前記アプリケーションを実行することによって、
    前記不揮発性半導体メモリから前記識別情報を読み出し、前記識別情報が正当なものであるか否かを判定する前記認証処理を行い、
    前記プロセッサは、前記識別情報が正当なものである場合、前記識別情報から派生するバインド鍵を生成し、前記バインド鍵を用いて、前記不揮発性半導体メモリから読み出した前記暗号化されたデータを復号し、
    前記プロセッサは、前記識別情報が正当なものでない場合、前記認証処理を終了することを特徴とすることを特徴とする請求項2に記載の情報処理装置。
  4. 識別情報を記憶した不揮発性半導体メモリと、
    前記不揮発性半導体メモリが有する前記識別情報の正当性を認証する認証処理を実行するアプリケーションを制御するプロセッサと、
    を備え、
    前記プロセッサは、前記アプリケーションを実行することによって、
    前記不揮発性半導体メモリから前記識別情報を読み出し、前記識別情報が正当なものであるか否かを判定する前記認証処理を行い、
    前記プロセッサは、前記識別情報が正当なものである場合、前記識別情報に基づいて第1データから第1バインドデータを生成し、前記第1データと前記第1バインドデータを前記不揮発性半導体メモリに記憶し、
    前記プロセッサは、前記識別情報が正当なものでない場合、前記認証処理を終了することを特徴とすることを特徴とする情報処理装置。
  5. 前記プロセッサは、前記アプリケーションを実行することによって、
    前記不揮発性半導体メモリから前記識別情報を読み出し、前記識別情報が正当なものであるか否かを判定する前記認証処理を行い、
    前記プロセッサは、前記識別情報が正当なものである場合、前記不揮発性半導体メモリから前記第1データを読み出し、前記識別情報に基づいて前記第1データから第2バインドデータを生成し、前記第1バインドデータと前記第2バインドデータとを比較照合し、前記第1,第2バインドデータが一致した場合、前記第1データを利用し、
    前記プロセッサは、前記識別情報が正当なものでない場合、前記認証処理を終了することを特徴とする請求項4に記載の情報処理装置。
  6. 前記不揮発性半導体メモリは、第1の公開パラメータ、第1の秘密パラメータ、及び認証データを生成する認証データ生成部を有し、
    前記アプリケーションは、第2の公開パラメータ、第2の秘密パラメータ、乱数を生成する乱数生成部、及び認証データ照合部を有し、
    前記認証処理では、
    前記認証データ生成部は、前記第2の公開パラメータ、前記第1の秘密パラメータ、前記乱数から第1の認証データを生成し、
    前記認証データ照合部は、前記第1の公開パラメータ、前記第2の秘密パラメータ、前記乱数から第2の認証データを生成し、前記第2の認証データと前記第1の認証データとを照合し、前記第1,第2の認証データが一致するか否かを判定することを特徴とする請求項1乃至5のいずれかに記載の情報処理装置。
  7. 前記不揮発性半導体メモリはNANDフラッシュメモリを含むことを特徴とする請求項1乃至6のいずれかに記載の情報処理装置。
JP2013202524A 2013-09-27 2013-09-27 情報処理装置、ホストデバイス、及びシステム Expired - Fee Related JP6017392B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013202524A JP6017392B2 (ja) 2013-09-27 2013-09-27 情報処理装置、ホストデバイス、及びシステム
US14/188,976 US9449193B2 (en) 2013-09-27 2014-02-25 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013202524A JP6017392B2 (ja) 2013-09-27 2013-09-27 情報処理装置、ホストデバイス、及びシステム

Publications (2)

Publication Number Publication Date
JP2015069371A true JP2015069371A (ja) 2015-04-13
JP6017392B2 JP6017392B2 (ja) 2016-11-02

Family

ID=52741577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013202524A Expired - Fee Related JP6017392B2 (ja) 2013-09-27 2013-09-27 情報処理装置、ホストデバイス、及びシステム

Country Status (2)

Country Link
US (1) US9449193B2 (ja)
JP (1) JP6017392B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929566B2 (en) 2016-06-02 2021-02-23 Panasonic Intellectual Property Management Co., Ltd. Information processing device and information processing system
JP7221462B1 (ja) * 2022-05-26 2023-02-13 三菱電機株式会社 プログラマブルロジックコントローラ、制御方法及びプログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9418212B2 (en) * 2008-10-08 2016-08-16 Nokia Technologies Oy Memory access control
US10521617B2 (en) * 2017-08-14 2019-12-31 Western Digital Technologies, Inc. Non-volatile memory device with secure read
CN111915306B (zh) * 2019-05-08 2023-12-19 华控清交信息科技(北京)有限公司 业务数据的验证方法和验证平台
US11139043B2 (en) * 2019-05-20 2021-10-05 Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville Systems and methods for identifying counterfeit memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001014441A (ja) * 1999-04-27 2001-01-19 Matsushita Electric Ind Co Ltd 半導体メモリカード及び読み出し装置
JP2003256063A (ja) * 2002-02-26 2003-09-10 Sysmex Corp プログラム管理方法
JP2006228256A (ja) * 2006-05-15 2006-08-31 Toshiba Corp データ記録装置およびデータ読出装置
JP2012010403A (ja) * 2011-09-21 2012-01-12 Toshiba Corp 記録再生システム、記録装置及び再生装置
JP2013117946A (ja) * 2012-10-04 2013-06-13 Toshiba Corp メモリカード、ホスト装置、及びシステム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120300A (ja) * 1997-10-09 1999-04-30 Fujitsu Ltd 可搬型カード媒体,可搬型カード媒体のメモリ空間管理方法,可搬型カード媒体の発行方法および可搬型カード媒体のプログラムデータ書込方法並びにメモリ空間管理プログラムが記録されたコンピュータ読取可能な記録媒体
US6611907B1 (en) * 1999-10-21 2003-08-26 Matsushita Electric Industrial Co., Ltd. Semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card
US6901385B2 (en) 2000-02-17 2005-05-31 Matsushita Electric Industrial Co., Ltd. Semiconductor memory card that records contents for trial and purchase, recording apparatus, reproducing apparatus, and sales method
US7178027B2 (en) * 2001-03-30 2007-02-13 Capital One-Financial Corp. System and method for securely copying a cryptographic key
JP2007004522A (ja) * 2005-06-24 2007-01-11 Renesas Technology Corp 記憶装置
US8650399B2 (en) * 2008-02-29 2014-02-11 Spansion Llc Memory device and chip set processor pairing
US9910996B2 (en) * 2010-06-16 2018-03-06 Vasco Data Security, Inc. Mass storage device memory encryption methods, systems, and apparatus
JP5520752B2 (ja) 2010-09-01 2014-06-11 株式会社日立製作所 粘着シート,粘着シートを用いた光学部材,有機発光素子および照明装置並びにそれらの製造方法
JP2012203490A (ja) 2011-03-24 2012-10-22 Mitene Internet Co Ltd 情報処理装置およびデジタルフォトフレーム
JP2012227901A (ja) 2011-04-22 2012-11-15 Toshiba Corp 認証コンポーネント、被認証コンポーネントおよびその認証方法
JP2012249035A (ja) * 2011-05-27 2012-12-13 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001014441A (ja) * 1999-04-27 2001-01-19 Matsushita Electric Ind Co Ltd 半導体メモリカード及び読み出し装置
JP2003256063A (ja) * 2002-02-26 2003-09-10 Sysmex Corp プログラム管理方法
JP2006228256A (ja) * 2006-05-15 2006-08-31 Toshiba Corp データ記録装置およびデータ読出装置
JP2012010403A (ja) * 2011-09-21 2012-01-12 Toshiba Corp 記録再生システム、記録装置及び再生装置
JP2013117946A (ja) * 2012-10-04 2013-06-13 Toshiba Corp メモリカード、ホスト装置、及びシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929566B2 (en) 2016-06-02 2021-02-23 Panasonic Intellectual Property Management Co., Ltd. Information processing device and information processing system
JP7221462B1 (ja) * 2022-05-26 2023-02-13 三菱電機株式会社 プログラマブルロジックコントローラ、制御方法及びプログラム
WO2023228373A1 (ja) * 2022-05-26 2023-11-30 三菱電機株式会社 プログラマブルロジックコントローラ、制御方法及びプログラム

Also Published As

Publication number Publication date
US9449193B2 (en) 2016-09-20
US20150096058A1 (en) 2015-04-02
JP6017392B2 (ja) 2016-11-02

Similar Documents

Publication Publication Date Title
CN111884806B (zh) 用于认证用户或确保交互安全的系统和硬件认证令牌
JP6017392B2 (ja) 情報処理装置、ホストデバイス、及びシステム
JP4624732B2 (ja) アクセス方法
US9100187B2 (en) Authenticator
AU2005223193B2 (en) Digital rights management structure, portable storage device, and contents management method using the portable storage device
US8261073B2 (en) Digital rights management method and apparatus
US9721071B2 (en) Binding of cryptographic content using unique device characteristics with server heuristics
US20110016317A1 (en) Key storage device, biometric authentication device, biometric authentication system, key management method, biometric authentication method, and program
US9124432B2 (en) Host device and authentication method for host device
CN102843232B (zh) 生成安全装置密钥
US20150074406A1 (en) Memory device and memory system
US20140006738A1 (en) Method of authenticating a memory device by a host device
AU2005225950B2 (en) Portable storage device and method of managing files in the portable storage device
US20150341345A1 (en) Security system
JP6357091B2 (ja) 情報処理装置、及びコンピュータプログラム
US10902093B2 (en) Digital rights management for anonymous digital content sharing
JP2008287488A (ja) データ分散保存装置
US8874917B2 (en) Storage system in which fictitious information is prevented
JP3963938B2 (ja) アクセス方法、メモリデバイス、および情報機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160303

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160928

R151 Written notification of patent or utility model registration

Ref document number: 6017392

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees