Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bilobrov_virob_prack.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
173.06 Кб
Скачать

4.2.3. Код програми

import java.math.BigInteger;

import java.util.Random;

import java.util.Scanner;

public class RSA {

private BigInteger p;

private BigInteger q;

private BigInteger N;

private BigInteger phi;

private BigInteger e;

private BigInteger d;

private int bitLength = 1024;

private Random random;

public RSA() {

init();

}

private void init() {

random = new Random();

p = BigInteger.probablePrime(bitLength, random);

q = BigInteger.probablePrime(bitLength, random);

N = p.multiply(q);

phi = p.subtract(BigInteger.ONE).multiply(q.subtract(BigInteger.ONE));

e = BigInteger.probablePrime(bitLength/2, random);

while (phi.gcd(e).compareTo(BigInteger.ONE) > 0 && e.compareTo(phi)<0) {

e.add(BigInteger.ONE);

}

d = e.modInverse(phi);

}

public RSA(BigInteger publicKey, BigInteger privateKey, BigInteger N) {

this.e = publicKey;

this.d = privateKey;

this.N = N;

}

public byte[] encrypt(byte[] message) {

return new BigInteger(message).modPow(e, N).toByteArray();

}

public byte[] decrypt(byte[] message) {

return new BigInteger(message).modPow(d, N).toByteArray();

}

public static String bytesToString(byte[] buffer) {

StringBuilder sb = new StringBuilder("");

for(byte b: buffer) {

sb.append(Byte.toString(b));

}

return sb.toString();

}

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("Input word for encryption via RSA");

String word = sc.next();

RSA rsa = new RSA();

byte[] encryptedWord = rsa.encrypt(word.getBytes());

System.out.println("\n encrypted in bytes\n" + bytesToString(encryptedWord) + "\n");

byte[] decryptedWord = rsa.decrypt(encryptedWord);

System.out.println("decrypted in bytes\n" + bytesToString(decryptedWord) + "\n");

System.out.println("decrypted word:\n" + new String(decryptedWord));

}

}

4.2.4. Результати роботи програми:

5. Висновки

Під час науково-дослідної практики була програма , яка шифрувала важливі дані співробітників ТОВ "Торгова група"Промтехсервіс".

Передача інформації в середині компанії та за її межі була захищеною.

За допомогою асинхронного алгоритму шифрування, будь хто міг передати інформацію в зашифрованому вигляді, а з іншої сторони прийняти і розшифрувати. Шифратор досить вагомо спрощував життя при відправленні дуже важливих даних.

Список використаної літератури.

1. Герасименко В.А. Защита информации в автоматизированных

системах обработки данных кн. 1.-М.: Энергоатомиздат. -1994.-400с.

2. Вербицкий О.В.Вступление к криптологии.- Львов.: Издательство

науково-техничной литературы.-1998.-300с.

3. Диффи У. Первые десять лет криптографии с открытым ключом

//ТИИЭР, т. 76(1988)б Т5б с. 54-74.

4. Герасименко В.А., Скворцов А.А., Харитонов И.Е. Новые

направления применения криптографических методов защиты информации.- М.:

Радио и связь.-1989.-360с.

5. Миллер В. Использования эллиптических кривых в криптографии

.: -1986.-417-426с.

6. Галатенко В.А. Информационная безопасность. –М.: Финансы и

статистика, 1997. –158 с.

7. Грегори С. Смит. Программы шифрования данных // Мир ПК –1997.

-№3. -С.58 - 68.

8. Ростовцев А. Г., Михайлова Н. В. Методы криптоанализа

классических шифров. –М.: Наука, 1995. –208 с.

9. Терехов А. Н., Тискин А. В. // Программирование РАН. –1994.

-N 5 -С. 17—22.

10. Криптология – наука о тайнописи // Компьютерное обозрение. –1999. -

№3. –С. 10 – 17.

11. Баричев С. В. Криптография без секретов. –М.: Наука, 1998. –120 с.

12

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]