Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Мова програмування Сі

Реферат Мова програмування Сі





поразрядное (побітова - результат не залежить від сусідніх бітів). Якщо тільки один з відповідних бітів дорівнює 1, то результат 1. А якщо обидва 0 або обидва 1, то результат 0.



Завдання зводиться до забезпечення генерації ключа відповідно до вимог вибраного алгоритму. Вітчизняний ГОСТ 28147/89 - їм офіційно дозволено шифрування на території РФ.

Ключ, що має розмір 256 довічних осередків (бітів), представляється як масив з восьми 32-розрядних елементів. Елементи ключа в порядку, визначеному базовим циклом, використовуються основним кроком.

Ключ потрібно вводити вручну.

Алгоритм ГОСТ 28147-89 має чотири режими роботи.

- Режим простої заміни приймає на вхід дані, розмір яких кратний 64-му бітам. Результатом шифрування є вхідний текст, перетворений блоками по 64 біта у випадку зашифрования циклом «32-З», а в разі розшифрування - циклом «32-Р».

- Режим гамування приймає на вхід дані будь-якого розміру, а також додатковий 64-розрядний параметр - сінхропосилку. У ході роботи сінхропосилка перетвориться в циклі «32-З», результат ділиться на дві частини. Перша частина складається по модулю 232 з постійним значенням 101010116. Якщо друга частина дорівнює 232-1, то її значення не змінюється, інакше вона складається по модулю 232-1 з постійним значенням 101010416. Отримане об'єднанням обох перетворених частин значення, зване гамою шифру, надходить в цикл «32-З», його результат порязрядно складається по модулю 2 з 64-розрядним блоком вхідних даних. Якщо останній менше 64-х розрядів, то зайві розряди отриманого значення відкидаються. Отримане значення подається на вихід. Якщо ще є вхідні дані, то дія повторюється: складений з 32-розрядних частин блок перетвориться по частинам і так далі.

- Режим гамування зі зворотним зв'язком також бере на вхід дані будь-якого розміру і сінхропосилку. Блок вхідних даних поразрядно складається по модулю 2 з результатом перетворення в циклі «32-З» сінхропосилкі. Отримане значення подається на вихід. Значення сінхропосилкі замінюється у разі зашифрования вихідним блоком, а у разі розшифрування - вхідним, тобто зашифрованим. Якщо останній блок входять даних менше 64 розрядів, то зайві розряди гами (виходу циклу «32-З») відкидаються. Якщо ще є вхідні дані, то дія повторюється: з результату зашифрования заміненого значення утворюється гамма шифру і т.д.

- Режим вироблення імітовставки приймає на вхід дані, розмір яких становить не менше двох повних 64-розрядних блоків, а повертає 64-розрядний блок даних, званий імітовставки. Тимчасове 64-розрядне значення встановлюється в 0, далі, поки є вхідні дані, воно поразрядно складається по модулю 2 з результатом виконання циклу «16-З», на вхід якого подається блок вхідних даних. Після закінчення вхідних даних тимчасове значення повертається як результат.


. Виконана робота (Оригінальний текст програм з коментарями)


Завдання 1

Програма на Сі.

З коментарями


# include lt; stdio.h gt;//Стандартна бібліотека введення-виведення

# include lt; math.h gt;// Стандартна бібліотека математичних функцій

# include lt; stdlib.h gt;// Стандартна Біб-ка для функції rnd ()

# include lt; string.h gt;// Стандартна Біб-ка для функції strcmp () stepen (float x, int y);// зведення підстави х в ступінь у

long int fact (int n);//обчислення факторіала

int main () {

x0, i, n;// початкове значення значення х0, допоміжна змінна//для циклу, кількість доданків ряду Тейлора, Цілочисельні змінні float t, s, x, s1;// сигма для інтервалу від x0-t lj x0 + t, сума ряду, з//інтервалу х, число е в ступені х0, змінні подвійний точностіmaxVal, minVal;// діапазон для визначення значення х * str1, * str2;// Для сравненіяr, p;// дробова і ціла частина чіслаdecpnt, sign, ndig;// для перетворення числа в строкуchar * filename= d: number.txt raquo ;;//файл, в який запишемо//отриманий результат суми рядаchar * mode= w raquo ;;//режим запису у файл * file;// файлова змінна ( Введіть початкове значення x0, сигма t, кількість доданків в ряду n: );// Пояснення для наступного рядка (% d% e% d , amp; x0, amp; t, amp; n);// ввели

//знайдемо х належить інтервалу від х0-t до х0 + t

maxVal=x0 + t;=x0-t;

x=rand ()% ((int) maxVal- (int) minVal + 1) + (int) minVal;//обчислення х генератором випадкових чисел

printf ( maxVal =% f minVal =% fx =% f n raquo ;, maxVal, minVal, x);//

printf ( x0 =% dt =% fn =% d n raquo ;, x...


Назад | сторінка 2 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Алгоритм створення бази даних &Значення коефіцієнта і показників ступеня у ...
  • Реферат на тему: Поняття алгоритму. Обчислення значення функції
  • Реферат на тему: Комп'ютерні дані: типи даних, обробка та управління
  • Реферат на тему: Створення програми для обчислення значення функції
  • Реферат на тему: Розробка програмної реалізації криптографічного алгоритму ГОСТ 28147-89 у р ...