Score:1

พยายามที่จะเข้าใจโหมด SIV

ธง jp

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

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

หากฉันเข้าใจถูกต้อง คุณสามารถสร้างโหมดการทำงาน SIV โดยใช้:

def เข้ารหัส (msg, คีย์):
   siv = hash_shake256(บิต=192, msg)
   ส่งคืน xchacha20 (คีย์, siv, msg), siv

กล่าวอีกนัยหนึ่ง อันดับแรก เราจะคำนวณแฮชที่คีย์บนข้อความ จากนั้นใช้ค่านั้นเป็น nonce สำหรับการเข้ารหัสจริง

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

ความปลอดภัยมาจากฟังก์ชันแฮชคีย์ซึ่งไม่สามารถย้อนกลับได้และข้อเท็จจริงที่ว่าสำหรับแต่ละฟังก์ชัน ข้อความ เราผ่านการป้อน เรามั่นใจว่าเราจะไม่มี nos ซ้ำ

  • ฉันเข้าใจสิ่งต่าง ๆ ถูกต้องหรือไม่?
  • ปลอดภัยไหมที่จะใช้คีย์เดียวกันสำหรับทั้งคีย์แฮชและการเข้ารหัส
  • ฉันถือว่าจริง ซิฟ การใช้งานเป็นมากกว่าการแฮชอินพุตเล็กน้อยหรือไม่
kelalaka avatar
in flag
มี HS1-SIV อยู่แล้ว; [ข้อดีของ HS1-SIV เหนือ ChaCha20-Poly1305-SIV?](https://crypto.stackexchange.com/q/33068/18298) [จะปลอดภัยไหมถ้าใช้แฮชข้อความเป็น IV ใน ChaCha?]( https://crypto.stackexchange.com/q/59886/18298)
kelalaka avatar
in flag
ฉันเคยเห็นโหมด SIV สำหรับ ChaCha แต่ฉันหากระดาษไม่เจอ
Maarten Bodewes avatar
in flag
สิ่งที่ฉันไม่เข้าใจจากคำถามคือมีการใช้ `hash_shake256` เหนือข้อความ แต่คุณพูดถึง "ความปลอดภัยมาจากฟังก์ชันแฮช **keyed**" SHAKE256 ไม่ใช่ฟังก์ชันแฮชแบบคีย์เลย คุณควรใช้เช่น KMAC สำหรับสิ่งนั้น (โดยพื้นฐานแล้วจะเหมือนกับ SHA-256 กับ HMAC-SHA-256)
Maarten Bodewes avatar
in flag
โปรดทราบว่า HS1-SIV ใช้ฟังก์ชันแฮชแบบคีย์ และแท้จริงแล้ว XOR เป็นผลลัพธ์ของฟังก์ชันนั้นด้วยคีย์ก่อนการเข้ารหัส ใช่ แค่ใช้แฮชธรรมดาก็เป็นความคิดที่ไม่ดี ทุกคนอาจรู้แฮช และใครก็ตามอาจรู้ไซเฟอร์เท็กซ์ นั่นหมายความว่าคุณสามารถพลิกบิตในเอาต์พุตแฮชและข้อความเพื่อให้ได้ผลลัพธ์ที่ถูกต้อง จำเป็นอย่างยิ่งที่คุณต้องใช้แฮชคีย์
kelalaka avatar
in flag
และโปรดทราบว่าด้วย XChaCha20 ChaCha20 ไม่จำเป็นต้องมีโหมด SIV เนื่องจากมี nonce แบบ 192 บิต และ nonce แบบสุ่มนั้นปราศจากการชนกันของ nonce ซึ่งไม่เคยคาดคิดมาก่อนว่าจะได้เห็น!
SAI Peregrinus avatar
si flag
@kelalaka https://eprint.iacr.org/2020/067 อาจเป็นกระดาษที่คุณเห็น
kelalaka avatar
in flag
@SAIPeregrinus ใช่แล้ว ขอบคุณ
Score:1
ธง cn

ฉันเข้าใจสิ่งต่าง ๆ ถูกต้องหรือไม่?

SIV ต้องการ MAC ไม่ใช่แค่แฮช แฮชคีย์สามารถใช้เป็น MAC อย่างไรก็ตาม คุณไม่มีคีย์แฮชในตัวอย่างของคุณ (แต่คุณพูดว่าคีย์แฮช)

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

โดยทั่วไปควรใช้รหัสที่แตกต่างกันสำหรับ MAC และการเข้ารหัส แม้ว่าในบางกรณีอาจใช้คีย์เดียวกันได้ แต่ถ้า MAC และการเข้ารหัสแตกต่างกันมากพอ ตัวอย่างเช่น หากคุณใช้ทั้ง CBC-MAC และ CTR กับ AES การใช้คีย์เดียวกันนั้นไม่ดี โหมด SIV กำหนดวิธีที่คุณได้รับคีย์จากมาสเตอร์คีย์

ฉันถือว่าการใช้งาน siv จริงเป็นมากกว่าการแฮชอินพุตเล็กน้อย

คุณต้องใช้ MAC อีกครั้ง คุณควรตรวจสอบตัวแปร SIV จริงสำหรับรายละเอียดเพิ่มเติม ตัวอย่างเช่น SIV ที่มี AES (CMAC และ CTR): https://datatracker.ietf.org/doc/html/rfc5297

โพสต์คำตอบ

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