การเข้ารหัส RSA

การเข้ารหัส RSA ในการเข้ารหัสRivest-Shamir-Adlemanเต็มรูปแบบประเภทของการเข้ารหัสคีย์สาธารณะที่ใช้กันอย่างแพร่หลายสำหรับการเข้ารหัสข้อมูลอีเมลและธุรกรรมดิจิทัลอื่น ๆ ทางอินเทอร์เน็ต RSA ได้รับการตั้งชื่อตามนักประดิษฐ์คือ Ronald L. Rivest, Adi Shamir และ Leonard M. Adleman ผู้สร้างมันขึ้นมาในขณะที่อยู่ในคณะที่สถาบันเทคโนโลยีแมสซาชูเซตส์

ตารางVigenèreในการเข้ารหัสข้อความธรรมดาตัวอักษรการเข้ารหัสจะพบที่จุดตัดของคอลัมน์ที่นำโดยตัวอักษรข้อความธรรมดาและแถวที่จัดทำดัชนีด้วยตัวอักษรสำคัญ ในการถอดรหัสรหัสลับจะพบตัวอักษรธรรมดาที่ส่วนหัวของคอลัมน์ซึ่งกำหนดโดยจุดตัดของเส้นทแยงมุมที่มีตัวอักษรตัวเลขและแถวที่มีตัวอักษรสำคัญอ่านเพิ่มเติมเกี่ยวกับหัวข้อนี้การเข้ารหัส: การเข้ารหัส RSA รูปแบบคีย์สาธารณะที่รู้จักกันดีที่สุดคือ Rivest – Shamir – Adleman (RSA) อัลกอริทึมการเข้ารหัสลับ ในระบบนี้ผู้ใช้แอบเลือกคู่ของไพรม์ ...

ในระบบ RSA ผู้ใช้แอบเลือกคู่ของจำนวนเฉพาะpและq ที่มีขนาดใหญ่มากจนการแยกตัวประกอบของผลิตภัณฑ์n = p qนั้นเกินความสามารถในการคำนวณที่คาดการณ์ไว้สำหรับอายุการใช้งานของการเข้ารหัส ในปี 2000 มาตรฐานความปลอดภัยของรัฐบาลสหรัฐอเมริกาเรียกร้องให้โมดูลัสมีขนาด 1,024 บิตกล่าวคือแต่ละpและqต้องมีขนาดทศนิยมประมาณ 155 หลักดังนั้นnเป็นตัวเลขประมาณ 310 หลัก เนื่องจากจำนวนยากที่ใหญ่ที่สุดที่สามารถแยกตัวประกอบได้ในปัจจุบันมีขนาดเพียงครึ่งเดียวและเนื่องจากความยากในการแยกตัวประกอบโดยประมาณเป็นสองเท่าสำหรับตัวเลขสามหลักเพิ่มเติมแต่ละตัวในโมดูลัสโมดูลัส 310 หลักจึงเชื่อว่าปลอดภัยจากการแยกตัวประกอบเป็นเวลาหลายทศวรรษ

เมื่อเลือกpและqแล้วผู้ใช้จะเลือกจำนวนเต็มeน้อยกว่าnและค่อนข้างเฉพาะถึงp - 1 และq - 1 นั่นคือเพื่อให้ 1 เป็นปัจจัยเดียวที่เหมือนกันระหว่างeและผลิตภัณฑ์ ( p - 1) ( q - 1) สิ่งนี้ทำให้มั่นใจได้ว่ามีจำนวนdอีกตัวหนึ่งซึ่งผลิตภัณฑ์e dจะเหลือเศษ 1 เมื่อหารด้วยตัวคูณร่วมน้อยที่สุดของp - 1 และq - 1 ด้วยความรู้เกี่ยวกับpและqจำนวนdสามารถคำนวณได้อย่างง่ายดายโดยใช้อัลกอริทึมแบบยุคลิด ถ้าไม่มีใครรู้pและqมันก็ยากพอ ๆ กันที่จะหาeหรือd ที่กำหนดให้อีกคนแยกตัวประกอบnซึ่งเป็นพื้นฐานสำหรับการรักษาความปลอดภัยของอัลกอริทึม RSA

ป้ายกำกับdและeจะใช้เพื่อแสดงถึงฟังก์ชันที่ใส่คีย์ แต่เนื่องจากคีย์สามารถใช้แทนกันได้ทั้งหมดจึงเป็นเพียงความสะดวกในการจัดแสดงเท่านั้น ในการใช้ช่องทางที่เป็นความลับโดยใช้ RSA cryptosystem เวอร์ชันมาตรฐานสองคีย์ผู้ใช้Aจะเผยแพร่eและnในไดเร็กทอรีสาธารณะที่ได้รับการพิสูจน์ตัวตน แต่เก็บdไว้เป็นความลับ ทุกคนที่ต้องการที่จะส่งข้อความส่วนตัวถึงจะเข้ารหัสมันเป็นตัวเลขที่น้อยกว่าnแล้วเข้ารหัสโดยใช้สูตรพิเศษขึ้นอยู่กับอีและn Aสามารถถอดรหัสข้อความดังกล่าวโดยอาศัยการรู้dแต่ข้อสันนิษฐานและหลักฐานในตอนนี้คือสำหรับผู้เข้ารหัสเกือบทั้งหมดไม่มีใครสามารถถอดรหัสข้อความได้เว้นแต่เขาจะแยกตัวประกอบnได้

ในทำนองเดียวกันที่จะใช้ช่องทางตรวจสอบจะเผยแพร่dและnและเก็บอีเมลลับ ในการใช้ช่องทางนี้ในการยืนยันตัวตนที่ง่ายที่สุดBสามารถตรวจสอบได้ว่าเขากำลังสื่อสารกับAโดยดูในไดเรกทอรีเพื่อค้นหาคีย์ถอดรหัสของA dและส่งข้อความไปให้เขาเพื่อเข้ารหัส หากเขาได้รับการเข้ารหัสกลับมาซึ่งถอดรหัสข้อความท้าทายของเขาโดยใช้dในการถอดรหัสเขาจะรู้ว่ามันเป็นไปได้ทั้งหมดที่สร้างขึ้นโดยคนที่รู้eและด้วยเหตุนี้ผู้สื่อสารคนอื่นอาจเป็น A. การเซ็นชื่อข้อความแบบดิจิทัลเป็นการดำเนินการที่ซับซ้อนมากขึ้นและต้องใช้ฟังก์ชัน "แฮช" แบบเข้ารหัส นี่เป็นฟังก์ชันที่รู้จักกันทั่วไปในการแมปข้อความใด ๆ ให้เป็นข้อความขนาดเล็กที่เรียกว่าไดเจสต์ซึ่งแต่ละบิตของไดเจสต์จะขึ้นอยู่กับทุกบิตของข้อความในลักษณะที่การเปลี่ยนแปลงแม้แต่บิตเดียวในข้อความมีแนวโน้มที่จะเปลี่ยนแปลง ด้วยวิธีการเข้ารหัสลับครึ่งหนึ่งของบิตในการย่อย โดยcryptosecureหมายความว่าไม่สามารถคำนวณได้สำหรับทุกคนที่จะพบข้อความที่จะสร้างการแยกย่อยที่กำหนดไว้ล่วงหน้าและยากที่จะหาข้อความอื่นที่มีไดเจสต์เดียวกันกับที่รู้จัก จะลงนามในข้อความซึ่งอาจไม่จำเป็นต้องแม้จะถูกเก็บไว้ secret- เข้ารหัสย่อยที่มีความลับEซึ่งเขาต่อท้ายข้อความ จากนั้นทุกคนสามารถถอดรหัสข้อความโดยใช้คีย์สาธารณะdเพื่อกู้คืนไดเจสต์ซึ่งเขาสามารถคำนวณแยกจากข้อความได้ หากทั้งสองเห็นด้วยกันเขาจะต้องสรุปว่าA เป็นต้นตอของการเข้ารหัสเนื่องจากมีเพียงAเท่านั้นที่รู้ว่าeจึงสามารถเข้ารหัสข้อความได้

จนถึงตอนนี้ระบบเข้ารหัสสองคีย์ที่เสนอทั้งหมดนั้นมีราคาที่สูงมากสำหรับการแยกช่องความเป็นส่วนตัวหรือความลับออกจากช่องการพิสูจน์ตัวตนหรือลายเซ็น จำนวนการคำนวณที่เพิ่มขึ้นอย่างมากซึ่งเกี่ยวข้องกับกระบวนการเข้ารหัส / ถอดรหัสแบบอสมมาตรจะลดความจุของช่องสัญญาณลงอย่างมาก (บิตต่อวินาทีของข้อมูลข้อความที่สื่อสาร) เป็นเวลาประมาณ 20 ปีสำหรับระบบที่มีการรักษาความปลอดภัยโดยเปรียบเทียบได้มีความเป็นไปได้ที่จะได้รับทรูพุตสูงกว่าคีย์เดียว 1,000 ถึง 10,000 เท่าเมื่อเทียบกับอัลกอริทึมสองคีย์ ด้วยเหตุนี้การประยุกต์ใช้การเข้ารหัสสองคีย์หลักจึงอยู่ในระบบไฮบริด ในระบบดังกล่าวจะใช้อัลกอริทึมสองคีย์สำหรับการพิสูจน์ตัวตนและลายเซ็นดิจิทัลหรือแลกเปลี่ยนคีย์เซสชันที่สร้างแบบสุ่มเพื่อใช้กับอัลกอริทึมคีย์เดียวที่ความเร็วสูงสำหรับการสื่อสารหลักในตอนท้ายของเซสชันคีย์นี้จะถูกละทิ้ง