(57)【特許請求の範囲】
【請求項１】
他のコンピュータにインストールするための情報を所定の規則に従って暗号化することにより、情報の秘匿化を図る情報秘匿化装置であって、
暗号化すべき暗号化セグメントと暗号化すべきでない非暗号化セグメントとに情報を所定の規則に従って分割する分割手段と、
前記暗号化セグメントを暗号化する暗号化手段と、
前記情報上において前記暗号化セグメントの位置または前記非暗号化セグメントの位置を示す制御テーブルを生成する制御テーブル生成手段と、
前記暗号化セグメントが暗号化された前記情報と前記制御テーブルとを結合し、または関連付ける編成手段とを備え、
前記分割手段では、前記情報からＡＰＩ呼出命令を検出し、検出したＡＰＩ呼出命令の位置を基準にして前記情報を複数のセグメントに分割し、前記情報において、ＡＰＩ呼出命令を含むセグメントを暗号化セグメントとすることを特徴とする情報秘匿化装置。
【請求項２】
前記暗号化セグメントのハッシュ値または前記非暗号化セグメントのハッシュ値を算出するハッシュ値算出手段を備え、
前記制御テーブル生成手段では、前記ハッシュ値算出手段において算出されたハッシュ値を前記制御テーブルに記録することを特徴とする請求項１に記載の情報秘匿化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の規則に従って情報を暗号化することにより、情報の秘匿化を図る情報秘匿化方法および情報秘匿化装置に関する。
【背景技術】
【０００２】
現在、パーソナルコンピュータが広く普及し、様々な場所で様々な用途に利用されている。また、複写機、印刷機、複合機、携帯電話機、ポータブルオーディオ機器、家電などの機器にもコンピュータが搭載されている。これらのコンピュータ機器は、ソフトウェアを当該コンピュータ機器にインストールすることにより、機能の更新、追加などを図ることができる。
【０００３】
ソフトウェアは、コンピュータプログラム、データなどの情報により構成されている。ソフトウェアを構成する情報は、光ディスクなどの記録媒体に記録された形で製造・販売者から消費者へ流通する。また、インターネットなどのコンピュータネットワークを通じて、ソフトウェアを構成する情報がそのままの形で流通する場合もある。例えば、特許文献１では、情報処理装置にプログラムを追加するアプリケーション追加手段として、アプリケーションが、ネットワークを介して接続されたアプリケーションサーバから、スキャナ装置の指示によりダウンロードされ、又はスキャナ装置から直接ダウンロードされている。
【０００４】
多くの場合、市場を流通するソフトウェアを構成する情報は、暗号化されることにより秘匿化が図られている。たとえ、市場を流通する段階で、ソフトウェアを構成するコンピュータプログラムがバイナリ形式に変換されているとしても、コンピュータプログラムに用いられている言語によっては、バイナリ形式のコンピュータプログラムをソースコードに容易に逆変換することができてしまう。したがって、不正な複製や模倣を防ぐために、ソフトウェアを市場に流通させる際には、ソフトウェアを構成する情報を暗号化することにより、当該情報の秘匿化を図ることは重要である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−０５０５３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来、市場を流通するソフトウェアを構成する情報は、当該情報の全部が暗号化されているため、このソフトウェアをコンピュータ機器にインストールする際に、復号に時間がかかるという問題がある。すなわち、ソフトウェアを構成する情報のサイズが大きい場合には、暗号化された情報のサイズが大きくなり、それゆえ復号のための演算量が多くなる。この結果、復号に時間がかかってしまう。また、ソフトウェアを市場に流通させる際に、ソフトウェアを構成する情報の全部を暗号化するため、暗号化の演算量が多くなり、暗号化に時間がかかるという問題がある。
【０００７】
また、ソフトウェアの出荷時などに、ソフトウェアを構成する情報の一部に変更を加える必要が生じた場合、ソフトウェアを構成する情報の全部が暗号化されていると、当該情報の一部だけに変更を加えることは容易でない。一方、ソフトウェアを構成する情報の一部を変更するために、当該情報全部を変更するとすれば、変更処理に手間や時間がかかってしまう。
【０００８】
本発明は例えば上述したような問題に鑑みなされたものであり、本発明の第１の課題は、ソフトウェアなどを構成する情報の暗号化または復号の演算量を少なくし、当該情報の秘匿性を確保しながら、当該情報の暗号化または復号を行う際の操作性または利便性を高めることができる情報秘匿化方法および情報秘匿化装置を提供することにある。
【０００９】
本発明の第２の課題は、ソフトウェアなどを構成する情報の秘匿化が図られた後であっても、当該情報の部分的な変更または更新を容易に行うことができる情報秘匿化方法および情報秘匿化装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の情報秘匿化方法は、他のコンピュータにインストールするための情報を所定の規則に従って暗号化することにより、情報の秘匿化を図るための各工程をコンピュータに実行させる情報秘匿化方法であって、暗号化すべき暗号化セグメントと暗号化すべきでない非暗号化セグメントとに情報を所定の規則に従って分割する分割工程と、前記暗号化セグメントを暗号化する暗号化工程と、前記情報上における前記暗号化セグメントの位置または前記非暗号化セグメントの位置を示す制御テーブルを生成する制御テーブル生成工程と、前記暗号化セグメントが暗号化された前記情報と前記制御テーブルとを結合し、または関連付ける編成工程とを備え、前記分割工程では、前記情報において、ＡＰＩ呼出命令を含む部分を暗号化セグメントとする。
【００１１】
さらに、前記情報秘匿化方法に、前記暗号化セグメントのハッシュ値または前記非暗号化セグメントのハッシュ値を算出するハッシュ値算出工程を追加してもよい。この場合、前記制御テーブル生成工程では、前記ハッシュ値算出工程において算出されたハッシュ値を前記制御テーブルに記録する。
【００１２】
上記課題を解決するために、本発明の情報秘匿化装置は、他のコンピュータにインストールするための情報を所定の規則に従って暗号化することにより、情報の秘匿化を図る情報秘匿化装置であって、暗号化すべき暗号化セグメントと暗号化すべきでない非暗号化セグメントとに情報を所定の規則に従って分割する分割手段と、前記暗号化セグメントを暗号化する暗号化手段と、前記情報上において前記暗号化セグメントの位置または前記非暗号化セグメントの位置を示す制御テーブルを生成する制御テーブル生成手段と、前記暗号化セグメントが暗号化された前記情報と前記制御テーブルとを結合し、または関連付ける編成手段とを備え、前記分割手段では、前記情報において、ＡＰＩ呼出命令を含む部分を暗号化セグメントとする。
【発明の効果】
【００１３】
上述した本発明によれば、情報の一部である暗号化セグメントのみを暗号化するので、情報の全部を暗号化する場合と比較して、暗号化または復号の演算量を減らすことができる。したがって、情報の秘匿性を確保しながら、当該情報の暗号化または復号を行う際の操作性または利便性を高めることができる。特に、ＡＰＩ呼出命令が含まれるセグメントを暗号化することにより、インストールパッケージに含まれるコンピュータプロラムとしての情報の不正な複製や模倣を効果的に防止することができる。
【００１４】
また、本発明によれば、情報をセグメントに分割して暗号化を行うので、情報を暗号化した後であっても、変更または更新が必要なセグメントを新たなセグメントに置き換えるだけで、情報の変更または更新を行うことができる。すなわち、本発明によれば、情報の秘匿化が図られた後であっても、当該情報の部分的な変更または更新を容易に行うことができる。
【００１５】
また、本発明によれば、情報のうち、非暗号化セグメントは暗号化を行わないので、非暗号化セグメントに含まれる情報片については、変更または更新がきわめて容易である。すなわち、変更または更新のためにセグメントを復号する必要がなく、変更後または更新後にそのセグメントを暗号化する必要がなく、また、セグメント中のごく一部の情報片だけを他の情報片に直接書き換えることが可能である。このように、本発明によれば、情報の秘匿化が図られた後であっても、当該情報の部分的な変更または更新を容易に行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の情報秘匿化方法および情報秘匿化装置により秘匿化が図られたインストールパッケージを含むプロダクトパッケージを示す説明図である。
【図２】図１中のプロダクトパッケージに含まれる制御テーブルを示す説明図である。
【図３】本発明の情報秘匿化装置の第１の実施形態を示すブロック図である。
【図４】本発明の情報秘匿化装置の第１の実施形態による秘匿化処理を示すフローチャートである。
【図５】秘匿化処理における分割工程が行われているときのインストールパッケージを示す説明図である。
【図６】秘匿化処理における分割工程が行われた直後のインストールパッケージを示す説明図である。
【図７】秘匿化処理における暗号化工程が行われた直後のインストールパッケージを示す説明図である。
【図８】秘匿化処理における編成工程が行われた直後のインストールパッケージ等を示す説明図である。
【図９】本発明の第３の実施形態である情報秘匿化装置による秘匿化処理の暗号化工程が行われた直後のインストールパッケージを示す説明図である。
【図１０】本発明の第４の実施形態である情報秘匿化装置による秘匿化処理の暗号化工程が行われた直後のインストールパッケージを示す説明図である。
【発明を実施するための形態】
【００１７】
（第１の実施形態）
以下、図面を参照しつつ、本発明の第１の実施の形態について説明する。図１はプロダクトパッケージを示している。
【００１８】
図１中のプロダクトパッケージ１は、インストールパッケージ２に対し秘匿化処理を行うことにより生成された情報群である。インストールパッケージ２はプロダクトパッケージ１の形で市場を流通する。
【００１９】
プロダクトパッケージ１は、インストールパッケージ２、電子署名３、共通鍵４および制御テーブル５を備えている。
【００２０】
インストールパッケージ２は、本発明の情報秘匿化方法および情報秘匿化装置により秘匿化が図られる情報の具体例であり、後述の情報秘匿化装置１０による秘匿化処理の対象である。インストールパッケージ２は、パーソナルコンピュータ、コンピュータを搭載した事務機器などのコンピュータ機器の機能を変更、拡張または更新するためのアプリケーションソフトウェアを構成するコンピュータプログラムおよびデータ並びにインストーラなどをパッケージングしたものである。
【００２１】
インストールパッケージ２は、複数のセグメントに分割されている。これら複数のセグメントは、暗号化セグメント６および非暗号化セグメント７から構成されている。暗号化セグメント６は共通鍵暗号化方式により暗号化されている。非暗号化セグメント７は暗号化されていない。なお、暗号化セグメント６中に存在するビットパターン８については後述する。
【００２２】
電子署名３は、インストールパッケージ２にパッケージングされたアプリケーションソフトウェアの真正性を証明するために、このアプリケーションソフトウェアの製造者または提供者によって付された電子署名である。
【００２３】
共通鍵４は、インストールパッケージ２における暗号化セグメント６の暗号化に用いられた鍵である。
【００２４】
制御テーブル５は、後述するように、インストールパッケージ２の秘匿化を図る秘匿化処理において生成されたテーブルである。制御テーブル５には、秘匿化が図られたインストールパッケージ２の秘匿化を解除して、秘匿化を図る前の元の状態にインストールパッケージ２を復元する秘匿化解除処理を行うときに必要な制御情報が記録されている。
【００２５】
プロダクトパッケージ１において、電子署名３、共通鍵４および制御テーブル５は非対称鍵暗号化方式により暗号化されている。また、プロダクトパッケージ１は、そのサイズを小さくするために、全体的に圧縮処理が施されている。
【００２６】
図２は、図１中のプロダクトパッケージ１に含まれる制御テーブル５の内容を示している。図２に示すように、制御テーブル５には、インストールパッケージ２における各セグメントの番号、先頭アドレス、長さ、暗号化の有無およびハッシュ値が記録されている。「番号」は、例えばインストールパッケージ２の先頭から末尾に向かって配列されたセグメントの順番に従って各セグメントに付された番号である。「先頭アドレス」は、インストールパッケージ２の先頭を基準にした各セグメントの相対的な先頭アドレスであり、インストールパッケージ２上における暗号化セグメント６の位置および非暗号化セグメント７の位置をそれぞれ示す。「長さ」は各セグメントの長さを示す。「暗号化の有無」は、各セグメントの暗号化の有無を示す例えばフラグである。このフラグが「０」である場合、当該セグメントは暗号化されていないセグメント、すなわち非暗号化セグメント７であることを示す。一方、このフラグが「１」である場合、当該セグメントは暗号化されたセグメント、すなわち暗号化セグメント６であることを示す。「ハッシュ値」は、各セグメントのハッシュ値である。「ハッシュ値」は、各セグメントの内容に応じて固有な値であり、セグメントの内容が僅かでも異なれば、この値が異なる。
【００２７】
図３は情報秘匿化装置を示している。図３中の情報秘匿化装置１０は、本発明の情報秘匿化装置の第１の実施形態であり、上述したインストールパッケージ２に対して秘匿化処理を行い、プロダクトパッケージ１を生成する。情報秘匿化装置１０は、パーソナルコンピュータに秘匿化処理プログラムを読み込ませることにより実現される。
【００２８】
情報秘匿化装置１０は、制御ユニット１１、情報入出力部１２、記憶部１３および操作部１４を備えている。
【００２９】
制御ユニット１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを備えている。ＣＰＵは、後述の分割処理部２１、暗号化処理部２２、演算処理部２３、テーブル生成部２４、編成処理部２５、製品化処理部２６および総合制御部２７として制御ユニット１１を機能させるための秘匿化処理プログラムを記憶部１３から読み出し、これを実行することにより、上記構成要素２１ないし２７として機能する。ＲＡＭは、ＣＰＵが秘匿化処理プログラムを実行するときの作業メモリとして用いられる。
【００３０】
分割処理部２１は、インストールパッケージ２を暗号化すべき暗号化セグメント６と暗号化すべきでない非暗号化セグメント７とに所定の分割規則に従って分割する。分割処理部２１は分割手段の具体例である。
【００３１】
暗号化処理部２２は、共通鍵４を用いて暗号化セグメント６を暗号化する。暗号化処理部２２は暗号化手段の具体例である。
【００３２】
演算処理部２３は、暗号化セグメント６のハッシュ値および非暗号化セグメント７のハッシュ値をそれぞれ算出する。
【００３３】
テーブル生成部２４は制御テーブル５を生成する。テーブル生成部２４は制御テーブル生成手段の具体例である。
【００３４】
編成処理部２５は、暗号化セグメント６が暗号化されたインストールパッケージ２、電子署名３、共通鍵４および制御テーブル５を結合する。編成処理部２５は編成手段の具体例である。
【００３５】
製品化処理部２６は、電子署名３、共通鍵４および制御テーブル５の非対称鍵暗号化方式による暗号化、およびプロダクトパッケージ１全体の圧縮処理を行う。
【００３６】
総合制御部２７は、情報秘匿化装置１０を総合的に制御する。
【００３７】
情報出力部１２は、秘匿化処理を行った後に、秘匿化処理により生成されたプロダクトパッケージ１を記憶媒体に出力する。情報出力部１２の構成は、プロダクトパッケージ１を出力する記録媒体の形態に応じて決めることができる。プロダクトパッケージ１を出力する記録媒体が例えば光ディスクである場合には、情報入出力装置１２は光ディスクドライブである。
【００３８】
記憶部１３は、例えばハードディスクまたはフラッシュメモリである。記憶部１３には、上述した秘匿化処理プログラムが記憶されている。この秘匿化処理プログラムには、暗号化セグメント６を共通鍵暗号化方式により暗号化するための暗号化プログラム、インストールパッケージ２の各セグメントのハッシュ値を算出するためのハッシュ関数などが含まれている。また、記憶部１３には、秘匿化処理を行う前のインストールパッケージ２、電子署名３および共通鍵４が記憶されている。さらに、記憶部１３には、電子署名３、共通鍵４および制御テーブル５を非対称暗号化方式により暗号化するために用いる非対称鍵が記憶されている。
【００３９】
操作部１４は、情報秘匿化装置１０を操作するための、キーボード、マウス、ディスプレイなどの入出力装置である。
【００４０】
図４は、情報秘匿化装置１０による秘匿化処理を示している。秘匿化処理は、インストールパッケージ２の秘匿化を図る処理である。秘匿化処理を開始する前の段階で、情報秘匿化装置１０の記憶部１３には、秘匿化処理の対象となるインストールパッケージ２が記憶されている。秘匿化処理の作業者が情報秘匿化装置１０の操作部１４を操作し、秘匿化処理を開始する旨の指示を情報秘匿化装置１０に入力すると、インストールパッケージ２に対する秘匿化処理が開始される。
【００４１】
図１０に示すように、秘匿化処理において、まず、分割処理部２１が、インストールパッケージ２を、暗号化すべき暗号化セグメント６と暗号化すべきでない非暗号化セグメント７とに所定の分割規則に従って分割する（分割工程）。第１の実施形態における分割規則は、インストールパッケージ２において、所定のビットパターンを含む、所定の大きさを有する部分を暗号化セグメント６とするという規則である。
【００４２】
分割工程は、ステップＳ１ないしＳ４の４つの工程から構成される。まず、分割処理部２１は、図５に示すように、インストールパッケージ２の中から所定のビットパターン８を検出する（ステップＳ１）。所定のビットパターン８は、例えば、秘匿化して保護する必要性が高い情報片を表すビットパターン、暗号化することによってプログラムの模倣を不可能にするプログラムの部分を表すビットパターン、プログラム作成者の名称を表すビットパターンなどである。
【００４３】
続いて、分割処理部２１は、図６に示すように、所定のビットパターン８が検出された位置を基準にして、インストールパッケージ２を複数のセグメントに細分化する（ステップＳ２）。すなわち、分割処理部２１は、所定のビットパターン８と、このビットパターン８の直前の例えば１００バイトの情報片と、このビットパターン８の直後の例えば１００バイトの情報片とからなる情報の塊を１つのセグメントとして選択する。なお、所定のビットパターンの直前からインストールパッケージ２の先頭までの長さが１００バイト未満である場合には、インストールパッケージ２の先頭から所定のビットパターンの直前までの情報片を暗号化セグメント６の先頭側部分として選択する。また、所定のビットパターンの直後からインストールパッケージ２の末尾までの長さが１００バイト未満である場合には、所定のビットパターンの直後からインストールパッケージ２の末尾までの情報片を暗号化セグメント６の末尾側部分として選択する。また、所定のビットパターンの前、後の各情報片の長さは１００バイトに限らない。インストールパッケージ２中に所定のビットパターン８が複数ある場合には、このようなセグメントが複数選択される。さらに、分割処理部２１は、選択されたセグメントによって区切られた、インストールパッケージ２の残余部分をそれぞれ別のセグメントとして選択する。
【００４４】
続いて、分割処理部２１は、インストールパッケージ２の先頭から末尾に向かって順に各セグメントに番号を付し、インストールパッケージ２の先頭を基準にした各セグメントの相対的な先頭アドレス（インストールパッケージ２上における暗号化セグメント６の位置または非暗号化セグメント７の位置を示す値）を調べ、各セグメントの長さを調べ、これら番号、先頭アドレス、長さを制御ユニット１１のＲＡＭまたは記憶部１３に一時的に記憶する（ステップＳ３）。
【００４５】
続いて、分割処理部２１は、所定のビットパターン８を含むセグメントを暗号化セグメント６として選択する（ステップＳ４）。そして、分割処理部２１は、暗号化セグメント６として選択したセグメントについて暗号化の有無を示すフラグを「１」にセットし、残余のセグメント、すなわち非暗号化セグメント７について暗号化の有無を示すフラグを「０」に設定し、これらフラグを制御ユニット１１のＲＡＭまたは記憶部１３に一時的に記憶する。
【００４６】
続いて、暗号化処理部２２が、図７に示すように、記憶部１３に記憶された共通鍵４を用いて共通鍵暗号化方式により暗号化セグメント６を暗号化する（ステップＳ５：暗号化工程）。
【００４７】
続いて、演算処理部２３が、インストールパッケージ２の各セグメントのハッシュ値を算出する（ステップＳ６：ハッシュ値算出工程）。算出された各ハッシュ値は制御ユニット１１のＲＡＭまたは記憶部１３に一時的に記憶される。
【００４８】
続いて、テーブル生成部２４が、制御ユニット１１のＲＡＭまたは記憶部１３に一時的に記憶された各セグメントの番号、先頭アドレス、長さ、暗号化の有無およびハッシュ値を読み出し、これらを配列することにより、制御テーブル５を生成する（ステップＳ７：制御テーブル生成工程）。
【００４９】
続いて、編成処理部２５が、図８に示すように、暗号化セグメント６が暗号化されたインストールパッケージ２、制御テーブル５、記憶部１３に記憶された電子署名３および共通鍵４を結合する（ステップＳ８：編成工程）。
【００５０】
続いて、製品化処理部２６が、電子署名３、共通鍵４および制御テーブル５を非対称鍵暗号化方式により暗号化することによりプロダクトパッケージ１を生成し、続いて、このプロダクトパッケージ１全体に対し圧縮処理を行い、圧縮されたプロダクトパッケージ１を情報出力部１２により光ディスクなどの記録媒体に出力する（ステップＳ９：製品化工程）。
【００５１】
プロダクトパッケージ１が記録された記録媒体は、インストールパッケージ２に係る製品として市場を流通する。また、市場から当該製品を購入した消費者は、インストールパッケージ２に係るアプリケーションソフトウェアをコンピュータ機器にインストールするとき、プロダクトパッケージ１を展開（解凍）し、電子署名３、共通鍵４および制御テーブル５を復号する。そして、復号した共通鍵４および制御テーブル５を用いてインストールパッケージ２の暗号化セグメント６を復号する（秘匿化解除処理）。すなわち、秘匿化解除処理においては、まず、制御テーブル５に記録されたインストールパッケージ２の各セグメントの先頭アドレスまたは長さに基づいて、インストールパッケージ２の各セグメントを特定し、暗号化の有無を示すフラグに基づいて、各暗号化セグメント６を特定し、共通鍵４を用いて暗号化セグメント６を復号する。
【００５２】
以上説明した通り、情報秘匿化装置１０の秘匿化処理によれば、インストールパッケージ２の一部である暗号化セグメント６のみを暗号化するので、インストールパッケージ２の全部を暗号化する場合と比較して、暗号化の演算量を減らすことができる。したがって、インストールパッケージ２の秘匿化を短時間で図ることができる。また、情報秘匿化装置１０の秘匿化処理により秘匿化が図られたインストールパッケージ２は、暗号化セグメント６のみが暗号化されているので、このインストールパッケージ２に係るアプリケーションソフトウェアをコンピュータ機器にインストールするときには、暗号化セグメント６に対する復号処理を行うだけでよい。これにより、復号の演算量を減らすことができる。したがって、インストールパッケージ２に係るアプリケーションソフトウェアのコンピュータ機器へのインストールを短時間で行うことが可能になる。さらに、情報秘匿化装置１０の秘匿化処理では、秘匿化して保護する必要性が高い情報片を表すビットパターン、暗号化することによってプログラムの模倣を不可能にするプログラムの部分を表すビットパターンなどを検出し、このようなビットパターンを含むセグメントのみを暗号化する。これにより、インストールパッケージ２の秘匿性を確保することができる。このように、情報秘匿化装置１０の秘匿化処理によれば、インストールパッケージ２の秘匿性を効率的に確保しながら、インストールパッケージ２の暗号化または復号を行う際の操作性または利便性を高めることができる。
【００５３】
また、情報秘匿化装置１０の秘匿化処理により秘匿化が図られたインストールパッケージ２は、複数のセグメントに分割され、暗号化セグメント６について暗号化セグメント６ごとに暗号化が行われる。これにより、インストールパッケージ２に対し秘匿化処理を行った後であっても、変更または更新が必要なセグメントを新たなセグメントに置き換えるだけで、情報の変更または更新を行うことができる。すなわち、情報秘匿化装置１０の秘匿化処理により秘匿化が図られたインストールパッケージ２によれば、インストールパッケージ２の秘匿化が図られた後であっても、インストールパッケージ２の部分的な変更または更新を容易に行うことができる。
【００５４】
また、情報秘匿化装置１０による秘匿化処理によれば、インストールパッケージ２のうち、非暗号化セグメント７は暗号化を行わないので、非暗号化セグメント７に含まれる情報片については、変更または更新がきわめて容易である。すなわち、変更または更新のためにセグメントを復号する必要がなく、変更後または更新後にそのセグメントを暗号化する必要がなく、また、セグメント中のごく一部の情報片だけを他の情報片に直接書き換えることが可能である。したがって、インストールパッケージ２の秘匿化を図った後であっても、インストールパッケージ２の部分的な変更または更新を容易に行うことができる。
【００５５】
また、暗号化された情報よりも暗号化されていない情報の方が、圧縮率が高い場合が多い。情報秘匿化装置１０による秘匿化処理によれば、インストールパッケージ２のうち、非暗号化セグメント７は暗号化を行わないので、インストールパッケージ２全体を暗号化する場合と比較して、製品化工程におけるインストールパッケージ２の圧縮率を高めることができ、プロダクトパッケージ１のサイズを小さくすることができる。
【００５６】
また、情報秘匿化装置１０の秘匿化処理によれば、インストールパッケージ２の各セグメントのハッシュ値を制御テーブル５に記録する。これにより、変更前または更新前のインストールパッケージ２の各セグメントのハッシュ値と、変更後または更新後のインストールパッケージ２の各セグメントのハッシュ値とを比較することにより、両者の相違部分をセグメント単位に容易に認識することができる。例えば、コンピュータ機器にすでにインストールされている旧いバージョンのコンピュータプログラムを、新しいバージョンのコンピュータプログラムに更新するときには、旧いバージョンのコンピュータプログラムを含むインストールパッケージ２の各セグメントのハッシュ値と、新しいバージョンのコンピュータプログラムを含むインストールパッケージ２の各セグメントのハッシュ値とを比較し、両者間で異なるハッシュ値を有するセグメントを特定する。そして、特定されたセグメントだけを、コンピュータ機器に読み込ませ、またはインターネットなどのコンピュータネットワークを介してコンピュータ機器に送信する。そして、コンピュータ機器において、読み込んだまたは受信した特定のセグメントだけをインストールする処理を実行し、旧いバージョンのコンピュータプログラムを新しいバージョンのコンピュータプログラムに更新する。これにより、コンピュータプログラムの更新を効率よく迅速に行うことができる。
【００５７】
（第２の実施形態）
本発明の情報秘匿化装置の第２の実施形態では、秘匿化処理の分割工程において、分割処理部２１が上述した第１の実施形態における分割規則と異なる分割規則に従って、インストールパッケージ２を暗号化セグメント６と非暗号化セグメント７とに分割する。第２実施形態における分割規則は、インストールパッケージ２において、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）呼出命令を含む、所定の大きさを有する部分を暗号化セグメント６とするという規則である。
【００５８】
分割工程において、分割処理部２１は、まず、インストールパッケージ２の中からＡＰＩ呼出命令を検出する。
【００５９】
続いて、分割処理部２１は、ＡＰＩ呼出命令が検出された位置を基準にして、インストールパッケージ２を複数のセグメントに細分化する。すなわち、分割処理部２１は、ＡＰＩ呼出命令と、このＡＰＩ呼出命令の直前の例えば１００バイトの情報片と、およびこのＡＰＩ呼出命令の直後の例えば１００バイトの情報片とからなる情報の塊を１つのセグメントとして選択する。インストールパッケージ２中にＡＰＩ呼出命令が複数ある場合には、このようなセグメントが複数選択される。さらに、分割処理部２１は、選択されたセグメントによって区切られた、インストールパッケージ２の残余部分をそれぞれ別のセグメントとして選択する。
【００６０】
続いて、分割処理部２１は、上述した第１の実施形態における秘匿化処理のステップＳ３と同様に、各セグメントに番号を付し、各セグメントの先頭アドレスおよび長さを調べ、これら番号、先頭アドレス、長さを制御ユニット１１のＲＡＭまたは記憶部１３に一時的に記憶する。
【００６１】
続いて、分割処理部２１は、ＡＰＩ呼出命令を含むセグメントを暗号化セグメント６として選択する。そして、分割処理部２１は、暗号化セグメント６として選択したセグメントについて暗号化の有無を示すフラグを「１」にセットし、残余のセグメント、すなわち非暗号化セグメント７について暗号化の有無を示すフラグを「０」に設定し、これらフラグを制御ユニット１１のＲＡＭまたは記憶部１３に一時的に記憶する。
【００６２】
続いて、暗号化処理部２２が、記憶部１３に記憶された共通鍵４を用いて共通鍵暗号化方式により暗号化セグメント６を暗号化する。
【００６３】
続いて、上述した第１の実施形態における秘匿化処理のステップＳ６ないしＳ９と同様の処理を行い、圧縮されたプロダクトパッケージ１を生成する。
【００６４】
本発明の第２の実施形態によっても、上述した第１の実施形態とほぼ同様の効果を得ることができる。特に、ＡＰＩ呼出命令が含まれるセグメントを暗号化することにより、インストールパッケージ２に含まれるコンピュータプロラムの不正な複製や模倣を効果的に防止することができる。
【００６５】
（第３の実施形態）
本発明の情報秘匿化装置の第３の実施形態では、秘匿化処理の分割工程において、分割処理部２１が上述した第１または第２の実施形態における分割規則と異なる分割規則に従って、インストールパッケージ２を暗号化セグメント６と非暗号化セグメント７とに分割する。第３実施形態における分割規則は、インストールパッケージ２を固定長の複数のセグメントに分割し、これら複数のセグメントの中からいくつかのセグメントをランダムに選択し、これら選択したセグメントを暗号化セグメント６とするという規則である。各セグメントの固定の長さは、例えば数百バイトである。また、各セグメントの固定の長さを、インストールパッケージ２の長さの例えば１００分の１に設定してもよい。
【００６６】
分割工程において、分割処理部２１は、まず、インストールパッケージ２を固定長の複数のセグメントに分割する。
【００６７】
続いて、分割処理部２１は、分割した複数のセグメントのうち、いくつかのセグメントをランダムに選択し、これら選択したセグメントを暗号化セグメント６とする。そして、分割処理部２１は、分割した複数のセグメントのうち、残余のセグメントを非暗号化セグメント７として選択する。インストールパッケージ２を分割することにより形成されたすべてのセグメントの個数と、これらの中から暗号化セグメント６として選択する個数との比率は、秘匿化処理の作業者が情報秘匿化装置１０を操作することにより、例えばインストールパッケージの要秘匿性の程度に応じて、任意に設定することができる。
【００６８】
続いて、分割処理部２１は、インストールパッケージ２の各セグメントに番号を付し、各セグメントの先頭アドレスを算出し、各セグメントについて暗号化の有無を示すフラグを設定し、これら各セグメントの番号、先頭アドレス、長さおよび暗号化の有無を示すフラグを制御ユニット１１のＲＡＭまたは記憶部１３に記憶する。
【００６９】
続いて、暗号化処理部２２が、図９に示すように、記憶部１３に記憶された共通鍵４を用いて共通鍵暗号化方式により暗号化セグメント６を暗号化する。
【００７０】
続いて、上述した第１の実施形態における秘匿化処理のステップＳ６ないしＳ９と同様の処理を行い、圧縮されたプロダクトパッケージ１を生成する。
【００７１】
本発明の第３の実施形態によっても、上述した第１または第２の実施形態と同様の効果を得ることができる。特に、インストールパッケージ２を固定長のセグメントに分割するので、分割工程における処理の簡単化を図ることができ、秘匿化処理にかかる時間を短くすることができ、情報秘匿化装置１０の処理負担を減らすことができる。
【００７２】
（第４の実施形態）
本発明の情報秘匿化装置の第４の実施形態では、秘匿化処理の分割工程において、分割処理部２１が上述した第１ないし第３の実施形態における分割規則と異なる分割規則に従って、インストールパッケージ２を暗号化セグメント６と非暗号化セグメント７とに分割する。第４実施形態における分割規則は、インストールパッケージ２をそれぞれランダムな長さを有する複数のセグメントに分割し、これら複数のセグメントの中からいくつかのセグメントを選択し、これら選択したセグメントを暗号化セグメントとするという規則である。
【００７３】
分割工程において、分割処理部２１は、まず、インストールパッケージ２をランダムな長さを有する複数のセグメントに分割する。
【００７４】
続いて、分割処理部２１は、分割した各セグメントに、インストールパッケージ２の先頭から末尾に向けて順に番号を付し、これらセグメントのうち、偶数の番号が付されたセグメントを暗号化セグメント６として選択し、奇数の番号が付されたセグメントを非暗号化セグメント７として選択する。
【００７５】
続いて、分割処理部２１は、インストールパッケージ２の各セグメントの先頭アドレスおよび長さを調べ、各セグメントについて暗号化の有無を示すフラグを設定し、各セグメントの番号、先頭アドレス、長さおよび暗号化の有無を示すフラグを制御ユニット１１のＲＡＭまたは記憶部１３に記憶する。
【００７６】
続いて、暗号化処理部２２が、図１０に示すように、記憶部１３に記憶された共通鍵４を用いて共通鍵暗号化方式により暗号化セグメント６を暗号化する。
【００７７】
続いて、上述した第１の実施形態における秘匿化処理のステップＳ６ないしＳ９と同様の処理を行い、圧縮されたプロダクトパッケージ１を生成する。
【００７８】
本発明の第４の実施形態によっても、上述した第１ないし第３の実施形態と同様の効果を得ることができる。特に、インストールパッケージ２をランダムな長さの複数のセグメントに分割し、これらセグメントのうちの一部を暗号化するので、インストールパッケージ２を強固に秘匿化することができる。例えば、インストールパッケージ２の暗号化セグメント６の復号を試みても、暗号化セグメント６がインストールパッケージ２中のどこにあるのかを発見することが困難である。
【００７９】
なお、上述した第１の実施形態では、所定のビットパターン８が含まれるセグメントを暗号化する場合を例にあげたが、本発明はこれに限らない。所定のテキストパターンが含まれるセグメントを暗号化してもよい。
【００８０】
また、上述した各実施形態では、秘匿化処理の編成工程において、インストールパッケージ２、電子署名３、共通鍵４および制御テーブル５を結合する場合を例にあげたが、本発明はこれに限らない。例えば、インストールパッケージ２、電子署名３および共通鍵４を含む第１のプロダクトパッケージと、制御テーブル５を含む第２のプロダクトパッケージとを、相互に別々に生成し、例えばいずれか一方のプロダクトパッケージに他方のプロダクトパッケージを識別するための識別情報を付すことにより、両者を関連付けてもよい。
【００８１】
また、上述した各実施形態にあげた分割規則と異なる分割規則を採用することも可能である。例えば、インストールパッケージ２に複数のコンピュータプログラムが含まれている場合には、それぞれのプログラムにそれぞれのセグメントが一対一に対応するようにインストールパッケージ２を複数のセグメントに分割し、各プログラムの要保護性に応じて、各セグメントを暗号化するか否かを決定してもよい。
【００８２】
また、上述した各実施形態では、各セグメントのハッシュ値を制御テーブル５に記録する場合を例にあげたが、本発明はこれに限らない。一部のセグメントについてハッシュ値を記録しないこととしてもよい。例えば、インストールパッケージ２に対し秘匿化処理を行った後に、プログラムまたはデータの一部や数値を変更する必要がある場合には、この変更が必要な情報片を含むセグメントについてハッシュ値を記録しないこととする。これにより、このような情報片の変更をきわめて容易に行うことができる。すなわち、情報片の変更を行った後、当該セグメントのハッシュ値の算出および記録をやり直す必要がない。
【００８３】
また、本発明は、請求の範囲および明細書全体から読み取るこのできる発明の要旨または思想に反しない範囲で適宜変更可能であり、そのような変更を伴う情報秘匿化方法および情報秘匿化装置もまた本発明の技術思想に含まれる。
【符号の説明】
【００８４】
１  プロダクトパッケージ
２  インストールパッケージ（情報）
５  制御テーブル
６  暗号化セグメント
７  非暗号化セグメント
８  ビットパターン
１０  情報秘匿化装置
２１  分割処理部（分割手段）
２２  暗号化処理部（暗号化手段）
２３  演算処理部
２４  テーブル生成部（制御テーブル生成手段）
２５  編成処理部（編成手段）
【図１】
0005574550.tif 000002
【図２】
0005574550.tif 000003
【図３】
0005574550.tif 000004
【図４】
0005574550.tif 000005
【図５】
0005574550.tif 000006
【図６】
0005574550.tif 000007
【図７】
0005574550.tif 000008
【図８】
0005574550.tif 000009
【図９】
0005574550.tif 000010
【図１０】
0005574550.tif 000011