(57)【要約】【課題】Ｗｅｂ画像が配信過程において不正漏洩する可能性を抑制することができる画像配信技術を提供する。【解決手段】本発明に係る画像配信プログラムは、画像データを分割して分割画像データを生成するとともにそのダミー分割画像データを生成し、前記分割画像データと前記ダミー分割画像データを併せて配信するとともに、前記分割画像データのみをＷｅｂブラウザ上で画面表示するスクリプトを併せて配信する。【選択図】図１
2017151873.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂブラウザに対して画像データを配信する処理をコンピュータに実行させる画像配信プログラムであって、前記コンピュータに、
前記画像データを配信するよう要求するリクエストを前記Ｗｅｂブラウザから受け取るステップ、
前記画像データが表す画像を複数の分割画像へ分割することにより複数の分割画像データを生成するステップ、
前記複数の分割画像のうち少なくともいずれかについて前記分割画像とは異なる画像を表すダミー分割画像データを生成するステップ、
前記分割画像データのアドレスと前記ダミー分割画像データのアドレスを列挙したリストを、前記Ｗｅｂブラウザが前記リクエストに対する応答を画面描画する際に前記Ｗｅｂブラウザ上で実行されるスクリプトのなかに記述するステップ、
前記リストのなかから前記分割画像データを特定するために用いるパラメータを前記スクリプトのなかに記述するステップ、
前記Ｗｅｂブラウザが前記リクエストに対する応答を画面描画が完了するまでの間に、前記リストが列挙しているアドレスに対してアクセスすることにより、前記分割画像データと前記ダミー分割画像データをダウンロードする処理を、前記スクリプトのなかに記述するステップ、
前記Ｗｅｂブラウザが前記リクエストに対する応答を画面描画する際に、前記パラメータによって特定される前記分割画像データを画面表示するＨＴＭＬタグを動的に追加する処理を、前記スクリプトのなかに記述するステップ、
前記スクリプトを含むレスポンスを前記リクエストに対する応答として前記Ｗｅｂブラウザに対して送信するステップ、
を実行させることを特徴とする画像配信プログラム。
【請求項２】
前記画像配信プログラムは、前記コンピュータに、
前記分割画像データと前記ダミー分割画像データとして、画像をテキストにエンコードしたデータを生成させ、
前記画像配信プログラムは、前記コンピュータに、
前記エンコードによって生成されたテキストを前記ＨＴＭＬタグに対応する画像のソースとして指定する処理を、前記スクリプトのなかに記述させる
ことを特徴とする請求項１記載の画像配信プログラム。
【請求項３】
前記画像配信プログラムは、前記コンピュータに、
前記複数の分割画像データの間で共通の数値の倍数を各前記分割画像データのファイル名として割り当てさせ、
前記画像配信プログラムは、前記コンピュータに、
前記共通の数値を、前記パラメータとして前記スクリプトのなかに記述させる
ことを特徴とする請求項１記載の画像配信プログラム。
【請求項４】
前記画像配信プログラムは、前記コンピュータに、
前記分割画像データを列挙した分割画像リストを、前記パラメータとして前記スクリプトのなかに記述させる
ことを特徴とする請求項１記載の画像配信プログラム。
【請求項５】
前記画像配信プログラムは、前記コンピュータに、
前記複数の分割画像データのうち少なくともいずれかを複製するとともに、複製した前記分割画像データをさらに分割して並び替えることにより、前記ダミー分割画像データを生成させる
ことを特徴とする請求項１記載の画像配信プログラム。
【請求項６】
前記画像配信プログラムは、前記コンピュータに、
前記画像データのサイズに応じてあらかじめ定められた係数、前記画像データのファイルシステム上のパスに応じてあらかじめ定められた係数、のうち少なくともいずれかを用いて、前記複数の分割画像データ間で共通のピクセルサイズを算出させ、
前記画像配信プログラムは、前記コンピュータに、
前記共通のピクセルサイズを有する前記分割画像データを生成させる
ことを特徴とする請求項１記載の画像配信プログラム。
【請求項７】
前記画像配信プログラムは、前記コンピュータに、
前記画像データのピクセルサイズが前記共通のピクセルサイズによって割り切れない場合は、前記分割画像データに対してブランク画像をパディングすることにより割り切れるようにピクセルサイズを調整するか、
または、
前記複数の分割画像データのうちいずれかのピクセルサイズを他の前記分割画像データのピクセルサイズとは異なる数値にセットすることにより割り切れるようにピクセルサイズを調整する
ことを特徴とする請求項６記載の画像配信プログラム。
【請求項８】
請求項１から７のいずれか１項記載の画像配信プログラムを実行するＷｅｂサーバ、
前記Ｗｅｂサーバに対して前記リクエストを発行する前記Ｗｅｂブラウザを実行するクライアント端末、
を有することを特徴とする画像配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂブラウザに対して画像データを配信する技術に関する。
【背景技術】
【０００２】
Ｗｅｂサーバ上の不正利用防止やセキュリティ向上のため、ＷＷＷサーバに対するアクセスを制限する技術が存在する。例えば下記特許文献１は、『携帯情報端末で指定されたＷＷＷサーバ上のデータを不正利用の防止やセキュリティの向上を図りつつ好適に印刷することができる画像形成装置及び画像形成装置の制御方法を提供する。』ことを目的とした技術として、『携帯情報端末で指定されたアクセス先情報を受信し、アクセス判定部１０８がアクセス先情報で指定されるネットワーク上のＷＷＷサーバにアクセス可能かどうかを判定する。そして、アクセス可能と判定された場合は、ネットワーク通信部１０７を介してＷＷＷサーバにアクセスしてデータを取得し、画像処理部１０９で当該データを印刷する。一方、アクセス不可能と判定された場合は、ネットワーク通信部１０７を介して携帯情報端末にアクセス不可能であることを通知する。』というものを記載している（要約参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１４１２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般にＷｅｂコンテンツは、Ｗｅｂサーバから発信され、複数のネットワーク装置（ルータ、プロキシサーバなど）を経由して、Ｗｅｂクライアント端末が実行するＷｅｂブラウザまで配信される。仮にＷｅｂブラウザのユーザがＷｅｂコンテンツに対して適正なアクセス権限を有していたとしても、配信過程においていずれかのネットワーク装置がＷｅｂコンテンツをキャッシュ（一時保存）することにより、そのキャッシュから当該Ｗｅｂコンテンツが不正漏洩する可能性が生じる。
【０００５】
本発明は、上記のような課題に鑑みてなされたものであり、Ｗｅｂ画像が配信過程において不正漏洩する可能性を抑制することができる画像配信技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る画像配信プログラムは、画像データを分割して分割画像データを生成するとともにそのダミー分割画像データを生成し、前記分割画像データと前記ダミー分割画像データを併せて配信するとともに、前記分割画像データのみをＷｅｂブラウザ上で画面表示するスクリプトを併せて配信する。
【発明の効果】
【０００７】
本発明に係る画像配信プログラムによれば、分割画像データとダミー分割画像データを併せて配信することにより、仮に配信過程においてデータが漏洩しても、元の画像データを復元することは困難となる。これにより、不正利用を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】画像配信システム１０００の構成図である。
【図２】画像配信システム１０００の動作を説明するフローチャートである。
【図３】分割画像データ１２２のイメージ図である。
【図４】画像データ１２１のピクセルサイズが分割基数によって割り切れない場合におけるサイズ調整を説明する図である。
【図５】ブランク画像をパディングした例である。
【図６】分割画像データ１２２に対して画像番号を割り当てた様子を示すイメージ図である。
【図７】ダミー分割画像データ１２３を生成する様子を示す図である。
【図８】ダミー分割画像データ１２３を生成する工程を示す図である。
【図９】ダミー分割画像データ１２３を生成する次工程を示す図である。
【図１０】ダミー番号を割り当てる過程を説明する図である。
【図１１】画像配信プログラム１１１がＷｅｂブラウザ２１１に対して返信するレスポンスの雛形である。
【図１２】スクリプト生成プログラム１１３が生成するスクリプトである。
【図１３】Ｗｅｂブラウザ２１１がスクリプトを実行した結果としてＷｅｂブラウザ２１１の内部において生成されるＨＴＭＬソースコードである。
【発明を実施するための形態】
【０００９】
＜本発明のシステム構成＞
図１は、本発明に係る画像配信システム１０００の構成図である。画像配信システム１０００は、Ｗｅｂサーバ１００とクライアント端末２００がネットワーク３００（例えばインターネット）を介して接続された構成を有する。
【００１０】
クライアント端末２００が備えるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１０は、Ｗｅｂブラウザ２１１を実行することにより、Ｗｅｂサーバ１００に対して画像を配信するよう要求するリクエストを発行する。以下では説明の便宜上、Ｗｅｂブラウザ２１１などの各プログラムを動作主体として記載する場合があるが、実際にこれらプログラムを実行するのはＣＰＵ２１０などの演算装置である。
【００１１】
Ｗｅｂサーバ１００は、ＣＰＵ１１０と記憶装置１２０を備える。ＣＰＵ１１０は、画像配信プログラム１１１、画像分割プログラム１１２、スクリプト生成プログラム１１３を実行する。これらプログラムは一体的に構成してもよいが、以下では説明の便宜上、画像配信プログラム１１１の配下にその他プログラムが配置され協調動作するものとする。これらプログラムは、記憶装置１２０内に格納することもできるし、その他適当な記憶装置に格納することもできる。
【００１２】
画像配信プログラム１１１は、ＨＴＴＰサーバの一部として構成され、またはＨＴＴＰサーバの配下で動作するプログラムであり、Ｗｅｂブラウザ２１１から画像を配信するよう要求するリクエストを受け付けてこれに対する応答として後述する処理を実施する。これらプログラムの詳細動作については後述する。
【００１３】
記憶装置１２０は、画像データ１２１、分割画像データ１２２、ダミー分割画像データ１２３を格納する。画像データ１２１は、Ｗｅｂブラウザ２１１が配信するよう要求する画像データである。その他データについては後述する。
【００１４】
＜本発明の基本的考え方＞
Ｗｅｂサーバ１００からＷｅｂブラウザ２１１に対して画像データ１２１を配信する際に、画像データ１２１はネットワーク３００上の様々なネットワーク装置を経由する。その過程においてネットワーク装置は配信効率を高めるために画像データ１２１をローカルキャッシュとして一時的に保持する場合がある。そうするとこのキャッシュから画像データ１２１が不正漏洩する可能性がある。
【００１５】
そこで画像分割プログラム１１２は、画像データ１２１を複数のピースに分割することにより複数の分割画像データ１２２を生成し、さらに少なくともいずれかの分割画像データ１２２のダミーとしてダミー分割画像データ１２３を生成する。画像配信プログラム１１１は、これらをまとめてＷｅｂブラウザ２１１に対して配信する。これにより、Ｗｅｂブラウザ２１１が画像データ１２１を配信するよう要求するリクエストに対する応答として、分割画像データ１２２とダミー分割画像データ１２３が混在して配信されることになるので、仮にローカルキャッシュから配信途中のデータが漏洩したとしても、元の画像データ１２１を復元することは困難となり、セキュリティを高めることができる。
【００１６】
ただしＷｅｂブラウザ２１１が分割画像データ１２２とダミー分割画像データ１２３の混在のなかから分割画像データ１２２およびその正しい並び順を特定して元の画像データ１２１を画面表示できるようにするためには、Ｗｅｂブラウザ２１１がその特定を実施するために必要なパラメータを併せて配信する必要がある。そこでスクリプト生成プログラム１１３は、そのパラメータを記述したスクリプトを生成し、画像配信プログラム１１１は分割画像データ１２２およびダミー分割画像データ１２３と併せてそのスクリプトを配信する。Ｗｅｂブラウザ２１１は、リクエストに対する応答を画面表示する際にそのスクリプトを実行することにより、分割画像データ１２２とダミー分割画像データ１２３が混在するなかから分割画像データ１２２のみを特定し、これを画面表示することができる。
【００１７】
ＷｅｂコンテンツはＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）によって配信されるところ、ＨＴＴＰはセッションレスプロトコルであるので、１つのＷｅｂコンテンツに対する配信リクエストとその応答は、Ｗｅｂブラウザ２１１とＷｅｂサーバ１００との間の１往復通信のみによって実施する必要がある。本発明においては、Ｗｅｂブラウザ２１１としては単一のＵＲＬに対するリクエストを発行しているにも関わらず、画像配信プログラム１１１としては上記手順を実現するため、分割画像データ１２２／ダミー分割画像データ１２３／上記スクリプトを全て１往復の応答により配信完結する必要がある。
【００１８】
そこで本発明においては、Ｗｅｂブラウザ２１１がＷｅｂサーバ１００からの応答を画面表示する際に、分割画像データ１２２とダミー分割画像データ１２３に対するリクエストを並行して発行できるようにするため、スクリプト生成プログラム１１３はその平行リクエストを発行する処理をスクリプト内に併せて記述する。詳細は後述する。
【００１９】
スクリプト生成プログラム１１３は、Ｗｅｂブラウザ２１１が応答を画面表示するときに分割画像データ１２２をページ内に画面表示するタグを動的生成する処理を、スクリプト内に記述する。これにより、分割画像データ１２２の個数によらず、画面上では画像データ１２１を復元したかのような外観を得ることができる。詳細は後述する。
【００２０】
画像分割プログラム１１２は、分割画像データ１２２とダミー分割画像データ１２３を生成すると、これらを例えばｂａｓｅ６４などの方式によりテキストデータにエンコードした上で、記憶装置１２０に格納する。これはＨＴＭＬのＩＭＧタグのｓｒｃ属性としてバイナリデータを指定できないからである。詳細は後述する。
【００２１】
＜本発明のシステム動作＞
図２は、画像配信システム１０００の動作を説明するフローチャートである。以下図２の各ステップについて説明する。
【００２２】
（図２：ステップＳ２００）
Ｗｅｂブラウザ２１１は、Ｗｅｂサーバ１００に対して、画像データを配信するよう要求するリクエストを発行する。具体的には、Ｗｅｂサーバ１００は画像一覧のリストをＨＴＭＬ形式で配信しており、Ｗｅｂブラウザ２１１はそのなかのいずれかのリンクを選択することにより、リクエストを発行する。当該リンクは、例えばＪＳＰ（Ｊａｖａ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ）などのサーバプログラムによって構成されており、画像データ１２１を指定するパラメータ（例えばファイルパス）によって、配信すべき画像データを指定するように構成されている。このサーバプログラムを介して画像配信プログラム１１１が呼び出される（もしくは画像配信プログラム１１１自身が当該サーバプログラムとして構成されている）。画像配信プログラム１１１は、以下のステップにおいてその他プログラムを適宜呼び出す。
【００２３】
（図２：ステップＳ２０１）
画像分割プログラム１１２は、分割基数を決定する。分割基数とは、画像データ１２１を何個の分割画像データ１２２へ分割するかの基準となる数値である。分割基数は、例えば以下に説明するサイズ係数と重要度係数を用いて算出することができる。これら算出ルールは、例えばＷｅｂサーバ１００の設定ファイルとしてあらかじめ定義しておくことができる。
【００２４】
（図２：ステップＳ２０１：サイズ係数）
分割基数が大きくなると、分割画像データ１２２の個数が増えるので、ネットワーク負荷、画像分割プログラム１１２の演算負荷、Ｗｅｂブラウザ２１１の演算負荷などが増加してシステムパフォーマンスが低下する。そこで、画像データ１２１のデータサイズに応じてサイズ係数を変更する。例えば画像データ１２１が５００Ｋｂｙｔｅ以上である場合はサイズ係数＝１とし、それ未満である場合はサイズ係数＝２とする。
【００２５】
（図２：ステップＳ２０１：重要度係数）
画像データ１２１の重要度が高い場合は、より多くの分割画像データ１２２を生成して保護性を高めることが望ましい。例えば重要画像は重要度係数＝８とし、それ以外の画像は重要度係数＝４とする。画像データ１２１が重要画像であるか否かは、例えばステップＳ２００においてＷｅｂブラウザ２１１が指定する画像データ１２１のファイルパスによって判断することができる。例えばファイルパス内に文字列「ｓｅｃ」が含まれている場合は重要画像とみなす、などが考えられる。
【００２６】
（図２：ステップＳ２０１：計算例）
分割基数は、例えばサイズ係数と重要度係数を乗算することによって求める。５００Ｋｂｙｔｅ未満の重要画像であれば、分割基数＝２×８＝１６となる。画像データ１２１の横画素数が１０２４であり、縦画素数が２０４８である場合、分割画像データ１２２の横画素数は１０２４／１６＝６４ピクセルとなり、縦画素数は２０４８／１６＝１２８ピクセルとなる。
【００２７】
（図２：ステップＳ２０２）
画像分割プログラム１１２は、画像基準番号を決定する。画像基準番号とは、Ｗｅｂブラウザ２１１が分割画像データ１２２とダミー分割画像データ１２３のリストのなかから分割画像データ１２２を抽出するために用いる数値である。具体的な抽出処理については後述する。画像番号は、例えば以下の手順によって算出することができる。
【００２８】
（図２：ステップＳ２０２：計算例）
画像分割プログラム１１２は、画像データ１２１のファイルサイズの各桁を合計する。例えばファイルサイズが７６４２０ｂｙｔｅであれば、７＋６＋４＋２＋０＝１９となる。画像分割プログラム１１２は、その合計に対して１〜９までのランダム値を加えた数を１００で割った余りを、画像基準番号とする。例えばランダム値が２であれば、画像基準番号＝２１となる。余りが０〜１０である場合は、さらに１１を加える。その結果、画像基準番号は１１〜９９のいずれかとなる。
【００２９】
（図２：ステップＳ２０３）
画像分割プログラム１１２は、ステップＳ２０１において算出した分割基数にしたがって、画像データ１２１を分割することにより、分割画像データ１２２を生成する。画像データ１２１の縦画素数または横画素数が分割基数によって割り切れない場合は、１６番目の分割画像データ１２２のピクセルサイズを調整するか、またはブランク画像をパディングして補間することにより、分割基数で割り切れるようにする。これら処理はいずれを用いてもよいし、画像データ１２１ごとにランダムに選択してもよい。本ステップの処理イメージについては後述の図３〜図５を用いて改めて説明する。
【００３０】
（図２：ステップＳ２０３：補足）
画像分割プログラム１１２は、画像データ１２１を分割することにより個々の分割画像データ１２２を生成し、さらにこれをテキストデータにエンコードする。ダミー分割画像データ１２３についても同様にエンコードしてもよい。エンコードする理由については後述する。
【００３１】
（図２：ステップＳ２０４）
画像分割プログラム１１２は、ステップＳ２０３において生成した各分割画像データ１２２に対して、画像番号を割り当てる。画像番号とは、Ｗｅｂブラウザ２１１が分割画像データ１２２とダミー分割画像データ１２３を併せてダウンロードした後、分割画像データ１２２のみを抽出するために用いる番号である。本ステップの詳細については後述の図６を用いて改めて説明する。
【００３２】
（図２：ステップＳ２０５）
画像分割プログラム１１２は、分割画像データ１２２からダミー分割画像データ１２３を生成する。本ステップの詳細については後述の図７〜図９を用いて改めて説明する。
【００３３】
（図２：ステップＳ２０６）
画像分割プログラム１１２は、ステップＳ２０５において生成した各ダミー分割画像データ１２３に対して、画像番号（区別のため以下ではダミー番号と呼ぶ）を割り当てる。本ステップの詳細については後述の図１０を用いて改めて説明する。
【００３４】
（図２：ステップＳ２０７）
スクリプト生成プログラム１１３は、Ｗｅｂブラウザ２１１が応答を画面表示するとき実行するスクリプトを生成する。例えばＪａｖａＳｃｒｉｐｔなどのスクリプト言語を用いることができるが、これに限らずＷｅｂブラウザ２１１が実行できるものであれば任意のスクリプト言語を用いることができる。本ステップの具体例については後述の図１１〜図１２を用いて改めて説明する。
【００３５】
（図２：ステップＳ２０８）
画像配信プログラム１１１は、後述の図１１〜図１３で説明するレスポンスを、リクエストに対する応答としてＷｅｂブラウザ２１１に対して送信する。
【００３６】
図３は、分割画像データ１２２のイメージ図である。Ｓ２０１において説明した計算例の場合、１つの分割画像データ１２２は横６４ピクセル×縦１２８ピクセルとなる。縦横それぞれに１６個の分割画像データ１２２が生成され、結果として１６×１６＝２５６の分割画像データ１２２が生成されることになる。画像データ１２１の縦横いずれかのピクセルサイズが分割基数またはそれ未満である場合は、分割対象外とする。
【００３７】
図４は、画像データ１２１のピクセルサイズが分割基数によって割り切れない場合におけるサイズ調整を説明する図である。ここでは画像データ１２１のピクセルサイズが１８００×３４００ピクセルである例を示した。
【００３８】
分割画像データ１２２の横サイズは、１番目から１５番目までは１１２ピクセルとし、１６番目のみ１２０ピクセルとする。これにより、１１２×１５＋１２０＝１８００ピクセルとなる。分割画像データ１２２の縦サイズは、１番目から１５番目までは２１２ピクセルとし、１６番目のみ２２０ピクセルとする。これにより、２１２×１５＋２２０＝３４００ピクセルとなる。
【００３９】
図５は、ブランク画像をパディングした例である。ここでは図４と同じ画像データ１２１を例示した。図５において、分割画像データ１２２の横サイズは１１３ピクセルとする。これにより、１１３×１６＝１８０８ピクセルとなって画像データ１２１の横サイズを超過するので、超過した８ピクセルについてはブランク画像をパディングする。分割画像データ１２２の縦サイズは２１３ピクセルとする。これにより、２１３×１６＝３４０８ピクセルとなって画像データ１２１の縦サイズを超過するので、超過した８ピクセルについてはブランク画像をパディングする。
【００４０】
図６は、分割画像データ１２２に対して画像番号を割り当てた様子を示すイメージ図である。画像分割プログラム１１２は、Ｓ２０２において求めた画像基準番号を順次加算することにより、各分割画像データ１２２に対して画像番号を割り当てる。例えば最初の分割画像データ１２２の画像番号は２１であり、次は４２である。画像分割プログラム１１２は、この画像番号を各分割画像データ１２２のファイル名としてセットした上で、記憶装置１２０に格納する。
【００４１】
画像配信プログラム１１１は、互いに異なる画像データ１２１に対して平行して配信リクエストを受け付ける場合もある。この場合、各分割画像データ１２２がいずれの画像データ１２１から生成されたのか区別するため、ファイル名に対してさらにランダム文字列を付加してもよい。例えば最初の分割画像データ１２２のファイル名は”ａｘｇｄｇａｉｄｇｐｏｉ００００００００２１．ｔｘｔ”、次は”ａｘｇｄｇａｉｄｇｐｏｉ００００００００４２．ｔｘｔ”、などとすることができる。別の画像データ１２１から生成した分割画像については、最初のランダム文字列が異なるので、区別することができる。
【００４２】
図７は、ダミー分割画像データ１２３を生成する様子を示す図である。ダミー分割画像データ１２３の個数は、性能要件やシステム要件に応じてあらかじめＷｅｂサーバ１００の設定ファイルなどにダミー係数などのパラメータとして定義しておくことができる。
【００４３】
ダミー係数が１である場合（図７の（ｂ））、１つの分割画像データ１２２から１つのダミー分割画像データ１２３を生成する。ダミー係数が２以上である場合（図７の（ｃ））、１つの分割画像データ１２２から２以上のダミー分割画像データ１２３を生成する。例えばダミー係数＝３であれば１つの分割画像データ１２２から３つのダミー分割画像データ１２３を生成する。ダミー係数が１未満である場合（図７の（ａ））、２以上の分割画像データ１２２のなかからいずれか１つを選択してその選択した分割画像データ１２２からダミー分割画像データ１２３を生成する。例えばダミー係数＝０．２５であれば４つの分割画像データ１２２のうちいずれか１つのダミー分割画像データ１２３を生成する。
【００４４】
図８は、ダミー分割画像データ１２３を生成する工程を示す図である。画像分割プログラム１１２は、分割画像データ１２２に対して”左右反転“、”上下反転“、”上下左右反転“のいずれかを実施することにより、図８のような画像を生成する。３つの処理のうちいずれを実施するかは、分割画像データ１２２ごとにランダムに選択する。
【００４５】
図９は、ダミー分割画像データを生成する次工程を示す図である。画像分割プログラム１１２は、図８のいずれかによって生成した画像を中心から４分割し、その並び順を左回転または右回転させて順序を入れ替える。これによりダミー分割画像データ１２３が生成される。左回転／右回転いずれを実施するかは、ダミー分割画像データ１２３ごとにランダムに選択する。
【００４６】
図１０は、ダミー番号を割り当てる過程を説明する図である。画像分割プログラム１１２は、ダミー分割画像データ１２３を生成する元になった分割画像データ１２２の画像番号を基準として、当該ダミー分割画像データ１２３に対してダミー番号を割り当てる。例えば画像番号＝６３の分割画像データ１２２からダミー分割画像データ１２３を生成した場合、４３〜８３（ただし６３を除く）のなかでいずれかをダミー番号としてランダムに割り当てる。ダミー分割画像データ１２３同士でダミー番号が重なる場合、改めてランダムに再割当する。
【００４７】
図１１は、画像配信プログラム１１１がＷｅｂブラウザ２１１に対して返信するレスポンスの雛形である。図１１のコメントアウトしている部分には、スクリプト生成プログラム１１３が生成したスクリプトを挿入する。Ｗｅｂブラウザ２１１は、Ｗｅｂサーバ１００に対するリクエストの応答として、図１１に対してスクリプトを埋め込んだものを受け取る。ｂｏｄｙタグのｏｎｌｏａｄ属性により、Ｗｅｂブラウザ２１１が同応答を画面表示するとき、最初にｉｎｉｔ（）関数を実行するように指定されている。
【００４８】
図１２は、スクリプト生成プログラム１１３が生成するスクリプトである。以下図１２に示すソースコードの各部について説明する。記載の便宜上、スクリプトの文法をやや簡略化するとともに、一部のソースコードについては記載を省略しているが、当業者であれば正しいスクリプトを記述することは容易である。
【００４９】
ソースコード１２０１は、スクリプト全体で用いる変数を定義する部分である。ｉｍｇＡｒｒａｙは、分割画像データ１２２のＵＲＬとダミー分割画像データ１２３のＵＲＬを全て格納するための配列である。ｔｘｔＡｒｒａｙは、これらデータが記述している内容（すなわち画像をテキストデータにエンコードした結果）を格納するための配列である。ｈｔｔｐＯｂｊは、Ｗｅｂブラウザ２１１が図１１の応答を画面表示する処理と並行して分割画像データ１２２のＵＲＬとダミー分割画像データ１２３のＵＲＬそれぞれからこれらデータをダウンロードするためのオブジェクトである。ｉＩＭｇＮｕｍｂｅｒＢａｓｅは、Ｓ２０２において算出した画像基準番号である。
【００５０】
ソースコード１２０２は、分割画像データ１２２のＵＲＬとダミー分割画像データ１２３のＵＲＬをｉｍｇＡｒｒａｙへ格納する処理である。各画像データのファイル名は、Ｓ２０４とＳ２０６において割り当てられたものである。ｉｍｇＡｒｒａｙは、分割画像データ１２２のＵＲＬとダミー分割画像データ１２３のＵＲＬを併せて格納する。例えばｉｍｇＡｒｒａｙ［２］は、１つ目のダミー分割画像データ１２３のＵＲＬである。
【００５１】
ソースコード１２０３は、ｈｔｔｐＯｂｊを用いて各ＵＲＬから分割画像データ１２２とダミー分割画像データ１２３をダウンロードする処理である。Ｗｅｂブラウザ２１１は本来であればＳ２００において発行したリクエストに対して応答を受け取った時点でそのリクエストの処理を終了するが、ＪａｖａＳｃｒｉｐｔ言語におけるＸｍｌＨｔｔｐＲｅｑｕｅｓｔなどのオブジェクトを用いることにより、さらに別のリクエストを、応答画面表示と平行して発行することができる。ソースコード１２０３により、分割画像データ１２２とダミー分割画像データ１２３が全て、Ｗｅｂサーバ１００からＷｅｂブラウザ２１１に対してダウンロードされる。すなわち、本来の画像データ１２１とダミー分割画像データ１２３が混在したタイリング画像がダウンロードされる。
【００５２】
ソースコード１２０４は、図１１のｄｉｖタグを特定するためのものである。以下のソースコード１２０５により、この部分にｉｍｇタグを順次追加し、分割画像データ１２２を順次画面表示する。
【００５３】
ソースコード１２０５は、ｉｍｇタグを動的に追加する処理である。図１１のｄｉｖタグには何らコンテンツが記述されていないが、本処理によりｉｍｇタグが動的に追加される。ただし追加するのは分割画像データ１２２に対応するｉｍｇタグのみであり、ダミー分割画像データ１２３はスキップする。ｔｘｔＡｒｒａｙの各要素のうちいずれが分割画像データ１２２であるかについては、画像基準番号ｉＩＭｇｕｍｂｅｒＢａｓｅによって特定することができるので、ダミー分割画像データ１２３に相当する番号をスキップすればよい。あるいは初めから分割画像データ１２２に対応するｉｍｇタグを追加する処理のみを、本スクリプトに記述するようにしてもよい。
【００５４】
ソースコード１２０５において追加するｉｍｇタグのｓｒｃ属性には、ｔｘｔＡｒｒａｙが格納しているｂａｓｅ６４エンコードされた生のテキストデータをセットする。いったんテキストにエンコードしてからこれをｓｒｃ属性として追加するのは、以下の理由による。
【００５５】
分割画像データ１２２をテキストにエンコードすることなく、画像データ（すなわちバイナリデータ）のままダウンロードすることも考えられる。しかしＨＴＭＬの仕様としてｉｍｇタグのｓｒｃ属性にバイナリデータをセットすることはできず、通常はｂａｓｅ６４によりテキストエンコードされたデータのみがサポートされている。したがって、Ｓ２０３において分割画像データ１２２をテキストエンコードすることとした。
【００５６】
ｉｍｇタグのｓｒｃ属性として、分割画像データ１２２のＵＲＬそのものを指定することも考えられる。しかしそうすると、ｉｍｇタグを追加する過程において分割画像データ１２２のみが順次ダウンロードされることになり、ダミー分割画像データ１２３を混在させた意義が減殺される。したがって、ｓｒｃ属性としてＵＲＬそのものを指定することは望ましくない。
【００５７】
図１３は、Ｗｅｂブラウザ２１１がスクリプトを実行した結果としてＷｅｂブラウザ２１１の内部において生成されるＨＴＭＬソースコードである。ソースコード１２０５の結果により、各分割画像データ１２２を画面表示するためのｉｍｇタグが動的に追加されており、ｓｒｃ属性としてはｂａｓｅ６４の生テキストコードが記述されている。Ｗｅｂブラウザ２１１がこれを画面表示すると、外観上は画像データ１２１が画面表示されることになる。各ｉｍｇによって画面表示される分割画像データ１２２の位置を調整したい場合は、例えばさらにｓｔｙｌｅ属性によって絶対ピクセル位置を指定してもよいし、ＨＴＭＬ５のＣａｎｖａｓを用いて描画処理により調整してもよい。
【００５８】
＜本発明のまとめ＞
本発明に係る画像配信プログラム１１１は、画像データ１２１を分割して分割画像データ１２２を生成するとともにそのダミー分割画像データ１２３を生成し、分割画像データ１２２とダミー分割画像データ１２３を併せて配信するとともに、分割画像データ１２２のみをＷｅｂブラウザ２１１上で画面表示するスクリプトを併せて配信する。これにより配信経路のいずれかにおいて応答を盗聴されたとしても、画像データ１２１を復元することを困難にしつつ、Ｗｅｂブラウザ２１１上では分割画像データ１２２のみを画面表示することができる。
【００５９】
＜本発明の変形例について＞
図７〜図９においてダミー分割画像データ１２３を生成する手順を説明したが、この手順に限られるものではなく、その他適当な手法によって画像データ１２１を復元困難にできればよい。
【００６０】
図１２において分割画像データ１２２／ダミー分割画像データ１２３ごとに個別のステップを記述しているが、例えば繰り返し処理によってスクリプトを簡易化してもよい。この場合はｉＩｍｇＮｕｍｂｅｒＢａｓｅを用いてダミー分割画像データ１２３を識別すればよい。
【００６１】
図１２においてｉｍｇＡｒｒａｙ内に分割画像データ１２２のＵＲＬとダミー分割画像データ１２３のＵＲＬを全て格納し、その後にｉｍｇＡｒｒａｙのなかから分割画像データ１２２のみを抽出しているが、これらを格納する配列を個別に設けてもよい。この場合はダウンロードについては全て実施し、ｉｍｇタグを追加する際に分割画像データ１２２を格納している配列のみを用いればよい。
【００６２】
以上の説明において、Ｗｅｂサーバ１００とＷｅｂブラウザ２１１はＨＴＴＰプロトコルを用いてＷｅｂ画像を送受信することを説明したが、例えばＨＴＴＰＳなどＨＴＴＰの派生プロトコルにおいても同様の手法を用いることができる。あるいはＨＴＴＰとは異なりステートフルなプロトコルを用いる場合であっても、同様の手法を用いることができるが、その場合はＸｍｌＨｔｔｐＲｅｑｕｅｓｔなどの平行アクセスのためのオブジェクトを用いる必要はなくなると思われる。Ｗｅｂブラウザ２１１とＷｅｂサーバ１００との間で必要なだけダウンロードを繰り返せばよいからである。いずれの場合であっても、Ｗｅｂブラウザ２１１が応答を画面表示する処理が完結するまでの間にダウンロードを実施する必要がある。
【００６３】
以上の説明において、分割画像データ１２２をｂａｓｅ６４によってテキストエンコードすることを説明したが、Ｗｅｂブラウザ２１１がサポートしているのであればその他エンコード手法を用いてもよい。
【００６４】
図４において、縦横それぞれ１６番目の分割画像データ１２２のピクセルサイズを調整しているが、ピクセルサイズを調整するのは何番目の分割画像データ１２２でもよい。分割画像データ１２２の個数は変わらないので処理上は同一だからである。ただし画像を表示したときのイメージを崩さないように、縦横それぞれ同番目の分割画像データ１２２のサイズを調整すべきである。
【符号の説明】
【００６５】
１００：Ｗｅｂサーバ、１１１：画像配信プログラム、１１２：画像分割プログラム、１１３：スクリプト生成プログラム、１２１：画像データ、１２２：分割画像データ、１２３：ダミー分割画像データ、２１１：Ｗｅｂブラウザ。
【図１】
2017151873.tif 000003
【図２】
2017151873.tif 000004
【図３】
2017151873.tif 000005
【図４】
2017151873.tif 000006
【図５】
2017151873.tif 000007
【図６】
2017151873.tif 000008
【図７】
2017151873.tif 000009
【図８】
2017151873.tif 000010
【図９】
2017151873.tif 000011
【図１０】
2017151873.tif 000012
【図１１】
2017151873.tif 000013
【図１２】
2017151873.tif 000014
【図１３】
2017151873.tif 000015