你不能在二十一点中击败房子——或者你可以吗? – 赤裸裸的安全

Cryptogoro Bruce Schneier(其中 加密 你知道? 加密,而不是其他事情!)他刚刚在他的博客上发布了一个有趣的注释,标题为 关于自动卡对应的随机性.

如果您曾经去过一家赌场,至少在内华达州的一家,您就会知道二十一点赌桌不会与已知交易的客户一起冒险 卡片柜台.

这个术语用来指那些已经如此密切地训练他们的记忆的玩家,以至于他们可以跟踪一手牌到目前为止所打出的牌,从而在游戏过程中预期站立或击球时给予他们相对于房子的理论上的优势。 进步。

即使他们所做的只是跟踪 10 张牌(10、J、Q 和 Ok)与庄家牌盒中剩余的非 10 张牌的比率,算牌员也可以获得优势。

例如,如果庄家拿着一张 A,但已经使用了高于平均水平的十张牌,那么庄家获得二十一点的机会低于平均水平(两张牌为 21 点,即 A 和 10-JQK 之一)和一次胜利,以及在达到 17 及以上的断点之前破产的机会高于平均水平。

如果你能在脑海中实时平衡赔率,你或许可以相应地调整你的赌注,从长远来看向前迈进。

不要尝试这样做,至少在内华达州:赌场可能会很快发现您,因为如果您不计算牌,您的游戏风格将与更明智的获胜选择明显不同。 你可能不会上法庭,但几乎可以肯定你会被护送出大楼,再也不会进入。

赔率

为了减少算牌者(至少还没有抓到的人)的赔率平衡,赌场通常:

  • 牌盒中的发牌手上有六包(套)52 张牌。 这意味着与使用单副牌相比,每手发牌对剩余纸牌分布的影响较小。
  • 在每手牌前切换整副 312 张牌(六副牌)。 为了节省时间并消除庄家的疑虑,一台伪随机机电机器会在所有玩家面前将牌直接放在桌子上洗牌。

这立即从 Schneier 提出了一个问题:卡片从机器中出来时的混合效果如何?

值得注意的是,六张新牌以可预测的顺序到达(例如 A 到红桃 Ok、A 到梅花 Ok、Ok 到方块 A、Ok 到黑桃 A),在完成后剩余的部分订单金额机器做它的工作?

你能比机会所暗示的更好地“猜测”出牌盒中的下一张牌吗?

全电子随机发生器的复杂性主要受其使用的 CPU 速度的限制,通常以每秒数亿或数十亿次算术运算来衡量。

但是机电换卡器实际上必须在现实生活中移动卡片。

显然,在机制开始破坏卡片之前,可以多快执行分组拆分、卡片交换和交织操作是有限制的,这意味着随机性的数量是有限的(或者更准确地说, 假随机性机器可以在下一手牌之前提前。

切换时间太短,如果从一开始就存在已知的卡片分配偏差,赌场可能会使卡片柜台上的事情变得更容易。

洗牌时间太长,玩的太慢,直到玩家感到无聊并四处游荡,这是赌场极力避免的事情。

Schneier 的博客文章链接到文件 很棒的作品 由 BBC 描述,斯坦福大学的数学家/魔术师 Percy Diaconis 与 Jason Follman 和 Susan Holmes 在本世纪初发表了一篇题为“简单”的论文,对这个问题进行了正式调查: 赌场货架切割机分析.

复杂程度

显然,有一些混合技术根本不会洗牌,比如简单地 打包成两部分,从底部移到顶部。

其他技术(或感觉好像它们应该导致)导致更好的混合,例如 混合喷头,您大致将包装分成两半,每只手握住一半,然后将两半“翻转”在一起,以半随机方式将它们交错,交替在一侧拿几张牌,然后再拿几张牌在另一。

这个想法是,如果您多次交换数据包,则每次在每次散弹枪之前拆分数据包时都会生成一个伪随机序列块,并与随机变化的伪随机交错序列混合,其中包括从左开始的 N 操作和然后从右边 M。

然而,有趣的是,当熟练的专家参与洗牌时,任何这些不可预测性的假设都是安全的。

诡诈的魔术师和狡猾的商人(迪亚科内斯本人是前者,但不是后者)可以执行所谓的 法罗语怪癖, 或者 完美的洗牌,他们每次弹出包时都会执行以下两项操作:

  • 将卡片整齐地分成两部分, 因此,每手牌正好有 26 张牌。
  • 完美输入, 每次只翻一张牌,每次一张。

Diaconis 本人可以完美融合(包括用一只手握住两半包的罕见技巧!),据 BBC 报道:

[He] 他喜欢通过拿起一副新牌并在一侧用厚厚的黑色记号笔写一个随机单词来展示完美的运球。 当他玩牌时,字母混在一起,不时以幽灵般的形式出现,就像旧电视机上调整不完美的画面一样。 然后,在他进行第八次也是最后一次洗牌后,这个词出现在牌组的一边。 这些卡的原始顺序是从黑桃 A 到红心 A。

两种完美

事实上,有两种类型的完美运球,这取决于你将牌分成两副 26 张牌后从哪只手开始切碎。

您可以交错卡片,以便它们以 1-27-2-28-3-29- … -25-51-26-52 的顺序结束,如果您翻转的第一张卡片来自您的手’重持是包装的下半部分。

但是,如果您翻转的第一张牌是之前堆栈上半部分的底牌,您最终会得到 27-1-28-2-29-3-… -51-25-52-26 , 所以中途的一张牌 在那之后它在顶部结束。

以前的类型称为 外线运球,并每八次迭代重新排列数据包,正如您在此处看到的那样(图像有 52 行像素,每行对应于卡片的一个边缘,上面写着带有标记的随机单词):

每进行 8 次外部换位,图像中线条的原始排列就会重复。

最后一种类型是文件 在运球中,令人惊讶的是,这需要 52 次重新混合才能重复,尽管您可以在这里清楚地看到数据包从未显示出任何真正的随机性,而只是在中途经历了完美的反射:

随机操作系统每 52 次循环一次。

数学家怎么说的?

所以,早在 2013 年,Diaconis 在洛杉矶的时候。 他们应制造商的邀请研究了机架式混合机,他们发现了什么?

正如论文所解释的,Rack shuffler 是一种机电式尝试,旨在设计一种自动和随机的“multi-shot multi-shot shuffle”,理想情况下,只需处理一次卡片,以缩短混合时间。

机架洗牌器中的牌被伪随机地“分发”到洗牌器内的 N 个金属架之一(按名称),每次将牌添加到机架时,它要么在底部滑动,或脱落。在前一张牌的顶部。 (我们假设尝试将一张牌放在已经在堆叠中的两张随机牌之间会更慢并且容易造成牌损坏)。

在所有卡片都放在架子上之后,每个架子大约包含第 1/N 张牌,然后将这些牌以伪随机顺序重新组合成一堆。

直观地说,考虑到所涉及的伪随机性,你会期望额外的随机重排来提高整体随机性,有点……

…但在这种情况下,机器有 10 个架子,研究人员被特别要求, “机器的一次通过足以产生足够的随机性吗?”

据说该公司希望避免让设备运行多个周期以保持玩家的快乐和游戏流畅,而设计该设备的工程师在自己的测试中没有发现任何明显的统计异常。

但该公司希望确保这一点 他没有通过自己的测试,只是因为测试适合设备这给了他们一种虚假的安全感。

最后,研究人员发现不仅随机性相当弱,而且他们能够准确地确定随机性有多差,因此设计了替代测试,令人信服地揭示了随机性的缺乏。

特别是,他们表明,只需通过一次设备,就会在线程输出中留下足够短的卡片序列,当他们随后处理一包 52 张混合卡片时,他们可以可靠地预测平均 9-10 张卡片。

正如研究人员所写:

[U]歌唱我们的理论,我们能够证明一个知识渊博的玩家可以在一副 52 张牌的情况下在一轮中正确猜出大约 9 张半牌。 对于有序的牌组,最佳策略是拥有大约 4 张半的牌。 该数据说服了该公司。 该理论还提出了一种有益的治疗方法。

[…]

“我们对你的结论不满意,”公司负责人回答说,“但我们相信他们,这就是我们聘请你的原因。” 我们提出了一个简单的替代方案:使用机器两次。 这会产生相当于 200 机架机器的 shuffle。 我们的数学分析和其他测试(此处未报告)表明这是足够随机的。

我该怎么办?

这个轶事包含许多“可教的时刻”,无论您是程序员还是专门处理随机性的产品经理,还是参与确保安全的 SecOps/DevOps/IT/网络安全专家,向其学习都是明智的网络一般:

  • 通过考试是不够的。 当然,测试失败是一件坏事,但很容易导致测试期望你使用的算法、产品或服务能够成功,尤其是如果你的更正或“错误修复”是通过它们是否让你通过来衡量的测试。 有时您需要第二意见,然后它来自客观和独立的来源。 这个独立的概述可以来自加利福尼亚的一支精明的体育统计学家团队,就像这里一样; 来自渗透测试人员的外部“红队”; 或者来自 MDR(托管检测和响应)工作人员,他们将眼睛和耳朵引导到您的网络安全态势。
  • 听坏消息很重要。 本案的搅拌机公司负责人回答完美,他承认自己对结果感到不满,但他花钱是为了揭露真相,而不仅仅是为了听到他所希望的。
  • 特别是密码学和一般的网络安全是具有挑战性的。 寻求帮助不是承认失败,而是承认需要什么才能成功。
  • 随机性太重要了,不能留给机会。 测量湍流并不容易(阅读论文 了解原因),但可以而且必须这样做。

您是否有足够的时间或经验来应对网络安全威胁? 担心网络安全最终会分散您对所有其他需要做的事情的注意力?

学习更多关于 Sophos 设法检测并响应
24/7 全天候搜索、检测和响应威胁


#你不能在二十一点中击败房子或者你可以吗 #赤裸裸的安全

Leave a Comment

Your email address will not be published. Required fields are marked *