← Back to Patent Explorer
US5671275A Expired / Lapsed US ⏱️ 0.0 years remaining

Protection of software programs stored in read-only memory from unauthorized access

Assignee: NEC Corp
•
Filing: 1995-04-28
•
Granted: 1997-09-23
•
Expires: 2015-04-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a microprocessor-based controller, scrambled program data words are stored in a read-only memory and user information is stored in a random-access memory. A data converter is connected in the data bus between the microprocessor and the memories for descrambling data words when the ROM is accessed to produce a replica of original program data words and applying the replica to the microprocessor for operating the controller. The data converter simply applies data words to the microprocessor without descrambling when the RAM is accessed. The scrambled program data words in the read-only memory may be divided into multiple data blocks, each of which is a scrambled form of the original program data words with each of multiple keywords defined respectively for the data blocks. A modulo-2 adder is provided for summing each of the keywords with the scrambled program data words of a corresponding data block.

Inventors

  • 👤 Hiroshi Ezuriko

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 14:05
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/60; G06F21/62; G06F21/6209

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 87 words
A controller comprising a microprocessor; a read-only memory for storing converted program data words; and a data converter connected between said microprocessor and said read-only memory, said data converter including a register storing a predetermined keyword for reconverting the converted program data words from the read-only memory according to the stored predetermined keyword into a replica of original program data words which can be processed by the microprocessor, wherein said data converter provides said replica of original program data words to said microprocessor for operating said controller.
Claim 2
Dependent Claim 87 words
A controller comprising a microprocessor; a read-only memory for storing converted program data words; and a data converter connected between said microprocessor and said read-only memory, said data converter including a register storing a predetermined keyword for reconverting the converted program data words from the read-only memory according to the stored predetermined keyword into a replica of original program data words which can be processed by the microprocessor, wherein said data converter provides said replica of original program data words to said microprocessor for operating said controller.
Claim 3
Dependent Claim 63 words
A controller as claimed in claim 1, wherein said converted program data words are scrambled program data words corresponding to said original program data words scrambled in accordance with said predetermined keyword, and said data converter comprises a modulo-2 adder for summing the predetermined keyword of said register with the scrambled program data words to produce said replica of original program data words.
Claim 4
Dependent Claim 109 words
A controller as claimed in claim 1, wherein said converted program data words in said read-only memory are divided into a plurality of data blocks each of which is a scrambled form of said original program data words with each of a plurality of keywords defined respectively for said data blocks, and wherein said data converter comprises keyword determining means for determining a particular keyword of said plurality of keywords corresponding to one of said data blocks, and a modulo-2 adder for summing the particular keyword with the scrambled program data words of the corresponding one of said data blocks to produce said replica of original program data words.
Claim 5
Dependent Claim 53 words
A controller as claimed in claim 3, wherein said register holds said particular keyword and portions of said read-only memory store the plurality of keywords, said microprocessor reading the particular keyword from said read-only memory into said register before reading the scrambled program data words of the corresponding one of said data blocks.
Claim 6
Dependent Claim 93 words
A controller as claimed in claim 1, wherein said converted program data words are scrambled program data words corresponding to said original program data words scrambled in accordance with each of a plurality of keywords, and wherein said data converter comprises: keyword determining means for determining a particular keyword of said plurality of keywords correspond to a particular scrambled program data word of said scrambled program data words; and a modulo-2 adder for summing the particular keyword with the particular scrambled program data word to produce said replica of original program data words.
Claim 7
Dependent Claim 50 words
A controller as claimed in claim 5, wherein said keyword determining means comprises: a second read-only memory for storing a plurality of scrambling words; and a second modulo-2 adder for summing a particular one of the scrambling words with the predetermined keyword in said register to produce said particular keyword.
Claim 8
Dependent Claim 50 words
A controller as claimed in claim 3, wherein said keyword determining means comprises: a second read-only memory for storing a plurality of scrambling words; and a second modulo-2 adder for summing a particular one of the scrambling words with the predetermined keyword in said register to produce said particular keyword.
Claim 9
Dependent Claim 118 words
A controller comprising: a microprocessor; a read-only memory for storing scrambled program data words; a random-access memory; a data bus for transporting information signals between said microprocessor and said read-only memory and said random-access memory; an address bus for transporting address signals from said microprocessor to said read-only memory and said random-access memory; and a data converter connected in said data bus for descrambling data words when said read-only memory is accessed through said address bus to produce a replica of original program data words and applying said replica to said microprocessor for operating said controller, and applying data words to said microprocessor without descrambling the data words when said random-access memory is accessed through said address bus.
Claim 10
Dependent Claim 118 words
A controller comprising: a microprocessor; a read-only memory for storing scrambled program data words; a random-access memory; a data bus for transporting information signals between said microprocessor and said read-only memory and said random-access memory; an address bus for transporting address signals from said microprocessor to said read-only memory and said random-access memory; and a data converter connected in said data bus for descrambling data words when said read-only memory is accessed through said address bus to produce a replica of original program data words and applying said replica to said microprocessor for operating said controller, and applying data words to said microprocessor without descrambling the data words when said random-access memory is accessed through said address bus.
Claim 11
Dependent Claim 100 words
A controller as claimed in claim 8, wherein the scrambled program data words in said read-only memory are divided into a plurality of data blocks each of which is a scrambled form of said original program data words with each of a plurality of keywords defined respectively for said data blocks, and wherein said data converter comprises keyword generating means for generating said keywords, and a modulo-2 adder for summing a corresponding one of the generated keywords with the scrambled program data words of a corresponding one of said data blocks to produce said replica of original program data words.
Claim 12
Dependent Claim 60 words
A controller as claimed in claim 9, wherein said keyword generating means comprises a register for storing one of said keywords and portions of said read-only memory for storing the other keywords, said microprocessor reading the corresponding one of the keywords from said read-only memory into said register before reading the scrambled program data words of the corresponding data block.
Claim 13
Dependent Claim 60 words
A controller as claimed in claim 10, wherein said keyword generating means comprises: a register for storing an original keyword; a second read-only memory for storing a plurality of scrambling words; and a second modulo-2 adder for summing a corresponding one of the scrambling words with the original keyword in said register to produce said corresponding one of the keywords.
Claim 14
Dependent Claim 74 words
A controller as claimed in claim 8, wherein said scrambled program data words in said read-only memory are a scrambled form of said original program data words with each of a plurality of keywords, and said data converter comprises keyword generating means for generating said keywords and a modulo-2 adder for summing a corresponding one of the generated keywords with the scrambled program data words to produce said replica of original program data words.
Claim 15
Dependent Claim 60 words
A controller as claimed in claim 12, wherein said keyword generating means comprises: a register for storing an original keyword; a second read-only memory for storing a plurality of scrambling words; and a second modulo-2 adder for summing a corresponding one of the scrambling words with the original keyword in said register to produce said corresponding one of the keywords.
Claim 16
Independent Claim 83 words
A method for protecting a software program stored in a read-only memory from unauthorized access, comprising the steps of: a) scrambling an original software program with a keyword; b) storing the scrambled software program into the read-only memory; c) reading the scrambled software program from the read-only memory; and d) descrambling the read software program with a replica of said keyword to produce a replica of said original software program, and supplying the replica of the original software program directly to a microprocessor.
Claim 17
Independent Claim 83 words
A method for protecting a software program stored in a read-only memory from unauthorized access, comprising the steps of: a) scrambling an original software program with a keyword; b) storing the scrambled software program into the read-only memory; c) reading the scrambled software program from the read-only memory; and d) descrambling the read software program with a replica of said keyword to produce a replica of said original software program, and supplying the replica of the original software program directly to a microprocessor.
Claim 18
Independent Claim 115 words
A method for protecting a software program stored in a read-only memory from unauthorized access, comprising the steps of: a) dividing an original software program into a plurality of data blocks; b) scrambling each of the data blocks with a keyword corresponding to the data block; c) storing each of the scrambled data blocks into the read-only memory; d) reading each of the scrambled data blocks from the read-only memory; e) generating a keyword corresponding to the read data block; and descrambling the read data block with the generated keyword to produce a replica of the data block of said original software program, and supplying said replica of the data block directly to a microprocessor.
Claim 19
Independent Claim 115 words
A method for protecting a software program stored in a read-only memory from unauthorized access, comprising the steps of: a) dividing an original software program into a plurality of data blocks; b) scrambling each of the data blocks with a keyword corresponding to the data block; c) storing each of the scrambled data blocks into the read-only memory; d) reading each of the scrambled data blocks from the read-only memory; e) generating a keyword corresponding to the read data block; and descrambling the read data block with the generated keyword to produce a replica of the data block of said original software program, and supplying said replica of the data block directly to a microprocessor.

References Cited (Backward Citations)

US4319079A Cited
EP0083209A2 Cited
WO1983004356A1 Cited
US5065429A Cited
EP0449256A2 Cited
US5371792A Cited
US5555304A Cited
US5224166A Cited
US5416840A Cited
US5457746A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-09-22 2001-03-24 2001-09-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-09-22 2005-03-24 2005-09-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-09-22 2009-03-24 2009-09-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag