GB2099616A - Improvements relating to microprocessor units - Google Patents

Improvements relating to microprocessor units Download PDF

Info

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
Application number
GB8116958A
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JPM AUTOMATIC MACHINES Ltd
Original Assignee
JPM AUTOMATIC MACHINES Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by JPM AUTOMATIC MACHINES Ltd filed Critical JPM AUTOMATIC MACHINES Ltd
Priority to GB8116958A priority Critical patent/GB2099616A/en
Publication of GB2099616A publication Critical patent/GB2099616A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/76Protecting 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure 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.
GB8116958A 1981-06-03 1981-06-03 Improvements relating to microprocessor units Withdrawn GB2099616A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (9)

* Cited by examiner, † Cited by third party
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)