Score:2

การเข้ารหัสคีย์: จำเป็นต้องมีการรับรองความถูกต้องหรือไม่

ธง in

อลิซต้องการเก็บไฟล์ $m_i$ บนแพลตฟอร์มที่เก็บข้อมูลบนคลาวด์ที่ไม่น่าเชื่อถือของ Bob โดยมีข้อจำกัดเพิ่มเติมว่าเธอสามารถจัดเก็บมาสเตอร์คีย์ได้เพียงคีย์เดียวเท่านั้น $k$ ตัวเธอเอง

เธอเข้ารหัสไฟล์ด้วยกุญแจ $k_i$ ตามลำดับและได้รับ $c_i := Enc_{k_i}(m_i) $. เธอยังเข้ารหัสคีย์เป็น $k'_i := Enc_k(k_i)$ และส่งสิ่งอันดับ $(k'_i,c_i)$ ให้บ๊อบเก็บของ

ดูเหมือนค่อนข้างเป็นธรรมชาติที่โหมดการเข้ารหัสที่ใช้สำหรับ $c_i$ ได้รับการเข้ารหัสรับรองความถูกต้อง แต่สำหรับ $k'_i$เนื่องจากธรรมชาติของเอนโทรปีสูงของเพย์โหลดและความจริงที่ว่าเพย์โหลดเหล่านี้ใช้สำหรับการถอดรหัสการเข้ารหัสที่รับรองความถูกต้องเท่านั้น ดูเหมือนว่าการเข้ารหัส $Enc_k(k_i)$ ไม่จำเป็นต้องได้รับการรับรองความถูกต้อง

เป็นความจริงหรือไม่? ถ้าเป็นเช่นนั้น ข้อโต้แย้งที่เป็นทางการและสอดคล้องกันคืออะไร ถ้าไม่ การผ่อนคลายนี้ช่วยให้เกิดการโจมตีแบบใด

SEJPM avatar
us flag
ทั้งนี้ขึ้นอยู่กับโหมดการเข้ารหัสและการนำไปใช้ ซึ่งอาจจะใช้เพื่อเมานต์การโจมตีคีย์ที่เกี่ยวข้อง แม้ว่าโดยทั่วไปสิ่งเหล่านี้จะค่อนข้างอยู่ในความคิดของนักออกแบบรหัสสมัยใหม่ แต่ก็ไม่ได้ป้องกันสิ่งเหล่านี้เสมอไป
SAI Peregrinus avatar
si flag
ฉันคิดว่าคุณสามารถหลีกเลี่ยงความจำเป็นในการพิสูจน์ตัวตนแยกต่างหากของ $k_{i}$ ได้โดยใช้ AEAD ที่ส่งคีย์สำหรับการเข้ารหัสข้อความ เนื่องจากโดยพื้นฐานแล้วมันทำสิ่งเดียวกัน เวอร์ชันง่ายคือการใส่แฮชของคีย์ในข้อมูลที่เกี่ยวข้อง
Maarten Bodewes avatar
in flag
ฉันจะใส่แฮชของคีย์ *wrapped* ใน AEAD เนื่องจากการแกะอาจทำให้คีย์อยู่ในสภาพแวดล้อมที่ปลอดภัย (นั่นคือวิธีการทำงานของ TPM) อีกทางเลือกหนึ่งคือการจัดเก็บเกลือหรือ "ข้อมูล" อื่น ๆ ไว้กับไฟล์และรับคีย์ $k_i$
kelalaka avatar
in flag
[ทางเลือกอื่น](https://crypto.stackexchange.com/q/84439/18298)
Score:0
ธง in

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

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

โดยทั่วไปแล้วฉันจะไม่ถือว่าคีย์เป็นข้อมูล นั่นอาจเป็นการออกแบบที่อันตรายและยุ่งยากกว่า คีย์อาจถูกจัดเก็บไว้ในคอนเทนเนอร์ที่ไม่ได้ทำให้ข้อมูลพร้อมใช้งาน (เช่น ในที่เก็บคีย์ของฮาร์ดแวร์หรือ TPM) แม้ว่าคุณจะไม่ได้วางแผนที่จะใช้คีย์ที่ได้รับการป้องกันในตอนนี้ แต่ก็จะไม่รวมตัวเลือกนี้ในอนาคต

แล้วมีตัวเลือกอะไรอีกบ้าง:

  1. รวมข้อความเข้ารหัสของคีย์ที่ห่อไว้เป็นข้อมูล AEAD ด้วยวิธีนี้กุญแจจะได้รับการปกป้องเป็นสองเท่า อย่างไรก็ตาม หากคุณใช้โหมดที่ไม่ถูกต้อง (เช่น โหมดตัวนับ) ผู้โจมตีอาจทำการเปลี่ยนแปลงคีย์ในระดับบิต และ ข้อมูลเพิ่มเติม ซึ่งจะทำให้ฉันรู้สึกอึดอัดเล็กน้อย ดังนั้นฉันจึงใช้โหมดการตัดคีย์ที่ออกแบบมาเพื่อจุดประสงค์นี้ ในกรณีนั้นหรือถอยกลับไปที่ CBC ด้วยศูนย์ IV (yuk) ซึ่งไม่ควรทำให้ผู้โจมตีสามารถควบคุมค่าคีย์ได้มากนัก

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

สรุป: ฉันจะกังวลมากขึ้นเกี่ยวกับวิธีที่คุณรวมหรือได้รับคีย์ที่ใช้กับข้อมูล การรวมคีย์ที่ได้มาใน AD เป็นความคิดที่ไม่ดี แต่คุณ สามารถ รวม อื่นๆ ข้อมูลเช่นไซเฟอร์เท็กซ์หรือข้อมูลที่ได้รับมาภายใน AD และทำให้ยากขึ้นสำหรับฝ่ายตรงข้ามในการสร้างชุดค่าผสมของคีย์/ไซเฟอร์เท็กซ์


นอกจากโหมดการห่อแบบพิเศษแล้ว ฉันยังแนะนำให้ใช้คีย์ 256 บิตเพื่อหลีกเลี่ยงการโจมตีแบบหลายเป้าหมาย การใช้โหมดการห่อพิเศษหรือการสืบทอดคีย์จะป้องกันการโจมตีคีย์ที่เกี่ยวข้อง ด้วยกรณีการใช้งานประเภทนี้ คุณอาจต้องกังวลด้วย การเปลี่ยนแปลงในไฟล์ และ ฝ่ายตรงข้ามแลกเปลี่ยนเนื้อหา ciphertext ของไฟล์.

Maarten Bodewes avatar
in flag
และเช่นเคย หวังว่าจะได้คำตอบที่เป็นแรงบันดาลใจทางคณิตศาสตร์มากขึ้นจากผู้ใช้ที่มีแนวโน้มทางคณิตศาสตร์มากขึ้น อย่างแรก ฉันเดาว่ารหัส AEAD พิเศษที่ทำงานไม่ดีภายใต้สถานการณ์ที่กำหนดสามารถสร้างขึ้นได้ เพื่อพิสูจน์ว่ามีอันตราย หากไม่สามารถทำได้ก็อาจพิสูจน์ได้
SAI Peregrinus avatar
si flag
"หากเป็นไปได้ที่รหัส AEAD จะตรวจสอบความถูกต้องเมื่อใช้คีย์ผิด ฉันเดาว่ารหัสดังกล่าวจะถือว่าไม่ปลอดภัย" AES-GCM, AES-GCM-SIV และ ChaCha20-Poly1305 ทั้งหมดไม่ใช่การคอมมิตคีย์ จึงเป็นไปได้ที่จะสร้างข้อความที่ตรวจสอบภายใต้คีย์หลายตัว
Maarten Bodewes avatar
in flag
ตกลง ฉันอาจจะเขียนผิดเพราะมันจะเป็นคีย์สุ่ม ผู้โจมตีไม่สามารถใส่คีย์ที่พวกเขาต้องการได้ พวกเขามีเพียงไซเฟอร์เท็กซ์เท่านั้น เปลี่ยนคำตอบเพื่อสะท้อนว่าขอบคุณ

โพสต์คำตอบ

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