> I have developed an encryption device which stores the key in > the C84's internal EE. By design, it is readonly and even then > not in plain text. However, if it is possible to read the > program and the EE of the C84, then there is no swecurity left. > I told the customer that it is possible to reverse engineer almost > any chip but at rather high cost. He accepted that. > But now the cost seems to be minimal. Experience in the pay-TV piracy community indicates that reading out the PIC16C84 as well as most other common on-chip EEPROM controllers is surprisingly easy. Most tricks involve strange voltages during programming or voltage spikes during programming. Other tricks involve modified programming algorithms which use bugs in the chip that allow write access to the protection fuse without consequnces for the remaining software. Most microcontrollers have also packages which are easy to open by mechanical and/or chemical means (I have done this myself several times with chip cards) and then selective UV radiation with a small mask can be used to clear the protection fuse. These all are tricks a skilled student can perform with a 100 USD budget at home in his kitchen. Please do not ask for details ... ;-) You can read-out even well-protected security processors for cryptographic smart card applications with e-beam testers (although the manufacturers will never admit how easy it actually is). The equipment for these attacks costs around 1 million USD but is available in each better microelectronics lab at semiconductor companies and research institutions. The normal e-beam testers require however substantial modifications at the trigger mechanisms in order to eavesdrop the internal bus lines. This will keep an experienced engineer a few weeks busy until the chip has been read-out. Monitoring the current consumption of the chip also allows access to a lot of information. Even if you implement your cryptographic algorithms in your own chip as hardware, the circuitry of the chip can be reconstructed by etching away thin layers and making SEM images. An automated facitity for this task has been constructed at Cambridge University and costs around 2 million USD. For encryption devices, use at least a dedicated security microcontroller (e.g. the Motorola 68HC05SC21 or the SGS Thompson ST16F33) which has been designed for security applications. Better use a secure package with an alarm mechanism and use battery buffered RAM in order to store the secret keys. The Dallas DS5002FPM e.g. has been designed for such applications. And: it is surprising, how often cryptographic modules (even simple ones) contain software bugs (e.g. missing boundary checks, hidden channels) which allow to get access to the contents of the internal EEPROM. Formal software verification is very important in these applications, because in contrast to normal bugs, many security problems can not be identified by testing. Constructing a secure cryptographic module were it is extremely difficult to get access to the internal secret key is a pretty challanging task. Markus -- Markus Kuhn, Computer Science student -- University of Erlangen, Internet Mail: - Germany WWW Home: