PROVISION OF FUNCTIONALITY VIA OBFUSCATED SOFTWARE
First Claim
1. A software obfuscation method comprising:
- encrypting a software portion, wherein;
the software portion is encrypted utilizing a cryptographic key; and
the software portion is executable;
generating a first obfuscated portion comprising the encrypted software portion;
encrypting the cryptographic key, wherein;
the cryptographic key is encrypted utilizing a public key of a public/private cryptographic key pair comprising the public key and a private key;
generating a second obfuscated portion comprising the encrypted cryptographic key;
generating an obfuscated file comprising the first obfuscated portion and the second obfuscated portion; and
storing the obfuscated file.
2 Assignments
0 Petitions
Accused Products
Abstract
In an example embodiment, executable files are individually encrypted utilizing a symmetric cryptographic key. For each user to be given access to the obfuscated file, the symmetric cryptographic key is encrypted utilizing a public key of a respective public/private key pair. A different public key/private key pair is utilized for each user. Obfuscated files are formed comprising the encrypted executable files and a respective encrypted symmetric cryptographic key. The private keys of the public/private key pairs are stored on respective smart cards. The smart cards are distributed to the users. When a user wants to invoke the functionality of an obfuscated file, the user provides the private key via his/her smart card. The private key is retrieved and is utilized to decrypt the appropriate portion of the obfuscated file. The symmetric cryptographic key obtained therefrom is utilized to decrypt the encrypted executable file.
58 Citations
20 Claims
-
1. A software obfuscation method comprising:
-
encrypting a software portion, wherein; the software portion is encrypted utilizing a cryptographic key; and the software portion is executable; generating a first obfuscated portion comprising the encrypted software portion; encrypting the cryptographic key, wherein; the cryptographic key is encrypted utilizing a public key of a public/private cryptographic key pair comprising the public key and a private key; generating a second obfuscated portion comprising the encrypted cryptographic key; generating an obfuscated file comprising the first obfuscated portion and the second obfuscated portion; and storing the obfuscated file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A software obfuscation system comprising:
-
a processing portion configured to; encrypt a software portion, wherein; the software portion is encrypted utilizing a cryptographic key; and the software portion is executable; generate a first obfuscated portion comprising the encrypted software portion; encrypt the cryptographic key, wherein; the cryptographic key is encrypted utilizing a public key of a public/private cryptographic key pair comprising the public key and a private key; generate a second obfuscated portion comprising the encrypted cryptographic key; and generate an obfuscated file comprising the first obfuscated portion and the second obfuscated portion; and a first memory portion configured to store the obfuscated file; and a second memory portion configured to store the private key. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-readable medium having stored thereon computer-executable instruction for software obfuscation by performing the steps of:
-
encrypting a software portion, wherein; the software portion is encrypted utilizing a cryptographic key; and the software portion is executable; generating a first obfuscated portion comprising the encrypted software portion; encrypting the cryptographic key, wherein; the cryptographic key is encrypted utilizing a public key of a public/private cryptographic key pair comprising the public key and a private key; generating a second obfuscated portion comprising the encrypted cryptographic key; generating an obfuscated file comprising the first obfuscated portion and the second obfuscated portion; and storing the private key on a storage device. - View Dependent Claims (20)
-
Specification