WO2005052769A1 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
WO2005052769A1
WO2005052769A1 PCT/JP2004/017614 JP2004017614W WO2005052769A1 WO 2005052769 A1 WO2005052769 A1 WO 2005052769A1 JP 2004017614 W JP2004017614 W JP 2004017614W WO 2005052769 A1 WO2005052769 A1 WO 2005052769A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
secure
normal
data processing
processing device
Prior art date
Application number
PCT/JP2004/017614
Other languages
English (en)
French (fr)
Inventor
Takayuki Ito
Teruto Hirota
Kouichi Kanemura
Tomoyuki Haga
Yoshikatsu Ito
Original Assignee
Matsushita Electric Industrial Co.,Ltd.
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 Matsushita Electric Industrial Co.,Ltd. filed Critical Matsushita Electric Industrial Co.,Ltd.
Priority to CN2004800352503A priority Critical patent/CN1886712B/zh
Priority to EP04819456A priority patent/EP1688816A4/en
Priority to US10/580,818 priority patent/US7788487B2/en
Publication of WO2005052769A1 publication Critical patent/WO2005052769A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06CDIGITAL COMPUTERS IN WHICH ALL THE COMPUTATION IS EFFECTED MECHANICALLY
    • G06C1/00Computing aids in which the computing members form at least part of the displayed result and are manipulated directly by hand, e.g. abacuses or pocket adding devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2105Dual mode as a secondary aspect

Definitions

  • the present invention relates to a program executed in a secure mode in an apparatus that executes a program by switching between a secure mode in which a secure resource can be accessed and a normal mode in which only a normal resource other than the secure resource can be accessed.
  • the present invention relates to a technology for operating a program and a program executed in a normal mode in a corresponding manner.
  • a secure mode in which secure data that needs to be protected and a secure application that needs to be protected can be accessed, and a normal mode in which these secure data and secure application cannot be accessed.
  • a data processing device that is switched and executed by a monitor.
  • an application that operates in the normal mode requests a secure application via the operating system that operates in the normal mode.
  • the operating system requests the monitor to switch the execution mode, and the monitor switches the execution mode.
  • the secure application performs the requested processing and returns the processing result to the application via the secure operating system operating in the secure execution mode.
  • the secure operating system requests the monitor to switch the execution mode, and the monitor switches the execution mode.
  • Non-Patent Document 1 A New Foundation for CPU Systems Security (2003 November 20 search, URL:
  • the present invention has been made in view of a serious problem, and provides a data processing device, a data processing method, a data processing program, and a recording medium that can be used in a secure mode and that can reduce memory.
  • the purpose is to do.
  • the present invention switches between a secure mode in which use of a protected secure resource is permitted and a normal mode in which only use of a non-protected regular resource is permitted.
  • a data processing device that executes a program comprising: a normal storage unit that stores a normal program configured with at least one processing procedure that uses the normal resource; and one or more that uses the secure resource.
  • a secure storage means configured to store a secure program including at least a call instruction for calling the normal program, and whether a next instruction to be executed in the secure mode is the call instruction. Determining means for determining whether the call instruction is the call instruction in the secure mode.
  • An output unit for outputting identification information indicating the normal program, a switching unit for switching from the secure mode to the normal mode by protecting a secure resource when it is determined that the call instruction is provided, Receiving means for receiving the identification information; And a reading means for reading out the normal program indicated by the received identification information from the normal storage means, and a processing means operating in the normal mode according to the read normal program.
  • the secure program includes the call instruction, and when the next instruction to be executed is the call instruction, the switching unit switches from the secure mode to the normal mode, In the mode, the receiving means receives the identification information, the reading means reads the normal program indicated by the received identification information from the normal storage means, and the processing means operates according to the read normal program. Therefore, by executing the call instruction, the secure program can request a normal program operating in the normal mode to perform processing. That is, by causing a normal program to execute processing without using a secure resource, the program size of the secure program itself is reduced. Further, in the secure mode, the memory used by the secure program can be reduced.
  • the switching means suspends a secure operating system for controlling the secure program, and activates a normal operating system for controlling the normal program. Switch to mode.
  • the switching unit activates the normal operating system after suspending the secure operating system. Therefore, while operating in the normal mode, the data processing device can completely cut off the access route to the secure resource, and can realize the secure mode and the normal mode exclusively.
  • the data processing device includes a shared storage area to which access is permitted in both the secure mode and the normal mode, and the output unit stores the identification information in the secure mode in the secure mode.
  • the identification information is output by writing to the storage area, and the receiving unit receives the identification information by reading the identification information from the shared storage area in the normal mode.
  • the shared storage area is stored in the normal mode and the secure mode. Accessible. Therefore, the data processing device of the present invention realizes the secure mode and the normal mode exclusively, and securely exchanges information between the secure mode and the normal mode while protecting the secure resources. It can be carried out.
  • the reading unit stores the identification information and position information indicating the location of the normal program in the normal storage unit in association with each other, and indicates the position by the position information corresponding to the received identification information.
  • the normal position program is read out.
  • the reading unit stores the identification information and the position information indicating the location of the normal program in the normal storage unit in association with each other.
  • the information can be used to read the normal program reliably and quickly.
  • one processing procedure constituting the normal program includes a plurality of functions constituting a library, and another processing procedure calls one of the plurality of functions, and Operates according to the function called by the other processing procedure when operating according to the other processing procedure.
  • one processing procedure configuring the normal program includes a plurality of functions configuring a library, and another processing procedure calls one of the plurality of functions. Therefore, the secure program can request the normal program to perform a process using the functions constituting the library. Therefore, in the secure mode, there is no need to hold the library in the memory.
  • the data processing apparatus may further include: an instruction acquisition unit that receives a write instruction indicating writing of the secure program into the secure storage unit in the secure mode; and an instruction acquisition unit that acquires the write instruction in the secure mode. And a secure load means for writing the secure program in the secure storage means and outputting write end information indicating that the writing has been completed, wherein the switching means further comprises a step for outputting the write end information. Switch from the secure mode to the normal mode, the data processing device further includes a normal load unit that receives the write completion information and writes the normal program in the normal storage unit in the normal mode.
  • the instruction acquiring unit acquires the write instruction
  • the write instruction indicating that the secure program is to be written to the secure storage means is provided in the secure mode when the secure mode unit is in the secure mode.
  • the security program is received
  • the secure program is written in the secure storage means
  • the normal load means writes the normal program in the normal storage means.
  • the normal program is always stored in the normal storage means, and when a call instruction including the secure program is executed, the normal program is promptly executed. You can move on to executing a normal program.
  • the read unit that configures the data processing device when the normal program is written to the normal storage unit by the normal load unit, the read unit that configures the data processing device further includes the identification information and the normal storage unit. It is characterized in that it is stored in association with position information indicating the location of the normal program.
  • the reading means when the normal program is written in the normal storage means, the reading means stores the identification information in association with position information indicating the location of the normal program in the normal storage means. I do. By doing so, immediately after loading the secure program, the reading means stores the identification information and the location information indicating the location of the normal program in the normal storage means in association with each other. Therefore, when the call instruction included in the secure program is executed, the normal program can be read quickly.
  • the data processing device may further include: a deletion instruction obtaining unit configured to obtain a deletion instruction instructing deletion of the secure program; The secure storage means, and secure deletion means for outputting deletion end information indicating that the deletion has been completed, and the switching means further comprises: from the secure mode when the deletion end information is output.
  • the data processing apparatus further includes a normal deletion unit that acquires the deletion end information in the normal mode and deletes the normal program from the normal storage unit.
  • the deletion instruction acquisition unit instructs deletion of the secure program.
  • the secure deletion unit deletes the secure program from the secure storage unit
  • the normal deletion unit deletes the normal program from the normal storage unit.
  • the normal program does not need to be loaded. This prevents the normal program from wasting a memory area used in the normal mode. be able to.
  • the reading means stores the identification information and position information indicating the location of the normal program in the normal storage means in association with each other.
  • the normal program is read from an existing position indicated by position information corresponding to the identification information.
  • the reading unit since the reading unit stores the identification information and the position information indicating the location of the normal program in the normal storage unit in association with each other, the read unit uses the position information corresponding to the received identification information.
  • the normal program can be read reliably and quickly.
  • the data processing apparatus may further include a boot program including an initialization procedure for initializing one or more devices included in the data processing apparatus including the processing means and a startup procedure for activating the secure operating system. Reading the boot program from the stored boot program storage means and the boot program storage means, initializing the device in accordance with the read boot program, and starting the secure operating system after the initialization is completed. And an initialization means for starting.
  • the initialization means initializes the device according to the boot program when the power is turned on, and starts the secure operating system after the initialization is completed.
  • the data processing device of the present invention activates the secure operating system before activating the program executed in the normal mode.
  • the data processing device may further perform processing by the processing unit.
  • Normal output means for outputting a result and secure identification information indicating the secure program
  • the switching means further switches from a normal mode to a secure mode when the processing result is output
  • the data processing device comprises: Further, in the secure mode, the secure mode includes secure receiving means for receiving the processing result and the secure identification information, and secure reading means for reading the secure program corresponding to the received secure identification information from the normal storage means,
  • the processing means is further characterized by operating in a secure mode using the processing result in accordance with the secure program.
  • the normal output means outputs the processing result of the processing means and the secure identification information indicating the secure program in the normal mode
  • the secure receiving means outputs the processing result and the secure result in the secure mode.
  • the secure reading means reads the secure program corresponding to the received secure identification information from the normal storage means
  • the processing means further uses the processing result in the secure mode. And operates according to the secure program. Therefore, in the data processing device of the present invention, the processing means executes the processing requested by the secure program executed in the secure mode in the normal mode according to the normal program, and accurately outputs the processing result to the secure program. Can be returned to
  • the switching means disconnects the secure resource and the processing means when switching from the secure mode to the normal mode.
  • the switching unit disconnects the secure resource from the processing unit when switching from the secure mode to the normal mode. Therefore, in the normal mode, the processing unit may access the secure resource. Can not. Therefore, the security of the secure resource can be ensured.
  • the switching means encrypts the secure information held in the secure resource when switching from the secure mode to the normal mode.
  • the switching unit switches the mode from the secure mode to the normal mode. Since the secure information held in the secure resource is encrypted, the processing means cannot use the secure data in the normal mode. Therefore, in the normal mode, the security of the secure data held by the secure resource can be secured.
  • the security information held in the secure resource is executed in a secure mode, and includes a program including an instruction code part, a data part, and a stack part.
  • the means encrypts the instruction code portion when switching from the secure mode to the normal mode. Further, the switching means is very good for encrypting the data portion when switching from the secure mode to the normal mode.
  • the switching means may encrypt the stack portion when switching from the secure mode to the normal mode.
  • the switching unit encrypts the instruction code portion when switching from the secure mode to the normal mode.
  • the switching means encrypts the data portion when switching from the secure mode to the normal mode.
  • the switching unit encrypts the stack portion when switching from the secure mode to the normal mode.
  • the data processing device further includes a debug receiving unit that monitors the operation of the processing unit and receives a debug operation signal from a debug device that operates the processing unit.
  • the switching unit performs the processing when switching from the secure mode to the normal mode. Means for connecting to the debug accepting means, and disconnecting the processing means and the debug accepting means when switching from the normal mode to the secure mode.
  • the switching unit when the switching unit switches from the normal mode to the secure mode, the switching unit disconnects the processing unit and the debug receiving unit. Therefore, the data processing device of the present invention operates in the secure mode. Since the operation is not monitored and operated by an external debugging device, it is necessary to protect the secure resource from the debugging device. Can do.
  • the reading unit stores the identification information and position information indicating the location of the normal program in the normal storage unit in association with each other, and corresponds to the received identification information.
  • a configuration in which the presence position indicated by the position information also reads the normal program may be employed.
  • the reading unit stores the identification information and the position information indicating the location of the normal program in the normal storage unit in association with each other.
  • the information can be used to read the normal program reliably and quickly.
  • the present invention switches between the first operating system and the second operating system, and executes a process by shifting a process generated in each operating system to an execution state, an execution wait state, or a sleep state of! / ⁇ .
  • the data processing apparatus for managing, wherein the first operating system generates a first process in the first operating system, and the second operating system generates a second process corresponding to the first process.
  • a first output unit for operating the first operating system and the second operating system.
  • OS switching means for switching to a switching system, second acquisition means for acquiring the transition information in the second operating system, and second transition means for transitioning the state of the second process in accordance with the acquired transition information.
  • a data processing device comprising:
  • the first output unit outputs the transition information
  • the OS switching unit switches the second operating system to switch the first operating system to the second operating system.
  • the second transition means transitions the state of the second process according to the transition information. Therefore, in the data processing device in which two operating systems that are exclusively executed operate, the operating state of the first process controlled by the first operating system is referred to as the second process. It can also be monitored in the second operating system via the second operating system.
  • the data processing device may further include, in the second operating system, a second detecting means for detecting a state transition of the second process, and a transition indicating the detected state transition in the second operating system.
  • Second output means for outputting information, wherein the OS switching means further switches the second operating system to the first operating system, and the data processing device further comprises the first operating system.
  • the second output means outputs the transition information in the second operating system
  • the first transition means changes the state of the first process according to the transition information. Let it.
  • the operation state of the second process controlled by the second operating system can be monitored also in the first operating system via the first process. Therefore, the first operating system and the second operating system can mutually monitor the operating states of the first process and the second process controlled by the first operating system and the second operating system, respectively.
  • the data processing device includes an accessible shared storage area in both the first operating system and the second operating system, and the first output means stores the transition information in the shared storage area.
  • the transition information is output by writing, and the second acquisition unit acquires the transition information by reading the transition information from the shared storage area.
  • the first output means and the second acquisition means provide the transition information via the shared storage area accessible to both the first operating system and the second operating system. Hand over. Since the shared storage area is accessible to both the first operating system and the second operating system, the data processing device of the present invention includes the first operating system and the second operating system. The first operating system can also pass information to the second operating system while performing the operations exclusively. [0034]
  • the second output means constituting the data processing device outputs the transition information by writing the transition information in the shared storage area, and the first acquisition means outputs the transition information to the shared storage area. The transition information is obtained by reading the transition information.
  • the second operating system can pass information to the first operating system while executing the second operating system and the first operating system exclusively.
  • the data processing device includes a device that operates under the control of the second operating system, and the second process is a device driving program that controls driving of the device.
  • the second detecting means detects a state transition of the second process accompanying the operation of the device.
  • the second process is a device driving program for controlling the driving of the device, and the second detecting means detects a state transition of the second process accompanying the operation of the device. I do. Accordingly, the first process also makes an invitation transition along with the state transition of the device driving program, and the first operating system can also monitor the driving state of the device.
  • the data processing device when the first process transits from a hibernation state to an execution state, the data processing device performs an exclusion process that avoids duplication of a processing request to the device. It operates according to a first process, and in the first operating system, the first output means outputs the transition information after the exclusion process ends.
  • such exclusive processing is performed by a device driving program that controls the driving of the device.
  • the first process performs processing on the device.
  • the first output means outputs the transition information.
  • the second process transits to an execution state, and starts controlling the driving of the device.
  • the memory space used by the first and second operating systems is required separately, especially for the second operating system. Assuming that it is necessary to protect the memory used by the oneting system from external access, the first process performs the exclusion process, so that the second process does not need to perform the exclusion process. Therefore, the memory area used by the second process for exclusive processing is reduced. For this reason, the memories that need to be protected are reduced, and the load on the protection mechanism that protects these memories from the outside can be reduced.
  • the first operating system and the second operating system may further include an interrupt detection unit configured to detect an occurrence of an interrupt, and the first operating system configured to detect an interrupt.
  • the interrupt investigating means for investigating the cause of the interrupt and, in the first operating system, when the interrupt investigating means determines that the interrupt is caused by the device, the first process is halted from the idle state.
  • Interrupt transition means for transitioning to the execution state.
  • the data processing device includes, in the second operating system, a notification unit that outputs, when an interrupt is detected, interrupt notification information indicating the detection of the interrupt
  • the OS switching unit includes: The second operating system is switched to the first operating system, the first obtaining means further obtains the interrupt notification information in the first operating system, and the interrupt investigating means further comprises: In the one-operating system, when the interrupt notification information is acquired, an interrupt occurrence factor is investigated.
  • the interrupt checking means checks the cause of the interrupt. Further, when an interrupt is detected in the second operating system, the notifying means outputs interrupt notification information indicating the detection of the interrupt, and in the first operating system, the interrupt checking means Investigate the factors.
  • the notifying unit causes the interrupt detecting unit to stop detecting the interrupt, and the first acquiring unit outputs the interrupt notification.
  • the stop is released to the interrupt detection means.
  • the notifying unit when an interrupt is detected, the notifying unit causes the interrupt detecting unit to stop detecting the interrupt, and the first acquiring unit outputs the interrupt notification information. Is obtained, the stop is released to the interrupt detection means. Therefore, the interruption detecting means switches the second operating system to the first operating system until the first acquiring means acquires the interruption notification information output from the notifying means. Is not disturbed. Further, it is possible to prevent the interrupt detection means from detecting the same interrupt repeatedly before switching to the second operating system power and the first operating system.
  • the present invention is the data processing device that operates in accordance with a program, wherein the data processing device stores a program configured with a plurality of processing procedures, and stores the program. It is provided with a validity judging means for judging whether the program is improper or not, and invalidating means for invalidating the program when it is judged that the program is improper. It is also a data processing device.
  • the validity determining means determines whether or not the program is unauthorized, and if the invalidating means is determined to be unauthorized, the validity determining means determines whether the program is unauthorized. Because of the invalidation, execution of an unauthorized program can be prevented in the data processing device of the present invention.
  • the validity determination unit may include a program information acquisition unit that acquires program identification information indicating the program stored in the storage unit, and invalidation identification information indicating an invalidated program. An invalidation information acquisition unit to be acquired, and a determination unit to determine whether or not the acquired program identification information matches the acquired invalidation identification information. Is determined to be invalid.
  • the program can be easily illicitly determined depending on whether or not the program identification information acquired by the information acquisition unit and the invalidation identification information acquired by the invalidation information acquisition unit match. A certain force can be determined.
  • the program information acquisition unit included in the data processing device of the present invention stores the program identification information indicating the program, and reads the program identification information from the identification information storage unit.
  • the invalidation information acquiring unit stores invalidation identification information indicating an invalidated program.
  • the invalidation information acquiring unit acquires the invalidation information from the invalidation information storage unit.
  • a reading unit that obtains the invalidation identification information by reading it.
  • the program information acquisition unit can quickly acquire the program identification information from the identification information storage unit that stores program identification information indicating the program in advance. Further, the revocation information acquisition unit stores in advance revocation identification information indicating a revoked program, and quickly acquires the revocation identification information from the revocation information storage unit. be able to.
  • the validity determining means may determine whether or not the program is unauthorized based on a public key certificate that certifies the validity of a public key assigned to the program. Is determined.
  • the validity determination unit makes the determination based on the public key certificate that certifies the validity of the public key assigned to the program.
  • the legitimacy of the program can be determined more reliably.
  • the validity determining means stores the public key certificate including public key identification information for identifying the public key, and a certificate storage unit for storing the public key certificate.
  • a public key information acquisition unit that acquires the public key identification information; and a revocation information storage unit that stores revocation identification information indicating a revoked public key.
  • a revocation information reading unit that reads revocation identification information from the revocation information storage unit, and a determination unit that determines whether the acquired public key identification information matches the read revocation identification information. And determining that the program is illegal when it is determined that they match.
  • the determination unit stores the public key identification information included in the public key certificate stored in the certificate storage unit and the revocation information storage unit. ing By comparing with the invalidation identification information, it can be easily determined that the program is illegal.
  • the validity determination unit may further include an update unit that acquires the latest invalidation identification information from the outside and writes the acquired invalidation identification information into the invalidation information storage unit.
  • the updating unit acquires the latest invalidation identification information from the outside, and writes the acquired invalidation identification information to the invalidation information storage unit.
  • the issuing organization of the public key certificate periodically updates the revocation identification information by adding information indicating a later revoked public key.
  • the update unit acquires the latest invalidation identification information every time an access request to the storage unit is detected.
  • the update unit always obtains the latest invalidation identification information every time an access request to the storage unit is detected, and thus the determination unit always uses the latest invalidation identification information to perform the update.
  • the legitimacy of the program can be determined.
  • the updating unit receives the revocation identification information from a CRL (Certificate Revocation List) issuing device via a network, and receives the revocation identification information from the CRL issuing device via a network and a server device. And receiving the invalidation identification information by reading the invalidation identification information.
  • the updating unit can acquire the latest invalidation identification information from the CRL issuing device via the network, thereby receiving the latest invalidation identification information.
  • the server may receive the invalidation information.
  • the invalidation identification information can be updated by the device.
  • the data processing device can store the invalidation identification information. It is better to update.
  • the updating unit further obtains signature data generated by applying a digital signature to the latest invalidation identification information from the outside, performs signature verification on the obtained signature data, and performs signature verification. If the verification is successful, the obtained invalidation identification information is written to the invalidation information storage unit.
  • the updating unit acquires the signature data, performs signature verification on the acquired signature data, and when the signature verification is successful, stores the acquired invalidation identification information in the invalidation information storage unit. Since the writing is performed, the invalidation identification information issued from the valid issuer of the invalidation identification information can be obtained.
  • the validity determining means constituting the data processing device stores the public key certificate including signature data generated by applying a digital signature to the public key at least! A certificate storage unit, a public key certificate acquisition unit for acquiring the public key certificate from the certificate storage unit, and performing signature verification on signature data included in the acquired public key certificate.
  • a verification unit for verifying whether or not the obtained public key certificate is correct, and when it is determined that the public key certificate is not valid, the program is invalid. Is determined.
  • the validity determination unit verifies whether or not the acquired public key certificate is correct by performing signature verification on the signature data. Is determined to be incorrect, the program is determined to be incorrect. Therefore, the data processing device can determine whether the public key certificate assigned to the program is illegally generated by an unauthorized third party. Only those programs that have it can be executed.
  • the validity judging means stores the validity of at least two public keys in the storage means using at least two public key certificates respectively. Then, it may be determined whether or not the program is unauthorized.In this configuration, the validity determining unit stores the program in the storage unit using at least two public key certificates. Judge whether the said program is illegal The By performing the determination using a plurality of public key certificates, it is possible to more accurately determine whether or not the program is illegal.
  • the two public keys are a first public key assigned to the program and a second public key assigned to the data processing device or an operating system that controls the operation of the program.
  • the validity determination means constituting the device includes: a second signature data generated by applying a digital signature to at least the second public key using a secret key of an authoritative certification authority; At least a first public key generated by digitally signing at least the first public key using a second public key certificate including a key and a secret key of the data processing device or the operating system.
  • a certificate storage unit that stores signature data and a first public key certificate including the first public key; and the first public key certificate and the second public key certificate from the certificate storage unit.
  • the obtained public key certificate obtaining unit and the obtained second signature data included in the obtained second public key certificate are subjected to signature verification using the public key of the certification authority, thereby obtaining the obtained second key data. Verify whether the public key certificate is correct, and if it is determined to be correct, obtain the second public key certificate and obtain the second public key, and obtain the obtained first public key certificate.
  • the first signature data included in the certificate is subjected to signature verification using the obtained second public key, thereby verifying whether the obtained first public key certificate is correct.
  • the validity determination unit performs signature verification on the second signature data included in the obtained second public key certificate using the public key of the certification authority.
  • it is verified whether the obtained second public key certificate is correct, and when it is determined that the second public key certificate is correct, the second public key is obtained from the second public key certificate, and the obtained second public key is obtained.
  • the obtained first public key certificate is correct. Verify whether or not.
  • the program is invalidated even when the operating system to be controlled is unauthorized, and the program is prevented from being executed under the unauthorized operating system.
  • the legitimacy judging means constituting the data processing device makes the judgment each time an access request to the storage means is detected.
  • the validity determination means may make the determination each time an access request to a program stored in the storage means is detected.
  • the validity determination means may make the determination immediately after the power supply to the data processing device is started.
  • the validity determination unit makes the determination each time an access request to the storage unit is detected.
  • the determination is made each time an access request to the program stored in the storage unit is detected.
  • the determination is made immediately after power supply to the data processing device is started. Therefore, before executing the program, it is possible to determine whether or not the program is illegal.
  • the present invention is the data processing device for decrypting and executing an encrypted program, wherein the storage means encrypts the program using a program key instead of the program.
  • An encryption key storage unit that stores an encryption key program generated by performing an encryption algorithm, wherein the validity determination unit stores m encryption keys selected from p encryption keys. Using each of the m encryption keys, the program key and m pieces of encryption information generated by encrypting any of the predetermined detection information are associated with the m encryption keys.
  • An encryption information storage unit, and a decryption unit that applies a decryption algorithm to the corresponding encryption information using each of the m encryption keys to generate m decryption information.
  • All of the generated m pieces of decoding information are A determination unit for determining whether or not the detection information is the detection information, and when all of the generated m pieces of decoding information are determined to be the detection information, the program is determined to be unauthorized. It is characterized by determining that there is.
  • m encryption keys are selected from the first row and the encryption key storage constituting the data processing device is selected.
  • the unit stores, in the first matrix, the element position where each encryption key is arranged in association with each encryption key, and the encryption information storage unit stores the element position in the second matrix of n rows and m columns.
  • the encryption information is stored at the same element position as the element position where the encryption key corresponding to each piece of encryption information is arranged, and the decryption unit stores the element corresponding to the encryption key from the encryption key storage unit. Reading the position, reading the encryption information arranged at the same element position as the read element position in the second matrix of the encryption information storage unit, and using the read encryption key to read the encryption key; To apply a decryption algorithm to the information And butterflies.
  • the validity determination means performs a decryption algorithm on the corresponding encryption information using each of the m encryption keys, generates m decryption information, and generates the decryption information.
  • the data processing device When it is determined that all the m pieces of decoded information are the detection information, it is determined that the program is invalid. If the program is valid, the data processing device generates an encryption key from the encrypted encryption key, and decrypts the encryption program using the generated encryption key to generate a program. Run the generated program. In this way, by performing double encryption, the program can be protected from unauthorized use.
  • the p encryption keys are selected.
  • One of the programs is illegal, and all m pieces of decryption information generated using the m encryption keys assigned to the illegal program are the detection information. Even if one of the m encryption keys assigned to another legitimate program matches the m encryption keys of the unauthorized program, the program key is generated using the other encryption keys. can do.
  • assigning m encryption keys in different combinations for each program only unauthorized programs can be invalidated and legitimate programs can be used.
  • the present invention also relates to the data processing device, wherein the data processing device has a memory device for storing data. And a processor operating in accordance with a program comprising a plurality of processing procedures; and a transfer data addressed to the memory means, which is arranged between the memory means and the processor and output from the processor, satisfies a transfer restriction condition. When it is determined whether or not the condition is satisfied, and when it is determined that the transfer restriction condition is satisfied! / ⁇ , the transfer of the transfer data to the memory unit is suppressed, and it is determined that the transfer restriction condition is not satisfied. And monitoring means for transferring the transfer data to the memory means.
  • the monitoring unit is disposed between the memory unit and the processor, and determines whether transfer data output from the processor and addressed to the memory unit satisfies a transfer restriction condition. When it is determined that the transfer restriction condition is satisfied, the transfer of the transfer data to the memory unit is suppressed. By doing so, it is possible to prevent unauthorized access to the memory that occurs during the operation of the program.
  • the monitoring means stores a transfer restriction condition for each of a plurality of application programs, and stores a transfer restriction condition for each application program executed by the processor. A condition is selected, and the selected transfer restriction condition is used.
  • the monitoring unit selects a transfer restriction condition for each application program executed by the processor, and uses the selected transfer restriction condition.
  • the transfer restriction condition is address range information indicating a predetermined storage space in the memory unit
  • the data processing device is configured such that the monitoring unit extracts address information from the transfer data. The transfer of the transfer data is suppressed when the extracted address information is included in the address range information.
  • the monitoring unit suppresses transfer of the transfer data when the extracted address information is included in the address range information. Therefore, it is possible to prevent the processor from accessing the predetermined storage space.
  • the transfer restriction condition is a restriction count indicating an upper limit of the number of accesses to a predetermined storage space in the memory means, and the monitoring means constituting the data processing apparatus transmits the storage restriction to the storage space in the past.
  • the address information is extracted from the transfer data, and when the extracted address information is included in the address range information, 1 is added to the cumulative number of times, and the sum is added. The transfer of the transfer data is suppressed when the obtained number of times of addition exceeds the limited number of times.
  • the monitoring unit suppresses the transfer of the transfer data when the number after addition exceeds the limited number. In this way, an unauthorized access accidentally occurring for some reason during the execution of the program is overlooked, and, for example, an unauthorized access to the predetermined storage space is constantly performed due to unauthorized alteration of the program. Only when access occurs, transfer of transfer data accompanying execution of the program is suppressed.
  • the monitoring means is characterized in that it determines whether or not the transfer data transferred on the bus connected to the processor satisfies a transfer restriction condition.
  • the monitoring unit determines whether or not the transfer data transferred on the node connected to the processor satisfies a transfer restriction condition. Each time an output is made, the determination can be made reliably.
  • the memory means constituting the data processing apparatus of the present invention uses an encryption key to store a code portion and a data portion of an application program different from the current program being executed by the port processor, respectively.
  • An encryption code and encrypted data generated by encryption are stored, and the transfer restriction condition is address range information indicating a storage space in the memory means where the encrypted data is stored.
  • the monitoring means stores the encryption code and a decryption key for decrypting the encrypted data.
  • the monitoring means extracts address information from the transfer data, and the extracted address information is stored in the encrypted code. When the address is within the address range indicating the stored storage space, the data exists in the storage space indicated by the transfer data using the decryption key. Decoding the Goi ⁇ code to generate a decoded code, and transfers the generated decrypted code to the processor, extracted ad Address information capability When the address information is included in the address range information, transfer of transfer data is suppressed.
  • the monitoring means stores the encryption code and a decryption key for decrypting the encrypted data, and the address information is stored in the storage in which the encryption code is stored.
  • the decryption key is used to decrypt the encryption code existing in the storage space indicated by the transfer data to generate a decryption code, and the generated decryption code is sent to the processor.
  • the address information transferred and extracted is included in the address range information, transfer of the transfer data is suppressed.
  • the use of the data portion of the application program can be limited to only the application program.
  • the monitoring means is further characterized in that, when it is determined that the transfer restriction condition is satisfied, identification information for identifying the program being executed by the mouth processor is added to a program revocation list. I do.
  • the monitoring unit when the monitoring unit determines that the transfer restriction condition is satisfied, the monitoring unit adds identification information for identifying the program being executed by the processor to a program invalidation list. This prevents the program from being executed again.
  • the data processing apparatus of the present invention operates according to a memory means for storing data and a program comprising a plurality of processing procedures, and stores an address of an instruction to be executed next.
  • a processor provided with a program counter, and determining whether or not an address stored in the program counter is within a predetermined address range.
  • Monitoring means for instructing the processor to store a predetermined value in a program counter, wherein the processor power stores the predetermined value in a program counter upon receiving the instruction; .
  • the monitoring means determines whether or not the address stored in the program counter is within a predetermined address range, and determines that the address is within the predetermined address range.
  • the predetermined value is stored in the program counter for the processor. To be stored. This prevents the processor from accessing the storage area corresponding to the predetermined address range in advance, and transfers the execution right of the processor to another program such as an operating system, for example. Thus, the execution of the program can be interrupted.
  • FIG. 1 shows an example of use of a mobile phone 100 according to the first embodiment.
  • FIG. 2 is a block diagram showing a configuration of a mobile phone 100 and a memory card 300.
  • FIG. 3 shows an example of information stored in a secondary storage unit 104.
  • FIG. 4 shows an example of information stored in a normal memory 111.
  • FIG. 5 shows details of the application management table 166.
  • FIG. 6 shows an example of information stored in the secure memory 113.
  • FIG. 7 shows details of the secure application management table 186.
  • FIG. 8 is a block diagram showing the relationship between programs stored in a normal memory 111 and a secure memory 113.
  • FIG. 9 shows a data configuration of a command handled by the normal OS 151 and the secure memory 113.
  • FIG. 10 is a flowchart showing an operation of a normal OS 151.
  • FIG. 11 is a flowchart showing an operation of the secure OS 171.
  • FIG. 12 is a flowchart showing the operation of the music decryption daemon 156.
  • FIG. 13 is a flowchart showing a switching process from a normal OS 151 to a secure OS 171
  • FIG. 14 is a flowchart showing switching processing from a secure OS 171 to a normal OS 151
  • FIG. 15 is a flowchart showing an operation of the mobile phone 100.
  • FIG. 16 is a flowchart showing an operation of each program in a music decryption program registration process.
  • FIG. 17 is a flowchart showing an operation of each program in a music decryption program registration process. Continued from Figure 16.
  • FIG. 18 A diagram showing the operation of each program in a processing request to the music decryption program 176. It is a low chart.
  • FIG. 19 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 18.
  • FIG. 20 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 19.
  • FIG. 21 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 20.
  • FIG. 22 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 21.
  • FIG. 23 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 22.
  • FIG. 24 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 23.
  • FIG. 25 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 24.
  • FIG. 26 is a flowchart showing the operation of each program in a process request to the music decryption program 176. Continued from Figure 25.
  • FIG. 27 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 26.
  • FIG. 28 is a flowchart showing a process when an interrupt is generated by the normal input / output device 132 during execution of the normal OS 151.
  • Figure 21 shows the details of step S239.
  • FIG. 29 is a flowchart showing a process when an interrupt is generated by the normal input / output device 132 while the secure OS 171 is running.
  • FIG. 30 is a flowchart showing a process performed by the secure device 133 when an interrupt occurs while the normal OS 151 is running. Figure 23 Details of step S287.
  • FIG. 31 is a flowchart showing processing when an interrupt is generated by the secure device 133 during execution of the normal OS 151. Continued from Figure 30.
  • Figure 32 Normally, when an interrupt is generated by the cryptographic processing device 117 while the OS 151 is running It is a flowchart which shows a process. Figure 27 Details of step S337.
  • FIG. 33 is a flowchart showing processing when an interrupt is generated by the cryptographic processing device 117 during execution of the normal OS 151. Continued from Figure 32.
  • FIG. 34 is a flowchart showing processing when an interrupt is generated by the cryptographic processing device 117 while the normal OS 151 is being executed. Continued from Figure 33.
  • FIG. 35 is a flowchart showing deletion processing of the music decryption program 176.
  • FIG. 36 shows the transfer of commands between programs in connection with the operation of mobile phone 100.
  • FIG. 37 shows the transfer of commands between programs in the operation of mobile phone 100.
  • FIG. 38 shows the transfer of commands between programs in the operation of mobile phone 100. Continued from Figure 37.
  • FIG. 39 shows the transfer of commands between programs in the operation of mobile phone 100. Continue from Figure 38.
  • FIG. 40 shows the transfer of commands between programs in the operation of mobile phone 100. Continued from Figure 39.
  • FIG. 41 shows the transfer of commands between programs in the operation of mobile phone 100. Continued from Figure 40.
  • FIG. 42 shows the transfer of commands between programs in the operation of mobile phone 100. Continued from Figure 41.
  • FIG. 43 shows an example of information stored in a normal memory 111.
  • FIG. 44 is a flowchart showing an operation when the mobile phone 100 is activated.
  • FIG. 45 shows an example of information stored in the secure memory 113.
  • FIG. 46 shows an example of a logical memory space formed by the MMU control program 184.
  • FIG. 47 is a block diagram showing an association between programs in a modification of the first embodiment.
  • FIG. 48 shows a configuration of a secure device driver management table 231 of a normal OS 151 and a secure OS 171 according to a modification of the first embodiment.
  • FIG. 49 shows a usage example of the mobile phone 400 according to the second embodiment.
  • FIG. 50 is a block diagram showing a configuration of an invalidation list issuing device 250.
  • FIG. 51 is a block diagram showing a configuration of a memory protection unit 414 and a secure memory 413 included in the mobile phone 400.
  • FIG. 52 is a flowchart showing an operation of a memory protection unit 414.
  • FIG. 53 is a flowchart showing an operation of the memory protection unit 414. Continued from Figure 52.
  • FIG. 54 is a block diagram showing a configuration of a memory protection unit 454 and a secure memory 453 according to a modification of the second embodiment.
  • FIG. 56 shows a configuration and relation of an application certificate 501, a maker certificate 511, and a CA certificate 521 included in a music decryption program 476 in a modification of the second embodiment.
  • FIG. 57 shows an example of the configuration of an OS revocation list.
  • FIG. 58 illustrates an example of information stored in an information storage unit 610 of the revocation list issuing device according to Embodiment 3.
  • FIG. 59 A configuration of an application unique key matrix 592 and an OS unique key matrix 597 are shown.
  • FIG. 60 A detailed configuration of the application matrix revocation list 611 is shown.
  • FIG. 61 is a flowchart showing a processing procedure for generating an application matrix revocation list.
  • FIG. 62 is a block diagram showing a configuration of a memory protection unit 571 and a secure memory 613 provided in the mobile phone according to the third embodiment.
  • FIG. 63 is a flowchart showing a verification operation by a memory protection unit 571.
  • FIG. 64 is a flowchart showing a verification operation of the music decryption program 592 by the application verification unit 578.
  • FIG. 65 is a configuration diagram showing a configuration of a home network according to a modification of the third embodiment.
  • FIG. 66 is a block diagram showing a configuration of a memory protection unit 701 and a secure memory 713 constituting the mobile phone according to the fourth embodiment.
  • FIG. 67 shows an example of the configuration of the secure memory card 820 and information stored in the secure memory card 820 in Embodiment 5.
  • FIG. 68 is a block diagram showing configurations of a mobile phone 750 and a normal memory card 800 and a secure memory card 820 mounted on the mobile phone 750 according to the fifth embodiment.
  • FIG. 69 is a block diagram showing a configuration of a memory protection unit 764.
  • FIG. 70 shows a configuration of a secure memory table 811 and a normal memory table 861.
  • FIG. 71 is a flowchart showing operations of an access control unit 783 and an ID detection unit 786.
  • FIG. 72 is a flowchart showing an operation of an access control unit 783. Continued from Figure 71.
  • FIG. 1 shows an example of use of the mobile phone 100 of the present invention.
  • the mobile phone 100 is equipped with a memory card 300.
  • the memory card 300 stores the encrypted music data, and the mobile phone 100 reads out the music data from the memory card 300 and reproduces the music data.
  • the mobile phone 100 is connected to a content distribution device via a base station 15, a mobile phone network 10, and the Internet 20.
  • the mobile phone 100 acquires various types of content such as music and video stored in the content distribution apparatus via the Internet and a mobile phone network.
  • the memory card 300 includes an input / output unit 301, a secure processing unit 302, a general area 303, and a secure area 306.
  • the general area 303 is a storage area that can be freely accessed by an external device, and stores the encrypted music data 304.
  • the secure area 306 is a storage area that can be accessed only by an authorized external device, and stores a content key 307.
  • the encrypted music data 304 is generated by applying the encryption key E1 to the music data of one music using the content key 307. Each encrypted music data is identified by a music ID.
  • the encryption algorithm El uses, for example, DES (Data Encryption Standard).
  • the input / output unit 301 inputs and outputs various data between the external device and the general area 303 and the secure processing unit 302.
  • the secure processing unit 302 performs mutual authentication with an external device based on a CPRM (Content Protection for Recordable Media) mechanism, and shares the key with the authenticated device when authentication is successful. Use the shared key to securely input and output data to and from external devices.
  • CPRM Content Protection for Recordable Media
  • the mobile phone 100 includes a debugger IF101, a CPU 102, an MMU 103, a secondary storage unit 104, a switching control unit 106, an interrupt controller 107, an input unit 108, a display unit 109, a normal memory 111, and a shared memory 112. , Secure memory 113, memory protection unit 114, input / output unit 116, cryptographic processing device 117, wireless communication control unit 118, microphone 119, speaker 120, communication unit 121, antenna 122, knocker 123, code processing unit 124, and DZA conversion It is composed of a unit 126, and each circuit is connected to a bus 130.
  • the mobile phone 100 is, specifically, a computer system. Various computer programs are stored in the normal memory 111, the shared memory 112, the secure memory 113, and the secondary storage unit 104. By operating according to this computer program, the mobile phone 100 realizes a part of its functions.
  • Secondary storage unit 104 shared memory 112
  • the secondary storage unit 104 also has a ROM function, and stores, for example, an encrypted music decryption program 141 and a music decryption daemon 142 as shown in FIG.
  • the encryption / decryption music decryption program 141 is generated by encrypting and / or decrypting a music decryption program loaded and executed on the secure memory 113.
  • the music decryption program is a program for decrypting the encrypted music data 304 stored in the memory card 300. This will be described in detail later.
  • the music decryption daemon 142 is a program loaded and executed on the normal memory 111, and corresponds to the music decryption program on a one-to-one basis.
  • a music decryption program executes a process that requires high security and a process that handles data to be protected, and a music decryption daemon executes a process that does not require high security. . Details will be described later.
  • the shared memory 112 is composed of a RAM, and is a memory that can be used by the program on the normal memory 111, the program on the secure storage!
  • the secondary storage unit 104 may be configured by a hard disk unit that also configures a ROM.
  • the normal memory 111 includes a RAM and a ROM, and stores various programs executed by the CPU 102.
  • a normal OS 151 a library 152, a music playback program 153, a music decryption daemon 156, a normal input / output device driver 157, a secure input / output entry device driver 158, a cryptographic entry device driver 159, a normal The switching device driver 160 and the normal interrupt handler 161 are stored.
  • the secure memory 113 is composed of a RAM, and stores various programs executed by the CPU 102.
  • the secure memory 113 is connected to a bus 130 via a memory protection unit 114.
  • the secure memory 113 stores a secure OS171, a music decryption program 176, a secure input / output device driver 178, a cryptographic device driver 179, a secure switching device driver 180, and a secure interrupt handler 181 as shown in FIG. Te ru.
  • FIG. 8 is a block diagram functionally showing a relationship between programs stored in the normal memory 111 and the secure memory 113.
  • communication between programs on the same memory is normally realized by outputting a system call to the OS 151 and the secure OS 171.
  • the normal switching device driver 160, the secure switching device driver 180, and the switching control unit 106 operate to switch between the normal OS 151 and the secure OS 171.
  • the shared memory 112 is connected to the normal input / output device 132 and the cryptographic processing device 117. This shows a part of the role played by the shared memory 112. 112 is also used by other programs.
  • the normal OS 151 is basic software for controlling various programs loaded and executed on the normal memory 111, and includes a control program and control data.
  • the control data includes an application management table 166 as shown in FIG.
  • the application management table 166 includes a plurality of entries 167, 168,... As shown in FIG. Each entry consists of a handle value, daemon address, and application context address.
  • the handle value is an identifier assigned to the secure application loaded on the secure memory 113.
  • a secure application an application loaded on the secure memory 113 and executing a secure process is referred to as a secure application.
  • the secure process is a process that handles data to be protected and a process that needs to protect the algorithm itself.
  • the daemon address is a load address on the normal memory 111 of a program that operates in correspondence with the secure application.
  • the application context address is an address on the normal memory 111 that stores the context of the application that requests secure processing to the secure application corresponding to the handle value.
  • the context includes a register value of the CPU 102, a stack pointer, the contents of the MMU 103, and the like.
  • the handle value “1” is an identifier assigned to the music decryption program 176 (described later) to which the music reproduction program 153 requests secure processing.
  • the daemon address “0000BBBB” is a load address on the normal memory 111 of the music decryption daemon 156 that operates in correspondence with the music decryption program 176.
  • the application context address “0000AAEE” is an address on the normal memory 111 that stores the context of the music reproduction program 153.
  • the control data includes an identification information device indicating the normal input / output device driver 157.
  • a device ID—A, a device ID—B that is identification information for identifying the secure input / output entry device driver 158, and a device ID—C that is identification information for indicating the encryption entry device driver 159 are included. These are stored in association with the load addresses on the normal memory 111 of the normal input / output device driver 157, the secure input / output entry device driver 158, and the encryption entry device driver 159, respectively.
  • the device ID-B is the same as the identification information indicating the secure input / output device driver 178 (described later), and the device ID-C is the same as the identification information indicating the encryption device driver 179.
  • the OS 151 sends and receives various commands to and from the secure OS 171 via a predetermined area (called a command area) in the shared memory 112. Also, various commands are transmitted / received to / from a program in the normal memory 111.
  • the shared memory 112 may be used, or the normal memory 111 may be used.
  • FIG. 9A shows an example of the data structure of a command normally handled by the OS 151.
  • the command 1000 includes a command section 1011 and a data storage section 1012.
  • Commands stored in the command section 1011 include secure application registration request, registration completion notification, application return request, secure application deletion instruction, deletion completion notification, system call, response notification, secure processing request, external processing request, sleep Request, interrupt occurrence notification, etc.
  • the data storage unit 1012 stores various data and commands 1016, and identification information 1013 indicating a program to receive the data and command 1016, according to commands stored in the command unit 1011.
  • the secure application registration request is a command requesting that a secure application that requests secure processing of an application running on the normal memory 111 be loaded onto the secure memory 113 and made usable.
  • the data storage unit 1012 stores secure application information indicating a secure application and daemon information indicating a program that operates in association with the secure application.
  • the secure application information is the address where the encrypted music decryption program 141 on the secondary storage unit 104 is stored, and the daemon information is the music decryption program.
  • the secure application information and the daemon information may be identifiers corresponding to the encrypted music decryption program 141 and the music decryption daemon 142.
  • the registration completion notification notifies that the secure application has been loaded on the secure memory 113 and registration in the secure application management table (described later) has been completed. At this time, the handle value corresponding to the registered secure application is stored in the data storage unit 1012.
  • the application return request is a command for requesting the return of the application that has requested the secure application that has completed the requested processing.
  • identification information indicating the secure application is stored in the data storage unit.
  • the secure application deletion instruction instructs the deletion of the secure application on the secure memory 113. At this time, a handle value for uniquely identifying the secure application to be deleted is stored in the data storage unit 1012.
  • the deletion completion notification is for notifying that the secure application on the secure memory 113 has been deleted.
  • the data storage unit 1012 stores a handle value for uniquely identifying the deleted secure application.
  • the system call is a command for requesting the application power on the normal memory 111, the normal OS 151, to another program on the normal memory 111 to relay a command or data.
  • identification information indicating the application that has requested mediation, identification information indicating the program of the mediation destination, and mediating data and commands are written.
  • Fig. 9 (c) shows the data structure of a system call output by the music decryption daemon 156.
  • the command section 1011 stores a system call.
  • the data storage section 1012 stores a node value “1” indicating the music decryption daemon 156 that is the source of the system call, and a cryptographic entry that is the destination of the data.
  • a device ID-C indicating the device driver 159 and data “processing result” to be mediated are stored.
  • the response notification is a program that receives an application command or data by a system call, performs processing according to the received command and data, and sends a notification of the processing result to the application that is the output source of the system call.
  • Ask 151 It is.
  • the data storage unit 1012 stores identification information indicating a program that has requested notification, identification information indicating an application of a notification destination, a processing result, and the like.
  • the cryptographic entry device driver 159 that has received the handle value “1”, the device ID—C, and the processing result by the system call shown in FIG. 9C releases the exclusive control (details will be described later). ), The response notification including the handle value “1”, the device ID—C and the processing result is output to the normal OS 151, and the handle value “1”, the device ID—C and the processing result are music-decoded via the normal OS 151. Notify the daemon 156 (details will be described later).
  • the secure processing request is a command for requesting mediation of a command or data from a program on the normal memory 111 to a program on the secure memory 113.
  • the data storage unit 1012 stores identification information indicating the program that is the output source of the secure processing request, information indicating the program of the mediation destination, and mediating data and commands.
  • FIG. 9D shows the data structure of the secure processing request output from the music decryption daemon 156 as an example.
  • the data storage unit 1012 includes a node value “1” indicating the music decryption daemon 156 that is the output source of the secure processing request, a device ID—C that indicates the encryption device driver 179 that is the destination of the secure processing request, and a command “ Interrupt notification "is stored.
  • the external processing request is a request for mediation of a command and data from a program on the secure memory 113 to a program on the normal memory 111.
  • the data storage unit 1022 stores identification information indicating the program that is the output source of the secure processing request, identification information indicating the program of the relay destination, and data and commands to be relayed.
  • FIG. 9E shows a data configuration of an external processing request output from the cryptographic device driver 179 as an example.
  • the command section stores an external processing request
  • the data storage section has a device ID-C corresponding to the cryptographic device driver 179 that is the output source of the external processing request, and a music decryption daemon 156 that is the receiving destination.
  • the stored handle value “1” and the mediated command “sleep request” are stored.
  • the sleep request is a command included in the mobile phone 100 that requests a device driver of a device and a program that has requested the device to perform processing to transition to a sleep state.
  • the data storage unit 1012 stores an identification indicating the device driver requesting the sleep request. Information and identification information corresponding to a program requesting a device to perform processing are stored.
  • the interrupt occurrence notification is for notifying the occurrence of an interrupt.
  • the secure application registration request, the registration completion notification, the application return request, the secure application deletion instruction and the deletion completion notification specifically include the application in the normal memory 111 as the music reproduction program 153 and the secure application as the music decryption program.
  • a program that operates in combination with the secure application will be described as a music decryption daemon.
  • step S1001 Normally, when the OS 151 returns to the CPU 102 by the switching process, the command area power of the shared memory 112 is also read out (step S1001).
  • the switching process will be described in detail in the following description of the normal switching device driver 160 and the secure switching device driver 180.
  • the read command is decoded (step S1002). If the decoded command is a registration completion notification, the music decoding daemon 156 is loaded on the normal memory 111 (step S1004), and the loaded address and registration completion notification data are read. It writes the received and included value “1” in the storage unit to the entry 167 of the application management table 166 (step S1005), and outputs the handle value “1” to the music playback program 153.
  • step S1002 If the read command is an external processing request (step S1002), the program corresponding to the identification information indicating the mediation destination included in the data storage is called, and the called program is sent to the data storage of the external processing request.
  • the received information is output (step S1006).
  • step S1002 If the read command is an interrupt occurrence notification (step S1002), the interrupt mask is released by erasing the dummy data written in the interrupt register of the CPU 102 (step S1007). The interrupt mask will be described later in the description related to the secure interrupt handler 181. If the read command is an application return request (step S 1002), the context of the music playback program 153 is restored based on the handle value “1” included in the data storage unit and the application management table 166 (Step S1009).
  • step S1002 If the read command is a deletion completion notification (step S1002), the music decryption daemon 156 corresponding to the handle value “1” included in the data storage unit is deleted from the normal memory 111 (step S1011), and the application management table is displayed. The entry 167 including the handle value “1” is deleted from 166 (step S1012).
  • step S1013 a command from each program on the normal memory 111 is received.
  • Step S1013 a program corresponding to identification information indicating a mediation destination such as a handle value or a device ID written in the data storage is called, and information included in the data storage is output (Ste S1014). For example, if the handle value “1” is included! /, Then the entry 167 including the handle value “1” is selected in the application management table 166, and the music decoding daemon is selected based on the daemon address of the selected entry 167. 156 is called, and if the device ID-C is included, the cryptographic entry device driver 159 is called.
  • the application when the response notification is received, similarly to the case where the system call is received, the application corresponding to the identification information written in the data storage unit. And outputs information included in the data storage unit.
  • the program corresponding to the identification information such as the handle value or the device ID written in the data storage unit and the corresponding program are transited to the sleep state (step S1016).
  • the dormant state is a state in which no operation is performed.
  • the music decryption program 176 receives the secure application registration request including the secure application information and the daemon information from the music decryption program 176 (step S103), and the music reproduction program 153
  • the context is stored in the normal memory 111, the address of the storage destination is written to the application context address, and the encrypted music decryption program 141 read from the secondary storage unit 104 based on the secure application information is written to the shared memory 112 (S Step S1017).
  • the secure application registration request is written on the shared memory 112 (step S1018), and the process proceeds to step S1028.
  • the secure application registration request includes the address of the write destination on the shared memory 112 of the encrypted music decryption program in the data storage unit.
  • step S1013 When receiving the secure application deletion command from the music playback program 153 (step S1013), the received secure application deletion command is written to the shared memory 112 (step S1019).
  • a node value “1” indicating the music decryption program 176 to be deleted is stored in the data storage unit.
  • step S1013 When the secure processing request is received (step S1013), the received secure processing request is written to the shared memory 112 (step S1021). Next, a switching process is performed (step S1028).
  • step S1023 when an interrupt is generated and an interrupt generation notification is received from the interrupt controller 107 (step S1023), the normal interrupt handler 161 is activated (step S1024). Based on the result of the investigation of the cause of the interrupt by the normal interrupt handler 161, the program sleeps and releases the program from sleep (step S1026). Move the process to step S1013.
  • the normal OS 151 and the secure OS 171 may use a dedicated register instead of the shared memory 112 that exchanges various commands via the shared memory 112.
  • the secure OS 171 includes an operating program 172, a debug invalidation program 173, and a decryption program 174.
  • the debug invalidation program 173 is a program that writes dummy data into the register of the debugger IF101 and invalidates the debugger IF101. Note that a switch may be provided between the debugger IF101 and the CPU 102, and the debug disabling program 173 may be configured to disable the debugger IF101 by opening and closing the switch.
  • the decryption program 174 has a decryption key coded in advance, and decrypts the encrypted music decryption program to generate a music decryption program.
  • the operating program 172 executes various programs loaded on the secure memory 113.
  • This is basic software for controlling the program, and is composed of a control program and control data.
  • the control unit data includes a secure application management table 186 as shown in FIG.
  • the secure application management table 186 includes a plurality of entries 187, 188, as shown in FIG. Each entry includes a handle value, a secure application address, and a secure application context address, and corresponds to the secure application loaded on the secure memory 113.
  • the handle value is an identifier assigned to each secure application.
  • the secure application address is an address on the secure memory 113 where the secure application is loaded.
  • the secure application context address is an address on the secure memory 113 where the context of the secure application is stored.
  • the handle value "1" of the entry 187 is an identifier assigned by the operating program 172 to the music decoding program 176.
  • the secure application address “1111EEEE” is an address on the secure memory 113 in which the music decryption program 176 is stored.
  • the secure application context address “11AADDDE” is a secure memory in which the context of the music decryption program 176 is stored. The above address.
  • the control data includes a device ID_B which is identification information corresponding to the secure input / output device driver 178, and a device ID-C which is identification information corresponding to the encryption device driver 179. These are stored on the secure memory 113 in association with the load addresses on the secure memory 113 of the secure input / output device driver 178 and the encryption device driver 179, respectively.
  • the device ID-B and the device ID-C are the same as the device ID-B and the device ID-C normally included in the control data of the OS 151.
  • the secure OS 171 exchanges various commands with the normal OS 151 via the command area of the shared memory 112. In addition, commands are transmitted to and received from each program on the secure memory 113 via the storage area of the operating program 172 on the secure memory 113.
  • the processing performed by the operating program 172 is expressed as the processing performed by the secure OS 171 for convenience of description.
  • the various commands handled by the secure OS 171 have the structure shown in FIG. 9A similarly to the commands handled by the normal OS 151.
  • the commands stored in the command section 1011 include a secure application registration request, registration completion notification, application return request, secure application deletion instruction, deletion completion notification, system call, response notification, secure processing request, external processing request, interrupt Notification of occurrence, etc.
  • the secure application registration request, registration completion notification, application return request, secure absolute deletion instruction, deletion completion notification, secure processing request, external processing request, and interrupt occurrence notification have already been described in the description of the normal OS 151 above. It is on the street.
  • a system call is a request for mediation of data and commands from an application on the secure memory 113 to another program on the secure memory 113. This is a request to the secure OS 171 for notification of the processing result and the like.
  • the operation of the secure OS 171 will be described with reference to the flowchart in FIG.
  • the application is paired with the music reproduction program 153, the secure application with the music decryption program 176, and the secure application.
  • the program that operates in this manner will be described as a music decryption daemon 156.
  • the secure OS 171 is not related to the present invention that performs various kinds of processing other than the processing shown in this flowchart, and thus will not be described here.
  • the secure OS 171 returns to the CPU 102 (step S1041).
  • the secure OS 171 reads and decodes the command in the command area of the shared memory 112 (step S1042), and performs the following processing according to the decoded command.
  • step S1042 If the read command is a secure application registration request (step S1042), the encrypted music decryption program on the shared memory 112 is decrypted by the decryption program 174 to generate a music decryption program 176, which is loaded on the secure memory 113. (Step S104 3). The load address and the handle value “1” are written to the entry 187 of the secure application management table 186 (step S1044). Next, a registration completion notification is stored in the command section, and a registration completion notification in which the handle value “1” is stored in the data storage section is generated and written to the shared memory 112 (step S1046). Next, the process proceeds to a switching process (step S1062).
  • step S1042 If the decrypted command is a secure processing request (step S1042), the program corresponding to the identification information of the destination program stored in the data storage unit is called (step S1047). For example, if the handle value “1” is stored, the music playback program 153 is called, and if the device ID-B is stored, the secure input / output device driver 178 is called. Next, the process moves to step S1052.
  • the read command is a secure application deletion instruction (step S1042)
  • the node value "1" indicating the program to be deleted stored in the data storage unit is extracted, and the extracted handle value is extracted.
  • the music decryption program 176 corresponding to "1" is deleted from the secure memory 113, and then the entry 187 is deleted from the secure application management table 186 (step S1049).
  • step S1051 When the deletion is completed, a deletion completion notification is written to the shared memory 112 (step S1051). At this time, a deletion completion notification is stored in the command part, and a handle value “1” is stored in the data storage part. Next, the process moves to step S1062.
  • the secure OS 171 receives a command from each program on the secure memory 113 (Step S1052).
  • step S1052 If the received command processing is an external processing request (step S1052), the received external processing request is written to the shared memory (step S1053), and the process proceeds to step S1062.
  • step S1054 Upon receiving an interrupt notification from the secure interrupt handler 181 (described later) indicating that an interrupt has occurred in any device, the received interrupt notification is written to the shared memory 112 (step S1054). Then, the process is shifted to step S1062.
  • step S1052 If the received command is a system call (step S1052), the corresponding program is called based on the identification information indicating the destination program stored in the data storage unit (step S1056).
  • step S1052 If the received command return request is an application return request (step S1052), the received application return request is written into the shared memory (step S1061), and the process proceeds to step S1062.
  • the application corresponding to the identification information included in the data storage unit is also called in the case of the response notification.
  • step S1057 when an interrupt occurs and an interrupt occurrence notification is received from the interrupt controller 107 (step S1057), the secure interrupt handler 181 is activated (step S1059), and the process returns to step S1052.
  • the library 152 includes functions commonly used by various programs, and includes, for example, an access function for accessing the memory card 300.
  • the access function is a function that calls the normal input / output device driver 157 and instructs data reading.
  • the music reproduction program 153 is an application that includes various image data to be displayed to the user and reproduces music stored in the memory card 300 in response to the operation of the user.
  • secure application information is information indicating a program for which the music reproduction program 153 requests secure processing.
  • the secure application information is an address on the secondary storage unit 104 where the encrypted music decryption program 141 is stored. is there.
  • the daemon information is information indicating a program that is paired with the program indicated by the secure application information, and specifically is an address on the secondary storage unit 104 where the music decoding daemon 142 is stored.
  • the music decryption program 176 and the music decryption daemon 156 operate in a pair to achieve the decryption processing of the encrypted music data.
  • the music decryption program 176 receives a decryption command from the music playback program 153 via the normal OS 151 and the secure OS 171 and receives a data read step, a content key read step, a decryption step, and music data output as shown in FIG. Through the steps, music data is generated, and in a music data output step, a write destination address of the music data on the notifier 123 is output as a processing result.
  • a process that does not require high security is requested to the music decryption daemon 156.
  • a data read command is output to the music decryption daemon 156.
  • the write destination address of the encrypted music data on the shared memory 112 is received.
  • a decryption command is output to the music decryption daemon 156, and as a processing result, the write destination address of the music data on the buffer 123 is obtained.
  • the music decryption daemon 156 receives a data read command and a decryption command from the music decryption program 176 via the secure OS 171 and the normal OS 151. Also, it receives various commands and data from the normal input / output device driver 157, the secure input / output entry device driver 158, the encryption entry device driver 159, the secure input / output device driver 178, and the encryption device driver 179. Perform various processes based on the received command and data.
  • the processing by the music decryption daemon 156 will be described with reference to the flowchart of FIG. In FIG. 9, all commands and data received by the abbreviated music decryption daemon 156 include a handle value “1” as identification information indicating the music decryption daemon 156 that is the receiving destination. I have.
  • step SO11 Various commands and data are received via the secure OS 171 (step SO11).
  • the received instruction is determined (step S012), and if it is a data read instruction, the access function of the library 152 is called (step SO13).
  • the received processing result is output to the music decoding program 176 in response to an external processing request (step S014).
  • the data storage unit stores the processing result and a node value “1” indicating the receiving destination.
  • the received sleep request is output to the secure input / output entry device driver 158 by a system call to the normal OS 151 (step S012). Step S015).
  • the received device ID-B is stored in the data storage unit as identification information indicating the destination, and the handle value “1” indicating the music decoding daemon 156 itself is identified as the identification information indicating the output source of the system call. Is stored.
  • step S0138 Upon receiving the device ID-B indicating the output source of the command and the interrupt notification (step S012), the received interrupt notification, device ID-B, and music decryption are stored in the secure processing request data storage unit. Stores the value indicating the daemon 156 itself and the dollar value "1" and outputs it to the normal OS. Then, the received interrupt notification is output to the secure input / output device driver 178 (step SO 16).
  • the decryption instruction is output to the encryption entry device driver 159 by a system call (step S017).
  • the received decryption command is output to the cryptographic device driver 179 by the secure processing request.
  • the decryption command, the received device ID_C, and the handle value “1” indicating the music decryption daemon 156 itself are stored in the data storage unit (step SO18).
  • the received sleep request is output to the cryptographic entry device driver 159 by a system call (step S019).
  • the data storage unit stores the received device ID-C, the handle value “1” indicating the music decoding daemon 156 itself, and a sleep request as identification information indicating the reception destination.
  • the received interrupt notification is output to the cryptographic device driver 179 by the secure processing request (step S012).
  • the data storage unit stores the received device ID—C, the interrupt notification, and the handle value “1” indicating the music decryption daemon 156 itself.
  • step S022 Normally, when the device ID-C and the processing result are received from the OS 151, the received processing result is output to the encryption entry device driver 159 by a system call (step S022).
  • the received processing result is output to the music decryption program 176 by the secure processing request (step S023).
  • the normal input / output device driver 157 itself Has device ID_A as identification information indicating the ID.
  • the normal input / output device driver 157 is a program for controlling the normal input / output device 132 included in the input / output unit 116.
  • the normal input / output device driver 157 stores an exclusive flag. When the normal input / output device 132 is operating, the exclusive flag “1” is set, and when not operating, the exclusive flag “0” is set. If the exclusion flag is “1” when the input / output processing instruction is received, an error notification is output indicating that the normal input / output device 132 is operating and cannot receive the processing.
  • the secure input / output device driver 178 and the secure input / output entry device driver 158 have the same identification information and device ID-B in advance.
  • the secure input / output device driver 178 and the secure input / output entry device driver 158 control in a pair, the secure input / output device 133 operates normally.
  • the secure input / output device driver 178 requests the secure input / output processing and obtains the processing result from among the controls of the secure input / output device 133, and the secure input / output entry device driver 158 requires high security. Dormancy and interruption detection.
  • the secure input / output device driver 178 receives a content key read command from the music decryption program 176 via the secure OS 171. Upon receiving the content key readout instruction, it instructs the cryptographic processing device 117 to read out the content key. Next, by outputting an external processing request to the secure OS 171, a sleep request is output to the music decryption daemon 156. At this time, the command data storage unit stores the sleep request, the handle value “1” received from the music decoding program 176 as identification information indicating the reception destination, and secure input / output as identification information indicating the output source of the command. The device driver 178 stores the device ID_B indicating itself.
  • the secure input / output device driver 178 receives the interrupt notification from the music decryption daemon 156 via the secure OS 171, and receives the processing result from the secure input / output device 133. Then, the address at which the content key is stored is obtained. Secure the obtained processing results o
  • the music decoding program 176 is output.
  • the secure input / output entry device driver 158 normally receives a sleep request from the music decoding daemon 156 via the OS 151. When the sleep request is received, the sleep request including the handle value “1” and the device ID-B is output to the data storage unit to the normal OS 151.
  • the cure input / output entry device driver 158 outputs an interrupt notification to the music decoding daemon 156 via the normal OS 151 by a response notification.
  • a “sleep request”, a device ID—B, and a handle value “1” are stored in the data storage unit.
  • the encryption device driver 179 and the encryption entry device driver 159 have a device ID-C as identification information in advance!
  • the cryptographic processing device 117 can operate normally. Among the controls of the cryptographic processing device 117, the cryptographic device driver 179 requests a decryption process and obtains a processing result, and the cryptographic entry device driver 159 performs exclusive control, sleep, and interrupt notification.
  • the encryption entry device driver 159 receives a decryption command from the music decryption daemon 156 by a system call. Upon receiving the decryption instruction, exclusive control is performed using the exclusive flag. That is, if the exclusion flag is “l”, an error notification is output and the following processing is stopped. If the exclusion flag is “0”, the exclusion flag is changed to “1”.
  • a response notification including the received decryption instruction, handle value "1", and the device ID-C of the cryptographic entry device driver 159 itself in the data storage unit is output to the normal OS 151, thereby performing decryption.
  • the command is output to the music decryption daemon 156.
  • a sleep request is received from the music decoding daemon 156 by a system call.
  • a sleep request is output to the normal OS 151.
  • the handle value “1” received in the system call and the device ID C are stored in the data storage part of the sleep request.
  • the sleep is canceled by the normal OS.
  • the sleep is released, and an interrupt notification is output to the music decoding daemon 156 by a response notification.
  • the processing result is received from the music decryption daemon 156 via the normal OS 151.
  • the exclusive control is released and the exclusive flag is returned to "0".
  • the received processing result is output to the music decoding daemon 156.
  • the cryptographic device driver 179 receives a decryption processing command from the music decryption daemon 156 via the secure OS 171 in response to the secure processing request, and requests the cryptographic processing device 117 to decrypt. Next, it outputs to the secure OS 171 the device ID_C of the cryptographic device driver 179 itself, an external process request in which the sleep request is stored in the data storage unit, together with the device value “1” and the sleep request received together with the decryption processing command.
  • an interrupt notification is received from the music decryption daemon 156, and a write destination address on the buffer 123 is received from the cryptographic processing device 117 as a processing result.
  • the processing result is output to the music decryption daemon 156.
  • the normal switching device driver 160 and the secure switching device driver 180 Upon receiving a switching instruction from the normal OS 151 or the secure OS, the normal switching device driver 160 and the secure switching device driver 180 output a switching instruction to the switching control unit 106, and change the right to use the CPU 102 from the normal OS 151 to the secure OS 171 or This is a program to transfer secure OS171 power to normal OS151.
  • the normal switching device driver 160 is called from the normal OS 151 and receives a switching instruction (step S162). Upon receiving the switching instruction, the context of the normal OS 151 is saved on the normal memory 111 (step S163). Next, a switching instruction is output to the switching control unit 106. (Step SI64).
  • the switching control unit 106 After clearing the CPU 102 and the MMU 103, the switching control unit 106 outputs a connection instruction to the memory protection unit 114, and connects the secure memory 113 and the bus 130 (Step S166). Next, the switching control unit 106 calls the secure switching device driver 180 on the secure memory 113 (Step S167).
  • the secure switching device driver 180 When called, the secure switching device driver 180 returns the context of the secure OS 171 to the CPU 102 (step S168).
  • the secure OS 171 invalidates the debugger IF101 by using the debug invalidation program 173 (Step S169).
  • the secure OS 171 enables the debugger IF101 by the debug disabling program 173 (step S176), calls the secure switching device driver 180, and outputs a switching instruction (step S177).
  • the secure switching device driver 180 saves the context of the secure OS 171 (step S178), and outputs a switching instruction to the switching control unit 106.
  • the switching control unit 106 receives the switching instruction and clears the CPU 102 and the MMU 103.
  • step S182 a disconnection instruction is output to the memory protection unit 114, and the secure memory 113 and the bus 130 are disconnected.
  • step S182 the normal switching device driver 160 on the normal memory 111 is called (step S182).
  • the normal switching device driver 160 returns the context of the normal OS 151 to the CPU 102 (step S183).
  • the debugger IF 101 is disabled and enabled by the debug disable program 173 included in the secure OS 171.
  • the normal OS 151 may include a debug disable program.
  • the debug invalidation program may be an independent program loaded on the normal memory 111 and normally managed by the OS 151.
  • the normal OS 151 and the secure OS 171 may each have a debug invalidation program.
  • the debug disabling programmer debugger IF101 included in the normal OS 151 is disabled, and the debug disabling program included in the secure OS 171 enables the debugger IF.
  • the debug disable IF 101 included in the secure OS171 may be disabled and the debug disable IF program included in the normal OS 151 may enable the debugger IF.
  • the normal interrupt handler 161 is called by the normal OS 151 when an interrupt occurs during execution of the normal OS 151 and a program controlled by the normal OS 151. Normally, when called from the OS 151 and receives the interrupt occurrence notification, the interrupt controller 107 is controlled and the factor causing the interrupt is investigated. Next, identification information indicating the device causing the interrupt and the interrupt notification are output to the normal OS 151.
  • the secure interrupt handler 181 is called by the secure OS 171 when an interrupt occurs during the execution of the secure OS 171 and the program controlled by the secure OS 171.
  • the CPU 102 When called from the secure OS 171 and receives an interrupt occurrence notification, the CPU 102 performs an interrupt mask process by writing dummy data to an interrupt detection register of the CPU 102 and outputs an interrupt occurrence notification to the secure OS 171.
  • the input / output unit 116 includes an access unit 131, a normal input / output device 132, It comprises a secure input / output device 133.
  • the access unit 131 is connected to the memory card 300, and inputs and outputs information between the memory card 300 and the normal input / output device 132 and the secure input / output device 133.
  • the normal input / output device 132 reads and writes data from / to the general area 303 of the memory card 300 under the control of the normal input / output device driver 157.
  • a music ID is received as an argument and a read request is received
  • encrypted music data corresponding to the received music ID is read from the general area 303, and the read encrypted music data is written to the shared memory 112.
  • the address on the shared memory 112 to which the encrypted music data is written is output as the processing result.
  • the secure input / output device 133 Under the control of the secure input / output device driver 178, the secure input / output device 133 performs mutual authentication with the secure processing unit 302 of the memory card 300 based on the CPRM mechanism. Only when the mutual authentication is successful, the key is shared, and the writing and reading of data to and from the secure area 306 are performed safely using the shared key.
  • a card error notification indicating that the memory card 300 cannot be accessed is output to the secure input / output device driver 178.
  • the secure input / output device 133 is a device used only when accessing the secure area 306 of the memory card 300, and a program for accessing the secure area 306 of the memory card 300 is limited. Therefore, since it is impossible for a plurality of applications to request processing at the same time, there is no need to perform exclusive control.
  • the cryptographic processing device 117 performs cryptographic processing of various data under the control of the cryptographic device driver 179.
  • an address on the shared memory 112 where the encrypted music data is stored and an address on the secure memory 113 where the content key is stored are received from the encryption device driver 179. Is instructed to decrypt the encrypted music data.
  • the decryption algorithm D1 is applied to the encrypted music data to generate music data, and the generated music data is written to the buffer 123.
  • Write destination address Is output to the encryption device driver 179 as a processing result.
  • the decryption algorithm D1 is for decrypting the cipher text generated by the encryption algorithm E1.
  • the encryption processing device 117 is a device that decrypts various types of encrypted data, and also decrypts encrypted content transmitted from the content distribution server. Therefore, the cryptographic processing device 117 may be requested to perform decryption processing by a plurality of different programs, and exclusive control is required.
  • the CPU 102 includes an instruction fetch unit, an instruction decoder, an arithmetic unit, a program counter, a register, etc., fetches an instruction from a program in the normal memory 111 or the secure memory 113, decodes the fetched instruction, and decodes the decoded instruction. Execute.
  • the MMU 103 realizes a virtual storage function by converting a logical address into a physical address.
  • the debugger IF101 is an interface for connecting the mobile phone 100 and an external debugger.
  • the interrupt controller 107 detects various interrupts and outputs an interrupt occurrence notification to an interrupt detection register of the CPU 102.
  • the switching control unit 106 receives a switching instruction from the normal switching device driver 160 on the normal memory 111 or the secure switching device driver 180 on the secure memory 113, and connects the node 130 and the secure memory 113 by the memory protection unit 114. Disconnect.
  • the detailed operations of the switching control unit 106 and the memory protection unit 114 are the same as those described in the above (a) switching process 1 and (b) switching process 2.
  • the communication unit 121 transmits and receives information between the wireless communication control unit 118 and external devices connected to the mobile phone network 10 and the Internet 20 via the antenna 122.
  • the wireless communication control unit 118 includes a baseband unit, a modulation / demodulation unit, an amplifier, etc. It performs signal processing of various types of information transmitted and received via the communication unit 121 and the antenna 122.
  • the buffer 123 temporarily stores music data.
  • the code processing unit 124 performs a decoding process on the music data stored in the buffer 123 according to an encoding technique such as MP3 and outputs the music data to the DZA conversion unit 126.
  • DZA conversion section 126 converts the music data decoded by code processing section 124 into an analog audio signal, and outputs the analog audio signal to speaker 120.
  • the input unit 108 includes various buttons such as a numeric keypad and an enter button, and accepts these operations by the user.
  • the display unit 109 includes a VRAM and a liquid crystal screen, and displays various screens.
  • Microphone 119 detects the sound, and outputs the detected sound to wireless communication control section 118.
  • Speaker 120 receives the analog audio signal from wireless communication control section 118 and DZA conversion section 126, and outputs audio based on the received audio signal.
  • FIGS. 15 to 35 are flowcharts showing the operation of the mobile phone 100.
  • FIG. 36 to FIG. 40 are sequence diagrams showing transmission and reception of commands between programs in the operation of the mobile phone 100. The operation of the mobile phone 100 will be described using these flowcharts and sequence diagrams.
  • each program in the normal memory 111 and the secure memory 113 communicates with other programs by a system call, a response notification, an external processing request, and a secure processing request.
  • Fig. 15-Fig. 40 and in the following description the description of system calls, response notifications, external processing requests, and secure processing requests is omitted, and each program power is stored in the data storage section of these commands. Describe only data and commands.
  • step S101 receives a button operation by the user through the input unit 108 (step S101). If the accepted operation indicates music playback, the music playback program 153 is started (step S102). If the accepted button operation indicates other processing, other processing is performed (step S103).
  • a music decryption program registration process is performed (step S104).
  • it requests the music decryption program 176 to perform decryption processing (step S106).
  • the generated music data is expanded by a method according to MP3, converted to analog data to generate analog music data, and the generated analog music data is output by the speaker 120. Yes (step S107).
  • Steps S106-108 are repeated until a button operation indicating the end of music playback is received by input unit 108 (step S108).
  • step S108 When the button operation indicating the end of the music reproduction is received (YES in step S108), the music decryption program is deleted (step S109).
  • FIG. 16-17 is a flowchart showing in detail the operation of each program in the music decryption program registration process. This corresponds to the sequence of Step S132 to Step S153 in FIG. The process of registering the music decryption program will be described with reference to the flowchart shown in FIGS. 16-17 and the sequence diagram of FIG.
  • the music reproduction program 153 reads in advance coded daemon information and secure application information (step S131).
  • the secure application registration request and the read demo information and secure application information are output to the normal OS 151 (step S132).
  • the OS 151 saves the context of the music playback program 153 and writes the save destination address to the application context address of the entry 167 of the application management table (step S133).
  • the encrypted music decryption program 141 corresponding to the received secure application information is read from the secondary storage unit 104 and written to the shared memory 112 (step S134).
  • the secure application registration request is written in the command area of the shared memory 112 (step S136), and the process proceeds to the switching process 1 (step S137).
  • the secure OS 171 registers the secure application from the shared memory 112.
  • the recording request is read (step SI 38).
  • the decryption program decrypts the encrypted music decryption program on the shared memory 112 to generate a music decryption program, and writes the generated music decryption program on the secure memory 113 (step S139).
  • a secure memory in which the handle value “1” is set for the music decryption program, “1” is written to the handle value of entry 187 of the secure application management table 186, and the music decryption program 176 is written to the secure application address Write the address on 113 (step S141).
  • step S143 the registration completion notification and the handle value “1” are written into shared memory 112 (step S143), and the process proceeds to switching process 2 (step S144).
  • the OS 151 reads the registration completion notification and the handle value “1” from the shared memory 112 (Step S146).
  • the read-out value "1" is written to the entry 167 of the application management table 166 (step S147).
  • the music decryption daemon 142 is read from the secondary storage unit 104 based on the daemon information, and written on the normal memory 111 (step S149).
  • the write destination address of the music decryption daemon 156 on the normal memory 111 is written to the entry 167 of the application management table 166 (step S151).
  • step S152 the context of the music playback program 153 is returned to the CPU 102 based on the application context address of the entry 167 (step S152), and the received handle value “1” is output to the music playback program 153. Yes (step S153).
  • the music reproduction program 153 writes the received value “1” into the storage area of the music reproduction program 153 itself in the normal memory 111 (step S154).
  • FIGS. 18 to 27 show the operation of each program when the music decryption program 176 decrypts the encrypted music data at the request of the music reproduction program 153. This corresponds to step S193 in FIG. 36—step S347 in FIG.
  • the music reproduction program 153 displays a selection screen including a music list and accepts a user's selection of a music piece (step S191).
  • the song ID indicating the accepted song and the handle value "1" are read (step S192).
  • the argument, the handle value “1”, and the decryption processing instruction are output to the normal OS 151 (step S193).
  • the OS 151 stores the context of the music playback program 153 in the normal memory 111. Then, the address of the storage destination is written to the entry 167 containing the handle value “1” of the application management table 166 (step S197). Next, the received argument, the handle value “1”, and the decoding processing instruction are written in the shared memory 112 (step S198), and the switching processing 1 is performed (step S199).
  • step S199 the secure OS 171 returns from the shared memory 112.
  • the I number, the handle value “1”, and the decryption processing instruction are read (step S201).
  • the music decryption program 176 is started based on the secure application address of the entry 187 including the read-out value “1” (step S202), and the read-out argument and the handle value “1” are read. And the decryption processing instruction to the music decryption program 176 (step S203).
  • the music decryption program 176 receives the argument and the decryption processing instruction from the secure OS 171 and stores the received argument (song ID).
  • the CPU 102 executes the music decoding program 176 (data reading step) (step S204).
  • the music decryption program 176 reads the music ID (step S206), and outputs the data read command, the argument, and the handle value “1” to the secure OS 171 using the read music ID as an argument (step S208).
  • the secure OS 171 receives the data read command, the argument, and the handle value "1" from the music decryption program 176, saves the context of the music decryption program 176 on the secure memory 113, and manages the save destination address in the secure application. Write to entry 187 of table 186 (step S209). Next, the received data read command, argument, and handle value “1” are written in the shared memory 112 (step S211), and the process proceeds to the switching process 2 (step S216).
  • the normal OS 151 reads the data read command, the argument, and the handle value “1” from the shared memory 112 (step S217).
  • the entry 167 including the handle value “1” in the application management table 166 is selected, and the music decryption daemon 156 is started by the demo address included in the selected entry 167 (step S218).
  • the read data read command, the argument, and the handle value “1” are output to the music decryption daemon 156 (step S219).
  • the music decryption daemon 156 receives the data read command, the argument, and the handle value "1".
  • the access function stored in library 152 is called. And outputs the argument and the handle value “1” (step S221).
  • the access function called by the music decryption daemon 156 outputs the read request, the argument, the device ID—A, and the received handle value “1” to the normal OS 151 (step S222).
  • the normal OS 151 outputs the read request, the argument, the device ID—A, and the handle value “1” to the normal input / output device driver 157 corresponding to the received device ID—A (step S223).
  • the normal input / output device driver 157 receives a read request, an argument, and a handle value “1”. Next, it is determined whether or not the force has the exclusive flag of “0” (step S224). If the exclusive flag is “1” (NO in step S224), the normal input / output device driver 157 issues an error notification indicating that the normal input / output device 132 is operating and cannot accept a new read request. Is output.
  • the music decryption daemon 156 receives the error notification via the OS 151 and the access function, and outputs a read request again after a predetermined time has elapsed. Further, the received error notification may be output to the music decryption program 176 via the normal OS 151 and the secure OS 171 to stop the decoding process.
  • step S224 If the exclusive flag is determined to be “0” (YES in step S224), the exclusive flag is changed to “1” (step S227), the received argument is output to the normal input / output device 132, and the data is read. Instruct (step S231).
  • the normal input / output device 132 receives the argument (song ID) and the read request, reads out the encrypted music data 304 corresponding to the received song ID from the general area 303 of the memory card 300, and The writing of the read encrypted music data 304 into the shared memory 112 is started (step S236).
  • the normal I / O device driver 157 When the normal I / O device driver 157 outputs a read request to the normal I / O device 132 (step S231), the normal I / O device driver 157 owns the device ID—A and the received handle value “1” to the normal OS 151. The sleep request including the message is output (step S232).
  • the normal OS 151 Upon receiving the sleep request, the normal OS 151 puts the music decoding daemon 156 corresponding to the handle value “1” and the normal input / output device driver 157 corresponding to the device ID_A into a sleep state (step S233, step S233). S234). Next, executable by task scheduling The CPU 102 is allocated to another active program (step S238).
  • step S239 When the processing in the normal input / output device 132 ends, an interrupt occurs, and the music decoding daemon 156 acquires a processing result (step S239).
  • the process 1 when an interrupt occurs in step S239 will be described later.
  • the processing in step S239 corresponds to the sequence in steps S463-478 in FIG.
  • the music decryption daemon 156 acquires the write destination address of the encrypted music data on the shared memory 112 as the processing result by the normal input / output device 132.
  • the obtained processing result and the handle value “1” are output to the normal OS 151 (step S241).
  • the OS 151 writes the received processing result and the handle value “1” to the shared memory 112 (step S242), and performs switching processing 1 (step S244).
  • the secure OS 171 reads the handle value “1” and the processing result from the shared memory 112 (Step S251). From the secure application management table 186, the entry 187 including the read-out value "1" is selected, and the context of the music decryption program 176 is returned to the CPU 102 by the secure application context address of the entry 187 (step S252). Next, the read processing result and the handle value “1” are output to the music decoding program 176 (step S254).
  • the music decryption program 176 receives the write destination address of the encrypted music data as a processing result, and stores the received write destination address in its own storage area.
  • the CPU 102 executes the music decryption program 176 (content key reading step) (step S256).
  • the music decryption program 176 outputs to the secure OS 171 a system call including the content key read command, the device ID_B, and the handle value “1” indicating the music decryption program 176 itself (step S257).
  • the secure OS 171 receives the content key read command, the device ID—B, and the handle value “1”, and sends the received content key read command to the secure I / O device driver 178 corresponding to the received device ID—B. And device ID—B and handle value “1” are output (step S258).
  • the secure input / output device driver 178 receives the content key read command, the device ID—B and the handle value “1”, and sends the content key read command to the secure input / output device 133. Is output (step S259).
  • the secure input / output device 133 receives the content key read command, and then performs mutual authentication with the secure processing unit 302 of the memory card 300 (step S262).
  • step S263 acquisition of the content key is started (step S266). If the authentication has failed, a card error notification is output, and the acquisition of the content key is stopped (step S264).
  • the music decryption daemon 156 and the music decryption program 176 stop the decryption processing, and the music reproduction program 153 displays a screen notifying that the memory card 300 cannot be read.
  • the secure input / output device driver 178 outputs a sleep request to the secure OS 171, the received node value "1", and the device ID-B indicating the secure input / output device driver 178 itself.
  • the sleep request output here does not request the secure OS 171 to perform sleep processing, but is a command stored in the data storage unit of the external processing request and mediated by the music decoding daemon 156.
  • the secure OS 171 receives the sleep request, the handle value “1”, and the device ID—B from the secure input / output device driver 178, and sends the received sleep request, the handle value “1”, and the device to the shared memory 112. Write ID—B (step S272). Next, the process proceeds to the switching process 2 (step S273).
  • step S273 the normal OS 151 reads out the sleep request, the handle value “1”, and the device ID-B from the shared memory 112 (step S274).
  • the music decryption daemon 156 is started based on the entry 168 including the read handle value “1” (step S276), and the read sleep request, the device ID—B, and the handle value “1” are output (step S277). ).
  • the music decryption daemon 156 normally receives a sleep request, a device ID-B, and a handle value "1" from the OS 151.
  • a system call including the sleep request, the device ID-B, and the handle value “1” is output to the normal OS 151 (step S278).
  • the secure OS 171 outputs the received sleep request, the device ID—B, and the handle value “1” to the secure input / output entry device driver 158 corresponding to the received device ID_B (step S281).
  • the secure input / output entry device driver 158 Upon receiving a sleep request from the music decryption daemon 156 via the normal OS 151, the secure input / output entry device driver 158 sends a sleep request including the device ID-B and the handle value "1" to the normal OS 151. Output (Step S282).
  • the OS 151 receives the sleep request, the device ID—B, and the handle value “1”.
  • the sleep processing is performed to the secure input / output entry device driver 158 corresponding to the received device ID-B and the music decryption daemon 156 corresponding to the received node value “1” (step). S283, step S284).
  • the normal OS 151 performs task scheduling, and allocates a CPU to another program in an executable state (step S286).
  • step S287 The acquisition of the content key by the secure input / output device 133 is completed, and the music decryption program 176 acquires the processing result by the processing 2 (step S287) when an interrupt occurs.
  • Processing 2 when an interrupt occurs in step S287 will be described later. Also, the processing in step S287 corresponds to step S512 in FIG. 38—step S541 in FIG.
  • step S287 the music decryption program 176 acquires the address on the secure memory 113 where the content key is stored as the processing result.
  • the CPU 102 executes the music decoding program 176 (decoding step) (step S291).
  • the music decryption program 176 receives a decryption command, an argument, and a handle value using, as arguments, the address of the secure memory 113 where the content key is stored and the address of the shared memory 112 where the encrypted data is stored. "1" is output to the secure OS 171 (step S292).
  • the secure OS 171 receives the decryption command, the argument, and the handle value "1" from the music decryption program 176. Next, the received decryption instruction, argument, and handle value “1” are written into the shared memory 112 (step S293), and the switching process 2 is performed (step S294).
  • step S294 the normal OS 151 reads the decoding command, the argument, and the node value “1” from the shared memory 112 (step S296).
  • step S296 the music decoding daemon 156 is started, and the read decryption command, argument, and handle value “1” are output to the music decoding daemon 156 (step S2 97).
  • the music decryption daemon 156 normally transmits a decryption instruction, an argument, and a handle value "1" from the OS 151. receive. Upon receiving the decryption command, the received decryption command and arguments and the device ID—C
  • the handle value “1” is output to the normal OS 151 (step S298).
  • the OS 151 receives the decryption command, the argument, the device ID—C and the handle value “1” from the music decryption daemon 156, and sends the received decryption command and the argument to the received device ID—C and the corresponding cryptographic entry device driver 159. Then, the device ID—C and the handle value “1” are output (step S301).
  • the encryption entry device driver 159 receives the argument, the decryption command, the device ID—C, and the handle value “1”, usually via the OS 151. If the exclusive flag is “l” when the decryption instruction is received (NO in step S303), the cryptographic processing device
  • step S304 the music decryption daemon 156 that has received the error notification outputs the decryption command again after a predetermined time has elapsed.
  • step S303 If the exclusive flag is "0" (YES in step S303), the exclusive flag is changed to "1" (step S306), and the received argument, decryption instruction, handle value "1", and device ID— Output C to OS151 (step S307)
  • the OS invokes the music decryption daemon 156 corresponding to the received dollar value “1” and outputs the received decryption instruction, argument, handle value “1”, and device ID_C (step S 308). .
  • the music decryption daemon 156 receives a decryption command, an argument, a handle value “1”, and a device ID—C from the encryption entry device driver 159 via the normal OS 151. Next, the received decryption command, argument, device ID—C, and handle value “1” are output to the normal OS 151 (step S309).
  • the OS 151 receives the decryption command, argument, device ID—the handle value “1” from the music decryption daemon 156, and sends the received decryption command, argument, device ID—C, and handle value “1” to the shared memory 112. Is written (step S312), and the switching process 2 is performed (step S313) o
  • the secure OS 171 reads the decryption command, the argument, the device ID_C, and the handle value "1" from the shared memory 112 (step S314). Reading The encryption device driver 179 is activated based on the extracted device ID_C (step S315), and the read decryption instruction, argument, and handle value “1” are output to the encryption device driver 179 (step S316).
  • the cryptographic device driver 179 receives the decryption command, the argument, the device ID—C, and the handle value "1" from the secure OS 171, outputs the received argument to the cryptographic processing device 117, and instructs the decryption (step S317). .
  • the encryption processing device 117 Upon being instructed by the encryption device driver 179 to decrypt, the encryption processing device 117 reads the content key from the secure memory 113, and uses the read content key to apply the decryption algorithm D1 to the encrypted data on the shared memory 112. To generate music data, and output the generated music data to the buffer 123 (step S318).
  • the cryptographic device driver 179 After instructing the cryptographic processing device 117 to decrypt, the cryptographic device driver 179 transmits the sleep request, the handle value "1" received from the secure OS 171, and the device ID-C indicating the cryptographic device driver 179 itself. Is output to the secure OS 171 (step S321).
  • the sleep request output here is not a request for sleep processing to the secure OS 171, but is a command stored in the data storage of an external processing request and mediated by the music decryption daemon 156.
  • the secure OS 171 receives the sleep request, the handle value “1”, and the device ID—C from the cryptographic device driver 179, and sends the received sleep request, the handle value “1”, and the device ID—C to the shared memory 112. Write (step 3322). Next, switching process 2 is performed (step S323).
  • the normal OS 151 reads the handle value “1”, the device ID_C, and the sleep request from the shared memory 112 (step S326).
  • the music decoding daemon 156 is started based on the read handle value “1” and the application management table 166, and the read sleep request, the handle value “1”, and the device ID—C are output to the music decoding daemon 156. (Step S327).
  • the music decoding daemon 156 normally receives a sleep request, a handle value "1", and a device ID-C from the OS 151.
  • the received sleep request, the device ID—C, and the node value “1” indicating the music decryption daemon 156 itself are output to the normal OS 151 (step S328).
  • Normal OS1 51 outputs the received sleep request, the device ID—C, and the handle value “1” to the encryption entry device driver 159 corresponding to the received device ID_C (step S329).
  • the encryption entry device driver 159 receives the sleep request, the device ID—C, and the handle value “1” from the music decryption daemon 156 via the normal OS 151. Next, the sleep processing and the received handle value “1” and the device ID_C of the encryption entry device driver 159 itself are output to the normal OS 151 (step S332).
  • the OS 151 receives the sleep request, the handle value “1”, and the device ID—C from the encryption entry device driver 159, and puts the music decryption daemon 156 corresponding to the received data and handle value “1” into the sleep state (Ste S333).
  • the encryption entry device driver 159 corresponding to the received device ID_C is put into a sleep state (step S334).
  • task scheduling is performed, and a CPU is allocated to the executable program (step S336).
  • step S337 is described later. Note that step S337i corresponds to step S552 in FIG. 37—step S606 in FIG.
  • the music decryption program 176 acquires a write destination address of the music data on the buffer 123 as a processing result by the encryption processing device 117.
  • the CPU 102 executes the music decoding program 176 (music data output step) (step S338).
  • the music decryption program 176 outputs the processing result, the application return request, and the handle value “1” to the secure OS 171 with the music data write destination address as the processing result (step S339).
  • the secure OS 171 receives the application return request, the processing result, and the handle value "1", and writes the received application return request, the processing result, and the handle value "1" to the shared memory 112 (step S341). .
  • the switching process 2 is performed (step S342).
  • step S342 When the switching process 2 ends (step S342), the normal OS 151 reads out the application return request, the processing result, and the handle value “1” from the shared memory 112 (step S344).
  • the context of the music decryption program 176 is restored based on the entry 167 including the handle value “1” in the application management table 166 (step S346).
  • the read processing result is stored in a music decoding program. Output to 176 (step S347).
  • the interrupt controller 107 detects the occurrence of the interrupt, and outputs an interrupt occurrence notification to the normal OS 151 (step S464). Normally, the OS 151 receives the interrupt occurrence notification and activates the normal interrupt handler 161 based on the interrupt table (Step S466). Then the normal interrupt handler 1
  • An interrupt occurrence notification is output to 61 (step S467).
  • the normal interrupt handler 161 controls the interrupt controller 107 and checks the cause of the interrupt (step S468). Next, the device ID-A corresponding to the normal input / output device causing the interrupt and the interrupt notification are output to the normal OS 151 (step S469).
  • the normal OS 151 receives the interrupt notification and the device ID-A from the normal interrupt handler 161.
  • the sleep state of the received device ID—A and the corresponding normal input / output device driver 157 and the music decoding daemon 156 that has been subjected to the sleep process together with the normal input / output device driver 157 are released (steps S471 and S472), and the CPU 102 is set to the normal state. Assigned to I / O device driver 157.
  • the normal input / output device driver 157 is released from sleep, outputs a result request to the normal input / output device 132 (step S473), and outputs a processing result from the normal input / output device 132 to the encryption memory on the shared memory 112 as a processing result.
  • the destination address of the dani music data is obtained (step S474).
  • the exclusive flag is set to “0” (step S476), and the obtained processing result, the node value “1” received as identification information indicating the output source of the read request, and the normal input / output
  • the device driver 157 outputs the device ID_A indicating itself to the normal OS 151 (step S477), and the normal OS 151 sends the received processing result and the handle value “1” to the music decoding daemon 156 corresponding to the handle value “1”. And the device ID—A are output (step S478).
  • the above-described process 1 when an interrupt occurs indicates an operation when an interrupt occurs during execution of the normal OS 151 or a program in the normal memory 111 managed by the normal OS 151.
  • the operation when an interrupt occurs during the execution of a program managed by the secure OS 171 or the secure OS 171 will be described with reference to the flowchart of FIG.
  • the interrupt controller 107 detects the interrupt and outputs an interrupt notification to the secure OS 171 (step S493).
  • the secure OS 171 receives an interrupt occurrence notification from the interrupt controller 107. Upon receiving the notification of the occurrence of the interrupt, it activates the secure interrupt handler 181 (step S494) and outputs the notification of the occurrence of the interrupt (step S496).
  • the secure interrupt handler 181 receives the interrupt notification, performs an interrupt mask process on the CPU 102 (step S497), and outputs an interrupt notification to the secure OS 171 (step S497).
  • the secure OS 171 receives the interrupt notification from the secure interrupt handler 181, and writes the received interrupt notification to the shared memory 112 (step S499). Next, the secure OS 171 and the normal OS 151 perform the switching process 2 (step S501).
  • step S501 When the switching process 2 is completed (step S501), an interrupt occurrence notification is read from the shared memory 112, and the CPU interrupt mask is released (step S502).
  • step S502 is the same as the processing after step S464 in FIG.
  • step S287 in FIG.
  • step S541 in FIG.
  • the interrupt controller 107 detects the occurrence of the interrupt, and outputs an interrupt occurrence notification to the normal OS 151 (step S513).
  • the OS 151 receives the interrupt occurrence notification from the interrupt controller 107, and activates the normal interrupt handler 161 (Step S514). Next, an interrupt occurrence notification is output to the normal interrupt handler 161 (step S516).
  • the normal interrupt handler 161 receives the notification of the occurrence of the interrupt and investigates the factor causing the interrupt (step S517). It detects that the secure input / output device 133 is generating an interrupt, and outputs the device ID—B corresponding to the secure input / output device 133 and the interrupt notification to the normal OS 151 (step S518).
  • the OS 151 receives the interrupt notification and the device ID-B from the normal interrupt handler 161.
  • the sleep of the secure input / output entry device driver 158 corresponding to the received device ID-B and the music decoding daemon 156 that has been subjected to the sleep process together with the secure input / output entry device driver 158 is released (step S519, step S521). . Allocate CPU 102 to secure input / output entry device driver 158.
  • the secure input / output entry device driver 158 which has been released from sleep, receives the interrupt notification, the handle value "1" received as identification information indicating the output source of the sleep request, and the secure input / output entry device driver 158 itself. And outputs the device ID_B of the OS to the normal OS 151 (step S523).
  • the OS 151 Normally, the OS 151 outputs the received interrupt notification, the handle value “1”, and the device ID-B to the music decryption daemon 156 corresponding to the received dollar value “1” (step S524).
  • the music decryption daemon 156 receives the interrupt notification, the handle value "1", and the device ID-B.
  • the received interrupt notification, the device ID-B, and the middle value “1” indicating the music decryption daemon 156 itself are output to the normal OS 151 (step S527).
  • the OS 151 receives the interrupt notification, the device ID—B, and the handle value “1” from the music decryption daemon 156.
  • the received interrupt notification and device ID—B and handle value “1” are shared.
  • the data is written to the memory 112 (step S529), and the process proceeds to the switching process 1 (step S531).
  • the secure OS 171 reads the interrupt notification, the device ID-B, and the handle value "1" from the shared memory 112 (step S532), and based on the read device ID-B.
  • the secure input / output device driver 178 is started (step S533).
  • the read interrupt notification, the device ID—B, and the handle value “1” are output to the secure input / output device driver 178 (step S534).
  • the secure input / output device driver 178 receives the interrupt notification, the device ID—B, and the handle value “1”, and requests a processing result from the secure input / output device 133 (Step S536). Then, a content key storage address on the secure memory 113 is received as the processing result (step S537). A response notification including the received processing result, the handle value “1”, and the device ID—B is output to the secure OS 171 (step S539)
  • the secure OS 171 outputs the received processing result, the handle value "1", and the device ID-B to the music decryption program 176 corresponding to the received dollar value "1" (Step S541).
  • step S337 in FIG. Processing 3 when an interrupt occurs corresponds to the sequence from step S552 in FIG. 40 to step S606 in FIG.
  • the encryption processing device 117 Upon completion of the decryption of the encrypted music data, the encryption processing device 117 generates an interrupt (step S552).
  • the interrupt controller 107 detects the occurrence of the interrupt and normally issues an interrupt occurrence notification to the OS 151. (Step S553).
  • the OS 151 receives the interrupt occurrence notification from the interrupt controller 107 and activates the normal interrupt handler 161 (Step S556).
  • An interrupt notification is output to the normal interrupt handler 161 (step S557).
  • the normal interrupt handler 161 Upon receiving the notification of the occurrence of the interrupt, the normal interrupt handler 161 investigates the cause of the interrupt (step S558). It detects that the cryptographic processing device 117 has generated an interrupt, and outputs a device ID—C and an interrupt notification to the normal OS 151 (step S561).
  • the OS 151 receives the interrupt notification and the device ID-C from the normal interrupt handler 161. Releases the sleep of the encryption device driver 159 corresponding to the received device ID-C and the music decryption daemon 156 that has been subjected to the sleep process together with the encryption entry device driver 159 (steps S562 and S563), and the encryption entry device driver. Assign CPU 102 to 159.
  • step S564 the OS 151 receives the interrupt notification, the handle value “1”, and the device ID—C, and sends the interrupt notification, the handle value “1”, and the device ID_C to the music decryption daemon 156 corresponding to the received handle value “1”. Is output (step S567).
  • the music decryption daemon 156 receives the device ID-C and the interrupt notification from the encryption entry device driver 159 via the normal OS 151. Next, the received interrupt notification and device ID-C and the handle value “1” corresponding to the music decryption daemon 156 itself are output to the normal OS 151 (step S568).
  • the OS 151 receives the interrupt notification, the device ID—C, and the handle value “1” from the music decryption daemon 156, and sends the received interrupt notification, the device ID—C, and the handle value “1” to the shared memory 112. Write (step S571).
  • step S572 the normal OS 151 and the secure OS 171 perform the switching process 1 (step S572).
  • the secure OS 171 reads the interrupt notification, the device ID C, and the handle value “1” from the shared memory 112 (Step S576).
  • Read device ID Start the cryptographic device driver 179 based on C, and output the read interrupt notification, the device ID_C, and the handle value “1” (step S577).
  • the cryptographic device driver 179 receives the interrupt notification and the device ID-C handle value "1", and requests the cryptographic processing device 117 for the processing result (step S578). From the encryption processing device 117, a write destination address of music data on the buffer 123 is obtained as a processing result (step S579).
  • the cryptographic device driver 179 outputs the obtained processing result, the received handle value “1”, and the device ID—C indicating the cryptographic device driver 179 itself to the secure OS 171 (step S582).
  • the secure OS 171 receives the processing result, the handle value “1”, and the device ID—C from the cryptographic device driver 179, and stores the received processing result, the handle value “1”, and the device ID—in the shared memory 112. (Step S583).
  • step S584 the secure OS 171 and the normal OS 151 perform the switching process 2 (step S584).
  • the normal OS 151 reads the handle value “1”, the processing result, and the device ID—C from the shared memory 112 (Step S586).
  • the music decryption daemon 156 is activated based on the read handle value “1”, and the read processing result, the handle value “1”, and the device ID_C are output to the music decryption daemon 156 (step S587).
  • the music decryption daemon 156 normally receives the processing result, the handle value “1”, and the device ID—C from the OS 151.
  • a system call including the received processing result, the device ID—C, and the node value “1” indicating the music decryption daemon 156 itself is output to the normal OS 151 (step S588).
  • the OS 151 Normally, the OS 151 outputs the received processing result, the device ID-C, and the handle value "1" to the device driver 159 corresponding to the device ID-C (step S589).
  • the encryption entry device driver 159 receives the processing result, the device ID—C, and the handle value “1” from the music decryption daemon 156 via the normal OS 151, and changes the exclusive flag to “0” (step S592). Next, the cipher entry device driver 159 sends the received processing result to the music decryption daemon 156 by notifying the response to the normal OS 151 (step S596). The result, the handle value “1” and the device ID—C are output (step S597).
  • the music decryption daemon 156 receives the processing result, the handle value "1", and the device ID-C from the music decryption daemon 156 via the secure OS 171. Next, the received processing result and the handle value “1” are output to the normal OS 151 (step S598).
  • the OS 151 receives the processing result and the handle value “1” from the music decryption daemon 156, and writes the received processing result and the handle value “1” to the shared memory 112 (Step S601).
  • step S602 the normal OS 151 and the secure OS 171 perform the switching process 1 (step S602).
  • the secure OS 171 reads the handle value “1” and the treatment result from the shared memory 112 (Step S603).
  • the context of the music decryption program 176 is restored based on the entry 187 containing the handle value “1” on the secure application management table 186 (Step S604), and the read processing result is output to the music decryption program 176 (Step S604). S606).
  • the deletion process of the music decryption program will be described with reference to the flowchart shown in FIG. This is a detail of step S109 in FIG. Also, the music decryption program deletion process corresponds to the sequence of steps S611-618 in FIG.
  • the music decryption program 176 outputs the secure application deletion command and the handle value “1” to the normal OS 151 (step S611).
  • the OS 151 receives the handle value "1" and the secure application deletion instruction from the music decryption program 176, and writes the received nurse value "1" and the secure application deletion instruction to the shared memory 112 (Step S). 612).
  • the normal OS 151 and the secure OS 171 perform the switching process 1 (step S613).
  • the secure OS 171 reads the secure application deletion instruction and the handle value “1” from the shared memory 112 (Step S614).
  • the music decryption program 176 is deleted from the secure memory 113 based on the secure application address of the entry including the handle value “1” on the secure application management table 186 (step S616), and the entry 187 including the handle value “1” is deleted. It is deleted from the secure application management table 186 (step S617).
  • step S619 the secure OS 171 and the normal OS 151 perform the switching process 2 (step S619).
  • the normal OS 151 reads the deletion process completion notification and the handle value “1” from the shared memory 112 (Step S621).
  • the music decryption daemon 156 is deleted from the normal memory 111 based on the handle value “1” and the application management table 166 (step S622).
  • a deletion completion notification is output to the music reproduction program 153 (step S623), and the entry 167 including the handle value “1” is deleted from the application management table 166 (step S624).
  • the music reproduction program 153 which is usually dictated on the memory 111 and executed is a process to be protected, specifically, the encrypted music data.
  • the music decryption program 176 loaded on the secure memory 113 and executed.
  • the music decryption program 176 and the music decryption daemon 156 on the normal memory 111 operate as a pair, and among the series of processes related to decryption of encrypted music data, the processes to be protected include music decryption.
  • the processing that is shared by the program 176 and does not need to be protected is handled by the music decryption daemon 156.
  • the program size of the music decoding program 176 itself is reduced, and the data and variables held by the music decoding program 176 are also reduced.
  • the music decryption daemon 156 uses the functions stored in the library on the normal memory 111. Therefore, there is no need to have a library on the secure memory 113. [0255] Therefore, in a series of decryption processes by the music decryption program 176 and the music decryption daemon 156, the capacity of the secure memory 113 to be secured is reduced, and the load on the protection mechanism that protects the secure memory 113 is reduced. be able to.
  • the cryptographic entry device driver 159 is loaded and executed.
  • the OS 151 normally causes the encryption entry device driver 159 to transition to the execution state by a system call from the music decryption daemon 156.
  • the encryption entry device driver 159 performs exclusive control and calls the music decryption daemon 156.
  • the music decryption daemon 156 calls the encryption device driver 179 via the normal OS 151 and the secure OS 171.
  • the secure OS 171 causes the cryptographic device driver 179 to transition to the execution state.
  • the encryption device driver 179 outputs a sleep request.
  • the encryption entry device driver 159 requests the normal OS 151 to perform a sleep process. To a dormant state.
  • the processing by the cryptographic processing device 117 ends, an interrupt occurs, and the OS 151 normally releases the sleep state of the music decryption daemon 156, and makes a transition to the execution state.
  • the encryption entry device driver 159 outputs an interrupt notification, and the music decryption daemon 156 outputs an interrupt notification to the encryption device driver 179 via the normal OS 151 and the secure OS 171.
  • the OS 151 allocates the CPU 102 to the cryptographic device driver 179 and sets the CPU 102 to the execution state.
  • the cryptographic device driver 179 and the cryptographic entry device driver 159 make a state transition correspondingly. Therefore, the normal OS 151 can manage the use state of the cryptographic processing device 117 managed by the secure OS 171 via the cryptographic entry device driver 159.
  • the OS 151 can monitor and control the operation of the secure input / output device 133.
  • FIG. 43 shows an example of data stored in the normal memory 111. This shows the state in the normal memory 111 immediately after the activation of the mobile phone 100.
  • the boot program 162 is stored in advance in a ROM constituting the normal memory 111, and the boot program 162 is a program that is read and executed by an activation unit included in the mobile phone 100, although not specifically illustrated. It is.
  • the activation unit reads the boot program 162 from the normal memory 111 immediately after the power of the mobile phone 100 is turned on, and operates according to the read boot program 162.
  • the boot program will be described by the operation of the boot unit according to the boot program 162.
  • the boot program 162 clears the register of the CPU 102 and the MMU 103, and outputs an initialization request to the switching control unit 106.
  • the initialization control unit 106 receives from the switching control unit 106 an initialization completion notification notifying that the initialization of the program on the secure memory 113 has been completed. And initialize.
  • the mobile phone 100 is initialized by the switching control unit 106 and the boot program at the time of startup. The operation at the time of activation of the mobile phone 100 will be described using a flowchart shown in FIG.
  • step S651 When the power of the mobile phone 100 is turned on and power supply is started (step S651), the activation unit activates the boot program 162 (step S652).
  • Boot program 16 In step 2 initialization is performed by first clearing the registers of the CPU 102 and the MMU 103 (step S653). Next, an initialization request is output to the switching control unit 106 (step S654).
  • the switching control unit 106 Upon receiving the initialization request, the switching control unit 106 reads the encrypted secure OS from the secondary storage unit 104 (Step S656).
  • the secure OS is generated by decrypting the read encrypted OS (step S657).
  • the bus 130 and the secure memory 113 are connected by the memory protection unit 114 (step S658).
  • the generated secure OS is written into the secure memory 113 and initialized (step S659).
  • the secure switching device driver is read from the secondary storage unit 104 and loaded on the secure memory 113 (step S661).
  • step S662 the secure memory 113 and the bus 130 are disconnected by the memory protection unit 114 (step S662), and an initialization completion notification is output to the boot program 162 (step S663).
  • the boot program 162 receives the initialization completion notification from the switching control unit 106, and then loads programs such as the normal OS 151 and the normal switching device driver 160 onto the normal memory and initializes them (Step S664).
  • the encryption OS and the secure switching device driver are described as being stored on the secondary storage unit 104. Even if they are stored on an external recording medium or the like. Good.
  • the normal input / output device driver 157, the secure input / output entry device driver 158, and the encryption entry device driver 159 are programs resident on the normal memory 111 under the control of the normal OS 151.
  • the secure input / output device driver 178 and the encryption device driver 179 are programs resident on the secure memory 113 under the control of the secure OS 171.
  • the boot program 162 loads the normal OS 151, the normal switching device driver 160, and the like onto the normal memory 111, and activates the normal OS 151 when initialization is completed.
  • the normal OS 151 When the normal OS 151 starts up, it first searches for a program loaded on the normal memory 111, and determines whether the normal input / output device driver 157, the secure input / output entry device driver 158, and the encryption entry device driver 159 are loaded. Judge and load If not, the data is read from the secondary storage unit 104 and loaded.
  • the secure input / output device driver 178 and the cryptographic device driver 179 are also stored on the secure memory 113 by the secure OS 171. Loaded. Since this operation by the normal OS 151 and the secure OS 171 is similar to the music decryption program registration process described above, a brief description will be given here. It is assumed that the secondary storage unit 104 stores in advance each device driver and an encrypted device driver generated by encrypting the entry device driver.
  • the normal OS 151 When it is determined that the secure input / output entry device driver has not been loaded, the normal OS 151 reads the secure input / output entry device driver from the secondary storage unit 104 and writes it to the normal memory 111.
  • the write destination address and the secure input / output entry device driver 158 are stored in association with each other.
  • a device driver registration request instructing the device driver mode and a device ID-B indicating a secure input / output device driver are written in the shared memory 112.
  • a switching instruction is output to the normal switching device driver 160.
  • the switching process ends, and the secure OS 171 returns to the CPU 102.
  • a request for registration of the driver and the device ID-B are read.
  • the write destination address and the device ID_B are stored in association with each other.
  • the normal OS 151 reads out the notification of the completion of the driver registration from the shared memory 112.
  • the encryption entry device driver is similarly loaded.
  • the secure OS 171 includes the MMU control program 184 as shown in FIG.
  • the MMU control program 184 is executed by the MMU 103
  • the program is a program that converts a physical address and a logical address of the secure memory 113, the shared memory 112, and the secondary storage unit 104 into a virtual storage space.
  • FIG. 46 shows an example of a virtual storage space realized by the MMU control program 184. As shown in FIG. 45, it is assumed that a music decryption program 176 and a communication key generation program 185 are loaded on the secure memory 113. The music decryption program 176 and the communication key generation program 185 are secure applications.
  • the music decryption program 176 and the communication key generation program 185 are loaded in the virtual space 201 and the virtual space 204, respectively.
  • Each program is individually assigned an ordinary shared space 202 and an ordinary shared space 206.
  • the normal shared space 202 and the normal shared space 206 are virtual spaces that each program shares with a program on the normal memory 111.
  • the music decryption program 176 cannot access the virtual space 204 and the normal shared space 206. Further, the communication key generation program 185 cannot access the virtual space 201 and the normal shared space 202.
  • the secure shared space 207 contains a music decryption program 176 and a communication key generation program 185! It is a virtual space that can be accessed by the slip force, but cannot be accessed by the program power that normally operates under the control of the OS 151.
  • the secure OS 171 is loaded in the virtual space 208.
  • the secure OS 171 can access the virtual spaces 201 and 204, but cannot access the virtual space 208 from the music decryption program 176 and the communication key generation program 185.
  • the MMU control program 184 assigns a separate virtual space to each application and performs control so that they cannot access each other.
  • the MMU control program 184 implements the above-described virtual storage space on the secure memory 113, the shared memory 112, and the secondary storage unit 104.
  • the MMU control program 184 includes an encryption processing program, and when data stored on the secure memory 113 is paged out to the secondary storage unit 104, the data is encrypted and the secondary storage is performed. When page-in is performed from the unit 104 to the secure memory 113, the page may be decrypted.
  • the music decryption program 176 and the communication key generation program 185 Even if you can access each other in the shared space.
  • the music playback program 153b is loaded on the normal memory 111 in place of the music playback program 153.
  • the music reproduction program 153b includes an external processing manager 156b, and the external processing manager 156b, like the above-described music decryption demo 156, needs to be protected in the decryption processing of the encrypted music data. Share no processing. It also inputs and outputs various information and commands between the music decryption program 176 and the normal OS 151.
  • each entry of the application management table 166 is composed of a handle value and an application context address.
  • the OS 151 receives the command including the handle value “1” as the identification information indicating the receiving destination, the OS 151 restores the context of the music reproduction program 153 based on the application management table 166, and sends the CPU 102 to the thread of the external processing manager. Assign.
  • the music reproduction program 153 since the music reproduction program 153 includes the external processing manager 156b, it is not necessary to load the music decryption daemon 156 into the normal memory when registering the music decryption program.
  • the registration process described in the first embodiment can be shortened.
  • the secure input / output entry device driver 158 and the secure input / output device driver 178 are identified by the same identification information device ID—B, but may be identified by different identification information. good. The same applies to the encryption entry device driver 159 and the encryption device driver 179! /.
  • the normal OS 151 and the secure OS 171 each have a secure device driver management table 231 shown in FIG. 48 in their respective storage areas as control data.
  • the secure device driver management table 231 shown in FIG. 48 includes two secure device driver management information 232 and 234. Each secure device driver management information is stored in the entry device. And a secure device driver identifier.
  • the secure device driver identifier is identification information indicating a device driver that controls a device managed by the secure OS 171.
  • An entry device driver identifier is a program on the normal memory 111 that operates in combination with the device driver. Is the identification information indicating Specifically, the secure device driver management information 232 includes a device ID_B, which is information for identifying the secure input / output entry device driver 158, and a secure input / output device driver operating in combination with the secure input / output entry device driver 158. It consists of “100” which is information for identifying 178.
  • the secure device driver management information 234 includes the identification information device ID-C indicating the encryption entry device driver 159, and the identification information “101” indicating the encryption device driver 179 that operates in combination with the encryption entry device driver 159. And
  • the secure device driver management table 231 is generated when the normal OS 151 and the secure OS 171 are started.
  • the normal OS 151 loads the secure input / output entry device driver onto the normal memory 111
  • the secure input / output The device ID-B which is the identification information indicating the entry device driver, is written in the shared memory 112, and the process proceeds to the switching process.
  • the secure OS 171 reads out the device ID-B from the shared memory 112, then reads out the encrypted device driver from the secondary storage unit 104, decrypts it, and decrypts it on the secure memory 113.
  • the secure device driver management information 232 including the identification information “100” indicating the loaded secure input / output device driver and the received device ID—B is generated and written on the secure memory 113.
  • the identification information “100” is written into the shared memory 112, and the process proceeds to the switching process.
  • the normal OS 151 reads the identification information "100" from the shared memory 112, and uses the read identification information "100" and the device ID-B indicating the secure input / output entry device driver 158.
  • the secure device driver management information is generated and written into the normal memory 111.
  • the secure device driver management table 231 generated as described above, the secure input / output entry device driver 158 and the cryptographic entry device driver 158 are used. No. 159 is managed.
  • the secure OS 171 uses the secure device driver management table 231 to manage the secure input / output device driver 178 and the encryption device driver 179.
  • the secure OS 171 includes the debug invalidation program, but the secure switching device driver 180 may have this function.
  • the secure switching device driver 180 each time the secure switching device driver 180 is called from the switching control unit 106, the secure switching device driver 180 first invalidates the debugger IF101, and then restores the context of the secure OS 171.
  • the switching control unit 106 instead of the program on the secure memory 113, the switching control unit 106
  • F101 may be disabled and enabled.
  • the normal input / output device driver 157 and the cryptographic entry device driver 159 perform exclusive control using the exclusive flag.
  • the normal input / output device driver 157 and the encryption entry device driver 159 have a QUEUE for storing the received processing request, and upon receiving the processing request, instead of checking the exclusive flag, Store the received processing request in QUEUE.
  • the normal input / output device driver 157 acquires the processing result after the normal input / output device 132 finishes processing. Next, the next processing request is read out and output to the normal input / output device 132.
  • the cryptographic entry device driver 159 receives the processing result, and processes the received processing result. When output, the next processing request is read from QUEUE. The read processing request is output to the encryption device driver 179.
  • a buffer area dedicated to the cryptographic entry device driver 159 may be provided, and the received processing request and the priority of the received processing request may be written in the buffer area in association with each other.
  • the cryptographic device driver 179 reads a processing request with a high priority and outputs it to the cryptographic processing device 117.
  • the secure switching device driver 180 is the force that saves and restores the context of the secure OS 171.
  • S is the normal switching device driver: L
  • the secure OS 171 outputs a switching instruction to the switching control unit 106.
  • the switching control unit 106 outputs a disconnection instruction to the memory protection unit 114, and disconnects the secure memory 113 and the bus 130.
  • the normal switching device driver 160 is called.
  • the normal switching device driver 160 saves the context of the secure OS 171 including the register of the CPU 102 and the contents of the MMU 103 in the normal memory 111, clears the CPU 102 and the MMU 103, and restores the context of the normal OS 151.
  • the normal switching device driver 160 In the switching process 1 from the normal OS 151 to the secure OS 171, upon receiving a switching instruction from the normal OS 151, the normal switching device driver 160 saves the context of the normal OS 151 and clears the CPU 102 and the MMU 103. Next, the context of the secure OS 171 is restored, and a switching instruction is output to the switching control unit 106.
  • the normal switching device driver 160 on the normal memory 111 saves and restores the context of the secure OS 171, thereby eliminating the need for the secure switching device driver 180 on the secure memory 113. Therefore, the capacity of the secure memory 113 can be reduced.
  • the mobile phone 100 forms a virtual storage space with the MMU 103.
  • a configuration that does not use a virtual storage space may be used.
  • the data and programs stored in each memory are managed by physical addresses.
  • the secure switching device driver 180 restores the start address of the secure OS 171 to the CPU 102 and activates the secure OS 171 from the beginning.
  • the mobile phone 100 includes the normal OS 151 loaded on the normal memory 111 and the secure OS 171 loaded and executed on the secure memory 113. ! /, RU 1S Normally equipped with OS 151.
  • the boot program 162 is first activated after the power is turned on. After initializing the CPU 102 and the MMU 103, the boot program 162 outputs an initialization request to the switching control unit 106, and the switching control unit 106 loads the secure OS 171 and the secure switching device driver 180 onto the secure memory 113. .
  • Secure OS 171 load Various programs are loaded on the secure memory 113 and the normal memory 111.
  • Each program in the normal memory 111 outputs all commands including the system call to the normal switching device driver 160 in place of the normal OS 151.
  • the normal switching device driver 160 When receiving the command from the program on the normal memory 111, the normal switching device driver 160 writes the received command into a predetermined storage area and performs a switching process. When the OS 171 returns to the CPU 102, the command is read from a predetermined storage area.
  • the configuration may not include the secure OS 171.
  • the security switching device driver 180 or the switching control unit 106 has a debugger disabling program.
  • Each program on the secure memory 113 outputs all commands including the system call to the secure switching device driver 180.
  • the secure switching device driver 180 writes the received command in the command area on the shared memory 112, and outputs a switching instruction to the switching control unit 106.
  • the OS 151 reads a command output from a program on the secure memory 113 from the command area of the shared memory 112.
  • the normal OS 151 may control each program on the normal memory 111 and the secure memory 113.
  • the switching control unit 106 and the memory protection unit 114 disconnect the secure memory 113 and the bus 130 so that programs and data on the secure memory 113 can be transferred to an external device. Protect your access.
  • the data in the secure memory 113 may be protected by encrypting and decrypting the data in the secure memory 113.
  • the switching control unit 106 instructs the memory protection unit 114 to perform encryption or decryption instead of the connection instruction or the disconnection instruction.
  • the memory protection unit 114 encrypts or decrypts data in the secure memory 113 according to an instruction from the switching control unit 106.
  • only the code portion, only the data portion, or only the stack portion of the music reproduction program 153 may be encrypted if necessary, instead of all the data in the secure memory 113.
  • the normal OS 151 manages the application management table 166, and uses the application management table 166 to execute a program (for example, the music decryption daemon 156) corresponding to the relevant application and the secure application. ) Is calling.
  • a program for example, the music decryption daemon 1566 corresponding to the relevant application and the secure application.
  • the configuration is provided with a program that manages the application management table 166 and calls the program separately from the normal OS 151. Also good. This program is called a daemon control program.
  • each application and the program including the music decryption daemon 156 output a secure processing request to the daemon control program instead of the normal OS 151.
  • the daemon control program writes the received secure processing request in the shared memory 112, and outputs a switching instruction to the normal switching device driver 160.
  • the mobile phone 100 has been described as one embodiment of the present invention, but may be an information processing apparatus having the same function, for example, a personal computer.
  • the normal memory 111 and the secure memory 113 include a RAM and a hard disk.
  • the secure OS 171 and the music decryption program 176 may be encrypted and stored in advance in the hard disk portion of the secure memory 113 before being stored in the secondary storage unit 104. .
  • Embodiment 2 of the present invention will be described below.
  • FIG. 49 shows a usage example of the mobile phone 400 according to Embodiment 2 of the present invention.
  • the 400 is connected to the revocation list issuing device 250 via the base station 15, the mobile phone network 10, and the Internet 20.
  • the revocation list issuing device 250 manages information related to the revoked programs, generates a revocation list indicating these programs, and sends the generated revocation list to the mobile phone 400 via the Internet 20. Send.
  • the mobile phone 400 receives the revocation list from the revocation list issuing device 250, and determines whether or not the stored program is invalid based on the received revocation list. .
  • the revocation list issuing device 250 includes a communication unit 251, a signature generation unit 252, a key storage unit 253, a hash generation unit 254, a control unit 257, an information storage unit 260, an input unit 262, and a display unit. It consists of 263.
  • the revocation list issuing device 250 is, specifically, a computer system including a microprocessor, a RAM, and a ROM. A computer program is stored in the RAM and ROM, and the revocation list issuing device 250 achieves its function by the microprocessor operating according to the computer program.
  • the information storage unit 260 stores an OS revocation list 266 and an application revocation list 276, as shown in FIG.
  • the OS invalidation list 266 is composed of a publisher ID 267, a list ID 268, and invalidation IDs 269, 270, 27 1.
  • the issuer ID 267 indicates the issuer of the OS revocation list, and includes, for example, the device ID of the revocation list issuance device 250 and the identification information of the administrator of the revocation list issuance device 250.
  • the list ID 268 is information indicating the old and new of the OS revocation list 266.
  • "20041015" which is the creation of the OS revocation list 266, is the list ID 268.
  • Revocation IDs 269, 270, 271 ⁇ ⁇ ⁇ are the identification information of the revoked operating system.
  • the application invalidation list 276 includes a publisher ID 277, a registration ID 278, and invalidation IDs 279, 280, 281 '.
  • the issuer ID 277 is information indicating the issuer of the application revocation list, and includes, for example, the device ID of the revocation list issuing device 250, the identification information of the administrator of the revocation list issuing device 250, and the like.
  • the list ID 278 is information indicating the new and old versions of the application revocation list 276.
  • "20041009” which is the creation of the application invalidation list 276, is used as the list ID 278!
  • the revocation IDs 279, 280, 281 ⁇ ⁇ ⁇ are the identification information of the revoked application
  • the communication unit 251 is connected to the Internet 20, and transmits and receives information between the control unit 257 and an external device connected to the Internet 20.
  • the external device is the mobile phone 400.
  • the hash value generation unit 254 receives the OS revocation list 266 and the hash generation instruction from the control unit 257. Further, it receives the application revocation list 276 and a hash generation instruction.
  • the received OS revocation list 266 or application revocation list 276 is substituted for the nosh function, and 160-byte OS digest data or application digest data is generated.
  • SHA-1 is used as an example for the Nosh function. No.
  • the hash function SHA-1 is a known technique, and a description thereof will be omitted. You can also use other hash functions!
  • the generated OS digest data or application digest data is output to the control unit 257.
  • the key storage unit 253 stores an issuing device private key unique to the revocation list issuing device 250 and an issuing device public key corresponding to the issuing device private key.
  • the signature generation unit 252 receives the OS digest data or the application digest data from the control unit 257, and is instructed to generate a signature.
  • the issuing device private key is read out from the key storage unit 253, and a signature generation algorithm S is added to the received OS digest data using the read issuing device private key. Then, signature data is generated, and the generated signature data is output to the control unit 257.
  • the signature generation algorithm S uses, for example, an oval DSA signature, an RSA (RivestShamirAdleman) signature, or the like.
  • signature data is generated in the same manner and output to the control unit 257.
  • the control unit 257 receives a list request for requesting transmission of the latest OS revocation list and application revocation list from the mobile phone 400 via the communication unit 251 and the Internet 20.
  • the OS revocation list 266 is read from the information storage unit 260, the read OS revocation list 266 is output to the hash generation unit 254, and a hash and hash generation instruction is output.
  • the OS digest data is received from the NO / SH generation unit 254.
  • Receive The generated OS digest data is output to the signature generation unit 252 to instruct signature generation.
  • the signature data is received from the signature generation unit 252.
  • the received signature data is added to the OS revocation list 266 to generate a signed OS revocation list.
  • the application revocation list 276 is instructed to the hash value generation unit 254 and the signature generation unit 252 to generate signature data.
  • the generated signature is attached to the mobile phone 400 via the communication unit 251 and the Internet 20.
  • the control unit 257 receives various instructions and data from the operator via the input unit 262, and operates according to the received instructions.
  • the input unit 262 receives an instruction and data input by the operator of the revocation list issuing device 250, and outputs the received instruction and data to the control unit 257.
  • the display unit 263 displays various screens according to an instruction from the control unit 257.
  • the hardware configuration of the mobile phone 400 is almost the same as the configuration of the mobile phone 100 shown in FIG. 2, and includes a debugger IF, CPU, MMU, secondary storage unit, switching control unit 106, interrupt controller, input unit, display unit, Normal memory, shared memory, secure memory 413, memory protection unit 414, input / output unit, cryptographic processing device, wireless communication control unit, microphone, speaker, communication unit, buffer, code processing unit, DZA conversion unit .
  • each unit other than the secure memory 413 and the memory protection unit 414 is the same as that of the mobile phone 100, a detailed description is omitted, and only a portion different from the mobile phone 100 will be described here.
  • the secure memory 413 stores various programs such as a music decryption program 446 and a secure OS 441.
  • the music decoding program 446 includes a procedure for decoding encrypted music data, and the description of this procedure is omitted.
  • the music decryption program 446 includes an application ID 447 and an invalid flag 448 in a header portion.
  • the application ID 447 is identification information unique to the music decryption program 446.
  • the invalid flag 448 is a flag indicating whether or not the music decryption program 446 has been disabled, and the invalid flag “1” indicates that the music decryption program 446 has been disabled.
  • the flag “0” indicates that it has not been invalidated.
  • the secure OS 441 is the software that executes the same processing as the secure OS 171 of the first embodiment, the description of the operation of the secure OS 441 is omitted. However, when starting each application on the secure memory 413 or returning the CPU to the secure memory 413, the secure OS 441 reads the invalid flag in the header of each application, and if the invalid flag S is “l”, the application is started. Or cancel return.
  • the secure OS 441 includes a secure OS ID 442 and an invalid flag 443 in the header portion.
  • the secure OS ID 442 is identification information corresponding to the secure OS 171.
  • the invalid flag 443 is a flag indicating whether or not the secure OS 441 has been invalidated, the invalid flag “1” indicates that the music decryption program 446 has been invalidated, and the invalid flag “0” has been invalidated. , Indicating that it has not been disabled.
  • the secure switching device driver loaded on the secure memory 413 and performing the switching process reads the invalid flag 443 of the secure OS 441 before returning the context of the secure OS 441 to the CPU. If the invalid flag strength is “l”, the return of the secure OS441 is stopped.
  • the memory protection unit 414 includes a revocation list storage unit 421, a revocation list update unit 424, an application verification unit 428, an application revocation unit 429, an OS verification unit 431, and an OS revocation unit 432, Be composed.
  • the revocation list storage unit 421 stores an application revocation list 422 and an OS revocation list 423.
  • the application revocation list 422 and the OS revocation list 423 have the same configurations as the application revocation list 276 and the OS revocation list 266 stored in the information storage unit 260 of the revocation list issuance device 250, respectively. .
  • the revocation list updating unit 424 stores the signature verification key 426 in advance.
  • the signature verification key 426 is the same key as the issuing device public key stored in the key storage unit 253 of the revocation list issuing device 250.
  • the revocation list updating unit 424 receives, from the switching control unit 106, a connection instruction for instructing connection between the secure memory 413 and the bus 130.
  • a connection instruction for instructing connection between the secure memory 413 and the bus 130.
  • a list request for transmitting the latest application revocation list and OS revocation list is transmitted to the revocation list issuing device 250 via the wireless communication control unit and the communication unit.
  • a signed OS revocation list and a signed application revocation list are received from the revocation list issuing device 250 via the wireless communication control unit and the communication unit.
  • the signature verification is performed on the received signature data of the signed OS revocation list using the signature verification key. More specifically, the signature data is subjected to a signature verification algorithm V using a signature verification key to generate check data.
  • the signature verification algorithm V is an algorithm for verifying the signature data generated by the signature generation algorithm S.
  • the received OS revocation list is substituted into a hash function to generate OS digest data.
  • the generated check data is compared with the digest data. If the two match, the signature verification is determined to be successful. If not, the signature verification is determined to have failed. If the signature verification fails, stop comparing the list ID and updating the OS revocation list described below.
  • Signature verification is similarly performed on the received signed application revocation list. If the signature verification fails, stop the comparison of the application ID and update of the application revocation list described below.
  • list IDs included in the received OS revocation list and the OS revocation list 423 stored in the revocation list storage unit 421 are compared. If both are the same, discard the received OS revocation list.
  • the list ID of the received OS revocation list is stored in the revocation list storage unit 42 If the date indicates a newer date than the list ID of the stored OS revocation list 423, the OS revocation list 423 stored in the revocation list storage unit 421 is stored in the received OS revocation list. Update by
  • the received application revocation list is compared with the old and new application revocation lists 422 stored in the revocation list storage unit 421, and the application revocation list 422 is compared. If is older, the application revocation list 422 in the revocation list storage unit 421 is updated with the received application revocation list.
  • the OS verification unit 431 reads the secure OSID 442 from the header of the secure OS 441.
  • the OS revocation list 423 is read from the revocation list storage unit 421, and it is determined whether or not the read secure OSID 442 is included in the invalid ID of the OS revocation list 423! /. If the secure OSID 442 is included in the OS revocation list 423, it is determined that the secure OS 441 is invalid, and instructs the OS revocation unit 432 to revoked.
  • the OS invalidating unit 432 is instructed to invalidate by the OS verifying unit 431, and rewrites the invalid flag in the header of the secure OS 441 to “1”.
  • the application verification unit 428 also reads the application ID 447 from the header part of the music decryption program 446 on the secure memory 413.
  • the application revocation list 422 is read from the revocation list storage unit 421, and it is determined whether the application ID 447 is included in the application revocation list 422 or not.
  • the music decryption program 446 is determined to be an invalid program, and the invalidation is instructed to the application revocation unit 429.
  • the application invalidating unit 429 receives the instruction of invalidation from the application verifying unit 428, and sets the invalid flag of the music decryption program 446 to “1”.
  • the application verification unit 428 and the application invalidation unit 429 similarly determine whether or not the application case is invalid for all the applications, and If invalid, the setting of the invalid flag is repeated.
  • connection instruction is received from the switching control unit 106 (step S671).
  • the revocation list updating unit 424 transmits a list request to the revocation list issuing device 250 via the wireless communication control unit 118 and the communication unit 121 (step S672).
  • a signed OS revocation list and a signed application revocation list are acquired via the communication unit and the wireless communication control unit (step S673).
  • the revocation list updating unit 424 reads the signature verification key 426, and performs signature verification of the obtained signed OS revocation list and signed application revocation list using the read signature verification key (step S674). ). If the signature verification fails (NO in step S676), the process proceeds to step S681 by the OS verification unit.
  • step S676 the list IDs of the OS revocation list 423 and the application revocation list 422 stored in the revocation list storage unit are read (step S677).
  • the OS It is determined whether the revocation list 423 and the application revocation list 422 are the latest versions (step S678).
  • step S678 If it is determined that it is not the latest version (N0 in step S678), the OS revocation list 423 stored in the revocation list storage unit 421 and the OS revocation list 423 and the received application revocation list are used.
  • the application revocation list 422 is updated (step S679).
  • step S679 If it is determined that the version is the latest version (YES in step S678), the processing in step S679 is omitted.
  • the OS Upon completion of the processing by the revocation list updating unit 424 in step S672—679, the OS is verified.
  • the unit 431 reads the secure OSID 442 from the secure memory 413 (step S681), and determines whether the secure OS 441 is invalid or valid depending on whether the read secure OS ID 442 is registered in the OS revocation list 423. It is determined whether there is (Step S682).
  • step S683 If it is determined that the application is valid (YES in step S683), the process proceeds to step S686 by the application verification unit 428.
  • the OS invalidating unit 432 sets the invalid flag 443 of the secure OS 441 to “1” (step S684).
  • the application verification unit 428 reads out the application ID 447 of the music decryption program 446 on the secure memory 413 (step S686), and reads the read application. It is determined whether or not the music decryption program 446 is valid or invalid depending on whether the ID is registered in the application revocation list 422 or not! (Step S687).
  • step S688 If it is determined that it is valid (YES in step S688), the verification processing ends. If it is determined to be invalid (NO in step S688), the application invalidating unit 429 sets the invalid flag of the music decoding program 446 to “1” (step S689).
  • the mobile phone 400 of the present embodiment acquires the latest OS revocation list and application revocation list from the revocation list issuing device 250 as needed. Based on the obtained OS revocation list and application revocation list, the application stored in the secure memory 413 including the secure OS 441 and the music decryption program 446 is effective. Judgment is made as to whether or not there is a certain force.
  • Embodiment 2 of the present invention may have the following configuration.
  • the revocation list issuing device 250 stores the OS revocation list and the application revocation list.
  • the OS revocation list uses the revoked IDs 269, 270, 271 ⁇ ⁇ ⁇ instead of the revoked operating system. It is configured to include the certificate ID of the secure OS certificate (described later).
  • the application revocation list also includes the certificate ID of the application certificate (described later) of the revoked application instead of the revocation IDs 279, 280, 281 ⁇ ⁇ ⁇ ⁇ .
  • the mobile phone 400 includes a memory protection unit 454 in place of the memory protection unit 414, and includes a secure memory 453 in place of the secure memory 413. Instead of the memory protection unit 414 determining whether each program is valid or invalid based on the ID unique to each program on the secure memory 413, the memory protection unit 454 determines whether each program on the secure memory 453 is valid. Is determined by using a certificate unique to.
  • the secure memory 453 includes a music decryption program 476 and a secure OS 481 as shown in FIG.
  • the secure OS 481 includes a secure OS certificate 482 and an invalid flag 483 in the header portion.
  • the secure OS certificate 482 is a public key certificate according to X.509. As shown in Fig. 55, the issuer ID 484, certificate ID 487, secure OS public key 488, signature algorithm 489, and CA signature are used. Including 491.
  • the issuer ID 484 is an identifier of a certificate authority (hereinafter, referred to as a CA: Certificate Authority) that has issued the secure OS certificate 482.
  • the secure OS public key 488 is a public key unique to the secure OS 481 whose validity is proved by the secure OS certificate 482.
  • the signature algorithm 489 is identification information indicating the algorithm used to generate the CA signature 491.
  • the CA signature 491 is generated using the private key of the CA that issued the secure OS certificate 482 and applying the algorithm S1 indicated by the signature algorithm 489 to the issuer ID 484 and certificate ID 487 ' Signature data.
  • the invalid flag 483 indicates whether the secure OS 481 is valid or invalid.
  • the music decryption program 476 includes an application certificate 477 and an invalid flag 478 in its header.
  • the application certificate 477 has a configuration in which the secure OS public key 488 in FIG. 55 is replaced with an application public key.
  • the invalid flag 478 indicates whether the music decryption program 476 is invalid or valid.
  • the memory protection unit 454 includes a revocation list storage unit 461, a revocation list update unit 424, a key storage unit 464, an application verification unit 468, an application revocation unit 429, an OS verification unit 471, and an OS. It comprises a nullification unit 432.
  • the revocation list storage unit 461 includes an OS revocation list 463 and an application revocation list 462 as shown in FIG.
  • the OS revocation list 463 has the same configuration as the OS revocation list stored in the revocation list issuing device 250, and includes the certificate ID of the revoked operating system.
  • the application revocation list 462 has the same configuration as the application revocation list stored in the revocation list issuing device 250, and includes the certificate ID of the revoked application.
  • the key storage unit 464 stores the CA public key 466.
  • the CA public key 466 is the public key of the CA that issued the secure OS certificate 482 and the application certificate 477, and the CA used to generate the CA signature included in the secure OS certificate 482 and the application certificate 477. It is a key that is paired with his secret key.
  • ⁇ OS verification unit 471> When the processing of updating the OS revocation list and the application revocation list by the revocation list update unit 424 is completed, the OS verification unit 471 reads the secure OS certificate 482 included in the secure OS 481 from the secure memory 453.
  • the CA public key 466 is read from the key storage unit 464, and the signature verification algorithm VI is applied to the CA signature 491 included in the secure OS certificate 482 using the read CA public key 466 to perform signature verification.
  • the signature verification algorithm V1 is an algorithm for verifying the signature data generated by the signature generation algorithm S1.
  • the certificate ID 487 included in the secure OS certificate 482 is used to determine whether or not the secure OS 481 is invalid according to whether or not it is registered in the OS revocation list 463. judge. If it is registered, it is determined that the secure OS481 is an invalid program, and the OS invalidation unit 432 is instructed to invalidate the secure OS481.
  • the OS verification unit 471 determines that the secure OS 481 is a valid program.
  • the signature of the secure OS certificate 482 is verified, and if the signature verification is successful, the certificate ID 487 is used to determine whether or not the certificate is registered in the OS revocation list 463. It may be determined whether or not the certificate ID 487 is registered in the OS revocation list 463, and if it is not registered, signature verification may be performed.
  • the application verification unit 468 reads the application certificate 477 included in the music decryption program 476 from the secure memory 453.
  • the CA public key 466 is read from the key storage unit 464, and the signature verification algorithm VI is performed on the CA signature included in the application certificate 477 using the read CA public key 466 to perform signature verification.
  • the subsequent processing is stopped and the application disabling unit 429 is instructed to disable the music decryption program 476.
  • the music decryption program 476 is invalid is determined based on whether the certificate ID included in the application certificate 477 is registered in the application revocation list 462. Is determined. If the music decryption program 476 is registered, it is determined that the music decryption program 476 is invalid, and the application invalidating unit 429 is instructed to invalidate the music decryption program 476.
  • the music decryption program 476 determines that it is a valid program.
  • the music decryption program 476 may include a plurality of certificates forming a hierarchical structure.
  • FIG. 56 shows the configuration of a plurality of certificates included in the music decryption program 476 and the hierarchical structure of these certificates.
  • the music decryption program 476 includes an application certificate 501, a manufacturer certificate 511, and a CA certificate 521, as shown in FIG.
  • the application certificate 501 includes an issuer 502, a certificate ID 503, an application public key 504, a signature algorithm 506, and a manufacturer signature 508.
  • the issuer 502 is identification information indicating the application maker that is the issuer of the application certificate 501. In FIG. 56, “app maker” is described for convenience of explanation.
  • the certificate ID 503 is identification information unique to the application certificate 501.
  • the application public key 504 is a public key unique to the music decryption program 476, and its validity is proved by the application certificate 501.
  • the signature algorithm 506 is identification information indicating the signature generation algorithm used to generate the maker signature 508.
  • the manufacturer signature 508 is included in the application certificate 501 such as the issuer 502, certificate ID 503, application public key 504, and signature algorithm 506 using the application manufacturer private key 519 unique to the manufacturer of the music decryption program 476. This is the signature data generated by applying the signature generation algorithm S2 to the information to be processed.
  • the manufacturer certificate 511 is composed of the issuer 512, certificate ID 513, manufacturer public key 514, and signature key. It comprises a algorithm 516 and a CA signature 518.
  • the issuer 512 is identification information indicating the CA that issued the manufacturer certificate 511.
  • CA is described for convenience of explanation.
  • the certificate ID 513 is identification information unique to the manufacturer certificate 511.
  • the manufacturer public key 514 is the public key of the manufacturer of the music decryption program 476, and its validity is proved by the manufacturer certificate 511.
  • the public key 514 is a key corresponding to the private key 519 of the application maker.
  • the signature algorithm 516 is identification information indicating the signature generation algorithm used to generate the CA signature 518.
  • the CA signature 518 is generated by applying the signature generation algorithm S3 to the information included in the maker certificate 511 such as the issuer 512, certificate ID 513, maker public key 514, and signature algorithm 516, using the CA private key 529. Signed data.
  • the CA certificate 521 includes an issuer 522, a certificate ID 523, a CA public key 524, a signature algorithm 526, and a root CA signature 528.
  • the issuer 522 is identification information indicating the root CA that is the issuer of the CA certificate 521.
  • “Root CA” is described for convenience of explanation.
  • the certificate ID 523 is identification information unique to the CA certificate 521.
  • the CA public key 524 is the public key of the CA, and its validity is proved by the CA certificate 521.
  • the CA public key 524 is a key corresponding to the CA private key 529.
  • the signature algorithm 526 is identification information indicating the signature generation algorithm used to generate the root CA signature 528.
  • the root CA signature 528 uses the root CA private key 531 for information included in the CA certificate 521, such as the issuer 522, certificate ID 523, CA public key 524, and signature algorithm 526, using the root CA private key 531. This is the signature data generated by applying the signature generation algorithm S4.
  • the root CA private key 531 is a private key unique to the root CA.
  • the CA corresponds to a sales maker of the mobile phone 400
  • the root CA corresponds to a public certificate issuing organization.
  • an OS certificate 482 of the secure OS 481 that controls the music decryption program 476, a certificate assigned to the mobile phone 400, and a certificate of the manufacturer of the secure OS 481 may be used.
  • the key storage unit 464 stores a root CA public key instead of the CA public key 466.
  • the root CA public key is the key corresponding to the root CA private key 531 .
  • the revocation list storage unit 461 stores a maker revocation list and a CA revocation list in addition to the application revocation list 462.
  • the manufacturer revocation list is a list that contains the certificate IDs of the revoked key certificates
  • the CA revocation list is a list that contains the certificate IDs of the revoked CA certificates.
  • the application verification unit 468 reads the CA certificate 521 and the root CA public key, and applies the signature verification algorithm V4 to the root CA signature 528 included in the CA certificate 521 using the read root CA public key.
  • the signature verification algorithm V4 is an algorithm that verifies the signature data generated by the signature generation algorithm S4.
  • the application verification unit 468 stops the following processing, and instructs the application invalidation unit 429 to invalidate the music decryption program 476.
  • the maker certificate 511 is read out, and the signature verification algorithm V3 is applied to the CA signature 518 included in the read maker certificate 511 using the CA public key 524 included in the CA certificate 521.
  • the signature verification algorithm V3 is an algorithm that verifies the signature data generated by the signature generation algorithm S3.
  • the application verification unit 468 stops the following processing and instructs the application invalidation unit 429 to invalidate the music decryption program 476.
  • the signature verification is successful, it is next determined whether or not the certificate ID 513 included in the manufacturer certificate 511 is registered in the manufacturer revocation list. Then, the following processing is stopped, and the application disabling unit 429 is instructed to disable the music decryption program 476.
  • the application certificate 501 is read next.
  • the signature verification algorithm V2 is performed on the signature 508 included in the read application certificate 501 to perform signature verification.
  • Signature verification The algorithm V2 is an algorithm that verifies the signature data generated by the signature generation algorithm S2.
  • the application verification unit 468 cancels the following processing and instructs the application invalidation unit 429 to invalidate the music decryption program 476.
  • music decoding program 476 is a valid program.
  • the secure OS 481 may be similarly verified using a plurality of certificates.
  • the OS revocation list includes the date when the OS revocation list was generated as the list ID.
  • One John number may be included as the list ID 543.
  • the version information is a number indicating the generation of the OS revocation list, and the larger the value is, the more recent it is.
  • the total number of invalidation IDs may be included as the list ID 553. Since the total number of invalidated programs cannot decrease, the total number of invalidated IDs is used as the list ID, and the larger the value of the list ID is, the newer the OS invalidation list is. be able to.
  • the revocation list issuance device 250 generates the OS revocation list and the abrasion revocation list, but the application revocation list and the OS revocation list may be issued by different sources. good.
  • the OS revocation list is generated and issued by a revocation list issuing device managed by the operating system developer.
  • the app revocation list is Generated and issued by the revocation list issuing device managed by the developer of the application.
  • the OS verification may verify the secure application
  • the application verification unit may verify the secure OS
  • the application revocation list and OS revocation list transmitted by the revocation list issuing device 250 are always the latest, and the application revocation lists 422 and 422 stored in the revocation list storage unit 421. It is unlikely that OS revocation list 423 is newer. Accordingly, the revocation list update unit 424 omits the above-described comparison of list IDs when updating the application revocation list and the OS revocation list, and if signature verification is successful, unconditionally
  • the application revocation list 422 and the OS revocation list 423 may be updated with the application revocation list and the OS revocation list received from the revocation list issuing device 250.
  • the mobile phone of the present embodiment is connected to the revocation list issuing device via the mobile phone network and the Internet.
  • the revocation list issuing device like the revocation list issuing device 250 according to the second embodiment, has a communication unit, a signature generation unit, a key storage unit, a hash generation unit, a control unit, an information storage unit 610, It comprises an input unit and a display unit.
  • the configurations and operations of the communication unit, signature generation unit, key storage unit, hash generation unit, input unit, and display unit include the communication unit 251 included in the revocation list issuing device 250, the signature generation unit 252, and the key storage. It is almost the same as the unit 253, the hash generation unit 254, the input unit 262, and the display unit 263, and the hash generation unit replaces the OS invalidation list and the application invalidation list with the OS matrix invalidation.
  • OS list data (to be described later) is generated, and application matrix invalidation list (to be described later) is also generated as application digest data. Description of these units is omitted, and is a feature of the present embodiment. Only the information storage unit 610 and the control unit will be described.
  • the information storage unit 610 includes an application issuance key matrix 601, an OS issuance key matrix 602, a pre-invalidation ⁇ blue report 604, 606, a pre-matrix inactivation list 611, and an OS matrix.
  • an application issuance key matrix 601 an OS issuance key matrix 602
  • a pre-invalidation ⁇ blue report 604 606
  • a pre-matrix inactivation list 611 615
  • an OS matrix revocation list 621.
  • the application issue key matrix 601 has 16 issue keys Key-11, Key-12, and Key-13 as the matrix elements of a 4-by-4 matrix. Things.
  • Each issuance key is, for example, 64-bit key data generated using a pseudo-random number.
  • the application issuing key matrix 601 arranges the row numbers "1", “2”, “3”, and “4" in the vertical direction from the top, and sequentially sets the column numbers “1", “2”, “3” and “4" are arranged.
  • the matrix element 661 corresponding to the row number “1” and the column number “1” is the issue key Key-11
  • the matrix element 662 corresponding to the row number “1” and the column number “2” is the issue key Key.
  • the matrix element 663 corresponding to the row number “1” and the column number "3” is the issue key Key-13
  • the matrix element 664 corresponding to the row number "1” and the column number "4" is the issue key Key_14. It is.
  • matrix elements 665-668 of row number "2", column numbers "1" and "4" are issued keys Key-21, Key-22, Key-23 and Key-24, respectively.
  • the matrix elements 669-672 of the row number "3" and the column numbers "1"-"4" are the issued keys Key-31, Key-32, Key-33, and Key-34.
  • the matrix elements 673-676 with row number "4" and column numbers "1"-"4" are Key-41, Key-42, Key-43, and Key-44.
  • each secure application is assigned a total of four issued keys, one from each column of the application issued key matrix 601. The combination of the four issued keys differs for each secure application.
  • a music decryption program executed on a mobile phone includes an application issuing key matrix 601 surrounded by a solid line circle 677, 678, 679, 680! Issued keys Key_ll, Key_32, Key_23, and Key_14 are assigned.
  • a secure application (called application B) that is different from the music decryption program includes the issuance keys Key 21, Key 32, and Key 33, which are surrounded by dotted circles 681, 682, 683, and 684.
  • Key —44 is assigned.
  • the OS issuance key matrix 602 has the same configuration as the application issuance key matrix 601 and stores 16 issuance keys as matrix elements of a 4 ⁇ 4 matrix.
  • Fig. 59 shows an application-specific key matrix 592 included in the encrypted music decryption program 591 (described later) stored in the mobile phone according to the present embodiment and an encryption key decryption program OS 596 (described below) included in the program. OS-specific key matrix 597.
  • the application unique key matrix 592 has a one-to-one correspondence with a music decryption program generated by decrypting the encryption / decryption music decryption program 591, and includes four issued keys assigned to the music decryption program. .
  • the application-specific key matrix 592 includes four pieces of key information 901, 902, 903, and 904. Each key information includes a column number, a row number, and an issuance key.
  • the key information 901 includes an issuance key Key-11 assigned to the music decryption program from a matrix element in the first column of the application issuance key matrix 601. And a row number “1” and a column number “1” corresponding to Key-11 on the application issuing key matrix 601.
  • the key information 902 includes an issue key Key-32 assigned to the music decryption program in the second column of the application issue key matrix 601 and a row number "3" corresponding to Key-32 on the application issue key matrix 601. ”And column number“ 2 ”.
  • the key information 903 is composed of the issue key Key-23 assigned to the music decryption program in the third column of the application issue key matrix 601 and the row number “2” corresponding to Key-23 on the application issue key matrix 601. "And the column number” 3 ".
  • the key information 904 includes an issuance key Key-14 assigned to the music decryption program in the fourth column of the abri issue key matrix 601, and a row number “1” corresponding to Key-14 on the application issuance key matrix 601. And column number "4".
  • the OS unique key matrix 597 has the same configuration as the application unique key matrix, and has the key information 90 6, 907, 908, and 909, and each key information includes a column number and a row number issuing key.
  • a secure OS generated by decrypting the encrypted OS 596 stored in the present embodiment is assigned a total of four issued keys, one from each column of the OS issued key matrix 602. Has been. The combination of these four keys differs for each operating system.
  • the key information 906—909 is obtained from each column of the OS unique key matrix 602 by using the unique key assigned to the secure OS and the column number and row number on the OS unique key matrix 602 corresponding to the unique key. Contains.
  • the application revocation information 604, 606 ⁇ extracts the key information sequence numbers and row numbers of the application-specific key matrix of the revoked application.
  • the application revocation information 604 corresponds to the application B described above.
  • the application invalidation information 604 is shown in Fig. 58.
  • the column number “1” —931 and the row number “2” —935 correspond to the issue key Key-21 assigned to the application ⁇ ⁇ ⁇ from the first column of the application issue key matrix 601.
  • Column number “2” —932, row number “3” —936, and the second column of the pre-issued key matrix 601 correspond to the issued key Key—32 assigned to application B.
  • column number “3” —933 and row number “3” —937 correspond to issue key Key—33
  • column number “4” and row number “4” correspond to issue key Key—44. Yes, it is.
  • the information storage unit 610 stores an OS invalidity obtained by extracting a column number and a row number from each key information function of the OS-specific key matrix of the invalidated operating system. Memorization information.
  • the application matrix invalidity list 611 is configured by arranging 16 even rows of IJ elements 911-926 in a matrix of 4 rows ⁇ 4 columns.
  • the matrix element stored in the matrix element at the i-th row and the j-th column is represented using a variable Mij.
  • the variable Mij is used as a decryption key for decrypting an encrypted music decryption program 591 and other encrypted applications using the issuance key in the i-th row and the j-th column on the application issuance key matrix 601. It is generated by applying the optimization algorithm E2. Enc (Key—ij, Key) is generated by encrypting the decryption key using the issued key Key-ij.
  • the variable Mil which is a matrix element 911 having a row number “1” and a column number “1”
  • the decryption key is encrypted using the key Key_ll.
  • the application matrix revocation list 611 is generated when the application revocation information stored in the information storage unit 610 is only the application revocation information 604.
  • the matrix elements M21, M32, M33, and M44 corresponding to the row number and column number included in the application revocation information 604 encrypt the dummy data “0000” using the issue key instead of the decryption key. It is a thing.
  • the OS matrix revocation list 621 has the same configuration as the application matrix revocation list 611, in which 16 matrix elements are arranged in a matrix of 4 rows x 4 columns.
  • the matrix element at the i-th row and the j-th column is a decryption key for decrypting various encryption operating systems including the encrypted secure OS 596, and the issuance key arranged at the i-th row and the j-th column of the OS issuance key matrix 602. It was used for encryption. However, the matrix element corresponding to the row number and the column number included in the OS revocation information is obtained by encrypting dummy data instead of the decryption key.
  • the application matrix revocation list 611 and the OS matrix revocation list include list IDs indicating the new and old versions.
  • the control unit receives a list request from a mobile phone via the Internet.
  • the OS matrix revocation list 621 and the application matrix revocation list 611 are read from the information storage unit 610, and the signature-added OS to which the signatures generated by the hash control unit and the signature generation unit are added.
  • the matrix revocation list and the signed application matrix revocation list are sent to the mobile phone. This is the same as the generation and transmission of the signed OS revocation list and the signed application revocation list by the control unit 257 of the second embodiment, and thus a detailed description is omitted.
  • control unit accepts, via the input unit, an instruction from the operator to input new application revocation information and generate an application matrix revocation list. According to the instructions received , A new application matrix revocation list is generated.
  • the application issuance key matrix 601 and the application matrix revocation list are not limited to 1S in which 16 elements are arranged in a 4 ⁇ 4 matrix.
  • the case of p rows and n columns is described more generally. (, 11 is an integer of 1 or more)
  • a decryption key is assigned to each of the p X n matrix elements Ml l, M12-... ⁇ (step S721).
  • the variable j for storing the column number and the variable i for storing the row number are initialized to 0 (step S722).
  • step S723 the application invalidation information is read (step S723), and 1 is added to the variable j (step S724) 0
  • step S724 The row number corresponding to the column number j of the read application invalidation information is extracted and extracted.
  • the line number is assigned to a variable i (step S726).
  • step S727 the dummy data “0000” is substituted for the matrix element Mij (step S727).
  • step S731 If it is determined that all the application invalidation information has been read (YES in step S731), 0 is substituted for the variable i (step S734), and 0 is substituted for the variable j (step S736). Next, 1 is added to the variable i (step S737), and 1 is added to the variable j (step S739).
  • the issued key Key-ij at the i-th row and the j-th column of the application issued key matrix 601 is read (step S741).
  • the encryption element E2 is applied to the matrix element Mij to generate Enc (Key-ij, Mij), and the generated Enc (Key-ij, Mij) is converted to Mij. substitute (Step S742).
  • the OS matrix revocation list is generated by the same procedure using the OS issuance key matrix and OS revocation information.
  • the mobile phone according to the present embodiment has a configuration similar to that of mobile phone 400 according to the second embodiment. Therefore, the description of the same parts as in the second embodiment is omitted here, and only the characteristic parts of the present embodiment will be described.
  • the secure memory 613 stores an encrypted music decryption program 591 and an encrypted secure OS 596 as shown in FIG.
  • the encryption decryption program 591 is generated by applying the encryption decryption algorithm E3 to a music decryption program including the same music decryption procedure as the music decryption program 446 of the second embodiment.
  • the encryption and decryption music decryption program 591 includes an application-specific key matrix 592 and an invalid flag 593 that are unique to the music decryption program in a header portion.
  • the application unique key matrix 592 is as described above.
  • the invalid flag 593 is a flag indicating whether or not the music decryption program is invalid. If it is “0”, it is valid, and if it is “1”, it is invalid.
  • the encrypted secure OS 596 is generated by applying the encryption algorithm E3 to a secure OS having the same operating function as the secure OS 441 of the second embodiment.
  • the encrypted secure OS 596 includes an OS-specific key matrix 597 unique to the secure OS and an invalid flag 598 in a header portion. About OS unique key matrix 597 , As described above.
  • the invalid flag 598 is a flag indicating whether or not the secure OS is invalid. "0" indicates that the secure OS is valid, and "1" indicates that the secure OS is invalid.
  • the memory protection unit 571 includes a revocation list storage unit 572, a revocation list update unit 575, an application verification unit 578, an application revocation unit 579, an OS verification unit 581, an OS revocation unit 582, and an encryption It comprises a decoding unit 586.
  • the revocation list storage unit 572 stores the application matrix revocation list 573 and the OS matrix revocation list 574.
  • the application matrix revocation list 573 and the OS matrix revocation list 574 have the same configurations as the application matrix revocation list 611 and the OS matrix revocation list stored in the information storage unit 610 of the revocation list issuing device.
  • the operation of the revocation list update unit 575 is the same as that of the revocation list update unit 424 of the second embodiment. Instead of the application revocation list and the OS revocation list, the application matrix revocation list and the OS Update the matrix revocation list.
  • the operations of the application disabling unit 579 and the OS disabling unit 582 are the same as those of the application disabling unit 429 and the OS disabling unit 432 of the second embodiment, and thus will not be described again here.
  • the application verification unit 578 uses the application-specific key matrix 592 included in the encryption program decryption program 591 and the application matrix revocation list 573 stored in the revocation list storage unit 572 to decrypt the code. Generate a decryption key for program 591. If the decryption key can be generated correctly, it is determined that the music decryption program is valid. If it cannot be generated, it is determined that the music decryption program is invalid. The detailed procedure for verifying the music decryption program will be described later.
  • the generated decryption key is output to the encryption / decryption unit 586, and the decryption of the encrypted music decryption program 176 is instructed.
  • the application invalidation unit 579 is instructed to invalidate the application.
  • the OS verification unit 581 determines whether the secure OS generated by decrypting the encrypted OS 596 is valid or invalid, similarly to the application verification unit 578.
  • an OS unique key matrix 597 and an OS matrix revocation list 574 are used.
  • the encryption / decryption unit 586 receives the decryption key of the encrypted secure OS 596 from the OS verification unit 581, and is instructed to decrypt.
  • the decryption algorithm D3 is applied to the encryption OS 596 on the secure memory 613 using the received decryption key to generate a secure OS.
  • D3 is an algorithm for decrypting the ciphertext generated by the encryption algorithm E3, and uses, for example, DES, AES (Advanced Encryption Standard), etc.
  • a disconnection instruction output from the switching control unit 576 and indicating disconnection between the secure memory 613 and the bus 130 is detected.
  • the music decryption program and the secure OS are encrypted using the received decryption key to generate the encrypted music decryption program 591 and the encrypted secure OS 596.
  • the memory protection unit 571 receives the connection instruction (Step S701).
  • the revocation list updating unit 575 acquires the latest application matrix revocation list and OS matrix revocation list from the revocation list issuing device via the Internet, and stores the revocation list storage unit 572.
  • the application matrix revocation list 573 and the OS matrix revocation list 574 stored in the application matrix are updated (step S702).
  • the process of step S702 by the revocation list updating unit 575 is the same as the process of step S672—679 (FIG. 49) by the revocation list updating unit 424 of the second embodiment, and invalidates the OS revocation list in the OS matrix.
  • the OS verification unit 581 verifies the secure OS (step S703), and if it determines that the secure OS is valid (YES in step S706), sends the encryption / decryption OS 596 to the encryption / decryption unit 586.
  • the decryption unit 586 decrypts the encrypted secure OS 596 and generates a secure OS (step S707).
  • step S706 If it is determined that the secure OS is invalid (NO in step S706), an instruction is given to the OS invalidating unit 582 to set the invalid flag 598 to “1” (step S709).
  • the application verifying unit 578 verifies whether or not the music decryption program is valid (step S711). If it is determined to be valid (YES in step S712), the encryption / decryption unit 586 decrypts the encrypted music decryption program 591 to generate a music decryption program (step S713).
  • step S712 If it is determined that the application is invalid (NO in step S712), the application invalidating unit 579 sets the invalid flag 593 to “1” (step S716).
  • the application matrix revocation list 573 constitutes a matrix of 4 rows ⁇ 4 columns
  • the application unique key matrix 592 is composed of four pieces of key information. More generally, the case where the application matrix revocation list 573 forms a matrix of n rows and p columns and the application unique key matrix 592 also includes p pieces of key information will be described.
  • the application verification unit 578 reads the application unique key matrix 573 (Step S731). For convenience of explanation, a variable i indicating a row number and a variable j indicating a column number will be introduced and described.
  • the application verification unit 578 substitutes 1 for a variable j (Step S732).
  • the row number corresponding to the column number j of the application unique key matrix 592 is substituted for a variable i (step S733).
  • a matrix element Mij is read from the application matrix invalidation list 573 (step S736).
  • An issuance key Key-ij is extracted from the application unique key matrix 592, and a decryption algorithm D2 is applied to the read matrix element Mij using the extracted issuance key Key-ij to perform decryption (step S737). If the decryption result is not “0000” (NO in step S739), it is determined that the music decryption program is valid (step S741), and the decryption result, that is, the encrypted music decryption program is determined.
  • the decryption key of the program 591 is output to the decryption unit 586 (step S742).
  • step S703 the secure OS verification by the OS verification unit 581 in step S703 is performed by replacing the application-specific key matrix in the flow chart of Fig. 61 with the OS-specific key matrix, and replacing the application matrix revocation list with the OS matrix revocation list. Since it has been replaced, the description is omitted.
  • the encrypted music decryption program 591 and the encrypted secure OS 596 on the secure memory 613 of the mobile phone are respectively provided with the unique application-specific key matrix 592 and the OS-specific key matrix. Contains 597.
  • the memory protection unit 571 determines whether the music decryption program is valid based on the application matrix revocation list 573 and the application unique key matrix 592. Only when it is valid, it is possible to generate a decryption key from the application matrix revocation list 573.
  • the validity is determined using the OS matrix revocation list 574 and the OS-specific key matrix.
  • each application is assigned a total of four issue keys, one from each column. At this time, they are assigned in such a manner that they do not match the issued key strengths assigned to different applications.
  • the music decryption program according to the present embodiment is assigned issuing keys Key-11, Key-32, Key-23, and Key-14, and these issuing keys are assigned to the encrypted music decryption program 590. Included in the application-specific key matrix 592.
  • App B Applications that are shipped from the same manufacturer as the music decryption program (called App B) are assigned harmful keys Kev 21, Key 32, Key 33, and Key 44.
  • the application issuing key matrix of the encryption key application B includes these four issuance keys.
  • Application invalidation information 604 is added.
  • the application revocation information 604 includes four issue keys assigned to the application B, and corresponding column numbers and row numbers.
  • the application matrix revocation list 611 generated based on the application revocation information 604 includes dummy data in the matrix elements M21, M32, M33, and M44.
  • the decryption key cannot be generated with the four issuance keys assigned to.
  • the key that is also assigned to the music decryption program is Key-32.
  • the decryption key is generated by another issued key. Can be.
  • the encryption / decryption unit 586 encrypts applications such as the secure OS and the music decryption program again. Therefore, while the program on the normal memory uses the CPU, the program on the secure memory 613 can be more reliably protected. In such a configuration, the memory protection unit does not need to physically disconnect the bus and the secure memory 613.
  • the memory protection unit 571 obtains the latest OS matrix revocation list and application matrix revocation list via the communication control unit every time a connection instruction is received from the switching control unit 106. Then, these programs are updated and each program on the secure memory 613 is verified.
  • the timing of updating the OS matrix revocation list and the application matrix revocation list and verifying each program on the secure memory 613 is not limited to this.
  • the OS matrix revocation list and the application matrix revocation list may be updated, and the program may be verified when a connection instruction is received after the startup.
  • the secure OS When each program is started, for example, when switching from the normal OS to the secure OS, the secure OS is verified, and when the secure OS starts the music decryption program, the music decryption program is verified. It may be.
  • a list request is transmitted from the memory protection unit 571 to the revocation list issuance device, and the latest OS matrix revocation list and application matrix revocation list are acquired. When it is found and the OS matrix revocation list and the application matrix revocation list are created again, it may be transmitted from the revocation list issuing device to the mobile phone.
  • the mobile phone may obtain the latest OS matrix revocation list and ab-matrix revocation list via the Internet.
  • the recording medium power such as a memory card may be obtained.
  • the mobile phone has been described as one embodiment of the present invention, it may be a communication device configuring a LAN as described below.
  • One of the devices constituting the LAN may acquire the latest revocation list and distribute it to other devices.
  • An example is a device that forms a home network as shown in FIG.
  • the home network is configured by connecting a PC (Personal Computer) 650, a notebook PC 651, a DVD player 652, a home server 653, and a microwave oven 654 by a bus.
  • PC Personal Computer
  • Each device has a secure memory that cannot be directly accessed by ordinary operating systems and applications, and verifies the effectiveness of various applications and operating systems that are loaded and executed on the secure memory. It has the function of
  • the home server 653 is connected to the Internet 20 and periodically requests the revocation list issuing device 250 for the application revocation list and the OS revocation list.
  • the latest application revocation list and OS revocation list from the revocation list issuing device 250 via the Internet To get.
  • the acquired revocation list is output to each device configuring the home network via the bus.
  • Embodiment 4 of the present invention will be described below.
  • the mobile phone includes a debugger IF, a CPU 102, an MMU, a secondary storage unit, a switching control unit, an interrupt controller, an input unit, a display unit, a normal memory, and the like, similarly to the mobile phone 100 according to the first embodiment. It consists of shared memory, secure memory 713, memory protection unit 701, input / output unit, cryptographic processing device, wireless communication control unit, microphone, speaker, communication unit, antenna, buffer, code processing unit, DZA conversion unit, Each circuit is connected to a node.
  • each unit other than the memory protection unit 701 and the secure memory 713 are the same as those of the first embodiment, and a description thereof will not be repeated. Only the features of the embodiment will be described.
  • the secure memory 713 stores a secure application such as a music decryption program 704 and a communication key generation program 706, and a secure OS 707.
  • a secure application such as a music decryption program 704 and a communication key generation program 706, and a secure OS 707.
  • the music decryption program 704 is a secure application that includes the same music decryption processing procedure as the music decryption program 176 of the first embodiment.
  • the communication key generation program 706 is a secure application that generates an encryption key for transmitting and receiving content via the mobile phone power Internet.
  • Secure OS 707 is an operating system similar to secure OS 171 of the first embodiment.
  • each program on the secure memory 713 when activated on the secure memory, it outputs its own access information to the access management unit 702.
  • the access information is the address of the memory area that can be accessed by each program.
  • the memory protection unit 701 includes an access management unit 702 and a signal monitoring unit 703 as shown in FIG. [0425]
  • the access management unit 702 receives access information from each program on the secure memory 713, and stores the received access information in association with the corresponding program.
  • Each program has a counter that counts the number of unauthorized accesses.
  • the signal monitoring unit 703 stores, in advance, the number of times (permissible times) that an unauthorized access of each program is allowed.
  • the signal monitoring unit 703 monitors a signal on the bus between the secure memory 713 and the CPU, and detects an address on the secure memory 713 to be accessed by the CPU.
  • the access information of the currently executing program is read from the access management unit 702, and the read access information is compared with the detected address. If the detected address is included in the storage area indicated by the read access information, the monitoring is continued as it is. If not, the access management unit 702 adds 1 to the counter stored in association with the corresponding program. Next, the counter is compared with the stored allowable number. If the counter is equal to or less than the allowable number, monitoring is continued as it is.
  • the signal monitoring unit 703 forcibly stops the execution of the music decryption program 704 and transfers the execution right of the CPU 102 to the secure OS 707. .
  • the signal monitoring unit 703 forcibly stops execution of the secure OS 707, clears the CPU 102 and the MMU, and issues a switching instruction to the switching control unit. Is output.
  • the mobile phone of the present invention monitors the operation of each program loaded in the secure memory 713, and stops the execution of the program that repeats an illegal operation. By doing so, even if a program in the secure memory 713 has a defect or if illegal alteration is added during execution, the execution of these programs can be stopped. [0429] 4.3 Modification of Embodiment 4
  • the memory protection unit 701 uses the signal monitoring unit 703 to monitor the signal on the node to detect an improper operation.
  • the PU program counter value may be monitored.
  • the access management unit 702 may store information indicating an access prohibited area on the secure memory 713 in advance. In this case, even if any program is running, if the user tries to access the prohibited area, the signal monitoring unit stops the CPU 102 from executing the program, clears the CPU 102 and the MMU, and issues a switching instruction to the switching control unit. Is output.
  • the memory protection unit 701 includes the revocation list storage unit, the application verification unit, the application invalidation unit, the OS verification unit, and the OS invalidation. It is also possible to determine whether or not each program on the secure memory is valid when receiving a connection instruction from the switching control unit.
  • the signal monitoring unit 703 finds a program that performs an illegal operation during operation, stops the operation of the program, and disables the OS revocation list or the application revocation list stored in the revocation list storage unit. Add the secure OSID or application ID corresponding to the program that performed the illegal operation to the list.
  • Embodiment 5 of the present invention will be described below.
  • the mobile phone 750 of the fifth embodiment has two memory cards.
  • One of the memory cards stores an OS (operating system) and various applications, and the mobile phone 750 reads and executes these programs.
  • This memory card is usually referred to as a memory card 800 for convenience of explanation.
  • a program for performing a process to be protected is encrypted. It is remembered. Each program is composed of a program part and a data part. This memory card is referred to as a secure memory card 820 for convenience of explanation.
  • the mobile phone 750 prohibits the reading of the program portion of each program on the secure memory card 820, the reading portion S of the other program, and the reading of the data portion of the other program.
  • the secure memory card 820 includes an input / output unit 821 and an information storage unit 830.
  • the secure memory card 820 is a computer system specifically including a microprocessor, a RAM, and a ROM, and the RAM and the ROM store computer programs. When the microprocessor operates according to the computer program, the secure memory card 820 achieves some of its functions.
  • the input / output unit 821 inputs and outputs information to and from an external device.
  • the information storage unit 830 stores a secure ID 850, an encryption key decryption program 831, an encryption key generation program 841, and the like.
  • the secure ID 850 is information unique to the secure memory card 820, and indicates that the secure memory card 820 stores a program for performing secure processing! /.
  • the encrypted music decryption program 831 includes an ID 832 “A”, an encryption decryption program 834, and encrypted data 836.
  • ID832 “A” is identification information unique to the encryption / decryption music decryption program 831.
  • the decryption program 834 is generated by decrypting a decryption program including a procedure for decrypting music data.
  • the decryption data 836 includes parameters used by the decryption program for decryption processing. Is obtained by encrypting the above data.
  • the encryption key generation program 841 includes ID 842 "B", an encryption generation program 844, and encryption key data 846.
  • ID 842 “B” is identification information unique to the encryption key generation program 841.
  • the encryption generation program 844 is obtained by encrypting a generation program including a procedure for generating an encryption key, and the encryption key data 846 stores data such as parameters used by the generation program. The data is encrypted.
  • the normal memory card 800 includes an input / output unit 801 and an information storage unit 802 as shown in FIG.
  • the input / output unit 801 inputs and outputs various data between the information storage unit 802 and an external device.
  • the information storage unit 802 stores various applications such as the music reproduction program 808, and the OS 806.
  • the programs stored in the information storage unit 802 are composed of a code part including a procedure of a process executed by each program and a data part.
  • Each program has a unique program ID.
  • the OS 806 has a program ID “OS”
  • the music playback program 808 has a program ID “E”.
  • Cellular phone 750 Fig. 68 [As shown here, Denogga IF751, CPU752, MMU753, harmful controller 757, input section 758, display section 759, memory 761, memory protection section 764, input / output section 765 , I / O section 766, wireless communication control section 768, communication section 771, antenna 772, microphone 796, speaker 770, buffer 773, code processing 774, D / A conversion 776 It is composed.
  • the operation and configuration of the 776 are the same as those in the first embodiment, and thus description thereof is omitted here.
  • the memory 761 stores various data and programs, and the CPU 752 fetches instructions included in the programs stored in the memory 761, the normal memory card 800 and the secure memory card 820 one by one, Decode and execute the fetched instruction.
  • I / O section 765 and I / O section 766 The input / output unit 765 and the input / output unit 766 are connected to one of the two memory cards, and perform input / output of information between the memory card and the memory protection unit 764.
  • the memory protection unit 764 includes a decryption unit 781, a decryption key storage unit 782, an access control unit 783, a key storage unit 784, a memory information storage unit 785, and an ID detection unit 786.
  • the key storage unit 784 stores the decryption key of the encryption key decryption program 831 and the decryption key of the encryption key generation program 841 in association with the ID of each program.
  • the decryption unit 781 receives the decryption instruction and the cipher text from the access control unit 783. Upon receiving the decryption instruction, the decryption key is read from the decryption key storage unit 782, and the decrypted data is decrypted using the decrypted key to generate plaintext. Output the generated plaintext to CPU752.
  • the encrypted data decrypted by the decrypting unit 781 is encrypted data stored in the secure memory card 820 and constituting the encrypted encrypted music decryption program 831 and the encrypted encryption key generation program 841.
  • the decryption key storage unit 782 stores only one decryption key used by the decryption unit 781.
  • the memory information storage unit 785 stores a secure memory information table 811 and a normal memory information table 861.
  • the secure memory information table 811 is composed of a plurality of secure memory information 812, 813.
  • Each secure memory information includes a program, a code address, and a data address.
  • the program ID is an ID of each program stored in the secure memory card 820.
  • the code address is an address indicating an area where a program portion of the encryption application stored in the secure memory card 820 is stored.
  • the data address is an address indicating an area where a data portion of the encryption application is stored.
  • the secure memory information 812 includes an ID "A” 832 of the encrypted music decryption program 831 as a program ID and an address "AOOOO" stored in the encryption and decryption program 834 as a code address. —All ”and the address of“ A222—A333 ”stored as the data address of the encrypted and decrypted data 836! /.
  • the secure memory information 813 includes an ID “B” 842 of the encryption key generation program 841 as a program ID, an address ⁇ 444—A555 stored in the encryption generation program 844 as a code address, and a data address as a data address. Includes the address “A666—A777” stored in the encryption key data 846!
  • the normal memory information table 861 is configured to include a plurality of pieces of normal memory information 862, 863 ... Each piece of normal memory information includes a program, a code address, and a data address.
  • the program ID is usually the ID of the program stored on the memory card 800
  • the code address is an address indicating the area where the program portion of the program corresponding to the program ID is stored
  • the data address is the data address. This is the address of the area where the part is stored.
  • the normal memory information 862 corresponds to the OS 806 stored on the normal memory card 800, and the normal memory information 863 corresponds to the music reproduction program 808.
  • the ID detection unit 786 constantly monitors the program counter (hereinafter referred to as PC) of the CPU 752. While the program on the secure memory card 820 is being executed, the program ID indicating the program being executed by the CPU 752 is output. I remember.
  • PC program counter
  • step S801 the CPU 752 normally executes a program stored in the memory card 800 or the memory 761.
  • the ID detection unit 786 monitors the PC (step S801), and includes the code address of each program included in the secure memory information table 811 and the normal memory information table 861 stored in the memory information storage unit 785, and indicates the PC address. By comparing with the address, the PC It is determined whether the address is an address on the secure memory card 820 (step S802).
  • step S802 If the address is not an address on the secure memory card 820 (NO in step S802), monitoring of the PC is continued.
  • step S802 If it is determined that the address is on the secure memory card 820 (YES in step S802), the secure memory information corresponding to the detected address of the PC is selected from the secure memory information table 811 and the selected secure memory information is selected. Then, the program ID included in is extracted (step S803). The extracted program ID is stored (step S804). Next, a secure access notification indicating that the execution of the program on the secure memory card 820 is started is output to the access control unit 783 (step S805).
  • step S806 the PC is monitored (step S806), and it is determined whether or not the address stored in the PC is an address on the secure memory card 820 (step S807).
  • step S807 If it is determined that the address is on the secure memory card 820 (YES in step S807), the secure memory information corresponding to the detected address is selected from the secure memory information table 811 and the program ID included in the selected secure memory information is selected. Is extracted (step S809). The extracted program ID is compared with the program ID stored in the ID detection unit 786 itself. If they match (YES in step S811), the process returns to step S806 to continue monitoring the PC.
  • step S811 If they do not match (NO in step S811), the stored program ID is rewritten to the extracted program ID (step S812), and the process returns to step S806.
  • step S807 If it is determined in step S807 that the address is not the address on the secure memory card 820 (NO in step S807), the program ID stored in the ID detection unit 786 itself is deleted (step S814), and the process returns to step S801.
  • the access control unit 783 stores the security ID written in the secure memory card 820 in advance.
  • the memory card Via the input / output unit 765 and the input / output unit 766, it is detected that the memory card is inserted. When a memory card is detected, the data written to the memory card is searched. The When the same secure ID 850 as the stored secure ID is detected, it is detected that the memory card is the secure memory card 820.
  • the input / output unit 265 is connected to the normal memory card 800, and the secure memory card 820 is connected to the secure memory card 820.
  • the access control unit 783 searches for information stored in the normal memory card 800 via the input / output unit 765, and A memory information table is generated, and the generated normal memory information table is stored in the memory information storage unit 785.
  • the attachment of the secure memory card 820 is detected through the input / output unit 766, the information stored in the secure memory card 820 is searched through the input / output unit 766, and the secure memory information table is generated. The generated secure memory information table is written to the memory information storage unit 785.
  • the access control unit 783 mediates a signal output from the CPU 752 (hereinafter, referred to as an access signal) to the normal memory card 800 as it is. It receives output data from the memory card 800 and outputs the received data to the CPU 752.
  • the CPU 752 accesses the secure memory card 820
  • the address of the access destination is extracted from the access signal, and reading of the secure memory card 820 data or prohibition of reading is performed by the extracted address.
  • the operation of the access control unit 783 will be described in detail with reference to flowcharts shown in FIGS. Note that the description starts from step S821 for convenience of description. At this time, the CPU 752 executes the program on the memory card 800 or the memory 761 normally.
  • the access control unit 783 mediates data input / output between the CPU 752 and the normal memory card 800 (step S821).
  • the secure access notification indicating that the execution of the program on the secure memory card 820 is started is received from the ID detection unit 786 (step S805).
  • the access control unit 783 Upon receiving the secure access notification, the access control unit 783 invalidates the debugger IF751 (step S823) and reads the program ID stored in the ID detection unit 786 (step S823). Step S824).
  • the decryption key corresponding to the read program ID is read from the key storage unit 784 (step S826), and the read decryption key is written to the decryption key storage unit 782 (step S827).
  • the access signal output from the CPU 752 is received, and the address of the access destination is detected from the received access signal (step S829).
  • the program ID is read from the ID detection unit 786 (step S831).
  • the secure memory information including the detected access destination address in the code address or the data address is selected from the secure memory information table 811. The selected secure memory information is also used to extract the program ID. Yes (step S834).
  • step S836 The extracted program ID is compared with the program ID read from ID detection section 786, and if they match (YES in step S836), the process proceeds to step S844.
  • the access control unit 783 further checks whether the detected address is included in the code address of the selected secure memory information or in the data address. Is determined (step S838). If it is determined that the address is included in the data address (NO in step S838), an error notification indicating that access is not permitted is output to CPU 752, and the process returns to step S829.
  • step S838 If it is determined that it is included in the code address (YES in step S838), the decryption key corresponding to the extracted program ID is read from the key storage unit 784, and the decryption key stored in the decryption key storage unit 782 is read. Is changed to the read decryption key (step S842).
  • step S844 the information stored in the storage area corresponding to the detected address is read out via the input / output unit 766 (step S844).
  • the decoding unit 781 is instructed to decode the read information (step S846), and the process returns to step S829.
  • step S832 if the program ID stored in ID detection section 786 does not exist (NO in step S832), access control section 783 determines the decryption key stored in decryption key storage section 782. Is erased (step S851), the debugger IF751 is enabled (step S852), and the process returns to step S821.
  • the mobile phone of the present invention normally executes a program stored in a memory card and a secure memory card. Stored on a secure memory card
  • the memory protection unit 764 manages an area to which access is permitted and an area to be prohibited by the program being executed. .
  • the CPU 752 is configured to store an area in which the encrypted music decryption program 831 included in the encrypted music decryption program 831 is stored and the encryption area of the encrypted decryption key generation program.
  • the CPU 752 is configured to store an area in which the encrypted music decryption program 831 included in the encrypted music decryption program 831 is stored and the encryption area of the encrypted decryption key generation program.
  • each application on the secure memory card 820 can be prevented from accessing its own data section from another application, reading data illegally, and being modified.
  • the secure memory card 820 since the information stored in the secure memory card 820 is encrypted, if the secure memory card 820 is accessed while the CPU 752 is executing a program other than the program on the secure memory card 820, But it cannot be deciphered. Therefore, the data on the secure memory card 820 can be protected from unauthorized access.
  • the access control unit 783 when the CPU 752 attempts to access the data portion of another application during execution of the secure application on the secure memory card 820, the access control unit 783 outputs an error notification to the CPU 752 As in the fourth embodiment, the execution right of the CPU 752 may be transferred to another program, for example, the OS 806. In this case, the access control unit 783 deletes the decryption key stored in the decryption key storage unit 782 and sets the address stored in the OS 806 in the program counter of the CPU 782.
  • the present invention may be a method for executing the above-described Embodiments 13 to 13 and modified examples.
  • the present invention may be a computer program that realizes these methods by a computer, or a digital signal that also has the capability of the computer program.
  • the present invention provides a computer-readable recording medium for the computer program or the digital signal, for example, a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAMROMBD (Blu-ray Disc), semiconductor memory, or the like. Further, the present invention may be the computer program or the digital signal recorded on these recording media.
  • the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, data broadcasting, or the like.
  • the present invention may be a computer system including a microprocessor and a memory, wherein the memory stores the computer program, and the microprocessor operates according to the computer program.
  • Each device and recording medium constituting the present invention handles an industry that handles information that needs to be protected, for example, an industry related to creation and distribution of content including video and audio, and handles such information. It can be used managerically and continuously and repeatedly in the industries that manufacture and sell electrical equipment. Further, each device and recording medium constituting the present invention are manufactured in the electric appliance manufacturing industry in a business-wise, continuously and repeatedly manner. Can be sold.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

 【課題】保護対象となるセキュアリソースにアクセスするセキュアモードとセキュアリソースにアクセスできない通常モードとを切り替えて実行するデータ処理装置において、セキュアモードで前記セキュアリソースが増大すると前記リソースを保護する保護機構に係る負荷が大きくなる。従って、セキュアリソースを削減することができるデータ処理装置に対する要望がある。  本発明は、前記セキュアリソースを利用する1つ以上の処理手順と通常モードで実行される通常プログラムを呼び出す呼出命令を含むセキュアプログラムを記憶しており、前記セキュアプログラムの実行途中に、前記呼出命令により、通常プログラムを呼び出し、呼び出した通常プログラムに従って動作するデータ処理装置である。                                                                                 

Description

データ処理装置
技術分野
[0001] 本発明は、セキュアリソースにアクセス可能なセキュアモードと、セキュアリソース以 外の通常リソースにのみアクセス可能な通常モードとを切り替えて、プログラムを実行 する装置において、セキュアモードで実行されるプログラムと通常モードで実行される プログラムとを対応して動作させる技術に関する。
背景技術
[0002] 近年、様々な機器にぉ ヽて、音楽及び映像を含むデジタルコンテンツが取り扱わ れるようになっている。これらの機器は、デジタルコンテンツを劣化させることなく複製 、編集することが可能である。しかし、著作権の観点から、これらのデジタルコンテン ッは、保護されて扱われる必要がある。
従来技術によると、保護される必要のあるセキュアデータ及び保護される必要のあ るセキュアアプリケーションへのアクセスが可能なセキュアモードと、これらのセキュア データ及びセキュアアプリケーションにアクセスすることができない通常モードとをモ ニタによって切り替えて実行するデータ処理装置が開示されている。この技術よると、 通常モードにお 、て動作するアプリケーションは、通常モードで動作するオペレーテ イングシステムを介して、セキュアアプリケーションへ処理を依頼する。オペレーティン グシステムは、モニタへ実行モードの切替を依頼し、モニタは、実行モードを切り替え る。セキュアアプリケーションは、依頼された処理を行い、処理結果をセキュア実行モ ードで動作するセキュアオペレーティングシステムを介して、アプリケーションへ返却 する。セキュアオペレーティングシステムは、モニタに実行モードの切替を依頼し、モ ユタは実行モードを切り替える。このような構成により、セキュアモードと通常モードと を切り替えて実行することで、通常モードで動作するアプリケーションから、直接セキ ユアデータゃセキュアアプリケーションへアクセスすることはできない。従って、セキュ ァデータ及びセキュアアプリケーションを保護することができる。
非特許文献 1 : A New Foundation for CPU Systems Security (平成 15年 11月 20日検索、 URL :
http://www.arm.com/armtech.nsf/htmlall/FC4C07580E29428080256DlA004A2345 /$File/TrustZone#WP.pdf?OpenElement)
発明の開示
発明が解決しょうとする課題
[0003] し力しながら、従来技術の示す方法では、セキュアモードで使用するデータ及びプ ログラムなどを記憶するメモリを、通常モードで使用するメモリとは別個に確保する必 要がある。セキュアモードで使用されるメモリは、不正なアクセスから当該メモリを保護 する保護機構を必要とする。従って、セキュアモードで使用されるメモリが増加すると 、保護機構に係る負荷が大きくなり、保護機構の規模を大きくする必要が生じる。ゆ えに、セキュアモードで使用されるメモリを削減することができるデータ処理装置に対 する要望がある。
[0004] そこで本発明は力かる問題点に鑑みてなされたものであり、セキュアモードで使用 される、メモリを削減することができるデータ処理装置、データ処理方法、データ処理 プログラム及び記録媒体を提供することを目的とする。
課題を解決するための手段
[0005] 上記目的を達成するために本発明は、保護対象のセキュアリソースの利用が許可 されるセキュアモードと、保護対象外の通常リソースの利用のみが許可される通常モ 一ドとを切り替えて、プログラムを実行するデータ処理装置であって、前記通常リソー スを利用する 1つ以上の処理手順力 構成される通常プログラムを記憶している通常 記憶手段と、前記セキュアリソースを利用する 1つ以上の処理手順力 構成され、少 なくとも前記通常プログラムを呼び出す呼出命令を含むセキュアプログラムを記憶し ているセキュア記憶手段と、セキュアモードにおいて、次に実行すべき命令が、前記 呼出命令であるか否かを判断する判断手段と、セキュアモードにおいて、前記呼出 命令であると判断される場合に、当該呼出命令により呼び出される前記通常プロダラ ムを示す識別情報を出力する出力手段と、前記呼出命令であると判断される場合に 、セキュアリソースを保護して、セキュアモードから通常モードに切り替える切替手段 と、通常モードにおいて、前記識別情報を受け取る受取手段と、通常モードにおいて 、受け取った前記識別情報により示される前記通常プログラムを前記通常記憶手段 から読み出す読出手段と、通常モードにおいて、読み出した通常プログラムに従って 動作する処理手段とを備えることを特徴とする。
発明の効果
[0006] 上記の構成によると、前記セキュアプログラムは、前記呼出命令を含み、次に実行 すべき命令が、前記呼出し命令である場合、切替手段は、セキュアモードから通常モ ードに切り替え、通常モードにおいて、受取手段は、前記識別情報を受け取り、読出 手段は、受け取った前記識別情報により示される前記通常プログラムを前記通常記 憶手段から読み出し、処理手段は、読み出した通常プログラムに従って動作する。従 つて、前記呼出し命令を実行することで、前記セキュアプログラムは、通常モードで動 作する通常プログラムへ、処理を依頼することができる。つまり、セキュアリソースを利 用しな 、処理を通常プログラムに実行させることにより、セキュアプログラム自体のプ ログラムサイズが減少する。さらに、セキュアモードにおいて、セキュアプログラムが使 用するメモリを減少、させることができる。
[0007] 前記データ処理装置にお!、て、前記切替手段は、前記セキュアプログラムを制御 するセキュアオペレーティングシステムを中断させ、前記通常プログラムを制御する 通常オペレーティングシステムを起動することにより、セキュアモードから通常モード に切り替える。
この構成によると、前記切替手段は、前記セキュアオペレーティングシステムを中断 させた後、通常オペレーティングシステムを起動する。このため、当該データ処理装 置は、通常モードで動作中には、前記セキュアリソースへのアクセスルートを完全に 切断し、セキュアモードと通常モードとを排他的に実現することができる。
[0008] また、前記データ処理装置は、セキュアモード及び通常モードの両方において、ァ クセスが許可される共有記憶領域を備え、前記出力手段は、セキュアモードにおい て、前記識別情報を前記共有記憶領域に書き込むことにより、前記識別情報を出力 し、前記受取手段は、通常モードにおいて、前記共有記憶領域から前記識別情報を 読み出すことにより、前記識別情報を受け取ることを特徴とする。
[0009] この構成によると、前記共有記憶領域は、通常モード及びセキュアモードにおいて アクセス可能である。従って、本発明のデータ処理装置は、セキュアモードと通常モ 一ドとを排他的に実現して、セキュアリソースを保護しながら、セキュアモードと通常モ ードとの間で確実に情報の授受を行うことができる。
また、前記読出手段は、前記識別情報と前記通常記憶手段における前記通常プロ グラムの存在位置を示す位置情報とを対応付けて記憶しており、受け取った前記識 別情報に対応する位置情報により示される存在位置力 前記通常プログラムを読み 出すことを特徴とする。
[0010] この構成によると、前記読出手段は、前記識別情報と前記通常記憶手段における 前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶しているため、 受け取った識別情報対応する位置情報を用いて、確実かつ迅速に、前記通常プロ グラムを読み出すことができる。
前記データ処理装置において、前記通常プログラムを構成する 1の処理手順は、ラ イブラリを構成する複数の関数を含み、他の処理手順は、前記複数の関数のうちの いずれかを呼び出し、前記処理手段は、前記他の処理手順に従って動作する場合 に、当該他の処理手順により呼び出される関数に従って動作することを特徴とする。
[0011] この構成〖こよると、前記通常プログラムを構成する 1つの処理手順は、ライブラリを 構成する複数の関数を含み、他の処理手順は、前記複数の関数のうちのいずれかを 呼び出す。従って、前記セキュアプログラムは、ライブラリを構成する関数を使用する 処理を前記通常プログラムへ依頼することができる。このため、セキュアモードにおい て、メモリ上にライブラリを保持する必要がなくなる。
[0012] 前記データ処理装置は、さらに、セキュアモードにおいて、前記セキュアプログラム の前記セキュア記憶手段への書き込みを示す書込指示を受け取る指示取得手段と 、セキュアモードにおいて、前記書込指示を取得した場合に、前記セキュア記憶手段 に前記セキュアプログラムを書き込み、前記書込みが終了したことを示す書込終了情 報を出力するセキュアロード手段とを含み、前記切替手段は、さらに、前記書込終了 情報が出力された場合、セキュアモードから通常モードへ切り替え、前記データ処理 装置は、さらに、通常モードにおいて、前記書込終了情報を受け取り、前記通常記憶 手段に前記通常プログラムを書き込む通常ロード手段とを含むことを特徴とする。 [0013] この構成によると、指示取得手段が、書込指示を取得した場合に、前記セキュア口 ード手段がセキュアモードにおいて、前記セキュアプログラムの前記セキュア記憶手 段への書き込みを示す書込指示を受け取ると、前記セキュア記憶手段に前記セキュ ァプログラムを書き込み、前記通常ロード手段が前記通常記憶手段に前記通常プロ グラムを書き込む。このようにすることで、前記セキュアプログラムの実行中には、常に 、前記通常記憶手段に前記通常プログラムが記憶されており、セキュアプログラム含 まれる呼出し命令が実行される際には、速やかに前記通常プログラムの実行に移る ことができる。
[0014] 前記データ処理装置を構成する前記読出手段は、さらに、通常モードにおいて、 前記通常ロード手段により前記通常プログラムが前記通常記憶手段に書き込まれた 場合に、前記識別情報と前記通常記憶手段における前記通常プログラムの存在位 置を示す位置情報とを対応付けて記憶することを特徴とする。
この構成では、前記読出手段は、前記通常プログラムが前記通常記憶手段に書き 込まれた場合に、前記識別情報と前記通常記憶手段における前記通常プログラムの 存在位置を示す位置情報とを対応付けて記憶する。このようにすることで、前記セキ ユアプログラムのロード直後から、前記読出手段は前記識別情報と前記通常記憶手 段における前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶して いる。従って、セキュアプログラム含まれる呼出し命令が実行される際には、速やかに 前記通常プログラムを読み出すことができる。
[0015] 前記データ処理装置は、さらに、セキュアモードにおいて、前記セキュアプログラム の削除を指示する削除指示を取得する削除指示取得手段と、前記削除指示を取得 した場合に、セキュアモードにおいて、前記セキュアプログラムを前記セキュア記憶 手段力 削除し、前記削除が終了したことを示す削除終了情報を出力するセキュア 削除手段とを含み、前記切替手段は、さらに、前記削除終了情報が出力された場合 、セキュアモードから通常モードへ切り替え、前記データ処理装置は、さらに、通常モ ードにおいて、前記削除終了情報を取得し、前記通常記憶手段から前記通常プログ ラムを削除する通常削除手段を含むことを特徴とする。
[0016] この構成によると、削除指示取得手段が前記セキュアプログラムの削除を指示する 削除指示を取得すると、セキュア削除手段が、前記セキュアプログラムを前記セキュ ァ記憶手段から削除し、通常削除手段が、前記通常記憶手段から前記通常プロダラ ムを削除する。
従って、前記セキュアプログラムがロードされていない間は、前記通常プログラムも ロードする必要がないため、このようにすることで、前記通常プログラムによって、通常 モードで使用するメモリ領域を無駄にすることを防ぐことができる。
[0017] 前記データ処理装置にお!、て、前記読出手段は、前記識別情報と前記通常記憶 手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶し ており、受け取った前記識別情報に対応する位置情報により示される存在位置から 前記通常プログラムを読み出すことを特徴とする。
この構成によると、前記読出手段は、前記識別情報と前記通常記憶手段における 前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶しているため、 受け取った識別情報対応する位置情報を用いて、確実かつ迅速に、前記通常プロ グラムを読み出すことができる。
[0018] 前記データ処理装置は、さらに、前記処理手段を含む当該データ処理装置の備え る 1以上のデバイスを初期化する初期化手順及び前記セキュアオペレーティングシス テムを起動する起動手順を含むブートプログラムを記憶しているブートプログラム記 憶手段と、前記ブートプログラム記憶手段から、前記ブートプログラムを読み出し、読 み出した前記ブートプログラムに従って、前記デバイスを初期化し、初期化の完了後 に、セキュアオペレーティングシステムを起動する初期化手段とを備えることを特徴と する。
[0019] この構成によると、前記初期化手は、段電源投入時に前記ブートプログラムに従つ て、前記デバイスを初期化し、初期化の完了後に、セキュアオペレーティングシステ ムを起動する。このように、本発明のデータ処理装置は、通常モードで実行されるプ ログラムを起動する前に、セキュアオペレーティングシステムを起動することで、起動 時に、通常モードで実行されるプログラムの不正な動作により、セキュアモードで実行 されるプログラムゃセキュアリソースの不正な利用を防ぐことができる。
[0020] 前記データ処理装置は、さらに、通常モードにおいて、前記処理手段による処理結 果と前記セキュアプログラムを示すセキュア識別情報とを出力する通常出力手段を 含み、前記切替手段は、さらに、前記処理結果が出力された場合、通常モードから セキュアモードへ切り替え、前記データ処理装置は、さらに、セキュアモードにおいて 、前記処理結果と前記セキュア識別情報とを受け取るセキュア受取手段と、受け取つ た前記セキュア識別情報に対応する前記セキュアプログラムを前記通常記憶手段か ら読み出すセキュア読出手段とを含み、前記処理手段は、さらに、セキュアモードに おいて、前記処理結果を用いて、前記セキュアプログラムに従って動作することを特 徴とする。
[0021] この構成では、通常出力手段は、通常モードにおいて、前記処理手段による処理 結果と前記セキュアプログラムを示すセキュア識別情報とを出力し、セキュア受取手 段は、セキュアモードにおいて、前記処理結果と前記セキュア識別情報とを受け取り 、セキュア読出手段は、受け取った前記セキュア識別情報に対応する前記セキュア プログラムを前記通常記憶手段から読み出し、前記処理手段は、さらに、セキュアモ ードにおいて、前記処理結果を用いて、前記セキュアプログラムに従って動作する。 従って、本発明のデータ処理装置では、セキュアモードで実行される前記セキュアプ ログラムにより依頼された処理を、通常モードにおいて前記処理手段が前記通常プ ログラムに従って実行し、処理結果を正確に、前記セキュアプログラムへ返すことが できる。
[0022] また、前記データ処理装置にお!、て、前記切替手段は、セキュアモードから通常モ ードに切り替える際に、前記セキュアリソースと前記処理手段とを切断することを特徴 とする。
この構成によると、前記切替手段は、セキュアモードから通常モードに切り替える際 に、前記セキュアリソースと前記処理手段とを切断するため、通常モードにおいて、 前記処理手段は、前記セキュアリソースにアクセスすることができない。従って、前記 セキュアリソースの安全を確保することができる。
[0023] 前記切替手段は、セキュアモードから通常モードに切り替える際に、前記セキュアリ ソースに保持されているセキュア情報を暗号ィ匕することを特徴とする。
この構成では、前記切替手段は、セキュアモードから通常モードに切り替える際に 、前記セキュアリソースに保持されているセキュア情報を暗号ィ匕するため、通常モー ドにおいて、前記処理手段は、前記セキュアデータを利用することができない。従つ て、通常モードにおいて、前記セキュアリソースの保持するセキュアデータの安全を ½保することができる。
[0024] 前記データ処理装置において、前記セキュアリソースに保持されている前記セキュ ァ情報は、セキュアモードにおいて実行され、命令コード部分とデータ部分とスタック 部分力 構成されるプログラムを含んでおり、前記切替手段は、セキュアモードから 通常モードに切り替える際に、前記命令コード部分を暗号ィ匕することを特徴とする。 また、前記切替手段は、セキュアモードから通常モードに切り替える際に、前記デ ータ部分を暗号ィ匕するとてもよい。
[0025] また、前記切替手段は、セキュアモードから通常モードに切り替える際に、前記スタ ック部分を暗号ィ匕するとしてもよ 、。
この構成によると、前記切替手段は、セキュアモードから通常モードに切り替える際 に、前記命令コード部分を暗号ィ匕する。又は、前記切替手段は、セキュアモードから 通常モードに切り替える際に、前記データ部分を暗号化する。又は、前記切替手段 は、セキュアモードから通常モードに切り替える際に、前記スタック部分を暗号化する
[0026] このように、前記プログラムのうち、保護する必要のある部分だけを暗号ィ匕すること で、暗号化に係る処理負荷を軽くすることができる。
前記データ処理装置は、さらに、前記処理手段の動作を監視し、操作するデバッグ 装置からデバッグ操作信号を受け付けるデバッグ受付手段を含み、前記切替手段は 、セキュアモードから通常モードに切り替える際に、前記処理手段と前記デバッグ受 付手段とを接続し、通常モードからセキュアモードに切り替える際に、前記処理手段 と前記デバッグ受付手段とを切断することを特徴とする。
[0027] この構成によると、前記切替手段は、通常モードからセキュアモードに切り替える際 に、前記処理手段と前記デバッグ受付手段とを切断するため、本発明のデータ処理 装置は、セキュアモードで動作中には、外部のデバッグ装置に動作の監視及び操作 されることがないため、前記デバッグ装置から、前記セキュアリソースを保護すること ができる。
本発明のデータ処理装置において、前記読出手段は、前記識別情報と前記通常 記憶手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて 記憶しており、受け取った前記識別情報に対応する位置情報により示される存在位 置力も前記通常プログラムを読み出す構成であっても良い。
[0028] この構成によると、前記読出手段は、前記識別情報と前記通常記憶手段における 前記通常プログラムの存在位置を示す位置情報とを対応付けて記憶しているため、 受け取った識別情報対応する位置情報を用いて、確実かつ迅速に、前記通常プロ グラムを読み出すことができる。
本発明は、第 1オペレーティングシステムと第 2オペレーティングシステムとを切り替 え、各オペレーティングシステムにおいて生成されるプロセスを実行状態、実行待ち 状態、休止状態の!/ヽずれかに遷移させてプロセスを実行し管理する前記データ処理 装置であって、前記第 1オペレーティングシステムにおいて、第 1プロセスを生成する 第 1生成手段と、前記第 2オペレーティングシステムにおいて、前記第 1プロセスと対 応する第 2プロセスを生成する第 2生成手段と、前記第 1オペレーティングシステムに おいて、前記第 1プロセスの状態遷移を検出する第 1検出手段と、前記第 1オペレー ティングシステムにおいて、検出された状態遷移を示す遷移情報を出力する第 1出 力手段と、前記第 1オペレーティングシステムを前記第 2オペレーティングシステムに 切り替える OS切替手段と、前記第 2オペレーティングシステムにおいて、前記遷移情 報を取得する第 2取得手段と、取得した前記遷移情報に従って、前記第 2プロセスの 状態を遷移させる第 2遷移手段とを備えることを特徴とするデータ処理装置でもある。
[0029] この構成によると、前記第 1オペレーティングシステムにおいて、前記第 1出力手段 は、前記遷移情報を出力し、 OS切替手段は、前記第 1オペレーティングシステムを 前記第 2オペレーティングシステムに切り替える第 2オペレーティングシステムへ切り 替え、第 2オペレーティングシステムにおいて、第 2遷移手段は、前記遷移情報に従 つて、前記第 2プロセスの状態を遷移させる。従って、排他的に実行される 2つのオペ レーティングシステムが動作する前記データ処理装置において、前記第 1オペレーテ イングシステムにより制御される前記第 1プロセスの動作状態を、前記第 2プロセスを 介して前記第 2オペレーティングシステムにおいても監視することができる。
[0030] 前記データ処理装置は、さらに、前記第 2オペレーティングシステムにおいて、前記 第 2プロセスの状態遷移を検出する第 2検出手段と、前記第 2オペレーティングシス テムにおいて、検出された状態遷移を示す遷移情報を出力する第 2出力手段とを含 み、前記 OS切替手段は、さらに、前記第 2オペレーティングシステムを前記第 1オペ レーティングシステムに切り替え、前記データ処理装置は、さらに、前記第 1オペレー ティングシステムにおいて、前記遷移情報を取得する第 1取得手段と、取得した前記 遷移情報に従って、前記第 1プロセスの状態を遷移させる第 1遷移手段とを含むこと を特徴とする。
[0031] この構成によると、前記第 2出力手段は、前記第 2オペレーティングシステムにおい て、前記遷移情報を出力し、前記第 1遷移手段は、前記遷移情報に従って、前記第 1プロセスの状態を遷移させる。これにより、前記第 2オペレーティングシステムにより 制御される前記第 2プロセスの動作状態を、前記第 1プロセスを介して、前記第 1オペ レーティングシステムにおいても監視することができる。従って、前記第 1オペレーテ イングシステム及び前記第 2オペレーティングシステムは、それぞれの制御する第 1プ ロセス及び第 2プロセスの動作状態を相互に監視することができる。
[0032] さらに、前記データ処理装置は、第 1オペレーティングシステム及び第 2オペレーテ イングシステムの両方において、アクセス可能な共有記憶領域を備え、前記第 1出力 手段は、前記共有記憶領域に前記遷移情報を書き込むことにより、前記遷移情報を 出力し、前記第 2取得手段は、前記共有記憶領域から前記遷移情報を読み出すこと によって、前記遷移情報を取得することを特徴とする。
[0033] この構成によると、前記第 1出力手段及び前記第 2取得手段は、第 1オペレーティン グシステム及び第 2オペレーティングシステムの両方にぉ 、て、アクセス可能な前記 共有記憶領域を介して前記遷移情報受け渡す。前記共有記憶領域は、第 1ォペレ 一ティングシステム及び第 2オペレーティングシステムの両方にお!、て、アクセス可能 であるので、本発明のデータ処理装置は、第 1オペレーティングシステムと第 2ォペレ 一ティングシステムとを排他的に実行しながら、第 1オペレーティングシステム力も第 2 オペレーティングシステムへ情報を受け渡すことができる。 [0034] 前記データ処理装置を構成する前記第 2出力手段は、前記共有記憶領域に前記 遷移情報を書き込むことにより、前記遷移情報を出力し、前記第 1取得手段は、前記 共有記憶領域力 前記遷移情報を読み出すことによって、前記遷移情報を取得する ことを特徴とする。
従って、第 2オペレーティングシステムと第 1オペレーティングシステムとを排他的に 実行しながら、第 2オペレーティングシステム力も第 1オペレーティングシステムへ情 報を受け渡すことができる。
[0035] また、前記データ処理装置は、前記第 2オペレーティングシステムにお 、て管理さ れて動作するデバイスを含み、前記第 2プロセスは、前記デバイスの駆動を制御する デバイス駆動プログラムであり、前記第 2検出手段は、前記デバイスの動作に伴う前 記第 2プロセスの状態遷移を検出することを特徴とする。
この構成〖こよると、前記第 2プロセスは、前記デバイスの駆動を制御するデバイス駆 動プログラムであり、前記第 2検出手段は、前記デバイスの動作に伴う前記第 2プロ セスの状態遷移を検出する。従って、前記第 1プロセスも、前記デバイス駆動プロダラ ムの状態遷移に伴って招待遷移し、前記第 1オペレーティングシステムにおいても、 前記デバイスの駆動状態を監視することができる。
[0036] 前記第 1オペレーティングシステムにおいて、前記第 1プロセスが、休止状態から実 行状態に遷移した場合、前記データ処理装置は、前記デバイスへの処理依頼の重 複を回避する排他処理を行う前記第 1プロセスに従って動作し、前記第 1オペレーテ イングシステムにおいて、前記第 1出力手段は、前記排他処理が終了した後に前記 遷移情報を出力することを特徴とする。
[0037] 通常、このような排他処理は、前記デバイスの駆動を制御するデバイス駆動プログ ラムにより実行される力 この構成によると、前記データ処理装置において、前記第 1 プロセスが、前記デバイスへの処理依頼の重複を回避する排他処理を行ったあと前 記第 1オペレーティングシステムにおいて、前記第 1出力手段は、前記遷移情報を出 力する。出力された前記遷移情報により、前記第 2プロセスは実行状態に遷移し、前 記デバイスの駆動の制御を開始する。第 1オペレーティングシステムと第 2オペレー ティングシステムにより使用されるメモリ空間が個別に必要であり、特に、第 2ォペレ 一ティングシステムにより使用されるメモリを外部のアクセス力 保護する必要がある 場合を想定すると、排他処理を前記第 1プロセスが行うため、前記第 2プロセスは、排 他処理を行う必要がなくなる。従って、排他処理のために、前記第 2プロセスが使用 するメモリ領域が減少する。このため、保護する必要のあるメモリを削減することになり 、これらのメモリを外部から保護する保護機構の負荷を軽減することができる。
[0038] 前記データ処理装置は、さらに、第 1オペレーティングシステム及び第 2オペレーテ イングシステムにおいて、割込の発生を検出する割込検出手段と、前記第 1オペレー ティングシステムにおいて、割込が検出された場合、割込発生要因を調査する割込 調査手段と、前記第 1オペレーティングシステムにおいて、割込調査手段により、前 記デバイスによる割込であると判断された場合、前記第 1プロセスを休止状態から実 行状態に遷移させる割込遷移手段とを含むことを特徴とする。
[0039] さらに、前記データ処理装置は、前記第 2オペレーティングシステムにおいて、割込 が検出された場合、割込の検出を示す割込通知情報を出力する通知手段を含み、 前記 OS切替手段は、前記第 2オペレーティングシステムを前記第 1オペレーティング システムに切り替え、前記第 1取得手段は、さらに、前記第 1オペレーティングシステ ムにおいて、前記割込通知情報を取得し、前記割込調査手段は、さらに、第 1ォペレ 一ティングシステムにおいて、前記割込通知情報を取得した場合、割込発生要因を 調査する構成である。
[0040] この構成によると、前記第 1オペレーティングシステムにおいて、割込が検出された 場合、割込調査手段が、割込発生要因を調査する。また、前記第 2オペレーティング システムにおいて、割込が検出された場合、前記通知手段が割込の検出を示す割 込通知情報を出力し、第 1オペレーティングシステムにおいて、割込調査手段が、割 込発生要因を調査する。
[0041] このようにすることで、第 2オペレーティングシステムの管理下に割込調査手段を供 える必要がなくなる。従って、本発明のデータ処理装置において、一つだけ、割込調 查手段を備えればよい。
前記データ処理装置において、前記通知手段は、割込が検出された場合、前記割 込検出手段に対して、割込の検出を停止させ、前記第 1取得手段は、前記割込通知 情報を取得した場合、前記割込検出手段に対して、前記停止を解除することを特徴 とする。
[0042] この構成によると、前記通知手段は、割込が検出された場合、前記割込検出手段 に対して、割込の検出を停止させ、前記第 1取得手段は、前記割込通知情報を取得 した場合、前記割込検出手段に対して、前記停止を解除する。従って、前記通知手 段から出力された割込通知情報を前記第 1取得手段が取得するまでの間、前記割込 検出手段によって、前記第 2オペレーティングシステムから前記第 1オペレーティング システムへの切り替えの動作が妨害されることがない。また、第 2オペレーティングシ ステム力 第 1オペレーティングシステムへ切り替わるまでの間に、前記割込検出手 段が、同一の割り込みを重複して検出することを、防ぐことができる。
[0043] 本発明は、プログラムに従って動作する前記データ処理装置であって、複数の処 理手順力 構成されるプログラムを記憶して 、る記憶手段と、前記記憶手段に記憶さ れて 、る前記プログラムが不正なものである力否かを判断する正当性判断手段と、不 正なものであると判断される場合に、前記プログラムを無効化する無効化手段とを備 えることを特徴とするデータ処理装置でもある。
[0044] この構成によると、前記正当性判断手段は、前記プログラムが不正なものであるか 否かを判断し、前記無効化手段不正なものであると判断される場合に、前記プロダラ ムを無効化するため、本発明のデータ処理装置において、不正なプログラムの実行 を防止することができる。
前記データ処理装置において、前記正当性判断手段は、前記記憶手段に記憶さ れている前記プログラムを示すプログラム識別情報を取得するプログラム情報取得部 と、無効化されたプログラムを示す無効化識別情報を取得する無効化情報取得部と 、取得した前記プログラム識別情報と取得した前記無効化識別情報とがー致するか 否かを判断する判断部とを含み、一致すると判断される場合に、前記プログラムが不 正であると決定することを特徴とする。
[0045] 上記の構成では、前記情報取得部取得した前記プログラム識別情報と前記無効化 情報取得部取得した前記無効化識別情報とがー致する力否かによって、容易に当 該プログラムが不正である力否かを決定することができる。 本発明のデータ処理装置に含まれる前記プログラム情報取得部は、前記プロダラ ムを示すプログラム識別情報を記憶して!/ヽる識別情報記憶部と、前記識別情報記憶 部から前記プログラム識別情報を読み出すことにより取得する読出部とを含み、前記 無効化情報取得部は、無効化されたプログラムを示す無効化識別情報を記憶して 、 る無効化情報記憶部と、前記無効化情報記憶部から前記無効化識別情報を読み出 すことにより取得する読出部とを含むことを特徴とする。
[0046] この構成によると、前記プログラム情報取得部は、予め前記プログラムを示すプログ ラム識別情報を記憶している前記識別情報記憶部から、迅速に、前記プログラム識 別情報を取得することができる。また、前記無効化情報取得部は、予め、無効化され たプログラムを示す無効化識別情報を記憶して!/、る前記無効化情報記憶部から、迅 速に前記無効化識別情報を取得することができる。
[0047] 前記データ処理装置は、前記正当性判断手段が、前記プログラムに割り当てられ た公開鍵の正当性を証明する公開鍵証明書に基づ 、て、前記プログラムが不正なも のである力否かを判断することを特徴とする。
この構成によると、前記正当性判断手段は、前記プログラムに割り当てられた公開 鍵の正当性を証明する前記公開鍵証明書に基づいて、前記判断を行う。公的な第 三者機関により発行された公開鍵証明書を用いることで、前記プログラムの正当性を より確実に判定することができる。
[0048] 前記データ処理装置にお!、て、前記正当性判断手段は、前記公開鍵を識別する 公開鍵識別情報を含む前記公開鍵証明書を記憶して!/、る証明書記憶部と、前記公 開鍵証明書力 前記公開鍵識別情報を取得する公開鍵情報取得部と、無効化され た公開鍵を示す無効化識別情報を記憶して!/、る無効化情報記憶部と、前記無効化 情報記憶部から無効化識別情報を読み出す無効化情報読出部と、取得した前記公 開鍵識別情報と読み出した前記無効化識別情報とがー致するか否かを判断する判 断部とを含み、一致すると判断される場合に、前記プログラムが不正であると決定す ることを特徴とする。
[0049] 上記の構成によると、前記判断部は、前記証明書記憶部の記憶して!/、る前記公開 鍵証明書に含まれる前記公開鍵識別情報と前記無効化情報記憶部の記憶している 前記無効化識別情報とを比較することで、容易に、前記プログラムが不正であると決 定することができる。
前記データ処理装置において、前記正当性判断手段は、さらに、外部から最新の 無効化識別情報を取得し、取得した無効化識別情報を前記無効化情報記憶部に書 き込む更新部を含むことを特徴とする。
[0050] この構成によると、前記更新部が、外部から最新の無効化識別情報を取得し、取得 した無効化識別情報を前記無効化情報記憶部に書き込む。一般に、公開鍵証明書 の発行機関は、後発的に無効化された公開鍵を示す情報を追加して前記無効化識 別情報を定期的に更新している。この発行機関から最新の無効化識別情報を取得し て用いることで、前記データ処理装置の販売後に不正であることが判明したプロダラ ムにも対応することができる。
[0051] また、前記更新部は、前記記憶手段へのアクセス要求を検出する度に、最新の無 効化識別情報を取得することを特徴とする。
上記の構成では、前記更新部は、前記記憶手段へのアクセス要求を検出する度に 、最新の無効化識別情報を取得するため、前記判定部は常に最新の無効化識別情 報を用いて前記プログラムの正当性を判断することができる。
[0052] 前記データ処理装置にお!ヽて、前記更新部は、 CRL (Certificate Revocation List) 発行装置から、ネットワークを介して、前記無効化識別情報を受信し、 CRL発行装置 から、ネットワーク及びサーバ装置を介して、前記無効化識別情報を受信し、又は記 録媒体力 前記無効化識別情報を読み出すことにより、取得することを特徴とする。 上記の構成では、前記更新部は、 CRL発行装置から、ネットワークを介して、前記 無効化識別情報を受信するため、最新の無効化識別情報を取得することができる。
[0053] また、 CRL発行装置から、ネットワーク及びサーバ装置を介して、前記無効化識別 情報を受信するため、前記データ処理装置自身に外部のネットワークとの通信機能 力 い場合であっても、サーバ装置によって、前記無効化識別情報を更新することが できる。
また、記録媒体から前記無効化識別情報を読み出すことにより、前記 CRL発行装 置と通信する環境がない場合でも、当該データ処理装置は、前記無効化識別情報を 更新することちでさる。
[0054] 前記更新部は、さらに、外部から、前記最新の無効化識別情報に対してデジタル 署名を施して生成された署名データを取得し、取得した署名データに署名検証を施 し、署名検証が成功した場合に、取得した前記無効化識別情報を前記無効化情報 記憶部に書き込むことを特徴とする。
この構成では、前記更新部は、前記署名データを取得し、取得した署名データに 署名検証を施し、署名検証が成功した場合に、取得した前記無効化識別情報を前 記無効化情報記憶部に書き込むため、前記無効化識別情報の正当な発行者から発 行された無効化識別情報を取得することができる。
[0055] 前記データ処理装置を構成する前記正当性判断手段は、少なくとも当該公開鍵に 対してデジタル署名を施して生成された署名データを含む前記公開鍵証明書を記 憶して!/、る証明書記憶部と、前記証明書記憶部から前記公開鍵証明書を取得する 公開鍵証明書取得部と、取得した前記公開鍵証明書に含まれる署名データに、署 名検証を施すことにより、取得した前記公開鍵証明書が正しいものであるか否かを検 証する検証部とを含み、前記公開鍵証明書が正 、ものでな!、と判断される場合に 、前記プログラムが不正であると決定することを特徴とする。
[0056] この構成では、前記正当性判断手段は、前記署名データに、署名検証を施すこと により、取得した前記公開鍵証明書が正しいものである力否かを検証し、前記公開鍵 証明書が正しいものでないと判断される場合に、前記プログラムが不正であると決定 する。従って、前記データ処理装置は、前記プログラムに割り当てられた公開鍵証明 書が不正な第三者により不正に生成ものであるか否かを判断することが可能であり、 正当な公開鍵証明書を有するプログラムだけを実行することができる。
[0057] また、前記データ処理装置において、前記正当性判断手段は、少なくとも 2個の公 開鍵の正当性をそれぞれ証明する少なくとも 2個の公開鍵証明書を用いて、前記記 憶手段に記憶されて 、る前記プログラムが不正なものである力否かを判断してもよ ヽ この構成では、前記正当性判断手段は、少なくとも 2個の公開鍵証明書を用いて、 前記記憶手段に記憶されている前記プログラムが不正なものであるか否かを判断す る。複数の公開鍵証明書を用いて前記判断を行うことで、より正確に、前記プログラム が不正であるカゝ否かを判断できる。
[0058] 前記 2個の公開鍵は、前記プログラムに割り当てられた第 1公開鍵及び前記データ 処理装置又は前記プログラムの動作を制御するオペレーティングシステムに割り当て られた第 2公開鍵であり、前記データ処理装置を構成する前記正当性判断手段は、 権威のある認証機関の秘密鍵を用いて、少なくとも前記第 2公開鍵に対してデジタル 署名を施して生成された第 2署名データと、前記第 2公開鍵とを含む第 2公開鍵証明 書と、前記データ処理装置又は前記オペ一ティングシステムの秘密鍵を用いて、少 なくとも前記第 1公開鍵に対してデジタル署名を施して生成された第 1署名データと、 前記第 1公開鍵とを含む第 1公開鍵証明書とを記憶している証明書記憶部と、前記 証明書記憶部から前記第 1公開鍵証明書及び前記第 2公開鍵証明書を取得する公 開鍵証明書取得部と、取得した前記第 2公開鍵証明書に含まれる第 2署名データに 、前記認証機関の公開鍵を用いて、署名検証を施すことにより、取得した前記第 2公 開鍵証明書が正しいものである力否かを検証し、正しいと判定された場合に、前記第 2公開鍵証明書力 前記第 2公開鍵を取得し、取得した前記第 1公開鍵証明書に含 まれる第 1署名データに、取得した前記第 2公開鍵を用いて、署名検証を施すことに より、取得した前記第 1公開鍵証明書が正しいものであるか否かを検証する検証部と を含み、前記第 2公開鍵証明書が正しいものでないと判断される場合及び前記第 1 公開鍵証明書が正 、ものでな!、と判断される場合に、前記プログラムが不正である と決定することを特徴とする。
[0059] この構成によると、前記正当性判断手段は、取得した前記第 2公開鍵証明書に含 まれる第 2署名データに、前記認証機関の公開鍵を用いて、署名検証を施すこと〖こ より、取得した前記第 2公開鍵証明書が正しいものであるか否かを検証し、正しいと 判定された場合に、前記第 2公開鍵証明書から前記第 2公開鍵を取得し、取得した 前記第 1公開鍵証明書に含まれる第 1署名データに、取得した前記第 2公開鍵を用 いて、署名検証を施すことにより、取得した前記第 1公開鍵証明書が正しいものであ るか否かを検証する。このように、階層構造を形成する複数の公開鍵証明書を用い て検証することで、上位の公開鍵証明書が無効な場合、つまり、前記プログラムを制 御するオペレーティングシステムが不正である場合にも前記プログラムを無効化し、 不正なオペレーティングシステムのもとで、前記プログラムが実行されることを防ぐ。
[0060] 又は、当該データ処理装置が不正である場合にも、前記プログラムの実行を防止 することができる。
前記データ処理装置を構成する前記正当性判断手段は、前記記憶手段へのァク セス要求を検出する度に、前記判断をすることを特徴とする。
また、前記正当性判断手段は、前記記憶手段に記憶されているプログラムへのァク セス要求を検出する度に、前記判断してもよい。
[0061] また、前記正当性判断手段は、当該データ処理装置へ電力供給が開始された直 後に、前記判断をするとしてもよい。
上記の構成によると、前記正当性判断手段は、前記記憶手段へのアクセス要求を 検出する度に、前記判断をする。又は、前記記憶手段に記憶されているプログラムへ のアクセス要求を検出する度に、前記判断をする。又は、当該データ処理装置へ電 力供給が開始された直後に、前記判断をする。従って、前記プログラムを実行する前 に、前記プログラムが不正である力否かを判断することができる。
[0062] また、本発明は、暗号化されたプログラムを復号して実行する前記データ処理装置 であって、前記記憶手段は、前記プログラムに代えて、プログラム鍵を用いて、前記 プログラムに暗号ィ匕アルゴリズムが施されて生成された暗号ィ匕プログラムを記憶して おり、前記正当性判断手段は、 p個の暗号鍵から選択された m個の暗号鍵を記憶し ている暗号鍵記憶部と、前記 m個の暗号鍵のそれぞれを用いて、前記プログラム鍵 及び所定の検知情報のいずれかが暗号化されて生成された m個の暗号ィ匕情報を、 m個の前記暗号鍵に対応づけて記憶して 、る暗号化情報記憶部と、前記 m個の暗 号鍵のそれぞれを用いて、対応する暗号ィ匕情報に復号アルゴリズムを施して、 m個 の復号情報を生成する復号部と、生成された m個の復号情報の全てが、前記検知情 報であるか否かを判断する判断部とを含み、生成された m個の復号情報の全てが、 前記検知情報であると判断される場合に、前記プログラムが不正なものであると決定 することを特徴とする。
[0063] さらに、前記 p個の暗号鍵は、 n行 m列(p=n X m)の第 1行列の各要素位置に配さ れており、前記第 1行列の各列から 1個の暗号鍵が選択されることにより、前記第 1行 列から m個の暗号鍵が選択され、前記データ処理装置を構成する前記暗号鍵記憶 部は、前記第 1行列において、各暗号鍵が配された要素位置を、各暗号鍵に対応付 けて記憶しており、前記暗号化情報記憶部は、 n行 m列の第 2行列において、各暗号 化情報に対応する暗号鍵が配されている要素位置と同じ要素位置において、当該 暗号化情報を記憶しており、復号部は、前記暗号鍵記憶部から、暗号鍵と対応する 要素位置を読み出し、前記暗号化情報記憶部の第 2行列において、前記読み出し た要素位置と同じ要素位置に配されている暗号ィ匕情報を読み出し、読み出した前記 暗号鍵を用いて、読み出した前記暗号ィ匕情報に復号アルゴリズムを施すことを特徴 とする。
[0064] 上記の構成によると、前記正当性判断手段は、前記 m個の暗号鍵のそれぞれを用 いて、対応する暗号ィ匕情報に復号アルゴリズムを施して、 m個の復号情報をし、生成 された m個の復号情報の全てが、前記検知情報であると判断される場合に、前記プ ログラムが不正なものであると決定する。前記プログラムが正当である場合、当該デ ータ処理装置は、暗号化された前記暗号鍵から暗号鍵を生成し、生成した暗号鍵に より、前記暗号ィ匕プログラムを復号してプログラムを生成し、生成したプログラムを実 行する。このように、 2重の暗号ィ匕を施すことにより、前記プログラムを不正な利用から 保護することができる。
[0065] また、前記第 1行列の各列から 1個の暗号鍵が選択されることにより、前記 p個の暗 号鍵が、選択されている。ここで、同一のプログラム鍵により暗号ィ匕された複数の暗号 化プログラムが存在する場合を想定する。いずれかのプログラムが不正であり、この 不正なプログラムに割り当てられた m個暗号鍵を用いて生成される m個の復号情報 は全て前記検知情報である。他の正当なプログラムに割り当てられた m個の暗号鍵 のうち、いずれかが、前記不正なプログラムの m個の暗号鍵と一致していても、その 他の暗号鍵により、前記プログラム鍵を生成することができる。プログラムごとに異なる 組み合わせで、 m個の暗号鍵を割り当てることで、不正なプログラムのみを無効化し 、正当なプログラムは、利用することができる。
[0066] また、本発明は、前記データ処理装置であって、データを記憶するためのメモリ手 段と、複数の処理手順から構成されるプログラムに従って動作するプロセッサと、前 記メモリ手段と前記プロセッサとの間に配置され、前記プロセッサから出力される前記 メモリ手段宛の転送データが転送制限条件を満たしているか否かを判断し、転送制 限条件を満たして!/ヽると判断する場合に、前記メモリ手段への転送データの転送を 抑制し、転送制限条件を満たしていないと判断する場合に、前記メモリ手段への転 送データの転送を行う監視手段とを備えることを特徴とする。
[0067] この構成によると、前記監視手段は、前記メモリ手段と前記プロセッサとの間に配置 され、前記プロセッサから出力される前記メモリ手段宛の転送データが転送制限条件 を満たしている力否かを判断し、転送制限条件を満たしていると判断する場合に、前 記メモリ手段への転送データの転送を抑制する。このようにすることで、前記プロダラ ムの動作中に発生する前記メモリへの不正なアクセスを防止することができる。
[0068] 前記データ処理装置にお!、て、前記監視手段は、複数のアプリケーションプロダラ ム毎に、転送制限条件を記憶しており、前記プロセッサにより実行されるアプリケーシ ヨンプログラム毎に、転送制限条件を選択し、選択した転送制限条件を用いることを 特徴とする。
この構成では、前記監視手段は、前記プロセッサにより実行されるアプリケーション プログラム毎に、転送制限条件を選択し、選択した転送制限条件を用いる。前記デ ータ処理装置において、複数のアプリケーションプログラムが実行される場合、アプリ ケーシヨンごとに利用するデータやデバイスが異なることは十分考えられる。従って、 アプリケーションプログラムごとに異なる転送制限条件を用いることで、当該データ処 理装置は、複数のアプリケーションプログラムを安全に実行することができる。
[0069] また、前記転送制限条件は、前記メモリ手段内の所定の記憶空間を示すアドレス範 囲情報であり、前記データ処理装置は、前記監視手段が、前記転送データからアド レス情報を抽出し、抽出したアドレス情報が、前記アドレス範囲情報に含まれる場合 に、前記転送データの転送を抑制することを特徴とする。
上記に構成によると、前記監視手段は、抽出したアドレス情報が、前記アドレス範囲 情報に含まれる場合に、前記転送データの転送を抑制する。従って、前記プロセッ サが前記所定の記憶空間にアクセスすることを阻止することができる。 [0070] 前記転送制限条件は、前記メモリ手段内の所定の記憶空間へのアクセス回数の上 限を示す制限回数であり、前記データ処理装置を構成する前記監視手段は、過去 における前記記憶空間へのアクセスの累積回数を記憶しており、前記転送データか らアドレス情報を抽出し、抽出したアドレス情報が、前記アドレス範囲情報に含まれる 場合に、前記累積回数に 1を加算し、加算して得られた加算後回数が、前記制限回 数を超える場合に、前記転送データの転送を抑制することを特徴とする。
[0071] この構成によると、前記監視手段は、加算後回数が、前記制限回数を超える場合 に、前記転送データの転送を抑制する。このようにすることで、前記プログラムの実行 中に、何らかの原因で偶発的に起こった不正アクセスについては、見逃し、例えば、 前記プログラムの不正な改ざんによって、定常的に前記所定の記憶空間へ不正なァ クセスが起こる場合のみ前記プログラムの実行に伴う転送データの転送を抑制する。
[0072] 本発明において、前記監視手段は、前記プロセッサに接続されるバス上において 転送される前記転送データが転送制限条件を満たしている力否かを判断することを 特徴とする。
この構成〖こよると、前記監視手段は、前記プロセッサに接続されるノ ス上において 転送される前記転送データが転送制限条件を満たしている力否かを判断するため、 前記プロセッサから伝送データが出力される度に、確実に、前記判定を行うことがで きる。
[0073] 本発明のデータ処理装置を構成する前記メモリ手段は、暗号鍵を用いて、前記プ 口セッサにより実行されている現プログラムとは異なるアプリケーションプログラムのコ ード部分とデータ部分とがそれぞれ暗号化されて生成された暗号化コード及び暗号 化データを記憶しており、前記転送制限条件は、前記メモリ手段内において前記暗 号化データが格納されている記憶空間を示すアドレス範囲情報であり、前記監視手 段は、前記暗号化コード及び暗号化データを復号するための復号鍵を記憶しており 、前記転送データからアドレス情報を抽出し、抽出したアドレス情報が、前記暗号ィ匕 コードが格納されている記憶空間を示すアドレス範囲内にある場合に、前記復号鍵 を用いて、前記転送データにより示される記憶空間に存在する暗号ィ匕コードを復号し て復号コードを生成し、生成した復号コードを前記プロセッサへ転送し、抽出したアド レス情報力 前記アドレス範囲情報に含まれる場合に、転送データの転送を抑制す ることを特徴とする。
[0074] この構成によると、前記監視手段は、前記暗号化コード及び暗号化データを復号 するための復号鍵を記憶しており、前記アドレス情報が、前記暗号化コードが格納さ れている記憶空間を示すアドレス範囲内にある場合に、前記復号鍵を用いて、前記 転送データにより示される記憶空間に存在する暗号化コードを復号して復号コードを 生成し、生成した復号コードを前記プロセッサへ転送し、抽出したアドレス情報が、前 記アドレス範囲情報に含まれる場合に、転送データの転送を抑制する。これにより、 前記アプリケーションプログラムのデータ部分の使用を当該アプリケーションプロダラ ムのみに限定することができる。
[0075] 前記監視手段は、さらに、転送制限条件を満たしていると判断する場合に、前記プ 口セッサにより実行中の前記プログラムを識別する識別情報をプログラム無効化リスト に追加することを特徴とする。
この構成では、前記監視手段は、転送制限条件を満たしていると判断する場合に、 前記プロセッサにより実行中の前記プログラムを識別する識別情報をプログラム無効 ィ匕リストに追加ため、前記プロセッサにより、このプログラムが再度実行されることを防 ぐことができる。
[0076] 本発明の前記データ処理装置は、データを記憶するためのメモリ手段と、複数の処 理手順力 構成されるプログラムに従って動作し、次に実行対象となる命令のァドレ スが格納されて 、るプログラムカウンタを備えるプロセッサと、前記プログラムカウンタ に格納されているアドレスが、所定のアドレス範囲内に含まれる力否かを判断し、所 定のアドレス範囲内に含まれると判断する場合に、前記プロセッサに対して、プロダラ ムカウンタに所定の値を格納するように指示する監視手段とを備え、前記プロセッサ 力 前記指示を受け取ると、プログラムカウンタに前記所定の値を格納することを特 徴とする。
[0077] この構成によると、前記監視手段は、前記プログラムカウンタに格納されているアド レスが、所定のアドレス範囲内に含まれる力否かを判断し、所定のアドレス範囲内に 含まれると判断する場合に、前記プロセッサに対して、プログラムカウンタに所定の値 を格納するように指示する。このようにすることで、前記プロセッサが前記所定のアド レス範囲と対応する記憶領域にアクセスすることを事前に防止し、例えば、オペレー ティングシステムなどの他のプログラムへ前記プロセッサの実行権を移すことで、前記 プログラムの実行を中断させることができる。 図面の簡単な説明
[図 1]図 1は、実施の形態 1の携帯電話 100の使用例を示す。
[図 2]図 2は、携帯電話 100及びメモリカード 300の構成を示すブロック図である。
[図 3]図 3は、二次記憶部 104に記憶されて ヽる情報の一例を示す。
[図 4]図 4は、通常メモリ 111に記憶されて 、る情報の一例を示す。
[図 5]図 5は、アプリ管理表 166の詳細を示す。
[図 6]図 6は、セキュアメモリ 113に記憶されて 、る情報の一例を示す。
[図 7]図 7は、セキュアアプリ管理表 186の詳細を示す。
[図 8]図 8は、通常メモリ 111及びセキュアメモリ 113に記憶されて 、るプログラムの関 連を示したブロック図である。
[図 9]通常 OS 151及びセキュアメモリ 113の取り扱うコマンドのデータ構成を示す。
[図 10]通常 OS151の動作を示すフローチャートである。
[図 11]セキュア OS171の動作を示すフローチャートである。
[図 12]音楽復号デーモン 156の動作を示すフローチャートである。
[図 13]通常 OS151からセキュア OS171への切替処理を示したフローチャートである
[図 14]セキュア OS171から通常 OS151への切替処理を示したフローチャートである
[図 15]携帯電話 100の動作を示したフローチャートである。
[図 16]音楽復号プログラムの登録処理における各プログラムの動作を示したフローチ ヤートである。
[図 17]音楽復号プログラムの登録処理における各プログラムの動作を示したフローチ ヤートである。図 16から続く。
[図 18]音楽復号プログラム 176への処理依頼における各プログラムの動作を示したフ ローチャートである。
[図 19]音楽復号プログラム 176への処理依頼における各プログラムの動作を示したフ ローチャートである。図 18から続く。
[図 20]音楽復号プログラム 176への処理依頼における各プログラムの動作を示したフ ローチャートである。図 19から続く。
[図 21]音楽復号プログラム 176への処理依頼における各プログラムの動作を示したフ ローチャートである。図 20から続く。
[図 22]音楽復号プログラム 176への処理依頼における各プログラムの動作を示したフ ローチャートである。図 21から続く。
[図 23]音楽復号プログラム 176への処理依頼における各プログラムの動作を示したフ ローチャートである。図 22から続く。
[図 24]音楽復号プログラム 176への処理依頼における各プログラムの動作を示したフ ローチャートである。図 23から続く。
[図 25]音楽復号プログラム 176への処理依頼における各プログラムの動作を示したフ ローチャートである。図 24から続く。
[図 26]音楽復号プログラム 176への処理依頼における各プログラムの動作を示したフ ローチャートである。図 25から続く。
[図 27]音楽復号プログラム 176への処理依頼における各プログラムの動作を示したフ ローチャートである。図 26から続く。
[図 28]通常 OS151の実行中における、通常入出力デバイス 132による割込発生時 の処理を示すフローチャートである。図 21ステップ S239の詳細である。
[図 29]セキュア OS171実行中における、通常入出力デバイス 132による割込発生時 の処理を示すフローチャートである。
[図 30]通常 OS151の実行中における、セキュアデバイス 133による割込発生時の処 理を示すフローチャートである。図 23ステップ S287の詳細である。
[図 31]通常 OS151の実行中における、セキュアデバイス 133による割込発生時の処 理を示すフローチャートである。図 30から続く。
[図 32]通常 OS151の実行中における、暗号処理デバイス 117による割込発生時の 処理を示すフローチャートである。図 27ステップ S337の詳細である。
[図 33]通常 OS151の実行中における、暗号処理デバイス 117による割込発生時の 処理を示すフローチャートである。図 32から続く。
[図 34]通常 OS151の実行中における、暗号処理デバイス 117による割込発生時の 処理を示すフローチャートである。図 33から続く。
[図 35]音楽復号プログラム 176の削除処理を示したフローチャートである。
[図 36]携帯電話 100の動作にぉ 、て、プログラム間のコマンドの受け渡しを示す。
[図 37]携帯電話 100の動作にぉ 、て、プログラム間のコマンドの受け渡しを示す。
[図 38]携帯電話 100の動作において、プログラム間のコマンドの受け渡しを示す。図 37から続く。
[図 39]携帯電話 100の動作において、プログラム間のコマンドの受け渡しを示す。図 38から続く。
[図 40]携帯電話 100の動作において、プログラム間のコマンドの受け渡しを示す。図 39から続く。
[図 41]携帯電話 100の動作において、プログラム間のコマンドの受け渡しを示す。図 40から続く。
[図 42]携帯電話 100の動作において、プログラム間のコマンドの受け渡しを示す。図 41から続く。
[図 43]通常メモリ 111に記憶されて 、る情報の一例を示す。
[図 44]携帯電話 100の起動時の動作を示すフローチャートである。
[図 45]セキュアメモリ 113に記憶されて 、る情報の一例を示す。
[図 46]MMU制御プログラム 184により形成される論理メモリ空間の一例を示す。
[図 47]実施の形態 1の変形例における、各プログラム間の関連を示すブロック図であ る。
[図 48]実施の形態 1の変形例において、通常 OS151及びセキュア OS171が有する セキュアデバイスドライバ管理表 231の構成を示す。
[図 49]実施の形態 2の携帯電話 400の使用例を示す。
[図 50]無効化リスト発行装置 250の構成を示すブロック図である。 [図 51]携帯電話 400に含まれるメモリ保護部 414及びセキュアメモリ 413の構成を示 すブロック図である。
[図 52]メモリ保護部 414の動作を示すフローチャートである。
[図 53]メモリ保護部 414の動作を示すフローチャートである。図 52から続く。
[図 54]実施の形態 2の変形例におけるメモリ保護部 454及びセキュアメモリ 453の構 成を示すブロック図である。
[図 55]セキュア OS証明書の詳細を示す。
[図 56]実施の形態 2の変形例において、音楽復号プログラム 476の備えるアプリ証明 書 501、メーカー証明書 511、 CA証明書 521の構成及び関連を示す。
[図 57]OS無効化リストの構成の一例を示す。
[図 58]実施の形態 3における無効化リスト発行装置の情報記憶部 610に記憶されて いる情報の一例を示す。
[図 59]アプリ固有鍵マトリクス 592及び OS固有鍵マトリクス 597の構成を示す。
[図 60]アプリマトリクス無効化リスト 611の詳細な構成を示す。
[図 61]アプリマトリクス無効化リストの生成の処理手順を示すフローチャートである。
[図 62]実施の形態 3の携帯電話の備えるメモリ保護部 571及びセキュアメモリ 613の 構成を示すブロック図である。
[図 63]メモリ保護部 571による検証動作を示すフローチャートである。
[図 64]アプリ検証部 578による音楽復号プログラム 592の検証動作を示すフローチヤ ートである。
[図 65]実施の形態 3の変形例のホームネットワークの構成を示す構成図である。 圆 66]実施の形態 4の携帯電話を構成するメモリ保護部 701及びセキュアメモリ 713 の構成を示すブロック図である。
[図 67]実施の形態 5において、セキュアメモリカード 820の構成及びセキュアメモリ力 ード 820に記憶されている情報の一例を示す。
圆 68]実施の形態 5の携帯電話 750及び携帯電話 750に装着される通常メモリカー ド 800及びセキュアメモリカード 820の構成を示すブロック図である。
[図 69]メモリ保護部 764の構成を示すブロック図である。 [図 70]セキュアメモリテーブル 811及び通常メモリテーブル 861の構成を示す。
[図 71]アクセス制御部 783及び ID検出部 786の動作を示すフローチャートである。
[図 72]アクセス制御部 783動作を示すフローチャートである。図 71から続く。
符号の説明
10 携帯電話網
15 基地局
20 インターネット
100 携帯電話
101 デバッガ IF
102 CPU
103 MMU
104 二次記憶部
106 切替制御部
107 割込コントローラ
108 入力部
109 表示部
111 通常メモリ
112 共有メモリ
113 セキュアメモリ
114 メモリ保護部
116 入出力部
117 暗号処理デバイス
118 無線通信制御部
119 マイク
120 スピーカ
121 通信部
122 アンテナ
123 ノ ッファ 124 符号処理部
126 DZA変換部
130 バス
131 アクセス §
132 通常入出力デバイス
133 セキュア入出力デバイス
300 メモリカード
発明を実施するための最良の形態
[0080] 以下、本発明の実施の形態について図面を用いて詳細に説明する。
1. 実施の形態 1
本発明の実施の形態について、以下に説明する。
図 1は、本発明の携帯電話 100の使用例を示している。携帯電話 100は、メモリ力 ード 300を装着される。
[0081] メモリカード 300は、暗号ィ匕された音楽データが記録されており、携帯電話 100は、 メモリカード 300から音楽データを読み出して再生する。
また、携帯電話 100は、基地局 15、携帯電話網 10、インターネット 20を介してコン テンッ配信装置と接続されている。携帯電話 100は、コンテンツ配信装置の記憶して いる音楽、映像など力 構成される各種のコンテンツをインターネット、携帯電話網を 介して取得する。
[0082] 1. 1 メモリカード 300
メモリカード 300は、図 2に示すように、入出力部 301、セキュア処理部 302、一般 領域 303及びセキュア領域 306から構成される。
一般領域 303は、外部機器により自由にアクセスすることができる記憶領域であり、 暗号ィ匕音楽データ 304を記憶している。セキュア領域 306は、許可された外部機器 のみがアクセスできる記憶領域であり、コンテンツ鍵 307が記憶されている。
[0083] 暗号化音楽データ 304· · ·は、 1曲分の音楽データに、コンテンツ鍵 307を用いて、 暗号ィ匕アルゴリズム E1を施して生成されたものである。各暗号化音楽データは、楽 曲 IDにより識別される。 暗号化アルゴリズム Elは、一例として DES (Data Encryption Standard)など を用いる。
[0084] 入出力部 301は、外部機器と一般領域 303及びセキュア処理部 302との間で各種 のデータを入出力する。
セキュア処理部 302は、外部機器との間で、 CPRM (Content Protection for Recordable Media)の仕組みに基づいて相互認証を行い、認証に成功した場合に、 認証した機器と鍵を共有する。共有した鍵を用いて、外部機器との間で、安全にデー タの入出力を行う。
[0085] なお、 CPRMにつ!/、ては、公知であるので説明を省略する。また、他の認証方法に より認証を行ってもよい。
1. 2 携帯電話 100の構成
携帯電話 100は、図 2に示すように、デバッガ IF101、 CPU102、 MMU103、二 次記憶部 104、切替制御部 106、割込コントローラ 107、入力部 108、表示部 109、 通常メモリ 111、共有メモリ 112、セキュアメモリ 113、メモリ保護部 114、入出力部 11 6、暗号処理デバイス 117、無線通信制御部 118、マイク 119、スピーカ 120、通信部 121、アンテナ 122、ノッファ 123、符号処理部 124及び DZA変換部 126から構成 され、各回路はバス 130に接続されている。
[0086] 携帯電話 100は、具体的にはコンピュータシステムであり、通常メモリ 111、共有メ モリ 112、セキュアメモリ 113、二次記憶部 104には各種のコンピュータプログラム記 憶されており、 CPU102がこれらのコンピュータプログラムに従って動作することによ り、携帯電話 100はその機能の一部を実現する。
(1)二次記憶部 104、共有メモリ 112
二次記憶部 104は、 ROM力も構成され、一例として、図 3に示すように、暗号化音 楽復号プログラム 141及び音楽復号デーモン 142などを記憶している。
[0087] 暗号ィ匕音楽復号プログラム 141は、セキュアメモリ 113上にロードされて実行される 音楽復号プログラムを暗号ィ匕して生成されたものである。音楽復号プログラムは、メモ リカード 300に記憶されている暗号ィ匕音楽データ 304を復号するプログラムである。こ れについては、後に、詳細に説明する。 音楽復号デーモン 142は、通常メモリ 111上にロードされて実行されるプログラムで あり、音楽復号プログラムと 1対 1に対応する。
[0088] 音楽復号の処理のうちで、高いセキュリティを要する処理及び保護されるべきデー タを扱う処理を音楽復号プログラムが実行し、高 、セキュリティを必要としな 、処理を 音楽復号デーモンが実行する。詳細については、後に述べる。
共有メモリ 112は、 RAMから構成され、通常メモリ 111上のプログラム及びセキュア 記憶上のプログラム!/、ずれのプログラムからも使用可能なメモリである。
[0089] なお、ここでは、二次記憶部 104は ROM力も構成されるとしている力 ハードデイス クユニットから構成されるとしても良い。
(2)通常メモリ 111及びセキュアメモリ 113
通常メモリ 111は、 RAM及び ROMから構成され、 CPU102により実行される各種 のプログラムを記憶している。一例として、図 4に示すように、通常 OS151、ライブラリ 152、音楽再生プログラム 153、音楽復号デーモン 156、通常入出力デバイスドライ ノ 157、セキュア入出力エントリデバイスドライバ 158、暗号エントリデバイスドライバ 1 59、通常切替デバイスドライバ 160及び通常割込ハンドラ 161を記憶して 、る。
[0090] セキュアメモリ 113は、 RAMから構成され、 CPU102によって、実行される各種の プログラムを記憶している。セキュアメモリ 113は、メモリ保護部 114を介してバス 130 と接続されている。
セキュアメモリ 113は、一例として、図 6に示すように、セキュア OS171、音楽復号 プログラム 176、セキュア入出力デバイスドライバ 178、暗号デバイスドライバ 179、セ キュア切替デバイスドライバ 180、セキュア割込ハンドラ 181を記憶して 、る。
[0091] 図 8は、通常メモリ 111及びセキュアメモリ 113に記憶されている各プログラム間の 関係を機能的に示したブロック図である。実際には、同一メモリ上の各プログラム間の 通信は、通常 OS151及びセキュア OS171へシステムコールを出力することにより実 現される。また、通常切替デバイスドライバ 160、セキュア切替デバイスドライバ 180 及び切替制御部 106が動作することにより、通常 OS151とセキュア OS171とを切り 替えている力 図 8においては、オペレーティングシステムによる仲介及び通常 OS 1 51とセキュア OS 171との切り替えに係るプログラムを省略して!/、る。 [0092] また、図 8において、共有メモリ 112は、通常入出力デバイス 132及び暗号処理デ バイス 117と接続されている力 これは、共有メモリ 112の果たす役割の一部を示して おり、共有メモリ 112は、その他のプログラムによっても使用される。
<通常 OS151 >
通常 OS 151は、通常メモリ 111上にロードされて実行される各種のプログラムを制 御する基本ソフトウェアであり、制御プログラムと制御データ力 構成される。
[0093] 制御データには、図 4に示すように、アプリ管理表 166が含まれる。アプリ管理表 16 6は、図 5〖こ示すよう〖こ複数のエントリ 167、 168 · · ·を含む。各エントリは、ハンドル値 、デーモンアドレス、アプリコンテキストアドレス力 構成される。
ハンドル値は、セキュアメモリ 113上にロードされるセキュアアプリケーションに割り 当てられる識別子である。
[0094] 以下の説明において、セキュアメモリ 113上にロードされて、セキュアな処理を実行 するアプリケーションをセキュアアプリケーションと呼ぶ。ここで、セキュアな処理とは、 保護されるべきデータを扱う処理及びアルゴリズム自体を保護する必要のある処理で ある。
デーモンアドレスは、セキュアアプリケーションと対応して動作するプログラムの通常 メモリ 111上のロードアドレスである。
[0095] アプリコンテキストアドレスは、ハンドル値と対応するセキュアアプリケーションにセキ ユアな処理を依頼するアプリケーションのコンテキストを保存して 、る通常メモリ 111 上のアドレスである。コンテキストには、 CPU102のレジスタ値、スタックポインタ、 M MU103の内容などが含まれる。
具体的にエントリ 167について説明すると、ハンドル値「1」は、音楽再生プログラム 1 53がセキュアな処理を依頼する音楽復号プログラム 176 (後述する)に割り当てられ る識別子である。デーモンアドレス「0000BBBB」は、音楽復号プログラム 176と対応 して動作する音楽復号デーモン 156の通常メモリ 111上のロードアドレスである。ァ プリコンテキストアドレス「0000AAEE」は、音楽再生プログラム 153のコンテキストを 保存して!/、る通常メモリ 111上のアドレスである。
[0096] また、制御データには、通常入出力デバイスドライバ 157を示す識別情報デバイス あるデバイス ID— A、セキュア入出力エントリデバイスドライバ 158を識別する識別情 報であるデバイス ID— B及び暗号エントリデバイスドライバ 159を示す識別情報であ るデバイス ID— Cとが含まれる。これらは、それぞれ、通常入出力デバイスドライバ 15 7、セキュア入出力エントリデバイスドライバ 158及び暗号エントリデバイスドライバ 15 9の通常メモリ 111上のロードアドレスと対応付けて記憶されて 、る。デバイス ID— B は、セキュア入出力デバイスドライバ 178 (後述する)を示す識別情報と同一であり、 デバイス ID— Cは、暗号デバイスドライバ 179を示す識別情報と同一である。
[0097] 通常 OS151は、共有メモリ 112内の所定の領域 (コマンド領域と呼ぶ)を介して、セ キュア OS171との間で各種のコマンドの送受信を行う。また、通常メモリ 111上のプ ログラムとの間でも各種のコマンドの送受信を行う。通常メモリ 111上のプログラムとの 間のプログラムの送受信には、共有メモリ 112を用いても良いし、通常メモリ 111を用 いても良い。
[0098] 図 9 (a)は、通常 OS151が扱うコマンドのデータ構造の一例を示している。コマンド 1000は、コマンド部 1011とデータ格納部 1012から構成される。
コマンド部 1011に格納されるコマンドには、セキュアアプリ登録要求、登録完了通 知、アプリ復帰要求、セキュアアプリ削除命令、削除完了通知、システムコール、応 答通知、セキュア処理要求、外部処理要求、休眠要求、割込発生通知などがある。
[0099] データ格納部 1012には、各種データ及びコマンド 1016、データ及びコマンド 101 6の受け取り先となるプログラムを示す識別情報 1013など力 コマンド部 1011に格 納されるコマンドに応じて格納される。
セキュアアプリ登録要求は、通常メモリ 111上で動作するアプリケーション力 セキ ユアな処理を依頼するセキュアアプリケーションをセキュアメモリ 113上にロードし使 用可能な状態にすることを要求するコマンドである。このとき、図 9 (b)の示すようにデ ータ格納部 1012には、セキュアアプリケーションを示すセキュアアプリ情報とセキュ ァアプリケーションと対応して動作するプログラムを示すデーモン情報とが格納される 。音楽再生プログラム 153から出力されるセキュアアプリ登録要求を例にすると、セキ ユアアプリ情報は、二次記憶部 104上の暗号化音楽復号プログラム 141の記憶され ているアドレスであり、デーモン情報は、音楽復号デーモン 142の記憶されているァ ドレスである。なお、セキュアアプリ情報及びデーモン情報は、暗号化音楽復号プロ グラム 141及び音楽復号デーモン 142と対応する識別子などでも良い。
[0100] 登録完了通知は、セキュアメモリ 113上に、セキュアアプリケーションがロードされ、 セキュアアプリ管理表 (後述する)への登録が完了したことを通知する。このとき、デー タ格納部 1012には、登録されたセキュアアプリケーションと対応するハンドル値が格 納されている。
アプリ復帰要求は、依頼されていた処理を終えたセキュアアプリケーション力 依頼 元であるアプリケーションの復帰を要求するコマンドである。このとき、データ格納部 には、セキュアアプリケーションを示す識別情報が格納されて 、る。
[0101] セキュアアプリ削除命令は、セキュアメモリ 113上のセキュアアプリケーションの削除 を指示するものである。このとき、データ格納部 1012には、削除するセキュアアプリケ ーシヨンを一意に識別するハンドル値が格納されている。
削除完了通知は、セキュアメモリ 113上のセキュアアプリケーションが削除されたこ とを通知するものである。このとき、データ格納部 1012には、削除されたセキュアァ プリケーシヨンを一意に識別するハンドル値が格納されている。
[0102] システムコールは、通常メモリ 111上のアプリケーション力 通常 OS151へ、通常メ モリ 111上の他のプログラムへコマンド又はデータの仲介を依頼するコマンドである。 このとき、データ格納部 1012には、仲介を依頼したアプリケーションを示す識別情報 と仲介先のプログラムを示す識別情報と、仲介するデータ及びコマンドが書き込まれ ている。
[0103] 一例として、図 9 (c)は、音楽復号デーモン 156が出力したシステムコールのデータ 構造を示している。コマンド部 1011には、システムコールが格納されており、データ 格納部 1012には、システムコールの発信元である音楽復号デーモン 156を示すノヽ ンドル値「1」と、データの受け取り先である暗号エントリデバイスドライバ 159を示すデ バイス ID— Cと、仲介されるデータ「処理結果」が格納されて ヽる。
[0104] 応答通知は、システムコールによりアプリケーション力 コマンド又はデータを受け 取ったプログラム力 受け取ったコマンド及びデータに従って処理を行い、システムコ ールの出力元のアプリケーションへの処理結果の通知を、通常 OS 151へ依頼するも のである。データ格納部 1012には、通知依頼したプログラムを示す識別情報と通知 先のアプリケーションを示す識別情報と、処理結果などが格納されて 、る。
[0105] 一例として、図 9 (c)に示すシステムコールにより、ハンドル値「1」、デバイス ID— C 及び処理結果を受け取った暗号エントリデバイスドライバ 159は、排他制御を解除し( 詳細は後述する)、ハンドル値「1」、デバイス ID— C及び処理結果を含む応答通知を 通常 OS151へ出力することにより、通常 OS151を介して、ハンドル値「1」、デバイス ID— C及び処理結果を音楽復号デーモン 156へ通知する(詳細は後述する)。
[0106] セキュア処理要求は、通常メモリ 111上のプログラムからセキュアメモリ 113上のプ ログラムへのコマンド又はデータの仲介を依頼するコマンドである。このとき、データ 格納部 1012には、セキュア処理要求の出力元であるプログラムを示す識別情報と、 仲介先のプログラムを示す情報及び仲介するデータ及びコマンドが格納されている。 図 9の(d)は、一例として、音楽復号デーモン 156から出力されるセキュア処理要求 のデータ構造を示している。データ格納部 1012には、セキュア処理要求の出力元で ある音楽復号デーモン 156を示すノヽンドル値「1」、受け取り先である暗号デバイスド ライバ 179を示すデバイス ID— Cと、仲介されるコマンド「割込通知」とが格納されて いる。
[0107] 外部処理要求は、セキュアメモリ 113上のプログラムから通常メモリ 111上のプログ ラムへのコマンド及びデータの仲介を依頼するものである。このとき、データ格納部 1 012には、セキュア処理要求の出力元であるプログラムを示す識別情報と、仲介先の プログラムを示す識別情報と、仲介されるデータ及びコマンドが格納されている。図 9 (e)は、一例として、暗号デバイスドライバ 179から出力される外部処理要求のデータ 構成を示している。コマンド部には、外部処理要求が格納されており、データ格納部 には、外部処理要求の出力元である暗号デバイスドライバ 179と対応するデバイス I D—Cと受け取り先である音楽復号デーモン 156と対応するハンドル値「1」と、仲介さ れるコマンド「休眠要求」が格納されて 、る。
[0108] 休眠要求は、携帯電話 100の備える、デバイスのデバイスドライバ及びデバイスへ 処理を依頼したプログラムを休眠状態に遷移させることを依頼するコマンドである。こ のとき、データ格納部 1012には、休眠要求を依頼するデバイスドライバを示す識別 情報と、デバイスへ処理を依頼するプログラムと対応する識別情報とが格納されて ヽ る。
割込発生通知は、割込の発生を通知するものである。
[0109] 以下に、図 10のフローチャートを用いて、通常 OS151の動作について説明する。
なお、通常 OS151は、このフローチャートにおいて説明する処理以外にも、各種の 処理を実行する。
ここで、セキュアアプリ登録要求、登録完了通知、アプリ復帰要求、セキュアアプリ 削除命令及び削除完了通知については、具体的に、通常メモリ 111上のアプリケー シヨンを音楽再生プログラム 153、セキュアアプリケーションを音楽復号プログラム 17 6、セキュアアプリケーションと対になって動作するプログラムを音楽復号デーモン 15 6として説明する。
[0110] 通常 OS151は、切替処理によって CPU102に復帰すると、共有メモリ 112のコマ ンド領域力もコマンドを読み出す (ステップ S1001)。なお、切替処理については、以 下の通常切替デバイスドライバ 160及びセキュア切替デバイスドライバ 180の説明に おいて、詳細に説明する。
読み出したコマンドを解読し (ステップ S 1002)、解読したコマンドが登録完了通知 であれば、音楽復号デーモン 156を通常メモリ 111上にロードし (ステップ S1004)、 ロードしたアドレスと、登録完了通知のデータ格納部に含んで受け取ったノ、ンドル値 「1」をアプリ管理表 166のエントリ 167に書き込み(ステップ S1005)、ハンドル値「1」 を音楽再生プログラム 153へ出力する。
[0111] 読み出したコマンドが外部処理要求であれば (ステップ S1002)、データ格納部に 含まれる仲介先を示す識別情報と対応するプログラムを呼び出し、呼び出したプログ ラムへ外部処理要求のデータ格納部に含んで受け取った情報を出力する (ステップ S1006)。
読み出したコマンドが割込発生通知であれば (ステップ S 1002)、 CPU102の割込 レジスタに書き込まれて 、るダミーデータを消去することで割込マスクを解除する (ス テツプ S1007)。割込マスクについては、後のセキュア割込ハンドラ 181に関する説 明において述べる。 [0112] 読み出したコマンドが、アプリ復帰要求である場合 (ステップ S 1002)、データ格納 部に含まれるハンドル値「1」と、アプリ管理表 166とを基に、音楽再生プログラム 153 のコンテキストを復帰させる(ステップ S1009)。
読み出したコマンド力 削除完了通知であれば (ステップ S1002)、データ格納部 に含まれるハンドル値「1」と対応する音楽復号デーモン 156を通常メモリ 111から削 除し (ステップ S 1011)、アプリ管理表 166からハンドル値「1」を含むエントリ 167を削 除する(ステップ S 1012)。
[0113] 次に、通常メモリ 111上の各プログラムからのコマンドを受け付ける(ステップ S101 3)。
システムコールを受け付けると (ステップ S 1013)、データ格納部に書き込まれてい るハンドル値又はデバイス IDなどの仲介先を示す識別情報と対応するプログラムを 呼び出し、データ格納部に含まれる情報を出力する (ステップ S1014)。例えば、ハ ンドル値「 1」が含まれて!/、ると、アプリ管理表 166でハンドル値「 1」を含むエントリ 16 7を選択し、選択したエントリ 167のデーモンアドレスを基に音楽復号デーモン 156を 呼び出し、デバイス ID— Cが含まれていると、暗号エントリデバイスドライバ 159を呼 び出す。
[0114] また、具体的には図示していないが、応答通知を受け取った場合も、システムコ一 ルを受け取った場合と同様に、データ格納部に書き込まれている識別情報と対応す るアプリケーションを呼び出し、データ格納部に含まれる情報を出力する。
休眠要求を受け付けると (ステップ S1013)、データ格納部に書き込まれているハン ドル値又はデバイス IDなどの識別情報に対応するプログラムと対応するプログラムを 休眠状態に遷移させる (ステップ S1016)。休眠状態とは、一切の動作を行わない状 態を言う。
[0115] 音楽復号プログラム 176から図 9 (b)の示すように、データ格納部にセキュアアプリ 情報とデーモン情報とを含むセキュアアプリ登録要求を受け付けると (ステップ S 101 3)、音楽再生プログラム 153のコンテキストを通常メモリ 111上に保存し、保存先のァ ドレスをアプリコンテキストアドレスに書き込み、セキュアアプリ情報を基に二次記憶部 104から読み出した暗号化音楽復号プログラム 141を共有メモリ 112に書き込む (ス テツプ S1017)。次に、セキュアアプリ登録要求を、共有メモリ 112上に書き込み (ス テツプ S1018)、ステップ S1028へ処理を移す。このときの、セキュアアプリ登録要求 は、データ格納部に暗号ィ匕音楽復号プログラムの共有メモリ 112上の書き込み先の アドレスを含んでいる。
[0116] 音楽再生プログラム 153からセキュアアプリ削除命令を受け取ると (ステップ S 1013 )、受け取ったセキュアアプリ削除命令を共有メモリ 112に書き込む (ステップ S1019 )。ここで、データ格納部には、削除対象となる音楽復号プログラム 176を示すノヽンド ル値「1」が格納されている。
セキュア処理要求を受け付けると (ステップ S1013)、受け付けたセキュア処理要求 を共有メモリ 112に書き込む (ステップ S1021)。次に、切替処理を行う(ステップ S10 28)。
[0117] また、割込が発生し、割込みコントローラ 107から割込発生通知を受け取る (ステツ プ S1023)、通常割込ハンドラ 161を起動する (ステップ S1024)。通常割込ハンドラ 161による、割込要因の調査結果に基づき休眠して!/、るプログラムの休眠を解除し( ステップ S1026)。ステップ S1013へ処理を移す。
なお、本実施の形態では、通常 OS151とセキュア OS171とは、共有メモリ 112を 介して、各種のコマンドをやり取りしている力 共有メモリ 112に代わって、専用レジス タを用いるとしてちよい。
<セキュア OS171 >
セキュア OS171は、図 6に示すように、オペレーティングプログラム 172、デバッグ 無効化プログラム 173、喑復号プログラム 174から構成される。
[0118] デバッグ無効化プログラム 173は、デバッガ IF101のレジスタにダミーデータを書き 込み、デバッガ IF101を無効化するプログラムである。なお、デバッガ IF101と CPU 102との間にスィッチを備え、デバッグ無効化プログラム 173は、このスィッチを開閉 することで、デバッガ IF101を無効化する構成であってもよい。
喑復号プログラム 174は、予め復号鍵をコーディングされており、暗号化音楽復号 プログラムを復号して、音楽復号プログラムを生成する。
[0119] オペレーティングプログラム 172は、セキュアメモリ 113上にロードされる各種のプロ グラムを制御する基本ソフトウェアであり、制御プログラムと制御データとから構成され る。制御部データには、図 6に示すように、セキュアアプリ管理表 186が含まれる。 セキュアアプリ管理表 186は、図 7に示すように、複数のエントリ 187、 188 · · ·を含 む。各エントリは、ハンドル値、セキュアアプリアドレス、セキュアアプリコンテキストアド レス力も構成され、セキュアメモリ 113上にロードされているセキュアアプリケーション と対応している。
[0120] ハンドル値は、各セキュアアプリケーションに割り当てられた識別子である。
セキュアアプリアドレスは、セキュアアプリケーションがロードされている、セキュアメ モリ 113上のアドレスである。セキュアアプリコンテキストアドレスは、セキュアアプリケ ーシヨンのコンテキストが保存されて 、るセキュアメモリ 113上のアドレスである。
[0121] 一例としてエントリ 187のハンドル値「1」は、オペレーティングプログラム 172が音楽 復号プログラム 176に割り当てた識別子である。セキュアアプリアドレス「1111EEEE 」は、音楽復号プログラム 176が記憶されているセキュアメモリ 113上のアドレスであり 、セキュアアプリコンテキストアドレス「11AADDDE」は、音楽復号プログラム 176の コンテキストが記憶されて 、るセキュアメモリ 113上のアドレスである。
[0122] また、制御データには、セキュア入出力デバイスドライバ 178と対応する識別情報 であるデバイス ID_B、暗号デバイスドライバ 179と対応する識別情報であるデバィ ス ID— Cが含まれる。これらは、それぞれ、セキュア入出力デバイスドライバ 178及び 暗号デバイスドライバ 179のセキュアメモリ 113上のロードアドレスと対応付けて、セキ ユアメモリ 113上に記憶されて 、る。
ここで、デバイス ID— B及びデバイス ID— Cは、通常 OS151の有する制御データに 含まれるデバイス ID— B及びデバイス ID— Cと同一である。
[0123] セキュア OS171は、共有メモリ 112のコマンド領域を介して通常 OS 151との間で 各種のコマンドの授受を行う。また、セキュアメモリ 113上の各プログラムとの間でセキ ユアメモリ 113上のオペレーティングプログラム 172の有する記憶領域を介して、コマ ンドを送受信する。
以下の説明において、説明の便宜上、オペレーティングプログラム 172の行う処理 を、セキュア OS171の行う処理として表現する。 [0124] セキュア OS171が扱う各種のコマンドは、通常 OS151が扱うコマンドと同様に、図 9の(a)に示す構造である。コマンド部 1011に格納されるコマンドには、セキュアァプ リ登録要求、登録完了通知、アプリ復帰要求、セキュアアプリ削除命令、削除完了通 知、システムコール、応答通知、セキュア処理要求、外部処理要求、割込発生通知 などがある。セキュアアプリ登録要求、登録完了通知、アプリ復帰要求、セキュアアブ リ削除命令、削除完了通知、セキュア処理要求、外部処理要求、割込発生通知につ いては、上記の通常 OS151に関する説明において既に述べた通りである。システム コールは、セキュアメモリ 113上のアプリケーションからセキュアメモリ 113上の他のプ ログラムへのデータ及びコマンドの仲介を依頼するものであり、応答通知は、システム コールにより、コマンド及びデータを受け取ったプログラム力 処理結果などの通知を セキュア OS 171へ依頼するものである。
[0125] 以下に、図 11のフローチャートを用いて、セキュア OS171の動作について説明す る。ここで、セキュアアプリ登録要求、登録完了通知、セキュアアプリ削除命令及び削 除完了通知については、具体的に、アプリケーションを音楽再生プログラム 153、セ キュアアプリケーションを音楽復号プログラム 176、セキュアアプリケーションと対にな つて動作するプログラムを音楽復号デーモン 156として説明する。なお、セキュア OS 171は、このフローチャートに示した処理以外にも各種の処理を行っている力 本発 明とは関係がな 、ため、ここでは説明をしな 、。
[0126] 切替処理によって、セキュア OS171が CPU102に復帰する(ステップ S1041)。セ キュア OS171は、共有メモリ 112のコマンド領域力もコマンドを読み出して解読し (ス テツプ S1042)、解読したコマンドによって、以下の処理を行う。
読み出したコマンドがセキュアアプリ登録要求であれば (ステップ S1042)、喑復号 プログラム 174によって、共有メモリ 112上の暗号化音楽復号プログラムを復号して 音楽復号プログラム 176を生成し、セキュアメモリ 113上にロードする(ステップ S104 3)。ロードアドレス及びハンドル値「1」をセキュアアプリ管理表 186のエントリ 187に 書き込む (ステップ S 1044)。次に、登録完了通知をコマンド部に格納し、データ格 納部にハンドル値「1」を格納した、登録完了通知を生成し、共有メモリ 112に書き込 む(ステップ S 1046)。次に、切替処理に移る(ステップ S 1062)。 [0127] 解読したコマンド力 セキュア処理要求であれば (ステップ S 1042)、データ格納部 に格納されて 、る、受け取り先となるプログラムの識別情報と対応するプログラムを呼 び出す (ステップ S1047)。例えば、ハンドル値「1」が格納されていれば、音楽再生 プログラム 153を呼び出し、デバイス ID— Bが格納されていれば、セキュア入出力デ バイスドライバ 178を呼び出す。次に、ステップ S 1052へ移る。
[0128] 読み出したコマンドがセキュアアプリ削除命令であれば (ステップ S1042)、データ 格納部に格納されている、削除の対象となるプログラムを示すノヽンドル値「1」を抽出 し、抽出したハンドル値「1」と対応する音楽復号プログラム 176をセキュアメモリ 113 上から削除し、次に、セキュアアプリ管理表 186から、エントリ 187を削除する (ステツ プ S 1049)。
[0129] 削除し終えると、削除完了通知を共有メモリ 112に書き込む (ステップ S1051)。こ のとき、コマンド部には削除完了通知が格納されており、データ格納部には、ハンド ル値「1」が格納されている。次に、ステップ S 1062へ処理を移す。
次に、セキュア OS171は、セキュアメモリ 113上の各プログラムから、コマンドを受 け取る(ステップ S 1052)。
[0130] 受け取ったコマンド力 外部処理要求であれば (ステップ S 1052)、共有メモリに、 受け取った外部処理要求を書き込み (ステップ S 1053)、ステップ S 1062へ処理を 移す。
セキュア割込ハンドラ 181 (後述する)から、いずれかのデバイスで割込が発生した ことを示す割込発生通知を受け取ると、受け取った割込発生通知を、共有メモリ 112 に書き込み(ステップ S 1054)、ステップ S 1062へ処理を移す。
[0131] 受け取ったコマンドがシステムコールであれば (ステップ S1052)、データ格納部に 格納されている受け取り先のプログラムを示す識別情報により、該当するプログラムを 呼び出す (ステップ S 1056)。
受け取ったコマンド力 アプリ復帰要求であれば (ステップ S 1052)、共有メモリに、 受け取ったアプリ復帰要求を書き込み(ステップ S 1061)、ステップ S 1062へ処理を 移す。また、具体的には図示していないが、応答通知の場合も同様に、データ格納 部に含まれる識別情報と対応するアプリケーションを呼び出す。 [0132] これらの処理の途中で、割込が発生し、割込みコントローラ 107から割込発生通知 を受け取ると (ステップ S1057)、セキュア割込ハンドラ 181を起動し (ステップ S1059 )、ステップ S 1052へ戻る。
くライブラリ 152 >
ライブラリ 152は、各種のプログラムで共通に利用される関数を含んでおり、一例と して、メモリカード 300のアクセスを行うアクセス関数を含む。アクセス関数は、通常入 出力デバイスドライバ 157を呼び出し、データの読み出しを指示する関数である。 <音楽再生プログラム 153 >
音楽再生プログラム 153は、利用者に表示する各種の画像データなどを含み、利 用者の操作を受けてメモリカード 300に記憶されている音楽を再生するアプリケーシ ヨンである。音楽再生プログラム 153には、予め、セキュアアプリ情報とデーモン情報 とがコーディングされている。セキュアアプリ情報は、音楽再生プログラム 153が、セ キュアな処理を依頼するプログラムを示す情報であり、具体的には、暗号化音楽復号 プログラム 141の記憶されている二次記憶部 104上のアドレスである。デーモン情報 は、セキュアアプリ情報の示すプログラムと対になるプログラムを示す情報であり、具 体的には、音楽復号デーモン 142の記憶されている二次記憶部 104上のアドレスで ある。
<音楽復号プログラム 176及び音楽復号デーモン 156 >
音楽復号プログラム 176と音楽復号デーモン 156は、対になって動作することによ り、暗号化音楽データの復号処理が達成される。
[0133] 音楽復号プログラム 176は、通常 OS151及びセキュア OS171を介して、音楽再生 プログラム 153から復号命令を受け、図 8に示すようにデータ読出ステップ、コンテン ッ鍵読出ステップ、復号ステップ及び音楽データ出力ステップを経て、音楽データを 生成し、音楽データ出力ステップにおいて、処理結果として、ノッファ 123上の音楽 データの書き込み先アドレスを出力する。
[0134] これらの処理の中で、高いセキュリティを必要としない処理を音楽復号デーモン 15 6へ依頼する。具体的には、セキュア OS171へ外部処理要求を出力することによつ て、音楽復号デーモン 156へデータ読み出し命令を出力する。その処理結果として 共有メモリ 112上の暗号化音楽データの書き込み先アドレスを受け取る。また、セキ ユア OS171へ外部処理要求によって、音楽復号デーモン 156へ復号命令を出力し 、処理結果として、ノ ッファ 123上の音楽データの書き込み先アドレスを取得する。
[0135] 音楽復号デーモン 156は、セキュア OS171及び通常 OS151を介して、音楽復号 プログラム 176からデータ読み出し命令及び復号命令を受け取る。また、通常入出 力デバイスドライバ 157、セキュア入出力エントリデバイスドライバ 158、暗号エントリ デバイスドライバ 159、セキュア入出力デバイスドライバ 178及び暗号デバイスドライ ノ 179から各種の命令及びデータを受け取る。受け取った命令及びデータに基づい て各種の処理を行う。音楽復号デーモン 156による処理について、図 12のフローチ ヤートを用いて説明する。なお、図 9においては、書略している力 音楽復号デーモ ン 156の受け取るすべておコマンド、データには、受け取り先である音楽復号デーモ ン 156を示す識別情報としてハンドル値「1」が含まれている。
[0136] セキュア OS 171を介して、各種の命令及びデータを受け取る(ステップ SO 11)。受 け取った命令を判別し (ステップ S012)、データ読出命令であれば、ライブラリ 152の アクセス関数を呼び出す (ステップ SO 13)。
コマンドの出力元を示す識別情報としてデバイス ID— Aと処理結果とを受け取ると 、外部処理要求により、受け取った処理結果を音楽復号プログラム 176へ出力する( ステップ S014)。このとき、データ格納部には、処理結果と、受け取り先を示すノヽンド ル値「1」とを格納する。
[0137] コマンドの出力元を示すデバイス ID— Bと休眠要求とを受け取ると (ステップ S012) 、通常 OS 151へのシステムコールによって、受け取った休眠要求をセキュア入出力 エントリデバイスドライバ 158へ出力する (ステップ S015)。このとき、データ格納部に は、受け取り先を示す識別情報として、受け取ったデバイス ID— Bを格納し、システ ムコールの出力元を示す識別情報として音楽復号デーモン 156自身を示すハンドル 値「1」とを格納する。
[0138] コマンドの出力元を示すデバイス ID— Bと、割込通知とを受け取ると (ステップ S01 2)、セキュア処理要求のデータ格納部に、受け取った割込通知とデバイス ID— Bと 音楽復号デーモン 156自身を示すノ、ンドル値「1」とを格納し、通常 OSへ出力するこ とにより、受け取った割込通知をセキュア入出力デバイスドライバ 178へ出力する (ス テツプ SO 16)。
[0139] セキュア OS171及び通常 OS151を介して、音楽復号プログラム 176から、復号命 令を受け取ると、システムコールにより暗号エントリデバイスドライバ 159へ復号命令 を出力する (ステップ S017)。
応答通知により、暗号エントリデバイスドライバ 159から、デバイス ID— Cと復号命令 を受け取ると (ステップ S012)、セキュア処理要求により、受け取った復号命令を暗号 デバイスドライバ 179へ出力する。このとき、データ格納部には、復号命令と受け取つ たデバイス ID_Cと音楽復号デーモン 156自身を示すハンドル値「1」とを格納する( ステップ SO 18)。
[0140] 通常 OS151から、デバイス ID— Cと休眠要求とを受け取ると、システムコールにより 暗号エントリデバイスドライバ 159へ、受け取った休眠要求を出力する (ステップ S01 9)。このとき、データ格納部には、受け取り先を示す識別情報として受け取ったデバ イス ID— Cと音楽復号デーモン 156自身を示すハンドル値「1」と休眠要求とを格納 する。
[0141] 応答通知によって、暗号エントリデバイスドライバ 159から、デバイス ID— Cと割込 通知とを受け取ると (ステップ S012)、セキュア処理要求により、受け取った割込通知 を暗号デバイスドライバ 179へ出力する (ステップ S021)。データ格納部には、受け 取ったデバイス ID— Cと割込通知と音楽復号デーモン 156自身を示すハンドル値「1 」とを格納する。
[0142] 通常 OS151から、デバイス ID— Cと処理結果とを受け取ると、システムコールにより 、受け取った処理結果を暗号エントリデバイスドライバ 159へ出力する (ステップ S02 2)。
応答通知により、暗号エントリデバイスドライバ 159から、デバイス ID— Cと処理結果 とを受け取ると、セキュア処理要求によって、音楽復号プログラム 176へ受け取った 処理結果を出力する (ステップ S023)。
<通常入出力デバイスドライバ 157 >
通常入出力デバイスドライバ 157は、予め、通常入出力デバイスドライバ 157自身 を示す識別情報として、デバイス ID_Aを有している。
[0143] 通常入出力デバイスドライバ 157は、入出力部 116を構成する通常入出力デバイ ス 132を制御するプログラムである。
また、通常入出力デバイスドライバ 157は、排他フラグを記憶している。通常入出力 デバイス 132が動作中は、排他フラグ「1」、動作中でなければ排他フラグ「0」を設定 する。入出力の処理命令を受け取った際に排他フラグが「1」であれば、通常入出力 デバイス 132が動作中であり、処理を受け付けることができないことを示すエラー通 知を出力する。
くセキュア入出力エントリデバイスドライバ 158及びセキュア入出力デバイスドライバ 178 >
セキュア入出力デバイスドライバ 178及びセキュア入出力エントリデバイスドライバ 1 58は、予め、同一の識別情報、デバイス ID— Bを有する。
[0144] セキュア入出力デバイスドライバ 178及びセキュア入出力エントリデバイスドライバ 1 58が、対になって制御することにより、セキュア入出力デバイス 133は正常に動作す る。セキュア入出力デバイスドライバ 178は、セキュア入出力デバイス 133の制御のう ち、セキュアな処理である入出力処理の依頼及び処理結果の取得を行い、セキュア 入出力エントリデバイスドライバ 158は、高いセキュリティを必要としない処理である、 休眠及び割込の検出を行う。
[0145] 本実施の形態において、セキュア入出力デバイスドライバ 178は、セキュア OS171 を介して音楽復号プログラム 176から、コンテンツ鍵読出命令を受け取る。コンテンツ 鍵読出命令を受け取ると、暗号処理デバイス 117へ、コンテンツ鍵の読出を指示する 。次に、セキュア OS171へ外部処理要求を出力することにより、音楽復号デーモン 1 56へ休眠要求を出力する。このとき、コマンドのデータ格納部には、休眠要求と、受 け取り先を示す識別情報として音楽復号プログラム 176から受け取ったハンドル値「1 」と、コマンドの出力元を示す識別情報としてセキュア入出力デバイスドライバ 178自 身を示すデバイス ID_Bとを格納する。
[0146] 次に、セキュア入出力デバイスドライバ 178は、セキュア OS 171を介して音楽復号 デーモン 156から割込通知を受け取り、セキュア入出力デバイス 133から処理結果と して、コンテンツ鍵の格納されたアドレスを取得する。取得した処理結果をセキュア o
S171への応答通知により、音楽復号プログラム 176へ出力する。
セキュア入出力エントリデバイスドライバ 158は、通常 OS151を介して音楽復号デ 一モン 156から休眠要求を受け取る。休眠要求を受け取ると、通常 OS151に対して 、データ格納部に、ハンドル値「1」とデバイス ID— Bを含む休眠要求を出力する。
[0147] 次に、通常 OS151により休眠が解除されると、キュア入出力エントリデバイスドライ バ 158は、応答通知により通常 OS151を介して、音楽復号デーモン 156へ割込通 知を出力する。このとき、データ格納部には、「休眠要求」と、デバイス ID— Bと、ハン ドル値「1」とを格納する。
く暗号デバイスドライバ 179及び暗号エントリデバイスドライバ 159 >
暗号デバイスドライバ 179及び暗号エントリデバイスドライバ 159は、予め、識別情 報としてデバイス ID— Cを有して!/、る。
[0148] 暗号デバイスドライバ 179と暗号エントリデバイスドライバ 159が、対になって制御す ることにより、暗号処理デバイス 117は正常に動作することができる。暗号処理デバィ ス 117の制御のうち、暗号デバイスドライバ 179は、復号処理の依頼と処理結果の取 得とを行い、暗号エントリデバイスドライバ 159は、排他制御と休眠及び割込通知を 行う。
[0149] 本実施の形態において、具体的には、暗号エントリデバイスドライバ 159は、システ ムコールにより音楽復号デーモン 156から復号命令を受け取る。復号命令を受け取 ると、排他フラグによる排他制御を行う。つまり、排他フラグ力 「l」であれば、エラー通 知を出力し、以下の処理を中止し、排他フラグが「0」であれば、排他フラグを「1」に 変更する。
[0150] 次に、受け取った復号命令とハンドル値「1」と暗号エントリデバイスドライバ 159自 身の有するデバイス ID— Cとをデータ格納部に含む応答通知を通常 OS 151へ出力 することにより、復号命令を音楽復号デーモン 156へ出力する。
次に、システムコールにより音楽復号デーモン 156から休眠要求を受け取る。次に 、通常 OS151へ休眠要求を出力する。このとき、休眠要求のデータ格納部には、シ ステムコールに含んで受け取ったハンドル値「1」とデバイス ID Cとが格納されてい る。
[0151] 次に、通常 OSにより休眠を解除される。休眠を解除され、応答通知により割込通知 を音楽復号デーモン 156へ出力する。
次に、通常 OS151を介して、音楽復号デーモン 156から処理結果を受け取る。処 理結果を受け取ると、排他制御を解除して、排他フラグを「0」に戻す。応答通知によ り、受け取った処理結果を音楽復号デーモン 156へ出力する。
[0152] 暗号デバイスドライバ 179は、セキュア処理要求により、セキュア OS171を介して、 音楽復号デーモン 156から復号処理命令受け取り、暗号処理デバイス 117へ復号を 依頼する。次に、暗号デバイスドライバ 179自身の有するデバイス ID_Cと、復号処 理命令と共に受け取ったノ、ンドル値「1」と休眠要求をデータ格納部に格納した外部 処理要求をセキュア OS171へ出力する。
[0153] 次に、セキュア OS171へのセキュア処理要求により、音楽復号デーモン 156から 割込通知を受け取り、暗号処理デバイス 117から、処理結果としてバッファ 123上の 書き込み先アドレスを受け取る。受け取った処理結果とハンドル値「1」とデバイス ID —Cとデータ格納部に含む外部処理要求をセキュア OS171へ出力することにより、 処理結果を音楽復号デーモン 156へ出力する。
[0154] く通常切替デバイスドライバ 160及びセキュア切替デバイスドライバ 180 >
通常 OS151又はセキュア OSから切替指示を受け、通常切替デバイスドライバ 160 及びセキュア切替デバイスドライバ 180は、切替制御部 106へ切替指示を出力し、 C PU102の使用権を通常 OS151からセキュア OS171へ、又は、セキュア OS171力 ら通常 OS 151へ移すプログラムである。
[0155] (a)切替処理 1
以下に、図 13を用いて、通常 OS151からセキュア OS171への切替処理について 説明する。なお、これは、図 10のステップ S 1028及び図 16以降のフローチャートの 切替処理 1の詳細である。
通常切替デバイスドライバ 160は、通常 OS151から呼び出され、切替指示を受け 取る(ステップ S162)。切替指示を受け取ると、通常 OS151のコンテキストを通常メ モリ 111上に退避する (ステップ S 163)。次に、切替制御部 106へ切替指示を出力 する(ステップ SI 64)。
[0156] 切替制御部 106は、 CPU102及び MMU103をクリアした後、メモリ保護部 114へ 接続指示を出力し、セキュアメモリ 113とバス 130とを接続する (ステップ S166)。次 に、切替制御部 106は、セキュアメモリ 113上のセキュア切替デバイスドライバ 180を 呼び出す (ステップ S 167)。
セキュア切替デバイスドライバ 180は、呼び出されると、セキュア OS171のコンテキ ストを CPU102に復帰させる(ステップ S168)。
[0157] セキュア OS171は、デバッグ無効化プログラム 173により、デバッガ IF101を無効 化する(ステップ S 169)。
(b)切替処理 2
以下に、図 14のフローチャートを用いて、セキュア OS171から通常 OS151への切 替処理について説明する。なお、これは、図 11のステップ S1062及び図 16以降の フローチャートの切替処理 2の詳細を示して 、る。
[0158] セキュア OS171は、デバッグ無効化プログラム 173により、デバッガ IF101を有効 にし (ステップ S176)、セキュア切替デバイスドライバ 180を呼び出し、切替指示を出 力する (ステップ S 177)。
セキュア切替デバイスドライバ 180はセキュア OS171のコンテキストを退避し (ステ ップ S 178)、切替制御部 106へ切替指示を出力する。
[0159] 切替制御部 106は、切替指示を受け取り、 CPU102及び MMU103をクリアした後
、メモリ保護部 114へ切断指示を出力し、セキュアメモリ 113とバス 130とを切断する( ステップ S181)。次に、通常メモリ 111上の通常切替デバイスドライバ 160を呼び出 す (ステップ S 182)。
通常切替デバイスドライバ 160は通常 OS151のコンテキストを CPU102へ復帰さ せる(ステップ S 183)。
[0160] なお、ここでは、セキュア OS171から通常 OS151へ切り替える際に、デバッガ IF1 01を有効にしている力 有効にしなくても良い。この場合、携帯電話 100に電源を入 れて、最初に、通常 OS151からセキュア OS171へ切り替える際に、デバッグ無効化 プログラム 173により、デバッガ IF101を無効にし、その後は、セキュア OS171から 通常 OS151への切替処理においても、通常 OS151からセキュア OS171への切替 処理においても、デバッグガ IF101を無効のままにしておく。
[0161] また、本実施の形態では、セキュア OS171か有するデバッグ無効化プログラム 173 によって、デバッガ IF101を無効化及び有効化している力 通常 OS151がデバッグ 無効化プログラムを含んでいても良い。また、デバッグ無効化プログラムは、通常メモ リ 111上にをロードされ、通常 OS 151に管理される独立したプログラムであってもよ い。
[0162] また、通常 OS151及びセキュア OS171が、それぞれ、デバッグ無効化プログラム を有しているとしても良い。この場合、通常 OS151の有するデバッグ無効化プロダラ ムカ デバッガ IF101を無効化し、セキュア OS171の有するデバッグ無効化プロダラ ムがデバッガ IFを有効化する。また、逆に、セキュア OS171の有するデバッグ無効 化プログラム力 デバッガ IF101を無効化し、通常 OS151の有するデバッグ無効化 プログラムがデバッガ IFを有効化してもよ 、。
[0163] また、これらのデバッグ無効化プログラムは、それぞれ、独立したプログラムとして、 通常メモリ 111及びセキュアメモリ 113にロードされて!/ヽても良!、。
<通常割込ハンドラ 161及びセキュア割込ハンドラ 181 >
通常割込ハンドラ 161は、通常 OS151及び通常 OS151により制御されるプロダラ ムの実行中に、割込が発生した場合に、通常 OS151に呼び出される。通常 OS151 から呼び出され、割込発生通知を受け取ると、割込コントローラ 107を制御し、割込を 発生させている要因を調査する。次に、割込を発生させているデバイスを示す識別 情報と割込通知とを通常 OS151へ出力する。
[0164] セキュア割込ハンドラ 181は、セキュア OS171及びセキュア OS171により制御され るプログラムの実行中に、割込が発生した場合に、セキュア OS171に呼び出される。 セキュア OS171から呼び出され、割込発生通知を受け取ると、 CPU102の割込検 出用のレジスタへダミーデータを書き込むことによって、割込マスク処理を施し、セキ ユア OS171へ割込発生通知を出力する。
[0165] (3)入出力部 116
入出力部 116は、図 8に示すようにアクセス部 131、通常入出力デバイス 132及び セキュア入出力デバイス 133から構成される。
アクセス部 131は、メモリカード 300と接続され、メモリカード 300と通常入出力デバ イス 132及びセキュア入出力デバイス 133との間で、情報の入出力を行う。
[0166] 通常入出力デバイス 132は、通常入出力デバイスドライバ 157の制御により、メモリ カード 300の一般領域 303へのデータの読み出し及び書き込みを行う。一例として、 引数として楽曲 IDを受け取り、読出要求を受けると、受け取った楽曲 IDと対応する暗 号ィ匕音楽データを一般領域 303から読み出し、読み出した暗号化音楽データを共 有メモリ 112へ書き込む。
[0167] 書き込み終了後に、通常入出力デバイスドライバ 157から結果要求を受け取ると、 処理結果として、暗号化音楽データを書き込んだ、共有メモリ 112上のアドレスを出 力する。
セキュア入出力デバイス 133は、セキュア入出力デバイスドライバ 178の制御により 、メモリカード 300のセキュア処理部 302との間で、 CPRMの仕組みに基づいて相互 認証を行う。相互認証が成功であった場合に限り、鍵を共有し、共有した鍵を用いて 、安全に、セキュア領域 306へのデータの書き込み及び読み出しを行う。
[0168] また、認証に失敗した場合は、メモリカード 300にアクセスできないことを示すカード エラー通知をセキュア入出力デバイスドライバ 178へ出力する。
ここで、セキュア入出力デバイス 133は、メモリカード 300のセキュア領域 306にァク セスする場合にのみ使用されるデバイスであり、メモリカード 300のセキュア領域 306 にアクセスするプログラムは、限定されている。従って、複数のアプリケーションから同 時に処理を依頼されることはありえないため、排他制御を行う必要がない。
[0169] (4)暗号処理デバイス 117
暗号処理デバイス 117は、暗号デバイスドライバ 179の制御により、各種データの 暗号処理を行う。本実施の形態では、暗号デバイスドライバ 179から、暗号化音楽デ ータの記憶されて 、る共有メモリ 112上のアドレスと、コンテンツ鍵が記憶されて!、る セキュアメモリ 113上のアドレスとを受け取り、暗号化音楽データの復号を指示される 。コンテンツ鍵を用いて、暗号ィ匕音楽データに復号アルゴリズム D1を施して、音楽デ ータを生成し、生成した音楽データをバッファ 123へ書き込む。書き込み先のアドレ スを、処理結果として暗号デバイスドライバ 179へ出力する。復号アルゴリズム D1は 、暗号ィ匕アルゴリズム E1によって生成された暗号文を復号するものである。
[0170] ここで、暗号処理デバイス 117は、各種の暗号ィ匕されたデータを復号するデバイス であり、コンテンツ配信サーノくから送信される暗号ィ匕コンテンツなどの復号も行う。従 つて、暗号処理デバイス 117は、複数の異なるプログラムから復号処理を依頼される 可能性があり、排他制御が必要である。
(5) CPU102
CPU102は、命令フェッチ部、命令デコーダ、演算器、プログラムカウンタ、レジス タなどを備え、通常メモリ 111又はセキュアメモリ 113上のプログラムから命令をフェツ チし、フェッチした命令を解読し、解読した命令を実行する。
[0171] (6) MMU103
MMU103は、論理アドレスを物理アドレスに変換することにより仮想記憶機能を実 現する。
(7)デバッガ IF101及び割込コントローラ 107
デバッガ IF101は、携帯電話 100と外部のデバッガとを接続するためのインターフ エースである。
[0172] 割込コントローラ 107は、各種の割込を検出し、 CPU102の割込検出用のレジスタ へ割込発生通知を出力する。
(8)切替制御部 106及びメモリ保護部 114
切替制御部 106は、通常メモリ 111上の通常切替デバイスドライバ 160又は、セキ ユアメモリ 113上のセキュア切替デバイスドライバ 180から切替指示を受け取り、メモリ 保護部 114により、ノ ス 130とセキュアメモリ 113を接続又は切断する。切替制御部 1 06及びメモリ保護部 114の詳細な動作は、上記の(a)切替処理 1及び (b)切替処理 2において説明した通りである。
[0173] (9)無線通信制御部 118、通信部 121及びアンテナ 122
通信部 121は、無線通信制御部 118と、携帯電話網 10、インターネット 20に接続さ れた外部機器との間で、アンテナ 122を介して情報の送受信を行う。
無線通信制御部 118は、ベースバンド部、変復調部、増幅器などを備えており、通 信部 121及びアンテナ 122を介して送受信される各種の情報の信号処理を行う。
[0174] (10)バッファ 123、符号処理部 124、 DZ A変換部 126
バッファ 123は、音楽データを一時的に記憶する。
符号処理部 124は、ノ ッファ 123に記憶されて 、る音楽データに MP3などの符号 化技術に従った復号処理を施し、 DZA変換部 126へ出力する。
DZA変換部 126は、符号処理部 124により復号された音楽データをアナログ音声 信号に変換し、スピーカ 120へ出力する。
[0175] (11)入力部 108、表示部 109、マイク 119スピーカ 120
入力部 108は、テンキー、決定ボタンなどの各種のボタンを備え、利用者によるこれ らの操作を受け付ける。
表示部 109は、 VRAM、液晶画面を備え、各種の画面を表示する。
マイク 119は、音声を検出し、検出した音声を無線通信制御部 118へ出力する。
[0176] スピーカ 120は、無線通信制御部 118及び DZA変換部 126から、アナログ音声信 号を受け取り、受け取った音声信号に基づく音声を出力する。
1. 3 携帯電話 100及びメモリカード 300の動作
図 15—図 35に示すフローチャートは、携帯電話 100の動作を示すフローチャート である。図 36—図 40は、携帯電話 100の動作における各プログラム間のコマンドの 授受を示したシーケンス図である。これらのフローチャート及びシーケンス図を用いて 、携帯電話 100の動作について説明する。
[0177] なお、シーケンス図とフローチャートの対応する処理には、同一のステップ番号を付 している。また、通常 OS151及びセキュア OS171についての説明で述べたように、 通常メモリ 111及びセキュアメモリ 113上の各プログラムは、システムコール、応答通 知、外部処理要求、セキュア処理要求によって、他のプログラムへのコマンド及びデ ータの仲介を通常 OS 151及びセキュア OS 171へ依頼して!/、る。図 15—図 40及び 以下の説明においては、システムコール、応答通知、外部処理要求、セキュア処理 要求の記載を省略し、各プログラム力 これらのコマンドのデータ格納部に格納して 出力する識別情報、データ及びコマンドをのみを記載して 、る。
[0178] (1)携帯電話 100の動作 携帯電話 100の動作について、図 15に示すフローチャートを用いて説明する。 携帯電話 100は、入力部 108により利用者によるボタン操作を受け付ける (ステップ S101)。受付た操作が、音楽再生を示している場合、音楽再生プログラム 153を起 動する (ステップ S 102)。受け付けたボタン操作がその他の処理を示している場合、 その他の処理を行う(ステップ S 103)。
[0179] 次に、音楽復号プログラムの登録処理を行う(ステップ S104)。次に、音楽復号プロ グラム 176へ復号処理を依頼する (ステップ S106)。音楽復号プログラム 176による 復号が終了すると、生成された音楽データを MP3に従った方法で伸張し、アナログ データに変換してアナログ音楽データを生成し、生成したアナログ音楽データをスピ 一力 120により出力する (ステップ S107)。入力部 108により、音楽再生の終了を示 すボタン操作を受け付けるまで (ステップ S 108)、ステップ S 106— 108を繰り返す。
[0180] 音楽再生の終了を示すボタン操作を受け付けると (ステップ S 108の YES)、音楽 復号プログラムの削除処理を行う(ステップ S109)。
(2)音楽復号プログラムの登録
図 16— 17は、音楽復号プログラムの登録処理における、各プログラムの動作を詳 細に示すフローチャートである。これは、図 36におけるステップ S132—ステップ S15 3のシーケンスと対応している。図 16— 17に示すフローチャート及び図 36のシーケ ンス図を用いて、音楽復号プログラムの登録処理にっ 、て説明する。
[0181] 音楽再生プログラム 153は、予め、コーディングされているデーモン情報とセキュア アプリ情報とを読み出す (ステップ S131)。セキュアアプリ登録要求と、読み出したデ 一モン情報及びセキュアアプリ情報とを通常 OS151へ出力する (ステップ S132)。 通常 OS151は、セキュアアプリ登録要求を受け取ると、音楽再生プログラム 153の コンテキストを保存し、保存先のアドレスをアプリ管理表のエントリ 167のアプリコンテ キストアドレスに書き込む (ステップ S133)。次に、受け取ったセキュアアプリ情報と対 応する暗号化音楽復号プログラム 141を二次記憶部 104から読み出し、共有メモリ 1 12へ書き込む (ステップ S 134)。次に、セキュアアプリ登録要求を共有メモリ 112のコ マンド領域へ書き込み (ステップ S 136)、切替処理 1に移る(ステップ S 137)。
[0182] 切替処理 1が終了すると、セキュア OS171は共有メモリ 112からセキュアアプリ登 録要求を読み込む (ステップ SI 38)。次に、喑復号プログラムにより、共有メモリ 112 上の暗号ィ匕音楽復号プログラムを復号して音楽復号プログラムを生成し、生成した音 楽復号プログラムをセキュアメモリ 113上に書き込む (ステップ S 139)。音楽復号プロ グラムに対して、ハンドル値「1」を設定し、セキュアアプリ管理表 186のエントリ 187の ハンドル値に「1」を書き込み、セキュアアプリアドレスに音楽復号プログラム 176を書 き込んだセキュアメモリ 113上のアドレスを書き込む (ステップ S 141)。
[0183] 次に、登録完了通知とハンドル値「1」とを共有メモリ 112に書き込み (ステップ S14 3)、切替処理 2 (ステップ S 144)へ処理を移す。
通常 OS151は、共有メモリ 112から登録完了通知とハンドル値「1」とを読み出す( ステップ S146)。読み出したノヽンドル値「1」を、アプリ管理表 166のエントリ 167に書 き込む (ステップ S 147)。デーモン情報を基に二次記憶部 104から、音楽復号デ一 モン 142を読み出し、通常メモリ 111上に書き込む (ステップ S 149)。通常メモリ 111 上の音楽復号デーモン 156の書き込み先アドレスをアプリ管理表 166のエントリ 167 へ書き込む(ステップ S 151)。
[0184] 次に、エントリ 167のアプリコンテキストアドレスを基に、音楽再生プログラム 153のコ ンテキストを CPU102に復帰させ (ステップ S152)、受け取ったハンドル値「1」を、音 楽再生プログラム 153へ出力する (ステップ S153)。
音楽再生プログラム 153は、受け取ったノヽンドル値「1」を、通常メモリ 111における 音楽再生プログラム 153自身の記憶領域に書き込む (ステップ S 154)。
[0185] (3)音楽復号プログラムへの処理依頼
図 18— 27のフローチャートは、音楽再生プログラム 153の依頼により、音楽復号プ ログラム 176が暗号ィ匕音楽データを復号する際の各プログラムの動作を示している。 これは、図 36のステップ S193—図 42のステップ S347と対応している。
音楽再生プログラム 153は、曲目リストなどを含む選択画面を表示し、利用者の楽 曲選択を受け付ける (ステップ S191)。受け付けた楽曲を示す楽曲 IDとハンドル値「 1」を読み出す (ステップ S192)。読み出した楽曲 IDを引数として、引数とハンドル値 「1」と復号処理命令とを通常 OS151へ出力する (ステップ S193)。
[0186] 通常 OS151は、音楽再生プログラム 153のコンテキストを通常メモリ 111上に保存 し (ステップ SI 96)、保存先のアドレスをアプリ管理表 166のハンドル値「1」を含むェ ントリ 167に書き込む (ステップ S197)。次に、受け取った引数とハンドル値「1」と復 号処理命令とを共有メモリ 112に書き込み (ステップ S198)、切替処理 1を行う(ステ ップ S 199)。
[0187] セキュア OS171は、切替処理 1が終了すると (ステップ S199)、共有メモリ 112から
I数とハンドル値「 1」と復号処理命令とを読み出す (ステップ S 201)。セキュアアプリ 管理表 186上で、読み出したノヽンドル値「1」を含むエントリ 187のセキュアアプリアド レスを基に、音楽復号プログラム 176を起動し (ステップ S202)、読み出した引数とハ ンドル値「1」と復号処理命令とを音楽復号プログラム 176へ出力する (ステップ S203
) o
[0188] 音楽復号プログラム 176は、セキュア OS171から引数と復号処理命令とを受け取り 、受け取った引数 (楽曲 ID)を記憶する。次に、 CPU102は、音楽復号プログラム 17 6 (データ読み出しステップ)を実行する (ステップ S204)。音楽復号プログラム 176は 、楽曲 IDを読み出し (ステップ S206)、読み出した楽曲 IDを引数として、データ読出 命令と引数とハンドル値「1」をセキュア OS171へ出力する(ステップ S208)。
[0189] セキュア OS171は、音楽復号プログラム 176からデータ読出命令と引数とハンドル 値「1」とを受け取り、音楽復号プログラム 176のコンテキストをセキュアメモリ 113上に 保存し、保存先のアドレスをセキュアアプリ管理表 186のエントリ 187に書き込む (ス テツプ S209)。次に、共有メモリ 112に受け取ったデータ読出命令と引数とハンドル 値「 1」とを書き込み (ステップ S 211)、切替処理 2に移る (ステップ S 216)。
[0190] 切替処理 2が終了すると (ステップ S216)、通常 OS151は、共有メモリ 112からデ 一タ読出命令と引数とハンドル値「1」とを読み出す (ステップ S217)。アプリ管理表 1 66のハンドル値「 1」を含むエントリ 167を選択し、選択したエントリ 167に含まれるデ 一モンアドレスにより、音楽復号デーモン 156を起動する (ステップ S218)。読み出し たデータ読出命令と引数とハンドル値「1」とを音楽復号デーモン 156へ出力する (ス テツプ S 219)。
[0191] 音楽復号デーモン 156は、データ読出命令と引数とハンドル値「1」とを受け取る。
データ読出命令を受け取ると、ライブラリ 152に格納されているアクセス関数を呼び 出し、引数とハンドル値「1」とを出力する (ステップ S221)。音楽復号デーモン 156に 呼び出されたアクセス関数は、読出要求と引数とデバイス ID— Aと受け取ったハンド ル値「1」とを通常 OS151へ、出力する(ステップ S222)。通常 OS151は、受け取つ たデバイス ID— Aと対応する通常入出力デバイスドライバ 157へ、読出要求と引数と デバイス ID— Aとハンドル値「1」とを出力する(ステップ S223)。
[0192] 通常入出力デバイスドライバ 157は、読出要求、引数及びハンドル値「1」を受け取 る。次に、排他フラグが「0」である力否かを判断する (ステップ S224)。排他フラグが「 1」であれば (ステップ S224の NO)、通常入出力デバイスドライバ 157は、通常入出 力デバイス 132が、動作中であり、新たな読出要求を受け付けることができないことを 示すエラー通知を出力する。
[0193] 通常 OS 151及びアクセス関数を介して、音楽復号デーモン 156は、エラー通知を 受け取り、一定時間経過後に、再度、読出要求を出力する。また、受け取ったエラー 通知を通常 OS151、セキュア OS171を介して音楽復号プログラム 176へ出力し、復 号の処理を中止するとしても良い。
排他フラグが「0」であると判断すると (ステップ S224の YES)、排他フラグを「1」に 変更し (ステップ S227)、受け取った引数を通常入出力デバイス 132へ出力し、デー タの読み出しを指示する (ステップ S231)。
[0194] 通常入出力デバイス 132は、引数 (楽曲 ID)と読出要求とを受け取り、メモリカード 3 00の一般領域 303から、受け取った楽曲 IDと対応する暗号ィ匕音楽データ 304の読 み出し及び読み出した暗号ィ匕音楽データ 304の共有メモリ 112への書き込みを開始 する(ステップ S 236)。
通常入出力デバイスドライバ 157は、通常入出力デバイス 132へ読出要求を出力 すると (ステップ S231)、通常 OS151へ、通常入出力デバイスドライバ 157自身の有 するデバイス ID— A及び受け取ったハンドル値「1」を含む休眠要求を出力する (ステ ップ S232)。
[0195] 通常 OS151は、休眠要求を受け取ると、ハンドル値「1」と対応する音楽復号デ一 モン 156とデバイス ID_Aと対応する通常入出力デバイスドライバ 157とを休眠状態 にする(ステップ S233、ステップ S234)。次に、タスクスケジューリングにより、実行可 能状態の他のプログラムへ CPU102を割り当てる(ステップ S238)。
通常入出力デバイス 132における処理が終了すると、割込が発生し、音楽復号デ 一モン 156は、処理結果を取得する(ステップ S239)。ステップ S239における、割込 発生時の処理 1にっては、後で説明する。また、ステップ S239の処理は、図 37のス テツプ S463— 478のシーケンスと対応して!/、る。
[0196] 割込発生時の処理 1 (ステップ S239)において、音楽復号デーモン 156は、通常入 出力デバイス 132による処理結果として、暗号化音楽データの共有メモリ 112上の書 込先アドレスを取得する。取得した処理結果とハンドル値「1」を通常 OS151へ出力 する(ステップ S241)。通常 OS151は受け取った処理結果とハンドル値「1」とを共有 メモリ 112へ書き込み (ステップ S242)、切替処理 1を行う(ステップ S244)。
[0197] 切替処理 1 (ステップ S244)が終了すると、セキュア OS171は、共有メモリ 112から ハンドル値「1」と処理結果とを読み出す (ステップ S251)。セキュアアプリ管理表 186 から、読み出したノヽンドル値「1」を含むエントリ 187を選択し、エントリ 187のセキュア アプリコンテキストアドレスにより音楽復号プログラム 176のコンテキストを CPU102に 復帰させる (ステップ S252)。次に、読み出した処理結果とハンドル値「1」とを音楽復 号プログラム 176へ出力する(ステップ S254)。
[0198] 音楽復号プログラム 176は、処理結果として暗号化音楽データの書込先アドレスを 受け取り、受け取った書込先アドレスを自身の記憶領域に記憶する。
次に、 CPU102は、音楽復号プログラム 176 (コンテンツ鍵読出ステップ)を実行す る (ステップ S256)。音楽復号プログラム 176は、コンテンツ鍵読出命令とデバイス ID _Bと音楽復号プログラム 176自身を示すハンドル値「1」とを含むシステムコールを セキュア OS171へ出力する(ステップ S257)。
[0199] セキュア OS171は、コンテンツ鍵読出命令とデバイス ID— Bとハンドル値「1」とを 受け取り、受け取ったデバイス ID— Bと対応するセキュア入出力デバイスドライバ 17 8へ、受け取ったコンテンツ鍵読出命令とデバイス ID— Bとハンドル値「1」とを出力す る(ステップ S 258)。
セキュア入出力デバイスドライバ 178は、コンテンツ鍵読出命令とデバイス ID— Bと ハンドル値「1」とを受け取り、セキュア入出力デバイス 133へ、コンテンツ鍵読出命令 を出力する (ステップ S259)。
[0200] セキュア入出力デバイス 133は、コンテンツ鍵読出命令を受け取り、次に、メモリ力 ード 300のセキュア処理部 302との間で相互認証を行う(ステップ S262)。認証に成 功すると (ステップ S263の YES)、コンテンツ鍵の取得を開始する(ステップ S266)。 認証が失敗であった場合、カードエラー通知を出力し、前記コンテンツ鍵の取得を 中止する (ステップ S264)。この場合、音楽復号デーモン 156及び音楽復号プロダラ ム 176は、復号処理を中止し、音楽再生プログラム 153は、メモリカード 300が読み 取り不可であることを通知する画面を表示する。
[0201] セキュア入出力デバイスドライバ 178は、次に、セキュア OS171へ休眠要求と、受 け取ったノヽンドル値「1」と、セキュア入出力デバイスドライバ 178自身を示すデバイス ID— Bとを出力する (ステップ S271)。なお、ここで出力される休眠要求は、セキュア OS 171へ休眠処理を要求するものではなく、外部処理要求のデータ格納部に格納 され、音楽復号デーモン 156へ仲介されるコマンドである。
[0202] セキュア OS171は、セキュア入出力デバイスドライバ 178から、休眠要求とハンドル 値「1」とデバイス ID— Bとを受け取り、共有メモリ 112へ、受け取った休眠要求とハン ドル値「1」とデバイス ID— Bとを書き込む (ステップ S272)。次に、切替処理 2に移る( ステップ S273)。
切替処理が終了すると (ステップ S273)、通常 OS151は、共有メモリ 112から、休 眠要求とハンドル値「1」とデバイス ID— Bとを読み出す (ステップ S 274)。読み出した ハンドル値「1」を含むエントリ 168を基に音楽復号デーモン 156を起動し (ステップ S 276)、読み出した休眠要求とデバイス ID— Bとハンドル値「1」とを出力する (ステツ プ S277)。
[0203] 音楽復号デーモン 156は、通常 OS 151から休眠要求とデバイス ID— Bとハンドル 値「1」とを受け取る。休眠要求とを受け取ると、通常 OS 151へ休眠要求とデバイス I D— Bとハンドル値「1」とを含むシステムコールを出力する(ステップ S278)。
セキュア OS 171は、受け取ったデバイス ID_Bと対応するセキュア入出力エントリ デバイスドライバ 158へ、受け取った休眠要求とデバイス ID— Bとハンドル値「1」とを 出力する (ステップ S281)。 [0204] セキュア入出力エントリデバイスドライバ 158は、通常 OS151を介して音楽復号デ 一モン 156から休眠要求を受け取ると、デバイス ID— Bとハンドル値「1」とを含む休 眠要求を通常 OS151へ出力する(ステップ S282)。
通常 OS151は、休眠要求とデバイス ID— Bとハンドル値「1」とを受け取る。休眠要 求を受け取ると、受け取ったデバイス ID— Bと対応するセキュア入出力エントリデバイ スドライバ 158と、受け取ったノヽンドル値「 1」と対応する音楽復号デーモン 156とに休 眠処理を行う(ステップ S283、ステップ S284)。
[0205] 次に、通常 OS151は、タスクスケジューリングを行い、実行可能状態の他のプログ ラムに CPUを割り当てる(ステップ S286)。
セキュア入出力デバイス 133によるコンテンツ鍵の取得が終了し、割込発生時の処 理 2 (ステップ S287)により、音楽復号プログラム 176は、処理結果を取得する。ステ ップ S287の割込発生時の処理 2については、後で説明する。また、ステップ S287に おける処理は、図 38のステップ S512—図 39のステップ S541に対応している。
[0206] ステップ S287において、音楽復号プログラム 176は、処理結果として、コンテンツ 鍵が記憶されているセキュアメモリ 113上のアドレスを取得する。次に、 CPU102は、 音楽復号プログラム 176 (復号ステップ)を実行する (ステップ S291)。音楽復号プロ グラム 176は、セキュアメモリ 113上のコンテンツ鍵の記憶されているアドレスと共有メ モリ 112上の暗号ィ匕音楽データの記憶されているアドレスとを引数として、復号命令 と引数とハンドル値「1」とをセキュア OS171へ出力する(ステップ S292)。
[0207] セキュア OS171は、音楽復号プログラム 176から復号命令と引数とハンドル値「1」 を受け取る。次に、受け取った復号命令と引数とハンドル値「1」とを共有メモリ 112へ 書き込み (ステップ S293)、切替処理 2を行う(ステップ S294)。
切替処理 2が終了すると (ステップ S294)、通常 OS151は、共有メモリ 112から復 号命令、引数及びノヽンドル値「1」を読み出す (ステップ S296)。読み出したハンドル 値「1」とアプリ管理表 166とを用いて、音楽復号デーモン 156を起動し、音楽復号デ 一モン 156へ読み出した復号命令と引数とハンドル値「1」とを出力する (ステップ S2 97)。
[0208] 音楽復号デーモン 156は、通常 OS151から復号命令と引数とハンドル値「1」とを 受け取る。復号命令を受け取ると、受け取った復号命令及び引数と、デバイス ID— C
、ハンドル値「1」を通常 OS151へ出力する(ステップ S298)。
通常 OS151は、音楽復号デーモン 156から復号命令、引数、デバイス ID— C及び ハンドル値「1」を受け取り、受け取ったデバイス ID— Cと対応する暗号エントリデバイ スドライバ 159へ、受け取った復号命令、引数、デバイス ID— C及びハンドル値「1」 を出力する (ステップ S301)。
[0209] 暗号エントリデバイスドライバ 159は、通常 OS151を介して音楽復号デーモン 156 力も引数と復号命令とデバイス ID— Cとハンドル値「1」とを受け取る。復号命令を受 け取ったとき、排他フラグ力 「l」であれば (ステップ S303の NO)、暗号処理デバイス
117が、既に動作中であり、新たな処理の依頼を受け付けられないことを示すエラー 通知を出力する (ステップ S304)。このとき、エラー通知を受け取った音楽復号デ一 モン 156は、一定時間経過後に再度、復号命令を出力する。
[0210] 排他フラグが「0」であれば (ステップ S303の YES)、排他フラグを「1」に変更し (ス テツプ S306)、受け取った引数と復号命令とハンドル値「1」及びデバイス ID— Cを通 常 OS151へ出力する(ステップ S307)
通常 OSは、受け取ったノヽンドル値「1」と対応する音楽復号デーモン 156を呼び出 し、受け取った復号命令と引数とハンドル値「1」とデバイス ID_Cとを出力する (ステ ップ S 308)。
[0211] 音楽復号デーモン 156は、通常 OS151を介して、暗号エントリデバイスドライバ 15 9から復号命令と引数とハンドル値「1」とデバイス ID— Cとを受け取る。次に、受け取 つた復号命令と引数とデバイス ID— Cとハンドル値「1」を通常 OS151へ出力する (ス テツプ S309)。
通常 OS151は、音楽復号デーモン 156から、復号命令と引数とデバイス ID—じと ハンドル値「1」を受け取り、共有メモリ 112へ、受け取った復号命令と引数とデバイス ID— Cとハンドル値「1」とを書き込み (ステップ S312)、切替処理 2を行う(ステップ S 313) o
[0212] 切替処理 2が終了すると (ステップ S313)、セキュア OS171は、共有メモリ 112から 復号命令と引数とデバイス ID_Cとハンドル値「1」とを読み出す (ステップ S314)。読 み出したデバイス ID_Cを基に、暗号デバイスドライバ 179を起動し (ステップ S315) 、読み出した復号命令、引数、ハンドル値「1」を暗号デバイスドライバ 179へ出力す る(ステップ S316)。
[0213] 暗号デバイスドライバ 179は、セキュア OS171から復号命令と引数とデバイス ID— Cとハンドル値「1」とを受け取り、暗号処理デバイス 117へ受け取った引数を出力し 復号を命令する (ステップ S317)。
暗号処理デバイス 117は、暗号デバイスドライバ 179から復号を命令されると、セキ ユアメモリ 113からコンテンツ鍵を読み出し、読み出したコンテンツ鍵を用いて、共有 メモリ 112上の暗号ィ匕音楽データに復号アルゴリズム D1を施して音楽データを生成 し、生成した音楽データをバッファ 123へ出力する (ステップ S318)。
[0214] 暗号デバイスドライバ 179は、暗号処理デバイス 117へ復号を命令した後、休眠要 求と、セキュア OS171から受け取ったハンドル値「1」と、暗号デバイスドライバ 179自 身を示すデバイス ID— Cを、セキュア OS 171へ出力する(ステップ S 321)。なお、こ こで出力される休眠要求は、セキュア OS171へ休眠処理を要求するものではなぐ 外部処理要求のデータ格納部に格納され、音楽復号デーモン 156へ仲介されるコ マンドである。
[0215] セキュア OS171は、暗号デバイスドライバ 179から休眠要求とハンドル値「1」とデ バイス ID— Cを受け取り、受け取った休眠要求とハンドル値「1」とデバイス ID— Cとを 共有メモリ 112へ書き込む(ステップ3322)。次に、切替処理 2を行う(ステップ S323
) o
切替処理 2が終了すると (ステップ S323)、通常 OS151は、共有メモリ 112からハ ンドル値「1」、デバイス ID_C及び休眠要求を読み出す (ステップ S326)。読み出し たハンドル値「1」とアプリ管理表 166とを基に音楽復号デーモン 156を起動し、読み 出した休眠要求とハンドル値「1」とデバイス ID— Cとを、音楽復号デーモン 156へ出 力する(ステップ S327)。
[0216] 音楽復号デーモン 156は、通常 OS151から休眠要求とハンドル値「1」とデバイス I D— Cとを受け取る。受け取った休眠要求とデバイス ID— Cと音楽復号デーモン 156 自身を示すノヽンドル値「1」とを通常 OS151へ出力する (ステップ S328)。通常 OS1 51は、受け取ったデバイス ID_Cと対応する暗号エントリデバイスドライバ 159へ、受 け取った休眠要求とデバイス ID— Cとハンドル値「1」とを出力する(ステップ S329)。
[0217] 暗号エントリデバイスドライバ 159は、通常 OS151を介して、音楽復号デーモン 15 6から休眠要求とデバイス ID— Cとハンドル値「1」とを受け取る。次に、通常 OS151 へ、休眠処理と受け取ったハンドル値「1」と暗号エントリデバイスドライバ 159自身の 有するデバイス ID_Cを出力する (ステップ S332)。
通常 OS151は、暗号エントリデバイスドライバ 159から、休眠要求とハンドル値「1」 とデバイス ID— Cを受け取り、受け取ったノ、ンドル値「1」と対応する音楽復号デーモ ン 156を休眠状態にする (ステップ S333)。次に、受け取ったデバイス ID_Cと対応 する暗号エントリデバイスドライバ 159を休眠状態にする (ステップ S334)。次に、タス クスケジューリングを行い、実行可能状態のプログラムに CPUを割り当てる (ステップ S336)。
[0218] 暗号処理デバイス 117による、復号処理が終了し、割込発生時の処理 3において、 音楽復号プログラム 176は、暗号処理デバイス 117による処理結果を受け取る (ステ ップ S337)。ステップ S337につ!/ヽて ίま、後で説明する。なお、ステップ S337iま、図 3 7のステップ S552—図 38のステップ S606に該当する。
音楽復号プログラム 176は、暗号処理デバイス 117による処理結果として、音楽デ ータのバッファ 123上の書込先アドレスを取得する。次に、 CPU102は、音楽復号プ ログラム 176 (音楽データ出力ステップ)を実行する (ステップ S338)。音楽復号プロ グラム 176は、音楽データの書込先アドレスを処理結果として、処理結果とアプリ復 帰要求とハンドル値「1」とをセキュア OS171へ出力する(ステップ S339)。
[0219] セキュア OS171は、アプリ復帰要求と処理結果とハンドル値「1」とを受け取り、受け 取ったアプリ復帰要求と処理結果とハンドル値「 1」とを共有メモリ 112へ書き込む (ス テツプ S341)。次に、切替処理 2を行う(ステップ S342)。
切替処理 2が終了すると (ステップ S342)、通常 OS151は、共有メモリ 112から、ァ プリ復帰要求と処理結果とハンドル値「1」とを読み出す (ステップ S344)。アプリ管理 表 166のハンドル値「1」を含むエントリ 167を基に音楽復号プログラム 176のコンテ キスト復帰させる (ステップ S346)。次に、読み出した処理結果を音楽復号プログラム 176へ出力する(ステップ S347)。
[0220] (4)割込発生時の処理 1
図 28に示すフローチャートを用いて、割込発生時の処理 1について説明する。これ は、図 21のステップ S239の詳細である。また、図 37のステップ S463— 478のシー ケンスに対応している。
通常入出力デバイス 132は、暗号ィ匕音楽データの読み出しが終了すると (ステップ
S462)、割り込みを発生させる (ステップ S463)。
[0221] 割込コントローラ 107は、割込の発生を検出し、通常 OS151へ割込発生通知を出 力する (ステップ S464)。通常 OS151は、割込発生通知を受け取り、割込テーブル を基に通常割込ハンドラ 161を起動する (ステップ S466)。次に、通常割込ハンドラ 1
61へ割込発生通知を出力する (ステップ S467)。
通常割込ハンドラ 161は、割込コントローラ 107を制御し、割込の要因を調査する( ステップ S468)。次に、割込を発生させている通常入出力デバイスと対応するデバイ ス ID— Aと割込通知とを通常 OS151へ出力する(ステップ S469)。
[0222] 通常 OS151は、通常割込ハンドラ 161から、割込通知とデバイス ID— Aとを受け取 る。受け取ったデバイス ID— Aと対応する通常入出力デバイスドライバ 157及び、通 常入出力デバイスドライバ 157と共に休眠処理を施した音楽復号デーモン 156とを 休眠解除し (ステップ S471、ステップ S472)、 CPU102を通常入出力デバイスドライ ノ 157へ割り当てる。
[0223] 通常入出力デバイスドライバ 157は、休眠を解除され、通常入出力デバイス 132へ 結果要求を出力し (ステップ S473)、通常入出力デバイス 132から、処理結果として 、共有メモリ 112上における暗号ィ匕音楽データの書込先アドレスを取得する (ステップ S474)。処理結果を取得すると、排他フラグを「0」に設定し (ステップ S476)、取得し た処理結果と、読出要求の出力元を示す識別情報として受け取ったノヽンドル値「1」 と、通常入出力デバイスドライバ 157自身を示すデバイス ID_Aとを通常 OS 151へ 出力し (ステップ S477)、通常 OS151は、ハンドル値「1」と対応する音楽復号デ一 モン 156へ、受け取った処理結果とハンドル値「1」とデバイス ID— Aとを出力する(ス テツプ S478)。 [0224] (5)割込発生時の処理 1 2
上記の割込発生時の処理 1は、通常 OS151又は通常 OS 151に管理される通常メ モリ 111上のプログラムの実行中に割込が発生した場合の動作を示して 、る。ここで は、図 29のフローチャートを用いて、セキュア OS171又はセキュア OS171によって 管理されて!、るプログラムの実行中に割込が発生した場合の動作にっ 、て説明する
[0225] 通常入出力デバイス 132は、暗号ィ匕音楽データの読み出しが終了すると (ステップ
S491)、割込を発生させる (ステップ S492)。
割込コントローラ 107は、割込を検出し、セキュア OS171へ割込発生通知を出力 する(ステップ S493)。
セキュア OS171は、割込コントローラ 107から割込発生通知を受け取る。割込発生 通知を受け取ると、セキュア割込ハンドラ 181を起動し (ステップ S494)、割込発生通 知を出力する(ステップ S496)。
[0226] セキュア割込ハンドラ 181は、割込発生通知を受け取り、 CPU102へ割込マスク処 理を行い (ステップ S497)、セキュア OS171へ割込発生通知を出力する (ステップ S
498)。
セキュア OS171は、セキュア割込ハンドラ 181から、割込発生通知を受け取り、受 け取った割込発生通知を共有メモリ 112へ書き込む (ステップ S499)。次に、セキュ ァ OS171と通常 OS151は、切替処理 2を行う(ステップ S501)。
[0227] 切替処理 2が終了すると (ステップ S501)、共有メモリ 112から割込発生通知を読 み出し、 CPUの割込マスクを解除する(ステップ S502)。
ここで、割込コントローラ 107は、クリアされていないので、割込発生通知を出力し続 けており、ステップ S502以降の処理は、図 28のステップ S464以降の処理と同様で ある。
[0228] (6)割込発生時の処理 2
以下に、図 30— 31のフローチャートを用いて、割込発生時の処理 2について説明 する。これは、図 23のステップ S287の詳細である。また、これは、図 38のステップ S5 12—図 39のステップ S541のシーケンスと対応している。 セキュア入出力デバイス 133は、コンテンツ鍵の読み出しが終了すると (ステップ S5
11)、割り込みを発生させる (ステップ S512)。
[0229] 割込コントローラ 107は、割込の発生を検出し、通常 OS151へ割込発生通知を出 力する(ステップ S 513)。
通常 OS151は、割込コントローラ 107から、割込発生通知を受け取り、通常割込ハ ンドラ 161を起動する (ステップ S514)。次に、通常割込ハンドラ 161へ割込発生通 知を出力する (ステップ S516)。
[0230] 通常割込ハンドラ 161は、割込発生通知を受け取り、割り込みを発生させている要 因を調査する (ステップ S517)。セキュア入出力デバイス 133が割り込みを発生させ ていることを検出し、セキュア入出力デバイス 133と対応するデバイス ID— Bと割込 通知とを、通常 OS151へ出力する(ステップ S518)。
通常 OS151は、通常割込ハンドラ 161から割込通知とデバイス ID— Bとを受け取 る。次に受け取ったデバイス ID— Bと対応するセキュア入出力エントリデバイスドライ ノ 158と、セキュア入出力エントリデバイスドライバ 158と共に休眠処理を施した音楽 復号デーモン 156の休眠を解除する(ステップ S519、ステップ S521)。セキュア入 出力エントリデバイスドライバ 158へ CPU102を割り当てる。
[0231] セキュア入出力エントリデバイスドライバ 158は、休眠を解除され、割込通知と、休 眠要求の出力元を示す識別情報として受け取ったハンドル値「1」と、セキュア入出力 エントリデバイスドライバ 158自身の有するデバイス ID_Bとを通常 OS 151へ出力す る(ステップ S523)。
通常 OS151は、受け取ったノヽンドル値「1」と対応する音楽復号デーモン 156へ、 受け取った割込通知とハンドル値「1」とデバイス ID— Bとを出力する(ステップ S524
) o
[0232] 音楽復号デーモン 156は、割込通知とハンドル値「1」とデバイス ID— Bとを受け取 る。受け取った割込通知とデバイス ID— Bと、音楽復号デーモン 156自身を示すノヽ ンドル値「1」とを通常 OS151へ出力する(ステップ S527)。
通常 OS 151は、音楽復号デーモン 156から割込通知とデバイス ID— Bとハンドル 値「1」とを受け取る。受け取った割込通知とデバイス ID— Bとハンドル値「1」とを、共 有メモリ 112へ書き込み (ステップ S529)、切替処理 1に移る(ステップ S531)。
[0233] 切替処理 1が終了すると、セキュア OS171は共有メモリ 112から、割込通知とデバ イス ID— Bとハンドル値「1」とを読み出し (ステップ S532)、読み出したデバイス ID— Bを基にセキュア入出力デバイスドライバ 178を起動する (ステップ S533)。次に、セ キュア入出力デバイスドライバ 178へ、読み出した割込通知とデバイス ID— Bとハン ドル値「1」とを出力する (ステップ S534)。
[0234] セキュア入出力デバイスドライバ 178は、割込通知とデバイス ID— Bとハンドル値「 1」とを受け取り、セキュア入出力デバイス 133へ処理結果を要求する(ステップ S536 ) oセキュア入出力デバイス 133から、処理結果として、セキュアメモリ 113上のコンテ ンッ鍵格納アドレスを受け取る(ステップ S537)。受け取った処理結果とハンドル値「 1」とデバイス ID— Bとを含む応答通知をセキュア OS171へ出力する(ステップ S539
) o
[0235] セキュア OS171は、受け取ったノヽンドル値「1」と対応する音楽復号プログラム 176 へ、受け取った処理結果とハンドル値「1」とデバイス ID— Bとを出力する(ステップ S5 41)。
ここまで、図 30— 31を用いた説明では、通常 OS151又は通常 OS151によって管 理される通常メモリ 111上のプログラムの実行中における、割込発生時の動作につ!ヽ て説明してきたが、セキュア OS 171及びセキュア OS 171によって管理されるプログ ラムの実行中における割込発生時の動作は、上述した割込発生時の処理 1 2とほ ぼ同様であり、図 26中の通常入出力デバイスを、セキュア入出力デバイスに変更す ればよい。ステップ S502以降の処理は、図 30のステップ S513へと続く。
[0236] (7)割込発生時の処理 3
以下に、図 32— 34のフローチャートを用いて、割込発生時の処理 3について説明 する。これは、図 27のステップ S337の詳細である。また、割込発生時の処理 3は、図 40のステップ S552—図 41のステップ S606のシーケンスと対応している。
暗号処理デバイス 117は、暗号ィ匕音楽データの復号が終了すると、割り込みを発 生させる(ステップ S 552)。
[0237] 割込コントローラ 107は、割込の発生を検出し、通常 OS151へ割込発生通知を出 力する(ステップ S 553)。
通常 OS151は、割込コントローラ 107から割込発生通知を受け取り、通常割込ハン ドラ 161を起動する (ステップ S556)。通常割込ハンドラ 161へ割込発生通知を出力 する(ステップ S 557)。
[0238] 通常割込ハンドラ 161は、割込発生通知を受け取ると、割り込みを発生させている 要因を調査する (ステップ S558)。暗号処理デバイス 117が割り込みを発生させてい ることを検出し、デバイス ID— Cと割込通知とを通常 OS151へ出力する (ステップ S5 61)。
通常 OS151は、通常割込ハンドラ 161から割込通知とデバイス ID— Cとを受け取 る。受け取ったデバイス ID— Cと対応する暗号エントリデバイスドライバ 159及び、暗 号エントリデバイスドライバ 159と共に休眠処理を施した音楽復号デーモン 156の休 眠を解除し (ステップ S562、ステップ S563)、暗号エントリデバイスドライバ 159へ C PU102を割り当てる。
[0239] 暗号エントリデバイスドライバ 159は、休眠を解除されると、割込通知とハンドル値「
1」と自身を示すデバイス ID_Cとを、通常 OS151へ出力する(ステップ S564)。 通常 OS151は、割込通知とハンドル値「1」とデバイス ID— Cとを受け取り、受け取 つたハンドル値「1」と対応する音楽復号デーモン 156へ、割込通知とハンドル値「1」 とデバイス ID_Cとを出力する (ステップ S567)。
[0240] 音楽復号デーモン 156は、通常 OS 151を介して暗号エントリデバイスドライバ 159 カゝらデバイス ID— Cと割込通知とを受け取る。次に、受け取った割込通知及びデバィ ス ID— Cと、音楽復号デーモン 156自身と対応するハンドル値「 1」とを通常 OS 151 へ出力する(ステップ S568)。
通常 OS 151は、音楽復号デーモン 156から割込通知とデバイス ID— Cとハンドル 値「1」とを受け取り、受け取った割込通知とデバイス ID— Cとハンドル値「1」とを共有 メモリ 112へ書き込む(ステップ S571)。
[0241] 次に、通常 OS151及びセキュア OS171は、切替処理 1を行う(ステップ S572)。
切替処理 1が終了すると、セキュア OS171は、共有メモリ 112から、割込通知とデ バイス ID Cとハンドル値「1」とを読み出す (ステップ S576)。読み出したデバイス ID — Cを基に、暗号デバイスドライバ 179を起動し、読み出した割込通知とデバイス ID _Cとハンドル値「1」とを出力する(ステップ S577)。
[0242] 暗号デバイスドライバ 179は、割込通知とデバイス ID— Cハンドル値「1」とを受け取 り、暗号処理デバイス 117へ処理結果を要求する (ステップ S578)。暗号処理デバィ ス 117から、処理結果として、ノ ッファ 123上における音楽データの書込先アドレスを 取得する(ステップ S579)。
暗号デバイスドライバ 179は、取得した処理結果と、受け取ったハンドル値「1」と、 暗号デバイスドライバ 179自身を示すデバイス ID— Cをセキュア OS171へ出力する (ステップ S582)。
[0243] セキュア OS171は、暗号デバイスドライバ 179から処理結果とハンドル値「1」とデ バイス ID— Cとを受け取り、受け取った処理結果とハンドル値「1」とデバイス ID—じと を共有メモリ 112へ書き込む(ステップ S583)。
次に、セキュア OS171及び通常 OS151は、切替処理 2を行う(ステップ S584)。
[0244] 切替処理 2が終了すると、通常 OS151は、共有メモリ 112からハンドル値「1」、処 理結果、デバイス ID— Cを読み出す (ステップ S586)。読み出したハンドル値「1」を 基に、音楽復号デーモン 156を起動し、音楽復号デーモン 156へ、読み出した処理 結果とハンドル値「1」とデバイス ID_Cとを出力する(ステップ S587)。
音楽復号デーモン 156は、通常 OS 151から処理結果とハンドル値「 1」とデバイス I D— Cとを受け取る。受け取った処理結果とデバイス ID— Cと音楽復号デーモン 156 自身を示すノヽンドル値「1」とを含むシステムコールを通常 OS151へ出力する (ステツ プ S588)。
[0245] 通常 OS151は、デバイス ID— Cと対応する暗号エントリデバイスドライバ 159へ、 受け取った処理結果とデバイス ID— Cとハンドル値「1」とを出力する(ステップ S589
) o
暗号エントリデバイスドライバ 159は、通常 OS151を介して、音楽復号デーモン 15 6から処理結果とデバイス ID— Cとハンドル値「1」とを受け取り、排他フラグを「0」に 変更する(ステップ S592)。次に、暗号エントリデバイスドライバ 159は、通常 OS151 への応答通知により(ステップ S596)、音楽復号デーモン 156へ、受け取った処理結 果とハンドル値「1」とデバイス ID— Cとを出力する(ステップ S597)。
[0246] 音楽復号デーモン 156は、セキュア OS171を介して音楽復号デーモン 156から処 理結果とハンドル値「1」とデバイス ID— Cとを受け取る。次に、受け取った処理結果 とハンドル値「1」とを通常 OS151へ出力する(ステップ S598)。
通常 OS 151は、音楽復号デーモン 156から処理結果とハンドル値「 1」とを受け取 り、受け取った処理結果とハンドル値「1」とを共有メモリ 112へ書き込む (ステップ S 6 01)。
[0247] 次に、通常 OS151とセキュア OS171は、切替処理 1を行う(ステップ S602)。
切替処理 1が終了すると、セキュア OS171は、共有メモリ 112からハンドル値「1」と 処置結果とを読み出す (ステップ S603)。セキュアアプリ管理表 186上の、ハンドル 値「1」を含むエントリ 187を基に、音楽復号プログラム 176のコンテキストを復帰し (ス テツプ S604)、読み出した処理結果を音楽復号プログラム 176へ出力する (ステップ S606)。
[0248] ここまで、図 32— 34を用いた説明では、通常 OS151又は通常 OS151によって管 理される通常メモリ 111上のプログラムの実行中における、割込発生時の動作につ!ヽ て説明してきたが、セキュア OS 171及びセキュア OS 171によって管理されるプログ ラムの実行中における割込発生時の動作は、上述した割込発生時の処理 1 2とほ ぼ同様であり、図 29中の通常入出力デバイスを、暗号処理デバイスに変更すればよ ステップ S502以降の処理は、図 32のステップ S553へと続く。
[0249] (7)音楽復号プログラムの削除
図 35に示すフローチャートを用いて、音楽復号プログラムの削除処理について説 明する。これは、図 15のステップ S109の詳細である。また、音楽復号プログラム削除 処理は、図 42のステップ S611— 618のシーケンスと対応する。
音楽復号プログラム 176は、セキュアアプリ削除命令とハンドル値「1」とを通常 OS1 51へ出力する(ステップ S611)。
[0250] 通常 OS151は、音楽復号プログラム 176から、ハンドル値「1」とセキュアアプリ削除 命令を受け取り、受け取ったノヽンドル値「1」とセキュアアプリ削除命令とを共有メモリ 1 12へ書き込む(ステップ S 612)。 次に、通常 OS151及びセキュア OS171は、切替処理 1を行う(ステップ S613)。
[0251] 切替処理 1が終了すると、セキュア OS171は、共有メモリ 112からセキュアアプリ削 除命令とハンドル値「1」とを読み出す (ステップ S614)。セキュアアプリ管理表 186上 のハンドル値「1」を含むエントリのセキュアアプリアドレスを基に音楽復号プログラム 1 76をセキュアメモリ 113上から削除し (ステップ S616)、ハンドル値「 1」を含むエントリ 187をセキュアアプリ管理表 186から削除する(ステップ S617)。
[0252] 次に、ハンドル値「1」と削除完了通知とを共有メモリ 112に書き込む (ステップ S61 8)。
次に、セキュア OS171と通常 OS151は切替処理 2を行う(ステップ S619)。
切替処理 2が終了すると、通常 OS151は、共有メモリ 112から削除処理完了通知と ハンドル値「1」とを読み出す (ステップ S621)。ハンドル値「1」とアプリ管理表 166と を基に音楽復号デーモン 156を、通常メモリ 111から削除する (ステップ S622)。次 に、音楽再生プログラム 153へ、削除完了通知を出力し (ステップ S623)、ハンドル 値「1」を含むエントリ 167をアプリ管理表 166から削除する(ステップ S624)。
[0253] 1. 3まとめ,効果
以上説明してきたように、本発明の携帯電話 100において、通常メモリ 111上に口 ードされて実行される音楽再生プログラム 153は、保護されるべき処理、具体的には 、暗号ィ匕音楽データの復号の処理を、セキュアメモリ 113上にロードされて実行され る音楽復号プログラム 176へ依頼する。
[0254] 音楽復号プログラム 176と、通常メモリ 111上の音楽復号デーモン 156とは対にな つて動作し、暗号ィ匕音楽データの復号に関する一連の処理のうち、保護されるべき 処理は、音楽復号プログラム 176が分担し、保護する必要のない処理は、音楽復号 デーモン 156が担う。
このように処理を分担することで、音楽復号プログラム 176自体のプログラムサイズ 力 、さくなり、音楽復号プログラム 176の保持するデータ、変数なども減少する。さら に、音楽復号プログラム 176からの依頼により、音楽復号デーモン 156が、通常メモリ 111上のライブラリに格納されている関数を使用する。このため、セキュアメモリ 113 上にライブラリを持つ必要がなくなる。 [0255] 従って、音楽復号プログラム 176及び音楽復号デーモン 156による一連の復号処 理において、確保すべきセキュアメモリ 113の容量を削減することになり、セキュアメ モリ 113を保護する保護機構の負荷を軽減することができる。
セキュア OS 171に管理される、保護されるべきデバイスである暗号処理デバイス 1 17の制御に関する処理について、保護する必要のない排他制御、休眠、割込の通 知につ ヽては、通常メモリ 111上にロードされて実行される暗号エントリデバイスドライ ノ 159が実行する。
[0256] この動作を、時間の経過に沿って、考察すると、通常 OS 151は、音楽復号デーモ ン 156からのシステムコールにより、暗号エントリデバイスドライバ 159を実行状態に 遷移させる。暗号エントリデバイスドライバ 159は、排他制御を行い、音楽復号デーモ ン 156を呼び出す。音楽復号デーモン 156は、通常 OS151及び、セキュア OS171 を介して、暗号デバイスドライバ 179を呼び出す。セキュア OS171は、暗号デバイス ドライバ 179を実行状態に遷移させる。暗号デバイスドライバ 179は、暗号処理デバ イス 117に復号処理を指示した後、休眠要求を出力する。暗号エントリデバイスドライ ノ 159は、セキュア OS171、通常 OS151及び音楽復号デーモン 156を介して、休 眠要求を受け取ると、通常 OS 151へ休眠処理を依頼し、通常 OS151は、暗号ェン トリデバイスドライバ 159を休眠状態に遷移させる。
[0257] 次に、暗号処理デバイス 117による処理が終了し、割込が発生し、通常 OS151は 、音楽復号デーモン 156の休眠を解除し、実行状態に遷移させる。暗号エントリデバ イスドライバ 159は、割込通知を出力し、音楽復号デーモン 156は、通常 OS151及 びセキュア OS171を介して割込通知を、暗号デバイスドライバ 179へ出力する。通 常 OS151は、暗号デバイスドライバ 179に CPU102を割り当て、実行状態にする。
[0258] このように、暗号デバイスドライバ 179と暗号エントリデバイスドライバ 159は、対応し て状態遷移する。従って、通常 OS151は、暗号エントリデバイスドライバ 159を介し て、セキュア OS 171によって管理されて 、る暗号処理デバイス 117の使用状態を管 理することが可能になった。
セキュア OS171により管理されるデバイスであるセキュア入出力デバイス 133につ いても、同様に、セキュア入出力エントリデバイスドライバ 158を制御することにより、 通常 OS151は、セキュア入出力デバイス 133の動作を監視し、制御することが可能 になった。
[0259] 1. 4 携帯電話 100のその他の動作
携帯電話 100の初期動作及び仮想メモリ空間の構築について以下に説明する。
(1)ブートプログラム
図 43は、通常メモリ 111に記憶されているデータの一例を示している。これは、携 帯電話 100の起動直後の通常メモリ 111内の様子を示して 、る。
[0260] 通常 OS 151、ライブラリ 152、通常入出力デバイスドライバ 157、セキュア入出力ェ ントリデバイスドライバ 158、暗号エントリデバイスドライバ 159、通常切替デバイスドラ ィバ 160、通常割込ハンドラ 161は、既に説明したとおりである。
ブートプログラム 162は、通常メモリ 111を構成する ROMに予め記憶されておりブ ートプログラム 162は、具体的には図示されていないが、携帯電話 100に、含まれる 起動部により読み出され実行されるプログラムである。
[0261] 起動部は、携帯電話 100に電源が投入された直後に通常メモリ 111からブートプロ グラム 162を読み出し、読み出したブートプログラム 162に従って動作する。以下、ブ ートプログラム 162に従う起動部の動作によって、ブートプログラムについて説明する 先ず、ブートプログラム 162は、 CPU102のレジスタ、 MMU103をクリアし、切替 制御部 106へ初期化要求を出力する。切替制御部 106から、セキュアメモリ 113上の プログラムの初期化が終了したことを通知する初期化終了通知を受け取り、次に、通 常 OS151、通常切替デバイスドライバ 160などを、通常メモリ 111上にロードし、初期 化する。
[0262] (2)携帯電話 100の初期動作
携帯電話 100は、起動時に切替制御部 106及びブートプログラムによって、初期化 される。携帯電話 100の起動時の動作について、図 44に示すフローチャートを用い て説明する。
携帯電話 100の電源が ONの状態になり、電力供給が開始されると (ステップ S651 )、起動部は、ブートプログラム 162を起動する(ステップ S652)。ブートプログラム 16 2は、先ず、 CPU102及び MMU103のレジスタをクリアすることで初期化する(ステ ップ S653)。次に、切替制御部 106へ、初期化要求を出力する (ステップ S654)。
[0263] 切替制御部 106は、初期化要求を受け取り、二次記憶部 104から暗号化セキュア OSを読み出す (ステップ S656)。読み出した暗号ィ匕セキュア OSを復号してセキュア OSを生成する (ステップ S657)。次に、メモリ保護部 114により、バス 130とセキュア メモリ 113とを接続する(ステップ S658)。生成したセキュア OSをセキュアメモリ 113 上に書き込み、初期化する (ステップ S659)。続いて、セキュア切替デバイスドライバ を、二次記憶部 104から読み出し、セキュアメモリ 113上にロードする (ステップ S661
) o
[0264] 次に、メモリ保護部 114により、セキュアメモリ 113とバス 130とを切断し (ステップ S6 62)、初期化終了通知をブートプログラム 162へ出力する(ステップ S663)。
ブートプログラム 162は、切替制御部 106から、初期化終了通知を受け取り、次に、 通常 OS151、通常切替デバイスドライバ 160などのプログラムを通常メモリ上にロー ドし、初期化する(ステップ S664)。
[0265] なお、上記の説明では、暗号ィ匕セキュア OS、セキュア切替デバイスドライバは、二 次記憶部 104上に記憶されて ヽるとして説明した力 外部の記録メディアなどに記憶 されているとしてもよい。
(3)通常 OS151及びセキュア OS171による初期化動作
通常入出力デバイスドライバ 157、セキュア入出力エントリデバイスドライバ 158、暗 号エントリデバイスドライバ 159は、通常 OS151の管理下で、通常メモリ 111上に常 駐するプログラムである。
[0266] また、セキュア入出力デバイスドライバ 178及び暗号デバイスドライバ 179は、セキ ユア OS 171の管理下でセキュアメモリ 113上に常駐するプログラムである。
ブートプログラム 162は、通常 OS151及び通常切替デバイスドライバ 160などを通 常メモリ 111上にロードし、初期化し終えると、通常 OS151を起動する。
通常 OS151は、起動すると、先ず、通常メモリ 111上にロードされているプログラム をサーチし、通常入出力デバイスドライバ 157、セキュア入出力エントリデバイスドライ ノ 158、暗号エントリデバイスドライバ 159がロードされているか否かを判断し、ロード されていなければ、二次記憶部 104から読み出し、ロードする。
[0267] 通常 OS 151が、セキュア入出力エントリデバイスドライバ 158及び暗号エントリデバ イスドライバ 159をロードする際に、セキュア OS171によって、セキュア入出力デバイ スドライバ 178及び暗号デバイスドライバ 179もセキュアメモリ 113上にロードされる。 通常 OS151及びセキュア OS171による、この動作は、既に説明した音楽復号プロ グラムの登録処理と類似しているので、ここでは、簡単に説明する。なお、二次記憶 部 104は、各デバイスドライバ及び、エントリデバイスドライバを暗号ィ匕して生成された 暗号ィ匕エントリデバイスドライバを、予め記憶しているものとする。
[0268] セキュア入出力エントリデバイスドライバが、ロードされて 、な 、と判断すると、通常 OS151は、二次記憶部 104から、セキュア入出力エントリデバイスドライバを読み出 し、通常メモリ 111に書き込む。書き込み先のアドレスとセキュア入出力エントリデバイ スドライバ 158とを対応付けて記憶する。次に、共有メモリ 112にデバイスドライバの口 ードを指示するデバドラ登録要求とセキュア入出力デバイスドライバを示すデバイス I D— Bとを書き込む。次に、通常切替デバイスドライバ 160へ切替指示を出力する。
[0269] 切替処理が終了し、セキュア OS171は、 CPU102に復帰する。共有メモリ 112から 、デバドラ登録要求とデバイス ID— Bとを読み出す。デバイス ID— Bと対応する暗号 化セキュア入出力エントリデバイスドライバを読み出し、喑復号プログラム 174によつ て、読み出した暗号ィ匕エントリデバイスドライバを復号して、セキュア入出力エントリデ バイスドライバを生成し、セキュアメモリ 113に書き込む。書き込み先のアドレスとデバ イス ID_Bとを対応付けて記憶する。
[0270] 次に、共有メモリ 112に、デバドラ登録完了通知を書き込み、セキュア切替デバイス ドライバ 180へ切替指示を出力する。
切替処理が終了し、 CPU102に復帰すると、通常 OS151は、共有メモリ 112から、 デバドラ登録完了通知を読み出す。
続いて、暗号エントリデバイスドライバついても、同様にして、ロードする。
[0271] (4) MMU制御プログラム 184による仮想記憶空間
セキュア OS171は、これまで言及していないが、図 45に示すように MMU制御プロ グラム 184を含んでいる。 MMU制御プログラム 184は、 MMU103により実行される プログラムであり、セキュアメモリ 113、共有メモリ 112及び二次記憶部 104の物理ァ ドレスと論理アドレスとを変換することにより、仮想記憶空間を構築する。
[0272] 図 46は、 MMU制御プログラム 184により、実現される仮想記憶空間の一例を示し ている。図 45に示すように、セキュアメモリ 113上には、音楽復号プログラム 176と通 信鍵生成プログラム 185とがロードされていると想定する。音楽復号プログラム 176及 び通信鍵生成プログラム 185は、セキュアアプリケーションである。
音楽復号プログラム 176及び通信鍵生成プログラム 185は、それぞれ、仮想空間 2 01、仮想空間 204にロードされている。それぞれのプログラムには、個別に、通常共 有空間 202及び通常共有空間 206が割り当てられている。通常共有空間 202及び 通常共有空間 206は、それぞれのプログラムが、通常メモリ 111上のプログラムと共 有する仮想空間である。
[0273] 音楽復号プログラム 176は、仮想空間 204及び通常共有空間 206へアクセスする ことはできない。また、通信鍵生成プログラム 185は、仮想空間 201及び通常共有空 間 202へアクセスすることはできない。
セキュア共有空間 207は、音楽復号プログラム 176及び通信鍵生成プログラム 185 の!、ずれ力 もアクセス可能であるが、通常 OS 151の管理下で動作するプログラム 力 はアクセスできな 、仮想空間である。
[0274] セキュア OS171は、仮想空間 208にロードされている。セキュア OS171は、仮想 空間 201及び 204へアクセス可能であるが、音楽復号プログラム 176及び通信鍵生 成プログラム 185から仮想空間 208へアクセスすることはできない。
このようにして、 MMU制御プログラム 184は、それぞれのアプリケーションごとに、 個別の仮想空間を割り当て、お互いにアクセスできな 、ように制御する。
[0275] なお、 MMU制御プログラム 184は、上述した仮想記憶空間を、セキュアメモリ 113 、共有メモリ 112及び二次記憶部 104上に実現する。 MMU制御プログラム 184は、 暗号処理プログラムを含んでおり、セキュアメモリ 113上に記憶されて 、るデータを二 次記憶部 104上にページアウトする際には、データを暗号ィ匕し、二次記憶部 104か ら、セキュアメモリ 113上へ、ページインする際には、復号するとしてもよい。
[0276] また、音楽復号プログラム 176及び通信鍵生成プログラム 185は、それぞれの通常 共有空間に互 、にアクセスできるとしてもよ 、。
1. 5実施の形態 1の変形例
(1) 実施の形態 1において、音楽復号プログラム 176と音楽復号デーモン 156と が対になって動作することにより、暗号化音楽データの復号処理を達成するとして説 明してきたが、図 47に示すような構成であつても良い。
[0277] この構成では、通常メモリ 111上には、音楽再生プログラム 153に代わって音楽再 生プログラム 153bがロードされている。音楽再生プログラム 153bは、外部処理マネ ージャ 156bを含んで構成され、外部処理マネージャ 156bは、上述の音楽復号デ一 モン 156と同様に、暗号化音楽データの復号処理のうち、保護される必要のない処 理を分担する。また、音楽復号プログラム 176と通常 OS151との間の各種の情報及 びコマンドの入出力を行う。
[0278] この構成の場合、アプリ管理表 166の各エントリは、ハンドル値とアプリコンテキスト アドレスとから構成される。通常 OS151は、受け取り先を示す識別情報としてハンド ル値「1」を含むコマンドを受け取ると、アプリ管理表 166を基に、音楽再生プログラム 153のコンテキストを復帰させ、外部処理マネージャのスレットに CPU102を割り当て る。
[0279] このような構成によると、音楽再生プログラム 153が外部処理マネージャ 156bを含 んでいるため、音楽復号プログラムの登録処理の際に、音楽復号デーモン 156を、 通常メモリ上にロードする必要がなぐ実施の形態 1において説明した登録処理を短 縮することができる。
(2) なお、本実施の形態において、セキュア入出力エントリデバイスドライバ 158と セキュア入出力デバイスドライバ 178とを同一の識別情報デバイス ID— Bによって識 別しているが、異なる識別情報にによって識別するとしても良い。暗号エントリデバイ スドライバ 159と暗号デバイスドライバ 179につ!/、ても同様である。
[0280] 具体的には、通常 OS151及びセキュア OS171は、制御データとして、それぞれの 記憶領域に、図 48に示すセキュアデバイスドライバ管理表 231を有する。
図 48に示すセキュアデバイスドライバ管理表 231は、 2つのセキュアデバイスドライ バ管理情報 232、 234を含む。各セキュアデバイスドライバ管理情報は、エントリデバ イスドライバ識別子とセキュアデバイスドライバ識別子とから構成される。セキュアデバ イスドライバ識別子は、セキュア OS 171に管理されるデバイスを制御するデバイスド ライバを示す識別情報であり、エントリデバイスドライバ識別子は、前記デバイスドライ ノ と対になって動作する通常メモリ 111上のプログラムを示す識別情報である。具体 的には、セキュアデバイスドライバ管理情報 232は、セキュア入出力エントリデバイス ドライバ 158を識別する情報であるデバイス ID_Bと、セキュア入出力エントリデバイ スドライバ 158と対になって動作するセキュア入出力デバイスドライバ 178を識別する 情報である「100」から構成される。セキュアデバイスドライバ管理情報 234は、暗号 エントリデバイスドライバ 159を示す識別情報デバイスあるデバイス ID— Cと、暗号ェ ントリデバイスドライバ 159と対になって動作する暗号デバイスドライバ 179を示す識 別情報「101」とを含む。
[0281] セキュアデバイスドライバ管理表 231は、通常 OS151及びセキュア OS171の起動 時に生成されるものであり、通常 OS151は、通常メモリ 111上にセキュア入出力ェン トリデバイスドライバをロードすると、セキュア入出力エントリデバイスドライバを示す識 別情報であるデバイス ID— Bを共有メモリ 112に書き込み、切替処理に移る。
[0282] 切替処理が終了すると、セキュア OS171は、共有メモリ 112からデバイス ID— Bを 読み出し、次に、二次記憶部 104から暗号ィ匕セキュアデバイスドライバを読み出し、 復号して、セキュアメモリ 113上にロードする。ここで、ロードしたセキュア入出力デバ イスドライバを示す識別情報「100」と受け取ったデバイス ID— Bとを含むセキュアデ バイスドライバ管理情報 232を生成し、セキュアメモリ 113上に書き込む。次に、識別 情報「100」を共有メモリ 112に書き込み、切り替え処理に移る。
[0283] 切り替え処理が終了すると、通常 OS151は、共有メモリ 112から識別情報「100」を 読み出し、読み出した識別情報「100」と、セキュア入出力エントリデバイスドライバ 15 8を示すデバイス ID— Bとからなるセキュアデバイスドライバ管理情報を生成し、通常 メモリ 111上に書き込む。
セキュアデバイスドライバ情報 234についても同様である。
[0284] 通常 OS151、上記のようにして生成した、セキュアデバイスドライバ管理表 231を 用いて、セキュア入出力エントリデバイスドライバ 158及び暗号エントリデバイスドライ ノ 159を管理する。また、セキュア OS171は、セキュアデバイスドライバ管理表 231 を用いて、セキュア入出力デバイスドライバ 178及び暗号デバイスドライバ 179を管 理する。
[0285] (3) 上記の実施の形態において、セキュア OS171は、デバッグ無効化プログラム を含んでいるが、セキュア切替デバイスドライバ 180が、この機能を備えているとして ちょい。
この構成では、セキュア切替デバイスドライバ 180は、切替制御部 106から呼び出 される度に、先ず、デバッガ IF101を無効化し、次に、セキュア OS171のコンテキスト を復帰させる。
[0286] また、セキュア OS171から切替指示を受け取ると、セキュア OS171のコンテキスト を保存した後、デバッガ IF101を有効にし、切替制御部 106へ切替指示を出力する このようにして、セキュア OS171が CPU102に復帰する前に、デバッガ IF101を無 効化することで、セキュア OS 171の動作を、外部のデバッグ装置に検出、操作される ことを、より確実に防ぐことができる。
[0287] また、セキュアメモリ 113上のプログラムに代わって、切替制御部 106が、デバッガ I
F101を無効化、有効化するとしても良い。
(4)上記の実施の形態 1では、通常入出力デバイスドライバ 157及び暗号エントリ デバイスドライバ 159は、排他フラグを用いて排他制御を行っており、排他フラグが「
1」であれば、エラー通知を出力するとしている。しかし、各ドライバが動作している間 に受け取った処理の依頼をストックしておくとしても良い。
[0288] この場合、通常入出力デバイスドライバ 157及び暗号エントリデバイスドライバ 159 は、受け取った処理の依頼を記憶する QUEUEを備えており、処理の要求を受け取 ると、排他フラグを確認する代わりに、受け取った処理依頼を QUEUEに格納する。 通常入出力デバイスドライバ 157は、通常入出力デバイス 132が処理を終え、処理 結果を取得する。次に、 QUEUE力 次の処理依頼を読み出し、通常入出力デバイ ス 132へ出力する。
[0289] 暗号エントリデバイスドライバ 159は、処理結果を受け取り、受け取った処理結果を 出力すると、 QUEUEから次の処理依頼を読み出す。読み出した処理依頼を、暗号 デバイスドライバ 179へ、出力する。
また、 QUEUEに代わって、暗号エントリデバイスドライバ 159専用のバッファ領域 を備え、バッファ領域に受け取った処理依頼と、受け取った処理依頼の優先度とを対 応付けて書き込むとしてもよ 、。
[0290] この場合、暗号処理デバイス 117による処理が終了し、処理結果を受け取ると、暗 号デバイスドライバ 179は、優先度の高い処理依頼を読み出し、暗号処理デバイス 1 17へ出力する。
(5)上記の実施の形態では、セキュア切替デバイスドライバ 180力 セキュア OS17 1のコンテキストの保存及び復帰を行っている力 S、これを通常切替デバイスドライバ: L
60が行っても良い。
[0291] この場合、セキュア OS171から通常 OS151への切替処理 2の際に、セキュア OS1 71は、切替制御部 106へ切替指示を出力する。切替制御部 106は、メモリ保護部 1 14に切断指示を出力し、セキュアメモリ 113とバス 130とを切断する。次に、通常切 替デバイスドライバ 160を呼び出す。通常切替デバイスドライバ 160は、 CPU102の レジスタ、 MMU103の内容などを含むセキュア OS171のコンテキストを通常メモリ 1 11上に保存し、 CPU102及び MMU103をクリアし、通常 OS151のコンテキストを 復帰させる。
[0292] 通常 OS151からセキュア OS171への切替処理 1の際には、通常 OS151から切替 指示を受けると、通常切替デバイスドライバ 160は、通常 OS151のコンテキストを保 存し、 CPU102及び MMU103をクリアする。次に、セキュア OS171のコンテキスト を復帰させ、切替制御部 106へ切替指示を出力する。
このようにして、セキュア OS 171のコンテキストの保存と復帰を通常メモリ 111上の 通常切替デバイスドライバ 160が行うことにより、セキュアメモリ 113上にセキュア切替 デバイスドライバ 180が不要になる。従って、セキュアメモリ 113の容量を削減するこ とがでさる。
[0293] (6)上記の実施の形態及び変形例では、携帯電話 100は、 MMU103により仮想 記憶空間を形成している。しかし、仮想記憶空間を使用しない構成であっても良い。 この場合、各メモリに記憶されているデータ及びプログラムは物理アドレスによって管 理されている。
従って、このような構成の場合、コンテキストの保存及び復帰に係る MMUの内容 の保存を行う必要がなくなる。
[0294] また、この場合、セキュア OS 171のコンテキストを保存しない構成であってもよい。
セキュア切替デバイスドライバ 180は、切替制御部 106から呼び出されると、セキュア OS171の先頭アドレスを CPU102に復帰させ、セキュア OS171を最初から起動す る。
(7)また、上記の実施の形態 1において、携帯電話 100は、通常メモリ 111上に口 ードされる通常 OS 151とセキュアメモリ 113上にロードされて実行されるセキュア OS 171とを備えて!/、る 1S 通常 OS 151を備えて 、な 、構成であっても良!、。
[0295] 携帯電話 100の初期動作において説明したように、電源投入後に、先ず、ブートプ ログラム 162が起動する。ブートプログラム 162は、 CPU102及び MMU103を初期 化した後、切替制御部 106へ、初期化要求を出力し、切替制御部 106が、セキュア OS 171及びセキュア切替デバイスドライバ 180をセキュアメモリ 113上にロードする。
[0296] セキュア OS171力 セキュアメモリ 113及び通常メモリ 111上に、各種のプログラム をロードする。
通常メモリ 111上の各プログラムは、システムコールを含む全てのコマンドを、通常 OS151に代わって、通常切替デバイスドライバ 160へ出力する。
通常切替デバイスドライバ 160は、通常メモリ 111上のプログラムから、コマンドを受 け取ると、受け取ったコマンドを、所定の記憶領域に書き込み、切替処理を行う。セキ ユア OS171は、 CPU102に復帰すると、所定の記憶領域から、コマンドを読み出す
[0297] このようにして、セキュア OS171力 通常メモリ 111及びセキュアメモリ 113上の各 プログラムを制御する。
また、逆に、セキュア OS171を備えていない構成であっても良い。この場合、セキュ ァ切替デバイスドライバ 180又は切替制御部 106がデバッガ無効化プログラムを備え ている。 [0298] セキュアメモリ 113上の各プログラムは、システムコールを含む全てのコマンドをセ キュア切替デバイスドライバ 180へ出力する。セキュア切替デバイスドライバ 180は、 共有メモリ 112上のコマンド領域に受け取ったコマンドを書き込み、切替制御部 106 へ切替指示を出力する。
通常 OS151は、 CPU102に復帰すると、共有メモリ 112のコマンド領域から、セキ ユアメモリ 113上のプログラムから出力されたコマンドを読み出す。
[0299] このようにして、通常 OS 151力 通常メモリ 111及びセキュアメモリ 113上の各プロ グラムを制御するとしてもよ 、。
(8)上記の実施の形態及び変形例において、切替制御部 106及びメモリ保護部 1 14は、セキュアメモリ 113とバス 130とを切断することで、セキュアメモリ 113上のプロ グラム及びデータを外部のアクセス力も保護して 、る。
[0300] これに代わって、メモリ保護部 114力 セキュアメモリ 113内のデータを暗号化及び 復号することによって、保護しても良い。切替制御部 106は、メモリ保護部 114へ、接 続指示又は切断指示に代わって、暗号化又は復号を指示する。
メモリ保護部 114は、切替制御部 106の指示によって、セキュアメモリ 113内のデー タを暗号ィ匕又は復号する。
[0301] また、セキュアメモリ 113内のデータを全てではなぐ必要に応じて、音楽再生プロ グラム 153のコード部分のみ、データ部分のみ又はスタック部分のみを暗号ィ匕すると しても良い。セキュア OS171、暗号デバイスドライバ 179、セキュア入出力デバイスド ライバ 178などについても同様である。
(9)上記の実施の形態及び変形例では、通常 OS151が、アプリ管理表 166を管理 し、アプリ管理表 166を用いて、該当するアプリケーション及びセキュアアプリケーショ ンと対応するプログラム(例えば音楽復号デーモン 156)を呼び出している。しかし、 音楽再生プログラム 153と同様にセキュアアプリケーションに処理を依頼するアプリケ ーシヨンが多数存在する場合、通常 OS151とは別に、アプリ管理表 166の管理と、 プログラムの呼び出しを行うプログラムを備える構成であっても良 、。このプログラム をデーモン制御プログラムと呼ぶ。
[0302] この場合、通常切替デバイスドライバ 160は、切替制御部 106から呼び出されると、 通常 OS151に代わって、デーモン制御プログラムを起動する。デーモン制御プログ ラムは、共有メモリ 112から、コマンドを読み出し、読み出したコマンドに含まれる識別 情報によって、該当するプログラムを呼び出す。
また、各アプリケーション及び、音楽復号デーモン 156を初めとするプログラムは、 通常 OS151に代わって、セキュア処理要求をデーモン制御プログラムに出力する。
[0303] デーモン制御プログラムは、受け取ったセキュア処理要求を共有メモリ 112に書き 込み、通常切替デバイスドライバ 160へ、切替指示を出力する。
(10)ここまで、本発明のひとつの実施の形態として携帯電話 100について説明し てきたが、同様の機能を有する情報処理装置、例えばパーソナルコンピュータなどで あってもよい。
[0304] この場合、通常メモリ 111及びセキュアメモリ 113は、 RAM及びハードディスクを含 んで構成される。上記の説明では、セキュア OS171及び音楽復号プログラム 176は 暗号化されて、二次記憶部 104に記憶されている力 予め、セキュアメモリ 113上の ハードディスク部分に記憶されて 、るとしてもよ!/、。
2. 実施の形態 2
本発明の実施の形態 2について、以下に説明する。
[0305] 図 49は、本発明の実施の形態 2の携帯電話 400の使用例を示している。携帯電話
400は、基地局 15、携帯電話網 10、インターネット 20を介して、無効化リスト発行装 置 250と接続されている。
無効化リスト発行装置 250は、無効化されたプログラムに係る情報を管理しており、 これらのプログラムを示す無効化リストを生成し、インターネット 20を介して、生成した 無効化リストを携帯電話 400へ送信する。
[0306] 携帯電話 400は、無効化リスト発行装置 250から無効化リストを受信し、受信した無 効化リストを基に、自身の記憶して 、るプログラムが無効である力否かを判断する。
2. 1 無効化リスト発行装置 250
無効化リスト発行装置 250は、図 50に示すように、通信部 251、署名生成部 252、 鍵記憶部 253、ハッシュ生成部 254、制御部 257、情報記憶部 260、入力部 262及 び表示部 263から構成される。 [0307] 無効化リスト発行装置 250は、具体的には、マイクロプロセッサ、 RAM, ROMを含 んで構成されるコンピュータシステムである。 RAM, ROMにはコンピュータプログラ ムが記憶されており、前記マイクロプロセッサが前記コンピュータプログラムに従って 動作することにより、無効化リスト発行装置 250は、その機能を達成する。
(1)情報記憶部 260
情報記憶部 260は、図 50に示すように、 OS無効化リスト 266及びアプリ無効化リス ト 276を記憶している。
[0308] OS無効ィ匕リスト 266は、発行者 ID267、リスト ID268及び無効ィ匕 ID269、 270、 27 1 · · ·から構成される。
発行者 ID267は、 OS無効化リストの発行者を示しており、一例として、無効化リスト 発行装置 250の装置 ID、無効化リスト発行装置 250の管理者の識別情報などである
[0309] リスト ID268は、 OS無効化リスト 266の新旧を示す情報であり、ここでは、 OS無効 ィ匕リスト 266の作成曰「20041015」を、リスト ID268としている。
無効化 ID269、 270、 271 · · ·は、無効化されたオペレーティングシステムの識別 情報である。
アプリ無効ィ匕ジス卜 276は、発行者 ID277、ジス卜 ID278、無効ィ匕 ID279、 280、 28 1 · · 'から構成される。発行者 ID277は、アプリ無効化リストの発行者を示す情報であ り、一例として、無効化リスト発行装置 250の装置 ID、無効化リスト発行装置 250の管 理者の識別情報などである。
[0310] リスト ID278は、アプリ無効化リスト 276の新旧を示す情報である。ここでは、アプリ 無効ィ匕リスト 276の作成曰「20041009」をリスト ID278として!/ヽる。
無効化 ID279、 280、 281 · · ·は、無効化されたアプリケーションの識別情報である
[0311] (2)通信部 251
通信部 251は、インターネット 20と接続されており、制御部 257とインターネット 20 に接続されている外部機器との間で、情報の送受信を行う。ここで、外部機器とは携 帯電話 400である。 (3)ハッシュ生成部 254
ノ、ッシュ生成部 254は、制御部 257から、 OS無効化リスト 266とハッシュ生成指示 とを受け取る。また、アプリ無効化リスト 276とハッシュ生成指示とを受け取る。
[0312] ハッシュ生成指示を受け取ると、受け取った OS無効化リスト 266又はアプリ無効化 リスト 276をノヽッシュ関数に代入し 160バイトの OSダイジェストデータ又はアプリダイ ジェストデータを生成する。ここで、ノ、ッシュ関数には、一例として SHA— 1を用いる。 ノ、ッシュ関数 SHA— 1については、公知の技術であるので説明を省略する。また、他 のハッシュ関数を用いても良!、。
[0313] 生成した、 OSダイジェストデータ又はアプリダイジェストデータを制御部 257へ出力 する。
(4)鍵記憶部 253及び署名生成部 252
鍵記憶部 253は、無効化リスト発行装置 250に固有の発行装置秘密鍵と、前記発 行装置秘密鍵と対応する発行装置公開鍵とを記憶している。
[0314] 署名生成部 252は、制御部 257から、 OSダイジェストデータ又はアプリダイジェスト データを受け取り、署名生成を指示される。
OSダイジェストデータを受け取り、署名生成を指示されると、鍵記憶部 253から、発 行装置秘密鍵を読み出し、読み出した発行装置秘密鍵を用いて、受け取った OSダ イジェストデータに署名生成アルゴリズム Sを施して、署名データを生成し、生成した 署名データを、制御部 257へ出力する。署名生成アルゴリズム Sは、一例として、楕 円 DSA署名、 RSA (RivestShamirAdleman)署名などを用いる。
[0315] アプリダイジェストデータを受け取り、署名生成を指示された場合についても同様に して署名データを生成し、制御部 257へ出力する。
(5)制御部 257
制御部 257は、通信部 251及びインターネット 20を介して携帯電話 400から、最新 の OS無効化リスト及びアプリ無効化リストの送信を要求するリスト要求を受信する。
[0316] リスト要求を受信すると、情報記憶部 260から OS無効化リスト 266を読み出し、読 み出した OS無効化リスト 266をハッシュ生成部 254へ出力し、ノ、ッシュ生成指示を出 力する。次に、ノ、ッシュ生成部 254から、 OSダイジェストデータを受け取る。受け取つ た OSダイジェストデータを署名生成部 252へ出力し署名生成を指示する。次に、署 名生成部 252から署名データを受け取る。受け取った署名データを、 OS無効化リス ト 266に付加して、署名付 OS無効化リストを生成する。
[0317] アプリ無効化リスト 276についても同様にして、ノ、ッシュ生成部 254及び署名生成 部 252へ指示して署名データを生成する。生成した署名データをアプリ無効化リスト
276に付加して、署名付アプリ無効化リストを生成する。
次に、通信部 251及びインターネット 20を介して携帯電話 400へ、生成した署名付
OS無効化リストと署名付アプリ無効化リストとを送信する。
[0318] また、制御部 257は、入力部 262を介して、操作者による各種の指示及びデータを 受け取り、受け取った指示に従って動作する。
(6)入力部 262及び表示部 263
入力部 262は、無効化リスト発行装置 250の操作者による指示及びデータの入力 を受け付け、受け付けた指示及びデータを制御部 257へ出力する。
[0319] 表示部 263は、制御部 257の指示により各種の画面を表示する。
2. 2 携帯電話 400
携帯電話 400のハード構成は、図 2に示す携帯電話 100の構成とほぼ同様であり、 デバッガ IF、 CPU, MMU、二次記憶部、切替制御部 106、割込コントローラ、入力 部、表示部、通常メモリ、共有メモリ、セキュアメモリ 413、メモリ保護部 414、入出力 部、暗号処理デバイス、無線通信制御部、マイク、スピーカ、通信部、バッファ、符号 処理部、 DZA変換部カゝら構成される。
[0320] セキュアメモリ 413、メモリ保護部 414以外の各部については、携帯電話 100と同様 であるので、詳細な説明を省略し、ここでは、携帯電話 100と異なる部分についての み説明する。
(1)セキュアメモリ 413
セキュアメモリ 413は、図 51に示すように、音楽復号プログラム 446、セキュア OS4 41などの各種のプログラムを記憶している。
[0321] 音楽復号プログラム 446は、実施の形態 1の音楽復号プログラム 176と同様に、暗 号化音楽データの復号の手順を含んでおり、この手順については、説明を省略する 音楽復号プログラム 446は、ヘッダ部分にアプリ ID447及び無効フラグ 448を含ん でいる。アプリ ID447は、音楽復号プログラム 446に固有の識別情報である。無効フ ラグ 448は、音楽復号プログラム 446が、無効化されている力否かを示すフラグであり 、無効フラグ「1」は、音楽復号プログラム 446が無効化されていることを示しており、 無効フラグ「0」は、無効化されていないことを示す。
[0322] セキュア OS441は、実施の形態 1のセキュア OS 171と同様の処理を実行する本ソ フトウェアであるので、セキュア OS441の動作については説明を省略する。ただし、 セキュア OS441は、セキュアメモリ 413上の各アプリケーションを起動又は CPUに復 帰させる際に、各アプリケーションのヘッダ部分の無効フラグを読み出し、無効フラグ 力 S「l」である場合、そのアプリケーションの起動又は復帰を中止する。
[0323] セキュア OS441は、ヘッダ部分にセキュア OSID442及び無効フラグ 443を含んで いる。
セキュア OSID442は、セキュア OS171をと対応する識別情報である。無効フラグ 443は、セキュア OS441が無効化されているか否かを示すフラグであり、無効フラグ 「1」は、音楽復号プログラム 446が無効化されていることを示しており、無効フラグ「0 」は、無効化されていないことを示す。
[0324] また、本実施の形態において、セキュアメモリ 413上にロードされ切替処理を行うセ キュア切替デバイスドライバは、セキュア OS441のコンテキストを CPUに復帰させる 前に、セキュア OS441の無効フラグ 443を読み出し、無効フラグ力 「l」であった場合 には、セキュア OS441の復帰を中止する。
(2)メモリ保護部 414
メモリ保護部 414は、図 51に示すように、無効化リスト記憶部 421、無効化リスト更 新部 424、アプリ検証部 428、アプリ無効化部 429、 OS検証部 431及び OS無効化 部 432から構成される。
[0325] <無効化リスト記憶部 421 >
無効化リスト記憶部 421は、アプリ無効化リスト 422及び OS無効化リスト 423を記憶 している。 アプリ無効化リスト 422及び OS無効化リスト 423は、それぞれ、無効化リスト発行装 置 250の情報記憶部 260に記憶されているアプリ無効化リスト 276及び OS無効化リ スト 266と同様の構成である。
[0326] <無効化リスト更新部 424 >
無効化リスト更新部 424は、予め、署名検証鍵 426を記憶している。署名検証鍵 42 6は、無効化リスト発行装置 250の鍵記憶部 253に記憶されている発行装置公開鍵 と同一の鍵である。
無効化リスト更新部 424は、切替制御部 106から、セキュアメモリ 413とバス 130と の接続を指示する接続指示を受け取る。接続指示を受け取ると、無線通信制御部、 通信部を介して、最新のアプリ無効化リスト及び OS無効化リストの送信を要求するリ スト要求を、無効化リスト発行装置 250へ送信する。
[0327] 次に、無線通信制御部、通信部を介して、無効化リスト発行装置 250から、署名付 OS無効化リストと署名付アプリ無効化リストとを受信する。
受信した署名付 OS無効化リストの署名データに、署名検証鍵を用いて、署名検証 を行う。具体的には、署名データに、署名検証鍵を用いて、署名検証アルゴリズム V を施してチェックデータを生成する。署名検証アルゴリズム Vは、署名生成アルゴリズ ム Sによって生成された署名データを検証するアルゴリズムである。
[0328] 次に、受信した OS無効化リストをハッシュ関数に代入し、 OSダイジェストデータを 生成する。生成したチェックデータとダイジェストデータとを比較し、両者が一致する 場合、署名検証が成功であると判断し、一致しない場合、失敗であると判断する。署 名検証に失敗した場合には、以下に説明する、リスト IDの比較及び OS無効化リスト の更新を中止する。
[0329] 受信した署名付アプリ無効化リストについても、同様にして署名検証を行う。署名検 証が失敗であった場合には、以下に説明するアプリ IDの比較及びアプリ無効化リスト の更新を中止する。
次に、受信した OS無効化リストと、無効化リスト記憶部 421の記憶している OS無効 ィ匕リスト 423とに含まれるリスト IDを比較する。両者が同一であれば、受信した OS無 効化リストを破棄する。受信した OS無効化リストのリスト IDが、無効化リスト記憶部 42 1の記憶している OS無効化リスト 423のリスト IDよりも新しい日付を示していれば、無 効化リスト記憶部 421の記憶している OS無効化リスト 423を、受信した OS無効化リス トにより更新する。
[0330] アプリ無効化リストについても、同様にして、受信したアプリ無効化リストと、無効化リ スト記憶部 421の記憶しているアプリ無効化リスト 422の新旧を比較し、アプリ無効化 リスト 422の方が古い場合は、受信したアプリ無効化リストにより、無効化リスト記憶部 421内のアプリ無効化リスト 422を更新する。
く OS検証部 431及び OS無効化部 432 >
OS検証部 431は、セキュア OS441のヘッダ部分からセキュア OSID442を読み出 す。次に、無効化リスト記憶部 421から OS無効化リスト 423を読み出し、読み出した セキュア OSID442が、 OS無効化リスト 423の無効 IDに含まれて!/、るか否かを判断 する。セキュア OSID442が、 OS無効化リスト 423に含まれている場合には、セキュ ァ OS441が無効であると判断し、 OS無効化部 432へ無効化を指示する。
[0331] セキュア OSID442が、 OS無効化リスト 423に含まれていなければ、有効であると 判断する。
OS無効化部 432は、 OS検証部 431から無効化を指示され、セキュア OS441のへ ッダ部分の無効フラグを「1」に書き換える。
<アプリ検証部 428及びアプリ無効化部 429 >
アプリ検証部 428は、セキュアメモリ 413上の音楽復号プログラム 446のヘッダ部分 力もアプリ ID447を読み出す。次に、無効化リスト記憶部 421からアプリ無効化リスト 422を読み出し、アプリ ID447がアプリ無効化リスト 422に含まれて 、る力否かを判 断する。アプリ ID447がアプリ無効化リスト 422に含まれている場合、音楽復号プログ ラム 446が無効なプログラムであると判断し、アプリ無効化部 429へ無効化を指示す る。
[0332] アプリ ID447がアプリ無効化リストに含まれていなければ、音楽復号プログラム 446 が有効なプログラムであると判断する。
アプリ無効化部 429は、アプリ検証部 428から、無効化の指示を受け、音楽復号プ ログラム 446の無効フラグを「1」に設定する。 セキュアメモリ 413上に、複数のアプリケーションが存在する場合、全てのアプリケ ーシヨンについて、アプリ検証部 428及びアプリ無効化部 429は、同様にして、アプリ ケーシヨンが無効である力否かの判断、無効であった場合の無効フラグの設定を繰り 返す。
[0333] (3)メモリ保護部の検証動作
図 52— 53に示すフローチャートを用いて、メモリ保護部 414によるプログラムの検 証動作について、説明する。
切替制御部 106から、接続指示を受ける (ステップ S671)。接続指示を受け取ると 、無効化リスト更新部 424は、無線通信制御部 118及び通信部 121を介して無効化 リスト発行装置 250へ、リスト要求を送信する (ステップ S672)。次に、通信部及び無 線通信制御部を介して、署名付 OS無効化リストと署名付アプリ無効化リストとを取得 する(ステップ S673)。
[0334] 無効化リスト更新部 424は、署名検証鍵 426を読み出し、読み出した署名検証鍵を 用いて、取得した署名付 OS無効化リスト及び署名付アプリ無効化リストの署名検証 を行う(ステップ S674)。署名検証が失敗であれば (ステップ S676の NO)、 OS検証 部によるステップ S681へ処理を移す。
署名検証が成功であれば (ステップ S676の YES)、無効化リスト記憶部に記憶され て 、る OS無効化リスト 423及びアプリ無効化リスト 422のリスト IDを読み出す (ステツ プ S677)。読み出した OS無効化リスト 423リスト IDと、受信した OS無効化リストのリス ト IDと比較し、アプリ無効化リスト 422のリスト IDと受信したアプリ無効化リストのリスト I Dを比較することで、 OS無効化リスト 423及びアプリ無効化リスト 422が最新版である か否かを判断する (ステップ S678)。最新版でな!、と判断すると (ステップ S678の N 0)、受信した OS無効化リスト及び受信したアプリ無効化リストにより、無効化リスト記 憶部 421に記憶されている OS無効化リスト 423及びアプリ無効化リスト 422を更新す る(ステップ S679)。
[0335] 最新版であると判断すると (ステップ S678の YES)、ステップ S679の処理を省略 する。
ステップ S672— 679の無効化リスト更新部 424による処理が終了すると、 OS検証 部 431は、セキュアメモリ 413から、セキュア OSID442を読み出し (ステップ S681)、 読み出したセキュア OSID442が、 OS無効化リスト 423に登録されている力否かによ つて、セキュア OS441が無効であるか有効であるかを判定する(ステップ S682)。
[0336] 有効であると判定すると (ステップ S683の YES)、アプリ検証部 428によるステップ S686の処理に移る。
無効であると判断されると (ステップ S683の NO)、 OS無効化部 432は、セキュア O S441の無効フラグ 443を「1」に設定する(ステップ S684)。
OS検証部 431及び OS無効化部 432によるステップ S684までの処理が終了する と、アプリ検証部 428は、セキュアメモリ 413上の音楽復号プログラム 446のアプリ ID 447を読み出し (ステップ S686)、読み出したアプリ IDがアプリ無効化リスト 422に登 録されて!/、る力否かによって、音楽復号プログラム 446が有効であるか無効であるか を判定する (ステップ S687)。
[0337] 有効であると判定されると (ステップ S688の YES)、検証処理を終了する。無効で あると判定されると (ステップ S688の NO)、アプリ無効化部 429は、音楽復号プログ ラム 446の無効フラグを「1」に設定する(ステップ S689)。
2. 3 まとめ,効果
以上、説明してきたように、本実施の形態の携帯電話 400は、無効化リスト発行装 置 250から、随時最新の OS無効化リスト及びアプリ無効化リストを取得する。取得し た OS無効化リスト及びアプリ無効化リストを基に、自身の記憶して 、るセキュア OS4 41、音楽復号プログラム 446を初めとするセキュアメモリ 413上にロードされているァ プリケーシヨンが有効である力否かを判断し、無効化されて!/、るプログラムの実行を 中止する。
[0338] このような構成にすることで、携帯電話 400が発売された後、後発的に無効化すべ きであることが判明したプログラムについても、その実行を中断することが可能となり、 不正なプログラムの実行による、データの不正使用を防止することができる。
2. 4 実施の形態 2の変形例 1
本発明の実施の形態 2について、以下のような構成であっても良い。
(1)無効化リスト発行装置 250 無効化リスト発行装置 250は、 OS無効化リスト及びアプリ無効化リストを記憶して ヽ る力 OS無効化リストは、無効化 ID269、 270、 271 · · ·に代わって、無効化された オペレーティングシステムのセキュア OS証明書 (後述する)の証明書 IDを含んで構 成される。
[0339] アプリ無効化リストについても、無効化 ID279、 280、 281 · · ·に代わって、無効化 されたアプリケーションのアプリ証明書 (後述する)の証明書 IDを含んで構成される。 (2)携帯電話 400
携帯電話 400は、メモリ保護部 414に代わってメモリ保護部 454を備え、セキュアメ モリ 413に代わってセキュアメモリ 453を備えている。メモリ保護部 414が、セキュアメ モリ 413上の各プログラムに固有の IDによって、各プログラムが有効であるか無効で あるかを判定する代わりに、メモリ保護部 454は、セキュアメモリ 453上の各プロダラ ムに固有の証明書を用いて判定する。
[0340] 以下に、この機能を実現する構成について説明する。
(2— 1)セキュアメモリ 453
セキュアメモリ 453は、一例として、図 54に示すように、音楽復号プログラム 476、セ キュア OS481を含んでいる。
セキュア OS481は、ヘッダ部分に、セキュア OS証明書 482及び無効フラグ 483を 含んでいる。
[0341] セキュア OS証明書 482は、 X. 509に従った公開鍵証明書であり、図 55に示すよう に、発行者 ID484、証明書 ID487、セキュア OS公開鍵 488、署名アルゴリズム 489 及び C A署名 491を含んで構成される。
発行者 ID484は、セキュア OS証明書 482の発行元である認証局(以下、 CA: Certificate Authorityと呼ぶ)の識別子である。セキュア OS公開鍵 488は、セキュア O S証明書 482によって正当性を証明されるセキュア OS481に固有の公開鍵である。 署名アルゴリズム 489は、 CA署名 491の生成に使用されたアルゴリズムを示す識別 情報である。 CA署名 491は、セキュア OS証明書 482の発行元である CAの秘密鍵 を用いて、上記の発行者 ID484、証明書 ID487' · ·に、署名アルゴリズム 489の示 すアルゴリズム S1を施して生成された署名データである。 [0342] 無効フラグ 483は、セキュア OS481が有効であるか無効であるかを示している。 音楽復号プログラム 476は、そのヘッダ部分にアプリ証明書 477と無効フラグ 478と を含んでいる。
アプリ証明書 477は、図 55のセキュア OS公開鍵 488を、アプリ公開鍵に置き換え た構成である。
[0343] 無効フラグ 478は、音楽復号プログラム 476が無効であるか有効であるかを示して いる。
(2— 2)メモリ保護部 454
メモリ保護部 454は、図 54に示すように、無効化リスト記憶部 461、無効化リスト更 新部 424、鍵格納部 464、アプリ検証部 468、アプリ無効化部 429、 OS検証部 471 及び OS無効化部 432から構成される。
[0344] 無効化リスト更新部 424、 OS無効化部 432及びアプリ無効化部 429の動作は、上 記の実施の形態 2の無効化リスト更新部 424、 OS無効化部 432及びアプリ無効化部 429と同様であるので、ここでは説明を省略する。
<無効化リスト記憶部 461 >
無効化リスト記憶部 461は、図 54に示すように OS無効化リスト 463及びアプリ無効 ィ匕リスト 462を含んでいる。
[0345] OS無効化リスト 463は、無効化リスト発行装置 250の記憶している OS無効化リスト と同様の構成であり、無効化されたオペレーティングシステムの証明書 IDを含んで ヽ る。
アプリ無効化リスト 462は、無効化リスト発行装置 250の記憶して 、るアプリ無効化リ ストと同様の構成であり、無効化されたアプリケーションの証明書 IDを含んでいる。
[0346] <鍵格納部 464 >
鍵格納部 464は、 CA公開鍵 466を記憶している。 CA公開鍵 466は、セキュア OS 証明書 482及びアプリ証明書 477の発行元である CAの公開鍵であり、セキュア OS 証明書 482及びアプリ証明書 477に含まれる CA署名の生成に用いられた CAの秘 密鍵と対になる鍵である。
[0347] < OS検証部 471 > OS検証部 471は、無効化リスト更新部 424による OS無効化リスト及びアプリ無効 ィ匕リストの更新の処理が終了すると、セキュアメモリ 453から、セキュア OS481に含ま れるセキュア OS証明書 482を読み出す。鍵格納部 464から CA公開鍵 466を読み 出し、読み出した CA公開鍵 466を用いて、セキュア OS証明書 482に含まれる CA署 名 491に署名検証アルゴリズム VIを施して署名検証を行う。署名検証アルゴリズム V 1は、署名生成アルゴリズム S1により生成された署名データを検証するアルゴリズム である。
[0348] 署名検証の結果が失敗であれば、以降の処理を中止し、 OS無効化部 432へ、セ キュア OS481の無効化を指示する。
署名検証の結果が成功であれば、次に、セキュア OS証明書 482に含まれる証明 書 ID487力 OS無効化リスト 463に登録されているか否かによって、セキュア OS48 1が無効である力否かを判定する。登録されていれば、セキュア OS481が無効なプ ログラムであると判定し、 OS無効化部 432へ、セキュア OS481の無効化を指示する
[0349] 登録されていなければ、 OS検証部 471は、セキュア OS481が、有効なプログラム であると判定する。
なお、本実施の形態において、セキュア OS証明書 482の署名検証を行い、署名検 証が成功の場合に、証明書 ID487力 OS無効化リスト 463に登録されているか否か を判定している力 証明書 ID487力 OS無効化リスト 463に登録されている力否か を判定し、登録されていない場合に、署名検証を行うとしてもよい。
[0350] <アプリ検証部 468 >
アプリ検証部 468は、 OS検証部 471によるセキュア OS481の検証が終了すると、 セキュアメモリ 453から、音楽復号プログラム 476に含まれるアプリ証明書 477を読み 出す。鍵格納部 464から CA公開鍵 466を読み出し、読み出した CA公開鍵 466を用 いて、アプリ証明書 477に含まれる CA署名に署名検証アルゴリズム VIを施して署名 検証を行う。
[0351] 署名検証の結果が失敗であれば、以降の処理を中止し、アプリ無効化部 429へ、 音楽復号プログラム 476の無効化を指示する。 署名検証の結果が成功であれば、次に、アプリ証明書 477に含まれる証明書 IDが 、アプリ無効化リスト 462に登録されている力否かによって、音楽復号プログラム 476 が無効である力否かを判定する。登録されていれば、音楽復号プログラム 476が無 効なプログラムであると判定し、アプリ無効化部 429へ、音楽復号プログラム 476の無 効化を指示する。
[0352] 登録されていなければ、音楽復号プログラム 476は、有効なプログラムであると判定 する。
なお、上記の署名検証と証明書 ID力 アプリ無効化リスト 462に登録されているか 否かの判定の順序は逆でもよ!/、。
2. 5 実施の形態 2の変形例 2
上記の変形例 1において、音楽復号プログラム 476は、階層構造を構成する複数 の証明書を含んで 、るとしても良 、。
[0353] 図 56は、音楽復号プログラム 476の有する複数の証明書の構成及び、これらの証 明書の階層構造を表している。
音楽復号プログラム 476は、図 56に示すように、アプリ証明書 501、メーカー証明 書 511及び C A証明書 521を含んでいる。
アプリ証明書 501は、発行元 502、証明書 ID503、アプリ公開鍵 504、署名アルゴ リズム 506及びメーカー署名 508を含んで構成される。
[0354] 発行元 502は、アプリ証明書 501の発行元であるアプリメーカーを示す識別情報で ある。図 56には説明の便宜上「アプリメーカー」と記載している。証明書 ID503は、ァ プリ証明書 501に固有の識別情報である。アプリ公開鍵 504は、音楽復号プログラム 476に固有の公開鍵であり、アプリ証明書 501によって、その正当性を証明される。 署名アルゴリズム 506は、メーカー署名 508の生成に使用された署名生成アルゴリズ ムを示す識別情報である。メーカー署名 508は、音楽復号プログラム 476の製造メー カーに固有のアプリメーカー秘密鍵 519を用いて、発行元 502、証明書 ID503、ァ プリ公開鍵 504、署名アルゴリズム 506などのアプリ証明書 501に含まれる情報に、 署名生成アルゴリズム S2を施して生成された署名データである。
[0355] メーカー証明書 511は、発行元 512、証明書 ID513、メーカー公開鍵 514、署名ァ ルゴリズム 516及び CA署名 518を含んで構成される。
発行元 512は、メーカー証明書 511の発行元である CAを示す識別情報である。図 56には説明の便宜上「CA」と記載している。証明書 ID513は、メーカー証明書 511 に固有の識別情報である。メーカー公開鍵 514は、音楽復号プログラム 476の製造メ 一力一の公開鍵であり、メーカー証明書 511によって、その正当性を証明される。メ 一力一公開鍵 514は、アプリメーカー秘密鍵 519と対応する鍵である。署名アルゴリ ズム 516は、 CA署名 518の生成に使用された署名生成アルゴリズムを示す識別情 報である。 CA署名 518は、 CA秘密鍵 529を用いて、発行元 512、証明書 ID513、 メーカー公開鍵 514、署名アルゴリズム 516などのメーカー証明書 511に含まれる情 報に、署名生成アルゴリズム S3を施して生成された署名データである。
[0356] CA証明書 521は、発行元 522、証明書 ID523、 CA公開鍵 524、署名アルゴリズ ム 526及びルート CA署名 528を含んで構成される。
発行元 522は、 CA証明書 521の発行元であるルート CAを示す識別情報である。 図 56には説明の便宜上「ルート CA」と記載している。証明書 ID523は、 CA証明書 5 21に固有の識別情報である。 CA公開鍵 524は、 CAの公開鍵であり、 CA証明書 52 1によって、その正当性を証明される。 CA公開鍵 524は、 CA秘密鍵 529と対応する 鍵である。署名アルゴリズム 526は、ルート CA署名 528の生成に使用された署名生 成アルゴリズムを示す識別情報である。ルート CA署名 528は、ルート CA秘密鍵 531 を用いて、発行元 522、証明書 ID523、 CA公開鍵 524、署名アルゴリズム 526など の CA証明書 521に含まれる情報に、ルート CA秘密鍵 531を用いて、署名生成アル ゴリズム S4を施して生成された署名データである。ルート CA秘密鍵 531は、ルート C Aに固有の秘密鍵である。
[0357] ここで、一例として、 CAには携帯電話 400の販売メーカー、ルート CAには、公的な 証明書発行機関が該当する。また、メーカー証明書 511に代わって、音楽復号プロ グラム 476を制御するセキュア OS481の OS証明書 482、携帯電話 400に割り当て られる証明書、セキュア OS481の製造メーカーの証明書を用いるとしても良い。 この変形例において、鍵格納部 464は、 CA公開鍵 466に代わって、ルート CA公 開鍵を記憶している。ルート CA公開鍵は、ルート CA秘密鍵 531と対応する鍵である 。また、無効化リスト記憶部 461は、アプリ無効化リスト 462にカ卩えて、メーカー無効化 リスト及び、 CA無効化リストを記憶している。メーカー無効化リストは、無効化されたメ 一力一証明書の証明書 IDを含むリストであり、 CA無効化リストは、無効化された CA 証明書の証明書 IDを含むリストである。
[0358] アプリ検証部 468は、先ず、 CA証明書 521とルート CA公開鍵を読み出し、読み出 したルート CA公開鍵を用いて CA証明書 521に含まれるルート CA署名 528に署名 検証アルゴリズム V4を施して署名検証を行う。署名検証アルゴリズム V4は、署名生 成アルゴリズム S4により生成された署名データを検証するアルゴリズムである。
署名検証が失敗であれば、アプリ検証部 468は、以下の処理を中止して、アプリ無 効化部 429へ、音楽復号プログラム 476の無効化を指示する。
[0359] 署名検証が成功であれば、次に、 CA証明書 521に含まれる証明書 ID523が CA 無効化リストに登録されている力否かを判断し、登録されていれば、アプリ検証部 46 8は、以下の処理を中止して、アプリ無効化部 429へ、音楽復号プログラム 476の無 効化を指示する。
登録されていなければ、次に、メーカー証明書 511を読み出し、 CA証明書 521に 含まれる CA公開鍵 524を用いて、読み出したメーカー証明書 511に含まれる CA署 名 518に署名検証アルゴリズム V3を施して署名検証を行う。署名検証アルゴリズム V 3は、署名生成アルゴリズム S 3により生成された署名データを検証するアルゴリズム である。
[0360] 署名検証が失敗であれば、アプリ検証部 468は、以下の処理を中止して、アプリ無 効化部 429へ、音楽復号プログラム 476の無効化を指示する。
署名検証が成功であれば、次に、メーカー証明書 511に含まれる証明書 ID513が メーカー無効化リストに登録されている力否かを判断し、登録されていれば、アプリ検 証部 468は、以下の処理を中止して、アプリ無効化部 429へ、音楽復号プログラム 4 76の無効化を指示する。
[0361] 登録されていなければ、次に、アプリ証明書 501を読み出す。メーカー証明書 511 に含まれるメーカー公開鍵 514を用いて、読み出したアプリ証明書 501に含まれるメ 一力一署名 508に署名検証アルゴリズム V2を施して署名検証を行う。署名検証アル ゴリズム V2は、署名生成アルゴリズム S2により生成された署名データを検証するァ ノレゴリズムである。
[0362] 署名検証が失敗であれば、アプリ検証部 468は、以下の処理を中止して、アプリ無 効化部 429へ、音楽復号プログラム 476の無効化を指示する。
署名検証が成功であれば、次に、アプリ証明書 501に含まれる証明書 ID503がァ プリ無効化リストに 462に登録されている力否かを判断し、登録されていれば、アプリ 検証部 468は、アプリ無効化部 429へ、音楽復号プログラム 476の無効化を指示す る。
[0363] 登録されていなければ、音楽復号プログラム 476が有効なプログラムであると判定 する。
このように、 2重、 3重の検証をすることで、より高いセキュリティを確保することができ る。また、メーカー証明書を導入したことにより、同一のメーカーにより開発されたプロ グラム全てを無効化することができる。
[0364] セキュア OS481についても、同様に複数の証明書による検証を行っても良い。
2. 6その他の変形例
(1)上記の実施の形態 2において、 OS無効化リストは、リスト IDとして、 OS無効化リ ストの生成された日付を含んでいるが、図 57に示す OS無効化リスト 541のようにバ 一ジョン番号をリスト ID543として含んでいても良い。バージョン情報とは、 OS無効化 リストの世代を示す番号であり、値が大き 、ほど新 、ことを示す。
[0365] また、 OS無効ィ匕リスト 551に示すように、無効ィ匕 IDの総数をリスト ID553として含ん でいるとしても良い。無効化されるプログラムの総数は、減少することはありえないた め、無効ィ匕 IDの総数をリスト IDとすることで、リスト IDの値の大きいものほど新しい OS 無効化リストであると、判断することができる。
(2)上記の説明において、無効化リスト発行装置 250は、 OS無効化リスト及びアブ リ無効化リストを生成して 、るが、アプリ無効化リストと OS無効化リストの発行元は別 々でも良い。
[0366] 例えば、 OS無効化リストは、オペレーティングシステム開発メーカーの管理する無 効化リスト発行装置により、生成され発行される。アプリ無効化リストは、アプリケーショ ンの開発メーカーの管理する無効化リスト発行装置により生成され発行される。
(3)上記の実施の形態及び変形例において、 OS検証がセキュアアプリケーション を検証し、アプリ検証部がセキュア OSを検証するとしてもよ 、。
[0367] セキュアアプリケーションとセキュア OSの開発メーカーは異なる場合、このように相 互に検証しあうことで、より安全性を高めることができる。
(4)また、無効化リスト発行装置 250が送信するアプリ無効化リスト及び OS無効化リ ストは、必ず最新のものであり、無効化リスト記憶部 421が記憶しているアプリ無効化 リスト 422及び OS無効化リスト 423がこれらよりも新しいことはありえない。従って、無 効化リスト更新部 424は、アプリ無効化リスト及び OS無効化リストの更新を行う際に、 上述したようなリスト IDの比較を省略し、署名検証に成功すれば、無条件に、無効化 リスト発行装置 250から受信したアプリ無効化リスト及び OS無効化リストにより、アプリ 無効化リスト 422及び OS無効化リスト 423を更新するとしてもよい。
[0368] (5)上記の実施の形態において、切替制御部 106から接続指示が出力されると、 セキュアメモリ 413に記憶されている各プログラムの検証を行っている力 検証のタイ ミングは、これに限るものではなぐ携帯電話 400の電源投入時、各プログラムの起動 時などでもよい。
3.実施の形態 3
以下に、本発明に係る実施の形態 3につ 、て説明する。
[0369] 本実施の形態の携帯電話は、実施の形態 2と同様に、携帯電話網及びインターネ ットを介して、無効化リスト発行装置と接続されている。
3. 1無効化リスト発行装置
本実施の形態の無効化リスト発行装置は、実施の形態 2における無効化リスト発行 装置 250と同様に、通信部、署名生成部、鍵記憶部、ハッシュ生成部、制御部、情報 記憶部 610、入力部及び表示部から構成される。
[0370] 通信部、署名生成部、鍵記憶部、ハッシュ生成部、入力部及び表示部の構成及び 動作は、無効化リスト発行装置 250に含まれる通信部 251、署名生成部 252、鍵記 憶部 253、ノ、ッシュ生成部 254、入力部 262及び表示部 263とほぼ同様であり、ハツ シュ生成部は、 OS無効化リスト及びアプリ無効化リストに代わって、 OSマトリクス無効 ィ匕リスト (後述する)力 OSダイジェストデータを生成し、アプリマトリクス無効化リスト( 後述する)力もアプリダイジェストデータを生成する。これらの各部については、説明 を省略し、本実施の形態の特徴である。情報記憶部 610及び制御部についてのみ 説明する。
[0371] (1)情報記憶部 610
情報記憶部 610は、図 58に示すように、アプリ発行鍵マトリクス 601、 OS発行鍵マ トリタス 602、 プリ無効ィ匕†青報 604、 606 · · · , プリマトリクス無効ィ匕リスト 611及び OSマトリクス無効化リスト 621を記憶して 、る。
くアプリ発行鍵マトリクス 601及び OS発行鍵マトリクス 602 >
アプリ発行鍵マトリクス 601は、図 58に示すように 4行 X 4列の行列の各行列要素と して、 16個の発行鍵 Key— 11、 Key— 12、 Key— 13 · · ·を配置したものである。各 発行鍵は、一例として擬似乱数を用いて生成される、 64ビット長の鍵データである。
[0372] アプリ発行鍵マトリクス 601は、縦方向に上から順に行番号「1」、 「2」、 「3」、 「4」を 配置し、横方向に左から順に、列番号「1」、 「2」、 「3」、 「4」を配置している。
行番号「1」、列番号「1」と対応する行列要素 661は、発行鍵 Key— 11であり、行番 号「1」、列番号「2」と対応する行列要素 662は、発行鍵 Key— 12である。行番号「1」 、列番号「3」と対応する行列要素 663は、発行鍵 Key— 13であり、行番号「1」、列番 号「4」と対応する行列要素 664は、発行鍵 Key_14である。
[0373] 同様に、行番号「2」、列番号「1」一「4」の行列要素 665— 668は、それぞれ、発行 鍵 Key— 21、 Key— 22、 Key— 23、 Key— 24である。行番号「3」、列番号「1」一「4 」の行列要素 669— 672は、発行鍵 Key— 31、 Key— 32、 Key— 33、 Key— 34で ある。行番号「4」、列番号「1」一「4」の行列要素 673— 676は、 Key— 41、 Key— 4 2、 Key— 43、 Key— 44である。
[0374] 本実施の形態において、各セキュアアプリケーションには、アプリ発行鍵マトリクス 6 01の各列から 1個ずつ、計 4個の発行鍵が割り当てられている。 4個の発行鍵の組み 合わせは、セキュアアプリケーションごとに異なる。
一例として、携帯電話において実行される音楽復号プログラム (後述する)には、ァ プリ発行鍵マトリクス 601【こお!ヽて、実線円 677、 678、 679、 680で囲まれて!/ヽる、 発行鍵 Key_l l、 Key_32、 Key_23、 Key_14が割り当てられている。また、音 楽復号プログラムとは別のセキュアアプリケーション (アプリ Bと呼ぶ)には、点線円 68 1、 682、 683、 684で囲まれている、発行鍵 Key— 21、 Key— 32、 Key— 33、 Key —44が割り当てられて ヽる。
[0375] OS発行鍵マトリクス 602は、アプリ発行鍵マトリクス 601と同様の構成であり、 16個 の発行鍵を 4行 X 4列の行列の、行列要素として格納したものである。
<アプリ無効化情報 604、 606 · · · >
アプリ無効化情報 604、 606 · · ·についての説明を容易にするために、アプリ固有 鍵マトリクス及び OS固有鍵マトリクスについて先ず説明する。
[0376] 図 59は、本実施の形態の携帯電話に記憶されている暗号化音楽復号プログラム 5 91 (後述する)に含まれるアプリ固有鍵マトリクス 592及び暗号ィ匕セキュア OS596 ( 後述する)に含まれる OS固有鍵マトリクス 597である。
アプリ固有鍵マトリクス 592は、暗号ィ匕音楽復号プログラム 591を復号して生成され る音楽復号プログラムと 1対 1に対応しており、音楽復号プログラムに割り当てられた 4 個の発行鍵を含んでいる。アプリ固有鍵マトリクス 592は、 4つの鍵情報 901、 902、 903、 904から構成される。各鍵情報は、列番号と行番号と発行鍵を含んでおり、鍵 情報 901は、アプリ発行鍵マトリクス 601の 1列目の行列要素から音楽復号プロダラ ムに割り当てられた発行鍵 Key— 11と、アプリ発行鍵マトリクス 601上で Key— 11と 対応する行番号「1」と列番号「1」とを含んでいる。鍵情報 902は、アプリ発行鍵マトリ タス 601の 2列目の行列要素力も音楽復号プログラムに割り当てられた発行鍵 Key— 32と、アプリ発行鍵マトリクス 601上で Key— 32と対応する行番号「3」と列番号「2」と を含んでいる。鍵情報 903は、アプリ発行鍵マトリクス 601の 3列目の行列要素力も音 楽復号プログラムに割り当てられた発行鍵 Key— 23と、アプリ発行鍵マトリクス 601上 で Key— 23と対応する行番号「2」と列番号「3」とを含んでいる。鍵情報 904は、アブ リ発行鍵マトリクス 601の 4列目の行列要素力も音楽復号プログラムに割り当てられた 発行鍵 Key— 14と、アプリ発行鍵マトリクス 601上で Key— 14と対応する行番号「1」 と列番号「4」とを含んで 、る。
[0377] OS固有鍵マトリクス 597は、アプリ固有鍵マトリクスと同様の構成であり、鍵情報 90 6、 907、 908、 909から構成され、各鍵情報は、列番号、行番号発行鍵を含む。 本実施の形態に記憶されている暗号ィ匕セキュア OS596を復号して生成されるセキ ユア OSには、 OS発行鍵マトリクス 602の各列から 1個ずつ、計 4個の発行鍵が割り当 てられている。この 4個の発行鍵の組み合わせは、オペレーティングシステムごとに異 なる。
[0378] 鍵情報 906— 909は、それぞれ、 OS固有鍵マトリクス 602の各列から、セキュア OS に割り当てられた固有鍵と固有鍵に対応する OS固有鍵マトリクス 602上の列番号と 行番号とを含んでいる。
アプリ無効化情報 604、 606 · · ·は、無効化されたアプリケーションのアプリ固有鍵 マトリクスの各鍵情報力 列番号及び行番号を抽出したものである。
[0379] 一例として、アプリ無効化情報 604は、上述のアプリ Bと対応する。アプリ無効化情 報 604ίま、図 58【こ示すよう【こ、 4偶の歹 U番号「1」一 931、「2」一 932、「3」一 933、「4 」—934と、それぞれの列番号と対応する行番号 935— 938から構成される。列番号 「1」— 931と行番号「2」— 935は、アプリ発行鍵マトリクス 601の 1列目力ら、アプリ Β に割り当てられた発行鍵 Key— 21と対応している。列番号「2」— 932と行番号「3」— 936、プリ発行鍵マトリクス 601の 2列目から、アプリ Bに割り当てられた発行鍵 Key— 32と対応している。同様に、列番号「3」— 933と行番号「3」— 937は、発行鍵 Key— 33と対応しており、列番号「4」と行番号「4」は、発行鍵 Key— 44と対応している。
[0380] また、具体的には図示していないが、情報記憶部 610は、無効化されたオペレーテ イングシステムの OS固有鍵マトリクスの各鍵情報力ゝら列番号及び行番号を抽出した OS無効化情報を記憶して 、る。
<アプリマトリクス無効化リスト 611及び OSマトリクス無効化リスト 621 >
アプリマトリクス無効ィ匕リス卜 611は、図 60に示すように、 16偶の行歹 IJ要素 911一 92 6を、 4行 X 4列の行列状に配置して構成される。説明の便宜上、 i行 j列目の行列要 素に格納される行列要素を変数 Mijを用いて表現する。
[0381] 変数 Mijは、アプリ発行鍵マトリクス 601上の i行 j列目の発行鍵を用いて、暗号化音 楽復号プログラム 591を初めとする暗号ィ匕アプリケーションを復号するための復号鍵 に暗号化アルゴリズム E2を施して生成されたものである。図中の Enc (Key— ij,復 号鍵)は、復号鍵を、発行鍵 Key— ijを用いて暗号ィ匕して生成されたものであることを 示している。例えば、行番号「1」、列番号「1」の行列要素 911である変数 Mi lは、ァ プリ発行鍵マトリクス 601上の、行番号「1」、列番号「1」の行列要素 661の発行鍵 Ke y_l lを用いて、復号鍵を暗号ィ匕したものである。
[0382] ここで、アプリマトリクス無効化リスト 611は、情報記憶部 610に記憶されているアブ リ無効化情報が、アプリ無効化情報 604のみである場合に生成されたものである。こ のとき、アプリ無効化情報 604に含まれる行番号及び列番号と対応する行列要素 M 21、 M32、 M33及び M44は、復号鍵に変わってダミーデータ「0000」を、発行鍵を 用いて暗号化したものである。
[0383] OSマトリクス無効化リスト 621は、アプリマトリクス無効化リスト 611と同様の構成であ り、 16個の行列要素を 4行 X 4列の行列状に配置したものである。 i行 j列目の行列要 素は、暗号化セキュア OS596を含む各種の暗号化オペレーティングシステムを復号 するための復号鍵を、 OS発行鍵マトリクス 602の i行 j列目に配置された発行鍵を用 いて暗号ィ匕したものである。ただし、 OS無効化情報に含まれる行番号及び列番号と 対応する行列要素は、前記復号鍵に代わって、ダミーデータを暗号ィ匕したものである
[0384] また、具体的には図示していないが、アプリマトリクス無効化リスト 611及び OSマトリ タス無効化リストには、その新旧を示すリスト IDが含まれて 、る。
(2)制御部
制御部は、インターネットを介して、携帯電話から、リスト要求を受信する。リスト要求 を受信すると、情報記憶部 610から、 OSマトリクス無効化リスト 621及びアプリマトリク ス無効化リスト 611を読み出し、ノ、ッシュ制御部、署名生成部によって生成された署 名を付加した署名付 OSマトリクス無効化リストと署名付アプリマトリクス無効化リストと を携帯電話へ送信する。これは、実施の形態 2の制御部 257による、署名付 OS無効 ィ匕リスト及び署名付アプリ無効化リストの生成及び送信と同様であるので、詳細な説 明は省略する。
[0385] また、制御部は、入力部を介して、操作者により新たなアプリ無効化情報の入力及 びアプリマトリクス無効化リストの生成の指示を受け付ける。受け付けた指示に従って 、新たにアプリマトリクス無効化リストを生成する。
また、新たな OS無効化情報の入力及び OSマトリクス無効化リストの生成の指示を 受け付ける。受け付けた指示に従って、新たに OSマトリクス無効化リストを生成する。
[0386] 以下に図 61に示すフローチャートを用いて、アプリマトリクス無効化リストの生成の 動作について説明する。なお、本実施の形態では、アプリ発行鍵マトリクス 601及び アプリマトリクス無効化リストは、 16個の要素を 4 X 4の行列状に配置して構成される 1S これに限るものではない。フローチャートにおいては、より一般的に p行 n列の場 合について説明している。( 、11は1以上の整数)
先ず、 p X n個の各行列要素 Ml l、 M12- · ·Μρηに復号鍵を代入する(ステップ S 721)。列番号を格納する変数 j及び行番号を格納する変数 iを 0で初期化する (ステ ップ S 722)。
[0387] 次に、アプリ無効化情報を読み出し (ステップ S723)、変数 jに 1加算する (ステップ S724) 0読み出したアプリ無効化情報の列番号 jと対応する行番号を抽出し、抽出し た行番号を変数 iに代入する (ステップ S 726)。
次に、行列要素 Mijにダミーデータ「0000」を代入する(ステップ S727)。次に、変 数 j =nである力否かを判断する (ステップ S729)。 j =nでな 、と判断すると (ステップ S729の NO)、ステップ S724に戻って、 j =nになるまでステップ S724— 729を繰り 返す。
[0388] 変数 j =nであると判断した場合 (ステップ S729の YES)、情報記憶部 610に記憶さ れて 、るアプリ無効化情報全てを読み出し終わって 、る力否かを判断し (ステップ S7 31)、読み出し終えていなければ (ステップ S731の NO)、ステップ S722に戻り、次 のアプリ無効化情報についても、ステップ S722— 731の処理を繰り返す。
[0389] 全てのアプリ無効化情報を読み出し終えていると判断すると (ステップ S731の YES )、変数 iに 0を代入し (ステップ S734)、変数 jに 0を代入する (ステップ S736)。次に 、変数 iに 1加算し (ステップ S737)、変数 jに 1加算する(ステップ S739)。
アプリ発行鍵マトリクス 601の i行 j列目の発行鍵 Key— ijを読み出す (ステップ S741 )。読み出した発行鍵 Key— ijを用いて、行列要素 Mijに暗号ィ匕アルゴリズム E2を施 して、 Enc (Key— ij, Mij)を生成し、生成した Enc (Key— ij, Mij)を Mijに代入する (ステップ S742)。
[0390] 変数 j =nであれば (ステップ S743の YES)、ステップ S744に処理を移し、変数 j = nでなければ (ステップ S743の NO)、ステップ S739へ戻り、変数 j =nになるまで、ス テツプ S739— 743の処理を繰り返す。
次に、変数 i=pであれば (ステップ S 744の YES)、アプリマトリクス無効化リストの生 成を終了する。
[0391] 変数 i=pでなければ (ステップ S 744の NO)、ステップ S736に戻り、 i=pになるま で、ステップ S736— 744の処理を繰り返す。
なお、 OSマトリクス無効化リストについても、 OS発行鍵マトリクスと OS無効化情報 を用いて、同様の手順で生成する。
3. 2携帯電話
本実施の形態の携帯電話は、実施の形態 2の携帯電話 400と類似した構成である 。従って、ここでは、実施の形態 2と同様の部分の説明は省略し、本実施の形態の特 徴部分につ 、てのみ説明する。
[0392] (1)セキュアメモリ 613
セキュアメモリ 613には、一例として、図 62に示すように暗号ィ匕音楽復号プログラム 591及び暗号化セキュア OS596を記憶している。
暗号ィ匕音楽復号プログラム 591は、実施の形態 2の音楽復号プログラム 446と同様 の音楽復号の手順を含む音楽復号プログラムに、暗号ィ匕アルゴリズム E3を施して、 生成されたものである。また、暗号ィ匕音楽復号プログラム 591は、ヘッダ部分に、音 楽復号プログラムに固有のアプリ固有鍵マトリクス 592と無効フラグ 593を含んでいる 。アプリ固有鍵マトリクス 592については、上記において、述べたとおりである。無効フ ラグ 593は、前記音楽復号プログラムが無効である力否かを示すフラグであり「0」で あれば、有効であることを、「1」であれば無効であることを示している。
[0393] 暗号化セキュア OS596は、実施の形態 2のセキュア OS441と同様のオペレーティ ング機能を有するセキュア OSに、暗号ィ匕アルゴリズム E3を施して生成されたもので ある。暗号化セキュア OS596は、前記セキュア OSに固有の OS固有鍵マトリクス 597 及び無効フラグ 598をヘッダ部分に含んでいる。 OS固有鍵マトリクス 597については 、上記において、述べたとおりである。
[0394] 無効フラグ 598は、セキュア OSが無効であるか否かを示すフラグであり「0」であれ ば、有効であることを、「1」であれば無効であることを示している。
(2)メモリ保護部 571
メモリ保護部 571は、図 62に示すように無効化リスト記憶部 572、無効化リスト更新 部 575、アプリ検証部 578、アプリ無効化部 579、 OS検証部 581、 OS無効化部 582 及び暗号 '復号部 586から構成される。
[0395] 無効化リスト記憶部 572は、アプリマトリクス無効化リスト 573及び OSマトリクス無効 ィ匕リスト 574を記憶して 、る。アプリマトリクス無効化リスト 573及び OSマトリクス無効 ィ匕リスト 574は、無効化リスト発行装置の情報記憶部 610に記憶されているアプリマト リクス無効化リスト 611及び OSマトリクス無効化リストと同様の構成である。
[0396] 無効化リスト更新部 575の動作は、実施の形態 2の無効化リスト更新部 424と同様 であり、アプリ無効化リスト及び OS無効化リストに代わって、アプリマトリクス無効化リ スト及び OSマトリクス無効化リストを更新する。
アプリ無効化部 579及び OS無効化部 582の動作は、実施の形態 2のアプリ無効化 部 429及び OS無効化部 432と同様であるので、ここでは、改めて説明しない。
[0397] <アプリ検証部 578及び OS検証部 581 >
アプリ検証部 578は、暗号ィ匕音楽復号プログラム 591に含まれるアプリ固有鍵マトリ タス 592及び、無効化リスト記憶部 572に記憶されているアプリマトリクス無効化リスト 573を用いて、暗号ィ匕音楽復号プログラム 591の復号鍵を生成する。正しく復号鍵を 生成することができた場合、音楽復号プログラムが有効であると判定し、生成できな かった場合、音楽復号プログラムが無効であると判断する。上記の、音楽復号プログ ラムの検証の詳細な手順については、後に説明する。
[0398] 有効であると判断すると、暗号'復号部 586へ生成した復号鍵を出力し、暗号化音 楽復号プログラム 176の復号を指示する。
無効であると判断すると、アプリ無効化部 579へ無効化を指示する。
OS検証部 581は、アプリ検証部 578と同様にして、暗号ィ匕セキュア OS596を復号 して生成されるセキュア OSが有効であるか無効であるかを判定する。ここでは、ァプ リ固有鍵マトリクス 592、アプリマトリクス無効化リスト 573に代わって、 OS固有鍵マトリ タス 597、 OSマトリクス無効ィ匕リスト 574を用いる。
[0399] <暗号,復号部 586 >
暗号'復号部 586は、 OS検証部 581から暗号化セキュア OS596の復号鍵を受け 取り、復号を指示される。復号を指示されると、受け取った復号鍵を用いて、セキュア メモリ 613上の暗号ィ匕セキュア OS596に、復号アルゴリズム D3を施してセキュア OS を生成する。
[0400] また、アプリ検証部 578から暗号ィ匕音楽復号プログラム 591の復号鍵を受け取り、 復号を指示される。受け取った復号鍵を用いて、暗号化音楽復号プログラム 591〖こ 復号アルゴリズム D3を施して音楽復号プログラムを生成する。
ここで、 D3は、暗号化アルゴリズム E3によって生成された暗号文を復号するァルゴ リズムであり、一例として、 DES、 AES (Advanced Encryption Standard)などを用いる
[0401] また、切替制御部 576から出力される、セキュアメモリ 613とバス 130との切断を指 示する切断指示を検出する。切断指示を検出すると、受け取った復号鍵によって、音 楽復号プログラム及びセキュア OSを暗号ィ匕して暗号ィ匕音楽復号プログラム 591及び 暗号化セキュア OS596を生成する。
(3)メモリ保護部 571による検証動作
メモリ保護部 571による、セキュアメモリ 613上のプログラムの検証動作について、 図 63のフローチャートを用いて説明する。
[0402] メモリ保護部 571は、接続指示を受け取る (ステップ S701)。接続指示を受け取ると 、無効化リスト更新部 575は、インターネットを介して無効化リスト発行装置から、最新 のアプリマトリクス無効化リストと OSマトリクス無効化リストとを取得し、無効化リスト記 憶部 572に記憶されているアプリマトリクス無効化リスト 573及び OSマトリクス無効化 リスト 574を更新する (ステップ S702)。無効化リスト更新部 575によるステップ S702 の処理は、実施の形態 2の無効化リスト更新部 424によるステップ S672— 679 (図 4 9)の処理と同様であり、 OS無効化リストを OSマトリクス無効化リストに置き換え、アブ リ無効化リストをアプリマトリクス無効化リストに置き換えればよい。 [0403] 次に、 OS検証部 581は、セキュア OSの検証を行い(ステップ S703)、セキュア OS が有効であると判定すると (ステップ S706の YES)、暗号'復号部 586へ暗号化セキ ユア OS596の復号を指示し、暗号'復号部 586は、暗号化セキュア OS596を復号し て、セキュア OSを生成する(ステップ S 707)。
セキュア OSが無効であると判定すると (ステップ S706の NO)、 OS無効化部 582 へ指示して、無効フラグ 598を「1」に設定する (ステップ S 709)。
[0404] 次に、アプリ検証部 578は、音楽復号プログラムが有効である力否かを検証する (ス テツプ S711)。有効であると判定されると (ステップ S 712の YES)、暗号'復号部 586 は、暗号ィ匕音楽復号プログラム 591を復号して音楽復号プログラムを生成する (ステ ップ S 713)。
無効であると判断されると (ステップ S712の NO)、アプリ無効化部 579は、無効フ ラグ 593を「1」に設定する (ステップ S716)。
[0405] (4)音楽復号プログラムの検証
以下に、図 64のフローチャートを用いて、アプリ検証部 578による音楽復号プログ ラムの検証処理について説明する。これは、図 63のステップ S711の詳細である。本 実施の形態では、アプリマトリクス無効化リスト 573は、 4行 X 4列の行列を構成してお り、アプリ固有鍵マトリクス 592は、 4個の鍵情報を含んで構成されている力 ここでは 、より一般的に、アプリマトリクス無効化リスト 573が n行 p列のマトリクスを構成しており 、アプリ固有鍵マトリクス 592が p個の鍵情報力も構成される場合にっ 、て説明する。
[0406] アプリ検証部 578は、アプリ固有鍵マトリクス 573を読み出す (ステップ S731)。説 明の便宜上、行番号を示す変数 iと列番号を示す変数 jとを導入して説明する。
アプリ検証部 578は、変数 jに 1を代入する (ステップ S732)。アプリ固有鍵マトリクス 592の、列番号 jと対応する行番号を、変数 iに代入する (ステップ S733)。
[0407] 次に、アプリマトリクス無効化リスト 573から、行列要素 Mijを読み出す (ステップ S 73 6)。アプリ固有鍵マトリクス 592から発行鍵 Key— ijを抽出し、抽出した発行鍵 Key— ijを用いて、読み出した行列要素 Mijに復号アルゴリズム D2を施して、復号する (ステ ップ S737)。復号結果が「0000」でなければ (ステップ S739の NO)、音楽復号プロ グラムが有効であると判定し (ステップ S 741)、復号結果つまり暗号化音楽復号プロ グラム 591の復号鍵を、暗号 '復号部 586へ出力する (ステップ S742)。
[0408] 処理結果が「0000」であれば (ステップ S739の YES)、次に、変数 j =pであるか否 かを判断し、 j =pでなければ (ステップ S 744の NO)、変数 jに 1加算し (ステップ S74
7)、ステップ S733へ戻る。
変数 j =pであれば (ステップ S744の YES)、音楽復号プログラムが無効であると判 定する(ステップ S 746)。
[0409] なお、ステップ S703の OS検証部 581によるセキュア OSの検証は、図 61のフロー チャートのアプリ固有鍵マトリクスを OS固有鍵マトリクスに置き換え、アプリマトリクス無 効化リストを OSマトリクス無効化リストに置き換えたものであるので、説明を省略する。
3. 3まとめ'効果
以上、説明してきたように、実施の形態 3において、携帯電話のセキュアメモリ 613 上の暗号化音楽復号プログラム 591及び暗号化セキュア OS596は、それぞれに固 有のアプリ固有鍵マトリクス 592、 OS固有鍵マトリクス 597を含んでいる。
[0410] メモリ保護部 571は、アプリマトリクス無効化リスト 573及びアプリ固有鍵マトリクス 59 2により音楽復号プログラムが有効である力否かを判定する。有効である場合にのみ 、アプリマトリクス無効化リスト 573から、復号鍵を生成することが可能である。
セキュア OSについても、同様に、 OSマトリクス無効化リスト 574及び OS固有鍵マト リクスを用いて、有効力否かを判定する。
[0411] アプリケーションの製造メーカーにおいて、複数のアプリケーションを同一の暗号鍵 を用いて同一の方法で暗号ィ匕して出荷して 、る場合にっ 、て考える。
図 58のアプリ発行鍵マトリクス 601を構成する 16個の鍵のうち、各アプリケーション には、各列から 1個ずつ、合計 4個の発行鍵が割り当てられる。このとき、異なるアプリ ケーシヨンに割り当てられる発行鍵力 個とも一致することがな 、ように割り当てられる 。一例として、本実施の形態の音楽復号プログラムには、発行鍵 Key— 11、 Key— 3 2、 Key— 23、 Key— 14が割り当てられており、これらの発行鍵は、暗号化音楽復号 プログラム 591のアプリ固有鍵マトリクス 592に含まれる。
[0412] 音楽復号プログラムと同一の製造メーカーから出荷されるアプリケーション (アプリ B と呼ぶ)には、発行鍵 Kev 21、 Key 32、 Key 33、 Key 44力 ^害割り当てられて おり、暗号ィ匕アプリ Bのアプリ発行鍵マトリクスには、これらの 4個の発行鍵が含まれる ここで、出荷後にアプリ Bが無効化すべきプログラムであることが判明すると、無効 ィ匕リスト発行装置には、アプリ無効化情報 604が追加される。アプリ無効化情報 604 は、アプリ Bに割り当てられた 4個の発行鍵と対応する列番号と行番号から構成され ている。アプリ無効化情報 604に基づいて生成されたアプリマトリクス無効化リスト 61 1は、図 60に示すように、行列要素 M21、 M32、 M33及び M44にダミーデータを含 んでいるため、暗号ィ匕アプリ Bに割り当てられた 4個の発行鍵では、復号鍵を生成す ることができない。
[0413] 図 58に示すように、音楽復号プログラムにも Key— 32が割り当てられている力 図 64のフローチャートを用いて説明した検証動作によると、その他の発行鍵によって、 復号鍵を生成することができる。
このように、各アプリケーションに複数の発行鍵を割り当てておき、アプリ無効化リス トと発行鍵とを用いて、復号鍵を生成する構成であれば、同一の方法で暗号化され て 、ても、無効化すべきアプリケーションだけを無効化することができる。
[0414] さらに、暗号'復号部 586は、セキュアメモリ 613とバスとを切断する際にセキュア O S及び音楽復号プログラムを初めとするアプリケーションを再度暗号ィ匕する。従って、 通常メモリ上のプログラムが CPUを使用して!/、る間、セキュアメモリ 613上のプロダラ ムをより確実に保護することができる。また、このような構成の場合メモリ保護部は、物 理的にバスとセキュアメモリ 613とを切断しなくてもよい。
[0415] 3. 4変形例
(1)実施の形態 3において、メモリ保護部 571は、切替制御部 106から、接続指示 を受ける度に、通信制御部を介して、最新の OSマトリクス無効化リスト及びアプリマト リクス無効化リストを取得して、これらを更新し、セキュアメモリ 613上の各プログラムを 検証している。しかし、 OSマトリクス無効化リスト及びアプリマトリクス無効化リストの更 新、セキュアメモリ 613上の各プログラムの検証を行うタイミングは、これに限るもので はない。
[0416] 一例として、携帯電話の起動時でもよいし、 1日に 1回というように、定期的に行って も良い。また、起動時には、 OSマトリクス無効化リスト及びアプリマトリクス無効化リスト の更新を行い、起動時以降に接続指示を受け取った際に、プログラムの検証を行うと しても良い。
また、各プログラムを起動する際、例えば、通常 OSからセキュア OSへの切替処理 の際には、セキュア OSの検証を行い、セキュア OSが音楽復号プログラムを起動する 際に音楽復号プログラムの検証を行うとしてもよい。
[0417] また、メモリ保護部 571から無効化リスト発行装置へリスト要求を送信し、最新の OS マトリクス無効化リスト及びアプリマトリクス無効化リストを取得して 、るが、新たに無効 化すべきプログラムが判明し、 OSマトリクス無効化リスト及びアプリマトリクス無効化リ ストを作成しなおした際に、無効化リスト発行装置から携帯電話へ送信されるとしても よい。
[0418] (2)携帯電話は、インターネットを介して、最新の OSマトリクス無効化リスト及びアブ リマトリタス無効化リストを取得している力 メモリカードなどの記録媒体力 取得しても 良い。
(3)これまで、本発明の 1つの実施の形態として携帯電話について説明してきたが 、以下に説明するような LANを構成する通信機器であるとしてもよい。
[0419] LANを構成する機器のうち 、ずれかひとつが、最新の無効化リストを取得し、他の 機器に配布するとしても良い。
一例として、図 65に示すような、ホームネットワークを形成する機器である。ホーム ネットワークは、 PC (Personal Computer) 650、ノート PC651、 DVDプレーヤー 6 52、ホームサーバ 653、電子レンジ 654をバスによって接続して構成される。
[0420] 各機器は、通常のオペレーティングシステムやアプリケーションからは、直接ァクセ スすることができないセキュアメモリを備えており、セキュアメモリ上にロードして実行 する各種のアプリケーションやオペレーティングシステムの有効性を検証する機能を 有する。
ホームサーバ 653は、インターネット 20と接続されており、定期的に無効化リスト発 行装置 250へ、アプリ無効化リスト及び OS無効化リストを要求する。インターネットを 介して、無効化リスト発行装置 250から最新のアプリ無効化リスト及び OS無効化リスト を取得する。取得した無効化リストを、バスを介して、ホームネットワークを構成する各 機器へ出力する。
4.実施の形態 4
本発明の実施の形態 4について、以下に説明する。
[0421] 4. 1携帯電話の構成
本実施の形態の携帯電話は、実施の形態 1の携帯電話 100と同様に、デバッガ IF 、 CPU102、 MMU、二次記憶部、切替制御部、割込コントローラ、入力部、表示部 、通常メモリ、共有メモリ、セキュアメモリ 713、メモリ保護部 701、入出力部、暗号処 理デバイス、無線通信制御部、マイク、スピーカ、通信部、アンテナ、バッファ、符号 処理部、 DZA変換部カゝら構成され、各回路はノ スに接続されている。
[0422] 本実施の形態の携帯電話において、メモリ保護部 701及びセキュアメモリ 713以外 の各部の構成及び動作は、実施の形態 1と同様であるので、説明を省略し、ここでは 、本実施の形態の特徴部分についてのみ説明する。
(1)セキュアメモリ 713
セキュアメモリ 713は、図 66に示すように、音楽復号プログラム 704、通信鍵生成プ ログラム 706などのセキュアアプリケーション及びセキュア OS707を記憶している。
[0423] 音楽復号プログラム 704は、実施の形態 1の音楽復号プログラム 176と同様の音楽 復号の処理手順を含むセキュアアプリケーションである。
通信鍵生成プログラム 706は、携帯電話力インターネットを介してコンテンツの送受 信を行う際の暗号鍵を生成するセキュアアプリケーションである。
セキュア OS707は、実施の形態 1のセキュア OS171と同様のオペレーティングシ ステムである。
[0424] ここで、セキュアメモリ 713上の各プログラムは、セキュアメモリ上に起動されると、自 身のアクセス情報をアクセス管理部 702へ出力する。アクセス情報とは、各プログラム がアクセス可能なメモリ領域のアドレスである。
(2)メモリ保護部 701
メモリ保護部 701は、図 66に示すようにアクセス管理部 702と信号監視部 703とを 含んで構成される。 [0425] アクセス管理部 702は、セキュアメモリ 713上の各プログラムからアクセス情報を受 け取り、受け取ったアクセス情報を該当するプログラムと対応付けて記憶している。ま た、各プログラムごとに不正アクセスの回数を計数するカウンタを備えている。
信号監視部 703は、予め、各プログラムの不正アクセスの許される回数 (許容回数) を記憶している。信号監視部 703は、セキュアメモリ 713と CPUとの間のバス上の信 号を監視し、 CPUのアクセス対象となっているセキュアメモリ 713上のアドレスを検出 する。
[0426] 次に、アクセス管理部 702から、現在実行中のプログラムのアクセス情報を読み出 し、読み出したアクセス情報と検出したアドレスとを比較する。検出したアドレスが、読 み出したアクセス情報の示す記憶領域に含まれていれば、そのまま、監視を続ける。 含まれて!/、なければ、アクセス管理部 702が該当するプログラムと対応付けて記憶 しているカウンタに 1加算する。次に、カウンタと記憶している許容回数とを比較する。 カウンタが許容回数以下であれば、そのまま監視を続ける。
[0427] カウンタが許容回数を超えていれば、該当するプログラムが不正であると判定する。
ここで、不正であると判定されたプログラムが音楽復号プログラム 704であった場合 、信号監視部 703は、強制的に、音楽復号プログラム 704の実行を中止し、セキュア OS707に CPU102の実行権を移す。
不正であると判定されたプログラムがその他のセキュアアプリケーションである場合 も同様である。
[0428] 不正であると判定されたプログラムがセキュア OS707である場合、信号監視部 703 は、強制的に、セキュア OS707の実行を中止し、 CPU102及び MMUをクリアし、切 替制御部へ切替指示を出力する。
4. 2まとめ'効果
以上説明してきたように、本発明の携帯電話は、セキュアメモリ 713にロードされて いる各プログラムの動作を監視し、不正の動作を繰り返すプログラムの実行を中止す る。このようにすることで、万一、セキュアメモリ 713中のプログラムに欠陥があった場 合や、実行途中で不正な改ざんが加えられた場合でも、これらのプログラムの実行を 停止することができる。 [0429] 4. 3実施の形態 4の変形例
(1)上記の実施の形態では、メモリ保護部 701は、信号監視部 703により、ノ ス上 の信号を監視することで不正な動作を検出している力 これに代わって、定期的に C PUのプログラムカウンタ値を監視するとしても良い。
(2)上記の実施の形態では、セキュアメモリ 713上の各プログラム力 起動時に、各 プログラムごとに異なるアクセス情報をアクセス管理部 702出力し、信号監視部 703 は、これらのアクセス情報を基に、各プログラムの動作を監視している力 予め、ァク セス管理部 702が、セキュアメモリ 713上のアクセス禁止領域を示す情報を記憶して いるとしてもよい。この場合、いずれのプログラムが実行中であっても、禁止領域にァ クセスしょうとすると、信号監視部は、 CPU102によるプログラム実行を中止し、 CPU 102及び MMUをクリアし、切替制御部へ切替指示を出力する。
[0430] (2)本実施の形態において、メモリ保護部 701は、実施の形態 2において説明した ように、無効化リスト記憶部、アプリ検証部、アプリ無効化部、 OS検証部、 OS無効化 部を備えており、切替制御部から接続指示を受けると、セキュアメモリ上の各プロダラ ムが有効である力否かを判定するとしてもよ 、。
この構成において、信号監視部 703は、動作途中に不正な動作を行うプログラムを 発見し、そのプログラムの動作を停止させると共に、無効化リスト記憶部の記憶してい る OS無効化リスト又はアプリ無効化リストに、不正動作を行ったプログラムと対応する セキュア OSID又はアプリ IDを追加する。
[0431] このようにすることで、新たに発見された無効なプログラムを、再度、実行することが なくなる。
5.実施の形態
本発明の実施の形態 5について以下に説明する。
実施の形態 5の携帯電話 750は、 2枚のメモリカードを装着する。メモリカードのうち 一方には、 OS (オペレーティングシステム)及び、各種のアプリケーションが記憶され ており、携帯電話 750は、これらのプログラムを読み出して実行する。説明の便宜上 このメモリカードを通常メモリカード 800と呼ぶ。
[0432] もう一方のメモリカードには、保護されるべき処理を行うプログラムが暗号化されて 記憶されている。各プログラムは、プログラム部分とデータ部分とから構成される。説 明の便宜上、このメモリカードをセキュアメモリカード 820と呼ぶ。
携帯電話 750は、セキュアメモリカード 820上の各プログラム力 他のプログラムの プログラム部分を読み出すことは許可する力 S、他のプログラムのデータ部分を読み出 すことを禁止する。
[0433] 5. 1 セキュアメモリカード 820
セキュアメモリカード 820は、図 67に示すように、入出力部 821及び情報記憶部 83 0から構成される。
セキュアメモリカード 820は、具体的にはマイクロプロセッサ、 RAM及び ROMを含 んで構成されるコンピュータシステムであり、前記 RAM、 ROMにはコンピュータプロ グラムが記憶されている。前記マイクロプロセッサが前記コンピュータプログラムに従 つて動作することにより、セキュアメモリカード 820は、その機能の一部を達成する。
[0434] 入出力部 821は、外部機器との間で情報の入出力を行う。
情報記憶部 830は、セキュア ID850、暗号ィ匕音楽復号プログラム 831、暗号化鍵 生成プログラム 841などを記憶して 、る。
セキュア ID850は、セキュアメモリカード 820に固有の情報であり、セキュアメモリ力 ード 820がセキュアな処理を行うプログラムを格納して!/、ることを示して!/、る。
[0435] 暗号化音楽復号プログラム 831は、 ID832「A」、暗号化復号プログラム 834及び 暗号ィ匕復号データ 836を含む。 ID832「A」は、暗号ィ匕音楽復号プログラム 831に固 有の識別情報である。
暗号ィ匕復号プログラム 834は、音楽データを復号する手順を含む復号プログラムを 暗号ィ匕して生成されたものであり、暗号ィ匕復号データ 836は、復号プログラムが復号 の処理に使用するパラメータなどのデータを暗号ィ匕したものである。
[0436] 暗号化鍵生成プログラム 841は、 ID842「B」、暗号化生成プログラム 844、暗号化 鍵データ 846を含んで構成される。
ID842「B」は、暗号ィ匕鍵生成プログラム 841に固有の識別情報である。暗号化生 成プログラム 844は、暗号鍵を生成する手順を含む生成プログラムを暗号ィ匕したもの であり、暗号ィヒ鍵データ 846は、前記生成プログラムの使用するパラメータなどのデ ータを暗号ィ匕したものである。
[0437] 5. 2 通常メモリカード 800
通常メモリカード 800は、図 68に示すように、入出力部 801と情報記憶部 802とを 含んで構成される。
入出力部 801は、情報記憶部 802と外部機器との間で、各種のデータの入出力を 行う。
[0438] 情報記憶部 802は、音楽再生プログラム 808を初めとする各種のアプリケーション 及び OS806を記憶している。情報記憶部 802に記憶されているプログラムは、それ ぞれのプログラムが実行する処理の手順を含むコード部とデータ部とから構成される 。また、それぞれのプログラムに固有のプログラム IDを有している。一例として、 OS8 06は、プログラム ID「OS」を有しており、音楽再生プログラム 808は、プログラム ID「 E」を有している。
[0439] 5. 3 携帯電話 750
携帯電話 750ίま、図 68【こ示すよう【こ、デノ ッガ IF751、 CPU752, MMU753,害 ij 込コントローラ 757、入力部 758、表示部 759、メモリ 761、メモリ保護部 764、入出力 部 765、入出力部 766、無線通信制御部 768、通信部 771、アンテナ 772、マイク 76 9、スピーカ 770、ノ ッファ 773、符号処理咅 774、 D/A変換咅 776をノ ス 760【こよ つて接続して構成される。
[0440] デバッガ IF751、 MMU753、割込コントローラ 757、入力部 758、表示部 759、無 線通信制御部 768、通信部 771、アンテナ 772、マイク 769、スピーカ 770、バッファ 773、符号処理部 774DZA変換部 776の動作及び構成は実施の形態 1と同様であ るのでここでは説明を省略する。また、メモリ 761は、各種のデータ及びプログラムを 記憶しており、 CPU752は、メモリ 761、通常メモリカード 800及びセキュアメモリカー ド 820に記憶されているプログラムに含まれる命令を 1個ずつフェッチし、フェッチし た命令を解読し実行する。
[0441] 以下に、本実施の形態の特徴部分であるメモリ保護部 764、入出力部 765、入出 力部 766について説明する。
(1)入出力部 765及び入出力部 766 入出力部 765及び入出力部 766は、 2枚のメモリカードのいずれかと接続され、メモ リカードとメモリ保護部 764との間で、情報の入出力を行う。
[0442] (2)メモリ保護部 764
メモリ保護部 764は、図 69に示すように、復号部 781、復号鍵記憶部 782、ァクセ ス制御部 783、鍵記憶部 784、メモリ情報記憶部 785及び ID検出部 786から構成さ れる。
(2 - 1)鍵記憶部 784
鍵記憶部 784は、暗号ィ匕音楽復号プログラム 831の復号鍵及び暗号ィ匕鍵生成プロ グラム 841の復号鍵をそれぞれのプログラムの IDと対応付けて記憶している。
[0443] (2— 2)復号部 781及び復号鍵記憶部 782
復号部 781は、アクセス制御部 783のから、復号指示及び暗号文を受け取る。復号 指示を受け取ると、復号鍵記憶部 782から復号鍵を読み出し、読み出した復号鍵を 用いて、暗号ィ匕データを復号し、平文を生成する。生成した平文を CPU752へ出力 する。
ここで復号部 781が復号する暗号ィ匕データは、セキュアメモリカード 820に記憶さ れて 、る暗号ィ匕音楽復号プログラム 831、暗号ィ匕鍵生成プログラム 841を構成する 暗号化データである。
[0444] 復号鍵記憶部 782は、復号部 781の使用する復号鍵を 1個だけ格納している。
(2— 3)メモリ情報記憶部 785
メモリ情報記憶部 785は、図 70に示すように、セキュアメモリ情報テーブル 811及 び通常メモリ情報テーブル 861を記憶して 、る。
セキュアメモリ情報テーブル 811は、複数のセキュアメモリ情報 812、 813 · · 'から 構成される。各セキュアメモリ情報は、プログラムお、コードアドレス及びデータァドレ スを含む。
[0445] プログラム IDは、セキュアメモリカード 820に記憶されている各プログラムの IDであ る。コードアドレスは、セキュアメモリカード 820内に記憶されている暗号化アプリケー シヨンのプログラム部分の格納されて 、る領域を示すアドレスである。データアドレス は、暗号ィ匕アプリケーションのデータ部分が格納されて 、る領域を示すアドレスであ る。
[0446] 具体的には、セキュアメモリ情報 812は、プログラム IDとして、暗号化音楽復号プロ グラム 831の ID「A」832と、コードアドレスとして、暗号化復号プログラム 834の記憶 されているアドレス「AOOO— Al l l」と、データアドレスとして、暗号化復号データ 83 6の記憶されて!、るアドレス「A222— A333」を含んで!/、る。
セキュアメモリ情報 813は、プログラム IDとして、暗号化鍵生成プログラム 841の ID 「B」842と、コードアドレスとして、暗号化生成プログラム 844の記憶されているァドレ ス ΓΑ444— A555」と、データアドレスとして、暗号化鍵データ 846の記憶されている アドレス「A666— A777」を含んで!/ヽる。
[0447] 通常メモリ情報テーブル 861は、複数の通常メモリ情報 862、 863 · · ·を含んで構 成され、各通常メモリ情報は、プログラムお、コードアドレス及びデータアドレスを含 む。
プログラム IDは、通常メモリカード 800上に記憶されているプログラムの IDであり、 コードアドレスは、プログラム IDと対応するプログラムのプログラム部分が記憶されて いる領域を示すアドレスであり、データアドレスは、データ部分が記憶されている領域 のアドレスである。
[0448] 具体的に、通常メモリ情報 862は、通常メモリカード 800上に記憶されている OS80 6と対応しており、通常メモリ情報 863は、音楽再生プログラム 808と対応している。
(2— 4) ID検出部 786
ID検出部 786は、 CPU752のプログラムカウンタ(以下 PC)を常時監視しており、 CPU752力 セキュアメモリカード 820上のプログラムを実行している間は、 CPU75 2が実行中のプログラムを示すプログラム IDを記憶している。
[0449] 以下に、図 71のフローチャートを用いて、 ID検出部 786の動作について説明する 。なお、説明の便宜上ステップ S801から説明を開始する。このとき、 CPU752は、通 常メモリカード 800又はメモリ 761上に記憶されているプログラムを実行している。
ID検出部 786は、 PCを監視し (ステップ S801)、メモリ情報記憶部 785の記憶して いるセキュアメモリ情報テーブル 811及び通常メモリ情報テーブル 861に含まれる、 各プログラムのコードアドレスと、 PCの示すアドレスとを比較することにより、 PCの示 すアドレスがセキュアメモリカード 820上のアドレスであるか否かを判断する(ステップ S802)。
[0450] セキュアメモリカード 820上のアドレスでなければ (ステップ S802の NO)、 PCの監 視を継続する。
セキュアメモリカード 820上のアドレスであると判断すると(ステップ S802の YES)、 次に、 PC力も検出したアドレスと対応するセキュアメモリ情報をセキュアメモリ情報テ 一ブル 811から選択し、選択したセキュアメモリ情報に含まれるプログラム IDを抽出 する(ステップ S803)。抽出したプログラム IDを記憶する (ステップ S804)。次に、ァ クセス制御部 783へ、セキュアメモリカード 820上のプログラムの実行が開始されるこ とを示すセキュアアクセス通知を出力する(ステップ S805)。
[0451] 次に、 PCを監視し (ステップ S806)、 PCに格納されて!ヽるアドレスがセキュアメモリ カード 820上のアドレスであるか否かを判断する(ステップ S807)。
セキュアメモリカード 820上のアドレスであると判断すると(ステップ S807の YES)、 PC力 検出したアドレスと対応するセキュアメモリ情報をセキュアメモリ情報テーブル 811から選択し、選択したセキュアメモリ情報に含まれるプログラム IDを抽出する (ス テツプ S809)。抽出したプログラム IDと ID検出部 786自身の記憶しているプログラム IDとを比較する。両者が一致していれば (ステップ S811の YES)、ステップ S806へ 戻って、 PCの監視を続ける。
[0452] 両者が一致して ヽな 、場合 (ステップ S811の NO)、記憶して!/、るプログラム IDを 抽出したプログラム IDに書き換え (ステップ S812)、ステップ S806へ戻る。
ステップ S807において、セキュアメモリカード 820上のアドレスでないと判断すると( ステップ S807の NO)、 ID検出部 786自身の記憶しているプログラム IDを消去し (ス テツプ S814)、ステップ S801へ戻る。
[0453] (2— 5)アクセス制御部 783
アクセス制御部 783は、予め、セキュアメモリカード 820に書き込まれているセキュ ァ IDを記憶している。
入出力部 765及び入出力部 766を介して、メモリカードが装着されたことを検出す る。メモリカードの装着を検出すると、メモリカードに書き込まれているデータを検索す る。記憶しているセキュア IDと同一のセキュア ID850を検出した場合、そのメモリカー ドがセキュアメモリカード 820であることを検知する。ここでは、入出力部 265が、通常 メモリカード 800と接続されており、セキュアメモリカード 820がセキュアメモリカード 8 20と接続されて 、る場合を想定する。
[0454] アクセス制御部 783は、入出力部 765を介して通常メモリカード 800の装着を検出 すると、入出力部 765を介して、通常メモリカード 800に記憶されている情報をサー チし、通常メモリ情報テーブルを生成し、生成した通常メモリ情報テーブルをメモリ情 報記憶部 785へ格納する。
また、入出力部 766を介して、セキュアメモリカード 820の装着を検出すると、入出 力部 766を介して、セキュアメモリカード 820に記憶されている情報をサーチし、セキ ユアメモリ情報テーブルを生成し、生成したセキュアメモリ情報テーブルをメモリ情報 記憶部 785に書き込む。
[0455] アクセス制御部 783は、 CPU752が通常メモリカード 800へアクセスする際に、 CP U752から出力される信号 (以下アクセス信号と呼ぶ)を、そのまま通常メモリカード 8 00へ仲介し、また、通常メモリカード 800から、出力されるデータを受け取り、受け取 つたデータを CPU752へ出力する。
CPU752がセキュアメモリカード 820へアクセスする際には、アクセス信号からァク セス先のアドレスを抽出し、抽出したアドレスによって、セキュアメモリカード 820デー タの読み出し又読み出しの禁止を行う。このような、アクセス制御部 783の動作につ いて、図 71、 72に示すフローチャートを用いて、詳細に説明する。なお、説明の便宜 上、ステップ S821から説明を始める。このとき、 CPU752は、通常メモリカード 800又 はメモリ 761上のプログラムを実行して 、る。
[0456] アクセス制御部 783は、 CPU752と通常メモリカード 800との間で、データの入出 力を仲介する (ステップ S821)。
ID検出部 786から、セキュアメモリカード 820上のプログラムの実行が開始されるこ とを示すセキュアアクセス通知を受け取る(ステップ S805)。
セキュアアクセス通知を受け取ると、アクセス制御部 783は、デバッガ IF751を無効 化し (ステップ S823)、 ID検出部 786に記憶されているプログラム IDを読み出す (ス テツプ S824)。読み出したプログラム IDと対応する復号鍵を鍵記憶部 784から読み 出し (ステップ S826)、読み出した復号鍵を復号鍵記憶部 782へ書き込む (ステップ S827)。
[0457] 次に、 CPU752から出力されるアクセス信号を受け取り、受け取ったアクセス信号 から、アクセス先のアドレスを検出する(ステップ S829)。
アクセス先のアドレスを検出すると、 ID検出部 786からプログラム IDを読み出す (ス テツプ S831)。プログラム IDを読み出すと(ステップ S832の YES)、コードアドレス又 はデータアドレスに検出したアクセス先アドレスを含むセキュアメモリ情報を、セキュア メモリ情報テーブル 811から選択し、選択したセキュアメモリ情報力もプログラム IDを 抽出する (ステップ S834)。
[0458] 抽出したプログラム IDと ID検出部 786から読み出したプログラム IDとを比較し、両 者が一致していれば (ステップ S836の YES)、ステップ S 844へ処理を移す。
両者が一致していない場合 (ステップ S836の NO)、アクセス制御部 783は、さらに 、検出したアドレスが、選択したセキュアメモリ情報のコードアドレスに含まれているの 力 データアドレスに含まれているのかを判定する(ステップ S838)。データアドレス に含まれていると判定した場合 (ステップ S838の NO)、アクセスが許可できないこと を示すエラー通知を CPU752へ出力し、ステップ S829へ戻る。
[0459] コードアドレスに含まれると判定した場合 (ステップ S838の YES)、抽出したプログ ラム IDと対応する復号鍵を、鍵記憶部 784から読み出し、復号鍵記憶部 782の記憶 している復号鍵を、読み出した復号鍵に変更する (ステップ S842)。
次に、入出力部 766を介して検出したアドレスに該当する記憶領域に記憶されてい る情報を読み出す (ステップ S844)。読み出した情報の復号を復号部 781へ指示し ( ステップ S846)、ステップ S829へ戻る。
[0460] ステップ S832において、 ID検出部 786に記憶されているプログラム IDが存在しな い場合 (ステップ S832の NO)、アクセス制御部 783は、復号鍵記憶部 782に記憶さ れている復号鍵を消去し (ステップ S851)、デバッガ IF751を有効にし (ステップ S85 2)ステップ S821へ戻る。
5. 4 まとめ'効果 以上、説明してきたように、本発明の携帯電話は、通常メモリカード及びセキュアメ モリカードに記憶されて 、るプログラムを実行する。セキュアメモリカードに記憶されて
V、るプロダラは予め暗号化されて!/、る。
[0461] メモリ保護部 764は、 CPU752がセキュアメモリカード 820に記憶されているプログ ラムを実行する際に、実行中のプログラムによって、アクセスを許可する領域と、禁止 する領域とを管理している。
音楽復号プログラムが実行される場合を例に説明すると、 CPU752は、暗号化音 楽復号プログラム 831に含まれる暗号ィ匕音楽復号プログラム 831の記憶されている 領域と、暗号ィ匕鍵生成プログラムの暗号ィ匕生成プログラム 844の記憶されて 、る領 域にアクセスすることはできる力 暗号化鍵生成プログラムの暗号化鍵データ 846の 記憶されて 、る領域にはアクセスできな!/、。
[0462] このようにして、セキュアメモリカード 820上の各アプリケーションは、他のアプリケー シヨンから、自身のデータ部にアクセスされ、不正にデータを読み出し、変更されるこ とを回避できる。
また、セキュアメモリカード 820に記憶されている情報は、暗号ィ匕されているため、 セキュアメモリカード 820上のプログラム以外のプログラムを CPU752が実行している 途中に、セキュアメモリカード 820にアクセスした場合でも、解読することができない。 従って、セキュアメモリカード 820上のデータを不正なアクセス力も保護することがで きる。
5. 5 実施の形態 5に関する変形例
上記の実施の形態では、セキュアメモリカード 820上のセキュアアプリケーションの 実行中に CPU752が、他のアプリケーションのデータ部分にアクセスしようとした場 合、アクセス制御部 783は、 CPU752にエラー通知を出力している力 実施の形態 4 の場合と同様に、他のプログラム、例えば OS806に CPU752の実行権を移すとして も良い。この場合、アクセス制御部 783は、復号鍵記憶部 782に記憶されている復号 鍵を消去し、 OS806の記憶されて!、るアドレスを CPU782のプログラムカウンタに設 定する。
6. その他の変形例 以上、実施の形態 1一 5によって、本発明について説明してきた力 本発明は、これ らの実施の形態に限定されるものではなぐ以下のような場合も含む。
[0463] (1)本発明は、上記の実施の形態 1一 3及び変形例を実行する方法であってもよい
(2)また、これらの方法をコンピュータにより実現するコンピュータプログラムであると してもょ 、し、前記コンピュータプログラム力もなるデジタル信号であるとしてもょ 、。 また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ 読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 CD-RO M、 MO、 DVD, DVD-ROM, DVD— RAMゝ BD (Blu— ray Disc)、半導体メモリ などに記録したものとしてもよい。また、これらの記録媒体に記録されている前記コン ピュータプログラム又は前記デジタル信号であるとしてもよい。
[0464] また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信 回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送 等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって 、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサ は、前記コンピュータプログラムに従って動作するとしてもよい。
[0465] また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送する ことにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由し て移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい
(3)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。
産業上の利用可能性
[0466] 本発明を構成する各装置及び記録媒体は、保護される必要のある情報を取り扱う 産業、例えば、映像及び音声を含むコンテンツの作成、配給に係る産業、及び、これ らの情報を取り扱う電器機器を製造し、販売する産業において、経営的に、また継続 的及び反復的に使用することができる。また、本発明を構成する各装置及び記録媒 体は、電器機器製造産業において、経営的に、また継続的及び反復的に、製造し、 販売することができる。

Claims

請求の範囲
[1] 保護対象のセキュアリソースの利用が許可されるセキュアモードと、保護対象外の 通常リソースの利用のみが許可される通常モードとを切り替えて、プログラムを実行 するデータ処理装置であって、
前記通常リソースを利用する 1つ以上の処理手順力 構成される通常プログラムを 記憶して!/、る通常記憶手段と、
前記セキュアリソースを利用する 1つ以上の処理手順力 構成され、少なくとも前記 通常プログラムを呼び出す呼出命令を含むセキュアプログラムを記憶しているセキュ ァ記憶手段と、
セキュアモードにおいて、次に実行すべき命令が、前記呼出命令であるか否かを 判断する判断手段と、
セキュアモードにおいて、前記呼出命令であると判断される場合に、当該呼出命令 により呼び出される前記通常プログラムを示す識別情報を出力する出力手段と、 前記呼出命令であると判断される場合に、セキュアリソースを保護して、セキュアモ ードから通常モードに切り替える切替手段と、
通常モードにお!、て、前記識別情報を受け取る受取手段と、
通常モードにおいて、受け取った前記識別情報により示される前記通常プログラム を前記通常記憶手段から読み出す読出手段と、
通常モードにおいて、読み出した通常プログラムに従って動作する処理手段と を備えることを特徴とするデータ処理装置。
[2] 前記切替手段は、前記セキュアプログラムを制御するセキュアオペレーティングシ ステムを中断させ、前記通常プログラムを制御する通常オペレーティングシステムを 起動することにより、セキュアモードから通常モードに切り替える
ことを特徴とする請求項 1に記載のデータ処理装置。
[3] 前記データ処理装置は、セキュアモード及び通常モードの両方において、アクセス が許可される共有記憶領域を備え、
前記出力手段は、セキュアモードにおいて、前記識別情報を前記共有記憶領域に 書き込むことにより、前記識別情報を出力し、 前記受取手段は、通常モードにおいて、前記共有記憶領域から前記識別情報を 読み出すことにより、前記識別情報を受け取る
ことを特徴とする請求項 2に記載のデータ処理装置。
[4] 前記読出手段は、前記識別情報と前記通常記憶手段における前記通常プログラム の存在位置を示す位置情報とを対応付けて記憶しており、受け取った前記識別情報 に対応する位置情報により示される存在位置力 前記通常プログラムを読み出す ことを特徴とする請求項 3に記載のデータ処理装置。
[5] 前記通常プログラムを構成する 1つの処理手順は、ライブラリを構成する複数の関 数を含み、他の処理手順は、前記複数の関数のうちのいずれかを呼び出し、 前記処理手段は、前記他の処理手順に従って動作する場合に、当該他の処理手 順により呼び出される関数に従って動作する
ことを特徴とする請求項 3に記載のデータ処理装置。
[6] 前記データ処理装置は、さらに、
セキュアモードにお 、て、前記セキュアプログラムの前記セキュア記憶手段への書 き込みを示す書込指示を受け取る指示取得手段と、
セキュアモードにおいて、前記書込指示を取得した場合に、前記セキュア記憶手段 に前記セキュアプログラムを書き込み、前記書込みが終了したことを示す書込終了情 報を出力するセキュアロード手段とを含み、
前記切替手段は、さらに、前記書込終了情報が出力された場合、セキュアモードか ら通常モードへ切り替え、
前記データ処理装置は、さらに、通常モードにおいて、前記書込終了情報を受け 取り、前記通常記憶手段に前記通常プログラムを書き込む通常ロード手段とを含むこ とを特徴とする請求項 2に記載のデータ処理装置。
[7] 前記読出手段は、さらに、通常モードにおいて、前記通常ロード手段により前記通 常プログラムが前記通常記憶手段に書き込まれた場合に、前記識別情報と前記通常 記憶手段における前記通常プログラムの存在位置を示す位置情報とを対応付けて feす。
ことを特徴とする請求項 6に記載のデータ処理装置。
[8] 前記データ処理装置は、さらに、
セキュアモードにおいて、前記セキュアプログラムの削除を指示する削除指示を取 得する削除指示取得手段と、
前記削除指示を取得した場合に、セキュアモードにおいて、前記セキュアプロダラ ムを前記セキュア記憶手段から削除し、前記削除が終了したことを示す削除終了情 報を出力するセキュア削除手段とを含み、
前記切替手段は、さらに、前記削除終了情報が出力された場合、セキュアモードか ら通常モードへ切り替え、
前記データ処理装置は、さらに、
通常モードにおいて、前記削除終了情報を取得し、前記通常記憶手段から前記通 常プログラムを削除する通常削除手段を含む
ことを特徴とする請求項 6に記載のデータ処理装置。
[9] 前記読出手段は、前記識別情報と前記通常記憶手段における前記通常プログラム の存在位置を示す位置情報とを対応付けて記憶しており、受け取った前記識別情報 に対応する位置情報により示される存在位置力 前記通常プログラムを読み出す ことを特徴とする請求項 2に記載のデータ処理装置。
[10] 前記データ処理装置は、さらに、
前記処理手段を含む当該データ処理装置の備える 1以上のデバイスを初期化する 初期化手順及び前記セキュアオペレーティングシステムを起動する起動手順を含む ブートプログラムを記憶しているブートプログラム記憶手段と、
前記ブートプログラム記憶手段から、前記ブートプログラムを読み出し、読み出した 前記ブートプログラムに従って、前記デバイスを初期化し、初期化の完了後に、セキ ユアオペレーティングシステムを起動する初期化手段とを備える
ことを特徴とする請求項 2に記載のデータ処理装置。
[11] 前記データ処理装置は、さらに、
Figure imgf000127_0001
、て、前記処理手段による処理結果と前記セキュアプログラムを示 すセキュア識別情報とを出力する通常出力手段を含み、
前記切替手段は、さらに、前記処理結果が出力された場合、通常モードからセキュ アモードへ切り替え、 前記データ処理装置は、さらに、
Figure imgf000128_0001
、て、前記処理結果と前記セキュア識別情報とを受け取るセキ ユア受取手段と、
受け取った前記セキュア識別情報に対応する前記セキュアプログラムを前記通常 記憶手段から読み出すセキュア読出手段とを含み、
前記処理手段は、さらに、セキュアモードにおいて、前記処理結果を用いて、前記 セキュアプログラムに従って動作する
ことを特徴とする請求項 2に記載のデータ処理装置。
[12] 前記切替手段は、セキュアモードから通常モードに切り替える際に、前記セキュアリ ソースと前記処理手段とを切断する
ことを特徴とする請求項 2に記載のデータ処理装置。
[13] 前記切替手段は、セキュアモードから通常モードに切り替える際に、前記セキュアリ ソースに保持されて 、るセキュア情報を暗号ィ匕する
ことを特徴とする請求の範囲 2に記載のデータ処理装置。
[14] 前記セキュアリソースに保持されている前記セキュア情報は、セキュアモードにおい て実行され、命令コード部分とデータ部分とスタック部分から構成されるプログラムを 含んでおり、
前記切替手段は、セキュアモードから通常モードに切り替える際に、前記命令コー ド部分を暗号化する
ことを特徴とする請求の範囲 13に記載のデータ処理装置。
[15] 前記セキュアリソースに保持されている前記セキュア情報は、セキュアモードにおい て実行され、命令コード部分とデータ部分とスタック部分から構成されるプログラムを 含んでおり、
前記切替手段は、セキュアモードから通常モードに切り替える際に、前記データ部 分を暗号化する
ことを特徴とする請求の範囲 13に記載のデータ処理装置。
[16] 前記セキュアリソースに保持されている前記セキュア情報は、セキュアモードにおい て実行され、命令コード部分とデータ部分とスタック部分から構成されるプログラムを 含んでおり、
前記切替手段は、セキュアモードから通常モードに切り替える際に、前記スタック部 分を暗号化する
ことを特徴とする請求の範囲 13に記載のデータ処理装置。
[17] 前記データ処理装置は、さらに、前記処理手段の動作を監視し、操作するデバッグ 装置カゝらデバッグ操作信号を受け付けるデバッグ受付手段を含み、
前記切替手段は、セキュアモードから通常モードに切り替える際に、前記処理手段 と前記デバッグ受付手段とを接続し、通常モードからセキュアモードに切り替える際 に、前記処理手段と前記デバッグ受付手段とを切断する
ことを特徴とする請求項 2に記載のデータ処理装置。
[18] 前記読出手段は、前記識別情報と前記通常記憶手段における前記通常プログラム の存在位置を示す位置情報とを対応付けて記憶しており、受け取った前記識別情報 に対応する位置情報により示される存在位置力 前記通常プログラムを読み出す ことを特徴とする請求項 1に記載のデータ処理装置。
[19] 第 1オペレーティングシステムと第 2オペレーティングシステムとを切り替え、各オペ レーティングシステムにおいて生成されるプロセスを実行状態、実行待ち状態、休止 状態のいずれかに遷移させてプロセスを実行し管理する前記データ処理装置であつ て、
前記第 1オペレーティングシステムにおいて、第 1プロセスを生成する第 1生成手段 と、
前記第 2オペレーティングシステムにおいて、前記第 1プロセスと対応する第 2プロ セスを生成する第 2生成手段と、
前記第 1オペレーティングシステムにおいて、前記第 1プロセスの状態遷移を検出 する第 1検出手段と、
前記第 1オペレーティングシステムにお 、て、検出された状態遷移を示す遷移情報 を出力する第 1出力手段と、
前記第 1オペレーティングシステムを前記第 2オペレーティングシステムに切り替え る OS切替手段と、
前記第 2オペレーティングシステムにお 、て、前記遷移情報を取得する第 2取得手 段と、
取得した前記遷移情報に従って、前記第 2プロセスの状態を遷移させる第 2遷移手 段と
を備えることを特徴とする請求項 1に記載のデータ処理装置。
[20] 前記データ処理装置は、さらに、
前記第 2オペレーティングシステムにお 、て、前記第 2プロセスの状態遷移を検出 する第 2検出手段と、
前記第 2オペレーティングシステムにお 、て、検出された状態遷移を示す遷移情報 を出力する第 2出力手段とを含み、
前記 OS切替手段は、さらに、前記第 2オペレーティングシステムを前記第 1ォペレ 一ティングシステムに切り替え、
前記データ処理装置は、さらに、
前記第 1オペレーティングシステムにお 、て、前記遷移情報を取得する第 1取得手 段と、
取得した前記遷移情報に従って、前記第 1プロセスの状態を遷移させる第 1遷移手 段とを含むことを特徴とする請求項 19に記載のデータ処理装置。
[21] 前記データ処理装置は、第 1オペレーティングシステム及び第 2オペレーティングシ ステムの両方にぉ 、て、アクセス可能な共有記憶領域を備え、
前記第 1出力手段は、前記共有記憶領域に前記遷移情報を書き込むことにより、 前記遷移情報を出力し、
前記第 2取得手段は、前記共有記憶領域から前記遷移情報を読み出すことによつ て、前記遷移情報を取得する
ことを特徴とする請求項 20に記載のデータ処理装置。
[22] 前記第 2出力手段は、前記共有記憶領域に前記遷移情報を書き込むことにより、 前記遷移情報を出力し、
前記第 1取得手段は、前記共有記憶領域から前記遷移情報を読み出すことによつ て、前記遷移情報を取得する
ことを特徴とする請求項 21に記載のデータ処理装置。
[23] 前記データ処理装置は、前記第 2オペレーティングシステムにおいて管理されて動 作するデバイスを含み、
前記第 2プロセスは、前記デバイスの駆動を制御するデバイス駆動プログラムであり 前記第 2検出手段は、前記デバイスの動作に伴う前記第 2プロセスの状態遷移を検 出する
ことを特徴とする請求項 22に記載のデータ処理装置。
[24] 前記第 1オペレーティングシステムにおいて、前記第 1プロセスが、休止状態から実 行状態に遷移した場合、
前記データ処理装置は、前記デバイスへの処理依頼の重複を回避する排他処理 を行う前記第 1プロセスに従って動作し、
前記第 1オペレーティングシステムにおいて、前記第 1出力手段は、前記排他処理 が終了した後に前記遷移情報を出力する
ことを特徴とする請求項 23に記載のデータ処理装置。
[25] 前記データ処理装置は、さらに、
第 1オペレーティングシステム及び第 2オペレーティングシステムにお 、て、割込の 発生を検出する割込検出手段と、
前記第 1オペレーティングシステムにおいて、割込が検出された場合、割込発生要 因を調査する割込調査手段と、
前記第 1オペレーティングシステムにおいて、割込調査手段により、前記デバイスに よる割込であると判断された場合、前記第 1プロセスを休止状態力 実行状態に遷移 させる割込遷移手段と
を含むことを特徴とする請求項 23に記載のデータ処理装置。
[26] 前記データ処理装置は、さらに、
前記第 2オペレーティングシステムにおいて、割込が検出された場合、割込の検出 を示す割込通知情報を出力する通知手段を含み、 前記 OS切替手段は、前記第 2オペレーティングシステムを前記第 1オペレーティン グシステムに切り替え、
前記第 1取得手段は、さらに、前記第 1オペレーティングシステムにおいて、前記割 込通知情報を取得し、
前記割込調査手段は、さらに、第 1オペレーティングシステムにおいて、前記割込 通知情報を取得した場合、割込発生要因を調査する
ことを特徴とする請求項 25に記載のデータ処理装置。
[27] 前記通知手段は、割込が検出された場合、前記割込検出手段に対して、割込の検 出を停止させ、
前記第 1取得手段は、前記割込通知情報を取得した場合、前記割込検出手段に 対して、前記停止を解除する
ことを特徴とする請求項 26に記載のデータ処理装置。
[28] プログラムに従って動作する前記データ処理装置であって、
複数の処理手順力 構成されるプログラムを記憶している記憶手段と、 前記記憶手段に記憶されている前記プログラムが不正なものであるか否かを判断 する正当性判断手段と、
不正なものであると判断される場合に、前記プログラムを無効化する無効化手段と を備えることを特徴とする請求項 1に記載のデータ処理装置。
[29] 前記正当'性判断手段は、
前記記憶手段に記憶されている前記プログラムを示すプログラム識別情報を取得 するプログラム情報取得部と、
無効化されたプログラムを示す無効化識別情報を取得する無効化情報取得部と、 取得した前記プログラム識別情報と取得した前記無効化識別情報とがー致するか 否かを判断する判断部とを含み、
一致すると判断される場合に、前記プログラムが不正であると決定する ことを特徴とする請求項 28に記載のデータ処理装置。
[30] 前記プログラム情報取得部は、
前記プログラムを示すプログラム識別情報を記憶している識別情報記憶部と、 前記識別情報記憶部から前記プログラム識別情報を読み出すことにより取得する 読出部とを含み、
前記無効化情報取得部は、
無効化されたプログラムを示す無効化識別情報を記憶している無効化情報記憶部 と、
前記無効化情報記憶部から前記無効化識別情報を読み出すことにより取得する読 出部とを含む
ことを特徴とする請求項 29に記載のデータ処理装置。
[31] 前記正当性判断手段は、前記プログラムに割り当てられた公開鍵の正当性を証明 する公開鍵証明書に基づ 、て、前記プログラムが不正なものであるか否かを判断す る
ことを特徴とする請求項 28に記載のデータ処理装置。
[32] 前記正当'性判断手段は、
前記公開鍵を識別する公開鍵識別情報を含む前記公開鍵証明書を記憶している 証明書記憶部と、
前記公開鍵証明書から前記公開鍵識別情報を取得する公開鍵情報取得部と、 無効化された公開鍵を示す無効化識別情報を記憶している無効化情報記憶部と、 前記無効化情報記憶部から無効化識別情報を読み出す無効化情報読出部と、 取得した前記公開鍵識別情報と読み出した前記無効化識別情報とがー致するか 否かを判断する判断部とを含み、
一致すると判断される場合に、前記プログラムが不正であると決定する
ことを特徴とする請求項 31に記載のデータ処理装置。
[33] 前記正当'性判断手段は、さらに、
外部から最新の無効化識別情報を取得し、取得した無効化識別情報を前記無効 化情報記憶部に書き込む更新部を含む
ことを特徴とする請求項 32に記載のデータ処理装置。
[34] 前記更新部は、前記記憶手段へのアクセス要求を検出する度に、最新の無効化識 別情報を取得する ことを特徴とする請求項 33に記載のデータ処理装置。
[35] 前記更新部は、 CRL (Certificate Revocation List)発行装置から、ネットワークを介 して、前記無効化識別情報を受信し、 CRL発行装置から、ネットワーク及びサーバ装 置を介して、前記無効化識別情報を受信し、又は記録媒体から前記無効化識別情 報を読み出すことにより、取得する
ことを特徴とする請求項 33に記載のデータ処理装置。
[36] 前記更新部は、さらに、外部から、前記最新の無効化識別情報に対してデジタル 署名を施して生成された署名データを取得し、取得した署名データに署名検証を施 し、署名検証が成功した場合に、取得した前記無効化識別情報を前記無効化情報 記憶部に書き込む
ことを特徴とする請求項 33に記載のデータ処理装置。
[37] 前記正当'性判断手段は、
少なくとも当該公開鍵に対してデジタル署名を施して生成された署名データを含む 前記公開鍵証明書を記憶して!/、る証明書記憶部と、
前記証明書記憶部力 前記公開鍵証明書を取得する公開鍵証明書取得部と、 取得した前記公開鍵証明書に含まれる署名データに、署名検証を施すことにより、 取得した前記公開鍵証明書が正しいものであるカゝ否かを検証する検証部とを含み、 前記公開鍵証明書が正しいものでないと判断される場合に、前記プログラムが不正 であると決定する
ことを特徴とする請求項 31に記載のデータ処理装置。
[38] 前記正当性判断手段は、少なくとも 2個の公開鍵の正当性をそれぞれ証明する少 なくとも 2個の公開鍵証明書を用いて、前記記憶手段に記憶されている前記プロダラ ムが不正なものであるか否かを判断する
ことを特徴とする請求項 28に記載のデータ処理装置。
[39] 前記 2個の公開鍵は、前記プログラムに割り当てられた第 1公開鍵及び前記データ 処理装置又は前記プログラムの動作を制御するオペレーティングシステムに割り当て られた第 2公開鍵であり、
前記正当性判断手段は、 権威のある認証機関の秘密鍵を用いて、少なくとも前記第 2公開鍵に対してデジタ ル署名を施して生成された第 2署名データと、前記第 2公開鍵とを含む第 2公開鍵証 明書と、
前記データ処理装置又は前記オペ一ティングシステムの秘密鍵を用いて、少なくと も前記第 1公開鍵に対してデジタル署名を施して生成された第 1署名データと、前記 第 1公開鍵とを含む第 1公開鍵証明書とを記憶している証明書記憶部と、
前記証明書記憶部から前記第 1公開鍵証明書及び前記第 2公開鍵証明書を取得 する公開鍵証明書取得部と、
取得した前記第 2公開鍵証明書に含まれる第 2署名データに、前記認証機関の公 開鍵を用いて、署名検証を施すことにより、取得した前記第 2公開鍵証明書が正しい ものであるか否かを検証し、
正しいと判定された場合に、前記第 2公開鍵証明書から前記第 2公開鍵を取得し、 取得した前記第 1公開鍵証明書に含まれる第 1署名データに、取得した前記第 2公 開鍵を用いて、署名検証を施すことにより、取得した前記第 1公開鍵証明書が正しい ものである力否かを検証する検証部とを含み、
前記第 2公開鍵証明書が正しいものでないと判断される場合及び前記第 1公開鍵 証明書が正しいものでないと判断される場合に、前記プログラムが不正であると決定 する
ことを特徴とする請求項 38に記載のデータ処理装置。
[40] 前記正当性判断手段は、前記記憶手段へのアクセス要求を検出する度に、前記判 断をする
ことを特徴とする請求項 28に記載のデータ処理装置。
[41] 前記正当性判断手段は、前記記憶手段に記憶されているプログラムへのアクセス 要求を検出する度に、前記判断をする
ことを特徴とする請求項 40に記載のデータ処理装置。
[42] 前記正当性判断手段は、当該データ処理装置へ電力供給が開始された直後に、 前記判断をする
ことを特徴とする請求項 28に記載のデータ処理装置。
[43] 暗号化されたプログラムを復号して実行する前記データ処理装置であって、 前記記憶手段は、前記プログラムに代えて、プログラム鍵を用いて、前記プログラム に暗号ィ匕アルゴリズムが施されて生成された暗号ィ匕プログラムを記憶しており、 前記正当性判断手段は、
P個の暗号鍵から選択された m個の暗号鍵を記憶している暗号鍵記憶部と、 前記 m個の暗号鍵のそれぞれを用いて、前記プログラム鍵及び所定の検知情報の いずれかが暗号化されて生成された m個の暗号ィ匕情報を、 m個の前記暗号鍵に対 応づけて記憶している暗号化情報記憶部と、
前記 m個の暗号鍵のそれぞれを用いて、対応する暗号ィ匕情報に復号アルゴリズム を施して、 m個の復号情報を生成する復号部と、
生成された m個の復号情報の全てが、前記検知情報であるか否かを判断する判断 部とを含み、
生成された m個の復号情報の全てが、前記検知情報であると判断される場合に、 前記プログラムが不正なものであると決定する
ことを特徴とする請求項 28に記載のデータ処理装置。
[44] 前記 p個の暗号鍵は、 n行 m列 (p=nX m)の第 1行列の各要素位置に配されてお り、前記第 1行列の各列から 1個の暗号鍵が選択されることにより、前記第 1行列から m個の暗号鍵が選択され、
前記暗号鍵記憶部は、前記第 1行列において、各暗号鍵が配された要素位置を、 各暗号鍵に対応付けて記憶しており、
前記暗号化情報記憶部は、 n行 m列の第 2行列において、各暗号化情報に対応す る暗号鍵が配されている要素位置と同じ要素位置において、当該暗号化情報を記憶 しており、
復号部は、前記暗号鍵記憶部から、暗号鍵と対応する要素位置を読み出し、前記 暗号ィ匕情報記憶部の第 2行列において、前記読み出した要素位置と同じ要素位置 に配されている暗号ィ匕情報を読み出し、読み出した前記暗号鍵を用いて、読み出し た前記暗号化情報に復号アルゴリズムを施す
ことを特徴とする請求項 43に記載のデータ処理装置。
[45] 前記データ処理装置であって、
データを記憶するためのメモリ手段と、
複数の処理手順力 構成されるプログラムに従って動作するプロセッサと、 前記メモリ手段と前記プロセッサとの間に配置され、前記プロセッサから出力される 前記メモリ手段宛の転送データが転送制限条件を満たしているか否かを判断し、転 送制限条件を満たしていると判断する場合に、前記メモリ手段への転送データの転 送を抑制し、転送制限条件を満たしていないと判断する場合に、前記メモリ手段への 転送データの転送を行う監視手段と
を備えることを特徴とする請求項 1に記載のデータ処理装置。
[46] 前記監視手段は、複数のアプリケーションプログラム毎に、転送制限条件を記憶し ており、前記プロセッサにより実行されるアプリケーションプログラム毎に、転送制限 条件を選択し、選択した転送制限条件を用いる
ことを特徴とする請求項 45に記載のデータ処理装置。
[47] 前記転送制限条件は、前記メモリ手段内の所定の記憶空間を示すアドレス範囲情 報であり、
前記監視手段は、前記転送データからアドレス情報を抽出し、抽出したアドレス情 報力 前記アドレス範囲情報に含まれる場合に、前記転送データの転送を抑制する ことを特徴とする請求項 46に記載のデータ処理装置。
[48] 前記転送制限条件は、前記メモリ手段内の所定の記憶空間へのアクセス回数の上 限を示す制限回数であり、
前記監視手段は、過去における前記記憶空間へのアクセスの累積回数を記憶して おり、前記転送データ力 アドレス情報を抽出し、抽出したアドレス情報が、前記アド レス範囲情報に含まれる場合に、前記累積回数に 1を加算し、加算して得られたカロ 算後回数が、前記制限回数を超える場合に、前記転送データの転送を抑制する ことを特徴とする請求項 46に記載のデータ処理装置。
[49] 前記監視手段は、前記プロセッサに接続されるバス上において転送される前記転 送データが転送制限条件を満たしている力否かを判断する
ことを特徴とする請求項 46に記載のデータ処理装置。
[50] 前記メモリ手段は、暗号鍵を用いて、前記プロセッサにより実行されている現プログ ラムとは異なるアプリケーションプログラムのコード部分とデータ部分とがそれぞれ暗 号化されて生成された暗号化コード及び暗号化データを記憶しており、
前記転送制限条件は、前記メモリ手段内において前記暗号化データが格納されて V、る記憶空間を示すアドレス範囲情報であり、
前記監視手段は、前記暗号化コード及び暗号化データを復号するための復号鍵を 記憶しており、前記転送データ力 アドレス情報を抽出し、抽出したアドレス情報が、 前記暗号ィ匕コードが格納されている記憶空間を示すアドレス範囲内にある場合に、 前記復号鍵を用いて、前記転送データにより示される記憶空間に存在する暗号ィ匕コ 一ドを復号して復号コードを生成し、生成した復号コードを前記プロセッサへ転送し、 抽出したアドレス情報が、前記アドレス範囲情報に含まれる場合に、転送データの転 送を抑制する
ことを特徴とする請求項 46に記載のデータ処理装置。
[51] 前記監視手段は、さらに、転送制限条件を満たしていると判断する場合に、前記プ 口セッサにより実行中の前記プログラムを識別する識別情報をプログラム無効化リスト に追加する
ことを特徴とする請求項 46に記載のデータ処理装置。
[52] 前記データ処理装置であって、
データを記憶するためのメモリ手段と、
複数の処理手順力 構成されるプログラムに従って動作し、次に実行対象となる命 令のアドレスが格納されているプログラムカウンタを備えるプロセッサと、
前記プログラムカウンタに格納されているアドレス力 所定のアドレス範囲内に含ま れるか否かを判断し、所定のアドレス範囲内に含まれると判断する場合に、前記プロ セッサに対して、プログラムカウンタに所定の値を格納するように指示する監視手段と を備え、
前記プロセッサは、前記指示を受け取ると、プログラムカウンタに前記所定の値を格 納する
ことを特徴とする請求項 1に記載のデータ処理装置。
[53] 保護対象のセキュアリソースの利用が許可されるセキュアモードと、保護対象外の 通常リソースの利用のみが許可される通常モードとを切り替えて、プログラムを実行 するデータ処理装置にぉ 、て用いられるデータ処理方法であって、
前記データ処理装置は、前記通常リソースを利用する 1つ以上の処理手順から構 成される通常プログラムを記憶して 、る通常記憶手段と、前記セキュアリソースを利用 する 1つ以上の処理手順力 構成され、少なくとも前記通常プログラムを呼び出す呼 出命令を含むセキュアプログラムを記憶しているセキュア記憶手段とを備え、 前記データ処理方法は、
セキュアモードにおいて、次に実行すべき命令が、前記呼出命令であるか否かを 判断する判断ステップと、
セキュアモードにおいて、前記呼出命令であると判断される場合に、当該呼出命令 により呼び出される前記通常プログラムを示す識別情報を出力する出力ステップと、 前記呼出命令であると判断される場合に、セキュアリソースを保護して、セキュアモ ード力 通常モードに切り替える切替ステップと、
通常モードにお 、て、前記識別情報を受け取る受取ステップと、
通常モードにおいて、受け取った前記識別情報により示される前記通常プログラム を前記通常記憶手段から読み出す読出ステップと、
通常モードにおいて、読み出した通常プログラムに従って動作する処理ステップと を含むことを特徴とするデータ処理方法。
[54] 第 1オペレーティングシステムと第 2オペレーティングシステムとを切り替え、各オペ レーティングシステムにおいて生成されるプロセスを実行状態、実行待ち状態、休止 状態のいずれかに遷移させてプロセスを実行し管理する前記データ処理方法であつ て、
前記第 1オペレーティングシステムにおいて、第 1プロセスを生成する第 1生成ステ ップと、
前記第 2オペレーティングシステムにおいて、前記第 1プロセスと対応する第 2プロ セスを生成する第 2生成ステップと、
前記第 1オペレーティングシステムにおいて、前記第 1プロセスの状態遷移を検出 する第 1検出ステップと、
前記第 1オペレーティングシステムにお 、て、検出された状態遷移を示す遷移情報 を出力する第 1出力ステップと、
前記第 1オペレーティングシステムを前記第 2オペレーティングシステムに切り替え る OS切替ステップと、
前記第 2オペレーティングシステムにお 、て、前記遷移情報を取得する第 2取得ス テツプと、
取得した前記遷移情報に従って、前記第 2プロセスの状態を遷移させる第 2遷移ス テツプと
を含むことを特徴とする請求項 53に記載のデータ処理方法。
[55] プログラムに従って動作する前記データ処理装置において用いられる前記データ 処理方法であって、
前記データ処理装置は、複数の処理手順力 構成されるプログラムを記憶して 、る 記憶手段を備え、
前記記憶手段に記憶されている前記プログラムが不正なものであるか否かを判断 する正当性判断ステップと、
不正なものであると判断される場合に、前記プログラムを無効化する無効化ステツ プと
を含むことを特徴とする請求項 53に記載のデータ処理方法。
[56] 前記データ処理装置において用いられるデータ処理方法であって、
前記データ処理装置は、データを記憶するためのメモリ手段と複数の処理手順から 構成されるプログラムに従って動作するプロセッサとを備え、
前記データ処理方法は、
前記メモリ手段と前記プロセッサとの間において、前記プロセッサから出力される前 記メモリ手段宛の転送データが転送制限条件を満たしているか否かを判断し、転送 制限条件を満たしていると判断する場合に、前記メモリ手段への転送データの転送 を抑制し、転送制限条件を満たしていないと判断する場合に、前記メモリ手段への転 送データの転送を行う監視ステップ を含むことを特徴とする請求項 53に記載のデータ処理方法。
[57] 保護対象のセキュアリソースの利用が許可されるセキュアモードと、保護対象外の 通常リソースの利用のみが許可される通常モードとを切り替えて、プログラムを実行 するデータ処理装置において用いられるデータ処理プログラムであって、
前記データ処理装置は、前記通常リソースを利用する 1つ以上の処理手順から構 成される通常プログラムを記憶して 、る通常記憶手段と、前記セキュアリソースを利用 する 1つ以上の処理手順力 構成され、少なくとも前記通常プログラムを呼び出す呼 出命令を含むセキュアプログラムを記憶しているセキュア記憶手段とを備え、 前記データ処理プログラムは、
セキュアモードにおいて、次に実行すべき命令が、前記呼出命令であるか否かを 判断する判断ステップと、
セキュアモードにおいて、前記呼出命令であると判断される場合に、当該呼出命令 により呼び出される前記通常プログラムを示す識別情報を出力する出力ステップと、 前記呼出命令であると判断される場合に、セキュアリソースを保護して、セキュアモ ード力 通常モードに切り替える切替ステップと、
通常モードにお 、て、前記識別情報を受け取る受取ステップと、
通常モードにおいて、受け取った前記識別情報により示される前記通常プログラム を前記通常記憶手段から読み出す読出ステップと、
通常モードにおいて、読み出した通常プログラムに従って動作する処理ステップと を含むことを特徴とするデータ処理プログラム。
[58] 第 1オペレーティングシステムと第 2オペレーティングシステムとを切り替え、各オペ レーティングシステムにおいて生成されるプロセスを実行状態、実行待ち状態、休止 状態のいずれかに遷移させてプロセスを実行し管理する前記データ処理プログラム であって、
前記第 1オペレーティングシステムにおいて、第 1プロセスを生成する第 1生成ステ ップと、
前記第 2オペレーティングシステムにおいて、前記第 1プロセスと対応する第 2プロ セスを生成する第 2生成ステップと、 前記第 1オペレーティングシステムにおいて、前記第 1プロセスの状態遷移を検出 する第 1検出ステップと、
前記第 1オペレーティングシステムにお 、て、検出された状態遷移を示す遷移情報 を出力する第 1出力ステップと、
前記第 1オペレーティングシステムを前記第 2オペレーティングシステムに切り替え る OS切替ステップと、
前記第 2オペレーティングシステムにお 、て、前記遷移情報を取得する第 2取得ス テツプと、
取得した前記遷移情報に従って、前記第 2プロセスの状態を遷移させる第 2遷移ス テツプと
を含むことを特徴とする請求項 57に記載のデータ処理プログラム。
[59] プログラムに従って動作する前記データ処理装置において用いられる前記データ 処理プログラムであって、
前記データ処理装置は、複数の処理手順力 構成されるプログラムを記憶して 、る 記憶手段を備え、
前記記憶手段に記憶されている前記プログラムが不正なものであるか否かを判断 する正当性判断ステップと、
不正なものであると判断される場合に、前記プログラムを無効化する無効化ステツ プと
を含むことを特徴とする請求項 57に記載のデータ処理プログラム。
[60] 前記データ処理装置において用いられるデータ処理プログラムであって、
前記データ処理装置は、データを記憶するためのメモリ手段と複数の処理手順から 構成されるプログラムに従って動作するプロセッサとを備え、
前記データ処理プログラムは、
前記メモリ手段と前記プロセッサとの間において、前記プロセッサから出力される前 記メモリ手段宛の転送データが転送制限条件を満たしているか否かを判断し、転送 制限条件を満たしていると判断する場合に、前記メモリ手段への転送データの転送 を抑制し、転送制限条件を満たしていないと判断する場合に、前記メモリ手段への転 送データの転送を行う監視ステップ
を含むことを特徴とする請求項 57に記載のデータ処理プログラム, 前記データ処理プログラムは、
コンピュータ読み取り可能な記録媒体に記録されている ことを特徴とする請求項 57に記載のデータ処理プログラム。
PCT/JP2004/017614 2003-11-28 2004-11-26 データ処理装置 WO2005052769A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2004800352503A CN1886712B (zh) 2003-11-28 2004-11-26 数据处理装置
EP04819456A EP1688816A4 (en) 2003-11-28 2004-11-26 DATA PROCESSING DEVICE
US10/580,818 US7788487B2 (en) 2003-11-28 2004-11-26 Data processing apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003-399055 2003-11-28
JP2003399055 2003-11-28

Publications (1)

Publication Number Publication Date
WO2005052769A1 true WO2005052769A1 (ja) 2005-06-09

Family

ID=34631589

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/017614 WO2005052769A1 (ja) 2003-11-28 2004-11-26 データ処理装置

Country Status (5)

Country Link
US (1) US7788487B2 (ja)
EP (1) EP1688816A4 (ja)
KR (1) KR101037006B1 (ja)
CN (1) CN1886712B (ja)
WO (1) WO2005052769A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114051036A (zh) * 2021-09-23 2022-02-15 通号城市轨道交通技术有限公司 轨道交通信号系统数据同步方法、装置、设备及存储介质

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2852777B1 (fr) * 2003-03-21 2005-06-10 Gemplus Card Int Procede de protection d'un terminal de telecommunication de type telephone mobile
WO2005071515A1 (en) * 2004-01-22 2005-08-04 Koninklijke Philips Electronics N.V. Method of authorizing access to content
TWI258696B (en) * 2004-05-04 2006-07-21 Intervideo Digital Technology Computer system capable of rendering encrypted multimedia and method thereof
JP4794269B2 (ja) * 2004-11-08 2011-10-19 パナソニック株式会社 セキュアデバイスおよび中継端末
KR20080014786A (ko) * 2005-06-01 2008-02-14 마츠시타 덴끼 산교 가부시키가이샤 컴퓨터시스템 및 프로그램 생성장치
US20070016961A1 (en) * 2005-07-11 2007-01-18 Vogler Dean H Application revocation using an application revocation list in a portable electronic device
US8510846B1 (en) * 2006-06-29 2013-08-13 Google Inc. Data encryption and isolation
WO2008007305A2 (en) * 2006-07-12 2008-01-17 Koninklijke Philips Electronics N.V. Method and system for obfuscating a gryptographic function
US7698542B2 (en) * 2006-08-25 2010-04-13 Infineon Technologies Ag Circuit and method for comparing program counter values
JP2008123482A (ja) * 2006-10-18 2008-05-29 Matsushita Electric Ind Co Ltd 記憶媒体制御方法
DE102006057093B4 (de) * 2006-12-04 2008-10-02 Infineon Technologies Ag Vorrichtung zur Auswahl einer virtuellen Kartenanwendung
US8056143B2 (en) 2007-01-19 2011-11-08 Research In Motion Limited Selectively wiping a remote device
JP4903071B2 (ja) * 2007-03-15 2012-03-21 株式会社リコー 情報処理装置、ソフトウェア更新方法及び画像処理装置
US20080244753A1 (en) * 2007-03-30 2008-10-02 Motorola, Inc. Instruction Transform for the Prevention and Propagation of Unauthorized Code Injection
US8181038B2 (en) * 2007-04-11 2012-05-15 Cyberlink Corp. Systems and methods for executing encrypted programs
US7958371B2 (en) * 2007-05-09 2011-06-07 Sony Computer Entertainment Inc. Methods and apparatus for secure operating system distribution in a multiprocessor system
CN101689149A (zh) * 2007-07-05 2010-03-31 Nxp股份有限公司 提高微处理器安全性的方法
EP2738680A1 (en) 2007-09-04 2014-06-04 Nintendo Co., Ltd. Writing area security system
WO2009031245A1 (ja) * 2007-09-04 2009-03-12 Nintendo Co., Ltd. ダウンロードセキュリティシステム
US9207990B2 (en) * 2007-09-28 2015-12-08 Hewlett-Packard Development Company, L.P. Method and system for migrating critical resources within computer systems
JP4371327B2 (ja) * 2007-10-24 2009-11-25 富士通株式会社 申請処理プログラム、申請処理方法、および仲介サーバ装置、並びに仲介サーバシステム
US8639941B2 (en) * 2007-12-05 2014-01-28 Bruce Buchanan Data security in mobile devices
US8826037B2 (en) * 2008-03-13 2014-09-02 Cyberlink Corp. Method for decrypting an encrypted instruction and system thereof
US8607034B2 (en) * 2008-05-24 2013-12-10 Via Technologies, Inc. Apparatus and method for disabling a microprocessor that provides for a secure execution mode
US8225390B2 (en) * 2008-06-27 2012-07-17 Microsoft Corporation Licensing protected content to application sets
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
JP2013507698A (ja) * 2009-10-15 2013-03-04 エフティーエス コンピューターテクニク ジーエムビーエイチ 安全性に関連したおよび安全性に関連していないソフトウェア・コンポーネントを1つのハードウェア・プラットフォーム上で実行する方法
EP2507708B1 (en) * 2009-12-04 2019-03-27 Cryptography Research, Inc. Verifiable, leak-resistant encryption and decryption
JP5565040B2 (ja) * 2010-03-30 2014-08-06 富士通株式会社 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム
US20120079282A1 (en) * 2010-06-28 2012-03-29 Lionstone Capital Corporation Seamless end-to-end data obfuscation and encryption
JP5573489B2 (ja) * 2010-08-23 2014-08-20 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
JP5133387B2 (ja) * 2010-10-22 2013-01-30 シャープ株式会社 複合機、制御プログラムおよび記録媒体
WO2012086106A1 (ja) * 2010-12-21 2012-06-28 パナソニック株式会社 仮想計算機システム及び仮想計算機システム制御方法
CN102542219A (zh) * 2010-12-31 2012-07-04 富泰华工业(深圳)有限公司 具有记忆功能的电子装置及其存储卡读取方法
US20120192100A1 (en) * 2011-01-25 2012-07-26 Motorola-Mobility, Inc. Method and apparatus for locking and unlocking multiple operating system environments with a single gesture input
JP5775738B2 (ja) * 2011-04-28 2015-09-09 富士通株式会社 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
US9354900B2 (en) 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
US9076020B2 (en) * 2011-05-13 2015-07-07 Microsoft Technology Licensing, Llc Protected mode for mobile communication and other devices
US20120331303A1 (en) * 2011-06-23 2012-12-27 Andersson Jonathan E Method and system for preventing execution of malware
US9363250B2 (en) 2011-12-23 2016-06-07 Microsoft Technology Licensing, Llc Hub coordination service
US9158902B2 (en) * 2011-12-29 2015-10-13 Intel Corporation Software modification for partial secure memory processing
KR20130101632A (ko) * 2012-02-16 2013-09-16 삼성전자주식회사 콘텐츠 보안 장치 및 방법
US9417753B2 (en) 2012-05-02 2016-08-16 Google Technology Holdings LLC Method and apparatus for providing contextual information between operating system environments
US9342325B2 (en) 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
US9003475B1 (en) * 2012-06-05 2015-04-07 Symantec Corporation Systems and methods for applying data-loss-prevention policies
US9230076B2 (en) * 2012-08-30 2016-01-05 Microsoft Technology Licensing, Llc Mobile device child share
US9749206B2 (en) 2012-10-30 2017-08-29 Elwha Llc Methods and systems for monitoring and/or managing device data
US10091325B2 (en) 2012-10-30 2018-10-02 Elwha Llc Methods and systems for data services
US10216957B2 (en) * 2012-11-26 2019-02-26 Elwha Llc Methods and systems for managing data and/or services for devices
US9886458B2 (en) 2012-11-26 2018-02-06 Elwha Llc Methods and systems for managing one or more services and/or device data
US20140123300A1 (en) 2012-11-26 2014-05-01 Elwha Llc Methods and systems for managing services and device data
US9088450B2 (en) 2012-10-31 2015-07-21 Elwha Llc Methods and systems for data services
EP2741229B1 (en) * 2012-12-07 2018-10-17 Samsung Electronics Co., Ltd Priority-based application execution method and apparatus of a dual-mode data processing device
US9846656B2 (en) * 2013-04-17 2017-12-19 Laurence H. Cooke Secure computing
GB2515047B (en) 2013-06-12 2021-02-10 Advanced Risc Mach Ltd Security protection of software libraries in a data processing apparatus
KR20150070890A (ko) * 2013-12-17 2015-06-25 삼성전자주식회사 파일 처리 방법 및 이를 지원하는 전자 장치
JP6265783B2 (ja) * 2014-03-06 2018-01-24 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム
US20160048688A1 (en) * 2014-08-14 2016-02-18 Google Inc. Restricting System Calls using Protected Storage
US20160147765A1 (en) * 2014-11-25 2016-05-26 Quixey, Inc. Techniques for Using Similarity to Enhance Relevance in Search Results
JP2016116134A (ja) * 2014-12-16 2016-06-23 パナソニックIpマネジメント株式会社 署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法
US10432547B2 (en) * 2016-03-18 2019-10-01 Hewlett-Packard Development Company, L.P. Verifying functionality restrictions of computing devices
WO2019126185A1 (en) * 2017-12-18 2019-06-27 Convida Wireless, Llc Methods to enable context aware authorization for data or services in the iot/m2m service layer
KR20200021815A (ko) * 2018-08-21 2020-03-02 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
KR20200101211A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62103146A (ja) * 1985-10-30 1987-05-13 Matsushita Electric Ind Co Ltd プリンタ−ヘツド制御回路
JPS62205443A (ja) * 1986-03-06 1987-09-10 Nec Corp アドレス発生回路
JPH06103058A (ja) * 1992-05-15 1994-04-15 Addison M Fischer プログラム権限情報データ構造
JPH08227356A (ja) * 1994-12-21 1996-09-03 Tec Corp データ処理装置
JPH11175355A (ja) * 1997-12-15 1999-07-02 Sony Corp 情報処理装置及び方法、オペレーティングシステム並びにコンピュータ読み取り可能な媒体
JP2001256066A (ja) * 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
JP2002189633A (ja) * 2000-12-21 2002-07-05 Nec Corp 仮想空間のメモリ保護方法及び装置
JP2002251326A (ja) * 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
JP2003280756A (ja) * 2002-03-25 2003-10-02 Seiko Epson Corp 情報処理装置のデバッグ手段

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
US5412717A (en) * 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
US7290284B1 (en) * 1999-01-11 2007-10-30 Myspace Ab System for data processing a security critical activity
AU2278601A (en) * 1999-12-23 2001-07-03 General Instrument Corporation Dual-mode processor
JP4226760B2 (ja) 2000-05-08 2009-02-18 株式会社東芝 マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
US7475398B2 (en) * 2000-08-01 2009-01-06 Wind River Systems, Inc. System and method for implementing a smart system call
JP2002353960A (ja) 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
GB2376761A (en) * 2001-06-19 2002-12-24 Hewlett Packard Co An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
CN1230751C (zh) * 2001-12-31 2005-12-07 武汉瑞达电子有限公司 一卡多用安全智能卡
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US7127579B2 (en) * 2002-03-26 2006-10-24 Intel Corporation Hardened extended firmware interface framework
GB2396451B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system
US7370210B2 (en) * 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
GB2396712B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Handling multiple interrupts in a data processing system utilising multiple operating systems
US7383587B2 (en) * 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
EP1563376B1 (en) * 2002-11-18 2006-04-12 ARM Limited Exception types within a secure processing system
GB2402785B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Processor switching between secure and non-secure modes
US7539853B2 (en) * 2002-11-18 2009-05-26 Arm Limited Handling interrupts in data processing of data in which only a portion of a function has been processed
CN1871568B (zh) * 2003-08-26 2010-04-28 松下电器产业株式会社 程序执行设备
US7076637B2 (en) * 2003-10-29 2006-07-11 Qualcomm Inc. System for providing transitions between operating modes of a device
US7120794B2 (en) * 2003-10-29 2006-10-10 Qualcomm Inc. System for invoking a privileged function in a device

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62103146A (ja) * 1985-10-30 1987-05-13 Matsushita Electric Ind Co Ltd プリンタ−ヘツド制御回路
JPS62205443A (ja) * 1986-03-06 1987-09-10 Nec Corp アドレス発生回路
JPH06103058A (ja) * 1992-05-15 1994-04-15 Addison M Fischer プログラム権限情報データ構造
JPH08227356A (ja) * 1994-12-21 1996-09-03 Tec Corp データ処理装置
JPH11175355A (ja) * 1997-12-15 1999-07-02 Sony Corp 情報処理装置及び方法、オペレーティングシステム並びにコンピュータ読み取り可能な媒体
JP2001256066A (ja) * 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
JP2002189633A (ja) * 2000-12-21 2002-07-05 Nec Corp 仮想空間のメモリ保護方法及び装置
JP2002251326A (ja) * 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
JP2003280756A (ja) * 2002-03-25 2003-10-02 Seiko Epson Corp 情報処理装置のデバッグ手段

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ITOH S. ET AL.: "FUkusu OS kankyo o riyo shita hysteresis shomei system no jisso", COMPUTER SECURITY SYMPOSIUM 2002, INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 2002, no. 16, 30 October 2002 (2002-10-30), pages 65 - 69, XP002997686 *
See also references of EP1688816A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114051036A (zh) * 2021-09-23 2022-02-15 通号城市轨道交通技术有限公司 轨道交通信号系统数据同步方法、装置、设备及存储介质

Also Published As

Publication number Publication date
EP1688816A4 (en) 2012-04-25
KR101037006B1 (ko) 2011-05-25
US20070113079A1 (en) 2007-05-17
US7788487B2 (en) 2010-08-31
EP1688816A1 (en) 2006-08-09
KR20060107826A (ko) 2006-10-16
CN1886712A (zh) 2006-12-27
CN1886712B (zh) 2010-09-08

Similar Documents

Publication Publication Date Title
WO2005052769A1 (ja) データ処理装置
JP6067449B2 (ja) 情報処理装置、情報処理プログラム
EP2249280B1 (en) Information processor and method for controlling the same
JP4886682B2 (ja) データ処理装置
JP4903188B2 (ja) 信用済基盤区画(tpm)のための更新可能な鍵束縛を提供する方法及び装置
US9158924B2 (en) Information processing apparatus and information processing method
US8555089B2 (en) Program execution apparatus, control method, control program, and integrated circuit
RU2295834C2 (ru) Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным
JP4795812B2 (ja) セキュアプロセッサ
EP2062191B1 (en) System and method for securely restoring a program context from a shared memory
WO2010041462A1 (ja) 情報処理装置、情報処理方法、情報処理プログラム及び集積回路
JP4843531B2 (ja) 暗号変換装置、暗号変換方法および暗号変換プログラム
CN107077428A (zh) 保护应用秘密免受操作系统攻击
JP2003108442A (ja) マイクロプロセッサ
JP2006203564A (ja) マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
JP4629416B2 (ja) データ処理装置
JP2014048725A (ja) 情報処理装置
WO2013011902A1 (ja) ライセンス管理装置、ライセンス管理システム、ライセンス管理方法、及びプログラム
JP2005182774A5 (ja)
US20150039900A1 (en) Program execution method and decryption apparatus
JP2010146635A (ja) コンテンツ記録再生装置並びにコンテンツの書き込み及び読み出し方法
US20130103953A1 (en) Apparatus and method for encrypting hard disk
JP5304304B2 (ja) セキュリティ強化システム、方法、プログラム及びusbメモリ
JP2005018379A (ja) プロセッサ、プロセッサシステム及びキャッシュ一貫性制御方法
JP2004240719A (ja) ソフトウェア実行制御方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200480035250.3

Country of ref document: CN

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 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 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): 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 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
REEP Request for entry into the european phase

Ref document number: 2004819456

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2004819456

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2007113079

Country of ref document: US

Ref document number: 10580818

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWE Wipo information: entry into national phase

Ref document number: 1020067012914

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2004819456

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020067012914

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 10580818

Country of ref document: US