Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки
Національний університет „Львівська політехніка”
Кафедра EОМ
Звіт
з лабораторної роботи № 5
з дисципліни: “ Захист інформації в комп’ютерних системах ”
Симетричні блокові шифри на основі мережі Фейстеля
2018
Тема: Симетричні блокові шифри на основі мережі Фейстеля
Мета: Ознайомитися з методом побудови алгоритмів симетричного блокового шифрування на прикладі мережі Фейстеля.
Завдання:
Розробити програму, що реалізує симетричний блоковий алгоритм на основі мережі Фейстеля.
Підготувати та захистити звіт.
Хід роботи:
Код реалізації алгоритму
package sample;
import javax.crypto.*;
import java.io.*;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
class AlterDES {
private Cipher ecipher;
private Cipher dcipher;
public AlterDES(SecretKey key) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException {
ecipher = Cipher.getInstance("DES");
dcipher = Cipher.getInstance("DES");
ecipher.init(Cipher.ENCRYPT_MODE, key);
dcipher.init(Cipher.DECRYPT_MODE, key);
}
public String encrypt(String str) throws UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException {
byte[] utf8 = str.getBytes("UTF8");
byte[] enc = ecipher.doFinal(utf8);
return new sun.misc.BASE64Encoder().encode(enc);
}
public String decrypt(String str) throws IOException, IllegalBlockSizeException, BadPaddingException {
byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(str);
byte[] utf8 = dcipher.doFinal(dec);
return new String(utf8, "UTF8");
}
} /
Рис. 1. Процес кодування тексту /
Рис. 2. Текст після декодування
Висновок
На даній лабораторній роботі я ознайомився з з методом побудови алгоритмів симетричного блокового шифрування на прикладі мережі Фейстеля, також я розробив програмну реалізацію DES-алгоритму шифрування.