ブログ · 公平性と不正対策

ポーカーのシャッフルにおける暗号学的エントロピーとは

公平性と検証 公開日 2026年9月27日 · Fair Poker 研究チーム

オンラインポーカーの公平性を考えるとき、多くの人は「シャッフルはランダムなのか」と聞きます。けれど本当に大事なのは、もう少し具体的です。そのランダム性はどこから来たのか、誰かが事前に予測できたのか、そして後から検証できるのかという点です。

ここで出てくる言葉がエントロピーです。簡単に言えば、エントロピーとは新しい不確実性のことです。ポーカーのシステムは、数字をカードの順番に変える前に、十分に予測しにくい入力を持っていなければなりません。

エントロピーは出発点を読ませないためのもの

コンピューターは無から本物の偶然を作るわけではありません。端末や OS から予測しにくい信号を集め、それを暗号技術で扱いやすいランダムなバイト列にします。ブラウザーでは Web Crypto API が暗号学的に強い乱数機能を提供し、crypto.getRandomValues() がその代表的な入口です: MDN Web Crypto。

これは気軽に使う Math.random とは違います。Math.random は演出や簡単なゲームには使えますが、セキュリティ上の判断には向きません。ポーカーのシャッフルは、たとえプレイマネーだけであっても、公平性と信頼に関わるセキュリティ上の判断です。

カードの並びがどれほど多いかは、シャッフルのランダム性で説明しています。ただし、可能な並びが多いことと、安全に生成されたことは同じではありません。

弱いエントロピーでも見た目は自然に見える

弱いシャッフルでも、見た目には普通に見えることがあります。強い役も出ますし、不運な負け方も起きます。それだけでは、入力が安全だったとは言えません。

問題は予測可能性です。もし種が時刻、短い数字、固定的なブラウザー値などから作られていれば、攻撃者はすべてのカード順を調べる必要がありません。ありそうな種だけを試せばよくなります。NIST の資料が乱数生成、エントロピー源、決定論的乱数生成器を分けて扱うのも、この考え方に関係します: NIST random bit generation publications。

ポーカーで言えば、「見た目がランダム」では不十分です。ハンドが始まる前に、他人が予測しにくいことが必要です。

エントロピーだけでは証明にならない

良いエントロピーは、入力が予測されにくいかどうかを助けます。しかし、それだけで全ての公平性を説明できるわけではありません。

従来型のサイトは、優れた乱数を使っていても、プレイヤーに「サーバーが正しく使った」と信じてもらう必要があります。検証可能な公平性では、先にコミットし、あとで値を公開し、プレイヤーが結果を再計算できる形にします。クライアントシードとサーバーシードが重要なのは、複数の入力が結果に関わり、一方だけが都合よく後出しできないようにするためです。

エントロピーは鍵のようなものです。検証はその鍵が正しく使われた証拠です。シャッフル前の予測不能性と、シャッフル後の確認可能性は、どちらも必要です。

RNG と検証可能な公平性の違いもここにあります。RNG は数字をどう作るかの話で、検証可能性はその数字が約束通り使われたかを確かめる話です。

プレイヤーが確認したいこと

コードを読めなくても、見るべき点はあります。

Fair Poker は検証可能なプレイマネーポーカーを重視しています。大切なのは「信じてください」ではなく、プレイヤーや研究者が自分で確認できる証拠を残すことです。

まとめ

暗号学的エントロピーは、ポーカーのシャッフルを予測しにくくするための原材料です。ただし、それだけでは十分ではありません。信頼できるオンラインポーカーには、強いエントロピー、コミットメント、再現できる記録、そして暗号では解決できない問題への正直な説明が必要です。

検証可能な公平性の実装に興味がありますか?

Fair Poker はテキサスホールデムの検証可能な公平性を研究する非営利オープンソースプロジェクトです。デッキは参加者のブラウザが共同で暗号化シャッフルし、ディーリングサーバーは存在せず、全ハンドを独立に検証できます。公衆向けのゲームサービスは提供していません。全ソースを公開していますので、ダウンロードして自分の環境で研究してください。

ソースをダウンロード

本サイトは非営利のオープンソース研究プロジェクトであり、公衆向けのゲームサービスは提供しません。デモは研究テスト専用で無価値のテストチップのみを使用し、現金賭博ではありません。本記事は教育目的のコンテンツです。

← 記事一覧へ戻る