หากซอฟต์แวร์ชิ้นหนึ่งกำลังทำงานในโหมด FIPS และใช้โมดูลการเข้ารหัสที่ได้รับการรับรอง FIPS ซอฟต์แวร์นั้นจะได้รับอนุญาตให้ดำเนินการอัลกอริทึมที่ไม่ใช่ FIPS แม้ว่าความปลอดภัยของระบบจะไม่ได้ขึ้นอยู่กับซอฟต์แวร์เหล่านั้นโดยเฉพาะก็ตาม
ตัวอย่าง: สมมติว่าคุณมีระบบที่แลกเปลี่ยนคู่คีย์ ECDH สองคู่: คู่คีย์ curve25519 หนึ่งคู่และคู่คีย์ NIST P-384 หนึ่งคู่ ข้อตกลงคีย์ดำเนินการโดยใช้คู่คีย์ทั้งสอง จากนั้นความลับที่เป็นผลลัพธ์จะถูกเชื่อมต่อและแฮชด้วย SHA-384
ฉันไม่เห็นปัญหาในการเข้ารหัสเนื่องจากผลลัพธ์ของ SHA-384(K0 | K1) นั้นแข็งแกร่งเท่ากับเส้นโค้งที่แข็งแกร่งที่สุด นี่เป็นเพราะ SHA-384(ความลับ | ค่าที่ทราบ) เป็นความลับ หมายความว่าหากผู้โจมตีถอดรหัสโดยพูดว่า curve25519 พวกเขาจะยังคงไม่ทราบผลลัพธ์ของการแฮชความลับนั้นกับความลับอื่นที่พวกเขาไม่รู้
คำถามของฉันคือ FIPS อนุญาตหรือไม่ หรือต้องดำเนินการเฉพาะรหัสและอัลกอริทึมที่ได้รับการรับรอง FIPS คุณช่วยพิจารณาว่า Curve25519 คำนวณความลับที่ใช้ร่วมกันเป็น "เกลือ" หรืออะไรซักอย่างได้ไหม
แก้ไข: พิจารณาว่าผลของข้อตกลงที่ไม่ใช่ FIPS กับเช่น Curve25519 สามารถผสมกับความลับ "อย่างเป็นทางการ" เป็นเกลือเช่น HMAC-SHA384(เกลือ, คีย์)