Integrated当ウェブサイトを利用することによりクッキーの使用に同意したことになります。7816、EMVTM、およびGSM11-11の要件をすべてサポートした、マルチプロトコル、低コスト、デュアル、スマートカードインタフェースです。この1つのミクストシグナル周辺ICが、マイクロコントローラと2つの独立したスマートカードとの間のインタフェースのすべての詳細を管理します。このアプリケーションノートでは、スマートカードの若干の基礎技術およびスマートカードと通信を行う方法について解説します。DS8007を使用してDS5002セキュアマイクロプロセッサ搭載したスマートカードとのインタフェースを行うソフトウェアを提供します。概要スマートカードとは何でしょうか?スマートカードとは、一般にはICを内蔵したポケットサイズのカードと定義されます。ICを内蔵していることから、スマートカードはICカード(ICC)と呼ばれることもあります。図1に、典型的な例を示します。多種多様なアプリケーションで使用されているこれらのカードは、磁気ストライプを使用してカードのアカウント情報を格納するおなじみの支払いカード(デビットカードやクレジットカード)に取って代わるものです。支払いアプリケーションにおいてスマートカードへの移行が生じているのは、主として機能性が増大するためであり、特にこのテクノロジによって可能になるセキュリティの向上が要因になっています。したセキュリティ機能については、スマートカード化によるコスト上昇と対比して評価する必要があります。スマートカードの例スマートカードに内蔵されるICは、単純な不揮発性メモリデバイスの場合も、また複雑な動作を実行可能な高度なマイクロコントローラのような場合もあります。単純な不揮発性メモリを支払いカードの磁気ストライプの代わりに使用してデータを格納することができます。したデバイスの多くでは、メモリに外付けのロジックを組み合わせることによって、メモリの一部または全体に対するアクセスを制限しています。スマートカードの真の力は、内蔵マイクロコントローラによってデータ処理や暗号化の機能を実行することができる点にあります。この処理能力によって、セキュリティ機能の強化が可能になります。複雑性が高まるほどカードのコストも上昇します。プロセッサを内蔵したスマートカードのコストが7.00~15.00米ドルの範囲であるのに対し、磁気テープを使用した支払いカードのコストはわずか0.75米ドルという例もあります1。このスマートカードの高コストが原因で、より単純なテクノロジからの移行が広まるのに時間がかかっていますが、セキュリティに対する要求の増大につれて、スマートカードの必要性も高まることになります。DS8007は、マイクロコントローラと2枚の独立したスマートカードとの物理的なインタフェースに必要となるすべての電気信号を提供します。UARTが内蔵されています。チャージポンプと電圧レギュレータによって、2.7V~6.0Vの電源電圧での動作が可能になっており、2枚の独立したスマートカードに対する電源電圧を生成することができます。後者については、それぞれ1.8V、3.0V、または5Vのいずれかに設定することが可能です。マイクロコントローラとの通信は、非多重構成によるデータ伝送または多重構成によるデータとアドレスの伝送を行う標準的な並列8ビットバスによって提供されます。Module)カードにも適用されます。このSIMフォームファクタは支払い端末でも使用されており、支払いシステム固有のデータやアプリケーションの詳細情報を端末に提供します。クレジットカードサイズのデバイスのカード部分は一般にポリ塩化ビニル(PVC)製であり、通常はアカウント番号と、場合によって有効期限が刻印されています。7816シリーズの規格に基づいています。EuroCard®、MasterCard®、およびVisa®の3社からなるコンソーシアム(EMV)によって、スマートカードおよびその支払いシステムへの応用に特化した一連の規格が策定されています。7816の各文書がベースになっています。スマートカードの接点スマートカード上の接点の数、位置、および機能は、前述の規格によって明確に定義されています。標準的なスマートカード上のICの位置および接点のサイズを図2に示します。7816で8個定義されています。これら8個の位置の内、5個が現在EMVのアプリケーションで使用されています。それらの設定の名称と機能を表1に示します。7816ではVPPと定義されていますが、EMV仕様では、このプログラミング電圧は現在のカードでは使用されていません。接点C4およびC8は使用されておらず、物理的に存在する必要もありません。EMV仕様で規定されている個々の接点について、この後さらに詳しく説明します。接点のサイズおよび位置VCC接点(C1)この接点は、カードに電源電圧を供給します。現在では、より低電圧のカードへ段階的な移行が進められています。この当初の仕様だけをサポートするカードはクラスAカードと呼ばれ、2009年6月末までにクラスABまたはクラスABCカードに置き換えられることになります。これらの各カードクラスのVCC仕様は、次の通りです。1.98V、30mA以下DS8007のカードインタフェースには、チャージポンプと電圧レギュレータが内蔵されており、デバイスが2.6V~6.0Vの電源で動作しているとき、3種類のカードクラスのいずれに対しても適切な電圧を供給することができます。I/O接点(C7)スマートカードのI/O接点は、端末からデータを受け取るための入力(受信モード)または端末にデータを送信するための出力(送信モード)として使用されます。受信モードでは、入力が以下の仕様に準拠している場合にカードは有効なデータを認識します。1μs送信モードでは、I/O接点は次の信号レベルを提供します。1.0μsEMV仕様では、I/O接点が送信を行っていない限りスマートカードのI/O接点ドライバは受信モードに設定されると規定しています。CLK接点(C3)CLK接点は、インタフェース先の端末、すなわちDS8007によって供給される入力です。この信号は、処理プロセス中におけるデータ転送のタイミングを制御するために使用されます。周波数範囲は1.0MHz~5.0MHzと規定されています。この接点の電気的仕様は次の通りです。VCC立上り/立下り時間:クロック周期の9%以下RST接点(C2)RST接点は、インタフェース先の端末によって供給されるカードへの入力です。この信号はアクティブローであり、カードの非同期リセットを発生させます。この接点の電気的仕様はCLK接点と同じですが、最大立上りおよび立下り時間は1.0μsです。上記の仕様から分かるように、スマートカードとインタフェースする端末は様々な電源電圧および信号レベルを供給する必要があります。このインタフェース仕様は、カードの任意の2接点間における短絡に端末が耐えることも要求しています。した理由から、多数のディスクリートアナログICを組み合わせて作業を行うよりも、専用のデバイスを使用して必要な電源電圧と信号レベルを供給する方が明らかに有利です。した専用デバイスの1つがDS8007です。これらの機能を提供するために必要なアナログ回路に加えて、完全なカードセッションのサポートに必要なステートシーケンスとタイミングを管理するための、FIFOおよびその他のディジタル制御ロジックも内蔵しています。端末インタフェース要件すべてのカードセッションは、次の各ステップで構成されます。Reset)と呼ばれる文字列が送信されます。この文字列によって、以後のすべての通信で使用する具体的なプロトコル、ビットタイミング、およびデータ転送の詳細を含む、通信の初期設定が確立されます。以後の転送において特定の通信パラメータを変更することが可能ですが、最初の通信条件はATRによって確立します。ATRについては、この後の各セクションで詳しく検討します。個々のキャラクタの詳細スマートカードと端末がインタフェース接続されている間、双方向のI/O端子上で情報のシリアル通信が行われます。Unit)として定義されます。ETUの時間の長さと、CLK接点上で端末によって供給されるクロック信号との間には、直接のリニアな関係が存在します。ATR中のキャラクタのビットタイミングは、イニシャルETUと呼ばれます。このイニシャルETUは、次式で定義されます。(Eq.1)ここで、fはクロック信号の周波数(単位:Hz)です。ATRの後は、ビット当りの時間はカレントETUと呼ばれ、パラメータFおよびDとクロック周波数の関数になります(パラメータFおよびDについては、この後のTA1キャラクタの項でさらに詳しく説明します)。(Eq.2)ここで、fはクロック信号の周波数(単位:Hz)です。キャラクタの最初のビットはスタートビットと呼ばれ、常にローになります。スタートビットより前は、I/Oラインがデフォルトのハイ状態に維持されます。キャラクタの最後のビットはパリティビットで、キャラクタに含まれる1の数の合計が偶数になるように、ソースによってハイまたはローに決まります。このビットパターンの図解を、図3に示します。7816の仕様の中で、カードセッションの通信プロトコルを選択するために4個のビットを使用しています。指定可能な16種類のプロトコルの内、現在は2種類が使用されています。それらは、T=0およびT=1と呼ばれます。どちらのプロトコルも、半二重(一度に一方向)の非同期通信です。T=0プロトコルがキャラクタベースのフォーマットであるのに対し、T=1はブロックベースのフォーマットです。EMV準拠のすべてのスマートカードはT=0またはT=1プロトコルをサポートする必要があり、端末は両方をサポートする必要があります。カードが端末に挿入された直後、すべての端子が「ロー」状態に維持されている間に、カードのVCC接点に電源電圧が印加されます。電圧が安定し、規定の制限内であることを端末が確認した後、端末のI/O接点ドライバが受信モードに設定されて、カードのCLK接点にクロック信号が印加されます。クロック信号の開始から200サイクル以内に、端末は自身のI/Oラインを受信モードにし、カードは自分のI/Oラインを送信モードにします。40,000~45,000クロック周期の間隔を置いて、端末はアクティブハイの信号をカードのRST接点に印加します。その400~40,000クロック周期後、カードは応答としてATRと呼ばれる一連のキャラクタを送信します。ATRには、T=0またはT=1のプロトコル選択を含めて、以後の通信をどのように行うかについての詳細情報が格納されます。プロトコルの指定がない場合は、T=0と見なされます(ATRおよびそこに格納される情報の完全な詳細については、この後で説明します)。Reset)と呼ばれる一連のキャラクタを応答として送信します。これらのキャラクタは、最初のキャラクタであるTSと、その後に続く最大32文字のキャラクタで構成されます。これらのキャラクタが一体となって、セッションの以後の部分でカードとどのように通信を行うかについての情報を端末に提供します。個々のキャラクタについては、この後の各項で説明します。EMV仕様で定義されているATRの内容を、プロトコルT=0については表2に、プロトコルT=1については表3に示します。(3B)または反転(3F)変換を示す。TB1とTC1が存在し、TA1とTD1は存在しない(xは存在するヒストリカルバイトの数を示す)。必要な補助ガードタイムの量を示す。FFという値は特別な意味を持つ(この後のTC1の説明を参照)。(3B)または反転(3F)変換を示す。TB1、TC1、およびTD1が存在し、TA1は存在しない(xは存在するヒストリカルバイトの数を示す)。必要な補助ガードタイムの量を示す。TA2、TB2、およびTC2は存在しない。