Saturday, March 09, 2013

Шифрлэлтийн тухайд (cryptography)

Өмнөх бичлэгийг бичиж суухдаа түнэр харанхуйг зүхэж суухаар нэг ч гэсэн лаа асаа гэдэг зарчим санаанд орж дэмий шүүмжилж байхаар салбарын нэг ч гэсэн оюутан олж уншвал далайд дусал нэмэр юм болов уу гээд жаахан онол бичих гэж үзлээ.
Хүн төрөлхтөн анх үүссэн цагаасаа л нэг нэгнээсээ ямарваа нэг мэдээлэл нуух шаардлагатай тулж иржээ. Дайн тулаантай үед нэгэндээ захиа хүргүүлэхдээ элч нь дундаасаа олзлогдвол захиаг тайлж уншихааргүй болгох гэж анх шифрлэлт үүсчээ. Энэ талаар Б.Ринчен гуайн “Нууцыг задруулсан захиа” зохиолд “Хэлэх үг элчийн аманд” гэдэг зарчмаар дурьдсан байдаг. Эртнээс ашиглаж ирсэн хамгийн энгийн шифрлэлтийн жишээ гэвэл зурвасны үсэгнүүдийн байрыг солих байж болно.
Тухайлбал: БОЛД гэсэн зурвасыг цагаан толгойн байрлалаар бүх үсэгнүүдийг нь 2 байр сэлгэн хойш нь шилжүүлвэл Б үсэг Г болж О үсэг П болно. Харин Л үсэг Н болж Д үсэг Ё болно. Тэгэхээр БОЛД гэсэн зурвасыг илгээгч маань энэ зарчмаар зурвасаа нууцалвал ГПНЁ гэсэн үг болох бөгөөд хөндлөнгийн этгээд энэхүү зурвасыг олж авлаа гэхэд ямар ч утгагуй үсэгний комбинаци болж харагдана. Харин зурвасыг хүлээж авч буй тал энэхүү зурвасны үсэгнүүдийг цагаан толгойн дарааллаар аль чигт нь хэдэн удаа шилжүүлж байж үг болгож тайлж унших боломжтой гэдгийг мэдэх шаардлагатай. Манай тохиолдолд хүлээн авагч тал зүүн тийш нь хоёр удаа шилжүүлэх ёстой бөгөөд үүнийг криптографийн түлхүүр гэнэ.
Орчин үед шифрлэлт маань криптографи хэмээх бүхэл бүтэн шинжлэх ухаан болон хөгжжээ. Мэдээллийг шифрлэх үндсэн хоёр төрлийн алгоритм бий болсоноос компьютерийн шинжлэх ухаан эдгээрийг хослуулан ашиглах болжээ. Энэхүү хоёр төрөл нь:
  1. Симетрик (symmetric) буюу тэгш хэмт алгоритм
  2. Асиметрик буюу тэгш бус хэмт алгоритм
Симметрик алгоритмийн хувьд зурвасыг илгээж буй болон хүлээж авч буй талууд адилхан түлхүүр ашиглах ёстой. Өөрөөр хэлбэл өмнө дурьдсан жишээний дагуу илгээгч тал цагаан толгойн дарааллын дагуу баруун тийш хоёр байр шилжүүлж зурвасаа бичиж байхад хүлээн авагч тал зүүн тийш нь хоёр байр сэлгэж зурвасыг унших боломжтой гэдгийг аль аль талууд мэддэг байх ёстой.
Гэтэл энэхүү шифрлэлтийн зарчмаа илгээгч тал хүлээн авагч талд яаж мэдэгдэх вэ? Цагаан толгойн байрлалын дагуу зурвасын үсэгнүүдийг 2 байр сэлгэж уншина уу гэсэн зурвас хамт явуулвал хэн дуртай нь тайлаад уншчих боломжтой болно. Иймээс үүнийг давж гарахын тулд асиметрик алгоритм үүсчээ.

Асиметрик алгоритм. Зураг дээр дарж томруулж үзнэ үү

Асиметрик алгоритмийн хувьд хүлээн авагч тал нийтийн (public) болон хувийн (private) гэсэн хос түлхүүртэй байх шаардлагатай. Энэхүү хос түлхүүр нь математик алгоритм дээр үндэслэж нэгнээр нь шифрлэсэн мэдээллийг зөвхөн нөгөө түлхүүрээр нь тайлдаг байхаар зохиогдсон. Өөрөөр хэлбэл нийтийн түлхүүрээр шифрлэсэн мэдээллийг зөвхөн хувийн түлхүүрээр л тайлж унших боломжтой бөгөөд нийтийн түлхүүрээр буцаагаад тайлах оролдлого хийсэн ч ямар нэгэн үр дүнд хүрэхгүй юм.
Иймээс манай тохиолдолд хүлээн авагч тал эхлээд илгээгч талд нийтийн түлхүүрээ өгөх бөгөөд илгээгч тал нууц зурвасаа хүлээн авагч талын нийтийн түлхүүрээр шифрлээд буцаагаад явуулна. Харин хүлээн авагч тал шифрлэсэн зурвасыг өөрийн хувийн түлхүүрээр тайлж унших ёстой. Энэхүү алгоритмын сул тал нь математик загвараар тооцоолол нэлээдгүй хийх шаардлагатай болдог.
Асиметрик алгоритм. Зураг дээр дарж томруулж үзнэ үү

Компьютерийн шинжлэх ухаанд энэхүү хоёр алгоритмыг ихэвчлэн хослуулж ашигладаг бөгөөд аль алинийхаа сул талыг нөхөж ажиллах ёстой. Өөрөөр хэлбэл асиметрик алгоритм ашиглан симетрик алгоритмын түлхүүрийг солилцох бөгөөд үүнээс цааш симетрик алгоритмаар мэдээллээ нууцлаж солилцох боломжтой болно.
Үүний үр дүнд дан ганц асиметрик алгоритм ашигласантай харьцуулахад тооцооллын зардал бага гарах бол симетрик алгоритмийг дангаар нь ашиглаж түлхүүрээ бусдад алдахгүй байх боломжтой болно. Хүлээн авагч талын нийтийн түлхүүрийг дундаас нь хэн нэгэн этгээд олж авсан ч гэсэн уг нийтийн түлхүүрээр тухайн мэдээллийг тайлж унших боломжгүй байх бөгөөд зөвхөн хүлээн авагч талд буй хувийн түлхүүрээр л уг мэдээллийн нууцлал тайлагдана.
Дараагийн удаад энэхүү хоёр алгоритмыг амьдрал дээр хэрхэн ашиглаж байгаа талаар тайлбарлахыг хичээе.

No comments: