Score:2

การตรวจสอบฉลาก lHash แบบเวลาคงที่ใน RSA-OAEP มีความสำคัญเพียงใด

ธง vu

ในการดำเนินโครงการงานอดิเรกของฉัน RSA-สศอฉันละเว้นการรองรับป้ายกำกับในตอนเริ่มต้น ฉันตั้งค่าป้ายกำกับเป็นสตริงว่างในการเข้ารหัส และละเว้นป้ายกำกับในการถอดรหัส

ตอนนี้ฉันกำลังเพิ่มฟังก์ชันพิเศษเพื่อตั้งค่าและทดสอบฉลาก แต่ยังไม่ถึงเวลาคงที่ บันทึกความปลอดภัยใน PKCS#1v2.2 บอกว่าการตรวจสอบฉลากพร้อมกับการตรวจสอบข้อความไซเฟอร์เท็กซ์อื่นๆ ควรทำเป็นขั้นตอนเวลาคงที่ระดับอะตอม

ไตรมาสที่ 1: จึงอยากสอบถามว่าการตรวจฉลากไม่ตรงเวลาจะอันตรายแค่ไหน?

ฉันนึกถึงฉลากลับที่แชร์ล่วงหน้าซึ่งถูกเดาโดยบุคคลภายนอกโดยใช้รหัสสาธารณะเข้ารหัสเป็นสถานการณ์เดียว ไตรมาสที่ 2: มีอีกไหม?

fgrieu avatar
ng flag
คำถามนี้ใช้ RSA-OAEP ซึ่งมีความหมายชัดเจนว่า [RSAES-OAEP](https://pkcs1.grieu.fr/page=#%5B%7B%22num%22%3A44%2C%22gen%22%3A0%7D% 2C%7B%22name%22%3A%22XYZ%22%7D%2C118%2C640%2Cnull%5D) ใบอนุญาตนั้นใช้ได้และเป็นเรื่องปกติอย่างไรก็ตาม โปรดทราบว่า RSAES-OAEP เป็นการลดการปฏิบัติของ [RSA-OAEP](https://cseweb.ucsd.edu//~mihir/papers/oaep.pdf) และมีความแตกต่างเล็กน้อย ซึ่งรวมถึง การแนะนำฉลาก
Score:2
ธง ng

การตรวจสอบฉลากที่ไม่ตรงเวลานั้นอันตรายแค่ไหน?

เท่าที่ฉันสามารถบอกได้ไม่มาก ตราบใดที่ป้ายกำกับนั้นเปิดเผยต่อสาธารณะ และการตรวจสอบนี้ดำเนินการและไม่ได้กำหนดเงื่อนไขโดยการตรวจสอบ 0x00 ไบต์ทางด้านซ้ายของผลลัพธ์ของการถอดรหัส RSA แบบดิบ/แบบเรียน $c^d\bmod n$. ซึ่งใช้โดยไม่คำนึงว่าการดำเนินการถอดรหัสจะรองรับป้ายกำกับหรือไม่


เดอะ บันทึกความปลอดภัยใน PKCS#1v2.2 ที่กล่าวถึงในคำถามอ่านว่า:

บันทึก. ต้องใช้ความระมัดระวังเพื่อให้แน่ใจว่าคู่ต่อสู้ไม่สามารถแยกแยะเงื่อนไขข้อผิดพลาดต่างๆ ในขั้นตอนที่ 3.f ได้ ไม่ว่าจะด้วยข้อความแสดงข้อผิดพลาดหรือเวลา หรือโดยทั่วไป ให้เรียนรู้ข้อมูลบางส่วนเกี่ยวกับข้อความที่เข้ารหัส อีเอ็ม. มิฉะนั้น ฝ่ายตรงข้ามอาจสามารถรับข้อมูลที่เป็นประโยชน์เกี่ยวกับการถอดรหัสข้อความเข้ารหัส C ซึ่งนำไปสู่การโจมตีข้อความเข้ารหัสที่เลือก เช่น การโจมตีที่สังเกตโดย Manger [35].

หมายเหตุนั้นอ้างอิงถึงการทดสอบ (ตัวหนาด้านล่าง) ที่ส่วนท้ายของขั้นตอนที่ 3.g ของการดำเนินการถอดรหัส:

แยก ฐานข้อมูล ลงในสตริงออกเตต lHashâ ความยาว hLen, สตริงการเติม (อาจว่างเปล่า) ปล ประกอบด้วยออคเต็ตที่มีค่าเลขฐานสิบหก 0x00 และข้อความ M เป็น
เธ เธ เธ เน เธ ฐานข้อมูล = lHashâ || ปล || 0x01 || .
ถ้าไม่มี octet ที่มีค่าเลขฐานสิบหก 0x01 ให้แยก ปล จาก , ถ้า แฮช ไม่เท่ากัน lHashâ, หรือถ้า วาย ไม่เป็นศูนย์, เอาต์พุต âข้อผิดพลาดในการถอดรหัสâ และหยุด

âตรวจสอบฉลากâ ในคำถามหมายถึงการเปรียบเทียบของ แฮช (แฮชของป้ายกำกับหรือสตริงว่างคือไม่มีป้ายกำกับ) และ lHashâ. ไบต์ วาย คือทางด้านซ้ายของ bytesting ที่เป็นตัวแทน $c^d\bmod n$ ในสัญกรณ์ big-endian บนจำนวนไบต์เท่าที่จำเป็นเพื่อแสดงโมดูลัสสาธารณะ $n$, และ $ค$ โดยพื้นฐานแล้วคือข้อความเข้ารหัสที่นำเสนอต่อเครื่องมือถอดรหัส

ถ้าเราทำการเปรียบเทียบของ lHashâ และ แฮช มีเงื่อนไขก็ต่อเมื่อการเปรียบเทียบของ วาย ถึง 0x00 สำเร็จ (เช่น ถ้าเราเปรียบเทียบ วาย || lHashâ ถึง 0x00 || แฮช กับ memcmp ของไลบรารีมาตรฐาน C) แล้วเราอยู่ในเงื่อนไขที่กำหนดโดย การโจมตีของผู้จัดการซึ่งช่วยให้สามารถถอดรหัสข้อความโดยการส่งรหัสลับที่ไม่ถูกต้องซ้ำๆ ไปยังอุปกรณ์ถอดรหัสและสังเกตปฏิกิริยาของมัน

ถ้าเราทำการเปรียบเทียบของ lHashâ ถึง แฮช ในเวลาที่ไม่แน่นอน แต่ไม่ว่าอย่างไรก็ตาม วาย ตรงกับ 0x00 (และทำการทดสอบนั้นของ วาย และเป็นการรวมเข้ากับการทดสอบของ lHashâ ในเวลาคงที่หรือทำการทดสอบนั้น วาย อย่างมีเงื่อนไขถ้าการเปรียบเทียบของ lHashâ ถึง แฮช สำเร็จ) สถานการณ์ไม่ได้เลวร้ายนัก เนื่องจากการเปลี่ยนแปลงของเวลาของเรารั่วไหลโดยไม่มีเงื่อนงำว่าจะเกิดขึ้นหรือไม่ วาย ตรงกับ 0x00 ซึ่งเป็นสิ่งที่ฝ่ายตรงข้ามต้องการทราบมากที่สุด แม้ว่าฝ่ายตรงข้ามจะยังคงได้รับข้อมูลบางส่วนเกี่ยวกับ อีเอ็มฉันไม่เห็นว่าการโจมตีสามารถทำงานได้แม้ว่าจะมีการสืบค้นเครื่องมือถอดรหัสมากขึ้นเพราะทุกไบต์ของ lHashâ ในช่วงเวลาของการเปรียบเทียบขึ้นอยู่กับแต่ละบิตของ อีเอ็ม ข้างผู้ที่อยู่ใน วาย.

ไม่ตรวจสอบ lHashâ ไม่ใช่การใช้งาน RSAES-OAEP ที่ถูกต้องโดยไม่มีการสนับสนุนแท็ก (ในกรณีนี้ การเปรียบเทียบจะต้องดำเนินการกับแฮชของสตริงว่าง) และมีแนวโน้มที่จะเปิดใช้การโจมตีของ Manger


ฉันนึกถึงฉลากลับที่แชร์ล่วงหน้าซึ่งถูกเดาโดยบุคคลภายนอกด้วยรหัสสาธารณะเข้ารหัสเป็นสถานการณ์เดียว

ภาพในใจของฉันสำหรับฉลากคือมันเป็น สาธารณะ ค่าคงที่มีไว้เพื่อให้คู่คีย์สาธารณะ/ส่วนตัวคู่เดียวถูกใช้ในบริบทที่เป็นอิสระต่อกัน ซึ่งมีประโยชน์ในการหลีกเลี่ยงการโจมตีที่ส่งต่อ ภายนอก ciphertext ที่รับรองความถูกต้อง (เช่น ลงนามโดยผู้ริเริ่ม) ไปยังบริบทที่ไม่ได้ตั้งใจจะได้รับ ฉันไม่เคยรู้มาก่อนว่าป้ายกำกับ (หรือแฮช) สามารถเป็นความลับที่แบ่งปันล่วงหน้าได้ และใช้เพื่อรับรองความถูกต้องของรหัสลับที่ส่งไปยังอุปกรณ์ถอดรหัส RSAES-OAEP หากมีหลักฐานความปลอดภัยของ RSAES-OAEP ภายใต้การใช้งานนั้น ฉันพลาดไปแล้ว และแน่นอนว่ามันสำคัญมากที่การเปรียบเทียบระหว่าง lHashâ และ แฮช เป็นเวลาคงที่

มีคนอื่นอีกไหม?

ข้าง การโจมตีของผู้จัดการ พิจารณาแล้วไม่เห็นมีเลย

โพสต์คำตอบ

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