Score:0

CMAC ปลอดภัยหากไม่มี IV และคีย์เดียวกันหรือไม่ (ตรวจสอบสิทธิ์เท่านั้น)

ธง cn

ฉันค่อนข้างไม่แน่ใจเกี่ยวกับ CMAC และ GMAC และอาจมีบางคนสามารถช่วยฉันได้ เท่าที่ฉันรู้ CMAC ไม่ใช้ IV [สพ800-38บ ช. 6.2]. จะปลอดภัยหรือไม่หากฉันใช้รหัสเดียวกันสำหรับข้อความที่แตกต่างกัน ...และเหตุใดฉันจึงต้องมี IV สำหรับ GMAC จะเกิดอะไรขึ้นที่นี่หากฉันใช้ IV และคีย์เดิมซ้ำ

ในกรณีของฉัน ฉันไม่ได้เข้ารหัสข้อความใดๆ ฉันแค่สร้าง MAC ที่ฉันแนบไปกับข้อความ (ข้อความธรรมดา) สิ่งนี้มีช่องโหว่หรือไม่?

...ด้วย UMAC, VMAC หรือ โพลี1305 ฉันยังอ่านด้วยว่าทูเพิล (key, nonce) สามารถใช้ได้เพียงครั้งเดียวเท่านั้น แต่ด้วย OpenSSL ฉันระบุ nonce กับ Poly1305 ไม่ได้ ...ทั้งหมดนี้ทำให้ฉันสับสน

Score:2
ธง my

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

แน่นอน; มันจะไม่ใช่ MAC ที่ดีนักหากสามารถใช้รหัสสำหรับข้อความเดียวได้

และเหตุใดฉันจึงต้องมี IV สำหรับ GMAC

เนื่องจาก CMAC และ GMAC มีโครงสร้างภายในที่แตกต่างกัน

ด้วย CMAC สิ่งที่คุณทำส่วนใหญ่จะเป็นการคำนวณแบบเดียวกับการเข้ารหัสโหมด CBC ยกเว้นว่าคุณเก็บเฉพาะบล็อกสุดท้าย (และนั่นคือ MAC) ฉันพูดเป็นส่วนใหญ่เพราะถ้าคุณเพียงแค่ดำเนินการนี้ (ซึ่งเรียกว่า CBCMAC) สิ่งนี้จะทำให้ผู้โจมตีสามารถเล่นเกมบางเกมโดยขยายข้อความ - เพื่อป้องกันไม่ให้ CMAC xor อยู่ในข้อมูลลับบางส่วนพร้อมบล็อกสุดท้าย ทำลายเกมดังกล่าว .

เหตุผลที่เราขอให้ IV แตกต่าง (และคาดเดาไม่ได้) ในโหมด CBC ก็เพื่อบล็อกเริ่มต้นจะไม่รั่วไหลของข้อมูล CMAC ไม่ส่งออกบล็อกโหมด CBC เริ่มต้น (เว้นแต่ว่าข้อความจะอยู่ในบล็อกเดียว และแม้ว่าจะเป็นเช่นนั้น xor ของข้อมูลลับจะป้องกันการรั่วไหลดังกล่าว) ดังนั้น CMAC จึงไม่แสดงความกังวลเกี่ยวกับ IV


สำหรับ GMAC นั่นแตกต่างไปจากเดิมอย่างสิ้นเชิง ด้วยวิธีนี้ คุณจะแปลงข้อความเป็นค่าสัมประสิทธิ์ของพหุนามอย่างมีเหตุผล $M_k, M_{k-1}, ..., M_1$; จากนั้นคุณก็แปลงค่า IV เป็นค่าคงที่ $M_0$ ในรหัสลับ แล้วประเมินพหุนาม (ในเขตข้อมูลจำกัด) ที่จุดลับ $H$นั่นคือคุณคำนวณ:

$$M_kH^k + M_{k-1}H^{k-1} + ... + M_1 H^1 + M_0$$

และนั่นคือ MAC โปรดทราบว่าผู้โจมตีรู้ทุกอย่าง ยกเว้นค่าความลับ $H$ (ซึ่งเป็นค่าคงที่สำหรับคีย์ที่กำหนด) และ $M_0$ (และหลังขึ้นอยู่กับ IV)

ตอนนี้ หากคุณมี MAC สองเครื่องสำหรับสองข้อความที่แตกต่างกันโดยมี IV เดียวกัน $M_0$ ค่าจะเหมือนกัน คุณสามารถลบพวกมันออกแล้วแก้หา $H$ - ที่ให้ความลับทั้งหมดแก่คุณ และเพื่อให้คุณสามารถสร้างข้อความที่มีค่า MAC ที่ถูกต้องได้ตามต้องการ

และในระดับที่ค่อนข้างสูงที่ฉันอธิบายไว้ Poly1305 ก็ทำงานในลักษณะเดียวกัน (และมีจุดอ่อนเดียวกันสำหรับการทำซ้ำ IV)

ในกรณีของฉัน ฉันไม่ได้เข้ารหัสข้อความใดๆ ฉันแค่สร้าง MAC ที่ฉันแนบไปกับข้อความ (ข้อความธรรมดา) สิ่งนี้มีช่องโหว่หรือไม่?

MAC ที่ดีก็ใช้ได้ - นั่นคือกรณีการใช้งานจริง ๆ ที่ MAC ควรจะกล่าวถึง [1] CMAC นั้นใช้ได้ - GMAC และ Poly1305 ก็ใช้ได้เช่นกันหากคุณหลีกเลี่ยงการให้ IV ซ้ำ

[1]: แน่นอนว่าสมมติว่าผู้ส่งและผู้รับใช้รหัสลับเดียวกัน - หากคุณต้องการบางอย่างที่ผู้รับไม่สามารถสร้างข้อความที่ดูถูกต้องได้ คุณจะต้องดูที่ลายเซ็น

SBond avatar
cn flag
ขอบคุณมาก คุณช่วยฉันได้มาก มีวันที่ดีและรักษาสุขภาพให้แข็งแรง :)
Score:0
ธง tr

ฉันค่อนข้างไม่แน่ใจเกี่ยวกับ CMAC และ GMAC และอาจมีบางคนสามารถช่วยฉันได้ เท่าที่ฉันทราบ CMAC ไม่ได้ใช้ IV [SP 800-38B ch. 6.2]. จะปลอดภัยหรือไม่หากฉันใช้รหัสเดียวกันสำหรับข้อความที่แตกต่างกัน ...และเหตุใดฉันจึงต้องมี IV สำหรับ GMAC จะเกิดอะไรขึ้นที่นี่หากฉันใช้ IV และคีย์เดิมซ้ำ

โครงสร้างทั้งสองนี้ใช้หน่วยการสร้าง/ตรรกะที่แตกต่างกันสองแบบ ดังนั้นจึงมีข้อกำหนดด้านความปลอดภัยที่แตกต่างกัน คือ:

  1. สจล: เราสามารถอธิบายในเชิงนามธรรมว่า CMCA เป็นโครงสร้างที่สร้าง PRF ที่ปลอดภัยสำหรับอินพุตที่มีความยาวผันแปรได้ ทำไม เพราะ PRF ที่ปลอดภัยก็คือ MAC ที่ปลอดภัยเช่นกัน. แต่เพื่อจัดการกับ CMAC ที่มีความยาวผันแปรได้ กำหนดให้อินพุตจริงของฟังก์ชัน MAC นั้นไม่มีคำนำหน้า เช่น (w.l.o.g) ไม่มีอินพุต $x,y$ ดังนั้น $y$ เริ่มต้นด้วย $x$. อย่างไรก็ตาม ใน CMAC ข้อกำหนดนี้ไม่ได้สมบูรณ์ แทนที่จะใช้รูปแบบการเข้ารหัสแบบสุ่ม เพื่อให้แน่ใจว่าการไม่มีคำนำหน้าแบบไม่มีคำนำหน้าเกิดขึ้นด้วยความน่าจะเป็นที่ต่ำมากสรุปแล้ว CMAC รุ่นนามธรรมใช้การเข้ารหัสแบบไม่มีคำนำหน้าแบบสุ่ม $e$ ด้วยกุญแจ $k_1$, PRF ที่ปลอดภัยสำหรับอินพุตแบบยาวแต่ไม่มีคำนำหน้า $F$ ด้วยกุญแจ $k$. บนข้อความ $m$, mac คำนวณเป็น $\tau = F(k, e(m,k_1))$
  • สำหรับรายละเอียดจริงและแหล่งที่มาของคีย์ ให้อ้างอิงถึงมาตรฐานที่คุณได้อ้างอิงด้วย
  1. GMAC: ดูคำตอบแรกสำหรับรายละเอียด

ดังนั้น เราจะเห็นว่า CMAC ไม่ต้องการ IV ในขณะที่ GMAC ทำ และที่สำคัญกว่านั้น ความปลอดภัยขึ้นอยู่กับการไม่ใช้ IV ซ้ำ

สำหรับ OpenSSL อาจเป็นประโยชน์เพื่อดูว่าพวกเขาใช้ Poly1305 อย่างไร? บางทีใน chacha20_poly1305

SBond avatar
cn flag
ขอบคุณสำหรับการตอบกลับและเวลาอันมีค่าของคุณ :)

โพสต์คำตอบ

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