Patent ID: 8798263

Claim:
A method for encrypting digital data, said data being divided into a sequence of N first blocks of a same length of n bits each, N being an integer greater than 1, n being an integer greater than 1, comprising steps of: inputting the sequence of N first blocks into a pre-processing module comprising a processor, registers, an arithmetic module, and a memory containing a set including N invertible elements, the N first blocks and the N invertible elements being within a predetermined finite ring, the arithmetic module including multiplier modules, addition modules and inverter modules, and using the arithmetic module to determine N resulting blocks based on the N first blocks and the N invertible elements by executing resulting block determination operations including, i) set Y N =M N *X N , and ii) for i=N−1 to 1, set Y i =(m i *X i )+Y i+1 , where ‘i’ is an index, Y 1 -Y N are the N resulting blocks, respectively, m 1 -m N are the N invertible elements, respectively, and X 1 -X N are the N first blocks, respectively, outputting a sequence of the N resulting blocks, each of the N resulting blocks having a length identical to a corresponding block of the input sequence of N first blocks, and ciphering each of the sequence of the N resulting blocks, by a ciphering module, with a block cipher in a chaining mode from the first block of the sequence of the N resulting blocks to the last block of the sequence of the N resulting blocks with a ciphering algorithm to produce a sequence of N encrypted blocks, said encrypted blocks having each a same length.