Hardware Protection Against Software Piracy Written by TIM MAUDE and DERWENT MAUDE, “Hardware protection against software piracy”, Communications of the ACM,27(9):950—959, September 1984 Summary: The system of software protection consists of modified software in conjunction with a hardware public key cryptogram system which is implemented by a small microprocessor-based security unit that attaches to an input-output port. Presented by Qiang Liu
Outline of the System The principle of the scheme is that portions of the program code are encrypted. Each computer would be provided with its own pair of public and private keys. Hardware Implementation: Each computer is provided with a hardware component, consisting mainly of a microprocessor, which is connected to an input-output port. Program modification: First, divide the program into some parts. Second, put the coding of these parts into a form so that they may be deciphered by a particular security unit.
Example Program prime4 ………//main program Section1: call point=unit(1,j) case point OF 1: Goto 4; 2: Goto 9; 3:Goto 6;…… Section2: …… …… Function unit (inst,value){ Case inst OF: 1: Begin store:=value; unit:=3; 2: IF store<=value Then unit:=3 Else unit:=1; 8: unit:=2; }
Appreciative Comments The system makes illicit duplication of proprietary software much harder. (customized programs) Divide program into sections and rearrange them randomly( branches, jumps, GOTO statements) Security unit steers sections to execute in their specified order. (No one knows which section will be executed next.)
Critical Comment “decoding key”: In its “Cryptographic considerations” section for the MITRE system: “Once the key component receives the public key [ɑM]from the program, it takes a few seconds for a standard microprocessor such as a Z80 to work out the 127 bits of ɑMN. This 127-bit sequence forms the ‘decoding key’ for the second cryptogram”( So ɑMN is calculated from ɑM and ɑN which is from key component.) “At program start-up, a ‘decoding key’ is passed from the program to the unit.” In this scheme the decoding key, which is passed, is encrypted using the security unit’s public key cryptogram.)
Figures Security unit ( work out decoding key) decrypt Security unit Decoding key encrypted using security unit’s public key cryptogram decrypt Security unit ( work out decoding key) A value from a program Security unit value to determine to which section return
Question If we could build the security unit onto the chip of the computer, then would you think that it is good to prevent software piracy?