説明

スマートカード用暗号化方法と装置、及び超小型回路を有するスマートカード

【課題】接触型スマートカード又は非接触型スマートカード及びコンビネーション・カード(即ち、接触動作及び非接触動作の2つのモードを有するカード)における
CPUを含むスマートカードにおいて、gxと表記し、モジュロ(modulo)nの計算をする指数計算の結果を使う暗号化方法の高速演算を実現する。
【解決手段】スマートカードにおいて予備計算を行うことで、高速演算を実現する。すなわち、スマートカードのCPU(マイクロプロセッサUC)は前記予備計算を、入出力待機期間に行うものである。前記方法は離散対数に基づくアルゴリズムを使う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、CPUを含むスマートカードにおける暗号化方法及び前処理計算を実行する方法に関する。又、本発明は、入出力インターフェースをして外部装置を通信を行うことができるスマートカードのための超小型回路(microcircuit)に関する。前記超小型回路は、計算タスクを含めタスクの実行のための手段及び、タスクの実行を管理する手段を有する。
【背景技術】
【0002】
本発明は、接触型スマートカード又は非接触型スマートカード及びコンビネーション・カード(即ち、接触動作及び非接触動作の2つのモードを有するカード)に応用することができる。
スマートカードCは、図1に示す超小型回路MC、実質的には入出力インターフェース、マイクロプロセッサUC、オペレーティング・プログラム・メモリM1(例えば、ROM)、アプリケーション・プログラム・メモリM3(例えば、EEPROM)、ワーキング・メモリM2(例えば、RAM)を有している。
【0003】
接触型スマートカードの場合は、入出力インターフェースが非同期送受信ユニットUART及び一般的にカードと同一平面レベルの8個の接点ゾーンを有するカードコネクタCNから形成される。
非接触型スマートカードの場合は、この入出力インターフェースは非同期ユニットUART及びアンテナを有する無線送受信機装置RFから形成されている。
コンビネーション・カードの場合は、このインターフェースは、勿論無線部分RFと接触部分CNを有している。
【0004】
本発明の技術分野は、gと表記し、モジュロ(modulo)nの計算をする指数計算の結果を使うスマートカードの技術分野である。これら計算は、特にサイン又はメセージの認証を行う数多くの応用分野で行われる。
現在使われている最も実際的で信頼の置ける認証又はサインのスキームは公開キー・アルゴリズムである。これらの内一番良く知られて、一番広く使われているものはRSAアルゴリズム(発明者のR.Rivest、A.Shamir及びL.Adlemanに因んで名づけられた)であるが、計算時間の点でコストがかかる。離散対数(discrete logarithm)に基づくスキームは昔から知られており、特に時間を費やす指数計算に関する前処理計算(precomputation)に適合しているので有利であった。
本発明は、数学の構造の如何に拘わらず、離散対数を使用し、公開キー・暗号化アルゴリズムを使う超小型回路カードに応用することができる。その構造として、特に、モジュロnの数の環(リング、但しnは集合znに属する。但し、znはnより小さい正の整数の集合)、有限体GF(q)(但しG(q)はエレメントの数がqで、qは素数又は素数の冪である)のような構造であっても良い。指数gはこれら構造体全てをカバーする。
このような計算を実行する手段の例は、特許出願FR No.FR 2 716 058に開示されている。
【0005】
znの場合、及び、数b、x及びnが通常長さ768から1024ビットを持つ数であって、モジュラー指数タイプ(即ちbx modulo n)の計算を要求する本実施例の場合、処理時間は500−300msの範囲である。この処理時間は、乗法とモジュロn計算の高速演算を行う“暗号化プロセッサー(crypto-processors)”を用いると8ビットのマイクロプロセッサで達成される。16ビット又は32ビットマイクロプロセッサを使えば、暗号化プロセッサのような特別な計算装置によらず、それ自身の性能で上記性能へ到達することができる。
【0006】
これら性能では満足できない場合もある。公共輸送サービスにコンビネーション・カードを使用した例を紹介する。
地下鉄の駅、バスに入る時に、非接触モードで使うカードは、端末が切符を認証したり、割引のタイプを検査したり、及び/又は電子マネーによる支払い(PME)を受領する等を可能にする。この種の取引に対し、一般的にPMEタイプの取引に対して、公開キー暗号化アルゴリズムは、キー管理、標準に対するコンプライアンス、そして最終的にセキュリティーの観点から使用される。
【0007】
このタイプの取引は150ms以内で実行される必要がある。これはユーザが、自然な動作で、改札に組み込んだ端末又はバスの乗り口に設置された端末でカードを通さなければならない時間である。この150msは、暗号化計算のみならず、メッセージの入出力、又暗号化計算以外の処理(それがカードの側であろうと端末の側であろうと)に必要な全時間をカバーしなければならない。端末側の処理及びカード側の処理は並列的には行われない。というのは予め定められたプロトコールに従った順序で処理が進むからである。実際に、端末で必要とされる計算時間を考慮すると、カード側の暗号化処理は大体30ms以内に行う必要がある。
【0008】
現在、この処理速度を達成できるICカード部品は存在しない。その上、非接触モードで動作するカードは、端末から放射するエネルギーをアンテナで集め電源とするもので、消費電力は制限され、処理能力も制限されている。
接触モードの時は、これら制限はさほど厳しくは無い。例えば電子財布による支払いに、顧客は、支払い場所で数秒以上待つ必要はない。しかし、ある種の処理では取引が短く、1秒のオーダが要求される。
【0009】
公開キー暗号化アルゴリズムが行う処理の詳細について、特許FR No. 2 716 058を参照することができる。そこには、離散対数を使ったデジタルサイン及びメッセージ認証が紹介されている。前記特許に記載された方法を要約すると以下の通りである。
【0010】
図2aに示される予備フェーズの後にサイン処理が行われる。
銀行又は輸送会社等の事業者Aは公開キーP、秘密キーSを持ち、数n(nは素数又は素数の合成数)、g(nより小さい、一般的にはかなり小さい整数)及びハッシュ関数hを選び、P、n、gとhを、メッセージにサインをする存在S(例えば支払額を確認するカード)並びに、サインを検査しなければならない存在V(例えば商人が顧客に対して使う端末)に送る。
存在Sは、秘密キーxを選択し、公開キー y=g−x mod n を計算し、事業者Aに送る。すると、事業者Aは、サインの秘密キーSAから作成された証明書Certを存在Sに送り返す。
【0011】
データn、g、x、y、Certは、存在Sのパーマネントデータである。
この予備段階が完了すると、メッセージMにサインする処理が開始する。即ち、図2bに示すSが、Vが示した支払額にサインすることである。メッセージMには特に、支払額m及びこの支払いを要求する端末Vの識別情報が含まれている。
このサイン処理のステップは次の通りである。
a) Sはランダムにkを選ぶ。
b) 証拠要素(witness element):r=g mod n を計算する。
c) A、S及びVについての既知のハッシュ関数hを使ってc=h(r,M)を計算する。
d)最後にs=k+cxを計算する。
e) SはVにこれらの情報(y、Cert,M、c、S)を送る。
Vは、Pを使ってCertを検査し、u=y mod nを計算し、c=h(u、M)を確かめる。もしこれが正しければ、Mのサインは認証される。
【発明の概要】
【発明が解決しようとする課題】
【0012】
この方法の手順の1つに、各取引における証拠rの計算がある。これには指数計算(例えば、r=g mod n)が必要である。この処理にはかなりの時間がかかる。そのため、しばしば、これら証拠の予備計算が考えられる。しかし、これら予備計算は外部装置で行われ、次に、対(k、r)はカードの記憶領域(例えば、M3)に書き込まれれる。このことが、問題になる。
それは、これら証拠要素を計算するのに必要なデータを知ることと、証拠要素自身について知ることとにより、暗号化秘密キーを見つけることが可能になるからである。確かに、rとkを知ることによりc=h(r、M)が導かれ、s=k+cx、kとcを知れば、xが分かる。従って、秘密はそれを保持すると見なされた存在と、大きな信頼を寄せるべきこの外部装置との間で共有されることになる。
又、対(k、r)をカードに送ったり、書き込んだりするトータル・セキュリティを確保することが必要である。
又、もしカードがもはや対(k、r)を持たないとしたら、再入力する必要がある。このためには特別な端末をネットワークに接続せねばならない。
【課題を解決するための手段】
【0013】
本発明の目的はこれらの問題を解決し、カードが対(k、r)を取引時間内に問題なく計算できるようにすることである。
本発明は、スマートカードのマイクロプロセッサ(即ちコンピュータ)において、処理時間の大半が外部事象の待機に使用されているという事実をベースに、考えられたものである。この待機時間に、即ち、カードが端末からの新たな制御信号を待っている間、又はカードが長いメッセージを入出力ポートで送受信している間に、対(r,k)の記憶領域が満杯でなければ、マイクロプロセッサは証拠要素rを計算することができる。
【0014】
図3で示すケースにおいて、この待機時間に焦点を当てることにする。図3では、通信又はコンピュータ・ネットワークRを介して金融会社Fの再チャージ・サーバにつながっている装置Pを使ってコンビネーション・カード型の電子財布(PME)の再チャージを行っている。この装置は、通常のSIMカード(Subscriber Identity Module)に加えPMEような他のカードを受け入れることのできるミニテル(Minitel)端末又はコンピュータ又は携帯電話bi-fent(カード用2スロット付き)であってよい。
装置PにカードPMEを挿入すると、カードは接触モードで動作し、装置Pは、カードPMEに対しカード自身を認証する事を要求する。PMEのサインは、カードPMEに再チャージされる金額と共に、PによりRを介してFに送られる。この送信の開始から、装置Pに挿入されたカードPMEは待機状態になる。
【0015】
ネットワークを介してFのサーバへの送信には5〜10秒要する。FのサーバがPMEのサインを認証し、Fが再チャージ額にサインするには、約2秒かかる。同様に、サインされた再チャージのメッセージをネットワークRを介してFからPへ送信するには、また、5〜10秒要する。従って、カードの待機時間は15秒になる。
Pによる受信及び再チャージ・メッセージのカードPMEによる受信の後、後者はFのサインを検証する。その後、認証が成功裏に終わった場合、カードPMEはその貸方をアップデートする。
この例において、カードが、予備計算を行うのに充分な待機時間を持っていることが分かる。
【0016】
この発明は、スマートカードの暗号化方法を対象とする。該カードはcpuを持ち、前記方法は予備計算を行うもので、該予備計算がスマートカードにより実行され、又該予備計算がcpuの入出力待機時間に行われる事を特徴とするものである。
本方法は、場合によっては、離散対数の計算に基づくアルゴリズムを実行しても良い。
1つの特徴に従って、前記予備計算は指数計算を含んでも良い。
予備計算は、中間的な計算を行ってステップ毎に実行し、この中間的計算結果をスマートカードに記憶すると有利である。
【0017】
本発明のもう1つの対象は、入出力インターフェースIを介して外部と通信でき、計算タスクPCを含むタスク実行手段ETとタスク実行の管理手段GEとを有し、該管理手段GEが、超小型回路上で動作中のタスクの待機時間中の計算タスクPCの起動(activation)のための手段APCを含むことを特徴とするスマートカードのための超小型回路である。
本発明の特徴によると、タスク実行手段ETは、マイクロプロセッサUC、タスク実行管理プログラムをもつプログラムメモリM1及び、アプリケーション・プログラムの形の実行可能なタスクを含むアプリケーション・プログラムメモリM3から構成される。
タスク実行手段ETは、更に暗号化計算回路CPを有する。
【0018】
本発明の他の特徴によると、タスク実行手段ETは指数計算を実行することができる。
本発明による他の実施例によると、計算タスク動作化手段APCは、カードの、入出力スケジューリングの為の回路0を含む。該カードは、前記スケジューリング回路0が入出力を待つ間に、タスク実行手段ETを動作させることができる。
超小型回路が前記計算結果を記憶する手段M3を有することが、好ましい。
本発明の対象は、前記した超小型回路を含む、無接点型及び/又は接点型の超小型回路カードである。
【図面の簡単な説明】
【0019】
【図1】スマートカードの回路の全体図である。
【図2a】サイン方法を使用する前の予備的認証フェーズのフローの概略図である。
【図2b】サイン方法のサイン・フェーズのフローの概略図である。
【図3】電子財布の再チャージ取引のフローの概略図である。
【図4】動作化手段APCの機能を示すフローチャートである。
【図5】本発明に従う予備計算の一例のフローチャートである。
【発明を実施するための形態】
【0020】
発明の他の特徴と効果は、以下の図面に基づき、実施例を用いて、明確に説明する。なお、実施例は一例であって、これに限定されるものではない。
本発明で考えたようなスマートカードの超小型回路は、バスで接続された種々の要素から構成される。これら要素の中で最も重要なものを図1に示す。
中央制御装置UC、即ち超小型回路は、ROMタイプの非揮発性メモリM1に記憶されるプログラムのインストラクションを実行する。従来技術に従うと、この中央制御装置UCはクロック信号H及びインターフェースIを介してリセット信号Rを受信する。カードが接触モードで動作すると、クロック信号H及びリセット信号Rが接点からやってくる。一方、カードが非接触モードで動作すると、これら信号は、無線受信装置RFを介して受信される無線信号で与えられる。
【0021】
この中央制御装置UCは、しばしば指数計算modulo nの高速処理を専門に行う暗号化プロセッサCPの協力を得て処理を行う。
メモリM1は、タスクの実行管理手段GEを含む。該手段は、ある場合にはCOS(“Chip or Card Operating System”超小型回路又はカードのオペレーティング・システム)に含まれる。COSの機能は、入出力の管理を行い、メモリを整理・管理し、アクセスの許可(秘密コード)の管理を行い、リセット信号に対し応答を行い、カードのカスタム化を行う時又は、カードを使用する間、特定のサブプログラムのローディングを実行することである。メモリM1は、又、しばしばアプリケーション・プログラムを持つ。
【0022】
メモリM1のプログラムは、RAMタイプのワーキング・メモリM2又は、レジスタ並びに、回路の電源が切られても消してはならない永久データのためにEEPROMタイプの永久メモリM3を使用する。アプリケーション・プログラムは、しばしばこれらのメモリに蓄積される。
超小型回路は、外部と、数バイトのブロックの形式でメッセージのやりとりを行う非同期送受信ユニットUARTを介して通信を行う。この非同期ユニットUARTは、インターフェースIを介して、入出力シリーズ・リンクESと通信を行う。接触タイプのカードの場合は、メッセージは接触領域を通って通信し、無接点タイプの場合は、メッセージは無線装置RFを通る。
【0023】
超小型回路は、インターフェースIとVss(Vss=0ボルト)に設定されたアース電位により電力の供給を受ける。なお、該インターフェースは、Vcc(Vcc=5ボルト)に設定された供給電圧で電力供給を受けている。接触モードでは、インターフェースIは接触により電力が供給されるが、非接触モードでは無線装置RFから来る無線信号により電力が供給される。
本発明によると、メモリM1に格納されたオペレーティング・システムCOSにおいて、タスクET及び各種アプリケーションを構成する他のタスクの管理手段GEが備えられる。これらタスクの中に、計算タスクPCがある。該計算タスクは、他のタスクに対応する待機時間の間に管理手段GEによって実行させられる。この待機時間はこうして予備計算を行い、計算結果をメモリM3に格納して、有利に使用されることになる。
このために、管理手段GEは、予備計算タスクPCの動作化手段APCを有する。この動作化手段APCはプログラムから構成されており、スケジューリング回路0に組み込まれている。
【0024】
図4に示される動作化手段APCの動作の説明をする。図において、タスク“証拠要素の計算”は実行されている、即ち、証拠要素はステップIで進行している。
外部事象があるとき、言い換えれば、タスク“証拠要素の計算”が計算を実行するために使う待機時間が終了した時(ステップII)で、もし、カードに対する電力供給がカットオフされない(ステップIII )なら、手段APCは、権利があるものの手伝いをする。
【0025】
外部事象が、UARTによる新たなNバイトのメッセージの受信に対応するならば、手段APCはこのメッセージを待っていたタスク(例えば、タスクt1)を手助けする(ステップIV)。
外部事象が、UARTによるN’バイトのメッセージの送信終了に対応するならば、手段APCはこのメッセージを送信したタスク(例えばタスクt2)を手助けする(ステップIV)。
手段APCが手助けしたタスクti(例示したt1またはt2)が終了するか、外部事象が発生し(ステップV)、待機を引き起こす時に、手段APCはこの待機期間にこのタスク“証拠要素の計算”が終わる(証拠要素の記憶領域が満杯になる)まで、又は、外部事象が現れて(ステップV)、初期状態に戻るまで、タスク“証拠要素の計算”に手助けを行う。
【0026】
手段APCは、タスク間のプライオリティ、アプリケーション・タスクを管理する。アプリケーション・タスクは、“証拠要素の計算”タスクに対して常にプライオリティが高い。
証拠要素の計算には、時間がかかる。例えば、数100msかかる。この計算が、優先的なタスクである他のタスクにより、又は電源カットにより割り込まれる時、この計算はステップ毎に行われる。中間結果は記憶領域にセーブされる。この例ではM3である。このように、APC手段がこの“証拠要素の計算”タスクを再び手助けする時には、開始して完了していない計算は、消失しないので、最初から計算をやり直すことなく、再開することができる。即ち、APC手段が再び、前記タスクをまた手助けする時、もしタスクがステップmの間に割り込むと、ステップm−1の結果はセーブされて、計算はステップmから再開される。
【0027】
もし、予め決められたループ数がカウントされていたなら、ステップそれ自体は、基礎的なループ及び、セービング動作を開始するのに使うループカウンタから形成される。具体的には、もしkが300ビットだとすると、計算は各々30ループの10ステップで行う。
【0028】
図5に示すフローチャートの例を使って、証拠要素rを、公式r=g mod nに従って計算する前記プロセスを説明する。
予備的ステップIは計算に先行する:このステップは、セーブされたパラメータ値又はデフォールト値と共に、kを選択し、その後使うパラメータを初期化する手順を含む。計算は、比較、計算、セービング又は記憶動作からなるステップII乃至VIを含むループで行われる。
【0029】
カードが待機期間中にこれら証拠要素の計算を行ってしまうので、取引中に最初にしたサイン方法のステップa)とb)(kの選択とrの計算)に換え、“記憶領域(この記憶領域は、前記した方法と均等な方法に従って満たされている。)から対(k、r)を読み出す”を行う事を可能にする。
カードにより実行される他の残りの計算は単純で高速な計算である。カード側で行う暗号化計算には少なくとも約10msかかるが、必要な性能レベルを容易に達成できる。
【0030】
更に、メモリスペースの節約を可能にする。
実際、kが再生可能な擬似ランダム信号発生器により発生されるならば、kはセーブされる必要は無い。発生器の入力パラメータがセーブされると、メモリスペースの節約になる。
同様に、対(k、r)全体を記憶する必要は無い。g mod nのわずかなビット数を記憶するだけで充分である。その例は特許No.FR 2 752 122に記載されている。

【特許請求の範囲】
【請求項1】
CPUを有するスマートカードが実行する暗号化計算ステップからなり、更に、1つ又は1つ以上の予備計算ステップを行うる暗号化方法であって、
前記予備計算ステップは前記スマートカード自身により実行され、
前記予備計算ステップは前記スマートカードにより動作するセッション時及び前記CPUの入出力待機期間に実行されることを特徴とする暗号化方法。
【請求項2】
前記方法は離散対数計算に基づくアルゴリズムを実行することを特徴とする請求項1記載の暗号化方法。
【請求項3】
前記予備計算が指数計算を含むことを特徴とする請求項1又は請求項2記載の暗号化方法。
【請求項4】
前記予備計算が中間計算をステップ毎に実行し、該中間計算の結果が前記スマートカードに記憶されることを特徴とする請求項1〜3のいずれか1項記載の暗号化方法。
【請求項5】
入出力インターフェース(I)を介して外部装置と通信することのできるスマートカードの為の、計算タスク(PC)を含むタスク実行手段(ET)及びタスク実行管理手段(GE)を有する超小型回路であって、
前記管理手段(GE)が、他のタスクが実行されている待機期間中、計算タスク(PC)を動作化する手段(APC)を有することを特徴とする超小型回路。
【請求項6】
タスク実行手段(ET)が、マイクロプロセッサ(UC)、タスク実行管理プログラムを持つプログラム・メモリ(M1)及び、1つ又は2以上のアプリケーション・プログラムの形で実行可能なタスクを持つアプリケーション・プログラム・メモリ(M3)を有することを特徴とする請求項5記載の超小型回路。
【請求項7】
前記タスク実行手段(ET)が更に暗号化計算回路(CP)を有することを特徴とする請求項6記載の超小型回路。
【請求項8】
前記タスク実行手段(ET)は指数計算を行うことができることを特徴とする請求項5〜7のいずれか1項記載の超小型回路。
【請求項9】
前記計算タスク動作化手段(APC)は、カードの/上に入出力のスケジューリングのための回路(0)を含み、
前記カードは、前記スケジューリング回路(0)が入力又は出力の待機時、前記タスク実行手段(ET)を動作化できることを特徴とする請求項5〜8のいずれか1項記載の超小型回路。
【請求項10】
前記計算結果の記憶手段を有することを特徴とする請求項5〜9のいずれか1項記載の超小型回路。
【請求項11】
請求項5〜10のいずれか1項記載の超小型回路を含むことを特徴とする、非接触型超小型回路を有するカード。
【請求項12】
請求項5〜10のいずれか1項記載の超小型回路を含むことを特徴とする、非接触型超小型回路を有するカード。
【請求項13】
請求項5〜10のいずれか1項記載の超小型回路を含むことを特徴とする、非接触モード又は接触モードで機能する前記超小型回路を有するカード。

【図1】
image rotate

【図2a】
image rotate

【図2b】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−133390(P2012−133390A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2012−45795(P2012−45795)
【出願日】平成24年3月1日(2012.3.1)
【分割の表示】特願2002−500348(P2002−500348)の分割
【原出願日】平成13年5月30日(2001.5.30)
【出願人】(591034154)フランス・テレコム (290)
【Fターム(参考)】