การเข้ารหัส AES / Rijndael โดยทั่วไปทำงานอย่างไร
หน้านี้มีความสนุกสนานA Stick Figure Guide ของ Advanced Encryption Standard (AES)ที่ดูเข้าใจง่ายแม้ว่าจะเป็นภาพ 50+ ตัวอย่างเช่นทั้งสองนี้:
และ
มันมากเกินไปที่จะทำซ้ำทั้งหมดที่นี่ แต่ถ้าคุณต้องมีภาพทั้งหมดในหนึ่งเดียวมันเป็นภาพนี้:
หรือมีคำอธิบายที่กระชับยิ่งขึ้นที่http://www.password-depot.com/know-how/blowfish_and_rijndael.htm
วิธีการเข้ารหัสลับ Rijndael ขึ้นอยู่กับการแทนที่การเปลี่ยนแปลงและการดำเนินการกับ xor ในหน่วยไบต์ วิธีมีลักษณะดังนี้:
- จากคีย์ 128 บิต Rijndael สร้างคีย์ 10 บิตที่ละ 128 บิต
- กุญแจเหล่านี้จะถูกวางไว้ในอาร์เรย์ 4x4
- ข้อความธรรมดายังแบ่งเป็น 4x4 อาร์เรย์ (แต่ละ 128 บิต)
- รายการข้อความล้วน 128 บิตแต่ละรายการประมวลผลใน 10 รอบ (10 รอบสำหรับ 128 บิตบิต, 12 สำหรับ 192, 14 สำหรับ 256)
- หลังจากรอบที่ 10 รหัสถูกสร้างขึ้น
- แต่ละไบต์จะถูกแทนที่ในกล่อง S และแทนที่ด้วยส่วนกลับของ GF (2 8)
- จากนั้นจึงใช้มอดุลาร์ modulo-2 แบบบิตตามด้วยการดำเนินการ XOR ด้วย 63
- เส้นของเมทริกซ์ถูกจัดเรียงแบบวนรอบ
- คอลัมน์ของการคูณเมทริกซ์จะถูกสับเปลี่ยนบน GF (2 8)
- คีย์ย่อยของแต่ละรอบจะถูกดำเนินการ XOR
ระดับความปลอดภัยของวิธีการเข้ารหัสนี้เพิ่มขึ้นหาก Rijndael ดำเนินการหลายครั้งด้วยคีย์ย่อยที่แตกต่างกัน
การเข้ารหัสดิสก์ทั้งหมดของ Ubuntu ทำงานอย่างไร
ฉันเชื่อว่ามันใช้งานได้โดยการเข้ารหัสพาร์ติชันด้วย LUKS (การตั้งค่าเริ่มต้นกับ AES) จากนั้นใส่วอลุ่มบางส่วนในนั้นด้วย LVM (เช่น/
swap) และถอดรหัสและติดตั้งตอนบูตหลังจากคุณป้อนข้อความรหัสผ่าน และมีพาร์ติชันสำหรับเริ่มระบบปกติ (ไม่เข้ารหัส) ซึ่งบู๊ตได้เพียงพอที่จะถามวลีรหัสผ่าน
คู่มือ the_simple_computer ของการเข้ารหัสดิสก์เต็มรูปแบบกับ Ubuntu (อัปเดต 28 มิถุนายน 2558)กล่าวว่าเป็นเรื่องเกี่ยวกับวิธีการเข้ารหัสการติดตั้งเริ่มต้นของการทำงานและกล่าวว่าการบูตสองระบบจะไม่ทำงาน ต้องใช้ MBR ดังนั้น " หากคอมพิวเตอร์ของคุณมี UEFI, distro จะถูกติดตั้งในโหมด BIOS ดั้งเดิมดังนั้นคุณจึงไม่สามารถใช้ Secure Boot " และ " จะให้ขนาดการแลกเปลี่ยนเท่ากับ RAM ระบบของคุณ (มักไม่จำเป็น) และคุณ ไม่มีทางเลือกว่าจะใช้การเข้ารหัสชนิดใด "
การเข้ารหัสรวดเร็วแค่ไหน?
หากคุณเรียกใช้cryptsetup benchmark
มันจะทำการทดสอบและบอกคุณเกี่ยวกับความรวดเร็วของการเข้ารหัสเพียงอย่างเดียวให้ดูบรรทัด aes-xts เริ่มต้น (ปัจจุบัน):
# Algorithm | Key | Encryption | Decryption
aes-xts 256b 150.0 MiB/s 145.0 MiB/s
ความเร็วในการอ่านฮาร์ดไดรฟ์โดยเฉลี่ยอาจอยู่ที่ 80-160 MB / s ดังนั้นคุณจะไม่นานกว่าการอ่านปกติและเป็นไปได้ว่าภาคที่เพิ่งอ่านได้ถูกถอดรหัสไปแล้วในขณะที่คุณยังรอ ฮาร์ดไดรฟ์เพื่ออ่านเพิ่มเติม
SSD อาจเร็วกว่าหรืออาจ 200-550MB / s ดังนั้นคุณอาจสังเกตเห็น แต่การอ่านแบบสุ่มอาจช้าลงและฉันอ่านแล้วว่าความเร็ว SSD อาจช้าลงหลังจากใช้งาน (อาจเป็นเมื่อไดรฟ์เต็มอย่างสมบูรณ์และต้องเริ่มภาค "ลบ")
คอมพิวเตอร์จะเข้ารหัส / ถอดรหัสลับไดรฟ์ทั้งหมดได้อย่างไรในเวลาเพียงไม่กี่วินาที (ไม่ต้องบูตหรือปิดตัวเองนานกว่า)
ไม่จำเป็นต้องถอดรหัสทุกอย่างก่อน การเข้ารหัส (LUKS) ทำงานบนบล็อกของข้อมูลสามารถสุ่มถอดรหัสบล็อกใด ๆ และทำหน้าที่เหมือนเลเยอร์ระหว่างข้อมูลที่เข้ารหัสของไดรฟ์และสิ่งที่ระบบไฟล์เห็น
เมื่อระบบไฟล์ต้องการเห็นกลุ่มของข้อมูลใด ๆ LUKS จะถอดรหัสลับที่บล็อกก่อนจากนั้นให้ข้อมูลที่ถอดรหัสไปยังระบบแฟ้ม คุณรอให้ไดรฟ์อ่านบล็อกข้อมูล (เช่นเดียวกับที่ไม่ต้องใช้การเข้ารหัส) และมีความล่าช้าเป็นพิเศษสำหรับการถอดรหัสของบล็อกเดียว (หรือบล็อกน้อย) ของข้อมูล - และหากการถอดรหัสเร็วกว่าไดรฟ์ สามารถอ่านได้การถอดรหัสอาจเสร็จสิ้นก่อนที่ไดรฟ์จะอ่านบล็อกข้อมูลต่อไป
ดังนั้นเช่นเดียวกับระบบไฟล์ปกติไม่จำเป็นต้องอ่านไดรฟ์ทั้งหมดเพื่ออ่านไฟล์เมื่อมีการเพิ่มการเข้ารหัสมันไม่จำเป็นต้องอ่านทั้งไดรฟ์และมันไม่ได้ทำให้ช้าลงมากนัก
ข้อมูลในฮาร์ดไดรฟ์ได้รับการเข้ารหัสอยู่เสมอดังนั้นจึงไม่มีอะไรต้องทำเมื่อปิดเครื่องยกเว้นลืมกุญแจ