IP Library Granted Patent US 8,522,042
Granted Patent B2
US 8,522,042 · App. 11/590,293 · Granted Aug 27, 2013

Method and apparatus for enforcement of software licence protection

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,522,042
App. No.
11/590,293
Granted
Aug 27, 2013
Kind
B2
Abstract

A method of enforcing software license protection in a computer system comprising; morphing the data prior to distribution, resulting in morphed data; wherein morphing of data is accomplished by applying a reversible morphing algorithm to modify data, wherein said reversible morphing algorithm is uniquely seeded and/or controlled with control information.

Claims (43)

1. A method of enforcing protection of a software license, comprising;

receiving, at a remote computer system controlled by a first entity, from a primary computer system controlled by a second entity in connection with a software licensing service, code that has been morphed and is in data form prior to distribution,

wherein the code is a program subject to the software license,

wherein the code has been morphed by application of a reversible morphing procedure to modify an entire file of the code, and

wherein the reversible morphing algorithm is uniquely seeded with control information associated with the remote computer system;

receiving, at the remote computer system, a key supplied by the primary computing system through the communication link; and

incorporating, at the remote computer system, an un-morphing procedure as part of a pre-fetch operation by the remote computer system to be executed as the morphed file of code stored in data form is loaded into a processor internal cache of the remote computer system

wherein incorporating the un-morphing procedure includes incorporating a crypto component as part of a processor core such that native code exists only in an L1 cache and morphed data exists in L2 and L3 caches.

2. A method, as described in claim 1 , wherein control information comprises information unique to the remote computer system.

3. A method, as described in claim 1 wherein control information comprises information unique to a processor in the remote computer system.

4. A method, as described in claim 1 wherein control information comprises information supplied by a software supplier at time of sale, the second entity being the software supplier.

5. A method, as described in claim 1 wherein control information comprises information supplied by a software supplier at time of execution, the second entity being the software supplier.

6. A method, as described in claim 5 wherein control information is supplied by hardware peripheral device attached to the remote computer system.

7. A method, as described in claim 5 wherein control information is supplied by a remote computer system user.

8. A method, as described in claim 5 wherein control information is supplied by a software supplier, the second entity being the software supplier.

9. A method, as described in claim 8 wherein control information is supplied by a software supplier through a remote data connection, the second entity being the software supplier.

10. A method, as described in claim 1 wherein receiving, at a remote computer system includes loading the morphed data stored on electrical or optical media to the remote computer system.

11. A method, as described in claim 1 wherein receiving, at a remote computer system includes receiving the morphed data through a remote data connection.

12. A method, as described in claim 1 further comprising:

receiving, to the crypto component, the key along with an address of the morphed file of code to be moved and a direction of the move;

decrypting information moving to a processor; and

encrypting information moving from the processor.

13. A method, as described in claim 1 further comprising using the key for executing the un-morphing procedure with respect to the entire file of the code.

14. A method, as described in claim 1 further comprising using the key uniquely for executed the un-morphing procedure with respect to a particular segment of the entire file of the code.

15. A method, as described in claim 1 further comprising:

receiving, at the remote computer system, a plurality of keys supplied by the primary computing system through the communication link; and

determining which of the plurality of keys to use during execution of the un-morphing procedure based on data stored with the morphed file of code stored in data form.

16. A method of enforcing protection of a software license, comprising;

receiving morphed data of a reversible morphing procedure corresponding to an entire file of code, the code being a program subject to the software license,

wherein the reversible morphing procedure is uniquely seeded with control information;

storing the morphed data on a computer system; and

de-morphing morphed data as part of an operation whereby the morphed data is moved from a first one of a processor's internal cache memory to a second one of the processor's internal cache memory prior to processing by the processor, resulting in de-morphed data being stored in the second one of the processor's internal cache memory,

wherein incorporating the un-morphing procedure includes incorporating a crypto component as part of a processor core such that native code exists only in an L1 and morphed data exists in an L3 cache.

17. A method, as described in claim 1 wherein incorporating the un-morphing procedure includes incorporating a crypto component as part of a processor core such that native code exists only in an L1 and an L2 cache and morphed data exists in an L3 cache.

18. A method, as described in claim 16 wherein incorporating the un-morphing procedure includes incorporating a crypto component as part of a processor core such that native code exists only in an L1 cache and morphed data exists in an L2 cache and an L3 cache.

19. A method of enforcing protection of a software license, comprising:

receiving, at a remote computer system controlled by a first entity, from a primary computer system controlled by a second entity in connection with a software licensing service, code that has been morphed and is in data form prior to distribution,

wherein the code is a program subject to the software license,

wherein the code has been morphed by application of a reversible morphing procedure to modify an entire file of the code, and

wherein the reversible morphing algorithm is uniquely seeded with control information associated with the remote computer system;

receiving, at the remote computer system, a key supplied by the primary computing system through the communication link; and

incorporating, at the remote computer system, an un-morphing procedure as part of a pre-fetch operation by the remote computer system to be executed as the morphed file of code stored in data form is loaded into a processor internal cache of the remote computer system,

wherein incorporating the un-morphing procedure includes incorporating a crypto component as part of a processor core such that native code exists only in an L1 cache and an L2 cache and morphed data exists in an L3 cache.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 058897/0262 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2006
From: BARRON, DWIGHT L.; NEUFELD, E. DAVID; JONES, KEVIN MARK; BRADSHAW, JONATHAN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 018492/0916 →