//-----------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()); }
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()); }