51305

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

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

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

Ход работы Ознакомиться с теоретической частью данной работы. Составить алгоритм программы шифрования по принципу взбивания. Составить программу шифрования по соответствующему заданию.

Русский

2014-02-09

418 KB

3 чел.

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

Ход работы

  1.  Ознакомиться с теоретической частью данной работы.
  2.  Составить алгоритм программы шифрования по принципу взбивания.
  3.  Составить программу шифрования по соответствующему заданию.
  4.  Составить алгоритм программы дешифрования по принципу взбивания.
  5.  Составить программу дешифрования по соответствующему заданию.
  6.  Составить отчет по проделанной работе.
  7.  Защитить работу.

Скриншот программы

Листинг программы

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Buttons,Math;

type

 TForm1 = class(TForm)

   Memo1: TMemo;

   Label2: TLabel;

   Memo3: TMemo;

   Label4: TLabel;

   BitBtn2: TBitBtn;

   BitBtn1: TBitBtn;

   function cript(x:string):string;

   function Uncript(x:string):string;

   procedure BitBtn1Click(Sender: TObject);

   procedure BitBtn2Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

     //замена по блокам по правилу

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

 i,j:integer;

implementation

{$R *.dfm}

//Шифр Des  

function TForm1.cript(x: string): string;

 const

xorblok:array[0..1] of char=('0','1');

boolblok:array[0..1] of boolean=(false,true);

 var

stroka,resul:string;

//===========================================================================

//Функция возвращает код символа в двоичном формате

//===========================================================================

function Bin(x1: Integer): string;

const t:array[0..1] of char = ('0','1');

var res:string;

d:0..1;

begin

res:='';

while (x1<>0) do

begin

d:=x1 mod 2 ;

res:=t[d]+res;

x1:=x1 div 2 ;

end;

while length(res)<>8 do

res:='0'+res;

Bin:=res;

end;

//===========================================================================

//Функция возврата символа по двоичному коду

//===========================================================================

Function unbin(y1:string):string;

var resul,i1:integer;

mess:string;

begin

resul:=0;

i:=1;

i1:=1;

while i<length(y1)+1 do

begin

if y1[i]='1' then

resul:=resul+floor(power(2,8-i1));

if i1=8 then

begin

mess:=mess+chr(resul);

resul:=0;

i1:=0;

end;

i:=i+1;

i1:=i1+1;

end;

unbin:=mess;

end;

//===========================================================================

//Функция Шифр-замена(Цезарь)

//===========================================================================

Function cezarcript(messag:string):string;

Var

i1:integer;

begin

i1:=1;

while i1<>length(messag)+1 do

begin

if ord(messag[i1])-3<0 then

messag[i1]:=chr(ord(messag[i1])-3+255)

else

messag[i1]:=chr(ord(messag[i1])-3);

i1:=i1+1;

end;

cezarcript:=messag;

end;

//Конец шифра Цезаря

//===========================================================================

//Шифр перестановки(Обратное написание)

//===========================================================================

function reverscript(messag:string):string;

var i1:integer;

mess:string;

begin

i1:=1;

while i1<length(messag)+1 do

begin

mess:=messag[i1]+mess;

inc(i1);

end;

reverscript:=mess;

end;

//===========================================================================

//Процедура шифрование

//===========================================================================

begin

//===========================================================================

// производит взбитие символов

//===========================================================================

 //добавление до 8 символов

 while (length(x) mod 8)<>0 do

begin

 x:=x+' ';

end;

 //перевод сообщения в 2 систему вызывая процедуру

stroka:='';

for i:=1 to length(x) do

stroka:=stroka+bin(Ord(x[i]));

x:=stroka;

stroka:='';

//запись в строку вторую половину текста

i:=0;

i:=(length(x) div 2)+1;

while i<>length(x)+1 do

begin

stroka:=stroka+x[i];

 i:=i+1;

end;

//запись в строку первую xor вторую

i:=1;

j:=length(x) div 2+1;

while i<>(length(x) div 2)+1 do

begin

 if  boolblok[strtoint(x[i])] xor  boolblok[strtoint(x[j])] then

 stroka:=stroka+'1' else

 stroka:=stroka+'0';

 i:=i+1;

 j:=j+1;

end;

stroka:=unbin(stroka);

//Конёц взбитию

//===========================================================================

//Шифр цезаря + Шифр перестановки(Обратное написание)

//===========================================================================

stroka:=CezarCript(stroka);

stroka:=Reverscript(stroka);

//===========================================================================

cript:=stroka;

//Конец шифрованию

//===========================================================================

end;

//расшифровка шифра DES  

function TForm1.Uncript(x:string): string;

 const

xorblok:array[0..1] of char=('0','1');

boolblok:array[0..1] of boolean=(false,true);

 var

Messagecount:integer;

stroka,strokaresul:string;

//===========================================================================

//Функция Расшифровки-замена(Цезарь)

//===========================================================================

Function cezaruncript(messag:string):string;

Var

i1:integer;

stet:string;

begin

i1:=1;

while i1<>length(messag)+1 do

begin

if (ord(messag[i1])+3)<=255 then

begin

stet:=stet+chr(ord(messag[i1])+3);

end

else

begin

stet:=stet+chr(ord(messag[i1])+3-255);

end;

inc(i1);

end;

cezaruncript:=stet;

end;

//Конец расщифровки Цезаря

//===========================================================================

//Расшифровка перестановки(Обратное написание)

//===========================================================================

function reversuncript(messag:string):string;

var i1:integer;

mess:string;

begin

i1:=1;

while i1<length(messag)+1 do

begin

mess:=messag[i1]+mess;

inc(i1);

end;

reversuncript:=mess;

end;

//Конец Шифр перестановки(Обратное написание)

//===========================================================================

//===========================================================================

//Функция возвращает код символа в двоичном формате

//===========================================================================

function Bin(x1: Integer): string;

const t:array[0..1] of char = ('0','1');

var res:string;

d:0..1;

begin

res:='';

while (x1<>0) do

begin

d:=x1 mod 2 ;

res:=t[d]+res;

x1:=x1 div 2 ;

end;

while length(res)<>8 do

res:='0'+res;

Bin:=res;

end;

//===========================================================================

//Функция возврата символа по двоичному коду

//===========================================================================

Function unbin(y1:string):string;

var resul,i1:integer;

mess:string;

begin

resul:=0;

i:=1;

i1:=1;

while i<length(y1)+1 do

begin

if y1[i]='1' then

resul:=resul+floor(power(2,8-i1));

if i1=8 then

begin

mess:=mess+chr(resul);

resul:=0;

i1:=0;

end;

i:=i+1;

i1:=i1+1;

end;

unbin:=mess;

end;

//===========================================================================

begin

//===========================================================================

//первичная расшифровка перестановки и замены

//===========================================================================

x:=reversuncript(x);

x:=cezaruncript(x);

//===========================================================================

//Перевод в двоичный код

stroka:='';

for i:=1 to length(x) do

begin

stroka:=stroka+bin(Ord(x[i]));

end;

x:= stroka;

//Проведём операцию xor

stroka:='';

i:=1;

j:=length(x) div 2+1;

while i<>(length(x) div 2)+1 do

begin

 if  boolblok[strtoint(x[i])] xor  boolblok[strtoint(x[j])] then

 stroka:=stroka+'1' else

 stroka:=stroka+'0';

 i:=i+1;

 j:=j+1;

end;

strokaresul:=unbin(stroka);

//запись в строку вторую половину текста

stroka:='';

i:=1;

while i<>(length(x) div 2)+1 do

begin

stroka:=stroka+x[i];

i:=i+1;

end;

strokaresul:=strokaresul+unbin(stroka);

uncript:=strokaresul;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

memo1.Text:=uncript(memo3.Text);

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

memo3.Text:=cript(memo1.text);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

memo1.Text:='передача';

end;

end.


Изм.

Лист

№ докум.

Подпись

Дата

Лист

1

абораторная работа №5

Разраб.

Карецкий

Провер.

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

Реценз.

Н. Контр.

Утверд.

Комбинированные шифры и стандарт DES (Data Encryption Standart)

Лит.

Листов

6

       КОГУ 59 П-3

2

Изм

Лист

№ докум.

Подп

Дата

Лист

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

3

Изм

Лист

№ докум.

Подп

Дата

Лист

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

4

Изм

Лист

№ докум.

Подп

Дата

Лист

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

5

Изм

Лист

№ докум.

Подп

Дата

Лист

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

6

Изм

Лист

№ докум.

Подп

Дата

Лист

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

7

Изм

Лист

№ докум.

Подп

Дата

Лист

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


 

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

84044. Нормативное обеспечение создания электронного правительства в РФ с 2008 г. по настоящее время 40.25 KB
  № 8ФЗ Об обеспечении доступа к информации о деятельности государственных органов и органов местного самоуправления далее Федеральный закон № 8ФЗ. Действие Федерального закона № 8ФЗ распространяется на отношения связанные с обеспечением доступа пользователей информацией к информации о деятельности государственных органов и органов местного самоуправления. Федеральный закон № 8ФЗ определяет принципы и способы обеспечения доступа к информации о деятельности государственных органов и органов местного самоуправления закрепляет права...
84045. Федеральный закон от 27 июля 2010 г. № 210-ФЗ «Об организации предоставления государственных и муниципальных услуг»: новации в документообороте при предоставлении государственных (муниципальных) услуг 38.91 KB
  № 210ФЗ Об организации предоставления государственных и муниципальных услуг: новации в документообороте при предоставлении государственных муниципальных услуг. N 210ФЗ Об организации предоставления государственных и муниципальных услуг направлен на регулирование вопросов предоставления государственных и муниципальных услуг в том числе вопросов предоставления таких услуг в электронном виде. Закона также устанавливает требования к процедурам предоставления государственных муниципальных услуг в электронном виде; Закон регламентирует...
84046. Документационное обеспечение управления как наука и учебная дисциплина 36.63 KB
  Документационное обеспечение управления ДОУ это деятельность направленная на организацию документирования в организации и управления технологическим циклом движения документов. Поэтому термин ДОУ подчеркивает информационносоставляющую в современной организации делопроизводства. Документационное обеспечение управления это деятельность аппарата управления охватывающая вопросы документирования и организации работы с документами в процессе осуществления им управленческих функций. Деятельность каждой организации осуществляется в...
84047. История развития делопроизводства в России 44.78 KB
  В этих условиях единая система делопроизводства не была востребована самой системой управления. Рассмотренный период можно охарактеризовать как период постепенного складывания традиций русской системы делопроизводства накопления опыта документирования обработки и хранения документов обеспечения их сохранности. Система государственного делопроизводства начинает складываться только в середине 15 века с развитием Московского княжества в государство.
84048. Документооборот: понятие, функции, составные части. Объем документооборота, способы его учета 40.09 KB
  Документооборот организации это движение документов в организации с момента их создания или получения до завершения исполнения или отправления. Характеристикой документооборота является его объем под которым понимается количество документов поступивших в организацию и созданных ею за определенный период. Кроме этого регистрация позволяет осуществлять контроль исполнения документов а также вести их поиск. Наряду с организацией документооборота в понятие организация работы с документами входит хранение документов и их использование в...
84049. Виды документов ИОГВ Пермского края их роль в документационном обеспечении управления 34.29 KB
  Деятельность губернатора Пермского края руководителя администрации губернатора Пермского края председателя Правительства Пермского края заместителей председателя Правительства Пермского края руководителя аппарата Правительства Пермского края обеспечивается комплексом документов составляющим организационнораспорядительную документацию. Губернатор Пермского края издает указы и распоряжения во исполнение Конституции Российской Федерации федеральных законов нормативных актов Президента Российской Федерации постановлений Правительства...
84050. Способы документирования. Способы записи и воспроизводства информации документа 35.53 KB
  Способы записи и воспроизводства информации документа. Документирование запись информации на различных носителях по установленным правилам. Носитель документированной информации материальный объект используемый для закрепления и хранения на нем речевой звуковой или изобразительной информации в том числе в преобразованном виде. Запись информации это способ фиксирования информации на материальном носителе.
84051. Нормативные правовые акты РФ, федеральных органов исполнительной власти РФ, регламентирующие порядок делопроизводства и документооборота в органах государственной власти 36.97 KB
  Нормативную базу делопроизводства составляют: законодательные акты Российской Федерации в сфере документации и информации; указы и распоряжения Президента Российской Федерации постановления Правительства Российской Федерации в сфере делопроизводства; законодательные акты субъектов Российской Федерации и правовые акты принимаемые органами исполнительной власти субъектов Российской Федерации учитываются при организации делопроизводства органами представительной и исполнительной власти субъектов Федерации а также организациями...
84052. Структура и функции Управления документационного обеспечения аппарата Правительства Пермского края 33.28 KB
  Управление документационного обеспечения является структурным подразделением аппарата Правительства Пермского края и выполняет следующие функции: организует и регулирует документационное обеспечение; участвует в автоматизации документирования проектов законов постановлений протоколов и стенограмм заседаний других документов Правительства Пермского края; обеспечивает организационнотехническую подготовку и проведение заседаний; организует архивное хранение документов Правительства Пермского края и подготавливает их к передаче на...