(57)【要約】【課題】暗号化のもとになるデータと暗号化データとの対応関係が、不正な方法で傍受される蓋然性を低減し、セキュリティを向上させる。【解決手段】リーダライタ装置からＩＣカードに対して、平文データを含む暗号化コマンド（ａ）　を送信し、ＩＣカード内で暗号化処理を行わせ、暗号文をレスポンスとして返信させる。このとき、ＩＣカード内で、得られた暗号文を分割して複数のブロック２１〜２３を作成し、これらを複数のレスポンスに分散させて返信させる。リーダライタ装置からは、全ブロックが返信されるまで、返信要求コマンド（ｃ）　，（ｅ）　を与えるようにする。ＩＣカードは、返信要求コマンドに対するレスポンス（ｄ）　，（ｆ）　に、残りのブロックを含ませて返信させる。ブロックの分割数や各ブロックのデータ長はランダムに決定するようにし、返信順もランダムに決定する。【選択図】　　　　図５
2004040622.tif 000002
【特許請求の範囲】
【請求項１】
暗号化処理の対象となる第１のデータに基いて、秘密のアルゴリズムを用いた暗号化演算を行うことにより、第２のデータを作成する処理を行う暗号処理システムであって、
内部に前記秘密のアルゴリズムを記憶し、外部から与えられた第１のデータに対して前記秘密のアルゴリズムに基づく演算を実行することにより、当該第１のデータに対応した第２のデータを作成する機能をもった暗号化装置と、
前記暗号化装置に接続することができ、暗号化処理の対象となる第１のデータを用意する機能と、用意した第１のデータを前記暗号化装置に送信する機能と、前記暗号化装置の内部で作成された第２のデータを受信する機能と、を有するデータ処理装置と、
を備え、
前記暗号化装置と前記データ処理装置との間の情報のやりとりは、前記データ処理装置から前記暗号化装置に対して所定のコマンドを送信する送信処理と、前記暗号化装置から前記データ処理装置に対してコマンドに応じたレスポンスを返信する返信処理と、を交互に実行することによりなされるように構成されており、
前記データ処理装置は、暗号化処理の対象となる第１のデータを含んだ「暗号化コマンド」を前記暗号化装置に対して送信し、これに応じて前記暗号化装置から返信されてくるレスポンスを受信する第１の能動処理と、第２のデータの返信を要求するための「返信要求コマンド」を前記暗号化装置に対して送信し、これに応じて前記暗号化装置から返信されてくるレスポンスを受信する第２の能動処理と、受信した複数のレスポンスに含まれているデータを合成することにより第２のデータを組み立てる合成処理と、を行う機能を有し、
前記暗号化装置は、前記「暗号化コマンド」が送信されてきたときに、当該コマンドに含まれている第１のデータに対して前記秘密のアルゴリズムに基づく演算を実行することにより、当該第１のデータに対応した第２のデータを作成し、当該「暗号化コマンド」に応じたレスポンスとして、作成した前記第２のデータを全く含まないかあるいはその一部のみを含む所定のレスポンスを返信する第１の受動処理と、前記「返信要求コマンド」が送信されてきたときに、当該「返信要求コマンド」に応じたレスポンスとして、作成した前記第２のデータの一部のみを含む所定のレスポンスを返信する第２の受動処理と、を行う機能を有することを特徴とする暗号処理システム。
【請求項２】
請求項１に記載の暗号処理システムにおいて、
データ処理装置が、第１のデータとして、暗号化処理の対象となる平文データを用意する機能を有し、合成処理により得られた第２のデータを、前記平文データに対する暗号文データとして取り扱う機能を有することを特徴とする暗号処理システム。
【請求項３】
請求項１に記載の暗号処理システムにおいて、
データ処理装置が、第１のデータとして、デジタル署名の対象となる所定のメッセージデータを用意する機能を有し、合成処理により得られた第２のデータを、前記メッセージデータに対する個人認証用のデジタル署名として取り扱う機能を有することを特徴とする暗号処理システム。
【請求項４】
請求項１〜３のいずれかに記載の暗号処理システムにおいて、
ＩＣカードを暗号化装置として用い、当該ＩＣカードにアクセスする機能をもったリーダライタ装置およびこのリーダライタ装置を制御するためのコンピュータをデータ処理装置として用いたことを特徴とする暗号処理システム。
【請求項５】
請求項１〜３のいずれかに記載の暗号処理システムにおいて、
クライアントコンピュータを暗号化装置として用い、このクライアントコンピュータにインターネットを介して接続されたサーバコンピュータをデータ処理装置として用いたことを特徴とする暗号処理システム。
【請求項６】
請求項１〜５のいずれかに記載の暗号処理システムにおいて、
暗号化装置が、作成した第２のデータを複数ｎ個のブロックに分割し、ｎ個の各ブロックをｎ回のレスポンスに分けてデータ処理装置に返信する処理を行うことを特徴とする暗号処理システム。
【請求項７】
請求項６に記載の暗号処理システムにおいて、
暗号化装置が、ブロックの分割数ｎおよび各ブロックのデータ長を、ランダムに決定することを特徴とする暗号処理システム。
【請求項８】
請求項７に記載の暗号処理システムにおいて、
暗号化装置が、ランダムに決定した分割数ｎおよび各ブロックのデータ長を示す情報を、いずれかのレスポンスに含ませてデータ処理装置に返信する機能を有し、
データ処理装置が、前記情報に基いて第２のデータの入手を行う機能を有することを特徴とする暗号処理システム。
【請求項９】
請求項６〜８のいずれかに記載の暗号処理システムにおいて、
暗号化装置が、ｎ個の各ブロックの順序をランダムに入れ替える処理を行い、このｎ個の各ブロックを、入れ替えた後の順序で、個々のレスポンスに含ませてデータ処理装置に返信する処理を行う機能を有し、かつ、入れ替えた後のブロック順を示す情報を、いずれかのレスポンスに含ませてデータ処理装置に返信する機能を有し、
データ処理装置が、前記情報に基いて第２のデータの組み立てを行う機能を有することを特徴とする暗号処理システム。
【請求項１０】
請求項８または９に記載の暗号処理システムにおいて、
暗号化装置が、分割数ｎを示す情報、各ブロックのデータ長を示す情報、入れ替えた後のブロック順を示す情報の少なくとも１つを、「暗号化コマンド」に応じたレスポンスに含ませて返信することを特徴とする暗号処理システム。
【請求項１１】
請求項１〜１０のいずれかに記載の暗号処理システムにおいて、
暗号化装置が、第１の受動処理として返信する「暗号化コマンドに応じたレスポンス」または第２の受動処理として返信する「返信要求コマンドに応じたレスポンス」に、作成した第２のデータとは無関係なダミーデータを含ませることを特徴とする暗号処理システム。
【請求項１２】
請求項１〜１１のいずれかに記載の暗号処理システムにおいて、
データ処理装置が、第２の能動処理として送信する「返信要求コマンド」に、意味のないダミーデータを含ませることを特徴とする暗号処理システム。
【請求項１３】
請求項１〜１２のいずれかに記載の暗号処理システムの一構成要素をなすデータ処理装置。
【請求項１４】
コンピュータを請求項１３に記載のデータ処理装置として機能させるためのプログラムおよび当該プログラムが記録されたコンピュータ読取り可能な記録媒体。
【請求項１５】
請求項１〜１２のいずれかに記載の暗号処理システムの一構成要素をなす暗号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は暗号処理システムに関し、特に、ＩＣカードなどの携帯型の暗号化装置を利用した暗号処理システムに関する。
【０００２】
【従来の技術】
インターネットを中心とする世界的規模のネットワーク環境が広まったことにより、社会生活上の様々な分野において、データの暗号化が必要になってきている。たとえば、個人を認証するための方法として、従来の署名に代えて、デジタル署名の利用が普及し始めているが、このデジタル署名にも暗号化の技術が用いられている。すなわち、署名の対象となるメッセージデータについてのデジタル署名は、当該メッセージデータに対して、秘密データを用いた所定の秘密アルゴリズムに基く暗号化演算を行うことにより作成される。デジタル署名を作成するための暗号化演算には、公開鍵暗号方式が用いられており、作成されたデジタル署名からは秘密データを求めることはできない。したがって、デジタル署名を入手した第三者が、このデジタル署名に基づいてもとの秘密データを知得することはできない配慮がなされている。しかしながら、秘密データ自体が不正な手段で読み出されてしまうと、デジタル署名の偽造が可能になってしまう。このため、秘密データを格納し、この秘密データを用いてデジタル署名を作成する暗号化装置としては、可能な限りセキュリティの高い装置を用いるのが好ましい。
【０００３】
このような理由から、デジタル署名などの個人用の暗号化処理を行うのに適した暗号化装置として、現在、ＩＣカードが広く利用されるようになってきている。個人個人にＩＣカードを配付し、このＩＣカード内に各個人用の秘密データを格納するようにすれば、秘密データを十分なセキュリティの下に管理することが可能になる。暗号化装置として機能するＩＣカード内には、格納された秘密データを利用した所定のアルゴリズムに基づく暗号化演算プログラムが組み込まれており、暗号化演算はすべてＩＣカードの内部で実行されることになる。暗号化の対象となる第１のデータは、データ処理装置として機能するコンピュータ側で用意し、これをリーダライタ装置を介してＩＣカードへと送信すればよい。ＩＣカードは、リーダライタ装置を介して与えられた第１のデータに対して内部で所定の暗号化演算を実行し、作成した第２のデータを再びリーダライタ装置を介してコンピュータ側へと返信する。
【０００４】
【発明が解決しようとする課題】
上述したＩＣカードを利用した暗号処理システムでは、暗号化演算に必要な秘密データや秘密のアルゴリズムはすべてＩＣカード内に格納され、不正な方法で外部に読み出されることのないような十分なセキュリティ対策が講じられている。しかしながら、データ処理装置として機能するコンピュータと、暗号化装置として機能するＩＣカードと、の間の通信が傍受されると、秘密データや秘密のアルゴリズム自体が暴露されることはないものの、「特定の平文データに対して、特定の暗号文データが得られた」という事実は外部に漏れてしまうことになる。このような通信傍受は、リーダライタ装置とＩＣカードとの間の信号経路において行うことも可能であるし、コンピュータとリーダライタ装置との間の信号経路において行うことも可能である。更に、コンピュータ内のメモリを探索することによっても、通信傍受と同等の結果を得ることができる。最近は、このような通信傍受機能をもったコンピュータウイルスを配付することにより不正行為を行う例も少なくない。このような不正行為により、「特定の平文データと特定の暗号文データとの対応関係」が多数入手されると、これらを解析することにより、ＩＣカード内の秘密データが推定されてしまう危険性が出てくる。また、通信傍受により、暗号を作成させるためのコマンドコードを割り出すことも可能であり、不正アクセス者が、意図的に作成した都合のよい平文データを、割り出したコマンドコードとともにＩＣカードに与えることにより、当該平文データに対応する暗号データを入手する、という不正行為が可能になり、様々な方法で暗号解読への悪用が行われる可能性がある。
【０００５】
そこで本発明は、暗号化のもとになるデータと、暗号化したデータとの対応関係が、不正な方法で傍受される蓋然性を低減し、よりセキュリティを向上させることが可能な暗号処理システムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
（１）　　本発明の第１の態様は、暗号化処理の対象となる第１のデータに基いて、秘密のアルゴリズムを用いた暗号化演算を行うことにより、第２のデータを作成する処理を行う暗号処理システムにおいて、
内部に秘密のアルゴリズムを記憶し、外部から与えられた第１のデータに対して秘密のアルゴリズムに基づく演算を実行することにより、当該第１のデータに対応した第２のデータを作成する機能をもった暗号化装置と、
暗号化装置に接続することができ、暗号化処理の対象となる第１のデータを用意する機能と、用意した第１のデータを暗号化装置に送信する機能と、暗号化装置の内部で作成された第２のデータを受信する機能と、を有するデータ処理装置と、
を設け、
暗号化装置とデータ処理装置との間の情報のやりとりが、データ処理装置から暗号化装置に対して所定のコマンドを送信する送信処理と、暗号化装置からデータ処理装置に対してコマンドに応じたレスポンスを返信する返信処理と、を交互に実行することによりなされるように構成し、
データ処理装置が、暗号化処理の対象となる第１のデータを含んだ「暗号化コマンド」を暗号化装置に対して送信し、これに応じて暗号化装置から返信されてくるレスポンスを受信する第１の能動処理と、第２のデータの返信を要求するための「返信要求コマンド」を暗号化装置に対して送信し、これに応じて暗号化装置から返信されてくるレスポンスを受信する第２の能動処理と、受信した複数のレスポンスに含まれているデータを合成することにより第２のデータを組み立てる合成処理と、を行うようにし、
暗号化装置が、「暗号化コマンド」が送信されてきたときに、当該コマンドに含まれている第１のデータに対して秘密のアルゴリズムに基づく演算を実行することにより、当該第１のデータに対応した第２のデータを作成し、当該「暗号化コマンド」に応じたレスポンスとして、作成した第２のデータを全く含まないかあるいはその一部のみを含む所定のレスポンスを返信する第１の受動処理と、「返信要求コマンド」が送信されてきたときに、当該「返信要求コマンド」に応じたレスポンスとして、作成した第２のデータの一部のみを含む所定のレスポンスを返信する第２の受動処理と、を行うようにしたものである。
【０００７】
（２）　　本発明の第２の態様は、上述の第１の態様に係る暗号処理システムにおいて、
データ処理装置が、第１のデータとして、暗号化処理の対象となる平文データを用意し、合成処理により得られた第２のデータを、平文データに対する暗号文データとして取り扱うようにしたものである。
【０００８】
（３）　　本発明の第３の態様は、上述の第１の態様に係る暗号処理システムにおいて、
データ処理装置が、第１のデータとして、デジタル署名の対象となる所定のメッセージデータを用意するようにし、合成処理により得られた第２のデータを、メッセージデータに対する個人認証用のデジタル署名として取り扱うようにしたものである。
【０００９】
（４）　　本発明の第４の態様は、上述の第１〜第３の態様に係る暗号処理システムにおいて、
ＩＣカードを暗号化装置として用い、当該ＩＣカードにアクセスする機能をもったリーダライタ装置およびこのリーダライタ装置を制御するためのコンピュータをデータ処理装置として用いるようにしたものである。
【００１０】
（５）　　本発明の第５の態様は、上述の第１〜第３の態様に係る暗号処理システムにおいて、
クライアントコンピュータを暗号化装置として用い、このクライアントコンピュータにインターネットを介して接続されたサーバコンピュータをデータ処理装置として用いるようにしたものである。
【００１１】
（６）　　本発明の第６の態様は、上述の第１〜第５の態様に係る暗号処理システムにおいて、
暗号化装置が、作成した第２のデータを複数ｎ個のブロックに分割し、ｎ個の各ブロックをｎ回のレスポンスに分けてデータ処理装置に返信する処理を行うようにしたものである。
【００１２】
（７）　　本発明の第７の態様は、上述の第６の態様に係る暗号処理システムにおいて、
暗号化装置が、ブロックの分割数ｎおよび各ブロックのデータ長を、ランダムに決定するようにしたものである。
【００１３】
（８）　　本発明の第８の態様は、上述の第７の態様に係る暗号処理システムにおいて、
暗号化装置が、ランダムに決定した分割数ｎおよび各ブロックのデータ長を示す情報を、いずれかのレスポンスに含ませてデータ処理装置に返信するようにし、
データ処理装置が、この返信された情報に基いて第２のデータの入手を行うようにしたものである。
【００１４】
（９）　　本発明の第９の態様は、上述の第６〜第８の態様に係る暗号処理システムにおいて、
暗号化装置が、ｎ個の各ブロックの順序をランダムに入れ替える処理を行い、このｎ個の各ブロックを、入れ替えた後の順序で、個々のレスポンスに含ませてデータ処理装置に返信する処理を行い、かつ、入れ替えた後のブロック順を示す情報を、いずれかのレスポンスに含ませてデータ処理装置に返信するようにし、
データ処理装置が、この返信された情報に基いて第２のデータの組み立てを行うようにしたものである。
【００１５】
（１０）　本発明の第１０の態様は、上述の第８または第９の態様に係る暗号処理システムにおいて、
暗号化装置が、分割数ｎを示す情報、各ブロックのデータ長を示す情報、入れ替えた後のブロック順を示す情報の少なくとも１つを、「暗号化コマンド」に応じたレスポンスに含ませて返信するようにしたものである。
【００１６】
（１１）　本発明の第１１の態様は、上述の第１〜第１０の態様に係る暗号処理システムにおいて、
暗号化装置が、第１の受動処理として返信する「暗号化コマンドに応じたレスポンス」または第２の受動処理として返信する「返信要求コマンドに応じたレスポンス」に、作成した第２のデータとは無関係なダミーデータを含ませるようにしたものである。
【００１７】
（１２）　本発明の第１２の態様は、上述の第１〜第１１の態様に係る暗号処理システムにおいて、
データ処理装置が、第２の能動処理として送信する「返信要求コマンド」に、意味のないダミーデータを含ませるようにしたものである。
【００１８】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。
【００１９】
§１．本発明の基本的な実施形態
図１は、本発明の基本的な実施形態に係る暗号処理システムの構成を示すブロック図である。この暗号処理システムは、図示のとおり、データ処理装置１００と、暗号化装置２００とによって構成されている。この実施形態では、データ処理装置１００は、コンピュータ１１０とリーダライタ装置１２０とによって構成されており、暗号化装置２００は、ＩＣカードによって構成されている。ＩＣカードからなる暗号化装置２００には、図示のとおり、情報通信部２１０、コマンド解釈部２２０、暗号演算部２３０、レスポンス返信部２４０なる構成要素が設けられている。もっとも、これらの各構成要素は、ＩＣカードのソフトウエア上の機能に着目した構成を示すものであり、ハードウエア上の構成要素の観点からは、ＩＣカードは、ＣＰＵと、メモリ（ＲＡＭ，ＲＯＭ，ＥＥＰＲＯＭ）と、入出力インターフェイスと、を備えており、情報通信部２１０は入出力インターフェイスにより構成され、コマンド解釈部２２０、暗号演算部２３０、レスポンス返信部２４０は、各メモリおよびＣＰＵによって構成される。
【００２０】
ＩＣカードからなる暗号化装置２００は、携帯型の情報処理装置であり、各ユーザが携帯することができ、必要に応じて、データ処理装置１００に接続して利用することができる。最近は、既に種々の用途でＩＣカードが利用され始めている。したがって、暗号化装置２００は、必ずしも暗号化処理機能のみを果たす専用のＩＣカードとして提供する必要はなく、実用上は、複数の用途に共用される汎用のＩＣカードを暗号化装置２００として利用することが可能である。リーダライタ装置１２０は、このＩＣカードからなる暗号化装置２００と接続して、情報のやりとりを行う機能を有しており、ＩＣカードに対する直接のアクセスは、すべてリーダライタ装置１２０によって実行される。一方、コンピュータ１１０は、周辺機器として接続されたリーダライタ装置１２０を制御する機能を有し、たとえば、個人用のパーソナルコンピュータによって構成することができる。
【００２１】
ここでは、このコンピュータ１１０に、インターネットに接続してＷｅｂページを閲覧するＷｅｂブラウザソフトウエアが組み込まれており、ユーザがインターネットを介して、特定のサイトに、何らかの暗号化したデータを送信する場合を例にとって、このシステムの基本動作を説明する。このような基本動作は、データ処理装置１００と暗号化装置２００との分業によって行われる。
【００２２】
すなわち、まず、データ処理装置１００側において、暗号化処理の対象となる第１のデータ１０が用意される。第１のデータ１０は、コンピュータ１１０のキーボードなどを利用して、ユーザからの直接入力により用意するようにしてもよいし、記憶装置内のファイルなどから読み出すことにより用意するようにしてもよい。もちろん、ネットワークを介して、コンピュータ１１０内に取り込むことにより、第１のデータ１０を用意することも可能である。こうしてコンピュータ１１０内に用意された第１のデータ１０は、リーダライタ装置１２０を介して、暗号化装置２００へと送信される。より具体的には、後述するように、第１のデータ１０はコマンドの形式でリーダライタ装置１２０から情報通信部２１０へと送信され、コマンド解釈部２２０を経て暗号演算部２３０へと送られる。暗号演算部２３０は、この第１のデータ１０に基いて、秘密のアルゴリズムを用いた暗号化演算を行うことにより、第２のデータ２０を作成する。こうして作成された第２のデータ２０は、レスポンス返信部２４０へと送られ、ここから情報通信部２１０を介してレスポンスとしてリーダライタ装置１２０へと送られる。
【００２３】
図２は、このような暗号化処理の概念を示す図である。図示の例では、第１のデータ１０は、平文からなる文字列データであり、第２のデータ２０は、暗号文からなる文字列データである。平文からなる文字列データは、データ処理装置１００側で用意された後、暗号化装置２００側へと送信され、暗号化装置２００内において、秘密のアルゴリズムに基づく演算を行うことにより暗号文にされる。こうして作成された暗号文からなる文字列データは、再び、データ処理装置１００側へと送信される。このように、暗号化処理を、わざわざ暗号化装置２００内で行う理由は、秘密のアルゴリズムについてのセキュリティを高めるためである。暗号化装置２００内で行われる秘密のアルゴリズムに基づく演算は、通常、個々の暗号化装置２００に固有の秘密データを利用して行われるが、秘密のアルゴリズムも、秘密データも、いずれも暗号化装置２００の内部に格納され、外部へ読み出されることがないような措置が採られているため、不正な手段により、秘密のアルゴリズムや秘密データが外部に読み出されることはない。
【００２４】
結局、暗号化装置２００は、データ処理装置１００側から送信されてきた第１のデータ１０に基いて、暗号演算部２３０内に格納されている秘密のアルゴリズムを用いた暗号化演算を行うことにより第２のデータ２０を作成し、作成した第２のデータ２０を暗号化装置２００へと返信する機能を果たす装置ということになり、データ処理装置１００は、暗号化処理の対象となる第１のデータ１０を用意し、この用意した第１のデータ１０を暗号化装置２００に送信し、暗号化装置２００の内部で作成された第２のデータ２０を受信する機能を果たす装置ということになる。こうして、コンピュータ１１０内に、第２のデータ２０が入手できたら、この第２のデータ２０をインタネットを介して所定のサイトへと送信することができる。
【００２５】
さて、このように、データ処理装置１００側で第１のデータ１０を用意し、これを暗号化装置２００側に与えて、暗号化装置２００側の内部演算で第２のデータ２０を作成させ、この第２のデータ２０を再びデータ処理装置１００側へ返信させる、という基本動作を行うためには、当然ながら、データ処理装置１００と暗号化装置２００との間で情報のやりとりを行う必要がある。一般に、ＩＣカードとリーダライタ装置との間の情報のやりとりは、リーダライタ装置側から所定のコマンドをＩＣカード側へと送信し、このコマンドに応じた所定のレスポンスをＩＣカード側からリーダライタ装置側へと返信させる、という交信処理を交互に実行することによりなされる。
【００２６】
ここでは、説明の便宜上、まず、従来の一般的なＩＣカードを利用した暗号処理システムにおける暗号化処理の手順を述べる。従来の手順では、はじめに、リーダライタ装置からＩＣカードに対して、たとえば図３（ａ）　に示すような「暗号化コマンド」を与え、これに応じて、ＩＣカードからリーダライタ装置に対して、たとえば図３（ｂ）　に示すようなレスポンスを返信させる、という処理を行い、第１のデータ１０（平文からなる文字列データ）に応じた第２のデータ２０（暗号文からなる文字列データ）を作成させることになる。図３に示す具体的な例の場合、「暗号化コマンド」は、「ＣＲＹＰＴ」なるコマンドコード（当該コマンドが、暗号化処理を要求するためのコマンドであることを示すコード）からなるコマンド部と、「平文からなる文字列データ（第１のデータ１０）」によって構成されるデータ部と、を有している。一方、この「暗号化コマンド」に対するレスポンスは、「ＯＫ」なるステータスコード（与えられたコマンドが正しく処理されたことを示すコード）からなるステータス部と、「暗号文からなる文字列データ（第２のデータ２０）」によって構成されるデータ部と、を有している。ＩＣカード側に、図３（ａ）　に示すような「暗号化コマンド」を解釈し、このコマンドのデータ部に含まれる第１のデータ１０を暗号化して第２のデータ２０を作成し、これをデータ部に含んだ図３（ｂ）　に示すようなレスポンスを返信する処理を行う機能をもたせておけば、このＩＣカードに対して、図３（ａ）　に示すような「暗号化コマンド」を与えると、図３（ｂ）　に示すようなレスポンスが返信されることになり、第１のデータ１０を暗号化した第２のデータ２０を得ることができる。
【００２７】
しかしながら、このように、暗号化の対象となる第１のデータ１０をデータ処理装置１００側で用意し、この第１のデータ１０を含むコマンドを暗号化装置２００（ＩＣカード）に与え、暗号化装置２００からデータ処理装置１００に返信されてくるレスポンスとして、作成された第２のデータ２０を得る、という方法を採る以上、データ処理装置１００と暗号化装置２００との間の交信傍受などの不正手段による攻撃の対象となり、暗号化装置２００内の秘密データや秘密のアルゴリズムを推測する手掛かりを与えてしまうおそれがあることは既に述べたとおりである。たとえば、図３に示す例の場合、交信傍受などの方法により、図３（ａ）　に示す「暗号化コマンド」に対して、図３（ｂ）　に示すレスポンスが返信された、という事実が認識できれば、第１のデータ１０に対応する暗号文が第２のデータ２０であることがわかってしまう。もちろん、このような一対の平文データと暗号文データとの組み合わせだけでは、暗号化装置２００内の秘密データや秘密のアルゴリズムを推測することは非常に困難であるが、交信傍受を継続すれば、第１のデータ１０と第２のデータ２０との多数の組み合わせが蓄積でき、このような蓄積が多くなればなるほど、秘密データや秘密のアルゴリズムの推測確率が高まってゆく。また、「暗号化コマンド」のコードが「ＣＲＹＰＴ」であることが認識できれば、不正者自身が任意のデータを含んだ「暗号化コマンド」を与え、これに対応するレスポンスを得ることができるようになるので、秘密データや秘密のアルゴリズムは、より推測しやすくなる。
【００２８】
本発明は、このように、データ処理装置１００から暗号化装置２００に対して所定のコマンドを送信する送信処理と、暗号化装置２００からデータ処理装置１００に対して当該コマンドに応じたレスポンスを返信する返信処理と、を交互に実行することにより、両者間における情報のやりとりが行われる暗号処理システムにおいて、セキュリティの向上を図ることを目的とするものである。その要点は、暗号化装置２００の内部において、第２のデータ２０を得る演算処理が行われた後、この第２のデータ２０を、図４に示すように、複数ｎ個（図示の例では、ｎ＝３）のブロック２１〜２３に分割し、このｎ個の各ブロック２１〜２３をｎ回のレスポンスに分けてデータ処理装置１００に返信させるようにする点にある。すなわち、従来は、図３（ｂ）　に示す「暗号化コマンドに対するレスポンス」によって、第２のデータ２０を返信していたが、本発明では、「暗号化コマンドに対するレスポンス」には、作成した第２のデータ２０の一部のみを含ませるか、あるいは、第２のデータ２０を全く含ませないようにし、第２のデータ２０を、複数回のレスポンスによって小出しに返信するようにするのである。
【００２９】
このように、本発明では、「暗号化コマンドに対するレスポンス」だけでは、第２のデータ２０全体をデータ処理装置１００に返信することはできず、必ず複数回のレスポンスが必要になる。ところが、暗号化装置２００側からレスポンスを得るためには、データ処理装置１００側から何らかのコマンドを送信してやる必要がある。別言すれば、リーダライタ装置とＩＣカードとの交信は、常に、リーダライタ装置側から能動的な働きかけ、すなわち、コマンドの送信を行い、このコマンドに対するレスポンスとして、ＩＣカード側から受動的な返信が返される、という方式を採る必要がある。そこで、本発明では、暗号化装置２００（ＩＣカード）に対して第２のデータ２０の返信を要求するための「返信要求コマンド」を用意し、この「返信要求コマンド」に対するレスポンスとして、第２のデータ２０の一部を返信させるようにしている。たとえば、図４に示すように、第２のデータ２０を３つのブロック２１〜２３に分割した場合であれば、第１のブロック２１については、「暗号化コマンドに対するレスポンス」として返信し、第２のブロック２２については、後続して与えられる「返信要求コマンドに対するレスポンス」として返信し、第３のブロック２３については、更に後続して与えられる別な「返信要求コマンドに対するレスポンス」として返信するようにすればよい。
【００３０】
図５に示すコマンドおよびレスポンスのやりとりは、上述のようにして、３分割した第２のデータ２０を３回のレスポンスに分けて返信させる一例である。まず、データ処理装置１００から暗号化装置２００に対して、図５（ａ）　に示すような「暗号化コマンド」が与えられる。この例では、「暗号化コマンド」は、「ＣＲＹＰＴ」なるコマンドコードからなるコマンド部と、平文からなる文字列データ（第１のデータ１０）からなるデータ部と、によって構成されている。このような「暗号化コマンド」は、リーダライタ装置１２０から情報通信部２１０に与えられ、コマンド解釈部２２０によって解釈される。そして、コマンド解釈部２２０は、この「暗号化コマンド」に含まれている第１のデータ１０を暗号演算部２３０へと与え、暗号化演算を実行させる。この暗号化演算の結果として得られた第２のデータ２０は、レスポンス返信部２４０へと与えられるが、このレスポンス返信部２４０は、与えられた第２のデータ２０を１回のレスポンスで返信することはせず、複数ｎ個のブロックに分割した上で、これを一時的に記憶し、複数回のレスポンスに分けて返信する処理を行う。
【００３１】
ここに示す例では、第２のデータ２０は、図４に示すように、３つのブロック２１〜２３に分割され、３回のレスポンスに分けて返信されることになる。すなわち、まず、第１のブロック２１は、図５（ｂ）　に示すように、「暗号化コマンドに対するレスポンス」として返信される。このレスポンスは、「ＯＫ」なるステータスコード（与えられた「暗号化コマンド」が支障なく実行されたことを示すコード）からなるステータス部と、第１のブロック２１からなるデータ部と、によって構成されている。「暗号化コマンド」に対するレスポンスという意味では、この図５（ｂ）　に示すレスポンスは、図３（ｂ）　に示す従来のレスポンスと同等のレスポンスであるが、図３（ｂ）　に示す従来のレスポンスには、第２のデータ２０の全体が含まれていたのに対し、図５（ｂ）　に示す本発明のレスポンスには、第２のデータ２０の一部分のみしか含まれていないことになる。
【００３２】
本発明では、「暗号化コマンドに対するレスポンス」では返信されなかった部分についての返信を要求するために、更に、データ処理装置１００から暗号化装置２００に対して、図５（ｃ）　に示すような「返信要求コマンド」を与える必要がある。この例では、「返信要求コマンド」は「ＲＥＰＬＹ」なるコマンドコードからなるコマンド部のみから構成され、データ部は存在しない。このような「返信要求コマンド」が情報通信部２１０を介してコマンド解釈部２２０に与えられると、コマンド解釈部２２０はレスポンス返信部２４０に対して、返信すべき次のブロックをレスポンスとして返す処理を行うよう指示を与える。これにより、データ処理装置１００に対して、図５（ｄ）　に示すような「返信要求コマンドに対するレスポンス」が返信される。このレスポンスは、「ＯＫ」なるステータスコードからなるステータス部に、第２のブロック２２からなるデータ部を加えたレスポンスであり、与えられた「返信要求コマンド」が支障なく実行されたことを示すとともに、返信対象となる第２のブロック２２を含むレスポンスということになる。続いて、データ処理装置１００から暗号化装置２００に対して、図５（ｅ）　に示すような「返信要求コマンド」（図５（ｃ）　のコマンドと同じコマンド）を与えると、暗号化装置２００からデータ処理装置１００に対して、図５（ｆ）　に示すようなレスポンスが返信されることになる。このレスポンスには、返信すべき第３のブロック２３が含まれている。かくして、データ処理装置１００側には、３回のレスポンスによって、全ブロック２１〜２３が返信されることになるので、これらを組み立てる合成処理を行えば、第２のデータ２０を得ることができるようになる。
【００３３】
結局、上述の例の場合、暗号化装置２００内で作成された第２のデータ２０が、３つのブロック２１〜２３に分割され、それぞれ図５（ｂ）　，（ｄ）　，（ｆ）　という３回のレスポンスに分けて返信されたことになる。このような手法を採れば、万一、通信傍受などの不正な方法で、図５（ａ）　および（ｂ）　に示すようなコマンド／レスポンス対が認識されたとしても、図５（ａ）　に示す「暗号化コマンド」に含まれている第１のデータ１０と、図５（ｂ）　に示すレスポンスに含まれている第１のブロック２１とは、平文／暗号文の対としては不完全であるため、暗号演算部２３０における暗号化処理で利用されている秘密データや秘密のアルゴリズムを推測しにくくすることができる。
【００３４】
なお、「返信要求コマンド」が与えられたのに、レスポンス返信部２４０内に返信すべきブロックが存在しない場合（たとえば、「暗号化コマンド」を与える前に、「返信要求コマンド」を与えてしまった場合や、すべてのブロックが返信済みとなっているにもかかわらず、更に、「返信要求コマンド」を与えてしまった場合）には、当該「返信要求コマンド」に対しては、ステータス部にエラーを示すステータスが書き込まれたレスポンスが返信されることになる。
【００３５】
結局、本発明に係る暗号処理システムでは、第１のデータ１０を暗号化した第２のデータ２０を得るために、データ処理装置１００および暗号化装置２００において、それぞれ次のような処理が行われることになる。なお、ここでは、説明の便宜上、データ処理装置１００側の処理を「能動処理」、暗号化装置２００側の処理を「受動処理」と呼んで区別することにする。
【００３６】
まず、データ処理装置１００側では、次のような処理が行われる。はじめに、暗号化処理の対象となる第１のデータを含んだ「暗号化コマンド」を暗号化装置２００に対して送信し、これに応じて暗号化装置２００から返信されてくるレスポンスを受信する第１の能動処理が行われる。すなわち、この第１の能動処理は、図５（ａ）　に示すような「暗号化コマンド」を送信し、これに応じて返信されてくる図５（ｂ）　に示すようなレスポンスを受信する処理ということになる。続いて、第２のデータの返信を要求するための「返信要求コマンド」を暗号化装置２００に対して送信し、これに応じて暗号化装置２００から返信されてくるレスポンスを受信する第２の能動処理が行われる。この第２の能動処理は、図５（ｃ）　に示すような「返信要求コマンド」を送信し、これに応じて返信されてくる図５（ｄ）　に示すようなレスポンスを受信する処理ということになる。図５に示す例の場合、このような第２の能動処理がもう１回繰り返して行われることになる。こうして、第２のデータ２０を構成する全ブロックが返信されてきたら、データ処理装置１００は、最後に、受信した複数のレスポンスに含まれているデータを合成することにより第２のデータ１０を組み立てる合成処理を行う。すなわち、図５に示す例の場合、３回のレスポンスに含まれている３つのブロック２１〜２３を組み立てることにより、第２のデータ２０を得る合成処理が行われることになる。
【００３７】
なお、上述した第１の能動処理と第２の能動処理とは、必ずしも連続して実行する必要はなく、両処理の間に別な処理（データ処理装置１００側から何らかのコマンドを送信し、これに応じて何らかのレスポンスを受信する処理）を実行してもかまわない。また、第２の能動処理を繰り返し実行する場合も、各処理の間に別な処理を介在させてかまわない。もちろん、暗号化装置２００に対するコマンド送信作業は、ユーザの直接的な指示に基づいて行われるわけではなく、データ処理装置１００を構成するコンピュータ１１０上で実行されているプログラムの指示に基づいて行われることになる。したがって、上述した第１の能動処理や第２の能動処理の手順は、このコンピュータ１１０上で実行されるプログラムに記述されていることになる。
【００３８】
一方、暗号化装置２００側では、個々のコマンドが与えられるたびに、このコマンドの内容に応じた所定の処理が実行され、所定のレスポンスを返信する処理が実行されることになる。具体的には、まず、上述した「暗号化コマンド」が送信されてきたときには、当該コマンドに含まれている第１のデータ１０に対して秘密のアルゴリズムに基づく演算を実行することにより、当該第１のデータ１０に対応した第２のデータ２０を作成し、当該「暗号化コマンド」に応じたレスポンスとして、その一部のみを含む所定のレスポンスを返信する第１の受動処理が行われる。すなわち、この第１の受動処理は、データ処理装置１００から暗号化装置２００に対して、図５（ａ）　に示すような、第１のデータ１０を含んだ「暗号化コマンド」が送信されてきた場合に、第１のデータ１０に基いて第２のデータ２０を作成し、この第２のデータ２０の一部のみ（第１のブロック２１）を含む図５（ｂ）　に示すようなレスポンスをデータ処理装置１００へ返信する処理ということができる。もっとも、図５に示す例では、「暗号化コマンド」に対するレスポンスに、第２のデータ２０の一部である第１のブロック２１を含ませるようにしているが、「暗号化コマンド」に対するレスポンスには、第２のデータ２０を全く含ませないようにしてもかまわない。この場合、図５（ｂ）　に示すレスポンスのデータ部は、たとえば、空の状態にしておけばよく、第２のデータ２０を構成する各ブロックは、すべて「返信要求コマンド」に対するレスポンスとして返信されることになる。
【００３９】
暗号化装置２００に対して、「返信要求コマンド」が送信されてきたときには、当該「返信要求コマンド」に応じたレスポンスとして、過去に作成してレスポンス返信部２４０内に記憶されていた第２のデータの一部（まだ返信していないで残っている一部）を含む所定のレスポンスを返信する第２の受動処理が行われる。すなわち、この第２の受動処理は、図５（ｃ）　，（ｅ）　に示すような「返信要求コマンド」に応じて、図５（ｄ）　，（ｆ）　に示すようなレスポンスを返信する処理ということができる。レスポンス返信部２４０には、返信すべきブロックが一時的に記憶されており、「返信要求コマンド」が与えられるたびに、次に返信すべき順番のブロックを、レスポンスに含ませて返信する処理が行われる。なお、上述したように、「返信要求コマンド」が送信されてきたのにも拘わらず、レスポンス返信部２４０内に返信すべきブロックが残っていなかった場合には、エラーを示すレスポンスが返信されることになる。
【００４０】
もちろん、この第１の受動処理と第２の受動処理とは、実際には、暗号化装置２００を構成するＩＣカード内のＣＰＵが、ＲＯＭやＥＥＰＲＯＭなどに予め格納されたプログラムに基づいて実行する処理である。したがって、上述した第１の受動処理や第２の受動処理の手順は、このＩＣカード上で実行されるプログラムに記述されていることになる。
【００４１】
§２．その他の実施形態
以上、本発明の基本的な実施形態を述べたが、ここでは、いくつかの有益な別な実施形態について述べる。まず、本発明では、上述したように、暗号化装置２００側で作成した第２のデータ２０を、複数ｎ個のブロックに分割することになるが、セキュリティをより高めるために、ブロックの分割数ｎおよび各ブロックのデータ長は、暗号化装置２００側でその都度ランダムに決定するようにするのが好ましい。また、暗号化装置２００側で、ｎ個の各ブロックの順序をランダムに入れ替える処理を行い、このｎ個の各ブロックを、入れ替えた後の順序で、個々のレスポンスに含ませてデータ処理装置１００に返信する処理を行うようにするのが好ましい。
【００４２】
たとえば、図６（ａ）　に示すように、暗号化装置２００側で、第２のデータ２０を３つのブロック２１，２２，２３に分割した場合を考えてみる。ここで、分割数ｎ＝３は乱数を用いてランダムに決定するようにし、各ブロック２１〜２３のデータ長Ｌ１〜Ｌ３も、乱数を用いてランダムに決定するようにする。そして、この３つのブロックの順序を、図６（ｂ）　に示すように入れ替える。このようなブロック順の入れ替えも、乱数を用いてランダムに決定するようにする。こうして、図６（ｂ）　に示すように、各ブロックの順序がランダムに入れ替えられたら、この３個の各ブロックを、入れ替えた後の順序で、個々のレスポンスに含ませて返信するのである。すなわち、図６（ｂ）　の例の場合、ブロックを返信すべき最初のレスポンスでは、第３のブロック２３が返信され、２番目のレスポンスでは、第１のブロック２１が返信され、３番目のレスポンスで、第２のブロック２２が返信されることになる。
【００４３】
このように、分割数ｎ、各ブロックのデータ長、入れ替えた後のブロック順を、暗号化装置２００側でランダムに決定するようにした場合、データ処理装置１００側にも、これらの情報を知らせておく必要がある。そのためには、これらの情報を、暗号化装置２００側からデータ処理装置１００側に与えるいずれかのレスポンスに含ませておくようにすればよい。特に、分割数ｎに関する情報は、「暗号化コマンド」に対するレスポンスに含ませておくのが好ましい。そうすれば、データ処理装置１００側では、「暗号化コマンド」に対するレスポンスにより、分割数ｎを認識することができるので、その後、「返信要求コマンド」を何回与えれば、全ブロックが返信されるかを知ることができ、必要な回数だけ、「返信要求コマンド」を与える処理を行うことができる。もっとも、第２のデータ２０の全データ長を予め定めておくことができれば、返信されてきたブロックのデータ長の累積値が当該全データ長に達するまで、データ処理装置１００側から繰り返し「返信要求コマンド」を与えるようにすればよいので、分割数ｎに関する情報や各ブロックのデータ長に関する情報をデータ処理装置１００側に伝達することは、本発明を実施する上での必須の事項ではない。
【００４４】
図７は、本発明の別な実施形態に係るコマンドおよびレスポンスのやりとりを示す図である。図７（ａ）　に示す「暗号化コマンド」は、図５（ａ）　に示す「暗号化コマンド」と全く同様に、第１のデータ１０に対する暗号化処理を要求するコマンドである。一方、この実施形態では、このコマンドに対するレスポンスは、図７（ｂ）　に示すようなものになる。このレスポンスは、「ＯＫ」なるステータスコードからなるステータス部と、図示のようなデータ部と、によって構成されている。データ部には、分割数ｎ、ブロック順、ブロック長を示す情報が含まれている。すなわち、図示の例では、分割数ｎは「３」、ブロック順は「３→１→２（第３のブロック→第１のブロック→第２のブロックの順に返信される意味）」、ブロック長は「Ｌ３，Ｌ１，Ｌ２（ブロック順に応じて、第３のブロックのブロック長はＬ３，第１のブロックのブロック長はＬ１，第２のブロックのブロック長はＬ２の意味）」なる情報がデータ部に含まれている。
【００４５】
また、図７（ｂ）　に示すレスポンスのデータ部には、ダミーデータが付加されている。このダミーデータは、暗号化装置２００内で作成された第２のデータ２０とは無関係な意味のない何らかのデータである。このようなダミーデータの付加は、通信傍受に対するセキュリティを向上させる上で有効である。すなわち、図７（ａ）　，（ｂ）　のようなコマンド／レスポンス対が不正な手段で傍受された場合でも、ダミーデータの存在により、両者の対応関係についての解析をより困難にさせることができる。
【００４６】
データ処理装置１００は、図７（ｂ）　に示すようなレスポンスを受信することにより、第２のデータ２０が３つのブロックに分けて返信されてくること、「３→１→２」のブロック順で返信されてくること、各ブロックのデータ長がそれぞれ「Ｌ３，Ｌ１，Ｌ２」であること、を知ることができる。これにより、３回の「返信要求コマンド」が必要なことを認識することができ、まず、図７（ｃ）　に示すように、第１回目の「返信要求コマンド」を送信する。なお、「返信要求コマンド」には、本来、データ部は不要であるが、この図７（ｃ）　に示す例では、「返信要求コマンド」のデータ部に、意味のないダミーデータを含ませるようにしている。これは、やはりダミーデータの存在により、コマンド／レスポンス対が不正な手段で傍受された場合でも、両者の対応関係についての解析をより困難にさせるための配慮である。
【００４７】
この例では、図７（ｃ）　に示す「返信要求コマンド」に応じたレスポンスとして、図７（ｄ）　に示すようなレスポンスが返信されている。このレスポンスは、「ＯＫ」なるステータスコードからなるステータス部と、図示のようなデータ部と、によって構成されている。データ部には、最初の順番に相当する第３のブロックとともに、セキュリティ向上のために付加されたダミーデータが含まれている。データ処理装置１００側には、既に各ブロックのブロック長の情報が伝達されているので、本来のブロックデータと、ダミーデータとを識別することが可能である。たとえば、図７（ｄ）　に示すようなデータ部については、先頭からデータ長Ｌ３に相当する部分までが第３のブロックを構成するデータであり、これに後続する部分はダミーデータである、との認識ができる。同様にして、更に２回の「返信要求コマンド」が送信され、これに応じてそれぞれレスポンスが返信されることになり、データ処理装置１００側に、３つのブロックすべてが返信されることになる。データ処理装置１００は、ブロック順「３→１→２」なる情報に基いて、返信されてきた３つのブロックを並べかえて組み立てる合成処理を行い、最終的に第２のデータ２０を得ることができる。
【００４８】
以上、データ処理装置１００において用意された平文データを第１のデータ１０として暗号化装置２００に与え、この平文データに対応した暗号文データを構成する第２のデータ２０を作成し、これを複数のレスポンスに分けて返信する例を示したが、本発明に係る暗号処理システムは、必ずしも平文データを暗号文データに変換する用途だけに限定されるものではない。たとえば、データ処理装置１００に、第１のデータ１０として、個人認証用のデジタル署名の対象となる所定のメッセージデータを用意する機能をもたせ、暗号化装置２００側では、このメッセージデータに対する暗号化処理により、所定のデジタル署名を作成する演算を行わせ、このデジタル署名からなる第２のデータ２０を複数のレスポンスに分けて返信させるようにしてもかまわない。この場合、データ処理装置１００側では、得られた第２のデータを、第１のデータを構成するメッセージデータに対する個人認証用のデジタル署名として取り扱うことになる。
【００４９】
図８は、このようなデジタル署名の具体例を示す図である。ここでは、「特許太郎」なる特定のユーザが、コンピュータ１１０を用いて特定のＷｅｂサイトにアクセスし、当該Ｗｅｂサイトが運営するオンライン書店に、百科事典の発注を行う具体的な例をとりあげてみる。まず、このような発注を行うために、ユーザ「特許太郎」は、図８に示すようなメッセージデータＭ（「百科事典一式を注目します。」なる文字列からなるデータ）をコンピュータ１１０に入力する。すると、このメッセージデータＭは、第１のデータ１０として、リーダライタ装置１２０を介して情報通信部２１０へと送信され、暗号演算部２３０に与えられる。ここで、このユーザ「特許太郎」の所持するＩＣカード内の暗号演算部２３０には、図８に示すような秘密データＨ（この例では、便宜上、「ＡＢＣ１２３」なる文字列であったとする）が格納されていたものとしよう。秘密データＨは、このＩＣカードをユーザ「特許太郎」に発行する際に、発行元において所定の方法で書き込まれる。
【００５０】
この場合、暗号演算部２３０は、予め用意されていた所定のアルゴリズムに基づいて、メッセージデータＭに対して、秘密データＨを利用した所定の演算を実行し、メッセージデータＭに対する個人認証用のデジタル署名Ｄを作成する。ここでは、たとえば、図８に示すようなデジタル署名Ｄ（この例では、便宜上、「４５６７８９」なる数値であったとする）が作成されたものとしよう。デジタル署名作成のための具体的なアルゴリズムとしては、たとえば、「メッセージデータＭを構成する文字列に、秘密データＨを構成する文字列を付加し、これら文字列を１６進数に置き換えて数値化し、この数値にハッシュ関数を作用させたハッシュ値をデジタル署名とする」というようなアルゴリズムを用いればよい。ある元になる数値にハッシュ関数を作用させることにより得られるハッシュ値は一義的に定まるが、ハッシュ値から元になる数値を逆算することはできないので、メッセージデータＭと秘密データＨとが与えられれば、暗号演算部２３０によって、ハッシュ値として与えられるデジタル署名Ｄを一義的に求めることができるが、逆に、デジタル署名ＤとメッセージデータＭとが既知であったとしても、それらから秘密データＨを求めることはできない。したがって、デジタル署名Ｄは、メッセージデータＭを暗号化したデータということができる。
【００５１】
こうして、暗号演算部２３０によって作成された「４５６７８９」なる数値からなるデジタル署名Ｄは、レスポンス返信部２４０に一時的に記憶された後、複数回のレスポンスに分けて、リーダライタ装置１２０側へと返信されることになる。たとえば、「４５６７８９」なる数値は、「４５」、「６７」、「８９」という３つのブロックに分割され、３回のレスポンスに分けて返信される。コンピュータ１１０は、これらを合成することにより、「４５６７８９」なるデジタル署名Ｄを復元することになる。かくして、コンピュータ１１０は、メッセージデータＭとともにデジタル署名Ｄを、「特許太郎」なるユーザからの注文として、オンライン書店のサイトへと送信して、百科事典の発注を行うことになる。
【００５２】
一方、暗号演算部２３０内に格納されている秘密データＨは、信頼すべき認証局にも、「特許太郎」なるユーザの個人認証用秘密データとして登録されている。したがって、「百科事典一式注文します。」なるメッセージデータＭと、「４５６７８９」なるデジタル署名Ｄとを、「特許太郎」なるユーザからの注文として受信したオンライン書店は、これらを認証局に照会することにより、メッセージデータＭおよびデジタル署名Ｄの組み合わせが、確かに「特許太郎」から発信されたものであることを確認することができる。すなわち、認証局において、「百科事典一式注文します。」なるメッセージデータＭと、特許太郎の秘密データＨとして登録されている「ＡＢＣ１２３」なるデータとを用いて、所定のアルゴリズム（暗号演算部２３０により実行される署名作成処理と同じアルゴリズム）による演算を実行し、「４５６７８９」なる同一のデジタル署名Ｄが得られれば、「百科事典一式注文します。」なるメッセージデータＭと、「４５６７８９」なるデジタル署名Ｄとの組み合わせが、確かに「特許太郎」なるユーザが発信したものであることが確認されることになる。もちろん、メッセージデータＭの一部が改竄された場合には、得られるデジタル署名が異なることになるため、正しい認証結果は得られなくなる。
【００５３】
図９は、本発明の更に別な実施形態を示すブロック図である。図１に示す基本的実施形態では、コンピュータ１１０およびリーダライタ装置１２０によってデータ処理装置１００を構成し、ＩＣカードによって暗号化装置２００を構成していた。これに対して、図９に示す実施形態は、データ処理装置と暗号化装置とがインターネット３００を介して通信を行う形態である。すなわち、この実施形態では、クライアントコンピュータ３１０、これに接続されたリーダライタ装置３２０、これに接続されたＩＣカード３３０という構成要素全体が暗号化装置として機能し、サーバコンピュータ３４０がデータ処理装置として機能することになる。クライアントコンピュータ３１０とサーバコンピュータ３４０とは、インターネット３００を介して接続されており、サーバコンピュータ３４０側からクライアントコンピュータ３１０に対して所定のコマンドを与えると、クライアントコンピュータ３１０側で当該コマンドが実行される（必要に応じて、リーダライタ装置３２０を介してＩＣカード３３０へのアクセスが行われる）。そして、当該コマンドの実行結果が、インターネット３００を介して、サーバコンピュータ３４０へレスポンスとして返信される構成となっている。
【００５４】
具体的には、サーバコンピュータ３４０からクライアントコンピュータ３１０に対して、第１のデータ１０を含む「暗号化コマンド」を与えると、この「暗号化コマンド」は、リーダライタ装置３２０を介してＩＣカード３３０へと与えられ、第２のデータ２０が作成されることになる。この第２のデータ２０は、リーダライタ装置３２０を介してクライアントコンピュータ３１０へと伝達される。そして、この第２のデータ２０は、クライアントコンピュータ３１０からインターネット３００を介してサーバコンピュータ３４０へレスポンスとして送信されることになるが、このとき、第２のデータ２０が複数ｎ個のブロックに分割され、複数回のレスポンスに分けてサーバコンピュータ３４０側へと送信されることになる。このため、インターネット３００上での不正な傍受が行われたとしても、通常の方法に比べて高いセキュリティ効果が得られることになる。
【００５５】
もちろん、図９に示すクライアントコンピュータ３１０およびリーダライタ装置３２０をデータ処理装置として、図９に示すＩＣカード３３０を暗号化装置として、本発明を実施することも可能であり、その場合には、図９に示す形態では、いわば「入れ子式」に本発明を適用することが可能になる。すなわち、クライアントコンピュータ３１０およびリーダライタ装置３２０をデータ処理装置として、ＩＣカード３３０を暗号化装置として、本発明を実施した場合には、リーダライタ装置３２０とＩＣカード３３０との間の通信傍受に対するセキュリティを向上させることができる。一方、クライアントコンピュータ３１０、リーダライタ装置３２０、ＩＣカード３３０という構成要素全体を暗号化装置として、サーバコンピュータ３４０をデータ処理装置として、本発明を実施した場合には、インターネット３００上の通信傍受に対するセキュリティを向上させることができる。
【００５６】
以上、本発明をいくつかの実施形態に基いて説明したが、本発明はこれらの実施形態に限定されるものではなく、この他にも種々の形態で実施可能である。たとえば、上述の実施形態では、第２のデータ２０を複数のブロックに分割する際に、ひとまとまりのデータを１つのブロックとするような分割形態を採っているが、具体的なブロック分割はどのような形態を採ってもかまわない。たとえば、１バイト目、４バイト目、７バイト目、…というように３バイトおきに抽出したデータを第１のブロックとし、２バイト目、５バイト目、８バイト目、…というように３バイトおきに抽出したデータを第２のブロックとし、３バイト目、６バイト目、９バイト目、…というように３バイトおきに抽出したデータを第３のブロックとする、というような分割形態を採ることも可能である。
【００５７】
【発明の効果】
以上のとおり本発明に係る暗号処理システムによれば、暗号化のもとになるデータと、暗号化したデータとの対応関係が、不正な方法で傍受される蓋然性を低減し、よりセキュリティを向上させることが可能になる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る暗号処理システムの基本構成を示すブロック図である。
【図２】一般的な暗号化処理の概念を示す図である。
【図３】従来の暗号処理システムにおいて暗号化を行うために用いられるコマンド／レスポンスの一例を示す図である。
【図４】本発明において暗号化により得られる文字列データを分割する態様の一例を示す図である。
【図５】本発明に係る暗号処理システムにおいて、暗号化を行うために用いられるコマンド／レスポンスの一例を示す図である。
【図６】本発明において暗号化により得られる文字列データを分割し、更に順序を入れ替える態様の一例を示す図である。
【図７】本発明に係る暗号処理システムにおいて、暗号化を行うために用いられるコマンド／レスポンスの別な態様の一例を示す図である。
【図８】一般的なデジタル署名システムで用いられているメッセージデータＭ、秘密データＨ、デジタル署名Ｄの具体例を示す図である。
【図９】本発明の変形例に係る暗号処理システムの基本構成を示すブロック図である。
【符号の説明】
１０…第１のデータ（平文からなる文字列データ）
２０…第２のデータ（暗号文からなる文字列データ）
２１〜２３…分割により得られた個々のブロック
１００…データ処理装置
１１０…コンピュータ
１２０…リーダライタ装置
２００…暗号化装置（ＩＣカード）
２１０…情報通信部
２２０…コマンド解釈部
２３０…暗号演算部
２４０…レスポンス返信部
３００…インターネット
３１０…クライアントコンピュータ
３２０…リーダライタ装置
３３０…ＩＣカード
３４０…サーバコンピュータ
Ｄ…デジタル署名
Ｈ…秘密データ
Ｌ１〜Ｌ３…各ブロックのデータ長
Ｍ…メッセージデータ
【図１】
2004040622.tif 000003
【図２】
2004040622.tif 000004
【図３】
2004040622.tif 000005
【図４】
2004040622.tif 000006
【図５】
2004040622.tif 000007
【図６】
2004040622.tif 000008
【図７】
2004040622.tif 000009
【図８】
2004040622.tif 000010
【図９】
2004040622.tif 000011