Криптография для начинающих

Криптография для начинающих

@Eteriass

Хайл гидра господа. Заренее извиняюсь за отсутствие, были важные дела. Но щас не об этом. Как вам всем уже наверняка растрындели , криптография, это наука которая направлена на защиту информации методом шифрования этой самой информации.

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

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

Немного заебу вас терминологией, это необходимо.


И так, ключевые фигуры в нашем театре это отправитель и получатель, думаю вы поняли кто из них кто. Дальше у нас есть сообщение, которое наш отправитель хочет передать получателю, но передать так, чтобы добрые дяденьки в пагонах не смогли прочитать это сообщение, разумеется ради блага нашего отправителя. Но наш отправитель на половом органе вертел это благо, и остается при своих намерениях.


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


Наука шифрования называется криптографией, а специалисты которые ее разлизуют , называются криптографами. Наука которая изучает взлом шифротекст называется Криптоанализ, а специалисты в этой науке криптоаналитиками. Отрасль науки, которая охватывает Криптоанализ и Криптографию называется Криптологией, а люди которые ей занимаются - криптологами. Вывод: УЧИТЕ МАТЕМАТИКУ. (В жизнь бы не подумал что скажу это)

Шифроваие и дешифрование

А теперь немного математики


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

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


Буквой Ф1 обозначим функцию шифрования. Шифрование состоит из двух взаимно обратных процессов: зашифрование и дешифрование. Оба этих процесса по своей сути являются математическими функциями.


Буквой Ф2 обозначим функцию дешифрования, и в итоге получим:


Ф1(И) = Ш - тоесть, функция шифрования действуя на исходные данные создает зашифрованные данные. И обратный процесс :

Ф2(Ш) = И - тоесть, функция дешифровки действуя на зашифрованные данные восстановливает исохдные данные.


Так как смыслом шифрования и дешифрования является последующее восстановление исходных данных, должно быть соблюдено следующее равенство :


Ф2(Ф1(М)) = М


Потерпите еще немного, расскажу про алгоритм шифрования и приступим к практике.

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

Вот, видите, не так страшен черт, как его малюют. Не такая уж и непонятная эта пресловутая Криптография. Ладно, расскажу про шифр цезаря и закончим на сегодня.

И так, шифр Цезаря

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


Схема

Например, если вы хотите зашифровать "Привет это Этериасс" с ключом 5, у вас получится " Фхнжйч вчу Вчйхнецц "

Тоесть каждая буква смещается на пять шагов вперед при шифровании, и пять шагов назад для дешифровки.

А теперь накидаем код на питоне и я опять пропаду на месяц.

Код выглядит так. Думаю все понятно, но на всякий случай покажу формулу.

Первое уравнение это шифрование, второе соответственно дешифрование.

alpha = ' abcdefghijklmnopqrstuvwxyz'

n = int(input())

s = input().strip()

res = ''

for c in s:

res += alpha[(alpha.index(c) + n) % len(alpha)]

print('Result: "' + res + '"')

(Код )

На этом пожалуй все и не забывайте, что статья написана только для ознокомления, и вообще все это фотошоп, монтаж, бред, бдсм и другие умные слова. А автор писал под диктовку высших сил, и в душе не ебет че только что произошло, вот. А с вами был чумной доктор, чей ник в 2020-ом году звучит уже не так весело. Увидимся, ну, когда нибудь.

Report Page