Мегаобучалка Главная | О нас | Обратная связь


Математическая модель программы R CRYPTO



2019-12-29 188 Обсуждений (0)
Математическая модель программы R CRYPTO 0.00 из 5.00 0 оценок




 

Математическая модель программы R CRYPTO представляет собой набор математических и алгоритмических преобразований, производимых над данными, для достижения поставленной цели. Основной функцией является функция шифрования. Схему работы алгоритма шифрования можно описать функциями Z = EnCrypt (X, Key) и X = DeCrypt (Z, Key). Для преобразований алгоритм шифрования использует определенный набор биективных (обратимых) математических функций. В качестве биективной функции используется функция сложения. Ключ Key является параметром блочного криптоалгоритма и представляет собой некоторый блок двоичной информации фиксированного размера. Key получается на основе пароля, введенного пользователем. Криптоалгоритм является идеально стойким, если прочесть зашифрованный блок данных можно только перебрав все возможные ключи, до тех пор, пока сообщение не окажется осмысленным. Так как по теории вероятности искомый ключ будет найден с вероятностью 1 / 2 после перебора половины всех ключей, то на взлом идеально стойкого криптоалгоритма с ключом длины N потребуется в среднем 2N-1 проверок. Таким образом, в общем случае стойкость блочного шифра зависит только от длины ключа и возрастает экспоненциально с ее ростом. Кроме этого условия к идеально стойким криптоалгоритмам применяется еще одно очень важное требование, которому они должны обязательно соответствовать. При известных исходном и зашифрованном значениях блока ключ, которым произведено это преобразование, можно узнать также только полным перебором. Ситуации, в которых постороннему наблюдателю известна часть исходного текста, встречаются повсеместно. Это могут быть стандартные надписи в электронных бланках, фиксированные заголовки форматов файлов, довольно часто встречающиеся в тексте длинные слова или последовательности байт. В свете этой проблемы описанное выше требование не является ничем чрезмерным и также строго выполняется стойкими криптоалгоритмами, как и первое.

Таким образом, на функцию стойкого блочного шифра Z = EnCrypt (X, Key) накладываются следующие условия:

1. Функция EnCrypt должна быть обратимой.

2. Не должно существовать иных методов прочтения сообщения X по известному блоку Z, кроме как полным перебором ключей Key.

3. Не должно существовать иных методов определения, каким ключом Key было произведено преобразование известного сообщения X в сообщение Z, кроме как полным перебором ключей.

Выполнение всех этих условий осуществляется следующим образом:

1. Во-первых, осуществляется хеширование пароля. Хеширование выполняет несколько функций. Для того чтобы не заставлять пользователя запоминать ключ – длинную последовательность цифр, был разработан метод преобразования строки символов любой длины (так называемого пароля) в блок байт заранее заданного размера (ключ). Для этой операции используется так называемая хеш-функция. Хеш-функцией называется такое математическое или алгоритмическое преобразование заданного блока данных, которое обладает следующими свойствами:

– Хеш-функция имеет бесконечную область определения,

– Хеш-функция имеет конечную область значений,

– Она необратима,

– Изменение входного потока информации на один бит меняет около половины всех бит выходного потока, то есть результата хеш-функции.

Эти свойства позволяют подавать на вход хеш-функции пароли, то есть текстовые строки произвольной длины на любом национальном языке.

В программе R CRYPTO хеширование пароля осуществляется следующим образом:

Сначала пароль, введенный пользователем, преобразуется в массив байт P [1 .. X].

Где P [1 .. X] – коды символов введенного пользователем пароля (кодировка ANSI – Windows-1251). Фрагмент таблицы символов ANSI представлен в таблице 2.1.

X – длина пароля (в символах).


Таблица 2.1 Фрагмент таблицы символов ANSI (Windows-1251)

Код символа Символ Код символа Символ Код символа Символ
32   58 : 123 [
33 ! 59 ; 124 |
34 " 60 < 125 ]
35 # 61 = 126 ~
36 $ 62 > 127  
37 % 63 ? 192 А
38 & 64 @
39 65 A 223 Я
40 ( 224 а
41 ) 90 Z
42 * 91 [ 255 я
43 + 92 \    
44 , 93 ]    
45 - 94 ^    
46 . 95 _    
47 / 96    
48 0 97 a    
   
57 9 122 z    

 

Затем на основании пароля получается ключ:

K [1 .. 255] – ключ.

K [i] = (P [1] + P [2] + … + P [n]) + P [i], где i = 1 .. X (2.1)

Если X < 255, тогда производятся следующие преобразования:

K [X + 1 .. 255] = 114     (2.2)

114 – код символа «r»

Z = K [1]        (2.3)

Если K [i] = Z,

то K [i] = K [i – 1] + Z,     (2.4)

иначе Z = K [i], где i = 2 .. 255   (2.5)

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

Все алгоритмы сжатия данных качественно делятся на:

– Алгоритмы сжатия без потерь, при использовании которых данные на приемной восстанавливаются без малейших изменений,

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

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

Из исходного файла считывается блок информации объемом 255 байт. Этот блок информации представляется в матрицы (таблица 2.2).

 

Таблица 2.2 Матрица блока исходной информации

Байт №1 Байт №2 Байт №255
M1,1 M2,1 M255,1
M1,2 M2,2 M255,2
M1,3 M2,3 M255,3
M1,4 M2,4 M255,4
M1,5 M2,5 M255,5
M1,6 M2,6 M255,6
M1,7 M2,7 M255,7
M1,8 M2,8 M255,8

 

Где Mi,j – бит информации.

Затем осуществляется попытка сжатия строк M1,j … M255,j.

Эти строки представляется в виде количества подряд идущих нулей (0) или единиц (1). Если полученная таким образом информация занимает объем больше 32 байт, тогда эта строка представляется в исходном виде. Если общий объем блока перекодированной информации превышает 255 байт, тогда весь исходный блок представляется в исходном виде без изменений. После осуществления всех этих преобразований происходит непосредственно шифрование информации.

3. Для преобразования информации алгоритм шифрования использует определенный набор биективных (обратимых) математических функций. В качестве биективной функции в разрабатываемой программе используется функция сложения.

Функция EnCrypt выглядит следующим образом:

Z [i] = S [i] + K [j] + Z [i – 1],   (2.6)

Где Z – зашифрованный байт,

S – исходный байт,

K – ключ (j = 1 .. 255).

Целостность информации – это гарантия того, что информация сейчас существует в ее исходном виде, то есть при ее хранении или передаче не было произведено несанкционированных изменений. Нарушение этой категории называется фальсификацией сообщения. Для решения этой проблемы в программе R CRYPTO используется электронная цифровая подпись. На основе исходного файла вычисляется хеш-функция – это число, которое более или менее уникально характеризует исходный файл. В принципе, можно найти другой текст, который дает то же самое значение хеш-функции, но изменить в исходном файле десять-двадцать байт так, чтобы текст остался полностью осмысленным, да еще и изменился в выгодную нам сторону (например, уменьшил сумму к оплате в два раза) – чрезвычайно сложно. Электронная подпись состоит из 10 байт. Структура используемой электронной цифровой подписи представлена в таблице 2.3.


Таблица 2.3 Структура электронной цифровой подписи

S12

S22

S13

S23

S33

S15

S25

S35

S45

S55
               

 

S12 – сумма первой половины всех байт исходного файла (1-ый байт электронной цифровой подписи),

S22 – сумма второй половины всех байт исходного файла (2-ой байт электронной цифровой подписи),

S13 – сумма первой 1 / 3 всех байт исходного файла (3-ий байт электронной цифровой подписи),

S23 – сумма второй 1 / 3 всех байт исходного файла (4-ый байт электронной цифровой подписи),

S33 – сумма третьей 1 / 3 всех байт исходного файла (5-ый байт электронной цифровой подписи),

S15 – сумма первой 1 / 5 всех байт исходного файла (6-ой байт электронной цифровой подписи),

S25 – сумма второй 1 / 5 всех байт исходного файла (7-ой байт электронной цифровой подписи),

S35 – сумма третьей 1 / 5 всех байт исходного файла (8-ой байт электронной цифровой подписи),

S45 – сумма четвертой 1 / 5 всех байт исходного файла (9-ый байт электронной цифровой подписи),

S55 – сумма пятой 1 / 5 всех байт исходного файла (10-ый байт электронной цифровой подписи).

S12 + S22 = S13 + S23 + S33 = S15 + S25 + S35 + S45 + S55

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




2019-12-29 188 Обсуждений (0)
Математическая модель программы R CRYPTO 0.00 из 5.00 0 оценок









Обсуждение в статье: Математическая модель программы R CRYPTO

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (188)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)