Esempio n. 1
0
        public AesMatrix GetSimpleXOR()
        {
            var simpleXor = new AesMatrix();

            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    simpleXor.matrix[i, j] = Convert.ToByte(
                        this.key.matrix[i, j] ^ this.simpleText.matrix[i, j]
                        );
                }
            }
            return(simpleXor);
        }
Esempio n. 2
0
        private void Button3_Click(object sender, EventArgs e)
        {
            var simpleTextBytes = File.ReadAllBytes(this.textBox1.Text);

            Console.WriteLine("Lendo texto simples da pasta " + this.textBox1.SelectedText);
            var keyBytes = File.ReadAllBytes(this.textBox2.Text);

            Console.WriteLine("Lendo chave da pasta " + this.textBox1.SelectedText);

            var key = new AesMatrix(keyBytes);
            var simpleTextMatrix = new ByteMatrix(simpleTextBytes);

            Console.WriteLine("teste");
            Console.WriteLine(simpleTextMatrix.byteMatrix.Count);
            byte[] bte  = new byte[simpleTextMatrix.byteMatrix.Count * 16];
            var    loop = 1;

            foreach (var simpleText in simpleTextMatrix.byteMatrix)
            {
                Console.WriteLine("****Chave****");
                key.Print();
                Console.WriteLine("****Texto simples****");
                simpleText.Print();
                var keyScheduler = new RoundKey(key).getAesMatrixCifred();
                var simpleXor    = new SimpleXor(key, simpleText).GetSimpleXOR();
                var cifred       = new MatrixRoundKey(simpleXor).GetRounds(keyScheduler);
                Console.WriteLine("****Texto cifrado****");
                cifred.Print();
                for (var i = 0; i < 4; i++)
                {
                    for (int b = 0; b < 4; b++)
                    {
                        bte[b * loop] = cifred.matrix[b, i];
                    }
                }
                loop++;
            }
            File.Create(this.textBox3.Text);
            File.WriteAllBytes(this.textBox3.Text, bte);
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Texto cifrado salvo na pasta " + this.textBox3.Text);
            Console.ForegroundColor = ConsoleColor.White;
        }
Esempio n. 3
0
        private AesMatrix PrintKeyScheduler(int roundKey)
        {
            Console.WriteLine(String.Format("*****Round Key {0} ******", roundKey));
            var       initialKey = ((roundKey + 1) * 4) - 4;
            AesMatrix matrix     = new AesMatrix();

            for (int i = 0; i < 4; i++)

            {
                for (int j = initialKey; j < (roundKey + 1) * 4; j++)
                {
                    Console.Write(this.keyScheduler[i, j].ToString("X2") + " ");
                    if ((roundKey + 1) * 4 == 44)
                    {
                        matrix.matrix[i, j - 40] = this.keyScheduler[i, j];
                    }
                }
                Console.WriteLine();
            }
            return(matrix);
        }
Esempio n. 4
0
 public SimpleXor(AesMatrix key, AesMatrix simpleText)
 {
     this.key        = key;
     this.simpleText = simpleText;
 }
Esempio n. 5
0
 public RoundKey(AesMatrix aesMatrix)
 {
     this.aesMatrix    = aesMatrix;
     this.keyScheduler = new byte[4, 44];
 }
Esempio n. 6
0
 public MatrixRoundKey(AesMatrix crifredText)
 {
     this.crifredText = crifredText;
 }