ニュース

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

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

advertisement

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


応募券のイメージ

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

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

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

advertisement

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

 つまり、

  • 1234 5678 9012 3456
  • 1234 5678 0012 3456

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

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

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

advertisement

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

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

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

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

 1234 5678 9012 345

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

advertisement

 1234 5678 9012 3450

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

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

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

 1234 5678 0012 3450

advertisement

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

 1234 5678 0012 3451

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

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

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

advertisement

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

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

制作協力

QuizKnock

Copyright © ITmedia, Inc. All Rights Reserved.

記事ランキング

  1. 「えーー」「衝撃!」「食べれるんですか!?」 大沢たかお、“まさかの食事風景”にファンびっくり 「明日は雪かな」
  2. 母親から届いた「もち」の仕送り方法が秀逸 まさかの梱包アイデアに「この発想は無かった」と称賛 投稿者にその後を聞いた
  3. 友人のため、職人が本気を出すと…… 廃材で作ったとは思えない“見事な完成品”に「本当に美しい」「言葉が出ません」【英】
  4. 「脳がバグるw」 妹の結婚式で乾杯音頭をとる兄、二度見必至の“完璧な正装”に「なんでやねんwww」「良いお兄さん」
  5. 毛糸でポコポコ模様を編んでいくと……「私史上いちばん可愛い!」完成品に称賛の声殺到! センス爆発のおしゃれアイテムが「目を奪われました」と話題
  6. ゴミ収集所をあさっていた保護猫、今でもギュウギュウだった首輪の跡が残り…… やす子が溺愛する猫の“衝撃のご褒美”に反響
  7. 「最新のガンダムです」→円熟味あふれるガンプラの登場に笑い 「ある意味うそは言ってないw」
  8. 初心者「ぶどうは紫で丸いっぱい描いとけば完成でしょ!」→“絵の先生”がちゃんと描いたら…… “段違いのクオリティー”になるコツが目からウロコ
  9. 「破格ですね!」 セカストで9900円→即買いした“メーカー不明品”に「超掘り出し物……!」と驚きの声
  10. いらすとやの「おじいさん」をAIで盛ったら? → 何度も描き替えるうちに魔法少女が誕生「AIエグい」と話題 投稿者に話を聞いた