コード例 #1
0
        private byte[] CalculateSBox(byte[] word)
        {
            byte[] newWord = new byte[word.Length];

            for (int i = 0; i < word.Length; i++)
            {
                var b         = word[i];
                var hexString = b.ToString("X2");

                var firstPartHex  = hexString[0];
                var secondPartHex = hexString[1];

                hexString  = SBox.GetNewHexString(firstPartHex, secondPartHex);
                newWord[i] = Convert.ToByte(hexString, 16);
            }

            return(newWord);
        }
コード例 #2
0
        private byte[,] CalculateSBox(byte[,] matrix)
        {
            byte[,] newWord = new byte[matrix.GetLength(0), matrix.GetLength(1)];

            for (int i = 0; i < newWord.GetLength(0); i++)
            {
                for (int j = 0; j < newWord.GetLength(1); j++)
                {
                    var currentByte = matrix[j, i];
                    var hexString   = currentByte.ToString("X2");

                    var firstPartHex  = hexString[0];
                    var secondPartHex = hexString[1];

                    hexString     = SBox.GetNewHexString(firstPartHex, secondPartHex);
                    newWord[j, i] = Convert.ToByte(hexString, 16);
                }
            }

            return(newWord);
        }