Перестановочний шифр

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Захист інформації в комп’ютерних системах

Частина тексту файла (без зображень, графіків і формул):

‘МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”  Лабораторна робота №2 з дисципліни «Захист інформації в комп’ютерних системах» на тему: «Перестановочний шифр» Львів – 2012 Мета роботи: ознайомитись з основами класичної техніки шифрування – шифрами моноалфавітної заміни та типовим прикладом шифрів даного виду - шифром Цезаря. Теоретичні відомості Розглянутий вище метод ґрунтувався на заміщенні символів відкритого тексту різними символами шифрованого тексту. Принципово інший клас перетворень будується на використанні перестановок букв відкритого тексту. Шифри, створені за допомогою перестановок, називають перестановочными шифрами. Найпростіший з таких шифрів використає перетворення "драбинки", що полягає в тім, що відкритий текст записується уздовж похилих рядків певної довжини ("сходів"), а потім зчитується построчно по горизонталі. Наприклад, щоб шифрувати повідомлення "meet me after the toga party" по методу драбинки зі сходами довжиною 2, запишемо це повідомлення у вигляді  Шифроване повідомлення буде мати такий вигляд.  Такий "шифр" особливої складності для криптоаналізу не представляє. Більше складна схема припускає запис тексту повідомлення в горизонтальні рядки однакової довжини й наступне зчитування тексту стовпець за стовпцем, але не один по одному, а відповідно до деякої перестановки стовпців. Порядок зчитування стовпців при цьому стає ключем алгоритму. Розглянемо наступний приклад. Ключ: Відкритий текст: Шифрований текст: TTNAAPTMTSUOAODWCOIXKNLYPETZ Простий перестановочный шрифт дуже легко розпізнати, тому що букви в ньому зустрічаються з тією же частотою, що й у відкритому тексті. Наприклад, для тільки що розглянутого способу шифрування з перестановкою стовпців аналіз шифру виконати досить просто - необхідно записати шифрований текст у вигляді матриці й перебрати можливі варіанти перестановок для стовпців. Можна використати також таблиці значень частоти биграмм і триграмм. Перестановочный шифр можна зробити істотно більше захищеним, виконавши шифрування з використанням перестановок кілька разів. Виявляється, що в цьому випадку застосовану для шифрування перестановку відтворити вже не так просто. Наприклад, якщо попереднє повідомлення шифрувати ще раз за допомогою того ж самого алгоритму, то результат буде наступним. Ключ: Відкритий текст: Шифрований текст: Щоб наочніше представити те, що ми одержимо в підсумку повторного застосування перестановки, зіставимо кожну букву вихідного відкритого тексту з номером відповідної їй позиції. Наше повідомлення складається з 28 букв, і вихідною послідовністю буде послідовність  Після першої перестановки одержимо послідовність, що усе ще зберігає деяку регулярність структури.  Після другої перестановки виходить наступна послідовність.  Регулярність цієї послідовності вже зовсім не проглядається, тому її криптоанализ буде вимагати значно більших зусиль. Завдання: Створити програму, що реалізує довільний перестановочний шифр. Підготувати і захистити звіт, в якому обов’язково навести алгоритм роботи даного перестановочного шифру. Виконання роботи Рис. 1. Вікно програми. Для шифрування потрібно ввести повідомлення, ввести ключ, ввести кількість стовпців матриці перестановок, ввести кількість циклів перестановок і натиснути кнопку Шифрувати (рис. 2).  Рис. 2. Розшифрування повідомлення.  Текст програми package ua.programming.labs; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Lab2 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.lab2); Button startButton = (Button) findViewById(R.id.btnCrypt); startButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Encode(); } }); } public void Encode() { try { EditText etCol = (EditText)findViewById(R.id.etCol); int Col = Integer.parseInt(etCol.getText().toString()); EditText etOpenText = (EditText)findViewById(R.id.etOpenText); int Size = etOpenText.getText().toString().length(); int Row = (Size%Col == 0)?Size/Col:Size/Col+1; char[][] OpenArray = new char [Row][Col]; char[][] CryptArray = new char [Row][Col]; char Space = ' '; EditText etKey = (EditText)findViewById(R.id.etKey); int KeySize = etKey.getText().toString().length(); if(KeySize!=Col) { Toast.makeText(this, "Помилка! Кількість стовпців і довжина ключа повинні бути рівні!", Toast.LENGTH_SHORT).show(); return; } int[] arrKey = new int[KeySize]; char[] Key = etKey.getText().toString().toCharArray(); for (int i = 0; i < Key.length; i++) { arrKey[i] = Integer.parseInt(((Character)Key[i]).toString()); } EditText etRepeat = (EditText)findViewById(R.id.etRepeat); int Repeat = Integer.parseInt(etRepeat.getText().toString()); String cryptString = etOpenText.getText().toString(); for (int k = 0; k < Repeat; k++) { for (int i = 0; i < Row; i++) { for (int j = 0; j < Col; j++) { if(i*Col+j<Size) { OpenArray[i][j] = cryptString.charAt(i*Col+j); } else { OpenArray[i][j] = Space; } } } for (int i = 0; i < Row; i++) { for (int j = 0; j < Col; j++) { CryptArray[i][arrKey[j]-1] = OpenArray[i][j]; } } cryptString = ""; for (int j = 0; j < Col; j++) { for (int i = 0; i < Row; i++) { cryptString += ((Character)CryptArray[i][j]).toString(); } } } EditText etCryptText = (EditText)findViewById(R.id.etCryptText); etCryptText.setText(cryptString); } catch (Exception e) { Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); } } } Висновок: на цій лабораторній роботі я ознайомився з методом шифрування текстових даних – перестановочним шифром.
Антиботан аватар за замовчуванням

07.12.2014 14:12-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!