Example #1
0
 private void MixColumns()
 {
     byte[,] buffer = new byte[4, 4];
     for (int i = 0; i < 4; i++)
     {
         for (int num2 = 0; num2 < 4; num2++)
         {
             buffer[i, num2] = this.State[i, num2];
         }
     }
     for (int num2 = 0; num2 < 4; num2++)
     {
         this.State[0, num2] = (CryptoEngineAES.gfmultby02(buffer[0, num2]) ^ CryptoEngineAES.gfmultby03(buffer[1, num2]) ^ CryptoEngineAES.gfmultby01(buffer[2, num2]) ^ CryptoEngineAES.gfmultby01(buffer[3, num2]));
         this.State[1, num2] = (CryptoEngineAES.gfmultby01(buffer[0, num2]) ^ CryptoEngineAES.gfmultby02(buffer[1, num2]) ^ CryptoEngineAES.gfmultby03(buffer[2, num2]) ^ CryptoEngineAES.gfmultby01(buffer[3, num2]));
         this.State[2, num2] = (CryptoEngineAES.gfmultby01(buffer[0, num2]) ^ CryptoEngineAES.gfmultby01(buffer[1, num2]) ^ CryptoEngineAES.gfmultby02(buffer[2, num2]) ^ CryptoEngineAES.gfmultby03(buffer[3, num2]));
         this.State[3, num2] = (CryptoEngineAES.gfmultby03(buffer[0, num2]) ^ CryptoEngineAES.gfmultby01(buffer[1, num2]) ^ CryptoEngineAES.gfmultby01(buffer[2, num2]) ^ CryptoEngineAES.gfmultby02(buffer[3, num2]));
     }
 }
Example #2
0
 private static byte gfmultby0e(byte b)
 {
     return(CryptoEngineAES.gfmultby02(CryptoEngineAES.gfmultby02(CryptoEngineAES.gfmultby02(b))) ^ CryptoEngineAES.gfmultby02(CryptoEngineAES.gfmultby02(b)) ^ CryptoEngineAES.gfmultby02(b));
 }
Example #3
0
 private static byte gfmultby03(byte b)
 {
     return(CryptoEngineAES.gfmultby02(b) ^ b);
 }
 private static byte gfmultby09(byte b)
 {
     return((byte)(CryptoEngineAES.gfmultby02(CryptoEngineAES.gfmultby02(CryptoEngineAES.gfmultby02(b))) ^ b));
 }