Linux でオンラインカジノの核になっている乱数ジェネレーターを考える。

今回は乱数ジェネレーターを取り扱ってみます。

乱数ジェネレーターは乱数を発生させるアルゴリズムです。これ自体は目新しい技術では全くありません。乱数を発生させるだけのコードであれば、C++でも、Pythonでも、

Ramdom

的な乱数を発生させるためのコードが用意されており、誰でも1度はチュートリアルで触れたことがあるのではないでしょうか。

 

この乱数ジェネレーターはオペレーションシステムのセキュリティーに非常に重要な役割を果たしていると言う事は、セキュリティー関係者の間では常識でしょう。私たちが普段使っているIDがパスワードといった認証技術に深く関わっています。

 

Linuxでは、仮想デバイスのためのエントロピーを用意するコードである

virtio-rng

が用意されています

このコードは、/dev/hwrng に chardev を作成してそれを開き、乱数を送ります。

実装は次のようになります。

code

次に乱数ジェネレーターによって生成される結果について考えていきましょう。
乱数ジェネレーターのアルゴリズムによって生成される結果が本当にランダムである事は実は保証されていません。例えば1から10をランダムに発生させた場合、ある一定の数字に変化が生じることがあり得ます。

この現象は偏差と呼ばれ、実際にカジノように偶然性に支配される業界においても発生しています。これを是正して正規分布を行う方法はいくつかあります。ここではPythonのライブラリであるNumpyを使って乱数を発生させるサンプルを見てみましょう

 

import numpy as np

3つの数字がランダムに発生します
次に正規分布に従う乱数を発生させてみましょう。

random normal

normalオプションは正規分布を表します。そのカッコ内の手順左から平均、偏差、出力したい件数になります。

このように正規分布と、指定の偏差を設けることにより、結果のランダム性が担保されることになります。

さらに発生する乱数をあらかじめ固定することも可能です。コードを見てみましょう

random.speed

このseedと言うのはシードと読み、文字通り乱数発生するための種にする値を設定します。ここでは種を32にして設定して実行しています。

このように見ていくと、乱数の生成と言うのは非常に恣意的な形で操作することが可能であることがわかります。特に偏差を設定したり、種を固定することで、生成する側の人間の希望する数値が出やすくなることになります。

オンラインカジノやパチンコのように偶然性をベースにした社交的な娯楽は、日々乱数の生成の設定を行っています。何故かと言うと、標準偏差や、これまでに出てきた数字を全て分析していれば、次に出てくる数字というのがある程度予測できてしまうからです。つまり乱数の結果が必ずしも優秀なビデオ乱数ではなくなってきます。この事態を防ぐために毎日設定をリセットして新しい乱数を生成しているのです。

また娯楽性を高めるための設定も日々行われています。ときにはジャックポットが出やすくすることもあるし、逆に努力することもあるでしょう。しかしこれを許せばカジノが一方的に搾取することも可能になってしまいます。そこでオンラインカジノのような会社には、第三者機関がこの乱数発生装置の公平性について監査する仕組みができあがっています。オンラインカジノで特におすすめするのはベラジョンカジノです。

オンラインカジノで使用している乱数発生装置は消してここにあるようなシンプルなものではありません。またその公平性を担保する第三者の監査も入っており、さらにそのセキュリティーは万全なものになっています。処理ややりとりの全てがSSLで暗号化されるため、金銭的なやりとりの安全性も十分に担保されています。そのことから銀行決済やカード決済が多数用意されている事でもわかります。つまりちょっとした金融機関並みのセキュリティーを備えているオンラインカジノなのです。オンラインカジノの最先端のセキュリティーや、高い技術についての詳細はこちらのまとめ記事へどうぞ

Related Post

秀英体100展に写心機 ver.2を出展します秀英体100展に写心機 ver.2を出展します

お正月明けのギンザ・グラフィック・ギャラリーで開催される企画展「秀英体100」にて、ふたたび「株式会社ワンパク」とともにデジタルインスタレーション、「写心機」のver.2を出展致します。 2011/1/21 追記:ビデオを載せました! 2009年11月に行われた、Make:Tokyo Meeting 04で好評を得たver.1「写心機 Prototype」から2年、全く異なる構成で、新たに今回の企画展「秀英体100」にて「写心機 {Font}

AIR for Androidでゲームコントローラを作ってみたAIR for Androidでゲームコントローラを作ってみた

ちょっとした思いつきでAndroidスマートフォンでゲームのコントローラを作ってみたかった…ので、作ってみました。それがこちらです↓ 意匠が今は無きP○P goのよう?Nexus Sだとそれだけでゲーム端末っぽくなりますね。自分はもうこれだけで満足なのですが、これだけではその名の通りのコントローラであることを証明出来ない…ので、不本意ながら簡単なマルチユーザーゲームも作りました。それがコチラ。やっつけで作ったのでゲームとしてツッコミどころ一杯なのですが、、、 ■遊び方 ゲームとして浅いので遊び方は至ってシンプルです。 先ずTwitterのIDでログインします。 スタートボタンを押すと(正確にはタッチすると…)ゲーム開始。

モバイル端末からもプレイできるVERA&JOHNカジノモバイル端末からもプレイできるVERA&JOHNカジノ

近年、手軽にカジノが楽しめるということで人気を集めているのがオンラインカジノ。 パソコンを使ってのプレイが基本になりますが、サイトによってはiPhoneやandroid、iPad、タブレットなどのモバイル端末でプレイが可能なものもあります。 その中でもよりモバイル端末で快適にプレイできると人気なのが「ベラジョンカジノ」です。 ベラジョンカジノはマルチデバイス対応のサイトであるため、モバイル端末でアクセスをすれば自動的にモバイル端末に適した専用のサイトが表示されます。 プレイヤーはパソコンやスマホなどの端末を意識せず、快適に多種のカジノゲームを楽しむことができるのです。 一度会員登録をすれば、別のデバイスでもアカウントが共通で利用できるため便利なのも魅力的。 自宅ではパソコンでプレイする、外出先ではスマホでプレイする・・・など、使い分けてカジノライフを満喫することができます。 注意点としては、スマホやタブレットなどのモバイル端末でベラジョンカジノをプレイする場合、パケット容量を消費してしまうという点です。