|
|
Scalable
Security System Using the PIC16F84by Ken Rieli |
| Reprinted from http://www.circuitcellar.com/designforum/pic/Reili/Reili.htm | |
PIC Abstractions are abstracts from INK's Design98 contest, cosponsored by Microchip. These are not intended as complete projects. Please contact the authors for more details.
![]()
Do you work with classified, confidential, or otherwise valuable documents? Are you looking for a low-cost means of securing computer data and facilities? Look no further!
The best security schemes use a removable device—a smart card or key that holds a long key code (i.e., password). Long codes are preferable to short memorized passwords. The longer the code, the longer it takes hacker software to break it.
The project described here consists of a key-code storage device and serial interface capable of storing astronomical random codes. These numbers are so big it would take all the processing power of the globe hundreds or thousands of years to crack one code!
The heart of the project is the processor embedded into the key device. While scoping out the project, I evaluated a number of potential processors. I chose the PIC16F84 processor for several reasons:
low power consumption
| a good mix of RAM, EEPROM, and flash memory
| availability in DIP and flat package
| low parts count means a compact design
| good third-party development systems support
| |
A major consideration is current consumption. To avoid yet another plug-in power transformer, I chose a processor that could be powered directly from the host system’s serial DTR line. Since the DTR line usually exceeds the 5-VCC limit of processors and other outboard devices, I used a simple voltage regulator circuit mounted in a plastic project case to control voltage levels to the key. The project case incorporates a 25-pin connector to plug into the host system’s serial cable on one end, and a 9-pin connector to plug the key into the other end (see Figure 1).
| Figure 1
|
In its simplest form, the key consists of a single PIC16F84 and a handful of components to make it clock and communicate. Onboard flash memory is used to store key codes—supplied by the host system’s utility program. Maximum key code length on the unexpanded key is 480 bits. Any length from 8 bits to 480 bits may be stored and polled by the host system (see Figure 2).
| Figure 2
|
Expanded keys use an I2C serial EEPROM for code storage. During project development, I generated and stored random codes longer then 8000 bits. Depending on the size and number of serial EEPROMs used, the code length is virtually limitless!
A utility program running on any ‘x86-compatible system was developed to generate and store code sets, write codes to keys, and interrogate preprogrammed security keys—all through the host system’s serial port.
So if you need maximum key-insertion security for computers and facilities at minimum cost and hassle, this is it!
For more information, please contact Ken Rieli at consulting@phoenixnavigation.com