(57)【要約】【課題】スマートカードにおいてメッセージのハッシュを計算する方法を提供する。【解決手段】本発明は、スマートカードと通信する装置においてメッセージのハッシュを計算する方法であり、装置及びスマートカードは、同じハッシュ関数を記憶し、メッセージは、スマートカードによってのみ既知の秘密データと他のデータとを有するデータブロックを含み、本発明は、秘密データのハッシュの計算がスマートカードで行われ、他のデータの全て又は一部のハッシュの計算が装置で行われ、かつ、中間結果が、データのハッシュのハッシュ計算がスマートカード又は装置によって行われるべきか否かにより装置からカード又はその逆に送信されることを特徴とする。【選択図】図１
2011147181.tif 000002
【特許請求の範囲】
【請求項１】
スマートカード（ＣＡＲ）との間で通信を行う装置（ＭＥ）においてメッセージ（ＭＦ）のハッシュを計算する方法であって、前記装置と前記スマートカードは同じハッシュ関数を記憶しており、前記メッセージの残りのデータは公開されるデータ（ＰＤ）であり、
前記メッセージのすべての秘密データ（ＳＤ）は前記スマートカードによってのみ知られており、前記メッセージのすべての秘密データ（ＳＤ）についてのハッシュの計算は前記スマートカードにおいて行い、そして、前記メッセージの残りの公開されるデータ（ＰＤ）の全部又は一部についてのハッシュの計算は前記装置において行うことを特徴とする方法。
【請求項２】
前記メッセージ（ＭＦ）において前記秘密データ（ＳＤ）の次に前記残りの公開されるデータ（ＰＤ）があるときは、前記スマートカードは、当該秘密データ（ＳＤ）を含む全てのブロックのハッシュの計算を行い、その後、対応する中間結果（Ｒ）を前記装置（ＭＥ）へ送り、前記装置（ＭＥ）は該中間結果（Ｒ）及び残りの公開されるデータ（ＰＤ）を使用してハッシュ計算を続行することを特徴とする請求項１に記載の方法。
【請求項３】
前記メッセージ（ＭＦ）において前記残りの公開されるデータ（ＰＤ）の次に前記秘密データ（ＳＤ）があるときは、前記装置（ＭＥ）は、公開されるデータ（ＰＤ）のハッシュの計算を行い、その後、対応する中間結果（Ｒ）及び最後のハッシュブロックの残りの部分（ＲＰ）を前記スマートカードへ送り、前記スマートカードは該中間結果（Ｒ）と最後のハッシュブロックと残りの秘密データ（ＳＤ）とを使用して内部的にハッシュ計算の実行を続行することを特徴とする請求項１に記載の方法。
【請求項４】
メッセージ（ＭＦ）のハッシュを計算するために、スマートカード（ＣＡＲ）と接続できる通信装置（ＭＥ）であって、前記通信装置及びスマートカードは同じハッシュ関数を記憶し、前記メッセージ（ＭＦ）は複数のデータブロックに分割されるとともに秘密データ（ＳＤ）及び残りの公開されるデータ（ＰＤ）を含んでおり、
前記通信装置は、当該通信装置内の処理手段で実行されるプログラムであって、
−メッセージ（ＭＦ）の前記残りの公開されるデータ（ＰＤ）の全て又は一部を前記通信装置でハッシュするハッシュ段階と、
−前記通信装置が前記スマートカードにメッセージ（ＭＦ）の全ての秘密データ（ＳＤ）のハッシュを実行するように要求する要求段階と、
を実行するプログラムを含むことを特徴とする通信装置。
【請求項５】
メッセージ（ＭＦ）のハッシュを計算するために、通信装置（ＭＥ）と接続されるスマートカード（ＣＡＲ）であって、
前記通信装置及びスマートカードは同じハッシュ関数を記憶し、前記メッセージ（ＭＦ）は複数のデータブロックに分割されるとともに、複数の秘密データ（ＳＤ）及び残りの公開されるデータ（ＰＤ）を含んでおり、
前記メッセージの全ての秘密データ（ＳＤ）はスマートカードによってのみ知られており、
前記スマートカードは、前記通信装置の要求があったときにスマートカード上で実行されるプログラムであって、メッセージ（ＭＦ）の全ての秘密データ（ＳＤ）をハッシュする段階を実行するプログラムを含んでいることを特徴とするスマートカード（ＣＡＲ）。
【請求項６】
請求項４記載の通信装置（ＭＥ）及び請求項５記載のスマートカード（ＣＡＲ）を含んでいることを特徴とするシステム（Ｓ）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スマートカードにおいてメッセージのハッシュを計算する方法に関する。以下の本文においては、スマートカードは、秘密データを記憶することができる全ての耐改ざん（耐タンパ性の）装置を指すものとする。
本発明を示すために使用される例は、携帯電話に結合されたＷＩＭ（ＷＡＰアイデンティティモジュール）の例である。このスマートカードはまた、ＳＩＭ（加入者アイデンティティモジュール）スマートカード、又は秘密データを記憶してハッシュ機能を実行することができる他の全てのモジュールとすることができるであろう。
【背景技術】
【０００２】
「ワイヤレス・アプリケーション・プロトコル（ＷＡＰ）」は、無線通信ネットワーク上で作動するアプリケーションを開発するための業界仕様を規定するものである。ＷＡＰフォーラムの意図は、サービスアプリケーションによって使用される一組の仕様を定めることである。無線市場は、非常に急成長を遂げており、新しい顧客及びサービスに達している。オペレータ及び製造業者が高度のサービスにおける課題に対処することができるように、差別化及び高速／柔軟サービス生成ＷＡＰフォーラムは、トランスポート、セキュリティ、トランザクション、セッション、及びアプリケーション層における一組のプロトコルを定める。
【０００３】
ＷＡＰアーキテクチャにおけるセキュリティ層プロトコルは、「無線トランスポート層セキュリティ（ＷＴＬＳ）」又は標準「トランスポート層セキュリティ（ＴＬＳ）」インターネットプロトコルとすることができる。ＷＴＬＳは、ＴＬＳと類似の機能性をもたらすが、より低い帯域幅の通信チャンネルにより適応する。ＴＬＳ層及びＷＴＬＳ層は、トランスポートプロトコル層の上方で作動する。それらは、保護されたトランスポートサービスインタフェースを有するＷＡＰの上位レベル層をもたらし、保護された接続を管理する（例えば、生成及び終了する）ためのインタフェースももたらす。ＷＴＬＳ又はＴＬＳ層の主たる目的は、２つの通信アプリケーション間のプライバシー、データ保全性、及び認証を提供することである。
【０００４】
最適セキュリティのために、セキュリティ機能性のいくつかの部分は、アタッカーが機密データを検索することができないように耐改ざん装置によって実行される必要がある。そのようなデータは、特に、永久秘密鍵であり、これは、クライアント認証と共にＷＴＬＳ又はＴＬＳハンドシェークにおいて使用され、アプリケーションレベルの電子署名を行う（アプリケーションレベルのトランザクションを確認するなど）ためのものである。
【０００５】
特に、メッセージが、ＷＩＭモジュールに結合したモバイル内でハッシュされるべきである時に、その全てのブロックは、ハッシュされるためにモバイルからＷＩＭに転送される。その後、ＷＩＭは、結果を携帯電話に送る。ＷＩＭ実施の例は、スマートカードＣＡＲである。電話においては、それは、「加入者アイデンティティモジュールＳＩＭ」カード又は外部スマートカードとすることができる。問題は、ＷＩＭにおいては、リソースが非常に限られているという点であり、このために、計算には多くの時間が掛かる。
【０００６】
例えば、ＷＴＬＳ及びＴＬＳにおいては、モバイル機器は、サーバに「完了」メッセージと呼ばれるメッセージを送り、これは、鍵交換及び認証処理がモバイル及びサーバ間で成功であったことを確認するために、ハンドシェークの終わりに常にサーバに送られるものである。モバイル機器は、「完了」メッセージで送るべきデータ、及び、サーバから受信すべきデータを計算するためにスマートカードを使用する。そうするために、モバイルＭＥは、「クライアント完了チェック」及び「サーバ完了チェック」指令をスマートカードＣＡＲに出す。「擬似ランダム関数（ＰＲＦ）」を用いて、スマートカードは、セッションマスター秘密及びモバイルから受信したシード値に基づいて要求されたバイト数を計算する。その後、カードは、「完了」メッセージで、モバイルによって使用されるバイトを戻す。「クライアント完了チェック」データを計算するために、モバイルは、以下の入力データパラメータを有する「ＷＩＭ−ＰＨａｓｈ」プリミティブと呼ばれるプリミティブを使用する。
“ｃｌｉｅｎｔ  ｆｉｎｉｓｈｅｄ”＋Ｈａｓｈ（ｈａｎｄｓｈａｋｅ＿ｍｅｓｓａｇｅｓ）
【０００７】
この「Ｈａｓｈ（ｈａｎｄｓｈａｋｅ＿ｍｅｓｓａｇｅｓ）」は、「完了」メッセージを含まずにそれまでに交換された全ての以前のハンドシェークメッセージの連結の「ＳＨＡ−１」及び／又は「ＭＤ５」ハッシュ（プロトコルに依存する）として定義される。その後、プリミティブは、必要とされるデータブロックをモバイルに戻す。
上述の指令及びプリミティブに関する詳細については、規格を参照することができる。
同じように、サーバ完了チェックを計算するために、モバイルＭＥは、以下の入力データパラメータを有する「ＷＩＭ−ＰＨａｓｈ」プリミティブを使用する。
“ｓｅｒｖｅｒ  ｆｉｎｉｓｈｅｄ”＋Ｈａｓｈ（ｈａｎｄｓｈａｋｅ＿ｍｅｓｓａｇｅｓ）
その後、プリミティブは、必要とされるデータブロックをモバイルに戻す。
【０００８】
ＳＳＬにおいては、「完了」メッセージに対してＷＩＭに送られるパラメータは異なる。ＳＳＬにおいて完了チェックを行う時は、以下に対してハッシュを行うことが必要である。
‘ｈａｎｄｓｈａｋｅ＿ｍｅｓｓａｇｅｓ＋Ｓｅｎｄｅｒ＋ｍａｓｔｅｒ＿ｓｅｃｒｅｔ＋ｐａｄ１’
ＷＴＬＳ及びＴＬＳと比較して、Ｈａｓｈは、「ｈａｎｄｓｈａｋｅ＿ｍｅｓｓａｇｅｓ」に加えて、セッション「ｍａｓｔｅｒ  ｓｅｃｒｅｔ」に亘っても計算すべきであることが分る。これは、マスター秘密の値がスマートカードＣＡＲに安全に記憶されており、外部に決して露出されないので、モバイルＭＥがそれを知らないために問題である。このために、’ｈａｎｄｓｈａｋｅ＿ｍｅｓｓａｇｅｓ＋Ｓｅｎｄｅｒ＋ｍａｓｔｅｒ＿ｓｅｃｒｅｔ＋ｐａｄ１’というデータをそれがハッシュされるようにＷＩＭに送る必要がある。それにも関わらず、リソースは、ＷＩＭでは非常に限られており、その結果、スマートカードでの計算には多くの時間が掛かる。
【発明の概要】
【課題を解決するための手段】
【０００９】
本発明の目的は、ＷＩＭにおけるリソースの消費を低減する効率的な方法でメッセージをハッシュすることである。
本発明は、スマートカードと通信する装置においてメッセージのハッシュを計算する方法であり、装置及びスマートカードは、同じハッシュ関数を記憶し、メッセージは、スマートカードによってのみ既知の秘密データと他のデータとを有するデータブロックを含む。本発明によれば、秘密データのハッシュの計算は、スマートカードで行われ、他のデータの全て又は一部のハッシュの計算は、装置で行われる。
【００１０】
中間結果は、データのハッシュのハッシュ計算がスマートカード又は装置によって行われるべきか否かにより、装置からカード又はその逆に送信される。
このようにして、本発明は、装置、特に携帯電話がより強力なプロセッサを有するために通常は計算をより速く行うことができるので、スマートカードでハッシュ関数を計算するのに消費する時間を回避する。
一例として与えられ、添付図面を参照する以下の説明を読むと、本発明を理解することがより容易になるであろう。
【図面の簡単な説明】
【００１１】
【図１】本発明を適用することができるデータ処理システムＳの例を示す図である。
【図２】秘密データを含む異なる形式のメッセージの１つを示す図である。
【図３】秘密データを含む異なる形式のメッセージの１つを示す図である。
【図４】秘密データを含む異なる形式のメッセージの１つを示す図である。
【発明を実施するための形態】
【００１２】
説明を簡素化するために、図面に示す同じ要素は、同じ参照符号を有する。
図１は、システムＳを示す。この例においては、本システムは、ネットワークＲＥＳを通じてサーバＳＥＲＶと通信する携帯電話ＭＥに結合されたスマートカードＣＡＲを含む。
一般的に、スマートカードは、ユーザの識別及び認証に必要とされる情報を記憶かつ処理するために使用される。スマートカードＣＡＲは、クライアント機密データ、特に、鍵及びセッションマスター秘密を記憶する。
【００１３】
スマートカードは、ＷＩＭモジュールとすることができる。ＷＩＭ（ＷＡＰアイデンティティモジュール）は、ＷＡＰフォーラムで標準化されたセキュリティトークンである。モジュールＷＩＭに関する詳細については、この規格を参照することができる。上述のように、ＷＡＰフォーラムＷＩＭ仕様は、ＴＬＳ及びＷＴＬＳと共にかつアプリケーションレベルサービスにおけるＷＩＭの使い方を説明する。
【００１４】
一般的には、上述のように、メッセージが鍵及びマスター秘密を含み、これをＷＩＭモジュールに結合されたモバイルでハッシュすべきである時に、ハッシュ段階を実行するために全てのブロックがモバイルからＷＩＭに転送される。その後、ＷＩＭは、結果をモバイルに送る。鍵及びマスター秘密が関わる全ての演算は、内部的にモジュールＷＩＭで行われる。
一般的に、ハッシュ関数は、固定長のデータ入力に対して作用し、結果は、次の反復に送られる。ハッシュ関数により、データの第１のブロックに関するハッシュが計算され（「ＳＨＡ−１」については６４バイト）、その後、結果を第２のブロックに関するハッシュの計算に送り、全ての入力データが消費されるまでそのように続行される。
【００１５】
この例においては、以下の説明でメッセージＭＦと呼ばれるデータ入力をハッシュしたい場合を考え、データ入力は以下を含む。
“ＰＤ＋ＳＤ”
ただし、「＋」演算子は、連結（concatenation）を意味する。
このデータメッセージＭＦは、以下を有するデータブロック含む。
−「ｍａｓｔｅｒ  ｓｅｃｒｅｔ」データとなり得る秘密データＳＤ、及び
−「ｈａｎｄｓｈａｋｅ＿ｍｅｓｓａｇｅｓ」となり得る他のデータＰＤ。
【００１６】
本発明によれば、モバイルＭＥは、公開されている他のデータＰＤに亘ってハッシュの計算を始めることができる。この計算の結果は、中間結果Ｒを構成する。モバイルＭＥは、中間結果Ｒ及び残りの秘密データＳＤをスマートカードＣＡＲに送る。スマートカードは、中間結果Ｒ、残りの秘密データＳＤ、及びスマートカードＣＡＲに内部的に保持された付加的なデータ（例えば、「ｍａｓｔｅｒ＿ｓｅｃｒｅｔ」）を使用してハッシュ計算を内部的に続行する。計算が終了した状態で、スマートカードは、対応する結果をモバイルＭＥに送る。
【００１７】
従って、一般的に、本発明によれば、秘密データＳＤの次に他のデータＰＤがメッセージＭＦ（図４を参照）にある場合、スマートカードは、秘密データＳＤを含む全てのブロックのハッシュを計算し始め、その後、対応する中間結果Ｒを中間結果Ｒ及び残りのデータＰＤを使用してハッシュ計算を続行するＭＥに送る。例えば、秘密データを含むデータＳＤＣは、スマートカードでハッシュされる。反対に、データＰＤの次に他のデータ（ＳＤ）（図３を参照）がある場合、モバイルＭＥは、データＰＤのハッシュを計算し始め、その後、対応する中間結果Ｒと最後のハッシュブロックの残りの部分ＲＰとを、中間結果Ｒと最後のハッシュブロックと残りのデータＳＤとを使用して内部的にハッシュ計算を続けるスマートカードに送る。
有利な態様では、ブロックが秘密データＳＤを含む部分と他のデータＰＤを含む別の部分とを有する場合、スマートカードは、このブロックのハッシュを計算する。このようにして、モバイルＭＥとスマートカードＣＡＲの間のデータの転送が減少する。
【００１８】
本発明はまた、他のプリミティブに対してモバイルＭＥとスマートカードＣＡＲの間で交換される指令の同じ慣例を使用するために、中間結果Ｒがスマートカードに送られる方法を公式化する。この例においては、モバイルＭＥは、「ＷＩＭ  ＭＳＥ−Ｓｅｔ」指令と共に、ハッシュされた中間結果Ｒ及び必要に応じて他のデータを送ることになる。これらのパラメータは、スマートカードＣＡＲにおいて新たに定義された「ＳＳＬセキュリティ環境」に置かれることになる。この例においては、ＳＳＬセキュリティ環境は、「ＭＳＥ−ｓｅｔ」指令を通じてこれらのパラメータの受理を実施することになり、この指令は、「完了」メッセージを計算するための「ＰＳＯ」指令を呼び出す前に呼び出されるべきである。
この例においては、装置は、「移送層セキュリティ」プロトコルＳＳＬ（保護ソケット層）を実施し、スマートカードは、「ＷＡＰアイデンティティモジュール（ＷＩＭ）」である。より具体的には、メッセージＭＦは、ＳＳＬプロトコルにおいては「完了」と呼ばれる。秘密データＳＤは、ＳＳＬセッションマスター秘密である。
【００１９】
本発明はまた、通信装置ＭＥに関し、この装置は、
−他のデータＰＤの全て又は一部が通信装置でハッシュされるハッシュ段階と、
−通信装置がスマートカードに全ての秘密データＳＤのハッシュを実行するように要求する要求段階と、
を実行するためのプログラムを含むことを特徴とする。
本発明はまた、スマートカードＣＡＲに関し、スマートカードＣＡＲは、通信装置ＭＥによって要求された時に秘密データＳＤをハッシュする段階を実行するためのプログラムを含むことを特徴とする。
【００２０】
以上のソリューションの主たる利点は速度である。ＷＩＭにファイルのデータ全体を書込み、その後、ＷＩＭにそれを読み込ませてハッシュさせると、より時間が掛かることになる。速度は、ハンドシェークにおいて非常に重要であり、それを最適化することは非常に重要である。保護されたセッションを確立するために掛かる時間が数秒を超える場合、それは、ユーザにとってあまり便利ではない。他の利点は、特定のプリミティブに対して大きなデータブロックをＷＩＭに記憶する必要性を回避することである。本発明は、効率的な方法で、かつＷＩＭに記憶するための「ｈａｎｄｓｈａｋｅ＿ｍｅｓｓａｇｅｓ」データブロック全体を送る必要もなく、ＳＳＬに対してＷＩＭモジュールによって「完了」メッセージを計算するためのソリューションを形成する。例えば、ＷＴＬＳにおいては、安全なセッションを保護することは、比較的長期に亘り、数日になり得る。本発明は、計算上及び大規模なデータ転送のために比較的重い頻繁な完全ハンドシェークを回避することになる。
勿論、本発明は、ＳＳＬに限定されるものではなく、他の技術分野でも使用することができる。
【符号の説明】
【００２１】
Ｓ  システム
ＲＥＳ  ネットワーク
ＭＥ  携帯電話
ＳＥＲＶ  サーバ
ＣＡＲ  スマートカード
【図１】
2011147181.tif 000003
【図２】
2011147181.tif 000004
【図３】
2011147181.tif 000005
【図４】
2011147181.tif 000006