Score:1

โหมดการเข้ารหัสแบบบล็อกใดที่ใช้ได้ดีที่สุดในสถานการณ์ในชีวิตจริง

ธง sa

สำหรับการสอบที่ฉันกำลังศึกษาอยู่ ฉันสงสัยว่าโหมดการเข้ารหัสแบบบล็อกใดดีที่สุดที่จะใช้ในบางสถานการณ์

เราได้เรียนรู้เกี่ยวกับโหมดเข้ารหัสบล็อกเหล่านี้: ECB, CBC, CFB (+ s-bit), OFB (+ s-bit) และ CTR
จากสิ่งที่ฉันเข้าใจ: บางอย่างสามารถเป็นอัมพาตได้ บางอย่างไม่ได้ บางตัวสามารถเปลี่ยนเป็นรหัสสตรีม (s-bit) บางตัวก็ไม่สามารถทำได้ บางคนมีการแพร่กระจายข้อผิดพลาดที่แย่กว่านั้น พวกเขาแต่ละคนมีข้อดี (ข้อเสีย)

คำถามของฉันคือ วิธีบล็อกรหัสใดที่เหมาะกับบางสถานการณ์ เช่น สำหรับวิดีโอแชท การเก็บรหัสผ่าน การส่งข้อมูลด้วยไมโครคอนโทรลเลอร์ ...

kelalaka avatar
in flag
ยินดีต้อนรับสู่ Cryptography.Se นี่เป็นคำถามที่ค่อนข้างกว้างซึ่งไม่สามารถตอบได้ทั้งหมด
sa flag
มีโอกาสที่ดีที่อาจารย์ของฉันจะยังคงถามฉันในข้อสอบ และฉันจะต้องให้คำตอบ... ตัวอย่างเช่น ในการจัดเก็บรหัสผ่าน เป็นความคิดที่แย่มากที่จะใช้ ECB เนื่องจากบล็อกที่เท่ากันจะได้รับการเข้ารหัสใน วิธีการเดียวกัน. ฉันกำลังมองหาเบาะแสอื่น ๆ เช่นนั้น
kelalaka avatar
in flag
สำหรับรหัสผ่าน เราไม่เข้ารหัส เราใช้อัลกอริทึมการแฮชรหัสผ่าน นี่คือคำตอบที่ถูกต้อง ดู[วิธีแฮชรหัสผ่านอย่างปลอดภัย](https://security.stackexchange.com/q/211/86735) หากคุณยืนยันในการเข้ารหัส คุณจะรักษาคีย์การเข้ารหัสให้ปลอดภัยได้อย่างไร
SAI Peregrinus avatar
si flag
IMO หนึ่งใน GCM-SIV, GCM, OCB, CTR หรือ XTS สำหรับการเข้ารหัส (ไม่ใช่การแฮชรหัสผ่าน) OCB เร็วที่สุดแต่ไม่ได้รับการสนับสนุนอย่างกว้างขวาง (ได้รับการจดสิทธิบัตรจนกระทั่งเมื่อไม่นานมานี้) และไม่ทนทานต่อการใช้งานในทางที่ผิด GCM-SIV นั้นดีสำหรับการใช้งานส่วนใหญ่ และไม่มีการต่อต้านการใช้งานในทางที่ผิดแต่เป็นแบบ 2 รอบ GCM นั้นพบได้ทั่วไปแต่ไม่ใช่การใช้งานในทางที่ผิด - ทนทาน XTS ไม่รับรองความถูกต้องและอ่อนแอกว่า แต่ไม่ขยายข้อความรหัสดังนั้นจึงใช้สำหรับการเข้ารหัสทั้งดิสก์ และ CTR เป็นส่วนประกอบหลักสำหรับโหมดการตรวจสอบสิทธิ์ และบางครั้งใช้เมื่อมีการรับรองความถูกต้องที่ระดับอื่นของโปรโตคอล . ส่วนที่เหลือมีประโยชน์น้อยกว่ามาก
Swashbuckler avatar
mc flag
@kelalaka บางครั้งเราเข้ารหัสรหัสผ่าน ขึ้นอยู่กับว่ารหัสผ่านนั้นใช้สำหรับอะไร ถ้ามันถูกใช้เพื่อให้เรารับรองความถูกต้อง เราก็จะไม่ทำ หากเราเก็บรหัสผ่านไว้เพื่อรับรองความถูกต้องเป็นอย่างอื่น เราจะทำการเข้ารหัส
kr flag
@kelalaka: "*สำหรับรหัสผ่าน เราไม่เข้ารหัส เราใช้อัลกอริธึมการแฮชรหัสผ่าน*" - นี่เป็นจริงในกรณีเดียวเท่านั้น เมื่อจำเป็นต้องใช้รหัสผ่านในการตรวจสอบผู้ใช้ แต่เมื่อผู้ใช้จัดเก็บรหัสผ่านในตัวจัดการรหัสผ่าน แน่นอนว่ารหัสผ่านเหล่านี้หรือตามปกติฐานข้อมูลรหัสผ่านทั้งหมดจะถูกเข้ารหัส เช่น ด้วย AES-256 หากต้องการพัฒนาตัวจัดการรหัสผ่าน สิ่งสำคัญคือต้องเลือกโหมดใด
kelalaka avatar
in flag
ใช่ ฉันพิจารณาเฉพาะการรับรองความถูกต้องเท่านั้น ไม่ได้กล่าวถึงประเพณีอื่น ๆ ที่ต้องการรหัสผ่านมากกว่าค่าแฮช
cn flag
ECB เป็นตัวเลือกที่ไม่ดีสำหรับทุกสิ่ง เว้นแต่คุณจะรับประกันได้ ข้อความเดิมจะไม่ถูกส่งซ้ำด้วยรหัสเดียวกัน นี่เป็นข้อจำกัดของข้อความ - และควรหลีกเลี่ยง
Score:1
ธง ng

ในสถานการณ์จริง ยกเว้นความเข้ากันได้กับระบบที่มีอยู่ ไม่ค่อยควรใช้โหมดการเข้ารหัสใด ๆ ที่ระบุไว้ในคำถามโดยตรง เนื่องจากโหมดเหล่านี้ให้การเข้ารหัสที่ปลอดภัยได้ดีที่สุด (คำเตือน: ECB ไม่มี) ซึ่งไม่ ไม่ ครอบคลุมความต้องการในสถานการณ์จริงส่วนใหญ่

ในแอปพลิเคชันจริง หากต้องการการเข้ารหัส ผู้ใช้มักจะต้องป้องกันการเปลี่ยนแปลงข้อความโดยที่ตรวจไม่พบ (เช่น การลบส่วนหนึ่งของข้อความ การแก้ไขส่วน) ดังนั้นจึงจำเป็นต้องมีโหมดที่ให้การเข้ารหัส และ การพิสูจน์ตัวตน¹ เช่น GCM รวมกับรหัสบล็อก เออีเอส. เร็วพอสำหรับ "วิดีโอแชท" ด้วย CPU สมัยใหม่ และง่ายพอที่จะ "ส่งข้อมูลด้วยไมโครคอนโทรลเลอร์"

เช่น เข้ารหัสรับรองความถูกต้อง โหมดมักจะใช้โหมดหนึ่งของคำถามเป็นการภายในสำหรับการเข้ารหัสที่มีให้ เช่น GCM ใช้ CTRECB/CBC/CFB/OFB มีแนวโน้มที่จะถูกยกเลิกสำหรับ CTR เนื่องจาก CTR นั้นง่าย รวดเร็ว ขนานได้ง่าย และอนุญาตให้เข้าถึงการอ่าน/แก้ไข/เขียนโดยตรงไปยังไฟล์ขนาดใหญ่โดยไม่ต้องเข้ารหัสซ้ำในสิ่งต่อไปนี้ มันเป็นข้อเสียเท่านั้น

  • Malleability² แต่นั่นแก้ไขได้ทั้งหมดด้วยการเข้ารหัสที่รับรองความถูกต้อง
  • ความไวต่อการใช้ซ้ำ เวกเตอร์การเริ่มต้น/ไม่เคย. สิ่งนี้สามารถบรรเทาได้ด้วยขั้นตอนที่ดีในการสร้าง IV หรือโหมดการเข้ารหัสรับรองความถูกต้องที่ไม่ใช้งานในทางที่ผิด เช่น GCM-SIV.

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


¹ ในแง่ที่ว่าข้อความธรรมดาที่ถอดรหัสตรงกับข้อความธรรมดาที่ถูกเข้ารหัสด้วยคีย์เข้ารหัส ซึ่งทำให้ข้อความนั้นเป็นของแท้

² ในแง่ของการอนุญาตให้เปลี่ยนความหมายของข้อความธรรมดาที่ถอดรหัสแล้วสำหรับข้อความธรรมดาที่รู้จัก เช่น เปลี่ยน จ่าย $1,000 ถึง จ่าย $9800. โหมด CBC หรือ CFB ทำให้การโจมตีดังกล่าวทำได้ยากขึ้น แต่ไม่ให้การเข้ารหัสที่รับรองความถูกต้องอย่างสมบูรณ์

โพสต์คำตอบ

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