Originally posted by: Carceri
Sure you could implement an encryption algorithm in hardware and integrate it into the CPU or any other chip that needed to communicate securely. The problem is that you need to store the key somewhere, and having to actually make the key a part of the chip would probably be very expensive since you need to do that to every chip with a different key. Also you can't just replace one faulty chip since it wouldn't be able to communicate with the other components.
Originally posted by: pm
You could use on-die electrically programmable one-time fuses to program the key. This way it would be one-time programmable, different per chip, and reverse-engineering the chip wouldn't buy you much since you still wouldn't know the key that is on another chip. On-die fuses are fairly commonplace in the industry now and they aren't that expensive to implement.
I thought that the XBOX was encrypted on the hardware level but it turns out the encryption is done in the BIOS, which is soft programming
If you didn't implement a different key per chip then it wouldn't be a difficult task to reverse engineer the key using an E-Beam Probe to figure it out, or simply to strip back the chip and see what the logic ROM for the key is. Admittedly these techniques would be outside the realm of the average home user (since a E-Beam probe must run well into the millions of dollars and it still requires a tester to exercise the chip while you are probing it), but if absolute security is required then the best way to implement it is using on chip fuses to program a unique key.Similarly, there is no real need to have a different key for every different chip - every XBOX uses the same decryption key. The balance of costs, in terms of risk of key being discovered, importance of a third party discovering the key, and cost of implementing a unique key for each device, could favour either one key per design, or one key per individual device, depending on the circumstances.
RC5 and 3DES are not related to the factoring of large numbers. Still your point is valid. I don't see algorithms like 3DES, Rijndael, Mars, Serpent, RC5, RC4, RC6, IDEA, CAST, etc... being broken in the near future (if ever).Encryption algorithms are pretty good nowadays, RC5 and 3-DES are both well known algorithms that produce high levels of encryption if the keys are long and chosen wisely . It is unlikely that factoring large numbers will be faster in the future, so I don't see how the algorithm could be broken - again, provided that the key is sufficiently long and it is well chosen.
That was my point. Of cause you could look into the chip to read out the key, but that will be out of the scope for "regular" people. Also if each unit was made with it's own unique keys getting the key for one unit would not help getting the keys for other units. But as mentioned before that would be expensive to produce and to repair such a unit (the same key needs to be in every chip that needs to communicate and if one fails it can't be replaced by another because the key is not known once the chip is produced).You could implement a well known algorithm in logic, use fuses to create the key and you could have a fairly high level of confidence that the system will be pretty good.
WEP suffers from an attack found by (of cause ) Adi Shamir against the key scheduling algorithm of the RC4 algorithm. Nearly any product that uses RC4 is affected. The attack scales linearly with the key size, so even the maximum keysize of RC4 (2048 bits) is easy to break. It's a passive attack that uses a lot of data encrypted under the same key, which is easy to gather with WEP since a lot of packets are transmitted that are encrypted under the samy key.The obvious counter-example is WEP, but WEP wasn't broken because the algorithm was inherently flawed but due to poor choices of keys and key length, IMO.
True. I'd originally written RSA instead of RC5 and then later corrected it through an edit after I thought about the fact that RSA is a method for exchanging keys - not an encryption algorithm. But I forgot and then left the factoring bit in.RC5 and 3DES are not related to the factoring of large numbers.
I wouldn't have said that a key of 2048 bits is easy to break under RC4. More like it's possible to break it. A larger key length in WEP would make the system more secure than it currently is - it wouldn't be totally secure, but it might make it "secure enough" for typical applications. But I take your point and stand corrected.WEP suffers from an attack found by (of cause ) Adi Shamir against the key scheduling algorithm of the RC4 algorithm. Nearly any product that uses RC4 is affected. The attack scales linearly with the key size, so even the maximum keysize of RC4 (2048 bits) is easy to break.
One-time electrically programmable fuses are not particularly expensive to integrate into a process - most of the major CPU's out there have them. They aren't cheap, but they aren't prohibitive either. As far as the interaction between different chips, you could exchange keys using a technique like RSA as part of the initialization routine - particularly on the newer style of buses that require frequent handshaking to resynchronize. It all depends on the level of confidence required that the data will be secure versus the cost/performance penalty incurred.That was my point. Of cause you could look into the chip to read out the key, but that will be out of the scope for "regular" people. Also if each unit was made with it's own unique keys getting the key for one unit would not help getting the keys for other units. But as mentioned before that would be expensive to produce and to repair such a unit (the same key needs to be in every chip that needs to communicate and if one fails it can't be replaced by another because the key is not known once the chip is produced).
Originally posted by: Carceri
RC5 and 3DES are not related to the factoring of large numbers. Still your point is valid. I don't see algorithms like 3DES, Rijndael, Mars, Serpent, RC5, RC4, RC6, IDEA, CAST, etc... being broken in the near future (if ever).Encryption algorithms are pretty good nowadays, RC5 and 3-DES are both well known algorithms that produce high levels of encryption if the keys are long and chosen wisely . It is unlikely that factoring large numbers will be faster in the future, so I don't see how the algorithm could be broken - again, provided that the key is sufficiently long and it is well chosen.That was my point. Of cause you could look into the chip to read out the key, but that will be out of the scope for "regular" people. Also if each unit was made with it's own unique keys getting the key for one unit would not help getting the keys for other units. But as mentioned before that would be expensive to produce and to repair such a unit (the same key needs to be in every chip that needs to communicate and if one fails it can't be replaced by another because the key is not known once the chip is produced).You could implement a well known algorithm in logic, use fuses to create the key and you could have a fairly high level of confidence that the system will be pretty good.WEP suffers from an attack found by (of cause ) Adi Shamir against the key scheduling algorithm of the RC4 algorithm. Nearly any product that uses RC4 is affected. The attack scales linearly with the key size, so even the maximum keysize of RC4 (2048 bits) is easy to break. It's a passive attack that uses a lot of data encrypted under the same key, which is easy to gather with WEP since a lot of packets are transmitted that are encrypted under the samy key.This attack can be thwarted by either changing encryption keys often (and avoid certain weak keys that allows the attack to be performed with very little cipher text) or making a small modification to the RC4 key generation (simply repeat the state array mixing loop a few times instead of running it only once)The obvious counter-example is WEP, but WEP wasn't broken because the algorithm was inherently flawed but due to poor choices of keys and key length, IMO.
which brings me to my point either hardcode the bios, or use key parts of it as the actual key, or embed the bios in a place that is unaccessible to a reflasher, ie on die, or under another chip or inside a multilayered board.i think using key parts of the bios as the key or multiple keys is the best idea as it would mean you could update the bios a little bit but not modify key data blocks, is this a workable idea?
RSA is an encryption algorithm, but is normally used to encrypt a small piece of random data to be used as a key for a faster conventional algorithm since RSA is extremely slow. You were probably thinking of the Diffie-Hellman key exchange protocol which is used only for exchanging keys.I thought about the fact that RSA is a method for exchanging keys - not an encryption algorithm
Given enough ciphertext is actually is easy. Easy enough that it can be broken in a few days using a single PC.I wouldn't have said that a key of 2048 bits is easy to break under RC4.
The best way to do this (I think - haven't given it much thought) would be to include a shared secret in each chip (we can call it a key) and then use RSA (or any other algorithm suitable for that purpose) to exhange a new key every few minutes using the shared secret to authenticate each chip. Without the shared secret the scheme with just using RSA to exchange keys could be broken with a simple man-in-the-middle attack. By exchanging keys regularily we lower the amount of data encrypted under a specific key which makes cryptoanalysis more difficult (and could make an attack such as the one against RC4 impractical)As far as the interaction between different chips, you could exchange keys using a technique like RSA as part of the initialization routine - particularly on the newer style of buses that require frequent handshaking to resynchronize. It all depends on the level of confidence required that the data will be secure versus the cost/performance penalty incurred
Well, it is - it was done in the XBOX. The critical parts of the BIOS (namely the parts that decrypt and authenticate the rest of the BIOS) are embedded into the chipset. An attacker would be thwarted because if the BIOS EEPROM was reflashed, the code would fail to execute because the BIOS loader would reject it. A genuine BIOS would be recognised as such by the BIOS loader and would then be executed.This system was defeated by a novel method which spied on the actual data sent to the CPU, not what was retrieved from EEPROM. If the hypertransport bus, which had previously been regarded as a low security bus, had been hidden inside the board, then the attack would have been harder - however, a determined attacker could still have intercepted the CPUs FSB (no software, no matter how cleverly hidden, unless it is integrated on the CPU die, could withstand that attack).If the critical BIOS code had been integrated into the CPU, the system would have been more secure. Nevertheless, a very determined and highly funded attacker could still retrieve the key, by examining the CPU die - However, in the case of the XBOX, it is unlikely that anyone would have bothered.Essentially, software can only offer limited security against a determined attacker - a true hardware solution is preferable.
Originally posted by: Mark R
The CPU has to retrieve the key and decryption software (stored in the critical area) - which means that both have to be transmitted in the clear over the FSB, and hypertransport link.Once the key was retrieved, it would be quite straightforward to decrypt the old BIOS, and to encrypt and sign a new version.During boot the CPU will run the following programs:1) BIOS loader: Decrypts and verifies the main BIOS. (This program is hidden within a critical chipset part)2) BIOS. Main BIOS functionality, plus decryption and authentication code for the OS loader (This program is stored on the BIOS EEPROM)3) OS loader. Decrypts and verifies the OS (stored on HD)4) OS. Verifies software before executionThis attack works by retrieving the BIOS loader. Once the loader was retrieved and analysed, it is easy to rewrite the BIOS and sign it so that it is accepted as genuine by the BIOS loader. Once security is compromised at this stage, the rest of the chain collapses.