ฉันมีคำถามเกี่ยวกับวิธีการกำหนด RSADP/RSAEP (ใน RFC2437 https://datatracker.ietf.org/doc/html/rfc2437#section-5.1.2):
RSADP (และ RSAEP) อธิบายด้วยขีดจำกัดเดียวกันสำหรับข้อความ (m) และ ciphertext (c) กล่าวคือ 0 <= ม. < น
. ในกรณีนี้ modular exponentiation primitive จะถือว่าการเติมได้เกิดขึ้นแล้ว ดังนั้นอย่ามองข้ามสิ่งนั้นไป
5.1.2 RSADP
RSADP (K, ค)
ป้อนข้อมูล:
K รหัสส่วนตัว RSA โดยที่ K มีรูปแบบใดรูปแบบหนึ่งต่อไปนี้
-คู่ (n, d)
-a quintuple (p, q, dP, dQ, qInv)
c ตัวแทนข้อความรหัส ซึ่งเป็นจำนวนเต็มระหว่าง 0 ถึง n-1
เอาท์พุต:
m ตัวแทนข้อความ จำนวนเต็มระหว่าง 0 ถึง n-1; หรือ
"ตัวแทนข้อความเข้ารหัสอยู่นอกช่วง"
ฉันมีคำถามต่อไปนี้: การใช้งานจริงควรยอมรับ 0 & 1 เป็นค่า c & m ที่ถูกต้องหรือไม่ ศูนย์และหนึ่งจะไม่คงที่ภายใต้การยกกำลัง ดังนั้นข้อความเข้ารหัสและข้อความธรรมดาจะไม่เปลี่ยนแปลงใช่ไหม ไม่เลวเหรอ? การนำไปใช้งานปฏิเสธค่าเหล่านี้ถูกต้องหรือไม่ แม้ว่าข้อมูลจำเพาะจะอนุญาตก็ตาม
อัปเดต: ฉันไม่ได้ถามเกี่ยวกับการเติมต่อเนื่องจากการยกกำลังเกิดขึ้นหลังจากการเติม (ในกรณีการเข้ารหัส) แต่ ทำไม ดูเหมือนว่าข้อมูลจำเพาะจะอนุญาตให้ใช้ค่าที่ไม่ปลอดภัยเหล่านี้ได้เลย เหตุใดข้อมูลจำเพาะจึงไม่อนุญาต 0 & 1 อย่างชัดเจน เป็นที่ยอมรับว่าหายากในทางสถิติหากผลลัพธ์ของการเติมมีค่าดังกล่าว แต่คำถามของฉันคือไม่ควรใช้ฟังก์ชัน RSADP/EP ที่ไม่อนุญาตค่าเหล่านี้ และโครงร่าง OAEP โดยรวมที่สร้างขึ้นจากฟังก์ชันเหล่านี้จะถูกระบุเพื่อเลือกอินพุตการเติมที่แตกต่างกันใน กรณีนั้น?
อาจมีบางสิ่งที่ฉันขาดหายไปที่นี่ ดังนั้นขอขอบคุณสำหรับข้อมูลใด ๆ
ขอบคุณ!