応募券のシリアルコードには「適当に入力して当選」を避ける仕組みがある
チェックディジットと呼ばれる。
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コードのように、必ず正確に読み取れるとは限らないが確実に中身を伝えたい暗号化でよく用いられている。
事故を防ぐための仕組み。悪用はしない
チェックディジットは、コードが正しく作られたものであることを証明し、間違ったコードを正しいと見なしてしまう事故を防ぐ役割を持つ。原理を知れば、適当に勘で打ち込むのはやめておこう、と思うはずだ。
関連記事
「訃報」「愛猫」「手風琴」って読める? 常用漢字表に掲載されている“難読漢字”
ニュースなどでよく見る表現も、意外と分からん……。「稟議=りんぎ」「洗浄=せんじょう」ではない? 現代人には分からない“漢字の本来の読み方”
学校のテストで書いたら、逆に減点されそう。「40−32÷2=?」この問題、解けますか?
理系にはすぐ解けて、文系には解けない、とんち問答のような問題がネットで話題に。「ダウンタウン」「さまぁ〜ず」「オードリー」の昔の名前知ってる? お笑いコンビの「意外な旧コンビ名」
何というか……“売れてない感”がすごい。「…」「々」「¶」 よく見掛ける記号、名前知ってる?
他人に言うときは「アレ」で済ませちゃうやつ。
Copyright © ITmedia, Inc. All Rights Reserved.
昨日の総合アクセスTOP10
「訃報」「愛猫」「手風琴」って読める? 常用漢字表に掲載されている“難読漢字”
タイからバズーカ砲をかかかえたようなミニバイク「GUNNER50」が日本上陸 思わずキュンと来ちゃうやばいデザイン
お仕事中のパパvs.構ってほしい猫 猛烈なスリスリに耐えるかまいたち山内さんの朝の光景がほほ笑ましい
ヨボヨボの老婆と幼い少年、実は「夫婦です」―― 魔女と人間の一途な愛を描いた漫画「魔女と最後の取引」が泣ける
初オフ会にやべぇやつが来た お気持ちも仕事もヤクザなオタ仲間ができる漫画に「ギャップの究極系」「最高」
いったい誰が何のために? 田んぼの真ん中にコアファイター 「国府宮はだかまつり」に合わせて現れた謎の小型戦闘機の正体を調べてみた
「整形した? なんて言われたり」 おのののか、2カ月の本気ダイエットで6.5キロ減 丸顔もシュッと変化
6.5キロ減のおのののか、挙式後2カ月も体形キープ 華やかなドレス姿に「スタイル抜群!」「首筋から背中がきれい」と称賛相次ぐ
国交省公式Twitterが突然の乱心「ばばばばばばえおうぃおい〜(略)で通行止を実施しています」 原因はアナログデータの受信音?
【なんて読む?】今日の難読漢字「小母さん」
先週の総合アクセスTOP10
- 「訃報」「愛猫」「手風琴」って読める? 常用漢字表に掲載されている“難読漢字”
- 嫌がらせ急ブレーキで追突 トラクターの進路を妨害した「あおり運転」ベンツ、ぶつけられたと運転手がブチギレ
- 猫「雪なんてへっちゃらニャー!」 雪の中を豪快に突き進む猫ちゃんに「ラッセル車みたい」「ワイルドかわいい」の声
- 「Lチキひとつ」 → 買った物をよくみると? コンビニで犯したありがちな間違いを描いた4コマに「あるある」「逆もある」
- 柴犬「きゃほほーーい!!」 初めての雪に“喜びが限界突破した”ワンコの駆け回る姿がかわいい
- 「ホント太るのって簡単!」「あっという間に70キロ」 内山信二の妻、夫に生活リズムを合わせた“ふとっちょ時代”公開
- ルーフから赤色灯がひょっこり 埼玉県警、スバル「WRX S4」覆面パトカー3台を追加導入!? Twitterにアップされた目撃情報が話題に
- 益若つばさ、YouTubeで12歳息子と共演 礼儀正しい振る舞いに「教育がちゃんとされてる」
- トップの座を奪われ……美大生が天才の編入生を刺し“殺す”漫画に「泣きそう」「同じ経験した」の声
- タイからバズーカ砲をかかかえたようなミニバイク「GUNNER50」が日本上陸 思わずキュンと来ちゃうやばいデザイン
先月の総合アクセスTOP10
- 「訃報」「愛猫」「手風琴」って読める? 常用漢字表に掲載されている“難読漢字”
- 井上咲楽、“太眉”を人生初カットで別人に 「可愛いすぎます」「さらにファンになりました」と大反響
- 元「うたのおにいさん」今井ゆうぞうさんが脳内出血で急逝 生前最後のブログには“目の異常な充血”
- 2021年夏の祝日、東京五輪で変更 カレンダーの更新を
- 太眉卒業した井上咲楽、美しさ光るアップショットに大反響 「大人っぽーい」「すっかり美しい路線に」
- 「逃げ場のない恐怖」「爆発音で目が覚めた」 JAL904便がエンジントラブルで緊急着陸、乗客が撮影した映像が怖すぎる
- マックポテト「Mサイズのみ」味が変との声がネットであがる マクドナルドに話を聞いた
- 「これは天才」「来年のノーベル賞候補」 ホットサンドメーカーで焼く「ホットサンドケーキ」が悪魔的サクサク感で話題に
- 保護した子ネコに「寂しくないように」とあげたヌイグルミ お留守番後に見せた子ネコの姿に涙が出る
- アロンアルフアは5秒で接着→「時間が余ったので猫動画をご覧ください」 15秒CMのペース配分がおかしい