CRYPTO.MN
Анхан

Орчин үеийн системүүд криптографийг хэрхэн хослуулдаг вэ?

Hybrid Cryptography нь AES болон Public-key cryptography зэрэг алгоритмыг хослуулан мэдээллийг үр ашигтай, аюулгүй хамгаалах арга юм. Энэ хичээлээр файл шифрлэх жишээ, AES түлхүүрийг хамгаалах зарчим, Digital Signature болон HTTPS/TLS холболт криптографийг хэрхэн хослуулдгийг судална.

Зохиогч:
Turmandakh
Нийтэлсэн:
5 мин унших
hybrid-cryptography

Hybrid Cryptography гэж юу вэ?

Бодит системүүд мэдээллийг хамгаалахын тулд ихэвчлэн ганц алгоритм ашигладаггүй. Харин хэд хэдэн криптографийн алгоритмыг өөр өөр зорилгоор хослуулан ашигладаг.

Үүнийг Hybrid Cryptography буюу хосолмол криптограф гэж нэрлэнэ.

Жишээлбэл:

  • AES — их хэмжээний мэдээллийг хурдан шифрлэх
  • Public-key cryptography — түлхүүр тохиролцох, түлхүүр хамгаалах эсвэл оролцогчийн жинхэнэ эсэхийг баталгаажуулах
  • Hash function — мэдээллийн хурууны хээ үүсгэх
  • Digital Signature — мэдээллийн эх сурвалж болон өөрчлөгдөөгүй байдлыг шалгахад туслах

Эдгээр алгоритм өөр өөр үүрэгтэй. Тэдгээрийг зөв хослуулснаар үр ашигтай, аюулгүй систем бүтээх боломжтой.

Яагаад зөвхөн AES эсвэл RSA ашигладаггүй вэ?

AES — хурдан шифрлэлт

AES нь симметрик шифрлэлтийн алгоритм. Шифрлэх болон тайлахад нэг ижил нууц түлхүүр ашиглана.

Давуу тал:

  • Их хэмжээний файл, өгөгдлийг хурдан шифрлэнэ.
  • AES-128, AES-192, AES-256 зэрэг түлхүүрийн хэмжээтэй.

Гол асуудал нь хоёр тал ижил нууц түлхүүрийг хэрхэн аюулгүй олж авах, солилцох вэ гэдэгт оршино.

RSA — Public-key cryptography

RSA нь public key болон private key гэсэн түлхүүрийн хос ашигладаг.

Жишээлбэл, RSA-OAEP ашиглан AES түлхүүрийг хүлээн авагчийн public key-ээр шифрлэж болно. Харин хүлээн авагч private key-ээрээ уг түлхүүрийг тайлна.

Гэхдээ RSA нь их хэмжээний файл шифрлэхэд AES шиг үр ашигтай биш. Мөн RSA ашиглах нь дангаараа илгээгчийн жинхэнэ эсэхийг баталгаажуулахгүй.

Иймээс хоёр алгоритмын давуу талыг хослуулах нь илүү тохиромжтой.

Файл шифрлэх Hybrid Cryptography-ийн жишээ

Хэрэглэгч A нууц файлыг хэрэглэгч B рүү илгээх гэж байна гэж төсөөлье.

Алхам 1. AES түлхүүр үүсгэх

Илгээгч файл бүрт зориулж криптографийн аюулгүй санамсаргүй үүсгэгчээр AES түлхүүр үүсгэнэ.

text
Cryptographically Secure Randomness
                 ↓
           AES Key (256-bit)

Энэ түлхүүрийг зөвхөн зөвшөөрөгдсөн талууд ашиглах боломжтой байхаар хамгаална.

Алхам 2. Файлыг AES-GCM-ээр шифрлэх

Файл болон AES түлхүүрийг ашиглан шифрлэнэ.

text
File + AES Key + Nonce
              ↓
           AES-GCM
              ↓
Ciphertext + Authentication Tag

AES-GCM нь мэдээллийн нууцлалыг хангахаас гадна ciphertext өөрчлөгдсөн эсэхийг шалгах боломж олгодог.

Nonce нь тухайн түлхүүрийн хүрээнд давтагдахгүй байх шаардлагатай. Nonce болон Authentication Tag-ийг шифрлэсэн файлтай хамт дамжуулж болно. Эдгээр нь ихэнх тохиолдолд нууц байх шаардлагагүй.

Алхам 3. AES түлхүүрийг хүлээн авагчид зориулан хамгаалах

Хүлээн авагч B-ийн public key-г ашиглан AES түлхүүрийг RSA-OAEP зэрэг тохирох схемээр шифрлэж болно.

text
AES Key + B-ийн Public Key
              ↓
          RSA-OAEP
              ↓
       Protected AES Key

Ингэснээр AES түлхүүрийг шууд илгээхгүй. B нь өөрийн private key-ээр хамгаалагдсан AES түлхүүрийг тайлж авч чадна.

Алхам 4. Файл болон түлхүүрийг дамжуулах

Илгээгч дараах өгөгдлийг хүлээн авагчид дамжуулна:

  • Шифрлэсэн файл буюу ciphertext
  • Хамгаалагдсан AES түлхүүр
  • Nonce
  • Authentication Tag

Хүлээн авагч private key-ээр AES түлхүүрийг тайлж аваад AES-GCM ашиглан файлыг сэргээнэ. Хэрэв Authentication Tag шалгалт амжилтгүй болбол файлыг хүчинтэй гэж үзэж болохгүй.

Алхам 5. Digital Signature нэмэх

Хэрэв илгээгчийн хэн болохыг баталгаажуулах шаардлагатай бол тохирох digital signature ашиглаж болно.

text
Required Data
     ↓
Sender's Private Key
     ↓
Digital Signature

Хүлээн авагч илгээгчийн баталгаажсан public key-ээр гарын үсгийг шалгана.

Гарын үсэг нь ямар өгөгдөлд тооцоологдсоноос хамаарч ciphertext, хамгаалагдсан түлхүүр эсвэл тэдгээрийг багтаасан тодорхой мессежийн бүтцийг хамарч болно. Бодит системд гарын үсгийн хамрах хүрээг зөв тодорхойлох хэрэгтэй.

Анхаарах зүйл: Public key үнэхээр B-д харьяалагддаг эсэх, мөн signature-ийн public key үнэхээр A-д харьяалагддаг эсэхийг найдвартай аргаар баталгаажуулах шаардлагатай.

HTTPS/TLS Hybrid Cryptography-г хэрхэн ашигладаг вэ?

Бид вебсайт руу HTTPS ашиглан холбогдоход криптографийн хэд хэдэн механизм хамтран ажилладаг.

Ерөнхийдөө TLS холболт дараах зарчимтай:

text
Client ↔ Server
       ↓
Server Authentication
       ↓
Key Agreement
       ↓
Session Keys
       ↓
Symmetric Encryption
       ↓
Protected Communication

Server Authentication

Сервер гэрчилгээгээрээ өөрийн таних мэдээллийг баталгаажуулдаг. Клиент гэрчилгээг шалгаж, холбогдож буй серверийн жинхэнэ эсэхийг нягтална.

Key Agreement

Орчин үеийн TLS хувилбарууд, тухайлбал TLS 1.3, ихэвчлэн ECDHE зэрэг түр зуурын түлхүүр тохиролцох механизмыг ашиглан нийтлэг нууц утга гарган авдаг.

Энэ үед session key-г энгийн текстээр сүлжээгээр илгээдэггүй. Харин хоёр тал тохиролцсон нууц утгаас түлхүүр гарган авна.

Session Keys

Тохиролцсон нууц утгаас KDF ашиглан холболтын шифрлэлтийн түлхүүрүүдийг гарган авна.

Symmetric Encryption

Холболт тогтсоны дараа ихэнх өгөгдлийг AES-GCM зэрэг симметрик шифрлэлтийн алгоритмаар хамгаална.

Тиймээс HTTPS нь веб хуудасны бүх өгөгдлийг RSA-аар шифрлэдэг гэсэн үг биш. TLS-ийн яг ямар алгоритм ашиглах нь протоколын хувилбар болон тохиргооноос хамаарна.

Hybrid Cryptography ба Key Management

Криптографийн алгоритм зөв сонгосон ч түлхүүрийн удирдлага буруу байвал систем аюулгүй биш хэвээр байна.

Key Management нь дараах үйл ажиллагааг хамарна:

  • Түлхүүрийг аюулгүй үүсгэх
  • Хандалтыг хязгаарлан хадгалах
  • Түлхүүрийг зөв хэрэглэгчтэй холбож баталгаажуулах
  • Түлхүүрийн ашиглалтын хугацааг удирдах
  • Шаардлагатай үед түлхүүрийг солих буюу хүчингүй болгох

Жишээлбэл, AES түлхүүрийг RSA-аар хамгаалсан байсан ч хүлээн авагчийн private key алдагдвал системийн хамгаалалт эрсдэлд орно.

Иймээс түлхүүрийн хамгаалалт, баталгаажуулалт, протокол болон хэрэгжүүлэлт нь хоорондоо уялдаатай байх ёстой.

Hybrid Cryptography-ийн гол давуу тал

Давуу талТайлбарӨндөр хурдИх хэмжээний өгөгдлийг симметрик алгоритмаар үр ашигтай шифрлэнэТүлхүүрийн солилцооPublic-key механизм эсвэл key agreement ашиглан түлхүүр тохиролцоноБаталгаажуулалтГэрчилгээ болон digital signature зэрэг механизмаар таних мэдээллийг шалганаӨргөтгөх боломжАлгоритм бүрийг өөрийн зориулалтаар сонгож болно

Гэхдээ алгоритмуудыг зүгээр нэг хослуулах нь хангалтгүй. Протокол, түлхүүрийн удирдлага болон хэрэгжүүлэлт нь зөв байх шаардлагатай.

Дүгнэлт

Hybrid Cryptography нь AES болон Public-key cryptography зэрэг механизмыг өөр өөр үүрэгт ашиглан нэг системд нэгтгэдэг арга юм.

Файл шифрлэхэд AES-GCM-ээр файлыг шифрлэж, AES түлхүүрийг хүлээн авагчид зориулан хамгаалж болно. Харин HTTPS/TLS нь серверийн баталгаажуулалт, түлхүүр тохиролцоо болон симметрик шифрлэлтийг нэг протоколд уялдуулдаг.

Санах гол санаа: Аюулгүй криптографийн систем нь зөвхөн хүчтэй алгоритмаас бус, түлхүүрийн удирдлага, протокол, баталгаажуулалт болон зөв хэрэгжүүлэлтээс бүрдэнэ.

Бататгах асуулт

Асуулт 1/3

Hybrid Cryptography ашиглахын гол зорилго юу вэ?

Энэ нийтлэл танд таалагдсан уу?