МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
“ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”
КАФЕДРА ОБЧИСЛЮВАЛЬНОЇ ТЕХНІКИ ТА ПРОГРАМУВАННЯ
Розрахункове завдання
на тему: «Шифр Гронсфельда»
за курсом “ Захист інформації у комп’ютерних системах та мережах ”
Виконав:
ст групи КІТ-14в
Богачов О. С.
Харків 2007
1. Мета роботи
Придбання навичок аналізу зашифрованого повідомлення при
наявності визначених елементів зашифрованого або вихідного тексту.
2. Індивідуальне завдання: Шифр Гронсфельда
3. Теоретична частина
Шифр Гронсфельда
Цей шифр складної заміни, званий шифром Гронсфельда, є модифікацією шифру Цезаря числовим ключем. Для цього під буквами початкового повідомлення записують цифри числового ключа. Якщо ключ коротший за повідомлення, то його запис циклічно повторюють. Шифртекст одержують приблизно, як в шифрі Цезаря, але відлічують за абеткою не третю букву (як це робиться в шифрі Цезаря), а вибирають ту букву, яка зміщена за абеткою на відповідну цифру ключа. Наприклад, застосовуючи як ключ групу з чотирьох початкових цифр числа e (підстави натуральних логарифмів), а саме 2718, одержуємо для початкового повідомлення ВОСТОЧНЫЙ ЭКСПРЕСС наступний шифртекст:
Сообщение |
В |
О |
С |
Т |
О |
Ч |
Н |
Ы |
Й |
Э |
К |
С |
П |
Р |
Е |
С |
С |
||
Ключ |
2 |
7 |
1 |
8 |
2 |
7 |
1 |
8 |
2 |
7 |
1 |
8 |
2 |
7 |
1 |
8 |
2 |
||
Шифртекст |
Д |
Х |
Т |
Ь |
Р |
Ю |
О |
Г |
Л |
Д |
Л |
Щ |
С |
Ч |
Ж |
Щ |
У |
Щоб зашифрувати першу букву повідомлення В, використовуючи першу цифру ключа 2, потрібно відлічити другу по порядку букву від У в алфавіті
В |
Г |
Д |
1 |
2 |
виходить перша буква шифртекста Д.
Слід зазначити, що шифр Гронсфельда розкривається відносно легко, якщо врахувати, що в числовому ключі кожна цифра має тільки десять значень, а значить, є лише десять варіантів прочитання кожної букви шифртекста. З другого боку, шифр Гронсфельда допускає подальші модифікації, поліпшуючі його стійкість, зокрема подвійне шифрування різними числовими ключами.
Рис.1. Схема алгоритму
Текст програми:
uses crt;
function GronsfeldEncipher(toCode, K: string): string;
var i, T, _T: integer;
begin
for i := 1 to length(toCode) do
begin
_T := ord(toCode[ i ]);
T := (Ord(toCode[ i ])+(Ord(K[(pred(i) mod length(K)) + 1]) - Ord('0')) );
if T >= 256 then dec(T, 256);
toCode[ i ] := Chr(T);
end;
GronsfeldEncipher := toCode;
end;
function GronsfeldDecipher(toDecode, K: string): string;
var i, T: integer;
begin
for i := 1 to length(toDecode) do
begin
T := (Ord(toDecode[i])-(Ord(K[(pred(i) mod length(K)) + 1]) - Ord('0')) );
if T < 0 then Inc(T, 256);
toDecode[ i ] := Chr(T);
end;
GronsfeldDecipher := toDecode;
end;
var
i : integer;
s, s2: string;
source, code, dest : array[1..20] of string;
f1, f2, f3 : text;
begin
clrscr;
i := 1;
assign(f1,'source.txt');
reset(f1);
assign(f2,'code.txt');
rewrite(f2);
assign(f3,'destinat.txt');
rewrite(f3);
writeln('Work of Gronsfeld code');
while not eof(f1) do
begin
read(f1, source[i]);
code[i] := GronsfeldEncipher(source[i], '587219');
write(f2, code[i]);
dest[i] := GronsfeldDecipher(code[i], '587219');
write(f3, dest[i]);
inc(i);
end;
writeln('Done. Press any key');
close(f1); close(f2); close(f3);
readln;
end.
Результат роботи:
Файл до шифрування:
Global networks wide area networks, wan), which also name territorial computer networks,
Файл після шифрування:
Ltvdbu%vlvxxwsz"xrim'csnf(uguЂtzru-)|iu+-|ppei)ftzq!wful"unwzpvp{nis"dxrx|vf{%vlv|
Файл після дешифрування:
Global networks wide area networks, wan), which also name territorial computer networks,
Висновок: у розрахунковій роботі ознайомився з шифруванням методом заміни, а саме — з шифром Гронсфельда. Розроблена програма шифрування – дешифрування за цим методом. Перевірена працездатність.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.