The present invention relates to a conditional access system apparatus which uses Java™, and particularly to an apparatus which uses Java™ for descrambling of scrambled video and audio.
At present, in order to provide high value-added contents through paid broadcasts, video and audio are scrambled and broadcast, and a digital television having a built-in conditional access apparatus with which only a contracting viewer can view descrambled video and audio is implemented.
An example is described in Japanese Unexamined Patent Application Publication no. 2000-295541 “Broadcast Receiving Apparatus, Broadcast Receiving Apparatus Contract Information Processing Method, and Broadcast Receiver Contract Information Processing Program Recording Medium”.
The descrambler 2707 descrambles (decrypts) the scrambled stream using the provided key.
The control unit 2702 notifies a TS decoder 2708 of the identifier of audio data and video data within the stream descrambled by the descrambler 2707. The TS decoder 2708 passes the audio data to an audio decoder 2709 and the video data to a video decoder 2711, using the provided identifier of the audio data and video data. The audio decoder 2709 performs analog conversion of digital audio data, and outputs the result through a speaker 2710. The video decoder 2711 performs analogue conversion of digital video data, and outputs the result through a monitor 2712.
However, with the conventional technique, the CA control unit is implemented as a program executed in the CPU or an LSI. Such program is dependent on the CPU and the LSI and thus, when the conditional access apparatus provided is different, porting becomes necessary. The program making up the CA control unit is developed a CA system firm and, although provided to terminal development firms, since details are confidential, porting is carried out by the CA system firm. As such, in the case where plural terminals are each made up of different CPUs or LSI, there is the problem that much time is required to deploy one CA system for all of them.
Furthermore, with the conventional conditional access apparatus, one receiving terminal can only handle one type of CA system. For example, when a user relocates, there is a need to exchange the terminal itself in the case where the broadcasting company at the relocation site uses a different CA system.
By describing the CA control unit in Java™, the present invention obviates the need for porting a CA control program, and enables development of a CA system over plural terminals in a short time. Furthermore, the present invention has as an object to provide a conditional access apparatus for obviating the need to replace a terminal when a user relocates, by downloading a CA control program described in Java™ corresponding to the CA system of the area to which the user has relocated.
In order to solve the conventional problem, the Java conditional access apparatus is characterized in including: a descramble circuit which descrambles an encrypted broadcast content using corresponding key information, the encrypted broadcast content being included in a broadcast signal; a key generation information obtainment library which obtains key generation information from the broadcast signal according to a specified method, the key generation information being necessary for generating the key information; a condition-release control unit which generates the corresponding key information using the key generation information, and passes the generated corresponding key information to said descrambler; a Java VM which executes a CA control Java program and an other Java program, the CA control Java program: specifying, to said key information obtainment library, a method for obtaining the key generation information stored in the broadcast signal; requesting obtainment of the key generation information; obtaining the key generation information; providing the obtained key generation information to said condition-release control unit; and instructing descrambling by instructing key information; a storage unit in which the CA control Java program is stored, a channel reproduction starting unit which receives, from the Java program, information on a channel to be reproduced, and starts reproduction of the channel which is specified; a registration unit which registers a callback function for enabling the CA control Java program to receive information on the channel to be reproduced; and a notification unit which calls the callback function registered in said registration unit, and notifies said CA control Java program of information on the specified channel to be reproduced, when said channel reproduction starting unit starts reproduction of the channel.
According to the present invention, the Java conditional access apparatus includes: a descramble circuit which descrambles an encrypted broadcast content using corresponding key information, the encrypted broadcast content being included in a broadcast signal; a key generation information obtainment library which obtains key generation information from a specific storage area in the broadcast signal, the key generation information being necessary for generating the key information; a Java VM which executes a CA control program which requests, to the key information obtainment library, the obtainment of the key generation information stored in the broadcast signal; a storage unit in which the CA control program is stored; a condition-release control unit which generates the corresponding key information using the extracted key generation information, and passes the generated corresponding key information to the descrambler; and an API which executes a specific process in accordance with a call from a program executed within the apparatus, wherein: the API includes a registration unit which registers a function for enabling the CA control program to receive information on the selected channel to be reproduced; and upon receiving the function for enabling the receiving of the information on the selected channel to be reproduced from the CA control program executed by the Java VM, the registration unit registers the received function; and when the registration unit receives the information on the selected channel to be reproduced, the information on the selected channel to be reproduced is notified to the CA control program executed by the Java VM, by calling the registered function; and upon receiving the notification on the information on the channel to be reproduced, the CA control program executed by the Java VM requests the key generation information obtainment library to obtain key generation information corresponding to the received information on the channel, and passes the received key generation information to the condition-release control unit. Therefore, the CA control program can be written in Java. A program written in Java can operate on all receivers provided with the Java VM, regardless of the type of CPU and LSI, and thus the need for porting the CA control program into each receiver is eliminated.
Furthermore, the Java conditional access apparatus includes a Java a key generation information obtainment library which obtains key generation information from a specific storage area in the broadcast signal, the key generation information being necessary for generating the key information, thereby enabling the CA control program written in Java to extract, from the broadcast signal, key generation information for generating a required key.
Furthermore, in the Java conditional access apparatus, when the registration unit receives the information on the selected channel to be reproduced, the information on the selected channel to be reproduced is notified to the CA control program executed by the Java VM, by calling the registered function. Therefore, the CA control program written in Java can pass, to the condition-release control unit, the key generation information necessary for descrambling, and the video and audio of the channel selected by the user can be properly descrambled.
Furthermore, in the Java conditional access apparatus, the API further includes a registration unit which registers a function for enabling the CA control program to receive information on the selected channel to be reproduced; and upon receiving the function for enabling the receiving of the information on the selected channel to be reproduced from the CA control program executed by the Java VM, the registration unit registers the received function. Therefore, operation is possible even for replacement through importing the CA control program written in Java from an external source.
Furthermore, the Java conditional access apparatus further includes a cancellation unit which cancels the function registered through the reception from the CA control program; and the registration is cancelled when a request for canceling the registration is received from the CA control program executed by the Java VM. Therefore, it is possible to control the notification to the CA control program.
Furthermore, in the Java conditional access apparatus, the API further includes a right checking unit which checks whether or not the CA control Java program has a right to call the API; and the call to the API from the CA control Java program is rejected depending on a judgment of the right checking unit. Therefore, only a specific Java program can control the operation (for example, the registration/cancellation of the function for receiving information on the selected channel to be reproduced) of the CA control program, and thus preventing disarray in the operation of the receiver.
Furthermore, the Java conditional access apparatus further includes a first download unit which receives CA control Java program definition information defining the CA control Java program, obtains the CA control Java program according to the CA control Java program definition information, and stores the obtained CA control Java program in the storage unit, thereby enabling the CA control program written in Java to be replaced by remote operation from the transmitting-side.
Furthermore, the Java conditional access apparatus further includes a second download unit which receives Java program definition information defining a Java program other than the CA control Java program, obtains the Java program according to the Java program definition information, and stores the obtained Java program in the storage unit. Therefore, an existing Java program can be executed. In addition, a receiver that is only capable of executing an existing Java program and a receiver that is also capable of executing a Java program that performs CA control can be used simultaneously in the same broadcasting area.
Furthermore, in the Java conditional access apparatus, when the CA control program definition information is changed, the download unit obtains a new CA control program according to the changed CA control program definition information, and stores the new CA control program in the storage unit, and the Java conditional access apparatus further includes a CA control program control unit which stops the CA control program currently being executed, and activates the new CA control program stored in the storage unit. Therefore, the CA control program written in Java can be replaced by remote operation from the transmitting-side.
Furthermore, in the Java conditional access apparatus, the API further includes a CAS management unit which notifies a user when the CA control program definition information is changed, and thereby the user can be notified that, with a relocation, the CAS is now different, and that a new contract is necessary.
An embodiment of a digital television system including the conditional access apparatus of the present invention shall be described with reference to the drawings.
The input unit 101 is configured of a front panel, remote control light receiver, and the like, and accepts a channel selection from a user. The input unit 101, in the case where it is a remote control light receiver, accepts the channel selection of the user by accepting the input of the remote control 305 shown in
The first memory 102 is configured of a ROM, a flash memory, a hard disk, or the like, and stores a program executed by the CPU 103.
The CPU 103 is a central arithmetic processing apparatus which executes the program stored in the first memory 102.
The OS 201 is a program activated by the CPU 103 when power to the digital television 100 is turned on. The OS 201 stands for operating system, an example of which is Linux and the like. The OS 201 is a generic name for publicly known technology made up of a kernel 201a for executing a subprogram in parallel with another subprogram and of a library 201b, and therefore a detailed description is omitted. In the present embodiment, the OS 201 and the kernel 201 execute the EPG 202 and the Java™ VM 203 as subprograms. Furthermore, the library 201b provides these subprograms with plural functions required for controlling the constituent elements of the digital television 100.
In the present embodiment, the library includes a tuner 201b1, condition-release 201b2, AV reproduction 202b3, a section filter 202b4, as an example of functions.
The tuner 201b receives tuning information including a frequency from other subprograms and the Tuner 205c of the Java™ library 205, and gives an instruction to the receiving unit 104.
The receiving unit 104 performs tuning based on the provided tuning information, and passes an extracted MPEG transport stream to the demultiplex unit 105. As a result, the other subprograms and the Tuner 205c of the Java™ library 205 can control the receiving unit 104 via the library 201b.
The condition-release 201b receives, from a CA control API 205d, information including an encrypted key needed for decryption, and provides the key to the condition-release control unit 107.
The AV reproduction 201b3 receives the identifier of the audio data and the identifier for the video data from the other subprograms and the Tuner 205c of the Java™ library 205. It then passes the received identifiers of the audio data and video data to the TS decoder 109. [As a result, the TS decoder 109 performs filtering based on the provided identifier, and implements the reproduction of audio/video.
The EPG 202 is made up of a TV-program display unit 202a for displaying a list of TV programs to a user as well as for accepting an input from the user, and a reproduction unit 202b for selecting channels. Here, EPG is an abbreviation of Electric Program Guide. The EPG 202 is activated by the kernel 201a when power to the digital television 100 is turned on. Inside the activated EPG 202, the TV-program display unit 202a and the reproduction unit 202b are activated at the same time. When activated, the TV-program display unit 202a waits for an input from the user via the input unit 101 of the digital television 100. Here, in the case where the input unit 101 is configured of a front panel as shown in
Furthermore, the program display unit 202a stores, in advance, TV-program information to be displayed, in the second memory 106. Generally, TV-program information is piggybacked onto a broadcast signal. Obtaining TV-program information and storing this in the second memory 106 takes time. However, it becomes possible to quickly display a TV-program table by displaying the TV-program information that is pre-stored in the second memory 106 at the press of the EPG button 407 of the input unit 101.
The reproduction unit 202b reproduces the channel using the received identifier of the channel, that is, it reproduces the video and audio making up the channel. The relationship between channel identifiers and channels is pre-stored in the second memory 106 as channel information.
Moreover, when the user presses down the up-cursor 401 and the down-cursor 402 on the front panel 400 while the reproduction is taking place, the reproduction unit 202b receives a notification about such pressing from the input unit 101 via the CPU 103, and switches the channel being reproduced accordingly. When the up-cursor 401 is pressed down, a channel having the next lower channel identifier to that of the currently-reproduced channel is reproduced, and when the down-cursor 402 is pressed down, a channel having the next higher channel identifier to that of the currently-reproduced channel is reproduced. First, the reproduction unit 202b stores, in the second memory 106, the identifier of the channel that is currently being reproduced.
In addition, upon being activated when power to the digital television 100 is turned on, the reproduction unit 202b reads the channel identifier stored in the second memory 106. Then, the reproduction unit 202b passes such channel identifier to the service manager. Thus, when power is turned on, the digital television 100 is able to start the reproduction of the last channel that was reproduced during its previous operation.
The Java™ VM 203 is a Java™ virtual machine that sequentially analyzes and executes programs written in the Java™ language. Programs written in the Java™ language are compiled into intermediate codes known as a byte code which are not dependent on hardware. The Java™ virtual machine is an interpreter that executes such byte code. Some Java™ virtual machines translate the byte code into an execution format which can be interpreted by the CPU 103 before passing it to the CPU 103 which executes it. The Java™ VM 203 gets activated, with a Java™ program to be executed being specified by the kernel 201a. In the present embodiment, the kernel 201a specifies the service manager 204 as a Java™ program to be executed. Details of the Java™ language are described in many publications such as “Java™ Language Specification” (ISBN 0-201-63451-1). Here, such details are omitted. Furthermore, the detailed operation of the Java™ VM itself is described in many publications such as “Java™ Virtual Machine Specification” (ISBN 0-201-63451-X). Here, such details are omitted.
The service manager 204, which is a Java™ program written in the Java™ language, is sequentially executed by the Java™ VM 203. It is possible for the service manager 204 to call and to be called by another subprogram not written in the Java™ language, through the INI (Java™ Native Interface). The INI is also described in many publications such as in the book “Java™ Native Interface” and so on. Here, such details are omitted.
The service manager 204 accepts the identifier of the channel from the reproduction unit 202b, through the JNI. The service manager 204 first passes the identifier of the channel to the Tuner 205c in the library 205, and requests for tuning. The Tuner 205c refers to the channel information stored in the second memory 106, and obtains the tuning information. Now, when the service manager 204 passes the identifier “2” of the channel to the Tuner 205c, the Tuner 205c refers to the column 612 shown in
The service manager 204 requests the CA control API 205d inside the Java™ library 205 to perform descrambling. The CA control API 205d requests the descrambling to a CA control application stored in the second memory, to be described later. The CA control application passes information including an encrypted key to the CA control API 205d, after a required processing is performed. The CA control API 205d provides, to the condition-release control unit 107, the information including the encrypted key which it receives through the condition-release 201b2 of the library 201b of the OS 201.
The service manager 204 provides the identifier of the channel to a JMF 205a inside the Java™ library 205, and requests for the reproduction of the video and audio.
First, the JMF 205a obtains, from a PAT and a PMT, identifiers for identifying the video and audio to be reproduced. PAT and PMT are tables, defined by the MPEG-2 standard, that show the TV-program line-up included in an MPEG-2 transport stream. The PAT and PMT are extracted from the MPEG-2 transport stream using the demultiplex unit 105. The extraction method is publicly known technology and thus description shall be omitted.
Next, the IMF 205a passes the obtained identifiers of the audio data and video data to the AV reproduction 201b3 of the library 201b of the OS 201. The AV reproduction 201b3 then passes the received identifiers of the audio data and video data to the TS decoder 109. The TS decoder 109 performs filtering based on the provided identifiers of the audio data and video data, and passes the audio data to the audio decoder 110 and the video data to the video decoder 112.
Finally, the service manager 204 provides the channel identifier to an AM 205b in the Java™ library 205, and requests for data broadcast reproduction. Here, data broadcast reproduction refers to extracting a Java™ program included in the MPEG-2 transport stream, and having it executed by the Java™ VM 1203. As a technique for embedding a Java™ program into an MPEG-2 transport stream, a method known as DSMCC, which is described in the MPEG specification ISO/IEC13818-6, is used. Here, detailed description of DSMCC shall be omitted. The DSMCC format defines a method of encoding a file system, which is made up of directories and files used by a computer, in packets within an MPEG-2 transport stream. Furthermore, information about the Java™ program to be executed is embedded and sent in packets in the MPEG-2 transport stream in a form referred to as AIT. AIT is an abbreviation of Application Information Table defined in the 10th chapter of the DVB-MHP Standard (formally as, ETS TS 101 812 DVB-MHP Specification V1.0.2).
The AM 205b downloads a Java™ program based on the information described in the AIT, and stores this in the second memory 106. The method for obtaining the AIT, downloading the Java™ program, and storing into the second memory is publicly known technology, and thus description shall be omitted.
Next, the AM 205b passes to the Java™ VM 203, the Java™ program downloaded to the second memory 106. The Java™ VM 203 executes the Java™ program passed to it. Upon receiving an identifier of an other channel, the service manager stops the execution, though the respective libraries included in the Java™ library 205, of the currently-reproduced video/audio and Java™ program, likewise through the respective libraries included in the Java™ library 205, and performs the execution of video/audio and a Java™ program based on the newly received channel identifier.
Furthermore, the service manager 204 also includes a function for receiving the identifier of a channel from a Java™ program executed on the Java™ VM 203, aside from the reproduction unit 202b. Specifically, a Java™ language class as and the method for obtaining the identifier of the channel are provided. Upon receiving an identifier of a channel, the service manager stops the execution, though the respective libraries included in the Java™ library 205, of the currently-reproduced video/audio and Java™ program, likewise through the respective libraries included in the Java™ library 205, and subsequently performs the execution of a new video/audio and Java™ program based on the newly received channel identifier.
In addition, the service manager 204 also performs the downloading/storing and execution of the Java™ program.
The service manager obtains an XCAIT to be newly defined in the present invention, and downloads and executes the CA control application. XCAIT defines a CA control application and stores approximately the same information as the AIT defined in the 10th chapter of the DVB-MHP Standard (formally as, ETS TS 101 812 DVB-MHP Specification V1.0.2). As with the AIT, the XCAIT defines a Java™ program executed by the Java™ VM 203. The difference is, as the Java™ program defined, the AIT defines an arbitrary Java™ program, whereas the Java™ program defined by the XCAIT is a CA control application.
The method for downloading a Java™ program defined by the XCAIT is the same as that in the case of using the AIT. The CA control application is encoded using DSMCC and piggybacked onto the MPEG transport stream. The service manager 204 extracts the CA control application piggybacked onto the MPEG transport stream, and stores it in the second memory 106. Note that even when other methods are used for the transmission method for the CA control application, the present invention can still be implemented. For example, the use of TCP/IP and the like via the Internet is possible. Alternatively, implementation is also possible even when the CA control application is built-into the second memory in advance, instead of being downloaded. Alternatively, implementation is also possible by obtainment from a detachable storage device such as an SD memory card and the like.
After downloading, the service manager 204 requests the activation of the CA control application to the AM 205b of the Java™ class library.
The Java™ library 205 is a collection of plural Java™ libraries stored in the first memory 102. In the present embodiment, the Java™ library 205 includes the JMF 205a, the AM 205b, the Tuner 205c, the CA control API 205d, a section filter API 205e, and so on. Aside from the CA control API 205d, all are defined in the DVB-MHP Standard (formally as, ETS TS 101 812 DVB-MHP Specification V1.0.2).
Since the functions of the JMF 205a, AM 205b, and Tuner 205c are already described, further description shall be omitted.
The CA control API 205d performs the role of an interface between the CA control application and the digital television 100.
The registration unit 901 accepts, from the CA control application 910, a callback function for receiving a channel selection notification.
The cancellation unit 902 accepts, from the CA control application 910, a callback function for receiving a channel selection notification.
The notification unit 903 passes information of the channel to be descrambled to the CA control application 910 when changing the channel to be reproduced by the service manger 204. To be more specific, the notification calls the change method of the object managed by the CA control application management unit 906, and passes a Locator object representing a channel in the argument thereof. The Locator is defined in the DVB-MHP Standard (formally as, ETS TS 101 812 DVB-MHP Specification V1.0.2).
The accepting unit 904 receives, from the CA control application 910, information including an encrypted key for descrambling audio data and video data within the descrambled MPEG transport stream, and passes it to the condition-release control unit 107 via the condition-release 201b2.
The security check unit 905 checks whether the a Java™ application holds a right to call the CA control API 205d. This is to prevent an unspecified Java™ program from calling the CA control API 205d and putting the system in disarray, or the unauthorized use of the system. By having only a specific CA control application 910 calling the CA control API 205d, the descrambling of a stream in accordance with a specific CA system can be implemented. The method for checking uses the Java™ Security framework defined by Java™. It is also possible to permit only a CA control application having the MonitorAppPermission defined in the cable television Standard OCAP specification defined by CableLabs® in particular. However, other methods may also be used.
The CA control application management unit 906 holds the object registered by the CA control application 910 through the registration unit 901. When the same object is registered, it is possible to hold only one, and it is also possible to hold two. Either can be implemented.
The section filter API 205e provides a function for retrieving MPEG section data from an MPEG transport stream. When MPEG section obtainment is requested by an application, the section filter API 205e obtains the MPEG section data through a section filter 201b4. Details are defined in the DVB-MHP Standard (formally as, ETS TS 101 812 DVB-MHP Specification V1.0.2) and thus description shall be omitted.
The receiving unit 104, which is connected is connected to a cable from an antenna or a cable television station, receives a broadcast signal, tunes to the frequency specified by the CPU 103, extracts an MPEG transport stream, and passes it to the demultiplex unit 105.
The demultiplex unit 105 receives the MPEG transport stream from the receiving unit 104, extracts information specified by the CPU 103 and passes it to the CPU 103. Furthermore, the demultiplex unit 105 passes the MPEG transport stream, as is, to the descrambler 108.
The second memory is configured of a device that can hold information even when power is turned off, such as a flash memory, a hard disk, or the like, and stores a program executed by the CPU 103 by downloading the program using the demultiplex unit 105. Alternatively, a detachable storage device such as an SD memory card and the like may also be used.
The condition-release unit 107 decrypts the encrypted key extracted by the program being executed on the CPU 103 using the demultiplex unit 105, and generates the original key and passes the original key to the descrambler 108. The method for generating the original key may refer to a digital television-specific key stored in the second memory 106, or may use a key that identifies a user from a BCAS card that is used within Japan. For the internal configuration of the condition-release control unit 107, LSI developed by the CA system vendor that developed the CA system is widely used, as is, and such internal configuration is dependent on the CA system vendor. The present invention can be implemented without dependency on the configuration of the condition-release control unit 107 which was prepared by the CA system vendor. Note that it is also possible to implement a configuration in which the internal software of the condition-release control unit 107 is downloaded. For example, a Java™ Card LSI can be used for the condition-release control unit 107. In this case, as a CA control API 205, it is possible to implement the use of an API defined by the JSR 177 defined by the JCP (Java™ Community Process.
During the passing of the original 107 to the descrambler 108, it is possible to use bus encryption between the condition-release control unit 107 and the descrambler 108 key from the condition-release control unit to conceal the original key. Since there are many publicly known methods for implementing the bus encryption and these are not the essence of the present invention, detailed description shall be omitted.
The descrambler 108 descrambles (decrypts) the scrambled MPEG transport stream provided by the demultiplex unit 105, using the key provided by the condition-release control unit 107, and passes the result to the TS decoder 109.
The TS decoder 109 receives the identifiers of the audio data and video data from the AV reproduction 201b3. In addition, the TS decoder 109 passes audio data and video data corresponding to the received identifiers of the audio data and video data, from the descrambled stream received from the descrambler 108, to the audio decoder 110 and the video decoder 112, respectively.
The audio decoder 110 performs analog conversion of digital audio data, and passes the result to the speaker 111.
The speaker 111 outputs the received analog sound.
The video decoder 112 performs analog conversion of digital video data, and passes the result to the monitor 113.
The monitor 113 is configured of a Braun tube, a plasma display, liquid crystal display, and the like, and outputs the received analogue image.
The CA control application downloaded by the digital television 100 shall be described.
The CA control application 910 is provided with an Xlet interface, as in an application defined in the DVB-MHP Standard (formally as, ETS TS 101 812 DVB-MHP Specification V1.0.2). The service manager 204 requests the activation of the CA control application 910 to the AM 205b, at the time when the digital television 100 is activated and when the CA control application 910 is downloaded. The AM 205b calls the initialization method (iniXlet) and the starting method (startxlet) of the Xlet interface provided in the CA control application 910. In the CA control application 910, when either of the methods is called, the initialization unit 1401 registers the callback function in the registration unit 901 of the CA control API 205d. To be more specific, the object provided with the interface shown in
When the object registered in the registration unit 901 of the CA control API 205d receives a channel change notification from the notification unit 903 of the CA control API 205d, the accepting unit 1402 notifies the first key obtainment unit and the second key obtainment unit or one of both.
When the CA control application 910 ends descrambling, the termination unit 1403 calls the cancellation unit 902 of the CA control API 205d, and cancels the registered object. The end of the descrambling is called when a new CA control application is downloaded, and an operating CA control application is cancelled. To be more specific, it is when the terminate method (destroyXlet) of the interface is called by the AM 205b.
The first key obtainment unit 1404 retrieves a first encrypted key piggybacked onto the MPEG transport stream, by calling the section filter API 205e, and so on. Where the key is embedded within the MPEG transport stream depends on the installation of the CAS vendor. For example, it may be embedded as unique data in a first descriptor loop of the PMT, and may also be embedded, using a unique format, within MPEG section data having a specific packet ID. Furthermore, it is also possible to use a network and obtain the first encrypted key, and so on. At this time, the CA control application 910 may hold, within a program, the information regarding where the first encrypted key embedded through the above-mentioned methods is embedded. The CA control application 910 may retrieve the information regarding where the first encrypted key is embedded from a broadcast signal, and may retrieve the information using a network. In other words, it is possible that, prior to calling the section filter API 205e, the CA control application 910 holds the information regarding where to retrieve the first key, and requests the corresponding key generation library (in this example, the section filter API 205e) to obtain the encrypted first key based on the held information, and the corresponding key generation library (in this example, the section filter API 205e) obtains the encrypted first key based on the held information. The retrieved encrypted key is passed to the condition-release control unit 107 via the accepting unit 904 of the CA control API 205d. Since the key is periodically or non-periodically updated, upon every update, it is passed to the condition-release control unit 107 via the accepting unit 904 of the CA control API 205d.
The first key obtainment unit 1405 also retrieves a second encrypted key piggybacked onto the MPEG transport stream, by calling the section filter API 205e, and so on. Where the key is embedded within the MPEG transport stream depends on the installation of the CAS vendor. For example, it may be embedded, using a unique format, within MPEG section data having a specific packet ID. Furthermore, it is also possible to use a network and obtain the first encrypted key. At this time, the CA control application 910 may hold, within a program, the information regarding where the second encrypted key embedded through the above-mentioned methods is embedded. The CA control application 910 may retrieve the information regarding where the second encrypted key is embedded from a broadcast signal, and may retrieve the information using a network. In other words, it is possible that, prior to calling the section filter API 205e, the CA control application 910 holds the information regarding where to retrieve the second key, and requests the corresponding key generation library (in this example, the section filter API 205e) to obtain the encrypted second key based on the held information, and the corresponding key generation library (in this example, the section filter API 205e) obtains the encrypted second key based on the held information. The retrieved encrypted key is passed to the condition-release control unit 107 via the accepting unit 904 of the CA control API 205d. Since the key is periodically or non-periodically updated, upon every update, it is passed to the condition-release control unit 107 via the accepting unit 904 of the CA control API 205d.
Here, although two keys are used in the present embodiment, implementation is possible even with one key or 3 or more keys.
This operation is a premise of the encryption method shown in
Note that in the present embodiment, for the name of the interface and method shown to illustrate the CA control API 205d, an arbitrary name may be used as long as it is a name that satisfies the Java™ language specification.
Furthermore, in the present embodiment, although the digital television 100 recognizes the presence of the CA control application using XCAIT, then downloads the CA control application, it is also possible to define the CA control application in the AIT defined by the DVB-MHP standard. By adding, in the AIT, information indicating a CA control application as a Java™ program, it is possible to permit the calling of the CA control API 205d only to the CA control application. However, the CA control application does not operate in an existing DVB-MHP-compliant receiver that is not provided with the CA control API 205d. As such, in an environment where an existing DVB-MHP-compliant receiver that is not provided with the CA control API 205d and a new receiver including the CA control API 205d mutually exist, the operation of the existing receiver can be guaranteed by using XCAIT. Since the existing receiver does not recognize XCAIT, the CA control application cannot be downloaded.
An embodiment of a digital television system including the conditional access apparatus of the present invention shall be described with reference to the drawings.
The CPU 2303 has approximately the same function as the CPU 103. The difference is that, in the first embodiment, the identifiers of the audio data and video data are provided to the TS decoder 108, whereas in the second embodiment, they are provided to the demultiplex unit 2305. Other functions are the same.
The demultiplex unit 2305 receives identifiers of audio data and video data from the CPU 2303, in addition to the functions of the demultiplex unit 105 in the first embodiment. The demultiplex unit 2305 performs filtering based on the received identifiers, and passes the audio data to the audio descrambler 2308 and the video data to the video descrambler 2309.
The condition-release control unit 2307 passes information including a key to the audio descrambler 2308 and the video descrambler 2309.
The audio descrambler 2308 descrambles (decrypts) the received encrypted audio data, and passes the result to the audio decoder 110.
The video descrambler 2309 descrambles (decrypts) the received encrypted video data, and passes the result to the video decoder 112.
Note that the following applications are possible throughout the first and second embodiments.
Packaging which embeds plural constituent elements into one LSI is possible.
Likewise, it is also possible to package plural constituents into one LSI in the first embodiment.
Furthermore, in the present embodiment, it is possible to add a CAS management unit 2601.
Furthermore, in the present embodiment describes the Java™ VM 203, the Java™ library 205, the condition-release unit 107, the CA control application 910 are described as being included within the terminal. However, the structure need not be limited to such, and their essentiality may be stored in a portable recording medium (for example, recording mediums such as a semiconductor memory such as an optical recording medium, a compact flash™, and SD card memory) and operation made possible by reading such stored information.
In addition, when a user buys a new receiver and views a broadcast, the CAS management unit 2601 displays, on the monitor 113, what paid broadcasts are available, by obtaining the information in the XCAIT, and thereby making it possible to notify the user of a system that can be entered into contract.
The condition-release apparatus according to the present invention is mainly used in a digital television but can also be used in a mobile phone, a portable terminal, and an in-car terminal that can receive a digital television broadcast. Furthermore, the condition-release apparatus according to the present invention can also be used in a personal computer, and the like, which receives audio/video delivery which makes use of the Internet.
Number | Date | Country | Kind |
---|---|---|---|
2005-025402 | Feb 2005 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2006/301684 | 2/1/2006 | WO | 00 | 7/31/2007 |