JP4951836B2 - Communication system and application program transmission method - Google Patents
Communication system and application program transmission method Download PDFInfo
- Publication number
- JP4951836B2 JP4951836B2 JP2001300752A JP2001300752A JP4951836B2 JP 4951836 B2 JP4951836 B2 JP 4951836B2 JP 2001300752 A JP2001300752 A JP 2001300752A JP 2001300752 A JP2001300752 A JP 2001300752A JP 4951836 B2 JP4951836 B2 JP 4951836B2
- Authority
- JP
- Japan
- Prior art keywords
- application program
- card
- host computer
- terminal device
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Retry When Errors Occur (AREA)
- Stored Programmes (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、たとえば、ICカードで実行可能なアプリケーションプログラムを記憶し前記アプリケーションプログラムを分割して提供する通信システムと、アプリケーションプログラムの送信方法に関するものである。
【0002】
【従来の技術】
集積技術等の発展につれて、CPUとメモリを内蔵したICカードが実用され、注目を集めている。
【0003】
上述のICカードのメモリは、通常、読み出し専用メモリ(ROM:Read Only Memory)、書き換え可能な不揮発性メモリ、たとえば、EEPROM(Electrically Erasable and Programmable Read Only Memory )、およびRAM(Random Access Memory)を含む。
【0004】
近年では、マルチアプリケーション型カードOSと言われるインタプリタを上述のメモリに常駐させた構成のマルチアプリケーション型ICカードが知られている。
このようなインタプリタが搭載されたICカードにおいては、プログラム言語で記述されたプログラムを、たとえば、上述のEEPROMに記憶させることにより、カードにOSを搭載後、さらにカード発行後でも追加、および削除することができる。
【0005】
また、上述のICカードに高度な暗号化技術を持たせた、高いセキュリティ性を有するICカードが知られている。
【0006】
上述のICカードは、その高いセキュリティ性を利用して、たとえば、インターネットや携帯電話等を経由して、商品やコンサートチケットなどを決済して購入する際に用いられる。
【0007】
このICカードでは、たとえば、ICカード内にクレジットまたは電子財布等の働きをするアプリケーションプログラムがEEPROM等に記憶され、それを用いて決済の手続きが行われる。
【0008】
たとえば、コンサートチケットを購入する場合には、上述したICカードに、インターネットや携帯電話等を経由してチケットアプリケーションプログラムをダウンロードさせる。
このチケットアプリケーションプログラムには、たとえば、正当なチケット保有者であることを示す情報や、指定された座席などの情報が含まれている。
そして、このICカードをコンサート会場の入り口で入場券の代わりに提示すると、チケットアプリケーションプログラムにより、たとえば、暗号化技術を用いて、上述の正当なチケット保有者であることを示す情報等の確認が行われる。
このため、上述のセキュリティ性の高いICカードを用いることにより、チケットセンターに出向きチケットを入手する必要がなくなり、利便性が高くなる。
【0009】
【発明が解決しようとする課題】
ところで、上述した従来のマルチアプリケーション型ICカードでは、1つのアプリケーションプログラムをICカード内に登録する場合には、そのアプリケーションプログラムが複数のコンポーネントに分割されてダウンロードされる。
【0010】
たとえば、1つのアプリケーションプログラムはコード部およびデータ部で構成されており、通常、アプリケーションプログラム全体のデータサイズが3〜7KBであり、上述した従来のICカードに対するコマンドのデータ長が1〜255bytesであるために、分割されてICカードにダウンロードされることになる。
【0011】
たとえば、ICカードに携帯電話等の電波を利用してアプリケーションプログラムをダウンロードする場合には、アプリケーションプログラムそのもののデータ量が、決済の手続きの際にやり取りされるデータ量よりも遙に大きく、ダウンロードするのに時間がかかる。
【0012】
そして、電波の受信状態が悪い場合など、アプリケーションプログラムをダウンロードしている途中で、受信しているアプリケーションプログラムのデータが途切れてしまう場合がある。
【0013】
しかしながら、従来のICカードでは、上述した場合には、アプリケーションプログラムの大部分がICカードにダウンロード済であった場合であっても、再度、最初からそのアプリケーションプログラムをダウンロードしなければならないという問題点がある。
また、このため、多くの時間がかかったり、携帯電話等ではより長い時間にわたって電話をかける必要があった。
【0014】
また、ダウロードの途中で、たとえば、ICカードが端末装置から引き抜かれる等の原因により、ダウンロードが中断された場合であっても、同様に、アプリケーションプログラムの大部分がICカードにダウンロード済であった場合であっても、再度、最初からそのアプリケーションプログラムをダウンロードしなければならないという問題点がある。
【0015】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、アプリケーションプログラム等のデータのダウンロードが中断された場合であっても、より短い時間で再度ダウンロードすることができる通信システムおよびアプリケーションプログラムの送信方法を提供することにある。
【0016】
【課題を解決するための手段】
本発明によれば、ホストコンピュータと、当該ホストコンピュータと無線通信により情報を交換可能な端末装置と、当該端末装置に装着され、当該端末装置とデータ転送が可能であり、当該端末装置を介して前記ホストコンピュータから受信したアプリケーションプログラムを実行するICカードとを有する、通信システムであって、
前記ホストコンピュータは、前記ICカードにおいて動作するアプリケーションプログラムを保持しており、
当該アプリケーションプログラムは、コード部とプログラム言語で記述されたデータが収容されるデータ部とで構成されており、
前記コード部には登録済アプリケーション提供識別子(RID)を含むアプリケーション識別子(AID)が記憶されており、
前記ホストコンピュータは、前記端末装置を介した前記ICカードからのアプリケーションプログラムの送信要求に応答して、
前記ICカードへの送信対象のアプリケーションプログラム全体に誤り符号処理を行い、
前記誤り符号処理したアプリケーションプログラムを所望の大きさの複数のコンポーネントに分割し、
前記複数に分割したコンポーネントを無線通信により前記端末装置に送信し、
前記端末装置は、前記ホストコンピュータから送信された前記コンポーネントを受信し、当該受信したコンポーネントを当該端末装置に装着されている前記ICカードに転送し、
前記ICカードは、
前記端末装置から転送された前記コンポーネントを受信する受信手段と、
アプリケーションプログラムを記憶する記憶部と、
信号処理手段と
を有し、
前記信号処理手段は、
前記記憶部に記憶された、前記登録済アプリケーション提供識別子(RID)を含むアプリケーション識別子(AID)を参照して、前記記憶部にアプリケーションプログラムの全てのコンポーネントが記憶されていない場合、未ロードのコンポーネントを送信する要求を前記端末装置を介して前記ホストコンピュータに要求し、
前記受信手段を介して入力された、前記端末装置から転送された複数のコンポーネントを前記記憶部に記憶し、
前記転送された複数のコンポーネントを統合して、前記ホストコンピュータにおいて分割する前の元のアプリケーションプログラムに対応するアプリケーションプログラムを復号し、
前記復号したアプリケーションプログラムに対して誤り符号検出処理を行い、
誤りが検出されない場合、前記受信処理を終了し、
誤りが検出された場合、
所定回数以内は前記ホストコンピュータに再度、そのコンポーネントの送信を要求し、
前記所定回数を越えた場合は、
前記ホストコンピュータからの前記送信を停止し、
前記記憶部に記憶したコンポーネントを前記記憶部から消去する、
通信システムが提供される。
【0017】
好適には、前記ICカードの前記信号処理手段は、
前記受信手段で受信した前記コンポーネントに含まれるアプリケーション識別子(AID)が前記記憶部に記憶されている場合、
アプリケーションプログラムが実行可能か否かをチェックし、
実行可能な場合、前記アプリケーション識別子(AID)にロード済のデータをセットし、
実行不可の場合、有効なコンポーネントを調査し、前記アプリケーション識別子(AID)にロード済のコンポーネントを示す状態を示すデータをセットし、
前記受信手段で受信した前記コンポーネントに含まれる前記アプリケーション識別子(AID)が前記記憶部に記憶されていない場合、
前記アプリケーション識別子(AID)に新規ロード可能のデータをセットし、
前記ホストコンピュータに、前記アプリケーション識別子(AID)を送信する。
【0018】
また好適には、前記ホストコンピュータは、前記送信対象のアプリケーションプログラム全体に暗号化処理を行い、当該暗号化処理後、誤り符号処理を行い、前記ICカードの信号処理手段は、前記統合したアプリケーションプログラムに復号処理を行い、誤り符号処理を行う。
【0019】
また好適には、前記端末装置に前記ICカードが装着されたとき、前記端末装置は装着されたICカードの認証処理を行い、認証処理が正当なICカードについて前記転送処理を行う。
【0020】
上記構成による本発明によれば、たとえば、ホストコンピュータには、ICカードで実行可能なアプリケーションプログラムが記憶されている。
そして、そのアプリケーションプログラムを端末装置を介してICカードに送信する場合には、所定の大きさに分割して送信される。
このとき、アプリケーションプログラムを暗号化してICカードに送信することで、セキュリティ性が高くなる。
【0021】
そして、ICカードの受信手段では、端末装置を介してホストコンピュータにより分割されて送信されたアプリケーションプログラムが受信される。
記憶部では、受信手段で受信された分割されたアプリケーションプログラムが記憶される。
【0022】
そして、受信手段がホストコンピュータにより送信されたアプリケーションプログラムを受信している途中で何らかの理由、たとえば、ホストコンピュータから端末装置への無線通信系統における伝送状態が悪い等の理由により、受信が中断した場合には、信号処理手段では、前記アプリケーションプログラムの正常に受信された部分以外の部分の再送要求を前記受信手段に送信させる。
【0023】
また、信号処理手段では、前記アプリケーションプログラムが正常に受信されない場合には、所定の回数、たとえば、2回、再送要求を送信し、それでも正常に受信されない場合には、長時間に渡り伝送状態が良くないものとして、再送要求を打ち切り、記憶部に記憶されている正常に受信されたアプリケーションプログラムの部分を消去する。
【0024】
また、信号処理手段は、受信手段が全ての暗号化され分割されたアプリケーションプログラムを受信した場合には、暗号化され分割されたアプリケーションプログラムを、統合し復号化する。こうすることにより、よりセキュリティ性が高くなる。
【0025】
また、信号処理手段は、受信手段で分割されたアプリケーションプログラムが受信された場合には、分割されたアプリケーションプログラム毎に正常な構成であるか否かの確認処理を行い、または、受信手段で分割されたアプリケーションプログラムの全てが受信された場合には、アプリケーションプログラム全体が正常な構成であるか否かの確認処理を行う。
こうすることにより、アプリケーションプログラムの伝送途中での誤りや、構成上の誤りをなくすことができる。
【0026】
また本発明によれば、ホストコンピュータと、当該ホストコンピュータと無線通信により情報を交換可能な端末装置と、当該端末装置に装着され、当該端末装置とデータ転送が可能であり、当該端末装置を介して前記ホストコンピュータから受信したアプリケーションプログラムを実行するICカードとを有する、通信システムにおけるアプリケーションプログラムの送信方法であって、
当該アプリケーションプログラムは前記ホストコンピュータに保持されており、
当該アプリケーションプログラムはコード部とプログラム言語で記述されたデータが収容されるデータ部とで構成されており、前記コード部には登録済アプリケーション提供識別子を含むアプリケーション識別子が格納されており、
前記ホストコンピュータは、前記端末装置を介した前記ICカードからのアプリケーションプログラムの送信要求に応答して、
前記ICカードへの送信対象のアプリケーションプログラム全体に誤り符号処理を行い、
前記誤り符号処理したアプリケーションプログラムを所望の大きさの複数のコンポーネントに分割し、
前記複数に分割したコンポーネントを無線通信により前記端末装置に送信し、
前記端末装置は、前記ホストコンピュータから送信された前記コンポーネントを受信し、当該受信したコンポーネントを当該端末装置に装着されている前記ICカードに転送し、
前記ICカードは、
記憶部に記憶された、前記登録済アプリケーション提供識別子(RID)を含むアプリケーション識別子(AID)を参照して、前記記憶部にアプリケーションプログラムの全てのコンポーネントが記憶されていない場合、未ロードのコンポーネントを送信する要求を前記端末装置を介して前記ホストコンピュータに要求し、
前記ホストコンピュータから送信され、前記端末装置を経由して転送された前記コンポーネントを受信し、
前記受信したコンポーネントを前記記憶部に記憶し、
前記転送された複数のコンポーネントを統合して、前記ホストコンピュータにおいて分割する前の元のアプリケーションプログラムに対応するアプリケーションプログラムを復号し、
前記復号したアプリケーションプログラムに対して誤り符号検出処理を行い、
誤りが検出されない場合、前記受信処理を終了し、
誤りが検出された場合、
所定回数以内は前記ホストコンピュータに再度、そのコンポーネントの送信を要求し、
前記所定回数を越えた場合は、
前記ホストコンピュータからの前記送信を停止し、
前記記憶部に記憶したコンポーネントを前記記憶部から消去する、
アプリケーションプログラムの送信方法が提供される。
【0027】
【発明の実施の形態】
図1は、本発明の通信システムの一実施の形態に係るICカードアプリケーションプログラムロード装置を説明するための概略図である。
【0028】
本実施の形態に係るICカードアプリケーションプログラムロード装置1は、図1に示すように、ICカード10、ならびに、情報処理装置としての端末装置20およびホストコンピュータ30を有する。
【0029】
ICカード10は、カード発行会社から発行および管理されて個人が携帯する特定の機能を有するICカードである。
ICカード10は、たとえば、端末装置20を介してホストコンピュータ30からアプリケーションプログラム等のデータをダウンロードして、そのアプリケーションプログラムを実行し所望の処理を行う。また、ICカード10は、複数のアプリケーションプログラムを記憶することが可能である。
【0030】
端末装置20は、ICカード発行会社や、サービスを提供する会社のホストコンピュータ30に、無線等を用いてアクセスし、ホストコンピュータ30と装着されたICカード10との間の通信データを転送する。たとえば、端末装置20は、ICカード10のリーダライタの機能を有する携帯型電話である。
【0031】
また、端末装置20は、ICカード10が装着されると起動し、そして、ICカード10の認証処理、つまり、ICカード10が端末装置20で処理可能か否かの処理を行う。そして、ICカード10が認定された場合には、端末装置20を介して、ICカード10はホストコンピュータ30と通信可能となる。
そして、端末装置20は、ホストコンピュータ30およびICカード10と通信を順次に行いながら、ホストコンピュータ30より送信されたICカード10に対する処理を行う。
【0032】
ホストコンピュータ30は、たとえば、ICカード10および端末装置20からの要求に応じて、アプリケーションプログラム等のデータを、端末装置20を介してICカード10に送信する。たとえば、ホストコンピュータ30は、通信機能を有するパーソナルコンピュータである。
【0033】
具体的には、ホストコンピュータ30は、ICカード10および端末装置20からのアプリケーションプログラムのダウンロード要求に応じて、所望のアプリケーションプログラムを所定の暗号化処理、たとえば、RSA(Rivest-Shamir-Adleman )暗号化処理を行い、後述するように所望の大きさのコンポーネントに分割して送信する。
【0034】
この際、ホストコンピュータ30は、ICカードで分割されたアプリケーションプログラムを統合する際に、統合されたアプリケーションプログラムが正常な構成であるか否かの確認処理をするために、誤り符号を付加する処理を行う。
たとえば、ホストコンピュータ30は、誤り符号を付加する処理として、CRC(Cyclic Redundancy Check )誤り符号方式やBCH(Bose-Chaudhuri-Hocquenghem code )符号方式などの冗長性を付加する処理を行う。
【0035】
また、ホストコンピュータ30は、端末装置20を介してICカード10から送信された要求、たとえば、アプリケーションプログラムの途中のコンポーネントからダウンロードさせる要求に応じて、そのアプリケーションプログラムのコンポーネントを端末装置20を介して、ICカード10に出力する。
【0036】
ICカード10は、図1に示すように、CPU(Central Processing Unit )11、インターフェイス(I/F)12、暗号回路13、RAM14、ROM15、EEPROM16、およびバスBSを有する。
【0037】
CPU11、I/F12、暗号回路13、RAM14、ROM15、およびEEPROM16は、バスBSに接続されている。
【0038】
CPU11は、端末装置20からのコマンド、あらかじめROM15に設定されたコマンド、およびEEPROM16に記憶されているアプリケーションプログラム等に従って、I/F12を介して、端末装置20と適宜通信を行いながら、後述する所望の処理を行う。
【0039】
I/F12は、たとえば、ICカード10が端末装置20に装着された場合に、電力とクロックの供給を受けるとともに、端末装置20とデータの送受信を行う。すなわち、端末装置20から受信した信号をCPU11に出力し、またCPU11により入力された信号を端末装置20に送信する。
【0040】
暗号回路13は、I/F12により受信されたデータを復号化する処理および暗号化処理を行う。たとえば、暗号回路13は不図示の暗号復号化コプロセッサおよび乱数発生器を含む。
たとえば、暗号回路13はI/F12で受信されたRSA暗号化処理されたデータを、たとえばEEPROM16にあらかじめ記憶された復号鍵を用いてRSA復号化処理を行う。
【0041】
RAM14は、たとえば、CPU11によりプログラム等が実行される際の作業エリアとして使用される。ROM15にはあらかじめ定められた初期値やカードID等が記憶されている。
【0042】
また、RAM14、ROM15、およびEEPROM16は、後述するICカード10のメモリシステムを構成する。
【0043】
図2は、図1のICカード10におけるメモリシステムの一例を示す概念図である。
【0044】
ICカード10は、たとえば、図2に示すように、ROM15に格納されたOSカーネル部41、ならびに、EEPROM16に格納され、OSカーネル部41の上のレイヤに配置されたインタプリタ42、第1のアプリケーションプログラム(以後、APとも言う)43−1、第2のアプリケーションプログラム(AP)43−2、処理モジュール44、およびプログラムローダ(以後、PLとも言う)45を有する。
【0045】
OSカーネル部41は、ICカード10のOSのカーネル部でありICカード10のハードウェアに対応して設計され、そのハードウェア資源を管理する。
また、OSカーネル部41は、ICカード10のI/F12を制御し、端末装置20とのデータの入出力を行う。
また、OSカーネル部41は、上層のプログラムからICカード10のハードウェアをアクセスするためのインターフェイスを提供する。
以上の機能に基づいて、OSカーネル部41は上層のプログラムの動作を制御する。
【0046】
また、OSカーネル部41は、ICカード製造会社がICカード発行前にROM15に搭載したもので、書き換えることはできない。
【0047】
インタプリタ42は、たとえば、後述の第1のアプリケーションプログラム43−1および第2のアプリケーションプログラム43−2を実行する時に、ソースコードを逐次、実行形式のコードに変換する。
また、インタプリタ42は、必要に応じて処理モジュール44を呼出し、ICカードのシステムデータを利用し、ICカードのハードウェアをアクセスしながら、ICカードの所定の機能を実現する。
なお、アプリケーションプログラムが、ICチップのCPUの機械語で記述されている場合には、インタプリタ42を動作させる必要がない。
【0048】
第1のアプリケーションプログラム43−1および第2のアプリケーションプログラム43−2は、たとえば、インタプリタ42により解読可能なプログラム言語で記述され、実行されることにより、それぞれさまざまな具体的なサービス、たとえば、決済、チケットの本人確認などの処理を行う。
また、第1のアプリケーションプログラム43−1および第2のアプリケーションプログラム43−2は、インタプリタ42の上位に配置される。
【0049】
処理モジュール44は、OSカーネル部41の多様な機能を、上層のアプリケーションプログラムが利用できるようにする。たとえば、処理モジュール44には、たとえば、暗号化処理ライブラリなどがある。暗号化処理ライブラリは、暗号回路13の暗号化処理および復号化処理の際に参照されるライブラリである。
【0050】
プログラムローダ(PL)45は、たとえば、新たなアプリケーションプログラムをICカード10にダウンロードし、書き換え可能なEEPROM16に記憶するモジュールである。
【0051】
図3は、図1のICカードに搭載されるアプリケーションプログラムの構成を示す模式図である。
【0052】
ICカード10に搭載されるアプリケーションプログラムは、図3に示すように、たとえば、コード部4−1、データ部4−2から構成されている。
【0053】
コード部4−1には、たとえば、アプリケーション識別子AID(Application Identifier)が記載され、たとえば、登録済アプリケーション提供者識別子RIDおよび独立アプリケーション拡張識別子(PIX)から構成される。
【0054】
RIDは、たとえば、ISO7816−5に従って、各アプリケーションプログラム提供者毎に一意に割り当てられる。たとえば、コード部4−1の大きさは、5バイトである。
PIXは、アプリケーションプログラム提供者により任意に設定され、最大11バイトのオプションフィールドである。
【0055】
データ部4−2には、たとえば、所望の機能を実現する、プログラミング言語で記述されたデータが記載される。
【0056】
図4は、図1のホストコンピュータから端末装置を介して送信されるアプリケーションプログラムの状態の一例を示した図である。
【0057】
アプリケーションプログラムは、たとえば、暗号化され、図4に示すように、所望の大きさ、たとえば、それぞれ255bytesのコンポーネント400−1〜400−nに分割されて、ホストコンピュータ30から端末装置20を介してICカード10に送信される。
【0058】
プログラムローダ45は、上述のアプリケーションプログラムを、ホストコンピュータ30から端末装置20を介して送信される、ロード開始コマンド、ロードアプリケーションコマンド、ロード終了コマンドに応じて、EEPROM16に記憶されているプログラムの状態に応じた処理を行い、処理結果をI/F12を介して端末装置20、およびホストコンピュータ30に出力する。
【0059】
具体的には、プログラムローダ45は、ホストコンピュータ30から端末装置20を介して送信された、アプリケーションプログラムのAIDを含むロード開始コマンドが、I/F12を介して受信されると、EEPROM16内に、受信されたAIDと同じAIDを持つアプリケーションプログラムが格納されているか否かを判別する。
そして、プログラムローダ45は、EEPROM16内に、受信されたAIDと同じAIDを持つアプリケーションプログラムが格納されている場合には、新たにアプリケーションプログラムをロード可能であるという、新規ロード可能データ含む返送データをI/F12から、端末装置20を介してホストコンピュータ30に送信させる。
【0060】
また、同一のAIDが存在する場合には、プログラムローダ45は、EEPROM16に記憶されているアプリケーションプログラムが実行可能か否かを判別する。
具体的には、プログラムローダ45は、EEPROM16に、そのアプリケーションプログラムの全てのコンポーネント400が記憶されているか否かが判別される。
そして、プログラムローダ45は、実行可能であると判別された場合には、たとえば、既にロード済であることを示すデータを含む返送データをI/F12から、端末20を介してホストコンピュータ30に送信させる。
【0061】
図5は、図1のICカードのEEPROMに記憶されているアプリケーションプログラムが途中までダウンロードされた状態の一例を示す概念図である。
【0062】
また、プログラムローダ45は、図5に示すように、EEPROM16にアプリケーションプログラムの全てコンポーネント400が記憶されていない場合、具体的には、たとえば、アプリケーションプログラムのコンポーネント400−1〜400−(m−1)までダウンロードされて、コンポーネント400−mのダウンロードの途中で中断された場合には、EEPROM16に、そのコンポーネント400−1〜400−(m−1)を記憶し、残りのコンポーネント400−m〜400−nが未ロードの状態の場合には、コンポーネント400−(m−1)までダウンロードが終了していることを示すデータを含む返送データをI/F12から、端末装置20を介してホストコンピュータ30に送信させる。
【0063】
また、プログラムローダ45は、ホストコンピュータ30から送信され、端末装置20を介して、I/F12でロードアプリケーションコマンドが受信されると、それと共に受信されるコンポーネント400をEEPROM16に記憶させる。
【0064】
また、プログラムローダ45は、端末装置20を介してホストコンピュータ30から送信されたロード終了コマンドがI/F12で受信されて、同時にアプリケーションプログラムの全てのコンポーネントが受信された場合には、分割されたアプリケーションプログラムを統合し、暗号回路13にRSA復号化処理を行わせる。
【0065】
そして、プログラムローダ45は、復号化されたアプリケーションプログラムに対して、構成上の誤りを検出するために、CRC誤り符号検出処理を行い、誤りを検出した場合には、アプリケーションプログラムを再送させるデータを、I/F12から、端末装置20を介してホストコンピュータ30に送信させる。この際、所定の回数、たとえば、2回、再送させるデータを送信した場合には、受信状態が悪いと判断して、EEPROM16に記憶されているダウンロードされたアプリケーションプログラムを消去し、ダウンロードを中止させるデータをI/F12から端末装置20を介してホストコンピュータ30に送信させる。
【0066】
また、プログラムローダ45は、CRC誤り符号検出処理で誤りを検出しない場合には、ダウンロード完了を示すデータを、I/F12から端末装置20を介してホストコンピュータ30に送信させる。
【0067】
上述のようなハードウェア構成およびソフトウェア構成のICカード10は、端末装置20に装着されると、I/F12を介して、端末装置20より電源とクロック信号の提供を受けて起動される。
そして、端末装置20を介して、ホストコンピュータ30からのコマンドに基づいて、ICカード10が処理を行う。
【0068】
次に、上記構成によるICカード10を用いたICカードアプリケーションプログラムロード装置1の動作の概略を図を参照しながら説明する。
【0069】
図6は、本実施の形態に係るICカードアプリケーションプログラムロード装置の動作の一例の概略を示すフローチャートである。
【0070】
ICカード10の所有者が、端末装置20にICカード10を装着することにより、ICカード10および端末装置20の双方で処理が開始され、まず、ICカード10と端末装置20の間で認証処理が行われる。
【0071】
認証処理が終了して、ICカード10がICカードアプリケーションロード装置1で使用されているICカードであると判別されたら、端末装置20から、ICカード10のカードIDを含むデータがホストコンピュータ30に送信される。
【0072】
ホストコンピュータ30では、このカードIDを含むデータが受信され、ICカード10に対する処理が開始される。
【0073】
そして、上述の初期処理が行われた後に、所望のアプリケーションプログラムをダウンロードする処理が行われる。
【0074】
ICカード10に所望のアプリケーションプログラムをダウンロードする処理は、たとえば、図6に示すように、ホストコンピュータ30から端末装置20を介して、AIDの情報を含むロード開始コマンドが送信される(ST31)。
ICカード10では、そのロード開始コマンドが受信される(ST11)。
【0075】
ICカード10では、ロード開始コマンドに含まれるAIDの情報に応じて、プログラムローダ45が所定の処理を行い、その処理結果が返送データとして、I/F12から送信される(ST12)。
ホストコンピュータ30では、端末装置20を介して、その返送データが受信される(ST32)。
【0076】
ホストコンピュータ30では、その返送データに応じてアプリケーションプログラムの送信を行うか否か等の判別が行われ、アプリケーションプログラムを送信する場合には所定の処理を行い、アプリケーションプログラムを含むデータがロードアプリケーションコマンドと共に、端末装置20を介して、ICカード10に送信される(ST33)。
そして、ICカード10では、そのロードアプリケーションコマンドとアプリケーションプログラムが受信される(ST13)。
【0077】
たとえば、具体的には、ホストコンピュータ30では、アプリケーションプログラムにCRC誤り符号訂正処理が行われ、RSA暗号化処理が行われ、そして、図4に示すように、アプリケーションプログラムを所定の大きさのコンポーネントに分割する処理が行われる。
そして、ホストコンピュータ30では、分割されたコンポーネントが、ロードアプリケーションコマンドと共に端末装置20を介してICカード10に送信される。
【0078】
そして、ホストコンピュータ30では、アプリケーションプログラムの全てのコンポーネントを送信後、ロード終了コマンドが、端末装置20を介してICカード10に送信される(ST34)。
ICカード10では、そのロード終了コマンドが受信される(ST14)。
【0079】
ICカード10では、所望のアプリケーションプログラムの全てのコンポーネントが受信されると、分割されたアプリケーションプログラムが統合され、暗号回路13でRSA復号化処理が行われる(ST15)。
【0080】
そして、プログラムローダ45では、復号化されたアプリケーションプログラムに対して、CRC誤り符号検出処理(チェックサム処理ともいう)が行われる(ST16)。
そして、プログラムローダ45では、誤りが検出されない場合には、ダウンロード完了を示すロード状態データがセットされ(ST17)、ステップST21の処理に進む。
【0081】
また、ステップST16の誤り符号検出処理で誤りが検出された場合には、プログラムローダ45では、所定の回数、たとえば、2回、再送させるデータが送信されたか否かが判別され(ST18)、所定の回数、送信された場合には、受信状態が悪いと判断して、EEPROM16に記憶されているダウンロードされたアプリケーションプログラムが消去され、ダウンロードを中止させるデータがセットされ(ST19)、ステップST21の処理に進む。
【0082】
また、ステップST18において、再送させるデータが送信された回数が所定の回数より少ない場合には、アプリケーションプログラムを始めから再送させるデータがセットされ(ST20)、ステップST21の処理に進む。
【0083】
ステップST21において、プログラムローダ45では、上述した処理でセットされたロード状態が、I/F12から、端末装置20を介してホストコンピュータ30に送信される(ST21)。
【0084】
そして、ホストコンピュータ30では、端末装置20を介して、そのロード状態データが受信され(ST35)、アプリケーションプログラムを再送させるロード状態データが含まれている場合には、ステップST31の処理に戻り、ダウンロード処理が始めからやり直される。
また、ダウンロードを中止させるデータおよびダウンロード完了を示すデータが受信された場合には、一連のダウンロード処理を終了する。
【0085】
図7は、図1のICカード10のロード開始コマンドに対する、プログラムローダの処理の一例を示すフローチャートである。
【0086】
ICカード10では、図7に示すように、ホストコンピュータ30から端末装置20を介して送信された、アプリケーションプログラムのAIDを含むロード開始コマンドがI/F12を介して受信されると、プログラムローダ45によりロード開始コマンドからAIDが取得される(ST101)。
【0087】
そして、EEPROM16内に、受信されたAIDと同じAIDを持つアプリケーションプログラムが格納されているか否かの判別が行われる(ST102)。
【0088】
ステップST102の判別において、受信されたAIDと同じアプリケーションプログラムがEEPROM16に格納されていないと判別された場合には、新規ロード可能データがセットされ(ST103)、ステップST12の処理に進む。
【0089】
また、ステップST102の判別において、同一のAIDが存在すると判別された場合には、そのアプリケーションプログラムは実行可能か否かが判別される(ST104)。
【0090】
ステップST104の判別において、実行可能であると判別された場合には、たとえば、既にロード済であることを示すデータがセットされ(ST105)、ステップST12の処理に進む。
【0091】
また、ステップST104の判別において、アプリケーションプログラムが実行可能ではないと判別された場合には、EEPROM16に格納されている有効なコンポーネントが調査される(ST106)。
【0092】
たとえば、ICカード10にアプリケーションプログラムがダウンロードされている途中に、何らかの理由、たとえば、電波の受信状態が悪くデータが受信できなくなった場合や、電源が遮断された場合などの理由で、ダウンロードが中断された場合には、図5に示すように、たとえば、アプリケーションプログラムのコンポーネント400−1〜400−(m−1)までダウンロードされて、コンポーネント400−mのダウンロードの途中で中断された場合には、EEPROM16には、そのコンポーネント400−(m−1)が記憶され、残りのコンポーネント400−m〜400−nが未ロードの状態である。
【0093】
そして、プログラムローダ45では、EEPROM16のアプリケーションプログラムの状態が、たとえば、上述の状態の場合には、ロード済のコンポーネントの状態であるコンポーネント400−(m−1)までダウンロードが終了していることを示すデータがセットされ(ST107)、ステップST12の処理に進む。
【0094】
ステップST12では、上述の処理でセットされたデータを含む返送データがI/F12から、端末装置20を介してホストコンピュータ30に送信される。
【0095】
図8は、図1の端末装置およびホストコンピュータの詳細なアプリケーションプログラムのダウンロード処理の一例を示すフローチャートである。
【0096】
上述したように、図8に示すように、アプリケーションプログラムをICカード10にダウンロードする際に、ホストコンピュータ30から、端末装置20を介して、AIDの情報を含むロード開始コマンドが送信される(ST31)。
【0097】
ICカード10では、ロード開始コマンドに含まれるAIDの情報に応じて、プログラムローダ45が所定の処理を行い、その処理結果が返送データとして、端末装置20を介してホストコンピュータ30に送信される。
ホストコンピュータ30では、端末装置20を介して、その返送データが受信される(ST32)。
【0098】
そして、ホストコンピュータ30では、図8に示すように、その返送データに含まれるデータに応じた処理が行われる。
【0099】
具体的には、ホストコンピュータ30では、返送データに、既にロード済であるというデータが含まれているか否かの判別が行われる(ST301)。
そして、既にロード済であるというデータが含まれていると判別された場合には、ダウンロードの処理を終了する(ST302)。
【0100】
また、ステップST301の判別において、ロード済のデータが含まれていないと判別された場合には、返送データに新規ロードであるというデータが含まれているか否かの判別が行われる(ST303)。
【0101】
新規にロードアプリケーションコマンドが送信され、アプリケーションプログラムのデータが端末装置20を介して、ICカード10に送信される(ST304)。
そして、ステップST34の処理に進む。
【0102】
また、ステップST303の判別において、返送データに新規ロードであるというデータが含まれていないと判別された場合には、返送データにロード済のコンポーネントのデータが含まれているか否かの判別が行われる(ST305)。
【0103】
ステップST305の判別において、返送データにロード済のコンポーネントのデータが含まれていない場合には、返送データには、有効なデータが含まれていないとして、ダウンロードに関する処理を終了する(ST306)。
【0104】
ステップST305の判別において、返送データにロード済のコンポーネントのデータが含まれている場合には、そのデータに基づいて、たとえば、具体的には、返送データにアプリケーションプログラムのm−1番目のコンポーネントまでダウンロード済であるというデータが含まれている場合には、m番目のコンポーネントから終わりのn番目のコンポーネントのデータまでが、ロードアプリケーションコマンドと共に端末装置20を介して送信される(ST307)。
【0105】
そして、ステップST34において、アプリケーションプログラムの全てのコンポーネントが送信されると、ホストコンピュータ30では、ロード状態データが、端末装置20を介して、ICカード10に送信される。
ICカード10では、そのロード終了コマンドが受信され、所望のアプリケーションプログラムの全てのコンポーネントが受信されると、上述した所定の処理が行われ、ロード状態を示すデータが、端末装置20を介してホストコンピュータ30に送信される。
【0106】
そして、ホストコンピュータ30では、端末装置20を介して、ロード状態を示すデータが受信されると(ST35)、そのデータにダウンロードが完了したことを示すデータが含まれているか否かの判別が行われ(ST36)、含まれていない場合には、ダウンロードの中止を示すデータが含まれているか否かの判別が行われ(ST37)、含まれていない場合には、再送のデータが含まれているとして、ステップST31の処理に戻り、ダウンロードの一連の処理が始めから行われる。
【0107】
また、ステップST36の判別において、完了を示すデータが含まれていると判別された場合、および、ステップST37の判別において、ダウンロード中止を示すデータが含まれていると判別された場合には、一連のダウンロードの処理が終了する(ST38)。
【0108】
以上説明したように、本実施の形態によれば、アプリケーションプログラムを所望の大きさに分割し、要求に応じて、ICカード10で実行可能なアプリケーションプログラムを記憶しアプリケーションプログラムを暗号化し、分割してコンポーネント400として提供する端末装置20およびホストコンピュータ30と、その端末装置20およびホストコンピュータ30とアクセスするI/F12と、受信された分割されたコンポーネント400を記憶するEEPROM16と、アプリケーションプログラムを受信中に、受信が中断された場合には、アプリケーションプログラムの正常に受信された部分以外の部分のコンポーネント400の再送要求をI/F12に送信させ、再送要求を所定の回数だけ送信してもアプリケーションプログラムが正常に受信されない場合には、再送要求を打ち切り、EEPROM16が記憶している正常に受信されたアプリケーションプログラムのコンポーネント400を消去し、I/F12が全ての暗号化され分割されたアプリケーションプログラムを受信した場合には、暗号化され分割されたアプリケーションプログラムを統合し復号化し、アプリケーションプログラム全体が正常な構成であるか否かの誤り検出処理を行うプログラムローダ45を動作させるCPU11とを設けたので、アプリケーションプログラム等のデータのダウンロードが中断された場合であっても、より短い時間で再度ダウンロードすることができる。
【0109】
また、アプリケーションプログラムは、暗号化処理されてダウンロードされるので、セキュリティ性が高い。
また、ICカード10では、誤り検出処理が行われるので、アプリケーションプログラムのダウンロードにおいて、誤りが起きにくい。
また、所定の回数、ダウンロードを試行してもアプリケーションプログラムを正常にダウンロードすることができない場合には、受信状態が良くないとして、再送要求を打ち切り、EEPROM16に記憶されたアプリケーションプログラムの部分を削除するので、不確かな受信状態で受信するICカードよりも、アプリケーションプログラムに対する信頼性が高い。
【0110】
なお、本発明は本実施の形態に限られるものではなく、任意好適な種々の改変が可能である。たとえば、本実施の形態では、アプリケーションプログラムのコンポーネントが連続して、ホストコンピュータ30および端末装置20から送信されているとし、中断された途中から再開するとしたが、この形態に限られるものではない。たとえば、アプリケーションプログラムのコンポーネントの順序を特に規定しないでホストコンピュータ30および端末装置20からICカード10に送信させる場合には、ICカード10よりロード途中であることを示すデータとして、全コンポーネントの情報を送信するようにすることで、容易に対応可能である。
【0111】
また、本実施の形態では、分割されたアプリケーションプログラムの全てを受信した場合には、プログラムローダ45により、アプリケーションプログラム全体が正常な構成であるか否かの誤り符号検出処理が行われたが、この形態に限られるものではない。
たとえば、分割されたアプリケーションプログラムを受信した場合に、その分割されたアプリケーションプログラム毎に確認処理、たとえば、誤り符号検出処理を行ってもよい。
【0112】
【発明の効果】
以上説明したように、本発明によれば、アプリケーションプログラム等のデータのダウンロードが中断された場合であっても、より短い時間で再度ダウンロードすることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るICカードアプリケーションプログラムロード装置を説明するための概略図である。
【図2】図1のICカードにおけるメモリシステムの一例を示す概念図である。
【図3】図1のICカードに搭載されるアプリケーションプログラムの構成の一例を示す模式図である。
【図4】図1のホストコンピュータから端末装置を介して送信されるアプリケーションプログラムの状態の一例を示す図である。
【図5】図1のICカードのEEPROMに記憶されているアプリケーションプログラムの状態を示す概念図である。
【図6】本実施の形態のICカードアプリケーションプログラムロード装置の動作の一例の概略を示すフローチャートである。
【図7】図1のICカード10のロード開始コマンドに対する、プログラムローダの処理の一例を示すフローチャートである。
【図8】図1の端末装置およびホストコンピュータの詳細なアプリケーションプログラムのダウンロード処理の一例を示すフローチャートである。
【符号の説明】
1…ICカードアプリケーションプログラムロード装置
4−1…コード部
4−2…データ部
10…ICカード
11…CPU
12…インターフェイス(I/F)
13…暗号回路
14…RAM
15…ROM
16…EEPROM
BS…バス
20…端末装置
30…ホストコンピュータ
41…OSカーネル部
42…インタプリタ
43−1…第1のアプリケーションプログラム(AP)
43−2…第2のアプリケーションプログラム(AP)
44…処理モジュール
45…プログラムローダ(PL)
400−1〜n…コンポーネント[0001]
BACKGROUND OF THE INVENTION
The present invention stores, for example, an application program that can be executed by an IC card and provides the application program by dividing it.Communication system and application program transmission methodIt is about.
[0002]
[Prior art]
With the development of integration technology and the like, an IC card incorporating a CPU and a memory has been put into practical use and attracting attention.
[0003]
The memory of the above-described IC card usually includes a read only memory (ROM), a rewritable nonvolatile memory such as an EEPROM (Electrically Erasable and Programmable Read Only Memory), and a RAM (Random Access Memory). .
[0004]
In recent years, a multi-application IC card having a configuration in which an interpreter called a multi-application card OS is resident in the above-described memory is known.
In an IC card equipped with such an interpreter, a program written in a programming language is stored in, for example, the above-described EEPROM, so that an OS is added to and deleted from the card even after the card is issued. be able to.
[0005]
There is also known an IC card having high security, in which the above-mentioned IC card is provided with advanced encryption technology.
[0006]
The above-described IC card is used when making a purchase by paying for a product, a concert ticket, or the like via the Internet, a mobile phone, or the like, using its high security.
[0007]
In this IC card, for example, an application program that functions as a credit or an electronic wallet is stored in an EEPROM or the like in the IC card, and a settlement procedure is performed using the application program.
[0008]
For example, when purchasing a concert ticket, a ticket application program is downloaded to the above-described IC card via the Internet or a mobile phone.
This ticket application program includes, for example, information indicating that the ticket is a valid ticket holder and information such as a designated seat.
When this IC card is presented instead of an admission ticket at the entrance to the concert venue, the ticket application program confirms the information indicating the above-mentioned valid ticket holder using, for example, an encryption technique. Done.
For this reason, by using the above-described highly secure IC card, it is not necessary to go to the ticket center and obtain a ticket, which increases convenience.
[0009]
[Problems to be solved by the invention]
By the way, in the conventional multi-application type IC card described above, when one application program is registered in the IC card, the application program is divided into a plurality of components and downloaded.
[0010]
For example, one application program is composed of a code part and a data part. Usually, the data size of the entire application program is 3 to 7 KB, and the data length of a command for the above-described conventional IC card is 1 to 255 bytes. Therefore, it is divided and downloaded to the IC card.
[0011]
For example, when an application program is downloaded to an IC card using radio waves from a mobile phone or the like, the data amount of the application program itself is much larger than the amount of data exchanged during the settlement procedure. It takes time.
[0012]
In some cases, such as when the reception state of radio waves is poor, the data of the received application program may be interrupted while the application program is being downloaded.
[0013]
However, in the case of the conventional IC card, in the case described above, even if most of the application program has already been downloaded to the IC card, the application program must be downloaded again from the beginning. There is.
For this reason, it took a lot of time, and it was necessary to make a phone call for a longer time with a mobile phone or the like.
[0014]
Even when downloading is interrupted during downloading, for example, because the IC card is pulled out of the terminal device, the majority of application programs have already been downloaded to the IC card. Even in this case, there is a problem that the application program must be downloaded again from the beginning.
[0015]
The present invention has been made in view of such circumstances, and the object thereof is to download again in a shorter time even when downloading of data such as an application program is interrupted.Communications systemandApplication program transmission methodIs to provide.
[0016]
[Means for Solving the Problems]
According to the present invention, a host computer, a terminal device capable of exchanging information with the host computer by wireless communication, and the terminal device mounted on the terminal deviceAnd data transfer is possible,Executes an application program received from the host computer via the terminal deviceA communication system having an IC card,
The host computer holds an application program that operates on the IC card,
The application program is composed of a code part and a data part in which data described in a program language is stored.
The code part stores an application identifier (AID) including a registered application provision identifier (RID),
The host computerVia the terminal deviceFrom the IC cardofIn response to the application program send request,
To the IC cardPerform error code processing on the entire application program to be sent,
The error code processed application program has a desired size.Split into multiple components,
PluralInThe divided component is transmitted to the terminal device by wireless communication,
The terminal device is transmitted from the host computerAboveReceive the component,The received componentAttached to the terminal deviceAboveTransfer to IC card,
The IC card is
SaidTerminal deviceTransferred fromAboveReceive componentsReceiving meansWhen,
A storage unit for storing application programs;
With signal processing means
Have
The signal processing means includes
When all components of the application program are not stored in the storage unit with reference to the application identifier (AID) including the registered application provision identifier (RID) stored in the storage unit, an unloaded component Request to the host computer through the terminal device,
Input via the receiving means,Storing a plurality of components transferred from the terminal device in the storage unit;
The transferred plurality ofComponentIntegratedCorresponds to the original application program before being divided in the host computerApplication programDecrypt,
SaidFor decrypted application programsPerform error code detection processing,
If no errors are detected,AboveEnd the reception process,
If an error is detected,
Within a predetermined number of times, the host computer is againThatRequest to send the component,
AboveIf you exceed the specified number of times,
From the host computerAboveStop sending,
Stored in the storage unitComponentStorageErase from
A communication system is provided.
[0017]
Preferably, the signal processing means of the IC card is
Received by the receiving meansAboveWhen an application identifier (AID) included in a component is stored in the storage unit,
applicationprogramCheck whether or not
If it can be executed, the loaded data is set in the application identifier (AID).
If not feasible, investigate valid components,In the application identifier (AID)Set data to indicate the state of the loaded component,
Received by the receiving meansAboveIncluded in componentAboveWhen the application identifier (AID) is not stored in the storage unit,
In the application identifier (AID)Set new loadable data,
In the host computer,The application identifier (AID)Send.
[0018]
Preferably, the host computer encrypts the entire application program to be transmitted.After the encryption process,Error code processing is performed, and the signal processing means of the IC card performs decoding processing on the integrated application program to perform error code processing.
[0019]
Preferably, when the IC card is attached to the terminal device, the terminal device performs an authentication process of the attached IC card, and the IC card for which the authentication process is validAbovePerform the transfer process.
[0020]
According to the present invention having the above configuration, for example,Host computerStores application programs that can be executed by the IC card.
And that application programThrough the terminalWhen transmitting to an IC card, it is divided into a predetermined size and transmitted.
At this time, the security is enhanced by encrypting the application program and transmitting it to the IC card.
[0021]
And IC cardReceiving meansThenHost computer via terminal deviceThe application program divided and transmitted by is received.
StorageThenReceiving meansThe divided application program received in is stored.
[0022]
AndReceiving meansButHost computerFor some reason, for example, while receiving the application program sent byIn the wireless communication system from the host computer to the terminal deviceIf reception is interrupted due to poor transmission conditions,Signal processing meansThen, the retransmission request for the part other than the part of the application program received normally is sentReceiving meansTo send to.
[0023]
Also,Signal processing meansThen, if the application program is not normally received, a retransmission request is transmitted a predetermined number of times, for example, twice, and if it is not received normally, the transmission state is not good for a long time. Abort resending request,In memoryErase the part of the application program that has been successfully received.
[0024]
Also,Signal processing meansIsReceiving meansWhen all the encrypted and divided application programs are received, the encrypted and divided application programs are integrated and decrypted. By doing so, security is further enhanced.
[0025]
Also,Signal processing meansIsReceiving meansWhen the application program divided by is received, a process for confirming whether each divided application program has a normal configuration is performed, orReceiving meansWhen all of the application programs divided in (1) are received, a confirmation process is performed as to whether or not the entire application program has a normal configuration.
By doing so, errors during the transmission of the application program and errors in the configuration can be eliminated.
[0026]
According to the present invention, a host computer, a terminal device capable of exchanging information with the host computer by wireless communication, and the terminal device mounted on the terminal deviceAnd data transfer is possible,Executes an application program received from the host computer via the terminal deviceAn application program transmission method in a communication system having an IC card,
The application program is held in the host computer,
The application program is composed of a code part and a data part in which data described in a program language is stored, and the code part stores an application identifier including a registered application providing identifier,
The host computerVia the terminal deviceFrom the IC cardofIn response to the application program send request,
To the IC cardPerform error code processing on the entire application program to be sent,
The error code processed application program has a desired size.Split into multiple components,
PluralInThe divided component is transmitted to the terminal device by wireless communication,
The terminal device is transmitted from the host computerAboveReceive the component,The received componentAttached to the terminal deviceAboveTransfer to IC card,
The IC card is
Referring to the application identifier (AID) including the registered application provision identifier (RID) stored in the storage unit, if not all components of the application program are stored in the storage unit, unloaded components are A request to send to the host computer via the terminal device;
Sent from the host computer,SaidTerminal deviceForwarded viaAboveReceive the component,
The received component is stored in the storage unit.Remember,
The transferred plurality ofComponentIntegratedCorresponds to the original application program before being divided in the host computerApplication programDecrypt,
SaidFor decrypted application programsPerform error code detection processing,
If no errors are detected,AboveEnd the reception process,
If an error is detected,
Within a predetermined number of times, the host computer is againThatRequest to send the component,
AboveIf you exceed the specified number of times,
From the host computerAboveStop sending,
Stored in the storage unitComponentStorageErase from
A method for transmitting an application program is provided.
[0027]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 illustrates the present invention.Communication systemIt is the schematic for demonstrating the IC card application program load apparatus which concerns on one embodiment.
[0028]
The IC card application
[0029]
The
For example, the
[0030]
The
[0031]
The
The
[0032]
For example, in response to a request from the
[0033]
Specifically, the
[0034]
At this time, when integrating the application program divided by the IC card, the
For example, as processing for adding an error code, the
[0035]
Further, in response to a request transmitted from the
[0036]
As shown in FIG. 1, the
[0037]
The
[0038]
The
[0039]
For example, when the
[0040]
The
For example, the
[0041]
For example, the
[0042]
The
[0043]
FIG. 2 is a conceptual diagram showing an example of a memory system in the
[0044]
As shown in FIG. 2, for example, the
[0045]
The
The
The
Based on the above functions, the
[0046]
The
[0047]
For example, when the
Further, the
If the application program is described in the machine language of the CPU of the IC chip, it is not necessary to operate the
[0048]
The first application program 43-1 and the second application program 43-2 are described and executed in a program language decipherable by the
In addition, the first application program 43-1 and the second application program 43-2 are arranged above the
[0049]
The
[0050]
The program loader (PL) 45 is, for example, a module that downloads a new application program to the
[0051]
FIG. 3 is a schematic diagram showing a configuration of an application program mounted on the IC card of FIG.
[0052]
As shown in FIG. 3, the application program mounted on the
[0053]
The code part 4-1 describes, for example, an application identifier AID (Application Identifier), and is composed of, for example, a registered application provider identifier RID and an independent application extension identifier (PIX).
[0054]
The RID is uniquely assigned to each application program provider in accordance with, for example, ISO 7816-5. For example, the size of the code part 4-1 is 5 bytes.
PIX is arbitrarily set by the application program provider and is an optional field of a maximum of 11 bytes.
[0055]
In the data part 4-2, for example, data described in a programming language that realizes a desired function is described.
[0056]
FIG. 4 is a diagram showing an example of the state of the application program transmitted from the host computer of FIG. 1 via the terminal device.
[0057]
The application program is encrypted, for example, and divided into components 400-1 to 400-n each having a desired size, for example, 255 bytes, as shown in FIG. It is transmitted to the
[0058]
The
[0059]
Specifically, when the load start command including the AID of the application program transmitted from the
Then, when an application program having the same AID as the received AID is stored in the
[0060]
If the same AID exists, the
Specifically, the
When it is determined that the
[0061]
FIG. 5 is a conceptual diagram showing an example of a state in which the application program stored in the EEPROM of the IC card in FIG. 1 has been downloaded halfway.
[0062]
Further, as shown in FIG. 5, the
[0063]
Further, when the load application command is received by the I /
[0064]
The
[0065]
Then, the
[0066]
If no error is detected in the CRC error code detection process, the
[0067]
When the
Then, the
[0068]
Next, an outline of the operation of the IC card application
[0069]
FIG. 6 is a flowchart showing an outline of an example of the operation of the IC card application program loading device according to the present embodiment.
[0070]
When the owner of the
[0071]
When the authentication process is completed and it is determined that the
[0072]
The
[0073]
Then, after the above-described initial processing is performed, processing for downloading a desired application program is performed.
[0074]
In the process of downloading a desired application program to the
The
[0075]
In the
The
[0076]
The
Then, the
[0077]
For example, specifically, in the
In the
[0078]
Then, after transmitting all the components of the application program, the
The
[0079]
In
[0080]
Then, the
If no error is detected, the
[0081]
If an error is detected in the error code detection process in step ST16, the
[0082]
In step ST18, if the number of times data to be retransmitted is less than the predetermined number, the data to be retransmitted from the beginning is set (ST20), and the process proceeds to step ST21.
[0083]
In step ST21, the
[0084]
Then, the
In addition, when the data for stopping the download and the data indicating the completion of the download are received, the series of download processing is ended.
[0085]
FIG. 7 is a flowchart showing an example of processing of the program loader in response to the load start command of the
[0086]
In the
[0087]
Then, it is determined whether or not an application program having the same AID as the received AID is stored in the EEPROM 16 (ST102).
[0088]
If it is determined in step ST102 that the same application program as the received AID is not stored in the
[0089]
If it is determined in step ST102 that the same AID exists, it is determined whether or not the application program can be executed (ST104).
[0090]
If it is determined in step ST104 that execution is possible, for example, data indicating that it has already been loaded is set (ST105), and the process proceeds to step ST12.
[0091]
If it is determined in step ST104 that the application program is not executable, valid components stored in the
[0092]
For example, while the application program is being downloaded to the
[0093]
Then, in the
[0094]
In step ST <b> 12, return data including the data set by the above-described processing is transmitted from the I /
[0095]
FIG. 8 is a flowchart illustrating an example of detailed application program download processing of the terminal device and the host computer of FIG.
[0096]
As described above, when the application program is downloaded to the
[0097]
In the
The
[0098]
Then, in the
[0099]
Specifically, the
If it is determined that data that has already been loaded is included, the download process is terminated (ST302).
[0100]
If it is determined in step ST301 that the loaded data is not included, it is determined whether the return data includes data indicating a new load (ST303).
[0101]
A new load application command is transmitted, and data of the application program is transmitted to the
Then, the process proceeds to step ST34.
[0102]
If it is determined in step ST303 that the return data does not include data indicating a new load, it is determined whether the return data includes data of a loaded component. (ST305).
[0103]
If it is determined in step ST305 that the return data does not include the loaded component data, the return data does not include valid data, and the download processing is terminated (ST306).
[0104]
If it is determined in step ST305 that the return data includes the data of the loaded component, for example, based on that data, specifically, the return data includes the m-1th component of the application program. If the data indicating that the data has been downloaded is included, data from the mth component to the data of the last nth component are transmitted together with the load application command via the terminal device 20 (ST307).
[0105]
In step ST34, when all the components of the application program are transmitted, the
In the
[0106]
When the
[0107]
If it is determined in step ST36 that data indicating completion is included, and if it is determined in step ST37 that data indicating download stop is included, The download process ends (ST38).
[0108]
As described above, according to the present embodiment, the application program is divided into a desired size, the application program executable by the
[0109]
In addition, since the application program is downloaded after being encrypted, the security is high.
Further, since error detection processing is performed in the
Also, if the application program cannot be downloaded normally after a predetermined number of attempts, the retransmission request is aborted and the application program portion stored in the
[0110]
Note that the present invention is not limited to the present embodiment, and various suitable modifications can be made. For example, in this embodiment, it is assumed that the components of the application program are continuously transmitted from the
[0111]
In the present embodiment, when all of the divided application programs are received, the
For example, when a divided application program is received, a confirmation process such as an error code detection process may be performed for each divided application program.
[0112]
【The invention's effect】
As described above, according to the present invention, even when downloading of data such as an application program is interrupted, it can be downloaded again in a shorter time.
[Brief description of the drawings]
FIG. 1 is a schematic diagram for explaining an IC card application program loading apparatus according to an embodiment of the present invention.
FIG. 2 is a conceptual diagram showing an example of a memory system in the IC card of FIG.
3 is a schematic diagram showing an example of the configuration of an application program mounted on the IC card of FIG. 1. FIG.
4 is a diagram illustrating an example of a state of an application program transmitted from the host computer of FIG. 1 via a terminal device.
5 is a conceptual diagram showing a state of an application program stored in an EEPROM of the IC card in FIG. 1. FIG.
FIG. 6 is a flowchart showing an outline of an example of the operation of the IC card application program loading device according to the present embodiment;
7 is a flowchart showing an example of processing of a program loader in response to a load start command of the
8 is a flowchart showing an example of a detailed application program download process of the terminal device and the host computer of FIG. 1;
[Explanation of symbols]
1 ... IC card application program loading device
4-1 Code part
4-2 Data section
10 ... IC card
11 ... CPU
12 ... Interface (I / F)
13 ... Cryptographic circuit
14 ... RAM
15 ... ROM
16… EEPROM
BS ... Bus
20 ... Terminal device
30: Host computer
41 ... OS kernel part
42 ... interpreter
43-1: First application program (AP)
43-2 ... Second application program (AP)
44 ... Processing module
45 ... Program loader (PL)
400-1 to n ... component
Claims (5)
前記ホストコンピュータは、前記ICカードにおいて動作するアプリケーションプログラムを保持しており、
当該アプリケーションプログラムは、コード部とプログラム言語で記述されたデータが収容されるデータ部とで構成されており、
前記コード部には登録済アプリケーション提供識別子(RID)を含むアプリケーション識別子(AID)が記憶されており、
前記ホストコンピュータは、前記端末装置を介した前記ICカードからのアプリケーションプログラムの送信要求に応答して、
前記ICカードへの送信対象のアプリケーションプログラム全体に誤り符号処理を行い、
前記誤り符号処理したアプリケーションプログラムを所望の大きさの複数のコンポーネントに分割し、
前記複数に分割したコンポーネントを無線通信により前記端末装置に送信し、
前記端末装置は、前記ホストコンピュータから送信された前記コンポーネントを受信し、当該受信したコンポーネントを当該端末装置に装着されている前記ICカードに転送し、
前記ICカードは、
前記端末装置から転送された前記コンポーネントを受信する受信手段と、
アプリケーションプログラムを記憶する記憶部と、
信号処理手段と
を有し、
前記信号処理手段は、
前記記憶部に記憶された、前記登録済アプリケーション提供識別子(RID)を含むアプリケーション識別子(AID)を参照して、前記記憶部にアプリケーションプログラムの全てのコンポーネントが記憶されていない場合、未ロードのコンポーネントを送信する要求を前記端末装置を介して前記ホストコンピュータに要求し、
前記受信手段を介して入力された、前記端末装置から転送された複数のコンポーネントを前記記憶部に記憶し、
前記転送された複数のコンポーネントを統合して、前記ホストコンピュータにおいて分割する前の元のアプリケーションプログラムに対応するアプリケーションプログラムを復号し、
前記復号したアプリケーションプログラムに対して誤り符号検出処理を行い、
誤りが検出されない場合、前記受信処理を終了し、
誤りが検出された場合、
所定回数以内は前記ホストコンピュータに再度、そのコンポーネントの送信を要求し、
前記所定回数を越えた場合は、
前記ホストコンピュータからの前記送信を停止し、
前記記憶部に記憶したコンポーネントを前記記憶部から消去する、
通信システム。A host computer, a terminal device capable of exchanging information with the host computer by wireless communication, and attached to the terminal device, capable of data transfer with the terminal device, and received from the host computer via the terminal device A communication system having an IC card for executing an application program ,
The host computer holds an application program that operates on the IC card,
The application program is composed of a code part and a data part in which data described in a program language is stored.
The code part stores an application identifier (AID) including a registered application provision identifier (RID),
In response to the application program transmission request from the IC card via the terminal device , the host computer,
Perform error code processing on the entire application program to be transmitted to the IC card ,
The error code processed application program is divided into a plurality of components of a desired size ,
Transmitting the component divided into the plurality to the terminal device by wireless communication;
The terminal apparatus receives the component transmitted from the host computer, to transfer the component to the received to the IC card installed in the terminal device,
The IC card is
Receiving means for receiving the components transferred from the terminal device,
A storage unit for storing application programs;
Signal processing means, and
The signal processing means includes
When all components of the application program are not stored in the storage unit with reference to the application identifier (AID) including the registered application provision identifier (RID) stored in the storage unit, an unloaded component Request to the host computer through the terminal device,
Storing a plurality of components transferred from the terminal device , which are input via the receiving unit, in the storage unit;
Integrating the transferred components and decoding an application program corresponding to the original application program before being divided in the host computer ;
An error code detection process is performed on the decoded application program ,
If no error is detected, it ends the reception process,
If an error is detected,
Within a predetermined number of times, the host computer is requested to send the component again,
When the predetermined number of times is exceeded,
Stop the transmission from the host computer,
Deleting the components stored in the storage unit from the storage unit ;
Communications system.
前記受信手段で受信した前記コンポーネントに含まれるアプリケーション識別子(AID)が前記記憶部に記憶されている場合、
アプリケーションプログラムが実行可能か否かをチェックし、
実行可能な場合、前記アプリケーション識別子(AID)にロード済のデータをセットし、
実行不可の場合、有効なコンポーネントを調査し、前記アプリケーション識別子(AID)にロード済のコンポーネントを示す状態を示すデータをセットし、
前記受信手段で受信した前記コンポーネントに含まれる前記アプリケーション識別子(AID)が前記記憶部に記憶されていない場合、
前記アプリケーション識別子(AID)に新規ロード可能のデータをセットし、
前記ホストコンピュータに、前記アプリケーション識別子(AID)を送信する、 請求項1に記載の通信システム。The signal processing means of the IC card is
If the application identifier included in the component received by the receiving means (AID) is stored in the storage unit,
Check whether the application program can be executed,
If it can be executed, the loaded data is set in the application identifier (AID).
If it is not executable, the valid component is investigated, and data indicating the loaded component is set in the application identifier (AID)
If the application identifier included in the component received by the receiving means (AID) it is not stored in the storage unit,
A new loadable data is set in the application identifier (AID) ,
The communication system according to claim 1, wherein the application identifier (AID) is transmitted to the host computer.
前記ICカードの信号処理手段は、前記統合したアプリケーションプログラムに復号処理を行い、誤り符号処理を行う、
請求項1に記載の通信システム。The host computer performs encryption processing on the entire application program to be transmitted , performs error code processing after the encryption processing ,
The signal processing means of the IC card performs a decoding process on the integrated application program, and performs an error code process.
The communication system according to claim 1.
請求項1〜3のいずれかに記載の通信システム。When the IC card to the terminal device is mounted, the terminal device performs an authentication process of the IC card inserted, performs the transfer processing for the authentication process is valid IC card,
The communication system according to any one of claims 1 to 3.
当該アプリケーションプログラムは前記ホストコンピュータに保持されており、
当該アプリケーションプログラムはコード部とプログラム言語で記述されたデータが収容されるデータ部とで構成されており、前記コード部には登録済アプリケーション提供識別子を含むアプリケーション識別子が格納されており、
前記ホストコンピュータは、前記端末装置を介した前記ICカードからのアプリケーションプログラムの送信要求に応答して、
前記ICカードへの送信対象のアプリケーションプログラム全体に誤り符号処理を行い、
前記誤り符号処理したアプリケーションプログラムを所望の大きさの複数のコンポーネントに分割し、
前記複数に分割したコンポーネントを無線通信により前記端末装置に送信し、
前記端末装置は、前記ホストコンピュータから送信された前記コンポーネントを受信し、当該受信したコンポーネントを当該端末装置に装着されている前記ICカードに転送し、
前記ICカードは、
記憶部に記憶された、前記登録済アプリケーション提供識別子(RID)を含むアプリケーション識別子(AID)を参照して、前記記憶部にアプリケーションプログラムの全てのコンポーネントが記憶されていない場合、未ロードのコンポーネントを送信する要求を前記端末装置を介して前記ホストコンピュータに要求し、
前記ホストコンピュータから送信され、前記端末装置を経由して転送された前記コンポーネントを受信し、
前記受信したコンポーネントを前記記憶部に記憶し、
前記転送された複数のコンポーネントを統合して、前記ホストコンピュータにおいて分割する前の元のアプリケーションプログラムに対応するアプリケーションプログラムを復号し、
前記復号したアプリケーションプログラムに対して誤り符号検出処理を行い、
誤りが検出されない場合、前記受信処理を終了し、
誤りが検出された場合、
所定回数以内は前記ホストコンピュータに再度、そのコンポーネントの送信を要求し、
前記所定回数を越えた場合は、
前記ホストコンピュータからの前記送信を停止し、
前記記憶部に記憶したコンポーネントを前記記憶部から消去する、
アプリケーションプログラムの送信方法。A host computer, a terminal device capable of exchanging information with the host computer by wireless communication, and attached to the terminal device, capable of data transfer with the terminal device, and received from the host computer via the terminal device An application program transmission method in a communication system having an IC card that executes an application program,
The application program is held in the host computer,
The application program is composed of a code part and a data part in which data described in a program language is stored, and the code part stores an application identifier including a registered application providing identifier,
In response to the application program transmission request from the IC card via the terminal device , the host computer,
Perform error code processing on the entire application program to be transmitted to the IC card ,
The error code processed application program is divided into a plurality of components of a desired size ,
Transmitting the component divided into the plurality to the terminal device by wireless communication;
The terminal apparatus receives the component transmitted from the host computer, to transfer the component to the received to the IC card installed in the terminal device,
The IC card is
Referring to the application identifier (AID) including the registered application provision identifier (RID) stored in the storage unit, if not all components of the application program are stored in the storage unit, unloaded components are A request to send to the host computer via the terminal device;
The sent from the host computer, receives the component that is transferred via the terminal device,
Storing the received component in the storage unit ;
Integrating the transferred components and decoding an application program corresponding to the original application program before being divided in the host computer ;
An error code detection process is performed on the decoded application program ,
If no error is detected, it ends the reception process,
If an error is detected,
Within a predetermined number of times, the host computer is requested to send the component again,
When the predetermined number of times is exceeded,
Stop the transmission from the host computer,
Deleting the components stored in the storage unit from the storage unit ;
Application program transmission method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001300752A JP4951836B2 (en) | 2001-09-28 | 2001-09-28 | Communication system and application program transmission method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001300752A JP4951836B2 (en) | 2001-09-28 | 2001-09-28 | Communication system and application program transmission method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003108384A JP2003108384A (en) | 2003-04-11 |
JP4951836B2 true JP4951836B2 (en) | 2012-06-13 |
Family
ID=19121282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001300752A Expired - Fee Related JP4951836B2 (en) | 2001-09-28 | 2001-09-28 | Communication system and application program transmission method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4951836B2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10328238B4 (en) * | 2003-06-24 | 2013-03-14 | Giesecke & Devrient Gmbh | Method for loading smart cards with initialization and / or personalization data |
JP2005100362A (en) * | 2003-08-29 | 2005-04-14 | Canon Inc | Program-rewritable electronic apparatus and program rewriting method |
KR101089383B1 (en) * | 2004-04-06 | 2011-12-02 | 주식회사 비즈모델라인 | Card Terminal for Loading Applicationor Data |
WO2006075576A1 (en) * | 2005-01-11 | 2006-07-20 | Matsushita Electric Industrial Co., Ltd. | Secure device and system for issuing ic cards |
KR101088767B1 (en) * | 2009-04-06 | 2011-12-02 | 주식회사 비즈모델라인 | Method for Processing Application(or Data) |
JP2011003020A (en) * | 2009-06-18 | 2011-01-06 | Toyota Infotechnology Center Co Ltd | Computer system and program starting method |
JP5740646B2 (en) * | 2010-01-12 | 2015-06-24 | 日本電産サンキョー株式会社 | How to download software |
JP2013246672A (en) * | 2012-05-28 | 2013-12-09 | Toppan Printing Co Ltd | Portable recording medium and terminal |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01255990A (en) * | 1988-04-06 | 1989-10-12 | Hitachi Maxell Ltd | Ic card data transmitting system |
JP3923546B2 (en) * | 1995-01-11 | 2007-06-06 | 大日本印刷株式会社 | IC card |
JPH11213111A (en) * | 1998-01-26 | 1999-08-06 | Ntt Data Corp | Data carrier and communication terminal |
JP3768020B2 (en) * | 1998-12-28 | 2006-04-19 | 株式会社エヌ・ティ・ティ・ドコモ | Communication device |
JP3514173B2 (en) * | 1999-07-05 | 2004-03-31 | 日本電気株式会社 | Control device |
JP2001216218A (en) * | 2000-02-01 | 2001-08-10 | Canon Inc | Printing controller, printing system, adapter, printing control method and storage medium |
JP3785299B2 (en) * | 2000-03-16 | 2006-06-14 | 本田技研工業株式会社 | Memory rewriting system for vehicle control device |
-
2001
- 2001-09-28 JP JP2001300752A patent/JP4951836B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003108384A (en) | 2003-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7650503B2 (en) | Memory card | |
JP5521803B2 (en) | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION SYSTEM | |
TWI524275B (en) | Storage device and method of operating a storage device | |
US6988267B2 (en) | Method and device for implementing a downloadable software delivery system | |
US7428992B2 (en) | Secure device and system for issuing IC cards | |
JP4308551B2 (en) | Memory card and host device | |
JP3865629B2 (en) | Storage device | |
CN108156155B (en) | Wireless network-based biometric authentication system, mobile device and method | |
JP2001527675A (en) | IC card delivery key set | |
US11387983B2 (en) | Secure medical apparatus communication | |
US8886121B2 (en) | Communication device, commnunication method, and program | |
WO2002057904A1 (en) | Controller having download function | |
FR3002671A1 (en) | METHOD FOR UPDATING THE SYSTEM FOR OPERATING A SECURE MICROCIRCUIT | |
JP4951836B2 (en) | Communication system and application program transmission method | |
KR20120128158A (en) | Licence issuing system, client terminal, server, and licence issuing method | |
JP5391743B2 (en) | Payment processing security information distribution method, payment processing security information distribution system, center device thereof, server device, payment terminal, and program | |
JP4236830B2 (en) | Storage device with upload function | |
JP4509291B2 (en) | IC card, IC card program update device, and method thereof | |
JP2004070593A (en) | Authentication system, authentication method, and device | |
JP2006119902A (en) | Portable electronic apparatus and operating system for portable electronic apparatus | |
JP5692441B2 (en) | Information processing apparatus, information processing method, and program | |
JP2014059806A (en) | Ic card, portable electronic device, and ic card processor | |
JP4309068B2 (en) | Card data processing device | |
JP2023164669A (en) | Information processing device, server device, communication system, communication method, and program | |
JP3866024B2 (en) | Computer peripheral communication device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080616 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110426 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120214 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120227 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150323 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |