WO2007072568A1 - プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒体 - Google Patents

プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒体 Download PDF

Info

Publication number
WO2007072568A1
WO2007072568A1 PCT/JP2005/023654 JP2005023654W WO2007072568A1 WO 2007072568 A1 WO2007072568 A1 WO 2007072568A1 JP 2005023654 W JP2005023654 W JP 2005023654W WO 2007072568 A1 WO2007072568 A1 WO 2007072568A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
encrypted
function
predetermined
file
Prior art date
Application number
PCT/JP2005/023654
Other languages
English (en)
French (fr)
Inventor
Osamu Hamaue
Original Assignee
Fujitsu Limited
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 Fujitsu Limited filed Critical Fujitsu Limited
Priority to PCT/JP2005/023654 priority Critical patent/WO2007072568A1/ja
Priority to JP2007550973A priority patent/JP4818279B2/ja
Publication of WO2007072568A1 publication Critical patent/WO2007072568A1/ja
Priority to US12/213,290 priority patent/US20080301654A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code

Definitions

  • the present invention relates to a program processing device, a program processing method, a program, and a computer-readable recording medium, and in particular, a program processing device, a program processing method, a program, and a computer-readable program relating to processing when providing a program product. It relates to possible recording media.
  • an executable file is provided, and the executable file is assigned by a special number (key code) for permitting execution of the file. Can be installed (installed) on the execution device.
  • a source program as a set of desired functional parts is created for each user, and this is called an executable file (a so-called object program file, hereinafter simply referred to as an "executable file"). (Converted) to provide. Then, the program provided in this way is managed for each of a plurality of users of the recipients, such as program updates that can occur thereafter.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2003-280754
  • the present invention has been made in view of such problems, and enables the centralization of management of programs provided to a plurality of users who desire different functions, and newly adds functions.
  • the purpose is to provide a program providing system that does not require the creation of a corresponding source program each time a request occurs.
  • a predetermined execution format for enabling the program to be executable in a state where the portion of the signature is encrypted.
  • Configuration to perform file enablement processing, or creation of a predetermined executable format file that enables the program to be executable in a state where at least a part of the code is encrypted and then the code part is encrypted A configuration is provided in which a predetermined removal process for removing the influence of the predetermined process is performed on the product product subjected to the enabling process when the encrypted part is decrypted.
  • the program provider when a program product is provided, processing for enabling an execution format file including an encrypted portion is performed in advance.
  • the program provider should create a single source program that includes all the functions in advance.
  • the part other than the part related to the function desired by the user is encrypted.
  • the program product is provided to the user after performing the above-mentioned executable format file enabling process.
  • the user is provided with a source program in which a portion other than the desired functional portion is encrypted and further subjected to an executable format file enabling process. Since execution format file enabling processing is performed in this way, the user can convert the source program related to the provision into an executable format file in a state where parts other than the desired functional part are encrypted. S Yes.
  • the user can install and execute the object program obtained by converting into the execution format in his / her own information processing apparatus such as a personal computer. Then, the desired functional part included in the object program can be executed.
  • the program provider provides the user with a decryption key for decrypting the other functional part.
  • the user can decrypt the other functional part included in the program according to the original provision by using the decryption key.
  • the user can execute the other functional parts.
  • the program provider creates one source program including all functional parts in advance.
  • the source program is provided by encrypting the parts other than the relevant functional parts and performing the executable file conversion process.
  • the program provider does not need to individually provide and manage a plurality of programs having only different functions corresponding to requests for different functional parts from a plurality of users. That is, the program provider only needs to provide a single source program including all the above-described functional parts even in response to requests for different functional parts from a plurality of users.
  • the portion other than the desired functional portion is encrypted in advance, and the execution format file enabling processing is performed.
  • each user can execute only a desired functional part, and in this sense, the same effect as in the case of individually providing a program including only a desired functional part for each user can be obtained.
  • the program provider provides and manages one source program including all functional parts in response to requests for different functional parts by a plurality of users. Therefore, it is possible to effectively reduce the labor required for program creation and subsequent management by the program provider.
  • FIG. 1 is a diagram (No. 1) for explaining a program processing system according to one embodiment of the present invention
  • FIG. 2 is a diagram (part 2) for explaining the program processing system according to the embodiment shown in FIG.
  • FIG. 3 is a diagram (No. 1) for explaining a program processing system according to another embodiment of the present invention.
  • FIG. 4 is a diagram (part 2) for explaining the program processing system according to the embodiment of FIG.
  • FIG. 5 is a processing flowchart of encryption processing in the program processing system according to one embodiment of the present invention.
  • FIG. 6 is a processing flow chart of decryption processing in the program processing system according to the embodiment of FIG.
  • FIG. 7 is a block diagram showing an example of a computer capable of implementing a program processing system according to an embodiment of the present invention.
  • the user receives the encrypted source program for each functional unit, obtains the decryption key related to the required function, and only the part is obtained. Decryption can be performed. As a result, it is possible to obtain a source program that includes the function in a usable state.
  • the program provider does not need to manage the source program for each user, so that the source program can be centrally managed, and the file management environment can be simplified.
  • the program encryption system has a function of converting an unencrypted source program into a source program that is signed in functional units.
  • this program encryption system uses a predetermined executable format file creation control code for each functional unit so that an error does not occur when the source program encrypted in this way is converted into an executable format file. Has a function of embedding.
  • a method of providing one program to all users is provided. provide.
  • the source program provided to the user is a source program in which all functions are implemented, and the user can execute the function by executing the source program in the user environment file. It becomes.
  • the program encryption system has a function of limiting a function that can be executed for each user. [0030] According to this program encryption system, encryption is performed using a program power S with all functions and a different key for each function part.
  • each encrypted part obtained in this way has a predetermined control character string (predetermined above-mentioned predetermined part) so as not to cause an error when the source program including the encrypted part is converted into an executable file.
  • the executable format file creation control code is automatically embedded.
  • FIG. 1 is a diagram for explaining a method for providing an encrypted source program according to an embodiment of the present invention.
  • function parts 10A, 10B, and 10C corresponding to functions A, B, and C are created in the source program 10, respectively.
  • the function unit of the source program 10 that is, the function part 10A, 10B, IOC is performed for each function, and the decryption key 30A, 30B, 30C corresponding to each is decrypted.
  • the decryption key 30A, 30B, 30C corresponding to each is decrypted.
  • the corresponding program key system 100 When a source program including three types of functional parts 10A, 10B, and IOC is input in this way, the corresponding program key system 100 generates the corresponding three types of decryption keys 30A. , 30B, 30C, and the source program 20 provided by the user, including the encrypted source program function parts 20A, 20B and 20C obtained by three different types of encryption for each function part. .
  • the encrypted source program 20 includes the encrypted machine.
  • executable file creation control codes 25A, 25B and 25C are loaded for each functional part.
  • These execution file creation control codes 25 A and 25 B correspond to control character strings that are embedded so as not to cause an error when the execution format file is created.
  • the user requests the source program provider for decryption key information related to the necessary function portion.
  • the program provider is requested for the corresponding decryption key information 30A.
  • the encrypted source program 20 is input to the program decryption system 200 together with the decryption key information 30A.
  • the program decryption system 200 decrypts only the corresponding functional part 20A.
  • the parts other than the functional part 20A and the corresponding executable file creation control code 25A that is, the encrypted functional parts 20B and 20C and the corresponding executable file creation control codes 25B and 20C are The source program 11 after decryption processing is obtained as it is.
  • the user converts the source program 11 into an executable file.
  • the decrypted functional part 10A can be executed, and the corresponding function A can be obtained.
  • FIG. 3 is a diagram for explaining processing for encrypting a source program to be provided to a user by a program provider.
  • the source program 10 before encryption has three functional parts 10A, 1 that provide different functions. Consists of OB and IOC.
  • the functional parts to be encrypted are the other functional parts 10A, 10C excluding the functional part 10B out of the three functional parts 10A, 10B, 10C.
  • Encryption is performed using the key information 40 as a key.
  • the key information 40 includes information for performing a key sign in a different manner for each of the functional parts 10A and 10C to be encrypted.
  • Decryption key information 70 shown in FIG. 4 to be described later also includes decryption key information having different contents for each of the functional parts 10A and 10C to be encrypted.
  • the decryption key information 70 can be decrypted according to the functional part 10A depending on the decryption key information (Key—xxxl) related to the functional part 10A.
  • the functional part 10C cannot be decrypted. .
  • the decryption key information (Key—xxxl) related to the functional part 10C it is possible to decrypt the functional part 10C.
  • the functional part 10A cannot be decrypted. Therefore, it is possible to keep the scope of information disclosure to users within the necessary minimum range.
  • Encryption source key generation processing 50 is performed on the source program 10 and the key information 40 before encryption, and the source program 20 after encryption is obtained.
  • the encrypted source productr 20 as shown in the figure is included in the source program 10 before encryption, and the functional part 10B; also included in the source program 10 before encryption.
  • the program provider provides the obtained source program 20 obtained here to the user in this state.
  • the user can convert the source program 20 that has been given the same sign into an executable file in that state.
  • the executable file creation control codes 25A-1 and 25C-1 are added to the source program 20 having the same sign as described above.
  • the encrypted source program 20 includes one line of each functional part 10A, 10C of the source program 10 before encryption in the symbol parts 25A-1 and 25C-1 as the stub functions.
  • the source program 20 after the key sign can be subjected to the same conversion without causing an error in the conversion to the executable format file, like the source program 10 before encryption.
  • the encryption function parts 20A-2, 20C-2 corresponding to these function parts 10A, 10C and the corresponding key identification information 20A_1, 20C-1 are to be recognized as comments. Commented out by the symbols 25A-2 and 25C-2. as a result These are also left as comments when they are converted into executable files. This prevents errors from occurring when converting to an executable file. Therefore, as a result of the conversion of the encrypted source program 20 into an executable format file, only the function portion 10 B is converted into an executable format file, and only the corresponding function B can be executed.
  • the symbol parts 25A_1, 25C_1 as the stub function and the encryption function part in the part before and after the encryption function part 20A_2, 20C-2 are inserted to recognize 20A-1 and 20C-1 as comments.
  • the encryption source program 20 can be converted into an executable file with the encryption function part included, that is, can be converted into an executable file.
  • the master key information file 30 is written with information for decrypting the encrypted function parts 20A-2 and 20C-2, respectively, which has been encoded as described above. They correspond to the key identification information Key-xxxl and Key-xxx2, respectively.
  • the program provider retains the master key information file 30 obtained when the source program 10 is encrypted, and provides the user with the source program 20 after the sign-up, or after the provision, the user.
  • the key information corresponding to the function related to the request is extracted and written in the decryption key information file 70 described later, and this is provided to the user.
  • the user can use the function by decrypting the corresponding function part using the corresponding key information.
  • the key information cannot be used by decrypting other functional parts.
  • the user requests the decryption key information file 70 for enabling the use of the function A to the program provider. And in this way the program Decryption processing 60 is performed on the decryption key information file 70 obtained from the provider and the above-mentioned source code source program 20.
  • the decryption key information file 70 requested by the user as described above is necessary for decrypting the key information for enabling the function A, that is, the functional part 20A-2. Key information identified by Key—xxxl is written. Therefore, in the decryption process 60, the corresponding encryption function part 20A-2 is decrypted, and as a result, the decryption source program 11 is obtained.
  • the decryption source program 11 the functional part 10A obtained by the decryption this time, the executable file creation control code 25A_1, the ⁇ ⁇ ⁇ ⁇ functional part 20A_2, the key information 20-1 and Replace the previous and next commentary symbols 25_2.
  • the decrypted source program 11 has the same format as the original source program 10 as described above.
  • the decryption source program 11 includes the first lines “int sub001 (int a, int b, int c) ⁇ ”, “int sub002” of each functional part 10A, 10B, 10C of the original source program 10.
  • the functional part 10A obtained by decrypting in this way is included as an effective functional part together with the functional part 10B that was not originally encrypted. .
  • the program provider prepares one source program 10 for all users, and provides each user with each function part in a state where the function part is signed. The If the desired function is different for each user, key information necessary for decrypting the functional part corresponding to the corresponding function is also provided.
  • the user can decrypt the functional part required by the user in the initially provided key source program based on the key information.
  • an executable file creation control code and comment code 25C-2 are inserted corresponding to the encryption function part.
  • the program provider is requested to obtain the corresponding decryption key information. Obtain.
  • the corresponding functional portion can be further decrypted in the initially provided encryption source program.
  • step S1 an instruction for selecting a functional part to be encrypted among the functional parts included in the source program 10 is input to the program encryption system 100 shown in FIG. Receiving this, the system 100 retrieves the designated selection function part (step S2), and if the corresponding part is obtained as a result (Yes in step S3), the system 100 proceeds to step S4. [0079] In step S4, the above stub function (25A-1, 25C-1, etc.) is created and loaded in the front part of the corresponding functional part (step S5). As a result, the source program file 20-2 with embedded stub functions is obtained. Next, key information 40 is provided, and based on this, master key information is created (step S6), and this is written into the master key information file 30 (step S7).
  • step S8 the key identification information (20A_1, 20C-1, etc.) of the master key is written in the portion following the stub function of the currently processed source program.
  • step S9 the key function 40 corresponding to the master key information is applied to encrypt the corresponding function part.
  • the encryption function part (20A_2, 20C-2, etc.) obtained here is loaded in the source program file being processed (step S10).
  • the encrypted source program 20 file thus obtained is obtained.
  • steps S2 to S10 are repeated accordingly.
  • step S3 If it is determined in step S3 that all functional parts to be encrypted have been processed, or if the corresponding part is not found in the source program file 10 being processed, the encryption process ends. (Step S11).
  • the user receives the request from the program provider, and the decryption code in which key information for decrypting the functional part related to the required function in the originally provided encryption source program 20 is written.
  • the key information file 70 is input to the program decryption system 200.
  • the decryption system 200 determines the decryption key information file 70 in step S31. That is, in step S32, the data format and the like of the file are checked, and whether or not the formal condition of the predetermined decryption key information file 70 is satisfied is determined.
  • step S33 based on the contents of the encryption source program 20-3 further provided by the user, the decryption key information file 70 is stored. It is determined whether or not the corresponding functional portion is included in the written key information (step S33).
  • the key identification information shown in Figure 4 Key— xxxl, 20 make the same judgment using A- l, Key—xxx2, 20C—1, etc.
  • step S33 if the corresponding functional portion exists (Yes in step S33), the corresponding functional portion (20A-2, 20C-) is used using the key information written in the decryption key information file 70. 2) is decrypted (step S34). As a result, the original functional parts (10A, 10C, etc.) are obtained.
  • the source file after removing the stub function (25A_1, 25C-1, etc.) as the control code that is provided corresponding to the decrypted functional part is removed.
  • Program 20—4 is obtained (step S35).
  • the stub function is provided to maintain a predetermined program format with the corresponding functional part encrypted and invalidated, and the functional part is decrypted and activated in this way. It is no longer necessary at the stage.
  • the key identification information (20A_1, 20C-1, etc.) and the commenty symbols 25A-2, 25C-2, etc., which are no longer necessary, are also deleted and the decryption key data is created (step S36). ).
  • the decrypted functional parts (1 OA, IOC, etc.) created in this way are the original encrypted functional parts (20A-2, 20C-2, etc.) in the source program being processed. )) (Step S37). As a result, a decrypted source program 11 file is obtained.
  • step S38 ends (step S38).
  • the computer shown in FIG. 7 performs control of information processing.
  • CPU1 CPU1
  • Memory 2 used as storage means by CPU1
  • Display 4 for displaying information to the user;
  • User inputs various instructions Operation unit 3;
  • Hard disk device 5 for storing programs and various data 5;
  • CD portable information recording medium—CD for transferring programs and various data to / from external media via ROM6A— ROM drive 6;
  • Internet It consists of a modem 7 for exchanging programs and various data with an external server via a communication network 9 such as a LAN.
  • the program is loaded from the external server via the communication network 9 by transferring it to the hard disk device 5 under the control of the CPU 1.
  • the CPU 1 loads the program from the hard disk device 5 into the memory 2 in accordance with an instruction input via the operation unit 3 by the user, and sequentially executes the instructions.
  • the computer operates as the program encryption system 100 or the program decryption system 200 described above.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Description

明 細 書
プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読 取可能な記録媒体
技術分野
[0001] 本発明は、プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ 読取可能な記録媒体に係り、特にプログラム製品を提供する際の処理に係るプログ ラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒 体に関する。
背景技術
[0002] ソフトウェアプログラム(以下単に「プログラム」と称する)の提供方式として、実行形 式のファイルを提供し、そのファイルの実行を許可するための特別な番号(キーコー ド)により当該実行形式のファイルを実行装置に実装 (インストール)することを可能と する方式がある。
[0003] このような方式において、近年のプログラムの機能の拡大に伴レ、、プログラム製品 の提供を受けるユーザ毎に、当該プログラムによって提供する機能を管理する必要 十生が生じている。
[0004] このような場合、ユーザ毎に、所望の機能部分の集合としてのソースプログラムを作 成し、これを実行形式のファイル (所謂オブジェクトプログラムのファイルであり、以下 単に「実行形式ファイル」と称する)に変換 (コンパイル)して提供する。そしてこのよう にして提供されたプログラムにっき、提供先の複数のユーザ毎に、その後に発生し得 るプログラム更新等に関する管理を行う。
[0005] またプログラム製品の提供後にユーザから機能追加の要求等が生じた場合、対応 する新たなソースプログラムファイルを作成し、これを上記同様実行形式に変換して 提供する。
特許文献 1 :特開 2003— 280754号公報
発明の開示
発明が解決しょうとする課題 [0006] このようなプログラム製品の提供に係るシステムでは、複数のユーザ毎に、提供対 象としての異なる機能仕様のプログラムを個々に管理する必要があり、管理が煩雑と なる可能性がある。
[0007] またユーザからの機能追加の要求等に応じ、その都度当該機能に対応する部分を 追加したソースプログラムを作成してこれを実行形式に変換した上でユーザに提供し 直す場合、余分な手間を要する。
[0008] このような問題点を解決するため予め全ての機能部分を含む一のソースプログラム を作成しておく方法が考えられる。この場合、各ユーザ毎に、所望機能部分以外の 部分を暗号化して提供する。しかしながらこの方法の場合、暗号化部分された部分を 含んだ状態のソースプログラムは、これを実行形式ファイルに変換する際に当該暗号 化部分によりエラーを生ずるため、実行形式ファイルに変換することが困難となること が考えられる。
[0009] 本発明はこのような問題点に鑑みてなされたものであり、異なる機能を所望する複 数のユーザに対して提供するプログラムの管理の一元化を可能とし、かつ新たに機 能追加の要求等が生じた場合であっても、その都度対応するソースプログラムを作成 することを要しないようなプログラム提供システムを提供することを目的とする。
課題を解決するための手段
[0010] 本発明によれば、少なくとも一部分が暗号化されたプログラムに対し、当該喑号ィ匕 部分が暗号化された状態で当該プログラムを実行形式ファイルィ匕可能とするための 所定の実行形式ファイル化可能化処理を施す構成、或いは少なくとも一部分が暗号 ィ匕された後に当該喑号ィ匕部分が暗号化された状態で当該プログラムを実行形式ファ ィルイヒ可能とするための所定の実行形式ファイル化可能化処理が施されたプロダラ ム製品に対して当該暗号ィヒ部分の復号に際し前記所定の処理による影響を除去す るための所定の除去処理を施す構成を設けた。
[0011] このように本発明ではプログラム製品の提供時、暗号化部分を含んだ状態での実 行形式ファイルィヒを可能にするための処理を予め行っておく。このような方式を適用 することにより、プログラム提供者は予め全ての機能を含んだ一のソースプログラムを 作成しておけばよい。そして各ユーザにプログラム製品を提供する際には、上記一の ソースプログラム中、当該ユーザが所望する機能に関する部分以外の部分を暗号化 する。そしてその後、上記実行形式ファイル化可能化処理を行った上でユーザに対 してプログラム製品を提供する。
[0012] ユーザはこのように所望の機能部分以外の部分が暗号化され後更に実行形式ファ ィル化可能化処理が施されたソースプログラムの提供を受ける。このように実行形式 ファイルィ匕可能化処理が施されているため、ユーザは所望の機能部分以外の部分が 暗号化された状態で当該提供に係るソースプログラムを実行形式ファイルに変換す ること力 S可肯 となる。
[0013] その結果ユーザはこのように実行形式に変換されて得られたオブジェクトプログラム を自己の情報処理装置、例えばパーソナルコンピュータ等にインストールして実行す ること力 Sできるようになる。そして当該オブジェクトプログラムに含まれている、当該所 望の機能部分の実行が可能となる。
[0014] この場合当該オブジェクトプログラムの当該所望の機能部分以外の部分について は上記の如くユーザに提供される前に喑号ィ匕されているため、当該ユーザはこれを 実行することができない。
[0015] またユーザから更に他の機能も使用したい旨の要求がなされることが考えられる。
そのような場合、プログラム提供者は当該ユーザに対し、当該他の機能部分を復号 するための復号化キーを提供する。これを受けたユーザは当該復号ィ匕キーを使用し て前記当初の提供に係るプログラムに含まれる当該他の機能部分を復号することが できる。その結果、当該ユーザは当該他の機能部分についても実行が可能となる。 発明の効果
[0016] 本発明によれば上記の如くプログラム提供者は予め全ての機能部分を含む一のソ ースプログラムを作成しておく。そして異なる機能部分に対する要求を有する複数の ユーザに対し、該当する機能部分以外の部分を暗号化した上で実行形式ファイル化 可能化処理を行って当該ソースプログラムを提供する。
[0017] その結果プログラム提供者は、複数のユーザからの異なる機能部分に対する要求 に応じて対応する異なる機能のみを有する複数のプログラムをそれぞれ提供して個 別に管理する必要がなくなる。 [0018] すなわちプログラム提供者は複数のユーザからの異なる機能部分に対する要求に 対しても、上記全ての機能部分を含む一のソースプログラムを提供すればよい。但し その際、上記の如く所望の機能部分以外の部分を予め暗号化した上で実行形式フ アイル化可能化処理を行っておく。その結果各ユーザは所望の機能部分のみ実行 可能となり、その意味では各ユーザ毎に所望の機能部分のみを含むプログラムを個 別に提供する場合と同様の効果が得られる。
[0019] またプログラム提供者は、複数のユーザによる異なる機能部分に対する要求に対し 、全ての機能部分を含む一のソースプログラムを提供して管理する。したがってプロ グラム提供者におけるプログラム作成及びその後の管理に要する手間が効果的に削 減可能となる。
図面の簡単な説明
[0020] [図 1]本発明の一実施例によるプログラム処理システムを説明するための図(その 1) である。
[図 2]図 1に示す実施例によるプログラム処理システムを説明するための図(その 2)で ある。
[図 3]本発明の他の実施例によるプログラム処理システムを説明するための図(その 1 )である。
[図 4]図 3の実施例によるプログラム処理システムを説明するための図(その 2)である
[図 5]本発明の一実施例によるプログラム処理システムにおける暗号化処理の処理フ ローチャートである。
[図 6]図 5の実施例によるプログラム処理システムにおける複号化処理の処理フロー チャートである。
[図 7]本発明の一実施例によるプログラム処理システムを実施可能なコンピュータの 一例を示すブロック図である。
符号の説明
[0021] 10 暗号化前のソースプログラム
11 復号化後のソースプログラム 20 暗号化後のソースプログラム
100 プログラム暗号化システム
200 プログラム復号化システム
発明を実施するための最良の形態
[0022] 本発明の実施の形態によれば、プログラム提供方式において、ユーザは機能単位 に暗号化されたソースプログラムを受取り、必要となる機能に関する複号化キーを入 手し、その部分のみの復号ィ匕を行うことが可能となる。その結果、その機能が使用可 能な状態で含まれたソースプログラムを得ることができる。
[0023] このようなシステムによれば、プログラム提供者はユーザごとにソースプログラムを管 理する必要がなくなり、ソースプログラムの一元管理が可能となり、ファイルの管理環 境の簡便化が可能となる。
[0024] 本発明の実施の形態によるプログラム暗号化システムは、暗号化されていないソー スプログラムを、機能単位に喑号ィ匕したソースプログラムに変換する機能を有する。
[0025] またこのプログラム暗号化システムは、このように機能単位に暗号化されたソースプ ログラムを、実行形式ファイルに変換時にエラーが発生しないよう、予め所定の実行 形式ファイル作成制御コードを機能単位に埋め込む機能を有する。
[0026] このシステムによれば、このようにしてユーザに対して提供された暗号化ソースプロ グラムが仮に第三者の手に渡った場合であっても、当該第三者は所定の複号化キー を手に入れない限り暗号化部分の復号ィ匕はできない。したがって当該第三者が該当 する機能を利用することはできない。
[0027] このように本発明の実施の形態によれば、ユーザ毎に個別にプログラムを作成して これを管理する方式に代えて、全てのユーザに対し一つのプログラムを提供するよう に方式を提供する。
[0028] この場合ユーザに対して提供されるのは全機能を実装したソースプログラムであり、 そのソースプログラムをユーザ環境で実行形式ファイルィ匕することにより、ユーザによ る当該機能の実行が可能となる。
[0029] 上記プログラム暗号化システムはユーザ毎に実行可能な機能を制限する機能を有 する。 [0030] このプログラム暗号化システムによれば、全機能搭載のプログラム力 S、その各機能 部分毎に異なった喑号ィ匕キーにより暗号化されるようになる。
[0031] またこのようにして得られた各暗号化部分には、当該暗号化部分を含むソースプロ グラムの実行形式ファイルへの変換時にエラーを生じないよう、予め所定の制御文字 列(上記所定の実行形式ファイル作成制御コード)が自動的に埋め込まれる。
[0032] その結果ユーザはこのように機能単位に暗号化されたソースプログラムを受取る。
そして必要な機能部分について、上記喑号ィ匕キーに対応する復号ィ匕キーを入手す ることにより、その部分のみについて復号ィ匕を行うことが可能となる。その結果、当該 機能部分が実行可能な状態で含まれたソースプログラムを得ることができる。そしてこ のソースプログラムを実行形式ファイルに変換することにより、ユーザは該当機能を使 うことが可能となる。
実施例 1
[0033] 以下図と共に本発明の実施例に係るプログラム提供システムにっき、図 1,図 2とと もに説明する。
[0034] 図 1は本発明の一実施例に係る、暗号化されたソースプログラムを提供する方式に ついて説明するための図である。
[0035] この方式では最初にソースプログラム 10の中に機能 A, B, Cにそれぞれ対応した 機能部分 10A, 10B, 10Cを作り込む。
[0036] そしてこれをプログラム暗号化システム 100にて暗号化する。
[0037] 具体的にはソースプログラム 10の機能単位、すなわち機能部分 10A, 10B, IOC 毎に喑号ィ匕を行レ、、各々に該当する複号化キー 30A, 30B, 30Cよりなる復号化キ 一情報 30を生成する。
[0038] このように 3種類の機能部分 10A, 10B, IOCを含むソースプログラムを入力した場 合に当該プログラム喑号ィ匕システム 100によって生成されるのは、対応する 3種類の 復号化キー 30A, 30B, 30Cと、機能部分毎に異なる 3種類の暗号化によって得ら れた、暗号化されたソースプログラムの機能部分 20A, 20B及び 20Cとを含む、ユー ザ提供用のソースプログラム 20である。
[0039] 又図 1に示す如ぐ当該暗号化後のソースプログラム 20には上記暗号化された機 能部分 20A, 20B及び 20C以外に、各機能部分毎に、実行ファイル作成制御コード 25A, 25B及び 25Cが坦め込まれている。これらの実行ファイル作成制御コード 25 A, 25Bは上記実行形式ファイル作成時にエラーを生じないように埋め込まれる制御 文字列に該当するものである。
[0040] 次に図 2とともに、図 1とともに上述した如くにプログラム暗号化システム 100の機能 によって暗号化されたソースプログラム 20を受領したユーザが実際にこれを利用する 際の処理について説明する。
[0041] まずユーザは、ソースプログラム提供者に対し、必要機能部分に係る複号化キー情 報を要求する。
[0042] ここでは一例として、ユーザが機能 Aに係る機能部分 20Aを所望しているとする。こ の場合、該当する複号化キー情報 30Aをプログラム提供者に対し要求する。
[0043] その結果ユーザが当該複号化キー情報 30Aを受領した場合、当該復号化キー情 報 30Aとともに、上記暗号化されたソースプログラム 20をプログラム復号ィ匕システム 2 00に入力する。
[0044] その結果プログラム復号ィ匕システム 200では、該当する機能部分 20Aのみを復号 化する。その結果、当該機能部分 20A及び対応する実行形式ファイル作成制御コ ード 25A以外の部分、すなわち暗号化された機能部分 20B及び 20C並びにそれぞ れに対応する実行形式ファイル作成制御コード 25B及び 20Cはそのままの状態の、 復号化処理後のソースプログラム 11が得られる。
[0045] 次にユーザは同ソースプログラム 11を実行形式ファイルに変換する。その結果当 該復号化された機能部分 10Aの実行が可能となり、該当する機能 Aを得ることができ る。
実施例 2
[0046] 以下図 3乃至 6とともに、本発明の他の実施例に係るプログラム提供システムにっき 説明する。
[0047] 図 3はプログラム提供者がユーザに提供するためのソースプログラムを暗号化する 処理を説明するための図である。
[0048] 暗号化前のソースプログラム 10は、異なる機能を提供する 3個の機能部分 10A, 1 OB, IOCよりなる。
[0049] ここで各機能部分 10A, 10B, IOCによる機能 A、 B, Cは、それぞれ図示の如ぐ 整数 a、 b、 cの入力を受け、その加算演算結果 d = a + b + cを出力(機能 A)、減算演 算結果 d = a_b_cを出力 (機能 B)、及び乗算演算結果 d = a * b * cを出力 (機能 C
)するものである。
[0050] なおこの実施例では暗号化するべき機能部分は上記 3個の機能部分 10A, 10B, 10Cのうち、機能部分 10Bを除いた他の機能部分 10A, 10Cである。
[0051] 暗号化は喑号ィ匕キーとしてのキー情報 40を用いてなされる。当該キー情報 40は、 暗号化する機能部分 10A, 10Cの各々に対し、異なる態様にて喑号ィ匕を行うための 情報を含むものとされる。
[0052] これら機能部分 10A, 10Cそれぞれの喑号ィ匕を行うための情報は、キー識別情報 Key_xxxl及び Key_xxx2によってそれぞれ識別される。そして後述する図 4に 示される復号化キー情報 70も、これに対応して暗号化する機能部分 10A, 10C毎に 異なる内容の復号化キー情報を含むものとされる。その結果この復号ィ匕キー情報 70 のうち、機能部分 10Aに係る復号化キー情報 (Key— xxxl)によっては機能部分 10 Aに係る復号化は可能だ力 機能部分 10Cについては復号ィ匕ができない。同様に 機能部分 10Cに係る復号化キー情報 (Key— xxxl)によっては機能部分 10Cに係 る復号ィ匕は可能だ力 機能部分 10Aについては復号化ができなレ、。したがってユー ザに対する情報開示の範囲を必要最小限度の範囲に留めることが可能となる。
[0053] これら暗号化前のソースプログラム 10とキー情報 40とに対して暗号化'キー生成処 理 50がなされ、暗号化後のソースプログラム 20が得られる。
[0054] 図示の如ぐ当該暗号化後のソースプロダラ 20は、上記暗号化前のソースプロダラ ム 10に含まれてレ、た機能部分 10B;同じく上記暗号化前のソースプログラム 10に含 まれていた機能部分 10A, 10Cがそれぞれ該当するキー情報 40の部分 (Key_xx xl、 Key-xxx2)により喑号化された暗号化機能部分 20A— 2, 20C—2 ;それら喑 号化機能部分 20A—2, 20C— 2のそれぞれの暗号化に係るキー識別情報 20A— 1 , 20C— 1 ;上記喑号ィ匕機能部分 20A— 2, 20C— 2及びキー識別情報 20A— 1, 20C_ 1を「コメント」として認識させるための記号部分 25A_ 1 , 25C- 1;並びに上 記各暗号化機能部分 20A— 2, 20C— 2に係る機能 A, Cにそれぞれ対応する実行 形式フアイル作成制御コード 25 A— 1 , 25C—1よりなる。
[0055] プログラム提供者はここで得られた、喑号ィ匕されたソースプログラム 20を、この状態 でユーザに提供する。
[0056] ユーザは同喑号ィ匕されたソースプログラム 20を、その状態で実行形式ファイルへ変 換することが可能である。
[0057] すなわち同喑号化されたソースプログラム 20には、上記の如く実行形式ファイル作 成制御コード 25A—1 , 25C— 1が付加されている。
[0058] これらはスタブ関数と称されるものであり、その形式上、暗号化前のソースプロダラ ム 10の対応する機能部分 10A, 10Cの、各々の 1行目と同様とされている。その結 果、当該暗号化後のソースプログラム 20は、形式上、暗号化前のソースプログラム 1 0と同様のものとなっている。
[0059] すなわち暗号化後のソースプログラム 20はこれらスタブ関数としての記号部分 25A —1 , 25C— 1内に、暗号化前のソースプログラム 10の各機能部分 10A, 10Cのそ れぞれの一行目「int subOOKint a,int b,int c){」、「int sub003(int a,int b,int c){」に対 応する咅 |5分「11^ subOOKint a,int b'int c){」、「int sub003(int a,int b'int c){」を有し、引 き続き形式的な演算機能部分 (retUrn(0))を有する。このため、当該喑号ィ匕後のソース プログラム 20は暗号化前のソースプログラム 10同様、実行形式ファイルへの変換の 際にエラーを生ずることなぐ同変換の実施が可能となる。
[0060] しかしながらこの場合、機能部分 10A, 10Cは暗号化された 20A— 1, 20C— 1の 状態であるため、実行形式ファイルへ変換後もこれらに対応する機能を実行させるこ とはできない。したがって実施形式ファイルへ変換後は、暗号化前の機能部分 10A, 10Cの代わりに、それぞれスタブ関数としての記号部分 25A_ 1, 25C—1の機能に より、各々、整数 a、 b、 cの入力を受けて 0を出力する形式的な演算機能 (retUrn(0)) が実行される。
[0061] すなわち、上記の如くこれら機能部分 10A, 10Cに対応する暗号化機能部分 20A - 2, 20C— 2及び対応するキー識別情報 20A_ 1, 20C— 1は、これらをコメントとし て認識させるための記号 25A— 2, 25C— 2によってコメントィ匕されている。その結果 、これらは実行形式ファイルへの変換の際も、そのままコメントとして残される。このよう にすることにより、実行形式ファイルへ変換時にエラーの発生が防止される。したがつ てこの暗号化ソースプログラム 20の実行形式ファイルへの変換の結果、機能部分 10 Bのみが実行形式ファイルへと変換されることとなり、対応する機能 Bのみの実行が可 能となる。
[0062] このように本発明の実施例においては、暗号化機能部分 20A_ 2, 20C— 2の前 後の部分における、上記スタブ関数としての記号部分 25A_ 1, 25C_ 1、及び喑号 化機能部分 20A—1 , 20C— 1をコメントとして認識させるための記号 25A_ 2, 25C 一 2の揷入がなされている。その結果、当該暗号化ソースプログラム 20は暗号化機 能部分を含んだ状態での実行形式ファイルへの変換、すなわち実行ファイル化が可 能とされている。
[0063] ここでマスターキー情報ファイル 30とは、このようにして喑号化された、暗号化機能 部分 20A— 2, 20C— 2をそれぞれ復号化するための情報が書き込まれたものであり 、それらはそれぞれ上記キー識別情報 Key— xxxl , Key— xxx2に対応する。
[0064] プログラム提供者はソースプログラム 10を暗号化した際に得られるこのマスターキ 一情報ファイル 30を保持し、喑号ィ匕後のソースプログラム 20をユーザに提供する際 、或いは提供後、ユーザの依頼に係る機能に対応するキー情報を抽出して後述する 復号化キー情報ファイル 70に書き込み、これを当該ユーザに提供する。ユーザは該 当するキー情報を使用して対応する機能部分を復号することによりその機能が利用 可能となる。他方当該キー情報ではそれ以外の機能部分を復号してその機能を利 用することはできない。
[0065] 次に、図 4とともに、このようにして作成され提供された暗号化ソースコード 20をユー ザが利用する際の手順について説明する。
[0066] ここでは一例として、ユーザは、上記の如く元々喑号ィ匕されておらずそのまま利用 可能な機能部分 10Bの機能 B以外に、機能 Aの利用を希望しているものと仮定する
[0067] したがってこの場合、当該ユーザはプログラム提供者に対し、機能 Aの利用を可能 とするための複号化キー情報ファイル 70を要求する。そしてこのようにしてプログラム 提供者から得られた復号化キー情報ファイル 70と、上記喑号ィ匕ソースプログラム 20 とに対し、復号化処理 60を行う。
[0068] 上記の如くユーザが要求して得た復号ィ匕キー情報ファイル 70には機能 Aを有効に するためのキー情報、すなわち機能部分 20A— 2を復号ィ匕するために必要となる、 K ey—xxxlで識別されるキー情報が書き込まれている。したがつてこの復号化処理 6 0では該当する暗号化機能部分 20A— 2が復号ィ匕され、その結果復号化ソースプロ グラム 11が得られる。
[0069] 同複号化ソースプログラム 11では、今回の複号化によって得られた機能部分 10A 、実行形式ファイル作成制御コード 25A_ 1、喑号ィ匕機能部分 20A_ 2、キー情 報 20 - 1及びそれらの前後のコメントィ匕記号 25 _ 2に置き換わってレ、る。その結果、 当該複号化後のソースプログラム 11は上記同様、元のソースプログラム 10と同様の 形式を有する。
[0070] すなわちこの復号化ソースプログラム 11は、元のソースプログラム 10の各機能部分 10A, 10B, 10Cのそれぞれの一行目「int sub001(int a,int b,int c){」、「int sub002(i nt a,int b,int c){」、「int sub003(int a,int b,int c){」に対応する咅分「int sub001(int a, in t b'int c){」、「int sub002(int a,int b'int c){」、「int sub003(int a,int b'int c){」をそれぞ れ有し、引き続き対応する実質的な演算機能部分を有する。このため当該復号化ソ ースプログラム 11は元のソースプログラム 10同様、実行形式ファイルへの変換が、ェ ラーを生ずることなく実施可能となる。
[0071] この復号化ソースプログラム 11におレ、てはこのように復号化によって得られた機能 部分 10A力 元々暗号化されていなかった機能部分 10Bとともに有効な機能部分と して含まれている。
[0072] これら有効な機能部分 10A, 10Bは、同ソースプログラム 11が実行形式ファイル化 される際に実行形式に変換され、実行可能となる。他方喑号ィ匕機能部分 20C— 2は 複号化ソースプログラム 11においても喑号ィ匕されたままとされ、上記の如くコメントィ匕 記号 25C— 2によってコメントとして認識される状態となっている。その結果暗号化ソ 一スぷろぐらむ 20における場合同様、当該ソースプログラム 11の実行形式フアイノレ 化の際にはコメントとして認識されることにより、そのままの状態が維持される。その結 果、当該機能部分 20C— 2は実行され得ず、該当する機能 Cは得られない。
[0073] このように本発明の実施例によれば、プログラム提供者は全てのユーザに対して一 のソースプログラム 10を用意し、各機能部分を喑号ィ匕した状態で各ユーザに提供す る。そしてユーザ毎に所望の機能が異なる場合には、該当する機能に対応する機能 部分の復号化に必要なキー情報を併せて提供する。
[0074] これを受けたユーザは当該キー情報により、当初提供された喑号ィ匕ソースプロダラ ム中、自己が必要とする機能部分を復号することができる。そしてこのようにして得ら れた復号化ソースプログラムでは、暗号化機能部分に対応して実行形式ファイル作 成制御コード及びコメントィ匕記号 25C— 2が揷入されている。その結果暗号化機能部 分を含んでいても実行形式ファイル化の際にエラーを生ずることがない。その結果ュ 一ザは、当該復号ィ匕ソースプログラムが実行形式ファイル化されたオブジェクトプログ ラムにより、必要としている機能が得られる。
[0075] またその後同じユーザが、他の暗号化されたままの機能部分に係る機能について も所望するようになった場合、プログラム提供者に対し該当する復号化キー情報を要 求してこれを入手する。その結果上記同様、当初提供された暗号化ソースプログラム 中、該当する機能部分を更に復号することができる。
[0076] そしてこのようにして得られた復号ィ匕ソースプログラムにおいても、残存する暗号化 機能部分に対応して実行形式ファイル作成制御コード及びコメント化記号が挿入さ れており、上記同様実行形式ファイル化の際にエラーを生ずることがない。その結果 ユーザは当該復号ィヒソースプログラムが実行形式ファイル化されたオブジェクトプロ グラムにより、必要としている機能を得られる。
[0077] 次に、図 3とともに上述した、プログラム提供者においてソースプログラム 10を喑号 化する際の手順につき、図 5とともに詳細に説明する。
[0078] ステップ S1では図 1に示されるプログラム暗号化システム 100に対し、当該ソースプ ログラム 10に含まれる機能部分のうち、暗号化する機能部分を選択するための指示 を入力する。これを受けた同システム 100は、指示された選択機能部分を検索し (ス テツプ S2)、その結果該当部分が得られた場合 (ステップ S3の Yes)、ステップ S4に 移行する。 [0079] ステップ S4では上記スタブ関数(25A—1 , 25C— 1等)を作成し、これを該当機能 部分の手前部分に坦め込む (ステップ S5)。その結果スタブ関数が埋め込まれたソ ースプログラムファイル 20— 2が得られる。次に、キー情報 40が提供され、これに基 づいてマスターキー情報を作成し (ステップ S6)、これをマスターキー情報ファイル 30 に書き込む(ステップ S7)。
[0080] 次にステップ S8では、当該マスターキーのキー識別情報(20A_ 1, 20C—1等)を 、現在処理中のソースプログラムの、上記スタブ関数に続く部分に書き込む。そして ステップ S9では当該マスターキー情報に対応するキー情報 40を適用して上記該当 機能部分を暗号化する。そしてここで得られた暗号ィヒ機能部分(20A_ 2, 20C- 2 等)を、処理中のソースプログラムファイルに坦め込む(ステップ S10)。そしてこのよう にして得られた暗号化ソースプログラム 20のファイルが得られる。
[0081] また、ステップ S1にて入力された指示中に、更に暗号化するべき機能部分の指定 があった場合、これに応じてステップ S2乃至 S10を繰り返す。
[0082] ステップ S3にて暗号化するべき機能部分を全て処理し終わったと判定された場合 、或いは該当部分が処理中のソースプログラムファイル 10中に見つからなかった場 合、当該暗号化処理を終了する(ステップ S 11)。
[0083] 次に、図 4とともに上述した、ユーザにおいて暗号化ソースプログラム 20を復号化 する際の手順について、図 6とともに詳細に説明する。
[0084] ユーザはプログラム提供者に要求して受け取った、当初提供された暗号化ソースプ ログラム 20中の必要とする機能に係る機能部分を復号ィヒするためのキー情報が書き 込まれた復号ィ匕キー情報ファイル 70を、プログラム復号ィ匕システム 200に入力する。
[0085] 同複号化システム 200は、ステップ S31にて当該複号化キー情報ファイル 70の判 定を行う。すなわち、ステップ S32にて当該ファイルのデータ形式等をチェックし、所 定の復号ィ匕キー情報ファイル 70の形式的条件を満たしレ、てレ、るか否力、を判定する。
[0086] その結果問題がない場合 (ステップ S32の Yes)、次にステップ S33にて、ユーザか ら更に提供される暗号化ソースプログラム 20— 3の内容に基づき、上記復号化キー 情報ファイル 70に書き込まれているキー情報に該当する機能部分が含まれるか否か を判定する(ステップ S33)。ここでは図 4に示されるキー識別情報 Key— xxxl、 20 A- l , Key— xxx2、 20C— 1等により、同判定を下す。
[0087] その判定の結果、該当機能部分が存在する場合 (ステップ S33の Yes)、復号化キ 一情報ファイル 70に書き込まれたキー情報を使用して該当機能部分(20A— 2, 20 C— 2等)を復号ィ匕する(ステップ S34)。その結果、元の機能部分(10A, 10C等)が 得られる。
[0088] 次に、ここで複号化した機能部分に対応して設けられてレ、た実行形式ファイル作成 制御コードとしてのスタブ関数(25A_ 1、 25C— 1等)を除去し除去後のソースプロ グラム 20— 4を得る (ステップ S35)。同スタブ関数は対応する機能部分が暗号化さ れ無効化された状態で所定のプログラム形式を維持するために設けられたものであり 、当該機能部分がこのように複号化され有効化された段階では最早不要である。ま たこのとき、同様に最早不要なキー識別情報(20A_ 1, 20C— 1等)及びコメントィ匕 記号 25A—2, 25C— 2等)も削除して復号ィ匕データを作成する (ズテツプ S36)。
[0089] そしてこのようにして作成された、復号化された機能部分(1 OA, IOC等)は、処理 中のソースプログラム中の、元の暗号化機能部分(20A— 2, 20C— 2等)と置き換え られる(ステップ S37)。その結果、復号化されたソースプログラム 11のファイルが得ら れる。
[0090] 他にも復号化キー情報ファイル 70に書き込まれた復号化キー情報に対応する暗号 化機能部分が上記復号化されたソースプログラム 11中に残存している場合、これに っレ、てステップ S33乃至 S38を繰り返す。
[0091] 他方、ステップ S32又はステップ S33の判定結果が Noとなった場合、この処理を終 了する(ステップ S38)。
[0092] 次に図 7とともに、上記プログラム暗号化システム 100或いはプログラム複号化シス テム 200として適用可能なコンピュータにっき説明する。
[0093] 図 7のコンピュータは、情報処理の制御を実施する CPU1 ; CPU1により記憶手段と して利用されるメモリ 2;ユーザに対する情報の表示を行うディスプレイ 4;ユーザが各 種指示入力等を行うための操作部 3;プログラム、各種データを格納するためのハー ドディスク装置 5;可搬情報記録媒体としての CD— ROM6Aを媒介として外部とのプ ログラム、各種データの授受をおこなうための CD— ROMドライブ 6 ;インターネット、 LAN等の通信網 9を介して外部サーバとのプログラム、各種データの授受をおこなう ためのモデム 7よりなる。
[0094] 上記プログラム暗号化システム 100或いはプログラム復号化システム 200としてこの コンピュータを適用する際、まず図 1乃至 6とともに説明した同システム 100又は 200 の動作をコンピュータに実行させるための命令よりなるプログラムを作成する。
[0095] 次に、このプログラムを CD— ROM6Aに書き込み、 CPU1の制御の下、 CD— RO
Mドライブ 6を介してハードディスク装置 5に転送することにより、同コンピュータにロー ドする。
[0096] 或いは外部サーバから通信網 9を介し、同プログラムを、 CPU1の制御の下、ハー ドディスク装置 5に転送することにより、同コンピュータにロードする。
[0097] その後、 CPU1がユーザによる操作部 3を介した指示入力等に応じ、ハードディスク 装置 5から同プログラムをメモリ 2にロードし、その命令を順次実行する。その結果、上 記プログラム暗号化システム 100或いはプログラム復号化システム 200として同コン ピュータが動作する。
[0098] なお本発明の実施例は上述のものに限られず、本発明の基本的な技術思想を具 現化した他の様々な形態の実施例が可能であることは言うまでもなレ、。

Claims

請求の範囲
[1] 少なくとも一部分が暗号化されたプログラムに対し、当該暗号化部分が暗号化され た状態での当該プログラムの実行形式ファイルィヒを可能とするための所定の実行形 式ファイル化可能化処理を施す実行形式ファイル化可能化部、及び
少なくとも一部分が暗号化され、更に当該暗号化部分が暗号化された状態での当 該プログラムの実行形式ファイル化を可能とするための所定の実行形式ファイルィ匕 可能化処理が施されたプログラムに対し、当該暗号化部分の復号に際し、前記所定 の実行形式ファイル化可能化処理による影響を除去するための所定の除去処理を 施す除去処理部のうち、少なくとも一のものよりなるプログラム処理装置。
[2] 前記所定の実行形式ファイル化可能化処理は、前記暗号化部分が含まれた状態 で当該プログラムを実行形式ファイル化する際におけるエラーの発生を防止するた めの処理よりなる請求項 1に記載のプログラム処理装置。
[3] 前記実行形式ファイル化可能化処理は、所定の操作指示を受けた際に形式的な 演算を行う機能を有するコードの挿入及び、当該暗号化部分を演算を伴わないコメ ントとして認識させる機能を有するコードの挿入のうち、少なくとも一の処理よりなる請 求項 1に記載のプログラム処理装置。
[4] 前記所定の除去処理は、前記所定の実行形式ファイル化可能化処理において揷 入された、所定の操作指示を受けた際に形式的な演算を行う機能を有するコードの 除去及び演算を伴わないコメントとして認識させる機能を有するコードの除去のうち の少なくとも一の処理よりなる請求項 1に記載のプログラム処理装置。
[5] 前記少なくとも一部分が暗号化されたプログラムはソースプログラムよりなる請求項 1に記載のプログラム処理装置。
[6] 少なくとも一部分が暗号化されたプログラムに対し、当該暗号化部分が暗号化され た状態での当該プログラムの実行形式ファイルィヒを可能とするための所定の実行形 式ファイル化可能化処理を施す段階、及び
少なくとも一部分が暗号化され、更に当該暗号化部分が暗号化された状態での当 該プログラムの実行形式ファイル化を可能とするための所定の実行形式ファイルィ匕 可能化処理が施されたプログラムに対し、当該暗号化部分の復号に際し、前記所定 の処理による影響を除去するための所定の除去処理を施す段階のうち、少なくとも一 の段階よりなるプログラム処理方法。
[7] 前記所定の実行形式ファイル化可能化処理は、前記暗号化部分が含まれた状態 で当該プログラムを実行形式ファイル化する際におけるエラーの発生を防止するた めの処理よりなる請求項 6に記載のプログラム処理方法。
[8] 前記実行形式ファイル化可能化処理は、所定の操作指示を受けた際に形式的な 演算を行う機能を有するコードの挿入、及び当該暗号ィヒ部分を演算を伴わないコメ ントとして認識させる機能を有するコードの揷入のうち、少なくとも一の処理よりなる請 求項 6に記載のプログラム処理方法。
[9] 前記所定の除去処理は、前記所定の実行形式ファイル化可能化処理において揷 入された、所定の操作指示を受けた際に形式的な演算を行う機能を有するコードの 除去及び演算を伴わないコメントとして認識させる機能を有するコードの除去のうち の少なくとも一の処理よりなる請求項 6に記載のプログラム処理方法。
[10] 前記少なくとも一部分が暗号化されたプログラムはソースプログラムよりなる請求項
6に記載のプログラム処理方法。
[11] 複数の異なる機能部分を含む一のプログラムにっき、所望の機能部分を除レ、た他 の機能部分を暗号化する段階と、
前記所望の機能部分を除いた他の機能部分が暗号化された一のプログラムに対し 実行形式ファイル化可能化処理を施す段階とよりなるプログラム処理方法。
[12] 前記所望の機能部分を除レ、た他の機能部分が暗号化された一のプログラムにっき
、前記他の機能部分に含まれる少なくとも一の機能部分を復号ィヒするための復号ィ匕 情報を提供する段階を更に有する請求項 11に記載のプログラム処理方法。
[13] 少なくとも一部分が暗号化されたプログラムに対し、当該暗号化部分が暗号化され た状態での当該プログラムを実行形式ファイル化を可能とするための所定の実行形 式ファイル化可能化処理を施す手段、及び
少なくとも一部分が暗号化され、更に当該暗号化部分が暗号化された状態での当 該プログラムを実行形式ファイル化を可能とするための所定の実行形式ファイル化可 能化処理が施されたプログラムに対し、当該暗号化部分の復号に際し、前記所定の 処理による影響を除去するための所定の除去処理を施す手段のうち、少なくとも一の 手段としてコンピュータを動作させるための命令よりなるプログラム。
[14] 前記所定の実行形式ファイル化可能化処理をコンピュータに実行させるための命 令は、前記暗号化部分が含まれた状態で当該プログラムを実行形式ファイル化する 際におけるエラーの発生を防止するための処理をコンピュータに実行させるための 命令よりなる構成とされてなる請求項 13に記載のプログラム。
[15] 前記実行形式ファイル化可能化処理をコンピュータに実行させるための命令は、所 定の操作指示を受けた際に形式的な演算を行う機能を有するコードの挿入をコンビ ユータに実行させるための命令及び、当該暗号化部分を演算を伴わないコメントとし て認識させる機能を有するコードの揷入をコンピュータに実行させるための命令のう ち、少なくとも一の命令よりなる請求項 13に記載のプログラム。
[16] 前記所定の除去処理をコンピュータに実行させるための命令は、前記所定の実行 形式ファイルィヒ可能化処理において挿入された、所定の操作指示を受けた際に形 式的な演算を行う機能を有するコードの除去及び演算を伴わなレ、コメントとして認識 させる機能を有するコードの除去のうちの少なくとも一の処理をコンピュータに実行さ せるための命令よりなる請求項 13に記載のプログラム。
[17] 前記少なくとも一部分が暗号化されたプログラムはソースプログラムよりなる請求項
13に記載のプログラム。
[18] 請求項 13に記載のプログラムを格納したコンピュータ読取可能な記録媒体。
[19] 請求項 15に記載のプログラムを格納したコンピュータ読取可能な記録媒体
PCT/JP2005/023654 2005-12-22 2005-12-22 プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒体 WO2007072568A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2005/023654 WO2007072568A1 (ja) 2005-12-22 2005-12-22 プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒体
JP2007550973A JP4818279B2 (ja) 2005-12-22 2005-12-22 プログラム処理装置、プログラム処理方法及びプログラム
US12/213,290 US20080301654A1 (en) 2005-12-22 2008-06-17 Program processing apparatus, program processing method and computer readable information recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2005/023654 WO2007072568A1 (ja) 2005-12-22 2005-12-22 プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/213,290 Continuation US20080301654A1 (en) 2005-12-22 2008-06-17 Program processing apparatus, program processing method and computer readable information recording medium

Publications (1)

Publication Number Publication Date
WO2007072568A1 true WO2007072568A1 (ja) 2007-06-28

Family

ID=38188359

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/023654 WO2007072568A1 (ja) 2005-12-22 2005-12-22 プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒体

Country Status (3)

Country Link
US (1) US20080301654A1 (ja)
JP (1) JP4818279B2 (ja)
WO (1) WO2007072568A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013047854A (ja) * 2012-11-22 2013-03-07 Kyocera Document Solutions Inc 情報秘匿化方法および情報秘匿化装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2525301A1 (en) * 2011-05-19 2012-11-21 Thomson Licensing Syntax-preserving software protection
JP6907847B2 (ja) * 2017-09-14 2021-07-21 日本電気株式会社 ソースプログラム保護システム及び方法
CN113987470B (zh) * 2021-10-29 2022-12-23 山西大鲲智联科技有限公司 可执行文件处理方法、装置、电子设备和计算机可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10260903A (ja) * 1997-03-19 1998-09-29 Hitachi Ltd グループ暗号方法、及びファイル暗号システム
JP2004265037A (ja) * 2003-02-28 2004-09-24 Nec Corp コンピュータプログラムの編集システム及びその方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201050A (en) * 1989-06-30 1993-04-06 Digital Equipment Corporation Line-skip compiler for source-code development system
AU2001243365A1 (en) * 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
AU2001255698A1 (en) * 2000-04-28 2001-11-12 Moldflow Corporation Network enabled application software system and method
CA2447451C (en) * 2000-05-12 2013-02-12 Xtreamlok Pty. Ltd. Information security method and system
WO2002019610A2 (en) * 2000-09-01 2002-03-07 Sherwood International Group Limited Method and system for dynamic encryption of a web-page
US6931634B2 (en) * 2000-12-21 2005-08-16 Silicon Metrics Corporation Encrypted compiler
JP2003280754A (ja) * 2002-03-25 2003-10-02 Nec Corp 隠蔽化ソースプログラム、ソースプログラム変換方法及び装置並びにソース変換プログラム
US7549147B2 (en) * 2002-04-15 2009-06-16 Core Sdi, Incorporated Security framework for protecting rights in computer software
NO20023194D0 (no) * 2002-07-01 2002-07-01 Sospita As Fremgangsmåte og apparatur for eksekvering av programvareapplikasjoner i et multiprosessormiljö
NO20023860D0 (no) * 2002-08-14 2002-08-14 Sospita As Fremgangsmåte for å generere og prosessere dataströmmer som inneholder krypterte og dekrypterte data
US20050289520A1 (en) * 2004-06-29 2005-12-29 Redvers Consulting, Ltd. Unidirectional cloaking device for source code
CN101288083A (zh) * 2005-10-17 2008-10-15 Nxp股份有限公司 程序可执行映像加密

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10260903A (ja) * 1997-03-19 1998-09-29 Hitachi Ltd グループ暗号方法、及びファイル暗号システム
JP2004265037A (ja) * 2003-02-28 2004-09-24 Nec Corp コンピュータプログラムの編集システム及びその方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013047854A (ja) * 2012-11-22 2013-03-07 Kyocera Document Solutions Inc 情報秘匿化方法および情報秘匿化装置

Also Published As

Publication number Publication date
US20080301654A1 (en) 2008-12-04
JP4818279B2 (ja) 2011-11-16
JPWO2007072568A1 (ja) 2009-05-28

Similar Documents

Publication Publication Date Title
JP5783630B2 (ja) 複合リソース文書上のデジタル署名
US8799662B2 (en) Method and apparatus for validating the integrity of installer files prior to installation
KR100455566B1 (ko) 코드 갱신을 위한 장치 및 방법
US8019994B2 (en) Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS
WO2009107351A1 (ja) 情報セキュリティ装置および情報セキュリティシステム
JP6189438B2 (ja) メディア・セキュリティ・コントローラを使用したメディア・アイテムの保護
JP2012234563A (ja) スタティック・ファイル・システムの差異検出および更新
JP2009147919A (ja) コンピュータ実施方法、コンピュータ・プログラム製品、データ処理システム(安全なデジタル署名システム)
JP4093723B2 (ja) 構造を持った文書に対する電子署名方法及び装置
CN109992987B (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
US20050005103A1 (en) System and method for securing code and ensuring proper execution using state-based encryption
WO2022252466A1 (zh) 一种应用程序的授权方法、计算设备以及存储介质
JPWO2003013054A1 (ja) 処理に伴い暗号データの改ざん検出用データを生成する装置及び方法
US20100223469A1 (en) Method, System and Computer Program Product for Certifying Software Origination
JP2020004390A (ja) 自動検証方法及びシステム
WO2007072568A1 (ja) プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒体
JP4877193B2 (ja) 版数管理システムおよび版数管理方法
US20060294018A1 (en) Digital rights management
JP2007316944A (ja) データ処理装置、データ処理方法、およびデータ処理プログラム
JP2004171367A (ja) 回路動作シミュレーション装置、回路動作シミュレーション方法、回路動作シミュレーションプログラム、および回路情報復号化プログラム
TWI467485B (zh) Verification of the basic input and output system update method, the computer can read the recording media and computer program products
US9009472B2 (en) Providing consistent cryptographic operations
CN102215131B (zh) 一种功能License的管理方法及装置
JP4940031B2 (ja) 情報処理装置およびファームウェア更新方法
CN115509587A (zh) 固件升级方法、装置、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007550973

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 05820147

Country of ref document: EP

Kind code of ref document: A1