WO2010055658A1 - コンテンツ復号処理装置、コンテンツ復号処理方法及び集積回路 - Google Patents

コンテンツ復号処理装置、コンテンツ復号処理方法及び集積回路 Download PDF

Info

Publication number
WO2010055658A1
WO2010055658A1 PCT/JP2009/006033 JP2009006033W WO2010055658A1 WO 2010055658 A1 WO2010055658 A1 WO 2010055658A1 JP 2009006033 W JP2009006033 W JP 2009006033W WO 2010055658 A1 WO2010055658 A1 WO 2010055658A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
chunk
cipher
block
chain value
Prior art date
Application number
PCT/JP2009/006033
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 JP2010537695A priority Critical patent/JPWO2010055658A1/ja
Priority to CN2009801404601A priority patent/CN102224704A/zh
Priority to US13/063,595 priority patent/US20110170687A1/en
Priority to EP09825912A priority patent/EP2352251A1/en
Publication of WO2010055658A1 publication Critical patent/WO2010055658A1/ja

Links

Images

Classifications

    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • 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/30Compression, e.g. Merkle-Damgard construction

Definitions

  • the present invention relates to a content decryption processing device for decrypting encrypted data encrypted by a cipher chain block method.
  • One of the methods for encrypting digital data is to divide the data to be encrypted into multiple plaintext blocks, and encrypt so that the encryption of the previous plaintext block affects the encryption of the next plaintext block.
  • a cipher chain block method in which each plaintext block is cryptographically processed in a chain manner.
  • each plaintext block is encrypted using a chain value obtained by performing a predetermined arithmetic process on the chain value used when encrypting the plaintext block immediately before it. .
  • the cipher data encrypted by this cipher chain block method is composed of cipher blocks obtained by encrypting plaintext blocks in the order of encryption.
  • each cipher block is decrypted using a chain value obtained by performing a predetermined calculation process on the chain value used when the immediately preceding cipher block is decrypted.
  • the video data stream and the audio data stream are divided and multiplexed into one new data stream.
  • the video data stream and the audio data stream before division multiplexing are data streams encrypted by the cipher chain block method for each frame
  • the data after division multiplexing is used.
  • the stream includes an encryption block sequence (for example, encrypted audio sequence) that is encrypted independently of the encryption frame between encryption block sequences (for example, encryption block sequence of encrypted video frames).
  • encryption block sequences for example, encryption block sequence of encrypted video frames.
  • a content decryption processing apparatus that decrypts such a data stream has a chain of encrypted blocks (hereinafter referred to as “encrypted chunks”) in which the data stream to be decrypted belongs to a first type encrypted frame (for example, an encrypted video frame).
  • encrypted chunks a chain of encrypted blocks
  • the data stream to be decrypted belongs to a first type encrypted frame (for example, an encrypted video frame).
  • a first type encrypted frame for example, an encrypted video frame.
  • the encryption is simply performed using a chain value obtained by performing a predetermined arithmetic process on the chain value used when the immediately preceding encryption block on the data stream is decrypted.
  • a data stream cannot be decrypted by a content decryption processing device configured to decrypt a block.
  • the present invention provides a data stream having a data structure in which a data stream to be decrypted includes a cryptographic chunk belonging to the second type cryptographic frame between the cryptographic chunks belonging to the first type cryptographic frame.
  • An object of the present invention is to provide a content decryption processing apparatus capable of decrypting the data stream in the order of the encryption blocks.
  • the content decryption processing device is configured such that each of the frames classified into a plurality of types is encrypted in a form including a plurality of chunks composed of a chain of cipher blocks in a chain cipher block scheme
  • Content decryption processing device that divides each of the plurality of encryption frames and decrypts the data stream formed into a stream line so that the encryption chunks belonging to the first type encryption frame and the encryption chunks belonging to the second type encryption frame are mixed
  • a cipher block included in the data stream is sequentially decrypted using a chain value, a decryption unit that calculates a new chain value each time the cipher block is decrypted, and identification information of the cipher frame and a chain value.
  • the chain value holding unit for storing in association with each other and the decryption unit restores the last encrypted block of the chunk.
  • the chain value obtained by associating the identification information of the cipher frame to which the cipher block decrypted by the decryption unit belongs with the chain value calculated by the decryption unit when decrypting the decrypted cipher block A chain value recording unit for recording in a holding unit, and the decrypting unit refers to the chain value holding unit, and when the cipher block to be decrypted is the first cipher block of the chunk, the decrypting cipher block is As a chain value used when decrypting the encryption block when a part of the encryption frame to which it belongs has already been decrypted, it was calculated when decrypting the last decrypted encryption block among the encryption blocks of the encryption frame It is characterized by using a chain value.
  • the chain value recording unit includes a cipher block to which the cipher block decrypted by the decryption unit belongs when the decryption unit decrypts the last cipher block of the chunk.
  • the identification information of the frame and the chain value calculated by the decryption unit at the time of decryption of the decrypted encrypted block are associated and recorded in the chain value holding unit, and the decryption unit refers to the chain value holding unit.
  • a data processing stream can be correctly decrypted even by a decryption processing device that extracts the second type cryptographic frames in order and independently decrypts the extracted second type cryptographic frames in order.
  • a decryption processing device that extracts the second type cryptographic frames in order and independently decrypts the extracted second type cryptographic frames in order.
  • this decryption processing device a process of separating and extracting all cipher frames for each type from the entire data stream is required, and furthermore, the extracted cipher blocks are temporarily stored for each type. Storage area is required.
  • the content decryption processing apparatus having the above-described configuration does not require a step of extracting all the encryption frames for each type, and additionally stores the extracted encryption frames for each type. No storage area is required for storage.
  • the chain value holding unit includes an intra-chunk chain value holding unit for storing a chain value
  • the chain value recording unit is a cipher that is not the tail of the chunk when the decryption unit decrypts the cipher block.
  • the chain value calculated by the decryption unit is overwritten and recorded on the chain value stored in the intra-chunk chain value holding unit, and the decryption unit stores the encrypted block to be decrypted in chunks. If the encrypted block is not the first encrypted block, the encrypted block may be decrypted using the chain value recorded in the intra-chunk chain value holding unit.
  • the intra-chunk chain value holding unit stores only the chain value by being overwritten. Therefore, the storage capacity necessary for the intra-chunk chain value holding unit can be stored in one chain value. There is an effect that it is possible to provide a content decryption processing device limited to a necessary storage capacity.
  • the chain value recording unit associates information indicating a cipher frame and a chain value for each cipher frame type when the cipher frame identification information and the chain value are associated and recorded in the chain value holding unit.
  • the value holding unit may be overwritten and recorded.
  • the chain value holding unit stores the information indicating the cryptographic frame and the chain value by overwriting for each cryptographic frame type, so that the storage capacity required for the chain value holding unit This is advantageous in that it is possible to provide a content decryption processing device that is limited to the storage capacity required to store information indicating one encryption frame and one chain value in association with each encryption frame type.
  • a data adding unit that adds additional data to the cipher block so that the cipher block has the predetermined number of bits when the cipher block to be decrypted by the decrypting unit is less than the predetermined number of bits;
  • a decryption data holding unit for storing the cipher block decrypted by the decryption unit; and a decryption data recording unit for recording a part of the cipher block decrypted by the decryption unit in the decryption data holding unit,
  • the data appending unit appends appended data to the encryption block to be decrypted and combines the predetermined number of bits.
  • the decryption unit decrypts the composite cipher block instead of the decryption target cipher block, and records the decrypted data Is the decrypted data holding unit for a portion other than the portion obtained by decrypting the portion of the added data given by the data granting unit by the decrypting unit among the synthesized cipher blocks decrypted by the decrypting unit May be recorded.
  • the predetermined number of bits is the number of bits of the encryption block that can be decrypted by the decryption unit.
  • the decryption unit decrypts the composite encryption block having the predetermined number of bits, and the decrypted data block decrypts the portion other than the portion obtained by decrypting the portion of the added data from the decrypted composite block. Since it is recorded, it is possible to provide a content decryption processing device that can decrypt an encrypted block that is less than a predetermined number of bits and record it in the decrypted data holding unit. Has an effect.
  • Block diagram showing a block configuration of the playback device 1000 Data structure diagram showing the data structure of content Data structure diagram showing the data structure of chunk 310
  • the block diagram which shows the function structure of the content decoding processing apparatus 2000 The figure which shows the information which the key storage part 214 hold
  • the block diagram which shows the function structure of the content decoding processing apparatus 3000 Flowchart of content decryption operation of content decryption processing device 3000 Data structure diagram showing the data structure of content data
  • Flowchart 1 of content decryption operation of content decryption processing device 4000 Flowchart 2 of content decryption operation of content decryption processing device 4000 Data structure diagram showing the data structure of chunk 2250
  • the block diagram which shows the function structure of the content decoding processing apparatus 5000 The figure which shows the information which the key storage part 2114 hold
  • the encrypted content is encrypted by encrypting a video data stream composed of video frames and an audio data stream composed of audio frames by a cipher chain block method for each frame.
  • the video data stream and the encrypted audio data stream are divided and multiplexed to form one new data stream.
  • the second-type encryption frame is inserted between encryption chunks composed of chained encryption block sequences whose data structure of a data stream to be decrypted belongs to a first-type encryption frame (for example, an encrypted video frame). Even with a data structure in which there is an encryption chunk consisting of an encryption block sequence belonging to (for example, an encrypted audio frame), the data stream can be correctly decrypted.
  • FIG. 1 is a block diagram showing a block configuration of a playback device 1000 provided with a content decryption processing apparatus 2000 according to the present embodiment.
  • the playback device 1000 is a personal computer, and includes a CPU (Central Processing Unit) block 110, a memory block 120, a peripheral device block 130, a bus line 140, a cryptographic engine 150, and an AV decoder 160. It consists of.
  • CPU Central Processing Unit
  • the CPU block 110 is composed of two CPUs, a CPU A 111 and a CPU B 112.
  • the CPU A 111 and the CPU B 112 are connected to the bus line 140 and execute a program stored in the memory block 120, so that the memory block 120, the peripheral device block 130, the cryptographic engine 150, and the AV decoder 160 are used to encrypt data from the recording medium.
  • a function of reading the encrypted data stream, a function of decoding the encrypted data stream, a function of decoding the encoded data stream, and the like are realized.
  • the CPUA 111 and the CPUB 112 realize the above functions by operating in parallel while cooperating with each other.
  • the memory block 120 includes a ROM (Read Only Memory) 121 and a RAM (Random Access Memory) 122.
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the ROM 121 is connected to the bus line 140 and stores a program for defining the operation of the CPUA 111, a program for defining the operation of the CPUB 112, and data used by the CPUA 111 and the CPUB 112.
  • the RAM 122 is connected to the bus line 140, temporarily stores data generated when the CPU A 111 or the CPU B 112 executes the program, and temporarily stores data read from the peripheral device block 130.
  • the peripheral device block 130 includes a hard disk device 131, a hard disk device interface 141, a read / write device 132, a read / write device interface 142, an output device 133, an output device interface 143, an input device 134, and an input device.
  • the interface 144 and the communication device 135 are configured.
  • the cryptographic engine 150 is a DSP (Digital Signal Processor) having a function of decrypting encrypted data, is controlled by the CPU A 111 and the CPU B 112, and is connected to the bus line 140.
  • DSP Digital Signal Processor
  • the AV decoder 160 is a DSP that decodes encoded video data and audio data, and is controlled by the CPUA 111 and the CPUB 112 and has an MPEG (Moving Picture Picture Experts Group) 2 decoding function, an MPEG4 decoding function, and an MPEG4-AVC decoding function. Have.
  • MPEG Motion Picture Picture Experts Group
  • the playback device 1000 plays back the content by outputting the result decoded by the AV decoder 160 with the output device 133.
  • the hard disk device 131 is controlled by the CPU A 111 and the CPU B 112 and has a function of writing content to the built-in hard disk and a function of reading content written to the built-in hard disk, and the bus line 140 via the hard disk device interface 141. Connecting.
  • the hard disk device interface 141 mediates the exchange of signals between the hard disk device 131 and the bus line 140.
  • the reading / writing device 132 is controlled by the CPU A 111 and the CPU B 112 and has a function of writing content to the external recording medium 137 and a function of reading content written to the external recording medium 137.
  • the bus line 140 is connected to the bus line 140.
  • the external recording medium 137 is a DVD (Digital Versatile Disc), DVD-R, DVD-RAM, BD (Blu-ray Disc), BD-R, BD-RE, etc. Can write and read data on DVD, DVD-R, BD, BD-R, BD-RE, and the like.
  • the read / write device interface 142 mediates the exchange of signals between the read / write device 132 and the bus line 140.
  • the communication device 135 has a function of acquiring content through the external transmission medium 136, is connected to the bus line 140, and acquires content from an external content server, a content providing site on the Internet, or the like.
  • the external transmission medium 136 is an optical communication line, a telephone communication line, a broadcast wave, etc.
  • the communication device 135 can receive signals from these optical communication line, telephone communication line, broadcast wave, etc. it can.
  • Content acquired by the communication device 135 is written to the external recording medium 137, a hard disk built in the hard disk device 131, or the RAM 122.
  • the output device 133 is a device that outputs video and audio, has a function of outputting Video data and Audio data decoded by the AV decoder 160, and is connected to the bus line 140 via the output device interface 143.
  • LCD Liquid Crystal Display
  • speaker a speaker
  • the output device interface 143 mediates exchange of signals between the output device 133 and the bus line 140.
  • the input device 134 includes a keyboard and a mouse that accept user operations, has a function of accepting operation commands of the player 1000 by the user, and is connected to the bus line 140 via the input device interface 144.
  • the input device interface 144 mediates the exchange of signals between the input device 134 and the bus line 140.
  • the bus line 140 is connected to the CPUA 111, CPUB112, ROM121, RAM122, cryptographic engine 150, AV decoder 160, communication device 135, hard disk device interface 141, read / write device interface 142, output device interface 143, and input device interface 144.
  • the data communication is performed between the components to be connected.
  • the CPU A 111 and the CPU B 112 execute a program stored in the ROM 121 or the RAM 122 so that the external recording medium 137, the hard disk built in the hard disk device 131, or the RAM 122 is written.
  • the playback processing of the content that is being played is executed.
  • FIG. 2 is a data structure diagram showing a data structure of content 300 decrypted by content decryption processing apparatus 2000 according to the first embodiment.
  • the content 300 includes a VideoES (Elementary Stream) in which a video stream obtained by encoding video is encrypted, an Audio1ES in which an audio stream obtained by encoding audio in Japanese is encrypted, and English Audio data ES obtained by encoding the audio stream obtained by encoding the audio stream is divided and multiplexed into a continuous stream of content data 302, and a content header 301 including information related to the content 300 Composed.
  • VideoES Electronic Stream
  • Audio1ES in which an audio stream obtained by encoding audio in Japanese is encrypted
  • English Audio data ES obtained by encoding the audio stream obtained by encoding the audio stream is divided and multiplexed into a continuous stream of content data 302, and a content header 301 including information related to the content 300 Composed.
  • the encrypted VideoES is obtained by encrypting each video frame, which is image data of one screen, with respect to video data encoded by the MPEG4-AVC method, by the encryption chain block method. It is the obtained stream data.
  • the cipher chain is completed for each Video frame, and the cipher chain does not continue to different Video frames.
  • the initial value which is the chain value used when decrypting the first cipher block of the cipher block to be chained, and the key used when decrypting each cipher block are the same for all Video frames. .
  • the encrypted Audio 1 ES and Audio 2 ES are streams obtained by encrypting each audio frame obtained by encoding audio data by the MPEG4-AVC method using the cipher chain block method. It is data.
  • the cipher chain is completed for each audio frame, and the cipher chain does not continue to different audio frames.
  • the initial value and the key are common to all the Audio frames belonging to the encrypted Audio1ES, and the common one is used for all the Audio frames belonging to the encrypted Audio2ES.
  • the initial value and key of an Audio frame belonging to the Audio1ES that has been encrypted are different from the initial value and key of an Audio frame belonging to the encrypted Audio2ES.
  • the data structure of the content data 302 is a structure in which a large number of chunks 310 are continuous, and each chunk 310 is further composed of a chunk header 311, chunk data 312, and padding 313.
  • FIG. 3 is a data configuration diagram showing the data configuration of the chunk 310.
  • the chunk header 311 is unencrypted fixed-length data, and includes a chunk size 401 including information indicating the chunk size, a content type 402 including information indicating the content type to which the chunk belongs, and a frame number to which the chunk belongs.
  • the frame number 403 includes information
  • the decoding header information 404 includes information used for decoding
  • the chunk data size 405 includes information indicating the size of chunk data.
  • the content type is any one of Video, Audio1, and Audio2. If the content type is Video, it indicates that it belongs to the encrypted VideoES. If the content type is Audio1, the content type is encrypted. If the content type is Audio2, it indicates that it belongs to the encrypted Audio2ES.
  • bit length and the appearance order of the chunk size 401, the content type 402, the frame number 403, and the decoding header information 404, which are components of the chunk header 311 are fixed.
  • the chunk data 312 is an encryption block sequence composed of encryption blocks 411 to 413 arranged in the order of the encryption chain.
  • the encryption block is a unit of encryption chain that is chain-encrypted in the CTR mode and has a bit length of 128 bits.
  • the cipher block is a 128-bit plaintext and a 128-bit cipher chain value obtained by encrypting a 128-bit chain value using a 128-bit key by an AES encryption method or the like.
  • Each of the cipher blocks is obtained by encrypting any one of a Video frame, an Audio1 frame, and an Audio2 frame.
  • the padding 313 is data that is not encrypted and is attached to adjust the data size of the chunk 310.
  • FIG. 4 is a block diagram illustrating a functional configuration of the content decryption processing device 2000 that is functionally realized using the playback device 1000.
  • the content decryption processing device 2000 performs decryption processing of the encrypted content using the memory block 120, the peripheral device block 130, the bus line 140, the cryptographic engine 150, and the like according to the program stored in the memory block 120 by the CPU A 111 and the CPU B 112.
  • the decrypted content is output to the AV decoder 160.
  • the content decryption processing device 2000 includes an input buffer 201 that temporarily holds a chunk to be decrypted, an output buffer 202 that temporarily holds a decrypted chunk, and a key storage unit 214 that stores a key and an initial value.
  • the inter-chunk chain value holding unit 216 that stores a chain value across chunks, the chunk information acquisition unit 210 that acquires information from the chunk header 311, and the start address of the chunk data 312 and the start address of the padding 313 are calculated.
  • the input buffer 201 is a storage area for temporarily storing a part of the content to be decrypted by the encryption engine 150, and is implemented as a part of the memory block 120.
  • the unit stored in the input buffer 201 is the content header 301 or chunk 310 unit, and the CPUA 111 or CPUB 112 overwrites a part of the content stored last time in accordance with the data order of the content 300.
  • the output buffer 202 is a storage area for temporarily storing a part of the content decrypted by the cryptographic engine 150 before being output to the AV decoder 160, and is implemented as a part of the memory block 120. Yes.
  • the chunk information acquisition unit 210 acquires the start address of the chunk held by the input buffer 201, and further acquires the chunk size 401, the chunk data size 405, the content type 402, and the frame number 403 from the chunk header 311.
  • the chunk start address, chunk size 401, and chunk data size 405 are output to the encryption size calculation unit 211, the content type 402 is output to the key setting unit 212, the content type 402, the frame number 403, Is output to the chain determination unit 213.
  • the chunk information acquisition unit 210 has a function of outputting a content header signal indicating that the data held in the input buffer 201 is the content header 301 to the cryptographic engine 150 when the content header 301 is written by the CPU A 111 or the CPU B 112.
  • the encryption size calculation unit 211 receives the start address of the chunk data 312 and the padding 313.
  • the start address, the end address of the chunk, and the number of cipher blocks included in the chunk data 312 are calculated and output to the cipher engine 150.
  • the start address of the chunk data 312 is calculated by adding the start address of the chunk and the size of the chunk header 311 having a fixed length, and the start address of the padding 313 is obtained by adding the chunk data size 405 to the start address of the chunk header 311.
  • the end address of the chunk is calculated by adding the start address of the chunk and the chunk size 401, and the number of encryption blocks is 128, which is the chunk data size 405, which is the number of unit bits of the encryption block. Calculated by dividing.
  • the key storage unit 214 is a storage area for storing a content type, a key, and an initial value in association with each other, and is implemented as a part of the memory block 120.
  • FIG. 5 is a diagram showing information stored in the key storage unit 214.
  • the key storage unit 214 stores a key 502 used for decryption and an initial value 503 in association with each content type 402 in advance.
  • the number of bits of the key 502 is 128 bits, and the number of bits of the initial value 503 is 128 bits.
  • the initial value is a chain value used when decrypting the cipher block at the head of the chain when decrypting the cipher block encrypted by the cipher chain block method.
  • the key setting unit 212 receives the content type 402 from the chunk information acquisition unit 210 as input, and reads the key 502 and the initial value 503 stored in association with the input content type 402 from the key storage unit 214. And a function of outputting to the cryptographic engine 150.
  • the inter-chunk chain value holding unit 216 is a storage area for storing the content type, the frame number, and the chain value in association with each other, and is implemented as a part of the memory block 120.
  • FIG. 6 is a diagram showing information stored in the inter-chunk chain value holding unit 216.
  • the inter-chunk chain value holding unit 216 stores a frame number 602 and a chain value 603 in association with each content type 402.
  • the frame number 602 stored here is the frame number of the last decrypted frame in the corresponding content type 402, and the chain value 603 is the last cipher of the last decrypted chunk belonging to the frame number 602. A chain value calculated when the block is decoded.
  • the number of bits of the chain value 603 is 128 bits.
  • the chain determination unit 213 receives the combination of the content type 402 and the frame number 403 input from the chunk information acquisition unit 210. It is checked whether or not it is stored in association with the inter-chunk chain value holding unit 216. If it is stored, it is determined that the chunk is held in the input buffer 201 and the encryption chain is continuing, and stored. If not, it has a function of determining that the chunk held in the input buffer 201 is not continuing the encryption chain.
  • the chain determination unit 213 also outputs the content type 402 and the frame number 403 to the cryptographic engine.
  • a cryptographic chain signal indicating that the cryptographic chain is continuing Is output to the cryptographic engine 150, and when it is determined that the chain is not continuing, a cryptographic end signal indicating the end of the cryptographic chain is output to the cryptographic engine 150.
  • the encryption engine 150 includes a content header signal from the chunk information acquisition unit 210, a start address of the chunk data 312 from the encryption size calculation unit 211, a start address of the padding 313, an end address of the chunk, and an encryption block included in the chunk data 312.
  • a content header signal from the chunk information acquisition unit 210, a start address of the chunk data 312 from the encryption size calculation unit 211, a start address of the padding 313, an end address of the chunk, and an encryption block included in the chunk data 312.
  • the key 502 from the key setting unit 212 the initial value 503, the content type 402, the frame number 403, and the cipher chain signal or cipher end signal from the chain determination unit 213.
  • the cryptographic engine 150 includes a calculation determination unit 221 that reads the chunk data 312 from the chunk held by the input buffer 201 and outputs the chunk data 312 to the calculation unit, a calculation unit 222 that decrypts the chunk data 312 in units of cryptographic blocks, and a key that stores a key A holding unit 223, an initial value holding unit 224 for storing an initial value, an initial value selecting unit 225 for selecting either the initial value or the chained value, and a chained value selecting unit for selecting a chained value used by the arithmetic unit 226, an intra-chunk chain value holding unit 227 for storing the chain value, and a chain value recording unit that records the chain value output by the calculation unit 222 in the intra-chunk chain value holding unit 227 or the inter-chunk chain value holding unit 216. 228 and an output selection unit 229 for writing the chunk data decrypted in units of cipher blocks by the calculation unit 222 to the output buffer 202; It is al configuration.
  • the operation determination unit 221 stores the chunk start address, the chunk data 312 start address, the padding 313 start address, and the chunk end address output from the encryption size calculation unit 211 in the input buffer 201.
  • the chunk header 311 and the padding 313 are read from the chunks that have been read and output to the output selection unit 229, the chunk data 312 is read, output to the calculation unit 222 in units of cipher blocks, and output to the calculation unit 222
  • the initial value selection signal is output to the chain value selection unit 226, and the cipher block to be output to the calculation unit 222 is not the first cipher block of the chunk data. It has a function of outputting a chain value selection signal to the chain value selection unit 226.
  • the timing at which the first cipher block of the chunk data is output to the calculation unit 222 is the timing when the start address of the chunk data 312 is input from the cipher size calculation unit 211, and is other than the first cipher block of the chunk data.
  • the timing for outputting the cipher block to the arithmetic unit 222 is the timing when the cipher block request signal is received from the chain value recording unit 228.
  • the content header 301 held in the input buffer 201 is read and output to the output selection unit 229.
  • the key holding unit 223 Each time a key is input from the key setting unit 212, the key holding unit 223 has a function of overwriting the key stored by itself and continuing to output the stored key to the calculation unit 222.
  • the initial value holding unit 224 has a function of overwriting the initial value stored by itself every time an initial value is input from the key setting unit 212 and outputting the stored initial value to the initial value selection unit.
  • the initial value selection unit 225 When the initial value selection unit 225 receives a combination of the cipher chaining continuation signal and the content type 402 from the chain determination unit 213, the initial value selection unit 225 stores it in association with the received content type 402 from the inter-chunk chain value holding unit 216. The chain value is read and output to the chain value selection unit 226. When a signal indicating the end of the cipher chain is received from the chain determination unit 213, the initial value held by the initial value holding unit 224 is read and the chain value A function of outputting to the selection unit 226 is provided.
  • the intra-chunk chain value holding unit 227 is a storage area for storing a chain value to be overwritten by the chain value recording unit 228.
  • the chain value selection unit 226 When the chain value selection unit 226 receives the initial value selection signal from the calculation determination unit 221, the chain value selection unit 226 outputs the initial value or chain value output from the initial value selection unit 225 to the calculation unit 222, and calculates the chain value selection signal. When received from the determination unit 221, it has a function of reading the chain value held by the intra-chunk chain value holding unit 227 and outputting it to the calculation unit 222.
  • the chain value recording unit 228 receives the number of cipher blocks output from the cipher size calculation unit 211, the content type output from the chain determination unit 213, the frame number, and the chain value output from the calculation unit 222. When the chain value output by the unit 222 is input, the input chain value is recorded in either the inter-chunk chain value holding unit 216 or the intra-chunk chain value holding unit 227.
  • the chain value recording unit 228 determines whether or not the chain value input from the calculation unit 222 is output when the last cipher block of the chunk is decrypted. It has a chain value counter that measures numbers.
  • the chain value counter is reset every time the number of encryption blocks is input from the encryption size calculation unit 211.
  • the chain value recording unit 228 adds 1 to the number of chain values measured by the chain value counter to obtain a new chain value number, and this new chain value number is the cipher size.
  • the number is less than the number of cipher blocks input from the calculation unit 211, it is determined that the chain value is not the chain value output when decrypting the last cipher block of the chunk, and the number of chain values measured by the chain value counter is the cipher size
  • the number is equal to the number of cipher blocks input from the calculation unit 211, it is determined that the chain value is output when the last cipher block of the chunk is decrypted.
  • the output selection unit 229 includes the chunk header 311 output from the operation determination unit 221, the padding 313, the decrypted encrypted block output from the operation unit 222 in units of decrypted cipher blocks, and the content header 301. It has a function of writing to the output buffer 202.
  • the calculation unit 222 uses the key stored in the key storage unit 223 and the initial value or chain value output from the chain value selection unit 226 to convert the cipher block output from the operation determination unit 221 into a chain cipher. It has a function of decoding by the block method, and calculating and outputting the next chain value at the time of decoding.
  • FIG. 7 is a block diagram illustrating a functional configuration of the calculation unit 222.
  • the calculation unit 222 encrypts an input chain value and outputs an encrypted chain value, and an increment that creates a chain value used when decrypting the next cipher block from the input chain value.
  • an exclusive OR circuit 702 that outputs a decrypted cipher block, that is, a plaintext, from the cipher block and the cipher chain value, and has a function of decrypting the cipher block that is chain ciphered in the CTR mode.
  • the AES encryption circuit 701 creates a 128-bit encryption chain value for the 128-bit chain value by the AES encryption method using the 128-bit key, and outputs it to the exclusive OR circuit 702.
  • the incrementer 703 has a function of calculating the next chain value by incrementing only the lower 32 bits of the input chain value by 1.
  • the exclusive OR circuit 702 outputs a bitwise exclusive OR of the 128-bit encryption chain value output from the AES encryption circuit 701 and the 128-bit encryption block output from the operation determination unit 221.
  • the content decryption processing apparatus 2000 configured as described above associates the chain value calculated when the cryptographic engine 150 decrypts the last encrypted block of the chunk with the content type and the frame number, and the inter-chunk chain value holding unit. Store in 216.
  • the content decryption processing device 2000 stores the chunk type chain value holding unit 216 in association with the content type and the frame number of the chunk.
  • the chain value stored in the inter-chunk chain value holding unit 216 is used in association with the content type and frame number of the chunk.
  • the first cipher block of the chunk is decrypted and the chain value stored in the inter-chunk chain value holding unit 216 is not associated with the content type and the frame number of the chunk, the chunk continues to be chained.
  • the initial value corresponding to the content type of the chunk It decrypts the beginning of the cipher block of the link.
  • the content decryption processing apparatus 2000 decrypts the cryptographic block using the chain value held by the intra-chunk chain value holding unit 227. To do.
  • the CPU A 111 or the CPU B 112 When the playback device 1000 starts the content playback process, the CPU A 111 or the CPU B 112 first sets the content header 301 for the content to be decrypted written in the external recording medium 137, the hard disk built in the hard disk device 131, or the RAM 122. Write to the input buffer 201.
  • the CPU A 111 or the CPU B 112 writes the chunks to the input buffer 201 in order from the first chunk of the content data until it becomes the last chunk.
  • the content decryption processing device 2000 starts content decryption processing.
  • FIG. 8 is a flowchart of content decryption processing performed by the content decryption processing device 2000.
  • the chunk information acquisition unit 210 When the content decryption processing device 2000 starts content decryption processing, the chunk information acquisition unit 210 outputs a content header signal, and the operation determination unit 221 receives the output content header signal.
  • the operation determination unit 221 When receiving the content header signal, the operation determination unit 221 reads the content header 301 from the input buffer 201 and outputs the content header 301 to the output selection unit 229. The output selection unit 229 writes the received content header 301 into the output buffer 202.
  • the chunk information acquisition unit 210 acquires the start address of the chunk held by the input buffer 201, and further, the chunk size 401 and the chunk data size from the chunk header 311. 405, the content type 402, and the frame number 403 are acquired (step S800), and the chunk start address, the chunk size 401, and the chunk data size 405 are output to the encryption size calculation unit 211. Is output to the key setting unit 212, and the content type 402 and the frame number 403 are output to the chain determination unit 213.
  • the encryption size calculation unit 211 receives the start address of the padding 313, the end address of the chunk, and the chunk.
  • the number of encryption blocks included in the data 312 is calculated (step S805), the start address of the chunk, the start address of the padding 313, and the end address of the chunk are output to the operation determination unit 221, and the number of encryption blocks is chained.
  • the data is output to the value recording unit 228.
  • the chain value recording unit 228 resets the number of chain values measured by the chain value number counter.
  • the operation determination unit 221 Upon receiving the chunk start address, the padding 313 start address, and the chunk end address from the cipher size calculation unit 211, the operation determination unit 221 reads the chunk header 311 and the padding 313 from the input buffer and selects the output.
  • the output selection unit 229 writes the input chunk header 311 and padding 313 to the output buffer 202 (step S810), and outputs an initial value selection signal to the chain value selection unit 226.
  • the key setting unit 212 reads the key 502 and the initial value 503 stored in the key storage unit 214 in association with the input content type 402.
  • the read key 502 is output to the key holding unit 223
  • the read initial value 503 is output to the initial value holding unit 224
  • the key storage unit 214 overwrites and stores the input key
  • the initial value holding unit 224 overwrites and stores the input initial value (step S815).
  • the chain determination unit 213 determines whether the chunk held in the input buffer 201 is continuing the cryptographic chain. Therefore, it is checked whether or not the combination of the input content type 402 and the frame number 403 is stored in association with the inter-chunk chain value holding unit 216 (step S820). Determines that the chunk held in the input buffer 201 is continuing the encryption chain (step S820: Yes), outputs the content type 402 and the frame number 403 to the chain value recording unit 228, and The content type 402 is output to the initial value selection unit 225.
  • the initial value selection unit 225 When the initial value selection unit 225 receives a combination of the cipher chaining continuation signal and the content type 402 from the chain determination unit 213, the initial value selection unit 225 stores it in association with the received content type 402 from the inter-chunk chain value holding unit 216. The chain value is read and output to the chain value selection unit 226.
  • the chain value selection unit 226 receives the initial value selection signal from the calculation determination unit 221, the chain value selection unit 226 selects the chain value input from the initial value selection unit 225 and outputs the selected chain value to the calculation unit 222 (step S825).
  • step S820 if the combination of the input content type 402 and the frame number 403 is not stored in association with the inter-chunk chain value holding unit 216, the chunk held in the input buffer 201 is encrypted. It is determined that the chain is not continuing (step S820: No), the content type 402 and the frame number 403 are output to the chain value recording unit 228, and the encryption end signal is output to the initial value selection unit 225.
  • the initial value selection unit 225 When the initial value selection unit 225 receives the cipher chain end signal from the chain determination unit 213, the initial value selection unit 225 reads the initial value held by the initial value holding unit 224 and outputs it to the chain value selection unit 226.
  • the chain value selection unit 226 receives the initial value selection signal from the calculation determination unit 221, when the initial value is input from the initial value selection unit 225, the chain value used by the calculation unit 222 is used. Is output to the calculation unit 222 (step S830).
  • step S825 or step S830 the calculation unit 222 receives the first cipher block of the cipher chunk from the calculation determination unit 221.
  • the calculation unit 222 decrypts the received encrypted block using the key recorded in the key holding unit 223 and the chain value output from the chain value selection unit, and outputs the decrypted encryption block to the output selection unit 229.
  • the next chain value calculated at that time is output to the chain value recording unit 228 (step S835).
  • the decryption of the cipher block and the calculation of the next chain value performed by the arithmetic unit 222 are as follows: (1) the AES encryption circuit 701 encrypts the chain value using a key to create a cipher chain value, and (2) exclusive logic The cipher block is decrypted by taking the bitwise exclusive OR of the cipher chain value generated by the sum circuit 702 and the cipher block, and (3) the lower order of the chain values to which the incrementer 703 is input This is realized by three processes of calculating the next chain value by incrementing only the 32-bit portion by 1.
  • the output selection unit 229 writes the input decrypted encryption block into the output buffer 202.
  • the chain value recording unit 228 adds 1 to the chain value number measured by the chain value number counter to obtain a new chain value number.
  • the chain value input from the calculator 222 is output when the calculator 222 decrypts the last cipher block of the chunk. Is determined (step S840).
  • step S840 when the new number of chain values is less than the number of cipher blocks input from the cipher size calculation unit 211, the chain value that is input when the input chain value decrypts the last cipher block of the chunk. (Step S840: Yes), the chain value input from the operation unit 222 is overwritten and recorded in the intra-chunk chain value holding unit (Step S845), and the chain value recording unit 228 stores it in the operation determination unit 221. An encryption block request signal is output.
  • the operation determination unit 221 When receiving the cipher block request signal from the chain value recording unit 228, the operation determination unit 221 outputs the next cipher block to the operation unit 222, and outputs a chain value selection signal to the chain value selection unit 226.
  • the chain value selection signal When the chain value selection signal is received, 226 reads the chain value held by the intra-chunk chain value holding unit 227 and outputs it to the calculation unit 222 (step S850).
  • step S850 When the process of step S850 is completed, the process of step S835 is started again.
  • step S840 when the number of new chain values is equal to the number of cipher blocks input from the cipher size calculation unit 211, the chain value that is input when the input chain value decrypts the last cipher block of the chunk. (Step S840: No), the chain value input from the calculation unit 222 is overwritten in the inter-chunk chain value holding unit 216 in association with the content type input from the chain determination unit 213 and the frame number. To record (step S855).
  • step S855 the content decryption processing device 2000 stands by until the subsequent chunk is written to the input buffer 201 by the CPU A 111 or the CPU B 112 (step S865).
  • step S800 When a subsequent chunk is written in the input buffer 201 by the CPU A 111 or CPU B 112 within a predetermined time, for example, 1 ms (step S870: Yes), the processing of step S800 is started again.
  • step S870: No If the subsequent chunk is not written to the input buffer 201 by the CPU A 111 or CPU B 112 for a predetermined time, for example, 1 ms (step S870: No), it is determined that the subsequent chunk does not exist in the content data 302.
  • the content decryption processing device 2000 ends the content decryption processing.
  • ⁇ Specific operation> As an example, between a first chunk with a content type of Video and a frame number of 10 and a second chunk that is also a content type of Video and a frame number of 10 and is a chunk that is continuous with the first chunk, When there is a third chunk having a content type of Audio1 and a frame number of 5, the content decryption processing apparatus 2000 can correctly decrypt the first cipher block of the second frame using a correct chain value. Will be explained.
  • the chain value recording unit 228 displays the chain value input from the calculation unit 222, for example, 0x000011111, indicating the video input from the chain determination unit 213
  • the type is associated with the frame number indicating 10 and is overwritten and recorded in the inter-chunk chain value holding unit 216 (step S865).
  • the content decryption processing device 2000 decrypts the third chunk, decrypts the third chunk, and then starts decrypting the second chunk.
  • the chunk information acquisition unit 210 acquires the content type indicating Video and the frame number indicating 10 (step S800), and outputs them to the chain determination unit 213.
  • the chain determination unit 213 checks whether or not the combination of the content type indicating Video and the frame number indicating 10 is stored in association with the inter-chunk chain value holding unit 216 (Step S820). Since it can be seen that the combination of the content type indicated and the frame number indicating 10 is stored in association with the chain value 0x00001111, it is determined that the second chunk is continuing the encryption chain (step S820: Yes). The content type indicating the encrypted chain signal and Video is output.
  • the initial value selection unit 225 When the initial value selection unit 225 receives the encrypted chain signal and the content type indicating Video, it reads the chain value 0x0000111 stored in association with the content type indicating Video from the inter-chunk chain value holding unit 216 and selects the chain value.
  • the chain value selection unit 226 outputs the chain value 0x00001111 to the calculation unit 222.
  • the arithmetic unit 222 decrypts the first cipher block of the second chunk using the chain value 0x00001111, that is, the chain value calculated when the last cipher block of the first chunk is decrypted. , Correctly decrypt the first cipher block of the second chunk.
  • a content decryption processing apparatus that decrypts content encrypted by a cipher chain block method will be described.
  • a part of the chunk header 311 of the chunk 310 included in the content 300 to be decrypted by the content decryption processing device 2000 of the first embodiment and the content header 301 are deformed.
  • the content decryption processing apparatus 2000 described in the first embodiment is modified so that content having a data format can be decrypted.
  • the content decryption processing apparatus modifies the chunk information acquisition unit 210, which is a part of the content decryption processing apparatus 2000 described in the first embodiment, and further adds a content header analysis unit and a field.
  • the information storage unit is modified to include the information storage unit, and is realized on the playback device 1000 of the first embodiment in the same manner as the content decryption processing device 2000.
  • the content decrypted by the content decryption processing device 3000 according to the second embodiment is obtained by converting the content 300 of the first embodiment into the content type 402 and the frame number 403 that existed in the chunk header 311 of the first embodiment.
  • the content is such that the corresponding information is transformed so as to exist in the content header.
  • FIG. 9 is a configuration diagram showing a data configuration of the chunk 1050 constituting the content to be decrypted by the content decryption processing device 3000 according to the second embodiment.
  • the chunk 1050 includes a chunk header 1015, chunk data 1010, and padding 1020.
  • the chunk header 1015 is unencrypted data, and includes a chunk size 1001 including information indicating the size of the chunk, decoding header information 1004 including information used for decoding, and a chunk including information indicating the size of the chunk data.
  • the data size is 1005, and the bit length and appearance order of the chunk size 1001, the decoding header information 1004, and the chunk data size 1005 are fixed.
  • the chunk data 1010 is the same as the chunk data 312 of the first embodiment, and the padding 2230 is the same as the padding 313 of the first embodiment.
  • FIG. 10 is a configuration diagram showing information included in the content header that configures the content according to the second embodiment.
  • the content header holds, for all chunks 1050 included in the content, the start address 1101, the content type 1102, and the frame number 1103 for each chunk 1050 in association with each other in the order in which the chunks 1050 are arranged.
  • the content type 1102 is the same as the content type 402 of the first embodiment, and the frame number 1103 is the same as the frame number 602 of the first embodiment.
  • FIG. 11 is a block diagram illustrating a functional configuration of the content decryption processing apparatus 3000.
  • the content decryption processing device 3000 transforms the chunk information acquisition unit 210 into a chunk information acquisition unit 910 with respect to the content decryption processing device 2000 of Embodiment 1, and newly adds a field information storage unit 920 and a content header analysis unit 930. Are added.
  • the field information storage unit 920 is a storage area for storing the start address 1101 for each chunk 1050, the content type 1102, and the frame number 1103 that are stored in the content header in association with each other. Implemented as part of block 120.
  • the content header analysis unit 930 reads all the sets of the start address 1101, the content type 1102, and the frame number 1103 associated with each chunk from the content header held by the input buffer 201, and starts reading It has a function of recording all sets of the address 1101, the content type 1102, and the frame number 1103 in association with the field information storage unit 920.
  • the chunk information acquisition unit 910 acquires the start address of the chunk held by the input buffer 201, further acquires the chunk size 1001 and the chunk data size 1005 from the chunk header 1015, and further acquires the field information storage unit 920.
  • the content type 1102 corresponding to the chunk held by the input buffer 201 and the frame number 1103 are acquired, and the chunk start address, chunk size 1001 and chunk data size 1005 are output to the encryption size calculation unit 211.
  • the content type 1102 is output to the key setting unit 212, and the content type 1102 and the frame number 1103 are output to the chain determination unit 213.
  • the chunk information acquisition unit 910 has a function of outputting a content header signal indicating that the data held in the input buffer 201 is a content header to the cryptographic engine 950 when the content header is written by the CPU A 111 or the CPU B 112.
  • the CPU A 111 or CPU B 112 When the playback device 1000 starts content playback processing, the CPU A 111 or CPU B 112 first inputs a content header for the content to be decrypted written in the external recording medium 137, the hard disk built in the hard disk device 131, or the RAM 122. Write to buffer 201.
  • the CPU A 111 or the CPU B 112 writes the chunks to the input buffer 201 in order from the first chunk of the content data until it becomes the last chunk.
  • the content decryption processing device 3000 starts content decryption processing.
  • FIG. 12 is a flowchart of content decryption processing performed by the content decryption processing device 3000.
  • the chunk information acquisition unit 910 When the content decryption processing device 3000 starts content decryption processing, the chunk information acquisition unit 910 outputs a content header signal, and the operation determination unit 221 receives the output content header signal.
  • the content header analysis unit 930 reads all the sets of the start address 1101, the content type 1102, and the frame number 1103 that are associated with each chunk from the content header held in the input buffer 201. All sets of the start address 1101, the content type 1102, and the frame number 1103 are recorded in association with the field information storage unit 920 (step S1200).
  • the operation determination unit 221 Upon receiving the content header signal, the operation determination unit 221 reads the content header from the input buffer 201 and outputs the content header to the output selection unit 229.
  • the output selection unit 229 writes the received content header in the output buffer 202.
  • the chunk information acquisition unit 910 acquires the start address of the chunk held by the input buffer 201, and further, the chunk size 1001 and the chunk data size from the chunk header 1015. 1005 (step S1202), in addition, the content type 1102 corresponding to the chunk held by the input buffer 201 and the frame number 1103 are acquired from the field information storage unit 920, the start address of the chunk, The chunk size 1001 and the chunk data size 1005 are output to the encryption size calculation unit 211, the content type 1102 is output to the key setting unit 212, and the content type 1102 and the frame number 1103 are displayed. And it outputs the chain determination unit 213.
  • step S1205 to step S1265 is the same process as the process from step S805 to step S865 in the operation of the content decryption processing apparatus 2000 of the first embodiment, the description thereof will be omitted.
  • Step S1205 is Step S805, Step S1210 is Step S810, Step S1215 is Step S815, Step S1220 is Step S820, Step S1225 is Step S825, Step S1230 is Step S830, Step S1235 is Step S835, Step S1240 is Step S840, Step S1245 corresponds to step S845, step S1250 corresponds to step S850, step S1255 corresponds to step S855, and step S1265 corresponds to step S865.
  • step S1265 when the subsequent chunk is written in the input buffer 201 by the CPU A 111 or CPU B 112 within a predetermined time, for example, 1 ms after the content decryption processing device 3000 starts waiting (step S1270: Yes), The process of step S1202 is started again.
  • step S1270 If the subsequent chunk is not written to the input buffer 201 by the CPU A 111 or the CPU B 112 for a predetermined time, for example, 1 ms (step S1270: No), it is determined that the subsequent chunk does not exist in the content data 302.
  • the content decryption processing device 3000 ends the content decryption processing. ⁇ Embodiment 3>
  • a content decryption processing apparatus that decrypts content encrypted by a cipher chain block method will be described.
  • the content decryption processing apparatus decrypts content that has a data format in which an encryption block constituting the content to be decrypted is allowed to be divided into two consecutive chunks.
  • the content decryption processing apparatus 2000 described in the first embodiment is modified.
  • the content decryption processing device includes a chunk information acquisition unit 210, an inter-chunk chain value holding unit 216, and a chain value recording, which are part of the content decryption processing device 2000 described in the first embodiment. Is modified to include a fraction processing control unit 1300, a pre-processing unit 1301, and a post-processing unit 1302, and the cryptographic engine 150 of the playback device 1000 according to the first embodiment is modified. Is realized on a reproducing device modified so as to be replaced with a cryptographic engine 950 obtained by modifying a part of the cryptographic engine 150.
  • the content decrypted by the content decryption processing device 4000 according to the third embodiment has a data format modified so that the encryption block of the first embodiment is divided into two consecutive chunks. .
  • FIG. 13A is a diagram showing a data structure of a part of content data in the content to be decrypted by the content decryption processing device 4000, and FIG. 13B shows a part of FIG. 13A.
  • FIG. 13A is a diagram showing a data structure of a part of content data in the content to be decrypted by the content decryption processing device 4000, and FIG. 13B shows a part of FIG. 13A.
  • the encrypted frame 1410 has a content type of Video, a frame number of j, and is divided into three frames of a chunk 1430, a chunk 1440, and a chunk 1460.
  • the encrypted frame 1420 has a content type of Audio1, a frame number of k, and is divided into two frames of a chunk 1450 and a chunk 1470.
  • the encrypted video frame 1410 is composed of eight encryption blocks 1401 to 1408. Of these, the encryption block 1401 and the encryption block 1402 are included in the chunk 1430, and the encryption block 1404 and the encryption block are included. 1405 is included in the chunk 1440, and the encryption block 1407 and the encryption block 1408 are included in the chunk 1460.
  • the encryption block 1403 is divided into a first half part and a second half part, and the first half part is included in the chunk 1430 and the second half part is included in the chunk 1440.
  • the cipher block 1404 is divided into a first half part and a second half part.
  • the first half part is included in the chunk 1440 and the second half part is included in the chunk 1460.
  • the content data in the content to be decrypted by the content decryption processing device 4000 is allowed to be configured by dividing the encryption block into two consecutive chunks.
  • FIG. 14 is a block diagram showing a functional configuration of the content decryption processing apparatus 4000.
  • the content decryption processing device 4000 transforms the chunk information acquisition unit 210 into a chunk information acquisition unit 1310 with respect to the content decryption processing device 2000 of the first embodiment, and changes the inter-chunk chain value holding unit 216 to the inter-chunk chain value holding unit. 1316, the chain value recording unit 228 is transformed into the chain value recording unit 1328, and a fraction processing control unit 1300, a pre-processing unit 1301, and a post-processing unit 1302 are newly added.
  • the chunk information acquisition unit 1310 acquires the start address of the chunk held by the input buffer 201, and further acquires the chunk size 401, the chunk data size 405, the content type 402, and the frame number 403 from the chunk header 311.
  • the chunk start address, chunk size 401, and chunk data size 405 are output to the encryption size calculation unit 211, the content type 402 is output to the key setting unit 212, the content type 402, the frame number 403, Is output to the chain determination unit 213 and the fraction processing control unit 1300.
  • the chunk information acquisition unit 1310 has a function of outputting a content header signal indicating that the data held in the input buffer 201 is the content header 301 to the cryptographic engine 1350 when the content header 301 is written by the CPU A 111 or the CPU B 112.
  • the inter-chunk chain value holding unit 1316 is a storage area for storing the content type, the frame number, the chain value, and the fraction data size that is the size of the last encrypted block of the chunk, It is implemented as a part of 120.
  • FIG. 15 is a diagram showing information stored in the inter-chunk chain value holding unit 1316.
  • the inter-chunk chain value holding unit 1316 stores a frame number 1802, a chain value 1803, and a fraction data size 1804 in association with each content type 1801.
  • the frame number 1802 stored here is the frame number of the last decrypted frame in the corresponding content type 1801, and the chain value 1803 is the encryption of the tail of the last decrypted chunk belonging to the frame number 602. This is a chain value calculated when the block is decrypted, and the fraction data size 1804 is the size of the last encrypted block of the last decrypted chunk belonging to the frame number 602.
  • the set of the frame number 1802, the chain value 1803, and the fraction data size 1804 is overwritten for each content type 1801 by the cryptographic engine 150.
  • the fraction processing control unit 1300 When the fraction processing control unit 1300 receives the content type 402 and the frame number 403 from the chunk information acquisition unit 1310, the fraction processing control unit 1300 stores the content type 402 and the frame number 403 in association with the received combination of the content type 402 and the frame number 403.
  • the stored fraction data size 1804 is read, the size of the first cipher block and the size of the last cipher block of the chunk stored in the input buffer 201 are calculated, the pre-processing unit 1301, the calculation unit 222,
  • the post-processing unit 1302 executes fraction processing and outputs the size of the trailing cipher block to the chain value recording unit 1328.
  • the size of the cipher block at the beginning of the chunk is calculated by subtracting the fraction data size 1804 read from the inter-chunk chain value holding unit 1316 from 128, which is the number of unit bits of the cipher block, and the size of the cipher block at the end of the chunk Adds the fraction data size 1804 read from the inter-chunk chain value holding unit 1316 to the chunk data size 405 output from the encryption size calculation unit 1311 and divides the addition result by 128, which is the number of unit bits of the encryption block. Calculate as the remainder of time.
  • the preprocessing unit 1301 receives the first cipher block of the chunk held by the input buffer 201 from the operation determination unit 221.
  • a 128-bit synthesized cipher block is created by giving 0 of the bit number of the difference between the size of the head cipher block and 128 bits to the head of the received cipher block, and the created synthesized cipher block is sent from the operation determination unit 221. It has a function of outputting to the calculation unit 222 instead of the received encryption block.
  • the pre-processing unit 1301 receives the tail cipher block of the chunk held by the input buffer 201 from the operation determination unit 221 when the size of the tail cipher block received from the fraction processing control unit 1300 is less than 128 bits. Then, a 128-bit composite cipher block is created by adding 0, which is the number of bits insufficient to 128 bits, to the end of the cipher block, and the created composite cipher block is replaced with the cipher block received from the operation determination unit 221. A function of outputting to the calculation unit 222.
  • the post-processing unit 1302 decrypts the first cryptographic block of the chunk held by the input buffer 201 from the arithmetic unit 222 when the size of the first cryptographic block received from the fraction processing control unit 1300 is less than 128 bits.
  • the composite plaintext is created by deleting 00, which is the difference between the size of the top cipher block and 128 bits, from the top of the cipher block, It has a function of outputting to the output selection unit 229 in place of the decrypted encrypted block received from the operation determination unit 221.
  • the post-processing unit 1302 decrypts the last cipher block of the chunk held by the input buffer 201 from the arithmetic unit 222 when the size of the last cipher block received from the fraction processing control unit 1300 is less than 128 bits.
  • a composite plaintext is created by deleting the number of bits insufficient to 128 bits from the tail of the encrypted block, and the composite plaintext thus created is received from the operation determination unit 221.
  • the chain value recording unit 1328 includes the number of cipher blocks output from the cipher size calculation unit 1311, the content type output from the chain determination unit 213, the frame number, the chain value output from the calculation unit 222, and the fraction processing control unit.
  • the input chain value is converted into the inter-chunk chain value holding unit 1316 or the intra-chunk chain value holding unit. 227 has a function of recording in one of them.
  • the chain value recording unit 1328 when the chain value input from the calculation unit 222 is output when the calculation unit 222 decrypts the last encrypted block of the chunk, the chain value input
  • the content type input from the chain determination unit 213, the frame number, and the fraction data size are associated with each other, overwritten in the inter-chunk chain value holding unit 1316, and the chain value input from the calculation unit 222 is calculated.
  • the part 222 is not output when the last cipher block of the chunk is decrypted, the input chain value is overwritten and recorded in the intra-chunk chain value holding part 227, and is encrypted in the operation determination part 221. It has a function of outputting a block request signal.
  • the chain value recording unit 1328 has a fractional data size of 128 bits when the chain value input from the calculation unit 222 is output when the calculation unit 222 decrypts the last encrypted block of the chunk. If it is less than the value, the chain value that is overwritten and recorded in the inter-chunk chain value holding unit 1316 has a function of setting the chain value previously input from the calculation unit 222.
  • the fraction data size to be written in the inter-chunk chain value holding unit 1316 is the size of the trailing cipher block input from the fraction processing control unit 1300.
  • the chain value recording unit 1328 determines whether or not the chain value input from the calculation unit 222 is output when decrypting the last cipher block of the chunk. It has a chain value counter that measures numbers.
  • the chain value counter is reset every time the number of encryption blocks is input from the encryption size calculation unit 1311.
  • the chain value recording unit 1328 adds 1 to the chain value number measured by the chain value counter to obtain a new chain value number, and the new chain value number is the cipher size.
  • the number is less than the number of cipher blocks input from the calculation unit 211, it is determined that the chain value is not the chain value output when decrypting the last cipher block of the chunk, and the number of chain values measured by the chain value counter is the cipher size
  • the number is equal to the number of cipher blocks input from the calculation unit 211, it is determined that the chain value is output when the last cipher block of the chunk is decrypted.
  • the cryptographic engine 1350 transforms the inter-chunk chain value holding unit 216 into 1316, transforms the chain value recording unit 228 into a chain value recording unit 1328, and newly performs fraction processing control with respect to the cryptographic engine 150 of the first embodiment.
  • a part 1300, a pre-processing part 1301, and a post-processing part 1302 are added.
  • FIG. 16 is a diagram illustrating an operation of processing performed by the preprocessing unit 1301, the calculation unit 222, and the postprocessing unit 1302 when the first half of the encryption block is missing.
  • the preprocessing unit 1301 receives the first cipher block of the chunk held by the input buffer 201 from the operation determination unit 221.
  • the received cipher block 1501 determines that the head bit is missing by the number of bits that is the difference between the size of the head cipher block and 128 bits, and is given supplementary data 1502 consisting of 0 of the missing bit number.
  • a 128-bit composite cipher block is created.
  • the pre-processing unit 1301 outputs the generated encryption block to the calculation unit 222 in place of the encryption block received from the calculation determination unit 221.
  • the calculation unit 222 creates a decrypted cipher block by performing exclusive OR for each bit of the input 128-bit cipher block and the 128-bit cipher chain value, and the decrypted decrypted block
  • the cipher block is output to the post-processing unit 1302.
  • the post-processing unit 1302 determines the cipher block obtained by decrypting the head cipher block held in the input buffer 201 from the arithmetic unit 222. Upon receipt, the received decrypted cipher block determines that the first bit is an unnecessary bit by the number of bits that is the difference between the size of the head cipher block and 128 bits, and removes the unnecessary bit from the head of the cipher block.
  • the combined plaintext is generated by deletion, and the generated combined plaintext is output to the output selection unit 229 in place of the decrypted encrypted block received from the operation determination unit 221.
  • FIG. 17 is a diagram illustrating an operation of processing performed by the preprocessing unit 1301, the calculation unit 222, and the postprocessing unit 1302 when the second half of the encryption block is missing.
  • the preprocessing unit 1301 receives the trailing encryption block of the chunk held by the input buffer 201 from the operation determination unit 221.
  • the received cipher block 1501 determines that the trailing bit is missing by the number of bits that is the difference between the size of the trailing cipher block and 128 bits, and is given complementary data 1502 consisting of 0 of the missing bit number.
  • complementary data 1502 consisting of 0 of the missing bit number.
  • the pre-processing unit 1301 outputs the generated encryption block to the calculation unit 222 in place of the encryption block received from the calculation determination unit 221.
  • the calculation unit 222 creates a decrypted cipher block by performing exclusive OR for each bit of the input 128-bit cipher block and the 128-bit cipher chain value, and the decrypted decrypted block
  • the cipher block is output to the post-processing unit 1302.
  • the post-processing unit 1302 is an encryption unit that decrypts the last cryptographic block of the chunk held by the input buffer 201 from the arithmetic unit 222 when the size of the last cryptographic block received from the fraction processing control unit 1300 is less than 128 bits.
  • the received decrypted cipher block determines that the tail bit is an unnecessary bit by the number of bits that is the difference between the size of the tail cipher block and 128 bits, and removes the unnecessary bit of the cipher block.
  • a combined plaintext is generated by deleting from the tail, and the generated combined plaintext is output to the output selection unit 229 in place of the decrypted encrypted block received from the operation determination unit 221.
  • FIG. 18 is a diagram illustrating an operation of processing performed by the preprocessing unit 1301, the calculation unit 222, and the postprocessing unit 1302 when there is no missing encryption block.
  • the pre-processing unit 1301 receives (1) the first cipher block of the chunk held by the input buffer 201 from the operation determination unit 221 when the size of the first cipher block received from the fraction processing control unit 1300 is 128 bits. (2) When the size of the last cipher block received from the fraction processing control unit 1300 is 128 bits, when the last cipher block held by the input buffer 201 is received from the operation determination unit 221 (3 ) When receiving an encryption block other than the first and last encryption blocks of the chunk held in the input buffer 201 from the operation determination unit 221, it is determined that the received encryption block is not missing, and the received encryption block is used as it is. It outputs to 222.
  • the calculation unit 222 creates a decrypted cipher block by performing exclusive OR for each bit of the input 128-bit cipher block and the 128-bit cipher chain value, and the decrypted decrypted block
  • the cipher block is output to the post-processing unit 1302.
  • the post-processing unit 1302 (1) decrypts the first cipher block of the chunk held by the input buffer 201 from the arithmetic unit 222 when the size of the first cipher block received from the fraction processing control unit 1300 is 128 bits. (2) When the size of the last encryption block received from the fraction processing control unit 1300 is 128 bits, the last encryption block of the chunk held in the input buffer 201 from the arithmetic unit 222 is decrypted. (3) When receiving an encrypted block other than the first and last encrypted blocks of the chunk held by the input buffer 201 from the operation determination unit 221, the received decrypted encrypted block is missing. The received decrypted cipher block is To the output selection unit 229 remains.
  • the CPU A 111 or CPU B 112 When the playback device starts content playback processing, the CPU A 111 or CPU B 112 first inputs the content header 301 for the content to be decrypted written in the external recording medium 137, the hard disk built in the hard disk device 131, or the RAM 122. Write to buffer 201.
  • the CPU A 111 or the CPU B 112 writes the chunks to the input buffer 201 in order from the first chunk of the content data until it becomes the last chunk.
  • the content decryption processing device 3000 starts content decryption processing.
  • 19 and 20 are flowcharts of the content decryption process performed by the content decryption processing apparatus 4000.
  • the chunk information acquisition unit 910 When the content decryption processing device 4000 starts content decryption processing, the chunk information acquisition unit 910 outputs a content header signal, and the calculation determination unit 221 receives the output content header signal.
  • the operation determination unit 221 When receiving the content header signal, the operation determination unit 221 reads the content header 301 from the input buffer 201 and outputs the content header 301 to the output selection unit 229. The output selection unit 229 writes the received content header 301 into the output buffer 202.
  • the chunk information acquisition unit 1310 acquires the start address of the chunk held by the input buffer 201, and further, the chunk size 401 and the chunk data size from the chunk header 311. 405, the content type 402, and the frame number 403 are acquired (step S1900), the chunk start address, the chunk size 401, and the chunk data size 405 are output to the encryption size calculation unit 211. Is output to the key setting unit 212, and the frame number 403 is output to the chain determination unit 213 and the fraction processing control unit 1300.
  • the encryption size calculation unit 1311 receives the padding 313 start address, the chunk end address, and the chunk.
  • the number of encryption blocks included in the data 312 is calculated (step S1910), the start address of the chunk, the start address of the padding 313, and the end address of the chunk are output to the operation determination unit 221, and the number of encryption blocks is chained.
  • the value is output to the value recording unit 1328.
  • the chain value recording unit 1328 resets the number of chain values measured by the chain value number counter.
  • the operation determination unit 221 Upon receiving the chunk start address, the padding 313 start address, and the chunk end address from the cipher size calculation unit 1311, the operation determination unit 221 reads the chunk header 311 and the padding 313 from the input buffer and selects the output.
  • the output selection unit 229 writes the input chunk header 311 and padding 313 to the output buffer 202 (step S1920), and outputs an initial value selection signal to the chain value selection unit 226.
  • the key setting unit 212 reads the key 502 and the initial value 503 stored in the key storage unit 214 in association with the input content type 402.
  • the read key 502 is output to the key holding unit 223, the read initial value is output to the initial value holding unit 224, and the key storage unit 214 overwrites and stores the input key, and the initial value holding unit 224 overwrites and stores the input initial value (step S1930).
  • the fraction processing control unit 1300 When the fraction processing control unit 1300 receives the content type 402 and the frame number 403 from the chunk information acquisition unit 1310, the fraction processing control unit 1300 stores the content type 402 and the frame number 403 in association with the received combination of the content type 402 and the frame number 403.
  • the stored fraction data size 1804 is read, the size of the first cipher block and the size of the last cipher block stored in the input buffer 201 are calculated (step S1935), and the calculated first cipher block is calculated.
  • the pre-processing unit 1301 and the post-processing unit 1302 are output to the chain value recording unit 1328.
  • the chain determination unit 213 determines whether the chunk held in the input buffer 201 is continuing the cryptographic chain. Therefore, it is checked whether or not the combination of the input content type 402 and the frame number 403 is stored in association with the inter-chunk chain value holding unit 1316 (step S1940). Determines that the chunk held in the input buffer 201 is continuing the encryption chain (step S1940: Yes), outputs the content type 402 and the frame number 403 to the chain value recording unit 1328, and The content type 402 is output to the initial value selection unit 225.
  • the initial value selection unit 225 When the initial value selection unit 225 receives a combination of the cipher chaining continuation signal and the content type 402 from the chain determination unit 213, the initial value selection unit 225 stores it in association with the received content type 402 from the inter-chunk chain value holding unit 1316. The chain value is read and output to the chain value selection unit 226.
  • the chain value selection unit 226 Since the chain value selection unit 226 receives the initial value selection signal from the operation determination unit 221, the chain value selection unit 226 selects the chain value input from the initial value selection unit 225 and outputs it to the operation unit 222 (step S1950).
  • the operation determination unit 221 reads the first cipher block of the cipher chunk stored in the input buffer 201 and outputs it to the preprocessing unit 1301.
  • the pre-processing unit 1301 determines whether or not the size of the first encryption block received from the fraction processing control unit 1300 is less than 128 bits in order to determine whether or not the encryption block is divided (step S1970). ), If it is less than 128 bits, it is determined that the cipher block is divided (step S1970: Yes), and 0 of the number of bits insufficient to 128 bits is added to the head of the received cipher block and 128 bits A synthesized cryptographic block is created, and the created synthesized cryptographic block is output to the computing unit 222 in place of the cryptographic block received from the computation determining unit 221.
  • step S1940 If the combination of the input content type 402 and the frame number 403 is not stored in association with the inter-chunk chain value holding unit 1316 in step S1940, the chunk held in the input buffer 201 is encrypted. It is determined that the chain is not continuing (step S1940: No), the content type 402 and the frame number 403 are output to the chain value recording unit 228, and the encryption end signal is output to the initial value selection unit 225.
  • the initial value selection unit 225 When the initial value selection unit 225 receives the cipher chain end signal from the chain determination unit 213, the initial value selection unit 225 reads the initial value held by the initial value holding unit 224 and outputs it to the chain value selection unit 226.
  • the chain value selection unit 226 receives the initial value selection signal from the calculation determination unit 221, when the initial value is input from the initial value selection unit 225, the chain value used by the calculation unit 222 is used. Is output to the calculation unit 222 (step S1960).
  • the operation determination unit 221 reads the first cipher block of the cipher chunk stored in the input buffer 201 and outputs it to the preprocessing unit 1301, and the preprocessing unit 1301 directly receives the cipher block as it is. Output to.
  • step S1980 or step S1960 the arithmetic unit 222 receives the first cipher block of the cipher chunk from the preprocessing unit 1301.
  • the calculation unit 222 decrypts the received encrypted block using the key recorded in the key holding unit 223 and the chain value output from the chain value selection unit, and outputs the decrypted encryption block to the post-processing unit 1302.
  • the next chain value calculated at that time is output to the chain value recording unit 228 (step S2000).
  • the post-processing unit 1302 (1) decrypts the first cipher block of the chunk held by the input buffer 201 from the arithmetic unit 222 when the size of the first cipher block received from the fraction processing control unit 1300 is less than 128 bits.
  • the input buffer 201 When the decrypted cipher block obtained by the processing is received, or (2) when the size of the last cipher block received from the fraction processing control unit 1300 is less than 128 bits, the input buffer 201 When the decrypted cipher block obtained by decrypting the cipher block at the tail of the chunk held by is received, the decrypted cipher block received is the cipher block to which the supplementary data is added by the preprocessing unit 1301.
  • step S2000 It is determined that it has been decrypted (step S2000: Yes), A composite plaintext is generated by deleting a portion of the decrypted cipher block corresponding to the assigned complementary data, and the generated composite plaintext is output in place of the decrypted cipher block received from the operation determination unit 221.
  • the data is output to the selection unit 229 (step S2010).
  • the post-processing unit 1302 When the size of the first cipher block received from the fraction processing control unit 1300 is 128 bits, the post-processing unit 1302 (2) the size of the last cipher block received from the fraction processing control unit 1300 is 128 bits. (3) When the size of the head cipher block received from the fraction processing control unit 1300 is less than 128 bits, the head cipher block and the tail cipher of the chunk held by the input buffer 201 from the arithmetic unit 222 When a decrypted encrypted block obtained by decrypting an encrypted block other than the block is received, the received decrypted encrypted block is decrypted by the preprocessing unit 1301 without supplemental data. (Step S2000: No) and the received decryption And outputs it to the output selection section 229 the cipher block.
  • step S2010 or step S2005: No the output selection unit 229 receives the decrypted encrypted block from the post-processing unit 1302.
  • the output selection unit 229 writes the input decrypted encryption block into the output buffer 202.
  • the chain value recording unit 228 adds 1 to the chain value number measured by the chain value number counter to obtain a new chain value number.
  • the chain value input from the calculator 222 is output when the calculator 222 decrypts the last cipher block of the chunk. Whether or not (step S2015).
  • step S2015 when the number of new chain values is less than the number of encryption blocks input from the cipher size calculation unit 211, the input chain value is the chain value output when decrypting the last cipher block of the chunk.
  • Step S2015: Yes the chain value input from the calculation unit 222 is overwritten and recorded in the intra-chunk chain value holding unit (Step S2020), and the chain value recording unit 228 stores it in the calculation determination unit 221.
  • An encryption block request signal is output.
  • the operation determination unit 221 When receiving the cipher block request signal from the chain value recording unit 228, the operation determination unit 221 outputs the next cipher block to the preprocessing unit 1301 and outputs a chain value selection signal to the chain value selection unit 226.
  • the pre-processing unit 1301 receives the tail cipher block of the chunk held by the input buffer 201 from the operation determination unit 221 when the size of the tail cipher block received from the fraction processing control unit 1300 is less than 128 bits. Then, it is determined that the subsequent cipher block is divided (step S2025: Yes), and a 128-bit composite cipher block is created by giving 0 of the number of bits insufficient to 128 bits to the head of the received cipher block. (Step S2030) The generated synthetic encryption block is output to the calculation unit 222 in place of the encryption block received from the calculation determination unit 221.
  • the pre-processing unit 1301 has an encryption block other than the trailing encryption block of the chunk held by the input buffer 201 from the operation determination unit 221 when the size of the trailing encryption block received from the fraction processing control unit 1300 is 128 bits. Is received, it is determined that the subsequent cipher block is not divided (step S2025: No), and the cipher block received from the operation determination unit 221 is output to the operation unit 222 as it is.
  • the chain value selection unit 226 When the chain value selection unit 226 receives the chain value selection signal, the chain value selection unit 226 reads the chain value held by the intra-chunk chain value holding unit 227 and outputs it to the calculation unit 222 (step S2035).
  • step S2035 When the process of step S2035 is completed, the process of step S2000 is started again.
  • step S2015 when the number of new chain values is equal to the number of cipher blocks input from the cipher size calculation unit 211, the chain value that is input when the input chain value decrypts the last cipher block of the chunk.
  • Step S2015: No when the fraction data size is 128 bits, the chain value input from the calculation unit 222 is replaced with the content type, the frame number, and the fraction input from the chain determination unit 213.
  • the chain value overwritten and recorded in the inter-chunk chain value holding unit 1316 is The chain value input last time from the calculation unit 222 is recorded (step S2040).
  • step S2040 the content decryption processing device 4000 waits until the subsequent chunk is written to the input buffer 201 by the CPU A111 or the CPUB 112 (step S2050).
  • step S2055: Yes When a subsequent chunk is written in the input buffer 201 by the CPU A 111 or CPU B 112 for a predetermined time, for example, 1 ms (step S2055: Yes), the processing of step S1900 is started again.
  • step S2055: No If the subsequent chunk is not written to the input buffer 201 by the CPU A 111 or CPU B 112 for a predetermined time, for example, 1 ms (step S2055: No), it is determined that the subsequent chunk does not exist in the content data 302.
  • the content decryption processing device 2000 ends the content decryption processing.
  • a content decryption processing apparatus that decrypts content encrypted by a cipher chain block method will be described.
  • a part of the chunk header 311 of the chunk 310 included in the content to be decrypted by the content decryption processing device 2000 of the first embodiment is deformed, and key information is included in the chunk header.
  • the content decryption processing apparatus 2000 described in the first embodiment is modified so that the content having the data format including the initial value information can be decrypted.
  • the content decryption processing apparatus includes a chunk information acquisition unit 210, a key storage unit 214, and a key setting unit 212, which are part of the content decryption processing apparatus 2000 described in the first embodiment.
  • This is a modified form in which a key generation unit is newly provided, and is realized on the playback device 1000 of the first embodiment in the same manner as the content decryption processing device 2000.
  • the content decrypted by the content decryption processing device 5000 according to the fourth embodiment includes the content 300 of the first embodiment, the key information 2205 and the initial value information 2206 newly added to the chunk header 311 of the first embodiment.
  • the content is transformed as if it were added.
  • FIG. 21 is a configuration diagram showing a data configuration of a chunk 2250 that constitutes a content to be decrypted by the content decryption processing device 3000 according to the fourth embodiment.
  • the chunk 2250 includes a chunk header 1015, chunk data 1010, and padding 1020.
  • the chunk header 2200 is unencrypted data, and includes a chunk size 2201 including information indicating the size of the chunk, a content type 2202 including information indicating the content type, a frame number 2203 including information indicating the frame number, and decoding.
  • Decoding header information 2204 including information used for the key, key information 2205 for generating a key, initial value information 2206 for generating an initial value, and chunk data size 2207 including information indicating the size of chunk data.
  • chunk size 2201, content type 2202, frame number 2203, decoding header information 2204, and chunk data size 2207 are the chunk size 401, content type 402, frame number 403, and decoding header of the first embodiment, respectively.
  • the information 404 and the chunk data size 405 are the same.
  • bit lengths and the order of appearance of the chunk size 2201, content type 2202, frame number 2203, decoding header information 2204, key information 2205, initial value information 2206, and chunk data size 2207 that are components of the chunk header 2200. Is fixed.
  • the key information 2205 is information for generating a key for decrypting the encryption frame to which the chunk including itself belongs
  • the initial value information 2206 is for decrypting the encryption frame to which the chunk including itself belongs. This is information for generating an initial value.
  • FIG. 22 is a block diagram illustrating a functional configuration of the content decryption processing device 5000.
  • the content decryption processing device 5000 transforms the chunk information acquisition unit 210 into a chunk information acquisition unit 2110 and transforms the key storage unit 214 into a key storage unit 2114 with respect to the content decryption processing device 2000 of the first embodiment.
  • the setting unit 212 is transformed into a key setting unit 2112 and a key generation unit 2101 is newly added.
  • the chunk information acquisition unit 2110 acquires the start address of the chunk held by the input buffer 201, and further, from the chunk header 2200, the chunk size 2201, chunk data size 2207, content type 2202, frame number 2203, key
  • the information 2205 and the initial value information 2206 are acquired, the chunk start address, the chunk size 2201, and the chunk data size 2207 are output to the encryption size calculation unit 211, and the content type 2202 and the frame number 2203 are displayed. It has a function of outputting to the key setting unit 212 and the chain determination unit 213, and outputting the content type 2202, frame number 2203, key information 2205, and initial value information 2206 to the key generation unit 2101.
  • the chunk information acquisition unit 2110 has a function of outputting a content header signal indicating that the data held in the input buffer 201 is the content header 301 to the cryptographic engine 150 when the content header 301 is written by the CPU A 111 or the CPU B 112.
  • the key generation unit 2101 When the key generation unit 2101 receives the content type 2202, the frame number 203, the key information 2205, and the initial value information 2206 from the chunk information acquisition unit 2110, the key generation unit 2101 creates a key from the received key information 2205, and generates an initial value It has a function of creating an initial value from the information 2206 and recording the received content type 2202, the received frame number 203, the generated key, and the generated initial value in association with each other in the key storage unit 2114.
  • the key generation unit 2101 has a function of decrypting when the key information 2205 is encrypted, and decrypting when the initial value information 2206 is encrypted.
  • the key storage unit 2114 is a storage area for storing a content type, a frame number, a key, and an initial value in association with each other, and is implemented as a part of the memory block 120.
  • FIG. 23 is a diagram showing information stored in the key storage unit 2114.
  • the key storage unit 2114 stores a content type 2300, a frame number 2301, a key 2302, and an initial value 2303 in association with each other.
  • the key setting unit 2112 stores the content type 2202 and the frame number 2203 that are input from the key storage unit 2114 in association with each other.
  • the key 2302 and the initial value 2303 are read out and output to the cryptographic engine 150.
  • the CPU A 111 or CPU B 112 When the playback device 1000 starts content playback processing, the CPU A 111 or CPU B 112 first inputs a content header for the content to be decrypted written in the external recording medium 137, the hard disk built in the hard disk device 131, or the RAM 122. Write to buffer 201.
  • the CPU A 111 or the CPU B 112 writes the chunks to the input buffer 201 in order from the first chunk of the content data until it becomes the last chunk.
  • the content decryption processing device 5000 starts content decryption processing.
  • FIG. 24 is a flowchart of content decryption processing performed by the content decryption processing device 2000.
  • the chunk information acquisition unit 2110 When the content decryption processing device 5000 starts content decryption processing, the chunk information acquisition unit 2110 outputs a content header signal, and the operation determination unit 221 receives the output content header signal.
  • the operation determination unit 221 Upon receiving the content header signal, the operation determination unit 221 reads the content header from the input buffer 201 and outputs the content header to the output selection unit 229.
  • the output selection unit 229 writes the received content header in the output buffer 202.
  • the chunk information acquisition unit 2110 acquires the start address of the chunk held by the input buffer 201, and further, from the chunk header 2200, the chunk size 2201 and the chunk data size 2207, content type 2202, frame number 2203, key information 2205, and initial value information 2206 are acquired (step S2400), and the chunk start address, chunk size 2201, and chunk data size 2207 are encrypted.
  • the content type 2202 and the frame number 2203 are output to the key setting unit 2112 and the chain determination unit 213, and the content type 2202, the frame number 2203, and the key information are output to the size calculation unit 211.
  • the key generation unit 2101 When the key generation unit 2101 receives the content type 2202, the frame number 203, the key information 2205, and the initial value information 2206 from the chunk information acquisition unit 2110, the key generation unit 2101 creates a key from the received key information 2205, and generates an initial value An initial value is created from the information 2206, and the received content type 2202, the received frame number 2203, the generated key, and the generated initial value are associated and recorded in the key storage unit 2114 (step S2402).
  • the encryption size calculation unit 211 receives the start address of the padding 2230, the end address of the chunk, and the chunk.
  • the number of encryption blocks included in the data 2220 is calculated (step S2405), the start address of the chunk, the start address of the padding 2230, and the end address of the chunk are output to the operation determination unit 221 and the number of encryption blocks is chained.
  • the data is output to the value recording unit 228.
  • the chain value recording unit 228 resets the number of chain values measured by the chain value number counter.
  • the operation determination unit 221 Upon receiving the chunk start address, the padding 2230 start address, and the chunk end address from the cipher size calculation unit 211, the operation determination unit 221 reads the chunk header 2200 and the padding 2230 from the input buffer and selects the output.
  • the output selection unit 229 writes the input chunk header 2200 and padding 2230 to the output buffer 202 (step S2410), and outputs an initial value selection signal to the chain value selection unit 226.
  • the key setting unit 2112 is stored in the key storage unit 214 in association with the set of the input content type 2202 and frame number 2203.
  • the key 2302 and the initial value 2303 are read out, the read key 2302 is output to the key holding unit 223, the read initial value 2303 is output to the initial value holding unit 224, and the key storage unit 214 is input
  • the key is overwritten and stored, and the initial value holding unit 224 overwrites and stores the input initial value (step S2415).
  • step S2420 to step S2465 is the same process as the process from step S820 to step S865 in the operation of the content decryption processing apparatus 2000 of the first embodiment, the description thereof is omitted.
  • Step S2420 is Step S820
  • Step S2425 is Step S825
  • Step S2430 is Step S830
  • Step S2435 is Step S835
  • Step S2440 is Step S840
  • Step S2445 is Step S845
  • Step S2450 is Step S850
  • Step S2455 is Step S855
  • Step S2465 corresponds to step S865.
  • step S2465 when a subsequent chunk is written in the input buffer 201 by the CPU A 111 or CPU B 112 within a predetermined time, for example, 1 ms after the content decryption processing device 5000 starts waiting (step S2470: Yes), The process of step S2400 is started again.
  • step S2470 ends the content decryption processing.
  • a content decryption processing apparatus that decrypts content encrypted by a cipher chain block method will be described.
  • the content decryption processing apparatus is a content decryption processing apparatus that decrypts content in the same format as the content to be decrypted by the content decryption processing apparatus 2000 according to the first embodiment.
  • the first processing unit that reads and records the information of the chunk headers of all the chunks, and the second processing unit that decrypts the content using the information of the chunk headers stored in the first processing unit.
  • the content decryption processing apparatus 2000 described in the first embodiment is modified.
  • the content decryption processing apparatus includes a chunk information acquisition unit 210, an encryption size calculation unit 211, a chain determination unit 213, which are part of the content decryption processing apparatus 2000 described in the first embodiment.
  • the key setting unit 212, the operation determination unit 221, the initial value selection unit 225, and the chain value recording unit 228 are modified to further include an encryption information storage unit and a frame number storage unit.
  • the encryption engine 150 of the playback device 1000 according to the first embodiment is realized on a playback device modified so as to replace the encryption engine 2550 obtained by modifying a part of the encryption engine 150.
  • FIG. 25 is a block diagram illustrating a functional configuration of the content decryption processing device 6000.
  • the content decryption processing device 6000 transforms the chunk information acquisition unit 210 into a chunk information acquisition unit 2510 and transforms the encryption size calculation unit 211 into an encryption size calculation unit 2511 with respect to the content decryption processing device 2000 of the first embodiment.
  • the chain determining unit 213 is transformed into the chain judging unit 2413
  • the key setting unit 212 is transformed into the key setting unit 2512
  • the operation judging unit 221 is transformed into the operation judging unit 2521
  • the initial value selecting unit 225 is transformed into the initial value selecting unit.
  • the chain value recording unit 228 is transformed into the chain value recording unit 2528, and an encryption information storage unit 2530 and a frame number storage unit 2522 are added.
  • the chunk information acquisition unit 2510 acquires the start address of the chunk held by the input buffer 201, and further acquires the chunk size 401, the chunk data size 405, the content type 402, and the frame number 403 from the chunk header 311.
  • the chunk start address, chunk size 401, and chunk data size 405 are output to the encryption size calculation unit 211, the content type 402 and the frame number 403 are output to the chain determination unit 213, and the content type 402 And the frame number 403 are associated with each other and recorded in the encryption information storage unit 2530.
  • the encryption size calculation unit 2511 receives the chunk data 312 start address, the padding 313 start address, Then, the chunk end address and the number of encryption blocks included in the chunk data 312 are calculated, and the calculated chunk data start address, padding start address, chunk end address, and number of encryption blocks are encrypted.
  • the information storage unit 2530 has a function of recording in association with a set of content type and frame number recorded by the chunk information acquisition unit 2510.
  • the start address of the chunk data 312 is calculated by adding the start address of the chunk and the size of the chunk header 311 having a fixed length, and the start address of the padding 313 is the start address of the chunk header 311 and the chunk data size 405.
  • the chunk end address is calculated by adding the chunk start address and the chunk size 401, and the number of cipher blocks is the number of unit bits of the cipher block with the chunk data size 405. Calculated by dividing by 128.
  • the frame number accumulation unit 2522 is a storage area for storing the content type and the frame number in association with each other, and is implemented as a part of the memory block 120.
  • FIG. 26 is a diagram showing information stored in the frame number accumulating unit 2522.
  • the frame number accumulating unit 2522 stores a frame number 2702 in association with each of the three content types 2701 of Video, Audio1, and Audio2.
  • the frame number 2702 stored here is the latest frame number among the frame numbers acquired by the chunk information acquisition unit 2510 in each of the content types 2701.
  • the chain determination unit 2513 determines the combination of the content type 402 and the frame number 403 input from the chunk information acquisition unit 2510. It is checked whether or not it is stored in association with the frame number accumulating unit 2522. If it is stored, it is determined that the chunk is held in the input buffer 201 and the encryption chain is continuing and stored. If not, the chunk held in the input buffer 201 has a function of determining that the encryption chain is not continuing.
  • the chain type determination unit 2513 determines that the encryption chain is in progress, the chain type determination unit 2513 notifies the encryption information storage unit 2530 that the content type and the frame number are recorded by the chunk information acquisition unit 2510. If it is recorded in association and it is determined that it is not in the chain, the frame number 2702 of the same content type 2701 as the content type input from the chunk information acquisition unit 2510 stored in the frame number accumulation unit 2522 is updated.
  • the encryption information storage unit 2530 has a function of recording the end of the encryption chain in association with the set of the content type and the frame number recorded by the chunk information acquisition unit 2510.
  • the encryption information storage unit 2530 includes a start address, a content type, a frame number, a chunk data start address, a number of encryption blocks, a padding start address, and a chunk end for all the chunks constituting the content to be decrypted. It is a storage area for storing addresses in association with the presence or absence of chaining in the order of chunks, and is implemented as a part of the memory block 120.
  • FIG. 27 is a diagram showing information stored in the encryption information storage unit 2530.
  • the encryption information storage unit 2530 includes, in the order of chunks of content to be decrypted, the start address 2601 of each chunk, the content type 2602, the frame number 2603, the chunk data start address 2604, The number of encryption blocks 2605, padding start address 2606, chunk end address 2607, and presence / absence of chain 2608 are stored.
  • the key setting unit 2512 sequentially reads out the content types 2602 from the encryption information storage unit 2530 in the order of the chunks, and stores the keys 502 and initial values 503 stored in association with the read content types 2602 from the key storage unit 214. Is read out and output to the cryptographic engine 150.
  • the operation determination unit 2521 uses the chunk start address 2601, the chunk data start address 2604, the padding start address 2606, and the chunk end address 2607 in order from the encryption information storage unit 2530 in the order of the chunks.
  • the chunk header 311 and the padding 313 are read from the retained chunks, output to the output selection unit 229, the chunk data 312 is read, output to the calculation unit 222 in units of cipher blocks, and output to the calculation unit 222.
  • the encryption block is the first encryption block of the chunk data
  • the initial value selection signal is output to the chain value selection unit 226, and the encryption block output to the calculation unit 222 is not the first encryption block of the chunk data.
  • the chain value selection signal is sent to the chain value selection unit 22. It has a function to output to.
  • the initial value selection unit 2525 sequentially reads the combination of the presence / absence of chaining 2608 and the content type 2602 from the encryption information storage unit 2530 in the order of the chunks
  • the chain value stored in association with the read content type 2602 is read from the inter-chunk chain value holding unit 216 and output to the chain value selection unit 226, and the presence / absence of the read chain 2608 is in the chain. If not shown, the initial value held by the initial value holding unit 224 is read and output to the chain value selection unit 226.
  • the chain value recording unit 2528 reads the number of cipher blocks 2605, the content type 2602, and the frame number 2603 sequentially from the cipher information storage unit 2530 in the order of the chunks, and when the chain value output by the arithmetic unit 222 is input, It has a function of recording the input chain value in either the inter-chunk chain value holding unit 216 or the intra-chunk chain value holding unit 227.
  • the chain value recording unit 2528 when the chain value input from the calculation unit 222 is output when the calculation unit 222 decrypts the last encrypted block of the chunk, In association with the content type 2602 read from the encryption information storage unit 2530 and the frame number 2603, the overwriting is recorded in the inter-chunk chain value holding unit 216, and the chain value input from the calculation unit 222 is changed to the chunk by the calculation unit 222. If it is not output when decrypting the last cipher block, the input chain value is overwritten and recorded in the intra-chunk chain value holding unit 227, and the cipher block request signal is sent to the operation determination unit 2521. Has a function to output.
  • the chain value recording unit 228 determines whether or not the chain value input from the calculation unit 222 is output when decrypting the last cipher block of the chunk. It has a chain value counter that measures numbers.
  • the chain value counter is reset every time the encryption block number 2605 is read from the encryption information storage unit 2530.
  • the chain value recording unit 228 adds 1 to the number of chain values measured by the chain value counter to obtain a new chain value number, and this new chain value number is the cipher size.
  • the number is less than the number of cipher blocks input from the calculation unit 211, it is determined that the chain value is not the chain value output when decrypting the last cipher block of the chunk, and the number of chain values measured by the chain value counter is the cipher size
  • the number is equal to the number of cipher blocks input from the calculation unit 211, it is determined that the chain value is output when the last cipher block of the chunk is decrypted.
  • the cryptographic engine 2550 transforms the computation determination unit 221 into a computation determination unit 2521, transforms the initial value selection unit 225 into an initial value selection unit 2525, and the chain value recording unit 228 with respect to the cryptographic engine 150 of the first embodiment. Is converted into a chain value recording unit 2528.
  • the first processing unit 2501 includes a chunk information acquisition unit 2510, an encryption size calculation unit 2511, a chain determination unit 2513, an encryption information storage unit 2530, and a frame number storage unit 2522, and is controlled by the CPU A111.
  • the first processing unit 2501 performs chunk data storage processing for acquiring information necessary for decrypting the content in chunk order from the chunk headers of all the chunks included in the content, and storing the information in the encryption information storage unit 2530.
  • the second processing unit 2502 includes a key setting unit 2512, a key storage unit 214, an inter-chunk chain value holding unit 216, and a cryptographic engine 2550, and is controlled by the CPUB 112.
  • the second processing unit 2502 reads information necessary for content decryption from the encryption information storage unit 2530 of the first processing unit, and performs content decryption processing for decrypting the content.
  • the CPU A 111 or the CPU B 112 When the playback device 1000 starts the content playback process, the CPU A 111 or the CPU B 112 first sets the content header 301 for the content to be decrypted written in the external recording medium 137, the hard disk built in the hard disk device 131, or the RAM 122. Write to the input buffer 201.
  • the CPU A 111 or the CPU B 112 writes the chunks to the input buffer 201 in order from the first chunk of the content data until it becomes the last chunk.
  • the first processing unit 2501 of the content decryption processing device 6000 obtains information necessary for decrypting the content from the chunk header of the chunk included in the content in the order of the chunk, and the encryption information Accumulate in the accumulation unit 2530.
  • the CPU A 111 or the CPU B 112 again writes the content header 301 to the input buffer 201, and then sequentially chunks from the first chunk of the content data until it becomes the last chunk. Write to the input buffer 201.
  • the second processing unit 2502 of the content decryption processing device 6000 starts content decryption processing.
  • FIG. 28 and FIG. 29 are flowcharts of content decryption processing performed by the content decryption processing device 6000.
  • the chunk information acquisition unit 2510 When the first processing unit 2501 of the content decryption processing device 6000 starts the chunk header information reading process, the chunk information acquisition unit 2510 outputs a content header signal, and the operation determination unit 2521 receives the output content header signal.
  • the operation determination unit 2521 Upon receiving the content header signal, the operation determination unit 2521 reads the content header 301 from the input buffer 201 and outputs the content header 301 to the output selection unit 229. The output selection unit 229 writes the received content header 301 into the output buffer 202.
  • the chunk information acquisition unit 2510 acquires the start address of the chunk held by the input buffer 201, and further, the chunk size 401 and the chunk data size from the chunk header 311. 405, the content type 402, and the frame number 403 are acquired (step S2800), the chunk start address, the chunk size 401, and the chunk data size 405 are output to the encryption size calculation unit 211.
  • the frame number 403 is output to the chain determination unit 2513, and the content type 402 and the frame number 403 are associated with each other and recorded in the encryption information storage unit 2530.
  • the cipher size calculation unit 2511 receives the chunk start address, the chunk size 401, and the chunk data size 405 from the chunk information acquisition unit 210, inputs the chunk data 312 start address, the padding 313 start address, The end address of the chunk and the number of cipher blocks included in the chunk data 312 are calculated (step S2810).
  • the chain determination unit 2513 checks whether or not the combination of the content type 402 input from the chunk information acquisition unit 210 and the frame number 403 is stored in association with the frame number storage unit 2522 (step S2820). If not stored, the frame number 2702 of the same content type 2701 as the content type input from the chunk information acquisition unit 210 stored in the frame number storage unit 2522 is updated.
  • the cipher size calculation unit 2511 records the calculated chunk data start address, padding start address, chunk end address, and number of cipher blocks in the cipher information storage unit 2530 by the chunk information acquisition unit 2510. If the content type and the frame number are recorded in association with each other, the chain determination unit 2513 obtains chunk information from the cipher information storage unit 2530 in step S2820 to indicate that the cipher chain is in progress.
  • the content type recorded by the unit 2510 is recorded in association with the set of frame numbers, and if not recorded, the end of the cipher chaining is recorded in the cryptographic information storage unit 2530 by the chunk information acquisition unit 2510. Recorded in association with a set of content type and frame number -Up S2840).
  • step S2840 the content decryption processing device 2000 stands by until the subsequent chunk is written into the input buffer 201 by the CPU A111 or CPUB112 (step S2850).
  • step S800 When a subsequent chunk is written in the input buffer 201 by the CPU A 111 or CPU B 112 within a predetermined time, for example, 1 ms (step S2850: Yes), the process of step S800 is started again.
  • step S2850 No
  • the subsequent chunk is not written to the input buffer 201 by the CPU A 111 or the CPU B 112 for a predetermined time, for example, 1 ms (step S2850: No)
  • a predetermined time for example, 1 ms
  • the CPU A 111 or the CPU B 112 again writes the content header 301 to the input buffer 201, and then sequentially chunks from the first chunk of the content data until it becomes the last chunk. Write to the input buffer 201.
  • the second processing unit 2502 of the content decryption processing device 6000 starts content decryption processing.
  • the operation determination unit 2521 reads the content header 301 from the input buffer 201 and outputs the content header 301 to the output selection unit 229, and the output selection unit 229 outputs the received content header 301. Write to buffer 202.
  • the arithmetic determination unit 2521 sends a start address 2601, a padding start address 2606, and a chunk end address 2607 corresponding to the written chunk from the encryption information storage unit 2530.
  • the key setting unit 2512 reads the content type 2602 corresponding to the written chunk from the encryption information storage unit 2530
  • the initial value selection unit 2525 reads the written chunk from the encryption information storage unit 2530.
  • chain value recording unit 2528 receives from encryption information storage unit 2530 the number of encrypted blocks 2605 and content type 2602 corresponding to the written chunk. It reads the frame number 2603, and resets the number of chaining values measuring chain value number counter (Step S2900).
  • the operation determination unit 2521 When the operation determination unit 2521 reads the start address 2601, the padding start address 2606, and the chunk end address 2607 from the encryption information storage unit 2530, the operation determination unit 2521 reads the chunk header 311 and the padding 313 from the input buffer and outputs the output selection unit 229.
  • the output selection unit 229 writes the input chunk header 311 and padding 313 to the output buffer 202 (step S2910), and outputs an initial value selection signal to the chain value selection unit 226.
  • the key setting unit 2512 reads the key 502 and the initial value 503 stored in the key storage unit 214 in association with the input content type 2602.
  • the read key 502 is output to the key holding unit 223
  • the read initial value 503 is output to the initial value holding unit 224
  • the key storage unit 214 overwrites and stores the input key, and holds the initial value.
  • the unit 224 overwrites and stores the input initial value (step S2915).
  • the initial value selection unit 2525 sequentially reads out the presence / absence of chaining 2608 and the combination of the content type 2602 from the encryption information storage unit 2530 in the order of chunks (step S2920), and indicates that the chain presence / absence 2608 read is in the chain.
  • step S2920: Yes the chain value stored in association with the read content type 2602 is read from the inter-chunk chain value holding unit 216 and output to the chain value selection unit 226.
  • the chain value selection unit 226 Since the chain value selection unit 226 has received the initial value selection signal from the operation determination unit 2521, the chain value selection unit 226 selects the chain value input from the initial value selection unit 2525 and outputs it to the operation unit 222 (step S2925).
  • step S2920 if the read chain presence / absence 2608 does not indicate that chaining is in progress (step S2920: No), the initial value held by the initial value holding unit 224 is read and the chained value selection unit 226 is read. Output to.
  • the chain value selection unit 226 receives the initial value selection signal from the calculation determination unit 2521, when the initial value is input from the initial value selection unit 2525, the chain value used by the calculation unit 222 is used as the input initial value. To the calculation unit 222 (step S2930).
  • step S2935 to step S2965 after the processing of step S2925 or step S2930 is the same as the processing from step S835 to step S865 in the operation of the content decryption processing apparatus 2000 of the first embodiment. Description is omitted.
  • step S2935 corresponds to step S835
  • step S2940 corresponds to step S840
  • step S2945 corresponds to step S845
  • step S2950 corresponds to step S850
  • step S2955 corresponds to step S855
  • step S2965 corresponds to step S865.
  • step S2965 when the subsequent chunk is written to the input buffer 201 by the CPU A 111 or CPU B 112 within a predetermined time, for example, 1 ms after the second processing unit 2502 starts waiting (step S2970: Yes), The process of step S1202 is started again.
  • the data structure of the data stream to be decrypted is an encryption composed of a chain of encrypted block sequences belonging to the first type encryption frame (for example, an encrypted video frame).
  • the processing apparatus has been described, the following modifications may be made, and the present invention is not limited to the content decryption processing apparatus as described in the above-described embodiment.
  • the CPU block 110 is composed of two CPUs, the CPU A 111 and the CPU B 112. However, the number of CPUs may be one, three or more, and a dual CPU. One processor having a core function may be used, or one processor having a quad CPU core function may be used.
  • the ROM 121 is a ROM.
  • the cryptographic engine 150 is a DSP.
  • the cryptographic engine 150 is not necessarily a DSP.
  • the CPU A 111 or the CPU B 112 may be configured to execute software.
  • a configuration realized by executing software by a CPU other than the CPU A 111 and the CPU B 112 may be used, or a configuration realized by an ASIC, an FPGA, or the like.
  • the AV decoder 160 is a DSP.
  • the AV decoder 160 is not necessarily a DSP.
  • the CPU A 111 or the CPU B 112 may be configured to execute software.
  • a configuration other than the CPU A 111 and the CPU B 112 may be realized by executing software, or may be realized by an ASIC, FPGA, or the like.
  • the peripheral device block 130 includes the hard disk device 131, the hard disk device interface 141, the read / write device 132, the read / write device interface 142, the output device 133, and the output device interface 143.
  • the AV decoder 160 has the MPEG2 decoding function, the MPEG4 decoding function, and the MPEG4-AVC decoding function. However, the AV decoder 160 decodes data other than the data encoded by these encoding methods. It may have a function.
  • the output device 133 is composed of an LCD (Liquid Crystal Display) and a speaker, but instead of the LCD, a PDP (Plasma Display Panel) or an organic EL (Electro -Luminescence) Display or CRT may be used.
  • the playback device 1000 is a personal computer in the first embodiment, for example, a general-purpose computer, a television receiver, a DVD playback device, and a DVD recording / playback device as long as it has a function of decoding content. Or a BD player, a BD recorder / player, a PDA (Personal Digital Assistance), or a portable communication terminal.
  • the input device 134 is composed of a keyboard and a mouse for accepting an operation by the user. However, if the input device 134 has a function for accepting an operation command of the player 1000 by the user, For example, an input button that receives an operation by the user, a receiving device that receives a signal from a remote controller operated by the user, or the like may be used. (9) In Embodiment 1, it is assumed that the content to be decrypted is an encrypted Video ES, an encrypted Audio 1 ES, and an encrypted Audio 2 ES, which are at least different from each other. As long as two ESs are multiplexed, ESs other than these ESs may be multiplexed.
  • Video1ES, Video2ES, Video3ES, and AudioES are multiplexed.
  • Encrypted VideoES is obtained by encoding a captured video in the MPEG4-AVC format and encrypting each of a large number of Video frames obtained by the encoding in a cipher chain block format.
  • it may be encoded by a method other than the MPEG4-AVC method such as MPEG2, MPEG4, Motion JPEG (Joint Photographic Experts Group), etc.
  • the encrypted Audio1ES and Audio2ES are obtained by encoding captured audio by the MPEG4-AVC method, and encrypting each of a large number of Audio frames by the encryption chain block method.
  • it may be encoded by a method other than the MPEG4-AVC method such as MPEG2 or MPEG4.
  • each of the constituent elements of the chunk header is assumed to have a fixed bit length and appearance order. However, if there is information indicating the bit length, the bit length may not be fixed. If there is information indicating the order, the order may not be fixed.
  • the chunk data is composed of three cipher blocks. However, the chunk data may be composed of a number of cipher blocks other than three.
  • the cipher block is assumed to be cipher chained in the CTR mode using the AES cipher system.
  • the cipher block is in a mode other than the CRT mode such as the CBC (Cipher Block Chaining) mode.
  • It may be encrypted, for example, it may be encrypted with an encryption method other than the AES encryption method such as DES (Data Encryption Standard) encryption method.
  • the bit length of the encryption block is 128 bits
  • the bit length of the chain value is 128 bits
  • the bit length of the key is 128 bits. These bit lengths are 128 bits according to the encryption scheme of the encryption block. Other bit lengths may be used.
  • the arithmetic unit 222 is configured to include the AES encryption circuit 701.
  • the calculation unit 222 is an encryption circuit of an encryption method other than the AES encryption such as DES encryption. It doesn't matter.
  • the incrementer 703 calculates the next chain value by incrementing only the lower 32 bits of the input chain value by 1.
  • the lower 64 bits For example, the next chain value may be calculated by incrementing only one by one, and the portion other than the lower 32 bits may be incremented by one. For example, a number other than one such as 2 or -1 may be incremented. I do not care.
  • the format of the content to be decrypted has been described with reference to the drawings. However, the file format of the content to be decrypted has a format that does not violate the described format, for example, ASF (Advanced Streaming) Format), MP4 file format, or QuickTime file format.
  • ASF Advanced Streaming
  • MP4 MP4 file format
  • QuickTime file format for example, MP4 file format, or QuickTime file format.
  • the CPU block 110 is composed of two CPUs
  • the memory block is composed of ROM and RAM
  • the cryptographic engine 150 is composed of DSP
  • the AV decoder 160 is composed of DSP.
  • Other configurations for example, a configuration in which the CPU block 110, the memory block 120, the peripheral device block 130, the cryptographic engine 150, the AV decoder 160, and a part of the bus line 140 are realized by one integrated circuit. It does not matter.
  • FIG. 30 is a block diagram showing a block configuration of the playback device 1000.
  • the CPU block 110 the memory block 120, the peripheral device block 130, the cryptographic engine 150, the AV decoder 160, It is shown that a part of the bus line 140 is realized by one integrated circuit 10.
  • the content to be decrypted has a data format in which the key information 2205 is included in the chunk header 2200. However, even if the key information 2205 is included in the encryption block constituting the chunk data 2220, I do not care.
  • the chunk information acquisition unit 2210 acquires key information from the encrypted block of chunk data
  • the key generation unit 2101 acquires key information from the chunk information acquisition unit 2210.
  • the key generation unit 2101 creates the key after decrypting the encrypted key information.
  • the content to be decrypted is in a data format in which the initial value information 2206 is included in the chunk header 2200, but the initial value information 2206 is included in the encryption block constituting the chunk data 2220. It does not matter.
  • the chunk information acquisition unit 2210 acquires initial value information from the encrypted block of chunk data, and the key generation unit 2101 acquires initial value information from the chunk information acquisition unit 2210. It becomes.
  • the key generation unit 2101 creates the key after decrypting the encrypted initial value information.
  • the key information 2205 is information for generating a key
  • the initial value information 2206 is information for generating an initial value
  • the initial value information 2206 may be the initial value itself.
  • the key information 2205 may be common to all frames belonging to each encrypted ES, or may be different from each other in units of chunks. If the key information 2205 is included in the encryption block constituting the chunk data 2220, a plurality of key information 2205 exists in one chunk, and the encryption blocks in the same chunk have different keys. Information 2205 may be used.
  • the initial value information 2206 may be common to all frames belonging to each encrypted ES, or may be different from each other in units of chunks. Furthermore, if the initial value information 2206 is included in the cipher block constituting the chunk data 2220, a plurality of key information 2205 exists in one chunk, and cipher blocks in the same chunk are mutually connected. Different key information 2205 may be used.
  • the first processing unit 2501 is controlled by the CPU A 111 and the second processing unit 2502 is controlled by the CPU B 112, but other configurations, for example, the first processing unit 2501 is connected to the CPU A 111.
  • the CPU B 112 may be controlled, and the second processing unit 2502 may be controlled by the CPU A 111 and the CPU B 112.
  • the first processing unit 2501 may be controlled by three or more CPUs
  • the second processing unit 2502 may include three or more CPUs. It may be controlled by the CPU.
  • the secure CPU having a function of concealing information to be handled in the CPU block, and the secure CPU is controlled by the second processing unit 2502, so that the key stored in the key storage unit 214 and the initial value are stored. You may make it not to be known to the third party.
  • (22) in the fifth embodiment, the example in which the second processing unit 2502 starts the content decrypting process after the first processing unit 2501 finishes the chunk data accumulation processing has been described. Chunk data by the first processing unit 2501 Even if the accumulation process is not completed to the end, the second processing unit 2502 may start the content decryption process in a state where information of a part of chunks is stored in the encryption information accumulation unit 2530.
  • the external recording medium 137 is a DVD, DVD-R, DVD-RAM, BD, BD-R, BD-RE, or the like.
  • it may be a CD (Compact Disc), a CD-R, an SD card, or the like.
  • the reading / writing device 132 can write and read data on a DVD, DVD-R, BD, BD-R, BD-RE, etc., but can write and read data.
  • a recording medium for example, data may be written to or read from a CD, CD-R, SD card or the like.
  • the external transmission medium 136 is an optical communication line, a telephone communication line, a broadcast wave, or the like.
  • these forms may be any form that can transmit a digital signal.
  • it may be a wired form, a wireless form, or an infrared form.
  • the present invention can be widely used in a decryption processing device that decrypts encrypted digital data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

 コンテンツ復号処理装置2000は、チャンクの後尾の暗号ブロックを復号する際に算定した連鎖値を、コンテンツタイプと、フレーム番号と関連付けてチャンク間連鎖値保持部216に記憶し、チャンクの先頭の暗号ブロックを復号する場合において、チャンク間連鎖値保持部216にそのチャンクのコンテンツタイプとフレーム番号と対応付けられて記憶されている連鎖値があるときに、そのチャンクのコンテンツタイプとフレーム番号と対応付けられてチャンク間連鎖値保持部216に記憶されている連鎖値を用いて、チャンクの先頭の暗号ブロックを復号することで、復号するデータストリームが、第1種暗号フレームに属する暗号チャンク間に、第2種暗号フレームに属する暗号チャンクが存在しているデータ構造であっても正しくデータストリームを復号することができる。

Description

コンテンツ復号処理装置、コンテンツ復号処理方法及び集積回路
 本発明は、暗号連鎖ブロック方式で暗号化されている暗号データを復号するコンテンツ復号処理装置に関する。
 情報通信ネットワークを介して通信されるデジタルデータや、光ディスク等のメディアに蓄積されているデジタルデータ等の不正な利用を防止するために、これらのデジタルデータは、第三者がそのままでは利用することができないように暗号化された暗号データとなっている場合が多い。
 デジタルデータを暗号化する方式の一つに、暗号対象データを複数の平文ブロックに分割し、直前の平文ブロックの暗号化が、その次の平文ブロックの暗号化に影響を与えるように暗号化していくことで、各平文ブロックを連鎖的に暗号処理するという暗号連鎖ブロック方式がある。
 暗号連鎖ブロック方式において、各平文ブロックは、その直前の平文ブロックの暗号化の際に使用される連鎖値に対して所定の演算処理をすることによって得られる連鎖値を使用して暗号化される。
 この暗号連鎖ブロック方式で暗号化された暗号データは、平文ブロックを暗号化することで得られた暗号ブロックが暗号化された順番に並んで構成される。
 暗号連鎖ブロック方式において、各暗号ブロックは、その直前の暗号ブロックの復号の際に使用される連鎖値に対して所定の演算処理をすることによって得られる連鎖値を使用して復号される。
 暗号連鎖ブロック方式で暗号化された暗号データを復号する技術として、例えば、暗号ブロックの復号の際に、暗号ブロックの復号処理と並行して次の暗号ブロックの復号に必要な連鎖値を生成することによって、次の暗号ブロックの復号開始時刻を早める技術(特許文献1参照)等が提案されている。
特開2000-295212号公報
 一方、ビデオフレームから構成されるビデオデータストリームと、オーディオフレームから構成されるオーディオデータストリームとを、1つのデータストリームとして取り扱う手法として、ビデオデータストリームとオーディオデータストリームとを分割多重化して一つの新たなデータストリームとする手法がある。
 このような手法において、分割多重化前のビデオデータストリームとオーディオデータストリームとが、それぞれ、フレーム毎に暗号連鎖ブロック方式で暗号化されているデータストリームである場合には、分割多重化後のデータストリームには、暗号連鎖している暗号ブロック列(例えば暗号化されたビデオフレームの暗号ブロック列)間に、その暗号フレームとは独立に暗号連鎖している暗号ブロック列(例えば暗号化されたオーディオフレームの暗号ブロック列)が存在する場合がある。
 このようなデータストリームを復号するコンテンツ復号処理装置は、復号対象のデータストリームが、第1種暗号フレーム(例えば暗号化されたビデオフレーム)に属する連鎖する暗号ブロック列(以下、「暗号チャンク」という。)間に、第2種暗号フレーム(例えば暗号化されたオーディオフレーム)に属する暗号チャンクが存在しているデータ構造のデータストリームを復号することができる必要がある。
 しかしながら、暗号ブロックを復号する場合において、単純にデータストリーム上の直前の暗号ブロックの復号の際に使用される連鎖値に対して所定の演算処理をすることによって得られる連鎖値を使用して暗号ブロックを復号するという構成のコンテンツ復号処理装置では、このようなデータストリームを復号することはできない。
 そこで、本発明は、復号するデータストリームが、第1種暗号フレームに属する暗号チャンク間に、第2種暗号フレームに属する暗号チャンクが存在しているデータ構造のデータストリームであっても、データストリームの暗号ブロック順にそのデータストリームを復号することができるコンテンツ復号処理装置を提供することを目的とする。
 上記課題を解決するために本発明に係るコンテンツ復号処理装置は、複数種類に分類されるフレームのそれぞれが連鎖暗号ブロック方式で、連鎖する暗号ブロック列からなるチャンクを複数含む形態で暗号化され、複数の暗号フレームそれぞれを分割し、第1種暗号フレームに属する暗号チャンクと、第2種暗号フレームに属する暗号チャンクとが混在するように、ストリームライン化してなるデータストリームを復号するコンテンツ復号処理装置であって、連鎖値を用いて前記データストリームに含まれる暗号ブロックを順に復号し、暗号ブロックを復号する毎に新たな連鎖値を算定する復号部と、暗号フレームの識別情報と連鎖値とを関連付けて記憶するための連鎖値保持部と、前記復号部によってチャンクの後尾の暗号ブロックが復号された場合に、前記復号部によって復号された暗号ブロックの属する暗号フレームの識別情報と、当該復号された暗号ブロックの復号の際に前記復号部によって算定された連鎖値とを関連付けて前記連鎖値保持部に記録する連鎖値記録部とを備え、前記復号部は、前記連鎖値保持部を参照して、復号する暗号ブロックがチャンクの先頭の暗号ブロックである場合において、前記復号する暗号ブロックが属する暗号フレームの一部を既に復号していたときに、当該暗号ブロックを復号する際に用いる連鎖値として、当該暗号フレームの暗号ブロックのうち、最後に復号した暗号ブロックの復号の際に算定した連鎖値を用いることを特徴とする。
 上述の構成を備える本発明に係るコンテンツ復号処理装置は、連鎖値記録部は、前記復号部によってチャンクの後尾の暗号ブロックが復号された場合に、前記復号部によって復号された暗号ブロックの属する暗号フレームの識別情報と、当該復号された暗号ブロックの復号の際に前記復号部によって算定された連鎖値とを関連付けて前記連鎖値保持部に記録し、復号部は、前記連鎖値保持部を参照して、復号する暗号ブロックがチャンクの先頭の暗号ブロックである場合において、前記復号する暗号ブロックが属する暗号フレームの一部を既に復号していたときに、当該暗号ブロックを復号する際に用いる連鎖値として、当該暗号フレームの暗号ブロックのうち、最後に復号した暗号ブロックの復号の際に算定した連鎖値を用いることになるため、復号するデータストリームが、第1種暗号フレームに属する暗号チャンク間に、第2種暗号フレームに属する暗号チャンクが存在しているデータ構造であっても正しくデータストリームを復号することができるという効果を有する。
 また、例えば、データストリームから全ての第1種暗号フレームに属する暗号チャンクのみを順番通りに抽出して、抽出した暗号チャンクを順番通りに復号し、データストリームから全ての第2種暗号フレームのみを順番通りに抽出して、第1種暗号フレームの復号とは独立して、抽出した第2種暗号フレームを順番通りに復号するという復号処理装置でも、正しくデータストリームを復号することができるが、この復号処理装置には、データストリーム全体の中から種別毎に全ての暗号フレームを分離して抽出するという工程が必要になり、さらに、抽出した暗号ブロックを、種別ごとに一時記憶しておくための記憶領域が必要になる。
 これに対して、上述の構成を備える本発明に係るコンテンツ復号処理装置では、種別毎に全ての暗号フレームを抽出する工程が不要であり、加えて、抽出した暗号フレームを、種別毎に記憶しておくための記憶領域も不要である。
 また、前記連鎖値保持部は、連鎖値を記憶するためのチャンク内連鎖値保持部を含み、前記連鎖値記録部は、前記復号部によって暗号ブロックが復号された場合において、チャンクの後尾でない暗号ブロックが復号されたときに、前記復号部で算定された連鎖値を前記チャンク内連鎖値保持部に記憶されている連鎖値に上書きして記録し、前記復号部は、復号する暗号ブロックがチャンクの先頭の暗号ブロックでない場合に、前記チャンク内連鎖値保持部に記録されている連鎖値を用いて暗号ブロックを復号することを特徴とするとしてもよい。
 このような構成にすることによって、チャンク内連鎖値保持部は、連鎖値のみを上書きされて記憶することになるため、チャンク内連鎖値保持部に必要な記憶容量を1つの連鎖値の記憶に必要な記憶容量に限定したコンテンツ復号処理装置を提供することができるという効果を有する。
 また、前記連鎖値記録部は、暗号フレームの識別情報と連鎖値とを関連付けて前記連鎖値保持部に記録する場合に、暗号フレーム種毎に、暗号フレームを示す情報と連鎖値とを前記連鎖値保持部に上書きして記録することを特徴とするとしてもよい。
 このような構成にすることによって、連鎖値保持部は、暗号フレーム種毎に、暗号フレームを示す情報と連鎖値とを上書きされて記憶することになるため、連鎖値保持部に必要な記憶容量を、暗号フレーム種毎に、1つの暗号フレームを示す情報と、1つの連鎖値を関連付けて記憶するのに必要な記憶容量に限定したコンテンツ復号処理装置を提供することができるという効果を有する。
 また、前記復号部の復号対象である暗号ブロックが所定のビット数に足りない場合に、当該暗号ブロックが前記所定のビット数となるように、当該暗号ブロックに付与データを付与するデータ付与部と、前記復号部によって復号された暗号ブロックを記憶するための復号データ保持部と、前記復号部によって復号された暗号ブロックの一部分を前記復号データ保持部に記録する復号データ記録部とをさらに備え、前記復号部の復号対象である暗号ブロックが前記所定のビット数に足りない場合に、前記データ付与部は、前記復号対象である暗号ブロックに付与データを付与して、前記所定のビット数の合成暗号ブロックを生成し、前記復号部は、前記復号対象の暗号ブロックの代わりに前記合成暗号ブロックを復号し、前記復号データ記録部は、前記復号部によって復号された合成暗号ブロックのうち、前記データ付与部によって付与された付与データの部分が前記復号部によって復号されることで得られた部分以外の部分を前記復号データ保持部に記録するとしてもよい。
 ここで、所定のビット数とは、復号部が復号できる暗号ブロックのビット数のことである。
 このような構成にすることによって、復号対象である暗号ブロックが、その一部のビットが欠落して所定のビット数に足りない暗号ブロックである場合であっても、暗号ブロックに付与データを付与することで所定のビット数となった合成暗号ブロックを復号部が復号し、復号された合成ブロックから、付与データの部分が復号されることで得られた部分以外の部分を復号データ保持部に記録することになるため、所定のビット数に足りない暗号ブロックであっても、その暗号ブロックを復号して、復号データ保持部に記録することができるコンテンツ復号処理装置を提供することができるという効果を有する。
再生機1000のブロック構成を示すブロック図 コンテンツのデータ構造を示すデータ構造図 チャンク310のデータ構造を示すデータ構造図 コンテンツ復号処理装置2000の機能構成を示すブロック図 鍵蓄積部214が保持する情報を示す図 チャンク間連鎖値保持部216が保持する情報を示す図 演算部222の機能構成を示すブロック図 コンテンツ復号処理装置2000のコンテンツ復号動作のフローチャート チャンク1050のデータ構造を示すデータ構造図 コンテンツヘッダに含まれている情報を示す図 コンテンツ復号処理装置3000の機能構成を示すブロック図 コンテンツ復号処理装置3000のコンテンツ復号動作のフローチャート コンテンツデータのデータ構造を示すデータ構造図 コンテンツ復号処理装置4000の機能構成を示すブロック図 チャンク間連鎖値保持部1316が保持する情報を示す図 暗号ブロックの前半が欠落している場合の、前処理部1301と演算部222と後処理部1302とが行う処理の動作を示す図である。 暗号ブロックの後半が欠落している場合の、前処理部1301と演算部222と後処理部1302とが行う処理の動作を示す図である。 暗号ブロックに欠落がない場合の、前処理部1301と演算部222と後処理部1302とが行う処理の動作を示す図である。 コンテンツ復号処理装置4000のコンテンツ復号動作のフローチャートその1 コンテンツ復号処理装置4000のコンテンツ復号動作のフローチャートその2 チャンク2250のデータ構造を示すデータ構造図 コンテンツ復号処理装置5000の機能構成を示すブロック図 鍵蓄積部2114が保持する情報を示す図 コンテンツ復号処理装置5000のコンテンツ復号動作のフローチャート コンテンツ復号処理装置6000の機能構成を示すブロック図 フレーム番号蓄積部2522が保持する情報を示す図 暗号情報蓄積部2530が保持する情報を示す図 コンテンツ復号処理装置6000のコンテンツ復号動作のフローチャートその1 コンテンツ復号処理装置6000のコンテンツ復号動作のフローチャートその2 再生機1000のハードウエア構成を示すブロック図
<実施の形態1>
 以下、本発明に係るコンテンツ復号処理装置の一実施形態として、暗号連鎖ブロック方式で暗号化されたコンテンツを復号するコンテンツ復号処理装置について説明する。
 ここで暗号化されたコンテンツとは、ビデオフレームから構成されるビデオデータストリームと、オーディオフレームから構成されるオーディオデータストリームとを、それぞれ、フレーム毎に暗号連鎖ブロック方式で暗号化して、暗号化されたビデオデータストリームと、暗号化されたオーディオデータストリームとを分割多重化して一つの新たなデータストリームとしたものである。
 このコンテンツ復号処理装置は、復号対象のデータストリームのデータ構造が、第1種暗号フレーム(例えば暗号化されたビデオフレーム)に属する連鎖する暗号ブロック列からなる暗号チャンク間に、第2種暗号フレーム(例えば暗号化されたオーディオフレーム)に属する暗号ブロック列からなる暗号チャンクが存在しているデータ構造であっても、データストリームを正しく復号することができる。
 以下、本実施の形態に係るコンテンツ復号処理装置の構成について、図面を参照しながら説明する。
 <構成>
  <再生機1000>
 図1は、本実施の形態に係るコンテンツ復号処理装置2000を備えた再生機1000のブロック構成を示すブロック図である。
 再生機1000は、パーソナルコンピュータであって、CPU(Central Processing Unit:中央演算処理装置)ブロック110と、メモリブロック120と、周辺デバイスブロック130と、バスライン140と、暗号エンジン150と、AVデコーダ160とから構成される。
 CPUブロック110は、CPUA111と、CPUB112との2つのCPUから構成される。
 CPUA111とCPUB112とは、バスライン140と接続し、メモリブロック120が記憶するプログラムを実行することで、メモリブロック120、周辺デバイスブロック130、暗号エンジン150、AVデコーダ160を用いて、記録媒体から暗号化されたデータストリームを読み出す機能、暗号化されたデータストリームを復号する機能、符号化されたデータストリームを復号する機能等を実現する。
 CPUA111とCPUB112とは、互いに協調しながら並列に動作することで、上記機能を実現する。
 メモリブロック120は、ROM(Read Only Memory)121とRAM(Random Access Memory)122とから構成されている。
 ROM121は、バスライン140と接続し、CPUA111の動作を規定するプログラムと、CPUB112の動作を規定するプログラムと、CPUA111とCPUB112とが利用するデータとを記憶している。
 RAM122は、バスライン140と接続し、CPUA111又はCPUB112がプログラムを実行することに伴って発生するデータを一時的に記憶し、また、周辺デバイスブロック130から読み取ったデータを一時的に記憶する。
 周辺デバイスブロック130は、ハードディスク装置131と、ハードディスク装置インターフェース141と、読取書込装置132と、読取書込装置インターフェース142と、出力装置133と、出力装置インターフェース143と、入力装置134と、入力装置インターフェース144と、通信装置135とから構成されている。
 暗号エンジン150は、暗号化されたデータの復号を行う機能を有するDSP(Digital Signal Processor)であって、CPUA111及びCPUB112によって制御され、バスライン140と接続する。
 AVデコーダ160は、符号化されたVideoデータやAudioデータをデコードするDSPであって、CPUA111及びCPUB112によって制御され、MPEG(Moving Picture Experts Group)2デコード機能、MPEG4デコード機能、MPEG4-AVCデコード機能を有する。
 再生機1000は、AVデコーダ160でデコードした結果を、出力装置133で出力することで、コンテンツを再生する。
 ハードディスク装置131は、CPUA111及びCPUB112によって制御され、内蔵するハードディスクにコンテンツを書き込む機能と、内蔵するハードディスクに書き込まれているコンテンツを読み取る機能とを有し、ハードディスク装置インターフェース141を介してバスライン140と接続する。
 ハードディスク装置インターフェース141は、ハードディスク装置131とバスライン140との間の信号のやりとりを仲介するものである。
 読取書込装置132は、CPUA111及びCPUB112によって制御され、外部記録媒体137にコンテンツを書き込む機能と、外部記録媒体137に書き込まれているコンテンツを読み取る機能とを有し、読取書込装置インターフェース142を介してバスライン140と接続する。
 ここで、外部記録媒体137とは、DVD(Digital Versatile Disc)、DVD-R、DVD-RAM、BD(Blu-ray Disc)、BD-R、BD-RE等であって、読取書込装置132は、これら、DVD、DVD-R、BD、BD-R、BD-RE等へのデータの書込みや読取りをすることができる。
 読取書込装置インターフェース142は、読取書込装置132とバスライン140との間の信号のやりとりを仲介するものである。
 通信装置135は、外部伝送媒体136を通じてコンテンツを取得する機能を有し、バスライン140と接続し、外部のコンテンツサーバや、インターネット上のコンテンツ提供サイト等からコンテンツを取得する。
 ここで、外部伝送媒体136とは、光通信回線、電話通信回線、放送波等であって、通信装置135は、これら光通信回線、電話通信回線、放送波等からの信号を受信することができる。
 通信装置135が取得するコンテンツは、外部記録媒体137、ハードディスク装置131に内蔵されるハードディスク、または、RAM122に書き込まれる。
 出力装置133は、映像と音声とを出力する装置であって、AVデコーダ160によってデコードされたVideoデータやAudioデータを出力する機能を有し、出力装置インターフェース143を介してバスライン140と接続し、LCD(Liquid Crystal Display)と、スピーカとで構成されている。
 出力装置インターフェース143は、出力装置133とバスライン140との間の信号のやりとりを仲介するものである。
 入力装置134は、ユーザによる操作を受け付けるキーボードと、マウスとから構成され、ユーザによる再生機1000の操作コマンドを受け付ける機能を有し、入力装置インターフェース144を介してバスライン140と接続する。
 入力装置インターフェース144は、入力装置134とバスライン140との間の信号のやりとりを仲介するものである。
 バスライン140は、CPUA111、CPUB112、ROM121、RAM122、暗号エンジン150、AVデコーダ160、通信装置135、ハードディスク装置インターフェース141、読取書込装置インターフェース142、出力装置インターフェース143、及び、入力装置インターフェース144と接続し、接続する各構成要素間のデータ通信を行うためのものである。
 上述のように構成される再生機1000は、CPUA111及びCPUB112がROM121又はRAM122に記憶されているプログラムを実行することで、外部記録媒体137、ハードディスク装置131の内蔵するハードディスク、又は、RAM122に書き込まれているコンテンツの再生処理を実行する。
  <コンテンツのデータ構造>
 図2は、本実施の形態1に係るコンテンツ復号処理装置2000が復号するコンテンツ300のデータ構造を示すデータ構造図である。
 コンテンツ300は、映像を符号化することで得られるビデオストリームが暗号化されたVideoES(Elementary Stream)と、日本語による音声を符号化することで得られるオーディオストリームが暗号化されたAudio1ESと、英語による音声を符号化することで得られるオーディオストリームが暗号化されたAudio2ESとが分割多重化されて連続する1つのストリームになっているコンテンツデータ302と、コンテンツ300に関する情報を含むコンテンツヘッダ301とから構成される。
 ここで、暗号化されたVideoESとは、MPEG4-AVC方式で符号化された映像データに対して、1画面の画像データであるVideoフレームのそれぞれを、暗号連鎖ブロック方式で暗号化されることによって得られたストリームデータである。
 暗号連鎖は各Videoフレーム単位で完結し、互いに異なるVideoフレームに暗号連鎖が継続することはない。
 また、連鎖する暗号ブロックの先頭の暗号ブロックを復号する際に用いる連鎖値である初期値と、各暗号ブロックを復号する際に用いる鍵とは、全てのVideoフレームで共通のものを用いている。
 ここで、暗号化されたAudio1ES、Audio2ESとは、音声データをMPEG4-AVC方式で符号化することで得られたAudioフレームのそれぞれを、暗号連鎖ブロック方式で暗号化されることによって得られたストリームデータである。
 暗号連鎖は各Audioフレーム単位で完結し、互いに異なるAudioフレームに暗号連鎖が継続することはない。
 また、初期値と鍵とは、暗号化されたAudio1ESに属する全てのAudioフレームで共通のものを用い、暗号化されたAudio2ESに属する全てのAudioフレームで共通のものを用いているが、暗号化されたAudio1ESに属するAudioフレームの初期値と鍵とは、暗号化されたAudio2ESに属するAudioフレームの初期値と鍵と異なるものである。
 コンテンツデータ302のデータ構成は、多数のチャンク310が連続する構成となっており、各チャンク310は、さらに、チャンクヘッダ311、チャンクデータ312、パディング313から構成されている。
 図3は、チャンク310のデータ構成を示すデータ構成図である。
 チャンクヘッダ311は、暗号化されていない固定長データであって、チャンクのサイズを示す情報を含むチャンクサイズ401、チャンクの属するコンテンツタイプを示す情報を含むコンテンツタイプ402、チャンクの属するフレーム番号を示す情報を含むフレーム番号403、デコードに使用する情報を含むデコード用ヘッダ情報404、チャンクデータのサイズを示す情報を含むチャンクデータサイズ405からなる。
 ここで、コンテンツタイプとは、Video、Audio1、Audio2のうちのいずれかであって、コンテンツタイプがVideoであれば、暗号化されたVideoESに属することを示し、コンテンツタイプがAudio1であれば、暗号化されたAudio1ESに属することを示し、コンテンツタイプがAudio2であれば、暗号化されたAudio2ESに属することを示す。
 また、チャンクヘッダ311の構成要素である、チャンクサイズ401、コンテンツタイプ402、フレーム番号403、デコード用ヘッダ情報404のそれぞれのビット長と出現順番とは固定である。
 チャンクデータ312は、暗号連鎖の順番に並ぶ暗号ブロック411~413からなる暗号ブロック列である。
 例えば、AES(Advanced Encryption Standard)暗号方式を用いた場合、暗号ブロックは、CTRモードで連鎖暗号化された暗号連鎖の単位であって、ビット長は128ビットである。
 ここで、暗号ブロックは128ビットの平文と、128ビットの連鎖値を128ビットの鍵を用いてAES暗号方式等によって暗号化することによって得られた128ビットの暗号連鎖値とを、ビットごとの排他的論理和を取ることで生成されたものであって、各暗号ブロックは、Videoフレーム、Audio1フレーム、Audio2フレームのいずれかのフレームが暗号化されることによって得られたものである。
 パディング313は、暗号化されていないデータであって、チャンク310のデータサイズを整えるために添付されているデータである。
  <コンテンツ復号処理装置2000>
 図4は、再生機1000を用いて機能的に実現される、コンテンツ復号処理装置2000の機能構成を示すブロック図である。
 コンテンツ復号処理装置2000は、CPUA111及びCPUB112がメモリブロック120の記憶するプログラムに従って、メモリブロック120、周辺デバイスブロック130、バスライン140、暗号エンジン150等を用いて暗号化されたコンテンツの復号処理を行い、復号されたコンテンツをAVデコーダ160に出力される。
 コンテンツ復号処理装置2000は、復号対象のチャンクを一時的に保持する入力バッファ201と、復号されたチャンクを一時的に保持する出力バッファ202と、鍵と初期値とを記憶する鍵蓄積部214と、チャンク間に跨る連鎖値を記憶するチャンク間連鎖値保持部216と、チャンクヘッダ311から情報を取得するチャンク情報取得部210と、チャンクデータ312の開始アドレスとパディング313の開始アドレスとを算出する暗号サイズ算出部211と、鍵と初期値とを暗号エンジン150に出力する鍵設定部212と、チャンク間に跨って暗号連鎖が継続しているか否かを判定する連鎖判定部213と、暗号エンジン150とから構成される。
 入力バッファ201は、暗号エンジン150が復号するコンテンツの一部を一時的に記憶しておくための記憶領域であって、メモリブロック120の一部として実装されている。
 入力バッファ201の記憶する単位は、コンテンツヘッダ301又はチャンク310単位であって、CPUA111又はCPUB112によって、コンテンツ300のデータ順に従って、前回記憶していたコンテンツの一部に対して上書きされる。
 出力バッファ202は、暗号エンジン150が復号したコンテンツの一部を、AVデコーダ160に出力する前に一時的に記憶しておくための記憶領域であって、メモリブロック120の一部として実装されている。
 チャンク情報取得部210は、入力バッファ201が保持するチャンクの開始アドレスを取得し、さらに、チャンクヘッダ311から、チャンクサイズ401と、チャンクデータサイズ405と、コンテンツタイプ402と、フレーム番号403とを取得して、チャンクの開始アドレスと、チャンクサイズ401と、チャンクデータサイズ405とを暗号サイズ算出部211に出力し、コンテンツタイプ402を鍵設定部212に出力し、コンテンツタイプ402と、フレーム番号403とを連鎖判定部213に出力する機能を有する。
 チャンク情報取得部210は、CPUA111又はCPUB112によってコンテンツヘッダ301が書き込まれると、入力バッファ201が保持するデータがコンテンツヘッダ301である旨のコンテンツヘッダ信号を暗号エンジン150に出力する機能を有する。
 暗号サイズ算出部211は、チャンク情報取得部210から、チャンクの開始アドレスと、チャンクサイズ401と、チャンクデータサイズ405とを入力とを入力されると、チャンクデータ312の開始アドレスと、パディング313の開始アドレスと、チャンクの終了アドレスと、チャンクデータ312に含まれる暗号ブロックの数とを計算し、暗号エンジン150に出力する機能を有する。
 チャンクデータ312の開始アドレスは、チャンクの開始アドレスと固定長であるチャンクヘッダ311のサイズを加算することで算出され、パディング313の開始アドレスは、チャンクヘッダ311の開始アドレスにチャンクデータサイズ405を加算することで算出され、チャンクの終了アドレスは、チャンクの開始アドレスとチャンクサイズ401とを加算することで算出され、暗号ブロックの数は、チャンクデータサイズ405を暗号ブロックの単位ビット数である128で除算することで算出される。
 鍵蓄積部214は、コンテンツタイプと、鍵と、初期値とを関連付けて記憶するための記憶領域であって、メモリブロック120の一部として実装されている。
 図5は、鍵蓄積部214が記憶する情報を示す図である。
 図5に示されるように、鍵蓄積部214は、コンテンツタイプ402のそれぞれに、復号の際に使用する鍵502と、初期値503とを対応付けて予め記憶している。
 鍵502のビット数は128ビットであって、初期値503のビット数は128ビットである。
 ここで、初期値とは、暗号連鎖ブロック方式で暗号化された暗号ブロックを復号する場合において、連鎖先頭の暗号ブロックを復号する際に使用する連鎖値のことである。
 鍵設定部212は、チャンク情報取得部210からのコンテンツタイプ402を入力として、鍵蓄積部214から、入力されたコンテンツタイプ402と関連付けられて記憶されている鍵502と初期値503とを読み出して、暗号エンジン150に出力する機能を有する。
 チャンク間連鎖値保持部216は、コンテンツタイプと、フレーム番号と、連鎖値とを関連付けて記憶するための記憶領域であって、メモリブロック120の一部として実装されている。
 図6は、チャンク間連鎖値保持部216が記憶する情報を示す図である。
 図6に示されるように、チャンク間連鎖値保持部216は、コンテンツタイプ402のそれぞれに、フレーム番号602と、連鎖値603とを対応付けて記憶している。
 ここで記憶されているフレーム番号602は、対応するコンテンツタイプ402において最後に復号されたフレームのフレーム番号であって、連鎖値603は、フレーム番号602に属する最後に復号されたチャンクの最後の暗号ブロックが復号された際に算定された連鎖値である。
 連鎖値603のビット数は、128ビットである。
 なお、フレーム番号602と、連鎖値603との組は、暗号エンジン150によって、コンテンツタイプ402毎に上書きされる。
 連鎖判定部213は、チャンク情報取得部210からコンテンツタイプ402と、フレーム番号403との組み合わせが入力されると、チャンク情報取得部210から入力されるコンテンツタイプ402と、フレーム番号403との組み合わせが、チャンク間連鎖値保持部216に関連付けられて記憶されているか否かを調べて、記憶されている場合には、入力バッファ201に保持されてチャンクが暗号連鎖継続中であると判断し、記憶されていない場合には、入力バッファ201に保持されているチャンクが暗号連鎖継続中でないと判断する機能を有する。
 連鎖判定部213は、また、コンテンツタイプ402とフレーム番号403とを暗号エンジンに出力し、加えて、暗号連鎖継続中であると判断した場合には、暗号連鎖継続中の旨を示す暗号連鎖信号を暗号エンジン150に出力し、連鎖継続中でないと判断した場合には、暗号連鎖終了の旨を示す暗号終了信号を暗号エンジン150に出力する機能を有する。
 暗号エンジン150は、チャンク情報取得部210からのコンテンツヘッダ信号と、暗号サイズ算出部211からのチャンクデータ312の開始アドレスとパディング313の開始アドレスとチャンクの終了アドレスとチャンクデータ312に含まれる暗号ブロックの数と、鍵設定部212からの鍵502と初期値503と、連鎖判定部213からのコンテンツタイプ402とフレーム番号403と暗号連鎖信号又は暗号終了信号とに基づいて、入力バッファ201に保持されているチャンクを読み出して、読み出したチャンクを復号して、復号されたチャンクを出力バッファ202に書き込む機能を有する。
 暗号エンジン150は、入力バッファ201が保持するチャンクからチャンクデータ312を読み出して演算部に出力する演算判定部221と、チャンクデータ312を暗号ブロック単位で復号する演算部222と、鍵を記憶する鍵保持部223と、初期値を記憶する初期値保持部224と、初期値又は連鎖値のいずれか一方を選択する初期値選択部225と、演算部が使用する連鎖値を選択する連鎖値選択部226と、連鎖値を記憶するためのチャンク内連鎖値保持部227と、演算部222が出力する連鎖値をチャンク内連鎖値保持部227又はチャンク間連鎖値保持部216に記録する連鎖値記録部228と、演算部222によって暗号ブロック単位で復号されたチャンクデータを出力バッファ202に書きこむ出力選択部229とから構成されている。
 演算判定部221は、暗号サイズ算出部211から出力されるチャンクの開始アドレスと、チャンクデータ312の開始アドレスと、パディング313の開始アドレスと、チャンクの終了アドレスとを用いて、入力バッファ201に保持されているチャンクから、チャンクヘッダ311と、パディング313とを読み出して出力選択部229に出力し、チャンクデータ312を読み出して、暗号ブロック単位で演算部222に出力し、演算部222に出力する暗号ブロックが、チャンクデータの先頭の暗号ブロックである場合に、初期値選択信号を連鎖値選択部226に出力し、演算部222に出力する暗号ブロックが、チャンクデータの先頭の暗号ブロックでない場合に、連鎖値選択信号を連鎖値選択部226に出力する機能を有する。
 なお、チャンクデータの先頭の暗号ブロックであるか否かは、チャンクデータの開始アドレスを用いて判断する。
 ここで、チャンクデータの先頭の暗号ブロックを演算部222に出力するタイミングは、暗号サイズ算出部211からチャンクデータ312の開始アドレスが入力されたタイミングであって、チャンクデータの先頭の暗号ブロック以外の暗号ブロックを演算部222に出力するタイミングは、連鎖値記録部228から暗号ブロック要請信号を受け取ったタイミングである。
 また、チャンク情報取得部210からコンテンツヘッダ信号が入力された場合には、入力バッファ201に保持されているコンテンツヘッダ301を読み出して出力選択部229に出力する機能を有する。
 鍵保持部223は、鍵設定部212から鍵を入力される毎に、自ら記憶する鍵に上書きし、記憶している鍵を演算部222に出力し続ける機能を有する。
 初期値保持部224は、鍵設定部212から初期値を入力される毎に、自ら記憶する初期値上書きし、記憶する初期値を初期値選択部に出力する機能を有する。
 初期値選択部225は、連鎖判定部213から、暗号連鎖継続信号と、コンテンツタイプ402との組みを受け取ると、チャンク間連鎖値保持部216から、受け取ったコンテンツタイプ402と関連付けられて記憶されている連鎖値を読み出して連鎖値選択部226に出力し、連鎖判定部213から、暗号連鎖終了の旨を示す信号を受け取ると、初期値保持部224が保持している初期値を読み出して連鎖値選択部226に出力する機能を有する。
 チャンク内連鎖値保持部227は、連鎖値記録部228によって上書きされる連鎖値を記憶するための記憶領域である。
 連鎖値選択部226は、初期値選択信号を演算判定部221から受け取った場合に、初期値選択部225から出力される初期値又は連鎖値を演算部222に出力し、連鎖値選択信号を演算判定部221から受け取った場合に、チャンク内連鎖値保持部227が保持する連鎖値を読み出して演算部222に出力する機能を有する。
 連鎖値記録部228は、暗号サイズ算出部211が出力する暗号ブロックの数と、連鎖判定部213が出力するコンテンツタイプと、フレーム番号と、演算部222が出力する連鎖値とを入力され、演算部222が出力する連鎖値が入力されると、入力された連鎖値を、チャンク間連鎖値保持部216かチャンク内連鎖値保持部227のいずれか一方に記録する機能を有する。
 連鎖値記録部228は、演算部222から入力される連鎖値が、演算部222がチャンクの後尾の暗号ブロックを復号する際に出力されたものである場合には、入力された連鎖値を、連鎖判定部213から入力されるコンテンツタイプと、フレーム番号と関連付けて、チャンク間連鎖値保持部216に上書きして記録し、演算部222から入力される連鎖値が、演算部222がチャンクの後尾の暗号ブロックを復号する際に出力されたものでない場合には、入力された連鎖値を、チャンク内連鎖値保持部227に上書きして記録し、演算判定部221に暗号ブロック要請信号を出力する機能を有する。
 連鎖値記録部228は、演算部222から入力される連鎖値が、チャンクの後尾の暗号ブロックを復号する際に出力されたものであるか否かを判定するために、入力される連鎖値の数を計測する連鎖値数カウンタを備えている。
 この連鎖値数カウンタは、暗号サイズ算出部211から暗号ブロックの数が入力される毎にリセットされる。
 連鎖値記録部228は、演算部222から連鎖値が入力された場合に、連鎖値カウンタの計測する連鎖値数に1を加えて新たな連鎖値数とし、この新たな連鎖値数が暗号サイズ算出部211から入力される暗号ブロックの数未満のときには、チャンクの後尾の暗号ブロックを復号する際に出力された連鎖値でないと判断し、連鎖値数カウンタの計測する連鎖値の数が暗号サイズ算出部211から入力される暗号ブロックの数と等しいときには、チャンクの後尾の暗号ブロックを復号する際に出力された連鎖値であると判断する。
 出力選択部229は、演算判定部221から出力されるチャンクヘッダ311と、パディング313と、復号された暗号ブロック単位で演算部222から出力される復号された暗号ブロックと、コンテンツヘッダ301とを、出力バッファ202に書き込む機能を有する。
 演算部222は、演算判定部221から出力される暗号ブロックを、鍵保持部223に保持されている鍵と、連鎖値選択部226から出力される初期値又は連鎖値とを用いて、連鎖暗号ブロック方式で復号し、復号の際に次の連鎖値を算定して出力する機能を有する。
 図7は演算部222の機能構成を示すブロック図である。
 演算部222は、入力される連鎖値を暗号化して暗号連鎖値を出力するAES暗号回路701と、入力される連鎖値から、次の暗号ブロックを復号する際に使用する連鎖値を作成するインクリメンタ703と、暗号ブロックと暗号連鎖値とから復号された暗号ブロックすなわち平文を出力する排他的論理和回路702とから構成され、CTRモードで連鎖暗号化された暗号ブロックを復号する機能を有する。
 AES暗号回路701は、128ビットの連鎖値に対して、128ビットの鍵を用いてAES暗号方式で128ビットの暗号連鎖値を作成して排他的論理和回路702に出力する。
 インクリメンタ703は、入力される連鎖値のうち、下位32ビットの部分のみを1だけインクリメントして次の連鎖値を算定する機能を有する。
 ここで、インクリメントされた下位32ビットの部分がオーバーフローした場合には、下位32ビットの部分のみが0x00となって、上位96ビットには影響を与えることはない。
 排他的論理和回路702は、AES暗号回路701から出力される128ビットの暗号連鎖値と、演算判定部221から出力される128ビットの暗号ブロックとのビットごとの排他的論理和を出力する機能を有する。
 以上のように構成されるコンテンツ復号処理装置2000は、暗号エンジン150がチャンクの後尾の暗号ブロックを復号する際に算定した連鎖値を、コンテンツタイプと、フレーム番号と関連付けてチャンク間連鎖値保持部216に記憶する。
 また、コンテンツ復号処理装置2000は、暗号エンジン150がチャンクの先頭の暗号ブロックを復号する場合において、チャンク間連鎖値保持部216にそのチャンクのコンテンツタイプとフレーム番号と対応付けられて記憶されている連鎖値があるときに、そのチャンクは連鎖が継続していると判断して、そのチャンクのコンテンツタイプとフレーム番号と対応付けられてチャンク間連鎖値保持部216に記憶されている連鎖値を用いて、チャンクの先頭の暗号ブロックを復号し、チャンク間連鎖値保持部216にそのチャンクのコンテンツタイプとフレーム番号と対応付けられて記憶されている連鎖値がないときに、そのチャンクは連鎖が継続していない判断して、そのチャンクのコンテンツタイプに対応する初期値を用いて、チャンクの先頭の暗号ブロックを復号する。
 さらに、コンテンツ復号処理装置2000は、暗号エンジン150がチャンクの先頭の暗号ブロック以外の暗号ブロックを復号する場合には、チャンク内連鎖値保持部227が保持する連鎖値を用いて、暗号ブロックを復号する。
 コンテンツ復号処理装置2000の動作の詳細について、以下図面を用いて説明する。
 <動作>
 再生機1000がコンテンツの再生処理を開始すると、CPUA111又はCPUB112は、外部記録媒体137、ハードディスク装置131の内蔵するハードディスク、又は、RAM122に書き込まれている復号対象のコンテンツについて、まず、コンテンツヘッダ301を入力バッファ201に書き込む。
 以後CPUA111又はCPUB112は、コンテンツデータの最初のチャンクから順に、最後のチャンクになるまでチャンクを入力バッファ201に書き込んでいく。
 コンテンツヘッダ301が入力バッファ201に書き込まれると、コンテンツ復号処理装置2000はコンテンツ復号処理を開始する。
 図8は、コンテンツ復号処理装置2000の行うコンテンツ復号処理のフローチャートである。
 コンテンツ復号処理装置2000がコンテンツ復号処理を開始すると、チャンク情報取得部210はコンテンツヘッダ信号を出力し、演算判定部221は出力されたコンテンツヘッダ信号を受け取る。
 演算判定部221は、コンテンツヘッダ信号を受け取ると、入力バッファ201からコンテンツヘッダ301を読み出して出力選択部229に出力し、出力選択部229は、受け取ったコンテンツヘッダ301を出力バッファ202に書き込む。
 CPUA111又はCPUB112によってチャンクが入力バッファ201に書き込まれると、チャンク情報取得部210は、入力バッファ201が保持するチャンクの開始アドレスを取得し、さらに、チャンクヘッダ311から、チャンクサイズ401と、チャンクデータサイズ405と、コンテンツタイプ402と、フレーム番号403とを取得して(ステップS800)、チャンクの開始アドレスと、チャンクサイズ401と、チャンクデータサイズ405とを暗号サイズ算出部211に出力し、コンテンツタイプ402を鍵設定部212に出力し、コンテンツタイプ402と、フレーム番号403とを連鎖判定部213に出力する。
 暗号サイズ算出部211は、チャンク情報取得部210から、チャンクの開始アドレスと、チャンクサイズ401と、チャンクデータサイズ405とが入力されると、パディング313の開始アドレスと、チャンクの終了アドレスと、チャンクデータ312に含まれる暗号ブロックの数を計算し(ステップS805)、チャンクの開始アドレスと、パディング313の開始アドレスと、チャンクの終了アドレスとを演算判定部221に出力し、暗号ブロックの数を連鎖値記録部228に出力する。
 連鎖値記録部228は、暗号サイズ算出部211から暗号ブロックの数が入力されると、連鎖値数カウンタの計測する連鎖値の数をリセットする。
 演算判定部221は、暗号サイズ算出部211から、チャンクの開始アドレスと、パディング313の開始アドレスと、チャンクの終了アドレスとを受け取ると、入力バッファからチャンクヘッダ311とパディング313とを読み出して出力選択部229に出力し、出力選択部229は入力されたチャンクヘッダ311とパディング313とを出力バッファ202に書き込み(ステップS810)、連鎖値選択部226に初期値選択信号を出力する。
 鍵設定部212は、チャンク情報取得部210からコンテンツタイプ402を入力されると、入力されたコンテンツタイプ402と関連付けられて鍵蓄積部214に記憶されている鍵502と初期値503とを読み出して、読み出した鍵502を鍵保持部223に出力し、読み出した初期値503を初期値保持部224に出力し、鍵蓄積部214は、入力された鍵を上書きして記憶し、初期値保持部224は、入力された初期値を上書きして記憶する(ステップS815)。
 連鎖判定部213は、チャンク情報取得部210から、コンテンツタイプ402と、フレーム番号403とを入力されると、入力バッファ201に保持されているチャンクが暗号連鎖継続中であるか否かを判定するために、入力されるコンテンツタイプ402と、フレーム番号403との組み合わせが、チャンク間連鎖値保持部216に関連付けられて記憶されているか否かを調べて(ステップS820)、記憶されている場合には、入力バッファ201に保持されているチャンクが暗号連鎖継続中であると判断し(ステップS820:Yes)、コンテンツタイプ402とフレーム番号403とを連鎖値記録部228に出力し、暗号連鎖信号とコンテンツタイプ402とを初期値選択部225に出力する。
 初期値選択部225は、連鎖判定部213から、暗号連鎖継続信号と、コンテンツタイプ402との組みを受け取ると、チャンク間連鎖値保持部216から、受け取ったコンテンツタイプ402と関連付けられて記憶されている連鎖値を読み出して連鎖値選択部226に出力する。
 連鎖値選択部226は、演算判定部221から初期値選択信号を受け取っているので、初期値選択部225から入力される連鎖値を選択して、演算部222に出力する(ステップS825)。
 ステップS820において、入力されるコンテンツタイプ402と、フレーム番号403との組み合わせが、チャンク間連鎖値保持部216に関連付けられて記憶されていない場合には、入力バッファ201に保持されているチャンクが暗号連鎖継続中でないと判断し(ステップS820:No)、コンテンツタイプ402とフレーム番号403とを連鎖値記録部228に出力し、暗号終了信号を初期値選択部225に出力する。
 初期値選択部225は、連鎖判定部213から、暗号連鎖終了信号を受け取ると、初期値保持部224が保持する初期値を読み出して連鎖値選択部226に出力する。
 連鎖値選択部226は、演算判定部221から初期値選択信号を受け取っているので、初期値選択部225から初期値が入力されると、入力された初期値を演算部222で使用する連鎖値として演算部222に出力する(ステップS830)。
 ステップS825又はステップS830の処理が終わると、演算部222は、演算判定部221から暗号チャンクの先頭の暗号ブロックを受け取る。
 演算部222は、鍵保持部223に記録されている鍵と、連鎖値選択部から出力される連鎖値とを用いて、受け取った暗号ブロックを復号して出力選択部229に出力し、復号の際に算定した次の連鎖値を連鎖値記録部228に出力する(ステップS835)。
 演算部222が行う暗号ブロックの復号と次の連鎖値の算定とは、(1)AES暗号回路701が鍵を用いて連鎖値を暗号化して暗号連鎖値を作成し、(2)排他的論理和回路702が作成された暗号連鎖値と、暗号ブロックとのビットごとの排他的論理和を取ることで、暗号ブロックを復号し、(3)インクリメンタ703が入力される連鎖値のうち、下位32ビットの部分のみを1だけインクリメントすることで次の連鎖値を算定するという3つの処理によって実現されている。
 出力選択部229は、演算部222から復号された暗号ブロックが入力されると、入力された復号された暗号ブロックを、出力バッファ202に書き込む。
 連鎖値記録部228は、演算部222から連鎖値が入力されると、連鎖値数カウンタの計測する連鎖値数に1を加えて新たな連鎖値数とし、この新たな連鎖値数と、暗号サイズ算出部から入力された暗号ブロックの数とを比較することで、演算部222から入力された連鎖値が、演算部222がチャンクの後尾の暗号ブロックを復号する際に出力されたものであるか否かを判定する(ステップS840)。
 ステップS840において、新たな連鎖値数が暗号サイズ算出部211から入力される暗号ブロックの数未満のときは、入力された連鎖値がチャンクの後尾の暗号ブロックを復号する際に出力された連鎖値でないと判断し(ステップS840:Yes)、演算部222から入力された連鎖値をチャンク内連鎖値保持部に上書きして記録し(ステップS845)、連鎖値記録部228は、演算判定部221に暗号ブロック要請信号を出力する。
 演算判定部221は、連鎖値記録部228から暗号ブロック要請信号を受け取ると、次の暗号ブロックを演算部222に出力し、連鎖値選択信号を連鎖値選択部226に出力し、連鎖値選択部226は、連鎖値選択信号を受信すると、チャンク内連鎖値保持部227が保持する連鎖値を読み出して演算部222に出力する(ステップS850)。
 ステップS850の処理が終わると、再びステップS835の処理を開始する。
 ステップS840において、新たな連鎖値数が暗号サイズ算出部211から入力される暗号ブロックの数と等しいときは、入力された連鎖値がチャンクの後尾の暗号ブロックを復号する際に出力された連鎖値であると判断し(ステップS840:No)、演算部222から入力された連鎖値を、連鎖判定部213から入力されたコンテンツタイプと、フレーム番号と関連付けて、チャンク間連鎖値保持部216に上書きして記録する(ステップS855)。
 ステップS855の処理が終わると、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれるまで、コンテンツ復号処理装置2000は待機する(ステップS865)。
 所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれた場合には(ステップS870:Yes)、再びステップS800の処理を開始する。
 所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれなかった場合には(ステップS870:No)、コンテンツデータ302に後続のチャンクが存在していないと判断し、コンテンツ復号処理装置2000は、コンテンツ復号処理を終了する。
  <具体的動作>
 例として、コンテンツタイプがVideoでフレーム番号が10である第1チャンクと、同じくコンテンツタイプがVideoでフレーム番号が10であって、第1チャンクに連続するチャンクである第2チャンクとの間に、コンテンツタイプがAudio1でフレーム番号が5である第3チャンクが存在している場合において、コンテンツ復号処理装置2000は、第2フレームの先頭の暗号ブロックを正しい連鎖値を用いて正しく復号することができることを説明する。
 演算部222が第1チャンクの後尾の暗号ブロックを復号すると、連鎖値記録部228は、演算部222から入力された連鎖値、例えば、0x00001111を、連鎖判定部213から入力されたVideoを示すコンテンツタイプと、10を示すフレーム番号と関連付けて、チャンク間連鎖値保持部216に上書きして記録する(ステップS865)。
 その後、コンテンツ復号処理装置2000は、第3チャンクを復号し、第3チャンクを復号した後、第2チャンクの復号を開始する。
 第2チャンクが入力バッファ201に書き込まれると、チャンク情報取得部210は、Videoを示すコンテンツタイプと、10を示すフレーム番号とを取得し(ステップS800)、連鎖判定部213に出力する。
 連鎖判定部213は、Videoを示すコンテンツタイプと、10を示すフレーム番号との組み合わせが、チャンク間連鎖値保持部216に関連付けられて記憶されているか否かを調べて(ステップS820)、Videoを示すコンテンツタイプと、10を示すフレーム番号との組み合わせが、連鎖値0x00001111と関連付けられて記憶されていることがわかるので、第2チャンクが暗号連鎖継続中であると判断し(ステップS820:Yes)、暗号連鎖信号とVideoを示すコンテンツタイプを出力する。
 初期値選択部225は、暗号連鎖信号とVideoを示すコンテンツタイプとを受け取ると、チャンク間連鎖値保持部216からVideoを示すコンテンツタイプと関連付けて記憶されている連鎖値0x00001111を読み出して連鎖値選択部226に出力し、連鎖値選択部226は演算部222に、この連鎖値0x00001111を出力する。
 従って、演算部222は、この連鎖値0x00001111、すなわち、第1チャンクの後尾の暗号ブロックを復号した際に算定した連鎖値を用いて、第2チャンクの先頭の暗号ブロックを復号することになるので、第2チャンクの先頭の暗号ブロックを正しく復号する。
<実施の形態2>
 以下、本発明に係るコンテンツ復号処理装置の一実施形態として、暗号連鎖ブロック方式で暗号化されたコンテンツを復号するコンテンツ復号処理装置について説明する。
 本実施の形態2に係るコンテンツ復号処理装置は、実施の形態1のコンテンツ復号処理装置2000の復号対象であるコンテンツ300に含まれるチャンク310のチャンクヘッダ311の一部とコンテンツヘッダ301とが変形したデータフォーマットであるコンテンツを復号することができるように、実施の形態1で説明したコンテンツ復号処理装置2000を変形したものである。
 本実施の形態2に係るコンテンツ復号処理装置は、実施の形態1で説明したコンテンツ復号処理装置2000の一部である、チャンク情報取得部210を変形し、さらに、新たにコンテンツヘッダ解析部とフィールド情報蓄積部とを備えるように変形した形態であって、コンテンツ復号処理装置2000と同様に、実施の形態1の再生機1000上で実現される。
 以下、実施の形態1で説明したものと変更点のないものについての説明を省略し、変更点のあるものについて中心に説明する。
 <構成>
  <コンテンツのデータ構造>
 本実施の形態2に係るコンテンツ復号処理装置3000が復号するコンテンツは、実施の形態1のコンテンツ300を、実施の形態1のチャンクヘッダ311に存在していたコンテンツタイプ402と、フレーム番号403とに対応する情報が、コンテンツヘッダに存在しているように変形したコンテンツである。
 図9は、本実施の形態2に係るコンテンツ復号処理装置3000の復号対象であるコンテンツを構成するチャンク1050のデータ構成を示す構成図である。
 チャンク1050は、チャンクヘッダ1015、チャンクデータ1010、パディング1020から構成されている。
 チャンクヘッダ1015は、暗号化されていないデータであって、チャンクのサイズを示す情報を含むチャンクサイズ1001、デコードに使用する情報を含むデコード用ヘッダ情報1004、チャンクデータのサイズを示す情報を含むチャンクデータサイズ1005からなり、チャンクサイズ1001、デコード用ヘッダ情報1004、チャンクデータサイズ1005のそれぞれのビット長と出現順番とは固定である。 チャンクデータ1010は、実施の形態1のチャンクデータ312と同様のものであって、パディング2230は、実施の形態1のパディング313と同様のものである。
 図10は、本実施の形態2に係るコンテンツを構成するコンテンツヘッダに含まれている情報を示す構成図である。
 コンテンツヘッダは、コンテンツに含まれるすべてのチャンク1050について、チャンク1050の並び順に、チャンク1050毎の開始アドレス1101と、コンテンツタイプ1102と、フレーム番号1103とを対応付けて保持している。
 コンテンツタイプ1102は実施の形態1のコンテンツタイプ402と同様のものであり、フレーム番号1103は実施の形態1のフレーム番号602と同様のものである。
  <コンテンツ復号処理装置3000>
 図11は、コンテンツ復号処理装置3000の機能構成を示すブロック図である。
 コンテンツ復号処理装置3000は、実施の形態1のコンテンツ復号処理装置2000に対して、チャンク情報取得部210をチャンク情報取得部910に変形し、新たにフィールド情報蓄積部920と、コンテンツヘッダ解析部930とを追加したものである。
 フィールド情報蓄積部920は、コンテンツヘッダに保持されている、チャンク1050毎の開始アドレス1101と、コンテンツタイプ1102と、フレーム番号1103とを対応付けて記憶しておくための記憶領域であって、メモリブロック120の一部として実装されている。
 コンテンツヘッダ解析部930は、入力バッファ201が保持するコンテンツヘッダから、チャンク毎に対応付けられている、開始アドレス1101と、コンテンツタイプ1102と、フレーム番号1103との組を全て読み出し、読み出した、開始アドレス1101と、コンテンツタイプ1102と、フレーム番号1103との組を全て、フィールド情報蓄積部920に対応付けて記録する機能を有する。
 チャンク情報取得部910は、入力バッファ201が保持するチャンクの開始アドレスを取得し、さらに、チャンクヘッダ1015から、チャンクサイズ1001と、チャンクデータサイズ1005とを取得して、さらに、フィールド情報蓄積部920から、入力バッファ201が保持するチャンクに対応するコンテンツタイプ1102と、フレーム番号1103とを取得して、チャンクの開始アドレスと、チャンクサイズ1001と、チャンクデータサイズ1005とを暗号サイズ算出部211に出力し、コンテンツタイプ1102を鍵設定部212に出力し、コンテンツタイプ1102と、フレーム番号1103とを連鎖判定部213に出力する機能を有する。
 チャンク情報取得部910は、CPUA111又はCPUB112によってコンテンツヘッダが書き込まれると、入力バッファ201が保持するデータがコンテンツヘッダである旨のコンテンツヘッダ信号を暗号エンジン950に出力する機能を有する。
 以上のように構成されたコンテンツ復号処理装置3000の動作の詳細について、以下図面を用いて説明する。
 <動作>
 再生機1000がコンテンツの再生処理を開始すると、CPUA111又はCPUB112は、外部記録媒体137、ハードディスク装置131の内蔵するハードディスク、又は、RAM122に書き込まれている復号対象のコンテンツについて、まず、コンテンツヘッダを入力バッファ201に書き込む。
 以後CPUA111又はCPUB112は、コンテンツデータの最初のチャンクから順に、最後のチャンクになるまでチャンクを入力バッファ201に書き込んでいく。
 コンテンツヘッダが入力バッファ201に書き込まれると、コンテンツ復号処理装置3000はコンテンツ復号処理を開始する。
 図12は、コンテンツ復号処理装置3000の行うコンテンツ復号処理のフローチャートである。
 コンテンツ復号処理装置3000がコンテンツ復号処理を開始すると、チャンク情報取得部910はコンテンツヘッダ信号を出力し、演算判定部221は出力されたコンテンツヘッダ信号を受け取る。
 さらに、コンテンツヘッダ解析部930は、入力バッファ201が保持するコンテンツヘッダから、チャンク毎に対応付けられている、開始アドレス1101と、コンテンツタイプ1102と、フレーム番号1103との組を全て読み出し、読み出した、開始アドレス1101と、コンテンツタイプ1102と、フレーム番号1103との組を全て、フィールド情報蓄積部920に対応付けて記録する(ステップS1200)。
 演算判定部221は、コンテンツヘッダ信号を受け取ると、入力バッファ201からコンテンツヘッダを読み出して出力選択部229に出力し、出力選択部229は、受け取ったコンテンツヘッダを出力バッファ202に書き込む。
 CPUA111又はCPUB112によってチャンクが入力バッファ201に書き込まれると、チャンク情報取得部910は、入力バッファ201が保持するチャンクの開始アドレスを取得し、さらに、チャンクヘッダ1015から、チャンクサイズ1001と、チャンクデータサイズ1005とを取得し(ステップS1202)、加えて、フィールド情報蓄積部920から、入力バッファ201が保持するチャンクに対応するコンテンツタイプ1102と、フレーム番号1103とを取得して、チャンクの開始アドレスと、チャンクサイズ1001と、チャンクデータサイズ1005とを暗号サイズ算出部211に出力し、コンテンツタイプ1102を鍵設定部212に出力し、コンテンツタイプ1102と、フレーム番号1103とを連鎖判定部213に出力する。
 以後、ステップS1205~ステップS1265までの処理は、実施の形態1のコンテンツ復号処理装置2000の動作における、ステップS805~ステップS865までの処理と同じ処理であるので説明を省略する。
 なお、ステップS1205はステップS805、ステップS1210はステップS810、ステップS1215はステップS815、ステップS1220はステップS820、ステップS1225はステップS825、ステップS1230はステップS830、ステップS1235はステップS835、ステップS1240はステップS840、ステップS1245はステップS845、ステップS1250はステップS850、ステップS1255はステップS855、ステップS1265はステップS865に対応する。
 ステップS1265において、コンテンツ復号処理装置3000が待機を開始してから所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれた場合には(ステップS1270:Yes)、再びステップS1202の処理を開始する。
 所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれなかった場合には(ステップS1270:No)、コンテンツデータ302に後続のチャンクが存在していないと判断し、コンテンツ復号処理装置3000は、コンテンツ復号処理を終了する。
<実施の形態3>
 以下、本発明に係るコンテンツ復号処理装置の一実施形態として、暗号連鎖ブロック方式で暗号化されたコンテンツを復号するコンテンツ復号処理装置について説明する。
 本実施の形態3に係るコンテンツ復号処理装置は、復号するコンテンツを構成する暗号ブロックが、連続する2つのチャンクに分割されて構成されることを許されているデータフォーマットとなっているコンテンツを復号することができるように、実施の形態1で説明したコンテンツ復号処理装置2000を変形したものである。
 本実施の形態3に係るコンテンツ復号処理装置は、実施の形態1で説明したコンテンツ復号処理装置2000の一部である、チャンク情報取得部210と、チャンク間連鎖値保持部216と、連鎖値記録部228とを変形し、さらに、新たに端数処理制御部1300と前処理部1301と後処理部1302とを備えるように変形した形態であって、実施の形態1の再生機1000の暗号エンジン150を、暗号エンジン150の一部を変形することで得られた暗号エンジン950に置き替えるように変形した再生機上で実現される。
 以下、実施の形態1で説明したものと変更点のないものについての説明を省略し、変更点のあるものについて中心に説明する。
 <構成>
  <コンテンツのデータ構造>
 本実施の形態3に係るコンテンツ復号処理装置4000が復号するコンテンツは、実施の形態1の暗号ブロックが、連続する2つのチャンクに分割されて構成されるように変形されたデータフォーマットとなっている。
 図13(a)は、コンテンツ復号処理装置4000の復号対象であるコンテンツにおける、コンテンツデータの一部のデータ構造を示す図であって、図13(b)は、図13(a)の一部分を拡大した図である。
 暗号化されたフレーム1410は、コンテンツタイプがVideoであって、フレーム番号がjとなっており、チャンク1430と、チャンク1440と、チャンク1460との3つのフレームに分割されている。
 暗号化されたフレーム1420は、コンテンツタイプがAudio1であって、フレーム番号がkとなっており、チャンク1450とチャンク1470との2つのフレームに分割されている。
 暗号化されたVideoフレーム1410は、の8つの暗号ブロック1401~1408から構成されているが、これらのうち、暗号ブロック1401と暗号ブロック1402とは、チャンク1430に含まれ、暗号ブロック1404と暗号ブロック1405とは、チャンク1440に含まれ、暗号ブロック1407と暗号ブロック1408とは、チャンク1460に含まれている。
 暗号ブロック1403は、前半部分と後半部分とに分割され、前半部分はチャンク1430に含まれ、後半部分はチャンク1440に含まれている。
 暗号ブロック1404は、前半部分と後半部分とに分割され、前半部分はチャンク1440に含まれ、後半部分はチャンク1460に含まれている。
 上で述べたとおり、コンテンツ復号処理装置4000の復号対象であるコンテンツにおける、コンテンツデータは、暗号ブロックが、連続する2つのチャンクに分割されて構成されることが許されている。
  <コンテンツ復号処理装置4000>
 図14は、コンテンツ復号処理装置4000の機能構成を示すブロック図である。
 コンテンツ復号処理装置4000は、実施の形態1のコンテンツ復号処理装置2000に対して、チャンク情報取得部210をチャンク情報取得部1310に変形し、チャンク間連鎖値保持部216をチャンク間連鎖値保持部1316に変形し、連鎖値記録部228を連鎖値記録部1328に変形し、新たに端数処理制御部1300と前処理部1301と後処理部1302とを追加したものである。
 チャンク情報取得部1310は、入力バッファ201が保持するチャンクの開始アドレスを取得し、さらに、チャンクヘッダ311から、チャンクサイズ401と、チャンクデータサイズ405と、コンテンツタイプ402と、フレーム番号403とを取得して、チャンクの開始アドレスと、チャンクサイズ401と、チャンクデータサイズ405とを暗号サイズ算出部211に出力し、コンテンツタイプ402を鍵設定部212に出力し、コンテンツタイプ402と、フレーム番号403とを連鎖判定部213と端数処理制御部1300とに出力する機能を有する。
 チャンク情報取得部1310は、CPUA111又はCPUB112によってコンテンツヘッダ301が書き込まれると、入力バッファ201が保持するデータがコンテンツヘッダ301である旨のコンテンツヘッダ信号を暗号エンジン1350に出力する機能を有する。
 チャンク間連鎖値保持部1316は、コンテンツタイプと、フレーム番号と、連鎖値と、チャンクの後尾の暗号ブロックのサイズである端数データサイズとを関連付けて記憶するための記憶領域であって、メモリブロック120の一部として実装されている。
 図15は、チャンク間連鎖値保持部1316が記憶する情報を示す図である。
 図15に示されるように、チャンク間連鎖値保持部1316は、コンテンツタイプ1801のそれぞれに、フレーム番号1802と、連鎖値1803と、端数データサイズ1804とを対応付けて記憶している。
 ここで記憶されているフレーム番号1802は、対応するコンテンツタイプ1801において最後に復号されたフレームのフレーム番号であって、連鎖値1803は、フレーム番号602に属する最後に復号されたチャンクの後尾の暗号ブロックが復号された際に算定された連鎖値であって、端数データサイズ1804はフレーム番号602に属する最後に復号されたチャンクの後尾の暗号ブロックのサイズである。
 なお、フレーム番号1802と、連鎖値1803と端数データサイズ1804との組は、暗号エンジン150によって、コンテンツタイプ1801毎に上書きされる。
 端数処理制御部1300は、チャンク情報取得部1310からコンテンツタイプ402とフレーム番号403とを受け取ると、受け取ったコンテンツタイプ402とフレーム番号403との組に対応付けられてチャンク間連鎖値保持部1316に記憶されている端数データサイズ1804を読み出し、入力バッファ201に記憶されているチャンクの先頭の暗号ブロックのサイズと、後尾の暗号ブロックのサイズとを算出し、前処理部1301と、演算部222と、後処理部1302とを用いて端数処理を実行し、後尾の暗号ブロックのサイズを連鎖値記録部1328に出力する機能を有する。
 この端数処理については、後程図面を用いて説明する。
 チャンクの先頭の暗号ブロックのサイズは、暗号ブロックの単位ビット数である128からチャンク間連鎖値保持部1316から読みだした端数データサイズ1804を減算することで算出し、チャンク後尾の暗号ブロックのサイズは、暗号サイズ算出部1311から出力される、チャンクデータサイズ405にチャンク間連鎖値保持部1316から読み出した端数データサイズ1804を加算し、加算結果を暗号ブロックの単位ビット数である128で除算したときの余りとして算出する。
 前処理部1301は、端数処理制御部1300から受け取った先頭の暗号ブロックのサイズが128ビット未満である場合において、演算判定部221から入力バッファ201が保持するチャンクの先頭の暗号ブロックを受け取ると、先頭の暗号ブロックのサイズと128ビットとの差分のビット数の0を受け取った暗号ブロックの先頭に付与して128ビットの合成暗号ブロックを作成し、作成した合成暗号ブロックを、演算判定部221から受け取った暗号ブロックに替えて演算部222に出力する機能を有する。
 また、前処理部1301は、端数処理制御部1300から受け取った後尾の暗号ブロックのサイズが128ビット未満である場合において、演算判定部221から入力バッファ201が保持するチャンクの後尾の暗号ブロックを受け取ると、128ビットに不足するビット数の0を受け取った暗号ブロックの後尾に付与して128ビットの合成暗号ブロックを作成し、作成した合成暗号ブロックを、演算判定部221から受け取った暗号ブロックに替えて演算部222に出力する機能を有する。
 後処理部1302は、端数処理制御部1300から受け取った先頭の暗号ブロックのサイズが128ビット未満である場合において、演算部222から入力バッファ201が保持するチャンクの先頭の暗号ブロックを復号することで得られた復号された暗号ブロックを受け取ると、先頭の暗号ブロックのサイズと128ビットとの差分のビット数の00を暗号ブロックの先頭から削除して合成平文を作成し、作成した合成平文を、演算判定部221から受け取った復号された暗号ブロックに替えて出力選択部229に出力する機能を有する。
 また、後処理部1302は、端数処理制御部1300から受け取った後尾の暗号ブロックのサイズが128ビット未満である場合において、演算部222から入力バッファ201が保持するチャンクの後尾の暗号ブロック復号することで得られた復号された暗号ブロックを受け取ると、128ビットに不足するビット数を暗号ブロックの後尾から削除して合成平文を作成し、作成した合成平文を、演算判定部221から受け取った復号された暗号ブロックに替えて出力選択部229に出力する機能を有する。
 連鎖値記録部1328は、暗号サイズ算出部1311が出力する暗号ブロックの数と、連鎖判定部213が出力するコンテンツタイプと、フレーム番号と、演算部222が出力する連鎖値と、端数処理制御部1300が出力する後尾の暗号ブロックのサイズとを入力され、演算部222が出力する連鎖値が入力されると、入力された連鎖値を、チャンク間連鎖値保持部1316かチャンク内連鎖値保持部227のいずれか一方に記録する機能を有する。
 連鎖値記録部1328は、演算部222から入力される連鎖値が、演算部222がチャンクの後尾の暗号ブロックを復号する際に出力されたものである場合には、入力された連鎖値を、連鎖判定部213から入力されるコンテンツタイプと、フレーム番号と、端数データサイズとを関連付けて、チャンク間連鎖値保持部1316に上書きして記録し、演算部222から入力される連鎖値が、演算部222がチャンクの後尾の暗号ブロックを復号する際に出力されたものでない場合には、入力された連鎖値を、チャンク内連鎖値保持部227に上書きして記録し、演算判定部221に暗号ブロック要請信号を出力する機能を有する。
 なお、連鎖値記録部1328は、演算部222から入力される連鎖値が、演算部222がチャンクの後尾の暗号ブロックを復号する際に出力されたものである場合において、端数データサイズが128ビット未満の場合には、チャンク間連鎖値保持部1316に上書きして記録する連鎖値は、演算部222から前回入力された連鎖値とする機能を有する。
 ここで、チャンク間連鎖値保持部1316に書き込む端数データサイズとは、端数処理制御部1300から入力される後尾の暗号ブロックのサイズのことである。
 連鎖値記録部1328は、演算部222から入力される連鎖値が、チャンクの後尾の暗号ブロックを復号する際に出力されたものであるか否かを判定するために、入力される連鎖値の数を計測する連鎖値数カウンタを備えている。
 この連鎖値数カウンタは、暗号サイズ算出部1311から暗号ブロックの数が入力される毎にリセットされる。
 連鎖値記録部1328は、演算部222から連鎖値が入力された場合に、連鎖値カウンタの計測する連鎖値数に1を加えて新たな連鎖値数とし、この新たな連鎖値数が暗号サイズ算出部211から入力される暗号ブロックの数未満のときには、チャンクの後尾の暗号ブロックを復号する際に出力された連鎖値でないと判断し、連鎖値数カウンタの計測する連鎖値の数が暗号サイズ算出部211から入力される暗号ブロックの数と等しいときには、チャンクの後尾の暗号ブロックを復号する際に出力された連鎖値であると判断する。
 暗号エンジン1350は、実施の形態1の暗号エンジン150に対して、チャンク間連鎖値保持部216を1316に変形し、連鎖値記録部228を連鎖値記録部1328に変形し、新たに端数処理制御部1300と前処理部1301と後処理部1302とを追加したものである。
 <端数処理>
 以下図面を用いて、端数処理制御部1300が、前処理部1301と、演算部222と、後処理部1302とを用いて行う端数処理について説明する。
 図16は、暗号ブロックの前半が欠落している場合の、前処理部1301と演算部222と後処理部1302とが行う処理の動作を示す図である。
 前処理部1301は、端数処理制御部1300から受け取った先頭の暗号ブロックのサイズが128ビット未満である場合において、演算判定部221から入力バッファ201が保持するチャンクの先頭の暗号ブロックを受け取ると、受け取った暗号ブロック1501は、先頭の暗号ブロックのサイズと128ビットとの差分のビット数だけ先頭のビットが欠落していると判断し、欠落しているビット数の0からなる補完データ1502を付与して、128ビットの合成暗号ブロックを作成する。
 前処理部1301は、作成した暗号ブロックを演算判定部221から受け取った暗号ブロックに替えて演算部222に出力する。
 演算部222は、入力された128ビットの暗号ブロックと、128ビットの暗号連鎖値とのビットごとの排他的論理和を実行することで、復号された暗号ブロックを作成し、作成した復号された暗号ブロックを後処理部1302に出力する。
 後処理部1302は、端数処理制御部1300から受け取った先頭の暗号ブロックのサイズが128ビット未満である場合において、演算部222から入力バッファ201が保持する先頭の暗号ブロックが復号された暗号ブロックを受け取ると、受け取った復号された暗号ブロックは、先頭の暗号ブロックのサイズと128ビットとの差分のビット数だけ先頭のビットが不要なビットであると判断し、不要なビットを暗号ブロックの先頭から削除して合成平文を作成し、作成した合成平文を、演算判定部221から受け取った復号された暗号ブロックに替えて出力選択部229に出力する。
 図17は、暗号ブロックの後半が欠落している場合の、前処理部1301と演算部222と後処理部1302とが行う処理の動作を示す図である。
 前処理部1301は、端数処理制御部1300から受け取った後尾の暗号ブロックのサイズが128ビット未満である場合において、演算判定部221から入力バッファ201が保持するチャンクの後尾の暗号ブロックを受け取ると、受け取った暗号ブロック1501は、後尾の暗号ブロックのサイズと128ビットとの差分のビット数だけ後尾のビットが欠落していると判断し、欠落しているビット数の0からなる補完データ1502を付与して、128ビットの合成暗号ブロックを作成する。
 前処理部1301は、作成した暗号ブロックを演算判定部221から受け取った暗号ブロックに替えて演算部222に出力する。
 演算部222は、入力された128ビットの暗号ブロックと、128ビットの暗号連鎖値とのビットごとの排他的論理和を実行することで、復号された暗号ブロックを作成し、作成した復号された暗号ブロックを後処理部1302に出力する。
 後処理部1302は、端数処理制御部1300から受け取った後尾の暗号ブロックのサイズが128ビット未満である場合において、演算部222から入力バッファ201が保持するチャンクの後尾の暗号ブロックが復号された暗号ブロックを受け取ると、受け取った復号された暗号ブロックは、後尾の暗号ブロックのサイズと128ビットとの差分のビット数だけ後尾のビットが不要なビットであると判断し、不要なビットを暗号ブロックの後尾から削除して合成平文を作成し、作成した合成平文を、演算判定部221から受け取った復号された暗号ブロックに替えて出力選択部229に出力する。
 図18は、暗号ブロックに欠落がない場合の、前処理部1301と演算部222と後処理部1302とが行う処理の動作を示す図である。
 前処理部1301は、(1)端数処理制御部1300から受け取った先頭の暗号ブロックのサイズが128ビットである場合において、演算判定部221から入力バッファ201が保持するチャンクの先頭の暗号ブロックを受け取るとき、(2)端数処理制御部1300から受け取った後尾の暗号ブロックのサイズが128ビットである場合において、演算判定部221から入力バッファ201が保持するチャンクの後尾の暗号ブロックを受け取るとき、(3)演算判定部221から入力バッファ201が保持するチャンクの先頭と後尾の暗号ブロック以外の暗号ブロックを受け取るときに、受け取った暗号ブロックは、欠落が無いと判断し、受け取った暗号ブロックをそのまま演算部222に出力する。
 演算部222は、入力された128ビットの暗号ブロックと、128ビットの暗号連鎖値とのビットごとの排他的論理和を実行することで、復号された暗号ブロックを作成し、作成した復号された暗号ブロックを後処理部1302に出力する。
 後処理部1302は、(1)端数処理制御部1300から受け取った先頭の暗号ブロックのサイズが128ビットである場合において、演算部222から入力バッファ201が保持するチャンクの先頭の暗号ブロックが復号された暗号ブロックを受け取るとき、(2)端数処理制御部1300から受け取った後尾の暗号ブロックのサイズが128ビットである場合において、演算部222から入力バッファ201が保持するチャンクの後尾の暗号ブロックが復号された暗号ブロックを受け取るとき、(3)演算判定部221から入力バッファ201が保持するチャンクの先頭と後尾の暗号ブロック以外の暗号ブロックを受け取るときに、受け取った復号された暗号ブロックは、欠落が無いと判断し、受け取った復号された暗号ブロックをそのまま出力選択部229に出力する。
 以上のように構成されたコンテンツ復号処理装置4000の動作の詳細について、以下図面を用いて説明する。
 <動作>
 再生機がコンテンツの再生処理を開始すると、CPUA111又はCPUB112は、外部記録媒体137、ハードディスク装置131の内蔵するハードディスク、又は、RAM122に書き込まれている復号対象のコンテンツについて、まず、コンテンツヘッダ301を入力バッファ201に書き込む。
 以後CPUA111又はCPUB112は、コンテンツデータの最初のチャンクから順に、最後のチャンクになるまでチャンクを入力バッファ201に書き込んでいく。
 コンテンツヘッダが入力バッファ201に書き込まれると、コンテンツ復号処理装置3000はコンテンツ復号処理を開始する。
 図19、図20は、コンテンツ復号処理装置4000の行うコンテンツ復号処理のフローチャートである。
 コンテンツ復号処理装置4000がコンテンツ復号処理を開始すると、チャンク情報取得部910はコンテンツヘッダ信号を出力し、演算判定部221は出力されたコンテンツヘッダ信号を受け取る。
 演算判定部221は、コンテンツヘッダ信号を受け取ると、入力バッファ201からコンテンツヘッダ301を読み出して出力選択部229に出力し、出力選択部229は、受け取ったコンテンツヘッダ301を出力バッファ202に書き込む。
 CPUA111又はCPUB112によってチャンクが入力バッファ201に書き込まれると、チャンク情報取得部1310は、入力バッファ201が保持するチャンクの開始アドレスを取得し、さらに、チャンクヘッダ311から、チャンクサイズ401と、チャンクデータサイズ405と、コンテンツタイプ402と、フレーム番号403とを取得して(ステップS1900)、チャンクの開始アドレスと、チャンクサイズ401と、チャンクデータサイズ405とを暗号サイズ算出部211に出力し、コンテンツタイプ402を鍵設定部212に出力し、フレーム番号403を連鎖判定部213と端数処理制御部1300とに出力する。
 暗号サイズ算出部1311は、チャンク情報取得部210から、チャンクの開始アドレスと、チャンクサイズ401と、チャンクデータサイズ405とが入力されると、パディング313の開始アドレスと、チャンクの終了アドレスと、チャンクデータ312に含まれる暗号ブロックの数を計算し(ステップS1910)、チャンクの開始アドレスと、パディング313の開始アドレスと、チャンクの終了アドレスとを演算判定部221に出力し、暗号ブロックの数を連鎖値記録部1328に出力する。
 連鎖値記録部1328は、暗号サイズ算出部211から暗号ブロックの数が入力されると、連鎖値数カウンタの計測する連鎖値の数をリセットする。
 演算判定部221は、暗号サイズ算出部1311から、チャンクの開始アドレスと、パディング313の開始アドレスと、チャンクの終了アドレスとを受け取ると、入力バッファからチャンクヘッダ311とパディング313とを読み出して出力選択部229に出力し、出力選択部229は入力されたチャンクヘッダ311とパディング313とを出力バッファ202に書き込み(ステップS1920)、連鎖値選択部226に初期値選択信号を出力する。
 鍵設定部212は、チャンク情報取得部1310からコンテンツタイプ402を入力されると、鍵蓄積部214に、入力されたコンテンツタイプ402と関連付けられて記憶されている鍵502と初期値503とを読み出して、読み出した鍵502を鍵保持部223に出力し、読み出した初期値を初期値保持部224に出力し、鍵蓄積部214は、入力された鍵を上書きして記憶し、初期値保持部224は、入力された初期値を上書きして記憶する(ステップS1930)。
 端数処理制御部1300は、チャンク情報取得部1310からコンテンツタイプ402とフレーム番号403とを受け取ると、受け取ったコンテンツタイプ402とフレーム番号403との組に対応付けられてチャンク間連鎖値保持部1316に記憶されている端数データサイズ1804を読み出し、入力バッファ201に記憶されているチャンクの先頭の暗号ブロックのサイズと、後尾の暗号ブロックのサイズとを算出し(ステップS1935)、算出した先頭の暗号ブロックのサイズを、前処理部1301と、後処理部1302とに出力し、算出した後尾の暗号ブロックのサイズを、連鎖値記録部1328に出力する。
 連鎖判定部213は、チャンク情報取得部1310から、コンテンツタイプ402と、フレーム番号403とを入力されると、入力バッファ201に保持されているチャンクが暗号連鎖継続中であるか否かを判定するために、入力されるコンテンツタイプ402と、フレーム番号403との組み合わせが、チャンク間連鎖値保持部1316に関連付けられて記憶されているか否かを調べて(ステップS1940)、記憶されている場合には、入力バッファ201に保持されているチャンクが暗号連鎖継続中であると判断し(ステップS1940:Yes)、コンテンツタイプ402とフレーム番号403とを連鎖値記録部1328に出力し、暗号連鎖信号とコンテンツタイプ402とを初期値選択部225に出力する。
 初期値選択部225は、連鎖判定部213から、暗号連鎖継続信号と、コンテンツタイプ402との組みを受け取ると、チャンク間連鎖値保持部1316から、受け取ったコンテンツタイプ402と関連付けられて記憶されている連鎖値を読み出して連鎖値選択部226に出力する。
 連鎖値選択部226は、演算判定部221から初期値選択信号を受け取っているので、初期値選択部225から入力される連鎖値を選択して、演算部222に出力する(ステップS1950)。
 次に演算判定部221は、入力バッファ201に記憶されている暗号チャンクの先頭の暗号ブロックを読み出して、前処理部1301に出力する。
 前処理部1301は、暗号ブロックが分割されているか否かを判断するために、端数処理制御部1300から受け取った先頭の暗号ブロックのサイズが128ビット未満であるか否かを判断し(ステップS1970)、128ビット未満である場合に、暗号ブロックが分割されていると判断し(ステップS1970:Yes)、128ビットに不足するビット数の0を受け取った暗号ブロックの先頭に付与して128ビットの合成暗号ブロックを作成し、作成した合成暗号ブロックを、演算判定部221から受け取った暗号ブロックに替えて演算部222に出力する。
 ステップS1940において、入力されるコンテンツタイプ402と、フレーム番号403との組み合わせが、チャンク間連鎖値保持部1316に関連付けられて記憶されていない場合には、入力バッファ201に保持されているチャンクが暗号連鎖継続中でないと判断し(ステップS1940:No)、コンテンツタイプ402とフレーム番号403とを連鎖値記録部228に出力し、暗号終了信号を初期値選択部225に出力する。
 初期値選択部225は、連鎖判定部213から、暗号連鎖終了信号を受け取ると、初期値保持部224が保持する初期値を読み出して連鎖値選択部226に出力する。
 連鎖値選択部226は、演算判定部221から初期値選択信号を受け取っているので、初期値選択部225から初期値が入力されると、入力された初期値を演算部222で使用する連鎖値として演算部222に出力する(ステップS1960)。
 次に演算判定部221は、入力バッファ201に記憶されている暗号チャンクの先頭の暗号ブロックを読み出して、前処理部1301に出力し、前処理部1301は、受け取った暗号ブロックをそのまま演算部222に出力する。
 ステップS1980又はステップS1960の処理が終わると、演算部222は、前処理部1301から暗号チャンクの先頭の暗号ブロックを受け取る。
 演算部222は、鍵保持部223に記録されている鍵と、連鎖値選択部から出力される連鎖値とを用いて、受け取った暗号ブロックを復号して後処理部1302に出力し、復号の際に算定した次の連鎖値を連鎖値記録部228に出力する(ステップS2000)。
 後処理部1302は、(1)端数処理制御部1300から受け取った先頭の暗号ブロックのサイズが128ビット未満である場合において、演算部222から入力バッファ201が保持するチャンクの先頭の暗号ブロックを復号することで得られた復号された暗号ブロックを受け取ったとき又は、(2)端数処理制御部1300から受け取った後尾の暗号ブロックのサイズが128ビット未満である場合において、演算部222から入力バッファ201が保持するチャンクの後尾の暗号ブロック復号することで得られた復号された暗号ブロックを受け取ったときに、受け取った復号された暗号ブロックが、前処理部1301によって補完データを付与された暗号ブロックが復号されたものであると判断し(ステップS2000:Yes)、受け取った復号された暗号ブロックの、付与された補完データに対応する部分を削除した合成平文を作成し、作成した合成平文を、演算判定部221から受け取った復号された暗号ブロックに替えて出力選択部229に出力する(ステップS2010)。
 後処理部1302は、(1)端数処理制御部1300から受け取った先頭の暗号ブロックのサイズが128ビットである場合、(2)端数処理制御部1300から受け取った後尾の暗号ブロックのサイズが128ビットである場合、(3)端数処理制御部1300から受け取った先頭の暗号ブロックのサイズが128ビット未満である場合において、演算部222から入力バッファ201が保持するチャンクの先頭の暗号ブロックと後尾の暗号ブロック以外の暗号ブロックを復号することで得られた復号された暗号ブロックを受け取ったときに、受け取った復号された暗号ブロックが、前処理部1301によって補完データを付与されてない暗号ブロックが復号されたものであると判断し(ステップS2000:No)、受け取った復号された暗号ブロックをそのまま出力選択部229に出力する。
 ステップS2010又はステップS2005:Noの処理が終わると、出力選択部229は、後処理部1302から復号された暗号ブロックを受け取る。
 出力選択部229は、演算部222から復号された暗号ブロックが入力されると、入力された復号された暗号ブロックを、出力バッファ202に書き込む。
 連鎖値記録部228は、演算部222から連鎖値が入力されると、連鎖値数カウンタの計測する連鎖値数に1を加えて新たな連鎖値数とし、この新たな連鎖値数と、暗号サイズ算出部から入力された暗号ブロックの数とを比較することで、演算部222から入力された連鎖値が、演算部222がチャンクの後尾の暗号ブロックを復号する際に出力されたものであるか否かを判定する(ステップS2015)。
 ステップS2015において、新たな連鎖値数が暗号サイズ算出部211から入力される暗号ブロックの数未満のときは、入力された連鎖値がチャンクの後尾の暗号ブロックを復号する際に出力された連鎖値でないと判断し(ステップS2015:Yes)、演算部222から入力された連鎖値をチャンク内連鎖値保持部に上書きして記録し(ステップS2020)、連鎖値記録部228は、演算判定部221に暗号ブロック要請信号を出力する。
 演算判定部221は、連鎖値記録部228から暗号ブロック要請信号を受け取ると、次の暗号ブロックを前処理部1301に出力し連鎖値選択信号を連鎖値選択部226に出力する。
 前処理部1301は、端数処理制御部1300から受け取った後尾の暗号ブロックのサイズが128ビット未満である場合において、演算判定部221から入力バッファ201が保持するチャンクの後尾の暗号ブロックを受け取ったときに、後続の暗号ブロックが分割されていると判断し(ステップS2025:Yes)、128ビットに不足するビット数の0を受け取った暗号ブロックの先頭に付与して128ビットの合成暗号ブロックを作成し(ステップS2030)、作成した合成暗号ブロックを、演算判定部221から受け取った暗号ブロックに替えて演算部222に出力する。
前処理部1301は、端数処理制御部1300から受け取った後尾の暗号ブロックのサイズが128ビットである場合、又は、演算判定部221から入力バッファ201が保持するチャンクの後尾の暗号ブロック以外の暗号ブロックを受け取った場合には、後続の暗号ブロックが分割されていないと判断し(ステップS2025:No)、演算判定部221から受け取った暗号ブロックをそのまま演算部222に出力する。
 連鎖値選択部226は、連鎖値選択信号を受信すると、チャンク内連鎖値保持部227が保持する連鎖値を読み出して演算部222に出力する(ステップS2035)。
 ステップS2035の処理が終わると、再びステップS2000の処理を開始する。
 ステップS2015において、新たな連鎖値数が暗号サイズ算出部211から入力される暗号ブロックの数と等しいときは、入力された連鎖値がチャンクの後尾の暗号ブロックを復号する際に出力された連鎖値であると判断し(ステップS2015:No)、端数データサイズが128ビットであるときには、演算部222から入力された連鎖値を、連鎖判定部213から入力されたコンテンツタイプと、フレーム番号と、端数データサイズとを関連付けて、チャンク間連鎖値保持部1316に上書きして記録し、端数データサイズが128ビット未満の場合には、チャンク間連鎖値保持部1316に上書きして記録する連鎖値は、演算部222から前回入力された連鎖値を記録する(ステップS2040)。
 ステップS2040の処理が終わると、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれるまで、コンテンツ復号処理装置4000は待機する(ステップS2050)。
 所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれた場合には(ステップS2055:Yes)、再びステップS1900の処理を開始する。
 所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれなかった場合には(ステップS2055:No)、コンテンツデータ302に後続のチャンクが存在していないと判断し、コンテンツ復号処理装置2000は、コンテンツ復号処理を終了する。
<実施の形態4>
 以下、本発明に係るコンテンツ復号処理装置の一実施形態として、暗号連鎖ブロック方式で暗号化されたコンテンツを復号するコンテンツ復号処理装置について説明する。
 本実施の形態2に係るコンテンツ復号処理装置は、実施の形態1のコンテンツ復号処理装置2000の復号対象であるコンテンツに含まれるチャンク310のチャンクヘッダ311の一部が変形し、チャンクヘッダに鍵情報と初期値情報とを含んでいるデータフォーマットであるコンテンツを復号することができるように、実施の形態1で説明したコンテンツ復号処理装置2000を変形したものである。
 本実施の形態4に係るコンテンツ復号処理装置は、実施の形態1で説明したコンテンツ復号処理装置2000の一部である、チャンク情報取得部210と、鍵蓄積部214と、鍵設定部212とを変形し、さらに、新たに鍵生成部を備えるように変形した形態であって、コンテンツ復号処理装置2000と同様に、実施の形態1の再生機1000上で実現される。
 以下、実施の形態1で説明したものと変更点のないものについての説明を省略し、変更点のあるものについて中心に説明する。
 <構成>
  <コンテンツのデータ構造>
 本実施の形態4に係るコンテンツ復号処理装置5000が復号するコンテンツは、実施の形態1のコンテンツ300を、実施の形態1のチャンクヘッダ311に、新たに鍵情報2205と、初期値情報2206とが加わっているように変形したコンテンツである。
 図21は、本実施の形態4に係るコンテンツ復号処理装置3000の復号対象であるコンテンツを構成するチャンク2250のデータ構成を示す構成図である。
 チャンク2250は、チャンクヘッダ1015、チャンクデータ1010、パディング1020から構成されている。
 チャンクヘッダ2200は、暗号化されていないデータであって、チャンクのサイズを示す情報を含むチャンクサイズ2201、コンテンツタイプを示す情報を含むコンテンツタイプ2202、フレーム番号を示す情報を含むフレーム番号2203、デコードに使用する情報を含むデコード用ヘッダ情報2204、鍵を生成するための鍵情報2205、初期値を生成するための初期値情報2206、チャンクデータのサイズを示す情報を含むチャンクデータサイズ2207からなる。
 このうち、チャンクサイズ2201、コンテンツタイプ2202、フレーム番号2203、デコード用ヘッダ情報2204、チャンクデータサイズ2207は、それぞれ、実施の形態1の、チャンクサイズ401、コンテンツタイプ402、フレーム番号403、デコード用ヘッダ情報404、チャンクデータサイズ405と同様のものである。
 また、チャンクヘッダ2200の構成要素である、チャンクサイズ2201、コンテンツタイプ2202、フレーム番号2203、デコード用ヘッダ情報2204、鍵情報2205、初期値情報2206、チャンクデータサイズ2207のそれぞれのビット長と出現順番とは固定である。
 ここで、鍵情報2205は自らを含むチャンクの属する暗号フレームを復号するための鍵を生成するための情報であって、初期値情報2206は、自らを含むチャンクの属する暗号フレームを復号するための初期値を生成するための情報である。
  <コンテンツ復号処理装置5000>
 図22は、コンテンツ復号処理装置5000の機能構成を示すブロック図である。
 コンテンツ復号処理装置5000は、実施の形態1のコンテンツ復号処理装置2000に対して、チャンク情報取得部210をチャンク情報取得部2110に変形し、鍵蓄積部214を鍵蓄積部2114に変形し、鍵設定部212を鍵設定部2112に変形し、新たに鍵生成部2101を追加したものである。
 チャンク情報取得部2110は、入力バッファ201が保持するチャンクの開始アドレスを取得し、さらに、チャンクヘッダ2200から、チャンクサイズ2201と、チャンクデータサイズ2207と、コンテンツタイプ2202と、フレーム番号2203と、鍵情報2205と、初期値情報2206とを取得して、チャンクの開始アドレスと、チャンクサイズ2201と、チャンクデータサイズ2207とを暗号サイズ算出部211に出力し、コンテンツタイプ2202と、フレーム番号2203とを鍵設定部212と連鎖判定部213とに出力し、コンテンツタイプ2202と、フレーム番号2203と、鍵情報2205と、初期値情報2206とを鍵生成部2101に出力する機能を有する。
 チャンク情報取得部2110は、CPUA111又はCPUB112によってコンテンツヘッダ301が書き込まれると、入力バッファ201が保持するデータがコンテンツヘッダ301である旨のコンテンツヘッダ信号を暗号エンジン150に出力する機能を有する。
 鍵生成部2101は、チャンク情報取得部2110から、コンテンツタイプ2202と、フレーム番号203と、鍵情報2205と、初期値情報2206とを受け取ると、受け取った鍵情報2205から鍵を作成し、初期値情報2206から初期値を作成し、鍵蓄積部2114に、受け取ったコンテンツタイプ2202と、受け取ったフレーム番号203と、生成した鍵と、生成した初期値とを関連付けて記録する機能を有する。
 また、鍵生成部2101は、鍵情報2205が暗号化されている場合には復号し、初期値情報2206が暗号化されている場合には復号する機能を有する。
 鍵蓄積部2114は、コンテンツタイプと、フレーム番号と、鍵と、初期値とを関連付けて記憶するための記憶領域であって、メモリブロック120の一部として実装されている。
 図23は、鍵蓄積部2114が記憶する情報を示す図である。
 図23に示されるように、鍵蓄積部2114は、コンテンツタイプ2300と、フレーム番号2301と、鍵2302と、初期値2303とを関連付けて記憶している。
 鍵設定部2112は、チャンク情報取得部2110からのコンテンツタイプ2202とフレーム番号2203とを入力されると、鍵蓄積部2114から、入力されたコンテンツタイプ2202とフレーム番号2203の組と関連付けられて記憶されている鍵2302と初期値2303とを読み出して、暗号エンジン150に出力する機能を有する。
 以上のように構成されたコンテンツ復号処理装置5000の動作の詳細について、以下図面を用いて説明する。
 <動作>
 再生機1000がコンテンツの再生処理を開始すると、CPUA111又はCPUB112は、外部記録媒体137、ハードディスク装置131の内蔵するハードディスク、又は、RAM122に書き込まれている復号対象のコンテンツについて、まず、コンテンツヘッダを入力バッファ201に書き込む。
 以後CPUA111又はCPUB112は、コンテンツデータの先頭のチャンクから順に、最後のチャンクになるまでチャンクを入力バッファ201に書き込んでいく。
 コンテンツヘッダが入力バッファ201に書き込まれると、コンテンツ復号処理装置5000はコンテンツ復号処理を開始する。
 図24は、コンテンツ復号処理装置2000の行うコンテンツ復号処理のフローチャートである。
 コンテンツ復号処理装置5000がコンテンツ復号処理を開始すると、チャンク情報取得部2110はコンテンツヘッダ信号を出力し、演算判定部221は出力されたコンテンツヘッダ信号を受け取る。
 演算判定部221は、コンテンツヘッダ信号を受け取ると、入力バッファ201からコンテンツヘッダを読み出して出力選択部229に出力し、出力選択部229は、受け取ったコンテンツヘッダを出力バッファ202に書き込む。
 CPUA111又はCPUB112によってチャンクが入力バッファ201に書き込まれると、チャンク情報取得部2110は、入力バッファ201が保持するチャンクの開始アドレスを取得し、さらに、チャンクヘッダ2200から、チャンクサイズ2201と、チャンクデータサイズ2207と、コンテンツタイプ2202と、フレーム番号2203と、鍵情報2205と、初期値情報2206とを取得して(ステップS2400)、チャンクの開始アドレスと、チャンクサイズ2201と、チャンクデータサイズ2207とを暗号サイズ算出部211に出力し、コンテンツタイプ2202と、フレーム番号2203とを鍵設定部2112と連鎖判定部213とに出力し、コンテンツタイプ2202と、フレーム番号2203と、鍵情報2205と、初期値情報2206とを鍵生成部2101に出力する。
 鍵生成部2101は、チャンク情報取得部2110から、コンテンツタイプ2202と、フレーム番号203と、鍵情報2205と、初期値情報2206とを受け取ると、受け取った鍵情報2205から鍵を作成し、初期値情報2206から初期値を作成し、鍵蓄積部2114に、受け取ったコンテンツタイプ2202と、受け取ったフレーム番号2203と、生成した鍵と、生成した初期値とを関連付けて記録する(ステップS2402)。
 暗号サイズ算出部211は、チャンク情報取得部210から、チャンクの開始アドレスと、チャンクサイズ2201と、チャンクデータサイズ2207とが入力されると、パディング2230の開始アドレスと、チャンクの終了アドレスと、チャンクデータ2220に含まれる暗号ブロックの数を計算し(ステップS2405)、チャンクの開始アドレスと、パディング2230の開始アドレスと、チャンクの終了アドレスとを演算判定部221に出力し、暗号ブロックの数を連鎖値記録部228に出力する。
 連鎖値記録部228は、暗号サイズ算出部211から暗号ブロックの数が入力されると、連鎖値数カウンタの計測する連鎖値の数をリセットする。
 演算判定部221は、暗号サイズ算出部211から、チャンクの開始アドレスと、パディング2230の開始アドレスと、チャンクの終了アドレスとを受け取ると、入力バッファからチャンクヘッダ2200とパディング2230とを読み出して出力選択部229に出力し、出力選択部229は入力されたチャンクヘッダ2200とパディング2230とを出力バッファ202に書き込み(ステップS2410)、連鎖値選択部226に初期値選択信号を出力する。
 鍵設定部2112は、チャンク情報取得部210からコンテンツタイプ2202とフレーム番号2203を入力されると、鍵蓄積部214に、入力されたコンテンツタイプ2202とフレーム番号2203との組と関連付けられて記憶されている鍵2302と初期値2303とを読み出して、読み出した鍵2302を鍵保持部223に出力し、読み出した初期値2303を初期値保持部224に出力し、鍵蓄積部214は、入力された鍵を上書きして記憶し、初期値保持部224は、入力された初期値を上書きして記憶する(ステップS2415)。
 以降、ステップS2420~ステップS2465までの処理は、実施の形態1のコンテンツ復号処理装置2000の動作における、ステップS820~ステップS865までの処理と同じ処理であるので説明を省略する。
 なお、ステップS2420はステップS820、ステップS2425はステップS825、ステップS2430はステップS830、ステップS2435はステップS835、ステップS2440はステップS840、ステップS2445はステップS845、ステップS2450はステップS850、ステップS2455はステップS855、ステップS2465はステップS865に対応する。
 ステップS2465において、コンテンツ復号処理装置5000が待機を開始してから所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれた場合には(ステップS2470:Yes)、再びステップS2400の処理を開始する。
 所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれなかった場合には(ステップS2470:No)、コンテンツデータ302に後続のチャンクが存在していないと判断し、コンテンツ復号処理装置5000は、コンテンツ復号処理を終了する。
<実施の形態5>
 以下、本発明に係るコンテンツ復号処理装置の一実施形態として、暗号連鎖ブロック方式で暗号化されたコンテンツを復号するコンテンツ復号処理装置について説明する。
 本実施の形態5に係るコンテンツ復号処理装置は、実施の形態1のコンテンツ復号処理装置2000の復号対象であるコンテンツと同様のフォーマットのコンテンツを復号するコンテンツ復号処理装置であって、復号対象のコンテンツから、全てのチャンクのチャンクヘッダの情報を読み取って記録する第1処理部と、第1処理部に記憶されているチャンクヘッダの情報を用いてコンテンツを復号する第2処理部とから構成されるように、実施の形態1で説明したコンテンツ復号処理装置2000を変形したものである。
 本実施の形態5に係るコンテンツ復号処理装置は、実施の形態1で説明したコンテンツ復号処理装置2000の一部である、チャンク情報取得部210と、暗号サイズ算出部211と、連鎖判定部213と、鍵設定部212と、演算判定部221と、初期値選択部225と、連鎖値記録部228とを変形し、さらに、暗号情報蓄積部と、フレーム番号蓄積部とを備えるように変形した形態であって、実施の形態1の再生機1000の暗号エンジン150を、暗号エンジン150の一部を変形することで得られた暗号エンジン2550に置き替えるように変形した再生機上で実現される。
 以下、実施の形態1で説明したものと変更点のないものについての説明を省略し、変更点のあるものについて中心に説明する。
 <構成>
  <コンテンツ復号処理装置6000>
 図25は、コンテンツ復号処理装置6000の機能構成を示すブロック図である。
 コンテンツ復号処理装置6000は、実施の形態1のコンテンツ復号処理装置2000に対して、チャンク情報取得部210をチャンク情報取得部2510に変形し、暗号サイズ算出部211を暗号サイズ算出部2511に変形し、連鎖判定部213を連鎖判定部2413に変形し、鍵設定部212を鍵設定部2512に変形し、演算判定部221を演算判定部2521に変形し、初期値選択部225を初期値選択部2525に変形し、連鎖値記録部228を連鎖値記録部2528に変形し、さらに、暗号情報蓄積部2530と、フレーム番号蓄積部2522とを追加したものである。
 チャンク情報取得部2510は、入力バッファ201が保持するチャンクの開始アドレスを取得し、さらに、チャンクヘッダ311から、チャンクサイズ401と、チャンクデータサイズ405と、コンテンツタイプ402と、フレーム番号403とを取得して、チャンクの開始アドレスと、チャンクサイズ401と、チャンクデータサイズ405とを暗号サイズ算出部211に出力し、コンテンツタイプ402と、フレーム番号403とを連鎖判定部213に出力し、コンテンツタイプ402と、フレーム番号403とを関連付けて暗号情報蓄積部2530に記録する機能を有する。
 暗号サイズ算出部2511は、チャンク情報取得部210から、チャンクの開始アドレスと、チャンクサイズ401と、チャンクデータサイズ405とを入力されると、チャンクデータ312の開始アドレスと、パディング313の開始アドレスと、チャンクの終了アドレスと、チャンクデータ312に含まれる暗号ブロックの数を計算し、計算したチャンクデータの開始アドレスと、パディングの開始アドレスと、チャンクの終了アドレスと、暗号ブロックの数とを、暗号情報蓄積部2530に、チャンク情報取得部2510によって記録されたコンテンツタイプと、フレーム番号の組と関連付けて記録する機能を有する。
 チャンクデータ312の開始アドレスは、チャンクの開始アドレスと固定長であるチャンクヘッダ311のサイズを加算することで算出され、パディング313の開始アドレスは、チャンクヘッダ311の開始アドレスにとチャンクデータサイズ405とを加算することで算出され、チャンクの終了アドレスは、チャンクの開始アドレスとチャンクサイズ401とを加算することで算出され、暗号ブロックの数は、チャンクデータサイズ405を暗号ブロックの単位ビット数である128で除算することで算出される。
 フレーム番号蓄積部2522は、コンテンツタイプとフレーム番号とを関連付けて記憶するための記憶領域であって、メモリブロック120の一部として実装されている。
 図26は、フレーム番号蓄積部2522が記憶する情報を示す図である。
 図26に示されるように、フレーム番号蓄積部2522は、Videoと、Audio1と、Audio2との3つのコンテンツタイプ2701のそれぞれに、フレーム番号2702を対応付けて記憶している。
 ここに記憶されているフレーム番号2702は、コンテンツタイプ2701のそれぞれにおいて、チャンク情報取得部2510によって取得されたフレーム番号のうち、最新のフレーム番号である。
 連鎖判定部2513は、チャンク情報取得部2510からコンテンツタイプ402と、フレーム番号403との組み合わせが入力されると、チャンク情報取得部2510から入力されるコンテンツタイプ402と、フレーム番号403との組み合わせが、フレーム番号蓄積部2522に関連付けられて記憶されているか否かを調べて、記憶されている場合には、入力バッファ201に保持されてチャンクが暗号連鎖継続中であると判断し、記憶されていない場合には、入力バッファ201に保持されているチャンクが暗号連鎖継続中でないと判断する機能を有する。
 連鎖判定部2513は、暗号連鎖中であると判断した場合には、暗号連鎖中の旨を、暗号情報蓄積部2530に、チャンク情報取得部2510によって記録されたコンテンツタイプと、フレーム番号の組と関連付けて記録し、暗号連鎖中でないと判断した場合には、フレーム番号蓄積部2522に記憶されている、チャンク情報取得部2510から入力されるコンテンツタイプと同じコンテンツタイプ2701のフレーム番号2702を更新し、暗号連鎖終了の旨を、暗号情報蓄積部2530に、チャンク情報取得部2510によって記録されたコンテンツタイプと、フレーム番号の組と関連付けて記録する機能を有する。
 暗号情報蓄積部2530は、復号対象のコンテンツを構成する全てのチャンクについての、開始アドレスと、コンテンツタイプと、フレーム番号と、チャンクデータ開始アドレスと、暗号ブロック数と、パディング開始アドレスと、チャンク終了アドレスと、連鎖の有無とを対応付けて、チャンクの順番に記憶するための記憶領域であって、メモリブロック120の一部として実装されている。
 図27は、暗号情報蓄積部2530が記憶する情報を示す図である。
 図27に示されるように、暗号情報蓄積部2530は、復号対象のコンテンツのチャンクの順番に、各チャンクの開始アドレス2601と、コンテンツタイプ2602と、フレーム番号2603と、チャンクデータ開始アドレス2604と、暗号ブロック数2605と、パディング開始アドレス2606と、チャンク終了アドレス2607と、連鎖の有無2608とを記憶している。
 鍵設定部2512は、暗号情報蓄積部2530から、チャンクの順に順次コンテンツタイプ2602を読み出して、鍵蓄積部214から、読み出したコンテンツタイプ2602と関連付けられて記憶されている鍵502と初期値503とを読み出して、暗号エンジン150に出力する機能を有する。
 演算判定部2521は、暗号情報蓄積部2530から、チャンクの順に順次チャンクの開始アドレス2601と、チャンクデータ開始アドレス2604と、パディング開始アドレス2606と、チャンク終了アドレス2607とを用いて、入力バッファ201に保持されているチャンクから、チャンクヘッダ311と、パディング313とを読み出して出力選択部229に出力し、チャンクデータ312を読み出して、暗号ブロック単位で演算部222に出力し、演算部222に出力する暗号ブロックが、チャンクデータの先頭の暗号ブロックである場合に、初期値選択信号を連鎖値選択部226に出力し、演算部222に出力する暗号ブロックが、チャンクデータの先頭の暗号ブロックでない場合に、連鎖値選択信号を連鎖値選択部226に出力する機能を有する。
 なお、チャンクデータの先頭の暗号ブロックであるか否かは、チャンクデータの開始アドレスを用いて判断する。
 初期値選択部2525は、暗号情報蓄積部2530から、チャンクの順に順次連鎖の有無2608と、コンテンツタイプ2602の組みを読み出し、読み出した連鎖の有無2608が連鎖中の旨を示すものであった場合に、チャンク間連鎖値保持部216から、読み出したコンテンツタイプ2602と関連付けられて記憶されている連鎖値を読み出して連鎖値選択部226に出力し、読み出した連鎖の有無2608が連鎖中の旨を示すものでなかった場合に、初期値保持部224が保持している初期値を読み出して連鎖値選択部226に出力する機能を有する。
 連鎖値記録部2528は、暗号情報蓄積部2530から、チャンクの順に順次暗号ブロック数2605と、コンテンツタイプ2602と、フレーム番号2603を読み出し、演算部222が出力する連鎖値が入力された場合に、入力された連鎖値を、チャンク間連鎖値保持部216かチャンク内連鎖値保持部227のいずれか一方に記録する機能を有する。
 連鎖値記録部2528は、演算部222から入力される連鎖値が、演算部222がチャンクの後尾の暗号ブロックを復号する際に出力されたものである場合には、入力された連鎖値を、暗号情報蓄積部2530から読み出したコンテンツタイプ2602と、フレーム番号2603と関連付けて、チャンク間連鎖値保持部216に上書きして記録し、演算部222から入力される連鎖値が、演算部222がチャンクの後尾の暗号ブロックを復号する際に出力されたものでない場合には、入力された連鎖値を、チャンク内連鎖値保持部227に上書きして記録し、演算判定部2521に暗号ブロック要請信号を出力する機能を有する。
 連鎖値記録部228は、演算部222から入力される連鎖値が、チャンクの後尾の暗号ブロックを復号する際に出力されたものであるか否かを判定するために、入力される連鎖値の数を計測する連鎖値数カウンタを備えている。
 この連鎖値数カウンタは、暗号情報蓄積部2530から暗号ブロック数2605を読み出す毎にリセットされる。
 連鎖値記録部228は、演算部222から連鎖値が入力された場合に、連鎖値カウンタの計測する連鎖値数に1を加えて新たな連鎖値数とし、この新たな連鎖値数が暗号サイズ算出部211から入力される暗号ブロックの数未満のときには、チャンクの後尾の暗号ブロックを復号する際に出力された連鎖値でないと判断し、連鎖値数カウンタの計測する連鎖値の数が暗号サイズ算出部211から入力される暗号ブロックの数と等しいときには、チャンクの後尾の暗号ブロックを復号する際に出力された連鎖値であると判断する。
 暗号エンジン2550は、実施の形態1の暗号エンジン150に対して、演算判定部221を演算判定部2521に変形し、初期値選択部225を初期値選択部2525に変形し、連鎖値記録部228を連鎖値記録部2528に変形したものである。
 第1処理部2501は、チャンク情報取得部2510と、暗号サイズ算出部2511と、連鎖判定部2513と、暗号情報蓄積部2530と、フレーム番号蓄積部2522とから構成され、CPUA111によって制御される。
 第1処理部2501は、コンテンツに含まれる全てのチャンクのチャンクヘッダから、コンテンツの復号に必要な情報をチャンク順に取得し、暗号情報蓄積部2530に蓄積するチャンクデータ蓄積処理を行なう。
 第2処理部2502は、鍵設定部2512と、鍵蓄積部214と、チャンク間連鎖値保持部216と、暗号エンジン2550とから構成され、CPUB112によって制御される。
 第2処理部2502は、第1処理部の暗号情報蓄積部2530からコンテンツの復号に必要な情報を読み出し、コンテンツを復号するコンテンツ復号処理を行なう。
 以上のように構成されたコンテンツ復号処理装置6000の動作の詳細について、以下図面を用いて説明する。
 <動作>
 再生機1000がコンテンツの再生処理を開始すると、CPUA111又はCPUB112は、外部記録媒体137、ハードディスク装置131の内蔵するハードディスク、又は、RAM122に書き込まれている復号対象のコンテンツについて、まず、コンテンツヘッダ301を入力バッファ201に書き込む。
 以後CPUA111又はCPUB112は、コンテンツデータの最初のチャンクから順に、最後のチャンクになるまでチャンクを入力バッファ201に書き込んでいく。
 コンテンツヘッダ301が入力バッファ201に書き込まれると、コンテンツ復号処理装置6000の第1処理部2501は、コンテンツに含まれるチャンクのチャンクヘッダから、コンテンツの復号に必要な情報をチャンク順に取得し、暗号情報蓄積部2530に蓄積する。
 第1処理部2501が、チャンクデータ蓄積処理を終了すると、再びCPUA111又はCPUB112は、コンテンツヘッダ301を入力バッファ201に書き込み、その後、コンテンツデータの最初のチャンクから順に、最後のチャンクになるまでチャンクを入力バッファ201に書き込んでいく。
 2度目にコンテンツヘッダ301が入力バッファに書き込まれると、コンテンツ復号処理装置6000の第2処理部2502はコンテンツ復号処理を開始する。
 図28と図29とは、コンテンツ復号処理装置6000の行うコンテンツ復号処理のフローチャートである。
 コンテンツ復号処理装置6000の第1処理部2501がチャンクヘッダの情報読み取り処理を開始すると、チャンク情報取得部2510はコンテンツヘッダ信号を出力し、演算判定部2521は出力されたコンテンツヘッダ信号を受け取る。
 演算判定部2521は、コンテンツヘッダ信号を受け取ると、入力バッファ201からコンテンツヘッダ301を読み出して出力選択部229に出力し、出力選択部229は、受け取ったコンテンツヘッダ301を出力バッファ202に書き込む。
 CPUA111又はCPUB112によってチャンクが入力バッファ201に書き込まれると、チャンク情報取得部2510は、入力バッファ201が保持するチャンクの開始アドレスを取得し、さらに、チャンクヘッダ311から、チャンクサイズ401と、チャンクデータサイズ405と、コンテンツタイプ402と、フレーム番号403とを取得して(ステップS2800)、チャンクの開始アドレスと、チャンクサイズ401と、チャンクデータサイズ405とを暗号サイズ算出部211に出力し、コンテンツタイプ402と、フレーム番号403とを連鎖判定部2513に出力し、コンテンツタイプ402と、フレーム番号403とを関連付けて暗号情報蓄積部2530に記録する。
 暗号サイズ算出部2511は、チャンク情報取得部210からの、チャンクの開始アドレスと、チャンクサイズ401と、チャンクデータサイズ405とを入力とし、チャンクデータ312の開始アドレスと、パディング313の開始アドレスと、チャンクの終了アドレスと、チャンクデータ312に含まれる暗号ブロックの数を計算する(ステップS2810)。
 連鎖判定部2513は、チャンク情報取得部210から入力されるコンテンツタイプ402と、フレーム番号403との組み合わせが、フレーム番号蓄積部2522に関連付けられて記憶されているか否かを調べて(ステップS2820)、記憶されていない場合には、フレーム番号蓄積部2522に記憶されている、チャンク情報取得部210から入力されるコンテンツタイプと同じコンテンツタイプ2701のフレーム番号2702を更新する。
 暗号サイズ算出部2511は、計算したチャンクデータの開始アドレスと、パディングの開始アドレスと、チャンクの終了アドレスと、暗号ブロックの数とを、暗号情報蓄積部2530に、チャンク情報取得部2510によって記録されたコンテンツタイプと、フレーム番号の組と関連付けて記録し、連鎖判定部2513は、ステップS2820において、記憶されている場合には、暗号連鎖中の旨を、暗号情報蓄積部2530に、チャンク情報取得部2510によって記録されたコンテンツタイプと、フレーム番号の組と関連付けて記録し、記録されていない場合には、暗号連鎖終了の旨を、暗号情報蓄積部2530に、チャンク情報取得部2510によって記録されたコンテンツタイプと、フレーム番号の組と関連付けて記録する(ステップS2840)。
 ステップS2840の処理が終わると、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれるまで、コンテンツ復号処理装置2000は待機する(ステップS2850)。
 所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれた場合には(ステップS2850:Yes)、再びステップS800の処理を開始する。
 所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれなかった場合には(ステップS2850:No)、コンテンツデータ302に後続のチャンクが存在していないと判断し、第1処理部2501は、チャンクデータ蓄積処理を終了する。
 第1処理部2501が、チャンクデータ蓄積処理を終了すると、再びCPUA111又はCPUB112は、コンテンツヘッダ301を入力バッファ201に書き込み、その後、コンテンツデータの最初のチャンクから順に、最後のチャンクになるまでチャンクを入力バッファ201に書き込んでいく。
 2度目にコンテンツヘッダ301が入力バッファに書き込まれると、コンテンツ復号処理装置6000の第2処理部2502はコンテンツ復号処理を開始する。
 コンテンツ復号処理装置2000がコンテンツ復号処理を開始すると、演算判定部2521は、入力バッファ201からコンテンツヘッダ301を読み出して出力選択部229に出力し、出力選択部229は、受け取ったコンテンツヘッダ301を出力バッファ202に書き込む。
 CPUA111又はCPUB112によってチャンクが入力バッファ201に書き込まれると、演算判定部2521は、暗号情報蓄積部2530から、書き込まれたチャンクに対応する、開始アドレス2601と、パディング開始アドレス2606と、チャンク終了アドレス2607とを読み出し、鍵設定部2512は、暗号情報蓄積部2530から、書き込まれたチャンクに対応する、コンテンツタイプ2602を読み出し、初期値選択部2525は、暗号情報蓄積部2530から、書き込まれたチャンクに対応する、連鎖の有無2608と、コンテンツタイプ2602とを読み出し、連鎖値記録部2528は、暗号情報蓄積部2530から、書き込まれたチャンクに対応する、暗号ブロック数2605と、コンテンツタイプ2602と、フレーム番号2603を読み出し、連鎖値数カウンタの計測する連鎖値の数をリセットする(ステップS2900)。
 演算判定部2521は、暗号情報蓄積部2530から、開始アドレス2601と、パディング開始アドレス2606と、チャンク終了アドレス2607とを読み出すと、入力バッファからチャンクヘッダ311とパディング313とを読み出して出力選択部229に出力し、出力選択部229は入力されたチャンクヘッダ311とパディング313とを出力バッファ202に書き込み(ステップS2910)、連鎖値選択部226に初期値選択信号を出力する。
 鍵設定部2512は、暗号情報蓄積部2530からコンテンツタイプ2602を入力されると、鍵蓄積部214に、入力されたコンテンツタイプ2602と関連付けられて記憶されている鍵502と初期値503とを読み出して、読み出した鍵502を鍵保持部223に出力し、読み出した初期値503を初期値保持部224に出力し、鍵蓄積部214は、入力された鍵を上書きして記憶し、初期値保持部224は、入力された初期値を上書きして記憶する(ステップS2915)。
 初期値選択部2525は、暗号情報蓄積部2530から、チャンクの順に順次連鎖の有無2608と、コンテンツタイプ2602の組みを読み出す(ステップS2920)と、読み出した連鎖の有無2608が連鎖中の旨を示すものであった場合に(ステップS2920:Yes)、チャンク間連鎖値保持部216から、読み出したコンテンツタイプ2602と関連付けられて記憶されている連鎖値を読み出して連鎖値選択部226に出力する。
 連鎖値選択部226は、演算判定部2521から初期値選択信号を受け取っているので、初期値選択部2525から入力される連鎖値を選択して、演算部222に出力する(ステップS2925)。
 ステップS2920において、読み出した連鎖の有無2608が連鎖中の旨を示すものでなかった場合に(ステップS2920:No)、初期値保持部224が保持している初期値を読み出して連鎖値選択部226に出力する。
 連鎖値選択部226は、演算判定部2521から初期値選択信号を受け取っているので、初期値選択部2525から初期値が入力されると、入力された初期値を演算部222で使用する連鎖値として演算部222に出力する(ステップS2930)。
 ステップS2925又はステップS2930の処理が終わった後のステップS2935~ステップS2965までの処理は、実施の形態1のコンテンツ復号処理装置2000の動作における、ステップS835~ステップS865までの処理と同じ処理であるので説明を省略する。
 なお、ステップS2935はステップS835、ステップS2940はステップS840、ステップS2945はステップS845、ステップS2950はステップS850、ステップS2955はステップS855、ステップS2965はステップS865に対応する。
 ステップS2965において、第2処理部2502が待機を開始してから所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれた場合には(ステップS2970:Yes)、再びステップS1202の処理を開始する。
 所定時間、例えば1msの間に、CPUA111又はCPUB112によって後続のチャンクが入力バッファ201に書き込まれなかった場合には(ステップS2970:No)、コンテンツデータ302に後続のチャンクが存在していないと判断し、第2処理部2502はコンテンツ復号処理を終了し、コンテンツ復号処理装置6000は、コンテンツ復号処理を終了する。
<補足>
 以上、本発明に係るコンテンツ復号処理装置の一実施形態として、復号対象のデータストリームのデータ構造が、第1種暗号フレーム(例えば暗号化されたビデオフレーム)に属する連鎖する暗号ブロック列からなる暗号チャンク間に、第2種暗号フレーム(例えば暗号化されたオーディオフレーム)に属する暗号ブロック列からなる暗号チャンクが存在しているデータ構造であっても、データストリームを正しく復号することができるコンテンツ復号処理装置について説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態で示したとおりのコンテンツ復号処理装置に限られないことはもちろんである。
(1)実施の形態1において、CPUブロック110はCPUA111とCPUB112の2つのCPUから構成されるとしたが、CPUの数は1つでも構わないし、3つ以上であっても構わないし、デュアルCPUコア機能を持った1つのプロセッサであっても構わないし、クワッドCPUコア機能を持った1つのプロセッサであっても構わない。
(2)実施の形態1において、ROM121はROMであるとしたが、読み書き可能な不揮発性メモリが含まれていても構わない。
(3)実施の形態1において、暗号エンジン150はDSPであるとしたが、必ずしもDSPである必要はなく、例えばCPUA111又はCPUB112がソフトウエアを実行することで実現される構成であっても構わないし、CPUA111、CPUB112以外のCPUがソフトウエアを実行することで実現される構成であっても構わないし、ASICやFPGA等で実現される構成であっても構わない。
 同様に、実施の形態1において、AVデコーダ160はDSPであるとしたが、必ずしもDSPである必要はなく、例えばCPUA111又はCPUB112がソフトウエアを実行することで実現される構成であっても構わないし、CPUA111、CPUB112以外のCPUがソフトウエアを実行することで実現される構成であっても構わないし、ASICやFPGA等で実現される構成であっても構わない。
(4)実施の形態1において、周辺デバイスブロック130は、ハードディスク装置131と、ハードディスク装置インターフェース141と、読取書込装置132と、読取書込装置インターフェース142と、出力装置133と、出力装置インターフェース143と、入力装置134と、入力装置インターフェース144と、通信装置135とから構成されているとしたが、少なくとも、出力装置133と、出力装置インターフェース143と、入力装置134と、入力装置インターフェース144とを備えていれば、これら全てを備えている構成ではなくても構わない。
(5)実施の形態1において、AVデコーダ160は、MPEG2デコード機能、MPEG4デコード機能、MPEG4-AVCデコード機能を有するとしたが、これらの符号化方式で符号化されたデータ以外のデータをデコードする機能を有していても構わない。
(6)実施の形態1において、出力装置133は、LCD(Liquid Crystal Display)と、スピーカとで構成されているとしたが、LCDの替わりに、PDP(Plasma Display Panel)や、有機EL(Electro-Luminescence)ディスプレイや、ブラウン管であっても構わない。
(7)実施の形態1において、再生機1000は、パーソナルコンピュータであるとしたが、コンテンツを復号する機能を持つ物であれば、例えば、汎用コンピュータ、テレビ受像機、DVD再生機、DVD録再生機、BD再生機、BD録再生機、PDA(Personal Digital Assistance)、又は、携帯通信端末等であっても構わない。
(8)実施の形態1において、入力装置134は、ユーザによる操作を受け付けるキーボードと、マウスとから構成されるとしたが、ユーザによる再生機1000の操作コマンドを受け付ける機能を有するものであれば、例えば、ユーザによる操作を受け付ける入力ボタンや、ユーザが操作するリモートコントローラからの信号を受信する受信装置等であっても構わない。
(9)実施の形態1において、復号対象のコンテンツは、暗号化されたVideoESと、暗号化されたAudio1ESと、暗号化されたAudio2ESとが多重化されたものであるとしたが、少なくとも互いに異なる2つのESが多重化されたものであれば、これらのES以外のESが多重化されたものであっても構わない。
 例えば、Video1ESと、Video2ESと、Video3ESと、AudeioESとが多重化されたものである場合等が考えられる。
 また、暗号化されたVideoESは、撮影された映像がMPEG4-AVC方式で符号化され、符号化されることで得られた多数のVideoフレームのそれぞれを、暗号連鎖ブロック方式で暗号化されることによって得られたものであるとしたが、例えば、MPEG2、MPEG4、Motion JPEG(Joint Photographic Experts Group)等のMPEG4-AVC方式以外の方式で符号化されていても構わない。
 さらに、暗号化されたAudio1ES、Audio2ESは、撮影された音声がMPEG4-AVC方式で符号化され、符号化されることで得られた多数のAudioフレームのそれぞれを、暗号連鎖ブロック方式で暗号化されることによって得られたものであるとしたが、例えば、MPEG2、MPEG4等のMPEG4-AVC方式以外の方式で符号化されていても構わない。
(10)実施の形態1において、チャンクヘッダの構成要素のそれぞれは、ビット長と出現順番が固定であるとしたが、ビット長を示す情報があればビット長は固定でなくても構わないし、順番を示す情報があれば順番は固定でなくても構わない。
(11)実施の形態1において、チャンクデータは3つの暗号ブロックからなるとしたが、3つ以外の数の暗号ブロックからなるとしても構わない。
(12)実施の形態1において、暗号ブロックは、AES暗号方式を用いてCTRモードで暗号連鎖化されたものであるとしているが、例えば、CBC(Cipher Block Chaining)モードといったCRTモード以外のモードで暗号化されたものであっても構わないし、例えば、DES(Data Encryption Standard)暗号方式といったAES暗号方式以外の暗号方式で暗号化されたものであっても構わない。
 また、暗号ブロックのビット長は128ビット、連鎖値のビット長は128ビット、鍵のビット長は128ビットであるとしたが、これらのビット長は、暗号ブロックの暗号方式に応じて、128ビット以外のビット長であるとしても構わない。
 例えば、暗号ブロックの暗号方式がDES暗号方式である場合には、暗号ブロックのビット長は56ビット、連鎖値のビット長は56ビット、鍵のビット長は56ビットとなる。
(13)実施の形態1において、演算部222は、AES暗号回路701を備える構成としているが、暗号ブロックの暗号化方式に応じて、例えばDES暗号といったAES暗号以外の暗号方式の暗号回路であっても構わない。
(14)実施の形態1において、インクリメンタ703は入力される連鎖値のうち、下位32ビットの部分のみを1だけインクリメントして次の連鎖値を算定するとしたが、例えば、下位64ビットの部分のみを1だけインクリメントして次の連鎖値を算定するといったように、下位32ビット以外の部分を1だけインクリメントするとしても構わないし、例えば、2や-1といった1以外の数をインクリメントするとしても構わない。
(15)実施の形態1において、復号対象のコンテンツのフォーマットについて図を用いて説明したが、復号対象のコンテンツのファイル形式は、説明したフォーマットに違反していない形式の、例えば、ASF(Advanced Streaming Format)形式や、MP4ファイル形式や、QuickTimeファイル形式である場合が考えられる。
(16)実施の形態1において、暗号に使用する鍵は、コンテンツタイプ毎に用意されている例を示したが、例えば、基本となる鍵を1つ用意しておいて、コンテンツタイプ毎に特定の処理を施すことで、各コンテンツタイプ用の鍵を生成するとしてもよい。
(17)実施の形態1において、CPUブロック110は2つのCPUからなり、メモリブロックはROMとRAMとからなり、暗号エンジン150はDSPからなり、AVデコーダ160はDSPからなる構成としたが、これ以外の構成、例えば、CPUブロック110と、メモリブロック120と、周辺デバイスブロック130と、暗号エンジン150と、AVデコーダ160と、バスライン140の一部とが1つの集積回路で実現されている構成であっても構わない。
 図30は、再生機1000のブロック構成を示すブロック図であって、再生機1000のうち、CPUブロック110と、メモリブロック120と、周辺デバイスブロック130と、暗号エンジン150と、AVデコーダ160と、バスライン140の一部とが1つの集積回路10で実現されていることを示している。
(18)実施の形態4において、復号対象のコンテンツは、鍵情報2205がチャンクヘッダ2200に含まれるデータフォーマットであるとしたが、鍵情報2205がチャンクデータ2220を構成する暗号ブロックに含まれるとしても構わない。
 このようなデータフォーマットのコンテンツの場合には、チャンク情報取得部2210はチャンクデータの暗号ブロックから鍵情報を取得し、鍵生成部2101は、チャンク情報取得部2210から鍵情報を取得する構成となる。
 鍵生成部2101は、鍵情報が暗号化されている場合には、暗号化された鍵情報を復号してから鍵を作成する。
 同様に、実施の形態4において、復号対象のコンテンツは、初期値情報2206がチャンクヘッダ2200に含まれるデータフォーマットであるとしたが、初期値情報2206がチャンクデータ2220を構成する暗号ブロックに含まれるとしても構わない。
 このようなデータフォーマットのコンテンツの場合には、チャンク情報取得部2210はチャンクデータの暗号ブロックから初期値情報を取得し、鍵生成部2101は、チャンク情報取得部2210から初期値情報を取得する構成となる。
 鍵生成部2101は、初期値情報が暗号化されている場合には、暗号化された初期値情報を復号してから鍵を作成する。
(19)実施の形態4において、鍵情報2205は鍵を生成するための情報であり、初期値情報2206は初期値を生成するための情報であるとしたが、鍵情報2205は鍵そのものであるとしても構わないし、初期値情報2206は初期値そのものであるとしても構わない。
(20)実施の形態4において、鍵情報2205は、各暗号化されたESに属する全てのフレームで共通のものを用いても構わないし、チャンク単位で互いに異なるものを用いても構わないし、さらには、鍵情報2205がチャンクデータ2220を構成する暗号ブロックに含まれている場合であれば、1つのチャンク内に複数の鍵情報2205が存在し、同一のチャンク内の暗号ブロックが、互いに異なる鍵情報2205を用いても構わない。
 同様に、実施の形態4において、初期値情報2206は、各暗号化されたESに属する全てのフレームで共通のものを用いても構わないし、チャンク単位で互いに異なるものを用いても構わないし、さらには、初期値情報2206がチャンクデータ2220を構成する暗号ブロックに含まれている場合であれば、1つのチャンク内に複数の鍵情報2205が存在し、同一のチャンク内の暗号ブロックが、互いに異なる鍵情報2205を用いても構わない。
(21)実施の形態5において、第1処理部2501はCPUA111によって制御され、第2処理部2502はCPUB112によって制御されるとしたが、これ以外の構成、例えば、第1処理部2501はCPUA111とCPUB112とによって制御されるとしても構わないし、第2処理部2502はCPUA111とCPUB112とによって制御されるとしても構わない。
 さらには、CPUブロック110が、3つ以上のCPUから構成される場合に、第1処理部2501は3つ以上のCPUによって制御されるとしても構わないし、第2処理部2502は3つ以上のCPUによって制御されるとしても構わない。
 また、CPUブロックに、取り扱う情報を秘匿する機能を有するセキュアCPUが存在し、そのセキュアCPUが第2処理部2502によって制御されるようにすることで、鍵蓄積部214が記憶する鍵と初期値とを第三者に知られないようにするとしても構わない。
(22)実施の形態5において、第1処理部2501がチャンクデータ蓄積処理を終了した後に、第2処理部2502がコンテンツ復号処理を開始する例について説明したが、第1処理部2501によるチャンクデータ蓄積処理が最後まで終了していなくても、暗号情報蓄積部2530に一部のチャンクの情報が記憶された状態で、第2処理部2502がコンテンツ復号処理を開始するとしても構わない。
(23)実施の形態1において、外部記録媒体137とは、DVD、DVD-R、DVD-RAM、BD、BD-R、BD-RE等であるとしたが、読み取り可能な記録媒体であれば、例えば、CD(Compact Disc)、CD-R、SDカード等であっても構わない。
 また、読取書込装置132は、DVD、DVD-R、BD、BD-R、BD-RE等へのデータの書込みや読取りをすることができるとしたが、データの書込みや読取が可能尾な記録媒体であれば、例えば、CD、CD-R、SDカード等へのデータの書込みや読取りをすることができても構わない。
(24)実施の形態1において、外部伝送媒体136とは、光通信回線、電話通信回線、放送波等であるとしたが、これらの形態は、デジタル信号を伝送することができる形態であれば、例えば、有線の形態であったり、無線の形態であったり、赤外線の形態であったりしても構わない。
 本発明は、暗号化されたデジタルデータを復号する復号処理装置に広く利用することができる。
 150 暗号エンジン
 201 入力バッファ
 202 出力バッファ
 210 チャンク情報取得部
 211 暗号サイズ算出部
 212 鍵設定部
 213 連鎖判定部
 214 鍵蓄積部
 216 チャンク間連鎖値保持部
 221 演算判定部
 222 演算部
 223 鍵保持部
 224 初期値保持部
 225 初期値選択部
 226 連鎖値選択部
 227 チャンク内連鎖値保持部
 228 連鎖値記録部
 229 出力選択部

Claims (6)

  1.  複数種類に分類されるフレームのそれぞれが連鎖暗号ブロック方式で、連鎖する暗号ブロック列からなるチャンクを複数含む形態で暗号化され、複数の暗号フレームそれぞれを分割し、第1種暗号フレームに属する暗号チャンクと、第2種暗号フレームに属する暗号チャンクとが混在するように、ストリームライン化してなるデータストリームを復号するコンテンツ復号処理装置であって、
     連鎖値を用いて前記データストリームに含まれる暗号ブロックを順に復号し、暗号ブロックを復号する毎に新たな連鎖値を算定する復号部と、
     暗号フレームの識別情報と連鎖値とを関連付けて記憶するための連鎖値保持部と、
     前記復号部によってチャンクの後尾の暗号ブロックが復号された場合に、前記復号部によって復号された暗号ブロックの属する暗号フレームの識別情報と、当該復号された暗号ブロックの復号の際に前記復号部によって算定された連鎖値とを関連付けて前記連鎖値保持部に記録する連鎖値記録部とを備え、
     前記復号部は、前記連鎖値保持部を参照して、復号する暗号ブロックがチャンクの先頭の暗号ブロックである場合において、前記復号する暗号ブロックが属する暗号フレームの一部を既に復号していたときに、当該暗号ブロックを復号する際に用いる連鎖値として、当該暗号フレームの暗号ブロックのうち、最後に復号した暗号ブロックの復号の際に算定した連鎖値を用いることを特徴とするコンテンツ復号処理装置。
  2.  前記連鎖値保持部は、連鎖値を記憶するためのチャンク内連鎖値保持部を含み、
     前記連鎖値記録部は、前記復号部によって暗号ブロックが復号された場合において、チャンクの後尾でない暗号ブロックが復号されたときに、前記復号部で算定された連鎖値を前記チャンク内連鎖値保持部に記憶されている連鎖値に上書きして記録し、
     前記復号部は、復号する暗号ブロックがチャンクの先頭の暗号ブロックでない場合に、前記チャンク内連鎖値保持部に記録されている連鎖値を用いて暗号ブロックを復号することを特徴とする
     請求項1記載のコンテンツ復号処理装置。
  3.  前記連鎖値記録部は、暗号フレームの識別情報と連鎖値とを関連付けて前記連鎖値保持部に記録する場合に、暗号フレーム種毎に、暗号フレームを示す情報と連鎖値とを前記連鎖値保持部に上書きして記録することを特徴とする
     請求項1記載のコンテンツ復号処理装置。
  4.  前記復号部の復号対象である暗号ブロックが所定のビット数に足りない場合に、当該暗号ブロックが前記所定のビット数となるように、当該暗号ブロックに付与データを付与するデータ付与部と、
     前記復号部によって復号された暗号ブロックを記憶するための復号データ保持部と、
     前記復号部によって復号された暗号ブロックの一部分を前記復号データ保持部に記録する復号データ記録部とをさらに備え、
     前記復号部の復号対象である暗号ブロックが前記所定のビット数に足りない場合に、前記データ付与部は、前記復号対象である暗号ブロックに付与データを付与して、前記所定のビット数の合成暗号ブロックを生成し、前記復号部は、前記復号対象の暗号ブロックの代わりに前記合成暗号ブロックを復号し、前記復号データ記録部は、前記復号部によって復号された合成暗号ブロックのうち、前記データ付与部によって付与された付与データの部分が前記復号部によって復号されることで得られた部分以外の部分を前記復号データ保持部に記録することを特徴とする
     請求項1記載のコンテンツ復号処理装置。
  5.  暗号フレームの識別情報と連鎖値とを関連付けて記憶するための連鎖値保持部を備えるコンテンツ復号処理装置に、複数種類に分類されるフレームのそれぞれが連鎖暗号ブロック方式で、連鎖する暗号ブロック列からなるチャンクを複数含む形態で暗号化され、複数の暗号フレームそれぞれを分割し、第1種暗号フレームに属する暗号チャンクと、第2種暗号フレームに属する暗号チャンクとが混在するように、ストリームライン化してなるデータストリームを復号させるコンテンツ復号処理方法であって、
     前記コンテンツ復号処理装置の復号部が、連鎖値を用いて前記データストリームに含まれる暗号ブロックを順に復号し、暗号ブロックを復号する毎に新たな連鎖値を算定する復号ステップと、
     前記コンテンツ復号処理装置の連鎖値記録部が、前記復号部によってチャンクの後尾の暗号ブロックが復号された場合に、前記復号ステップによって復号された暗号ブロックの属する暗号フレームの識別情報と、当該復号された暗号ブロックの復号の際に前記復号部によって算定された連鎖値とを関連付けて前記連鎖値保持部に記録する連鎖値記録ステップとを備え、
     前記復号ステップは、前記連鎖値保持部を参照して、復号する暗号ブロックがチャンクの先頭の暗号ブロックである場合において、前記復号する暗号ブロックが属する暗号フレームの一部を既に復号していたときに、当該暗号ブロックを復号する際に用いる連鎖値として、当該暗号フレームの暗号ブロックのうち、最後に復号した暗号ブロックの復号の際に算定した連鎖値を用いることを特徴とするコンテンツ復号処理方法。
  6.  複数種類に分類されるフレームのそれぞれが連鎖暗号ブロック方式で、連鎖する暗号ブロック列からなるチャンクを複数含む形態で暗号化され、複数の暗号フレームそれぞれを分割し、第1種暗号フレームに属する暗号チャンクと、第2種暗号フレームに属する暗号チャンクとが混在するように、ストリームライン化してなるデータストリームを復号する集積回路であって、
     連鎖値を用いて前記データストリームに含まれる暗号ブロックを順に復号し、暗号ブロックを復号する毎に新たな連鎖値を算定する復号部と、
     暗号フレームの識別情報と連鎖値とを関連付けて記憶するための連鎖値保持部と、
     前記復号部によってチャンクの後尾の暗号ブロックが復号された場合に、前記復号部によって復号された暗号ブロックの属する暗号フレームの識別情報と、当該復号された暗号ブロックの復号の際に前記復号部によって算定された連鎖値とを関連付けて前記連鎖値保持部に記録する連鎖値記録部とを備え、
     前記復号部は、前記連鎖値保持部を参照して、復号する暗号ブロックがチャンクの先頭の暗号ブロックである場合において、前記復号する暗号ブロックが属する暗号フレームの一部を既に復号していたときに、当該暗号ブロックを復号する際に用いる連鎖値として、当該暗号フレームの暗号ブロックのうち、最後に復号した暗号ブロックの復号の際に算定した連鎖値を用いることを特徴とする集積回路。
PCT/JP2009/006033 2008-11-13 2009-11-12 コンテンツ復号処理装置、コンテンツ復号処理方法及び集積回路 WO2010055658A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010537695A JPWO2010055658A1 (ja) 2008-11-13 2009-11-12 コンテンツ復号処理装置、コンテンツ復号処理方法及び集積回路
CN2009801404601A CN102224704A (zh) 2008-11-13 2009-11-12 内容解密处理装置、内容解密处理方法及集成电路
US13/063,595 US20110170687A1 (en) 2008-11-13 2009-11-12 Content decoding apparatus, content decoding method and integrated circuit
EP09825912A EP2352251A1 (en) 2008-11-13 2009-11-12 Content decoding apparatus, content decoding method and integrated circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-290528 2008-11-13
JP2008290528 2008-11-13

Publications (1)

Publication Number Publication Date
WO2010055658A1 true WO2010055658A1 (ja) 2010-05-20

Family

ID=42169803

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/006033 WO2010055658A1 (ja) 2008-11-13 2009-11-12 コンテンツ復号処理装置、コンテンツ復号処理方法及び集積回路

Country Status (5)

Country Link
US (1) US20110170687A1 (ja)
EP (1) EP2352251A1 (ja)
JP (1) JPWO2010055658A1 (ja)
CN (1) CN102224704A (ja)
WO (1) WO2010055658A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8094814B2 (en) * 2005-04-05 2012-01-10 Broadcom Corporation Method and apparatus for using counter-mode encryption to protect image data in frame buffer of a video compression system
ES2935410T3 (es) 2007-01-05 2023-03-06 Divx Llc Sistema de distribución de vídeo que incluye reproducción progresiva
WO2011068668A1 (en) 2009-12-04 2011-06-09 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8787570B2 (en) 2011-08-31 2014-07-22 Sonic Ip, Inc. Systems and methods for automatically genenrating top level index files
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US9008308B2 (en) * 2012-02-08 2015-04-14 Vixs Systems, Inc Container agnostic decryption device and methods for use therewith
CN102867153B (zh) * 2012-08-30 2014-04-09 腾讯科技(深圳)有限公司 一种加密、解密视频文件的方法、装置及移动终端
US8769306B1 (en) * 2012-09-05 2014-07-01 Amazon Technologies, Inc. Protecting content with initialization vector manipulation
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9570112B2 (en) * 2013-12-20 2017-02-14 Opentv, Inc. Multiple views recording
US9397833B2 (en) 2014-08-27 2016-07-19 International Business Machines Corporation Receipt, data reduction, and storage of encrypted data
US9397832B2 (en) 2014-08-27 2016-07-19 International Business Machines Corporation Shared data encryption and confidentiality
CN107111477B (zh) 2015-01-06 2021-05-14 帝威视有限公司 用于编码内容和在设备之间共享内容的系统和方法
TW201919361A (zh) * 2017-11-09 2019-05-16 張英輝 以雜文加強保護之區塊加密及其解密之方法
US11263328B2 (en) * 2018-09-13 2022-03-01 Vmware, Inc. Encrypted log aggregation
JP7440065B2 (ja) * 2020-04-03 2024-02-28 国立大学法人京都大学 ブロックチェーンネットワークシステム
CN112714120B (zh) * 2020-12-24 2021-10-29 四川长虹电器股份有限公司 一种链式数据加密、解密方法、加密数据的分离式存储方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000295212A (ja) 1999-04-01 2000-10-20 Hitachi Ltd 暗号データの復号化処理方法および装置
JP2002311827A (ja) * 2001-04-18 2002-10-25 Matsushita Electric Works Ltd 情報処理装置
JP2004109177A (ja) * 2002-09-13 2004-04-08 Matsushita Electric Ind Co Ltd コンテンツデータ記録媒体、コンテンツデータ復号装置、コンテンツデータ暗号化装置、コンテンツデータ復号方法及びコンテンツデータ暗号化方法
JP2004318154A (ja) * 2003-04-14 2004-11-11 Sony Electronics Inc ブロック暗号の暗号化法を用いたデジタルコンテンツの保護関連出願本出願は、2003年4月14日に出願された米国仮特許出願番号60/462,987号についての優先権を主張する。著作権表示/許諾この明細書の開示内容の一部は、著作権保護の対象となるマテリアルを含む。著作権者は、この明細書が特許商標庁への特許出願又は記録であると認められるファックスコピー又は特許開示に対しては異議を唱えないが、それ以外のあらゆる全ての著作権の権利を保有する。以下の表示は、後述するソフトウェア及びデータ、並びに添付の図面に適用される。著作権(c)2003:全ての著作権はソニーエレクトロニクスインク社に帰属する(Copyright(c)2003,SonyElectronics,Inc.,AllRightsReserved)。
WO2005117411A1 (ja) * 2004-05-27 2005-12-08 Sony Corporation 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム
WO2006051754A1 (ja) * 2004-11-11 2006-05-18 Matsushita Electric Industrial Co., Ltd. 機密情報処理装置
JP2006229863A (ja) * 2005-02-21 2006-08-31 Seiko Epson Corp 暗号化/復号化装置、通信コントローラ及び電子機器
JP2006331483A (ja) * 2005-05-24 2006-12-07 Matsushita Electric Ind Co Ltd 復号装置、ストリーム録画再生装置、および暗号化ストリームの復号方法
JP2007189443A (ja) * 2006-01-12 2007-07-26 Matsushita Electric Ind Co Ltd 携帯端末、暗号化コンテンツ再生方法及びそれに用いられる平文データ生成方法
JP2008199572A (ja) * 2007-01-15 2008-08-28 Matsushita Electric Ind Co Ltd 機密情報処理機器、機密情報処理装置、及び機密情報処理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8077867B2 (en) * 2007-01-15 2011-12-13 Panasonic Corporation Confidential information processing apparatus, confidential information processing device, and confidential information processing method

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000295212A (ja) 1999-04-01 2000-10-20 Hitachi Ltd 暗号データの復号化処理方法および装置
JP2002311827A (ja) * 2001-04-18 2002-10-25 Matsushita Electric Works Ltd 情報処理装置
JP2004109177A (ja) * 2002-09-13 2004-04-08 Matsushita Electric Ind Co Ltd コンテンツデータ記録媒体、コンテンツデータ復号装置、コンテンツデータ暗号化装置、コンテンツデータ復号方法及びコンテンツデータ暗号化方法
JP2004318154A (ja) * 2003-04-14 2004-11-11 Sony Electronics Inc ブロック暗号の暗号化法を用いたデジタルコンテンツの保護関連出願本出願は、2003年4月14日に出願された米国仮特許出願番号60/462,987号についての優先権を主張する。著作権表示/許諾この明細書の開示内容の一部は、著作権保護の対象となるマテリアルを含む。著作権者は、この明細書が特許商標庁への特許出願又は記録であると認められるファックスコピー又は特許開示に対しては異議を唱えないが、それ以外のあらゆる全ての著作権の権利を保有する。以下の表示は、後述するソフトウェア及びデータ、並びに添付の図面に適用される。著作権(c)2003:全ての著作権はソニーエレクトロニクスインク社に帰属する(Copyright(c)2003,SonyElectronics,Inc.,AllRightsReserved)。
WO2005117411A1 (ja) * 2004-05-27 2005-12-08 Sony Corporation 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム
WO2006051754A1 (ja) * 2004-11-11 2006-05-18 Matsushita Electric Industrial Co., Ltd. 機密情報処理装置
JP2006229863A (ja) * 2005-02-21 2006-08-31 Seiko Epson Corp 暗号化/復号化装置、通信コントローラ及び電子機器
JP2006331483A (ja) * 2005-05-24 2006-12-07 Matsushita Electric Ind Co Ltd 復号装置、ストリーム録画再生装置、および暗号化ストリームの復号方法
JP2007189443A (ja) * 2006-01-12 2007-07-26 Matsushita Electric Ind Co Ltd 携帯端末、暗号化コンテンツ再生方法及びそれに用いられる平文データ生成方法
JP2008199572A (ja) * 2007-01-15 2008-08-28 Matsushita Electric Ind Co Ltd 機密情報処理機器、機密情報処理装置、及び機密情報処理方法

Also Published As

Publication number Publication date
CN102224704A (zh) 2011-10-19
JPWO2010055658A1 (ja) 2012-04-12
EP2352251A1 (en) 2011-08-03
US20110170687A1 (en) 2011-07-14

Similar Documents

Publication Publication Date Title
WO2010055658A1 (ja) コンテンツ復号処理装置、コンテンツ復号処理方法及び集積回路
US8077867B2 (en) Confidential information processing apparatus, confidential information processing device, and confidential information processing method
JP5875441B2 (ja) データを暗号化する装置及び方法
JP2003115830A (ja) 情報記録装置及び情報記録再生装置
JP2005505069A (ja) メモリ暗号化
WO2006112114A1 (ja) データ暗号化装置及びデータ暗号化方法
JP2002244929A (ja) ディジタルコピー方法及びディジタルコンテンツの記録装置
KR101117588B1 (ko) 암호화 표시정보를 갖는 기록매체
JP2003152703A (ja) 暗号化装置、暗号化方法、復号化装置、復号化方法、暗号化復号化装置及び暗号化復号化方法
JP5080908B2 (ja) 機密情報処理機器、機密情報処理装置、及び機密情報処理方法
JP5060079B2 (ja) 暗号処理プログラム
JP2004070049A (ja) データの暗号化方法及び装置、データの復号化方法及び装置、プログラム
JP2001142396A (ja) 暗号化装置とその方法、暗号復号化装置とその方法および通信システム
JP6881111B2 (ja) 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム
EP1550928A1 (en) Block encoding method and block encoding/decoding circuit
KR20080112082A (ko) 데이터 암호화방법, 암호화데이터 재생방법
JP2006330126A (ja) 暗号化処理方法、および復号化処理方法
JP2007141095A (ja) データ処理装置およびデータ処理方法
JP3861790B2 (ja) データ管理システム、データ管理方法、クライアント端末、及びサーバ装置
WO2021044465A1 (ja) 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造
JP5403708B2 (ja) 情報処理装置、データ処理方法およびプログラム
JP2005202048A (ja) 暗号通信システム、そのシステムに使用される暗号装置および復号装置、暗号化方法および復号化方法、暗号化プログラムおよび復号化プログラム、ならびに記録媒体
JP2004109177A (ja) コンテンツデータ記録媒体、コンテンツデータ復号装置、コンテンツデータ暗号化装置、コンテンツデータ復号方法及びコンテンツデータ暗号化方法
JP4371663B2 (ja) 情報処理装置、情報処理方法
JP2011041102A (ja) 圧縮暗号化装置、復号伸長装置、それらの方法及びプログラム

Legal Events

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

Ref document number: 200980140460.1

Country of ref document: CN

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

Ref document number: 09825912

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2010537695

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13063595

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2009825912

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE