通信用語の基礎知識 IPv4
戻る
参加者募集中

サイバネ規格 (ICカード)

辞書:鉄道用語の基礎知識 鉄道編 (RAIL)
読み:サイバネきかく
品詞:名詞
2014/08/19 作成
2017/09/24 更新

ICカード乗車券の規格の一つで、日本鉄道サイバネティクス協議会が制定した出改札システムの規格の俗称。

サイバネ規格は、ICカード乗車券のほか、磁気乗車券や駅コードの規格もある。ICカードでも、磁気乗車券と同様の駅コードの規格が使われており、これによって運賃の計算と精算が実現されている。

規格自体はコンフィデンシャルつまり非公開であり、参画事業者のみが知ることができる。

実際に流通しているICカードを読み取り、暗号化されていない部分については解読が可能なため、実際に使いながら値の変化をみてその使い道を知ることはできる。

データ

日本鉄道サイバネティクス協議会(略称サイバネ協会)の制定したICカード乗車券規格(正式名称不明)に対応しているカードであれば、おおむね同様の形式でデータが記録されている。

これはSuicaの仕様が基となっており、Suicaとの互換性が高いカードということができる。

情報には暗号化されたものも多く、第三者が読み取ることすらできないものもあるが、誰でも読み取れる領域もある。

カード

交通系ICカード全国相互利用」に対応するカードは、このサイバネ規格に対応している。

それ以外でもサイバネ規格に対応したカードは多数あるが、公開された読み取れる情報を読み取るだけでは、何のカードかは明確には判断できない。

IC

サイバネ規格のICカード乗車券はFeliCaを使用している。

以下技術詳細を理解するためには、ある程度のFeliCaの知識が必要である。

主なサービスコード

※を附したサービスコードは、Suicaなど特定のカードにしかないことがある。

  • システムコード: 0003 (Suicaなどの領域)
    • サービスコード: 008B (1ブロック) カード種別およびカード残額情報
    • サービスコード: 090F (20ブロック) 乗降履歴情報
    • サービスコード: 108F (3ブロック) 改札入出場履歴情報
    • サービスコード: 10CB (2ブロック) SF入場情報
    • サービスコード: 184B (36ブロック程度) 料金券情報(※) (カードによりブロック数が異なる)
  • システムコード: FE00 (共通領域)
    • サービスコード: 394B (1ブロック) 不明(※)
    • サービスコード: 398B (16ブロック) 不明(※)
    • サービスコード: 39C9 (6ブロック) 不明(※)
  • システムコード: 86A7
    • サービスコード: 004B (5ブロック) 不明(※)
    • サービスコード: 028B (5ブロック) 不明(※)
  • システムコード: 854C
    • サービスコード: 1F0B (1ブロック) EX-ICの指定席情報(※)

交通系ICカード全国相互利用」に対応するカードは、最低でもSuicaと互換のあるシステムコード0x0003に対応し、かつ幾つかのプロテクトされた領域と、非プロテクト領域のサービスコード0x008B、0x090F、0x108F、0x10CBに対応することになる。

調査した範囲で、各カードごとのブロック数またはブロックの有無は次の通り。()で数字を囲ったブロックは、古いカードには存在しないものを意味する。

なお、114Aまでは、×と書かれていないカードには領域が存在する。1808以降は、数字が書かれているのは非暗号化領域、○とだけ書かれたブロックは、存在はするが暗号化ブロックであることを示す。

 KitacaSuicaPASMOTOICAmanacaICOCAPiTaPaSUGOCAnimocaはやかけん
00030048          
004A          
0088          
008B1111111111
00C8     (○)    
00CA     (○)    
00CC     (○)    
00CE     (○)    
00D0     (○)    
00D2     (○)    
00D4     (○)    
00D6     (○)    
0810          
0812          
0816          
0850          
0852          
0856          
0890          
0892          
0896          
08C8          
08CA          
090A   × ××   
090C          
090F20202020202020202020
1008          
100A          
1048          
104A          
108C          
108F3333333333
10C8          
10CB2222222222
1108          
110A          
1148          
114A          
 KitacaSuicaPASMOTOICAmanacaICOCAPiTaPaSUGOCAnimocaはやかけん
1808         
180A         
1848      
184B3636362      
18C8         
18CA         
1908 (○)       
190A (○)       
1948 (○)       
194B (16)16       
1988 (○)       
198B (3)3       
1A48         
1A4A         
1A88         
1A8A         
1B88         
1B8A         
1CC8         
1CCA         
1D08         
1D0A         
1E08         
1E0A         
1E48         
1E4A         
1E88         
1E8A         
1E8B   23      
1ECC         
1ECF   20      
1F48         
1F4A         
1F88       
1F8A       
1FC8         
1FCA         
2008         
200A         
2048       
204A       
2088         
208B36         
20C8         
20CB32         
2108         
210B20         
2148         
214B8         
2188         
218B6         
21C8         
21CA         
2208         
220A         
2248         
224A         
2288         
228A         
2308        
230A        
2348        
234B 44       
2388        
238B 1616       
23C8        
23CB 44       
2448         
244A         
2488         
248A         
24C8         
24CA         
2508         
250A         
2548         
254A         
 KitacaSuicaPASMOTOICAmanacaICOCAPiTaPaSUGOCAnimocaはやかけん
9608         
960A         
9748         
974A         
9888         
988B    14     
98CC         
98CF    20     
9908         
990A         
9948         
994A         
9988         
998B    8     

情報の傾向

カードや、乗降する事業者によっても傾向は若干異なるが、最大で次のような情報が暗号化されず記録され、いつでも参照することが可能である。

  • 残高
  • 乗降履歴(過去20件)
  • 改札履歴(過去3件)

以下は、暗号化領域に情報があり、所有者であっても内容を確認することができない。

  • カード所有者情報 (氏名、電話番号)
  • 定期券としての情報 (区間、有効期間など)

以下、(LE)とあるものはリトルエンディアン、記載のないものは全てビッグエンディアンである。

また特に記載はないが、実際のデータ部の説明内は原則として16進数である。

008B カード種別およびカード残額情報

カード種別と、カードの残額などが格納されていると見られる。

  • システムコード: 0003
    • サービスコード: 008B (1ブロック)

各ブロックの内容

  • +0〜+7 (8バイト): (不明)
  • +8 (1バイト)
    • 7〜4 (4ビット): カード種別
      • 0=EX-IC
      • 2=Suica、PASMO、TOICA、manaca、PiTaPa、nimoca、SUGOCA、はやかけん
      • 3=ICOCA
    • 3〜0 (4ビット): 最終決済地域コード(随時書き換わるもので、カード種別判定には使えない)
      • 0=旧国鉄と関東私鉄/バス
      • 1=中部私鉄/バス
      • 2=関西私鉄/バス
      • 3=その他地域私鉄/バス
  • +9〜+A (2バイト): 0x00 0x00 (不明)
  • +B〜+C (2バイト): カード残額(LE)
  • +D (1バイト): 0x00
  • +E〜+F (2バイト): 更新番号

最後の更新番号は、カードそのものの更新のようで、乗車時など、008Bの残高欄などに変化がなくても番号だけはインクリメントされる。

090F 乗降履歴情報

090Fデータ形式

1件1ブロック(16バイト)で、最新20件が記録される。FeliCaポート/パソリで使用できるソニーの「SFCard Viewer 2」で表示されるのはこの領域である。

鉄道では、日付は記録されるが、改札した時刻は記録されない。

  • システムコード: 0003
    • サービスコード: 090F (20ブロック)

各ブロックの内容

  • +0 (1バイト): 機器種別
    • 03 のりこし精算機
    • 05 バス/路面等
    • 07 自動券売機?
    • 08 自動券売機
    • 09 SMART ICOCA クイックチャージ機、nimocaポイント交換機
    • 12 自動券売機
    • 14 駅窓口 (窓口でSMART ICOCAを作ると14になる)
    • 15 定期券発売機
    • 16 自動改札機
    • 17 簡易改札機
    • 18 駅窓口 (再発行など) (指定席券売機も?)
    • 19 窓口処理機(有人改札)
    • 1A 窓口処理機(有人改札)
    • 1B パソリ等
    • 1C のりこし精算機
    • 1D 他社線のりかえ自動改札機
    • 1F 入金機、簡易入金機
    • 20 窓口端末(名鉄)
    • 21 精算機
    • 22 窓口処理機/簡易改札機/バス等 (カード種類ごとに異なる用途がある模様)
    • 23 新幹線改札機
    • 24 車内補充券発行機
    • 46 VIEW ALTTE、特典など
    • 48 ポイント交換機(nimoca)
    • C7 物販/タクシー等
    • C8 物販/タクシー等
  • +1 (1バイト): 利用種別
    • ビット7 (1ビット): 1=現金やカード等の併用 (切符の乗り越し精算をICカードで実施した場合など)
    • ビット6〜0 (7ビット)
      • 01 自動改札機出場/有人改札出場
      • 02 SFチャージ
      • 03 乗車券類購入
      • 04 精算(乗り越し等)
      • 05 精算(乗り越し等)
      • 06 窓口出場
      • 07 新規
      • 08 チャージ控除(返金)
      • 0D バス/路面等(均一運賃)
      • 0F バス/路面等
      • 10 再発行?
      • 11 再発行?
      • 13 自動改札機出場?(新幹線)
      • 14 オートチャージ
      • 17 オートチャージ(PiTaPa)
      • 19 バスの精算?
      • 1A バスの精算?
      • 1B バスの精算 (障害者割引などの精算)
      • 1D リムジンバス等
      • 1F チャージ(バス/窓口)、チャージ機(OKICA)
      • 23 乗車券類購入 (都バスIC一日乗車券など)
      • 33 取り消し(残高返金)
      • 46 物販
      • 48 ポイントチャージ
      • 49 SFチャージ(物販扱い)
      • 4A 物販の取消
  • +2 (1バイト): 決済種別
    • 00 通常決済
    • 02 VIEWカード
    • 0B PiTaPa (物販等)
    • 0C 一般のクレジットカード?
    • 0D パスネット/PASMO
    • 1E nimoca (チャージ時のSF還元)
    • 3F モバイルSuicaアプリ(クレジットカード)
  • +3 (1バイト): 入出場種別
    • 00 通常出場および精算以外(新規、チャージ、乗車券類購入、物販等)
    • 01 入場(オートチャージ)
    • 02 入場+出場(SF)
    • 03 定期入場→乗り越し精算出場(SF)
    • 04 定期券面前乗車入場(SF)→定期出場
    • 05 乗継割引(鉄道)
    • 0E 窓口出場
    • 0F バス/路面等の精算
    • 17 乗継割引(バス→鉄道?)
    • 1D 乗継割引(バス)
    • 21 乗継精算(筑豊電鉄 指定駅乗継)
    • 22 券面外乗降?
  • +4〜+5 (2バイト): 年月日 [年/7ビット、月/4ビット、日/5ビット]
  • +6〜+9 (4バイト): 入出場駅コード(鉄道)、停留所コード(バス)、物販情報(物販)
    • 鉄道
      • +6〜+7 (2バイト): 入場駅コード (窓口で新規発行の場合も駅コードあり)
      • +8〜+9 (2バイト): 出場駅コード (新規発行やチャージの場合は 0000)
    • 鉄道(乗車券類購入)
      • +6〜+7 (2バイト): 駅コード
      • +8〜+9 (2バイト): 券売機番号? (00 00が多いが、まれに 01 01 など)
    • バス/路面等
      • +6〜+7 (2バイト): 事業者コード
      • +8〜+9 (2バイト): 停留所コード
    • 物販
      • +6〜+7 (2バイト): 決済時刻 [時/5ビット、分/6ビット、秒÷2/5ビット]
      • +8〜+9 (2バイト): 決済端末のID
  • +A〜+B (2バイト): 残額(LE)
  • +C (1バイト): (不明)
  • +D〜+E (2バイト): 履歴連番
  • +F (1バイト): 地域コード (0=旧国鉄と関東私鉄/バス、1=中部私鉄/バス、2=関西および沖縄私鉄/バス、3=その他地域私鉄/バス)
    • 7〜6 (2ビット): 入場地域コード
    • 5〜4 (2ビット): 出場地域コード(新規やチャージでは0)
    • 3〜0 (4ビット): 未使用 (0)

記録情報の概要

鉄道とバスは専用の処理がなされるが、タクシーは物販の扱いとなる。

電車では、乗車駅と降車駅が記録される。バスでは降車の停留所のみ記録され、乗車時にタッチしたとしてもカード内には乗車の停留所は何も記録されない。

090Fに記録される金額情報は、清算後の最終的なカード残額のみであり、幾ら使用したかの情報は記録されない。従って、前の記録からの引き算をする必要があり、つまり20番目は残高は分かっても21番目のデータがないため使用金額は分からない、ということである。

履歴連番は、おおむね1から始まって奇数になる。書き込む際に、008Bの更新番号が使われるためと思われる。

定期券の場合、この領域は記録されない。予めチャージし、定期券購入時に券面外乗降を許可している場合、乗り越した駅から降車駅までの区間が記録される。乗り越した場合でも、精算機を用いた場合は記録されない。

物販

物販情報は、上位2バイトが決済時刻、下位2バイトが決済端末のIDである。

したがって、このIDを見れば決済箇所が一意に特定できるように思われるが然にあらず、例えばSuica加盟店とPASMO加盟店は独自にIDが降られており重複があるが、その区別をする情報を持たない。

加えて交通系ICカード全国相互利用でさらに衝突が加速したことから、実際にIDから決済箇所を特定することは困難である。

108F 改札入出場履歴情報

108Fデータ形式

1件1ブロック(16バイト)で、最新3件が記録される。入場と出場は別々のブロックとなる。

乗降履歴情報は書き込んだものが最新の値となる方式のため同じ領域に上書きすることができないので、鉄道の場合は入札情報はこの情報領域に書き、出札の際に入札情報を読み取り運賃計算をしてから履歴情報に記載する方法となっている。

主として鉄道が用いる。関東のPASMOエリアのバスは書かないが、関西PiTaPaエリアでは出場を記録することを確認している(詳細後述)。

  • システムコード: 0003
    • サービスコード: 108F (3ブロック)

各ブロックの内容

  • +0 (1バイト): 入出場情報
    • 7 (1ビット): 入出場 (0=出場、1=入場) (EX-ICは常に0)
    • 6〜4 (3ビット): 入出場種類 (0=精算、2=SF、4=定期券)
    • 3〜0 (4ビット): 入出場種類 (0=通常、1=精算、2=割引、4=???)
  • +1 (1バイト): (不明) (定数ではなく、ビット情報の可能性もある)
    • 00=通常?
    • 04=乗継割引(バス→電車乗継割引?)
    • 08=乗継割引(バス→バス乗継割引?)
    • 0C=乗継割引(電車→バス乗継割引?)
    • 40=EX-IC入場?
  • +2〜+5 (4バイト): 改札情報 (090Fと違って地域コードは存在しない)
    • 鉄道
      • +2〜+3 (2バイト): 入出場駅コード
      • +4〜+5 (2バイト): 改札・装置コード
    • バス
      • +2〜+3 (2バイト): 事業者コード
      • +4〜+5 (2バイト): 車両番号等
  • +6〜+7 (2バイト): 年月日 [年/7ビット、月/4ビット、日/5ビット]
  • +8〜+9 (2バイト): 時刻(BCD)
    • 15〜8 (8ビット): 時(BCD)
    • 7〜0 (8ビット): 分(BCD)
  • +A〜+B (2バイト): 精算金額(LE)
  • +C〜+F (4バイト)
    • 鉄道
      • +C〜+F (4バイト): (不明)
    • バス
      • +C〜+D (2バイト): (未使用?)
      • +E〜+F (2バイト): 駅コード/停留所コード

090Fには記録されない金額は、+A〜+Bの精算金額欄に記録されている(但しTOICA圏では記録されない)。金額は精算の際のみ(例えば下車時精算なら下車の際のみ)記録され、それ以外ではこの欄は原則として0が書き込まれる。また下車の場合でも、カード残高不足時にJRの「のりこし精算機」で精算し出場証を発行した場合も、この欄は0円となる。

なお、090Fに108Fの情報を足して不足する情報を補おうとしても、090Fとマッチングさせるための情報を持たないため難易度は高いと思われる。しかしそれでもマッチングをさせなければ、108Fは地域コードを持たないため、駅や停留所を完全に特定できない可能性がある。

鉄道の場合

+2〜+3は090Fと同じ駅コード、+4〜+5には使用した自動改札機のコードが記録される。また+8〜+9には時刻が記録される。

自動改札機のコードと時刻は090Fの履歴にはないので、ここまでの詳細情報は過去3件までということになる。

自動改札機のコードのうち、上位バイトは改札口の番号、下位バイトはその中で1からの連番でBCDとすることが多いようである(10番目は0x0Aではなく0x10とする)。自動改札機にはメンテナンスのためか、たいてい番号が書かれており、その番号と一致するものがカードに記録されることが多いようである。

バスの場合

ここに記録するバスと記録しないバスとに分かれる。

神奈川中央交通など関東のPASMOエリアのバスは書かないが、大阪市営バス京都市営バスなど関西PiTaPaエリアでは出場(降車)情報を記録している。

+2〜+3は事業者コードが記録されるが、サイバネコードでの事業者番号が書かれる場合と、鉄道の駅コードと互換性を持たせたコードを記録する場合とがある。

京阪バスは「0x0E 0x16」、高槻市営バスは「0x0E 0x20」のように事業者番号であるが、大阪市営バスは「0x81 0xXX」などとなりサイバネコードで大阪市営地下鉄に割り当てられたコードの一部が、京都市営バスも同様に「0x8B 0x6x」と京都市営地下鉄に割り当てられたコードの一部が使われている。後者の場合、コードは営業所など何らかの基準ごとに番号があるのだと思われるが未詳である。

+4〜+5は、車両番号である。京阪バスのように独自の番号管理をしている場合はその番号が、さもなくば車両のナンバープレートの4桁がBCDで格納されている。

降車した停留所番号は+E〜+Fに記録されており、090Fと同じ番号となる。

路面電車の場合

サイバネ規格では大きく電車とバスとに分かれているが、路面電車は、殆どの場合バスの扱いとなっている。

例えば、東京都を走る路面電車の都電荒川線は都営バスと同様にバス扱いで精算され、また京都市内を走る嵐電こと京福電気鉄道も、駅コード自体は鉄道仕様であるがカードにはバスとして記録される。

精算金額欄の考え方

Suicaなど前払いのカードはもちろんだが、後払いとなるPiTaPaでも精算金額欄には運賃が記録される。

ここに記録される運賃は、乗り継ぎ割引なども含めて、実際に請求されうる価格である。PiTaPaの場合は追って更に割引が掛かる可能性があるが、ここに記録されるのは月ごとの精算での割引適用前の定価ということになる。

乗車時の精算金額欄は、以前はSuicaが「前引き方式」として初乗り運賃を引いていたが、現在はなくなったため、常に0円となる。従って料金が記録されるのは降車時のみである。

降車時の精算金額欄は、単独で乗降した場合は純粋にその定価である。乗り継ぎ割引をした場合は例外で、最終的な合算価格が記録される。従って、例えば210円の大阪市営バスを乗り継いだ場合、1回目の乗車はバスの画面もカード内も210円だが、2回目の乗車はバスの画面に0円と表示されていてもカード内は2回分の合算で210円と記録される。バスと地下鉄の乗り継ぎ割引などでも同様で、地下鉄に2区乗った後バスに乗れば、240+210−100 → 350円なので、カード内には運賃350円と記録される。

10CB SF入場情報

全2ブロック(32バイト)で、運賃の起点となる駅およびおよび中間改札の情報が記録される。

主として鉄道が入場時に書き込む。関東のPASMOエリアのバスは書かないが、関西PiTaPaエリアの大阪市営バス京都市営バスでは出場時に記録される。

一般に、出場して精算完了時でも内容を消去しないため、精算が完了した後も記録は残ったままだが内容は無効である。

  • システムコード: 0003
    • サービスコード: 10CB (2ブロック)

1ブロック目

  • +0〜+1 (2バイト): 領域1
  • +2〜+3 (2バイト): 領域2
  • +4〜+5 (2バイト): 領域3
  • +6〜+7 (2バイト): 領域4
  • +4〜+F (12バイト): (不明)

2ブロック目

  • +0〜+1 (2バイト): 中間改札年月日 [年/7ビット、月/4ビット、日/5ビット]
  • +2〜+6 (5バイト): 入場中間改札
    • +2〜+3 (2バイト): 時刻(BCD)
    • +4〜+5 (2バイト): 入場駅コード
    • +6 (1バイト): (不明)
  • +7〜+B (5バイト): 出場中間改札
    • +7〜+8 (2バイト): 時刻(BCD)
    • +9〜+A (2バイト): 出場駅コード
    • +B (1バイト): (不明)
  • +C (1バイト): (不明)
    • 7〜6 (2ビット): 地域コード (書き込まれないこともある)
    • 5〜0 (6ビット): 不明
  • +D (1バイト): (不明)
    • 7〜6 (2ビット): 不明 (0〜3全てを確認)
    • 5〜0 (6ビット): 不明 (0)
  • +E〜+F (2バイト): (不明)
用語の所属
乗車券
ICカード乗車券
関連する用語
交通系ICカード全国相互利用
FeliCa

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.01d (17-May-2017)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club