RSA Encryption: คณิตศาสตร์เบื้องหลังการสื่อสารที่ปลอดภัย
เมื่อคุณเชื่อมต่อกับเว็บไซต์ผ่าน HTTPS แลกเปลี่ยนอีเมลที่เข้ารหัส หรือสร้าง VPN tunnel ก็มีความเป็นไปได้สูงว่า RSA encryption กำลังทำงานอยู่เบื้องหลัง มันคือหนึ่งในอัลกอริทึมที่เก่าแก่และได้รับความไว้วางใจมากที่สุดในวงการ cryptography ยุคใหม่ และการทำความเข้าใจมันจะช่วยให้คุณเข้าใจว่าเหตุใดข้อมูลของคุณจึงยังคงเป็นส่วนตัวบนโลกออนไลน์
RSA Encryption คืออะไร?
RSA ย่อมาจาก Rivest–Shamir–Adleman ซึ่งตั้งชื่อตามนักเข้ารหัสสามคนจาก MIT ที่แนะนำมันในปี 1977 มันคือ อัลกอริทึมการเข้ารหัสแบบอสมมาตร (asymmetric encryption algorithm) ซึ่งหมายความว่ามันใช้คีย์สองตัวที่แตกต่างกันสำหรับสองหน้าที่ที่แตกต่างกัน ได้แก่ คีย์สาธารณะ (public key) สำหรับเข้ารหัสข้อมูล และ คีย์ส่วนตัว (private key) สำหรับถอดรหัส
สิ่งนี้แตกต่างโดยพื้นฐานจากการเข้ารหัสแบบสมมาตร (symmetric encryption) เช่น AES-256 ซึ่งใช้คีย์เดียวกันทั้งในการล็อกและปลดล็อกข้อมูล ด้วย RSA คุณสามารถแชร์คีย์สาธารณะของคุณกับใครก็ได้ทั่วโลก โดยไม่ต้องกังวลว่าใครจะเห็นมัน มีเพียงคีย์ส่วนตัวของคุณเท่านั้น ซึ่งคุณต้องเก็บเป็นความลับ ที่สามารถถอดรหัสสิ่งที่ถูกเข้ารหัสด้วยคีย์สาธารณะของคุณได้
RSA ทำงานอย่างไรในทางปฏิบัติ?
ความปลอดภัยของ RSA มีรากฐานอยู่บนความจริงทางคณิตศาสตร์ที่เรียบง่าย: การคูณจำนวนเฉพาะขนาดใหญ่สองตัวเข้าด้วยกันนั้นทำได้ง่าย แต่การแยกตัวประกอบผลลัพธ์กลับไปเป็นจำนวนเฉพาะเดิมนั้นยากอย่างเหลือเชื่อ
นี่คือขั้นตอนอย่างง่าย:
- เลือกจำนวนเฉพาะขนาดมหึมาสองตัวแล้วคูณเข้าด้วยกันเพื่อให้ได้ตัวเลขขนาดใหญ่ (มักมีความยาว 2048 หรือ 4096 บิต)
- ตัวเลขนี้ร่วมกับค่าที่ได้จากการคำนวณจะกลายเป็น คีย์สาธารณะ
- จำนวนเฉพาะดั้งเดิมที่เก็บเป็นความลับจะกลายเป็น คีย์ส่วนตัว
- ทุกคนสามารถเข้ารหัสข้อความด้วยคีย์สาธารณะได้ แต่การย้อนกลับการเข้ารหัสนั้น โดยไม่รู้จำนวนเฉพาะดั้งเดิม จะต้องใช้เวลานานกว่าอายุของจักรวาลสำหรับคอมพิวเตอร์ทั่วไป
ในทางปฏิบัติ RSA ไม่ได้ถูกใช้เพื่อเข้ารหัสข้อมูลจำนวนมากโดยตรง เนื่องจากมีต้นทุนในการประมวลผลสูง แต่ส่วนใหญ่มักถูกใช้เพื่อ แลกเปลี่ยน symmetric session key อย่างปลอดภัย ซึ่งจากนั้น session key ดังกล่าวจะทำหน้าที่หนักในการถ่ายโอนข้อมูลจริง แนวทางแบบผสมผสาน (hybrid approach) นี้คือกระดูกสันหลังของ TLS/SSL ซึ่งเป็นโปรโตคอลที่รักษาความปลอดภัยให้กับเว็บส่วนใหญ่
เหตุใด RSA จึงสำคัญสำหรับผู้ใช้ VPN
เมื่อคุณเชื่อมต่อกับ VPN ไคลเอนต์และเซิร์ฟเวอร์ VPN ของคุณจำเป็นต้องตกลงกันเรื่องคีย์การเข้ารหัสโดยไม่ให้ใครดักจับการเจรจานั้นได้ RSA มีบทบาทสำคัญในกระบวนการ handshake นี้
ในโปรโตคอลอย่าง OpenVPN และ IKEv2 ใบรับรอง RSA ถูกใช้เพื่อยืนยันตัวตนของเซิร์ฟเวอร์ ซึ่งพิสูจน์ว่าคุณกำลังสื่อสารกับผู้ให้บริการ VPN ของคุณจริงๆ ไม่ใช่ผู้แอบอ้างที่กำลังโจมตีแบบ man-in-the-middle หากปราศจากขั้นตอนการตรวจสอบตัวตนนี้ ผู้โจมตีอาจสกัดกั้นการเชื่อมต่อของคุณได้ก่อนที่การเข้ารหัสจะเริ่มต้นด้วยซ้ำ
RSA ยังเป็นรากฐานของ digital certificates และ PKI (Public Key Infrastructure) ซึ่งเป็นระบบที่ตรวจสอบตัวตนของเซิร์ฟเวอร์และบริการต่างๆ ทั่วอินเทอร์เน็ต เมื่อแอป VPN ของคุณเชื่อถือใบรับรองของเซิร์ฟเวอร์ RSA มักมีส่วนเกี่ยวข้องในการตรวจสอบความน่าเชื่อถือนั้น
ความยาวของคีย์มีความสำคัญมาก RSA-1024 ถือว่าอ่อนแอและสามารถถูกทำลายได้แล้วในปัจจุบัน ผู้ให้บริการ VPN ที่มีชื่อเสียงส่วนใหญ่ใช้ RSA-2048 หรือ RSA-4096 โดยตัวหลังมีความปลอดภัยที่แข็งแกร่งกว่าอย่างมีนัยสำคัญ แลกกับภาระในการประมวลผลที่เพิ่มขึ้นเล็กน้อย
ตัวอย่างการใช้งาน RSA ในทางปฏิบัติ
- การตรวจสอบตัวตน VPN: ไคลเอนต์ VPN ของคุณใช้ใบรับรอง RSA เพื่อยืนยันตัวตนของเซิร์ฟเวอร์ก่อนที่ tunnel จะถูกสร้างขึ้น
- การเชื่อมต่อ HTTPS: ทุกครั้งที่คุณเยี่ยมชมเว็บไซต์ที่ปลอดภัย RSA (หรือสมมูลในรูปแบบ elliptic curve) จะช่วยเจรจา session
- การเข้ารหัสอีเมล: เครื่องมืออย่าง PGP ใช้ RSA เพื่อให้คุณส่งข้อความที่เข้ารหัสซึ่งมีเพียงผู้รับที่ต้องการเท่านั้นที่สามารถอ่านได้
- การเข้าถึงผ่าน SSH: ผู้ดูแลระบบใช้คู่คีย์ RSA เพื่อล็อกอินเข้าสู่เซิร์ฟเวอร์ระยะไกลอย่างปลอดภัยโดยไม่ต้องใช้รหัสผ่าน
มุมมองเกี่ยวกับอนาคต
RSA เผชิญกับความท้าทายระยะยาว นั่นคือ คอมพิวเตอร์ควอนตัม (quantum computers) อัลกอริทึมอย่าง Shor's algorithm สามารถแยกตัวประกอบจำนวนเฉพาะขนาดใหญ่ได้อย่างรวดเร็วพอที่จะทำลาย RSA encryption ในทางทฤษฎี นี่คือเหตุผลที่นักวิจัยกำลังพัฒนามาตรฐาน post-quantum cryptography ที่ไม่ต้องพึ่งพาปัญหาการแยกตัวประกอบอย่างจริงจัง ในตอนนี้ RSA-2048 และสูงกว่ายังคงปลอดภัยจากการโจมตีแบบคลาสสิกทั้งหมดที่รู้จัก แต่นาฬิกากำลังเดินหน้าสู่ยุคที่ต้องการความต้านทานควอนตัม