Score:2

การเข้ารหัสในอุดมคติ vs รูปแบบการเข้ารหัสในอุดมคติ

ธง vn

รหัสในอุดมคติคือการเรียงสับเปลี่ยนแบบสุ่มสำหรับทุกคีย์ในพื้นที่คีย์ของมัน

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

ฉันไม่เข้าใจเหตุผล:

  1. เหตุใดการเป็นความลับที่สมบูรณ์แบบ/แยกไม่ออก (และไม่ใช่การสุ่ม) จึงเพียงพอสำหรับแผนการเข้ารหัส แต่ไม่ใช่สำหรับรหัสบล็อก
  2. ในอีกด้านหนึ่ง เหตุใดคุณสมบัติการรักษาความลับ/การแยกไม่ออกที่สมบูรณ์แบบจึงไม่เพียงพอสำหรับการเข้ารหัสแบบบล็อก ทำไมถึงต้องมีการเรียงสับเปลี่ยนแบบสุ่ม?
Score:3
ธง in

1.เหตุใดการเป็นความลับที่สมบูรณ์แบบ/แยกไม่ออก (และไม่ใช่การสุ่ม) จึงเพียงพอสำหรับแผนการเข้ารหัส แต่ไม่ใช่สำหรับรหัสบล็อก 2. ในอีกด้านหนึ่ง เหตุใดคุณสมบัติการรักษาความลับ/การแยกไม่ออกที่สมบูรณ์แบบจึงไม่เพียงพอสำหรับการเข้ารหัสแบบบล็อก ทำไมถึงต้องมีการเรียงสับเปลี่ยนแบบสุ่ม?

การแยกไม่ออกสำหรับหลายข้อความ ซึ่งหมายถึงบล็อกหลายบล็อก การเข้ารหัสบล็อกโดยตัวมันเองนั้นไม่สามารถแยกแยะได้: หากคุณเข้ารหัสบล็อกข้อความเดียวกันสองครั้ง คุณจะได้รับข้อความเข้ารหัสเดียวกัน และแน่นอนว่าเป็นคุณสมบัติที่คุณต้องการคงไว้สำหรับการเข้ารหัสแบบบล็อก เนื่องจากจะไม่เป็นการเรียงสับเปลี่ยนหากไม่เป็นเช่นนั้น

driewguy avatar
vn flag
โอเค นี่คือสิ่งที่ฉันเข้าใจ เราต้องการคุณสมบัติของความลับที่สมบูรณ์แบบ/แยกไม่ออกสำหรับทั้งการเข้ารหัสในอุดมคติและโครงร่างการเข้ารหัสในอุดมคติ (สิ่งนี้สมเหตุสมผลสำหรับความต้องการในทางปฏิบัติ) ความแตกต่างที่สมบูรณ์แบบสำหรับฉันคือ: กำหนดข้อความรหัส C และข้อความธรรมดาสองข้อความ M1 และ M2 P(ข้อความล้วน = M1 | ข้อความเข้ารหัส = C) = P (ข้อความล้วน = M2 | ข้อความเข้ารหัส = C) โดยที่ M1 != M2 เนื่องจากการเข้ารหัสแบบบล็อกคือ bijection การเข้ารหัสแบบบล็อกที่มีความสามารถในการแยกแยะไม่ออกอย่างสมบูรณ์ควรเป็นการเรียงสับเปลี่ยนแบบสุ่ม เช่น สำหรับการเข้ารหัสแบบบล็อกในอุดมคติ การเรียงสับเปลี่ยนแบบสุ่มที่ไม่สามารถแยกแยะได้อย่างสมบูรณ์แบบ
Score:1
ธง in

เหตุใดการเป็นความลับที่สมบูรณ์แบบ/แยกไม่ออก (และไม่ใช่การสุ่ม) จึงเพียงพอสำหรับแผนการเข้ารหัส แต่ไม่ใช่สำหรับรหัสบล็อก

ยันต์บล็อกเป็นแบบดั้งเดิม เราต้องการให้มันเป็น Pseudo-Random Permutation (PRP) และปลอดภัยจากการโจมตีเช่น brute-force, linear และ differential attacks

เมื่อเราต้องการเข้ารหัส/ถอดรหัส เราต้อง แบบแผนการเข้ารหัส ที่ประกอบด้วยอัลกอริธึมการสร้างคีย์ การเข้ารหัส และการถอดรหัส ( ไม่เป็นทางการ; กำหนดวิธีใช้รหัสบล็อกสำหรับการเข้ารหัส). ในการจัดทำโครงการเราต้องการ โหมดการทำงาน สำหรับการเข้ารหัสแบบบล็อกซึ่งมีการกำหนดข้อความบล็อกหลายรายการ การสุ่ม (IV, nonce, tweak) ฯลฯ จากนั้นเราจะสามารถพูดถึงความแตกต่างไม่ได้ของรูปแบบการเข้ารหัสภายใต้รูปแบบที่เป็นปฏิปักษ์เช่น Ind-CPA

แม้แต่โหมด ECB ก็เป็นรูปแบบการเข้ารหัสที่เราต้องลืม

ทำไมถึงต้องมีการเรียงสับเปลี่ยนแบบสุ่ม?

พิธีการที่ดีกว่าคือ ทำไมถึงต้องเป็น หลอก การเปลี่ยนแปลงแบบสุ่ม.

การพิสูจน์ความปลอดภัย (Ind-X) อาศัย PRP * ของรหัสบล็อก (ดูการพิสูจน์เริ่มต้นด้วย อนุญาต $F$ เป็น PRP) มิฉะนั้น การแสดงหลักฐานจะไม่ง่าย อันที่จริง ทฤษฎีบทความปลอดภัยไม่ต้องการการมีอยู่ของ PRP ดังนั้น ขอบเขตจะถูกตั้งค่าด้วย PRP (ในอุดมคติ) และหากคุณเริ่มต้นโครงร่างการเข้ารหัสนี้ (การทำให้เป็นจริง) และหากรหัสบล็อกไม่ใช่ PRP แสดงว่าขอบเขตนั้นไม่ทำงาน

หากพิสูจน์ได้ว่า block cipher ไม่ใช่ PRP แสดงว่ามี a ความแตกต่าง ที่สามารถใช้เพื่อใช้ประโยชน์จากโครงร่างการเข้ารหัสที่ใช้การเข้ารหัสบล็อกนี้

หากรหัสบล็อกเสีย แสดงว่าโหมดการเข้ารหัสไม่ปลอดภัยภายใต้รหัสบล็อกนี้

ในอีกด้านหนึ่ง เหตุใดคุณสมบัติการรักษาความลับ/การแยกไม่ออกที่สมบูรณ์แบบจึงไม่เพียงพอสำหรับการเข้ารหัสแบบบล็อก

สามารถพูดคุยเกี่ยวกับ ความลับที่สมบูรณ์แบบของรหัสบล็อกที่ถูกจำกัด (มันเป็นรูปแบบการเข้ารหัส) แม้ว่าจะไม่สามารถพิสูจน์ได้เนื่องจากมันบอกเป็นนัยว่ามันเสียหาย อย่างที่คุณเห็น มันต้องมีข้อจำกัดที่เราไม่มี

การเข้ารหัสในอุดมคติ vs รูปแบบการเข้ารหัสในอุดมคติ

โปรดจำไว้ว่าการเข้ารหัสแบบบล็อกเป็นตระกูลของการเรียงสับเปลี่ยนซึ่งแต่ละอันจะถูกเลือก/แทนด้วยคีย์ $$F:\{0,1\}^k\times \{0,1\}^b \ถึง \{0,1\}^b$$

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


* ต้องบอกว่าโหมดการทำงานไม่ได้จำกัดเฉพาะ PRP เท่านั้น มีโหมดการทำงาน (CTR, CFB) ที่สามารถใช้ PRF ได้ ดังนั้นขอบเขตจึงแตกต่างกัน โปรดดู PRF-PRF swithing-lemma

kelalaka avatar
in flag
รูปแบบการเข้ารหัสในอุดมคติ???

โพสต์คำตอบ

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