ในประเทศไทย พระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล (PDPA) ซึ่งมีผลบังคับใช้เต็มรูปแบบตั้งแต่ปี 2565 กำหนดให้ผู้ควบคุมข้อมูลต้องมี "มาตรการรักษาความมั่นคงปลอดภัยที่เหมาะสม" สำหรับข้อมูลส่วนบุคคล และธนาคารแห่งประเทศไทยก็มีแนวปฏิบัติเฉพาะสำหรับผู้ให้บริการทางการเงินที่ระบุชัดว่าข้อมูลลูกค้าต้องเข้ารหัสทั้งขณะจัดเก็บและขณะส่งผ่านเครือข่าย โดย AES-256 เป็นตัวเลือกมาตรฐานที่ใช้กันทั่วไปในอุตสาหกรรม
เหตุใดระบบพร้อมเพย์และ e-wallet ไทยจึงพึ่งพาการเข้ารหัสแบบสมมาตร
ระบบพร้อมเพย์ (PromptPay) ประมวลผลธุรกรรมนับล้านรายการต่อวัน และการเข้ารหัสแบบอสมมาตรอย่าง RSA มีต้นทุนการประมวลผลสูงเกินกว่าจะใช้เข้ารหัสข้อมูลธุรกรรมทั้งหมดได้จริง จึงใช้การเข้ารหัสแบบสมมาตรอย่าง AES เข้ารหัสตัวข้อมูลธุรกรรมเอง ในขณะที่การเข้ารหัสแบบอสมมาตรทำหน้าที่เพียงแลกเปลี่ยนกุญแจอย่างปลอดภัยตอนเริ่มการเชื่อมต่อเท่านั้น — เป็นการแบ่งงานที่ทำให้ระบบรองรับปริมาณธุรกรรมมหาศาลได้โดยไม่ล่ม
โหมดการทำงาน: CBC เทียบกับ GCM
AES เข้ารหัสข้อมูลเป็นบล็อกขนาดคงที่ ดังนั้นโหมดการทำงานจึงกำหนดว่าบล็อกเหล่านี้เชื่อมโยงกันอย่างไร CBC (Cipher Block Chaining) เชื่อมแต่ละบล็อกกับบล็อกก่อนหน้า ให้ความลับแต่ไม่ตรวจสอบความถูกต้องของข้อมูล GCM (Galois/Counter Mode) เพิ่มการยืนยันตัวตน คือเข้ารหัสข้อมูลพร้อมกับรับประกันว่าไม่ถูกดัดแปลง — จึงถือเป็นตัวเลือกที่ทันสมัยและปลอดภัยกว่า
เหตุใดจึงต้องมี initialization vector (IV)
หากเข้ารหัสข้อมูลเดียวกันด้วยคีย์เดียวกันโดยไม่มีความแปรผันเพิ่มเติม ผลลัพธ์จะเหมือนกันเสมอ — ซึ่งรั่วไหลข้อมูลเกี่ยวกับบล็อกที่ซ้ำกัน initialization vector คือค่าสุ่มที่ไม่ซ้ำกันซึ่งเพิ่มเข้าไปในการเข้ารหัสแต่ละครั้ง รับประกันผลลัพธ์ที่ต่างกันแม้ข้อมูลนำเข้าและคีย์จะเหมือนกัน
ทำไมต้องใช้สิ่งนี้
- เข้ารหัสข้อมูลลูกค้าที่ละเอียดอ่อนก่อนจัดเก็บหรือส่งผ่านเครือข่าย
- ปฏิบัติตามข้อกำหนดของ PDPA และแนวปฏิบัติของธนาคารแห่งประเทศไทยเรื่องการคุ้มครองข้อมูล
- วินิจฉัยปัญหาความเข้ากันได้เมื่อถอดรหัสข้อมูลที่เข้ารหัสจากระบบอื่น
AES-128 เทียบกับ AES-256: จำเป็นต้องใช้คีย์ที่ยาวกว่าหรือไม่
โดยสัญชาตญาณดูเหมือนว่าคีย์ที่ยาวเป็นสองเท่าจะหมายถึงการป้องกันที่ดีเป็นสองเท่า แต่ในทางปฏิบัติ AES-128 ในปัจจุบันก็ยังถือว่าปลอดภัยเชิงรหัสลับ — ไม่มีการโจมตีเชิงปฏิบัติที่สามารถเจาะได้ AES-256 ให้ระยะขอบความปลอดภัยที่มากกว่าเผื่อกรณีที่มีความก้าวหน้าทางทฤษฎีในอนาคต (โดยเฉพาะการคำนวณเชิงควอนตัม) แต่มีต้นทุนการคำนวณสูงกว่าเล็กน้อย ดังนั้นการเลือกระหว่างทั้งสองจึงเป็นการประนีประนอมระหว่างประสิทธิภาพและระยะขอบความปลอดภัย