(57)【要約】【課題】難読化の処理時間を短縮することを目的とする。【解決手段】少なくとも格納データと、前記格納データの格納先を示すアドレスデータと、を有するレコードのデータを処理する情報処理であって、識別番号と、前記アドレスデータに対応し、前記識別番号に基づいて生成された第一の識別データと、前記格納データに対応し、前記識別番号に基づいて生成された第二の識別データと、を生成し、前記第一の識別データが付加されたアドレスデータと、前記第二の識別データが付加された格納データと、に前記レコードのデータを分割し、データをランダムに並び替え、データを暗号化し、前記並び替えは、前記第一の識別データが付加されたアドレスデータ、前記第二の識別データが付加された格納データ、または前記レコードのデータのうち少なくともいずれか一つを並び替え、前記暗号化は、前記第一の識別データと、前記第二の識別データと、前記アドレスデータと、を暗号化することで上記課題を解決する。【選択図】図３
2015079346.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも格納データと、前記格納データの格納先を示すアドレスデータと、を有するレコードのデータを処理する情報処理装置であって、
識別番号と、前記アドレスデータに対応し、前記識別番号に基づいて生成された第一の識別データと、前記格納データに対応し、前記識別番号に基づいて生成された第二の識別データと、を生成する情報生成手段と、
前記第一の識別データが付加されたアドレスデータと、前記第二の識別データが付加された格納データと、に前記レコードのデータを分割する分割手段と、
データをランダムに並び替える並び替え手段と、
データを暗号化する暗号化手段と、を有し、
前記並び替え手段は、
前記第一の識別データが付加されたアドレスデータ、前記第二の識別データが付加された格納データ、または前記レコードのデータのうち少なくともいずれか一つを並び替え、
前記暗号化手段は、
前記第一の識別データと、前記第二の識別データと、前記アドレスデータと、を暗号化する情報処理装置。
【請求項２】
少なくとも
データを復号化する復号化手段と、
前記アドレスデータと、前記格納データと、を連結し、レコードのデータを生成する連結手段と、
前記レコードのデータを前記アドレスデータに基づいて整列させる整列手段と、を有する請求項１に記載の情報処理装置。
【請求項３】
前記並び替え手段は、
前記分割手段で分割された前記第一の識別データが付加されたアドレスデータと、前記第二の識別データが付加された格納データと、を並び替え、
前記暗号化手段は、
前記並び替え手段によって並び替えられた前記アドレスデータと、前記並び替え手段によって並び替えられた前記アドレスデータに付加されている第一の識別データと、前記並び替え手段によって並び替えられた前記格納データに付加されている第二の識別データと、を暗号化する請求項１または２に記載の情報処理装置。
【請求項４】
前記並び替え手段は、
前記レコードのデータを並び替え、
前記分割手段は、
前記並び替え手段によって並び替えられた前記レコードのデータを分割し、
前記暗号化手段は、
前記分割手段によって分割された前記アドレスデータと、前記分割手段によって分割された前記アドレスデータに付加されている第一の識別データと、前記分割手段によって分割された前記格納データに付加されている第二の識別データと、を暗号化する請求項１または２に記載の情報処理装置。
【請求項５】
前記暗号化手段は、
前記分割手段によって分割された前記アドレスデータと、前記分割手段によって分割された前記アドレスデータに付加されている第一の識別データと、前記分割手段によって分割された前記格納データに付加されている第二の識別データと、を暗号化し、
前記並び替え手段は、
前記暗号化手段で暗号化された前記第一の識別データが付加され、かつ、前記暗号化手段で暗号化されたアドレスデータと、前記暗号化手段で暗号化された前記第二の識別データが付加された格納データと、を並び替える請求項１または２に記載の情報処理装置。
【請求項６】
前記並び替え手段は、
前記レコードのデータを並び替え、
前記暗号化手段は、
前記並び替え手段によって並び替えられた前記レコードのデータが有する前記第一の識別データと、前記第二の識別データと、前記アドレスデータと、を暗号化し、
前記分割手段は、
前記暗号化手段によって暗号化された前記レコードのデータを分割する請求項１または２に記載の情報処理装置。
【請求項７】
前記暗号化手段は、
前記レコードのデータが有する前記第一の識別データと、前記第二の識別データと、前記アドレスデータと、を暗号化し、
前記分割手段は、
前記暗号化手段によって暗号化された前記レコードのデータを分割し、
前記並び替え手段は、
前記分割手段で分割された前記第一の識別データが付加されたアドレスデータと、前記分割手段で分割された前記第二の識別データが付加された格納データと、を並び替える請求項１または２に記載の情報処理装置。
【請求項８】
前記暗号化手段は、
前記レコードのデータが有する前記第一の識別データと、前記第二の識別データと、前記アドレスデータと、を暗号化し、
前記並び替え手段は、
前記暗号化手段によって暗号化された前記レコードのデータをを並び替え、
前記分割手段は、
前記並び替え手段によって並び替えられた前記レコードのデータを分割する請求項１または２に記載の情報処理装置。
【請求項９】
少なくとも格納データと、前記格納データの格納先を示すアドレスデータと、を有するレコードのデータを処理する情報処理装置であって、
識別番号と、前記アドレスデータに対応し、前記識別番号に基づいて生成された第一の識別データと、前記格納データに対応し、前記識別番号に基づいて生成された第二の識別データと、を生成する情報生成手段と、
前記第一の識別データが付加されたアドレスデータと、前記第二の識別データが付加された格納データと、に前記レコードのデータを分割する分割手段と、
データをランダムに並び替える並び替え手段と、
データを暗号化する暗号化手段と、を有し、
前記並び替え手段は、
前記第一の識別データが付加されたアドレスデータ、前記第二の識別データが付加された格納データ、または前記レコードのデータのうち少なくともいずれか一つを並び替え、
前記暗号化手段は、
前記第一の識別データと、前記第二の識別データと、前記アドレスデータと、を暗号化する情報処理装置と、
データを復号化する復号化手段を有し、
前記復号化手段は、
前記暗号化手段によって暗号化されたデータを復号化する情報処理装置と、を有する情報処理システム。
【請求項１０】
少なくとも格納データと、前記格納データの格納先を示すアドレスデータと、を有するレコードのデータを処理する情報処理方法であって、
識別番号と、前記アドレスデータに対応し、前記識別番号に基づいて生成された第一の識別データと、前記格納データに対応し、前記識別番号に基づいて生成された第二の識別データと、を生成する情報生成手順と、
前記第一の識別データが付加されたアドレスデータと、前記第二の識別データが付加された格納データと、に前記レコードのデータを分割する分割手順と、
データをランダムに並び替える並び替え手順と、
データを暗号化する暗号化手順と、を有し、
前記並び替え手順は、
前記第一の識別データが付加されたアドレスデータ、前記第二の識別データが付加された格納データ、または前記レコードのデータのうち少なくともいずれか一つを並び替え、
前記暗号化手順は、
前記第一の識別データと、前記第二の識別データと、前記アドレスデータと、を暗号化する情報処理方法。
【請求項１１】
少なくとも格納データと、前記格納データの格納先を示すアドレスデータと、を有するレコードのデータを処理する情報処理をコンピュータに実行させるためのプログラムであって、
識別番号と、前記アドレスデータに対応し、前記識別番号に基づいて生成された第一の識別データと、前記格納データに対応し、前記識別番号に基づいて生成された第二の識別データと、を生成する情報生成手順と、
前記第一の識別データが付加されたアドレスデータと、前記第二の識別データが付加された格納データと、に前記レコードのデータを分割する分割手順と、
データをランダムに並び替える並び替え手順と、
データを暗号化する暗号化手順と、を有し、
前記並び替え手順は、
前記第一の識別データが付加されたアドレスデータ、前記第二の識別データが付加された格納データ、または前記レコードのデータのうち少なくともいずれか一つを並び替え、
前記暗号化手順は、
前記第一の識別データと、前記第二の識別データと、前記アドレスデータと、を暗号化する情報処理を前記コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、情報処理システム、及びプログラムに関する。
【背景技術】
【０００２】
従来、データ全体を暗号化すると時間が多くかかるため、情報の重要度の高い部分のみを暗号化することで暗号化の処理時間を短縮する方法が知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−３４４９２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した方法では、重要度が高いデータのデータ量が多い場合、処理時間が多くかかってしまう可能性があった。
【０００５】
本発明の１つの側面は、上述の課題に鑑みてなされたものであり、難読化の処理時間を短縮することのできる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一態様における、少なくとも格納データと、前記格納データの格納先を示すアドレスデータと、を有するレコードのデータを処理する情報処理装置であって、識別番号と、前記アドレスデータに対応し、前記識別番号に基づいて生成された第一の識別データと、前記格納データに対応し、前記識別番号に基づいて生成された第二の識別データと、を生成する情報生成手段と、前記第一の識別データが付加されたアドレスデータと、前記第二の識別データが付加された格納データと、に前記レコードのデータを分割する分割手段と、データをランダムに並び替える並び替え手段と、データを暗号化する暗号化手段と、を有し、前記並び替え手段は、前記第一の識別データが付加されたアドレスデータ、前記第二の識別データが付加された格納データ、または前記レコードのデータのうち少なくともいずれか一つを並び替え、前記暗号化手段は、前記第一の識別データと、前記第二の識別データと、前記アドレスデータと、を暗号化することを特徴とする。
【発明の効果】
【０００７】
難読化の処理時間を短縮することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る情報処理システムの構成の一例を示すシステム図である。
【図２】本発明の一実施形態に係るデータの形式の一例を説明する図である。
【図３】本発明の一実施形態に係る難読化する処理の一例を示すフローチャートである。
【図４】本発明の一実施形態に係る難読化する処理で用いられるデータの一例を説明する図である。
【図５】本発明の一実施形態に係る可読化する処理の一例を示すフローチャートである。
【図６】本発明の一実施形態に係る可読化する処理で用いられるデータの一例を説明する図である。
【図７】本発明の一実施形態に係る情報処理装置のハードウェア構成の一例を説明するブロック図である。
【図８】本発明の一実施形態に係る難読化する処理を行う情報処理装置の一例を説明する機能ブロック図である。
【図９】本発明の一実施形態に係る可読化する処理を行う情報処理装置の一例を説明する機能ブロック図である。
【図１０】本発明の一実施形態に係る第２実施形態の難読化する処理の一例を示すフローチャートである。
【図１１】本発明の一実施形態に係る第２実施形態の難読化する処理で用いられるデータの一例を説明する図である。
【図１２】本発明の一実施形態に係る第３実施形態の難読化する処理の一例を示すフローチャートである。
【図１３】本発明の一実施形態に係る第３実施形態の難読化する処理で用いられるデータの一例を説明する図である。
【図１４】本発明の一実施形態に係る第４実施形態の難読化する処理の一例を示すフローチャートである。
【図１５】本発明の一実施形態に係る第４実施形態の難読化する処理で用いられるデータの一例を説明する図である。
【図１６】本発明の一実施形態に係る第５実施形態の難読化する処理の一例を示すフローチャートである。
【図１７】本発明の一実施形態に係る第５実施形態の難読化する処理で用いられるデータの一例を説明する図である。
【図１８】本発明の一実施形態に係る第６実施形態の難読化する処理の一例を示すフローチャートである。
【図１９】本発明の一実施形態に係る第６実施形態の難読化する処理で用いられるデータの一例を説明する図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について説明する。
【００１０】
＜第１実施形態＞
図１は、本発明の一実施形態に係る情報処理システムの構成の一例を示すシステム図である。
【００１１】
情報処理システム１は、難読化用情報処理装置１００と、可読化用情報処理装置１０１と、を有する。難読化用情報処理装置１００、および可読化用情報処理装置１０１は、ネットワーク２００を介して接続している。
【００１２】
難読化用情報処理装置１００は、データを後述する並び替え、分割、識別データの生成、および暗号化などの処理を行い、平文ファイルを秘密文ファイルに変換するための処理を行う。
【００１３】
可読化用情報処理装置１０１は、データを後述する整列、連結、および復号化などの処理を行い、秘密文ファイルを平文ファイルに変換するための処理を行う。
【００１４】
平文ファイルは、例えばマイコン（Ｍｉｃｒｏｃｏｍｐｕｔｅｒ）のファームウェア（Ｆｉｒｍｗａｒｅ）のプログラムデータなどである。プログラムデータは、プロセッサの内蔵メモリまたは不揮発性のメモリなどの記憶領域に格納され、使用の際にロードされて用いられる。プログラムデータは、開発環境のコンパイル処理によってファイルに出力され、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）ライタ、またはマイコン専用のローダなどのツールを利用してメモリへ書き込まれる。
【００１５】
プログラムデータのフォーマットは、例えばモトローラＳフォーマット、またはインテルＨＥＸフォーマットなどである。以下、平文ファイルは、モトローラＳフォーマットのプログラムデータである場合を例にして説明する。
【００１６】
プログラムデータは、暗号化されていない文字列である平文、いわゆるプレーンテキスト（Ｐｌａｉｎ  Ｔｅｘｔ）で記載される。プログラムデータは、１行に１レコードを記載し、改行によってレコードの終端を示す形式で構成する。レコードは、格納先の先頭アドレスであるアドレスと、アドレスによって指定された格納先に格納するプログラムコードを含む格納データと、が対になって記載される。
【００１７】
なお、レコードには、アドレス、およびデータ以外の情報が含まれてもよい。アドレス、およびデータ以外の情報は、例えばレコードタイプ、またはレコード長を示す情報などヘッダデータである。アドレス、およびデータ以外の情報は、データの送受信などで誤り検出の処理に用いられるチェックサム（Ｃｈｅｃｋ  Ｓｕｍ）を有していてもよい。
【００１８】
図２は、本発明の一実施形態に係るデータの形式の一例を説明する図である。
【００１９】
図２（ａ）は、プログラムデータの構成の一例を説明する図である。
【００２０】
プログラムデータは、図２（ａ）で示すように、複数のレコードで構成される。
【００２１】
図２（ｂ）は、レコードの構成の一例を説明する図である。
【００２２】
レコード４は、図２（ｂ）で示すように、アドレス部と、格納部と、を有する。レコード４は、図２（ｂ）で示すように、チェックサムなどの情報を有してもよい。
【００２３】
なお、プログラムデータは、図２（ａ）で示した形式に限られない。例えば、プログラムデータは、いわゆるヘッダレコードなど付随情報を有してもよい。
【００２４】
なお、レコードは、図２（ｂ）で示した形式に限られない。例えば、レコードは、アドレス部、および格納部は、１６ビット、または３２ビットなど他のデータ量に対応した形式の情報でもよい。
【００２５】
プログラムデータは、例えばマイコン出荷の際、ファームウェアの不具合対応の際、またはバージョンアップの際、マイコンが組み込まれた製品を納入した顧客先などに持ち込まれ、ツールを利用してメモリへ書き込まれる。
【００２６】
プログラムデータは、第三者へ流出した場合、逆アセンブル（Ａｓｓｅｍｂｌｅ）、または逆コンパイル（Ｃｏｍｐｉｌｅ）などのリバースエンジニアリング（Ｒｅｖｅｒｓｅ  Ｅｎｇｉｎｅｅｒｉｎｇ）により解読される可能性がある。プログラムデータを暗号化などの処理を行い難読化することで、解読されるのを難しくすることができる。
【００２７】
＜難読化する処理＞
図３は、本発明の一実施形態に係る難読化する処理の一例を示すフローチャートである。
【００２８】
ステップＳ３０１では、難読化用情報処理装置１００は、図２で示したプログラムデータが入力される。プログラムデータは、例えば図１の平文ファイル２である。入力は、ネットワークを介して外部装置（図示せず）から行われる。なお、入力は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリなど記憶媒体を用いて入力されてもよい。また、プログラムデータは、難読化用情報処理装置１００の外部から入力されるデータに限られない。例えば、プログラムデータは、難読化用情報処理装置１００で生成されてもよい。
【００２９】
ステップＳ３０２では、難読化用情報処理装置１００は、ステップＳ３０１で入力されたプログラムデータの各レコードに対応させた識別番号を生成する。
【００３０】
ステップＳ３０３では、難読化用情報処理装置１００は、ステップＳ３０２で生成した識別番号に基づいて各レコードのアドレス部に対応した第一の識別データ（以下、第一の識別データという。）を生成する。
【００３１】
また、難読化用情報処理装置１００は、ステップＳ３０２で生成した識別番号に基づいて各レコードの格納データ部に対応した第二の識別データ（以下、第二の識別データという。）を生成する。
【００３２】
ステップＳ３０４では、難読化用情報処理装置１００は、各レコードを格納データと、アドレスデータと、に分割する。アドレスデータは、各レコードのアドレス部の情報と、第一の識別データと、を有する。格納データは、各レコードの格納部の情報と、第二の識別データと、を有する。
【００３３】
ステップＳ３０５では、難読化用情報処理装置１００は、ステップＳ３０４で分割されたアドレスデータと、格納データと、をランダムに並び替える。
【００３４】
格納データは、各格納データをアドレスの順に連結しない場合、解読が難しい。したがって、各格納データをランダムに並び替える処理を行うことで、第三者へ流出した場合でも第三者に解読されるのを難しくすることができる。
【００３５】
ステップＳ３０６では、難読化用情報処理装置１００は、アドレスデータと、第一の識別データと、第二の識別データと、を暗号化する処理を行い、図１の秘密文ファイル３を生成する。
【００３６】
なお、暗号化する処理は、暗号化する処理時間をさらに短くするために、第一の識別データと、第二の識別データと、を暗号化するでもよい。
【００３７】
ステップＳ３０７では、難読化用情報処理装置１００は、ステップＳ３０６で生成した図１の秘密文ファイル３を可読化用情報処理装置１０１に送信するなどの出力処理を行う。
【００３８】
図４は、本発明の一実施形態に係る難読化する処理で用いられるデータの一例を説明する図である。
【００３９】
図４（ａ）は、図３のステップＳ３０１で入力される平文のプログラムデータである。図４（ａ）の１行がレコードである。以下、図４（ａ）で示した平文のプログラムデータの場合を例に説明する。
【００４０】
図４（ａ）では、プログラムデータは、平文、かつ、アドレスが８バイト間隔で昇順に並んでいるレコードの順序で記載されている。
【００４１】
図４（ｂ）は、図３のステップＳ３０２で各レコードに対応した識別番号が生成された場合である。識別番号は、各レコードに重複無く付与する乱数である。なお、識別番号は、図４（ｂ）に示す番号に限られない。識別番号は、各レコードで重複する番号でなければ連続した値でなくともよい。例えば識別番号は、いわゆる擬似乱数を生成するアルゴリズムによって生成される数値である。識別番号は、難読化用情報処理装置１００が乱数生成器（図示せず）を有し、乱数生成器によって生成された数値でもよい。
【００４２】
図４（ｃ）は、図３のステップＳ３０３で識別番号に基づいて第一の識別データと、第二の識別データと、を生成した場合である。
【００４３】
図４（ｃ）に示すように、第一の識別データは、例えば識別番号に「Ａ」の文字データを加えて生成される。
【００４４】
図４（ｃ）に示すように、第二の識別データは、例えば識別番号に「Ｄ」の文字データを加えて生成される。
【００４５】
第一の識別データと第二の識別データの数値は、識別番号に基づいた値であるため同じ値である。
【００４６】
なお、文字データは、図４で用いている文字に限られない。文字データは、アドレスデータか格納データであるかを区別できればよい。例えば、文字データは、第一の識別データでは「Ａ」、「Ｂ」、または「Ｃ」のいずれか一文字を用いて、かつ、第二の識別データでは「Ｄ」、「Ｅ」、または「Ｆ」のいずれか一文字を用いるとしてもよい。
【００４７】
図４（ｄ）は、図３のステップＳ３０４でレコードが格納データと、アドレスデータと、に分割された場合である。
【００４８】
図４（ｅ）は、図３のステップＳ３０５で第一の識別データが付加されたアドレスデータと、第二の識別データが付加された格納データと、をランダムに並び替えした場合である。図４（ｅ）は、アドレスデータを第一の識別データの昇順、かつ、格納データを第二の識別データの降順に並び替えし、組み合わせた場合で例示している。なお、並び替えは、図４（ｅ）の方法に限られない。例えば並び替えは、アドレスデータの値が不規則になればよく、他のソートのアルゴリズムによって実現しても良い。
【００４９】
図４（ｆ）は、図３のステップＳ３０６で第一の識別データと、第二の識別データと、アドレスデータと、を暗号化した場合である。図４（ｆ）では、暗号化したデータは、下線部によって記載している（以下、暗号化したデータは下線部で示す）。暗号化は、例えば共通鍵暗号方式などの方式を用いる。暗号化は、公開鍵暗号方式でもよい。
【００５０】
図３のステップＳ３０５でランダムな並び替えによって、プログラムデータの解読が難しくなっているため、暗号化の処理は、共通鍵暗号方式など鍵の管理が簡単な方式で行うことができる。
【００５１】
識別データ、およびアドレスデータは、格納データと比較してデータ量が少ないため、識別データと、アドレスデータと、を部分的に暗号化することで、暗号化の処理時間を短くすることができる。
【００５２】
＜可読化する処理＞
図５は、本発明の一実施形態に係る可読化する処理の一例を示すフローチャートである。
【００５３】
ステップＳ５０１では、可読化用情報処理装置１０１は、難読化用情報処理装置１００から出力された図１の秘密文ファイル３を受信するなど入力処理を行う。
【００５４】
ステップＳ５０２では、可読化用情報処理装置１０１は、難読化用情報処理装置１００によって暗号化されたデータを復号化する処理を行う。難読化用情報処理装置１００によって暗号化されたデータがアドレスデータと、第一の識別データと、第二の識別データと、を暗号化した場合、アドレスデータと、第一の識別データと、第二の識別データと、を復号化する処理を行う。
【００５５】
ステップＳ５０３では、可読化用情報処理装置１０１は、第一の識別データと、第二の識別データと、に基づいてアドレスデータに対応する格納データを連結させ、レコードにする処理を行う。
【００５６】
ステップＳ５０４では、可読化用情報処理装置１０１は、第一の識別データと、第二の識別データと、を消去する処理を行う。
【００５７】
ステップＳ５０５では、可読化用情報処理装置１０１は、レコードをアドレス部の値に基づいて整列をさせる。例えば、可読化用情報処理装置１０１は、レコードをアドレス部の値を昇順にソートする。ソートのアルゴリズムは、例えばいわゆるバブルソート、マージソード、またはクイックソートなどである。可読化用情報処理装置１０１は、ステップＳ５０５の処理までを行うことによって、図１の平文ファイル２を生成することができる。
【００５８】
ステップＳ５０６では、可読化用情報処理装置１０１は、ステップＳ５０５で生成された図１の平文ファイル２をマイコンなどに書き込む書込処理を行う。
【００５９】
以下、可読化する処理は、図４（ｆ）の秘密文ファイルが可読化用情報処理装置１０１に入力された場合を例に説明する。
【００６０】
図６は、本発明の一実施形態に係る可読化する処理で用いられるデータの一例を説明する図である。
【００６１】
図６（ａ）は、図３のステップＳ５０１で入力される秘密文のプログラムデータである。
【００６２】
図６（ｂ）は、図５のステップＳ５０２で可読化用情報処理装置１０１がアドレスデータと、第一の識別データと、第二の識別データと、を復号化する処理を行った場合である。
【００６３】
図６（ｃ）は、図５のステップＳ５０３で可読化用情報処理装置１０１がアドレスデータと、格納データと、を連結し、レコードにする処理を行った場合である。第一の識別データ、および第二の識別データは、同一の識別番号に基づいて生成されているため、識別データの識別番号の部分からアドレスデータと格納データとを対応させることができる。
【００６４】
図６（ｄ）は、図５のステップＳ５０４で可読化用情報処理装置１０１が第一の識別データ、および第二の識別データを消去した場合である。
【００６５】
図６（ｅ）は、図５のステップＳ５０５で可読化用情報処理装置１０１がレコードのアドレス部の値に基づいて昇順に整列した場合である。
【００６６】
図６（ｅ）は、難読化用情報処理装置１００によって難読化する処理が行われる前の図４（ａ）と同一である。したがって、可読化用情報処理装置１０１による可読化の処理は、難読化の処理が行われた秘密文ファイルを平文ファイルに変換する処理である。
【００６７】
＜ハードウェア構成＞
図７は、本発明の一実施形態における情報処理装置のハードウェア構成の一例を説明するブロック図である。
【００６８】
難読化用情報処理装置１００および可読化用情報処理装置１０１は、コンピュータである。難読化用情報処理装置１００および可読化用情報処理装置１０１は、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、サーバ、またはメインフレームなどである。
【００６９】
難読化用情報処理装置１００および可読化用情報処理装置１０１は、同様の構成であるため、以下、難読化用情報処理装置１００を例に説明する。
【００７０】
難読化用情報処理装置１００は、補助記憶装置１００１と、記憶装置１００２と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００３と、を有する。また、難読化用情報処理装置１００は、コネクタ１００４と、入力Ｉ／Ｆ１００５と、出力Ｉ／Ｆ１００６と、メディアドライブ１００７と、を有する。
【００７１】
さらに、難読化用情報処理装置１００は、ネットワークＩ／Ｆ１００８を有し、ネットワークに接続している。難読化用情報処理装置１００の各構成要素は、バス（Ｂｕｓ）１００９により接続されている。なお、バス１００９への接続は、ブリッジ回路（図示せず）を介して接続した構成でもよい。また、難読化用情報処理装置１００の構成は、図７に示した構成に限られない。例えば、難読化用情報処理装置１００は、複数のバスを有し、ＣＰＵ１００３など高速な伝送によって処理を行う構成要素と、入力Ｉ／Ｆ１００５など低速な伝送によって処理を行う構成要素と、が異なるバスに接続されている構成でもよい。
【００７２】
補助記憶装置１００１は、ＣＰＵ１００３、および制御装置（図示せず）などの制御によって、ＣＰＵ１００３が行う処理の中間結果を含む各種データ、パラメータ、またはプログラムなどの情報を記憶する。補助記憶装置１００１は、例えば、ハードディスク、フラッシュＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などである。なお、補助記憶装置１００１は、コネクタ１００４、またはネットワークＩ／Ｆ１００４で接続されたハードディスク、またはＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）など外部装置（図示せず）でもよい。また、補助記憶装置１００１が記憶する情報は、情報の一部または全部を補助記憶装置１００１に代えてネットワークＩ／Ｆ１００４で接続されたファイルサーバ（図示せず）などが記憶してもよい。さらに、補助記憶装置１００１は、難読化用情報処理装置１００の有する装置、外部に接続されている装置を組み合わせた複数の装置で構成されてもよい。例えば、補助記憶装置１００１は、いわゆるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）などが構成されていてもよい。
【００７３】
記憶装置１００２は、ＣＰＵ１００３が実行するプログラムが使用する記憶領域、いわゆるメモリ（Ｍｅｍｏｒｙ）などの主記憶装置である。記憶装置１００２は、データ、プログラム、またはパラメータなどの情報を記憶する。
【００７４】
ＣＰＵ１００３は、難読化用情報処理装置１００が行う各処理のための演算、または制御を行う。例えばＣＰＵ１００３は、バス１００９を介して補助記憶装置１００１と、記憶装置１００２と、入力Ｉ／Ｆ１００５と、出力Ｉ／Ｆ１００６と、の間で情報の入出力を行う。また、ＣＰＵ１００３は、各種のプログラムを実行する。
【００７５】
なお、ＣＰＵ１００３は、並列処理によって高速化を行うために、複数のＣＰＵ、または複数のコア（ｃｏｒｅ）から構成されていてもよい。
【００７６】
なお、ＣＰＵ１００３が実行するプログラムが使用する記憶領域は、記憶装置１００２の記憶領域に限られない。例えば、記憶領域は、補助記憶装置１００１の記憶領域を使用する、いわゆる仮想メモリ方式を用いてもよい。
【００７７】
コネクタ１００４は、外部装置（図示せず）と接続し、外部装置（図示せず）と入出力を行うためのバス、いわゆる外部バスである。コネクタ１００４は、例えばＵＳＢなどである。コネクタ１００４は、ＩＥＥＥ（Ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ，Ｉｎｃ．）１３９４、またはＴｈｕｎｄｅｒｂｏｌｔ（登録商標）などでもよい。コネクタ１００４は、規格に準じたコネクタ形状、および接続ピンなどの物理的な接続端子と、接続端子を介して入力された信号を処理する処理回路（図示せず）、およびドライバ（図示せず）と、を有する。なお、コネクタ１００４は、有線に限られない。例えばＢｌｕｅｔｏｏｔｈ（登録商標）、ＴｒａｎｓｆｅｒＪｅｔ（登録商標）、およびＮＦＣ（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）などの無線を用いてもよい。
【００７８】
入力Ｉ／Ｆ１００５は、難読化用情報処理装置１００に入力装置を接続するためのインタフェース（Ｉｎｔｅｒｆａｃｅ）である。入力装置は、例えば、処理に必要な値、またはコマンドなどを入力するキーボード１００５１などである。入力装置は、二次元の移動距離を難読化用情報処理装置１００に入力するマウス１００５２などである。入力装置は、ペンタブレットなどポインティングデバイスなどでもよい。なお、入力装置は、コネクタ１００４に接続される構成でもよい。
【００７９】
出力Ｉ／Ｆ１００６は、処理結果などを表示する出力装置であるディスプレイ１００６１、ディスプレイ１００６１に出力する画像信号を制御する処理回路（図示せず）、ドライバ（図示せず）、およびケーブル（図示せず）などである。なお、出力装置は、ディスプレイ１００６１に代えてプロジェクタなどの投影装置でもよい。
【００８０】
なお、入力Ｉ／Ｆ１００５に接続される入力装置と、出力Ｉ／Ｆ１００６に接続される出力装置と、は入力装置と出力装置が一体となった装置、いわゆるタッチパネルなどであってもよい。
【００８１】
メディアドライブ１００７は、記録媒体であるメディア１００７１と接続し、情報の入出力を行うための処理を行う。メディア１００７１は、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ブルーレイなど光ディスクである。メディア１００７１は、フレキシブルディスクなどの磁気ディスク、またはＳＤ（登録商標）カード、コンパクトフラッシュ（登録商標）などのフラッシュメモリでもよい。なお、情報の入出力は、ＵＳＢメモリをコネクタ１００４に接続、または後述するネットワークＩ／Ｆ１００８を介して行ってもよい。また、難読化用情報処理装置１００は、メディアドライブ１００７を有しない構成としてもよい。
【００８２】
ネットワークＩ／Ｆ１００８は、難読化用情報処理装置１００を有線または無線でＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワークに接続するためのインタフェースである。ネットワークＩ／Ｆ１００８は、ＩＥＥＥなどの規格に準じたコネクタ形状、および接続ピンなどの物理的な接続端子と、難読化用情報処理装置１００と回線を物理的に接続させるケーブルと、接続端子を介して入力された信号を処理する処理回路（図示せず）、およびドライバ（図示せず）と、を有する。なお、難読化用情報処理装置１００は、ＬＡＮを介して他のネットワーク、またはインターネットに接続していてもよい。
【００８３】
バス１００９は、難読化用情報処理装置１００の各構成要素間の通信に用いられる。バス１００９は、いわゆる内部バスである。バス１００９は、例えばＰＣＩ  Ｅｘｐｒｅｓｓ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｂｕｓ  Ｅｘｐｒｅｓｓ）である。バス１００９は、ＰＣＩ、またはＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などでもよい。
【００８４】
なお、難読化用情報処理装置１００は、画像に係る処理を行うためのプロセッサ、いわゆるＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）（図示せず）と、画像に係る処理を行うための記憶装置（図示せず）と、を有してもよい。
【００８５】
なお、難読化用情報処理装置１００は、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）ボードなどを用いて、難読化用情報処理装置１００の実行する処理の一部、または全部をファームウェアで実現してもよい。
【００８６】
また、難読化用情報処理装置１００は、各種プログラムによる実行に代えて、同様の処理全部または同様の処理の一部を実行できる回路を、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）によって実現してもよい。さらに、難読化用情報処理装置１００は、ＡＳＩＣに代えて、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、またはＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などによって実現してもよい。
【００８７】
なお、説明したハードウェア構成は一例であり、情報処理装置は、説明した構成要素をすべて有していなくてもよい。また、情報処理装置は、説明した構成要素以外の要素が追加、または説明した構成要素を冗長して有してもよい。
【００８８】
＜難読化用情報処理装置の構成＞
図８は、本発明の一実施形態に係る難読化する処理を行う情報処理装置の一例を説明する機能ブロック図である。
【００８９】
難読化する処理を行う情報処理装置は、例えば難読化用情報処理装置１００である。難読化用情報処理装置１００は、図７で説明したハードウェア構成である。難読化用情報処理装置１００は、入力処理部１００Ｆ１と、暗号化処理部１００Ｆ２と、情報生成処理部１００Ｆ３と、分割処理部１００Ｆ４と、並び替え処理部１００Ｆ５と、制御部１００Ｆ６と、出力処理部１００Ｆ７と、を有する。
【００９０】
入力処理部１００Ｆ１は、図７のＣＰＵ１００３などによって、入力データである図１の平文ファイル２を難読化用情報処理装置１００に入力するための処理を行う。入力処理部１００Ｆ１は、図３のステップＳ３０１で説明した入力の処理を行う。
【００９１】
なお、入力処理部１００Ｆ１は、入力データを変換する処理を行ってもよい。例えば、入力処理部１００Ｆ１は、後段の処理の前処理として、入力用の通信に用いたヘッダ情報などを消去する処理、または後段の処理で処理が高速に行われるようにデータフォーマットを変換する処理などである。
【００９２】
暗号化処理部１００Ｆ２は、図７のＣＰＵ１００３などによって、図３のステップＳ３０６で説明した暗号化する処理を行う。
【００９３】
情報生成処理部１００Ｆ３は、図７のＣＰＵ１００３などによって、図３のステップＳ３０２、およびステップＳ３０３で説明した識別番号と、第一の識別データと、第二の識別データと、などの情報を生成する処理を行う。
【００９４】
分割処理部１００Ｆ４は、図７のＣＰＵ１００３などによって、図３のステップＳ３０４で説明したレコードを格納データと、アドレスデータと、に分割する処理を行う。
【００９５】
並び替え処理部１００Ｆ５は、図７のＣＰＵ１００３などによって、図３のステップＳ３０５で説明した分割されたデータをランダムに並び替えする処理を行う。
【００９６】
制御部１００Ｆ６は、図７のＣＰＵ１００３などによって、難読化用情報処理装置１００の有する各装置、または難読化用情報処理装置１００に接続された外部装置（図示せず）などの制御を行う。
【００９７】
出力処理部１００Ｆ７は、図７のＣＰＵ１００３などによって、図３のステップＳ３０７で説明した秘密文ファイルの出力処理を行う。
【００９８】
＜可読化用情報処理装置の構成＞
図９は、本発明の一実施形態に係る可読化する処理を行う情報処理装置の一例を説明する機能ブロック図である。
【００９９】
可読化する処理を行う情報処理装置は、例えば可読化用情報処理装置１０１である。可読化用情報処理装置１０１は、図７で説明したハードウェア構成である。可読化用情報処理装置１０１は、入力処理部１０１Ｆ１と、復号化処理部１０１Ｆ２と、消去処理部１０１Ｆ３と、連結処理部１０１Ｆ４と、整列処理部１０１Ｆ５と、制御部１０１Ｆ６と、書込処理部１０１Ｆ７と、を有する。
【０１００】
入力処理部１０１Ｆ１は、図７のＣＰＵ１００３などによって、入力データである図１の秘密文ファイル３を可読化用情報処理装置１０１に入力するための処理を行う。入力処理部１０１Ｆ１は、図５のステップＳ５０１で説明した入力の処理を行う。
【０１０１】
なお、入力処理部１０１Ｆ１は、入力データを変換する処理を行ってもよい。例えば、入力処理部１０１Ｆ１は、後段の処理の前処理として、入力用の通信に用いたヘッダ情報などを消去する処理、または後段の処理で処理が高速に行われるようにデータフォーマットを変換する処理などである。
【０１０２】
復号化処理部１０１Ｆ２は、図７のＣＰＵ１００３などによって、図５のステップＳ５０２で説明した復号化する処理を行う。
【０１０３】
消去処理部１０１Ｆ３は、図７のＣＰＵ１００３などによって、図５のステップＳ５０４で説明した識別データを消去する処理を行う。
【０１０４】
連結処理部１０１Ｆ４は、図７のＣＰＵ１００３などによって、図５のステップＳ５０３で説明した格納データと、アドレスデータと、を連結し、レコードにする処理を行う。
【０１０５】
整列処理部１０１Ｆ５は、図７のＣＰＵ１００３などによって、図５のステップＳ５０５で説明しアドレスに基づいて整列処理を行う。
【０１０６】
制御部１０１Ｆ６は、図７のＣＰＵ１００３などによって、可読化用情報処理装置１０１の有する各装置、または可読化用情報処理装置１０１に接続された外部装置（図示せず）などの制御を行う。
【０１０７】
書込処理部１０１Ｆ７は、図７のＣＰＵ１００３、および図７のコネクタ１００４などによって、プログラムデータを可読化用情報処理装置１０１に接続されたマイコン、またはマイコンに書込を行うための外部装置（図示せず）に図５のステップＳ５０６で説明した書込処理を行う。
【０１０８】
なお、難読化用情報処理装置１００は、可読化用情報処理装置１０１が行う処理の一部または全部を行ってもよい。
【０１０９】
以上、本実施形態では、データ量が多く暗号化に処理時間のかかる格納データを暗号化せず、並び替えの処理と、識別データおよびアドレスデータの暗号化することによってプログラムデータを難読化することができる。したがって、本実施形態によってプログラムデータの難読化の処理時間を短縮することができる。
【０１１０】
＜第２実施形態＞
第２実施形態は、第１実施形態で用いた図１の情報処理システム１を用いる。図１の情報処理システム１の説明は、省略する。
【０１１１】
第２実施形態は、第１実施形態で用いた図７、および図８の難読化用情報処理装置１００を用いる。難読化用情報処理装置１００の説明は、省略する。
【０１１２】
第２実施形態は、第１実施形態で用いた図７、および図９の可読化用情報処理装置１０１を用いる。可読化用情報処理装置１０１の説明は、省略する。
【０１１３】
第２実施形態は、図３で説明した難読化する処理が第１実施形態と異なる。
【０１１４】
図１０は、本発明の一実施形態に係る第２実施形態の難読化する処理の一例を示すフローチャートである。
【０１１５】
第１実施形態の図３の処理と、第２実施形態の図１０の処理と、を比較すると、ステップＳ１００３乃至ステップＳ１００５が異なる。ステップＳ１００１、ステップＳ１００２は、第１実施形態の図３のステップＳ３０１、およびステップＳ３０２と同様の処理である。ステップＳ１００６、およびステップＳ１００７は、第１実施形態の図３のステップＳ３０６、およびステップＳ３０７と同様の処理である。以下、第１実施形態と異なる点を中心に説明し、第１実施形態と同様の点は説明を省略する。
【０１１６】
ステップＳ１００３では、難読化用情報処理装置１００は、図１０のステップＳ１００２で生成した識別番号を付与したレコードを並び替える処理を行う。ステップＳ１００３は、図８の並び替え処理部１００Ｆ５によって行われる。
【０１１７】
ステップＳ１００４では、難読化用情報処理装置１００は、ステップＳ１００２で生成した識別番号に基づいて第一の識別データを生成する。また、難読化用情報処理装置１００は、ステップＳ１００２で生成した識別番号に基づいて第二の識別データを生成する。ステップＳ１００４は、第１実施形態の図３のステップＳ３０３の処理と同様である。ステップＳ１００４は、図８の情報生成処理部１００Ｆ３によって行われる。
【０１１８】
ステップＳ１００５では、難読化用情報処理装置１００は、各レコードを格納データと、アドレスデータと、に分割する。ステップＳ１００５は、第１実施形態の図３のステップＳ３０４の処理と同様である。ステップＳ１００５は、図８の分割処理部１００Ｆ４によって行われる。
【０１１９】
図１１は、本発明の一実施形態に係る第２実施形態の難読化する処理で用いられるデータの一例を説明する図である。
【０１２０】
図１１（ａ）、および図１１（ｂ）は、第１実施形態と同様の処理が行われたデータであるため、第１実施形態の図４（ａ）、および図４（ｂ）と同様である。したがって、図１１（ａ）、および図１１（ｂ）の説明は省略する。
【０１２１】
図１１（ｃ）は、図１０のステップＳ１００３で、識別番号を付与したレコードをランダムに並び替えした場合である。ランダムに並び替える方法は、例えば図１１（ｃ）に示すように、生成した識別番号を番号の降順にソートする処理などである。
【０１２２】
レコードの格納部のデータは、各格納部のデータをアドレスの順に連結しない場合、データの解読が難しい。したがって、各格納データをランダムに並び替える処理を行うことで、第三者へ流出した場合でも第三者に解読されるのを難しくすることができる。図１０のステップＳ１００２で生成した識別番号は、乱数であるため、乱数に基づいてソート処理を行うことで、レコードをアドレスが不規則な順序となるように並び替えることができる。
【０１２３】
図１１（ｄ）は、図１０のステップＳ１００４で、識別番号に基づいて第一の識別データと、第二の識別データと、を生成した場合である。図１０のステップＳ１００４の処理は、第１実施形態の図３のステップＳ３０３の処理と同様である。
【０１２４】
図１１（ｅ）は、図１０のステップＳ１００５でレコードがアドレスデータと、格納データと、に分割された場合である。図１０のステップＳ１００５の処理は、第１実施形態の図３のステップＳ３０４の処理と同様である。
【０１２５】
図１１（ｆ）は、図１０のステップＳ１００６で第一の識別データと、第二の識別データと、アドレスデータと、を暗号化した場合である。
【０１２６】
難読化用情報処理装置１００が出力する図１１（ｆ）の秘密文ファイルは、第１実施形態で説明した可読化用情報処理装置１０１が、図５の可読化する処理によって第１実施形態と同様に使用することができる。
【０１２７】
なお、識別番号に基づいて識別データを生成するステップＳ１００４は、ステップＳ１００３の処理前に行われてもよい。
【０１２８】
以上、本実施形態では、データ量が多く暗号化に処理時間のかかる格納データを暗号化せず、並び替えの処理と、識別データおよびアドレスデータを暗号化することによってプログラムデータを難読化することができる。したがって、本実施形態によってプログラムデータの難読化の処理時間を短縮することができる。
【０１２９】
＜第３実施形態＞
第３実施形態は、第１実施形態で用いた図１の情報処理システム１を用いる。図１の情報処理システム１の説明は、省略する。
【０１３０】
第３実施形態は、第１実施形態で用いた図７、および図８の難読化用情報処理装置１００を用いる。難読化用情報処理装置１００の説明は、省略する。
【０１３１】
第３実施形態は、第１実施形態で用いた図７、および図９の可読化用情報処理装置１０１を用いる。可読化用情報処理装置１０１の説明は、省略する。
【０１３２】
第３実施形態は、図３で説明した難読化する処理が第１実施形態と異なる。
【０１３３】
図１２は、本発明の一実施形態に係る第３実施形態の難読化する処理の一例を示すフローチャートである。
【０１３４】
第１実施形態の図３の処理と、第３実施形態の図１２の処理と、を比較すると、ステップＳ１２０５、およびステップＳ１２０６が異なる。ステップＳ１２０１乃至ステップＳ１２０４は、第１実施形態の図３のステップＳ３０１乃至ステップＳ３０４と同様の処理である。ステップＳ１２０７は、第１実施形態の図３のステップＳ３０７と同様の処理である。以下、第１実施形態と異なる点を中心に説明し、第１実施形態と同様の点は説明を省略する。
【０１３５】
ステップＳ１２０５では、第１実施形態の図３のステップＳ３０６と同様に、難読化用情報処理装置１００は、アドレスデータと、アドレスデータの第一の識別データと、格納データの第二の識別データと、を暗号化する処理を行う。ステップＳ１２０５は、図８の暗号化処理部１００Ｆ２によって行われる。
【０１３６】
ステップＳ１２０６では、第１実施形態の図３のステップＳ３０５と同様に、難読化用情報処理装置１００は、アドレスデータと、格納データと、をランダムに並び替える。ステップＳ１２０６は、図８の並び替え処理部１００Ｆ５によって行われる。
【０１３７】
図１３は、本発明の一実施形態に係る第３実施形態の難読化する処理で用いられるデータの一例を説明する図である。
【０１３８】
図１３（ａ）、図１３（ｂ）、図１３（ｃ）、および図１３（ｄ）は、第１実施形態と同様の処理が行われたデータであるため、第１実施形態の図４（ａ）、図４（ｂ）、図４（ｃ）、および図４（ｄ）と同様である。したがって、図１３（ａ）、図１３（ｂ）、図１３（ｃ）、および図１３（ｄ）の説明は省略する。
【０１３９】
図１３（ｅ）は、図１２のステップＳ１２０５で、第一の識別データと、第二の識別データと、アドレスデータと、を暗号化した場合である。
【０１４０】
図１３（ｆ）は、図１２のステップＳ１２０６で、第一の識別データと、第二の識別データと、アドレスデータと、格納データと、を暗号化された第一の識別データ、および第二の識別データに基づいてランダムに並び替えした場合である。暗号化されたデータは、元のデータと無関係な文字に変換されるため、暗号化されたデータに基づいてソートすることによって規則性のない並びにすることができる。
【０１４１】
難読化用情報処理装置１００が出力する図１３（ｆ）の秘密文ファイルは、第１実施形態で説明した可読化用情報処理装置１０１が、図５の可読化する処理によって第１実施形態と同様に使用することができる。
【０１４２】
以上、本実施形態では、データ量が多く暗号化に処理時間のかかる格納データを暗号化せず、並び替えの処理と、識別データおよびアドレスデータを暗号化することによってプログラムデータを難読化することができる。したがって、本実施形態によってプログラムデータの難読化の処理時間を短縮することができる。
【０１４３】
＜第４実施形態＞
第４実施形態は、第１実施形態で用いた図１の情報処理システム１を用いる。図１の情報処理システム１の説明は、省略する。
【０１４４】
第４実施形態は、第１実施形態で用いた図７、および図８の難読化用情報処理装置１００を用いる。難読化用情報処理装置１００の説明は、省略する。
【０１４５】
第４実施形態は、第１実施形態で用いた図７、および図９の可読化用情報処理装置１０１を用いる。可読化用情報処理装置１０１の説明は、省略する。
【０１４６】
第４実施形態は、図３で説明した難読化する処理が第１実施形態と異なる。
【０１４７】
図１４は、本発明の一実施形態に係る第４実施形態の難読化する処理の一例を示すフローチャートである。
【０１４８】
第１実施形態の図３の処理と、第３実施形態の図１２の処理と、を比較すると、ステップＳ１４０４乃至ステップＳ１４０６が異なる。ステップＳ１４０１乃至ステップＳ１４０３は、第１実施形態の図３のステップＳ３０１乃至ステップＳ３０３と同様の処理である。ステップＳ１４０７は、第１実施形態の図３のステップＳ３０７と同様の処理である。以下、第１実施形態と異なる点を中心に説明し、第１実施形態と同様の点は説明を省略する。
【０１４９】
ステップＳ１４０４では、難読化用情報処理装置１００は、ステップＳ１４０３で識別データを付与したレコードを並び替える処理を行う。ステップＳ１４０３は、図８の並び替え処理部１００Ｆ５によって行われる。ランダムに並び替える方法は、例えば図１０のステップＳ１００３と同様に、識別データの識別番号を番号の降順にソートする処理などである。なお、ランダムに並び替える方法は、他の方法で行ってもよい。
【０１５０】
ステップＳ１４０５では、難読化用情報処理装置１００は、各レコードのアドレス部と、各レコードの第一の識別データと、各レコードの第二の識別データと、を暗号化する処理を行う。ステップＳ１４０５は、図８の暗号化処理部１００Ｆ２によって行われる。
【０１５１】
ステップＳ１４０６では、難読化用情報処理装置１００は、第二の識別データが付された格納データと、各レコードを第一の識別データが付されたアドレスデータと、に分割する。ステップＳ１００５は、第１実施形態の図３のステップＳ３０４の処理と同様である。ステップＳ１００５は、図８の分割処理部１００Ｆ４によって行われる。
【０１５２】
図１５は、本発明の一実施形態に係る第４実施形態の難読化する処理で用いられるデータの一例を説明する図である。
【０１５３】
図１５（ａ）、図１５（ｂ）、および図１５（ｃ）は、第１実施形態と同様の処理が行われたデータであるため、第１実施形態の図４（ａ）、図４（ｂ）、および図４（ｃ）と同様である。したがって、図１５（ａ）、図１５（ｂ）、および図１５（ｃ）の説明は省略する。
【０１５４】
図１５（ｄ）は、図１４のステップＳ１４０４で、識別データを付与したレコードをランダムに並び替えした場合である。
【０１５５】
図１５（ｅ）は、図１４のステップＳ１４０５で、各レコードのアドレス部と、各レコードの第一の識別データと、各レコードの第二の識別データと、を暗号化する処理を行った場合である。
【０１５６】
図１５（ｆ）は、図１４のステップＳ１４０６で、各レコードを第一の識別データが付されたアドレスデータと、第二の識別データが付された格納データと、に分割した場合である。
【０１５７】
難読化用情報処理装置１００が出力する図１５（ｆ）の秘密文ファイルは、第１実施形態で説明した可読化用情報処理装置１０１が、図５の可読化する処理によって第１実施形態と同様に使用することができる。
【０１５８】
以上、本実施形態では、データ量が多く暗号化に処理時間のかかる格納データを暗号化せず、並び替えの処理と、識別データおよびアドレスデータを暗号化することによってプログラムデータを難読化することができる。したがって、本実施形態によってプログラムデータの難読化の処理時間を短縮することができる。
【０１５９】
＜第５実施形態＞
第５実施形態は、第１実施形態で用いた図１の情報処理システム１を用いる。図１の情報処理システム１の説明は、省略する。
【０１６０】
第５実施形態は、第１実施形態で用いた図７、および図８の難読化用情報処理装置１００を用いる。難読化用情報処理装置１００の説明は、省略する。
【０１６１】
第５実施形態は、第１実施形態で用いた図７、および図９の可読化用情報処理装置１０１を用いる。可読化用情報処理装置１０１の説明は、省略する。
【０１６２】
第５実施形態は、図３で説明した難読化する処理が第１実施形態と異なる。
【０１６３】
図１６は、本発明の一実施形態に係る第５実施形態の難読化する処理の一例を示すフローチャートである。
【０１６４】
第１実施形態の図３の処理と、第５実施形態の図１６の処理と、を比較すると、ステップＳ１６０４乃至ステップＳ１６０６が異なる。ステップＳ１６０１乃至ステップＳ１６０３は、第１実施形態の図３のステップＳ３０１乃至ステップＳ３０３と同様の処理である。ステップＳ１６０７は、第１実施形態の図３のステップＳ３０７と同様の処理である。以下、第１実施形態と異なる点を中心に説明し、第１実施形態と同様の点は説明を省略する。
【０１６５】
ステップＳ１６０４では、図１４のステップＳ１４０５と同様に、難読化用情報処理装置１００は、各レコードのアドレス部と、各レコードの第一の識別データと、各レコードの第二の識別データと、を暗号化する処理を行う。ステップＳ１６０４は、図８の暗号化処理部１００Ｆ２によって行われる。
【０１６６】
ステップＳ１６０５では、難読化用情報処理装置１００は、各レコードを格納データと、アドレスデータと、に分割する。ステップＳ１６０５は、第１実施形態の図３のステップＳ３０４の処理と同様である。ステップＳ１６０５は、図８の分割処理部１００Ｆ４によって行われる。
【０１６７】
ステップＳ１６０６では、例えば第一の識別データと、第二の識別データと、アドレスデータと、格納データと、を識別データの識別番号に基づいて番号を降順に並び替えする。なお、ステップＳ１６０６の並び替えは、図３のステップＳ３０５と同様にアドレスデータを第一の識別データの番号の昇順、かつ、格納データを第二の識別データの番号の降順に並び替えし、組み合わせる方法で行ってもよい。
【０１６８】
図１７は、本発明の一実施形態に係る第５実施形態の難読化する処理で用いられるデータの一例を説明する図である。
【０１６９】
図１７（ａ）、図１７（ｂ）、および図１７（ｃ）は、第１実施形態と同様の処理が行われたデータであるため、第１実施形態の図４（ａ）、図４（ｂ）、および図４（ｃ）と同様である。したがって、図１７（ａ）、図１７（ｂ）、および図１７（ｃ）の説明は省略する。
【０１７０】
図１７（ｄ）は、図１６のステップＳ１６０４で、各レコードのアドレス部と、各レコードの第一の識別データと、各レコードの第二の識別データと、を暗号化する処理を行った場合である。
【０１７１】
図１７（ｅ）は、図１６のステップＳ１６０５で、各レコードを第一の識別データが付されたアドレスデータと、第二の識別データが付された格納データと、に分割した場合である。
【０１７２】
図１７（ｆ）は、図１６のステップＳ１６０６で、第一の識別データと、第二の識別データと、アドレスデータと、格納データと、を図１３（ｅ）と同様の方法でランダムに並び替えした場合である。
【０１７３】
難読化用情報処理装置１００が出力する図１７（ｆ）の秘密文ファイルは、第１実施形態で説明した可読化用情報処理装置１０１が、図５の可読化する処理によって第１実施形態と同様に使用することができる。
【０１７４】
以上、本実施形態では、データ量が多く暗号化に処理時間のかかる格納データを暗号化せず、並び替えの処理と、識別データおよびアドレスデータを暗号化することによってプログラムデータを難読化することができる。したがって、本実施形態によってプログラムデータの難読化の処理時間を短縮することができる。
【０１７５】
＜第６実施形態＞
第５実施形態は、第１実施形態で用いた図１の情報処理システム１を用いる。図１の情報処理システム１の説明は、省略する。
【０１７６】
第５実施形態は、第１実施形態で用いた図７、および図８の難読化用情報処理装置１００を用いる。難読化用情報処理装置１００の説明は、省略する。
【０１７７】
第５実施形態は、第１実施形態で用いた図７、および図９の可読化用情報処理装置１０１を用いる。可読化用情報処理装置１０１の説明は、省略する。
【０１７８】
第５実施形態は、図３で説明した難読化する処理が第１実施形態と異なる。
【０１７９】
図１８は、本発明の一実施形態に係る第６実施形態の難読化する処理の一例を示すフローチャートである。
【０１８０】
第１実施形態の図３の処理と、第６実施形態の図１８の処理と、を比較すると、ステップＳ１８０４乃至ステップＳ１８０６が異なる。ステップＳ１８０１乃至ステップＳ１８０３は、第１実施形態の図３のステップＳ３０１乃至ステップＳ３０３と同様の処理である。ステップＳ１８０７は、第１実施形態の図３のステップＳ３０７と同様の処理である。以下、第１実施形態と異なる点を中心に説明し、第１実施形態と同様の点は説明を省略する。
【０１８１】
ステップＳ１８０４では、図１４のステップＳ１４０５と同様に、難読化用情報処理装置１００は、各レコードのアドレス部と、各レコードの第一の識別データと、各レコードの第二の識別データと、を暗号化する処理を行う。ステップＳ１８０４は、図８の暗号化処理部１００Ｆ２によって行われる。
【０１８２】
ステップＳ１８０５では、難読化用情報処理装置１００は、ステップＳ１８０３で識別データを付与したレコードを暗号化された第一の識別データに基づいてランダムに並び替える処理を行う。ステップＳ１８０５は、図８の並び替え処理部１００Ｆ５によって行われる。
【０１８３】
ステップＳ１８０６では、難読化用情報処理装置１００は、各レコードを格納データと、アドレスデータと、に分割する。ステップＳ１８０６は、第１実施形態の図３のステップＳ３０４の処理と同様である。ステップＳ１８０６は、図８の分割処理部１００Ｆ４によって行われる。
【０１８４】
図１９は、本発明の一実施形態に係る第６実施形態の難読化する処理で用いられるデータの一例を説明する図である。
【０１８５】
図１９（ａ）、図１９（ｂ）、および図１９（ｃ）は、第１実施形態と同様の処理が行われたデータであるため、第１実施形態の図４（ａ）、図４（ｂ）、および図４（ｃ）と同様である。したがって、図１９（ａ）、図１９（ｂ）、および図１９（ｃ）の説明は省略する。
【０１８６】
図１９（ｄ）は、図１８のステップＳ１８０４で、各レコードのアドレス部と、各レコードの第一の識別データと、各レコードの第二の識別データと、を暗号化する処理を行った場合である。
【０１８７】
図１９（ｅ）は、図１８のステップＳ１８０５で、識別データを付与したレコードをランダムに並び替えした場合である。
【０１８８】
図１９（ｆ）は、図１８のステップＳ１８０６で、各レコードを第一の識別データが付されたアドレスデータと、第二の識別データが付された格納データと、に分割した場合である。
【０１８９】
以上、本実施形態では、データ量が多く暗号化に処理時間のかかる格納データを暗号化せず、並び替えの処理と、識別データおよびアドレスデータを暗号化することによってプログラムデータを難読化することができる。したがって、本実施形態によってプログラムデータの難読化の処理時間を短縮することができる。
【０１９０】
なお、平文ファイルは、モトローラＳフォーマットに限られない。例えば平文ファイルは、インテルＨＥＸフォーマットでもよい。
【０１９１】
また、実施形態で説明したシステム構成は一例であり、用途や目的に応じて様々なシステム構成があることは言うまでもない。例えば、各処理は、ネットワークを介して２以上のコンピュータによって分散、冗長、または並列に処理されてもよい。また、情報処理装置が用いる情報は、２以上の記憶装置に分散、または冗長して記憶されてもよい。
【０１９２】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【０１９３】
１  情報処理システム
２  平文ファイル
３  秘密文ファイル
４  レコード
１００  難読化用情報処理装置
１０１  可読化用情報処理装置
２００  ネットワーク
１００１  補助記憶装置
１００２  記憶装置
１００３  ＣＰＵ
１００４  コネクタ
１００５  入力Ｉ／Ｆ
１００５１  キーボード
１００５２  マウス
１００６  出力Ｉ／Ｆ
１００６１  ディスプレイ
１００７  メディアドライブ
１００７１  メディア
１００８  ネットワークＩ／Ｆ
１００９  バス
１００Ｆ１  入力処理部
１００Ｆ２  暗号化処理部
１００Ｆ３  情報生成処理部
１００Ｆ４  分割処理部
１００Ｆ５  並び替え処理部
１００Ｆ６  制御部
１００Ｆ７  出力処理部
１０１Ｆ１  入力処理部
１０１Ｆ２  復号化処理部
１０１Ｆ３  消去処理部
１０１Ｆ４  連結処理部
１０１Ｆ５  整列処理部
１０１Ｆ６  制御部
１０１Ｆ７  書込処理部
【図１】
2015079346.tif 000003
【図２】
2015079346.tif 000004
【図３】
2015079346.tif 000005
【図４】
2015079346.tif 000006
【図５】
2015079346.tif 000007
【図６】
2015079346.tif 000008
【図７】
2015079346.tif 000009
【図８】
2015079346.tif 000010
【図９】
2015079346.tif 000011
【図１０】
2015079346.tif 000012
【図１１】
2015079346.tif 000013
【図１２】
2015079346.tif 000014
【図１３】
2015079346.tif 000015
【図１４】
2015079346.tif 000016
【図１５】
2015079346.tif 000017
【図１６】
2015079346.tif 000018
【図１７】
2015079346.tif 000019
【図１８】
2015079346.tif 000020
【図１９】
2015079346.tif 000021