การเข้ารหัสมีส่วนต่าง ๆ มากมาย หากคุณต้องการเข้ารหัสข้อมูลบางอย่าง มีอัลกอริทึมสองประเภทที่คุณสามารถใช้ได้: อัลกอริทึมการเข้ารหัสแบบสมมาตรและอัลกอริทึมการเข้ารหัสแบบไม่สมมาตร แนวคิดเหมือนกัน: สามารถเข้ารหัสข้อมูลได้ แต่ทำงานบนหลักการที่แตกต่างกันและมีกรณีการใช้งานอื่น ๆ
อย่างไรก็ตาม ความแตกต่างของตำแหน่งจะอธิบายถึงคีย์การเข้ารหัส อัลกอริธึมการเข้ารหัสแบบสมมาตรใช้คีย์ที่ใช้ร่วมกันเพียงคีย์เดียวในการเข้ารหัสและถอดรหัสข้อมูล อัลกอริธึมการเข้ารหัสแบบอสมมาตรใช้คีย์ที่เชื่อมโยงสองคีย์ คีย์หนึ่งสำหรับถอดรหัสและอีกคีย์หนึ่งสำหรับถอดรหัส
คำศัพท์
อัลกอริธึมการเข้ารหัสแบบอสมมาตรอาศัยการใช้คีย์ที่แตกต่างกันสองคีย์ สามารถใช้คีย์หนึ่งเพื่อเข้ารหัสข้อมูลและอีกคีย์หนึ่งเพื่อถอดรหัส คีย์เข้ารหัสสองคีย์ไม่ใช่แค่ค่าเก่าสองค่า มีความเกี่ยวข้องกันภายในและจำเป็นต้องสร้างโดยอัลกอริทึมการสร้างคีย์
ชื่ออื่นสำหรับการเข้ารหัสแบบอสมมาตรคือการเข้ารหัสคีย์สาธารณะ นี่เป็นเพราะตั้งใจให้หนึ่งในสองคีย์เป็นสาธารณะ แนวคิดดั้งเดิมคือคีย์เข้ารหัสจะถูกแชร์แบบสาธารณะ และคีย์ถอดรหัสจะถูกเก็บไว้เป็นส่วนตัวอย่างเคร่งครัด ด้วยเหตุนี้ คีย์เข้ารหัสจึงเรียกว่าคีย์สาธารณะ และคีย์ถอดรหัสคือคีย์ส่วนตัว
การกำหนดค่านี้อนุญาตให้ทุกคนเข้ารหัสข้อความ ดังนั้นเจ้าของคีย์ส่วนตัวเท่านั้นที่สามารถถอดรหัสได้ สิ่งนี้มีประโยชน์เพราะทุกคนสามารถสื่อสารกับผู้รับที่ต้องการได้อย่างปลอดภัยด้วยคีย์เข้ารหัสที่เผยแพร่เพียงคีย์เดียว ในการสื่อสารกลับอย่างปลอดภัย ผู้รับจะต้องใช้รหัสสาธารณะของผู้ส่งเดิม
ตามทฤษฎีแล้ว ไม่มีเหตุผลใดที่คุณไม่สามารถสลับคีย์ไปมาและแชร์คีย์ถอดรหัสในขณะที่รักษาคีย์เข้ารหัสไว้เป็นส่วนตัว สามารถใช้เพื่อตรวจสอบความถูกต้องของแหล่งที่มา หากไม่มีการรักษาความปลอดภัยที่มีความหมาย อย่างไรก็ตาม วิธีนี้ไม่ได้ทำในทางปฏิบัติ เนื่องจากมีกลไกอื่นอยู่เพื่อให้ได้ผลลัพธ์เดียวกัน
คุณสมบัติของอัลกอริทึมการเข้ารหัสแบบสมมาตร
อัลกอริธึมการเข้ารหัสแบบอสมมาตรจำเป็นต้องใช้คีย์ที่มีขนาดใหญ่กว่าอัลกอริธึมการเข้ารหัสแบบสมมาตรมาก เมื่อให้ความปลอดภัยในระดับเดียวกัน โดยทั่วไป อัลกอริทึมการเข้ารหัสแบบสมมาตรที่มีคีย์การเข้ารหัสแบบ 128 บิตถือว่ามีความปลอดภัย แม้ว่าคีย์แบบ 256 บิตจะเป็นที่ต้องการก็ตาม ในอัลกอริธึมการเข้ารหัสแบบอสมมาตร คีย์ 2048 บิตถือว่าปลอดภัย
ตัวอย่างคีย์ 2048 บิตใช้กับ RSA ซึ่งเป็นมาตรฐานสำหรับการเข้ารหัสแบบอสมมาตรมาช้านาน อย่างไรก็ตาม การเข้ารหัสแบบ Elliptic Curve เป็นแนวคิดใหม่ที่ไม่สมมาตรเช่นกัน แต่ใช้คีย์ที่เล็กกว่ามาก คีย์ RSA 2048 บิตให้ความปลอดภัยเทียบเท่ากับคีย์เส้นโค้งวงรี 224 บิต
เคล็ดลับ: ค่าข้างต้นถือว่าปลอดภัยสำหรับการใช้งานเชิงพาณิชย์ แต่ NSA ต้องการคีย์ที่รัดกุมกว่าสำหรับการเข้ารหัสลับสุดยอด จำเป็นต้องใช้คีย์ RSA อย่างน้อย 3072 บิต ในขณะที่จำเป็นต้องใช้คีย์เส้นโค้งวงรี 384 บิต เป็นที่น่าสังเกตว่าคีย์ RSA 3072 บิตนั้นอ่อนแอกว่าคีย์เส้นโค้งวงรี 384 บิต
อัลกอริทึมการเข้ารหัสแบบอสมมาตรมีแนวโน้มที่จะค่อนข้างช้าเมื่อเทียบกับอัลกอริทึมการเข้ารหัสแบบสมมาตร การสื่อสารที่ปลอดภัยสามารถทำได้ผ่านช่องทางที่ไม่ปลอดภัย หากทั้งสองฝ่ายสร้างคู่คีย์แบบอสมมาตรแล้วสลับคีย์สาธารณะ ในลักษณะนี้ ทั้งสองฝ่ายสามารถส่งข้อความที่มีเพียงอีกฝ่ายเท่านั้นที่สามารถถอดรหัสได้
ในทางปฏิบัติ ฝ่ายใดฝ่ายหนึ่งอย่างน้อยต้องตรวจสอบความสมบูรณ์ของคีย์สาธารณะของตน สิ่งนี้ทำผ่าน PKI หรือโครงสร้างพื้นฐานคีย์สาธารณะ ซึ่งอยู่ในรูปของผู้ออกใบรับรองที่ลงนามในคีย์ของผู้อื่นเพื่อแสดงว่าตัวตนของพวกเขาได้รับการยืนยันแล้ว ในระบบนี้ ผู้ออกใบรับรองทั้งหมดต้องเชื่อถือได้ หากไม่มีสิ่งนั้น ระบบจะพังทลาย
ใช้ในทางปฏิบัติ
โดยทั่วไปแล้ว อัลกอริทึมการเข้ารหัสแบบอสมมาตรจะไม่ใช้สำหรับการเข้ารหัสจำนวนมาก โดยเฉพาะอย่างยิ่งเมื่อมีปัญหาเรื่องเวลาหรือประสิทธิภาพ อาจใช้เพื่อเข้ารหัสข้อความแบบครั้งเดียว เช่น เนื้อหาของอีเมล อย่างไรก็ตาม ความสามารถในการรักษาความปลอดภัยของช่องสัญญาณที่ไม่ปลอดภัยทำให้พวกเขาเป็นตัวเลือกที่ยอดเยี่ยมสำหรับโปรโตคอลการแลกเปลี่ยนคีย์ที่ส่งคีย์สมมาตรที่สามารถใช้สำหรับการเข้ารหัสจำนวนมากที่มีประสิทธิภาพมากขึ้น
นี่คือกรณีการใช้งานใน TLS ซึ่งให้การรักษาความปลอดภัยใน HTTPS ผู้ใช้เชื่อมต่อกับเว็บเซิร์ฟเวอร์ จากนั้นพวกเขาจะแลกเปลี่ยนคีย์สาธารณะเพื่อเข้ารหัสข้อความขนาดเล็กถึงกันและกัน จากนั้นเซิร์ฟเวอร์จะสร้างคีย์สมมาตร เข้ารหัสด้วยคีย์สาธารณะของผู้ใช้ แล้วส่งไปให้พวกเขา ผู้ใช้ถอดรหัสคีย์และจากนั้นสามารถใช้คีย์สมมาตรเพื่อเข้ารหัสการสื่อสารในอนาคตไปยังเซิร์ฟเวอร์ได้อย่างมีประสิทธิภาพ
ผู้ออกใบรับรองในกระบวนการข้างต้นจะตรวจสอบรหัสสาธารณะของเซิร์ฟเวอร์ สิ่งนี้ช่วยให้ผู้ใช้มั่นใจได้ว่าพวกเขากำลังสื่อสารกับผู้ที่พยายามสื่อสาร ในกรณีส่วนใหญ่ ผู้ใช้จะสร้างรหัสแบบใช้ครั้งเดียว เนื่องจากเซิร์ฟเวอร์ไม่จำเป็นต้องตรวจสอบว่ากำลังสื่อสารกับผู้ใช้รายใด
บทสรุป
อัลกอริธึมการเข้ารหัสแบบอสมมาตรใช้สองคีย์ที่แตกต่างกัน คีย์หนึ่งใช้สำหรับเข้ารหัสและอีกคีย์หนึ่งสำหรับถอดรหัส คีย์มีการเชื่อมโยงทางคณิตศาสตร์และต้องสร้างโดยอัลกอริธึมการสร้างคีย์ ค่าสุ่มไม่ทำงาน โดยทั่วไปแล้ว คีย์เข้ารหัสจะถูกแชร์แบบสาธารณะ ทำให้ทุกคนสามารถเข้ารหัสข้อความที่มีไว้สำหรับเจ้าของคู่คีย์ได้
ตราบใดที่คีย์ถอดรหัสยังคงเป็นส่วนตัว มีเพียงเจ้าของคีย์เท่านั้นที่สามารถถอดรหัสข้อความที่เข้ารหัสด้วยคีย์สาธารณะได้ ด้วยเหตุนี้ การเข้ารหัสแบบอสมมาตรจึงมักถูกเรียกว่าการเข้ารหัสคีย์สาธารณะ