Cryptographic method and apparatus for non-linearly merging a data block and a key
AssigneeU.S. Philips Corporation
InventorHuibert Den Boer
Life of this patent
Estimating the term…
Abstract
A method and apparatus for cryptographically converting a digital input data block into a digital output data block. The apparatus has an input for supplying the input data block and a further input for supplying a code conversion digital key K1. Cryptographic processing merges a selected part M1 of the digital input data block with the key K1 to produce a data block B1 which is non-linearly dependent on M1 and K1. The merging is performed in one sequentially inseparable step. The digital output block is derived from a selected part of the data block B1.
Claims10
A program stored on a computer readable medium for cryptographically converting a digital input data block M into a digital output data block;
- said program configured to perform the steps of merging a selected part M1 of said digital input data block M with a first digital key K1 to produce a data block B1 which non-linearly depends on said selected part M1 and said first key K1, and deriving said digital output block from said data block B1 and the remaining part of the input data block M;
- wherein said merging step is performed by executing a non-linear function g for non-linearly merging said selected part M1 and said first key K1 in a single step;
- wherein said merging step comprises the steps of splitting said selected part M1 in a first plurality n of sub-blocks m0, . . . , mn−1 of substantially equal length;
- splitting said first key K1 in said first plurality n of sub-keys k0, . . . , kn−1, substantially having equal length, the sub-key ki corresponding to the sub-block mi, for i=0 to n−1;
- separately processing each of said sub-blocks mi by executing for each of said sub-blocks m1 a same non-linear function h for non-linearly merging a sub-block b1 derived from said sub-block mi with said corresponding sub-key k1 in one, sequentially, inseparable step and producing said first plurality of output sub-blocks h(bi, ki);
- and combining sub-blocks ti derived from said first plurality of said output sub-blocks h(bi, ki) to form said data block B1;
- and wherein said function h(bi, ki) is defined by:
- h (bi, ki) = (bi · ki)−1, if bi ≠ 0, ki ≠ 0, and bi ≠ ki h (bi, ki) = (ki)−2, if bi = 0 h (bi, ki) = (bi)−2, if ki = 0 h (bi, ki) = 0 if bi = ki,
- where the multiplication and inverse operations are predetermined Galois Field multiplication and inverse operations.
A processor for cryptographically converting a digital input data block M into a digital output data block;
- said processor comprising:
- first input means for providing said digital input data block M;
- second input means for providing a first digital key K1;
- cryptographic processing means for converting the digital input data block M into the digital output data block;
- said conversion comprising merging a selected part M1 of said digital input data block M with said first key K1 and producing a data block B1 which non-linearly depends on said selected part M1 and said first key K1, said digital output data block being derived from said data block B1 and the remaining part of the digital input block M;
- and
- output means for outputting said digital output data block;
- characterized in that said cryptographic processing means is arranged to perform said merging by executing a non-linear function g for non-linearly merging said selected part M1 and said first key K1 in a single step wherein said merging step comprises the steps of splitting said selected part M1 in a first plurality n of sub-blocks m0, . . . , mn−1 of substantially equal length;
- splitting said first key K1 in said first plurality n or sub-keys k0, . . . , kn−1, substantially having equal length, the sub-key ki corresponding;
- to the sub-block mi, for i=0 to n−1;
- separately processing each of said sub-blocks mi by executing for each of said sub-blocks mj a same non-linear function h for non-linearly merging a sub-block bi derived from said sub-block mi with said corresponding sub-key ki in one, sequentially inseparable step and producing said first plurality of output sub-blocks h(bi, ki);
- and combining sub-blocks ti derived from said first plurality of said output sub-blocks h(bi, ki) to form said data block B1 wherein said function h(bi, ki) is defined by:
- h (bi, ki) = (bi · ki)−1, if bi ≠ 0, ki ≠ 0, and bi ≠ ki h (bi, ki) = (ki)−2, if bi = 0 h (bi, ki) = (bi)−2, if ki = 0 h (bi, ki) = 0 if bi = ki,
- where the multiplication and inverse operations are predetermined Galois Field multiplication and inverse operations.
Dependencies are inferred from the claim text.