Leonard Adleman เป็นส่วนหนึ่งของการสร้าง RSA ระบบกุญแจสาธารณะที่ทำให้ HTTPS ธนาคารออนไลน์ และการอัปเดตที่ลงลายเซ็นเป็นไปได้ อ่านว่ามันทำงานอย่างไรและทำไมถึงสำคัญ

เมื่อคนพูดว่าเขา “ไว้ใจ” เว็บไซต์หรือบริการออนไลน์ พวกเขามักหมายถึงสิ่งที่เป็นรูปธรรมสามอย่าง:
RSA กลายเป็นที่รู้จักเพราะช่วยทำให้คำสัญญาเหล่านี้เป็นไปได้ในระดับที่ครอบคลุมอินเทอร์เน็ต
คุณสัมผัสผลกระทบของ RSA แม้ไม่เคยได้ยินชื่อ มันเกี่ยวข้องอย่างใกล้ชิดกับวิธีที่:
เส้นเชื่อมร่วมคือความสามารถในการสร้างความไว้วางใจโดยไม่ต้องรู้จักหรือจัดเตรียมความลับร่วมกับทุกเซิร์ฟเวอร์หรือผู้ขายซอฟต์แวร์ที่คุณติดต่อ
บทความนี้อธิบายแบบง่าย ๆ: ไม่มีคณิตศาสตร์หนัก ๆ และไม่ต้องมีพื้นฐานวิทยาการคอมพิวเตอร์ เราจะมุ่งที่มุมมอง "ทำไมมันถึงใช้ได้" ในชีวิตประจำวัน
RSA ทำให้แนวทางหนึ่งได้รับความนิยม: แทนที่จะมีความลับร่วมเดียว คุณใช้ กุญแจสาธารณะ ที่แจกได้ และ กุญแจส่วนตัว ที่เก็บเป็นความลับ การแยกแบบนี้ทำให้เป็นไปได้ทั้งการปกป้องความเป็นส่วนตัว และการพิสูจน์ตัวตนในสถานการณ์ที่คนหรือระบบไม่เคยรู้จักกันมาก่อน
Leonard Adleman คือ “A” ใน RSA ร่วมกับ Ron Rivest และ Adi Shamir แม้ Rivest และ Shamir มักถูกยกย่องในงานก่อสร้างหลัก แต่บทบาทของ Adleman ก็สำคัญ: เขาช่วยผลักดันให้ระบบจากแค่ไอเดียฉลาด ๆ กลายเป็นอัลกอริทึมที่คนสามารถวิเคราะห์ ทดสอบ และไว้วางใจได้
ส่วนสำคัญของบทบาท Adleman คือการทดสอบความทนทานของแนวคิด ในวิชาเข้ารหัส ระบบไม่ได้มีคุณค่าเพราะมันฟังดูมีเหตุผล แต่มีคุณค่าก็ต่อเมื่อมันรอดจากการโจมตีและการตรวจสอบอย่างละเอียด Adleman ทำงานด้านการตรวจสอบ ช่วยปรับสมมติฐาน และมีส่วนในการจัดกรอบตั้งแต่ต้นว่าทำไม RSA ควรเป็นสิ่งที่ยากจะทำลาย
ไม่ด้อยไปกว่านั้น เขาช่วยแปลง "นี่อาจจะใช้ได้" ให้เป็น "นี่คือระบบเข้ารหัสที่ชุมชนสามารถประเมินได้" ความชัดเจนนั้น—ทำให้การออกแบบเข้าใจได้พอที่ชุมชนวิจัยจะตรวจสอบ—มีความสำคัญต่อการยอมรับอย่างมาก
ก่อน RSA การสื่อสารที่ปลอดภัยมักต้องอาศัยการที่ทั้งสองฝ่ายแชร์กุญแจลับร่วมกัน วิธีนี้ใช้ได้ในกลุ่มปิด แต่ไม่ขยายตัวเมื่อคนแปลกหน้าต้องสื่อสารอย่างปลอดภัย (เช่น ผู้ซื้อกับเว็บไซต์ที่พบกันเป็นครั้งแรก)
RSA เปลี่ยนเรื่องเล่าโดยทำให้ ระบบเข้ารหัสกุญแจสาธารณะ เป็นเรื่องใช้งานได้จริง: คุณสามารถเผยแพร่คีย์หนึ่งให้ผู้อื่นใช้ ในขณะที่เก็บอีกคีย์หนึ่งเป็นความลับ
อิทธิพลของ RSA มากกว่าอัลกอริทึมเดียว มันทำให้สองสิ่งที่จำเป็นของอินเทอร์เน็ตรู้สึกว่าเป็นไปได้ในระดับใหญ่:
แนวคิดเหล่านี้เป็นพื้นฐานที่ทำให้ HTTPS ธนาคารออนไลน์ และการอัปเดตซอฟต์แวร์ที่ลงลายเซ็นกลายเป็นความคาดหวังปกติ ไม่ใช่ข้อยกเว้น
ก่อน RSA การสื่อสารที่ปลอดภัยมักหมายถึง การเข้ารหัสด้วยความลับร่วมกัน: ทั้งสองฝ่ายต้องมีคีย์ลับเดียวกันตั้งแต่ต้น วิธีนี้ใช้ได้ในกลุ่มเล็ก แต่พังทลายเมื่อพยายามให้บริการสาธารณะที่ผู้คนนับล้านใช้
หากลูกค้าทุกคนต้องมีกุญแจลับเฉพาะตัวเพื่อคุยกับธนาคาร ธนาคารต้องสร้าง ส่ง เก็บ หมุนเวียน และปกป้องความลับจำนวนมหาศาล ส่วนที่ยากที่สุดไม่ใช่คณิตศาสตร์—แต่เป็นการประสานงาน
จะส่งคีย์ลับให้แต่ละคนอย่างปลอดภัยได้อย่างไร? ส่งทางไปรษณีย์ช้าและเสี่ยง โทรบอกอาจถูกดักฟังหรือสังคมวิศวกรรม ส่งผ่านอินเทอร์เน็ตก็ดูไม่ปลอดภัยเพราะช่องทางนั้นเองคือสิ่งที่คุณพยายามจะรักษาให้ปลอดภัย
ลองจินตนาการสองคนแปลกหน้า—เช่น คุณกับร้านค้าออนไลน์—ที่ไม่เคยรู้จักกัน คุณต้องการส่งการชำระเงินอย่างปลอดภัย ในการเข้ารหัสแบบความลับร่วม คุณต้องมีกุญแจส่วนตัวที่ ทั้งสองฝ่ายรู้ล่วงหน้า แต่คุณทั้งคู่ไม่ได้รู้จักกัน RSA ทำให้เป็นไปได้ที่จะสื่อสารอย่างปลอดภัย โดยไม่ต้องแชร์ความลับก่อน แทนที่จะเผยคีย์สาธารณะที่ใครก็ใช้ปกป้องข้อความถึงคุณ และเก็บกุญแจส่วนตัวไว้คนเดียว
แม้คุณจะเข้ารหัสข้อความ คุณก็ยังต้องรู้ว่า คุณกำลังเข้ารหัสให้กับใคร มิฉะนั้นผู้โจมตีอาจแอบอ้างเป็นธนาคารหรือร้านค้า หลอกให้คุณใช้คีย์ของพวกเขา แล้วอ่านหรือแก้ไขทุกอย่างได้เงียบ ๆ
นั่นคือเหตุผลที่การสื่อสารที่ปลอดภัยบนอินเทอร์เน็ตต้องมีสองคุณสมบัติ:
RSA ช่วยทำให้ทั้งสองอย่างเป็นไปได้ และวางรากฐานให้ความไว้วางใจออนไลน์ทำงานในระดับใหญ่
การเข้ารหัสกุญแจสาธารณะเป็นแนวคิดง่าย ๆ ที่มีผลใหญ่: คุณสามารถล็อกบางอย่างให้กับใครบางคนได้โดยไม่ต้องตกลงกุญแจลับร่วมกันก่อน นี่คือการเปลี่ยนหลักที่ RSA ช่วยทำให้ใช้งานได้จริง
คิดว่า กุญแจสาธารณะ เป็นกลอนที่คุณยอมให้ใครก็ได้รับไป คนอื่นใช้มันเพื่อปกป้องข้อความให้กับคุณ หรือ (ในระบบลายเซ็น) เพื่อตรวจสอบว่าสิ่งใดมาจากคุณจริง
กุญแจส่วนตัว คือกุญแจที่คุณต้องเก็บไว้คนเดียว มันคือกุญแจที่เปิดสิ่งที่ล็อกด้วยกุญแจสาธารณะของคุณ และยังใช้สร้างลายเซ็นที่มีเพียงคุณเท่านั้นที่สามารถทำได้
ทั้งคู่รวมกันเป็น คู่กุญแจ แม้จะมีความเกี่ยวโยงทางคณิตศาสตร์ แต่ไม่สามารถใช้แทนกันได้ การเผยแพร่กุญแจสาธารณะปลอดภัยเพราะการรู้กุญแจสาธารณะไม่ได้ให้วิธีที่เป็นประโยชน์ในการอนุมานกุญแจส่วนตัว
การเข้ารหัส เกี่ยวกับความเป็นส่วนตัว หากใครสักคนเข้ารหัสข้อความด้วยกุญแจสาธารณะของคุณ มีเพียงกุญแจส่วนตัวของคุณเท่านั้นที่ถอดได้
ลายเซ็นดิจิทัล เกี่ยวกับความเชื่อถือและความสมบูรณ์ หากคุณลงนามอะไรด้วยกุญแจส่วนตัว ใครก็ตามที่มีกุญแจสาธารณะของคุณสามารถยืนยันได้สองอย่าง:
ความปลอดภัยไม่ใช่เวทมนตร์—มันพิงกับ ปัญหาคณิตศาสตร์ที่ยาก ที่ทำได้ง่ายในทางหนึ่งและยากมากจะย้อนกลับด้วยคอมพิวเตอร์ปัจจุบัน คุณสมบัติ "ไปทางเดียว" นี้ทำให้การแชร์กุญแจสาธารณะปลอดภัย ในขณะที่กุญแจส่วนตัวยังคงมีพลังในการถอดและลงนาม
RSA ช่วยให้การสร้างความไว้วางใจในระดับอินเทอร์เน็ตเป็นไปได้โดยการทำให้ การเข้ารหัสกุญแจสาธารณะ ใช้งานได้จริง ซึ่งสนับสนุน:
บล็อกพื้นฐานเหล่านี้เป็นหัวใจของ HTTPS ธนาคารออนไลน์ และการอัปเดตซอฟต์แวร์ที่มีการเซ็นชื่อ
Leonard Adleman ช่วยเปลี่ยน RSA จากไอเดียฉลาด ๆ ให้กลายเป็นระบบเข้ารหัสที่คนอื่นสามารถ วิเคราะห์และไว้วางใจได้ ในเชิงปฏิบัติ เขาทดสอบสมมติฐานอย่างเข้มงวด ช่วยปรับแต่งการนำเสนอ และเสริมความแข็งแรงของเหตุผลว่าทำไม RSA ควรยากต่อการโจมตีในสถานการณ์จริง
กุญแจสาธารณะ (public key) ถูกออกแบบให้แจกให้ผู้อื่นใช้ได้; คนใช้มันเพื่อเข้ารหัสข้อความถึงคุณหรือเพื่อตรวจสอบลายเซ็นของคุณ
กุญแจส่วนตัว (private key) ต้องเก็บเป็นความลับ; ใช้สำหรับถอดสิ่งที่ถูกเข้ารหัสด้วยกุญแจสาธารณะของคุณ (ในการตั้งค่าการเข้ารหัสด้วย RSA) และสร้างลายเซ็นที่มีเพียงคุณเท่านั้นที่ทำได้
หากกุญแจส่วนตัวรั่ว ผู้โจมตีสามารถแอบอ้างเป็นคุณและ/หรือถอดความลับที่ถูกปกป้องได้ ขึ้นกับการใช้งานของกุญแจนั้น
ความปลอดภัยของ RSA พิงกับปัญหาคณิตศาสตร์แบบ "ไปทางเดียว": การคูณจำนวนเฉพาะขนาดใหญ่ทำได้ง่าย แต่การ แยกตัวประกอบ (factoring) ของตัวเลขขนาดใหญ่นั้นทำได้ยากมากที่ขนาดคีย์จริงๆ
คีย์สาธารณะและคีย์ส่วนตัวมีความสัมพันธ์ทางคณิตศาสตร์ แต่การออกแบบทำให้คีย์สาธารณะไม่สามารถเผยคีย์ส่วนตัวได้ในทางปฏิบัติ
พวกมันตอบเป้าหมายความไว้วางใจต่างกัน:
กฎง่ายๆ ที่ใช้อธิบายคือ: การเข้ารหัสเก็บความลับ; ลายเซ็นพิสูจน์ว่าใครเป็นผู้ส่งและว่าสิ่งนั้นไม่ถูกแก้ไข
ในภาพรวมการทำงานของ HTTPS/TLS ที่ง่ายขึ้น:
RSA อาจถูกใช้ในการ ยืนยันตัวตน (การลงนาม) และในอดีตถูกใช้เพื่อช่วยปกป้องความลับของเซสชันบางรูปแบบ
ไม่เสมอไป แถบแม่กุญแจบอกว่าการเชื่อมต่อมักจะ เข้ารหัส และ/หรือ ยืนยันตัวตน แต่ไม่รับประกันว่า:
นับประสาเป็นชั้นความปลอดภัยของการส่งข้อมูล ไม่ใช่การตัดสินความน่าเชื่อถือทั้งหมด
ใบรับรองผูก คีย์สาธารณะ กับตัวตน (เช่น ชื่อโดเมน) และเบราว์เซอร์เชื่อในการผูกนี้เพราะใบรับรองถูกลงนามโดย Certificate Authority (CA)
การใช้งานจริงสำหรับผู้ให้บริการคือ:
การอัปเดตที่ลงลายเซ็นช่วยให้เครื่องของผู้ใช้ตรวจสอบได้สองอย่าง:
นี่ช่วยป้องกันการโจมตีแบบ "สลับแพ็กเกจ" (mirror ถูกโจมตี เครือข่ายถูกยึด หรือลิงก์ดาวน์โหลดปลอม) สำหรับบทเรียนเชิงลึกเพิ่มเติม ดู /blog/code-signing-basics
ความผิดพลาดจริงในโลกมักเป็นเชิงปฏิบัติ ไม่ใช่การ "ทำลาย RSA" ทางคณิตศาสตร์:
ขั้นตอนปฏิบัติ: ปกป้องกุญแจส่วนตัว (เก็บในฮาร์ดแวร์ถ้าเป็นไปได้) ติดตามวันหมดอายุ หมุนคีย์อย่างมีแบบแผน และตรวจสอบการออกใบรับรองเมื่อต้องการ