ニュース
» 2019年04月20日 11時30分 公開

応募券のシリアルコードには「適当に入力して当選」を避ける仕組みがある

チェックディジットと呼ばれる。

[QuizKnock,ねとらぼ]

 CDについているシリアルコードで、ライブのチケットに応募することがしばしばある。いくつかコードを打ち込むうち、魔が差してこんなことを考えてしまう。「適当に打ち込んだら通ったりしないかな……」と。


応募券のイメージ

 本当に通ったら一大事なので、このような仕組みを設計する段階でどうにかして防いでいる訳だが、どのようにやっているのだろう。その防止策の1つに「チェックディジット」というものがある。


まず、完全にランダムな文字列にすると困る

 あなたがライブを主催することになり、0〜9の数字からなる16桁のシリアルコードで抽選を行うとしよう。あなたならどのようにコードを作るだろうか?

 単純に考えれば、16個の枠それぞれに0〜9の数字を1つずつランダムに選べばいい(つまり、0〜9の乱数を16個並べればいい)のだが、完全にランダムだと不都合が多い。例えば、ランダムだと限りなく似ているコードが生成される可能性がある。



 つまり、

  • 1234 5678 9012 3456
  • 1234 5678 0012 3456

 のような、1カ所しか変わらない2つのシリアルコードが生まれ得る。1つ目のシリアルコードを持っている人が、うっかり数字を1つ打ち間違えたり、あるいは狙って数字を変えたりして、2つ目が受理されてしまう、という事態が考えられる。

 異なる箇所が少ないほどこういう事故は起こりやすい、というのは直感的に分かるだろう。これを防ぐためには、シリアルコード同士が、どんなに運の悪い乱数を引いても最低nカ所以上は異なる、という状態が望ましい。

 それを作るために、チェックディジットが登場する。


誤りを見つける仕組み「チェックディジット」

 チェックディジットとは、符号の誤りを検査(チェック)するための桁(ディジット)のこと。

 今回の例でいえば、最初から16桁をランダムに生成する代わりに、15桁だけランダムに生成することにして、残りの1桁をチェックディジットに割り当てることにする。チェックディジットの計算方法はいろいろあるが、ここでは「15桁の数字を足し合わせて10で割った余り」をチェックディジット(つまり16桁目の数字)としよう。



 まず、15桁のコードとしてランダムに

 1234 5678 9012 345

 が生成されたとする。1+2+3+……+3+4+5=60なので、10で割ると余りは0。この0をチェックディジットである16桁目とすれば

 1234 5678 9012 3450

 というシリアルコードができる。

 このようにすると何がいいかというと、シリアルコード同士が必ず2桁以上異なることが担保されるのだ。



 例えば、この中から1桁だけ変えた

 1234 5678 0012 3450

 は絶対に当たりのコードではない。なぜなら、末尾以外の15桁を足し合わせると51なので、チェックディジットは1であるはず。

 1234 5678 0012 3451

 はあり得ても、上の末尾が0のコードは生まれないのだ。

 このように、チェックディジットを1桁設けることで、シリアルコードが互いに2カ所以上異なるようにできる。また、適当に打ち込まれたコードならば、チェックディジットを確認することで用意したシリアルコードを検索するまでもなく間違いだと判定できる。

 チェックディジットが1桁だと「何かが間違っている」ことしか分からないが、桁を増やし、計算方法を工夫することで、具体的に「○桁目が間違っている」まで判別することもできる。そのようなチェックディジットは、通信やQRコードのように、必ず正確に読み取れるとは限らないが確実に中身を伝えたい暗号化でよく用いられている。


事故を防ぐための仕組み。悪用はしない

 チェックディジットは、コードが正しく作られたものであることを証明し、間違ったコードを正しいと見なしてしまう事故を防ぐ役割を持つ。原理を知れば、適当に勘で打ち込むのはやめておこう、と思うはずだ。

制作協力

QuizKnock


Copyright © ITmedia, Inc. All Rights Reserved.

昨日の総合アクセスTOP10

  1. /nl/articles/2205/25/news162.jpg この写真の中に1人の自衛隊員が隠れています 自衛隊が出したクイズが難問すぎる……「答え見ても分からない」と人気
  2. /nl/articles/2205/28/news020.jpg 「トップガン」はなぜ「トップガン」なのか? 「トップガン マーヴェリック」でオタクが悲鳴を上げ歓喜した理由
  3. /nl/articles/2205/28/news071.jpg 幸せそうな顔だ! 久慈暁子、結婚発表後初のインスタ更新で夫・渡邊雄太見守る観戦中の笑顔ショット公開
  4. /nl/articles/2205/27/news130.jpg 鳥居みゆき、キャンプを楽しむ1枚に青白い顔 “ホラー風”ショットに「全く知らずに見たら怖すぎる」
  5. /nl/articles/2205/27/news012.jpg 利害が一致した柴犬&子猫コンビ “ごはん”のときだけ息が合う姿に「見事なシンクロw」「笑っちゃいました」の声
  6. /nl/articles/2205/28/news068.jpg 胃がんステージ4のバレー代表・藤井直伸、清水邦広&福澤達哉と再会ショット つらい治療の中で「最高の薬です!」
  7. /nl/articles/1809/23/news019.jpg 炊飯器いっぱいに炊けまくった米…! 「5.5合炊いて」が生んだ悲劇に「全米が泣いた」「笑いすぎてしんどい」
  8. /nl/articles/2205/28/news065.jpg 漫画家急病でセクシーな女性がサツマイモの画に 「単行本では必ず修正します」
  9. /nl/articles/2205/27/news033.jpg 禍々しい136体の妖怪像が話題 学芸員が「なんのために作れられたのか不明」「類例は見つからず」という造形物が謎すぎる
  10. /nl/articles/2205/28/news063.jpg ともさかりえ、「キンキーブーツ」応援で“一方的な攻撃”受ける 根拠もないうわさで「金田一の頃も苦しめられた」

先週の総合アクセスTOP10

  1. 誰にもバレずに20年 別荘を解体中にバスルームから“とんでもないモノ”が見つかる 「わけがわからない」と困惑
  2. 「チコちゃん」マナー講師が炎上で、エガちゃんの株が上がってしまう 「エンタメの見本」「エガちゃんはやっぱり偉大」
  3. 「だめだお腹痛い」「大爆笑しました」 榎並大二郎アナ、加藤綾子に贈った“ガチャピン人形”が悲惨な姿になってしまう
  4. ジャガー横田、愛車・BMWが高速手前でエンスト 九死に一生も原因不明の故障に「新車でまだ一年半なのに…」
  5. 「志摩スペイン村」微塵も人がいないのに突如トレンド入り 「にじさんじ」周央サンゴの“正直すぎるレポ”で話題に
  6. キンコン西野、“勝手に出された婚姻届”にまさかの展開 証人欄にはお世話になっている「森田一義って名前が」
  7. 「ゆっくり茶番劇」商標取得者の所属コミュニティーが声明 商標権の完全放棄を要求
  8. 中村江里子、174センチの長女&181センチの中学生長男に驚く声 「足ながっ!!」「モデルになれそう」
  9. 「志摩スペイン村」がトレンド入り→公式ホテルの予約が急増とさらなる展開へ 広報「すごいことが起こっているぞと思った」
  10. 華原朋美、デザイン手掛けた黒ミニドレスを披露 「本当に痩せて綺麗になって」「全てが可愛すぎました」と反響