• No results found

On Rijndael ByteSub Transformation

N/A
N/A
Protected

Academic year: 2020

Share "On Rijndael ByteSub Transformation"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

ISSN Online: 2152-7393 ISSN Print: 2152-7385

DOI: 10.4236/am.2019.103010 Mar. 28, 2019 113 Applied Mathematics

On Rijndael ByteSub Transformation

W. Eltayeb Ahmed

1,2

1Mathematics and Statistics Department, Faculty of Science, Imam Mohammad Ibn Saud Islamic University, Riyadh, KSA 2Department of Basics and Engineering Sciences, Faculty of Engineering, University of Khartoum, Khartoum, Sudan

Abstract

The first step in converting a plaintext to ciphertext by the famous Advanced Encryption Standard (AES), which is called Rijndael ByteSub Transforma-tion, involves some operations: computing a multiplicative inverse, multiply-ing this multiplicative inverse by a specific matrix, and addmultiply-ing the result to a specific vector. The purpose of this research is to simplify these operations. This paper gives elegant techniques and presents the matrices multiplication as simple XOR operations, and the result is a simple, straightforward way finding the transformation.

Keywords

Rijndael Cipher, Advanced Encryption Standard, Multiplicative Inverse, XOR Operation

1. Introduction

Rijndael ByteSub transformation (or AES substitution byte) [1] transforms an input byte into another byte by two operations:

1) Finding a multiplicative inverse of an input byte

(

a a a a a a a a7 6 5 4 3 2 1 0

)

in the

finite field GF (28).

2) Applying the following affine transform:

( ) ( ) ( ) ( ) ( ) ( )

( ) ( )

4 mod 8 5 mod 8 6 mod 8

7 mod 8 , 0 7

i i i i i i

i

c b b b b

b d i

+ + +

+

= + + +

+ + ≤ ≤ (1)

where

(

b b b b b b b b7 6 5 4 3 2 1 0

)

is resulting from the first operation,

(

d d d d d d d d7 6 5 4 3 2 1 0

)

=01100011.

In general, the multiplicative inverse is found by using the extended Euclidean algorithm [2], instead of using it, we use an elegant technique which finds the multiplicative inverse in clear steps.

How to cite this paper: Ahmed, W.E. (2019) On Rijndael ByteSub Transforma-tion. Applied Mathematics, 10, 113-118.

https://doi.org/10.4236/am.2019.103010

Received: March 2, 2019 Accepted: March 25, 2019 Published: March 28, 2019

Copyright © 2019 by author(s) and Scientific Research Publishing Inc. This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

(2)

DOI: 10.4236/am.2019.103010 114 Applied Mathematics

The transform of the second operation can be expressed in the matrix form as:

0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7

1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 0

c c c c c c c c b b b b b b b b                                  =  +                                                   (2)

To solve this system, we use an unusual and more suitable technique which shows this multiplication of matrix (8 × 8) and matrix (8 × 1) as simple XOR operations, and we can find it directly from

(

b b b b b b b b7 6 5 4 3 2 1 0

)

.

2. The Methodology

For an input byte

(

a a a a a a a a7 6 5 4 3 2 1 0

)

, we find its multiplicative inverse

(

b b b b b b b b7 6 5 4 3 2 1 0

)

, and find

(

e e e e e e e e7 6 5 4 3 2 1 0

)

such that:

0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7

1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1

b b e e e e e b b b b b b e e e                           =                                    (3)

Then, we find the output

(

c c c c c c c c7 6 5 4 3 2 1 0

)

as:

0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 1 1 0 0 0 1 1 0 c e c e c e c e c e c e c e c e                                    = +                                         

(4)

First, we find a multiplicative inverse of

(

)

7 6 5 4 3 2 8 4 3

7 6 5 4 3 2 1 0mod 1

a x +a x +a x +a x +a x a x+ +a x a+ x +x +x + +x .

Let 7 6 5 4 3 2

1 7 6 5 4 3 2 1 0

M =a x +a x +a x +a x +a x +a x +a x a+ ,

8 4 3 1

P x= +x +x + +x , and represent the multiplicative inverse by T.

We seek for q1 and r1 satisfying:

1 1 1 1

M q r Q+ = (5)

where Q1= +P 1 [3], (look at Table 1).

(3)

DOI: 10.4236/am.2019.103010 115 Applied Mathematics

If r1 ≠0, we let M2 = +r1 1 and seek for qi and ri satisfying:

, 2 7

i i i i

M q r Q+ = ≤ ≤i

(6)

where Q Mi = i−1, and Mi+1=ri (look at Table 2).

Whenever ri =1, then

1 2

i i i i

T T q T= = − +T− (7)

where T0 =1, and T q1= 1.

Then, to find

(

e e e e e e e e7 6 5 4 3 2 1 0

)

, we write the system (3), as follows:

[ ]

e X Y

[ ]

b

Y X

 

=  

 

(8)

i i j

e Xb Yb

=

+

(9)

j i j

e Yb Xb

=

+

(10) where 0≤ ≤i 3, 4≤ ≤j 7, and

1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1

X

 

 

 

=

 

 

  (11)

1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1

Y

 

 

 

=

 

 

 

(12)

0 4

1 5

2 6

3 7

,

i j

b b

b b

b b

b b

b b

   

   

   

= =

   

   

   

[image:3.595.208.542.67.468.2]

(13)

Table 1. First step to find the multiplicative inverse.

i M q r Q

1 M1 q1 r1 Q P1= +1

Table 2. All steps to find the multiplicative inverse.

i M q r Q

1 M1 q1 r1 Q P1= +1

2 M2= +r1 1 q2 r2 Q2=M1

3 M3=r2 q3 r3 Q M3= 2

4 M4=r3 q4 r4 Q4=M3

5 M5=r4 q5 r5 Q5=M4

6 M6=r5 q6 r6 Q6=M5

[image:3.595.208.542.567.733.2]
(4)

DOI: 10.4236/am.2019.103010 116 Applied Mathematics

Then we compute

0 0

1 0 1

2 0 1 2

3 0 1 2 3

1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1

i

b b

b b b

Xb

b b b b

b b b b b

            +       = =       + +       + + +       (14)

4 7 6 5 4

5 7 6 5

6 7 6

7 7

1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1

j

b b b b b

b b b b

Yb

b b b

b b + + +             + +       = =       +             (15)

0 3 2 1 0

1 3 2 1

2 3 2

3 3

1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1

i

b b b b b

b b b b

Yb

b b b

b b + + +             + +       = =       +            

(16) 4 4

5 4 5

6 4 5 6

7 4 5 6 7

1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1

j

b b

b b b

Xb

b b b b

b b b b b

            +       = =       + +       + + +      

(17)

0 7 6 5 4 0 7 6 5 4

0 1 7 6 5 0 1 7 6 5

0 1 2 7 6 0 1 2 7 6

0 1 2 3 7 0 1 2 3 7

i j

b b b b b b b b b b

b b b b b b b b b b

Xb Yb

b b b b b b b b b b

b b b b b b b b b b

+ + + + + + +        +   + +   + + + +        + = + =  + +   +   + + + +   + + +     + + + +        (18)

3 2 1 0 4 3 2 1 0 4

3 2 1 4 5 3 2 1 4 5

3 2 4 5 6 3 2 4 5 6

3 4 5 6 7 3 4 5 6 7

i j

b b b b b b b b b b

b b b b b b b b b b

Yb Xb

b b b b b b b b b b

b b b b b b b b b b

+ + + + + + +        + +   +   + + + +        + = + =  +   + +   + + + +     + + +   + + + +        (19)

The result is

0 0 7 6 5 4

1 0 1 7 6 5

2 0 1 2 7 6

3 0 1 2 3 7

4 3 2 1 0 4

5 3 2 1 4 5

6 3 2 4 5 6

7 3 4 5 6 7

e b b b b b

e b b b b b

e b b b b b

e b b b b b

e b b b b b

e b b b b b

e b b b b b

e b b b b b

+ + + +        + + + +         + + + +     + + + +    =     + + + +      + + + +        + + + +      + + + +         (20)

and this satisfies:

( 4 mod 8) ( ) ( 5 mod 8) ( ) ( 6 mod 8) ( ) ( 7 mod 8) ( ), 0 7

i i i i i i

e = +b b + +b + +b+ +b+ ≤ ≤i

(21) At the last, to find

(

c c c c c c c c7 6 5 4 3 2 1 0

)

, we add

(

e e e e e e e e7 6 5 4 3 2 1 0

)

to 01100011.

3. Results

(5)

DOI: 10.4236/am.2019.103010 117 Applied Mathematics

XOR operations. When multiplying X by bi or

b

j, the result will be:

(first element, first + second, first + second + third, first + second + third+ fourth) of bi or

b

j, and when multiplying Y by bi or

b

j, starting from the

fourth element, the result will be:

(First + second + third + fourth, second + third + fourth, third + fourth, fourth) of bi or

b

j.

So, we can find

(

e e e e e e e e7 6 5 4 3 2 1 0

)

from

(

b b b b b b b b7 6 5 4 3 2 1 0

)

directly.

4. Example

To encrypt: Input:

32 43 F6 A8 88 5A 30 8D 31 31 98 A2 E0 37 07 34 Key:

2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C

using AES [1].

Let us do the first step (Rijndael ByteSub transformation).

32 88 31 0 2 28 09 19 .. .. ..

43 5 31 37 7 7 .. .. .. ..

6 30 98 07 15 2 15 4 .. .. .. ..

8 8 2 34 16 6 88 3 .. .. .. ..

E B AB

A E AE F CF

F D F

A D A A C

     

     

  +  =

     

     

     

We just transform the element {19},

4 3 19 00011001= =x +x +1

Computing the multiplicative inverse, (look at Table 3). Since r2 =1,

(

)

2

2 1 0

4 3 2

5 4 3 2

1 1 1 00111111

T T q T T

x x x x x

x x x x x

=

= +

= + + + + +

= + + + + +

=

Now, we take

(

00111111

)

, to do the second operation.

1 1 0 1

1 0 1 1

1 1 0 1

1 0 0 0

0 1

1 1

1 0

1 1

0 0

0 0

1 0

0 1

       

       

     +  

       

       

   

   

       

       

     +  

       

       

       

   

(6)
[image:6.595.208.539.70.329.2]

DOI: 10.4236/am.2019.103010 118 Applied Mathematics

Table 3. Steps finish when r2=1.

i M q r Q

1 x4+x3+1 x4+x3+x2+ +x 1 x3+x2+1 x8+x4+x3+x

2 x3+x2 x 1 x4+x3+1

1 1 0

1 1 0

1 0 1

0 0 0

1 0 1

1 1 0

0 1 1

1 0 1

                                   + =                                          

So,

19→11010100=D4

5. Conclusion

The modern technique proposed in this work equivalently finds the Rijndael byte substitute transformation without a need to compute multiplicative inverses and matrices multiplication by traditional methods.

Conflicts of Interest

The author declares no conflicts of interest regarding the publication of this paper.

References

[1] Advanced Encryption Standard (AES), FIPS Publication 197, National Institute of Standards and Technology (NIST), November 26, 2001.

[2] Menezes, A., van Oorschot, P. and Vanstone, S. (1997) Handbook of Applied Cryp-tography. CRC Press, New York.

[3] Ahmed, W. (2019) Some Techniques to Compute Multiplicative Inverses for Ad-vanced Encryption Standard. Journal of Advances in Mathematics, 16, 8208-8212.

Figure

Table 1. First step to find the multiplicative inverse.
Table 3. Steps finish when

References

Related documents

Analysis of variance based on log-transformed data shows that both soil texture and major soil taxonomical group have a highly significant influence on the concentrations of the

How to cite this manuscript: Aliakbar Dehno Khalaji, Maryam Ghorbani, Seyyed Javad Peyghoun, Norollah Feizi, Alireza Akbari, Wolfgang Hornfeck, Michal Dusek,

In the present paper we intent to show that the optimal amount of resources devoted to market research is proportional to the market size (i.e., firms operating in larger market

For the quantitative method, a quantitative online questionnaire was designed for exploring the general perspectives on adopting mobile apps for learning from undergraduates from

Unit Record Device Keyins Queue Control Keyins Job Display Keyins Communications Keyins Diagnostic Keyins Console Ghost Keyins.. Informational

Push the seatback tilt cancel switch to the AUTO position to reactivate the power seatback tilt switch.. If the seatback tilt cancel switch is in the CANCEL position, the

Under this license, works must always be attributed to the copyright holder (original author), cannot be used for any commercial purposes, and may not be altered. Any other use would

We propose a hierarchical image classification which classifies images which based on their contents and then refine each category into subcategories based on their metadata to