There seems to be a lot of interest in the way that the HD & HDR encrypt content when recording it off the air. I'm wondering whether we can work out how this is done with a view to developing a decryption process.
Just to be clear. I'm not talking about reverse engineering the propriety Humax code here, just analysing the file formats and the architecture and seeing what can be gleaned from it.
Here's what I've found so far:
Of the four files that make up a completed recording, only the .ts files that are encrypted.
The .ts files are made up of a sequence of 192 byte blocks. Each block has a 4 byte prefix which looks like some kind of time code followed by a standard 4 byte Transport Stream (TS) header and then a 184 byte payload. Only this payload section is encrypted - the first 8 bytes of each block are the same in the encrypted and decrypted version of a .ts file.
Not all packets are encrypted - those which have TS annotations are stored identically in the encrypted and decrypted versions.
The most likely algorithm is probably AES-128, two blocks at a time to give 23 encryption blocks. I've tried a basic brute force attack using all 16 byte blocks in flash and memory as possible encryption keys, but no luck there.
Considering the amount of encryption that the box has to do when recording two channels at the same time as playing back a recording, it seems likely that the encryption is done in hardware and it's also possible that the key is stored in a HSM..
The bcm 7405 platform includes...
Just to be clear. I'm not talking about reverse engineering the propriety Humax code here, just analysing the file formats and the architecture and seeing what can be gleaned from it.
Here's what I've found so far:
Of the four files that make up a completed recording, only the .ts files that are encrypted.
The .ts files are made up of a sequence of 192 byte blocks. Each block has a 4 byte prefix which looks like some kind of time code followed by a standard 4 byte Transport Stream (TS) header and then a 184 byte payload. Only this payload section is encrypted - the first 8 bytes of each block are the same in the encrypted and decrypted version of a .ts file.
Not all packets are encrypted - those which have TS annotations are stored identically in the encrypted and decrypted versions.
The most likely algorithm is probably AES-128, two blocks at a time to give 23 encryption blocks. I've tried a basic brute force attack using all 16 byte blocks in flash and memory as possible encryption keys, but no luck there.
Considering the amount of encryption that the box has to do when recording two channels at the same time as playing back a recording, it seems likely that the encryption is done in hardware and it's also possible that the key is stored in a HSM..
The bcm 7405 platform includes...
... a memory-to-memory DMA security module [which] may be programmed for supporting different copy protection algorithms/standards (AES, 1DES, 3DES, CSS, CPRM, CPPM and DTCP).