RSA [cont.]
posted on 25 Aug 2004 08:02 by ipatsตอนแรกกะว่าจะเขียนเกี่ยวกับเรื่องการอ่าน HTTP Header
เพื่อเอาไว้โกงไอ้พวกเว็บดาวโหลดที่ไม่ค่อยจะอนุญาติ
ให้ดาวโหลดผ่านพวกโปรแกรมช่วยโหลด
(พวกนี้มักใช้ redirection ด้วยวิธีการแปลกๆ ทำให้โปรแกรมจับไม่ได้)
(ส่วนใหญ่จากพวกเว็บ crackz เอิ้กๆๆๆ -- บางทีมันก็บอกเลยว่า
ห้ามใช้โปรแกรมช่วยโหลด... แต่กรู... จะใช้ 555)
(จริงๆ มีประโยชน์อื่นอีก.. เช่น ใช้หลอก server ต่างๆ นาๆ -- ทำไปทำไมก็ไม่รู้ แต่สนุก)
แต่ พอดี มีเรื่องนี้.. มันพุดขึ้นมาขัดซะก่อน
เลยขอยกไปคราวหน้าๆๆๆๆๆๆ (ถึงรีบเขียนก็ไม่มีคนอ่านอยู่ดี เชอะ.. งอน 555)
อ่ะ เข้าเรื่องดีกว่า...
พอดีว่า เรื่องนี้เนี่ย ผมเรียนมาตั้งกะปีที่แล้วววววว
ในวิชา Discrete Mathematics (ชื่อดูเหมือนจะหรู)
แต่ตอนเรียนไม่ค่อยจะรู้เรื่อง (เพราะอะไรไม่บอก อิอิ)
พอดีตอนนี้รุ่นน้องเค้าเรียนแน่นกว่า
(ด้วยผู้สอนที่ "มีเวลาสอนมากกว่า"..
[อ. ปีที่แล้วจะมีเห็นมั๊ยเนี่ย.. เกรดอีกวิชาก็ยังไม่ออก])
ช่วงนี้ก็เลยมาสนใจมันนน ชอบมันด้วยนะ หลงรักเลยหล่ะ (ว่าไปนั้น)
ว่าแต่ มันคืออะไรล่ะเนี่ย..
RSA Algorithm เป็น Algorithm ครับ
(กรำ ไม่ต้องบอกกรูก็รู้โว้ยย ชื่อก็เขียนอยู่)
อ่าาา แบบว่ามันคือการเข้ารหัสวิธีหนึ่ง
เป็นชนิด asymmetric ซึ่งหมายถึงว่า
key ที่ใช้เข้ารหัสกับถอดรหัสเป็นคนละตัวกัน
(ถ้าเป็นตัวเดียวกันจะเป็น symmetric)
และนอกจากการเข้ารหัสแล้ว
RSA ยังใช้ในการตรวจสอบลายเซ็น
(signature verification) เพื่อยืนยันตัว ได้ด้วย
ใน internet ที่พบเห็นได้ก็อย่างเช่นเวลาเราเข้าเว็บที่ใช้ https
หรือถ้าใครเคยใช้ ssh นั่นก็มีการใช้ RSA Algo. ช่วยด้วย
RSA มาจากชื่อของคน 3 คน ที่คิดค้น algo. นี้ขึ้นมา
ได้แก่ Ron Revest, Adi Shamir, Len Adleman
(อ่านเป็นไทยได้ว่า --- อ้าซ่า -- (ล้อเล่นคั๊บ) )
จากที่บอกไปว่า RSA จะมี key 2 key ที่ไม่เหมือนกัน
ทั้ง 2 นี้จะมีชื่อเรียกเป็น public key กะ private key
ก็ความหมายตามชื่ออ่ะครับ public key คือ key ที่ใครๆ ก็รู้ได้
เวลาใครจะส่งข้อความให้ก็ใช้ public key นี่แหละเข้ารหัส
ตอนรับก็ใช้ private key ถอดรหัสออกมา
ซึ้งไอ้ private key เนี่ย คนอื่นจะไม่รู้นอกจากเจ้าของ key (ก็ private นี่หน่า.. )
ถ้าคนอื่นรู้ก็เสร็จซิ กลายเป็นใครๆ ก็อ่านข้อความได้
สิ่งที่น่าอัศจรรย์ก็คือ key ทั้ง 2 นั่นมีความสัมพันธ์กัน..
แต่ถ้ารู้ตัวนึงแล้ว การที่จะหาอีกตัว ไม่ใช่เรื่องง่ายๆ เลยครับ
รายละเอียดไม่ขอพูดถึงแล้วกันครับ
ถ้าสนใจลองเข้าไปอ่านที่เว็บ http://www.di-mgt.com.au/rsa_alg.html ดูนะ
ซึ่งส่วนสำคัญ (ที่ผมเข้าใจนะ) ในการหาอีก key เมื่อรู้ key นึง
คือการหาตัวประกอบ ของเลขที่เกิดจากจำนวนเฉพาะ 2 ตัวคูณกัน
เช่น 77 เกิดจาก 7x11 ซึ่งถ้าเลขใหญ่มากๆๆๆๆๆๆๆ ล่ะ?!?!
ซึ่งเวลาเข้ารหัสกันจริงๆ เลขพวกนี้ (ใน RSA Algo. จะเรียกว่า modulus)
จะใหญ่มาก หลายร้อยหลัก ซึ่งถ้าเราแยกตัวประกอบของ modulus ได้
ก็จะทำให้หา key อีกตัวได้
แล้ว เค้าก็ว่ากันว่า... การจะแยกตัวประกอบของ modulus เนี่ย
ไม่ใช่ง่ายๆ เลย ที่จะทำได้ ถึงขนาดว่า RSA Lab (www.rsa.com)
มีการท้าว่าใครแยกได้ให้เงินเป็นหมื่นเหรียญเลย
(ขอให้เข้าใจนะครับว่าไม่ใช่แยกไม่ได้.. คือมันแยกได้ แต่ไม่ใช้ได้ง่ายๆ)
เพราะงี้แหละครับ (เพราะไร??) ผมเลยสนใจมันนน
จริงๆ สนใจตั้งแต่ตอนเรียนแล้ว แต่ไม่ค่อยมีเวลา
(อย่างกะตอนนี้มีงั้นแหละ อิอิ)
ปล.... ที่เขียนมา ก็มั่วๆ ตามที่เข้าใจนะครับ
อาจจะผิดบ้าง (อิอิ) ถ้าไงก็ขออภัยด้วยนะครับ ~ ~
ไอ้แพท..





#1 By abzee () on 2004-08-25 09:16