а заміна використовується таким чином: на вхід подається блок даних певної розмірності (у цьому випадку - 4 - бітний), числове подання якого визначає номер вихідного значення. Наприклад, маємо таблицю наступного виду:
, 11,2,14,15,0,8,13,3,12,9,7,5,10,6,1.
Нехай на вхід прийшов 4 - бітний блок «+0100», т. е. значення 4. Згідно таблиці, вихідне значення дорівнюватиме 15, т. е. «1 111»
Побітовий циклічний зсув вліво на 11 бітів.
.3.5 Опис алгоритму ГОСТ 28147-89 в режимі гамування
У режимі гамування кожен блок відкритого тексту побитно складається по модулю 2 з блоком гами шифру розміром 64 бита. Гамма шифру - це спеціальна послідовність, яка виробляється за допомогою описаних у пункті 1.4.4 перетворень наступним чином:
У регістри N1 і N2 записується їх початкове заповнення - 64-бітна величина, звана «сінхропосилку»
Виконується зашифровування вмісту регістрів N1 і N2 в режимі простої заміни.
Вміст N1 складається по модулю (2-1) з константою С1=2, результат додавання записується в регістр N1.
Вміст N2 складається по модулю 2 з константою С2=2, результат додавання записується в регістр N2
Вміст регістрів N1 і N2 подається на вихід в якості 64-бітного блоку гами шифру.
Якщо необхідний наступний блок гами (т. е. необхідно продовжити зашифровування або розшифрування), виконується повернення до кроку 2.
Для розшифрування аналогічним чином виконується вироблення гами, потім знову застосовується операція XOR до бітам зашифрованого тексту і гами.
.3.6 Вхідні дані
Вхідними даними програми є відкриті і закриті файли будь-якого типу, розмір яких не перевищує 2Гб.
.3.7 Вихідні дані
Результатом роботи програми є відкритий або закритий файл.
.3.8 Безпека і таємність
Програма має підвищену ступінь секретності, т. к. в ній міститься таблиця замін. Отримання даної програми «зловмисниками» збільшує шанси на розтин файлів, зашифрованих даною програмою. Так само підвищену ступінь секретності має ключ, тому його не можна передавати разом з зашифрованими даними.
.3.9 Мобільність
Для копіювання програми з диска або flash-USB на комп'ютер необхідно:
. Розпакувати RAR-архів, розташований на диску (flash-USB), в яку-небудь папку на жорсткому диску комп'ютера.
. Запустити програму.
.4 Стадії та етапи розробки
Виконання розробки повинно включати дві стадії:
Технічне завдання
Пояснювальна записка
На стадії Технічне завдання проводиться постановка задачі, розробка вимог до програмного виробу, вивчення літератури по завданню та оформлення документа Технічне завдання .
На стадії Пояснювальна записка проводиться розробка схем алгоритмів для кожного з функціональних модулів, фізичне проектування програмного виробу. На закінчення даного етапу оформляється документ Пояснювальна записка .
1.5 Техніко-економічні показники розробки
Програмний виріб розробляється в якості курсової роботи, тому техніко-економічні показники не розраховуються.
. 6 Порядок контролю та приймання
Даний програмний продукт повинен успішно пройти наступні тести:
Тест 1. На вхід програмі подається відкритий (незашифрований) файл даних розміром не більше 2 Гб, на виході програма повинна надати закритий (зашифрований) файл.
Тест 2. На вхід програмі подається закритий (зашифрований) файл,
отриманий в результаті першого тесту, на виході програма повинна надати відкритий (незашифрований) файл, дані якого будуть еквівалентні даними відкритого файлу, використаного в першому тесті.
Тест 3. На вхід програмі подається файл розміром більше 2 Гб,
на виході програма повинна повідомити користувачеві, що обсяг даних перевищує максимально допустимий обсяг даних, для даного програмного продукту.
Тест 4. Перервати процес зашіфровиванія файлу, натисканням на кнопку «стоп», в результаті чого в директорії з вихідним (поданням на вхід) файлом повинен створитися файл відновлення процесу.
Тест 5. Відкрити файл відновлення процесу, створений в тесті 4, в результаті чого програма повинна відновити процес зашіфровиванія файлу з того місця де була перервана.
Тест 6. Повторити тести 4 і 5, для процесу розшифрування файлу.
Тест 7. Відкрити файл відновлення процесу із завідомо неправдивими директоріями до файлу, поданим на вхід або файлу на вихід або файлу ключа, на виході програма повинна повідомити користувачеві, що файл відсутній.
Тест 8. Файлу на виході вказується шлях в д...