Score:1

ขนาดของตัวนับในโหมด CTR

ธง us

ถ้าฉันเข้าใจถูกต้อง ในโหมด CTR ฉันจะเข้ารหัส nonce หรือ IV พร้อมกับตัวนับเป็นบล็อก ซึ่งจากนั้น XORed จะเป็นข้อความธรรมดา สำหรับบล็อกถัดไป ฉันจะเพิ่มตัวนับ มีขนาดคงที่ของตัวนับเพื่อให้สามารถวนซ้ำผ่านบล็อกทั้งหมดหรือไม่ หรือเริ่มอีกครั้งที่ 0 ในบางจุด

ตัวอย่างเช่น หากอัลกอริทึมมีขนาดบล็อก 16 ไบต์ ในทางทฤษฎีฉันสามารถทำซ้ำได้มากกว่า 4.3 พันล้านบล็อก (68.8GiB) เมื่อตัวนับของฉันมีขนาด 4 ไบต์ แต่จะเกิดอะไรขึ้นหากข้อมูลของฉันมีขนาดใหญ่ขึ้น ตัวนับมีขนาดเท่าใดเพื่อให้ IV ยังคงถูกรักษาไว้และในบล็อกแรกมีจำนวนไบต์ไม่มากนักที่เติมด้วย 0 เท่านั้น

ขอบคุณล่วงหน้า

Luqus avatar
us flag
ไม่เชิง ฉันค่อนข้างจะรู้ว่าสิ่งนี้ถูกจัดการโดยอัลกอริทึมมาตรฐานเช่น Java Cipher ในโหมด CTR เป็นส่วนใหญ่อย่างไร
Maarten Bodewes avatar
in flag
@kelalaka ไม่ถูกต้อง Java มักจะมีตัวนับ (โหมด `"CTR"`) คุณใช้เป็นเช่น `"AES/CTR/ไม่มีช่องว่างภายใน"` Java 10 ค่อนข้างเก่าแล้ว แต่ [Java 6](https://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html#Cipher) มีอยู่แล้ว
Maarten Bodewes avatar
in flag
คำตอบของฉันสำหรับคำถามที่เชื่อมโยงคือ: "แม้ว่าตัวนับมักจะระบุแยกจาก nonce ในโปรโตคอล แต่การใช้งานมักจะมีตัวนับที่มีขนาดเท่ากับขนาดบล็อก ในกรณีนั้น nonce เป็นส่วนหนึ่งของบิตที่สำคัญที่สุด ของเคาน์เตอร์สตาร์ท" นี่คือคำตอบทั่วไป: ขึ้นอยู่กับห้องสมุด ผู้ให้บริการมาตรฐานใน Java ใช้ตัวนับ endian ขนาดใหญ่ 16 ไบต์ / 128 บิต หากคุณไม่ต้องการให้ล้นเข้าไปใน nonce คุณจะต้องจำกัดจำนวนบล็อก / ไบต์ที่เข้ารหัสด้วยตัวคุณเอง
Maarten Bodewes avatar
in flag
ถ้าคุณต้องการ ฉันสามารถย้ายไปที่ [ดังนั้น] แต่คำถามนั้นควรกำหนดเป็น Java เฉพาะ กรณีทั่วไปได้รับคำตอบแล้ว และฉันไม่สามารถหาคนหลอกลวงได้ง่ายๆ ใน [ดังนั้น]
Maarten Bodewes avatar
in flag
ข้อสังเกตสุดท้าย ฉันได้เพิ่ม "NIST ลงรายละเอียดเกี่ยวกับวิธีสร้างบล็อกรหัสใน NIST SP 800-38a ภาคผนวก B โดยระบุในตอนท้ายว่าตัวนับโดยทั่วไปเป็นโปรโตคอลเฉพาะ และต้องทดสอบข้อกำหนดเฉพาะแยกต่างหาก" สำหรับคำตอบของฉันในลิงก์อื่น ฉันคิดว่าคุณอาจสนใจ
Luqus avatar
us flag
@MaartenBodewes ขอบคุณสำหรับข้อมูลเพิ่มเติมที่ควรตอบคำถามสำหรับฉัน
Maarten Bodewes avatar
in flag
@Luqus เราสามารถให้ข้อมูลเพิ่มเติมได้เสมอ: ดู [ที่นี่](https://stackoverflow.com/a/70323458/589259) เกี่ยวกับขนาดที่ไม่มีค่าภายใน 128 บิต IV / ตัวนับ หากคุณดู [simple arppoximations](https://en.wikipedia.org/wiki/Birthday_attack#Simple_approximation) บน Wikipedia สำหรับวันเกิด คุณสามารถคำนวณได้ เช่น ความเสี่ยงที่จะเกิดการชนกันคืออะไร ถ้าคุณต้องการขนาดตัวนับเฉพาะ
kelalaka avatar
in flag
โปรดจำไว้ว่า NIST บอกว่า 64-nonce และ 64-bit counter อย่างไรก็ตาม [คุณควรหยุดนานกว่านี้](https://crypto.stackexchange.com/a/85572/18298) หากคุณใช้ PRP เป็น AES แทน ของ PRF เป็น ChaCha
kelalaka avatar
in flag
@MaartenBodewes ใช่แล้ว คุณพูดถูก ฉันมักจะตรวจสอบอีกครั้ง ฉันคิดว่าฉันดูแค่ [Javax](https://docs.oracle.com/javase/10/docs/api/javax/crypto/Cipher.html)

โพสต์คำตอบ

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