CRYPTO.MN
Анхан

Diffie–Hellman ба ECDH Key Agreement

Diffie–Hellman нь shared secret тохиролцдог боловч нөгөө тал үнэхээр хүссэн хүн мөн эсэхийг дангаараа батлахгүй. Authentication энэ эрсдэлийг бууруулахад тусалдаг.

Зохиогч:
Turmandakh
Нийтэлсэн:
2 мин унших
Diffie–Hellman ба ECDH Key Agreement

Key Agreement гэж юу вэ?

Бат, Болор хоёр хоорондоо нууц мэдээлэл солилцох гэж байна гэж бодъё. Тэд мэдээллээ AES ашиглан шифрлэхийн тулд ижил нууц түлхүүртэй байх шаардлагатай.

Гэвч энэ түлхүүрийг интернетээр шууд илгээвэл халдагч замаас нь олж авч болзошгүй.

Diffie–Hellman нь нууц түлхүүрийг шууд дамжуулахгүйгээр хоёр тал ижил нууц утга тооцоолох боломж олгодог арга юм. Үүнийг түлхүүр тохиролцох (Key Agreement) гэж нэрлэнэ.

Diffie–Hellman хэрхэн ажилладаг вэ?

Бат болон Болор тус бүр өөрийн хувийн болон нийтийн түлхүүртэй байна.

  • Private Key: Нууц хадгална.
  • Public Key: Нөгөө талтайгаа солилцож болно.

Ажиллах зарчим:

  1. Бат өөрийн түлхүүрийн хосыг үүсгэнэ.
  2. Болор мөн өөрийн түлхүүрийн хосыг үүсгэнэ.
  3. Тэд нийтийн түлхүүрүүдээ хоорондоо солилцоно.
  4. Бат өөрийн private key болон Болорын public key-г ашиглан shared secret тооцоолно.
  5. Болор өөрийн private key болон Батын public key-г ашиглан мөн shared secret тооцоолно.
text
Бат: Private A + Public B
              ↓
         Shared Secret

Болор: Private B + Public A
              ↓
         Shared Secret

       Үр дүн ижил байна

Хоёр талын тооцоолсон үр дүн ижил байдаг ч shared secret өөрөө сүлжээгээр дамждаггүй. Халдагч нийтийн түлхүүрүүдийг олж авсан ч хувийн түлхүүргүйгээр shared secret-ийг тооцоолоход маш хэцүү байхаар уг арга зохион бүтээгдсэн.

Shared Secret-ийг юунд ашигладаг вэ?

Shared secret нь шууд AES-ийн түлхүүр болгон ашиглахад зориулагдсан бэлэн утга байх албагүй.

Практикт түүнийг Key Derivation Function (KDF) ашиглан шаардлагатай хэмжээтэй криптографийн түлхүүр гарган авахад хэрэглэдэг. Дараа нь уг түлхүүрийг AES зэрэг симметрик алгоритмаар мэдээлэл шифрлэхэд ашиглаж болно.

Ингэснээр хоёр тал нууц түлхүүрийг сүлжээгээр шууд илгээхгүйгээр шифрлэлтэд ашиглах ижил түлхүүртэй болж чадна.

ECDH гэж юу вэ?

ECDH нь Elliptic Curve Diffie–Hellman гэсэн үгийн товчлол. Энэ нь эллиптик муруйн математикт суурилан хоёр тал shared secret тооцоолох боломж олгодог Diffie–Hellman-ийн хувилбар юм.

ECDH-ийн давуу тал:

  • Харьцангуй жижиг түлхүүр ашигладаг.
  • Тооцооллын хувьд үр ашигтай.
  • Аюулгүй холболт үүсгэхэд өргөн хэрэглэгддэг.

Жишээлбэл, HTTPS зэрэг аюулгүй холболтын үед түлхүүр тохиролцох механизм ашиглан холболтын шифрлэлтийн түлхүүрүүдийг үүсгэж болно.

Чухал асуудал: Authentication

Diffie–Hellman болон ECDH нь shared secret тохиролцоход тусалдаг ч нөгөө тал үнэхээр таны харилцахыг хүссэн хүн мөн эсэхийг дангаараа баталгаажуулдаггүй.

Жишээлбэл, халдагч Бат болон Болорын дунд орж, тал бүртэй тусдаа түлхүүр тохиролцож болно. Ингэснээр Бат Болортой шууд холбогдсон гэж бодсон ч мэдээлэл халдагчаар дамжих эрсдэлтэй. Үүнийг Man-in-the-Middle (MITM) халдлага гэдэг.

Үүнээс сэргийлэхийн тулд бодит системүүд key agreement-ийг дараах механизмтай хослуулдаг:

  • Дижитал гарын үсэг;
  • Гэрчилгээ (Certificate);
  • Нийтийн түлхүүрийн баталгаажуулалт.

Гол санаа: ECDH нь нууц утгыг тохиролцоход, authentication нь харилцаж буй талын жинхэнэ эсэхийг шалгахад тусалдаг.

Дүгнэлт

  • Diffie–Hellman нь нууц утгыг шууд дамжуулахгүйгээр shared secret тохиролцох боломж олгодог.
  • ECDH нь эллиптик муруйн математик ашигладаг хувилбар юм.
  • Shared secret-ээс KDF ашиглан шифрлэлтийн түлхүүр гарган авч болно.
  • Нийтийн түлхүүрүүдийг солилцох нь нөгөө талын жинхэнэ эсэхийг дангаараа батлахгүй.
  • MITM халдлагаас хамгаалахын тулд authentication шаардлагатай.

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

Асуулт 1/3

Diffie–Hellman-ийн үндсэн зорилго юу вэ?

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