การรักษาความปลอดภัยที่จริงจัง: คุณไม่สามารถเอาชนะบ้านที่แบล็คแจ็ค – หรือทำได้?

Cryptoguru Bruce Schneier (ที่ไหน การเข้ารหัสลับ วิธี การอ่านรหัสไม่ใช่อย่างอื่น!) เพิ่งเผยแพร่บันทึกที่น่าสนใจในบล็อกของเขาที่ชื่อว่า เกี่ยวกับความสุ่มของการสับไพ่อัตโนมัติ.

หากคุณเคยไปที่คาสิโน อย่างน้อยหนึ่งแห่งในเนวาดา คุณจะรู้ว่าโต๊ะแบล็คแจ็คไม่เสี่ยงกับลูกค้าที่รู้จักในการค้าขาย เคาน์เตอร์บัตร.

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

เครื่องนับไพ่สามารถได้เปรียบแม้ว่าสิ่งที่พวกเขาทำคือติดตามอัตราส่วนของไพ่ 10 ใบ (สิบ แจ็ค ควีน และคิง) ต่อจำนวนที่ไม่ใช่ 10 ที่เหลืออยู่ในรองเท้าของเจ้ามือ

ตัวอย่างเช่น หากเจ้ามือนั่งกับเอซ แต่มีการใช้ไพ่ 10 มูลค่าสูงกว่าค่าเฉลี่ยไปแล้ว เจ้ามือมีโอกาสทำแบล็คแจ็คต่ำกว่าค่าเฉลี่ย (21 แต้มด้วยไพ่สองใบคือ เอซและหนึ่งใน 10-JQK) และชนะในครั้งเดียว และมีโอกาสสูงกว่าค่าเฉลี่ยที่จะล้มเหลวก่อนที่จะถึงจุดหยุดที่ 17 ขึ้นไป

หากคุณสามารถปรับสมดุลความน่าจะเป็นในหัวของคุณแบบเรียลไทม์ คุณก็อาจจะสามารถปรับเปลี่ยนการเดิมพันของคุณตามนั้นและออกมาข้างหน้าในระยะยาว

อย่าลองทำสิ่งนี้จริง ๆ อย่างน้อยในเนวาดา: คาสิโนมีแนวโน้มที่จะจับคุณได้อย่างรวดเร็วเพราะรูปแบบการเล่นของคุณจะแตกต่างอย่างเห็นได้ชัดจากตัวเลือกการชนะที่มีข้อมูลมากที่สุดหากคุณไม่นับไพ่ คุณอาจไม่ได้ลงเอยที่ศาล แต่คุณเกือบจะถูกพาตัวออกจากสถานที่ และจะไม่ปล่อยให้กลับเข้ามาอีก

ปรับระดับอัตราต่อรอง

เพื่อลดการถ่วงดุลของความน่าจะเป็นที่ตัวนับไพ่ได้รับ (อย่างน้อยก็ยังไม่ถูกจับได้) คาสิโนโดยทั่วไป:

  • แจกไพ่ที่บรรจุไพ่หกสำรับ (สำรับ) จำนวน 52 ใบ ซึ่งหมายความว่าแต่ละมือที่แจกจะบิดเบือนการแจกไพ่ที่เหลือน้อยกว่าถ้าใช้ซองเดียว
  • สับไพ่ทั้งหมด 312 ใบ (หกซอง) ก่อนทุกมือ เพื่อประหยัดเวลาและขจัดความสงสัยออกจากเจ้ามือ เครื่องกลไฟฟ้าปลอมจะสับไพ่บนโต๊ะต่อหน้าผู้เล่นทุกคน

นั่นทำให้เกิดคำถามที่ Schneier ตั้งขึ้นทันที: ไพ่ที่สับได้ดีแค่ไหนเมื่อพวกเขาโผล่ออกมาจากเครื่อง?

โดยเฉพาะอย่างยิ่งกับชุดการ์ดใหม่หกชุดซึ่งมาในลำดับที่คาดเดาได้ (เช่น Ace to King of Hearts, Ace to King of Clubs, King to Ace of Diamonds, King to Ace of Spades) จำนวนการสั่งซื้อบางส่วนที่เหลืออยู่หลังจาก เครื่องได้ทำงานของมัน?

คุณช่วย "เดา" ไพ่ใบต่อไปจากรองเท้าได้ดีกว่าที่โอกาสแนะนำหรือไม่?

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

แต่เครื่องสับเปลี่ยนไพ่แบบเครื่องกลไฟฟ้าต้องย้ายไพ่ในชีวิตจริง

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

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

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

ลิงก์โพสต์บล็อกของ Schneier ไปที่a ชิ้นที่น่าสนใจ โดย BBC ที่อธิบายว่านักคณิตศาสตร์/นักมายากลชื่อ Persi Diaconis แห่งมหาวิทยาลัยสแตนฟอร์ด ร่วมกับ Jason Fulman และ Susan Holmes ได้ทำการสอบสวนอย่างเป็นทางการในประเด็นนี้เมื่อต้นศตวรรษนี้ ในบทความเรื่องง่ายๆ : การวิเคราะห์เครื่องสับชั้นวางคาสิโน.

ระดับความซับซ้อน

เห็นได้ชัดว่ามีเทคนิคการสับไพ่บางอย่างที่ไม่ผสมไพ่มากนัก เช่น ง่ายๆ ตัด แพ็คเป็นสองส่วนแล้วย้ายส่วนล่างไปด้านบน

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

แนวคิดก็คือว่า หากคุณทำการสุ่มปืนหลายครั้ง คุณจะทำการตัดลำดับการสุ่มหลอกทุกครั้งที่คุณแบ่งชุดก่อนปืนไรเฟิลแต่ละครั้ง ผสมกับลำดับตัวแปรสุ่มเทียมของการดำเนินการแทรกสอดแบบสุ่มที่เกี่ยวข้องกับ N-from-the- กระบวนการ left-then-M-from-the-right

อย่างไรก็ตาม น่าแปลกที่เมื่อมีนักสับไพ่มนุษย์ที่มีทักษะเข้ามาเกี่ยวข้อง ไม่มีข้อสันนิษฐานใดๆ เกี่ยวกับความคาดเดาไม่ได้นั้นปลอดภัย

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

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

ตัวไดโคนิสสามารถสับไพ่ได้อย่างสมบูรณ์แบบ (รวมถึงทักษะที่หายากในการทำเช่นนั้นด้วยมือเดียวเพื่อจับทั้งสองครึ่งของแพ็ค!) และตามที่ BBC:

[เขา] ชอบแสดงการสับไพ่ที่สมบูรณ์แบบโดยหยิบสำรับไพ่ใหม่และเขียนคำว่า RANDOM ด้วยเครื่องหมายสีดำหนาด้านหนึ่ง ขณะที่เขาใช้ไพ่อย่างคล่องแคล่ว ตัวอักษรก็ปะปนกันไป ปรากฏขึ้นมาในรูปแบบที่น่ากลัว เหมือนกับภาพที่ปรับแต่งมาไม่สมบูรณ์บนทีวีเครื่องเก่า จากนั้น หลังจากที่เขาสับไพ่ครั้งที่แปดและครั้งสุดท้าย คำว่า rematerializes ที่ด้านข้างของสำรับ ไพ่อยู่ในลำดับดั้งเดิมตั้งแต่ Ace of Spades ไปจนถึง Ace of Hearts

ความสมบูรณ์แบบสองประเภท

ในความเป็นจริง มีการสับไพ่ที่สมบูรณ์แบบสองประเภท ขึ้นอยู่กับว่าคุณเริ่มเล่นไพ่จากมือใดหลังจากตัดไพ่ออกเป็นกองไพ่ 26 ใบสองกอง

คุณสามารถสลับไพ่เพื่อให้จบในลำดับ 1-27-2-28-3-29-…-25-51-26-52 หากไพ่ใบแรกที่คุณพลิกลงมาจากมือที่คุณถืออยู่ เขาครึ่งล่างของแพ็ค

แต่ถ้าไพ่ใบแรกที่คุณพลิกลงมาเป็นไพ่ใบล่างของไพ่ครึ่งบนก่อนหน้านี้ คุณจะจบลงด้วย 27-1-28-2-29-3-…-51-25-52-26 ดังนั้น การ์ดที่เพิ่งผ่านไปครึ่งทางจะจบลงที่ด้านบนหลังจากนั้น

แบบเดิมเรียกว่า an ออกสับเปลี่ยนและเรียงลำดับแพ็คใหม่ทุกๆ แปดครั้งที่คุณทำซ้ำ ดังที่คุณเห็นที่นี่ (ภาพมีพิกเซล 52 บรรทัด แต่ละบรรทัดตรงกับขอบของการ์ดหนึ่งใบที่มีคำว่า RANDOM เขียนด้วยปากกามาร์กเกอร์):

การรักษาความปลอดภัยที่จริงจัง: คุณไม่สามารถเอาชนะเจ้ามือที่แบล็คแจ็คได้ – หรือเปล่า? PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.
ทุกๆ 8 การสับเปลี่ยน ลำดับเดิมของเส้นในภาพจะซ้ำกัน

ประเภทหลังคือ an ในการสับเปลี่ยนและสิ่งนี้น่าทึ่งมากที่ต้องใช้การสับเปลี่ยน 52 ครั้งก่อนที่จะทำซ้ำ แม้ว่าคุณจะเห็นได้ชัดเจนว่ากลุ่มนี้ไม่เคยแสดงการสุ่มที่แท้จริงใดๆ เลย และแม้แต่ผ่านการพลิกกลับที่สมบูรณ์แบบเมื่อผ่านไปครึ่งทาง:

การรักษาความปลอดภัยที่จริงจัง: คุณไม่สามารถเอาชนะเจ้ามือที่แบล็คแจ็คได้ – หรือเปล่า? PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.
การสับเปลี่ยนซ้ำอย่างน่าทึ่งทุกๆ 52 ครั้ง

นักคณิตศาสตร์พูดว่าอย่างไร?

ดังนั้น ย้อนกลับไปในปี 2013 เมื่อ Diaconis el al. ศึกษาเครื่องสับเปลี่ยนหิ้งตามคำเชิญของผู้ผลิต เจออะไร?

ตามที่กระดาษอธิบาย ชั้นวางสลับเป็นความพยายามของระบบเครื่องกลไฟฟ้าในการคิดค้น "สุ่มหลายปืนหลายกระบอก" แบบสุ่มโดยอัตโนมัติ เพื่อให้การ์ดต้องทำงานเพียงครั้งเดียว เพื่อลดเวลาในการสับไพ่

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

หลังจากที่การ์ดทั้งหมดถูกกำหนดให้กับชั้นวางแล้ว เพื่อให้แต่ละชั้นมีการ์ดประมาณ 1/N การ์ดบนนั้น การ์ดจะถูกประกอบกลับเป็นกองเดียวในลำดับสุ่ม

ตามสัญชาตญาณ การสุ่มเทียมที่เกี่ยวข้อง คุณคาดหวังว่าการสับเปลี่ยนใหม่เพิ่มเติมจะช่วยปรับปรุงการสุ่มโดยรวม จนถึงจุด...

…แต่ในกรณีนี้ ที่เครื่องมี 10 ชั้น นักวิจัยถูกถามอย่างเจาะจงว่า “หนึ่งรอบของเครื่องจะเพียงพอที่จะสร้างแบบสุ่มเพียงพอหรือไม่”

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

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

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

โดยเฉพาะอย่างยิ่ง พวกเขาแสดงให้เห็นว่าผ่านอุปกรณ์เพียงครั้งเดียวเหลือลำดับของไพ่สั้น ๆ จำนวนมากเพียงพอในการสับไพ่ที่พวกเขาสามารถคาดเดาได้โดยเฉลี่ยระหว่าง 9 ถึง 10 ใบโดยเฉลี่ยเมื่อแจกไพ่ที่สับ 52 ใบหลังจากนั้น

ตามที่นักวิจัยเขียนว่า:

[U] ตามทฤษฎีของเรา เราสามารถแสดงให้เห็นว่าผู้เล่นที่มีความรู้สามารถเดาไพ่ 9 ใบครึ่งได้อย่างถูกต้องในการวิ่งครั้งเดียวผ่านสำรับไพ่ 52 ใบ สำหรับสำรับที่สับมาอย่างดี กลยุทธ์ที่เหมาะสมจะทำให้ไพ่ถูกต้องประมาณ 4 ใบครึ่ง ข้อมูลนี้โน้มน้าวใจบริษัท ทฤษฎีนี้ยังเสนอวิธีการรักษาที่มีประโยชน์อีกด้วย

[... ]

ประธานบริษัทตอบว่า “เราไม่พอใจกับข้อสรุปของคุณ แต่เราเชื่อพวกเขา และนั่นคือสิ่งที่เราจ้างคุณมา” เราแนะนำทางเลือกง่ายๆ: ใช้เครื่องสองครั้ง ส่งผลให้มีการสับเปลี่ยนเทียบเท่ากับเครื่อง 200 ชั้น การวิเคราะห์ทางคณิตศาสตร์และการทดสอบเพิ่มเติมของเรา ซึ่งไม่ได้รายงานในที่นี้ แสดงให้เห็นว่าเป็นการสุ่มอย่างเพียงพอ

จะทำอย่างไร?

เรื่องนี้ประกอบด้วย “ช่วงเวลาที่สอนได้” หลายเรื่อง และคุณควรเรียนรู้จากสิ่งเหล่านี้ ไม่ว่าคุณจะเป็นโปรแกรมเมอร์หรือผู้จัดการผลิตภัณฑ์ที่กำลังต่อสู้กับการสุ่มตัวเองโดยเฉพาะ หรือผู้เชี่ยวชาญด้าน SecOps/DevOps/IT/cybersecurity ที่เกี่ยวข้องกับการประกันความปลอดภัยทางไซเบอร์ใน ทั่วไป:

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

ไม่มีเวลาหรือความเชี่ยวชาญในการดูแลการตอบสนองภัยคุกคามความปลอดภัยทางไซเบอร์? กังวลว่าการรักษาความปลอดภัยในโลกไซเบอร์จะทำให้คุณเสียสมาธิจากสิ่งอื่น ๆ ที่คุณต้องทำหรือไม่?

เรียนรู้เพิ่มเติมเกี่ยวกับ การตรวจจับและการตอบสนองที่มีการจัดการของ Sophos:
การตามล่า การตรวจจับ และการตอบสนองตลอด 24 ชั่วโมงทุกวัน  ▶


ประทับเวลา:

เพิ่มเติมจาก ความปลอดภัยเปล่า