WO2005096120A1 - 実行装置 - Google Patents
実行装置 Download PDFInfo
- Publication number
- WO2005096120A1 WO2005096120A1 PCT/JP2005/006290 JP2005006290W WO2005096120A1 WO 2005096120 A1 WO2005096120 A1 WO 2005096120A1 JP 2005006290 W JP2005006290 W JP 2005006290W WO 2005096120 A1 WO2005096120 A1 WO 2005096120A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- encryption
- application
- class
- execution device
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 80
- 230000015654 memory Effects 0.000 claims abstract description 26
- 230000006870 function Effects 0.000 description 38
- 238000012545 processing Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 16
- 230000004913 activation Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/4493—Object persistence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/402—Encrypted data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2113—Multi-level security, e.g. mandatory access control
Definitions
- the present invention relates to a technique for preventing eavesdropping and falsification of a program, and more particularly to a technique for preventing a program from being eavesdropped and falsified during execution of the program.
- applications have been executed by devices having an information processing function, such as personal computers, digital televisions, and mobile phones.
- These applications include those originally built into the device, those purchased and loaded by the user, and those provided by a program distribution service.
- the programs provided by the program Toshin S-Service are, for example, downloaded via the Internet or multiplexed with digital broadcast waves and transmitted.
- executing device As described above, currently, a device having a function of executing an application (hereinafter, referred to as an "executing device") is executing programs for various purposes. You.
- Patent Document 1 Japanese Patent Application Laid-Open No. 2-297626
- an object of the present invention is to provide an execution device that prevents tampering and eavesdropping of data and the like that are not likely to be tampered or stolen, and that does not cause a concern about a decrease in program execution speed.
- an execution device of the present invention is an execution device that executes an application program created in an object-oriented language, wherein the application program has one or more methods.
- Class and confidentiality information indicating the necessity of confidentiality, and based on the confidentiality information, an encryption determining means for determining whether or not the cryptographic power is necessary; and
- the method further comprises: an object recording unit that records an object including data operated by the method in a memory, and when the encryption determining unit determines that encryption is necessary, The object recording means records an object including encrypted data.
- the execution device can encrypt only data recorded in the main memory while an application is being executed by providing the above-described configuration.
- the required processing time can be reduced, and it is possible to make it difficult to eavesdrop or alter data handled by the application.
- a program is usually composed of an instruction part and a data part. If what is desired to be protected is data, only that data needs to be encrypted. As a result, when accessing the instruction section, the processing time for encryption / decryption is not required, and the processing time can be minimized while protecting what is desired to be protected as a whole.
- the target of the necessity of concealment indicated by the confidentiality information may be a unit of the entire application, a class unit, a method unit, a field unit, or the like.
- the confidentiality information further includes information indicating a degree of confidentiality
- the execution device further includes an encryption method determination unit that determines an encryption method based on the confidentiality information, When it is determined that encryption is necessary by the means, the object recording means records an object including data encrypted by the encryption method determined by the encryption method determination means. It may be.
- the execution device can change the encryption algorithm depending on the degree of secrecy of the application. Therefore, the execution device determines the encryption scheme in consideration of the importance of the application and the execution speed of the application. Can be done.
- the confidentiality information includes not only information on whether or not to perform encryption, but also on what level to protect, what algorithm should be used, and how long. It may indicate information such as whether to use an encryption key.
- the object recorded in the memory has information indicating whether or not the data in the object is encrypted, and the information is obtained by encrypting the data in the object.
- the execution device can encrypt the data even when rewriting the data of the application, so that the data is protected during the execution of the application. Further, a determination means is provided for determining whether the data is data necessary for specifying the location of another data, and the determination means determines that the data is data necessary for specifying the location of the other data. In the case of such data, encryption may be suppressed.
- the execution device can encrypt the so-called reference type data among the data to be encrypted, so that it is possible to avoid a reduction in the processing speed at the time of garbage collection. ⁇ It comes.
- the purpose of protecting the data can be achieved by encrypting the data of the reference destination. Also, garbage In the case of rewriting the reference type data at the time of the lexion, the processing speed is improved because the processing of the encryption / decryption becomes unnecessary.
- the execution device of the present invention is an execution device that executes a program, wherein the program includes a data part and confidentiality information indicating whether or not confidentiality is required.
- the encryption determining unit determines that the encryption is necessary
- the loading unit encrypts the data and loads the data unit.
- the execution device having the above-described configuration, allows only the data portion that needs to be encrypted to be loaded into the main memory while the program is being executed. As a result, it is possible to reduce the processing time required for encryption and the like, and to make it difficult to wiretap and falsify data handled by the program.
- FIG. 1 is a diagram showing a configuration of an execution device according to the present invention.
- FIG. 2 is a functional block diagram showing a configuration of a virtual machine 2000.
- FIG. 3 is a diagram showing a configuration and an example of contents of encrypted information.
- FIG. 4 is a diagram showing a configuration and an example of contents of an application contained in an application file 1000.
- FIG. 5 is a diagram showing a configuration and an example of contents of class information 1210 generated in a method area 2600 by a loader 2200.
- FIG. 6 is a diagram showing a configuration and an example of contents of encryption algorithm information 2820.
- FIG. 7A is a diagram illustrating a configuration example of an object 2510
- FIG. 7B is a diagram illustrating a content example of the object 2510.
- FIG. 8 is a flowchart showing a process of an execution device 3000.
- FIG. 9 is a flowchart showing an application registration process.
- FIG. 10 is a flowchart showing an object generation process.
- FIG. 11 is a diagram showing a configuration of a conventional technique.
- the execution device has different security requirements for each application since each application executed by the execution device has a different purpose, and confidentiality of data handled by the application rather than the application itself. They focus on the fact that they are often high.
- the present invention is characterized in that the degree of encryption can be freely changed according to the importance of data to be handled.
- the degree of confidentiality of data handled by an application can be known only to the creator or the user when creating the application.
- the execution device has a function in which a program for directly accessing data or the like specifies an application that has generated the data.
- the execution apparatus is provided with a data protection function for preventing data eavesdropping while minimizing a reduction in execution time due to encryption.
- FIG. 1 is a diagram illustrating a configuration of an execution device according to the present invention.
- the execution device 3000 is an application 3100, a virtual machine 2000, an application ff 3200, an OS (Operating System) 3300, a CPU (Central Processing Unit) 3400, a ROM (Read Only Memory) 3500, and a RAM (Random Access Memory) 3600. It is composed of
- the execution device 3000 has a function specific to each device in addition to a function of executing an application (not shown).
- the execution device 3000 is, specifically, a Java (registered trademark, hereinafter the same), such as a digital TV, a set-top box, a DVD recorder, a Blu-RayDisc (BD) recorder, a car navigation terminal, a mobile phone, and a PDA. This applies to all electronic devices with virtual machines.
- the function of executing the application of the execution device 3000 is the same as the software execution means mounted on an ordinary personal computer, digital home appliance, or the like.
- the execution device 3000 is a digital television
- the application that converts the received digital data into an image and displays the image is executed.
- the application 3100 is an application executed by the execution device 3000 and downloaded from the application file 1000 outside the device. It is assumed that the application file 1000 contains an encrypted ⁇ Java application.
- the virtual machine 2000 is a Java program that sequentially analyzes and executes programs written in the Java language. It is a virtual machine.
- a virtual machine 2000 which is a software program, simulates a virtual CPU and analyzes and executes Java instruction codes.
- the virtual machine in the present embodiment has a function called a JIT compiler that translates Knot code into an executable format that can be understood by the CPU 3400.
- a source program described in the Java language is converted into bytecode by a bytecode compiler.
- This bytecode is an intermediate code that does not depend on hardware. This bytecode is assumed to be in the application file 1000.
- the virtual machine of the present embodiment reads out this Knot code and loads it into a memory, which is translated into an executable form by a JIT compiler.
- the Java virtual machine has various configurations such as a processor that can directly execute a part or all of bytecode and an interpreter that can execute the bytecode directly and cannot be executed by the processor. (See book “Java Language Specification (ISBNO-201-63451-1))".
- the application control unit 3200 has a function of executing and controlling processes required for executing the application, such as downloading the application 3100 and starting the virtual machine 2000.
- the OS 3300 is a general term for a technology configured with a kernel and a library for executing other subprograms in parallel, and executes the virtual machine 2000 as a subprogram.
- Linux is powerful.
- the CPU 3400 has a function of executing the virtual machine 2000, the OS 3300, the application 3100, and the like.
- the RAM 3600 is, specifically, a static random access memory (SRAM),
- It is composed of a primary storage memory such as a Dynamic Random Access Memory, and is used to temporarily store data when the CPU 3400 performs processing.
- a primary storage memory such as a Dynamic Random Access Memory
- the ROM 3500 is specifically composed of a nonvolatile memory such as a flash memory or a hard disk, and stores data and programs specified by the CPU 3400.
- FIG. 2 is a functional block diagram showing the configuration of the virtual machine 2000.
- the virtual machine 2000 includes an application registration unit 2100, a loader 2200, an interpreter 2300, a heap management unit 2400, a heap area 2500, a method area 2600, a native class library 2700, and an encryption information storage unit 2800.
- the application acquisition program 3210 is one of the programs of the application control unit 3200, is described in the Java language, and has a function of downloading an application as an application file 1000. The contents of the application to be downloaded will be described later with reference to FIG.
- the application registration unit 2100 receives the request from the application acquisition program 3210, determines whether or not the application requested to be registered needs encryption, and if encryption is to be performed, determines the method, etc., and stores the encryption information. It has the function of storing it in the unit 2800. It also has the function of creating a class loader object for the application for which registration has been requested.
- the application registration unit 2100 includes an encryption determining unit 2110.
- the encryption determining unit 2110 determines whether the application acquired by the application acquisition program 3210 needs to be encrypted, and determines the encryption level. It is determined whether the execution device 3000 can realize the force.
- the application registration unit 2100 determines an encryption algorithm and an encryption key for encrypting data generated by the application. Then, the determined encryption algorithm and the like are associated and stored in the encryption information storage unit 2800.
- the loader 2200 has a function of loading a class file from the application file 1000 or the native class library 2700 into the method area 2600.
- the class file will be described later with reference to FIG.
- the loader 2200 includes a class loader 2210, a verifier 2220, and a JIT compiler 2230.
- the class loader 2210 has a function of reading and loading a class file from the application file 1000.
- the class loader 2210 also has a function of unloading a class. This function removes unnecessary classes from the virtual machine 2000 after execution has ended.
- the verifier 2220 reports that the data format of the class is not correct, It has a function to determine the security of the code.
- the loader 2200 does not load any class that is determined to be invalid by the verifier 2220! /.
- the JIT compiler 2230 has a function of translating a bytecode into an executable format that the CPU 3400 can understand.
- the interpreter 2300 has a function of interpreting and executing the bytecode loaded by the loader 2200, and performs core processing for the Java virtual machine.
- the interpreter 2300 includes a decryption unit 2310.
- the decryption unit 2310 has a function of decrypting the data before processing if the data is encrypted when the data in the heap area 2500 is read.
- an encryption unit 2320 is provided, and when encrypting data stored in the heap area 2500, the encryption unit 2320 has a function of encrypting data before writing the data. .
- the heap management unit 2400 has a function of creating an object in the heap area and deleting the object under the control of the interpreter 2300.
- the heap management unit 2400 has a function of performing garbage collection.
- Garbage collection is a function that frees up working memory that is no longer needed during application execution and makes it reusable for other uses.
- the heap area 2500 is used to store the memory in which the object is created.
- the native class library 2700 is a library called from a Java application, and provides functions provided by the OS 3300 and the hardware and subprograms included in the execution device 3000 to the Java application.
- the encryption information storage unit 2800 has a function of storing information necessary for encryption, and is created in the RAM3600.
- the execution device 3000 has a function part for managing threads, a stack area, and the like (not shown), which are included in a normal Java virtual machine.
- each function of the execution device 3000 is realized by the CPU executing a program stored in the memory or the hard disk of the execution device 3000.
- FIG. 3 is a diagram showing a configuration and an example of contents of the encryption information.
- This encryption degree information 2810 is stored in the encryption information storage unit 2800.
- the encryption degree information 2810 includes a security strength 2811 and a data encryption strength 1812.
- the security strength 2811 indicates the security level of the data handled by the application. In the example, there are three levels from “0” to “2”. The value from “0" to "3" is specified for each application.
- the data encryption strength 1812 indicates the degree of data encryption. For example, the encryption is “unnecessary” for the data encryption strength 2812 when the security strength 2811 is “0”. In other words, this indicates that encryption is not performed.
- a security strength of 2811 “1” or more means that data encryption is required. Further, a security strength of 2811 “2” or more indicates that it is necessary to perform encryption using a stronger encryption algorithm or a longer key than the security strength of 2811 “1”.
- FIG. 4 is a diagram showing a configuration and an example of contents of the application contained in the application file 1000.
- the application 1001 includes an application class 1200, a data file 1300, and metadata 1400!
- An application class 1200 is a set of one or more class files that constitute an application.
- the data file 1300 is data used by the application at the time of execution. Specifically, it corresponds to an image file or a sound file.
- the metadata 1400 holds various information on the application 1001.
- the metadata 1400 includes an activation class name 1410 and security strength information 1420.
- the activation class name 1410 is the first class to be executed in the application class 1200. It is the name of Russ.
- the security strength information 1420 indicates the security strength required for the virtual machine 2000 when executing the application class 1200.
- the information represented by the security strength information 1420 is the same as the security strength 2811 of the encryption information 2810.
- the method of specifying the security strength information 1420 is set, for example, as an option of a bytecode compiler.
- FIG. 5 is a diagram showing a configuration and an example of contents of class information 1210 generated in the method area 2600 by the loader 2200.
- the class information 1210 includes a class name 1211, a parent class 1212, an interface table 1213, a method table 1214, a fino red tape tape 1215, a class loader ID 1216, a secure flag 1217, and the like.
- the class name 1211 is the class name of the class.
- Parent class 1212 is a reference to an internal form that represents the parent class of the class.
- the reference refers to an expression indicating a substance of the data, such as a pointer or an index.
- the interface table 1213 is a reference to the interface implemented by the class.
- the method table 1214 is a list of methods provided in the class.
- the field table 1215 is a list of fields included in this class.
- the class loader ID 1216 indicates a class loader object that has loaded the class. Specifically, it contains the class loader ID 2821 (see Figure 6).
- the secure flag 1217 indicates whether the class is a secure class or not.
- the secure class is a class included in the application class 1200 of the application 1001 in which the security strength 2811 “1” or “2” is specified in the security strength information 1420.
- the secure flag 1217 is Is set.
- the security flag 1217 of the class is determined based on the security strength information 1420 of the application 1001. That is, the secure flags 1217 of all the classes of the application requiring encryption are set to “ON”.
- FIG. 6 is a diagram showing a configuration and an example of contents of the encryption algorithm information 2820.
- the encryption algorithm information 2820 is stored in the encryption information storage unit 2800 and is created by the application registration unit 2100.
- the encryption algorithm information 2820 includes a class loader ID 2821, a class loader address 2822, an encryption algorithm 2823, and an encryption key 2824.
- the class loader ID 2821 is an identifier uniquely assigned to the class loader by the application registration unit 2100. That is, one class loader 2210 exists for one application. In the present embodiment, numbers are assigned in ascending order from “0”.
- the class loader address 2822 is the address of the class loader object requested to be registered by the virtual machine 2000.
- the data generated by the application loaded by the class loader with the class loader ID “0” at the time of execution indicates that the data is not encrypted, and the data is generated by the class loader with the class loader ID “2”.
- the data generated by the loaded application at runtime is "AES (AES)
- FIG. 7A is a diagram illustrating a configuration example of the object 2510, and is a description of the operation. refer. First, FIG. 7 will be described.
- the object 2510 is created when a method in the class is executed, and is created in the heap area 2500.
- the object 2510 includes an object header 2511 and object data 2512.
- the object header 2511 includes class information 2551 to which the object belongs, a data size 2552 which is the size of the object data 2512, and object data 2512. And an encryption flag 2553 that indicates whether or not is encrypted. If the encryption flag 2553 is “ON”, it means that the object data 2512 has been encrypted.
- This encryption flag 2553 is set to "ON" when the secure flag 1217 of the class to which this method belongs, that is, the class referenced by the class information 2551, is "ON".
- the class information 2551 is the address of the internal representation of the class generated in the method area 2600 by the class loader.
- the start address of the class information 1210 enters the class information 2551.
- the object data 2512 is runtime data generated by the operation of the Java application, and has zero or more fields. The number of fields is uniquely determined by the class to which the object belongs.
- FIG. 7B is a diagram showing an example of the content of the object 2510.
- the class information 2551 refers to the internal representation at the address “Oxdeadbeef”, and the data size 2552 of the object data is “24”.
- the value of the encryption flag 2553 is "1 (ON)", it indicates that this object is encrypted! /.
- the class loader object that has loaded this class can be specified. Assuming that the class loader ID 1216, which is the ID of this class loader object, is “2”, the encryption algorithm information 2820 (see FIG. 6) is searched using the class loader ID 1216 “2” as a key. Since the class loader ID 2821 of the symbol algorithm information 2820 is “2”, it is clear that the corresponding object data 2512 is encrypted using the key “YYYY” by the “AES” algorithm.
- the actual encryption is performed by the encryption unit 2320 of the interpreter 2300, and the decryption is performed by the encryption unit 2310 of the interpreter 2300.
- FIG. 8 is a flowchart showing processing of execution device 3000.
- the user turns on the power of the execution device 3000 (step S810).
- the energized CPU 3400 starts OS3300 (step S820).
- the activated OS 3300 activates the virtual machine 2000 (step S830), and instructs to activate the application acquisition program 3210.
- the virtual machine 2000 that has received the instruction starts the application acquisition program 3210 (Step S840).
- the application acquisition program 3210 started by the virtual machine 2000 reads the application 1001 from the application file, and requests the application registration unit 2100 to register the application.
- the metadata 1400 (see FIG. 4) in the application 1001 is read and passed to the application registration unit 2100.
- the other application class 1200 and data file 1300 will be read in time according to the execution of the application.
- step S850 the degree of confidentiality of the application 1001 is determined, and an encryption algorithm and the like are determined. Also, a class loader object for this application 1001 is generated (step S850). That is, when the application registration processing is completed, the encryption algorithm information of the corresponding application is registered in the encryption algorithm information 2820 shown in FIG. The details of the application registration process will be described later with reference to FIG.
- the application registration unit 2100 that has completed the application registration process returns this to the application acquisition program 3210.
- the application acquisition program 3210 that has received the notification that the registration processing has been completed notifies the interpreter 2300 of the activation class name 1410 and requests loading.
- the interpreter 2300 instructs the class loader object to load the class specified by the activation class name 1410 (see FIG. 4) (hereinafter referred to as “activation class”).
- activation class the class loader object loads the specified class into the method area 2600 (Step S860).
- the class information 1210 as shown in Fig. 5 has been created in the method area 2600. This means that the class loader ID 1216 and the secure flag 1217 are set.
- the validity is checked by the verifier 2220, and is converted into the native code by the JIT compiler 2230.
- the application is now loaded into the virtual machine 2000 and is ready to run.
- the interpreter 2300 starts the application by executing the method of the startup class.
- step S870 request the heap management unit 2400 to create an object in the heap area 2500
- step S880 execute the method
- step S860 load the class to which it belongs as needed (step S860), create an object (step S870), and execute the method.
- the object data 2512 is encrypted, and the encryption flag is set.
- All the functional units constituting the virtual machine 2000 check the encryption flag 2553 in the object header 2511 before performing a read operation on the object, and when the object is encrypted, It is decoded by the decoding unit 2310 and read. In addition, before performing a write operation on the object, the encryption flag 2553 in the object header 2511 is checked, and if the object is encrypted, the data encrypted by the encryption unit 2320 is checked. Write.
- FIG. 9 is a flowchart showing the application registration process.
- the application acquisition program 3210 that started the virtual machine 2000 The application 1001 is read from the file, and the application registration unit 2100 is requested to register the application (step S910).
- the application registration unit 307 requested to perform the registration process reads the security strength information 1420 (see FIG. 4) included in the application requested to be registered (step S920). At this time, if the application has been encrypted, it is decrypted before reading the security strength information 1420.
- step S930 it is determined whether or not the execution device 3000 has an encryption function corresponding to the read security strength information 1420 (step S930). This determination is performed by requesting the encryption determination unit 2110.
- the encryption determining unit 2110 reads out the encryption degree information 2810 from the encryption information storage unit 2800, and 2811 reads out that the data encryption strength 2812 corresponding to “2” is “strong”.
- the execution device 3000 supports the encryption method whose data encryption strength 2812 is “strong”, it is determined that the execution device 3000 has an encryption function corresponding to the read security strength information 1420. In this execution device, which level of encryption is supported is determined in advance, and it is assumed that the application registration unit 2100 stores it.
- step S930 determines that the execution device 3000 has an encryption function corresponding to the read security strength information 1420 (step S930: YES)
- the application registration unit 2100 Then, a class loader object for loading the application is generated (step S940).
- an encryption algorithm and a key length used for encryption are determined according to the read security strength information 1420, and an encryption key is generated (step S950).
- the encryption key is randomly generated each time it is registered, even for the same application. It is also the power to become more readable.
- a stronger V ⁇ encryption algorithm or key than specified by the security strength information 1420 may be used!
- the application registration unit 2100 stores the class loader ID 2821 and the address 2 of the class loader object. 822, the encryption algorithm 2823, and the encryption key 2824 are associated with each other and registered in the encryption algorithm information 2820 (step S960).
- step S970 the application activation is interrupted (step S970). By not launching the application, the confidentiality of the application is protected.
- FIG. 10 is a flowchart showing an object generation process.
- step S860 the interpreter 2300 starts the application by executing the method of the startup class.
- the heap management unit 2400 is requested to create an object.
- the heap management unit 2400 that has received the request secures a new memory area for the object (step S1010).
- interpreter 2300 checks whether the current class is a secure class. This can be determined by examining the secure flag 1217 of the current class. If the secure flag 1217 is "0 ⁇ ", it is determined that the class is a secure class, that is, a class that requires encryption.
- step S 1020 If the current class is determined to be a secure class (step S 1020: YES), “1” indicating that the object is encrypted in the encryption flag in the object header 2511! / Is set (step S1040).
- the object data 2512 is encrypted (step S1040).
- the encryption method here is determined by reading the encryption algorithm information 2820 (see Fig. 6).
- Step S1020 NO
- “0” indicating that the object is not encrypted is included in the encryption flag in the object header 2511. Is set (step S1050).
- the current class refers to a class that defines a method being executed.
- the interpreter 2300 creates a data structure called a Java frame on the RAM 3600 when executing the Java method.
- Java frame One is generated for each invocation of the ava method, and is destroyed when the method execution ends.
- the interpreter 2300 is active for the executing method anywhere in the thread that has been given control over the execution of multiple threads. There is only one ava frame! This frame is called the current frame, and the method being executed there is called the current method.
- the class that defines the current method is the current class.
- the current class is determined to be one at a certain moment.
- the execution device according to the present invention has been described based on the embodiment.
- the execution device can be partially modified, and the present invention is not limited to the above embodiment. That is,
- the application executed by the execution device 3000 is an application acquisition program 3210.
- the application is assumed to have been downloaded from the application file 1000 outside the device.
- the application is to be downloaded from a server on the Internet. Is also good.
- the application acquisition program 3210 uses TLS (Transport Layer Security), HTT
- TLS is a data transfer method that prevents eavesdropping and falsification of data during communication by means of encryption (see RFC2246).
- HTTP is a data transfer method generally used in data communication on the Internet (see RFC2616).
- RFC Request For Comments
- the application executed by the execution device 3000 is a digital broadcast data broadcast, which is included in an MPEG (Moving Picture Coding Experts Group) 2 transport stream. May be embedded ⁇ Java application!
- the application acquisition program 3210 is a program for reading the Java application embedded in the transport stream into the execution device 3000.
- the DSMCC method is a method of encoding a file system consisting of directories and files used in a computer in the packet of an MPEG2 transport stream (MPEG standard ISOZIEC 138181-1, MPEG standard) ISOZIEC 138181-6).
- SD card Secure Digital memory card
- CD-ROM Compact Disk Read Only Memory
- DVD Digital Versatile Disk Blu-Ray Disc, etc. It may be an application.
- the application acquisition program 3210 is a program that reads the application with these recording medium powers.
- the application executed by the execution device 3000 may be a Java application recorded in the ROM 3500 in the execution device 3000.
- the application acquisition program 3210 is a program for reading the Java application from the ROM 3500 to the RAM 3600.
- the application executed by the JAVA virtual machine is not limited to an application described in the Java language, but may be an application described in another object thinking language such as C ++.
- the security strength 2811 has three levels of “0” to “2”.
- the present invention is not limited to this.
- the security strength may be set in four or more steps, or two steps in which data encryption is necessary and unnecessary.
- the metadata 1400 of the application 1001 includes the activation class name 1140 and the security strength information 1420.
- the metadata 1400 may include other information.
- the encryption algorithm and the key length may be specified in the metadata 1400.
- the encryption / decision determination unit 2110 regards the security strength information of the application as “0” or sets the highest and lowest levels that the execution device 3000 can use.
- the application 1001 is configured as one file, but the application class 1200, the data file 1300, and the metadata 1400 may be separate files. Further, the metadata 1400 may be embedded in the application class 1200.
- the strength that the secure flag 1217 of the class is determined based on the security strength information 1420 of the application 1001 may be set for each class.
- the secure flag 1217 of the class that requires encryption is set to "ON", and the class that does not require encryption is set to "OFF”.
- the security strength information 1420 may be set for each class.
- the force fields for encrypting the entire object data 2512 may be individually encrypted.
- a program for causing the CPU to execute each control process (see FIG. 2 and the like) for realizing each function of the execution device described in the embodiment is recorded on a recording medium or transmitted through various communication paths or the like. Then, it can be distributed and distributed.
- a recording medium includes an IC card, an optical disk, a flexible disk, a ROM, a flash memory, and the like.
- the distributed and distributed programs are provided for use by being stored in a memory or the like that can be read by a CPU of the device, and each function of the execution device described in the embodiment is executed by the CPU executing the program. Is achieved.
- a computer having the conventional data protection function includes an encrypted data decryption means 204 for performing data decryption processing and a data encryption means 205 for performing encryption processing inside a central processing unit 203. , A data buffer 206, and a program executing means 207.
- the encrypted data 202 outside the central processing unit 203 is decrypted when read into the data buffer 206 in the central processing unit 203, and is processed by the program executing means 207. Later, the data is encrypted by the data encryption unit 205 and output to the outside of the central processing unit.
- NTT DoCoMo provides a service called i-appli.
- a mobile phone terminal downloads a Java program from an application distribution server on the Internet and executes it on the terminal.
- DVB-MHP Digital Video Broadcasting-Multimedia Home Platform
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/593,719 US20080270806A1 (en) | 2004-04-02 | 2005-03-31 | Execution Device |
EP05727355A EP1736848A1 (en) | 2004-04-02 | 2005-03-31 | Execution device |
JP2006511799A JPWO2005096120A1 (ja) | 2004-04-02 | 2005-03-31 | 実行装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004-109778 | 2004-04-02 | ||
JP2004109778 | 2004-04-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2005096120A1 true WO2005096120A1 (ja) | 2005-10-13 |
Family
ID=35063958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2005/006290 WO2005096120A1 (ja) | 2004-04-02 | 2005-03-31 | 実行装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20080270806A1 (ja) |
EP (1) | EP1736848A1 (ja) |
JP (1) | JPWO2005096120A1 (ja) |
KR (1) | KR20070008653A (ja) |
CN (1) | CN100419626C (ja) |
WO (1) | WO2005096120A1 (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007172526A (ja) * | 2005-12-26 | 2007-07-05 | Nippon Computer Co Ltd | 情報処理システム、情報処理方法 |
WO2008028864A1 (en) * | 2006-09-07 | 2008-03-13 | International Business Machines Corporation | Configuring a storage drive to communicate with encryption and key managers |
JP2012531663A (ja) * | 2009-06-26 | 2012-12-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ・システム中の安全オブジェクトに対するサポート |
JP2013190896A (ja) * | 2012-03-13 | 2013-09-26 | Nec Corp | 情報処理装置、ファイル暗号化判定方法、権限決定方法およびプログラム |
US8954752B2 (en) | 2011-02-23 | 2015-02-10 | International Business Machines Corporation | Building and distributing secure object software |
US9098442B2 (en) | 2009-06-26 | 2015-08-04 | International Business Machines Corporation | Secure object having protected region, integrity tree, and unprotected region |
US9298894B2 (en) | 2009-06-26 | 2016-03-29 | International Business Machines Corporation | Cache structure for a computer system providing support for secure objects |
JP2017535091A (ja) * | 2014-12-30 | 2017-11-24 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 仮想化システムにおける暗号復号方法および装置、およびシステム |
US9846789B2 (en) | 2011-09-06 | 2017-12-19 | International Business Machines Corporation | Protecting application programs from malicious software or malware |
US9864853B2 (en) | 2011-02-23 | 2018-01-09 | International Business Machines Corporation | Enhanced security mechanism for authentication of users of a system |
US10785240B2 (en) | 2009-06-26 | 2020-09-22 | International Business Machines Corporation | Protecting from unintentional malware download |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533253B2 (en) * | 2005-06-09 | 2013-09-10 | Whirlpool Corporation | Distributed object-oriented appliance control system |
US20080005190A1 (en) * | 2006-06-28 | 2008-01-03 | Nokia Corporation | System, Method, Apparatus and Computer Program Product for Providing Resource Reclamation in a Virtual Machine |
CN101325480B (zh) * | 2007-06-13 | 2012-05-23 | 中兴通讯股份有限公司 | 基于复用子帧的加扰控制方法及装置 |
US8631217B2 (en) * | 2008-02-26 | 2014-01-14 | International Business Machines Corporation | Apparatus, system, and method for virtual machine backup |
JP5815069B2 (ja) * | 2013-09-17 | 2015-11-17 | キヤノン株式会社 | 画像形成装置、画像形成装置の制御方法、及びコンピュータプログラム |
CN110159926B (zh) * | 2019-02-22 | 2020-11-24 | 陈文娟 | 一种卸油管道系统 |
CN111414194B (zh) * | 2020-03-19 | 2023-08-11 | 政采云有限公司 | 一种接口信息生成方法、系统、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02155034A (ja) * | 1988-12-08 | 1990-06-14 | Toshiba Corp | セキュリティ機能付き計算機 |
JP2001350664A (ja) * | 2000-06-07 | 2001-12-21 | Nippon Telegr & Teleph Corp <Ntt> | 情報カプセル管理方法及び情報カプセル管理プログラムを格納した記憶媒体 |
WO2002003208A2 (en) * | 2000-06-30 | 2002-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
JP2002366437A (ja) * | 2001-06-05 | 2002-12-20 | Sharp Corp | 暗号化処理装置,暗号化処理システム |
JP2003290989A (ja) * | 2002-03-28 | 2003-10-14 | Akashin Kogyo Kk | 減容機 |
JP2003345664A (ja) * | 2002-05-30 | 2003-12-05 | Nissan Motor Co Ltd | 送信装置、データ処理システム及びデータ処理プログラム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE506853C2 (sv) * | 1996-06-20 | 1998-02-16 | Anonymity Prot In Sweden Ab | Metod för databearbetning |
US5943328A (en) * | 1996-08-13 | 1999-08-24 | Lucent Technologies Inc. | Frame counter for synchronized communication |
US20010044901A1 (en) * | 1998-03-24 | 2001-11-22 | Symantec Corporation | Bubble-protected system for automatic decryption of file data on a per-use basis and automatic re-encryption |
MY131509A (en) * | 1999-03-15 | 2007-08-30 | Sony Corp | Data processing method, apparatus and system for encrypted- data transfer |
US6487714B1 (en) * | 1999-05-24 | 2002-11-26 | International Business Machines Corporation | Mechanism for dynamic selection of an object's method |
JP4314713B2 (ja) * | 2000-02-03 | 2009-08-19 | ソニー株式会社 | データ記録方法及び装置、データ再生方法及び装置、並びにデータ記録再生システム |
US7076804B2 (en) * | 2001-05-11 | 2006-07-11 | International Business Machines Corporation | Automated program resource identification and association |
GB2378270B (en) * | 2001-07-30 | 2005-04-20 | Ibm | Method and apparatus for data transfer across a network |
KR100463842B1 (ko) * | 2001-12-27 | 2004-12-29 | 한국전자통신연구원 | 파일 보안 시스템의 키 관리 장치와 암호키 관리방법 |
JP3866597B2 (ja) * | 2002-03-20 | 2007-01-10 | 株式会社東芝 | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 |
US7296010B2 (en) * | 2003-03-04 | 2007-11-13 | International Business Machines Corporation | Methods, systems and program products for classifying and storing a data handling method and for associating a data handling method with a data item |
US7313820B2 (en) * | 2003-12-29 | 2007-12-25 | International Business Machines Corporation | Method and system for providing an authorization framework for applications |
-
2005
- 2005-03-31 WO PCT/JP2005/006290 patent/WO2005096120A1/ja active Application Filing
- 2005-03-31 US US10/593,719 patent/US20080270806A1/en not_active Abandoned
- 2005-03-31 JP JP2006511799A patent/JPWO2005096120A1/ja not_active Withdrawn
- 2005-03-31 CN CNB2005800180304A patent/CN100419626C/zh not_active Expired - Fee Related
- 2005-03-31 KR KR1020067022067A patent/KR20070008653A/ko not_active Application Discontinuation
- 2005-03-31 EP EP05727355A patent/EP1736848A1/en not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02155034A (ja) * | 1988-12-08 | 1990-06-14 | Toshiba Corp | セキュリティ機能付き計算機 |
JP2001350664A (ja) * | 2000-06-07 | 2001-12-21 | Nippon Telegr & Teleph Corp <Ntt> | 情報カプセル管理方法及び情報カプセル管理プログラムを格納した記憶媒体 |
WO2002003208A2 (en) * | 2000-06-30 | 2002-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
JP2002366437A (ja) * | 2001-06-05 | 2002-12-20 | Sharp Corp | 暗号化処理装置,暗号化処理システム |
JP2003290989A (ja) * | 2002-03-28 | 2003-10-14 | Akashin Kogyo Kk | 減容機 |
JP2003345664A (ja) * | 2002-05-30 | 2003-12-05 | Nissan Motor Co Ltd | 送信装置、データ処理システム及びデータ処理プログラム |
Non-Patent Citations (1)
Title |
---|
"JavaTM Cryptography Extension (JCE).", REFERENCE GUIDE FOR THE JAVATM 2 SDK, STANDARD EDITION, V1.4., 10 January 2002 (2002-01-10), XP002990827, Retrieved from the Internet <URL:URL:http://java.sun.com/j2se/docs/guide/security/jce/JCERefGuide.html> [retrieved on 20050624] * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007172526A (ja) * | 2005-12-26 | 2007-07-05 | Nippon Computer Co Ltd | 情報処理システム、情報処理方法 |
WO2008028864A1 (en) * | 2006-09-07 | 2008-03-13 | International Business Machines Corporation | Configuring a storage drive to communicate with encryption and key managers |
JP2010503301A (ja) * | 2006-09-07 | 2010-01-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 暗号化マネージャ及び鍵マネージャと通信するようにストレージ・ドライブを構成する方法 |
US7877603B2 (en) | 2006-09-07 | 2011-01-25 | International Business Machines Corporation | Configuring a storage drive to communicate with encryption and key managers |
US9098442B2 (en) | 2009-06-26 | 2015-08-04 | International Business Machines Corporation | Secure object having protected region, integrity tree, and unprotected region |
US10785240B2 (en) | 2009-06-26 | 2020-09-22 | International Business Machines Corporation | Protecting from unintentional malware download |
US8819446B2 (en) | 2009-06-26 | 2014-08-26 | International Business Machines Corporation | Support for secure objects in a computer system |
US9875193B2 (en) | 2009-06-26 | 2018-01-23 | International Business Machines Corporation | Cache structure for a computer system providing support for secure objects |
US9298894B2 (en) | 2009-06-26 | 2016-03-29 | International Business Machines Corporation | Cache structure for a computer system providing support for secure objects |
US9372967B2 (en) | 2009-06-26 | 2016-06-21 | International Business Machines Corporation | Support for secure objects in a computer system |
US9471513B2 (en) | 2009-06-26 | 2016-10-18 | International Business Machines Corporation | Cache structure for a computer system providing support for secure objects |
US9690717B2 (en) | 2009-06-26 | 2017-06-27 | International Business Machines Corporation | Secure object having protected region, integrity tree, and unprotected region |
US9727709B2 (en) | 2009-06-26 | 2017-08-08 | International Business Machines Corporation | Support for secure objects in a computer system |
US10007793B2 (en) | 2009-06-26 | 2018-06-26 | International Business Machines Corporation | Secure object having protected region, integrity tree, and unprotected region |
JP2012531663A (ja) * | 2009-06-26 | 2012-12-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ・システム中の安全オブジェクトに対するサポート |
US8954752B2 (en) | 2011-02-23 | 2015-02-10 | International Business Machines Corporation | Building and distributing secure object software |
US9864853B2 (en) | 2011-02-23 | 2018-01-09 | International Business Machines Corporation | Enhanced security mechanism for authentication of users of a system |
US9846789B2 (en) | 2011-09-06 | 2017-12-19 | International Business Machines Corporation | Protecting application programs from malicious software or malware |
US10007808B2 (en) | 2011-09-06 | 2018-06-26 | International Business Machines Corporation | Protecting application programs from malicious software or malware |
JP2013190896A (ja) * | 2012-03-13 | 2013-09-26 | Nec Corp | 情報処理装置、ファイル暗号化判定方法、権限決定方法およびプログラム |
JP2017535091A (ja) * | 2014-12-30 | 2017-11-24 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 仮想化システムにおける暗号復号方法および装置、およびシステム |
US10409990B2 (en) | 2014-12-30 | 2019-09-10 | Huawei Technologies Co., Ltd. | Encryption and decryption method and apparatus in virtualization system, and system |
Also Published As
Publication number | Publication date |
---|---|
JPWO2005096120A1 (ja) | 2007-08-16 |
EP1736848A1 (en) | 2006-12-27 |
CN1961275A (zh) | 2007-05-09 |
US20080270806A1 (en) | 2008-10-30 |
CN100419626C (zh) | 2008-09-17 |
KR20070008653A (ko) | 2007-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2005096120A1 (ja) | 実行装置 | |
US7107459B2 (en) | Secure CPU and memory management unit with cryptographic extensions | |
WO2007011001A1 (ja) | 実行装置 | |
US7469346B2 (en) | Dual virtual machine architecture for media devices | |
US9647992B2 (en) | Secure transfer and tracking of data using removable nonvolatile memory devices | |
WO2006009081A1 (ja) | アプリケーション実行装置及びアプリケーション実行装置のアプリケーション実行方法 | |
KR102550672B1 (ko) | 영상처리장치 및 그 제어방법 | |
WO2005096121A1 (ja) | 実行装置 | |
JP4850830B2 (ja) | コンピュータシステム及びプログラム生成装置 | |
US20090097644A1 (en) | Playback apparatus and playback control method | |
US20080216071A1 (en) | Software Protection | |
WO2005098570A1 (ja) | 実行装置 | |
CN112417484B (zh) | 资源文件保护方法、装置、计算机设备和存储介质 | |
WO2011114655A1 (ja) | 情報処理装置、仮想マシン生成方法及びアプリ配信システム | |
US9256756B2 (en) | Method of encryption and decryption for shared library in open operating system | |
WO2015154436A1 (zh) | 一种数据处理方法及装置 | |
KR102001046B1 (ko) | 공통 중간 언어를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법 | |
KR101749209B1 (ko) | 애플리케이션의 정보 은닉 방법 및 장치, 및 애플리케이션 실행 방법 및 장치 | |
JP2008040853A (ja) | アプリケーション実行方法およびアプリケーション実行装置 | |
US10795974B2 (en) | Memory assignment for guest operating systems | |
KR20190060181A (ko) | 공유 오브젝트의 코드 보호를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법 | |
KR101366669B1 (ko) | Ums 기반 통신 방법, 호스트 단말, 이를 위한 프로그램을 기록한 기록매체 | |
JP2008003928A (ja) | ダウンロードシステム | |
WO2011096073A1 (ja) | メモリ管理方法 | |
CN119150322A (zh) | 基于Java Agent启动的字节码加密方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DPEN | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101) | ||
DPEN | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2005727355 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2006511799 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020067022067 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 200580018030.4 Country of ref document: CN |
|
WWP | Wipo information: published in national office |
Ref document number: 2005727355 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1020067022067 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 10593719 Country of ref document: US |