ข้อความอาจถูกดักฟังก่อน ไม่ใช่ช่องโหว่ที่อนุญาตให้ค้นพบกุญแจดอกหรือ?
ไม่เพื่อเลือกคีย์ที่เหมาะสม (ดู 1 ด้านล่าง) AES-256 ได้รับการออกแบบมาเพื่อต่อต้านสิ่งดังกล่าว การโจมตีข้อความธรรมดาที่รู้จัก. นั่นเป็นสมมติฐานมาตรฐานและแน่นอน $2^{256}$ มีขนาดใหญ่มากจนไม่ต้องกังวลว่าจะพบกุญแจได้โดยการค้นหา (เพื่อมองสิ่งต่าง ๆ ในมุมมอง การสิ้นเปลืองทรัพยากรที่เรียกว่า การขุด bitcoin จนถึงขณะนี้มีผลงานเทียบเท่าน้อยกว่า $2^{100}$ การเข้ารหัส AES) เราปลอดภัยแม้ว่าเราจะตั้งสมมติฐาน คอมพิวเตอร์ควอนตัมที่เกี่ยวข้องกับการเข้ารหัสลับ กลายเป็นสิ่ง
การป้องกันเพียงอย่างเดียวที่จำเป็นต่อการค้นพบคีย์ใน AES-256 คือ
- การเลือกคีย์เกี่ยวกับการสุ่มอย่างสม่ำเสมอ รหัสผ่านจะไม่ทำ การยืดคีย์ จะไม่ตัดมัน
- ไม่เปิดเผย; ดู XKCD บังคับ.
- ป้องกันการสกัดจากอุปกรณ์ใด ๆ ที่ใส่เข้าไปนี่เป็นส่วนที่ยาก: คุณแน่ใจได้อย่างไรว่าพีซีของคุณไม่ติดโทรจัน แล้วก็มี การโจมตีช่องทางด้านข้าง และ การโจมตีความผิด.
สมมติว่าเพย์โหลดมีความยาว 40 บิต เนื่องจาก AES ทำงานกับบล็อกขนาดยาว 16 ไบต์ การเพิ่ม nonce ที่ไม่ซ้ำแบบสุ่ม 11 ไบต์เหมาะสมหรือไม่ หรือการคาดเดาทั้งหมดนี้ไม่คุ้มค่ากับความพยายามหรือไม่
มี อื่น เหตุผลที่ดีในการแทรกการสุ่มในข้อความที่เข้ารหัส: จำเป็นต้องต่อต้าน เลือกโจมตีข้อความธรรมดาและโดยเฉพาะอย่างยิ่งป้องกันไม่ให้ฝ่ายตรงข้ามทดสอบว่าข้อความธรรมดาสองรายการเหมือนกันหรือไม่โดยการเปรียบเทียบข้อความรหัส
นอกจากนี้ โปรดสังเกตว่าแอปพลิเคชันทั่วไปที่ต้องการการรักษาความลับของข้อความธรรมดานั้นต้องการความสมบูรณ์เช่นกัน นั่นคือ เข้ารหัสรับรองความถูกต้องและการเข้ารหัส AES แบบตรงกับทั่วไป โหมดการทำงานของ block-cipher ที่เข้ารหัสเท่านั้น จะไม่ให้สิ่งนั้นแม้จะสุ่ม IV/nonce นอกจากนี้ แอปพลิเคชั่นบางตัวจำเป็นต้องมีการป้องกัน เล่นซ้ำและการเข้ารหัสที่รับรองความถูกต้องโดยตรงจะไม่ให้สิ่งนั้น
การเลือกอัลกอริทึมการเข้ารหัสไม่ใช่เรื่องเล็กน้อย ขออภัย แต่ไม่ควรพยายามถามคำถามปัจจุบัน