(57)【特許請求の範囲】
【請求項１】
暗号化されたターゲットファイルを取得するために、暗号化/復号化アルゴリズムを使用してターゲットファイルを暗号化し、前記暗号化/復号化アルゴリズムを、第1の部分暗号化/復号化アルゴリズムと第2の部分暗号化/復号化アルゴリズムとに分割するステップと、
前記第1の部分暗号化/復号化アルゴリズムおよび前記暗号化されたターゲットファイルに従って、パックされたターゲットファイルを取得するステップと、
前記パックされたターゲットファイルおよび前記第2の部分暗号化/復号化アルゴリズムを、アンパッキング装置に通知するステップと
を含むファイルパッキング方法。
【請求項２】
前記第1の部分暗号化/復号化アルゴリズムおよび前記暗号化されたターゲットファイルに従って、前記パックされたターゲットファイルを取得する前記ステップが、
パッキングテンプレートファイルを通して前記パックされたターゲットファイルを取得するために、前記第1の部分暗号化/復号化アルゴリズムを、前記パッキングテンプレートファイルのアルゴリズム領域の中に埋め込み、前記暗号化されたターゲットファイルを、前記パッキングテンプレートファイルのデータ領域の中に埋め込むステップ
を含む、請求項1に記載のファイルパッキング方法。
【請求項３】
前記第2の部分暗号化/復号化アルゴリズムを、前記アンパッキング装置に通知する前記ステップが、
前記第1の部分暗号化/復号化アルゴリズムに対応するMD5値を取得し、前記第1の部分暗号化/復号化アルゴリズムに対応する前記MD5値と、前記第2の部分暗号化/復号化アルゴリズムとの関係を、アルゴリズムライブラリに記録するステップと、
前記アルゴリズムライブラリを前記アンパッキング装置に通知するステップと
を含む、請求項1に記載のファイルパッキング方法。
【請求項４】
前記ファイルが、Flashファイルを含む、請求項1から3のいずれか一項に記載のファイルパッキング方法。
【請求項５】
パッキング装置によって送信された、パックされたターゲットファイルおよび第2の部分暗号化/復号化アルゴリズムを受信するステップと、
前記パックされたターゲットファイルから、第1の部分暗号化/復号化アルゴリズムおよび暗号化されたターゲットファイルを取得するステップと、
前記第1の部分暗号化/復号化アルゴリズムおよび前記第2の部分暗号化/復号化アルゴリズムに従って、暗号化/復号化アルゴリズムを取得するステップと、
ターゲットファイルを取得するために、前記暗号化/復号化アルゴリズムを使用して、前記暗号化されたターゲットファイルを復号化するステップと
を含むファイルアンパッキング方法。
【請求項６】
前記パックされたターゲットファイルから、前記第1の部分暗号化/復号化アルゴリズムおよび前記暗号化されたターゲットファイルを取得する前記ステップが、
前記パックされたターゲットファイルのパッキングテンプレートファイルのアルゴリズム領域から、前記第1の部分暗号化/復号化アルゴリズムを取得し、前記パッキングテンプレートファイルのデータ領域から、前記暗号化されたターゲットファイルを取得するステップ
を含む、請求項5に記載のファイルアンパッキング方法。
【請求項７】
前記パッキング装置によって送信された、前記第2の部分暗号化/復号化アルゴリズムを受信する前記ステップが、
前記パッキング装置によって送信された、アルゴリズムライブラリを受信するステップであって、前記アルゴリズムライブラリが、前記第1の部分暗号化/復号化アルゴリズムに対応するMD5値と、前記第2の部分暗号化/復号化アルゴリズムとの関係を記録する、受信するステップ
を含む、請求項5に記載のファイルアンパッキング方法。
【請求項８】
前記第1の部分暗号化/復号化アルゴリズムおよび前記第2の部分暗号化/復号化アルゴリズムに従って、前記暗号化/復号化アルゴリズムを取得する前記ステップが、
前記第1の部分暗号化/復号化アルゴリズムに対応する前記MD5値を取得し、前記第2の部分暗号化/復号化アルゴリズムを取得するために、前記第1の部分暗号化/復号化アルゴリズムに対応する前記MD5値に従って前記アルゴリズムライブラリに問い合わせるステップと、
前記暗号化/復号化アルゴリズムを取得するために、前記第1の部分暗号化/復号化アルゴリズムと前記第2の部分暗号化/復号化アルゴリズムとを組み合わせるステップと
を含む、請求項7に記載のファイルアンパッキング方法。
【請求項９】
前記ファイルが、Flashファイルを含む、請求項5から8のいずれか一項に記載のファイルアンパッキング方法。
【請求項１０】
暗号化されたターゲットファイルを取得するために、暗号化/復号化アルゴリズムを使用してターゲットファイルを暗号化するように構成された第1の取得モジュールと、
前記暗号化/復号化アルゴリズムを、第1の部分暗号化/復号化アルゴリズムと第2の部分暗号化/復号化アルゴリズムとに分割するように構成された分割モジュールと、
前記第1の部分暗号化/復号化アルゴリズムおよび前記暗号化されたターゲットファイルに従って、パックされたターゲットファイルを取得するように構成された第2の取得モジュールと、
前記パックされたターゲットファイルおよび前記第2の部分暗号化/復号化アルゴリズムを、アンパッキング装置に送信するように構成された送信モジュールと
を含むパッキング装置。
【請求項１１】
前記第2の取得モジュールが、パッキングテンプレートファイルに従って前記パックされたターゲットファイルを取得するために、前記第1の部分暗号化/復号化アルゴリズムを、前記パッキングテンプレートファイルのアルゴリズム領域の中に埋め込み、前記暗号化されたターゲットファイルを、前記パッキングテンプレートファイルのデータ領域の中に埋め込むように、さらに構成されている、
請求項10に記載のパッキング装置。
【請求項１２】
前記送信モジュールが、前記第1の部分暗号化/復号化アルゴリズムに対応するMD5値を取得し、前記第1の部分暗号化/復号化アルゴリズムの前記MD5値と、前記第2の部分暗号化/復号化アルゴリズムとの対応関係を、アルゴリズムライブラリに記録し、前記アルゴリズムライブラリを前記アンパッキング装置に通知するように、さらに構成されている、
請求項10に記載のパッキング装置。
【請求項１３】
前記ファイルが、Flashファイルを含む、請求項10から12のいずれか一項に記載のパッキング装置。
【請求項１４】
パッキング装置によって送信された、パックされたターゲットファイルおよび第2の部分暗号化/復号化アルゴリズムを受信するように構成された受信モジュールと、
前記パックされたターゲットファイルから、第1の部分暗号化/復号化アルゴリズムおよび暗号化されたターゲットファイルを取得するように構成された第1の取得モジュールと、
前記第1の部分暗号化/復号化アルゴリズムおよび前記第2の部分暗号化/復号化アルゴリズムに従って、暗号化/復号化アルゴリズムを取得するように構成された第2の取得モジュールと、
前記暗号化/復号化アルゴリズムを使用して、前記暗号化されたターゲットファイルを復号化することを通して、ターゲットファイルを取得するように構成された第3の取得モジュールと
を含むファイルアンパッキング装置。
【請求項１５】
前記第1の取得モジュールが、前記パックされたターゲットファイルのパッキングテンプレートファイルのアルゴリズム領域から、前記第1の部分暗号化/復号化アルゴリズムを取得し、前記パッキングテンプレートファイルのデータ領域から、前記暗号化されたターゲットファイルを取得するように、さらに構成されている、
請求項14に記載のアンパッキング装置。
【請求項１６】
前記受信モジュールが、前記パッキング装置によって送信されたアルゴリズムライブラリを受信するようにさらに構成されており、前記アルゴリズムライブラリが、前記第1の部分暗号化/復号化アルゴリズムのMD5値と、前記第2の部分暗号化/復号化アルゴリズムとの対応関係を記録する、
請求項14に記載のアンパッキング装置。
【請求項１７】
前記第2の取得モジュールが、
前記第1の部分暗号化/復号化アルゴリズムに対応する前記MD5値を取得し、
前記第2の部分暗号化/復号化アルゴリズムを取得するために、前記第1の部分暗号化/復号化アルゴリズムに対応する前記MD5値に従って前記アルゴリズムライブラリに問い合わせし、
前記暗号化/復号化アルゴリズムを取得するために、前記第1の部分暗号化/復号化アルゴリズムと前記第2の部分暗号化/復号化アルゴリズムとを組み合わせるように
さらに構成されている、請求項16に記載のアンパッキング装置。
【請求項１８】
前記ファイルが、Flashファイルを含む、請求項14から17のいずれか一項に記載のアンパッキング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電気通信技法に関し、より詳細には、ファイルをパックする/アンパックするための方法および装置に関する。
【背景技術】
【０００２】
図1は、従来のファイルパッキングおよびアンパッキングプロセスの原理を示す概略図である。暗号化されたターゲットファイル(すなわち、暗号化された後のターゲットファイル)を取得するために、ターゲットファイルは、暗号化/復号化アルゴリズムによって暗号化される。次いで、暗号化されたターゲットファイルは、パックされたターゲットファイル(すなわち、パックされた後のターゲットファイル)の中に埋め込まれる。加えて、暗号化/復号化アルゴリズムによって要求されるアルゴリズムKey(秘密鍵)、および暗号化/復号化アルゴリズムもまた、パックされたターゲットファイルに埋め込まれる。パッキング動作は、実行可能なプログラムリソースを圧縮することである。パッキング動作は、ファイルを保護するための頻繁に使用される手段である。パックされた後のプログラムは、直接実行することが可能である。しかし、プログラムのソースコードは、アンパッキング動作なしには、見ることができない。
【０００３】
ファイルアンパッキング手順では、パックされたターゲットファイルを取得した後、パックされたターゲットファイルにおける暗号化されたターゲットファイルを復号し、オリジナルのターゲットファイルを取得するために、パックされたターゲットファイルにおける暗号化/復号化アルゴリズムが自動的に実行される。ファイルアンパッキングプロセスは、オリジナルのターゲットファイルがロードされた後に終了する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本開示の例は、パッキング技法のセキュリティレベルを上昇させるために、ファイルパッキング/アンパッキングの方法および装置を提供する。
【課題を解決するための手段】
【０００７】
本開示の一例によれば、ファイルパッキング方法が提供される。方法は、
暗号化されたターゲットファイルを取得するために、暗号化/復号化アルゴリズムを使用してターゲットファイルを暗号化し、暗号化/復号化アルゴリズムを、第1の部分暗号化/復号化アルゴリズムと第2の部分暗号化/復号化アルゴリズムとに分割するステップと、
第1の部分暗号化/復号化アルゴリズムおよび暗号化されたターゲットファイルに従って、パックされたターゲットファイルを取得するステップと、
パックされたターゲットファイルおよび第2の部分暗号化/復号化アルゴリズムを、アンパッキング装置に通知するステップと
を含む。
【０００８】
本開示の別の例によれば、ファイルアンパッキング方法が提供される。方法は、
パッキング装置によって送信された、パックされたターゲットファイルおよび第2の部分暗号化/復号化アルゴリズムを受信するステップと、
パックされたターゲットファイルから、第1の部分暗号化/復号化アルゴリズムおよび暗号化されたターゲットファイルを取得するステップと、
第1の部分暗号化/復号化アルゴリズムおよび第2の部分暗号化/復号化アルゴリズムに従って、暗号化/復号化アルゴリズムを取得するステップと、
ターゲットファイルを取得するために、暗号化/復号化アルゴリズムを使用して、暗号化されたターゲットファイルを復号化するステップと
を含む。
【０００９】
本開示のさらに別の例によれば、ファイルパッキング装置が提供される。装置は、
暗号化されたターゲットファイルを取得するために、暗号化/復号化アルゴリズムを使用してターゲットファイルを暗号化するように構成された第1の取得モジュールと、
暗号化/復号化アルゴリズムを、第1の部分暗号化/復号化アルゴリズムと第2の部分暗号化/復号化アルゴリズムとに分割するように構成された分割モジュールと、
第1の部分暗号化/復号化アルゴリズムおよび暗号化されたターゲットファイルに従って、パックされたターゲットファイルを取得するように構成された第2の取得モジュールと、
パックされたターゲットファイルおよび第2の部分暗号化/復号化アルゴリズムを、アンパッキング装置に送信するように構成された送信モジュールと
を含む。
【００１０】
本開示のさらに別の例によれば、ファイルアンパッキング装置が提供される。装置は、
パッキング装置によって送信された、パックされたターゲットファイルおよび第2の部分暗号化/復号化アルゴリズムを受信するように構成された受信モジュールと、
パックされたターゲットファイルから、第1の部分暗号化/復号化アルゴリズムおよび暗号化されたターゲットファイルを取得するように構成された第1の取得モジュールと、
第1の部分暗号化/復号化アルゴリズムおよび第2の部分暗号化/復号化アルゴリズムに従って、暗号化/復号化アルゴリズムを取得するように構成された第2の取得モジュールと、
暗号化/復号化アルゴリズムを使用して、暗号化されたターゲットファイルを復号化することを通して、ターゲットファイルを取得するように構成された第3の取得モジュールと
を含む。
【００１１】
本開示の例では、暗号化/復号化アルゴリズムが分割され、暗号化/復号化アルゴリズムの一部のみが、パックされたターゲットファイルに保持される。したがって、完全な暗号化/復号化アルゴリズムが見出され、クラックされることは困難であり、パッキング技法のセキュリティレベルが上昇する。
【００１２】
上記は、本開示の技術的解決策に対する簡単な説明を与えているにすぎない。本開示の技術的解決策および利点をより明らかにし、本開示の説明に従ってそれらが実装され得るようにするために、例および添付の図面を参照して、下記において詳細な説明を行う。
【図面の簡単な説明】
【００１３】
【図１】従来のファイルパッキングおよびアンパッキング技法の原理を示す概略図である。
【図２】本開示の第1の例による、ファイルパッキングプロセスの原理を示す概略図である。
【図３】本開示の第1の例による、ファイルアンパッキングプロセスの原理を示す概略図である。
【図４】本開示の第1の例による、ファイルパッキングおよびアンパッキング方法を示す流れ図である。
【図５】本開示の第2の例による、ファイルパッキング装置の構造を示す概略図である。
【図６】本開示の第3の例による、ファイルアンパッキング装置の構造を示す概略図である。
【発明を実施するための形態】
【００１４】
以下では、本明細書における技術的解決策をより明らかにするために、添付の図面および例を参照して、本開示の技術的解決策をさらに詳細に説明することにする。下記に説明される例は、本開示のいくつかの実施形態にすぎず、すべての実施形態を形成するものではないことに留意されたい。下記の例に基づいて、当業者は、やはり本開示の保護範囲内にある多くの変形を、発明的な取組みなしに有することになるだろう。
【００１５】
第1の例
本開示の第1の例は、ファイルパッキングおよびアンパッキング方法(Flashファイルに適用されるが、それに限定はされない)を提供する。方法は、別々の(discrete)ファイルパッキングプロセスおよびアンパッキングプロセスにおいて適用されてよい。「別々の」という用語は、各ファイルのアンパッキングが独立していることを意味する。図2および図3は、ファイルパッキングプロセスおよびファイルアンパッキングプロセスをそれぞれ示す。図2に示すように、ファイルパッキングプロセスの主な原理は下記の通りである。パッキング装置が、暗号化されたターゲットファイル(すなわち、CipherFile)を取得するために、暗号化/復号化アルゴリズム(Alg)を使用して、ターゲットファイル(すなわち、パックされる必要のあるTargetFile)を暗号化する。パッキング装置は、暗号化/復号化アルゴリズムを、第1の部分暗号化/復号化アルゴリズム(AlgB)と第2の部分暗号化/復号化アルゴリズム(AlgA)とに分割し、第1の部分暗号化/復号化アルゴリズム(AlgB)および暗号化されたターゲットファイル(CipherFile)を使用して、パックされたターゲットファイルを取得する。図3に示すように、ファイルアンパッキングプロセスの主な原理は下記の通りである。アンパッキング装置が、パッキング装置によって送信された、パックされたターゲットファイル(ShellFile)および第2の部分暗号化/復号化アルゴリズム(AlgA)を受信し、パックされたターゲットファイル(ShellFile)から、第1の部分暗号化/復号化アルゴリズム(AlgB)および暗号化されたターゲットファイル(CipherFile)を取得する。次いで、アンパッキング装置は、第1の部分暗号化/復号化アルゴリズム(AlgB)および第2の部分暗号化/復号化アルゴリズム(AlgA)に従って、暗号化/復号化アルゴリズムを取得する。アンパッキング装置は、ターゲットファイル(TargetFile)を取得するために、暗号化/復号化アルゴリズム(Alg)を使用して、暗号化されたターゲットファイル(CipherFile)を復号化する。
【００１６】
図2および図3に示した原理に基づいて、ファイルパッキングおよびアンパッキング方法を図4に示す。図4に示すように、方法は下記を含む。
【００１７】
ブロック401で、パッキング装置(たとえば、開発マシン、コンパイルマシンなど)は、暗号化されたターゲットファイル(CipherFile)を取得するために、暗号化/復号化アルゴリズム(Alg)を使用してターゲットファイル(すなわち、パックされる必要のあるTargetFile)を暗号化し、暗号化/復号化アルゴリズムを、第1の部分暗号化/復号化アルゴリズム(AlgB)と第2の部分暗号化/復号化アルゴリズム(AlgA)とに分割し、ここで、第1の部分暗号化/復号化アルゴリズム(AlgB)は、暗号化/復号化アルゴリズムによって要求されるアルゴリズムKey(秘密鍵)を保持している。
【００１８】
本開示の例において、暗号化/復号化アルゴリズム(Alg)を第1の部分(AlgB)と第2の部分(AlgA)とに分割することは、パッキング装置が、暗号化/復号化アルゴリズム(Alg)に対応するファイルを、2つの部分、AlgAとAlgBとに分割することを含む。
【００１９】
ブロック402で、パッキング装置は、第1の部分暗号化/復号化アルゴリズム(AlgB)および暗号化されたターゲットファイル(CipherFile)を使用して、パックされたターゲットファイル(ShellFile、すなわち、パッキングプロセスによって最終的に生成されるファイル)を取得する。
【００２０】
パッキング装置は、パッキングテンプレートファイル(ShellTemplate)を通してパックされたターゲットファイル(ShellFile)を取得するために、第1の部分暗号化/復号化アルゴリズム(AlgB)を、パッキングテンプレートファイル(ShellTemplate、すなわち、ファイルパッキングに使用されるテンプレート)のアルゴリズム領域(すなわち、AlgBフィールド)の中に埋め込むことができ、暗号化されたターゲットファイル(CipherFile)を、パッキングテンプレートファイル(ShellTemplate)のデータ領域(すなわち、Dataフィールド)の中に埋め込む。
【００２１】
本開示の例において、そのアルゴリズム領域(AlgBフィールド)およびデータ領域(Dataフィールド)が空であるパッキングテンプレートファイル(ShellTemplate)の中に、第1の部分暗号化/復号化アルゴリズム(AlgB)および暗号化されたターゲットファイル(CipherFile)を埋め込んだ後、パックされたターゲットファイル(ShellFile)が生成される。
【００２２】
一例において、パッキングテンプレートファイル(ShellTemplate)は、ターゲットファイルタイプ領域(すなわち、Typeフィールド)をさらに含むことができる。したがって、パックされたターゲットファイル(ShellFile)を生成するとき、パッキング装置は、ターゲットファイル(TargetFile)のファイルタイプをさらに取得して、ターゲットファイル(TargetFile)のファイルタイプを、パッキングテンプレートファイル(ShellTemplate)のターゲットファイルタイプ領域(Typeフィールド)の中に埋め込むことができる。
【００２３】
ブロック403で、パッキング装置は、パックされたターゲットファイル(ShellFile)および第2の部分暗号化/復号化アルゴリズム(AlgA)を、アンパッキング装置(たとえば、クライアントデバイスなど)に通知する。パックされたターゲットファイル(ShellFile)を取得した後、パッキング装置は、パックされたターゲットファイル(ShellFile)をサーバに送信し、サーバが、パックされたターゲットファイル(ShellFile)をアンパッキング装置に送信する。
【００２４】
本開示の例において、パックされたターゲットファイル(ShellFile)および第2の部分暗号化/復号化アルゴリズム(AlgA)は、パッキング装置によって、一緒に通知されても、またはそれぞれ通知されてもよい。
【００２５】
第2の部分暗号化/復号化アルゴリズム(AlgA)をアンパッキング装置に通知するとき、パッキング装置は、アルゴリズムライブラリ(AlgLib)方式を使用することに留意されたい。アルゴリズムライブラリ(AlgLib)は、いくつかの暗号化/復号化アルゴリズムのうちの各々のAlgB_MD5とAlgAとの対応関係を記憶し、ここで、AlgB_MD5は、暗号化/復号化アルゴリズムのAlgBのMD5値であり、AlgAは、暗号化/復号化アルゴリズムのAlgAである。
【００２６】
パッキング装置は、第1の部分暗号化/復号化アルゴリズム(AlgB)に対応するMD5値(すなわち、AlgB_MD5)を取得し、第1の部分暗号化/復号化アルゴリズムに対応するMD5値(AlgB_MD5)と、第2の部分暗号化/復号化アルゴリズム(AlgA)との対応関係を、アルゴリズムライブラリ(AlgLib)に記録する必要がある。次いで、パッキング装置は、アルゴリズムライブラリ(AlgLib)をアンパッキング装置に通知する。
【００２７】
上のファイルパッキング動作に基づいて、図4に示すような本開示の方法は、下記のファイルアンパッキングプロセスをさらに含むことができる。
【００２８】
ブロック404で、アンパッキング装置は、パッキング装置によって送信された、パックされたターゲットファイル(ShellFile)および第2の部分暗号化/復号化アルゴリズム(AlgA)を受信する。
【００２９】
パッキング装置によって送信された、パックされたターゲットファイル(ShellFile)および第2の部分暗号化/復号化アルゴリズム(AlgA)を受信するとき、アンパッキング装置は、パッキング装置によって送信されたアルゴリズムライブラリ(AlgLib)を受信する形式で、第2の部分暗号化/復号化アルゴリズム(AlgA)を受信することに留意されたい。アルゴリズムライブラリ(AlgLib)は、いくつかの暗号化/復号化アルゴリズムのうちの各々の、第1の部分暗号化/復号化アルゴリズム(AlgB)に対応するMD5値(AlgB_MD5)と、第2の部分暗号化/復号化アルゴリズム(AlgA)との対応関係を記憶する。
【００３０】
ブロック405で、アンパッキング装置は、パックされたターゲットファイル(ShellFile)から、第1の部分暗号化/復号化アルゴリズム(AlgB)および暗号化されたターゲットファイル(CipherFile)を取得する。
【００３１】
パックされたターゲットファイル(ShellFile)のパッキングテンプレートファイル(ShellTemplate)には、第1の部分暗号化/復号化アルゴリズム(AlgB)および暗号化されたターゲットファイル(CipherFile)が埋め込まれているので、アンパッキング装置は、パックされたターゲットファイル(ShellFile)のパッキングテンプレートファイル(ShellTemplate)のアルゴリズムフィールド(AlgBフィールド)から、埋め込まれた第1の部分暗号化/復号化アルゴリズム(AlgB)を取得することができ、パックされたターゲットファイル(ShellFile)のパッキングテンプレートファイル(ShellTemplate)のデータ領域(Dataフィールド)から、埋め込まれた暗号化されたターゲットファイル(CipherFile)を取得する。
【００３２】
一例において、ターゲットファイル(TargetFile)のファイルタイプが、パックされたターゲットファイル(ShellFile)に埋め込まれている場合、アンパッキング装置は、パックされたターゲットファイル(ShellFile)のパッキングテンプレートファイル(ShellTemplate)のターゲットファイルタイプ領域(Typeフィールド)から、ターゲットファイル(TargetFile)の埋め込まれたファイルタイプをさらに取得することができる。
【００３３】
ブロック406で、アンパッキング装置は、第1の部分暗号化/復号化アルゴリズム(AlgB)および第2の部分暗号化/復号化アルゴリズム(AlgA)に従って、暗号化/復号化アルゴリズムを取得する。
【００３４】
パックされたターゲットファイル(ShellFile)から第1の部分暗号化/復号化アルゴリズム(AlgB)を取得した後、アンパッキング装置は、第1の部分暗号化/復号化アルゴリズム(AlgB)に対応するMD5値(AlgB_MD5)を取得し、第1の部分暗号化/復号化アルゴリズムに対応するMD5値(AlgB_MD5)に従って、アルゴリズムライブラリ(AlgLib)に問い合わせる。アルゴリズムライブラリは、いくつかの暗号化/復号化アルゴリズムのうちの、第1の部分暗号化/復号化アルゴリズム(AlgB)のMD5値(すなわち、AlgB_MD5)と、第2の部分暗号化/復号化アルゴリズム(AlgA)との対応関係を記憶しているので、対応する第2の部分暗号化/復号化アルゴリズム(AlgA)が取得され得る。次いでアンパッキング装置は、第1の部分暗号化/復号化アルゴリズム(AlgB)と、第2の部分暗号化/復号化アルゴリズム(AlgA)とを組み合わせて、暗号化/復号化アルゴリズム(Alg)を取得する。
【００３５】
ブロック407で、アンパッキング装置は、ターゲットファイル(TargetFile)を取得するために、暗号化/復号化アルゴリズム(Alg)を使用して、暗号化されたターゲットファイル(CipherFile)を復号化する。
【００３６】
本開示の例では、暗号化/復号化アルゴリズムを分割し、暗号化/復号化アルゴリズムの単に一部だけをパックされたターゲットファイルに保持することを通して、完全な暗号化/復号化アルゴリズムが、容易には見出されず、クラックされない。したがって、パッキング技法のセキュリティレベルが上昇する。
【００３７】
既存のファイル暗号化システムにおける従来のファイル暗号化手順と比較すると、ファイル暗号化システムでは、暗号化/復号化アルゴリズムが、第1の部分暗号化/復号化アルゴリズムと、第2の部分暗号化/復号化アルゴリズムとに分割されないことに留意されたい。ファイル暗号化システムにおけるファイルに対する処理は、プログラムの実行を確実にすることができない。しかしながら、上のファイルパッキングおよびアンパッキングプロセスは、プログラムの実行を確実にすることが可能である。
【００３８】
第2の例
上の方法例と同様の着想に基づいて、図5に示すように、本開示の一例は、パッキング装置を提供する。パッキング装置は、
暗号化されたターゲットファイルを取得するために、暗号化/復号化アルゴリズムを使用してターゲットファイルを暗号化するように構成された第1の取得モジュール51と、
暗号化/復号化アルゴリズムを、第1の部分暗号化/復号化アルゴリズムと第2の部分暗号化/復号化アルゴリズムとに分割するように構成された分割モジュール52と、
第1の部分暗号化/復号化アルゴリズムおよび暗号化されたターゲットファイルに従って、パックされたターゲットファイルを取得するように構成された第2の取得モジュール53と、
パックされたターゲットファイルおよび第2の部分暗号化/復号化アルゴリズムを、アンパッキング装置に送信するように構成された送信モジュール54と
を含む。
【００３９】
第2の取得モジュール53は、パッキングテンプレートファイルに従ってパックされたターゲットファイルを取得するために、第1の部分暗号化/復号化アルゴリズムを、パッキングテンプレートファイルのアルゴリズム領域の中に埋め込み、暗号化されたターゲットファイルを、パッキングテンプレートファイルのデータ領域の中に埋め込むように、さらに構成されている。
【００４０】
送信モジュール54は、第1の部分暗号化/復号化アルゴリズムに対応するMD5値を取得し、第1の部分暗号化/復号化アルゴリズムのMD5値と、第2の部分暗号化/復号化アルゴリズムとの対応関係を、アルゴリズムライブラリに記録し、アルゴリズムライブラリをアンパッキング装置に通知するように、さらに構成されている。
【００４１】
本開示の例において、ターゲットファイルは、Flashファイルを含むが、それに限定はされない。
【００４２】
第3の例
上の方法例と同様の着想に基づいて、図6に示すように、本開示の一例は、アンパッキング装置を提供する。アンパッキング装置は、
パッキング装置によって送信された、パックされたターゲットファイルおよび第2の部分暗号化/復号化アルゴリズムを受信するように構成された受信モジュール61と、
パックされたターゲットファイルから、第1の部分暗号化/復号化アルゴリズムおよび暗号化されたターゲットファイルを取得するように構成された第1の取得モジュール62と、
第1の部分暗号化/復号化アルゴリズムおよび第2の部分暗号化/復号化アルゴリズムに従って、暗号化/復号化アルゴリズムを取得するように構成された第2の取得モジュール63と、
暗号化/復号化アルゴリズムを使用して、暗号化されたターゲットファイルを復号化することを通して、ターゲットファイルを取得するように構成された第3の取得モジュール64と
を含む。
【００４３】
第1の取得モジュール62は、パックされたターゲットファイルのパッキングテンプレートファイルのアルゴリズム領域から、第1の部分暗号化/復号化アルゴリズムを取得し、パッキングテンプレートファイルのデータ領域から、暗号化されたターゲットファイルを取得するように、さらに構成されている。
【００４４】
受信モジュール61は、パッキング装置によって送信されたアルゴリズムライブラリを受信するようにさらに構成されており、ここで、アルゴリズムライブラリは、第1の部分暗号化/復号化アルゴリズムのMD5値と、第2の部分暗号化/復号化アルゴリズムとの対応関係を記録する。
【００４５】
第2の取得モジュール63は、
第1の部分暗号化/復号化アルゴリズムに対応するMD5値を取得し、
第2の部分暗号化/復号化アルゴリズムを取得するために、第1の部分暗号化/復号化アルゴリズムに対応するMD5値に従ってアルゴリズムライブラリに問い合わせし、
暗号化/復号化アルゴリズムを取得するために、第1の部分暗号化/復号化アルゴリズムと、第2の部分暗号化/復号化アルゴリズムとを組み合わせるように
さらに構成されている。
【００４６】
本開示の例において、ターゲットファイルは、Flashファイルを含むが、それに限定はされない。
【００４７】
上の説明を通して、当業者は、本開示が、ソフトウェアおよび必要なハードウェアプラットフォームの形態で実装されても、またはハードウェアによって実装されてもよいことを知るであろう。しかしながら、ほとんどのケースでは、前者がより良い。このことに基づいて、本開示の技術的解決策または貢献部分を、記憶媒体に記憶されたソフトウェア製品の形態で具体化することができる。ソフトウェア製品は、本開示の各例を参照して説明された方法を実行するための、コンピュータ(たとえば、パーソナルコンピュータ、サーバ、またはネットワークデバイス)によって実行可能な一組の命令を含む。
【００４８】
図面は、例のいくつかの概略図を示しているにすぎず、図面におけるすべてのモジュールまたはブロックが、本開示を実装するために必要であるわけではない。
【００４９】
装置におけるモジュールが、例の説明による装置の中に配置されてもよいこと、または対応する変形後の1つまたは複数の装置の中に配置されてもよいことは、当業者には明白である。モジュールは、1つのモジュールの中に組み合わされても、または複数のサブモジュールに分割されてもよい。
【００５０】
本明細書で説明され、示されてきたものは、その変形のいくつかを加えた本開示の好ましい例である。本明細書で使用される用語、説明、および図面は、例証としてのみ明記され、限定として意味されない。本開示の趣旨および範囲内で多くの変形が可能であり、本開示は、その中のすべての用語が、別段示されない限り、そのもっとも広い妥当な見解において意味される、下記の特許請求の範囲およびその均等物によって定義されることを意図する。
【符号の説明】
【００５１】
51  第1の取得モジュール
52  分割モジュール
53  第2の取得モジュール
54  送信モジュール
61  受信モジュール
62  第1の取得モジュール
63  第2の取得モジュール
64  第3の取得モジュール
【図１】
0005866460.tif 000002
【図２】
0005866460.tif 000003
【図３】
0005866460.tif 000004
【図４】
0005866460.tif 000005
【図５】
0005866460.tif 000006
【図６】
0005866460.tif 000007