GB2099616A - Improvements relating to microprocessor units - Google Patents
Improvements relating to microprocessor units Download PDFInfo
- Publication number
- GB2099616A GB2099616A GB8116958A GB8116958A GB2099616A GB 2099616 A GB2099616 A GB 2099616A GB 8116958 A GB8116958 A GB 8116958A GB 8116958 A GB8116958 A GB 8116958A GB 2099616 A GB2099616 A GB 2099616A
- Authority
- GB
- United Kingdom
- Prior art keywords
- memory
- unit
- microprocessor
- data
- scrambling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/86—Secure or tamper-resistant housings
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
A microprocessor (1) is encapsulated with a security device. Two field programmable logic arrays (3, 4) are programmed in inversely matching manner an arrange respectively in input and output buses (2, 5) to the microprocessor. These may be for data and/or for addresses. When programming a system memory, data is written in via one of the FPLAs. This effectively scrambles the data into apparently meaningless form in the memory. However, when read out again, it is passed via the other FPLA, which unscrambles it, to the microprocessor. Similarly, data can be placed in 'wrong' addresses in the memory, but when re-addressed via this unit the correct data is extracted. <IMAGE>
Description
SPECIFICATION
Improvements relating to microprocessor units
This invention relates to microprocessor units and is concerned with providing some security against copying or stealing of programs.
Generally, there are two forms of security required, one being to block multiple copying of a program for use elsewhere, and the other being the prevention of up-dating of a system solely by replacing old software with new. Such software is generally embodied in memories which are small and cheap, and a complicated machine can sometimes be effectively refurbished just by changing to new memories.
The aim of this invention is to provide a defence against these abuses and to ensure that only the original manufacturer will have the ability to make a useful copy or to update.
According to the present invention there is provided a microprocessor unit in which the microprocessor is encapsulated with a security device, this device comprising inversely matched scrambling units through which input and output signals are respectively passed.
Conveniently, these scrambling units are field programmable logic arrays (FPLAs).
In use the microprocessor unit is connected to a memory. This memory will first be programmed through one of the FPLAs which will transpose at least some bits of data into different positions. Thus the memory is stocked with apparently meaningless information. Once it is programmed, the encapsulation is carried out, concealing the FPLAs and much of the microprocessor, but of course leaving the essential terminal pins exposed.
The unit can then be plugged into a processor socket of the system hardware and, despite the apparently meaningless program in the memory, will still function satisfactorily. This is by virtue of the second FPLA through which the information from the memory is directed back to the microprocessor when suitably addressed. The second FPLA transposes the bits back to their original positions.
As well as scrambling and unscrambling the data bits, additional security can be provided by varying the coding pattern according to different addresses.
For a better understanding of the invention one embodiment will now be described, by way of example, with reference to the accompanying drawing in which the single Figure is a diagram of a microprocessor unit.
The microprocessor 1 has a two-way data bus 2 for communication with FPLAs 3 and 4. It is also connected to them by an address bus 5 and read and write lines 6 and 7. The FPLAs are connected by a continuation 8 of the bidirectional data bus to a system memory (not shown) and the address bus has a branch 9 forming the system address bus. In fact, this branch has many more lines than those leading to the address inputs of the FPLAs, as will be explained below. The microprocessor and FPLAs, with their
interconnections are encapsulated in a block, of epoxy resin for example, indicated by broken line 10.
Pins for connection to the memory and other units are left exposed. This encapsulation effectively prevents dissection of the unit and thus discovery of the FPLA programs.
Assume that each word to be stored is a byte of 8 bits. In this case, an encoding pattern may have
8 terms enabling each bit to be displaced to another position, for example in accordance with the following:
Thus, whatever appears as the LSB at the input is shifted to the MSB position at the output, the next bit to the LSB is shifted to the third highest position, and so Qn. An eight output FPLA, with of.
course at least eight inputs, can readily accomplish this, and a similar FPLA can reverse the procedure and produce the original byte.
However, there is a slight danger in always using the same code. Repitition can give clues aiding decipherment. Therefore it is desirable to change the coding pattern at intervals, to add further confusion.
A commonly available eight-output FPLA has 16 inputs and 48 terms. As the single encoding pattern of the present example requires 8 terms, the FPLA can accommodate six different patterns, and these can be identified by using three of the remaining eight inputs. Thus the first pattern above may be used by addressing these inputs 001, a second pattern by address 010, a third pattern by 011 and so on.
When programming the memory through FPLA 3, the code pattern is altered in a known sequence so that different locations hold differently encoded information. For example location 1 may use pattern 1, location 2 pattern 2, and so on in cyclic fashion. But the information is still recoverable if the reversing
FPLA 4 is correspondingly programmed. When the microprocessor addresses location 2, or 8, for instance, FPLA 4 will be instructed by that address to unscramble in the pattern 2 mode.
At the same time as FPLA 4 is addressed with the pattern number, so is the main memory addressed through branch 9. The location identification will require more bits than the three that are used for determining the coding pattern, but those three can also be used as part of the adresses to the main memory.
It will be understood that it is not essential to scramble an entire word. For example an encoding pattern may simply transpose four out of eight bits, leaving the other four untouched.
As well as, or instead of, scrambling data, it is possible to treat the addresses in this way. Thus instead of the branch 9 going direct to the memory it may connect via a FPLA of suitable capacity.
When programming the memory, it is addressed via this encoding FPLA and instead of location 1, the first data byte or word is entered in another location, and so on.
In use, the microprocessor will issue the correct address to this FPLA, which will transform it into the apparently wrong address and feed this to the memory However, the "right" information is at this "wrong" address, albeit possibly in coded form itself. This information is read out to a reversing FPLA which decodes it as necessary and delivers the correct information to the microprocessor.
Claims (8)
1. A microprocessor unit in which the microprocessor is encapsulated with a security device, this device carrying inversely matched scrambling devices through which input and output signals are passed.
2. A unit as claimed in claim 1, wherein the scrambling devices are field programmable logic arrays.
3. A unit as claimed in claim 1 or 2, wherein one scrambling device has an encoding pattern arranged to transpose bits within words of data to be programmed into a memory, and another scrambling device has a decoding pattern arranged to transpose bits within words of data from the memory in the reverse manner.
4. A unit as claimed in claim 3, wherein the encoding and decoding patterns vary according to address information.
5. A unit as claimed in claim 4, in combination with a memory programmed through one of the scrambling devices, wherein the memory is arranged to be addressed using, at least in part, the address information which determines the encoding and decoding patterns.
6. A unit as claimed in any preceding claim, in combination with a non-volatile read only memory, with the modification that the scrambling device through which output signals are passed is functional only during programming of the memory, and is removed before encapsulation.
7. A unit as claimed in any one of claims 1 to 6, wherein the scrambling devices are arranged to transpose addresses in a memory.
8. A microprocessor unit substantially as hereinbefore described with reference to the accompanying drawing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB8116958A GB2099616A (en) | 1981-06-03 | 1981-06-03 | Improvements relating to microprocessor units |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB8116958A GB2099616A (en) | 1981-06-03 | 1981-06-03 | Improvements relating to microprocessor units |
Publications (1)
Publication Number | Publication Date |
---|---|
GB2099616A true GB2099616A (en) | 1982-12-08 |
Family
ID=10522239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB8116958A Withdrawn GB2099616A (en) | 1981-06-03 | 1981-06-03 | Improvements relating to microprocessor units |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2099616A (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2140592A (en) * | 1983-04-29 | 1984-11-28 | Philips Nv | Memory unit comprising a memory and a protection unit |
GB2158622A (en) * | 1983-12-21 | 1985-11-13 | Goran Anders Henrik Hemdal | Computer controlled systems |
GB2165377A (en) * | 1984-09-19 | 1986-04-09 | Itt Ind Ltd | A computer element |
GB2248702A (en) * | 1990-10-11 | 1992-04-15 | Viserge Limited | Protection of software in ROM |
WO1998016883A1 (en) * | 1996-10-15 | 1998-04-23 | Siemens Aktiengesellschaft | Electronic data processing circuit |
US7036017B2 (en) | 1999-12-02 | 2006-04-25 | Infineon Technologies Ag | Microprocessor configuration with encryption |
EP1187477B1 (en) * | 2000-09-07 | 2012-04-04 | Sagemcom Broadband Sas | Device and method for receiving and recording information |
-
1981
- 1981-06-03 GB GB8116958A patent/GB2099616A/en not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2140592A (en) * | 1983-04-29 | 1984-11-28 | Philips Nv | Memory unit comprising a memory and a protection unit |
GB2158622A (en) * | 1983-12-21 | 1985-11-13 | Goran Anders Henrik Hemdal | Computer controlled systems |
GB2165377A (en) * | 1984-09-19 | 1986-04-09 | Itt Ind Ltd | A computer element |
GB2248702A (en) * | 1990-10-11 | 1992-04-15 | Viserge Limited | Protection of software in ROM |
GB2248702B (en) * | 1990-10-11 | 1994-11-02 | Viserge Limited | Data-processing apparatus |
WO1998016883A1 (en) * | 1996-10-15 | 1998-04-23 | Siemens Aktiengesellschaft | Electronic data processing circuit |
US6195752B1 (en) | 1996-10-15 | 2001-02-27 | Siemens Aktiengesellschaft | Electronic data processing circuit |
US7036017B2 (en) | 1999-12-02 | 2006-04-25 | Infineon Technologies Ag | Microprocessor configuration with encryption |
EP1187477B1 (en) * | 2000-09-07 | 2012-04-04 | Sagemcom Broadband Sas | Device and method for receiving and recording information |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4120030A (en) | Computer software security system | |
US4523271A (en) | Software protection method and apparatus | |
US5214697A (en) | Program execution apparatus for ensuring security of a program | |
EP0083209B1 (en) | A microcomputer for processing instructions of different types | |
US4698617A (en) | ROM Protection scheme | |
US4598170A (en) | Secure microprocessor | |
EP0342832B1 (en) | Dynamic feedback arrangement scrambling technique keystream generator | |
RU2188447C2 (en) | Electronic data processing device and system | |
US4583196A (en) | Secure read only memory | |
EP0114522A2 (en) | ROM protection device | |
KR100421629B1 (en) | Electronic data processing circuit | |
US4764959A (en) | Single-chip microcomputer with encryptable function on program memory | |
US20070172053A1 (en) | Method and system for microprocessor data security | |
EP0614147A2 (en) | Software data protection mechanism | |
EP0215464B1 (en) | Semiconductor integrated circuit device | |
KR100549151B1 (en) | Scrambler circuit, descrambler circuit, data processing device and ic card | |
GB2099616A (en) | Improvements relating to microprocessor units | |
JPH08123680A (en) | Digital scrambling method of data and its use to programmable circuit | |
US5860094A (en) | System for protecting information stored on physical media | |
US5153921A (en) | Microcomputer | |
EP0171456A1 (en) | Computer software protection system | |
KR100253310B1 (en) | Program data protection circuit for semiconductor memory | |
KR100232215B1 (en) | Data protection circuit | |
KR200208206Y1 (en) | Semiconductor memory device | |
AU612098B2 (en) | Method and apparatus for protecting computer software utilizing coded filter network in conjunction with an active coded hardware device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |