Score:1

สร้างค่าสุ่มที่ไม่ซ้ำใครสำหรับค่าอินพุตที่ไม่ซ้ำใคร

ธง pk
VSB

ฉันจะสร้าง มีเอกลักษณ์ ค่าสุ่มตามช่วงของค่าอินพุตที่ไม่ซ้ำกัน

กล่าวอีกนัยหนึ่ง ฉันมีช่วงของค่าอินพุตซึ่งตัวเลขเหล่านี้เป็นส่วนหนึ่งของชุดข้อมูล (เช่น ช่วงของหมายเลขซีเรียลที่เพิ่มขึ้นทีละค่า) และไม่มีค่าที่ซ้ำกัน ฉันต้องการสร้างค่าสุ่มตามแต่ละค่าอินพุตซึ่งไม่ควรมีค่าซ้ำกันในค่าเอาต์พุต

สิ่งแรกที่ฉันนึกถึงคือการใช้รหัสบล็อกมาตรฐานเช่น AES เนื่องจากเป็นเช่นนั้น ฉีด และถ้าอินพุตของฟังก์ชันนี้ไม่มีค่าที่ซ้ำกัน ก็รับประกันได้ว่าเอาต์พุตจะไม่ซ้ำเช่นกัน

ดังนั้นความกังวลของฉันคือวิธีการสร้างค่าสุ่ม (หลอก) นี้ปลอดภัยเพียงพอหรือไม่

เช่น. ถ้ามีคนป้อนค่าอินพุตต่อเนื่องกัน (ข้อความธรรมดา) 1,000 ค่าและค่าเอาต์พุต 1,000 ค่า (ข้อความไซเฟอร์เท็กซ์) ต่อค่าอินพุตเหล่านี้ เขา/เธอสามารถทำนายค่าสุ่มเอาต์พุตสำหรับ 1,001 ได้หรือไม่ไทย ค่าเข้า? กล่าวอีกนัยหนึ่ง เป็นไปได้หรือไม่ที่ผู้โจมตีจะสร้างแบบจำลองเครื่องกำเนิดสุ่มหลอกนี้ในทางคณิตศาสตร์เพื่อสร้างค่าสุ่มใหม่โดยไม่ต้องใช้รหัสในรหัสบล็อก AES

ฉันรู้ว่ามีมาตรฐานบางอย่างสำหรับ "KDF" เช่นที่กำหนดไว้ใน NIST SP-800 ซีรีส์ อย่างไรก็ตามความเป็นเอกลักษณ์ของค่าสุ่มไม่ได้เป็นปัญหา (ถ้าฉันจำไม่ผิด) แต่นี่เป็นข้อกังวลในแอปพลิเคชันเป้าหมายของฉัน

Score:1
ธง cn

แน่นอนว่ามีความปลอดภัยเพียงพอ ถอยกลับและคิดถึงผลที่ตามมาหากไม่เป็นเช่นนั้น: เมื่อดูที่การเข้ารหัส 1,000 รายการ ถ้าคุณสามารถทำนายวันที่ 1,001 โดยไม่ทราบรหัส แสดงว่าคุณทำ AES พัง

โครงสร้างของคุณเป็นวิธีที่รู้จักกันทั่วไปในการเปลี่ยนรหัสบล็อกเป็นรหัสกระแสเป็น:-

ปริ๊น

ในขณะที่มีปัญหาเกี่ยวกับเอฟเฟกต์วันเกิดสำหรับเอาต์พุตสเปซที่กำลังใกล้เข้ามา $2^{64}$ บิต มีเพียง 1,000 รายการเท่านั้นที่จะแยกไม่ออกจากการสุ่ม และไม่ซ้ำใคร

fgrieu avatar
ng flag
ใช่. ในย่อหน้าสุดท้าย: เนื่องจาก AES เป็น bijection การทำซ้ำ AES จึง _not_ ขึ้นอยู่กับเอฟเฟกต์วันเกิด เช่นเดียวกับการวนซ้ำแฮช ความน่าจะเป็นที่จะเข้าสู่วัฏจักรโดยเริ่มจากจุดสุ่มหลังจาก $2^{64}$ วนซ้ำคือประมาณ $2^{-64}$
Paul Uszak avatar
cn flag
@fgrieu ตรงกันข้ามกับเอฟเฟกต์วันเกิด? ขาดเอฟเฟกต์วันเกิด? ความไร้เดียงสา? ฉันกำลังมองหาข้อความที่ควรจะมีการชนกันในเอาต์พุตสุ่ม (หลอก) อย่างถูกต้อง เหตุผลที่ AES PRNG แตกต่าง...
fgrieu avatar
ng flag
การเข้ารหัส AES สำหรับคีย์แบบตายตัวคือการเปลี่ยนชุดขององค์ประกอบ $k=2^{128}$ มี $k!$ การเรียงสับเปลี่ยนขององค์ประกอบ $k$ ดังกล่าว สำหรับจุดเริ่มต้นคงที่ใดๆ สำหรับ $\ell$ ใดๆ ใน $[1,k]$, $(k-1)!=k!/k$ ของการเรียงสับเปลี่ยนเหล่านี้มีวัฏจักรของความยาว $\ell$ เมื่อเริ่มต้นจาก จุดดังกล่าว ดังนั้น สำหรับการเรียงสับเปลี่ยนแบบสุ่มและเริ่มจากจุดสุ่ม ความยาวรอบ $\ell$ จะกระจายอย่างสม่ำเสมอใน $[1,k]$ และความยาวรอบ (เฉลี่ย) ที่คาดไว้คือ $(k+1)/2$ ซึ่งมีประโยชน์สำหรับ DES ใน [โหมด OFB](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Output_feedback_(OFB))

โพสต์คำตอบ

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