hirax.net::ソフマップでお買い物::(2000.01.30)

ソフマップでお買い物 

磁界の可視化とバーコード

 前回、

で「マグネビュアー」を使って磁界の可視化をして遊んでみた。今回はその続きである。ソフマップの磁気カードの中に書き込まれている磁気データを可視化して調べてみるのである。

 磁気カードには、

  • 銀行のキャッシュカード
  • クレジットカード
  • テレホンカード
  • オレンジカード
などなど色々と使われている。ここで例に挙げたようなカードの解析はすでに行われている(多分)。それに加えて、これらのカードの解析にはかなり危険な香りがする。もちろん、あまり解析が難しそうなものを題材に選ぶと後悔すること必至である。そこで、割に無意味で安全そうな磁気カードを選んでみたわけだ。それがこのソフマップカードである。

 まずは、ソフマップカードの写真を示してみよう。これがソフマップで買い物をするたびにお世話になるソフマップカードである。
 

ソフマップカード

 この写真からではどこにデータが書き込まれているのかわからない。そこで、「マグネビュアー」の登場と言いたいところであるが、残念ながら今回は「マグネビュアー」は登場しないのである。「マグネビュアー」はとても便利なのであるが、さすがに磁気カードの磁気データを読もうとすると分解能が不足する恐れがある。

 そこで、代打選手に登場願うことにした。代打選手はキヤノン製のLBPのトナーである。以前、

の時に「トナーはクーロン力で制御されて画像を作るのだ」という話があった。キヤノン製の白黒のLBPではクーロン力に加えて磁気力を使ってトナーを制御している。なので、キヤノン製の白黒トナーは磁性体粉末ということになる。

 テレホンカードが出た頃はキヤノン製のトナーを使ってデータを読み出していた人も多いはずである。みな、テレホンカードの表面を削りトナーを振り掛けていたのである。というのは、聞いた話であり、実体験に基づくものでは絶対にない。神に誓っても良い。その頃にキヤノン製のトナーを使い倒していたということは絶対にないのである。しかも、その数年後に(以下略)。

 それでは、磁性体の微少粉末であるトナーをソフマップカードに振り掛けてみよう。
 

トナーをソフマップカードに振り掛けてみる

 ソフマップカードの磁気データが可視化されたのがわかると思う。磁気によるバーコードが見えるだろう。これがソフマップカードに書き込まれている磁気データである。
 とはいえ、トナーの付着具合にムラがある。それは私が雑に実験を行ったからである。こんなにムラがあっても磁気コードが判別できるかどうか疑問を持たれる方も多いと思う。しかし、

の時にやったように、そこは1次元バーコードの特徴を使えば大丈夫である。ここで、もう一度挙げておくと、
  1. 読む方向に対して垂直な線が多い
  2. 読む方向に対して水平な線は少ない
という特徴である。磁気データのバー方向にはまったく同じデータが書き込まれているので、磁気データのバー方向に画像を平均化することでノイズを減少させることができる。
 そのようにして、ノイズを減らし、S/N比を上げた画像を示してみる。
 
S/N比を上げた磁気データ部分の画像

 どうだろうか、驚くほど綺麗になっているのがわかると思う。まさか、と思われるかもしれないが本当である。
 さて、これはソフマップカードの磁気データの全体像であるが、もう少し拡大したものを以下に示す。
 

S/N比を上げた磁気データ部分の画像の拡大図

 極めて明瞭に磁気データが可視化されているのがわかると思う。これはトナーを振りかけて、1万円ちょっとのスキャナ(CanonのUSB接続の安物スキャナ)で読み込んだものに対して先の処理をしただけである。これほど明瞭になるのも、全て1次元バーコードの特徴のおかげである。磁気ヘッドの制作などをしなくても良いのである。

 磁気カードの記録密度は銀行統一仕様(NTT)でもISO3554でも8.3bit/mm=211bit/inchであるから、最近の600dpi(dot/inch)程度のスキャナーであれば十分磁気データの画像読みとりが可能である。
 
 それでは、もっと拡大してみる。拡大する部分は上の画像の右の辺りである。すると、このようになる。
 

S/N比を上げた磁気データ部分の画像の拡大図の拡大図

 データ間隔がわかりやすいように、ここでは矢印や文字を書き入れている。この画像を見ると、磁気データは規則的な細かい周期性を持ち、その周期でいうと8つ単位でさらなる周期性があるように思われる。つまり、8bitをひとまとまりとしたデータが書き込まれているように見える。例えば、上の画像では

  • ( 白、白、白、白、白、白、黒、黒 ) x 2
というデータに見える。二進数で言うと
  • ( 00000011 ) x 2
であり、ケンシロウ進数で言うと、
  • ( ああああああたた ) x 2
である。ソフマップカードの磁気データのほとんどの部分はこの( 白、白、白、白、白、白、黒、黒)パターンでしめられている。これは当然データの空白部だろう。そして、見るからに意味あるデータが書き込まれているだろう部分が以下の色を着けた部分である。
 
S/N比を上げた磁気データ部分の画像の拡大図の拡大図

 複数枚のカードのこの部分を比較してみれば、比較的容易にデータ構造は解析することができるだろう。また、一枚のカードからでもカード番号などの数字と磁気データを比較することにより、解析することはやはり困難無しに解析できると思うのである。と、思うわけではあるが、あまりやりすぎるのはマズイと思われるので、今回はこれまでにしておく。
 

この記事と関係がある他の記事