TGViewer
Python RU Python RU @pro_python_code · 12.4K subscribers
Post #1801 2.16K
# 🔐 Современные алгоритмы шифрования: обзор и примеры

Шифрование — основа информационной безопасности. От мессенджеров и банковских систем до VPN — всё держится на надёжных алгоритмах шифрования.

Сегодня используются десятки алгоритмов, но среди них выделяются несколько актуальных, проверенных и широко применяемых. Давайте разберём их понятным языком.

---

## 1️⃣ AES (Advanced Encryption Standard)

AES — стандарт симметричного блочного шифрования. Принят в 2001 году, заменил DES. Используется один ключ для шифрования и дешифрования.

- Блок данных: 128 бит
- Ключи: 128, 192 или 256 бит
- Количество раундов: 10, 12, 14

### 💡 Где используется?

- HTTPS
- VPN (OpenVPN, WireGuard)
- ZIP-архивы
- WhatsApp, Signal

### 🐍 Пример на Python (PyCryptodome):


from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad

key = get_random_bytes(16) # 128-битный ключ
cipher = AES.new(key, AES.MODE_CBC)

data = b"Secret message"
padded = pad(data, AES.block_size)
encrypted = cipher.encrypt(padded)

print("Encrypted:", encrypted)

# Для дешифрования нужен IV
iv = cipher.iv
cipher_dec = AES.new(key, AES.MODE_CBC, iv)
decrypted = unpad(cipher_dec.decrypt(encrypted), AES.block_size)

print("Decrypted:", decrypted.decode())


2️⃣ RSA (Rivest–Shamir–Adleman)

RSA — алгоритм с асимметричными ключами (есть открытый и закрытый ключи). Подходит для безопасной передачи данных и цифровых подписей.

- Размер ключей: от 1024 до 4096 бит
- Основан на сложности факторизации больших чисел

💡 Где используется?

- TLS/SSL
- PGP/GPG
- Электронные подписи

### 🐍 Пример на Python (cryptography):


from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import hashes

# Генерация ключей
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = private_key.public_key()

message = b"Secret message"

# Шифрование
ciphertext = public_key.encrypt(
message,
padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
)

print("Encrypted:", ciphertext)

# Дешифрование
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
)

print("Decrypted:", plaintext.decode())


3️⃣ ChaCha20 (с поточной схемой Poly1305)

ChaCha20-Poly1305 — алгоритм поточного шифрования с аутентификацией. Быстрее AES на мобильных устройствах и устойчив к атакам на побочные каналы.

- Ключ: 256 бит
- Потоковый шифр + аутентификация (AEAD)

### 💡 Где используется?

- TLS 1.3
- Google Chrome
- WhatsApp
- OpenSSH

### 🐍 Пример на Python (cryptography):


from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305
import os

key = ChaCha20Poly1305.generate_key()
nonce = os.urandom(12)

chacha = ChaCha20Poly1305(key)
data = b"Secret message"

# Шифрование
encrypted = chacha.encrypt(nonce, data, None)
print("Encrypted:", encrypted)

# Дешифрование
decrypted = chacha.decrypt(nonce, encrypted, None)
print("Decrypted:", decrypted.decode())



## 🏆 Как выбрать алгоритм?

| Задача | Алгоритм |
|------------------------------|------------------|
| Шифрование файлов | AES |
| Безопасная передача ключа | RSA |
| Быстрое шифрование в сети | ChaCha20-Poly1305|
| Цифровая подпись | RSA, ECDSA |

✍️ Вывод

- Для симметричного шифрования лучше использовать AES или ChaCha20.
- Для обмена ключами и подписей — RSA или эллиптические алгоритмы (ECDSA, ECDH).
- Все алгоритмы нужно использовать в правильных режимах и с дополнительными проверками целостности (например, GCM, Poly1305).

Современные алгоритмы — это не просто "шифрование", а комплексная система защиты данных. Выбирайте подходящий инструмент под задачу!

👉Подробнее
  • 👍 7
  • 🔥 2
  • ❤ 1
More from @pro_python_code
  1. Sep 22, 202610 агентов Claude теоретически обошли алгоритм Дейкстры В Vals AI запустили 10 агентов Cla…
  2. Sep 22, 2026🌟 Prism ML собрала тернарную версию Qwen3.8-27B Bonsai 2 27B - сжатая Qwen3.8-27B, котора…
  3. Sep 21, 2026Kubernetes NodeLocal DNSCache: ускоряем DNS-запросы 🚀 Без NodeLocal DNSCache DNS-запрос о…
  4. Sep 13, 2026🔥 Один из лучших обучающих курсов на StepiK по SQL SQL можно знать годами и всё равно тер…
  5. Sep 11, 2026⚡️ DeepSeek открыла веса V4.1-Flash DeepSeek выложила свежайшую DeepSeek-V4.1-Flash, мульт…
  6. Sep 11, 2026Команды ждут тебя на треке программирование роботов на МТС True Tech Champ 2026 — всеросси…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →