Esempio n. 1
0
File: RC5.cs Progetto: BinGOI/Lab3
        //-----------Encrypte----------

        private byte[] _Encrypte_ECB_OneBlock(byte[] block)
        {
            if (block.Length != BlockLength)
            {
                throw new Exception("Block isn't correct");
            }

            var worker = new BlockWorker(new Buffer(block), _keys._Key);//тут генеруєм масив підключів S

            return(worker.Encrypte().ToBytes());
        }
Esempio n. 2
0
File: RC5.cs Progetto: BinGOI/Lab3
        public byte[] Encrypte_RC5_CBC_Pad()
        {
            var generator = new Lab3.Random(BlockLength / 4);    //ліст з типом int на розмір

            Buffer prevBlock = new Buffer(generator.GetBytes()); //перше значення це значення IV
            //Buffer prevBlock = new Buffer();//перше значення це значення IV

            var encryptedFile = new List <byte>(BlockLength * _keys.Count + 1);  //ліст який буде містити байти утвореного файлу

            encryptedFile.AddRange(_Encrypte_ECB_OneBlock(prevBlock.ToBytes())); //додаємо до вихідного файлу зашифрований блок

            foreach (var block in _keys)
            {
                var currentBlock = new Buffer(block);

                var worker = new BlockWorker(prevBlock ^ currentBlock, _keys._Key);//тут генеруєм масив підключів S

                prevBlock = worker.Encrypte();

                encryptedFile.AddRange(prevBlock.ToBytes());//додаємо до вихідного файлу зашифрований блок
            }

            return(encryptedFile.ToArray());
        }