Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра БІТ
З В І Т
до лабораторної роботи №4
з курсу: «КРИПТОГРАФІЧНІ СИСТЕМИ ТА ПРОТОКОЛИ»
на тему: «ВИВЧЕННЯ ТА ДОСЛІДЖЕННЯ АЛГОРИТМІВ ШИФРУВАННЯ РЮКЗАКА»
Мета роботи – навчитися практично використовувати алгоритми шифрування рюкзака і розробляти програмне забезпечення для реалізації цих алгоритмів.
Завдання
1) Ввести в комп'ютер програми згідно із завданням.
2) Відлагодити програми. При необхідності скоригувати блок-схеми алгоритмів та програми у відповідності з виявленими логічними та синтаксичними помилками.
3) Остаточні версії блок-схем, програм та отримані результати оформити у звіті з лабораторної роботи.
4) Здати звіт з лабораторної роботи.
Блок-схеми алгоритмів
class Program
void Main( )
class Knapsack ()
void Decipher ()
void Encipher ()
ні
так
Остаточна версія програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Lab_4_Kre
{
class Program
{
static void Main(string[] args)
{
Knapsack K = new Knapsack();
K.Encipher();
Console.ReadLine();
K.Decipher();
Console.ReadLine();
}
}
class Knapsack
{
public int i, h = 0, sum = 0, c = 11, k;
public bool flag = true;
int n = 23, m = 49;
int n_inv = 2, bufr;
public void Encipher()
{
string ptext = " Embrace life, always wear your seat belt";
int[] Key = new int[] { 1, 3, 7, 10, 13, 16, 19, 21, 26, 30, 34, 38 };
Console.WriteLine("------------------------------Knapsack cipher----------------------------\nENCODE\nEnter your plaintext : " + ptext);
ptext.ToArray();
Console.Write("\nEnter your public key : ");
for (int i = 0; i < Key.Length; i++)
{
Console.Write(Key[i] + " ");
}
for (int i = 0; i < Key.Length; i++)
{
Key[i] *= n;
while (Key[i] - m > 0)
{
Key[i] -= m;
}
}
Console.ReadLine();
Console.Write("\n\nYour private key : ");
for (int i = 0; i < Key.Length; i++)
{
Console.Write(Key[i] + " ");
}
string[] Bin = new string[ptext.Length];
int[] Cipher = new int[ptext.Length];
for (i = 0; i < Bin.Length; i++)
{
Bin[i] = Convert.ToString(Convert.ToChar(ptext[i]) - 97, 2);
}
while (h < Bin.Length)
{
c = 11;
for (int i = Bin[h].ToArray().Length - 1; i > -1; i--)
{
Cipher[h] += Convert.ToInt32(Convert.ToString(Bin[h].ToArray()[i])) * Key[c];
if (c > 1) { c--; };
}
h++;
}
Console.ReadLine();
Console.Write("\nYour ciphertext : ");
for (int y = 0; y < Cipher.Length; y++)
{
Console.Write(Cipher[y] + " ");
}
}
public void Decipher()
{
while (n_inv != 1)
{
n_inv = n * n_inv;
while (bufr - m > 0)
{
bufr -= m;
}
n_inv++;
}
Console.WriteLine("\n" + n_inv);
}
}
}
Результат роботи програми
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!