ในขณะที่ใช้การเข้ารหัส/ถอดรหัส RSA (โดยใช้ python) ข้อความธรรมดาไม่ตรงกับข้อความเข้ารหัสที่ถอดรหัสสำหรับข้อความธรรมดาที่มีค่ามาก ทำงานได้ดีสำหรับค่าที่น้อยกว่าสำหรับข้อความธรรมดา (ค่าตัวเลข)
อินพุต: p=53 q=59 e=3 ข้อความธรรมดา = 1,000 (คีย์ส่วนตัวคำนวณเป็น 2011)
ที่นี่การถอดรหัสให้ 1000 เป็นข้อความธรรมดาซึ่งถูกต้อง
ทีนี้ ถ้า
อินพุต: p=53 q=59 e=3 ข้อความธรรมดา = 10,000 (คีย์ส่วนตัวคำนวณเป็น 2011)
ที่นี่ หลังจากการถอดรหัส ข้อความธรรมดาที่คำนวณได้คือ 619 (ซึ่งควรจะเป็น 10000)
รหัสเดียวกันอยู่ที่นี่
def เข้ารหัส (ข้อความธรรมดา):
ciphertext = (ข้อความธรรมดา**publicKey) % (self.n)
ส่งคืนข้อความรหัส
def ถอดรหัส (ciphertext):
ข้อความธรรมดา = (ciphertext**privateKey) % (self.n)
กลับข้อความธรรมดา
เมื่อพิจารณาว่าจะใช้อัลกอริทึมในการเข้ารหัส/ถอดรหัสข้อความตัวอักษรและตัวเลข ซึ่งจะทำให้ได้ค่าตัวเลขจำนวนมาก ต้องแก้ไขอะไรบ้างหรือฉันขาดอะไรไป
ป.ล.: การตรวจสอบค่าของข้อความธรรมดาหลายค่า อาจเกิดขึ้นเนื่องจาก n=3127 และข้อความธรรมดาใด ๆ ที่มากกว่า 3127 จะไม่สร้างข้อความธรรมดาดั้งเดิมเมื่อถอดรหัส ฉันอาจจะผิด.
วิธีทำให้มันใช้งานได้กับข้อความธรรมดาที่มากกว่า น, ที่นี่ 3127?