JP2019053146A - Source program protection system and method - Google Patents

Source program protection system and method Download PDF

Info

Publication number
JP2019053146A
JP2019053146A JP2017176327A JP2017176327A JP2019053146A JP 2019053146 A JP2019053146 A JP 2019053146A JP 2017176327 A JP2017176327 A JP 2017176327A JP 2017176327 A JP2017176327 A JP 2017176327A JP 2019053146 A JP2019053146 A JP 2019053146A
Authority
JP
Japan
Prior art keywords
source program
character string
secret information
association information
program
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
JP2017176327A
Other languages
Japanese (ja)
Other versions
JP6907847B2 (en
Inventor
杰 何
Jie He
杰 何
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2017176327A priority Critical patent/JP6907847B2/en
Publication of JP2019053146A publication Critical patent/JP2019053146A/en
Application granted granted Critical
Publication of JP6907847B2 publication Critical patent/JP6907847B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

To effectively protect a source program by making it hard to estimate contents of an encryption object part in the source program.SOLUTION: A source program protection system comprises: a first device that detects a description surrounded by a designation mark in a source program as a first character string to generate first association information having the first character string associated with a first replacement character string, replaces the first character string with the first replacement character string in the source program on the basis of the first association information to output the source program as a first partially encrypted source program, encrypts the first association information to output the encrypted first association information as a first confidential information file; and a second device that decrypts the first confidential information file to extract the first association information, replaces the first replacement character string with the first character string in the first partially encrypted source program on the basis of the first association information to generate a decrypted source program, excludes the designation mark from the decrypted source program to conduct prescribed processing, and outputs a result of the processing.SELECTED DRAWING: Figure 1

Description

本発明は、ソースプログラム保護システム及び方法に関し、特に、ソースプログラムを部分的に暗号化及び復号化するためのソースプログラム保護システム及び方法に関する。   The present invention relates to a source program protection system and method, and more particularly, to a source program protection system and method for partially encrypting and decrypting a source program.

コンパイラの保守業務では、利用者から問題(計算違いや動作不正など)が報告された場合、原因究明するために、ソースプログラム及びコンパイラで作成した実行モジュール(オブジェクトプログラム)に対して調査を実施する必要がある。   In the maintenance work of the compiler, when a problem (difference in calculation, incorrect operation, etc.) is reported from the user, the source module and the execution module (object program) created by the compiler are investigated to investigate the cause. There is a need.

ここで、調査において、ソースプログラム及び実行モジュールの構成が複雑であり、複数条件に影響される可能性がある。そのため、コンパイラの保守担当者は、利用者のソースプログラムを入手し、調査環境で再現することが望ましい。しかし、利用者のソースプログラムの一部に秘密情報が含まれている場合には入手することができず、調査に影響することがある。   Here, in the investigation, the configuration of the source program and the execution module is complicated, and there is a possibility of being influenced by a plurality of conditions. Therefore, it is desirable that the person in charge of compiler maintenance obtains the user's source program and reproduces it in the investigation environment. However, if confidential information is included in a part of the user's source program, it cannot be obtained and may affect the investigation.

特許文献1には、ロボット制御装置等を制御するためのソースプログラムの提供元において、ソースプログラムの一部のノウハウ等を暗号化し、提供先において部分的に暗号化されたソースプログラムから適切にコンパイルを行うための技術が開示されている。まず、提供元がソースプログラムの一部の暗号化対象行を指定した記述を行う。そして、提供元の変換プログラムが、当該指定後のソースプログラムのうち暗号化対象行について、所定の暗号化を行った暗号化プログラム部に置き換えた部分暗号化ソースプログラムを生成する。その後、提供先は、部分暗号化ソースプログラムの提供を受ける。そして、提供先のコンパイラが、部分暗号化ソースプログラムのうち暗号化プログラム部について復号化を行った上で、コンパイルを行い、オブジェクトプログラムを生成する。   In Patent Document 1, a provider of a source program for controlling a robot controller or the like encrypts a part of the know-how of the source program and compiles it appropriately from a partially encrypted source program at the provider Techniques for performing are disclosed. First, the provider makes a description specifying a part of the encryption target line of the source program. Then, the conversion program of the provider generates a partially encrypted source program in which the encryption target line of the specified source program is replaced with an encrypted program part that performs predetermined encryption. Thereafter, the provider receives provision of the partial encryption source program. Then, the providing compiler decrypts the encrypted program part of the partially encrypted source program, compiles it, and generates an object program.

特開2005−202663号公報JP 2005-202663 A

しかしながら、特許文献1には、ソースプログラム内の秘密情報の保護が不十分であるという問題点がある。その理由は、特許文献1では、暗号化対象行と暗号化プログラム部との分量に相関があり、提供先のユーザが部分暗号化ソースプログラムを閲覧した際に、暗号化前の記述内容を推定されるおそれがあるためである。   However, Patent Document 1 has a problem in that the protection of secret information in the source program is insufficient. The reason is that in Patent Document 1, there is a correlation between the amount of the encryption target line and the encryption program part, and when the user of the provision destination browses the partial encryption source program, the description content before encryption is estimated. It is because there is a risk of being.

本発明は、このような問題点を解決するためになされたものであり、ソースプログラム内の暗号化対象箇所の内容を推定され難くして、ソースプログラムを効果的に保護するためのソースプログラム保護システム及び方法を提供することを目的とする。   The present invention has been made in order to solve such a problem, and it is difficult to estimate the contents of a portion to be encrypted in the source program, so that the source program can be effectively protected. It is an object to provide a system and method.

本発明の第1の態様にかかるソースプログラム保護システムは、
任意の文字列が所定の指定記号により囲まれた記述を含むソースプログラムの入力を受け付け、
前記ソースプログラム内で前記指定記号により囲まれた記述を第1の文字列として検出し、
前記第1の文字列に第1の置換文字列を対応付けた第1の対応付け情報を生成し、
前記第1の対応付け情報に基づいて、前記ソースプログラム内で前記第1の文字列を前記第1の置換文字列に置換して第1の部分暗号化ソースプログラムとして出力し、
前記第1の対応付け情報を暗号化して第1の秘密情報ファイルとして出力する、
第1の装置と、
前記第1の部分暗号化ソースプログラムと、前記第1の秘密情報ファイルとの入力を受け付け、
前記第1の秘密情報ファイルを復号化して前記第1の対応付け情報を抽出し、
前記第1の対応付け情報に基づいて、前記第1の部分暗号化ソースプログラム内で前記第1の置換文字列を前記第1の文字列に置換して復号化ソースプログラムを生成し、
前記復号化ソースプログラムから前記指定記号を除外して所定の処理を行い、当該処理の結果を出力する、
第2の装置と、
を備える。
A source program protection system according to a first aspect of the present invention includes:
Accepts input of a source program containing a description in which an arbitrary character string is enclosed by a predetermined designation symbol,
A description enclosed by the specified symbols in the source program is detected as a first character string;
Generating first association information in which a first replacement character string is associated with the first character string;
Based on the first association information, the first character string is replaced with the first replacement character string in the source program and output as a first partially encrypted source program,
Encrypting the first association information and outputting it as a first secret information file;
A first device;
Receiving input of the first partial encryption source program and the first secret information file;
Decrypting the first secret information file to extract the first association information;
Based on the first association information, the first replacement character string is replaced with the first character string in the first partial encryption source program to generate a decryption source program,
Perform a predetermined process by excluding the designated symbol from the decoding source program, and output a result of the process;
A second device;
Is provided.

本発明の第2の態様にかかるソースプログラム保護方法は、
第1の装置において、
任意の文字列が所定の指定記号により囲まれた記述を含むソースプログラムの入力を受け付け、
前記ソースプログラム内で前記指定記号により囲まれた記述を第1の文字列として検出し、
前記第1の文字列に第1の置換文字列を対応付けた第1の対応付け情報を生成し、
前記第1の対応付け情報に基づいて、前記ソースプログラム内で前記第1の文字列を前記第1の置換文字列に置換して第1の部分暗号化ソースプログラムとして出力し、
前記第1の対応付け情報を暗号化して第1の秘密情報ファイルとして出力し、
第2の装置において、
前記第1の部分暗号化ソースプログラムと、前記第1の秘密情報ファイルとの入力を受け付け、
前記第1の秘密情報ファイルを復号化して前記第1の対応付け情報を抽出し、
前記第1の対応付け情報に基づいて、前記第1の部分暗号化ソースプログラム内で前記第1の置換文字列を前記第1の文字列に置換して復号化ソースプログラムを生成し、
前記復号化ソースプログラムから前記指定記号を除外して所定の処理を行い、当該処理の結果を出力する。
A source program protection method according to a second aspect of the present invention includes:
In the first device:
Accepts input of a source program containing a description in which an arbitrary character string is enclosed by a predetermined designation symbol,
A description enclosed by the specified symbols in the source program is detected as a first character string;
Generating first association information in which a first replacement character string is associated with the first character string;
Based on the first association information, the first character string is replaced with the first replacement character string in the source program and output as a first partially encrypted source program,
The first association information is encrypted and output as a first secret information file,
In the second device:
Receiving input of the first partial encryption source program and the first secret information file;
Decrypting the first secret information file to extract the first association information;
Based on the first association information, the first replacement character string is replaced with the first character string in the first partial encryption source program to generate a decryption source program,
The specified symbol is excluded from the decoding source program, a predetermined process is performed, and the result of the process is output.

本発明により、ソースプログラム内の暗号化対象箇所の内容を推定され難くして、ソースプログラムを効果的に保護するためのソースプログラム保護システム及び方法を提供することができる。   According to the present invention, it is possible to provide a source program protection system and method for effectively protecting a source program by making it difficult to estimate the contents of a portion to be encrypted in the source program.

本発明の実施の形態1にかかるソースプログラム保護システムの構成を示すブロック図である。It is a block diagram which shows the structure of the source program protection system concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるソースプログラム保護方法(部分暗号化処理)の流れを示すフローチャートである。It is a flowchart which shows the flow of the source program protection method (partial encryption process) concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるソースプログラム保護方法(復号処理)の流れを示すフローチャートである。It is a flowchart which shows the flow of the source program protection method (decoding process) concerning Embodiment 1 of this invention. 本発明の実施の形態2にかかるソースプログラム保護システムの構成を示すブロック図である。It is a block diagram which shows the structure of the source program protection system concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかる部分暗号化処理モジュールの構成を示すブロック図である。It is a block diagram which shows the structure of the partial encryption process module concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかる復号処理モジュールの構成を示すブロック図である。It is a block diagram which shows the structure of the decoding process module concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかる秘密情報リストの例を示す図である。It is a figure which shows the example of the secret information list concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかる部分暗号化処理の流れを説明するためのフローチャートである。It is a flowchart for demonstrating the flow of the partial encryption process concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかる復号処理の流れを説明するためのフローチャートである。It is a flowchart for demonstrating the flow of the decoding process concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかるコンパイル処理の流れを説明するためのフローチャートである。It is a flowchart for demonstrating the flow of the compilation process concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかるプログラムリストの部分暗号化処理の流れを説明するためのフローチャートである。It is a flowchart for demonstrating the flow of the partial encryption process of the program list concerning Embodiment 2 of this invention. 本発明の実施の形態3にかかるソースプログラム編集装置の構成を示すブロック図である。It is a block diagram which shows the structure of the source program editing apparatus concerning Embodiment 3 of this invention. 本発明の実施の形態3にかかるソースプログラム編集処理の流れを説明するためのフローチャートである。It is a flowchart for demonstrating the flow of the source program edit process concerning Embodiment 3 of this invention. 本発明の実施の形態4にかかるソースプログラム解析装置の構成を示すブロック図である。It is a block diagram which shows the structure of the source program analysis apparatus concerning Embodiment 4 of this invention. 本発明の実施の形態4にかかるソースプログラム解析処理の流れを説明するためのフローチャートである。It is a flowchart for demonstrating the flow of the source program analysis process concerning Embodiment 4 of this invention.

以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。   Hereinafter, specific embodiments to which the present invention is applied will be described in detail with reference to the drawings. In the drawings, the same elements are denoted by the same reference numerals, and redundant description will be omitted as necessary for the sake of clarity.

<実施の形態1>
図1は、本発明の実施の形態1にかかるソースプログラム保護システム100の構成を示すブロック図である。ソースプログラム保護システム100は、第1の装置10と、第2の装置20とを備える。第1の装置10は、ソースプログラム31に対して本実施の形態1にかかる部分暗号化処理を行う。第1の装置10は、例えば、ソースプログラム31の提供元のユーザが操作するコンピュータ等の情報処理装置である。ここで、ソースプログラム31は、任意の文字列が所定の指定記号により囲まれた記述を含むコンピュータプログラムである。尚、任意の文字列は、プログラムにおける文の集合に限定されず、プログラムコードの一部も含まれるものとする。そして、任意の文字列は、提供元が提供先に開示できない秘密情報を含む記述であるものとする。つまり、任意の文字列は、暗号化対象の情報である。また、指定記号とは、プログラムミング言語における予約語であるか、特定の文字の組合せであり、通常のプログラムコードとは区別可能な文字列であるものとする。また、提供元のユーザは、第1の装置10を用いてソースプログラム31の開発を行っても良い。そして、提供元のユーザは、第1の装置10を用いてソースプログラム31内の任意の文字列を、所定の指定記号により囲むように追記してもよい。
<Embodiment 1>
FIG. 1 is a block diagram showing a configuration of a source program protection system 100 according to Embodiment 1 of the present invention. The source program protection system 100 includes a first device 10 and a second device 20. The first apparatus 10 performs a partial encryption process according to the first embodiment on the source program 31. The first apparatus 10 is an information processing apparatus such as a computer operated by a user who provides the source program 31. Here, the source program 31 is a computer program including a description in which an arbitrary character string is surrounded by a predetermined designation symbol. Note that an arbitrary character string is not limited to a set of sentences in a program, and includes a part of a program code. The arbitrary character string is a description including secret information that cannot be disclosed to the provider by the provider. That is, the arbitrary character string is information to be encrypted. The designation symbol is a reserved word in a programming language or a combination of specific characters, and is a character string that can be distinguished from a normal program code. Further, the user of the provider may develop the source program 31 using the first device 10. Then, the user of the providing source may additionally write an arbitrary character string in the source program 31 by using the first device 10 so as to be surrounded by a predetermined designation symbol.

第1の装置10は、ソースプログラム31の入力を受け付ける。そして、第1の装置10は、ソースプログラム31内で指定記号により囲まれた記述を第1の文字列として検出する。続いて、第1の装置10は、第1の文字列に第1の置換文字列を対応付けた第1の対応付け情報を生成する。尚、第1の置換文字列は、少なくとも第1の文字列とは異なる文字列である。また、第1の置換文字列自体は、暗号化されている必要はない。第1の置換文字列は、例えば、所定の桁数の数字列等であってもよい。そして、第1の装置10は、第1の対応付け情報に基づいて、ソースプログラム31内で第1の文字列を第1の置換文字列に置換して第1の部分暗号化ソースプログラム32として出力する。また、第1の装置10は、第1の対応付け情報を暗号化して第1の秘密情報ファイル33として出力する。   The first apparatus 10 receives an input from the source program 31. Then, the first device 10 detects the description enclosed by the designation symbol in the source program 31 as the first character string. Subsequently, the first device 10 generates first association information in which the first replacement character string is associated with the first character string. The first replacement character string is a character string different from at least the first character string. Further, the first replacement character string itself does not need to be encrypted. The first replacement character string may be a numeric string having a predetermined number of digits, for example. Then, the first device 10 replaces the first character string with the first replacement character string in the source program 31 based on the first association information to obtain the first partial encryption source program 32. Output. The first device 10 encrypts the first association information and outputs it as the first secret information file 33.

尚、第1の装置10は、ハードウェア構成として、制御部(不図示)及び記憶部(不図示)等を備える。第1の装置10の記憶部には、上述した部分暗号化処理が実装されたコンピュータプログラムが格納されている。第1の装置10の制御部は、記憶部からコンピュータプログラムを読み出し、実行することにより、部分暗号化処理を実現する。   The first device 10 includes a control unit (not shown), a storage unit (not shown), and the like as a hardware configuration. The storage unit of the first device 10 stores a computer program in which the partial encryption process described above is implemented. The control unit of the first device 10 implements partial encryption processing by reading out and executing a computer program from the storage unit.

第2の装置20は、第1の秘密情報ファイル33を用いて、第1の部分暗号化ソースプログラム32に対して本実施の形態1にかかる復号処理を行う。第2の装置20は、例えば、ソースプログラム31の提供先のユーザが操作するコンピュータ等の情報処理装置である。第2の装置20は、例えば、第1の装置10から提供された第1の部分暗号化ソースプログラム32を読み込み、コンパイル又は解析等の所定の処理を行う。   The second device 20 uses the first secret information file 33 to perform the decryption processing according to the first embodiment on the first partial encryption source program 32. The second apparatus 20 is an information processing apparatus such as a computer operated by a user to whom the source program 31 is provided. For example, the second device 20 reads the first partial encryption source program 32 provided from the first device 10 and performs predetermined processing such as compilation or analysis.

第2の装置20は、第1の部分暗号化ソースプログラム32と、第1の秘密情報ファイル33との入力を受け付ける。そして、第2の装置20は、第1の秘密情報ファイル33を復号化して第1の対応付け情報を抽出する。その後、第2の装置20は、第1の対応付け情報に基づいて、第1の部分暗号化ソースプログラム32内で第1の置換文字列を第1の文字列に置換して復号化ソースプログラムを生成する。そして、第2の装置20は、復号化ソースプログラムから指定記号を除外して所定の処理を行い、当該処理の結果34を出力する。   The second device 20 receives input of the first partial encryption source program 32 and the first secret information file 33. Then, the second device 20 decrypts the first secret information file 33 and extracts the first association information. Thereafter, the second device 20 replaces the first replacement character string with the first character string in the first partial encryption source program 32 based on the first association information, and decrypts the source program. Is generated. Then, the second device 20 performs a predetermined process by excluding the designated symbol from the decoding source program, and outputs a result 34 of the process.

尚、第2の装置20は、ハードウェア構成として、制御部(不図示)及び記憶部(不図示)等を備える。第2の装置20の記憶部には、上述した復号処理が実装されたコンピュータプログラムが格納されている。第2の装置20の制御部は、記憶部からコンピュータプログラムを読み出し、実行することにより、復号処理を実現する。   The second device 20 includes a control unit (not shown), a storage unit (not shown), and the like as a hardware configuration. The storage unit of the second device 20 stores a computer program in which the above-described decoding process is implemented. The control unit of the second device 20 reads the computer program from the storage unit and executes it to realize the decoding process.

図2は、本発明の実施の形態1にかかるソースプログラム保護方法における部分暗号化処理の流れを示すフローチャートである。まず、第1の装置10は、ソースプログラム31の入力を受け付ける(S111)。次に、第1の装置10は、ソースプログラム31内で指定記号により囲まれた記述を第1の文字列として検出する(S112)。そして、第1の装置10は、第1の文字列に第1の置換文字列を対応付けた第1の対応付け情報を生成する(S113)。   FIG. 2 is a flowchart showing a flow of partial encryption processing in the source program protection method according to the first exemplary embodiment of the present invention. First, the first device 10 receives an input of the source program 31 (S111). Next, the first device 10 detects the description enclosed by the designation symbol in the source program 31 as a first character string (S112). Then, the first device 10 generates first association information in which the first replacement character string is associated with the first character string (S113).

その後、第1の装置10は、第1の対応付け情報に基づいて、ソースプログラム31内で第1の文字列を第1の置換文字列に置換する(S114)。そして、第1の装置10は、置換後のソースプログラムを第1の部分暗号化ソースプログラム32として出力する(S115)。   Thereafter, the first device 10 replaces the first character string with the first replacement character string in the source program 31 based on the first association information (S114). Then, the first device 10 outputs the replaced source program as the first partial encryption source program 32 (S115).

併せて、ステップ113の後、第1の装置10は、第1の対応付け情報を暗号化する(S116)。そして、第1の装置10は、暗号化後の情報を第1の秘密情報ファイル33として出力する(S117)。   In addition, after step 113, the first device 10 encrypts the first association information (S116). Then, the first device 10 outputs the encrypted information as the first secret information file 33 (S117).

図3は、本発明の実施の形態1にかかるソースプログラム保護方法における復号処理の流れを示すフローチャートである。まず、第2の装置20は、第1の部分暗号化ソースプログラム32と、第1の秘密情報ファイル33との入力を受け付ける(S121)。次に、第2の装置20は、第1の秘密情報ファイル33を復号化して第1の対応付け情報を抽出する(S122)。そして、第2の装置20は、第1の対応付け情報に基づいて、第1の部分暗号化ソースプログラム32内で第1の置換文字列を第1の文字列に置換して復号化ソースプログラムを生成する(S123)。ここで、復号化ソースプログラムは、ソースプログラム31と同一の内容である。第2の装置20は、復号化ソースプログラムから指定記号を除外して所定の処理を行う(S124)。そして、第2の装置20は、当該処理の結果34を出力する(S125)。   FIG. 3 is a flowchart showing a flow of decryption processing in the source program protection method according to the first exemplary embodiment of the present invention. First, the second apparatus 20 receives input of the first partial encryption source program 32 and the first secret information file 33 (S121). Next, the second device 20 decrypts the first secret information file 33 and extracts the first association information (S122). Then, the second device 20 replaces the first replacement character string with the first character string in the first partial encryption source program 32 based on the first association information, and decrypts the source program. Is generated (S123). Here, the decryption source program has the same contents as the source program 31. The second device 20 performs a predetermined process by excluding the designated symbol from the decoding source program (S124). And the 2nd apparatus 20 outputs the result 34 of the said process (S125).

このように、提供元の第1の装置10により、ソースプログラム31内の第1の文字列が、第1の文字列とは異なる第1の置換文字列に置換されており、置換前の第1の文字列と置換後の第1の置換文字列との第1の対応付け情報が暗号化されている。そのため、提供先のユーザは、第1の部分暗号化ソースプログラム32の記述内容を閲覧しても暗号化対象の文字列を把握することができない。そして、第2の装置20は、第1の部分暗号化ソースプログラム32と第1の秘密情報ファイル33とを取得し、内部の処理のために復号しているが、復号化ソースプログラム自体を出力していない。そのため、提供先のユーザによる暗号化対象箇所の記述内容を推定し難くし、ソースプログラムを効果的に保護することができる。   Thus, the first device 10 of the providing source replaces the first character string in the source program 31 with the first replacement character string that is different from the first character string, and the first character string before the replacement The first association information between one character string and the first replacement character string after replacement is encrypted. For this reason, the user of the providing destination cannot grasp the character string to be encrypted even if the description content of the first partial encryption source program 32 is viewed. Then, the second device 20 acquires the first partial encryption source program 32 and the first secret information file 33 and decrypts them for internal processing, but outputs the decryption source program itself. Not done. Therefore, it is difficult to estimate the description content of the encryption target portion by the user of the providing destination, and the source program can be effectively protected.

<実施の形態2>
本実施の形態2は、上述した実施の形態1の改良例である。本実施の形態2は、実施の形態1の第2の装置20をコンパイラ装置に適用したものである。ここで、コンパイラ製品の障害調査において、現象が発生するソースプログラムが必要となる場合がある。しかし、秘密情報を含むソースプログラムを平文のままで提供先に送付すると、以下のリスクにより情報が漏れる可能性が出てくる。
<Embodiment 2>
The second embodiment is an improved example of the first embodiment described above. In the second embodiment, the second device 20 of the first embodiment is applied to a compiler device. Here, when investigating a failure of a compiler product, a source program in which a phenomenon occurs may be required. However, if a source program containing confidential information is sent to the provider in plain text, there is a possibility that information will be leaked due to the following risks.

まず、重要な計算方法、数字、及び、定義などと調査が必要なソースプログラム情報を混在表示すると、提供先のユーザが直接目視し、そのまま記憶できてしまう。そのため、当該ユーザにとって不本意であっても目に入ったソースプログラム内の秘密情報を覚えてしまい、情報漏えいに繋がる可能性がある。また、提供先のセキュリティ環境は、提供元によるコントロールの範囲外であるため、絶対的な安全性が保証されない。   First, if source program information that needs to be investigated together with important calculation methods, numbers, definitions, and the like is displayed in a mixed manner, the user of the providing destination can directly view and store it as it is. For this reason, even if the user is unwilling, the secret information in the source program that he / she sees may be remembered, leading to information leakage. In addition, since the security environment of the provider is outside the scope of control by the provider, absolute safety is not guaranteed.

そこで、一般的には、秘密情報を含むソースプログラムから秘密情報を除いて送付する方法、または、コンパイル済みの実行モジュールのみ送付する方法により運用されている。これらの方法では、情報漏えいを防ぐことができる。しかし、ソースプログラムの修正による調査対象への影響、または、実行モジュールのみ送付による情報不足のため、原因究明に支障が出る可能性がある。例えば、提供先は、提供されたソースプログラムにデバッグ用のコードを記述するなどの修正をして、実行モジュールを生成し、試行することにより障害調査を行うことが効率的な場合がある。しかし、提供されたソースプログラムは、秘密情報が除外された不完全なプログラムコードであるため、コンパイルすることができない。また、コンパイル済みの実行モジュールのみが送付された場合には、提供先は、デバッグ用のコード等を埋め込むことができない。よって、障害調査の効率が低下する。   Therefore, in general, it is operated by a method in which secret information is removed from a source program including secret information or a method in which only a compiled execution module is sent. These methods can prevent information leakage. However, there is a possibility that the investigation of the cause may be hindered due to the influence on the investigation target due to the modification of the source program or the lack of information by sending only the execution module. For example, in some cases, it is efficient for the provider to investigate the failure by modifying the program such as writing debugging code in the provided source program, generating an execution module, and trying it. However, the provided source program cannot be compiled because it is incomplete program code from which confidential information is excluded. Further, when only a compiled execution module is sent, the providing destination cannot embed debugging code or the like. Therefore, the efficiency of failure investigation is reduced.

そのため、本実施の形態2では、以下の特徴を備えることとした。すなわち、前記第1の装置は、前記指定記号の入力をさらに受け付け、前記第1の秘密情報ファイルに前記指定記号をさらに含めて出力する。そして、前記第2の装置は、前記第1の部分暗号化ソースプログラム内で、前記受け付けた第1の秘密情報ファイルに含まれる前記指定記号で囲まれた記述を前記第1の置換文字列として検出し、前記第1の対応付け情報に基づいて、前記第1の部分暗号化ソースプログラム内で前記検出した第1の置換文字列を前記第1の文字列に置換する。このように、指定記号として任意の文字列を用いることができるため、暗号化対象箇所の指定の自由度を高めることができる。   Therefore, the second embodiment has the following features. That is, the first device further receives an input of the designation symbol, and outputs the first secret information file further including the designation symbol. Then, the second device uses, as the first replacement character string, a description enclosed by the designation symbol included in the received first secret information file in the first partial encryption source program. Based on the first association information, the detected first replacement character string is replaced with the first character string in the first partial encryption source program. Thus, since an arbitrary character string can be used as the designation symbol, it is possible to increase the degree of freedom in designating the encryption target portion.

また、前記第2の装置は、所定の秘密鍵を有するものとする。そして、前記第1の装置は、前記秘密鍵に対応する第1の公開鍵を前記第2の装置から取得し、前記第1の公開鍵を用いて前記第1の対応付け情報を暗号化する。前記第2の装置は、前記秘密鍵を用いて前記第1の秘密情報ファイルを復号化することが望ましい。このように、秘密情報ファイルは、コンパイラ装置(第2の装置20)内の秘密鍵でしか復号化できないため、第1の部分暗号化ソースプログラム及び秘密情報ファイルをより安全に保護できる。   The second device has a predetermined secret key. Then, the first device acquires a first public key corresponding to the secret key from the second device, and encrypts the first association information using the first public key. . It is preferable that the second device decrypts the first secret information file using the secret key. Thus, since the secret information file can be decrypted only with the secret key in the compiler device (second device 20), the first partial encryption source program and the secret information file can be protected more safely.

さらに、前記第1の装置は、前記ソースプログラム内で前記指定記号により囲まれた記述が複数個所検出された場合、当該複数個所の文字列同士を比較し、当該文字列同士が一致する場合、共通の前記第1の置換文字列に置換することが望ましい。これにより、秘密情報リストへの重複登録を抑制し、秘密情報リスト及び秘密情報ファイルのサイズを小さく抑えることができる。   Further, when a plurality of descriptions surrounded by the specified symbols are detected in the source program, the first device compares the character strings at the plurality of locations, and the character strings match. It is desirable to replace with the common first replacement character string. Thereby, duplication registration to the secret information list can be suppressed, and the sizes of the secret information list and the secret information file can be reduced.

また、前記第2の装置は、前記所定の処理としてコンパイルを行い、当該コンパイルにより生成されたオブジェクトプログラムを前記処理の結果として出力するものである。つまり、第2の装置をコンパイラ装置に適用可能である。   The second apparatus compiles as the predetermined process and outputs an object program generated by the compile as a result of the process. That is, the second device can be applied to a compiler device.

その場合、前記第2の装置は、前記コンパイルの前処理により、前記復号化ソースプログラムからコンパイル用のソースプログラムであるプログラムリストを生成し、前記プログラムリスト内で前記指定記号により囲まれた記述を第2の文字列として検出し、前記第2の文字列に第2の置換文字列を対応付けた第2の対応付け情報を生成し、前記第2の対応付け情報に基づいて、前記プログラムリスト内で前記第2の文字列を前記第2の置換文字列に置換して第2の部分暗号化ソースプログラムとして出力し、前記第2の対応付け情報を暗号化して第2の秘密情報ファイルとして出力することが望ましい。これにより、閲覧用のプログラムリスト内の暗号化対象箇所も適切に保護することができる。   In this case, the second device generates a program list that is a source program for compilation from the decrypted source program by the preprocessing of the compilation, and describes the description enclosed by the designated symbol in the program list. Detecting the second character string, generating second association information in which the second replacement character string is associated with the second character string, and generating the program list based on the second association information The second character string is replaced with the second replacement character string and output as a second partial encryption source program, and the second association information is encrypted as a second secret information file. It is desirable to output. Thereby, the encryption object location in the browsing program list can be appropriately protected.

さらに、前記第2の装置は、前記第1の秘密情報ファイルを復号化する際に用いた秘密鍵に対応する公開鍵を用いて前記第2の対応付け情報を暗号化するとよい。これにより、提供先において前記第2の部分暗号化ソースプログラムに対して修正がされた場合であっても、第2の装置20において、第2の秘密情報ファイル及び第2の部分暗号化ソースプログラムを復号化することができ、障害調査の効率を高めることができる。   Further, the second device may encrypt the second association information using a public key corresponding to the secret key used when decrypting the first secret information file. As a result, even if the second partial encryption source program is modified at the provider, the second device 20 uses the second secret information file and the second partial encryption source program. Can be decrypted, and the efficiency of fault investigation can be improved.

図4は、本発明の実施の形態2にかかるソースプログラム保護システム200の構成を示すブロック図である。ソースプログラム保護システム200は、ソースプログラム部分暗号化装置40と、コンパイラ装置50とを備える。ソースプログラム部分暗号化装置40は、第1の装置10の一例であり、部分暗号化処理モジュール41を備える。ソースプログラム部分暗号化装置40は、ソースプログラムC1、秘密情報指定符C0及び公開鍵K1を入力し、部分暗号化処理を行い、ソースプログラムC4及び秘密情報ファイルC3を出力する。そして、ソースプログラムC4及び秘密情報ファイルC3は、コンパイラ装置50に向けて送付される。   FIG. 4 is a block diagram showing a configuration of the source program protection system 200 according to the second exemplary embodiment of the present invention. The source program protection system 200 includes a source program partial encryption device 40 and a compiler device 50. The source program partial encryption device 40 is an example of the first device 10 and includes a partial encryption processing module 41. The source program partial encryption device 40 receives the source program C1, the secret information designator C0, and the public key K1, performs partial encryption processing, and outputs the source program C4 and the secret information file C3. The source program C4 and the secret information file C3 are sent to the compiler device 50.

ここで、秘密情報指定符C0は、所定の指定記号の一例である。秘密情報指定符C0は、開始記号C0−1と終了記号C0−2との組である。ここでは、開始記号C0−1を“[:”、終了記号C0−2を“:]”として例示している。但し、開始記号C0−1及び終了記号C0−2はこれに限定されない。   Here, the secret information designation mark C0 is an example of a predetermined designation symbol. The secret information designation mark C0 is a set of a start symbol C0-1 and an end symbol C0-2. Here, the start symbol C0-1 is illustrated as “[:”, and the end symbol C0-2 is illustrated as “:]”. However, the start symbol C0-1 and the end symbol C0-2 are not limited to this.

ソースプログラムC1は、ソースプログラム31の一例であり、COBOL言語で記述されたプログラムコードの一部が例示的に記載されている。但し、ソースプログラムC1のコンピュータ言語はこれに限定されず、記述されるプログラムコードがこれらに限定されないのは、もちろんである。また、ソースプログラムC1は、秘密情報の記述を含み、秘密情報が開始記号C0−1と終了記号C0−2との間に記述されているものとする。つまり、秘密情報が開始記号C0−1と終了記号C0−2とに囲まれている。尚、ソースプログラムC1には、秘密情報が複数個所に記述されていても良く、その場合、各秘密情報が開始記号C0−1と終了記号C0−2とに囲まれているものとする。また、ソースプログラムC1内の各秘密情報は、異なる情報であっても同一の情報であっても構わない。   The source program C1 is an example of the source program 31, and a part of the program code described in the COBOL language is described as an example. However, the computer language of the source program C1 is not limited to this, and it goes without saying that the program code described is not limited to these. The source program C1 includes a description of secret information, and the secret information is described between the start symbol C0-1 and the end symbol C0-2. That is, the secret information is surrounded by the start symbol C0-1 and the end symbol C0-2. In the source program C1, secret information may be described at a plurality of locations. In this case, each secret information is surrounded by a start symbol C0-1 and an end symbol C0-2. Further, the secret information in the source program C1 may be different information or the same information.

公開鍵K1は、後述するコンパイラ装置50が内蔵する秘密鍵H1に対応する公開鍵である。そして、公開鍵K1は、コンパイラ装置50側からソースプログラム部分暗号化装置40側へ予め提供されているものとする。   The public key K1 is a public key corresponding to a secret key H1 built in the compiler device 50 described later. The public key K1 is provided in advance from the compiler device 50 side to the source program partial encryption device 40 side.

ソースプログラムC4は、第1の部分暗号化ソースプログラム32の一例であり、ソースプログラムC1内の秘密情報の記述が所定の数字列(項目番号)に置換されたものである。秘密情報ファイルC3は、第1の秘密情報ファイル33の一例であり、公開鍵K1により暗号化された情報である。また、秘密情報ファイルC3は、秘密情報と項目番号とを対応付けた情報と、秘密情報指定符C0とが含まれる。   The source program C4 is an example of the first partial encryption source program 32, and the description of the secret information in the source program C1 is replaced with a predetermined numeric string (item number). The secret information file C3 is an example of the first secret information file 33, and is information encrypted with the public key K1. The secret information file C3 includes information in which secret information is associated with an item number, and a secret information designation mark C0.

尚、図4では、ソースプログラムC1内の“01 A1 PIC 9(3) USAGE IS DISPLAY.”が秘密情報(第1の文字列)の一例であり、ソースプログラムC4内の“000000000000001”が項目番号(第1の置換文字列)の一例であり、秘密情報ファイルC3内の“%?$^w$&$o$%h%2&+&Q$”が、第1の対応付け情報“000000000000001:01 A1 PIC 9(3) USAGE IS DISPLAY.”に対して公開鍵K1により暗号化された情報の一例を示す。   In FIG. 4, “01 A1 PIC 9 (3) USAGE IS DISPLAY.” In the source program C1 is an example of confidential information (first character string), and “000000000000001” in the source program C4 is an item number. It is an example of (first replacement character string), and “%? $ ^ W $ & $ o $% h% 2 & + & Q $” in the secret information file C3 is the first association information “000000000000001: 01 An example of information encrypted with the public key K1 for “A1 PIC 9 (3) USAGE IS DISPLAY.” Is shown.

図5は、本発明の実施の形態2にかかる部分暗号化処理モジュール41の構成を示すブロック図である。部分暗号化処理モジュール41は、秘密情報リスト作成部411と、秘密情報ファイル作成部412とを備える。秘密情報リスト作成部411は、秘密情報指定符C0及びソースプログラムC1を入力し、秘密情報リストC2及びソースプログラムC4を生成して、出力する。   FIG. 5 is a block diagram showing a configuration of the partial encryption processing module 41 according to the second embodiment of the present invention. The partial encryption processing module 41 includes a secret information list creation unit 411 and a secret information file creation unit 412. The secret information list creation unit 411 receives the secret information designator C0 and the source program C1, generates the secret information list C2 and the source program C4, and outputs them.

具体的には、秘密情報リスト作成部411は、ソースプログラムC1内で開始記号C0−1及び終了記号C0−2に囲まれた記述である秘密情報本文を検出する。そして、秘密情報リスト作成部411は、各秘密情報本文に対して異なる項目番号を割り当てて、秘密情報リストC2に登録する。つまり、秘密情報リストC2は、第1の文字列である秘密情報本文と第1の置換文字列である項目番号とを対応付けた対応付け情報の一例である。また、秘密情報リスト作成部411は、開始記号C0−1及び終了記号C0−2の組である秘密情報指定符C0を秘密情報リストC2に登録する。   Specifically, the secret information list creation unit 411 detects the secret information text that is a description surrounded by the start symbol C0-1 and the end symbol C0-2 in the source program C1. Then, the secret information list creation unit 411 assigns a different item number to each secret information body and registers it in the secret information list C2. That is, the secret information list C2 is an example of association information in which the secret information text that is the first character string is associated with the item number that is the first replacement character string. Also, the secret information list creation unit 411 registers a secret information designation mark C0 that is a set of the start symbol C0-1 and the end symbol C0-2 in the secret information list C2.

図7は、本発明の実施の形態2にかかる秘密情報リストC2の例を示す図である。ここでは、秘密情報リストC2の第1レコードに開始記号C0−1、第2レコードに終了記号C0−2が登録されていることを示す。但し、秘密情報指定符C0の登録位置及び登録の仕方はこれに限定されない。また、秘密情報リストC2の第3レコード以降は、複数の項目番号C2−1と複数の秘密情報本文C2−2とがそれぞれ対応付けて登録されていることを示す。項目番号C2−1は、秘密情報本文C2−2ごとに割り当てられる16桁の一意な番号である。但し、項目番号C2−1は置換文字列の一例であり、桁数や表記はこれに限定されない。置換文字列は少なくとも秘密情報本文C2−2とは異なる記述であり、秘密情報リストC2内で一意に識別できる情報であればよい。秘密情報本文C2−2は、提供元のユーザが提供先に開示できない秘密情報を示す文字列である。   FIG. 7 is a diagram showing an example of the secret information list C2 according to the second embodiment of the present invention. Here, the start symbol C0-1 is registered in the first record of the secret information list C2, and the end symbol C0-2 is registered in the second record. However, the registration position of the secret information designation mark C0 and the registration method are not limited to this. The third and subsequent records in the secret information list C2 indicate that a plurality of item numbers C2-1 and a plurality of secret information texts C2-2 are registered in association with each other. The item number C2-1 is a 16-digit unique number assigned to each secret information body C2-2. However, the item number C2-1 is an example of a replacement character string, and the number of digits and the notation are not limited to this. The replacement character string is a description different from at least the secret information text C2-2, and may be information that can be uniquely identified in the secret information list C2. The secret information text C2-2 is a character string indicating secret information that cannot be disclosed to the provider by the user of the provider.

図5に戻り説明を続ける。秘密情報リスト作成部411は、秘密情報リストC2を参照し、ソースプログラムC1内で検出された秘密情報本文を、当該秘密情報本文に対応付けられた項目番号に置換する。そして、秘密情報リスト作成部411は、置換後のソースプログラムC4を出力する。尚、秘密情報リストC2は、少なくともソースプログラム部分暗号化装置40の内蔵メモリ内に記憶されるが、ソースプログラム部分暗号化装置40の外部には出力されないものとする。一方、ソースプログラムC4は、外部の記憶装置等に格納される。   Returning to FIG. The secret information list creation unit 411 refers to the secret information list C2 and replaces the secret information text detected in the source program C1 with an item number associated with the secret information text. Then, the secret information list creation unit 411 outputs the replaced source program C4. The secret information list C2 is stored in at least the internal memory of the source program partial encryption device 40, but is not output to the outside of the source program partial encryption device 40. On the other hand, the source program C4 is stored in an external storage device or the like.

秘密情報ファイル作成部412は、公開鍵K1及び秘密情報リストC2を入力し、公開鍵K1を用いて秘密情報リストC2を暗号化して秘密情報ファイルC3を生成して、出力する。尚、秘密情報ファイルC3は、ソースプログラムC4と同様に、外部の記憶装置等に格納される。   The secret information file creation unit 412 receives the public key K1 and the secret information list C2, encrypts the secret information list C2 using the public key K1, generates a secret information file C3, and outputs it. The secret information file C3 is stored in an external storage device or the like, similar to the source program C4.

図4に戻り説明を続ける。コンパイラ装置50は、第2の装置20の一例であり、復号処理モジュール51と、コンパイル処理モジュール52と、部分暗号化処理モジュール53とを備える。また、コンパイラ装置50は、秘密鍵H1を内部で保持している。但し、秘密鍵H1は、コンパイラ装置50の外部から入力されるものであってもよい。コンパイラ装置50は、ソースプログラムC4、秘密情報ファイルC3及び公開鍵K1を入力し、復号処理、コンパイル処理及び部分暗号化処理を行い、オブジェクトプログラムC5、プログラムリストC7及び秘密情報ファイルC8を出力する。   Returning to FIG. The compiler device 50 is an example of the second device 20 and includes a decryption processing module 51, a compilation processing module 52, and a partial encryption processing module 53. Further, the compiler device 50 holds the secret key H1 therein. However, the secret key H1 may be input from outside the compiler apparatus 50. The compiler device 50 receives the source program C4, the secret information file C3, and the public key K1, performs decryption processing, compilation processing, and partial encryption processing, and outputs an object program C5, a program list C7, and a secret information file C8.

公開鍵K1は、上述した通り、コンパイラ装置50が内蔵する秘密鍵H1に対応する公開鍵である。   The public key K1 is a public key corresponding to the secret key H1 built in the compiler device 50 as described above.

図6は、本発明の実施の形態2にかかる復号処理モジュール51の構成を示すブロック図である。復号処理モジュール51は、復号部511と、秘密情報結合部512とを備える。復号部511は、秘密情報ファイルC3及び秘密鍵H1を入力し、秘密鍵H1を用いて秘密情報ファイルC3を復号化して秘密情報リストC2を抽出する。尚、秘密情報リストC2は、少なくともコンパイラ装置50の内蔵メモリ内に記憶されるが、コンパイラ装置50の外部には出力されないものとする。また、上述した通り、公開鍵K1と秘密鍵H1とは対応しているため、部分暗号化処理モジュール41で生成された秘密情報リストC2と同一の情報が、復号処理モジュール51で得られることとなる。   FIG. 6 is a block diagram showing a configuration of the decryption processing module 51 according to the second embodiment of the present invention. The decryption processing module 51 includes a decryption unit 511 and a secret information combining unit 512. The decryption unit 511 inputs the secret information file C3 and the secret key H1, and uses the secret key H1 to decrypt the secret information file C3 and extract the secret information list C2. The secret information list C2 is stored at least in the built-in memory of the compiler apparatus 50, but is not output to the outside of the compiler apparatus 50. As described above, since the public key K1 and the secret key H1 correspond to each other, the decryption processing module 51 can obtain the same information as the secret information list C2 generated by the partial encryption processing module 41. Become.

秘密情報結合部512は、ソースプログラムC4及び秘密情報リストC2を入力し、ソースプログラムC1及び秘密情報指定符C0を出力する。具体的には、秘密情報結合部512は、秘密情報リストC2から秘密情報指定符C0(開始記号C0−1及び終了記号C0−2の組)を抽出し、ソースプログラムC4内で開始記号C0−1及び終了記号C0−2に囲まれた記述である項目番号を検出する。そして、秘密情報結合部512は、秘密情報リストC2を参照し、検出された項目番号に対応付けられた秘密情報本文を抽出し、ソースプログラムC4内の項目番号を当該抽出した秘密情報本文に置換する。そして、秘密情報結合部512は、置換後のソースプログラム、つまり、復号化ソースプログラムであるソースプログラムC1を出力する。また、併せて、秘密情報結合部512は、秘密情報指定符C0を出力する。尚、ソースプログラムC1及び秘密情報指定符C0は、少なくともコンパイラ装置50の内蔵メモリ内に記憶されるが、コンパイラ装置50の外部には出力されないものとする。また、ソースプログラム部分暗号化装置40の入力であるソースプログラムC1及び秘密情報指定符C0と同一の情報が、復号化ソースプログラム及び秘密情報指定符C0としてコンパイラ装置50内で得られることとなる。   The secret information combining unit 512 receives the source program C4 and the secret information list C2, and outputs the source program C1 and the secret information designator C0. Specifically, the secret information combining unit 512 extracts a secret information designation mark C0 (a combination of a start symbol C0-1 and an end symbol C0-2) from the secret information list C2, and starts the symbol C0− in the source program C4. An item number which is a description surrounded by 1 and the end symbol C0-2 is detected. Then, the secret information combining unit 512 refers to the secret information list C2, extracts the secret information text associated with the detected item number, and replaces the item number in the source program C4 with the extracted secret information text. To do. Then, the secret information combining unit 512 outputs the source program after replacement, that is, the source program C1 that is a decryption source program. At the same time, the secret information combining unit 512 outputs a secret information designation mark C0. It is assumed that the source program C1 and the secret information designator C0 are stored at least in the built-in memory of the compiler apparatus 50, but are not output to the outside of the compiler apparatus 50. In addition, the same information as the source program C1 and the secret information designator C0 that are the inputs of the source program partial encryption device 40 is obtained in the compiler device 50 as the decrypted source program and the secret information designator C0.

図4に戻り説明を続ける。コンパイル処理モジュール52は、ソースプログラムC1及び秘密情報指定符C0を入力し、オブジェクトプログラムC5及びプログラムリストC6を出力する。具体的には、コンパイル処理モジュール52は、コンパイルの前処理としてソースプログラムC1から実際のコンパイル対象のソースプログラムであるプログラムリストC6を生成する。例えば、コンパイル処理モジュール52は、ソースプログラムC1内で参照する他のソースプログラムの記述等を取得し、ソースプログラムC1内の該当する記述と置換してプログラムリストC6として生成し、出力する。尚、プログラムリストC6は、少なくともコンパイラ装置50の内蔵メモリ内に記憶されるが、コンパイラ装置50の外部には出力されないものとする。   Returning to FIG. The compile processing module 52 inputs the source program C1 and the secret information designation mark C0, and outputs an object program C5 and a program list C6. Specifically, the compile processing module 52 generates a program list C6 that is an actual source program to be compiled from the source program C1 as preprocessing for compilation. For example, the compile processing module 52 acquires a description of another source program referred to in the source program C1, replaces it with the corresponding description in the source program C1, generates a program list C6, and outputs it. The program list C6 is stored at least in the built-in memory of the compiler apparatus 50, but is not output to the outside of the compiler apparatus 50.

そして、コンパイル処理モジュール52は、プログラムリストC6に対してコンパイルを行い、当該コンパイルにより生成されたオブジェクトプログラムC5を出力する。このとき、コンパイル処理モジュール52は、プログラムリストC6内の秘密情報指定符C0を除外してコンパイルを行う。つまり、コンパイルは実施の形態1の所定の処理の一例であり、オブジェクトプログラムC5は実施の形態1の処理の結果の一例である。尚、オブジェクトプログラムC5は、外部の記憶装置等に格納される。   The compile processing module 52 compiles the program list C6 and outputs an object program C5 generated by the compile. At this time, the compile processing module 52 compiles by excluding the secret information designation mark C0 in the program list C6. In other words, compilation is an example of the predetermined process of the first embodiment, and the object program C5 is an example of the result of the process of the first embodiment. The object program C5 is stored in an external storage device or the like.

部分暗号化処理モジュール53は、プログラムリストC6、秘密情報指定符C0及び公開鍵K1を入力し、プログラムリストC6に対して部分暗号化処理を行い、プログラムリストC7及び秘密情報ファイルC8を出力する。具体的には、部分暗号化処理モジュール53は、プログラムリストC6内で秘密情報指定符C0により囲まれた記述を第2の文字列として検出する。そして、部分暗号化処理モジュール53は、第2の文字列に第2の置換文字列を対応付けた第2の対応付け情報を生成する。そして、部分暗号化処理モジュール53は、第2の対応付け情報に基づいて、プログラムリストC6内で第2の文字列を第2の置換文字列に置換して第2の部分暗号化ソースプログラムであるプログラムリストC7として出力する。また、部分暗号化処理モジュール53は、公開鍵K1を用いて第2の対応付け情報を暗号化して第2の秘密情報ファイルC8として出力する。尚、プログラムリストC7及び秘密情報ファイルC8は、外部の記憶装置等に格納される。   The partial encryption processing module 53 receives the program list C6, the secret information designator C0, and the public key K1, performs a partial encryption process on the program list C6, and outputs the program list C7 and the secret information file C8. Specifically, the partial encryption processing module 53 detects the description enclosed by the secret information designator C0 in the program list C6 as the second character string. Then, the partial encryption processing module 53 generates second association information in which the second replacement character string is associated with the second character string. Then, the partial encryption processing module 53 replaces the second character string with the second replacement character string in the program list C6 based on the second association information, and uses the second partial encryption source program. Output as a program list C7. Further, the partial encryption processing module 53 encrypts the second association information using the public key K1, and outputs it as the second secret information file C8. The program list C7 and the secret information file C8 are stored in an external storage device or the like.

尚、図4では、プログラムリストC6内の“A1”がソースプログラムC1内の“01 A1 PIC 9(3) USAGE IS DISPLAY.”から置換された記述(第2の文字列)の一例であり、プログラムリストC7内の“000000000000001”が項目番号(第2の置換文字列)の一例であり、秘密情報ファイルC8内の“%2&+&$o%”が、第2の対応付け情報“000000000000001: A1”に対して公開鍵K1により暗号化された情報の一例を示す。   4 is an example of a description (second character string) in which “A1” in the program list C6 is replaced with “01 A1 PIC 9 (3) USAGE IS DISPLAY.” In the source program C1. “000000000000001” in the program list C7 is an example of the item number (second replacement character string), and “% 2 & + & $ o%” in the secret information file C8 is the second association information “000000000000001: An example of information encrypted with the public key K1 for A1 "is shown.

図8は、本発明の実施の形態2にかかる部分暗号化処理モジュール41における部分暗号化処理の流れを説明するためのフローチャートである。まず、部分暗号化処理モジュール41は、公開鍵K1と、ソースプログラムC1と、秘密情報指定符C0との入力を受け付ける(S211)。次に、秘密情報リスト作成部411は、ソースプログラムC1から秘密情報を抽出する(S212)。具体的には、秘密情報リスト作成部411は、ソースプログラムC1内を走査し、開始記号C0−1を検索する。開始記号C0−1が検索された場合、秘密情報リスト作成部411は、終了記号C0−2が検索されるまで、開始記号C0−1の直後の文字列を記憶し続ける。そして、終了記号C0−2が検索された場合、秘密情報リスト作成部411は、その時点までに記憶された文字列を秘密情報(第1の文字列)として抽出する。   FIG. 8 is a flowchart for explaining the flow of the partial encryption processing in the partial encryption processing module 41 according to the second embodiment of the present invention. First, the partial encryption processing module 41 receives input of the public key K1, the source program C1, and the secret information designator C0 (S211). Next, the secret information list creation unit 411 extracts secret information from the source program C1 (S212). Specifically, the secret information list creation unit 411 scans the source program C1 and searches for the start symbol C0-1. When the start symbol C0-1 is searched, the secret information list creation unit 411 continues to store the character string immediately after the start symbol C0-1 until the end symbol C0-2 is searched. When the end symbol C0-2 is searched, the secret information list creation unit 411 extracts the character string stored up to that point as secret information (first character string).

続いて、秘密情報リスト作成部411は、各秘密情報に項目番号を割り当てて、秘密情報リストC2を生成する(S213)。このとき、複数の秘密情報が抽出された場合、秘密情報リスト作成部411は、秘密情報同士を比較し、一致する場合、共通の項目番号を割り当てる。つまり、秘密情報リスト作成部411は、秘密情報リストC2に重複するレコードを登録しない。   Subsequently, the secret information list creation unit 411 assigns an item number to each secret information, and generates a secret information list C2 (S213). At this time, when a plurality of secret information is extracted, the secret information list creation unit 411 compares the secret information and assigns a common item number if they match. That is, the secret information list creation unit 411 does not register duplicate records in the secret information list C2.

そして、秘密情報リスト作成部411は、秘密情報リストC2を参照し、ソースプログラムC1内の各秘密情報を、秘密情報に対応付けられた項目番号に置換する(S214)。そして、秘密情報リスト作成部411は、置換後のソースプログラムC4を出力する(S215)。   Then, the secret information list creation unit 411 refers to the secret information list C2, and replaces each secret information in the source program C1 with an item number associated with the secret information (S214). Then, the secret information list creation unit 411 outputs the replaced source program C4 (S215).

また、秘密情報リスト作成部411は、秘密情報リストC2に秘密情報指定符C0を追加する(S216)。そして、秘密情報ファイル作成部412は、秘密情報リストC2を公開鍵K1により暗号化して、秘密情報ファイルC3を生成する(S217)。その後、秘密情報ファイル作成部412は、秘密情報ファイルC3を出力する(S218)。   Also, the secret information list creation unit 411 adds a secret information designation mark C0 to the secret information list C2 (S216). Then, the secret information file creation unit 412 encrypts the secret information list C2 with the public key K1, and generates a secret information file C3 (S217). Thereafter, the secret information file creation unit 412 outputs the secret information file C3 (S218).

図9は、本発明の実施の形態2にかかる復号処理の流れを説明するためのフローチャートである。まず、復号処理モジュール51は、ソースプログラムC4と、秘密情報ファイルC3との入力を受け付ける(S221)。次に、復号部511は、秘密情報ファイルC3を秘密鍵H1により復号化して、秘密情報リストC2を抽出する(S222)。   FIG. 9 is a flowchart for explaining the flow of the decoding process according to the second embodiment of the present invention. First, the decryption processing module 51 receives input of the source program C4 and the secret information file C3 (S221). Next, the decryption unit 511 decrypts the secret information file C3 with the secret key H1, and extracts the secret information list C2 (S222).

続いて、秘密情報結合部512は、秘密情報リストC2から秘密情報指定符C0を抽出する(S223)。そして、秘密情報結合部512は、秘密情報リストC2に基づいて項目番号を秘密情報に置換してソースプログラムC1を生成する(S223)。具体的には、秘密情報結合部512は、ソースプログラムC4内で開始記号C0−1と終了記号C0−2とに囲まれた記述を特定する。このとき、特定される記述は、項目番号となる。そのため、秘密情報結合部512は、当該特定された項目番号に対応付けられた秘密情報本文を、秘密情報リストC2から抽出する。そして、秘密情報結合部512は、ソースプログラムC4内で特定された項目番号を、抽出した秘密情報本文に置換する。そして、置換後のソースプログラムはソースプログラムC1となる。秘密情報結合部512は、ソースプログラムC1を出力する(S224)。また、秘密情報結合部512は、秘密情報指定符C0を出力する(S226)。   Subsequently, the secret information combining unit 512 extracts the secret information designation mark C0 from the secret information list C2 (S223). Then, the secret information combining unit 512 generates the source program C1 by replacing the item number with the secret information based on the secret information list C2 (S223). Specifically, the secret information combining unit 512 specifies a description surrounded by a start symbol C0-1 and an end symbol C0-2 in the source program C4. At this time, the specified description is an item number. Therefore, the secret information combining unit 512 extracts the secret information text associated with the specified item number from the secret information list C2. Then, the secret information combining unit 512 replaces the item number specified in the source program C4 with the extracted secret information text. The replaced source program is the source program C1. The secret information combining unit 512 outputs the source program C1 (S224). Further, the secret information combining unit 512 outputs the secret information designation mark C0 (S226).

図10は、本発明の実施の形態2にかかるコンパイル処理の流れを説明するためのフローチャートである。まず、コンパイル処理モジュール52は、ソースプログラムC1と、秘密情報指定符C0の入力を受け付ける(S231)。次に、コンパイル処理モジュール52は、ソースプログラムC1に対して前処理を行い、コンパイル用のプログラムリストC6を生成する(S232)。   FIG. 10 is a flowchart for explaining the flow of the compiling process according to the second embodiment of the present invention. First, the compile processing module 52 receives an input of the source program C1 and the secret information designator C0 (S231). Next, the compile processing module 52 performs preprocessing on the source program C1, and generates a program list C6 for compilation (S232).

そして、コンパイル処理モジュール52は、プログラムリストC6から秘密情報指定符C0を除外してコンパイルを行う(S233)。その後、コンパイル処理モジュール52は、コンパイルにより生成されたオブジェクトプログラムC5を出力する(S234)。また、コンパイル処理モジュール52は、プログラムリストC6をコンパイラ装置50内で出力する(S235)。   Then, the compile processing module 52 compiles by excluding the secret information designation mark C0 from the program list C6 (S233). Thereafter, the compilation processing module 52 outputs the object program C5 generated by the compilation (S234). The compile processing module 52 outputs the program list C6 within the compiler device 50 (S235).

図11は、本発明の実施の形態2にかかるプログラムリストの部分暗号化処理の流れを説明するためのフローチャートである。まず、部分暗号化処理モジュール53は、公開鍵K1と、プログラムリストC6と、秘密情報指定符C0との入力を受け付ける(S241)。次に、部分暗号化処理モジュール53は、プログラムリストC6から秘密情報を抽出する(S242)。具体的には、部分暗号化処理モジュール53は、プログラムリストC6で開始記号C0−1と終了記号C0−2とに囲まれた記述を特定する。このとき、特定される記述は、秘密情報となる。   FIG. 11 is a flowchart for explaining the flow of the program list partial encryption processing according to the second embodiment of the present invention. First, the partial encryption processing module 53 receives the input of the public key K1, the program list C6, and the secret information designation mark C0 (S241). Next, the partial encryption processing module 53 extracts secret information from the program list C6 (S242). Specifically, the partial encryption processing module 53 specifies a description surrounded by a start symbol C0-1 and an end symbol C0-2 in the program list C6. At this time, the specified description becomes secret information.

続いて、部分暗号化処理モジュール53は、各秘密情報に項目番号を割り当てて、秘密情報リストC2を生成する(S243)。そして、部分暗号化処理モジュール53は、秘密情報リストC2を参照し、プログラムリストC6内の各秘密情報を、秘密情報に対応付けられた項目番号に置換する(S244)。そして、部分暗号化処理モジュール53は、置換後のプログラムリストC7を出力する(S245)。   Subsequently, the partial encryption processing module 53 assigns an item number to each secret information, and generates a secret information list C2 (S243). Then, the partial encryption processing module 53 refers to the secret information list C2, and replaces each secret information in the program list C6 with an item number associated with the secret information (S244). Then, the partial encryption processing module 53 outputs the replaced program list C7 (S245).

また、部分暗号化処理モジュール53は、秘密情報リストC2に秘密情報指定符C0を追加する(S246)。そして、部分暗号化処理モジュール53は、秘密情報リストC2を公開鍵K1により暗号化して、秘密情報ファイルC8を生成する(S247)。その後、部分暗号化処理モジュール53は、秘密情報ファイルC8を出力する(S248)。   Further, the partial encryption processing module 53 adds the secret information designation mark C0 to the secret information list C2 (S246). Then, the partial encryption processing module 53 encrypts the secret information list C2 with the public key K1, and generates a secret information file C8 (S247). Thereafter, the partial encryption processing module 53 outputs the secret information file C8 (S248).

以上のことから、提供先のユーザは、直接、元のソースプログラムの記述内容を参照することができず、秘密情報の漏えいを防ぐことができる。また、情報漏えいのリスクを減らせると同時に、必要なソースロジックを平文プログラムで参照可能なため、効率的且つ安全なソースプログラムを提供先へ送付出来るようになる。   From the above, the providing user cannot directly refer to the description contents of the original source program, and can prevent leakage of secret information. In addition, the risk of information leakage can be reduced, and at the same time, necessary source logic can be referred to in a plain text program, so that an efficient and safe source program can be sent to the provider.

また、本実施の形態については、次のことがいえる。すなわち、予め重要な記述の範囲が指定されたソースプログラムについて、指定範囲のみを暗号化することにより、調査を実施するための提供先へのソースプログラムの送付が可能となる。そして、コンパイラ装置50の内部でソースプログラムC4内の項目番号を元の秘密情報に復号した上で、コンパイルを行うため、正常にオブジェクトプログラムC5を生成することができる。そのため、提供先では、ソースプログラムC4に対してデバッグ用のコードを埋め込むなどの編集をした上で、コンパイルを行い、デバッグ実行等を行うことができる。   Moreover, the following can be said about this embodiment. In other words, by encrypting only the designated range for a source program in which an important description range is designated in advance, it is possible to send the source program to a provider for conducting an investigation. Since the compiler apparatus 50 decodes the item number in the source program C4 into the original secret information and compiles it, the object program C5 can be normally generated. Therefore, the provider can compile and execute debugging after editing such as embedding a debugging code in the source program C4.

また、秘密情報への復号は、コンパイラ装置50の内部で完結し、復号後のソースプログラムC1は外部に出力されないため、提供先が直接秘密情報を参照することができない。   Further, the decryption to the secret information is completed inside the compiler apparatus 50, and the source program C1 after the decryption is not output to the outside, so that the providing destination cannot directly refer to the secret information.

さらに、公開鍵K1で暗号化された秘密情報ファイルC3は、秘密鍵H1が取り込まれているコンパイラ装置50のみで復号できるため、暗号化した秘密情報の安全性が保証される。   Furthermore, since the secret information file C3 encrypted with the public key K1 can be decrypted only by the compiler apparatus 50 in which the secret key H1 is incorporated, the security of the encrypted secret information is guaranteed.

また、任意の秘密情報指定符C0を用いることができるため、平文ソースプログラム内で秘密情報の箇所を容易に指定できる。そして、任意の箇所を指定できるため、隠ぺい箇所を指定するための自由度が高い。   In addition, since any secret information designation mark C0 can be used, the location of the secret information can be easily designated in the plaintext source program. And since an arbitrary location can be designated, the degree of freedom for designating a concealed location is high.

<実施の形態3>
本実施の形態3は、上述した実施の形態1又は2の改良例である。本実施の形態3は、実施の形態1の第1の装置10又は実施の形態2のソースプログラム部分暗号化装置40をソースプログラム編集装置に適用したものである。例えば、ソースプログラムC4のうち秘密情報指定符C0で囲まれた記述については、提供先では編集することができない。そのような場合には、提供元において秘密情報の記述を編集できることが望ましい。そして、編集後に、再度、部分暗号化処理を行う必要がある。
<Embodiment 3>
The third embodiment is an improved example of the first or second embodiment described above. In the third embodiment, the first apparatus 10 of the first embodiment or the source program partial encryption apparatus 40 of the second embodiment is applied to a source program editing apparatus. For example, the description enclosed by the secret information designator C0 in the source program C4 cannot be edited by the provider. In such a case, it is desirable that the provider can edit the description of the confidential information. Then, after editing, it is necessary to perform partial encryption processing again.

すなわち、前記第1の装置は、前記ソースプログラムを表示し、編集要求に応じて前記ソースプログラムを更新して再表示し、保存要求に応じて前記更新後のソースプログラム内の前記指定記号により囲まれた記述を第3の文字列として検出し、前記第3の文字列に第3の置換文字列を対応付けた第3の対応付け情報を生成し、前記第3の対応付け情報に基づいて、前記更新後のソースプログラム内で前記第3の文字列を前記第3の置換文字列に置換して第3の部分暗号化ソースプログラムとして出力し、前記第3の対応付け情報を暗号化して第3の秘密情報ファイルとして出力するものである。   That is, the first device displays the source program, updates and redisplays the source program in response to an edit request, and is surrounded by the designated symbols in the updated source program in response to a save request. The third description is detected as a third character string, and third correspondence information in which the third replacement character string is associated with the third character string is generated. Based on the third correspondence information , Replacing the third character string with the third replacement character string in the updated source program and outputting it as a third partially encrypted source program, and encrypting the third association information This is output as a third secret information file.

図12は、本発明の実施の形態3にかかるソースプログラム編集装置60の構成を示すブロック図である。尚、本実施の形態3にかかるソースプログラム保護システム300は、ソースプログラム編集装置60の他に、図示しない構成として、第2の装置20又はコンパイラ装置50を備えるものである。   FIG. 12 is a block diagram showing the configuration of the source program editing apparatus 60 according to the third embodiment of the present invention. Note that the source program protection system 300 according to the third embodiment includes the second device 20 or the compiler device 50 as a configuration (not shown) in addition to the source program editing device 60.

ソースプログラム編集装置60は、通常のソースプログラムに対して、秘密情報指定符C0の追記が行われた際に、部分暗号化処理を行い、ソースプログラムC4及び秘密情報ファイルC3を出力することができる。また、ソースプログラム編集装置60は、秘密情報指定符C0が記述済みのソースプログラムC1に対して、実施の形態1又は2と同様に、部分暗号化処理を行い、ソースプログラムC4及び秘密情報ファイルC3を出力する。さらに、ソースプログラム編集装置60は、部分暗号化処理済みのソースプログラムC4及び秘密情報ファイルC3を入力し、復号処理を行った上で、所定の編集を行ない、その後、編集後のソースプログラムに対して部分暗号化処理を行い、ソースプログラムC4及び秘密情報ファイルC3を出力する。   The source program editing device 60 can perform partial encryption processing and output the source program C4 and the secret information file C3 when the secret information designator C0 is added to the normal source program. . In addition, the source program editing device 60 performs a partial encryption process on the source program C1 in which the secret information designator C0 has been described in the same manner as in the first or second embodiment, and the source program C4 and the secret information file C3. Is output. Further, the source program editing device 60 inputs the partially encrypted source program C4 and the secret information file C3, performs a decryption process, performs a predetermined editing, and then performs the editing on the edited source program. The partial encryption process is performed, and the source program C4 and the secret information file C3 are output.

ソースプログラム編集装置60は、入力受付部61と、表示処理部62と、編集処理部63と、部分暗号化処理モジュール64と、復号処理モジュール65とを備える。入力受付部61は、ソースプログラムC1、公開鍵K1、秘密情報指定符C0、秘密鍵H1、秘密情報ファイルC3、ソースプログラムC4の入力を受け付ける。尚、秘密鍵H1は、コンパイラ装置50側から事前に取得済みであるものとする。復号処理モジュール65は、部分暗号化処理済みのソースプログラムC4が入力された場合に、復号処理モジュール51と同様に、秘密鍵H1と秘密情報ファイルC3に基づいて復号処理を行う。表示処理部62は、入力されたソースプログラムについて画面に表示を行う。但し、表示処理部62は、部分暗号化処理済みのソースプログラムC4については、復号処理モジュール65による復号処理後の内容を表示する。編集処理部63は、ユーザからの編集操作に応じて表示対象のソースプログラムの編集処理を行う。部分暗号化処理モジュール64は、ユーザからの保存要求に応じて表示対象(編集済み)のソースプログラムに対して、部分暗号化処理モジュール41と同様に、部分暗号化処理を行い、ソースプログラムC4及び秘密情報ファイルC3を出力する。   The source program editing device 60 includes an input receiving unit 61, a display processing unit 62, an editing processing unit 63, a partial encryption processing module 64, and a decryption processing module 65. The input receiving unit 61 receives input of the source program C1, public key K1, secret information designation C0, secret key H1, secret information file C3, and source program C4. It is assumed that the secret key H1 has been acquired in advance from the compiler device 50 side. Similar to the decryption processing module 51, the decryption processing module 65 performs the decryption processing based on the secret key H1 and the secret information file C3 when the partially encrypted source program C4 is input. The display processing unit 62 displays the input source program on the screen. However, the display processing unit 62 displays the content after the decryption processing by the decryption processing module 65 for the source program C4 that has been subjected to the partial encryption processing. The editing processing unit 63 performs editing processing of the source program to be displayed in accordance with an editing operation from the user. Similar to the partial encryption processing module 41, the partial encryption processing module 64 performs partial encryption processing on the source program to be displayed (edited) in response to a storage request from the user, and the source program C4 and The secret information file C3 is output.

図13は、本発明の実施の形態3にかかるソースプログラム編集処理の流れを説明するためのフローチャートである。まず、入力受付部61は、ソースプログラムC1、公開鍵K1、秘密情報指定符C0、秘密鍵H1、秘密情報ファイルC3、ソースプログラムC4のうち任意の組合せの入力を、適宜、受け付ける(S301)。次に、復号処理モジュール65は、入力されたソースプログラムが部分暗号化処理済か否かを判定する(S302)。例えば、ソースプログラムC4が入力された場合、復号処理モジュール65は、ソースプログラムC4に対して復号処理を行う(S303)。一例として、復号処理モジュール65は、図9のステップS222、S223及びS224を実行してもよい。   FIG. 13 is a flowchart for explaining the flow of the source program editing process according to the third embodiment of the present invention. First, the input receiving unit 61 appropriately receives input of an arbitrary combination among the source program C1, the public key K1, the secret information designation C0, the secret key H1, the secret information file C3, and the source program C4 (S301). Next, the decryption processing module 65 determines whether or not the input source program has been partially encrypted (S302). For example, when the source program C4 is input, the decryption processing module 65 performs a decryption process on the source program C4 (S303). As an example, the decryption processing module 65 may execute steps S222, S223, and S224 of FIG.

そして、表示処理部62は、ソースプログラムを画面に表示する(S304)。このとき、画面には、元々、秘密情報指定符C0の記述がないソースプログラムか、秘密情報指定符C0の記述があるが復号処理済みのソースプログラムが表示される。そのため、ユーザは、秘密情報を視認することができる。よって、ユーザは、当該ソースプログラムに対して自由に編集を行うことができる。   Then, the display processing unit 62 displays the source program on the screen (S304). At this time, the source program originally having no description of the secret information designation mark C0 or the source program having the description of the secret information designation mark C0 but having been decrypted is displayed on the screen. Therefore, the user can visually recognize the secret information. Therefore, the user can freely edit the source program.

その後、編集処理部63は、ユーザから編集要求を受け付けたか否かを判定する(S305)。編集要求を受け付けた場合、編集処理部63は、編集要求に応じて表示対象のソースプログラムに対して更新を行う(S306)。その後、表示処理部62は、更新後のソースプログラムを画面に表示する(S304)。   Thereafter, the edit processing unit 63 determines whether an edit request has been received from the user (S305). When the edit request is received, the edit processing unit 63 updates the source program to be displayed in response to the edit request (S306). Thereafter, the display processing unit 62 displays the updated source program on the screen (S304).

また、編集処理部63は、ユーザから編集要求ではなく(S305でNO)、保存要求を受け付けた場合(S307でYES)、その旨を部分暗号化処理モジュール64へ通知する。そして、部分暗号化処理モジュール64は、通知に応じて表示対象のソースプログラムに対して部分暗号化処理を行う(S308)。つまり、部分暗号化処理モジュール64は、ソースプログラムC4に対して更新されていた場合には、更新後のソースプログラムに対して部分暗号化処理を行う。一例として、部分暗号化処理モジュール64は、図8のステップS212、S213、S214、S216及びS217を実行してもよい。その後、部分暗号化処理モジュール64は、更新後のソースプログラムC4及び秘密情報ファイルC3を出力する(S309)。   In addition, when the edit processing unit 63 receives a save request (NO in S <b> 307) instead of an edit request from the user (NO in S <b> 305), the edit processing unit 63 notifies the partial encryption processing module 64 to that effect. Then, the partial encryption processing module 64 performs partial encryption processing on the source program to be displayed in response to the notification (S308). That is, when the partial encryption processing module 64 has been updated for the source program C4, the partial encryption processing module 64 performs partial encryption processing for the updated source program. As an example, the partial encryption processing module 64 may execute steps S212, S213, S214, S216, and S217 of FIG. Thereafter, the partial encryption processing module 64 outputs the updated source program C4 and secret information file C3 (S309).

以上のことから、本実施の形態3により、ソースプログラム内の秘密情報を、提供元のみが有する特定のエディタでしか編集できない仕組みを実現できる。そのため、ソースプログラム内の秘密情報の編集が必要な場合であっても、提供元側で安全に更新し、再度、部分暗号化処理されたソースプログラムを提供先に提供できる。   As described above, according to the third embodiment, it is possible to realize a mechanism in which secret information in a source program can be edited only by a specific editor possessed only by a provider. Therefore, even if it is necessary to edit the secret information in the source program, the source program can be safely updated on the provider side, and the partially encrypted source program can be provided again to the provider.

<実施の形態4>
本実施の形態4は、上述した実施の形態1から3の改良例である。本実施の形態4は、実施の形態1の第2の装置20をソースプログラム解析装置に適用したものである。例えば、提供先における調査において、調査対象のソースプログラムを解析する場合がある。ここで、上述した部分暗号化処理済みのソースプログラムC4を解析するには、解析装置内で復号処理を行ない、復号後のソースプログラムに対して解析処理を行うこととなる。但し、解析結果に復号後の秘密情報が表示されてしまうと、秘密情報を隠ぺいできないこととなる。そこで、本実施の形態4では、解析結果に対しても部分暗号化処理を行うものである。
<Embodiment 4>
The fourth embodiment is an improved example of the first to third embodiments described above. In the fourth embodiment, the second device 20 of the first embodiment is applied to a source program analysis device. For example, a source program to be investigated may be analyzed in a survey at a provider. Here, in order to analyze the source program C4 that has been subjected to the partial encryption process, the decryption process is performed in the analysis apparatus, and the analysis process is performed on the decrypted source program. However, if the decrypted secret information is displayed in the analysis result, the secret information cannot be concealed. Therefore, in the fourth embodiment, partial encryption processing is also performed on the analysis result.

すなわち、前記第2の装置は、前記所定の処理として前記復号化ソースプログラムに対して所定の解析を行い、前記解析の結果内で前記指定記号により囲まれた記述を第4の文字列として検出し、前記第4の文字列に第4の置換文字列を対応付けた第4の対応付け情報を生成し、前記第4の対応付け情報に基づいて、前記解析の結果内で前記第4の文字列を前記第4の置換文字列に置換した部分暗号化解析結果を前記処理の結果として出力する。   That is, the second device performs a predetermined analysis on the decryption source program as the predetermined processing, and detects a description enclosed by the specified symbol in the analysis result as a fourth character string. Then, fourth association information in which a fourth replacement character string is associated with the fourth character string is generated, and the fourth association information is generated in the analysis result based on the fourth association information. A partial encryption analysis result obtained by replacing the character string with the fourth replacement character string is output as a result of the processing.

図14は、本発明の実施の形態4にかかるソースプログラム解析装置70の構成を示すブロック図である。尚、本実施の形態4にかかるソースプログラム保護システム400は、ソースプログラム解析装置70の他に、図示しない構成として、第1の装置10、ソースプログラム部分暗号化装置40又はソースプログラム編集装置60を備えるものである。   FIG. 14 is a block diagram showing a configuration of a source program analyzing apparatus 70 according to the fourth embodiment of the present invention. The source program protection system 400 according to the fourth embodiment includes, in addition to the source program analysis device 70, the first device 10, the source program partial encryption device 40, or the source program editing device 60 as a configuration not shown. It is to be prepared.

ソースプログラム解析装置70は、復号処理モジュール71と、解析処理部72とを備える。復号処理モジュール71は、秘密鍵H1、秘密情報ファイルC3及びソースプログラムC4を入力し、復号処理モジュール51と同様に、復号処理を行う。解析処理部72は、復号後のソースプログラムに対して、解析処理を行い、解析結果に対して部分暗号化処理を行い、部分暗号化解析結果C9を出力する。   The source program analysis device 70 includes a decryption processing module 71 and an analysis processing unit 72. The decryption processing module 71 receives the secret key H 1, the secret information file C 3, and the source program C 4, and performs decryption processing in the same manner as the decryption processing module 51. The analysis processing unit 72 performs an analysis process on the decrypted source program, performs a partial encryption process on the analysis result, and outputs a partial encryption analysis result C9.

図15は、本発明の実施の形態4にかかるソースプログラム解析処理の流れを説明するためのフローチャートである。まず、復号処理モジュール71は、秘密鍵H1と、秘密情報ファイルC3と、ソースプログラムC4との入力を受け付ける(S401)。次に、復号処理モジュール71は、ソースプログラムC4に対して復号処理を行う(S402)。一例として、復号処理モジュール71は、図9のステップS222、S223及びS224を実行してもよい。   FIG. 15 is a flowchart for explaining the flow of the source program analysis process according to the fourth embodiment of the present invention. First, the decryption processing module 71 receives input of the secret key H1, the secret information file C3, and the source program C4 (S401). Next, the decryption processing module 71 performs decryption processing on the source program C4 (S402). As an example, the decryption processing module 71 may execute steps S222, S223, and S224 of FIG.

続いて、解析処理部72は、復号後のソースプログラムC1に対して解析処理を行う(S403)。尚、解析処理は、公知の技術を用いて構わない。そして、解析処理部72は、解析処理の結果である解析結果を内部で生成する。ここで、解析結果には秘密情報が含まれる場合があるが、ソースプログラム解析装置70の外部には出力されない。   Subsequently, the analysis processing unit 72 performs an analysis process on the decrypted source program C1 (S403). The analysis process may use a known technique. And the analysis process part 72 produces | generates the analysis result which is a result of an analysis process inside. Here, secret information may be included in the analysis result, but it is not output outside the source program analysis device 70.

その後、解析処理部72は、解析の結果に対して部分暗号化処理を行う(S404)。一例として、解析処理部72は、図8のステップS212、S213、S214、S216及びS217を実行してもよい。その後、解析処理部72は、部分暗号化処理の処理結果である部分暗号化解析結果C9を出力する(S405)。ここで、部分暗号化解析結果C9には、秘密情報指定符C0で囲まれた記述が含まれる場合があるが、開始記号C0−1と終了記号C0−2の間には、置換文字列が記述されていることとなる。   Thereafter, the analysis processing unit 72 performs partial encryption processing on the analysis result (S404). As an example, the analysis processing unit 72 may execute steps S212, S213, S214, S216, and S217 of FIG. Thereafter, the analysis processing unit 72 outputs a partial encryption analysis result C9 that is a processing result of the partial encryption processing (S405). Here, the partial encryption analysis result C9 may include a description enclosed by the secret information designation mark C0. However, there is a replacement character string between the start symbol C0-1 and the end symbol C0-2. It will be described.

以上のことから、本実施の形態4では、部分暗号化処理がされた秘密情報について、ソースプログラム解析装置70内でのみ復号化され、復号後のソースプログラムC1や秘密情報が含まれる解析結果が外部には出力されない。そのため、提供先のユーザが秘密情報を目視することはなく、ソースプログラム内の秘密情報の情報漏えいを防止することができる。   From the above, in the fourth embodiment, the secret information subjected to the partial encryption process is decrypted only in the source program analysis device 70, and the decrypted source program C1 and the analysis result including the secret information are obtained. It is not output to the outside. Therefore, the providing destination user does not visually check the secret information, and information leakage of the secret information in the source program can be prevented.

さらに、部分暗号化解析結果C9を提供元に送付した場合、提供元においては、実施の形態3のソースプログラム編集装置60に部分暗号化解析結果C9を入力させるとよい。これにより、復号処理後の解析結果を画面に表示させ、提供元のユーザが安全に秘密情報を含む解析結果を閲覧することができる。   Furthermore, when the partial encryption analysis result C9 is sent to the provider, the provider may input the partial encryption analysis result C9 to the source program editing device 60 of the third embodiment. Thereby, the analysis result after the decryption process can be displayed on the screen, and the providing user can safely browse the analysis result including the secret information.

<その他の実施の形態>
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
<Other embodiments>
Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention.

また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。   In the above-described embodiments, the present invention has been described as a hardware configuration, but the present invention is not limited to this. The present invention can also realize arbitrary processing by causing a CPU (Central Processing Unit) to execute a computer program.

上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。   In the above example, the program can be stored and supplied to a computer using various types of non-transitory computer readable media. Non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (for example, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (for example, magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R / W, DVD (Digital Versatile Disc), BD (Blu-ray (registered trademark) Disc), semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM ( Random Access Memory)). The program may also be supplied to the computer by various types of transitory computer readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.

100 ソースプログラム保護システム
10 第1の装置
20 第2の装置
31 ソースプログラム
32 第1の部分暗号化ソースプログラム
33 第1の秘密情報ファイル
34 処理の結果
200 ソースプログラム保護システム
40 ソースプログラム部分暗号化装置
41 部分暗号化処理モジュール
411 秘密情報リスト作成部
412 秘密情報ファイル作成部
50 コンパイラ装置
51 復号処理モジュール
511 復号部
512 秘密情報結合部
52 コンパイル処理モジュール
53 部分暗号化処理モジュール
C0 秘密情報指定符
C0−1 開始記号
C0−2 終了記号
C1 ソースプログラム
C2 秘密情報リスト
C2−1 項目番号
C2−2 秘密情報本文
C3 秘密情報ファイル
C4 ソースプログラム
C5 オブジェクトプログラム
C6 プログラムリスト
C7 プログラムリスト
C8 秘密情報ファイル
C9 部分暗号化解析結果
K1 公開鍵
H1 秘密鍵
300 ソースプログラム保護システム
60 ソースプログラム編集装置
61 入力受付部
62 表示処理部
63 編集処理部
64 部分暗号化処理モジュール
65 復号処理モジュール
400 ソースプログラム保護システム
70 ソースプログラム解析装置
71 復号処理モジュール
72 解析処理部
DESCRIPTION OF SYMBOLS 100 Source program protection system 10 1st apparatus 20 2nd apparatus 31 Source program 32 1st partial encryption source program 33 1st secret information file 34 Processing result 200 Source program protection system 40 Source program partial encryption apparatus 41 Partial Encryption Processing Module 411 Secret Information List Creation Unit 412 Secret Information File Creation Unit 50 Compiler Device 51 Decryption Processing Module 511 Decryption Unit 512 Secret Information Combined Unit 52 Compile Processing Module 53 Partial Encryption Processing Module C0 Secret Information Designation C0− 1 Start symbol C0-2 End symbol C1 Source program C2 Secret information list C2-1 Item number C2-2 Secret information body C3 Secret information file C4 Source program C5 Object program C Program list C7 Program list C8 Secret information file C9 Partial encryption analysis result K1 Public key H1 Private key 300 Source program protection system 60 Source program editing device 61 Input reception unit 62 Display processing unit 63 Editing processing unit 64 Partial encryption processing module 65 Decryption processing module 400 Source program protection system 70 Source program analysis device 71 Decryption processing module 72 Analysis processing unit

Claims (10)

任意の文字列が所定の指定記号により囲まれた記述を含むソースプログラムの入力を受け付け、
前記ソースプログラム内で前記指定記号により囲まれた記述を第1の文字列として検出し、
前記第1の文字列に第1の置換文字列を対応付けた第1の対応付け情報を生成し、
前記第1の対応付け情報に基づいて、前記ソースプログラム内で前記第1の文字列を前記第1の置換文字列に置換して第1の部分暗号化ソースプログラムとして出力し、
前記第1の対応付け情報を暗号化して第1の秘密情報ファイルとして出力する、
第1の装置と、
前記第1の部分暗号化ソースプログラムと、前記第1の秘密情報ファイルとの入力を受け付け、
前記第1の秘密情報ファイルを復号化して前記第1の対応付け情報を抽出し、
前記第1の対応付け情報に基づいて、前記第1の部分暗号化ソースプログラム内で前記第1の置換文字列を前記第1の文字列に置換して復号化ソースプログラムを生成し、
前記復号化ソースプログラムから前記指定記号を除外して所定の処理を行い、当該処理の結果を出力する、
第2の装置と、
を備えるソースプログラム保護システム。
Accepts input of a source program containing a description in which an arbitrary character string is enclosed by a predetermined designation symbol,
A description enclosed by the specified symbols in the source program is detected as a first character string;
Generating first association information in which a first replacement character string is associated with the first character string;
Based on the first association information, the first character string is replaced with the first replacement character string in the source program and output as a first partially encrypted source program,
Encrypting the first association information and outputting it as a first secret information file;
A first device;
Receiving input of the first partial encryption source program and the first secret information file;
Decrypting the first secret information file to extract the first association information;
Based on the first association information, the first replacement character string is replaced with the first character string in the first partial encryption source program to generate a decryption source program,
Perform a predetermined process by excluding the designated symbol from the decoding source program, and output a result of the process;
A second device;
A source program protection system comprising:
前記第1の装置は、
前記指定記号の入力をさらに受け付け、
前記第1の秘密情報ファイルに前記指定記号をさらに含めて出力し、
前記第2の装置は、
前記第1の部分暗号化ソースプログラム内で、前記受け付けた第1の秘密情報ファイルに含まれる前記指定記号で囲まれた記述を前記第1の置換文字列として検出し、
前記第1の対応付け情報に基づいて、前記第1の部分暗号化ソースプログラム内で前記検出した第1の置換文字列を前記第1の文字列に置換する
請求項1に記載のソースプログラム保護システム。
The first device includes:
Further accepting input of the specified symbol,
Including the designated symbol in the first secret information file, and outputting,
The second device includes:
In the first partial encryption source program, a description surrounded by the designation symbol included in the received first secret information file is detected as the first replacement character string,
The source program protection according to claim 1, wherein the first replacement character string detected in the first partial encryption source program is replaced with the first character string based on the first association information. system.
前記第2の装置は、所定の秘密鍵を有し、
前記第1の装置は、
前記秘密鍵に対応する公開鍵を前記第2の装置から取得し、
前記公開鍵を用いて前記第1の対応付け情報を暗号化し、
前記第2の装置は、
前記秘密鍵を用いて前記第1の秘密情報ファイルを復号化する
請求項1又は2に記載のソースプログラム保護システム。
The second device has a predetermined secret key;
The first device includes:
Obtaining a public key corresponding to the secret key from the second device;
Encrypting the first association information using the public key;
The second device includes:
The source program protection system according to claim 1 or 2, wherein the first secret information file is decrypted using the secret key.
前記第1の装置は、
前記ソースプログラム内で前記指定記号により囲まれた記述が複数個所検出された場合、当該複数個所の文字列同士を比較し、当該文字列同士が一致する場合、共通の前記第1の置換文字列に置換する
請求項1乃至3のいずれか1項に記載のソースプログラム保護システム。
The first device includes:
When a plurality of descriptions enclosed by the specified symbols are detected in the source program, the character strings at the plurality of places are compared with each other, and when the character strings match, the common first replacement character string The source program protection system according to any one of claims 1 to 3.
前記第2の装置は、
前記所定の処理としてコンパイルを行い、当該コンパイルにより生成されたオブジェクトプログラムを前記処理の結果として出力する、
請求項1乃至4のいずれか1項に記載のソースプログラム保護システム。
The second device includes:
Compile as the predetermined processing, and output the object program generated by the compilation as a result of the processing,
The source program protection system according to any one of claims 1 to 4.
前記第2の装置は、
前記コンパイルの前処理により、前記復号化ソースプログラムからコンパイル用のソースプログラムであるプログラムリストを生成し、
前記プログラムリスト内で前記指定記号により囲まれた記述を第2の文字列として検出し、
前記第2の文字列に第2の置換文字列を対応付けた第2の対応付け情報を生成し、
前記第2の対応付け情報に基づいて、前記プログラムリスト内で前記第2の文字列を前記第2の置換文字列に置換して第2の部分暗号化ソースプログラムとして出力し、
前記第2の対応付け情報を暗号化して第2の秘密情報ファイルとして出力する、
請求項5に記載のソースプログラム保護システム。
The second device includes:
A program list which is a source program for compilation is generated from the decrypted source program by the preprocessing of the compilation,
A description enclosed by the specified symbol in the program list is detected as a second character string;
Generating second association information in which a second replacement character string is associated with the second character string;
Based on the second association information, replace the second character string with the second replacement character string in the program list and output as a second partial encryption source program,
Encrypting the second association information and outputting it as a second secret information file;
The source program protection system according to claim 5.
前記第2の装置は、
前記第1の秘密情報ファイルを復号化する際に用いた秘密鍵に対応する公開鍵を用いて前記第2の対応付け情報を暗号化する
請求項6に記載のソースプログラム保護システム。
The second device includes:
The source program protection system according to claim 6, wherein the second association information is encrypted using a public key corresponding to a secret key used when decrypting the first secret information file.
前記第1の装置は、
前記ソースプログラムを表示し、
編集要求に応じて前記ソースプログラムを更新して再表示し、
保存要求に応じて前記更新後のソースプログラム内の前記指定記号により囲まれた記述を第3の文字列として検出し、
前記第3の文字列に第3の置換文字列を対応付けた第3の対応付け情報を生成し、
前記第3の対応付け情報に基づいて、前記更新後のソースプログラム内で前記第3の文字列を前記第3の置換文字列に置換して第3の部分暗号化ソースプログラムとして出力し、
前記第3の対応付け情報を暗号化して第3の秘密情報ファイルとして出力する、
請求項1乃至4のいずれか1項に記載のソースプログラム保護システム。
The first device includes:
Displaying the source program;
Update and redisplay the source program in response to the edit request,
In response to the save request, the description enclosed by the specified symbol in the updated source program is detected as a third character string,
Generating third association information in which a third replacement character string is associated with the third character string;
Based on the third association information, the third character string is replaced with the third replacement character string in the updated source program and output as a third partially encrypted source program,
Encrypting the third association information and outputting it as a third secret information file;
The source program protection system according to any one of claims 1 to 4.
前記第2の装置は、
前記所定の処理として前記復号化ソースプログラムに対して所定の解析を行い、
前記解析の結果内で前記指定記号により囲まれた記述を第4の文字列として検出し、
前記第4の文字列に第4の置換文字列を対応付けた第4の対応付け情報を生成し、
前記第4の対応付け情報に基づいて、前記解析の結果内で前記第4の文字列を前記第4の置換文字列に置換した部分暗号化解析結果を前記処理の結果として出力する
請求項1乃至4のいずれか1項に記載のソースプログラム保護システム。
The second device includes:
Performing a predetermined analysis on the decoding source program as the predetermined processing;
A description surrounded by the specified symbol in the result of the analysis is detected as a fourth character string;
Generating fourth association information in which a fourth replacement character string is associated with the fourth character string;
The partial encryption analysis result obtained by replacing the fourth character string with the fourth replacement character string in the analysis result based on the fourth association information is output as a result of the processing. 5. The source program protection system according to any one of items 1 to 4.
第1の装置において、
任意の文字列が所定の指定記号により囲まれた記述を含むソースプログラムの入力を受け付け、
前記ソースプログラム内で前記指定記号により囲まれた記述を第1の文字列として検出し、
前記第1の文字列に第1の置換文字列を対応付けた第1の対応付け情報を生成し、
前記第1の対応付け情報に基づいて、前記ソースプログラム内で前記第1の文字列を前記第1の置換文字列に置換して第1の部分暗号化ソースプログラムとして出力し、
前記第1の対応付け情報を暗号化して第1の秘密情報ファイルとして出力し、
第2の装置において、
前記第1の部分暗号化ソースプログラムと、前記第1の秘密情報ファイルとの入力を受け付け、
前記第1の秘密情報ファイルを復号化して前記第1の対応付け情報を抽出し、
前記第1の対応付け情報に基づいて、前記第1の部分暗号化ソースプログラム内で前記第1の置換文字列を前記第1の文字列に置換して復号化ソースプログラムを生成し、
前記復号化ソースプログラムから前記指定記号を除外して所定の処理を行い、当該処理の結果を出力する、
ソースプログラム保護方法。
In the first device:
Accepts input of a source program containing a description in which an arbitrary character string is enclosed by a predetermined designation symbol,
A description enclosed by the specified symbols in the source program is detected as a first character string;
Generating first association information in which a first replacement character string is associated with the first character string;
Based on the first association information, the first character string is replaced with the first replacement character string in the source program and output as a first partially encrypted source program,
The first association information is encrypted and output as a first secret information file,
In the second device:
Receiving input of the first partial encryption source program and the first secret information file;
Decrypting the first secret information file to extract the first association information;
Based on the first association information, the first replacement character string is replaced with the first character string in the first partial encryption source program to generate a decryption source program,
Perform a predetermined process by excluding the designated symbol from the decoding source program, and output a result of the process;
Source program protection method.
JP2017176327A 2017-09-14 2017-09-14 Source program protection system and method Active JP6907847B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017176327A JP6907847B2 (en) 2017-09-14 2017-09-14 Source program protection system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017176327A JP6907847B2 (en) 2017-09-14 2017-09-14 Source program protection system and method

Publications (2)

Publication Number Publication Date
JP2019053146A true JP2019053146A (en) 2019-04-04
JP6907847B2 JP6907847B2 (en) 2021-07-21

Family

ID=66014018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017176327A Active JP6907847B2 (en) 2017-09-14 2017-09-14 Source program protection system and method

Country Status (1)

Country Link
JP (1) JP6907847B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113268736A (en) * 2021-06-24 2021-08-17 深圳平安智汇企业信息管理有限公司 Information processing method and device and electronic equipment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05244150A (en) * 1990-07-31 1993-09-21 Hiroichi Okano Method and device for intelligent information processing
JPH09233067A (en) * 1990-07-31 1997-09-05 Hiroichi Okano Method and device for processing intelligence information
JP2003280754A (en) * 2002-03-25 2003-10-02 Nec Corp Hidden source program, source program converting method and device and source converting program
JP2010517119A (en) * 2007-01-18 2010-05-20 パナソニック株式会社 Obfuscation support device
JP4818279B2 (en) * 2005-12-22 2011-11-16 富士通株式会社 Program processing apparatus, program processing method, and program
US20120151600A1 (en) * 2010-12-14 2012-06-14 Ta Chun Yun Method and system for protecting intellectual property in software
US20140215225A1 (en) * 2013-01-30 2014-07-31 Samsung Electronics Co., Ltd. Method for increasing the security of software

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05244150A (en) * 1990-07-31 1993-09-21 Hiroichi Okano Method and device for intelligent information processing
JPH09233067A (en) * 1990-07-31 1997-09-05 Hiroichi Okano Method and device for processing intelligence information
JP2003280754A (en) * 2002-03-25 2003-10-02 Nec Corp Hidden source program, source program converting method and device and source converting program
JP4818279B2 (en) * 2005-12-22 2011-11-16 富士通株式会社 Program processing apparatus, program processing method, and program
JP2010517119A (en) * 2007-01-18 2010-05-20 パナソニック株式会社 Obfuscation support device
US20120151600A1 (en) * 2010-12-14 2012-06-14 Ta Chun Yun Method and system for protecting intellectual property in software
US20140215225A1 (en) * 2013-01-30 2014-07-31 Samsung Electronics Co., Ltd. Method for increasing the security of software

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113268736A (en) * 2021-06-24 2021-08-17 深圳平安智汇企业信息管理有限公司 Information processing method and device and electronic equipment

Also Published As

Publication number Publication date
JP6907847B2 (en) 2021-07-21

Similar Documents

Publication Publication Date Title
US8589880B2 (en) Identifying a software developer based on debugging information
CN108595921B (en) Method and device for confusing character strings in source codes
CN104539432B (en) A kind of method and apparatus that file is signed
KR100841282B1 (en) Apparatus, storage medium, and method for creating a protected executable program
TWI598765B (en) Data protection methods and devices
CN100568152C (en) The source code protection Method and kit for
JP5735539B2 (en) System, apparatus and method for encrypting and decrypting data transmitted over a network
US20080208886A1 (en) Encryption based silicon IP protection
CN105074712B (en) Code processing apparatus and program
CN111914225B (en) Source code protection system and source code encryption method
CN104268444A (en) Cloud OS Java source code protection method
EP3188063A1 (en) A build system
CN101981580A (en) From polymorphic executable to polymorphic operating system
CN106778100B (en) Obfuscation compiling method and obfuscation compiler based on android platform and IOS platform
CN104751024A (en) Method and device for encrypting core source code
CN103853943B (en) program protection method and device
CN109740314A (en) A kind of method that SWF obscures encryption
CN106326691A (en) Encryption and decryption function realization method and device, and server
JP6907847B2 (en) Source program protection system and method
CN112115427A (en) Code obfuscation method, device, electronic device and storage medium
JP6636226B2 (en) Countermeasure planning support device, countermeasure planning support method, and countermeasure planning support program
JP2005165919A (en) Program execution method, program creation method, information processor and program
KR20200050157A (en) Electronic terminal device capable of processing conditional security settings for a memo entered in a spreadsheet and operating method thereof
US6931634B2 (en) Encrypted compiler
CN111651781A (en) Log content protection method and device, computer equipment and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200817

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210420

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: 20210601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210614

R150 Certificate of patent or registration of utility model

Ref document number: 6907847

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150