WO2014049830A1 - 情報処理装置および半導体装置 - Google Patents

情報処理装置および半導体装置 Download PDF

Info

Publication number
WO2014049830A1
WO2014049830A1 PCT/JP2012/075081 JP2012075081W WO2014049830A1 WO 2014049830 A1 WO2014049830 A1 WO 2014049830A1 JP 2012075081 W JP2012075081 W JP 2012075081W WO 2014049830 A1 WO2014049830 A1 WO 2014049830A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
control circuit
encrypted
input
information
Prior art date
Application number
PCT/JP2012/075081
Other languages
English (en)
French (fr)
Inventor
清之 小檜山
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to EP12885704.2A priority Critical patent/EP2903202A4/en
Priority to JP2014537997A priority patent/JPWO2014049830A1/ja
Priority to PCT/JP2012/075081 priority patent/WO2014049830A1/ja
Publication of WO2014049830A1 publication Critical patent/WO2014049830A1/ja
Priority to US14/666,601 priority patent/US20150195258A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1011Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Definitions

  • the present invention relates to an information processing device and a semiconductor device.
  • OS Operating System
  • the TRM structure is a structure in which information stored in a semiconductor such as an integrated circuit cannot be referred to from the outside.
  • the integrated circuit has a structure in which a strong and highly adhesive coating is applied and the internal circuit is destroyed when the applied coating is removed. Thereby, it is possible to physically prevent peeping or falsification of information inside the semiconductor.
  • a semiconductor having such a TRM structure may be called a secure module or a secure LSI (Large Scale Integration).
  • a secure module reads a secure software code or the like stored in a main memory by direct access and checks whether the secure software has been tampered with based on a comparison result between the read code and information stored in advance.
  • the secure module supplies predetermined information to the release means for releasing the encryption process using the key, and supplies the key to the release means when the release means is determined to be valid with reference to the response.
  • an object of the present invention is to provide a highly versatile information processing apparatus and semiconductor device in which key leakage is prevented.
  • the information processing apparatus includes a secure module and a first control circuit that is provided outside the secure module and inputs encrypted data to the secure module through a first communication path.
  • the secure module includes a memory, a second control circuit, and an input unit.
  • the memory is a memory incapable of reading / writing from the first control circuit, and stores a key used for decrypting the encrypted data.
  • the second control circuit decrypts the encrypted data using the key, and outputs the decrypted data to the first control circuit through the first communication path.
  • the input unit stores the key input through the second communication path separated from the first communication path in the memory.
  • FIG. 1 is a diagram illustrating the information processing apparatus according to the first embodiment.
  • the information processing apparatus 1 is a computer having a function of decrypting encrypted data using a key.
  • the information processing apparatus 1 may be, for example, a PC (Personal Computer) such as a tablet type, a notebook type, or a desktop type, or may be a portable information terminal device having a mobile phone function.
  • PC Personal Computer
  • the information processing apparatus 1 includes a secure module 10 and a control circuit 20 (first control circuit) provided outside the secure module 10.
  • the secure module 10 and the control circuit 20 are realized as a semiconductor device mounted on the same substrate, for example.
  • the secure module 10 is provided with a communication path 2 (first communication path) and a communication path 3 (second communication path). Of these, the communication path 2 is connected between the control circuit 20 and the secure module 10. Used for data input / output between.
  • the control circuit 20 is, for example, a circuit that controls the entire information processing apparatus 1, and is configured as a processor such as a CPU (Central Processing Unit).
  • the control circuit 20 executes an OS whose specifications such as a software structure or an interface are disclosed, and further executes an application program corresponding to the specifications of the OS.
  • the application program to be executed can be freely developed in accordance with the published OS specifications. Thereby, the versatility of the information processing apparatus 1 is improved.
  • the control circuit 20 inputs the encrypted data (hereinafter referred to as encrypted data 4) to the secure module 10 via the communication path 2, and the decrypted data (hereinafter referred to as decrypted data 5). ) Is received from the secure module 10 via the communication path 2.
  • encrypted data the encrypted data
  • decrypted data 5 the decrypted data 5
  • the control circuit 20 reads, for example, the encrypted data 4 from a storage device (not shown) connected to the control circuit 20 and inputs it to the secure module 10.
  • the control circuit 20 may receive the encrypted data 4 from a transmission device existing outside the information processing device 1 and input it to the secure module 10.
  • the secure module 10 is hardware having a function of preventing peeping from outside and data tampering by a TRM structure or the like.
  • the secure module 10 includes an input unit 11, a memory 12, and a control circuit 13 (second control circuit).
  • the memory 12 is a non-volatile storage device that cannot be read or written from the control circuit 20 outside the secure module 10.
  • the control circuit 20 can communicate with the secure module 10 using only predetermined commands. In this case, since the control circuit 20 does not prepare a command for requesting data reading from the memory 12 or data writing to the memory 12, reading / writing of the memory 12 from the control circuit 20 is prohibited.
  • the memory 12 stores various data used in the processing of the secure module 10, such as confidential information handled by the secure module 10.
  • the memory 12 stores a key 6 used for decrypting the encrypted data 4 as an example of confidential information.
  • the control circuit 13 decrypts the encrypted data 4 input from the control circuit 20 via the communication path 2 by using the key 6 stored in the memory 12.
  • the control circuit 13 outputs the decrypted decrypted data 5 to the control circuit 20 via the communication path 2.
  • the storage of the key 6 and the decryption process using the key 6 are performed in the secure module 10, there is a probability that the key 6 is read by the control circuit 20 and leaked outside the information processing apparatus 1. As a result, the security of the key 6 is improved.
  • the control circuit 13 is realized using, for example, a processor such as a CPU or DSP (Digital Signal Processor), or other electronic circuits such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • the control circuit 13 may be realized using a plurality of electronic circuits such as a processor and a decoding circuit. Further, when the control circuit 13 includes a processor, for example, by executing a dedicated program that can be executed only on the secure module 10, the processing procedure of the control circuit 13 is falsified and the key 6 is leaked. The probability of doing can be reduced.
  • the communication path 3 is connected to the input unit 11.
  • the communication path 3 is a path for inputting confidential information to the secure module 10, and the input unit 11 stores the confidential information input via the communication path 3 in the memory 12.
  • the secret information input from the communication path 3 to the memory 12 via the input unit 11 includes the key 6.
  • the communication path 3 is provided separately from the communication path 2 that connects the control circuit 20 and the secure module 10.
  • the input unit 11 can input confidential information including the key 6 to the memory 12 without depending on the processing of the control circuit 20 that may be falsified. Therefore, confidential information can be stored in the memory 12 by a highly secure process that does not depend on the process of the control circuit 20 at least after the manufacturing stage of the memory 12.
  • the input unit 11 is realized by a predetermined electronic circuit.
  • the input unit 11 includes a circuit that performs authentication based on authentication information input via the communication path 3, and allows the confidential information input thereafter to be stored in the memory 12 when the authentication is successful. can do.
  • FIG. 1 shows a configuration in which confidential information is directly input from the input unit 11 to the memory 12.
  • confidential information input via the communication path 3 is transferred from the input unit 11 to the control circuit. It is also possible to store in the memory 12 via 13.
  • the input unit 11 stores the key 6 input via the communication path 3 in the memory 12 (step S1).
  • the storage process of the key 6 can be performed at an arbitrary timing at least after the memory 12 is manufactured. For example, from when the manufactured memory 12 is mounted on the secure module 10 until immediately before the information processing apparatus 1 on which the secure module 10 and the control circuit 20 are mounted is shipped from the factory, the information processing apparatus 1 is sold to the user.
  • the key 6 can be stored in the memory 12 at an arbitrary timing until immediately before. Thereby, it becomes possible to store in the memory 12 an appropriate key 6 according to the form of service provided for the information processing apparatus 1 sold, and the versatility of the information processing apparatus 1 is improved.
  • the communication path 3 may be removable, for example. In this case, the input of confidential information to the secure module 10 may be prohibited by removing the communication path 3.
  • the control circuit 20 inputs the encrypted data 4 to the control circuit 13 via the communication path 2 (step S2).
  • the control circuit 20 may have a function of decrypting and reproducing and outputting encrypted content data including image data or audio data.
  • the encrypted data 4 may be a content key for decrypting the encrypted content data.
  • a content key is prepared for each content data.
  • the key 6 stored in the memory 12 can be information associated with a user or the like who provides the service.
  • control circuit 13 reads the key 6 from the memory 12, and decrypts the encrypted data 4 input from the control circuit 20 using the read key 6 (step S3).
  • the control circuit 13 outputs the decoded data 5 obtained by the decoding to the control circuit 20 via the communication path 2 (Step S4).
  • the control circuit 20 can execute a predetermined process using the received decrypted data 5.
  • the process of decrypting using the key 6 includes, for example, a process of decrypting using the key 6 itself as a decryption key.
  • Examples of such a case include a case where the key 6 is a secret key and the encrypted data 4 is encrypted with a public key corresponding to the secret key.
  • the “processing to decrypt using the key 6” can include the following processing. .
  • the control circuit 13 communicates with the transmission device via the control circuit 20 and performs mutual authentication with the transmission device using the key 6.
  • the control circuit 13 receives the encrypted data 4 encrypted using the temporary key temporarily generated during the mutual authentication process via the control circuit 20, and receives the received encryption.
  • the encrypted data 4 is decrypted using the temporary key as a decryption key.
  • the control circuit 20 executes the process of obtaining the encrypted data 4 and supplying it to the secure module 10, and the process of receiving and using the decrypted data 5 obtained by the decryption. .
  • These processes can be realized by using, for example, an application program developed in accordance with the published OS specifications, so that the versatility of the information processing apparatus 1 can be improved.
  • the control circuit 20 since the control circuit 20 does not execute the process using the key 6 directly, the probability that the key 6 leaks to the outside decreases, and the security of the key 6 improves.
  • the input unit 11 can store the key 6 in the memory 12 by a process that does not depend on the control circuit 20. Therefore, a highly versatile information processing apparatus 1 in which leakage of the key 6 is prevented is realized.
  • the content is information including video information and audio information, and is information such as a television program, a movie, and a video game.
  • the content is, for example, MPEG (Moving Picture Experts Group) or H.264. It is compressed by a method such as the H.264 method.
  • FIG. 2 is a diagram illustrating an information processing system according to the second embodiment.
  • the terminal device 100 is connected to the distribution center 31 via the network 40.
  • the terminal device 100 can perform bidirectional communication with the distribution center 31. Further, the terminal device 100 receives a broadcast wave transmitted from the broadcast station 32. Since communication with the broadcasting station 32 uses broadcast waves, only unidirectional communication for receiving information from the broadcasting station 32 is possible.
  • the terminal device 100 is a device having a function of reproducing and outputting content.
  • the terminal device 100 may be a portable portable terminal device such as a tablet PC.
  • the terminal device 100 includes a secure LSI having a TRM structure.
  • the terminal device 100 receives encrypted content encrypted from the distribution center 31 and the broadcast station 32.
  • the terminal device 100 uses the content key received from the distribution center 31 when decrypting the encrypted content received from the distribution center 31 capable of bidirectional communication.
  • the terminal device 100 performs mutual authentication with the distribution center 31 using confidential information (for example, a secret key) of the terminal device 100.
  • confidential information of the terminal device 100 is stored on the secure LSI in order to prevent peeping and tampering from the outside.
  • the terminal device 100 can receive the content key from the distribution center 31 when the mutual authentication is successful.
  • the terminal device 100 uses a content key, a work key, and a master key when decrypting encrypted content received from the broadcasting station 32 capable of only one-way communication.
  • the content key is updated periodically (for example, once every several seconds) by the broadcasting station 32.
  • the updated content key is encrypted by the broadcast station 32.
  • the encrypted content key is referred to as an encrypted content key.
  • the encrypted content key is periodically transmitted from the broadcast station 32 to the terminal device 100 by broadcast waves together with the encrypted content corresponding to the content key.
  • the work key is a decryption key corresponding to the encrypted content key.
  • the work key is different for each broadcasting station, and is updated regularly (for example, every month) by the broadcasting station 32.
  • the updated work key is encrypted by the broadcast station 32.
  • the encrypted work key is referred to as an encrypted work key.
  • the encrypted work key is periodically transmitted from the broadcasting station 32 to the terminal device 100 by a broadcast wave.
  • the work key update cycle is longer than the content key update cycle.
  • the master key is a decryption key corresponding to the encrypted work key.
  • Each terminal device has a master key individually.
  • the master key is stored in a storage device on the secure LSI of the terminal device 100 in order to prevent peeping and tampering from the outside.
  • the master key may be a secret key of the terminal device 100 or a common key shared with the transmission side device.
  • FIG. 3 is a block diagram illustrating a hardware example of the terminal device.
  • the terminal device 100 includes a RAM (Random Access Memory) 101, a flash memory 102, a display 103, a touch panel 104, a communication interface 105, a television receiving unit 106, and a system LSI 110.
  • the RAM 101, flash memory 102, display 103, touch panel 104, communication interface 105, television receiver 106, main processor 111, decompression circuit 112, and secure LSI 120 are connected to a bus 113 provided in the system LSI 110.
  • the system LSI 110 is an integrated circuit that controls the entire terminal device 100.
  • the system LSI 110 includes a main processor 111, a decompression circuit 112, and a secure LSI 120.
  • the main processor 111 is a device including an arithmetic unit that executes program instructions.
  • the main processor 111 loads at least a part of the program and data stored in the flash memory 102 into the RAM 101 and executes the program.
  • the main processor 111 may use a CPU, a DSP, or the like.
  • the main processor 111 may include a plurality of processor cores.
  • the terminal device 100 may include a plurality of processors.
  • the terminal device 100 may perform parallel processing using a plurality of processors or a plurality of processor cores.
  • a set of two or more processors, a dedicated circuit such as an FPGA or an ASIC, a set of two or more dedicated circuits, a combination of a processor and a dedicated circuit, and the like may be referred to as a “processor”.
  • the decompression circuit 112 decompresses the compressed data and outputs it to the main processor 111.
  • Examples of the compression method include MPEG, H.264, and the like.
  • the decompression circuit 112 may support any compression method.
  • the image data expanded by the expansion circuit 112 is output to the display 103 via the main processor 111.
  • the decompressed image data may be directly output from the decompression circuit 112 to the display 103 without going through the bus 113 or the main processor 111.
  • the decompressed image data may be supplied to the display 103 in a state of being encrypted by an HDCP (High-bandwidth Digital Content Protection system) system.
  • the image data encrypted by the HDCP method may be output to the outside of the terminal device 100 via an image output interface (not shown).
  • the RAM 101 is a volatile memory that temporarily stores programs executed by the main processor 111 and data referenced from the programs.
  • the terminal device 100 may include a type of memory other than the RAM, or may include a plurality of volatile memories.
  • the flash memory 102 is a non-volatile storage device that stores programs and data such as an OS, firmware, and application software.
  • the terminal device 100 may include other types of storage devices such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive), or may include a plurality of nonvolatile storage devices.
  • HDD Hard Disk Drive
  • SSD Solid State Drive
  • the display 103 displays an image according to a command from the main processor 111.
  • a liquid crystal display LCD: Liquid Crystal Display
  • an organic EL Electro Luminescence
  • the touch panel 104 is provided so as to overlap the display 103, detects a user's touch operation on the display 103, and notifies the main processor 111 of the touch position as an input signal.
  • a pointing device such as a touch pen or a user's finger is used.
  • detection methods such as a matrix switch method, a resistive film method, a surface acoustic wave method, an infrared method, an electromagnetic induction method, a capacitance method, etc. Good.
  • the communication interface 105 is an interface for communicating with other computers (for example, the distribution center 31) via the network 40.
  • the communication interface 105 may be a wired interface connected to a wired network or a wireless interface connected to a wireless network.
  • the television receiving unit 106 includes a tuner, a demodulator, and the like, and acquires information indicating the content of each broadcast channel by taking in the broadcast radio wave received by the connected antenna 41.
  • the program to be executed by the main processor 111 may be copied to the flash memory 102 from another storage device.
  • the program executed by the main processor 111 may be downloaded from the network 40 by the communication interface 105.
  • At least one of the hardware included in the terminal device 100 of FIG. 3 that is mounted outside the system LSI 110 and connected to the bus 113 may be mounted inside the system LSI 110.
  • the RAM 101 and the flash memory 102 may be mounted inside the system LSI 110.
  • the main processor 111 executes an OS program in which specifications such as an interface are disclosed.
  • the main processor 111 executes an application program developed in accordance with the specifications of such an OS program.
  • the versatility of the terminal device 100 is improved by configuring the terminal device 100 to include the main processor 111 that executes a program based on the published specifications.
  • the secure LSI 120 is an integrated circuit having a TRM structure.
  • the secure LSI 120 is connected to the main processor 111 via the bus 113, but the processes exchanged between the secure LSI 120 and the main processor 111 are limited to specific processes. This prevents information stored in the secure LSI 120 from being unintentionally leaked or tampered with.
  • the secure LSI 120 includes a sub processor 121, a cryptographic operation circuit 122, a secure RAM 123, a secure ROM (Read Only Memory) 124, an external input / output unit 125, and a secure input unit 130. Each of these units is connected to the bus 127.
  • the external input / output unit 125 is connected to the buses 113 and 127.
  • the sub-processor 121 is a device including an arithmetic unit that executes program instructions in the secure LSI 120.
  • the sub processor 121 controls each unit included in the secure LSI 120.
  • the cryptographic operation circuit 122 is a circuit including an encryption circuit that encrypts data, a decryption circuit that decrypts data, and the like.
  • the cryptographic operation circuit 122 performs processing such as encryption and decryption in accordance with an instruction from the sub processor 121, and outputs the processing result to the sub processor 121.
  • the secure RAM 123 is a volatile memory that temporarily stores a program executed by the sub processor 121 and data referred to from the program.
  • the secure LSI 120 may include a volatile memory of a type other than the RAM, and may include a plurality of volatile memories.
  • the secure ROM 124 is a non-volatile storage device that stores confidential information such as identification information of the terminal device 100, a secret key, and a master key.
  • the identification information of the terminal device 100 includes, for example, the identification number of the terminal device 100.
  • the secure ROM 124 may store a dedicated program that operates only on the secure LSI 120.
  • the dedicated program is, for example, a program generated by an instruction code that can be executed only on the secure LSI 120.
  • the secure ROM 124 is a writable nonvolatile storage device such as a flash memory.
  • the secure LSI 120 may include a plurality of such nonvolatile storage devices.
  • the external input / output unit 125 is connected to the bus 113 and inputs / outputs data to / from the main processor 111 via the bus 113.
  • the external input / output unit 125 outputs the data input from the main processor 111 to the sub processor 121.
  • the external input / output unit 125 outputs data input from the sub processor 121 to the main processor 111.
  • the path through which the sub processor 121 can output data in the secure LSI 120 is only the path through the external input / output unit 125.
  • the sub processor 121 wants to transmit data to a device outside the terminal device 100 (for example, the distribution center 31)
  • the sub processor 121 first transmits the data to be transmitted via the external input / output unit 125 to the main processor 111. Output to.
  • the main processor 111 transmits the output data to a device outside the terminal device 100.
  • the information input from the main processor 111 to the sub-processor 121 via the external input / output unit 125 is limited to information specified in advance, such as a specific command. Then, when information other than that specified by the external input / output unit 125 is input, the sub processor 121 ignores the information and discards it. Thereby, the security of the information stored in the secure LSI 120 is enhanced.
  • the main processor 111 As a command that the main processor 111 outputs to the sub-processor 121, it is requested to directly read out data from the storage area inside the secure LSI 120 such as the secure RAM 123 and the secure ROM 124, and to write data into the storage area. Commands are not included. This makes it impossible to read / write data from / to the secure RAM 123 and the secure ROM 124 by a command from the main processor 111.
  • the program executed by the sub-processor 121 of the secure LSI 120 does not include a program code that outputs confidential information stored in the secure LSI 120 via the external input / output unit 125. Thereby, security of confidential information is improved. Further, as will be described later, the program executed by the sub-processor 121 is not based on the published specifications, but is a program written in a language dedicated to the secure LSI 120. As a result, the reliability of the processing itself by the sub-processor 121 is increased, and as a result, the security of confidential information in the secure LSI 120 is improved.
  • the random number generation circuit 126 generates a random number in accordance with an instruction from the sub processor 121 and outputs the generated random number to the sub processor 121.
  • the random number is used for mutual authentication with the distribution center 31, for example.
  • the secure input unit 130 outputs confidential information input from the input device 42 external to the terminal device 100 to the bus 127 in the secure LSI 120.
  • the confidential information output from the secure input unit 130 is stored in the secure ROM 124 by the sub processor 121. Note that the confidential information output from the secure input unit 130 may be directly stored in the secure ROM 124 without using the sub processor 121.
  • the secure input unit 130 configures an input path through which information can be input into the secure LSI 120 without the main processor 111 being interposed.
  • the secure input unit 130 can output the input information to the bus 127, but cannot output the information input from the bus 127 to the outside of the secure LSI 120.
  • the process for inputting confidential information from the secure input unit 130 can be performed at any timing after the secure LSI 120 is manufactured. For example, any time from when the manufactured secure LSI 120 is mounted on the terminal device 100 to immediately before the terminal device 100 on which the secure LSI 120 is mounted is shipped from the factory or until immediately before the terminal device 100 is sold to the user. Confidential information can be stored in the secure ROM 124 at the timing.
  • the secure input unit 130 it is possible to store appropriate confidential information in the secure LSI 120 according to the sales form of the terminal device 100, the service provision form using the terminal device 100, and the like. Become.
  • the versatility of the terminal device 100 can be improved. For example, when the terminal device 100 has a mobile phone function, unique confidential information generated by a mobile phone carrier or a mobile phone sales company can be stored in the secure ROM 124. In this case, the mobile phone carrier or the store can provide the service using the generated unique confidential information, and it is easy to provide the original service.
  • connection unit for the input device 42 to connect to the secure input unit 130 for example, a predetermined external pin among a large number of external pins provided in the system LSI 110 can be used.
  • a dedicated connector for connecting to the secure input unit 130 may be provided.
  • connection from the input device 42 to the secure input unit 130 is performed.
  • the input processing timing is basically limited to the manufacturing stage of the terminal device 100.
  • the dedicated connector is provided on the outer surface of the casing of the terminal device 100, for example, confidential information can be input from the input device 42 to the secure input unit 130 at a store of the terminal device 100. become.
  • connection unit to the secure input unit 130 it is desirable that the purchaser who has purchased the terminal device 100 does not easily access the connection unit to the secure input unit 130.
  • the connection unit to the secure input unit 130 there is a method in which after input of confidential information through the secure input unit 130 is completed, an external pin or a dedicated connector for the input can be removed. As a result, confidential information on the secure LSI 120 cannot be falsified.
  • the secure input unit 130 may have a function of authenticating the input device 42 and a decryption function.
  • the purchaser of the terminal device 100 falsifies the confidential information on the secure LSI 120 by managing the authentication information and the decryption information by a reliable person such as the manufacturer or seller of the terminal device 100. become unable.
  • FIG. 4 is a block diagram illustrating a hardware example of the secure input unit.
  • the secure input unit 130 illustrated in FIG. 4 includes an input register 131, a shift register 132, an authentication information comparison unit 133, and a confidential information decryption unit 134.
  • the secure input unit 130 stores an authentication key 135 and a decryption key 136.
  • the authentication key 135 and the decryption key 136 are both fixed values, and are stored in advance in a nonvolatile storage device (not shown) such as a read-only register.
  • the authentication key 135 can be read only from the authentication information comparison unit 133, and the decryption key 136 can be read only from the confidential information decryption unit 134.
  • the input signal Sin and the clock signal CK are input from the input device 42 to the secure input unit 130.
  • the input signal Sin is input to the input register 131.
  • the clock signal CK is input to each unit of the input register 131, the shift register 132, the authentication information comparison unit 133, and the confidential information decryption unit 134. Note that the clock signal CK may be generated inside the terminal device 100, for example.
  • the input signal Sin is output to the shift register 132 and the confidential information decryption unit 134 via the input register 131.
  • the shift register 132 holds the value of a predetermined number of bits by shifting the value of the input signal Sin from the input register 131 at every clock timing. In the example of FIG. 4, the shift register 132 holds a 5-bit value.
  • the authentication information comparison unit 133 is a circuit that performs authentication processing
  • the confidential information decryption unit 134 is a circuit that performs decryption processing.
  • the authentication information comparison unit 133 outputs an enable signal EN to the confidential information decryption unit 134.
  • the enable signal EN is a signal for instructing whether or not the input signal Sin from the input register 131 can be input to the confidential information decryption unit 134. In the initial state, the value of the enable signal EN is “0”, and at this time, input of the input information Sin to the confidential information decryption unit 134 is prohibited.
  • the authentication information comparison unit 133 has a comparator and a counter.
  • the authentication information comparison unit 133 compares the value held in the shift register 132 with the value of the authentication key 135 for each bit and determines whether they match.
  • the number of bits of the authentication key 135 is the same as the number of bits of the signal held by the shift register 132, and is “5” in the example of FIG.
  • the authentication information comparison unit 133 changes the enable signal EN from “0” to “1” and counts the clock signal CK. Start operation. The initial value of the count number is “0”, and the authentication information comparison unit 133 keeps the enable signal EN “1” until the count number reaches a certain value. Then, when the count number reaches a certain value, the authentication information comparison unit 133 changes the enable signal EN from “1” to “0” and resets the count number. Thereby, the input of the input signal Sin to the confidential information decryption unit 134 is permitted only for a certain time.
  • the confidential information decryption unit 134 can hold the value of the input signal Sin input from the input register 131 during a period in which the enable signal EN is “1”.
  • the confidential information decryption unit 134 holds the input signal Sin by using, for example, a shift register.
  • the confidential information decryption unit 134 decrypts the held signal using the decryption key 136 and outputs the decrypted signal to the sub-processor 121 via the bus 127.
  • Such a secure input unit 130 performs the following operation.
  • authentication information is included in the first 5 bits, and encrypted confidential information is included in the subsequent predetermined bits. If the authentication information comparison unit 133 determines that the authentication information included in the input signal Sin matches the authentication key 135, the authentication signal comparison unit 133 sets the enable signal EN to “1” and permits the input of the input information Sin to the confidential information decryption unit 134. To do. From this point, the confidential information decryption unit 134 receives and holds the encrypted confidential information.
  • the confidential information decryption unit 134 decrypts the stored information using the decryption key 136 and outputs the decrypted confidential information to the sub-processor 121.
  • the confidential information decrypted at this time includes, for example, a command for instructing to store or update information and key information to be stored or updated.
  • the sub-processor 121 stores the decrypted key information in a predetermined area of the secure ROM 124.
  • the signal input to the bus 127 in the secure LSI 120 is permitted only for a certain period only when the authentication information matching the authentication key 135 is input.
  • the input information is stored in the secure ROM 124 only when the input information is correctly decrypted by the decryption key 136.
  • the security of information input via the secure input unit 130 is strengthened.
  • FIG. 5 is a block diagram illustrating a configuration example of functions provided in the terminal device.
  • the terminal device 100 includes a distribution content playback unit 141, a broadcast content playback unit 142, a confidential information processing unit 150, and a confidential information storage unit 160.
  • the processing of the distribution content playback unit 141 is realized by the main processor 111 executing a predetermined application program (for example, a distribution content playback program).
  • the distribution content reproduction unit 141 controls reproduction processing of distribution content provided by the distribution center 31.
  • the distribution content playback unit 141 receives the encrypted content from the distribution center 31.
  • the received encrypted content is stored in the flash memory 102 or the RAM 101.
  • the distribution content playback unit 141 requests the confidential information processing unit 150 to acquire a content key for decrypting the encrypted content, and thereafter mediates data transfer between the confidential information processing unit 150 and the distribution center 31. To do.
  • the confidential information processing unit 150 receives the encrypted content key from the distribution center 31 and causes the cryptographic operation circuit 122 to decrypt the received encrypted content key
  • the distributed content reproduction unit 141 confidentially decrypts the decrypted content key.
  • the distribution content reproduction unit 141 decrypts the encrypted content using the content key received from the confidential information processing unit 150, supplies the decrypted distribution content to the decompression circuit 112, and reproduces and outputs the distribution content.
  • the processing of the broadcast content playback unit 142 is realized by the main processor 111 executing a predetermined application program (for example, a broadcast content playback program).
  • the broadcast content playback unit 142 controls playback processing of broadcast content received from the broadcast station 32 via broadcast waves.
  • the broadcast content reproduction unit 142 requests the confidential information processing unit 150 to decrypt the encrypted work key and the encrypted content key received via the broadcast wave.
  • the encrypted work key is a work key encrypted by a master key stored in the secure LSI 120
  • the encrypted content key is a content key for decrypting broadcast content encrypted by the work key. Both the work key and the content key are regularly updated.
  • the broadcast content playback unit 142 receives the decrypted content key from the confidential information processing unit 150, and decrypts the encrypted content received via the broadcast wave using the received content key.
  • the broadcast content reproduction unit 142 supplies the decoded broadcast content to the decompression circuit 112, and reproduces and outputs the broadcast content.
  • the processing of the confidential information processing unit 150 is realized by the sub processor 121 executing a dedicated program for the secure LSI 120.
  • the confidential information processing unit 150 executes acquisition of key information used for content playback and decryption control of the key information.
  • the confidential information processing unit 150 causes the cryptographic operation circuit 122 to perform encryption and decryption of information, and causes the random number generation circuit 126 to generate a random number.
  • the confidential information storage unit 160 is configured by a storage area of the secure ROM 124.
  • the confidential information storage unit 160 stores at least a secret key of the terminal device 100 and a master key of the terminal device 100 as confidential information that needs to be concealed.
  • the secret key is used when reproducing the distribution content, and the master key is used when reproducing the broadcast content.
  • the secret key and the master key are input from the secure input unit 130 and stored in the confidential information storage unit 160.
  • the secret key and the master key may be common key information.
  • the confidential information storage unit 160 stores the identification information of the terminal device 100 and the public key of the distribution center 31.
  • the identification information and the public key may be input from the secure input unit 130, but may not be necessarily confidential information, and may be input from the external input / output unit 125.
  • the terminal device 100 has identification information such as an identification number.
  • the identification information is stored in advance in the secure ROM 124 on the secure LSI 120.
  • this identification information is not necessarily information that needs to be concealed.
  • the identification information may be, for example, a user ID that identifies the user.
  • the secure ROM 124 on the secure LSI 120 stores the secret key of the terminal device 100 and the public key of the distribution center 31.
  • the secret key of the terminal device 100 is information that needs to be concealed and cannot be accessed from the main processor 111.
  • the public key of the distribution center 31 is not information that needs to be concealed, and may be received from the outside of the terminal device 100 and stored in the secure LSI 120 from the external input / output unit 125, for example.
  • the distribution center 31 manages the secret key of the distribution center 31 and the public key of the terminal device 100.
  • the public key is prepared for each terminal device, and the distribution center 31 can determine the public key corresponding to the terminal device by receiving the identification information from the terminal device.
  • 6 to 7 are diagrams showing a sequence example of the distribution content reproduction process. 6 to 7, the processing of the main processor 111 corresponds to the processing of the distribution content playback unit 141 of FIG. 5, and the processing of the sub processor 121 among the processing of the secure LSI 120 is the processing of the confidential information processing unit 150 of FIG. Corresponds to processing.
  • the reproduction processing of the distribution content is requested by a user input operation. It is assumed that the distributed content is stored in, for example, the flash memory 102 in a state encrypted with the content key.
  • the main processor 111 requests the sub-processor 121 of the secure LSI 120 to acquire a content key in response to a reproduction process request operation (step S11). At this time, the main processor 111 also notifies the sub processor 121 of the content ID for identifying the content to be reproduced.
  • the main processor 111 transfers the information output from the sub processor 121 to the distribution center 31 until the content key is output from the sub processor 121 and the end of the process is notified. The process of supplying the information received from the distribution center 31 to the sub-processor 121 is repeated.
  • the sub-processor 121 causes the random number generation circuit 126 to generate a random number A (step S12).
  • the sub processor 121 reads the identification information of the terminal device 100 from the secure ROM 124 (step S13). Note that the processing order of these steps S12 and S13 may be reversed.
  • the sub processor 121 outputs the generated random number A and the read identification information to the main processor 111 (step S14).
  • the main processor 111 transmits the input random number A and identification information to the distribution center 31.
  • the distribution center 31 receives the random number A and the identification information of the terminal device 100 (step S15).
  • the distribution center 31 encrypts the received random number A with the secret key of the distribution center 31 (step S16).
  • the distribution center 31 generates a random number B (step S17).
  • the distribution center 31 searches for the public key of the terminal device 100 based on the received identification information. Then, the distribution center 31 randomly generates a session key.
  • the session key is key information used as a common key with the terminal device 100.
  • the distribution center 31 encrypts the generated session key with the public key of the searched terminal device 100 (step S18). Note that the processing order of these steps S16 to S18 can be changed.
  • the distribution center 31 transmits to the terminal device 100 information including the encrypted random number A, the generated random number B, and the encrypted session key.
  • the main processor 111 receives the information transmitted by the distribution center 31 (step S19).
  • the main processor 111 outputs the received information to the secure LSI 120 (step S20).
  • the sub-processor 121 causes the cryptographic operation circuit 122 to decrypt the input encrypted random number A with the public key of the distribution center 31.
  • the sub-processor 121 confirms that the authentication with the distribution center 31 has succeeded because the random number A has been decrypted (step S21).
  • the sub processor 121 causes the cryptographic operation circuit 122 to encrypt the input random number B using the secret key of the terminal device 100 (step S22).
  • the sub processor 121 causes the cryptographic operation circuit 122 to decrypt the input session key using the secret key of the terminal device 100 (step S23).
  • the sub processor 121 outputs the encrypted random number B to the main processor 111 for transmission to the distribution center 31 (step S24).
  • the main processor 111 transmits the input random number B to the distribution center 31.
  • Distribution center 31 receives random number B (step S25).
  • the distribution center 31 decrypts the received random number B with the public key of the terminal device 100.
  • the distribution center 31 confirms that the authentication with the terminal device 100 has succeeded because the random number B has been decrypted (step S31).
  • the distribution center 31 encrypts the notification information for notifying the success of the mutual authentication with the session key (step S32).
  • the distribution center 31 transmits the encrypted notification information to the terminal device 100.
  • the main processor 111 receives the encrypted notification information (step S33).
  • the main processor 111 outputs the encrypted notification information to the secure LSI 120 (step S34).
  • the sub-processor 121 causes the cryptographic operation circuit 122 to decrypt the input notification information using the session key decrypted in step S23, and confirms that mutual authentication with the distribution center 31 has been successful (step S35). Note that the decryption of the session key (step S23) may be performed at an arbitrary timing from the execution of step S21 to immediately before the execution of step S35.
  • the sub-processor 121 outputs the content ID to the main processor 111 for transmission to the distribution center 31 (step S36).
  • the main processor 111 transmits the input content ID to the distribution center 31 (step S37).
  • the transmission of the content ID from the sub processor 121 to the distribution center 31 may be performed at the time of steps S14 and S15, for example.
  • the distribution center 31 receives the content ID and searches for a content key corresponding to the received content ID.
  • the distribution center 31 encrypts the retrieved content key with the session key (step S38).
  • the distribution center 31 transmits the encrypted content key to the terminal device 100.
  • the main processor 111 receives the encrypted content key (step S39).
  • the main processor 111 outputs the encrypted content key to the secure LSI 120 (step S40).
  • the sub-processor 121 causes the cryptographic operation circuit 122 to decrypt the input content key using the session key decrypted in step S23 (step S41).
  • the sub processor 121 outputs the decrypted content key to the main processor 111 and notifies the end of the content key acquisition process (step S42).
  • the main processor 111 decrypts the encrypted content with the content key (step S43).
  • the main processor 111 outputs the decrypted content to the decompression circuit 112 for reproduction output (step S44).
  • the terminal device 100 uses the secret key stored in the storage area of the secure LSI 120 when performing mutual authentication with the distribution center 31. Further, the terminal device 100 executes decryption of encrypted data used for mutual authentication on the secure LSI 120. Then, the terminal device 100 executes the decryption of the content key using the session key obtained by the mutual authentication on the secure LSI 120. As a result, it is possible to prevent the secret key and the session key from being peeped or tampered with from the outside, and it is possible to ensure security when acquiring the content key.
  • the broadcast content is transmitted from the broadcast station 32 via a broadcast wave in a state encrypted with the content key. Further, the content key is transmitted via a broadcast wave together with the encrypted broadcast content in a state encrypted with the work key.
  • the content key is updated periodically, for example, once every few seconds.
  • the work key is transmitted via a broadcast wave in a state encrypted with an individual master key for each user.
  • the work key is updated at a longer cycle than the content key. For example, when a broadcast content viewing service is contracted on a monthly basis, the work key is also updated once a month when the contract is updated.
  • the master key is stored in the secure ROM 124 of the secure LSI 120.
  • the master key is information that needs to be concealed and cannot be accessed from the main processor 111.
  • FIG. 8 is a diagram showing a sequence example of work key acquisition processing.
  • an update number is added to the encrypted work key transmitted from the broadcasting station 32.
  • the update number is updated by the broadcasting station 32 together with the encrypted work key.
  • the broadcast station 32 manages the identification information of the terminal device 100 in association with the master key.
  • the identification information of the terminal device 100 is information corresponding to the user ID.
  • the master key is a common key.
  • the master key may be a secret key of the terminal device 100.
  • the broadcast station 32 manages the public key corresponding to the master key of the terminal device 100 in association with the identification information of the terminal device 100.
  • the main processor 111 confirms that the encrypted work key has been updated.
  • the work key is updated once a month, for example.
  • the flash memory 102 of the terminal device 100 stores the latest update number among the previously received ones.
  • the main processor 111 stores the update number added to the encryption work key and the flash memory 102.
  • the update number is compared to determine whether or not there is an update (step S51). If the encrypted work key has been updated by the broadcast station 32, the main processor 111 outputs the updated encrypted work key to the secure LSI 120 (step S52). Further, the main processor 111 rewrites the update number stored in the flash memory 102 with the received update number.
  • the sub-processor 121 causes the cryptographic operation circuit 122 to decrypt the input encrypted work key using the master key (step S53).
  • the sub processor 121 stores the decrypted work key in the recording medium of the secure LSI 120 such as the secure ROM 124 (step S54).
  • FIG. 9 is a diagram showing a sequence example of broadcast content reproduction processing.
  • an update number is added to the encrypted content key transmitted from the broadcasting station 32.
  • the update number is updated by the broadcast station 32 together with the encrypted content key.
  • the main processor 111 periodically confirms that the encrypted content key has been updated. For example, the content key is updated once every few seconds, and is updated by the following method every time content update information is received.
  • the flash memory 102 of the terminal device 100 stores the latest update number among those previously received, and the main processor 111 includes the update number added to the encrypted content key included in the content update information, By comparing the update number stored in the flash memory 102, it is determined whether or not there is an update (step S61). If the encrypted content key has been updated, the main processor 111 outputs the updated encrypted content key to the secure LSI 120 (step S62). Further, the main processor 111 rewrites the update number stored in the flash memory 102 with the received update number.
  • the sub-processor 121 causes the cryptographic operation circuit 122 to decrypt the encrypted content key using the work key stored in step S54 (step S63).
  • the sub processor 121 outputs the decrypted content key to the main processor 111 (step S64).
  • the main processor 111 decrypts the encrypted broadcast content supplied from the television receiver 106 with the input content key (step S65).
  • the main processor 111 outputs the decoded broadcast content to the decompression circuit 112 as in step S42 (step S66).
  • the terminal device 100 decrypts the encrypted work key on the secure LSI 120 using the master key stored in the recording device on the secure LSI 120. Further, the terminal device 100 decrypts the encrypted content key on the secure LSI 120 using the decrypted work key. Thereby, it is possible to prevent the master key and the work key from being tampered with or peeped from the outside, and to secure security when acquiring the content key.
  • a program executed by the sub processor 121 of the secure LSI 120 will be described.
  • the secure LSI 120 unlike the main processor 111, a dedicated program whose specifications are not disclosed is executed. Thereby, the risk that the sub processor 121 of the secure LSI 120 is hacked is reduced, and the security of processing in the secure LSI 120 is improved. For example, even if the code of a program executed by the sub processor 121 is leaked, the risk of the sub processor 121 being hacked is reduced because the analysis of the program is not easy.
  • the dedicated program is described using, for example, a dedicated instruction code as shown in FIG.
  • the dedicated instruction code is converted into an instruction code corresponding to the sub processor 121 using the conversion program.
  • a dedicated program and a conversion program are stored in the secure ROM 124.
  • the dedicated instruction code constituting the dedicated program to be executed is converted into an instruction code (for example, machine language) corresponding to the sub processor 121 by the conversion program.
  • the converted instruction code is executed by the sub processor 121.
  • FIG. 10 is a diagram showing an example of a list of dedicated instruction codes.
  • the instruction code list 180 is a list of dedicated instruction codes in the secure LSI 120.
  • the instruction code list 180 is stored in the secure ROM 124 on the secure LSI 120.
  • the decrypted instruction code list 180 is expanded on the secure RAM 123.
  • the instruction code list 180 has items of instructions and codes.
  • an instruction that can be executed by the sub-processor 121 is set.
  • a dedicated instruction code corresponding to the instruction item is set in binary.
  • a register and an address are specified for the code. In the following description, the designated register number “x” and the designated address are described as “a”.
  • dition is an instruction for adding the contents of the designated register x and the contents of the designated address a and storing the addition result in the register x.
  • the instruction code corresponding to “addition” is 00000001.
  • “Subtraction” is an instruction for subtracting the contents of the designated address a from the contents of the designated register x and storing the subtraction result in the register x.
  • the instruction code corresponding to “subtraction” is 00000010.
  • Load is an instruction for storing the contents of the designated address a in the designated register x.
  • the instruction code corresponding to “load” is 00000011.
  • Store is an instruction to store the contents of the designated register x at the designated address a.
  • the instruction code corresponding to “Store” is 00000100.
  • “Compare” is an instruction for comparing the contents of the designated register x with the contents of the designated address a and storing the comparison result in a predetermined register such as a status register. For example, when the contents of the designated register x match the contents of the designated address a, information indicating “match” is stored in the predetermined register.
  • the instruction code corresponding to “comparison” is 00000101.
  • Branch 1 is an instruction for branching the instruction to the designated address a when the comparison result stored in the predetermined register in the “comparison” instruction is information indicating “match”.
  • the instruction code corresponding to “branch 1” is 00000110.
  • Branch 2 is an instruction that unconditionally branches an instruction to a designated address a.
  • the instruction code corresponding to “branch 2” is 00000111.
  • “Setting” is an instruction to store designated data d in a designated register x.
  • the instruction code corresponding to “setting” is 10000000.
  • “Addition 1” is an instruction to add the designated data d to the contents of the designated register x and store the addition result in the designated register x.
  • the instruction code corresponding to “addition 1” is 10000001.
  • “Subtraction 1” is an instruction for subtracting the designated data d from the contents of the designated register x and storing the subtraction result in the designated register x.
  • the instruction code corresponding to “subtraction 1” is 10000010.
  • Encryption 1 is an instruction for initializing a circuit for cryptographic processing in the cryptographic operation circuit 122.
  • the initialization of the cryptographic processing circuit includes, for example, setting of an encryption method (for example, AES (Advanced Encryption Standard) encryption, DES (Data Encryption Standard) encryption), a key, and the like.
  • the instruction code corresponding to “encryption 1” is 10010000.
  • Encryption 2 is an instruction to encrypt the contents of the designated register x and store the encrypted contents at the designated address a.
  • the instruction code corresponding to “encryption 2” is 1000001.
  • “Decryption 1” is an instruction for initializing a circuit for decryption processing in the cryptographic operation circuit 122.
  • the instruction code corresponding to “Decryption 1” is 10010010.
  • “Decryption 2” is an instruction to decrypt the contents of the designated register x and store the decrypted contents at the designated address a.
  • the instruction code corresponding to “Decryption 2” is 10010011.
  • Random number generation 1 is an instruction to initialize the random number generation circuit 126.
  • the initialization of the random number generation circuit 126 includes setting an initial value used for random number generation, for example.
  • the instruction code corresponding to “random number generation 1” is 10010100.
  • Random number generation 2 is an instruction to generate a random number, set the generated random number in the designated register x, and store the contents of the set register x in the designated address a.
  • the instruction code corresponding to “random number generation 2” is 10010101.
  • Output 0 is an instruction to initialize the output circuit in the external input / output unit 125.
  • the initialization of the output circuit includes a setting for enabling the output circuit of the external input / output unit 125, for example.
  • the instruction code corresponding to “output 0” is 10010110.
  • the instruction code corresponding to “Output 1” is 10010111.
  • Output 2 is an instruction to store in the designated register x information indicating whether or not the data output by “Output 1” has been read out by the main processor 111.
  • the instruction code corresponding to “Output 2” is 10011000.
  • “Input 0” is an instruction to initialize an input circuit in the external input / output unit 125.
  • the instruction code corresponding to “input 0” is 10011001.
  • “Input 1” is an instruction for sequentially inputting data corresponding to the contents of the designated register x from the designated address a to the input circuit.
  • the instruction code corresponding to “input 1” is 10011010.
  • “Input 2” is an instruction for storing in the designated register x information indicating whether or not the data input by “Input 1” has been read by the sub-processor 121.
  • the instruction code corresponding to “input 2” is 10011011.
  • the dedicated instruction code constituting the dedicated program is converted into an instruction code corresponding to the sub processor 121 by the conversion program referring to the instruction code list 180. Then, the sub-processor 121 executes the converted instruction code.
  • the sub-processor 121 of the secure LSI 120 executes the dedicated program, so that the processing in the secure LSI 120 and the security of stored information can be improved.
  • the terminal device 100 may be able to replace the dedicated program as follows.
  • the secure LSI 120 can secure the security by replacing the instruction code list 180 and the dedicated program with different contents.
  • FIG. 11 is a diagram illustrating a sequence example of instruction code list replacement processing.
  • FIG. 11 illustrates a sequence example in which the terminal device 100 updates the instruction code list 180 and the dedicated program when the instruction code list 180 is leaked.
  • instruction code list and the instruction program are stored in the secure ROM 124 in an encrypted state, decrypted with a predetermined key at the time of execution, and expanded in the secure RAM 123.
  • the processing of the sub processor 121 in the description of FIG. 11 is realized by the sub processor 121 according to a predetermined program for program replacement, for example.
  • the programs to be replaced by this replacement program include the replacement program itself.
  • the processing of the main processor 111 in the description of FIG. 11 is executed according to a program for requesting the sub-processor 121 for program replacement.
  • the main processor 111 monitors the updated instruction code list transmitted from the broadcast station 32 (step S71).
  • the broadcasting station 32 transmits the updated encrypted instruction code list (hereinafter referred to as an encrypted instruction code list) to the terminal device 100
  • the main processor 111 receives the encrypted instruction code list (step S72).
  • the main processor 111 outputs the received encrypted instruction code list to the secure LSI 120 (step S73).
  • the sub-processor 121 updates the encrypted instruction code list stored in the secure ROM 124 with the input encrypted instruction code list (step S74).
  • the sub-processor 121 causes the cryptographic operation circuit 122 to decrypt the updated encrypted instruction code list.
  • the key for decryption is stored in advance in the secure ROM 124 via the secure input unit 130 (step S75).
  • the sub processor 121 expands the decoded instruction code list after update in the secure RAM 123 (step S76).
  • the sub processor 121 outputs to the main processor 111 that the updated instruction code list has been expanded (step S77).
  • the main processor 111 monitors the updated dedicated program transmitted from the broadcast station 32.
  • the updated dedicated program is composed of dedicated instruction codes included in the updated instruction code list (step S78).
  • the broadcast station 32 transmits the encrypted updated dedicated program (hereinafter referred to as an encrypted dedicated program) to the terminal device 100, and the main processor 111 receives the encrypted dedicated program (step S79).
  • the main processor 111 outputs the received encryption dedicated program to the secure LSI 120 (step S80).
  • the sub-processor 121 updates the encryption-dedicated program stored in the secure ROM 124 with the updated encryption-dedicated program that has been input (step S81).
  • the sub-processor 121 causes the cryptographic operation circuit 122 to decrypt the updated updated encryption dedicated program.
  • the key for decryption is stored in advance in the secure ROM 124 via the secure input unit 130 (step S82).
  • the sub processor 121 expands the decrypted updated dedicated program in the secure RAM 123 (step S83).
  • confidential information such as a master key is stored via the secure input unit 130 that can access the secure LSI 120.
  • the confidential information is stored in the secure ROM 124, the possibility of being peeped by a third party is reduced because the system LSI 110 that may be accessed from the outside is not passed. Therefore, the terminal device 100 can store confidential information in the secure RAM 123 more safely.
  • the confidential information input process via the secure input unit 130 can be performed at any timing after the secure LSI 120 is manufactured. As a result, it becomes possible to store in the secure ROM 124 appropriate confidential information suitable for the form of service provided for the terminal device 100 sold, and the versatility of the terminal device 100 is improved.
  • the secure LSI 120 acquires encrypted data such as an encrypted content key via the external input / output unit 125 that can input / output data to / from the system LSI 110. Then, the secure LSI 120 decrypts the acquired encrypted data using a secret key stored in the secure ROM 124, and outputs the decrypted data to the system LSI 110. As a result, the terminal device 100 can decrypt the encrypted data in the secure LSI 120 in which confidential information such as a secret key is not known to the outside, so that the encrypted data can be decrypted more safely.
  • the terminal device 100 acquires the content key from the distribution center 31, the terminal device 100 generates a random number in the secure LSI 120. Next, the terminal device 100 performs mutual authentication with the distribution center 31 using the generated random number and the identification information and secret key stored in advance in the secure ROM 124. If the mutual authentication is successful, the terminal device 100 can acquire the content key from the distribution center 31. Thereby, the terminal device 100 can perform mutual authentication with the distribution center 31 without falsifying or peeping at confidential information.
  • the terminal device 100 uses a dedicated program that operates only on the secure LSI 120. This makes it difficult to analyze the dedicated program by looking into the dedicated instruction code.
  • the terminal device 100 converts the dedicated instruction code constituting the dedicated program into an instruction code corresponding to the sub processor 121 using the conversion program and the instruction code list 180 in the secure LSI 120. Then, the sub processor 121 executes the converted instruction code. As a result, the dedicated program can be executed on the secure LSI 120 without depending on the instruction code corresponding to the sub processor 121 on the secure input unit 130.
  • the instruction code list 180 and the conversion program stored on the secure ROM 124 can be replaced. As a result, even if the contents of the instruction code list 180 are leaked for some reason, analysis of the contents of the dedicated program can be prevented.
  • the terminal device 100 there is a case where the secure ROM 124 has a small capacity and a lot of confidential information cannot be stored on the secure LSI 120.
  • the terminal device 100 may store the encrypted confidential information in a storage device (for example, the flash memory 102) outside the secure LSI 120. 12 to 13, a method for inputting / outputting confidential information to / from the RAM 101 or the flash memory 102 which is a storage device outside the secure LSI 120 will be described.
  • the process of storing confidential information will be described using an example of playing broadcast content.
  • the master key is a common key and is stored in the secure ROM 124.
  • the processing of the sub processor 121 corresponds to the processing of the confidential information processing unit 150 of FIG. 5, and the processing of the main processor 111 corresponds to the processing of the broadcast content reproduction unit 142 of FIG. .
  • FIG. 12 is a flowchart showing an example of an external storage process for confidential information.
  • This external storage process includes, for example, a process of re-encrypting the work key decrypted in step S53 of FIG. 8 and storing it outside the secure LSI 120, or a re-encryption of the content key decrypted in step S63 of FIG.
  • the present invention can be applied to processing stored outside the secure LSI 120.
  • Step S91 The sub processor 121 calculates a hash value of confidential information.
  • Step S ⁇ b> 92 The sub processor 121 stores the calculated hash value in the secure ROM 124.
  • Step S93 The sub processor 121 causes the cryptographic operation circuit 122 to encrypt the confidential information using a master key or the like stored in the secure ROM 124.
  • the encrypted confidential information is referred to as encrypted confidential information.
  • Step S94 The sub processor 121 requests the main processor 111 to store the encrypted confidential information in a storage device (for example, the RAM 101 or the flash memory 102) outside the secure LSI 120.
  • a storage device for example, the RAM 101 or the flash memory 102
  • FIG. 13 is a flowchart showing an example of confidential information read processing.
  • FIG. 13 illustrates a case where a predetermined process is executed using confidential information stored in a storage area outside the secure LSI 120 by the process of FIG.
  • Step S101 The sub processor 121 requests the main processor 111 to output the encrypted confidential information from the storage area outside the secure LSI 120 to the secure LSI 120. Upon receiving the request, the main processor 111 outputs the encrypted confidential information stored in the external storage area to the sub processor 121 by the processing of FIG.
  • Step S102 The sub-processor 121 causes the cryptographic operation circuit 122 to decrypt the acquired encrypted confidential information using the master key.
  • Step S103 The sub processor 121 calculates a hash value of the decrypted confidential information.
  • Step S104 The sub processor 121 determines whether the calculated hash value matches the hash value stored in step S92. If the hash values match, the process proceeds to step S105. If the hash values do not match, the process proceeds to step S106.
  • Step S105 The sub-processor 121 executes a predetermined process using confidential information.
  • Step S106 The sub-processor 121 stops the process and outputs notification information for notifying the main processor 111 that, for example, the confidential information has been tampered with.
  • the terminal device 100 stores the hash value of the confidential information in the secure ROM 124 or the like when storing the confidential information in the storage device outside the secure LSI 120.
  • the hash value of the confidential information stored in the external storage area on the secure LSI 120 is calculated. If the calculated hash value matches the hash value stored on the secure ROM 124, it is determined that the confidential information has not been tampered with. Thereby, it is possible to confirm whether or not the confidential information stored in the storage device outside the secure LSI 120 has been tampered with.
  • the main processor 111 can improve the security when the distribution content or the broadcast content is decrypted using the content key.
  • a content processing program for example, a distributed content reproduction program or a broadcast content reproduction program
  • the terminal device 100 outputs content after acquiring the content key by the above method
  • a content processing program for example, a distributed content reproduction program or a broadcast content reproduction program
  • processes the content And may be tampered with.
  • FIG. 14 is a diagram showing an example of program code reconfiguration.
  • the encrypted content processing program 190 is stored in the flash memory 102.
  • the encrypted content processing program 190 is an encrypted content processing program 191 for the main processor 111 to process content.
  • the encrypted content processing program 190 can be decrypted with a decryption key stored in the secure ROM 124 such as a master key.
  • the sub processor 121 reads the encrypted content processing program 190 from the flash memory 102 via the main processor 111, and causes the cryptographic operation circuit 122 to decrypt the read encrypted content processing program 190 with the decryption key.
  • the decrypted content processing program 191 includes code groups # 1, # 2, and # 3 that are instruction code groups. Each code group is arranged in the order of code groups # 1, # 2, and # 3.
  • the sub-processor 121 rearranges the code groups # 1, # 2, and # 3 of the content processing program 191 and expands them in the RAM 101 via the main processor 111. To do. Then, the sub processor 121 causes the main processor 111 to execute the developed content processing program 191. For example, at the time of the first execution, the content processing program 191a rearranged in the order of the code groups # 3, # 2, and # 1 is expanded in the RAM 101. At the time of the second execution, the content processing program 191b rearranged in the order of the code groups # 2, # 1, and # 3 is expanded in the RAM 101. Since the arrangement order of the code groups arranged in the RAM 101 is different, it becomes difficult for the hacker to analyze the code and hacking can be made difficult. Although the arrangement of the code group is different each time, the functions viewed from the outside of the code group are the same.
  • the sub-processor 121 rearranges the code groups # 1, # 2, and # 3 of the content processing program 191 and develops them in the RAM 101.
  • the order in which the instruction codes are arranged changes every time the content processing program 191 is executed, it becomes difficult for a third party to analyze the content processing program by peeping.
  • FIG. 15 is a diagram showing an example of mutual authentication with a program.
  • the encrypted content processing program 190 is decrypted by the secure LSI 120 into the content processing program 191 including the instruction codes of the code groups # 1, # 2, and # 3 as in FIG. 14 (step S111). ).
  • the sub-processor 121 rearranges the code groups # 1, # 2, # 3 and the constants # 1, # 2.
  • a content processing program 191c rearranged in the order of code group # 3, # 2, constant # 1, code group # 1, constant # 2 is generated.
  • the constants # 1 and # 2 are randomly generated by the random number generation circuit 126 of the secure LSI 120 and used for mutual authentication between the sub processor 121 and the content processing program 191c.
  • the constants # 1 and # 2 are also stored in a storage area (for example, secure RAM 123, secure ROM 124, etc.) on the secure LSI 120.
  • the sub processor 121 causes the main processor 111 to expand the rearranged content processing program 191c in the RAM 101 (step S112).
  • the sub processor 121 After the content processing program 191c is executed by the main processor 111, the sub processor 121 generates a random number C and outputs the generated random number C to the main processor 111 (step S113). The main processor 111 outputs the sum of the received random number C and the constant # 1 included in the content processing program 191c to the sub processor 121 (step S114).
  • the sub processor 121 authenticates the content processing program 191c. Is determined to be successful. If the authentication of the content processing program 191c is successful, the sub-processor 121 outputs the sum of the received value and the constant # 2 to the content processing program 191c (step S115). When the sum of the value output by the main processor 111 in step S114 and the constant # 2 included in the content processing program 191c matches the value input from the sub processor 121, the main processor 111 authenticates the sub processor 121. Judge as successful. When the mutual authentication is normally completed as described above, the main processor 111 executes the content processing program 191c.
  • the sub processor 121 rearranges the code included in the content processing program 191 and the constants stored in advance in the storage area on the secure LSI 120.
  • the program 191c is expanded in the RAM 101. Then, by performing mutual authentication using constants included in the developed content processing program 191c, it is possible to determine whether the content processing program 191c has been tampered with. As a result, the possibility of leakage of confidential information such as a content key handled by the content processing program 191 can be reduced.
  • the information processing of the first embodiment can be realized by causing the information processing apparatus 1 to execute a program, and the information processing of the second embodiment executes a program to the terminal device 100.
  • a program can be recorded on a computer-readable recording medium.
  • the recording medium for example, a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like can be used.
  • Magnetic disks include FD (Floppy Disk) and HDD.
  • Optical discs include CD (Compact Disc), CD-R (Recordable) / RW (Rewritable), DVD (Digital Versatile Disc), and DVD-R / RW.
  • the program can be stored in a storage device of another computer and distributed through the network 40.
  • the computer stores a program received from another computer in a storage device (for example, the flash memory 102), reads the program from the storage device, and executes the program.
  • a program received from another computer via the network 40 may be directly executed.
  • at least a part of the information processing described above can be realized by an electronic circuit such as a DSP, an ASIC, or a PLD (Programmable Logic Device).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

 鍵の漏洩が防止された汎用性の高い情報処理装置および半導体装置を提供する。 情報処理装置(1)は、セキュアモジュール(10)と、セキュアモジュール(10)の外部に設けられ、通信路(2)を通じて暗号化データ(4)をセキュアモジュール(10)に入力する制御回路(20)とを備える。セキュアモジュール(10)は、メモリ(12)、制御回路(13)および入力部(11)を有する。メモリ(12)は、制御回路(20)からの読み書きが不可能なメモリであって、暗号化データ(4)の復号に用いられる鍵(6)を格納する。制御回路(13)は、鍵(6)を用いて暗号化データ(4)を復号し、通信路(2)を通じて制御回路(20)に出力する。入力部(11)は、通信路(2)とは分離された通信路(3)を通じて入力された鍵(6)を、メモリ(12)に格納する。

Description

情報処理装置および半導体装置
 本発明は、情報処理装置および半導体装置に関する。
 OS(Operating System)等のソフトウェアやインタフェースには、仕様が公開されているものと、そうでないものとがある。仕様が公開されている場合、その仕様に対応するソフトウェアの開発が促進され、結果として多くの良質なソフトウェアがユーザに提供されるようになる。しかし、このようなソフトウェアは、仕様が公開されているため、悪意ある第三者による改ざん、覗き見、成りすまし等の被害を受けやすい。
 近年、このような被害を防止するための技術の1つとして、TRM(Tamper Resistant Module)構造を有する半導体が普及している。TRM構造とは、集積回路等の半導体において、内部に格納されている情報を外部から参照することができないようにした構造である。例えば、集積回路の内部に強固で粘着力の高いコーティングを施し、施したコーティングがはがされたとき内部の回路が破壊される等の構造になっている。これにより、半導体の内部の情報についての覗き見や改ざんを物理的に防止できる。このようなTRM構造を有する半導体は、セキュアモジュールまたはセキュアLSI(Large Scale Integration)等と呼ばれることがある。
 なお、オープンアーキテクチャを有する情報処理装置の安全性を高めるための他の技術としては、次のようなものがある。例えば、セキュアモジュールが、直接アクセスによりメインメモリに格納されたセキュアソフトウェアのコード等を読み出し、読み出したコード等と予め格納された情報との比較結果に基づいてセキュアソフトウェアの改ざんをチェックするという技術がある。また、例えば、セキュアモジュールが、鍵を用いて暗号化処理を解除する解除手段に所定の情報を供給し、その返答を参照して解除手段が正当と判定された場合に解除手段に鍵を供給する一方、正当でない場合に鍵の供給を停止する技術がある。
特開2004-96666号公報 特開2004-129227号公報 特開2003-198527号公報
 ところで、秘匿すべきデータをコンピュータ間で受け渡す方法としては、そのデータを暗号化した状態で流通させる方法が一般的である。この方法では、所定の鍵を用いて暗号化データを復号することで、秘匿されたデータが読み取り可能になる。
 しかしながら、上記のように仕様が公開されたソフトウェアやインタフェースを用いた環境下で、暗号化データの復号に用いる鍵が取得されたり、あるいは記憶されたりすると、ソフトウェアの改ざん等によってその鍵が漏洩する危険性がある。一方、鍵の取得や記憶等、鍵を取り扱う一連の処理をセキュアモジュールが行う場合には、ソフトウェア開発の自由度が低下し、装置の汎用性が低下する。また、予め決められた鍵しか使用できなくなり、この点でも装置の汎用性が低下する。
 一側面では、本発明は、鍵の漏洩が防止された汎用性の高い情報処理装置および半導体装置を提供することを目的とする。
 一側面では、次のような情報処理装置が提供される。この情報処理装置は、セキュアモジュールと、セキュアモジュールの外部に設けられ、第1の通信路を通じて暗号化データをセキュアモジュールに入力する第1の制御回路とを備える。セキュアモジュールは、メモリ、第2の制御回路および入力部を有する。メモリは、第1の制御回路からの読み書きが不可能なメモリであって、暗号化データの復号に用いられる鍵が格納される。第2の制御回路は、鍵を用いて暗号化データを復号し、第1の通信路を通じて第1の制御回路に出力する。入力部は、第1の通信路とは分離された第2の通信路を通じて入力された鍵を、メモリに格納する。
 一側面では、鍵の漏洩が防止された汎用性の高い情報処理装置および半導体装置を提供できる。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の情報処理装置について示す図である。 第2の実施の形態の情報処理システムについて示す図である。 端末装置のハードウェア例について示すブロック図である。 セキュア入力部のハードウェア例について示すブロック図である。 端末装置が備える機能の構成例について示すブロック図である。 配信コンテンツの再生処理のシーケンス例について示す図である。 配信コンテンツの再生処理のシーケンス例について示す図(続き)である。 ワーク鍵取得処理のシーケンス例について示す図である。 放送コンテンツ再生処理のシーケンス例について示す図である。 専用命令コードのリストの例について示す図である。 命令コードリストの置換え処理のシーケンス例について示す図である。 機密情報の外部保存処理の例について示すフローチャートである。 機密情報の読み出し処理の例について示すフローチャートである。 プログラムコードの再構成の例について示す図である。 プログラムとの相互認証の例について示す図である。
 以下、本実施の形態を図面を参照して説明する。
 [第1の実施の形態]
 図1は、第1の実施の形態の情報処理装置について示す図である。情報処理装置1は、暗号化されたデータを、鍵を用いて復号する機能を有するコンピュータである。情報処理装置1は、例えば、タブレット型、ノートブック型、デスクトップ型等のPC(Personal Computer)でもよいし、携帯電話機能を備えた携帯型の情報端末装置でもよい。
 情報処理装置1は、セキュアモジュール10と、このセキュアモジュール10の外部に設けられた制御回路20(第1の制御回路)とを有する。セキュアモジュール10および制御回路20は、例えば、同一基板上に実装された半導体装置として実現される。また、セキュアモジュール10には通信路2(第1の通信路)と通信路3(第2の通信路)とが設けられ、これらのうち通信路2が、制御回路20とセキュアモジュール10との間のデータ入出力に利用される。
 制御回路20は、例えば、情報処理装置1全体を制御する回路であり、CPU(Central Processing Unit)等のプロセッサとして構成される。この場合、制御回路20は、ソフトウェア構造あるいはインタフェース等の仕様が公開されたOSを実行し、更に、そのOSの仕様に対応するアプリケーションプログラムを実行する。実行されるアプリケーションプログラムは、公開されたOSの仕様に従って自由に開発可能なものとなる。これにより、情報処理装置1の汎用性が向上する。
 制御回路20は、暗号化されたデータ(以下、暗号化データ4とする)を、通信路2を介してセキュアモジュール10に入力し、また、復号されたデータ(以下、復号化データ5とする)を、通信路2を介してセキュアモジュール10から受信する。制御回路20によるこれらの処理は、例えば、制御回路20が上記のアプリケーションプログラムを実行することで実現される。
 制御回路20は、例えば、暗号化データ4を、制御回路20に接続された図示しない記憶装置から読み込んで、セキュアモジュール10に入力する。あるいは、制御回路20は、情報処理装置1の外部に存在する送信装置から暗号化データ4を受信して、セキュアモジュール10に入力してもよい。
 セキュアモジュール10は、TRM構造などにより、外部からの覗き見やデータ改ざんを防止する機能を有するハードウェアである。セキュアモジュール10は、入力部11、メモリ12および制御回路13(第2の制御回路)を有する。
 メモリ12は、セキュアモジュール10の外部の制御回路20から読み書きが不可能な不揮発性記憶装置である。例えば、制御回路20は、予め決められたコマンドのみを用いて、セキュアモジュール10と通信することができる。この場合、制御回路20がメモリ12からのデータ読み出しやメモリ12へのデータ書き込みを要求するためのコマンドが用意されないことで、制御回路20からのメモリ12の読み書きが禁止される。
 メモリ12は、セキュアモジュール10で取り扱われる機密情報等、セキュアモジュール10の処理で使用される各種のデータを記憶する。メモリ12は、機密情報の一例として、暗号化データ4の復号処理に用いられる鍵6を記憶する。
 制御回路13は、制御回路20から通信路2を介して入力された暗号化データ4を、メモリ12に格納された鍵6を用いて復号する。制御回路13は、復号した復号化データ5を、通信路2を介して制御回路20へ出力する。ここで、鍵6の記憶とその鍵6を用いた復号処理とがセキュアモジュール10内で行われることで、鍵6が制御回路20に読み出されて情報処理装置1の外部に漏洩する確率が低くなり、鍵6の安全性が向上する。
 なお、制御回路13は、例えば、CPUやDSP(Digital Signal Processor)等のプロセッサや、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のその他の電子回路を用いて実現される。また、制御回路13は、プロセッサと復号回路等、複数の電子回路を用いて実現されてもよい。また、制御回路13がプロセッサを備える場合、例えば、そのプロセッサがセキュアモジュール10上でのみ実行可能な専用プログラムを実行するようにすることで、制御回路13の処理手順が改ざんされて鍵6が漏洩する確率を低下させることができる。
 入力部11には、通信路3が接続されている。通信路3は、セキュアモジュール10に対して機密情報を入力するための経路であり、入力部11は、通信路3を介して入力された機密情報をメモリ12に格納する。通信路3から入力部11を介してメモリ12に入力される機密情報には、鍵6が含まれる。
 通信路3は、制御回路20とセキュアモジュール10とを接続する通信路2とは分離して設けられている。これにより、入力部11は、改ざんされる可能性のある制御回路20の処理によらずに、鍵6を含む機密情報をメモリ12へ入力できる。したがって、少なくともメモリ12の製造段階より後に、制御回路20の処理によらない安全性の高い処理によって、メモリ12に機密情報を格納することが可能になる。
 なお、入力部11は、所定の電子回路によって実現される。例えば、入力部11は、通信路3を介して入力された認証情報に基づいて認証する回路を備え、認証に成功した場合に、その後に入力される機密情報をメモリ12に格納することを許可することができる。
 また、図1では、入力部11からメモリ12に対して機密情報が直接入力される構成を示しているが、例えば、通信路3を介して入力された機密情報を、入力部11から制御回路13を介してメモリ12に格納することも可能である。
 次に、情報処理装置1における処理例について説明する。
 まず、入力部11は、通信路3を介して入力された鍵6を、メモリ12に格納する(ステップS1)。鍵6の格納処理は、少なくともメモリ12の製造後の任意のタイミングで行うことが可能である。例えば、製造されたメモリ12をセキュアモジュール10に実装する時点から、セキュアモジュール10および制御回路20が搭載された情報処理装置1が工場から出荷される直前まで、あるいは情報処理装置1がユーザに販売される直前までの任意のタイミングで、メモリ12に鍵6を格納できる。これにより、販売された情報処理装置1のために提供されるサービスの形態に合わせた適切な鍵6をメモリ12に格納できるようになり、情報処理装置1の汎用性が向上する。
 なお、通信路3は例えば取り外し可能であってもよい。この場合、通信路3を外すことにより、セキュアモジュール10への機密情報の入力を禁止してもよい。
 次に、制御回路20は、通信路2を介して制御回路13に暗号化データ4を入力する(ステップS2)。
 ここで、例えば、制御回路20は、画像データあるいは音声データを含む、暗号化されたコンテンツデータを復号して再生出力する機能を備えていてもよい。この場合、暗号化データ4は、暗号化されたコンテンツデータを復号するためのコンテンツ鍵であってもよい。例えば、情報処理装置1に対して複数のコンテンツデータを提供するサービスが提供される場合、コンテンツ鍵はコンテンツデータごとに用意される。この場合、メモリ12に格納される鍵6は、サービスが提供されるユーザ等に対応付けられた情報とすることができる。
 次に、制御回路13は、メモリ12から鍵6を読み込み、読み込んだ鍵6を用いて、制御回路20から入力された暗号化データ4を復号する(ステップS3)。制御回路13は、復号によって得られた復号化データ5を、通信路2を介して制御回路20に出力する(ステップS4)。制御回路20は、受信した復号化データ5を用いて所定の処理を実行することができる。
 ここで、「鍵6を用いて復号する処理」としては、例えば、鍵6自体を復号鍵として用いて復号する処理が含まれる。このようなケースとしては、例えば、鍵6が秘密鍵であり、暗号化データ4が秘密鍵に対応する公開鍵によって暗号化されているケースが含まれる。
 また、制御回路20が、情報処理装置1の外部に存在する送信装置から暗号化データ4を受信する場合、「鍵6を用いて復号する処理」としては次のような処理を含むこともできる。制御回路13は、制御回路20を介して送信装置と通信し、鍵6を用いて送信装置との間で相互認証を行う。制御回路13は、相互認証に成功したとき、相互認証の過程で一時的に生成された一時鍵を用いて暗号化された暗号化データ4を、制御回路20を介して受信し、受信した暗号化データ4を、一時鍵を復号鍵として用いて復号する。
 以上のステップS2~S4において、制御回路20は、暗号化データ4を取得してセキュアモジュール10に供給する処理、および、復号によって得られた復号化データ5を受信して利用する処理を実行する。これらの処理は、例えば、公開されたOSの仕様に従って開発されたアプリケーションプログラムを用いて実現することが可能であるので、情報処理装置1の汎用性を向上させることができる。一方で、制御回路20は、鍵6を直接使用した処理を実行しないので、鍵6が外部に漏洩する確率が低下し、鍵6の安全性が向上する。そして、上記のように、入力部11は、制御回路20によらない処理によって鍵6をメモリ12に格納できる。したがって、鍵6の漏洩が防止された汎用性の高い情報処理装置1が実現される。
 [第2の実施の形態]
 次に、第2の実施の形態として、暗号化されたコンテンツ(以下、暗号化コンテンツ)を復号するためのコンテンツ鍵を、セキュアLSIを用いて管理するようにした端末装置について説明する。本実施の形態において、コンテンツとは、映像情報および音声情報を含む情報であり、例えば、テレビ番組、映画、ビデオゲーム等の情報である。第2の実施の形態において、コンテンツは、例えば、MPEG(Moving Picture Experts Group)方式やH.264方式等の方式により圧縮されている。
 図2は、第2の実施の形態の情報処理システムについて示す図である。端末装置100は、ネットワーク40を介して配信センター31と接続されている。端末装置100は、配信センター31と双方向通信が可能である。また、端末装置100は、放送局32から送信された放送波を受信する。放送局32との通信は、放送波を用いるため、放送局32から情報を受信する単方向通信のみ可能となる。
 端末装置100は、コンテンツを再生出力する機能を備える装置である。端末装置100は、タブレットPC等の携帯可能な携帯端末装置でもよい。端末装置100は、TRM構造を有するセキュアLSIを備える。端末装置100は、配信センター31および放送局32から暗号化された暗号化コンテンツを受信する。
 端末装置100は、双方向通信が可能な配信センター31から受信した暗号化コンテンツを復号する場合、配信センター31から受信したコンテンツ鍵を用いる。コンテンツ鍵を受信する際、端末装置100は、端末装置100の機密情報(例えば、秘密鍵等)を用いて、配信センター31との間で相互認証する。端末装置100の機密情報は、外部からの覗き見や改ざんを防ぐため、セキュアLSI上に格納されている。端末装置100は、相互認証に成功した場合、配信センター31からコンテンツ鍵を受信できる。
 一方、端末装置100は、単方向通信のみ可能な放送局32から受信した暗号化コンテンツを復号する場合、コンテンツ鍵、ワーク鍵およびマスタ鍵を用いる。
 コンテンツ鍵は、放送局32により定期的(例えば、数秒間に1回)更新される。更新されたコンテンツ鍵は、放送局32で暗号化される。以下、暗号化されたコンテンツ鍵を暗号化コンテンツ鍵と記載する。暗号化コンテンツ鍵は、コンテンツ鍵に対応する暗号化コンテンツとともに、放送局32から放送波によって端末装置100へ定期的に送信される。
 ワーク鍵は、暗号化コンテンツ鍵に対応する復号鍵である。ワーク鍵は、放送局ごとに異なり、放送局32により定期的に(例えば、毎月)更新される。更新されたワーク鍵は、放送局32により暗号化される。以下、暗号化されたワーク鍵を暗号化ワーク鍵と記載する。暗号化ワーク鍵は、放送局32から端末装置100へ放送波によって定期的に送信される。ただし、ワーク鍵の更新周期は、コンテンツ鍵の更新周期より長い。
 マスタ鍵は、暗号化ワーク鍵に対応する復号鍵である。マスタ鍵は、各端末装置が個別に有する。マスタ鍵は、外部からの覗き見や改ざんを防止するため、端末装置100の有するセキュアLSI上の記憶装置に格納されている。マスタ鍵は、端末装置100の秘密鍵でもよいし、送信側装置と共有される共通鍵でもよい。
 図3は、端末装置のハードウェア例について示すブロック図である。端末装置100は、RAM(Random Access Memory)101、フラッシュメモリ102、ディスプレイ103、タッチパネル104、通信インタフェース105、テレビ受信部106およびシステムLSI110を有する。RAM101、フラッシュメモリ102、ディスプレイ103、タッチパネル104、通信インタフェース105、テレビ受信部106、メインプロセッサ111、伸張回路112およびセキュアLSI120は、システムLSI110に設けられたバス113に接続されている。
 システムLSI110は、端末装置100全体を制御する集積回路である。システムLSI110は、メインプロセッサ111、伸張回路112およびセキュアLSI120を有する。
 メインプロセッサ111は、プログラムの命令を実行する演算器を含む装置である。メインプロセッサ111は、フラッシュメモリ102に記憶されているプログラムやデータの少なくとも一部をRAM101にロードしてプログラムを実行する。なお、メインプロセッサ111は、CPUやDSP等を用いてもよい。また、メインプロセッサ111は複数のプロセッサコアを備えてもよい。また、端末装置100は複数のプロセッサを備えてもよい。端末装置100は、複数のプロセッサまたは複数のプロセッサコアを用いて並列処理を行ってもよい。また、2以上のプロセッサの集合、FPGAやASIC等の専用回路、2以上の専用回路の集合、プロセッサと専用回路の組み合わせ等を「プロセッサ」と呼んでもよい。
 伸張回路112は、圧縮されたデータを伸張し、メインプロセッサ111へ出力する。圧縮方式には、例えば、MPEG方式、H.264方式等があり、伸張回路112は、いずれの圧縮方式に対応してもよい。
 例えば、伸張回路112により伸張された画像データは、メインプロセッサ111を介してディスプレイ103に出力される。なお、伸張された画像データが、伸張回路112からバス113やメインプロセッサ111を介さずに、ディスプレイ103に直接出力される構成としてもよい。また、伸張された画像データは、HDCP(High-bandwidth Digital Content Protection system)方式で暗号化された状態でディスプレイ103に供給されてもよい。また、HDCP方式で暗号化された画像データは、画像出力インタフェース(図示せず)を介して端末装置100の外部に出力されてもよい。
 RAM101は、メインプロセッサ111が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、端末装置100は、RAM以外の種類のメモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
 フラッシュメモリ102は、OSやファームウェアやアプリケーションソフトウェア等のプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、端末装置100は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
 ディスプレイ103は、メインプロセッサ111からの命令に従って画像を表示する。ディスプレイ103としては、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機EL(Electro Luminescence)ディスプレイ等を用いることができる。
 タッチパネル104は、ディスプレイ103に重ねて設けられており、ディスプレイ103に対するユーザのタッチ操作を検出し、タッチ位置を入力信号としてメインプロセッサ111に通知する。タッチ操作には、タッチペン等のポインティングデバイスまたはユーザの指が用いられる。タッチ位置の検出方式には、例えば、マトリクススイッチ方式、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式等様々な検出方式があり、いずれの方式を採用してもよい。
 通信インタフェース105は、ネットワーク40を介して他のコンピュータ(例えば、配信センター31)と通信を行うインタフェースである。通信インタフェース105は、有線網に接続する有線インタフェースでもよいし、無線網に接続する無線インタフェースでもよい。
 テレビ受信部106は、チューナ、復調器等を有し、接続されているアンテナ41で受信した放送電波を取り込むことにより各放送チャンネルのコンテンツを示す情報を取得する。
 なお、メインプロセッサ111に実行させるプログラムは、フラッシュメモリ102に他の記憶装置からコピーするようにしてもよい。また、メインプロセッサ111に実行させるプログラムは、通信インタフェース105がネットワーク40からダウンロードするようにしてもよい。
 また、図3の端末装置100が備えるハードウェアのうち、システムLSI110の外部に搭載されてバス113に接続されているハードウェアの少なくとも1つは、システムLSI110の内部に搭載されてもよい。例えば、RAM101およびフラッシュメモリ102がシステムLSI110の内部に搭載されてもよい。
 以上の構成において、メインプロセッサ111は、インタフェース等の仕様が公開されたOSプログラムを実行する。そして、メインプロセッサ111は、このようなOSプログラムの仕様に合わせて開発されたアプリケーションプログラムを実行する。このように、端末装置100を、公開された仕様に基づくプログラムを実行するメインプロセッサ111を備える構成としたことで、端末装置100の汎用性が向上する。
 このような利点の反面、悪意のある者によって開発されたプログラムがメインプロセッサ111で実行されたり、あるいはメインプロセッサ111で実行されるプログラムが改ざんされる可能性もある。このことは、例えば、バス113を介してメインプロセッサ111に接続されたRAM101やフラッシュメモリ102の記憶領域の情報が、意図せずに外部に読み出されたり、あるいは改ざんされる可能性があることを意味する。
 これに対して、セキュアLSI120は、TRM構造を有する集積回路である。セキュアLSI120は、バス113を介してメインプロセッサ111に接続されているが、セキュアLSI120とメインプロセッサ111との間でやりとりされる処理は、特定の処理だけに制限されている。これにより、セキュアLSI120の内部に格納された情報が意図せずに漏洩したり、あるいは改ざんされることが防止されている。
 セキュアLSI120は、サブプロセッサ121、暗号演算回路122、セキュアRAM123、セキュアROM(Read Only Memory)124、外部入出力部125およびセキュア入力部130を有する。これらの各ユニットは、バス127に接続されている。また、外部入出力部125は、バス113,127に接続されている。
 サブプロセッサ121は、セキュアLSI120内でプログラムの命令を実行する演算器を含む装置である。また、サブプロセッサ121は、セキュアLSI120の有する各ユニットを制御する。
 暗号演算回路122は、データを暗号化する暗号回路、データを復号する復号回路等を含む回路である。暗号演算回路122は、サブプロセッサ121からの命令に応じて暗号化、復号等の処理を行い、処理結果をサブプロセッサ121に出力する。
 セキュアRAM123は、サブプロセッサ121が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、セキュアLSI120は、RAM以外の種類の揮発性メモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
 セキュアROM124は、端末装置100の識別情報、秘密鍵、マスタ鍵等の機密情報を記憶する不揮発性の記憶装置である。端末装置100の識別情報には、例えば、端末装置100の識別番号が挙げられる。また、セキュアROM124には、セキュアLSI120上でのみ動作する専用プログラムが記憶されていてもよい。専用プログラムは、例えば、セキュアLSI120上でのみ実行可能な命令コードにより生成されたプログラムである。
 なお、セキュアROM124は、フラッシュメモリなどの書き込み可能な不揮発性記憶装置であるものとする。また、セキュアLSI120は、このような不揮発性記憶装置を複数備えてもよい。
 外部入出力部125は、バス113に接続され、バス113を介してメインプロセッサ111との間でデータを入出力する。外部入出力部125は、メインプロセッサ111から入力されたデータをサブプロセッサ121へ出力する。また、外部入出力部125は、サブプロセッサ121から入力されたデータをメインプロセッサ111へ出力する。
 なお、サブプロセッサ121がセキュアLSI120内のデータを出力できる経路は、外部入出力部125を介した経路のみである。例えば、サブプロセッサ121が、端末装置100外の装置(例えば、配信センター31)にデータを送信したい場合、まず、サブプロセッサ121は、外部入出力部125を介して、送信するデータをメインプロセッサ111に出力する。そして、メインプロセッサ111は、出力されたデータを端末装置100外の装置に送信する。
 ここで、メインプロセッサ111から外部入出力部125を介してサブプロセッサ121に入力される情報は、特定のコマンドなど、予め規定された情報のみに制限されている。そして、サブプロセッサ121は、外部入出力部125から規定されたもの以外の情報が入力された場合には、その情報を無視し、破棄する。これにより、セキュアLSI120の内部に格納された情報のセキュリティが高められている。
 例えば、メインプロセッサ111がサブプロセッサ121に出力するコマンドとしては、セキュアRAM123やセキュアROM124等、セキュアLSI120の内部の記憶領域からのデータの読み出しや、その記憶領域へのデータの書き込みを直接要求するようなコマンドは含まれない。これにより、メインプロセッサ111からの命令によってセキュアRAM123やセキュアROM124に対する読み書きを行うことは不可能になる。
 一方、セキュアLSI120のサブプロセッサ121が実行するプログラムには、セキュアLSI120の内部に格納された機密情報を外部入出力部125を介して出力するようなプログラムコードは含まれない。これにより、機密情報のセキュリティが高められている。更に、後述するように、サブプロセッサ121が実行するプログラムは、公開された仕様に基づくものではなく、セキュアLSI120のための専用の言語で記述されたプログラムとされる。これにより、サブプロセッサ121による処理自体の信頼性が高められ、その結果、セキュアLSI120内の機密情報のセキュリティが向上する。
 乱数発生回路126は、サブプロセッサ121の命令に応じて乱数を発生させ、発生させた乱数をサブプロセッサ121に出力する。乱数は、例えば、配信センター31との相互認証に用いられる。
 セキュア入力部130は、端末装置100の外部の入力装置42から入力された機密情報を、セキュアLSI120内のバス127に出力する。セキュア入力部130から出力された機密情報は、サブプロセッサ121によりセキュアROM124へ格納される。なお、セキュア入力部130から出力された機密情報は、サブプロセッサ121を介さずにセキュアROM124に直接格納されてもよい。
 セキュア入力部130は、メインプロセッサ111を介在させずにセキュアLSI120の内部に情報を入力可能な入力経路を構成する。また、セキュア入力部130は、入力された情報をバス127に出力することはできるが、バス127から入力された情報をセキュアLSI120の外部に出力することはできない。
 セキュア入力部130からの機密情報の入力処理は、少なくともセキュアLSI120の製造後の任意のタイミングで行うことが可能である。例えば、製造されたセキュアLSI120を端末装置100に実装する時点から、セキュアLSI120が搭載された端末装置100が工場から出荷される直前まで、あるいは端末装置100がユーザに販売される直前までの任意のタイミングで、セキュアROM124に機密情報を格納できる。
 したがって、セキュア入力部130を設けたことにより、端末装置100の販売形態や端末装置100を用いたサービスの提供形態等に応じた適切な機密情報を、セキュアLSI120の内部に格納することが可能になる。その結果、端末装置100の汎用性を高めることができる。例えば、端末装置100が携帯電話機能を有する場合、携帯電話キャリアあるいは携帯電話の販売会社が生成した固有の機密情報を、セキュアROM124に格納することが可能になる。この場合、携帯電話キャリアや販売店は、生成した固有の機密情報を用いてサービスを提供できるようになり、独自のサービスを提供しやすくなる。
 また、入力装置42がセキュア入力部130に接続するための接続部としては、例えば、システムLSI110が備える多数の外部ピンのうちの所定の外部ピンを用いることができる。また、他の例として、セキュア入力部130に接続するための専用コネクタが設けられてもよい。
 セキュア入力部130への接続部としてシステムLSI110の外部ピンが用いられる場合、および、専用コネクタが端末装置100の筐体の内部に設けられる場合には、入力装置42からのセキュア入力部130への入力処理タイミングは、基本的に、端末装置100の製造段階に限定される。また、専用コネクタが端末装置100の筐体の外面に設けられた場合には、例えば、端末装置100の販売店において、入力装置42からセキュア入力部130に対して機密情報を入力することも可能になる。
 ただし、端末装置100を購入した購入者が、セキュア入力部130への接続部に対して容易にアクセスできないような構造とされることが望ましい。例えば、セキュア入力部130を介した機密情報の入力が完了した後、その入力用の外部ピンまたは専用コネクタを取り外しできるようにする方法がある。これにより、セキュアLSI120上の機密情報を改ざんできなくなる。
 また、セキュア入力部130は、入力装置42を認証する機能や、暗号解読機能等を有してもよい。この場合、認証用の情報や暗号解読用の情報を、端末装置100の製造者や販売者等の信頼できる者が管理することで、端末装置100の購入者はセキュアLSI120上の機密情報を改ざんできなくなる。
 ここで、認証機能および暗号解読機能を備えたセキュア入力部130の構成例を挙げる。図4は、セキュア入力部のハードウェア例について示すブロック図である。
 図4に示すセキュア入力部130は、入力レジスタ131、シフトレジスタ132、認証情報比較部133および機密情報復号部134を有する。また、セキュア入力部130には、認証鍵135および復号鍵136が記憶されている。認証鍵135および復号鍵136は、ともに固定値であり、読み出し専用のレジスタ等の不揮発性記憶装置(図示せず)に予め格納されている。なお、認証鍵135は認証情報比較部133からのみ読み出し可能であり、復号鍵136は機密情報復号部134からのみ読み出し可能である。
 入力装置42からセキュア入力部130に対しては、入力信号Sinおよびクロック信号CKが入力される。入力信号Sinは、入力レジスタ131に入力される。クロック信号CKは、入力レジスタ131、シフトレジスタ132、認証情報比較部133および機密情報復号部134の各部に入力される。なお、クロック信号CKは、例えば、端末装置100の内部で発生されるものであってもよい。
 入力信号Sinは、入力レジスタ131を介して、シフトレジスタ132および機密情報復号部134に出力される。
 シフトレジスタ132は、入力レジスタ131からの入力信号Sinの値を、クロックタイミングごとにシフトすることで、所定ビット数の値を保持する。図4の例では、シフトレジスタ132は5ビットの値を保持する。
 認証情報比較部133は、認証処理を行う回路であり、機密情報復号部134は、暗号解読処理を行う回路である。認証情報比較部133は、機密情報復号部134に対してイネーブル信号ENを出力する。イネーブル信号ENは、機密情報復号部134に対する入力レジスタ131からの入力信号Sinの入力可否を指示するための信号である。初期状態では、イネーブル信号ENの値は「0」であり、このとき、機密情報復号部134への入力情報Sinの入力は禁止された状態となる。
 認証情報比較部133は、比較器およびカウンタを有する。認証情報比較部133は、シフトレジスタ132が保持する値と、認証鍵135の値とをビットごとに比較して、一致するかを判定する。認証鍵135のビット数はシフトレジスタ132が保持する信号のビット数と同じであり、図4の例では「5」である。
 認証情報比較部133は、シフトレジスタ132が保持する値と、認証鍵135の値とが全ビットについて一致したとき、イネーブル信号ENを「0」から「1」にするとともに、クロック信号CKのカウント動作を開始する。カウント数の初期値は「0」であり、認証情報比較部133は、カウント数が一定値に達するまでの間、イネーブル信号ENを「1」のままにする。そして、認証情報比較部133は、カウント数が一定値に達したとき、イネーブル信号ENを「1」から「0」にするとともに、カウント数をリセットする。これにより、機密情報復号部134への入力信号Sinの入力が、一定時間のみ許可される。
 機密情報復号部134は、イネーブル信号ENが「1」である期間に入力レジスタ131から入力された入力信号Sinの値を保持することが可能になっている。機密情報復号部134は、例えば、シフトレジスタを用いることで入力信号Sinを保持する。機密情報復号部134は、復号鍵136を用いて、保持した信号を復号し、復号された信号をバス127を介してサブプロセッサ121に出力する。
 このようなセキュア入力部130は、次のような動作を行う。入力装置42からの入力信号Sinには、最初の5ビットに認証情報が含まれ、その後の所定ビットに、暗号化された機密情報が含まれる。認証情報比較部133は、入力信号Sinに含まれる認証情報と認証鍵135とが一致したと判定すると、イネーブル信号ENを「1」として、機密情報復号部134への入力情報Sinの入力を許可する。この時点から、機密情報復号部134には、暗号化された機密情報が入力されて保持される。
 機密情報復号部134は、復号鍵136を用いて、保持している情報を復号し、復号された機密情報をサブプロセッサ121に出力する。このとき復号される機密情報には、例えば、情報の格納または更新を指示するためのコマンドや、格納または更新する鍵情報が含まれる。サブプロセッサ121は、復号されたコマンドを正しく解釈できたとき、復号された鍵情報をセキュアROM124の所定領域に格納する。
 以上の構成を有するセキュア入力部130によれば、認証鍵135と一致する認証情報が入力された場合のみ、セキュアLSI120内のバス127への信号の入力が一定期間だけ許可される。これにより、秘匿された認証鍵135を知っている者のみが、セキュア入力部130を介して情報を入力することができるようになる。また、復号鍵136によって入力情報が正しく復号された場合のみ、入力された情報がセキュアROM124に格納される。これにより、認証鍵135を知っていたとしても、暗号化に使用する鍵情報を知らない者は、セキュアROM124に情報を格納することができない。このように、認証鍵135と復号鍵136による二重のセキュリティ機能を備えることにより、セキュア入力部130を介した情報入力のセキュリティが強固になる。
 図5は、端末装置が備える機能の構成例について示すブロック図である。端末装置100は、配信コンテンツ再生部141、放送コンテンツ再生部142、機密情報処理部150および機密情報記憶部160を有する。
 配信コンテンツ再生部141の処理は、メインプロセッサ111が所定のアプリケーションプログラム(例えば、配信コンテンツ再生プログラム)を実行することで実現される。配信コンテンツ再生部141は、配信センター31により提供される配信コンテンツの再生処理を制御する。
 配信コンテンツ再生部141は、配信センター31から暗号化コンテンツを受信する。受信された暗号化コンテンツは、フラッシュメモリ102あるいはRAM101に格納される。配信コンテンツ再生部141は、暗号化コンテンツを復号するためのコンテンツ鍵の取得を、機密情報処理部150に依頼し、それ以後、機密情報処理部150と配信センター31との間のデータ転送を媒介する。そして、機密情報処理部150が配信センター31から暗号化コンテンツ鍵を受信し、受信した暗号化コンテンツ鍵を暗号演算回路122に復号させると、配信コンテンツ再生部141は、復号されたコンテンツ鍵を機密情報処理部150から受信する。配信コンテンツ再生部141は、機密情報処理部150から受信したコンテンツ鍵を用いて暗号化コンテンツを復号し、復号された配信コンテンツを伸張回路112に供給して、配信コンテンツを再生出力させる。
 放送コンテンツ再生部142の処理は、メインプロセッサ111が所定のアプリケーションプログラム(例えば、放送コンテンツ再生プログラム)を実行することで実現される。放送コンテンツ再生部142は、放送局32から放送波を介して受信した放送コンテンツの再生処理を制御する。
 放送コンテンツ再生部142は、放送波を介して受信した暗号化ワーク鍵および暗号化コンテンツ鍵の復号を、機密情報処理部150に依頼する。暗号化ワーク鍵は、セキュアLSI120に格納されたマスタ鍵によって暗号化されたワーク鍵であり、暗号化コンテンツ鍵は、ワーク鍵によって暗号化された、放送コンテンツを復号するためのコンテンツ鍵である。ワーク鍵およびコンテンツ鍵は、いずれも定期的に更新される。
 放送コンテンツ再生部142は、復号されたコンテンツ鍵を機密情報処理部150から受信し、受信したコンテンツ鍵を用いて、放送波を介して受信した暗号化コンテンツを復号する。放送コンテンツ再生部142は、復号された放送コンテンツを伸張回路112に供給して、放送コンテンツを再生出力させる。
 機密情報処理部150の処理は、サブプロセッサ121がセキュアLSI120用の専用プログラムを実行することで実現される。機密情報処理部150は、配信コンテンツ再生部141または放送コンテンツ再生部142からの依頼に応じて、コンテンツ再生に用いる鍵情報の取得や、鍵情報の復号制御を実行する。機密情報処理部150は、これらの処理の過程で、情報の暗号化や復号を暗号演算回路122に実行させ、また、乱数の発生を乱数発生回路126に実行させる。
 機密情報記憶部160は、セキュアROM124の記憶領域によって構成される。機密情報記憶部160には、秘匿が必要な機密情報として、少なくとも、端末装置100の秘密鍵と、端末装置100のマスタ鍵とが格納されている。秘密鍵は、配信コンテンツの再生時に使用され、マスタ鍵は、放送コンテンツの再生時に使用される。また、秘密鍵およびマスタ鍵は、セキュア入力部130から入力されて、機密情報記憶部160に格納される。なお、秘密鍵とマスタ鍵とは、共通の鍵情報であってもよい。
 また、機密情報記憶部160にはその他に、端末装置100の識別情報と、配信センター31の公開鍵とが格納される。これらの識別情報および公開鍵は、セキュア入力部130から入力されてもよいが、必ずしも秘匿が必要な情報ではないため、外部入出力部125から入力されてもよい。
 次に、配信センター31が配信する配信コンテンツの再生処理について説明する。
 端末装置100は、識別番号等の識別情報を有する。識別情報は、予めセキュアLSI120上のセキュアROM124に格納されている。ただし、この識別情報は、必ずしも秘匿が必要な情報ではない。なお、識別情報は、例えば、ユーザを識別するユーザIDであってもよい。
 また、セキュアLSI120のサブプロセッサ121と配信センター31との間では、秘密鍵・公開鍵方式を用いた相互認証および暗号処理が行われる。セキュアLSI120上のセキュアROM124には、端末装置100の秘密鍵と、配信センター31の公開鍵とが格納されている。端末装置100の秘密鍵は秘匿が必要な情報であり、メインプロセッサ111からのアクセスが不可能な状態になっている。一方、配信センター31の公開鍵は、秘匿が必要な情報ではなく、例えば、端末装置100の外部から受信されて、外部入出力部125からセキュアLSI120に格納されてもよい。
 配信センター31は、配信センター31の秘密鍵と、端末装置100の公開鍵とを管理している。公開鍵は端末装置ごとに用意されており、配信センター31は、端末装置から識別情報を受信することで、その端末装置に対応する公開鍵を判別することができる。
 図6~図7は、配信コンテンツの再生処理のシーケンス例について示す図である。図6~図7において、メインプロセッサ111の処理は、図5の配信コンテンツ再生部141の処理に対応し、セキュアLSI120の処理のうちサブプロセッサ121の処理は、図5の機密情報処理部150の処理に対応する。
 例えばユーザの入力操作により、配信コンテンツの再生処理が要求されたものとする。なお、配信コンテンツは、コンテンツ鍵によって暗号化された状態で、例えばフラッシュメモリ102に格納されているものとする。
 メインプロセッサ111は、再生処理の要求操作に応じて、セキュアLSI120のサブプロセッサ121にコンテンツ鍵の取得を依頼する(ステップS11)。このとき、メインプロセッサ111は、再生対象のコンテンツを識別するコンテンツIDもサブプロセッサ121に通知する。
 コンテンツ鍵の取得を依頼した後、メインプロセッサ111は、サブプロセッサ121からコンテンツ鍵が出力されて処理の終了を通知されるまでの間、サブプロセッサ121から出力される情報を配信センター31へ転送し、配信センター31から受信した情報をサブプロセッサ121に供給する処理を繰り返す。
 サブプロセッサ121は、乱数発生回路126に乱数Aを生成させる(ステップS12)。サブプロセッサ121は、端末装置100の識別情報をセキュアROM124から読み出す(ステップS13)。なお、これらのステップS12,S13の処理順は逆でもよい。サブプロセッサ121は、生成された乱数Aおよび読み出した識別情報をメインプロセッサ111へ出力する(ステップS14)。メインプロセッサ111は、入力された乱数Aおよび識別情報を配信センター31へ送信する。配信センター31は、乱数Aと端末装置100の識別情報を受信する(ステップS15)。
 配信センター31は、受信した乱数Aを配信センター31の秘密鍵で暗号化する(ステップS16)。配信センター31は、乱数Bを生成する(ステップS17)。配信センター31は、受信した識別情報を基に、端末装置100の公開鍵を検索する。そして、配信センター31は、ランダムにセッション鍵を生成する。セッション鍵は、端末装置100との間の共通鍵として使用される鍵情報である。配信センター31は、生成したセッション鍵を、検索した端末装置100の公開鍵で暗号化する(ステップS18)。なお、これらのステップS16~S18の処理順は変更可能である。
 配信センター31は、暗号化した乱数A、生成した乱数Bおよび暗号化したセッション鍵を含む情報を端末装置100に送信する。メインプロセッサ111は、配信センター31が送信した情報を受信する(ステップS19)。メインプロセッサ111は、受信した情報をセキュアLSI120に出力する(ステップS20)。
 サブプロセッサ121は、入力された暗号化された乱数Aを配信センター31の公開鍵で暗号演算回路122に復号させる。サブプロセッサ121は、乱数Aが復号できたことで、配信センター31との認証に成功したことを確認する(ステップS21)。サブプロセッサ121は、入力された乱数Bを端末装置100の秘密鍵を用いて暗号演算回路122に暗号化させる(ステップS22)。サブプロセッサ121は、入力されたセッション鍵を端末装置100の秘密鍵を用いて暗号演算回路122に復号させる(ステップS23)。サブプロセッサ121は、暗号化された乱数Bを、配信センター31へ送信するためにメインプロセッサ111へ出力する(ステップS24)。メインプロセッサ111は、入力された乱数Bを配信センター31へ送信する。配信センター31は、乱数Bを受信する(ステップS25)。
 配信センター31は、受信した乱数Bを端末装置100の公開鍵で復号する。配信センター31は、乱数Bが復号できたことで、端末装置100との認証に成功したことを確認する(ステップS31)。そして、配信センター31は、相互認証成功の旨を通知するための通知情報をセッション鍵で暗号化する(ステップS32)。配信センター31は、暗号化した通知情報を端末装置100へ送信する。メインプロセッサ111は、暗号化された通知情報を受信する(ステップS33)。メインプロセッサ111は、暗号化された通知情報をセキュアLSI120へ出力する(ステップS34)。
 サブプロセッサ121は、入力された通知情報をステップS23で復号されたセッション鍵を用いて暗号演算回路122に復号させ、配信センター31との相互認証に成功したことを確認する(ステップS35)。なお、セッション鍵の復号(ステップS23)は、ステップS21の実行からステップS35の実行直前までの任意のタイミングで実行されればよい。
 サブプロセッサ121は、コンテンツIDを、配信センター31へ送信するためにメインプロセッサ111へ出力する(ステップS36)。メインプロセッサ111は、入力されたコンテンツIDを配信センター31へ送信する(ステップS37)。なお、サブプロセッサ121から配信センター31へのコンテンツIDの送信は、例えば、ステップS14,S15の時点で行われてもよい。
 配信センター31は、コンテンツIDを受信し、受信したコンテンツIDに対応するコンテンツ鍵を検索する。配信センター31は、検索されたコンテンツ鍵をセッション鍵で暗号化する(ステップS38)。配信センター31は、暗号化したコンテンツ鍵を端末装置100に送信する。メインプロセッサ111は、暗号化されたコンテンツ鍵を受信する(ステップS39)。メインプロセッサ111は、暗号化されたコンテンツ鍵をセキュアLSI120へ出力する(ステップS40)。
 サブプロセッサ121は、入力されたコンテンツ鍵をステップS23で復号されたセッション鍵を用いて暗号演算回路122に復号させる(ステップS41)。サブプロセッサ121は、復号したコンテンツ鍵をメインプロセッサ111に出力して、コンテンツ鍵取得処理の終了を通知する(ステップS42)。
 メインプロセッサ111は、コンテンツ鍵で暗号化コンテンツを復号する(ステップS43)。メインプロセッサ111は、復号したコンテンツを伸張回路112に出力して、再生出力させる(ステップS44)。
 このように、端末装置100は、配信センター31と相互認証を行う際、セキュアLSI120の有する記憶領域に格納された秘密鍵を用いる。また、端末装置100は、相互認証に用いる暗号化データの復号をセキュアLSI120上で実行する。そして、端末装置100は、相互認証によって得られたセッション鍵を用いたコンテンツ鍵の復号をセキュアLSI120上で実行する。これにより、秘密鍵およびセッション鍵を外部から覗き見されたり、改ざんされたりすることを防止でき、コンテンツ鍵の取得の際のセキュリティを確保できる。
 次に、放送局32が配信する放送コンテンツの再生処理について説明する。放送コンテンツは、コンテンツ鍵によって暗号化された状態で放送局32から放送波を介して送信される。また、コンテンツ鍵は、ワーク鍵によって暗号化された状態で、暗号化放送コンテンツとともに放送波を介して送信される。コンテンツ鍵は、例えば数秒に1回など、定期的に更新される。
 また、ワーク鍵は、ユーザごとに個別のマスタ鍵によって暗号化された状態で、放送波を介して送信される。ワーク鍵は、コンテンツ鍵より長い周期で更新される。例えば、放送コンテンツ視聴サービスが1ヶ月単位で契約される場合には、月に1回、契約が更新される度にワーク鍵も更新される。
 本実施の形態においては、マスタ鍵はセキュアLSI120のセキュアROM124に格納される。マスタ鍵は秘匿が必要な情報であり、メインプロセッサ111からのアクセスが不可能な状態になっている。
 図8は、ワーク鍵取得処理のシーケンス例について示す図である。図8において、放送局32から送信される暗号化ワーク鍵には、更新番号が付加されている。更新番号は、放送局32により暗号化ワーク鍵とともに更新される。また、放送局32は、端末装置100の識別情報とマスタ鍵を対応付けて管理する。端末装置100の識別情報は、上記のユーザIDに対応する情報である。マスタ鍵は共通鍵とする。
 なお、マスタ鍵は、端末装置100の秘密鍵でもよい。この場合、放送局32は、端末装置100のマスタ鍵に対応する公開鍵を、端末装置100の識別情報と対応付けて管理する。
 メインプロセッサ111は、暗号化ワーク鍵が更新されたことを確認する。ワーク鍵の更新は、例えば、月1回行われる。端末装置100のフラッシュメモリ102には、以前に受信したものの中で最新の更新番号が記憶されており、メインプロセッサ111は、暗号化ワーク鍵に付加された更新番号と、フラッシュメモリ102に記憶された更新番号とを比較することで、更新の有無を判定する(ステップS51)。メインプロセッサ111は、暗号化ワーク鍵が放送局32により更新されていた場合、更新された暗号化ワーク鍵をセキュアLSI120へ出力する(ステップS52)。また、メインプロセッサ111は、フラッシュメモリ102に記憶されていた更新番号を、受信した更新番号に書き替える。
 サブプロセッサ121は、入力された暗号化ワーク鍵をマスタ鍵を用いて暗号演算回路122に復号させる(ステップS53)。サブプロセッサ121は、復号したワーク鍵をセキュアROM124等のセキュアLSI120の有する記録媒体に格納する(ステップS54)。
 図9は、放送コンテンツ再生処理のシーケンス例について示す図である。図9において、放送局32から送信される暗号化コンテンツ鍵には、更新番号が付加されている。更新番号は、放送局32により暗号化コンテンツ鍵とともに更新される。
 メインプロセッサ111は、暗号化コンテンツ鍵が更新されたことを定期的に確認する。コンテンツ鍵は、例えば、数秒に1回更新され、コンテンツ更新情報が来る度に以下の方法で更新される。端末装置100のフラッシュメモリ102には、以前に受信したものの中で最新の更新番号が記憶されており、メインプロセッサ111は、コンテンツ更新情報に含まれる暗号化コンテンツ鍵に付加された更新番号と、フラッシュメモリ102に記憶された更新番号とを比較することで、更新の有無を判定する(ステップS61)。メインプロセッサ111は、暗号化コンテンツ鍵が更新されていれば、更新された暗号化コンテンツ鍵をセキュアLSI120へ出力する(ステップS62)。また、メインプロセッサ111は、フラッシュメモリ102に記憶されていた更新番号を、受信した更新番号に書き替える。
 サブプロセッサ121は、暗号化コンテンツ鍵をステップS54で格納したワーク鍵を用いて暗号演算回路122に復号させる(ステップS63)。サブプロセッサ121は、復号したコンテンツ鍵をメインプロセッサ111へ出力する(ステップS64)。
 メインプロセッサ111は、入力されたコンテンツ鍵で、テレビ受信部106から供給される暗号化放送コンテンツを復号する(ステップS65)。メインプロセッサ111は、ステップS42と同様に、復号した放送コンテンツを伸張回路112に出力する(ステップS66)。
 図8~図9で示すとおり、端末装置100は、セキュアLSI120上の記録装置に格納されたマスタ鍵を用いて、暗号化ワーク鍵をセキュアLSI120上で復号する。また、端末装置100は、復号されたワーク鍵を用いて、暗号化コンテンツ鍵をセキュアLSI120上で復号する。これにより、マスタ鍵およびワーク鍵を外部から改ざんされたり、覗き見されたりすることを防止でき、コンテンツ鍵の取得の際のセキュリティを確保できる。
 次に、セキュアLSI120のサブプロセッサ121で実行されるプログラムについて説明する。セキュアLSI120においては、メインプロセッサ111とは異なり、仕様が公開されていない専用のプログラムが実行される。これにより、セキュアLSI120のサブプロセッサ121がハッキングされるリスクが低減し、セキュアLSI120における処理のセキュリティが向上する。例えば、もしサブプロセッサ121で実行されるプログラムのコードが漏洩した場合でも、そのプログラムの解析が容易ではないため、サブプロセッサ121がハッキングされるリスクが低くなる。専用プログラムは、例えば、図10に示すような専用命令コードを用いて記述される。
 また、第2の実施の形態において、専用プログラムがセキュアLSI120上で実行される際、変換プログラムを用いて、専用命令コードがサブプロセッサ121に対応する命令コードに変換される。具体的には、まず、専用プログラムおよび変換プログラムが、セキュアROM124に格納されている。この状態で、専用プログラム実行時に、実行される専用プログラムを構成する専用命令コードは、サブプロセッサ121に対応する命令コード(例えば機械語)に変換プログラムにより変換される。そして、変換された命令コードは、サブプロセッサ121に実行される。このような変換プログラムを用いることで、サブプロセッサ121の種類に依存しない専用プログラムを使用することができるようになり、専用プログラムの開発が容易になる。
 図10は、専用命令コードのリストの例について示す図である。命令コードリスト180は、セキュアLSI120における専用命令コードの一覧である。命令コードリスト180は、セキュアLSI120上のセキュアROM124に記憶されている。そして、変換プログラム実行の際、復号された命令コードリスト180はセキュアRAM123上に展開される。
 命令コードリスト180は、命令およびコードの項目を有する。命令の項目には、サブプロセッサ121が実行可能な命令が設定される。コードの項目には、命令の項目に対応する専用命令コードが2進数で設定される。なお、実際に命令が発行される際には、コードに対してレジスタとアドレスとが指定される。以下の説明においては、指定されるレジスタの番号「x」、指定されるアドレスを「a」と記述する。
 第2の実施の形態において、専用命令コードの命令には、例えば、「加算」、「減算」、「ロード」、「ストア」、「比較」、「分岐1」、「分岐2」、「設定」、「加算1」、「減算1」、「暗号化1」、「暗号化2」、「復号化1」、「復号化2」、「乱数発生1」、「乱数発生2」、「出力0」、「出力1」、「出力2」、「入力0」、「入力1」、「入力2」がある。
 例えば、「加算」は、指定したレジスタxの内容と、指定したアドレスaの内容とを加算し、加算結果をレジスタxに格納する命令である。また、「加算」に対応する命令コードは、00000001となる。
 「減算」は、指定したレジスタxの内容から、指定したアドレスaの内容を減算し、減算結果をレジスタxに格納する命令である。また、「減算」に対応する命令コードは、00000010となる。
 「ロード」は、指定したアドレスaの内容を指定したレジスタxに格納する命令である。また、「ロード」に対応する命令コードは、00000011となる。
 「ストア」は、指定したレジスタxの内容を指定したアドレスaに格納する命令である。また、「ストア」に対応する命令コードは、00000100となる。
 「比較」は、指定したレジスタxの内容と指定したアドレスaの内容とを比較し、比較結果をステータスレジスタ等の所定のレジスタに格納する命令である。例えば、指定したレジスタxの内容と指定したアドレスaの内容が一致した場合、所定のレジスタには、「一致」を示す情報が格納される。また、「比較」に対応する命令コードは、00000101となる。
 「分岐1」は、「比較」命令における上記所定のレジスタに格納された比較結果が「一致」を示す情報である場合、指定したアドレスaに命令を分岐させる命令である。また、「分岐1」に対応する命令コードは、00000110となる。
 「分岐2」は、無条件に、指定したアドレスaに命令を分岐させる命令である。また、「分岐2」に対応する命令コードは、00000111となる。
 「設定」は、指定したデータdを指定したレジスタxに格納する命令である。また、「設定」に対応する命令コードは、10000000となる。
 「加算1」は、指定したデータdを指定したレジスタxの内容に加算し、加算結果を指定したレジスタxに格納する命令である。また、「加算1」に対応する命令コードは、10000001となる。
 「減算1」は、指定したデータdを指定したレジスタxの内容から減算し、減算結果を指定したレジスタxに格納する命令である。また、「減算1」に対応する命令コードは、10000010となる。
 「暗号化1」は、暗号演算回路122における暗号処理用の回路を初期化する命令である。暗号処理用回路の初期化には、例えば、暗号方式(例えば、AES(Advanced Encryption Standard)暗号やDES(Data Encryption Standard)暗号)や鍵の設定等がある。また、「暗号化1」に対応する命令コードは、10010000となる。
 「暗号化2」は、指定したレジスタxの内容を暗号化し、暗号化した内容を指定したアドレスaに格納する命令である。また、「暗号化2」に対応する命令コードは、10010001となる。
 「復号化1」は、暗号演算回路122における復号処理用の回路を初期化する命令である。また、「復号化1」に対応する命令コードは、10010010となる。
 「復号化2」は、指定したレジスタxの内容を復号し、復号した内容を指定したアドレスaに格納する命令である。また、「復号化2」に対応する命令コードは、10010011となる。
 「乱数発生1」は、乱数発生回路126を初期化する命令である。乱数発生回路126の初期化は、例えば、乱数発生に用いる初期値の設定がある。また、「乱数発生1」に対応する命令コードは、10010100となる。
 「乱数発生2」は、乱数を生成し、生成した乱数を指定したレジスタxに設定し、設定したレジスタxの内容を指定したアドレスaに格納する命令である。また、「乱数発生2」に対応する命令コードは、10010101となる。
 「出力0」は、外部入出力部125における出力回路を初期化する命令である。出力回路の初期化は、例えば、外部入出力部125の出力回路を有効にするための設定がある。また、「出力0」に対応する命令コードは、10010110となる。
 「出力1」は、指定したレジスタxの内容の数のデータを、指定したアドレスaから出力回路へ順次出力する命令である。例えば、レジスタxの内容=2を指定して「出力1」の命令を実行したとき、アドレスa、アドレスa+1の内容が順に出力回路に出力される。また、「出力1」に対応する命令コードは、10010111となる。
 「出力2」は、「出力1」により出力されたデータがメインプロセッサ111に読み出されたか否かを示す情報を、指定したレジスタxに格納する命令である。また、「出力2」に対応する命令コードは、10011000となる。
 「入力0」は、外部入出力部125における入力回路を初期化する命令である。また、「入力0」に対応する命令コードは、10011001となる。
 「入力1」は、指定したレジスタxの内容の数のデータを、指定したアドレスaから入力回路へ順次入力する命令である。また、「入力1」に対応する命令コードは、10011010となる。
 「入力2」は、「入力1」により入力されたデータがサブプロセッサ121に読み込まれたか否かを示す情報を、指定したレジスタxに格納する命令である。また、「入力2」に対応する命令コードは、10011011となる。
 セキュアLSI120上で専用プログラムを実行する際、まず、専用プログラムを構成する専用命令コードは、命令コードリスト180を参照した変換プログラムによりサブプロセッサ121に対応する命令コードに変換される。そして、変換された命令コードをサブプロセッサ121が実行する。
 以上のように、セキュアLSI120のサブプロセッサ121が専用プログラムを実行することで、セキュアLSI120における処理や記憶情報のセキュリティを向上させることができる。
 ただし、上記の命令コードリスト180が漏洩した場合、専用プログラムの内容が解析可能となってしまい、セキュリティ上問題が生じるおそれがある。そこで、端末装置100は、次のように専用プログラムの置換えが可能とされていてもよい。命令コードリスト180が漏洩した場合、セキュアLSI120において、命令コードリスト180および専用プログラムを別の内容に置換えることで、セキュリティを確保できる。
 図11は、命令コードリストの置換え処理のシーケンス例について示す図である。図11では、命令コードリスト180が漏洩したときに、端末装置100が命令コードリスト180および専用プログラムを更新するシーケンス例について説明する。
 なお、命令コードリストおよび命令プログラムは、暗号化された状態でセキュアROM124に格納され、実行時に所定の鍵によって復号されてセキュアRAM123に展開されるものとする。
 また、図11の説明におけるサブプロセッサ121の処理は、例えば、サブプロセッサ121がプログラム置換え用の所定のプログラムに従って実現される。この置換え用プログラムが置換えの対象とするプログラムには、置換え用プログラム自身も含まれる。また、図11の説明におけるメインプロセッサ111の処理は、プログラム置換えをサブプロセッサ121に依頼するためのプログラムに従って実行される。
 まず、メインプロセッサ111は、放送局32から送信される、更新後の命令コードリストを監視する(ステップS71)。放送局32が、更新後の暗号化された命令コードリスト(以下、暗号化命令コードリスト)を端末装置100へ送信すると、メインプロセッサ111は、暗号化命令コードリストを受信する(ステップS72)。メインプロセッサ111は、受信した暗号化命令コードリストをセキュアLSI120へ出力する(ステップS73)。
 サブプロセッサ121は、入力された暗号化命令コードリストで、セキュアROM124に記憶された暗号化命令コードリストを更新する(ステップS74)。サブプロセッサ121は、更新後の暗号化命令コードリストを暗号演算回路122に復号させる。復号させるための鍵は、予めセキュア入力部130を経由してセキュアROM124に格納されている(ステップS75)。サブプロセッサ121は、復号された更新後の命令コードリストをセキュアRAM123に展開する(ステップS76)。サブプロセッサ121は、更新後の命令コードリストを展開した旨をメインプロセッサ111に出力する(ステップS77)。
 次に、メインプロセッサ111は、放送局32から送信され、更新後の専用プログラムを監視する。更新後の専用プログラムは、更新後の命令コードリストに含まれる専用命令コードにより構成される(ステップS78)。放送局32は、暗号化された更新後の専用プログラム(以下、暗号化専用プログラム)を端末装置100へ送信し、メインプロセッサ111は、暗号化された専用プログラムを受信する(ステップS79)。メインプロセッサ111は、受信した暗号化専用プログラムをセキュアLSI120へ出力する(ステップS80)。
 サブプロセッサ121は、入力された更新後の暗号化専用プログラムで、セキュアROM124に記憶された暗号化専用プログラムを更新する(ステップS81)。サブプロセッサ121は、更新した更新後の暗号化専用プログラムを暗号演算回路122に復号させる。復号させるための鍵は、予めセキュア入力部130を経由してセキュアROM124に格納されている(ステップS82)。サブプロセッサ121は、復号した更新後の専用プログラムをセキュアRAM123に展開する(ステップS83)。
 このように、命令コードリストおよび専用プログラムを置換えることで、命令コードリスト180の内容が漏洩しても、専用プログラムの内容の覗き見・改ざんを防止できる。
 以上の第2の実施の形態によれば、マスタ鍵等の機密情報は、セキュアLSI120にアクセスできるセキュア入力部130を介して格納される。これにより、機密情報をセキュアROM124に格納する際、外部からアクセスされる可能性のあるシステムLSI110等を介さないため、第三者に覗き見等される可能性が減少される。よって、端末装置100は、より安全にセキュアRAM123に機密情報を格納できる。
 また、セキュア入力部130を介した機密情報の入力処理は、少なくともセキュアLSI120の製造後の任意のタイミングで行うことが可能である。これにより、販売された端末装置100のために提供されるサービスの形態に合わせた適切な機密情報をセキュアROM124に格納できるようになり、端末装置100の汎用性が向上する。
 また、セキュアLSI120は、システムLSI110とデータを入出力できる外部入出力部125を介して、暗号化コンテンツ鍵等の暗号化データを取得する。そして、セキュアLSI120は、取得した暗号化データをセキュアROM124に格納された秘密鍵等を用いて復号し、復号したデータをシステムLSI110へ出力する。これにより、端末装置100は、秘密鍵等の機密情報を外部に知られることのないセキュアLSI120内で暗号化データを復号できるため、より安全に暗号化データを復号できる。
 また、端末装置100は、配信センター31からコンテンツ鍵を取得する際、セキュアLSI120で乱数を発生させる。次に、端末装置100は、発生させた乱数と、予めセキュアROM124に格納されている識別情報および秘密鍵とを用いて配信センター31と相互認証する。相互認証に成功した場合、端末装置100は、配信センター31からコンテンツ鍵を取得できる。これにより、端末装置100は、機密情報が改ざんされたり覗き見されたりせずに、配信センター31と相互認証できる。
 また、端末装置100は、セキュアLSI120上でのみ動作する専用プログラムを用いる。これにより、専用命令コードの覗き見により専用プログラムを解析することが困難となる。
 また、端末装置100は、セキュアLSI120において、変換プログラムおよび命令コードリスト180を用いて、専用プログラムを構成する専用命令コードをサブプロセッサ121に対応する命令コードに変換する。そして、サブプロセッサ121は、変換した命令コードを実行する。これにより、専用プログラムは、セキュア入力部130上のサブプロセッサ121に対応する命令コードに依存せずにセキュアLSI120上で実行可能となる。
 また、セキュアROM124上に記憶した命令コードリスト180および変換プログラムは、置換え可能である。これにより、何らかの理由で命令コードリスト180の内容が漏洩したとしても、専用プログラムの内容の解析を防止できる。
 ところで、端末装置100においては、セキュアROM124の容量が小さくセキュアLSI120上に多くの機密情報を保存できない場合がある。この場合、端末装置100は、セキュアLSI120外の記憶装置(例えば、フラッシュメモリ102)に暗号化された機密情報を保存してもよい。図12~図13では、機密情報をセキュアLSI120外の記憶装置であるRAM101やフラッシュメモリ102に入出力する方法について説明する。ここでは、放送コンテンツを再生する場合を例に機密情報の保存処理について説明する。また、マスタ鍵は、共通鍵であり、セキュアROM124に格納されている。
 なお、図12~図13において、サブプロセッサ121の処理は、図5の機密情報処理部150の処理に対応し、メインプロセッサ111の処理は、図5の放送コンテンツ再生部142の処理に対応する。
 図12は、機密情報の外部保存処理の例について示すフローチャートである。この外部保存処理は、例えば、図8のステップS53で復号されたワーク鍵を再暗号化してセキュアLSI120の外部に保存する処理や、図9のステップS63で復号されたコンテンツ鍵を再暗号化してセキュアLSI120の外部に保存する処理などに適用できる。
 (ステップS91)サブプロセッサ121は、機密情報のハッシュ値を計算する。
 (ステップS92)サブプロセッサ121は、計算したハッシュ値をセキュアROM124に格納する。
 (ステップS93)サブプロセッサ121は、機密情報をセキュアROM124に格納されたマスタ鍵等を用いて暗号演算回路122に暗号化させる。以下、暗号化した機密情報のことを、暗号化機密情報と記載する。
 (ステップS94)サブプロセッサ121は、暗号化機密情報をセキュアLSI120外の記憶装置(例えば、RAM101やフラッシュメモリ102等)に格納するようメインプロセッサ111に要求する。
 図13は、機密情報の読み出し処理の例について示すフローチャートである。図13では、図12の処理によってセキュアLSI120の外部の記憶領域に格納された機密情報を用いて所定の処理を実行する場合について説明する。
 (ステップS101)サブプロセッサ121は、セキュアLSI120の外部の記憶領域からセキュアLSI120上に暗号化機密情報を出力するようメインプロセッサ111に要求する。要求を受けたメインプロセッサ111は、図12の処理によって外部の記憶領域に記憶された暗号化機密情報を、サブプロセッサ121に出力する。
 (ステップS102)サブプロセッサ121は、取得した暗号化機密情報をマスタ鍵を用いて暗号演算回路122に復号させる。
 (ステップS103)サブプロセッサ121は、復号された機密情報のハッシュ値を計算する。
 (ステップS104)サブプロセッサ121は、計算したハッシュ値と、ステップS92で格納したハッシュ値が一致するか判定する。ハッシュ値が一致する場合、処理をステップS105へ進める。ハッシュ値が一致しない場合処理をステップS106へ進める。
 (ステップS105)サブプロセッサ121は、機密情報を用いて所定の処理を実行する。
 (ステップS106)サブプロセッサ121は、処理を中止し、メインプロセッサ111に、例えば機密情報が改ざんされたこと等を通知する通知情報を出力する。
 図12~図13で示すように、端末装置100は、機密情報をセキュアLSI120外の記憶装置に格納する場合、機密情報のハッシュ値をセキュアROM124等に格納する。次に、セキュアLSI120外の記憶装置に格納された機密情報を用いる場合、セキュアLSI120上で外部の記憶領域に格納された機密情報のハッシュ値を計算する。そして、計算したハッシュ値と、セキュアROM124上に格納されたハッシュ値と一致した場合、機密情報は改ざんされていないと判定する。これにより、セキュアLSI120外の記憶装置に格納された機密情報の改ざんの有無を確認できる。
 次に、メインプロセッサ111がコンテンツ鍵を用いて配信コンテンツや放送コンテンツを復号する際のセキュリティを向上させることが可能な変形例について説明する。
 第2の実施の形態の端末装置100が上記の方法によるコンテンツ鍵の取得後にコンテンツを出力する際、コンテンツを処理するコンテンツ処理プログラム(例えば、配信コンテンツ再生プログラムや放送コンテンツ再生プログラム)が、覗き見されたり改ざんされたりする場合がある。この場合、コンテンツ鍵が漏洩して、不特定多数が暗号化コンテンツを再生可能になってしまうことがあり得る。図14~図15において、コンテンツ処理プログラムの覗き見や改ざんを防止する方法の例について説明する。
 図14は、プログラムコードの再構成の例について示す図である。図14において、暗号化コンテンツ処理プログラム190は、フラッシュメモリ102に格納されている。暗号化コンテンツ処理プログラム190は、メインプロセッサ111がコンテンツを処理するためのコンテンツ処理プログラム191を暗号化したものである。また、暗号化コンテンツ処理プログラム190は、マスタ鍵等セキュアROM124に記憶された復号鍵により復号できるものとする。
 まず、サブプロセッサ121は、メインプロセッサ111を介して、暗号化コンテンツ処理プログラム190をフラッシュメモリ102から読み込み、読み込んだ暗号化コンテンツ処理プログラム190を復号鍵で暗号演算回路122に復号させる。復号されたコンテンツ処理プログラム191は、命令コード群であるコード群#1,#2,#3を含む。各コード群は、コード群#1,#2,#3の順に並んでいる。
 次に、サブプロセッサ121は、復号されたコンテンツ処理プログラム191を起動するごとに、コンテンツ処理プログラム191のコード群#1,#2,#3を並べ替えて、メインプロセッサ111を介してRAM101に展開する。そして、サブプロセッサ121は、展開されたコンテンツ処理プログラム191をメインプロセッサ111に実行させる。例えば、1回目の実行時において、コード群#3,#2,#1の順に並べ替えられたコンテンツ処理プログラム191aが、RAM101に展開される。また、2回目の実行時において、コード群#2,#1,#3の順に並べ替えられたコンテンツ処理プログラム191bが、RAM101に展開される。RAM101に配置されたコード群の配置順序などが違うのでハッカーのコード解析が困難になり、ハッキングを困難にできる。なお、コード群の配置が毎回異なるが、コード群の外から見た機能は同じである。
 このように、サブプロセッサ121は、メインプロセッサ111がコンテンツ処理プログラム191を実行する度に、コンテンツ処理プログラム191のコード群#1,#2,#3を並べ替えてRAM101に展開する。これにより、コンテンツ処理プログラム191が実行される度に命令コードの並ぶ順番が変わっているため、第三者が覗き見によりコンテンツ処理プログラムを解析することが困難となる。
 図15は、プログラムとの相互認証の例について示す図である。図15上段において、まず、暗号化コンテンツ処理プログラム190は、図14と同様に、セキュアLSI120によりコード群#1,#2,#3の命令コードを含むコンテンツ処理プログラム191に復号される(ステップS111)。
 この状態で、サブプロセッサ121は、コード群#1,#2,#3および定数#1,#2を並べ替える。ここでは例として、コード群#3,#2、定数#1、コード群#1、定数#2の順に並べ替えられたコンテンツ処理プログラム191cが生成される。定数#1,#2は、セキュアLSI120の乱数発生回路126によってそれぞれランダムに生成され、サブプロセッサ121とコンテンツ処理プログラム191cとの相互認証に用いられる。定数#1,#2は、セキュアLSI120上の記憶領域(例えば、セキュアRAM123、セキュアROM124等)にも格納される。そして、サブプロセッサ121は、メインプロセッサ111に、並べ替えられたコンテンツ処理プログラム191cをRAM101に展開させる(ステップS112)。
 次に、図15下段において、コンテンツ処理プログラム191cがメインプロセッサ111に実行された後、サブプロセッサ121は、乱数Cを生成し、生成した乱数Cをメインプロセッサ111に出力する(ステップS113)。メインプロセッサ111は、受信した乱数Cとコンテンツ処理プログラム191cに含まれる定数#1との和をサブプロセッサ121へ出力する(ステップS114)。
 サブプロセッサ121は、サブプロセッサ121が出力した乱数CとセキュアLSI120上に格納されている定数#1との和と、メインプロセッサ111から入力された値とが一致した場合、コンテンツ処理プログラム191cの認証に成功したと判定する。サブプロセッサ121は、コンテンツ処理プログラム191cの認証に成功した場合、受信した値と定数#2との和をコンテンツ処理プログラム191cに出力する(ステップS115)。メインプロセッサ111は、メインプロセッサ111がステップS114で出力した値とコンテンツ処理プログラム191cに含まれる定数#2との和と、サブプロセッサ121から入力された値が一致した場合、サブプロセッサ121の認証に成功したと判定する。メインプロセッサ111は、以上のように相互認証が正常に完了すると、コンテンツ処理プログラム191cを実行する。
 このように、サブプロセッサ121は、コンテンツ処理プログラム191をメインプロセッサ111が実行する際、コンテンツ処理プログラム191に含まれるコードと予めセキュアLSI120上の記憶領域に格納されている定数を並べ替えたコンテンツ処理プログラム191cをRAM101に展開する。そして、展開したコンテンツ処理プログラム191cに含まれる定数を用いて相互認証することで、コンテンツ処理プログラム191cの改ざんの有無を判定することができる。これにより、コンテンツ鍵等、コンテンツ処理プログラム191が取り扱う機密情報が漏洩する可能性を低下させることができる。
 なお、前述のように、第1の実施の形態の情報処理は、情報処理装置1にプログラムを実行させることで実現でき、第2の実施の形態の情報処理は、端末装置100にプログラムを実行させることで実現できる。このようなプログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等を使用できる。磁気ディスクには、FD(Floppy Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)、CD-R(Recordable)/RW(Rewritable)、DVD(Digital Versatile Disc)およびDVD-R/RWが含まれる。
 プログラムを流通させる場合、例えば、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク40経由でプログラムを配布することができる。コンピュータは、例えば、他のコンピュータから受信したプログラムを、記憶装置(例えば、フラッシュメモリ102)に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、他のコンピュータからネットワーク40を介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、DSP、ASIC、PLD(Programmable Logic Device)等の電子回路で実現することも可能である。
 上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
 1 情報処理装置
 2 第1の通信路
 3 第2の通信路
 4 暗号化データ
 5 復号化データ
 6 鍵
 10 セキュアモジュール
 11 入力部
 12 メモリ
 13 第2の制御回路
 20 第1の制御回路

Claims (14)

  1.  セキュアモジュールと、
     前記セキュアモジュールの外部に設けられ、第1の通信路を通じて暗号化データを前記セキュアモジュールに入力する第1の制御回路と、
     を備え、
     前記セキュアモジュールは、
     前記第1の制御回路からの読み書きが不可能なメモリであって、前記暗号化データの復号に用いられる鍵が格納されたメモリと、
     前記鍵を用いて前記暗号化データを復号し、前記第1の通信路を通じて前記第1の制御回路に出力する第2の制御回路と、
     前記第1の通信路とは分離された第2の通信路を通じて入力された前記鍵を、前記メモリに格納する入力部と、
     を有することを特徴とする情報処理装置。
  2.  前記暗号化データは、画像データまたは音声データを少なくとも含む、暗号化されたコンテンツデータを復号するための復号鍵が暗号化されたデータであり、
     前記第1の制御回路は、前記暗号化データを復号して得られた前記復号鍵を前記第2の制御回路から受信し、受信した前記復号鍵を用いて前記暗号化されたコンテンツデータを復号する、
     ことを特徴とする請求の範囲第1項記載の情報処理装置。
  3.  前記メモリには、前記暗号化データの復号の制御を含む処理を実行するための専用プログラムが格納され、
     前記第2の制御回路は、前記専用プログラムを実行するプロセッサを有する、
     ことを特徴とする請求の範囲第1項または第2項記載の情報処理装置。
  4.  前記第2の制御回路は、暗号化された更新用の専用プログラムを前記第1の制御回路から受信し、暗号化された前記更新用の専用プログラムを前記鍵を用いて復号し、復号された前記更新用の専用プログラムによって前記メモリに格納された前記専用プログラムを書き替えることを特徴とする請求の範囲第3項記載の情報処理装置。
  5.  前記第2の制御回路は、乱数を出力する機能を有し、前記暗号化データを送信する前記情報処理装置外の送信装置との間で、前記第1の制御回路を介し、出力した乱数を用いて相互認証処理を行い、前記相互認証処理が成功すると、前記暗号化データを前記制御回路を介して受信する、
     ことを特徴とする請求の範囲第1項乃至第4項のいずれか1項に記載の情報処理装置。
  6.  前記入力部は、前記第2の通信路を通じて入力された認証情報を、前記セキュアモジュール内に予め格納された認証情報と比較し、入力された認証情報と格納された認証情報とが一致したとき、前記第2の通信路から入力された情報を当該入力部から前記メモリに出力することを一時的に許可する認証回路を有することを特徴とする請求の範囲第1項乃至第5項のいずれか1項に記載の情報処理装置。
  7.  前記入力部は、前記第2の通信路を通じて入力された情報を、前記セキュアモジュール内に予め格納された入力部用鍵情報を用いて復号する復号回路を有することを特徴とする請求の範囲第1項乃至第6項のいずれか1項に記載の情報処理装置。
  8.  セキュアモジュールと、
     前記セキュアモジュールの外部に設けられ、第1の通信路を通じて暗号化データを前記セキュアモジュールに入力する第1の制御回路と、
     を備え、
     前記セキュアモジュールは、
     前記第1の制御回路からの読み書きが不可能なメモリであって、前記暗号化データの復号に用いられる鍵が格納されたメモリと、
     前記鍵を用いて前記暗号化データを復号し、前記第1の通信路を通じて前記第1の制御回路に出力する第2の制御回路と、
     前記第1の通信路とは分離された第2の通信路を通じて入力された前記鍵を、前記メモリに格納する入力部と、
     を有することを特徴とする半導体装置。
  9.  前記暗号化データは、画像データまたは音声データを少なくとも含む、暗号化されたコンテンツデータを復号するための復号鍵が暗号化されたデータであり、
     前記第1の制御回路は、前記暗号化データを復号して得られた前記復号鍵を前記第2の制御回路から受信し、受信した前記復号鍵を用いて前記暗号化されたコンテンツデータを復号する、
     ことを特徴とする請求の範囲第8項記載の半導体装置。
  10.  前記メモリには、前記暗号化データの復号の制御を含む処理を実行するための専用プログラムが格納され、
     前記第2の制御回路は、前記専用プログラムを実行するプロセッサを有する、
     ことを特徴とする請求の範囲第8項または第9項記載の半導体装置。
  11.  前記第2の制御回路は、暗号化された更新用の専用プログラムを前記第1の制御回路から受信し、暗号化された前記更新用の専用プログラムを前記鍵を用いて復号し、復号された前記更新用の専用プログラムによって前記メモリに格納された前記専用プログラムを書き替えることを特徴とする請求の範囲第10項記載の半導体装置。
  12.  前記第2の制御回路は、乱数を出力する機能を有し、前記暗号化データを送信する前記情報処理装置外の送信装置との間で、前記第1の制御回路を介し、出力した乱数を用いて相互認証処理を行い、前記相互認証処理が成功すると、前記暗号化データを前記制御回路を介して受信する、
     ことを特徴とする請求の範囲第8項乃至第11項のいずれか1項に記載の半導体装置。
  13.  前記入力部は、前記第2の通信路を通じて入力された認証情報を、前記セキュアモジュール内に予め格納された認証情報と比較し、入力された認証情報と格納された認証情報とが一致したとき、前記第2の通信路から入力された情報を当該入力部から前記メモリに出力することを一時的に許可する認証回路を有することを特徴とする請求の範囲第8項乃至第12項のいずれか1項に記載の半導体装置。
  14.  前記入力部は、前記第2の通信路を通じて入力された情報を、前記セキュアモジュール内に予め格納された入力部用鍵情報を用いて復号する復号回路を有することを特徴とする請求の範囲第8項乃至第13項のいずれか1項に記載の半導体装置。
PCT/JP2012/075081 2012-09-28 2012-09-28 情報処理装置および半導体装置 WO2014049830A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP12885704.2A EP2903202A4 (en) 2012-09-28 2012-09-28 INFORMATION PROCESSING DEVICE AND SEMICONDUCTOR DEVICE
JP2014537997A JPWO2014049830A1 (ja) 2012-09-28 2012-09-28 情報処理装置および半導体装置
PCT/JP2012/075081 WO2014049830A1 (ja) 2012-09-28 2012-09-28 情報処理装置および半導体装置
US14/666,601 US20150195258A1 (en) 2012-09-28 2015-03-24 Information processing apparatus and semiconductor apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/075081 WO2014049830A1 (ja) 2012-09-28 2012-09-28 情報処理装置および半導体装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/666,601 Continuation US20150195258A1 (en) 2012-09-28 2015-03-24 Information processing apparatus and semiconductor apparatus

Publications (1)

Publication Number Publication Date
WO2014049830A1 true WO2014049830A1 (ja) 2014-04-03

Family

ID=50387292

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/075081 WO2014049830A1 (ja) 2012-09-28 2012-09-28 情報処理装置および半導体装置

Country Status (4)

Country Link
US (1) US20150195258A1 (ja)
EP (1) EP2903202A4 (ja)
JP (1) JPWO2014049830A1 (ja)
WO (1) WO2014049830A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016088273A1 (ja) * 2014-12-05 2016-06-09 富士通株式会社 セキュリティ装置および制御方法
JP2016144040A (ja) * 2015-02-02 2016-08-08 株式会社東芝 情報処理端末、情報処理方法、及び情報処理システム
JP2017050865A (ja) * 2015-09-03 2017-03-09 エルエス産電株式会社Lsis Co., Ltd. 通信装置
JP2018169694A (ja) * 2017-03-29 2018-11-01 大日本印刷株式会社 故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス
JP2019029933A (ja) * 2017-08-02 2019-02-21 富士通株式会社 コンテンツ配信装置、コンテンツ配信システム、コンテンツ配信プログラム、およびコンテンツ配信方法
JP7221462B1 (ja) * 2022-05-26 2023-02-13 三菱電機株式会社 プログラマブルロジックコントローラ、制御方法及びプログラム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107113172B (zh) * 2015-12-10 2019-03-29 深圳市大疆创新科技有限公司 无人机认证方法,安全通信方法及对应系统
JP6589996B2 (ja) * 2016-01-15 2019-10-16 富士通株式会社 セキュリティ装置および制御方法
US11177954B2 (en) * 2016-06-20 2021-11-16 Hewlett-Packard Development Company, L.P. Firmware-inaccessible key storage
US11362824B2 (en) * 2018-05-25 2022-06-14 Intertrust Technologies Corporation Content management systems and methods using proxy reencryption
US10659437B1 (en) * 2018-09-27 2020-05-19 Xilinx, Inc. Cryptographic system
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
KR20210089486A (ko) * 2020-01-08 2021-07-16 삼성전자주식회사 키를 안전하게 관리하기 위한 장치 및 방법
TWI766327B (zh) * 2020-07-31 2022-06-01 建國工程股份有限公司 即時取得資訊方法及系統
US20220246110A1 (en) * 2021-02-01 2022-08-04 Qualcomm Incorporated Dpu enhancement for improved hdcp user experience
DE102021105402A1 (de) 2021-03-05 2022-09-08 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1055273A (ja) * 1996-06-05 1998-02-24 Matsushita Electric Ind Co Ltd ソフトウェア保護装置
JPH1079000A (ja) * 1996-09-03 1998-03-24 Hitachi Ltd プログラム書き込み可能なicカード
JP2000285025A (ja) * 1999-03-31 2000-10-13 Nippon Computer:Kk セキュリティ管理用電子デバイス
JP2002185447A (ja) * 2000-12-18 2002-06-28 Toshiba Corp 秘匿データ処理装置及びその電子部品
JP2003198527A (ja) 2001-12-27 2003-07-11 Fujitsu Ltd 情報再生装置およびセキュアモジュール
JP2004096666A (ja) 2002-09-04 2004-03-25 Matsushita Electric Ind Co Ltd 暗号化部を有する半導体装置、外部インターフェースを有する半導体装置、およびコンテンツ再生方法
JP2004129227A (ja) 2002-07-30 2004-04-22 Fujitsu Ltd 情報再生装置、セキュアモジュールおよび情報再生方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001127747A (ja) * 1999-10-25 2001-05-11 Toshiba Corp 情報暗号化復号化装置
FR2800952B1 (fr) * 1999-11-09 2001-12-07 Bull Sa Architecture d'un circuit de chiffrement mettant en oeuvre differents types d'algorithmes de chiffrement simultanement sans perte de performance
JP4686805B2 (ja) * 2000-01-25 2011-05-25 ソニー株式会社 データ記憶素子製造方法およびデータ記憶素子、並びにデータ処理装置
EP2357651A3 (en) * 2000-12-07 2013-06-26 SanDisk Technologies Inc. System, method, and device for playing back recorded audio, video or other content from non-volatile memory cards, compact disks or other media
DE10137505B4 (de) * 2001-07-16 2005-06-23 Francotyp-Postalia Ag & Co. Kg Anordnung und Verfahren zum Ändern der Funktionalität eines Sicherheitsmoduls
EP1795991A1 (en) * 2002-07-30 2007-06-13 Fujitsu Limited Method and apparatus for reproducing information using a security module
JP4246529B2 (ja) * 2003-03-31 2009-04-02 富士通株式会社 地上デジタル放送システムおよび地上デジタル放送権利保護装置
US8639946B2 (en) * 2005-06-24 2014-01-28 Sigmatel, Inc. System and method of using a protected non-volatile memory
US20080141042A1 (en) * 2006-12-11 2008-06-12 Phison Electronics Corp. Memory card and security method therefor
ES2525469T3 (es) * 2008-03-31 2014-12-23 Orange Procedimiento de acceso y de transferencia de datos relacionados con una aplicación instalada en un módulo de seguridad asociado a un terminal móvil, módulo de seguridad, servidor de gestión y sistema asociados
JP2011010218A (ja) * 2009-06-29 2011-01-13 Toshiba Corp 携帯可能電子装置、及び携帯可能電子装置の制御方法
JP5400564B2 (ja) * 2009-10-21 2014-01-29 富士通株式会社 受信装置及びコンテンツの再暗号化方法
US8826039B2 (en) * 2010-02-02 2014-09-02 Broadcom Corporation Apparatus and method for providing hardware security
JP5775738B2 (ja) * 2011-04-28 2015-09-09 富士通株式会社 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1055273A (ja) * 1996-06-05 1998-02-24 Matsushita Electric Ind Co Ltd ソフトウェア保護装置
JPH1079000A (ja) * 1996-09-03 1998-03-24 Hitachi Ltd プログラム書き込み可能なicカード
JP2000285025A (ja) * 1999-03-31 2000-10-13 Nippon Computer:Kk セキュリティ管理用電子デバイス
JP2002185447A (ja) * 2000-12-18 2002-06-28 Toshiba Corp 秘匿データ処理装置及びその電子部品
JP2003198527A (ja) 2001-12-27 2003-07-11 Fujitsu Ltd 情報再生装置およびセキュアモジュール
JP2004129227A (ja) 2002-07-30 2004-04-22 Fujitsu Ltd 情報再生装置、セキュアモジュールおよび情報再生方法
JP2004096666A (ja) 2002-09-04 2004-03-25 Matsushita Electric Ind Co Ltd 暗号化部を有する半導体装置、外部インターフェースを有する半導体装置、およびコンテンツ再生方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016088273A1 (ja) * 2014-12-05 2016-06-09 富士通株式会社 セキュリティ装置および制御方法
JPWO2016088273A1 (ja) * 2014-12-05 2017-09-07 富士通株式会社 セキュリティ装置および制御方法
JP2016144040A (ja) * 2015-02-02 2016-08-08 株式会社東芝 情報処理端末、情報処理方法、及び情報処理システム
JP2017050865A (ja) * 2015-09-03 2017-03-09 エルエス産電株式会社Lsis Co., Ltd. 通信装置
KR20170028218A (ko) * 2015-09-03 2017-03-13 엘에스산전 주식회사 동적 모드버스 프로토콜 매핑을 지원하는 통신 장치
US9973598B2 (en) 2015-09-03 2018-05-15 Lsis Co., Ltd. Communications device supporting dynamic modbus protocol mapping
KR101977401B1 (ko) 2015-09-03 2019-05-13 엘에스산전 주식회사 동적 모드버스 프로토콜 매핑을 지원하는 통신 장치
JP2018169694A (ja) * 2017-03-29 2018-11-01 大日本印刷株式会社 故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス
JP2019029933A (ja) * 2017-08-02 2019-02-21 富士通株式会社 コンテンツ配信装置、コンテンツ配信システム、コンテンツ配信プログラム、およびコンテンツ配信方法
JP7221462B1 (ja) * 2022-05-26 2023-02-13 三菱電機株式会社 プログラマブルロジックコントローラ、制御方法及びプログラム
WO2023228373A1 (ja) * 2022-05-26 2023-11-30 三菱電機株式会社 プログラマブルロジックコントローラ、制御方法及びプログラム

Also Published As

Publication number Publication date
EP2903202A1 (en) 2015-08-05
JPWO2014049830A1 (ja) 2016-08-22
US20150195258A1 (en) 2015-07-09
EP2903202A4 (en) 2015-11-04

Similar Documents

Publication Publication Date Title
WO2014049830A1 (ja) 情報処理装置および半導体装置
US7962713B2 (en) Memory device having secure non-volatile locking functionality
JP4687703B2 (ja) 記録システム、情報処理装置、記憶装置、記録方法及びプログラム
US8402240B2 (en) Systems and methods for locking and exporting the locking of a removable memory device
US8280818B2 (en) License source component, license destination component, and method thereof
US20040236918A1 (en) Information storage device, memory access control system and method, and computer program
US20060059105A1 (en) Move component, program, and move method
US20140289514A1 (en) Secure transfer and tracking of data using removable nonvolatile memory devices
US20080270796A1 (en) System and method for providing program information, and recording medium used therefor
US20060069652A1 (en) Copy component, program and method thereof
US20060155651A1 (en) Device and method for digital rights management
JP4239747B2 (ja) 情報処理装置、およびコンテンツ情報管理方法、並びにコンピュータ・プログラム
US20040236919A1 (en) Information storage device, memory access control method, and computer program
US20060059101A1 (en) Reproduction component, program and method thereof
US20060059103A1 (en) Return component, program, and return component method
JP2007133608A (ja) 情報処理装置、ソフトウェアインストール方法、および光ディスク
US8438112B2 (en) Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device
US20060059104A1 (en) Rent component, program, and rent component method
WO2015045172A1 (ja) 情報処理装置及び情報処理方法
US20100166189A1 (en) Key Management Apparatus and Key Management Method
JP2009080772A (ja) ソフトウェア起動システム、ソフトウェア起動方法、及びソフトウェア起動プログラム
US20150269360A1 (en) Control method and system
CN115189929B (zh) 授权认证的方法、装置、计算机设备和存储介质
JP2014197374A (ja) 携帯型記録媒体、携帯型記録媒体を含むシステム、携帯型記録媒体のデータ復旧方法
US20080229094A1 (en) Method of transmitting contents between devices and system thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12885704

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014537997

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2012885704

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012885704

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE