Method and system for validating software code
First Claim
1. A method of validating software code provided to a user entity by a software provider, wherein:
- the user entity encrypts first data, provides it to the software provider, and receives back a valid indication that the code is valid only if the software provider has been able to correctly decrypt the encrypted first data, such decryption only being possible using an appropriate decryption key provided by a party with rights in the software code;
the user entity encrypts the first data using, as encryption parameters, both an encryption key string comprising said software code or a representation thereof and public data of said party;
the said appropriate decryption key is provided by said party to the software provider only if the software code provided to the user entity is valid, generation of this key by the party using both private data related to said public data, and the encryption key string or a corresponding reference string based on a reference version of the software code.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system is provided for validating software code provided to a user entity by a software provider. In general terms, the user entity encrypts first data, provides it to the software provider, and receives back an indication that the code is valid only if the software provider has been able to correctly decrypt the encrypted first data, such decryption only being possible using an appropriate decryption key provided by a party with rights in the software code. More particularly, the user entity encrypts the first data using, as encryption parameters, both an encryption key string comprising said software code or a representation thereof, and public data of the aforesaid party. A decryption key appropriate for correctly decrypting the encrypted first data is provided to the software provider by the party with rights in the software code, only if the software code provided to the user entity is valid. Generation of this key by the party is effected using both private data related to the party'"'"'s public data, and the encryption key string or a corresponding reference string based on a reference version of the software code.
79 Citations
26 Claims
-
1. A method of validating software code provided to a user entity by a software provider, wherein:
-
the user entity encrypts first data, provides it to the software provider, and receives back a valid indication that the code is valid only if the software provider has been able to correctly decrypt the encrypted first data, such decryption only being possible using an appropriate decryption key provided by a party with rights in the software code;
the user entity encrypts the first data using, as encryption parameters, both an encryption key string comprising said software code or a representation thereof and public data of said party;
the said appropriate decryption key is provided by said party to the software provider only if the software code provided to the user entity is valid, generation of this key by the party using both private data related to said public data, and the encryption key string or a corresponding reference string based on a reference version of the software code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system comprising first, second and third computing entities, wherein:
-
the first computing entity is arranged to receive software code from the second computing entity and to encrypt a first data set using, as encryption parameters, both an encryption key string comprising a second data set corresponding to the software code provided by the second computing entity or a representation of that code, and public data of a party having rights in the software code;
the first computing entity being further arranged to provide the encrypted first data set to the second computing entity whereby to receive back a valid indication that the code is valid only if the second computing entity is able to correctly decrypt the encrypted first data, such decryption only being possible using an appropriate decryption key provided by the third computing entity;
the third computing entity is associated with said party having rights in the software code and is arranged to provide the said appropriate decryption key to the second computing entity only if the software code provided to the first computing entity is valid, the third computing entity being arranged to generate this key using both private data related to said public data, and the encryption key string or a corresponding reference string based on a reference version of the software code. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer system comprising a first computer entity for deriving an encryption key string using a first data set corresponding to software code or a representation of software code provided by a second computer entity and encrypting a second data set with the encryption key string;
- communication means for providing the encrypted second data set to the second computer entity, wherein a third computer entity associated with a third party having rights in the software code is arranged to provide to the second computer entity a decryption key derived using the first data set to allow decryption of the encrypted second data set.
- View Dependent Claims (21, 22)
-
23. Apparatus comprising:
-
first means for downloading software code over a network from a software provider, second means for encrypting first data using both public data of a party with rights in the software, and an encryption key string comprising said software code or a representation thereof;
third means for providing the encrypted first data and said encryption key string to the software provider;
fourth means for receiving back third data from the software provider, and fifth means for comparing the third data with the first data, and for generating an indication that the software code is valid if the first and third data match. - View Dependent Claims (24, 25)
-
-
26. A computer program product arranged to condition computing apparatus, when installed thereon, to provide:
-
means for encrypting first data using both an encryption key string comprising software code downloaded by the apparatus from a software provider or a representation of that code, and public data of a party with rights in the software code;
means for providing the encrypted first data and said encryption key string to the software provider;
means for receiving back third data from the software provider, and means for comparing the third data with the first data, and for generating an indication that the software code is valid if the first and third data match.
-
Specification