Score:3

อัลกอริทึมที่ไม่ใช่ FIPS ได้รับอนุญาตให้ดำเนินการทั้งหมดในระบบที่สอดคล้องกับ FIPS หรือไม่

ธง cn

หากซอฟต์แวร์ชิ้นหนึ่งกำลังทำงานในโหมด FIPS และใช้โมดูลการเข้ารหัสที่ได้รับการรับรอง FIPS ซอฟต์แวร์นั้นจะได้รับอนุญาตให้ดำเนินการอัลกอริทึมที่ไม่ใช่ FIPS แม้ว่าความปลอดภัยของระบบจะไม่ได้ขึ้นอยู่กับซอฟต์แวร์เหล่านั้นโดยเฉพาะก็ตาม

ตัวอย่าง: สมมติว่าคุณมีระบบที่แลกเปลี่ยนคู่คีย์ ECDH สองคู่: คู่คีย์ curve25519 หนึ่งคู่และคู่คีย์ NIST P-384 หนึ่งคู่ ข้อตกลงคีย์ดำเนินการโดยใช้คู่คีย์ทั้งสอง จากนั้นความลับที่เป็นผลลัพธ์จะถูกเชื่อมต่อและแฮชด้วย SHA-384

ฉันไม่เห็นปัญหาในการเข้ารหัสเนื่องจากผลลัพธ์ของ SHA-384(K0 | K1) นั้นแข็งแกร่งเท่ากับเส้นโค้งที่แข็งแกร่งที่สุด นี่เป็นเพราะ SHA-384(ความลับ | ค่าที่ทราบ) เป็นความลับ หมายความว่าหากผู้โจมตีถอดรหัสโดยพูดว่า curve25519 พวกเขาจะยังคงไม่ทราบผลลัพธ์ของการแฮชความลับนั้นกับความลับอื่นที่พวกเขาไม่รู้

คำถามของฉันคือ FIPS อนุญาตหรือไม่ หรือต้องดำเนินการเฉพาะรหัสและอัลกอริทึมที่ได้รับการรับรอง FIPS คุณช่วยพิจารณาว่า Curve25519 คำนวณความลับที่ใช้ร่วมกันเป็น "เกลือ" หรืออะไรซักอย่างได้ไหม

แก้ไข: พิจารณาว่าผลของข้อตกลงที่ไม่ใช่ FIPS กับเช่น Curve25519 สามารถผสมกับความลับ "อย่างเป็นทางการ" เป็นเกลือเช่น HMAC-SHA384(เกลือ, คีย์)

Score:4
ธง my

ที่จริงแล้ว curve25519 กำลังอยู่ระหว่างการอนุมัติ FIPS (NIST SP 800-186) แต่นั่นไม่ใช่สิ่งที่คุณถาม

เพื่อตอบคำถามของคุณ ใช่ NIST ได้ระบุว่าพวกเขาอนุญาตให้ใช้อัลกอริทึมที่ไม่ได้รับการอนุมัติควบคู่ไปกับการแลกเปลี่ยนคีย์ที่พวกเขาชื่นชอบ ในขณะนี้ กระบวนการที่ได้รับอนุมัติอย่างเป็นทางการของพวกเขาจะต้องดำเนินการกับคีย์แชร์ที่ไม่ได้รับอนุมัติซึ่งแตกต่างจากที่ได้รับอนุมัติ อย่างไรก็ตาม พวกเขาทราบว่าสิ่งนี้จะเปลี่ยนไปใน NIST SP 800-56C เวอร์ชันถัดไป

ข้อความจริงของพวกเขา (จาก https://csrc.nist.gov/Projects/post-quantum-cryptography/faqs) ซึ่งใช้ได้กับมากกว่าการเข้ารหัสหลังควอนตัม (ข้อความที่ให้ตัวอย่างหลังควอนตัมบางส่วนถูกตัดออก):

เป็นไปได้หรือไม่ที่โหมดสร้างคีย์แบบไฮบริดจะดำเนินการในโหมดการทำงานที่ได้รับอนุมัติจาก FIPS 140 (เพิ่ม 1/28/20)

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

มาตรฐาน NIST ในปัจจุบัน ... สามารถรองรับการสร้างคีย์แบบไฮบริดได้หลายรายการในโหมด âFIPSâ ตามที่กำหนดไว้ใน FIPS 140 ตัวอย่างเช่น สมมติว่าค่า Z เป็นความลับที่ใช้ร่วมกันซึ่งสร้างขึ้นภายในการเข้ารหัสที่ได้รับการรับรองโดย NIST แบบแผน และค่า T นั้นถูกสร้างขึ้นหรือกระจายผ่านแบบแผนอื่น... ต่อไปนี้คือวิธีต่างๆ ในการรวมค่า T ในขั้นตอนการรับคีย์เพื่อให้ได้โหมดไฮบริดที่อนุญาตโดยมาตรฐานปัจจุบัน:

สำหรับวิธีการรับคีย์แบบขั้นตอนเดียวที่ระบุใน SP 800-56C อินพุตที่กำหนดเป็น SuppPrivInfo สามารถรวมอยู่ในฟิลด์ FixedInfo (ทางเลือก) และ T อาจรวมอยู่ในฟิลด์นั้น ในวิธีการหาค่าคีย์ใดๆ ที่ระบุไว้ใน SP 800-56C ไม่ว่าจะเป็นแบบขั้นตอนเดียวหรือแบบแยกแล้วขยาย ค่า T อาจรวมอยู่ในช่องเกลือ นอกจากนี้ NIST วางแผนที่จะรวมโครงสร้างการจัดตั้งคีย์แบบไฮบริดที่สะอาดขึ้นและเป็นที่นิยมกว่าในการแก้ไข SP 800-56C ในอนาคต:

ในวิธีการหาแหล่งที่มาของคีย์ใด ๆ ที่ระบุไว้ใน SP 800 - 56C การแก้ไขจะอนุญาตให้มีการต่อ Z และ T เช่น Z||T เพื่อใช้เป็นความลับที่ใช้ร่วมกันแทน Z ซึ่งจะต้องมีการแทรก T ลงใน รหัสสำหรับแบบแผนและรหัสการตรวจสอบ FIPS 140 อาจจำเป็นต้องแก้ไข

cn flag
ดูเหมือนว่าคำตอบคือใช่ ตราบใดที่การได้มาของคีย์สุดท้ายนั้นเป็นไปตามสิ่งที่พวกเขาต้องการและใช้แฮช/KDF ที่สอดคล้องกับ FIPS
poncho avatar
my flag
@AdamIerymenko: ถูกต้อง และ NIST กำลังมองหาการอนุมัติการก่อสร้าง เช่นเดียวกับ $\operatorname{SHA384}( K_0 \mathbin\| K_1 )$
Score:1
ธง mc

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

ลองดูที่ คู่มือการใช้งานมีส่วน "ตัวอย่างสถานการณ์ของอัลกอริทึมการเข้ารหัสที่ไม่ได้รับการอนุมัติที่อนุญาตในโหมด FIPS" ฉันไม่คิดว่าตัวอย่างของคุณตรงกับสถานการณ์ใดในสามสถานการณ์ที่ระบุไว้ในเอกสาร

cn flag
"การใช้อัลกอริทึมที่ได้รับอนุมัติ ไม่ได้รับการอนุมัติ หรือเป็นกรรมสิทธิ์เพื่อวัตถุประสงค์ที่ไม่เกี่ยวข้องกับความปลอดภัย หรือซ้ำซ้อนกับอัลกอริทึมการเข้ารหัสที่ได้รับอนุมัติ" ? จะเกิดอะไรขึ้นหากผลลัพธ์ของการแลกเปลี่ยนคีย์ภายนอกถือเป็นส่วนเสริมหรือ "เกลือ" ในฟังก์ชันการหาค่าคีย์
Swashbuckler avatar
mc flag
@AdamIerymenko ฉันไม่คุ้นเคยกับคำสั่ง NIST ทั้งหมดสำหรับอัลกอริทึมดังกล่าว แต่ฉันเดาว่ามันจะไม่เป็นไปตาม FIPS สำหรับบางอย่างเช่น PBKDF2 เกลือควรมาจาก RNG ที่ได้รับการรับรอง FIPS ดังนั้นจึงไม่เป็นไปตามข้อกำหนดในกรณีนั้น คุณต้องอ่านเอกสาร NIST สำหรับ KDF เฉพาะที่คุณสนใจและดูสิ่งที่ระบุ
Swashbuckler avatar
mc flag
สิ่งใดก็ตามที่เป็นส่วนเสริม แต่ยังคงเกี่ยวข้องกับความปลอดภัยไม่น่าจะเป็นไปตาม FIPS ปรัชญาคือสิ่งใดก็ตามที่ไม่สอดคล้องกับ FIPS จะเป็นข้อความธรรมดา ดังนั้นหากคุณถือว่าส่วนเสริมนั้นเป็นข้อความธรรมดาและยังคงปลอดภัย ก็น่าจะใช้ได้
cn flag
ดู [ส่วน 8.2 ที่นี่](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf) "คำแนะนำนี้ไม่ต้องการการใช้ค่าเกลือที่เลือกแบบสุ่ม โดยเฉพาะอย่างยิ่ง หากไม่มีวิธีการเลือกค่าเกลือและแบ่งปันกับผู้เข้าร่วมทั้งหมดในระหว่างการทำธุรกรรมการสร้างคีย์ คำแนะนำนี้จะระบุว่าค่าเกลือที่กำหนดไว้ล่วงหน้า ใช้สตริงไบต์เริ่มต้น (เช่น ศูนย์ทั้งหมด) เป็นค่าเกลือ" อาจไม่เป็นไรสำหรับ HMAC (เกลือ, คีย์) ที่ C25519 ECDH ความลับที่ใช้ร่วมกัน (หรือแฮชของมัน) ใช้เป็นเกลือ จะถามไปทั่ว

โพสต์คำตอบ

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