Score:3

การสร้างอินสแตนซ์ของ RSAES-OAEP และ SHA*WithRSAEncryption แตกต่างกันอย่างไรในทางปฏิบัติ

ธง vu

สำหรับโปรเจ็กต์เวลาว่างที่ฉันทำอยู่ ฉันกำลังประเมินโครงร่าง RSA แบบเสริม PKCS#1 เพื่อนำไปใช้

สำหรับ PKCS#1 v1.5 ดูเหมือนว่าการเข้ารหัสไม่จำเป็นต้องใช้ฟังก์ชันแฮช และลายเซ็นก็ไม่ต้องการฟังก์ชันสร้างมาสก์เพิ่มเติม (MGF) นอกเหนือจากอัลกอริทึมย่อยสำหรับการแฮชข้อความ

สำหรับ PKCS#1 v2.x ทั้งการเข้ารหัสและลายเซ็นจะถูกสร้างอินสแตนซ์ด้วย MGF ฟังก์ชันแฮช และป้ายกำกับเพิ่มเติม (ซึ่งปัจจุบันยังไม่มีการใช้งานที่ระบุ) MGF ซึ่งถูกสร้างอินสแตนซ์ด้วยฟังก์ชันแฮชอื่นโดยใช้โครงสร้าง MGF1 (เฉพาะกิจ)

ในความเห็นของฉัน ระบบเข้ารหัสลับแบบคอมโพสิตควรมีพารามิเตอร์อินสแตนซ์น้อยที่สุดเท่าที่จะเป็นไปได้ เพื่อลดภาระในการติดตั้งและส่งเสริมการทำงานร่วมกัน ควรใส่เฉพาะพารามิเตอร์ที่จำเป็นสำหรับความคล่องตัวในการเข้ารหัสลงในการออกแบบ

ด้วยเหตุนี้ ฉันจึงแปลกใจที่แฮชที่สร้างอินสแตนซ์ของ MGF อาจแตกต่างจากที่ใช้สำหรับการแฮชอินพุต

คำถามของฉันคือ:

  • มีคำแนะนำที่มีอยู่ (เช่น CMS, PKIX) เกี่ยวกับการใช้และการสร้างอินสแตนซ์ของ PKCS#1 v2.x RSAES-OAEP และ RSASSA-PSS ที่ระบุการเลือกฟังก์ชันแฮชหรือไม่
  • มี ID ที่กำหนด (จาก IANA หรือองค์กรที่คล้ายกัน) หรือไม่
  • คะแนนเพิ่มเติมไปที่การรักษา NIST Draft FIPS 186-5 ซึ่ง SHAKE-{128,256} จะต้องได้รับการอนุมัติเพื่อใช้เป็น MGF
Gilles 'SO- stop being evil' avatar
PKCS#1 แนะนำให้ใช้ฟังก์ชันแฮชเดียวกัน (และคำสั่งที่ใช้ฟังก์ชันแฮชเดียวกันเพื่อแฮชข้อความและเพื่อแฮช มีเพียง MGF เท่านั้นที่อนุญาตให้แตกต่างกันได้) และจากประสบการณ์ของฉัน วิธีนี้ส่วนใหญ่ปฏิบัติตามในทางปฏิบัติ แต่ฉันเคยเห็นระบบที่ติดอยู่บน SHA-1 สำหรับ MGF แม้ว่าจะย้ายไปที่ SHA-2 สำหรับการแฮชข้อความก็ตาม ฉันไม่เคยเห็นสิ่งอื่นใดนอกจาก MGF1 สำหรับ MGF (นอกเหนือจาก SHAKE แต่ถ้ามีผู้ใช้รายแรก ๆ ฉันยังไม่เคยเห็นพวกเขา: ทุกสิ่งที่ฉันเห็นโดยใช้ SHAKE จะจับคู่กับ ECC)
Score:1
ธง vu
  • มีคำแนะนำที่มีอยู่ (เช่น CMS, PKIX) เกี่ยวกับการใช้และการสร้างอินสแตนซ์ของ PKCS#1 v2.x RSAES-OAEP และ RSASSA-PSS ที่ระบุการเลือกฟังก์ชันแฮชหรือไม่

ทั้ง CMS และ PKIX มีคำแนะนำเกี่ยวกับเรื่องนี้ ทั้ง CMS ของ อาร์เอฟซี-4056 และของ PKIX อาร์เอฟซี-4055 แนะนำให้ใช้แฮชเดียวกันสำหรับข้อความและ MGF

หมายเหตุด้านข้าง: S/MIME และ PKIX เป็นกลุ่มงานที่ IETF เป็นผู้สืบทอด โคมไฟ กำลังทำหน้าที่บำรุงรักษา

  • มี ID ที่กำหนด (จาก IANA หรือองค์กรที่คล้ายกัน) หรือไม่

ASN.1 OID ไม่จำเป็นต้องผ่าน IANA

อาร์เอฟซี-3560 ไปไกลถึงรายการค่าออกเตตสำหรับพารามิเตอร์อัลกอริทึมการเข้ารหัส ASN.1 DER แบบคำต่อคำ

  • คะแนนเพิ่มเติมไปที่การรักษา NIST Draft FIPS 186-5 ซึ่ง SHAKE-{128,256} จะต้องได้รับการอนุมัติเพื่อใช้เป็น MGF

NIST เช่นเดียวกับหน่วยงานราชการอื่น ๆ รักษาสถานะความเป็นกลางของผู้ขายเสมอมา และปฏิเสธการรับรองผลิตภัณฑ์เชิงพาณิชย์ใด ๆ ที่กล่าวถึงในสิ่งพิมพ์อย่างเป็นทางการของพวกเขา

IETF RFCs-{8692,8702} ระบุ SHAKE สำหรับใช้กับ RSA (และ CMS และ PKIX โดยทั่วไป) ได้ระบุ Cisco Systems เป็นบรรณาธิการร่วม นี่เป็นเพียงการคาดเดา บางที Cisco กำลังแนะนำผลิตภัณฑ์ที่อาจได้รับจากประสิทธิภาพของฮาร์ดแวร์ของการเรียงสับเปลี่ยนของ Keccak และพารามิเตอร์ฟองน้ำของ SHAKE เมื่อใช้เป็น oracle แบบสุ่มในอัลกอริทึม RSA

Score:1
ธง ng

ฉันจะเริ่มต้นด้วยการเปรียบเทียบการทำงานของ 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 และมีบางอย่างที่จะทำงานต่อไปหากมีการพยายามหรือไม่ ฉันผ่าน.

dave_thompson_085 avatar
cn flag
สำหรับคนส่วนใหญ่ PKIX นั้นดีเท่ากับ X.509 และ **พารามิเตอร์ PKIX** สำหรับ OAEP และ PSS อยู่ใน **RFC 4055** TLS1.3 (RFC 8446 4.2.3) ใช้ลายเซ็น PSS โดยระบุ MGF-hash = message-hash และ saltlen =digestlen และใบรับรองต้องมี OID ดั้งเดิม (rsaEncryption สำหรับเหตุผลทางประวัติศาสตร์ แม้ว่าลายเซ็นจะไม่ใช่การเข้ารหัสก็ตาม) หรือ PSS OID TLS1.3 มีการใช้งานอย่างกว้างขวาง แม้ว่าฉันจะไม่รู้ว่ามีไซต์กี่แห่งที่ใช้ RSA-PSS เทียบกับ ECDSA หรือ EdDSA -- อาจถึงเวลาที่ EFF จะทำแบบสำรวจอีกครั้ง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา