Beispiel #1
0
        public void MovTestLsb()
        {
            AesAlgo aesAlgo = new AesAlgo();

            using (AesManaged aes = new AesManaged())
            {
                aes.KeySize = 128;
                aes.Padding = PaddingMode.PKCS7;

                var path = @"C:/Users/mamis/Desktop/sample.mov";

                FileStream file      = File.OpenRead(path);
                byte[]     byteVideo = File.ReadAllBytes(path);

                string message = "Im the GOATTTT!!";

                byte[] encryptedData = aesAlgo.EncryptStringToBytes_Aes(message, aes.Key, aes.IV).Concat(aes.Key).Concat(aes.IV).ToArray();

                var binMessage = _decoder.EncryptedByteArrayToBinary(encryptedData);

                _lsbVideo.HideMov(byteVideo, binMessage);

                byte[] cypherData = _lsbVideo.SeekMov(byteVideo);
                byte[] key        = _lsbVideo.ExtractKeyMov(byteVideo);
                byte[] iv         = _lsbVideo.ExtractIvMov(byteVideo);

                var decryptedMessage = aesAlgo.DecryptStringFromBytes_Aes(cypherData, key, iv);

                Console.WriteLine("Secret Massage Is: \n" + decryptedMessage);
                File.WriteAllBytes("C:/Users/mamis/Desktop/outputTest.mov", byteVideo);
            }
        }
Beispiel #2
0
        public void PETestLsb()
        {
            AesAlgo aesAlgo = new AesAlgo();

            using (AesManaged aes = new AesManaged())
            {
                aes.KeySize = 128;
                aes.Padding = PaddingMode.PKCS7;
                var path = @"C:\testfolder\exetest.exe";
                //FileStream file = File.OpenRead(path);
                byte[] byteAudio        = File.ReadAllBytes(path);
                string message          = "TEST lsb aes";
                byte[] encryptedMessage = aesAlgo.EncryptStringToBytes_Aes(message, aes.Key, aes.IV).Concat(aes.Key)
                                          .Concat(aes.IV).ToArray();
                var binMessage = _decoder.EncryptedByteArrayToBinary(encryptedMessage);


                _lsbPe.HidePE(byteAudio, binMessage);

                byte[] cypherData = _lsbPe.SeekPE(byteAudio);
                byte[] key        = _lsbPe.ExtractKeyPE(byteAudio);
                byte[] iv         = _lsbPe.ExtractIvPE(byteAudio);

                var decryptedMessage = aesAlgo.DecryptStringFromBytes_Aes(cypherData, key, iv);

                Console.WriteLine("Secret Massage Is: \n" + decryptedMessage);
                File.WriteAllBytes("C:/Users/Mike/Desktop/pruducta/file_example_WAV_1MG - Copy.wav", byteAudio);
            }
        }
Beispiel #3
0
        public void Mp3TestLsb()
        {
            AesAlgo aesAlgo = new AesAlgo();

            using (AesManaged aes = new AesManaged())
            {
                aes.KeySize = 128;
                aes.Padding = PaddingMode.PKCS7;
                var    path             = @"C:/Users/Mike/Desktop/pruducta/file_example_MP3_2MG - Copy.mp3";
                byte[] byteAudio        = File.ReadAllBytes(path);
                string message          = "tmkescht";
                byte[] encryptedMessage = aesAlgo.EncryptStringToBytes_Aes(message, aes.Key, aes.IV).Concat(aes.Key)
                                          .Concat(aes.IV).ToArray();
                //var binMessage = _decoder.EncryptedByteArrayToBinary(encryptedMessage);
                //byteAudio = _metaDataAudio.GenerateJunk(byteAudio);
                byteAudio = _metaDataAudio.GenerateFramesMp3(byteAudio);
                _metaDataAudio.HideMp3(byteAudio, encryptedMessage);
                byte[] cypherData = _metaDataAudio.SeekMp3(byteAudio);
                byte[] key        = _metaDataAudio.ExtractKeyMp3(byteAudio);
                byte[] iv         = _metaDataAudio.ExtractIvMp3(byteAudio);
                // byteAudio = _lsbAudio.GenerateFrames(byteAudio);
                // _lsbAudio.HideMp3(byteAudio, binMessage);
                //
                // byte[] cypherData = _lsbAudio.SeekMp3(byteAudio);
                // byte[] key = _lsbAudio.ExtractKeyMp3(byteAudio);
                // byte[] iv = _lsbAudio.ExtractIvMp3(byteAudio);

                var decryptedMessage = aesAlgo.DecryptStringFromBytes_Aes(cypherData, key, iv);

                Console.WriteLine("Secret Massage Is: \n" + decryptedMessage);
                File.WriteAllBytes("C:/Users/Mike/Desktop/pruducta/TEST.mp3", byteAudio);
            }
        }
Beispiel #4
0
        public void bmpHide()
        {
            AesAlgo aesAlgo = new AesAlgo();

            using (AesManaged aes = new AesManaged())
            {
                aes.KeySize = 128;
                aes.Padding = PaddingMode.PKCS7;

                var path = @"C:/Users/mamis/Desktop/pic.png";

                var bmp = (Bitmap)Image.FromFile(path);

                string message = "Lebron is the Goat  Lebron is the Goat  ";

                byte[] encryptedData = aesAlgo.EncryptStringToBytes_Aes(message, aes.Key, aes.IV).Concat(aes.Key).Concat(aes.IV).ToArray();

                var binMessage = _decoder.EncryptedByteArrayToBinary(encryptedData);

                _lsbPicture.HideBitmap(bmp, binMessage);

                byte[] cypherData = _lsbPicture.SeekBitmap(bmp);
                byte[] key        = _lsbPicture.ExtractKeyBitmap(bmp);
                byte[] iv         = _lsbPicture.ExtractIvBitmap(bmp);

                var decryptedMessage = aesAlgo.DecryptStringFromBytes_Aes(cypherData, key, iv);

                Console.WriteLine("Secret Massage Is: \n" + decryptedMessage);
                bmp.Save("C:/Users/mamis/Desktop/pica1.jpg", ImageFormat.Tiff);
            }
        }
Beispiel #5
0
        public string ExtractMessageFromVideo(FileDataUploadRequestModel fileData)
        {
            AesAlgo aesAlgo = new AesAlgo();

            //byte[] video = new byte[fileData.FileAsHttpPostedFileBase.ContentLength];
            //fileData.FileAsHttpPostedFileBase.InputStream.Read(video, 0, video.Length);
            byte[] video            = fileData.FileAsByteArray;
            byte[] cypherData       = null;
            byte[] key              = null;
            byte[] iv               = null;
            string decryptedMessage = null;

            switch (fileData.HidingMethod)
            {
            case HidingMethod.Lsb:
                if (fileData.FileName.EndsWith(".avi"))
                {
                    cypherData = _lsbVideo.SeekAvi(video);
                    key        = _lsbVideo.ExtractKeyAvi(video);
                    iv         = _lsbVideo.ExtractIvAvi(video);
                }
                else
                {
                    cypherData = _lsbVideo.SeekMov(video);
                    key        = _lsbVideo.ExtractKeyMov(video);
                    iv         = _lsbVideo.ExtractIvMov(video);
                }
                break;

            case HidingMethod.MetaData:
                if (fileData.FileName.EndsWith(".avi"))
                {
                    cypherData = _metaDataVideo.SeekAvi(video);
                    key        = _metaDataVideo.ExtractKeyAvi(video);
                    iv         = _metaDataVideo.ExtractIvAvi(video);
                }
                else
                {
                    cypherData = _metaDataVideo.SeekMov(video);
                    key        = _metaDataVideo.ExtractKeyMov(video);
                    iv         = _metaDataVideo.ExtractIvMov(video);
                }
                break;
            }

            switch (fileData.EncryptionMethod)
            {
            case EncryptionMethod.Aes:
                decryptedMessage = Decrypt_Aes(cypherData, key, iv);
                break;

            case EncryptionMethod.Serpent:
                decryptedMessage = Decrypt_Serpent(cypherData, key);
                break;
            }

            return(decryptedMessage);
        }
Beispiel #6
0
        public string ExtractMessageFromAudio(FileDataUploadRequestModel fileData)
        {
            AesAlgo aesAlgo = new AesAlgo();

            byte[] audio            = fileData.FileAsByteArray;
            byte[] cypherData       = null;
            byte[] key              = null;
            byte[] iv               = null;
            string decryptedMessage = null;

            switch (fileData.HidingMethod)
            {
            case HidingMethod.Lsb:
                if (fileData.FileName.EndsWith(".wav"))
                {
                    cypherData = _lsbAudio.SeekWave(audio);
                    key        = _lsbAudio.ExtractKeyWave(audio);
                    iv         = _lsbAudio.ExtractIvWave(audio);
                }
                else
                {
                    cypherData = _lsbAudio.SeekMp3(audio);
                    key        = _lsbAudio.ExtractKeyMp3(audio);
                    iv         = _lsbAudio.ExtractIvMp3(audio);
                }
                break;

            case HidingMethod.MetaData:
                if (fileData.FileName.EndsWith(".wav"))
                {
                    cypherData = _metaDataAudio.SeekWave(audio);
                    key        = _metaDataAudio.ExtractKeyWave(audio);
                    iv         = _metaDataAudio.ExtractIvWave(audio);
                }
                else
                {
                    cypherData = _metaDataAudio.SeekMp3(audio);
                    key        = _metaDataAudio.ExtractKeyMp3(audio);
                    iv         = _metaDataAudio.ExtractIvMp3(audio);
                }
                break;
            }
            switch (fileData.EncryptionMethod)
            {
            case EncryptionMethod.Aes:
                decryptedMessage = Decrypt_Aes(cypherData, key, iv);
                break;

            case EncryptionMethod.Serpent:
                //decryptedMessage = Decrypt_Des(cypherData, key, iv);
                decryptedMessage = Decrypt_Serpent(cypherData, key);
                break;
            }
            return(decryptedMessage);
        }
Beispiel #7
0
        public byte[] Encrypt_Aes(string plainMessage)
        {
            AesAlgo aesAlgo = new AesAlgo();

            using (AesManaged aes = new AesManaged())
            {
                aes.KeySize = 128;
                aes.Padding = PaddingMode.PKCS7;
                byte[] encryptedData = aesAlgo.EncryptStringToBytes_Aes(plainMessage, aes.Key, aes.IV).Concat(aes.Key)
                                       .Concat(aes.IV).ToArray();
                return(encryptedData);
            }
        }
Beispiel #8
0
        public string ExtractMessageFromExe(FileDataUploadRequestModel fileData)
        {
            AesAlgo aesAlgo = new AesAlgo();

            // var ms = new MemoryStream(fileData.File);
            byte[] Exe              = fileData.FileAsByteArray;
            byte[] cypherData       = null;
            byte[] key              = null;
            byte[] iv               = null;
            string decryptedMessage = null;

            switch (fileData.HidingMethod)
            {
            case HidingMethod.Lsb:
                if (fileData.FileName.EndsWith(".exe"))
                {
                    cypherData = _lsbExe.SeekPE(Exe);
                    key        = _lsbExe.ExtractKeyPE(Exe);
                    iv         = _lsbExe.ExtractIvPE(Exe);
                }
                break;

            case HidingMethod.MetaData:
                if (fileData.FileName.EndsWith(".exe"))
                {
                    cypherData = _metaDataExe.SeekPE(Exe);
                    key        = _metaDataExe.ExtractKeyPE(Exe);
                    iv         = _metaDataExe.ExtractIvPE(Exe);
                }
                else if (fileData.FileName.EndsWith(".bat"))
                {
                    cypherData = _metaDataExe.SeekBatch(Exe);
                    key        = _metaDataExe.ExtractKeyBatch(Exe);
                    iv         = _metaDataExe.ExtractIvBatch(Exe);
                }
                break;
            }

            switch (fileData.EncryptionMethod)
            {
            case EncryptionMethod.Aes:
                decryptedMessage = Decrypt_Aes(cypherData, key, iv);
                break;

            case EncryptionMethod.Serpent:
                decryptedMessage = Decrypt_Serpent(cypherData, key);
                break;
            }
            return(decryptedMessage);
        }
Beispiel #9
0
        public void bmpSeek()
        {
            AesAlgo aesAlgo = new AesAlgo();
            var     path1   = "C:/Users/mamis/Desktop/pica1.jpg";
            var     bmp     = (Bitmap)Image.FromFile(path1);

            byte[] cypherData = _lsbPicture.SeekBitmap(bmp);
            byte[] key        = _lsbPicture.ExtractKeyBitmap(bmp);
            byte[] iv         = _lsbPicture.ExtractIvBitmap(bmp);

            var decryptedMessage = aesAlgo.DecryptStringFromBytes_Aes(cypherData, key, iv);

            Console.WriteLine("Secret Massage Is: \n" + decryptedMessage);
        }
Beispiel #10
0
        public void Given_ValidKeyAndBinaryData_When_EncryptAndDecrypt_Then_DecryptionIsSameResult(
            [Values(192, 256)] int keySize)
        {
            // Arrange
            const string strToTestWith = "string should be encrypted and come out the same after descryption";
            var          byteConverter = new UnicodeEncoding();
            var          strAsBytes    = byteConverter.GetBytes(strToTestWith);

            var algo = new AesAlgo();

            // Act
            var key = new AesKeyGenerator().GetNewKey(new AesKeyGenerationOptions()
            {
                NewKeyName = "my new aes key",
                KeySize    = keySize
            });
            var result = algo.Decrypt(algo.Encrypt(strAsBytes, key), key);

            // Assert
            byteConverter.GetString(result).Should().Be(strToTestWith);
        }
Beispiel #11
0
        public string ExtractMessageFromPicture(FileDataUploadRequestModel fileData)
        {
            AesAlgo aesAlgo = new AesAlgo();
            var     ms      = new MemoryStream(fileData.FileAsByteArray);
            var     bmp     = new Bitmap(ms);

            byte[] cypherData       = null;
            byte[] key              = null;
            byte[] iv               = null;
            string decryptedMessage = null;

            switch (fileData.HidingMethod)
            {
            case HidingMethod.Lsb:
                cypherData = _lsbPicture.SeekBitmap(bmp);
                key        = _lsbPicture.ExtractKeyBitmap(bmp);
                iv         = _lsbPicture.ExtractIvBitmap(bmp);
                break;

            case HidingMethod.MetaData:
                cypherData = _metaDataPicture.SeekJpeg(fileData.FileAsByteArray);
                key        = _metaDataPicture.ExtractKeyJpeg(fileData.FileAsByteArray);
                iv         = _metaDataPicture.ExtractIvJpeg(fileData.FileAsByteArray);
                break;
            }

            switch (fileData.EncryptionMethod)
            {
            case EncryptionMethod.Aes:
                decryptedMessage = Decrypt_Aes(cypherData, key, iv);
                break;

            case EncryptionMethod.Serpent:
                decryptedMessage = Decrypt_Serpent(cypherData, key);
                break;
            }
            return(decryptedMessage);
        }
Beispiel #12
0
        public void JpegHide()
        {
            AesAlgo aesAlgo = new AesAlgo();

            using (AesManaged aes = new AesManaged())
            {
                aes.KeySize = 128;
                aes.Padding = PaddingMode.PKCS7;

                var path  = @"C:/Users/mamis/Desktop/tif.tiff";
                var path2 = @"C:/Users/mamis/Desktop/picOutput.tiff";
                var jpeg  = File.ReadAllBytes(path);

                string message = "Lebron james is the greatest player of all times" +
                                 "Lebron james is the greatest player of all times" +
                                 "Lebron james is the greatest player of all times" +
                                 "Lebron james is the greatest player of all times" +
                                 "Lebron james is the greatest player of all times" +
                                 "Lebron james is the greatest player of all times ";



                byte[] encryptedData = aesAlgo.EncryptStringToBytes_Aes(message, aes.Key, aes.IV);
                encryptedData = encryptedData
                                .Concat(aes.Key)
                                .Concat(aes.IV).ToArray();

                jpeg = _metaDataPicture.HideJpeg(jpeg, encryptedData);
                byte[] cypherData = _metaDataPicture.SeekJpeg(jpeg);
                byte[] key        = _metaDataPicture.ExtractKeyJpeg(jpeg);
                byte[] iv         = _metaDataPicture.ExtractIvJpeg(jpeg);

                var decryptedMessage = aesAlgo.DecryptStringFromBytes_Aes(cypherData, key, iv);

                Console.WriteLine("Secret Massage Is: \n" + decryptedMessage);
                File.WriteAllBytes(path2, jpeg);
            }
        }
Beispiel #13
0
        public void AviTestMetaData()
        {
            AesAlgo aesAlgo = new AesAlgo();

            using (AesManaged aes = new AesManaged())
            {
                aes.KeySize = 128;
                aes.Padding = PaddingMode.PKCS7;

                var path = @"C:/Users/mamis/Desktop/sample.avi";

                FileStream file      = File.OpenRead(path);
                byte[]     byteVideo = File.ReadAllBytes(path);
                string     message   = "  the seven sees?? Lebron is the goat, It is well known all the seven sees." +
                                       "the seven sees?? Lebron is the goat, It is well known all the seven sees" +
                                       "the seven sees?? Lebron is the goat, It is well known all the seven sees" +
                                       "the seven sees?? Lebron is the goat, It is well known all the seven sees" +
                                       "the seven sees?? Lebron is the goat, It is well known all the seven sees??";

                byte[] encryptedData = aesAlgo.EncryptStringToBytes_Aes(message, aes.Key, aes.IV).Concat(aes.Key).Concat(aes.IV)
                                       .ToArray();
                //byte[] b = encryptedData.Concat(aes.Key).ToArray();
                _metaDataVideo.hideAvi(byteVideo, encryptedData);



                byte[] cypherData = _metaDataVideo.SeekAvi(byteVideo);
                byte[] key        = _metaDataVideo.ExtractKeyAvi(byteVideo);
                byte[] iv         = _metaDataVideo.ExtractIvAvi(byteVideo);

                var decryptedMessage = aesAlgo.DecryptStringFromBytes_Aes(cypherData, aes.Key, aes.IV);

                Console.WriteLine("Secret Massage Is: \n" + decryptedMessage);
                File.WriteAllBytes("C:/Users/mamis/Desktop/vidOutput.avi", byteVideo);
            }
        }
Beispiel #14
0
        public string Decrypt_Aes(byte [] cypherData, byte[] key, byte[] iv)
        {
            AesAlgo aesAlgo = new AesAlgo();

            return(aesAlgo.DecryptStringFromBytes_Aes(cypherData, key, iv));
        }