Score:0

จะใช้ "ฟังก์ชั่นฟองน้ำ" พื้นฐานได้อย่างไร?

ธง tn

ในบทที่ 6 ของ การเข้ารหัสที่จริงจังพวกเขาเขียนเกี่ยวกับ ฟังก์ชั่นฟองน้ำ:

  1. XORs บล็อกข้อความแรก M1 ถึง H0 ซึ่งเป็นค่าเริ่มต้นที่กำหนดไว้ล่วงหน้าของสถานะภายใน (เช่น สตริงที่เป็นศูนย์ทั้งหมด) บล็อกข้อความมีขนาดเท่ากันทั้งหมดและเล็กกว่าสถานะภายใน
  2. การเรียงสับเปลี่ยน P แปลงสถานะภายในเป็นค่าอื่นที่มีขนาดเท่ากัน
  3. XOR บล็อก M2 และใช้ P อีกครั้ง จากนั้นทำซ้ำสำหรับข้อความบล็อก M3, M4 และอื่นๆ สิ่งนี้เรียกว่า ขั้นตอนการดูดซับ.
  4. หลังจากฉีดบล็อกข้อความทั้งหมดแล้ว จะใช้ P อีกครั้งและแยกบล็อกบิตออกจากสถานะเพื่อสร้างแฮช (หากคุณต้องการแฮชที่ยาวขึ้น ให้ใช้ P อีกครั้งและแตกบล็อก) สิ่งนี้เรียกว่า บีบเฟส.

ความปลอดภัยของฟังก์ชันฟองน้ำขึ้นอยู่กับความยาวของสถานะภายในและความยาวของบล็อก ถ้าบล็อคข้อความยาว r-bit และสถานะภายในยาว w-bit แสดงว่ามี c = w â r บิตของสถานะภายในที่ไม่สามารถแก้ไขได้โดยบล็อคข้อความ ค่าของ c เรียกว่าความจุของฟองน้ำ และระดับความปลอดภัยที่รับประกันโดยฟังก์ชันฟองน้ำคือ c/2 ตัวอย่างเช่น หากต้องการเข้าถึงการรักษาความปลอดภัย 256 บิตด้วยบล็อกข้อความ 64 บิต สถานะภายในควรเป็น w = 2 Ã 256 + 64 = 576 บิต แน่นอนว่าระดับความปลอดภัยยังขึ้นอยู่กับความยาว n ของค่าแฮชด้วย ดังนั้น ความซับซ้อนของการโจมตีแบบปะทะกันจึงเป็นค่าที่น้อยที่สุดระหว่าง 2^{n/2} ถึง 2^{c/2} ในขณะที่ความซับซ้อนของการโจมตีแบบพรีอิมเมจครั้งที่สองคือค่าที่น้อยที่สุดระหว่าง 2^n ถึง 2^{c/ 2}.

เพื่อความปลอดภัย การเรียงสับเปลี่ยน P ควรมีลักษณะสุ่ม การเปลี่ยนแปลงโดยไม่มีอคติทางสถิติและไม่มีโครงสร้างทางคณิตศาสตร์ ที่จะทำให้ผู้โจมตีสามารถคาดการณ์ผลลัพธ์ได้ เช่นเดียวกับการบีบอัด แฮชตาม functionâ ฟังก์ชันฟองน้ำก็แพดข้อความเช่นกัน แต่ การเติมนั้นง่ายกว่าเพราะไม่จำเป็นต้องใส่ข้อความ ความยาว. บิตข้อความสุดท้ายตามด้วย 1 บิตและมาก เลขศูนย์เท่าที่จำเป็น

เดอะ หน้าวิกิพีเดีย ทึบเกินไปที่จะเปลี่ยนเป็นรหัสเช่นกัน

สงสัยว่ามีใครสามารถแสดงการสาธิตอย่างง่ายของฟังก์ชันฟองน้ำในโลกแห่งความเป็นจริงได้หรือไม่ เพื่อนำเสนอหัวข้อย่อยทั้ง 4 ข้อนี้เกี่ยวกับวิธีการทำงาน

บาง คำถาม ที่เกี่ยวข้องกับการนำไปใช้:

  • ขนาดบล็อกคืออะไร? สมมติว่า 512
  • ข้อมูลอินพุตคืออะไร (utf-8 ฯลฯ ) มันสำคัญหรือไม่?
  • XOR บล็อกข้อความแรกด้วยอะไร หมายเลขอะไร? และบล็อกในอนาคตด้วย?

ฉันไม่รู้ว่าจะเริ่มจากตรงไหน ไม่พบข้อมูลโค้ดที่เกี่ยวข้องกับ "ฟังก์ชันฟองน้ำ" เช่นกัน

เดอะ กระดาษฟังก์ชั่น Keccak Sponge เป็นคณิตศาสตร์ที่ค่อนข้างหนักเกินไปที่จะสามารถรวบรวมการใช้งานซอฟต์แวร์ที่ชัดเจนได้ (อย่างน้อยสำหรับฉัน)

เพียงแค่มองหาพื้นฐานที่เปลือยเปล่า บางที นี้ ง่ายที่สุดเท่าที่จะทำได้?

Maarten Bodewes avatar
in flag
ฉันได้ทำให้คำถามมีความเฉพาะเจาะจงน้อยลงสำหรับ JavaScript เนื่องจากนั่นจะไม่เป็นหัวข้อที่นี่ คำถามที่คุณมีเกี่ยวกับการดำเนินการควรอยู่ในหัวข้อ โปรดทราบว่าการระบุโค้ดตัวอย่างยังไม่ได้รับการพิจารณาในหัวข้อที่นี่
Lance avatar
tn flag
ตกลง ฉันลบตัวอย่างแล้ว ขอบคุณ ฉันพบ[ฟังก์ชันฟองน้ำ keccak ในรูปแบบที่อ่านได้](https://github.com/lancejpollard/hash/blob/make/lib/keccak-sponge.c) แต่มันค่อนข้างหนาแน่นและเกี่ยวข้อง ฟองน้ำทำหน้าที่ได้หรือไม่ ง่ายมากที่จะสาธิตวิธีการทำงาน?
Maarten Bodewes avatar
in flag
เอ่อ แน่นอน อาจมีการใช้งานแบบง่าย (มีข้อกำหนด AES แบบง่ายที่ใช้สำหรับจุดประสงค์การเรียนรู้ เป็นต้น) แต่ฉันไม่รู้เลย ไม่แน่ใจว่าฟังก์ชั่นฟองน้ำอื่น ๆ จะใช้งานได้มากกว่านี้หรือไม่ Spritz นั้นเรียบง่ายโดยเจตนาอย่างแน่นอน ดังนั้นอาจลองดู *เพื่อการเรียนรู้* ไม่แน่ใจว่าการทำงานของฟองน้ำนั้นแยกออกจากการเข้ารหัสสตรีมในการนำไปใช้งานหรือไม่ SPONGENT ยังดูเรียบง่ายอีกด้วย ฉันยังเห็นกระดาษที่ใช้แฮชเป็นฟังก์ชันพื้นฐาน แน่นอนว่าตอนนี้เป็นเรื่องแปลกเล็กน้อย แต่อาจเป็นประโยชน์สำหรับจุดประสงค์การเรียนรู้
kelalaka avatar
in flag
คุณลืมส่วนสำคัญของข้อนี้ 1. ทุกทีมต้องส่งรหัสสำหรับการแข่งขัน SHA-3 2. มาตรฐาน SHA-3 กำหนดโดย [NIST](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST .FIPS.202.pdf) และมีเวกเตอร์ทดสอบด้วย ฉันอาจเรียกสิ่งนี้ว่าคนหลอกลวงนี้ /18298)
Maarten Bodewes avatar
in flag
ฉันคิดว่าการใช้การอ้างอิงของ Keccak นั้นไม่ "ง่าย" และเป็นที่รู้จักเพียงพอ แต่แน่ใจว่าคุณสามารถใช้ฟังก์ชันของการใช้งานการอ้างอิงหรือพอร์ตเฉพาะภาษาได้ - หากนั่นคือคำตอบ แน่นอน....
kr flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [โครงสร้างฟองน้ำในแง่ง่ายคืออะไร](https://crypto.stackexchange.com/questions/83258/what-is-the-sponge-construction-in-simple-terms)
Lance avatar
tn flag
ไม่ ฉันกำลังมองหาการใช้งานด้านเทคนิค โดยเฉพาะอย่างยิ่งในรหัสหรือรหัสเทียมบางประเภท

โพสต์คำตอบ

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