This section deals with a modification of Quadibloc 2002E that is applicable to all variants which make use of the standard rounds. It consists of the introduction of a third form of the diffusion phase, as illustrated in the diagram below:
In the first half of the cipher for most variants, or in the first half of any symmetric group of standard rounds in the variants operating on 256-bit blocks, the modification to the cipher is that whenever a standard round using a greater diffusion phase is immediately followed by a standard round using a lesser diffusion phase, a standard round using a diffusion phase of the type illustrated above, referred to as a compound diffusion phase, is inserted. In the second half of the cipher, or in the second half of the symmetric groups of standard rounds in variants with a 256-bit block, the order of round types is reversed, and thus a standard round using a compound diffusion phase is inserted following a standard round using a lesser diffusion phase which immediately preceded a standard round using a greater diffusion phase.
In the case of 128-bit block ciphers, this insertion will increase the total number of rounds. In most cases of 256-bit block ciphers, because of their structure, the number of rounds will remain constant, and the insertion of rounds with compound diffusion phases will simply modify the sequence of round types. The exceptions to this are Quadibloc 2002EA WU and Quadibloc 2002EA WR, where in each of the four segments, the number of standard rounds and the number of core rounds shall each increase from four to six, in order to ensure that all three types of standard round shall continue to be represented.
The greater and lesser diffusion phases shall be as modified for Quadibloc 2002EM.
In the compound diffusion phase, there are three layers of operations, each involving four Feistel rounds, acting on 32-bit blocks composed of two 16-bit halves.
Between the first and second layers, and between the second and third layers, 16-bit segments are transposed to the order:
1 4 7 2 5 8 3 6
and, in addition, in the middle of the second layer, the halves of the first two 32-bit blocks are swapped, and the order of the four 16-bit segments in the second half of the block is reversed.
This leads to the 16-bit segments of the block being transposed to the order:
4 7 8 1 6 5 2 3
which, when expressed in terms of bytes, becomes the arrangement:
7 8 13 14 15 16 1 2 11 12 9 10 3 4 5 6
Note that this arrangement of three layers, to maintain symmetry but deal in only 16-bit segments, has the limitation that each 32-bit subblock is connected to itself and two of the three other subblocks, rather than providing complete diffusion.
That of the lesser diffusion phase is to the order:
6 12 14 4 15 1 7 9 8 10 16 2 13 3 5 11
and that of the greater diffusion phase is to the order:
1 14 10 5 4 15 11 8 16 3 7 12 13 2 6 9
Thus, the net effect of three standard rounds followed by an additional bit swap phase can be determined:
Once again, in the beginning, the bytes are independent:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
After the first bit swap phase, they are mixed as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8
where, under the number of each byte, is the number, in the original ordering, of the other byte with which it has swapped bits.
After a greater diffusion phase, the ordering of the bytes is changed to this:
1 14 10 5 4 15 11 8 16 3 7 12 13 2 6 9 9 6 2 13 12 7 3 16 8 11 15 4 5 10 14 1
Then, the second bit swap phase causes further mixing, so that the bytes now include bits from other bytes as shown here:
1 14 10 5 4 15 11 8 16 3 7 12 13 2 6 9 9 6 2 13 12 7 3 16 8 11 15 4 5 10 14 1 16 3 7 12 13 2 6 9 1 14 10 5 4 15 11 8 8 11 15 4 5 10 14 1 9 6 2 13 12 7 3 16
The compound diffusion phase then re-orders these mixed bytes so that they stand in the following order:
11 8 13 2 6 9 1 14 7 12 16 3 10 5 4 15 3 16 5 10 14 1 9 6 15 4 8 11 2 13 12 7 6 9 4 15 11 8 16 3 10 5 1 14 7 12 13 2 14 1 12 7 3 16 8 11 2 13 9 6 15 4 5 10
and the following bit swap phase mixes these bytes further so that the sources for each byte are now as given below:
11 8 13 2 6 9 1 14 7 12 16 3 10 5 4 15 3 16 5 10 14 1 9 6 15 4 8 11 2 13 12 7 6 9 4 15 11 8 16 3 10 5 1 14 7 12 13 2 14 1 12 7 3 16 8 11 2 13 9 6 15 4 5 10 7 12 16 3 10 5 4 15 11 8 13 2 6 9 1 14 15 4 8 11 2 13 12 7 3 16 5 10 14 1 9 6 10 5 1 14 7 12 13 2 6 9 4 15 11 8 16 3 2 13 9 6 15 4 5 10 14 1 12 7 3 16 8 11
Then, the rearrangement performed within the lesser diffusion phase reorders these bytes to the following sequence:
9 3 5 2 4 11 1 7 14 12 15 8 10 13 6 16 1 11 13 10 12 3 9 15 6 4 7 16 2 5 14 8 8 14 12 15 13 6 16 10 3 5 2 9 7 4 11 1 16 6 4 7 5 14 8 2 11 13 10 1 15 12 3 9 5 2 9 3 1 7 4 11 15 8 14 12 6 16 10 13 13 10 1 11 9 15 12 3 7 16 6 4 14 8 2 5 12 15 8 14 16 10 13 6 2 9 3 5 11 1 7 4 4 7 16 6 8 2 5 14 10 1 11 13 3 9 15 12
and, finally, one further bit swap now results in each byte having the sources:
9 3 5 2 4 11 1 7 14 12 15 8 10 13 6 16 1 11 13 10 12 3 9 15 6 4 7 16 2 5 14 8 8 14 12 15 13 6 16 10 3 5 2 9 7 4 11 1 16 6 4 7 5 14 8 2 11 13 10 1 15 12 3 9 5 2 9 3 1 7 4 11 15 8 14 12 6 16 10 13 13 10 1 11 9 15 12 3 7 16 6 4 14 8 2 5 12 15 8 14 16 10 13 6 2 9 3 5 11 1 7 4 4 7 16 6 8 2 5 14 10 1 11 13 3 9 15 12 14 12 15 8 10 13 6 16 9 3 5 2 4 11 1 7 6 4 7 16 2 5 14 8 1 11 13 10 12 3 9 15 3 5 2 9 7 4 11 1 8 14 12 15 13 6 16 10 11 13 10 1 15 12 3 9 16 6 4 7 5 14 8 2 15 8 14 12 6 16 10 13 5 2 9 3 1 7 4 11 7 16 6 4 14 8 2 5 13 10 1 11 9 15 12 3 2 9 3 5 11 1 7 4 12 15 8 14 16 10 13 6 10 1 11 13 3 9 15 12 4 7 16 6 8 2 5 14
from which it can be seen that the compound diffusion phase rearranges the bytes passing through it in the appropriate manner to meet the design goal of complete diffusion by means of the bit swap phases combined with the nonlinearity phases: each column contains all the numbers from 1 through 16. As should be apparent, when the table is doubled in height to reflect the two possibilities created by a bit swap phase, the potential sources added by the possibility of swapping are placed under the original sources.
Incidentally, in addition to the strength gained by using the bit swap and nonlinearity phases to provide additional diffusion, over and above the diffusion provided in the diffusion phases, since the nonlinearity phases use a fixed S-box rather than a key-dependent S-box, involving them more heavily in diffusion provides additional protection against weak keys in the cipher.
Immediately following the subkeys for the standard rounds, the 32-bit subkeys for the compound diffusion phases will be generated, and then S-boxes SR13 and SR14 will be generated. The long keys and exchange keys for the standard rounds with compound diffusion phases will be generated in the normal sequence based on the order in which rounds are performed.
For decipherment, the 32-bit keys for the compound diffusion phases must be reversed in groups of four, and the 16-bit halves of each key must be switched as well.
For Quadibloc 2002EA, the first group of standard rounds is now changed to consist of the following phases:
and the group of standard rounds in the middle of the cipher is changed to have the following structure:
and there is a group of six standard rounds at the end of the cipher having the precise reverse sequence of phases as that of the six standard rounds at the beginning of the cipher.
Thus, for Quadibloc 2002EA, the sequence of rounds becomes:
Six standard rounds Four core rounds Five standard rounds Four core rounds Six standard rounds
The subkey materials used by Quadibloc 2002EA become:
and the order in which the subkey material is produced becomes:
thus, the original EK13 through EK28 of Quadibloc 2002E become renumbered to EK19 through EK34 in Quadibloc 2002EA, and the original K193 through K496 of Quadibloc 2002E become renumbered to K265 through K568 in Quadibloc 2002EA.
Quadibloc 2002EA SR would have the number of rounds in it increased from 17 to 25, with the addition of eight rounds using compound diffusion phases.
In Quadibloc 2002EA W, each stage would continue to use exactly five standard rounds on the left half of the block, but their structure would become:
thus, with the removal of one greater diffusion phase using 32 subkeys, and the addition of two compound diffusion phases using 12 subkeys each, the total number of 32-bit subkeys used by the cipher would actually decrease; removing eight of them in each of four stages would reduce their number by 32. The total amount of subkey material used, however, would still increase, as two S-boxes, each having 256 entries each 32 bits long, would be added.
Quadibloc 2002EA ES is another case the key schedule for which should be treated explicitly, as it involves a significant modification to the use of the standard rounds.
The overall structure becomes:
Six standard rounds Eight new type rounds Six standard rounds Four core rounds Five standard rounds Four core rounds Six standard rounds Eight new type rounds Six standard rounds
and the order of key generation would become:
Again, things will be simpler with the availability of a concise table in which the key schedules for all the variants, when used with Quadibloc 2002EA, are given in summary form.
Quadibloc 2002EA Variant: -- SR DC W WS WD SD U WU RA RC RR ES RE RS RO WR Bit Swap between 128-bit Halves of a 256-bit Block 64-bit subkeys, the bytes of which are produced by a 4-of-8 code 4 4 4 4 4 4 -- -- -- EK1 EK1 EK1 EK1 -- EK1 -- -- -- -- -- -- -- EK1 EK4 EK4 EK4 EK4 EK4 EK4 Greater Diffusion Phases within Standard Rounds 32-bit subkeys 192 298 192 384 384 384 384 192 256 192 192 192 320 320 320 192 256 K1 K1 K1 K1 K1 K1 K1 K1 K1 K1 K1 K1 K1 K1 K1 K1 K1 K192 K298 K192 K384 K384 K384 K384 K192 K256 K192 K192 K192 K320 K320 K320 K192 K256 S-boxes with 256 8-bit entries, forming a permutation of the values 0-255 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 SB1 SB1 SB1 SB1 SB1 SB1 SB1 SB1 SB1 SB1 SB1 SB1 SB1 SB1 SB1 SB1 SB1 SB2 SB2 SB2 SB2 SB2 SB2 SB2 SB2 SB2 SB2 SB2 SB2 SB2 SB2 SB2 SB2 SB2 Standard Rounds (all) 128-bit subkeys 34 50 34 40 40 40 40 34 48 34 34 34 58 58 58 34 48 LK1 LK1 LK1 LK1 LK1 LK1 LK1 LK1 LK1 LK1 LK1 LK1 LK1 LK1 LK1 LK1 LK1 LK34 LK50 LK34 LK40 LK40 LK40 LK40 LK34 LK48 LK34 LK34 LK34 LK58 LK58 LK58 LK34 LK48 Lesser Diffusion Phases within Standard Rounds S-boxes with 256 8-bit entries, forming a permutation of the values 0-255 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 SB3 SB3 SB3 SB3 SB3 SB3 SB3 SB3 SB3 SB3 SB3 SB3 SB3 SB3 SB3 SB3 SB3 SB4 SB4 SB4 SB4 SB4 SB4 SB4 SB4 SB4 SB4 SB4 SB4 SB4 SB4 SB4 SB4 SB4 Standard Rounds (all) 64-bit subkeys, the bytes of which are produced by a 4-of-8 code 18 26 18 24 24 24 24 18 32 18 18 18 30 30 30 18 32 EK1 EK1 EK1 EK5 EK5 EK5 EK5 EK1 EK5 EK1 EK1 EK1 EK1 EK1 EK1 EK1 EK5 EK18 EK26 EK18 EK28 EK28 EK28 EK28 EK18 EK36 EK18 EK18 EK18 EK30 EK30 EK30 EK18 EK36 Compound Diffusion Phases within Standard Rounds 32-bit subkeys 72 96 72 96 96 96 96 72 96 72 72 72 120 120 120 72 96 K193 K299 K193 K385 K385 K385 K385 K193 K257 K193 K193 K193 K321 K321 K321 K193 K257 K264 K394 K264 K480 K480 K480 K480 K264 K352 K264 K264 K264 K440 K440 K440 K264 K352 S-boxes with 256 16-bit entries 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 SR13 SR13 SR13 SR13 SR13 SR13 SR13 SR13 SR13 SR13 SR13 SR13 SR13 SR13 SR13 SR13 SR13 SR14 SR14 SR14 SR14 SR14 SR14 SR14 SR14 SR14 SR14 SR14 SR14 SR14 SR14 SR14 SR14 SR14 Encipherment of the Left Half of the Block within Core Rounds 32-bit subkeys 48 48 96 96 96 96 48 144 48 48 48 48 48 48 144 K265 -- K265 K481 K481 K481 K481 K265 K353 K265 K265 K265 K441 K441 K441 -- K353 K312 K312 K576 K576 K576 K576 K312 K496 K312 K312 K312 K488 K488 K488 K496 Left Half Encipherment: Preparing f-function Input S-boxes with 256 8-bit entries, forming a permutation of the values 0-255 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 SB5 -- SB5 SB5 SB5 SB5 SB5 SB5 SB5 SB5 SB5 SB5 SB5 SB5 SB5 -- SB5 Core Round f-function 32-bit subkeys 256 256 512 512 256 256 256 256 256 256 256 K313 -- K313 K577 -- K577 -- K313 -- K313 K313 K313 K489 K489 K489 -- -- K568 K568 K1088 K1088 K568 K568 K568 K568 K744 K744 K744 Subkey Pools with 4 32-bit entries 512 512 768 768 -- -- -- -- SSP1 -- SSP1 -- SSP1 -- -- -- -- -- -- -- SSP1 SSP512 SSP512 SSP768 SSP768 S-boxes with 256 8-bit entries, forming a permutation of the values 0-255 6 2 6 6 2 2 6 6 6 6 6 6 6 6 6 SB6 -- SB6 SB6 SB6 SB6 SB6 SB6 SB6 SB6 SB6 SB6 SB6 SB6 SB6 -- SB6 SB11 SB7 SB11 SB11 SB7 SB7 SB11 SB11 SB11 SB11 SB11 SB11 SB11 SB11 SB11 Left Half Encipherment: Preparing f-function Input 64-bit subkeys, the bytes of which are produced by a 4-of-8 code 8 8 16 16 16 16 8 24 8 8 8 8 8 24 EK19 -- EK19 EK29 EK29 EK29 EK29 EK19 EK37 EK19 -- EK19 EK31 EK31 EK31 -- EK37 EK26 EK26 EK44 EK44 EK44 EK44 EK26 EK60 EK26 EK26 EK38 EK38 EK38 EK60 Core Round Combiner, Revised Versions 128-bit subkeys 16 16 16 -- -- -- -- -- -- -- -- -- -- LK35 LK35 -- -- LK59 -- -- LK50 LK50 LK74 32-bit subkeys 8 8 -- -- -- -- -- -- -- -- -- -- -- K737 -- -- K913 -- -- K744 K920 S-boxes with 256 16-bit entries 2 2 -- -- -- -- -- -- -- -- -- -- -- SR11 -- -- SR11 -- -- SR12 SR12 Core Round Combiner for Modifying the Right Half of the Block S-boxes with 256 8-bit entries, forming a permutation of the values 0-255 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 SB12 -- SB12 SB12 SB12 SB12 SB12 SB12 SB12 SB12 SB12 SB12 SB12 SB12 SB12 -- SB12 SB15 SB15 SB15 SB15 SB15 SB15 SB15 SB15 SB15 SB15 SB15 SB15 SB15 SB15 SB15 Core Round Combiner: Accepting f-function Output 64-bit subkeys, the bytes of which are produced by a 4-of-8 code 8 8 16 16 16 16 8 24 8 8 8 8 8 8 24 EK27 -- EK27 EK45 EK45 EK45 EK45 EK27 EK61 EK21 EK21 EK21 EK39 EK29 EK29 -- EK61 EK34 EK34 EK60 EK60 EK60 EK60 EK34 EK84 EK28 EK28 EK28 EK46 EK36 EK36 EK84 S-boxes with 256 8-bit entries, forming a permutation of the values 0-255 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 SB16 -- SB16 SB16 SB16 SB16 SB16 SB16 SB16 SB16 SB16 SB16 SB16 SB16 SB16 -- SB16 Core Round f-function S-boxes with 256 16-bit entries 2 2 2 2 2 2 2 2 2 2 2 2 SR1 -- -- SR1 SR1 -- -- SR1 SR1 SR1 SR1 SR1 SR1 SR1 SR1 -- SR1 SR2 SR2 SR2 SR2 SR2 SR2 SR2 SR2 SR2 SR2 SR2 SR2 New Type Rounds: Encipherment of First Quarter 32-bit subkeys 80 80 120 120 80 120 120 120 120 -- -- -- -- -- -- -- K569 K497 K569 -- K569 K745 K745 K745 K265 K497 K648 K576 K688 K688 K824 K864 K864 K384 K616 S-boxes with 256 16-bit entries 2 2 2 2 2 2 2 2 2 -- -- -- -- -- -- -- SR3 SR3 SR3 -- SR3 SR3 SR3 SR3 SR3 SR3 SR4 SR4 SR4 SR4 SR4 SR4 SR4 SR4 SR4 New Type Rounds: Preparation of f-function Input S-boxes with 256 8-bit entries, forming a permutation of the values 0-255 1 1 1 1 1 1 1 1 1 -- -- -- -- -- -- -- SB17 SB17 SB17 -- SB17 SB17 SB17 SB17 SB17 SB17 New Type Rounds: f-function 32-bit subkeys 32 32 48 48 32 48 48 48 48 -- -- -- -- -- -- -- K649 K577 K689 -- K689 K825 K865 K865 K385 K617 K680 K608 K736 K736 K856 K912 K912 K432 K664 Subkey pools with 16 32-bit entries 128 256 192 192 128 192 192 192 384 -- -- -- -- -- -- -- SP1 SP1 SP1 -- SP1 SP1 SP1 SP1 SP1 SP1 SP128 SP256 SP192 SP192 SP128 SP192 SP192 SP128 SP128 New Type Rounds: f-function and combiner S-boxes with 256 8-bit entries, forming a permutation of the values 0-255 5 5 5 5 5 5 5 5 5 -- -- -- -- -- -- -- SB18 SB18 SB18 -- SB18 SB18 SB18 SB18 SB18 SB18 SB22 SB22 SB22 SB22 SB22 SB22 SB22 SB22 SB22 New Type Rounds: f-function S-boxes with 256 16-bit entries 4 4 4 4 4 4 4 4 4 -- -- -- -- -- -- -- SR5 SR5 SR5 -- SR5 SR5 SR5 SR5 SR5 SR5 SR8 SR8 SR8 SR8 SR8 SR8 SR8 SR8 SR8 New Type Round Combiner: Accepting f-function output (original and second alternate) 32-bit subkeys, the bytes of which are produced by a 4-of-8 code 16 32 16 16 16 16 16 16 32 -- -- -- -- -- -- -- SEK1 SEK1 SEK1 -- SEK1 SEK1 SEK1 SEK1 SEK1 SEK1 SEK16 SEK32 SEK16 SEK16 SEK16 SEK16 SEK16 SEK16 SEK32 New Type Round Combiner: Accepting f-function output (original) S-boxes with 256 8-bit entries, forming a permutation of the values 0-255 1 1 1 1 1 1 1 1 1 -- -- -- -- -- -- -- SB23 SB23 SB23 -- SB23 SB23 SB23 SB23 SB23 SB23 New Type Round Combiner: Accepting f-function output (first alternate) 16-bit subkeys, the bytes of which are produced by a 4-of-8 code 8 8 8 8 8 16 -- -- -- -- -- -- -- -- -- TEK1 -- TEK1 -- TEK1 TEK1 TEK1 TEK1 TEK8 TEK8 TEK8 TEK8 TEK8 TEK8 S-boxes with 256 8-bit entries, forming a permutation of the values 0-255 3 3 3 3 3 3 -- -- -- -- -- -- -- -- -- SB24 -- SB24 -- SB24 SB24 SB24 SB24 SB26 SB26 SB26 SB26 SB26 SB26 S-boxes with 256 16-bit entries 2 2 2 2 2 2 -- -- -- -- -- -- -- -- -- SR9 -- SR9 -- SR9 SR9 SR9 SR9 SR10 SR10 SR10 SR10 SR10 SR10 New Type Round Combiner: Accepting f-function output (second alternate) S-boxes with 256 8-bit entries, forming a permutation of the values 0-255 3 3 3 3 3 3 -- -- -- -- -- -- -- -- -- SB27 -- SB27 -- SB27 SB27 SB27 SB27 SB29 SB29 SB29 SB29 SB29 SB29 Appended Key Material For Symmetric New Type Round Swap Variants Variant: US WUS RAS RRS ESS RES RSS ROS WRS 32-bit subkeys 32 32 48 48 32 48 48 48 48 K681 K609 K737 K737 K857 K913 K913 K433 K665 K712 K640 K784 K784 K888 K960 K960 K480 K712 S-boxes with 256 16-bit entries 2 2 2 2 2 2 2 2 2 SR15 SR15 SR15 SR15 SR15 SR15 SR15 SR15 SR15 SR16 SR16 SR16 SR16 SR16 SR16 SR16 SR16 SR16
Next
Start of Section
Skip to Next Chapter
Skip to Next Section
Table of Contents
Main Page