Score:5

การสกัดแบบสุ่ม HKDF - เกลือหรือไม่มีเกลือ

ธง es

ให้เป็นไปตาม กระดาษ HKDFการใช้เกลือมีจุดประสงค์สองประการ: การแยกโดเมนและการสกัดแบบสุ่ม

คำถามนี้เกี่ยวกับความจำเป็นของเกลือเพื่อจุดประสงค์ในการสกัดแบบสุ่มเท่านั้น

เดอะ กระดาษ HKDF รัฐ:

ค่าเกลือ (เช่น คีย์สุ่มแต่ไม่ลับ) ... เป็นสิ่งสำคัญในการรับตัวแยกทั่วไปและ KDF ที่สามารถแยกการสุ่มจากแหล่งที่มาโดยพลการโดยมีค่าสูงเพียงพอ เอนโทรปี.

เดอะ การสกัดแบบสุ่มและการได้มาของคีย์ กระดาษ (เชื่อมโยงกับกระดาษ HKDF) ระบุว่า:

นอกจากนี้ สมมติฐานการสุ่มแบบ "เสาหิน" ในหนึ่งเดียว ฟังก์ชัน (ไม่คีย์) เช่น SHA-1 ไม่เหมาะสมสำหรับการตั้งค่า การสกัดแบบสุ่มเป็น ไม่มีฟังก์ชั่นเดียว (แม้ว่าจะสุ่มทั้งหมด) สามารถแยกการแจกแจงแบบใกล้เคียงออกจากกันได้โดยพลการ การกระจายอินพุตเอนโทรปีสูง. เป็นเช่นนี้ตั้งแต่เมื่อ ฟังก์ชั่นได้รับการแก้ไข (แม้ว่าจะเป็นค่าสุ่มล้วน ๆ ก็ตาม) มี การกระจายอินพุตเอนโทรปีสูงที่จะแมปกับชุดย่อยขนาดเล็ก ของเอาต์พุต. ดังนั้นแนวทางที่เป็นไปได้สำหรับการสกัดแบบสุ่ม คือการพิจารณากลุ่ม (หรือคอลเลกชัน) ของฟังก์ชันที่จัดทำดัชนีโดยชุด ของกุญแจ เมื่อแอปพลิเคชันต้องการการแฮชอินพุตสำหรับ จุดประสงค์ของการแยกการสุ่ม จากนั้นจึงทำการสุ่มองค์ประกอบ (เช่น a ฟังก์ชัน) จากตระกูลนี้ถูกเลือกและฟังก์ชันจะถูกนำไปใช้ อินพุตที่กำหนด ในขณะที่อาจมีการแจกแจงอินพุตเฉพาะที่ มีปฏิสัมพันธ์กับหน้าที่เฉพาะในครอบครัวไม่ดี ตระกูลสุ่ม-สกัด จะทำให้ "เหตุการณ์เลวร้าย" นี้เกิดขึ้นด้วย ความน่าจะเป็นน้อยมาก

คำถามสุดท้ายคือวิธีสร้างคีย์ที่รู้จักแบบสุ่มซึ่งใช้โดย เครื่องสกัด ในทางเทคนิคแล้วสิ่งนี้ไม่ใช่เรื่องยาก เนื่องจากฝ่ายต่างๆ สามารถสร้างได้ การสุ่มที่เหมาะสมแต่รายละเอียดที่แน่นอนนั้นขึ้นอยู่กับ แอปพลิเคชัน.ตัวอย่างเช่น ในการแลกเปลี่ยนคีย์ DH ที่กล่าวถึงก่อนหน้านี้ ฝ่ายแลกเปลี่ยนในค่าที่เลือกแบบสุ่มซึ่งได้แก่ แล้วรวมกันเพื่อสร้างคีย์เดียว [เกลือ] สำหรับครอบครัวเครื่องแยกกาก (เช่น HMAC-SHA1)

เดอะ กระดาษ HKDF รัฐ:

ครอบครัว Merkle-Damgard [ใช้ในการออกแบบอัลกอริธึมการแฮชที่ได้รับความนิยมมากมาย เช่น MD5, SHA-1 และ SHA-2] สร้างขึ้นจากการสุ่ม ฟังก์ชั่นการบีบอัดคือ ไม่ใช่ตัวแยกสถิติที่ดี... ผลผลิตของตระกูลดังกล่าวเมื่อแจกจ่ายใด ๆ ที่ บล็อกสุดท้ายของอินพุตได้รับการแก้ไขอยู่ไกลจากเครื่องแบบทางสถิติ)

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

ดังที่เราได้เน้นย้ำไปแล้วในหัวข้อก่อนหน้า เครื่องแยกสารทั่วไป เช่น ผู้ที่ทำงานบนแหล่งค่า min-entropy สูงตามอำเภอใจ ต้องเป็น สุ่มผ่านการสุ่ม แต่ไม่จำเป็นต้องเป็นความลับ คีย์ (หรือ âsaltâ). โดยเฉพาะอย่างยิ่ง ตัวอย่างตามบทแทรก 2 แสดงให้เห็นว่า สำหรับทุกๆ deterministic extractor มีแหล่งเอนโทรปีสูงที่ เอาต์พุตอยู่ไกลจากเครื่องแบบ.

ขัดแย้งกับข้อความเหล่านี้ ฉันทราบเกี่ยวกับการใช้งาน ECDH ที่ใช้แฮช Keccak-256 ในองค์ประกอบกลุ่ม EC ลับที่ใช้ร่วมกันโดยไม่มีเกลือ แต่บางทีนี่อาจเป็นสิ่งที่ชอบธรรม A) ด้วยเหตุผลที่ว่าการเลือกแฮชโครงสร้างฟองน้ำช่วยลดความกังวล ที่ทำให้แฮชตระกูล Merkle-Damgard เสียหาย หรือ B) เนื่องจากการแสดงจุดบีบอัดของ EC เป็นการสุ่มที่สม่ำเสมอเพียงพอ (เทียบกับความสม่ำเสมอของการสุ่มของความลับที่ใช้ร่วมกันใน DH ที่ไม่ใช่ EC)

เกลือจำเป็นในกรณีใดบ้าง? (สำหรับชนิดของวัสดุคีย์อินพุต และสำหรับฟังก์ชัน HMAC-Hash ประเภทใด)

เอกสารเหล่านี้ล้าสมัยหรือไม่ และข้อกังวลที่หยิบยกขึ้นมาจากเอกสารเหล่านี้เกี่ยวกับการใช้เกลือได้รับการบรรเทาลงในระดับใดด้วยการวิจัยอย่างละเอียดมากขึ้นเกี่ยวกับธรรมชาติของฟังก์ชันแฮชสมัยใหม่หรือไม่

kelalaka avatar
in flag
[การลดความปลอดภัยมาตรฐานสำหรับ HKDF ใช้กับฝ่ายตรงข้ามที่สามารถค้นหา HKDF-Expand สำหรับสตริงข้อมูลจำนวนมากแบบปรับเปลี่ยนได้ โดยทฤษฎีบทถูกกำหนดพารามิเตอร์ตามจำนวนการสืบค้น ดังนั้นการใช้งานที่คุณเสนอจึงตรงกับการใช้งาน HKDF ที่ตั้งใจและศึกษาไว้สิ่งนี้มีผลไม่ว่าคุณจะใช้เกลือหรือไม่ก็ตาม](https://crypto.stackexchange.com/a/59070/18298)
Score:1
ธง cn

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

  1. SP800 90B ของ NIST "คำแนะนำสำหรับแหล่งเอนโทรปีที่ใช้สำหรับการสร้างบิตแบบสุ่ม" ไม่มีคำแนะนำที่เป็นรูปธรรมว่าต้องใช้เครื่องสกัดหรือการกำหนดค่าประเภทใด คุณสามารถใช้ MD5 ตามที่แนะนำในรายงานฉบับแรกของคุณหรือหมุนประเภทที่แปลกใหม่ของคุณเองตราบเท่าที่คุณคำนวณเอนโทรปีเอาต์พุตเป็นค่าอคติ $< 2^{-64}$.

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

  3. ฉันไม่ยอมรับว่าการแก้ไขบล็อกสุดท้ายในสถาปัตยกรรม Merkle-Damgard หมายความว่าจำเป็นต้องมีการเติมเกลือและ HKDF ใช่ พวกเขาพิสูจน์ความไม่สม่ำเสมอของผลลัพธ์ที่ตามมา แต่นั่นเป็นสถานการณ์การโจมตีในมุมมองของฉัน และถ้าฝ่ายตรงข้ามสามารถป้อนบล็อกของเลขศูนย์ทั้งหมดเข้าไปในเครื่องสกัดของคุณ คุณต้องรักษาความปลอดภัยของห้องให้ดียิ่งขึ้น การเติมอย่างง่ายรองรับในการคำนวณเอนโทรปีของ I/O (มักจะเป็นค่าแทรกแฮชที่เหลือ) เอกสารของคุณพูดมากจริง ๆ แล้วส่งเสริมการโต้แย้งที่ไม่สามารถแยกแยะได้ทางคอมพิวเตอร์

  4. TRNG เชิงพาณิชย์ไม่ได้สุ่มเกลือโดยเฉพาะ เกลือใด ๆ จะถูกนำมาใช้ซ้ำในการผลิตต่อไป

  5. ในทางปรัชญา ตัวแยกความสุ่มทั้งหมดมีเกลือฝังอยู่ในเวกเตอร์การเริ่มต้น ดูบล็อกจำนวนมากในการใช้งาน SHA2 หรือเมทริกซ์ Toeplitz

ดังนั้นฉันเห็นด้วยกับความคิดเห็นของ kelalaka กับคุณ ไม่ต้องการเกลือ

knaccc avatar
es flag
ฉันคิดว่าโดยพื้นฐานแล้วคุณกำลังบอกว่าคุณไม่เห็นด้วยกับข้อความของกระดาษที่ว่า "มีการแจกแจงอินพุตที่มีเอนโทรปีสูงซึ่งจะถูกแมปกับชุดย่อยของเอาต์พุต" เมื่อใช้แฮชสมัยใหม่ สิ่งนี้ทำให้เข้าใจได้โดยสัญชาตญาณ โดยเป็นจำนวนเงินที่ใกล้เคียงกับการค้นหาการชนกันในฟังก์ชันแฮชโดยการเข้าไปยุ่งกับแหล่งที่มาที่มีเอนโทรปีสูง
Paul Uszak avatar
cn flag
@knaccc ฉันเดาอย่างนั้น คุณได้ยกตัวอย่างที่แตกต่างกันสามตัวอย่าง (เอกสารสองฉบับและประสบการณ์ส่วนตัวของคุณเกี่ยวกับ ECDH) มักจะมีความแตกต่างระหว่างวิธีการทางคณิตศาสตร์ / วิชาการและตัวแยก TRNG ในโลกแห่งความเป็นจริง

โพสต์คำตอบ

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