IP Library › Granted Patent US 8,392,713
Granted Patent B2
US 8,392,713 · App. 11/756,721 · Granted Mar 5, 2013

Secure offline activation process for licensed software application programs

Inventors: Aidan Hughes (Bellevue, WA); Douglas R. de la Torre (Mercer Island, WA)
Assignee: Microsoft Corporation
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,392,713
App. No.
11/756,721
Granted
Mar 5, 2013
Kind
B2
Abstract

A computer readable medium for activating a software application for execution on a designated computer, where the computer readable medium has stored thereon computer executable instructions for performing the following steps: computing an installation identifier reflective of the software application and the designated computer; receiving an activation code generated in accordance with the installation identifier and a blinding factor value; computing a first verification code as a function of the installation identifier; computing a trial blinding factor value; computing a decryption key as a function of the trial blinding factor value and the activation code; using the decryption key to decrypt a second verification code; verifying that the first verification code matches the second verification code; and, activating the software application for execution on the designated computer.

Claims (34)

1. A computer readable storage medium that is not a signal and that is for activating a software application for execution on a designated computer, the computer readable storage medium having stored thereon computer executable instructions for performing the following steps:

(a) computing an installation identifier representative of the software application and the designated computer;

(b) receiving an activation code generated in accordance with the installation identifier and a blinding factor value, the activation code obtained using an offline medium;

(c) computing a reference value as a function of the installation identifier;

(d) computing a decryption key as a function of the activation code and a trial blinding factor value, the computing of the decryption key comprising:

applying a specified hash algorithm to the activation code and the trial blinding factor a specified number of iterations to obtain a resulting hash value; and

truncating the resulting hash value to a specified length;

(e) using the decryption key to access an encrypted value representative of the installation identifier;

(f) comparing the encrypted value to the reference value

(g) utilizing a new trial blinding factor value with the activation code when the encrypted value does not match the reference hash value; and

(h) computing a new decryption key as a function of the activation code and the new trial blinding factor value.

2. The computer readable storage medium of claim 1 , wherein the reference value and the encrypted value are computed based on a hash of the installation identifier.

3. The computer readable storage medium of claim 1 , wherein the computer executable instructions are further for performing the step of translating the installation identifier to a specified format suitable for transmission over a low bandwidth medium.

4. The computer readable storage medium of claim 3 , wherein the translated installation identifier is a digit string having a specified number of digits.

5. The computer readable storage medium of claim 1 , wherein the reference value and the encrypted value are computed based on a memory intensive operation.

6. The computer readable storage medium of claim 1 , wherein the computer executable instructions are further for performing the step of activating the software application for execution on the designated computer when the encrypted value matches the reference value.

7. The computer readable storage medium of claim 6 , wherein the computer executable instructions are further for performing the step of recording information relating to activation of the software application.

8. A method of activating a software application for execution on a designated computer, comprising the following steps:

(a) computing an installation identifier representative of the software application and the designated computer;

(b) receiving an activation code generated in accordance with the installation identifier and a blinding factor value, the activation code obtained using an offline medium;

(c) computing a reference value as a function of the installation identifier;

(d) computing a decryption key as a function of the activation code and a trial blinding factor value, the computing of the decryption key comprising:

applying a specified hash algorithm to the activation code and the trial blinding factor a specified number of iterations to obtain a resulting hash value; and

truncating the resulting hash value to a specified length;

(e) using the decryption key to access an encrypted value representative of the installation identifier;

(f) comparing the encrypted value to the reference value

(g) utilizing a new trial blinding factor value with the activation code when the encrypted value does not match the reference value; and

(h) computing a new decryption key as a function of the activation code and the new trial blinding factor value.

9. The method of claim 8 , further comprising activating the software application for execution on the designated computer when the encrypted value matches the reference value.

10. The method of claim 9 , further comprising recording information relating to activation of the software application.

11. The method of claim 8 , wherein the reference value and the encrypted value are computed based on a hash of the installation identifier.

12. The method of claim 8 , further comprising translating the installation identifier to a specified format suitable for transmission over a low bandwidth medium.

13. The method of claim 12 , wherein the translated installation identifier is a digit string having a specified number of digits.

14. The method of claim 8 , wherein the reference value and the encrypted value are computed based on a memory intensive operation.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2007
From: HUGHES, AIDAN; DE LA TORRE, DOUGLAS R.
To: MICROSOFT CORPORATION
Reel/Frame 019832/0492 →
Continuity (1)
Related Publication 20080301447A1 · Dec 4, 2008