- สิ่งนี้ (ยังคงให้ความสมบูรณ์เมื่อเข้ารหัสบิตแมป) เป็นไปได้หรือไม่
ไม่ ChaCha20 เป็นเพียงรหัสสตรีม โดยตัวมันเองไม่ได้ให้ความสมบูรณ์ของข้อความ/ความถูกต้อง ไม่ใช่โดยไม่มีการเปลี่ยนแปลงที่สำคัญ - จากนั้นจะเรียกอย่างอื่น
- ถ้าเป็นเช่นนั้น Ciphertext เมื่อถอดรหัสแล้วจะสร้างไฟล์ Bitmap เดียวกันกับ PlaintText หรือไม่ (ทั้งคู่มีค่าเช็คซัมเหมือนกัน) หรือไม่
ใช่, เว้นแต่ข้อความเข้ารหัสจะเปลี่ยนไป การถอดรหัสยังคงตรงกันข้ามกับการเข้ารหัส Ciphers มีทั้งกำหนดและย้อนกลับได้เมื่อเริ่มต้นด้วยคีย์ที่ถูกต้อง
แท็กการรับรองความถูกต้อง (Poly1305) ใช้เพื่อตรวจสอบว่าข้อความเข้ารหัส (หรือแท็ก) มีการเปลี่ยนแปลงเนื่องจากความเสียหาย (ข้อผิดพลาดในการส่ง ข้อบกพร่องระหว่างการจัดเก็บ) หรือเนื่องจากผู้โจมตีพยายามโดยเจตนา ไม่จำเป็นต้องรักษาความสมบูรณ์หากไม่มีการเปลี่ยนแปลงภายนอกเกิดขึ้น
เนื่องจาก ChaCha20 เป็นการเข้ารหัสสตรีม (ไม่ใช่ข้อความธรรมดา) ฟังก์ชันการเข้ารหัสจึงตรงกันข้าม: มันสร้างสตรีมคีย์ซึ่งจากนั้น XOR'ed ด้วยข้อความธรรมดาสำหรับการเข้ารหัสและด้วยข้อความเข้ารหัสสำหรับการถอดรหัส
ข้อเสียคือคุณไม่สามารถใส่ "เปล" หรือค่าที่ทราบในข้อความธรรมดาเพื่อตรวจสอบว่าการถอดรหัสสำเร็จหรือไม่ - โดยพื้นฐานแล้วค่าใด ๆ ในข้อความธรรมดาที่เป็นผลลัพธ์สามารถเปลี่ยนแปลงได้ตามต้องการโดยการแก้ไขข้อความเข้ารหัส
บ่อยครั้งที่มีตำแหน่งในไฟล์ที่คุณสามารถซ่อนข้อมูลได้ ตัวอย่างเช่น คุณสามารถดูได้ที่ ส่วนหัว DIB หรือตารางสี / โปรไฟล์ หากคุณต้องการจัดเก็บไบต์เพิ่มเติม เช่น แท็กการตรวจสอบความถูกต้อง Poly1305