Score:0

ใช้ AES.MODE_EAX สำหรับการเข้ารหัส AES

ธง ga

ขณะนี้ฉันกำลังพยายามทำการเข้ารหัส AES ใน Python ในไฟล์ขนาดใหญ่ขึ้นเพื่อการจำลอง ในขณะนี้ ฉันพยายามใช้ AES.MODE_EAX ตามที่กล่าวไว้ในเอกสารประกอบสำหรับ AES:

https://pycryptodome.readthedocs.io/en/latest/src/cipher/aes.html

ฉันต้องการตรวจสอบว่าวิธีที่ถูกต้องในการเข้ารหัสไฟล์จะเป็นอย่างไร

ในขณะนี้ ฉันกำลังแบ่งไฟล์ออกเป็น 16 ไบต์ และใช้คีย์ 128 บิตเดียวกันในการสร้างรหัสเพื่อเข้ารหัสแต่ละอัน ฉันกำลังรันคำสั่งต่อไปนี้ในแต่ละอันที่จำเป็นสำหรับการเข้ารหัส และฉันกำลังทำการวิเคราะห์ผลลัพธ์ที่เข้ารหัส:

การเข้ารหัส = AES.new (คีย์, AES.MODE_EAX)
nonce = cipher.นอนเซ่
ข้อความเข้ารหัส, แท็ก = cipher.encrypt_and_digest (data_chunk)

ฉันไม่แน่ใจว่าฉันเข้าใจอย่างถ่องแท้หรือไม่ นี่จะเป็นแนวทางที่ถูกต้องในการเข้ารหัสข้อมูลผ่าน AES หรือไม่ หรือมีโหมดหรือวิธีการอื่นๆ กับ MODE_EAX (เช่น การใช้ข้อมูลของไฟล์เต็มหรือไม่) ที่ฉันควรพิจารณาในกรณีนี้

SAI Peregrinus avatar
si flag
มีเหตุผลเฉพาะที่คุณใช้ pycryptodome หรือไม่ ในทำนองเดียวกัน ทำไมต้อง EAX? นั่นไม่ใช่โหมดที่ใช้กันทั่วไป มันช้ากว่า OCB หรือ GCM และไม่สามารถแก้ปัญหาการไม่ใช้ซ้ำได้เหมือน SIV ฉันต้องการเข้าใจข้อจำกัดที่คุณกำลังดำเนินการอยู่ เนื่องจากคำตอบมาตรฐานของฉันสำหรับวิธีการเข้ารหัสไฟล์ที่ถูกต้องคือ "use age (age-encryption.org)"
Maarten Bodewes avatar
in flag
ฉันลงคะแนนเสียงให้ปิดคำถามนี้ เนื่องจากคำถามนี้ถูกโพสต์ข้ามไปยัง SO ซึ่งเป็นของคำถามนั้น
Score:2
ธง ru

คุณไม่จำเป็นต้องแบ่งข้อมูลออกเป็นบล็อกขนาด 16 ไบต์และเข้ารหัสทีละบล็อก เมธอด encrypt_and_digest จะจัดการส่วนนี้ทั้งหมดให้คุณ คุณควรเรียกใช้เมธอดบนอาร์เรย์ข้อมูลทั้งหมดแทน

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

ตามที่ระบุไว้ในความคิดเห็น โดยทั่วไปแล้ว AES.GCM เป็นที่นิยมมากกว่า AES.EAX ในการใช้งานสมัยใหม่

โพสต์คำตอบ

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