dm-crypt ใน Linux ใช้บล็อก 512 ไบต์ (เซกเตอร์ดิสก์) ที่มีบล็อกย่อยของข้อความธรรมดาที่เข้ารหัสสำหรับโหมดเข้ารหัสบล็อกที่ไม่สามารถขนานกันได้:
"ด้วยโหมดปกติใน cryptsetup (CBC, ESSIV, XTS) คุณจะได้รับบล็อก 512 ไบต์ที่เปลี่ยนแปลงทั้งหมดสำหรับข้อผิดพลาดบิต บล็อกที่เสียหายทำให้เกิดความเสียหายมากกว่าการพลิกบิตเป็นครั้งคราวและอาจส่งผลให้เกิดข้อผิดพลาดที่คลุมเครือต่างๆ "
/\ แหล่งที่มา: https://gitlab.com/cryptsetup/cryptsetup/-/wikis/FrequentlyAskedQuestions
รองรับ CBC, PCBC, OFB และ CFB ซึ่งไม่สามารถขนานกันได้
ฉันทดสอบที่นี่ในระบบ Linux ของฉัน:
dd if=/dev/zero of=./img count=5242880 bs=1
dd if=/dev/random of=./key count=32 bs=1
sudo cryptsetup เปิด --type ธรรมดา --cipher aes-cbc-essiv:sha3-256 --key-file ./key --key-size 256 ./img blah
sudo cat /dev/zero > /dev/mapper/blah
sudo cryptsetup ปิด /dev/mapper/blah
/\ ฉันเปิดไฟล์ดิสก์อิมเมจในโปรแกรมแก้ไขเลขฐานสิบหก และฉันเห็นว่าบล็อกขนาด 512 ไบต์ทั้งหมดนั้นแตกต่างกัน แม้ว่าข้อความธรรมดาในดิสก์อิมเมจทั้งหมดจะเหมือนกัน (ศูนย์)
คำถามของฉันคือ:
dm-crypt ทำให้บล็อกขนาด 512 ไบต์ทั้งหมดแตกต่างกันอย่างไรแม้ว่าข้อความธรรมดาจะเหมือนกันก็ตาม
ถ้าฉันเข้ารหัสบางสิ่งด้วย CBC และแบ่งเป็นบล็อกขนาด 512 ไบต์เพื่อให้ค้นหาได้ คีย์และ IV จะเหมือนกันสำหรับแต่ละบล็อกขนาด 512 ไบต์ ดังนั้นหากฉันเข้ารหัสข้อความธรรมดาแบบเดียวกัน บล็อกก็จะเท่ากัน