Гибридная система шифрования (ГСШ-11)

Автор работы: Пользователь скрыл имя, 12 Ноября 2009 в 18:50, Не определен

Описание работы

Курсовая работа по дисциплине «Программно-аппаратная защита информации»

Файлы: 1 файл

Курсовая работа.doc

— 144.50 Кб (Скачать файл)

Курский Государственный  Университет 
 

Кафедра программного обеспечения  и администрирования  информационных систем 
 
 
 
 
 

КУРСОВАЯ  РАБОТА 

по  дисциплине «Программно-аппаратная защита информации» 
 
 
 

Тема: Гибридная система  шифрования (ГСШ-11) 
 
 
 
 
 
 
 
 
 

Выполнила:

студент гр. 52                                                                                Ковалёв К.Н. 
 
 

Принял:

д.т.н., профессор                                                                            Лопин В.Н.

  
 
 
 
 
 
 

Курск 2009

 

        СОДЕРЖАНИЕ 

 

1. ЗАДАНИЕ НА ПРОЕКТИРОВАНИЕ 

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

       При выполнении курсовой работы использовать представленную ниже структуру гибридной системы шифрования (ГСШ): 

 
 
 
 
 
 

       В приведенных структурах используются следующие обозначния: 

       V – шифрование методом полиалфавитной замены;

       S – шифрование методом скремблирования;

       T – исходный текст;

       F1 - промежуточный шифртекст;

       F -  результирующий шифртекст. 

       Формализация  исходных данных методов шифрования: 

    • Исходные  данные метода V определяются длиной ключа K.
    • Исходные данные метода S определяются тройкой (conf, C0, n), где:
    1. conf – конфигурация генератора псевдослучайных чисел, определяющая расположение сумматоров по модулю два в обратной связи генератора:
      1. C0 – начальное состояние генератора;
      2. n – количество двоичных разрядов генератора.
 
k conf C0 n
8 1362 834 14
 

 

       2. ЛИСТИНГ ПРОГРАММЫ 

unit Unit1; 

interface 

uses

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

  Dialogs, StdCtrls, ExtCtrls, Grids, Math, Buttons; 

type

  TForm1 = class(TForm)

    GroupBox2: TGroupBox;

    Memo1: TMemo;

    GroupBox1: TGroupBox;

    Button1: TButton;

    Button4: TButton;

    Button3: TButton;

    Memo2: TMemo;

    Button2: TButton;

    Button7: TButton;

    Button8: TButton;

    Button9: TButton;

    GroupBox4: TGroupBox;

    Memo3: TMemo;

    Label1: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Button5: TButton;

    OpenDialog1: TOpenDialog;

    SaveDialog1: TSaveDialog;

    Button10: TButton;

    Button11: TButton;

    Button6: TButton;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    BitBtn3: TBitBtn;

    LabeledEdit1: TLabeledEdit;

    BitBtn4: TBitBtn;

    Button12: TButton;

    Label2: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure Matrix;

    procedure FormCreate(Sender: TObject);

    procedure Zashifr;

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    Procedure Rashifr;

    procedure Button4Click(Sender: TObject);

    procedure Button7Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button6Click(Sender: TObject);

    procedure Button9Click(Sender: TObject);

    procedure SymvToBit(cq:char);

    function  CodeToSymv: integer;

    procedure Posl;

    procedure NachC(var j,k:longint;n:Byte);

    procedure Button8Click(Sender: TObject);

    procedure Button10Click(Sender: TObject);

    procedure Button11Click(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

    procedure BitBtn3Click(Sender: TObject);

    procedure BitBtn4Click(Sender: TObject);

    procedure Button12Click(Sender: TObject); 
 

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form1: TForm1;

  alf,s: String;

  M:array of String;

  Z,key,C,T: array of byte;

  p:longint;

  FName:String;

  F:TextFile;

  NText:TMemo; 
 

implementation 

{$R *.dfm} 

procedure TForm1.Button3Click(Sender: TObject);      //1z

Var    Ch:Char;

begin

memo1.Text:='';

memo2.Text:='';

memo3.Text:='';

  If OpenDialog1.Execute then

  Begin

  AssignFile(F,OpenDialog1.FileName);

  FName:=OpenDialog1.FileName;

  Reset(F);

  If IOResult=0 then Begin

    While not Eof(f) do

      Begin

        Read(F,Ch);

        Memo1.Text:=Memo1.Text+Ch;

      End;

    CloseFile(F);

                     End;

                     End; 

end; 

procedure TForm1.Button5Click(Sender: TObject);  //1s

begin

  FName:='Скремблер';

  SaveDialog1.FileName:=Fname;

  If SaveDialog1.Execute then Fname:=SaveDialog1.FileName;

  Memo1.Lines.SaveToFile(FName);

end; 

procedure TForm1.Matrix; //Матрица V

Var i,k:word;

Begin

Setlength(M,length(s)+1);

M[0]:=alf;

For i:=1 to Length(s) do

   Begin

     k:=pos(s[i],alf);

     M[i]:=Copy(alf,k,length(alf)-k+1)+copy(alf,1,k-1);

   End;

End; 

Procedure TForm1.Zashifr;//Процедура  шифрования

Var k,j,l:wORD;

    i:longword;

Begin

Matrix;

Memo3.Text:='';

i:=1;

k:=1;

While i<Length(Memo1.Text)+1 do

Begin

If k=Length(s)+1 then Begin

                              k:=1;

                              End;

j:=1;

While M[j][1]<>s[k] do

   j:=j+1;

   l:=pos(Memo1.Text[i],M[0]);

Memo3.Text:=Memo3.Text+M[j][l];

k:=k+1;

i:=i+1;

End;

End; 

Procedure TForm1.Rashifr;//Процедура  дешифрования

Var k,j,l:wORD;

    i:longword;

Begin

Matrix;

Memo2.Text:='';

i:=1;

k:=1;

While i<Length(Memo1.Text)+1 do

Begin

If k=Length(s)+1 then Begin

                              k:=1;

                             End;

j:=1;

While M[j][1]<>s[k] do

   j:=j+1;

   l:=pos(Memo1.Text[i],M[j]);

Memo2.Text:=Memo2.Text+M[0][l];

k:=k+1;

i:=i+1;

End;

End; 

//Дешифрование V

procedure TForm1.Button4Click(Sender: TObject);

begin

Button12.Visible:=True;

LabeledEdit1.Visible:=True;

end; 

//Шифрование V

procedure TForm1.Button1Click(Sender: TObject);

Var u:Integer;

begin

LabeledEdit1.Visible:=True;

BitBtn4.Visible:=True;

end; 

procedure TForm1.FormCreate(Sender: TObject);

var i:byte;

begin

Memo1.Text:='';

Button12.Visible:=False;

LabeledEdit1.Visible:=False;

BitBtn4.Visible:=False;

For i:=0 to 255 Do

alf:=alf+char(i);

end; 

Procedure TForm1.NachC(var j,k:longint;n:Byte);//Формир-ние битовых послед-ностей:

Var  i:Byte;                                      // конфигурация и начальное состояние

Begin

SetLength(Z,n);

SetLength(key,n);

  For i:=n-1 downto 0 do

    Begin

      If j>1 then Begin

                      Z[i]:=j mod 2;

Информация о работе Гибридная система шифрования (ГСШ-11)