Szyfrowanie symetryczne Szyfrowanie asymetryczne 1
Transkrypt
Szyfrowanie symetryczne Szyfrowanie asymetryczne 1
Szyfrowanie symetryczne Szyfrowanie asymetryczne 1. Przestawienie kolumnowe 2. Szyfr płotowy 3. Szyfry monoalfabetyczne – szyfr Cezara. 1. Szyfr RSA 1. Przestawienie kolumnowe Realizowane jest za pomocą algorytmu przedstawieniowego. Szyfrowanie przebiega w dwóch etapach: tekst jawny wpisuje się do tablicy- to nazywa się ścieżką zapisu odczytuje się go w ustalonym porządku, otrzymując szyfrogram- to nazywa się ścieżką odczytu. przykład: tekst jawny: SENDERSKAELZBIETA, do tablicy 5cio kolumnowej 0 S R L T 1 E S Z A 2 N K B 3 D A I 4 E E E Zastosujmy klucz: 20413. Wynik szyfrowania: NKB SRLTEEEESZADAI ZADANIE 1 napisz program, który zaszyfruje tekst jawny metodą kolumnową oraz dający możliwość zmiany liczby kolumn i klucza. ZADANIE 2 Zaszyfruj metodą kolumnową tekst: UCZCIWOSC ZBIERA POCHWAŁY I UMIERA Z ZIMNA. Zastosuj tablicę dwuwymiarową zawierającą 4 kolumny oraz klucz: 3,2,0,1. Podczas szyfrowania pomiń spacje. ZADANIE 3 Odszyfruj kryptogram: AWYKWIAPCSSOYERAZTZCZ zaszyfrowany metodą kolumnową. Wykorzystano tutaj tablicę dwuwymiarową zawierającą 3 kolumny oraz klucz: 2,0,1. Podczas szyfrowania pominięto spacje. ZADANIE 4 Podaj specyfikację i skonstruuj algorytm w postaci programu deszyfrujący kryptogram uzyskany metodą kolumnową, w której wykorzystano tablicę dwuwymiarową zawierającą dowolną liczbę kolumn. Tekst zaszyfrowany, liczba kolumn oraz klucz mają być wprowadzane z klawiatury. 2. Szyfr płotowy S E E D A R K N S W tej metodzie znaki zapisuje się na cosinusoidzie Szyfrogram uzyskuje się odczytując kolejne wiersze: SEAEDRKNS. Kluczem jest wysokość „płotu”- czyli liczba wierszy. ZADANIE 5 Podaj specyfikację oraz skonstruuj algorytm w postaci schematu blokowego i programu deszyfrujący kryptogram wczytywany z klawiatury uzyskany metodą płotową dla płotu wysokości 3. ZADANIE 6 Zaszyfruj metodą płotową tekst: WŁASNE MALE OGNISKO CENNIEJSZE OD STOSU ZŁOTA. Zastosuj płot wysokości 2. Przy szyfrowaniu pomiń spacje. ZADANIE 7 Odszyfruj kryptogram: BZOIJPYECYNSNEAEDOZNUZNCDOCK zaszyfrowany metodą płotową. Wykorzystano tutaj płot wysokości 3. Przy szyfrowaniu pominięto spacje. ZADANIE 8 Podaj specyfikację i skonstruuj algorytm w postaci programu szyfrujący i deszyfrujący wiadomość wczytywaną z klawiatury metodą płotową dla wysokości 2. 3. Algorytmy podstawieniowe. Szyfry monoalfabetyczne – szyfr Cezara. Szyfrowanie przez podstawianie polega na zastępowaniu znaków utajnianej informacji innymi znakami. Jedna litera tekstu jawnego może być jednak zastąpiona jednym bądź wieloma znakami. Ponadto jednocześnie można korzystać z wielu alfabetów szyfrowych. Przykład: Zaszyfrujmy szyfrem Cezara tekst jawny SENDERSKA z kluczem 4. Alfabet jawny Alfabet szyfrowy A B C D E F G H I J K L M N O P Q R S T U V W X Y Z E F G H I J K L M N O P Q R S T U V W X Y Z A B C D Szyfrogram: WIRHIVWOE /* i wszystko jasne*/ Przydatne funkcje do szyfrowania : string szyfruj (string tekst, string alfabet, int klucz) { string wynik; int dlT=tekst.size( ), dlA=alfabet.size( ); for (int i=0;i<dlT;i++) for (int j=0;j<dlA;j++) if (tekst[i]==alfabet[j]) wynik+=alfabet[(j+klucz)%dlA]; return wynik; } Alfabet szyfrowy można utworzyć korzystając ze słowa (lub zdania) kluczowego, usuwając w nim powtarzające się znaki i spacje.