Score:0

เราสามารถกำหนดขนาดของ n-bytes ก่อนเข้ารหัสด้วย AES-128 ได้หรือไม่?

ธง sk

ฉันกำลังเขียนโปรแกรมใน python เพื่อเข้ารหัสไฟล์ โปรแกรมนี้ รับข้อมูลขนาด 1024*1024 (1 เมบิไบต์) ที่ตามมาจากไฟล์และเข้ารหัสโดยใช้ AES-128 ดำเนินการวนซ้ำจนกว่าข้อมูลทั้งหมดในไฟล์จะถูกเข้ารหัส ปัญหาคือขนาดของข้อมูลแต่ละ 1 เมบิไบต์จะเพิ่มขึ้นเมื่อได้รับการเข้ารหัส

สิ่งที่ฉันต้องการคือวิธีกำหนดขนาดอันใหม่สำหรับแต่ละ 1 เมบิไบต์หลังจากที่ได้รับการเข้ารหัส

Score:1
ธง in

ได้ คุณสามารถกำหนดจำนวนที่ไฟล์ของคุณจะขยายได้ เช่น ไซเฟอร์เท็กซ์จะขยายเท่าใดเมื่อเทียบกับเพลนเท็กซ์ อย่างไรก็ตาม นั่นถูกกำหนดโดยรหัสบล็อกน้อยกว่าที่กำหนดโดย บล็อกรหัส โหมดการทำงาน.

บ่อยครั้งที่การเข้ารหัสโหมด CBC เป็นโหมดเริ่มต้นของการดำเนินการบน API การเข้ารหัสลับระดับต่ำ ในกรณีนั้น - เนื่องจากก้อนข้อมูลของคุณมีขนาดบล็อก AES หลายขนาด (16 ไบต์) - การขยายไซเฟอร์เท็กซ์จึงเป็นหนึ่งบล็อกเต็มขนาด 16 ไบต์ ถ้า IV นำหน้าก่อนไซเฟอร์เท็กซ์ ก็จะเพิ่มขึ้นอีก 16 ไบต์ การคำนวณขนาดช่องว่างภายใน CBC คือ ยังไม่มีข้อความ - (L % ยังไม่มีข้อความ) โดยที่ N คือขนาดบล็อกและ L คือขนาดก้อนข้อความธรรมดา ซึ่งมีหน่วยเป็นไบต์ทั้งคู่

โหมดอื่นๆ เช่น โหมดตัวนับ (CTR) ไม่ใช้ช่องว่างภายใน แต่อาจยังคงเก็บ IV หรือ nonce ด้วยไซเฟอร์เท็กซ์ ไซเฟอร์เท็กซ์ที่รับรองความถูกต้อง เช่น AES-GCM อาจจัดเก็บแท็กการตรวจสอบความถูกต้องเพื่อให้ข้อความมีความสมบูรณ์และถูกต้อง

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

โพสต์คำตอบ

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