(57)【特許請求の範囲】
【請求項１】
サーバからネットワークを介してクライアントへと送信され且つ前記クライアント上で実行される、第１のプログラム及び第２のプログラムを含むアプリケーションソフトウェアを保護するための保護方法であって、
前記第１のプログラムを用いて入力ストリームの編集内容を決定する第１編集工程と、
前記入力ストリームの特性を示す特性情報及び前記編集内容を示す編集情報を含む送信情報を、前記クライアントから前記サーバへ送信する第１送信工程と、
前記送信情報を含み、前記入力ストリームに対して前記編集内容を実行する第２のプログラムを生成するプログラム生成工程と、
前記第２のプログラムを前記クライアントへ送信する第２送信工程と、
前記入力ストリームの特性と前記第２のプログラム内の前記送信情報に含まれる前記特性情報が示す特性とが一致するか否かを判定する判定工程と、
前記入力ストリームの特性と前記第２のプログラム内の前記送信情報に含まれる前記特性情報が示す特性とが一致すると判定される場合、前記第２のプログラムを用いて、前記編集情報に基づく編集を前記入力ストリームに対して実行する第２編集工程と
を備えることを特徴とするアプリケーションソフトウェアの保護方法。
【請求項２】
前記特性情報及び前記編集情報に基づいて決定される前記入力ストリーム内の位置に、前記特性情報及び前記編集情報の一部を埋め込む埋込工程を更に備え、
前記第１送信工程は、前記入力ストリームに埋め込まれなかった前記編集情報及び前記入力ストリームに埋め込まれなかった前記特性情報、並びに埋め込まれた前記特性情報及び埋め込まれた前記編集情報の夫々の埋め込み位置を示す位置情報を含む前記送信情報を送信し、
前記第２編集工程は、前記送信情報に含まれる前記位置情報に基づいて埋め込まれた前記特性情報及び埋め込まれた前記編集情報を取得するとともに、前記入力ストリームの特性と、埋め込まれた前記特性情報または前記第２のプログラム内の前記送信情報に含まれる前記特性情報が示す特性とが一致する場合、前記第２のプログラムを用いて、前記編集情報に基づく編集を前記入力ストリームに対して実行することを特徴とする請求項１に記載のアプリケーションソフトウェアの保護方法。
【請求項３】
サーバからネットワークを介してクライアントへと送信され且つ前記クライアント上で実行される、第１のプログラム及び第２のプログラムを含むアプリケーションソフトウェアを保護するための保護方法であって、
前記第１のプログラムを用いて入力ストリームの編集内容を決定する第１編集工程と、
前記入力ストリームの特性を示す特性情報及び前記編集内容を示す編集情報に基づいて決定される前記入力ストリーム内の位置に、前記特性情報及び前記編集情報を埋め込む埋込工程と、
埋め込まれた前記特性情報及び埋め込まれた前記編集情報の夫々の埋め込み位置を示す位置情報を含む送信情報を、前記クライアントから前記サーバへ送信する第１送信工程と、
前記送信情報を含み、前記入力ストリームに対して前記編集内容を実行する第２のプログラムを生成するプログラム生成工程と、
前記第２のプログラムを前記クライアントへ送信する第２送信工程と、
前記送信情報に含まれる前記位置情報に基づいて埋め込まれた前記特性情報を取得するとともに、前記入力ストリームの特性と、前記入力ストリームに埋め込まれた前記特性情報が示す特性とが一致するか否かを判定する判定工程と、
前記送信情報に含まれる前記位置情報に基づいて埋め込まれた前記編集情報を取得するとともに、前記入力ストリームの特性と、前記入力ストリームに埋め込まれた前記特性情報が示す特性とが一致すると判定される場合、前記第２のプログラムを用いて、前記編集情報に基づく編集を前記入力ストリームに対して実行する第２編集工程と
を備えることを特徴とするアプリケーションソフトウェアの保護方法。
【請求項４】
前記埋込工程は、前記特性情報及び前記編集情報に基づいて決定される前記入力ストリーム内の位置に、前記特性情報及び前記編集情報の一部を埋め込み、
前記第１送信工程は、前記入力ストリームに埋め込まれなかった前記編集情報及び前記入力ストリームに埋め込まれなかった前記特性情報、並びに前記位置情報を含む送信情報を送信し、
前記第２編集工程は、前記入力ストリームの特性と前記入力ストリームに埋め込まれた若しくは前記第２のプログラム内の前記送信情報に含まれる前記特性情報が示す特性とが一致する場合、前記第２のプログラムを用いて、前記編集情報に基づく編集を前記入力ストリームに対して実行することを特徴とする請求項３に記載のアプリケーションソフトウェアの保護方法。
【請求項５】
クライアントと、前記クライアント上で実行されるアプリケーションソフトウェアを含む第１のプログラムを、ネットワークを介して前記クライアントへ送信可能なサーバとを備え、
前記クライアントは、前記第１のプログラムを用いて入力ストリームの編集内容を決定する第１編集手段と、前記入力ストリームの特性を示す特性情報及び前記編集内容を示す編集情報を含む送信情報を、前記クライアントから前記サーバへ送信する第１送信手段とを備え、
前記サーバは、前記送信情報を含み、前記入力ストリームに対して前記編集内容を実行する第２のプログラムを生成するプログラム生成手段と、前記第２のプログラムを前記クライアントへ送信する第２送信手段とを備え、
前記クライアントは、前記入力ストリームの特性と前記第２のプログラム内の前記送信情報に含まれる前記特性情報が示す特性とが一致するか否かを判定する判定手段と、前記入力ストリームの特性と、前記第２のプログラム内の前記送信情報に含まれる前記特性情報が示す特性とが一致すると判定される場合、前記第２のプログラムを用いて、前記編集情報に基づく編集を前記入力ストリームに対して実行する第２編集手段を更に備えることを特徴とする編集処理システム。
【請求項６】
サーバ及びクライアントを備え、第１のプログラム及び第２のプログラムを含むアプリケーションソフトウェアが前記サーバからネットワークを介して前記クライアントへと送信されるストリームの編集処理システムであって、
前記クライアントは、前記第１のプログラムを用いて入力ストリームの編集内容を決定する第１編集手段と、前記入力ストリームの特性を示す特性情報及び前記編集内容を示す編集情報に基づいて決定される前記入力ストリーム内の位置に、前記特性情報及び前記編集情報を埋め込む埋込手段と、埋め込まれた前記特性情報及び埋め込まれた前記編集情報の夫々の埋め込み位置を示す位置情報を含む送信情報を、前記クライアントから前記サーバへ送信する第１送信手段とを備え、
前記サーバは、前記送信情報を含み、前記入力ストリームに対して前記編集内容を実行する第２のプログラムを生成するプログラム生成手段と、前記第２のプログラムを前記クライアントへ送信する第２送信手段とを備え、
前記クライアントは、前記送信情報に含まれる前記位置情報に基づいて埋め込まれた前記特性情報を取得するとともに、前記入力ストリームの特性と、前記入力ストリームに埋め込まれた前記特性情報が示す特性とが一致するか否かを判定する判定手段と、前記送信情報に含まれる前記位置情報に基づいて埋め込まれた前記編集情報を取得するとともに、前記入力ストリームの特性と、前記入力ストリームに埋め込まれた前記特性情報が示す特性とが一致すると判定される場合、前記第２のプログラムを用いて、前記編集情報に基づく編集を前記入力ストリームに対して実行する第２編集手段を更に備えることを特徴とする編集処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションソフトウェアの保護方法及びストリームの編集処理システムに関し、例えば、ネットワークを介して送信されるアプリケーションソフトウェアを用いてストリームなどの編集処理を行うストリームの編集処理システムにおけるアプリケーションソフトウェアの保護方法及びこのような保護方法が適用されるストリームの編集処理システムの技術分野に関する。
【背景技術】
【０００２】
ネットワーク経由で送信されるアプリケーションソフトウェアを用いて、クライアント上で処理が実行される情報処理システムにおいては、クライアント側にもデータ（ストリーム）の処理を行う専用のアプリケーションソフトウェアが配置される方式が知られている。特に、アプリケーションソフトウェアを用いて大容量のデータの編集を行う場合、サーバ側で編集処理を行い、編集データを逐一クライアントに送信する構成では、ネットワーク負荷が大きく増大してしまう。他方で、アプリケーションソフトウェアをクライアントに送信し、クライアント上で編集処理を実行させることでネットワーク負荷を軽減させることが出来るため、有効である。
【０００３】
しかしながら、このような方式では、クライアントに送信したアプリケーションソフトウェアがクライアント側で不正に実行され、該アプリケーションソフトウェアの実行結果を得ることが可能となる虞がある。このため、アプリケーションソフトウェアを不正な使用から保護する手段が必要とされている。
【０００４】
従来、アプリケーションソフトウェアを不正な使用から保護する代表的な手法として、クライアントがサーバから認証を受けてから所定期間のみ、該アプリケーションソフトウェアを使用可能とする手法などが知られている。このとき、アプリケーションソフトウェアは、サーバとクライアントとをネットワーク通信によりハンドシェイクさせ、クライアント側でのアプリケーションソフトウェアの実行状況を逐一サーバで認識し得るようにし、上記の保護を実現させている。また、アプリケーションソフトウェアの不正使用に対する保護に関しては、下記の特許文献１及び２などにも記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２４４８２７号公報
【特許文献２】特表２００２−５４３５１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来技術では、サーバから認証信号を送信し、アプリケーションソフトウェアの実行をハンドシェイクによりサーバ側で管理することでアプリケーションソフトウェアの実行を許可する時間を管理している。このため、クライアント側のユーザが擬似サーバを設置し、クライアントに送信されたアプリケーションソフトウェアに対して、擬似サーバから不正な認証信号を送信させることにより、アプリケーションソフトウェアの不正使用が容易に可能となるという問題があった。
【０００７】
特に、編集処理を行うアプリケーションソフトウェアを用いる場合、非正規の入力ストリームに対する非正規な編集処理、正規の入力ストリームに対する非正規な編集処理、または、非正規の入力ストリームに対する正規の編集処理などの不正な使用が考えられる。例えば、ハンドシェイクにより、サーバが入力ストリームの情報を収集し、アプリケーションソフトウェアの実行対象を正規の入力ストリームのみに限定したとしても、該入力ストリームに対して、複数種類の編集処理が実行され得る状態となり、堅固な保護の実現には遠い。
【０００８】
本発明は、例えば上述の技術的な問題に鑑みて為されたものであり、クライアントで実行されるアプリケーションソフトウェアを保護する保護方法及びこのような保護方法が適用されるストリームの編集処理システムを提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、開示のアプリケーションソフトウェアの第１の保護方法によれば、第１編集工程と、第１送信工程と、プログラム生成工程と、第２送信工程と、第２編集工程とを備える。これらの各工程においては、以下に説明する動作が行われる。
【００１０】
先ず、第１編集工程においては、該第１編集工程に先駆けてサーバより送信される第１のプログラムがクライアント上で実行されることで、入力ストリームへの編集内容の決定が行われる。第１編集工程は、例えばクライアント上で実行される。
【００１１】
続く第１送信工程においては、入力ストリームに基づく特性情報及び編集内容を示す編集情報の夫々を含む送信情報が、ネットワークを介してクライアントからサーバへと送信される。第１送信工程は、例えばクライアント上で実行される。
【００１２】
プログラム生成工程においては、クライアントから送信された送信情報を含んでなり、第１編集工程において決定された編集内容を入力ストリームに対して実行する第２のプログラムが生成される。尚、プログラム生成工程は、典型的にはサーバで実行され、生成された第２のプログラムは、第２送信工程において、サーバからクライアントへと送信される。
【００１３】
このような第２のプログラムは、例えば、一の入力ストリームに対し、一の編集内容を実行するために生成されるアプリケーションソフトウェアである。このため、例えば、一の入力ストリームに対し一の編集内容を実行する第２のプログラムには、一の入力ストリームの特性を示す特性情報及び一の編集内容を示す編集情報を含む送信情報が埋め込まれる。尚、第２のプログラムは、複数通りの処理を実行するためのプログラムを含んで構成されていても良く、このとき、第２のプログラムは、送信情報により示されるストリームに対して、編集情報に指定される編集内容を実行する。
【００１４】
第２編集工程においては、先ず、入力ストリームから収集される特性と第２のプログラムに含まれる送信情報に含まれる特性情報とが互いに一致するかが判定される。そして、入力ストリームから収集される特性と第２のプログラムに含まれる送信情報に含まれる特性情報とが互いに一致すると判定される場合、第２のプログラムを用いて、編集情報に基づく編集内容を入力ストリームに実行される。第２編集工程は、例えばクライアント上で実行される。
【００１５】
上記課題を解決するために、開示のアプリケーションソフトウェアの第２の保護方法によれば、第１編集工程と、埋込工程と、第１送信工程と、プログラム生成工程と、第２送信工程と、第２編集工程とを備える。これらの各工程においては、以下に説明する動作が行われる。
【００１６】
先ず、第１編集工程においては、上述の第１の保護方法が備える第１編集工程が行う動作と同様の動作が行われる。
【００１７】
埋込工程においては、入力ストリームの特性を示す特性情報及び編集内容を示す編集情報に基づいて決定される入力ストリーム内の位置に、特性情報及び編集情報が埋め込まれる。埋込工程は、例えばクライアント上で実行される。
【００１８】
続く第１送信工程においては、入力ストリーム内に埋め込まれた前記特性情報及び前記編集情報の夫々の埋め込み位置を示す位置情報を含む送信情報が、ネットワークを介してクライアントからサーバへと送信される。第１送信工程は、例えばクライアント上で実行される。
【００１９】
プログラム生成工程においては、上述の第１の保護方法におけるプログラム生成工程と同様に第２のプログラムが生成される。但し、第２の保護方法においては、例えば一の入力ストリームに対し一の編集内容を実行する第２のプログラムには、一の入力ストリームの特性を示す特性情報及び一の編集内容を示す編集情報の夫々の埋め込み位置を示す送信情報が埋め込まれる。プログラム生成工程は、典型的にはサーバで実行され、生成された第２のプログラムは、第２送信工程において、サーバからクライアントへと送信される。
【００２０】
第２編集工程においては、先ず、送信情報に含まれる位置情報に基づき、入力ストリームに埋め込まれた特性情報及び編集情報が取得される。続いて、入力ストリームから収集される特性と入力ストリームに埋め込まれた特性情報とが互いに一致するかが判定される。そして、入力ストリームから収集される特性と入力ストリームに埋め込まれた特性情報とが互いに一致すると判定される場合、第２のプログラムを用いて、編集情報に基づく編集内容を入力ストリームに実行される。第２編集工程は、例えばクライアント上で実行される。
【００２１】
上記課題を解決するために、開示のストリームの第１の編集処理システムは、クライアント及びサーバを備える。
【００２２】
クライアントは、上述した第１の保護方法が備える第１編集工程において行われる動作と同様の動作を行う第１編集手段と、上述した第１の保護方法が備える第１送信工程において行われる動作と同様の動作を行う第１送信手段と、上述した第１の保護方法が備える第２編集工程において行われる動作と同様の動作を行う第２編集手段とを備える。サーバは、上述した第１の保護方法が備えるプログラム生成工程及び第２送信工程において行われる動作と同様の動作を行うプログラム生成手段及び第２送信手段とを備える。
【００２３】
上記課題を解決するために、開示のストリームの第２の編集処理システムは、クライアント及びサーバを備える。
【００２４】
クライアントは、上述した第２の保護方法が備える第１編集工程において行われる動作と同様の動作を行う第１編集手段と、上述した第２の保護方法が備える埋込工程において行われる動作と同様の動作を行う埋込手段と、上述した第２の保護方法が備える第１送信工程において行われる動作と同様の動作を行う第１送信手段と、上述した第２の保護方法が備える第２編集工程において行われる動作と同様の動作を行う第２編集手段とを備える。サーバは、上述した第２の保護方法が備えるプログラム生成工程及び第２送信工程において行われる動作と同様の動作を行うプログラム生成手段及び第２送信手段とを備える。
【発明の効果】
【００２５】
開示のアプリケーションソフトウェアの第１又は第２の保護方法によれば、第２のプログラムにより収集される入力ストリームの特性と、第１のプログラムにより収集され且つ第２のプログラムに埋め込まれる送信情報に含まれる若しくは入力ストリームに埋め込まれる特性情報が示す特性とが一致するものであるか否かの判定が行われる。そして第２のプログラムは、入力ストリームの特性と送信情報に含まれる若しくは入力ストリームに埋め込まれる特性情報が示す特性とが一致する場合に、入力ストリームに対して編集情報に従って編集処理を実行する。
【００２６】
このため、第１のプログラムにより処理内容が決定される入力ストリームに固有の情報（特性）と、第２のプログラムにおいて編集処理が実行される入力ストリームに固有の情報とが一致する場合に、編集処理が実行される。従って、不正にアプリケーションソフトウェアを入手したユーザが、非正規の入力ストリームに対して編集を実行する場合、２つの固有の情報の不一致により編集処理が実行されず、アプリケーションソフトウェアは不正な使用から保護される。
【００２７】
このように、第２のプログラムに送信情報が埋め込まれるため、第２のプログラムは、第１のプログラムによって決定される一の入力ストリームに対する一の編集内容に限定して処理を実行する構成となっている。このため、例えば、不正に第１のプログラム及び第２のプログラムを入手したとしても、ユーザは所望のストリームに対する所望の編集処理を実行出来ないため、アプリケーションソフトウェアの保護が実現される。
【図面の簡単な説明】
【００２８】
【図１】アプリケーションソフトウェアの保護の第１動作例の処理フローを示す図である。
【図２】固有情報の収集の第１の例を概念的に示す図である。
【図３】固有情報の収集の第２の例を概念的に示す図である。
【図４】固有情報の収集の第３の例を概念的に示す図である。
【図５】図１の処理フローに係る編集情報及び固有情報の埋め込みの態様を概念的に示す図である。
【図６】アプリケーションソフトウェアの保護の第２動作例の処理フローを示す図である。
【図７】アプリケーションソフトウェアの保護方法が適用されるストリームの編集処理システムの構成を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【００３０】
（１）アプリケーションソフトウェアの保護動作
図１及び図２を参照して、本実施形態に係るアプリケーションソフトウェアの保護の第１動作例及び第２動作例の処理の流れについて説明する。
【００３１】
（１−１）第１動作例
図１を参照して、実施形態に係るアプリケーションソフトウェアの保護動作の第１動作例について説明する。図１は、アプリケーションソフトウェアの保護動作の第１動作例における処理フローを示す。
【００３２】
先ず、クライアントＡは、編集処理に用いられる、編集内容を決定するためのアプリケーションソフトウェアを含むプログラムＸの送信リクエストを、サーバＢに送信する（ステップＳ１０１）。サーバＢは、リクエストされたプログラムＸをクライアントＡへと送信する（ステップＳ１０２）。そして、クライアントＡ上において、送信されたプログラムＸが起動され、動作を開始する（ステップＳ１０３）。
【００３３】
プログラムＸが起動されると、プログラムＸによりクライアントＡとサーバＢとの間で認証処理が行われ（ステップＳ１０４及び１０５）、適切なクライアント及びサーバであるか否かが認証される。
【００３４】
続いて、プログラムＸは、クライアントＡに対して入力されると共に編集処理の対象となる入力ストリームＵに対する編集処理内容を決定する（ステップＳ１０６）。その結果、プログラムＸは、編集処理内容を特定するための編集情報Ｅを生成する。この編集情報Ｅは、例えば、編集処理種別（例えば、カット処理や、ペースト処理や、コピー処理や、フェードイン処理や、フェードアウト処理等）を示す操作コードを含んでいる。また、編集情報Ｅは、入力ストリームＵ上の編集処理を開始する編集開始点（例えば、開始点を示すアドレスやタイムポイント等）や、入力ストリームＵ上の編集処理を終了する編集終了点（例えば、終了点を示すアドレスやタイムポイント等）等を示す情報を含んでいる。
【００３５】
また、プログラムＸは、編集情報Ｅの生成と同時に、または相前後して、入力ストリームＵに固有の情報である固有情報Ｉを収集する（ステップＳ１０７）。
【００３６】
ここで、図２から図４を参照して、本実施形態に係るアプリケーションソフトウェアの保護動作において用いられる固有情報Ｉとその収集動作の例について説明する。ここに、図２から図４は、固有情報Ｉの収集を行う動作例を夫々示す概念図である。
【００３７】
固有情報Ｉの第１の例として、入力ストリームＵにおけるフレーム毎のサイズが採用される。プログラムＸは、図２に示されるように、入力ストリームＵにおけるフレーム毎のサイズ（５０、１５、４５、２０、…）をフレーム順に収集する。プログラムＸは、収集された各フレームのサイズを入力ストリームＵにおけるフレーム順に配置して固有情報Ｉを生成する。
【００３８】
固有情報Ｉの第２の例として、入力ストリームＵにおけるフレーム毎の動き量が採用される。プログラムＸは、図３に示されるように、入力ストリームＵにおけるフレーム毎の動き量を、各フレームにおけるマクロブロック毎に収集すると共に加算し、該フレーム毎の動き量の総和（５００、１５０、３５０、７００、…）をフレーム順に収集する。プログラムＸは、収集された各フレームの動き量の総和を入力ストリームＵにおけるフレーム順に配置して固有情報Ｉを生成する。
【００３９】
固有情報Ｉの第３の例として、入力ストリームＵにおけるフレーム毎の輝度の平均値が採用される。プログラムＸは、図４に示されるように、入力ストリームＵにおけるフレーム毎の輝度平均値（１００、１２５、２１０、８５、…）を収集する。プログラムＸは、収集された各フレームの輝度平均値を入力ストリームＵにおけるフレーム順に配置して固有情報Ｉを生成する。
【００４０】
尚、プログラムＸは、後述する固有情報Ｉの埋め込み動作または送信情報Ｖの生成動作において、パケット化された固有情報Ｉを用いた処理を実施する。このとき、プログラムＸは、サイズ情報、動き量の総和または輝度平均値などの固有情報を、元の入力ストリームＵにおけるフレーム毎に分割することで、固有情報Ｉをパケット化する。例えば、図２に示される例では、パケット化された固有情報Ｉの各パケット（Ｉ１、Ｉ２、Ｉ３、Ｉ４、…）には、一のフレームのサイズ（５０、１５、４５、２０、…）が格納されている。
【００４１】
尚、固有情報Ｉとして採用される情報は、上述の例に限定されることはなく、その他適切に入力ストリームＵを他の入力ストリームと判別可能となる情報（例えば、入力ストリームＵに固有の特性を示す情報等）であれば適宜採用されても良い。
【００４２】
再び図１において、次に、プログラムＸは、生成された編集情報Ｅ及び収集された固有情報Ｉの一部または全部を入力ストリームＵ内のｎｕｌｌパケットに埋め込むことで、中間ストリームＵ’を生成する（ステップＳ１０８）。このとき、プログラムＸは、入力ストリームＵ内のｎｕｌｌパケットのうち、編集情報Ｅ及び固有情報Ｉに基づいて決定される位置に夫々の編集情報Ｅ及び固有情報Ｉを埋め込む。また、プログラムＸは、編集情報Ｅ及び固有情報Ｉの夫々の埋め込み位置を示す埋め込み位置情報Ｌを生成する（ステップＳ１０９）。
【００４３】
その後、プログラムＸは、ステップＳ１０８において入力ストリームＵ内に埋め込まれなかった編集情報Ｅ及び固有情報Ｉ（もし存在する場合）と、埋め込み位置情報Ｌとを含む送信情報Ｖを生成する（ステップＳ１１０）。生成される送信情報Ｖは、例えば、埋め込み位置情報Ｌ、フレーム毎の編集情報Ｅ及び固有情報Ｉの連続データとなる。
【００４４】
ここで、図５を参照しながら、入力ストリームＵに対する編集情報Ｅ及び固有情報Ｉの埋め込み動作について説明する。図５は、入力ストリームＵに対する編集情報Ｅ及び固有情報Ｉの埋め込みの態様を概念的に示す図である。
【００４５】
本動作例においては、編集情報Ｅ及び固有情報Ｉは、入力ストリームＵ内のｎｕｌｌパケットであって、編集情報Ｅ及び固有情報Ｉ自身に基づいて決定される位置に埋め込まれる。本動作例では、図５上部に示されるように、編集情報Ｅとして、入力ストリームＵに対して実施される編集処理種別を示す操作コード並びに該編集内容が実施される編集開始点（例えば、開始フレーム）及び編集終了点（例えば、終了フレーム）の夫々を含む情報をパケット化したものが採用されているとする。また、固有情報Ｉとして、入力ストリームＵにおけるフレーム毎の動き量の総和をパケット化したものが採用されているとする。
【００４６】
次に、これらの編集情報Ｅ及び固有情報Ｉに基づく埋め込み位置を決定する方法について説明する。先ず、プログラムＸは、入力ストリームＵ内に含まれるｎｕｌｌパケットの総数Ｎ及び各ｎｕｌｌパケットに埋め込み可能な情報量ｌ＿ｎを検出する。更に、プログラムＸは、各ｎｕｌｌパケットに順番に項番（例えば、ｎｕｌｌ１、ｎｕｌｌ２、ｎｕｌｌ３、…）を付加する。
【００４７】
次に、プログラムＸは、入力ストリームＵ内のｎｕｌｌパケットに埋め込み可能な総情報量Σｌ＿ｎを算出し、該総情報量Σｌ＿ｎを超えない範囲で入力ストリームＵ内のｎｕｌｌパケットに埋め込む情報量を決定する。このとき、総情報量Σｌ＿ｎを超過する編集情報Ｅまたは固有情報Ｉの一部は、図１のステップＳ１１０において送信情報Ｖに含まれる。しかしながら、プログラムＸは、総情報量Σｌ＿ｎより少ない任意の情報量の編集情報Ｅ及び固有情報Ｉを入力ストリームＵ内のｎｕｌｌパケットに埋め込んでも良い。入力ストリームＵ内のｎｕｌｌパケットの内、編集情報Ｅ及び固有情報Ｉが埋め込まれるｎｕｌｌパケットの総数をＮｐ、他方で送信情報Ｖに含まれる編集情報Ｅ及び固有情報Ｉの情報パケット数をＮｖとする。尚、好適には、一のｎｕｌｌパケットに対し、一の編集情報Ｅまたは固有情報Ｉのパケットが埋め込まれることが好ましく、この場合、ＮｐとＮｖの和が、編集情報Ｅ及び固有情報Ｉの総パケット数となる。
【００４８】
続いて、プログラムＸは、編集情報Ｅに含まれる操作コード、開始フレーム及び終了フレームの夫々をパケット毎（つまり、Ｅ１、Ｅ２、…）に加算した処理依存情報ｅ１、ｅ２、…を生成する。例えば、図５では、編集情報Ｅ１に対応する処理依存情報ｅ１が「４３０（＝１０＋６０＋３６０）」であり、編集情報Ｅ２に対応する処理依存情報ｅ２が「１０３５（＝２５＋４８０＋５３０）」であり、編集情報Ｅ３に対応する処理依存情報ｅ３が「１３２６（＝２６＋６２０＋６８０）」であり、編集情報Ｅ４に対応する処理依存情報ｅ４が「７１２（＝１２＋７００）」である例が記載されている。
【００４９】
一方で、プログラムＸは、固有情報Ｉにおけるパケット毎（つまり、Ｉ１、Ｉ２、…）の動き量情報ｍ１、ｍ２、…を収集する。例えば、図５では、固有情報Ｉ１に対応する動き量情報ｍ１が「５００」であり、固有情報Ｉ２に対応する動き量情報ｍ２が「１５０」であり、固有情報Ｉ３に対応する動き量情報ｍ３が「３５０」であり、固有情報Ｉ４に対応する動き量情報ｍ４が「７００」である例が記載されている。
【００５０】
そして、プログラムＸは、（処理依存情報ｅ＋動き量情報ｍ）％（総パケット数（Ｎｐ＋Ｎｖ）−既に埋め込んだパケット数）により埋め込み位置インデックスを算出する。算出される埋め込み位置インデックスは、先頭から順番に編集情報Ｅ及び固有情報Ｉに割り当てられる。そして、編集情報Ｅ及び固有情報Ｉは、埋め込み位置インデックスによって特定される入力ストリームＵ内のｎｕｌｌパケットに埋め込まれていく。かかる埋め込み動作によれば、編集情報Ｅ及び固有情報Ｉに応じて埋め込まれる先の固有のｎｕｌｌパケットの項番が決定される。
【００５１】
このとき、埋め込まれる編集情報Ｅまたは固有情報Ｉに割り当てられる埋め込み位置インデックスが、埋め込みに使用されるｎｕｌｌパケットの項番以下である場合、編集情報Ｅまたは固有情報Ｉは、入力ストリームＵに埋め込まれる。他方で、埋め込まれる編集情報Ｅまたは固有情報Ｉに割り当てられる埋め込み位置インデックスが、埋め込みに使用されるｎｕｌｌパケットの項番より大きい場合は、編集情報Ｅまたは固有情報Ｉは送信情報Ｖに含まれる。例えば、図５では、埋め込み位置インデックスが順に、「１」、「３」、「５」及び「６」と算出される例が開示されている。また、埋め込みに使用されるｎｕｌｌパケットが３つ存在するとする。この場合には、埋め込み位置インデックス「１」に対応する編集情報Ｅ１が、入力ストリームＵのｎｕｌｌ１に埋め込まれる。また、埋め込み位置インデックス「３」に対応する固有情報Ｉ１が、入力ストリームＵのｎｕｌｌ３に埋め込まれる。一方で、埋め込み位置インデックス「５」に対応する編集情報Ｅ２は、送信情報Ｖ中に配置される。また、埋め込み位置インデックス「６」に対応する固有情報Ｉ２は、送信情報Ｖ中に配置される。
【００５２】
また、プログラムＸは、入力ストリームＵ内に埋め込んだ編集情報Ｅ及び固有情報Ｉの位置を埋め込み位置情報Ｌとして生成する。例えば、プログラムＸは、編集情報Ｅ１を示す情報（例えば、情報種別及び項番）と、該編集情報Ｅ１が埋め込まれたｎｕｌｌパケットを示す情報（例えば、項番）とをまとめて含む埋め込み位置情報Ｌ（Ｅ１）を生成する。この埋め込み位置情報Ｌは、送信情報Ｖ中に配置される。つまり、送信情報Ｖは、入力ストリームＵに埋め込まれなかった編集情報Ｅ及び固有情報Ｉ、並びに入力ストリームＵ内のｎｕｌｌパケットに埋め込まれた編集情報Ｅ及び固有情報Ｉの埋め込み位置情報Ｌが順次配置されて生成される。例えば、図５の例では、編集情報Ｅ１及び固有情報Ｉ１が入力ストリームＵに埋め込まれているため、送信情報Ｖ中には、編集情報Ｅ１の埋め込み位置を示す埋め込み位置情報Ｌ（Ｅ１）及び固有情報Ｉ１の埋め込み位置を示すＬ（Ｉ１）が配置され、続いて入力ストリームＵに埋め込まれなかった編集情報Ｅ２、固有情報Ｉ２が配置される。
【００５３】
再び図１において、プログラムＸは、生成した送信情報ＶをサーバＢへと送信し（ステップＳ１１１）、その後に自身の動作を終了する（ステップＳ１１２）
続いて、サーバＢは、受信した送信情報Ｖが埋め込まれた編集処理実行用のアプリケーションソフトウェアを含むプログラムＹを生成する（ステップＳ１１３）。サーバＢは、生成したプログラムＹを、クライアントＡへと送信する（ステップＳ１１４）。そして、クライアントＡ上において、送信されたプログラムＹが起動され、動作を開始する（ステップＳ１１５）。
【００５４】
プログラムＹは、起動後、入力ストリームＵ（または、中間ストリームＵ’）から固有情報Ｉの収集を行う（ステップＳ１１６）。このとき、プログラムＹは、例えば、プログラムＸによるステップＳ１０７と同様の動作で入力ストリームＵから固有情報Ｉを収集する。
【００５５】
続いて、プログラムＹは、送信情報Ｖに含まれる埋め込み位置情報Ｌに基づき、中間ストリームＵ’に埋め込まれる編集情報Ｅ及び固有情報Ｉの取り出しを行う（ステップＳ１１７）。また、プログラムＹは、プログラムＹに埋め込まれる送信情報Ｖから、編集情報Ｅ及び固有情報Ｉの取得を行う（ステップＳ１１８）。尚、ステップＳ１１７において取り出された編集情報Ｅ及び固有情報Ｉと、ステップＳ１１８において取得された編集情報Ｅ及び固有情報Ｉとは、元の編集情報Ｅ及び固有情報Ｉにおける相異なる部分であるため、これらの編集情報Ｅ及び固有情報Ｉより、元の編集情報Ｅ及び固有情報Ｉが復元される。尚、区別のために、ステップＳ１１７及びステップＳ１１８において取得された編集情報Ｅ及び固有情報Ｉ、並びに復元された編集情報Ｅ及び固有情報Ｉについて夫々、編集情報Ｅ’及び固有情報Ｉ’と記載する。
【００５６】
そして、プログラムＹは、ステップＳ１１６において収集された固有情報Ｉと、復元された固有情報Ｉ’とが一致するか否かの判定を行う（ステップＳ１１８）。
【００５７】
固有情報Ｉと固有情報Ｉ’とが一致すると確認される場合、プログラムＹは、入力ストリームＵに対して、編集情報Ｅ’に示される編集内容を実行し、編集ストリームＷとして出力する（ステップＳ１２０）。その後、プログラムＹは、動作を終了する（ステップＳ１２１）。他方で、固有情報Ｉと固有情報Ｉ’とが一致しない場合は、プログラムＹは全ての処理を停止し、動作を終了する。
【００５８】
アプリケーションソフトウェアの保護方法の第１動作例においては、プログラムＸにより収集される入力ストリームの固有情報Ｉと該入力ストリームに対する編集内容を示す編集情報Ｅとの少なくとも一部が、入力ストリームＵに埋め込まれる。他方で、編集情報Ｅ及び固有情報Ｉの他の一部と、入力ストリームＵに埋め込まれる編集情報Ｅ及び固有情報Ｉの埋め込み位置を示す埋め込み位置情報Ｌとが送信情報としてサーバＢに送信され、編集処理の実行のためのプログラムＹに埋め込まれる。プログラムＹは、埋め込み位置情報Ｌに基づいて取り出される固有情報Ｉの一部と送信情報Ｖから取得される固有情報Ｉとから復元される固有情報Ｉ’が、入力ストリームＵ（または、中間ストリームＵ’）から収集される固有情報Ｉと一致しているか否かの判定を行う。そして、一致が確認される場合に、固有情報Ｉ’と同様に、埋め込み位置情報Ｌに基づいて中間ストリームＵ’から取り出される編集情報Ｅと送信情報Ｖから取得される編集情報Ｅとから、編集情報Ｅ’が復元される。そして、プログラムＹは、編集情報Ｅ’に示される編集処理を入力ストリームＵに対して実行する。
【００５９】
入力ストリームＵに埋め込まれる編集情報Ｅ及び固有情報Ｉは、夫々複数のパケットに分割され、各パケットは、入力ストリームＵ内の元の編集情報Ｅ及び固有情報Ｉに基づいて決定される埋め込み位置に再配置される。このため、埋め込み位置情報Ｌを用いずにまたは、非正規の埋め込み位置情報Ｌを用いて編集情報Ｅ及び固有情報Ｉを取り出す場合、各パケットを適切に配置することが出来ず、復元される固有情報Ｉ’は、元の固有情報Ｉと一致しない。
【００６０】
他方で、正しい埋め込み位置情報Ｌを用いて編集情報Ｅ及び固有情報Ｉを取り出す場合、復元される固有情報Ｉ’と入力ストリームＵから収集される固有情報Ｉとが一致する。このとき、復元される編集情報Ｅ’もまた、元の編集情報Ｅと一致するものであるため、該編集情報Ｅ’に示される編集処理を実行することで、ユーザはプログラムＸを用いて決定した所望の編集処理を入力ストリームＵに対して実行出来る。
【００６１】
プログラムＸによれば、入力ストリームＵ内の編集情報Ｅ及び固有情報Ｉの各パケットの埋め込み位置が、元の編集情報Ｅ及び固有情報Ｉに基づいて決定されるため、生成される埋め込み位置情報Ｌは、一の入力ストリームＵ（つまり、固有情報Ｉ）及び一の編集内容（つまり、編集情報Ｅ）に対して固有のものとして決定される。
【００６２】
このため、プログラムＸにおいて生成される埋め込み位置情報Ｌの生成に用いられた入力ストリームＵ及び編集内容とは異なる入力ストリームＵ及び編集内容を対象としてプログラムＹを動作させたとしても、埋め込み位置情報Ｌと実際の埋め込み位置とが異なるため、取り出される固有情報Ｉ’は、固有情報Ｉと一致しない。このとき、プログラムＹは、不正な使用を防止するために動作を終了するため、アプリケーションソフトウェアの保護が実現される。
【００６３】
つまり、埋め込み位置情報Ｌに基づいて取り出される固有情報Ｉ’は、埋め込み位置情報Ｌに依存する情報であり、埋め込み位置情報Ｌが正規のものである場合に、元の固有情報Ｉと一致するものとなる。同様に、埋め込み位置情報Ｌに基づいて取り出される編集情報Ｅ’もまた、埋め込み位置情報Ｌが正規のものである場合に、元の編集情報Ｅと一致するものとなる。このように、アプリケーションソフトウェアに含まれるプログラムＸ及びプログラムＹは、相互に依存する編集情報Ｅ、固有情報Ｉ及び埋め込み位置情報Ｌの整合性を確認することで、入力ストリームＵ及び編集内容が正規のものであるか否かを確認している。このため、アプリケーションソフトウェアは不正な使用から好適に保護される。
【００６４】
加えて、固有情報Ｉは、入力ストリームＵに含まれるデータに固有のものであり、異なる入力ストリーム同士では互いに一致しない。このため、固有情報Ｉの整合を判定することにより、好適に入力ストリームが同一のものであるか否かを判定することが出来る。従って、非正規な入力ストリームに対してのアプリケーションプログラムの不正な使用からの保護がより好適に実現される。
【００６５】
また、中間ストリームＵ’における各ｎｕｌｌパケットの項番と、該ｎｕｌｌパケットに埋め込まれる編集情報Ｅまたは固有情報Ｉの項番とは、上述の規則に基づいて振り分けられている。このため、例えば、埋め込み位置情報Ｌを用いずに編集情報Ｅ及び固有情報Ｉの取り出しを行った場合、項番ごとの適切な配置が行えず、元の編集情報Ｅ及び固有情報Ｉを復元することは困難となる。
【００６６】
（１−２）第２動作例
続いて、図６を参照して、実施形態に係るアプリケーションソフトウェアの保護動作の第２動作例について説明する。図６は、アプリケーションソフトウェアの保護動作の第２動作例における処理フローを示す。
【００６７】
図１に示されるように、アプリケーションソフトウェアの保護は、ネットワークを介してデータの送受信が可能なクライアントＡ及びサーバＢを備える、データ（例えば、ストリーム）の編集処理システム上で実現される。ここでは、クライアントＡにおいて、入力ストリームＵに対して編集を実施する際の動作例について説明する。
【００６８】
先ず、クライアントＡは、編集処理に用いられる、編集内容を決定するためのアプリケーションソフトウェアを含むプログラムＸの送信リクエストを、サーバＢに送信する（ステップＳ２０１）。サーバＢは、リクエストされたプログラムＸをクライアントＡへと送信する（ステップＳ２０２）。そして、クライアントＡ上において、送信されたプログラムＸが起動され、動作を開始する（ステップＳ２０３）。プログラムＸが起動されると、プログラムＸによりクライアントＡとサーバＢとの間で認証処理が行われ（ステップＳ２０４及び２０５）、適切なクライアント及びサーバであるか否かが認証される。つまり、第２動作例におけるステップＳ２０１からステップＳ２０５までの動作は、上述の第１動作例におけるステップＳ１０１からステップＳ１０５までの動作と同様である。
【００６９】
続いて、プログラムＸは、入力ストリームＵに対する編集処理内容を決定する（ステップＳ２０６）。また、プログラムＸは、編集情報Ｅの生成と同時に、または相前後して、入力ストリームＵに固有の情報である固有情報Ｉを収集する（ステップＳ２０７）。尚、第２動作例におけるステップＳ２０６及びステップＳ２０７の動作は、上述の第１動作例におけるステップＳ１０６及びステップＳ１０７の動作と同様である。
【００７０】
続いて、プログラムＸは、生成された編集情報Ｅ及び収集された固有情報Ｉの全てを含む送信情報Ｖを生成する（ステップＳ２０８）。生成される送信情報Ｖは、例えば、フレーム毎の編集情報Ｅ及び固有情報Ｉの連続データとなる。
【００７１】
プログラムＸは、生成した送信情報ＶをサーバＢへと送信し（ステップＳ２０９）、その後に自身の動作を終了する（ステップＳ２１０）
続いて、サーバＢは、受信した送信情報Ｖが埋め込まれた編集処理実行用のアプリケーションソフトウェアを含むプログラムＹを生成する（ステップＳ２１１）。サーバＢは、生成したプログラムＹを、クライアントＡへと送信する（ステップＳ２１２）。そして、クライアントＡ上において、送信されたプログラムＹが起動され、動作を開始する（ステップＳ２１３）。
【００７２】
プログラムＹは、起動後、上述の第１動作例におけるステップＳ１１６の動作と同様に、入力ストリームＵ（言い換えれば、入力ストリームＵと同一の中間ストリームＵ’）から固有情報Ｉの収集を行う（ステップＳ２１４）。このとき、プログラムＹは、例えば、プログラムＸによるステップＳ２０７の動作と同様に入力ストリームＵから固有情報Ｉを収集する。
【００７３】
続いて、プログラムＹは、プログラムＹに埋め込まれる送信情報Ｖから、編集情報Ｅ及び固有情報Ｉの取得を行う（ステップＳ２１５）。この編集情報Ｅは、ステップＳ２０６においてプログラムＸにより生成された後、送信情報Ｖに含まれてサーバＢへと送信されたものである。また、この固有情報Ｉは、ステップＳ２０７においてプログラムＸにより収集された後、送信情報Ｖに含まれてサーバＢへと送信されたものである。尚、区別のために、送信情報Ｖから取得された編集情報Ｅ及び固有情報Ｉを夫々、編集情報Ｅ’及び固有情報Ｉ’と記載する。
【００７４】
そして、プログラムＹは、ステップＳ２１４において収集された固有情報Ｉと、ステップＳ２１５において取得された固有情報Ｉ’とが一致するか否かの判定を行う（ステップＳ２１６）。本動作例においては、送信情報Ｖは、編集情報Ｅ及び固有情報Ｉを全部含んで生成されるため、ステップＳ２１５においては、元の編集情報Ｅ及び固有情報Ｉと同一の編集情報Ｅ’及び固有情報Ｉ’が取得されるはずである。
【００７５】
固有情報Ｉと固有情報Ｉ’とが一致すると確認される場合、プログラムＹは、入力ストリームＵに対して、編集情報Ｅ’に示される編集内容を実行し、編集ストリームＷとして出力する（ステップＳ２１７）。その後、プログラムＹは動作を終了する（ステップＳ２１８）。他方で、固有情報Ｉと固有情報Ｉ’とが一致しない場合は、プログラムＹは全ての処理を停止し、動作を終了する。
【００７６】
アプリケーションソフトウェアの保護の第２動作例では、編集情報Ｅ及び固有情報Ｉは、入力ストリームＵ（言い換えれば、入力ストリームＵと同一の中間ストリームＵ’）には埋め込まれず、全て送信情報ＶとしてサーバＢに送信された後、プログラムＹに埋め込まれる。このため、ユーザは不正にアプリケーションソフトウェアを入手したとしても、非正規のデータを各プログラムに入力することで、不正に処理結果を得ることが出来ない。
【００７７】
編集情報Ｅ及び固有情報Ｉを全部含む送信情報Ｖが埋め込まれるプログラムＹは、該送信情報Ｖから取得される固有情報Ｉ’と一致する固有情報Ｉを有する入力ストリームＵに対して、送信情報Ｖから取得される編集情報Ｅ’に基づく編集処理を実行するための専用のプログラムとなる。つまり、プログラムＹは、一の入力ストリームに対して一の編集処理を実行するためのものとして生成される。このため、例えばユーザが不正な手段でアプリケーションソフトウェアを入手したとしても、非正規の処理（例えば、非正規のストリームに対する正規の編集処理、正規のストリームに対する非正規の編集処理、及び非正規のストリームに対する非正規の編集処理）からアプリケーションソフトウェアが保護される。
【００７８】
（２）入力ストリームの編集処理システムの構成例
図７を参照して、実施形態に係るストリームの保護方法が適用されるストリームの編集処理システムの基本的な構成について説明する。図７は、アプリケーションソフトウェアの保護方法が適用されるストリームの編集処理システム１の構成を示す図である。尚、ストリームの編集処理システム１の各部の動作は、上述したアプリケーションソフトウェアの保護の第１動作例と第２動作例とでは夫々異なるが、本項ではまとめて説明する。
【００７９】
クライアントＡは、ネットワークを介してサーバＢより送信されるアプリケーションソフトウェアであるプログラムＸ及びプログラムＹを実行する情報処理端末であり、例えば動画などのストリームデータの編集作業を実行可能なパーソナルコンピュータなどである。プログラムＸは、当該プログラムＸがクライアントＡ上の不図示のＣＰＵにより実行されることで実現される論理的な処理ブロックとして、情報処理部１１０と、情報生成部１２０を備える。プログラムＹは、当該プログラムＹがクライアントＡ上の不図示のＣＰＵにより実行されることで実現される論理的な処理ブロックとして、情報取得部３１０と、情報収集部３２０と、整合判定部３３０と、編集処理部３４０とを備える。また、プログラムＹには、送信情報Ｖが埋め込まれている。
【００８０】
サーバＢは、プログラムＸの送信を行うプログラム送信部２１０と、プログラムＹの生成及び送信を行うプログラム生成部２２０を備える。
【００８１】
プログラムＸの情報収集部１１０は、情報生成手段の一部を構成する処理ブロックであって、入力ストリームＵの入力を受けて、該入力ストリームＵから固有情報Ｉを収集する。
【００８２】
情報生成部１２０は、第１編集手段と情報生成手段の一部とを構成する処理ブロックであって、例えばユーザの操作により、入力ストリームＵに対する編集内容の入力を受け、該編集内容を示す編集情報Ｅを生成する。
【００８３】
情報生成部１２０は、更に、編集情報Ｅ及び固有情報Ｉから送信情報Ｖを生成する。かかる送信情報Ｖの生成は、上述したアプリケーションソフトウェアの保護の第１動作例と第２動作例とでは異なる方法で行われる。
【００８４】
第１動作例に係る情報生成部１２０は、編集情報Ｅ及び固有情報Ｉを入力ストリームＵに埋め込むことで、中間ストリームＵ’を生成すると共に、埋め込み位置情報Ｌを生成する。このとき、情報生成部１２０は、夫々パケット化された編集情報Ｅ及び固有情報Ｉが、入力ストリームＵ内の元の編集情報Ｅ及び固有情報Ｉに基づいて決定される位置に再配置されるように埋め込みを行う。更に情報生成部１２０は、入力ストリームＵに埋め込まれなかった編集情報Ｅ及び固有情報Ｉのパケットを配置して、送信情報Ｖを生成する。尚、送信情報Ｖにおいて、入力ストリームＵに埋め込まれたパケットについては、該パケットの代わりに該パケットの埋め込み位置を示す埋め込み情報Ｌが埋め込まれる。
【００８５】
他方で、第２動作例に係る情報生成部１２０は、パケット化された編集情報Ｅ及び固有情報Ｉの全てのパケットを配置することで送信情報Ｖを生成する。
【００８６】
また、情報生成部１２０は、生成された送信情報ＶをサーバＢに送信する。尚、プログラムＸは、送信情報Ｖの送信後に好適には動作を終了する。
【００８７】
サーバＢの、プログラム送信部２１０は、クライアントＡから送信されるプログラム送信リクエストを受け、クライアントＡにプログラムＸを送信する。
【００８８】
プログラム生成部２２０は、クライアントＡから送信される送信情報Ｖが埋め込まれるプログラムＹを生成し、クライアントＡに送信する。
【００８９】
プログラムＹの情報取得部３１０は、送信情報Ｖに含まれる編集情報Ｅ及び固有情報Ｉを取得する。尚、取得される編集情報Ｅ及び固有情報Ｉについては、区別のため編集情報Ｅ’及び固有情報Ｉ’と記載する。このとき、上述したアプリケーションソフトウェアの保護の第１動作例では、送信情報Ｖは、編集情報Ｅ及び固有情報Ｉのパケットの一部と、他のパケットの中間ストリームＵ’の内への埋め込み位置を示す埋め込み位置情報Ｌとを含んで構成されている。そこで、第１動作例に係る情報取得部３１０は、送信情報Ｖに含まれない編集情報Ｅ及び固有情報Ｉのパケットの一部については、送信情報Ｖに含まれる埋め込み位置情報Ｌに基づいて中間ストリームＵ’から取り出すことで、編集情報Ｅ’及び固有情報Ｉ’を取得する。他方で、第２動作例に係る情報取得部３１０は、送信情報Ｖ内に配置される各パケットを配置して、編集情報Ｅ’及び固有情報Ｉ’を生成する。
【００９０】
情報収集部３２０は、プログラムＸにおける情報収集部１１０と同様に、入力ストリームＵまたは、中間ストリームＵ’から固有情報Ｉを収集する。
【００９１】
整合判定部３３０は、情報取得部３１０により取得される固有情報Ｉ’と情報収集部３２０により収集される固有情報Ｉとが互いに一致するか否かを判定し、判定結果を編集処理部３４０へと通知する。尚、プログラムＹは、固有情報Ｉ’と固有情報Ｉとが互いに一致しない場合、好適にはプログラムＹ全体の処理を停止し、動作を終了する。
【００９２】
編集処理部３４０は、整合判定部３３０における整合判定の結果、固有情報Ｉ’と固有情報Ｉとが一致する場合に、入力ストリームＵに対し、編集情報Ｅ’に従って編集処理を実行する。そして、編集処理が加えられた編集ストリームＷが生成される。
【００９３】
以上、説明したストリームの編集処理システムにおいては、上述したアプリケーションソフトウェアの保護の第１動作例及び第２動作例のいずれかの方法により、アプリケーションソフトウェアが不正な使用から保護される。
【００９４】
本発明は、上述した実施例に限られるものではなく、請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴なうアプリケーションソフトウェアの保護方法及びストリームの編集処理システムもまた本発明の技術的範囲に含まれるものである。
【符号の説明】
【００９５】
Ａ  クライアント、
Ｂ  サーバ、
Ｅ、Ｅ’  編集情報、
Ｉ、Ｉ’  固有情報、
Ｌ  埋め込み位置情報、
Ｕ  入力ストリーム
Ｕ’  中間ストリーム
Ｖ  送信情報
Ｘ、Ｙ  プログラム、
【図１】
0005621250.tif 000002
【図２】
0005621250.tif 000003
【図３】
0005621250.tif 000004
【図４】
0005621250.tif 000005
【図５】
0005621250.tif 000006
【図６】
0005621250.tif 000007
【図７】
0005621250.tif 000008