# US 8,542,822 B2 · Method and module for renewing the code of a cryptographic algorithm, method and module for generating a seed, security processor and recording carrier for these methods

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

- Number: US 8,542,822 B2
- Document ID: US8542822B2
- Status: Granted
- Kind: B2
- Application number: 13/144,407
- Filed: 2009-12-29
- Published: 2012-02-09
- Granted: 2013-09-24
- Earliest claimed: 2009-01-13
- Assignees: Viaccess
- Applicants: Patrick Soquet
- Inventors: Patrick Soquet
- Web page: https://patentgrep.com/patent/US8542822B2

## CPC

- H04L 9/0662: {with particular pseudorandom sequence generator}
- H04L 9/12: Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
- H04L 9/16: the keys or algorithms being changed during operation
- H04N 7/162: {Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing}
- H04N 7/1675: {Providing digital key or authorisation information for generation or regeneration of the scrambling sequence (pseudo-random number generators in general G06F7/58)}
- H04N 21/2383: Channel coding {or modulation} of digital bit-stream, e.g. QPSK modulation (arrangements for detecting or preventing errors in the information received by adapting the channel coding H04L1/0009; analogue front ends or means for connecting modulators, demodulators or transceivers to a transmission line H04L27/0002)
- H04N 21/26606: {for generating or managing entitlement messages, e.g. Entitlement Control Message [ECM] or Entitlement Management Message [EMM] (arrangements for conditional access to broadcast information or to broadcast-related services H04H60/14)}
- H04N 21/26613: {for generating or managing keys in general (key distribution for secret or secure communication involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] H04L9/083; network support of key management H04L63/06; key management for network security in communication control or processing H04W12/04)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

This method for renewing the code of an algorithm comprises: receiving (122) a randomly drawn seed whose size in terms of number of bits, is at least four times smaller than the number of bits needed to encode the N numerical constants of the cryptographic algorithm, expanding (128) the seed deterministically to obtain a sequence of numbers whose size, in number of bits, is at least equal to the number of bits needed to encode the N numerical constants of the cryptographic algorithm, generating (132) N new numerical constants from the sequence of numbers obtained, and replacing (134) the N constants of the code of the cryptographic algorithm by the N new constants generated to obtain the code of a renewed cryptographic algorithm.

## Claims

### Claim 1

A method for renewing code, executable or interpretable by an electronic computer, for a cryptographic algorithm capable of enciphering a piece of data (D) by means of a key (K) to obtain a cryptogram (D*) or decipher a cryptogram (D*) by means of a key (K) to obtain a piece of unencrypted data (D), said code including at least N numerical constants, each numerical constant corresponding to an operand or to a mnemonic of an instruction of the code, a value of said numerical constants being independent of the piece of data (D), the key (K) and the cryptogram (D*), said method comprising: receiving a randomly drawn seed, the size of which, in terms of number of bits, is at least four times smaller than the number of bits needed to encode the N numerical constants of the cryptographic algorithm, expanding the seed deterministically to obtain a sequence of numbers, the sizes of which, in number of bits, are at least equal to the number of bits needed to encode the N numerical constants of the cryptographic algorithm, generating N new numerical constants from the sequence of numbers obtained, and replacing the N numerical constants of the code of the cryptographic algorithm by the N new numerical constants generated to obtain a code of a renewed cryptographic algorithm.

### Claim 2 (depends on 1)

The method of claim 1, wherein each numerical constant corresponds either to an operand or to a mathematical operator that, when replaced by a new mathematical operator, retains an order of execution of the instructions of the code of the cryptographic algorithm.

### Claim 3 (depends on 1)

The method of claim 1, further comprising: if the presence of a secret code within a first part of a received message is detected, then using the pieces of data contained in a second part of the message or a subsequently received message to build the seed, and if the presence of the secret code within the first part of the message is not detected, then using the pieces of data contained in the first and second parts for ends other than the renewal of the cryptographic algorithm.

### Claim 4 (depends on 3)

The method of claim 3, further comprising, if the presence of the secret code is not detected, then using the pieces of data contained in the first and second parts to verify integrity of the data contained in the message.

### Claim 5 (depends on 3)

The method of claim 3, wherein the message is one of an entitlement control message or an entitlement management message.

### Claim 6 (depends on 1)

The method of claim 1, wherein replacing the N numerical constants of the code of the cryptographic algorithm by the N new numerical constants generated is triggered in response to a triggering event independent of the reception of the seed.

### Claim 7 (depends on 1)

The method of claim 1, wherein the size of the seed in numbers of bits is at least ten times smaller than the number of bits needed to encode the N numerical constants.

### Claim 8 (depends on 1)

The method of claim 1, wherein expanding the seed deterministically comprises initializing a pseudo-random generator with the seed.

### Claim 9 (depends on 1)

The method of claim 1, wherein N is greater than two.

### Claim 10

An apparatus comprising an electronic computer configured to execute or interpret a module for renewing code for a cryptographic algorithm capable of enciphering a piece of data (D) by means of a key (K) to obtain a cryptogram (D*) or decipher a cryptogram (D*) by means of a key (K) to obtain a piece of unencrypted data (D), said code including at least N numerical constants, each numerical constant corresponding to an operand or to a mnemonic of an instruction of the code, a value of said numerical constants being independent of the piece of data (D), the key (K) and the cryptogram (D*), wherein said module to be executed by said electronic computer includes a sub-module for receiving a randomly drawn seed, the size of which, in terms of a number of bits, is at least four times smaller than the number of bits needed to encode the N numerical constants of the cryptographic algorithm, a deterministic generator of numbers, the generator being configured to be initialized with the seed to obtain a sequence of numbers, the size of each number, in number of bits, being at least equal to the number of bits needed to encode the N numerical constants of the cryptographic algorithm, and a builder of cryptographic algorithmic codes, said builder being capable of: generating N new numerical constants from the sequence of numbers obtained, and replacing the N numerical constants of the code of the cryptographic algorithm by the N new numerical constants thus generated to obtain a code of a renewed cryptographic algorithm.

### Claim 11 (depends on 10)

An apparatus comprising an electronic computer configured to implement a security processor capable of executing or interpreting the code of a cryptographic algorithm to encipher a piece of data (D) by means of a key (K) to obtain a cryptogram (D*) or decipher a cryptogram (D*) by means of a key (K) to obtain a piece of unencrypted data (D), this code comprising at least N numerical constants, each numerical constant corresponding to an operand or to a mnemonic of an instruction of the code, a value of these numerical constants being independent of the piece of data (D), the key (K) and the cryptogram (D*), said security module comprising a module for renewing the code of cryptographic algorithm recited in claim 10.

### Claim 12 (depends on 1)

A method for generating a seed intended for use in a method for renewing the code of a cryptographic algorithm according as recited in claim 1, said method comprising: a) randomly drawing a seed whose size, in terms of number of bits, is at least four times smaller than the number of bits needed to encode the N numerical constants of the code of the cryptographic algorithm to be renewed, b) using the seed drawn in step (a), creating a renewed enciphering or deciphering algorithm code by means of the method of renewal as recited in claim 1, c) checking the robustness of the code of the renewed algorithm relative to at least one method of cryptanalysis, d) if the code of the encipherment algorithm is not robust relative to the method of cryptanalysis, then returning to the step a) and, if not, e) transmitting the randomly drawn seed to a receiver capable of implementing the method of renewal of the code of the cryptographic algorithm.

### Claim 13 (depends on 1)

An apparatus comprising an electronic computer configured to execute or interpret a module for generating a seed intended for use in order to renew the code of a cryptographic algorithm by means of a method according to claim 1, said module comprising: a generator capable of randomly drawing a seed whose size, in terms of number of bits, is at least four times smaller than the number of bits needed to encode the N numerical constants of the cryptographic algorithm to be renewed, and a sub-module for creating a renewed encipherment and decipherment algorithm code by means of the method of renewal according to claim 1, when the received seed is the one drawn by the generator; a checker for checking the robustness of the code of the renewed algorithm relative to at least one method of cryptanalysis, said checker being capable of: inhibiting the transmission of the randomly drawn seed to a receiver if the renewed algorithm is not robust with respect to the method of cryptanalysis and, if not, permitting the transmission of the randomly drawn seed to a receiver capable of implementing the method of renewal of the code of the cryptographic algorithm.

### Claim 14 (depends on 1)

A manufacture comprising instructions encoded thereon, wherein said instructions, when executed by an electronic computer, cause the electronic computer to execute a method according to claim 1.

### Claim 15 (depends on 12)

A manufacture comprising a non-transitory computer-readable medium having encoded thereon instructions that, when executed by an electronic computer, cause the electronic computer to execute a method according to claim 12.

### Claim 16 (depends on 9)

The method of claim 9, wherein N is greater than ten.
