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




การเข้ารหัสแบบกุญแจสาธารณะหรือการเข้ารหัสแบบไม่สมมาตรคือสาขาของ ระบบ การเข้ารหัสที่ใช้คู่กุญแจที่เกี่ยวข้องกัน แต่ละคู่กุญแจประกอบด้วยกุญแจสาธารณะและกุญแจส่วนตัว ที่สอดคล้อง กัน[ 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 ( ยูเครน )
ตัวอย่าง
ตัวอย่างของเทคนิคการสร้างรหัสลับแบบอสมมาตรที่เป็นที่ยอมรับและใช้งานได้หลากหลาย ได้แก่:
- โปรโตคอลการแลกเปลี่ยนกุญแจ Diffie–Hellman
- DSS (มาตรฐานลายเซ็นดิจิทัล) ซึ่งรวมถึงอัลกอริธึมลายเซ็นดิจิทัล
- เอลกามาล
- การเข้ารหัสแบบเส้นโค้งวงรี
- อัลกอริทึมลายเซ็นดิจิทัลเส้นโค้งวงรี (ECDSA)
- ดิฟฟี-เฮลแมนเส้นโค้งวงรี (ECDH)
- Ed25519และEd448 ( EdDSA )
- X25519และX448 (ECDH/EdDH)
- เทคนิค การตกลงรหัสลับ แบบต่างๆที่ตรวจสอบด้วยรหัสผ่าน
- ระบบการเข้ารหัส Paillier
- อัลกอริทึมการเข้ารหัส RSA ( PKCS#1 )
- ระบบการเข้ารหัส Cramer–Shoup
- โปรโตคอลการตกลงคีย์ที่ได้รับการรับรองYAK
ตัวอย่างของอัลกอริธึมกุญแจแบบไม่สมมาตรที่ยังไม่เป็นที่นิยมใช้กันอย่างแพร่หลาย ได้แก่:
- ระบบเข้ารหัสNTRUEncrypt
- ไคเบอร์
- ระบบการเข้ารหัส McEliece
ตัวอย่างของอัลกอริธึมการสร้างคีย์แบบไม่สมมาตรที่โดดเด่นแต่ไม่ปลอดภัย ได้แก่:
ตัวอย่างของโปรโตคอลที่ใช้อัลกอริธึมกุญแจแบบไม่สมมาตร ได้แก่:
- เอส/ไมมี
- GPGคือการใช้งานOpenPGPและเป็นมาตรฐานอินเทอร์เน็ต
- EMV , หน่วยงานออกใบรับรอง EMV
- ไอพีเซค
- พีจีพี
- ZRTPโปรโตคอลVoIPที่ปลอดภัย
- Transport Layer Security (TLS)เป็นมาตรฐานที่กำหนดโดยIETFและมาตรฐานก่อนหน้าคือSecure Socket Layer (SSL)
- SILC
- เอสเอช
- บิตคอยน์
- การส่งข้อความแบบไม่เป็นทางการ
- SM2 (จีน, เส้นโค้งวงรี)
- SM9 (จีน, อิงตามอัตลักษณ์)
- GOST R 34.10-2012 (รัสเซีย, ลายเซ็นเส้นโค้งวงรี)
- EC-KCDSA (เกาหลีใต้, ลายเซ็นเส้นโค้งวงรี)
- DSTU 4145 ( ยูเครน , เส้นโค้งวงรี)
ดูเพิ่มเติม
- หนังสือเกี่ยวกับวิทยาการเข้ารหัสลับ
- GNU Privacy Guard
- การเข้ารหัสตามตัวตน (IBE)
- กุญแจฝาก
- โปรโตคอลข้อตกลงหลัก
- รายการคำศัพท์ PGP
- การเข้ารหัสลับหลังควอนตัม
- ความเป็นส่วนตัวค่อนข้างดี
- นามแฝง
- ลายนิ้วมือกุญแจสาธารณะ
- โครงสร้างพื้นฐานกุญแจสาธารณะ (PKI)
- การคำนวณควอนตัม
- การเข้ารหัสควอนตัม
- เซฟตี้เชลล์ (SSH)
- อัลกอริทึมกุญแจสมมาตร
- ระบบการเข้ารหัสแบบเกณฑ์
- เครือข่ายแห่งความไว้วางใจ
หมายเหตุ
แหล่งที่มา
- 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
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การเข้ารหัสแบบกุญแจสาธารณะ
การเข้ารหัสแบบกุญแจสาธารณะ หรือ การเข้ารหัสแบบไม่สมมาตร คือสาขาของ ระบบ การเข้ารหัส ที่ใช้คู่กุญแจที่เกี่ยวข้องกัน แต่ละคู่กุญแจประกอบด้วย กุญแจสาธารณะ และ กุญแจส่วนตัว...
คำอธิบาย
ก่อนช่วงกลางทศวรรษ 1970 ระบบการเข้ารหัสทั้งหมดใช้ อัลกอริทึมแบบกุญแจสมมาตร ซึ่ง ใช้ กุญแจเข้ารหัส เดียวกัน กับอัลกอริทึมพื้นฐานโดยทั้งผู้ส่งและผู้รับ โดยทั้งสองฝ่ายต้องเก็บรักษากุญแจไว้เป็นความลับ ด้วยเหตุนี้...
ระบบเข้ารหัสแบบไฮบริด
เนื่องจากอัลกอริธึมการเข้ารหัสแบบอสมมาตรนั้นใช้ทรัพยากรการคำนวณมากกว่าแบบสมมาตรมาก จึงมักใช้ อัลกอริธึมการแลกเปลี่ยนคีย์ แบบอสมมาตร สาธารณะ/ส่วนตัว เพื่อเข้ารหัสและแลกเปลี่ยน คีย์แบบสมมาตร ซึ่งจากนั้นจะถูกใช้โดย การเข้ารหัสแบบสมมาตร เพื่อส่งข้อมูลโดยใช้...
จุดอ่อน
เช่นเดียวกับระบบรักษาความปลอดภัยอื่นๆ การเข้ารหัสแบบกุญแจสาธารณะก็มีจุดอ่อนต่างๆ มากมาย นอกเหนือจากการเลือกอัลกอริธึมกุญแจแบบอสมมาตรที่ไม่เหมาะสม (มีเพียงไม่กี่อัลกอริธึมที่ได้รับการยอมรับอย่างกว้างขวางว่าน่าพอใจ) หรือความยาวของกุญแจที่สั้นเกินไป...