PROPER 8XC51FX ENCRYPTION ARRAY USAGE
ABSTRACT:
This TechBit cautions encryption array users to fill all
program code locations with a value other than 0FFH.
PROPER 8XC51FX ENCRYPTION ARRAY USAGE
Customers using the program lock features on FX devices
should not use the same value for all bytes in the Encryption
Array, or leave large blocks of code memory unprogrammed.
To enable FX ROM (or QROM) lock features, customers must
submit a 64-byte encryption file along with their program
code. The factory then programs the device encryption array
and sets Lock Bit 1 before the device is shipped. Those
customers using EPROM devices must program the encryption
array themselves.
There is one important factor that needs to be considered
before using the encryption array as a means for program
protection.
The encryption feature exclusively NORs each code byte
with one of the encryption bytes. All unprogrammed
encryption bytes have the value 0FFH. If the encryption
array is left unprogrammed, any code byte XNORed with 0FFH
leaves the byte unchanged. Similarly, if a code byte has the
value 0FFH, verification of the byte will produce the
encryption byte value. If a large block (> 64 bytes) of code
is left unprogrammed (an unprogrammed byte has value 0FFH), a
verification routine will, essentially, display the contents
of the encryption array.
For this reason it is strongly recommended that all
unused code bytes be programmed with some value other than
0FFH, and not all of them the same value. This practice will
ensure the maximum possible program protection for this feature.
|