Method and system for confidentially providing software components
First Claim
1. A method for confidentially providing a software component comprising:
- (a) encrypting the software components symmetrically using a secret cryptographic key of a software component manufacturer;
(b) encrypting the secret cryptographic key symmetrically using a first cryptographic system key;
(c) transporting the encrypted software component and the encrypted secret cryptographic key by the software component manufacturer to a stored-program controller comprising an executor connected by a system bus to externally and separately located peripheral components for sensors and actuators;
(d) decrypting the transported encrypted secret cryptographic key symmetrically using a second cryptographic system key which is stored in firmware of the stored-program controller comprising the executor connected by the system bus to the externally and separately located peripheral components for sensors and actuators; and
(e) decrypting the transported encrypted software component symmetrically using the decrypted secret cryptographic key;
wherein the decrypted software component is provided for execution on the stored-program controller comprising the executor connected by the system bus to the externally and separately located peripheral components for sensors and actuators; and
wherein the first cryptographic system key and the second cryptographic system key are generated as a key pair by a manufacturer of the stored-program controller comprising the executor connected by the system bus to externally located peripheral components for sensors and actuators.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for confidentially providing a software component which is encrypted using a secret cryptographic key of a software component manufacturer, and the key is then encrypted using a first cryptographic system key, wherein the encrypted software component and the encrypted key are transported by the software component manufacturer to a destination system device. After decrypting the transported encrypted key using a second cryptographic system key, the transported encrypted software component is decrypted using the decrypted key, wherein the decrypted software component is provided for execution on the destination system device. The method can be used to protect source codes or object codes of a developed software component from access by a third party and still allows for processing using standard tools.
36 Citations
19 Claims
-
1. A method for confidentially providing a software component comprising:
-
(a) encrypting the software components symmetrically using a secret cryptographic key of a software component manufacturer; (b) encrypting the secret cryptographic key symmetrically using a first cryptographic system key; (c) transporting the encrypted software component and the encrypted secret cryptographic key by the software component manufacturer to a stored-program controller comprising an executor connected by a system bus to externally and separately located peripheral components for sensors and actuators; (d) decrypting the transported encrypted secret cryptographic key symmetrically using a second cryptographic system key which is stored in firmware of the stored-program controller comprising the executor connected by the system bus to the externally and separately located peripheral components for sensors and actuators; and (e) decrypting the transported encrypted software component symmetrically using the decrypted secret cryptographic key; wherein the decrypted software component is provided for execution on the stored-program controller comprising the executor connected by the system bus to the externally and separately located peripheral components for sensors and actuators; and wherein the first cryptographic system key and the second cryptographic system key are generated as a key pair by a manufacturer of the stored-program controller comprising the executor connected by the system bus to externally located peripheral components for sensors and actuators. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for confidentially providing software components for a user, comprising:
-
at least one development device of a software component manufacturer on which a development tool is utilizable to produce software components which are each symmetrically encrypted by a secret cryptographic key of the software component manufacturer; and a stored-program controller comprising an executor connected by a system bus to externally and separately located peripheral components for sensors and actuators, the secret cryptographic key of the software component manufacturer being encrypted symmetrically by a first cryptographic system key and transported together with the symmetrically encrypted software component from the at least one development device to the stored-program controller, the stored-program controller being configured to initially utilize a second cryptographic system key which is stored in firmware of the stored-program controller to decrypt the transported encrypted key of the software component manufacture, and subsequently decrypt the transported encrypted software component symmetrically using the decrypted key of the software component manufacturer; wherein the decrypted software component is provided for execution on the stored-program controller comprising the executor connected by the system bus to the externally and separately located peripheral components for sensors and actuators; and wherein the first cryptographic system key and the second cryptographic system key are generated as a key pair by a manufacturer of the stored-program controller comprising the executor connected by the system bus to externally located peripheral components for sensors and actuators. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A destination system device comprising:
a stored-program controller, comprising; a first decryptor which decrypts a transported encrypted key of a software component manufacturer symmetrically using a cryptographic system key which is stored in firmware of the stored-program controller; a second decryptor which decrypts a transported encrypted software component symmetrically using the transported key of the software component manufacturer decrypted by the first decryptor; and an executor connected by a system bus to externally and separately located peripheral components for sensors and actuators, said executor executing the software component decrypted by the second decryptor; wherein the cryptographic system key is generated with another cryptographic system key as a key pair by a manufacturer of the stored-program controller connected by the system bus to externally located peripheral components for sensors and actuators via the executor. - View Dependent Claims (16, 17)
-
18. A development device of a software component manufacturer, comprising:
-
a first encryptor which encrypts a software component symmetrically using a secret cryptographic key of the software component manufacturer; a second encryptor which encrypts the secret cryptographic key of the software component manufacturer symmetrically using a first cryptographic system key; and an interface via which the symmetrically encrypted software component and the symmetrically encrypted secret cryptographic key are provided to a stored-program controller including a second cryptographic system key and comprising an executor connected by a system bus to externally and separately located peripheral components for sensors and actuators; wherein the first cryptographic system key and the second cryptographic system key are generated as a key pair by a manufacturer of the stored-program controller comprising the executor connected by the system bus to externally located peripheral components for sensors and actuators. - View Dependent Claims (19)
-
Specification