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

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

» 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/2404/18/news134.jpg 21歳の無名アイドル、ビジュアル拡散で「あの頃の橋本環奈すぎる」とSNS騒然 「実物の方が可愛い」「見つかっちゃったなー」の声も
  2. /nl/articles/2404/18/news025.jpg 生後5日の赤ちゃん、7歳のお姉ちゃんから初めてミルクをもらうと…… 姉も驚きの反応がかわいい
  3. /nl/articles/2404/18/news057.jpg 9カ月の赤ちゃん、バスで外国人の女の子赤ちゃんと隣り合い…… 人生初のガールズトークに「これは通じあってますね!」「ベビ同士の会話、とろけます」
  4. /nl/articles/2404/17/news037.jpg 【今日の計算】「8+9÷3−5」を計算せよ
  5. /nl/articles/2404/17/news034.jpg 「妹が入学式に着るワンピース作ってみた!」 こだわり満載のクラシカルな一着に「すごすぎて意味わからない」「涙が出ました」
  6. /nl/articles/2404/18/news155.jpg 大谷翔平選手、ハワイに約26億円の別荘を購入 真美子夫人とデコピンとで過ごすかもしれないオフシーズンの拠点に「もうすぐ我が家となる場所」
  7. /nl/articles/2404/17/news179.jpg 「ケンタッキー」新アプリに不満殺到 「酷すぎる」「改悪」の声…… 運営元「大変ご迷惑をおかけした」と謝罪
  8. /nl/articles/2404/16/news192.jpg 「ゆるキャン△」のイメージビジュアルそのまま? 工事の看板イラストが登場キャラにしか見えない 工事担当者「狙いました」
  9. /nl/articles/2404/17/news129.jpg 「ハーゲンダッツ硬すぎ!」と力を入れたら……! “目を疑う事態”になった1枚がパワー過ぎて約8万いいね
  10. /nl/articles/2404/16/news175.jpg 「そうはならんやろ」をそのまま再現!? 「ガンダムSEED FREEDOM」のズゴックを完全再現したガンプラがすごすぎる
先週の総合アクセスTOP10
  1. 生後2カ月の赤ちゃんにママが話しかけると、次の瞬間かわいすぎる反応が! 「天使」「なんか泣けてきた」と癒やされた人続出
  2. 車検に出した軽トラの荷台に乗っていた生後3日の子猫、保護して育てた3年後…… 驚きの現在に大反響「天使が女神に」「目眩が」
  3. 安達祐実、成人した娘とのレアな2ショット披露 「ママには見えない!」「とても似ててびっくり」と驚きの声
  4. 兄が10歳下の妹に無償の愛を注ぎ続けて2年後…… ママも驚きの光景に「尊すぎてコメントが浮かばねぇ」「最高のにいに」
  5. “これが普通だと思っていた柴犬のお風呂の入れ方が特殊すぎた” 予想外の体勢に「今まで観てきた入浴法で1番かわいい」
  6. 「虎に翼」、新キャラの俳優に注目が集まる 「綺麗な人だね」「まさか日本のドラマでお目にかかれるとは!」
  7. 「葬送のフリーレン」ユーベルのコスプレがまるで実写版 「ジト目が完璧」と27万いいねの好評
  8. お花見でも大活躍する「2杯のドリンクを片手で持つ方法」 目からウロコの裏技に「えぇーーすごーーい」「やってみます!」
  9. 弟から出産祝いをもらったら…… 爆笑の悲劇に「めっちゃおもろ可愛いんだけどw」「笑いこらえるの無理でした」
  10. 3カ月の赤ちゃん、パパに“しーっ”とされた反応が「可愛いぁぁぁぁ」と200万再生 無邪気なお返事としぐさから幸せがあふれ出す
先月の総合アクセスTOP10
  1. フワちゃん、弟の結婚式で卑劣な行為に「席次見て名前覚えたからな」 めでたい場でのひんしゅく行為に「プライベート守ろうよ!」の声
  2. 親が「絶対たぬき」「賭けてもいい」と言い張る動物を、保護して育ててみた結果…… 驚愕の正体が230万表示「こんなん噴くわ!」
  3. 水道検針員から直筆の手紙、驚き確認すると…… メーターボックスで起きた珍事が300万再生「これはびっくり」「生命の逞しさ」
  4. フワちゃん、収録中に見えてはいけない“部位”が映る まさかの露出に「拡大しちゃったじゃん」「またか」の声
  5. スーパーで売れ残っていた半額のカニを水槽に入れてみたら…… 220万再生された涙の結末に「切なくなった」「凄く感動」
  6. 桐朋高等学校、78期卒業生の答辞に賛辞やまず 「只者ではない」「感動のあまり泣いて10回読み直した」
  7. 「これは悲劇」 ヤマザキ“春のパンまつり”シールを集めていたはずなのに…… 途中で気づいたまさかの現実
  8. 「ふざけんな」 宿泊施設に「キャンセル料金を払わなくする方法」が物議 宿泊施設「大目に見てきたが厳格化する」
  9. がん闘病中の見栄晴、20回以上の放射線治療を受け変化が…… 「痛がゆくなって来ました」
  10. 食べ終わったパイナップルの葉を土に植えたら…… 3年半後、目を疑う結果に「もう、ただただ感動です」「ちょっと泣きそう」