# US 7,613,296 B2 · M6 block cipher system and method for encoding content and authenticating a device

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

- Number: US 7,613,296 B2
- Document ID: US7613296B2
- Status: Granted
- Kind: B2
- Application number: 11/258,059
- Filed: 2005-10-26
- Published: 2006-06-15
- Granted: 2009-11-03
- Earliest claimed: 2004-11-26
- Assignees: Samsung Electronics Co., Ltd.
- Inventors: Hong-Mook Choi; Mi-Jung Noh
- Web page: https://patentgrep.com/patent/US7613296B2

## CPC

- H04L 9/0625: {with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI}
- H04L 2209/08: Randomization, e.g. dummy operations or using noise
- H04L 2209/12: Details relating to cryptographic hardware or logic circuitry
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An M6 block cipher system and method for encoding content and authenticating a device may use an M6 core. The M6 block cipher system may include a rotate constant selector selecting one or more rotate constants from a plurality of input rotate constants for output based on a selection signal input thereto, a rotate constant ordering device ordering the selected rotate constants and a common rotate constant input thereto based on a received ordering signal and an M6 core generating one or more of an output signal, a validity signal and a round number based on the ordered rotate constants and a plurality of input signals. The system may include a rotate constant scheduler outputting the ordering signal to the rotate constant ordering device in response to the selection signal and the round number.

## Claims

### Claim 1

An M6 block cipher system, comprising:
a rotate constant selector device selecting one or more rotate constants from a plurality of input rotate constants for output based on a selection signal input thereto,
a rotate constant ordering device ordering the selected rotate constants and a common rotate constant input thereto based on a received ordering signal,
an M6 core device generating one or more of an output signal, a validity signal and a round number based on the ordered rotate constants and a plurality of input signals, and
a rotate constant scheduler device outputting the ordering signal to the rotate constant ordering device in response to the selection signal and the round number.

### Claim 2 (depends on 1)

The system of claim 1, wherein the selection signal determines whether to encode content or to generate a random number and create an exchange key for device authentication.

### Claim 3 (depends on 1)

The system of claim 1, wherein the plurality of rotate constants input to the rotate constant selector includes two rotate constants used to encode content, and two rotate constants used to generate the random number and create an exchange key for device authentication.

### Claim 4 (depends on 1)

The system of claim 1, wherein the ordering signal indicates the order of the selected rotate constants to be used for a round operation.

### Claim 5 (depends on 1)

The system of claim 1, wherein the common rotate constant is used to encode content and for device authentication.

### Claim 6 (depends on 1)

The system of claim 1, wherein the input signals to the M6 core include one or more of an input text signal, a key signal, an operation start signal and a mode selection signal.

### Claim 7 (depends on 1)

The system of claim 1, wherein the input signals to the M6 core include each of a key signal, an operation start signal, a mode selection signal and an input text signal.

### Claim 8 (depends on 7)

The system of claim 7, wherein the operation start signal instructs the M6 core to start operation,
the key signal is used to create two round operation keys, one key for each round of operation of the M6 core, and
the mode selection signal instructs the M6 core as to whether to encode or decode a given input text signal.

### Claim 9 (depends on 8)

The system of claim 8, wherein
if the given input text signal is plain text, the mode selection signal instructs the M6 core to encode the input plain text signal, else
if the given input text signal is cipher text, the mode selection signal instructs the M6 core to decode the input cipher text signal.

### Claim 10 (depends on 1)

The system of claim 1, wherein the M6 core outputs each of an output signal, a validity signal and a round number based on the ordered rotate constants and plurality of input signals.

### Claim 11 (depends on 10)

The system of claim 10, wherein
the round number contains information on a present round operation,
the output signal is generated by encoding or decoding the one a given input text signal contained in the input signals to the M6 core, and
the validity signal indicates an end of encoding and decoding and the validity of an encoded or decoded value in response to a given rotate constant.

### Claim 12 (depends on 1)

The system of claim 1, wherein the M6 block cipher system performs a single round during a single clock cycle.

### Claim 13 (depends on 1)

The system of claim 1, wherein the M6 core comprises:
a first multiplexer which, in a first round operation, selects one of the input signals and a round output signal for output, in response to a first control signal,
an M6 core controller generating the first control signal that instructs the first multiplexer to select a given input signal in the first round operation, the round output signal in another round operation, and the validity signal in response to the round number,
a round key generator generating first and second round operation keys in response to a key signal used to create the two round operation keys, one key for each round of operation of the M6 core, and
a Pi function generating the round output signal by performing a round operation on an output signal of the first multiplexer and outputting the round output signal and the round number in response to the ordered rotate constants, the first and second operation keys, and a mode selection signal to instruct the M6 core as to whether to encode or decode a given one of the input signals.

### Claim 14 (depends on 13)

The system of claim 13, wherein the M6 core further receives a first operation start signal that instructs the M6 core to start operating, and the M6 core controller operates in response to the first operating start signal.

### Claim 15 (depends on 13)

The system of claim 13, wherein the M6 core controller further outputs a second operation start signal that instructs the Pi function to perform the round operation.

### Claim 16 (depends on 13)

The system of claim 13, wherein
an output signal of the first multiplexer is divided into consecutive first and second data streams, and
the Pi function comprises:
a first basic operation device performing a basic operation using the first round operation key and the first data stream,
a first rotate function rotating an output signal of the first basic operation device a number of positions equal to the value of a first ordered rotate constant of the ordered rotate constants,
a second basic operation device performing the basic operation using an output signal of the first rotate function, the output signal of the first basic operation device, and a constant “1”,
a second rotate function rotating an output signal of the second basic operation device a number of positions equal to the value of a second ordered rotate constant of the rotate constants,
a third basic operation device performing the basic operation using the output signal of the second basic operation device, an output signal of the second rotate function, and the second round operation key,
a third rotate function rotating an output signal of the third basic operation device a number of positions equal to the value of a third ordered rotate constant of the rotate constants, and
a fourth basic operation device performing the basic operation using the mode selection signal, the output signal of the third basic operation device, an output signal of the third rotate function, and the second data stream, and
wherein the basic operation is selected from one of an addition operation, a subtraction operation, and an operation of the locations of the basic operation devices.

### Claim 17 (depends on 16)

The system of claim 16, wherein the output signal of the first multiplexer contains 64 bits, and each of the first data stream and the second data stream includes 32 bits.

### Claim 18

An M6 block cipher system that performs a plurality of round operations in order to authenticate a device for receiving/transmitting content and encoding content, in which each of the plurality of round operations includes a plurality of sub round operations, the system comprising:
a rotate constant selector device selecting one or more rotate constants from a plurality of input rotate constants for output based on a selection signal input thereto,
a rotate constant ordering device ordering, for output, each of the selected rotate constants, a separately received common rotate constant and a separately received non-common rotate constant, in response to the rotate constant selection signal,
an M6 core device generating one or more of an output signal, a validity signal, a round number and a sub round number based on the ordered rotate constants and a plurality of input signals, and
a rotate constant scheduler device outputting the ordering signal to the rotate constant ordering device in response to the selection signal, the round number and the sub round number.

### Claim 19 (depends on 18)

The system of claim 18, wherein the selection signal determines whether to encode content or to generate a random number and create an exchange key for device authentication.

### Claim 20 (depends on 18)

The system of claim 18, wherein the plurality of rotate constants input to the rotate constant selector includes two rotate constants used to encode content, and two rotate constants used to generate the random number and create an exchange key for device authentication.

### Claim 21 (depends on 18)

The system of claim 18, wherein the ordering signal indicates the order of the selected rotate constants to be used for a round operation.

### Claim 22 (depends on 18)

The system of claim 18, wherein
the common rotate constant is used to encode content and for device authentication, and
the non-common rotate constant is used when an output signal is not rotated.

### Claim 23 (depends on 18)

The system of claim 18, wherein the input signals to the M6 core include one or more of an input text signal, a key signal, an operation start signal and a mode selection signal.

### Claim 24 (depends on 18)

The system of claim 18, wherein the input signals to the M6 core include each if a key signal, an operation start signal, a mode selection signal and an input text signal.

### Claim 25 (depends on 24)

The system of claim 24, wherein
the operation start signal instructs the M6 core to start operation,
the key signal is used to create two round operation keys, one key for each round of operation of the M6 core, and
the mode selection signal instructs the M6 core as to whether to encode or decode a given input text signal.

### Claim 26 (depends on 25)

The system of claim 25, wherein
if the given input text signal is plain text, the mode selection signal instructs the M6 core to encode the input plain text signal, else
if the given input text signal is cipher text, the mode selection signal instructs the M6 core to decode the input cipher text signal.

### Claim 27 (depends on 18)

The system of claim 18, wherein the M6 core outputs each of an output signal, a validity signal, a round number and a sub round number based on the ordered rotate constants and plurality of input signals.

### Claim 28 (depends on 27)

The system of claim 27, wherein
the round number generated by the M6 core contains information on a present round operation,
the sub round number contains information on a present sub round operation performed in the present round,
the output signal is generated by encoding or decoding one of an input plain text or an input cipher text signal which are contained in the input signals to the M6 core, and
the validity signal indicates an end of encoding and decoding and the validity of an encoded or decoded value in response to the given ordered rotate constant.

### Claim 29 (depends on 18)

The system of claim 18, wherein the M6 block cipher system performs a single round during a single clock cycle.

### Claim 30 (depends on 18)

The system of claim 18, wherein the M6 core comprises:
a first multiplexer which, in a first round operation, selects one of the input signals and a round output signal in response to a first control signal,
an M6 core controller generating a second operation start signal that indicates that a round operation is to be performed, the first control signal which instructs the first multiplexer to select a given input signal in the first round operation, the round output signal in another round operation and the validity signal, in response to the round number, the sub round number, and a first operation start signal,
a round key generator generating first and second round operation keys in response to a key signal used to create the two round operation keys, one key for each round of operation of the M6 core, and
a Pi function outputting the round number, the sub round number, and the round output signal obtained by performing a round operation on an output signal of the first multiplexer in response to the ordered rotate constants, the first and second round operation keys, and a mode selection signal to instruct the M6 core as to whether to encode or decode a given one of the input signals.

### Claim 31 (depends on 30)

The system of claim 30, wherein the M6 core further receives a first operation start signal which instructs the M6 core to start operating, and the M6 core controller operates in response to the first operation start signal.

### Claim 32 (depends on 30)

The system of claim 30, wherein the second operation start signal instructs the Pi function to start operating.

### Claim 33 (depends on 30)

The system of claim 30, wherein
an output signal of the first multiplexer is divided into consecutive first and second data streams, and
the Pi function comprises:
a first basic operation device performing a basic operation using the first and second round operation keys, a constant “1”, and the first data stream,
a rotate function rotating an output signal of the first basic operation device a number of positions equal to the value of the ordered rotate constant, and
a second basic operation device performing the basic operation using an output signal of the rotate function, the output signal of the first basic operation device, and the second data stream, and
wherein the first basic operation device and the second basic operation device operate in response to the mode selection signal and the sub round number, the first and second basic operations selected from one of an addition operation, a subtraction operation and an operation of the locations of the basic operating devices.

### Claim 34 (depends on 33)

The system of claim 33, wherein the first basic operation device performs the basic operation using:
the first round operation key and the first data stream L during a first sub round of each round,
the output signal of the second basic operation device and the constant “1”during each of a second sub round through a round before a final sub round of each round, and
the second round operation key and the output signal of the second basic operation device during the final sub round.

### Claim 35 (depends on 33)

The system of claim 33, wherein the second basic operation device uses the second data stream during a final sub round of each round.

### Claim 36 (depends on 30)

The system of claim 30, wherein the output signal of the first multiplexer contains 64 bits, and the first data stream and the second data stream includes 32 bits.

### Claim 37 (depends on 18)

The system of claim 18, wherein the number of sub rounds is one of three, four or six sub rounds.

### Claim 38

A method of encoding content and performing authenticating of a device, comprising:
selecting one or more rotate constants from a plurality of input rotate constants for output based on a selection signal configured to determine whether to encode content or to generate a random number and create an exchange key for device authentication,
ordering the selected rotate constants and one or both of a separate common rotate constant used to encode content and for device authentication, and a separate non-common rotate constant used when an output signal is not rotated, based on an ordering signal, and
generating, in an M6 core device, one or more of an output signal, a validity signal and at least one of a round number and a sub round number based on the ordered rotate constants and a plurality of input signals, wherein the ordering signal is generated based on the selection signal and one or both of the round number and sub round number.

### Claim 39 (depends on 38)

The method of claim 38, wherein the input signals include a key signal, a operation start signal a mode selection signal and one of an input plain text signal or an input cipher text signal, and
the operation start signal instructs a start of operation,
the key signal is used to create two round operation keys, one key for each round of operation, and
the mode selection signal indicates whether to encode or decode a given one of the input signals.

### Claim 40 (depends on 39)

The method of claim 39, wherein
if the given input signal is plain text, the mode selection signal represents an instruction to encode the input plain text signal, else
if the given input signal is cipher text, the mode selection signal represents an. instruction to decode the input cipher text signal.

### Claim 41 (depends on 38)

The method of claim 38, wherein
the round number contains information on a present round operation,
the sub round number contains information on a present sub round operation performed in the present round,
the output signal is generated by encoding or decoding one of an input plain text or an input cipher text signal which are contained in the input signals to the M6 core, and
the validity signal indicates an end of encoding and decoding and the validity of an encoded or decoded value in response to the given ordered rotate constant.

### Claim 42 (depends on 38)

An M6 block cipher system, comprising:
a rotate constant selector device selecting one or more rotate constants from a plurality of input rotate constants for output based on a selection signal input thereto,
a rotate constant ordering device ordering the selected rotate constants and a common rotate constant input thereto based on a received ordering signal,
an M6 core device generating one or more of an output signal, a validity signal and a round number based on the ordered rotate constants and a plurality of input signals, and
a rotate constant scheduler device outputting the ordering signal to the rotate constant ordering device in response to the selection signal and the round number,
wherein the system is configured to encode content and perform authentication of a device in accordance with the method of claim 38.

### Claim 43 (depends on 39)

An M6 block cipher system that performs a plurality of round operations in order to authenticate devices for receiving/transmitting content and encode content, in which each of the plurality of round operations includes a plurality of sub round operations, the system comprising:
a rotate constant selector device selecting one or more rotate constants from a plurality of input rotate constants for output based on a selection signal input thereto,
a rotate constant ordering device ordering the selected rotate constants, a separately received common rotate constant and a separately received non- common rotate constant ordering the selected rotate constants, and outputting in response to the rotate constant selection signal,
an M6 core device generating one or more of an output signal, a validity signal, a round number and a sub round number based on the ordered rotate constants and a plurality of input signals, and
a rotate constant scheduler device outputting the ordering signal to the rotate constant ordering device in response to the selection signal, the round number and the sub round number,
wherein the system is configured to encode content and perform authentication of a device in accordance with the method of claim 39.
