นี่เป็นคำถามในโลกแห่งความเป็นจริง (และเนื่องจากฉันไม่ใช่ผู้เชี่ยวชาญในการเข้ารหัส ฉันมีความรู้พื้นฐานเพียงบางส่วนในแง่ของการใช้งานเท่านั้น ไม่ได้เข้าใจอย่างลึกซึ้งว่า ist ทำงานอย่างไรภายใต้ประทุน): ระบบสำหรับการรวบรวมข้อมูลจากหลายๆ อุปกรณ์ปลายทางแบบฝังใช้ AES128 GCM/GMAC เพื่อปกป้องข้อความในแง่ของการรักษาความลับและความถูกต้อง: แต่ละข้อความ $M$ ถูกเข้ารหัส $C = E(K, M)$ และป้องกันด้วยแท็ก $T=T(K, M)$ ใช้ปุ่มสมมาตร: $(ค, ต)$ ถูกส่งไปยังผู้รับ
ในเวอร์ชันขั้นสูงของระบบ นอกเหนือจากการป้องกันนี้แล้ว ลายเซ็นดิจิทัล $S=S(M)$ อิงตาม ECDSA (โดยใช้เนื้อหาหลัก ECC NIST) จะใช้: เครื่องหมายแรก $M$แล้วเข้ารหัส:
ผลลัพธ์ของการลงนามคือทูเพิล $(ส, ม)$
แล้ว ${ E(K,(S,M)), T(K, (S,M))}$ ถูกส่งไปยังเครื่องรับซึ่งมีรหัส ECC สาธารณะ
คำถามที่ 1: ประโยชน์เพิ่มเติมที่เราได้รับจากการใช้การลงนามเพิ่มเติมนี้คืออะไร
หากใช้ GCM/GMAC ในทางที่ถูกต้อง (เช่น ใช้เวกเตอร์การเริ่มต้นเพียงครั้งเดียว) และคีย์สมมาตรไม่ถูกบุกรุก แสดงว่า GCM/GMAC เป็นการป้องกันที่ดี สถานการณ์ใดบ้างที่การใช้ลายเซ็นเพิ่มเติมช่วยปรับปรุงด้านความปลอดภัย
คำถามที่ 2: นอกจากการเซ็นข้อความแล้ว ECDH ยังใช้เพื่อยอมรับคีย์สมมาตรใหม่เป็นครั้งคราว ในเวอร์ชัน "เก่า" สิ่งนี้ทำผ่านอัลกอริทึมการตัดคีย์ (มาตรฐาน) ซึ่งขึ้นอยู่กับ KEK ที่สมมาตร ฉันถามอีกครั้ง: อะไรคือประโยชน์ที่แท้จริงของการใช้ ECDH แทนการรวมคีย์
แน่นอนว่าฉันรู้หลักการของการเข้ารหัสคีย์สาธารณะ แต่ไม่สามารถประเมินมูลค่าเพิ่มเติมที่เราได้รับเมื่อเทียบกับการใช้ตัวแปรสมมาตรซึ่งพิสูจน์ให้เห็นถึงความพยายามในการติดตั้งเวอร์ชันขั้นสูง