Система блочного шифрування S-DES
Автор: Warfat • Май 16, 2023 • Лабораторная работа • 5,232 Слов (21 Страниц) • 159 Просмотры
Лабораторная работа №4
Тема: Система блочного шифрування S-DES
Мета: створити просту криптографічну систему на основі спрощеного блочного алгоритму Simple DES (S-DES) та дослідити її роботу.
Опис програми
Обчислення підключей S-DES.
В S-DES використовується 10-бітовий ключ, який повинен бути як у відправника, так і у одержувача повідомлення. З цього ключа генеруються два 8-бітових підключа.
Приклад. Нехай маємо на вході наступний ключ К = 560 (10):
[pic 1]
- Перестановка Р10.
[pic 2]([pic 3])
- Циклічний зсув вліво на одну позицію. Виконується окремо для перших 5-ти бітів і окремо для других 5-ти бітів
[pic 4]
- Перестановка Р8.
[pic 5]([pic 6])
Отримуємо перший 8-бітний підключ [pic 7].
- Циклічне зрушення вліво на дві позиції.
[pic 8]
- Перестановка Р8.
[pic 9] ([pic 10])
Отримуємо другий 8-бітний підключ [pic 11].
Тоді якщо отримано два підключа, в кожному з яких виділимо праву і ліву частини
[pic 12]
[pic 13]
Алгоритм шифрування.
Операція 1: Початкова перестановка [pic 14].
Операції 2: Функція FK.являє собою комбінацію перестановки і підстановки:
FK(L,R) = (L[pic 15] F(R,Kі),R
де L і R - ліві і праві 4 біти 8-бітової послідовності, яка подається на вхід FK;
K – підключ.
Відображення F.
На вході відображення маємо 4-бітове значення
Спочатку виконується [pic 16]- операція розширення / перестановки: [pic 17] застосовується до правої частини;
б) [pic 18];
в) застосування S-матриць:
[pic 19], [pic 20].
S-матриці працюють таким чином: 1-ий і 4-ий біти вхідної послідовності розглядаються як двухбітовий числа, що визначають рядок S-матриці, 2-ий і 3-ий біти - як числа, що визначають стовпець S-матриці. Елементи, що знаходяться на перетині рядка і стовпця, задають двухбітовий вихідні значення :
Отримуємо 4-бітову послідовність
г) Перестановка [pic 21].
е) XOR(L, P4).
Операція 3: SW - перестановка, змінює місцями перші і останні 4 біта
Операція 4:Функція FK. До отриманої послідовності бітів застосовуємо операцію 2, з тією лише різницею, що використовується підключ[pic 22].
Операція 5: Завершальна перестановка. Є зворотною по відношенню до початкової.
[pic 23]
На виході отримаємо 8-бітовий блок, який потім перетворимо в символ який і буде зашифрованим.
Для розшифрування використовується той же алгоритм, що і для шифрування, тільки в операції 2 використовується з'єднання[pic 24], а в операції 4 - з'єднання[pic 25].
[pic 26]
Лістинг програми:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;
namespace SDES
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int count = 0;
private void button1_Click(object sender, EventArgs e)
{
char []key=new char[10];
...