(57)【特許請求の範囲】
【請求項１】
データに情報を埋め込むための装置であって、
埋め込み対象の情報を取得する取得部と、
前記データを構成する複数のブロックのうちの前記情報に基づいて決定されたブロックに対し、特定の処理が失敗した場合に行われる当該特定の処理の再実行を、当該特定の処理が失敗しなくても、前記情報に基づいて決定された回数繰り返し行い、当該決定された回数における最後の回の当該特定の処理の結果を当該決定されたブロックの処理結果とすることにより、当該データに当該情報を埋め込む処理部と
を含む、装置。
【請求項２】
前記特定の処理は、前記データを記録媒体へ書き込む処理である、請求項１記載の装置。
【請求項３】
前記ブロックは、ＬＴＯ(Linear Tape-Open)におけるＣＱ(Codeword Quad)セットである、請求項２記載の装置。
【請求項４】
前記特定の処理は、前記データをネットワークを介して送信する処理である、請求項１記載の装置。
【請求項５】
前記処理部は、前記決定されたブロックに対する前記特定の処理が、前記決定された回数における最後の回に失敗した場合に、前記データの当該ブロックを含む部分に対する当該特定の処理を無効化する、請求項１記載の装置。
【請求項６】
前記処理部は、前記決定されたブロックに対する前記特定の処理が、前記決定された回数における最後の回に失敗した場合に、当該ブロックに対する当該特定の処理を、所定の回数、更に繰り返す、請求項１記載の装置。
【請求項７】
データに埋め込まれた情報を検出するための装置であって、
前記データを構成する複数のブロックのうちの所定のブロックに対し、特定の処理が失敗した場合に行われる当該特定の処理の再実行を、当該特定の処理が失敗しなくても、所定の回数繰り返し行い、当該所定の回数における最後の回の当該特定の処理の結果を当該所定のブロックの処理結果とした、当該データに対する当該特定の処理の結果を取得する取得部と、
前記データに対する前記特定の処理の結果を解析することで得られる、前記所定のブロックと、前記所定の回数とに基づいて、前記情報を特定する特定部と
を含む、装置。
【請求項８】
前記結果を取得する処理は、記録媒体へ書き込まれた前記データを読み出す処理である、請求項７記載の装置。
【請求項９】
前記ブロックは、ＬＴＯ(Linear Tape-Open)におけるＣＱ(Codeword Quad)セットである、請求項７記載の装置。
【請求項１０】
前記結果を取得する処理は、ネットワークを介して送信された前記データを受信する処理である、請求項７記載の装置。
【請求項１１】
データに情報を埋め込むための方法であって、
埋め込み対象の情報を取得するステップと、
前記データを構成する複数のブロックのうちの前記情報に基づいて決定されたブロックに対し、特定の処理が失敗した場合に行われる当該特定の処理の再実行を、当該特定の処理が失敗しなくても、前記情報に基づいて決定された回数繰り返し行い、当該決定された回数における最後の回の当該特定の処理の結果を当該決定されたブロックの処理結果とするステップと
を含む、方法。
【請求項１２】
前記データに対する前記特定の処理の結果を取得するステップと、
前記データに対する前記特定の処理の結果を解析することで得られる、前記決定されたブロックに対して前記特定の処理が繰り返された回数に基づいて、前記情報を特定するステップと
を含む、請求項１１記載の方法。
【請求項１３】
データに対して特定の処理を行うコンピュータに対し、
埋め込み対象の情報を取得する機能と、
前記データを構成する複数のブロックのうちの前記情報に基づいて決定されたブロックに対し、前記特定の処理が失敗した場合に行われる当該特定の処理の再実行を、当該特定の処理が失敗しなくても、前記情報に基づいて決定された回数繰り返し行い、当該決定された回数における最後の回の当該特定の処理の結果を当該決定されたブロックの処理結果とする機能と
を実現させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの内容に変更を加えることなくデータに情報を埋め込むための装置等に関する。
【背景技術】
【０００２】
磁気テープ等のテープ媒体に記録されたデジタルデータ(データ)の品質は、そのデータが他のテープ媒体にコピーされたとしても落ちることはない。ところが、データが記録されたテープ媒体がオリジナルのものであるかコピーされたものであるかを識別することは、現状でも困難である。一般的なテープ媒体におけるデータの記録方式は、テープ媒体の進行方向に沿ってシーケンシャルに並べて記録する規定となっており、記録されたデータを順に他のテープドライブを利用してコピーすることが可能だからである。つまり、データがシーケンシャルに順序良く記録されている場合、これを単純に他のテープ媒体に写し取ることで、オリジナルのテープ媒体のコピーが容易に作成できてしまうのである。【０００３】
こうした事情から、データが記録されたテープ媒体がオリジナルであるかコピーであるかを識別できるようにする技術が望まれている。ここで、テープ媒体に記録されるデータの中には、その内容を改変できないものも多い。従って、データの内容に変更を加えることなく、テープ媒体がオリジナルであるかコピーであるかを識別するための情報を埋め込む手法が提案されている(例えば、特許文献１参照)。具体的には、この特許文献１では、データを複数のデータセットに分割してテープ媒体に記録する際に、データセット間の距離を操作することで、データに情報を埋め込んでいる。【０００４】
【特許文献１】特開２００４−１４５９２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のような、データセット間の距離を用いて情報を埋め込む手法には、次の点を改善することで、更なる効率化の余地がある。
即ち、埋め込む情報の量的増加が、そのまま記録領域の無駄となるという点である。【０００６】
本発明は、以上のような事情に鑑みてなされたものであって、その目的は、データへの情報の埋め込みを効率化することにある。
また、本発明の他の目的は、データを記録する際に、記憶領域を有効に利用しつつ、情報を埋め込むことにある。
【課題を解決するための手段】
【０００７】
かかる目的のもと、本発明では、データを構成するブロックの繰り返しを利用して、データに情報を埋め込むようにしている。即ち、本発明の情報埋め込み装置は、取得部と、処理部とを含んでいる。このうち、取得部は、埋め込み対象の情報を取得する。また、処理部は、データを構成する複数のブロックのうちのその情報に基づいて決定されたブロックに対し、特定の処理を、その情報に基づいて決定された回数繰り返すことにより、そのデータにその情報を埋め込む。【０００８】
ここで、特定の処理としては、第一に、データを記録媒体へ書き込む処理が挙げられる。その場合、特に、ブロックとして、ＬＴＯのテープフォーマットに規定されているＣＱ(Codeword Quad)セットを採用し、特定のＣＱセットを特定回数書き直すことにより、情
報を埋め込むことができる。このような情報の埋め込み手法を採用すれば、記録されるデータには全く影響を与えずに、別な情報を書き込むことが可能となる。
また、特定の処理としては、第二に、データをネットワークを介して送信する処理も考えられる。【０００９】
また、本発明は、上記のようにして埋め込まれたデータを検出する装置として捉えることもできる。その場合、本発明の情報検出装置は、取得部と、特定部とを含んでいる。このうち、取得部は、データに対する特定の処理の結果を取得する。また、特定部は、その結果を解析することで得られる、データを構成する複数のブロックのうちの所定のブロックに対して特定の処理が繰り返された回数に基づいて、その情報を特定する。【００１０】
ここで、結果を取得する処理としては、第一に、記録媒体へ書き込まれたデータを読み出す処理が挙げられる。その場合、データの読み出し時に、埋め込まれた情報が抽出され、これに基づいて、オリジナルテープの特定や、コピー制御や防止も可能となる。
また、結果を取得する処理としては、第二に、データをネットワークを介して受信する処理も考えられる。【００１１】
更に、本発明は、データに情報を埋め込むための方法として捉えることもできる。その場合、本発明の方法は、埋め込み対象の情報を取得するステップと、データを構成する複数のブロックのうちのその情報に基づいて決定されたブロックに対し、特定の処理を、その情報に基づいて決定された回数繰り返すステップとを含んでいる。【００１２】
一方、本発明は、コンピュータに所定の機能を実現させるコンピュータプログラムとして捉えることもできる。その場合、本発明のコンピュータプログラムは、データに対して特定の処理を行うコンピュータに対し、埋め込み対象の情報を取得する機能と、データを構成する複数のブロックのうちのその情報に基づいて決定されたブロックに対し、特定の処理を、その情報に基づいて決定された回数繰り返す機能とを実現させるものである。
【発明の効果】
【００１３】
本発明によれば、データへの情報の埋め込みを効率化することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態
」という)について詳細に説明する。
図１は、本実施の形態が適用されるテープドライブ１０の構成を示した図である。このテープドライブ１０は、インタフェース１１と、バッファ１２と、記録チャネル１３とを含む。また、テープ１４ａと、ヘッド１４ｂと、リール１４ｃ及び１４ｄと、カートリッジ１４ｅと、モータ１５と、コントローラ３０とを含む。【００１５】
このうち、インタフェース１１は、ホスト２０との通信を行う。例えば、ホスト２０から、バッファ１２へのデータの書込みを指示するコマンドや、バッファ１２からテープ１４ａへのデータの書込みを指示するコマンドを受け取る。また、ホスト２０に対し、これらのコマンドによる処理が成功したのか失敗したのかの応答を返す。
バッファ１２は、テープ１４ａに書き込むべきデータを蓄積するメモリである。例えば、ＤＲＡＭ(Dynamic Random Access Memory)によって構成される。また、バッファ１２は、インタフェース１１から送られたデータを、データセットと呼ばれる単位で格納している。
記録チャネル１３は、バッファ１２に蓄積されたデータをテープ１４ａに書き出すために用いられる通信経路である。【００１６】
テープ１４ａは、データを記録するために用いられるテープ媒体であり、記録チャネル１３を介して渡されたデータがヘッド１４ｂによって書き込まれる。また、テープ１４ａは、リール１４ｃ及び１４ｄに巻かれ、これらの回転に伴い、リール１４ｃからリール１４ｄの方向へ、又は、リール１４ｄからリール１４ｃの方向へ、長手方向に移動する。カートリッジ１４ｅは、テープ１４ａが巻きつけてあるリール１４ｃを収容する容器であるが、リール１４ｄを収容するものを設けてもよい。
また、モータ１５は、リール１４ｃ及び１４ｄを回転させる。尚、図では、１つの矩形でモータ１５を表しているが、モータ１５としては、リール１４ｃ及び１４ｄの各々に１つずつ、合計２個設けるのが好ましい。【００１７】
一方、コントローラ３０は、テープドライブ１０の全体動作を制御する。例えば、インタフェース１１で受け付けたコマンドに従って、データのテープ１４ａへの書込みを制御する。また、データのテープ１４ａへの書込みが成功したのか失敗したのかを検出し、その検出結果をインタフェース１１を介してホスト２０に返す。
ところで、本実施の形態において、テープドライブ１０は、ＬＴＯ(Linear Tape-Open)の第３世代として規定されている記録方式に従って、テープ１４ａにデータを記録するものとする。尚、ＬＴＯとは、ＩＢＭ、ヒューレットパッカード、シーゲイトテクノロジ(
現カンタム)の３社が共同で策定したテープフォーマットの規格である。【００１８】
そこで、まず、ＬＴＯの第３世代として規定されている記録方式について説明しておく。
ＬＴＯでは、ホスト２０から転送されたユーザデータは、まず、データセットと呼ばれる単位にまとめられる。そして、各データセットは、更にサブデータセットと呼ばれる単位に分けられ、テープ１４ａに順序良く書き込まれる。
図２は、サブデータセットからテープ１４ａへの書込みまでの様子を示した図である。  図２に「Ｓｕｂ Ｄａｔａ Ｓｅｔ」として示した６４個のデータの塊が、１つのデータセットを構成する６４個のサブデータセットに相当する。尚、各サブデータセットには、図では明示していないが、データの誤りを訂正するためのＥＣＣ(Error Correcting Code)が付加されている。また、各サブデータセットは、６４行からなり、各行は４８０バイ
トのデータ列である。
そして、この各行が、図２に「Ｃｏｄｅｗｏｒｄ Ｐａｉｒ」として示したデータ単位
に相当する。このＣｏｄｅｗｏｒｄ Ｐａｉｒは、２つずつまとめられて「Ｃｏｄｅｗｏ
ｒｄ Ｑｕａｄ(ＣＱ)」を構成し、この単位でテープ１４ａに書き込まれる。【００１９】
また、図２は、テープ１４ａ上のＣＱの記録イメージについても示している。ＬＴＯの第３世代の場合、テープ１４ａ上には、記録領域として１６本のトラックがあり、１６本の書込みヘッドが、ＣＱを順に書き込んでいく。
ここで、図２では、サブデータセット０の１行目とサブデータセット１の１行目とを合わせたものをＣＱ０とし、トラック０に記録している。また、サブデータセット２の１行目とサブデータセット３の１行目とを合わせたものをＣＱ１とし、トラック１に記録している。以下同様に、サブデータセット４、５、…、３１の１行目からＣＱ２、３、４、…、１５を生成し、それぞれを、トラック２、３、４、…、１５に記録している。つまり、３２個のサブデータセットの１行目から１６個のＣＱが生成され、これらが、１６個のトラック上の、テープ１４ａの長手方向における同じ位置に記録されるのである。このようなテープ１４ａ上の長手方向における記録位置が同じＣＱの集合は、ＣＱセットと呼ばれる。
尚、図では、ＣＱセット０内で、ＣＱは、トラック番号に応じて、順序良くＣＱ０、１、２、…、１５と配置されているが、これは、説明の便宜のためであり、通常、ＣＱセット内のＣＱの位置はランダマイズされる。【００２０】
以上により、ＬＴＯの第３世代において、１つのデータセットから４０９６(＝６４×
６４)個のＣｏｄｅｗｏｒｄ Ｐａｉｒが生成され、これが、２０４８(＝４０９６÷２)個のＣＱとなり、１２８(＝２０４８÷１６)個のＣＱセットとなる。そこで、図でも、テープ１４ａ上に、ＣＱセット０からＣＱセット１２７までが記録されている様子を示している。尚、以下の説明では、ＣＱセットＮの「Ｎ」のことを、「ＣＱセット番号」と呼ぶこととする。【００２１】
また、図２には示さなかったが、２つのＣｏｄｅｗｏｒｄ Ｐａｉｒをまとめて１つの
ＣＱとする際に、各Ｃｏｄｅｗｏｒｄ Ｐａｉｒには、「Ｃｏｄｅｗｏｒｄ Ｐａｉｒ Ｈ
ｅａｄｅｒ」が付加される。そして、ＣＱは、このＣｏｄｅｗｏｒｄ Ｐａｉｒ Ｈｅａｄｅｒにより区別することが可能となる。そこで、Ｃｏｄｅｗｏｒｄ Ｐａｉｒ Ｈｅａｄｅｒを含むＣＱのフォーマットについても説明しておく。
図３は、ＣＱのフォーマットを示した図である。１つのＣＱを構成する２つのＣｏｄｅｗｏｒｄ Ｐａｉｒを、図では、「Ｆｉｒｓｔ Ｃｏｄｅｗｏｒｄ Ｐａｉｒ」、「Ｓｅｃ
ｏｎｄ Ｃｏｄｅｗｏｒｄ Ｐａｉｒ」と表記している。そして、これらのＣｏｄｅｗｏｒｄ Ｐａｉｒのそれぞれに、１０バイトのＣｏｄｅｗｏｒｄ Ｐａｉｒ Ｈｅａｄｅｒが付
加されている。【００２２】
そして、このＣｏｄｅｗｏｒｄ Ｐａｉｒ Ｈｅａｄｅｒは、図示するようなフォーマットを有している。即ち、４バイトの「Ｃｏｄｅｗｏｒｄ Ｉｄｅｎｔｉｆｉｅｒ」と、４
バイトの「Ｗｒｉｔｅ Ｐａｓｓ」と、２バイトの「Ｈｅａｄｅｒ Ｐａｒｉｔｙ」とを含んでいる。このうち、Ｃｏｄｅｗｏｒｄ Ｉｄｅｎｔｉｆｉｅｒの中には、ＣＱセットの
絶対的な書込み回数のカウンタであるＡＣＮ(Absolute CQ Sequence Number)に加え、Ｃ
Ｑセットを識別するための情報も含まれている。つまり、この情報を参照することにより、テープ１４ａから読み出されたＣＱが何番目のＣＱであるかを正確に知ることができるようになっている。因みに、Ｗｒｉｔｅ Ｐａｓｓは、データセットの単位での書き直し
があった場合に、それらを区別するための情報であり、Ｈｅａｄｅｒ Ｐａｒｉｔｙは、
Ｃｏｄｅｗｏｒｄ Ｐａｉｒ Ｈｅａｄｅｒについてのパリティデータである。【００２３】
以上が、ＬＴＯの第３世代として規定されている一般的なテープフォーマットである。つまり、図２のテープ１４ａ上の記録イメージからも分かるように、通常、ＣＱセットは、隙間なく連続して書き込まれる。しかしながら、テープ１４ａ上の欠陥等によってＣＱセットを書き込めなかった場合、ＬＴＯでは、そのＣＱセットを繰り返し書き込むことが許されている。この場合、ＣＱセットは、回数に規格上の上限はあるものの、正しく書き込めるまで繰り返し書き込まれる。そして、最終的には、ＣＱセットは正しく書かれることになる。そうでないと、そのＣＱセットを含むデータセット自体が正しく書かれたことにならないからである。このとき、テープ１４ａ上には、不完全なＣＱセットが連続する。しかし、読出し動作(書込み時のＲｅａｄ Ｗｈｉｌｅ Ｗｒｉｔｅも含む)は、最後のＣＱセットは正しく書けているものとして行われる。即ち、不完全なＣＱセットは、コントローラ３０内の図示しないバッファ領域で、順次上書きされて行き、最終的には、最後の(正しく書けているはずの)ＣＱセットに置き換わる。従って、ＣＱセットが不完全なものを含めて幾つ存在したとしても、最後に書き込まれたＣＱセットが読み出されることになるのである。【００２４】
そこで、本実施の形態では、ＬＴＯにおけるこのようなＣＱセットの繰り返しを積極的に利用して、秘匿したい情報を埋め込む。即ち、特定のＣＱセットを特定の回数繰り返し書き込むことで、データの内容には変更を加えずに情報を埋め込むのである。
尚、前述のように、ここで利用するＣＱセットの書き直しは、ＬＴＯにおいて、本来、エラーリカバリの手法として規定されたものである。しかしながら、エラーが発生していない場合にこれを積極的に利用してＣＱセットを繰り返し記録しても、規格上何ら問題とはならない。また、ＣＱセットの繰り返しが情報埋め込みのためであると認識できないテープドライブによっては、エラーに起因するＣＱセットの繰り返しに見えるだけであり、情報の埋め込みが認識されることはない。【００２５】
まず、このようなＣＱセットの書き直しを利用した情報の埋め込みについて、具体例を用いて概略を説明する。
ＣＱセットの書き直しがない場合、１つのデータセットは、ＣＱセット０からＣＱセット１２７までの１２８個のＣＱセットとしてテープ１４ａに記録される。即ち、テープ１４ａ上の記録イメージは、ＣＱセット０、ＣＱセット１、ＣＱセット２、ＣＱセット３、…、ＣＱセット１２６、ＣＱセット１２７となる。【００２６】
一方、例えば、ＣＱセット１００で書き直しが２回発生したとする。この場合、ＣＱセット１００については、２個の不完全なＣＱセットと、それに続く１個の正しいＣＱセットとがテープ１４ａに記録されることになる。即ち、テープ１４ａ上の記録イメージは、ＣＱセット０、ＣＱセット１、ＣＱセット２、ＣＱセット３、…、ＣＱセット９９、ＣＱセット１００、ＣＱセット１００、ＣＱセット１００、ＣＱセット１０１、…、ＣＱセット１２６、ＣＱセット１２７となる。但し、テープ１４ａからのデータの読出し時には、最後に書かれたＣＱセット１００が選択される。【００２７】
ここで、ＣＱセットＭをＮ回繰り返して書き込むことを考える。この場合、テープ１４ａ上の記録イメージは、ＣＱセット０、ＣＱセット１、ＣＱセット２、ＣＱセット３、…、ＣＱセットＭ(１)、ＣＱセットＭ(２)、…、ＣＱセットＭ(Ｎ)、…、ＣＱセット１２６、ＣＱセット１２７となる。つまり、このような記録を行うことにより、ＭとＮを指定して、記録されるデータとは全く別な情報をそのデータに埋め込んだり、データに埋め込まれた情報を抽出したりすることが可能となる。【００２８】
以下、ＣＱセットの書き直しを利用した情報の埋め込み及び抽出について、具体的に説明する。尚、ホスト２０から送られたデータは、データセットの単位でバッファ１２に記憶されており、このデータセットから生成されるＣＱセットは、図示しない別のバッファ領域に記憶されているものとする。
図４は、情報の埋め込み及び抽出の動作を制御するコントローラ３０の機能構成を示したブロック図である。
図示するように、コントローラ３０は、記憶部３１と、取得部３２と、書込み部３３と、読出し部３４と、特定部３５とを備えている。【００２９】
このうち、記憶部３１は、テープ１４ａにデータを記録する際に埋め込みたい情報を記憶する。ここで、埋め込みたい情報としては、少なくとも２つの整数の組を記憶している。そのうちの１つの整数が、繰り返しの対象となるＣＱセットの番号であり、別の整数が、そのＣＱセットを繰り返す回数である。尚、この記憶部３１は、半導体メモリや、磁気ディスク等、種々の記録媒体によって構成することができる。
取得部３２は、記憶部３１に記憶された情報を取得し、ＣＱセットの番号とＣＱセットを繰り返す回数との対応情報として保持する。
書込み部３３は、図示しないバッファ領域から取り出したＣＱセットを、記録チャネル１３を介してテープ１４ａに書き込む。また、その際、取得部３２が保持する情報に基づいて、同じＣＱセットを何回か繰り返す。
読出し部３４は、テープ１４ａに記録されたデータを、記録チャネル１３を介して読み出す。また、その際、どのＣＱセットが何回繰り返して書かれているかを解析する。
特定部３５は、読出し部３４による解析結果から、データに埋め込まれていた情報を特定する。また、特定された情報と、記憶部３１に記憶された情報との比較結果に基づいて、読み出したデータの利用の可否を決定する処理等も行う。【００３０】
次に、本実施の形態におけるコントローラ３０の動作例について詳細に説明する。
［第１の動作例］
この第１の動作例では、(Ｍ，Ｎ)という整数の組が、記憶部３１に記憶されているものとする。そして、取得部３２が、記憶部３１から(Ｍ，Ｎ)を取得し、ＣＱセット番号とＣＱセットの繰り返し回数との対応情報を生成しておく。即ち、ＣＱセットＭは、情報を埋め込むために、Ｎ回繰り返し書き込まれるが、それ以外のＣＱセットは、エラーが発生しない限り、１回だけ書き込まれる。従って、取得部３２は、ＣＱセット番号Ｍに対しては回数Ｎを、Ｍ以外のＣＱセット番号に対しては回数１を対応付けて保持しておく。【００３１】
取得部３２がこのような対応情報を保持すると、書込み部３３が動作を開始する。
図５は、この場合の書込み部３３の動作例を示したフローチャートである。
まず、書込み部３３は、図示しないバッファ領域からＣＱセットを取り出す(ステップ
１０１)。そして、この取り出したＣＱセットの番号に基づいて、このＣＱセットを書き
込む回数と、このＣＱセットの書き込み回数の上限値とを求める(ステップ１０２)。【００３２】
ここで、回数は、取得部３２が保持する対応情報を、ＣＱセット番号をキーとして検索することにより得ることができる。具体的には、ＣＱセット番号Ｍをキーとすれば、取得部３２から回数Ｎを得ることができ、Ｍ以外のＣＱセット番号をキーとすれば、取得部３２から回数１を得ることができる。
また、上限値は、書込み部３３が、ここで得た回数に応じて決定する。具体的には、回数がＮのときは、上限値もＮとする。ＣＱセットＭは、Ｎ回目の書込みでエラーが発生しても、(Ｎ＋１)回目の書込みを行わず、Ｎ回目で書込みを終了しなければならないからである。これに対し、回数が１のときは、規格上の上限値を採用する。情報埋め込みのために用いられないＣＱセットは、エラーによってのみ書き直しが行われる。従って、エラーが連続して発生する場合は、規格上の上限値以上の書き直しが行われないようにすればよいからである。尚、このように書込み回数には規格上の上限値があることから、ＣＱセットＭを書き込む回数Ｎとしては、この規格上の上限値を超えない数値を採用する必要がある。【００３３】
次に、書込み部３３は、ステップ１０１でバッファ領域から取り出したＣＱセットを、記録チャネル１３を介してテープ１４ａに書き込む(ステップ１０３)。また、ＣＱセットを書き込んだ回数を数えるためのカウンタに１を加算する(ステップ１０４)。
そして、書込み部３３は、ＣＱセットを正しく書き込めたかどうかを判定する(ステッ
プ１０５)。ＬＴＯでは、「Ｒｅａｄ Ｗｈｉｌｅ Ｗｒｉｔｅ」と呼ばれるように、書込
みヘッドで書かれたデータを、すぐ後ろに位置する読出しヘッドで読み出すことで、そのデータが正しく書かれたかどうかを検証している。つまり、書込み動作を行いながら、同時に読出し動作も行っているのである。このように、コントローラ３０は、書込みが成功したかどうかをＣＱ単位で検証し、そのＣＱごとの情報をリアルタイムで知り、書込み動作を制御できるようになっている。従って、ここでＣＱセットを正しく書き込めたかどうかを判定することができるのである。【００３４】
ここでは、まず、ステップ１０５でＣＱセットを正しく書き込めたと判定された場合について説明する。
この場合、書込み部３３は、カウンタの値が、ステップ１０２で取得した回数に達しているかどうかを判定する(ステップ１０６)。その結果、回数に達していなければ、ステップ１０３に戻る。つまり、ステップ１０３で、同じＣＱセットを再度テープ１４ａに書き込み、ステップ１０４で、カウンタに１を加算し、ステップ１０５で、正しく書き込めたかどうかを判定する。【００３５】
尚、ＣＱセットＭに対する処理におけるこれらのステップの繰り返しは、情報を埋め込むためのＣＱセットの繰り返しに相当する。即ち、書込み部３３は、ＣＱセットＭをＮ回書き込まなければならないので、ステップ１０６で書込み回数がＮ回に達するまで、これらのステップは繰り返される。
一方、ＣＱセットＭ以外のＣＱセットに対する処理において、ステップ１０２で取得した回数は「１」である。従って、ＣＱセットが１回書き込まれれば、ステップ１０６での判定結果は「Ｙｅｓ」となるので、ステップ１０３〜１０５の繰り返しは起こらない。【００３６】
そして、ステップ１０６で、カウンタの値が、ステップ１０２で取得した回数に達していると判定された場合、書込み部３３は、次のＣＱセットがあるかどうかを判定する(ス
テップ１０７)。その結果、次のＣＱセットがあれば、ステップ１０１へ進み、なければ
、処理を終了する。【００３７】
次に、ステップ１０５でＣＱセットを正しく書き込めなかったと判定された場合について説明する。即ち、エラーに起因する書き直しを行う場合である。
この場合、書込み部３３は、カウンタの値が、ステップ１０２で取得した上限値に達しているかどうかを判定する(ステップ１０８)。その結果、上限値に達していなければ、ステップ１０３に戻る。つまり、ステップ１０３で、同じＣＱセットを再度テープ１４ａに書き込み、ステップ１０４で、カウンタに１を加算し、ステップ１０５で、正しく書き込めたかどうかを判定する。【００３８】
尚、ＣＱセットＭに対する処理におけるこれらのステップの繰り返しは、エラーに起因する繰り返しではあるが、これも、情報を埋め込むためのＣＱセットの繰り返しの一部を構成する。即ち、情報埋め込みのためのＣＱセットの書き直しの最中に、エラーに起因するＣＱセットの書き直しが起こることも考慮し、書込み部３３が、ＣＱセットを、エラーに起因するものも含めてトータルでＮ回書き込むことができるようにしているのである。  一方、ＣＱセットＭ以外のＣＱセットに対する処理において、ステップ１０２では規格上の上限値を取得している。従って、ＣＱセットの書込みエラーが連続すれば、書込み回数が規格上の上限値に達するまで、ステップ１０３〜１０５は繰り返される。【００３９】
そして、ステップ１０６での判定結果が「Ｙｅｓ」になるよりも前に、ステップ１０８での判定結果が「Ｙｅｓ」になった場合は、既存のエラーリカバリ手順に移行する。
尚、ステップ１０８での判定結果が「Ｙｅｓ」になる場合とは、ＣＱセットＭのＮ回目の書込みでエラーが発生した場合である。このような場合、書込み部３３は、このＣＱセットを含むデータセットの書込みを中止し、テープ１４ａ上の別の位置に再度このデータセットの書込みを行う。例えば、品質の悪いテープを用いた場合、エラーが連続して発生し、エラーに起因する書き直しが規格上の上限を超えてしまうこともあり得る。かかる事態に備えて、ＬＴＯでは、テープ１４ａを少し空送りし、テープ１４ａの欠陥部分を避けて、データセット自体を書き直すことが許されている。そこで、このような既存のエラーリカバリ手順を用いるのである。【００４０】
このように、ＣＱセットＭをＮ回繰り返して書き込むことができるまで、既存のエラーリカバリ手順であるデータセットの書き直しを続ければ、与えられた(Ｍ，Ｎ)を確実に埋め込むことが保証される。勿論、通常のエラーリカバリ手順で書き直すのであるから、データの読出し時には何ら問題とはならない。【００４１】
次に、このような書込み部３３の動作に対応する読出し部３４の動作について説明する。
図６は、この場合の読出し部３４の動作を示したフローチャートである。
まず、読出し部３４は、テープ１４ａから記録チャネル１３を介してＣＱセットを読み出す(ステップ１１１)。そして、ＣＱセットを正しく読み出せたかどうかを判定する(ス
テップ１１２)。
ここで、ＣＱセットを正しく読み出せなかったと判定された場合は、そこで処理を終了するが、正しく読み出せたと判定された場合は、そのＣＱセットの番号を特定する(ステ
ップ１１３)。そして、そのＣＱセットの番号に対するカウンタに１を加算する(ステップ１１４)。例えば、ＣＱセットの番号ごとに、その番号のＣＱセットを読み出した回数を
示すカウンタを格納する領域を設けておき、今回のＣＱセットの番号に対応する領域におけるカウンタをカウントアップすればよい。【００４２】
この処理を全てのＣＱセットについて行うことにより、ＣＱセット番号とＣＱセットの繰り返し回数との対応が得られる。そして、その対応は、特定部３５に渡される。これにより、特定部３５は、ＣＱセット番号とＣＱセットの繰り返し回数との対応を取得することになる。勿論、ＣＱセットの繰り返しの中には、情報の埋め込みを目的とするものだけではなく、エラーに起因するものも含まれる。しかし、特定部３５は、記憶部３１に記憶された整数の組(Ｍ，Ｎ)に基づいて、テープ１４ａに記録されたデータに埋め込まれた情報を特定することができる。
具体的には、特定部３５は、ＣＱセットＭの繰り返し回数Ｎ０に着目し、整数の組(Ｍ
，Ｎ０)を、埋め込まれた情報として抽出する。そして、Ｎ０がＮと一致するかどうかを
判定することにより、例えば、このデータの利用の可否を決定する。即ち、Ｎ０がＮと一致すれば、データをそのまま読み出してホスト２０に転送し、Ｎ０がＮと一致しなければ、データの読み出しを中止する。【００４３】
このように、本実施の形態では、ＣＱセットＭをＮ回繰り返して書き込むことにより、データセット内のユーザデータ自体には全く手を加えることなく、電子透かし(Ｍ，Ｎ)を埋め込むことが可能となっている。【００４４】
［第２の動作例］
第１の動作例では、ＣＱセットＭのＮ回目の書込みが失敗した場合、既存のエラーリカバリ手順に従い、データセットを書き直すようにした。ところが、第１の整数の組(Ｍ，
Ｎ１)が何らかの要因で実現できなった場合に、第２の整数の組(Ｍ，Ｎ２)を実現するよ
うに、急遽動作を変更することも考えられる(但し、Ｎ１＜Ｎ２)。
そこで、この第２の動作例では、(Ｍ，Ｎ１)という第１の整数の組と、(Ｍ，Ｎ２)という第２の整数の組とが、記憶部３１に記憶されているものとする。そして、取得部３２が、記憶部３１から(Ｍ，Ｎ１，Ｎ２)を取得し、ＣＱセット番号とＣＱセットの繰り返し回数の候補との対応情報を生成しておく。即ち、ＣＱセットＭは、情報を埋め込むために、Ｎ１回又はＮ２回繰り返し書き込まれるが、それ以外のＣＱセットは、エラーが発生しない限り、１回だけ書き込まれる。従って、取得部３２は、ＣＱセット番号Ｍに対しては回数Ｎ１及びＮ２を、Ｍ以外のＣＱセット番号に対しては回数１を対応付けて保持しておく。【００４５】
取得部３２がこのような対応情報を保持すると、書込み部３３が動作を開始する。
図７は、この場合の書込み部３３の動作例を示したフローチャートである。
まず、書込み部３３は、図示しないバッファ領域からＣＱセットを取り出す(ステップ
１２１)。そして、この取り出したＣＱセットの番号に基づいて、このＣＱセットを書き
込む回数と、このＣＱセットの書き込み回数の上限値とを求める(ステップ１２２)。【００４６】
ここで、回数は、取得部３２が保持する対応情報を、ＣＱセット番号をキーとして検索することにより得ることができる。尚、回数が２つ保持されている場合は、そのうちの小さい方を取得する。具体的には、ＣＱセット番号Ｍをキーとすれば、取得部３２から回数Ｎ１を得ることができ、Ｍ以外のＣＱセット番号をキーとすれば、取得部３２から回数１を得ることができる。【００４７】
また、上限値は、書込み部３３が、ここで得た回数に応じて決定する。具体的には、回数がＮ１のときは、上限値もＮ１とする。尚、本動作例では、Ｎ１回目の書込みでエラーが発生した場合、回数及び上限値をＮ２に変更する。但し、このＮ２については、後述するステップ１３０で取得することとし、ここでは、回数及び上限値の初期値として、Ｎ１を取得する。これに対し、回数が１のときは、規格上の上限値を採用する。情報埋め込みのために用いられないＣＱセットは、エラーによってのみ書き直しが行われる。従って、エラーが連続して発生する場合は、規格上の上限値以上の書き直しが行われないようにすればよいからである。尚、このように書込み回数には規格上の上限値があることから、ＣＱセットＭを書き込む回数のうち大きい方の値Ｎ２としては、この規格上の上限値を超えない数値を採用する必要がある。【００４８】
次に、書込み部３３は、ステップ１２１でバッファ領域から取り出したＣＱセットを、記録チャネル１３を介してテープ１４ａに書き込む(ステップ１２３)。また、ＣＱセットを書き込んだ回数を数えるためのカウンタに１を加算する(ステップ１２４)。
そして、書込み部３３は、ＣＱセットを正しく書き込めたかどうかを判定する(ステッ
プ１２５)。【００４９】
ここでは、まず、ステップ１２５でＣＱセットを正しく書き込めたと判定された場合について説明する。
この場合、書込み部３３は、カウンタの値が、ステップ１２２で取得した回数に達しているかどうかを判定する(ステップ１２６)。その結果、回数に達していなければ、ステップ１２３に戻る。つまり、ステップ１２３で、同じＣＱセットを再度テープ１４ａに書き込み、ステップ１２４で、カウンタに１を加算し、ステップ１２５で、正しく書き込めたかどうかを判定する。【００５０】
尚、ＣＱセットＭに対する処理におけるこれらのステップの繰り返しは、情報を埋め込むためのＣＱセットの繰り返しに相当する。即ち、書込み部３３は、ＣＱセットＭをＮ１回書き込まなければならないので、ステップ１２６で書込み回数がＮ１回に達するまで、これらのステップは繰り返される。
一方、ＣＱセットＭ以外のＣＱセットに対する処理において、ステップ１２２で取得した回数は「１」である。従って、ＣＱセットが１回書き込まれれば、ステップ１２６での判定結果は「Ｙｅｓ」となるので、ステップ１２３〜１２５の繰り返しは起こらない。【００５１】
そして、ステップ１２６で、カウンタの値が、ステップ１２２で取得した回数に達していると判定された場合、書込み部３３は、次のＣＱセットがあるかどうかを判定する(ス
テップ１２７)。その結果、次のＣＱセットがあれば、ステップ１２１へ進み、なければ
、処理を終了する。【００５２】
次に、ステップ１２５でＣＱセットを正しく書き込めなかったと判定された場合について説明する。即ち、エラーに起因する書き直しを行う場合である。
この場合、書込み部３３は、カウンタの値が、ステップ１２２で取得した上限値に達しているかどうかを判定する(ステップ１２８)。その結果、上限値に達していなければ、ステップ１２３に戻る。つまり、ステップ１２３で、同じＣＱセットを再度テープ１４ａに書き込み、ステップ１２４で、カウンタに１を加算し、ステップ１２５で、正しく書き込めたかどうかを判定する。【００５３】
尚、ＣＱセットＭに対する処理におけるこれらのステップの繰り返しは、エラーに起因する繰り返しではあるが、これも、情報を埋め込むためのＣＱセットの繰り返しの一部を構成する。即ち、情報埋め込みのためのＣＱセットの書き直しの最中に、エラーに起因するＣＱセットの書き直しが起こることも考慮し、書込み部３３が、ＣＱセットを、エラーに起因するものも含めてトータルでＮ１回書き込むことができるようにしているのである。
一方、ＣＱセットＭ以外のＣＱセットに対する処理において、ステップ１２２では規格上の上限値を取得している。従って、ＣＱセットの書込みエラーが連続すれば、書込み回数が規格上の上限値に達するまで、ステップ１２３〜１２５は繰り返される。【００５４】
また、ステップ１２８で上限値に達したと判定された場合、書込み部３３は、回数及び上限値を変更可能であるかどうかを判定する(ステップ１２９)。
その結果、変更可能であると判定されれば、回数及び上限値を変更する(ステップ１３
０)。
具体的には、ＣＱセットＭに対する処理で、その時の回数及び上限値がＮ１であれば、Ｎ１をＮ２に変更可能であると判定し、回数及び上限値をＮ２とする。このような判定は、例えば、回数及び上限値を変更したかどうかを示すフラグを用いて行うことができる。即ち、初期状態ではフラグを「０」に設定しておき、回数及び上限値を変更した場合に、フラグを「１」に設定する。そして、ステップ１２９では、フラグが「０」に設定されていれば、回数及び上限値を変更できると判定し、フラグが「１」に設定されていれば、回数及び上限値をこれ以上変更できないと判定するようにすればよい。【００５５】
一方、ＣＱセットＭ以外のＣＱセットに対する処理では、常に変更できないと判定する。規格上の上限値は、これ以上大きくすることはできないからである。例えば、上記のように、フラグを用いてこのような判定を行う場合、初期状態でフラグを「１」に設定しておけばよい。
尚、ステップ１３０での変更の後の回数及び上限値は、取得部３２が保持する対応情報を、ＣＱセット番号をキーとして検索することにより得ることができる。具体的には、ＣＱセット番号Ｍをキーとして検索することにより、回数Ｎ２を得ることができる。【００５６】
そして、回数及び上限値が変更されると、処理は、ステップ１２３に戻る。つまり、ステップ１２３で、同じＣＱセットを再度テープ１４ａに書き込み、ステップ１２４で、カウンタに１を加算し、ステップ１２５で、正しく書き込めたかどうかを判定する。また、ステップ１２５で正しく書き込めたと判定された場合は、ステップ１２６で、カウンタの値が変更後の回数に達したかどうかを判定し、ステップ１２５で正しく書き込めなかったと判定された場合は、ステップ１２８で、カウンタの値が変更後の上限値に達したかどうかを判定する。【００５７】
そして、ステップ１２６での判定結果が「Ｙｅｓ」になるよりも前に、ステップ１２８での判定結果が「Ｙｅｓ」になった場合は、ステップ１２９での判定結果が「Ｎｏ」となるので、既存のエラーリカバリ手順に移行する。
尚、ステップ１２８での判定結果が「Ｙｅｓ」になる場合とは、ＣＱセットＭのＮ２回目の書込みでエラーが発生した場合である。このような場合、書込み部３３は、このＣＱセットを含むデータセットの書込みを中止し、テープ１４ａ上の別の位置に再度このデータセットの書込みを行う。【００５８】
次に、このような書込み部３３の動作に対応する読出し部３４の動作について説明する。
この場合、読出し部３４は、図６に示したのと同様の動作を行う。即ち、ＣＱセット番号とＣＱセットの繰り返し回数との対応を取得し、特定部３５に受け渡す。これにより、特定部３５は、記憶部３１に記憶された第１の整数の組(Ｍ，Ｎ１)と、第２の整数の組(
Ｍ，Ｎ２)とに基づいて、テープ１４ａに記録されたデータに埋め込まれた情報を特定す
ることになる。
具体的には、特定部３５は、ＣＱセットＭの繰り返し回数Ｎ０に着目し、整数の組(Ｍ
，Ｎ０)を、埋め込まれた情報として抽出する。そして、Ｎ０がＮ１又はＮ２と一致する
かどうかを判定することにより、例えば、このデータの利用の可否を決定する。即ち、Ｎ０がＮ１又はＮ２と一致すれば、データをそのまま読み出してホスト２０に転送し、Ｎ０がＮ１にもＮ２にも一致しなければ、データの読み出しを中止する。【００５９】
このように、本実施の形態では、ＣＱセットＭをＮ１回繰り返して書き込み、仮に、Ｎ１回目の書込みでエラーが発生した場合は、繰り返し回数をＮ２に変更するようにした。これにより、データセット内のユーザデータ自体には全く手を加えることなく、電子透かしを埋め込む処理がさらに効率良く行えるようになった。つまり、第１の動作例では、最初に指定された回数のＣＱセットの繰り返しが行えない場合、そのＣＱセットを含むデータセットという大きな単位で書き直しを行うようにしたが、この第２の動作例では、データセットの書き直しを行わなくても、継続して情報埋め込みのための処理を行うことができるのである。【００６０】
ところで、本実施の形態では、埋め込みたい情報を、単に整数の組み合わせ(Ｍ，Ｎ)として説明した。しかしながら、この整数の組み合わせについて一定の制限を設ければ、Ｍ、Ｎを抽出する際に偶発的なエラーが発生しても、それを検知することができる。そして、そのような場合は、通常の読出し動作で行われる再読出し等の動作を起動すればよい。つまり、あり得ないＭ，Ｎの検出を、通常の読出し動作におけるエラーの１つとして追加しておけばよいのである。尚、ここで整数の組み合わせについて設けることの可能な一定の制限とは、Ｍ，Ｎを素数で構成するといったことが考えられる。【００６１】
また、本実施の形態では、埋め込みたい情報として、最初から整数の組(Ｍ，Ｎ)等を登場させたが、このような形態に限らない。例えば、埋め込みたい情報が数字の列である場合に、これに対し何らかの演算を行い、整数の組(Ｍ，Ｎ)を得た後、上記のような処理を行うようにしてもよい。【００６２】
更に、本実施の形態では、テープ１４ａに記録されたデータのどの部分に電子透かし(
Ｍ，Ｎ)を埋め込むかについては詳しく述べなかった。そこで、以下、この点に関する構
成例を説明する。
例えば、多くのバックアップアプリケーションでは、テープの先頭領域に、テープを区別するための「Ｖｏｌｕｍｅ Ｓｅｒｉａｌ」や、テープ上の情報を記すためのヘッダ情
報が書き込まれていることが多い。一方、ユーザデータは、複数の「Ｆｉｌｅ Ｍａｒｋ
」と呼ばれる特別な記号で区切られることが多い。従って、例えば、このテープの先頭領域や、Ｆｉｌｅ Ｍａｒｋを書き込む場合に限って、本実施の形態の手法により情報を埋
め込むようにしてもよい。このように構成すれば、全てのデータセットに情報を埋め込む場合に比べ、テープ容量の無駄を軽減することができる。【００６３】
通常、アプリケーションは、テープ媒体がマウントされると、Ｒｅｗｉｎｄ動作を行う。このとき、ＬＴＯ規格ドライブは、テープ媒体の先頭領域に書かれているＦＩＤと呼ばれる特別なデータセットを読み出す。Ｒｅｗｉｎｄ動作が完了した後、ＦＩＤに続くデータセット群に秘匿されていた情報に基づいて、次に発行されるであろうＲｅａｄコマンドやＷｒｉｔｅコマンドの実行を許可するかどうかを決定することが可能であると言える。【００６４】
また、Ｆｉｌｅ Ｍａｒｋは、ユーザデータの区切り記号として書き込まれていること
が多い。従って、アプリケーションは、Ｆｉｌｅ Ｍａｒｋを手がかりに、データの検索
等を行うことになる。つまり、まず、Ｆｉｌｅ Ｍａｒｋが含まれるデータセットが順に
読み込まれることになる。そのとき、Ｆｉｌｅ Ｍａｒｋに続くユーザデータごとのヘッ
ダ情報を含むデータセットも読まれることになる。ここで、それらのデータセット群のＣＱセット情報から、秘匿された情報を取得し、この情報に基づいて、以後のユーザデータの読み出しを許可するかどうかを決定することも可能である。また、その際、ユーザデータごとの読み出し禁止等の制御も視野に入れることができる。【００６５】
以上述べたように、本実施の形態によれば、記録されるデータは全く変更することなく、あるパターンを埋め込むことで、テープの識別が可能となる。即ち、通常の方法でテープをコピーした場合、この埋め込んだあるパターンが無くなるので、そのテープがオリジナルのものではないことが検出できる。或いは、テープをコピーしようとした場合に、このパターンを検出してコピーを阻止することも可能となる。【００６６】
近年、コンピュータシステムに対して、高いセキュリティを維持することが求められている。ところが、ＬＴＯは、オープンな規格であるため、カートリッジメモリのような規格として公開された場所に、秘匿したい情報を格納することは危険であり、また、そのコピーも容易である。これに対して、本実施の形態によれば、コピー制御がないＬＴＯのようなテープフォーマットに十分有効な情報埋め込み手法が提供される。【００６７】
しかも、本実施の形態の手法は、例えば、特許文献１に記載されているような手法と比べると、格段に効率の良いものである。特許文献１のように、データセット間の距離を用いて情報を埋め込むようにした場合は、次のような点で更なる効率化の余地がある。
通常、データセット間の距離を利用して情報を埋め込む場合、距離を制御する最小単位を１ＬＰＯＳとすることが多い。これに対し、本実施の形態では、理論的には、１ＣＱ単位で情報を埋め込むことができる。例えば、ＬＴＯの第３世代として規定されるテープフォーマットでは、１ＣＱは、１データセット長の１２８分の１である。つまり、１データセットを、最小約１０ＬＰＯＳ程度とすると、特許文献１に比べ、約１３(＝１２８÷１
０)倍効率が良いと言える。【００６８】
尚、以上では、ＬＴＯで規定されたテープフォーマットに従ってテープ媒体にデータを記録する際に、Ｍ番目のＣＱセットをＮ回繰り返すことで情報を埋め込むことについて述べてきた。しかしながら、ＬＴＯで規定されたテープフォーマットに拘らなければ、情報を埋め込む際に繰り返すデータの単位としては、如何なる単位を採用してもよい。即ち、本実施の形態は、データが複数のブロックから構成される場合に、Ｍ番目のブロックをＮ回繰り返して書き込むものと捉えることもできる。【００６９】
また、これまでは、データを記録する際に、「Ｍ番目のブロックをＮ回繰り返して書き込む」ことで電子透かし(Ｍ，Ｎ)を埋め込むことについて述べてきた。
しかしながら、「Ｍ番目のブロックをＮ回繰り返して書き込む」を、コンピュータ間でのデータの送受信で考えた場合には、「Ｍ番目のブロックをＮ回再送する」と読み替えることもできる。【００７０】
但し、このような読み替えが可能となるのは、次のような条件を満たす場合と考えられる。
１．通信プロトコルによる双方向通信を行っていること(携帯電話用、シリアル、ＳＣＳ
Ｉ、ファイバチャネル等)。
２．データはブロック化されており、各ブロックは唯一のものとして特定できること。つまり、ナンバリングされていること。
３．データ転送中に不具合があれば、再送するためのプロトコルが存在し、特定のブロックを再度転送することができること。
４．データの受信側で、その特定のブロックが何回再送されたのかが確実に分かること。【００７１】
図８は、このように「Ｍ回目のブロックをＮ回再送する」ことによる情報の埋め込みを実現するためのコンピュータシステムの構成を示したブロック図である。
図示するように、このコンピュータシステムは、送信装置４０と、受信装置５０とを含んでいる。
そして、送信装置４０は、記憶部４１と、取得部４２と、送信部４３とを含む。
このうち、記憶部４１は、受信装置５０にデータを送信する際に埋め込みたい情報を記憶する。ここで、埋め込みたい情報としては、少なくとも２つの整数の組を記憶している。そのうちの１つの整数が、再送の対象となるブロックの番号であり、別の整数が、そのブロックの送信を繰り返す回数である。尚、この記憶部４１は、半導体メモリや、磁気ディスク等、種々の記録媒体によって構成することができる。
取得部４２は、記憶部４１に記憶された情報を取得し、送信するブロックの番号とブロックの送信を繰り返す回数との対応情報として保持する。
送信部４３は、送信すべきデータを構成するブロックを受信装置５０に対して送信する。また、その際、取得部４２が保持する情報に基づいて、同じブロックを何回か繰り返す。【００７２】
また、受信装置５０は、記憶部５１と、受信部５２と、特定部５３とを含む。
このうち、記憶部５１は、送信されるデータに埋め込まれているはずの情報が記憶されている。尚、この記憶部５１は、半導体メモリや、磁気ディスク等、種々の記録媒体によって構成することができる。
受信部５２は、送信装置４０によって送信されたデータを受信する。また、その際、どのブロックが何回繰り返して書かれているかを解析する。
特定部５３は、受信部５２による解析結果から、データに埋め込まれていた情報を特定する。また、特定された情報と、記憶部５１に記憶された情報との比較結果に基づいて、受信したデータの利用の可否を決定する処理等も行う。【００７３】
そして、このコンピュータシステムは、コントローラ３０と同様の動作を行うことにより、データに情報を埋め込む。
即ち、送信装置４０では、まず、取得部４２が、記憶部４１に記憶された情報を取得し、次に、送信部４３が、図５又は図７に示したフローチャートに示したのと同様の動作を行う。具体的には、図５又は図７において、「ＣＱセット」を「ブロック」に読み替え、「書き込む」、「書けた？」をそれぞれ「送信する」、「送信できた？」に読み替えたものが、送信部４３による動作の流れである。
また、受信装置５０では、まず、受信部５２が、図６に示したフローチャートに示したのと同様の動作を行う。具体的には、図６において、「ＣＱセット」を「ブロック」に読み替え、「読み出す」、「読み出せた？」をそれぞれ「受信する」、「受信できた？」に読み替えたものが、受信部５２による動作の流れである。その後、特定部３５は、受信したデータに埋め込まれた情報を特定し、その情報と記憶部５１に記憶された情報との比較に基づいて、受信したデータの利用の可否等を決定する。【００７４】
更に、本実施の形態は、一般のデータ処理を考えると、「Ｍ番目のブロックに対しＮ回処理を行う」ものと捉えることもできる。
図９は、「Ｍ番目のブロックに対しＮ回処理を行う」ことによる情報の埋め込みを実現するためのデータ処理装置６０の機能構成を示したブロック図である。
図示するように、このデータ処理装置６０は、記憶部６１と、取得部６２と、処理部６３と、結果取得部６４と、特定部６５とを備えている。【００７５】
このうち、記憶部６１は、データに対し所定の処理を行う際に埋め込みたい情報を記憶する。ここで、埋め込みたい情報としては、少なくとも２つの整数の組を記憶している。そのうちの１つの整数が、繰り返し処理の対象となるブロックの番号であり、別の整数が、そのブロックに対し処理を繰り返す回数である。尚、この記憶部６１は、半導体メモリや、磁気ディスク等、種々の記録媒体によって構成することができる。
取得部６２は、記憶部６１に記憶された情報を取得し、ブロックの番号とブロックを繰り返す回数との対応情報として保持する。
処理部６３は、与えられたデータに対し所定の処理を施す。また、その際、取得部６２が保持する情報に基づいて、同じブロックを何回か繰り返す。
結果取得部６４は、処理部６３による処理の結果を取得する。また、その際、どのブロックに対して何回処理が繰り返されているかを解析する。
特定部６５は、結果取得部６４による解析結果から、データに埋め込まれていた情報を特定する。また、特定された情報と、記憶部６１に記憶された情報との比較結果に基づいて、処理結果の利用の可否を決定する処理等も行う。【００７６】
そして、データ処理装置６０は、コントローラ３０と同様の動作を行うことにより、データに情報を埋め込む。
即ち、まず、取得部６２が、記憶部６１に記憶された情報を取得し、次に、処理部６３が、図５又は図７に示したフローチャートに示したのと同様の動作を行う。具体的には、図５又は図７において、「ＣＱセット」を「ブロック」に読み替え、「書き込む」、「書けた？」をそれぞれ「処理する」、「処理できた？」に読み替えたものが、処理部６３による動作の流れである。
また、結果取得部６４が、図６に示したフローチャートに示したのと同様の動作を行う。具体的には、図６において、「ＣＱセット」を「ブロック」に読み替え、「読み出す」、「読み出せた？」をそれぞれ「結果を取得する」、「結果を取得できた？」に読み替えたものが、結果取得部６４による動作の流れである。その後、特定部６５は、受信したデータに埋め込まれた情報を特定し、その情報と記憶部６１に記憶された情報との比較に基づいて、受信したデータの利用の可否等を決定する。
尚、記憶部６１に記憶される情報は、例えば、外部のホストより通信インタフェースを経由して与えてもよく、或いは、逆に、通信インタフェースを経由して外部のホストに知らせてもよい。
また、その情報は、データ処理装置６０の外部で所定の方法で生成され、与えられてもよく、或いは、データ処理装置６０の内部で所定の方法で生成してもよい。【００７７】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。
また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(ＲＡ
Ｍ)、リードオンリーメモリ(ＲＯＭ)、リジッド磁気ディスク、及び光ディスクが例示さ
れる。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(ＣＤ−ＲＯＭ)、コンパクトディスク−リード/ライト(ＣＤ−Ｒ/Ｗ)及びＤＶＤが含まれる。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施の形態が適用されるテープドライブの構成を示したブロック図である。
【図２】本発明の実施の形態の前提となるＬＴＯにおけるサブデータセットからテープへの書込みまでの様子を示した図である。
【図３】本発明の実施の形態の前提となるＬＴＯにおけるＣＱのフォーマットについて示した図である。
【図４】本発明の実施の形態におけるコントローラの機能構成について示した図である。
【図５】本発明の実施の形態のコントローラにおける書込み部の第１の動作例を示したフローチャートである。
【図６】本発明の実施の形態のコントローラにおける読出し部の動作例を示したフローチャートである。
【図７】本発明の実施の形態のコントローラにおける書込み部の第２の動作例を示したフローチャートである。
【図８】本発明の実施の形態の別の構成例について示した図である。
【図９】本発明の実施の形態の別の構成例について示した図である。
【符号の説明】
【００７９】
１０…テープドライブ、１１…インタフェース、１２…バッファ、１３…記録チャネル、１４ａ…テープ、１４ｂ…ヘッド、１４ｃ，１４ｄ…リール、１４ｅ…カートリッジ、１５…モータ、３０…コントローラ
【図１】
0004808770.tif 000002
【図２】
0004808770.tif 000003
【図３】
0004808770.tif 000004
【図４】
0004808770.tif 000005
【図５】
0004808770.tif 000006
【図６】
0004808770.tif 000007
【図７】
0004808770.tif 000008
【図８】
0004808770.tif 000009
【図９】
0004808770.tif 000010