"เคาน์เตอร์" หมายถึงอะไรกันแน่?
ตัวนับตามคำจำกัดความของ Wikipedia;
ในลอจิกดิจิทัลและการคำนวณ ตัวนับคืออุปกรณ์ที่เก็บ (และบางครั้งแสดงผล) จำนวนครั้งที่เหตุการณ์หรือกระบวนการหนึ่งๆ เกิดขึ้น
ในบริบท CTR; มันถูกใช้เพื่อสร้างอินพุตที่แตกต่างกันสำหรับการเข้ารหัส จากนั้นเอาต์พุตจะถูก x-ored ด้วยข้อความธรรมดาเพื่อสร้างข้อความไซเฟอร์ มันมักจะดำเนินการโดยการเพิ่มขึ้น แม้ว่าจะสามารถใช้ LFSR ได้เช่นกัน
มันเหมือนกับ nonce หรือไม่
ไม่ ไม่เหมือน nonce ( ตัวเลขใช้ครั้งเดียว )
โหมด CTR รวม nonce และ counter เป็นอินพุตสำหรับการเข้ารหัส อินพุตรวมจากสองส่วน
- ส่วนหนึ่ง; โดยทั่วไปแล้วจะสร้างแบบสุ่มต่อเซสชันการเข้ารหัสหรือโดยการใช้ เคาน์เตอร์/LFSR.
- เคาน์เตอร์; เริ่มแรกตั้งค่าศูนย์ จากนั้นเพิ่มขึ้นสำหรับการเข้ารหัสทุกบล็อค
เราสามารถมีการเข้ารหัสแบบสุ่มและแต่ละบล็อกสามารถสร้างเอาต์พุตที่แตกต่างกันภายใต้คีย์เดียวกันได้หากเราใช้ PRP เช่น AES (ส่วน PRF นั้นซับซ้อนกว่าและจริง ๆ แล้ว CTR ถูกกำหนดสำหรับ PRF เนื่องจากไม่จำเป็นต้องมีการผกผัน)
"โดยปกติแล้วตัวนับจะเริ่มต้นเป็นค่าบางค่า และเพิ่มทีละ 1 สำหรับแต่ละบล็อกที่ตามมา (โมดูโล $2^b$, ที่ไหน $ข$ คือขนาดบล็อก)" ข้อความนี้หมายความว่าอย่างไร
พิจารณาว่าเรามี nonce 64 บิตและตัวนับ 64 บิต
ไม่มีเคาน์เตอร์
9237AF71A232BC82E4 0000000000000000
บล็อกแรกใช้ 9237AF71A232BC82E40000000000000000
เป็นอินพุต จากนั้นบล็อกต่อมาใช้เป็น
ไม่มีเคาน์เตอร์
9237AF71A232BC82E4 0000000000000001
9237AF71A232BC82E4 0000000000000002
9237AF71A232BC82E4 0000000000000003
9237AF71A232BC82E4 0000000000000004
... ...
9237AF71A232BC82E4 เอฟเอฟFFFFFFFFFFFFFF
9237AF71A232BC82E4 FFFFFFFFFFFFFFFF
... ...
9237AF71A232BC82E5 0000000000000000 ???
หากคุณสามารถเข้ารหัสได้ $2^{64}$ บล็อกที่คุณจะไปถึงจุดสิ้นสุดของเคาน์เตอร์ ขึ้นอยู่กับกรณีที่อาจเป็นอันตรายได้
หากคุณดำเนินการต่อจากเคาน์เตอร์ 0 9237AF71A232BC82E40000000000000000
จากนั้นคุณจะมีปัญหาที่ไม่ใช้ซ้ำ (แผ่นสองครั้ง) ในโหมด CTR; ความลับจะหายไป ผู้สังเกตการณ์สามารถดำเนินการลากเปลแบบแมนนวลได้แม้กระทั่งแบบอัตโนมัติ
หากคุณยังคงเพิ่มขึ้นกว่า 9237AF71A232BC82E50000000000000000
คุณอาจกดอินพุตอื่นที่สามารถเปลี่ยนเป็นแป้นสองเวลาได้เช่นกัน
หยุดอยู่ตรงนั้น ที่จริงให้หยุดก่อนถึงตรงนั้น หากคุณใช้ PRP แทน PRF.
หมายเหตุเกี่ยวกับการใช้คำ nonce IV ที่แตกต่างกัน;
คำจำกัดความของ NIST ใช้ตัวนับเป็นอินพุตทั้งหมด สำหรับการเข้ารหัส
Wikipedia สร้างความแตกต่าง ฉันชอบคำจำกัดความของ Wikipedia ในกรณี GCM NIST ใช้ IV และตัวนับแยกกัน
ในหนังสือของพวกเขา Lindell&Katz ใช้ IV เป็น the $3n/4$ ส่วนหนึ่งของขนาดบล็อกและ $1/4$ สำหรับเคาน์เตอร์ การเข้ารหัสถูกกำหนดเป็น $y_i := F_k (IV || \langle ฉัน \rangle)$ แสดงว่าหากเลือก IV อย่างสม่ำเสมอ การใช้ IV ซ้ำถือเป็นเหตุการณ์เล็กน้อย ดังนั้นโหมด CTR จึงมีความปลอดภัย CPA