ฉันจะเริ่มต้นด้วยการเปรียบเทียบการทำงานของ RSAES-PKCS1-v1_5 กับ RSAES-สศอ.
ต่อมาคือสิ่งทดแทนสมัยใหม่ที่ใกล้เข้ามาแทนที่อดีต
ประการแรกและสำคัญที่สุด เป็นไปไม่ได้เลยที่จะสร้างไลบรารีที่ใช้การถอดรหัส RSAES-PKCS1-v1_5 ที่รับประกันความปลอดภัยจากการโจมตีช่องทางด้านข้าง ความพยายามหลายครั้งในการขอรับความปลอดภัยระดับแอปพลิเคชันล้มเหลว: ฝ่ายตรงข้ามสามารถค้นหาอุปกรณ์จำนวนหนึ่งที่ดำเนินการถอดรหัสและสังเกตพฤติกรรมของอุปกรณ์ (รหัสข้อผิดพลาด ขนาดแพ็กเก็ต เวลา การเข้าถึงดิสก์ แคช เสียงของแหล่งจ่ายไฟ) มักจะสำเร็จ [ที่จัดการเพื่อถอดรหัสหนึ่งข้อความที่พวกเขาสกัดกั้น หรือเซ็นชื่อหนึ่งข้อความหากคีย์เป็นแบบใช้สองทาง] การโจมตี CCA ของ Bleichenbacher มีรูปแบบที่หลากหลายจนยากที่จะติดตาม ตรงกันข้ามกับ RSAES-OAEP: การดูแลที่จำกัดในการใช้งานไลบรารีจะป้องกันการโจมตีที่เทียบเท่ากัน
นอกจากนี้ RSAES-PKCS1-v1_5 ถูกกำหนดให้อนุญาตการสุ่มแบบ 64 บิต ซึ่งไม่เพียงพอตามมาตรฐานสมัยใหม่ที่จะป้องกันการทดสอบการเดาข้อความธรรมดาอย่างแม่นยำ วิธีเดียวที่จะแก้ไขได้คือป้องกันการเข้ารหัสข้อความใกล้กับขนาดสูงสุดที่อนุญาต
RSAES-OAEP มีหลักฐานความปลอดภัย (ภายใต้สมมติฐานว่าปัญหา RSA นั้นยาก และแฮชสามารถจำลองเป็นฟังก์ชันสุ่มหลอก และการใช้งานไม่มีช่องทางด้านข้าง) RSAES-PKCS1-v1_5 ไม่ได้
ข้อเสียอย่างหนึ่งของ RSAES-OAEP คืออนุญาตให้มีข้อความขนาดเล็กลงสำหรับโมดูลัสเดียวกัน แต่นั่นไม่ค่อยเป็นปัญหาในทางปฏิบัติ เนื่องจากเมื่อขนาดข้อความโตขึ้น เราจะใช้ การเข้ารหัสแบบไฮบริด.
คำแนะนำที่มีอยู่ (เช่น CMS, PKIX) เกี่ยวกับการใช้และการสร้างอินสแตนซ์ของ RSAES-OAEP และ RSASSA-PSS
ดังที่ได้กล่าวไว้ ความคิดเห็น สำหรับคำถามที่ว่า แนวทางปฏิบัติที่ดีที่สุดในปัจจุบัน คือการใช้ MGF1 กับแฮชเดียวกันกับส่วนที่เหลือของโครงสร้าง SHA-256 เป็นเรื่องปกติ SHA-512 จะดีที่สุด การเบี่ยงเบนที่พบบ่อยที่สุดคือการใช้ SHA-1 ใน MGF1 สำหรับ RSAES-OAEP เนื่องจาก Java API ทำให้เกิดข้อผิดพลาดได้ง่าย (ดู นี้). ที่ยังคงปลอดภัยเท่าที่เรารู้
สำหรับ RSASSA-PSSแนวทางปฏิบัติทั่วไป (แต่ไม่ใช่วิธีที่ดีที่สุด) คือการปล่อยให้นาเกลือว่างเปล่า นั่นคือการใช้งาน $sLen=0$ ใน EMSA-PSS.
การใช้ SHAKE-{128,256} เป็น MGF ฟังดูดีในทางทฤษฎี แต่ไม่ได้ใช้จริงในแอปพลิเคชันที่ฉันรู้จัก และอาจไม่มีวันทำ
มี ID ที่กำหนด (จาก IANA หรือองค์กรที่คล้ายกัน) หรือไม่
มี ออยสำหรับ RSAES-สศอ, RSASSA-PSS, เอ็มจีเอฟ1, SHA-256 และ SHA-512. ตอนนี้ควรใช้ OID เหล่านี้ร่วมกันอย่างไร เช่น ใบรับรอง X.509 และมีบางอย่างที่จะทำงานต่อไปหากมีการพยายามหรือไม่ ฉันผ่าน.