Score:0

เครือข่ายการทดแทนและการเปลี่ยนแปลงใน AES มีความจำเป็นอย่างไร

ธง ec

ฉันพยายามตอบคำถามนี้มาระยะหนึ่งแล้ว แต่ความเข้าใจโดยสัญชาตญาณที่สมบูรณ์ยังคงหลบเลี่ยงฉัน

พิจารณาโครงสร้างทางเลือกสำหรับรหัสบล็อกโดยไม่มีการทดแทนและเครือข่ายการเปลี่ยนแปลง รหัสบล็อกนี้เพียง XORs บล็อกข้อความด้วยคีย์ที่แตกต่างกันซึ่งได้มาจากคีย์หลัก (คล้ายกับโหมด ECB แต่มีคีย์ต่างกันสำหรับแต่ละบล็อกข้อความ) หากตัวขยายคีย์ซึ่งสร้างคีย์หลายคีย์จากมาสเตอร์คีย์เดียวมีความปลอดภัยในการเข้ารหัส ดังนั้นการเข้ารหัสบล็อกผลลัพธ์ก็ควรมีความปลอดภัยในการเข้ารหัสเช่นกัน ฉันค่อนข้างแน่ใจว่าการให้เหตุผลของฉันไม่ถูกต้อง แต่ฉันไม่สามารถระบุจุดผิดพลาดได้

เรายินดีต้อนรับคำอธิบายที่เข้าใจง่ายว่าเหตุใดการก่อสร้างนี้จึงไม่ดี และเหตุใดเราจึงต้องการเครือข่ายการทดแทนและการเปลี่ยนแปลงใน AES

fgrieu avatar
ng flag
คำแนะนำ: พิจารณาฟังก์ชันการเข้ารหัสของสิ่งก่อสร้างสำรองของคุณสำหรับคีย์ลับแบบตายตัว $E(A\oplus B)$ คืออะไร (โดยที่ $\oplus$ คือ [bitwise พิเศษ-OR](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)) w.r.t. $E(A)$ และ $E(B)$? คุณสมบัตินั้นจะถูกคาดหวังจากการเรียงสับเปลี่ยนแบบสุ่มหรือไม่? มันเป็นอันตรายต่อความปลอดภัยอย่างไร?
Abhisek Dash avatar
ec flag
คุณช่วยอธิบายเพิ่มเติมได้ไหมว่า A และ B หมายถึงอะไร
fgrieu avatar
ng flag
ในความคิดเห็นของฉันด้านบน $A$ และ $B$ เป็นอินพุตโดยพลการของรหัสบล็อกภายใต้การพิจารณา หากเป็น AES-192 $A$ และ $B$ จะเป็นบิตสตริง 128 บิตตามอำเภอใจ
Abhisek Dash avatar
ec flag
คุณแนะนำให้เข้ารหัสทั้ง A และ B ด้วยคีย์เดียวกันหรือไม่ หากฉันใช้รหัสซ้ำจะทำให้เกิดปัญหาเกี่ยวกับแผ่นเวลาสองแผ่น ดังนั้นเครือข่ายการเปลี่ยนแปลงการแทนที่จึงป้องกันสิ่งนี้โดยทำให้ความสัมพันธ์อินพุตและเอาต์พุตสับสน ถูกต้องหรือไม่?
fgrieu avatar
ng flag
ใช่ ฉันขอแนะนำให้ตรวจสอบผลลัพธ์ของการเข้ารหัสทั้ง $A$ และ $B$ ด้วยคีย์เดียวกัน นั่นเป็นส่วนหนึ่งของวัตถุประสงค์ของการใช้รหัสบล็อก: มันควรจะปลอดภัยแม้ว่าจะใช้รหัสเดียวกันกับบล็อกที่แตกต่างกันจำนวนมากก็ตาม และแน่นอนว่าการใช้คีย์ซ้ำจะไม่ปลอดภัยกับการก่อสร้างที่พิจารณาในคำถาม ด้วยเหตุผลที่เกี่ยวข้องกับสิ่งที่เกิดขึ้นเมื่อมีการใช้แพดซ้ำในแพด One Time
Score:0
ธง vn

รหัสบล็อกนี้เพียงแค่ XORs บล็อกข้อความ [...]

การที่คุณพูดถึง "การบล็อกข้อความ" ที่นี่แสดงว่าคุณกำลังทำงานจากหนึ่งในคำจำกัดความเริ่มต้นที่น่ากลัว (ผิด) ของ "บล็อกรหัส" ที่บอกว่าเป็นรหัสที่เข้ารหัสข้อความที่มีความยาวผันแปรได้ครั้งละหนึ่งบล็อก . คำอธิบายเบื้องต้นมากมายบอกว่า แต่นั่นไม่ใช่วิธีการใช้คำนี้โดยนักเข้ารหัสจริง ดังนั้นฉันจึงพบว่า "คำจำกัดความ" ที่เป็นมิตรกับผู้เริ่มต้นนั้นผิดและทำให้สับสน

รหัสบล็อกในการเข้ารหัสเชิงทฤษฎีเป็นอัลกอริทึมที่ตั้งใจให้เป็นการใช้งานในชีวิตจริงของ ตระกูลการเปลี่ยนแปลงแบบสุ่มเทียม- อัลกอริทึมคีย์ลับที่ใช้ฟังก์ชันที่เข้ารหัสบล็อกข้อมูลที่มีความยาวคงที่ในแบบที่ไม่สามารถแยกแยะได้ในทางปฏิบัติจากการเรียงสับเปลี่ยนที่สุ่มเลือกของโดเมน คำตอบนี้ในไซต์นี้มีเนื้อหาค่อนข้างยาวเกี่ยวกับเรื่องนี้

สิ่งที่คุณหมายถึงอย่างแม่นยำโดย "block cipher" ที่นี่เป็นสิ่งสำคัญเพราะถ้าคุณใช้ "cipher ที่เข้ารหัสข้อความที่มีความยาวผันแปรได้ครั้งละหนึ่งบล็อก" สิ่งที่ฉันวิจารณ์ ข้อเสนอของคุณที่นี่:

รหัสบล็อกนี้เพียง XORs บล็อกข้อความด้วยคีย์ที่แตกต่างกันซึ่งได้มาจากคีย์หลัก

... เป็นวิธีที่ดีในการสร้างรหัสความยาวผันแปรที่ปลอดภัยจากรหัสบล็อก (ในความหมายที่เหมาะสม) ที่ใช้กันอย่างแพร่หลาย โหมดการทำงานของ CTR ในความเป็นจริงทำงานตามบรรทัดเหล่านี้ âคุณสร้าง คีย์สตรีม (สิ่งที่คุณเรียกว่า "คีย์ต่าง ๆ ที่ได้มาจากมาสเตอร์คีย์") โดยใช้รหัสบล็อกกับตัวนับบล็อกข้อความ

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


ดังนั้นเพื่อย้ำและสรุป:

  1. แม้จะมีสื่อสำหรับผู้เริ่มต้นมากมายที่บอกว่า "block cipher" เป็นอัลกอริทึมที่เข้ารหัสข้อความที่มีความยาวผันแปรได้ทีละบล็อก แต่นั่นไม่ใช่คำจำกัดความทางเทคนิคที่แท้จริงในการเข้ารหัส
  2. แนวคิดของคุณในการเข้ารหัสข้อความที่มีความยาวผันแปรได้โดยแยกเป็นบล็อกและ XORing แต่ละรายการแยกกันด้วยคีย์ที่สร้างด้วย "ตัวขยายคีย์" นั้นเป็นหัวใจหลัก ฟังดูดีและเป็นเรื่องธรรมดามาก
  3. อย่างไรก็ตาม คุณปัดเป่าว่าตัวขยายคีย์ของคุณทำงานอย่างไร และ นั่น เป็นที่ที่เทคนิคต่างๆ เช่น เครือข่ายการแทนที่/การเปลี่ยนแปลง (หรือทางเลือกอื่นๆ เช่น เครือข่าย Feistel) เข้ากันได้อย่างแม่นยำ เป็นหนึ่งในสิ่งที่ทำให้ AES เหมาะสมที่จะใช้เป็น "ตัวขยายคีย์" สำหรับแอปพลิเคชันนี้
Abhisek Dash avatar
ec flag
ขอบคุณสำหรับคำตอบโดยละเอียด ฉันเดาว่าทั้งหมดที่ฉันถามคือหากคีย์ที่สร้างโดย "ตัวขยายคีย์" ของฉันนั้นแยกไม่ออกจากการสุ่ม ฉันยังต้องการเครือข่ายการเปลี่ยนลำดับการแทนที่ภายในรหัสบล็อกของฉันหรือไม่ หรือรหัสบล็อกของฉันสามารถบล็อกข้อความ XOR ด้วยคีย์ที่สร้างโดยตัวขยายคีย์ (คล้ายกับรหัสสตรีม) ได้หรือไม่ ฉันสงสัยว่าหากข้อความของฉันจำเป็นต้องมีการเสริม โครงสร้างนี้อาจทำให้ค่าของคีย์รั่วไหล แต่เพื่อความเรียบง่าย ถือว่าไม่จำเป็นต้องมีการเสริมฉันตระหนักดีว่าการเข้ารหัสนั้นซับซ้อนและจะมีหลายกรณีที่ฉันต้องคำนึงถึง
Abhisek Dash avatar
ec flag
ฉันได้รับคำอธิบายของคุณแล้ว จะสำรวจต่อไป

โพสต์คำตอบ

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