CRYPTO.MN
ENCRYPTION

AES

AES нь 128 битийн блок дээр ажилладаг, 128, 192 эсвэл 256 битийн түлхүүр ашиглан мэдээллийг шифрлэж тайлдаг симметрик блок шифр юм.

Стандарт
NIST FIPS 197
Түлхүүрийн урт
128 / 192 / 256 бит
Nonce-ийн урт
Горимоос хамаарна
Баталгаажуулах tag
Горимоос хамаарна

Чухал анхааруулга

  • AES нь өөрөө түлхүүр солилцоо болон хэрэглэгчийн таних баталгаажуулалтыг шийддэггүй.
  • AES-GCM зэрэг баталгаажуулалттай горим ашиглаж, нэг түлхүүрийн хүрээнд nonce давтагдахгүй байхыг хангана.
  • ECB горимоос ерөнхий зориулалтын шинэ системд зайлсхий.
  • Түлхүүрийг хамгаалалтгүй хадгалах, өөрөө криптографийн горим зохиох нь системийн аюулгүй байдлыг алдагдуулж болно.

Юу вэ?

AES (Advanced Encryption Standard) нь мэдээллийн нууцлалыг хамгаалах зориулалттай симметрик блок шифр юм. Шифрлэх болон тайлахдаа ижил нууц түлхүүр ашигладаг. AES нь 128 битийн блок боловсруулж, AES-128, AES-192, AES-256 гэсэн хувилбартай. Эдгээр нь түлхүүрийн уртаараа ялгаатай бөгөөд файл, диск, өгөгдлийн сан болон сүлжээний мэдээллийг хамгаалахад өргөн ашиглагддаг.

Хэрхэн ажилладаг вэ?

AES эх мэдээллийг 128 битийн блокуудаар боловсруулдаг. Түлхүүрээс round key буюу үе шат бүрд ашиглах түлхүүрүүдийг гарган авна. Дараа нь SubBytes, ShiftRows, MixColumns, AddRoundKey хувиргалтуудыг давтан хэрэглэж шифрлэсэн блок үүсгэнэ. AES-128 нь 10, AES-192 нь 12, AES-256 нь 14 үе шаттай. Их хэмжээний мэдээллийг шифрлэхдээ AES-GCM зэрэг горим ашиглаж, мэдээллийг хэрхэн боловсруулах болон өөрчлөлтийг хэрхэн илрүүлэхийг тодорхойлно.

Хаана ашиглагддаг вэ?

  • Файл шифрлэлт
  • дискний шифрлэлт
  • өгөгдлийн сангийн хамгаалалт
  • TLS холболт
  • нөөц хуулбарын хамгаалалт
  • AES-GCM ашигладаг програмууд

Түгээмэл алдаа

  • Нууц түлхүүрийг код дотор шууд хадгалах
  • Криптографийн түлхүүрийг Math.random() ашиглан үүсгэх
  • AES-ийг түлхүүр солилцооны алгоритм гэж үзэх
  • ECB горимыг ерөнхий зориулалтын шифрлэлтэд ашиглах
  • AES-GCM горимд нэг түлхүүрийн хүрээнд nonce давтан ашиглах
  • Authentication tag-ийн шалгалтыг алгасах
  • Шифрлэлт хийсэн учраас мэдээлэл автоматаар өөрчлөлтөөс хамгаалагдсан гэж үзэх
  • Өөрийн зохиосон шифрлэлтийн горим ашиглах

Жишээ код

Python
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
import os

# 256 битийн түлхүүр үүсгэх
key = AESGCM.generate_key(bit_length=256)
cipher = AESGCM(key)

# AES-GCM-д түгээмэл ашигладаг 96 битийн nonce
nonce = os.urandom(12)

plaintext = b"Nuuts medeelel"
aad = b"message-v1"

# Шифрлэлт: ciphertext болон authentication tag
encrypted = cipher.encrypt(nonce, plaintext, aad)

# Тайлах ба tag-ийг автоматаар шалгах
decrypted = cipher.decrypt(nonce, encrypted, aad)

assert decrypted == plaintext
print("Амжилттай тайлж, баталгаажууллаа")

Эх сурвалж

ENCRYPTION ангилалын бусад алгоритм