Score:3

เหตุใด RSA จึงไม่ใช่แฮชฟังก์ชัน

ธง lk

RSA-Assumption กล่าวว่า $(GenSP,F,SampleX)$ เป็นทางเดียว ดังนั้นถ้าเราเริ่มต้นอินสแตนซ์ของ RSA $(n,e), (n,d)$ และค่อนข้างลืมรหัสลับและ SampleX ที่แจกจ่ายอย่างสม่ำเสมอ $X, F = x^e \bmod N$ ควรเป็นทางเดียว

เป็นที่ทราบกันดีอยู่แล้วว่าฟังก์ชัน Injective หมายถึงการต้านทานการชน แต่ไม่ใช่ทางเดียวแน่นอน

จนถึงตอนนี้ เรามีความต้านทานต่อภาพล่วงหน้าและการต้านทานการชนกัน และควรให้ค่าความต้านทานพรีอิมเมจที่สอง ถ้าเรารับ $x$ จาก $\{0,\ldots,n-1\}$.

เราพูดถึง RSA เชิงกำหนด ดังนั้นจึงไม่มีกระบวนการสุ่มที่เกี่ยวข้องกับการเติมแบบสุ่ม ดังนั้น F ของเราจึงถูกกำหนดขึ้นเช่นกัน

ฉันพลาดอะไรไปรึเปล่า?

Morrolan avatar
ng flag
ประเด็นที่ตรงไปตรงมาประการหนึ่งคือ โดยทั่วไปแล้วเราต้องการให้ฟังก์ชันแฮชของเรามีโดเมนขนาดใหญ่ไม่จำกัด - หรืออย่างน้อยหนึ่งโดเมนก็ใหญ่พอที่จะไม่จำกัดขอบเขตสำหรับการใช้งานจริง RSA ไม่ได้เสนอสิ่งนี้ แต่จะจำกัดข้อความตามขนาดของโมดูลัสแทน
Morrolan avatar
ng flag
อีกประการหนึ่ง - ปัญหาด้านเทคนิคน้อยกว่าคือคุณต้องโน้มน้าวให้ผู้ใช้คู่ `(e, N)` ของคุณ (ซึ่งจะต้องทำให้เป็นมาตรฐาน ถ้าเราใช้ RSA เป็นฟังก์ชันแฮช) ว่าคุณทำจริง ทิ้งคีย์ส่วนตัวที่เกี่ยวข้อง การแยกตัวประกอบของโมดูลัสตามลำดับ
Mark avatar
ng flag
RSA ยังเป็นโฮโมมอร์ฟิคตามค่าเริ่มต้น ดังนั้นอย่างน้อยมันก็จะเป็นโมเดลที่ไม่ดีของ oracle แบบสุ่ม เนื่องจาก $H(a)H(b) = H(ab)$ คุณสามารถ "แก้ไข" สิ่งนี้ได้ด้วยการเติม หรือเพียงแค่ให้ฟังก์ชันแฮชที่สร้างขึ้นมีคุณสมบัติต้านทานการชนกัน แต่ไม่ใช่ออราเคิลสุ่มที่ดี (เช่น ไม่มีคุณสมบัติสุ่มเทียม)
Score:3
ธง in

RSA เป็นประตูกล -การเปลี่ยนแปลงด้วยวิธีการออกแบบของคุณ คุณเพียงแค่เสนอ RSA-HASH กับปัญหาเหล่านี้

  • โดเมนจำกัดด้วยการเรียงสับเปลี่ยน: ฟังก์ชันแฮชการเข้ารหัสแม้ว่าจะสามารถแฮชขนาดใดก็ได้ แต่ก็มีโดเมนที่ใหญ่กว่าช่วงของมันมาก พิจารณา

    • SHA-256 ในขณะที่สามารถมีขนาดเอาต์พุต 256 บิตได้ในช่วงโดเมน $2^{64}$ บิต
    • SHA-3 ในขณะที่สามารถมีขนาดเอาต์พุต 256 บิตหรือมากกว่าได้ในช่วงโดเมน $2^{128}$ บิต

    แม้ว่า Keccak (SHA-3) จะใช้การเรียงสับเปลี่ยน แต่ก็ไม่ใช่การเรียงสับเปลี่ยนในตอนท้าย เนื่องจากใช้ขนาดอินพุตที่ใหญ่กว่า $2^{128}$. การเปลี่ยนแปลงเพียงครั้งเดียวอาจทำให้เกิดปัญหาบางอย่าง

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

  • มาตรฐาน: สมมติว่า NIST เผยแพร่ฟังก์ชัน RSA-HASH-3 เป็น $H(m) = m^3 \bmod n$. ตอนนี้ทุกคนในชุมชน crypto จะโต้แย้งว่าในขณะที่สร้าง RSA-HASH-3 พวกเขาไม่ได้ทำลาย $p$ และ $คิว$ และพวกเขาเก็บไว้ $d$ เป็นส่วนตัว ไม่มีการรับประกันว่าพวกเขาจะทำเช่นนี้หรือไม่ ดังนั้น การเชื่ออย่างไร้เดียงสาว่าพวกมันถูกลบไปไม่ใช่วิธีการทำงานของการเข้ารหัส ( ความคิดเห็นของ Morralan).

  • เราคาดว่าฟังก์ชันแฮชสามารถจำลองได้ ออราเคิลแบบสุ่ม และบางคนล้มเหลวตั้งแต่การโจมตีแบบขยายความยาว ในทางกลับกัน RSA-HASH นั้นห่างไกลจากคำพยากรณ์แบบสุ่ม คุณสมบัติการคูณของ RSA ป้องกันสิ่งนี้ ใน Random Oracle เราไม่คาดหวังว่าความสัมพันธ์ทั่วไประหว่างอินพุตจะนำไปสู่ความสัมพันธ์ระหว่างเอาต์พุต อย่างไรก็ตาม RSA-HASH มี $$RSA(m_1)RSA(m_2) = RSA(m_1 m_2)$$

  • พื้นที่ป้อนข้อมูลสั้น: เพื่อลดระยะเวลาของการแฮชที่คุณอาจต้องการใช้ $e=3$จากนั้นใช้คิวบ์รูทโจมตีข้อความทั้งหมด < $\sqrt[3]{N}$ สามารถทำได้ง่าย การเพิ่ม $e$ จะเพิ่มค่าใช้จ่ายในการแฮช โปรดจำไว้ว่าจำเป็นต้องใช้ RSA 2048 บิต

  • โพสต์ควอนตัม: ปัจจุบันรหัสบล็อกและฟังก์ชันแฮชปลอดภัยอีกครั้ง อัลกอริทึมของ Grover เพียงใช้คีย์ 256 บิตสำหรับรหัสบล็อกและใช้ฟังก์ชันแฮชเอาต์พุตอย่างน้อย 256 บิต มีงานปรับปรุง (Brassard et al.) สำหรับฟังก์ชันแฮชที่ลดขนาดเป็นคิวบ์รูท ( แทนที่จะเป็นสแควร์รูทของ Grover - เหมาะสมที่สุดตามเส้นกำกับ!) อย่างไรก็ตาม ต้นทุนพื้นที่เป็นต้นทุนเดียวกัน ดังนั้นจึงมี ไม่มีอันตรายที่นั่น

    ในทางกลับกัน RSA กำลังจะถูกทำลายเมื่ออัลกอริทึมของ Shor ถูกสร้างขึ้น ดังนั้น, RSA-HASH ไม่ปลอดภัยหลังควอนตัม

การใช้งานใด ๆ ?: RSA-HASH สามารถทำหน้าที่เป็นการเรียงสับเปลี่ยนแบบสุ่มที่ดี หากขนาดโมดูลัสเหมาะสมสำหรับแอปพลิเคชันของคุณ

สรุปแล้ว: การเปลี่ยนแปลง การรักษาความปลอดภัยด้วยความคลุมเครือ ความเร็ว และไม่มีหลังควอนตัมไม่ใช่ทางเลือกที่ดีสำหรับฟังก์ชันแฮชการเข้ารหัส

ใช้ SHA-2, SHAKE series ของ SHA-3, BLAKE2 (เร็วมาก), BLAKE3 (เร็วอย่างเหลือเชื่อ) ฯลฯ สำหรับการใช้งานของคุณ

cn flag
"พวกมันมีช่วงกว้างกว่าโดเมนของมันมาก" ไม่ จุดทั้งหมดของฟังก์ชันแฮชคือโคโดเมนของมัน (และด้วยเหตุนี้จึงจำเป็นต้องมีช่วงของมัน) มีขนาดเล็กกว่าโดเมนของมันมาก ต่อมาคุณใช้คำว่า "ช่วงโดเมน" ซึ่งไม่เคยได้ยินมาก่อน สิ่งที่คุณกำลังพูดถึงคือโดเมน
kelalaka avatar
in flag
@Maeher ใช่ มีข้อผิดพลาดที่นั่น ขอบคุณ.

โพสต์คำตอบ

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