Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

График защиты курсовых работ

Читайте также:
  1. A) в отсутствие безработицы;
  2. a) графиком
  3. A) работающие;
  4. B 1. Как Вы относитесь к совместной работе государственных учреждений и религиозных организаций в социальной сфере?
  5. D триггеры, работающие по фронту.
  6. D. Требования к структуре и оформлению курсовой работы.
  7. E. Порядок защиты курсовой работы.
  8. I ОРГАНИЗАЦИОННО-МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ КУРСОВОЙ РАБОТЫ
  9. I Принцип работы клавиатур
  10. I. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ КОНТРОЛЬНОЙ РАБОТЫ

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

 

Задание: Разработка и программная реализация алгоритма шифрования Цезаря (линейный сдвиг по алфавиту)

 

Контрольный пример: пусть надо зашифровать фразу «ПРИШЕЛ УВИДЕЛ ПОБЕДИЛ» со сдвигом по алфавиту на 3 позиции вправо

Русский алфавит считаем состоящим из 32 букв(без буквы Ё)

АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ

Тогда при сдвиге на три позиции буква А в незашифрованном сообщении соответствует букве Г в зашифрованном сообщении, буква Б – букве Д, и.т.д. Контрольной фразе «ПРИШЕЛ УВИДЕЛ ПОБЕДИЛ» соответствует последовательность «ТУЛЫИО ЦЕЛЗИО ТСДИЗЛО»

 

Реализация алгоритма: при выполнении лабораторной работы с помощью пакета инженерных вычислений MATLAB 7.5.0 было создано приложение с графическим интерфейсом, позволяющее пользователю зашифровать любое текстовое сообщение на русском языке (пробелы, знаки препинания и прочие символы не учитывались), введенным в окно редактирования текста или загруженным из файла ‘text.txt’. Ключ шифрования (целое число, выражающее сдвиг по алфавиту) загружается из файла ‘key.txt’, в случае, если ключ не загружен, он считается равным 0. Результат сообщения можно сохранить в файл ‘out.txt’. Интерфейс приложения представлен на рисунке 1.

 

 


Результаты работы программы с различными исходными текстами, ключами и другими параметрами

Исходное сообщение Сдвиг Зашифрованное сообщение
Жена Цезаря должна быть вне подозрений   Зжоб Чжимса епмзоб вьуэ гож рпеписжойк
Рубикон перейден. Жребий брошен   Юбпцшьы зуюучтуы.Фюопцч пюьжуы
И ты, Брут!   Р ъг Йшыъ
Гай Юлий Цезарь   Цуъ сюыъ Йшъугл

 

Ответы на контрольные вопросы

  1. Какой шифр называется шифром подстановки?

Ответ: Подстановочным шифром называется шифр, который каждый символ открытого текста в шифротексте заменяет другим символом или группой символов. К подстановочным шифрам относятся шифр Цезаря, решетка Полибия и пр.

  1. Какой шифр называется шифром перестановки?

Ответ: Шифр, преобразования из которого изменяют только порядок следования символов исходного текста, но не изменяют их самих, называется шифром перестановки

  1. Какой шифр называется поворотной решеткой?

Ответ: Для использования шифра, называемого поворотной решеткой или решеткой Кардано, изготавливается трафарет из прямоугольного листа клетчатой бумаги размера 2m´2k клеток. В трафарете вырезано m´k клеток так, что при наложении его на лист чистой бумаги того же размера четырьмя возможными способами его вырезы полностью покрывают всю площадь листа. Буквы сообщения последовательно вписываются в вырезы трафарета (по строкам, в каждой строке слева направо) при каждом из четырех его возможных положений в заранее установленном порядке

  1. Какой шифр называется шифром вертикальной перестановки?

Ответ: Шифром вертикальной перестановки (ШВП) называется широко распространенная разновидность шифра маршрутной перестановки. В нем используется прямоугольник, в котором сообщение вписывается обычным способом (по строкам слева направо). Выписываются буквы по вертикали, а столбцы при этом берутся в порядке, определяемом ключом.

  1. К какому классу шифров относится шифр Цезаря?

Ответ: шифр Цезаря относится к простым одноалфавитным подстановочным шифрам. Слабость этого шифра состоит в том, что его можно вскрыть, перебрав очень малое число вариантов.

  1. Что такое гамма и гаммирование?

Ответ: Прин­цип шифрования гам­ми­ро­ва­ни­ем за­клю­ча­ет­ся в ге­не­ра­ции гам­мы шиф­ра (последовательности псевдослучайных чисел) с по­мо­щью дат­чи­ка псев­до­слу­чай­ных чи­сел и на­ло­же­нии по­лу­чен­ной гам­мы на от­кры­тые дан­ные об­ра­ти­мым об­ра­зом

  1. В чем заключается шифрование по Вижинеру?

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

 

 

Выводы: при выполнении лабораторной работы были получены навыки в использовании простых симметричных шифров.

 

Приложение 1

Текст программы на языке среды инженерных разработок MATLAB

function varargout = caesar(varargin)

% CAESAR M-file for caesar.fig

% CAESAR, by itself, creates a new CAESAR or raises the existing

% singleton*.

%

% H = CAESAR returns the handle to a new CAESAR or the handle to

% the existing singleton*.

%

% CAESAR('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in CAESAR.M with the given input arguments.

%

% CAESAR('Property','Value',...) creates a new CAESAR or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before caesar_OpeningFunction gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to caesar_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

 

% Edit the above text to modify the response to help caesar

 

% Last Modified by GUIDE v2.5 28-Mar-2008 16:56:07

 

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename,...

'gui_Singleton', gui_Singleton,...

'gui_OpeningFcn', @caesar_OpeningFcn,...

'gui_OutputFcn', @caesar_OutputFcn,...

'gui_LayoutFcn', [],...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

 

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

 

% --- Executes just before caesar is made visible.

function caesar_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to caesar (see VARARGIN)

 

% Choose default command line output for caesar

handles.output = hObject;

 

% Update handles structure

handles.Data = '';

handles.Key = 0;

guidata(hObject, handles);

set(handles.cypherbutton, 'Enable', 'off');

 

% UIWAIT makes caesar wait for user response (see UIRESUME)

% uiwait(handles.figure1);

 

% --- Outputs from this function are returned to the command line.

function varargout = caesar_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

 

% Get default command line output from handles structure

varargout{1} = handles.output;

 

function text_Callback(hObject, eventdata, handles)

userstring = get(hObject, 'String');

handles.Data = userstring;

guidata(hObject,handles);

set(handles.cypherbutton, 'Enable', 'on')

% hObject handle to text (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

 

% Hints: get(hObject,'String') returns contents of text as text

% str2double(get(hObject,'String')) returns contents of text as a double

 

% --- Executes during object creation, after setting all properties.

function text_CreateFcn(hObject, eventdata, handles)

% hObject handle to text (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

 

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

 

% --- Executes on button press in cypherbutton.

function cypherbutton_Callback(hObject, eventdata, handles)

clear newstrring workstring

ALPHABET = 'А':'Я';

alphabet = 'а':'я';

key = handles.Key;

 

workstring = handles.Data;

Upper = ismember(workstring, ALPHABET);

workstring = lower(workstring);

N = length(ALPHABET); n = length(alphabet); M = length(workstring);

for i = 1:M

j = find(alphabet == workstring(i));

if isempty(j) == 0

newstring(i) = alphabet(rem(j+key-1, n) + 1);

else

newstring(i) = workstring(i);

end

end

for i = 1:M

if Upper(i) == 1

j = find(alphabet == newstring(i));

newstring(i) = ALPHABET(j);

end

end

set(handles.Ctext, 'String', newstring);

set(hObject, 'Enable', 'off')

 

% hObject handle to cypherbutton (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

 

% --- The search Upper case function

 

% --- Executes on slider movement.

function slider1_Callback(hObject, eventdata, handles)

% hObject handle to slider1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

 

% Hints: get(hObject,'Value') returns position of slider

% get(hObject,'Min') and get(hObject,'Max') to determine range of slider

 

% --- Executes during object creation, after setting all properties.

function slider1_CreateFcn(hObject, eventdata, handles)

% hObject handle to slider1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

 

% Hint: slider controls usually have a light gray background.

if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor',[.9.9.9]);

end

 

% --- Executes on button press in loadtextbutton.

function loadtextbutton_Callback(hObject, eventdata, handles)

k = fopen('text.txt', 'rt')

textstring = '';

fileflag = 0;

while fileflag ~= -1

fileflag = fgetl(k);

textstring = strcat(textstring, fileflag);

end

set(handles.text, 'String', textstring);

set(handles.cypherbutton, 'Enable', 'on');

handles.Data = textstring;

guidata(hObject,handles);

fclose(k);

% hObject handle to loadtextbutton (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

 

% --- Executes on button press in loadkeybutton.

function loadkeybutton_Callback(hObject, eventdata, handles)

k = fopen('key.txt', 'rt');

key = fgetl(k);

handles.Key = str2num(key);

guidata(hObject,handles);

fclose(k);

% hObject handle to loadkeybutton (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

 

% --- Executes on button press in savetextbutton.

function savetextbutton_Callback(hObject, eventdata, handles)

k = fopen('out.txt', 'wt');

cryptstring = get(handles.Ctext, 'String');

fprintf(k, '%s', cryptstring);

fclose(k);

% hObject handle to savetextbutton (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

 

 

График защиты курсовых работ




Дата добавления: 2014-12-23; просмотров: 22 | Поможем написать вашу работу | Нарушение авторских прав

<== предыдущая лекция | следующая лекция ==>
Простые шифры| Введение

lektsii.net - Лекции.Нет - 2014-2024 год. (0.022 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав