Score:4

การซ่อน/ปิดบังข้อมูลตำแหน่งในเกมกระดาน

ธง jp
fho

มีก คำถามในฟอรัม BoardGameGeek ซึ่งโดยพื้นฐานแล้วจะเป็นดังนี้:

  1. มีตัวละครของผู้เล่นบนแผนที่สี่เหลี่ยมผืนผ้าปกติที่ตำแหน่ง (px, py)
  2. มีอักขระ "AI" หนึ่งตัวที่เคลื่อนที่ไปตามแผนที่นี้ตามฟังก์ชันหรือรูปแบบบางอย่าง (เช่น หนึ่งฟิลด์ต่อเทิร์น (t), (ax,ay) = (ax0,ay0) + t * (vx,vy))
  3. ผู้เล่นต้องพิจารณาว่าตัวละครทั้งสองอยู่ในระยะ (L1/แมนฮัตตัน) D หรือไม่

คำถามที่นี่คือหากมีรูปแบบบางอย่างที่ช่วยให้ผู้เล่นคำนวณระยะทางไปยัง AI โดยที่เกมไม่ต้องเปิดเผยตำแหน่งจริงให้ผู้เล่นทราบ

สำหรับฉันดูเหมือนว่าอาจมีวิธีแก้ปัญหาบางอย่างในชุมชนการเข้ารหัส

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


แก้ไข: @bmm6o ถูกต้องแน่นอน โครงการที่เสนอโดย @PaulUszak ไม่ได้คำนึงถึงว่าใครบางคนต้องคำนวณ $H(p_x || p_y || a_x || a_y)$ และในกรณีของเกมกระดาน (เดี่ยว) ที่เป็นผู้เล่น

ฉันได้รับแบบแผนจากคำตอบของ Paul และโพสต์สิ่งนั้น บน BGG. คำวิจารณ์มีอยู่ว่าฉันฮาร์ดโค้ดตำแหน่ง AI ซึ่งลดความสามารถในการเล่นซ้ำ เมื่อผู้เล่นคิดออก $ai_{hash} \rightarrow (ai_x, ai_y)$ ความสัมพันธ์ตำแหน่ง AIs จะไม่ถูกซ่อนอีกต่อไป

เมื่อคำนึงถึงสิ่งนี้ คำถามจะกลายเป็นว่ามีแผนที่จะเปิดเผยระยะทางปัจจุบัน [2] ระหว่างผู้เล่นและ AI ให้กับผู้เล่นที่ดำเนินการคำนวณโดยเปิดเผยข้อมูลน้อยที่สุดเท่าที่จะเป็นไปได้เกี่ยวกับตำแหน่งปัจจุบันของ AI หรือไม่


[2] หากสร้างความแตกต่าง ผู้โพสต์ต้นฉบับบน BGG ส่วนใหญ่สนใจว่า AI และผู้เล่นอยู่ในตำแหน่งเดียวกันหรือไม่ ($d=0$) หรือถ้า AI นั้น "ใกล้" (เช่น $d<3$). ระยะทางไกลกว่านั้นไม่เกี่ยว

Paul Uszak avatar
cn flag
อะไรคือความสำคัญของชุดพิกัดแผนที่? เช่น. มีกี่ตำแหน่งที่เป็นไปได้บนแผนที่?
jp flag
fho
@PaulUszak นั่นไม่ได้ระบุไว้ในคำถามเดิม แต่ฉันเดาว่าเราสามารถถือว่าบอร์ดมีฟิลด์ประมาณ 10x10
jp flag
fho
@kelalaka ฉันไม่แน่ใจว่าฉันเข้าใจคำถามของคุณ แต่ฉันคิดว่าคุณคิดว่าฉันกำลังพูดถึงเกมคอมพิวเตอร์ หากเป็นกรณีนี้ การปล่อยให้คอมพิวเตอร์จัดการข้อมูลและการคำนวณที่ซ่อนอยู่จะเป็นเรื่องง่ายแต่คำถามเกี่ยวกับแผนการซ่อนและเปิดเผยข้อมูลเพียงบางส่วนในเกมกระดาน
kelalaka avatar
in flag
ตกลง ผู้ใช้สามารถเห็นผู้เล่น AI อยู่ที่ไหน ไม่ใช่เหรอ Manhattan D คำนวณง่าย ยกเว้นอุปสรรค...
Mark avatar
ng flag
เป็นเรื่องที่ควรค่าแก่การกล่าวถึงว่าถ้าใครโอเคกับการพักผ่อน (ความน่าจะเป็นและรับประกันได้ก็ต่อเมื่อผู้เล่นอยู่ใกล้เท่านั้น ซึ่งหมายถึง $\lVert \vec v-\vec v'\rVert_1 dc$ สำหรับ $c > 1$) ก็น่าจะเป็นไปได้ ทำ * ดีกว่าคำตอบปัจจุบันด้วยการแฮชที่ไวต่อพื้นที่ สิ่งนี้ไม่ได้รับประกันการเข้ารหัส แต่ดูเหมือนจะไม่จำเป็น นอกจากนี้ รูปแบบ LSH ที่มีอยู่เป็นแบบ (ใกล้เคียงกับ) เชิงเส้น ดังนั้นใคร ๆ ก็สามารถเก็บข้อมูล $(h, h(ax_0, ay_0), h(v_x, v_y))$, a (ค่อนข้าง) ของข้อมูลจำนวนเล็กน้อย "ช่องว่าง" หมายความว่าสิ่งนี้อาจไม่เหมาะสำหรับแอปพลิเคชัน
jp flag
fho
@ทำเครื่องหมาย "ช่องว่าง" อะไร
Mark avatar
ng flag
$c > 1$ โดยสรุปแล้ว LSH สามารถรับประกันได้ว่าจะทำงานเมื่อ "ปิด" ($cd$) ระยะทาง แต่ไม่มีการรับประกันระยะทาง "ปานกลาง" ($\in (d, cd)$)
jp flag
fho
คำถามติดตามผลที่นี่: https://crypto.stackexchange.com/questions/98313/hiding-obscuring-position-information-in-a-board-game-part-2
Score:2
ธง cn

สัญชาตญาณที่ดีมาที่นี่ คำเตือน ฉันไม่รู้ว่าเกมนี้คืออะไร แต่ ให้ผู้เล่นอาศัยอยู่ที่ $(p_x, p_y)$ และ AI อาศัยอยู่ที่ $(a_x, a_y)$. และเราถือว่ากริด 10 คูณ 10 เซลล์

ดังนั้นจึงมี 100 ตำแหน่งที่เป็นไปได้ต่อผู้เล่นหนึ่งคน และ 10,000 ชุดที่เป็นไปได้ของผู้เล่นสองคนฉันสันนิษฐานว่า AI สามารถอยู่เหนือผู้เล่นได้ ไม่เช่นนั้นคุณจะมีชุดค่าผสมที่เป็นไปได้ 10,000 - 100 ชุดหากพวกเขาไม่สามารถแชร์เซลล์ได้

สำหรับเกมทั้งหมด ให้คำนวณล่วงหน้า $H(p_x||p_y||a_x||a_y)$และระยะทางแมนฮัตตันด้วย $D$ ระหว่าง $(p_x, p_y)$ และ $(a_x, a_y)$. $H$ เป็นฟังก์ชันแฮชการเข้ารหัส ฉันแนะนำ SHA-1 เนื่องจากค่าเลขฐานสิบหก 40 อักขระนั้นไม่นานเกินไปสำหรับการค้นหาด้วยตนเอง เรียงลำดับ $H$ ตามลำดับตัวเลขเพื่อความสะดวกในการค้นหาต่อไป แล้วเผยแพร่ $(สูง, ง)$ คู่กันในหนังสือเล่มหนา ที่ 50 แฮชต่อหน้า นั่นคือ ~ 200 หน้า

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

สิ่งนี้ควรทำได้สำหรับบอร์ดขนาด 10 คูณ 10 แต่เห็นได้ชัดว่าไร้สาระสำหรับบอร์ดที่ใหญ่กว่ามาก


หมายเหตุ 1: ระวังความละเอียดของกระดาน 10 คูณ 10 เนื่องจากคุณรู้ตำแหน่งของตัวเองแล้วก็ตาม $D$ สร้างวงกลมของตำแหน่งที่เป็นไปได้ของ AI รอบตัวผู้เล่น หากการคำนวณระยะทางขึ้นอยู่กับศูนย์กลางเซลล์ จะมีเพียงไม่กี่เซลล์เท่านั้นที่จะตรงกันทุกประการ $D$. ดังนั้นจึงมีการรั่วไหลของข้อมูลตำแหน่ง จุดอ่อนนี้ไม่ใช่คุณลักษณะเฉพาะของโซลูชันของฉัน แต่เป็นคณิตศาสตร์และกริดขนาดเล็ก

Note2: ความคิดเห็นผกผัน ใช่ คุณสามารถสร้างหนังสือรหัสโกงด้วยตัวคุณเองและค้นหาทั้งหมด $H$ พรีอิมเมจ นั่นคือการโกงแม้ว่า หากมีผู้ตัดสินอิสระที่เป็นกลางสำหรับเกม ดันเจี้ยนมาสเตอร์ (???) หากคุณต้องการ คุณสามารถปรับแฮชเป็น $H = \text{SHA-1}(p_x||p_y||a_x||a_y||พริกไทย)$ ที่พริกเป็นที่รู้กันเฉพาะผู้ชี้ขาด ที่จะยังคงอำนวยความสะดวกในการตรวจสอบในระหว่างการโต้แย้งAI สามารถจับพริกไทยได้หรือไม่หากคุณไว้วางใจให้เล่นเกมที่ยุติธรรม?

หมายเหตุ 3: ควรมีความเป็นไปได้ทางสถิติที่จะตัดทอน $|H|$ ตั้งแต่ 40 อักขระฐานสิบหกไปจนถึงน้อยกว่ามาก ชุดค่าผสม 10,000 ชุดใช้เพียง 14 บิตเท่านั้น หากเราเลือกระดับความปลอดภัยของตำแหน่งเกมอีก 10,000 เราสามารถใช้ 28 บิตสำหรับแฮชที่เผยแพร่ ที่จะเผยแพร่เป็นอักขระเลขฐานสิบหกเจ็ดตัว แปดถ้าคุณต้องการคู่ หน้าจึงน้อยลง

Aman Grewal avatar
gb flag
คำถามระบุระยะทางแมนฮัตตัน ดังนั้นการอ้างอิงถึงพีทาโกรัสจึงใช้ไม่ได้ และถ้าสิ่งนี้จำเป็นต้องเป็นการคำนวณด้วยปากกาและกระดาษ ฉันจะไม่แนะนำ SHA-1
Paul Uszak avatar
cn flag
@AmanGrewal Manhattan: จัดเรียงแล้ว ขอบคุณ แฮชถูกคำนวณล่วงหน้าในสมุดค้นหาฉันเข้าใจว่าหนังสือรหัส/ค้นหาตารางได้รับอนุญาต
ph flag
ขั้นตอนนี้เกิดขึ้นได้อย่างไร: "'เกม' ส่งออก H"
us flag
"เป็นไปไม่ได้ที่จะคำนวณกลับ $H$" --> จะใช้เวลาเพียงมิลลิวินาทีในการคำนวณแฮชทั้งหมด 10,000 รายการด้วยตัวคุณเองเพื่อสร้างดัชนีกลับด้าน ไม่มีค่าเอนโทรปีสูงสำหรับ $H$ ในข้อเสนอของคุณ ดังนั้นจึงไม่สมเหตุสมผลที่จะพูดถึงความเป็นทางเดียวของ $H$
jp flag
fho
กระแสตอบรับดีเยี่ยม! ฉันไม่กังวลมากเกินไปเกี่ยวกับความเป็นไปได้ที่จะกลับ $H$ หากผู้เล่นต้องการหยุดเกมพวกเขาจะทำ สิ่งนี้ได้ผลหรือไม่? เช่น แค่คำนวณ $a_x || a_y$ สำหรับฟิลด์แรกจะสร้าง [[0,1],[1,1]] และการดูผลลัพธ์สำหรับฟิลด์ 10x10 มีตัวเลขซ้ำจำนวนมาก
jp flag
fho
คิดต่อไป: ฉันเดาว่าสามารถหลีกเลี่ยงได้โดยการระบุแต่ละช่องโดยไม่ซ้ำกัน นั่นไม่ใช่การคำนวณ $H(a_x || a_y || p_x || p_y)$ แต่ $H( (a_x + 10 * a_y) || (p_x + 10 * p_y))$ (สำหรับสนามแข่งขันขนาด 10x10)
jp flag
fho
(ฉันคิดว่าเราต้องทำ "ทริค" เดิมสองครั้ง ไม่เช่นนั้นเราจะได้ปัญหาเหมือนกัน ... ดังนั้นมันจะเป็น $H((a_x + 10 * a_y) + (p_x + 10 * p_y) * 100) $ ตอนนี้คำถามจะกลายเป็นว่ายังต้องการฟังก์ชันแฮชใด ๆ หรือไม่ (ยกเว้นอาจทำให้เอาต์พุตสับสน)
jp flag
fho
@PaulUszak คุณช่วยแสดงความคิดเห็นเกี่ยวกับ $p_x || ได้ไหม p_y$ เหมือนกันสำหรับการรวมกันของ $p_x$ และ $p_y$ (เช่น $p_x = 1, p_y = 0$ และ $p_y = 0, p_y = 1$)?
Morrolan avatar
ng flag
@fho $||$ คือการดำเนินการต่อข้อมูลเช่น $0 || 1 = 01$ แต่ $1 || 0 = 10$ ดังนั้นอินพุตของฟังก์ชันแฮชจึงไม่เท่ากัน
jp flag
fho
@Morrolan นั่นสมเหตุสมผลกว่า ฉันไม่คุ้นเคยกับสัญลักษณ์นั้นและคิดว่ามันต้องเป็น OR หรือ XOR
Paul Uszak avatar
cn flag
@fho โอ้พระเจ้า ขอโทษ มันเชื่อมต่อกัน ซึ่งคลุมเครือเล็กน้อย - ดู https://crypto.stackexchange.com/a/71784/23115
jp flag
fho
@PaulUszak ขอบคุณสำหรับคำตอบของคุณ! ฉันจะเล่นรอบนี้เล็กน้อย ฉันเดาว่ามันค่อนข้างง่ายที่จะ "ช่วงชิงล่วงหน้า" ตำแหน่งบนกระดาน (เพียงเพื่อทำให้สิ่งต่าง ๆ ยุ่งเหยิง) และไม่ใช้ฟังก์ชันแฮชใด ๆ (การคำนวณอย่างเข้มข้น) จากนั้นเป็นเพียง $p_{fid} + a_{fid} * 100$ ($x_{fid}$ หมายถึงตัวระบุฟิลด์) เพื่อรับหมายเลขสุ่ม (ค่อนข้าง) เพื่อค้นหาในหนังสือเล่มเล็ก นั่นคือ หากคุณไม่มีฟังก์ชันแฮชอยู่ในใจ การคำนวณหลายครั้งด้วยมือก็เป็นเรื่องเล็กน้อย
ph flag
ฉันไม่เข้าใจว่าสิ่งนี้แก้ปัญหาได้อย่างไร ใครเป็นคนคำนวณแฮชนี้ และทำไมพวกเขาไม่ทำการคำนวณระยะทางบนอินพุตแทน
jp flag
fho
@bmm6o เป้าหมายคือการทำให้ตำแหน่งที่แท้จริงของ AI บนกระดานเกมสับสน ดังนั้นจึงไม่มีตัวเลข/เครื่องหมายบนแผนที่ที่แสดงถึงมัน แฮชจะต้องถูกคำนวณเมื่อสร้างเกมเพื่อเติมสมุดรหัสด้วย (แฮช (ผู้เล่น, ai), ระยะทาง) จากนั้นให้ผู้เล่นตรวจสอบว่าเขาใกล้เคียงกับ AI หรือไม่ การใช้ Manuel Blums HCMU อาจเป็นไปได้จริง
ph flag
ฉันเข้าใจว่าหนังสือจะผลิตก่อนเวลา ใครเป็นคนสร้างแฮชเพื่อค้นหาระหว่างการเล่น
jp flag
fho
@ bmm6o ผู้เล่นในอุดมคติ คุณสามารถลดการคำนวณให้เหลือหนึ่งส่วนเพิ่มเติมและประยุกต์ใช้ฟังก์ชันแฮชได้ HCMU นั้นค่อนข้างง่ายในการคำนวณโดยเฉพาะอย่างยิ่งหากอินพุตสั้น
ph flag
ถ้าคุณคิดว่าวิธีนี้ช่วยแก้ปัญหาของคุณได้ ฉันจะไม่เถียงคุณ แต่คำตอบนี้ไม่ได้ระบุชัดเจนว่าผู้เล่นจะคำนวณฟังก์ชันที่มีการป้อนข้อมูลรวมถึงตำแหน่งของฝ่ายตรงข้ามได้อย่างไร โดยที่พวกเขาไม่รู้ตำแหน่งของฝ่ายตรงข้าม ไม่ใช่ขั้นตอนที่ใครบางคนต้องคำนวณ $H(p_x||p_y||a_x||a_y)$ ในแต่ละเทิร์นใช่ไหม
jp flag
fho
ให้เรา [ดำเนินการสนทนาต่อในการแชท](https://chat.stackexchange.com/rooms/133414/discussion-between-fho-and-bmm6o)
jp flag
fho
@PaulUszak ขออภัยที่ไม่ยอมรับคำตอบของคุณ ฉันมั่นใจว่าฉันควรชี้แจงคำถามของฉันแทนที่จะเปิดคำถามใหม่

โพสต์คำตอบ

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