WO2010055658A1 - コンテンツ復号処理装置、コンテンツ復号処理方法及び集積回路 - Google Patents
コンテンツ復号処理装置、コンテンツ復号処理方法及び集積回路 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/30—Compression, 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
Description
以下、本発明に係るコンテンツ復号処理装置の一実施形態として、暗号連鎖ブロック方式で暗号化されたコンテンツを復号するコンテンツ復号処理装置について説明する。
<再生機1000>
図1は、本実施の形態に係るコンテンツ復号処理装置2000を備えた再生機1000のブロック構成を示すブロック図である。
図2は、本実施の形態1に係るコンテンツ復号処理装置2000が復号するコンテンツ300のデータ構造を示すデータ構造図である。
図4は、再生機1000を用いて機能的に実現される、コンテンツ復号処理装置2000の機能構成を示すブロック図である。
再生機1000がコンテンツの再生処理を開始すると、CPUA111又はCPUB112は、外部記録媒体137、ハードディスク装置131の内蔵するハードディスク、又は、RAM122に書き込まれている復号対象のコンテンツについて、まず、コンテンツヘッダ301を入力バッファ201に書き込む。
例として、コンテンツタイプがVideoでフレーム番号が10である第1チャンクと、同じくコンテンツタイプがVideoでフレーム番号が10であって、第1チャンクに連続するチャンクである第2チャンクとの間に、コンテンツタイプがAudio1でフレーム番号が5である第3チャンクが存在している場合において、コンテンツ復号処理装置2000は、第2フレームの先頭の暗号ブロックを正しい連鎖値を用いて正しく復号することができることを説明する。
<実施の形態2>
以下、本発明に係るコンテンツ復号処理装置の一実施形態として、暗号連鎖ブロック方式で暗号化されたコンテンツを復号するコンテンツ復号処理装置について説明する。
<コンテンツのデータ構造>
本実施の形態2に係るコンテンツ復号処理装置3000が復号するコンテンツは、実施の形態1のコンテンツ300を、実施の形態1のチャンクヘッダ311に存在していたコンテンツタイプ402と、フレーム番号403とに対応する情報が、コンテンツヘッダに存在しているように変形したコンテンツである。
図11は、コンテンツ復号処理装置3000の機能構成を示すブロック図である。
再生機1000がコンテンツの再生処理を開始すると、CPUA111又はCPUB112は、外部記録媒体137、ハードディスク装置131の内蔵するハードディスク、又は、RAM122に書き込まれている復号対象のコンテンツについて、まず、コンテンツヘッダを入力バッファ201に書き込む。
<実施の形態3>
以下、本発明に係るコンテンツ復号処理装置の一実施形態として、暗号連鎖ブロック方式で暗号化されたコンテンツを復号するコンテンツ復号処理装置について説明する。
<コンテンツのデータ構造>
本実施の形態3に係るコンテンツ復号処理装置4000が復号するコンテンツは、実施の形態1の暗号ブロックが、連続する2つのチャンクに分割されて構成されるように変形されたデータフォーマットとなっている。
図14は、コンテンツ復号処理装置4000の機能構成を示すブロック図である。
以下図面を用いて、端数処理制御部1300が、前処理部1301と、演算部222と、後処理部1302とを用いて行う端数処理について説明する。
再生機がコンテンツの再生処理を開始すると、CPUA111又はCPUB112は、外部記録媒体137、ハードディスク装置131の内蔵するハードディスク、又は、RAM122に書き込まれている復号対象のコンテンツについて、まず、コンテンツヘッダ301を入力バッファ201に書き込む。
前処理部1301は、端数処理制御部1300から受け取った後尾の暗号ブロックのサイズが128ビットである場合、又は、演算判定部221から入力バッファ201が保持するチャンクの後尾の暗号ブロック以外の暗号ブロックを受け取った場合には、後続の暗号ブロックが分割されていないと判断し(ステップS2025:No)、演算判定部221から受け取った暗号ブロックをそのまま演算部222に出力する。
<実施の形態4>
以下、本発明に係るコンテンツ復号処理装置の一実施形態として、暗号連鎖ブロック方式で暗号化されたコンテンツを復号するコンテンツ復号処理装置について説明する。
<コンテンツのデータ構造>
本実施の形態4に係るコンテンツ復号処理装置5000が復号するコンテンツは、実施の形態1のコンテンツ300を、実施の形態1のチャンクヘッダ311に、新たに鍵情報2205と、初期値情報2206とが加わっているように変形したコンテンツである。
図22は、コンテンツ復号処理装置5000の機能構成を示すブロック図である。
再生機1000がコンテンツの再生処理を開始すると、CPUA111又はCPUB112は、外部記録媒体137、ハードディスク装置131の内蔵するハードディスク、又は、RAM122に書き込まれている復号対象のコンテンツについて、まず、コンテンツヘッダを入力バッファ201に書き込む。
<実施の形態5>
以下、本発明に係るコンテンツ復号処理装置の一実施形態として、暗号連鎖ブロック方式で暗号化されたコンテンツを復号するコンテンツ復号処理装置について説明する。
<コンテンツ復号処理装置6000>
図25は、コンテンツ復号処理装置6000の機能構成を示すブロック図である。
再生機1000がコンテンツの再生処理を開始すると、CPUA111又はCPUB112は、外部記録媒体137、ハードディスク装置131の内蔵するハードディスク、又は、RAM122に書き込まれている復号対象のコンテンツについて、まず、コンテンツヘッダ301を入力バッファ201に書き込む。
<補足>
以上、本発明に係るコンテンツ復号処理装置の一実施形態として、復号対象のデータストリームのデータ構造が、第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等で実現される構成であっても構わない。
(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が多重化されたものであっても構わない。
(10)実施の形態1において、チャンクヘッダの構成要素のそれぞれは、ビット長と出現順番が固定であるとしたが、ビット長を示す情報があればビット長は固定でなくても構わないし、順番を示す情報があれば順番は固定でなくても構わない。
(11)実施の形態1において、チャンクデータは3つの暗号ブロックからなるとしたが、3つ以外の数の暗号ブロックからなるとしても構わない。
(12)実施の形態1において、暗号ブロックは、AES暗号方式を用いてCTRモードで暗号連鎖化されたものであるとしているが、例えば、CBC(Cipher Block Chaining)モードといったCRTモード以外のモードで暗号化されたものであっても構わないし、例えば、DES(Data Encryption Standard)暗号方式といったAES暗号方式以外の暗号方式で暗号化されたものであっても構わない。
(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つの集積回路で実現されている構成であっても構わない。
(18)実施の形態4において、復号対象のコンテンツは、鍵情報2205がチャンクヘッダ2200に含まれるデータフォーマットであるとしたが、鍵情報2205がチャンクデータ2220を構成する暗号ブロックに含まれるとしても構わない。
(19)実施の形態4において、鍵情報2205は鍵を生成するための情報であり、初期値情報2206は初期値を生成するための情報であるとしたが、鍵情報2205は鍵そのものであるとしても構わないし、初期値情報2206は初期値そのものであるとしても構わない。
(20)実施の形態4において、鍵情報2205は、各暗号化されたESに属する全てのフレームで共通のものを用いても構わないし、チャンク単位で互いに異なるものを用いても構わないし、さらには、鍵情報2205がチャンクデータ2220を構成する暗号ブロックに含まれている場合であれば、1つのチャンク内に複数の鍵情報2205が存在し、同一のチャンク内の暗号ブロックが、互いに異なる鍵情報2205を用いても構わない。
(21)実施の形態5において、第1処理部2501はCPUA111によって制御され、第2処理部2502はCPUB112によって制御されるとしたが、これ以外の構成、例えば、第1処理部2501はCPUA111とCPUB112とによって制御されるとしても構わないし、第2処理部2502はCPUA111とCPUB112とによって制御されるとしても構わない。
(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カード等であっても構わない。
(24)実施の形態1において、外部伝送媒体136とは、光通信回線、電話通信回線、放送波等であるとしたが、これらの形態は、デジタル信号を伝送することができる形態であれば、例えば、有線の形態であったり、無線の形態であったり、赤外線の形態であったりしても構わない。
201 入力バッファ
202 出力バッファ
210 チャンク情報取得部
211 暗号サイズ算出部
212 鍵設定部
213 連鎖判定部
214 鍵蓄積部
216 チャンク間連鎖値保持部
221 演算判定部
222 演算部
223 鍵保持部
224 初期値保持部
225 初期値選択部
226 連鎖値選択部
227 チャンク内連鎖値保持部
228 連鎖値記録部
229 出力選択部
Claims (6)
- 複数種類に分類されるフレームのそれぞれが連鎖暗号ブロック方式で、連鎖する暗号ブロック列からなるチャンクを複数含む形態で暗号化され、複数の暗号フレームそれぞれを分割し、第1種暗号フレームに属する暗号チャンクと、第2種暗号フレームに属する暗号チャンクとが混在するように、ストリームライン化してなるデータストリームを復号するコンテンツ復号処理装置であって、
連鎖値を用いて前記データストリームに含まれる暗号ブロックを順に復号し、暗号ブロックを復号する毎に新たな連鎖値を算定する復号部と、
暗号フレームの識別情報と連鎖値とを関連付けて記憶するための連鎖値保持部と、
前記復号部によってチャンクの後尾の暗号ブロックが復号された場合に、前記復号部によって復号された暗号ブロックの属する暗号フレームの識別情報と、当該復号された暗号ブロックの復号の際に前記復号部によって算定された連鎖値とを関連付けて前記連鎖値保持部に記録する連鎖値記録部とを備え、
前記復号部は、前記連鎖値保持部を参照して、復号する暗号ブロックがチャンクの先頭の暗号ブロックである場合において、前記復号する暗号ブロックが属する暗号フレームの一部を既に復号していたときに、当該暗号ブロックを復号する際に用いる連鎖値として、当該暗号フレームの暗号ブロックのうち、最後に復号した暗号ブロックの復号の際に算定した連鎖値を用いることを特徴とするコンテンツ復号処理装置。 - 前記連鎖値保持部は、連鎖値を記憶するためのチャンク内連鎖値保持部を含み、
前記連鎖値記録部は、前記復号部によって暗号ブロックが復号された場合において、チャンクの後尾でない暗号ブロックが復号されたときに、前記復号部で算定された連鎖値を前記チャンク内連鎖値保持部に記憶されている連鎖値に上書きして記録し、
前記復号部は、復号する暗号ブロックがチャンクの先頭の暗号ブロックでない場合に、前記チャンク内連鎖値保持部に記録されている連鎖値を用いて暗号ブロックを復号することを特徴とする
請求項1記載のコンテンツ復号処理装置。 - 前記連鎖値記録部は、暗号フレームの識別情報と連鎖値とを関連付けて前記連鎖値保持部に記録する場合に、暗号フレーム種毎に、暗号フレームを示す情報と連鎖値とを前記連鎖値保持部に上書きして記録することを特徴とする
請求項1記載のコンテンツ復号処理装置。 - 前記復号部の復号対象である暗号ブロックが所定のビット数に足りない場合に、当該暗号ブロックが前記所定のビット数となるように、当該暗号ブロックに付与データを付与するデータ付与部と、
前記復号部によって復号された暗号ブロックを記憶するための復号データ保持部と、
前記復号部によって復号された暗号ブロックの一部分を前記復号データ保持部に記録する復号データ記録部とをさらに備え、
前記復号部の復号対象である暗号ブロックが前記所定のビット数に足りない場合に、前記データ付与部は、前記復号対象である暗号ブロックに付与データを付与して、前記所定のビット数の合成暗号ブロックを生成し、前記復号部は、前記復号対象の暗号ブロックの代わりに前記合成暗号ブロックを復号し、前記復号データ記録部は、前記復号部によって復号された合成暗号ブロックのうち、前記データ付与部によって付与された付与データの部分が前記復号部によって復号されることで得られた部分以外の部分を前記復号データ保持部に記録することを特徴とする
請求項1記載のコンテンツ復号処理装置。 - 暗号フレームの識別情報と連鎖値とを関連付けて記憶するための連鎖値保持部を備えるコンテンツ復号処理装置に、複数種類に分類されるフレームのそれぞれが連鎖暗号ブロック方式で、連鎖する暗号ブロック列からなるチャンクを複数含む形態で暗号化され、複数の暗号フレームそれぞれを分割し、第1種暗号フレームに属する暗号チャンクと、第2種暗号フレームに属する暗号チャンクとが混在するように、ストリームライン化してなるデータストリームを復号させるコンテンツ復号処理方法であって、
前記コンテンツ復号処理装置の復号部が、連鎖値を用いて前記データストリームに含まれる暗号ブロックを順に復号し、暗号ブロックを復号する毎に新たな連鎖値を算定する復号ステップと、
前記コンテンツ復号処理装置の連鎖値記録部が、前記復号部によってチャンクの後尾の暗号ブロックが復号された場合に、前記復号ステップによって復号された暗号ブロックの属する暗号フレームの識別情報と、当該復号された暗号ブロックの復号の際に前記復号部によって算定された連鎖値とを関連付けて前記連鎖値保持部に記録する連鎖値記録ステップとを備え、
前記復号ステップは、前記連鎖値保持部を参照して、復号する暗号ブロックがチャンクの先頭の暗号ブロックである場合において、前記復号する暗号ブロックが属する暗号フレームの一部を既に復号していたときに、当該暗号ブロックを復号する際に用いる連鎖値として、当該暗号フレームの暗号ブロックのうち、最後に復号した暗号ブロックの復号の際に算定した連鎖値を用いることを特徴とするコンテンツ復号処理方法。 - 複数種類に分類されるフレームのそれぞれが連鎖暗号ブロック方式で、連鎖する暗号ブロック列からなるチャンクを複数含む形態で暗号化され、複数の暗号フレームそれぞれを分割し、第1種暗号フレームに属する暗号チャンクと、第2種暗号フレームに属する暗号チャンクとが混在するように、ストリームライン化してなるデータストリームを復号する集積回路であって、
連鎖値を用いて前記データストリームに含まれる暗号ブロックを順に復号し、暗号ブロックを復号する毎に新たな連鎖値を算定する復号部と、
暗号フレームの識別情報と連鎖値とを関連付けて記憶するための連鎖値保持部と、
前記復号部によってチャンクの後尾の暗号ブロックが復号された場合に、前記復号部によって復号された暗号ブロックの属する暗号フレームの識別情報と、当該復号された暗号ブロックの復号の際に前記復号部によって算定された連鎖値とを関連付けて前記連鎖値保持部に記録する連鎖値記録部とを備え、
前記復号部は、前記連鎖値保持部を参照して、復号する暗号ブロックがチャンクの先頭の暗号ブロックである場合において、前記復号する暗号ブロックが属する暗号フレームの一部を既に復号していたときに、当該暗号ブロックを復号する際に用いる連鎖値として、当該暗号フレームの暗号ブロックのうち、最後に復号した暗号ブロックの復号の際に算定した連鎖値を用いることを特徴とする集積回路。
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)
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)
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)
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 |
-
2009
- 2009-11-12 EP EP09825912A patent/EP2352251A1/en not_active Withdrawn
- 2009-11-12 US US13/063,595 patent/US20110170687A1/en not_active Abandoned
- 2009-11-12 JP JP2010537695A patent/JPWO2010055658A1/ja not_active Withdrawn
- 2009-11-12 WO PCT/JP2009/006033 patent/WO2010055658A1/ja active Application Filing
- 2009-11-12 CN CN2009801404601A patent/CN102224704A/zh active Pending
Patent Citations (10)
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 |