IP Library Granted Patent US 12676730
Granted Patent B2
US 12676730 · App. 18/786,687 · Granted Jul 7, 2026

Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method

Inventor: Brecht Wyseur (Penthalaz, CH)
Assignee: NAGRAVISION SARL
H04L9/0631G06F21/602H04L9/0637H04L9/3242
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 12676730
App. No.
18/786,687
Filed
Jul 29, 2024
Granted
Jul 7, 2026
Kind
B2
Art Unit
2409
USPC
380/28
Abstract

A block cipher method and apparatus using round repetition for providing, from a plaintext message ( 10 ), a ciphertext message ( 50 ) and a global tag ( 52 ) is disclosed. The plaintext message is converted into a plurality of ordered plaintext blocks ( 11 ) which are successively processed during a round for computing:—a cryptogram ( 30 ) by encrypting input data ( 20 ) using a single cryptographic key, said cryptogram comprising a first segment ( 31 ) and a second segment ( 32 )—a ciphertext block ( 51 ) by performing a first operation ( 41 ) using, as operands: said first segment ( 31 ) said current plaintext block ( 11 ) and said second segment ( 32 ). At each next round said input data is newly determined based on the current ciphertext block and an updated reproducible data. The ciphertext message is determined by concatenating the ciphertext blocks and the global tag by a second operation ( 42 ) using computed authentication local tags as operands.

Claims (57)

1 . A method for decrypting a message, the method comprising:

converting a ciphertext message into a plurality of ciphertext blocks, each ciphertext block of the plurality of ciphertext blocks having a predefined bit length;

for each respective ciphertext block of the plurality of ciphertext blocks:

inputting respective input data into a block decipherment algorithm, wherein the respective input data comprise respective reproducible data and either an initialization vector or a respective previously-computed plaintext block;

computing, using the block decipherment algorithm, a respective cryptogram by decrypting the respective input data using a cryptographic key, wherein the respective cryptogram comprises a respective first segment and a respective second segment, the respective second segment comprising a respective authentication local tag;

performing a first sub-operation using, as inputs, a respective first operand and a respective second operand of three respective operands, wherein the three respective operands comprise: the respective first segment, the respective second segment, and the respective ciphertext block of the plurality of ciphertext blocks; and

performing a second sub-operation using, as inputs, a respective third operand of the three respective operands and a respective result of the first sub-operation; wherein a respective result of the second sub-operation is a respective plaintext block of a plurality of plaintext blocks; and

concatenating the plurality of plaintext blocks to generate a plaintext message.

2 . The method of claim 1 , further comprising padding at least one ciphertext block of the plurality of ciphertext blocks such that each ciphertext block of the plurality of ciphertext blocks has the predefined bit length.

3 . The method of claim 1 , further comprising:

determining whether the respective reproducible data and either the initialization vector or the respective previously-computed plaintext block have the same bit length; and

responsive to determining that the respective reproducible data and either the initialization vector or the respective previously-computed plaintext block do not have the same bit length, padding at least one of the respective reproducible data, the initialization vector, or the respective previously-computed plaintext block.

4 . The method of claim 1 , wherein:

for a first ciphertext block of the plurality of ciphertext blocks, the respective input data comprise respective reproducible data and the initialization vector; and

for all other ciphertext blocks of the plurality of ciphertext blocks, the respective input data comprise respective reproducible data and a respective previously computed plaintext block of the plurality of plaintext blocks.

5 . The method of claim 1 , wherein the first sub-operation and the second sub-operation are both logical operations.

6 . The method of claim 1 , wherein the first sub-operation and the second sub-operation are both commutative operations.

7 . The method of claim 1 , wherein at least one of the first sub-operation or the second sub-operation is an exclusive OR (XOR) operation.

8 . An apparatus for decrypting a message, the apparatus comprising:

at least one memory; and

at least one processor coupled to the at least one memory and configured to:

convert a ciphertext message into a plurality of ciphertext blocks, each ciphertext block of the plurality of ciphertext blocks having a predefined bit length;

for each respective ciphertext block of the plurality of ciphertext blocks:

input respective input data into a block decipherment algorithm, wherein the respective input data comprise respective reproducible data and either an initialization vector or a respective previously-computed plaintext block;

compute, using the block decipherment algorithm, a respective cryptogram by decrypting the respective input data using a cryptographic key, wherein the respective cryptogram comprises a respective first segment and a respective second segment, the respective second segment comprising a respective authentication local tag;

perform a first sub-operation using, as inputs, a respective first operand and a respective second operand of three respective operands, wherein the three respective operands comprise: the respective first segment, the respective second segment, and the respective ciphertext block of the plurality of ciphertext blocks; and

perform a second sub-operation using, as inputs, a respective third operand of the three respective operands and a respective result of the first sub-operation;

wherein a respective result of the second sub-operation is a respective plaintext block of a plurality of plaintext blocks; and

concatenate the plurality of plaintext blocks to generate a plaintext message.

9 . The apparatus of claim 8 , wherein the at least one processor is further configured to pad at least one ciphertext block of the plurality of ciphertext blocks such that each ciphertext block of the plurality of ciphertext blocks has the predefined bit length.

10 . The apparatus of claim 8 , wherein the at least one processor is further configured to:

determine whether the respective reproducible data and either the initialization vector or the respective previously-computed plaintext block have the same bit length; and

responsive to determining that the respective reproducible data and either the initialization vector or the respective previously-computed plaintext block do not have the same bit length, pad at least one of the respective reproducible data, the initialization vector, or the respective previously-computed plaintext block.

11 . The apparatus of claim 8 , wherein:

for a first ciphertext block of the plurality of ciphertext blocks, the respective input data comprise respective reproducible data and the initialization vector; and

for all other ciphertext blocks of the plurality of ciphertext blocks, the respective input data comprise respective reproducible data and a respective previously computed plaintext block of the plurality of plaintext blocks.

12 . The apparatus of claim 8 , wherein the first sub-operation and the second sub-operation are both logical operations.

13 . The apparatus of claim 8 , wherein the first sub-operation and the second sub-operation are both commutative operations.

14 . The apparatus of claim 8 , wherein at least one of the first sub-operation or the second sub-operation is an exclusive OR (XOR) operation.

15 . A non-transitory computer-readable storage medium having stored thereon instructions that, when executed by at least one processor, cause the at least one processor to:

convert a ciphertext message into a plurality of ciphertext blocks, each ciphertext block of the plurality of ciphertext blocks having a predefined bit length;

for each respective ciphertext block of the plurality of ciphertext blocks:

input respective input data into a block decipherment algorithm, wherein the respective input data comprise respective reproducible data and either an initialization vector or a respective previously-computed plaintext block;

compute, using the block decipherment algorithm, a respective cryptogram by decrypting the respective input data using a cryptographic key, wherein the respective cryptogram comprises a respective first segment and a respective second segment, the respective second segment comprising a respective authentication local tag;

perform a first sub-operation using, as inputs, a respective first operand and a respective second operand of three respective operands, wherein the three respective operands comprise: the respective first segment, the respective second segment, and the respective ciphertext block of the plurality of ciphertext blocks; and

perform a second sub-operation using, as inputs, a respective third operand of the three respective operands and a respective result of the first sub-operation;

wherein a respective result of the second sub-operation is a respective plaintext block of a plurality of plaintext blocks; and

concatenate the plurality of plaintext blocks to generate a plaintext message.

16 . The non-transitory computer-readable storage medium of claim 15 , wherein the instructions, when executed by the at least one processor, cause the at least one processor to pad at least one ciphertext block of the plurality of ciphertext blocks such that each ciphertext block of the plurality of ciphertext blocks has the predefined bit length.

17 . The non-transitory computer-readable storage medium of claim 15 , wherein the instructions, when executed by the at least one processor, cause the at least one processor to:

determine whether the respective reproducible data and either the initialization vector or the respective previously-computed plaintext block have the same bit length; and

responsive to determining that the respective reproducible data and either the initialization vector or the respective previously-computed plaintext block do not have the same bit length, pad at least one of the respective reproducible data, the initialization vector, or the respective previously-computed plaintext block.

18 . The non-transitory computer-readable storage medium of claim 15 , wherein:

for a first ciphertext block of the plurality of ciphertext blocks, the respective input data comprise respective reproducible data and the initialization vector; and

for all other ciphertext blocks of the plurality of ciphertext blocks, the respective input data comprise respective reproducible data and a respective previously computed plaintext block of the plurality of plaintext blocks.

19 . The non-transitory computer-readable storage medium of claim 15 , wherein the first sub-operation and the second sub-operation are both logical operations.

20 . The non-transitory computer-readable storage medium of claim 15 , wherein the first sub-operation and the second sub-operation are both commutative operations.