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

Cryptographic decoder for computer programs

Assignee: Dallas Semiconductor Corp
•
Filing: 1981-09-10
•
Granted: 1984-02-21
•
Expires: 2001-09-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An integrated circuit decoder for providing microcomputer users with access to several proprietary programs selected from a large group of such programs that have been distributed to users in cipher. The decoder chip can decipher a program if an enciphered key called a "permit code" is presented to the decoder chip. Permit codes are not interchangeable between decoders, are issued only to customers that have paid for use of a program product, and each code will work only with one program. As the program is being deciphered in a user's microcomputer, the decoder chip places random errors into the program which make copies of the program malfunction in other microcomputers. The decoder chip keeps a table of addresses where it has placed errors and dynamically corrects the errors on the data bus whenever an error word is addressed during execution. Using such a decoder, thousands of individually priced proprietary software products can be delivered securely to prospective customers in advance of sales on laserdiscs, diskettes, TV-cables, and digital radio broadcasts.

Inventors

  • 👤 Robert M. Best

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 17:16
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/10; G06F21/12; G06F21/121; G06F21/123; G06F12/00; G06F12/14; G06F12/1408

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 205 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions, the apparatus comprising: table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the digital addresses in said table means; means for enciphering a plurality of instructions or portions of instructions in a selected program to produce enciphered instructions to be stored at memory locations specified by memory addresses, the enciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the digital addresses in said table means, the enciphering being a function of the digital word in said table means corresponding to the matching digital address; and means for deciphering one of said enciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address matching one of the digital addresses in said table means, the deciphering being performed as a function of the digital word in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring enciphered instructions to unenciphered form during execution of said selected program.
Claim 2
Dependent Claim 205 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions, the apparatus comprising: table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the digital addresses in said table means; means for enciphering a plurality of instructions or portions of instructions in a selected program to produce enciphered instructions to be stored at memory locations specified by memory addresses, the enciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the digital addresses in said table means, the enciphering being a function of the digital word in said table means corresponding to the matching digital address; and means for deciphering one of said enciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address matching one of the digital addresses in said table means, the deciphering being performed as a function of the digital word in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring enciphered instructions to unenciphered form during execution of said selected program.
Claim 3
Dependent Claim 17 words
The apparatus of claim 1 further including microprocessor means for fetching and executing said programs of instructions.
Claim 4
Dependent Claim 221 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions, the apparatus comprising: table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the digital addresses in said table means; means for enciphering a plurality of instructions or portions of instructions in a selected program to produce enciphered instructions to be stored at memory locations specified by memory addresses, the enciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the digital addresses in said table means, the enciphering being a function of the digital word in said table means corresponding to the matching digital address; and means for deciphering one of said enciphered instructions or portion thereof whenever the instruction is fetched for execution from a memory location specified by a memory address if said determining means determines that the memory address of the fetched instruction matches one of the digital addresses in said table means, the deciphering being performed as a function of the digital word in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring enciphered instructions to unenciphered form during execution of said selected program.
Claim 5
Dependent Claim 221 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions, the apparatus comprising: table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the digital addresses in said table means; means for enciphering a plurality of instructions or portions of instructions in a selected program to produce enciphered instructions to be stored at memory locations specified by memory addresses, the enciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the digital addresses in said table means, the enciphering being a function of the digital word in said table means corresponding to the matching digital address; and means for deciphering one of said enciphered instructions or portion thereof whenever the instruction is fetched for execution from a memory location specified by a memory address if said determining means determines that the memory address of the fetched instruction matches one of the digital addresses in said table means, the deciphering being performed as a function of the digital word in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring enciphered instructions to unenciphered form during execution of said selected program.
Claim 6
Dependent Claim 17 words
The apparatus of claim 3 further including microprocessor means for fetching and executing said programs of instructions.
Claim 7
Dependent Claim 215 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions, the apparatus comprising: table means for storing a plurality of digital addresses, each digital address being addressable in the table means by a table address; means for determining whether a portion of a memory address matches one of the digital addresses in said table means; means for enciphering a plurality of instructions or portions of instructions in a selected program to produce enciphered instructions, each instruction to be stored at a memory location specified by a memory address having a first portion thereof equal to a specific table address for addressing said table means, the enciphering being performed on the instruction or portion thereof if said determining means determines that a second portion of the memory address of the instruction matches the digital address in said table means addressed by said specific table address; and means for deciphering one of said enciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address having a first portion thereof equal to the table address that addresses in said table means a digital address that matches a second portion of the memory address of the instruction, thereby restoring enciphered instructions to unenciphered form during execution of said selected program.
Claim 8
Dependent Claim 215 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions, the apparatus comprising: table means for storing a plurality of digital addresses, each digital address being addressable in the table means by a table address; means for determining whether a portion of a memory address matches one of the digital addresses in said table means; means for enciphering a plurality of instructions or portions of instructions in a selected program to produce enciphered instructions, each instruction to be stored at a memory location specified by a memory address having a first portion thereof equal to a specific table address for addressing said table means, the enciphering being performed on the instruction or portion thereof if said determining means determines that a second portion of the memory address of the instruction matches the digital address in said table means addressed by said specific table address; and means for deciphering one of said enciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address having a first portion thereof equal to the table address that addresses in said table means a digital address that matches a second portion of the memory address of the instruction, thereby restoring enciphered instructions to unenciphered form during execution of said selected program.
Claim 9
Dependent Claim 17 words
The apparatus of claim 5 further including microprocessor means for fetching and executing said programs of instructions.
Claim 10
Dependent Claim 230 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions stored in enciphered form as a plurality of portions of enciphered information, the apparatus comprising: means for deciphering portions of said enciphered information to produce deciphered instructions in a selected program; table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the digital addresses in said table means; means for reenciphering a plurality of said deciphered instructions or portions thereof to produce reenciphered instructions to be stored at memory locations specified by memory addresses, the reenciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the digital addresses in said table means, the reenciphering being a function of the digital word in said table means corresponding to the matching digital address; and means for redeciphering one of said reenciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address matching one of the digital addresses in said table means, the redeciphering being performed as a function of the digital word in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring reenciphered instructions to unenciphered form during execution of said selected program.
Claim 11
Dependent Claim 230 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions stored in enciphered form as a plurality of portions of enciphered information, the apparatus comprising: means for deciphering portions of said enciphered information to produce deciphered instructions in a selected program; table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the digital addresses in said table means; means for reenciphering a plurality of said deciphered instructions or portions thereof to produce reenciphered instructions to be stored at memory locations specified by memory addresses, the reenciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the digital addresses in said table means, the reenciphering being a function of the digital word in said table means corresponding to the matching digital address; and means for redeciphering one of said reenciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address matching one of the digital addresses in said table means, the redeciphering being performed as a function of the digital word in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring reenciphered instructions to unenciphered form during execution of said selected program.
Claim 12
Dependent Claim 35 words
The apparatus of claim 7 further including means for deciphering an enciphered key to produce a deciphered key corresponding to said selected program, said deciphered instructions being produced as a function of said deciphered key.
Claim 13
Dependent Claim 16 words
The apparatus of claim 7 further including microprocessor means for fetching and executing said deciphered instructions.
Claim 14
Dependent Claim 232 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions stored in enciphered form as a plurality of portions of enciphered information, the apparatus comprising: means for controlling deciphering of portions of said enciphered information to produce deciphered instructions in a selected program; table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the digital addresses in said table means; means for reenciphering a plurality of said deciphered instructions or portions thereof to produce reenciphered instructions to be stored at memory locations specified by memory addresses, the reenciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the digital addresses in said table means, the reenciphering being a function of the digital word in said table means corresponding to the matching digital address; and means for redeciphering one of said reenciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address matching one of the digital addresses in said table means, the redeciphering being performed as a function of the digital word in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring reenciphered instructions to unenciphered form during execution of said selected program.
Claim 15
Dependent Claim 232 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions stored in enciphered form as a plurality of portions of enciphered information, the apparatus comprising: means for controlling deciphering of portions of said enciphered information to produce deciphered instructions in a selected program; table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the digital addresses in said table means; means for reenciphering a plurality of said deciphered instructions or portions thereof to produce reenciphered instructions to be stored at memory locations specified by memory addresses, the reenciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the digital addresses in said table means, the reenciphering being a function of the digital word in said table means corresponding to the matching digital address; and means for redeciphering one of said reenciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address matching one of the digital addresses in said table means, the redeciphering being performed as a function of the digital word in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring reenciphered instructions to unenciphered form during execution of said selected program.
Claim 16
Dependent Claim 36 words
The apparatus of claim 10 further means for controlling deciphering of an enciphered key to produce a deciphered key corresponding to said selected program, said deciphered instructions being produced as a function of said deciphered key.
Claim 17
Dependent Claim 205 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions stored in enciphered form as a plurality of portions of enciphered information, the apparatus comprising: means for controlling deciphering of portions of said enciphered information to produce deciphered instructions in a selected program stored at memory locations specified by digital addresses, some of the deciphered instructions having been reenciphered; table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; tag means for each address in said table means indicating whether the corresponding instruction is reenciphered or not reenciphered; means for determining whether a memory address matches one of the digital addresses in said table means; and means for redeciphering one of said reenciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address that said determining means indicates as matching one of the digital addresses in said table means and if said tag means indicates that the instruction is reenciphered, the redeciphering being a function of the digital word in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring reenciphered instructions to unenciphered form during execution of said selected program.
Claim 18
Dependent Claim 205 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions stored in enciphered form as a plurality of portions of enciphered information, the apparatus comprising: means for controlling deciphering of portions of said enciphered information to produce deciphered instructions in a selected program stored at memory locations specified by digital addresses, some of the deciphered instructions having been reenciphered; table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; tag means for each address in said table means indicating whether the corresponding instruction is reenciphered or not reenciphered; means for determining whether a memory address matches one of the digital addresses in said table means; and means for redeciphering one of said reenciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address that said determining means indicates as matching one of the digital addresses in said table means and if said tag means indicates that the instruction is reenciphered, the redeciphering being a function of the digital word in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring reenciphered instructions to unenciphered form during execution of said selected program.
Claim 19
Dependent Claim 223 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions, the apparatus comprising: means for deciphering a plurality of enciphered addresses to produce deciphered addresses specifying locations in a memory; table means for storing a plurality of said deciphered addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the deciphered addresses in said table means; means for enciphering a plurality of instructions or portions of instructions in a selected program to produce enciphered instructions to be stored at memory locations specified by memory addresses, the enciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the deciphered addresses in said table means, the enciphering being a function of the digital word in said table means corresponding to the matching deciphered address; and means for deciphering one of said enciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address matching one of the deciphered addresses in said table means, the deciphering being performed as a function of the digital word in said table means corresponding to the deciphered address that matches the memory address of the instruction, thereby restoring enciphered instructions to unenciphered form during execution of said selected program.
Claim 20
Dependent Claim 223 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions, the apparatus comprising: means for deciphering a plurality of enciphered addresses to produce deciphered addresses specifying locations in a memory; table means for storing a plurality of said deciphered addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the deciphered addresses in said table means; means for enciphering a plurality of instructions or portions of instructions in a selected program to produce enciphered instructions to be stored at memory locations specified by memory addresses, the enciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the deciphered addresses in said table means, the enciphering being a function of the digital word in said table means corresponding to the matching deciphered address; and means for deciphering one of said enciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address matching one of the deciphered addresses in said table means, the deciphering being performed as a function of the digital word in said table means corresponding to the deciphered address that matches the memory address of the instruction, thereby restoring enciphered instructions to unenciphered form during execution of said selected program.
Claim 21
Dependent Claim 264 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions stored in enciphered form as a plurality of portions of enciphered information, the apparatus comprising: means for deciphering an enciphered program key as a function of a secret chip key to produce a deciphered program key corresponding to a selected program; means for deciphering portions of said enciphered information as a function of said deciphered program key to produce deciphered instructions in said selected program; table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the digital addresses in said table means; means for reenciphering a plurality of said deciphered instructions or portions thereof to produce reenciphered instructions to be stored at memory locations specified by memory addresses, the reenciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the digital addresses in said table means, the reenciphering being a function of the digital word in said table means corresponding to the matching digital address; and means for redeciphering one of said reenciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address matching one of the digital addresses in said table means, the redeciphering being performed as a function of the digital words in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring reenciphered instructions to unenciphered form during execution of said selected program.
Claim 22
Dependent Claim 264 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions stored in enciphered form as a plurality of portions of enciphered information, the apparatus comprising: means for deciphering an enciphered program key as a function of a secret chip key to produce a deciphered program key corresponding to a selected program; means for deciphering portions of said enciphered information as a function of said deciphered program key to produce deciphered instructions in said selected program; table means for storing a plurality of digital addresses and a corresponding plurality of multiple-bit digital words; means for determining whether a memory address matches one of the digital addresses in said table means; means for reenciphering a plurality of said deciphered instructions or portions thereof to produce reenciphered instructions to be stored at memory locations specified by memory addresses, the reenciphering being performed on an instruction or portion thereof if said determining means determines that the memory address of the instruction matches one of the digital addresses in said table means, the reenciphering being a function of the digital word in said table means corresponding to the matching digital address; and means for redeciphering one of said reenciphered instructions whenever the instruction is fetched for execution from a memory location specified by a memory address matching one of the digital addresses in said table means, the redeciphering being performed as a function of the digital words in said table means corresponding to the digital address that matches the memory address of the instruction, thereby restoring reenciphered instructions to unenciphered form during execution of said selected program.
Claim 23
Dependent Claim 145 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions stored in enciphered form as a plurality of portions of enciphered information, the apparatus comprising: means for deciphering portions of said enciphered information to produce deciphered instructions in a selected program stored at memory locations specified by digital addresses, some of the deciphered instructions being erroneous instructions; table means for specifying the digital addresses of said erroneous instructions; means for suppressing execution of a fetched instruction whenever the instruction is being fetched from a memory location specified by an address in said table means; and means for incrementing the digital address of said suppressed instruction to produce the address of the next sequential instruction whenever the instruction is being fetched from a memory location specified by an address in said table means, thereby bypassing said erroneous instructions during execution of the selected program.
Claim 24
Dependent Claim 145 words
A cryptographic apparatus for deterring unauthorized execution of computer programs of instructions stored in enciphered form as a plurality of portions of enciphered information, the apparatus comprising: means for deciphering portions of said enciphered information to produce deciphered instructions in a selected program stored at memory locations specified by digital addresses, some of the deciphered instructions being erroneous instructions; table means for specifying the digital addresses of said erroneous instructions; means for suppressing execution of a fetched instruction whenever the instruction is being fetched from a memory location specified by an address in said table means; and means for incrementing the digital address of said suppressed instruction to produce the address of the next sequential instruction whenever the instruction is being fetched from a memory location specified by an address in said table means, thereby bypassing said erroneous instructions during execution of the selected program.
Claim 25
Dependent Claim 35 words
The apparatus of claim 15 further including means for deciphering an enciphered key to produce a deciphered key corresponding to said selected program, said deciphered instructions being produced as a function of said deciphered key.
Claim 26
Dependent Claim 16 words
The apparatus of claim 15 further including microprocessor means for fetching and executing said deciphered instructions.

References Cited (Backward Citations)

US3906460A Cited
US4028678A Cited
US4120030A Cited
US4168396A Cited
US4278837A Cited
US4206315A Cited
US4281215A Cited
US4323921A Cited
US4264782A Cited
US4319079A Cited
US4306289A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1987-02-20 1987-08-22 1988-02-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1991-02-20 1991-08-22 1992-02-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1995-02-20 1995-08-22 1996-02-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag