Шифры замены Программирование алгоритмов. Шифр замены – преобразования заключаются в замене каждого символа (слова) открытого сообщения на другие символы.

Презентация:



Advertisements
Похожие презентации
Шифры перестановки Программирование алгоритмов.
Advertisements

Основы криптографии Возможности защиты информации.
Обработка символов строки. Дано слово. Переставить первые три и последние три буквы, сохранив порядок их следования.
Задача Разбить предложение по словам. В предложении могут быть знаки «.», «!», «?» и «,»
Шешель Анжелика. Значения: Символьная величина – 1 символ (буква, цифра, знак) Строковая величина – строка символов.
K-периодичный массив. В данной задаче речь пойдет только о массивах, все элементы которых равны 1 и/или 2. Массив a называется k-периодичным, если его.
Процедуры и функции обработки строк Шутилина Л.А.
Множества. Внутреннее представление.. Механизм внутреннего представления Каждое значение базового типа представляется одним битом. В память заносится.
Двумерные массивы Решение задач из сборника «Задачи по программированию» под редакцией С. Окулова.
Строки в Pascal
Типовые алгоритмы обработки числовых данных. Генерация случайных чисел на заданном промежутке [a;b] b Randomize; х:= random(b – а) + а; a x.
3. Дана прямоугольная матрица, элементами которой являются целые числа. Поменять местами ее строки следующим образом: первую строку с последней, вторую.
Символьные переменные и строки Решение задач Вербицкая Ольга Владимировна, Заозерная школа 16.
A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5] Двумерный массив можно представить.
5.Дана матрица А и вектор Х соответствующих размерностей. Нечетные строки матрицы заменить элементами вектора Х. Результаты работы: n=4 m=
Циклы. Вычислить сумму ряда чисел Program sum; var a: integer; s: real; Begin a:=1; s:=0; while a<600 do begin a:=a+1; s:=s+1/a; end; writeln ( ' s=
1 Автор разработки: Розанова Татьяна Аркадьевна, учитель информатики МОУ СОШ 2 города Кинешмы Ивановской области 2011 – 2012 учебный год Автор разработки:
Массивы Материалы к урокам по программированию. МАССИВ это УПОРЯДОЧЕННАЯ последовательность данных ОДНОГО ТИПА. Массивы относятся к структурированным.
ЕГЭ информатика Алгоритмизация и программирование Консультация 4.
Программирование типовых алгоритмов вычислений Информатика.
Транксрипт:

Шифры замены Программирование алгоритмов

Шифр замены – преобразования заключаются в замене каждого символа (слова) открытого сообщения на другие символы – шифрообозначения, порядок следования шифрообозначений совпадает с порядком следования соответствующих им символов в открытом тексте.

Шифр Цезаря (замена со сдвигом) Каждый символ открытого текста заменяется символом, находящимся тремя символами правее в алфавите Таблица для сдвига, равного 3. АБВГДЕЖЗИЙКЛМНОП ГДЕЖЗИЙКЛМНОПРСТ РСТУФХЦЧШЩЪЫЬЭЮЯ УФХЦЧШЩЪЫЬЭЮЯАБВ

Букву заменяют на ее естественный номер в алфавите Этот шифр может быть описан уравнением C=(M+K) mod N, где М - номер буквы исходного текста в алфавите, С - номер буквы зашифрованного текста в алфавите, K – ключ (число, на которое делаем смещение), N – количество букв в алфавите, mod – операция вычисления остатка от деления. Шифр Цезаря (замена со сдвигом)

Программный код для алгоритма Цезаря program cezar; var n,i,r:integer; s:string; begin writeln('vvedite stroku'); readln(s); writeln('vvedite regim: 1-shifrovanie, 2-rasshifrovanie'); readln(r); if r=1 then begin i:=1; while i

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

Для примера используем слово ФАЙЛ, состоящее из 4 букв, как ключ. Алфавитным номерам букв соответствует блок чисел 21, 1, 10, 12. Чтобы зашифровать сообщение при помощи этого ключа, исходный текст разбивается на блоки длинной в 4 буквы каждый. Затем к каждому числовому представлению первой буквы блока надо прибавить 21, к числовому представлению второй буквы – 1, третьей – 10, четвертой – 12. Получающиеся суммы по модулю представляют числовые значения шифртекста. Шифр Виженера

Шифр сложной замены -это модификация шифра Цезаря с числовым ключом. Под буквами сообщения записывают цифры числового ключа. Если ключ короче сообщения, то его запись циклически повторяют. Шифртекст получают, отсчитывая букву по алфавиту на соответствующую цифру ключа.

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

Пусть дан квадрат - ключ для шифра «Полибианский квадрат». Зашифровать слово «криптография» полученным ключом. Найдем в прямоугольнике первую букву слова. Выберем букву, которая стоит ниже этой буквы, и запишем ее в качестве первого символа криптограммы. Выполним аналогичные действия для всех оставшихся букв слова. Получим «азбжхвизтъбс» УХЭНЖЧЕС ЛКЦГОРДЩ ФАЬИВЗЮЙ ЪТМБПЫШЯ

Программный код для алгоритма Виженера program vigener; var n,i,r:integer; s,s1,s2:string; begin writeln('vvedite stroku'); readln(s); writeln('vvedite kluch'); кeadln(s1); writeln('vvedite regim: 1-shifrovanie, 2-rasshifrovanie'); readln(r); s2:=''; for i:=1 to length(s) div length(s1)+1 do {размножаем ключ до длины текста} s2:=s2+s1; if r=1 then begin i:=1; while iord('z') then n:=ord('a')+(n-ord('z'))mod 26-1; s[i]:=chr(n); end; end else for i:=1 to length(s) do begin n:=ord(s[i])-(ord(s2[i])-ord('a'))-1; if n

Программный код для алгоритма Полибианский квадрат program polib_kvadrat; var n,i,r,j,k:integer; s,s1:string; a:array[1..5,1..5] of char; begin writeln ('vvedite rasmer kvadrata');}readln(n); writeln ('vvedite bukvi alfavita v kvadrad rasmera',' ',n); for k:=1 to n do begin for j:=1 to n do read(a[k,j]); readln; end; writeln('vvedite stroku'); readln(s); writeln('vvedite regim: 1-shifrovanie, 2-rasshifrovanie'); readln(r); s1:=''; {формируемая новая строка} if r=1 then begin i:=1; while i