51330

Шифрование текста по ключу аддитивными методами (гаммированием)

Лабораторная работа

Информатика, кибернетика и программирование

Цель работы: Научиться составлять программы шифрования текста, основываясь на алгоритме RSA. Вывод: научился составлять программы шифрования текста, основываясь на алгоритме RSA.

Русский

2014-02-09

86.14 KB

10 чел.

Цель работы: Научиться составлять программы шифрования текста, основываясь на алгоритме RSA.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

1

Лабораторная работа №6

Разраб.

Карецкий

Пров.

Смулаковский

Н. Контр.

Утв.

Шифрование текста по ключу аддитивными методами (гаммированием).

Лит.

Листов

3

КОГУ 59П-3

 

Ход работы:  

program RSA;

{$N+}

uses crt;

const min=100; max=200;

var p,q,d,Y:longint;

   n,m,e,cmp:comp;

   s,s2:string;

   i,j:integer;

   si,s3:array[1..255] of Longint;

procedure npoctbIe(var W:longint);

var simp:boolean;i:longint;

begin

repeat

W:=random(max-min)+min;

if W mod 2=0 then simp:=false

else  begin

simp:=true; i:=3;

while (i<=trunc(sqrt(W))) do begin

if trunc(W) mod i=0 then

simp:=false

else i:=i+2;

if not simp then break;

end; end;

until simp; end;

function B3aumHo(t:comp):longint;

var k:integer;i,Y2:longint;

   R,mx,mn:comp;b:boolean;

begin  k:=0;i:=0;

randomize;Y2:=Y;

repeat

R:=random(10000)+3000;

mn:=R; mx:=t;

if trunc(mn) mod 2<>0 then k:=2

else k:=1;

i:=1+k; b:=true;

while i<=trunc(mn) do begin

if (trunc(mn) mod i=0) and(trunc(mx) mod i=0) then

begin b:=false; break; end; i:=i+k; end;

until b;

B3aumHo:=trunc(R);

end;

function viE:comp;

var ee:comp;u:integer;

begin       u:=0; ee:=1;

while trunc(ee*d) mod trunc(M)<>1 do begin

ee:=ee+1; end; viE:=ee;

end;

function Vozstep(x,p2,n:longint):longint;

var y,x2:comp;

begin  Y:=1; x2:=x;

while p2<>0 do begin

if p2 mod 2<>0 then begin

y:=trunc(y)*x2; y:=trunc(y) mod n;

end;

x2:=x2*x2; x2:=trunc(x2) mod n;

p2:=p2 div 2;

end; vozstep:=trunc(y);

end;

begin   clrscr;

randomize;

Writeln('Шифрование RSA');

Write('Выбираются два простых числа  ');

npoctbIe(P);npoctbIe(Q);

Writeln('P=',p,'     Q=',q);

n:=p*q; m:=(p-1)*(q-1);

Writeln('Вычисляются числа N=P*Q  и  M=(P-1)*(Q-1)');

Writeln('N=',trunc(n),' M=',trunc(m));

Writeln('Выбирается число D, взаимно простое с M');

D:=B3aumHo(M); Writeln('D=',d);

Writeln('Рассчитывается Е');

E:=viE;Writeln('E=',trunc(E));

Writeln('Открытыe ключu D=',D,' и N=',trunc(N),',');

Writeln('3акрытый ключ Е=', trunc(e));

Writeln('Введите сообщение:');

readln(s);

Изм.

Лист

№ докум.

Подпись

Дата

Лист

2

Лабораторная работа №6

Writeln('Шифр:');

for i:=1 to length(s) do begin

si[i]:=0;

si[i]:=vozstep(ord(s[i]),D,trunc(n));

Write(si[i]);

end;writeln; Writeln('Расшифровка:');

for i:=1 to length(s) do

Write(chr(vozstep(si[i],trunc(E),trunc(n))));

readln;

end.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

3

Лабораторная работа №6

 

Вывод: научился составлять программы шифрования текста, основываясь на алгоритме RSA.


 

А также другие работы, которые могут Вас заинтересовать

11534. Изучение функциональных возможностей статических регистров с различными цепями ввода и вывода информации 117 KB
  Отчет о лабораторной работе по курсу Схемотехника СТАТИЧЕСКИЕ РЕГИСТРЫ Цель работы: изучение функциональных возможностей статических регистров с различными цепями ввода и вывода информации и схем формирования осведомительных сигналов. Задание: синтезир
11535. Изучение функциональных возможностей сдвигающего регистра 59.5 KB
  Отчет о лабораторной работе по курсу Схемотехника СДВИГАЮЩИЕ РЕГИСТРЫ Цель работы: изучение функциональных возможностей сдвигающего регистра. Задание: синтезировать и построить 4разрядный сдвигающий регистр со следующими характеристиками: Напра
11536. Синтез структуры счетчика и исследование функций счетчика с заданными параметрами 70 KB
  Отчет о лабораторной работе по курсу Схемотехника ЦИФРОВЫЕ СЧЁТЧИКИ Цель работы: синтез структуры счетчика и исследование функций счетчика с заданными параметрами. Задание: синтезировать и построить цифровой счётчик со следующими характеристиками: ...
11537. Программирование разветвляющихся алгоритмов 111 KB
  Тема 2. Программирование разветвляющихся алгоритмов Цель лабораторной работы: научиться пользоваться простейшими компонентами организации переключений TСheckBox TRadioGroup. Написать и отладить программу разветвляющегося алгоритма. 2.1. Операторы if и case языка Паскаль Для...
11538. Программирование циклических алгоритмов. Операторы организации циклов repeat, whyle, for языка Pascal 68.73 KB
  Программирование циклических алгоритмов Цель лабораторной работы: изучить простейшие средства отладки программ в среде DELPHI. Составить и отладить программу циклического алгоритма. Операторы организации циклов repeat whyle for языка Pascal Под циклом понимается...
11539. Устройства СВЧ и антенны 879.5 KB
  Устройства СВЧ и антенны Методические указания к лабораторным работам по дисциплине Устройства СВЧ и антенны для студентов факультета Радиотехника электроника и физика направления 552500 и 654200 – Радиотехника всех форм обучения Лабораторная работа №1 ...
11540. Разработка оконных приложений, использующих автономные модули 91.98 KB
  Лабораторная работа №8 Разработка оконных приложений использующих автономные модули Условие Задача 3.4. Составьте подпрограмму исходными данными которой являются числовые массивы C и или D из n элементов. Основной её результат – также массив получающий некотор
11541. Анализ требований (UML) 60.25 KB
  Лабораторная № 1. Анализ требований UML Анализ требований – процесс изучения потребностей и целей пользователей классификация и преобразование их к требованиям к системе аппаратуре и программному обеспечению разрешение конфликтов между требованиями определение г
11542. Концептуальная модель ПО (UML) 29.21 KB
  Лабораторная № 2. Концептуальная модель ПО UML Построение модели предметной области начинается с выявления абстракций существующих в реальном мире то есть тех основных концептуальных объектов которые встречаются в системе. Концептуальная модель – это представлени...