(57)【特許請求の範囲】
【請求項１】
データの移動元となる移動元デバイスとデータの移動先となる移動先デバイスとの間におけるデータ移動方法であって，
前記移動元デバイスおよび前記移動先デバイスがともにデータ転送が可能であるときに，前記移動元デバイスから前記移動先デバイスにデータ転送処理を行う工程と，
前記データ転送処理が完了した旨のデータ転送完了通知を前記移動元デバイスから前記移動先デバイスに通知する工程と，
前記データ転送完了通知を確認した旨のデータ転送完了確認通知を前記移動先デバイスから前記移動元デバイスに通知する工程と，
前記移動先デバイスが転送されたデータをアクセスできない状態で保持する工程と，
前記データ転送完了確認通知が通知された前記移動元デバイスが，データの再転送を不可能とする工程と，
前記移動元デバイスがデータの再転送が不可能である旨のデータ再転送不可通知を，前記移動先デバイスに通知する工程と，
前記移動先デバイスが，データ移動後状態に遷移して，転送されたデータを実行可能とする工程と，
を含み，
前記データ転送完了通知は，前記移動元デバイスにより動的に生成される第１の値を含み，
前記データ転送完了確認通知は，前記移動先デバイスにより動的に生成され前記第１の値を用いて暗号化された第２の値を含み，
前記データ再転送不可通知は，前記移動元デバイスにより生成され前記第２の値を用いて暗号化されたデータを含み，
前記データ転送完了確認通知が通知された前記移動元デバイスは，前記データの再転送を不可能とする工程の前に，前記データ転送完了確認通知に含まれるデータを前記第１の値を用いて復号化することにより前記移動先デバイスの正当性を検証し，
前記データ再転送不可通知が通知された前記移動先デバイスは，前記転送されたデータを実行可能とする工程の前に，前記データ再転送不可通知に含まれるデータを前記第２の値を用いて復号化することにより前記移動元デバイスの正当性を検証する，
ことを特徴とする，データ移動方法。
【請求項２】
前記移動先デバイスは，前記移動元デバイスからのデータ再転送不可通知の受け付け及びデータ再転送不可通知の正当性の検証の試行回数を所定回数に制限することを特徴とする，請求項１に記載のデータ移動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ移動方法にかかり，特に，セキュアにデータが保存されたセキュリティデバイス間におけるデータ移動方法に関する。
【背景技術】
【０００２】
セキュアにデータが保存されたセキュリティデバイス間でデータの移動を行う際は，不正な複製を防ぐために，むやみに再実行ができないような制限が必要である（例えば，特許文献１参照。）。しかし，このような制限を課した場合，データの移動先デバイスへのメモリアクセス時の障害や電力断が発生することにより，データを損失してしまう可能性があった。
【０００３】
また，データの複製を防ぐため，データ転送の成功後に，移動元デバイスを再実行不可能な状態に切り替え，移動先デバイスを転送されたデータが有効な状態に切り替えることが考えられる。この時，データ移動元・移動先の双方で，切り替えるためのコマンドを実行することになるが，特許文献１に開示された従来技術では，このコマンドの発行者を特定することができず，また，コマンド実行時に相手の状態を確認することができなかった。このため，移動元デバイスの状態を切り替えずに，移動先デバイスへの切り替えコマンドが実行された場合には，結果としてデータの複製が可能となってしまう危険性があった。
【０００４】
上記観点から，セキュリティデバイス間でデータの移動を行う際は，不正な複製を防ぐために，データの移動処理をむやみに再実行できないような仕組みが必要である。しかし，一方では，メモリアクセス時の障害の発生を考慮し，データの損失を伴わずに移動先デバイスへの書き込み処理を再実行できる仕組みが要求されている。
【０００５】
【特許文献１】特開２００２−１４０６６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述のように，セキュリティデバイス間でデータ移動を行う場合において，再実行ができないような制限を課した場合に，データの移動先デバイスへのメモリアクセス時の障害や電力断が発生することにより，データを損失してしまう可能性があった。
【０００７】
また，データ転送の成功後に，移動元デバイスを再実行不可能な状態に切り替え，移動先デバイスを転送されたデータが有効な状態に切り替える。この時，データ移動元・移動先の双方で，切り替えコマンドの発行者を特定することができず，また，切り替えコマンド実行時に相手の状態を確認することができない。このため，移動元デバイスの状態を切り替えずに，移動先デバイスへの切り替えコマンドが実行された場合には，結果としてデータの複製が可能となってしまう危険性があった。
【０００８】
本発明は，従来のデータ移動方法が有する上記問題点に鑑みてなされたものであり，本発明の目的は，データ移動時に障害が発生した場合などにおけるデータ損失の可能性を極小化するとともに，不正に複製が生成されてしまう危険性をなくすことの可能な，新規かつ改良されたデータ移動方法を提供することである。
【課題を解決するための手段】
【０００９】
上記課題を解決するため，本発明の第１の観点によれば，データの移動元となる移動元デバイスとデータの移動先となる移動先デバイスとの間におけるデータ移動方法が提供される。本発明のデータ移動方法において，前記移動元デバイスおよび前記移動先デバイスは，データの転送が可能なデータ移動中状態，データの転送が完了しているがアクセスはできないデータ確定中状態，およびデータの転送が完了してアクセスが可能なデータ移動後状態の３状態が定義可能であり；前記移動元デバイスおよび前記移動先デバイスがともにデータ移動中状態であるときに，前記移動元デバイスから前記移動先デバイスにデータ転送処理を行う工程と，前記データ転送処理が完了した旨のデータ転送完了通知を前記移動元デバイスから前記移動先デバイスに通知する工程と，前記データ転送完了通知を確認した旨のデータ転送完了確認通知を前記移動先デバイスから前記移動元デバイスに通知する工程と，前記移動先デバイスがデータ確定中状態に遷移して，データ確定処理を行う工程と，を含むことを特徴とする。
【００１０】
本発明にかかるデータ移動方法では，セキュリティデバイス間のデータ移動において，データの転送処理とそのコミット処理（確定処理）を分離する。そして，移動元デバイスを再実行不可能な状態にした直後に，移動先デバイスへ転送されたデータを有効とする状態へ切り替える。これにより，データ損失の可能性を極小化することが可能である。
【００１１】
上記のデータ移動方法において，種々の応用が可能である。例えば，前記データ転送完了通知が通知された前記移動元デバイスが，データの再転送が不可能な状態に切り替わる工程と，前記移動元デバイスがデータの再転送が不可能である旨のデータ再転送不可通知を，前記移動先デバイスに通知する工程と，前記移動先デバイスが，前記移動元デバイスからのデータ再転送不可通知の正当性を検証した後，データ移動後状態に遷移して，転送されたデータを有効な状態に切り替える処理を行う工程と，を含むことが可能である。移動元デバイスへのコミットを行わないと移動先デバイスに対するコミットコマンドを生成できない制限を加える。これにより，移動元デバイスに対して再実行が可能なまま，データ移動先に対するコミットが行えなくなる。
【００１２】
また，前記移動先デバイスは，前記移動元デバイスからのデータ再転送不可通知の正当性を検証する試行回数を所定回数に制限することが可能である。データ転送後のコミット処理の試行回数を制限することで，全数アタックなどによる不正なコミットを制限することが可能である。
【００１３】
また，前記データ転送完了通知を移動元デバイスから移動先デバイスに通知する工程において，前記データ移動先デバイスの正当性を担保するための値として，前記移動元デバイスが動的に生成した乱数値を通知することが可能である。これにより，後に前記移動元デバイスに対するコミットコマンドが前記移動先デバイスによって，正しく発行されたものであることを確認することが可能である。
【００１４】
また，前記データ転送完了確認通知を前記移動先デバイスから前記移動元デバイスに通知する工程において，前記データ移動元デバイスの正当性を担保するための値として，前記移動先デバイスが動的に生成した乱数値を通知することが可能である。これにより，後に移動先デバイスに対するコミットコマンドが前記移動元デバイスによって，正しく発行されたものであることを確認することが可能である。
【００１５】
また，前記移動元デバイスがデータ再転送不可通知を前記移動先デバイスに通知するためのコマンドは，前記移動元デバイスによって生成されるようにしてもよい。これにより，データ移動元が再実行不可能な状態にあることを確認した上で，移動先デバイスへ転送されたデータを有効とする状態へ変更できる。
【００１６】
また，前記移動元デバイスから前記移動先デバイスに転送されるデータは，例えば，ファイル構造に関するデータである。本発明は，移動元デバイスのファイル構造をそっくりそのまま移動先デバイスに移動し，移動元デバイスを廃棄するような状況，例えば，ＩＣカードの更新や携帯電話の機種変更などに利用可能である。
【００１７】
上記課題を解決するため，本発明の第２の観点によれば，データの移動元となる移動元デバイスと，データの移動先となる移動先デバイスと，前記移動元デバイスおよび前記移動先デバイスのデータ移動を制御するコントローラと，の間におけるデータ移動方法が提供される。本発明のデータ移動方法において，前記移動元デバイスおよび前記移動先デバイスは，データの転送が可能なデータ移動中状態，データの転送が完了しているがアクセスはできないデータ確定中状態，およびデータの転送が完了してアクセスが可能なデータ移動後状態の３状態が定義可能であり；前記移動元デバイスおよび前記移動先デバイスがともにデータ移動中状態であるときに，前記移動元デバイスから前記コントローラを介して前記移動先デバイスにデータ転送処理を行う工程と，前記データ転送処理が完了した旨のデータ転送完了通知を前記移動元デバイスから前記コントローラを介して前記移動先デバイスに通知する工程と，前記データ転送完了通知を確認した旨のデータ転送完了確認通知を前記移動先デバイスから前記コントローラを介して前記移動元デバイスに通知する工程と，前記移動先デバイスがデータ確定中状態に遷移して，データ確定処理を行う工程と，
を含むことを特徴とする。
【００１８】
本発明にかかるデータ移動方法では，セキュリティデバイス間のデータ移動において，データの転送処理とそのコミット処理（確定処理）を分離する。そして，移動元デバイスを再実行不可能な状態にした直後に，移動先デバイスへ転送されたデータを有効とする状態へ切り替える。これにより，データ損失の可能性を極小化することが可能である。
【００１９】
上記データ移動方法において，種々の応用が可能である。例えば，前記データ転送処理を行う工程は，転送するデータのうち一部のデータを前記移動元デバイスから前記コントローラに転送する第１工程と，前記一部のデータを前記コントローラから前記移動先デバイスに転送する第２工程と，を含み，すべてのデータが転送されるまで，前記第１工程および第２工程を繰り返すようにしてもよい。
【００２０】
あるいは，前記データ転送処理を行う工程は，転送するすべてのデータを一括して前記移動元デバイスから前記コントローラに転送する工程と，前記すべてのデータを一括して前記コントローラから前記移動先デバイスに転送する工程と，を含むようにしてもよい。
【００２１】
また，前記データ転送完了通知が通知された前記移動元デバイスが，データの再転送が不可能な状態に切り替わる工程と，前記移動元デバイスがデータの再転送が不可能である旨のデータ再転送不可通知を，前記移動先デバイスに通知する工程と，前記移動先デバイスが，前記移動元デバイスからのデータ再転送不可通知の正当性を検証した後，データ移動後状態に遷移して，転送されたデータを有効な状態に切り替える処理を行う工程と，を含むことが可能である。移動元デバイスへのコミットを行わないと移動先デバイスに対するコミットコマンドを生成できない制限を加える。これにより，移動元デバイスに対して再実行が可能なまま，データ移動先に対するコミットが行えなくなる。
【００２２】
また，前記移動先デバイスは，前記移動元デバイスからのデータ再転送不可通知の正当性を検証する試行回数を所定回数に制限することが可能である。データ転送後のコミット処理の試行回数を制限することで，全数アタックなどによる不正なコミットを制限することが可能である。
【００２３】
また，前記データ転送完了通知を移動元デバイスから移動先デバイスに通知する工程において，前記移動先デバイスの正当性を担保するための値として，前記移動元デバイスが動的に生成した乱数値を通知することが可能である。これにより，後に前記移動元デバイスに対するコミットコマンドが前記移動先デバイスによって，正しく発行されたものであることを確認することが可能である。
【００２４】
また，前記データ転送完了確認通知を前記移動先デバイスから前記移動元デバイスに通知する工程において，前記移動元デバイスの正当性を担保するための値として，前記移動先デバイスが動的に生成した乱数値を通知することが可能である。これにより，後に前記移動先デバイスに対するコミットコマンドが前記移動元デバイスによって，正しく発行されたものであることを確認することが可能である。
【００２５】
また，前記移動元デバイスがデータ再転送不可通知を前記移動先デバイスに通知するためのコマンドは，前記移動元デバイスによって生成されるようにしてもよい。これにより，データ移動元が再実行不可能な状態にあることを確認した上で，移動先デバイスへ転送されたデータを有効とする状態へ変更できる。
【００２６】
また，前記移動元デバイスから前記移動先デバイスに転送されるデータは，例えば，ファイル構造に関するデータである。本発明は，移動元デバイスのファイル構造をそっくりそのまま移動先デバイスに移動し，移動元デバイスを廃棄するような状況，例えば，ＩＣカードの更新や携帯電話の機種変更などに利用可能である。
【００２７】
また，本発明の他の観点によれば，コンピュータ（携帯電話，ＩＣカード等を含む）に上記データ移動方法を実現させるためのプログラムと，そのプログラムを記録した，コンピュータにより読み取り可能な記録媒体が提供される。ここで，プログラムはいかなるプログラム言語により記述されていてもよい。また，記録媒体としては，例えば，ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ，フレキシブルディスクなど，プログラムを記録可能な記録媒体として現在一般に用いられている記録媒体，あるいは将来用いられるいかなる記録媒体をも採用することができる。
【発明の効果】
【００２８】
以上のように，本発明によれば，データ転送処理とコミット処理（確定処理）を分離することで，データの転送自体の成功を担保した上で，データの有効・無効の切り替えを行えるようになった。これにより，データ転送時に障害が発生した場合などにおけるデータ損失の可能性を極小化した。また，データ転送後のコミット処理では，データの移動元デバイスと移動先デバイスがお互いに相手にコミットコマンド（確定コマンド）の発行を依頼し，お互いが相手の正当性と状態を確認した上で確定する方式を用いることで，データの不正な複製を防ぐことが可能である。
【発明を実施するための最良の形態】
【００２９】
以下に添付図面を参照しながら，本発明にかかるデータ移動方法の好適な実施形態について詳細に説明する。なお，本明細書および図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００３０】
図１〜図８を参照しながら，２つのセキュリティデバイス間でデータ移動を行う際の処理手順を説明する。ここで，セキュリティデバイスとは，セキュアに保護されたデータを保持するデバイスをいい，例えば，ＩＣカードや携帯端末（携帯電話等）等を含む概念である。以下では，セキュリティデバイスのことを単にデバイスともいう。また，データの移動元となるセキュリティデバイスを「移動元デバイス」，データの移動先となるセキュリティデバイスを「移動先デバイス」と称する。
【００３１】
まず，本実施形態にかかるデータ移動方法の概略について，図１を参照しながら説明する。
【００３２】
本実施形態は，図１に示したように，データの移動元となる移動元デバイス１０とデータの移動先となる移動先デバイス２０との間におけるデータ移動方法である。本実施形態で扱うデータはファイル構造に関するデータである。本実施形態にかかるデータ移動方法は，移動元デバイスのファイル構造をそっくりそのまま移動先デバイスに転送し，移動元デバイスを廃棄するような状況を想定したものである。このような状況としては，例えば，ＩＣカードの更新や携帯電話の機種変更などがある。
【００３３】
移動元デバイス１０および移動先デバイス２０は，図１に示したように，データの転送が可能な「データ移動中状態」，データの転送が完了しているがアクセスはできない「データ確定中状態」，およびデータの転送が完了してアクセスが可能な「データ移動後状態」の３状態が定義可能である。
【００３４】
図１に示したように，移動元デバイス１０から移動先デバイス２０にデータの移動を行う際には，まず，お互いが正当な通信相手であることを確認するため，２つのデバイス間で相互認証を行う（ステップＳ１０）。次いで，移動元デバイス１０および移動先デバイス２０がともにデータ移動中状態であるときに，移動元デバイス１０から移動先デバイス２０にデータ転送処理を行う（ステップＳ２０）。そして，データ転送処理が完了した旨のデータ転送完了通知を移動元デバイス１０から移動先デバイス２０に通知する（ステップＳ３０）。
【００３５】
データ転送完了通知が通知された移動先デバイス２０は，データ転送完了通知を確認した旨のデータ転送完了確認通知を移動元デバイス１０に通知し，（ステップＳ４０），データ確定中状態に遷移して，データ確定処理を行う。一方，データ転送完了確認通知を通知された移動元デバイス１０は，データの再転送が不可能な状態に切り替わり，データの再転送が不可能である旨のデータ再転送不可通知を，移動先デバイスに通知する（ステップＳ５０）。移動先デバイス２０は，移動元デバイス１０からのデータ再転送不可通知の正当性を検証した後，データ移動後状態に遷移して，転送されたデータを有効な状態に切り替える処理を行う。
【００３６】
以上，本実施形態にかかるデータ移動方法の概略について説明した。以下に，ステップＳ１０〜Ｓ５０の各段階について詳細に説明する。なお，以下の説明においては，移動元デバイス１０および移動先デバイス２０のデータ移動を制御するコントローラ３０を介してデータ移動が行われる例について説明する。
【００３７】
＜相互認証段階（ステップＳ１０）＞
相互認証段階（ステップＳ１０）の詳細について，図２を参照しながら説明する。
まず，データの移動を行う際には，コントローラ３０がPollingコマンド等の送信によって２つのセキュリティデバイスの存在を把握する（ステップＳ１０２，Ｓ１０４）。次に，その存在する２つのセキュリティデバイスが，データ移動処理を行うべき対象であるかの認証を行うために，コントローラ３０を介して相互認証を行い，お互いが正当な通信相手であることを確認する（ステップＳ１０６）。
【００３８】
＜データ転送段階（ステップＳ２０）＞
データ転送段階（ステップＳ２０）の詳細について，図３を参照しながら説明する。
相互認証が成功すると，以後，移動元デバイス１０，移動先デバイス２０間で，例えば，相互認証で生成され共有される暗号鍵を用いて，秘匿に情報のやりとりが行える。ここでは，移動元デバイス１０と移動先デバイス２０のみが知り得る暗号鍵（この暗号鍵はＰＫＧ生成鍵（パッケージ生成鍵）とも言われる）が共有される（ステップＳ２０２）。また，以降は，移動元デバイス１０，移動先デバイス２０共にデータ移動中状態となる。
【００３９】
コントローラ３０は，移動元デバイス１０に対して，移動すべきデータを読み出す旨のコマンド（以下，File Data Uploadコマンドとする）を発行する（ステップＳ２０４）。移動元デバイス１０は，移動すべきデータを暗号鍵によって暗号化し，コントローラ３０に返送する。次に，コントローラ３０は移動先デバイス２０に対して，移動元デバイス１０から受信したデータを書き込む旨のコマンド（以下，File Data Downloadコマンドとする）を発行する（ステップＳ２０６）。
【００４０】
移動先デバイス２０は，このコマンドのパラメータとして渡された移動元デバイス１０のデータを，保持している暗号鍵を用いて復号し，復号文をメモリに書き込む（ステップＳ２０８）。File Data Downloadコマンドを受信した移動先デバイス２０における暗号鍵を用いた復号処理は，移動先デバイス２０が暗号鍵を保持している時であれば，何時行っても良い。
【００４１】
一度のコマンドで転送できるデータ容量には限度があるので，これらの処理を移動すべき全てのデータが転送できるまで繰り返す（本実施形態ではｎ回繰り返している）。
【００４２】
図３に示した一例では，移動元デバイス１０からコントローラ３０へのデータ転送と，コントローラ３０から移動先デバイス２０へのデータ転送を交互に行っているが，本発明はこれに限定されない。図４は，データ転送段階（Ｓ１０）の他の一例を示す説明図である。図４に示したように，移動元デバイス１０からコントローラ３０へすべてのデータを転送した後，コントローラ３０から移動先デバイス２０へすべてのデータを転送するようにしてもよい。図４の場合，移動元デバイス１０からのすべての転送データをFile Data Uploadコマンドを連続して繰り返すことでコントローラ３０が一括して取得，保持しておいた後に，File Data Downloadコマンドを連続して繰り返し，移動先デバイス２０へ一括して書き込みを行う。
【００４３】
＜データ転送完了通知段階（ステップＳ３０）＞
データ転送完了通知段階（ステップＳ３０）について，図５を参照しながら詳述する。
すべてのデータ転送が完了したのちに，コントローラ３０は，移動元デバイス１０に対して，転送されたデータの順序と値によって一意に決まる値を問い合わせる。本実施形態では，チェックサムを問い合わせる旨のコマンド（以下，Get Check Sumコマンドとする）によって，転送データ全体のチェックサム（以下，CheckSUMとする）を問い合わせる（ステップＳ３０２）。
【００４４】
移動元デバイス１０では，CheckSUMの値を算出した上で，ある乱数値（以下，RndAとする）を生成し，保持する（ステップＳ３０４）。CheckSUMは転送したパケットの順序と全体のデータ値が保証できる値である。また，RndAは，後に移動元デバイス１０に対するコミットコマンドとして発行されるRequest Commit Packetコマンドを受信した際に，それが正しく自らに対して発行されたものであるかどうかを検証するために用いられる。
【００４５】
次に，移動元デバイス１０は，Get Check Sumコマンドの返送パケットとして，CheckSUM とともにRndAを暗号鍵で暗号化してコントローラ３０に返す（ステップＳ３０６）。コントローラ３０は，この値を，チェックサムを検証する旨のコマンド（以下，Verify Check Sumコマンドとする）のパラメータによって移動先デバイス２０に送信する（ステップＳ３０８）。移動先デバイス２０は，データ移動中状態であるときのみVerify Check Sumコマンドを受け付けることができる。
【００４６】
＜データ転送完了確認段階（ステップＳ４０）＞
データ転送完了通知段階（ステップＳ４０）について，図６を参照しながら詳述する。
Verify Check Sumコマンドを受信した移動先デバイス２０は，暗号鍵を用いて復号し，復号文である値（RndAとCheckSUM）のうち，CheckSUMが転送されたデータから算出されるチェックサムと等しいことを確認する（ステップＳ４０２）。検証の結果，正当であると判断された場合は，データ転送処理を終了し，移動先デバイス２０は，データ移動中状態からデータ確定状態へ遷移し，以下に説明する確定処理へ移行する（ステップＳ４０８）。
【００４７】
まず，移動先デバイス２０は新たに乱数値（以下，RndBとする）を生成し，保持する（ステップＳ４０４）。このRndBは，後に移動先デバイス２０に対するコミットコマンド（以下，Commitコマンドとする）を受信した際に，Commitコマンドが正しく自らに対して発行されたものであるかどうかを検証するために用いられる。さらに，転送終了の状態を表す固定値（以下，END_STATEとする）を生成する（ステップＳ４０６）。
【００４８】
この時点でデータ転送の成功が担保される。上記の検証の結果，正当であると判断された場合は，データ転送処理を終了し，移動先デバイス２０は，データ移動中状態からデータ確定状態へ遷移し，以下に説明する確定処理へ移行する（ステップＳ４０８）。
【００４９】
Verify
Check Sumコマンドの返送パケットとして， END_STATEとRndBをRndAで暗号化し，得られた復号文をさらに暗号鍵で暗号化したものを返す（ステップＳ４１０）。コントローラ３０は，Verify Check Sumコマンドの返送パケットによって受信したパラメータを，移動元デバイス１０に対して，移動先デバイス２０に対するコミットコマンドの発行を要求する旨のコマンド（以下，Request Commit Packetコマンドとする）のパラメータとして送信する（ステップＳ４１２）。
【００５０】
＜データ再転送不可通知（ステップＳ５０）＞
データ再転送不可通知（ステップＳ５０）について，図７を参照しながら詳述する。
Request Commit Packetコマンドを受信した移動元デバイス１０は，そのパラメータを暗号鍵によって復号し，得られた復号文をさらにRndAによって復号し，復号文としてEND_STATEが抽出できることを確認する（ステップＳ５０２）。この固定値が抽出できれば，暗号鍵を交換した相手（移動先デバイス２０）がたしかにデータ転送を終了し，データ確定中状態に遷移したことが確認できるので，移動元デバイス１０は，データ移動中状態から，データ転送処理が再度行えないデータ移動後状態へ遷移する（ステップＳ５０４）。
【００５１】
次に，移動元デバイス１０は，移動先デバイス２０に対するコミットパケットを生成し（ステップＳ５０６），Request Commit Packetの返送値として返す（ステップＳ５０８）。コミットパケットは，コミットコマンドを表す固定値（以下，COMMIT_CMDとする）をRndBによって暗号化し，得られた暗号文をさらに暗号鍵によって暗号化したものである。
【００５２】
コントローラ３０は，受信したコミットパケットをCommitコマンドのパラメータとして付加し，移動先デバイス２０に対して送信する（ステップＳ５１０）。移動先デバイス２０は，前述のVerify Check Sumコマンドによる検証に成功しているときのみ（データ確定中状態のときのみ），Commitコマンドを受け付けることができる。
【００５３】
移動先デバイス２０は，Commitコマンドのパラメータを，まず暗号鍵によって復号し，得られた復号文をさらにRndBを用いて復号し，復号文としてCOMMIT_CMDが抽出できることを確認する（ステップＳ５１２）。COMMIT_CMDが抽出できれば，たしかに移動元デバイス１０がデータ移動を再度行えない状態へ遷移したこと，かつ，自らが要求したコミットコマンドが受信できたことが確認できるので，移動先デバイス２０は，転送されたデータを有効とし（ステップＳ５１４），データ確定中状態からデータ移動後状態へ遷移する（ステップＳ５１６）。
【００５４】
また，Commitコマンドの受け付けとCOMMIT_CMDの検証処理は，全体のフローの中において特に重要な箇所となるため，試行回数を制限する。
【００５５】
図８は，以上説明したデータ移動方法における状態遷移および実行可能コマンドの説明図である。図８に示したステップ（Ｓ１０６等）は，上述の図２〜図７の各ステップに対応するものである。また，一般利用状態とは，データ移動を行っていないときの通常の利用状態のことである。
【００５６】
以上，本実施形態にかかるデータ移動方法について説明した。かかるデータ移動方法は，コンピュータ（携帯電話，ＩＣカード等を含む）に上記データ移動方法を実現するためのコンピュータプログラムを組み込むことで，コンピュータに上記データ移動方法を実現させることが可能である。かかるコンピュータプログラムは，所定の記録媒体（例えば，ＣＤ−ＲＯＭ）に記録された形で，あるいは，電子ネットワークを介したダウンロードの形で市場を流通させることが可能である。
【００５７】
（本実施形態の効果）
本実施形態によれば，相互認証段階（ステップＳ１０）からデータ転送完了確認段階（ステップＳ４０）の間で，処理が何らかの障害（電力断など）により失敗した場合は，移動元・移動先双方ともに，Pollingコマンドから再実行が可能であり，不正な複製およびデータの損失は発生しない。
【００５８】
また，移動元デバイス１０がデータ移動後状態に遷移した後，移動先デバイス２０がデータ移動後状態に遷移するまでの間（図７に示した符号Ｘの間）で，処理が何らかの障害（電力断など）により失敗した場合は，データの損失は起こり得るが，全体のフローから見たときの発生確率は非常に小さい。また，この場合は，不正な複製は発生しない。
【００５９】
以上，添付図面を参照しながら本発明にかかるデータ移動方法の好適な実施形態について説明したが，本発明はかかる例に限定されない。当業者であれば，特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【００６０】
本発明はデータ移動方法に利用可能であり，特に，セキュアにデータが保存されたセキュリティデバイス間におけるデータ移動方法に利用可能である。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施形態にかかるデータ移動方法の概略を示す説明図である。
【図２】相互認証段階（Ｓ１０）の詳細を示す説明図である。
【図３】データ転送段階（Ｓ２０）の詳細を示す説明図である。
【図４】データ転送段階（Ｓ１０）の他の一例を示す説明図である。
【図５】データ転送完了通知段階（Ｓ３０）の詳細を示す説明図である。
【図６】データ転送完了確認段階（Ｓ４０）の詳細を示す説明図である。
【図７】データ再転送不可通知（Ｓ５０）の詳細を示す説明図である。
【図８】デバイスの状態遷移および実行可能コマンドを示す説明図である。
【符号の説明】
【００６２】
１０  移動元デバイス
２０  移動先デバイス
３０  コントローラ
【図１】
0004595732.tif 000002
【図２】
0004595732.tif 000003
【図３】
0004595732.tif 000004
【図４】
0004595732.tif 000005
【図５】
0004595732.tif 000006
【図６】
0004595732.tif 000007
【図８】
0004595732.tif 000008
【図７】
0004595732.tif 000009