20963

Шифрування та дешифрування даних з використанням режиму шифрування

Практическая работа

Информатика, кибернетика и программирование

Індивідуальні завдання: алгоритм Counter Mode CTR Текст програми AutoSeededRandomPool prng; SecByteBlock keyAES::DEFAULT_KEYLENGTH; prng.size ; byte ctr[ AES::BLOCKSIZE ]; prng.GenerateBlock ctr sizeofctr ; string plain = CTR Mode Test ; string cipher encoded recovered; try { cout plain text: plain endl; CTR_Mode AES ::Encryption e; e.size ctr ; The StreamTransformationFilter adds padding as required.

Украинкский

2013-08-01

98.95 KB

3 чел.

Родін С КІТ-39

Практична робота №2-3

“Шифрування та дешифрування даних з використанням режиму шифрування ”

за курсом “Захист інформації у комп’ютерних системах та мережах”

Ціль роботи : cтворення програм для шифрування та дешифрування інформації за допомогою режиму шифрування.

Постановка задачі

Необхідно розробити і налагодити дві програми:

Програма шифрування інформації з використанням визначеного режиму.

Алгоритм шифрування взяти з лабораторної роботи 2-1 «Блокове шифрування»

У якості інформації використовувати копію файлу з розробленою програмою.

Програма дешифрування інформації (повернення початкового вигляду файлу); а також оцінити правильність процедури “шифрування – дешифрування” (відсутність зміни результату відносно початкового файлу).

 Індивідуальні завдання: алгоритм Counter Mode (CTR)

Текст програми

AutoSeededRandomPool prng;

SecByteBlock key(AES::DEFAULT_KEYLENGTH);

prng.GenerateBlock( key, key.size() );

byte ctr[ AES::BLOCKSIZE ];

prng.GenerateBlock( ctr, sizeof(ctr) );

string plain = "CTR Mode Test";

string cipher, encoded, recovered;

/*********************************\

\*********************************/

try

{

   cout << "plain text: " << plain << endl;

   CTR_Mode< AES >::Encryption e;

   e.SetKeyWithIV( key, key.size(), ctr );

   // The StreamTransformationFilter adds padding

   //  as required. ECB and CBC Mode must be padded

   //  to the block size of the cipher. CTR does not.

   StringSource( plain, true,

       new StreamTransformationFilter( e,

           new StringSink( cipher )

       ) // StreamTransformationFilter      

   ); // StringSource

}

catch( CryptoPP::Exception& e )

{

   cerr << e.what() << endl;

   exit(1);

}

/*********************************\

\*********************************/

// Pretty print cipher text

StringSource( cipher, true,

   new HexEncoder(

       new StringSink( encoded )

   ) // HexEncoder

); // StringSource

cout << "cipher text: " << encoded << endl;

/*********************************\

\*********************************/

try

{

   CTR_Mode< AES >::Decryption d;

   d.SetKeyWithIV( key, key.size(), ctr );

   // The StreamTransformationFilter removes

   //  padding as required.

   StringSource( cipher, true,

       new StreamTransformationFilter( d,

           new StringSink( recovered )

       ) // StreamTransformationFilter

   ); // StringSource

   cout << "recovered text: " << recovered << endl;

}

catch( CryptoPP::Exception& e )

{

   cerr << e.what() << endl;

   exit(1);

}

Висновок: cтворив програму для шифрування та дешифрування інформації за допомогою режиму шифрування.


 

А также другие работы, которые могут Вас заинтересовать

35236. Формули Н’ютона через кінцеві різниці 40 KB
  Формули Нютона через кінцеві різниці Мета. Навчитися обчислити значення функції при даному значенні аргумента використовуючи формули Нютона через кінцеві різниці.
35237. Настройка компютерної системи засобами BIOS SETUP 36.5 KB
  Включіть ПК, після появи службової інформації на екрані дисплея натисніть клавішу DELETE для запуску програми BIOS SETUP.
35238. Побудова багаточлена Лагранжа. Складання алгоритму 51 KB
  Навчитися будувати багаточлен Лагранжа, скласти алгоритм.
35243. Інтерполяційні формули через розділені різниці 56.5 KB
  Мета.Навчитися знаходити значення функції при даному значенні аргумента, використовуючи інтерполяційні формули Н’ютона через розділені різниці