# US 7,412,061 B2 · Encrypting a digital object on a key ID selected therefor

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,412,061 B2
- Document ID: US7412061B2
- Status: Granted
- Kind: B2
- Application number: 10/981,846
- Filed: 2004-11-05
- Published: 2005-03-24
- Granted: 2008-08-12
- Earliest claimed: 1999-03-27
- Assignees: Microsoft Corporation
- Inventors: Marcus Peinado; Ramarathnam Venkatesan
- Web page: https://patentgrep.com/patent/US7412061B2

## CPC

- H04L 63/12: {Applying verification of the received information (cryptographic mechanisms or cryptographic arrangements for data integrity or data verification H04L9/32)}
- G06F 21/71: to assure secure computing or processing of information
- G06F 21/84: output devices, e.g. displays or monitors
- G06Q 30/06: Buying, selling or leasing transactions
- G07F 9/002: {Vending machines being part of a centrally controlled network of vending machines}
- H04L 9/083: {involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]}
- H04L 9/0869: {involving random numbers or seeds}
- H04L 63/0442: {wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for public-key encryption H04L9/30)}
- H04L 63/068: {using time-dependent keys, e.g. periodically changing keys (cryptographic mechanisms or cryptographic arrangements for controlling usage of secret information H04L9/088)}
- H04L 63/0823: {using certificates (cryptographic mechanisms or cryptographic arrangements for entity authentication involving certificates H04L9/3263)}
- G06F 21/109: {by using specially-adapted hardware at the client}
- G06F 2211/007: Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
- G06F 2221/2105: Dual mode as a secondary aspect
- G06F 2221/2107: File encryption
- G06F 2221/2137: Time limited access, e.g. to a computer or data
- H04L 2209/603: Digital right managament [DRM]
- H04L 2463/101: applying security measures for digital rights management
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G07F: COIN-FREED OR LIKE APPARATUS (coin sorting G07D3/00; coin testing G07D5/00; {handling coins or paper currencies apart from payment activated apparatus G07D; payment architectures, schemes or protocols G06Q20/00})

## Abstract

To encrypt a digital object, a key ID is selected for the digital object, and a function ƒ( ) having an input and an output is selected. The selected key ID is then employed as the input to the function ƒ( ), and the output of such function ƒ( ) is employed as the key (KD) for the digital object: ƒ(key ID)key (KD). The digital object is then according to such key (KD), and the encrypted digital object is distributed.

## Claims

### Claim 1

A computer-readable medium having computer-executable instructions for producing a key (KD) for decrypting a digital object, the digital object having been encrypted by:
selecting a key ID for the digital object;
selecting a function ƒ( ) having an input and an output;
employing the selected key ID as the input to the function ƒ( );
employing the output of such function ƒ( ) as the key (KD) for the digital object:
ƒ(key ID)key (KD),
encrypting such digital object according to such key (KD); and
distributing such encrypted digital object, along with the key ID, the computer-readable medium comprising instructions for:
receiving a request for the key (KD) from a requestor, the request including the key ID;
approving the request;
employing the included key ID as the input to the function ƒ( );
employing the output of such function ƒ( ) as the requested key (KD):
ƒ(key ID)key (KD); and
distributing such key (KD) to the requestor.

### Claim 2 (depends on 1)

The computer-readable medium of claim 1 wherein the computer-executable instructions further perform employing the selected key ID along with a secret seed as the input to the function ƒ( ):
ƒ(key ID, seed)key (KD),
both when producing the key (KD) to encrypt the digital object and when producing the key (KD) to distribute to the requestor.

### Claim 3 (depends on 2)

The computer-readable medium of claim 2 wherein the seed has a seed ID, the computer-readable medium further comprising instructions for employing the selected key ID and the secret seed along with the seed ID as the input to the function ƒ( ):
ƒ(key ID, seed, seed ID)key (KD),
both when producing the key (KD) to encrypt the digital object and when producing the key (KD) to distribute to the requestor.

### Claim 4 (depends on 1)

The computer-readable medium of claim 1 wherein the computer-executable instructions further perform selecting a one-way function ƒ( ).

### Claim 5 (depends on 4)

The computer-readable medium of claim 4 wherein the computer-executable instructions further perform selecting a one-way function ƒ( ) from the group consisting of a secure hashing algorithm (SHA) and an MD5 algorithm.

### Claim 6 (depends on 1)

The computer-readable medium of claim 1 wherein the computer-executable instructions further perform:
receiving a license request for a digital license including the key (KD) from a license requestor, the license request including the key ID;
approving the license request;
employing the included key ID as the input to the function ƒ( );
employing the output of such function ƒ( ) as the requested key (KD):
ƒ(key ID)key (KD); and
distributing such key (KD) to the license requestor as part of a digital license.

### Claim 7 (depends on 1)

The computer-readable medium of claim 1 wherein the computer-executable instructions further perform receiving the selected function ƒ( ).

### Claim 8 (depends on 7)

The computer-readable medium of claim 7 wherein the key ID is employed along with a secret seed as the input to the function ƒ( ):
ƒ(key ID, seed)key (KD),
when producing the key (KD) to encrypt the digital object, the computer-readable medium further comprising instructions for:
receiving the selected function ƒ( ) and the secret seed; and
employing the included key ID along with the received secret seed as the input to the received function ƒ( ):
ƒ(key ID, seed)key (KD),
when producing the key (KD) to distribute to the requestor.

### Claim 9 (depends on 8)

The computer-readable medium of claim 8 wherein the secret seed has a seed ID, and wherein the key ID, the secret seed, and the seed ID are employed as the input to the function ƒ( ):
ƒ(key ID, seed, seed ID)key (KD),
when producing the key (KD) to encrypt the digital object, the computer-readable medium further comprising instructions for:
receiving the selected function ƒ( ), the secret seed, and the seed ID thereof;
receiving the request for the key (KD) including the key ID and the seed ID as distributed along with the encrypted digital object;
selecting the secret seed based on the received seed ID; and
employing the included key ID, the included seed ID, and the selected seed as the input to the received function ƒ( ):
ƒ(key ID, seed, seed ID)key (KD),
when producing the key (KD) to distribute to the requestor.

### Claim 10

A computer system for requesting a key (KD) for decrypting a digital object, the digital object having been encrypted by:
selecting a key ID for the digital object;
selecting a function ƒ( ) having an input and an output;
employing the selected key ID as the input to the function ƒ( );
employing the output of such function ƒ( ) as the key (KD) for the digital object:
ƒ(key ID)key (KD),
encrypting such digital object according to such key (KD); and
distributing such encrypted digital object, along with the key ID the computer system comprising:
means for receiving the distributed encrypted digital object, along with the key ID;
means for obtaining the key ID from same; and
means for sending a request for the key (KD), the request including the key ID, wherein upon approval of the request, the included key ID is employed as the input to the function ƒ( ) and the output of such function ƒ( ) as the requested key (KD):
ƒ(key ID)key (KD), and
such key (KD) being distributed;
means for receiving the distributed key (KD).

### Claim 11 (depends on 10)

The computer system of claim 10, further comprising:
means for sending a request for a digital license including the key (KD) for decrypting the digital object, the request including the key ID, wherein upon approval of the request, the included key ID is employed as the input to the function ƒ( ); and the output of such function ƒ( ) is employed as the requested key (KD):
ƒ(key ID)key (KD);
such key (KD) being distributed as part of the requested digital license; and
means for receiving the digital license including the distributed key (KD).

### Claim 12

A computer system for decrypting a digital object, wherein the digital object has been encrypted by:
selecting a key ID for the digital object;
selecting a secret seed having a seed ID;
selecting a function ƒ( ) having an input and an output;
employing the selected key ID and the selected seed as the input to the function ƒ( );
employing the output of such function ƒ( ) as the key (KD) for the digital object:
ƒ(key ID, seed)key (KD),
encrypting such digital object according to such key (KD); and
distributing such encrypted digital object, along with the key ID and the seed ID, the computer system further comprising:
means for receiving the distributed encrypted digital object, along with the key ID and the seed ID;
means for obtaining the key ID and seed ID from same;
means for sending a request for the key (KD), the request including the key ID and seed ID, wherein upon approval of the request,
the secret seed is selected based on the received seed ID;
the included key ID and the selected secret seed are employed as the input to the function ƒ( ); and
the output of such function ƒ( ) is employed as the requested key (KD):
ƒ(key ID, seed)key (KD),
such key (KD) being distributed; and
means for receiving the distributed key (KD).

### Claim 13

A computer system for decrypting a digital object, wherein the digital object has been encrypted by:
selecting a key ID for the digital object;
selecting a secret seed having a seed ID;
selecting a function ƒ( ) having an input and an output;
employing the selected key ID, the selected seed, and the seed ID thereof as the input to the function ƒ( );
employing the output of such function ƒ( ) as the key (KD) for the digital object:
ƒ(key ID, seed, seed ID)key (KD),
encrypting such digital object according to such key (KD); and
distributing such encrypted digital object, along with the key ID and the seed ID, the computer system further comprising:
means for receiving the distributed encrypted digital object, along with the key ID and the seed ID;
means for obtaining the key ID and seed ID from same;
means for sending a request for the key (KD), the request including the key ID and seed ID, wherein upon approval of the request,
the secret seed is selected based on the received seed ID;
the included key ID, the included seed ID, and the selected secret seed are employed as the input to the function ƒ( ); and
the output of such function ƒ( ) is employed as the requested key (KD):
ƒ(key ID, seed, seed ID)key (KD),
such key (KD) being distributed; and
means for receiving the distributed key (KD).
