UTM LOGO

Course Work

Carpov Serghei

Немного Теории:

1. Гаммирование

Гаммирование (смешивание с ключом) основано на побитном сложении по модулю 2 (в соответствии с логикой ИСКЛЮЧАЮЩЕЕ ИЛИ) исходного сообщения с заранее выбранной двоичной последовательностью (ключом). Компактным представлением ключа могут служить числа в десятичной системе счисления или некоторый текст.

В данном случае рассматриваются внутренние коды символов – таблица ASCII

Операция суммирования по модулю 2 (ИСКЛЮЧАЮЩЕЕ ИЛИ) является обратимой, так что при сложении с тем же ключом зашифрованного сообщения получается исходный текст (происходит дешифрование). В качестве ключа могут использоваться константы типа или e. Наибольшую устойчивость к дешифрованию может обеспечить применение ключа с бесконечной длиной, которая образована генератором случайных последовательностей.

2. Алгоритм RSA

RSA относится к асимметричным шифрам. В асимметричных шифрах используются два ключа – открытый и закрытый, которые создаются получателем сообщения. Открытые ключи доступны всем желающим и передаются по незащищённому каналу связи. Отправляемое сообщение шифруется открытым ключом получателя. Дешифрируется сообщение при его получении закрытым ключом получателя. Обратим внимание, что дешифрировать сообщение не может даже отправитель, что и не требуется. Открытый и закрытый ключи математически связаны друг с другом таким образом, что сообщение, зашифрованное одним ключом из пары, можно дешифрировать только вторым ключом из этой же пары ключей.

Разобьём процесс шифрования на 3 этапа:

1) Создание публичного ключа

2) Создание приватоно ключа

3) Шифрование по открытому ключу

Создание открытого ключа начинается с выбора двух любых простых числел p и q, чтобы получить число n

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199…

Далее вычисляется функция Эйлера

Следующий шаг - вычисление числа e Данное число должно быть выбрано по опреденённым критериям:
1) Число должно быть простым.
2) Число должно быть больше единицы, но меньше φ.
1 < e < φ(n)
3) Число должно быть взаимно простым с φ(n)

После данных вычислений, мы получаем открытый ключ, в ввиде пары чисел:
{e,n}

Теперь нам не хватает всего одного числа d для формирования закрытого (приватного) ключа.
Его находят из следующего выражения:

Таким образом, мы получаем пару чисел, представляющих закрытый ключ

{d,n}

Шифрование

Дешифровка

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167

p
q
p =
q =
n =
e =
d =

Public key: {,}
Private key: {,}

Зашифрованная строка:
Расшифрованная строка: