Score:1

ข้อมูล HMAC และการสลับคีย์

ธง au

ในบางบริบท (HKDF (RFC-5869 วินาที 2.2) และ BIP32 ของ Bitcoin (การสร้างมาสเตอร์คีย์)) ฉันได้เห็นคีย์และข้อมูลถูกสลับสำหรับ HMAC เช่น ให้ HMAC เป็นฟังก์ชัน $h:\{0,1\}^c \times \{0,1\}^b \ถึง \{0,1\}^c$ (สัญกรณ์ปกติ) ที่กำหนดไว้สำหรับคีย์ $k$ และข้อมูล $m$ เช่น $h(k, ม)$. ดีบางคนปล่อยให้ $k$ เป็นมูลค่าสาธารณะคงที่ (เช่น เมล็ดบิตคอยน์) และเข้ารหัสลับไบต์ใน $m$.

ฉันเข้าใจ ทำไม พวกเขาต้องการทำเช่นนี้ ตัวอย่างเช่น ข้อมูลป้อนเข้า (ซึ่งอาจเป็นรหัสลับ) จะมีความยาวเท่าใดก็ได้ตามที่กำหนด $ค$. ฉันคิดว่าพวกเขาไม่คาดหวังความซื่อตรง พวกเขาต้องการแต่ความสุ่มเสี่ยง

ฉันคาดว่าความปลอดภัย (หรืออย่างน้อยความสมบูรณ์) จะขึ้นอยู่กับความลับของ $k$ และคุณสมบัติของฟังก์ชันแฮชพื้นฐาน การใช้ผลลัพธ์ของ "บทพิสูจน์ใหม่สำหรับ NMAC และ HMAC" ของ Bellare 1เรามี PRF ทันทีที่ฟังก์ชันการบีบอัดของฟังก์ชันแฮชเป็น PRF และหากผู้ดำเนินการทำสิ่งที่ถูกต้อง สิ่งนี้จะเกิดขึ้นจริง ไม่ ขึ้นอยู่กับความลับของ $k$.

แต่สำหรับฉันแล้วดูเหมือนว่าหลักฐานจะถือว่าก สุ่มรหัสลับอย่างสม่ำเสมอ. หลักฐาน PRF ยังคงมีอยู่หรือไม่หากเราเปิดเผย $k$ ต่อผู้โจมตี?

(หมายเหตุ: สิ่งนี้จะชัดเจนถ้า $k$ และ $m$ มีบทบาทสมมาตรในการก่อสร้าง HMAC - นี่ไม่ใช่กรณีเช่นกัน)


kelalaka avatar
in flag
หากฉันเข้าใจคำถามของคุณถูกต้อง หากคุณแก้ไขคีย์ของ HMAC คุณจะเลือก PRF จากตระกูล HMAC ตอนนี้คุณมี PRF ที่จะใช้แล้ว
Score:0
ธง tr

ฉันจะกล่าวถึงเฉพาะส่วน HKDF เท่านั้น

HKDF ได้รับการแนะนำในบทความต่อไปนี้: https://eprint.iacr.org/2010/264.pdf

ในบริบทนี้ HMAC ใช้เพื่อวัตถุประสงค์ที่แตกต่างกันสองประการ: 1) การสกัดแบบสุ่ม และ 2) PRF ความยาวตัวแปร (อินพุต/เอาต์พุต)

การสลับคีย์เกิดขึ้นสำหรับการสกัดแบบสุ่ม สถานการณ์ในที่นี้คือเราได้รับเอกสารสำคัญ $IKM$ ที่ไม่ใช่ (หลอก) สุ่มแบบเดียวกันและต้องการสร้างคีย์ $PRK$ นั่นคือ pseudorandom (กล่าวคือแยกไม่ออกจากการคำนวณแบบสุ่ม)

ตามที่คุณระบุไว้ HMAC ก็แสดงว่าเป็น PRF อย่างไรก็ตาม เราไม่สามารถพึ่งพาความปลอดภัยของ PRF เพื่อโต้แย้งความปลอดภัยของ $PRK$. แต่บทความระบุว่าการใช้ HMAC นี้เหมาะสำหรับการจัดเตรียมตัวแยกความสุ่มทางการคำนวณ (ดูหัวข้อ 6)

เมื่อพูดถึง PRF สิ่งที่น่าสนใจที่ควรทราบก็คือการพิสูจน์ความปลอดภัยบางอย่าง เช่น TLS อาศัยสิ่งที่เรียกว่าสมมติฐาน PRF-ODH (https://eprint.iacr.org/2017/517.pdf). เมื่อนำไปใช้กับการใช้ HKDF ใน TLS: จำไว้ว่าทั้งสองฝ่ายแลกเปลี่ยนหุ้น DH $(g^x, g^y)$; สมมติฐาน (ตามตัวแปรของ) พูดอย่างคร่าว ๆ ว่า: ฟังก์ชัน $F(K, X) = HMAC (X, K) $ เป็น PRF ภายใต้สมมติฐานว่าฟังก์ชันการบีบอัดพื้นฐานนั้นเป็นออราเคิลแบบสุ่ม แม้ว่าผู้โจมตีจะได้รับสิทธิ์เข้าถึงออราเคิลก็ตาม $\mathcal{O}(T,v) = F (T^x, v) $. (ละไว้ที่นี่: ข้อจำกัดเกี่ยวกับค่าของ $(ท,x)$ และจำนวนข้อความค้นหาสูงสุด)

โปรดทราบว่าฟังก์ชัน $F$ ด้านบนมีคีย์สเปซ $\langle G \rangle$กลุ่มที่ใช้สำหรับการแลกเปลี่ยน DH ดังนั้นเราจึงจัดการกับคีย์สุ่มแบบเดียวกันบนคีย์สเปซในบริบทของ PRF-ODH

PS: ลองอ่านคำตอบนี้ด้วย https://crypto.stackexchange.com/a/30461/58690

โพสต์คำตอบ

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