# US 11,443,048 B2 · Install-time procedural content generation for encrypted packages

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

- Number: US 11,443,048 B2
- Document ID: US11443048B2
- Status: Granted
- Kind: B2
- Application number: 16/404,617
- Filed: 2019-05-06
- Published: 2020-11-12
- Granted: 2022-09-13
- Earliest claimed: 2019-05-06
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Simon Lee Cooke; Xin Huang
- Web page: https://patentgrep.com/patent/US11443048B2

## CPC

- G06F 21/602: {Providing cryptographic facilities or services}
- A63F 13/35: Details of game servers
- A63F 13/70: Game security or game management aspects
- A63F 13/71: using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
- A63F 13/73: Authorising game programs or game devices, e.g. checking authenticity
- G06F 8/61: Installation
- G06F 21/10: Protecting distributed programs or content, e.g. vending or licensing of copyrighted material (protection in video systems or pay television H04N7/16) {; Digital rights management [DRM]}
- H04L 9/3236: {using cryptographic hash functions}
- H04L 67/04: specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/131: Protocols for games, networked simulations or virtual reality
- H04L 69/04: Protocols for data compression, e.g. ROHC
- H04L 69/22: Parsing or analysis of headers
- A63F 2300/201: Playing authorisation given at platform level
- A63F 2300/552: for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
- G06F 2221/2109: Game systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system and method for generating content for an encrypted package is provided. A package may be received that includes one or more anti-tamper hash portions and encrypted data, where the encrypted data includes one or more procedural content generation instructions. A portion of the encrypted data including the one or more procedural content generation instructions may be decrypted and a data based on the execution of the one or more procedural content generation instructions and a corpus of data may be generated. The generated data may be encrypted and anti-tamper hashes may be generated based on the encrypted generated data. The generated anti-tamper hashes may be compared to the one or more anti-tamper hashes in the anti-tamper hash portion of the received package.

## Claims

### Claim 1

A system for generating content for an encrypted package, the system comprising:
at least one processor; and
at least one memory including instructions which when executed by the at least one processor, cause the at least one processor to:
receive a package including one or more anti-tamper hash portions and encrypted data, the encrypted data including one or more procedural content generation instructions,
decrypt a portion of the encrypted data including the one or more procedural content generation instructions,
generate data based on the execution of the one or more procedural content generation instructions and a corpus of data,
encrypt the data generated based on the execution of the one or more procedural content generation instructions and the corpus of data, and
validate the generated data utilizing one or more anti-tamper hashes from the anti-tamper hash portion of the package.

### Claim 2 (depends on 1)

The system of claim 1, wherein the instructions that validate the generated data utilizing one or more anti-tamper hashes from the anti-tamper hash portion of the package include:
generating a hash value based on an encrypted portion of the generated data;
receiving a hash value from the anti-tamper hash portion of the package; and
comparing the generated hash value to the received hash value.

### Claim 3 (depends on 2)

The system of claim 2, wherein the instructions cause the at least one processor to acquire external data based on the execution of the one or more procedural instructions and the corpus of data from another device if the generated hash value does not match the received hash value.

### Claim 4 (depends on 2)

The system of claim 2, wherein the instructions cause the at least one processor to acquire a package including one or more anti-tamper hash portions and encrypted data from another device when the generated hash value does not match the received hash value, the encrypted data including second generated data.

### Claim 5 (depends on 1)

The system of claim 1, wherein the instructions cause the at least one processor to validate the received package prior to decrypting the encrypted data including the corpus of data and the one or more procedural content generation instructions.

### Claim 6 (depends on 1)

The system of claim 1, wherein the execution of the one or more procedural content generation instructions generates at least one of image data, audio data, and/or texture data.

### Claim 7 (depends on 1)

The system of claim 1, wherein the instructions cause the at least one processor to decrypt the encrypted data in an operating system different from an operating system that generates data based on the execution of the one or more procedural content generation instructions.

### Claim 8 (depends on 1)

The system of claim 1, wherein the instructions cause the at least one processor to reserve storage space based on a metadata portion in the received package.

### Claim 9

A method of generating content for an encrypted package comprising:
receiving a package including one or more anti-tamper hash portions and encrypted data, the encrypted data including one or more seed portions and one or more procedural content generation instructions;
decrypting a portion of the encrypted data including the one or more procedural content generation instructions and the one or more seed portions;
generating data based on the execution of the one or more procedural content generation instructions, wherein the one or more procedural content generation instructions operate on the one or more seed portions;
encrypting the generated data; and
validating the generated data utilizing one or more anti-tamper hashes from the anti-tamper hash portion of the package.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
generating a hash value based on an encrypted portion of the generated data;
receiving a hash value from the anti-tamper hash portion of the package; and
comparing the generated hash value to the received hash value.

### Claim 11 (depends on 10)

The method of claim 10, further comprising acquiring external data based on the execution of the one or more procedural content generation instructions and the corpus of data from a device different from which the hash value is generated if the generated hash value does not match the received hash value.

### Claim 12 (depends on 10)

The method of claim 10, further comprising acquiring a package including one or more anti-tamper hash portions and encrypted data from a device different from which the hash value is generated if the generated hash value does not match the received hash value.

### Claim 13 (depends on 9)

The method of claim 9, further comprising generating at least one of image data, audio data, and/or texture data.

### Claim 14 (depends on 9)

The method of claim 9, further comprising decrypting the encrypted data in an operating system different from an operating system that generates data based on the execution of the one or more procedural content generation instructions.

### Claim 15

A system for generating install-time procedural content for encrypted packages, the system comprising:
at least one processor; and
at least one memory including instructions which when executed by the at least one processor, cause the at least one processor to:
receive seed data and procedural content generation instructions,
execute the procedural content generation instructions to generate content based on the seed data,
encrypt the generated content, the seed data, and the procedural content generation instructions,
generate one or more anti-tamper hashes based on the encrypted content, encrypted seed data, and the encrypted procedural content generation instructions,
assemble an install-time procedural content file, the install-time procedural content file including at least the encrypted seed data, encrypted procedural content generation instructions, and the one or more anti-tamper hashes, and
transmit the install-time procedural content file to a client device.

### Claim 16 (depends on 15)

The system of claim 15, wherein the instructions cause the at least one processor to exclude the encrypted generated content from the install-time procedural content file.

### Claim 17 (depends on 15)

The system of claim 15, wherein the instructions cause the at least one processor to receive first and second procedural content generation instructions, wherein the second procedural content generation instructions are specific to a target device different from a target device of the first procedural content generation instructions.

### Claim 18 (depends on 15)

The system of claim 15, wherein the procedural content generation instructions operate on the seed data to generate content.

### Claim 19 (depends on 15)

The system of claim 15, wherein the execution of the one or more procedural content generation instructions generates at least one of image data, audio data, and/or texture data.

### Claim 20 (depends on 15)

The system of claim 15, wherein the client device is a gaming console.
