JP2013047854A - 情報秘匿化方法および情報秘匿化装置 - Google Patents

情報秘匿化方法および情報秘匿化装置 Download PDF

Info

Publication number
JP2013047854A
JP2013047854A JP2012255885A JP2012255885A JP2013047854A JP 2013047854 A JP2013047854 A JP 2013047854A JP 2012255885 A JP2012255885 A JP 2012255885A JP 2012255885 A JP2012255885 A JP 2012255885A JP 2013047854 A JP2013047854 A JP 2013047854A
Authority
JP
Japan
Prior art keywords
information
encrypted
segment
installation package
encryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012255885A
Other languages
English (en)
Other versions
JP5574550B2 (ja
Inventor
Shigenaka Kanemitsu
重中 金光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2012255885A priority Critical patent/JP5574550B2/ja
Publication of JP2013047854A publication Critical patent/JP2013047854A/ja
Application granted granted Critical
Publication of JP5574550B2 publication Critical patent/JP5574550B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ソフトウェアのインストールパッケージなどの情報の暗号化または復号の演算量を少なくし、当該情報の秘匿性を確保しながら、当該情報の暗号化または復号を行う際の操作性または利便性を高め、また、情報の秘匿化が図られた後であっても、当該情報の部分的な変更または更新を容易に行うことができるようにする。
【解決手段】インストールパッケージ2を、暗号化すべき暗号化セグメント6と暗号化すべきでない非暗号化セグメント7とに所定の規則に従って分割し、暗号化セグメント6を暗号化し、インストールパッケージ2上における暗号化セグメント6の位置または非暗号化セグメント7の位置を示す制御テーブル5を生成し、暗号化セグメント6が暗号化されたインストールパッケージ2と制御テーブル5とを結合する。インストールパッケージ2において、API呼出命令を含む部分を暗号化セグメントとする。
【選択図】図1

Description

本発明は、所定の規則に従って情報を暗号化することにより、情報の秘匿化を図る情報秘匿化方法および情報秘匿化装置に関する。
現在、パーソナルコンピュータが広く普及し、様々な場所で様々な用途に利用されている。また、複写機、印刷機、複合機、携帯電話機、ポータブルオーディオ機器、家電などの機器にもコンピュータが搭載されている。これらのコンピュータ機器は、ソフトウェアを当該コンピュータ機器にインストールすることにより、機能の更新、追加などを図ることができる。
ソフトウェアは、コンピュータプログラム、データなどの情報により構成されている。ソフトウェアを構成する情報は、光ディスクなどの記録媒体に記録された形で製造・販売者から消費者へ流通する。また、インターネットなどのコンピュータネットワークを通じて、ソフトウェアを構成する情報がそのままの形で流通する場合もある。例えば、特許文献1では、情報処理装置にプログラムを追加するアプリケーション追加手段として、アプリケーションが、ネットワークを介して接続されたアプリケーションサーバから、スキャナ装置の指示によりダウンロードされ、又はスキャナ装置から直接ダウンロードされている。
多くの場合、市場を流通するソフトウェアを構成する情報は、暗号化されることにより秘匿化が図られている。たとえ、市場を流通する段階で、ソフトウェアを構成するコンピュータプログラムがバイナリ形式に変換されているとしても、コンピュータプログラムに用いられている言語によっては、バイナリ形式のコンピュータプログラムをソースコードに容易に逆変換することができてしまう。したがって、不正な複製や模倣を防ぐために、ソフトウェアを市場に流通させる際には、ソフトウェアを構成する情報を暗号化することにより、当該情報の秘匿化を図ることは重要である。
特開2006−050535号公報
しかしながら、従来、市場を流通するソフトウェアを構成する情報は、当該情報の全部が暗号化されているため、このソフトウェアをコンピュータ機器にインストールする際に、復号に時間がかかるという問題がある。すなわち、ソフトウェアを構成する情報のサイズが大きい場合には、暗号化された情報のサイズが大きくなり、それゆえ復号のための演算量が多くなる。この結果、復号に時間がかかってしまう。また、ソフトウェアを市場に流通させる際に、ソフトウェアを構成する情報の全部を暗号化するため、暗号化の演算量が多くなり、暗号化に時間がかかるという問題がある。
また、ソフトウェアの出荷時などに、ソフトウェアを構成する情報の一部に変更を加える必要が生じた場合、ソフトウェアを構成する情報の全部が暗号化されていると、当該情報の一部だけに変更を加えることは容易でない。一方、ソフトウェアを構成する情報の一部を変更するために、当該情報全部を変更するとすれば、変更処理に手間や時間がかかってしまう。
本発明は例えば上述したような問題に鑑みなされたものであり、本発明の第1の課題は、ソフトウェアなどを構成する情報の暗号化または復号の演算量を少なくし、当該情報の秘匿性を確保しながら、当該情報の暗号化または復号を行う際の操作性または利便性を高めることができる情報秘匿化方法および情報秘匿化装置を提供することにある。
本発明の第2の課題は、ソフトウェアなどを構成する情報の秘匿化が図られた後であっても、当該情報の部分的な変更または更新を容易に行うことができる情報秘匿化方法および情報秘匿化装置を提供することにある。
上記課題を解決するために、本発明の情報秘匿化方法は、他のコンピュータにインストールするための情報を所定の規則に従って暗号化することにより、情報の秘匿化を図るための各工程をコンピュータに実行させる情報秘匿化方法であって、暗号化すべき暗号化セグメントと暗号化すべきでない非暗号化セグメントとに情報を所定の規則に従って分割する分割工程と、前記暗号化セグメントを暗号化する暗号化工程と、前記情報上における前記暗号化セグメントの位置または前記非暗号化セグメントの位置を示す制御テーブルを生成する制御テーブル生成工程と、前記暗号化セグメントが暗号化された前記情報と前記制御テーブルとを結合し、または関連付ける編成工程とを備え、前記分割工程では、前記情報において、API呼出命令を含む部分を暗号化セグメントとする。
さらに、前記情報秘匿化方法に、前記暗号化セグメントのハッシュ値または前記非暗号化セグメントのハッシュ値を算出するハッシュ値算出工程を追加してもよい。この場合、前記制御テーブル生成工程では、前記ハッシュ値算出工程において算出されたハッシュ値を前記制御テーブルに記録する。
上記課題を解決するために、本発明の情報秘匿化装置は、他のコンピュータにインストールするための情報を所定の規則に従って暗号化することにより、情報の秘匿化を図る情報秘匿化装置であって、暗号化すべき暗号化セグメントと暗号化すべきでない非暗号化セグメントとに情報を所定の規則に従って分割する分割手段と、前記暗号化セグメントを暗号化する暗号化手段と、前記情報上において前記暗号化セグメントの位置または前記非暗号化セグメントの位置を示す制御テーブルを生成する制御テーブル生成手段と、前記暗号化セグメントが暗号化された前記情報と前記制御テーブルとを結合し、または関連付ける編成手段とを備え、前記分割手段では、前記情報において、API呼出命令を含む部分を暗号化セグメントとする。
上述した本発明によれば、情報の一部である暗号化セグメントのみを暗号化するので、情報の全部を暗号化する場合と比較して、暗号化または復号の演算量を減らすことができる。したがって、情報の秘匿性を確保しながら、当該情報の暗号化または復号を行う際の操作性または利便性を高めることができる。特に、API呼出命令が含まれるセグメントを暗号化することにより、インストールパッケージに含まれるコンピュータプロラムとしての情報の不正な複製や模倣を効果的に防止することができる。
また、本発明によれば、情報をセグメントに分割して暗号化を行うので、情報を暗号化した後であっても、変更または更新が必要なセグメントを新たなセグメントに置き換えるだけで、情報の変更または更新を行うことができる。すなわち、本発明によれば、情報の秘匿化が図られた後であっても、当該情報の部分的な変更または更新を容易に行うことができる。
また、本発明によれば、情報のうち、非暗号化セグメントは暗号化を行わないので、非暗号化セグメントに含まれる情報片については、変更または更新がきわめて容易である。すなわち、変更または更新のためにセグメントを復号する必要がなく、変更後または更新後にそのセグメントを暗号化する必要がなく、また、セグメント中のごく一部の情報片だけを他の情報片に直接書き換えることが可能である。このように、本発明によれば、情報の秘匿化が図られた後であっても、当該情報の部分的な変更または更新を容易に行うことができる。
本発明の情報秘匿化方法および情報秘匿化装置により秘匿化が図られたインストールパッケージを含むプロダクトパッケージを示す説明図である。 図1中のプロダクトパッケージに含まれる制御テーブルを示す説明図である。 本発明の情報秘匿化装置の第1の実施形態を示すブロック図である。 本発明の情報秘匿化装置の第1の実施形態による秘匿化処理を示すフローチャートである。 秘匿化処理における分割工程が行われているときのインストールパッケージを示す説明図である。 秘匿化処理における分割工程が行われた直後のインストールパッケージを示す説明図である。 秘匿化処理における暗号化工程が行われた直後のインストールパッケージを示す説明図である。 秘匿化処理における編成工程が行われた直後のインストールパッケージ等を示す説明図である。 本発明の第3の実施形態である情報秘匿化装置による秘匿化処理の暗号化工程が行われた直後のインストールパッケージを示す説明図である。 本発明の第4の実施形態である情報秘匿化装置による秘匿化処理の暗号化工程が行われた直後のインストールパッケージを示す説明図である。
(第1の実施形態)
以下、図面を参照しつつ、本発明の第1の実施の形態について説明する。図1はプロダクトパッケージを示している。
図1中のプロダクトパッケージ1は、インストールパッケージ2に対し秘匿化処理を行うことにより生成された情報群である。インストールパッケージ2はプロダクトパッケージ1の形で市場を流通する。
プロダクトパッケージ1は、インストールパッケージ2、電子署名3、共通鍵4および制御テーブル5を備えている。
インストールパッケージ2は、本発明の情報秘匿化方法および情報秘匿化装置により秘匿化が図られる情報の具体例であり、後述の情報秘匿化装置10による秘匿化処理の対象である。インストールパッケージ2は、パーソナルコンピュータ、コンピュータを搭載した事務機器などのコンピュータ機器の機能を変更、拡張または更新するためのアプリケーションソフトウェアを構成するコンピュータプログラムおよびデータ並びにインストーラなどをパッケージングしたものである。
インストールパッケージ2は、複数のセグメントに分割されている。これら複数のセグメントは、暗号化セグメント6および非暗号化セグメント7から構成されている。暗号化セグメント6は共通鍵暗号化方式により暗号化されている。非暗号化セグメント7は暗号化されていない。なお、暗号化セグメント6中に存在するビットパターン8については後述する。
電子署名3は、インストールパッケージ2にパッケージングされたアプリケーションソフトウェアの真正性を証明するために、このアプリケーションソフトウェアの製造者または提供者によって付された電子署名である。
共通鍵4は、インストールパッケージ2における暗号化セグメント6の暗号化に用いられた鍵である。
制御テーブル5は、後述するように、インストールパッケージ2の秘匿化を図る秘匿化処理において生成されたテーブルである。制御テーブル5には、秘匿化が図られたインストールパッケージ2の秘匿化を解除して、秘匿化を図る前の元の状態にインストールパッケージ2を復元する秘匿化解除処理を行うときに必要な制御情報が記録されている。
プロダクトパッケージ1において、電子署名3、共通鍵4および制御テーブル5は非対称鍵暗号化方式により暗号化されている。また、プロダクトパッケージ1は、そのサイズを小さくするために、全体的に圧縮処理が施されている。
図2は、図1中のプロダクトパッケージ1に含まれる制御テーブル5の内容を示している。図2に示すように、制御テーブル5には、インストールパッケージ2における各セグメントの番号、先頭アドレス、長さ、暗号化の有無およびハッシュ値が記録されている。「番号」は、例えばインストールパッケージ2の先頭から末尾に向かって配列されたセグメントの順番に従って各セグメントに付された番号である。「先頭アドレス」は、インストールパッケージ2の先頭を基準にした各セグメントの相対的な先頭アドレスであり、インストールパッケージ2上における暗号化セグメント6の位置および非暗号化セグメント7の位置をそれぞれ示す。「長さ」は各セグメントの長さを示す。「暗号化の有無」は、各セグメントの暗号化の有無を示す例えばフラグである。このフラグが「0」である場合、当該セグメントは暗号化されていないセグメント、すなわち非暗号化セグメント7であることを示す。一方、このフラグが「1」である場合、当該セグメントは暗号化されたセグメント、すなわち暗号化セグメント6であることを示す。「ハッシュ値」は、各セグメントのハッシュ値である。「ハッシュ値」は、各セグメントの内容に応じて固有な値であり、セグメントの内容が僅かでも異なれば、この値が異なる。
図3は情報秘匿化装置を示している。図3中の情報秘匿化装置10は、本発明の情報秘匿化装置の第1の実施形態であり、上述したインストールパッケージ2に対して秘匿化処理を行い、プロダクトパッケージ1を生成する。情報秘匿化装置10は、パーソナルコンピュータに秘匿化処理プログラムを読み込ませることにより実現される。
情報秘匿化装置10は、制御ユニット11、情報入出力部12、記憶部13および操作部14を備えている。
制御ユニット11は、CPU(Central Processing Unit)、RAM(Random Access Memory)などを備えている。CPUは、後述の分割処理部21、暗号化処理部22、演算処理部23、テーブル生成部24、編成処理部25、製品化処理部26および総合制御部27として制御ユニット11を機能させるための秘匿化処理プログラムを記憶部13から読み出し、これを実行することにより、上記構成要素21ないし27として機能する。RAMは、CPUが秘匿化処理プログラムを実行するときの作業メモリとして用いられる。
分割処理部21は、インストールパッケージ2を暗号化すべき暗号化セグメント6と暗号化すべきでない非暗号化セグメント7とに所定の分割規則に従って分割する。分割処理部21は分割手段の具体例である。
暗号化処理部22は、共通鍵4を用いて暗号化セグメント6を暗号化する。暗号化処理部22は暗号化手段の具体例である。
演算処理部23は、暗号化セグメント6のハッシュ値および非暗号化セグメント7のハッシュ値をそれぞれ算出する。
テーブル生成部24は制御テーブル5を生成する。テーブル生成部24は制御テーブル生成手段の具体例である。
編成処理部25は、暗号化セグメント6が暗号化されたインストールパッケージ2、電子署名3、共通鍵4および制御テーブル5を結合する。編成処理部25は編成手段の具体例である。
製品化処理部26は、電子署名3、共通鍵4および制御テーブル5の非対称鍵暗号化方式による暗号化、およびプロダクトパッケージ1全体の圧縮処理を行う。
総合制御部27は、情報秘匿化装置10を総合的に制御する。
情報出力部12は、秘匿化処理を行った後に、秘匿化処理により生成されたプロダクトパッケージ1を記憶媒体に出力する。情報出力部12の構成は、プロダクトパッケージ1を出力する記録媒体の形態に応じて決めることができる。プロダクトパッケージ1を出力する記録媒体が例えば光ディスクである場合には、情報入出力装置12は光ディスクドライブである。
記憶部13は、例えばハードディスクまたはフラッシュメモリである。記憶部13には、上述した秘匿化処理プログラムが記憶されている。この秘匿化処理プログラムには、暗号化セグメント6を共通鍵暗号化方式により暗号化するための暗号化プログラム、インストールパッケージ2の各セグメントのハッシュ値を算出するためのハッシュ関数などが含まれている。また、記憶部13には、秘匿化処理を行う前のインストールパッケージ2、電子署名3および共通鍵4が記憶されている。さらに、記憶部13には、電子署名3、共通鍵4および制御テーブル5を非対称暗号化方式により暗号化するために用いる非対称鍵が記憶されている。
操作部14は、情報秘匿化装置10を操作するための、キーボード、マウス、ディスプレイなどの入出力装置である。
図4は、情報秘匿化装置10による秘匿化処理を示している。秘匿化処理は、インストールパッケージ2の秘匿化を図る処理である。秘匿化処理を開始する前の段階で、情報秘匿化装置10の記憶部13には、秘匿化処理の対象となるインストールパッケージ2が記憶されている。秘匿化処理の作業者が情報秘匿化装置10の操作部14を操作し、秘匿化処理を開始する旨の指示を情報秘匿化装置10に入力すると、インストールパッケージ2に対する秘匿化処理が開始される。
図10に示すように、秘匿化処理において、まず、分割処理部21が、インストールパッケージ2を、暗号化すべき暗号化セグメント6と暗号化すべきでない非暗号化セグメント7とに所定の分割規則に従って分割する(分割工程)。第1の実施形態における分割規則は、インストールパッケージ2において、所定のビットパターンを含む、所定の大きさを有する部分を暗号化セグメント6とするという規則である。
分割工程は、ステップS1ないしS4の4つの工程から構成される。まず、分割処理部21は、図5に示すように、インストールパッケージ2の中から所定のビットパターン8を検出する(ステップS1)。所定のビットパターン8は、例えば、秘匿化して保護する必要性が高い情報片を表すビットパターン、暗号化することによってプログラムの模倣を不可能にするプログラムの部分を表すビットパターン、プログラム作成者の名称を表すビットパターンなどである。
続いて、分割処理部21は、図6に示すように、所定のビットパターン8が検出された位置を基準にして、インストールパッケージ2を複数のセグメントに細分化する(ステップS2)。すなわち、分割処理部21は、所定のビットパターン8と、このビットパターン8の直前の例えば100バイトの情報片と、このビットパターン8の直後の例えば100バイトの情報片とからなる情報の塊を1つのセグメントとして選択する。なお、所定のビットパターンの直前からインストールパッケージ2の先頭までの長さが100バイト未満である場合には、インストールパッケージ2の先頭から所定のビットパターンの直前までの情報片を暗号化セグメント6の先頭側部分として選択する。また、所定のビットパターンの直後からインストールパッケージ2の末尾までの長さが100バイト未満である場合には、所定のビットパターンの直後からインストールパッケージ2の末尾までの情報片を暗号化セグメント6の末尾側部分として選択する。また、所定のビットパターンの前、後の各情報片の長さは100バイトに限らない。インストールパッケージ2中に所定のビットパターン8が複数ある場合には、このようなセグメントが複数選択される。さらに、分割処理部21は、選択されたセグメントによって区切られた、インストールパッケージ2の残余部分をそれぞれ別のセグメントとして選択する。
続いて、分割処理部21は、インストールパッケージ2の先頭から末尾に向かって順に各セグメントに番号を付し、インストールパッケージ2の先頭を基準にした各セグメントの相対的な先頭アドレス(インストールパッケージ2上における暗号化セグメント6の位置または非暗号化セグメント7の位置を示す値)を調べ、各セグメントの長さを調べ、これら番号、先頭アドレス、長さを制御ユニット11のRAMまたは記憶部13に一時的に記憶する(ステップS3)。
続いて、分割処理部21は、所定のビットパターン8を含むセグメントを暗号化セグメント6として選択する(ステップS4)。そして、分割処理部21は、暗号化セグメント6として選択したセグメントについて暗号化の有無を示すフラグを「1」にセットし、残余のセグメント、すなわち非暗号化セグメント7について暗号化の有無を示すフラグを「0」に設定し、これらフラグを制御ユニット11のRAMまたは記憶部13に一時的に記憶する。
続いて、暗号化処理部22が、図7に示すように、記憶部13に記憶された共通鍵4を用いて共通鍵暗号化方式により暗号化セグメント6を暗号化する(ステップS5:暗号化工程)。
続いて、演算処理部23が、インストールパッケージ2の各セグメントのハッシュ値を算出する(ステップS6:ハッシュ値算出工程)。算出された各ハッシュ値は制御ユニット11のRAMまたは記憶部13に一時的に記憶される。
続いて、テーブル生成部24が、制御ユニット11のRAMまたは記憶部13に一時的に記憶された各セグメントの番号、先頭アドレス、長さ、暗号化の有無およびハッシュ値を読み出し、これらを配列することにより、制御テーブル5を生成する(ステップS7:制御テーブル生成工程)。
続いて、編成処理部25が、図8に示すように、暗号化セグメント6が暗号化されたインストールパッケージ2、制御テーブル5、記憶部13に記憶された電子署名3および共通鍵4を結合する(ステップS8:編成工程)。
続いて、製品化処理部26が、電子署名3、共通鍵4および制御テーブル5を非対称鍵暗号化方式により暗号化することによりプロダクトパッケージ1を生成し、続いて、このプロダクトパッケージ1全体に対し圧縮処理を行い、圧縮されたプロダクトパッケージ1を情報出力部12により光ディスクなどの記録媒体に出力する(ステップS9:製品化工程)。
プロダクトパッケージ1が記録された記録媒体は、インストールパッケージ2に係る製品として市場を流通する。また、市場から当該製品を購入した消費者は、インストールパッケージ2に係るアプリケーションソフトウェアをコンピュータ機器にインストールするとき、プロダクトパッケージ1を展開(解凍)し、電子署名3、共通鍵4および制御テーブル5を復号する。そして、復号した共通鍵4および制御テーブル5を用いてインストールパッケージ2の暗号化セグメント6を復号する(秘匿化解除処理)。すなわち、秘匿化解除処理においては、まず、制御テーブル5に記録されたインストールパッケージ2の各セグメントの先頭アドレスまたは長さに基づいて、インストールパッケージ2の各セグメントを特定し、暗号化の有無を示すフラグに基づいて、各暗号化セグメント6を特定し、共通鍵4を用いて暗号化セグメント6を復号する。
以上説明した通り、情報秘匿化装置10の秘匿化処理によれば、インストールパッケージ2の一部である暗号化セグメント6のみを暗号化するので、インストールパッケージ2の全部を暗号化する場合と比較して、暗号化の演算量を減らすことができる。したがって、インストールパッケージ2の秘匿化を短時間で図ることができる。また、情報秘匿化装置10の秘匿化処理により秘匿化が図られたインストールパッケージ2は、暗号化セグメント6のみが暗号化されているので、このインストールパッケージ2に係るアプリケーションソフトウェアをコンピュータ機器にインストールするときには、暗号化セグメント6に対する復号処理を行うだけでよい。これにより、復号の演算量を減らすことができる。したがって、インストールパッケージ2に係るアプリケーションソフトウェアのコンピュータ機器へのインストールを短時間で行うことが可能になる。さらに、情報秘匿化装置10の秘匿化処理では、秘匿化して保護する必要性が高い情報片を表すビットパターン、暗号化することによってプログラムの模倣を不可能にするプログラムの部分を表すビットパターンなどを検出し、このようなビットパターンを含むセグメントのみを暗号化する。これにより、インストールパッケージ2の秘匿性を確保することができる。このように、情報秘匿化装置10の秘匿化処理によれば、インストールパッケージ2の秘匿性を効率的に確保しながら、インストールパッケージ2の暗号化または復号を行う際の操作性または利便性を高めることができる。
また、情報秘匿化装置10の秘匿化処理により秘匿化が図られたインストールパッケージ2は、複数のセグメントに分割され、暗号化セグメント6について暗号化セグメント6ごとに暗号化が行われる。これにより、インストールパッケージ2に対し秘匿化処理を行った後であっても、変更または更新が必要なセグメントを新たなセグメントに置き換えるだけで、情報の変更または更新を行うことができる。すなわち、情報秘匿化装置10の秘匿化処理により秘匿化が図られたインストールパッケージ2によれば、インストールパッケージ2の秘匿化が図られた後であっても、インストールパッケージ2の部分的な変更または更新を容易に行うことができる。
また、情報秘匿化装置10による秘匿化処理によれば、インストールパッケージ2のうち、非暗号化セグメント7は暗号化を行わないので、非暗号化セグメント7に含まれる情報片については、変更または更新がきわめて容易である。すなわち、変更または更新のためにセグメントを復号する必要がなく、変更後または更新後にそのセグメントを暗号化する必要がなく、また、セグメント中のごく一部の情報片だけを他の情報片に直接書き換えることが可能である。したがって、インストールパッケージ2の秘匿化を図った後であっても、インストールパッケージ2の部分的な変更または更新を容易に行うことができる。
また、暗号化された情報よりも暗号化されていない情報の方が、圧縮率が高い場合が多い。情報秘匿化装置10による秘匿化処理によれば、インストールパッケージ2のうち、非暗号化セグメント7は暗号化を行わないので、インストールパッケージ2全体を暗号化する場合と比較して、製品化工程におけるインストールパッケージ2の圧縮率を高めることができ、プロダクトパッケージ1のサイズを小さくすることができる。
また、情報秘匿化装置10の秘匿化処理によれば、インストールパッケージ2の各セグメントのハッシュ値を制御テーブル5に記録する。これにより、変更前または更新前のインストールパッケージ2の各セグメントのハッシュ値と、変更後または更新後のインストールパッケージ2の各セグメントのハッシュ値とを比較することにより、両者の相違部分をセグメント単位に容易に認識することができる。例えば、コンピュータ機器にすでにインストールされている旧いバージョンのコンピュータプログラムを、新しいバージョンのコンピュータプログラムに更新するときには、旧いバージョンのコンピュータプログラムを含むインストールパッケージ2の各セグメントのハッシュ値と、新しいバージョンのコンピュータプログラムを含むインストールパッケージ2の各セグメントのハッシュ値とを比較し、両者間で異なるハッシュ値を有するセグメントを特定する。そして、特定されたセグメントだけを、コンピュータ機器に読み込ませ、またはインターネットなどのコンピュータネットワークを介してコンピュータ機器に送信する。そして、コンピュータ機器において、読み込んだまたは受信した特定のセグメントだけをインストールする処理を実行し、旧いバージョンのコンピュータプログラムを新しいバージョンのコンピュータプログラムに更新する。これにより、コンピュータプログラムの更新を効率よく迅速に行うことができる。
(第2の実施形態)
本発明の情報秘匿化装置の第2の実施形態では、秘匿化処理の分割工程において、分割処理部21が上述した第1の実施形態における分割規則と異なる分割規則に従って、インストールパッケージ2を暗号化セグメント6と非暗号化セグメント7とに分割する。第2実施形態における分割規則は、インストールパッケージ2において、API(Application Program Interface)呼出命令を含む、所定の大きさを有する部分を暗号化セグメント6とするという規則である。
分割工程において、分割処理部21は、まず、インストールパッケージ2の中からAPI呼出命令を検出する。
続いて、分割処理部21は、API呼出命令が検出された位置を基準にして、インストールパッケージ2を複数のセグメントに細分化する。すなわち、分割処理部21は、API呼出命令と、このAPI呼出命令の直前の例えば100バイトの情報片と、およびこのAPI呼出命令の直後の例えば100バイトの情報片とからなる情報の塊を1つのセグメントとして選択する。インストールパッケージ2中にAPI呼出命令が複数ある場合には、このようなセグメントが複数選択される。さらに、分割処理部21は、選択されたセグメントによって区切られた、インストールパッケージ2の残余部分をそれぞれ別のセグメントとして選択する。
続いて、分割処理部21は、上述した第1の実施形態における秘匿化処理のステップS3と同様に、各セグメントに番号を付し、各セグメントの先頭アドレスおよび長さを調べ、これら番号、先頭アドレス、長さを制御ユニット11のRAMまたは記憶部13に一時的に記憶する。
続いて、分割処理部21は、API呼出命令を含むセグメントを暗号化セグメント6として選択する。そして、分割処理部21は、暗号化セグメント6として選択したセグメントについて暗号化の有無を示すフラグを「1」にセットし、残余のセグメント、すなわち非暗号化セグメント7について暗号化の有無を示すフラグを「0」に設定し、これらフラグを制御ユニット11のRAMまたは記憶部13に一時的に記憶する。
続いて、暗号化処理部22が、記憶部13に記憶された共通鍵4を用いて共通鍵暗号化方式により暗号化セグメント6を暗号化する。
続いて、上述した第1の実施形態における秘匿化処理のステップS6ないしS9と同様の処理を行い、圧縮されたプロダクトパッケージ1を生成する。
本発明の第2の実施形態によっても、上述した第1の実施形態とほぼ同様の効果を得ることができる。特に、API呼出命令が含まれるセグメントを暗号化することにより、インストールパッケージ2に含まれるコンピュータプロラムの不正な複製や模倣を効果的に防止することができる。
(第3の実施形態)
本発明の情報秘匿化装置の第3の実施形態では、秘匿化処理の分割工程において、分割処理部21が上述した第1または第2の実施形態における分割規則と異なる分割規則に従って、インストールパッケージ2を暗号化セグメント6と非暗号化セグメント7とに分割する。第3実施形態における分割規則は、インストールパッケージ2を固定長の複数のセグメントに分割し、これら複数のセグメントの中からいくつかのセグメントをランダムに選択し、これら選択したセグメントを暗号化セグメント6とするという規則である。各セグメントの固定の長さは、例えば数百バイトである。また、各セグメントの固定の長さを、インストールパッケージ2の長さの例えば100分の1に設定してもよい。
分割工程において、分割処理部21は、まず、インストールパッケージ2を固定長の複数のセグメントに分割する。
続いて、分割処理部21は、分割した複数のセグメントのうち、いくつかのセグメントをランダムに選択し、これら選択したセグメントを暗号化セグメント6とする。そして、分割処理部21は、分割した複数のセグメントのうち、残余のセグメントを非暗号化セグメント7として選択する。インストールパッケージ2を分割することにより形成されたすべてのセグメントの個数と、これらの中から暗号化セグメント6として選択する個数との比率は、秘匿化処理の作業者が情報秘匿化装置10を操作することにより、例えばインストールパッケージの要秘匿性の程度に応じて、任意に設定することができる。
続いて、分割処理部21は、インストールパッケージ2の各セグメントに番号を付し、各セグメントの先頭アドレスを算出し、各セグメントについて暗号化の有無を示すフラグを設定し、これら各セグメントの番号、先頭アドレス、長さおよび暗号化の有無を示すフラグを制御ユニット11のRAMまたは記憶部13に記憶する。
続いて、暗号化処理部22が、図9に示すように、記憶部13に記憶された共通鍵4を用いて共通鍵暗号化方式により暗号化セグメント6を暗号化する。
続いて、上述した第1の実施形態における秘匿化処理のステップS6ないしS9と同様の処理を行い、圧縮されたプロダクトパッケージ1を生成する。
本発明の第3の実施形態によっても、上述した第1または第2の実施形態と同様の効果を得ることができる。特に、インストールパッケージ2を固定長のセグメントに分割するので、分割工程における処理の簡単化を図ることができ、秘匿化処理にかかる時間を短くすることができ、情報秘匿化装置10の処理負担を減らすことができる。
(第4の実施形態)
本発明の情報秘匿化装置の第4の実施形態では、秘匿化処理の分割工程において、分割処理部21が上述した第1ないし第3の実施形態における分割規則と異なる分割規則に従って、インストールパッケージ2を暗号化セグメント6と非暗号化セグメント7とに分割する。第4実施形態における分割規則は、インストールパッケージ2をそれぞれランダムな長さを有する複数のセグメントに分割し、これら複数のセグメントの中からいくつかのセグメントを選択し、これら選択したセグメントを暗号化セグメントとするという規則である。
分割工程において、分割処理部21は、まず、インストールパッケージ2をランダムな長さを有する複数のセグメントに分割する。
続いて、分割処理部21は、分割した各セグメントに、インストールパッケージ2の先頭から末尾に向けて順に番号を付し、これらセグメントのうち、偶数の番号が付されたセグメントを暗号化セグメント6として選択し、奇数の番号が付されたセグメントを非暗号化セグメント7として選択する。
続いて、分割処理部21は、インストールパッケージ2の各セグメントの先頭アドレスおよび長さを調べ、各セグメントについて暗号化の有無を示すフラグを設定し、各セグメントの番号、先頭アドレス、長さおよび暗号化の有無を示すフラグを制御ユニット11のRAMまたは記憶部13に記憶する。
続いて、暗号化処理部22が、図10に示すように、記憶部13に記憶された共通鍵4を用いて共通鍵暗号化方式により暗号化セグメント6を暗号化する。
続いて、上述した第1の実施形態における秘匿化処理のステップS6ないしS9と同様の処理を行い、圧縮されたプロダクトパッケージ1を生成する。
本発明の第4の実施形態によっても、上述した第1ないし第3の実施形態と同様の効果を得ることができる。特に、インストールパッケージ2をランダムな長さの複数のセグメントに分割し、これらセグメントのうちの一部を暗号化するので、インストールパッケージ2を強固に秘匿化することができる。例えば、インストールパッケージ2の暗号化セグメント6の復号を試みても、暗号化セグメント6がインストールパッケージ2中のどこにあるのかを発見することが困難である。
なお、上述した第1の実施形態では、所定のビットパターン8が含まれるセグメントを暗号化する場合を例にあげたが、本発明はこれに限らない。所定のテキストパターンが含まれるセグメントを暗号化してもよい。
また、上述した各実施形態では、秘匿化処理の編成工程において、インストールパッケージ2、電子署名3、共通鍵4および制御テーブル5を結合する場合を例にあげたが、本発明はこれに限らない。例えば、インストールパッケージ2、電子署名3および共通鍵4を含む第1のプロダクトパッケージと、制御テーブル5を含む第2のプロダクトパッケージとを、相互に別々に生成し、例えばいずれか一方のプロダクトパッケージに他方のプロダクトパッケージを識別するための識別情報を付すことにより、両者を関連付けてもよい。
また、上述した各実施形態にあげた分割規則と異なる分割規則を採用することも可能である。例えば、インストールパッケージ2に複数のコンピュータプログラムが含まれている場合には、それぞれのプログラムにそれぞれのセグメントが一対一に対応するようにインストールパッケージ2を複数のセグメントに分割し、各プログラムの要保護性に応じて、各セグメントを暗号化するか否かを決定してもよい。
また、上述した各実施形態では、各セグメントのハッシュ値を制御テーブル5に記録する場合を例にあげたが、本発明はこれに限らない。一部のセグメントについてハッシュ値を記録しないこととしてもよい。例えば、インストールパッケージ2に対し秘匿化処理を行った後に、プログラムまたはデータの一部や数値を変更する必要がある場合には、この変更が必要な情報片を含むセグメントについてハッシュ値を記録しないこととする。これにより、このような情報片の変更をきわめて容易に行うことができる。すなわち、情報片の変更を行った後、当該セグメントのハッシュ値の算出および記録をやり直す必要がない。
また、本発明は、請求の範囲および明細書全体から読み取るこのできる発明の要旨または思想に反しない範囲で適宜変更可能であり、そのような変更を伴う情報秘匿化方法および情報秘匿化装置もまた本発明の技術思想に含まれる。
1 プロダクトパッケージ
2 インストールパッケージ(情報)
5 制御テーブル
6 暗号化セグメント
7 非暗号化セグメント
8 ビットパターン
10 情報秘匿化装置
21 分割処理部(分割手段)
22 暗号化処理部(暗号化手段)
23 演算処理部
24 テーブル生成部(制御テーブル生成手段)
25 編成処理部(編成手段)

Claims (3)

  1. 他のコンピュータにインストールするための情報を所定の規則に従って暗号化することにより、情報の秘匿化を図るための各工程をコンピュータに実行させる情報秘匿化方法であって、
    暗号化すべき暗号化セグメントと暗号化すべきでない非暗号化セグメントとに情報を所定の規則に従って分割する分割工程と、
    前記暗号化セグメントを暗号化する暗号化工程と、
    前記情報上における前記暗号化セグメントの位置または前記非暗号化セグメントの位置を示す制御テーブルを生成する制御テーブル生成工程と、
    前記暗号化セグメントが暗号化された前記情報と前記制御テーブルとを結合し、または関連付ける編成工程とを備え、
    前記分割工程では、前記情報において、API呼出命令を含む部分を暗号化セグメントとすることを特徴とする情報秘匿化方法。
  2. 前記暗号化セグメントのハッシュ値または前記非暗号化セグメントのハッシュ値を算出するハッシュ値算出工程を備え、
    前記制御テーブル生成工程では、前記ハッシュ値算出工程において算出されたハッシュ値を前記制御テーブルに記録することを特徴とする請求項1に記載の情報秘匿化方法。
  3. 他のコンピュータにインストールするための情報を所定の規則に従って暗号化することにより、情報の秘匿化を図る情報秘匿化装置であって、
    暗号化すべき暗号化セグメントと暗号化すべきでない非暗号化セグメントとに情報を所定の規則に従って分割する分割手段と、
    前記暗号化セグメントを暗号化する暗号化手段と、
    前記情報上において前記暗号化セグメントの位置または前記非暗号化セグメントの位置を示す制御テーブルを生成する制御テーブル生成手段と、
    前記暗号化セグメントが暗号化された前記情報と前記制御テーブルとを結合し、または関連付ける編成手段とを備え、
    前記分割手段では、前記情報において、API呼出命令を含む部分を暗号化セグメントとすることを特徴とする情報秘匿化装置。
JP2012255885A 2012-11-22 2012-11-22 情報秘匿化方法および情報秘匿化装置 Expired - Fee Related JP5574550B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012255885A JP5574550B2 (ja) 2012-11-22 2012-11-22 情報秘匿化方法および情報秘匿化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012255885A JP5574550B2 (ja) 2012-11-22 2012-11-22 情報秘匿化方法および情報秘匿化装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008154896A Division JP5337411B2 (ja) 2008-06-13 2008-06-13 情報秘匿化方法および情報秘匿化装置

Publications (2)

Publication Number Publication Date
JP2013047854A true JP2013047854A (ja) 2013-03-07
JP5574550B2 JP5574550B2 (ja) 2014-08-20

Family

ID=48010825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012255885A Expired - Fee Related JP5574550B2 (ja) 2012-11-22 2012-11-22 情報秘匿化方法および情報秘匿化装置

Country Status (1)

Country Link
JP (1) JP5574550B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268588A (zh) * 2013-05-24 2013-08-28 上海大学 基于载体图像校验码的加密域无损可逆信息隐藏方法

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6358538A (ja) * 1986-08-29 1988-03-14 Hitachi Ltd ソフトウエア保護方式
JPH04163627A (ja) * 1990-10-29 1992-06-09 Hitachi Ltd プログラム変換方法
JP2005018725A (ja) * 2002-08-01 2005-01-20 Matsushita Electric Ind Co Ltd 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法
JP2005165919A (ja) * 2003-12-05 2005-06-23 Fuji Xerox Co Ltd プログラム実行方法、プログラム作成方法、情報処理装置及びプログラム
JP2006085676A (ja) * 2004-08-20 2006-03-30 Matsushita Electric Ind Co Ltd 暗号化命令処理装置
JP2006522387A (ja) * 2003-02-11 2006-09-28 ヴィアイ・ラボラトリーズ・エルエルシー コンピュータソフトウェアの実行を管理するためのシステムおよび方法
JP2007506187A (ja) * 2003-09-18 2007-03-15 アップル コンピュータ、インコーポレイテッド インクリメンタルなコード署名の方法及び装置
JP2007148575A (ja) * 2005-11-24 2007-06-14 Fuji Xerox Co Ltd 保護済み実行プログラムの作成のためのプログラム、方法及び装置
WO2007072568A1 (ja) * 2005-12-22 2007-06-28 Fujitsu Limited プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒体
JP2007281571A (ja) * 2006-04-03 2007-10-25 Fuji Xerox Co Ltd 画像処理装置及びそのプログラム
JP2007328541A (ja) * 2006-06-07 2007-12-20 Canon Inc 電子機器
JP2008040853A (ja) * 2006-08-08 2008-02-21 Matsushita Electric Ind Co Ltd アプリケーション実行方法およびアプリケーション実行装置
JP2008102618A (ja) * 2006-10-17 2008-05-01 Toshiba Corp 電子機器およびファームウェア保護方法
JP2009135890A (ja) * 2007-10-31 2009-06-18 Hitachi Ltd 暗号化装置、復号装置及び暗号システム
WO2010038764A1 (ja) * 2008-10-01 2010-04-08 株式会社Icon 暗号化装置、暗号化方法およびプログラム

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6358538A (ja) * 1986-08-29 1988-03-14 Hitachi Ltd ソフトウエア保護方式
JPH04163627A (ja) * 1990-10-29 1992-06-09 Hitachi Ltd プログラム変換方法
JP2005018725A (ja) * 2002-08-01 2005-01-20 Matsushita Electric Ind Co Ltd 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法
JP2006522387A (ja) * 2003-02-11 2006-09-28 ヴィアイ・ラボラトリーズ・エルエルシー コンピュータソフトウェアの実行を管理するためのシステムおよび方法
JP2007506187A (ja) * 2003-09-18 2007-03-15 アップル コンピュータ、インコーポレイテッド インクリメンタルなコード署名の方法及び装置
JP2005165919A (ja) * 2003-12-05 2005-06-23 Fuji Xerox Co Ltd プログラム実行方法、プログラム作成方法、情報処理装置及びプログラム
JP2006085676A (ja) * 2004-08-20 2006-03-30 Matsushita Electric Ind Co Ltd 暗号化命令処理装置
JP2007148575A (ja) * 2005-11-24 2007-06-14 Fuji Xerox Co Ltd 保護済み実行プログラムの作成のためのプログラム、方法及び装置
WO2007072568A1 (ja) * 2005-12-22 2007-06-28 Fujitsu Limited プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒体
JP2007281571A (ja) * 2006-04-03 2007-10-25 Fuji Xerox Co Ltd 画像処理装置及びそのプログラム
JP2007328541A (ja) * 2006-06-07 2007-12-20 Canon Inc 電子機器
JP2008040853A (ja) * 2006-08-08 2008-02-21 Matsushita Electric Ind Co Ltd アプリケーション実行方法およびアプリケーション実行装置
JP2008102618A (ja) * 2006-10-17 2008-05-01 Toshiba Corp 電子機器およびファームウェア保護方法
JP2009135890A (ja) * 2007-10-31 2009-06-18 Hitachi Ltd 暗号化装置、復号装置及び暗号システム
WO2010038764A1 (ja) * 2008-10-01 2010-04-08 株式会社Icon 暗号化装置、暗号化方法およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268588A (zh) * 2013-05-24 2013-08-28 上海大学 基于载体图像校验码的加密域无损可逆信息隐藏方法

Also Published As

Publication number Publication date
JP5574550B2 (ja) 2014-08-20

Similar Documents

Publication Publication Date Title
JP5337411B2 (ja) 情報秘匿化方法および情報秘匿化装置
KR102107872B1 (ko) 컴파일러 기반 난독화 기법
CN102360412B (zh) Java源代码的保护方法和系统
CN111143869B (zh) 应用程序包处理方法、装置、电子设备及存储介质
US9515818B2 (en) Multi-block cryptographic operation
KR101216995B1 (ko) 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법
US7805616B1 (en) Generating and interpreting secure and system dependent software license keys
KR20100017844A (ko) 데이터를 보호할 때 적용되는 프로그램 가능한 프로세싱 단계들을 정의하기위한 시스템 및 방법
KR20100138986A (ko) 암호 시스템
US20150121073A1 (en) Software fingerprinting
CN107005402A (zh) 提供对内容的访问
CN111656345B (zh) 启用容器文件中加密的软件模块
KR20160118920A (ko) Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체
CN107241620B (zh) 媒体内容的数字版权管理方法、drm客户端和服务端
CN114547558B (zh) 授权方法、授权控制方法及装置、设备和介质
US10867017B2 (en) Apparatus and method of providing security and apparatus and method of executing security for common intermediate language
CN103853943A (zh) 程序保护方法及装置
CN110149312B (zh) 数据处理方法、装置、系统及计算机可读存储介质
EP1636661A1 (en) Digital rights management
KR20080046515A (ko) 콘텐츠 파일의 암호화 및 복호화 방법
JP5574550B2 (ja) 情報秘匿化方法および情報秘匿化装置
WO2019118145A1 (en) Method and appartus to dynamically encode data at runtime
CN104866740A (zh) 一种防静态分析文件的方法及装置
JP2009284231A (ja) 鍵生成装置、鍵生成方法及び鍵生成プログラム、並びに、電子機器
KR101699176B1 (ko) Hdfs 데이터 암호화 및 복호화 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140603

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140630

R150 Certificate of patent or registration of utility model

Ref document number: 5574550

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees