A method for binding a computer program to an analog physical signature device to form an interactive system for controlling the use of the computer program, the method comprising the steps of providing instructions comprising the computer program, the instructions implementing an intended functionality, providing the analog physical signature device to which the computer program is to be bound, the analog physical signature device being operative, in response to an analog input, to transform the analog input into a consequent, dependent analog output, and replacing at least one code segment of the instructions representing a program expression, with an alternative code segment, the alternative code segment defining a predetermined digital input that is causally related to a predetermined analog input by means of the interactive system, the alternative code segment being operative, when encountered during execution of the instructions comprising the computer program, to cause the predetermined analog input to be communicated to the bound analog physical signature device by means of the interactive system, the bound analog physical signature device being operative to transform the predetermined analog input to a consequent, dependent analog output that is causally related to a consequent, dependent digital output by means of the interactive system, the alternative code segment being operative to perform program functionality dependent upon the predetermined digital input and the consequent, dependent digital output.
|
0. 103. A method for preventing unauthorized modification and duplication of software code on a computing device comprising:
receiving a digital input from a computing device;
converting the digital input to an analog input signal selected from the group consisting of a light wave and a sonic wave;
transmitting the analog input signal across an immutable, inhomogeneous material configured to transform the analog input signal to a corresponding analog output signal different from the analog input signal;
converting the analog output signal to a digital output signal; and
transmitting the digital output signal to the computing device.
0. 86. An interactive system for binding a computer program comprising:
first code segment means for defining a predetermined digital input;
digital-to-analog conversion means for converting the predetermined digital input to a corresponding analog input;
analog physical signature means for transforming the corresponding analog input into a consequent, dependent analog output different from the corresponding analog input;
analog-to-digital conversion means for converting the consequent, dependent analog output of the analog physical signature means to a predefined digital output; and
second code segment means for performing program functionality dependent upon the predefined digital output.
0. 79. An interactive system for binding a computer program comprising:
a first code segment defining a predetermined digital input;
a digital-to-analog conversion circuit configured to convert the predetermined digital input to a corresponding analog input and to communicate the analog input;
an analog physical signature device configured to transform the analog input into a consequent, dependent analog output different from the analog input;
an analog-to-digital conversion circuit configured to convert the consequent, dependent analog output of the analog physical signature device to a predefined digital output; and
a second code segment configured to perform program functionality dependent upon the predefined digital output.
0. 72. A method for binding a computer program to an analog physical signature device comprising:
executing a code segment, the code segment defining a predetermined digital input for transformation by an analog physical signature device;
converting the digital input to an associated analog input;
communicating the associated analog input to the analog physical signature device;
the analog physical signature device transforming the associated analog input to a consequent, dependent analog output different from the input;
converting the analog output to an associated digital output; and
returning the associated digital output to the code segment, the code segment being operative to perform program functionality dependent upon the associated digital output.
0. 93. An analog physical signature transformation device for preventing unauthorized modification and duplication of software code on a computing device, the analog physical signature transformation device comprising:
an input configured to interface with the computing device;
an output configured to interface with the computing device; and
an immutable, inhomogeneous material coupled between the input and the output and configured to transform an input radiant wave received at the input to a corresponding output radiant wave at the output different from the input radiant wave;
wherein the input radiant wave is one selected from the group consisting of a light wave and a sonic wave; and
wherein the immutable, inhomogeneous material comprises at least one of:
a membrane stretched over a rigid structure;
a closed partially hollow container filled with a viscous fluid;
a closed hollow container filled with ringing metal objects;
a glass mirror having impurities embedded therein;
a glass mirror having surface irregularities; and
a glass mirror having an inhomogeneous metallic backing.
0. 98. An analog physical signature transformation device for preventing unauthorized modification and duplication of software code on a computing device, the analog physical signature transformation device comprising:
input means for interfacing with the computing device;
output means for interfacing with the computing device; and
transformation means for transforming an input radiant wave received at the input means to a corresponding output radiant wave at the output means different from the input radiant wave, wherein the transformation means include an immutable, inhomogeneous material coupled between the input means and the output means;
wherein the input radiant wave is one selected from the group consisting of a light wave and a sonic wave; and
wherein the immutable, inhomogeneous material comprises at least one of:
a membrane stretched over a rigid structure;
a closed partially hollow container filled with a viscous fluid;
a closed hollow container filled with ringing metal objects;
a glass mirror having impurities embedded therein;
a glass mirror having surface irregularities; and
a glass mirror having an inhomogeneous metallic backing.
1. A method for binding a computer program to an analog physical signature device to define an interactive system that controls the use of the computer program for its intended purpose, the method comprising the steps of:
(a) providing instructions comprising the computer program, the instructions implementing an intended functionality;
(b) providing the analog physical signature device to which the computer program is to be bound, the analog physical signature device being operative, in response to an analog input, to transform the analog input into a consequent, dependent analog output; and
(c) replacing a code segment of the computer program instructions representing a program expression with an alternative code segment, the alternative code segment defining a predetermined digital input that is causally related to a predetermined analog input by means of the interactive system;
(d) the alternative code segment being operative, when encountered during execution of the instructions comprising the computer program, to cause the predetermined analog input to be communicated to the analog physical object by means of signature device using the interactive system;
(e) the analog physical signature device being operative configured to transform the predetermined analog input to a consequent, dependent analog output that is causally related to a predefined digital output by means of using the interactive system; and
(f) the alternative code segment being operative configured to perform program functionality dependent upon the predetermined digital input and the predefined digital output.
37. An interactive system for binding a computer program, the computer program including instructions for implementing an intended functionality, the interactive system comprising:
an analog physical signature device that is operative to transform an analog input into a consequent, dependent analog output;
an alternative code segment that replaces a code segment of the computer program instructions representing a program expression to bind the computer program to the analog physical signature device, the alternative code segment defining a predetermined digital input;
a digital-to-analog conversion means in communication with the computer program and the analog physical signature device and operative to causally relate the predetermined digital input to a predetermined analog input that is communicated to the analog physical signature device wherein the predetermined analog input is transformed into a consequent, dependent analog output; and
an analog-to-digital conversion means in communication with the computer program and the analog physical signature device and operative to causally relate the consequent, dependent analog output to a predefined digital output;
the alternative code segment including instructions for communicating the predetermined digital input to the digital-to-analog conversion means, for retrieving the predefined digital output from the analog-to-digital conversion means, and for functionally processing the predefined digital output;
wherein, when the alternative code segment is encountered during execution of the computer program instructions, the alternative code segment is operative to communicate the predetermined digital input to the digital-to-analog conversion means and to perform program functionality dependent upon the predetermined digital input and the predefined digital output retrieved from the analog-to-digital conversion means.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
0. 8. The method of
0. 9. The method of
0. 10. The method of
0. 11. The method of
0. 12. The method of
0. 13. The method of
0. 14. The method of
0. 15. The method of
0. 16. The method of
0. 17. The method of
0. 18. The method of
0. 19. The method of
0. 20. The method of
0. 21. The method of
22. The method of
23. The method of
24. The method of
25. The method of
26. The method of
27. The method of
28. The method of
29. The method of
30. The method of
31. The method of
32. The method of
33. The method of
34. The method of
35. The method of
36. The method of
replacing a plurality of code segments of the computer program instructions representing a corresponding plurality of program expressions with alternative code segments, each alternative code segment defining a predetermined digital input that is causally related to a predetermined analog input by the interactive system such that each of the alternative code segments is operative to perform program functionality dependent upon the predetermined digital input and the predefined digital output associated with each such alternative code segment.
38. The interactive system of claim 1 37 wherein the analog physical signature device comprises:
a relatively complex, immutable, inhomogeneous material that is operative to transform the predetermined analog input into the consequent, dependent analog output;
means in communication with the digital-to-analog conversion means and operative to interact the analog input with the relatively complex, immutable, inhomogeneous material; and
means for detecting the consequent, dependent analog output from the relatively complex, immutable, inhomogeneous material.
39. The interactive system of
40. The interactive system of
41. The interactive system of
42. The interactive system of
43. The interactive system of
44. The interactive system of
45. The interactive system of
46. The interactive system of
47. The interactive system of
48. The interactive system of
49. The interactive system of
50. The interactive system of
51. The interactive system of
52. The interactive system of
53. The interactive system of
0. 54. The interactive system of
0. 55. The interactive system of
0. 56. The interactive system of
0. 57. The interactive system of
0. 58. The interactive system of
0. 59. The interactive system of
0. 60. The interactive system of
0. 61. The interactive system of
0. 62. The interactive system of
0. 63. The interactive system of
0. 64. The interactive system of
0. 65. The interactive system of
0. 66. The interactive system of
0. 67. The interactive system of
68. The interactive system of
69. The interactive system of
70. The interactive system of
71. The method of
0. 73. The method of claim 72, wherein the associated digital output is used in the code segment as one of a program constant, a computational constant, a logical constant, a representational constant, a message constant, a program variable, an input variable, an intermediate result variable, a pointer variable, an output variable, a program function, an offset function, a size function, a format function, a mathematical function, and a scientific function.
0. 74. The method of claim 72, wherein the analog physical signature device comprises an immutable, inhomogeneous material that is operative to transform an input radiant wave to a corresponding output radiant wave different from the input radiant wave.
0. 75. The method of claim 74, wherein the radiant wave is a sonic wave.
0. 76. The method of claim 74, wherein the radiant wave is a light wave.
0. 77. The method of claim 72, wherein the code segment is configured to perform an intended function only upon reception of the associated digital output that has been properly transformed by the analog physical signature device.
0. 78. The method of claim 72, wherein the code segment is configured to perform an incorrect function upon reception of the associated digital output that has not been properly transformed by the analog physical signature device.
0. 80. The interactive system of claim 79, wherein the second code segment is configured to use the predefined digital output as one of a program constant, a computational constant, a logical constant a representational constant, a message constant, a program variable, an input variable, an intermediate result variable, a pointer variable, an output variable, a program function, an offset function, a size function, a format function, a mathematical function, and a scientific function.
0. 81. The interactive system of claim 79, wherein the analog physical signature device comprises an immutable, inhomogeneous material that is operative to transform an input radiant wave to a corresponding output radiant wave different from the input radiant wave.
0. 82. The interactive system of claim 81, wherein the input radiant wave is a sonic wave.
0. 83. The interactive system of claim 81, wherein the input radiant wave is a light wave.
0. 84. The interactive system of claim 79, wherein the second code segment is configured to perform an intended function only upon reception of the associated digital output that has been properly transformed by the analog physical signature device.
0. 85. The interactive system of claim 79, wherein the second code segment is configured to perform an incorrect function upon reception of the associated digital output that has not been properly transformed by the analog physical signature device.
0. 87. The interactive system of claim 86, wherein the second code segment means is configured to use the predefined digital output as one of a program constant, a computational constant, a logical constant, a representational constant, a message constant, a program variable, an input variable, an intermediate result variable, a pointer variable, an output variable, a program function, an offset function, a size function, a format function, a mathematical function, and a scientific function.
0. 88. The interactive system of claim 86, wherein the analog physical signature means comprises an immutable, inhomogeneous material that is operative to transform an input radiant wave to a corresponding output radiant wave different from the input radiant wave.
0. 89. The interactive system of claim 88, wherein the input radiant wave is a sonic wave.
0. 90. The interactive system of claim 88, wherein the input radiant wave is a light wave.
0. 91. The interactive system of claim 86, wherein the second code segment means is configured to perform an intended function only upon reception of the predefined digital output that has been properly transformed by the analog physical signature means.
0. 92. The interactive system of claim 86, wherein the second code segment means is configured to perform an incorrect function upon reception of the predefined digital output that has not been properly transformed by the analog physical signature means.
0. 94. The analog physical signature transformation device of claim 93, wherein the immutable, inhomogeneous material is one of (i) a solid block and (ii) a membrane stretched over a rigid structure.
0. 95. The analog physical signature transformation device of claim 93, wherein the immutable, inhomogeneous material is one of (i) a closed partially hollow container filled with a viscous fluid, (ii) a closed hollow container filled with ringing metal objects, and (iii) a disc of porous sintered metal.
0. 96. The analog physical signature transformation device of claim 93, wherein the immutable, inhomogeneous material further comprises one of (i) a solid translucent rod having small reflective flakes embedded therein and (ii) a solid translucent rod having small translucent colored spheres embedded therein.
0. 97. The analog physical signature transformation device of claim 93, wherein the immutable, inhomogeneous material is one of (i) a glass mirror having impurities embedded therein, (ii) a glass mirror having surface irregularities, and (iii) a glass mirror having an inhomogeneous metallic backing.
0. 99. The analog physical signature transformation device of claim 98, wherein the immutable, inhomogeneous material is one of (i) a solid block and (ii) a membrane stretched over a rigid structure.
0. 100. The analog physical signature transformation device of claim 98, wherein the immutable, inhomogeneous material is one of (i) a closed partially hollow container filled with a viscous fluid, (ii) a closed hollow container filled with ringing metal objects, and (iii) a disc of porous sintered metal.
0. 101. The analog physical signature transformation device of claim 98, wherein the immutable, inhomogeneous material further comprises one of (i) a solid translucent rod having small reflective flakes embedded therein and (ii) a solid translucent rod having small translucent colored spheres embedded therein.
0. 102. The analog physical signature transformation device of claim 98, wherein the immutable, inhomogeneous material is one of (i) a glass mirror having impurities embedded therein, (ii) a glass mirror having surface irregularities, and (iii) a glass mirror having an inhomogeneous metallic backing.
0. 104. The method of claim 103, wherein the immutable, inhomogeneous material is one of (i) a solid block and (ii) a membrane stretched over a rigid structure.
0. 105. The method of claim 103, wherein the immutable, inhomogeneous material is one of (i) a closed partially hollow container filled with a viscous fluid, (ii) a closed hollow container filled with ringing metal objects, and (iii) a disc of porous sintered metal.
0. 106. The method of claim 103, wherein the immutable, inhomogeneous material is one of (i) a solid translucent rod having small reflective flakes embedded therein and (ii) a solid translucent rod having small translucent colored spheres embedded therein.
0. 107. The method of claim 103, wherein the immutable, inhomogeneous material is one of (i) a glass mirror having impurities embedded therein, (ii) a glass mirror having surface irregularities, and (iii) a glass mirror having an inhomogeneous metallic backing.
|
This invention was made with Government support under Contract No. FA8650-04-C-8002 awarded by the Department of the Air Force Small Business Innovative Research (SBIR) program. The Government has certain rights in the invention.
This application is directed generally to computer resource security, and more specifically, to the binding of analog physical signature devices to computer resources for the purpose of identifying and controlling the use of such bound computer resources.
The security of computer resources has many diverse aspects. The facet of security of concern herein is controlling the use of computer resources. By computer resources we shall mean throughout both computer hardware operated by means of program instructions (e.g., central processing unit, storage disc and peripheral device) and computer software that comprises said program instructions (e.g., executable computer program, linkable object library and programming language source code). A method and system to control the use of a computer resource provides the means to describe, implement and enforce policies regarding where, when, why, how, and by whom the computer resource may be used.
Controlling the use of computer resources provides benefits to both the entity providing the computer resources and the entity using the computer resources. The entity providing the computer resources can, for example, rely on methods and systems for controlling use of the computer resources to insure that the computer resources are used in the proper place, at the proper time, in the proper way and by the proper user. On the other hand, the entity using computer resources can, for example, rely on methods and systems for controlling use computer resources to insure that the computer resources are fit-for-purpose, are in working condition, are the latest versions and are genuine and unaltered.
A necessary component of methods and systems for controlling the use of computer resources is the reliable and unambiguous identification of individual computer resources. For example, to implement the policy that a particular program must only be used on a particular computer, it is necessary to be able uniquely identify both the individual program and the individual computer.
An individual computer resource can be provided with a unique identification by binding it to a uniquely identified physical object. The metallic serial number tag on the back of a computer chassis is an example of identifying an individual computer resource by binding it to a uniquely identified physical object. The product identification sticker on the jewel case or shrink-wrap containing an individual computer program is another example of identifying an individual computer resource by binding it to a uniquely identified physical object.
In order to be reliable and unambiguous, the identification of individual computer resources must be provided in a way that cannot be subverted, modified, sabotaged, tampered, altered, cloned, copied, or in any other way, means or manner undermined by parties seeking to violate the control of the computer resource. Examples of acts to be rendered as practically impossible include, but are by no means limited to, removing the identification of an individual computer resource (“anonymizing”), changing the identification of an individual computer resource to the identity of a second computer resource (“spoofing”), and creating a second computer resource with the same identification as an existing computer resource (“cloning”).
Both of the examples of computer resource identification through binding to a uniquely identified physical object above, the serial number tag and the product identification sticker, are subject to all three of these attacks. Both the serial number tag and the product identification sticker can be removed (“anonymizing”), attached to alternative computer resources (“spoofing”), and duplicated (“cloning”).
These attacks and others mounted on the identification of an individual computer resource through binding to a uniquely identified physical object are mounted on the uniquely identified physical object as well as the binding of the uniquely identified physical object to the individual computer resource. Therefore, both the nature of the uniquely identified physical object and the nature of its binding to the individual computer resource must be considered when assessing the suitability and security of means for providing an individual computer resource with a unique identification through binding to an uniquely identified physical object.
There are in the current art methods and systems for the identification of an individual computer resource through binding to a uniquely identified physical object. In order to counter attacks on the binding of the computer resource to the uniquely identified physical object in this case, means are provided such that the individual computer resource operates correctly if and only if the binding to the uniquely identified physical object is intact. A physical device employed as the uniquely identified physical object in the identification of an individual computer resource is designated as a physical signature device because the successful use of the individual computer resource implies the presence of the physical signature device and thus the physical signature device can be said to sign for and consequently authorize the use of the individual computer resource.
A familiar and widely used example of binding a software computer resource to a physical signature device is described and claimed in U.S. Pat. No. 4,599,489 (Solid state key for controlling access to computer software). Such a device is often referred to as a “dongle”. An executable program software computer resource that is bound to an individual dongle will operate correctly if and only if it is currently connected to that individual dongle. In other words, the dongle is a physical signature device.
Physical signature devices are of two kinds: digital and analog. The dongle is an example of a digital physical signature device. It stores a particular identification number in digital circuitry and provides this identification number in digital form to the executable program on demand, typically through the serial, parallel or USB port on the computer on which the executable program is being used. When the executable program is placed into execution, the executable program checks for the presence of an individual dongle on the communication port and only continues to execute if the individual dongle is found to be present on the communication port.
As another example of a digital physical signature device is the trusted computing platform. An example of this technique is described and claimed in U.S. Pat. No. 6,327,652 (Loading and identifying a digital rights management operating system). When an executable program is placed into execution on an individual trusted computing platform, the executable program performs a cryptographic protocol to verify the authenticity of the credentials of the individual trusted computing platform. If the credentials of authenticity not present or are not in order then the executable program does not continue execution.
A shortcoming of methods and systems based on digital physical signature devices such as the dongle and the trusted computing platform is that explicit instruction sequences must be included in and executed by the executable program to interact with the digital physical signature device. These instruction sequences in the executable program, however, can be excised from or bypassed without affecting the functionality of the computer resource. In this way, a version of the computer resource is created that can used successfully without requiring the presence of the digital physical signature device (“anonymizing”).
Another shortcoming of methods and systems that use digital physical signature devices such as the dongle and the trusted computing platform is that additional means must be provided to make it difficult to fabricate duplicate copies of the digital physical signature devices (“cloning”) and to ensure that the unique identification provided by the digital physical signature device cannot be altered (“spoofing”). Providing these means adds expense to the production of both the computer resource and the uniquely identified physical object used for its identification and control of its use.
Another shortcoming of methods and systems that use digital physical signature devices such as the dongle and the trusted computing platform is that few precautions are taken to prevent intrusive physical investigation and analysis (“tamper-resistance”) and intrusive physical investigations and analyses may be performed without leaving any indications that an intrusion has been made or attempted (“tamper-evidence”).
Another method and system available in the current art to control the use of a computer resource using a digital physical signature device is based on encryption of the instructions for operating the computer resource and execution of the encrypted instructions inside a special-purpose processor that is operative to decrypt the instructions as they are used to operate the computer resource. An example of this technique for an executable program software computer resource is described and claimed in U.S. Pat. No. 5,123,045 (Comprehensive software protection system). The executable program and the data to which it is being applied are stored in an encrypted form in an uncontrolled computer memory. The uncontrolled computer memory is connected to a controlled central processing unit that is contained in a sealed, tamper-resistant enclosure. The controlled central processing unit retrieves the encrypted instructions and data from the uncontrolled computer memory, decrypts the instructions and data once they are inside the controlled central processing unit, encrypts the results of applying the decrypted instructions to the decrypted data, and places the encrypted results back in the uncontrolled memory.
One shortcoming of this method and system is that it requires a special-purpose computer in a secure enclosure, which adds expense to the production of both the computer resource and the uniquely identified physical object used for its identification. Another shortcoming of this method and system is that the computer resource operates more slowly than it is capable of operating due to the necessity to continuously decrypt the instructions and the data with and on which it operates and to continuously encrypt the results of applying the decrypted instructions to the decrypted data. Another shortcoming of this method and system is that is not readily applied to computer resources other than executable program software computer resources.
A need exists, therefore, to provide a low-cost physical signature device and a method and system for binding said low-cost physical signature device to computer resources for the purpose of controlling the use of computer resources that does not exhibit the above-mentioned shortcomings of the current art. Such a physical signature device should provide a unique indicium (“signature”). Such as physical signature device should be difficult to alter or duplicate. Such a physical signature device should be easily and yet tightly, securely and irrevocably bound to a computer resource. Such a physical signature device should be tamper-resistant and tamper-evident. Such a physical signature device should be able to be used with many different kinds of hardware and software computer resources. The security provided by such a physical signature device should not be based exclusively on instructions for the purpose of interacting with the device. Nor should such a physical signature device require the encryption/decryption of the operating instructions for the computer resource or the use of a special purpose central processing unit.
An object of the present invention is providing a low-cost analog physical signature device that provides a unique signature, is difficult to duplicate, and is tamper-resistant and tamper-evident. An additional object of the present invention is providing a low-cost analog physical signature device and a method and system for binding such an analog physical signature device to computer resources for the purpose of controlling the use of such computer resources. An additional object of the present invention is providing a low-cost analog physical signature device and a method and system for binding such an analog physical signature device to computer resources for the purpose of protecting against reverse engineering.
These and other objects of the present invention are provided by the relatively complex, immutable, inhomogeneous and unique properties of an individual physical object that is bound to an individual computer resource for the purpose of identifying and controlling the use of such individual computer resource. A physical object that has these properties and is used for these purposes is referred to hereafter as an analog physical signature device.
The aforementioned properties of an analog physical signature device provide unique indicium (consequent, dependent analog outputs that provide unique signatures) while at the same time making it difficult to duplicate or alter the analog physical signature device without altering or destroying such unique indicium. The aforementioned properties of an analog physical signature device also provide resistance to and evidence of attempts to intrusively examine, analyze or alter the analog physical signature device.
Also in accordance with the present invention, the aforementioned properties of an analog physical signature device are embedded in and tightly bound to the functionality of the computer resource in such a manner that altering, tampering with or removing the bound analog physical signature device or its binding to the computer resource impacts the functionality of the computer resource to a degree that the computer resource is no longer of any use or value for its intended purpose.
Also in accordance with the present invention, the properties of embedding and tightly binding the analog physical signature device to the computer resource provide protection against reverse engineering of the computer resource.
A more complete understanding of the present invention and the attendant features and advantages thereof can be had by reference to the following detailed description when considered in conjunction with the accompanying drawings wherein:
An analog physical signature device by its intrinsic nature provides a wider range of signatures, is less expensive to construct, and is more difficult to attack than a digital physical signature device. An analog physical signature device is inherently difficult to duplicate, clone or spoof because of its relatively complex and inhomogeneous nature. An analog physical signature device is inherently tamper-resistant and tamper-evident because intrusive attempts to physically examine and analyze such an analog physical signature device irreversibly alters the device and thereby destroys the capability of the analog physical signature device to generate the unique signature ascribed to it.
Referring now to the drawings wherein like reference numerals or characters identify corresponding or similar elements throughout the several views,
An analog physical signature device 10 according to the present invention overcomes the shortcomings of prior art digital physical signature devices in several respects.
First, the relatively complex, immutable, inhomogeneous medium contained in or comprising an individual analog physical signature device 10 has the property that it is, for practical purposes, impossible to reproduce with sufficient precision to duplicate the signature produced by the individual analog physical signature device 10 and as a consequence, creation of a duplicate of (“cloning”) the individual analog physical signature device 10 is, for all practical purposes, statistically impossible.
Second, the relatively complex consequent, dependent analog output produced by and which uniquely identifies an individual analog physical signature device 10 is, for practical purposes, impossible to alter in such a way that it is mistaken for (“spoofing”) the consequent, dependent analog output generated by another analog physical signature device from the same predetermined analog input.
Thus, the innate complexity of both the relatively complex, immutable, inhomogeneous nature of the analog physical signature device 10, and the relatively complex nature of its consequent, dependent analog output, provide protection against two well-known physical attacks, cloning and spoofing, on systems and methods for controlling use of computer resources using analog physical signature devices.
Third, invasive attempts to physically analyze and explore the signature generation capability of the relatively complex, immutable, inhomogeneous medium of the analog physical signature device 10 will alter the consequent, dependent analog outputs produced by the relatively complex, immutable, inhomogeneous medium, and thus will both destroy the capability of the analog physical signature device 10 to create its identifying signature and also make evident the invasion. Any interference with any consequent, dependent analog output in an attempt to alter it to represent the analog output of another analog physical signature device will destroy the identifying signature carried by such consequent, dependent analog output, likewise making evident the interference. As a result neither the analog physical signature device 10 nor the consequent, dependent analog outputs it produces require an additional or secondary protection system to protect their functional elements. Rather the inherent and indigenous nature of the analog physical signature device 10 and its consequent, dependent analog outputs simultaneously provide and protect such functionality.
Fourth, since the analog physical signature device 10 according to the present invention does not need to be built into the computer resource and since the analog input and output interface requirements of any particular analog physical signature device can be met using conventional, widely available analog input means 12 and analog detection means 14, the analog physical signature device 10 can be bound to a wide range of computer resources.
The analog physical signature device 10 according to the present invention creates a unique signature, i.e., consequent, dependent analog output, for each predetermined analog input, relying on the physical (“analog”) properties and processes inherent to the relatively complex, immutable, inhomogeneous material 11, rather than computational (“digital”) processes, to transform a particular input into a unique output.
For the purposes of clarity and understanding, the following paragraphs describe two illustrative and exemplary embodiments of the analog physical signature device 10 having utility in the practice of the present invention, one based on light waves and the other based on sonic waves. Those skilled in the art will recognized that radiation from any part of an acoustic or electromagnetic spectrum could similarly be employed, and accordingly, the invention of the present application is not intended to be limited by such exemplary embodiments.
For one class of embodiments of the analog physical signature device 10 according to the present invention, the particular physical process involves the transformation of a predetermined light wave input due to its interaction with, e.g., transmission through or reflection/refraction from, the relatively complex, immutable, inhomogeneous medium of the analog physical signature device 10. A unique physical signature is created by interacting a predetermined light wave with the relatively complex, immutable, inhomogeneous medium of the analog physical signature device 10 at a first known interface point A and detecting the transformation of this predetermined light wave produced by the relatively complex, immutable, inhomogeneous medium at a second known interface point B. The transformation of the predetermined input light wave to the consequent, dependent output light wave realized by the relatively complex, immutable, inhomogeneous medium is the signature that uniquely identifies the analog physical signature device 10. See
For another class of embodiments of the analog physical signature device 10 according to the present invention, the particular physical process involves the transformation of a predetermined sonic wave due to its interaction with, e.g., transmission through or reflection/refraction from, a relatively complex, immutable, inhomogeneous medium of the analog physical signature device 10. A unique physical signature, i.e., consequent, dependent analog output, is created by interacting a predetermined sonic wave with the relatively complex, immutable, inhomogeneous medium comprising the analog physical signature device 10 at a first known interface point A and detection of the consequent, dependent output sonic wave resulting from the transformation of the predetermined sonic wave produced by the relatively complex, immutable, inhomogeneous medium out at a second known interface point B. The transformation of the predetermined input sonic wave to the consequent, dependent output sonic wave by the relatively complex, immutable, inhomogeneous medium is the signature that uniquely identifies the analog physical signature device 10. See
For the first class of embodiments of the analog physical signature device 10 according to the present invention, one preferred embodiment of the analog physical signature device 10 comprises a solid translucent rod 11, for example of acrylic plastic, having embedded therein small reflective flakes 20 and/or small translucent colored glass balls 22, as exemplarily illustrated in
In another preferred embodiment of the analog physical signature device 10 using light waves, the relatively complex, immutable, inhomogeneous material of the analog physical signature device 10 comprises an imperfect mirror 11 made from glass with embedded impurities 26, e.g., air bubbles, and/or having surface irregularities 28, and/or an inhomogeneous metallic backing 30, as exemplarily illustrated in
In the foregoing embodiments of the analog physical signature device 10 according to the present invention using light waves, and in all others constructed and operated so as to interact a predetermined light wave with a relatively complex, immutable, inhomogeneous medium 1, the nature of the transformation of the predetermined light wave input by the relatively complex, immutable, inhomogeneous medium 11 from the first known interface point A to the second known interface point B provides the consequent, dependent light wave output that uniquely identifies the analog physical signature device 10, and, concomitantly, the computer resource to which the analog physical signature device 10 has been bound.
For the second class of embodiments of the analog physical signature device 10 according to the present invention, one preferred embodiment of the analog physical signature device 10 comprises a solid block 11 of relatively complex, immutable, inhomogeneous material, a means 12 to direct a predetermined sonic wave at a first known interface point A in the volume of the block 11, and a means 14 to detect the consequent, dependent sonic wave output at a second known point B in the volume of the block 11 as exemplarily illustrated in
In another preferred embodiment of the analog physical signature device 10 using sonic waves, the relatively complex, immutable, inhomogeneous material 11 comprises a closed hollow container filled with a viscous fluid, a means 12 to direct a predetermined sonic wave at a first known interface point A in the volume of the fluid, and a means 14 for detecting the consequent, dependent sonic wave output at a second known interface point B in the volume of the viscous fluid.
In yet another preferred embodiment of the analog physical signature device 10 using sonic waves, the relatively complex, immutable, inhomogeneous material 11 comprises a disc of porous sintered metal, a means 12 to direct a predetermined sonic wave at a first known interface point A of the porous sintered metal disc, and a means 14 to detect the consequent, dependent sonic wave output at a second known interface point B of the porous sintered metal disc.
In yet another preferred embodiment of the analog physical signature device 10 using sonic waves, the relatively complex, immutable, inhomogeneous material 11 comprises closed hollow container filled with ringing metal objects such as tuning forks and bells, a means 12 to direct a predetermined sonic wave at a first known interface point A in the volume of metal objects, and a means 14 to detect the consequent, dependent sonic wave output at a second known interface point B in the volume of the metal objects.
In yet a further preferred embodiment of the analog physical signature device 10 using sonic wave, the relatively complex, immutable, inhomogeneous material 11 comprises a membrane stretched over a rigid body or frame, a means 12 to direct a predetermined sonic wave at a first known interface point A on the stretched membrane 11, and a means 14 for detecting the consequent, dependent sonic wave output at a second known interface point B on the membrane.
In the foregoing embodiments of the analog physical signature device 10 according to the present invention using sonic waves, and in all others constructed and operated so as to interact a predetermined sonic wave with a relatively complex, immutable, inhomogeneous medium 11, the nature of the transformation of the predetermined sonic wave input by the relatively complex, immutable, inhomogeneous medium 11 from the first known interface point A to the second known interface point B provides a consequent, dependent sonic wave output that uniquely identifies the analog physical signature device 10, and, concomitantly, the computer resource to which the analog physical signature device 10 is bound.
The following paragraphs describe one preferred method for binding an analog physical signature device to a computer software resource to define an interactive system that controls the use of such computer software resource for its intended purpose according to the present invention. In the case that the computer software resource is operative to define the functionality of a computer hardware resource—such as software embedded in a disc or a printer—the method binds the analog physical signature device to the computer hardware resource. In both cases the computer resource performs correctly if and only if it is operated in association with the analog physical signature device to which it has been bound. Thus we henceforth speak without loss of generality of binding a computer program to an analog physical signature device without differentiating between the cases that the computer program is a part of a computer hardware resource or is in the form of a computer software resource. Thus, the terminology computer software resource or computer program as used herein embraces instructions that any digitally programmed device executes to realize a defined and predetermined functionality, including but not limited to application programs, operating systems, basic input/output systems, and embedded program instructions for hardware resources such as computer peripherals, industrial machines and consumer products.
The binding of a computer program to an analog physical signature device according to the present invention embeds the unique output from an individual analog physical signature device into the computer instructions comprising the computer program, and thereby merges in an inseparable manner the relatively complex, immutable, inhomogeneous and unique properties of the individual analog physical signature device and the functionality of the computer program. As a consequence of the method and system of the present invention, the computer resource will function correctly if and only if it is operated in association with the analog physical signature device to which it has been bound. Furthermore as a consequence of the method and system of the present invention, to excise or bypass the computer instructions bound to the analog physical signature device would be tantamount to excising or bypassing the functionality that the computer resource is intended to perform, essentially rendering the computer resource useless for its intended functionality.
Any useful computer program makes use of constant values. Constant values may be used in a computer program to conditionally or unconditionally branch from one instruction in the computer program to another instruction in the computer program (a “logical” constant). Constant values may also be used as indexes and offsets into arrays of data (a “pointer” constant). Constant values may also be used to position text or graphics that are displayed to the user of the program for the purpose of operating the program and indeed the text and graphics themselves may be represented by sequences of constant values (a “representational” constant). Constant values may also be used as means to send messages to other computer programs (a “message” constant). Finally, in computer programs involving scientific calculations, constant values may be used in scientific formulae and mathematical equations (a “computational” constant). Collectively, any of the constant values of a useful computer program, as exemplarily illustrated by means of the foregoing examples, are defined herein as program constants.
Any useful computer program also makes use of variable values. Variable values may be used in a computer program to hold input to the computer program (an “input” variable). Variable values may also be used in a computer program to hold intermediate results (an “intermediate result” variable). Variable values may also be used in a computer program to hold the memory address of data or instructions (a “pointer” variable). Variable values may also be used in a computer program to hold output from the computer program (an “output” variable). Collectively, any of the variable values of a useful computer program, as exemplarily illustrated by means of the foregoing examples, are defined herein as program variables.
Any useful computer program also makes use of functions of program constants and program variables. Functions of program constants and program variables may be used in a computer program to compute offsets into program data structures (an “offset” function). Functions of program constants and program variables may also be used in a computer program to compute the size of program data structures (a “size” function). Functions of program constants and program variables may also be used in a computer program to compute positions in input or output formats (a “format” function). Functions of program constants and program variables may also be used in a computer program to compute mathematical and scientific values (a “mathematical or scientific” function). Collectively, any of the functions of program constants and program variables of a useful computer program, as exemplarily illustrated by means of the foregoing examples, are defined herein as program functions.
Such program constants, program variables, and/or program functions, individually, collectively, and/or in any combination, are defined hereinafter using the terminology “program expression”. During conventional execution of a computer program embodying any such program expressions, these program expressions are processed by the instructions comprising the computer program as exemplarily illustrated in the method of
In a preferred embodiment of a method and interactive system according to the present invention, an individual analog physical signature device is bound to an individual computer program by replacing the code segment (the terminology ‘code segment’ as used herein encompasses both the singular and plural) representing a selected program expression in the computer program with an alternative code segment that is a function of the unique output from the individual analog physical signature device. The inventive consequence of such replacement is that the individual computer program will perform consistent with its intended purpose if and only if it is operated in association with the individual analog physical signature device to which it has been bound. Another inventive consequence of this alteration is that the individual computer program is difficult to reverse engineer.
It is to be understood that a plurality of program expressions in a computer program can be replaced with alternative code segments to strengthen the binding of the computer program to the analog physical signature device. In such applications, each program expression is replaced by a specific alternative code segment that has a singular correspondence to such replaced program expression.
Interactive System:
The analog physical signature device that is bound to the computer program in this interactive system is operative to transform a predetermined analog signal input to a consequent, dependent (unique) analog signal output. The bound computer program, including the alternative code segment embedded therein that binds the computer program to the analog physical signature device, is only executable using digital values.
The interactive system, therefore, includes conversion means that are operative to realize causal relationships between digital values and analog signals to ensure the proper functioning of both the computer program (using digital values) and the analog physical signature device (using analog signals) to which it is bound. More specifically, the interactive system includes a digital-to-analog (D/A) conversion means 16 (see
Referring to
There are in the current art many means for causally relating a digital value to an analog signal and many means for causally relating an analog signal to a digital value. For example, digital-to-analog (D/A) converters are known prior art devices or means that are operative to provide the causal relationship function by converting digital values to an analog signal. Similarly, analog-to-digital (A/D) converters are known prior art devices or means that are operative to provide the causal relationship function by converting an analog signal to digital values. An example of an digital-to-analog converter is described and claimed in U.S. Pat. No. 4,412,208 (Digital to analog converter). An example of an analog-to-digital converter is described and claimed in U.S. Pat. No. 5,570,091 (Analog-to-digital converter). These types of D/A and A/D conversion means have particular utility in the interactive systems described in Examples 3-5 below.
Or, for example, a mapping function can be implemented as the conversion means to define the causal relationship between digital values and analog signals. Such a mapping function would be operative to causally relate (by mapping) each predetermined digital input ‘x’ to a predetermined analog input, fx(t). The predetermined analog input fx(t) is transformed by interaction with the analog physical signature device into the consequent, dependent analog output gx(t). The mapping function would be further operative to causally relate (by mapping) the consequent, dependent analog output gx(t) to a predefined digital output ‘y’. The causal relationships defined by such mapping functions may be arbitrary or may be associated with particular parameters of the analog signals. This type of D/A and A/D conversion means have particular utility in the interactive systems described in Examples 1-2 below.
The digital-to-analog conversion means and analog-to-digital conversion means used in embodiments of the method and interactive system of the present invention use hardware conversion means or software conversion means or a combination of hardware and software conversion means to realize such causal relationships. The realization of these means in the context of a specific embodiment of the method and interactive system of the present invention depends on both technical and economic considerations of the computer resource whose use is being controlled and the analog physical signature device being employed. For the purpose of the describing of method and interactive system of the present invention, these conversion means need not be detailed beyond being a transformation from the digital domain to the analog domain and a transformation from the analog domain to the digital domain, respectively, inasmuch as the selection and implementation of such conversion means are within the capabilities of one skilled in the art.
By way of a simple explanatory example, assume we have a two different individual analog physical signature devices D={d1, d2}. For the purposes of this simple example, assume each analog physical signature device di is a function from a set of integers X to a set of integers Y, i.e., di: X→Y in such a way that d1(x) ≠d2(x) for all x in X. Table 1 shows X and the mapping of both d1 and d2 from X to Y.
TABLE 1
Two Analog Physical Signature Devices
x
y = d1(x)
y = d2(x)
7
6
34
8
19
37
9
21
23
10
18
17
11
12
47
In this case X={7, 8, 9, 10, 11} and Y={6, 12, 17, 18, 19, 21, 23, 34, 37, 47}.
Suppose the source code of the computer program to be bound to devices from the collection of analog physical signature devices D, were the following:
READ I FROM FILE “Input”
IF (I>10) GO TO 1
J=I+3 Example 1A
GO TO 2
1 J=I−7
2 WRITE J TO FILE “Output”
where the input I is assured to be an integer between 1 and 20.
During the execution of this computer program, the constant value ‘10’ in the second line is used to conditionally branch from one instruction in the program to another instruction in the program depending upon the value of I read from the file “Input”. For any value of the input I greater than the constant value, ‘10’, the program branches unconditionally to the statement labeled with the constant value ‘1’. This causes the value of J to be set equal to the value of 1 minus the constant value ‘7’, which is written to the file “Output”. If the value of the input I is less than or equal to the constant value ‘10’, however, then the value of J is set equal to the value of I plus the constant value ‘3’ and the program branches unconditionally to the statement labeled with the constant value ‘2’, where the value of J is written to the file “Output”.
By a preferred embodiment of the present invention, to bind this computer program to the analog physical signature device d1, we replace one or more program constants in the computer program with the unique output from the analog physical signature device d1. For example, we could replace the constant value ‘3’ in the third line (the computational constant) with the unique output from d1 when x is 8. This transformation of the computer program of Example 1A yields the computer program in Example 1B:
READ I FROM FILE “Input”
IF (I>10) GO TO 1
J=I+d1(8)−16
GO TO 2 Example 1B
1 J=I−7
2 WRITE J TO FILE “Output”
Here we have d1(8) equal to 19 from Table 1 and 19-16 is 3, which is the constant value necessary in the second line for the correct functioning of the program.
Let PhySig(x) denote the interactive system and method that defines the predetermined digital input ‘x’ that is causally related to the predetermined analog input to an analog physical signature device, which returns a predefined digital output that is causally related to the consequent, dependent analog output from the analog physical signature device. This PhySig(x) function, in addition to defining the predetermined digital input ‘x’ for the interactive system and method according to the present invention, also includes a mathematical formulation that is embedded in the bound computer program (see Table 3 below, column labeled TG) as well as instruction sets for: (i) realizing the causal relationship between the predetermined digital input ‘x’ and the predetermined analog input; (ii) realizing the causal relationship between the consequent, dependent analog output and the predefined digital output; (iii) retrieving the predefined digital output; and (iv) processing the embedded mathematical formulation using the predefined digital input. Using the PhySig(x) function as defined herein, the binding of the computer program to the analog physical signature device d1 can be expressed as:
READ I FROM FILE “Input”
IF (I>10) GO TO 1
J=I+PhySig(8)−16
GO TO 2 Example 1C
1 J=I−7
2 WRITE J TO FILE “Output”
If this computer program is executed in association with the analog physical signature device d1, then the program will function correctly, as described above, for all values of I. If, on the other hand, this computer program is executed in association with analog physical signature device d2, then this computer program will not function correctly for all values of I. In particular when I is less than or equal to the constant value 10, from the d2 column in Table 1 PhySig(8) will return 37, and J will be set to I plus PhySig(8)−16=21 and therefore, the computer program will not function correctly for values of I≦10.
In the foregoing example, the predetermined digital input ‘8’ is defined by the PhySig(8) function of the analog physical signature device, and the expression “PhySig(8)−16” is the ‘alternative code segment’, which includes the embedded mathematical expression “y−16” (see column TG in Table 3), that replaces the program constant “3” in the computer program. The predefined digital output for this particular example is ‘19’, the value of ‘y’ in Table 1 for the predetermined digital input ‘8’. The functional procedure described in the preceding paragraphs wherein the code segment representing a program constant is replaced by an ‘alternative code segment’ is exemplarily illustrated in
The binding of the computer program to analog physical signature device d1 can be strengthened by replacing all constant values in the computer program with calls to PhySig such that each call sends a different input value to the analog physical signature device. The result is as follows:
READ I FROM FILE “Input”
IF (I>PhySig(7)+4) GO TO (PhySig(9)−20)
J=I+PhySig(8)−16
GO TO PhySig(11)−10 Example 1D
1 J=I+PhySig(10)−25
2 WRITE J TO FILE “Output”
In the example described above, a “binding” constant was added to or subtracted from the value returned by the analog physical signature device function PhySig. For example, the binding constant 16 was subtracted from PhySig(8), the binding constant 4 was added to PhySig(7), to recover the corresponding original program constants 3 (third line) and 10 (first line), respectively, of the computer program. One skilled in the art will appreciate that mathematical functions and operations other than addition and subtraction such as multiplication, division, and exponentiation, can be used to uniquely recover an original and replaced program constant value from the value returned by the PhySig function.
As a second simple explanatory example, assume we have a two different individual analog physical signature devices D={d1, d2}. For the purposes of this second simple example, assume each analog physical signature device di is a function from a set of rational numbers X to a set of rational numbers Y, i.e., di: X→Y in such a way that d1(x)≠d2(x) for all x in X. Table 2 shows X and the mapping of both d1 and d2 from X to Y for
di(x)=i−i/x1.
TABLE 2
Two Analog Physical Signature Devices
x
y = d1(x)
y = d2(x)
7.0
6
96
7
49
8.0
7
63
8
32
9.0
8
160
9
81
10.0
9
99
11.0
10
240
11
121
Suppose the source code of the computer program to be bound to devices from the collection of analog physical signature devices D, were the following:
READ X FROM FILE “Input”
Z=5*X**2+3*X Example 2A
WRITE Z TO FILE “Output”
where the input X is assured to be a floating point number between 1 and 20.
By the preferred embodiment of the present invention, to bind this computer program to the analog physical signature device d2, we replace the expression in line two in the computer program with an expression in the unique output from the analog physical signature device d2. This transformation of the computer program of Example 2A yields the computer program in Example 2B:
READ X FROM FILE “Input”
Z=10/(2−PhySig(X))+3*SQRT(2/(2−PhySig(X))) Example 2B
WRITE Z TO FILE “Output”
This transformation of the program of Example 2A will compute the correct value for Z if the program is used in association with the analog physical signature device d2 and the incorrect value for Z if it is used in association with the analog physical signature device d1.
In the foregoing example, the predetermined digital input ‘X’ is defined by the PhySig(X) function of the analog physical signature device, and the expression “10/(2−PhySig(X))+3*SQRT(2/(2−PhySig(X)))” is the ‘alternative code segment’, which includes the embedded mathematical expression
(see column TG in Table 3), that replaces the program function “5X2+3X” in the computer program. The predefined digital output for this particular example is the particular value of ‘y’ in Table 2 for any predetermined digital input ‘X’.
Let
outputω(t)=a0(ω)+a1(ω)sin(ωt)+b1(ω)cos(ωt)+a2(ω)sin(2ωt)+b2(ω)cos(2ωt) be the output waveform of the relatively complex, immutable, inhomogeneous medium comprising an analog physical signature device d in the set D when presented with the input waveform
inputω(t)=sin(ωt)
Suppose the computer program that is to be bound to an individual analog physical signature device d1 in D with output given by
output1,ω(t)=7+8 sin(ωt)+9 cos(ωt)+10 sin(2ωt)+11 cos(2ωt)
is as follows:
READ X FROM FILE “Input”
IF (X>10.0) GO TO 1
Z=X+3.0 Example 3A
GO TO 2
1 Z=X−7.0
2 WRITE Z TO FILE “Output”
where the input X is assured to be a floating point number between 1 and 20.
By a preferred embodiment of the present invention, to bind this computer program to the analog physical signature device d1, we replace the program constant “3” of the computer program with the unique output from the analog physical signature device d1. If we take PhySig(X) to be the constant term of the above representation of the output waveform of the analog physical signature device,
PhySig(X)=a0(X)
then the transformation of the third line of the computer program of Example 3A yields the computer program in Example 3B:
READ X FROM FILE “Input”
IF (X>10.0) GO TO 1
Z=X+PhySig(X)/2.33 Example 3B
GO TO 2
1 Z=X−7.0
2 WRITE Z TO FILE “Output”
In the foregoing example, the predetermined digital input ‘X’ is defined by the PhySig(X) function of the analog physical signature device, and the expression “PhySig(X)/2.33” is the ‘alternative code segment’, which includes the embedded mathematic expression “y/2.33” (see column TG in Table 3), that replaces the program constant “3” in the computer program. The predefined digital output for this particular example is the value of ‘y’ that is causally related to the predetermined digital input ‘X’ read from the file “Input”, e.g., for the specified conditions above, ‘y’ equals the constant “7” for all values of ‘X’.
Assume that upon encountering PhySig(x) during the execution of the computer program causes the waveform
wx(t)=xu(t)
to be sent to the analog physical signature device where u(t) is the unit step function,
Suppose further that the impulse response of the relatively complex, immutable, inhomogeneous medium comprising the analog physical signature device d in the set D is given by
hd(t)=de−dtu(t)
where d is an integer between 1 and 100 that identifies a specific analog physical signature device. Then the output of device d when presented with input PhySig(x) is given by
qd(t)=x(1−e−dt)
If we define the value of PhySig(x) as a function of this output to be the amplitude of the waveform at time t=2,
PhySig(x)=qd(2)=x(1−e−2d)
then in order to bind the individual analog physical signature device d1 with impulse response
h1(t)=e−tu(t)
to the appearance of the program variable X in the third line of the computer program in Example 4A
READ X FROM FILE “Input”
IF (X>10.0) GO TO 1
Z=X+3.0 Example 4A
GO TO 2
1 Z=X−7.0
2 WRITE Z TO FILE “Output”
to individual analog physical signature device d1, we would replace the appearance of the variable X in this line by PhySig(X)/(1−e−2) to yield the computer program in Example 4B.
READ X FROM FILE “Input”
IF (X>10.0) GO TO 1
Z=0.8808*PhySig(X)+3.0 Example 4B
GO TO 2
1 Z=X−7.0
2 WRITE Z TO FILE “Output”
where the input X is assured to be a floating point number between 1 and 20.
In the foregoing example, the predetermined digital input ‘X’ is defined by the PhySig(X) function of the analog physical signature device, and the expression “0.8808*PhySig(X)” is the ‘alternative code segment’, which includes the embedded mathematical expression
(see column TG in Table 3), that replaces the program variable “X” in line 3 of the computer program. The predefined digital output for this particular example is the value of ‘y’ that is causally related to the predetermined digital input ‘X’ read from the file “Input”. The functional procedure described in the preceding paragraphs wherein the code segment representing a program variable is replaced by an ‘alternative code segment’ is exemplarily illustrated in
Assume that upon encountering PhySig(x) during the execution of the computer program causes the waveform
wx(t)=sin(xt)
to be sent to the analog physical signature device.
Suppose further that the impulse response of the relatively complex, immutable, inhomogeneous medium comprising the analog physical signature device d in the set D is given by
hd(t)=de−dtu(t)
where d is an integer between 1 and 100. Then the output of device d when presented with input PhySig(x) is given by
If we define the value of PhySig(x) as a function of this output to be the amplitude of the waveform at t=0,
then in order to bind the individual analog physical signature device d1 with impulse response
h1(t)=e−tu(t)
to the appearance of the function x2 of x in the third line of the computer program in Example 5A,
READ X FROM FILE “Input”
IF (X>10.0) GO TO 1
Z=X**2 Example 5A
GO TO 2
1 Z=X−7.0
2 WRITE Z TO FILE “Output”
to individual analog physical signature device d1, we would replace x2 by
to yield the computer program bound to individual analog physical signature device d1 shown in Example 5B.
READ X FROM FILE “Input”
IF (X>10.0) GO TO 1
Z=−X/PhySig(X)−1 Example 5B
GO TO 2
1 Z=X−7.0
2 WRITE Z TO FILE “Output”
where the input X is assured to be a floating point number between 1 and 20.
In the foregoing example, the predetermined digital input ‘X’ is defined by the element ‘X’ in the PhySig(X) function of the analog physical signature device, and the expression “X/PhySig(X)” is the ‘alternative code segment’, which includes the embedded mathematical expression
(see column TG in Table 3) that replaces the program function “X2” in line 3 of the computer program. The predefined digital output for this particular example is the value of ‘y’ that is causally related to the predetermined digital input ‘X’ read from the file “Input”.
Henceforth, we will refer to a program constant, a program variable or a program function as a program expression and to the process of replacing a program expression of a computer program with an expression involving the PhySig function as an application of the Binding Transformation. The Binding Transformation operates with respect to an individual analog physical signature device and a computer program such that the computer program resulting from an application of the Binding Transformation performs correctly if and only if it is operated in association with said individual analog physical signature device.
Symbolically, if E is the program expression that is being replaced and G describes the functioning of the individual analog physical signature device to which the computer program is being bound, the Binding Transformation replaces E by TG such that
E(x)=TG(G(x))=TG(PhySigG(x))
In particular,
Table 3 shows E, TG and G for the examples above.
TABLE 3
Summary of Binding Transformation Examples
Ex.
Type of Binding
E
TG
G
1
Tabular Response
3
y − 16
19
to a Program Constant
2
Tabular Response to a Program Function
5x2 + 3x
3
Waveform Response to a Program Constant
3
7
4
Waveform Response to a Program Variable
x
(1 − e−2)x
5
Waveform Response to a Program Function
x2
The expression TG(PhySigG(x)) that the Binding Transformation substitutes for the program expression E in the computer program is a function of both the original expression in the computer program, E, and the behavior of individual analog physical signature device G with the property is it difficult to determine either E or G individually by analysis of TG(PhySigG(x)). As a result, the computer program is bound to the analog physical signature device in such a way that neither the replaced program expression of the computer program nor the functioning of the analog physical signature device is revealed.
The examples above applied the Binding Transformation to a pseudo code representation of a computer program to illustrate the principles of the Binding Transformation. The Binding Transformation that is the subject of this patent application can be applied in the same manner to any programming language source code text form such as Cobol, Fortran, Pascal, C, Basic, Java or assembly language.
The Binding Transformation can also be applied in the same manner to binary forms of computer programs that result from processing the programming language source code text form and preparing it for use on a particular processor. The binary form to which the Binding Transformation is applied can be, for example, a static library object form, a dynamic link library form or an executable form.
The Binding Transformation that is the method and interactive system of the current invention has the property that in addition to binding an individual computer program to an individual analog physical signature device, it also provides protection against reverse engineering of the individual computer program. An attacker that comes into possession of the individual computer program, for example, in any of the forms mentioned above, without also being in possession of the individual analog physical signature device to which the individual computer program is bound will find it difficult to reverse engineer the computer program to discover the original program expressions in the unprotected program that have been replaced by the Binding Transformation. The protection against reverse engineering of the computer program provided by the Binding Transformation is an additional benefit of the method and system of the current invention.
A variety of modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that, within the scope of the appended claims, the present invention may be practiced otherwise than as specifically described herein.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
3829838, | |||
4412208, | Sep 16 1980 | Nippon Telegraph & Telephone Corporation | Digital to analog converter |
4599489, | Feb 22 1984 | VASCO CORPORATION, 1919 S HIGHLAND, SUITE 118-C, LOMBARD, ILLINOIS 60148, A UTAH CORP | Solid state key for controlling access to computer software |
4763066, | Sep 23 1986 | Huntron Instruments, Inc. | Automatic test equipment for integrated circuits |
4924175, | Feb 29 1988 | INFORMATION DEVICES, INC | Apparatus for displaying analog signatures of an electronic component |
5123045, | Aug 18 1989 | Massachusetts Institute of Technology | Comprehensive software protection system |
5570091, | Sep 21 1993 | Yamaha Corporation | Analog-to-digital converter |
5574787, | Jul 25 1994 | Macrovision Corporation | Apparatus and method for comprehensive copy protection for video platforms and unprotected source material |
5596280, | Jun 15 1995 | International Business Machines Corp. | Apparatus and method for testing circuits by the response of a phase-locked loop |
6246803, | Dec 27 1998 | KANSAS, THE UNIVERSITY OF | Real-time feature-based video stream validation and distortion analysis system using color moments |
6327378, | Feb 15 1995 | BancTec, Inc. | Character recognition method |
6327652, | Oct 26 1998 | Microsoft Technology Licensing, LLC | Loading and identifying a digital rights management operating system |
6584214, | Apr 23 1999 | Massachusetts Institute of Technology | Identification and verification using complex, three-dimensional structural features |
7146498, | Feb 22 1999 | Godo Kaisha IP Bridge 1 | Computer and program recording medium |
7280970, | Oct 04 1999 | SONIXIO, INC | Sonic/ultrasonic authentication device |
7299189, | Mar 19 1999 | Sony Corporation | Additional information embedding method and it's device, and additional information decoding method and its decoding device |
7415126, | May 05 1992 | AMERICAN VEHICULAR SCIENCES LLC | Occupant sensing system |
7454620, | Oct 25 2000 | Koninklijke Philips Electronics N V | Method, device and arrangement for inserting extra information |
20020154893, | |||
20050203841, | |||
20060095778, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 09 2008 | MOBILE-MIND, INC | Momin Development Fund LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025597 | /0191 | |
Jan 05 2011 | Momin Development Fund LLC | (assignment on the face of the patent) | / | |||
Aug 27 2015 | Momin Development Fund LLC | CALLAHAN CELLULAR L L C | MERGER SEE DOCUMENT FOR DETAILS | 037472 | /0001 |
Date | Maintenance Fee Events |
Jun 27 2016 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jun 18 2020 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Sep 11 2015 | 4 years fee payment window open |
Mar 11 2016 | 6 months grace period start (w surcharge) |
Sep 11 2016 | patent expiry (for year 4) |
Sep 11 2018 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 11 2019 | 8 years fee payment window open |
Mar 11 2020 | 6 months grace period start (w surcharge) |
Sep 11 2020 | patent expiry (for year 8) |
Sep 11 2022 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 11 2023 | 12 years fee payment window open |
Mar 11 2024 | 6 months grace period start (w surcharge) |
Sep 11 2024 | patent expiry (for year 12) |
Sep 11 2026 | 2 years to revive unintentionally abandoned end. (for year 12) |