საქართველოს ტექნიკური უნივერსიტეტი

18
სსსსსსსსსსს სსსსსსსსს სსსსსსსსსსსს Georgian Technical University ტტტტტტტტტ ტტტტტტტტტ ტტტტტტტტტ ტტ ტტტტტტტტ ტტტტტტტტტ ტტტტტტტტტტ ტტტტტტტტტტტტ სსსსსს სსსსსსსსს

description

საქართველოს ტექნიკური უნივერსიტეტი. ტექსტების შიფრაციის მატრიცული და პოლიბიას მეთოდების პროგრამული უზრუნველყოფა. Georgian Technical University. გიორგი ლობჟანიძე.  მატრიცული მეთოდი და მისი არსი. დასაშიფრი ტექსტი:. შეტევა განახორციელეთ მარცხენა ფლანგიდან. - PowerPoint PPT Presentation

Transcript of საქართველოს ტექნიკური უნივერსიტეტი

Page 1: საქართველოს ტექნიკური უნივერსიტეტი

საქართველოს ტექნიკური უნივერსიტეტი

Georgian Technical University

ტექსტების შიფრაციის მატრიცული და პოლიბიას მეთოდების პროგრამული უზრუნველყოფა

გიორგი ლობჟანიძე

Page 2: საქართველოს ტექნიკური უნივერსიტეტი

მატრიცული მეთოდი და მისი არსი :დასაშიფრი ტექსტი

შეტევა განახორციელეთ მარცხენა ფლანგიდან

გამოითვლება მატრიცის ოპტიმალური განზომილებები

( M * N ) >= ტექსტში ასოების რაოდენობა

( )მიმდინარეობს ტექსტის მატრიცაში შეტანა სტრიქონულად

შ ე ტ ე ვ ა

გ ა ნ ა ხ

ო რ ც ი ე ლ

ე თ მ ა რ

ც ხ ე ნ ა

ფ ლ ა ნ გ ი

დ ა ნ * * *

ამ კონკრეტულ შემთხვევაში მატრიცის

განზომილებებია

M = 7 და N = 6

ტექსტში ასოების რაოდენობის შესაბამისად

Page 3: საქართველოს ტექნიკური უნივერსიტეტი

( )მიმდინარეობს ტექსტის მატრიციდან გამოტანა შვეულად

შ ე ტ ე ვ ა

გ ა ნ ა ხ

ო რ ც ი ე ლ

ე თ მ ა რ

ც ხ ე ნ ა

ფ ლ ა ნ გ ი

დ ა ნ * * *

:დაშიფრული ტექსტი * * შ ოეცფდეგრთხლატაც ეანენიმნნ ვაეააგ ახლრ*ი

Page 4: საქართველოს ტექნიკური უნივერსიტეტი

მეთოდის გაუმჯობესება

: ტექსტის შეტანა სტრიქონების გარკვეული თანმიმდევრობით 7 5 4 6 2 3 1

დ ა ნ * * *

ც ხ ე ნ ა

ფ ლ ა ნ გ ი

ო რ ც ი ე ლ

გ ა ნ ა ხ

ე თ მ ა რ

შ ე ტ ე ვ ა1

2

4

5

7

3

6

Page 5: საქართველოს ტექნიკური უნივერსიტეტი

: ტექსტის გამოტანა სვეტების გარკვეული თანმიმდევრობით 4 6 5 1 3 2

დ ა ნ * * *

ც ხ ე ნ ა

ფ ლ ა ნ გ ი

ო რ ც ი ე ლ

გ ა ნ ა ხ

ე თ მ ა რ

შ ე ტ ე ვ ა

1 234 56

:დაშიფრული ტექსტი* * * ნნინმე ილხრა აგეაავდცფო ეშნეაცატახლრგთე

ტექსტის გასაშიფრი გასაღებების

:რაოდენობა ხდება

M! x N!

ამ კონკრეტულ:შემთხვევაში

7! x 6! = 3628800

Page 6: საქართველოს ტექნიკური უნივერსიტეტი

მატრიცული მეთოდით დაშიფრული ტექსტის გაშიფრვა

შ ე ტ ე ვ ა

გ ა ნ ა ხ

ო რ ც ი ე ლ

ე თ მ ა რ

ც ხ ე ნ ა

ფ ლ ა ნ გ ი

დ ა ნ * * *

* * შ ოეცფდეგრთხლატაც ეანენიმნნ ვაეააგ ახლრ*ი

შ ე ტ ე ვ ა

გ ა ნ ა ხ

ო რ ც ი ე ლ

ე თ მ ა რ

ც ხ ე ნ ა

ფ ლ ა ნ გ ი

დ ა ნ * * *

ტექსტის სვეტებში შეტანა ტექსტის სტრიქონებიდან გამოტანა

: გასაშიფრი ტექსტი

:გაშიფრული ტექსტი შეტევა განახორციელეთ მარცხენა

***ფლანგიდან

Page 7: საქართველოს ტექნიკური უნივერსიტეტი

მატრიცული მეთოდის პროგრამული უზრუნველყოფა

Codestring text; //საწყისი ტექსტი

string codedText; //დაშიფრული ტექსტი

string codedWithKeyText; //მომხმარებლის გასაღებით დაშიფრული ტექსტი

string Coding(); // შიფრაცია

string enCoding(string textOfEncode ,int rows, int cols); // დეშიფრაცია

string codingWithKey(); // შიფრაცია

string enCodingWithKey(string textOfEncode ,int rows, int cols); // დეშიფრაცია

კლასისსახელი

private

ატრიბუტები

public

მეთოდები

კლასის მოდელი

Page 8: საქართველოს ტექნიკური უნივერსიტეტი

coding( ) მეთოდის სტრუქტურა და რეალიზაცია

მატრიცის ოპტიმალური განზომილებების

გამოთვლა

ტექსტის სტრიქონულად შეტანა მატრიცაში

მატრიციდან ტექსტის გამოტანა სვეტებად

დაშიფრული ტექსტისმიღება

while(true){ if(( i * i) >= text.length() ) { m = i; n = i; if( (i * (i-1)) >= text.length() ) { n = (i-1); } break; } i++; }

int index = 0;for(int i = 0; i<m; i++){ for(int j = 0; j<n; j++) { if(index >= text.length()) letters[i][j] = "*"; else letters[i][j] = text.substr(index,1); index++; }}

for(int i=0; i<n; i++){ for(int j=0; j<m; j++) { codedText += letters[j][i]; }}

Page 9: საქართველოს ტექნიკური უნივერსიტეტი

enCoding(string textOfEncode, int row, int col ) მეთოდის სტრუქტურა და რეალიზაცია

მატრიცის განზომილებების აღდგენა გადაცემული

პარამეტრებით

const int m = row;const int n = col;

ტექსტის შეტანა მატრიცაშიშვეულად

for(int i=0, index = 0; i<n; i++){ for(int j=0; j<m; j++) { letters[j][i] = textOfEncode.substr(index,1); index++; }}

for(int i = 0; i<m; i++) { for(int j = 0; j<n; j++) { enCodedText += letters[i][j]; } }

ტექსტის გამოტანა მატრიციდან

სტრიქონულად

საწყისი ტექსტის აღდგენა

Page 10: საქართველოს ტექნიკური უნივერსიტეტი

codingWithKey( ) მეთოდის სტრუქტურა და რეალიზაცია

მატრიცის ოპტიმალური განზომილებების

გამოთვლა

სტრიქონების შეტანის თანმიმდევრობის მიღება

მომხმარებლისგან

ტექსტის შეტანა სტრიქონულად

მომხმარებლის მიერ მითითებული

თანმიმდევრობით

for(int i = 0; i<row; i++){ cout<<"\tRow["<<i<<"] Key: "; cin>>rowKey[i];}

for(int i=0; i<row; i++){ for(int j=0; j<col; j++) { if( index >= text.length() ) letters[rowKey[i]][j] = "*"; else letters[rowKey[i]][j] = text.substr(index,1);

index++; }}

Page 11: საქართველოს ტექნიკური უნივერსიტეტი

სვეტების გამოტანის თანმიმდევრობის მიღება

მომხმარებლისგან

ტექსტის გამოტანა შვეულად მომხმარებლის

მიერ მითითებულითანმიმდევრობით

დაშიფრული ტექსტისმიღება

for(int i=0; i<col; i++){ cout<<"\tCol["<<i<<"] Key: "; cin>>colKey[i];}

for(int i=0; i<col; i++){ for(int j=0; j<row; j++) { codedWithKeyText += letters[j][colKey[i]]; }}

Page 12: საქართველოს ტექნიკური უნივერსიტეტი

enCodingWithKey(string textOfEncode, int row, int col ) მეთოდის სტრუქტურა და რეალიზაცია

მატრიცის განზომილებების აღდგენა გადაცემული

პარამეტრებით

სვეტების შეტანის თანმიმდევრობის მიღება

მომხმარებლისგან

მატრიცის აღდგენა

სტრიქონების გამოტანის თანმიმდევრობის მიღება

მომხმარებლიდან

საწყისი ტექსტის აღდგენა

const int m = row;const int n = col; for(int i=0; i<n; i++)

{ cout<<"\tCol["<<i<<"] Key: "; cin>>colKey[i];}

for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { letters[j][colKey[i]] = textOfEncode.substr(index,1); index++; } }

for(int i=0; i<m; i++){ cout<<"\tRow["<<i<<"] Key: "; cin>>rowKey[i];}

for(int i=0; i<m; i++){ for(int j=0; j<n; j++) { enCodedText += letters[rowKey[i]][j]; }}

Page 13: საქართველოს ტექნიკური უნივერსიტეტი

პოლიბიას მეთოდი და მისი არსი

:დასაშიფრი ტექსტი

მმ ტერი მარცხენა ფლანგზეა

ა ბ გ დ ე ვ

ზ თ ი კ ლ მმ

ნ ო პ ჟ რ ს

ტ უ ფ ქ ღ ყ

შ ჩ ც ძ წ ჭ

ხ ჯ ჰ . ,

ანბანი

ა ბ გ დ ე ვ

შიფრაციის წესი

თითოეული ასო იცვლება მისი თითოეული ასო იცვლება მისიკოორდინატებითკოორდინატებით

მმ ბვბვიცვლება

:დაშიფრული ტექსტი

ბვდააეგებგვდბვააგეეგვააეგააავდდგბეააგააგბააეაა

Page 14: საქართველოს ტექნიკური უნივერსიტეტი

პოლიბიას მეთოდით დაშიფრული ტექსტის დეშიფრაცია

:გასაშიფრი ტექსტი

ბვბვდააეგებგვდბვააგეეგვააეგააავდდგბეააგააგბააეაა

დეშიფრაციის წესი

ბვბვ

ვვბბა ბ გ დ ე ვ

ზ თ ი კ ლ მმ

ნ ო პ ჟ რ ს

ტ უ ფ ქ ღ ყ

შ ჩ ც ძ წ ჭ

ხ ჯ ჰ . ,

ა ბ გ დ ე ვვ

ბბ

მმ

მმ ტერი მარცხენა ფლანგზეა

:გაშიფრული ტექსტი

Page 15: საქართველოს ტექნიკური უნივერსიტეტი

პოლიბიას მეთოდის პროგრამული უზრუნველყოფა

კლასის მოდელი

Codestring text; //საწყისი ტექსტი

string codedText; //დაშიფრული ტექსტი

void polibiaCoding(); // შიფრაცია

string polibiaEnCoding(string textOfEncode); // დეშიფრაცია

კლასისსახელი

private

ატრიბუტები

public

მეთოდები

Page 16: საქართველოს ტექნიკური უნივერსიტეტი

polibiaCoding( ) მეთოდის სტრუქტურა და რეალიზაცია

ანბანის და კოორდინატების აღწერა

სიმბოლოების ძიება ანბანში და მათი ჩანაცვლება შესაბამისი

კოორდინატებით

დაშიფრული ტექსტისმიღება

const string alphabet[6][6] = { {"a","b","g","d","e","v"},{"z","T","i","k","l","m"},{"n","o","p","J","r","s"},{"t","u","f","q","R","y"},{"S","C","c","Z","w","W"},{"x","j","h"," ",".",","}};

const string rowLetters[6] = {"a","b","g","d","e","v"}; const string colLetters[6] = {"a","b","g","d","e","v"};

for(int a=0; a<text.length(); a++){ letter = text.substr(a,1);

for(int i=0; i<6; i++) //find current element { for(int j=0; j<6; j++) { if( letter == alphabet[i][j] ) { temp = rowLetters[i] + colLetters[j]; codedText += temp; } } } }

Page 17: საქართველოს ტექნიკური უნივერსიტეტი

polibiEnCoding( string textOfEncode) მეთოდის სტრუქტურა და რეალიზაცია

ანბანის და კოორდინატების აღწერა

ტექსტიდან ასოების- წყვილ წყვილად ამოჭრა

და მათი ჩანაცვლება ანბანში შესაბამის

კოორდინატებზე მდებარეასოთი

დაშიფრული ტექსტისმიღება

for(int i=0; i<textOfEncode.length()/2; i++) { txt1 = textOfEncode.substr(index,1);

txt2 = textOfEncode.substr((index+1),1); for(int j=0; j<6; j++) { if(txt1 == rowLetters[j]) rowLetter = j; if(txt2 == colLetters[j]) colLetter = j; } enCodedText += alphabet[rowLetter][colLetter];

index+=2;}

Page 18: საქართველოს ტექნიკური უნივერსიტეტი