กลับไปหน้าบทความ

อ่าน 10 นาที

การเข้ารหัสแบบกุญแจสาธารณะ

การเข้ารหัสแบบกุญแจสาธารณะ หรือ การเข้ารหัสแบบไม่สมมาตร คือสาขาของ ระบบ การเข้ารหัส ที่ใช้คู่กุญแจที่เกี่ยวข้องกัน แต่ละคู่กุญแจประกอบด้วย กุญแจสาธารณะ และ กุญแจส่วนตัว...

การเข้ารหัสแบบกุญแจสาธารณะ

ตัวเลข ที่ไม่สามารถคาดเดาได้ (โดยทั่วไปจะมีขนาดใหญ่และสุ่ม ) จะถูกใช้เพื่อเริ่มต้นการสร้างคู่กุญแจ ที่ยอมรับได้ ซึ่งเหมาะสมสำหรับการใช้งานโดยอัลกอริทึมกุญแจแบบไม่สมมาตร
ในตัวอย่างนี้ ข้อความได้รับการลงลายมือชื่อดิจิทัลด้วยกุญแจส่วนตัวของอลิซ แต่ตัวข้อความเองไม่ได้ถูกเข้ารหัส 1) อลิซลงลายมือชื่อข้อความด้วยกุญแจส่วนตัวของเธอ 2) บ็อบใช้กุญแจสาธารณะของอลิซเพื่อตรวจสอบได้ว่าอลิซเป็นผู้ส่งข้อความและข้อความนั้นไม่ได้ถูกแก้ไข
ใน ระบบ แลกเปลี่ยนกุญแจแบบ Diffie–Hellmanแต่ละฝ่ายจะสร้างคู่กุญแจสาธารณะ/ส่วนตัว และแจกจ่ายกุญแจสาธารณะของคู่นั้น หลังจากได้รับสำเนาที่ถูกต้อง (หมายเหตุ นี่เป็นสิ่งสำคัญ) ของกุญแจสาธารณะของกันและกันแล้ว อลิซและบ็อบสามารถคำนวณรหัสลับร่วมกันแบบออฟไลน์ได้ รหัสลับร่วมกันนี้สามารถนำไปใช้เป็นกุญแจสำหรับรหัสสมมาตรได้ เป็นต้น
ในระบบการเข้ารหัสแบบกุญแจไม่สมมาตร ใครๆ ก็สามารถเข้ารหัสข้อความได้โดยใช้กุญแจสาธารณะ แต่มีเพียงผู้ถือครองกุญแจส่วนตัวที่จับคู่กันเท่านั้นที่จะสามารถถอดรหัสข้อความนั้นได้ ความปลอดภัยของระบบขึ้นอยู่กับความลับของกุญแจส่วนตัว ซึ่งจะต้องไม่เปิดเผยให้ผู้อื่นทราบ

การเข้ารหัสแบบกุญแจสาธารณะหรือการเข้ารหัสแบบไม่สมมาตรคือสาขาของ ระบบ การเข้ารหัสที่ใช้คู่กุญแจที่เกี่ยวข้องกัน แต่ละคู่กุญแจประกอบด้วยกุญแจสาธารณะและกุญแจส่วนตัว ที่สอดคล้อง กัน[ 1 ] [ 2 ]คู่กุญแจถูกสร้างขึ้นด้วยอัลกอริทึม ที่ อิงตามปัญหาทางคณิตศาสตร์ ที่เรียกว่า ฟังก์ชันทางเดียวความปลอดภัยของการเข้ารหัสแบบกุญแจสาธารณะขึ้นอยู่กับการเก็บรักษากุญแจส่วนตัวให้เป็นความลับ กุญแจสาธารณะสามารถเผยแพร่ได้อย่างเปิดเผยโดยไม่กระทบต่อความปลอดภัย[ 3 ]มีระบบการเข้ารหัสแบบกุญแจสาธารณะหลายประเภทที่มีเป้าหมายด้านความปลอดภัยที่แตกต่างกัน รวมถึงลายเซ็นดิจิทัลการแลกเปลี่ยนกุญแจ Diffie–Hellmanการห่อหุ้มกุญแจแบบกุญแจสาธารณะและการเข้ารหัสแบบกุญแจสาธารณะ

อัลกอริทึมกุญแจสาธารณะเป็นองค์ประกอบพื้นฐานด้านความปลอดภัยในระบบการเข้ารหัส สมัยใหม่ รวมถึงแอปพลิเคชันและโปรโตคอลที่ให้ความมั่นใจในเรื่องความลับและความถูกต้องของการสื่อสารทางอิเล็กทรอนิกส์และการจัดเก็บข้อมูล อัลกอริทึมเหล่านี้เป็นพื้นฐานของมาตรฐานอินเทอร์เน็ตจำนวนมาก เช่นTransport Layer Security (TLS), SSH , S/MIMEและPGPเมื่อเปรียบเทียบกับการเข้ารหัสแบบสมมาตรการเข้ารหัสแบบกุญแจสาธารณะอาจช้าเกินไปสำหรับวัตถุประสงค์หลายอย่าง[ 4 ]ดังนั้นโปรโตคอลเหล่านี้จึงมักรวมการเข้ารหัสแบบสมมาตรเข้ากับการเข้ารหัสแบบกุญแจสาธารณะในระบบการเข้ารหัสแบบไฮบริ

คำอธิบาย

ก่อนช่วงกลางทศวรรษ 1970 ระบบการเข้ารหัสทั้งหมดใช้อัลกอริทึมแบบกุญแจสมมาตรซึ่ง ใช้ กุญแจเข้ารหัส เดียวกัน กับอัลกอริทึมพื้นฐานโดยทั้งผู้ส่งและผู้รับ โดยทั้งสองฝ่ายต้องเก็บรักษากุญแจไว้เป็นความลับ ด้วยเหตุนี้ กุญแจในทุกระบบจึงต้องมีการแลกเปลี่ยนระหว่างคู่สนทนาด้วยวิธีที่ปลอดภัยก่อนที่จะใช้งานระบบ – ตัวอย่างเช่น ผ่านช่องทางที่ปลอดภัยข้อกำหนดนี้ไม่ใช่เรื่องเล็กน้อยและจะกลายเป็นเรื่องที่จัดการได้ยากอย่างรวดเร็วเมื่อจำนวนผู้เข้าร่วมเพิ่มขึ้น เมื่อไม่มีช่องทางที่ปลอดภัย หรือเมื่อ (ตามหลักปฏิบัติทางด้านการเข้ารหัสที่ดี) มีการเปลี่ยนกุญแจบ่อยครั้ง โดยเฉพาะอย่างยิ่ง หากต้องการให้ข้อความมีความปลอดภัยจากผู้ใช้รายอื่น จะต้องใช้กุญแจแยกต่างหากสำหรับผู้ใช้แต่ละคู่ที่เป็นไปได้

ในทางตรงกันข้าม ในระบบการเข้ารหัสแบบกุญแจสาธารณะ กุญแจสาธารณะสามารถเผยแพร่ได้อย่างกว้างขวางและเปิดเผย และมีเพียงกุญแจส่วนตัวที่เกี่ยวข้องเท่านั้นที่จำเป็นต้องเก็บเป็นความลับ

การเข้ารหัสแบบกุญแจสาธารณะสองประเภทที่รู้จักกันดีที่สุด ได้แก่ลายเซ็นดิจิทัลและการเข้ารหัสแบบกุญแจสาธารณะ:

  • ใน ระบบ ลายเซ็นดิจิทัลผู้ส่งสามารถใช้คีย์ส่วนตัวร่วมกับข้อความเพื่อสร้างลายเซ็นได้ใครก็ตามที่มีคีย์สาธารณะที่เกี่ยวข้องสามารถตรวจสอบได้ว่าลายเซ็นตรงกับข้อความหรือไม่ แต่ผู้ปลอมแปลงที่ไม่รู้คีย์ส่วนตัวจะไม่สามารถสร้างคู่ข้อความ/ลายเซ็นใดๆ ที่จะผ่านการตรวจสอบด้วยคีย์สาธารณะได้[ 5 ] [ 6 ] [ 7 ]

ตัวอย่างเช่น ผู้เผยแพร่ซอฟต์แวร์สามารถสร้างคู่คีย์ลายเซ็นและรวมคีย์สาธารณะไว้ในซอฟต์แวร์ที่ติดตั้งบนคอมพิวเตอร์ ต่อมา ผู้เผยแพร่สามารถแจกจ่ายการอัปเดตซอฟต์แวร์ที่ลงนามโดยใช้คีย์ส่วนตัว และคอมพิวเตอร์ใดๆ ที่ได้รับการอัปเดตสามารถยืนยันความถูกต้องได้โดยการตรวจสอบลายเซ็นโดยใช้คีย์สาธารณะ ตราบใดที่ผู้เผยแพร่ซอฟต์แวร์เก็บรักษาคีย์ส่วนตัวไว้เป็นความลับ แม้ว่าผู้ปลอมแปลงจะสามารถแจกจ่ายการอัปเดตที่เป็นอันตรายไปยังคอมพิวเตอร์ได้ พวกเขาก็ไม่สามารถโน้มน้าวให้คอมพิวเตอร์เชื่อว่าการอัปเดตที่เป็นอันตรายนั้นเป็นของแท้ได้

  • ใน ระบบ การเข้ารหัสแบบกุญแจสาธารณะใครก็ตามที่มีกุญแจสาธารณะสามารถเข้ารหัสข้อความได้ ทำให้ได้ข้อความที่เข้ารหัสแต่มีเพียงผู้ที่รู้กุญแจส่วนตัวที่เกี่ยวข้องเท่านั้นที่สามารถถอดรหัสข้อความที่เข้ารหัสเพื่อรับข้อความต้นฉบับได้[ 8 ]

ตัวอย่างเช่น นักข่าวสามารถเผยแพร่กุญแจสาธารณะของคู่กุญแจเข้ารหัสบนเว็บไซต์ เพื่อให้แหล่งข่าวสามารถส่งข้อความลับไปยังสำนักข่าวในรูปแบบข้อความเข้ารหัสได้ เฉพาะนักข่าวที่รู้กุญแจส่วนตัวที่เกี่ยวข้องเท่านั้นที่จะสามารถถอดรหัสข้อความเข้ารหัสเพื่อรับข้อความจากแหล่งข่าวได้ ผู้ที่ดักฟังอ่านอีเมลระหว่างทางไปยังนักข่าวไม่สามารถถอดรหัสข้อความเข้ารหัสได้

อย่างไรก็ตาม การเข้ารหัสแบบกุญแจสาธารณะไม่ได้ปกปิดข้อมูลเมตาเช่น คอมพิวเตอร์ที่ผู้ส่งใช้ส่งข้อความ เวลาที่ส่ง หรือความยาวของข้อความ[ 9 ] [ 10 ] [ 11 ] [ 12 ] การเข้ารหัสแบบกุญแจสาธารณะเพียงอย่างเดียวก็ไม่ได้บอกอะไรแก่ผู้รับเกี่ยวกับผู้ส่งข้อความ[ 8 ] : 283 [ 13 ] [ 14 ] —มันเพียงแค่ปกปิดเนื้อหาของข้อความเท่านั้น

แอปพลิเคชันที่สร้างขึ้นบนการเข้ารหัสแบบกุญแจสาธารณะ ได้แก่ การตรวจสอบความถูกต้องของเว็บเซิร์ฟเวอร์ด้วยTLS , เงินดิจิทัล , การตกลงกุญแจโดย ใช้รหัสผ่าน , การตรวจสอบความถูกต้องและการปกปิดเนื้อหาอีเมลด้วยOpenPGPหรือS/MIMEและบริการประทับเวลาและโปรโตคอล การไม่ปฏิเสธความรับผิด

ประเด็นสำคัญประการหนึ่งคือ ความมั่นใจหรือหลักฐานที่พิสูจน์ได้ว่ากุญแจสาธารณะนั้นเป็นของแท้ กล่าวคือ ถูกต้องและเป็นของบุคคลหรือหน่วยงานที่กล่าวอ้าง และไม่ได้ถูกแก้ไขหรือแทนที่โดยบุคคลที่สาม (ซึ่งอาจมีเจตนาร้าย) มีแนวทางที่เป็นไปได้หลายประการในการแก้ไขปัญหานี้ รวมถึง:

โครงสร้างพื้นฐานกุญแจสาธารณะ (PKI) คือระบบที่บุคคลที่สามตั้งแต่หนึ่งรายขึ้นไป ซึ่งรู้จักกันในชื่อหน่วยงานออกใบรับรอง ทำหน้าที่รับรองความเป็นเจ้าของคู่กุญแจ TLS อาศัยระบบนี้ นั่นหมายความว่าระบบ PKI (ซอฟต์แวร์ ฮาร์ดแวร์ และการจัดการ) สามารถเชื่อถือได้โดยทุกฝ่ายที่เกี่ยวข้อง

เครือข่ายความไว้วางใจกระจายอำนาจการตรวจสอบสิทธิ์โดยใช้การรับรองเฉพาะบุคคลของลิงก์ระหว่างผู้ใช้และกุญแจสาธารณะของพวกเขาPGPใช้แนวทางนี้ นอกเหนือจากการค้นหาในระบบชื่อโดเมน (DNS) ระบบ DKIMสำหรับการลงนามอีเมลแบบดิจิทัลก็ใช้แนวทางนี้เช่นกัน

ระบบเข้ารหัสแบบไฮบริด

เนื่องจากอัลกอริธึมการเข้ารหัสแบบอสมมาตรนั้นใช้ทรัพยากรการคำนวณมากกว่าแบบสมมาตรมาก จึงมักใช้อัลกอริธึมการแลกเปลี่ยนคีย์แบบอสมมาตร สาธารณะ/ส่วนตัว เพื่อเข้ารหัสและแลกเปลี่ยนคีย์แบบสมมาตรซึ่งจากนั้นจะถูกใช้โดย การเข้ารหัสแบบสมมาตร เพื่อส่งข้อมูลโดยใช้ คีย์แบบสมมาตรที่ใช้ร่วมกันแล้วสำหรับอัลกอริธึมการเข้ารหัสแบบสมมาตร PGP, SSHและตระกูลSSL/TLS ใช้ขั้นตอนดังกล่าว จึงเรียกว่า ระบบเข้ารหัสแบบไฮบริด การแลกเปลี่ยนคีย์ เริ่มต้น โดยใช้การเข้ารหัสแบบ อสมมาตรเพื่อแบ่งปัน คีย์ แบบสมมาตร ที่สร้าง โดยเซิร์ฟเวอร์จากเซิร์ฟเวอร์ไปยังไคลเอนต์นั้นมีข้อดีคือไม่จำเป็นต้องแบ่งปันคีย์แบบสมมาตรไว้ล่วงหน้าด้วยตนเอง เช่น บนกระดาษที่พิมพ์หรือแผ่นดิสก์ที่ส่งโดยผู้ส่งสาร ในขณะเดียวกันก็ให้ปริมาณข้อมูลที่ส่งผ่านได้สูงกว่าของการเข้ารหัสแบบสมมาตรเมื่อเทียบกับการเข้ารหัสแบบอสมมาตรสำหรับการเชื่อมต่อที่ใช้ร่วมกันที่เหลืออยู่

จุดอ่อน

เช่นเดียวกับระบบรักษาความปลอดภัยอื่นๆ การเข้ารหัสแบบกุญแจสาธารณะก็มีจุดอ่อนต่างๆ มากมาย นอกเหนือจากการเลือกอัลกอริธึมกุญแจแบบอสมมาตรที่ไม่เหมาะสม (มีเพียงไม่กี่อัลกอริธึมที่ได้รับการยอมรับอย่างกว้างขวางว่าน่าพอใจ) หรือความยาวของกุญแจที่สั้นเกินไป ความเสี่ยงด้านความปลอดภัยที่สำคัญที่สุดคือ กุญแจส่วนตัวของคู่กุญแจอาจถูกเปิดเผย ความปลอดภัยของข้อความ การตรวจสอบสิทธิ์ ฯลฯ ที่เข้ารหัสด้วยกุญแจส่วนตัวนี้จะหายไปทั้งหมด โดยทั่วไปแล้ว ปัญหานี้จะถูกแก้ไข (เช่นใน ระบบ TLS รุ่นใหม่ๆ ) โดยใช้ ระบบที่มีความสามารถใน การรักษาความลับแบบส่งต่อ (Forward secrecy ) ซึ่งจะสร้างชุดกุญแจชั่วคราวระหว่างการสื่อสาร ซึ่งจะต้องถูกเปิดเผยด้วยจึงจะทำให้การสื่อสารถูกบุกรุกได้

นอกจากนี้ ด้วยการเกิดขึ้นของคอมพิวเตอร์ควอนตัมอัลกอริทึมคีย์แบบอสมมาตรจำนวนมากถือว่ามีความเสี่ยงต่อการโจมตี และกำลังมีการพัฒนารูปแบบที่ต้านทานควอนตัมแบบใหม่เพื่อเอาชนะปัญหานี้[ 15 ] [ 16 ]

นอกเหนือจากจุดอ่อนของอัลกอริทึมหรือความยาวของคีย์แล้ว การศึกษาบางชิ้นยังระบุถึงความเสี่ยงเมื่อมีการมอบหมายการควบคุมคีย์ส่วนตัวให้กับบุคคลที่สาม การวิจัยเกี่ยวกับการนำโครงสร้างพื้นฐานคีย์สาธารณะไปใช้ในอุรุกวัยภายใต้กฎหมาย 18.600 พบว่าการดูแลคีย์แบบรวมศูนย์โดยผู้ให้บริการความน่าเชื่อถือ (TSPs) อาจทำให้หลักการรักษาความลับของคีย์ส่วนตัวอ่อนแอลง เพิ่มความเสี่ยงต่อการโจมตีแบบคนกลางและก่อให้เกิดความกังวลเกี่ยวกับการไม่สามารถปฏิเสธความรับผิดทางกฎหมายได้[ 17 ]

อัลกอริทึม

โดยทฤษฎีแล้ว ระบบกุญแจสาธารณะทั้งหมดมีความเสี่ยงต่อ " การโจมตีแบบค้นหากุญแจแบบเดาสุ่ม " [ 18 ]อย่างไรก็ตาม การโจมตีดังกล่าวเป็นไปไม่ได้หากปริมาณการคำนวณที่จำเป็นต่อความสำเร็จ – ซึ่งClaude Shannon เรียกว่า "ปัจจัยงาน" – เกินความสามารถของผู้โจมตีทั้งหมด ในหลายกรณี ปัจจัยงานสามารถเพิ่มขึ้นได้โดยการเลือกกุญแจที่ยาวขึ้น แต่บางอัลกอริทึมอาจมีปัจจัยงานที่ต่ำกว่ามาก ทำให้ความต้านทานต่อการโจมตีแบบเดาสุ่ม (เช่น จากกุญแจที่ยาวขึ้น) ไม่มีความสำคัญ อัลกอริทึมพิเศษและเฉพาะบางอย่างได้รับการพัฒนาขึ้นเพื่อช่วยในการโจมตีอัลกอริทึมการเข้ารหัสกุญแจสาธารณะบางอย่าง ทั้ง การเข้ารหัส RSAและElGamalมีการโจมตีที่ทราบกันดีว่าเร็วกว่าวิธีการเดาสุ่มมาก อย่างไรก็ตาม ยังไม่มีอัลกอริทึมใดที่ได้รับการปรับปรุงเพียงพอที่จะนำไปใช้ได้จริง

พบจุดอ่อนสำคัญในอัลกอริธึมคีย์แบบอสมมาตรหลายตัวที่เคยมีแนวโน้มดี อัลกอริธึม "การบรรจุกระเป๋า"พบว่าไม่ปลอดภัยหลังจากมีการพัฒนาการโจมตีแบบใหม่[ 19 ]เช่นเดียวกับฟังก์ชันการเข้ารหัสทั้งหมด การใช้งานคีย์สาธารณะอาจมีความเสี่ยงต่อการโจมตีแบบช่องทางด้านข้างที่ใช้ประโยชน์จากการรั่วไหลของข้อมูลเพื่อทำให้การค้นหาคีย์ลับง่ายขึ้น การโจมตีเหล่านี้มักไม่ขึ้นอยู่กับอัลกอริธึมที่ใช้ การวิจัยกำลังดำเนินการเพื่อค้นพบและป้องกันการโจมตีแบบใหม่

การเปลี่ยนแปลงคีย์สาธารณะ

อีกหนึ่งช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้นจากการใช้คีย์แบบไม่สมมาตร คือ ความเป็นไปได้ของการโจมตีแบบ "คนกลาง" (man-in-the- middle attack) ซึ่งการสื่อสารคีย์สาธารณะจะถูกดักฟังโดยบุคคลที่สาม ("คนกลาง") จากนั้นจึงทำการแก้ไขเพื่อให้ได้คีย์สาธารณะที่แตกต่างออกไป ข้อความและการตอบกลับที่เข้ารหัสจะต้องถูกดักฟัง ถอดรหัส และเข้ารหัสใหม่โดยผู้โจมตีในทุกกรณี โดยใช้คีย์สาธารณะที่ถูกต้องสำหรับส่วนการสื่อสารที่แตกต่างกัน เพื่อหลีกเลี่ยงการถูกสงสัย

การสื่อสารจะถือว่าไม่ปลอดภัยเมื่อมีการส่งข้อมูลในลักษณะที่อนุญาตให้มีการดักฟัง (เรียกอีกอย่างว่า " การดักฟัง ") คำศัพท์เหล่านี้หมายถึงการอ่านข้อมูลส่วนตัวของผู้ส่งทั้งหมด การสื่อสารจะไม่ปลอดภัยเป็นพิเศษเมื่อผู้ส่งไม่สามารถป้องกันหรือตรวจสอบการดักฟังได้[ 20 ]

การโจมตีแบบคนกลาง (man-in-the-middle attack) อาจทำได้ยากเนื่องจากความซับซ้อนของโปรโตคอลความปลอดภัยสมัยใหม่ อย่างไรก็ตาม งานจะง่ายขึ้นเมื่อผู้ส่งใช้สื่อที่ไม่ปลอดภัย เช่น เครือข่ายสาธารณะอินเทอร์เน็ตหรือการสื่อสารไร้สาย ในกรณีเหล่านี้ ผู้โจมตีสามารถบุกรุกโครงสร้างพื้นฐานการสื่อสารแทนที่จะเป็นข้อมูลเอง สมมติว่ามีเจ้าหน้าที่ที่ประสงค์ร้ายในผู้ให้บริการอินเทอร์เน็ต (ISP) อาจพบว่าการโจมตีแบบคนกลางค่อนข้างตรงไปตรงมา การดักจับกุญแจสาธารณะจะต้องใช้เพียงแค่การค้นหากุญแจขณะที่มันถูกส่งผ่านฮาร์ดแวร์การสื่อสารของ ISP ซึ่งในระบบกุญแจแบบอสมมาตรที่ได้รับการใช้งานอย่างถูกต้อง ความเสี่ยงนี้จึงไม่สำคัญมากนัก

ในการโจมตีแบบ man-in-the-middle ขั้นสูงบางประเภท ฝ่ายหนึ่งของการสื่อสารจะเห็นข้อมูลต้นฉบับ ในขณะที่อีกฝ่ายจะได้รับข้อมูลที่เป็นอันตราย การโจมตีแบบ man-in-the-middle แบบไม่สมมาตรสามารถป้องกันไม่ให้ผู้ใช้ตระหนักว่าการเชื่อมต่อของตนถูกบุกรุก ซึ่งยังคงเป็นเช่นนั้นแม้ว่าข้อมูลของผู้ใช้รายหนึ่งจะถูกทราบว่าถูกบุกรุกแล้วก็ตาม เนื่องจากข้อมูลยังคงดูปกติดีสำหรับผู้ใช้อีกราย สิ่งนี้อาจนำไปสู่ความขัดแย้งที่สับสนระหว่างผู้ใช้ เช่น "ต้องเป็นที่ฝั่งคุณแน่!" ทั้งๆ ที่ไม่มีผู้ใช้รายใดผิด ดังนั้น การโจมตีแบบ man-in-the-middle จึงสามารถป้องกันได้อย่างสมบูรณ์ก็ต่อเมื่อโครงสร้างพื้นฐานการสื่อสารถูกควบคุมโดยฝ่ายใดฝ่ายหนึ่งหรือทั้งสองฝ่าย เช่น ผ่านเส้นทางแบบมีสายภายในอาคารของผู้ส่งเอง โดยสรุปแล้ว คีย์สาธารณะจะเปลี่ยนแปลงได้ง่ายกว่าเมื่อฮาร์ดแวร์การสื่อสารที่ผู้ส่งใช้ถูกควบคุมโดยผู้โจมตี[ 21 ] [ 22 ] [ 23 ]

โครงสร้างพื้นฐานกุญแจสาธารณะ

แนวทางหนึ่งในการป้องกันการโจมตีดังกล่าวคือการใช้โครงสร้างพื้นฐานกุญแจสาธารณะ (PKI) ซึ่งเป็นชุดของบทบาท นโยบาย และขั้นตอนที่จำเป็นในการสร้าง จัดการ แจกจ่าย ใช้ จัดเก็บ และเพิกถอนใบรับรองดิจิทัล รวมถึงการจัดการการเข้ารหัสกุญแจสาธารณะ อย่างไรก็ตาม แนวทางนี้ก็มีจุดอ่อนที่อาจเกิดขึ้นได้

ตัวอย่างเช่น หน่วยงานออกใบรับรองจะต้องได้รับความไว้วางใจจากทุกฝ่ายที่เกี่ยวข้องว่าได้ตรวจสอบตัวตนของผู้ถือคีย์อย่างถูกต้องแล้ว ได้ตรวจสอบความถูกต้องของคีย์สาธารณะเมื่อออกใบรับรองแล้ว มีความปลอดภัยจากการโจรกรรมทางคอมพิวเตอร์ และได้จัดเตรียมการตรวจสอบใบรับรองทั้งหมดกับผู้เข้าร่วมทั้งหมดก่อนที่จะเริ่มการสื่อสารที่ได้รับการปกป้อง เช่น เว็บเบราว์เซอร์จะได้รับรายการ "ใบรับรองตัวตนที่ลงนามด้วยตนเอง" จำนวนมากจากผู้ให้บริการ PKI ซึ่งใช้ในการตรวจสอบความน่าเชื่อถือของหน่วยงานออกใบรับรอง และในขั้นตอนที่สอง ตรวจสอบใบรับรองของผู้สื่อสารที่อาจเกิดขึ้น ผู้โจมตีที่สามารถหลอกลวงหน่วยงานออกใบรับรองเหล่านั้นให้ออกใบรับรองสำหรับคีย์สาธารณะปลอมได้ ก็จะสามารถโจมตีแบบ "คนกลาง" ได้ง่ายเหมือนกับการไม่ใช้ระบบใบรับรองเลย ผู้โจมตีที่เจาะเข้าไปในเซิร์ฟเวอร์ของหน่วยงานและได้รับชุดใบรับรองและกุญแจ (ทั้งสาธารณะและส่วนตัว) จะสามารถปลอมแปลง ปลอมตัว ถอดรหัส และปลอมแปลงธุรกรรมได้อย่างไม่จำกัด โดยสมมติว่าพวกเขาสามารถแทรกตัวเข้าไปในกระแสการสื่อสารได้

แม้จะมีปัญหาทางทฤษฎีและปัญหาที่อาจเกิดขึ้นได้ แต่โครงสร้างพื้นฐานกุญแจสาธารณะก็ยังถูกใช้งานอย่างแพร่หลาย ตัวอย่างเช่นTLSและSSLซึ่งเป็นรุ่นก่อนหน้า มักใช้เพื่อรักษาความปลอดภัยสำหรับการทำธุรกรรมผ่านเว็บเบราว์เซอร์ (เช่น เว็บไซต์ส่วนใหญ่ใช้ TLS สำหรับHTTPS )

นอกเหนือจากความต้านทานต่อการโจมตีของคู่กุญแจเฉพาะแล้ว ความปลอดภัยของลำดับชั้น การรับรอง ก็เป็นสิ่งที่ต้องพิจารณาเมื่อใช้งานระบบกุญแจสาธารณะ หน่วยงานออกใบรับรองบางแห่ง – โดยปกติจะเป็นโปรแกรมที่สร้างขึ้นโดยเฉพาะซึ่งทำงานบนคอมพิวเตอร์เซิร์ฟเวอร์ – จะรับรองตัวตนที่กำหนดให้กับกุญแจส่วนตัวเฉพาะโดยการสร้างใบรับรองดิจิทัล ใบรับรองดิจิทัลกุญแจสาธารณะโดยทั่วไปจะมีอายุการใช้งานหลายปี ดังนั้นกุญแจส่วนตัวที่เกี่ยวข้องจะต้องได้รับการเก็บรักษาอย่างปลอดภัยตลอดช่วงเวลานั้น เมื่อกุญแจส่วนตัวที่ใช้ในการสร้างใบรับรองในระดับที่สูงกว่าในลำดับชั้นของเซิร์ฟเวอร์ PKI ถูกบุกรุกหรือเปิดเผยโดยไม่ได้ตั้งใจการโจมตีแบบ "คนกลาง " ก็เป็นไปได้ ทำให้ใบรับรองใดๆ ที่อยู่ต่ำกว่านั้นไม่ปลอดภัยโดยสิ้นเชิง

ข้อมูลเมตาที่ไม่ได้เข้ารหัส

ซอฟต์แวร์การเข้ารหัสแบบกุญแจสาธารณะส่วนใหญ่ที่มีอยู่ ไม่ได้ซ่อนข้อมูลเมตาในส่วนหัวของข้อความ ซึ่งอาจรวมถึงข้อมูลระบุตัวตนของผู้ส่งและผู้รับ วันที่ส่ง หัวข้อ และซอฟต์แวร์ที่พวกเขาใช้ เป็นต้น แต่จะซ่อนเฉพาะส่วนเนื้อหาของข้อความเท่านั้น และสามารถถอดรหัสได้ด้วยกุญแจส่วนตัวของผู้รับเท่านั้น นั่นหมายความว่าบุคคลที่สามสามารถสร้างแบบจำลองรายละเอียดของผู้เข้าร่วมในเครือข่ายการสื่อสาร รวมถึงหัวข้อที่กำลังพูดคุยกันได้ แม้ว่าส่วนเนื้อหาของข้อความจะถูกซ่อนไว้ก็ตาม

อย่างไรก็ตาม มีการสาธิตการส่งข้อความที่มีส่วนหัวที่เข้ารหัสเมื่อไม่นานมานี้ ซึ่งจะปกปิดตัวตนของผู้ส่งและผู้รับ และลดข้อมูลเมตาที่มีให้แก่บุคคลที่สามลงอย่างมาก[ 24 ] แนวคิดนี้อยู่บนพื้นฐานของคลังข้อมูลแบบเปิดที่มีบล็อกข้อมูลเมตาที่เข้ารหัสแยกต่างหากและข้อความที่เข้ารหัส เฉพาะผู้รับที่ตั้งใจไว้เท่านั้นที่สามารถถอดรหัสบล็อกข้อมูลเมตาได้ และเมื่อทำเช่นนั้นแล้ว พวกเขาสามารถระบุและดาวน์โหลดข้อความของตนเองและถอดรหัสได้ ระบบส่งข้อความดังกล่าวอยู่ในขั้นตอนการทดลองและยังไม่ได้นำไปใช้งาน การขยายวิธีการนี้จะเปิดเผยให้บุคคลที่สามทราบเพียงเซิร์ฟเวอร์กล่องจดหมายที่ผู้รับใช้และเวลาประทับของการส่งและรับเท่านั้น เซิร์ฟเวอร์อาจถูกใช้ร่วมกันโดยผู้ใช้หลายพันคน ทำให้การสร้างแบบจำลองเครือข่ายสังคมมีความท้าทายมากขึ้น

ประวัติศาสตร์

ในยุคแรกเริ่มของการเข้ารหัสลับคู่กรณีสองฝ่ายจะใช้กุญแจร่วมกัน โดยแลกเปลี่ยนกันด้วยวิธีการที่ปลอดภัยแต่ไม่ใช่การเข้ารหัสลับ เช่น การพบปะกันแบบตัวต่อตัว หรือการใช้ผู้ส่งสารที่น่าเชื่อถือ กุญแจนี้ซึ่งทั้งสองฝ่ายต้องเก็บรักษาเป็นความลับอย่างเด็ดขาด จะสามารถนำมาใช้ในการแลกเปลี่ยนข้อความที่เข้ารหัสลับได้ อย่างไรก็ตาม วิธีการแจกจ่ายกุญแจแบบนี้ก่อให้เกิดปัญหาในทางปฏิบัติหลาย ประการ

ความคาดหวัง

ในหนังสือThe Principles of Science ปี พ.ศ. 2417 วิลเลียม สแตนลีย์ เจวอนส์เขียนไว้ว่า: [ 25 ]

ผู้อ่านสามารถบอกได้ไหมว่าตัวเลขสองตัวใดที่คูณกันแล้วจะได้ผลลัพธ์เป็น8,616,460,799 ? [ 26 ]ฉันคิดว่าไม่น่าจะมีใครรู้ได้นอกจากตัวฉันเอง[ 25 ]

ที่นี่เขาได้อธิบายความสัมพันธ์ของฟังก์ชันทางเดียวกับการเข้ารหัส และได้กล่าวถึง ปัญหา การแยกตัวประกอบที่ใช้ในการสร้างฟังก์ชันกับดัก โดยเฉพาะ ในเดือนกรกฎาคม พ.ศ. 2539 นักคณิตศาสตร์Solomon W. Golombกล่าวว่า "Jevons คาดการณ์คุณสมบัติสำคัญของอัลกอริทึม RSA สำหรับการเข้ารหัสแบบกุญแจสาธารณะ แม้ว่าเขาจะไม่ได้คิดค้นแนวคิดของการเข้ารหัสแบบกุญแจสาธารณะก็ตาม" [ 27 ]

การค้นพบที่เป็นความลับ

ในปี พ.ศ. 2513 เจมส์ เอช. เอลลิสนักเข้ารหัสชาวอังกฤษที่สำนักงานใหญ่การสื่อสารของรัฐบาล สหราชอาณาจักร (GCHQ) ได้คิดค้นความเป็นไปได้ของ "การเข้ารหัสที่ไม่เป็นความลับ" (ปัจจุบันเรียกว่าการเข้ารหัสแบบกุญแจสาธารณะ) แต่ไม่เห็นหนทางที่จะนำไปใช้ได้[ 28 ] [ 29 ] [ 30 ]

ในปี พ.ศ. 2516 คลิฟฟอร์ด ค็อกส์ เพื่อนร่วมงานของเขาได้นำ อัลกอริทึมการเข้ารหัส RSAมาใช้ ซึ่งเป็นวิธีการเข้ารหัสแบบ "ไม่เป็นความลับ" ที่ใช้งานได้จริง และในปี พ.ศ. 2517 มัลคอล์ม เจ. วิลเลียมสัน นักคณิตศาสตร์และนักเข้ารหัสลับอีกคนหนึ่งของ GCHQ ได้พัฒนาสิ่งที่ปัจจุบันรู้จักกันในชื่อการแลกเปลี่ยนกุญแจ Diffie–Hellmanโครงการนี้ยังถูกส่งต่อไปยังสำนักงานความมั่นคงแห่งชาติ ของสหรัฐอเมริกา ด้วย[ 31 ]ทั้งสององค์กรมุ่งเน้นด้านการทหารและมีกำลังการประมวลผลที่จำกัดอยู่แล้ว ศักยภาพของการเข้ารหัสแบบกุญแจสาธารณะจึงยังไม่ได้รับการตระหนักโดยทั้งสององค์กร ตามที่ราล์ฟ เบนจามิน กล่าวไว้ว่า :

ฉันตัดสินว่ามันสำคัญที่สุดสำหรับการใช้งานทางทหาร ... หากคุณสามารถแบ่งปันกุญแจของคุณได้อย่างรวดเร็วและทางอิเล็กทรอนิกส์ คุณจะมีข้อได้เปรียบที่สำคัญเหนือคู่ต่อสู้ของคุณ เฉพาะในช่วงท้ายของการวิวัฒนาการจากการออกแบบสถาปัตยกรรมอินเทอร์เน็ตแบบเปิด ของ Berners-Lee สำหรับ CERNการปรับปรุงและการนำไปใช้สำหรับArpanet ... การเข้ารหัสกุญแจสาธารณะจึงตระหนักถึงศักยภาพอย่างเต็มที่[ 31 ]

การค้นพบเหล่านี้ไม่ได้รับการยอมรับอย่างเป็นทางการจนกระทั่งการวิจัยได้รับการเปิดเผยโดยรัฐบาลอังกฤษในปี 1997 [ 32 ]

การค้นพบสาธารณะ

ในปี พ.ศ. 2519 Whitfield DiffieและMartin Hellmanได้เผยแพร่ระบบการเข้ารหัสแบบกุญแจไม่สมมาตรโดยได้รับอิทธิพลจากงานของRalph Merkle เกี่ยวกับการแจกจ่ายกุญแจสาธารณะ และได้เปิดเผยวิธีการตกลงกุญแจสาธารณะ วิธีการแลกเปลี่ยนกุญแจนี้ ซึ่งใช้ การยกกำลังในฟิลด์จำกัด กลายเป็นที่รู้จักในชื่อการแลกเปลี่ยนกุญแจ Diffie–Hellman [ 33 ] นี่เป็นวิธีปฏิบัติที่เผยแพร่เป็นครั้งแรกสำหรับการสร้างกุญแจลับร่วมกันผ่านช่องทางการสื่อสารที่ได้รับการรับรอง (แต่ไม่ใช่ช่องทางการสื่อสารที่เป็นความลับ) โดยไม่ต้องใช้กุญแจลับร่วมกันมาก่อน เทคนิค "การตกลงกุญแจสาธารณะ" ของ Merkle กลายเป็นที่รู้จักในชื่อปริศนาของ Merkleและถูกคิดค้นขึ้นในปี พ.ศ. 2517 และเผยแพร่ในปี พ.ศ. 2521 เท่านั้น ทำให้การเข้ารหัสแบบไม่สมมาตรเป็นสาขาใหม่ในด้านการเข้ารหัส แม้ว่าการเข้ารหัสเองจะมีอายุย้อนหลังไปมากกว่า 2,000 ปีแล้วก็ตาม[ 34 ]

ในปี พ.ศ. 2520 แผนการทั่วไปของ Cocks ถูกคิดค้นขึ้นโดยอิสระโดยRon Rivest , Adi ShamirและLeonard Adlemanซึ่งทั้งหมดอยู่ที่MIT ในขณะนั้น ผู้เขียนกลุ่มหลังได้ตีพิมพ์ผลงานของพวกเขาในปี พ.ศ. 2521 ใน คอลัมน์ Scientific AmericanของMartin Gardnerและอัลกอริทึมนี้จึงเป็นที่รู้จักในชื่อRSAตามอักษรย่อของพวกเขา[ 35 ] RSA ใช้การยกกำลังโมดูลัสผลคูณของจำนวนเฉพาะขนาด ใหญ่สองตัว เพื่อเข้ารหัสและถอดรหัส โดยดำเนินการทั้งการเข้ารหัสแบบกุญแจสาธารณะและลายเซ็นดิจิทัลแบบกุญแจสาธารณะ ความปลอดภัยของมันเชื่อมโยงกับความยากลำบากอย่างยิ่งในการแยกตัวประกอบจำนวนเต็มขนาดใหญ่ซึ่งเป็นปัญหาที่ยังไม่มีเทคนิคทั่วไปที่มีประสิทธิภาพเป็นที่รู้จัก คำอธิบายของอัลกอริทึมได้รับการตีพิมพ์ใน คอลัมน์ Mathematical Gamesในฉบับเดือนสิงหาคม พ.ศ. 2520 ของScientific American [ 36 ]

นับตั้งแต่ทศวรรษ 1970 เป็นต้นมา มีการพัฒนา เทคนิค การเข้ารหัส ลายเซ็นดิจิทัล การตกลงรหัส และเทคนิคอื่นๆ อีกมากมายและหลากหลายประเภท รวมถึงลายเซ็น Rabin , การเข้ารหัส ElGamal , DSAและECC

นอกเหนือจากอัลกอริธึมที่พัฒนาขึ้นภายในชุมชนวิชาการและมาตรฐานแบบเปิดแล้ว หลายประเทศยังได้พัฒนามาตรฐานการเข้ารหัสแบบกุญแจสาธารณะระดับชาติเพื่อใช้ภายในเขตอำนาจศาลของตน ซึ่งได้แก่SM2 และ SM9 (จีน), GOST R 34.10-2012 (รัสเซีย), EC-KCDSA (เกาหลีใต้) และ DSTU 4145 ( ยูเครน )

ตัวอย่าง

ตัวอย่างของเทคนิคการสร้างรหัสลับแบบอสมมาตรที่เป็นที่ยอมรับและใช้งานได้หลากหลาย ได้แก่:

ตัวอย่างของอัลกอริธึมกุญแจแบบไม่สมมาตรที่ยังไม่เป็นที่นิยมใช้กันอย่างแพร่หลาย ได้แก่:

ตัวอย่างของอัลกอริธึมการสร้างคีย์แบบไม่สมมาตรที่โดดเด่นแต่ไม่ปลอดภัย ได้แก่:

ตัวอย่างของโปรโตคอลที่ใช้อัลกอริธึมกุญแจแบบไม่สมมาตร ได้แก่:

ดูเพิ่มเติม

หมายเหตุ

แหล่งที่มา

  • Hirsch, Frederick J. "การเข้ารหัสที่แข็งแกร่งของ SSL/TLS: บทนำ" . Apache HTTP Server . สืบค้นเมื่อ17 เมษายน 2556 .สองส่วนแรกประกอบด้วยบทนำที่ดีมากเกี่ยวกับการเข้ารหัสแบบกุญแจสาธารณะ
  • เฟอร์กูสัน, นีลส์ ; ชไนเออร์, บรูซ (2003). การเข้ารหัสลับเชิงปฏิบัติ . ไวลีย์ . ISBN 0-471-22357-3.
  • Katz, Jon ; Lindell, Y. (2007). บทนำสู่การเข้ารหัสสมัยใหม่ . สำนักพิมพ์ CRC . ISBN 978-1-58488-551-1.
  • Menezes, AJ ; van Oorschot, PC; Vanstone, Scott A. (1997). Handbook of Applied Cryptography . Taylor & Francis. ISBN 0-8493-8523-7.
  • IEEE 1363: ข้อกำหนดมาตรฐานสำหรับการเข้ารหัสแบบกุญแจสาธารณะ
  • Christof Paar และ Jan Pelzl, "บทนำสู่การเข้ารหัสแบบกุญแจสาธารณะ"บทที่ 6 ของ "ความเข้าใจเกี่ยวกับการเข้ารหัส: ตำราสำหรับนักศึกษาและผู้ปฏิบัติงาน" (เว็บไซต์ประกอบมีหลักสูตรการเข้ารหัสออนไลน์ที่ครอบคลุมการเข้ารหัสแบบกุญแจสาธารณะ) Springer, 2009
  • ซาโลมา, อาร์โต (1996) การเข้ารหัสคีย์สาธารณะ (ฉบับที่ 2) เบอร์ลิน: สปริงเกอร์ . 275. ดอย : 10.1007/978-3-662-03269-5 . ไอเอสบีเอ็น 978-3-662-03269-5. S2CID  24751345 .
  • บทสัมภาษณ์ประวัติศาสตร์ปากเปล่ากับมาร์ติน เฮลล์แมนสถาบันชาร์ลส์ แบ็บเบจมหาวิทยาลัยมินนิโซตา นักวิชาการด้านวิทยาการเข้ารหัสชั้นนำมาร์ติน เฮลล์แมนกล่าวถึงสถานการณ์และแนวคิดพื้นฐานที่นำไปสู่การคิดค้นการเข้ารหัสแบบกุญแจสาธารณะร่วมกับวิทฟิลด์ ดิฟฟีและราล์ฟ เมอร์เคิลที่มหาวิทยาลัยสแตนฟอร์ดในช่วงกลางทศวรรษ 1970
  • เรื่องราวเกี่ยวกับการที่ GCHQ เก็บความลับเรื่องการคิดค้น PKE ไว้จนถึงปี 1997
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Public-key_cryptography&oldid=1359732474 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การเข้ารหัสแบบกุญแจสาธารณะ

การเข้ารหัสแบบกุญแจสาธารณะ หรือ การเข้ารหัสแบบไม่สมมาตร คือสาขาของ ระบบ การเข้ารหัส ที่ใช้คู่กุญแจที่เกี่ยวข้องกัน แต่ละคู่กุญแจประกอบด้วย กุญแจสาธารณะ และ กุญแจส่วนตัว...

คำอธิบาย

ก่อนช่วงกลางทศวรรษ 1970 ระบบการเข้ารหัสทั้งหมดใช้ อัลกอริทึมแบบกุญแจสมมาตร ซึ่ง ใช้ กุญแจเข้ารหัส เดียวกัน กับอัลกอริทึมพื้นฐานโดยทั้งผู้ส่งและผู้รับ โดยทั้งสองฝ่ายต้องเก็บรักษากุญแจไว้เป็นความลับ ด้วยเหตุนี้...

ระบบเข้ารหัสแบบไฮบริด

เนื่องจากอัลกอริธึมการเข้ารหัสแบบอสมมาตรนั้นใช้ทรัพยากรการคำนวณมากกว่าแบบสมมาตรมาก จึงมักใช้ อัลกอริธึมการแลกเปลี่ยนคีย์ แบบอสมมาตร สาธารณะ/ส่วนตัว เพื่อเข้ารหัสและแลกเปลี่ยน คีย์แบบสมมาตร ซึ่งจากนั้นจะถูกใช้โดย การเข้ารหัสแบบสมมาตร เพื่อส่งข้อมูลโดยใช้...

จุดอ่อน

เช่นเดียวกับระบบรักษาความปลอดภัยอื่นๆ การเข้ารหัสแบบกุญแจสาธารณะก็มีจุดอ่อนต่างๆ มากมาย นอกเหนือจากการเลือกอัลกอริธึมกุญแจแบบอสมมาตรที่ไม่เหมาะสม (มีเพียงไม่กี่อัลกอริธึมที่ได้รับการยอมรับอย่างกว้างขวางว่าน่าพอใจ) หรือความยาวของกุญแจที่สั้นเกินไป...