IP Library Granted Patent US 8,213,612
Granted Patent B2
US 8,213,612 · App. 11/952,880 · Granted Jul 3, 2012

Secure software download

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,213,612
App. No.
11/952,880
Granted
Jul 3, 2012
Kind
B2
Abstract

Software can be downloaded securely using a multi-encryption method, where the decryption is completed when the software is executed. In one aspect, a multi-encrypted data item is received. One or more of the encryptions on the multi-encrypted data item is decrypted, yielding a partially decrypted data item. The partially decrypted data item is stored in a reserved portion of a storage medium. The partially decrypted data item is fetched from the storage medium and decrypted to yield the data item. The decryption can be performed using one or more circuits that implement multiple decryption processes, including multiple algorithm-key combinations.

Claims (70)

1. A method comprising:

fetching a data item stored in a reserved portion of a storage medium;

generating a plurality of candidate data items, each of the plurality of candidate data items being generated by applying a respective one of a plurality of decryption processes to the fetched data item;

reading a value stored in the reserved portion of the storage medium with the data item, the value being selected prior to the generating, the value being independent from the fetched data item;

using the value, selecting one from among the candidate data items and the fetched data item; and

outputting the selected data item,

wherein the method is performed by a data processing apparatus.

2. The method of claim 1 , wherein a respective decryption process comprises one or more algorithm-key combinations.

3. The method of claim 1 , wherein selecting one from among the candidate data items and the fetched data item comprises:

selecting one from among the candidate data items if one or more criteria are satisfied; and

selecting the fetched data item if any of the criteria are not satisfied.

4. The method of claim 3 , wherein the criteria comprises:

that the fetched data item was fetched from the reserved portion of the storage medium; and

that a data protection status for the fetched data item is positive.

5. The method of claim 4 , wherein the data item is stored in the reserved portion of the storage medium, the method further comprising, before the fetching, receiving a request for the data item, the request for the data item comprising a fetch address identifying an address in the reserved portion of the storage medium where the data item is stored; and

wherein fetching the data item comprises fetching the data item from the fetch address.

6. The method of claim 3 , wherein selecting one from among the candidate data items comprises:

identifying a decryption process associated with the fetched data item from the plurality of decryption processes; and

selecting a respective candidate item that is a result of applying the identified decryption process to the fetched data item.

7. A method, comprising:

receiving a multi-encrypted data item, the multi-encrypted data item having one or more first encryptions applied to an encrypted data item, the encrypted data item having one or more second encryptions applied to a data item;

decrypting the first encryptions on the multi-encrypted data item to yield the encrypted data item; and

storing the encrypted data item in a portion of a storage medium;

fetching the encrypted data item from the portion of the storage medium; and

decrypting the second encryptions on the fetched encrypted data item to yield the data item, where decrypting the second encryptions includes:

generating a plurality of candidate data items, each of the plurality of candidate data items being generated by applying a respective one of a plurality of different decryption processes to the fetched encrypted data item;

reading a value stored in the portion of the storage medium with the encrypted data item the value being selected prior to the generating, the value being independent from the fetched encrypted data item;

using the value, selecting one from among the candidate data items and the fetched encrypted data item; and

outputting the selected data item,

wherein the method is performed by a data processing apparatus.

8. The method of claim 7 , further comprising storing in the reserved portion of the storage medium, data identifying one or more of a plurality of decryption algorithm-key combinations, the identified algorithm-key combinations corresponding to second encryptions.

9. The method of claim 8 , wherein decrypting the second encryptions comprises:

decrypting the second encryptions using the plurality of algorithm-key combinations, yielding the plurality of candidate data items; and

selecting a candidate data item of the plurality of candidate data items corresponding to the identified algorithm-key combinations.

10. An apparatus, comprising:

a storage medium, the storage medium operable to store a data item;

one or more first circuits operable to receive the data item and generate a plurality of candidate data items from the received data item by applying each of a plurality of decryption processes to the received data item, wherein each candidate data item is a result of an application of a respective decryption process of the plurality of decryption processes to the received data item; and

one or more second circuits operable to read a value stored in a reserved portion of a storage medium with the data item and select, using the value, one from among the candidate data items and the received data item and output the selected data item, where the value is selected prior to the generating, the value being independent from the received data item.

11. The apparatus of claim 10 , wherein a respective decryption process comprises one or more algorithm-key combination, each algorithm-key combination comprising a decryption key and a decryption algorithm.

12. The apparatus of claim 11 , wherein at least a portion of each of the decryption processes is hardwired into the one or more first circuits.

13. The apparatus of claim 11 , wherein at least a portion of the decryption key is programmable.

14. The apparatus of claim 11 , wherein a decryption algorithm in a respective algorithm-key combination is programmable using one or more parameters.

15. The apparatus of claim 10 , wherein the storage medium is further operable to store data identifying one of the plurality of decryption processes and a data protection status indicator.

16. The apparatus of claim 15 , wherein the one or more circuits operable to select one from among the candidate data items and the received data item are operable to:

select a respective one of the candidate data items corresponding to the identified decryption process if the data protection status indicator indicates that the data protection status is positive and if the received data item is received from the reserved portion of the storage medium; and

select the received data item if the data protection status indicator indicates that the data protection status is negative or if the received data item is not received from the reserved portion of the storage medium.

17. A system comprising:

one or more processors;

a storage medium;

a decryption module operable to decrypt encryption using any of a plurality of decryption algorithm-key combinations; and

instructions stored in the storage medium and configured for execution by the one or more processors, the instructions comprising instructions to:

receive a multi-encrypted data item, the multi-encrypted data item having one or more first encryptions applied to an encrypted data item, the encrypted data item having one or more second encryptions applied to a data item;

decrypt the first encryptions on the multi-encrypted data item to yield the encrypted data item; and

store the encrypted data item in a portion of a storage medium;

fetch the encrypted data item from the portion of the storage medium; and

decrypt the second encryptions on the fetched encrypted data item to yield the data item, where decrypting the second encryptions includes:

generating a plurality of candidate data items, each of the plurality of candidate data items being generated by applying a respective one of a plurality of different decryption processes to the fetched encrypted data item;

reading a value stored in the portion of a storage medium with the data item, the value being selected prior to the generating, the value being independent from the fetched encrypted data item;

using the value, selecting one from among the candidate data items and the fetched encrypted data item; and

outputting the selected data item.

18. A system comprising:

means for receiving a multi-encrypted data item, the multi-encrypted data item having one or more first encryptions applied to an encrypted data item, the encrypted data item having one or more second encryptions applied to a data item;

means for decrypting the first encryptions on the multi-encrypted data item to yield the encrypted data item; and

means for storing the encrypted data item in a portion of a storage medium;

means for fetching the encrypted data item from the portion of the storage medium; and

means for decrypting the second encryptions on the fetched encrypted data item to yield the data item, where decrypting the second encryptions includes:

generating a plurality of candidate data items, each of the plurality of candidate data items being generated by applying a respective one of a plurality of different decryption processes to the fetched encrypted data item;

reading a value stored in the portion of the storage medium with the encrypted data item, the value being selected prior to the generating, the value being independent from the fetched encrypted data item;

using the value, selecting one from among the candidate data items and the fetched encrypted data item; and

outputting the selected data item.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: VERIMATRIX
To: RAMBUS INC.
Reel/Frame 051262/0413 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 21, 2019
From: GLAS SAS, AS AGENT
To: INSIDE SECURE
Reel/Frame 051076/0306 →
CHANGE OF ADDRESS Recorded Oct 16, 2019
From: VERIMATRIX
To: VERIMATRIX
Reel/Frame 050733/0003 →
CHANGE OF NAME Recorded Oct 7, 2019
From: INSIDE SECURE
To: VERIMATRIX
Reel/Frame 050647/0428 →
SECURITY INTEREST Recorded Feb 27, 2019
From: INSIDE SECURE
To: GLAS SAS, AS SECURITY AGENT
Reel/Frame 048449/0887 →
CHANGE OF ADDRESS Recorded Aug 25, 2016
From: INSIDE SECURE
To: INSIDE SECURE
Reel/Frame 040116/0700 →
CHANGE OF NAME Recorded Sep 5, 2012
From: INSIDE CONTACTLESS
To: INSIDE SECURE
Reel/Frame 028901/0685 →