Pages - Menu

Sunday, December 6, 2015

Cryptology ແມ່ນຫຍັງ?

ມື້ນີ້ວ່າງໆ ທີ່ຈິງກໍ່ບໍ່ວ່າງແທ້ດອກ ຫະຫະ ແຕ່ເປີດປຶ້ມຄະນິດສາດມາລະບໍ່ເຂົ້າໃຈເລີຍຫາແນວອື່ນເຮັດ ແທນ.
ຄິດອອກວ່າຢາກຂຽນເລື່ອງ Cryptology/Cryptography ມາດົນລະເລີຍຖືໂອກາດຂຽນມື້ນີ້ເລີຍ.

ແລ້ວ Cryptology ແມ່ນຫຍັງ?

Cryptology/Cryptography ກໍ່ຄືການປ່ຽນຂໍ້ຄວາມຈາກຮູບແບບປົກກະຕິ ໄປສູ່ຮູບແບບອື່ນ ເພື່ອປົກປິດ ຫຼື ຮັກສາຄວາມລັບ ສະເພາະຄູ່ສົນທະນາເທົ່ານັ້ນທີ່ສາມາດເຂົ້າໃຈ.
ທີ່ຈິງແລ້ວມະນຸດເຮົາໄດ້ຄິດຄົ້ນວິທີສ້າງຂໍ້ຄວາມລັບມາດົນແລ້ວ ແລະໜຶ່ງໃນຮູບແບບທີ່ເປັນ ທີ່ເປັນທີ່ຮູ້ຈັກຢ່າງກວ້າງຂວາງກໍ່ຄື Caesar cipher ຄິດຄົ້ນໂດຍ Julius Caesar.

ເພິ່ນໄດ້ສ້າງຂໍ້ຄວາມ ລັບໂດຍການ ເອົາໂຕອັກສອນທີ່ຢູ່ຖັດໄປ 3 ຕຳແໜ່ງມາແທນທີ່ (ຖ້າເປັນໂຕອັກສອນຢູ່ທ້າຍ ໃຫ້ເລີ່ມຕໍ່ໃໝ່ແຕ່ຕົ້ນ) ຜົນລັບກໍ່ຈະປະມານວ່າ B ເປັນ E , X ເປັນ A

ນີ້ຄືຕົວຢ່າງຂອງການ ເຂົ້້າລະຫັດ (encryption) ຂໍ້ມູນ.  

Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ 
Cipher: XYZABCDEFGHIJKLMNOPQRSTUVW

ຕໍ່ມາເພື່ອໃຫ້ເຂົ້າໃຈຫລາຍຂຶ້ນກ່ຽວກັບ Cryptology ເຮົາຈະເອົາ Caesar cipher ມາຄຳນວນໃນ ຫລັກການທາງ ຄະນິດສາດ ເບິ່ງ ແລະ ເພື່ອເປັນພື້ນຖານສູ່ການຮຽນຮູ້ກ່ຽວກັບການເຂົ້າລະຫັດ ຮູບແບບ ອື່ນທີ່ມີຄວາມປອດໄພສູງກວ່ານີ້ເຊັ່ນ RSA ເນາະ.
ທຳອິດ, ເຮົາກໍ່ຈະວ່າງຕຳແໜ່ງຂອງແຕ່ລະໂຕອັກສອນດ້ວຍໂຕເລກທີ່ເລີ່ມຈາກ 0 - 25 (ໂຕອັກສອນ ໃນພາສາອັງກິດມີ 26 ໂຕ) ໂດຍເລີ່ມຈາກ A = 0 , ... , K = 10 , .... , Z = 25

ໃນນີ້ ການເຂົ້າລະຫັດແບບ Caesar ຈະແທນດ້ວຍ function f ທີ່ຮັບພຽງແຕ່ຄ່າຈຳນວນເຕັມ (integer) ທີ່ເປັນຄ່າບວກເທົ່ານັ້ນ ເຮົາຈະແທນດ້ວຍ p ແລະ p <= 25 (ນ້ອຍກວ່າຫຼືເທົ່າກັບ) ສະນັ້ນ ເລກຈຳນວນເຕັມ p ຢູ່ໃນ set ຂອງ {0,1,2,...,25}
ແລະ ສູດໃນການຄິດໄລ່ Caesar’s encryption ກໍ່ຄື

f(p) = (p+3) mod 26

ໂດຍຫລັກການຄິດໄລ່ຄືຫາຄ່າເສດ ( Remainder ) ວິທີການຄິດໄລ່ປະມານນີ້
ຖ້າໃນການຂຽນໂປແກມຈະງ່າຍໆກໍ່ຄືໃຊ້ Modulus operator “ % ” ຕຢ: 7 % 26
ມີຄ່າອັນດຽວກັບ f(7) = 7 mod 26

 ອັນນີ້ຈະເປັນການຄິດໄລ່ດ້ວຍມື (ບໍ່ຮູ້ເປັນຫຍັງຄືໃຊ້ mouse ຂຽນຄືກັນ ຫະຫະຫະ ສົງໄສຈະ blur ແຮງ) ໂດຍສິ່ງທີ່ເຮົາເນັ້ນຢາກໄດ້ຄື remainder ນັ້ນເອງ !



ໃນຮູບເປັນຕົວຢ່າງການເຂົ້າລະຫັດຂອງໂຕອັກສອນ S (ຕຳແໜ່ງຂອງ S = 18) ແລະ ຄ່າ remainder ທີ່ເຮົາໄດ້ຄື 21 ( 21 = V ) ສະນັ້ນ S ຈະກາຍເປັນ V (ຖ້າໃຜບໍ່ເຂົ້າໃຈວິທີຄິດໄລ່ສາມາດຫາອ່ານຕາມເນັດໄດ້ຄົ້ນຫາວ່າ modulo/modulus division)

ຕົວຢ່າງອີກອັນ: ປ່ຽນຂໍ້ຄວາມ SEE YOU AT SIX ດ້ວຍການເຂົ້າລະຫັດແບບ Caesar
ເຮົາກໍ່ຈະໄດ້ VHH BRX DW VLA

ການຖອດລະຫັດກັບຄືນ Decryption

ເຮົາໃຊ້ f(p) = (p - k) mod 26

ມັນກໍ່ຄ້າຍໆກັບ ການຖອດລະຫັດນະລະເນາະ k ໃນນີ້ຄືຄ່າຂອງຈຳນວນທີ່ເຮົາເລື່ອນໄປຈາກໂຕອັກສອນ ຫລັກນັ້ນກໍ່ຄື 3 ນັ້ງເອງ ສະນັ້ນ k = 3 ເຮົາກໍ່ໄດ້ f(p) = (p-3) mod 26 ຕົວຢ່າງການຄິດໄລ່ ເຮົາເອົາໂຕຢ່າງຈາກຮູບທາງເທິງເຮົາເຂົ້າລະຫັດຈາກ S ແລ້ວໄດ້ V (21) ເຮົາມາຖອດຈາກ V ກັບສູ່ S !


ຈະເຫັນໄດ້ວ່າຄ່າທີ່ໄດ້ຖືກຕ້ອງ! ງ່າຍແມ່ນບໍ ^^
ບົດຄວາມນີ້ອາດຈະບໍ່ໄດ້ Advance ຫລາຍແຕ່ກໍ່ອາດຈະຊ່ວຍໃຫ້ບາງຄົນໄດ້ເຫັນພາບ ແລະ ເຂົ້າໃຈວິທີການ ເຮັດວຽກຂອງ Algorithm ຂອງການເຂົ້າລະຫັດວ່າເຮັດແນວໃດ ເນາະ
ບົດຄວາມຕໍ່ໄປອາດຈະກ່ຽວກັບການເຂົ້າລະຫັດທີ່ໃຊ້ Public ແລະ Private key ເຊັ່ນ RSA ແຕ່ຂໍ ທຳຄວາມເຂົ້າໃຈໃຫ້ລະອຽດກ່ອນເພື່ອທີ່ຈະສາມາດຕອບຄຳຖາມໄດ້ ຫະຫະ
ໂອ້ ຖ້າໃຜຂ້ອງໃຈບ່ອນໃດເມັ້ນຖາມໄດ້ເດີ້ ແລະ ຢາກຂໍບອກວ່າຜູ້ຂຽນເອງບໍ່ມັກຮຽນເລກຢ່າງແຮງ.

ຂອບໃຈຫຼາຍໆທີ່ສະຫຼະເວລາ ອ່ານຈົນຈົບ.

No comments:

Post a Comment