загрузка...

20964

Шифрування та дешифрування даних за допомогою алгоритмів гамування

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

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

Індивідуальні завдання : конгруэнтные генераторы Линейными конгруэнтными генераторами являются генераторы следующей формы: в которых это nый член последовательности а предыдущий член последовательности. Период такого генератора не больше чем m. Если a b и m подобраны правильно то генератор будет генератором с максимальным периодом и его период будет равен m. Например для линейного конгруэнтного генератора b должно быть взаимно простым с m.

Украинкский

2013-08-01

30.38 KB

13 чел.

Родін С КІТ-39

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

“Шифрування та дешифрування даних за допомогою

алгоритмів гамування”

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

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

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

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

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

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

Індивідуальні завдання : конгруэнтные генераторы

Линейными конгруэнтными генераторами являются генераторы следующей формы:

в которых - это n-ый член последовательности, а - предыдущий член последовательности. Переменные a, b и m – постоянные: а – множитель, b – инкремент и m – модуль. Ключом или затравкой служит значение .

Период такого генератора не больше, чем m. Если a, b и m подобраны правильно, то генератор будет генератором с максимальным периодом, и его период будет равен m. (Например, для линейного конгруэнтного генератора b должно быть взаимно простым с m).

В [Таблица 1] из [13] приведены хорошие константы линейных конгруэнтных генераторов, которые обеспечивают максимальный период.

Если инкремент b равен нулю, то есть генератор имеет вид

,

и мы получим самую простую последовательность, которую можно предложить для генератора с равномерным распределением. При соответствующем выборе констант a = 7= 16807 и m = 2311 = 2147483647 мы получим генератор с максимальным периодом повторения. Эти константы были предложены учеными Парком и Миллером, поэтому генератор  вида

называется генератором Парка-Миллера.

Преимуществом линейных конгруэнтных генераторов является их быстрота за счет малого количества операций на байт и простота реализации. К сожалению, такие генераторы в криптографии используются достаточно редко, поскольку являются предсказуемыми.

Иногда используют квадратичные и кубические конгруэнтные генераторы, которые обладают большей стойкостью к взлому.

Квадратичный конгруэнтный генератор  имеет вид:

Кубический конгруэнтный генератор  задается как:

Для увеличения размера периода повторения конгруэнтных генераторов часто используют их объединение [13]. При этом криптографическая безопасность не уменьшается, но такие генераторы обладают лучшими характеристиками в некоторых статистических тестах.

Пример такого объединения для 32-х битовой архитектуры может быть реализован так:

 // Long должно быть 32-х битовым целым

 static long s1 = 1;

 static long s2 = 1;

 // MODMULT рассчитывает s*b mod m при  условии что m = a*b+c и 0<=c<m

 #define MODMULT(a,b,c,m,s) q = s/a; s = b*(s-a*q)-c*q; if (s<0) s+=m;

double combinedLCG (void)

 {

   long q;

   long z;

   MODMULT (53668, 40014, 12211, 2147483563L, s1)

   MODMULT (52774, 40692, 3791, 2147483399L, s2)

   z = s1 - s2;

   if (z<1)

     z += 2147483562;

   return z*4.656613e-10;

 }

void InitLCG (long InitS1, long InitS2)

 {

   s1 = InitS1;

   s2 = InitS2;

 }

Висновок: розглянув алгоритми Шифрування та дешифрування даних за допомогою алгоритмів гамування


Данной работой Вы можете всегда поделиться с другими людьми, они вам буду только благодарны!!!
Кнопки "поделиться работой":

 

Подобные работы

6047. Класичні методи симетричного шифрування 37 KB
  Класичні методи симетричного шифрування. Мета: Ознайомлення з класичними методами симетричного шифрування, Отримати практичні навички створення програамного забезпечення по криптографічним перетвореннням матриці. Порядок виконання роботи Ознай...
13151. ВИВЧЕННЯ ПРИЛАДІВ КОНТРОЛЮ ПАРАМЕТРІВ РЕЖИМУ БУРІННЯ ТА РОЗШИФРУВАННЯ ІНДИКАТОРНИХ ДІАГРАМ 413 KB
  ЛАБОРАТОРНА РОБОТА №8 ВИВЧЕННЯ ПРИЛАДІВ КОНТРОЛЮ ПАРАМЕТРІВ РЕЖИМУ БУРІННЯ ТА РОЗШИФРУВАННЯ ІНДИКАТОРНИХ ДІАГРАМ. Поточний контроль параметрів процесу буріння здійснюється за допомогою індикатора ваги манометра моментоміра тахометра а також приладів для ви
20705. Стандарт шифрування даних DES 70.76 KB
  Data Encryption Standard це симетричний алгоритм шифрування даних стандарт шифрування прийнятий урядом США із 1976 до кінця 1990х з часом набув міжнародного застосування. DES дав поштовх сучасним уявленням про блочні алгоритми шифрування та криптоаналіз. Вхідні дані MYNAMEISARTEM Шифрування з використанням випадкового ключа Результат шифрування даних ТЭ1oЋ HЎ т ПqАgy Результати розшифрування L .
20942. Шифрування та дешифрування даних за допомогою блокових алгоритмів 321.24 KB
  dword ^= bf_Fb ^ PArray[n] CBlowFish::CBlowFish { PArray = new DWORD [18] ; SBoxes = new DWORD [4][256] ;} CBlowFish:: CBlowFish { delete PArray ; delete [] SBoxes ;} the low level private encryption function void CBlowFish::Blowfish_encipher DWORD xl DWORD xr{ union aword Xl Xr ; Xl.dword ;} the low level private decryption function void CBlowFish::Blowfish_decipher DWORD xl DWORD xr{ union aword Xl ; union aword Xr ; Xl.dword;} constructs the enctryption sieve void CBlowFish::Initialize BYTE key[]...
20943. Шифрування та дешифрування даних за допомогою потокових алгоритмів 51.15 KB
  100] of byte; var b : barray; NMijk : byte; z : longint; Procedure WriteBB:barray; begin IncZ; Write Z:3' : '; for i:=1 to M do writealphabet[b[i]]; writeln; end; Procedure SwapBvar B:barray;ik:byte; var x : byte; begin x:=B[i]; B[i]:=B[k]; B[k]:=x; end; Procedure PermuteAllB:barray;N:byte; var ikj : byte; begin WriteBB; while true do begin i:=N; while i 0 and B[i] =B[i1] do i:=i1; if i=0 then exit; for j:=i1 to N do if B[j] B[i] then K:=j; SwapBBik; for j:=i1 to i N1i div 2 do SwapBBjNi1j;...
20961. Шифрування та дешифрування даних за допомогою алгоритмів перестановки (збивання) 141.09 KB
  У якості інформації використовувати копію файлу з розробленою програмою програма дешифрування інформації повернення початкового вигляду файла; Індивідуальні завдання: Метод €œспутаної шини€ Текст програми: DEFINT IN: DEFSTR S RANDOMIZE 231 CLS: LOCATE 1 1 Lot = 5 s = FOR i=1 TO 64:s=sCHR6525RND:NEXT PRINT s; text : sav = s s = FOR i=1 TO 192: s=sCHR255RND: NEXT 'шифрование FOR i = 0 TO Lot sc=MIDss1I3232 l=2^i:sl= : r= FOR j = 1 TO 32 kg=ASCMIDsc j 1 kl=ASCMIDs j 1...
20962. Шифрування та дешифрування даних за допомогою алгоритмів підстановки (заміна) 69.72 KB
  Програма дешифрування інформації повернення початкового вигляду файла; а також оцінити правильність процедури €œшифрування – дешифрування€ відсутність зміни результату відносно початкового файлу. Підготовка даних полягає в: Введення вихідного тексту; Створення тимчасового текстового файлу файл 1 та занесення в нього вихідного тексту; Створення тимчасового текстового файлу файл 2 для подальшого занесення в нього результатів роботи програми; Введенні або автоматичному виборі ключа; Для режиму дешифрування якщо ключ...
20963. Шифрування та дешифрування даних з використанням режиму шифрування 98.95 KB
  Індивідуальні завдання: алгоритм 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.
20965. Використання алгоритмів шифрування з відкритими ключами 45.99 KB
  Постановка задачі Необхідно розробити і налагодити дві програми: Програма шифрування інформації з використанням визначених алгоритмів. Програма дешифрування інформації повернення початкового вигляду файла; а також оцінити правильність процедури €œшифрування – дешифрування€ відсутність зміни результату відносно початкового файлу.09 funkcja f dla kazdej rundy czynniki pierwsze klucz zakryty p1 4 = 0 q1 4 = 0 p = 19; q = 23; n = pq; M = random n; print Message = M; print Cryptogram = C; C = M^2 n; m1= C ^...