ในขณะที่ใช้การเข้ารหัส/ถอดรหัส 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
?