WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Secure architecture and apparatus using an independent computer cartridge    
United States Patent5630057   
Link to this pagehttp://www.wikipatents.com/5630057.html
Inventor(s)Hait; John N. (Missoula, MT)
AbstractA computer architectural and apparatus system for preventing software copying or alteration, and providing enhanced computational capabilities, physical information security, and physical environment protection is disclosed. The system comprises an Independent Computer Module (ICM), and an Interface Unit. The ICM comprises a CPU, a RAM, a ROM, a memory switching means, a communications port, and a connectorless interface contained within a sealed cartridge. The Interface Unit comprises a receptacle for receiving the ICM, which contains a matching connectorless interface, and wiring to a host computer's port and power. The connectorless interface uses directional electro-magnetic emitters and sensors to prevent signal leakage. The memory switching means turns off the entire secure memory, enabling non-secure programs to be run from another section of RAM. Reactivation of secure memory by a non-secure program causes program control to be transferred to a fixed address within the secure program.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5630057
Secure architecture and apparatus using an independent computer cartridge - US Patent 5630057 Drawing
Secure architecture and apparatus using an independent computer cartridge
Inventor     Hait; John N. (Missoula, MT)
Owner/Assignee     Progressive Technology Inc. (Missoula, MT)
Patent assignment
All assignments
Publication Date     May 13, 1997
Application Number     08/677,324
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 1, 1996
US Classification     726/29
Int'l Classification     G06F 013/00
Examiner     Kriess; Kevin A.
Assistant Examiner     Chavis; John I.
Attorney/Law Firm     Schappert; Leonard D.
Address
Parent Case     This application is a continuation of application Ser. No. 08/235,248, filed Apr. 29, 1994, U.S. Pat. No. 5,581,763, which is a continuation of application Ser. No. 07/512,815 filed Apr. 23, 1990, abandoned, which is a continuation-in-part of application Ser. No. 07/206,001 filed June. 14, 1988, abandoned. ______________________________________ References Cited U.S. PATENT DOCUMENTS ______________________________________ 4,652,990 3/1987 Pailen et al. 364/200 4,521,853 6/1985 Guttag 364/200 4,328,542 5/1982 Anastas et al. 364/200 ______________________________________
Priority Data    
USPTO Field of Search     395/186 395/700
Patent Tags     secure architecture independent computer cartridge
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5497479
Hornbuckle
463/29
Mar,1996

[0 after 0 votes]
5438674
Keele
711/4
Aug,1995

[0 after 0 votes]
5065262
Blackborow

Nov,1991

[0 after 0 votes]
5025486
Klughart
340/3.1
Jun,1991

[0 after 0 votes]
4932826
Moy
414/277
Jun,1990

[0 after 0 votes]
4817140
Chandra
705/55
Mar,1989

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A secure computer architectural and apparatus system comprising an Independent Computer Module (here after referred to as an ICM), and an Interface Unit for providing two-way data communications between said ICM and a host computer;

said ICM comprising a single cartridge housing and a computer therein comprised of security-sensitive components including: a central data processing means, a memory means, an energy supply means, component interconnecting means, and a two-way data communications means for providing two-way data communications between said ICM and said Interface Unit;

said ICM further comprising at least one applications program within said memory means;

said memory means further comprising read/write random access type memory (RAM) as one portion of the addressable range of said memory means;

said RAM is to enable the operation of general purpose applications programs;

said two-way data communications means within said ICM further comprising a two-way data communications control means exclusively controlled by means of command-signals from said central data processing means;

said two-way data communications control means is to prevent said host computer from directly transferring data:

(a) into said memory means,

(b) into said central data processing means,

(c) out of said memory means,

(d) out of said central data processing means;

said Interface Unit is comprised of a means for two-way data communications with said ICM, a means for two-way data communications with said host computer, and a receptacle for receiving said ICM;

said secure computer architectural and apparatus system is for operating said at least one applications program contained within said ICM, while being able to prevent said at least one applications program from being down-loaded into said host computer, while being able to prevent said at least one applications program from being copied by said host computer, and while being able to prevent said at least one applications program from being altered by said host computer;

said single cartridge housing is to contain and prevent access to said security-sensitive components, to contain and prevent access to said at least one applications program, to prevent data communications into or out of said ICM by any means other than said two-way data communications means, while enabling booth said security-sensitive components and said at least one applications program to be simultaneously removed from said Interface Unit and made physically secure in a safe place.

2. A first portable secure computer architecture for protecting information and at least one program for controlling said information, comprising:

a single sealed cartridge and a computer contained within said cartridge, said computer having a central data processing means, communications means controlled by said central data processing means for providing information into and/or output from said cartridge and said computer, memory means controlled by said central data processing means, information within said memory means, at least one program within said memory means which controls said central data processing means and ultimately said information and said at least one program,

said computer further having a cryptographic program including at least one encryption/decryption key for encrypting outgoing information and decrypting incoming information, said cryptographic program having an only existing copy of said at least one encryption/decryption key which exists only in said portable secure computer architecture and which is unknown to any human.

3. The invention of claim 2 wherein said at least one encryption/decryption key is machine-generated.

4. The invention of claim 2 including at least one additional portable secure computer architecture which contains the same said only existing copy of said at least one encryption/decryption key

thereby facilitating secure communications between said portable secure computer architectures.

5. The invention of claim 3 including at least one additional portable secure computer architecture which contains the same said only existing copy of said at least one encryption/decryption key

thereby facilitating secure communications between said portable secure computer architectures.

6. A first portable secure computer architecture for protecting information and at least one program for controlling said information, comprising:

a single sealed cartridge and a computer contained within said cartridge, said computer having a central data processing means, communications means controlled by said central data processing means for providing information into and/or output from said cartridge and said computer, memory means controlled by said central data processing means, information within said memory means, at least one program within said memory means which controls said central data processing means and ultimately said information and said at least one program,

said computer further having a cryptographic program including at least one encryption key for encrypting outgoing information, said cryptographic program having an only existing copy of said at least one encryption key which exists only in said portable secure computer architecture and which is unknown to any human.

7. The invention of claim 6 wherein said at least one encryption key is machine-generated.

8. The invention of claim 6 including at least one additional portable secure computer architecture which contains the same said only existing copy of said at least one encryption key

thereby facilitating secure communications between said portable secure computer architectures.

9. The invention of claim 7 including at least one additional portable secure computer architecture which contains the same said only existing copy of said at least one encryption key

thereby facilitating secure communications between said portable secure computer architectures.

10. A first portable secure computer architecture for protecting information and at least one program for controlling said information, comprising:

a single sealed cartridge and a computer contained within said cartridge, said computer having a central data processing means, communications means controlled by said central data processing means for providing information into and/or output from said cartridge and said computer, memory means controlled by said central data processing means, information within said memory means, at least one program within said memory means which controls said central data processing means and ultimately said information and said at least one program,

said computer further having a cryptographic program including at least one decryption key for decrypting incoming information, said cryptographic program having an only existing copy of said at least one decryption key which exists only in said portable secure computer architecture and which is unknown to any human.

11. The invention of claim 10 wherein said at least one decryption key is machine-generated.

12. The invention of claim 10 including at least one additional portable secure computer architecture which contains the same said only existing copy of said at least one decryption key

thereby facilitating secure communications between said portable secure computer architectures.

13. The invention of claim 11 including at least one additional portable secure computer architecture which contains the same said only existing copy of said at least one decryption key

thereby facilitating secure communications between said portable secure computer architectures.

14. A method of providing user-specific operation of processing functions within a portable secure computer architecture comprising the following steps:

providing a portable secure computer having at least one program for controlling information within said portable secure computer capable of maintaining said control from within said portable secure computer to prevent tampering with said at least one program and said information;

providing a user-identification process within said at least one program for controlling program flow within said at least one program,

thereby providing user-specific control of said information and said at least one program within said portable secure computer.

15. The method of claim 14 including:

providing a cryptographic routine within said at least one program under said user-specific control which includes at least one decryption key for decrypting encrypted information input to said portable secure computer, said at least one decryption key being unavailable to a specific user of said portable secure computer architecture,

thereby providing a separation between the functions of user-identification and information protection through encryption, because said specific user is able to operate said at least one program that is able to use said encrypted information without revealing to said specific user said at least one decryption key used to protect said encrypted information, while maintaining control of all said information by said at least one program which is being continually protected within said portable secure computer architecture.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention is related to the safe and secure operation, transfer, and distribution of computer software and data. The present invention addresses three major security problem areas: software security, software physical security, and hardware security.

BACKGROUND OF THE INVENTION

Security problems arise during the use of software in computers whenever the host computer's architectural arrangement permits applications programs to be copied and/or altered. Pirates, whether they are "authorized" users or not, freely copy software for unauthorized sale and use. Software theft has become a multi-billion dollar illegal industry that is unstoppable by the prior art. Alteration of application programs by other computer programs also causes major computer security problems.

Rogue computer programs called "viruses" or "worms" alter software to produce unauthorized, undesirable, and often damaging effects. Such self-replicating secretly-operating programs are most often transferred from a rogue-contaminated computer into a new host computer by authorized operators who do not realize that these programs have entered by means of diskettes, modems or networks . . . and have attached themselves so as to lie hidden in unused areas of the host computer's data storage and active memory; integrated themselves into operating systems; and/or attached themselves to other host-stored applications programs. Once inside, a cleverly written rogue will pose a continuing threat from within tho host computer, and is capable of compromising the security of anything that passes through the infected computer to any other computer, since it is able to copy, alter, destroy, and/or scramble any information that is electrically accessible to any other program operating in the host computer. As a result, rogue programs have been used successfully to circumvent security programs for espionage, sabotage, and extortion.

Copying and alteration is enabled by the basic architectural arrangement of prior art computers, which permits all host-run programs to have equal and unrestricted access to all of the host computer's resources including: mass data storage devices, console I/O; inter-computer communications; computer peripherals; and any prior art security device attached to the host computer. Typically, a copy of an applications program stored on a mass data storage device is down-loaded into the RAM of the host computer. Once in RAM, that program copy is able to be altered and/or copied to any host resource, because the host resources are directly controlled by the command coding of the program which is operating in the host computer's memory regardless of whether the program in operation is a well behaved program, or an insidious rogue program.

Mass data storage devices are an especially vulnerable resource, since host-loaded programs are able to command any information to be copied into RAM, altered or eliminated . . . including copies of other applications programs. Computers are unable to determine the intent of a program. Yet, no means is provided to prevent rogue-infected applications programs from accessing information directly. As a result, any program operating in the host computer's memory is able to avoid information-protecting security software; run any other software while monitoring its operation; and alter, copy, or destroy any information, (program or data,) that is electrically accessible to programs having a different intent. Even the prior art security devices and their controlling host-run security software are subject to rogue attack, since they require the use of secure, dependable host-run programs to maintain security . . . programs that are able to be altered by other (possibly contaminated) host-run applications programs.

To prevent rogue activity, a special architecture is required, wherein the operating system in the host computer is electrically separated from potentially contaminating applications programs, which are run in an independent, isolated computer, so as to prevent direct access the host computer's resources. However, the prior art does not provide such an arrangement. As a result, only secure, dependable, well-behaved programs are able to be used in computers needing security. This precludes using any, even remotely suspect program. It hampers the ability to test and upgrade software, severely limiting the ability to maintain adequate security.

No provision is made in the prior art to run suspect programs in an isolated architecture. There are no provisions for up-loading a suspected program into the security device itself without compromising security. There are no provisions for physical distribution of applications software within a protected architecture and apparatus, nor does it permit the actual operation of applications programs within the distribution means so as to eliminate any need for down-loading software.

A rogue program hidden WITHIN A PRIOR ART SECURITY DEVICE that is able to down-load information into the host computer, which in turn, is able to become a part of host-run programming code is easily able to compromise the information contained within the host computer. Such a security device must be manufactured by a friendly source, and once wired in, it must remain a permanent part of the host computer. Prior security devices do not have provisions to protect from replacement with an unfriendly "secure" program. As a result, the host computer is not protected from the security device, and the security device is not protected from the host computer.

Physical information security, that is, the ability to physically remove from a computer all existing copies of sensitive information, and lock them up in a safe or keep them under guard, is rendered moot by the ability of host computers to make security-compromising copies of stored information . . . with, or without the operator's knowledge. Means is not provided for physical security so that the only-existing-copy of an applications program is able to be physically removed from a host computer and kept in a safe until needed, because such devices are able to leave a security-compromising copy behind.

Processors, memories, inter-resource communications means, and component interconnections are security-sensitive. If security-sensitive components are physically accessible, unauthorized equipment is able to be attached to circumvent security measures. Sensitive information in prior security devices is not protected by dedicated security-sensitive components, which are both electrically inaccessible, and housed in a single sealed removable cartridge; so that sensitive information is protected no mater what kind of a computer it is plugged into, or who plugs it in. Removal of a prior art security device from the host computer does not remove these security-sensitive components simultaneously with the applications program, and other secret information, so as to enable physical information security to be affective.

Software and other transportable information is not protected from environmental factors that easily damage or destroy transporting apparatus, and as a result the information inside.

Prior art security methods that use removable cartridges typically use connectors between a host computer's data and address bus and the information-containing cartridges. Such plug-in cartridges often spark or arc upon insertion or removal of the cartridge from its socket. Such methods become unacceptable in certain hazardous environments where explosive gases, or a high percentage of oxygen is present, where a single spark is able to ignite a fire or explosion. Such environments include the use of computers at fuel depots, and in industrial environments where computers are becoming common.

Even ordinary environments are hazardous to conventional computing equipment. Diskettes and disk drives used for software distribution contain delicate mechanical and electrical parts that fail in the presents of dirt or moisture. The result is that, the prior art does not permit such devices to be used in dirty, wet, chemical-filled, explosive, or other hazardous physical environments, while simultaneously maintaining software security. If the information-containing hardware is damaged or destroyed security has failed, because the secure information is rendered useless or inaccessible.

A related security problem arises during the use of computers which require security. Prior connectorless data communications methods, such as those that are used between some terminals and host computers, are subject to eavesdropping by near-by equipment when electro-magnetic means are used for the transfer of information.

Solutions to the above problems are not provided in the prior art as indicated in the following examples.

U.S. Pat. No. 4,652,990 of Pailen et al. discloses a user access control method, wherein a portable processor and ROM cartridge called a Key is provided with a means for connecting the Key memory to a Key Carrier Computer Bus, which is connected to a microprocessor within a security unit called a Key Carrier, which is connected between a host computer and a terminal to prevent access to the programs within the host computer by a person using that particular terminal. Authorized users insert their Key into the open bus structure of the Key Carrier. The host computer and the security unit then exchange information so that the program in the host computer is able to determine if authentication has been achieved. If so, the applications programs are then permitted to be run within the host computer.

Once an authorized user has been authenticated, he has access to applications programs which are down-loaded into the host computer. Since the Key's primary purpose is to determine authorization of those persons who are allowed to copy programs, no protection is provided to prevent any copying at all even by "authorized users". No provision is made to make copying of applications programs unnecessary by containing them in permanent ROMs within the Key cartridge. The authorized user is, as a result, able to make as many copies of the applications programs as he wishes . . . which enables him to become a pirate.

The Key system is lacking several features that prevent it from providing protection from rogue programs operating from within the host computer, and from copying by users, authorized or not. As is common in the prior art, the applications programs are located in the host computer, and the Key system is designed to simply prevent a user from accessing those programs. An electrical and architectural separation is not made between the security program running in the host computer and an isolated dedicated computer for the applications program, so as to protect the host computer's resources. The application program is not contained within the portable Key cartridge, which is lacking a RAM to permit an application program to actually run inside the cartridge rather than inside the host computer. Instead, the Key system relies on a special Key controller program that must operate within the host computer. This program complements the program running in the Key carrier. It is this host-run program that determines if authorization has been verified by the security apparatus, and permits access to the actual applications program down-loaded into the same host computer.

Damaging viruses are generally introduced inadvertently from a virus-contaminated applications program being run by an authorized user. Modern applications programs are quite complex, and even expert programmers have great difficulty in determining for sure that a given program is virus free, let alone the average software user. Since the Key system leaves the applications programs, including the security-controlling program inside the host computer, such programs are just as subject to viral attack from a contaminated program operating in the host computer, under the Key system, as with the rest of the prior art.

A virus, once operating within the host computer is able to attach itself to the Key controller program, record, duplicate or simulate any of the communications between the security device and the host computer, or simply permit access by an unauthorized person on a separate terminal. Such a rogue program is able to extract security information from other applications programs and permit their use, effectively bypassing the security system imposed. Once the virus program has gained program control, all of the host computer's resources are available to it, unprotected by the Key system.

Since the Key cartridge does not prevent applications programs from being copied by an "authorized user", the applications program is unable to be maintained as the only-existing-copy of said program. If the Key cartridge is locked up in a safe when the program is not being used, a thief is still able to break in and steal the host computer with the applications program inside; dismantle the computer; access the stored information directly; and disassemble the security program to determine how to circumvent it. The thief also is able to steal the diskettes or other storage devices that said program has been copied onto. As a result, the Key system does not provide for the physical security of applications programs.

Additionally, the Key system is designed to cut off communications between a host computer and a terminal. Many modern computers have discarded terminals all together in favor of an integrated video-keyboard-computer such as the IBM personal computer. The Key system requires a remote terminal in order to cut off user access, and is as a result, not applicable to many of today's common computers.

U.S. Pat. No. 4,521,853 of Guttag discloses a method for protecting information contained in a memory which is on the same silicon chip as a microprocessor. Peripheral devices are prevented from accessing the on-chip memory through the common bus arrangement connecting the CPU with off-chip memory. This apparatus is designed to function as the main processor of the computer. It is wired into, rather than being an addition to host computers of various types. A standard bus arrangement is used that is not isolated from a host computer to prevent the addition of security-defeating equipment. Host resources are not protected from a rogue program being operated by this processor, as it is connected directly by its bus system to the host resources in the conventional manner. Rogue programs are able to gain entry into the host computer because the applications programs are run inside that same host computer, rather than within a secure cartridge and architecture.

Like the Key system referred to above, this arrangement does not provide for the physical security of applications software, nor does it provide a convenient and secure method for the distribution of software in a secure cartridge. The device is not designed to be removed from the computer and locked up in a safe at night, nor is the software protected from destruction by hostile environments.

U.S. Pat. No. 4,328,542 of Anastas et al. uses wired-in multiple processors that are designed for the implementation and secure operation of particular parallel programming algorithms. The type of security provided is to prevent interference between multiple applications by multiple processors working on common data, even using common programs in common memory. This method had been designed to operate using well-behaved, coordinated programs written for parallel processing. This method does not provide security in the sense that a not-so-well-behaved rogue program is to be prevented from tampering with or copying information in RAM or on mass data storage devices. This example of the prior art does not address the problem of rogue-contaminated programs being down-loaded into the parallel architecture from non-secure mass storage devices. The method uses access authorization registers, an elaborate system of mating hardware, and a specialized software structure to verify the authorization of applications programs to be used in the computer itself rather than providing a secure architecture with a separate processor and dedicated memory to run applications programs. Host resources remain accessible to all programs, including rogue programs that are able to gain entry by means of contaminated authorized programs.

SUMMARY OF THE INVENTION

It is therefore an object of this invention to provide a new secure computer architectural and apparatus system for preventing copying or alteration of protected information.

It is the further object of this invention to provide a means for the distribution of software which does not leave the secure computer architecture by being down-loaded into any other device. Said software being stored, transported, and operated inside of the secure architecture and apparatus.

It is the further object of this invention to provide a computer architecture whereby applications programs are electrically isolated so as to prevent direct access to host computer resources.

It is the further object of this invention to provide a computer architecture wherein applications programs that are not originally a part of protected information are able to be up-loaded into the secure architecture and apparatus, modified, and operated; while still preventing these up-loaded applications programs from directly accessing host computer resources, or even the original applications programs manufactured into said apparatus.

It is the further object of this invention to provide protection for security-sensitive components within a single cartridge housing, including: ROM and RAM memories, a dedicated processor, inter-device communications, and an isolated memory control, address, and data bus system to prevent the direct accessing of information in said protected memories except by said dedicated processor under the sole control of command instructions within said protected memories.

It is the further object of this invention to provide a means to allow security-sensitive components of the new architecture, along, with protected information, all in a single cartridge housing, to be physically and simultaneously removed from the host computer and locked in a safe during periods of non-use in order to provide physical security for software and other information.

It is the further object of this invention to provide a means for the distribution of information, including software, in an apparatus that is less sensitive to physically damaging environmental factors.

It is the further object of this invention to provide a means for enhanced computational capabilities by providing at least one additional fully functioning secure computer which runs simultaneously with a host computer.

The system consists of a specialized computer architecture and apparatus having a specially selected portion contained within a special sealed cartridge, together called an Independent Computer Module (ICM). The ICM contains a fully functioning computer including: a CPU, RAM, ROM, a specialized memory switching means, and a communications port for providing a two-way communications link with a host computer, through a specialized connectorless interface (rather than a conventional plug or connector.) The host computer is fitted with a receptacle for holding the ICM, called an Interface Unit, which contains a matching connectorless interface, and a means for direct electrical connection to a communications port on the host computer, and a means to supply electrical energy to the ICM.

The ICM is inserted into the Interface Unit. The host computer contains a program for communicating with the ICM that provides ICM-based programs with host-software-controlled access to the host's various hardware resources such as mass data storage, keyboard input, and video display. The applications program within the ICM requests the services of a host function by sending a function command, and any needed data, over the communications link. The host computer responds by accomplishing the requested function, in a manner similar to the way a conventional operating system (such as MS-DOS) provides such services to an applications program running in the host memory. However in this case, the operating system program returns any required response to the ICM through the communications link.

The operating system program does not need to authenticate authorized users in order to provide security, since primary security is provided by the architecture and apparatus, not by the software in the host computer. No new programming methods are required. The above list of tasks required for the operation of ICM-based programs is common to the programming art.

In the prior art, it is common to have a wide variety of outside devices controlling computer memory, I/O, and even the CPU itself. Multiple programs are commonly loaded into memory, each having complete access to all of the host computer's resources. It is a major feature of the present invention that the ICM is a fully functioning computer, separate and isolated from the host computer, by the fact that there are no address or control bus connections between ICM components and the CPU of the host computer, or any other device outside of the ICM cartridge. Rather, the teachings of this invention require a two-way communications link that is always controlled by the cartridge-borne computer on one end, and the host computer on the other end. The ICM provides this controlled information transfer through a communications port, within the ICM cartridge. Control wires for this two-way communications port are only connected to the ICM-based CPU (other than conventional handshaking signals which only indicate the presence of information to be transferred and do not actually transfer said information into ICM or host memory.) This CPU is connected to no memory, except that which is contained within the ICM cartridge. As a result, the communications port will respond only to command-signals from the ICM-based CPU, which is activated by no command coding except those program codes which are contained in the ICM memory.

The direct result of this architecture is that ICM-based program commands are the exclusive means for controlling: 1. information transfer into and out of the ICM cartridge; 2. the addresses in ICM memory where input information is stored or output information is taken from; and 3. whether or not any such information ever becomes a part of ICM program command coding. Because of this centralized control, a specific routine within the ICM-based program to output or alter any portion of ICM-based information, including program code, is the only method by which information in any ICM memory is able to be output or altered. In the absence of any such routine, no copy of said information is able to be provided to any outside device. Likewise, no input information is able to become a part of the ICM-based program code without a direct provision in the ICM program for including such as a part of its program code. Because of the new architectural arrangement, the ICM-based program is able to protect itself from alterations and copying. Note that new programming methods and electronic components are not required to implement such programming, or operate such a port, which is similar in operation to the common RS-232 type port in a conventional computer.

Listed below are a series of benefits that are produced as a direct result of this portion of the new architecture, and help explain why it actually produces greater security.

ICM-based programs are unable to be copied out of, or altered within the ICM cartridge without the use of specific preprogrammed routines that must be a part of the coding manufactured into the ICM. Barring any such routine inserted at the time of manufacture, ICM-based programs are unable to be copied or altered. As a result, ICM-based programs are unable to be pirated by authorized users, or successfully attacked by a rogue program such as virus or worm.

The ICM architectural system provides security for the host computer even from a rogue program that potentially is even able to be manufactured into an ICM. Such protection is provided for the same reasons the new architecture produces security for the ICM-based programs namely: a separate computer for the applications program, bus separation, and a host-controlled communications port. The host computer necessarily has to apply the same programming restrictions, namely: information down-loaded from an ICM is not to be used as program code within the host computer, and host-defined secret information is not to be up-loaded into an ICM--functions which are completely defined and controlled by the command structure of the host software. If the host computer is designed to use ICM programs exclusively, then the host computer is able to be kept clean of any viral contamination, because all applications programs are run inside ICMs rather than in the host computer.

The new architectural arrangement allows limits to be placed on ICM access to important host resources such as mass data storage, so that only information which the host operating system program is programmed to transfer are able to be. For example, the host program is able to allow the ICM-based program to read information from a disk file by name, but is able to prevent access to stored information by track and sector, such as a host-borne applications program is able to do. Such direct access to mass data storage is a common way in which virus programs are able to spread. By preventing direct track and sector access, the host computer is safeguarded from this type of rogue program attack.

The host program is able to restrict file access by an ICM-based program to authorized data files, and is able to prevent alteration, copying, or unauthorized use of host-run software. This prevents the program running in the ICM from circumventing any security provisions the host program imposes by directly accessing the hardware. Because of this, security is provided for both ICM and host. This method allows the host program to limit the activity of potential rogue programs that are able to be manufactured into an ICM, while protecting ICM programs from potential rogue programs in a host computer.

The above listed benefits come as a direct result of the above-described portion of the new architecture, but the exact implementation and coding needed to accomplish the above procedure is already a standard part of the programming art.

Another important portion of the new architecture is memory bank switching. This bank switching arrangement consists of a division of the ICM internal memory into at least two types of subdivisions called Executive Memory and General Memory; each is independently addressable. A means is included for selecting or not selecting the entire Executive Memory by turning on and off all read/write bus access to it. Access is turned off by the ICM-based CPU execution of a specific command from an ICM-based program. A latch is provided for holding the off state until access is resumed (turned on) by the execution of another specific direct program command from the ICM-based CPU. However, the command control signal which switches the Executive Memory back on is connected so as to simultaneously produce a non-maskable interrupt, that is, a forced program control jump to a fixed location within the secure Executive Memory. The two memory subdivisions are able to be made up of both RAM and ROM, however the secure Executive section has at least one portion constructed which uses a non-volatile ROM, and a portion of the General Memory subdivision is constructed using read/write RAM. This feature of the new architecture works harmoniously with the other features of the present invention in order to produce security results unavailable in the prior art.

The following sequence of programming events illustrate how this portion of the new architecture is used to produce enhanced security. As in conventional computers, upon power-up a restart signal initializes the program instruction pointer register of the CPU to a fixed starting address, where the initializing program begins. In the ICM, this fixed starting address is in the security-controlling program in the Executive Memory put into ROM during ICM manufacture. The secure program is then running, having the entire ICM memory protected by its bus isolation from the host computer, and available for use. Then, either because of a function request from the host computer to the ICM, or because of a needed of the secure program, a function command is issued by the ICM to the host computer to up-load program instructions of another, possibly non-secure, program. Up-loaded instructions are then written by the secure program into the RAM of the General Memory section, but are not yet executed as a part of any program instructions. Rather, the secure program issues a specific command to turn off the entire secure Executive Memory subdivision making the programs contained in it, electrically inaccessible to the ICM-based CPU, and any program in the General Memory. Only then is program control transferred to the up-loaded program. Upon completion of the up-loaded program, a specific command is issued by the up-loaded program, to turn the secure Executive Memory back on. Because of the new architecture, an automatic, simultaneous jump occurs in program control to a fixed address within the secure Executive Memory. The program coding which begins at this address, is able to examine CPU registers to determine if an allowable function request is underway, or is able to terminate the non-secure program. Not allowable functions for which no programming code is provided, include those requests which copy secret information into GENERAL RAM, down-load secret information to the host computer, alter secure programs, or transfer program control to a non-secure program while bypassing the required Executive Memory turn-off procedure above. If the non-secure program is terminated, then General Memory RAM is able to be overwritten, clearing it for secure use once again.

The actual program codes used to accomplish the above listed steps are a matter of the common programming art, and depend upon the ICM-based CPU type. But, the above sequence of events is required for the proper operation of the invention, which will then produce these direct results: Non-secure programs and subroutines are able to be up-loaded into the ICM and run without compromising the secure areas of ICM memory, because the secure Executive Memory is completely inaccessible to the ICM-based CPU when in the off state. Secure programming is able to resume without compromising security because program control is immediately transferred to a specific security routine in the secure Executive Memory. Secure-program-controlled communications are able to take place between secure and non-secure programs within the ICM.

The same security which is afforded the host computer from potential rogue programs in the secure portion of an ICM, as described above, is afforded to the host computer during the operation of non-secure, suspect, or any other program up-loaded into the ICM, for the same architectural reasons, namely: an independent applications-program-running computer, bus separation, controlled communications link, and selected programming which does not include security compromising routines in the host program. The host computer is able to prevent copying, alteration, or viral contamination of critical software. The host computer is still able to maintain its general purpose nature by running only the security operating system used to communicate with the ICM, operating only ICM-based programs, and/or by up-loading all other applications programs into the secure confines of the ICM.

It is an integral feature of the present invention that all of the security-sensitive components of the